4757486418036841547837158411579919313879385846336792856096235928483023789627761346480560390631920585128945145329571656378894598012572628800291137405954414485444887644570211649801162103635387819052568812085613988491370530799993888943051247175461920618922587048988660164824731092980369736931871750413268479762626693412356133296985173243449661076060611405826175684039092208914911534240929501512949101097467809868220003112077601608280427853210186511143458101973341256515480542193848097660282614762777471295701235245292717297317702427266133346401149189842719845325519442259558153878689010695819185299625849171443292325868356622146673116098585631555827844147026649534394503204086469726600054982803736114891297645594334280695720357717689207620324261461317839651513327976531941472888101206967139879922961928022847317741161124265260360940981457567090590167106562239326059992254197062644848880222659177062204221072742610837801622084454098503630504861719955309448830107732663755175607451025256659395199834954947372918654551319488729150255456388879750580793533943478312175221181957919089512960544202433383827072219262828619256038330148796846334578161643208802586404752890046169529351304527791821697271583051254948936214388810432161342664474589623771893183411489975425771817131561261846309097894110827213419722218398894155558624824796225387454055757131418119032368478145151792668228416405708549563123306069130409796588755666661532386994010534883009127940950903479872489016739904815717110856677055089379401379303788867387758941744786208903216640443075414369445894131395035363394797729874249402328848326452741051013478811661432230399423093015828895337934152505822537920115009995354082012077070671474467106885788544957724800163854232266923799741851215021746032807004065409728082717176677500567125369029246269170995745145143575058270515608273782865156882071512226333509769080632587625793024599071480059415339183216179772728002966525061238453067804671426149853793796128396052498979867168106851404216880196128732859462106373937802848714632426516102728095312856560721006392796648034037276847765263362737421271450232584668911924797009911191947987673281017749166309969840516529721305033601687342349420577784588229264430892911844702574250863236846040569461060516567220247201543470194583089740987856007984049482025596795179240885864119207073879595492021842237052202573053189679967856357856620618566602446298990718763284872730382403362913455648055278143192326554166676437561537546977625166626421205651143065050636577973899668629804456062257136808450546413099007060881305036616210123679800160051895056745130600511867886313675791148431512566518964475678342400369860133260848279530511974923524066081824343982638220208827877666814839018431890589069188932904734292785068318104186198501443904524370177966402668868502699918996948122297614971788430085043149154251013856816197199581714197465630215600298653440137293370287318360065881771026064646114868522096691625551205445523979734602769953208387580667342736251441752394028782229361805655957842478561977319067678623579768712152426289946211868892948844854218789054696841919229960086564935291768331442412669596943857029246343105485194322486826073725907424389507269710438668560865696430647630316902292171966964141721844186652129458170190753480569826355338761873767032541545141348050554189793558015470539956126123586921943334811734565501852757202207342122815176617577512544422125630977555110004594520230803417126586381247020987593515205784779593817289277151254315898530328763120897686773430617282482076188592766213095139432342136270268434765184736707611210995417073111019969713565534195549013458876634458313189050382877083494167634603781834968118741943505826994762382885964178290632327177426601924999455101714234622427223734645452330291954457039915766182688471251679143471478837628648009233531625478544279383936564549507085600204519219943605572165861059590413416831078216285335461378467195153370720463542014492214576055512137591167262094911361501331343385170064585048275564177820766701329164793064586386255497412818989295683667799664105295014753973528371627406958240781879880998352091803728654962283837451637516387142912070484275379413336750601007808483390491025333390934463009096614667023802117198632229067463024254740162939655915425984406124857663268603595654915185677861285003410408568958305347317972656076276396908394733975212661481372435582197007844583075335860013548693498151624685994647076116688270376413583707309426686987876936637858594427226910370675001609282227895005065020856783775780818452214343960099895940580321499890666427165096866665931438129057912150129088015423700536920608409208756035101141307369649527343894309850333382961862677402954251909977355124484288426957006066295975046851344332752930851107262980834062443093138009933007128539363582280181570111244318483397679624312613148637259981477750961677121430552373190049101028626788544354186659317301396433178500813352536994575525384809145921390732066207259438333651789314179189589230996332588228878232138155796644858134467264771598201769518600219048842686541090357242145710053799508227506770551801628555549867512620310368305433240510186094205014577395157396628208572980793790574308097179474546109534034805033841478444549147180443508214096501633127162147777355306448144115963205003167608644605885145738928491091324094640923400928872165394531829928418526227547257621643981174407284409777990141457886539381301999206071888537201790605180960342599470363046690994448998461660280657209325643541606865201073030214927109840701671423018599255777493978828718269214300377626011020616550608890353214808800196429495559513087197544948856187990544666487036467640128646157185310426882706063341726769887036150715699395901466303003714152960778776325554174426943448791508341485917414876374329941235272755212416978112769742686866275343794716821254319767873241881267855696418087763211732411064712628294986473512921385633107971812735757720146018940579749523910786810288210563270965673109681571043809905151464875388034229747988541234256050999984534828058177108707037805005630550365506168931342731796266960334675367470165491913444723153486941282636876121752336497957712215024861044302144245642624282492285236007120877158377552433695223113222613245806318344268136276784925082619536762944755757444964355305385142711771079050323448365343494743641385218577539701564853957950867951587333049850548208110310583413439732922334276419122968527355358388382157458917566321155170099548554894878496366513403170614342844268820537615285283978126619965056761765750086768260009906660698406839322914508230153015939994584789240294890528774146553487348896475637531201563084278045583709763380175076059255700711628958669221002381014270544751790836022075347056951479880010702908215094857007413893173479359370600560204080026640213777109048379345521198225667646418693932593672419248312127305397415132987582433801030335383740238386578479370761514391729924914930424724028064792346851076955213912874963275547375348535131069154916626602047463856937419050242289051840669658814797885609564450174657722635501769320169673555473179323797200981229810766417039268448285676821758112297555281298263146871165992276699626284199007606116235324884263417364159204858734095157293637202066659625905736521217760958532346186151950387659366373259453973494389174875354065923097067423799395548405963331541695488848874251706614607359835643997095704256847692210686112980329094349396385403006950389515263199161623130009371806848721791644887871544291319028624298417284742930634282094608432404354945140021905593905588621236734137949697491345634636554672082523469974334761864857067662431262304332211240406408291791159795643031665613758510379795265041684251050779426621786720785576076892049128632420094733514530215563387840234243502464490579127915407165750704510656507986846994501006825002435570099495711157323956777032375136924810364939777889529042514283041878320281649696642065381998862233133845348546773930370611850298155649053785281355726212441698060910050721335280351766099573961698984595183596780167349644223654466728047495160877969818820301633075551992218613493342662822303401420935673776602491664704055658964133041883951739586584983782380177293800740424512328942493280595772413321589424631231997414815604201906897254098864859322937532221313098503540314419701419415225926186826839007390389130935961800287633094310034835727255033110824939798482750025224626921358969721012105809859489148231059798175222663572824859859787060356067000047862061635281857571276510199564847816257171209338368106183356887748144823338686064619437346434152764086664380543211132353987683603612316036180405222231806541026424081481589734042558692347225535233702134636639366950133177683855336851404985041612030839591713280856920819322650023098292036546181988849254610321085553661215214512030442561023629487146635249470849342310219548197291603141145387999231676490934402995590886274050924570980894281973786984980525826866401340029563622393300847030943843744140338919488120778325454814408094892782229536345321065387904733577800996855461718243686130425601724116740004159498361048496234247367628953778406693581568893708991658356209598503819791258832349793917502700816345843592039198332347368561628728702769592813329268816125079025365965134959101616480219585937972208278266906284520870328273066714938655785633754441159721127799787948449420450497703550341656752989066239603114605937996170337374729939410177876085699160103105478143772556252451804737947287414753131442779155831984514202043198658681186114071600093522078019393747982694391263626936664762002206896936883445412956852374807514693395927244107531372183906959044906164599209536971117755644149462374390055192896603328412689471386767333125390876520946893636113735498272718728846558903091032965847871540556866543992265009294795304928857544213284252805771892907672212998875979069380633051864332690650223607889975986285810454093392119388058298354138740597424611738699037921147877177997276592738833823188054147446794221004896486018176216983913219724321831315136961775993489879310424226609571294712584908706524686313244404060256216372553727470056533520027287807368409525187302014526655687392641263017128010628417211819214271335930935604194902863681090010090361054632397051227184275272052118118924316622487957327254807742661550040309015447950723628112259980665988652700381438388134933924609740623726243576201435351465440362742997271993723706548546188239988538048377197220186170073867583046209125535961186827199417244341052731505505270219886462915057350214816561426123158107373323838080705520350734767341996093672934800638276925537466904583767801349568972880375560551981592910222535025237988164608293894488951996947875709435588322900870157520705622119105714900599675644678113974890834154334708042452944365612122789397397112861931505498651392545135415535271290819748276829617593924779476846838982019101131774210799320743030411998040499371564454750310184756178539871655014076225657029602976699619596690473789815253607000660922284217212970396820628860340262970349639550706192279931254015285908164783263493361684004350971614542290574200967235537270815748698286426381465791868935088737321872018240337819187571760944569647423054161044383694135335376588423413945715729449140290534795726111177677146344267711823825692646875469223359249639007177793633764112228304247242003580443117169107284968458602783719137173042259686899032859888855149635937305300252979323572193576568871282995743040667300351553022168197206803749218322615376267310938093225407752562629733343247840179396295317790180761235436991739608088078686115808284980130857876058348798797072244210643232570436761445124974404171554578607973021890533218838932867841008125839014869258610221201331600093991488610547012849549342281210981572989164544522734265456946223133996112710424981585640997981208580633457933377034521121965053230474795802636827893850778657325818488721223093534694792153994259737920576922335295805516555860866092031962491917299068498103548202021661197483129684332338369167678074721694378331804383651523598959888148263109842378485310495283302108120050715449598629978367420985637474586578893900627588187610901078039286572390976378769875546032341760221369304990683439622423909349466522938719986913706201566353166673064786856270976106893977612657732250416939605485648954224817268202235009878483190962892842811226222754175183028992645844846443976347081266512384533540065613781363867079491995082735329205860658420361806057894348949258397820166046553678058097248961009602101487854921761083557318633621022659601581917983674680889449677499324493678045386301103250736341665780642938645460552077529603907534022561606546007950868036511418835004081745219296608917195331852740964788680752458899873230838898684632825042059852644216111504459465451005697669564529430750406649175303745671232531488240473551113171002497454910962548592346516589900046603419691866131991519665335723976806463457188072468487770829936162558628866656198947871042621897299962840992651979324970683266255068793746776269909311611376017653092044922717607069208284133060743360552273389084412687099500334895742525260403477804974640752884190816431911429938463593206563284187645415419871272759404022094910916099362812191527701712847534716996561438288253912667791486439567997529347969622736829150064372128466183677701156512509253705061091868128875531078802531902479286434774222721848139582344139215978003804069499782542826630373336884006174490517670830991498543061195406722088257638841988384572122820305275623742993405307432057041820887574014058487224347318724618130787966270676515732831788727493171655886679783111769064420920373648499574545095010855212646348061602623565872901255797497823072787157263144919808406622263232947234806706869433590124450932968433325238376341852687536795323866997309766250350130758018590045448300638639081555640115163277228003713779872684794254977154457952999196539868718494413597048531239396132901931486745112428014847162688309328503862323132646663219892109371017561678738888716082523387524174846764434987515989499177164017600113850637129543300743319898605184773240707311625494984503024839783984734994428664456205015487082119123813272383155987690285121713965188457283190231936209897636059409854078239766016870413133686475633527417245168100102610996177486537293598780928597106810965633034775896228679077585585428281594734529390290848306655339733478111975628540131005740448460446455367634778093048604396023694335509304705265636047753774734352657072164258338264887187535494518327448176165119739304188654454623557318009313990202279862885222799055231364530048074702875973677734160385407743995863272551580603704359950162945162789983057415683168535905875440314443176738061932704493216422273676594290891922774681911566410151249902022349168959164295062489629019897981696327755757932663759854485617449525543109198061035998618686305503924879081311705697630343038355450664347178262358461837068830294177656374339671962748812632118292986481812940425494920366873122684661433593583266628527452743253162576600089542897088402517204199897189689385896599245795799639720808938065610987455155147716409579642282928995229769728303601189119885453137858711624256471308905363649103293288725665261165129541097029425469108187357821248417184467109640677900868631749151414069477710928407822434381312422069569922526106967683901844518181943122819119407310854784944222918658764067390947388567662868619725759463928272022143577655806881451430973671877156818610230074618816453597044248329703732363308611857181180249510992891009077549093349428083894656931972717311792229782931567032106661592177896747435214288912002493280132578144302139408471984540934288798452540805945747039464268402788632809209326859547002704302445360453210941669051720649403444449814479691755252281667552505089439232842297489453930286290914775956557421719617783191473108458819643884148474804710303525861406450389151513673907641825372043923445514566154444058508003761749994740866819659352656622361772670323755670342571535387932754310325633096473426555668237453296518626938474540156755427691014909817905909039198312668995591448856580642041620901517353334765861995167533960248069972170870021419335740849203577915918385095163886903227561917350933609935349336242467149876542687789196317015180820694855381006959438355838288537001162610926652375293043833629558782752855042596448823888162130760564180207572191074596876413724855368195002722876641923343065508771932808942586328616986680506168628893241218218589056103045965240220085746637906156706000761650319694108032462269412372232335833267497545055137247310939282995949008864690610432654106813243428882288113177123965078930915832918587195594260270809957529376265673701161042741964966856433251486858815471474924613223308267317579738409063572201939383450312922529028490922590465186650136667470740851149949623786343903016222822072537426017108757575310843988732741025956554319835603977045318624859593208022856253203817434169689360425875378759294286619572013028237838969964721759338188962432266662618930095737774631026609646483698199389901380506323026643988418599616634649286605643045375954999705592104901134684175780118394513266465674046077969222476697464080445036069856637703754949260794894797670553609162929420884043227733201052453799322537103070275255575928978819294505031242564512937268319838848549803449882801255922118336787951787226969122977152947322864529879502569531867639557803893319850616519163767900765215561567893550751145261028500175880912687847391170639899893674361824951093459844722121345399431600225233370252239889256889658347273558092173526215726920260152600245096278667102779760397099629945144392966290113854901809026384210269066413727423873805827427168484987271645578785553907943518191011731303151809442833387772869703435656710324072183506050878388193754107488281122211087833260425499950150437346020600455532661750015205373082410996410483258829382745314008828651065740076763138307855007971638380044488375477197569797389770622628577405619661002764267081108123614478984001710895897617967584877348083473517803564729558769242193476607827574728062407568079467669764619752495600504657116033122367639900850997632806080820959303681468968772599110312670539055499445415964300396001231254717561607312475989900386220896208971657135489494209849865838674103028824789955950275548607362461561730237108627018906256599434784654203156839544912151768055993678003476364358500578525691011724451014324371300364951307216995902330410257462006674434639112265206059656170091393138180393593088969373538165629735132973920154458056694844142715791374180759452224284731784517834724347580204185432294301237825189686622353740714186367677272704116735880975628194505446898401951846102862653125382593575066471716659318781134040166903863594401450791493181771225344948772375495266580141599095854417057012806335109072108307387061922851380987956778563676590201628890074973189457394307512532048354025118497347698658854571849729109612183876401958739480825904061980991224170086017661337442457027307892412389712880172475330334682747667543588455794654060062920940668236416278806800613916055613864612346306441720484809745431671149432751168985592768619224617916403261150987066103357773309161662278116505977822589427597425634080537896644817823720214997050491321446553364143418081658241965785249981193365727284845906228042245099603977288190836085704431413006835945444972568891162788731637078197972597084434411900572432491841841611497957933249783686507035537720405407774396375919078337395649533747548603862281556246942827310741822246591267773414570212382107260608209700775196053875739166187854436092998416645443574806029454481554989240552124288462527770488988872826000520857845092512243205596891077106439338458564332690069095626170053140750191714743123323445944080922913968955424313847901163197423461187448770817830748650778784023176111200798073603442544347446799799743712774182477773961394646626073305423136080968247325867667874357589406824061269516119102841176155756211659723926713938714851581942200704577886275790134669457553030256147482843142004583251584174078020802631346006437382665583388808373039133303633987692232744815336073706594380606221380313674770434631063995731775173539940276574518003229793905370582859771096470772980612743023890682971190920411632669440639706577564471429117111350237843037449254004380227043015826775322170269204483764759537312689893411232447078044488299481754905017612026035687519384691253542461139437922004711323121694338599737577294371622535256736437813789270377493523789126524347644087633089424147170818116207767402092831727818983737125918541661582569752977663394860978881249110050315851713883960048804921324770210112406242155559038374022838134990081052018359902999844017928042988306783591736982746415331066807941997541786188394048323452542518797533018796615104506279014702836428283626312858214201739189212231369278092061649786830852463002706459386647669250759490781392423112563937057829983788256124398240625260777614937096589832114690718303758626278850273511888174702720648117402780288249614211504337102123825016998223176329690466245119986934973163565623182629636575673325697705469150233763880060633314108816792322072685106431210590937949016302070962944572902196042498602328638023085318194457924598458916617149451225192996198284890410014626754983369732239858879473123088845293193723326543269290599223037347732891743403809569698755513272321159071095571922681061563804246782292965542524485580269915903533044371636501615055172379348733274607506001653316437201795578776528899249893510374820033345451042498814627439016646452209986358955663601569168898383743069962851519821135674691106188065781486174277628717177148707338967821893054426846727451741548489141671459100993854657053322836966235631172798250175625435705717682537612240346817416795390456211081874041761615087739944977449068319213086198077711384902310056255491919226568699510692176967481500784277016923466296919691590296796792336512152634077780867580755206570157788064944675814061706275653079257225657163100055417963207925101591793498459378581982918782773788877395159209708405123121237079635359730727817652901317147686464250582977060354269908526491724042317324805975143672457363053649598394423834936578006103019463997887291790670755036985181359634041640220030149366981104116027626074330312507591324722810306946782962081647031392110343439978652345055352732050429805109415360902976645017503112811424476429264288492644228776148811462588942666413292885079440595085372843977808065918047695949233366051417886348909933389916842153570617587268854293218467879211747601445963573666291845902843148143461382987906803292051260186357522501784247420454656987363595658468340701222963408052958507579109703917865777273509918513075330301368226663477487017713325904521125271296090389353193505481487463298966988346450383971862955251352281404688156845816974322962574962096853257765477056701462122600719542594024351058104997996259516100653897488655545862924413091518067638120467364309964554874352723458084493102115150975697834793178166670835389482377919614656397110880719977359785866341641836406630577113198144377915061592833732738555053978654488260672048343331686018420043427472200076594298424605939193417660289394420066004277023901251833731658126684100936682291988491128706834931293833855710363073605755604560164665230883481728507262596379371597906949397628620422914018439976527320519561361871620960886208351606101263067401505994375281526307758611816837071065737920975112180649343776494093148752332719014844751596783314151878173325186291837429654972201518453584443600700583222964304582545515339451722104531467208490143395864502611705256386344844244503937900715737990825367065984016787571908794765431924052328589042625558368259590170262241929533273446197886324061743264053086946053893836669203986678279771086335116745775834023561771921146755006543811438038775930340524533790202028736886577066258321496745570948368987486244969535285042698451369257463254015531118988526390271941126862447455401945739862223127715294893012919093295343844848355942783655639693134466506256891091219959799244707478612421422373719232278519824470262537553544140183957051099214085924200200438948610932860758623544875272152565584636088003342309163916773945298048948277963757113513454754073825976451081795018808730029158175842668200593622910611630292551918240546179624651692482174253541611679922889199321588263475136977706295841820833315529622109122997104314895948535467895795292863774454110044895585935534866203384474661661036173730234389080216557959139998697820371410375969086045804320776226968378349833812806666071492837108853387526067228997525073936653281523648933023063019617869882500372286422036496790962452111291261609063125700106282164804665327576558221225032402303184678824158532827776258306131023992351203728992818503248707957952549015477494993180007080129361477951952880346138084990997574999060320791789695375533300078023188024164485865743119538472779438240504906210634860939922238409903630084085627066791536930894184925859666298241272255464027954811431531716384836667768343963871676259686409092639579897930542304891558809215744627004536682390346412205596559844699404250256532389147525172895794455574182345273390171721912333785519247805955367189569716522732281694106270031652473128176359230874483187278767960348532579081817919398122148557951152897863680461533397527188205567829501263649398289123853246242011974793920816217764116966815284492431209841466980530026972910736135799412629393030165470243939886405235838049998485793859133147220300945450599571521115566404329206614829873684029776891818770306274859887253501566350364990063121454669506972172858922310856947156742184952857757249083058834040991911204396430030990288333450286841970298876538299294981830027226311656779417473860135323192876190992901211136529908706683881423900070535396511566418392848061988196692578172336143147849923162212924288239730638114639287154014003150380457942750977194827061256745047022931060176543150187738271248582828193184440386306465617386892567929916494993991816201137543712013674878901339260615367969998729664153881345136893829561333288465504702302575537114450758780167672569816832850725871949449336602855336849745147386471769676894448169096597563154093344493887696377641069611059486697323538262135194540277979357239587459822459658716838079630519327140694244107157302701173976415889074526772069210239462645862547339329220997079026232279589269446049965570881424300864823452608474755587547096840550380935052651557743695248261137055320907206321463717384118542561606382371599472731330570215941751960815356362228882602602893647471615957930992894474045921996720357274362768288400725920593250452946570569563731132501994452537354070119607908263615723463778934697057444293303449896743063687138284564076382723256204955529251433509260860261144318206425379040201377530876913475844843944085988568034397049283243520207236450210172095583891695816850752375159941728919833518419224374761923450873885948059644321111498851900588814782037525387288089349342781752411440929874174266307453124766603833386404934790220898839199859577083946483702851014644194879453685224530926183884085923375121582123447627378810981476996997331145854936155303694558472641176948991781240527576839253852381043353305425600399858654969711152168855732547715178798789954144212931773950944309318491800339555018635396728159429615399304846778221164424798688010858506647093603116107832815783303247307304317627524714626507220891755587340493747413761011183237047610967489655808272961970660099244190876387442877166225345472652441575639824685140805562375503909330954058762138867078058683963647398001594826195843424584926213436367582205504750557606393860624143136732755974978081569700001401224444542386690022866897349072972980400440945659898342740853194661707580058270208840984737870263117580372196097910684333555410384580337742113148908305883591730799812181983151606008484396083834327199213650863043298634861785903596569719738711789194859221224079463596097382152518749847002005635823118015300577022660479014390593567065314234023706625232778032566278235732880627685935665347279637573587844373205343262934228101858369541062228137461653113726138467441459836226011559751436208090508223115011691388572898999891228550169819089284774494243905096047264480261299608769613213156785647937882642333454641030084483437017112480156672907806533719072928092438438941209645407136258240251438180009801423912364971792494695619097708211162513858151830800441541166182572256147654722439214219481025102184279136177437059451612116701352954866531281544534798924726392572767715853691344024233222991088498470581694126447418979251608708134163989932973840792479134234923194696892170990834822156405587932841394357241161981549689084425810018368957695981052979874030267879027983034103387873592690456666996150922592612062830128460936314635338675831344053821096904758462299932303795125713659228125850627613369238049153677435893078540581544928593007485428771951875642179032164703635631012793354831350910900257089887047266993331311367167675497289255836205198844624609897950184586814848090894505567738270151250538757481754145473132480438131132506756618769449717187799637781213764851246571780407991795284661693026644135031216721583428713398295064018973282600541655613893469879991522274687415279612039468173299764232035149840249278370163879781082867930712445618782217345030201083877232896004294750198896929861975277594338544284585381249439216292151316088610444697970246481812047473336481081934849973710528675985998064063829346995599473743611050092071998342659640451568818667480102227727075242836481719897824967026907363806539480947513358403180602537692822210717909506951740070041270427456502469990383788332232169155842259307377183402244484104670388968566727247256655091616261435777673810717014280958217242496833914736133969298281244231151870876382530931284169338489998204958934777393043101613602070384576868454937194217204801917418893468784329994239317502734237381464162472511070284049476868075946809024520085597303242097229849299061542703873860989961825105232594874515030793933385706147790004792138345576028901702973245343177500828618732487689637449281342902525142471181776496950197938792683382107544872040100546877219247277257396751383949464350725155245923015981520871343617053238811680021366805123604191888447278105447864166386500204743848083351723728199725012626834421532142122769655757764611233706572775130340659370137026242053699378170344442012029474896795328214736628869009717937206496060051954602393165616156606914225963807466047135359067833789018786415885211251406725903852875434361570394264890635177458946599943113707346308399167548664700991330264427041438073407127149115917079564512463403854986144038086327879761363761817205058782380144806083758370678432222878380957365177131327609282718794732807669650117541628672861966640501738498454512838820402745942978290022780802957299021196026486226266855067158766067127897139734335133923552474233256386183009933054104081735348946771103254385662303892926277199117068319526585505759463539731477801688157276065575426760610321632784794579280321560353017225661576086717418521426971735967243591873862218218816561629904174903552388233751410100799969508471037896687901893137435844931493202897945458084939770276451559280175690296909666855287693889586724574625166455461904990201575170647193308175372567961666394207255569806530838696246932400094648569332385072572617628857223458123685607766052355043583288717290688750342458283481414115760971527420213823189106029628874947957980356468994705093448261624445586057574650778516918984134861217453443841904073039687510987750570369210439985815193550560079804859287954154581844113954542755094134653589516560793106128371500889841182356209747653220353780013623883565815810337429319241023433875829036123804484042166870778031571968725649562288129961510180692731221378719424786162317813201757168787054386746250706150625219637879525495989181066544483506461958650845081744215595811817836430507849235388952505978219116424443995657699586175532850005318619764781753546432943394650681848181255575365384275198208979235948338750314786493116994420711984430364504612181817239571476700272233822117083438679775642486566922135229721904749121406236113379607324538094135269101566143539215183432542776808682019198735606739970184984573322134086067326383877460719762631294031429022875261196777517235010671625801552967549821642332362776172249164154449880932114389804361850746065804320175708457435496416017949331530794155799340759940223236650504602226379660230312141598569902081531657017603662144453185234417991510139847954947469608531295315771095707690136424900048014761608162217644835637293006768377622310002327353601012384613316460400460254230250983228507994870318179855163947719689409257443102288907678610054344175481151952011500887899212696875726657466719910141825549057958194796447219629258965761707455607760613685418624605261600841174209266402609608814899326064896819180976070147195482871784051759997971536975125274008529927784594671367566591347516840765072134132419327382922000389541413689898550975279761396655560638236959565884936227932465607294728104314112054890813008512007764582465756465118521314009882954037423514127191917740899459638802515066959245040900668691725354362320980574234874604283600595756170221520090530427069696669462974800955666795793627843504233827852766400567622493750524874914722600372044272824892251030550376035239327065325756722929420552270972285640306300364438058149824255901644157779825937391056066246784939449640551794251410827439217288629601725030145145307602782212289347891992746793602997571863024323635214361327351381587759075474351760502517651070131215269014531018415504362829731003905807784488857067321472639896435735023243898428830961381364294647193167242903806742454818720647988980534080639837736381155733765432973923014877611273881277755127286925592640812039108819904950496425771691365378692879447734686976953252580670984175610784723094559858952588122895407895121881207856377469019076689741188036042723699404070279081117442646483145124878864058021875754576616926649727176068513326689396372118822081564749641313624364355578996212676391365360464582065418092287153062344012313913473922077538363773095886836442720694497190552501352136832201597473924894302387105499301483279301050777237116131268803237048431693378430752878400757488835376593432597881651957636275002395283651318396823252760186715488359193068578326023691797561457099248963395027456882616885436984907833057921764680201898072721826735384535558393932681033426139787774023684826714865744328646727620504513763107370579823780613730539494978473182155464637917415679026427846506092033538666989358539568138294933691644210094307128049869413058780329663721629248844762659780159211757808194451960520009034713063465039698610192518127791732229127743695823743324747754787183492632998067219192078593761633279785345662353647134973688295480547834539550682795717437346488124866220781320119750099159745461601005042612827408383456110320960078538218423688209977568233614443114300697465459608058594412853076836928360887915873723218707599351268042236526542082077822976251157910198507482031755915953661320419416897753568987783791879482322433663015827482208016761203683551577684086540742971074623424375279447234410407958684680177987603054064936433708591701307460764196649370139388032371933050848550902017270223777824348445869424815033907196527171369162302487801643708549346566677352679844676500522090445811526191170883316168737838275163073981808839864780594260031383238500962668126360873710147656469322725418664363395124977175166522420045512094705747389385768522958393909108831424834250623092369943810139108458027335542195069512089037308344398043605965712645247673990668495635824607406625648415749151150227285582090994076675599696231329772095946709518006210538610973800624360272194935707260056960415729381525052612897671726180853764753335396267083390036931745066225303441810651296833107570666449165265005963031596812157726473480502535482536640681719445340746469945792727435750561549490511086722586876722302666884337698701276582688695114026369971165979785950522694636275090885837993261324289710970184760801379615806485188921377193442936865844317480320536729963702757091689807104333070914560231052284682791637779756487695156189337676527903648912323848434546402512238009227641653646554571184053445912309604676576915372903852928699975181410172474467660225633628630377729774302023644840852122434550787030189805612019828782446713096994578370276302265160222490126933329413052794601432388572885226898415894446536129467082402686809216861052675068410060138995491915942286146397279580610895665243161149849937112417190408061650268777377198349122589386787240788973351050953433009828677510694778857429131167524561091111032969021076833517612531919184235902138983827310505405363456063325911198660853060755031958592867583067223051018632135847290126130479851288554565956951442043381220477519062380228801402421891013545206680539593723887936737679635580466715682115781043981576425667500107490300236727529684470293789137597473070308696572932450207607094370110970470559328075533952258899475026248792103996075492946904523052990199373160801893152618341617294773286146562924568417005285852415120464134116778866999783144075044177536253653766052973464022850267641664150257183273389349528349671090815990804237270958960275514180195662254790481268629092926892921441350925383311754725393359743011270646452411218741812515821203126425128735208372009384042202536576269032427967496272504126467183388567547696739294924121555653149391032858941227045810896823699324455736002257423268564163455204012736609379808692463077769221264655614437350202947054834977057676272943726168445744503275346268985101103441656520855223001462558784241655749172583693326592498351764043602905889107942408138568571071490776860542503365005805983787720952770524384974885140888001926728414889206251417060291858313903196090710070275237505199781307885522180620828219092995008144607943146303160214608599196495108372667846706526738581745773612991935411045329065660005029834251588011664003922643206673633711532304342843629364975113274532277726345469454445074331083820620863610047259587444709005964138142594606395895326646473936625929271060505706134800965817517327404525291761352540729346305807844161677712406517775829555487856491838825228240420568733742542350801958848153569608316120408650934518680488969011708715936007485381823710305188111675597539616711570138750474508989444548630195200302623051824327975889679414640513078045268949490194843140451972195190537706708239500674544602561989668078098134407096532814158636677478424603909762556590193104758168686508298059374328455863587051154882868003652323758068572854601978333732487851171997166975697985932269132905827927834222987204065648720951579018827598845801755085141236535254463311674420365582575897200520563094062899098492302714535585798423773014038455803877587514162237490320973965949816181532870057277360371726772651755440159546328329471805206441252475345610524881229985483694082086061900879154889390375526892480409001215498962636068974019233879355809859033080981623346226615140597755648257140574658553221234979228484927281828035146522114437278961262084593749932696024724523179680428237545307662346652224153965712771184228008282392943003176806072460690446093613232992448819539466065754779931149258250854591634286154441362736977500683003537169331941085376736407444636799395235834966151178564077835769523436190669045182431230160494286024172887610910115205641254152180312613434474087517945322780150621200298024701913376117849506583999124782917441172683596456474871132291202088647112353475722392969891358378516455589905826419943035248292524988909151043464838298562926659440188120406157876410791293338764511409498290971125793507963688008496262425015959861540787200361849019039147782835717383180064162113762619848971165631171782183443543657509546210802569540770236430512286941416098302319085190086360045000270415094918244858670157776010222821779972993177559855165532624872175508407291849128889004933793730038981513443488469878797494945126337784887499938674205657353204030223160813334515806939718000260962792462422336162410005177175549177647707198068358940194699320534584454336959135922684057294011467398235235657658055750710945366040168116431448225227907647870997537317286306672827020677763786735610247372188316442936749118305864425563000437864475867620077950650826606707259497754507870763611508467943280289430678551657267627650514796361857628500258692374550247642900734302407560762185545112400508598377823557157549900421798623965942874969998641014195887663992886264580984880881288871587420495526055717379535959955923485287496682057452867026155908674004466370342998522282990160750409236028231991676656038326367390745531138322689550843116207486834184982061500196879224970798629615193837233383523959509115276934696539294439652065196761189063391479691816134868697817721830531938665034882376384937370412410936676353083011284581808039474384713176286497568840956907457692856735919864641614030512310974938123550165222610344163378226914663084074922141973055283404729233437409440029885263908720467007785602277614725482574635952758625442465359810087202528394704556803856951151670688022906656930446777706512334420723486500102707578441087468131328778722048387457417428440264854638239511091084908344313686717281138713830700603250865172438333374449960395097597094969481428116814835400230546449946010905547701335025632339637750802946143551064038224118290807502607896507409063435990388747445458813209205604536522725633663269122913064106258066191448959521328576538959173379019245706094312378832838737766679131332691484253480691657232699912126340030544264349133901717255001264715356078907580545745434761237086952937253351321994897611143277912142285000485606628116111149514015878717719636516302915580063889598583680345220810029560222537856276391497273283837248993457734121998328192188529752905074566175299798890303924786205703403506887397513396087140323247620702251100964791764053489994418365169189142006893155053931040265574096988296147063364120558379044797970854505592542954951548309605979825838841421665355265941761741694905121903487262880033994681499154129263468604373984843966243981979699576556832927409927646725675168086267746829454401115106870470177643107459997752694878446587424302322844295931446031064150035689124654056210154072294130639070063126379492532206997115005609840766660800690625584929703587754255600570847911056974935575154529543116796760443430346904447586965744398273175275386658975155598435953529184404973146596161460242795511755204152075838041211693586326166865712349237039809879818563207049168679126783134557192115492951332429592707295515865786201761737127419113792259098422888818119062719116870358236874076611621760084142406724773494572655935945718032981614928328635334632944682404221672050679923286218985199934382442850765605207938574752789108062662800794753367148827702158552336578695792646617057355571044189769229878354819299256174877234650762705596842505500686781596067367580499966176373596690243206605831726951800707235572666058587203288379228471676097995443781760769410602774015272912532158349737617162552316733822724574632169221480742254526181680217801475556326233114884304269527863237161957219118115873844404489221102060737234796386961895369604268147704659586457024977723381698153993716734583560709353126494987690494589804989172993186252942226166051230049507520214970893839901021261546078835264975426307797508639512167861776159328468932140814165654162600749625050802350403047092422231273072408251440669921789319123867104857639117244915312356118544326148173333795769958092934122341858483322668715129484767781352634843574525002055661753747227335396644131657278166204822684156593494470385848145303635284559008615837145827887912562448498359977486796769089994259414230373065521493556157733123004936566105404507787416570047697388018917362606680022680755923676981762769497585119283352310687916462602102588588185147010256674766955510676264517522062135743142471629012909707561637018682189760181592343855858847647327443787654802952481119088743038738042904477940458808012831133890231773489333819759706251234574224136490308611236701203006336727320100892056791672582429229423801259690119488663169461299931825738247227640210130945497158034188955610234554174354731992062022374973887947560662189407872941647608607561526895706646427764703580967943172863555285445171438847472303959709952241344234207700368361922094322798650401579973303278433022731411634553477763410540955882297711605847009809502496542913622341541227164584156527276891361006669877806281541389067213447589958678519304104714165160209889041274680836183487996557974390482845314055345466761996112967934409336880887469775718485949246982045166186362780287340843897351383920506137023663175174010975375053992102622560650157427978167039742589312614816773144007297647380631689962167517614522307885468091835103091622389040424210425342346798157318116069435637051705616078479197523960474596063976381528333778683014139977355477488312194332026443113063119165097572099303567803066797140726030441596731040971467351816284671334576191145645805550191499865193483569546306851788230027334256829158543359316058493467925921174320091346229736288990327009776112706597889824972822510945912966102114972360061348813639588396750220631312394417623989841935410711090988850634239241390252040162310471409864289594162134337247215712167757123033294628366448574632183181795177624477101011313964274871616640086001852884384176233286294732570786154003403412819258290455212980061189417164396539996487644710959788340859777472368050440976194810492742078634266422759670035103870353719788883701835705190370078405518010847642553859884580756746342705908688909862895887988943742270314030120290206530948481559622928075807219077100205641329607716664643531760964240881486200411018365525744534211159519698578468882730113442378837337139178896498908892698698688106648715975923978835745593424897312148238290747744292835539291128554729107325369141715465971179144187642893595417752900836921195575567211173218463733328493305045784820125360375690248916923532031164442700381992189015428046005531913948293990898145206312443882661871807991297364953648228175407450710806300014781285001113741385020653144801984927507874583708008371452420654520588296830622996492604709995906605862849431119674422843973379897912419667515673469308842749196446855745876267829307001579988533259744442514571186954105630911907333652488562904536909033032808192565253294714847310219864309553494216477235689355599002349754122490309485179193496202978394311734485613359092238423076001923588817888503723121998291756651265115593815817133958505615131816376121032259126820821513925220846551494353652333582334328426442594990910981342254405018686215346091506493728393211551901897900963092617661688807702671146784378641981812847676619384899123439743490773941445215527095737364102330161827960984288119486924181996685976492451536967553350565290915435495212687414085011720271728087576663669648165256775328449811673832191338145369999262401783703456453247803672737605282279193066222969153369146371575642490227774033426686982221648114236117788328082222410617791438971360564560489099466026021350978875049107799734662851711310184893526894366070627296686975544140446343753976912865955763122828911676387881660950545421372286644329600503406049816353351944122352277184392589734316390284073127392780424504875372649625849728531198902992265765389519949114630578710794505728579496439724685534967073152349265190510604084305228829175640362951812401501408652778777018085188890872888304666059125630858577965221399536309938614066140609771112850525949103308411606537823555660258437751907614044456923837851002697763908349676242806235583959691318848944064936689859565239533600999991452779327330363847520132479791008132135262050640208022321549221639305227334325722798487231074426142123858735237610632811894688747250254508813527158707385542879477278509880928748728049713697395248399283668857297116498922309848507213766814125211471318096591853897298986180490518124767239359490667377931973362130338755061396735129492875519412305647762510868902783538270561083777817283229280520320244548784939493675687286328783184875615288615598793769256345144368349592254637723776337599291564290802779941139138999838807750466044160998372981288742586842559325098674611805364122144440861996887215480709884419300663586387212609714824130851304513394854633079000624069142209489313001065858613920634933973241573082821694712499224573657892050252965134629504816515109081592220308257568907552530408852677678921753522410981419027011735862550341088186212957274996252026482326267888695174582395312320128647705105431940927292781806371917292760660444788781357194477781422253909719013429784778103205830874204312609919080095585124107304373588389372367895182406157229118404297401289078109630032561257652899872722888106355203739811609177068622145195822589939695611875354452305085215972238394049051690090416929274450688130886781292164537861898015691516007970722292999589651521695776371351593686982172171172982437474325739303149579687800908558139741280336022895567708283712630714828242950239564735559284626869280359498146026675493990173471553358892381235513762255629075068473672757537979787639214045974132807096541531632399048834104882350246309428226596246076938594138805137892621285074696621938836815047095106835784653439447677038173380253241555953959984692657801497378580251862250610792884493331758684324834416307021364988623401172155166132395338907204556015758995091131737653263160086675424980909726973557965551268403786819484828505893239494222546029014707166654121738583205813470781182231922320832664368465699255996639897539498455127625803670979075882160962474614771314795028124723012734518576229681060742369871121074092242363273113508821407105604629518918572364004756726809759112410981069496579259532984609129543541900500210645183939524709053962474806463019431166858818828911431346197781358753687263211061393699632765901712716343626657761638276981720141179799974877484545404022910239262014453481205708806719746965703314216612083672046439807499813475779773507203625281291653049130967853377673859698301144992635441246005969798050066499193407968962005214878889453557722224619740868227710247404654151456190562279397531364454058407620918218142853898101662524721217686517207123356356567267329989355197294953068424790744768959138248780087691751371925556953416603097545791407639953958685237680688668273953879380917379256337957173976289634504314794493028068019569038485807258089429356439533427040035428963152617396773304752449993129879521830906313702974429797808466903210779697267517795988201736393027536837681815281689789095611764924731155809878302588655852242607725828944778149443367688896888987081737993655371912320783255519578158898539580402343206356499746121783366844345629094883374318135896137841102231608814196953924579276404469955989010653738408615105518736548183891439049023226354541290828038418489433421192878582967835722220313602657297487748912109743437107431582797662617477130658350943929111295630041817648166750171726936987438158031801588346982918562616661214513282802948449429516400518033289184707594952928860295096782183519532790967369121867071498837590265760982428179623137982328648165127290545430645432921288202113609875661744941969529577707355201098473308542513268432318732570446510295821893272653980857871056695577251641003373887010358018561390907247073082230729608186122769402342534451313441576765272980110071584870761092150101650241022291282408519787703074398600645565489292124950896458963471771957448436187019762186532567276831660222000010665896418797169384129686198093726543354653896606338492196749883082438465825679260280618891390826611361301986356797424850965607593552868566060416980591159095724656842292746298609903296627938625188759767049675878591252144235760840023132612122983663246566874861128978681481856474643396087021467689783277915807286893467088072501502732648817683522816047044916287900383393547812136256932517407127781621985782487872615716007816506203653831564606605754311558625286646380490229219588720951961925416451562843337857595458854183121382068184451599692978171953439158112790221449842397033994060638759264742429111596402356072575029128933365287395007693818525920224136902437660905940995131050583327629439868667566697957074859322091606461126132337794816521676852204571481050219064144522018441260591492760203911636166283052870076950457483891659358551013520919374754825652154717478589389964504702801150873844139797349213765797928825143907263259587275744792957933081888825952586224660968322542103342531547233664775206431195116740837485201234323278993733161581704747716248796888588913255648557481556058422956365756187281822220350800512387593703743196873243097761329568051319355097104378036052708856629551801030316410654570344272171695195152134950087280238370560905104148654135044228839372206776402777276273875759164130719527528615788607711532350993915054761861296853912200837011502068300814060109379954942718793053951544757241435951090585292454081117286088694460223471228250847513403815824968704247462124895320028587295633321787545145659840339667911228507729650269564873181960614566516454991994906697160732127136447362408709904529843423404244918440606486315395119541006041570814743388071757412828501856592922197397626010266777655460109555011288392518825869848641514944946468213236928870873466738202144458046174600192057642524851115455928227580853899953672584302674649977503653031343159930537293621362231696305649429115338679921339973545199437656844955408848909107930741805913430477813557847076399534984723370518429608345747144019714574830367621349590231642995156848190647256679244473690310955822837213836077317710320245871809875408456308754041859675941758003075317940831057944336426788074429246739696183999261976348260319903993278730740866537663125525312141598122130687385039172416335355071338139772696277382898344090541311663681952487551396005234162799574615113620617162331794774259572277436472147833491458146369919337651543066434369834261600261892617301706677675801754359665296342310561269996822059748259858936358463360779430112223618801919640992317289820954921445196009910850339900103434150894993921902674477810314351132532221452470473568466403004300146281877511571429251860018303612825664692927705268355062826832344295934959404447115517657326408800423287825430024757047338333500594491664464481617478662905915894301230632304569322915049129873377847984022332134030041792625599513094631968892529066050057584102591226673427921291680861118188341842393713510794738737940176113475004795839699891032593641953007447711806370235228525370784144004403205096532723655010642193357970561745965819098392130699073011809087224152349327478697940736669834768264319781869950893286799376528075238517139400986655784037001620943260087738508530322560334778882236935166072693285962869660009884993261598120679428770678987291889745833469788304066678650030121876651644105579678986269766623320953199946515282680163054252564186639438928281429920249207081070510817059078044434045811032124893400493220849011304903967925373889895164782649711627004820601755976882964348960767225869054500118792841739482880920771771158154679366600201405935586999715468385658054259410789801973989383171885431192725975104636508737924464358625289345023473685402482674612500317717894083830533748637373034196398802968838691638176260368809925691893605301331434176627326286233249452080492681219463815252800322939610691997955557092480551448093817979471797745197552428367798006095261979766817400641283503903043623775158635482639428238791848561899903660799109541978867532197415957421727873676183447513275241960304014468953286483391184384645485643242157783053610033221024291904856740675858431612176021484471368130938684758190303429320788828964572571479482719208107986847247602190212880329510531220981916455903782088116894406249762108436888243253768026424709125021129259009517424535817855404837602288954694305424382853170945988828263674169201325400363442412112882399919183170894115749390678996790191968740295842583464530267901001235408425922750285793274156312621642190662215138460211954542928595607976876670608274357230154731845897172248456011245500919601308883902238467787314984767907328367093358813608483488163629424679681887866623499312027818128974844006833243858168080444029152405616066777480164257111962153731251983927209175468131360572254445689196832045086764947160752299418789706386393610523862871030876040109439852741666028857270208165023483690293036356434874970436796682297408352703778462893146231293729190624292037572049751137755981623121496130326971853415290542354440437132654285979495913137738944089874455501807592079068288505813481486011134497998714805132788576680185881758508624872431293130733735346285097053307664901538680666293778920944315033959836400034365817978541432861352775342889816026550672981935885628906759464382443534887657104897384080867189379645461154514386989459387086375017827158331548185719896295678742505212693670085358637872138159936195637903203316665471977193341955713659537631525061912211327659061486470493845241714040152769956778041125526258507553006157229869248977178794022217515028029516012337480383343762686340028861621202796334243552476961984515438571274902751357578266374085596109311788696739242546013983242752216658267357624586574242561370726874326756590619745040061248115131451984349981644599992032233000416885444406790282040896122566517533841966776357354614407896274706435544194927346199028333648274582529334165392938312924917965560860690187497911241271189210202154052581663554477106851388438155001367484009773139087488174697694314469597895867575504460828410136366657381581890579152069123884747336932586194069055109650325579091281222478014905285295042029558896646485530984799365123669068354989850704257260071430343812609217696705196319664925560170879271776588339225787749336617337272141214789176893370256759268018183349803322471680876348433543455460327784163781248143458444868287306770164083130128661639538621542731320405188837508976420721108086482118264933434716935545773935042035998420074867674839930636545170966138666169639964162537314667179874761698325717597510624974410340635615484224032703032133154552528421940564447049627593585752106573095956634007834204403167838881776038678282011169236159560868160017284459810711901274323294045022937846836190132668670576324950175186303098432866702524469696658467419051711811333428074035072140723859469894735767221674052883447436639731144304759174907137996707072600329548268238758504486666615216766062639098472165149409418089075532259351478618145783287858033284247259296788823756375438598753851777291002816597395685103713507205998544262794534448735612634188761900659587532132662203805563684879764379997382363402092259606305308602564093193565938834130037821844429113867005600950943007034501948856211955247138113365251032076800192499433426549342990388789490850656687723446646839209562661792584441017207126148518758045447850493465984954899665759216085034032494404707616773479365901370470696264901869216862999147099071071252192466375267807610760246990177318824322769595837409693881059658818344138556706334800563889774318134770868431600193562461570002793891344585994533819951659461401820824528074124062884444864707646901128687816330905927750962205601069951363522216599394998294718962551975946893598673692867128687260573055043924020639020106591119091866395072417240003297400094832905378066445239944337281022229652200908204142408313036843548102157659561337108696609168300567356378061846820972541295388370262604977479665646716354750023477324501164338818489147087237919953181488532630852947978504863470020368188607273575234328134835204795627519644404034485499674784948909510235178730559587213894685174210965678942002808841866489919125008479512938058436650225351826013559339333806692281708424986083159706119745916826816310523275563311091431036894654480411725028126169624026615646570594546863160835787463766500151256602390480560658806428294957158205682139187706353370231702650481021989279161644071537674173363669695165767077174280521176040076251993028604509004077902693231234307331167942996491855905139264212024015145123864109307966040421904490489605470551905551841203341328876927656228642348285825626249566452132173491101937547568095941989536022287871849428280936503384274848340315003547237171804861904685125071984313984174492920133078734175259248378849995344211024577888649632318724111043053658325526297119676926654300790037149312877178477142644817261583295476561346332885729722629484744737483253645179115624498810603075215539274735533443560542590010806159280211315893641552436591449236179174129278238470765309895239389878210791031781597710232037195907919184781471811789731178454491038373676039519848392839542165539784679994438318363821495089726625471204781534198151421330512922090717084729251495964841353776959512909958321722972120130924936747876422825330873781360318101788017720953619711153311892499682577961430536128901666837282301251887105759825686870077670456432126147960552766970777827315519306815690701607648157885999339449588984063007783045796800830196880365265181105239555966327953517936295334702725135953010604872004065587550130247173396094438297526587165166014251368020624504677998711082620629195363028884207152454795465343055369711526031555635440482801565741020280220613541762451736464249045122413237289706099728935095287446677500573680661080727244682716393097831179731630709882731540083309489085297979372272916207542507785488636133240533409959528032343636521143797607726296987588666858838727664023231630008243922574283344790662589971641760930104241149829903475785705389187833186086365647847009537830556317595257726566056629224757110595506429897774354529753056623527320776523532128918733070618058145055502206980566025990031636390935560767742699404817263883545827913464376777240723809953688052221190758293274495597544645201524520005159786682714553504483812734330259459006977383633304131884398671057667894051620260177858756213335018340246307016233640472626345754457798064967394967008518459682703635231194043187440524620074760106298813304291949976423021457402533477852661660990507407613850794558446032677062233545919708003475578506837859686453620661567874706200159493867967676258914926139419163923370531089167766266531215978805949401226396994119758718246257522656318597997715696662026112703564664972954665522034165863048837545723512245318286756391613703795093132312639439032139292802246530672063912322266876937975798969888522327029578098546737583770970897864791180186124203449379966178209565738362384205581555603439771164165977606049905540639875739443076410656324440606106909180964811399319248688638907827159782677101379873718163515012725970095078905760190030522010256535095057405618994452763830681064333314050974402310533490243878653692120707640897717046895106480299934820229899201483715615686407152688927082980026689618265827841262652979816950817099774747323261692469281156944587599177920195913314908224540898532545762452174518087428617462574009147158454394147437322096756988553019938705453518777038270613694346286064789118139968624832222248278072062135435689077054026272415606931959785257343631607100137993162613738247312890690389964105000757372120384698186067904269771190619404430589509971013824319502770304790569647099328214753302494398141217768219192475960288925114458650851816543592809336108239536900603675523475047500608687607018564102333921617189131795134370408415429692581835549780137166569400825926241774620969193513708110046419580040964964107712169323749404891831064929351330815376843062218805571486439568060837466957005477503892285973299173731348042904957006049456786886596878075672080883935197180178617592998825711815262341270011403038440956256081306687719110173503547942143040428323659940050934435817739651404399071453754555392845229256871550847216070142925818120126963751795991199884165311096338263496681114484437738068856405471834501803405945592646454230034020160751298076579140762444725255232685784749706240564345778681187196899976935139824415473421207407136045658209557608929840345129216966049634485362688145778064081088774074666543100651035010881283844725600489741749530903877666129062839701007874265589799028987444720386672677647891674409153587470364551922310154492134536175474483323085210459337068518475784199176528151253655054450868573046386063129432422095128794133255288902339465566950208214014571091083757533318340360655994815329683864626459872006484317429126444213061398313351278158733630663230912688043991604113110970947296841599923965438574274680061973631241230435063603388333645541899979614296041618709259265989137053696089884018876617653611439059273718110574496911752089464623018055830297095890753020422702433641913290423200274429127277454148468003693061081270750728786152603474787727195471021556747543920754693345177187671585708006703545053644940414153669662126157679065810695860160307853453362718233812186391146027271386573051533774522613066604579585433654007545124754010026498342593927453579440622530603865461050387001289026908248161681473025229007596137411547322409181447043334467961137607179404736257622570327999241742477459855866395636887695649278643781256631881908938303084758595873611452977291152872479611711592669404835829309231598292686363361220387767258370624858026118045487820929898936655048315358652187807259625991314369570316032777323621010299289815470712191511921015957243289124285306974692100989659129122152355025013333835861502227955553769042645360512178715153789927885425466145222090322670838177271521585035172209112277704509614223218964541040995068062529367157540797373053619130457471150418533828512012692371295843573952254180929330388618558162908413821726582106036357255353869074591170340333415870947881532097992255826587036215479282743897217562909666131064059195456462143435538316886536239274020748573506094226320568537853282035529093202692646346172326890057659290397478207908824148757826065164512652197362044166092810560780552647287838543130205883650976781295080059473249753539256868607531702277756466629251831888069812170270605000558446236969776525750140961326511082125517935822719278571383617360459063725283625936807231853670478367342695897915027722351575188944975650071569418095946584035683756384532832598835432214635570577187105161767719507087869327209577862701083586969436889900378317454778517394149639111732970853943330415515755875494490911569042932042954799961346045907440134306368593430323119760365991099131273270874016398232762215983358335957222868349967313713063158881523734641599462657423464888586386409370220785568454082051923166904237659490778858263424915872139785605131667039128017474426132459623890429315943970722939699078955677386874457060575993723520536600853943263555151638207958601807140801120340827600549744688489747589505933510052601708478119172693008409570739840170628072633880809500475700482367447284436842006335262931303752008929163852294257056189277706119980434763807652262170605127849351934242585747077389401844502888714254992607527808844365369044187224692337505394848383185812023175052506386134918941209076928106868831393645887096722373587980659029423844321642053825720073349750139783080471159076050469641544835666867658544321371187076714432249883034306117104024382420571172326258667786760573977496448614888155079674977165150819190615959445065875020971101587032111190216943532676555270021054332974536413364184811122291867427042419429902198614494842713085277801443305713926639874022953043487035106186771687228830083152397068188995324054842750503229587678264490813994284317919402607781434144314851222630717666476675644248844356939814541661977177738021125896439994275502900686028768315726125232572821079047343612271789267008343459128883275547428906189766961235088676527614679545339600722252069226676947260200940023590678528340021123583357611003386976462562680498130584536955041506532294006571216390786090362837054678739796403458954098755798169695858288605615762819224633228251417743153811543897633772189280618320732181137029006490108662913191325619555138504962090766492074023515192629179254608297010993971536827552187132869059342524597507542990422696354632324295358166719438782928967965576338933113015013170862812842737796767002493582583440018758585372400462765233926806616761585725907767657103667019695836037082714078339066977440201048140859236049470189916922739047751707016768685158001651972472104023330466802000326545037575190596920966147000376698705695764752518841667833256373052832759048409267804091686210783726640429077870917145233912432204247699367867055019885427262281684163740570269598068740039676015001900675061301046295323997056621871191333686996011946417177688263651246197585103207143877902024477565413726422828221772063506404293470165072111548218643134714954249420601255088416475762633131150903286636674818727521289442181631866690050250806232765289162828021764692764274969887731258236655316546919169915611135251667735312582865601548288245124723933759387278966382605554932899145991488783872843067362034822998184117591989749182815237680388387030631031850717219297580246585655413611982111979062859678630045579206968029635032964457306259677611136183548229337446322250250784195058556255583117044527167292557591975631177684322430432569269912079336445078537651039117343638551820315755785501116946857809404785734853487878059644523244927416919451152392653851872752635352439149460861518613445835627588038576776713833666513814726765839548093987617527629575356867562038009688214934942500916397043281659144662125892918596581010694902224806102036457444481726139150065840316777559630548453807557667676233429963300871761062993641066268675208335558413128014869199728973536637532046392321924872672893279635665118253564961741779212875818070709872697050977317095846083420808015976272582323397082098485858020778824393983581556842566608548190374506439036255740904818908497566273912206017245384118810716725026021476205393373086556576935632809366070807439231081810184009409381650801768704416275678371101174173514092826873405146786771427197099299107322090612074941332156339614710770952804174867529618596016504611669626375361579765949625798580620059159906554051600494781836176297246709204086741033980434339999780692549898164474918282162891395684183058099981772078241441011997974625230709676383824216081240059614257561788351500272160218115765277133413665791068356767043097402189884804894753124103172366263368515641544744198704283129396490395050003209749631992013532908812993250321706164436152437274742041304195179801423632808481209431228357327427897516171825861072895559247564539899665187685718635428230920784480098246017039584382881260643243420096165808968721801965692288149995149594385800688897894125892870455105553969929147157366687437914802104642296714977452650336337163147922454353898074165499339207037594645618129350391419068070260922916535800811920632291717654430895666081676870890105205953007286195456799997887055038627625255086711822292561872426149043132252243153254856703893637207886646666682597379215256413789311224280620980990106198500803353696472667091867306717543640661515150888733359713934398650550486435600626010421327088067892938560501639171835855998899077620217766348706858534203191808567239505602632648850871962727524681818023320171310220014571820895620156289491307746470500264590693641595043491221954513873611619575378844263181409154511787812644716818285402803197490358054902073858423709184771037054558220184783166885601631716404051830790015815667454925199993260578399001794964250890430517003829045673303464395987518651066463431580513499329840171256559231381701065058668053727954578626643497076894962358157076467267888450236548846362159950778298832810956552860301025186841254228843656105341009247514383676919900779570645849741025583616975045342519557984368830560497946148503495402073130136604041495133942587649176220941886294773118762870107575220783616777051847923274886548980396342344789799029188115422205692113242451822091495316637912667468843146090661879383334956089274234366610178331334579895168797981243252832127986733499294364741670962789291606777935683523636123745856153372484608539117072598490152812369509517766677460077543599822668866784115710037082046379968576487580750920647528790600108210009702118457418914535454024940884572529641021050814903278758651582773180244711322887171683497192613322951315572047061334641406428995680674786321397297288175667290045650395813714502394721980794371994870375703261955734043943380860846600784954903591773005929248727490928943817482105008495980338644739693817144255561724474114695555948148053842061060889612136224602170353689144889375627131675701896829108740023527513783444591084217993438172914478957453534406251769379928701790397771960900705192728091628254898557161846979960338369533038933062686321986169961596287971037109812547337864232537475853176485168396744694850892837610390653074684855445184276899345249599727056685895412634744592269027274374578837580857175056399473982285830765737481215944165578635001087578146515626712125872788534878441625716235236992116052942844472376005815744246510653103120561084942913279907087659253869619138447652337563513101022118871653454270140734576363330108157925321106949559336006461965176179180954469405607871781861826565680664069805898484156567383001927692756486708507615077112019594413737820424370692421892104936487456496665540797107800409730015959075952190027646564205383591512062979178573699506566362169429849576207641935860588705032424240793710124179103947656378100802162530895019961172932017783307509139810905165252701358453704464500760067461821820965919761634463732122647951815791769189860398265357761814480309052439248406239802023987440610950017689953810813196192766352186807258562430165879346932112370385232688342414478600990251639120043087568548382602209913696201770063552637076936111916393669746297717257640966726410452384939267943920944801306449615050934772203730074168560426817677926988207012900875111483765033916502157739672419798511858793950961596876073895883839947653425936661641478552346347252972806788166803385659651707844612077344737159784279804045639087982913471606801917695899731131335924906306062254835351341858426139341601695620743839940636961568940138127322590806784242118958195998940539501669924650502586540119611315333311500126965844157198309050359381342399352390661048198004847779646407912413325079090142892488086021047327664896983706301945516757743680083679521918009507507109364853804987205517817668277394509756189977581573886833470834879986668115851900143803669661933288367265564724062733942811394932275205860015353068341176520713485828867870366826364667867742622725802733481765002103408021349379159519636676179604604382325283744370088024334149476423973379768161656365470206446605279153431296902990258806667473292721761471789849495239690365114768944430208350632977188677225841192785425422947497733861172190063629273452869208401010434818138128899599792408333226772460002999428713520279561798314870419238569854835801864684001958927451880686940449237462030993117933756940486574751816036374664921040721926589125984255556767200487135665550442749304358615688042197532031578173869810330866452818979296146619363120422701387733517492554923731452449079882931000260680557821742124016635495472366367337089015467491349339761161925386226986516785084616236159781766575301905172484232695542306769459442939708314032852018695744804721346331922682244923037671837201340866956973465212704433394923238930629476370023887475675788491129132150209547387489968837323926696538113834979586613509003805479164504424000607253344876509893783810136684664238897264728266705011834115830308264158698450480793403045898892753083479877170040218137993828152419456722983914773691217989908877493054192057804082592759557871055892075916892931698408642238441021356536057673066070955281653728424686753799921537420927289963169710478770935288717380767436585645243016287931777126379271114731500518926427153016269771929260656322280845358024680262115753596399422871793205699550127272981853312420271244372634729348758795170786766363256008706088006366787439090548818851588519153224241112679070431985371031536738894764331577543276810017935843954799994567753494194322836884659332992308437967117677146541193656961327501508600695456333749178259483043631226113702574595889153932292760588607166431555650897934700807575534241425631739736690640959695305110202037706779031068253856630573939569617232303537350804469734994908804258614263294484012019721839703695321508468659064199276106222403955528840835301095182077860418350497026075061092956225993872252036488296726172261975002469402485996484026338033419362330076597117166629693552154267650853903416044338144170363004909506875982327187629940891195416463726321774621277618078149827006179784136310345249100783816073178853160052617968073888505365517706543704347539680251915155707938673447629016878160529195822000286251731772784479737262790084735209241314378532883546230905890060332822581403666828139243813290175488962927572923914387989103841459965125566091381462866171436255986114323508304316421119384791215523621398767182487413295361649209566038826181957476194273821065311715496210085861635671521701252614877527888044325654533082385120895018219224577282132591451452944938557340660876095537902080240539488214755266769724820567957452188676067350619105034697243272833110298128684765391883685335181339495080023464468080445747714646338985347987565146229154890488396030354765569494841533406290811414941093619989685244418652004323241513550388974727292592400551071679135088704805331173505236692308909115296304262375140913783009562295214352124051458547478473491180707959939572756173346199761679387442897967123999162738014635189185715343031398254658788843418019006415853006860114423637118102403460354061390501266907809793850282038059855601050389041298766134290732274840246366992817319783802187080308666449843705911275482556816298631346503507044999354296628769812734299646606078284647629000565922975927375077751072479499665781786686197893337210915781975716673322805987025197094226595873242126396927547250578532925912954251607916861654237812872025588845699747713428559865776640544063413973634322136505914580501560957375739563885034287735569847345270112102098621623010097883314218323376813987888324277112442911642954255792321286466266956713076214477918886132691102715561499148788639344237426402791326621271704972958108021944949316008033034307295097921069541675540816615010461717475576327110799721016092817971656140666518234125969272074584990812762556980448989879787677606923384988199946615664665257509146724199221173174040844561597148982067796374686044232622662683065768368662387604486050512916223334786774510996014663898936776374786564290950247992992371187460456633834452220898919900427872144391987077876499855055572093186896368038060861364088681318390409233627067817224634842749330711464771557714548336142715106896869977346520464368994364481286497664608009517439068736144278210831063713966912616264378553122227307008276986857531953027076162835322767526015514894437298989371312795348172175071405794146268647419592908054335212569972737130508301482898761187364419509116786249516621577170217093185026782542880516425897345760169545457777709053329287566922773170215726774964757870390269899775138654983565051970824621743644397480489641398706383456058625942188608341152938666320092270635990441925025981255954818369023552752483691706220058311585901177428150200599527122711672443034212724174941195421938105782454533109863563906133537113785307794148009322800904663677783572182633005302119542555029589502637529075415424513887587536224622841965003185876627211902547084307876568131546127556667994554669145418965809808767938880196928239238633439914266215433668529653597750261936781335119915525544628672383049637992133625516262280197303516140619859619582566564173980623549142490248408745401347249942831957068883219390835755257855256706573592004124330575806252433715552264488214363746545885641990118263071969328237383889925429353414194930003326133541861431363148007744170978167480779712862262040293312240156558875153319225055838606536197478705520851805817921623184279966506910629265546150012040337638082442347819262153784906683807098853504015083334235521945906857140313272479978081706786303716343998478423244087442880838578259244895982862587565597524121750471606132237365176158758806802690737348854417282281468357041910290726400983870860188241129164933149287267848445980780122794365567739272871007603212567056937384090373857867854372614966876351900496810991912206363173390614563189012545849709284655718367143300036140583088758119795345765684987105255152020532622825281320339115276860986170199074695843402698651195768790734982577604630250272678891951599515778158733950146084264882534351351851781583268040166096322648168992876948675693532878728310269594589236838613723327269546419806300466376759892808199938627085064948544898949162307733453351078674223538439692303450068681563875767574865996860598627957963864552138045972125348607373912575021162549673257186925473222966302713446348770412308053073979217948105892266082583748200542425522626942492934843221742008678200608411903728107517507792743935160247255935068572679987530569241872013239630852594854366392818131182012657788868819214774207963451267293985877205813416818204023557044462539477942053276936017610613857940873352689259622733940840857415827051088674809016359225201966974448248625330534461491623465258245950888869315916048731300895820160932688953953311876520096705114725510741296091509929718318256966790110880699273870924804888866707210671045645141455229581806553028161430529285657049635967388967037558784579594431375702158873075181613800390829762884229161950201193629019370745348956819019692326599793819431629168968682062827537639229382756659231592956866428622455698889171424916076697651066055947628546722836787390234644755609505799148442999971945982408875844389769045790415947672171946219219501129201855261313960977989682254002480422230438758543734297341879504151439701058667544479805875538539801474157400977695272912771328039158507126126552558818141194802788109982921543923784216059768658300365920679749936467088682429472570181507191341968121696151225957210828185106654448994219838631405362825986135911333540244894591246894088047351842269741273153816342660290528709528464656265872626072212079923565689245888169427139169533762020979219880455119413816212124934119703090688428134265546596132267042637667376602302053967259358875263404771156526318013689658713982146138547059781155591816679380935219222986489618635543843528233568615184712808270150859961717665127465881506143397308862477576285894883004684798963293703180720619740443267132807724115511948778186812267285583887538384762269376890633841139934814923658375411008766812231842444410540760931323280014149577967905306177606697705049739063844123190517360213359451941619081458709588551373078468068096555076993754559594181625195674033017033679501377358599744287701318211643507184485590622119417780269307616893156014120016736489202251903973166220116158917002711458403664655624603758298597394732318172628292846249400138592590990557939565949922050918757702951059179490619238260371810512230140213164702604271385954338102879251885742826329866511390116965580216558779443898646012654293961341866770581548015406025198174828084960645552651154992120983000786978711800504106564227731634509103907190260263319537051110454068800055314930154202753232531096884341955341931933302353452132171145081886584681803605151953795599954508730058372848045783874151066080996525331259690962600449495871521928311271154406251526018326782251604307799511480970404344560104988789632235443755439123611927753961174545147018799283031986566784473672875223287771206482961170209841612486486644416672590641589340832332504311389595289879238150207545431757987221942350770824408616501569403801207915783505019803927872100667700047225843270301825866207150148308722010945948301030028397757580747566039614764279920751483514540768232049971559067068211383616452117913107877660881984989803202762095669115501340133307706393248113638947891467234886861860165235304837090488350114693440283280432200337407548690840043151984494447881404315223508101399143889471149759387855350221327725441422730919025440540727547183330649257535284623601299730826809502489129770536135240346632297518926181076958863796923610423935103107729505649321586541015951558324991934519292250587743116736322489818952960299659845478856950060035959085928840825239018767108058508791249341668892350678125204601238226966483916537577034462230104389523563757295337255736705932990018454731933041260927450012937114205482151581134865904624360127229886904582831713193291452885944947470822997610935178184933443555767805148574363292443507727649635109656549753330568945729750076529230740123715971602263829271940917126642372000634502820274578914994805834163446646194577374421632917458245189929925557139609033745361056296776909008693787504831656262081835486005140002542465049544803895066711866408239984175509170848245315523212621971149995650842784600275975359092012675050483343306377214320503453251171771799826617989243444390917997658369486699103915174589475297943575568615852606042825407380526508053904056378429427764357965639990727997817078904950805169994992231035331374442616678847025476145444207696405844264674510352672133266529201832849646384949371616950367009471530393197562907625865807012985501015021119619922306962547569475153976304525892008600467326075258227133061040474510166234649088771431767270213519266575174324286538001585815547083895877940259003452841865611572410058649257764839865288296191169411742585429593388852775274927494504937161504471256885961706365710135340797693557286524601734386931964871553225930865555147403477571051182536858567255845957305884088865716208173207168679795126631654649582076087649303156024701267446556176250599681777103356179541097676707356382602713115416484170118041228897542910300027274934893205882530268306583942226324018222732711233555832380594543491976480027436470060993532164634436071251872520888141481242175837925294894958100795536119824912252530156391538203579679840466496598747600771581230081473507907757335529021200510743687728489241155635653359408704954266026821951474495613882856229229541733269875724722353474755582984879798267387156637812615334512593610098660856269944533266858901233163852825060737474229042162342769222755726075722343507328206054871905927681687681284934267346434771012988803576078723732350648182660159834907798046289326282662764645579940621425368968939497444969988589793842157253927659445702766872862953846294702452522860995017949034531166465655837596332898600875338237502868302250278331307764932582191447190245701463927181755919114920464130821202187548689105447155862534528673807676056709574046218924978927767079136311346420319911727151789850659718865400346101637919297435025495098415942615795544360783081551382807273354835364941500859193858657644444159995557556727694604418880916357404826360752426089484864413525706974724745893898612234412337391589747361713818775911697851002721706447127216415891938376429763776909431160302534056610653699176091297492015694262108340527909134541647280911372262235280771497182217469852426867420224027390720491866035805151043742873599232693219348910291551573516547272360889784674584489759573029505917642670083689339123383219878607373667104989042794331883128708177212581713595034607890591077722881717945894460308538475828006674462546957333079398163082298277584319097183729332633308031242977883437819391058527651520173405551219097587363377450424467751278905183836571643649905266607354862436379944745306728242760071218013818168724248837422227795794738782833956327578872616281231003769957774113325336293449307389309687327807476818594983664815144168347479183628649486765665066188614619287914093025261627175911006531696849970752344562341705557976305685447750864642233132302779576644661361329406691747263258575360932576846701159122960495044262570561908070891133426894292664288571185300510227306181990377382955957922283077004661435821779601641761965888010388565717028018647225093220221828069708734309358644182353990797677516972973309512942250129141679108295958911196394610851507584175529180227795809128465762175062775127157160811860509435852107616578910291325393996312563571546096577729657795042008508407597371105201037570096537961682880503401690296055450402406404573305377375536614878880986624454309841141324417172092234264079304453234134363965833212149671489187455744038787894456441016220303321516084167689687893989518896873589550003399826934896943050589028464538709447631701809312315388580567836589102672365932278777512205754080095460783096368069977596147228030784854011931758501119210109861176849469822293753169019051106830155990636599179935662793384581640607060085235773190972143308795836002180555736404952327587516281828931291362820274067250755649222538544147623982708862303201899375731199615949643643709918465555636797959184400651501055092228141134130763095551528990731340161937417197327509731772798746002288703762232133127432054366627548570232304908942490527136353185365701987485509796521150991961312980285212786491758735357019633535914070361039712972495065704324451584223243684857711542865033444108950029698661668246322562448531964503798779608651831954410774032928770511344279547947283709685325960251464052368064971302853874950154568327730909632341566179205905601038270211855628588831635615091764029256547103686095199274952126247063220140666057803383409738083901777552637166611567636717120564350185412749066801269800432939923245623459687841320470392113967102809778687454747992587906310243569706378309133027628844822480688343955452160572498421035285281781737990475387165634340737925904207669806765851268916248347714245953640670054329502673265977847707302089388336143136138294707447101566010743472026739874729692915662494596902743153937512883593322268869284091901436478260836470029070503205726877156629606674835232413556921079481973990427413605811067335780140062172297806103851217755205541720950559430457751628247178025102982252875301436810647100375911578037170442733824999260724927561123832092393762162170419802479406370377504948407265561309579449418246691861734910895780668608817633750699955664046173302121722040318744972428076359049381889070544792778915961467392246019543580805455613452561589460157976394335168442306396912920897698309835636954777042631214882206323866730067964980079120715282568191908016177064352820451890649101918200356274338912942487297113961349996270080972756939661260176453818463871634044365313629975375040245124872447907157414564430759838565617396370803197069179013742087158728674965445950357327209637074993004008923296692814695868401405049842417486808865775690459234348130813166392989228320469918242164091943807790899834881477410748898171429542248378560634497124595591015380166656470089628606118562466827452008322663344221606001761938781512530907990805950970583477897178137692630488438946081864240423995293612530481781941645284990145416945816308980624959863911251618620162712018626656614773941759985586085206644019405923061705414516390908662387789963399187001627863552460072554358822341605659303370514112906794216965558965426189778899219865682690948368694369311480319879754372742425907133734732849907994590694009564519466752833126355318815045293948472432109817913858774062439324139677579015102522743808306409769990173362869619210025722239269292342328954171475004590658373313684930777802937303548986077757839065410108113196944040086464409008099358247554545511599508489936684741476611441504679774537251907521390485507907809632001486689201767993563211339536633293643383632653527003826473812044133882170370703729712509595619693932550824068366260611699528108710366671006327419492731595851005043883962295498767480428185307712580141773465495938136221831265062478245593679326981283983890839541180826924679433413116788263536510601253133491235856949035212439671815899253658314652349451845477731926362682106427555509866353076388262098638762354656994315402096023759759780822651991963320213243326957833741494227226951733522588606984438589189338238527429721554765381277968130637304017218618805053694586495116863785297295372506218812240057928914691351736765368964487162837968011426042429782887527424332127680310514490912418547516196357077383814300778190062621733553888027256769759253913419105703630631864410685296980860204254379252028747787702903852824374916082356754841747427811041852901101847252153898355022867539137413461468676219548466753561573236469540362951016354831165011985854955858618081822375483108899338029493835197427322096012695568210798911873270469546207885156342085604750512581651047414632255749942667661352675853366838209009423824288429847427733222262650447383018678144110406712735894273975304657918712237645459975832773813393817794577025581145143843688264604951151676608520061927309787400160265953659928016590325345029437893065023408376965999252088693555804872385006590897531490188097634696230496200896787447561501795431725403390378093610810635983475202600934190884237798127718324787694162459648112733161472911022722156461447427322101488080133893850357758672681318590878010716614049943037909123775704637261443239467129049074597335502124104572511280254691486211904979312205872291893645857727218137699539949853423927176169346782848357055941262445271038931821103038787508238988783555271356459792990072142287567320772683021611242281513929833048541334396317693962613414230412934466851620593616590802489223997723170357738898849817630525800517005528271979607237810322009596960486255801919820208686218198198397339924636464184444894325345764511252682136358209060557792746868017639456959375938823420143184662040709245928402951354294324660702945109899863474791399346083291222537267506110279721261702842217659865906341702072322897218379139945130833182079223532648793172849370871415692840569750843053809094497660157152672258059998008411021183392558454707628265004084718850245406707250648618637997418683546636389329681284436303003448764232940623523747974381699492463964699278510586293024647082037146049811843974677975937712377627614051291878009849836794758485822298486551315273240553410396806013471268983568526887329741957494384765307103523567543592819207982970473449495827972619282812747751220888329439092046723411391724047609867789556518214841424106841841066321434268104055491444025485908222961771542075020104540703367057139982172669755403856303095633603362056087556156341765953193249119859928776171812041209790255777293464270103486943530387311160050320661132831340986471558053479591590412111582711808900897358992508820186316399529884075298979663085948197647417070039655659987626366163810709693318316470121389243380986576724631826085366339755076939987888662555018349278627119185605559796283988242394429226991855628529892855371641902346008811037817654608061325249366138225199161537272452337268244600600881763529032352088611426932828486744813264660321303068580288401689888952716413108119392520388496280620284848042386029302694262349681172410286502443979296982508311843079069317787259407363544593696242330654002759176517085375322239719784279262110730210286840361980464604632038782902710008315068688416236921800889895505738539385236188373739580968588211907299355757304137047409225945054646878040485256657237813236067420147935896121649104320011643510553096492364239656061730185928253516249803531625304290962819053942271383193746085290843457370953244231285591521616993463151876544417216500000153265927061798602446741089270030276944393094418942937909061872033158921537207296428056795046496988089818241974514924260226929054997099530142232277099815028449662926087123105973548755515625306650287545547741464099499037689901626808931093047122369572318341146603821760700536163930806686903822695145084248600059125814021241511322354929513333662500395047217695630134352436223177349913267816577785476824475373537589324976255826633788634870848767916888784480400632745301910157938583532858836258108805830170178355984496067269852010290980916030088659946442774656769228312378247852916153847588784463581757006895585198066159683227857220746241479151991855766114136605869539513927213307743442290257657441294132186540442333943718429647664179714694379919026551408797978805027291848000164406845309861606286225694127252621749348315952256047753709782767624506215258105137116166367778532538087894057768016984743848390703375811246355440738989192530505517723589691981286265465700521759736111876058068709269646857010773250049903375151814892327533224962495956134292985177858740318387361292862781657185363621175276554429856264330950626228896741746969597885957931604329546174562129357400248076714436653755704967766580213041650050414603676236338790016002935766253389686828062730485621438582419056212040186112788108413145112436432754697126534597673982221297047190383464374142220271437360552456572640400036886324558862186703159643309968537373321917119117530398024622326913248284000777626703742851024764700885956255806458930635780041987060899547848948539331183169816576918967371232297798279958922069618590684453343710096132607310067942644988639067675190024567683259472316157051146823538272527610399827765220402937032035578575812830383930721602376381853703025064422817906402502382806651249622551786029617293299828121682247003497900478858697927237580375857169714549943725722764751113525905577927370923023402343844132057012149778066706334591348818533728813877203268149494065537964998561366484503774622686305057276932140366867745429467657935272538151310289128251507262037167920610709077912625220324529826808402356937693832091533185504070222871468092490743927977877799898394955140652380765127409751929972487165352603935281738287876190577610393974042911138076591693329830994012722078077565538100031108504608044378669010167767378903103896541842069072975199184359335923760105032130474933844491092905144021352406738123715425979762579142735868369705799558065257655603046414054459377470495747793315529327291256967994438401464810075387602030552172829315175906012826284466979136323960254355419288091709335230335680964776679409976098992930486601615621208404355076134207029376078769404261627300595338063116058634058005101669491897439149893965089751026467401402198999324318354487519877899491865311597243011094678413242367682610740160842367659343371735091246526737581143647964607070960757251774406227838474674260255086234444244920756422314385796796879434132036283944211751452984790199231660730236605528578527694130680218294041007922391363771395954346741577241331991220107927205092369008451124986814801782935476544555415939566052335139872574611710297932728592476250697421896522237948203174228882053041788840091538823347069606336792580199006988996207576320163344614492759323049692981419228028219595339026086216136961774718072195101076934629143112704660290351951164178583922907883061180099396933060450695786891558777797246716072132400002513565493902540465390704122175547123742935998924319308091466514726614643935879734439921454473814765700112899989237091337864071645483237336238895537576705651930593389241085570393277520395348866443022315732480130650835145125405020484857306077897829040610288160297792720390204151847120613731079106823552486775649667535428775680042442888970937398300853019748419953024896827998371266132821862055809613758099850381780836990904668769420602667751529464441990236413679931642981604834328976631102747054802193033230835660897000578563530457840603145739804533662790314657652518956031574516023550850781699222787593861853460221980334329373540495038703856075410574813965677781584467825663402963041940837165579045750048824868048026371457904658388681185967428076192724228554659575972986986314910549276211339587172236635925159538464668624979597495050662503859495196440515870344072249985189298121077047800725393030600325533595981063699758295776551300680742188062094969426162162314587135754720937738027719771181140431374413636900370570113705982298149804667806218779746416985423971474226592074858998877098739664921648780295782617784142180174665116553827366951538066579070756506313240920337215124829419611075387566924016782110378784161987750451861476960191947145522896566089462662755189374373040321987597238213685419278373648164016557792458518565838573259304799041759074295326313204030826127529344151732714407156916066707898121825966783044126871251333201854037927259792372011099334936858408619133584488819015103512947754604739829558934176855724508062669685183796170321775741486162462427280285987623581659148804560493440122695103208031510007646680122487619399053499747361152710146067286897117005917521168219180777316436091055535759651014351877198675983958455505970699082397664882708602613389451463800819003097210200817016921294068644317078486363233655544070494844706789640661757078800622763480581896172343132462122343102174653843641429999688224695907356914583598301394203482875048174513110339724141335795753711457700993892303905434351231850752795245799843292197108226608926916983232911502605495525958327276263121340871882154355728398985359751293071360128310568930901734593648081380944635328037836699424876838228824976667080138002497880557904115707956158045592479359991009697469692151827601116067998639747723427422093917957961227493048150958850946272408651153923350432977384282932045780074578231427380225140851285258069211312990014935034741122491813703696240689626765931424129170282572033288313438680323251942091460575722378259619159856612162081385656692621690900562508225252775071916366539623685849385043071126230892163181892864348480514738136316668943885941952403014749881853371395834500865172996434332749588060675225692972560724843200276771957041441164406660148901313570443255816317274214079346935821532670531408680272586265416666703132300802006678626959060807457136659462800205574542614989509136087378370603674424827872899031919291598484338472402044625656865980327812752682253346062779704214835737386054275069911516995159955790996363277417442796253573674125136370756335774686714819075851114507675984743300686129929725720861137342308768087842973296503079422894645828192407575762430808995149612150577784905249257183775506678761135904212831927157866090374852109963400013957859145772503988669453806106491999643992840321002014758638277642857310831629960277608109481424262898412881250990730401907258271666653225228029105511209583524150484982753026229080581025825722794354645044096403322183002899948931135256183401399912355199648967587060385790870203064397518958651676736778818701856697692003564667757512475963542580622763452929074530858392010335716872294774067557314275306980017729292039911186502895660350418193350854956747448558439108142871268730378253520152834316697589852557817889386511185141888964322698844665476310649964154360644116058368945826802264922890815177113558041295199004579139536181458000469013493910020085986484763750624167414390050330348427796037387892179137600110899040050277877427742212305155766224763165511077951847158756103166383249637467784244287567938277636080764192470655102773052994740653497985882557207800108466297655989575886822127199374584867773318313274798008324282965524387403614174904187285869903855351415992885815482356452873032540970872715245423286687459275750472712889069181555205237833071035856783456914535604797602033962036637542134555022443650999374346291092537396267000317495585121658419655076252350149255365916773192887012932085920307004930241057963713252992835734729318068844993762794656429916732981701860963821172388334729656281840737418109032882660410712480953998122241828343811121152638603266187284196361802387692083368940054601975579041321085852361441074742130936520610287160500188108223563433144751954633370256467775529596100839101407612722832967306350015542427743540969589178887707466923377741938347762581391022156474458163934511548500503999321897031755697938113261348233452460333567607075306019874540330163650126741490141189137490452033566495034722813403130631629932874565913588383901239887519770660109471586447004350420434863881806944634324222446200086025941734362960226364159749197743665182487511948608533383943301820986620594233800991764627645834124377901857810901416484499393185794874394967529618389333726855541594705369015018076620536323212133043068515360369380459034327727932517767858329193287577176515764825962117702526643088112840993166251036058655226323328851629688821723009939280242262343765147313800208824398851401600616637561643504996225739620000744306450024069600953734852719438521866147511896637297256564657776648722445777733469397566255584551368630808606774690005319081081373806249114792431817895743330188687043893819700312943961507312051983722499029264812570091403836276782701732168519492797280056204979376043722397064721782271967096364746536304491205640267091073987824429114422644636705807396395634923683094651791047089323369318512081745353075110124128907234263877046785954504426702179879801055799682999208891252241757300437561939062727954014162135439149551131080520679259442613792047924707986577107377756710967450945582449377551735255525540558662270162000507019736492876065695087732550551348875202964248615141094608882941902324503093993237494934394183641785273716330798281203182483863946051384958495414019193939756807891134985586451953645593629903098539339885687627781334871583472765078120706560298173444497865460651397908496816896816863873429592304749505908092492350703602647462384412591539421114791849141674484192996097411307922659796668142093387318552630169604217824528423702895364352026935683810894570087886922951808916211225171928656022872615504912488490780231882187796837321972345420942917999789427693463540608484122374707705390076444960345302027218448350679108609308292961070472842257698966076212369377226183484333771980394568111612273171156080496372726532519776401379247744346375483846823721380257361073993178223288477884531434849768072393587228496512607848491794117635999182780808102018586193373683985049801316435136741207671462959216793112611829419497336788512533647190598683461063097945694975453572333304436706603546317654238503570096502416618719856063878162816334245356953101395109346643626806863730226779775509445846151873188554525875749321147327942277999787899871503122920247940541342147671490357352563865170011129130854022768878950486046030645840878837600638482144894683487433950592037754883854795411850763801498877409910093878966656610643708905737306803659602740197681974984568885327320772682117724342565566063202470447033997580166307631805183116003706081501029245143629171218842419802973935444829313778595744204188306449634137707665940886700284809655704806298734165284743849999405845432539947263725163673316663760696244773610529378164460205842276575068653871867335847659728832617586640142549639339818977798003048705075063711788577499448535580158661628907222834594580910121188206441737637040458920474543365387209243054530355641215817179793536625748993823822660340213767992794384546340853523923105690314239927845681254146514190342726349798815158414020980210574607290643246388485908607559923249869194414034445678366661552013903396302519856309750290663518350677171454223396407740146525680273013759843011804199689005053333308203101404544351471113416623589045197314784424880520235824409578176898273773120552269343337266735072260306647395859085273536388025873499578183696445768736302200417821633485604868914311996880673546200563891843042379015738368675147970456562307303832615007056273753349385015353403737314108088040046166704684706097018078409871432084557331068209305749340740051709607817233572646210988219575970864162613662679029411993428292144430703708935580730896214507969916142769707434208525443152669167381996519702732580496490836265607915127321313632018321576286421038676107849901968928140081069933084200267024763391389348895827634475148101777370732102254123853971822105623637550859334841585563428400087679084793516650934400161711217129924556839847578850452016431022300235935778969528663839114333966702503786224077257363189523272656941583250265610458484088402118056399079552496583084113433370710188417095610653802068308997293373186999369683817208910524587755840097782874235519754278512546120382968198704997753445894095202646193339324608705103570687142545208145724464138388379821409069366634188273523237241983804924959423402595067056183449738348822632935688597828546708476481959402347287573373741024252995652859411574653429655121093649211316383248150157831490821533666425311567870943330993767553142901389409526285104641608421975860870594546670848110801707526992769391310416271037864789432794601503325851617676851205495639115077377461405214081609253964633530757775233938541610832085373269433659230345520209816577259751841444447159694110785378395030600281609240199879743222474555682623698373852110321104022382022735139453122030327941412182489804417397744202578772696236981255237024016026536503018575939056005766596595757247565717689530287481620157113841886823521410940764771504649747502671085564230881650214792011498216001546821866140268882929399384178690527530151600628880500001629286252679468990228515919623285909749336950659759425185404721385248730993563632734912982562018298145923565075857469761371160383813665018226806952165156873111916570366163421505937462215652499973032673390358159294257716263229598086979206889220555493382615031499161532203709271754769458388877898319214649800648317889204014105874226917918746118769931555030013282620599059677658107073058130727989858830932530504046325412695624315040739497136162571990427921543740380891942543214170826478800646734993700119371486267879420675389391022499862190675423443787849728438221736320851107558219536473402851498902773978709642242077334944907299358249932028549117171386617713423930701730400547778033950267552602988088201801537633085762797932343642813601267228352566091327120161679687486028480683012119559659070380607745086608149176452100521769511740029332020317047752758851767216819306482678616870551910126926739849374817453059060800922003860192743773388726495705549441337798663586709678962764790324842739574707183378888224773363252302491836968742631054662842575619267036020152639854537076413100517401704826598473934445294272976822826873560293729292966612400682365378107920486393294652128787726913088454495454817719384607220812487327812271928166173574923554119523448544527148299534342214333120903051856601008350045922991147345217512113335182940073568319115210553321378357772700505998880314871401951689313834446282588897899278671147229225348920165719963959466192210186583983629839766987551657909144935295634929518165752531274573361721000083991532577789690851869023615101582540709632126085220522352158698624870697028608316030111598287465808179646746691171592056911537341957208587522922520175443126281036173398518627545349207289534709276943725578996926089289478818665566684063561163838910409405433635699176862038406163796025413359752770947514058619696234501612873943095187458549106305792559868966731243562342568242258468987462467889701191213726646829170364736943787175284414180014817338586099194530046973093320008679916059670708925260404457434916065246995869647809755725541011050018990833803417839062762898949918171418059127505795314014313192384555304228147647521784730146329652783068687359484851034400598121471305296297104676861844153688847332821619473054700217370496952548254608429354534662162735475022223777582466121453671755098837546261516185575434692558606894771780188003072786224656344218768284419717609667795384621093803760173786094019589303893044216233784539643883104625955068345640551509454846405267096678933610476744128343586370833670236877521078252712623632929958291907937448038354774876983062382862993228123882943652109511811216334743678235792748343619490015587241909720109220963395210854939977758067204210445951526782534015834722614716924402341343324917901652965938580643171761384758354768141827451651898789474804832681532119834247130236721186998899588428856613311999612106289557058009152335927665796352731295293474058904092797705540739683850161880584824843143325633319657377190024047213629857258164338483253736788830901117626346506048764158827705858079397313978882635926582679828128419942163138529751209833677589744988627081782619548498382497466369469763244085269262293873538804366111145253451615357000160153566652042616705310426735436965939204536598638587638837496516668772059253481007136538066544919174783961728305473958066067468046250457654667251373934514579731399057196674247960582582906634344246573203586176225665617660802532666730031068363472466491191589802287420190363258789212811097446007644886602818051675138499823969311972557703924248504236593371803665350362316140673597339448809396874997764898726587723706245036968735929946467119686647409171195746857012448920012221921141286229304192868224446178557399310840629877325302749863731230757558604889744024721168372456165354272205967810999573760281081497070742000607291933417145841889321902264038906553988927628977590075572307582041090984888955592098028643575876500027114283824632444147414672364708171591509574159649181291519434485747988149307419371233535577046433928417941193645582348198315738343137777526169888105756663535798196041701354743060184707003240469395476866782139699125210276498262017917455590690106024318631817869823943021717418857395456387070234346710314225136504445821672123141003523529276083338587470983685191346385395370564924681185533174910823776969252209327536828514930858292485053095620322596353639352278013356560655809075685794525251883162590912387781417885315568260780409116691985961757764173769871313693225920927305140730733293508661868586667792494388727150856326199688414241482779147108554484618381803914699016574293577033466261647658051991687032749121458504978503964713019331515233548158573843531070667028593577498520284557732945060063996430162425834786323694905633937369250113554967950254694685448109787803733631410216316438491794570890862840323939307268675618493643922856297361206929952062921603636317020630807346727307363152726852719671142008873190338595203992038608842801418531601206404506189573272035838351336426857306290817039038078899502391864229501484611448797360673903493374396519104303646661432544252860154691248163674903150121276404780112536443818772147313828508685981491138495736126106322872343846491186073551712165863871614540209868460681786570043495402542937262431732264085389409972027335402863680429244085428604656362070459088397794790029824093615533151060191777521820859438632998088797122723075807980318167829685915460830747677722990649525567593562453838659690145958370822493537990722058413074460711647217438374239305249310528162675414198914591903207993272474730744315117541719924793741943680358510667313887201516519206534135681659923101260810777143012526550958287715284561014209812242824319061772186443008400491538380739846434924464394263471046941875729322422315284306652265487965959894942223174718500745192921310049171180580239355279529291407412937088977523493841683590881125406330995747387261025696763133784482901884060970981360749969473349708326501294494879634556970786247981125881097073112121809170061015271897381900683107367111145099596068704959058639335159124919946117319452861956889499309842029389238059826247882231606675843126022547896814133618369224896142851052307739027211520528201966456970312936255006628277575612334203207892224275664669133361570452279501599418195827067051715483329610780879557698108135395265849670404312264766455236168213110262493428995905920549432350812125939270803788611010846730169657227662945574898217070986134099829841406557157582208519723270572935562829538133922727097428902622694620752424150680324074244152806967947081222567068866199704778150085643784992748148554289261779316165775059370134485564398304752828764677324030033544642080863138429622665424418176236392674639204156178787058917386216832276712385296115982034213255264472609917144959235078614966576031293794973879683469284985822223392698387769165931025343853705883465290182515276568160544205750847309431324760131071538109430683330528838248600434986969311903621895372763632742822925906278651256259134761693534725665688960716660422086303628281771542608235102063407397917210478729402154086585356209441156182520695054331462499969579571759122079393864890076682159293717781199806249043093456281461007002259444052473778378450032467131762041986737706081692539431366169325344865537033882760376625975350248531727980937481644975169968739962310996568154816202677930447973859262191707235517434368023002306647434451576997010578120520244082443096234161442776358182409315298833319261921442700410840321557838725806008185853525575391352375903963209604703832278294733460898947408504592744750970543076276577346323729037185738316483649809713916916940241236019179121963002519914948877765098009687988334737475760500464289248900828235302362394745540737304896808153366048031805389704541593792293721998712386470725495707917630727619443967966896609747516956895673322847159450324306496955364319244899953609623051811008477026993547604319389677204762639086968777426710732059592326656881377099733915506946059970888195326750339658576950274260268330199022025185025940840556787775327579229363511882937842505871446274544482764683442898574134556460193472847360382074614044854993792919097855258661114742991019046751657579369080702246420573999615990599909962115040893199367341125423826493022435880838699660637001258816249075659028144072381661761347439968397871561741135323218564966625631976966863836861677884856802299071445856191921318352088840728134368918009157278956447406874096862118788553837624110360787416890828730037362695151632918881977381884173514886035630475401731505811270997690841785304078670019547334151855958461316369247197288335401553414223393492810282194370996061294465831250212933322081531688464485807699857090859663734764385738794529042887258828295117043912707221403323504173033443831356510401193091125801497605468592303406906371292396349692435053935202368609579477335320688008123058844134114247504158804956220506692757193275414510191878470373010801775586780023155469742580463704048585157762295669559941993305326922360648753969024885236883163500950054982501283213757655704736554172960123639519768627169764657150693253882160491519262744301559064005793735806194241024827530971235693251009762599027201008684254423576502984954691776025045756403993009990663423417973905197414185367624788070463668211725665582940376175529231283646696578209998793146890957551585716127136779182332785214394580193525541709185861664670706920405282225784156381126024890378642842447321215637790917210860582590647374463030969332957981176461126744073780085597376516752684037577564801433997090906446833686761226587252514263121651645765195082651178943976392207988709220511014395814670236379590354120023561503923611516893719874818007141123612665313117616124014278665995380190071546260786707556455182572305901066240131814290322353235975369571657331608613419888240535538185594271119251300220734971583885470096907396068165949594302386429286086399415718886849144186767072772434839910022673859477629173944307875267351659862647167997527730234192987589784591912376575903117835497110412176853648840373734355829558681706603670751721641992412438150627426365727325426729734472699142324426572758180460011421118479823927408116852979437908583479691217556005174615093104135720582543608542291657083181167029200328833329045991956854750464975662963026280420397409914157429699086503869413138093210173630219694579774662624294717083232714119476911516470023521213724035353865147836063600320586774598546324462859732484824556063881203971160786828421712392301338372899685612440121049621048820997515880816362317382964539275003587057996375226103439212584942151035781692526711834593463957111724782399691382821713264690538117209869048692971631199043029161596856274422687922183353926621672111530464119883376287104646579116401775133640243710206202239926205115687312649762025729052288974547154524082382389901501664581645638995472879036923065160710661272313012230971718946498210915349207284588697030644898684619520671679648826482043435986959576657996742364733722775035218001181217073926721862021442282798977980345987696906628714976218987827616031148598082344401247768851987628770893565838395801006221937783829245061152163201111269806266768454670431673173469487847259340624475984806899927963691117815749304811325541958763096899988056203145268476972813325424813974691266041174733333007430664515750024276553626572214105743353134207169270239862362527625025847138687398760328057040198274879215725859254216752434635383788204371159184106066760992884398657177258824003574714956333088509417389273767948414647744752541648126010393593934384910587838195041490321546118285489180933699485414782137807255497318137726487027331002745184247048635264665805044505687642255258518139138586701289496536387265613230497741839361878552177872101724080673797203970014225566708130987761562658191126600362417874556716209265678739244212689311348953583255422249057778060743465811304780936790522133265848707364019828901802636088453901002629735955117518557642528831778266589612287965586833435734263952500442963982583361152782077451248930535474715861652187941101391697229893810445624340010589735164535132881465405597913273378896908094384090724114261503757937248763441787224716231542776792965447049365474471596642168475287324615376459728625862174549477364853606206745884332298013276616496110705523452930651858961281026990358280908722096348509799543458567725780562032773144019071225560009223298865711317152004929153012807824096829742847605756766734936812940953578109503639852888040469673710060830246434793569743590127442883724048063980375779488790921860729588198741486047885812809666853133129632549691217971476954334123094138122384579869736549715435606078192090501120400165285483263673241269231335098579759373382999014859747902354786432450073173358369425204972676969347807532259603645076314973763695871817799734608566884372914566474226978650990797309033964523532354105766257582137907479442311348586136612154626404962836635063802466393488452107862003490579891248941061909213922580343613146702071584874866740978093778431903387630941027138701482170250291644718417392997569359185506386859464258617759229668146674295406066892389547620588144545135905267657739023505771103163942474466558674683608511578055682493837433668616255959219856460886875538891091984850436030965268793344613792019910375642513943196758926811375942462519897222982633462146584381168989804106318729996272334292109729928661036996246966074121348281548897185102787282490522102836801673105228398179084338317439533761342597041214623848701162988640995916064766250271277895598352119283685711335703060089760052578594543791777252393639876630320721740206251834078438855362474470206104007187560401674854219928514553984920059811950455160483955749265048981126746065130495177856697641262607881984209842391502305306598504979945525350229260822535689422246226288654638322444451510517903467383928466551655046057073971368082799712293275721028072804163656053704454334168361154472395966996204585101030788036886228502934738026169244422424194757191032317620599101146260778676278160917311700298220326145900848523713003150671252246654758744962255975412631603592265773833141858777244180109611909033671656022304535887119155889661663016950822080089483750316920211239262800205740534890111112225357253715545538595023532094471404269017648188109800316653922985008510860677599697416344798003200519211076474480601273703504368501958535071259966075670949777192016506749784519295901754923138197524034317613357744917145540375386952163174432145292309225923938497523574172682268085392544543561567867503003076548173885706003136125053887491939580272628070199137620231523883402576446571252619336302114127449481881532770551018240243079513697847431936705309889501206667267798826111170457034068559741058965629080018338586457636475984734126475292019864788308348380220454578732948254227231686539801435909050801323917590447833813487782392103810760261267353799405965840620261414767019914524821939006921044083822029393306941547101818602829165815899654552973454663119260900332319248559076553186827913103331857309728948694451398644120836350012503372495992109170600439651815570135193874657903760391924511472643701987715822261760419018232974315252435386782168275113622519363375099838124286822204731381607091943686429220435314395651657546754761168102150811761172961108711084866111374143510845027189638536318772471795407878749253588261390129537626737506940137006307840469072613596151722982817411720942911002340111280182853326400961779950718393564743919512278896139933956620770504263909784190676515908860528979017905788340714429120471430014180403258570676859428379206782089836535652247581675203216660783894464805293959792212842527929657109449371019266031615614770393977542741167471920802808699074193628179866819004649197003001712756515401684504049734077855292476565188589323996618268779313556025475210547370727004908063612480527944622131876542456397859752733593344697739623862260196777953086769365211640681432073092654893884304150634243005081714280587237924315198855668192810689317594592085382345722566550970741633328375359132369807100857311455529326677822512304800252357710698504670113359936512014435847228738122126216787249209270794270476626575322344306422500246367019674879117722834476057804643129003833854368771218614363338533726674375566643465666745280253796229371269021222212845691322304494811929292246176988538844019843381071461403365689784052703039592092704157479960923583028407426534601387177293197312524864951777961216416004501994153102179471272867259977218288292500242325027964457896191233324676509285254041871105993394914270562234831470870742230270314637044024676368761887421880337615007093738193207126538897416352701999907155867454130782487125484512289107388328816250366714241862808753088486233002304945940762959924969561997942797493110244082473012058893994198433232274171989103582539625138450113253234618178619857904733042247321543203164208891361028118832105992544672433983055450175826109600673448893709925777532928301092335924428402148303886197822665545732014960290666171282757552043021312074335402940484539553356601929804920735388647598930814135600081810231008250064585395791953679069446844553346702896691300993705123416376570955822905068622763426079326420773893725272878308590017145979835817278381303599701670115775125701119704472232711832293197177940498537915367057893498853235508043104048678013019179646414266541124016762609934283442559703270920648239404553647105872179362931435119318084870584577185633265250578675370831704186393979570789126388455593364526598353431067910074159269511246737039291812616847068496608563577939150209943422888972617977277573525311527514721734067572997209349236189472970083609318360960357861321918289953845305443254560212442641813821610335847470779336198012160337683201256429537776603633599298043847961501657555874471938237042663925840486314855460788204792458892527036151981273327985352605718538082584176519137961332009898819859487614970927351838494534183404429045932546369325344369641062411597731293341358503065583894529807185718501362761889784023347463894699099501342568250995949788102243096309308797343567161281883743818297481815657209024213964343126000911830723557200725777296287284415925957414776056717655558512281090895491892470836912326660108739111450871460356150270419398729157756978668883849513902351993319848870525975033207072681269663781317477389037804856946403414016245973993799898998207796683372133305197342832222989800121660123350462276567582007869926687502930128292000192353477279292596108074993760625417765296877589561518980959752096239217993581327632724146417441324912323082196919520343826557876508713459574559347525129047330134162132597378751314054886651263619328169973858331487444179500763978058473316650250790118838906543026567029899775180703084972773124168724899873843831100220027321911935162795092809028083753496393903782126550344603231094019149108480949595822194734615381452722233251345637455249272454254183581536235253818029560613235954541220301699964797399116599070838865748450275112056740047506752382854051333445939538038572654332704258586885869255709318655947952582097731562918520254777106691944792317591513954735164333178619528427867689307026440771658816610477247081772485132002084495298278246176548147973194806160042635988337236560370013195375801491377032395048954781000256348605578872863222423122456443580968616732501697857111818402647668039112081524723811501787386440460053458700513785080576463893129930058792994039449364784199566199695342627452292369358677688101131096778132564802376739058107946520712200534756068562869098845321109503474455677962267167180705319030475135518869373679431276121865891633533047257009042075753411541416398183519392444007402985724740619933061818987567882929363225394929128019274454702067989174259063750830618270280071466345003121402574404676787850925239243488410967418255170541317437632737513242056464486467985934945809079865361356838786888010710169378320765019990322603881575738346515585151594116664886766815652137992159606783256261072494238067394311352793294553148761281677453315286644560053305434760338411117389396749420052244732759521455770590835923159288960774040031114639447955509542530305515041899834963263476503686071045399800471527761607007011149951827814892133358823294432103447270375981444394905122769390686228581069701885922601381501057724708992589044563342760522458853378108356768453337006358352887244194475207116113109641989461856115297620584614696962381143039896374481007006123308368705789225078153319708254873704560605840194451223290265877802378258309566065766845251980332715438202154408691054899746459244259223726023706453999220233095036069937202778253241382634802104199197140379075794150002284486022991351518857949402544329420229652691110150127106973421419893416056766042348855735518355462932832455753582759200565213484494137404972104817643571947316615688245614101967083384321328140607655826583227568692833980540777763316498569778302574629046341949296009563900733570621728938226565257526192945346308640212009560594091506997972059137422514111722678000078729798621743172590353684064238338550594735105680161427010421247688172015410096469536472239000267391190734582776523603685557501840195361056865501557211564859533358820604348692226201704450856087333925737708464920897435911123875629211350736759081062311311081154128502443259291647120607349713303517965727011354574786137982402353315669723855231530102986549924268605182500639273235569548198492971266095954075122391947846379215923322082796210124785586145200864806210087649998511114107238037919805770368568458409570884103261848805664813854767646692653983827063284155865427528933081813302278511466447766890558518804834673979237292359361751931741624125815429737644944683431502356034969744077306519952152540164367730636153499182292485546034443231541786627177205663469785501484562021963778821106071200380763161078557985488299167976635074818279798572184926224832089972183953149817432707692232427273140843465852028920455243839627299558075386015257185056759821252683241351958233528431392929196813938975324117197298236569922503589105796413094549611491918006507787951027689743384473555514156206833577669733032001104235654643411803102351301735812822215200528762810556869272723093830126895672170992205795832003982960052765879898996344588650059916261206312950275236329008251259482776886216902723351151484505316251684976956812259436157625013239998737354935086887246716077437071351631347024294989746342456961273367617820155146035731201945379905001940665901344555434340160023829903808491434680177604482114577243547267855213880977533538335245817405976225264245428701459725488391947410506664374948569229984141395960179355774409452666951528795193541465933683088905844866750249570189295179611084980898757726924614582544796592297089552328120805072040303585207463461161024407540325591923223615840277765511871451028831959997876468370975064614215037155466769052328877935621227164495196347374076496067550725616207372002311669866829255260717146589545423386126370423987361654732927622044538463998904722365403568658268453921431661206920843794800026104371933037700221573262811786540325921261106122446114504040454995493655545216162875273642044020283552808408971354886013076320499952732006134367614254307487823228265824027092721054483480686356521984399692770261710485139714796984455989596409523857512679875198484947020123000946087758864429330914288384680030657685863848436476087803973694852792095311967318976719965530910672182658615361957255078908928591109295920213207851560538842129594459852513080541492637566176744367067896423959857076310390599859838347947695384650906148419877258495936945118231236924622779629728087204666612576708452563179809719427238502182408634889899070647769366623582276949695459673178967846131418363181475861746976192709973315360926942290220484103880435000076075711662233891889691086468866385441213741069143882745083305258731410921246897818522506751798599178872675688267332088994934093625624078632451628332203608290490735451768309195506326501140293037987056511992447752976933458846359108174419325874329463466104744194112106473131644236813876521383679759963657005821301385615311666358402783781514040332354846466555648935842474215820253236962479579433266663691142813027065292508310848523673150532418319816024055075121039209787396878487480405785519019035994186903409284415675950408969271653509583595108233199681197923007920606727297349686323538369934386329010331188826113198346136991634465555024879845466342847548679128058599283484354426653228328111018788798068274425730554845177109105950393414855158415842401725675951217301932022243104065134293661217838518506367667685023089217895226619499054409622127660306601909383318556048240718520170178288538551606370783575215396274261816530438613075903551863348004530308887643294910500860699334511420054567565267556167202834685222219077985913104495461243401177260964208472845127670581429923693700180280693716591506812797319814785027212544433024643948987786295868988840362575889406442024591776401998280220106725158470636395962910922286610245662942438279285134393940326095882728378727773882510706236557945470791200460267492514720005499596145767994138242756810988677506843614393167491251147128807694198569089306812734095755295060160834195373396692083028354232846197551066848342048738301105228769934666104357284718016243767893157357224705232210867413799789777830401802889383420764972603936939173381006551131957878092657699139385456781502238426530153021985182878854565633921260760130055243205814968262228081502544708436373371167548605759751638712608363335420305428649190601440377482449547094569623105335675941629102457560252598868230093870369087997234871525736814266927150623808166399137989801891656594674666499702362838465066306355704319296578396276720565824760121750316131577102122135289899266807942130593659765813143985197306473563012117195565384016651408096627383387952915414762755991564194332889511235563739190374051877604300476194143546567511323603567436434991094752098668147202534891928373223556918651803554948523868356891486741868737447795036469545506132668431996641752917946656372565868179278238339377016516107168948192540533174967167623094895633963973304531916709854082295515644966443171401413711018633597504057963685911120458260642065180528596243583608515063335700941320991809157982782506383045431323781630367047785011866092797438977099183965730702005483798755406256508137246805683339470752720554652701714862016911375016050601404851628037494635118802749371213970921070921219971583654915459022952944460760611906773137602196083515332138243870495100088842326875782551570276928935872918069645118679729923981272750242939524054988416870574923458532930634371830502755353921170495398085513761096826920198518522021152946941795844187147935230590269834541356705250777146872298045539433960166339044170542227634876050021779616175069722367140778482358233734106472512390643692272780255218824257157718241139899243108662365587248084917779716554147120756637544842770498753439895022061274384666312771603456696099308043933160941641811593117689906885542471171476167762969805387371349548004810595748486586573935952979809250446631822171741180836587939973997635245491735074523656327934883260670223165817081460448132936259490608597044042609527521353424455616957089344337322718405376358435767432938252023895036103331139888270334961136730872553121774961065817268314415723289735385933432630856851480832448666901285855381633664462167715048128596964421629298901810346785509440868402245192534741915686336090593289500842727453364014295420624150855236758542803753422794400345277787671132240727263824092875964575322060759228634126200995415055589374037522124057581983459080423077007839722851835990043833009845289120703546937884026539650036400516960991656711384761411490153873000274624181009395033629521692142696918531345012769053880337287525301268902701566846481421007803961578757873273419430948395134773081196855586534807237251627418642361372841515467164123103467968866378004436589724766866586034746944557663390514081474315167621659744029816441069752888972446566180819753343099263863401752705900312156863699580846031104861845418078832357140957408118232959600258911913705789499901376321212147383471614099764497287804114402080040513034810689789814790293806779988185217947337960853739301969170518283925543882426653130645454924786879428004475467782358249544357911188980749737569751853413866301759142501236763157902196501029570527325207547329080209618489575193063959113694662597569475635125069251691959702633751941910119587436609314327339492733147886857098238186722213631753507032302136996907454210073212640613093543271497925495357231164134561975051634957015028706555353593290943951875695329479424654896063976012972957958213853339257967469260001093513537218331670748390055579025361512460862976302753421865869817058165838755331830696400203207493849055893311500802230368837898313220784193792771361401356765865665188213566827302580508044755938834099855470723295837271043185572865913005958316426710955691414520470395478516944295653656407620676103616105751317787086139969152175906911581305619349937526836580570777243450060107678323896070329625475855684508578053593834834898029476202107434354406975173709627054659951538511754090996778371885257498097813380501867154352988890587695949997686768063242638389290517616853704724460932132057350635295370878755222940298325490689793606410163305297129967985315605536375858010437873012897990004213502402885117467786452990526575608994657450640158769102077328858821234099098576956969408612777359746692308257298802774231731752736040511458276724039512038241285147310986280087384644185144491838746409410848621623423313050378334874932351063153314629983544048908340305539996112481966023811509071206961959903984385874905380434265486341542877664012866702122269424216160447840442773943206458011088917424703824860373055082046887562086955736254048792017313036468969574723412187415546262623958968214732196413854129427827912734380520189675669956702074800649578655143978097660205059607830481974774756197045210499917138754569611824356669279871714969452643294117815078512446262113993359291484799829185501813030159249195821698911149867659324625028253762870667518970403450710600566980288340378729991154600966001131038192966057041768152843870161132526721350216998857039376488160682546342498849047316380133511701679419434513401954216216199519555750871271864955317942119074170316597567245002492520125412478584372294650633159644521679025531526240033626913872786853546761177568300768874673458685651505739381650526695601471261856414571624990672209098884562389622651674147155587486551184962619871743936698528407465598516261929559353996040211093923836814607230023130703489613456554025457149878004551260121784043902557000092696397518505269840867308433763261730338181884932185753211091972313543915223415008424301504054928935136118302075260362968067228623912002824630631653045609926924620051669365289392157774541248487484255635249370751757037468678958050370059704526000041588597460283647170891366805560890036638869341037688967410647814643426169150804522224188418617854044480837738151515948925262329963919375766799650971392516005843552193618527753512363746080605174050465714083157613614286901777019320176420191680096699461859860079713544960739346143853279682862770685021681553285507797245155369124755079078523304634152964022818761884689145845567019787417445169668313290195202584316814636175007604450975612518370519796000837860372302678788389069137057425085158003061818604880874755813030813184418339124742561503455220780815265231988608097867074618393788145191197366429736596493160037435757558764148606222096250617693923652282278019073012310779445251678166895180426536017827552377581812960011930039520061663587985355881207146173413466042774585150467610073047208563153918344187168264976159071656525210915437712422328125619882274067131571237559105801983173743435807993363333743900508569836173498499895668240141744389805062407524566550121607161403814141765344731954934538995299836007282808417934331261820090253395499942557227474704982547419821988399766042180861295858983221179529441139046980984482639452234677518856851625189958279915003991792704635191205342098394334052921436047604083665210747737637591050971235651545964288769048960868869679075067128689558746746295174953581145412361168453615979542713949838292903963719126438960463663384113160279570748655988336680191521939906844335271414766263517299944173132428766121186496632262329153439717475383686937415152619073086570487493250933202928831278035073996865623354773203950117519675736938996553428540017916322713264003981139775229846187451751405647912009928209598753182848401067267922835066946431214076475460412844893426425012172741162480011656473516848821299606884154227993990736332288235439851876182163471418321403926680489551947009089132359299597854423461097438960429699724556260317942084206825156265578820633679087865721798090164644244514961496167638790822165909433279173372747069486384655412981547951781103696103485401686225182123325546123485259749727844558200193434173985581853885105898717966717630080042189672797212299181249048884420476624635619504937439333431448234209210506310624309519799604847672203330027159264909703430209544572356952056007715094000272714081949920506822791507840499276720046022564999602420165355088891220818851538434634777256224856485815370182989180358990604589988184653744767145523029590808711127298912638945527403685157298670482292370730335287698002368348922615880412878501510030155243821554733672318107381003335645119171297437811573798272539943179787896992007198504425926008132547717941917090565901875406746960181421021347575325849293815806881840760164938786688740082518839568705838221652783386642672933869616753598817022100354262115623817867571498687237871716713420598825500097169373416741508485446861818782903958247357746719777981346604002586141843438010326328892463778925707203040243783489179730677766175909556544909855211224843001598733387761042221417351551147622502678794091797130573330011719331777181793950830133874037531180479221213056064875976469816582188484993710928765982116988277486500724277879571026190432184816049164782119225910467130272607362765183261967433900347410207628505172903719294823300373745133357638356863570985996735379617759197637819333289425746001771738563165347679455907586813532186542271264812497078864974454469869230135896819495037599687465938100709254443862916336635924675132339013005124988766735017959008137707559603815945631716497035312014444548460779858959632289742303536726703882956104573162810155301177467419805379807012655596981432816092337175618712650823111283949111686247374267333815789231126102864317829040386512411131559623786087256018551795118679082880274524787428009773131252830313303087232080732508585465283565690351021825082676799640589673924511219277513124059565123345252776950710008801123300403675796745524123289194368615184175523389561750095768348476065362886114699200208868751599112642111181852770763688709727171335566092742558116135282088582295768987205075384873723940785859482398763773972099933987701093762525899748964864537557048215076213078971172575797609530583644266364158560132791569773632092604182618985699549753789685310078525525528973360141784733317753119672675424785246704304470447855893902900242397636616714802499819800297355493303081420818830804407413658053558130389318025168334320984577925156278826985061400991180527338000767260474540712196600696673787832269265371090039084811511427694639527379667071458695790880844389044110044455364934751746898938266895983561600278205403834192337704065793371270060693570267152088626215710986437691437183514049440736878180855333000009682311035486461634784509706693980657012978935856087827836563565523864965158640917065647222493033649773731694467274735489509200469267081776856684057620972768068887776878554747010022731670665849127596213637983344488804111602864898439166021408142558510921751353889208472179221872777657807463195414138660336511172685492043792738534389198043633892732879553855717491190068037373162720492877374805162657038476075753483915804109725569169170048711866235471381989034045925136626900486728181538764161985097807446684131198551863513781078649811859834722774639396515975168543895127799485187964911189201728400123717958461430630727224285442305016519182128603193129339457952469760327249417053373214764042765683328504496316231812520658528405894947823090733822523166364375388926075862470436407085972800652911269983999301244561204808579123115436405738373077672965481456410835548717463567477394188349998983305957120973617206329133800797060161453119773161202353010536884770919942738788419631369579799608290569197820158645614398374729876160419833029362426660410051383576616268273897280728073625313189314657754761817984326414066162280739536772694494511226311058940775057113687542815223715618051484467386685340645659562171048188826410055641394537943721348018180771471382493236899945683569653591600337602730931017079332671791625730446725400200172106165248943101249573503712230093421174047617747717083139518685609577715619343375772971170626931944223769382407128229171860230697141927769132274833191263446552247588821554881475629082013359322571592968214094637615549166129944593833140514421459660878363350888964339985792584185588455786154211605679009304335336491484817219342541557784428212705550805084557708671295592355334728745833564532740195354407621964293325301555996588150554853230842786860976759858705716536413637518978294077302446914601469636954670451693133183122674140739218785842887132214614557434579943041629779111005925343523459858650280924374797443445262720221432519998587267200789265050151725635562449398921784118581305737671645740793218836265985736745701965324173669742535537263995822628313167713844907212238773798505682358990871652339030352961719854182582342074844336657120152756633718408397951553406069197309130839194272392071765420205397771069701380401119484152742469481355489603068744958764737813580060662551199102855242421295610953730994399442172041863719440976665070560859989919739139008081706153690598366729656633778576441772965227786464899230535803037304826894195469266056168996393391088317697470773102877772846094866851876375245632348570302800243487002623383021373655219596972391215258958002040779868425834472316523123692174252612308247573182727141104384707591688052475765610802399221637005358304796351464054575566787885557083661209996214271368483367615927325377149613835128748954795732873897783479361091427247461321144181875651184501104942223258665304599625169629697517783972650033673046945147204463877885196307621813477164455171135573376223108385190429710797812428632667243930010433372953591184871666769207748448518914119233361194868581418189753614722068957253489305109375581815296539482984841321365585394094456926521601702960763479763056898135884423560856928355257698874962146353760600629041849462334648068386218733611096720679571966334809496713805474227811659835527176771367179893218225403040176767916097367206464167287266949929995058446164136333400624820177191955817280560412711136738639421811120503585578879445037154900950089559598849364686670536008949453963736535845333547091818950455042179418261993834567429398203565852946551880558913824075410625181748668159845726999633415634158713223114883071403485038621247131899695201631866135877020631990070936559074090860767373599999787347307908000326759080432385357330183153807002617420573904355818331047197305669040596181609798959404118093864345748233639763251737064508542561161368376298165174148704405131545347045792093776255948006445015461898054574838347697978803780864470149685233826657236422577189125793741983762491979857497433292506176727661529861247011235753357453295435902320272875840437419021109864073633280722725590590797950602229638461028536478200913766487445360065414302745576996164924362111665316682547226877796065237269950106652124805036792452855689920647654692228877581473120244129440191451165993715000415914975626299842947062761162325603446034158090386966146385795876321578551493432562740093467265906291425145165894625614480827327752180686369033371439075944242621470101408937140905049767555837559286702986758605653037433002493982243411956360086005302056997920081076812085189070256303946488247773096306105983835526255385216998299502688551275160422078541888106201668024614177657546934237402906496023975672047866293554936584254245346515789277740768243614324665160434663584340837793840447318589182477044843686390233201341861626185172939170835348334245309352871092444554801877539174202695957147780756601480617913757488348874901467397395682764292523035033484311816347541899628611292647034248781148178267192272040474157643561090987624187110598429504834517474309774294732614869801089427200131881157720302703849238120687425602707202282015051376313025701819551629001511783276790567799457053519656301149896127104445288611685715189456273346195808551226189356065225891681301857286578813800928163099355028674304975998315613598224865085885726898443615515019452615140250261353345909567480999667536224702592181114174628155178427658074890357272144172423896098640053410708973865050000406434230342164722307049859494896574401346916214177144157311472779220823809500553999461564089365270926367508097315808101794478329694636827616302093063264655926796060532331089538183640183817806923115188850855576341867314187331168287207409072286031438908476385120510456385329789392265552927898809842222573997953391886073562242083348288517818030445109146403038740116372535202859333993899740663706819142310157346827181204056537167757783430083295391156075427253462633881021894485591586649540371441081700657978285438166885705522384067992522147542856693941484290496512910364907785434551322270577456372841524861350649004343144429862423328540110661997802046611061267088111191557895082263148024628124175040202691288813431248268749068632542971098905548958229451806241451394714920232853867499821909029117443393041281952243560216334499447490456389926766342873011473428069495909673708218255123193929013881250908043295444279983060882537571211261241569185812307628841912857427094794187228861605407701907210616855007022870515835972817905129999573275108135094232266342140904830470066747659235569770831437873390857063166755333915344861280407121601890073826456547633853176700989631760679400264078817755083676495959845478047230627486973543292526304880886509629497566703809069750380617921485034088015123172745701587109623230112801133294837504256785670760430758108977470666528048459237344442112831815567377587080973776038777187766501052810748705065443134647584261030694437780180639665701876860558426746676199676760913300109644255290375439986289829295035451672840485724874382775679438141975335280483795202631001762873969255521804727849319535093323973236536502097527504246226097234281668416564500521932227395373471463055180030039015607058524343630683611088549624476637607838798738240102036139089463691433884107904468618805964831727666884122096839199211632413408303485936520725048188477066720443951953886314796697332600005790433942215177905018988864475988809961544693098389092913311400194074206092403350721679801094130645535695911623892331043421961714590516204893825424498551743497214533761282832141549466049151371945147589614089438826057571284854258973975424809360105287245282953206495826894082004439153669681638702838769770149767420719050577219959744788614724897385462809574381198389794658457586663504696369327536277215469689595609856071920522551925254940482528801707050604413188574396413583922429600341903909892027915990629710870045115274512548564848492078260923025020752312334787904656280449208324139568211489075559046036252508092604673563262243429893409144663969406041420642563528764513339097556171470776188038405123103855927089530884569121319675428082570991272092857853415450175207422276426939023286507389749040234345598179940824314378435437862295522253772364200958520836850788143889332308753125449736703432527327504128807101922379845854685399834907897439984189818676241974501588134829042493689702927634238557669436670212775780481506842443738746779287248012166929859096003696441698867172926406450361367382450341120002273357830232997374476878109400463304656503124274107168883251315589564518890655943505020170378734800391437317345863792408990113766420112606726430633003051468091694687789051101739494278299236925399380413693870305488754705908931863109332444818614365181229556025440284389127262784023068233884826233745450315007037958223198192407077178212944013847821917822436221772886900600629760022415380577387574098987547168693847439253698948201327901809183749972424703254676506379461762658249081304430751868459801166868292201992300272409162224318418817881392567415777669063031360839894961166040401338363619262832577396023521828848489263253260527348377763280918360773022720184973526150036109183886969044334591766972587442970185021932502832797914871777173472327788429326995398092781677368558046138171760778187953541680932612795142422780945519125218743184375051937297140701966823588263757310356126612841027782659517410832589522819287336019666882272522673000697943515987766670657255904409003410560513280572285051051602195923231663587623922631683065758794290667669685576744289601099772840141913933063543041712352081283931324466573494936053723578732602622948444255744500276204487115399611014763079605068222176526919831242543746679809887013785012852424220093405827591562151069942972644633238903670347621623646540301374793821849939031334780105187238649007813205391535075403004703405490270923791875922246694584276688180705753462523536728629692500614167838438467430145105564670001525183504502096490013048569148702851219107895773734629080861199012637885652895825558723370053545476445932966517928506761654589689059876917024355828712016570945874990659607991389384281369201033177373815058862266573513504258136918774429279685306864425340874864699187984047008918042206711043357331259799255094554044243640701654462090275935946648763859669867655602126426729589521241955821700233877768066482436102634233307535877877414030178908439436737557218669030961905611107903276311465635571244428500383992066779521602462364554902039093366414618821485348243797504484415081449086691642032972770574686721044356134821843130423125730556283314526777993771156696359502527880420145750634306557859378343408493870741760240330386336475370469239767887160829964064979727617274261002804370500057197802793390400675964709218294899291727122864880768118399616902268257839979842274872357611106447408233484040494486873518383067303313945618128296375359574208634383508695603725574231716255704867769424146457684964700586755076065277244579691820401625092163710613504702094068042685118076416571743003858382832930189038610775644627036105574872628579022330349475948807617246581254728572936210878133789742237450966386546494579590227169888421047641256690365589134249932640537384893440798956501673514069541659037217231899539610258898424530519840773007348774317444065157647270111214586056223208137989384194859386497884183545756048588309600170447035141873356703634845914754757005237195467097808635168076465583347237830131621046498497445263259210212594529808959846031655316895795897768835740176115844456122962108801364726394314038789425899061989749394433319357523518841662480308602244399803317335353469429963873041699542175202121738304592553383662452131917226657836227716002972755865822030946544139090951475228937974888473615055636071965489640680254283184503339347548284517746951375300505724387731577433314187727876430739247968784275676493326866191952519424331205280088584808051977752764020236198504559427266626069926498398856678857265255799952027708290438638080471831372398192285216252284994957450160553529150938674595589421723206207205202220586972074265855178703441141519784504877730167246859542474048148636811230316896362633574005823010996364500505401351719360984907010183744835635881694224463173103227210564293507045522481486725387651897488506387092693074166513020369013085934186378683781985700009666948215735827620532504840619339975171406732304033179878651467244709024440504724782493515511846539500948630752859823088655217045519536523800351651965137215402468895185130950116659049005595905504160264560030560237963119186499601823475022600250710728202405447800382548963650454249062702063782982062385690439443721670811205460814315497803722379765485871304549572519951056886052963510640079481368688138025619372780963480439757258184288925495152440057930912313479443506368957621240578866174768838115378256813960410542249468252477173017146497017068634912350579934017269627474871184950199678560701350396774830163881592606799998868506955678344263100849650379781350168250871342708975869492896218942785096527780734938168282669932649991873692586286532854545248549206071111967567740227216710377188402533092641404645391937244894569826884961054731826314190519359232464820685239436856238590647204642825860746659622365472898684349951036199927850860498525681158697336118319963617125953367628325497015914940860380398770023604733379266352491526478742916777862386928409338389981857624296536674946088970197436475413792120735665917912652166761773716140002763567392031174377876574862598988192884634660199783420465546293470427434253345280080395526128415639835613189452833103504536721672794287907253918449483462174921870147070963879617465836055683215057719284682605564459440930376351567523230610863057835118896739884801011554481183237526692579435117195637576940716254393192601847070011044301327815935931020984107682384225325529910133766660305814411939105324332445513849701193915415548853761224338647066435121327222154026143301486521652875663387693805387238928956996325489472800528721210971319009962971026228740300973778621051990942824815991764067093773796726487240136181374085535250925817507038235289114121258894474586846340006276728594267180876568565894715215025773010168366354566747014664662230237434342427218380372183402382417319865957451058901284826352409365875383779012054185372345029312511660651560078233321659799667499825408165517379435190759794896906764832731195822349180805165549467283712666032051116989794503099553446610811813719323161765518096612076846836694711793870122763419212046243086111901400509524688430265991986543396932687668236988755193352901556362737072722932145313532066197014684005071635089366158781797870265024689713365715633693184214888290779902176130674973022840946559013668477734042528878853139296384858125521298083615220808042069710475290320958042780179808020630148393356080830059940620381722092547422491630942162822480836973872271798139523009149276038060658234815881328609588252594761208587014353818242313772194316135911736256854780201941481738826156098878616087821438640645745715196941441926846527659231611974871656834501553763632653195078263534436029105084015694670013392062026263888692852472611633846166477813476885323851401336014115564280853369267127702916536752415730121885957705904358880725755014828351835765889787746198860613679602409125589782181017821759654560571775297347998973823569638048484312252891503525916258281180635937040990688922793583531585774282440459213084601183789141029682587479081784980987865087916221956403493607578422843908767669353819781200501147120082048801209701309516264612461520714584564907395664296815250276410740101490211060781125356695921218086957639409043254438006125426532058825657161544557371841522576724501091329350602973169172417126189443511015274997768271792923098918582544511959017501898870169688505283486415939569749175429227560524284911275762897195483583884871959978186661522089039235910778082737222422722808480285543166188701811315974406010182560310141901650257771874745933154684616127555560601840089611112451919525357115581114876414972991285323226271982424791071227770127410326001670437327090678041340369248890062537243513915056741055172703592021278631355821298989149655738074611871925657959548443947153266115345489539654436581534984818936437900447694039503773462330055370529073562552906016558388255153470088710806264583084135472382786793476880697222028426503600405267598352085404643562247376783390851791920111677828983735429767652225604063644416646952738171025137274762233143878383593876819172300006567467684254670178910860608844821114029383637086313215540184437140830989224807875538366255025595796340377178114865848682252849133343767785661121243706423522498189220476715653947362273774316963982729201785096966110774484264584350167620026542735751178569283950560542260904396664570837276864810862125135777164461958709765283941978159510066831789554104720440028855075732154905531320612670726064133625967727363761393228132371029283227804319983630464127109722062077164886299835873043616509759266899499391965308790415798811615875066383911768121342958460971916591307853913669994989804602149152205101219092345679531131754209852539713689939980664731162053297512845298038517706233181837518495384177095235672099312485866480683720816391018873059525892384645595243528583671226121006326047887779658998839359442926681033478919294576281270473049071217944141438753619013293545898451821356117836627166617480556062256934176664379129324385457095086451001225604153405384179357308902759161617217108230613350644288163078848459588077246107846584077094308621874284081172887875101067981370873168081173901651339168728753808391138833556744135049989359210935337387415550678204506185568556539877061288957814388867778644665681290348097541113655638984440038576182185013205077287258386379557653516077275190523847596302929855824565790272521549190035942070615737170180355406494591987712945723013196813538102456441020751990195441376735010547875776618060734258287076876793995841979919569043224789620800687282212698172787164779305769408210951126285733416847937340510837210936627544336461694392082984006663709224894331815173766459086763249992702698073925242291371258890793761910060246803773565968235663673046391725178748512526830924841396707242615127163904109765014290785006187967543917631439381119819034564728761312872258297891684094096191717413888574747602271911735413538682425963065508059915133335846369749498634005676465616855109566624593860140223655664467524104393063407355834383327414410531888726436766738650855945342466506345415049525966439002724542008738504958959743606742913946217008168828583758785692732639516082833489037162889698889405238562945305367687884184291444498818635954909162061367917227818161631249096845424726830010917844183110290550564190088654779611445061603660614880963451345107620187120993023024140500801328943411317699643806635141537618534995134829207737007944535597684063819045242390507801433047869571275684537177758367926160358772358786809674624333531272105020965706838737058393524919517794155342050693972941820494414578355161054739940385754236437092498177122614987377169460908186478599955112119858753574974308984651632134960172957173123206831109650398929595237751300226672073629786891288063094434921943737088481744281941106512429295552348180467972931354114428103337436071324521865554647932449335634273432739979617964184971135376446277622246080326336866335245515428891652271166805991791903649143339051451587376130058856869591800474643268145849922569541814848605305134179532331728095629001390900151367096331690535220287616758594573205038907492733721551152558366955441878228002699032667474516392990951031780965299800280784522815247043744098570474985353360818463485165538973265239519536172183662705739495555783530285792470241509212970275424974859207111486268962059220503154279403633555974046555453355232287739644561095425286630249309523057953291953699148867336082698454727297654981151261707567463476921725677427541311668247838724242951179426825688834780111774982822348492517847862518380589503127573370135650854211900475223124459929534188114412871596381884186721892763296741151816268083202788048533953555659543486081481331214149377436238682375425917431172403289556801948660203844083615472589110415498199402552321188266592305905800457137219745342536256513535555362119249934421627108883010280397359606329646563875858715582216975271783170765732600973451765758248595739617049582357619857402377403375433068317760981357817816203866450224476198857573640920418948721003797083707577863534825947029152534113979045798975242055541343296215035539563263995415317804306902433922724993337523322230530906518525843728280054758113157245252787374845873355339673921157455053566203415856977478622798785555879356931231606045657783560523149555764916791209689340781984874630764558699435943871051559976687491954284062667211089591496888001567188462045927797206520669976358246631753299081199902053109525571529422044579878014666575133670902342299820620288914491357831920532059719052125394015925998922068670352943528216737492176019626925116406927164221098622867671789690521017035754674397081892237594401238584028885393515645526336835073791570381039490634041640445179634506466662601592101527973965445427009893930998790324139247008743016483184964819335503992255843498577554680618906321684430301318577294646003099106499274538338392023699761795984271675655767761544916808614313085368558392490165836645060902558201649129972647495562258359964929748553615847724850029151764035013160888627241452635033477358358891642963178297600330758543608887581240917292006400391820987990916018061766258553754968078118606054652851152781675776592868486963973211100741069383898821083015011809922652690995496950296017520320435304756167574851519450079639205195671570213058133512303303888601985690956545581176424317950554375671633749683526899368187335704403092635652645996289750185841493028603522326506060788875130740411477461619246639228294168202744817020159578368693977230243812435400201566028781547703506071161714901537713796757006080328329546411733570017589837420523402198501298684469991158943120680676090205943122670978355975631203213887508203686190945493489774348718582649338216716269055273449900286706628885377354397706060034051641280598591362173330351013454967873540319976053131131683856185847947202290241990920220544617900207140768002042943570723005788902361632615642601781772964392580014455066847123306878899122185704924535113273908822814216747225141813269994051281755717796448146571244889458652319156858816039047983781627925891442730456297814003887278621168734952744118411306285790758625508843901768305713149568223783396945157215271829315174146173264286504120501605604676489699237686067386730112477565454424934303388065098854313872384747162251157291902386957536857264897371057492600583241268365846075838024892051591060478124129164353837331653818922405902571250165402695099989531432987708907042832409634276610798369292967677180010897307766230390911588150832736480555875816984147789312297929146168710776940764688676460513715156932828441324872598145078936943043140927276528082619095701712044033524371120514534758834157808618695753714114063543311553334296125788423033230558868619771383367182502918227545001634209709977439755161999870900102328561342609826873023921198384323276839025091707796980964190017757981997774027735002643614280594211296946762611022868129056823032846448001357988276748767943830486838892891132011445850437882649352018022060246361247861808821980935499579978971779487071825361612592660282090990971103146746916062510736222521492161880140007962769490208914454614204025918363108310439879854615234796247944538122011501652252146234241501134748674573155904389323034347986720860704370690165107503616128225434283179707438110321701716580531021849694260840521726155317692684403110834915847832233217997328120814277563581932923103381719870754828466379359828597492625325541883857792886057400908910927388064847014896025607098922820944768595968763323623498084103073941499590636882532944599204045235693386601032435151381614622725064430442221866957743728604996943336339292021341429141550925579210153404656018454734952171253985510112881722166454651427560278596221739851827819940269025485289598709902177332835172303441695474135363656897247329279699325682820451820021500673144354276082580044490772427403744741970097971638933978984737264343644462153539465517979172925974341418896604539426790526046085238988548797286868719203374150831752547016449813090476157173097806857188293879768807950172079794465973715766291414114545784671184230914402865747399968005761479402359515955771274046456549046126418108866234066886935791379639482861868972686360354240011530467135115477192695848885826175031138535908531991932864152162393390922989700609437624568456560746336882706662556046920218458125645922711679105293415299650304381881756793459209979809508388842563316854273786885745173569757357574853486713580037819094924468107235082542539474766634671727245545570774977718200641924372245830977856038951729988584853123802895348581533451698470131840599008936664575296126442885296157991479555633043243276744901842544357195739733852235210471129353960942960085127380911014845970385497099583504604107283227244309991600407280756797272164184600709049148155725064159223456876206866212542013623396163076682145932463628989079638296451149164552750505167135980002834241949040027423559835866619504051755191748343642602724496555624715424200006785536114264907934417861746800487210955466132343583070731336063960274859581933725000749517186476696732272594425584329405616150498823273640664786578122760123356156497845198051064303179810658589937542748459285491488405953257159485043768115003445728996373063723863006498376968067825944142348387419326683739109653640878220372899125874414341384592776510413845565231289720180865289965979598823950644072184460239024159410565577774153883645875806340087093068273167765359219007846022571248831169294915437058035020269478176579021869151515865272321304084528745752047819566920999951476785358074491056861685921352941257910683083485086670853059044056225160640233114415417038083953489347990366286478361758989240837841049370651209800821980642311845252371710937469071721335209283802018953991811364572749320747845208647737217704934503207900446556293475224988327504085725918028569442625373300295437483438595241087531678019916279357327902533471192510487064805841311927095868719637865065658633853131054477019536671465257065800345867261631757434734127699180811881859514062747182641953464244614128627693042564687969927742690619960750419729521688662304363748343515188524412417420694415562016677680343889914814996434813185283340312110095802557319083247848531431835892662659815620814096058887423309486738049167251548748068210719941161368641114214873585441393827581107138319455087031971245637811026742518031789394343153927243073102721966254554104485516439298162061361090801266917207818345333843610027716582115894459019095764323933820552040029822857075533245614976108203178156234889138064606167077433950771203027843304026039260522276119081582330728676792166678363531903391589500682049457626877632366679821320036940699694114284202479486814022990067190264315173074444470074028988182162039703522192735240060011401176142373837825474799780065120426634197522901626480197905812344073250556647423966331656550535335299046874150944399686557705325674058511955517847872231807554333090301813256940883051494744310294933505413658484957748365022489142525309419286128109085236063363899248534524038147623513660832327019287289978813003871266035006947288843068537529375386963893962125854413271139152092198260072342093335978765577274329035072066716165217529776797810375020488821657937558690268116283079870167408418118536350797568755559618975276728386779290877208916053706686323762146153517598788231946881430964367532689962646004756453184494633212105263671736449151819125763326766033076394888746464237932340390023628135071200929548225974185189090990937334183243301094366816634742161217424024732751406960684097590151450173536791960369582253986222806825486449397847095356689226289312011917853914486472638138502928596828661389812072249059304036322383665863913282090106919101646036317940598481979312802690921816282892219134219641497160367114409430100784881321303270065216303079939494000640962766231465467368959322866688123968102465969400378382837612213945836115507192568502978614195676487117349997284681465366052789729900583104645824561431509655754415609751940172753260136814208965685149847300925399368068501572595202085466255520836777846502896398352906357920381119686352532539156666512818322970756216246360709017374622236423892944705072766304877869153800823260961963746456608189251103272853457730592174142200945596995531661002877359188207987740653014503031639903768294203849208607940190233096989151155649996608332085652955764392021381775049579345729358929208681195497067890092165111290341257476906704024420704670903332713291635550072360953007478220616111009913372006840056480641639212417663008047313015913588143905731404211538477024239018458244370746478093108141734009800195151902678967813788613249801338137005303393059414156214249180316219550921642854517760393201815575747362040697430873839462327919171489575427502060938500562302331354325844395305569448011766780892347977716459151414010898613630133474515178460784603552778768120280060819616561823296911687732597430316303979228821885641097792487769510153908146000317148593677286865379048882621545362963775162065039169534575769500953580064850353571155038962906017467354103148633525284983333945237957309462769795551164242762358668259439888770776050214170114824851944439115603729852696318062754490633816859270903544426502072914851600761934308362854608929103019007639881056734329381942467818251238587130607127833937697556887965572069014894590181585521066859387616627989520431820912967200026099872845787312071071393540354041564225857070269720285910619663044530335905846266362500152097026015960536648780804358049123707982291784579776059170398832153204119109692069706963510315500930628626812838404859727417538507915986447727043252749501275484897458413639738314432687696718402048988156207981364791102974351520160113981036325124765970845954756234936246827079396704990707801213071685992930569309256081387002310085141359428531312646359168028662097627067431939387293378719415750724341085684098780196730068261291597584081849107047957208487751619519514964482670969129191178317612649214548248388086273355061585253200881481597937727210029424773491706857509677388623657924840130829965584453860879210261694961839906126395184274609803813417413936358228024344683726235765446331135242333475193996934391017856431863124055537123529663677351220267508219054026774847481010118548318627321273485046532439974223116740388102144625893035606283015337831104279242808439355760765987769111414011498311741152880513933204786517225894823915996841301061124210602483062195462707926497131088043680661433482557936435958094008556828314958603975310961712247809742093781101161880658284704077738885370665799414691061631121721976620349155832083914804928588947090225314649662188758478446120656728348362643090463417847807259514098491444949331038607634858173016422671881165217071643471116916734293285842846105275419247483536009610470997366835077587352436401717668778541644914781882255985462081643226695597767510877616793077123244024883837468971801882768670658783172314259265282655425670394123361841495382555906846729415749922507838860551547250641659680629802961923194142698130641152868672655018014362158981863397246974620175333499838650614286827365571369624816810613573513671855573923217667571042284108161681357829963019158183854727821903931274593363646073004585092632552723006616899652010489251001179147737017119481799543800523325448176656555123349371060238401879896985864902412781498599823390168912644400922748921896405279810578229834535144710108330135712029574943212924344622643559365765512253152771456376848037871237335806340607931231816404048021004960449293730814867398612028656273583577618958258418556860742815291131087324152780028682652590598956151584355655193711771697472158452438155770166563637049884178250583783402995446915901677748185722172583589341915015884631044993810235658777935872266518203528758937830386948933112788857946995035469799506078429044308156856649558475991708677353583182502466303263608665619320124929198930978559814658247863402587021193889844700039119478147289434578039594979561952845619189297930189301621678709904996180749236883944233513261249971533505999313462629212656119736551720554895446057324613321233404880967535849438295424089529226444118529833126250952288086570302967920692333171367545778410801893210642435236970530425336382473538922749937617991585509572187716497362135195874335778585349276669773835887190489519015380451679884765016765847351812606160221053071217714321654014740163727807329722157782609361954024186235525773420703476654954676514706832789789134634220873930678841459785077261215980198259388275266608765147046504001928882907066682116000591142079654357742284386756444564909372941200789944805278936960800059216139655570543040860852584283573353342057496179296185653268539594909958913552176923025403848378630903147113101712977091402183057752162023959993821003617971689408550962459713051924093644760999227713017997966962094474495638449560710723145979751092466922238249775863187939050059786730399395949345747527969732881636588823345481808954532822949105239369555911233809134863660110554271172677874567284183766262597639048779542111704808294172068243783851452966950875872887253596153803171932789519103449211637429914654731472888469240869130951294706160688585867461043474652627868261798744667197761471021286436879876576798394966251549913051472254149314069893017240428586165892937606856013771943284195148885442065225783072402515277853694753560792477290967053383082230130904634531678322159635037261939517867834688168579454404607940204898375363114724174197114867556194669382785141293048734420635646428268600100532563027252127873745932450529934796489532873111109233726400469182765670743858512126792716945305623270251019671639909112200217625484897161096625807835142951869287598740091976131809316448797056180499676279413014575140695383337683270322861430517256719739195371618014338572611369894038613304744704816375793264110701713485780349711189220409324286167842552379483496043235411916728142337052295707961945455323498960658471839158075476214251486709254344975539148916350518985983073205318773035064806115564688727974563525005567764811412566035736231653241802350622896083003685864276469715550627827530832370357717911560435205016571668259516741587643851499013637838707565439381827782918930799730566010201094282667886827677056358715430545423870761720758196333835329373202194223361242197985465801943617545391179080350262764614971431530697974522162281087180999428262163590128831871651263685475529988487582007163516180118463299171170906847533399548067228791726591654915211361580194345046523368728812970746383333744908348915210548594589303511098912593530863536103488058953018256297851620537517379266939928076970775044395971983096976293701594773562947713926137388747805630731055482166617571389094854747690568882501116903880778582715984562994368112037043308939315364423697838428062976493408823275008361134484961280528839214175644601591961592501091363993473325441004299678515118739191475172146443141886483192267725459238078702892343422096039260082679884202645606178243841871198206267573681679872270494905077341189961881877281674345435667620518321350066732245585101988912398410793793959846991117238934678139208345278406302650063143994426415594654770597791941558837256393258537355734717747570174421013841038781004481235870877975090136251658868556815910258781519769113180120581844183459075165234266394928683042034525589209208524449238615590705736737358775204011562889797388460235917193136978082771674494215944417548813920341658218169072872889809041786891357294540003037534910351178030888598591097209840757921162998591440835881309603229914416307192457033097037160887031533793656988861921937618409297801655629333731686878852601977811482844335714999520323212195200345900584933040732752031248621641086108160549249893760646055422519956103660354678477574348379821311595988055945364677407138419756783403200425295715139253229471295921721637777232451434842379543976870154385955899939745594605800636463678097941443754620299347839048214185339342839394541915437220576370387323326758317822212002361209582560544702656007882665536529048304190564026939189334852655941180301200827694748955128758946835931904552014766789725429762053084649451233761240047239820957775657570747745577778275939298933876571272656807864664776707064405945490880492927781316873869253617935347021962601304127042099856268208430913249910657700179546745481078574322080118097527477639536409431137441453722952847087552882779832007015472796974790923931068796584913436577716617663505447988825647026595394242603227370267314481935969863454390202300854562006671951318139066979699841795611071080753605007285621156144183209183883972836281524064593262728939355752312655240575467450111415283142398360521578538831323489441892338748946595641092420960244428770196833196052744058919239396492692566655103235664510901595947599631485736641206429197925597168773805862510317012517220557119753080709373062268825448872727619150063271930520865409366574146897812392511100499798910673506890042002297880560155667521417836840161143974097948176313667359176826131203000730755857496804569735125658244572729039878193441124514257721947274463935227669982945834885947996290009554896199130046465533041110153235565532908121757946373236790639605663557404220022126259248765780302353947559187788680858027139663177277938283395606302643618162970981014455184242598446880494966657678821971302743520673845957572127402873417145655537567576999594165317893830425289776148387812597178795424030988210998768317106488347888963188228876962851228679608209655007510191007763171102289612655182837034127930275167172200610595508544555833602226813981897845044144080170694145865421873303563513479922607616923592464595553798810601908644027965603025988745197237547621998350781424663627424410927971760943581796622692184186492189652103893898424079216424338196007308974643439011184815586709473969986849499216195151249308611897880711856629040236137050821388879310725385824888973381415108886363565730209963699930294495378905984039102095257525894539008908160232275932435421783869004963574342156806574528678802935424278477372081127646370357649014403599262960239171110094536078887424118662034461450200634849837046071586931552110910680047877799054472864172205408753872125318680706287820725824483065988788671456248530870758945273617653370557203392965794738717799897917256399057108065898901957518199073454444306896499015822911094602625142276486089414738094012666535700036129941517359326974782869409413472979578836368984980957725300994347875172244229253427581926069798925699396392113813662148876515405072718638289273389826662562851874321833643060146433622321254125924493590289117039624225176388678806627106167000220069314378031415909827211626976987282784678449222672465171062829694738360784769288665040889167944080629213465473165032755087210315150454005286731115593221902296158941073368152535373987181539047295712961471941275985412189641306885822097039005672952340758839400955515498280673579874282372600089717915574939032516455694063705841173473960909780604278678648607585021545032915189509713866755209742082876164495311513697968220991087105539441663858809514012004641317805055214650275376665655180698427348432746942852205571759130647830322749804075370968372576673066234572746209583301097890888343289070636926519331655771250779580610802936993000138692260706951778322785266132340069912063965718241330893958562159413229919647521300976875974361590213168826875695829096790051594910736111038215878468885573828537891307275209298066844497607105151261394100681371150885963158236624451156969935458196645503647209238480858874600875028755342961306140719048127174993821443465559323260376808287996858052100708635704316133422492741503377399579016880144665302991576242023737251930507528153034841016083237283878037340252609204755859511938665756823047807869328002886424440107723549254490253419674572397072645350643253937820601456883755299752199867162605292715673468122074904375798327315007459944678216174980326858648540930295132933607391221809774859730526918284499804080586856146110287916242556528672348714579411907650139894840286134614244083646537736219663478374372374518557501451000789104546491550830522975316954161355182528226188792066981496138570202522417020721071989303613331283925004665106765185137995029433432664655364004482733564864755153515143059233413764738381690747291308869552111559480668330756925386879321188279681775452635040228119060746556988095655089720696795514308978024651539258652950324382826187935540969052766040313319822265666337771555887957159535005133917512431241031001833772839348834100958587698944382585300540242183447236430094806733921450031782346945153624239580597353249761784561554844363340166749618283504105648468868849939508543913029415037221915317301332688361158839144409938494843578308926838439708361932621129580476459527793537992180423124259436545181896684635628730454305005538055795317583502240074222909416575488139057620128820414628475145706655240717678312322468190441191523395594643008319639249860762405303946884783696274064268901111951274983885396370842888610752512434496366612530986758116719426311964638967527685436409458893053259854646251059309890996113127744331323087822340869020220452371449976022287015319808186626652896209084330802178076466038442654160008365263463626726163870073955233680059858501756338451198160439760081080493221176324557969550591621926702037146154079000879187681375928427309230335527709399911700804114009885646447432005221269644285055230622220219060426904023455489821481010573982827378703585334831454661592018551049101606309138238985909926934871732973011130285132204070523301960129319299891260067815822541129876572737246845330240262801325068927891805290945589305131235767652923624898163691593079841687951621845210646994121538439098046814768222094960134817498613762824491688381810732832328189535204369819849544174010234325624278836845792214069533880010394839807459337002933580827719542981082092712904746738151824264025834656241943822898418651713167530468224318433247004436278643610751706290013612186444405741731892705082372492889045418416401150025201994354653872215047764326342499771554412045766406036770351927201847502197196340299516468199862383557318661972002509357645329791925201331874514947263015116590493224238197184164691447046695968302102786680591853248272265786415697636471163564057102741529569141328700820316390084896926208871861026413454049354986819398975381015507898464614442454073595373837959531499392114620559884474503565069130020791979589411786844113394752120046374974685053017382172647842600026542733839365995475215167730258896885270507694247667468570814718500277041244011763560412588128806215332491504342617236067238923151558261054822387706218831654477070541509383566211516928072974985458742265061530373177856886671720781207176724780363493519000179663717635216944298523596676038931765885308798135347850725687720203926526075884029130171901241973628026815951229261243051969436332322317312424086209466353867081897658054190430902596276094634240983000906858309497815548258133794165970046154316930594382971805031922659078734115676837644062055647793553593342566326161082745170430011692416031264598470669315241848685584780880108271787556889295543669306737061981880851631766664111799998763028440781724235395951494071026177928921244334604937277560226902703276736443671089487300442132991751596090171880927913561512864933922838895479123631683882217295225775063427822715522262523978809653506989824342801980497336071152724390408874458609091652260337927653675415378613681563064099772850050081403350032478975054552422717410596124091978873852969506104495039835670602574860324865806619138508952997186213657129032580180755424494578541079010786196866096977210764181276804522482578235279208844021199599822926195568887880850211633958644728654015490101475466620718217011965381770381928111096892261337791867016236061077072101194196411166680954199042772272540022529202677457421563687098366931679929628844887758918883263853051587333060812889024610349833672205441392944346427698066940449526449013461251599170339414280604277119114759917100978851155922136224179864805519891555254850761025626194829523183281334993441470030132240765963488918376015351168660088813373268124208229084697705469348885701015456729439384334272042574033853906871994793387089844982354643335119577815974882631787647240794692411140056777460705810605367583073585829227193276902816907421345917548201262713945233591862843805934252062879640387124795303812324825452303216632168517473832036242176453080994912402570192925358727067351400487635696440826068374577741855462968431955873842008884583320537262690433308642268985586220409464117994779316608282092157790278769931952797819926509129205185254753002893601859081285872572243917667448275702362969840698754021085757958383609010856822580973932320623512359001807990272395056981899463212608704386481289572224527518894916042126951943962708375727252916336021039258009088035490950872466893778388904730724555819239803892356582845954582932035339704237884330242494406770939793310262405262247505116746677047284779641846108453116615031966367357185292258468060331558181381310622650983031761091036096043399655407803260551090671199415786678575684278162968743489724166936425164462125094188267440409522304107780621983331246726511026327279408794147971684346243260667197090497576267571000356380247242314749122407029700806514721590935271579145911111273415938211280941664925078388261385703334999065537203554734081908202398835728797831381796253361435584654301184234911416277851087568855183157506388565110082670705145341652862441956779324023177401915563607891369065071000502319213240824976244042686653158658522074388764812862859303185779909505203438155949619591248954997327337676673348458824496152269679494269217828984184637043739842952992662371580013762928562326376906538862083307538425914897724136802740562165378807553763340867094427649269368749205487945960759878671457453749329048102825848841490662782243618025610511480800545497661512887776252819195647181144328928900724361925293613676996366051450312528847322379984602150152611909518818870816563387683531077367475564365019407029408498381659051348399145171194475933986595570354539720948238477466761197327582870429886136403113227448120845543317206043836778024920383472369532356228090979939840341699566598817937320132068008325288559398833888891606726781461693155825865488310337142344378800916324650578640009646037476284932425843190660883678599288408678178713478771824705927220020284678203623651752355471096318905187192892799869701124499761575453207623686905235655397826028927379838797192471296744245519234971153269415005561158761014566399202003223298644365001408160635280835262499818105289983655439555755205099697105931747490674497390406048331476467339553150938421581274998978252952071651720692262670821074679191495801628684936882900545825756626111723039410987090519281635230887443293051612836479343041697972505701114742630145929625777404820257472089169668766373066878024846451393191557684758595227630274305473780620419557887897883244443065329453343995495961421391323066002313030555714877636571049237657069394224771300320544905369750127491128816653487735833713472929615035521816813446864691003375597734516942688946601621965682879327556888589369303866351073848458222385537954156923952796441607048353192842038862262213848055265830212529679229367259027058551244330051410992438246692755519084992669488372566715666031012639286836786577316703591041259758666808772113020740634360043970578131493746513221754305957452468896022093277604433208232792883417491821365793799034250001701908132667645076570109358354495951545917350186634999251490768855749015166045281918737829837683870251398760047212282968364654463166475605159989946319785557241179616325116555846587159143373704098415746336135962657934441663714464655302177798247756291415929942444476246438637495291594037827642731658498423622387667462435632475674447623611805707091371612162586156958776799488230171728622985376873398169894073229034184748125098990976689280340786175100839114303386894999915018168793172323399259174021438254887129986149449892847916903849215106587325759252308233426555198978291175875052458523227194558378161285642234184030022908691282901703266170807430698301682147952200677792981415347487428394620719676737130429306884669237351172070476449499633116947028606700485661027200213120656705374620266460547749963672501544686068634870165293382626336798575542037134437998597057900042196585433311547978273025734838821545839092521433125804154128218422492917566333846841645959115773693636548066234266655544468941415213473179579828148307100368304448453239865009833932943608596821559910159432471336651638529328783211426201836874012068882547440561999898657021166391370431449787239563382575507576401720824697016632164354958714356687139839309679150047911497322074144587356031648565530178480843845890757675684231172369023039023777396398737248552003433924049698126217894736319149868582875172132547022017372536262141944133338401885001343697662242048177959245679342688833978091873016831497679162517752372672095716748852210298526513919189233600870270939376052023635887262040269987074392995899049756201239865091560210741280660898490469603228105365463818732483962962594319805363752202625595209118522398529435975882835272624945805243608555307764106367379700607884197871675594294083247059606337009984383823092572643012245787208532673784380816050841018786297254568015745618908518971091480013412376406721239997385660493138105977754829955631211899083726855118577176959727808950140004947526746624416128846235627942187270176353911598060881132991219107409635202850581084719224514597395859858322879907710207267632907020284233205529736264925374106040758410599289400931882203007187338519181694089916180715367032452927847955632740265884868714273834426753117491876096980544173008675177201400072849881886305185984289326738683055179629367531952245450441423710852185350941607910497129757299125484647436300686376299027738689604492801586411697070375226285911417741013441286646125118048678856107330646220472514089356321634150194404565392624910464747362775627121143109407291866723188603104317667736173695055606723857854038716026904557730143053587367640714476595820269653106278211067667381268122807426114923586595568277019665518946682634250424327490323013633204757020831081322739736155900327639237072336903681017793407062248575729723596143837675176333279510635482205914140954757037474958551536205720069939167879291735506303060059549971963369833570927473783614803674429528029634005856057683234462378257612931311036858558239226791672695299929893023627563440652753678486800084540567736071391332202167209027451285553661113624737526061901067681188235830731716593672302721198756853256537975026876654538315614110899447664958301207853971472567429099378421475919329058061601157371605691908169180729442248322904874385939999986121410529254903949430447404651512057197072885754821729656330754081171232740999724953496101295634906218358102736852037361254658688018899017716354567735787027688016278140839046742948715224381695076409309588297240971318477439358449265690627858748705040303979452125275105197159139963218958369692565453264852499729090988657656181462184474717146815804481485094580052829034471281269382161950945502266415641105638029704907468510047598610432800263997815998807895303723802779092230648673872515010525710728148150733054703615170888483740261770522082865128274685704919159005289212103279796228551386690966142484966712657013723930984961492134353317987610211351870061273814436573053290384548067767845444858815944599538933848755279342562180161094641258779366591475677604342319179867057347422560849632895224354163910996193644764084703960420521759381187336956574519197793082037911819256689696565141361640182252167813607595411172776582523325151348322390432017195527962941313975916388605967179658921630058382911495063950448007088474973865033472665648282536416016718238598113985980992402523360315150095553301755736405789153982129338961269037903147271230793411556152668012963402523591679872472972117661341379632821688331323349420157693479999280101263035035455042059923226104755157366955200944558871804242529587727320835185334655567615331191885923754776221522197901395536772439157211832027713636553114867713481548295981396456053193674143005651232713311810476461883656699125576318364894511924043332906642483001364025398891186345051647553198918967075858102398273735872116324722159333027488254604314186805580824088868054017110567667210970979533502543576121381080141750206404688005847251524963215160947838638328973362383614842110085324475893594599603881900516543812607155270773087511520976146740403506342836417414503039746660378081494640744157673690273167262540231835480357330937145954900331622577321007182939656757576603132367553114281063180102102954601516823976647261815077505640225610764678677426455430762332388337199668777758879791935629521602488868417478620074362918122278317908495679192224953494132184948862700595269688826146303424120500213086014565494097273596530901164166388050778028101128582871125074108354567475746767914864529900197012451532177478743594964805299105314412394108885101536604167659888004628852194960166337895793800606442088748391363296088027482035567027905129372328551150476548776941574583795266444053163109270849128777983361640485868097555914307865170861440131729824816599618581900089061973504798296899470841098004715776625779629591552780360178740384652838448276218744228419735228593660548561187261964909368220688631564819824073690017319465885458760712651092862597883905849613384252848929476009706736718435215967023082768502509386503170323106965994709266352719497857633445341661763302640766846969381040757285933585757621109058317060705405972144168506628400380111149908584773806102872118013198020151900838052446739331591047939195782771703222513417117696314224225645103946215500010762308788138622174069816741586303545260263471350665082999509227996437767386079051776306254691804261388873399080642615808983210314162848050716292520854658228733695080347206626413128803011717242720724062133712629092482881106587929117189778122408229907200482556398858500131007726993526742055761920109625519463932138306754652959437099215478772626344194040650983393612771628020156511983587581467978735767818422505045165142553248000002872381704434950324486913046798568525585552388403147178556315168660351892416758472769793405035346070568254728104263517804502235294592094129731646136848886243225252777335889743843272633163203959825028213804971307058881636881223132171805116568390718913477302771432599071179962049971489059827498022845238719511084751281870540559584963996403191099775708024332589186912181772445203412541573638101166105020589823818406160762856009967402913557825399302002822601510496114142994651229861494821132271640837586161524860819104935406824875262836903812769500314925117236947478578891928531359243143474490397601377365953531371541662903596632129087051529108506271099569354586912134766198297963164883376474128224706270517466934409489585999516199234427131284726109428078947214988496928714539310417391330144552684630458600598041283190426947392970911008291689885626819725036212717948388274883519728757516721988173766495538982513691330180938418271086424278152391687244702189787753904775388687824613456718857885673793410788801823062825502994800457206555871005082266694808089053664570227428296404892139494237525389870137546043001198932027668424499033484088643903896911924344928121304423031144505599463517998551771342984619397977567488567692026506101723652585701835937100593693918333456082734322690395678664585758354067914822797203933063765843487524442576286939995606525854887895896124310101063134424459181530843608557500593766179433029353485874210344232387458784156147126950838065353685959702563554125218480875608588321332318472805336107019397728878000503436973128803917493639037907309014300792809818784678082098919423986044468421680406762273526173147833823058353016990547633331913859427540126107999834873123546662799237193749984267762922251747346670999673119837291110179790527515578846521666852110583976221430738014829490683138702701040662485336445492457300134740907567201084915351516029601138904386874817471898976979431287498353473829466353245276041848080938456156263922496786270878408928137327256911025428073504185173163171847517410793665714955117110063434418756224797334285380835771410982115868695556246815962968444176453652119722594625225017178648749529160268621269429905459634050479620549368649333660110093258860802246741433938746748721687106415278203738980255427856771506737751284801403915302623878744592247237152277778417288094359193104950987362418681647797621053576856055939802990847780167773839641581042005005735478023015013125501776820940776172207578558300666016658104195135021490505348817319271214881876484469184994332134449405051108052673492283537166032963644631667329983461129791186183077536156252508080988013026856014836785365408625635504298236939727347678710389721958434808302813263233871758223224069149085835923472397397434986144912671507260482913742713920676043964139608637921967079499265296913156006386580945143725889835818389870793741683604930025736001515432396850725789545205749422451754935212679013859752907505522140936895869789015717572538497234922682109034867078246460282299657459852913576979138541954651681740418636806092240091286751880709735935100577010094223152903534758770095884208449155949788549952765862144492972744768075783841215915513954992142206766039178354175881119487719672024644611191645718702891200808751748893721218516118525480879818069200589449529114798532704551828578665982559520502861896088901864130609396180339628738446716357304104286859084366046822028348344131962402683037894395828825882322117352037358976354825993537932899845751735197119203798922101058341511589177566988963574390540967766663868581816788879872754028325314672389424263186165368214431903913577502569542910027064604721390367586109714060724983792681289019361898882836061840203009030421617112734437005485603167446441193294964710499798511169222501837293138482409759201485136081469334807603224142521606631499899521655484317435778082236197109623944006990626093913431659660091136518826673854050268126007722995205967881180648759094448998119175276964881813622856432022800889869901936721173755498539097115644767830536391088374868801392695928510361239770754503442853424534208387784930813642261729855501080504965223459694633715031125721553473646019149250762308459251159895264222208965869052924716037985209390802531773957807516696685850237697452591376687109374147444988524526719529854809378113849290514578342995473259506132448355530252225325985300951583678310885802164307009329574508072601123640905924744881596983267367001745309028741809842672339692204475600913174114194747003494589832145502234843603358903143696045984625423680553177501065118944905276710601112488889405836085037714719449446360970992966646455898308875870702398436180318555251636909834647264627959870484921657614957384724548325324627558151866208358637417407670478641706320108283793527261428495537212805007106048983986993155314088066847225500643530477217004802563645956127398967418166658048175804329251074061380059051344351571478224417667157784648506686826238214533092859342216650547206673551407949718495294959275815867120446302127427401265334137253260574364877507814147186870694009848822619900690713467912205856873717421565389357333178776873283178344214475760696952070194231669939139452418707219816032765005484304534296906636161876232540925974704592707883211323052512399146075868779178641971800946554549973443461542584781832960693670797334346781950582638383502731643846686149167978883866621078729297432913491401412394472026729433855276687752545528754314769968521816964742370833552013379138823932464572657868964183925785527079637007211433182022276257663008075011919465031211325881506049284128899470567403308774689808656736177480520715328340862681711612484281505068383596848360257335211955905434420050991801110860068651996701042754976062842517161522094900892170593016230611084874336735107632008821494064489198591201454927399857277962701541995156756277112983756898387401754376412784794588847670903257231477772075877163469768598135555126030910444949426691308877555889409400893844118523986707828463398394335377785927906701181849889318533311943614361950132464731427293066494743316062574430066527610672654970583550073934193388495718134307270238962761468255574777913473210753068337806687338314001598963473454749332002522744599849342920529941820011574779687101304048644099319135473892072232292158506326438903282168363547882829686768759493901730725168112799924359388402707216462485109189076112294308415910719553841437443924744339180112838436356108039296426397439901275518106838905870153364958505118170123166477582726497555248362499086191617038503266811455059906946914625192013950528409326525880660105677213263069549323414436365391139442087325272532796310011704753796058610759409270793827920548310931008079320891975911819574136736457498353334890981028834028161609820800449475833239845715971060416649033905703188192304441379477962594015760515615460242010105921084794053204481876331040750344220333154922807258887003788363151070843638005505788409645921932979672951216319847352336715852278306776041058353410369392151273635942086695903070313062929278336726959638112702396792904536285262881337044650628268672201153253855296988792222438051401323624081499011018237353735821535784621009114511884008184025615465517486538481595828615938753627062867934956183020266682064998375817357376539465633860622518792016010097335732563503206626456189212118516632061629549674257573643804306824775959012186370740259898050958781596063356456894703652403545589970319683212787915027809877321758851980021505612844423589710573408127916245389952870534224815680539111624844105228784057523384836804910006329623109238945240652818367643512585857461124912253563269499637336699863226216683946725189016555289501901690459942478347430116019996274684015693513781086168942433799754936995101605249149169646988958430573114797282424863603170146540472579116332127106448108732429051065556093897710782053727933877816052013675004990503740226879021459794374728714514473718221406979104706738319083238852227874843977768812149553664434231382313816641029785826769483398648184004345585051962402367533167688589011087492737415584618276470501465541254622086444120848537764457910302269634537298126679616061877592404336788562452782272345601935055172053192220640132675085303079432363687354370210562571688910740152631525842010993652243782421096752065515232957516267601636826806125319347195848360203477784972748402437162619550020504517952509956079449846706179412469107691065771718228340267670174254238174858477321050802736196877912400277467672696094235888243088270510533829107439516960184684754460401669577496134798340341003448105231646217215313972505824089514144959176094167590112297463426557988445545611935698857419751029432688800474491232908455896938204134153530848831883044367834130098701239543671256861205901859449681399762984468917630486871054710957138363285878581236350211739140876280512580276544504686422969415360383441644544905175604389351441304924406387333611332026084624477912572161000407463852384161610509942250127912223194407625774549635357613638763416570753396081472437023872494998152306075988995868043393713640034170376795525476392387229135493060457628742956710849845251028962285260270384511883510241871958176312136079959432656890545448402035843715148039188125031271796339621268211431864530210631094806344362777312911772374105674165768343633261351596275354379242519576824610865033824965600579803238402131052190062376709942204781828215586425257749688975809190759971925182983941105700937490005739922676436079688078378612307409787122521460736586061406198279013202849128545203143240549980507205779905593539273491778433614785229564195347184951523241247603717133183412327143776408703337172148624905187656057949333783490293368382629698781916231808492078865665823887679319114229471559811851457472216242965687480007267242556374066972220109721315869016832896074120361906130688473746842364543079414402951298013840807880379375046516601360380763391650162763474487239470330080054003626286971673980827877496739679738053503534843165066319374556799498807122690682788749741521821495322060096278940486284069449694989862247831228088991401918815279191374210553363141512320295401723196462764602468571171217671221278036035682727207184041373834237256699242566317713254033315688209268064059325092069904161326051502713698478930595834866891345649954912610045351486183706783236634634182450227308501406395200130673902843841604553810500990492111432759080665078257309811649670804162742132142849210619312055926800410712648584512564810945018465663819851565132203925175113288761918407229399961675392097306316596164827393440612590231383091322513344685099785043183440148619714298882735396852313137990352363030424921568342416055669324613194548253285772529296865917331302771248241740549022653190075760040826861140775005427750704221197645653681893587386294142364246713992708409045020875246221766865862849053907112983979862235947158437777896500093632481600730833208143553385661436901260675442413017258337120283064313383021163488599715216641714517278759631370782512120590096898093503443434276364589668724374945667069529347107382329428158389162987777472750766941359778885369304878574841000088441085738054887291953215595105870706237962769432892914233751649615290278242645340256548573848908401747124198205027349266373747768364247457748540742611651843163447761830517807368812864365970834783166323539798216588038518796588011388371285197146374474188420225802606149567518295574149521477137456470336951704008226424495070398224392336539180634848665270426709642146447743978300453161850852462440184839916098489073928206958543111388878196953481251309019310830030113288223159487078453876413372758030170930679025436018607890382769465525201632583359620360245208383026375024246354244263108438055634653799341500199765882183465512246170094358276790894931677189212414802746919059441273636972220858636907799684082550099235697643163062534209892933833850094194257579239354953488131911092272187353627134020611738133630993963637089860507004883395199143274345634422504000395042836228676190985684157640070512985755912414514027968278063607268430950620196514823357732769961981822403766752938777228768053808358607581539136400147234849375072064244127482473984036997853406762523306045888558004451526766409824529773503575546630826927754424186871494713480438540202913252425599564856535816035663097327925230339822762855434582933911197556082744292401895009890541173268510166963362091255450738465989729836997822462347405235234726618157471811591377774486911960110859444775480561804950790074904389396974339085898573353380925558878600369310466637583885011776452894862705897100538729540314532153638777950678664761337903520123437706172454271506109175895909184039931732331204211172294964034299259980886856965109828873099524798828895776114950967780237629687126353141009990387376172270105345336982839757496902727058690935163770017396872609985375079340545116338922746134598902495739176010928463618417744259975884624736457430517440832482575014094502020409148995953882486441736588058819331849751962604039037815757107279497635070699242907433794869076646226076811344877827747927440878678621908361087066456389265872733247217640328120287287355580874528207221303451175481176809068918399756944730605799140982678239096220575225284847586171347313101751628821098697063388672207598110550422226892439944376858435199491168299977140036166606097666280886565055320940782591969717574338822334705205498758479787217848904911127168193040343799052728045676018598917569067847328800584659910103905662671812635201678136505612621399582715487690730193202131074800525459743352945305574534197490890725933453766801235303578839882162926260127327322009500960601884991999949044073497318245931496522619732317652964190388434025808758828866756016200919677046580549184071187468096702503507415870914563622292915857376691802276775904294919482522428761797377419700184123004208874652964422841403033289403411015296103778873085094065212098343214638030797351233818429128126440213788959502562216742402319061913247748040982229054788669923160236347285977664019460390199439536018370752052491898006531899941404686138596499087242120690514744402520045716721361294718963519834985404531907608752279982693480746032885431425943672850449675271612878439367744860382930494648002208486801447720037712210024277290039644882572254028350114770138949853575122441350754300722321981287977396465457783868010404357921860975269759072048763484402812801204255392051080710101127504940510083749264464458443268788557445347648644231719434014354567477298388726256184500066161247978899168237052035589587940835374539808431720111689640689672144305519501232164330393957504625123541080365858184821987137702599332648655592468980554928311524029481120690509808442773842885115489595570130223476951919242356640489145125152240643740741731539233555516614833677301477744972281273449036924582032960818670005382723593660779077420180711215332876482716476904693761094226167652990594339941116683013579143883631981250659575179372719988323675749280386054258930536737649385954802292807945600759395054135482896649750078491298004086359857705292680848430143617539623271933024721090030734313308401429511190957088410752904929139007212710882783452662265277553589060940730995962322753861461183438843492955721592813200620654570776009429347972787324697295410335118858061598701565936716030068561773099050907032342557620430608994167777137222247336993209702958125114552066093814892399058757480258685412956573660504763424188797188920234631729995404073308650624567408246971529610675880747296257698310393746816416896278093635660715957899611406859047356186013771404853722719306776371292996167627956546996369833238847952844507732842487727350419587743179095100146364786681000184818169331102925141526939121477945266856706802114479225893615044888919504896561332900936042677443961497461860723930542092825526151241075052306604885326749014902063758300506709720102258736717593344191607285708118630690775163722390689150436493498604469357031206612869657772024404224804636893461429755344959078211085412408262653078156524022597414540184070412931426717088828048693669501345074363741926536917702364015866611467801878413425724313378791411074700896893326490703110088996649740680276627853750412211193405696228459044418081022854500105973177306252925576774578205000697386105070940823191543686281309221431542607444903147663720287294271300200085319174203839030874232294175849242847348198278029613378072571654840184639210918203297392346617640403972110733480801647102885318416141392530593513749666131765947484001652090274437322410557392579609580569695444432449399278938066855082212572589631227685447458693382597397058832135099285207277793521612793620962095148289115353824890855607594085951272126640615309702552514645166077797334537719675049059920259375121139208287441545913475627421082252696900272874201092607158055131900155628918351482354111126808175706383485450984287175583836397669564575769713617018783003024898355274027064260830436645802892354255432397002762474297058026908608207895047633479787919242005588288075669058615121340306418539706379339994022864987771773048761656081486648052872125624293420859149652703874658324369183192071401912251807351819739478430913437432922523350897374971596007660446355492572950583129132355872008758045996949069437009234640483941928551259064253609873658711166328649864940086308879013023532395834609975351833889902295718746622123977345442849142110839563158754866065681712946990234355318806294378879647512182964569162674940687348354382632428301626554828938786490971941490802035546883218566808251639527478134259985681335215489011607747371732097195230449715383152069589096200045164524522591446817476974796351763220116860241516760353954750931718050409596778655850277752938314695642006432855495460620720394335580475540285418766225587036807850488951496705847520701278490945306506034766284892526499185522202245256971718373554011145045571612805720472538139993839640425626114033773358195072543073768366803184297352979281538893624234590436779753699266854278251957383661497386348150328703294864808933628015886924893769017444821662463257750535442449511150261465941079692868352082048548203075064281982376056698549365478470672318843740996394720511720991411862573209337682401455313275381537379913543168991470944386630311182117973045262350404732180765827229652584736093650369257728781492853429783143079693628716505584002684935706618564407982472285538164368938308567951642809115533687367514754941723832834248408327597849324704848539482675587723143055236698603236171765677504052098539140588988264581585325618618374792121524765409098345552689261068389708795473126016726030243736609441318587405157364252847638840033355653376895335085084380083084056739755120801042922465790670720904642917261569820763753103717880146683428877920714333317819935487293816048045743626073195763790448861639046573765015130014722570070343797658462294153875417605295520246690747487859024932223462357267215183305216827117385984700305526438034314941307196489169621347604927550157283811979705205911734835117057033468501777368914372453891201339079070079846336879419575472403385397727306285652464074052418337255758370448075857713644923813164298820238192919673724519275407636678632447168255395329230480080534791814051654598583119514074987004231980364393081584258143687251769859215619068964430667504593229467239869870040919111303478873394415268773351475394383763687143871670057457468754017522597429145620715556277060182655486060341519739408791910114336656754888660532549975999808736667511165809726941257265637040418058920702353521832019765588387839094019725095548666438529250893098523843680232324791951543560150867190123944540801812023545579659797566105958390370450409453093670449778189122627694080191254173729488928154245752755237968263491934717466689074165493135152137492769064424759370940841062658005631310107741718213883943135534374165797551378825546564777431480699952842766919368329637848348146923104188531889312307586715652593365813154265241108247954822574972958158434000175957818162049388110721104462632954168448864998551256599255316311581750856055937775221798658584546684094032117538387943498258484388456146538644790172483962218711206104852475521056329048182423122493705661522086838955681791055569790724327689224461083107884452364820642812831496050416091705694736703224222290163762271484094682258760374008168763005947030812112612637153843692577378397331197659805826899656655869316891769471073537347984399439141329891296534656772166879622570883920621748410584439396518788159009568666437528582756188618399542704969906883073224242622913931652524665352350016718021375612411976431819301669559977243582168420367887065205719402292757998187801459052939539881593068255627060814720695701187509392503705274019958100767535251047464752292774067165883970253186278587999846595741428461198497295037400324580932173204289339856622823262699409713943996468438767445186716725815319451465019935236829597735215400607796656237514410822702433946496651291448435990193422690357319830407515258009607128685381198398658258520153455739579243000812002889496479044816286419015424659737291096256406060402342220537947678402105305351239348741424946502697454749400053424000421322259317351648008079087527665309690133234076947069437435371923059380199039933618240989268815532299547916183664535070419336961043276399560363569391381929042027735214624208747789115976001842746163607793674794025020538894208976163404645562688420771786898010911767948438585031870198933912847114535729191576807996798987793866948625838322155835959899999816320863135579623678867566848673214320451796123591132225605149599797792343139515950527114893413167431188755959454636209959416626528804685490359953233798150765149840454373852549498832320736210397219702332242825290668978839230260570930750725859633560434691366173202131497457656606856296098504126484557837011086465571499221015063644490387531909898753247037338171922741738462849669359776939840858606646094864014778975756760808828384889972743329720449090165186662354350200537636886043971820743289308166520366768799632928032098891751565233880849990260000084406405243478382195069473584973901293461353063575481379998143270625455322449048207169250834323275604869866774568916964113182934390333190438960781064659884605908578394202966570289615457104419981690639037693895415930080869009685056127352553680193724306828235143220051219788851217360645734475874105981704364624926291161991968558156322004039789777134640020915811423520078747243994307973085057698064626545287960387430015612903324919352740014343364042301624854190098303794264703668763834161834505657273646168970979545219405233067015943049810111296500242605138770798369400018969740452076260062955937871548168145761635721422943352214020831030780315115590000820952989722562805010331980554171133630549049439115534056007076968740018278804365016028443199056354228514471873178136976402783208265184718331745299690014752417899788258395334142145152661161832251853710097283057573381833201363027701958193663640239276402805526268056779713379786433824924608336368469902071959982096620218969457208980646907313061984445778822626864931760060092189621258537310899870577139035176007945600027129624331526188106825306379343068207795783733308998480852100038363003470188617054122800437220324571273672149854510898280991751538678325542109153012589728890694693170700966674139626262998111510162550997993793511856949450718262165388852326378726875117655670063293184530085948472307447026527549760995924864100918147808249331274038451755729064905133207776225129323989542011338605037960161296935258532969823455988122274718314480493044788351337303733888450842857459960319422820849481847544797535693596867386988524026854621544597353682589337437570318955546197489127599800526034516791120445683445568054485113531969573479122987811629386174041813515407620521846805548075251600747953878681949228555888332716541832393739523318204537003385575362121899431863459267320278449135791927438546099246263083961136188595512355599193851389801914561257775567777883942793343059598104904448007250970395235258545945628813049822002690371181253188992257933799981399214563084316569157221587071640330173836457947498076682939833112606202133893561659469019643931071794099175472391415457738273339711451133710383307717551187557710214643683818226836569024334343305210668820274915444944667663921224544503764382514933631028776358403103229531014820231738344013771274950025711988993629121014238583616382866225116070940275526755155527492873453031114149185032404658716773636782722218306145088712248719134540234647248028315320027721508794105218961548716519345967859255288617335485910868767520442048912862936079281246407522031119699959292048155835313790769659872415069280378554543062733819241340491938191131216285804839498897160893076944252800470661751513133266086365365973791815718142185749217619662672391989966070291170849809904266240658114649923479881340323454557193989604695053759266400072009426881775305977790043392587996711303572262805138962542187834012731030342802631939670714422787284103200449110838269489437919144724521530575912840768389373095315077122261364064675542689716366370260348100409120509544147204489594527957978404523530816749199632028316003907168755504873046354919581016882600810102129475595389985784418453011110649378450772543380582097286401176948136782282194259536924741779203512331530414655233490255330500579450279911650472907062977977801282822358412654119859108160683372870891911637486947588008461305101920795918566616180446240251354338402591371885020468558872495106295814038677270960120918028448010141137593081619192449495791221453753314731973637950032469041906127426091711025260191039935044165383194721780111935536956342477655854014222393440579665591327354436764227738654416571825119926157521778339519100066186320762504200542632315452467026999585818983117128195806043322944377488652318687665662723908451742761560109024582083936219278063364032658055129032576001593393238182307714044458738282847570616723695622784514996566350537523702332672429080480546540174598991576159178336662163312871406887856960181468387686989758780851155405454836487050289974217942687283802187117267326426610639995528061897202129148388120892406662522101348940148995426954057237546430562835468538072103373905626854640844298505651496660913640362625354089994727719817017586190770374429048248732740639831538367928913325587467975078509829360539380003120192698412233146006247840248613374932831583341650299726359247614857439051485729594599415870772281552991687441862922402990535159384545851969313998654743400094421163177643852912983022702301236146859766960854622678079683705288263009096317929663865753677184260851866856325667297663936627712947461938105017328049776949181511892663156646315038777259689456354231114934471747479541153120568928700238643391267720375542206738175875471344954370408347916292138609713908604417035303905954789886380354182948186051621622505205208758782043438959864602641107828221114728265083268421412452559377040831453995091808881610744971248261050257013734745999402568603113559096856629711848738664459058257968449858237178248442003499166996392634691743469503891988865299702759312113645157570399024838449147998446141821929462639696164417866068677458615280335896204887153342882510317306172331180060611678068121830487509267301009142798003912161676015386362753432646997556741883658310421762188549374552402690711216740372066086386819914439928732660684366635124151252507687847782506015599844808275633600594519514755284784213098543344946985389434064423484085757710100964664280331086391321214331317298925124759315374206648874574621359995656984546427883066597245521067970885557173146535839945443295326725327081299806957709877549655056629723456476145685456746574894881459219773573706616906143884719039737051626491483132102621695274667178762640325860419810926340889570927793038246497395828648218848286043263720119709126303977492124806536758485928578420129872237554668038030280140417805024477236443974625297885579091961499364041663742451129182932554875463897468458289140679183890465731618327104762478906494397551883868965238269940118545102869781233351829116948508693577301917474414672234049103522224762726576668800121229104709283670907736809582912728461077287488557248962761963542222721807292729836116602705515966738808062180186580641448186341772303773320746546355506704635903626775692121591774513890518943280149559125395755618053571363269956619338689140987671055278883559609973701059480978250320344620065819639138787287161368415776698214761506943928327100001648240374279419675804923499265926064551619874690081523903520338469173286959042932504999810735290423385294174479837861638340150821914446687168445853556713909698437858121069078400992255710657590815921137718066352146668478369001253092004449413545110754630593680786670885302393604483958616537507018511708566007283350700811350691172872038721473408564708232266842074746941349818542422665938584484884174963491628476876853564989703930648920728429488144128813910506295308907807161610365667166466201027609052360129376920758486860620515280288332531847443237829654060891683973105373168787517476649306441905203051923854543774405362649111197602449391297508260787077787844076746263594865487793029516733798792175943707194457705338405414253182814611445593370192142816196980794935191036127145741476771075517931131641392694440262995752855726783277888186935451597013395666523288095312149232699438245426327973025650040398664492557329940657168356059227315185520929675926097588858025015950577707069051898399682115214438646073634329634819548853849783568228529267854395554829038334863292103887336195661491070776869454673980343006508573679318110117265280252172904980052189395997843519016477563242348618989825891518370082254426589154403949311707419267618975089978938178908299225583471575242905157467560649290752993657320314179278711376267647761231944810313906121734853414901751585457863495968152182286904405868083168139605589929618519964427410759837251150956790168947513182679180045275970158666815794247062746491303175659336295837198779133158470738082910282351552238545545470093028449639820271070330724687706082569391206846413306870923849325341788732006252366515216964692692717670629019750965340422704544827094550122949767853453656137417569006875099449637901624709628721550989207843730962364282500890068314328167179503804452079831450723323212843952706795255271206474614915984468463149562766482837530384084955132980192760448207227045961940055414907689996519592745108463917720391852955160746522410549503431648995163081685524910664999146829604253947609483648649897762153945019370249021065306397870713552640136814060499424417783893677198649131178283346015275454634410187710890106117121178126598194176807756000991027811792156125958446034940607549888141711997322434087217651116629783543750756891489233375145078832583763316474017135033559441226758423975187200899448078339749587191530310155511151302077333213987071337254425414990454261195190830168824437471524969012559493504567550325100173056973352173979309202835369349933160680683877096803497196339927999965327212531475840662888496073650415974155799163393466036058786809001594808547892790119972874420481117377724743420140240347497217778149880241600532717204727061087003975494429449356795438529689743805791904776428608687662308626853610433599542528554758634563481886017833221957227510690937532013745663703919940545327588998257900387503276732106113091553270290653337669104645751444530595155261318734550343419162395990787558552565798764448004071794715491912714912072009047440968593407636279419910310939360044604763594471464494445831990655654991986823650282167069541299131550276875551359813125236693358560208685104607221696038814477320796311256339822106697093892609819078416942434988833905255447437830533405782026308576507067641516767879019863546918866171292979421021097348523630747507827449135020711497768379620647896245792763263357088327397684093583125818582243298805804756184813347757260230683801553161513935800708411069141488461086509268133834761616633635161925375033909160037000665859958445038121680657234836009246398712369022300943217996386805102074311111596255997049601720581009844433743799976082099574612998961626576269914538274937702987757456378534855844248915512950783299561175886003860762258806692840406913451062757462046766128798536597722271235075618980532403985036414559715008738753192961855061464372652525142739565200901759822306909488788178796446684432999860168183287247263312990257917797432937575788731250663565156810153576036910503301473165116117832089343552183414220855662962664372554763640360978583455862898727533704264368448430298035945909289165396072589211231801596059369549714951959155534519209413815480912424057868418617274366532110284077538609498992066825525868363486741080842340212113793324089435448996538318265611322399912298891045862865957204241860861662168868545072953879526101962715513315720998894251498962334744705616915257007688747996140143830022826838597932817217050716889655603606542176540059780591422215911244801691096098496236555013119893843524827065230352946176532574153061848627688695909992136375558385811208146384574600905858681066253161754578659817271411681317998073628801092938742464075849034003721411661463900418385946088963907728560092255240755249724210632349325592035458842106950250047899002502020480316894707992614282121905398996143504257521011701874146801423363601493876728196580486584237541006535248593408911314170370554408239776840874945003089081400898101793378876468699635581691710645793326412471263533334726954413242116371227361461685403035548208871917600330486177926913105880550915415544261385251769511561332821796532921194300657075747822939494431597454912661918926651727212442035296977052136091133491611459257915830600753857566355464582716136374695445200517748590335367486490256628379824293199789656008150538381389911389335275940614662929180865726068883249719954759909650922352946896896339951948356153346718839977576276882379861524006642823092440377476589900095133010701048580596151396704425608112460760237018994969884649176094191681080287661870475034927754095376941974914813451579465003033821568777627277704028218596201762714283926548572618464748225403803851434920075164947800432331512319169175614570035608038379711924456837253064183911439994765939994531328421463222809746502773016495209036169929106740363679563684956183786772536326168764798457035411902935226303560103730354732109009016308482456867521419695614298151256833565913839998967741836931869001785339565920992097135950047471472727948850043732515537467393780464526133643017342762102022955642679979137057270076281082824310326343666504565125914531369868827380988966940170981937752137981313993933631730055484219916291644258698560183951348409258537960475026906683435578575749635941079230878100927003335451674711806350576758226733224925483435873440836361021480554641612646554795370316724426400784502735699723880376615989287117036370878255414004551960237751771590394702946070514692875965752934376467152121437630878665222479923326629505570925123203502885611562792374914220373525389516464980687701836175603443130362299201909480028750534435426849848800941640421297353820287046516461857193850556261520645488060764920695642205147108182972537937652460685826503972796324561346310199867589521112857245890855999953924538771159110414002612053402667513187828137351361607569777346360292945598578362374967125905764650195742202475718598745595445532212993040998524644133499309800741309002703505426098644456901440789159773513552935309436918582561099512660696577819036209858736147954031203469317911411070261574100787868278597986769102430636374044757611547219128109773816942716497814101227139130934903739203192736387956924613826172980228842641704341551127143659461067078450604595437609214657043951008585723476454525940846859127668928248149968627744478863881535008741833216428705214394439887396596633027491541834813561131499589068905657387864886552658207005163708158148326010399614073056344281133693653108450056173864693319132703816605542274861511537833358918108371107898011736217489430325886363465850317324548506132627831249091984468293546152366689709070357601547811353812055871624520116020009600149232857868712690900822712759731183631111428464204021289753853093352271815824123178683443881717563031924641579088655964012296506391286950966290885743051701059837157484562124944881990632687062341414891085879205840581060973265858241829117672763541391358974055510993677893967743824880875670075915246093922559371166355874463187930895706159620857795347931362469467069852838240885551135668257886196170326441675066487036358970995098866721005358536332599474961400852994614161376059301733912526302137637792992422206440899306013274819602178060605433168069836394363469798704296362511066728330655913667615209046114287286194212397925383164162510469095047303236734677537177454033694062548047737718792478255512478137749963240935902208684263387435102677127736371913868636468031115240341396890918117546119014815080250875749476734145798454328850335276420148837120775416805071172513184127770340268534733665051564130781418530759434928983843504877700825698078472755937069000377226208655439876726436011464381386578221013338803652884076627536438430983082941483992796304768547114472675478894998392064648222336033067190820231293300042702089157486717642834842739792238018604511892388864536358687515423745047924845665818182226564709784068540880863272931763336858111040988346322800727667882709695322640354867524317948902813400440594934010301705878620879716229407512821905185521138090386262642752394774415868756745248469458559831617981568870195506701573589809550211459842421475685603383411587979453348778790391175096580475600802181471093317772952289032558967330532165733613783299043943590951337026023083317418800647568178494858263092383176582715545256491385930994727409868517645834002868697751035429061936460509348358384261474362898419125120756720973427568934214119485707840310756898760381324653201448866230381724821301786829046572439011481333804780117295520580131773513285506381673060784518717827397110855701399867017512274548119186109316221960685929181585357269225627108596232143794220671333109618483816730935765916062972291873934261833479842882966224276216418359198619315699936246069806256034967069697974514145074815623958468366859816705594808433230091417217938908463070496562065432449066129339771972656679687283814693823970181264621030649465281474375855785592795628690824471652945559614670212068751946691928992075582176014179656637039509794981556487414018886128427696586070716673038404903150182355553369611967435245074430802541129974481267319571602366532636525551911233523055743728690242090668555260892808996642238179188407559348427367188627000415155543758604619458175441560717371810714081292889091619817143762010293546310876924704593882618032790506925559557142672770986575469582495068347032184406353855549038697700837932556946561486201077735366362889794534482242087108238449757264546018410431999679600707626602404502162012305839047670853301191321999051870138288510876340443205764405291689142681556628502840157226352006236866784335078715256116383095231541603112314094351003449970501039647590435703028388551843849304613113124326057233421366448077391380849079824469051463243408640130404161361679250125154989933025529284129043505328070027625284948023028667666933756144495367636575925230491452567078337278422145122427644731041600773202292548121343437497519840747041414319621239133138591584866935820999718239439455959432626511054697197940815727871088486766879500999038872596506299360631241213911550197075253212950448978040262980070519797320419300737416025362066352382649811755080507290935511588684364308233254154059942772476857087813904749637189917121585981158733781646934161937934791067518094050982485446111295178170363135436403939439555826448563546246248555598034890972121292114244042621342090101855918924183573266698541354127945111273221083378671621595019470356574537767452556086640545277770060295747528222874463385251158546614016008800881869179908304015062371550965791230213886969008201759910184289724541402618433094878977908205945604506928333042003025501282512963974368050241072871225993360633655330579981706265015220414481864475628586362268433025548432562497783683858863248722346399054829720866377266394422615378723974543846633448529566573768293405040956254383069191405129890982976205453969912267907965144871879117691278224204135618910542247528659512437632330641154425260418847495360505498074578406192277844032517973130743748196600457671409258061996984208344617186739347633038738182847019480858163771871239944181485822880622212932786499408406992521739676218561268980163067939357662210054465119903433727986573074176059588667262686267158800102957118053424277335298175299893056783273833179678636732423659568004067069378061635821296709149784498819603816587409969811768138199941041948530635652864627210088607073670157688323780568927092110039938436527515556939382737006234781555383761475455746535817147926284050220898293675127607090027993987541877145528976011654623374457721024899843311027627420519915019451196606656234895586805537593705982132536332336093243080752737518764548482931526982968475180813061530942658601533744802173573843339807189030173475672426773046330943008696443022255097465867586967752222706820963684155975086816733068545881327798082144575101030280105392497089990956176393597655801222518063010804565383009105304898824042966658288967385095218679991083462379004625659800189606373845917431374737706154498994165006773659081439629975861354594203306555092967932697748562964597994369195809697681191639192872048716166238438741620053265403641495993465331407317812858840295818187338511788174787092377547749469319084787378032846218761877325470334250860009000777659422098217771997296875156945580123868731160500089184686765399896141812435793749861746784427511350010055870424330177283748713044101294013715074177112977648676948368949992491216456069775567000552528521374316143726249548087685055941379667899648672625841573956227515266555864969120012397920371416445379453345929672087678912720396052112359791907526943781107362148244144264583011575394234844514891919535188814572235403291052546821762737046402858691027255640254824656392405888971777142407770595825786909285047047186475675236951332541144711990350225337263023523709275042212137433657671843873003593676339539479121985335928306710735599420932220321706657906406992866376840745161817871560104173577802183705016727684549434280393070568037079811489744779148895930826626214659801545644084805568625932058659388452345351678377549749608013550746318922033976134400833556638232878742964781520971886259235180940890386763532949610166370176490330249191602585114740836413848014465568801381978680798747727232999121029589385501867434722995461658667812649064368022525578079508065556033117114566245999098019025323606003229383623385325467637929143898649429734516193033481369714729687608341172567550289655956333755299727532562289859728526845525254779562139844799354228355486968512139226028377361687893349804255639740374696466353447474292176936783397400321225995429503143488345363829254359572890014108149053213325830097002213022836215760153963983822646796091544548618766850344255728758664830648801208669197029439659509979046032897565694964283308305175791952539830045108043966787154251309861926098083936281427039817476716017990148553278226808336689355021979198956480069364094386530926300814460785548346937956469608059722350606210166183753115527981526697875143057025715257959918304725524577319273822652246336308952018347785334900353884818960640335486384490015656129758754029148977680454932652503104951286416837069541870093317695783452328083959876312920652653286881772578318231931039836225880243749807495895081832347648525205784798967602885900867739079437411980233757966632774099024776495092752390868429610596812481512454492296071428500206585814442214740623389525828383380128029718376842038562652585209162072424193091695589826200301777916897823792625135990560096052045872476465531329047539219736162836726789831524639509020470339496522976592600844170416674935348581125650533518661278753665795425293674629919811283436771529936634698358359329424391191232577633805337813509967312818875855764012063071833615470823427300976435609321327674422717145554759654783296852374325720039069072985005392697823039903810631991637075073792213922388242245974428968694108254130458417271489093144136910843470915710867747971118115677508715723957590037775695917087310972009809085533047025546053891727625483350415905598152137683564011671808968642895063445966072327030395276388499786519658791952441966070194296235726231590308201866962909312336089180613895326817495061172103405718041606304895827198807074392718885723128992565691571929614656097156664951524682727784192605611156868082287618627085118026246825782003168555998042608876454207232703569947942292451063697053253398205133197629318047824258137212928009029661103419919999601397430688682815362242092889726435407147140044452982392890065086314171093996219548048914314732896732941610246646671419122355029777647871196635487437040996761755846515985912304573192984007662517453318755465214247227713720437016596875771326900486826239346527880052612902378442551100695640743103494670729178797319047967485758744030824114564722077087868535899438938161249957449356083771231834776415974691820314457556628938899686112407990772028008325723081879107408954558572556011401336829554407324806570050977283542639850091051013806986005188653422879007660049913393929354509643922334106096961404267141007576982022135327703993437015159974100250827349665619552966393619000345976281355030890005424101711500782414652767854382591335428304962380462823833157313450471624833203079304717156691409320842191582411222307294740847700813954050412381034088156101638910707571360367042849170595189507350180808815622031443792197251996028246346861080137394085402258267405139822214679423818638794178179154729431332252895941427225367518295899233653035239509647451781001308042622137276090972801038007239775519273361527850225540504619280315673994751452409022961770444180307556599366776874838129105654271239717703589184718640496350410519245836075689938921345226229581907559869389334793442465298288954891507406494956430157441655691146126015251026988134875082888676776433465581128535784680993769080359355757695423739400833886184943403921642716640737177520181671953938417826209494286831776119188495724836492508296897930675123224164633098998106124424792055531804056658122508571529428087246724834356504031771324592090710838538472957391067154502968556685969137783098774003285513871953635530159441564702658994771656324915910491540376371480222401145659806022226432559750100020052861405399288447337783352990727101841957444228824631376666071250920650576696813099883175822825646105370579391030960079514156185754641529708134625049105667738105137527191358395415906991992219706603158648171799228009695593413408269119529989294516341736184411461227318415862877540404614894154767998250335045997358721292104538933480504954230207184588730205521392895498641904774209809469768881722877729405732929333700442634520126837899191978596907237003359581193580812053227809978413387136117303566245674735078621786099330934113895955054478557404851422549797920007908002920991812970651903684557506135359138700784625632173168359684005263811432689940040718591229318830186083408975924167563574322700483013830909982272539947967896443075467982537040096793065402779754933668846530753938544254761253591016917234394291076404411688148627597935435149198584467564424419433150868771060995275434739751623970267070985605506744180080276620912080506388542768971441987642754178373492919869779568298483656083874699147205306030308064911170994828360074288784369603898676928516878502248652892660193854251355656084076265342120501857302464912200657689321103057790202826857655875272388637208482302400293134543448150638033266983486232912812188657177112467330256559641614444877878936913457598559545948123665446332548373179599613715126321845450451086983629380296149908105536886868364348112160179477123601672954055553803154796398302542737231816902941062654681606588337219282706600624380703893026851292317834452065518951576628514297070910688079706804376325445882017900947577632664728994500337708021281672503882453558354865563135148849296125775837876259385971417265638078331053745075450510152898292627774085023921289873390949075184923950828297965597254893214684632207083845283376989155833331396127624524907034532613786076585164498453243214224766744399309470864470629614847557696850977614979594395583161475284105219454921475307245212643102863505083421906192184323043106687890189728175490396808535921189220506205103751664835876231218155217632606307798105282728066581947346760597578948550383113228661484343681851418776898079766307740814759122607373587598282472918384483572045071804286346075146929882927854198037812808744236497623895020956806030601966924099701766021583240488580338727700932338930829874278695319881438066091996298654245021160257955470207535893013475187107208569589946154385904905850979121716421632171342046767449080350589434214512020524504635293159373263844962788393179499654179505335278743017116433730339908254165022167885358889248943935246276741356551260588854425905699902143077294168393566443544894513587138923054710110366193826142028037141226501699013535917446419978723544028947231424686034389410111634557311933818759378997875239760991943221431724451976437799895314677436982835792464123731495452778188274817598902566246136335449901931633085526481498382289407360310161877608660282227436380773763833089970742192678979034286688056975406572397621095351014218472348000048736529222940439532082018821449728973180183369910229636087393101893809669591128450974037757507722433524408107133488165441658133464037635216645922172116506097018714124917220366889361883188422272547134514914509179950632523829424718837145555547877935586904212860495086684460580688771230819109106621709834580848986119238980472129695693660024910652277426025454952768916273978242330631283164200997525539721373380756539918012076360002997517910895903726826248615865969291591949057952808680024896137335445307292459738911750271792492091977845583351588530594715763369127935401045216144976831688580222866885078834727083876459931800297007934900977756227766605028021307441693886843154612834611148368412803862016186414750352013020417403950112997089704202274395808141982693178730929604681958494676967894357557424065819145647229045545403218119270904759305857383257223290481934440882383172761964609551243234479771512845901595065653975793833330596581391300546968505713415822560170247989483437163026082283359004613481542150966648329686448213869899004706120130004525126798152252823303060696854497890832862426665059508138881750258491874943229989838950563928292503580443866245769512577533809778719883354767855334197438285256412980586506666827556566041845437398891016803274270301798961814783658922088411434874976784171466967273240836963025257148485541909475059580697408047065029452991585367867095727099551161159262063171636890541978710065117143233688118743887986290472705968289352677180523783824154366090996975540916969975264764364550356305917154320258404837002369564739532521979833103673526080494663405419356401259685719381889304720475747655064025377586221560479251709889590784958052479214460034829308937810378574900554462459857879805717735527912536674819781089175426796448826921399574239848728295557692152979865524082010456324859036719769874069342064154121953577696048537550978404463657562804949446988937818599896752662804123390517465387359715109622878562964243386662173437906316115026664416726331434084082336700105473030452090375040737384403119941670970785968683658828404826740824973540869607129280852992292705102254475153321580162622113902770714103828443959475105451179578001745033684434730375250706369893454178071042470287464275542244651538407764135032227680242031900247095562718597047308816096267632082738518596869662228972923591208876349875980111420680105706018343048942370486327276475478018246319071203553794597910067885158052968852085728911296106314956458564835367514025490570707533463310144300468281496354563809107304783034737771835916196482370937680749546374366623063180084310786970923409225250035473007145263030021604012208325281572438389730329352317491893187059796939215432618925227804772456075964451319433618743647359082917609004846187408700515875051038732320456817731100204260839522728075720825100401991645074089427343841895763479891734922139474416562882753893893909258219078912905590503511275973221132912564620190512190268301565232178425003933582501603241235977551556803397992882678213180062830149095850781035983763911225379440688953007558183491706201407441236263608286395023962112329463390716482875651802798289566280466199731570665183070361388445541821760574921313981071611669835880774188034941046526604900724463881511047983340766042760668114574424584642735655283122318233026739283159636293743627504981649145568995465665943838156771555606962513728334062591661844290442807241391974402551140740658990142911808744791610429832646239280109871583776754663267958477236554516436228938070292712517045418530839344238857755285775792198309344962637054231762646417921642973702522994657683798576696081168057449559574405288414547162929841103178192800627676778451244307889370058035601238821028514891320799778035858871430914922435646822384230355430355847376746092922626358296562923279875637121348693765002138023967742719448788872926802563288392618034856627365919810397028200121742874237397568656654936156310607579790316447987298779320938039081387593582601753461302538499753630591709564541431224093781607242758320935653298545709797938166105796022914971772435805753150842096044838262164010515583465846001989953619600216843186039129731897194223608725218441114246102022047959852472226808980177060990449904521053761066031233246527112940141126379370384980671099966068404596308877087661621882646824086277511155787748266311202816022724969028248361651993950463842778709920101546253040899187662636196594569337742898394567997368891259190041848025732125911888117907248146743706531217892509258090099127992457456052469178602692754768798837528041450839305114608940864744417105891836263674075290814830523358779877725995309624413513387013241010962720725234057857736416658285033655523101940358239127624378997146196591928277271063840952297743522236024857438469407805009821365649764928336602774724197546381443706178229394129384565623034862733244531695381023806864795287081893779072115706221367848816274285823644259717109406901755205068961936492288500070830492843668303732358223975923463301236218250151428729921491885635854291395447032262389653047655219422482722031157745324107353036818054537332501518855608387780181253704093069933277942528155805652494449706655952581021228475491016986006144305499945610458203490705982001743958942799841814256821874529471213311154736846704590309193693995040480630019311304303305377363204287055112758627299275417613242855027258387576068370134777001945616849625011818309551351548373765807627683297604239648992319574057473902776905509825621635748358226154529464580089280536845264570895438710302396483116800735593026633340017175141521380426155220647531779767524779040836480184087288948782333844011548126000574607152970449044798486212532383771823462298213009464865868640927943011744685164250708501028868290394813363146415870514246060328666554610457906457919142433035409501690539564705695898599646861841445723419942201278805817701199676986989126103313929865739639147595922055553661159823342988634737883350226407877620094098271022640124021444831446504563490934345541700744486686787425420405257614128677016264882215022620813872688158220134296711118117758917781855428905935353428238343758762848553072667451270772687463264162048208796368826395739358753230896666847584679374280680653855462905175721867137709855467726382651386159675332765506339297413119418404206035259772743933335423644162357255861772538691739844596209192175891958233946380111803701298089117434261626656239291193395916498902539472096495798808326268170120004329252745390459648547084032484853752954635847792184294419005529858505104925078325664288439193619364391982351360937850858254960688975425398696730923225078423732001077068976651603948765106325943080576240985123718995783115827633561529352684624312686960387409532088651057076886736978598760273578497442040113637758846275025552640613009647011210297351789047602012754427189900152083208713820954939929171982006044557956723980581115424333992567635424555857771574771032869751139357424750139547161464623729032802718694736240643144967238292600563243188510766119370955748688485852525508068958206929649767971459958921864731654838227686291085859711137438889026721825845215253145616113774228979912634077472963673558799523505201466661442624513458743828495454241769282948333893206065498165743363384440448799123174867961380410654399658806437151138190353176949113193410252618294274551907220727209867901946793717895692389950767444970198137418819942541730387559836781973537894471859862560103237819482715919891127686191967537070596588765700948229228563345852118393262024638875239020575364715874629356940134514208128553952463233469900571374516594933469926865585494667777013822458667637378364424459565887095241050127748932876642670550821859944689128346054522845685487604195456106696971063222667470365592724743755882918379226157724095367289169204472534845100435787674056044660473770825520942843125553292785410146477029206031253845752030489528946964813990241831466228186708867376879665437975772778192954537320813077978186204233615215219212598848434246387938445428886455058703773434548431143704926382417210398781823999232224467985414020560426578612443364068222394816943474792900881345359497217527015523707663243403843620325624080284127615790914675320516213703680181281524784502323134195491504562024457885468364178669439269773899786873768653127257954026940142293361979505695589725882292514720903378406962635440084239724380432319771789396608094457442946580065868251378836172374398320214480417060614197252041289768564792976891577153195598151758968811570994730553548511638513415534438364050538712910505067849840517049300744681599129696834694031077048077177901663080964903356464592626139024356349123895705651788693105358884053099088304445150822786402284626922089892433918889521872073817297675733990593576704405696887798001926173360263662342910241256754860588401145236644609949539948035885077248367800520177229517914704010947486673662108497636546877590811326712454842425194224955373297707618039069842367535812204058616946718283385716571683600457127232071158587467743222314717337465723272134308087537387830712770601187719258786114135072305958142846769644908718704052634398784909587577424169575934135215211508940570875169179160514160038547930192856685113916426876969910619212862675423704931494484398745226242226414893617275118787390941504219799310343539008310311511989046773108829172901487960048663694524902888143912992987785703788887731215056966838059344819398831300449757681553737714489440863768961430984416386152849828767061499403929544990813569688126448351468924055679778632796244889041075291758049823262398206403267676319694452533837638966569916918727720124464359537587768061013440708527521449296137644948212069028396936997207880837402361413440886069438516262240203442788315372744457183037934757216956840992334368685905656942681662424818851878297638915888844584990037289589453083682585485718869375865607072604480039761520426049093006248913747834647563024920288536611732834188999969511759190568105371824616144076940219758309852178051124104928324242615855886285296210075168645096026517819840405577689632780701010462975113994378941150323889867356125313200270107633464123809856662980220723126166446376249006550989188097988824726753277435074211655066030102013271731338046165052526319149903185313066822212506444117818595909697607588150302072026677143759268380098848292297202210678876575216467057657470394903258001276630860232536568658380982581618800981200288109220710888987662260854136249821428264109909342331199013440305798255205583226332576444708663976715792245755229141338878958051283088795100078692232748166294490600463211806076800008835534862738590593565219001912891691625981425479779029257228705365995437028691704765869977519527666575940360602169321473119903463842969391817894813973183742012247446721548106255433115664057060622171950292193665312355678483235417467194651890968693560345267819768598798039097845793443848543527133017994058026457755221682716695861640536910339744290412764923037618795481706766258759025222265267474834316735805830108547899557298169881428076079566248532084706758086199260765596642768441321818947703553382443666506918730341267804322450726372798380873314390133721827502763512824914197440173010516949383826609661131144639217012723860869491376034924782480446733164131240568544698500145895248012001972763276895544685219708851971667718363594490772672827561832681791163751113009268915218808123522382747429860483431409186756452482461507492568259222634101977433396362314469830595237993257908362126046427809019277919626492297814832721261748228532019863483085837927191844103357769660578800064631533604137845343760177707411025556699413125212188625122206722168855949246810934941930639715791037593309596035938613861097675206440371043037181678305205618172776510806093162315459837292045585499581953533432805923010306160158158399965841486797019091594452288155076838164625554330119089874882996295799161014530410565845669145797035675895844495639160644343899845236906874384035457106570426712999860302667032141786326355945758968353229119283777445871459879816707644371899629633503859078261596830553517534291574958270267152251810928764222163294223921702162960968631140578547581670484691191095172707323148527509504633912869238763792176911319639611062790773958745873354870143267796382781679707576587202803042866175883518786794978025378597531046034716143871413777205198106949289823158668790013564926568477148746387913421421932119899120969745275063461957395758188275210693418559196689178930433307925011921464383897014074729833918940457811143465416196948822954255714021809597468271025559005459650052090843775402430931223906504429409484753140473839819124204548687326443739577705523549072570074212590977665189715914967676642867061247250500596952084604543821411577865099591258213025972321268751736790635114919476059816467315698004833907540298257545292344464134295573270830619467726325736309129865993902283623449679152418573867113829083402740570262906294685394309266436931881075023336986517338922268725934009955765025073952478371588621592008387791094875190419527289324700469074807510144576445384866505690006740029547971947131311771647805542191957653331102710976115667783272300285560852939753590241617187177711667136506700924770134268946801053370680681962082180837138982044664536157887763141587536111043912611763387572456711184949315056073374096990346195669669868037701738583062053606606708552668592352809917203834569758013543255569429929952982100815833802919771739883326825954613760678153619153630543046532290256541289644575680919226041400924583711555129217627432262223669764138991633400646298132971621248918171164314976122081183872684881386619225554414544073480893967970760335210395023375296659189185874753326716953199908023204070815880489774625231812771645236032366553750197651053291022363432349072198346474237288533127160777772760985273370503864393042204439252772581190061971260258306078309677362674966986542611941392072710793890030320882361444012454724447334875774601264744899618457196562773394209941980501556021036736150017718419696595586763698718494661753497435526384939704682390394680322366222195111473220727327862898466187106363500253754422997777155588807807204040425665074654129946794229000707115626590102749779307542417702849424161508101303977974088075010627059918152059201408658026168310537833982791717815675822749811086735454042295642117756445425962832262796961136320069483151568288948488224595604497844464824242902760767770242609558601120962884680915389332443104356679382884275642865498104909974147341775129520132688345071450493689882058414302264763592562433249408182523914333088340224757943816104265347913430231667314942169995119701532329064528779065232276726838212974387314812475419720948113194484954313318558731664288670314886171678060238801705174506321191769142011407050362906437472345764984610432792120476559249916824525086949475161718427178090542205501412635408021584858055714564568706470248140231889103032215679324913724976427315477714652189035410025710562808112025160193163416400644545798394738424399690557819165445634280335546476615906764153127753517939408567417642107327710762143814339689564285038269785100561103772489151005173934695266908042084920740445568941478208327856205093591156730748688187577074875381704590921721771243095336449095180806841535025351259432485402386722397272968278383286258504696048698317163859647934636832117499439544864066045674362317154581108995735786307416038195041258935283812057725380382255689417783316900665281276164862257239461190239828668160755127935361518319877496360107796913292375319982080153044115569001304339022864626313860275790528363706339996215701539239309632614133772115143998757598702345541114907910513740207089928606169491831534726647414542078230931339100748877491223333939766783719092018586209417718126055047299599523204788444892722216765923191452610943205181420966920309751376274126998382568058079395230722908057974177338284021045129566695645730834657192537287120235529270107170050977314982192516423838151420310897114516826017867164801871043152294854453987265222839350825481901003318803310274327008184877783656010845196931885091908258812283445974627352705826166096502270691213323199530745570705119948596704123841194944380990103113458709102211259302770577315689625725270775366054546423358239144539551794832240621211884505038229500209873372286920871127523470479723811397037057987821900108602807028319071603896975688576541277545196121830034275423290441835641132527017374245945039451218759784724293276603924605129523011011956686432054230323783024435564581391703388656383010800365396434223147742233892427019331654884040751714054575929256700160926953151642181150386080727617536240169917301706249115026079546250256726021701284287053574703773093916940722613672388194817930768136178599823412232619209511204792559574626767067926574460346318212929587940208612644168438232144621956800877159545925760965068520912043747813711268566874129282925894239677052277210086499118640811130304803918719867967267392920411037443676737534103675789582113602565713588616444172831099209092774984853482063201703386188138494567036361556397249968542829200139073722495987128712235018247931321786565331108766305053378771657604819194755041876349370682050820644064082894697752814055030674563901443849988065235220570378918713234488378705592937321983134428812185307159581661269798678752334691917941268237430369874718032685820664529196773552754531437439164485635230451789073698061743468509892888870586598453769181655786212727754483982985161297658898419410539593653059160702472833533217152762955090210217420900500222730686097181736178235880584224841254374026478946475498418104101296582055758699257000618339516506132422756840813022654051469967417324262084269809874701845095751858328801288997031739776312408375445827790093460332808715856120593697596644794532862417181740541285970364695832112383690944142565647615269232602862434378248866272977075804545501953445178736995404503005360783081798382855040819361114708395837555248253913184905269630865959194174456720199647223635346518546302770045927976415465753018272417476539938235051109859843457983920530667832501079788827536861943929427735444973319171382671044508114574899657476614813854764559211567996058567790182401487403319899760804569667793137987560429008574500431553268347883624288731104704126126215388437746944131476982627258998398055124858922075810075719258114681035699330625479183722143956091307345138346663159920429092803711278293743317206950568583094844984616318077439510639373220615864828545175836626796749721524279034998039158292895009873210432783611825374850751416972718212609866821967757504259212956023893411697193205220182149724226248692344925740300470985573059828932734514989817467303914529865426228445167376879538446216284322411614126537575153770384634737827448952080171828404494488104711285492763872354398038398383222206399811017783078703158694259309571878974583851589011194645789034520481728156063673026212777930186245262229251170562149285055849779144559378900265981589297749157384633770525454488110364199705823168492219977394521783089578109909185876076268840852270627364982670498734499699155601022144169679622421117392143557710247549202040050577330650429616497596518275629683312363406212842819991259246615683856843536905089755043131730042662601101037278975990070799198689443177740406838753358743844635333396370716902929688557970285544042298762662702378711525952581907547066852358734263315133559894865733108611219696353666292483337662519279693685474394138910309953992221028346241196578532308728194219394023546412506508779887307963369629746792880793110397616571100109007840567437600009440785978906872966729196939638086523445131930910620376661159822218629778919700956205478475552304342513354834698590570072364916902393752168144911159216798534750838370392220243160530343400822298684016340415367640929332535808822037292703508965893308514802211450472955855309250221544548884881080757920236656244618351797448791670831393999069106105554203554121555293587984462014629182756848350720199600718058807101406763500961376898639222654391016418813592012487383380806636088386775036920059068619978341029619826797052193515313112766089507179621327448478510727050871046190436531498520662620620353534857129322117660608160055177849109633584089038080275839790559861670644563596443602321739488400951385318398538021404868194002140506372956159300642974456914772195090376770437700664953895602461286345010166747219942748199422007106313052681435972475304618593475951413880738204853745913164786552369896555977035039280113966349761350925080558077467115487217957780166108593783033328896028924834678562296031838908429002326407374817086468514087769957586365040768852634153468899892784068266555026892877119017001267231702880748943736908097568147075936618365792818779605019766618786995906424673680482304961948180822754588742275613097389491845668529293626867849308602835246483134524862273210242360298034519180868098786432889302917868583773111036328450971300763732474668235287047610547861607646957374032249601208221381514366752535637198709658517021867692157225878157731738478811549165123632290339054770297566045510060842363733738238605541692994565982528597723901189415985254475743223853524404712742985761714668041005755859928743527067759176672643813597635885988369607421462392974098797024146637662074269013972909441425267284104744337251356976060905449711329536615006534592063429435923686526425207544642046206965311469781758323442733309578727265028607517713383805686703393988650196773242109997192481612318750000596804193640999292904130429858826345218874748455877529413427292639098559836151964445809147907592921923458278140109492120746984328761451809632486741943279352346200730058835163001581549530698033367745896775476509950960320256580643454545219871675763493121557943475415132180111735911323156809155855595661115598938914271352927925927444814536038177966166630966222328983096251243219677197601218460397100851412025370747879520737794059357244453782274598178975075199945174078448447336663040718503804878526162930898123874605262089880479266108825605669055765053055498444726799623014665881576238781155788838077287124399819969605787672534843347397056716086479839062423821357342905030215838763047375535070557461188329134990195030642459327707646247965801249320917782191258479758433412830650337522469280186818198297378161861046761866754711657072144407803654098528480653392156435502403600396982269776092138554753071017085751780123568469983882186499474730330527892093307381778087247681583057774078968766666110519192941881759052429088302449049535755316592024893026483546629217162372743439724250368168686198421426731646012625156641898477801688247153192090069655944366264669492729265779030372593095421668606111187931154052480775496993514904889304419454232347070227404917597364241655551733601893208341034265204618719180546179466530375545302320175982630878609869960935238121613970281096239594856840596407439391268336724741644671163169527458406242026797383620672817309330892863298085601864893609912138055492482550170827073176358492483227663313600804252643548040203467823993508411859531173018362063195124620508104067988928726499121525831295672962638480749849439631444244856690105278971629024295506833876278173982442684037414268800381332897853145161178783356046144572155181285923655536024958661673162365044335743537426494352567182838782565689519465380842289122500546851002704518240330023201455990716964493610275015927032043220434254301390786250840916124006950466554599185491736631186610074020214364033196862968466250553032573131673208301240880268211831955708359385183827279985408174341820724941769008399419757466884823964877767174463924384068671451244273590913414663805139512798690742038133858667035413854576917780642980409055328248895841884415477405397109217761720688050824958868666006062673616385119103552451044436710599782193826441287236553214139777857589615694562645350741084638426176969107272407215784852122795391826604517050637208302273044600859150512380590686251036147824413569735833671034223486373981452089865935717460664818247162073992975386276595531269929245882367240884229755251778873009979587064975886459950702688218431062677039077549257459822470193383469457622290372317776946842939442510915748112029082187374838586300863189350698222718066489976421593618816639656094618767607858565350279671763700987898748307715001960736847278517862366210976206045574579607243111744830951217775887905479879517795658407785824582900983220807915143567576869611582049971768345802854002919288581103547584140691653153307615596975756425370999092661890534434090740042561769135384475621720884437100806657921380522703977391314277303334561659513094203583015928480543188568966747928015496783343115311448632825032769529834729980824896203244822246215024681474259360070529964527032312203045973808615258172680078583870702567144390126525113667679077867138206188924788593055163993405786209464482746568451009667420125615214016219351662948529929122554140322366289156964682506366760603660291194049849570986973579762542695114618751474195223911807832594461580901630181547362943381440822537633539133104686666183626804199897859523625493334311529607153670284782218624925956959279141659692855662811396241655471310836573741254361552732263281655569832015948850771360225306802718756250000853938412935104570155974992583223565423023969539450975984300070412168424687647023233217902429133648505158606384821141756865099906547366875448758256067925643726769027619155119177317929381508651026573628886087388440739966383380488800105606978915170001589160804825847103257426554258343297022088461552593809200212382460866107325193933197427317708269373039670691606579362158463686549618275791805146713030582856863364644688228566916312246580906332850254785211915173641622196929699922774914085311801316512687052418867738786633574803481203280177396713470992583541893945511632503017112361124940474714432784105739395756681869131550224794862902834004708157202316739043756599271788540594778240042555550600363013392082141110638387427561537045670045507510518158712445584354182171193783342644493628580585675056083344035527456493075386805541231282550428164022215129589029433714940941649299848964871501750779061332693608682538830263557363080087595043935927199852323700122759881223209453768562320886647221751087898856585703418562708180143522686571483584066305954004336419768346402449478499702905098919409515925796590180874497575194397144093978469527095657902561781415470256799409873854660683733174994023656960539158272118510118934422401405704580943080159689912988109368853625026931779942348192558778181968164967740358429139585080742590232782284184641983230793256498951003083522194296479211810728716465221834239538599922691877743490553459639266188358909915811062838714714915066806170243841562181513203704569263992012053320983524159659117723621182959367332872015892752121359422267692503966683619870331199956406439273534950781565552599369320138464055322316565477177836104617645378864412124751119157677399164439172879374222174621373844567988201222494256127298949780098256613294286317342186407730045381718254363595085583194725790745812227014646160578967064542115983028369490416745751696469377827336450001824699487264710561411303303443597251698480574813112570823750163021103817252619479379458548596274678519849412402473474347518483868726512878313762810182148700488726351718641950252305914048664406346981402581765136184970940681249790028934444811417734808388166062873340672105493957408087511297094904826797738735048291394836396610245669497947405799933714494714907878334382859553003362071973170249389443609993470216317391189001441196311840828417227233051284731789006495928134027824395487069197942550245975521506107100343481748190822087575011749770771732786288636871918748355001582465886961927481848815483175825642792962022062507513755802027309464378465803371405495371084077451288813320994158486838624295611459942928304455309438807895928202150818447074488728159625022276391691803359760840833650390086967242505656911011284149972311700404945865374688132206065830699211364761117554500962268207295721496863098129337930786944247203418116040923121495109904357548365223645038508000858376095349130722158496272876330025458668309573316647763365474925338474685043953993925298181211215966319477371946372276539131391145098357830654686900336786819773349157222924763517738951309954381713941002072268893802399665202971280453475528491182956076508853908526462094296614940449522499568602636736896813093317826287169411723221564152862563471975200753051943613629068889036566826322252277352553760233464633045076246292590988806828044129268392464265165955278188446286657415424589233650190267048930477951182460537058616450757593791206324234595310954379457255979697901972926278594183019425836440615248195917140128086741959913241563956883503503372124723286621439150091508931820114837199464302252828226089025767790451670193777051897073594315090720674410296110690691209919595473973130847737571443856322634063384194339516010607355601845739119271233181224874758208686833891649617915986223641379823854508730695473163704445901982640978148429579201058294082910432874666248764045031834366459578158873602199685932574983012319788946062343067313536381891918094415537793205411949756677877916867418494998788478484000110820471231820681567176641172972225749644567238859697306549359836430414600801660117617383620725555010027966294012392142395524592974205821370097570707296673298257622156228541650182241338805807816369169417457502390649901318933607319711336528083696838262155900901469344269577018581739884335350812292393667101412512256200006632136596139462191727872646355687811817532270801660911004470462982228653808022204714347724715604524767497921040681025400706394292765679713032120279296556625917371823431189640526047868052290045293068008518854198103850288751774539131682638432964997620173135567667637007523369552163339339219771466723825693507951358142832820685213812391276515093388758836035797087750525160127566103813087618988919261375648866953097285403733628192784694158982577860093695914535527812704689669338152060422474925979955379039432887278033047984687099513855677255313857987313749050278459790085054745032391122510535744782797540095408688698497547593960513723072336976904043983824295015260399329152397733932045392818606914895394064437181343084637854716904461350330453449044924335582540138401913953518766942180616422354430069196362775928482313506039382610544376243542826590295442135742846878895384245173712603948064152028969964698396680196495130287900190020229367626608050682706316963705892711937606360517314494054807001223405664680752313503801541463698555570143914764095441928640587854649277854522600239027714578134285367273816882759312260554806246290993743826247153625260438832163248329922663705738095410493477828611486107510603596645628784584284325443772002604079193922947521794537041670027202020037903829736883177951800804315785259801914285966370291405846490731232467977573245585035733121480202211762681534648838351163947854794348125455174015710441587160261661564030822810185595411848286975992564265408437007667242533728133383821278862823112986869018782091196537419372414462719304750379720269299825321270325000879679596242580807964815482330582844168007558037608362140006203476184675696902141513236840237403048592918796429497797710205655930683683598067771521157213237472341993850076653825034499906996670763241513930458514878988852739359583244601802041102810382313508372910282398991058281086653781371270255525988570540295039370922401581813780380281356357321195392667170165993237680221343455604591637446371309955100118766034073808753485327226992932933539611415119594496556501720723352387722256095004798439902220761688681394218824592220675262765361408939646631134237466803577080658440720727167063597598526359704472766750945605244247289308708169174048607893734430612624014775612164507257603963595426361106020520179115686228733902556730468292360241037365496872674119305787433245002596069534434211992531489795741547848360227526329610897608797269766768196452494748824548325799062624944148847875516317989667088526601545653905197234262063576333677028395825179468343794599059458152921209644130713105665291012862471814882645674769674673508180439886019562239410177409822237061071090380138871606323229165390452412804204723279908868503874746659388438717201093441335878565394018735472441451745912340617645554333535002092038332840437738982839850027081694854273709963919259076004416304148014935199533322669329500629960550133990163282700194696744080058462429160585782949170958457530281907636013835304183150194834354741153787095224509113271963357208217540955359629623210008469044641295417038031334410118269646964841033541107516317701608170859525892704609263564124175806120487511272769296125626986927285812954038611695026447869670333358138343606215954430413022854664035605299886952035600587708616504055977997078906020761993350009005047673302401814089017371374816648795037643190152723547909085085537679109191799622487416844132099244778966400311367269197204868652917601476641603040463300160116892183000556529637163480020140427964701484816207688106477786152585863813237105703540287115186305649569805708170916728452125832381640447070884715274776453342407808318180808488629275749613663016231529509479943725898551181109825797604955004794354923032886933538657089247837064315725853553513479379617127018865787018598228326311542460179857993474604595655381628843887929703894295113624080728974081671649480099315506929996213210398139873281843598274748407162138223061537729189737646043916699808658200045593619950499323283858427114006526886598120131752627037577049689256503338303887642789375031989478347351943948170713141307472417187146513492624956969699597351555904193256393666145347874954128602797677514920412876783302836576010883491810936497478124232452252939496847986757182675774068770241043533322808871871437281635646128125589471087391035187760618319119046858380696884427914495528299104077212335858169626550548222058282160961474202181645958069709512249030576898265411802514786438285532215916857136779382792846731175918456707090969052825251487886913197020130552218136124620430463231505429501587573128100777897691908283225508325473474654885637065038950943586136779051778356339155324809664651935274491224071828085940845524660521744594645627149239112707998905193161779803965205118844511604317047925041353364825708130991702908149441900997084834953736744119003719028374320081592569246225698467815660633129457071556154850459338252526103692151980513345272882786332333452198147861706001651166331877286487304433778278945721084981567607208768228758782140210923721205326223422956292597008133571879949832909062857196603877947273767631585055617811620928934550231337685661448913798002394512066277146095238145437919975600253138990572399482282549811935153177794229994544898026965447919410803502396563575322204077798808439586195054678048134620359743392483379230037886375906013223799407900433620160408395578230318060009230785220688053665367658769793768935813793566964890183080742616002269140054165612262518119806145052620087918856938842135917817195184727806854214524493774148291473151022480831921939632821289934500485768343952332543337681695480766955827735037827880092194504847817572627787159817439476124978121618682678817866762310200400841499914454263615148174540311252440010460246439890539625356539520096300575400954875659288493862209557984272581546674520892206584922866611629158317795097682799602419363852714413858973677964592663864644112073760793665743705972278559911682792410771335604268532778637920378076008124121437666817633930111012709965276597985320553008123426716441930862466318124549669899892752214590427877874685820115674242453935249508662794504023060487401010054490303700455054942717546401422668889681445071064123128870955445384096917099828269733274649703716932164861164865048211531360997771095984454469752599099388413342375181292351586367979306267055410000202294241498759976045811826395344968692507402066620835550335712280965863938075973945205121777295645110698134784208683767678552609377762402816492151885281290671340024942761434739878276269497007118328372618254466238524284694440327540277938558884275690572216831389270014239900775728116895442089050957682013404213937699166420000481642495629435670480848381805797023599437103802294200291496218450662878693488572776956044400227161788754944082976032655547547586236224344578899795122531377007857142466198884967182407744138656451444292497246541670063579084444503548373925830889042136180182408325392181677919866635256794738360222773198885324208238755481605642855552040247139787023666340689283869223159708501329793347061664140614859170097440188954070123159726373721908150936355394274080247177557289850041452593363553189389241813819584296581338173503117317755867747291285540509679833869436561786930563569025736997563305929538110329224459368218103154637078865023093771705239682184661643796735844893835834780121190523230180127293050274156498508786411197776797640841352834634818884919365219202441619802644853928787358929632210325008904047064402038189592206668455545866761693775106955396738237762122970590487939535333889081157309238807837310297945701081657886593233322013659581120020627738299062808357357003213490785978924161423657205586121470575685496408101685867602741846090528550867957867614695805044912151069857531201652406459574484180811135097997908842950494938511567104939489295873955226005272776674072086104585450860664611517442595166801608558430716343709832534730119962283828831312632116140631269909131366235758149597071673427539254581677606298591383940511983245800906383999523810565469941165554165941555246297151649208150064485398550633399901280287520563023285737478117308352248161658964009873764214173546735746911135514567969663003915823256397998417603092684036928155133342396241254752666743085146853099868837974806920244698629859819192128809241409107269318214144409807524687161896918010142521749632594493768276111827737527482667871925383136580947822074422395064289289908852564665470591220343652720119482473632240488118468308803924518316234836996078983399514533493482141863612455929199555199333726773938953575938683058953711005020325520110749737531328499922881443415364329565889693506079833045375057196036922675369889670506010666847154846256245140586967227562536198329474144300209831226074097975019096412058581340603751374519549032455281125137201658557082407386330938856043269045233840358119203200623190490750171741922284619552406305876002882069267163239509135566992584125996439558787492224360555828082677062529973511735808044809904706750713166064568563518930946276888332222327291716759048135442533277597479775501978607351295563915655151588225285235118732297605290388586199355841251267156156356122761000237739385242561029367876947437819473911725933570350387549607836236561976161706002927030357220840487821675168942609418252074768558475103451422302123642013703295636150424240148770547606873226833514981375067423041189377379084543921325162320165209817273946495497529742034445861795565919059905010491647661284863869348206872796236694455738851597192192837901735043683427180562839968859126638472983121700961125192804031306274857297516601969929510085461974415216274643942528821090462737753690189929289036143865553015710478128667615352011979744003288546328699784562681300860649420857633683775377346928804693312432300225114510951858510435477393089757457983272561311067169539851543124175499069671776142147793509980088012709576956106061358276084333278432515303619935171126197763261287438751514648448568812557298912917543291382995980048922037758240275614871787554276734144144322656281562679488588704982751671331322740611449035356666024782848680311656024549445046179168135433882441357892948284690688028448226069792420997687971538760671711019117621212476241316990671194503752778306993579091587575869436596373514621999562945131765909660723042851732453976955317291263825677733643717544123543638159934837177877380248062069204377285272011996440237697212228555522771962185888306138570551541474902497624350458251112406276134489672007610839568044152026578079810092614644950242107019555254000951355720885828899024254158549386185945579808289136852978489056209563660622125817588828574714238262676275950738592890602117251364064184404209127093425698262074571536973686863658475301524369206767929388499642167304345562680988412891415777999620530357824113689814750432232052051966899962369289947315402813186891403988767068455519565497622347254576329762390883612609325998728483582635308882425534754965115855359486918605068856207818122859279958155746566707591854048157002328832449011096399219285440235703879839993603559054866205036852136274300643148336004976598651958404749142237606696728441474649001096864600105859853110321468520454337829301511947227712240749254706421470831357436088256825859960961105706593725309791739826666360741153077082338839699241816789177856219205076830900826734756792405674393157623134771444504031786364887437009556285842484343841964746141801437584342566136773213498210679033192277909240070997218295454376417815134201170394398706026130129062625216397186583211053398946796795876368794818517480088601785132851704236818486863480214829294656611145202677985843264718102624872437305460051296555390130555160199780769044730620069087385681665796409745574340998350854146944801707507895755621987686766120107205803153865063357551795675854138129059048660891886136253781463412472179227742613774726658556506969208431947652935946955749036637608488635503531340971711802275302268380465984083461138543746290220879156193700332397447183996962859725654869135881444209093615569389545860310193260059278303232980462969608370626400457221705226626257679822900496529154420993212633510471001688191251002972151196615879783740663447396784963202953327212692775214052118661733791706192679705517831372334442625565353780417359016924721800952530272146609984107925598355304850575348359135442199341945605213884703796567865565879349531050283589915015431358321758788010007274774234556877882337110280592278556338541696914890770824603574934628184912361793135773513738228796287716458981282577069680564730883122419190760836622167006489709957286517993817823268778907572383290710529512908626597177495972255795671134580148488222306630045762038425828114028622031900366027983170051799745723455461948080308837228049644384716364581057718484365209494454021111584554044943208906728712758337584894157261714762070161533235491270285002240675759976591331525749380018811105698027716512443442705222396055581161086211009147939529058593563970587016291212521481206799590776991409267125208171069257095355852264514812360168202176472121245032708808170458279737593397823159581995302302619825084117663534188501855104578995081287921876404798009560434548990050359408352694052750989486933613855996753241041824913833336020620888285304881101195993539776389459440848213156182134618209340595934545395795904145427402747257831488687724331730893206729808154351202717592064476497762306856264093606909578763567572315385255890140008214534807180951655829045055435807417909227160693189695116027574465652700114948052719054276018796976012810466199313008792516997180266026897011962279118287846539630936503102357022579102927319823602782665066270771600478967381760600767833947055314826776657846882840765603447336553249217725140968643328492113942353415341565955957746031931301343086787510292494555568299642507101932913447207025722731354188588795002532844859237363551919466201896459384159685988043552189249148741145303346082542879838006631788289215657725183214412898308387287623418230946061306294591153174359823396750882342153817014813415893158355118016369909666007546653590664496599659535972995043657565221535926012026563019365885602324771613590578828957162097470923216766123440763904306773401646517159757042368790375923611746597063280585646099416364057910539236664153841914914691891260936409799031131632391678181962796301910441931544659669199395587254013754133897259901160967427542751043430762784193940299061219950780341196172528970163224641106856881993919642626706307169841011674355577390025484583268281979899673244542128512650398000647642377742467638281184783708093962858659896362882177301736347850266241658206289109946848118836059972822351777164388271423371480620804042578425992144221608531343778097372069075776490820702541429295822447168617479504743220279434529715770155879015413604316432797170165656772597233653416145653151678181463441501193038558923186244926441786070021967392885219846633282864186200286712759693220449246716796442330054129061334825859373289033257648188174891617023379694050874533300534160966011322690955328855566434529557940969444217879314540553028655117773282411249747201962522606149717129195485104152296237590915336638741620977875834133947999411816740912505218906256119478093831904150174928302454988221497850177365269330274488265570926354718445377401286726033028987807451382128209604210564965654180486410132201862306048831216486364135913262129892471711938203033413274841839964118348507961381563088902526489040969518717622374645037559354248780798516643989636970135148712960884755438184132517323764701261099994491721388986539092636533254465048370114592276189986182766363318999002805087438457143938073863534442788088646204196421463757635357147849958764192743055859731367557762050351839819839673205083343580881963145826302911945132516581252972509146266467993146563970915498867131156006270539791816214899630430775100170246313112165816026322127145217512580469280533615190438607760079983502448529772699361338967436051651930500360986997606517649767744754882518493831844407649019863951382873403748398435135498521839302308162250331260460995248769832577905515055978948937541706064654349784517378212132952428630208216368814570062721046662371718204469236869485011806542549340904055861705486829793009656228655296862460081792935475990861664610367802425981565886686105757307339420992285743996767446225840592648393184561018841071958862279531270701614009094126915114210939568323372322379014452731495427899601475531091505687645689818728013090193106364739536279031613971417063930860107942616321928586075267712783207045229348314169445767387291626176315969910138361086739159984769136120757447132170819941704945373498609241329446690517871209481135328186626625146502833160774652130457090141938362010258077328904128942745460104690718844842175895911082323267625180810657120492856918361207374504906075539944179488034060717360495755478202211607690029452921180042441455747411268081719233620496033415451265648774107834025200240987376414384851001546790455211147537677696139914478258714555708046423370196263320595220188580376926152651334317508536776283527381866845060609563206523392758580643997192779021697207264082247556624361216593763274508261609836893781177843216666301849443830479135328162770213986134398997774946771460115717292559366900367187360340341248390455131861315377205106054333594131696246698374985622289482127396351421762869892240766405996757039946437027726983471858516309980996261420891748215882817900058476012749041930913842811544019215064288387707630811375949804600382612921412956434850724936134167869510115863731284942746039589794101408719082654561699231796832039276694583166795517705665455570348030194572457607454043086407397462640615109298407469772785299890030417625125644768696085872828964049603847670707336249235230442195818744622544516177956575652046473375175690907471306050295642913261517901949474968033021750600606285051121667050621093300899345446937382936689288792116914132783687027296216273898120821515669874652536289731615782246358901037399310223452317423336813178864101239511932121829783655594341926146476201687086777907968285808474797068802497278628933397312863529398549789292503458785952280901789749719331220770060553246197614220841899181474676261750594210059347146091681351338099089315744393622993893018810470403295096952469923137295409943575338565985313792211418288478180115530155174170821615083231637642388919700162418304669553195076840155853988500040622450081908550469225700916446460368382697760553532813031648280023379527359357699386172821317372480813199603278565408569205670016909718634236474382427093814193747299108101547632159995585294176701857555422719156632983806882054872527459709037441981936245884549738243439594037605117614742459957826627136274318818239296553185327999310439283287287380496939391135885555670401869805929811961390547867743857505798478347829420344450677001812076926672625991234033016849983022483317904056637149158632136203338308011633366031655056836693478850253316199808063931982771988392834957790999728629691683088710742169837621497478113362972817671596684400640091909384848712876915978354925731279078996680301034369342051953446155994930490750396785093702424224736191172074330839383310752575638873535385146734994066407210979862904351455090725148481850107225623935679918431327276499061447465645943711370664192601459906961486031903175194866613169483548261572259964839712781478198272185028612446876757060628781015911136615400500780879189279394246672001648708210378057196132727030377289939366722031711326474627229933131075357628026518498173427324342388395977260281496883907612540569666137636048795411342626880921295169384583579389750463952106138558330119081241325326338553339006711294219323175542920198416864512224939794409176844331632912588919674390158703060679074948605804516816356970095881403681221774088761765318085039114994721882960261761994483295006182891385208954142620185545745944985248073227217534854700891230338463121074783451864309590062274827864444699434340158009745456570282670168522021115304977382093610459749267384324210396191513553741770066766483995999665892092602694005281351478264170110306177927002620811548792877402919975659648928138274014807508301303771955681920199339728071608079804489106901511904282703186148039313218272483291124803780708183019599857066960222057497859360377506275631512430693199555963852500779742340458033812553282422049774549458677816288664276246848279896305212247988639223801436015279257998108125607394542004370519911939922932263636529736054431030966822989544748489169684762753970057750462423398465061671978944434383400092043732540226476838029064376339974708484177220546587914028216160387295245903532748074002960547959247772655578296819516595684749004997268416274270094018895708381448000740342407263814666366055562263941019581804644049226457299268828406953773513027478172523024889021945298713029472159269315946360893724813854397700823866391112008656277526636319441686159405216097559851463750527226466933539548472775367104605381482095243843505265761793146280903191138056586399306932771780173213887197844070938284878143949473861101742977325319786841404806606194434375989660780517699436323891315850754996674151137886567997218356939840699051998687538034258188898975706045410176926051796404214604037180514709306510587077693411807790515852408632533182237341475094480695066101707029938067343121466502137095500505038381815347168958725556301220082569042993184390004156037341820881193358100216560196860159554716984238890868130551068012403117775551362841576727370781410988232786797441442641651084756815787713651858765498990856205900790390475229965660180529463760242573680644760393896436128305994699968570701594044182758043551971728353251734048505058153414437369922879497580085705328809206870552925137173354123853478638463504352246940466828744295058784762003250200422628903133725295386112304921743834161291190486952460658653869211788606898385657510995072311730015418493268705068780667206182396189071426660489019423369310265399300039977894319819160446226330418820217580359127585736515098915954051599758559111123841443420716261660479336597551870600999335727771754363932764026724247126999010241360621860698913427055917385621869080314652351987515343563940304825769896420142669797181214649241014718420804895576152562310794839498631538786082704734291955115548709785292144253594400387836108770710975999141570928211854912089607635201185655927233743257438362206415692646657220815890442468693400502127352335365514075032200910002241854793829559126224305649069890918554764439759992989369050066194323828128536582597612776392904286817958198483040482746188148678056790462026770339335621359620348838723812896796240292124728505984126849446675950921294742742586493916786931022562619339430855109448386756581438826264247445375238313542885708233689942068578973446040269629977475830118994119364769326992420837507461498438691274457023915012491893726619305708148672888882405425710601053613813346991325135740322946806254398222581937815059980734790163348087843337801380566975364390697338351785210003199751478534855239087918566655442841796619437975647034464105235750981261335353926251417109880436386969494980885394166293413922988091780730364111349638244953578918116077933480100256970052445085683618925970292777832646982792261234482730134880896739573123984244570953302855377638000003029646528100107743272994964603394349484941236885190712333302311486286379235735312798210897143362857387652019537586058074191755429939395494247179864738127772386189548767000327824082635535571636579655716140658773342583354714038905728460846779974239367527803405234712451395889016341672086462129316188954345037206786972794786053799216359155844893579142970006298255656705185921462540803460050988749675239604329687285409502280925054834108805585435060108768829326597367636458557072824761445644343442374549437674975187555745768546953106729057812498155428578990714290048864545288096517565927205097146270066788597155578158565802276135573399767742758505842544494736164464258336531101398720956580364150441514857278176737443020617156750789896531218542515456003582844997767036641654364308436050521290125064170249219903108276827453126074149605243711642904001859209258255374291773073332266809687349382878291627841872763442979728112073509000057974558298501090185447272451246759790707262091409544736284933357665779976437382458279238867398566559876472112489512650312213902961452420194935248275408025309491988293846190524059186431858876681966873505413012438534228733826085497092162290119940996966333496923117746903901695197919716101785668192325820565831913671341468633292526318121175307763928294136536052853699106105949739802587589217748619034567614415208205426547959155535615770268978414025704520014288833483048283981482684929332242767350616409428937075509858323356461753609384132850257291234388010699052386809884389086855134283805500485854393811160359701368809932871361528683410137635922718301045673661300894958732117373271927356372018602919462631291853987919186181828539830907906150049679991254364329953693160428781074039648286130062324468831045484090871220091310408433224347423742051450818522525971897482009160870825976229507162473036921501526625054668639798575152460680598565720075514090683082857124696192957566516108471328444726152190171712911409814761719762634277623029535515631452431146760562139584614915981619944124039056570249268582490745037115739591701184343638211635392395139161919606253774002367343315715195353432441229415864423471499319366374587990745440042525090372714452794457362023139284232262904200380206079790813753012748002200148183359881257973453615343318309207904608596801614331971147024213304733248036426992225093954322697331423800416124905686466987490631184931331360767634468861724221499298099756059783972984369640566047864902301908492648529129073965674385159766249119623027930499910163734097671084370411667537898186634670318150417485143744208028196578139525077033521526934895975631383624507679856653663535371333421603233364104969384654532219646066039805811946888257487318888463644305800237402052467959434548392652156574092512937398577312367739021112553550819352264520172200019656210101713738515794925178066707139957576271959711564539993546736986344782644387411873219379003773325169980407078090358635599917083818898448294204643053199038273111540277675515912809280354930071966395870973546147492199889745333397907997386752548937133754816103685105379358768153741150502649467319263466054602394252824309877207303853637274038816160568416178741878185537238532912838925301537258647585989366821740895570783231921952113335241977011653936215652497401557190891573707939021759419158222414687643024092041200811061529821841063393664164864441427585921441904858915772468556678808682959104529393681256154426460440476855106892577890304054552496351779753090613152902751369955026370525814110226882571055314684500350958131808016797225042092008829443336023169832048499866628387272511756065282659713306315412326764852640315464665431009971100946045599417984205867197048962578675298315765334087097864532345327589922390619490098196333406279612885017052894692064808364888375622166590143935429228601207190528636119849446381580370800803961959915092271688933621102767860922405349154857240243346019917564259868790005303360021202883797425106496494022281810608079072328890641152267661640925198432195725807546438766129510753869394550995659498370401140750773096028630028149168689363128284874702561855061547601253974186013568123363977249621942841335508594735744984243333203566459107977706728818319829512640335198973472672350334940519136153226756029857986704586992953729857198192516796665237340751313485093185829614996129333295891892552144000467533933720122293139106974228412214721808864690380763828055027826688949037148391722929997793667999785674150048331090628881937287173793797135518647002713817492222826665685420168437859813935983061044787198613830115312137776332243024285852845876450918315938250056131548726669481459265767382014338368994297622050886334795231163507947179252544413030785779451905815616350187804193893351183832771266447083415814198261557490389239450013755102283383152269415887931773207945587424411914966410135285929822910282165127589735260856831861411646006038191162343634039078358622911357896663077192606557231469525772107824335053774189032579821045596897540871836163671744609073860601948647346244644109925544302761433385197622662709230717733426320110348367604910693572286697635655548657657939961475245180058889838954191540396277163839911333693002005311081670808801321207775425793907295285192925954376265982707192915095234245093868123837989907869680540328948144420591235598283663036614780466799355358395611996492414673314554518814245994796932583604528400102410700990673644471860366570413807064451447591442686225133359963670912669381648697269094762517986335499216190641170265287678453614226955636335600127670579520108709130357004771353556968053117004557987326374639750006015696888559449881701761949666476452072879150550971455844010493883458407748117822702220456018270764954366365176494373805592546526571983599438943112333458180115666518130335944944324339074146941771141687470925324920879175380101332106608271056710114538319715674834555329468995371243031164529180470615641929681896279940936340781935718402157182476715667759740477856213198195704127987223519944917661758977205720453642026645691906408882402741719899879575166191181990007646811249827590391647496804102289589888186020946153948102894796593898688494566251843837218888743309482662651825203723676335356967143856191055964101087362875373961168982351802858974039166504016113877444093069022035561573462822987912922092146286886332930583379993160140150455601325744367930716005948000172722272263057077695747102719007676878069141515545400836625329196178282527962999561763659335613679584111775854153027604998623204355461106925909766027911586163092472358443168373816090251971264817038461411259012013800023695284225323904763167942755083260980323140339218873094110473731825081807807180369417856847418082265553455263354357330246088617698994282770546699906742025477069961323643818191813563492493932333103163304779789908818643260236435099041924914174961570431217239002896824598476974543565142497697249044925430941252214734258960012054362344367069571551630092901756182376887109072941664500276278360027229862588451419060445944572793492951433556969792870413635826164297241190476280091264395302033359622326882548012465917128426668753587986909069272164582146715412378831485339152590894076651526143715454976797237844699701836859775066322721333333568851158302476051026879022538711310017000374518947720523094996749133803850932965069501121988169260163390387033413480516061245828069622315473766819280013297501864090343318092232792924856852359145860089036569456450399082773293148875317258992639248031264153361599757968188719346403672269192846102844534935127114819528513405218248120417527613717995369263651000429131940131812081886431592450616400412729371603368592749288258487777550498317585091947426108158677138274801462309625473704003367017495904957157012942631316796371170679579259567619162705872530384030463547511221412894960152666232807381387187922404870174117554937115942559591588438585210007324133363124983982909275355391837822516943550816251305617990141845102154744544739087623507765844942327851881759425008086448538172403212352178860054305445349398350378317638401824511303071685796292122234843410092165278823512132930019790350425501969182391022105083673975160633711569943555646185001163493561895931065736774136213266915777428838993252118336475760363246151541430344142739154986962429443169046339080888906084784203790605716688284626363060047288138322373560281961811068456313368102224537786217647984340879493024610265349877882640988141303574885449520732851877814489009306682785890350478583444642734183362626247351889653250278744430770828663097026936973566527452810077674248844236596510088226045252767896676141529972446413291548937134298130038298428104541431965448846918977952101399970863408956267132945891259811159321886738203433694320681932642770876390508900883507137440513822641994123576445812187922858370104755703049453627259052582057934874735970047410173028815876312454609178650878616047382595351580638707777407893234639508518735872291819581186485360335745382493413706473353245262462729277225444775766866610148396529381324179100195711082545222749132386455448081796880095092726896593548297680242823156920508846075166898482928563395459096873539287265110070357229059974379267072095779875728580327147624267797469869307640135237077443225177974067781010416706542148043614990856297358053316056073697078764999196458923169202136030614103860957607116308978926756767732868944670440679816806430094882756261196440831342440445469321677659662613582517880654887040853587391880555533431636035992552860739083487690412867460795448723220153146055729776786314881754015365794379009249922081546908446538737214738895884671779537761404816431210522932857690308209604913893463073517940641364759680387536326787190014587807278915272937541069945325920584999934003846433385443066927290186694280933194100121927067178744873824228249015053916487054879652639884472934414972234345916758526521464182181783273252233711376888143583803555313502599641575013860115425853295598254471430965009275547914180046646572452983506482886580831527657541069171481997569574225938924410165618109995795567900793913007824608170833527298574187127530913299351771311293607009665878127544287163849896164827079280218267754815221379791714565844116847843174937264856773393471037105596197591507971882250927569944696359369514018547470658000123469819096921822104739471165500091074525949612227898438511288134236963064397337944653220816774869898100849001049147178338405456668577220350866441924824876694742407481751738429283405217327541145949217859377819099969106368006878919383442200317425478132612600062615517391048665860884077218205986702446303671688998322354871832067287756403221040999829725133648408275697363790714836268441476626290463516099297202603967896157781028436455240136483555274260803225254415217805657135893891449370918561532380275985363660190092515497513238995598809019837737714624403393322490606167261168265784719479359916017205439536163803977361359990965764180724245843816838614246398968055352096769947180090175270707173812638820263457938585354500866290497428624314361245586707891074813653330043536821779622540878100016672123870155005274428064914284777740225949940672146894995774435724795761526310980495996771314664275872786540809479090152214087979363405709112048503051535173980913509436806506961711014155147972262180321494090886154966634266867504536793799627566194634817923910912515807323137404861663465021180353914229075062646620501554959868999050585987880069077269957516408734972090295557768100752690417460922038242636778397030506646380790686736772841836324527698605762585634119032715076467630637550168117217603069204718718973976636274998517621404080303098803335476700806917402600828796531983387294655684080410737989156104774139396104875974107622126956051020124406066826670711898361944691563723552345268603383660558272001054577112300605971657850143065378995204558635726770091288434253890260433954514419552293249898940583272705508455019752494837455591865584023630463950451587548369491581438926089677335317757998972278176424452017250380223689122524101621255727508362230480804737968861491971908476279650916942704884330199233748013036943313626920694421128908889499474754147910827669192898017195497279077696887872634110684235010700416206580293480153742193896641373896495477813812588208327428349539557635031280229921446529121739331281929521726926905191484102876538439899935586964156607354031903319608726811210406820188140962298577762314730343896428328531176198535377412467134005990431029193970851693087574828706208730516782613090392691957016445763018596741490868094883064305275089496526784575713969785798343012412481466986134764004413938555518422048608073953429596110740965368471518333406427610631555518834503577510090730407472869697848433698212449661691515866809218569736877571640680574635436272936577588879070703464672300035441438533261341724233354450055814566776138679203004858432721609625198945663297230834843121098679400384213801647358953463095681851413568207982381924258121539815136941330725436790265146895811998183165562750750977836265686295636250075334963315031281176259313839324487181653002569297123240685909051236762482708562302026473746113767148426178608817785072001445429988719907502202251149371154902901189096167708601809694124622626412136664791939976377399761153658579930089377158149589372784111341486633003956892731013920274287366760680516477008632165415749188896711547929164749788712496493747430742764932091495764710857109496953088809986453534583028059405608947881979072527396878300874602853987348631271684857699753676485454957652728579638627090919344012211428037291657089357628065212803064105746043852884197781416575617140815124817806103306023273428807168767248197985707889640899898533859279332120471489620070631872318447067563028176874593467945911871068041697762709453492570003227164958106467788989448237387957380801314534972380763694767544291124745455199509538831989166236572163992502528646060778659687868496698335205371963161149308584337091456353466055933551549765039167056513528916733112179372538878017615272282258307074100193989563940230741124715306737711165249312393959889920306563699207681978647168425654651148745611418303967816329353990222758040705178651309351175891796888703769968493483791506142426756929445052187954522668450925035304267201408573504197144923939947036767004819225764120118232080138063904929724192057515322921130871658425459600223820830471240743504990638185782402275324505875393235882871310621671471896439988253585508048420528560076476207684707945964289107766050690680137255153821174408611952728398208857041463711868656810331535701815440816640378133398727139645788780257082826885942531120919173026655740935376673046372061245548051126491646297307766975358028658109524112745607191919772305196720696445130592125544294964975796494234782413205579760498303847669318451569173598362576404752029296738779160562800130900014186193968165905298464211748920591701462330379076640804866974190173220469220809633736425897139147109801767183887660139782959141040897212657657057772228247379222235958114823247418265276680988394774199215887679237924205328449564514752601287398463460743870254328327930834674545131590716915776481129717884594856351027719223428914420680626507113475694243165473492141041900402680805705211034487094323051408595657332448557165233433732218611071196863148718881873849175690447857029349680394505107576022700068649634136804809675818477775291588749675374094209551060528770449084944879487878252917109670854761566335834984926099719318345745529351072460312801485669251186612699357109969418005855220302967255386320658864082083031841366591478380039575842312111528018216977010499642996376324334455624275844056238400929854055474111346473491837132321129931153047654176174353585287312448030648643908540105879889764650504112141947523211413086506171934166750087880208574730009268034557181314365046593992498925538137107648158446254379458228181169374691710717017140833005618821294393870388865374187013163367258078907260846144736527477961130155021176376227461358518012585746699736029158732143458874478151993490953503601673340482994049395815407053172593989518439911269968957155536578228170890656027420897465035245788706432571006797594185041567030965823602234587295508302402118375841524261824219005939658610005615239532593474192240045025880777208027225243718136774051416066892923053678013417507855933046587814803421239877848673192204741263269628679492372361790355594191804642353458703401509675289873904901232136929378990594516619772957700193002064120826677270329042226496390735291363270245285256362757549158647432414543477562156295368083377398188217665066005984786574090895819578834166920216586792466706095038744412377199166189762851412987637576048104606710832446146962848235110992480387650962550783867448914004116048380217747645940814928842126151606481926426762625245640562789362885756077938820897015970461080411486135807066011354157914802417092528832200754343542712169128398556235492606524300168021749918534838915235625747782488166752595773741517192727717694785213668897194298815662964567854061480487213221737441091272387212714133526747419720766243347039945085609634918208389255445517112558683239711973050320685004953088715313035295432600336964198105252166118142486208697350354074370173718816948352696210011692573952158424917745511206860745795042781617558807626940069007166564960815514194456698632063276685648752579088198824458085666430856981034750148279507080974159824579618524528107182731871250807813803628767193114349845673997508190667212693267693197670891704226074048775411542693818330233815465631375132287898995450004947463015897366214205074940802738981777451023287514646884138263830066769270338782327383480272075918153993552172383624191178706552062669264022254420125843177696640685182029395791972521068334169003860324036679452414415237550017763698967796025664044947610487399816327785334707346171246741071724764516930893786071881459318746438969557416909311037669918631786675036196589852521367291254780518302571792458662978074453583142089970089589520023152404237798808154685156966029681231378321668390750157327445506900795586602252690815037693707516200470205123699910037079665838931078380443337021545859985572843897525905574955852903234110682466228864486311202061720030635511467585450232526058324840951043658026432539660877338509936772002015557269164140448583568392297216238146927603440744777973127075573131200867300385756193727931924990629197921505365738588079791617980433164420035585988898844269516417706130656240428252391421533341265602332292573350127690527317139114779913650476918505211750568320104085581285310901244686383989422871804463396172561996246014299176136769197959025590622779611730398947591114501498434607032976818377684976775179531832080604676427827077652955290185038491820186492174104059193671021433681836749685377663721189583950782107053034128411423207110700695768600626239302025211301969865559330568235701340336331000141194252868205500231602855016601115254387786549480825267748705170142427427209237914974845576877125840155872183976471186090312354437472262252004795089285948051648823419657406212417715412097526391613625523806151682189240266237773284882049058987966037051472288286523511658559102832145839887157229421860753840512062771628705908337532483405881500428617458098248606839265213231600017751319289766825938834949402222691824521789131538489672033042707907070163307377045568861139696669364859146257298847313145660295739801912606402394622446652262743723707045374621114012795806657602029507535563778721659789814382359877153679168408201059518152144148066745668226156479858202851375743190933013557185627604317989389993915044720132422743615002117615041114467500932057242629915319970665678745040214484945207705216462361348821679369383706374434015650872527940622114357078051163489941856414544076645879397182732599321010017879141295997356042503354410637520326996210084416498764758907341157450850799178814835303464317715550401288810184855192434327639584112897820481470740155223969830810559150505545636124580258571565133992089433487316873462937302650468361716374428677244715877408197982077089832717171871896123807795640304583634901366841211214526301574755714509356428750372051031346658746797194039401630018141082204240677448104030352784386343258298898550288089199263639045236631784355845313805192329464942400002550244801900096399317431698224340383489522558394128254716122043627277669480177322433294636263081272185029315632632796538658634382197567333951425508277706277882434475356028411449837242643496230624104277784326565546871885743312954712932772931472765274706937585390399924069481289381108504434552041050558435469283764509852826701641453471344183969904525870503164237556118703320348719898447029117692109327009252592599136736897759249039034028507956197706251346555170001850971007517711941382010894326447780566169087783491800067834596316611239697286853006563929971345427689207416942491206600197056897305519888670834295927355025636256941460684279927877865254912600598780682913586656535198266984943485995446307499190448711197568373827902456086983894779526305186899958238369925404347908238318456186388972531931197381474335160258623689069031465183014023318581560818609394604795398311738734808671976277498918951270245894294719539535488494224986728845080187114077496300774169247347559938507144641708809082694874042961415442911859710227120277846519405175369092746173359693246548035382597466970916869950061923304078190390774962278107594885963195876704618138450576100698800189683041488761202167715786334662678661417200501214252080286681008119434835868621299023978255661550172655455757894435931693636660388620717396377566532700593248957241931124251764744983624022999326681692939726826816856523561293706641862135851407840412235210997572124693031949415897523103846789847260013073446451111541879586971569575382019798313084130111134852232863178897311755483232671463509190220478909580591763094764887191365889234415786219174012769293167714880522521214034273665513085185035939379882910436174088681834439129493130455064334645768488891371820589087110285271062346856812436069036075784024305814214582241126291389996248365195661752664777226037073091251270415772318332659294603780772503240832323862442348459244586428616397987142750793054550040743455268196010603751561489328822609360670895849670790423410358845077128160895205225326724225817289634308284825396346197589111381613262272599035468544364525124473593189125144630132751815618642301564742142366242210481712440463162506615420503874152107518060935154878025884865353486061917035163255220462047522533651263589714066174928017328252917451148303010187624454111827985169578292073245688786013476810134037187317981549202572235355777230172586625617677716577195506819319967132673660475586513815328026604343402144407220102257006218713757866789273186372710515653502635993274541939570953901187954338661655573243561327809200820913744833854197347449604586552323583009515277482262392573349621302152665157513580376033821856085765657552109924996799959977973194691187725700663905168892594511747073605051961770513177946726072743834507502415680391262864616256422973177434581672489708978113664715726806083175001155971759239475649227954544273401302357755488479289501125496155688882852629364927277143635579095100712295977671880214471632879732724922561637247936624470602464616563090011488941774879098042363687162737698680323574572176912536269263851314095504449423304552346821842118136890760412107225316731583927817599305358103068637822166177225693152910814212468848791096040053616627370683238710931611269692555873358160525429903339083486850334770642446888929301863983460078129635344711919285055845499024838945728153809521065019570623677030206879135141318211041938377440180155690014734059706167880272477322364882852934584526435718278604473193202997675935237488489063720372201859108160063699686088162571540907756433590895779865701395883503225134661260479106857603267744919459685453308994971444684081881950533847365535251049338892088173923168908727215606028093772044306729532236850821202684214073961609772755721149869875756074891600774442757670928383102851497684798781797532699463497130261308907289715440452796037862078997355673086040670514233978366502488083592091175683018565942158289002449299813288489477413655236544048581578476143404054889123076220134526077548161223809810683540348778448768732914138284110418582465350047290278346152397182703405804829696994115602208219789429215547470672760914706948276632970734891659093841627445559455271725939917086556432663071391650735543497793617123403169990291115766184928534389841036200902862318809276856789975213250064704491520746270342345657325981955812131525565993030177074122100867288494327290822100397997022889406194365987494386226417722528731095216378138541728094048651569793898169175164450828763141281194888471815407047020587729582933192753154991554976674646554499149193155732999735753394319026945756335922311058110213173776823335249545261576434692769682007521371433995870916550036959562878525505561340563798402812981185828604673878591916764537090737289241637581014740461501436476327377730269421832504514222763359630895318821472228061272608627806570370583587880941241967190303771322946208481554610085890605118076914455130737869303684753295339003311565975031037400086349783155273398948525843707885433947127566616564012003816737170335051938064798555706947559380906605143405692633240755209661036508209974387673852284360313961122059266562471187199655269935099424983198511207098889906737747025506597468652746380312346713162849494407262649819411619326040840906162353728694849280332473703015021599188209751305285093637356776171694899904677792053602262010827095869031946913882779374281797616881070905409804941032756098196256686377870865125245249523793017657686702081581702639721596099063150789833217101310802730311054418721298603569532427474610297960902805136063573148335492991603003822805281081976869491187253021800667196431335921802391517650395793836190025703178131091593380495734831360321639658313093716323024345065000354506741343221767576622778044481719158048088365451998789844604974623783772952563111291558556557008834663695244649231108954998902842617859688788330158707405849866437971177796489160934109375292898547425671458579310133097507361311132152351879074838590540620505850382306414046426157408982111238681069226791205233412370083139716548133419364326253988855791596423990747136483805730776312561154067547814033043379852114588610288884103056381149341503756911297509358408950784214029535515290233728315247320755022121072837755017474007696387533636413795581913524308552466744007449572402332815813533783150147026881420820040425424147372021221546924093281026488468076788342089129693106232729246700188395592531769510967015275853413458377970607474076903097531234582582033093016360036686476826307641804516998566496539115048915748624811221960201890337287730170659372775789228965637335496159444009592141122383076056806707099956202634502181413495608711362121149112663390097435314498324103981640852345572642299533009517268722528682221775120975111199059741065189987714755559297929109585333924303542457882885218249915026400830643727600097028338452453920652788665842167073996855284784456032285142646683290592687809037580706248967446857415498552562598122709508855549598846329083279016800990222559446442053073532487057190509500312560679491642529642318298267980406032619162617974784111564274281323690239205836589904203120322561803656449379053327392392986921005391418357174713960297237908683448284169124362168189983954364289381709240623599323324317197799499246102325246625808099585728091244185452919181155914467561876551133404772327997416109129709383023791376176736361332004936871799166390992277547092588230376494729178521903910606079432744697712160212700254025174675800796837649981633300181990458092650154007918679748357666252917486411243718463129861121342124152374952017387492885139596680764240549495970757981343123019898967713445043528483784647404766001345963388100280770615429594008434228200030194605174255571128291409480351701678422771659747036852629573255419561402145675769689290279988506768506710777723957022431490841873976613086714250690581902111906111870475031633063261324533403442932821605887117848281522417725170514413842793810624766818917175456378125344117647132424238153053039577913773904571895409837622744360510272685793373633103916422320478837270853621712036928648016412096762202916832158504586524181460611871882623354503770008857220414093229288523348284371228652536666424184159707564800775382409611302062793552418849707277822162293948759335765904001865829841252577555991242436534209510560888673457068307877897229522712636219964782365493804779256601101955029031693746400663715641050197860221264332798100456262992990927015032581095980734352837273375852138875655549477503759984290847184250793268231083068526776346068736261584137938589851289794242104787043097331479353105224603985371749150544883073073705886618768668687922756315309663502773370130170399845459457268635867900586469465481691216626164491988115078743598927246408641761648565048028611357407426331727188225795265579696295132323312760394040241281689884515573454389239069985785997920278909575876791418745494433037596940007960798920721479120987699230840882935269347659718744465148577385408230176944032850252221972104431773589846023473123908540801595397764379196346140121981144132478025812521272875623157495420615145366454841945520834252533416167063757536927493387741558630017885265908781980898143245635774133179592915957001988492711643971300466419181018159973071803898144859535624610908585346309454659096829512080772417373578101293310204407750142028129978870506445972748728751413239677594350446950254157837611031831423551167401167586593096235432769336128343463924633672812133976144114804951282688039051814445935112389349893938164203273882328240138114141545333444597383656132144212065330428469348034352013741924032750254038300228208365013670589420263138397955451697772901881623684604429576246469832003806421632373098843994284597533660580935628853720556523303019717622740695608892837125201509412757535238915785322624494124261205309578368849349110581067268864644394376030053367668889777877870637644722990765504558699287454134000479372785165826872770786228595006658848292235699332506886758262797545419851848028953969747113367648951804589668925236805660332621863462914006652879892386711938061442970185746359486177333853170784494888795764614064570728250168452285726549447677660704187563704564128109526988186267326492182935493026594432415255849758632258540774435739083348787212591762614969483274731881412768297342998727233233152166243017001770247826679594900228759191279961486330932380604138998591543372278121656037478171014744527655743906267549224306940136757611517320555998659252673993780009448446880029841776716191966129043855313982438966968058366160209472042622512070946366311534411615404479951265132495723187521373915854842495459227818321865330031716497065906268838414659717321162192029309797966703692844109041368666283457643436834911924472464575486093114742467195815881088697240086880666093927120333977769961292631739578953833072054464015156172411742372401605832834373103860648540648471075978319976917684271617926153144385678754238399375844526945902083274956730849175204843739476383472617174164452787690780010511824601924513035734645805735687919083358820355527387909407456778224768341769182517524760593675093861626963267027001361966044803532302719820457664837469501975413188206178561533316729121155141725000501916742281378433368644932298728891426973459184684029587475455050570919486658018495071529828435550350379163487265289961378336103215736886914314995482366969625657436641079089197003782181534794175691786708074390700694691705308276825268685309229454305621456212976126499247587728492481717483561305133817526624541602275606929460851530727707724551071991516749313216673497909593662478999622778440877181727362211644526207766254674980702123293867113275651947732894487865731148264132412349206570853904161721928177861821270346352889717922486146469662234532576117204404968212077850064827485766602973933345492863705263545721949230934502687148333551712453936296008157574984147224336278398428821643258399928460880653228077932666721404002967402208811323448706042082541194122006782950512199632289136400526453729391646636462284634226643125674525614748922165161747598265266058579665568706121246951446244858731943111551552333037974668571441032618234469803432245235232970319982275733383196941808593516312147667182098685269571748666264468098702134398542726969675917228468154957980029166221314841704386658240573614645464521703400253764948220368912349914940480960863082397600707106021584468935573341614857575447125244655791919926249078320493849750899063634045974190354138482030746200292470964855785401655649840840154749555253489857653274346160627517407914423630609264649872389189093506250884888409313992546583386204053451186009461655171629296246499031395210355121296360464336819980154067585623485240416640334002632652062584625262142881084214962335227624963069855036388633156510852761272931755875479749986562691389250927347604926072837045948996915573724831514034516825385331546805970684033237506776560269834992673803199755441218332019061079617892346162991244543342981121982882049250886564514112136440409577378296650602434835881462839599010641601660685548999022790580236716738828614704217886774102806392065499676945377900962646977579410689466329993193513549305660257670464993110972219563245879671409183933204750204869676408778554605821925425439996159835040005387037662811883846923207790051201642761520411810939778951717516474487347862204692265253056192359099436198852759178418784414961506571151052911447611396425545678748429504204312693314316028097454865933436158917665391985576957628608279971623340483651558607046036613516753326069276269830895216424764210210286449334919255153990417427678185283425586348981614729397261579875850538722502905152118342106077692952400871438640940745829326971710082386244828375753797326289441081469652330665617927507961782443480105704797101615365165783634410182710980662045112225044668611871905471765609583917907964343369463435138629061434421499904492871773163425994869608489767688822968465881504471827147992348719103647810740918398917807934622947423507547359855303300169326651417365672351530308929946954125796085220341250017512211331401200410459110982173721351359466221722392935150832971207530089792064462864560996372754691698016568167227670525473194813228511253119555497343124440836347038276519761447985638592259591337156192820185196671766335494803862278672333745841355123804502166925474397923169242799699123797538741575702646107721044420714871665767157786481825632015895051972175942497852821727931683310942364598986631476766565633913203780374051468847792113719401329385729867326388325029821258305521535478823961573224221888556334915987068088848639273527870079949750692080459916197318964380418840892038159933586641502751527507626265070266780945164889449541343676073606978421114961128767423227448434233220488693744816195168594562246277812819626008920527181441750189166246029797381817071580714509450999597467949035284414245681248599180119274670078109231993249999553943271692555174333438054394843680975833092221839471631767587180158816429787108609939725536272774484568195532476447115210867175236369888198006329238611772417200625386545441629729177740230516712668578353538291470049893410485550744972483585957479637273277339599247674836607381499960630617072097185490267932350337207253334573467001192689219461897376636956392558067422752751898890080300391734377978142300735123091313597680624618443015227993308384488252615010320246511350738843058721948146097942772128508922812528394824477095555520812310147731838044468537365124388128535673651796361541433246800581730206987557422910430838541106013581594009787240182615590254072704954224561306520011212013167178547529795212731629405088959540902310836533084179778180777652381393472140082502354249563192861905281708857389740833996657216017783853673316038219840545019350490176822797074147051897276563915716905887395942838209571707841427597415538391817596428450744929746653679149639142258518952766078521252982915675389659359111898333975194463899585873188525532606296246937827739430275231603612003292531489865835512736202049112786332278731957772170494486844156545340582194458722986522313377107606196811355227820799575532884843470837854220687528757850360604223392966664072872415337146197548209584075971583724956836565727504664030147384832103038035208030544319788613763519907875208300801031936581548054289801065434779600453980251320347410557938613926345025204293562679797554725305125544067694271701595638419315344434226220241505970456371715152500428200469227353659208233181400671970032127090243344495719296263041786516256369689929874642817606347049399929037039413714165730933304324947868928224946305307387403096275092064425345091502665340399303338540502462891795870259860655041583439157088780103462426245703158444787986767882390370215677050504124840816212471563109128178941179268852019920270139255961177117365104125630062709121509967643383200481579429547408600750059950677766581189869284720581933375502326852761676271500578426332100015125282614121117397916472410224745698424208490242371725863385641418324418829963704388873584327971274690975468635678595766475364850687259472287366109644867178417990663266076333999610477586108572264352255381097382316694634262380213647946721348347243255345923140950489689028844846811779713385531450047628804722266406363735645580455042286152610044863727716595374074487488583721891366195655571990756066092842352785291741103634542379750760321747815235324170423589066199523750017022012764292757239360410420126182900998443063299901403617164498728489467706123211696716157152953544364737396055300643483642793386285225329196498986830351833323068739783641001102340570421392396282326048033679848792775601100938297567879891896684396361340192760553462392463376883972836065717752912009728262288640808049162994173848738460753222026566108375603559722620944633161009665518168026786379298184270952895730103842500081226661080002037430985313790722798592945631144458879959478905714476763357711516995563681023625747593050926147490497894894587868680400939303946855214261306540232300762388346708027791283733316726460323377873329964417579693073426570264697665266659885962799899951847470174149491939893066880113116711262765101166410322433565121591965620459766884370040215172917912057536785631738697589678789308345811176300590987239821776448644175129545593882709229152217687007547890747680103881636464922527083902642591484184588373543398951068336526983969784509909898265053939764148419838001147653733561522439303925316798041845150439112190896551650285727834361345486528338861364819444009256203226827219272665815492623759408787220745926605703848481317125848252858419046145412939446417753527462439518700793871055499730116843947932651619742918480438014413154091817241534895405873015194000915286358229872417223657265025334305518346824671262609654284158146563183449427550271498861557701518600045306345845160060800079050809308081715772302029333677602387560371552560128232378920284601882306335164689067771267896823767239997260709478844296944561052897039613688277539038805622699420351980876578903847743484023062831828848934256443252098991847603614187264919608949590537006628362420474515723573940593222129137896185606661786982660486755095661214415108241444877358710326361531355684208645904850913575903684785258321373059103153338539252709366381000626373100423637767975227889758270039546367673798321780856040570803968656231265771335446534869817295180076213896773189808857374118013276297957197649630523275213389065418531784526023063052105188900744812505567966129237297892800673660263454148035270709829399960555592435934479013685297985438874289172084049430268685988874917754417899173696463909309438549828830655723426570786430464914032602098809985594375608966082331240111055256903659822698395176542530265010704233604351488829746051089164854096317113631865354928934316101582563210225463779677904180867296975635484154363785712266681984301733646475456034898217311961794718582980567329121142344506967383321240505199234328964843112517963744354675202895730994921575951839512784333836282714960088496949026568288119402533654839589570936468937302458187305161001851671678732357160183292696927630073201215667624589095568951505170140555095133330706623315046482662974724098147491228642041576993035436064259624574075126775218695116831521166639357689947111561019058496549951682467798911160796416907934568187385025361511151098646948680991261175271718796094524094762948189770649016373431018837335302794686217816839686599439162313833139309660269511254338612413397636279802391776041315760954129146438760593639472616771887951257434002391763271458574705986239088869365383793435602844340263219478201650903056383089375476704650729242540386033322883295556425253498408937100526675003767635809875903337936628829108168898799941821632126007486779318431707815533487284004684168768270810868856693426770779693114453719565571469904802586513748737439153491784560478271953172947885371251978065005857267982983782220299390270040488498943404880707714341047472924724694734307662229121929544453141876005312541909327076838569594193245470999170646495354890341404842053454599251620006377998101222062537497145453264667664537624843493391349183685731545543943889700888111502454248827244808129943729426616355238701035011200687685460531256960941776766301198965272143868600042046000180683819990297877469579535875781738579695181164997730924460580205763673144005611732880655933121714570041744490650136705657534958156093509895933667777223871456121665239998340990606944885105415499102569658668432949653633840708160622189083823402097102881216031719859633088271310096725338768819928391761893351855187623525721111448317318461209296796522454151383034642547118134387625028839741507818544136392932315825874328692584240979493358936125725701666171710061934892034249585263406945151884052597922361198007780511076105101991624351318054060587436058524203696841689033347621807807540704722611663364319151335404112586565414589353864888726739317728365757667902742540513743093386061438351469937600529766749673326825542164849566607277041870493234562902666346993616160112285314820113696256439806514931210409656207701648767758177554400441147907774394633483117518459588067394083472712252248906976682040810039974046558608271208824638775762735314305305366741929059287131635396227661703025587224083052172350525584994036850188405221892399058852921345204784285082067733852752251650816458870068369837044064638341272220032763422674393333789671135668653533584964040347511670673796065400878452740713340798748398449886088557037145313031626959208048083041951035818905048342185472256797485146057146451814904354451045463928878957744318917884794138697436638235826989889749778635322827809372513709823798272912745823626209428252740317255296694009728992129967156175783396391509014830906100861202038597659113074936038819203617268529395093172354516952725742987394911777623093692269692406515289820962108070925381542333034813299796256779257487742474425570068298628888479797653590848871548857195081847665917826631336951850260294364271522515282344909848883873901802364129846825727719384758609737490739029242317376842320492441431977019494026749657284640113421594330861886190679304178000485746656046543294846659084197670727713945332057461019334339392512995882094962176338332750588380569316897072859531415442481707139707132706063080236904704936837222577531297972298260536304116222920737263666060016438876434870366501199328386051752181938192226931736107556672049446622185111854653686818809860089285899802878316759331716925953649885466857238107564965490697338131389826271917146085471195524946219340507397968613139703700201232436104244701568069851696112494645021781181898169590043605173513177327059428262186234491067071257160114692817006453290016524297711475867617441447809491299540031782411221325456030999234077548915159474279313804873405694988526887964910393637568591830403687791137439101956578611432893027821319968946073571740221940671490869549989773569485344931322215231759931965546884342773239016646068047392885370913909373463191350915594197612879198182249717949822706214462169079991388658197356584759015185512449290526489999580658521042349121679849070302519981316284832707222014277731653866280942421305358067072314180265059576803113468279663691321033024783927766777058702763964282565164341390219850015228817761842633136976848794230624700337974663398012857083402369516245078420003579309779957701673532585653129169473085064490160107305979397785353342538951380648544545656130062357712346605124481096904563525747584787589910753633942920323703135151974973021417914094034363488824322592532452719477588743508227056022976226878410282460444018159091141414873222947743630411254366508293449243394049346040916455979455693630608281579232232688043311876855837076833595400786872972505025384523670350821161869153638587895106035744929818854352298937951466659796908919436502101132914027468598817170831848196379393837173358047270998594602220100522021885836145910856469164359971267576225053139292275332222630545580405181752517346572560379959405340859416050760003301898683340430762315138098884571261337424487338346372289649948567836539641275648883484298580804471088871937182051375375575939174676010243861067105083539736145485150202037281414236282529129111737549250344068391852907861600166408920553975923804277273352300742624037719864866550546162571446782065014152338492903141354837082032362786947735025331332321519916414730692857026273919168509685932655275226285499276214414132260164247457316266423114080220295730092543022017270218674158927942124561262249325270971280143369467748047788398013855293595565530279912596391862324943818066600540630230748855384855165230286738881138948134055837683694731570148811876057425552914304754527912986203791214716173379410533811152541478712781195251531391051717722789338539767899027057697000879214516349652742277861472912415176464424352483318862178263898142772782164326600507358024158100416290032821400923818471620700035432462886141645104565532381420202046783690463593855608552863980531212974457285693013232447221954780522401708416640327232672897978590562584715128901155728456956856501395739764198726712475488191765287240641093293495560615469453955775301015347287291892905460704579011464190048329461806251048744629057453593802046579199795219373416771640069534746135883908435467095693796920599018781115245649567317279021245848089955719219063345506402987271990667936571763334509686576350884330354235975102585133901852730806668541829836824843841372195645575394200414604611689835052003483272756922202556673636582650945585594234112405232892951956854753406594860028595507796296668398934359734282715748822413341948469126524908048814989062089971477094794224679573382774812415869715742818970135081658106443557945550873263529278684716447807014754142306302430272164367295113798916312316432740419580065728629240555621032753430904712620704881743187245084420915566049931192848213402252436450091154033422743085900866547203670645469967379143760979952969399052157644991055027035516483645616824447410568450632989781739242151574786424013556764526363495341778846917093330883725682397605441383031924282142984032680972780736370623426556204447977887969040708806075668319606834067761854429188631317426012884124439419604477077883413137040576258849876761394990231897155963184852923461431357238236611906914191235448827077411284965354233796551106172579028025148274210095892288093148787327162774994300768443746089895397621887221085936261931678864473234065738802412956878986778681343030733082654483623505672110251043624272400472759068383547644673878528186947881973758498881020067412643513629368557481402642362248150013905703021588089701755349540291176452739898467818209047088185500640219097218645161796869816024621819009595502298164291943898217332442229660506295847578566771367853373498880964475310286277426226092093648392244262246603675983403133745194975990426222058542029894729872000198132209794848184995895966047134068775777849646353254191307821512919347238799102789048331536611540916149835685906428517345575296103555257381221692564247912161012259066887343384173458099949921745425132551203203327250092539189655493891435498640130024003849579534379053816229245383805758049170254412917351508711499000195901297805831963226131627435915981342067988223493243619971872396154160848355118184812740006882539248149526794723098994302400431245026256876328279002332759143785506647116721442493345692220670890036692242155283411119812892864735477595217200197103667446937086822812731813882073147928171921064875864166464852647338776345865460348140816102975608205753428133425918849429118221751732773694355385032114649212907928506950359456863214187447496172234616378464137120291033506909288976477106265588957526406240677321875138536161246148367713645784855458062921854505773893535545492327311532111189793215935918381467373507504150873246071352449367988566091663386419900427437926656193595497143318493992984712336753908416853615487047968408930847510502816229820754494541822681141785699753931175680913329155395869643512746062841407987009090778768412387514407268252086849253240160192250590206794653279154145588141465872733682751414843863173517258941241710390083193047558821806921620833617835091766081000290949987050041500164161656776289811929308883678212819531304944429792804628369672765519516499486172749723383673757495804180530725920669662704478752345248678437051612563553231877691011743525746197704851825387364981527962107477823369728347167307046278891374975043056418460121896838768857361810037265547976307247301596577674367412719845901407543961282415393501534001565939506234771960420675229803673943050048953598704481184025957095385660227625806912637721495675004476668703175795335644347407049557921646968236593370352892984810746039858851688892144827249302804324586678758114101631886189523842008553236266589969420910133270089971239954533476890950415098545378595371985238426068013950908331210510566929620832325086760973659150354795698008055598680114442497909591532296188116526178264311574501278724358022889998964501372310028587116312849538643845115987243225551844222802800590634360175870912586942364753113282474100335587435105021501868112067552883521064126365601708714674484640852273828341379715548035349929019560032700526794913293281639866315043302057327868821763258657737047353102358451381024288456258814231993662151209438017390535675274351216414458951644072216393328137737756822239398875640922011695901959263195932296631645584245046775490457586929916946938818123064547548654875519464468728057842982050410215588862059684648799882656660858169554218874288787157849070659400455539854497351533588801947509870944331496331562154042201572416240528534163816804076036325175752808114464461251958180528208846492517499669489644643557551572381675269840145550040739884465170629699358638351397719773091873350192050447619129547469410743209689607168847315434784683453341916299303503646424178555765803246845770034638415396464464158402741404332787128052973062889385547058393203711452154873694987547857578668794999118914749908950338742167067195228404780715041559082412867828172626102424885999572886251522307431000460121096231046312016115949184940107635415277324244229503788883868155027367131317331129360421424078285109584663510649777769203333596608514126683640015500904627349345769753289372152706020525747059220224485273649369648928697139813244515080539097572200970450388156472030214247247888647090992253552536479267227102417723116929049157157637364852474688364414048314389825199071999927301481174564887771515265038802750475546854479190681110474026397400500170736740799842672683709368739960517984760242284964212004816316416923255143698266350133848356602548325666587894893759221684334060916532559272897794237835399493366444106574368945165565151939823581460801455363905015595672899743241255184295734131791963578867573652444723421872244873079268166508251180414133355242579328263181922477192070418699370890406018013456095764207197440922109513207717131822246208316028563313143032664241608804736319818187598356203925525331636119620358334650340816535984466736753154721141801010729447192742312801273548776725240531197385679765163052174851436018080699772950075290019798400500448281807168864861689091814158355874927625935630716861593855673631617439974439327062440559873890059085422835009081374506448665896232716171115084315636962149859889406763927155495933495907795917370912064218595249394903325558318979345139954130413943683381723654043457251484242895149573660268200121927310515683745196328216691030658605947820191358423221010130692174384806542978471529746765122191220510601030090905989682070247345918443557743367594760732292536823399571714030517750980709148911735964981180858552108945578615238339889694348174777129687047568838238523782442656630346281891150584013759431417600945582266341814928342768196435407238252821514334078671948766778383697113096268495621279099550369238743143525175749557951058598104332922403180942062075871023764690954653101961775039985819247356765758835389711328281135275731633047588351312260680370435595045418854309687109315241327764178197422747004376311964159133929602244380584096553291336421565615880568973124828402872793571116968456928524031977840374345635155108638548084048995997087209880664745282652992423534304719752441192564920790022849622255419193097925260522238030725945525155348621541399887317791400351880216247647855378227501420881274424763495891936514873312222341589160809117998732681128229528395311746750095041685446994267928725258666573187727216862276637330961255052099890288009502250554964681958991692058714034660076188253962336759182758859762332328124406153398791699896616907501427998315904961829092476828828554475748509099791455156270929073584538222302356094239856975848600728244686635843408931313383673107849391752249106592276392449897814786470899511881802924466592259493712077263749195895188807233926317550287088644789123802942044909900046948762890520026307049893509019384213783849691784843315553942682483579021037902328121635783958095534977296361438382625549822700700858916187703247283129292145072933084737504864861372100865201133082316499310676608684976343018131597304142452664124836639350262993228122512592481802874251880845129998266123367523568501170899803690709688395111856152554437246674872341576827524653846537365750168839977834857914139661554965468243220318533245190769838287621732242657353146440036440065662274241771533677879984246344645610936862536058441463377655373933210152578915486036490207802049521677337496229535227032224235424776361048799536658862895405056950455196623597482728250282348150061640984685435700625857215264024292938913555288920030802295205176595646452517420494594065621823037284705005048619335441050015741950953850465716126799119991405541379294840072989085887171578560698234031017191189463183489572446306084648162417366843583377539800224269875020211651529298379880649139522263616566921953931056958548840997921340863438541495489415495040174250967597232563994028083448268047373507340127494145416689937938836307240611308406784933756442923350987932990622387482175165715061086944795896963296793509732190216103654469485004384310756554636898726491463395271293076964043816499111428067153780986586981825746454301835370329459836427822771981812159706802752698161749439257921163497798057647258512509822985749825503828099302773085301352452499550409359334022652769433134673165339996943778483868254428253857606355767365554409781945571247393113596312281306260144730953609210451235284862913292134879753474896856280944533002354651455195201753328871130192306722523167299156129534502105927300681745759391104741517579004272885409493397514525285213237629487577498782830982745166668310721845054749677826410827190943298793357485145983273281846457681968508203762032411390961433352959665711119740066635643691615383980207134340608840987869297567370292198684136273127001900338698623391056313521883027690709074294967341004944976625033520690813692266983188837431220150098654935803195004377111373983864776014825908959768750563998749094587207075406986114661462427729252627543784290656335307578698415426200723692065935763903064395489505733613471894775199830844055480850103489537565100897635338701062534711009122411455349846633679725477830365844341028768547630984623985295560344144372678998195272891914591269811539805265641958785919014411602396810050832183048310966551181783445373819719314174822832923109757992906923739191941025484487348393828064020727250627720619502248543607031662274147366542333291322644740528908103989732425054771105261046910218958810157724713894520024238379714696143897818036308726169042273884348136331338212479647885218702947947880094380131255315184475026772204474318089808553043079292548046591038829732278504882936517448910287486382484066586870712411424155740256031282144210280575824293027831542799680129558140390942286742287635724607036112604396511204858250078467907512959297499785876473848230147580921190046919294433542931912718765228450030617368155429969472586965504734320141994671293463747839253055586874153914910505301281278265356417330577274960233992210030089608842469411207357931162720175656871733353548564378200818708951423731621566323168544294466081647443144284763685215710441156644143634580034727978331671559501354600326406842060837556662359530342115582493885044596076876904764014769948551546490876952461945237055532265953161159218190690935924818581021771021849710456419928169112830520581521431044429761165718678463076176225282775773555000010495328347422965360516331623025521994499826496092363858349490545096515327579654215795867002361297627376949375684687337825793046057202067380987505975428766061952640870205113232005871726151546987318700991860403022541376831734612338736147761681868927040725379339267836052089773798680916147395627391517445970508154519858145374464492621892197468739856398546219825153953251418911213878972562168106117608372759004833080614507637085299633760163409717948211184646597023935869143744862937064535438736957159528005973722214128622939071981555912616398747753143865264650142543111144658695083183336130973234364917788932319962545911300220298936612475557226637657695381305797858462740624623732613154455590212053237814609980050984879170058028121308577075134038869536987199686793935974955110798745250035575168463221627275476245239293677801295996907313954453309605039166601193181532601534755997541106199445975066824274483957045262963284428694443108519399412527106958573162537882830406653347301992579158792974103409824198978669239348853855551155857013252831590028451196954788955981972449528745226386965173720314966642109806664141041309375537945313955973020395099622075475304115949104259178604440524532818720696504389288068325201757410175095872242846096771374909514686671416316034421084150303189225599156345944200745266459166901612067814272619184419511764186727941210495108553347452498504599179818203965726063441596661480587588180670235329701746056009328536749564553800789132340831341069609278365211401907707543620202871833362093813073692492704705025640634630885236650707279507842847411982338642507674703926163254265607333052335315166874274087059354120852327483462925458343191842917513676335894734793617503079987421899927572211748805768083784808644220821024382198349582614170063826469176988200067574545852922621351331124283838347451683124645980305615763924273436385112855673063837558717838226976473498856224366879882221316287259032653038771322624556565623768795096093396008048586411623532305305581315477246243476654191152201332598144856608104405951770715647638701489981776451336828443349008347956347292262043621199304281059989911959784590383320591620098396016938694382323785494981946314130006980239128199095036733514860522906430185417192479482092915525865711095844315098269171438908762967056782241423306178550672669555759621344798662509636191433754649495060848680135987758153968852669109938032405968883974230932951988151831432181695477636180630428469184570345506421756636938395621020602750232328876295058800630782946493636306198307551522138777953886938895240740644372191781508623858836484944208842330752546061860428066912575932690499127052969025553780902889330650039800885470702743793603208140874791775695583338269574222246976405147589952121168398562629879223650796501611852599161092369804794732739347574297855458424565895936915526731024831546347137609832228366499637540940221207311476312707438619983714881804077105947898525090075446473353427983131749230682045179561955875109443465075876482396036871155235184137133889747133879192045956174420976868844087341119243567724667582888324387494634054718125468986291008029349140881577705623909962682708356764128518367230274697281084322476062352840170618338193428986894818168532941196728210521628907201370277606725442268666275823140454300376069820855326839408980989376871742684964560756598342557102660226168163130613742746150564000684160401035943053401052794580757234598582033681539489981757073792284065092802528060500513087156663506520966825984084497844813145607312215025465854362883734177059133441001507986701778660134443746797925850367976725218065532562521705706771175435385414211214252152935537969474891322601530091439029067985702194772228113131077797814721807828998262812082818710334942394007223364155796883694664308167398188264549723928008011400193608016980331235777175018705236800030211175248172460136305302901727892466518223417394398381114105873583022333819680492394866499936231842474210260947154836206580862660303109597757462751200036689951744872496117401624618225686687511727508430860679442238786687106779309492031709845466200135532892195079702706974728311715573190405917324666200971277644682394305894045510315232128074126401256700598502266870146484568308731830622276087870750256782833939532944858909544832138413772076135698278056886074682603874234486861639863434312489877494521191721256505601029708494433005120790633734260973827378822981644978517960888825842699262181133008357824542849140250591857309218205483967206550659467728319048535202985198694261723513124083066043451237215641363141385490506605097539383503958367953125516668692149070338032638654150244203225790153788465132019195453783563658559036217277294624235510641597662680672047343798658436794565555269636924578276873580935706564412671776021934779717378856747393788300489505318820258371275990329387050238533286407421785193042878157332969169845102580819483769120770818723027859364865257081817353321048149023771058115620521637645418146277725204409704485105476064601890297224864402179807631402567294051902722219104952116487885827422739917250299089239142652423734102851973382833684277520753128563008245817319350225633013529317828203061078034039791866706966138696248070945130145522094156486831579093569087126188269157712155991995462074264029004863410707399136569247813515408554258352886318680517614619453647304427195937758303718355281133318455202986339412878233528024480884815565474532025586460210490168304694504604166752253912669760112186082015782313365976087038739457503967845929014853139295423804589367052298657706895277502178775376938011601058818076405162321584193071317828496246017010905967443808009944116743769163896922910140889507905775641849616575058667911688242606783099222223113553165715732981285495603015756429714011812809682765724950083311775603272987109193462113697299854038293438219299069525295139992798569250077217113643280365781032793468353795850318416953767448525013760793508158158602167187582653835058314106552881923174799838886552632112917553134059402237138364080630887327114973765363908378088740659144943415151194372463338897143115647335350304547847208559412482512232920822443309874604321007039353619560737109168514545095624671980829991620195872975292444153122193542495276808077812841685351599581922386467905319178009595644255726431718329063136199432673898774878002272710845402424606328788299223435718873858301377222405775509535256310370249946526853342474900370063930235871059610037523481514352039230901125569466474849227643482036031406748787312304248812561739623883932606991631091466304646345786855395929888321803607313690432402913908138643974582996779123667873313925186180141033945115539427165769296091258691141546104371363742912192190591198133023735926571146743069432341216547359756745207476443935135959313438286197370092586425478256411987762961157746612614222125641031141887800903704987334267400183401166813671581723323724148673769720123148558211019320201748790369668996124817985939261902019247733539912950576284506047915020430509447966825191647838281730044603331084205963430340038774504211873873927096710714601806363507022398772441259144199346174413278986319843529233936990732748878342519004368034029987661850336344786565799993896177341577409378386911049110029571445111182372640608350214111949233102064572619104934913199017685844195675184330714580478119225672472780264866610379597805382696797880370549443507863171235418244402699612488526599610225569487104393713027102909837198992054855412982584560125193509828279623616307994047790559238749552586725550117180477922878791034172087764137975127257496374211099155730588760882219085915526495328857851757916402666027836271720215881837091460616862015783951861147305798749319893133477965252878540871848741284674476323172702286428678859109124903401817946414688546037981640674313893204302139558971825454945868266757639606845915686746006833128350266854888942270355728332376737158511750608683233634121786728345961145878870200964230347637398789820417206937259279896736962709854940486846356340539892503940551943463035644571103415064512205150344824750576580732763127301603483310219364127405030740120230880825057824813541879103630865225241639429924174546913141390073371576986209180984563440488908577710977936192891918630829372704182136649941121363667865294664151524544661313335982116521774438111959929668909176797534024394000391969466188025682176014557431135346525873616222315576491257538745298643882002766928834204635094229124800666893091185964351134999731690468845261794239491553386592753338182406098870948541195061405432708904987841859481276183764168510740418963305304413386659377560200740598177796698677305970478345732485979047617613357221832016426312350706459271711118397666321537712740783531606847984446582411157877864877957631849997747449432827495199924026445698909815216283674087354516210980451924656716858438871708653617012129127688520836840375733449922973688949524664576202551531705796317517680513731272711030944852861838246344695970606610238469691364311412894363165283075289578337910235487871433837348554689171267014944454096174195517993822531201072048751689484714777081971736316459025212867153290719726279919795406809870131184315358943095990171108663372248909939075091717074108862856677064388191297041356024771692066202892310906103225239653711242983717354249208374388690312402646476757428122408458265682559851031256460270219483559405320526420491376876084104693652886507850573837702384668520275278653519480883498778466129555130801705684281854904785028341712634410593025509362038775252196912392899727817662322634517014105017338937343904932279578556669214213552014929851225957456075910749073802255076616162497185543883927859269636640156443420083479696087290911198508961668848657032713226820904520418150556090891427577315469184806993686049878258369024718927765580134582925284337172147020765359554933836734392039316114704435377025789670844117929987873861828120544374682086445760808005163627054202312053989714657995182122747188839038377857857869958834816054219306142899938158929554140894007483278481023003811955536571658609189878215206032878040696360338634724977646811997856180410250208823317099412885680844511654948914523021947356128637392907617129117716160741051852621577871199132102663591000882893336584963586974132818289555471702900734773148222299405047094312004522378643273711073368393467957080937563987738942174786950389799651759846872722138955422060528923655372714768372067977624945766167834407912166732327570429855828368175819828363754876351374680638820435674323614041484190444099967093441323061564606766757422522102088605895388885801825551737337117640550544971488699119913204407229076283409513082914906009656324247542524186672447722910951225622490856682210616960164198280186936605167572060246941080044954172084506070617691920440068431621003750968534322405205231300600003100051054202736308117301221556546192700768592455258629310311883219126306347023641148214617967880266417187492203089344976701901634840893744102292993551243374060828754864364178961611682472650367424144519665588487438244613727867314831566591978701652874181282128455865514911494925160064913043932949788011497934143517560710452612842595970142330145651609667839810006472220961643615098931315693532443352887233765368750228452016418954671348723741837979117550247214426156210708575527228318179901674756390677775521611360600395956541547641490192131069991495427900138990913496459402956464269766499776311299505899227705488548655496186140333182007458602864210230341647463650997495856485978576069475184643702700600780980474043412768329644637775916853300820657670146143634940345072168114237268943817064600348774787061144790074757069458600521416174277168191249273157735217576287886130054135874371228152771405811742519915985869126990336787286733553822040567318586038922127263877898750895785023884512957401612214490994697007299562935188672614402679838127399223668594482466465896160471577887586735530794685319247423976526083545392085606009644931580536090556042545680382153608134204753013955018291873822555645738631674135810432976517903016150159121176702968507677338222803486637821748401936589943038280668517307250143286531575391952851730719489444751461097251852602421732208722810856301872424060411204974982962855275469775673598424647232489224091044798218579733025863084979179533480995270073959849073353685008764682197178751284557700836538725815236668769773501920951610226472759787705840215894580926885652859875361183944899557620557032834474844959519775232664904593525330843567511804319348702989130272025994672004927917850421266391804229658815775255701262074745703615992484649017834541412483831967384966952681806236058526176524561872710041718896041334949048052826535769174124093266269299912806101856047068671113276440557880185246552037065449245817925832355266669146358910690255044662990470769889689516885799482693912077742042744389466627426872629202100380695088093248990704929130032156469003967403271914891300139883578101229251954264286350220324982593227191593369916211219778145930208965459480792267000493478124836864268458695648695295741536909375962835933123883295123210183529632700454829795050695596832327195171534682324944925725097916892842511095000989947226659252072263779218645183899950009697021673117150006942487667141545318123762494908352924083771405808104352657792894761664778762418995957443902932673620524230005580966287924164080215962898703633066521161565340672999271374652440620824046255347382549676740549982134096489208941602457652600517533547270265010847837202933743476406168266983536171563126089480109686685594082135549047367730327876493533291946603022398001158791794170245595438094470884472220372409632447642101235933002611498058396298394405705754390207540059279897746472264829006801495714970441254451227567045490512680103044372590481164460399772944337210956794508711145730941769189641437376131263723475474346207182126579615223743603831212108600180786410003323551286640037495829263810990258085618939293423037224683058696886370657184230737207760004930090150488702553253446363101585069728363495511313435432238712359059784743652561808871573149378485946417390429762692686021337966622043304031828331738051265433242023555383678116605497542155623762631356409411997513432773296312508104722424149934738844817198092941259095677692067331601445756342556358273937489682982071340252140988718451468315209489158525793210210754572815285863981169701955658914924301295244738995774378419477559999989570169333285973147889569640244403906655213957979326164581024591738017132809352269813652653748092261665152969632808261128583101943785009133857387465200152347381190095329998459345304270945618502990922683181267088644595301393079574630527949104939605858651091297445554216849602401246132163879932356480494444436189392126294299282170024265930525037511534651271775207998785994805454739264701322917733543150233054410171044800094643678617491597343886422368564220085710664087172697965907029032779492123300124349373563123138995829794863416040117682022339957519046782025011784639897329960287837533826936194883390608468503600459051603788233082276486261783064038110529748922395297970552587936043398537024109947997661961429973638853561823591835303115861965638465504777715322675266388884680858821398961653101168681612529195055008235557094580747548855174917288538738906772952841170572725174988953319161873718957804316896678131711937914533667514956393476800226344380760926932122577871500289887390475619687843892742136705912513555810094516064170731013183590071467946836034307425814336121507520613285281768655127044769511525125124422380429433797212548139961461761414070190742511990110257837396200487655374313669288212404779372896690781071128580492390622351593786015902327422398219234770895575110633189050187706960133872168735871598847595349492260075720788706149804478242727316837098381094038258149932515849005791844866475524242223591044806791497671688503381514844889553876735330906312599916603254798799624610421955793875546050024195635819249280115196288825807208141207142534322078515316500763632490842792320797964978746835449647324411408936491400820120615155130829777717794613026157232792958599342650206650670875502304959293123237529151152204309871867462713610470667130340062273941535851578371035352220928294092872979216454092237092504479352093502795651770278540926505062692392319846846325370505129921856181596726241083234060754355141921374172420865010749918831400985220808968862567470177813238668249408391232546234637524873309039361863469734440353825103728106128629929685350396296921454830334812274136288596131255725544491298249082479905358100977634458199540288373877974959820527717169131916523149636372289074789407555481020861141379398023440664813027511475856688713112501275385086564878674035856446660472377230977784390435728139568385047035362860584683537303546077849306962940514183463553893190693973245147227546868845810419140309689817296705087287256623999639275805131465561754457500715569599513479008995855681266449560193759624919376062379555572462105336763380206471482392465223793067267694273920934423710050341890723749331305839678324034573230095143096638147048914922965953105479914426945736034729216091000353484302875701203330396156806293843690667759963049999866074604058229135642987102184045905953559413112794472189897588116762655168521879623151155021365820198778108248223069981499990916725153148796911243485553641736730771272139928989930507012928430435595607597526296892685443552642514677634762938176369301336491787205632634140950596871544870856359163583575374846201345106481412054345259685237911775080067616315868043221314890892203808370152195506810682905161662845781476990568803830238509976193372065315819206900857824236366711323320478916657780664592587526519814300072551459671962810181740107606378569529237879215993018181698183977598094935856149272726531080551755705975773000487059375597844896432050901298602334658542042124251961682953310170947696219974410803037187595912133403240233901968293812595518124891177724913852905610628484206234027709758767675140114397029630510693378117135646917170371340094393291445021337284157355865297634275688041946866995015421021888149755385555648578788502035281426698608865381456861355885606228609848019272378542573665403525932108779718331028456339775060798255664383111102061918475200724186091810552245879629732374980843483498019490862073833198464494898917429678180190654881117998712014422978996139250193266772732073352811488946161273276386460177000188436590585312095566935909768691206834679421809819529078955520970752184798978813238901435528191694017129960679307870657009837441952993187992078514600501509977940084091857675647638626225892109651555392180642020714896735409517114940057767250799568338072725649081978342038333167413836563332434751517655883374779512122562472316852889517419955542227089045866697505502013554202135615264886727682809130390490679021346222765248127686087131334233267741530391405350638585785533532265628253573265384997707811482843955997219293131521291059018716570548264052973218713048005461436707170164121883267615755875886862963414231509239126548743281899519664625755707714556852686339415806164180152948083176870612860083454280619142011408166108636737593328246393203065445149238366026797487752918542650794601889007995726750128823836605868714588853752677490488211093875553344490070459895718771132283696639371001410553010022174687694348566320281257801272748131361814337915336124272136887719649715444857190775591281453836511543879858491702999352097270142777726098568994204678527114604951605868646405877658252939174215533419584463225905981721907329163629180712359644292078288406842413259414296146984950588331045943194871991294206441655149428251274254010808352282743023938516395031965453629902354326904625429738934037836323458279538426090593939565135838734602295334966075443204784531141795110522640018450849079591382561979966085286539963131228575739871387840490761989804596896868949727561242102866537536859333629119406245386202639752462995630472631570332660748271699203283462688988029437983209593005390491663992262195204715747270653701398033081434131876071112209874952603319205966085150276506524325340444876920830886117296701324388481338364684219938080386519252476715234664823034920889919036410598720958936285589796268200694236448804036362609250019302791179561281052611407492825877370577032253277515992067627662465612627512209158334663966195135531672390859634939275444488350032226725377277392777474172747421679212994706716941956503401817566599086628373671608880114241240593805431702286740968718332873211829619401791955341793899513328600297567399816737221620765193159007042018270687724742658354105387494355462791717825356257347293086541894030254897252061655667430101453563489086722193927565267140129177284911259602163835694839136587808105772797195975181473101677216881192996424226864622014439288164796073435697290503809499313226483707395344840080433617369736759926573699837436009385360785254464634307868044656144657214545440443628530955257399982603586368391975985850199019591718529264489160351360081831858172777082151765523936808157708630322822546264481794146538420020491023524607855218083204444401139905632824017933522193488647378638693676373953927674858597814470904005823613929250143842922137585230307322423978940159933603748257847580873717237715245319350690510522637156590745283416060298161717250427904002527966575370822860557534936728591502234470220933581828293701658423824125569284409540657652203947614471889363243228264391904442409495331397003361119949423533001943468850257771119509368796740827268441608042216655448335157700726489999845822380099432659849315130597963746122071654656765601296347519802051858080974647731054139642399841949501562972716771286740073976971718123722202164689359138734276811764071468746485785011126972951577139732798411688678641984707645132881231360658629622923760179301253030373797612296852560237916046963487808154769963956920732537975289109316136377208308028305952120379273004057052137066758656341775762700726219316000437561954472502928724094127324340200709102264701874261249863936866317514149472278991111732889503317477648035339697748568035116373024596202755198163113902075207949918973855196037905131477337460944314056667682918838192046972313467971706461151477069316448012477857370317976782232560986374438791254135063460619770968293354034325887986007325903349773358119895060838770530954658727102146031237183683634404792343370540252948839600212358806499619768443822182648494592891424221462917370581803980862374563058129447171813852992097145101637713086944250481767853635770917915105948763141511559898487467602258928502540757672763084113037642907804572500204567153637394978950921350564844337401984025279264249274096009840441916583711902030192343746539129871902189946118752518799376695875398223582975007520091177909715755380606361583408624103808717867843289888536611261338312603094874295774910447748670568477958204938304490865992653916043702845549500221234252354034429193033464021978904903646299164015041489274139083905840761033264896268170911070226443867000299316459268514276699411036030242943639418664508869277242176108442424833338334200549868422551326511626921109699703872213547111833927527651546865348387814900010303473093412689407584982297996486968620190654619928210945295785025268739613626514230008847071249879206400302576891052711079828869452326248706573622066619219367909010994098764127970271175027917691973716539378652350770869546163644310440205571432116288855413881380652115534034472150813173287140978430616567336705305063412763329112981396682359606609028930179608086170778644234816114652470868645660702229082873235486192062177788232259734433298327936537739584717827027690733617046797813041305280280168904643955591712306237850492836782985583643588315303006593623074536186565295851126067714297806439170874742500605427419432433779574811622473271087046208473823792936026940973609097693615433501693231315525064688116831066088529973810837826578090624003134174413907697412949890594883639915681823438007046850366410796578345936298495745954139865458842485947077770073227356183074786023714446975719769750724141713927014037382332333827016312165889773181006855247071175238085573061108257254634791385782827560973089111135221594099930928301791929114486778451782190379431478643127987159727761460903467033950704841502369679333762230423115740237832149159917873601554880017840419315722885032258111506748422058961801360706400234396785230751507224179194146261940657065568325903579628559292569025811621617088807612516362822726720852485566941209553579659011169146169163044642560044035245282603243151781003713629340322166837888679326387999530838923216348933885650297272353690316863445811202611199693537584895244096012665768298339752297243056371538166622172809006013929963932832498575138373426739154186240478123386319334682984154979384189731062837029588704302845459203588417614154061596580763098660104286463149961342723896707191398870085608044645710182699114697679809787028711076670493612851476429543024313637724992534925937931906327021918585157033865661309920820466313586864022211144529191078670244637140739304504122947632331408340129463846134269060307279454435437244978125604984958924228310503133845332839546004315050702856096376484555212762399193988446026070748238202777146284077888818738937654011778243618511087005975046493514857992032226544538993743954507469372220584638493090341586850366455406622279383905720805856378066241707213276737319205453929939298623175139105310566346605180689764944074256091918090002373493501528166070693708508279951931015122880103820595768488680410532272010397775316955665202136357424435791350197698757087165701507702025915052363739992404315140076866144323925538436087267843386772639401121266805554642132809027707907412950807548913942165256046565640476852499590268257319317007852658209708504644979202834327400951485053889271284120086367046739002774979556427605175182828231528893006707535359146807481058829778398738721162314801610690071415502811127974336989065046932098517379128463717246904404448359366086783889365336701194053778164931715124336677029368128235706793136573411693583878087041983175951163539630456330286933115321205174350118358958218603130627787989297714331655225315794433419216263305107466460676497482924163346651400742668330904278424018325853485259315241074373781124600798450767253441954814258755840731089871803048681322540606084923261138560521661029299145362299120465989802149819477072252505391913985103007762448567554175181142215623657777817560281094868056781506178633387225505135924049318537019904881199878467669877068494145691427907141909786252676474998567797278929125755376777024767670702188929484868811125891536381350687042864018997363089806087010452847748252189482810139397115058783497007204277793825929112300701816534198870579593480373611054520125758924122975198997296354763613606234738607408569697142854514605094860110348296692257324297033091045158477272290538456732330989437968169698785966392107043578887275462085014395087203351102251846448879280958633812152888999055333909024287582304957916039035797577984096978826592047403332735319682492795404150550351012813668713861987244059186070902242345361654937277257669642097255879935595997980923798103076523646379760982286480923935286545460621061171981932746690151495132228443113448902309796015891380619473114403089789052972104877480434547470386855493435709193674824369426216749271176949078385408784869244840262658970723182236738006566260358580120433768162079144959110279526830028750875920108915327465197286238606267304050401527405931319168095468873937417749162040266404489774645756625366516745731747771758368697267255168317510067127777774554473647653809238737354065234270166962026864463603312152107664767049576421988237122331799519484509486350120541911663350576621159875059948830359606913655825640224720087905336971883068060724836151167191176952325244474619347601325195671230160564303546864787489150738461903139177991737471473474339253266142764052004526736071773270847790520919967531021896297361849767130386877108953900077556841571004052555506012827929681863580103369071282719582841061326701900538310304236957752068959353284866215629396638446467140723687192038002151773827301452138518574409631891893877638382034651506929823861022638494611702582064372483122819005022619855407390326391397702102883048561763941834604427432764277224426327737742085345714818583879651995069279886873091801994383671958298049264047634118845021299524057423721721963174161722053092681229252625416484435809136381862620380507962407345881369092474351727889577246726722255002651680059913826326716795339354880025279381877574006596294161112311610315127575384188367836889672781235835367181171967222978220270901499330028461405510603068288563766051372319090397673852023365115251198546819624018329009194335608738187411012762351883536104648562264873029086164865545209967059288461502959455577231222105126139212134144835673247416678991095667849100325142090068574167859092823096183532374502654469383277873492227394361094447058505406481526602724279692624937040697437061998402955786307620250247741137921787177986009838223053180830036353262243867994647772313522129639413994746991686648093250199188683280877685784190052343065201218520721042613623991654839470107368224205245984998400168054086989547460398594620428427909772231963061759619082101826233377494980773724188551706667912471092587767570588620676941279427326930161340908294006449043739123310379122270742430391349625933548383790603835910994912736047131303904025969749389844644165947723574068384528633211266758300668607389534289841476839195768134897953668768151069564124047107219599229377233504121756295071767291284828389223566700915851451875511555643954931210587238538301265216027692775922366241066819833650801703567698181332524313270552679229461599404721894810353167001214303692687142823483329432540147248015629138295361256710179280720879146479012519697684787672102517657179736648188313058970125466345575354592270645608646557906168742821687813263616618510352502781272967300694967017183050151495911621042523444400754329208337687313524290976560762753977272619889532998760781743842705140366971332519457430598964563707297170292968457870468045326356669854355049889963992770671282003387796792876139764156125462443679465923735294621672403938849212394197160818517045654781545211779565015367077512894685965360682461447898506274839103395208577633081718275852363741504941607721957713614333622286439522486098083643182039780729375160302063047993323082094726439589982173957427636440189578880523240444770159187225451978799824055256588100574596356939482447357012011936107520483020611952805958840465440954413138933244668998786887118094682243189151564693377336069929406389391496698167576268175680362460219154359901105780091724264367436082498736741575558686263668903941828858921260846406625939726111961459294727615010646486147155331222817883118426172121980697253764185871771371381905707364067942706123076070393119994750199200439010421966577867691074450739527236840758262663926957893749606569123128924031319724941568154898767175949000861208809245668745067357108345317965460371983952365399847593639433529330863491934337346295151927312382319454703324611184035828777796479030749567875025306869278520210113238836495639891041080546583061565754608176275037244170217018722846610036197380747289773530556354739450198033730771532109350835681644714603446281722826867831223808577186550298740906054059570000364329474613002014140567745509629392262573437564676661048412869099853242606101593728416362794366873209489477280917450718209653313193500058938304035289837943545413777787034353394137468647485118711703445377561196924872417306060342111227547543687759256263604211927135956489875245491410990129774877819859454796327987239205591698391349373058485497798034044887961014342837539491577193913121017841673652706451700234870392829934409638609801320639236645614648324751448608039316585270195871450278718317910870599410637411120754843261831399338102703860312431946106398647770004392793727296164993977010037875784750859867114174735818081290715665736979414265435902101409225527132688783159838281311681193642107345962075904891471177906465911077963593462822703982877024723622491004067020970291613627660252391069700031610452894608582830470352063094972903983336608383390435080621356230444493733110409818700194684491547151350156560715526076749628137412576430141911534039762289863629981458401843746782027663483444521903339822858420431455294228115942234195150346999231977230547684837255636120425625839223581182022301556380230997070425351400306584711002631134850395041702662704344209084069565874993100974432686435122535693097129112873571565425992772241910168250988935177990691664458850375870826192619958229501965330777222376091252377113267604856326831251342516544636074502524274494148068568927428979392196641670994152920087161386474271509688211069263025133461674678654436262153055068824047298893355402650602078951074245633410690447006331349416745394060697889528357686732955650003398264262768526981881620716328460247730855120832068525644213982775732626144875483531916740280864770141703202379691320920904030043826301836790462235227667142592862492845409626545720142374724861970193252626679342832947856361527743840425345504362341086624118366299227587706056750735430628171950538293599042636117758739924266429348471246264233282788378120348639471484512796250397046719396190202880741588081211351014184021239023511894050298441393478075861824968194296192035391676441705198313142664480273221219322609007380504292954523620994358479702833302377716417268809318828977211915673470233061604800485634493345265391183080934624965428092312669728711673973236130602985493017906353684158228661281007216081352597763072986279890895456388674482532898736136251052835181720873948277666973146588750522366467762940930589221071416733880061899972117760891331336468911303523733102646483726851936489304267476412581617889750989856088527902022319014369882784045048291995138800768098927700154403141421434953241379472560653037717787634198331164749479094191466674015845880691899183998854471916682098087598090958982465291413468101490467414542332520439605373301882413329884161935905161327076547155039533826051527951210964924091316999620293973514762252864102037082394021171728376294053077553996675286342127054547860452365080008867288599002201676920228416193313562706106282625025538252364166960470268082694954739635057923410915008557802374860346862660157267991632284071928600378676205306314818860673053032536390649582100556407079094570918315649463908471481324773579343339256233045904246068458329169156733074451643312431376446826470199368729820400210830927479078730462997288840542680380189455505400377535051727521412926404188106267490887199613469728667234617637222747483433249699004164381709368168166506720495243875963401896657671474079283596449463793641128612553925233442359224115171329253725724164234598155453669014593539063456118789432682281754754211772552735246129957080723940170005752201154475195901551114923118567351896028290963665438954773769214345410326651417645700194193076421173048505895173275333455435559899945905111947938218204278675142625284741556214069127080356450986527141177985292258096132427970193042615171267038908778385806527954392254126878462987198174618344969294221014014290767571749101829532938190595421228186081906050397807530169047856262680767846146444796756806343005975926831572890855968680623682277258096508330521145081929657823499772860907194944276172956726763732147635681054629598686659976965889885158235457606852667091744349875079954489210465373266477785536076145824938875833150713113580365276291423470798289997881748402116577765208528725608146452042370115176692521850284844913222067240195964372050596440586364006400927294616379375619410892958919521807735920671443824833284196079223824912015509241502326589157529797037149434649444879422068287091047101065628132836546188707249727429050006411964018414607323913989699399280147243516392158367023936680779525279515507954107247240501208842018165836402378598027892411370331695344353791837679653455732533437266482720444484042120128576011919469689828324471682148442449312726683898589038895368611912511325855885005279465722545184386426344817457119221890508418816688473496820140236762180847526944963013009442199756686672293254688412068217820921621173497567277237979522715746036438965884924669107569589564508559566557670694835320288515947323740453126401934053825182082616582358553435394245841647153885823257179351432963925313880656878991569990045072012008969845485177563846892761519981254932743961867157746873607077152847664167995921523152570841256862635526403669677635088514332236086453205214278484151458754488795634296404215091818479359514252841622455472443761058802533478907024083363820017226031472251661391616358421159827445272829337966595000211965497207987411017718126371196406773586923800834271606435762419545771729421591227265895420549568466420035479137480479599355084027100079224396044068656373871798487141465070547016473330614413656618769976962692860900825920016864324983996078311929749890133885041009220185902677200724564118566572843745619614761006409891997122465533824991874750192121282076724768713142606726316452233988871301599772974184955743345950881912286285402142722429542609847565188290759513973533867870608532637761018682870596942905465187513341077848775895132881943332691451995865404460852160174238362394592652410249317503180484555956536051694346825456518929316405397387121660435861859181525821665707054600871650117691455474695083448978999804752504883296883477650240238472645927580423268136294157320966005307312129583348854364103820242671175786813505193238746726559946147273086622241627072113502922366726790351576942293346707817046922129385574799167773398631340990593537054596353101400661762134198266299550804944022215290575438078064210079417997063848199023781655332294336033676438133689177848289580299951856362746151978113474808710585902078587838286841144182341027977722594488360304596455491319070826185376555605519049848357724738818168053090312398650560649086613993965989994079868081364050647581006234505919585896990248490038606997470033567809457435682897534441020060779570993720782303126096059088454378067141805086302713824894981448995265557779598745164389299995301661217897069628669859899570425967589355724970538901196420270435043811485409457531428479962546099896700307809433902061160613191734159427739615602095123083228408903891463878946163695281045967029006724441890248003761497130791715467972396892096493331320421050710208334152205520670435286871769562694979996678227458392204031636206525542550779177609800895015649330348498254384354731211314141938240745925457367985758222030089106046360961328312924903819858420922357812893797901650897215376709471995112276027714416520963365997209520605796109775972901328334760877860589819001538302696174080168609650785666016576688030707494425979774484910876412754609176651447576105898891595800039110691736763288263592949617877815622090765267836724361308206795270338430210379162360746542720350869763303627789289194851363913970225451625336651053517197839198299026194374342850953541882082060950606269692114167499920301692624708071708031451936360364567489855149457947367952954873824319967775866782762483233439047908041872583607518568054215339815689087135302854831768943829173703677331993328363522504031174028271195271075745263065920599992533768737940114002649403575794182433285637897030820872057698049274549117623485813093556317297751961179700183946440010261097794040265819201537156444696044054446571550402080707371274262070312499772894767748180353088996447001447617410172599384621151722198305007814472774733241802069534734723744696168948376969381650921371814878843773550526849144695029400541314358646095713878929034328273695993976799953315032115444683665782589297027670119730158257352116220873761554081721467417220598175630877045458132568700762590783150976977413400747864948229887140539364006742230109292404886496968133708339363331631443110443318153039429677806346742219661511473257938813471106994694212627711461189688178231444873934731674656271768243530081655869827336342882486090693144136826601700230213762100561111915306078590346552666838806986401177845996383298976153283447882894672439887435641538828403937240342586240240527089905399520585977899523104776379133473399192455844567286302878365495116289219697332211551642454674145822502894137842575315234838947159293131786310891266082916041941234204621359790912670068876553895714585684074739706807889681739473738074021970394475101595333250944633585851671292963313544687085125553715555392722672633697779361307824190199404617222592089160159478694543823836920876258466484363679871157024942640841370814289085070390946215913868880286387144526871103084252395129958046794471854905989110795381817236423905734989965630212684653407142668388804892545814759059007495515487322832619927021474070948026619657735259912643011508737909546647445644889613639830470758406775649631063473400104219474561446263287891525164115558807318775239765962748863464652895238713054076009426337078027061287751575908255633677106836332473630973481750447387279908865308448137707877341107567552767197236598952176021672833858304289602738559285536264913668512417932805646670956641087800895369862795767646138491140854603964050548464171733052615058050332407302443632332110337747655966028547332575038194002786702831412247311207247725136012212796397425682270224406046929009392142589346714162245180016642095489486643681764771703840508903310156776052320362420357983166933109933237861306709352480956787373887096260191279088926473313142545251517941290402168742096967442322855000574677794934419797340176512195589462183396824696771624149054624987390549366852949720627367735506640168002353924606783963400200840773447109169306888457891098539313997753290470578126605023534220436174722485366164649658760276929409096996307293355583063025823211290269390267209309810212597979433489940513418832115650349771300224900039154329929201807670004693608330496982892722740292549122185779665127997534158595285959820289556587920562721547577934279536045309319085700339478067295710669120552028524181602378998560042388271362465086413018599950859176201641150656684619500877248672588876754986220375576830125015913460158987727246145355155580035999161859668671503728076176077934774479205178102725347900854694051195150900553063592182413661960252351609384009903699839486776278584012972329630418863337085959090070683568681735085499241325088873296301769246452746991374047620138055548481339677182658460972866389540317892556527178096377600435793981096622953757574652152805053806911343230584907735567809853891960750781730596780070215275515108038946034544746637250311789423535589173361366289246336062468524789522059531497819895646419217012547393413548456203188485949906054014331075835382140125932416872122984284818015683920262779741831295370627842719428832364947517562993899010486253641034836519480512901539839841696659681949400125747176291733514103526783559406654131122972752045693614669584365694106814077378361291956645084737564812697752333130260922506590040331225916122349617824670641138061836328296794053724800324914611960697631433648747688520521495107599678292536662691239233268658595727950928053777554908307349518410702689304319639837037982138074817911741991008392515540094168760567809060419564485358639968632602278797140715670458484044575088811844272451573095875431286427446680180312086182970090821687861622596252356320188262931945127016988816997446586124547450957504137783950870196448376471198418809735349398427924695876046043782295690496907624001567169610358138119376038863751474831407483138743145031660527891476075544934036616261328148804487883167682832924598701568578198343442358163266932550460947810582939728960053971623230306728902183046153048019548292548174357384080580521642639538642366168919383842216147644377882228551170105603276803326598441954436924029862746973465380749050953130326219992140344089387560297232771467295925031846229828691451962939638175025027488021113605989864437976745686089467708175156060926631794966238198217751944519177734261818400815748962856780419380384588268293196933313414690712282962548641973317583465783974564191486804656554334771987620541536287438386278463280076794912773841801333159042276459108937925089805765778039484901775218415126380838412595483007461440300289276613378654842743177313134038166354321994545530637551033601824639749049125332905663530495133999759312799689768864051755680047524140625414035981613363647620446824158999735988233789713839612591847475800739861128929046812276852031706577620142578015006139467778693760183181721169354047922004822373176839293396930654020686177117728726658841722009134431698238237337196679330981270562365824094723589432697006068370467317486884255346224615521905519336716035107635790520210869749765810231431811830659573145041095694286381269024657766501329946674968599309849298653048930884469317484384290170664115620795705631067805779234936345247230982107800567241988595494650245652416526212066914508787341156263957923559746852388277256584376212303106609423202166168897792471730319124955757472896582211736977985354830873019419415652550861745480445369215820552334067903936489653422319112623558132228186587767365184988768072983160995923839486727822114499826803126492482318977353213747356961616069192352195449738854428349965018574638985685506621079975635195112766583516222374924965261323302040681741714848075563380836646515507894079368925291671166113159179285827853221224434252018757645351175169323626129785510070523543608552424609240989248181336940150647732212565663277697431958098547760397691576592892711200761971716976884943643178767422152756796269592723144940073962571585737661120192809482808130000438971907137094605459870452542677419013194008257448889841224997537442988848553510024492078508852176958924430315127442004653064596272857011141796998830964071936058301474601467108210188712716831615293301885075729079134682527777932192478828021578037659794840835884026365916275448021771443969946618522138341902683889712192593401094508158335480683107360358620228935190337338524689547517636276515037780708635554944559284276423364528804898493649642958848599694494618439843764183765843835248623245340248109937724341093260207215362763828975505567428266702054806419486822696005994857050739540761853950694856579341028465163401776774303325140212497629929475630564597796187199838025400199045404464207020970150125889566698905883184283946183664319961323040018150715982333443698493539349603674745912137881828980962606564602228546903591035361530606413744793825794212099914030145473470206363181769462544884646380667759152330017817681102903144825069339222412828932638202821449614990059107581127090513224560956241680179822594250598307275248932793369263104174678610498391018298605582325933320393296196405539525570850237678877753614311682267584381689671742261988419256109245776515764351105616235932429905410149377068696097500072997054675692362116321902661944114353563799595853792861381672528217569593305361450605030555869880156308846010908955942233944451410269057916044711241997513927315115150175159756693144170467872811139393976317711906228294060347164171545264089516474651205003418300749049317598272089668581654463602569415051452024600797423294002470028701140903330306454788009054206797484759707933868118655668943234249800371964717880912873152138578086250901769446111652066778830717770690496848492164214933165435581208818202095595991302899342522442903620163974043016877307726412937687952678446905622383292718575820111537980816948417253876448069688199597036666976510953541203065109725233226680120535972015184653242563471773347137328278438081145792179510438210372924787204308360564322837906930364873455420639905426271088650298957622231301205008972123467573401421183754251250596557110717855942351611830032462453480939602969713660837262679298902007885876005798169929536397020686207167528021268575335590826134007933266540830984584502843313655774376499147559047120679370619643007461143908967709153270668173647109859670353284887053126828159842366210014011153316613411538796339655791766715592751695515202119259366154695188060347718711205765602620403772400199159812645872721147280095510150467951480993918603090186557157044543501629345494312305913102049552347193258476656845368626429465714596346729969432728617035035216309177524516141700118197282987594512214957397442569338047110527811622856910181119943631790359922919641172403248784165251748323823870677557327848048876442025010135638798892012429143377200542359173912688150621452245976542393042373671302894344624034590772202846288539568807530994637470663721402743223298404716652638752406127453171428475219473102557284590058227090406939977312588153728617156718931320428660132500553758225498034252767906909779660284459961232276800533667581234100900360502468170399008401434757662064807420400947941101549088377765834411021606455971437700205054975808221223555749466233772923756219050750205058029514059325849831172962005536157671818186150068329761566951977752111189898877811669378067138430639170464562325880337249423051911325537030753226368101303611301580116042807624834487790918028426630869488448840045108320870603622714811850256712069185107768435103722736102206896339025933009564264677357434470326736283506843415373776498489990065467339027406920618036153618589144821929387910075911958390809909526946844223903055866631464899211383896369715650910939149334041582320007541765945343662781736797466658388829288493836469177373241177560352352120248727285451502801513149522549178704683214527088634213900148370926358622418869499636088376639850962896134847849596750697374342526098950771937655137093801626757653041071370092158199200471493174369660496626496688619493875528017917309960549852016644074473809737741073755992244639862681536276544492610388518871952904179915235285852421713162161730647107885304397294443952691844575541310461561177659426827186632648345466892142338621770895621726963754373437067467775210338035381919023528066726085173971762277867198032157624328362850193531366015154552089601693549904110223358771202496846866373983153439002929316654729973369086065072176836028835734445621273322617668408811117131055571432463334101154875273205162215196529394768540823689778801221961092535046535270939389702326953859884305991337638285742319157637760743672065511111860126550417136230878234999149333678564630627744770603515623922526042006981824791451540571833683986977132851380927404557162402206846855760079640010521128418755761121352497263889845241228533614408488075549206484339135616213102409788323756707441485532570062165943573081707323107352683079316073896515465987126481977058954814795041996229871877414054410803079480787126048397258415952869960116381514166560232812273034394864811440557578599652965692188212025958824752896608117507958695137539891367185106152086869248118218437184380125034349033742890278664939767998074883272039612138378291598679131246689051684663048921024671966066149102353565830328620319646256401342168031464633710854878873185187076908664675510640143789880857234226793957773743382882838258079752099132091699719193395565219095392640864395544115006679393206886648459802576483278368226942188430740127591684263576973341140956678959787621389002838057220084726023147768761439124943195860816076095623987025201194214874863177371980792221943661647077776855602976176363018963866032065730003092558240838760484180073106631762867480415624981981809433806510174856991934787112985869071577265096799482293432070107808683705185118484964019815726954715094224689970626630144897154670242388708703521930938517974826423124733923695533604825458356490172025519285050664353873709928983797356298922489183270831446121216056620922930434612528535188203350887028534447571403025112178489315854323099936091429726142425189514260424836249728140300607414003401283341183503762986756630397635005823719510254538126502725677502355256377539817580218694512136718487277747964508790354523704686736192409244678365873908231928306726871088044074536496723320552076037113737320513074561331184223989316474767022480221613613473603291433034353469261083724254862566211171943299362717695907903700215155137976533963435469390005153823341003896079843667290901822415847012377033239164276899785991335877679119753099383564422915362376388274786309200387917671576607001392108570616145072969631880691180868548805633015398081549035251730329457585276380243005840133073057412831556961060091287985539027021567977530280073018156536022638836907673909652536381013544876432398066474204268572242026965064256506518326269589867478110107848158902773084329780899857782193273704734624791893576772827462475097940412892304188117120887890123159147606101082122242089997893621251466618118633575733093306116783260208127648635089323819236918168677527962386381884689734136917096123783606661680911668039221420347404266915967756371544283508420900924980880779778345512758220352438546603480836855025003898272481191534126150968838645486811563286572062336963312227699371667891056646307937500394415580871408504574402644334183229062281077128701273877231040760099696304331626666119859517086748737687108310926959211502505690131711301154959270283391097513924046859548091526743661969447036423746306804642572438833254508193550468199286154550876373671129085180681919075718434146131736906969717661822099927154705064089929961418620745814009963034973809521549893848576453565659260823077701479492511039532218850416770282480901659288786043685422444211881599383833969768470347643180966415882416808012684496063978240438077819073008164633227400402210207714363057378188850777312381034326621470355038736956579487653731694414026387806116251358480299836617618083065749045211462044168355840766295456938605245883830625146486788010586004330227384534980484301733791277473585812359304596382208304019764351360580181701936737594336788104581328462816290994667263912583552089040498214587296421831285659758878212303264590505809290653429563853497008587340688168442804415932144209927188897055728122986875814653413868434199080872910552207374483425896448410168094737917030414214466059860972054443224785444315957237233563860032217391611129147265325331676273365587865028573045740542271233109834319217068859594585948732541796797150622874664660363478054490229129824646739859151475352539230554307389193880943488437652516371640225493502480001679295178341360015636206150360355374159978552275827047663563395162239404400197898895258329894637940331363986121856451658839668929163738180396866545211810926110256270267187653486709170551349026554548213569956605226537394348491121663661687509029391067522660779646365596803513706411859592235542136166686961267593056208967689445582789806103781064594070896107099088267137593555922669352622662747413913985363268972793764302420073778224914213076990889058588461648268001223991984712377159026854043350383286229090155264439947711714534451713138792485031220020427955371789636618517111648537819661120403125658785157872841924451272834121831700629810401287007295259809126714746895448187347151302346176837043285222448386801538168329823151903678545873734278484149512317124138036978021747735879472387891899565391016055649479180716351592245003423176087881670815720410979734831892571218418109071047634062044153642996338451424861753070800198740486285658452113907742550866470005358499953413132281378570476780697696355931821135112432894928586263327559498370727609167039672215573631872119478901386061851344026915622052917566910547994380574980169347269729103873051884763076162180037245040051872535232915657847702471707474287815806499134684842585601184437155423787881292231540198713406073526276425823350148855763420786003464550467702118403511300037894576055622170816008665122290120686430059731851051009384285412902068962637170484519544778193292125103323023485718514665332369586758083172814434282980644066503051672219980236005101379181649663655086900234221024168617749360494423698609565121483089307079730199790610456741069090681927621960048252932943397225538136665646287857993678906390106277886869812524837867766049992535606602558441730494239741025479936343853484244612930259729625458729557461438559990856906600661640128600440345703720480552561557276272392158755523753863037421750678547641913494678470127370677695786901279110608196421149589263178102838344074834676358273585055891268486098413824681451375006399259108547440239701888270293235832018131150625963781860385094316501861713199704125661472594980788455598945288391764562284367593257566913033143650630411941043907378297806009754017975995674499561393686756660201876357132331553889697069309635284191170160047757789345717238900579187916451980508241309984532804541124114309534005192377608683012826378384493345299623316575395261100590268064937507799777622143541802431394164640486753566368881318645646724715135051938688885215602809316650331673287591813538097234759089287768750241225363054420921835597584783825714441111320687852026748076544776723274384737424076084583131083477349319144432152086109104837824063143884522991859142219853569238488535581417169759757498470674435371667001504811361703094662256915540991521403871179780452651932728882869460739546337210663160637597198459397180936000835711874103988027146838327173522701014145130663879360508213220492316466792725030294547138659016174197433524510215202146287257623138092222010751690420787107220460934352198750118694410961186574462331721273333607536513317888242479948003818590444966615825555392054606307181515885615969574074950748860055067239710589258348600506769955559879921620474898556738727660760870470856766751393326578581145882401448572241007158084190496623191614397162229124012723805760160999517082610052880507188001468455563282421240347883110309517077391738648865546957909731685473801272476408069708756405463733476073359672356180294502507100472725686904846123912396880603425357966592554717723373645626651013283551047226038402588677271921746143795276549767072045085865117839421479429006645917493522763379622662102451915841302480849943877097976728708892329950576541909771241605539661524025453541483418315598408699926597339561188582764803444890615874169196418876554258393025393496657212425984164363115980087048401858179984056866835802365125228329150477363321740960981291766658707196002118054971270468700433469453283765352424423966008471353275309282829603155507167851513745607374905571245710162079586195476686707710925840650284767399694647318410522833536122937977999479956341621768325204781695859786106269892511571605011484467812991909976316437732408211074072665859195921838826233580413820013764647471211482104135397933476968311704992784331629773075733958375141341147353156890850457188973585606961195920589730519197042853919009221162697198934209253460124427437277577238685354928886265716463666784777157026854758168651707050585433876498397465503465009916632456206523474791808500680065756497057446946091351315950192009301872401170797669825916885921536594404584747494062242026433696425193826363113959346545618452018187166506637624724478465790145963503412159897911419393385560036895364856246960990762332353797381720192975051069113028370016350395846375661806834377370732811804736031794415050040387756995383679914445008619416710262661310116552044190620543050761640998445858007829114333660462896290392740232891060449384522769919912509138587343907495112310928214696190042177770964015819178426231354381382228464431262481049223436871554573820667930087424937732269666042413551793158557150012775286319195403332591961821002311567731388422913119252883428702110107839841952770537377516389518680665645583583523557161992684735720786778960131491218045279724375363910667182544636990222905146337602532089789453350583613398661972045259314057305221854982107960377744899969375523745112655883264348110591803074974963044289159420419134168722269188225194845174888791086165915121131190711500739379536287094409019433044161925576158945152214460806337397994009839169468386561026637835168889229365303864102021182107795840379872377526215102441859065947616725517712700481383764991079615274171458336198384306482094292474846087225053049282334425080687452995125324535994814463555022048016494593989496558197761174948612027359761868246481280598440507334721301006859141952374874132440536089684744090452197408727198264981927233719022885346643096975989476965140771116238612284041844695552884807860190885787497065278833750059356364017068461956846625365169002643266538771495657497924293908522514851452824323938149839507311637026794164560371250819357793461102968815734561426580603462197862673546840424046081739091126515275849124633425779229906258600140674683216648015430348840061911369525890356678612734922731322373149133569368757451228498382159851710630632429896156206840275301646458438114084322130581520762398823925588292858312231778192095473853517632863008834775443502062801040226074513447603360098110129665516784831492078211137675036249295080792892391580286282107461751349787776553655709255289181402373941964222442040133756115496831327251235534903785399906767343315301215431109433619798330134566264972837115141256780828073300955003597647444296262684675140889651546411626538521101374698003220237987406386585234397954429748889438055822333371748622055732300426520481413600172214164155644228788039692263658198371852405142923451583019929149482684649375055527471130755414028021945603612182425182109531297994152762608215607011253407500990681260038084590443339911982582290376565845967349330544062540318968346502890349773788065122393591334869579134467262307176853745928187619697726634637932903997635002429451155434604633971858081711621079744065193337030469482622779172438331466321711332760769523982083395130036989737109310197803507534634870306355906763141647827033495567955881049792282131330314824783654198975387682094146328272024340110006409971614017895839819743419505706636920682669252336197325962468146325529972547169598558827077921528417145909360763140968373463140495506844404379553442309414968712478886443550217570680124755552208999460738192117791346957003659106637066388150155293662383874263983460165737580651060478651345921129185117017933334932452639188780024932163410447978381904501380744006232673534605262101011140901997701053528655462861744569702031042491012664603450977944309344145030813922581936984685560299073074367324259611299008192123323552932953259350527577376588761995661401043805289687378312507344197968180128268760851659784140012111022216301103109543778030377289785932808837215391919839771562399644176830735155490969466541793311835342608733458605102733909428629286017069127765193662903577627644023881525016014042576338734933897398998772637171002861061949235311672373711794564414853783360127997665035683729041320639352652460526685655927428834197414775700127777172864059136944557630013566493279272593523631935472634502532395264356882430600520997885184467915612468916761536666476840453257720826427600723500253756430632693743202125855226595681681846004631376601091953581182016921047471786406964746531628026929938126632625271379978218563050252494397776514191958975959418134363499753303132366939106923207282614615144907605204629236226912167188551205781486600089725930928126948141069191626596752981638272519222113780858445335047937548986847590649731375673700282240096905778664939413838673518881972806562825659247232798649984936981446429471198945258752605061989378728001212129371869515245080040729568986332214750834234726309744816991602659609876716592419058051103663090569657052872502972134639484198834020829439687107569780540899702729916787583205790071242630453968768970056842645350389548052485884832001124742474875304396251226428366276719676702911256078230648122380503402935487245297056139892003041770806430562839995186477862483420265645901728839647636399195247290263488663087569208799405379902973518102504349862961879737264183320283234970892910533609716746730755072375342677918514867616096373824179620930849466531347811845214937276548974549384732602433219916128442938821669113841469922886767390010513736582899222175047189613986903451355714413269103914215458316882726364308181201514997831801631610894323536850749747254914871188772173582855472903958587417904236999353674505751019539090925083740155678652669153026422790710111548795365634886749907138491524840031895526790402367550563455204012422584949927831972087195697151082461127346072857557030246379346875039776411818867714276870639147785166137483981718157818611136560398620183595258318519883639261971280778236882638105657980838461532470093713547603084210117601765883743843647296644277251704386149857812637855635486816214133279206604308229406711568789123374397477307754998674667499632273653146629566954152498704989244639597968654380268991423940504318032884427014009981364915610585033348425369385887066350239089364932303626185920546390192340891842062115412252789891516035530193506128461436689805546666183080151359092637624353564965092958626801039250374452124531259696802923142610296502494033743797668388281497161631925866388084984788317472897095281625448232139163900509988152284690067569407013832840889680624413921425625252812183913230085549025692356274531836210216663307178850588694338540579503443034079806020685202961027097423926250606878537345919224395980003914927621049694682935757498064507095806543098499565020191325173349070005684447215289011736658077599863528316814478360880590096223927480583316641787921597963257759476806488620637747158210448705489351655686918349692186122846068697494501030976190593467284005961367507231228397081189890021033359223998195143298931171187598723709233903025103099281749387134189817031969161151674754601073034708755404831516654070547905712394048404269688211661816078124717955531787098499841253652085172860299531799368185005433811077861259987308489838712987081990165317294355146278146690870894011186173575222593615992589543128597581695691959795800216147763089362444070698901926979540253300507613418562283715165509496601074263374280180109197153114443786114966699013296934605291621084660030565992902158224848370577496902574371486842174910430352005609677199110160451250151821293036021381087991594181934399519168877217716546115578207478815439373470384847998197149233860220164632050099626751485659477655350035600397545216714765176852087679721544387894326950425248658583291212705496992618926048131916810372787290484974350674928009498680128577156215301735071802579367416996573706531254708024709020098413766335034097606283092722001835762852775106022563473423294917846332976983793139518957409060992720205948838548437069196587309815271794835168210521673222084210100479735871623670945062047517795271931397818281996453125493498265384275560311382293692913024959544487112482778094485881479327557858956807756657471960974932051310448788348298609173846041434017267575231380751891245208974086457181376826549735693740598375347168141356165096080994231638181546383227100990707392941051186400694044126653967983059997366261456485109236074751590897293425757365373562049306715209898244757998416057856137734174047612599017888253957649297121511021891228294233822816624470752776783105884297414150657344896003144662588502269875066382503412313682204260169523376954520999425772305282120846387615881621685433854335289815182421086248985781998439853733823795013298076598052871039195308125900045197190491275127209361533600913687319714936797833227215672215735312109308711021305392390110279976091491808697404805194298311592915038114421907952537786445599882136401757629530494941024096957945776392230721063595949572351616505862600082013459790208942410409526309264458798592348569158634705815025670729606933422641404466418042860476161195353657188141946011279783010607133807512358596302308392770198469707736660403073570593609081846805906988451336418385219233807540952564489368907615735368757494084808101694450323885953463613706716908169175276344293004213095136204706477615420213170101659064416624805236667960261142200431190991383699778800132593120173265265449872412176414823765584010143990156218266931031000361683496176266785855068837526578207143817773621536090833545973349619535045854656463212862288281052756543562650762258795474597089934673695702997036544837272648753276049333753220628226086708340602239492446497191640762082680150029639820633857749615289339727368836490607986480350847342214093741833670938421694255133598551086416445537146722102386670288233870776012623668912583955108066001388946034138225138619591643313251617297226869203923923217657170007579136845971761812439745685500891541528204973437817109415210061156467542456676456028946179787406225727593898640696807294292593554092943837442509556651159785430994144705473395052424189278994686844850039025517065548918268975314716777013923458175001608698854797421932255233562341720704790562608471440069875061646256795393820374219876435165136364463030748036108647667226995521590297428578228293740644405940202979900279406075085194468411020780694283522247195224353728546988290409966185249151854853015203031422173158197189900215243031513672785236982227327887946521353693573604600924604017988993114391544378575943345876736969460734082380209114264099615108170244392686786585037453796852226660688774961594790464098644717580048542281099618168449780824062755335555055004973881625225917622494183121580574910201705133792952873737779771917181718280924969507603071974192772130957575865798295712271250329838392271681907647064196083621512629778883381631653756070694588039761157062728321628795040382385479202314084877422791438618787445005757046462628210625444080307912794389793392011201015159915882579646198679581870355794699207244850938570977301225849645151600927124137160677616367851867473590853977069572696566048548344087827074497382084459763509695334204439779058920500408128207394707821069299388764183853262676960241440654256905091502286241064500852731521577264424340059978225786457760753856728991017086463011416784386061747543142659041560011450133477245521530095212595914213562103155625957304222290633633686695427875251423523188679495572461399340655949352881990448720825093106157516254188407000386241957789311704591397473716714436422042595088518051865929930027599801714607174289268291497024347853900475943694160075174167893379319476840923321048580883104327743593732706967527956367841468281053974302245691680182183786088815950490541315746601753368934705789131129427026339239689783048031391912960351601369138385673125738818311335805111428809245769245233086146677337385814719947847613397364708098856201888285734359512991168457127612400863803119643405834096358887576009044524177392314224901709069560886528032683434856581985941654240335380844688315700142920569549118245301106783296392250350745721343676139447741452876265536708399060519066246374697772245404984261850053065094525391920894735367282969396667354502196363776372552827687811478108425338135703310245356953980851875939529167665341989362760609083547409686389348299679010264126571673446293912922483572468012320703021561645020686890614864583314698575978995772096449382592480240314913155623157103151885733803577924779393151346002825397992574959778876581612609021386915643590831737030729678437568784663910110205363496187533331788638636579164123774202284360288112658897400489227138069657687805342970245278792163781454260522009668092883869117665840455813706273005610878747844562325988741560245386512520516963341840162280870322747721176853380442021933259179975154941177373205236261922889036794691399143254041550748155237608631696018341490862878376761281356907622858517818505350108755355903473320518725535769898265430776458887956267238079253119348378854899808739492396779941728294833569976269141227942966113339494136594184112629210705295050414641163632118911146991261547718447240357802677841158586546282472410075671424737171579533856038550085444764951747319130830533968576279125787900077338494368925965248899327673378116955067579853675985375735375141766337109042818766634035008255453036098043591790112135921135088709927039856865554711853776125196002871598748470145137507238206816052786150878157075016816796895785799023008742609330601081285580833759100371836665907963054904496931297977444304129131247860583732314980015465998925413259457015177623481509056821664348406433728944173526092406504872833527224799189862196373997094676679077102470188401565773455735174185766319614439529446170950222701281724278757755148407466741896689377582387660118662460427693037435796103856996502459680977193396716642527865026809270668243540309474075096382581739804165552274665215013813838419933415972509239746388963963656186040089623052966782904061502357152014838487278992058603721625874331694626260329258352673164787228968500441690689548974951250759690829670419848395534771072379048311426995149181771008444048061816631657047528881097525109365420384010241205874184429786806572750637147527795845477215939745920534829802762642619418705670229570849820942471313523058226377479148825758648194435444782423923298433023810982509760799467923855412383402398867821374012632123102859678449764855326049040728837236892702166163960327635498805922468653346847341243803291228500442081968696275640824750575886424890688886651421058952334130753649923999346629403799813612666033805903598198729638458193173745638337375428532196194778387571172230743312372711312910339955757895819879625132764958599438090607996519442192647373817439379977972597928264461451188913249350128324988853502502072275272865191217929457533036180150256583788829608822502753590283314268689641910238090054369024810558448280671692918458179202828976104474400346785502333812970410413897327233493605137118199490470154787725572057915678398190851143450118824431153394760026899451049160174778011752882544726750589721557948360037018810147538091090784947658458875495590845571422700611778086907500053246247014128411887894939171278552625509963836224778365823989634175126646593534759788249239108636340525403411342438703771717410589649437822273546085355135160859858455984633749314513541270384739835604378548240021791558510215222164324416278244467236637089589344630363561792617588759479829521676596989281487623623985070503120231910066201634881672050849495862170748598585409201047939822918973544577551023028097431669442147743019270428181373102022593720807975248933855358398680739465349203757627483241602736404811545536002573428685934151992679548380628907331799280751138346620354700969233322387024250785434707455414753885735200335476586897779893115497028425806104605425547809206339084356182178273028110186952885652643979955045981821127344302412086215192527825102315272027291823580144496414847855172233124961952728333105469694913898499677256919090379959920695066156487232266210101896477182340058310412277977578174487309699216488903753796353108335583864790257081234569020545408014093259987268283984870947702200187402492213520827652666586222827857623492993588627968599104534635574459980620758538146449431279901449849319921459451155872555449179499583299567264485798745984599331893008611357837341230964710025404880267864281306626019693268470278341824248017507597061986712128981263096711048691173723644310058567331799343980121139683632783883121529999968535798603750316652669152653646228010062468314876421947534322867903814563060356655110126764385478688044672923441402661022470955241878812129709893992951925490775886372484627334558024556280016564230208147265856227474840242831425015237209542268191494947969308404644439600886592287810609640543357913795517281973214867595289076177428127972832323744442433340333278586908532198959349306601067856173355302623693044589692757701566314453577752384761823734404690682888056524970027982954361667530973057338394347432964225091388137426391181405256175007834614733388494412033518766930150031941838339722323231152296490424860988469249733399910340046735103073012447253070166725893926624183891852928566430981932460102348051739138561941680076804342469526735345432420527932730133796472621886314743481705260931498774307583163141638991361455368384210527064234298649215158574678627262982549983708744785866727985295362404674984866092763339439109933810643228116213387316663334025853266186662265333855768007983365888111561566961412060829162160947095726632181634688167113220821813745785239726372462648698641452923603940417543061031154493754911714244789196749838539673274925714051193981497410146231206605339918405028752874373991955553777847840094483438297780245078819570272126911296640490331712380951444129692052628524374312568830790830113618766732248255719719541779024455798744167260521807420713786102773193705561630900380664502300239923020049767799652361921884736483094468759897627570799887028570154443429084586818815091450406168305424847961784662626513719162596649644682660971635258578477803676668804076649023652636660380381742943095831626694143836414280822980467584134567367084232751399354989446284245035490392962771325159836571416563687013146609139278263503441793153303550979705500095921367038748451894590267329107003493803359201965656070426624821093211298089722499375609169030655786458954794030058276785189440001358540350931731732839198298122306670427572290052311297685868179225921396805468920730104667113340748628442660836678141305747773182476120623238327085022976615226069204663290481947903611686659659221716475471526943069314678912596667035035693239835653875533253357305193767422361739026907042178038219479599947875174588583609855013374295318017222963221810426342296183469294773719296581280983610186400955304372778089219670574665857522305300301965669637966836612921316884343532297967415736974765407208844770871501039197365160887521138863730584589115010404495495096041284142878583912310455385994822075019927307773786677589188087025536501030577230533726627427972474462682690314355723216526023085898435151257696463502311012185075576027886764115855907124123532132232128649013694456212313896801860691210913457429486168880848886927768848627594828143116519391479003687043021959248993250475183077831649632171112223257471702201634103326844871194627521085093716270420834941178924425274766936515233520922388306088213879711398987225120044762288620843113035888758803357320423952984135159638219396059619691285377587370593468501940199035930781149730072811704381154672169111192651543386869829670958935803951584521209009961981372738315243943465526040379134793154292222271156594367523131195397922982155047070191556345185602964587147498446835263815737202599899678944862035207716772117621112471751820489382743933196663166168589766452163967521003476385662564491806788847115159652787580953984789904856472978864763043283560800614247929450391324842465693722741337774173659924588963808778307356978940697622516170750645571989554305581441747415205930509962958750763857273238340324494777425439196461458414323654650453615629265343144411564501721493176071337422005753113120523200511615079228076185766677758873041951793613623684978223166536539205019740414984375405593397354551211654419971358584629800115812341581577676081543061793502125468631304450506524207282526930872504103217175002065721458604142732340199474340429201432725000922449313256889223627333554195972056532727909197861145876852743053101021883026942691703253536782092247123421965426363319830951209087709597748649033715654443523482751957867420130944811566926666410744626155693585530453875339792142706730476849122658742293569269332061570153831618146174831565736317502762070864939099072702168458220599260773842335142998362052408090337417720171194873633000100543106521341053532417707064063579532572967043156783085743388355270906705576208901708917943975924824540295630827446312765208568961815757798054585209113965481627491115265373116348089182741139082529589985611128201048917812150917553931051657663294364905733153937619827435658583289448154812773914817013915888318234806857469029676182603980789212318746502567092138903606431228278325933797005372418215504058465458996636104264095513754594260517322409542586985040342486283096602634549131104036183686316267694767626621994564404942166206692617395505489748925029276685064780010961600019693281581482687055321332444833656031096565539617426937192508073696957081507782216052561934895104307657978999656824519491435567823685252213029556649237780178708912098638239107949922286532376753485679268849546355060399516262654574264031687862996324962734753712479591576295959811147810026184749356201482278628031633338787649784250427866064266611338523951936947839898717248740820403605696550942071138031617099283487419074074751622450380580491991894776898229153044713690953916853701380562937401462583425190644843759135645777236012215846848395540729480639801627416139450273605912837910856090530470212262424339494240664763556649140706192425588802633568617277820629128852158433771829622247731160061777665685942120194313534407551443321166190348346715924735737907698164788521198103620138467851769789383205304820389224736323890932934368394489406488322323151249000613621202869083341959168458658389796554241127756717907495746660325975098178337568265097623692111360532914645537057614733315818375118342668915718204845816606062561874234715747428270196791496222054671932889214610368992351837410452898349998666241636443286616454194446292349137576825514801544094503257504254365050590448164943262256474252195177899720839461273958673810157472248170818760539426734722006356553744348527439222996704341950857234042660282108649893551150485646972871025265778741456590116993166304649690366560609091740605332376023138929173740419553904256395946558891016907870412088680593890503572220896043509930830582918474776428639637052496088754134542630365635956095567023650353947704708080441535466030671433627182515189691616819724278829204815216304675551977142582085008497749523267253618220582370766199516641422658137242714857178251716274451095214692162270618137346278947425972218816419140684533746134150090144148216715113469759161817417299405233160389712780217718476890109986649457835634148050842580099038867677052102048356408361672548523595687156859520093700839206667575115907071286518960589667038731225550579354686841879515007668235369531907373939304419913611526465479661692574898846561756037318469457808347595619729160414049393890727286451317665391735041781955423805082514957599182850815967791012304863907721870133271098506773556803906315930188461525003089449391265525690903745675978819072923076106671084929471150238849958515883772072850129208999078266306393134056316637289750532128868738346939743782177721203662951445131358927290420157369282804777745064774901888187577975909593280513681334141042198326501868456244341194749132484455176415123129651833501200054001278279553553530985070526944303878671891579488030081455580741359140936536720747147099104193420367205205859825194286417321194667214053396360771921412960603739481150021561929031178515649751622601366254247167927032314342702327775144929024052331776240830083880391304380352173733124599270308968163953958665690527301718168658825175020703333777440849202777384878549030525626754646840881228805002527199651105425990185273626105883704029568447738176788384378434948155806066585519832244161531042640895253035780000254138362762517523500253642806630127045042738358901466212674480747622574466827012618160895057936863964150137557494786972024654429692848884716881302034494933583532448929588472571918591020187494317025830114804851404377446819587636804428828367218454488431100287135703541912497634632334211901698081664407886906365194277938453811210756888258680804673722800642388311570056125037386650561580356956289002625441393772290263541720023180509141000123080055843591634200298363591637226067842055253691782102860234791343752277566727211851286604299071605524686141151082308209746276566415237160853231772023011679858399767198607723813173952098544901042457932251333857449082421250026183215068722697300225162330102132981781634277614477471825156205824323812070180305146260729945574550180670386115337851585160914491631418145595845721244881630468414618412736672254559132273711674175312404719288442315851010229979327445962636903779599374779670059568978877477352575123969759836063080900545127480924087090686110204101660748956461048895252020158594741671719283472645962778827087805187854072966127108449908858391307072151911387291606202013098901464548337274790043426053483128488277538109564783266501150054237494937694353976851657988312723757498128536813507229511140018857549463342005760091522554000321860287845897290274531088861553509717326885932988720390718840067032189070374245178839638928320722637041706371565660569451034486906380925144260627699341292189824590783601038278378320232242634223009909470197263093414275430685289251093506687678030745663414580635962426290545466137233937923679228316566645224132290534974487988525196129601335078749888182237695585302214021449536732130220557788516316050645316689785253905566738659836678826745380460271404865734937349897479558202371295083951507154145711039548251820672206637864058511863126393311293054903410994770111533992152829539887131792092757364132587676009400371143446450192888884715174159108913742694595197657529097074173613683412518510377283103110730911772160030289858452297731480804088671142085087685322116455034571565936617398892243710524307313999355815691514053503389759060933702354780347858818013984427579258236587693873317667059078053528614489723219704419877845401594924538611721551031030048444717713891914555135572230531707518061909962434365334470824677601644379068419941869446767743101619257299909249032699156504287641648571288495022443206929744937271796571101103148793105953851683718563539914957809930537744144161937161529281108055486150862014245395570874526459262875259254252804216110620503925315903204464448629762134970571863680286035995429655515325981800061273228465075577359431039262624696545884977194672066262306231487209700399587460940768307892517366547747825603810950935795540913088021096558320833563097992999220551050084654904652494768956913865656247675567279322539003795728857360538282637954752703045416388039929799051358065330807051336190242074179193550446260612827113983644263487717668949993747128742025629139647598592782222668317700293655711687623686831452434326614157679021136698936838995282822904463488851069799537022684926576977222808944661685539446131710246548871420478873870480207146236985671058554903878842467990835702629409865988360020825385816627383519051017785982658173556028331048216623644487056596661498088166389880107877095345136973703001522230793729167898429627160055309651818448786464715543425769079035464069325514428777769162092413496970861712271343467549777223565382113253919949527779544778873058862735110590688317694101794773970991310265971667366610127715271025118875833559190851149800140435396699004496704435710851952564429478191793013933949602032121498215692028885327344760595342709072354681397578944828796812909262516601145002501028574846829040779290735378558846880364050834727875352505663183005154632092949553697680455067832628734668107966202632811480612085094959383020862982806884917630420119132289587260355325218473469350969307600562725428166123303411631454937739754272220156215476107353885271496039763465769180185426209132255075175410491123635947943564677802025595898541443820067958029936905519750555395890355080895753437341064377168337521492177079281080358634418079945304453087445145218030179303256885498254584632688147368060443617019161778697098935090965981609772527875078538809980854671978089212692800500904188601326580376302659083759890796803426248403542025158610784671829723807729888278518210060374779127541489429241055331010117177276460738357692325804540695381318531927717546817843562628502312372122447541361457596040162147707830892950084933933062299087304586355337568498619836269942801613900888820161341858219767214214694035120514647847717624541242156728035493982149851222944055978429872577861576927760128806001979899248858583887872406052226944366407394732724239265917927294533420845917682919669558595747085069914725732381994403353053034543070739909307720198075863310160463833025466178417161058867233622745264066055448611392782638220593144489256014306035093562706850800402834252598718022711147095513011298694865056248254756378895283843916831866173633109461846414838697932234829780481739235040761400942313815891581466785352782511679242628693505259678249228894475631855197075295962579406413936011869719721478006799922788933334854609760532072723408423915171636870348188054555510365499255405369196054092587859619585507464877322860154326528201781267923478777005222482005342417524848079385723374006610378984614716432719609081701582210460866008373217891094371017014957957542077223670883362626903477799216163091571964903721813527372143296190915062637750471754366225280595205533565884497054556205083496486347438931961434580170935045372495847687544425420729116663287517792178994142562475712134624795442403492108522447879491593390251298633779629189805880692761646045529887447315522758649646121676984270171844272813025329905400863885164369707480047299327280203528285777085553589468472909499223169435578450401990694823777252381265433944945994784643388089000063773729910705587847817762594264805424238037893882968444786514645205893736940209016477648320564529560618164857754980967932991997001436138183975505189394321255161612852607104489992093175370988866838478728747001028722504167041787094548543814120248182541978746769060795744442981005120326736895901495682678152568543487972185980420212207097641039750986462715345451539791884415330374714331647186783987976926828435391390374842097214292357941879010721502151291841126020530971294118385362101497371266885721663051958121497083015072360849749121804704931409520497326402470215279128441865559076618959849135221222301565894563679358942994847383587897922626835494851447147975566092407098375374384181506704844109832597971471420728235340015678625758122415701439141354140408207463756727714334896276950991957310329809131574609278622370035969140041526751334922804533875254456839526112943783665732450715417656572477991419846262202526988300948320984134146825611967334006745035756102609669010602633803299568969022192389263265540175358638777525061009875016524111534034621446946889893443430083875792640331798025467286895426821368937487309268641292067909347775813591811666141870638470862430797718709452702136096023036945815612901539521996170338411716532230176013674776934424194309303101665003847513126622948304839290606643571419483588151659266978927300188597726586614930463094614157642730630150629651423644816848790514030013700519067097775846028629793383382396885156625453214025298647800711813297870514411366434931179790830156150796973949002117768904795809479134722900013307129086117180194030899374090580949811142184145251290554115847883115469783812525753873418475513771547866647558667929585829714500624529591533454326181275338472200830699242714017346065548322237272814251704081599322073090376968523845764716987784886522599335707751347389374279851654388187217068846431435999724644892581195407533684941068735588001364685063523100710070871649008412054222066755614528406201559226507896413363159971820560408834339804477391959427165082059301859571707173468760107507585527916026045019099848197413315715553656161695069072587710119296202535101766732266473061675680699128638733088134632859539060504800995716595636224217853235902369360421774635419934471227585603867770799947866976922913248183194870237873603857229533112009760642708614134857794937787615637458562394766063949002889964869699537502489020774400168344995154076796352344069210319443493049686796106827210300375794637171698055126404558685135354793610675617846729770281052583029436873316023735255214535344753811863028121220721980193774004524671740998337516767830063270830878519136263694540677275185358982611492647964682976842985225997201400837132729954311279607088430822928925391132774236107672045514559048761356614426100581408744876165955498367822063794484421262146275219529340658135241402181631855338273649488583107745917219174105444151432302975792471682342033620704194314885779790146141891779239326477168611165814947967212669908110120530766553693617333570856103285002494321854767692528956146584796566244660489542152117497140061293841959592069780091285446849926493420516668691794809479177587703733782823447194560552029119023169393384784860215843736638893877881039857902520224436504616081874216827820887506409603765795147868607257065042405316334468348355916897762717345462585946382325270445768491698810384296740230295129892490752174325474358980879380911280936512215659226571344767965730558907575768460406073264334425232403950257710358383854006393970253892250338083247018558786255087667894256589712709079962706327619470044779547386993218619950067328980830347994633439850703558092293436860771046030187170251740141674808322560730778262315187923130788609976665138271167622694303754291111652123906049994909247555908865080399554518924575870141292283422634820373489722144110739421962623518498870917551656154866893110061903022764639451283596127978851097514302694434996381651738245167154211870955550344595303676681269637552696806416103336662689433202388483454313451485306154129815721529262846047362504557221633251415725026037371531083490201125440639474251425517285209067358659554263699220438386130924694457522396798305030539396140322305205092899383905175429631871756975272298823355083868862479590386230930766917082277591454982107182031994507621935363886869971542181548108842487893358916845845139404671719058564856325616428694961912851849925062321702604638915124142258202467640375446089920732240443193046693672329037511985711034803407875107555602890648094490454538423807075993498123990139634020854847345911691274181449270264166319732551396059812106887644280597259007029953430935561647638654869126144460226280734617532560796219757427332149449885926604063516529701649651338918801626614198612483576010234115662319604590938932092380578190305981465762617511362792173532966099731430056667618537698832262607288600695629076796812453504900324212242195648053884200543145033199673669099426033783013506194489182177630506622185009813402233972846852018729253449038186772606792738660706776967434971437546902227639707420096708877194236337264935714594663225873095000905526699331838918403508188589570207628565006884681915722754207075646267371260858920411687405666488247349263864933311776796657297751124039857714690051215077803025351198665446540623823533553643977298588714811398498635618297612036442011972713324979381356418639558922861904300300236338294335122398167290473843940230314101794294537846472655947854242678314467850713548847421821619367653352920055492992934725318444792369359448265479779408096155567664809649566123520420608709970557952162918809375394856255997534359107179007568384742679282306672519524188270086594774915505999012237141025395231643178933554386609718684160464846031048348776841755064479970542141247241857279925122506917816919663765262476104289812335349453611650225872752325615869042118272850496850085361421376449680151950261506129512696145085685693570436050723127324698726112954083996574774303204466972170271781837262009006530717571959725885438122352317377620801360286072846253096237117154491663974857257869672285184055259306067788026807025123612585898054897483313739340846929753154379069921938123011244883090143685703545948476511327325945163001238359957139992575476323870917771811496102837892643683175285363028777325245194015550834433582184464297851794394227205398756033048087629144053097003792044379420405535660277049133816911620366964720352195254974950324508699821879463927790959626946060692073398090332667978675897331627255274280888346635108865571711552059947934784303184167305748002477487173027984266377656999953963176179146309469674570980125241064963144627404050655083019557645218054465806049439581351103030088823493718022061782814455536110497333881453487432947709592142170530927052526228327654798691692883797539324494774150960391771228775610470940754706564498943300455799710338726249434075333814973869996797594339881763397149603331400192696911183325980758891218144351503398229474546569984163895143167760756825265389591752440940418356690974368006519620265229366748292186503536074620286341403887133742321968353892264862793247155715489884747552241188256854970385940472915408359718864243092023193862445543288707574775212078231964195029632119757929022767691857150154804751651179437787482405902204469413261742672315515836786766568670308307438155584631465529185902011624797076451493370254402172428842241889951495537941537516064367990139688925637851354993660038172655453859796969335349119782993872625851359109196655426594136939711206040244388930247020522165952195958159532793117435092163392713960317986477571325485607399992288496564652587705486004389789893175400977195868203632774521898258451315497733469339114191839513792519808545769755716649668261046584985351228769421318276713033589797750153427557405055195921029796536122634764509670729076139816767094488312487537713423565886216435924993161575736784829001321611284543740914418305313940386074746457043701618011019928494590956123440465225586727827728273589754648713804999611185169711012649630429905941686560403358194643547739279737038007230595518378267600648366702641251055483799325475223857345832157991804300972451262797662927152114412849478312913851552922485894902920077897045193181405506993340776558529308507107015421455020417038000376930076571847438846792947184040137085871994074776946332955825714606478842799666206505094706059202208500658255120415612480455470324478510384858466180413378247880901045643295762868920907624215074102436914204195029897333561313620709821172331167363851664807285577239750636914759416906612570149676572532654265761812720277241305097124576728425385598495512269323426361960011890961801804152167678305510716017975461134684267142421806184055982478315170354068619512879528916347184391846161940006036131644651806903244378536286537495768405806541959622636921478130469580987633560421247032985798102612569021878362267647949762369344914187014817585565783400569936039127652951955952008696419147996914180439272511203073657253050918548612027557861371844959403771231327694780101055787161208990170017207000060374451454376102265978752565122480720429169576626634228211558063370079004182052744607259045189766903284507456279769556668593971331107461238493568282886641849960269314487537232157413236035229350810516642097296327854912053761398694394738141707598053658843404066633414739027951058564602912491595199860955226877917292396965038350348090281304291965218947843322852747351523605928372846791890277384650833442102878487723646182041179086491646176394702307379866211274177694884162971827437306884247377271141551886359191811519704213884938680897922085383150375452553219164289967807305175070608360881268604861519323405008474910851418456691075224403679195273771481553416185781977596284879465850774256207546083863188087137835212352166321426782996031237475536593843726178079656225817507067374966814915959267626040099041195661938626051749467886485351372348083892336936303962720777176059722884057018047167250935541242084648666794234798587693600615965424568292845498060086482611763380362042580888958444827039847054855851012951629407408864208950209141036583081395056755966297214183792487383473937725593812319060519557183425168543073226921069725114948560045964385129084069030501719524308521519090211554794372319851555330637147312406341778625914703979048300310335508219799869077154727589978998637664684329168046446831416337525567613351366774292437323369416994461726586354849619195392970952322440905772668381517792305964412205643972656469673228466386783252249291554725552733674764014808962367287559598541125499211974169362294121455391108895219829204546451700838096690269835574874888540759761175446032601714894774322373416515446373334280091508332245273869755549447366534141402004695338126541224843787812777974117844760592435480282117196516024161585717815855341497729196797089622930025544071797952734204103509919273857286442634834134531487864500977432292963625069505398370654231888040865708186743663361597645330203157139927930994679939494310783795776201636167193952847356294886297382906312372709511239966295881295463801461784219847274179109111012731023462372501876363701621387288673467176010830753312624140269007958056903606938235090845672578000069807708105049610097649379486006658798893473924450443731794286920354263581731002492982896168221832931722716524534294779447768916213195978272214442330750041002860186814546008624382423102049983413278230202137285416040441239146651581218694711733237450100648633884070643054433463580064087667747749293271758631725076984407227863267108565416238272301053584160183823661437137292805954012075950139954883420639829825824412734202877918412711991676611968022049911651756182091734593659349880492296293863822639711308649301873848299720714389710341633127283127850125743285761635741010493701430586589949801381016153413512712070038773919312033919186833956620256899940051612850129663079266010296152311440626786211207715759356712668522650605289557583116872994113884123926868819629651662697367655805792010210050703327219701761098785471628784128383946920849937708287021104713631155042157780244899972874794407862894279744720592234163391090278882110486464709984517250718217836640107412766827797124179989293682184742238662546373536294761430812080879993775539390740899600369968698716568482354294340028912698035733968934697740715713253288483620196220641263002794255867982714952317012624871003914431780719411860897971454048957612881704844234698346115543616332878456836074222332249557331191712445933690771033998171113692438775036962155258274159403210708359870119193573907312808793939836925456290056222002958548307055632138845937153625262260234523684125696251793071452486066767769956340824305930638415110302861596334095359048534454052903315188110295043439109072304617082939567810710908160744257514392234090898209937181719462620696881862012322563943017380725088252432839607624451993253822045952460742494659511007894538161963714252556128549676476629180855841340276159825146124497621952519065879247016598447732180603472395272599346443717523929656792400910268265679908868575755473446225252777219841378806971040110204787143680705662029091488200788092486464759103863054153510988944424277867135205433192559586684620013368500020962051838248569938362721574571544860955983942489004586194417196235212107839263467796318778052641678568591462406853022729872404440631782479494188710317723780270080585453757632354970578072052814753418116601039853673000241124942512408252847018225917999866919789007603358966978164874825460270039547386366636159561475805419711505555238717872749458309722942298535959757966313736238656092518598280869075155155546978534860863949933320505938358953041805008105277363800122318686992421681184420419466412301135580755121854763517053420790348502354510854518819425202981594223081976035662644328139902265782079175518863214157658685864662236177594540658668368219449883405690490418670784415375829809530179582713885022896285680088874757283470765953670340808719597057025443010544483696078346143411693974077057050309088362332288515625124764756510640439752516361497238799663839624835725125304311739969195159369249367374656157208558866772144302623911411919283607949829092201737641932345238458382466020158739657409332797260284535475718863824633097155975167490260422121347884766234446956019139773735618457860870868584481945607080803112588236993575607349230702407792312161777611009416406328619923284423576280785821633288697252954439717166025473003990698263045876434970415638656349959596944194311756563761458061819321204363195647171921762212721053615744085413788308983121286042192030761266550757399872090365735025483935733277939564061146924330588614551496159101092393659177458583903958353913914488769573416390595827355705565890361402603428653427053835957265650325365120060632168687941273737243906314119163772144452942274085458580965618004306160107001265626627814496682953354330376767021461967906842250390209225670200311518128180705454779813289648455936117779708036645422266239057452065992601579600317445215606853190041196603461236386545518295346936828687818860758387291723170918641498849522308275374032592145615667519750374519948959104298008366229808808750696092651743818141936163054423724595518726812887051212833872991000615882228276114437252065545009758208113670227855557054752191527458395554229304881444206664736550262901010388779889614092544251495190672707845366444413734147076774148036491702830929794135593607529228622451236859108144321723651009328636498660153773098438452651967025951370846098518372198172240817512629746905464206740667608922057522516728395998657419190657559673911687614256539759575676285852429685173790458336104103985948362955852946864127293324169506040077631180000993141229937091412722420168268727674662248480733684382234578274014755410547509956415713317732145759029218381388783674100404548304044884920426430844955320915204679208802238349071729011148093355989406672146381845372841390891806633435682713377394047373184572464617202648593328393521711198767775660282030552627753571341545145617601974644628080597012199634109957830113336602519624282867201171091562078709155822506298331107699530170694668901428551898021653705211486223137530164674210449615568390670541098672257173557698673331013374326298088171321277099668497688108671508203205569660706471453106803192053143902859165694385993286418762287087434862788169823848214859792850462566252881451124083455142768418075119845996342541778606433432384040066892242914293509483959310279931336739547569660384354745691715671986828388349166180317583660650203380455459875975420224938802298177482699286686288925333644019789418401641072976280401905088552781064883240436992480436940294968399755446854316195383941235519444661961480388637586642256694258324689002775323750626071622221786434796256354080567953045468439504109995430802783235193170753872584914576099599120090410326331637516786920027300411340178735539461182076933618644546648282112378711793827796881722934953771084315619645450165710363110294547770218886675060649813209322896318766383873093175173702131782876652766932149534450359325001743338992654333549219308107692482607659732278961763389346164309294469533746866529913256221281056429867785202312667932553235411617500809320404527274163059874193047612527210716608851256179339440868704055544386144791738320739442245036477262238433673240144649527476422795964226929712728000164787066626936702023522743865680684874862436741030208875563602073745774156931629003400678496018275306312656728755077061985431486974247146642013917752512621335734939471124632669112518984977586341653714686183403960526857823775436157778022220701641202615850058533065969088153035570356660119697106915765517502049606026771562041360397208298267472993479389441564740474175595936658773908318230426571457649987202271183226386759251284518213937282734992926738999948275033688078180204269570642312344823090456662958796634054100901552838899853691452218772417920818875868505190891826974954410191106108874307822254669232983509167204262737462128913634789558851897313973208044859513511414672320334475823823038763189797306669361394399866798556423922618801630381026474573999622905520585842401852929107541172662431927983627568468574193631545430913494516900361370062596289730623377142873721044471904752607028491856887582057818676037511439207715215517994942465028081443909590098399634684486321870627157587403451326794869646589851554038763909059196696620598788855526558943949016200489657446642274407206865318521904337286868580634000713378484820849670541354868565437891209717806031653377394511777463326459549399671097039518625757491716886713706606697925850923095749536749602715290921946852328359061979838931035207429311552520015507765870719526839917504255396702574345385264606158541080486608015597077395727876255004158498280631265463505960940870205003291385387552316569987198561098137267192241903710286430573247647510504354043664528203911168138463963683008740557432228321742669892848581125823879332286042504999366566260812100373143278115844049593985807809997742436344897275944695828388005617177499755915862340894172761332888538759300442452783550119329235627446212836669139525479717945877726907012756050475864070216055464010232842722324789457577388206655118473244235721775519060940174175147564535660887460784154265732153196989444392420838956648049652212301855673739692811574529712583619548753071447005366582043288786949201600841294531250791540903100469517061705869661187566073576386708169390491695579402264985846214148007771929818978094544713839735437594979090965367817242127401810746405044916020713870878393687645322296969831552635205444629331015755006098914234335677487281261171687925311796746912566522484963939365558571457682443627473144493560904744856641884722159737554758128499796450946654605453662598886741303747892015683437676554413960341491186535970765114338614374009906206464626961537856400130706082439540740984735150139214226717046133631445932088985823977931887551560856587952235423416770500518763463675692702672467584036170392828159459543793594040925798728502106850406930698872095911540734497679517818544063046921806916336403432740409719204025599301912348120893489076767934471425954758459152580773190966096398144943630688191516043660325116234411602470238395963336973847351427205613228409132308931440755984285299604516948145002182963055983406966850818092641908476594448833675633802675219704220870200224216240466285193625704419683327599037810291563131427327260983469026110727413169103611191460977288408578645265193131821379265373760914331787634627654272165561117490208650466184747359019487235009154973187867925110226878170196725439067377025831079644458699108873469942142938553526617276111115626742849728777245277623729080381214552135891132866518107354075090970939507567679199131690206029118057145737301140320154021145970168929263774261412149237851368820181546170102499562786936376032225063123540618167783358811753446984862765268920812459469718915072952886102563042293034404049855103303102192224843361011016727576681820395069706445415585958190164153858414159584334889163122531772826657175972284797854347279117723012502590741258740852776786684129059725017167488304788438925431146654896506997076462498470416191659484207689873873499988340660238943159095784752433341942079609666483396146783359530031896980846541853045208956263009072622098498106324467268525313529752094513778972560890379579587327104178296067518754829857643187653294634933402124648258251048163375516198669194251805371439482984902500109077976192585557642732027913102255848659289436366390537999312865475190361732722790661269023120986858028825613432148495621836878846050191511946247493896030644580257663633454852364393780385286064532230429057790228029534788210192923988837306496828995650095019093668016704951384253217080921413370743819474647270655834411213012956731660125261069345959314327987157743490959745356061003433034532078033467104899181327353617554658231881353368864436369345379073698618210839044310675035994840749627161149459620550893164717319009214199467205239785314962294158612582284164274127216454570169446854172263294664041835895438908265010984274544992638043343980956653699790678018125825216921539739340828894281937723522355080357440745873610234943965631768036967560436409738187465636346147763375705578378999475099073279437756701497193024745948516833686329415819937746448359702951294057019420614746427789553959893912028918364600850199111042637255674788216225031994220495548664439739800872627451654296058764420674495407773768011998998582751251445464057862701561907771987075089657469774714235235540087456704867242678919741895414759265129525919311782489328837609701345098361365604357319720709552056665659902519263772530972566940100169455945580880001663784779124517331282451239265029584160070230549507964688170661599302456737647855937118281257734526840205512828718156908322564346648504015453942561107799105027019791415657566165860819563709604312600602578711265606829583844789686504342755896714320951576329283057372567806858847209061267703730388845745377686623021368330071197503622516079867636287802230369109684099497249573364155482114046141410902409393128029362358286270975797183319200535056983262132944531212355929935639467422048434763422660629749859099778254387178532082164280446061783239702274410109965253111396904335804197928151989725871258889919256271608636715375606307368790346006669806108088139455098941325678343872896159095684103091918663178212546757301409651409233974649135200426710064858712538537832290770245990623976750597051505217272145284401459999364533812145442247370194674660322746186368309319601216998114823178209503396806379518892378873418096032911933336503873712754261869401057160144416437327742656740343817118290424380080588966800367173492446935111341019559445876640136186007648233953854807574415100029230930930388767459073254725767715674551134154157081504261429094288789439372070168619529515730423726933297265455213087443641545595633047944805525763036113478245497358172077280119177318250576235092242202201627563436168718561935992201467870020274264967324865996256568914251951488645483333143342748007818261058798901597787176797184962781887180352617536372706664748673389505841426261204630914068687409775883868056021672653111092600848563758072072614021244583356319054140694658050479654502336756158965111204445648116370510223856976003748228070850665024406192742806491553672221521831139685780108164245068367176663454707900342165602822681508691925922674475694590119008071543277690463811896734032937391099053947458224149509107588451004689732842571030156548816863073155294207421667817291179309373860776504339550736161216926048661553392848425278632521219907527149630738440185980600590001503662946543005917708023000924779950787455653086709351240318405879257376217981132667228548305269805916024753872264408096891752057086711851363717002458683429412621320088754305557332663521155330613590113078386892667885826188041027674750113695987653468663951744083020756282211796889217888455935737120665961894844189375772454782807891804136378807461805331433144454706758109291434655160917968899530574060121511305018519704885585417913356270255125689896343946740622054520206072682658559594881419938891173387816758797926025935575420338971125341203202149049239153757934418883543986074483149083904611017907581429698888085704725693226656857086344372557735125240514925990400784335910297174989236812573003294107310548952577035461200651156038254519823147723900318795434935959860098935899445595679043956940119635941995038271837610249737544762801183191799162865132827678428104872590757224200124145335060000605011357653826820822880875775214643954789612305809795450571856896500628028107118834890376916747227800143404291220024074911731121834679197820363324737688680805900276791374721075014528671114616434913938196687459406206290412542392687708827896268983485974996009435870434036694850135077955283866428599790455760950046977810394543911136413722079391837434943201401099186229157358354682188478749655553156102198146776255635942499787743018924302395883486260772692012859693008935909008721664297804060791199185259764802169788464105978297570244177289762306952049979685375703286493507346741142870515708425618660115929136257281083454864288816588025533461210465182434022305136361713202608713013189149857244800996932936819553547524613052222616141173644194859070673342131453098699421555792382067458956011831154950676425464220600064432084762692877617331742700880525326670694759954753513342169764839189004002740495335965913920445430239823770712891578475792352144277673003230378274797078685742765689434759498169815324512142512497559895551299538745340367544376570989626134980938530764023700967582819841361334641110228257544629472386478854312042949139172709491438189044163769162649226431685863349853745643320287248017197321855032884109991931731975841797914807547893918748203498469486264920989505551729544523309045882752906923496480217268068471334719549795415245921733811958584356376681174159318008904753349376303400040179597849682208404153000346767503446030919358557435495979656463380751869026386946977361785098446230702575932475400745594696795056038159640254705731340995928866157172619497286545694543101528100436253292622182400597787490540520137847478678469998253211929074670735924663225746451955460669204949159617371161269162602335734982646593871280871716260164943570518136771804395528068875410716727008164126550417109511491645248666797740525860170742579403099884418707488843940820142946254044146692530377137413672961216796672183309451083712252508923520545812404888013015521700079675777100947813857460553677596910916419604117982322039503233197577707080118081705747009150807285964901660934111546786872279613671490925388172452023134975455408574088852755229017525799340451765781942037658773643874084772637407479212297675095203672008137905957529989808964207551468072698810792619531498292080466027059418561869007770177894167090259436894287306708538435235480397530583852116417685513563636866812256794096057476367090604916097274895894263407100857608421806420642010086479562809039256215921570369846076648983015377903918822196637920181831395002551945594288080486158297012161703886779664559198709156932394835304731729285535418326827629928572545926206468881094260426964726889366835338698633165554891964118247628551586949558715004359985893016153496338820459995845626613521125817354750478518712847561050173087069481911467001850403343297347636699390508319876873658589893352083218489884479759136634428918000291914118138068545438567752931994882989257526825979951062670736355131374966030021412347521598102372074064868676257184477351401353154010726772412038210925504643789353172270330958934756688680227603296046371569657408626848417848690042147047906974062072920639365827193420828822872195363748001264315147807503292452468561038573363937202990082320978867868267091372620173087188663059225954611930562258996797467922673664538042070826068635660112505407010966243207735209617553840952515053943268112323953149291646100149969660540670077803872267872929456652693815249809979334856980138224454762026851556429739387912828740254782620858146507835084299013214743912503660661983730656481119709573943273603240165369870971183511976111822944677621235433407234381257029607853819853189366429294459266057000325362579903943759006194815181073408351897713044763554961931548911670905737508785687334170232087299789496641123619374424175540000322301211148881036033681695247528288181044926625617022412767970056443427046295502069699404255849256178410459580108717853886646239350627448204500479800149842144290985286524051981805867605071595484770011456118564277023599026391121620257240804536868894865356335789894888959255140805557662790208179665240897868427971770472583292536260361080626078744194118373199924078367429149596316592419239690529655397977048847467385209363270342994824303636178036887229926819864648367590531660920937163556189964713701042120261686697950361025876198366805279783103068964669079299402056893691640909243017118900032443163973575475829306543156287460654479933618370460996939528265824918653788268752576167044461509005783014301008982351105369922641747224466539383962610106330809312780105920117108550182218740247803403342734967105427737902161963072951732086286379736326353352559922160370265297232634043444690388722126760328127223256655037437627713036725814205870617117375967614845217337714865941703797507830222598402587453037870788248846071179888775878907029175773073697758679580401564270680553592338312219594776893887650921627662714731450915948853890637021491893460740174331025841563814414701894249841424843739318230204196001348624044506041398444635406987682939485424399454521906432365678937498918270380027984960703614433055429373389672668586033913829703209538322256285442553203091117099639848495233276165521038754572114151330666371787977763408545756309908626861241678200362565857350245134903273280549267270896184982875236650270915497128429944596143270891197751437641657546904330041254790649295655321128268349171980859111575314359517823692905096002142271202516540628893955236298412197594773458016994564970891364774208176505956101116202438502549133114343423270657839126756460792043938850317325380982532260585766157653475543374522628963105255663284656160984960717298930915466575849990484926817411888141916589907046844736037028440939552028280925625726178276844122029767038221562112145753138998774459468744555947730218512459547594634694966303898260671631025944011480462311327864014073521892869493705374207845320489466198711978811038249973144616433861816731706079137520067507535286291807926029374239918518809995514492232554563048895836541642248748151001124195593913690957715884488116995280144741011248403119892012735476600867334202094862034524658591645017390268992645351857136743183461471489421088360961986756678479525420307855478964206428919119836630537396657451553808095481175484253143762132251390212585893541886798891275689498817607068900166375464157689844434737781737141188195309879751881479503545083781470685407673436656035358041769580902889669691389083334826150200000383468406720670446891930218281825521175887580136873759377677546992543591916348763906303768767065013205770387636769099092215624972198740350199076269447902282906161777259654295388714738815694047811472297609833868331060516553854808348353895102214927163420096258523753339788155629493805241965959015694468993432017438361199011489990773444240473132674426122633756710411753888117882875404327837077562795075755370240163180134353818344645438759267028755361984664491679933904273204004797154602477854760469992044080167444360815304049392445426472608814062372561312254713154272137556453069312455012538877782367224555877067594963256235216695962942610371805677995099570231202857804924853745400868099924036848848223109581676148519141461340167593655545223078768665932158099860825564517845848983699170791343135591635698835519458465552620648028996343686504626187160878855749074320733236393821624950993453972422347474628009910878945480702005302145375442537518498273214771827059858241142044209100213790341486468387450301134451037372491985243542082062886352021986863337071038425621799600871089557714243383750476250624528172076940906681841200166971013493181492157871434027419855212390035386162680162964831265180996287631610250917641140324329817097423413041597662336623773258016479538542089472208914238276894796112276757378388079497283315621461691034641390318826063207517405217176801313019583233038959382507734829631127098491883041789891802975349897989200247627385553036620043039035926956679021209251394666295600756798026537761875598986000280554471020653848487110020856469273823787755899439275528208384823727445711819680466105002041546528703974383719131734746798517416351649842354674851339658056869048766561167920287457210572377499678991308209956491598484939202911578408535454461537006993142937098374950935738689879732364767604799180546700993776847777269890336515904899930637895200088601069302336290947225940484355126231076494425674615547040975838059829218040490434583367609936230388048360825219252840801375679214686812725390494664790772136418988798716339019399895646908342597088265606799457421011237123202153534102326293225266999484715039054413770230718826293809153021474174898461802954246093679510482039573696549102725966078406678264074048800724697608844327675298635668550461258803525112042221220605912801442943122111031622101400835563276803301539669746628588861379713139049386888848042873634328658067525311645096115205424268138758589000542038879315636446951027924503368173289861449271487928394544405717358853414747195935328458021172774977498026127961768212571845396079149369414175400072529389255595804733945146512910331151582774720149729226200689969699143338758120284035484097435881301687390980680760586167610089891460211134981454909679153404619174386971684137515096803160761465670823413274812335746860549721604738394206896985316405770782121414655843704405750762185978829893969678043393046485667223063746882411767699089229053460634179265164033423240481986999056624571428043499113761743438755522368944857199180307377780077040219410565170138380998186576383754228494227645980844086006320500631994072535217257054849253619706441587806583179965534244779339481692638404962782868619997086587596512527440387841524339031283679465578312005606951691792451066710350494247995669351800802182446532219885762007509752118925971778813102619901389777680403426887273357587074673410093199359439181766942689240447607628966835674264697514762199020362749610164908072628807104879522820425119929625966655481814626336347323911729703689931806445280061799869761666986284557021024987808681698230794567216964192269829193033019373912007403096576923826681799582132626907126932642030421746487128101150691440852047360664901100137562295186593491507245978771800383015488406983092973559323372315991153685099235496507071503606848803336744564902825312170852897907084098416921981838462821120060556498434824789015611136078550650502742740428409443984270820206605193749539810998416039679688534213379666012106465715678535802208305256890545323975148970644802535009154656224170089079564679627793690612932377724516221254956394985189004771015488701897617570943372278258976034024985429505112469220851566034153382448633642404608548385629743793482875862412232292595665334024171691829788255448242683152467787312102394970861003707751351968245398219129226483559029919559995799831419748244452954182643733929670026492568163505698593646273981059100401013834865455567150274788960280472172200696719530181827615972866468856466495758590595203119313908369147573892800246428030753841450946124426907205160650425492918208542619279692611392392917328760083233641603726821959587119788962026316839671331280956768345238566734621753318656270285718349003654413864790826422312294779295034225470920127453308331032977214855194978148318518079987780146378628248120389154003931566739691022227014100119824455953600790315727696801683138459462559021225811867465913482771020774866273489078294426673998690559287575194966241561565896163338908873602996538380870829680723947501151213878270280499207513686013063346041518616695516807408135295660630831581128744311841424139564718607197790911930359336868763887012665175688697060600211767953964292354292752250452954900068320033433610317301112976473619231938856085140521771421563090794398055107217289847650444983209815651542840579278008338343985579842700772516538871215479194883458559154511308626237622829569725203289126289541049777288683914007776727558741226442884975363183990712303332940728990589166347331428343652294353316326462709882316590307873826664037145101927823092617835987618621913892492889526405093067255311425659895660929155168855794767719674139070115675599423171649981016712932493111234206813519048850458426069310484744251903088547961126388434156320778734955768736199708179766714316408054512757067055131508728041322293462706115449469107329828254331524986349637804257439400071954720183245024341628387134662626939393222195395529644145135645233375860222520680928732109501755358216438430401475841999878050314177325511234893518898239351241024551559580733219357458801523240191791265768232812037148374177805868799733952473489295495320201125268639041458985510392465372855666430153081836437614320546213506756029504481334173794527690586895546475168522085313266354725598827015161498365571290348331529478654274185773407679917321240164366374565029672870384898751448282977820721325648999267887677411593458801654069031019742988415502708551026201178470154435145225975129116949948965845210213082783714191898456157269736703782673382890627303460666561247814014363530229824315073324736577039508859897336720577132155864496329508078773245389659004990575838199402897664823886735757677039826567034264158919854868700145301230957697813925775873963049634007427673336685046746203796644572335611491940430943782182868681779815396552311382225083917028663616009872787888748147050955277474507223033348115575394345186206683609842214906273890887764405198249655356771026271076320409829160691154791230361243857267135815502249854458927854285927231223994624503797149082564183372428043404473381702695902981353767887609326757105113163493154963200771814317114552588554251724239668121625497995756653710447832309521472024938988622824218794091939935760858024017127625175721582466261156826346403013643146591905419054932089105884469555164777450205768210673090775785215332043248564338629362641012035780190117444754345490463342738378991206838801921693275857501728080374491582879129236465984102681616419734864098040473457101867813476107472597301941740278540703322422251104766848919058700294597692327858844700720199675383367320321943731938947846351196896490694034617954893172230988785657076836130358902827000999869892934886840574665409726740841042186172482331915846542883387723715041437631232384244672352527133365159569483178822639225734779161876697705611847691548662960952036583631956970137239188782248525468131667771409033847336160558377996412056215170542683791965588791788583653728336376320280383996357225817915726292902952598236957303769719585004437361476677917561801473982987936251340581195635799136849809944125228035225414100369006844850555701699388741024989130497977094012802070101481770326776459189531214692631805456840636345572013885881762590746078318937405196271692934510595393551028246031064957203318427329768513121600964743304543158967523857775635637778878203482211146762838668921072178249321747140396360264198062983328684246963448869843675954684547385375078883136728831861673232646954401674419127201245754733623769087585609417519132388430335405017905460870767369674387000062595763972631217765189787976450233762484786220381140991236481332900145054416788893905187714236062256918050337101616182802025204285545425299683992589278685718743042117558006932384447793901885385211710216723336639349234363597470971541427087614401964665931756117909159054950990819194926720216703725584459921704401130349513746139626018254765053262635793459026229141273480545303159136405777139133759217669692201277500367173139899311081068404808776232321309118634674107201267437598406622487925434422367649527077876519518423056754328665138268668934950633300071332860435600400058970717292116092244232044829819329964962386537260823687882250481953017698845624562054934981489223735435851911114065782553483264814315560036166672262041507301421958487671610174436322139337842338405722870609210126605874159432841340306398823521617841161230424614340864132369214450743955013919347941825101837039075323909259674386669293067601376697572917670747311407730280534774149201475753402832822462510570587756844648838929552598060018303092119802959287523776121007937585000098398001911605416414309993359319030976112571051564200349810472019502625541796267344651178782506305146946563472921796799102382676054002059273061531116827766671657767437847549642742091858047484455883709973567908546704860004385540246508153245151310235735111491772841508201676290102153746576751126665620530350487604971616540637443610312556753060378981688042088849519968728526112798689753557963215911928651999596902374920893223109968961879810915284955865772896839476301596207388441999846278524701025904855384049118189271297419568732016750706250855528602798404175016922831652413221538340098531061460922250222729847983554873096546556501422907866415450042150368627173125583564859431833174108144996644824902984288091584705718794537129813698258566931378922179563754145041980495629974538375102154848027167793558830699539433829981063412910477852147484533818355409636081662251028546689846078297061312453055355869056098273108630106533726059921590828484244114438200230257819935174928432534055517581927461700575043616701134662988907458577278881674834499496495228509738664082492636856397095162810530251780382475005088599127221147692387654324920384624612309861555315491476866046311205850182817527960443422193631952506843866675802961122354847043327409950222899454206879428339138181964911816761816632265109139532694013326288590054914454784284337636702052977567394901828435758236023932548270824761646816312047467835610509608981388489178752268578875757492182732795372918240842077260800005707444385027999397225266294972975497369818932040873999836386797542212210105494945601047218952481024855774014712736328926596726576499059180097278091933053487037759533081567835659893600251989490057138213043742882240709120594790868756532920975930119541114188256878135541150461077485452256416035102917526328841093674475673863270622094411115351350100193094570194902312618037564598909618864180531253045215392177001757340151853806768124218836120505750151401382211683958279471281589892097334236614901819253642092585296983665924324289405525208275901073872628000916438372385144412987762274340552114524405640748111832913002351521758048923056783146105066643338036658648006653181689201965202591157501945591566185711516710154005462511897532658445010873621717053022551981633716297043664388781133058857964358835276127145136999205516545120105983762414801087959917530000145023228821569468951034483349096513370061324738500315761638773771894032172505833771673729329008657047128985352299682074369859876143370685017301246129214434354800826118502721798713992567472721544047147535100814990840443425378415472804317812522752471320448588664447171952353383949823129702892849652632280783121368698964229924248352732591817964503823094459120199793830933167414051862302941183437495976738414761109019103445265984045410974511704280018867582610598916045045191716971466238792633818643640355969584086382341853717982784699472631606222696788162046229762791737856962979654587821272195753114269491857677434484472998517278952196305173676199184970409734136970603080973644946043812840830121527992716094320716123701585261319760444015443727376423580675531842226042091196491365008893615156667339527967755869364744397608228003059406236016758602932588005449540991657814639846404667129256125229969523322140507259129795604101871130079527218723560918271748093561587469589295617461670203244756019191890146075398785348836433328219900072229984765660593820904751662730902207966766023502801766830027962931359101811609874400787082457546055573103803939421412594133093000765679472817689086907999748453622908681492328967934484591262550180826853149741844131650641757660487288884053671503059628144600442047966254445130606890892418570493458854100810735621776981830699553071235719925705251883868849330577735912031858957467196493280172503446280452648210809896471918473207421886492701345514242989217146138011801317545545710654364481439805926500787812631245623818673351783482295753680727391011662474127392105894709171337703219496529643036688873219856633420961434216522850784648601398426476268234801108400173597266225051567579108323329679401513893049603203805919887780145381065072765242596343095414186717171448123085931340724162044255913899291482007512128348683984450610739380560170598005605567523259259369441703651611791771727484624198771817858350729660652648439965448042751164679549774244545935840006427396452707297732055279593200531081376288909866351506305015005833651263213427463888750772834894419913450317760946397258426730480239400014018654331381166647930686263627326540589854907546435106610977340540773708305197126373611938722893520669369568019548860014480915853809458610491304673879633773498569360145249456279899652721493898764783981256500055113069617211122633303110417061035291476208444144599926967715943077986721903373571253861906030556243329174761015066392936162181234211404523718130378841752037565536837902682551194657336714329707166919648922675386231495562286144127165587150213287935254007199251441938617461023823016266967518880824886827720781103752229740606415643325416299614598657612830985265938384660686514488230444520840373009692582966244329012641259473912584878101683121088335772640203152210777356885627238902862805302981545764501926099197109568532449265719841834127077470124353930609498315987778838974982083708991269244970941046471450561885328710387160830653747818808938301952491974551940831986461883316505851719884080683798416463411152209256289543680007239086889164649004178398057137337328673501221490169996265957915811836718906233862747333086805359938510106964661382682724371537261440173106584728872102210362808772995174042560291023104473162831972062814360065015140862984127762120777607392080192825980775784233989884277255283136940798356445045853348596893527877030123552751994406398847830568398066580148181545232487894921955684891597831333011263450933920749859044818500651825341811512846603520406576135550497690754132123876002029313208870922675893372577194985925153375449395020674757781328752206826498042849300859205702695314058072490837537076709174886688789789750026171690786258080236670867379634348857967249622840965304215397847470293623779212972500075783108095068073476507260645565543004927042589962230653367461412167579401968125022775000148207316274902415294226054872791488025299680540239701035649819002080165957857159797038725047722147222291950829511919307996033915728034573847130344731936208152655854955701290855522255554937271239829087808390429558902928516508279795845671452248702318468227631571635985040966441461250445758279083903670353200537454998078849217882166481721818547207534995027235264138243141222424702458207692987279128491554057611225374390148599330641207895034339480106299983492814578071391115897213084762243982823498967543824966190067940174634589941909151079620432196372222743768839960780890916792458593317665166578094935409588865448363137875945325241875802226501544193994748290137736891952075131033518431553831464512989376090360692257867786620607491107850730227990433468725184255910095513161628485538655754047100637771311144304092862685282984233206453964607976987366930905954420538637802226565902450579564028653335176344844472891954196954412437866490817325871276806967500756860356526492342037006952539890629683203138259852103052437286426004668098261729730250666540607025408170842314552122069661115230472649118248813126753753469821733378929375542281128093861308071132704336088261271900676231707330967470259122795408894904649313856921321594252767267405890971992077520214302864584590704608846039072965143393661467803143462086266697694702989886274977740663845647114783980660554184305151098953187640248813584948827093393098084786877460464352905967459104749767048918099886375550502188354933004274284106956857606535353408184922564593264061556178360047256156999012322970819901920701573457079876621611876337926186108626656463249630620054039775289996186887871449939657329706929688613709532778945287790745154663352390229030591854392656753271362191695157559553832648893841094928096096654941372159527430153595834251495037284434070224381408371295167350553742294385448128115953501913664567734544112060435380948598040192598025393402351210058312014818014179746363489893474140385257111019672652099379036932796265756350344261159530603497787546882907357703563076440917292176023530712510625027392908106486379982799232473846895092303454446159925490390999118029109750661959263073833101548921060120474726295256244031466993707348855651169186257543519602887583145053814390443704993843040499177965180630956495705017833965809157005762535712411663768230265937163613817386858577306571817738266345429128756971320744027885388273147810824863055103400390281552678160294413556273253857885716338898101834527583637303075662992255942765673441228336848895258117010513061499770848516245857875565332018231461730606409047756263710735921574550007481522443912079503340142822882619127230258210231074130722024749267448459988030611554460933580846390699682332014885667701278844371064016647189712631840700730062305095290495027301855360065295925715804965582682930761820947819570192400425975898555145810830887014717384781003721245118543891809006603424975112683039557934715629944020244779477085186404963864649665322904151981706509147417219099717675481762064857103886469444505089911367773780362005718386971237507330942220566545298425993091862818579178479684452675362919025483909989561458912116347697768777494222332655213030861705629783204885083506098676155812716365478942479622045583630278102723915499385451487175459858920728823135885901749024873437679576712113244677959157334345950106198064377476128371435044853047445278756691034420873937588568806958886054588206567984480825572902498590643492091538043323794178240918471900945378086489387800777639676196012835184381173759239121839846349056958040832578564226034702678269218819786551134852964733716951772396831512305610040174544162007760618273170767417495432464272393328738675114458410369446440780005432107221999889970991699984331604760377459016883366655469786597309847609846254670495006973882019444892280642228892412422988064986900282704986364940692574519663191396481001425061357333956971787240089581971284735015140269090414528823035964111080259260757197100831230332397560357251822400328620678112000191009184512720764048608474256124444996747053881831764511639357425852556765928105211661119268244185408247144858405416646784698012627089232616994649210575176131797150966790147394122871676290089887691599438790881668202195873201794648881161782257354120079191103999446877828164072553137970962883318551613587130817008918511327637854414888381607528630146144943675897306393004852058922432807832828576373802082277792693811825205660746745018977419673942703534517234911724525772831822796365427515782445465373772289761565634608700342609378145314585750804895770614003475510528083050308407208040778772716832898522284458643734755067826868383675066863054316911696652661601422904508907530391997275614408675126783781293930039717927383945348061845839246141486111621390385944510987629808785307838574704741491620657625152680647159935936467194619213617581798922901496307949782954183646956130105310538536308120496558911557413076022476535414966610708934331214275202839166433626357876290311589291016522395267367351582994323154509307365261443815664562371348950760416040414690095329794850749857126025614391752634081686037900229828194340430861682831857324558675773485559597216267585122074218508306647168096606616743791221227658698435015930746551718689359330245898887257155628725888158636885089630844404646432071261306479360463210870703781507755235594260418615206707281044347448424392960734765542806619847413145048395856560787286539006554361959588242478700931153330794364162466393330290001682647936048236913334765821340342345409418536802885369280402899276201867481413097693031705969933212865567356884537450246126689722328463455550871557412671552034490003906477150749790964176676071981899892046735652432891087399065888178846413990672737459031924745152255355625736668467256080446113109684598892128594784156270703323156936842251003556507859356122471432085130179866426036812020215327585509460821889214988286630722867678366734357084415598101696129611095944576431286828679366750523931359378769470204994519332362867067170530736964922400047155905447769794904114871373381660824911180220782226303560794593151033888710563168595826860686343493405076736260525134320212392270751463611605317921898545797835114274828290519145772546278458856500626256871702998973240370595514457295432120051557702618263378010154576965346889834039367149358331526642863879792783340868530655845653567455606586004839261814243764620955358522482752712465575936101009229730310357030331435197697045952036591079505335239902913179991129764280293294377921433778345111276052159394092911832258904582137485181407440931705892459974533557305808543203641731949628408821662771327733685022139667484417057456860624883125439081598678717687755018458828709141371265164768474974227450021186272577990923722767297422098356994166827458860143509177917761891769440018649310272080045211692470054336995841997316857061333543706184990569051233904984013439772191075588320648423533499065699315603450332604592793264451909224131549005570567840887191662859057435194370249536781663275418292585242772316622505372499446238946917751919854025274706092810119658159688418075153044047897369121948168771595261572072534514333048729537611972220795049662763896952112844821378019422509019347385490511095187360647240248703942865630315057580327807742248455439645996159841732949327165512376725480216246302851410215418201013783531014802381052519492970867188922553072564980816852962275609834660772975894210354722428432922729841091891739364892742883825196993005933963867503433989112161670796288077125989463083312888327117825965673082852057296239455801028335598487943342223645072437374833023653271878962716725332859123674632504759371239545323029376599582548388419828170334544383678579375116591469770530385242034877599891315612483113326377904974997148083332384882982186028886937904274313223278147063250975033894645164487053896452243339612051025603437769827817663775797395963405548795132950152500651865488160767530384555010819646928324253046193793668924418895735524859189219667644181836938828160187499819280800892961684977083471400523906729027659660018179948339908273949255479706188450218245303262071589626357157927567808721737065452033137385628437598397441633234077416337621740605531132319430225225148346430035364469864479930940201836705000056506213928476312932719879676303967759228235585528853252566824694228692309351840890400841279676623757500609909231946820990152128654381633084498762802092421908393421175458418341799798051213690100665395977994683932915285496269602257498847510576963632640263724528918694168960625126566012537089645610465603876994821449739210304908517236790395511100070159405396337623422171020421035347253884097214521509805493567492823743329968858688691450628330599735463776517132586180866281301922424521352533402864552379473477063104103000192995488309031174389791558166321415390356067225249343431072643005743031786631011028878571936110045864719984591264642129703554187553909345187738929616448744359555683809236379109921755308564484605052244561915348365401927600847390889246453706345697818726308406884680427083262152538402543644240704056148985357461454291298133265094801468479697199371807066240485887237998288851516644262749603096391999768181293090325017358706277259417606643654336145322679065497206656501229856490537068303696213716101195631744015298186824704033254967698801565037655616958319755439779449531749068785381327050502297813595851804819604019384761011803766144072392065945421533916163571294531615680499714296389556278173592376112947944538258882898242154851545163203473524155269594781640580249159226020957811648803995523815261929118621476133004147570261434527808879415259398591537778953858278026679207194580241410370838129239872428085746091930274195013629909118629380114953440536263089297033971353496399681958031377233456757562618554975718886871662809975230774940013370313540647121878877739609816035823175107744262854991180403857443554428171475907893655630514343771838906623809680448160347906808237027261145455639585155798518300701851705253637089801061580805204485680892066711967343163108816786426335058488772771710901262195491576695697567193108273001755000477511926144490876257395072024739831018271694179141807633347079775349088411565152237414803978283927904004989810264704729604847707041323526980366981613339291410887715732356998052446939772488552551053164067781945110060793376063601408823905240156602886530079255229879221290894248781563379631216123449830183826101432802842939972310357238833879198338522882488322991112268663105573228953689537850331732051524005775601663690686973810598383135336921871369039363506495315900434741450786844175947522630347245356118695642767540277138199791873994310690562516696456200447442994577963613217450635130926963850013847415964944383445969146800281403329028873557432033435108423684127728840046990779680658079796209425031937930175962529431192025125043187146189299819484966380469576132048051392356297383641245908763686804872042881553320415160554465560672580861600416156491722850261502975293273274116779607125378242863160029121853240164791971675819872283976799912431934714367075449923743069120750404710968194500779003460104330891245909689900829539923677773504647162604418011340419739972933174445977932908796398753794447863416629813135021229767055347985429360032018226663068727266601617464157331433892384472099451874390484819034995578131708726457849160484971700578971276407344491767183039158574119373062958043620001995224943620262734662123229963476532409795612062606576137188016546078885816738312411184669632700178009155332832565646424503449476797798343132382768968339549377167312254470024171973972108448985905608941248983328269191739259121121346335609294350283837643195153607378540694888518965232136673164005208709575753089115905460541892682020709892460671370336207961584391852475963182038025701305308925892625153714853460372298020570370636672124992567737552879950576033674718075300906903784629838542914516445424808678781643579569552962407047582967700399051053515702868787495207440066876397959431943943407540355537525234853002657757926689554419100259435372024381214487267141511812969174324717028936414008884942456839549650286152971031802416921843294392699967893277248908946304339493703484548609227785957940641273269446608032158176816976774928377211439824746543818835933831010387700099239941248542562490428170753746731268282179487709933108779428803610584149574999127267337181715310574004436341224591560295986823588370790568441351971886293986807371243929725483674184371619577910314545654440120649913260201315128614178246421253354493626666524363582113753415273591597907326669248506579557146557526744186108417314584321248429591973604595734609504421151516079553121523410554866631368164689306989896097120667056068843485164959741738211945072467266288907536048640082638067855787343951731023960577854325317961211862670457614731271453734304544209635334920488041909502789130149828674532900624202253332636560242075385230028983178750255416658337994428085876819929113435003558129059014674494127302241680720485393107185295815188548565179318318456742835049671731513600713807692531902454235107196967004103038949422802301634987755965600091823346803832079617592161610670050791155894968535246081524425111772014038803420295256443517740979834214313592602216685063612212578803543638714984590327615825516504357580361878962670338080655247670372124702462576052953236178220056131178511942075702232915350201952139322029923150293308233514297060346316229027419704719809815128386739704069037109670001706270842003300044400566193105012389216375471202000600838330343932113468458744172227328777232280571056888128510974468558211509505742940888247194223726506182325849503367885271665543516337218398069632526527902083418243600357949441791412336544933395082098211805668020229293101505006928125691363380635736976748637950466400213137355659293992652464397839557513039568192824243905541585805104556444757867232467735000986928351664555224305233251058826245139968290614250275253109909809557186213523920213868473999533016186268326080916464196450820408096795175893022570092356993453769838206791223481456674406321525851793124635724903825897884807452606924729944206351939084776688103193675803783559109602424969646891613942384450825443525343267540565244148859385620983042005709418036472896361587174511270826510319989639179950783772094818407770538211849207914574098857703846803507419700377453122023813592023007998084977537179136730153194324685724040274651308954544885023489833170525443661978066805169197789264346701202030005698933150510115362549762552985264026597032433893764249241543034011419964525282977466839244047293846562386482077369716076189692427190665955096979392689959109182805853604575227836086251874679227142135381782566083993463758040431505305586652475225279893314809581508821690915966916544439822771426292249115913597216862121948514380105369666844156259410942344227192320130322488041321907639745131453926094098746572844780331992417021095068467597351255247908865366838464984937271759624090445036102949397744532977416099446216736332229123798940677726506798570086301237330750300561440409080276972680502586055561971884010133165003380374091141154239676977236427274554880461811660907932325109312097021031396154317198926591265546860077709895604443068433465117692923364068407623345101070267022436934559922558525262189473044624118160300990385504432706799581793452884422515604442827268357350207726801530257102075256755517973977450159575138432049402114198300762240054545275489238482964593235817564496151410702321898725212557853197961126388878715199759356692360869665286314330712287023155928062555074063125650734036792234354081736394865870809343308540827302470275688317299766764109009358613581019239932127560100599638256663025278837553971999340153266074829842870688753303018782930719202384489127275654900230736647515587518585511887451655658266365392883948851921152195007263686611839066772738774834363010228913787847701992423236516436121233886604228482589707037940910507512174659186259786654023322357809724267313239814074426541517523507741561888182495611869800286993749829759687737690274263421659234625982598578296304936583641802968378515661264755892197015423815112315943130652346883683903410003145515377655294881197987297877988638438165276989961602175232867281100490219718216962926475821677307794718396120933670325649652300695898452252399816508333894603070591309624685738236602896868143123658561755743942088601045212254499599980342289944481439395491345535804268899428307727533800619227282546073071364537747677566350203805725250272061484294226623030386971466418627370204989368848908671924955009752117851026249089482469820446622096096443855792357191780897182411195508675302720445095170101922350499337929998839549698918733963424976784789870305989506553854204121897763584443336830476543499101000969670409309430682230773343709962631280800481931895628472918188245872134997387537244268528023559977980905155797002698332941976728640084725301688357873706924905149378522448774820677188401854346024906430958506924186979510705344331931683947481417809531948603025657433707541143620383056105912793291214278861820047467110886995332132831749978919261144817564714872485344366399506077316192797195428519745648271373830615943125961187989438169168802973557711471192157879682756631327813278192982236315106225451298276917048084019479285491680226234303653517953674379554946491780098969442763761131826407879925612124870431132312858512296246377411758488649480085551091795134450183961995025053115929982184257402334311221716644873426997337377530455202307564935547985349445443393705402061209133344690412560909449715546789179132594196452138533313356394737693280127094421805843550863532267725469062220542421862533346971124510392051741572119593925102624643933543452656193779094702573034600773553152315157808724734306376650717672853266533819572791209462254830539778675013634156891640528208046108852015610574943626676237027065657278500130361456943744173156335578713224089257633486477482096760847498888251486993881075504622606761067605877783279802745264051598266427138326840884295806136848307926387291072795889396906459385024554130235184143986134019778112813259675484274311124549407013740863476900754772912101564617614196380647597415443627394708096236278519849514360039014274690778039419823733676968379698458238225642105912419750555686042723106777810319907664029218967980904423568455886175946611098325825272291587495473339578539812275263247581738251552078466591172305189586321955762787436949049131765518605429517418325413482377994108178302952068411043653829333742882003466887420242197088385369287127852214092137682439200914128541626780570710371173785710190781481969638412695455423564921015274889874727141664269471387401658090933934221829921088069616481696736113108654893018168205537484107627902252134152220134419239731474065684658650150063857031238988538948303652738385787424007387936658682136049884724309343061897148762942153573336074955854952859411588956603739471473081252597339928423599396886856197017891895171545327834986453229349502538359019438020445623369886312589423843026033704858195430212136144429478290412208082290986212849949383019553358092393394969524279961669615779805593829864813278624785450351981078424096819085458237693493159415951922256668745776543965166992127159789225048935118142206615891141717790350670683309671964570268262579213602326433844380615878945580286506605932455759142147604188293537462126227383715042975268950782452562490897053111933211478147462775867765025121836400733556326371057442036737403202127732195298067378206700466267496455907486736233787383316913451559290886637726245186718659363731465562605764532869621390255285115881307504144970672919890642448625162265975982908291281468811304928867103162504718288428327652727910110096030530970868656329220302016845003641038353590383946566891321345136845365194503727632901677506531076498886199647720978427320492130622868969171229643440516854578031337577997822454880810683456534904653395066602623544223499456607643537690485092858951841779283164090264139882330909814153776908009818307323835316533393132927804827780756912175118619435537496805625407525587490009285577885352195776015972217583681438690748025150845070264480972597473329839227741831079777177289441350388858350403943552191262311909421014117711218414171318272006226097076826808940262486926243431437075476974230326655975275887392542631712837704224242208512074046083415269676452588054392425976469944244567956755503640512198032927648907422857133137265747738273995107069400149820371482655489263620591542737250765653093323208007846987080014455456806645472842907083943000596624680882921112971320407381260051193742999495779790833788934745976984014217368290852474290809681172449028827538614620155316839872822048686604981818162133440390939142451750094180293161084110032777373661464314141088190466377999634156930281803789392671510517114601150420006417894606034222769322337428110765202254090733423262477713162665661178022689514665785604953906657246574551928806681862730431648496784142409147128107140977257033875878971782074828943051997404826983845477570000802755596968510300300038521813429535506307561582037098937378478612844841364980188705086142793395253360739396496482557764643931484897801415547022714382292385033878811064536477933754873309568344305060391931536405328227169022448874110071140799749855469119280265892974970411360808211630829794680426162124143790242361988155519965960678074906728752326507203880995364525541581802053301489537108457688627527672429131690554194227159918697251839130321116739125255807769552696105018089564222651159447177111577192477874828323181701122807893306245334618684584309300394570750062799380172278466487701918366750776037600649071545843160709592790009944952623181552492455919539237101055317933993815679501829793543684786237424808990347576803849492276484961086436457285672679896583521428862042567778179768302350865606591770194207919286710051241482311841095857319273987660340015613134825685645249518247424876711149564899266277091537028981112669077031964037553159744375546944829388548545593524226061716309114971565856145781684138941374918953568526731403859505212464337063418432317889573107140627790525084203158343968004575438842953281366700011083798364088068436706892050442305193409472644449769982772491379544793315877598239872167802762049195114792120382511529329074539997527908047071927424076665414577669637501616912981944621078676684155235811329630637423166057406291053628241472816676481703277700529699085310199712303959909172051435445051225352586252763442501995625904464387206653784192151351033254227382636923554742752205246283853020999190030757161085113670483339434175981116515131537942941948709317358470643673880622048051826209786837877748867016916283693029188592890264574009110322049630754240519313890965590318847472801663759569586232171350558175412728927525565704610425046554612556310066206931452531588668904958517593300211078040707070066221832050288872218002141353422839344947997701844517568473751342265081890451118754288988808329500868497932753278075201257622632310154918280557972385775676984696282629464379633889284864080555368014742092512180609461203560168901595871493648073368674637371225303337595442542427149911971048872060449114637168368262294872724842284821955938610449079472061068616234189267327801263478806515236605326840935816916353474276615364189941368092992087165440631997447583200867049627180080812161374783643697464262821112740868554253965988606371907902727724770356401419324394320808954455487021995133530352826332085663501952180845496751614185009151477015166473862027234143442708468536394469978731122776059244453250990783981423058860720091735270804192496102893559795720652269605091091079093853872674984864450760931143838533147175098918269109560365373774043579414414498618063936923343962307652545950256535115184722469231759094305582972774339584951229312254131776625663568785694660937146466278069408725473912414222971551299848261026284304083349647592774882140799072686533284002749690170114519886090616854437209725434876784670375360964103020040513614343987673762235659887380918494820929187104041230533594134403019235761868293339834173079229803399626366748331671277476339104015047319327172537607940952875079606469959154858623227520978044150968205213123688288943751410713904912174855894825498234738612926975102291042020662607917129140852088579444018237281773058705554052492873438280025028218021370445351544379253514773151366840047182098543479576553991010776589416102262229793657743686068260470677092893523306525058844745667364663288959475560460870868638400347578471918785237818670492444046089779051245848370580187002470067079898111851204352089612587857684420992617049477779471588644711167049753277017652985144148312095390127203719632015682465646017966886166624489009586250042467870857270197424112275028769565434877965694873057676768434454792071324165648732533143458150399630865741531006155737713360659978547532057131026606910002222043828662609925079571281270167241529780561946173735791907930229443334546182302012722093893929108260132834302567666316710430528670878878132019553638814657439388623596733276431984080216213433139715314061217373442868307028771710715576175984412846859226784180322302856680309913542025114477711593958906496295359118363620376237343321033392610923309901646869329165440051035158043895642953822036094191003504112941913725980028899178874772593544623678733804851080935688381752349881656452144891915822115173470125777230704297268029655935283095526596724029884326139262907351328899073098542509496735041223842358920038370431579451869509450681674052981733207275252741512750504528662224020662101768629679252733729881086315345908021993967810710134049883605061333114127832763297308059415921646520292071706114355563752869844798132322131128772980384913197350445987099795731633269953702599781154716512342049890731642919845769359875858762374390258367709362288795492141655523963493655465142885898999135595033695581314091958606790269275178789345070700933369810317925361584167195347735172191259663871781142820894495285072920090749345401897647629193607741841955937139096245930206900496913984400283202890692969462344273916001088124020474865844572602287729171311372922166164803345385117670136771261292969686444794070229828019902949995122944672266759121251476910511766600440311504135792382189662970340876226283476934924243768451610266990187251282873185535753701015452158379513843306681039627039682783878919552509003922703881177671113558460354325562674967062081333657524455930700122560571242883168832863545711085919545020504231374777791169259229846647628783998519428224304363737432073132321321609197574003776734093288008836560553592646151883368722849958896290112375732638284363495233498720954463326890597231628578858583975699882952167668045091609230589642365657982074948249575896076927543465689937328777514935966021286605442412307460069107719454642849248499674025080909002629074428807831932747204968971601377512492127400146280166778733669406388246080186490565253116556921887417310862490330964479963822772762065804942239542732091874511599186209174334391992511681890963727226604130994346656160348415380654635927548983133382579306209987175182181446434067084641519606531778080257228071065201684789276200978438951729196005832926213662565399608360774351173344603014193650546860137305346354400353529107119962745198263905432020566352236781523994110505509905173163856911556880847174244458915647721704797580163139728287523908308113570015842618340494993978914772800082256443095713358709173409793603421626887271306505024175543106177020367037160187488768143625894575930219399060396321006342746946566438626563152738235305435251677836972861319077591294244666093814413077680374131970629083488713858021851993281610150794512368048359735707062021755581396665596535996516837952552323492053044519019229996915444188487138807078908407839336121428778317702096388329733359564066348645452856750707720150970221306990994970710181651800580978274974411771056070078658253000640748179784196101444531802096323303736219927742590639984084577219570143232239192390821147506855584822150960659096860354325065422111682592912523731291849378759667489647439839317087940790935153664297549371249777158215565860031132948808443015870197373271741305274593260839580669978507741292929382777699066089920760551942850196459387353877419530113052467704920627835773685190080473870951532188629474348268427953927415150168657570584579180950009275431759886930490853535951338067500686555778023603447448894735292352186683477549528908716628546673376337578393881331362852878321295399515779907892944353079466781524608956843810045002887130705674175682827714447952218228925487195994262685337548643148632605351481421390629730278301154413355588100576677430468434647056242959903351278249111188952727489835188665554940158679086473080350297477782710081537709317105869724461099349935856493977301784271136962718803225567715526831103438340078168808985429312027284416469863997320053890782972649664879668145920192660538468705064259374057684487333815414694710415057027054395461249476118332411609791135487661797768103622662712404873360807312566968914931848989714316211028306180562384114850457812434224055094299434301343954469627265763279626317809817627214818402003056903160605002172467650403917161467909595956150524297734295229103279496223791755707448448538508164510844937217940091331821381321684289589610413855108800504549783351860800857625933326386991773896564328558516643588919368648056822919669693821045975754821430789619941556197283855606399680485645803838743825193644000157550465305157515188957312530351946024452452892654615624371199422214186088014941308193619325442356044798459249937207503822980479930717109664717442336975470981836002801593530576271581653460226469978487156009194805549517651189087492049779333954158762023082519436241567480583253685111790718368253136762650131203639978869969568622649412399287376806926985534893095306134446098421300301218418802772731829738575731464975581490712266163098620525741875571629010053506300347730593979091897053486204859961393080245932421866206861493086883787058531816462879917136098847664115609729803644673531245647127285311760651130893192767787015052995465180192082120540732390738814652914295372893495123739350954685064120513557432801630399924639047389585298286458737921694354698586303637162679198529559127138033975498398038777252197827685504800801142905399056343662683896541212386826641817147415713092206201771130497482075267924394891627092556220527065176715455850796704176828404407548353677409628343779106510225324963245056659935918413591024414034725764214126291798149129032732224642425809463947556670568627446002923090835625879402224448941998756470533397309379086970555309559640967712303786855803641860095530949105976018503555956246805571059589814978463914202023677964768497375655010511996216054846060139462661671917778142779636262572993975854923597827902134331172445561550800963398870294365459533302690465190654483053037649875226557542162982686283151154308940554153260071908115464137329067411693756745917653625267579708043488883730560110237620898100284541565956518446279961422820480809685406916462545467538791064343070489111916453421349742628443463774288427483916192123281800481949259317135930229958379181823692505187064141491728963802789954591279777814665011725877190345726924584585110483103764970838049815078239010928969085785496929614977895879938762563050186910842691800875676261975643607720552414589828122103645700803184848886175295333880999996353756404404509761913924392224033616142186908547566559097786709886786571407995336804208153296140925495111167986761638855598930054830780369380057923241909693940969494688312443218551210616783570949774516294858507004907848864023696188122432928254174311065680719253667867912234436835223633525754958053767218560916265568762694032253872135767675721441730185702983442009726168844596718124019348903033881499328372431026884179231769037260603986826045465840264217653841862925182410648222685546518708641972089525812306759629903165275749862569681032171536164980440818667383616090680751827825116043913120560630763825403780649360737504775037911230806488876363234601905001993792026085461630049034138547756781848594940226803217467890310448280043205373201922339544377121615870547318816519397349647024710201035671907478489851722176795685180982451671399920234077928753961203120048530903059223397115528571653557892656708179947177166867375741154809611869023545063670458647069505395021542033546540962945210772132723765842640620829737036346762495477986252321109323629448801115005852626019441115948114891585073679681904537117684154501961216494012221323662514883970463222299182975903797030423579825599706063088028331192149786203212627732569245907343762613536714139526380598384619042053672983091264777866624465590505784425045036816200717407178843737614390439629059403567879013545622328992871500387031100602311888248903464951907592659828862738099269025716832056240730096064321517762860800065945628900941303537609300542169062430435265247171536658387233917176618026391506275794224681714486554807769360082973825223928837877279564612475216205359644416194580355627029327418484403322281843988627383417341028768490766443163266652863640749772971233285954448017449710680282861248416252848992024665448177867473701833228844602918946432744240826186544522871012180704517973399560585784628015613382546303182761568562574095514214254823345089718408437335270246848956237059121439617840617284180762230240931112984086598971733738345672565248820750769541928911866176674901630229024780182481289733565524817031340529794166912503500083555650173238918383574267281866278236494260653652004762797967823765982100503807197922696496065188038305719631238882495246793234470889083917138715053668658288822183454911537212710352078149492496786067799092876181623785606443741882566700925863484992161509522356913285345889546077743707803709121916222926052864968037833157021194537390687497272209420431932072106643716226473656507762086342780814543833918597856728489413935990847279254592326707011746307752968074820085552334749557939981625178922840714957131594972486804135749167679392167375957493728340499181616526162653174748150644605863997755920367098376195508142877990376366206634286333645966076755583648777308818039535861853519461775944141196201666864525970570779124044049583985724780171351208516223267492376629399075036892639172530726359049692172331593211892325795311484158524164050007710381935088293489771356841411417650381203717658516504140812396910153831670367350562176920568964063037192527395485713014216077849245932731223573042921483558835606699426271431707836345015057029526083790779827708336415024445974980624636169918477347639133034533865457807211860224761687883911689864536788904889174105411455482153514419973931892927777013665058977791986904597581263409343496134774753584113708106323352295100531616708975644872324650402086195358800782783012435038528849587045504748388294001211606378453015248771406498595685562104783161727118688750178711361077661786308383888886822712491850146111733119198602639781639726919356685044062712892627363598517662168612226090371879411505161063310786740406791097332566814289992463274900960484235614942608008886439332496141525035477494912538640529900977242440761398630891100215313213371197982892123760243019734417466510614815858387052820510134326236054144144900476320759091565439657332887917196885989869573152127995673933673661696441818562700662587609860232188519485395080295433975905568921721061216710830277822677049991546109693919778592918899295306336257971043138065788571393945175110121134102497008666170037339175118739655145411695448754548166954200145637205003319107913189978030930270553613251276753751299245098712739572025664175237632634302542955146321567287252405566886704400029593178438025413526794329861497106432458656104048619977118715473373506452308349479300112015499616683673081167600508592811332647663252156377200306779964910848751509687997384015542224699871718421009659042500150922012775919069090409981701057532840894548536857719440502258234586165582698555632082392492147653358138378175498598561250703586631661381116925012829917652218496633119058891432977218441320757620080356250711518346038937184914337798792684245181496469478753337994139051126681719300463065030484576364078063687624712479133285307494321186827078952989704156414180758196570671858883452981583396668287516392137193181303355793283177558568802341747544960041712824520731918924160171475269073230739409592211344633851021738951308624876624280902706795567931713506280853762496686521936751361795538528727254364427744854216865116461352199449742752475101730395059828153230198831351044517350477554914228728453842457938976423697840104257014143351879877263439526376209454750323568455807862229773915562828287518294530615977458824639776772320931132719989080344452322608228103771754431781845960747270324291963148202853057172412545924397883437351471366187033716511940397280325805426187178465791695025513514344014146141576680906456703590639530871663092076127538339245176778243663264641602753690569975702772392832781373461310045201451210952638589506790517397022273617811565972574676458897794726008494745135763047827278430687366007056169909599385381248356575751310446465010565208852354353878034808091646141579436466017396428372495822568102236618169364556260346381865638319063608454225264693747938369512139923962096754766442421184259798712068447810942301475437380301941291608192092893482505887730773687359739463649328438457725253641851040593500762667860309741856360965758006133392600319239956896028065230870506502738268963870094022481052536911079666926044761023264538454738181040969358374297473116874582895536722361364525530750694146957694894929070574225495362158877144445404804172010869293165064004722995198060013896256845431359803673382951567194442393548393444760084034238844362228028913484505115438508472261481154759032520228154563785989514663866196659389035820082748528728753781068316204337476721231271308100347073151465108138044590654584406605362115341942570360661014372760696906961813107753094961207315119677703611690917306154663916605404299831272819400793239098952348211017679119294732211391322865234525268262611941636292534815246389344994332745240556882064403195911635092559710217182343960705891905697567167694170692211595018267374775454315215165181584069724402005613077114546524308113071214186048268119158859353530386549679751383861006296803236426298457607641399740754596105819491716052140994410269915379975102628367911573236176870737622800449585426459925010518731606753814011878851603680704760224959919778993891183970108881208800885974405915763690377392879819539614814562612910052455017389943940089819358222687583177907692122979130788331007436884315018421485399913970342395037059579422373549975881201397947281446575697135772432893999597754521473906522829376236186054640398551935489487774954187235081374945397825787948649832964119063392301418683746865552144760200645696986651428646972403406750162714115866503570873665319734094758052491826492553550275479005749499569587335601446893347077100542452892169656255982441412656657518286517154465081408103345462699094531284215124467076566696487063162253613663038007375737881824169480494569055382666754840727790151787509960852374100776167636576761621480381673530468237743218072296098052244524958208989398088206612378509393436490245132249472371564615201267823936524655531487455791937779968986576202615515883506320141962285375186997370865659542175835932521970294278591305137134432241933121455800773241640583095593106529712902833851047461630394137983107799905118969345176781138960945280040048705105988852959910201693492088326693227080678095869089175693502877370957268115770082171380653849014529810558782139064222943261835351949517906683910165944622348272337106264707015990245867037441427291400265381253548078116822599578784724598620015604460373657800017174387750597735982726611155267226696232043514056146733746518741602327959959145001507992695096300764318308488826168229995682286740562375815845257751094105977201732474417008252735406620771547648343669818493227690774341178078631413693211000327396268617801590039020014727328840526156807992815306917195884341738715871230054300519142043099588460478499007663704596620833794957557737063512256186573377132222340534045424101169502175592109924167528877674774973711261490370027646931447724372042869376139297874353574729885385766172855194878346609706552136937388540421302873759407353262401626080224111169784453282059920216414812399311826241412639598067748742526407120025376138711285766061936182389134344071559876365692516562169708177284709370361606489489241186067001061542900303487174692665689888385260025446068597709692467678819238221547057637550391416728185636524484551473965549483649180482179695223318440997090206771802202516746152016662316191624787824420667897891224064159899699959373450252056577115898419128815380296997044694787629422837034701841778190886758735699061075769438795030720787468111451203266471400210273383170925198463300115588036851711486402574091042259536155486591576201217361780176908490398240483589185191378335275782889950858878909822829677598052315125375033819096329103095931914111054454229241648097985975002663856291619459143467162940778679205075558001102967664900271982040604014412828625949011534112882338516524537301031652001731276810483910329170136830091334537284998740121057635347353654703606076628589507487740580031139478296563569186923124815081090346898217745359984080118910211295760870558887480666002895018796094626378266131992556511590047355489676701420247984953814418580946059627909141971865886370147267724598362424904994685701270160633990508434590892274776900942115621772082914255246462422459842069357236630452692470102306493721880456841617842112864123814214786316323703020250689648633024575819276305329203708861370116832828488596977296657197054024023490942234123019410310631907254602371919668754327341595773997565962375659126600930891796148911337855365243360368474337727786760044098154589041887791760079943051994322426876184674099861363559403325831227977179696938653652234389484473848300069984701665631245184287310015200509042695442768023697980827930757641790283563983040225946066370274720558318117826744174654084455260570764639422676597976560721414059578287721352922252093842292893394394835961598209995073721953202685186719964411183521483937890784612746968938899031690793216051458290686637127745960536584810279532839468459188635213169295565003197387674467085432654532968718065861866094633402116503783016985508224314653274920276821527322698092081154506368232110762493735527925320699470117700836447725270729938208230823749507208542407989009316773172973033734894088947415153410337533281012382375504710595119565781095780877821565508486618332859455572203065624408123080988325322290488175797177766914094382285878396074195672240589566125588231120750042009429351159275464254068781744580707526043708709410829325808669574105762066735141907364066558677065981573535341133617104094193614278020212495683007617203011991918881565151245968986780616487930182689367669167075581367453335820681817895215482982244827705046507253609619964856538423710121718514774492231030658101709522237813779079984582064852002071472054229242005068837966822177984551312985842742983491114021050458049153930982273187576160995925521173810634699650671912927472929568655686202642513830496130244936130106329854339228254963397318097720853486893606810333101187191831262995976854140665146622060780130304156611736695986841925660814157533521254397569227151599237367386625039002576407171886944592215385172538195208246752620705807847055152515024948503460604185313770638272506936301456430761365722360592197360385557869414898307298317052408699280221121370285451624736571495648001315723462892885304629252033455109460681996432012714910021289656357760806084335856965921695443876161566819023947504354891953059998494838948084158701150373069963995417662109400646952956875064424073152707666365578284623596705944882710545259956307512473186807076943463698314249889044697096033860959018640317340911010981095953385698932830487370394933949692277306598209198563940614022345637753426018226425989467287982209497683581122070200695425245455935253399054018170494658621765891985605495965018622817830094501578324004722737420131629884513300947016887397239258197113007576492801391577819600700387125659720137170960818102305015486258145378616267566970555178447349689699661318531840031999551729223438129462087037754940228382616905960011133793843299881926625875679160294855609571954418563767427781916998558957582198011556954735422315508503185581078642684581024134964012080646922788279867554591910024981752890389666696764382579545260598897402518322116183478339840862422832110572521262519720176328934253929718671052045176548092087797015309607585295001545465486837025089897772237214866479482635628837136108809896757305268796615522671026357055925708944307633436522523708387650790936693576566885073327154821848771575389081620764963696730745988025266542502036897017097925895845398574830069160844779819869345547020974406034479258338989473185798090482416393228971053140409006456115967156729042957299755277915680284991869296845560844254120914452188806709289208515658037255349119467438393473128527045075593686048884447811433611747873166293623192743099343684683972509379129112632147140765123629140066150219899427303851396405021211473244966442389053728412868538052890956230676235944060786294163847531604399607047909561648536741777022446391952629955570914781827316799525233432434006189565376919101797691531433492389496710136597417800034058380743591924317171650573754841705037857573878933842298413042052895299267158218679067331798636073925619421563839797501770215108565148815454020737112452283505274307486420465953985614728224722034431095942251775657543459208036463936557051052828742978236641089035460759235904900371848670634738029304837345924976907778776117784849424474036761956271000023438620726220061271010144477868466818656854057411831095859901591071269738424145872099709721229854761660433898890958725603336493475124744987470759176317998132311583950625104709813096036919650561501654455990461097917236611988125512297963218279182049824941461853097988837991211799184592976397334428429327271686863725869036501763140307409020616458479682150934113878551631033563787220680804412887275723927101205042865669226463409019938516098195717954872668912505259818383997042214967811064506026459017269385309753702177077194206644574383252791794642488686081966170036978348914989002462712664988942206660141749175344326737084767733206629153650609800491845974837121226795044313434030616439025976434088973778098049106975426604463693900399413859133803620114535978872123240490382943465822990936489734813452158580886868609842577598786680278606366573488471630998964189814765685738607747572382282020130379367692003911357506369920904380516414525937752273730708882237374068779068429301344683685097231027558216738663019936562800683439646379884498477068625839001263016871441796764612028218710011895262218824369856128156184752652685663075958988771903153365703673109891554270977296835734983359454561526797746299658416630575777201894550916105134338092752635905984702077065047808773400585307070475980826040588981313775541243553857087443295072507212495911970257864305095074863570091031860040138660850967916512698082367547607796109362811637985304408985514548135580275385610067750476019651768571278343007985181799577059125761511644900457093737260196936308138997274996193697505436237955627830692532263462930231054225579134336426529548896364268459581319920148217979200940057619203351811717508485714946073048563524644033652476094877229100008335787816270465429767889328926529919557455360398853238537299669147192509047239969011111078653305467046944265313842467712188438544186323316934594256775153066175220169525190889341710011412210219478658003337114162897001536729656559541668661562007532895973930788353705614068945738025157937810347430898014176910305917824226557739843208590711501770602096251888003266053801960572695312836042920722951042030053226696173830018992289753568372229831905903040960030901854975738372988910047557487935076046430895151711962145515457220107918405341722834982040603808426684038255553580622330992802675178485718753039408619501285017456355440748917096163964082936617902751658073532478260455799894013509170737883188277246232571382065521460606301482758987367095004161902108963558082681495895136093416926153326936817607245636592874100661407177824872540805060520388099857065234606642207646401453737062425537373997500520507469921725004248759755030970100487163918819075661583617838167729997634333692511258229288705607230123260082316142925297864820737750106310784867110804796031802848350369784920641996895018346774629342365583859586534887795191887612564980569373371763269641523719904342272223142781382669679013182541177519014133897762615926727172507874973483244448056804186413534352700621342737332289582504325112380412269805964253736711643524866818204379581706473845542591376907873338158903015877130405724709944582345628122335006925982936168134362312896244217141884481408482519151364575989841635242854295904193278868492567521124157702805565712906249177308989095925829218913263470418302093844298824615633360338919356104245246525244691820780942136501967383287097151124508722173954285132097553222872083030120876973438564950056561082239989287548551798721637602794978776539941439379622409600347108374735789790095022051634836043029751593811324059384983233243047747358892043684570354674601867122887154620025787168994913186715354101408709681473319940701056129922121520587655880124161279051704142866416962152076512170448013606162855857378819824496581142087109062181320724887799297403322409932857762525075807203758345646007413519233005267129262175290692956622456591168914876122065825573013560099005145565095505797165985715114321362621368396413364400725918182508876516511881669190124501554672361427359830669382300410389051405479866992776077741680271277647182051367425689809077362857044219414335558576198132362676082375848224117675131538364415034485720882753704592660107077243500920520924704320442690109588994058971982613952237922868788081032079898679414869003533848070065306300089660425659717759212176479491326701338727267303603247331225603313759218685174435891660950142893275868933059993062780712365163015612074884127789597790837016468772251787616802350473421504500798913919939310967613451568819826603533671183136693952027879887034569922860316775332011649993984484481618739946972427284743908294771232844403399287509130574195489081642482288761505957999315555461765260201989809923814264538210230415011985023272729588090301961831018782479732704950305075576846047561519910514189924095522844392432122118998403471042655833329935497727676665936054302134354447553538876341408120590853139569085646974119125038168431740733516790236533396841095617225181384500854013598511139818947238207281613899761529286839349802021728683809107158806876972986416959487860296502663634257941957050454599589387512482036130646984576286368617540634075333742279082158819115294532310387885599127972259858304637766860249911628849181699786625453071183233773512746080685484621585153623170481221899833756006528196938948085571961160061577439649764040520928922631947138612597000353080139412039284201939201601232400244143539710009464924628598769649763549343964904999190593430639207252959038646281847435648252268235138951781467171312121141759945781824842873322363659455141067860171201197071811844812554052196169102060355021095600678028582065820123555513961875041229582133744827145325641004035120962929608726288056293071184182352109005352324946034774147776533473264149073413684108479454526339191380887574867037085636824266120358951234772295940476520526832583987537472220443400323527354400883337713974189161485150253326923639910357227935030467020819957742341185666080412603703644361442892146650463138842340373549816468016256514074676532379811681073303949738822966111845555027827739324698046566818520716657995465472063978235710591751770752827135530359884654732425262748456838403056346887849803028049217918853951325039754818953402937481877639029393901238209092668636308803559643517552942814746895418127645260839815759928144688405834443617570471922235492287157524006079340349808665661272341154404803370389144174489735174072302265109101536514205549053576652607974139028439053787984380797996394531119988935186174906773943327703113075489635152675014961926747335787580470645814325621325095812140352047730450110076253368364259064647070196811674029134328870874035399346663300436869974572877818799912192824700914962184014591994935702116270564290231321149371727760985538713311848782894173318918388125726915729773966980323696911010418934545824069720341868350156151503702753300396527787602887388734972842585074847523641226636016946580173805262658056248203799779365764383662223119833050455904781753861374158732707583688556063895766315428777610272093077315477739601777122099328835671551431790219291718652979756763143489147264863637296771466804081872147981653796950164026260216371158267449445584489968222556781766784583114943815492238123315767435709405754022671277122431206696010435896930089367690768628954986896681709438119528990317220811980110552441457946309502702330586972743768173426951284497898146767400165122349300680099325421750743616411186824922811828891264242158464630401380158351956632374984651158750919726181717485339694938801661745963944380505476614054539185162679906038971816077122740543258312184614928232576377898024952959281984536603744213111550840491962698468102599555857397688322262886996357227706690210703793952641036553640467355184486655862970686085072079139030274751756788869637821367879824836459729212680591937910130707949881430888551103812284730686124221519324341079413691914765574793735327268298810273391583753560492492040636932744255762034584963098664009630876481822875743586075644846019871787407851495608968780535772952067888047038986509070093054993549066356024499176985420938382047259311870414361929761741968829403712433099468207930635196642670593244299972684636644133867155212988822904494151790000417175338383592515431866734942818534441107905641978769118170336182244702695044333282456709473797205153445658247521290234767593700276003379182384088545850079158335959926518905169803221144828406018831864042742623321308209661462631446758713624068050000806234022841993122846160409708646170986863996987935560969324831911194130365439122065396297530880949835091280140913433054661346331279255486763852573665244480893339342103345553326767734804093620574501457709120604402681226948101849251031276596058772451318569242380432505611242524590679738916491917142022689972324634471807265967451001509341857380751227798418076999392986283250746711929199038654129960379423555992465795130112523772201909336129345914977430824292346509533578432031804504008369423727567966840321489800005672173455263472330328767332708797289730499175272419775483953944517091231716518975552188725764328738714325901257314908139625205394683769082492484914817488043722857539329963879945943449060608163406150696132124138653610984175209569221521530920974329258265414101291252053598338305351866507072401519451290950614681866355332351833389733208829514056964851389414126754919759335275463404236831595324083007113580522530054043804364344479504947523071119129159301679223637597477902145916306562674570276785556645369880764265027758219367548789778810319166169641075181833054810898965857547416667402576366327627905449312449151178991401135845103520456312703896919730856064174153019379814026246796967718902654367753917481053396765903786124597617488783815487224870943842997333939375601297255358901800226584251132445579728194004629021515799971323327218691693546879624385630623780108794419016496318111080804998116676052726536659583756351358745823494809210260284144499822058092189106449262008172544588205981882198627434345930060998831880042407542921968734822238726913730487097571147749480441619551937069859277678891285819338155602148234507590837567561049853422818061278381609551302638261120628666125239918171030741368719709052726904568292043097716752445234242607117667998330270814304271573870174383742210564284211314872712044658375247553584184412718333882946255520664381970061144694121614720482833370866606545786471447324233924499770970040844581737771965025166087902628869073558379587696408197242243903786026340556335419763569613430204776916116329987316247630652867504282722040607108997446836558202551300125710306131844059316555704342233314835538342873926455263144517131193285508900131257670933816030218348919795679696101052678876435535203160704314467373439460129332957263693457054114912964419039867336387906298592210343461219350645619811740325719655359441093146489632961307374017012994141541548960039584383188555574202940598393767135563237687123149768313929957546936793887932380802086193280498566569133491577404984155841937603201746554767310656584543726598288382346575372356129819296542487062640964536193602114207230600467752725122084079574688150909822666051260606692291089840738882431449769088905568931161008359025447063591979267764972278719851228461262886359279310267853743346464021212302877003373901666149788879129894613169461686047547775137166487612239662608076895122763770645602165595874337005157076486322899756448776648003680080564594672253405293452121958619311580469708311188720288530036377897801947426974743176045823769666461491966186435491587672404333031852166237300892216687256175042286513325814433334213745327605980642609229651695562131265530123943956291777561091810057677791938488252158607913853214135967880840869809060823731440859737487982155075450121303888883754466407095139630723036807791773546359000183396951609711839720503622748280114396891414300170466656507973850506956496037766676008384807362629353523798260339917234975824877439080687575152067113617148635541427471189314147508224321510203461772392224139633210516827902454473045195009397218416099778700022059468364702353335912640032433494647888261632275261012883697063786827923856202520089088099028020462478916292336924868680258763273129650930463224403511825591232995859503077464096517072201191159774135682458604293508405868586253869473772985580925263599570962203969965646068916571306676128311759796082694766657012377598440780501832987502338034821616920575983755036340830771371150239336485809008895405978884231134674266467563598054569324773084708972028496768127591949242104870982873394185547094758448343800370138261384620321149895505859221120264178986306800955198729763621031630837731981722241730075573764517822936586158204284568232711645893402872709892358875516156365435596487089907399162785968396441116440328146419277343458828950613547388339826563918281993943307435278888471503113375437672020743851168112996039225607960572487033548198669013669396068895705244391003061989457300157783583123511424073324570658783276672285950880086007068111906553083143170809366501160644715004006535166001819796298817081722688361445242209301744946501606183321873560250777593879525512090890811973455861620512768859043692258524720505955946501569106692596636995765426263189389247534100347270108152271484407625273567883781647683884411176320850215804344763972133158474464740727951873535451243608407669057034942061236701591417605062673374758878647596054353355214103307914504213160719673065520484514583823507110995842014265552946011950162350176871338843213361307107975841039751461531036640514835638594231635694692514762590892660831150222716208254097589436528239627929346205799115157296036381606667197485409600181583775411879179559040196731650916047915735661826202357182289082804211757282054513272352202332514353290160001075360483936350109510257042099607533058987524419877906925099789748204747295348964530114305343452658186066281336910235084064761507482337826386419216699472171428649623555521193903624351223716504522308085642155816776642512934567139911834783902793572468146602931237084022371357795303216120201004045594474753986945878949343505128739900573779042553111827389266740458192176159208913957324447563249156283511158539172320767042093479086186636502995759799198907692750477633110812701310227426725778676017757602708342483269899031788874833904039986583732589985061360042746434316625631101184453964289893800312767535231063912404315197050824799993114960299320592140192577690168805419554984693320736611333236019207810813680475453784071770864611007283774513372569551565003458801140287491921724975526261487302472151009101950556062944452796055748097460741494612812124274584889086931790052239993276190302768735268886386489373353903820552228737411511762711204888897268797203592431423170612344713239834974723616465039160833837195059993412649637023638847574916661524080017595313703420153398126302707389284887029561338332504167445875926541753543100293935591442918863706371541618981980790873089825682885903061648457524085645068195900369846691674518310285379522572882321376032190531113851434032457222919694405774226100171341650423777376507607010311754713176273053548563563543052379224329432981767855763173200854403756803521636443415814978072287378460446244552221296626962486165207827352980407551754593135275245960475234464411950292138095480174472643406317788596437659835863976687621599137179755040076122715529067574327000049401438926821509553960336402245617598992284434996836363900414177611864662936258069297956649143273492948350283837962595559875131244865552832442663142108771108081571807717962297538867290099518339209092025558156331288772938786556423258198711201396566012172905536251710615454770646668867138711076202124037895160533678706053024128086485480209861951609932539234698414568257941499893549256032103627573751427503229452050898179846217645554176685789529123689050969802440335494190457399010320569495658518702755865596192450713891306734328636094058582180541418347504705547770595798697798102198062684284832550085653269347706722928425227663511883698355355825075415693814030185743996371026867957701896409808719802980001684561277693131138323083229092966720582320490271963027873903723691821701222771840300418327455078771970151772811876611835102474690376265136203135752720477039942851634257474404659990923208007190168980546624084484102542960695568330620678584824145806208288427266222766955886914138890489923142105592657272294799217040571945184138663545923664391394848573427539934173427275521562824508826239347038689827484520469348047688557958067917985355727613663273916915456598914679280462010963811032076267755619333120791300140312397965936371247285452246064365811286043491591345927795898796601395435142326689510183624236660565987699120567828334015418899107823015893844400370385090192872764840049970813659924826006122418115999340002846209433759227696857574528500970566422484336153003900962976617121276928421719596783829655426581466738167203441465659844473424228926621286748355704328739019415322174236067426367071933905259819139971875404515734492031805675361130882687819274163676453242403708207603496858077928756097014467972115610132920732346645228697683533498509187248313936614162712162360095572999608764053697177804824664681605141179618772374113485232029472214881943823110597004672434061812862644341108040305430381274401849354358820107447294179078287435643355326541347356364393160200471159502164131299883866102173778400599499872489811018075521964440097303089427274691411644455722865139490319656411728263419496103076469034198562307745763808056806987653982987148129374769951086989589648435081879409732583339438895685675405722393544334486421026552662428880538264636612932257135145745947918001984280732633526884018398823967260229186760537471947677891163068757071587379513189286641701595425810728806928236785710608745202313144376530289902918670499307547956367464215464973426800873417655281751594033402633683571256800744407565231111236146942405040971042969050110018856729297591250604624944268571272090184448741690035624029343465969715649940520525714291852342483635576001795672779777279637171324365146062427533455747143661770442745879137638296685057152601573239223186633321003081214397023033878223618646088645528308877276673582404495778464871997332804992012353290296540711640114639517042400146567150078845131406256107120122561102972897039993788425277816028564662819635516611014793921486017621677479230424268770698138130763430295603495275355209544013850939243383466365074974019037431057690884319265042172917497472557365137328474748106873955562045850588500381465027947955126964738411075957307542850786832869972249416075553809634265663393525458081581286858529803542323337290915582868261836665732443808221588876156952617802788832740891624631595464437152250733095335055180806075653942436960516061446807981701656334981850524849934112989817002173677302081256142965645491446624915692357143001013814274767806585401942677086548658071701700403196987561263225524000596265151032430316824323680501862953244546869016310436724636896540986182951742350815561519107755910175103987155258949574940292899909791716298069646997622372743510705284612977586329244613019902225757882874287904531601864361894447237030715657747191089984724099231441276131036880584668859128581975586909581208878072776855243654706376907458053883526589600222495970284502547233240527571006680308378343183921421091506005646319073000702888821348091735661986144143845128152772739199758703987384694700011195574739002374945877652971156048808986188943642182396388404154378711648950541025079894007273572738446785190274030542484407276825332614651338697088258334591372075006913252380112653517233126165293721341414688370236359951424382175433454690156108097918893627037396412085011162416503783083085750065712516943687881443409131670802054134319169410476339385250672479078062807551605909078124801638228265499939066290649806413945097751639174196354091280550564637513467667074065304711904676897317924688430932119394700592445727290830112842947573765759985693342318866119610767346123818598150944411026379161858308428164641636653547982937038379254262870003956800382911499565252067620168036996000123192075450690919315012998732766166091554269029310576021880184382751693225663474258042107880053685337141042996032468669437281621664984876771835793624803636332627729639205755950931685197452777235878086544456216557195393536187885577042945404791428324363383176433268816286346714083353422905455334091360031097899343000365196510192977526843828451778299012061427318190192915518386178941590867382891756235968388585586451359253151022802915569471961282571114661083656986089708585291168989987179295441025079871719202048849285501712898680420346708139843017395268590940702495711337928396586353936734798054891653861014905208987848353775595867607274262619027647816036489458578950698766897372320206755896890971352616933338883180202697216870338446248789731375271408146906780538982141261473412086935679399113492336380383612894639398270432323646355107000266028121696775734320310180157309629072053088668743378112247837703410667530209144539941964749327866013690627785372030667526997542913814540620899997751636966532552796232867581848814304102621873932049765526119487850970492396976305316116922508714675755601419459839675241305678928281283613629022655201844597703050380574989422466614865684371103137488213926930600850397334637328891338545075796181837650606099636209140891569491463563618697468987814852570199032397356784431565902412477645422233199253663308938821413936936490114402272464248528608098579849254815513507466182179313383190154430175572282570787023527505030477130610459334030666270615137415593282589127273902717698119580239005868609767743153184258895172902996328136494768789318634781101586614219913173143217658925929920202579563868952804573134932001704566115523479665698621040179439969869198066186027178859187372044609578776713098701071720987669285222200890388899549912616533869024961126018632138921879764140297694827120801892153833675551071406858065022485825723698789973608849036329934671259198906152723375234904560813067864405030992341520933396904295054407492348718929911241531554079008769224455481457718583012013733445297977525576348288990161942766536886642690755905453457895269548553193087341702404590065597044953260518280759469325917045071288750514282879098148603288383084473779135615983484995296721578680345208002384632054361716115717329737924690066829803667936003604701083627420570738080879496718551203101591015542689571676267871796498994782391438912270766421177989994326879686132932757901916527140611067102925671186462515336383299390968753435901759211837778040442664430145470391406988659586040833088336000786779506008205555803151667257704982986127523659788915308941600784189695138310325866017077426483941221613511245870761066706512614209294442551191541939306233110978973596473251863998979215127436507264038650048982834725751414218323606070843264124096468776792431199450983067941880389796747092138186057764588015906947097616397670131461544621245598113513464709689510701623979412932787766496456295224180908254798769021412280018500306785321401670019492924672263257277406896090912971161855758520386617912236597308173050809919789763366052888817690880248339238770834491094024990126331445992539367720015449739626258609571552170040731102919862203925988949839390584747137429697052423394808527454944392357308877722744399377930120843389696447027549818534793640620522045434366480069547117556676737040238920063162775758520516850524465189293225185501471453078325256412705638055288593201555420555979656487198363934408592208268474774421124010671732379600916646665578830236866861854757371688880828949256514069340248839663665956622886900693283873108514296413944964799123903421901215682808869782270560959091673343700578048923626199093459375285095287174215606452627360869807787799214630320764111515298082334358553949915355328920278590586084845796870319314057117799932204469121710224421389785562920002327491043623551192301971515941936312455254864021872986524377783861822939391008146881800025963840717424509720189759015133143018963679666493341551721735587302864707339867865683759433262854762470938710174557385434880332919734980031330550717123664483147437098374686446617261353404880754666605859240387079852522720006080361480055647952374151707265502104063156822983965288123078365125759345145110678070478546638984049243606362728389900465076371978126967976044271443340518252242589058208079600266946740230985939950988581752327305585869298250159442921773470012764003067902714425713434252807001665539735864153497514687789770289004507394688742480771006437726779975161105988797927483463027724340861215691873085825969982633195894314772564674872159218478292145232254699482764054577718885710428976108634631952733533026684025913296895351475340466609695449776644782449994618578475872873387321190283081401050845807937943031648917632833288960519567207688005994964865899648104977706510496817447720257248298678398577190084837154379296364057723610525037848134527890695845246011047129140506760002717020305111247390027311524608451770174864110022997071195631826787288072825838220585617557647056026279428638394644234965809938433690605440297330540985013042029776810503872963823919601113697387404276105995076866348848353080377341505242153922987796379424344213391681069455801114077913057695422494262502330175319245984763380869075838134538943898698046667740915751058639913098464800106845036456914032065122829365856816682316691140648381472158744383588903966624366242838252975216683930453933521110067142951407297942710804062095103940120186637144377311865063609705080507127292471806885862538243516474303260909331734068296386204593456812983783531300935914295466260844512276486547647458048733485310144791263250266418268802442552483316692673011422734229028575151015311670758851695960763191055830130545637357402879168150841525044577037717326560779314654817531921183036513764558243557391511908019652255589536431051738036093804303051428764465592237367228187560512918537908073534984084990986922708778774930678044480054503369849199697398727265532281469095014709272746872981248410226901167774163816387776968593887441593575872660978055944055625762211245140245042318854006293334699802477567286405746700274896527550489869573837209541287742441765116617239852132892175755086213794963006373964325262007013649044493306278005300629316547367803420273615161930607606161066335481834815654472548678775479317901737523357806804816944559787072679874212537587342732273895319805301766138191987290831134922482731079578293620489836843059516509932219188072384955192928924201578241149756765991036012862004716352386426555890735262362832573992701374895982379860246380282773896255269522655288781084721989069111201594880790595215419035373024542188183340635428923839997876397525422182413698981745045805249933510157095940694376846815640525232317208246927467747555147725892531756548072817661089868705267063407117021182987923709022653728616715482361783635272182968996074389905951709865559025862642347251380195586650351565161548941292151265655463889793709669791795443826904699587179872765604059926759649061878678400559159596987860500122579741599030338116193611915248057845622864172358096706489057228625104930911715207205938265150450342063246522985991239648745693248101706526458443983884338410499568522529206564828907982333752142479872852670403340617384130573813799084209207124676808515523786720143277258805919715985801261819495792540301065820808359796437863275852958343184867847991180854213482684744723294789003703418135794884521572550178875964065444304370794986020372377440189190792392758351898119502429271800310352852099578326222105063278888362217839674734874344037714417331904875312195524175783221018261448539891515487555875106580916884048658703857194249129083880064272309030241928385004690306530596948286099448684546582356285951957781294966666351546575452425832340864100296802270930288653503440204629970774230059345088178370860978549660978031948914942635466841688236701413236571228437254252453362113977721947028516811451998245010215308170634220932470211257513745679318681679180139643782329831851856249200662027910607802607180652732832433415691208981262647365765595834835310949402133395369605762766983558932169292949568894627312100458003704037986708276476186696102066561753114006538455933340150358403445471515966173609606819641671743841076074771421686846434694514635854454191706309449383534507090849482314978027917159679277978491308056590914471357649070280964033198163661470282216875000896470105456173234911601536427392501095012518657313673812317882015357650096762596780686634856124283906946918787681836256034808313732207848445647938790569485717035047513393388793417682354240532992991508460985237612104363666095809689020562829656483866542552098886957878352227700638947130057810803670701502773911440905248385065706929994209990040753262770779517397564904713579048818994478846121226809973912782712193916958236240030048534955116549916523013799231072075706511939662281765921271040726661051513623577498990769099979430054427975857954188211515522103937511042652808315351849120014420747059750454694721421043598494610840642452504203027617686343329510915521943791504421512030672870105542039869381045617468085181248074590841862888562685086648056451351239107603795416841610956425596977193733034573993156981359642590827681059045710150482710629742289710601801983753862351289678916036946080168585252252165507109896024429705155675991584029780946722490446658014579411671732982713947609315420403597644224383399191647633851555696763772756059286197209341663902352886569981045243644244463206913977923849608188030767350300563032089395875311953257895197252546164508612846507688082363113687668350920758303668708411151069649324607895959787758119014628723149627522330822228104368031439710202216956040261223987049063531358548734939259495971769883881924439386123098757585360567684564269655624233966360600218530790727173254981609577828484273868916803534840418700250243816818327377550235861846653221489337040660189502291622448438991296242483424865000733532706751677079950157311965612300825574658851841607171248341609153581210873357141229681997488392666795658851471052405011080216046877240628627743267621199644066165235198611055785673551018044324043055683777500402973341703919616540036764422232814281313447203061117270566961705133134497521677268674299088068806182656592447327528808762432201557022632545539459173150331592250035998097516817897457500262713333173573572985789938177145040768035586905957990761196534141801597779774536474885482713947694405271411017043195614300078018282734197866011186533120057323349809117027151111209503165478293490095140129068437111235096184517991661468680077912587538845793127649882236645567589691806132332966772745394174336332364816004278328515328952974429722603019404028986325812569568234513498153392599093832841124876440677165280459926817012794341069020172621749946895343231717883286098756170142562887825669250404054747101943783403070998843617887263238327107003456472423536299388426847066090758691404247620947349263004291878847594721836996009859230475770477135500427816929882457308087160517266599221914856961181213320253417841861300964820436584055230244074558656050110123272716595214339746946194643188420053976418933641746680238277809805863641898633917318609981934700040465034218470131134279507720850130232720400131856708172433614206774399287964433333845432879768761753487036943278273325139701253120072006278173840508997565914379898716280636348494071418726716919613691073698661111442961480532571191920061215132765387238484220443980624677250022558388904651438025944688592447862275282534401976086107076143407387896735332233090431423210787563584310945183399090043592554034789075234619294326101282075079300310605342109778807403316493185862952854132972933132740482427185235842873432468479721491034209393005487714549229802526390098525155505962864528765371065254102293183687364664928325845052641516716562759178392934367116888053851325580595465561445344529728687939630234633146339530911741632421467326110347691783444483434402084139627763013414164883728592649962568897315095249223508357923502297954177834116646323021371163421264702017219228042678801845227913276472664130373480200451421434348909814076181187003202154285677640359138314648245614487301780045622050975504535341099714906781004676734913635181934404773418843724228100178821834207720828878982301484699375149463263955293700194708966032892377004637777763090875410486616920457889893809086283471209765729573218128498688087853967256487989899392686110663007432053145428897990910241293492078832468242362891204693502499541236110630532531484814751132751032485503246460900685648630978826098798417215159442088391555973979793941082182271422419947078150697578761175868891210647596844959088280424158197111587694578908329464241330186027589543038853298102266141633107812108139372185868304349563312035983904278858278868896781388777342464772119375943166345183067113176773830627566731173057766049156358854932327339303945604253397726800498186851517918241663113647474814255496248889365079744840807536795431834362939947907347335908187244085693315194076596406699594824555564122739245535920292262194417551695733950610447777377195493046098838548316950886534008842426303053214485114374447632699184653517857568110987018607181914627159008575313193720912355765232424978714837373132946234664627610804664750178952525969892931448189310947629005800982720861954289863054606920055221138908819692520985516016677653142271918181920044517787676104663744428627795980610009033926527519555364583416896520160494864580410735777973950653561559176836494984555365470752322124641417951677739515860172067669744339352543046798215418815890668582001481184275280887952807298807794292989649935078987341928375762926295069255496257403278648973724207497729745894360633676279127903289959734514790536985694300974231710001067948757402082894297771408209513447958958469070626411569703370874511793128391579285502130149842261336600573636515726338412657895480358316396758022472916705230981542378425715405129599330602457535209058995161009499557686147507616395424278137923342822510267633470938336321280198778308076162497211704342602848215713980380472426982167535018104439825295543831767872737568300725274576069136491951358928625116808203821538439755568943907567842429703569821458858648998002408604078556282235652033336941850631560945717526424516200072804739583579553041174885316256433635337352120325668851532703282751524456888017384979088659355202770477701392404796976251243014791531203913973155408987412701922781374655448842066728322234518410375525398940042143737111842411834405059468347958609612196296085241643695519682272672937098865995442959468321269366806644756129404448256964438515496025583224107827381766105283248473809545649165699455638410455923215713511933459517190121121405500043743976715366563978101575779328944846772096776588767237905351241419143040934398379180975555361127443556941695338661746701938926930585657341194750064017139891152673219324882231092287978781063294779530385050244332764627537479622057577910738096591051671978473368390692228021517529665248445054353374333680128641464499493599979090281599509106001278417246469616168563544180142711370379952397007077412601027097592995969712286624462126464235206127950080495230929821347288768937847485137427451925416611096264396423678240307078173271873475719559606605994738545380978093257184389421195781750286632785004483881373927215778589550439991521061379481848463954124718798509669234944108794018441328534054551513840100864418670150457372005132958205885191071774272891798911865802963174683630395655835996953313682340768943783690917515961548447031584231398906891001981605491725592180077769457689532961719307254256742316250059514732941656932181052449730211532180601118878141363522853591678436664356073141049272536735334997201216633241806233914166767023271480932410494550623624422324291213702095454401894991701845043199158478562297475331326243246081357742229230450980408455590571461057996366747281243949712373067037674936684541190744559432075195765181847082990456942022547142158984821830086272046656011823409284954812542539203001590030175660537934693909881488192810363557773768007009433722099841152449079594834409845193480093929534272132586586517400561946271152836365747024520823833281128334723708415645633505583483152739020225985114149439245074726625666492260511222433607799369237302131272287410614141479803389887759663093072773634900597549331748400615030120084804167749191535378084343444867239810569304132481582443116244601231985704968232788110666370533568245548145074214834464250291190958957323215239889106379398765272437887646782719006859287162475855706749547662814172146552617581679384872334652932865688252682373328585330045264581256418062741062754377828953543567990353369783894288776590926283504298611767991173195054907092803849297570869097273881599461304633872194050628755816182668856774057919986524497934214528210643308946643112307484664437574620530109623050741766124616504861206789856817094381682285462543859435214893466579488770924141850610908219677769289923432007252990370766489712214304254949892859791742730326869038508790542632683199062307737413491715647208128116121791003448254554776607277439285589756700788479920476082062033891084526147197754750625636620717758752836894601743892371751545562919256584803278251902668805982646506543094699457501143813013933344283554774882019742810931743527528982828926688489992054569356273330644797252444154769357751338593269230605870053707098921177314696008589310734294796226566847076179683045273206783132549451413723052478141961796050118977569032087871573596583735562688385991700067606412462396783128194595544895208341755237106500949370587090962544509132314232585186506588457889001041970538814916250348745491394727638240196076505944261074526814902694634281416014820234939506825497361252434737328924949057307950340014992599993111609176415181030071002333773688284015003958205119472202523360870912167352961180704801873302757102286218710250867281355075148208555301714426968636928126098482698806358142399849593539799691931386206548608458291244364634427574839514401996015398837904049924863344388138347952701094400910441224990423856258023264793030346890565326686797700611046116425199354191339409114554078673695445383334719630267301628027879529640483693683253799087184754435418324496647796834948966492002282292990231309895377884222881568204252475517294947348073725775393223468472420319694027788316016006247181878385021417195534134529483128290490467972799309660268499259325161847906106302234537170866337060240817607714414520744723526317146813736431176553877531729429250218637670490815096690546227436570654772163608068080368493023225293707171527669057571631601470525340315841781853335894573577110785624385455187459268704171514874070793538636997892969789969611673106800572472677346868740999011047506706598140751669085421523468617770146813035668477120317813028052042498326337345211330778773623659904774049097833866991080429456754623451279508775082979454167744736340254969305403780606763075017457797553397666477234868583327927413703946393698361190474016737731650997787870895939654930270020182464350061664998623666520411111317655903294159582972823747075685406903447745447463486390240797818058859996301078885910099250433896424025602829792218203638920462173471022232704966785241612247110700014768828785763424186083102362706657786214259204053671742471892474347156617668305873851635427355992592303055611393397655344106023118777634742598911717801204868393534211053631670715253110040960850632211279052158112731342396773913095176556686858447745395189815648183977476806088628890762340273293355020873538031655625681596723158239537617675165265431055031123405069243669805191324029249615611133664450601221072350325956623370130181685543209145836768765384598736341915573029767765237782156901232457428983867219279988450383718184439346535837897436932831744936182392375561082502473781067280917359091931947030013894467112291567962557186296265583730012588607389007122386398802325577923600043596931273280260539084659503055820206683654271004122945049686566966032100752525435200921733785138627150599484204140250152876990126433570376987615290951585733855864283779209950694256427169288934138208469377634066748672612994908152628399318129425052455506651623580040620082150941881018736181294514081405612432110291909076820536983330044728959321968820154809281755759783709281961589814398175365871461915420148219285465417762571678727117464614044793270803132469704555001942693831810567756156720278639182270253243433422468519232989848806107214021208517605078729938649588987924583121737173374306763489663020445746575429733281374496617278624064050382847206934721282766197446984157607739566581255525402213355970456974565246637635324920770548297908979659436473392814347534591702906875475906195869174787262932087873709844702972499192956793680541737517197909984723936227468549741133348462443001894566518455931967892819504710362736180002266324146263572109047616202002464488914766057668097130866607556693779235653572823641023545775653857048655317359747279738041609504134053504020116621551068728017102828107042993696806735435684207936315459529379309719123710224460058847635785332227809382636724023014906839446372618676514512281558068264876861671926216592995594236443457691270301367355841254712084595345955900572082788704492619196949689764409742261833762079233282189555943883547720866394988866746110615502592424163775002995096444839119357753756337872010595222598459802295375941670314129752717799683830354117869741129985045338828586650627298747687055542546202280885839103474236788309663110892040837750374916318353503958009702859639198352791768357587316867154756529119521418006245121236335859289478784433474968561541430821219327588370881400874479519727302611343912340161233661339223838338943096298675397747224463152774026195024813657084964228896857780743410723976619695897997901837333125575855170279704330731628565767766536408787964629663826574345833798200719989629327681243978720130141670415719933709433974895588756453796437437451422866326411329506830408352932984027989841175247783628811512154399252684913530395004368792304128622988121425012177691469874376917407757508773289454073883430929549056054116952121602052227779918976869789381233403734753579492903814459922258926661281954224791080374590803355343698358907126164158222363327934039309005448908003935366059492980609325439158366805838557926682902596047193716780398510774092670927295222121639335046470925259204717394457050670047927212074339845909353941782517190200635951183224921428566625576804493343682395757265410836786033212063381616051596186759785276692044762183318306153157699437909592507521120245763972665300702498419512228320975178885940672015487386604431150959636688068677578139083325879648061675003640907736576677425429861238740979091424067146419142671768733999955072731037620255274627223728039049028699786312166157150314895569223264465065523898632407252801331197864291142568418824967904975750110496275038203309325557683953807066537350427932843368744530027442456426477123314101889708722836813413807225775658071539551937177985427635419505175616099231184263568522506174225073367061935682136011092231319715162772744308378762587108549276915396758198040299003592317866909437585855822843490334671758539962104277620700828369606147455323157988194328342523380151503133834891165989875538046435048611827330949527107342265688295910308912930807178760872864814844225433133212079640063529139699368161798941231835135973205427849749665620598288179800124062496447429789315832446661939357041597026677568882049733206457337229800917203077035651027572358754239672449204705437299693170886159706374508974574138104481024099071550878436259854218429729193405397438776624052142998761192264620969022540661970741908439137216493449110304172630435508717551225512636045235511160470949648921188453549678234586438223292023782625751688590754215555589124230757424726538585191635238014657049944660292918805325592006337146350376732007949818593773736911473109223458036593947864022218458174772113057163387764746153962254213883571656549462603937622639523334965801134625517208894677388303542898769722682466693058763230681907636937288700940815350412374738172582491617650140872600461810476797180730941645298846565115501550302439930925347292771789962959556492638089894108345353230525002384490110052711951348976439873988304192663263171310054246675822288730670136990562435831573155289019847398065092329318176711825285259251628882813627322484820173867679949474898434218331926549240078883285081586384298786580440617211618718434280349884040887271442263747899432373446938456067945356164569445102848826268209766719475180374261574843783646365332222553779852217853178798592685601632778155534257463692262168245377852713113689987910398581247055945309959828169293918804876781166117246586151140391733107134983850289265771871076832165271317151199925583098269566486745416712012827309251936986384011254435752072605385849231091286126887260707575275304277539984361937670568471505420696230315135728357895065123278419355203193183092533603997710183339245325582356144128716193459616887523667804305411828498463676905260741752519738522057419212943711861445480748605840507904829792676479140366483885302907377942833574024129516454472251725696554517886165954469711196155209788947016421065218091707707203059206895541677296632455643086794139300317210726821225696275098356945381471783949988142853140854462891875339014739705539921891126553806782258806092545569109264251245933210286281377895070022425405346785893654485693969889722772120092002259326921147960923300864820891067319579391296260729374567704488518481163028407196084989490102939438729528882919573236170762906557763171297759772813807684786450348331908794950120896783880078138150796159299829388786566083488911446777122175951152445569399388577577920724156560017183204025287864453585173903186726091884783623757428567207259031459775228415146017416838639773565353556526289305130143503512616040751775600571741869134014036441835118659132854582967549866202490851597668055238400298884777007845460710891255445167424869663775397923707710061817604744147602584233205760544224531631539355089936226600736970217729434248966414089139157822608797950157551297647691007142380242585597186937964252708526503386624912729229110961171694057358965731479347335680800944485227553044507321459028715290740207822788240972475777568226160819017768439482335497935945497547648078804299602393556128810450208557085547113318377096390960586256487555317621268096600125095411837302052061307280882806479477783353687195065105188187963104486480706158885374947762878866933745871893352758279288961214958446671678902723962584475967633827476847424657760057058950811649586494698859540236810990016194849329341833907172222115623933598981483468799300702116099851470089266123226434605655889934948208170365407295853333127468468200614659048782646450298185698578019646432990652735777141638377911001795276076379426307772781437521798863336779010252332115479508224106533733331211751806048733154073997393902837694922674781927072869325253447637423883049578590263708609069643483668348713745060004979843370899817378636246324436145110007151421395999221924820583535869749455949825689655180599320677625823362272263677894026182617617299752486670950001268238862016975110921233157137612753281521337858454720481416029349666563778053252005955550023163375054067155828006017799231457935528839144450429441152475746164501426570852510552035854013385305400801841568848250227832248326912010284852023623569517893379210337635173821652593746279262845422741323143150415112697548101075989724737213534407190198801751987654513625935393092284309369612566281332390759210446110856727500888135344535153470166779695561329246861148862975948069687368544696106864477040710741366120138055452845221852869688320778290143900435663723394615818503070824114017682513118781201991410989842347674975491922550535147617967306473326584306997285734891505507815242633778635028594650783191244146908345765255412104521486357213384345082605281875403093343292830480896809645727087702288685931826459236997809993710501394165502542340271820305336811886129066130797628350331262269885859592674003594770015567773762800616731488816718060361649050895002209215872722402955168809066725643837025410587657032459988874628188191528911349347320222651320971632684237782451939532312352039321660133379736812742492829608053140148428030537676752954472708298085373975378456594279345555140463386014295812334654376158540793084796794564623412311153395618669511326330593890920484876031791196349878613209449435393602439263172675284671095709883477539166031492340554119558335956487513192838388849111443376941596882796975178731683893247585448636371888354057976803787304054487616504521559500587105076996179761781022070999401778442639952471811547675572526895553321902633347503025807542072767472034572271255807678488728029165350632920058730112724815913423257198713063221591224284225467826224635233353643338881579382298023384335938674052673315783535029570148223778655034488985695799648880328965928527562713044552108826079770397279061686766809946024231347848085336451548987623978725894632589576176325156475581602020506596292339966197929214094003648265834484991233732715256473781466806336181086821444949935801758473872780581357692549124808968355726610555215672958058146189763610750163346219878537911294954604721954720151801714442497188138359269809337926160990765791557987028911491003700623475705562231417596146248797831354340680016420109909291614375471728972389812870557982410755300867101897229642232489276222181268604886702609940478842514603421901127512155271982591584371977379361320242358629868607384249622307497786185287236133909851087447359901631823323587882182613678305704058127239681903660081983475993541671056561708126421767735667502518940505615952042727868700964290630247325217463997331370056589195074940062961854817764826847638098766640180749473579261956353578497532732144564868502080228328016388053519104535587870801596741628070776261193331594822886666440843599403084215847966565560228408067883090526996185287857859455542949556473169926600871910777235266345516337992759114232867666819248793759490125967601817685655587118021605210196762331533778037120035130519814942743668798397273605563181335932665022515087683870453509458399162685769821810604729725569101433663418001580328296507922518775846163971816108671484305105376647412891508201761108230823441977487901161963407433515417400660263619073202651239919316478288628401943068511156243404818606063483884242425425589503126022435047812933395063416651482702354374163871329802690167301404716401903572489074652685347110680911903404982426345705671748044150692572878417814398489327408972560681002254052916624045588902373481095565195733731728079967210836262896537295519866346611934473950969278980342194248411087670943175532493637873032455109966973814947804414627184054142641449323438640323702501376948010199686421670907202765104835460349291012671044991206898823043839181253153288070365574077572856152963818463469909303119675579494736851907955085920746212533278610201755373773616286912350629208601091572502549490513677132989183727637252780309714143195152045929781674655243269810192186602079799721372462179917502096526837158362355913382854326387904510923096434662200084204622253627882670407481754279411194013938594583421765963150050398748139012662152683060544453435069686497999311598936827784829035521388870776066450024368974656978924323046996793330654097277682975281513355096447992898601143172040301587510983252728470697334586479396856129571874810895991541866646680893298014518072930948371570372051318081478545171113522232472408867336844152590405552323802971519001543598042172631762527129443919776624303638483254735732706291613145824481746490672457068804810611660455682513799625503395831277171906585818093014925347734839640689780716298508614495877769712568762307525279004966875429621635900052586585725621332987407056117069532712476790941027225666331165414473579578496360707972174095968077456219190170885483735327534169556487896055747349114618212107179755900534845028359595730651396774072826566768799711288899438570641397808145712762443472675198387006396514571748896123649298384794023631929611591803623852711811771335163312189652139855055206901259912230849618682508596803778088772323677684531412344707168334569203160265445005742598809360347372762025038329916106584166310077500261288197956667196485676336168796434350883448402044991013108643662720010348374197022376713940715574422672669189362349856980564485518891895460459245954585922308567894343652098040934616013846759611409693467350993851323501029387732277503838508142785530767074092109450148166751217257598213747982176636404306187351404178955843041460841641342742093583312290605679895596203005275460555541222909441343320280604003641816688434755925478112197707172180580601227299514977754910266312968822494480100301061210461476937673172861328583750569199648390824796946442773417118659787068492393243943569612119444313380182659204211455293432404551059668431965347147735269177215708587334317645382527624113983691443124897974863469858616865144896347508333088120417551759177791810210427364052605562148478367031213199080843500737432260308483231890525398264429810351417535130714294300330534691851691628008947484185723292674632210405097159534245484796856442171363563192519187765873126585933622473628555256248214869573707435695271712148938079999576737167068503498193322099149525871851379531043113406814165013059735720112120545241825933155622934409687729116290195961145540930475022283346883767000651890673184378448649600268668074326294869897518224888792053442360382019905516571873872948008985020992389375145485664405212312266886859361258246719812766710933059692581021294728071365702415350093492032465375302464929673746951433129013351849297640726101784399010749025287665997703591634393787659698777295091954719433036299455106693615116724093192922042196130523349774733021003901050495475153616343191604412565164917034867375487441144410175538027365717086711319254314258872334242424134741019711634237155272369060992591866791057538394864002256724372800056499341148744411814671489255198006390155602028816498373442564276217056307547873904064994126719340925424050273412149225331252842535974288479693846664241958464762345593230217647504313187872109584656060252831164697559238562581318361897890365474476282750696940296798863237572101368375893600943032165322482842194959101736627366921612434549841115294817395142344086223877407178124134731899824941755797981809952249628437509902808479152059476640308949156942955823828250884586472753343162480850422629134454108284036153284132979724375533443600588899915970489703399411220273367047858886310321447710348010771471687426618978801489345798826970884043237568090499329755799395802728378286259901805164788460070178637146369694599241335832296520966804913125029770730372760586849605463367413157790046710403091047281324642713110465148498239249958530119834176529254464394246057870369856910707480444386071691977006979117602868361651364425266840279168257576379535501371190289848356603066646248778738206266953243246998222253518317598737227216431992275037724894171359219965466126584452657535770725179465845573365118481759869299469026198704511790946586316737500308409375744819380252430853488375946951137863430075917960448271586692011476578603846975416399698475241025551222385921331091173452733410150861463367536799683730833676110527775728848481599966476610180013209136850756885622406624275832146212920804161613879832966658970440613330478974425847728448790109219787052662964408070478244874575316113208918435127227449646855761417870588562067246662141127886109177624716475084614023203959657206665653863994472474766484120654304016992114189942473114246404383552578605167692399222680286274911120065376851872328050451181070549036997031838694831630421602149312120907676003158297054420686089551379792091960763632350244519003766119194130817338746384953921905208051577557099521644135371337367608322297679790338985926625124929660882151991262352900408119687928017528328916600938796600476485485430237992265295339063647025159242618367863256480320460340917596682360211383265826343396355776499320882540991271136816212562004172094019722422652701501067616375950168984802853741473603558151507610219543582646518881399904541700939871533000457746924966000942563109419812154661729621831083643700804005820527789341080861793036180013342916242231118420046881834611316154623431662694766988776819941650089056662943658995883906565325321162289149714841952647601106560884895172976573754257379730238661003178747628519908987382410034278391667495626438305972190885127646616701551461774983265425728901932474532113725800247474101027790394247123762224165193312658451557617192259594990408261010099865350339331065706669081957457582473488926490274831851121140216976569484646409362689913263171990644776535600415616334635239833756727644901390857557238650205796875249588331623299617425884181457210521951383225774648592069402640937295885272910559076570252822798741106371657231050747858282724571212429030133023380966985648549842463991424262041643396994808428323824724548111388358187892444230137497589120822472559022920601305314444476733306101116087878251545393694726565357632298939233684036810364248480886862592301610891565857045307946996457604102106251343358626437577662417947401668112645757842452683853918016048953368001577042623074175360867289749644868656521734451394435046555049875075995885115412591776977130590686697339026425445728784074070327496705820120869024284148910765187265176480507276732067212326127372304218596692350781969146461641949214580126809753968336879575522873896547450052676886862788335153293163276379237868146320682159285119610989475275591680096311881440139331180769894604061597162916196671966106255105165797976990612122135356350978516404555979399530030680891108347023309649899058536158685523002866031383164807420773052240230969491080359217029791739164103724891641860223754361701611568870222697294845033285915770072511696118526016777253780190999204098551273760391336112753570655893465416916727783280201435091775696874811224088317393148499078649472601340167942382592954739011615121983620054360970449684429891404474628113127588257883730775189944067396374071052283310855316808932761044485430316556499848545018811420373036177646687651125100246792035996458715899689876570050902338969037759579514180218542317333200411253072111011401313170674699577178885772754176020019150720177284143871439782425877439975105385054738845128443278324814665994962119154046200710678873176438383148203987713605871891140009637740961910482214447724566397341827840606063353983565264927174704214707436611884776847735669776454351538103567135114615770842582176901968622581686653358403544279101334265235811971902915684631284069092845252217904438313156511007083038850643865509678144499238477090289487230450153950824850869268125801357488123763510819754552873516175886684152832521846897498865349515471553763640387278691599807219731837580267832628235561168445893049220382901472780224563846561281767660365476259583931800768898415092126664053115866984485816766306447539517155790982869977979475095465633375203652640584532510760052738685886826157362772229874894095291043412199883998347581763690286747449713835039481988454456977849790534726839828396151583602860868373001380858537921000400462512138142161772175279664128146213218885200053002390320217767550049867969723326297600432339413873107542035470363152675059670382615915914286413438120739531099659589974011276130943579529478793291430197671623835593579103123928308270227887309219278437788935306407982874831461215856244137407268030416900421701067637467522814592394733120629575336005321975023483988375746729588408720975419244119980466642743672151468954435757026794096248096055416240127425306402960125042245565120180602657609484689951317366889746859241501707600612935344473135940223651258297915154752205670898972494908027762073879801761867933897744748657446238311510062119571508129439787104747324733403470021193887837808270357816930715268328031885262236775918137403755534467156936251677958219542080447345170011610891106787910042644574878155925688483066931187208173855278740627315221670656686756736721301035055512890229843880857595610184394550581407211860851454881458801367131679880113590157899100219340945678162508177262712487966520072610952507073375033270666373862246757535227486887399760554149889523993876182103451797072851379296760590071424645262215601489281343233506072206871910897921563289410762351967284752888445821337762522091138076882566497694443914908900884012075637814696237116982550627822891503426297516980726271884052706449338691028753758918148976243098584455522293024648288252974104151414404968600749030955059175446055927337506401731071491677479104303362946015079211362775814879294477410717125917694631180281617916723325637356493467127253635516914079086637967376086103367812969075647660056994542770464919255036616108403194218126218138802229537259964256756484405678678797801457324180646248017240760497951651756709451024290178407964439168658866573877614339508461494273001731076792479713153769771967809296068292260411468424400534063672843237772902496972731474690675541219157115978637665367116263335447664207324947460044206169358775665351415527660754159645767112454771911755294652364739711823456878511087897145614311658489315220391235138111040731252399268815306277658944486383574631517971393514035147710263716260372584208991157033853108495272164307793451354548836212890511109995760965082615608529872799700302278183241954770924415774984096489129322944845136173767596732530701723519844458494480886822655904603580306981430240202936757355844167117243256480891869362716142163303247653342005272275732828891929427202756506569260795610490750082902350064011926850180540092317801307643345231063298885059751766475958078662757640509354720695925710572732707938305907731656481543674431668924286465625721317473628768093935734640850683349937141627964325230305885600115069962307486883819696756397807625312789187432282011561361904531583818305003700879902479591894337645557944178198191916741514819171970257074268234928249055592732278703993268368098916151922083580008970198190566015655797295593896264245823199299116899039935975308919080131007807790680093810005718919706399112797255020702766177933804914613589118374479732067027464798267737137307599283686102111379109508063603034904584196078713921326132708715744126459309688432250959421808176068459817591334118673283884544401067154332728979737380804124672464502867365721779674318060357956235979320374653058890055069471441060262435793849382097457452772156355082714064579385702543038747391574800778996634258954512167060475280456707281058158573920622647744555967340043246692308691624384230855282360050771575311931009611991753928185171994207778523304612241425605452321341751855738315935727188708637435673697314423907131863294591001050794426339471344344663362723545053380784614542752459013260579245024983409618490226005351285738403729925865774604717032437234617549025200244426947146556037174856616936669399251044857573115433255186507744706230347041624270798588555878998208908645322076872816688574134247140429795954816431556335273094570107421371270142244353749850238310924232387414785895058253830192597335392070715520590309363693442708181841645974227010308656689829185046815739264747068698621670347431803154775478737887080756760516656533635281384230365614829742822154856747811081830320069490677395570831130786072704416880517235522121658726973608779150623442586206887684390852368908208934844642700502490484407320785710963397006047350334812274712136405277112624777135751098878405004326853616029428268072719741415469270652615122046967681569087962398666008596693654451084541317556905327704541835596880604921050216909390731657697294933488255693601394615017017435999876815679318185828375834366040012186475854225232850469332405663023891933962114246899378524082927116292997413070243833201631720531128522818347153046492158342344715407573894798175769339062677013781022983079584965733560056965188387071303187942313719291703272228504015918791214880896306000415115557440014764465859696194087912815644010464756471623133179909795925100521757787374038457284436141884245295854231029639736968634880591394210409403956190277955537699835173483043825440490683010392293858806493865007459017269409541678694729000450533078318290053220760048150479856622344315293920071663755823576579823341224043699770673679492522539985144696161051131672692165201587407279270820095514989467029899215983520313734430573418308636203662478509160703458025771568183185429086432149786567913156522505129834817053662884723126108924558781465741891744293399027888790109390485668097199415249194852958182826547216770873144329156193039343688337478260447738921157621290411936341522229740713264134402256906375781977732828133522558695589362853317131465101593055420852150353379113176566510040048068706213510549453108701750738664483628556772214304481656131128950048755979352397965713875377410184032673891272717840967782806372874226500557345019181515851650065573826799727542080311184488830565589405985114513635864740264729320372916727817288539721563114311580507326130807524891105941558476281444904229074581538787626047349550597892978783047672150776325269947521459167592067899616467236142858499772389436557245485745142162863769299009969779139210306034786453850958258087555208547699231832109123032669377356509463434448946972113278384111259529352539121230242792339022722065054489412359709712885108834336238970494172563363876560665555579931634180751568474680987957581400440367446836441455768247776614592816453433569387771637971254827663003305198823376052315645087460719457373410677878599946231563394790730363885702943667315451428867503240141735447082991605901705200653005470659065657459552975939777976811658255121787427569492930670103493485526671709450384749439089467109724052662770535579747573450128167440343100161863796977868061990786247683240176956535323211282555607161657524515601212632877978610939583479987404689213755535098452094346396975036281062441898941019363122494440819886883961084573041760497223235362048392021698733998460439443465808118887768037284072285264474947096121564522168688036347700461627334214792832047014633002058266933577152487976631340431494776364194885673818539472321322445708166869402580935616869042494705899926163214585204493283907645942572601168994169166123958664000015844651960847902986951672114129191435018543627045626596846677737327018155442691222666277855578818454621020435261539510778442347447610773753742902448494012249170857496566077411013143422715144088915466351821611632902518933392453739569230076242574821640003530565714965117141577709525493195245556114500631601967189396698926944896574202773545193151290665711685019955415167476958022333557847686934603031479383530770880165773156614777509328289345968016873294783820616734573111355179423657439630950344477606014421588476313884490022257616250858364392389044324734616087849201458897779220015031406408941607531387568647297934363448685408231002221184400230066480685200918043231155926906456942883876659755324286307996464620039207711119049648899643343242151200393989374491701723139871020155178049482387341598405696522663521111735569267019385708720369016217807700249290529398046949938769340761204440949541987965465655386719957408505892590833382315440201388917703628841040419471495056336789199090802970147627590900648061463995762489171977605540055767121775017233259939279916144131742003424300451830041822177002943624151617145551245096857285494446251941754836951230779882627760092828430468977691947945147375138756728268198351470013095795360911398746046901523964870031579244511597275522493486651090782236858719329621311095266487637308309975628057276679303829347695400895325527373610020941870906525293890025858068456875482661038832348465076651251855081593703346250425520238463247973886797273894856822405341653049342814642584727011708811419363527345818345771594094510607837129777797432914465954093815057085475776837697297697378613563711297507609533703545902156165443456497202607589653802336009694092612435278938204940288393374551100478813866246099328606854665753034306191072745988777727041730702209513639696918312178465268577318858436526142167730978220911482988593994966055649228541482660420033336695220286801852909917998123267298747039295139991472142032431545397765368485283407613106899155153237422018601473712908623901266797766352840772883059590617159815937790666573692023718243951625464253561249345864179792369003952207506599330771063914437085841703885749578017424576274587667393501659453366517207548252717999979440404484737674209056486516886402300995963356932005395081679402243215351594814552851278252967601817444056409809922507885381393581193217834067377397608500605570323668924832579354760197391244330403125352323415603799680320728352461939881757207069885514772996604781609362267219032371701513045493564927949341451226499994883207724995833686010517008092656324515962878909897285867066438694679990121085874453842683009273908786490754036595768976291174759217729363221553552090790069531504768392516010026420594144173433560052309755817763284437904907062167635011942752227425872279864014944905412269119101328652201186252318749535333820771034250939331887590155008345896386467159565219646120265201351245439818570478887038070947726873356241863234874382716117427588435533611427177352602590551187565320789505794707256237658255099319559965097476919882588548090267049085434928457257316574038832410510149417106479803253964879133707145676259005891893766840031994594633511297638273320416238282751766184037651624987797966914869422343708334830358765903938496021776681192614280990389950873819940508491382100865811133447898546111386707827550366204372697263976682481630798036225960416546879773162934676293262703203877687146344996786837415615725270172910589838236966067937745170374933541964643750647333998843479559048986526565166271123053576476770270928598877321503616701216884590832752994171275844026355535570190944132694626150427646974688911384426889173807707356263757608701788097536183419795641357438986331934407633034843300912076059200062866571914151011354188289068108871202527626722284483397500290332908600196423118565955852103915096594484963422586018173420696028931456624180443682598818114439314791409754131676593116519288242482632653752908231550711707230185331513058106778758975037405757366447203021196979846262565609460905486736379855052545526749311989713615266190895511315498655873558021503785847179811907690501884922171906389279243867319670362914266194214171170883432591999447590265251025035787415987467501177112917087225235958905363464559715984918587065280314522044573608794410703624836956170841435324937808803971944024010141006386616405209874326570124195803108338907909890382119120581477116942835683637592071696747726524903997963709062239743366664996909717087637829079620148627835049000816018349832694809152285362893848893621488791543016684044822239849165497816461863418093851064651565837920454711422943123022186174767937281116787614544816293310071086189526450035496333894633493622155981172498285453227067490440018053451551989291450875483675091720638486151190395290226623271895378018149497448376164309246040676509497118112025681779937657232453849187794346053498973116666596138854188443719363143301994343925946792997138349754007854048537934261833055563657523916930127894477655537405963288413433916533128734428901284590091431338173262312312411990643588851938827539903017452420634629836101718936617821802450510080875305424672881353212494038758561662572184291028650889577165257024268941066064638904388720353828861988395345412816919740601056507941690695937136937425802859494002627649005143510753458203015829777715895045108756021417767715346165391235103832673707174501866180549418124842275184826869616047340103283873502456300445182271630461509375535348857856405096393135366135354021630119822573162367712357504920548390374920518873791938848362703818317475018663381516193917762679919136265330851220644748292836847245968939539039365127998382019123103020778644288330181010557391239477728680222564864411366596364706838728233751894953609729543354863476933863191725019645705677897580725256329118749129638488017303115340220617471667419841778268119479086576940850459525164534634247197405838788389513882422570420229799926751537875778594741587088721887016995108155348164437964615558659691626771781620697491614675679467186096206127397914626342694485307909989564779442972086935400579142194352099728715258948649311736097867645602429251328137525314962453533346934683019871532858639431542337076473727160002260340046903037122766986153484076309711785052839961053774466104533501897397516605430853083460647803883858309656196118373759061369084097771555378801313620108936413197127380512437177240259151386444722079034345020120012694010909627356536069972959780069463317177906850653427881457942938120871937322137491477600040726919143207468355168801559746531761650353560495722550383788461686007417513897339633802797163081214222476085880329912865577070410583829015784105435650085756456164415122507992578046572131542928839850977173400896863744678556609738250710094987726041522027615000176466613649386609004181250343837501900924358118710110257907427267827516755790057908916744805659304838792879186350278511636302348508943313897895686778312089853992855087584408936675465292656940484509038023894689913726913396599986223307408821232660110140194610833971999063145260508840480966740424140801484697641446783587080727496970818937274179157064343085350369003899518652799893954114730414371514523448382964427831587791657152426312907111191513396597990776571033500202949347487894221046234818628499105195396339760425891910380342607706445489756542313604998322295913510037680261655720414183493669891882721672234793796195282118407042843705398389610617356683540906561042663802465679134165273316362115864142134869051500527459690471605067543885528143707771075852769868630922111232687900340105147839079510821078410358536911681240864021718525255544784631494201605217219068264489723145540111976153281445596722199862367147673601690828842240968247442248214178564340580592727974320966657091690955699189252599123255207816700211769947327081467768346139009459550843529161713861502166980954758269560307009716703329779884053206018736665573357876267114484093774818865383752071812384095838475036113977074107305517651727545979567979040314756165753749576401018655445687905506517981772428805654971049485585840547273759323300046530390968349346339592687328920688941915795989927573240649743087534814206803022343436794312838177059062249373848487279304163821127130543795054187942824614251833565160502997428890641859535400908489318923368758618883682975369566699783941623183023332140688996332616672127107327414817889163072102198245512765376697995317330468232222123183614678524209084544946180985492360601849420203606844623054484496138020897497235343669035304875532916182236721547762612787128535938186706988257574665594360408524843850689546704166473728101826200755711551063844105218147240282760554408052917529421673471524862368382425133603947144744325310154543548979830465540858877374391828508949743145429054398210657918510775644745455069013809025946699300680085436373964300604904683454984117244550028284426796176617007389706907984431349083521683817436310349011151487332356483995146757288045227579785190365018748338423863613982421798766144220646884151471251781869333324633128364146870396973711657884409677993107814084368242443788865005077236225014919350303546961233603540505751828323954548813255607558127400062759319045489042356366413804660739032407871173622442795446997934200559834599148634507015398156095313280272873245202613674884898722740741223855996200937205122058851394734115563017580308081950658245175844749916720419310550252685684445744170923297484383027620350091536262812891654853184692416700460232822933708465458480406203588430022919829580564359860261505340320497829410441762063233094279772005508194517689569397662451129661607210931261118725834525932705065712272904162645052868684808792834259060810637080568001815506290541138165498978161600425428907613797158919985520243564837709764113342881459718136839679039735159046419551095413573934442691764417533864113216897533466914813402807336413520564375450287511808478554219117415392714529083780562592379710479553040535782213730573902393961506000152156749355572777741999869468116730807619250246391748358068969815225487426653369829486342464775622822684632893347941472761565207854834491486911181499512767533597672580831418022649516893231950353132100511108494496404130641249784890835654118897140336517302385450803786301655852409040701219458132106461313426723695836078832385098129350808991449780779741342883516313818841158519631948765951842417931729234219145959855746009744047236348240965576754753552967686640603821447435568690924000311410336018060605421059441742813209729972588169422782769235344864493143014219244909055406751214202493555453694636277253445052202493399696240279336485363727800121473842978991823101427989988699127998169231999375965757331603479777748793795208547350799204352421120026040310308676743163517949377505358962406269798674048834111652048805086149435894374741897328476236584550398899755261466346450320969377781698723210971847646454076907409164571952147087298228729695751500317554800756330329255669416537162351337067453749054418472318475684132037982543843221905728672630313155628373643656747895950386058670124769557698948974410697092308629286325878237190976225427732712342037479160586226434414303652515486862236544977666800336418348931917695343013367198388710656748131534004593644114014735416405312734008042108299844709552768463337788486642687216947999550201160294177918843841185832480406000828206143061260608120291970857166348419830626565124508075880132640764039642662654704222460761954866874032399540816438738514617288578372455593347579909615524118509916383046575471858130480278371911209215307041382373298940121946446115848206238939117090159181871720558763794686324958548846176945448941748567781403554740674273950432671015809480556114763867514536051747466804211812968381763099027625195286191241422756374396994168114498747236812208582467490386138097809798935801311393212607428365331200284447229066749542441169568915336125017850545482477569514142364686588547719287314454391068495564529294031103330562432643001069153214863296114501274179077715456027168255037887661003232239193330554982780698865029669342923438479987657861041575520576760922789337500601712702730380032395301391481953534918847383410108428171574365524170207040544722042043145663186261126122934216632813654580481164813452761018304057939191868125146076457034428646329231274405792325422993790794108991395803153044246169654353616941875712013666837958332349812767283765404128682190370669482993485687524568781864833628443305664489789534082620630148618301977746634492929286815762703226869926834895387502560810225735448841909363219790678331187495754412528096787553012904258833325768360663408738823801612123896822886047637372086633854856079827827078125720314270146540499003467970386531143326434653392029572105641362212017556912127963529415313086706350452983652334096717692232624484072900772810338418314480011857595912327263234935979614215050909583649380371454895021964572214078194800851161871298527396932765001332215511829496287348512577002958411413101706934554033069687933172190029470639786930130857952867793884320922798628405429500664949146659594869078629778245793926586517388211133312169967853193488962887362629256922721509672166788370964940649566765546942441760340061704922085943983804217546815359601498584664760402142209655453302449102098470303968347526098197530605188846338299928549129582740570579944974106272220293034281335447903058306205857525429974625455569675510181038116283354705543511403113920159640801550182097671303744217708100994901939314680278555784597023264287673914955933848292973313141666517931939401834231986318131370532154126366704563419353039413707687250567823938888910175509771539271408916906122568069677630118948044943094227671832202651629055082610626614924816768192202912927221265665204546121015657869168403879650742770946331196639702381073270987377026931139112421559794469051290884952228281482690078254529419851577511142239838622590104521151361345294962428650909137396387233521412515076714519178749553668747421423641186879011364249286256175449587530375968700086337353922540362413739169820570629120150000163035148174260901152421917784838990799845090811110508868065047366887667725256323296012922056317728805964896984139509501306267215869238009660874902400089815469930960085581891008340268127818585034289639965829303362702892489551333481460907133350122228871705556144564284155362721687841203660840710279457049766506540318129901353432466656302124752153210041162703459089169938322353708223586427207799332879828340049152049434365539528808041285036465062711271693230047609468087157591016186629369917223702783924094731527175545147098719559307961949073083976215089572112754508073668419400593717333248321942156835868557723348553031108082797335198850947036246669085625652895541662684548449886588269492061453994218368579946523459019151043953554850678209096270373864401144405322032423614250761649075695286009146456617175913256705670257456031358919449263670257150846364130361985271598595557522049405002136172266896358894854357542978800443114565172760009519741484770250206865588219816213434548152180648029425122940472272095186779820989105732212774624866154199906143236190399295938863738181973575904788765349404523613020073380762980033463788194160650479990689551561488215620545704758303377430020711807466657598833262857448731539157957013299856854570146439913461183173413575098721318254711632501395693579159521387676840629231531243031059979793770650726696758347270753248988192288805685720522047771813766606746573091335248600761933027645510303177133161101175193786470305847769698808556164886967876515665946809774971157728671474020973121186219404987464077728538317857633566997536018776579185241508717907076799549748785173370999916004965962732175086525918668054521909928336260992264074103992717137620283608719800149674521703860334387625963501064245328318177285906867511103493039925630083845711348713255530518783201235487447783257552469418380667113868303921156517817216050546707683289947935061579984999606976954458422861406511247834654426528235662380565172787371761377045942669750071762571595990404814089057068967337051119078899766188047282214706852413295706316766516288373209425418003924944514826101085381295008618857236041756375272541759985452876430147465680595216802046676843934992466754930672503351859967601330032239696099195678543711193114438715578877839715280207156347227609259988172054183304360264637968257134892738359815505350131435696598830657843664767119984634920662854691291340319834495815425776414033107404177608485900839619524326188564303458752524964800198359277500082608310822286477677835030177970936904315474297733912738694241372172321229419372303250056833431455819659114754033693822961482438325216210524658323404003253770442056752715618364303391697023295523893222408608157742249079468209214536015923183993499955903099905428224378160461552726848449341827572590718705635827733279592936487918026898602111512153328214718398699085724273939976183666136537980441981106856823726025316152970271838043358205117443005610743887915281626969994060556863394855372730852258575808421374898497075359928082906906859353393509733674247137203756601730760624323550214709778637532299678509494007132150021132664536770290393644635899893539677657396943749445710737249709280143794097593417006107098293075543014781652076818908666899470997087303647823682412461506996380813426511148799339977846458831267098109505466812658435397704240218469988728630577148339270000703159430179781906425210343681170642226911911963225723793030630881473634261612772792332318979052667399325143341562780640981908610824593886493789031674551775921890957641500760739467822522033788847589273936136330820829725424018555752706664867454028092208911674762571405267563529204130830890771707172580705928854729328460080762242643754311950979880816656302929813705727707428876366685862141733049691743999670443219604458206097975605942957246851323241355124393533733469441314178948506200956160397781741102249004936809361268849660118469497775512149819356690528087108264769396535308511817813764213795403369359794376215264065011250837117904328630098341664804173888889885299193914778779076760329453002270691707493303414773189668655442841950775872777396215309228742432059262117133996351623143829454839268318245795660967915749562955139620160450973120689240098506159941356278634582862680572488484144427540975465898950589775274362817068198743491270356035302511056675109516874054445705646283092158433988501965606596525184265378116865758020212337705422377769275400596276730531880744873045880836574706581320260192689428362677208046100421122306854672833831726841946988005224428999050095581805705482251068398119444379592901618366261788922678930030583259664892370144216379941755667682267269753178357190795802509650023458793844780514246444651929263875188235550809355247150223111039186500840889392698299160983719527484167745834043149587534009552443409284893568342542289437224557972739295460547315078390541537918949488436255158514768805393032640346926377132958180946368382255729786167368867137260468876941938366183953212884284802349574904709853991425879890291035163521970622456533200141740464320366813060406700644566866435026623572076387092740134053329650234345547755918544908093664543728010381988603203234855359364516780542861779915190653141837614510438212641184248011499844111136223315964878176734439115977213402428414627395208622713279251164996125568638829841321030797757782959087838320589495166932552074837035162189049601695035860053784960299587985368833982622775300657709037358792788137542803772328953534364683811701554451296476835533962669680460948215664594000189893315181311351955142392411346849250786905820128565523282949637956147955496430257273301650872573160600419380846152892304096177649264627986426494673168892376095026012238210425199287808450338938438486343691848633957496942398587990436437246924210258703208614902094910126578437604357097386959433110309180528448006315738861827725598304096165686287789825936445259212216886918331259797757341956339905566103482755959189068824122165801399862144089434182484092640572518120015702371078024542401068106016966764983161354506141726520630503304062457556703469495711494746266968299890053156083345176160043114095691511381212982531749559331599902508767092691311367151616168089299387523617323785970846243824077945848089010510671323411122724777773808259931603550895637818335984597517696275346460422531278441019682011411050020566285805707927665986304926066253900147334447626843118924303349504250300197176946256206336546356617577584844022730960818066186835974243600397048272412214070730423087120862902874195075143829031562219145759853846311565134357229374774216272517969528372874403738088751191459017231321511973207587670340909194913779564333828927813811451107625165346837970462008817792074104279965695377519638640034247249694819604280230116101903232115739721601302795773073543722157216418298486400318344276082119323691576353296568092164239922342636901523620958818579103575727772766065051801214752363858037063959267370642213135850527166369989817340760264333560072543500409444807462917820124633785130873464851536075666499615324511811698695522566565601825798559455974459160783056634978497024647978261575541078033224825442203126542179208572397590358978590376695764161868549636782042723796226028723220829451830559175489482904621514289049867639718309835250518504391290983492311697420647113107547181803493415027806923734050840636185176287947156846976969421451600728965235481667254592557981391802185244093724022638749749283896917505658010194817870272697857423235117135468289853843194893648944076826670549735713775164109819218251276759141519382497903023400916380134679157554005760448970302047318730031032560529609297991085321673087026310900244851729729101661378109359115762466400817659084861277261417973607308205490681821562453308913919792518948983782856886823844611947405427099654014029199510438118799591137094779495299685293605646148235477244545007372373859882628669918053373327723467660022171895200705638886308465836034173769671816401402633183354634991574339551640676729386223113430665567818171829895014311654045482569106541964473720366186266972898342314549839536100953805255266052014860054772404461192591808468341145382319064857562721651707827314832002858192088648755486461658820883598390205265304940176591990011457997328620308954548766781263383472804319407883287713077942080113611911712532680165209680124977369608702470008793769577106542393145695482500993531294992418517611165169377606040385484459012921024274829177955094333339784866253590460420252451698294101984176684439602586855774572905000580449730634087823689343517694346028549109362415119725518072340608256995925417681964993995005269675081108858843246342241966447717428202234126868521153700703794628552189184092361363961150108282246737123874933085658874184477228711552267691289965801347251846082735095997253110511396091456149251488224697086758735161110227609773191070821533968894658373594303249823341948773254395613202844443808118892014524807925494476705424990949104590456278837710622272297862090918760833288086979428431513217686689552921231667784065661497724388570972629672061748219048025203828232641437172724120075240706824891693769915821713104102341406237752212952634116170284854322935736499293435621609920961104445855422610183936003702795677845156544084225821677625444408531321021687159657041987721353884413915645624562374337006827606605785605967503679583266874331229325298580614245842818199418747693743936543037327269396821120127116982853481964091633718058036016955299410582139368913024019108866639324490280206254582980591534064863554482949969037817359779441498344479393846298417575861606962895482457960225284493382985245161376677863310820547750630268356686545284591929428427375898203121997195341081237035805123294163869339268794546964184744873410663438535890527899093910306275618206601537689322999433082468565480116128403797100921676581402305138597440623879134250161529053988253938867632416060335530393912280113551211954636429583988942444253484208048785581181328408532301081112375164250741882361995403089550130698943677095785767189802657833393157980011246493878330203025293017169167178006242868260703516328772596992798038534035189055925724622413827576704195444827602763884731409712549963730681231408374957608783948868346023721100984351421901282341538529760457336698809368044452990452915921283804620983678963526710955529253114729462663762457038663786630174123399159428437482051302384233576662866693966247956531806494405939851564237006421721299197418402311098733363555608782571230419389202382384841135606277831907477632089583588296192875468786448423806247663216061031757451696545150136691932779954610538033240899542471310244975331966993840070131137100247553360594973331297261707343898572133885306154564219377503847272690150467186931887935194591304974204921603113917745129583436199539171143360592541289288790796867737679908215392731210983082919646216935938302922958601203695356847545513247568948111760887997764366094396288084347622897115614298637595413736540073407559602485817244894165844548924147326276072769901676396625962461103425213649094732652002477137636443296250836938987761226754296715737309194820321442762649101793927911774382183875165307279514710473104878711958865064051499795278464266934621537539881231812741558326049498549283858511813734855883797767311863477130805169020449961071647745013205350444742768490809247151688918993586312077751027691623753471534402056410574459134599788678224514905755009457470757100174513588867922286700080794975698797290312402866463269557278786127658297160103272895609411580880410795271331468841605597738327567400604669700654522703480557670021148192140886096411539551678499766279431607943503977129807000838525553958984928341266420984900466852139149676641988805021758956105221556702246826062094626626764091469710782498993755843146978558019551927036870392012094768686371890591811324119089842296019741707452244853926919222793903434025278204190882256709155694751858273067077737879683253672987141066116200480540257262414222529296241489993871368352967298250130242123953579842112824108906043572832617817633759511411561407311009753732137448277706976628249915251891234950838287624148463715812113755307817373656971823849816573047576709399010923364013638897384713654149091260863279846261578259349986772106799265077142224212289472604548090226160579452598144333355437167285516663896216547302216199366166581203336020809041825519529899508429554751627772760947445471700877045639106823042748659528101215041314295595630679197963100241891497559836228010840037152071338283471392613643642699237486832209547283343616979912910506827999893275159874347720423653889464323912599368324475271282288064632795940492795609291933451746707663848758161949897118023281028301631139276582447068907297624771257918068450426499223854581448859041510937046432770639999079375945556395508013639928979367390768681114192193201462432498812851267582347608920633444237423854579920735836070024294490847741606379865219302391894810228367020661294900893060486565344016881252020702980325491153170293074685618121469173069282800900589066822292231929072984542038462730596582578332658907214653288985795118246633197075461796842883330456450180085877600912420580665933236645684112256964808831395358522239378927653568259734480235048059031483205589256426823463276578835790184061666717219997847509699186275387221451256693012275837007325066083931409673733494660350267276659674958385940927048655967344455629652248088032995642491732616804539534544441658763402684796672536405117400317556464967855964276257868589227016654145995383250656653081024426549293934091516262862729725020984507799158991789026545865616981144685860136103005870088784768745103868771096092864883983818905393671639775425950917978156932257315358282327650697330344576327217029359409500637414648613499174171302510393351493860176201546845905374158485054832059192440620605274187310733848978581414953426196573069795338527164726124861742476818271619330506342571076864175113775343436002198464490391319858488680306842956208524888869333998437114965929723609847319923987601800178119640962951265764481544992753374954124491192228593633861337643358923299121369271553232589345867080348609189859901796104989557198802556878634759020965387893445355773676391972460100338559843938238738181278204437028941282748804113444718004158101697590908215365924839838439579008698653730982080873248900529562532616913949011071682317042968616555776723900130763815494820574717373839627468806519535772077857031905099116759946349833519590391391687920687893000052986122674237729585049918267933931124419118304292523234360489219329957359307936293462246887332407045884090423995591828967934703330556378505320880357290876820046902596486027103718259712215140232281091023950761158154440928618810427068472032912519518232580708141455330335921369724718071625575712821960700294826463798626047447855315371914061322143500496653099260554116096990382665008773882122899269628475725821681375133537433013080839587763570766049084792393578547900303114827901600035602072363584096943850196162887694606984497085578616125539534257415566252941901935632293933082162772210528122970899993703633042187631841786852861319812127725014256327708489912892253925571754945977789753600699778784772947066531427203373199892210946503523455855013631086469110661452125721983616870050428107646995762141565506450796659001399977960932661241199422489735202469628306085633318957961983049923542637074511950502303862115920943725707631293391864575924202006757654764619588388081046693013479749415195061015217919130651233711453720931056839663620674311363911853828347341541138290965554241279648164533477904569394814983444426758090402433169177795970126135608382060804718109283892638840721893740501430796079903629838947755353333793806643932145328635973597726434511312260616906725934223929303728335297313245239134827216985664572245358378360207697318350461415469339229721930930141753567912412710171781383170840743007405054246190669507725478388576056023337590203936896502074196295958514122351514563433774822081396366386178530482674521528732666015109502491180147672273819202031497656498143588619413221350958340258881791134611094806681342444375514443625931145918530583361743454552621643524625199268095410086889183775779649211004051753680810173456778784759868447678584246999905350927874475804044135446749231523502636341936649240026818149288124273843754773637080749458682525289835188263991746397817894923362856703240786125685313916185248137579162969564026693800703943444438140834625473328543121370520630602530021075434518245524344797341403195312593538720781287597691738126972382809507767727185107544806223850144396043615495801289115252097112067476080044734010398428156624650780768792925255610691152629888010363601660674016280698596796417491386910235008318047413396200110792062939118549656409496704021779494399700281790836378657548354790284754833125346742739424485543929568297354348896962315904615266198223687775181526193147406579897422922574356100023770454857271454844403036050004284839640559204069239515191583237463689467276140523743314350536298221664253821901122223946252052677348414590907520745249530372926718650326069658151759389657984204029748301077997556193614195440861423877026709352807265434750971299558371088859254170460580880612710626285829246036667917850259444648933049528845955310780664415563691079174868457139940938094161953226239636530275230126968735199663248536399818161035343689989441310454480240134497618946251146713443929005694543718324026890700264570165785062606889264233730943692709719868643865696182390785973862950816848393267563589225722096289369631765572129418651376290295740169928270856761203424800248198838382523971461178824238519541285432525468214276839968531964880132408463665725178705105843199110844608539887113653645783672998247968285705495799361609338893702713714227506405645498747407321494079383099178099054384638545605083593394958882518719584083754480553502045267648110983799326126664211737382675390953563386101909933397923895824679520517184062533737059484625960864450076556405209273873801439403714621701656129824285382999953697135316850429261870576537178308097958597904830131603145767870680825388342494803414190740829994194235744445682419264610720751992604269162756459602321365531085702312396166332247187720039544798708469590348044825353745578019873148262591969212120658229903098284314338472662143039081180041012645889299249103135348719104629795614469510732864723875754110860837998837874891122599056834847156535718265479420805912563717203654205552696247733739137477779337434520387003738033169819946966344268656083332392578483544975841997542996834151734917113597987342348345597747517275763860119694649937852588049615079440848884070790183849283766203561670111284609596093479006326406238971815553184569331696341397528457028795928933087350020366856187830130244908659648957447539217330861729057344445875037696180682010245815982598676251523378673085126821527175180372995802304602834284844362225269687471807593839413281769510785572005428303639256976665142170444189076937687325970474700629769459722006953163619994603243837961463351394064979401807390048869701282704599064625440627344381159295905424705636053079340675813163464157071779679362457504352646038488849684702825233114973294468361963632156413745343931308841051153543952115030509846744528343397572751827631972249538149586367665718261085463377090991118868111417911142827092789761513744171158256852864699771606197481145868597401577247285010413713661924403430854237713558806597959022049833130273178346064928904487601725747372162110847003086078010915413136086570847377098226718570925440587103668605958144634061179403150849769275569533207930139155132270212927120783198173824763254018350914778498499520059466352681569538914935604839570927270396126195971138271003724394608331494581183251317137701447487266631014732552318802677308223706097478557694535027425049064579522220606164869797589435583892609131851734353566916854489065865717095857630099742638412546880485849710810945216610150647114832363950666428615281081353935068050977036316138524505647302831782415967587888338099010981363582679726122562335485644321074741883323961922305793790274892137562067539880556653781691833021309353371517332578114204980088607605400595235014379989817649378370211645267401965744450972732751098173156240548417068976573816615401534261331735018818991706375516058911834392396139739627006549674922439842210350557050307141629151491625440715587653611984387263722141265546014501748066324041015602853847306729527926109521580323883857268497624246533838800486550801713056676335902630867645094285569186096623678315860594949655000320332274067664791446779910900971618524097331966887911779111217272686396932993714076368708409658816892627821066926104465903758435468104729452971307523476570918023740115526477092141921248580098443070846150795976926585566949904213190080377629836834929948665855014131124038806342942606573009341785630492124881619130261184739276240418688137233715177025660177390575862678044222305640413935487265415823630869844643609215219816423533880148167152554906820855212311167227449189633570233089261478519199736660230973193984038065275226131323857799336435563471314492620606797983655226361300998540013991733054235177825395453414145748961670689894487797542030639357384461745108324601717192557200483919229345787514634445398515617179543032605150644604020421641646895268618359833375085130228723348609692862586441429578847643528714953277943759210209492639565687006108694506538815582313475702343526611383077786091346672572792046297525749976418844571839516143932394818002335711058066176774437308334002863731379589940792964285176249465353593885385474339753469303712940039649966979759298939179229745011771377695586278097045501401647260036086415021514315045798620025380882960249313708522902446562361613685676823383925083783653520329917597133482776644997773759452673139556127925033007893141843226541134579470824037388505711811641739983989100472842389897612899695358746901668564745473631499015575998284327833174443569035984857140602227550686318243270874023610905174289641805707993596396124073756689772625611802464525906415186866475073220274200464696665932133894162577579372686123990111708311473435862413717564447116883169970908236404447480060756141996318926117232867716447333782196704705897143512220039338425567968888711564926484891716038280632490682468862786947585945308425489109858802424026763987669641595197418825402398534490283807385014128769296999966901432566933615958047384498708941970030319684622832645838947128568503012775537387697316913804980027554160635864978442007353031581061577239512750798179723777460648750932444906374340779238491418518725398707866063902536689181657684814953067735889227905612490035734906023013736569776272590741471789634789048295631341461640579042077578279489124444755440518648285060987847727287728324637505346234598529465670376926010960762097473092444098224205680750510229420314170875268704123321395811640817305940197498268568992822572091001942419101127519536006208792663958165772513160642111088918814405175942203393156731291234833151120328414065784930155542234098428502609551979988882881819755434603485056030983777146525840355825451908460454043894555550385237373193304177089263452896450412631729469210541580834627778615022766769572847961501374074961732946751243724381134149070672460506921607877375612783595516004318336360992655465651163866439631289442514954395831484365296311936911810972747503968016534838299868886327513054882300803938855544485341307397564209257209793801611586807321599083691572159511558901573630723180438887081419895928491486302644168068853575525135401902317230271348409693928397354755308206870715304285021974888032787851653029545321729580624414621923012233746518451039885906157915904941185899912506840001883079739772924281457774017815445141427809619932268018373443731392537156335349182620091724784862333122275727181375206963440318168879119817540839821471257719457662606752142201268596586092605171368806451774906728744432512941466811559936253597797746168733287627155816766881059002848221033801549044836359687725926481705490859589379784553814178929575067470656540584501324121983104052824327827702751553990485685114330803866556821264980954328749995697963253301165389408760873167336451588995509643443125414543169442683967552632877524854183579478324330725892861489079302516803056343583765728480456183919626436438040446143914883042607365546748273621287480086566575662353625064387913007152610381322969611574235439762853222694293078038855670603226755645772052761511401098237526199234415946738181122775771967168395473458245681553535697590228069694056208501157287784043366684181451449850460006752896857967194128369978114337605808078995440177388200648043915737290778751942487377281810144957152013790977050417843783101189220420294681860275968227109577078510510861125120346279416813258888763151442103594890632044669900211692253027599025670377818722279572866046981372886197566155910280687929795680746781081791463538744895112420469967213685276830338889605382161696525103051077396584315507667454746567197719759217552411802725404471147573040870646718348296208336697155828667634289171954974781407791705104758836404937795850979843340696320344275696253786576472027337805015148252024323851924861506972983188261559010962817203432108559742116686655478669191408633011999125414235143240097006833575132353044769550889918456339717252543284931001071591232631211065406595684813348112639076689055915289236125228705323130524720789377625486330780040712900077168735888254102204434779278975174037991253981686371108296395537630994861284922583447160238159374536604665459213099442852712750589640516713475009652884555258630320836873965763156688441209926572263658551017207068176617438004087868994795268716353164388239362703812098303983925837344998936819686562280429765661817932264402698525145233201039979757559872686765819962878372743771026450020763269459521555652046322075430922661625067947512867334895153825768237381414988115075888254821127393640803764019490141135321622898564876299830666193172644437402202086843297793720954680554710125545581028678240708758441827739964701642495696117469598390968443265991045000946370067188335755505362726523775073599111928872002685944370400879640532246750173537209684264395111950951223855392667201394191462811564980755239338317267720681974416307241521344392569836993492818890596810829003647473130290911520556106500892624724924366019339383422400011622306453810679122128625207323548505087487255612869569511052511842035693078964622708514548426947256215489455397194116901719316295988138307355653801515536075164302605398759301660716078112703955174083643943094044856928466801418016750754645072460875914540665281314461094179550986988151262076844441851205526854984682673270617256957553130781977517454032786221955935910358430732815120799346673375646853102921724615731285869578955759911295310271565920703173383569471408534998110248848943374725016983859871140637895492758873664759126352398333994433242653748596282698832342400613772960572988434118174115058942560552392354297830363123976516802239924484536574082051335760599784406750275688273235581711242722259783535625335991152501523696008064990722174340292286926244840582630689166146862562852766885282543180223498432479234983257646955709358902842306318467422508193132002799658253375409877928999000013037071391398613173307041412270068460179527898642132813430041525399496918259986300892480984410759656415552452214457176012810743533577106803524832670349171129720378719549413501466894510266303608458303972318585104563523233320816620305219882028806672623661774972642632688149104410223830303277387936894339116605545920038906253492552046077955450572033240327377711005615797321266161414976203339238290543534490763548831129031202078953542860762779365007156096713105705068521309618337799580232480156592644515334558688031787080478295360683165711341805818147135085903319782310741622887644309932284796121020277904115381648203813122070245643097344939433295226542485494702661726418278038841096652239025668586797839355207324392989360363909095240664635514133115832757385001445739732346190896615544239851992130384292024763525618794136876597406784823367258201800257354432430572099071150953650368637234242803068993576264752668400788460494698672909582320562722194158408731129811161122925184939304571318796176448787669887067530420551277227317675374523052495273624309494609701045152107113622096018978057350866046447093545681992861960395153256224525751336912572322606964283702207529058240496549853063060246765367040772749416048696897496420286039535853204242853816642702636156332861498515182507422678900419335660133619840627663774303920368938721950432106052933317196881334523109576224007536898552784794282034029938857766655435590191707262689661840488463494447485725000615534006581420127703926277676182535673198584901885714335592045619443396679383661168384348378343076323092159889694039003573218677788547128733569554577136233193455239980950933995186908545941023811662997581990382731732441199847506516308908810699756816357554466892509292556466339470770077318281029575197590557004337201106050102414995513670048132402194495588001099295065197084794903176688474016955787876252073548572740667055141126715793856118060340303962041540596916160039116385718838358957538454318603500248479191775146232601174302866648660266612960727323240687392554872845810321728224891978263645126007187420554513021302310464979734800113944213995879324917617238456359932393244646578982392977531246620709888727989436975570439112352561466792117331479882143433331988134190375625125430299917712202460139379092923041028221374403893167852265580595045253256799938176375898629571262196294042504314270851784348575499670248297624369369699244367504467646943674933559042711442659487571467769762864733712472359817353346927119550464297398866619902690255315168100058382262448923504737736351708103686997080662797014250976076503483445600160813080334197255597412742675246838898496445471018678063703970558426291634283738571575607196754388814774265823727494422165866235491756750545433675845479511742707817748004402565750772872765687919264658591067856881239012586759077526953718058411668137859866477408165057621164000112796888526504941056399902506951890592925532918220414308000265942388945351674240755202532925009384313637231562523190160638888975142452841266794163124246387854091982514517567554081249301896220968919666183651611451334044248078264276377119533362875592487613883811993950731539677883755509841951994413366992229802146276244000110531513612533711742637398466399678614021481779320723001694911475878560349519450468826305988006237688668217709245124242719453810906524092096001412166997641453858449373805882402919661273619298864909666391494729250959933325507014279737558868308194571697464437512872237208737012858035684015797488515303469559015870493325741038109606872035979844560439576199757292145469946445905851259408051931844384350920488894705513848359057169492327483613634010491623813590771532916791929582844939852926924702252058592057251162397432409344455144410227751411056537603814623515878984502949680576467070805955203860923966942584625561251298074853303777465050569439209100134315627785228018479515847015859227847851091534707294776584766234940836983206848581293791248048858340118370322263879372755745679606914911196222300690527215592053891020039519838644457560645410024161220914731018544041362755525215645833715999596373938733338474509327741887707340512559501269107478237981416417067992793602825005006524977570310111610339716634320924162518324881975257842599661652709590392572533432339725623465009087385607084255846942832261992408745737088679164890748036122165978591527581100579063701377234069847590166821175644131099207277361524586233832064665363218196542539636725054194216312331574698960267957671664386037280477187085066599528727173106221537511472391398994943699014744769115982728082059185745166399296104052108489520191651327847424459928423767160283117868006006414013370117044569935869534230356361760937614199507005058309266890200448036943583529359475044298814218039509622680921389957631815415456493126313357306287835047846620239687102135840304492374852679973635554961474735145023668225229496978085654938705137813112542122683203337664261287156299332064505375993821589391614318992487881796874198253824546012576671441466687706322287585403734664849702432849701691805970917437393197711929528595360097929410308516302687766195831755534968814425847824316038545288810640306624453815232445120417958764311507123033371872462887524752652391724444577454302139531543666215149714333419602839680994002087948855001451506899485279733805588253397377395101458818945620794926991529924114224829609199497229765389068242953990719871953195758929145925724860911814640283007120382811941201532233947641847567875828752658628121636036830670250080746963195611118879572351997239533844039052737707500026188626859719066638686590310011108166372757675812964856400926604811142135717278325574630209043661679610432462462528311848044078483212549192458583221694774091596857398452762375146239850382116002274499556936153111993109984136334208271388363922912234943507557612911510383503918624962829051637432203055663706910876750706542265565442175377802427630335041574830520504677467867748923361990251753870270064941539810804958772755922582509664743981489936908989420992321087970167994028578932712760974549224262922196583229690969975133905345346577617565527575331528190781226647971735304362302566019822243112606565692139835359180306778994726752178672017520045701694231282643395183429503476991660760960214903783126483134115624999990129751585150221332931219349591520497487740594563994753490801453427175801134906156636342320604285288401109356454131237194604886313387028386871984672832577783742252218619927642691262381120709747562191936603305957024097362002312061018033773862491816819704143763606377570314879228035105060876274049976430279484904645272751758453757706783593944032028145143599440436648266638897563695320227688294507904169774785097830266188283267214070533153436240785112216018243881261555780845167027183626840682762455437371527808639057813294786490680319958718299885138577619368859128938632804792411450028008516434984376111530169939698022275267213988066635752163773006992343608413943498573575359680312128906410911250756046553110413118369664683333424782408755513359384531810767504028861603597658196660432673756345297936645559593067241877836407194040492297694386064026221890807325308206229772094327439251746364798735112329143817097171152087066080127990222714207549918676489185895027863600511319216381363846338548064848827512172399491231367395237180671854712776079562148954861843867927366569993981639199794480943521428546599148508533609879648974364108788616059277125846189250705921184505119643492495035417495429725698095252340166133121900283744583681334145625619676899161956505983507688427286818458003613722172558920900916903398840265199299967857984393321821216586475820909289290356264198494268758331855010698424283295114846496242940193347633836400815441928059329360850597181169612182716686544046043926647819821394509488192477056505370634550101071345994024415753024642799518470005119939093633352318522551519497626883546125877871227974079867224196556900868087415990587990016926044395906665636422249389817608223892535939772748050258819592073609780970648666429725039378082499922808921549997687244244718473033407797967261063189634286463347971575834594320334349285460432730753635269370028274975950599705249120809082458553591922483033554223005038648194375315119144517338539811623684319159594957297683969002703477569513588865164123103821302406524300422421443672526620280271136938639334085833952072001471491205347786173540176699744628302206597767447107813506114263671530882036817461012483425085139573151581415431889881987416939420737747910805722202751526469863483792110383166107256287565878519283302931073052627986152333923264192057528600903617783238169830023169661530221135881157684492607725053898085489397146413979621770451936960687012095689583964710338811261257084327850443812246233824324349062259897043600807166917565534229255846364657469214505951456005179237143713026148012039092389372994676285058929433616830222988518773519843772525642224186968955559749816834356514906135908653035364782694977496509129579937367080927569410214497186402043694617504120947457924937931218697685362076377672337532624766511700567343897679612941101118179073872027564973932348724015201694980106585379621992795747126240045914230155640254754357064778260493533096318531725708100728317383254533337618486111031564894455609082729123695975084779625718875113320222720466668063734123524730286223747561822732205733576004911646894981964741990044687969874229869757450380350855086682378656634233372616181306241768703241194012043991956130198612235711966974936826343562670512398338830219295025640992503157859671503345580696312005348281395342057983301481747077017216147399142667119238107648633896278524884856485044144517206586660505230219957297592191309631586466382739318137196150555186465002759721813421688020502021101892560268379618574333987151268557705792027143426377387342555647262286415039842768723395514653825871215997832756031792502551330459914921650807091082838499466674823340639020874315783182301839396718488357348046202044808476698118458001366721411477015296110443711669942040441873454974279970845061871763723523588288476244081620077626271835013744746391154248233752738456571277585382992518053310144062331966594536213332875709609289286141979128372364109247617547220414521880301318589846855910106166277956589102849199671401058908128847315070925485726557085831981607565289249003933447392037014101354249885694217824977657914465850585252292221943656415612016510326220263550767098959560775883860640141060620137147842403919608187837178563979335040115770895664768368458402316894335650228964012893442858056657856418558845491953281702987120756481176678669118259938844636709823016919977709348858217323480829440048863429391485303667319496687789347048028258032453982111881617440484492557333753557469009531898008505123131612528756818946916415696589478098066575470239358522730073750518980032719195062756371283258193205277072417272431425830006049763616080110569783197295562680357098789808668769816703794191777635980409820235635805001424440150003001197831235884208614552437993227150777417596852751535753173440430755445206673697179365903397240334381978710232356283111056060336035357339259224201210804022830612128829774653885506324095906853892445260661653414839231984911492544527343158042560106734388157814762398612221214330987593484890253387334515826790809759044363751744254365631987809105320555685045196259736741750656317136189932322790788190085845607299606056614297068024322178651080140339123373206342622236020608234139809239639504299321060097574745414380929341392014983167605039748992349212479022833101072540868432330465422177129401720887385638578408848304754349573647476234205197520793555240486609156093589199846892957885399646003737869700603262163071004575744888298723670714031590956762793134664463144314333165472545156477899182443476531924289275335848514612483459863493613725705522425169573470809552052420935489944309833439868775140957671401485419401606232578789582863309139835453088204735891927792635151077320506844318714889688814170999910938572070485433789026099481153243570271381573821379630053321574485092736537453604411910235321390704498024285351802674437955103008172471556874355215390971310966667746461021827385462900515345258411357132764560992676290399727643546527230998049551993820783573443474564061592113560192177076092790065389467313030668922749558853135545394358604535250888711547907306305099527939388920777773346312052011253598453833689215918949147300918933494499828241361599436738300851338416358983691925267212204883758757715692339867810696475550650566291369653825823261586950488414512438972784875854578354637295538146669321669589165283188855845819302238252609170759095186165950435909854587916429577711746129684664818011465640261799346434039137190769296198718135457351512761117529903733961835299826835116112349991143540037492095509352101962390226632309313716264224807497682752413295994228176347917850599662394099270671238820118791086867971906362001372047892406167384270874632053769680822212412881474183872701969338174913022292172812643353660783795177465650744426245205498220106930763278598500746599460550614096511435196921935321356126155892389427344836834033552497996769458740889510627841545413376277723364602513728966904979811401112833025108290794383689520973967292287937163178049222785213465762912832209401694664064233224004641379954580064201898346256770520232890281721075448389785364237447358583422966005340290451045934570161853871700937565013930737982867829336665736367196800229873295786426600027109356436949759100106050856843824165966286895893270649173366182852732496819762317586487411637467534507828408589528276381138542268819505897636509674777823643907333808051367609032470871442433711317187793459092561047618255616104830878174547951394260570324843511614362848344525663436965022565693939061391886426663362894243039016579804286763876921406607124973853406341006798028326548425896522297963511349083853166966963317611177016507627380502733034808465299398931978378778266410134581915962700376155990996990772024038038162364866819172883902282894051663785767526244828939655577655462720395163267402106126783746791891195753627571949687806360146204762171702867534098695773263639538183546004624604862650253636683974792414256634928374507915899655763033329523501322707982096637658951407998213152392659866599185170626203456462128183067808797494276391010235221960680319844999883552974356201168409581130542676154622537430300451581009351646055590948200309265071437296661062244533811471415167915807269305104523969306192237498799854690043813485188079150094126499328860818226937441796527360649160946656919062105209019335452282755244050992417996989696216299945115064202580089944822032123390039881920275089052234373610852674026479472273399916327909515905224245187661477491493252191371058527366992833212127253628961415640975236423921259646959764269778949020856046699421445992371120300682118931220370479339107633693600437289178063840004587214751405522548531504801776032824330916373438639389217130416235036987605841444919551033561857828599394362209201147090433582028790655128099245558823383245459685169329800492820579421295686203398151046942755867838390845171545847672379907083652567279051705787222505952132969232249037036556056148274216986488717273263670114845900388226774510285394831422354006335185968654189437029648440045409747220411386488259340161755413705870466328570338768481615552186150605156854097406222769321156192124195936792562409217372440395854387463854922810759564475983221084834982767949398544816721874087502912990681561017100381420402955134144778910996182171056250734221481941472580758285411823612687981750956198944944153153693663988567745480960247555441083052636930382836031085412546646415196292273433667217480734500329045936681494272710578574236668051715564874584186149014756322177902539879500822830909719215093044594041686943956432106729169392985127121287756230686703550910325689567490815539843479988999868132849923037592013531979610213875425717314012852280036621321049133833440387388280190728756332381087458212684074856687972863183878709023302858959157359381860060682255573325339568292111796799500941954010348795347703167367782931674281884682734674784946170097692530959461911378608099012254319011172672878409315459423204219710267706960820231787495739410627896488685531089974296863128027011700871720110738210406856058124538615460748554307355068541552070424174171228006453048017884996497140743677387530346351143511662095531085773053288526535644578649635760859422921605310770066556968872272273773095134642309439399615690153486016595264864070712647834630995814516600384046231721875360328616506107447334487924723282105788675657771078072155214130597532223352592385048664676833669522003246290424970636645361561459387204327558503508343414139257929524704711783262129422511327503501560735491771359644702226687854048798471606790019211498123417551695226216831860839435475448657210028746513830798271704286553784375721222055390409287573087754832953919965922292656330269656509194004067902004295103014240117606760899282737705965593951709653207589201572525886097098586687285334215465022528220406465645828122516896603734661353121838825870833629835934793826329698183635232319373241793472121066567905115110165807761275722016929007521081186832564890497081895244508181335840550929260420372040468414913677493866220030438379970992934818769418221106408284558638185728833178138491774120117920876362612157910197272837014968395738999780103535396027641848980453100408109124837025960483361741463778680281167734873573049012375795607872741138670414235912943402596342932891878405839737959180676435753553856460531282292188536019710922113126539077218890238552896478159183129536541129389407533159685946280602924509351288979219262274192358993561215686401597639332511966387633928845966175795269844660789089887560117331032567933592646345012303426880351463238828270931535363705775137155153141249330902392238693318636607034881160495630906795128274421194477499023020817401400875831449888810154735436966754285999602681213466762205967222790137721337976620788537801650095838302860578808259089032925173014132860451521235874695701269873731822338559041689297521649507360816577645012352872918485194609656738207655003627961394615479869056285111955791836414700655658509592908128418157983594568828972365308287459141122071830521729482758405382373019353854755063272368703464856354969030755397904515892850678744741273613044812455062306206966972199444559862863887481357808830008387610054753437863129062824276193731219354516278978945800440484229390566188075553141404094083663172483019323852174172235343607218754627404599342126265287741506261263803649921685496959365923848414931295059203584970566807154730229036953158024600059080237112137327651145932895615701569487534969334549897138632754321849666006644881639622641792889947537851628238027975280763799199912882853554722966937228733180902095018526249114890925631151175222062978798942461988470961859925604627804691155042511838274755315099434225275802101531113146494963342198747475924041086253814971796677476972975203452357142359008940874451488791702014289035552802150375749984131775218097855177174632594698737214614187175477121914786889309677664235020117974353600390201384677193605345631620203356428787221275392713696856168458637983902447268179693236979105643267976134142700660671572093143873438631330498052858373505535507804386133543686031211971150148006322091414221900375716286590104255461682800633210459101209286658070255599724680778037119705341669515024079681919920336124694041174732213464637166846823887244078127385554810113025288216062166770357917534520873180923457646347149697610113418373285533539938868142483473914345799237514633468399569687291933765868646433591181750036135846538106143931999516553771003392530326221999378978298910269587664859917857352217281483753845998101723266274527125651048442708775804337902512289113324963567753531256128421042054872890419727581904565236120911750372235220383573681489902668822365124558503046870320128014375243306538131224874126831065241085085301337638765801941910863093333416680278522680019017028640887592516616691636347484664679297458818986475894409651238085137552589860861214480029360696053731495302553564688760385049540192889365439320701661602999858991144452441960842601070207108124318288959038893311573841837189495377262712720832945509040173566346600553079434940516503537596676139782260457415559653922011975308816516751899837478245671054966919229129724861727263174552567376389569990193212999602906636217975474342256626178741413379635960562378484783945604670177682333979903989034133997864998820898662930497133802853508007267295270567621012939842033189468072000865869224306969409880988475510809382293617717063667680609707778303055671810157353279675004591800018126214591946435537087576538262724247259215191707214080106164955186218769226754853092946124644943521297463917624565235995326770253529563165493651355887754362793224664625384392902133074864730042911335310987171308092359652830887886777474009805147364252186465165201675220331890159663482370260657415892553713817768317593712474841364373926647657070910184463851458674313332153398796418041988125066182654990016346758278237444532922734741726046843222652662376670474240420081981866452130529442370723350113268121704480832777708587474888099652783550122672062551700777054700101132312020708214514610682035538831157258579564464550708587960010163263464147373545822577669831383165736631665457847992597144624853007174895074653418557573463061128717157939663216157722146299078275834132570161626015171107907030202369727572729132894813300673808201933057072605710447936535647649929510728024337167637606993905906578185970878605779223921938429420351358413794657359521019098008611320900854142759114254903118160264126570746366517785091152022975866541680755318954826362708304788989790350194302073563115367077367592123636594425326020919382751049527679112468780358575826873972598900510374579464436273559275388029524478720382875093952224999917048608250826308177589130848385330793141704009942280344394768013903711887564654847041397576857470287051109391034310354204256325739767709680335476546125902378283812961629529606828361874511056539497324020096720012070938398188710966122029605958113332531400149123982261986386768133466943401899087618042346001224905977804358532773006153993852201576539966631800946211100115714013623503565797975045284671573432660212641859372431531212267074185131726446586164943986296774719240710405840661381502177641440001746112065698038845130677572259259646503962387737571278750873392210665763388520831274735220941504905918881582863817998767962582965235348024005770255069642265925764562926983637411772382606159974936059364643866783984663286303971738332415533724879143490519377419638722456452613586431152552742743765227634164756814790015511957868889647504638202598374601933817635731119590405639406010193305263518090801905844494323445562719709260249584526679927862264262849482005615187037975195099139021535376253649118305903797033554708506721453561717813742830254394359029150744561336360564169348551381103014965653954374752161830495487052151975415552997570258851964532281500307626590295478479593676612342439321290429007351947429819566782433403061453285681174846340720826021410957865809884858053013840005520921479253776353462123553073164781247082389564914164867878547894829920450945869471167938630165285497320527817406595468710324034643800971576937094728402894823771543669012323249519035081546222049876131647311885573286202692271010263637957520368275345922336498312152130347419643564347806187806726657433188688570713688200925712957897496956306383948042372700323704894478831763916111044584139819363529157254435551610915260455398616973647737130187371979375354936866878612930189687927418699444051699629836777695769092119003772048225566031939712418506187468498936019594079102603754103819597572554510079374105680373566925613852864199255510535293272766066277767026007005474951738741345085126564298605116225018111177496658351331945847119734515312981792600673259195113795223492164219510704336031677902273237975928531715226225654654859471210354480984347231637730306818440831052751126872002786737836949507466809082287443679016910308353438903179636881987662394745379667757704676145565055892170559363573455281030688171764224913140793486071018492389951382033654567767039725054696934454000923230233067126526447010407479459668775617955578153291201666402664021488290510624897833972098879389667234266886854270653951965030899067048898627863128225958741459177656887532376230570938809065627596377790222731270842206780977792720695181933802886383789424741983977905596984925482920074863929699038987729410752864860419767084811174579254029332841649570916623622203682798250050952628346061374734384539948818446667686624935235912370118585292179434865418607927030457049915789057692937525988089283161957226459007140620722248958386951243835874193937761463234867934655309943801910759708173193533310469342479251606046299833671104316430988170483828178970153992867872340492507229447461923024829611070413348165429628555063786659001395665027677569570035208606536610459025236604817340738800820017932512652277877952931819584037942323290635750474837511160728096013221638716072291604131477492014880052392547581810780994130797091556216354082782674973003739606560184843358449468592566927998646479681192074950332901071641537821512821414438859861417003486434427786818522751279262261393622689713019331326702642239841333834487456856274978392075793948624846295587574658885677626574854675703383728076091210931983106843870989817576821852873750956438013355823661721267936354258561808230570429997271543291512713596845284303641544386964042872738928983141875491139794003540694490088205096866368700643046691356800096068036039014701839302545322131404504165228276435532246000348988890496736614066935456922062465126075020584686539304852955250113567021886298837325214056486325622213148012139533493392846745948724911923754176034532774689044879764173215642997459669737602656067640385044190636100881873456787153704518415872686360782722951025803458768550781776946733112300493864562312857374860696912252038101176079661492089153156222513692539201565575845367615407169934796029960416697940244939736894844108082151641235569800520225684504950124726038737346893880447191764490959093565838955606597972956042176374704336768817897492478272132229182520996514711663700110607917757538393839876782204155481095515745699282374151181374467975671398225571561800926663483919102511854591210895740416765305232513835566323488542973446189332098696174612784559674856909100604066539527228547832040211279176150845546696108570186695314327266132085941851520439000773856499569637252891670485048184143030537494843358081025379448727631533563583192694868190677318172630093253447992051332083080675657542140397686161324761886098153713785355100094773210141580535878613564147239660967138766081036534945530478811083930047737899327604621561412305691619780771787433042968698330036270065703425239281641397587806019032847256997455211804519231444549003923751244889870747766031183163178365843060715836161097373055205673976442614219979730630494665236584448787704970192882897628746225908089534824929362948072571693248272193436919351883368035036833391791621064013890246492228859626190357624952981816891607485275831822833726734001287683595292399352025809648026887829774768718397435462576846222965151476568088578369257214944178465299431377099552314647802904747764386683957834109805314023872674913248555568114063426684594655997190346750855534076026796434145202522066408773139771618573175545599491021891184572467785777510825094180324307097945093860962395307493793207978327993286208904348186290662738166851431500049564994550991566100830716090046935629286837333737115882171553320493858974047587100953199922063162359121802219029342009186901316562171065355327128027034923887419125808517815626698846958116855681723622896606402744106599850628860124290195945622219745355763576814408770822150186562186757016567921363052392581398621646999066286234584230639926904534886462764799514010411515295211001363866937327212852963673936084609549084662390195184302984774612953554920183984111487923911566498295550464178249732990767793016381295629983427968519422803925547647284562727320152172795964574667106614975757946807556091943664231528169529306509895010890281542745695327173177281735189414822345070171543856806711042896204689375492699608897938402382003457578066789163260586539400118119235456407197874943224640873339217362740690081475514160112764684227409466154864097226071476413818643762217513767416340663450222222209994071521123467104462098095657815987489958573168826453672723106029144567833853777084326520969663073287839009751915409634191307200868504597417541574174090284596078059342443147437444082158161519397517247456572311233356738723854242044221080744939951782474111952385772785804067824325730152770805321306192431868439736516268973549173104084978414013656810242645124785650220711653598897371116888862256915482877839162435225125869940580262952241444461481140890238681265203066790857164123537675952907214764033003900899908047256406021112257445936821855572781906232392605356110903313628649550202127669904533506135489543872034282916467744157537309788035093537574498267868745949784113314418806854474674747700106003122052470990081229759039868904472560215415964772645813143728378563068062391499422096940464894915983298628137585944544010791353518915450137431501668603927473756764815695880823105722733883889742030135471176228584065479450674417633012669447717991069791901171143538665239120868725491379721210566724698648384230084786191080963413515176806043159142295120852988879557103925367045788504083712075892638039311924765004504712050273961973860930459265693109653547097710547978671841486778406508523931700048389831108186318323443912328804108905462640856414084151906483842444780938062116584710931838437159679137560178157600575628313859435774577368421133868740449520398833004826793126377744079332594872125921817023177002078978734274877667341847013966648955311524178660734698936428690994497353858555408308126316107380876327745628267798390658807984247529608361631083220872993029896616324619677079341125417546924448939156142891197993537039057915884387761880181625310456738005112975529231340013402359714891236877973885666041865550471942252567795426059352860061063174341101773910486655291470371705340616851766685016294231540274051805942403249028489550527179815142140894884856616465710716719460071522703733717252496525633633573605376989424557767865394750231182468560876384312873770057801393882087027479797050634006632340286416996022448354342741348821154021251544084012069353617355708476808983036130905575849028017785167840507159632743916691886213452353036831996215929713172729029351493536947755435886243324716510710553709903444078505407979799855830619821913047984172582660571514458792335002775214794767901559591885596947814454021530411516096452868163546546127627941634850229781639697291898753345738619383658900466195583911482562548144502502967824839316227734998917846444775662310705687684332863734726543045167620552224639807242884644608578145682175188586764314588795606958143829006053354784599410570534855418040024423548654814783660075398421536315546043661805261168925578082284162336570978754349637068509404586864065012339973253335786969230324321942657612205638601459101683820582254667623739841022549825836582526239561697836609429012130597902686256006920635110091084114473120494510055544562165985943833701514472290893450991900964374756917003091799237602981590995434070559504478015446477835567732549070374159985148204283470396874878492675624831771218465922893266176879061721275266014574403472341675291832313356546496415413647999879969329360687375245666994124676026005982034611404562334740783131239988743785430313604839126612843470858688144663681758819477099011495658216726350712539844454542698871945253203998307046747671819087159502320054742738763338822021628488980295285824641260195226668989432108032260522999600797705548776719050393515380850353580277571341692102367107825993497485437084213558042075396595594989604952775001214224063549605626066546227798640160756408916243830367796314853097075601828161654609611876075706460035461126307441169181071293539198151208272250168297816393967812986374301873370287538083809428706085316350201342035338411566840305483232488177406259329567227869501839313098587308263779942846816653890876809806659154355207492352356676906644567915015739921236944101103763050814163940641926962466685398765725609497630133373513000927876097963027697255611007100983029101519954643402342911110642013181103292929175645629395089917567951059397216841064972649212904794534321813814073901647706931418805429804355788743446882006722874839759270702359222536295746627791181746148655661930258135952204312153746003680764744636718028705569625682197695588848880225497512682801166802510732912741580369894712286384020783839023188481871852734669876399179184576383167070030458123063873474169582032932210891463788872802840816558586308856328225198867819100553767789420881335689569806868400546677781633358968659557785561143205017657882349786885362894511721864127705108147670223755957333929241965583096817076922558745298497490724878187615000220332273239118787075048160237570439733521748977869092281724370416418343519940071199886093849235082638748448340848296123327495693534397749534588851424319815020527333316271925464802954329323207858628536968182029374407329443887772302063573229529439716074854970319791312226839658019588042701865713216882129020876338859665133595941319216692145721755731771500980925088394450940368690815170975548200740297841675692312941144600940351875878195888799266686603056963109778754140403230376661362422863950454564070536001605527511003831940206712975742069793038154753147681900090124937140678696791745377863677354225508129810444883981398478354896506901246819653792688301397668633004061600703111026336700224068417461466331692432160631906689396295742440083786242110110583188939600631262731499269773367153932749461824938010195428736994503986654378056653373394450944046564022821639194006304084486334537359583498614784273929954415467686310462631096034597735961536672329063034171022475573828247287230996022177842633655007490935944530096197585890579816729991436231244848770570916838791811371378439515006500352270698357354580334291372732645931723162495399957567268858175322997575266304959528585146981743606341531284813076837607954231769826525629886592339494595747834448554109543646596515383268209437062169959420211898236650146235283392552133094373138822619284999350164333969947343912087467690962116093959767263112953853206898599611044513198932786691739423267811713414166418599401164275067124134674527725105071402680800656131567607848666978898042746694500213598735265677019471241064670576294227204839900504488259974992901217669563719422066190088516749476331812285408657605658984184740734018471323182924983511795633260140435590349812778126286319703731859565335265511288277935378419677513305389398245773018119392083362335140635769372037555142993484229155827478349443981565011522392276657302306000124408977399322547123427763838370590150682593139345021251932795130246863571875672227578843390027755103528953148555950154560010135906210702170291903225954476316161683284558494342997607165864636149221686926807964240623894007214767006972177512040298602617771496372359548718919437694713378831593790765211323984908804603264338775759646019190448169355367354668722909212594244178772960083531132056948682684375657796410414396450330939900325316746463781174300670852867057120653330669292179157592344732903516070902131692386542150584145638536472822890668319637556761997390981572258273713800226210673375077280030729169582259458274261882916058464544065986105467289979291354058637562943937856965322947967979123248142952753042227988950345924932946706929917862281327138058377918032000975942635699146240703417737655391304290465547038552367034196685550399102881743229865409710047976481702205126739947734530513552292218366405344578737313908554441854053793360812695397790605825246816522947295155132638108516158231033585178573951063712086455061020071701456830891380102376836401849364964888414954830327670124292654286325585188325041047684214255163038144802038017918081051292025829751702891400309668387647016004437438422563349743315602480788100760943383254976663629727442136194333596837669860880146308133406947759722787678875900045768145752068850199673785567017507094736692458696687451939597828577674808628409757864634915214274426020708101385926640924282529656875322048593474798914459387652016698349547664153200523794522991289186333230049454965566327059768334100528171057848098381604192552448148239800696538856056343235065517353412532340993357742665430686215089633191000943847490413423879705176505822787587896341193874559471694156916327332440684496476054588163097513175503952550880788220323952622295796099300493179758125900465670165077654817623527116435959418981003122777111575903267266547018280127378673774440080818962835704739202827674217642415156645503128961144917296896745858052122577399255616190442502434883175014871023224065790671462515863482795049770406378265727541647260832309172328916372652748566680416274272444092823673230606128077511577765441137471682401685681058636930974929187545697557400025766466826311807578000025125977717193738006418605753797722145343015310550815836684800996731839830884037639300464349861409473776294094972088213711098668519177756706411731729938485945944351735271178133501676395000671553043938352228364171318194105624180315200505168483629930863308652594711385232819396841608122087788989821207791385420288479101769999249788687442743815757275802414294151152740321628251721331322665179129430205392897585799158745569911293216587072615402232090093600604465232898559512803658377833868732633588556442041471398552888139758088515373549855182868943683519385791527547724632892337516951615220019061015264531839701891297892700153286319096310994132351459791684526027280877963948832746007667093095863413858732469072047399207996747859199935822826039034575999518539182905232800352894564325212456962793445878873379037160092351364574738296851413781444192043755423925026693706836543356733948521859247353552682769695143334969154360025324918382540178015869884564521440150530859604045572819946919537012815889920088423579517731139796493947058775427493753136867349487670043380453266745599722045825139906782486738012370290041350228582228833185270759155562398767477269054803876248184433474107334644281537671049630206036426895713424615406010894934122769211464481140899567910402906616420067613503871585700487244413860768790138012658166385572051936850177891379474913689980196396812003096229590219490558314474880684566255093010356306485844422234528721199409399325408503785503122247563239547157795653721169347068043262096270040738015737003640717032821459797040968288255531985055192353565312035430315572949456498448931235537891177774117284233456541875796189625599873666573322863713952458258113164852831724492156895399454875868260205195702470430720779249930815089149836671519536093461684756626736426753581806813450564966697603015452940581980468595984195553447542163637514263458034376168325675779902649650921785554699198489023592011602784509638950543692590298580889837253025025952462080154599789060115780215897803395563466343330707307547985745062576357623682110287784740343155470700105327280541979864581859821913275668335235682094618971168233473882915342701510231049148985290413601241448454168009851781868566003702226279014559947340800142011291709693254280034957336968056570569391474484259581949431365923839019183926818823509698849228295169441292204939534987269509582823171282195901595854360886262032701092430369257874776325693076509240958685475371972525592265604412258117345187853287688084333933977225846806689435496619563267411419333912149111358886171197408012266603709249950104553150558782216408017261449749654780972759314472712397360052180453758258909005340856522725662992658404262836135465621320084410891472139548736779456003434440695203854555515474703885214987859655082858520656720394920161354145467143002166489034599432286761594380517183679476597858291028380417387802190154559801909635210702290803363468983622954617793158566155980671749007170962513400977104462966601802558927726560324378131020487399272490985193231412278634512371320328444188573741689232595982683587298838544347949963107112198191744827244451817582425840428128360764351396139636410142652258537621479644676356656850318843507614775259033774022630416739311654324418381008803238177619714321368339649652602354541814173342036089251011279010768286002256810192259489521313453213284864216068937713830334379764644778571074563871864344964359162596639328730389761563075563739230359460283979860848821793128973449234301657558762335160124305305859656730196745490789401623772030941120895820980688854619190883351998721379924543985876399071192876904142077838806107682819473686935696900797169835353539443440741983561471668432981859343898767414510402509500856984215016430829060303701446798662645684524741229483449075865988359652741543443306387985730107996902391913842855847156625792100756144416353167000428319078228610959646215554561422669878663463281400790200505460248978178457322449687104557566961322986213239291246367921016201859709808945829243316327107292496953935466820716171612935938354388990922937070676115979321699106233102119078545864127276185550591321776782311544759223059081976150235815454072337448225729947157950462989865954693538176410770589676173857297857254949615733485314266368438591672343964524566206524591974222489648211690722463209106967154882498760317000227069554918347719548201829266455771731346694337645495973765730154591996424513050500830999211960631945581734491654853529633792347539959915960542406212721780047109980247070314711482622998161702538222021329400744083593562840506990238202131132078266047808472251475030509317099756823681273994551851773905396611264793640157018162352507445060608220659290313355750561873388815385558050812234350702052942945330722617262152552751454862108192597508994230588028966190762466011685364188388414973425805336054491619084941611934171633119487421305714317937424437007019758846966984616488547163569426223021376600718264793464198719094426757708378889950911168791243297155740947162080417069452188681198699711853813384695018719531965664168010793180320064633300873225412011853783878357234392361413198357366678171383151345202007879037534448503401643907447406501154466216133204248926524378696185499186995264649587581535115559027759762755216958187547578497611816023500107769984768623480001893974403039325712667977025043545831731659858478685045739000658875558803066678288884475437374147842647311076184661443545366062674221753863410855363321377100383598748644486433485045467441234776638497686262262044830103963658817548569166097585118830343483216694057853243532966354513446800290696139077553679010634945199916815594028218935382022156842531347118190258612034213696396786150854563727654541145546259733236862392498956298505954612642470887958814506918476843998354096818839275401423617276343314452472984069418843769726291164485261346137697612513004019627031461158140128577529692917731044885205835771251911136755531023853475237071836223494108411365289936818640843135868744748323837536427048651726398654855309223490499243426398129305426564072468323303178661603389787172475166227995395568599978163611883995227143278814667758193920021877730561563060098007658643662101482770203394269814104732189765217802311532498579448049794726358974321201975267322708360070072524895131248523284480899826566509979625414267293212724716842838169952865478469664672256487808518669942408852025857234126851523994190894638204808115768178723858039742756893094324503983229359068534564404015215188293675898450315670826845497275851275932513406772753460250556300894048995720858197044723104875600695348829776099700878351712087315987905521665465803688603627844565529981242706624727787275594772004484655391666170204674870592828721276942081836732719386764718369792763414178944069835884523722585139705252786018357684212780997842789635682699352327063264692987398069375129562786131540783292537146504842350537961644270290055813588899080894084172602403009260494651798605148543934373065993241645333639706181404737593092062998852219232642784791942920084140196316824258240757482018973241986852323229838260386653248288615781818352816184813358858604868652918174354075923570329201614368694328931253678254072807878278972921116808324559853206850081562674342186058522279468592330218290709712900491816446803140840996080747787515403516446559308393265254149760313452221002435925157171788170598513120848758826547196163861653081306020758615762625043373899859202764278554032156959354915999369453840694925895151158576563347408974284264700366219653393124245674766360069589048817691870334771888377262934997103653478788966517023675618332972580285321650168930701057223544379203336443959641149503474170615460726856067757805682124678830753075896322425914683080070425374278722523238831460749086321744316325982274349621920565220508031787810296266329979560155346312355011923752472448572354085810894749991914249942116724208172179060489289323115235773278127163747562885272454244897942480389791027990802667353913026150193709943099996782304669845906411287545474533434805709903573205376994186010635960446056868784335854860051501976357055602677573427969611123714549123304300421759926452795214196358808980762741040348712181556062389620172795880005732067898126148272573933214880450963446164543496196749388736289586847773345852150159582674019298247161613423813527358199598327163225720874011392969966554792521248146161415028073912005265346114981980412540708675819181201216004094321275626670534942583579303901288599176858710146207652203607001940457389403527228147695466865979681126034803823464004514265456414544278529837908683194982022345991967100437985829727834144966506307729959585462341750914665822533935081571612782013212841977646642068432405525988124107183602744755729734005321308011484298775295807377588931870566418228815032053857634393857360045695255213490145087101027976385673801237720942548543019640233501617337108077690594628086901770458978650465866179262476773759201729273962949242648292205315544041738348955440404399560789635205554520956725982929588450715685639796383049484700074873925609480168994475860625362074488132327912781101089407839625584994979830021169826112091468897958743704551856205011150261559091402643928101717493204561881981345021109521165872094312485300010583348174696130565991048184152405262066911379316842657767905275439637871231551112239040083438079195996995216213929208564231280489343941979495357575871338202902725900894468445011973549462669131484347088328137165245922228238838432410319007882172959329816826696694558114356484326134347278367204973156336229984041771237591807602878833304505783388316636673257939346862249812477645057103606482464236679758772814228979673357956197204793316707104063427726455932622458130095510774200826404936949398683458814078624471081949231267756658067137519741934217915521133036457800561342226960447190505331167788303817138919496386096725739154891131496121105782078344241421055714582243329577516070829112999599608670301226214285551503126918519291070823099652468047721579242236975647939968674179025664748508837250924451574210312387694731928488845555307790398459295598075554673478248238931383292950706026869400975850927241070448812565250570795317344245677787192802723782875005149857376367957014106449533941095515840180061989155463616165689230712301626147649718506901558688681835904453532696558734763996824141297829252968899663321556302614770069377493257017197173849310600525333261384565664997915109875773964329382826043819229553302327088393873711339379053914367535201375372141126213912230472093488872511619716056178762662461573099977320063824261573795798852137490671797404406110003320960651084251863843350050297599762213896885200363035252823898598924520051295956272361362986562958485934175659423892561877146944357411000369561592169260961751459282204263103309277514853363329186953603459183529443070462730476586796668928098116361625611001909208356046793710014749115918145559248912200829695382691594252962471524693721526312371768010616804086335166861038783337564296412541978158719921464880018960380590215087998928083947572086928226853695587924738776700213735419401057062012499955838177982743258354848218563876284971762128451122111390687710734896303664454817947763494515233879671481370233720066882256771035519849122115196114415907347927333077122271677306682613581802417513663811010258669444264993380666248903201395432180272898323775740282180583256443147814548417141791117814201122006228509140170388647273783865011266471372142061552979130369204452809371571681510511711090661235337640218513055442186707765766794151273984435793293702132945600042852163459722455858561608395290521970390527612136081692948191538739910706149346539452948757331179227128576093373393835875221221492836171432032129857665961723075313737816060758782888827287015621096678068379460867530473931344674023157920121006115430825765645343173881979260315838499937413368165222558980472832775274300853286725754508207042407306607568034535377027065809778780061746713433457204674052662886025122757479434945666639900106242406215479367243169261258309886698400471832494798453902974301085641054676061068059546631868763333591603142901736652628326217389190046280012398218169383440703635101410330821271563883952049077419993336435617395009497252422342750057415598868794114626991078246904263476320870633772449549846417743327889330479991957381504877546242796542395765713048019007943452982380281233290469290032741821642093198446884054898641231461259634883910774730693855381785369604186035080869923490780546163035758724465892284287552352005345922482816911180532895707047201418295823746234112351168476845119898430334753075844254369378320935552168088728884291890463397313934549305117321932494551192635737777815124618783399484535073419035691356755374308144889612532687669915822925664645295085393732347021392235373302020397657194632150071634729019077021576862299249872560346037858235920533713357114440253019456921613133122957423220916526131350989569320226588340272774913555376926417611544142016165920011562661184595669164739447792543483956316959359591654649891336817394097739402722748807363390030532039647627863781805038837692285539223824613598302255141118325157802824881597658050979477971212399591884132033885310163961771862166826518879737704876070730177030439819537810742621725222546134257634863683982703346261855357372453401263009710113070684945257456218682024995783145796977411679229378431635893352601120514822501960524778940054309889732136233129738833510483624260901188474554282083766836172087977017362249292561812820876892732028597568457279633718895537453184135379948608113924769452697580989577535139372061021757324806055487185055089449788838701477734187545138383801762234782420232559691207215469535450687921326520633076328694531660227071098270760993324951230935790260427023159152025762991305697800006343653373934323684670075205840661734378039632715612674381301682758006558940377605052546356920784784415096349546125042181114360984217738674064647483126011203814948732225560472423722971622414717021845999240033077237742260744024351902120418650304262207111544216976142645657403673429069300652850023717434598895075453250922931776189593700480616182244029515630292688334463123039189327684385007085783842090466295354228730918620939478951415950824718690804109562403882609456488061148392748226960416784064007145298961703886197386268425823374259355094851884905322608568276486194893451501058766855909265380449215238824801708119111104135340267959056437552435248612582063530263385638143201818448266722838231464008746814578987924439411675565413336497387930300202015056722735809414076331819135072619131232773187791714502615621612452362628568415526161192103402218113293689996302148876736714849224338224456256219391685129630764468749143554788970323244803254020878650674484833915801612471792187488098461261122573768260176601499447441850768383719837961246685499401873065679981991198307647802529058043301050665192743365536251155093838232529284369377382334987985865008924003271151695136949175933132728605180658137375388768199182479391323890462936292403325787938226932448345821771308418885069584818816878461223825649738530393783051512780481529801001437379608267587894576164942865100046308651377266021177930538742294200948685552665769762806679534471816953118844732946356296886435584331920049816464688466319907256506696734379740849775514406510721236976371248922427457468630767374673310441402347373973902321829408446686010092304126201346272180818937272150600562485693661983572286345659865900368586059522955342460890476274848980034231455715130399671451809981103612935318727959220546117393826408034232908424003397594511707052087478472034111552430308435594420866587544672388175517172841362933527814803982107776745281023293930450148113715385244808908091168334919566958795356151237311108178936789501864351493876359871146134567891197345870472360034353815492937698317671386218029944513500775313666329789753713518317570198932726293104941007955254504809399459218175128388120733530978098324207696205592208948296019938455526913376678388501843438465655163288556664317208700446236822602973194278984619056632398862800009673589798357861424644294291191106584233334117464577998759027808036574192569858948232700974523754049199922374768399856808791613056746848218774785402209071405427162939455171438784509262389398745015948545756605737078956056116074872237937697539014904377450807253863281055065944685480673469580762387304726395393030164778534157181218747015346175823040332353147945626938083520985064798262274078337620873157244556322198408215076866985447631252298354274527617716906144872860733316174521231021629354921378434717580890210794000136962283374450913378115118115467048289961709307597305390935438921359901572787821539967958018852226647492736209713001373892905741721387334491443437467020018900542396000509754390969738891779319181126591912390020861510813830036365727851717010294824660248966810996588893199056167950659849578936937766721675690366991283615487913798255735768155846202435630996186493247327531897516358451153017540339503268788731982247689491842658698208522170127013869074349265562882445619089800008194582905993415969538040526910719442320302630428446510496305558269528474575173513906924102462904218788452146894302748372989914932692037323349578216520727204938038349610952281839726403822834957545309892655960618896686842628850804618463530949377522208750508794690925797098919826677017858670528717741524221796237775486683855118349533194548145502234152967212833382803311987434729925550906994849714003227846922105523133661723376344954376872977469152463730013357302649518444885698000634553305441722885644052657323824714701904779224653024592517069085361377156060152563841216686775188657008682424552043414549177413758134762912287597793870186826403096701312807164750989207098462907495269434525942693058994639132679413928268959873569731901504998650451652554721380491846204933941355980827440090740695384056388968214414850312773541162430986312392094098416080126856855630563755317916956916240884342545907181972378272842615227989764118100986781656827107439304339817388402015155520590530345661343719746971732922200668307777585605028818657129379209160328362441450345141297029259842714581845729867821273384019928650021711104867672704198617055271016969786351490628110731806819516940212140101356673889970167152754724184551305292160850915343551534566217001602684542595117684489371748180221293199020339756015334785704420925058244109636657479941563791559575668237338851524297578888008979536658615327263864338004412047117597215578989767773867538903425624790726911882063536260461892515627965852516935575767178026389183946651651971887672889229672518188239087092833219447123849086580354676105456715063608349859261460994854859368259054841928003292372072668928814251664304626615401140720067636865899748593482346770493576568667370258077361548441325823956783965782926732131128927719591929566767097811223213700847620223497133756988675492298157204025103598632918724446529124490893007038567710291513304516471328832846702410035327644434724224012789144346203455582234731264960271636704710040844428469375054348874145444736024415654158997343696704014803026430606017202671287817538157440349410886098365588814502533270857793993140746493418525460083373521636840517457605233661151978667661109723633002507387067693718114618339270278150167209301261740055050009542637654158625320498954482070962326803084696076493210046051165076895146568978189042780755452043762113249864452663719234236077375451494108656477844710771117687038061327409571685209788499463062813335150391996621937049044497466139782908426835803787140934282361528499813253618784485201647719577147467185915640939105728226403924460331991048170926853347512379539279413275907630719994963099581411758765497023281784001115196323853182733917866367624850454577699843507560216893733216906740591523350662837405298776028556297603313387913287777652884103537177411645374572449719240688089708300616165723444936134075392090185488115429456354420212614928688790998102289027753084119337274454116233404855612462180590854545168701967037357357367886278587734086574014603498708849439110922953717653483082552117911294803776192935736274192271865093567957360743196029877388174623796668481824461344136321096407216808365116889656422125661473904197801379064663371166125609247605878319445138152793335205469384391116489407879758134210371971230177069996724480674173869362819994850404793003230154106187568141567709190236619000174593675855512535361049152346500201962471409417056569023574585418822389689587579595678277659332182976506202847276573024736569476024890035496541091463513601109809469972925461241355972762552612859385427813419364075625439886553138377891633160670235983337470333391475803512720853547205880987103452801071507379497606550054059320229948439523484911010214341399729610024716352741320285245837395787960290975973906748327639026042055716758512684274055425184523111920370276912002452874363544636613967494678122925947794225162340599349348495809510625899909541910917470141264748797584684281427287148052062581959191891859304240404699083186014719592081349332239053209036882881960042875157367800337195879857410499537700975935046594298236212145953413297583621923023720397121006563153824885115758256437651550972441168484036429709295405956557827389710211103588907752502965323822356580791700686873092487940505913421201693895846323101493894860134199829123920191171575027660935591941570933967166962960155227710997339674480310361783283573195750968872807361427232905926682080654431607945412229411620341259416605986587416135218314558819907413921014021925815187159137406945167912890686861865964693705491267567051328508220856613988169316622833688813749495288116310154112804143458134720995674913850180534396592027979616114783233611643211058583142208173711380242758623644260364287786708905333686400188295887105415973397613879973603547410533860877049591430773415521057853858076821083508678113530056774616244257783089670450029400877974376700255156899311034232970381146150855406589617578525777800523799337250250026680857836364921378653624018092631248070428910657869381736956625718458290016920190931212425646305274118565061566263373511369765700450112493891428227004451606356602963261124322689899704192973101947573252522040300298333604994455923179038269592206794823471604008799166504032606540968198189404153398473351962979320242624729179672319539917386378140668804664757294268501883557840869450832234966508660784290536240317569386344466366175881148290433202698909443508748487689803456208370316901670465685273402762106403560322303322927567878850743996430994006240900563042094748967216272000578131784540338214733990876760014981857299594568842155026999794546703798253802342372654230107635655897164416384274432443370780108924400078341716865077423813576239546396220512868154023590988665872722982557368773717975859702505809840529978160582410860085644588720815172634816628781417280694058747399698876835965624026868331357613606896457829978963225828182460985797273412839483821843591606283470768243418630160328599665931259170048355010807160195752152331651975938837437487899644968198266372270849268488035734369724882538719762306423035602966585817746378978675180372916986740416426869957798560500382703809989647957797400931738466785938242614317984428044768099822284043122346687963792789932687338249051631766953150598684386038483892840423865599373037700368246232829799973848539018060424171732180482520177136848809477455895238696768068497833690425215878985258937296176023840816471646833984608565718617252451163803226102185240748996035244743831202033283607093489631839012442554131429567252506020808318301335251496247047000582627570144726550425286500344932898318022153855609351264842907708833755067087520625272721309057006429902455040600334603566284698219211750095255287137756412625624086964461026934752818174823733389223523211184766865246402440626401683662015600577938294663589233032011328680622059717159909110069833665599992253660350870680571541985983005766667062834662248539983474948042624956937990330878573196118101502143027558823887023151497391418631126873048872572553361035922054739675587152704243237559967969193724576146827613629097874763511327286075032636740375058896492699146615225533176258225111726800141783112650204624650659242888521114176776431650448516438955673763435985474477627729477496185600139889958029094948271512373192262057431449791070235012392395301884888559927099440438534184216705898701054059673615149451651244296678553464081780685277882878127266261670952080951462605923264458198256939176057325397364425487448509577868594150520342807900503298222867484016992354260425499430812403020508114571871851245201747956522741477570914327533659982529305130868759836610678688550024450453266900796063684008659008698049617266777078133029830922056515304002518128251814851061831309158838417017784996508020317548667068577277739300368985095000373949111703617351729915595343232707774286861002312928535390508590414664018009620056853395139677154103762752865397816070739410473212341796555592522441394993293235196932665135030270389582562788106691389336422113750183751452365131479931424210120489592913265722589161626758020102075356166648314205995918288213521087717413103127167217775697288293124637106569127926953329827071457310419624601503679999197748636123880086915426834527032782278027574176999254596878465812380788758296555599080115224921183345899795257136664036595852210607663891281556446412643276268719633485360708588264000131724710038578077020102079568491967123693433102952675275080328091368060386420198846476019017856636402968848893531356501153596407010950652507488852117017571811248725100844467597473294074645780924499431825937070677199834719092931309675531709686763781641147920324884471417593566048539335007202773631194096707813902418539372578875487381795887150309905525145109526237724992215760607930401457301155984076770693051901290106877006700733677639681602865515437171296314716115481259729707117352705104523411136002962863252823569537872258934220706898901180431393561179212215638540394783557732359930876684097751279392611010020360314788616214607227491614289740358264606976620636256899806224304430310992330450438353329953295445372286950911696508637733241070361941406625456140461267398773325766090050272150556707619217161088091129267054152218417026400769290160619401275816024229370803294816348464836973580771992499405401860638300879725270166731279407285674012723090175551495682081902330056338204465120179105683679093396044465876739076958372490321366042151868966862993906839760887276999425878590314221561830472157421852886056178804283191525176880365052803183593506374015927121595198457924245512497669159331386228937156451209318983422515861772000898821329555438163175173174936684673221341153298468436398617855728730161286493330113076649583131617820070256022022044782307390991560878271374127894426207863437547819614436436955459308996012283169371767276144086170383486475187156020565959667349556557711080844482493970349312511266819165222060663662224817761122393210726792700296391851144391371785138767037974923537551217035712695021005857412038537227056728212752047077033403614406968264384018149426799324332933045610520981572479963910583421231553865618826472721564566046041875986521104866344636259428714176912794857252551219464943058045125706476316919881260400519725757801976935532549571135701180528796283698366383055943219885593278850429954405648933290647102965438411173593839064630503771736568551581283052686080371430927304047179877022639983268045132484112010537959792531413027932424491904071184720112088556747875785798577981751320122887078059261223554155113904582111150947254805351252020372625596547207574104643420030125843522397623200526591104591785124862744063902266477353120139610291572209168074255772797560542651718861795551854526668930482405866044321446634255159966612031694200562917263817859448057882785348345671311136101432991213846521890246034859950940437654564274051629252337172051686564444283556879129649989717787787787005552777699580498642415954469157904463996945069742326533460495051173754367739980376705437215133258425551735612467040562001527884925782686389537943660120968667829705565417916365376778815975441752445158945220693283520906504385709969431446241643716855800832623861083804242840121127873694702695371951350245970044408814723431135233231955561965106175768540462285376003934009031819908366999662520293414078001289646460845390685758431924984252028970104666673022313846953255937709223292773552957089723586878623610366986515727010141444619680716802808228876535429020834513652644382304749963519230891474959182923617422232253138921721834850262854319952162034827534821141767726384867222182476925018045719576171420578378172494045271324042025322295022894725683755658761465079053783180883879203129016025978415530000673492630338502673798191151869361702743113449589375290273396331481947665603994102977173983552625736452362585171576575087043819215132766688731402198949031724851451929667751839170530337166865969675303553305547131143802060656116867559208238541129333010275176920601634341509722113058014948946487599809725892648569612438639086166129665297885151527795150002007405818443665932988724406063190569667195404100319741137725865599750069864431848414020024144396495031157962928558209630893792335037337983057892897021350186387433001686771704879581344187243413864635461650479807204969895066246348573901632152695482443643206805794104320938617549294002795719693885043270546421658295113520500880295112989327924390737565527136047276133704835978229782892909664592714436482939067536393624116302873185919558451013983625711631896079010864726203980532807467736259292550322063588548258975925581017266295685196505107852499415566328126804413859669023615091372796154194664074526462077317452729223325129796321663824437108593373826453960784715891107962431444515055781242744174611040878293426340137441722059040428423489680242248996497347019165534849389370940086174552375603070482954734186525606742815404860232027738691855350126619252963675744132602140554137212617444229428054068508074951638878671359460072766738293993604779696129292200113728341720306422161184665816163154248358923688341262800337898117368954721395563658083405447718553259533183990425921635144690426739360985687339358456267658501806058187383812304538486669177656786918262061986137421829162077148635847975243746539583215061557233574070142199454094438352083956835207462277287129735590681284771784356657915497636537512472331089107351210130713771678756514702119850077696689446125715343280026475075982837786149488932585034447491237364070565265295992630594302523280250265073302242057337171754782454026747413637290407643967597725668288556506498706687216302164916006135922830497225663692097549539079548029931186156714133739875978554864103428708718967843068298225975768696345439268941429709183828493059733651274169235896643601488440995550462892185167844396368549585302609241186573858953266513454134702355432207827283331709423586104843853389450531689724460702970074924452278821210482734693135501362618407579179855302608687810222309554258550119825107147917845129403317542826287594983940053575985110343645184240620121929327171667143753183818029223195164787474016053694577999989167874125167268506712569873827217370327942858258992942854343756764011009088250593124113320422889522846199758942481833491836854721985481892557747324547323940003617236812365802026860824705972844663372667791615868668356045114621259101252360013756247137622425826743088958920713564189857610328015036930891402413875437648632891640714274138905860224231335855124186682948712020250281713940621041103843823972400984809022568111247723134441230527456116892615005806557381297635755488108012892004828696058502746140214249298840780022407453590850761184099477312884421055162603616742339485510154053426655700677003796076992383375048336751948638884489387550622455223852334928764167965983001972016672342368129008178028470291637752324496056592856200749749005099375974681650469303854803576804874412686841928703822055660921396590335470974638143448591637492333704470458980895770946158917953988079210831772165523217739067860228386560984656469769061437480593185323613408016736304434977130208419400608922640606424100842070737986742690531199997696815038236715419509052072794721655260255990917834750820900264697286565136724428738993745384021746904402706552243579363876902978063944175783267661290923079764993629443870564540152646571343118521399705190465081288157635864967465978267480206248371746708245570273963101601173502378938550596228572611533937223181625207489709213572757712460265662021405126017695481294031938825363888626254069056695287615092824975523262287977927901122993676722502257875496862635884542693089197928952575241936703744684365165049175323390530258105776876605408993249256096195600550452406422239539009084661515227677657335917859672254493723157247706609770365285349451144626073642248012393508256449293549750133947428757957148353872768006526231344228292097540948310159720253766156683128061683494727510206039244330947222081628964703029257871769935574379892083360269030263534610836142879434133378172321517195007990319844354389716322742651711031599678522050096682681760334392768384292281942331388618271141153617844685654964399324275252151596368009323499503097869644291997812100796425030634769185475432065301515535387172917557123349675300542140416646035990014184052634627864005844280840128173919501736444728797019974248349242544042154190337596938157412865015280157600342728680735170229419442917236752303817820102210048707577432290694305071319143537822287249807034939213374346820043535214243794381236131461310032259822333205813319164883616951164371796469047190817758330584964424082905500636637829700420196758416582356151596838355885827642392451184812114673865087324231027708450677317288967738087249609573946577777710498589097777298470252090300929108025203950782927985108989094646700776331915340331642028464625023088983896880397590358601483019029950406622557446605258572335271351062724736072695022824800541616329925392106717915974943694502437952240769613746365084069451405928908966163181088029394249240264499518881343498172269543109640907910938997671050381175125143884555708684394598750372236812409091931628649690184934614242882324415673481328845688214643666329610446036314122799190158046249668962983062301338639444329097511691184721024807325417888756429400420002229744521269154755871824170459430267098998198865520513695914298335096481378671246162810431470596624337118336162174046525934785333095810119785223918774226155374090716767425767493634938587368208461715923369802932103030183647348392739449972711739860822189013266387594272215176849888809318477716526563216787818231817522290037137339666842874425742994230636103521130395103001563502071119739473448774527840813864457650633301962625867096987704751696536091523183259994885687285974656576142126658614003059620740977800909373104696999812814675991473694530840600841736581719602825795780318879442872474616754682591588205199851884416098798158898213801079848459046230657089234370143873132499851831053245879323121670383855253949200787266321362900624499811541661870649485571042684852203420975190355043421079457083111452162681459191840778102464938612408562938184654466185806181319282648558554809525151667574763869638970497000281826478547553708041136501370790938066214681355346119781595067330877447659439820270921576539554506860656657978086308927198892339696530433490295761750505179395670954009075654044429615410922203845703110647692732192628994747737479205521907878397511470757309401804481632243552419932115048210192134544860194916550082222348229452677463181482054484137916630972134123033548601412304434490823917539100999888829359466980820730541665670336044748215433110785666903595506319797711656143571237785819634156984651152350030790228745074698174646134062463393833074381508063567088195894859775926520933445433353942614085971713787875742659895923042478880947692267101145399815995660327952722073387401398443740168066558382146931103672492778763660257686767844665491464297000105661152267767201326454276685902064450237265381920700355368118149819863595461863246480749594288975634446914063699701433700927415258148142886777762305454120249255813820650558908009688453022863047640426797378048632283158583610091312850031390176382623872702947236732819005101396873433252737784321742056415437245202703856897957622720673296750867842352542757868669433730119669112832761687132695684355544534799392975444386470882991071769505217886710456005111428779917921070039244530331018664005797938574709623614146826741878205121271236866001248430333558311691496404731949957774726416780083952888080725045166149893406573533677790333574117214515183687904761695368163389709916185912361079947249004968220745797248188575787931915554833161747867734383293799970469577004807523559299271493170886773715224886504792225496932546862008930942950875999600039930720255680300925565333587482527257556577999749875022061966159251855418251549654211752430138608507996903779535633736471713210337559391538747963726101386474013050708017570851481993949223590121862265275567086332834018195240213258954769166773307673329441577522557200992865473552552030247514020507562742967767537486175014573000340983136349875239211107059344831401161218744757323674065945805581123160945375889987033574954138598810310264626111744976351537508889015317987440721156889426338640575374017597972838007244214099862453750397603609034923144586438860826150858077572067032314596330446922548181175166592437413929417647549526598047207479504950304404288730236068515221062744967564212356185419736759040560033463329702223314524110997365334900284611225487859584615945705322126287734945002424382968592497828306904532328553545562333965942646503617077633938143891174025833715058626856781500586410531376396734170921043486171985040866017406622176232852845472013370997344458366856861735923042674073339331080030819981299990076804571485499787384137578878998407024228574052778470213568055251801965630478484540547772548944985977333894425929076285782895606978421303166122301495394082358566052777939240261837527419620440554612330974019697258307160418082572501301160953793846398198952073336809819204176768159432616339215360247419830630923832905564946693817668404642259897018559463536154961059185046303821423762340710757488790571082777135448758041039384002414572155739201174118673109623380413282363755058233749350678702262965771590991050265179528575133090754062853552611559445525333014485928166273455458013581918009293219194155384606307541465964700357527362790820783196052838093124544945228943868680832257082006576576325766966024394151307799184377748704623343973408668913216365149435710555176858889116280857141697214907097902704925638287684658900638767929649009404384500791217527672889357250194130332876032780573908784792408044515191038282009905307363072785544606623831462984678555777833098035504793326920869431096465226380200368695324862154206669029545907744699159401099753756370523440711178517200834497827691608073817252077197064407854934071723715201942020406998019650345521796739572215582554306589910552442409801877869015135817724428307905164027121103101901720824542671211049022956530589539323506390834240096904654823562029157247322946954489305191033748565745841711954731275096229538379808281065888411334364352426088706427072542132384990782505658887097017240441040664404163469190641462411882914530636605677264908938879285407267342945235074473451930484442693046386344749771165915046292231020050895316055432420545772233485569182169461190806328660247648740505499269946156600697908486177564048732103951987225194946007848576071069045179415087516761191844625294380724839044493570664257206969543109312270991460740787850008404859162154763228110547709691600551834400723194866937674938447287336827389394323883291306473809456478537543105427690617761187886620919782356202471847429484174281451892279821772457064018299256076519341902815045478836227610804337122379548835320857235587358988301078873437704044156395917034638343357669023640892080948623304153111945218191578310893175277528672192626392253190281676774733330930297980742267645837319524892958433510283472145854497270229967768681523466520116575165643824247077654251670915006901900698135211140910247138114950854941056552072576423542009710553301179908593403521153337114516712386451801890901099940182448064098190764750322425859387329434789693356757501591748411882758975283498067237556314449235483523693137000081820771983990492944497205182107892659331687393569843078569978054484622551210890676659474325682988430854685409326670719130292567395603608527671215087317960768916825636748138861780089758483794774512705871667044754360055244000397523030988503387651492849406995618673828136574432001630237418182605550149657876891173334379079489364028265584133487599972485786578179172122423265941599149141269317389665568467915573641337876255962874526528977533891700605943073566675798285541886916748791969881631140294855676345925445183522871926812478533587525042891542990569343259491007912770600365658064083630305073056356802144664710247021866266406585316636690219370142010940750652865532497286780566222395175279935666513466808644180240028266441121251008292682576740454141927203478538928657732042213835274663126907911437333899699497467318113345235624467377895219001088146492296267071719703369582778940084707861109703020573416658108212731045806447989185275501998109729167358953671732738798716448583863745514848941587818488549592573085495639707676892874670051747933483093152411238444028324758009306127418040354263372251457636229143868763795705826583424063608929569771153021800510130376856545736409142219058838330847953538401740192265437626883059043413597143371757834958915304476815581189084174002131226893319624192661008200855427672498420235406458287228588852249563528987533843108961594368828590475488243573448868187383919872424664836168695963550418395277940937553039082666091751412060492165422016366442223320621273644424703733408198128708192826530488013582715589573086404581496164444607021703735325803921351689085986821320819539929656557072620576677758745737076497532999864423402488512767913044288985931127273690249090389705330019392081033620313737710459176409721416850261396957615159688499085057481766434658919278006978171167044996088319586760630027403700243883130019364413955434714651138102999264217337936397398969035260090581288162115451626638389737001575468189852932134293114076083949713639335545131555586647296333567501637755903247394142756345023165512881218535515357938343666617362454078454982112530485408142957495962542320255626964967078480799769277744217736278679857094159378718558338897863021491880915078470020936488666875800491062219810793679083508441471347395773353071372277477428577478118965042017286547045564399228285476631507180180135794694352777342767312885930559881318157601257314254708790190345965898642231859716639040956373916674224688680220913724994878501931554926717195695540829517767878796494006221129621442404127045165417841167488159621244248510102096048511795546526950979382129769500211658172682995368727239257063114890480895313120256746300745886908646095532850642120659779718282205867725070357099803709228516253371534879409731281637198095813679265304015793652044101920428315158145100774132156181721623773128409000375842231325145019712827779972719996794199866292667171205368196979522348345380639009278724582057523227488658888831211651007568813187555873543950784171955432229257748830572980393576692021692623872649464883544313397984042446514634124417017883807783401678949135876578816712120796720855573078903329815120814886848730111535924957000896977651891746302223469838524959336015244641950835413024328551162638761000621786508939978797983189426510810047578456438427074466843335426805033904535400735290194450608131539460702628430953658349668362357834045354792957641726260684719201060357092921188499868480070894667818765392252755399432483704256108246952074869855996159183098789725151252543173895881283192059217135185244569758694699499915260916681161849718762572570895674504694611902346700477646502793193843693932101230817337984432083884988004961326625154947785845443609380131364281913129536176225847915782502159544332311433158407772212314665451064477093275633791431505471883063230942156491389654046574654563842260849036841611347668629144205757194687991972462291817672942749828319366983466377714552763212234904344244282380931409602088652086191476023492024610149082807453152843541457343646641835463387793960869163669868339230942955519431322511240932411831482468277491537876014193017358843632526827320196616650844798895470876541384623921203215314619939088070113549297869501023258207360903937863163384173447159537100413764178079948219459651372107636207814455710056088840932237432678636528858116186227581677798099592567244741993130718901522773140291354320238109613043044134307727485177938307695780910277960158102964563918782558416618608256939470610788189514232610958346616580642067426603637729688872722138857675574964856107926238896218576969266072953020084603436146184428187008444404246751485878714701078795812189432933534217978046829904718955324566956721873399457865408124209600702023869865193518643788747224403924547570438924879106345827672926181173276770965713636645990878048245263437168064177688809496571921099635155757677891549705155932125086620855772462463872210566655334382076731305901586442381688633858183610497715776375153651915399938625318791210122879662020604629362342082393940061575428741722869932214388818894695895771252153211996494128694554834239478509107404169840193408990455289546388320700877456267745195962528103345772776484867878746482327308647317849545450121788440464257022238881241359291502967288989907652891996793462780429848880838938160890469113939133429013472738248431188670740112191083810039916024570605001277390859143682464130870019600778562936169638928300933546862747301753885918214524065944153727375911415206404496535931726841432026853245753673475436806599979061572647031940449867271280383904599561369946085592410611095122198884119322405662911225573073980231290280879957823372323777102913492266077212812420506965458775079451920742646457035001668760813556218173431582168366759455049003395415540284038478473177846506671834228981327538463513471476966936283899803993427185213162431638984265887910507796907878143113622989311855138707199862860473120021709823755774471968392685124841627077536860889905371110892782153606501120335195412102527020803745768610703422952152734173747056074783101967363901200698476800734903061890817402805502189501795113917076010803835286469891434320922287821580542909158160268653305442916424459112728572743295661199021094228285234924181578575455771126333478441380128095931806566419039104409412334114526851873266455385780640471309820138809602329217229956746903888623352085385913216013187396656745984396971761296624425946867778617087687529056929244780947435132023515015981389772922864424181809290651569331594239545047645087454624492501082109532414971947387907642896403759445357492476687559652147423361980285963472524618010312789470571436487622970825617619329633021892533770766687865211594605819478349063909002699656389460753816339852555974764424307172981386905844134120913234985150339103596285997929640237786026138433260681331729395240714682140804277358824180705555161067345608287234768450356246872298822572187990121052735100256237495091132389717073474444671312447913597528015282838694040762688511186346384712787453615953673290788788116077152166490633476954617680392985443106019239428189891385924546231179409529227735917939549870759392346920799048952892718355656734217704974733698203734772503356505363035547200572327576594471382271569480487456217203537046617504296891654128826297612315160833562507111802354935714473336712302212378418488324239797899103436233385234471739248018156863317564236843686667027313828699365117960073030574880472447247907243108478610092136451192731402024219852446416859996913943893067846767486088322160321452696690101056572282782944661287882597287904492257820661760000747267418274400348781048492448428391334731380082782786955125541953057316288286240725305134866172922184742476145061538331620191878424547326591970969326054612798111770894872315065287536156588397727856791648796243740138559652703083641905214908809310865194298577572001762349259324341301345612530112335114528975977174241359364067994338969618395518870782665751585501356625929711811059917598466083793959001795107418629255652782477540419619014380678870709816420224511427020138955540352398263128846710611086380547488991281358422613916599058361895974720890349834061524630813939734438871124762451683251845135111356032265117210110622392058705853962838709343531376872531991597971587898005912002440172960906665206474765106027380928973720242950706998789027233547276976976310466435143763796337448693175053702808690480878448530908915011319547980635838144407862141440378734671740721897517397182409810618087023610865247465946189914081083562378311803418231191798137879389945201254663164764197813628332685021554696704304829088171083302026907804123939793186653046470513564958615222645951422799425510353674240117653119242863381087284796795023978742757997391348543404674664282394563711741824933323842812228264103008549232563591784789384820322449065798834371293371192947061988862921697736416222451472727156397311177518292037221844954277768453506108207416107786828779537198209924033259209652315283882432120395415542082541217857248368123123753847841021691075743047416872597823717861881428967336254328733853648306779105277554448699941397519226088693728212381375130527541980843010830942640082783227945048178220362900125027936328434284269749546103661823932250367267502846597752633509529176346807758143038557740453752541149445957318490808162089238086875351098994077272570882433945183186865402265645988037940684080495526391503200243304695799436667034968912556018360346423081355023346049167205015932881795817303754273677584873946942459473680922132611309587460887908863277839634392620876619184481503548662877796113043942719099091138390385684602429101417506203560664711241323249947114327650205327293280365036914921174288567538373349473952995444639689280823669004230113242337023797195506058541089546537016434714939302148622669229445564614556736918328525069921694987859893776927133580090319066452161093370857405002946439887169369935613807252141872841913563895802300969118267313777771953775213878530825517096899963404831315453630461017358852794380136455723353734187820670830699059319738544489566292907651889612555676188160339238376288487880248421524700618922006827043641545608557727799941059398306720914133713443834213843861531536583748117369196594826409671049050100604404389155620323654500316076181068424066704502439644390970994370324065971218826813410697899977383364599770940041502657892741289982350613903808425403219513972348988739644919338963457370596703653504324234522323434801454794063193069785208058031424472390736696452906965819898937237014007318249685430803520464035473473391493336142580659393450867610560146796400983603771251885073074720636955288184753511469350445992411057193365908967483053040521247105026455623862076793462260056423566835751358428268973716203092834100610767047820706181078053760887493022386575166409917209134047390380653272909046305451980828071646645028835506215266619743024134026782728193306813121164638319496454811436296625555473016724773003502535525225759948181532484804656729546074871410407516978185776708956830154213017998818983931846962800711193950878930528867218544848239399519493889436202631023429309023008138576622695324262507154394950487993366369878293683899703593017179730642134829373758666315792956367198800940171246099917767511127580134000733202031765001507316102134541277020979907918717237669267246728379565219394906366506566443584112635921516976243986113314947371099295117228947093870655358075190443022287421162599593679639291397903444837558585049573004699276822244781093820965303808524970421585247415158709999346090381987393028463451795869541761230719617932237833118342258503399029764042799205327465241715262175883321648189677596939274365554521346393935321719466939523681122375756347725061107450884320852766935961043421559928648444215739472009394473544216380627840811042002344741072208542819740764732160200820745797338201212009036096071049314204329716802682403016847382519845411123875902266630498673396007262762689298625725576383812084243432126333535372267877709061265064518542286940105070961600779072747680318247051390674711653247128443047669092254379617210861161540142856448872095965699036416667467144624745935173527355700879224318238792973748597672109073202049702849085905484681129901108499888792753742251360915785203767425412310068790056802838420811697161500254115384732818234321150117324656377489860280729833147354297008975481092630505502939420976467023024293990570379373954511636885436866191224394896956534040027542191326003096101464038277648121634839527943884615351132565327102410130145548250014238511908485434467808055130868011182388944369734182033817963891952875783933086847013924793060264527162118925259816870853874831974938919264781772390317970124752818023121186039012858820168489284763729021205789636588941750472374009282635728171193248399928220541642260787140070524643559937993524952010535055588124468751570838741807408099679413754312181662707435942410578590090658953693760653733480626275845898955925951433818916841270653555495701504903236770501922697475071893865708409064098333176069361577283360844037015110252311052338242139532658610120689731503865236691044639366809131767207853642947899567058196823558629458240064359638164850051693787157805668993735006159093329371945542448841172723545932561365888326020279240401468459674231620456489987132536475950624648933505075757529258690232214580248557429385652424322235893818489054710633860866780363839724436442166874133880228036975033555848755055992900437015264194580610041119085004591591557270731621569606266614541755225681079981818271050428104447376369867529149593441496023451307734059425239063801031211884754257043582236698404358399664534178373408586228837699738973931536956159211018452019254471996330303141529578486351731442965821895916913082907511146145049065346112807498626626780179178387799296813506130746787160005013340314261048970801090864988786043919356991639112346716320974275132463038653165844892707957175963554730095752523881586807069616035543194557858766462226123604486102991843835293290891628985960531198900770684328079796358633944172162732467184662089522551389634913642262847622539928008827296446156803185244304735185683086519880236047987420466876245978872675995692583494724977237584605926943108747845190701910991309268459044900997914072821917689196006111588448257458966936879503371571936146252101880400012102403786096961075447490647228009699033996138868071602903900305522393648957712266933648063445635656421942222815944408124180673070321932893866026690667925915876509139632645534000997330841828563230769800274683679400578528974969291681949249877834435706240237325176355440457579359712091924309593905531953634401921777184945824336720866535986601387429553455923239780599134687122350010079418442636109395615650571198604848714284016085165042423434378479463977272254814394945116307150256364128491364176044404734230788371838264445123706420237690726258092820318345807377389217453198707809693516552667193478316829302693445582787759403131306373080376736906596396727274330110487620349919870774959012038602954456558280942644929860594996253958147270265146898210327350650994327775588588544835080047103992345556892234434958965751735652668704478896246478611077119966523693011079651637598656098607722756568250910179714378313011726664897967619099057900034441497117451426274660446571356802277872500376702222881986171414310551832554031083725313306156117974777301603354842325467050554948209078385481083407610953818087083071500761634637590312030588357307626826831638753248841473271009919596115870709632979688934340744390895706635336806148881840715573561462938205210417333634048930960492218887154421122510817297945393927457875550078160455178546375288240023396341219015682684602596251307617326259057988413912266730296406751480320260169201847693368569287036135995468768108402901511936173333392965279853677107226835048680962671642124545481721974097822171300028995479580558681777797705823798028356304822367846975744715033994129387126646655818582796491281063492927697569877666314819872309319768667370693392022992697215661584912575123442809753784521048043046566471425434201322959479336107606910932598276196758042189050941812110317467592492231170436015201309770186408083341971237594034261366361580004638724527767958600732973806627917937861056172727159539182052216623477223392907543100882003459591313865442199004906808748022759827526826239477263350251979497025430161778795475681337770837500423781605080650420814217326085197215126006163275985271099811098134058638874198520001088717868531690922614760750065512065081138788407783764140677428784154366059317653681843896345170459474641030685548849316649283631532691591349825919757606708219305205448023782517858246013595293057291089014936783907844482927431687827465766230801783220883960591815745523249862175388482932853197456296885624699320647458343176128829749209864809025040508379005600993695080056063925478317478167170619931587082899610283434512558374075415662989468149308868788515965008643715437899094375216541243663561126006973988485084717294557215405562935556590460091761725674422577111254130569523220017335604192109240506884912841739583302662331249001542168456104056620485355841680915302481237623034902605988597267038627701507497213638588843863831321514848193154497168172144643187383396807632516671676442174469242396488880385584443761158431261976200297057540739046376405494728359646967304365412228345935455676995537875186682228080998706048896716314000612615908566655565078194830601938095848480418594814847438464571695950672110050966116554651005126237123394076919963495155841917975199561800281287287421304213615748693950627018897627226673052820768506074139857070429118767589656602858437075608068325059862583572680897816863479937797220951937796224066685102579103021486304690869152749803798699071753892938325165047111836505931350903877490058785467100912505484591395276873148749461571459932872999279737881483992291880804779530159156908336299524356490055490880597936953224412341114372870490716781353122667442916530692496384657900414629038311274488265420849386964300978590535482698090597762658500394712009115370465167538453578933637040617752193739113844822803009680888860179183178434018331331429925530265882463775492621716801835492603025758812610558888789872924497167662275022344229868486949388020678365624206387655317052855044042706616697308459625657061968372419878468293193396860884360225682195673783483807998393323062283058259712518680463219910709374766627878020793584753531870798793072535506683147543817101673545735623607501797580949711166977482978490423971362302647241273901374688792470394977952817773122155161489100296745760922559981775287497750982460392217216615088620995375995338626137873614162541215395650436999728809505974781479503390725878896638046221339642986108005013133860211389778914065208653378187958073484161207030221182392011087905941458292169787757982148837492083704573452516153791189765889211251733595028932191506238864134462667124083369918799500315967177711464008104538304231105536561850513039537311658601342405828685563299214573891224226620267535535186081874650519488991021697681277598342747509262185162467738441408290485968953665584444531869296224089151410541080357166539373548200928154991739586445834316182585388294124543666141568743288442619409296089940434374880622470713688250129895913012385805521315557870505505715266402617164246717057276984427227177138426560511017662843791396444626200993414871599409055430257529559898783190501898806622029245465437307985454053962049132325261133045364079367058917332912007314963444801300624858278278230021865037738724241716089365560977789496760861173829507488989017608409628111512267258759029723973899642451352848206042546476851923161755820736919573190145640575353971889307197718784667690724848500155862369085150691456679140684483641816794633866999987331012559946446463794835016146215849942088846763412795647188999105410289212511564751987415910955778458259031699958972768050835375937385420643211651590346820270376519037444192045437773462332612277278265282109780166169465763602132775394896127501460868140015877396750429869134638018374140396493427634715305136365310588232565012528179919591703493022993410014334257609419199218188417242779361752143553948440216346558253491986516061038126890443273565207180399266491973235539041670206097507862863934192790242298149291290266679394994132061402869391601919121720236687595648902604911921876016042548577729265549889614543881759921618923632861522217295276912709112676093979246264827952266989817828442561881189183495690294505902484191612422886976196561722129957401094982819425261803126457709931417361522040820123808310339569802742632726391501023679287272407264607817549375143953218012135260142969901637741469710486565117294856154705566632648951867430375962076914112172725844146088603497575681462074355297900682892570260582659473503010472497066215161304138797997103165074967963340738698316245043783507664774575222091798830721333299637476327934731455536710505344465372686370079304209155296269837112125861397029479454958867479048288271375893805816966721834300629689608582928748525839600004745716680449161267143442385075912052278685554495827371966333237199360700904276366008605307948114074225813093366280190848181032764127485899566150563776818612754330383000122847854663685473782935007020359078285219471913302320493572123327738207303350011047178924673409103869276405688310586783864968213238033399318753567311852458361244847347495875570220024351149987962962929575544147545428790309937528932253134325069918506435816016955964103359454516883929826672229631484990519540945304733762570396763486121474416037632342475175956716772136822883488887571556482576726242648193699821488991533855921526885869317065633089414790210895008310985272488382065380539501276181616641865596862591889941127529997938791193438675800291347618101912086048576638669413648659582471990825989035291793452341284633920956559928825289728776630000294464983788967186367140030126805183271832685166969138689658334139872683655033077513887012203102908035776579397114182274618146284740627780304926185218179804178500121770039126620243108462154174875436434700878154196431470672398480619214244614254365699217537787028040359665101401200822360020258601922335244347210225508178346375328125382653620720331868697994654362965783721549150492755288817706361942108890735690762202828036640909783935125214240681434481939122674914922235454978756809834957416429843736919518350768192982957836980463598467417834195008677400175887333745242561797491319782010567342520927400039208279901358762257915517315647754960939401400709145083232113052132443255779413192390324579569798573149979785745292750024899303213395056317283581184260345719436817386011509044120294980364717223132731801426975272744746679179168441197830585617626626818237620117010414041905232791236185683354808681536471851702353623055672226556667233832703354437763445144606939031682362040289449084807739568417299285500056348890451870166046282106760109219706124750266700117350287672845966090486838316958765199185080323947611421046430066963552082545022407787505442900577493677050795464897162404807511398240283224854867508111974055258947759707316231214930367570439517096637715138868139903403175155074230952644419832157952261798899474935804453444938241608397426528308449344548988457385062040830597976174881592369366263306085354501267690550833929550235806933914517861209593890591551879503434278003422014066448723831450960137376846232891423023395907357036225649850811556194899130083774602691839661016238731076324039009957790705949346367954487662741772696431091257351015190174903442170895857045354541498203420428235457816726719410986287487018207106361684644091443414367093433425330750464071874293911282108248935446132885508401593593929548638056841594482150237818292246672878103321447469695113220881711523379331729379176047125003378860353198033394101170343469887893109336994465221669035058484862037530210849178644383628214403704142313690384616872107930417746847423811406483783984432191899911463986411231983891009618110492033121339815658932920662514071831797737266282489041371217603836965087791991007211886680604543280227655552189802707202810851206919951338645723533332145418229411556235394728480024625005793764591884149278195296672424049826928871668737602893588511048082911815170599942263667684214534644532991146474853269577089087895649333340331779396172336603661157819084251714827371933474906447522689598839031856330583286582987541222022745909491019680633916025629240204082797453955726124497005863779176118007104946397458541956914307876100869701285367054823341023104365477086243192771077023483408722818687142933102945800817388229040877138276903501824502288839979481813694600550988095328797499454054184897178594844973205363425808729617533959089112955486524566345253745646993386026809675942735485733544246400773055809825085128697819758100318879105983448285616280472753635968734344967023380701291253735904925782408957375455784738590990408367651856410553112334144370161818787227464154343736970227414227878394170350367814780665701675523388900309860879097060485876406673755008222600419317569338672108671217576090647928832250987242308042407336601250364239967453383617536565802740754025148697698489650784113956676970510980264252810776847457075590056709991385719623579027675159425025932576795593465420125319152625301551470188281699308260417671655858672277020860223341144923391449697035721827285826267782693881648218485760270167008042302163020702184919524932978921860154035134793533733903897500346467490545050642023017466768796397217842523686107632331601710313418777787610371288613865169935858902863598635219746112072441519074360533443873002186393989993486806913899678761247619448410399161921217891345612653539567987065921794682521538404365600472392774842731021794814320401585236950852622438382221318082320159373576513270935548511560829850694877288843125098445453141937097193265404725646726008555736350731482312462921276509596074074551413974144657333448684389036332371401300622709455741488084787638193008690102498315638916399456101515168957470464359170353158165053648301461698089709405166355273427821019818919013298781034776256607875555729285286805260359655005072504113780994270300730872042207892814726319306226328030218134390519453780696731417648873591192382914874156336910092029351745842869399644053112053099314898452973635711344513716164376786726972386972558226998782701616320783815376566285559950908003558584150330212682976758358638927175262658945673541804033958716607504218126600929368191261603575316687257063520227861000948530472255915174129352061426454424128545317336897449486737487181145887609859135395048644341949804755730391341801356843116329837998756767635142032588000609419963931661510009772284176554134092214092325664865937676927461604987513475345587311340864053622805831941513560076505570462867582020017922096372303616025512597245497582376459628738503573307073196477675816164739730456397030851384858998745881786170404220710733284189864225893534623367436230640171493826788360561279275055589253688553565460852187438750936028968901578905495392167202130284521853709418188264943167572100328597146837889583435672310082877280463184139335669115560211067611023379295059158216616803436527387585948888238001460038427771039087151755262626847918294390914072841486057728005585376354370488650426655180060387826167183591683869869815365514004595221597168152164253025070975402678432682134847879356449619921071659318989474736806823433441332393725904913167605768964689349419790320371044513413636208873013304218800998910011923787081848178771591964414787069459543180726895413825944438896813358393914124902986744151227022412654603060651949799902465566917964033583350003460809658437109056221565938472534113896171108526321899746912811301295853037299093043052224717305645538165517611300080519772049271235339630427663528331609394738028646632733665165488088211561661611768374579986098216203103625892142365595918583966519819268806683143471524780670929203643952689792835277540616927892616632418888169374246408423929533484729847574490916789653815912572112348029551879712103367836199733698313222339099366054051110028078508250404233766354392491556994116263531984225248770820592902321970659869060306679692854381254907219827650690229553571423098504254313346164239275433520293961698288704632787799922343605222834421449418741544465258779257290062016237316361040959946458730706395634616897288835093531322968989963822329118119780635423582256937741118999783893181623827341054397887425852551551566633327605330193257371215903847834788867935011503016221510100436818680535325507541405585723283900144078553271955444688439879217542575562473581267503006531918106638179975183852658609434826005600268142998459735126857746754153991508175837864074813395803274578753046140008151815976044680624224361590700080076724910627576300393821368961579287151596560199061011466957530417994218839168320863742127903210774223068136028651035612081797008032276554641084315413154148255681964658851519408841501045600609652383664564119098472741267334686857467862814603434441417619872041493862177725911697301684844809216058016993357169130525825169248063575496290884502327324945708510499086434977205536812241990667860750906071277270587355099524339426940469131966872244952855773851715974220336507080118548098519115006938625959047176997540044997144242538613873288271188338247851794214364819251448915785921378355464166247647604138602303368619952022164632873640850359135466895812628204198415241847619453484597046288904751828885544761192527553002963100060093868503597805269306877511626025286007421293859352535486712745951590624314629833303187832530669580479663187592088920284761956170366934578203258121936492260581056758959998621156014732468096026143255334451994181503445775525918348253174022962142947209510174183245843946860353863968700472009521879461292450686077089880947071319084114310484169551458205629036388821262189465990318276461442900621905572250958392302274639401182586414263363368909609594505138636273914105456377741841363233272517596283712075342681793625703196471667418772716413201439955343634946815469264472890683870396299758728736434578350455664307155469535841576557754642023899796935007248747284212945389839830409393047239624719427164098089076435894912542704742205953346939558402093755723517522613424150754185498858846210130479747481424633251257136604025297948132415079925616367998368823995222604461137301896978388626194047150430572493692272875858842154876415966495726577927165357935180738577734828481123363401407233083933892384943202884780498011732245671777735707212519713548750622059443332745776715231516424464045493992099340898398107893730864988319483263387727661240440923342081197379374447303367573612863668288534117841962118439666273432508481982425672726942092106292737856724720724148075305260165495182727437996238115109504873762684114477977468786681017798359453463757711818161895631145117656331242535380415921154160483638153756640880026046285539585475456659791441816501700361714737769640759741653340232800656994294533593878841135996849635620515396092650407033770866581183005649604125597313054407295197289544480816217827245036767384686095718312732652505549741964793568552612473256803939196152949968617569048553971044847430681274884662327824333983709616810387950292190189427152643337998143476817150378116297571254869983149151587602716345105920522054615987636326271234494269776439893788275611836878940166895608908943202153362153247505387357631051303789966225617192210272528628187722637407573143901923588803233420372364581494266261647776898825187812192227442931961754819796293418115697805660219824045787775088677861145127322026631401682531582099583144818090794547043319445052427110029737160510776934943542378599384585778330754535596889893890505257685520551660460648946172145639769800385361286550343322854965521787990508399337320630422937637875445894172322704838006214853982963291931400610455014892183128564084557675974043941282363669892277501337266403887335989690661044842934099907533143743817747341952184380325914564442279294407080580989568189077236622635167465697124783237068261473636866459915313235735912495949974913255621204586919046874946036986558489198394886468315759260342151941532998208126373781067653912499148144959402210155635619051241797206061410960139037781053152791063854929107374358849993415936085865409221160063123950465184163961845928948068423997561751151461416688701573919939536034434218883928616326923237864738187855124457240351802903195923326139340968409136933749220783213413523502858115213084817955827584437930857857368579455188324040426542782886852160198219704731609149189255288294951218097611899166866991010654286725429000728363109641801122555606439091606478511355708255792181940780722240783714169376531902517317047061834311794330757369427881758053081032375032190858955144446626728699191397032082224355896200800324968917604231032082499189629192180116503700695835386804522614603714619008783511500508578639380941269799683181577805212837258523196951314410324677424148456992842761943467902108738951342415417532467929307051509197728033405176079750764529096994092529528155745232913079763728425450202281374594621949289443397324437752021488906565354944991584726510534118269508137329132108310356535304074388743292668451974265205834188110090517550726201501574530233591466976451071916352017607386829471251547642311384228571493164514767932189904426803696208475139250787457391458894826118615930424038277149867078925617328641005066754189676247864996064096622222283679648966273048174156252808364353730552890000766179723932454154506580519521233804124176387672885973254115269581619407006401811964169528184822167764692089746256454317524636942890242714543257631058784366392414769520826281904016718711641013991946785083377632700321514146508961941553353519278551893391665469042113067240476483968212645180523402112293158757227402427622646815929726640326481155709563913176181522911777891625651122378034403265758313623687266349752580735259450115139584164749690758988655845258115173828475221242693503887228373810887539192268003240436144366504868771745153607790815108289772682146209047194819428917695226811780939062123193532116012649510882721543099115172744194412694185486489775584103374468342325932536837496244480657154020288956642032847961826179601172313686804871170001953597045176930541160331914433042643966952995244906677232808354151554235910461399137919658994651810195887108969633026721651724202148124383741431685827756647048433140990726822223804272291330921564691674969936408209868641345034125291862493028609826003504419209613680497452388466525801842303091863004312403595303379003497461939282505855901821691598566545527376022601222845989355093834943496534578046497158955475149916722390677365294047121156084696322728017655423588518908254183560949795553280315033388196200577833646967919764134903994994521477921464088176865748317578879468765798964266347931916887351646195331565041818128664679009543877573398454508517968728899520706023763890894626400251860905352959884902565762798660012474749230750967261326746379483923279433553813963630256308302025541161696892977360008265393208097743583894236270291982867420254200981817168074569528763463890369507317100323769498149108623923169138151592805510245326320768815983760926810937440133648385843039660412357800176973800914962830191664570886646844011785186638974397829433825813231316840674199292963780474572348664510174800886374052708588323609196174517353030601450066828222823346795880286514916389411531337202149579016205546928539203280818250397791690218860650146595512882835476760680164576491117967315975140050843151638357734299093728307427969054986106923915355841180427248911336689106061472022055902509268251910558659426029177645216944435530609551218058752465188012887848396235941269473965890484725871032608550901228324591510834766995204130402463328932870597830931371942963286401892422276391750583402174579189849548541499423974288953731204249287414464578250812405843627600598045231908669274978443427976324578097745190999422083777398452451902992118293078129524598467621815268440374063408634363605131294773998078001137722322004210165869654194764775263688080885287550976126681972753092751507091400374760689343875376974639554909959947529736591583580335437369990026223653137456181387769186115426540069558016777105784217953721265754067222243016542728097557659275671717298162242422381835273064080481729193752339450961816484321740443271692759349863814321945287251244351596701579266923815192227688838949186745145904085658401620540228054033387189842174139744294252381358192243059131407171565048031084132394813177480757471957877910212550252441786310913312549497751829556342550356006468965992682549834196772705474101476288883944878702474412529436382251071492462585018452387926301984864758943740190407122287731505592916700245681939436245603246095041591786835426313957044667517936713828922462579975154766951503718673790708821125252888135505574622618535190114270161729670052863604975397921906779674877936646136249916827448313390415488071218389206728665834487210576494102510710904980065136306486399346202792879764418278813443913171779114259129350809361847418695019107784295378340810630692124227548302941836918966019463372753534471286856455304970132636787904080536022232346326750374614345812517512036926442130249510845287242354042308274350589706868657471525895448174813509381188704996745713443337912751508066807312047316152848938469111473550255804753530556928638471665894459311549076396221261048607125265344074775778764169110940589771806257300429012154518052817978232822409716838953942750172470901208272496794049708444071242958907516770713036967461190241400778872892937774300458727929117301082975688536599067061850691239140328935317897937937535795945157954183457827058366651771942529312183305991191854540948853253765261274973553774559713727042388766469104976264168382806745756244635317663372340177296272317575280501087793647309279943914805726669058529020036138377612480053429404447141961815807681956602018829195574513102078209457041368758216953417360559943441114269487349116946933218963163073722586277865831414424988134438606022362434349511545693991807313045154711756796570863545096979411122639670907451530021980052095648734410966584066627022893938225186559071949042194882865260123375349434803516335099771246352594728309797348506039743310196754092872042796702845564895396602373083700606560911237811676866552557771452890350904392984025809132616679163488421036607973220364164177343898816507141580935960478079062618153181133384165850675244484707090262973605821916059435831211756088499139398176983379011728458614771281447145746539502189382299483670893568237356644004129295875764059939394623702195110503470667845503388998903327308209748461156347233665412048778550771848223621343663361742015169509331721834942472238525591907343053467441889279499892766516680338580075825175545609063141069452015972662878346622009860283555035433528282142580840777094678767267331519700421682293389338245181439766050210162784454238285406356614043113496438681796623360301776701923550770208423629473277051735114927705208179788703597557436878420050387157189569727468940813945197827699892999814620329027617327883584132477852342007536410088798500728792634036850613792765358152613068131594869415147280975581809250863650678218217474610682952678759719838127475321233107066975363086235450837077236441628766721394386027274585203066552044852111908729285676643345710743894007613150507577919866507964366115882354653678180974954588379023787034996665261869952444605779516405838625921699288117001903969150437570102189505004748917446992050462412451136626375165809029397773965119312068546164212060392246655472577714135245471955283124159380644001453645997996193103705455845545645826026800154753368918100435166216552746653023438341593935698424785854578336555255884739594044245441447283244423150197479425651891383074501046967624608461587081307823486505706780259884498646987251497147949207833897774924669817419186053102115900304532417232621306587726429273733094507593650628755943772072583614277761345746646692603292852945025839304525311814978626432377559665295089615276757535604435250962613605644319898192427463310630101629876161788432093554787717739128521210676948271616346056301879010624264743707345627094446131846737344471846170180978839541987762610270029906549172256436089081064126441517762472728099893987746734860805834881296888481598726057344440817480274780632627625594604838494125645303289738128365690727916354765571916446234469391834245302961500520097967650041823983465794015508573938091122571710912329944223887878084835137881062586987492678327355725308666682889677983520709193689224407926748856885583975534116094880134617819219513784282186996459298831085718300346937757574012422382613673953799072215311935090302920223467401694432956546475155676255200694054073259333930793839898903841638342539998273739585701968748282884015070956082515259779923915843594135816508899433473951038602770744760379517235798716290902350167960490017321807288967579527283790945807548582989402606252899227816484112411640794171100963124692258500188060920187840969213563594686470863900573989481293087412928589478886114540324864786470674749671557089852461169224563901467879670903130921793167244002231067700709114022204618345908364441114915123552028436853082687074114105755543357748849478500628349907853635830312016200744515600357544752763652776991190389669562265632188260146249012652330159155697239075738040738169896722463567919447026804760291867533542802030582316302858012903914188962355360606329567940105362149386273050214377335021585363825111550242918623839416784382294544599405166701096107819255780452857583123107647656706823599924548878507429290729434731045163782076163847364199906897872668106860410876440987251928683204852074667058838440292744486561753488557309520941119941824853096224620902516962654081487818092113974602848168716624298211491846252720974780927821332301806638033756533743283656796994939122905531624974623253099147364647133771208561381630284210547754514804055005185636356132272121843766495649311224016176931831156686868881476829094274139601440200039774614437438060058080767731992136947461716241850707770454928830119161430520742079069476687887315961301895195138866965698593872289035399563909937122333583626834307075852551611881704921201149224554696968368170658333627830270910022974808237978941531853835809268684196375688459084826543273430306501571085831676062184770741343944968830456774158903359910784933385487721220733007478241019913629699888004416176744048354329766787970290043774406315637371600313532582705948288086956050804367675264136032937294453549922915654892960001844837604254728271336159580468811017973172900329948233843105882486124998458671409286750788751984847868778263537901506126444414445469411069954314866369798041109426853288417800291231150115576462399951083778444452313927863188551302882227503713146308987370026980241744593109843333127573983450508598784420967594706965160029275178522124835148931887998563550600554045903779633922967947045860388851543947826473897618133742636073761378372488370187987961521007508563053899265747348670276485127534079829976994117291709803324532385605059109519355038075590418482187395903584606432433391863315541465425004206373620306690663043407947218531843141915250518541842809524301378011283726119701341943412307950284032218188280179249283524616894245149984236229107129412752732135616933393656599496456365727610714255535549081888367893799958558907176825153713568956439701999811184746011811810738298279090981503827728020195755580790224002515135145260354182089857357797364498059865158276598425533780647809536760125965550276116791380687054339738203451676308633438204836289215383763167284998306923585344086799963073467448155948611135713532692721335503955067329474537373499561043121570561203311051010347186343219198675951345989693665246516696520436224696627506031723837041072199313751086233762499459598023436951476324218385771533163016146056232723020301419067675903397698251415427422606115855064112411719254810399882855223233166899524832004704196148074511071974258102394385902390145257138468415405570437092022718984915071969994718701783903822303428004778433131922806542621553822012851570379331815601511260559177188631642129528205495520615866047063011015222143389708846437314590962016611521534114714878762351510169091372613372010593988159920238096066290287645783326736994872308756541376246852788102972044692210919330109505093983908491802887457756420681868629560761394838874292576451446431316304210236995788539720578437087704833083061042345578615324938474837206369274285574382002748122353050103348433086329644387709245889793289025082192701425790221886982184492574918892554732708821433474018040066815093375266286253970302661710213080482217762979826570921509556594126364272447940236293880739675364400918691784662564528376934237325340089100383623833627565427481115206557084342682907803710416625289912761692185398818205285145002327185027568441471230682721664477943832457738323047226841429696093783827418795401677699022235099076949382914261660409859473251271472382888374599062186266803185402900760966676975049426226701845520804245358696668997784731604096582761805005390182923808135114681086973967008529956457090609538560453097195236999710044384724598900688241527846732065627746736502014908616759916944732981923958327954065695455304580531619869787168314987359108688552455705773972749099330249485833950366737463790820450906481569346397344427918599668838966389788113105014580653052642166794628874423083238711953189655046870792757801534132012243697701678054468334499879754059502350727126746519529478361122923745522831071726179266458737979270122123025616104656904314119866754326820318699198407818348574481208786008956897986249945537620756326177991761829879109588381590357911999737798432656105699305520136402155124212896371962795759683005783300552738026555635726647988698499354154548247390809654198755199744946230137770794894030294071590075571442462490311242752704222909603591207312860000503021338822817146044111005274346900381347581865262030968466841958175307102000339304612426665901977191580920108622302635522821926099299191448653468164464115791951915502810836376648113155430030356781020924558886170207278219673639451199388828919203424276690548060646675455191773233105607565619924342223126549117161449704157463015083165089186913000528883486932168551504160539886310020912650107095467527970519574383345098546934189172735628767498682287244888452365571243654481932922041575356853935935129491626577207980773027411072274499842650683450087129987748234647042617689497197317079031407833513343617840993276004365222251778801234550648612412366419378047473846917746794027130236614124008966547935510527808127828357107934123419342149450592953028286693988089798544321110130433734740978720455316406685678571679186098721366324700681859396530707530697167900862592568947057717454245813030675296096904481756711567164274321637752948671032342442430573447224812130295428864143791303146738918901474714907060089648969329400686554916973163148644929184654680430046603759176473032971427623162675439854827325743295023758098346357862061489996908070262152958139624227044014538083784647341829776770060325248446656858233870888339773480348782792725261092748738857295175684962670058340853824580544126739082536622698809034739852453985758461590194798332702511618077773595990974265682197281197184986645838917591370849266812559620095296557082739299673365320773770292148650027086766407808480171897081542611442022105734694627829774620081802553166094068585926234087973944606236690634931340546929102488948817395411388304794496090821598414101312412330245652505459721217631364604223519730209721677429317301207894211341782126215967996565285769112529562286510287174484644600387420438669045891976400156152390011305199208446546803345539817594717012035679867859549485412142608251824667895946978288062647799868205332367751243142359118569230073901384868997209720122601241385216297804729439207652552024279991424074087238667647428014123979855380248695848996405306933388115298327283180735585125297553929718032249169848185603309497787485581971771565460599315559303577685778638293089275967764521535539341939272934286587157217756359628331331839660758995584045376335370116285141196854200524645781962523659333169780463337167805379916150111528997592106254146717576909172584470290842819466123669251583643904699874619839414785489420622030782412391938840789223185374236253151225871321480735742163927677561251574744284483529029974602672043709600767677787744266270290616097212933445188126600527075740927288967152855367612890438950699824907529592040502115225249777612784324032918183742512970802824578914375130349447958018122675982337750729309384478466184392799848188952609817974626914297367464447402355899139927278686180091146135284114631143022831586534470687575748707390499600555817611114992471297150821661425866942163891561298606699329469691696724903027014101635234497591850380813135582773401919337356414568934407358732873404932514567452266599497171666567269357082538290500071396027050354776149535236048763280706406809379842041636664427205771873810491736232754370879573973999078696919138077864188954299166798601679636141979671025415297841680671657838096144188080943811255257110435673643202321353367737948870957116020887947101718989340908121881876217333883525736260576754267544657598287569178167001087729269999074725962094198446998466740788275826594011457632955795661960097267574181967633329869984833606236373147005039938825440420520986610116902132454041787661265238258801607680132560658724222861264155880313088403576039624028838262029461918870056154195122271639617023674167953577370588956092200531506860729568995072913181574591585588606783529899092048219747015763016931737765457216364062126294012683476474227671199398902713647498353262033745227923839990550523830205645879306967263555482266037768692716432886987553902294446251235328942900689136735873636494320979003408732659962705508033079406426198688472580549578745223432622191114989825497491062208803863663437088095791730797267778308516361833145116611210019312242589292130131679692623507302447277822655614242142812816708173348535999568460396477181605569363960120565400969550323536848061872154713498252857393443666004576812030615073425837136383622445026155505239040871831962521001033316737203252761152434960331565648229250228446688086981564381700676363122504206261865961247357818467198183038954224112441801532193769136360882919881724533841724432038916546742636606445520199829521170398224942915858886483687443313668316232370152078224583093276544584169716976267424072818913198897354009129158206058996460816725110161464981700607938436617125710204489919154880109582445873469062152054561818744248099067497228366735513929986996005634294781300112516444448805013199056442828937278720788680048869218480849691871865294724845417898561710969529776204475170821596283620149007106859093393467985088393816417508061076996436009599582641359381449244610023615693937483766773564533362714104293073644825953889892492379604460218967357815949062543179506418809570628707407277710375730273962670725074921376786830207770641865317249541894287546953652487924141513427049482399656216043731079142251273186467515260159617295143082498310679096114585475114273028992134703178949929324663829939998198390180154954249610088067234878959814288117670992380192999862390557376517435225154398578405523367491758916415392885438659752385713626164244187191212469523194016645267014573973343815779310657346133142666130289674269019576384267019940609531657903547571088552091404066007059189680483463639600247735400206608304005047528257831031895277415990083966329202501373004344303622603802638245517643142569732488807568141553716030384826807839711713905998909438512225236987764392603577647015675640448912625150918738861594038295880590539872381450870579144091011339585173032898999785804014943787909847748819547822579713718029292264694876968183193060022438822416968999137184447159018584085699937585424162689984570853900988432251484577023811240748594031507517909046805045153053102315686782960786432708636298883926292895597463925451588548139707232436212978393982575313412747834184572648765157130375742376839335164274489739924092668833799944847016908390084595506513587511073442957950543431138132163338966246839923875442112746701619772047469586942785446821116676184910547281353449435955665342087345284745673735284815683770933942810902631670478274172914195860663348981653108693102190146072394518412855201386576918223719629093564333532398000808345309031183523228476477444160922758994533805649110926304001353607432516111704045128888521360796351140697550792499477894371926454350044872225462801508137775486586397676251783524276877213046331137524566680554895876137925278971230053718829586685910985055571223132582115067314715297217573121757756203970438623706729423224501897818615912707482232370301372704930837029427975073038939848423372235093000885320683499695665473605686473797050343353447841197256630670502036237345805497934734991578854738856378667880426490438595163200613712516175942874683412685810663909787206581942672224697961459669947314503017124031809682425166537500853832056887102574935402923562889548887794576618048230625570898075348893474478591912699221111974206407691259146216145791706363972524422560239996620936252554515544385048878645033303062425881957238130656343415550847622328933872151160849544729110179630539393563077085365982412536059150834721488196544828309480764571098810172144146420768266547259045820563791551680928974742912923120597652156934018537735316055730414975234360405599471046551407570939227311806227277990532698983242176613314248829733184500389696483541197227706783511842594069377389774610730382060320167039659641854909596496210512766110370148486474200924551822099215297478583626982969793294997887168347847869110983489304136076354627697174017990610199657331285037414349469831160804797352436806103123150247647597085154537361133294997543866427430487586855822539748414567598447100012429213174085796019032844071242327338235883162587744659806393665758228577038987977208684123737002740439710703665315676651142830089973785911531588663760491010693013145032011333382360967170936822720737272293969972461071774430012123770519796850192081166964960266246183045247195959112220974457720675302482962354665762011051230459966926548141941641789113346362090926572892961148698646848704720296494387534174880462326418096192505960524445564826328860305595377087147923918589898411587207412436212521564363241340273654770450219104320250540639730983594594313891015710847258542957831231150888818428468437759317851184256399077127222956780182624903861855218099067892391286574722354315486981384997807829648342752967320616403516367314659042813558698815545508834440050534529331057644412976523095381967512654230655564068643424068547670364612258746724234432369341485063000474964366037791252487646485650727098763747125690374485417806084203658360344696974715821095498693322933904362571612943905573367762074480002773423515324746547610234157001094863628385486325833663973327045850808471625184425391372634781981329677205513174389715406295304456218688348981860217485466813973326308627703182521144763985460067196674594687618195157745358992284708607803693072552947826729189180616672799455975873087598361900694021018975471451601878360175327975507164063849270095544257787926166502693681839232466760478674412440935664710850102166618488499095190399713371066825788581873874103184583853748883305388451794317520990090394252019931575059861959373186024582041308406072195049356571596128381049662148730880290120311621861580186917374707081160613605350930624274378644164442000594784986445981422301733182976183743961604292115677512556411727315060542545516196925264236310128487502366464535990345608454334952778033164650606911249757006300767672297911956858077200434204209260730309402383670551509544715347217159224431276968300035611601285217272342697770806258655814345378040746102149767193673512633419772566516462777854407820590704065467322511478630174277066093855557382899815006725161327229946717255365559527436428525370731841901956201811115756483810334435783984184685102021475125695423088900257893479511842735389453017161109727155550475149203888434661414826415152595332437902162060358707656313455420455704866371435709572838026647653707631926772103641024639748504624159712664674761905662994209388832265054684229444927572905681450923141684115832662668652649054463427119158258047264687212480181553681505770189054455796196452117338862266946722856005756910501553817088483832753531979671483977867086587758994355880833675907153254293662638912353085270575717555808640394372170400696523047842781163873865338293498913398623859829961741830396502681075412797522959102912096659092065986858610849380314208427207023501506610921863120459569519568483841327782117318154840126601025636293228607564980448772095615440471258750003163143838111793062024337996987526944178493731473471289522607178018419675966367187072183242298917156609142470773299214215736588391396709056481934492688914388517047407118302131869827207337655165276766360931659439519473135015037392421551161494242525577410485120684564333686056412396785147387414927876489284473286460641620087304926792658636614736668268568402882198648202498224109541684010270282654267551973632286387590261089308203211813301587275182819559664158685753932309512472062411600558900718844567566013595241501304554434197153923878507447667042238536871302638963490054752883169513879778090632528783224142272875186065107977019856923797428287576254641455286972882700356752418797333540260115602076733067384815930822018651439228394216630875759712318940536991767763185913195175455174078812314562012620988562022319583528072375243346911003715351073698270524358208393350038424663682190513153209398514778662381752649459494503716131366631000040613575369361641865891149556181782202760951897147374071240330511786531986602689370655951983112407735552057237403007957481624601985589286653322978099495973208409984664514812780180203334326706827042898770496189127658746836096875610614290383214283360352614305823785698256604307815255617502241779503783418460859070754213633652728045692044670802671789878435887302266423350019441411244151232252908531175011897898976926592176702752945984124782325286891056460836337256696713716269474358101952628956455422824773674361026948511872815464366080656178838369660309188757887099381065514464767319970422353491856794373041797587736595982735352691017755909897932395744911035767634088748578062747560070825900695392827000229399563586184238635065122563818881758575963014037162253065745363802199570426527967585317171406263120654664309537731248430201950799748397490574117884871323603428541346698674299432693536329451478416450606269733149693399739867621263538457486375306020508369688939454031035610534876986308411829389760483068854970298404673847253996847867710775883254201717607720003093711123964468684572809683496919914282916414060860905620546593806904804081182944598061146752669364938105388539444618598240059405825968444415145725048183887796702110732974538182099343942412054295809609021280624290328575522774926461464391002357021092407239541229131870382712735294032589725809425715538898515715215401389124232078073634751665929545293905994815015326271893009226872694511030803774064130465764640101683869761461006443408694845417405244063541023385950957989121472662088734858828020633878589521312564880178827597126100477051854182367980691415236908093997556453615421843798223434107912393488414802162507600199430251293958632382729557426477431311065885172342359606486717677881527607923233896482772830483578761108788885466838509628818835008307907034009521049653221904455082539504396629002042080971855423900704122820944399433972105329482828281555365131185379724469511520993248277821006008099381298152501960335135497203746581430602174614493368620162740893055249839805113128864967136870642126135514540128483070213342567795704685671284583319736139778367994225984241182823651733254322704086715307590067001276188232258473866063870043805585482724686188490983360267032483585060546098302154162461078122344890433327811423360757497431788276413454259586499735568031509456477124403379997112702651358985010889120470338889937869181131293389696644190352452586123720424672047782867524643922572573225494899685839263280152565076307353415595613254356527716535103573841663384583785484515732396713004551953401274856327011834552276527351445834493467719655949825399793664437517049018867754762228792512327381267815948494274242181389120686771785158391657955805967308722339271856604745121264903720314798458602514445898133793226393909760572813199688509424796404956454086074403433936175967421907809187936522332826656258113964689939706031443059403554710349059096247514345672212371882014290801281682753612073399326385872150367837453640199457773571668635928023163593277771696588630883360870763830896566244198752279554977836387226968234265670138791721921439435560222599627210020307075004551706523066588115212653360598352882417019967512720913026809079976318412725017698304497837656315858953388938750693546817120628383125366461701548134154258171511633273919548134333007633991883728977890867864318460692177639877986565145373274519614614485565773275766485254882346164077437895888374421202992895348964606226035796004855840267478249834586823684442986781979562012642790128103607171721964443184594923512136705420548336418788556175803350756251957515457474882270713072263013286313370334445690188472654257981703058932381811044573204255308015195225947771351458611607152792887764844387879403081845370432382194658131726006711124634827627730932270682922625151690492943339834707789841997990711503996567822871173425672984251908314955312615155676129304551672085198686422701326488847613786329820134576165256318041153198791740160873565327834700714226373110180217827464020637640262911366897800671777255410730843184322276449745241341299045564467636155030659140439229126343498566148431939020858094587038905219181838117486081165111827813015649720321728975553412500207945598873242902069240605012313830143232738895461776927638830883747955051535762487940220156930922831177412040211655841736590991975822301067265975056495518309649837373671501673030801571915832457377559343759175782145783914983936152811680291583354397324453888839958567099294742290128097136684829822597588781702488156054244765038591366127188394833460000529809277961760556159672568918529055771802351849175842492970439419324884997379462000360553294612214775284374449344906694999388119662270232821136050709885191114780307645780721923868656224956266280674337145537822682042803439605123920553264970907589652108689169818907978425823789000251270288841960225367583961702495217842557786877342120726595296395218573519471444493031973207460000712495080881770404320321586407392080957721072008676336028663225090084237954257118406342097209528948913902890413161125850367593639585481277016522669315438535417740496144260562050921632234880344358029972981635693221743343382756754064069012726026972076575432232762931238063674909597609321964450117718060445550183229218985113577770177610862061196572092786279456667658634082209754952828659315589479969217488076983860680231417352301210708456064380079241269693470479704026323768835862464652895103040389122900884320173670851553178100453028607872516332509215857125789741083222138505114250159536819093279634794709814740638219938636501964630297750190421160527531300333234985298193224016659202908859199508972264299727007088495354405446965535896703903852134817527802180112876259239267466304810671122207656155982639100664121717990018923554209742063051197051454371471595870773991653200107304510060303552463300260569543282466991457115527047317154784075463196255546524369394247135553061112829723568837211392457520496466622790757312036699533289927811663339630496664544636338664518581358734627333324944667471011679158028991917053212641265837980178712205552781824500651065574783228768664552916981152462306482684560448816250011006981805678571814802491048593883399903416968522302753374869138694408286863919118248177311037836369672673316287348581052618525244782429659405925630827410352922134147026097767670041084405003016641267334686683867725210026593493481116332964708317329991278981639594694194278145935015023518250054572323685499801096161833647145657766799346706002417090639339910268255755046931305923094389684948405615676475949509420059475456444573556453190752329480104150190262322820483120111683428002920887956500126942174974836393962546382648400797607433109503961438117547265078279851043926061900964647629751941892313676660094897009488603906085343144196512860053252144485949766167014321894629945574634111798221398499033110761140142079770059930637713035255273751928057696651266047486559059669137138415123673948759871950991406475171941936659895752967108389235522842740919691807381504464011846586818189280453879217194488055792809141718751399928119383086334918690388836249659486316946203764043247591067339746791525317344121325531253677862113873120181239626710300040399153832953076446437608939114596798165169580421688684108358619177831783418148873415439722851321241358535657472147266058993389399387571719098719360832273533276402382022826727217788821125547414461218800798610840311059245639897055458317794732734936201441936702444184688689047939967384553562081190798258842333624423231964140448522604701796541120877453776100650060824302531752765812545216977529907864654296954904452814371873099659713035829147056929704498692262041351890848184085368586338330621378236094088879417311202067445043247449397002048379106074812015787227464214180447773528412121987775237551109031766737843175848464488959170271026233366101334963463013879329478418976643389007435866022734689655592361802833696903378312536152077824527454738437763762263780969108434681349709196804180105806387735032928482356624229906518784163412559861688700028780041046406080352473147004588007463861695518868065445996212648291242217361093389761554259348845990196618411778508732382821050322349781895613892613795562004283999028896759103811598268633816663440702178928382523892636549119045167101088684368639378400779450484883179498796340853900182658626089473183824771978210184795200242517056653770680151455329512181971742595427557913217242738352141930440795437644847830016782961646120797264830167564680719967235717046509478944597036194969808027048472517312501942755304615876976795215907740228965624912901613843128837026430529442374544460699591654094986949893479995005489311760265240284541899342617876790461624445815689901709908499545087494345280796019202799901509353977271390947066379819951390571879508318427842275478886383523813672000422783552175513300884639443016124636671888894708008482441808969020600367946969336100232631956396480817968190970703186729523051505822079207594175804774175127863034084632130789422814773324289267512190181767322611373445184824385854646574504801323410122327649730635350574742655932538936589047460546871990232198632794209852035072984435039465031883492526661241049837472886256931737965390235282009584234273434078999812157684685237590636052961499282806120295229958872715668604914216430511616750745581226631793600242466922254333630249961074310356398296531651548335439326665639890135311131579206276858035644696911006012136103717852465524613323750084893016751837898032370386768300757390755703524624844703823827462245758500310673270672135537609390375879421484921399827012886940780843878387780859788485072802411593913390298863894198448368569667739663356497300351152990927021194323421541614525295566969053912179724238620289563412592074366109418182750108280276175782814848189704106304369882795368135652719165788715619261550850990062862824729079072307910361508698285951531018109630759489623199430782586470906781553898570493956225153977211567311422451882672206513418371806746708992803513353214483534331125513635113772156653791508985421041232351677111618880565621015337235147089527935086395656559513896731841777048386424176423206183787834151563504226405100327764315976822767357716787851771193506185811774973102748212616166460241654065523230411732271242574199286538393058007473198093425428370273147137174344290984902212408089844854591089810048074070652186880517233208105290978516631030840935585288317874110880310456117718703919552432555025234032041194389585531223548473283242857340241540807996979118249689810945610790541180054141710422494394922036160799513801929703776485678965085881782394305218189921620800971648483281571807831071004452762722856007472049351988468100595182938047300033219022508678622006405493673010006932101083524616657397893008564782738697561711536256743504529558935259741330660002118072048481876222929110180126223118248728537125596639205192508158704858627955423762749701596598169454639433678172170166589527291673886815249068146791777417463681222271388691017092427620662169611692412048041254943522049303100377417487117273738707284290047063401813077053230723361108605605082094638398198056501768225938381734690457265374555655164306226802469681739075988299659425995141428439133639204122365855968758919137699804889989114931098019790429612816801730375199921910973984598498452201841017680652000379686759938102514515299588958775583955547506867867630797845929045708713774814160815954221929716695831697140351758790540469131053288608956327711123749755384424279602284466371960150855190886464446859385006089660334375484855585034704053192355061598559333397754798100297816721670106970169790131344441542290659150048003769887269518308284158041428568521187520219402952441046077009781514477546652436130201187613355035337573001716209719954857358609285079837098380291374598439074465200952379722566056165853025304868974745512251073046697712423186370022745827557599245909964862945555669010143353737238932881219897645328719367501888957414289896481267430613606100466831075662998554337201647703194022422845244991572367243907860380209327935726450783427809810984671894782291557112401179659794549401869425012892632545116794794323939951433832109256238143142336177371316228881874919742807889713365032653109113478341492797371550228375819451189239799988383419073453594013425189859695715795752428525727955574179750045661409643738201969808794966039172463605728851100524039696168604549663088912708461620565837738293443621652962498652098763076681452656727680797134114053540315426440838953368621163257571567825562407079805595256270593104410100598249322349084949388264840887117620080587275647420564197344112274657900459235604682378997324577247380036283598080876049170637906919903401296528022301961706573516678090120634155607758370325534197705958508948578416633787078605428743174866063125280924062215192267992401775652351046889427231714087319824457666941396397500158612907451970249633730769998290641666070126534757884862744474297916221683556638811716717665494833251501469141640988916061606273356727295137037302559201733214595653910432569410568412148029840110091479123834434091470575551167118154812139687403207047878138200409021461217362069877628836688061370515325675969783855127120996981559550970910961047506449264989992361280209026723845951141996060495471337734177359354295627183918548493471404876252045200300087514439008791166630674491148137335155075292894876734606021761365714811263996297267294427413193560572724953992978279253500303715635311244670945073188857847651967355694572674186340570108951429081262883040252978573263501367496836188569704860257119225101298697067241164096465226732811205621551957719881837105113353648408839899961768495513810878276230279076250309342440058831702073056411198970722644088198461607493822225262545275087047905278565067056058984407704244759882633190899516396783725635336440057556956842052900386111974987820409429152904631751294316106645925576122672398649255586299731774062961675378156985570571042071202258568902072280665425228823959503773857500633492651108502946295587159982407726822090813691824045902733108486827715980908825604877182818940431465244509685033137591701720069418455021266706078852283252487790917811153354346423885807025269277453141960787903482240838046716024046431928061981664480435234331874538781398843805718158699361541294064487237817485687004617343128227277462321327196133459756808496442285036636340100678888436494716273727497328930932884787465488051083200354492684640912470669673756874761950117190069214374650893634575511201869559507561310252649108531706590490829216413642388120463353292535563240153362465565544371174293901560760994748977717615133164366674752402724527081988862398170264406428989807208060501379340170878804038386667577418793387639842789592007136273758576663249337885701299498766363456691274275430473822583122986712194977276786050048538852869544066003280777367158853347882722821025817064658727025711825871377908466839802111111056120610013880913096902139473793884711365128930274903552787480619498636135047579959535977476016865359079798405388114957534710403495071491382997293953964674663186451349595569418001667864228040231770933081888066652589850193342634368390556424480254871856167250092215200040573820536403583389248439436290693208741255889847450089776292401326653654016097095157061648677738969803177872481933046376251037165087632417199528611755302360798546946066563252602599527040688216602046788010503023489959499093291907933354888684681986041301691113589046211932263190921949833692541099393099182790348951854743270573511074821918040792938712105338937723654940421152398289041204452420662576065507569271732838886787963893791661535807231754138878611235710105677909169905775284285388719795189741949702681868837242168892835103553146006695188308302600360431325808332186284886441482397683417157469609617946934240067056208743046201108096475705715392489485190921128454354695828743815864812101187088791901429200478843209566155139771648796198713700298536745227860673753235124958105855638529959023206941632994112543688483447682678773748959503577897323402545787755620586017886706029243482738031298548059085236037583778509445130561138996202446732467370561030919254814804078146292244305477445909206646033949866978652551963357146807103940653818339338391479056422698972660581597297435197140844974254861032075109806930801989655671264811034274207933240652010450758224321943257037743914841869072552188497483212975648119104704152956135803218334051735470056434332451729797675955228016857523266319245439819689704668583860908111015653022996506949520432377575240400413365261029216948444505142814696533454416914763966561663483170197114680770852357677197908863534933831232821430942246559643715410202390224007128168566175640111529181074674188935919790515818165352876844963991355333510475595458373330799694319542179799108186709610220649724825156215202929014607909889293044226314654666484458870266179268949514911966140565874051735891237631564345672210522783967701492345344583381606275288950800320333164612198334631592542284500381885171356395422290582433724146783541664857998508075856198448148715493697618298972238496286468381648652949854704187717827272460034235788681582512307088361676419625311204818370176716776238183664467728432454641898327916810153730064788181584768679585481304174413102099431749465991757644926339524232328016177804499209598028427598458955409146555376788318860582775524373335671333640003915869603560036304689755301780084313646223639512405423552520579290113608005033387051492771334405068517059518619381323650862138319240382846408999709432474750020956576490683625117284207276988472383619327187237078214620195888344503996783930049676518892445996629589384010458040111630387593934066478850203710221595362253960001023901025586526613925180067964867547787967383949251054925900217943848766937135272367810225434168078167884886614560642900468747828422054516682470677070452995954380302611215787489202847785013276654870372878374804752271026252058074471758051454245268240637900321261053276638060042227200819147842238916103021874479838740899195959027471870628865514568476628535113782850643808544847293243658453652712719594827781143472211841223051419996614723058345137412256592151680885735168588286196810532348737372915972079405843938821093098937415546391923256917678932397467591776306438551302216299208691693250937445183771260400129452920210840369329664513064417129342878863312311851337378176310825816517907537489844493322790745237761067537805608478166197747765010511189266822082314538661356911527207951232218148879146020981332394738433350146015734957052953020406768662775343795197378697840414343257575733369562144643331995276282027168851199641158583259489536402031171164115128809945099366037903641679866356333605702761991810388495960547541684279806683408878155704603861546268315582574743287205923411482114610216131736564748873160271190751593975921303958756120195556894646686900093960031321833345044894241901549086533522462505714425772000804764865708167950833951824544598471567411926402974052895405225550910849404098915141038297866091238178930950046579171665247276214350989493765287399126135231268875398168255351827072089355985492276344849685977661745923173964973093852782643831658180768134286184439423708240973824150022150060142015281672282958841106152896203723754696836481988866734442342485414701195918769653292096214619655103792169952781845054284648529280254051406113933308895929951832138240080187619097285165035184310026279375887527477348466152788769368086418924025427474962711978404226284664420236113362518684145011280169402529411347842387713972859426823542104154071882019254135501948218230527204191920223034354056425586216624072551027756084485079811595127508637772583520073144001756945620986645725059118388442046460087974800091386962557758562228736520584632099632003626391433566469199167978392921171311984237389281736856509133350107464622866330595908297113131127496255197075103478795983511762013055746136195257092144585239257734511503009688302457231096334987883315463716477836812455489525036753885120510810419494518940665875526002818322092452230634556988451821090577066672044263218305231257986948497188358817447577769646094948161642728030304914124250138787646092224819020066684727774714575714483474369136602846709241634787000175952994489335562322356038361224461178430950716656772405349844525090525433990627788158869268278347376115365089858004611378159183571733241141631850401397599816151176909505384490231375981353987686369343336857797883077087136171192162251968427960644451084246580412685976627023867210991595229976961142127676769992679472730462622369186286821781913829607563011339718355610461123136136238684827513980677501764557878707793641045330794092791542687085436644743792482790843013578376042109853977923502812670286575521437283143064015569897317149610687018065685633962488614224110896993162883794919449979400145404738287262219775027301057152790889486698830484035247686937334773975983728363928543965515379007062912879457490885457881961576905909505253726109204009774510487310562931622474088219580008314760177406264747828608341510462371383143775327433650808916295343549484119953384851144481132458330954450173267326522809765540488165202018269972271459046918216743987759093958725231341479382354858729408664337379195221127899876324911196232111696521033875929601161476571757502385449968286078009410072537730385253929498881494622017259747639228845265725029400293393556107845790520271370829796459876658471723333756029179203810593706289263849506744810675597119016316462158780526232368702072835687394133032271917202351261466267494952244858289559245932144838318088163508529782165021395046045621362393923379934608728430136848314513535562830122057300345409514372736615589691121420216732577388352376527695497770853003706485509944235692539960845115856467926332319786862491488994486497755939931106804361984280986586325370288760344126179541393084050566262215406014241209926708894944019402860218308635011323196191251816391948116092346817891899837635672713174917270379979657757423389358245177281544552044559271091235159346994998083302604333597065570728403315506065746416609230923001597171967067198079803293808918519481334846244903354276599376432309205119391051765134049457794651715581930879530001280931002388611884742945290526913953230250283942334827253517986415196164424365844342810301693598220098758124864264636722318509310798380251062818476170300796865288110059194105946728395533160391838386677191174089495621680382427525840882560108014870085589176392448817501058642558238073681777120365667242164537104984235611124521206709763802077891249553982056418101571353163989744598350229522007710153891102439366176334440337221050960061321240615063701523832364112541434586506770135002596043059777583118075447519241317374607112335020728053760107071255821102135838592660521732085703827369260902870859834159813218762011772444290706471873689819147011615550144348761387779456700118415789635022367388050515243527393128255035136397830363296803002500417526736087467535218795320142003776317880991219904673307705845776096529176548709578182387413405097490254385712354800949607139739149760238165886619385899176052716088226915469575703725629922358062205658143384575314017022033012137544897484789959909293684850080454655707227046485528449871390320985007534203703820694177152331903464103718041319428652897139730584430652543575763471648061970015128404645858965855020920572719604415720813322739869272890967237957108138960363989934150048609973263622541220341306041097317375336457822968662830681905697976087487752489164265954758247473012542680671520298450528408564156698965153578526322437639485937481349749090632128676217910902190003605679892678718957895840167153705882897067746717304082251842425305623363524074211859217782954862504191987049613486899940264772266520553612296045890846057431134205029218836933901128947666777427137418731887206267816374620899400615096739408587474106678538437230221820232721946597917119085009989436120734402873244210364321310221723205494728302269272132364316749913498636379502174001892135871765226140006198599913648876917684997968614852755610987526457289148348735144216558477322703339691890708601992918026461492274304756695130386596728574811082153848154459746577011879683991576283301415458411799416799835187564651608392355027625829193501937321423793787261801237397595206011513687310503238866916674569556447144141427606639752666539557705429866602270766823857855527624360541580323487228857936900511533549192260956972399690600205781365603286533664209753707320048522354837647366882279037818075053175929007910159190046506873442034626511266053448922337904631426061822665261401001369847306452680092198089651464487757190680753139733749672140886778980755207741059501286618847716836045344573692678326703820434963541595093220126766936326920079442117198412380315257834192624379583557383308741408254172036085996442398732882964684324167882692355183787734709046232358665948878822449974012486365609621425256115364007580411093532425990772169409417538822883049544843734573501440046244422371436376930589884200234791818571907669616750784662885907857049197448017598121907460399682412699349748735172072730720700153465531619052245414350797762190141068457384432622125916774031765505754327604107564169041384992776681917791053970258604135936551021525060282796931375885182737257730340956896902091355494520248428802549980293908597032701940917776268832794943242886579715650221728737229460677649093061790934496291614742296250612518862392137089107240098175355016264645566153265880155708344271361506602055573309903006281501531012100064551916317870185313082892236009617908908728691842515361061650969990298688570638120714990152216919944688614898012635378733394308232713339012275705627585484179249929073310137633721360016063146542587400660854033062975036416703593242244564344386087015369030562289437414849334767213466941268058567229976863817240154561738053154146203087802613216281198173650263159129984492150640447801696693676289837215797042698388711407804357510530095483982793566488139270684950174429330893843705272183858966631094563152915976522389368811984877153252155125911280893462349175665727089524395038487298239466592679150061474201614053157956575669316185526236707534486035588262486216623877191675745870230452455028727275503046592961792892192291958476063212866271287261787021871112877292712988958879775520373126749776362546092440311711585567185446433560415017383077479956475597188265045796604866216570458208763946883793850616252807560399503040400641840459678075279133190898459465798489106374965355751021910665277953640744384590215112606401378052142854686773322740470855837152810841012866833786732976466450750276246562544406413306855297417179490268399544873314924449815060110770250131727849543058496876033550675942213218690963105646963004926783865555121501284242481627912161069488934671823366492393925446277643943879578367150622162437884201479523759455865912528947960788700250448779350252286249001420409447566401499671055104794436227455040933028635040061369871043178975392171778133507554787134379385129259928476739136220905982828258042606090612606004996758206904252015137794688553654850877524678891693031916064261257704718767145916663133410796026586603299759687019025526470345665537837494801918897597470278781054864599925824075809293520449104813358228222092878486984765925072567018930225204947975486326284856337107439596941386211987762751470732708155596450120007573836366915699065296648044128580057458864893452717971785370110660631009976500577702860829472308690057341646271148828219359837970037233356465777717166538660652503471985939206931963402922219803599149853984106643619580193350256947169455058790171311744122925949528591432085548536693238635340634191844688345877873207933055508809639890641034169632912674020952373660752759166928365128604179824856469100652976123703867107701858273604685215308865881898510487544561200765420191066126813209166987728367895817018357650461339504115525542069211543155403919463508000556650897961889333969930117609672744821662673266337693489497358115516925777320589843240469523062330958968673955444273287454926003793636752133360345792389740836788446469035811239442326435723833915204770740075630075953522190803506888919381855100653911843178388808202118008422475811927586993237897268196086503191800729957015081421105192972010590978917186211816786572816895420446604877082526433861023493929949238679341363269753600639490946115681603412861375595174749303272566548729591164820619062817322554185042361575683828517718823390282801539573434938017131840447115750116276251106131155928088428228828391009392309712584599512600261337970704509204391337754958162904052128622616398733131714394085487380249458836241326318415199898195409358391711041183192529204208953737310313385622226872330847457000725495588458239229766731946347522948358111950350743191707446278417089175132611086887349851096332610323421807804370217768978407152126340348779471620228089486629947341313434802704230013297277972565532709420620050449312597303624878073622618507989954950022587438303796060643348616018395617019145796919633457978919314595507481340806062060714150645660731220447796571757907444925612650613650017988873553771657115134708289298067825116097377935867842545957727060031319375290014071333242609339228833030474454498412693310086516011760554449731051217009460170046215009914321324773543472861347787022857740197259775164216939472952000904948288460225987407546936157544885111796368962090119944763677864033162241445185165167083371306946330436359111886611245777108770703794888120090909443024735146057577298883524515070002121060573867681797254918694305594158523780340156884915172055823400444952782815906570532142666681831931012262073057466875206209493665722603309980393543323487632300349934512763852968115500668192825504896544542027950692848046165345056002797572427994190092451764018165402417934038559991445166318531905099780226666602120446167945453483482823448600288521590288833298651666987648106009600959576233507436138408998856113353498441811712967405044858381417844845944463989797256003430157483431490356464238529300394957191035751982230043780283291065123407292456861595237873374482858142536768617279988109858546913153780191952335218475564482052572296346391881931969201314516772513693659796459570958622658700671002373764569929469336170371619728832458189254273801482215346989326771114888481111401374836435973047579219221353027650257846465358366497339526983206694206373379534143127256487196636592085512056040583510687015025574338589060956078969370943024573123295651264406091169107869836865550266574680014262333646521476138413239457012034633547855347154921382955691189846055333311567064080765765924107701583984879157329152122216237321201468919248107597937712779174153367984211357041227896450248191114539965489871864987060823672951415029858815778499048823072652369240383968198245165724160942822702014497279833664015568512901676368499586461724406499537046582924673978503602809421899185073161027295428325392057436512494759068572312504855426040904547690857493159081776382401024352084556856718933357724391750326451645840221094244431401875420304562106744482150855995678607171792991063808367093789850706899522391969226872130928623860930979433925679799617938413933368247516480553641956525319198151628821745778737968641771915744077200691739759012523225554749513458257489713686396772990172157946940877080382573147828468860521092751188538285783425940559383741198338854420225203379257052367321653798919670616416148921455951187269846016349069709587020735218890193606571840882470253911325213919342578908485132271038545179602057194814221564452253791748997703851883515091259806316280965725892516398472738752006028692289037763209429294297501948181653599478832855291773108748438410217428044842385007583402658114282383468176187778103044831424814247818683718281029824646331979897065702856153680094708075711386668886422468406343014120543471575052087597497503072183766365587783110183649756590679801274803305247335781798569447513404116168951905535966290832681805392984107298695861755634356582108439118588917425426753980256798486406114234764736550168751641076943312389093508222478089340926764000254418151959028165631065363743851276321068701383429827211343587323334026579054271049168421613827973927063758303012084523614999894364690604377102311451149293358193735398806961935973534893577277380462825842239699367671276855041767975443750793990802392650725497154707022881603806112363638689430188810002854720371950867272947313681774496727020887031981479006625382302968594215179197358594144066801875558725912470293878235090339135636405618860767934142205922292197011374049670799373762195315747534618532640677250986200014028021223412589938295726081196560477966453552409982690080906458748068885748331081687197836581857703152547587228642003339888829416856217873733343349856355801884150487538148996395696498888296949165007223384747284761282967059713423538371628181500499970965075076623377159925311725579889973774561916576771014953876248103957090338292528889133609828610398675558910842167663360008791770290401969861436945834955588170662824191534235031033177656541474551851482085879348639544221704188506909171749955886547202066841897567852830189503946922631151003414138651705019802560491803104344084244209828178641547575893860238477613611307679819040678920681966198701509412330567351232985424158598232892217868360128488797217458218478513774617488913927689486875204773973787836220286894039625703508922208087103066239695649429974758811123123175262282161900824186397816126443381971712248140925832420909200730743165330876579635950796891103801690053958373841247049623801907225924036455566307156533923742908959026225264009998748758881082454844696439697934956484200426086946476595124696520822529019995868096106256524713400107968282554952075840974783491699278270383753642498589603637175945709531411542599389668215765065695250881723758987973757981234280999329063414452279663239166625868462088101179978597218058489932299322523117235838994389221316762520111176038437207837388976730853578148345356314820363362681855153894027034224076018141884687223443692660734455581099721475853028847615274755491073426497901989663821102039007752744357139590573809045659995453527609720644663467123454922055128598742328582343923375111643541728169439313288163493618548937372100170058168960027367681481464904284686802665636276324066765844515080308940581351904682578865397998963248553933038935620646027648136140886920941647254594957011093146234056932807226706384247192727305035615351843954683131079380503433762608133296527215065508541836337730143598162557285620519053662733329412476661096544307323950004383679352204689979648309685403190443298605068002740212472963467395323345479545433295211003243380784745472974531477551657050014745768632716310603803279765276397736579794446566189995290394250091285446950042278118122640240261260030589475692843381355047174970423978387009487155711257622334597557303289151515152483401498413106829376720750319450342797040561841865189984381475242170667585038122716070187873187552980552222985779910720610425202230646486631278186681007723094817451117944964789073793046296140629491552236877458312326357849955138542762468490047050388851137159459766061285846361433294499228344786672346581019675458873830512008803354411137195517753545479237775850209169855771979933100764679796355306145416586594668422801920861020142283139364263307163283301491296674992816196209389830544996028104727670638217275906792182090663224286714259003508743070843731505351692376464264828455833503116658468465488284292257200461204466308033848372594420686094570473185588462878068706621034590138996295408478153995022770778559509411377545081126742735155346556147982680602700851356897304299803989987654051624414899357626338409551269551933112017550013605003695126953170127573135880910126203979257188042734720466604520437233140097056971937622177329077834397440163327708071859905711749903281804316670880250902415783248597997428020318674468005525871110269033087792709368367223358512035769372626030310888784984140232648855734491145510222047706398738022579872746675575103177815734528039425150035269600132298890670043987971117624628186762476288185971018150809234917003730712669674932057787943910102786208594844566091690015348590832966630016106429658073535955898449811307576999503218227325690993959280541251746693050713864837957097571340038797329735116723586306139185130756684213778377277770365073505917327261100862281412439249004367846007425607669292493837775480731415157709057092520301737072718751236518463640534479872856270357900557102509027605403291038350844371339510814364878908269111344579376745619012332172332097922302185161481412463398495625843468388535924345980936385741535841872935767695096791572466779746253619245795046976448426218693484211252627033324052328728064750262730977527135469209031402410136402320675868067081266872814088109740195194993778999564600497655268839729587478190988732096453356846909804328652856085251786155982337784529115936843013631953776955838740022921991295888100553148604526723815800665526066060475347743472238246991729604456527565894578452440634233878989498271679517539160871603288137055197119482073745626796234787215020458607782051600939587045261930517252968458659602877418710770946553692404048617149132711901663506399270733652806696130419618107705456292952887493549646706677254611991137590523271746746543646658785577830939988901138516730636138356471326977959810477436502227994852421354760351589196506939636224641494746897773003780497942237548763542716476048178919922765655438315352652781515006975647465818902605284751189853582017931734300813553325120538951840837465730651853442306112302905858497027617027847873077723820393961250721025313093561082154444053723795279192711708375530549862786696812991711116920982580927964664821246722130319502163824319285497648977271988591713896814618619022936676288686215452511469182896552429324851661350793528048869725968017663071672108588923357494599237323613070705284994621518136395118694313286820482030971756314114632200868339225679451768926229455215155184840401545100541443563485538318097772138880853631106215600569963121964910926587161980108120932898163584972781216873301145425729589450806192071130302701022047605216744817096466745878300202227340748587891268191836987839108678360238472242100487805913753479484119508800081298152346477635665827046474663805685153221344519657282509340417405727138636984327489829472272759565056757226260177481623462481187303106430925708149275605298146632417005871182961841581265083680064627817870983275273655821418558350681435781683185096613232487898025477472690123732975526519047614113938998082299348211992811060625416850366736912806462369168204053475259026801506270085288337518309438081170504786095371131275236636349226676986842072282507422574006195678936191964725518815095655855488241563342664995819045432813306769181414397705591951098112338140630279771842411857516500826764169247069991179034007145546726396753653830152161989377653302397573622153757562644597323458892852392064707429630222705971940738470956636084403179005918637193033432779432287037608103686892165511080470011676384417496706214156675066696841512359356521403401746435066599279994614561669728152999390222121983739342096131045316466427090070951480330638872252307173967444963497681561067562519570487075623485407342306276417611811131180373837834966681218998590604663813957031325785633622278886934807273127248129636141530670877316083778905025328225491473060529930842884886268287921918299021864252081370236712445365463169342445536666717804224682508743711344794659503365117552697320536246773104376420359495043199304188183818599462134315365512964012178808426943598662483935690094398312629907337423486604163904059129140915287164577363824239015549752933454589509277110964930361953936500309269597272016559908091539437434174846683842756420009558270184308195898254981407227182689637737126294381749441546966003122056686499845642300130633698741180406054287181456715607035032936249780790319284660165506663242984330753260132008273964023802455258809119096854827450810019131134025113482647753082862331188787613326292534941834436031180157434283879368058501904879555137438283289259180415397853710517242922859096695448537235491974351224885164734046893205053974515726516481016735887320402891699403802814937473494967525933057432469577744282981179652376711672445082896759910239236295164767123750180190047263796430422630140471530940651076543786919187942782348934035003628338398893727683515064024880649244536531371202346837202171698031909006075519468385750252934088825760025413819653033128123142334524976406421907874053924618901543399531383612899345862863082760074572971844270351374881425343325635229024081231691235234244845126612008481805261963424179252782912537918974328278451960744831421997161055288189481071825893183517811402133499240120150958755622951193029623370056316520912889550841487982088223325242889375449605577234680931927926652598271357921349467133956915628653560286955810625570510279045098924868405191244228281712183746104770898203802143836448049248691178777182389807268866968825102279295177102587648494260167212786738461763010539631761601077651600470541316787677585196431950949559695809284810507240011416158747124661803350068821856487626754884234278951615422391040996544490805070429444750687918795911684258481417412498949231317582838631437320934942339127353072084243767922495474959937350507029777158523967036309053230249486065898805249339798153240395081735873241667425582084189744165192089877768184908972915252202224688059479281247165664905432986621653208243348265156920801590986204184149871887206549272725633773808937723087212901083381116520797817769335709313261210086669608321215737439777228334168069389858259132905498313698948275535339668873900089378646844917193750405729752235010755691239123074058339612540975956645843934715656621182318039847198182772977385795523914810432081969545358021527876817063430949946282660942091823082195753622771019666604248954700700218727384900399940497932018613247108242459832186851825409970400036754605071392463803748524109549972679061468916783391812074328017188419448495410768564623336165204141141711477723070624127202981028016145834947415030956949284879297848707962610963669864255056172650119424002749843017737787009294399847368789815723331623029346292054355712645065382897193341809360135956297479627924746513121170095672901289345701402068970655714634529811322891025316516896720661037686780112054657214120002716144888687619983104705093977304265610419841371999911632192754722234205092803306809059975444784428947667894788552213346168032004461092139848071681645803193918564753028558172240668803402802675827874300498960225227981165152895474516781605487409900270488268457648325608174698023689159308032738432099599338691388497634263799546023801420354308098106619495063403426370572715311927083269872184419585642730640403278501599695546763114422765480753609486930617870847249823546668701552043105668266033083609546948393613956849157729484872180992829967086046672457645845225269583080008320889322610780174308748634748750952691220570226670129416550921539175758667158909416561397351845143314298305621873876242734893083054910518267540795595504812682531347061704333911417650845652939436291496318988416483560830215650911303956710080013003735816358811836697666384845556855352398142162377514373758604873920292554709138354328941397636437610208679752287854403833929916341017302455904474920456023777611405303047903011155351749066296768140463686868665194641156636285100225521103605824907454711885834918857162415867705184163574879584282742692794239009302718176267531848845751587717612796835536344981550255992482100002362555961071002234933645276238436956496477560913749507390579232480248848429069007178006499917685409519908918931332843825358509070127498847924621260772834814955634024957124084435192516597446891965881316088321707645043315607737500138403838910634927893421251943720439616646372531947169248307293516087986749848126798858183138153913698837469876831990876895062990153949235954123068671106270941428003003919316219616982439282124325331547218920904458023030566347389284893856891048605933339564917898748863370797941110667099894459155024599296399087302273905696111871964260108148808811999304827232653172483297195674266841081087037699275889059892976855863077821246663565696307161980231686927449996743320093663543881042118798703180137285418390741755199607457876614038224655493380928050615833770686473432520120629058231375046991287126053488233536784374498099069614863348082204035203377458704640640876274186441863537576222583046822728592019680337219073948262110058634648835824245204229471986071341334602900372352718062674417650427813894842669602741225928248052132892764524264243407432407151715026070443129250687950440076531841638475575182781106521254102588784473292439049460351509493548858451750533356212261966742463802164099599967113936958708963889911420126559628066404074302846753979565357783946788330899127583321944204459387690241788487346181653157112898748937547552354627644476341263498224860385473751723941967802515016202182165501000107485230614384267949254614368223620479226242562156041337314584134941047271271613506637075576814205717858152286777387354872677499688893350952663367985656753661431101075099677567942195892279070020902990690283708975008847497732177505012050478292787589295608435945300806155880444628977387228305304716523681803329076733083398090240426801918099504583212366833700046842398562305525047685028609510285247612269759362250672125708834270009518372669514420569367753599923707653572756123033897402575074191059571818393528680516713022894561269219658159644536665675954526502753245054372402729625525662780110492347493200091875580573898173775805405635751678717880657454316928107392762254889505718686296819162202900362981370170997280274179698289557789455799217232526991801443943468403346318076277395984789531289127159369520094307939197613450312490216211925483851800017505691790082526354486040487165394732751318034921361266047119672173955288121483800536894998307053762723557979732766108841794953503792828803128054794645475309859925843085255991603505442369951383060106898198216767134265745567189909811704245310915060785802044798344785960099909536059961755619681232307148865626920002641672555465108556540711057313331929928231097946732063589370456284478818931826973721867922817692209793636642245807097531252000645654350508803309641428321968203319725243094665392458609253908263689735139718251857342305716889377466239429444433602204299857356945812881711341601773412807741513120612435792659084333853644633083130543108629994987695860635723737140720022555209263395685065209061571673021227449122092615241366806862691377099654284191658391630616237926160617913528009980000986593894392022803019833613031495217563133646237616769383441279561598585389184521458062791956787438315502062629177191781686662732657404520303935073082712920464911816834297449237736061714151116228513594950501695754045191503888828421876990029917048855385345047442923187016428147117994556116546100871596160785374635934610085497042448636118901178904918024781345831285701395830692050265611308910071385593650382592920145754787396078451933300554339322435262605016588125667788030193003743979876216164437991923674043536699630403702587888999298753121615776849479750126604573114398160528966330948320213360378336202130998693405760676878187767678426948340665905397870006996353806817113316740040425298208417454231546274997681105767040069974355562282988190345274524054762562308428279689476863760733281419642539933263212168351155540433183130863296834314300144819555054093429159398154897348502629877190803326232544788974382329095230221842260156015132063480185688400251150973612482215142890474760820631031394028202896640754474389033153803813039780346740378518384720811248761888979049257465233663735627016610058006075499188170443124255028139601686559924537683662060553943065877125402716159047225182424694173931873505798336862467729306231092671611607518694732515790188349050139930193817028343418172645233612933459002001358212582972857949845949732058123632172749429387901174812849993577349974984774155680420972560895769414121156474216971146114382910447914400177306646123305442380653772078414043350468232043949293784139253303831581041222790771494408542110123565805054945237696697750674305716629006422336780929457765271174882175800354502993404894942494504091847048309523955433724708876879074452763212185487330776851948238888225190894831978325587641375028453851536122362803827646562701328015776701039980491604310148441915425924002285409741372162330511566495392626015802317907037019564671069569503870459975107915668966178085733119604920401643158715467923461358816542665196372687309354925489007311537368527906667306682997108850760827215590050058669406932065336963548397438003098384024444648333416570985385813033565495001900989470651681212352889071392452820420926914498706551636924784681006629754889179336713528213222074607364740535389055695822732940629461190404289803343492367213038102321169945761802760431181241204114519014833953546711444992341967945700104934687451851185440837251832266150157657364812239103231585537807570558277222747322260478610197912949363756529985491753392086810840767424597450463350036208333088229924939310519972373766709528328920728580837845861497901225272504119536844130346224866673763249047114457417574710773719594013885132980380083893750179123525973447812798094674251311404851746505058345459005801584139164634193329080402868813484239371026558507834418752161499150706390123739794157648208157190608631970375436015022988375453373386782170252992512401039214653488873710587472552959415349832247377347532586054804800403909874967578673051807482936318076942812657366329990457265571253456275349957877139132861223543095262298534999506841178205457490003119777190910676839501837440595335979487790168682965456109793471273549660946889484294566812874950680008653594041110456342995624736403588524790552098008369771241861619031206341236836409826150893059306950239894577415328979037705825456783391339386523554833155933322572818210575100414693189840803444479787560446903075037513318251234185289288315918200819762555534198237852329972398456113206540305627785987855236719669177322269346693916448509232218198461013955924031219776034797712693727589032196234142770991935795781504471667380791858434540774111766854157640599409178295015394969355028207297002141540751819178728362709338262756910039089283676673432410449577875048834012067745594492986490480555406338147329713415513159065874086818225849201562546716720647534089031800179427185925546550634587932100270274255780770657295932352689442281797847130505092206040828258177828239623879842174673980659627702275134279375498779297529609835557069980582304510888215322835564878321382363064936420604924102235519334485723351636383551675497182935426527492977910945613501481138188792908256331719536907610972704903354328400070132810543176556558306475005700603852878571119051581129830221006616363475028477939356224505939537292558532045159353226181117822482680414179205802764560288084460729915809991570073770643097120139703581100560307980132337693766234718491179476998140547618176351913914637514290348351250012522577521481590509861126569601819196296427196066202910558537089438551330689377851919512711660882311084217016460755472292638812700733501142626488604072354048310007018198727146712685927106279609062884760990173563216263373861751521994687464634756827420616734021037119599263874157055982861348607211821541304533558307644295335624880915996149704353286427003783679147413289740231816695425905816569526665241963195577469369255338515302357675741533420975342684413367042148612129820987747490350824598029831943441617612055301198626618065749538832616785341948983509704330595320597716993080663754488967701934981097255528225782742913855034756630109635714037601787043667210075939917085161865319467471543559453646495743458962788110043449358910724940880990808903202924399638446946805693566859567386285393707060495356220665646507998530508950197137407229715949092621335933091600541384695497870193421693727637420365149791435927761118179280923229129619893837333683016353581304373419156253296579501061514608919653066816084458881010059379342876791451051506170601245836698200322882171156042975353737787046897519877496941518992862997589511139255875983962698657867149126872584807523627931103760388180906754408475408925851891284181735226675825715592182122736738530148276770459085806212035896779944683803155757847647737783041309605170715381259369720211165374829915449326474994256232187368940148538241118848567170632344936538415838961893562824944471241580705327232665816364479711289175371909315975989722873395943633064115660073532965460196806956915670811738414413018634456753130308085771688829645628977603919551015782205988650606863361549719688916261063998395080865562025514073982370281496459173439290773308295096341534029761417324123589678892958349493558206952450015044666796253012519115410824854538243106451616645266181311231104428171737957881721857579068585668709496965042267296984303516951657480843502822246521654443732767042692382688585960919269526097230168739685902531777925099542106818315195001200061240370869457296191001514648643578245039761024029133560980552434684606542870373200307531685215966634900026596708019216959897336883023636905738385394597353199246886941385246588849892021834628141336459912877429440896345992022311141712729667004256078507573695052773323731382198018288736709761589596195553519514455720699922706864748159932035679745322179388037340193234986153527451536416456576087957309878987196189495393898688605354586534866491601668493065347311006469692292068661406854534833319587122375784857151654593297086343275375560868272922634690319081608091855129625962808610079533066588465664288434189017862195555709297060489603735499275093349084897700864740640665383942923815172946545160988365209920856241513577084939652616560034350029116573632680031475062464430116601970946836609319392203737628095538421062236386205768391401581540349857228694364393997671230365813443419685314087369545155079484702616492419744477947733684045674091240107152087088319130084963885197758973359765828873352179031968946141728886297036128604729123512909753963071841077725882884045109804175055030541284843542520808781457739227439387820430164281009612279273936309664312236113849792751172349424335601607991151340507223109622142189142933404318870912331720790879771909738371784835587210462432538077852723741220499869446078044805824018041239842586922783636062585623076460839378135827548037553787048765365747380876814912195808207861344593057119218167477440704442337038154080949855004378458487924002045418849606976328610723119059285067288937503464588906525492358201092796901717110068410556081782051599139679145968817638587102849747324697918795847043254508759848781569894508773284121392388796886396306257365593754690873465958172996751780792217093168419605809500892188318527048015643879000528077608493720505692324219793768980387945707128005592266881410399120774722680840259692561417686505844192867517661234070249068955705206918232434726974692293287778887964203408355484458237753006777506908306704278924914008094111442667039262973065981444194773808409437226576688036026095169956463468666688768351440150984206381093263495867216908474675631319121064777588867422262696547773321773139474402607718770979714118131148094184813084500296242467923032512668848241423788683365430612642994332817169562925991517567990763968307412822922863845779200824641952046890966872994581159902017080372486635457026728001272793177423271933566272273036606815470164452920516447471491629584326298949863371608752115128078990640551254479535904016368397363412174511023672298328581630467996287315640572301355729285392872673234398876290739020605186682679921663703183146893961871978792229810979863979736980549353954448356479787102267377932256783813831781340900326141624821152336577453631164462246287831136912148127019754061803471348165005608631765256034021487911134738863839446313347241949414212124975323287056051453463023902295991266731725525424065026181676422068620541612004323838614275078186681670566235975571684362596373785597779567418383585094227260442076389465155566825301231334869303856060530057391586483338287219364724465608285707079610411191554971985481668600477388833966886534079191415687044721484932093329134370772221139758150032888589781403747219624237069457796303195601909086734114045954024134455512482156063087624022553231892221029583370157356566508561055586229709681614542500194274257770828711465844826634736624137070482170680493125274557762279264302031890307761304153876597811489343104621221955599003662514708899214573268169393594018341952723190854140527574553448009618914096891170477648268195106056249370072365460917268658097859625387371599915881627011130139802061272641717675355738506191926878798941406178436859080959843011128875895462217084412983074369830966648964436590778062307037488166733949835525690642257940816042655329638115753548719521303618801213468761444619634377178658176224522018392254889419321762228141668789359951352129457427943832344158730544853684555125194783079434052085303025591728949311134991972632497352614091634616852605634435838919279790047537832787106525775041997079588942092891634739371508563618902348435496419990206192641153118248683723699218528206721199750146573634257246643924222237639272863532571694286818285431194937729246641957394654514080043320148564368238957391464785465234710293700479916216300531174497554204344075492147598779742065391631832826124755313682524538000459788219460293523324786407081385942360598208293082791770959236815309766225539548803730292554629281102218194917469364259894206262098977128447395387961067868078629032902009634613779752611497463624005157043312058962305795537771497241266499689181906926741417789408070889984097650473339512480470553744882820349061796536151694762163569650801177388469747950063249417622437018177423796724178620773188886782464682456655734664718502738706433949345168823846182341499900295080059983301408414028366473566102569907527104337687126096945866630245152028477897786003018672520424090399304491669727062901076968260657936612168517976184455158992511079273525157468465539051245428867023938345193415744594524027131638055800461232381561123975748120392622487935113995396546220602829212562728223271715223964919835335314953227685677780538596183691362840174907085819617859822362612707824266244955024476858685985381495210477208290904051466790677023080040601975468530321139204794901906500355581507881927228683979538464628052750539335002857524248481775575083696348077298152023431970131732835765561624751509358237581115006668842905269402207257957964090145897895290433069527516727407850884141530439367419210633974700870902553539654445886293559845991321813468579061777435133926416801934535746098525427150220397952389459405950408045273133874153142293132822222694158285928128638091948168302948978653297520803721177231083729773038264142129591866426951891505514089970750518483298718637155836172813276883394276895550984834947490420886131924622279335128281511191564848622887096598345275405065657577558193057191848336686246916989949948799652474996573806222334767147151722902130805945514731485094442662525899421341450983385671331169389775149673488074496643446166944934122441714891593566165139004730047934772733653412286491627735471158903132592447472930230806493513445909231790343795249409918839335528616486058278313328746760841094753608706862956798088714939627277732313956117242527895290830068288021095327312315481311622165661594533381029642937999777219834551691048297214932908486792170160367359595698783407132468486376752416022300565805834348364517060712224395610761490666849207725905248172370578146910857384001747948945127315098850664234280944199745912300832581822374596333690792476010737128470028389131073270934082684493003018739346632791787384209970169359746883607266082906570031979335831207764638395707759783398448752937595131525213365170096278278754045091330532209143100151455609367623602717233446243895049958357816925939063208226200835107630112740112890054002099725647398161344915049504685716239158635008574406616985081415329345475574850842050217332275993233872003896969742568619934877825409964692815050508070849174773244195065685914805434189678219387486579100039309675737141715968972786693712372627740628994670286760964624105261967410269227682108996229909057230023724238009285955716185208470850274070399738328366015667902374437273466010792510593816693902257880990838748793191493935048109868016709456746537059604631094972175138079949390699449142176622629873550776710027991775766821425764661553272063391248586534344919655749068166541860242886459472563268240550307394037683060928929135832264757940374657265669006702269638475028446717539143513598314077835978194213784416236588865686884992875359931035228165338819553448879851639784433397325803516087292185642748576984269083117190285318310621161127530294281275034658384986947030469052113857417164505881246529527121278493451960814858646674004368583621572561188607463390235843605853565871851105494962954369457212017767540517295426717910037480601974783867264703529020478895311677416625918588700031552082672141450285401013643814692056512639442115942035706967471169617860477031458402899859781016419737871111739526472735369238972204079822227329756711694487152197872289258200722551295323539274236156643063124801918618322980660567130788540526305959306347263196639675851610564563413292467475062473671389275046540313421586532831055225515723838326209426313257836441022348573140975268750001971854230997314570558017748500310030485877436961405844118562868543401635189855322664666810464984785925961625135427837651485665438791553675810787759902730528608990732256635264220797611040609716650911737449101387353516241365096907974182957726871732219959458793535927681376167441919222724168370282105624062223329548735277723297629554978372460979815949222607811828221480382315981834717216077877820282869884167979180428319600723333676510247619889682204021720293068850149737785006059527700291604266177660292720409849637749538653100048653995402484019104343163689236878614068506054969834536993318993337515363004677584614713094649013738969990818765470906816352323375878059033893146383020489016223051176225536876063147277586026971952850842581205474144616071010519738206493038576781264302553476164233259720868297391579686442576293807226062826782755219552822328943493832029404088484945981628486589639328627525000672890960378620669749464437937708020315251943535163103013902924584084790459237744207369807727170481991803041380740739156382888395789411405999585843339469900705407801642776005527500099490916700819340154818899293883224263552106198865604638672108126194451237378443404564426001937863993562472684589164172817791028562115770585918503618593661081331851555395852392387868565307581874204814526271500466534669830756768231578638304352341622608522776302293140371687521523120048053664965890872080564716671792750458290689666505234126064940352137986246185287911709933081830838583522409306783900967124722234172030039221905592992446979590462348311529055868436842118393070923103904277068273819376499943397394046641168242166186912406290464101999017714482694654678789500272088071582122829547227756939493344568312468571904218182593117089753055217376746573011687221964475557877970836880502252282495023203083059812601059751240178697220028390676743065578005060865668775554818278935861555758537952507223325731461256461329582630653083702828517238830475139239890001501751769192577480339514954695190084812731351191665467453149174964863512705261328572569871652569390670054684738763125763035614458612271142630274337704330401138162400324511677917805800022944335266456576759062217326971819349263178719956712062911693715164383689206620218779637357231813936293392329883318513121745566116940871885233512313555187434620159173316338148390968391759914196823267856313126762176827738068427852735961023582558970098474331524795957671885595394891845670876365572256778446210290300482699391168732525910469936157869854794740646760004211425802294288225382840476558461807091446966164320495244761344142210154104219891386595821969058251999965025738872446129367050625748307311590333215152351634413368915573513534518375379675550875104629800673699785634879024073684924122781097239055601633885118316671917223002617019298732973300855230357347800014122577612720499616258367359644533682832551645072612425085122021794511234210205237553682784679912175989711477919072722644214702660784297231443777844089295403315623401356945773286518304022366821598202223479934758974259121184128994596864063884324073338488783155690510357275551455346624989412029273329897206585650514053819803941783442204922592652093315896767796882435011461542572198913888870291719251637061238766386140727202081776174571892408744652213349753923914354776877051061950538824026479016521875000310554467811880981908589478962180964882445733851663549954106653165592939992324150874398001126495937916984351031563657417985025653856321812681256045185155950235666894545219178501740146091170046346924955537684587389777489144775113512596835305509582689212082363058224089372952792617624695656866772046827280372574078059866247293414509410552507068291555322568304144839958699071238473463026217386892658368572593477931524143893988495230579585216242640828894620011508013710763614854649915642046599838234357480718246132628842893146541973338546688905049227607942964985097996559036268458404478148585027004662038341664279862838033269459227322996315969832127035728359859427778301692119927206477112008074658685963486993007372975606387617570117708311712786092141227189277984094900792639478122106307640116574188425230325230394972639206950763110163185620377414873873797424210696118157088839891038115945393380945015212767495477875547950144525009248280657471387998576010358495517271695952899528244897433026517760685871311002290643048252172510576922818325450409251162852604302510442401139631253548704583106111792419498636168204769766693781474492836109470904869892685018132025185132267001742480388438229268577824262706110988442111481347800212396299953880511763863808753085637968790738004644051980298018634609150649809470434845677911018228465622797291206601339678767708049688746372284572207156621696438845039497380030267901749510612730959683558625815617129652556442958215375134261499326653465598059864771295355963886151956396566718098556658474224989180309810074389233092259794873175961576470532562349684112422641591865625835268279867241952430499050876137120239836408115603933076276152366860748096926375723875584305968546703876317855282678253047538485538562585159485905140012668844851471601943898871366836729319884421581528130196009695509887232453187872017446604219656321153071204024761876597594141611682080866841042190778360239507509301633050777378059961435342015767852413405112307435432918082416092253775768532290352639758642626169255733923711182359089518219536940014788318148621769203503848958143280550888885378121557367473999530109423906685561983527838194526261366120943441365741491417013816983297801503125630761672920343579797994991095317493957040099116423281105220781577036989491922900508210088945411506726924050029951504148218698676866707336756597842626616744780178438368230050284148891015452272864734792315576563505944792117408898445497053501394805818629071101085816240984109143426033776562261227818811609822200079041924995577420485653420061714386091889847108502133710282408995280757042678257689041101173204446962389469716993219244268235316415209036758060548886490316478363937402881751091613337956939392056868213052597703748589974077150494010562193635433661357376638352910923557287905157587548781054422655704427947891043108862839638431945355923760836829313397045420904204529633869324155202190769348665459823510253973185407402144413973804787829879328089400523895535092477981289435190261551286928213609224930742198551653258750008541747714175885906873170811369550316371593892778258860778759369331188487260119149201848273867979588003598878019033949865259211865003854026419270857732460661404655474828438458818676652707005569563171665358760649742276378705345706671142389477899217300762131283039980097486869341005140511882719485557198977846864857693754016726759536715097987961487593729866969248799651873094546793342734750278757124487923771190364693073292896936014295274633786929726072691838446391721443142301518615006911696713248066184438487336307872118107016111077113986760273848283131339013989792825564901836635354007529833580680714820592998260396388928329629681917523319563174442492593698715726276959476821671601276253584370850928194727369854268261441618063692334340978328976866075599890802942030539863347380914171166821539467852252532507356789198133859639495373526031199479545544483774287292588775510843984202255672211883967928492833973423134713190413342487012371036369880912569667924367510863348456477726817279017120504019280621963309409615447373430082344810420795873978661630720956574758543104246658046360886196620129838917486603208189226006645496259788708823833436862909704440365921048796246610680025426410532039892350020382474318215714203153091152791246761588324722608593649815311237280133757914524530354777165186041176488139578761073753365703997032609566292588461187110496919392231997935599666123614200473999507394441011922244854294565047844845789988562445421480365136623220555099256811316596258751264272661424908928982673108373074124743433033280752723682176959707880219165873768929661523132164772140107481423660705004460874132703789356686392422798677302360529821345093925625991574314351606571156930027358935220531012699258700638298090975181542694326089072583869014371262920637728722549963877032613291830533861408601791205928176592379616780750313362044990611593587992214068826827497260224377202757459647445958044482346855432172681316851907071890591671838615068099590380453840052832302632484200194065784761181022990435173393812482596152656266537239514977929626127937402498074812553298218396741833184721261602859754926427684010647158777500010674328313973340111759791642937149596870737915324148660250047355809362715272075884357613206903766709279655365782553693388057478269491753236867898724903204665971895212725759400248889377921570076841521990145762412099068579449474589838865442125038178070610315958110801477738290535444288118867745671646125467270727902742727997259871499080673818563626183384801808756118399119537819339516028920541786893488483760650896527741097311155861807859597416931883881642947181351274176094367617725506724924527588268761678443189776205106748005208882295229092860601328574377900022370687792787228447268176553197852814889709719232593241950072657950814373666887816065404408147895024443343354352900330860744266817139796449608465976491119414250221911421808551007241985656125943377176443336743618653840859441600290865156874582136821219099139049394069062844874206385293618265635291391442198096466945902697744858169726393070848566904894036541283179244457341461133766246724751586466733635924131535533107650509267689614519933772103953836997208261473785495264637167169141683136701105672621853148491330520859522582944392005123340864272041052143224069992589104711958148526042641113242918494730030181929340550458794204193250136650240301085292315650640813483128720835133200796962388509032872922571414666711720321871358226658421243480283354501119378759567740857766230871098858107126947765990482270954018108363391630882771487718107246921583362530602933201417650768525486100578237394184829839383563176499646909713617026268636629707694074694784757841219448753175578004964228563795390648826266999070991213705488762801244074983894022356534087265180929437485490589011398770632784315630699837625181269238595089549604277803868559193748883519971790831672732018165661806113432349707222780311359101719301113852158137133618019528203085362161823570429657884339390437037247252201706610242032797933984252665343927432280305747011999849533478504221836114686094579924984467391051417282048401657093130904862157125669744211222084045105695336464118749936879231471872871038350681775113264562487624184880193208443444753050603717919241143467765817532489351493097219385504179029739719623175531590900949810880410363127369209713356807464271746128781074239082919745254332242074345480247624151257324266122584648778810219502191320798901214009429974558090120722209099989607805540683398078612772612709661306484411669000235252919897313575121086129946848636003625783320258914197158055358727659143867129117167349826159872771511224492305116043106065047777310061883128335659884660717176039202623737240218283419141341764181426338421404117532959064017082556892771203787283916529883882521765337204171166186332931734422558656823522951258472573126780469175563501030860009068263472952326706153993485862408458862299026064886794935534234676339897416366936871934700015759642249350864933379574227643137072748374278422253858254306527177458965472893118451320622541612921426034911733305129484924938901459167746064084308746724516877166983975870113435465807096245676898900160606440543208485708344838876487438176080535972983793190463117752078539256803939449486509716569653929688586791097453991289623902728690847299551995113730066436373433333888064660392132267803219142045944552331480876270281016197576152943715002505326730278626561633295427160688158831964184536790520131440460280170822415773840593373293288407587469815172052561834661509245912608411601475916253658752208829212967983591226139902422567939541833058938961311153805111030901571690406499717612467691416816868087105384924869765285248152377537718867823427187159710317864825637920086821506427394855137020672723524420698864559523051556193115633363559456200321380784035116890852881741166258895684375408665276783582636851693174699037150140642201956226071426209769385947779102039794709705958656590093419828987224761806375170317004054206141163956558710180087078694031524856066695174939620704156536481038838466627009826640068360576746800685703848688400860632981997076290982453031936817340525153804104128337471337621848616047901004068923339579713420785459507121005612701975013911972562916290034900470922377134951809838237384784674703359374401431302206842885351079810755692703416816947395109898080032906604221800443688017042505381910583364415654037646457876554051962213744287535087859713764095038901506432627479074189829871627494983334057389466833859804898837164282983205084758510954413407366044668213605130138888846308426487162674140791868202249534068455992040958240206163116677760210212795458673624378520587313140768004735895827101945679197138148536009778387127214206102018857945417334101584074178324984185613244009585837887139822859550250622485914125312543014274465139735704484995598906314274220924240122584987850118736409593030256986622488103849139425312739217763392469316433592427929854491720971239581108047631888051133943455447141927601302931835656463099366608777392203540343129349852604992114052137843079351055286686867780454894209208481919343688077165328480275416117870336576798278314650929845144509178850889529664265566211240669100860827600660655299632371994506642932663534887255707874002443303627392732147159632523076898773981287253031847533501795048668168398781939238332466698887281545461349045274849410665679026789216308141049362605454555892768073151353030660959762518326249925343191896863825426086673424919900901619397326522390343659837882982242407966319487529148650248208839948346610301981137899151740535974147247929478494326526166214424935208067920516540283057821376668586539847870166265866476277219696492676020834023314116800655546690640448682722184120499263656315018003512129052311564159308590066419033977137941211456369605945311364431874710819067125061873217859764483193197295952851383035120819847771466269229160249393736237369053209947092722570713009732763662891227350099692109669818528351135056561903553779122877747592281317880618791173936466957684437033473562719515485430431564522950537428591640434812505677121605745764329771109026583739218447344159544711359371008503260247430195921019578116507158174864117490325648521183692454592829373401506251509228100097016383094009968388089961233556032924720028781989436365488785411165120517328432573578196652391106131704016079179396705812989631764473057843808045659289925953198060320695673973580243610327422635879311663577406281559071590760062037125692442376180883096170662430829971014951509418604404413985658010085838155662072494599263359556463716030836234521256026733443090942221792032676092372133721888354437239862961834217015185062383457279348695441034655549093883774742639055871060275498627548913895095129931734104666054412551689493568470494665462551463907405692126065143499174778724132038783338911346808683009687696417169624339145030419610473450007849343204143833576936196216018601389568647735822729614782737362339559228321040158933177449661870505164365908746906300088489831828415107820780544141049746293736213476270327708266703506998499497041070786545914989720124720396624133377207224253558659922653883256010932783163121173409524482495118532777794871508441892565243828508854915715103302271204281333055422204272424993861413821852346074284833550415393850533748651538163139202734277650996930527472975426670874198997176247654461783317949247158202027513931398113899763338534080036337703684174683436934396957027237261020487012816705518681954052326342965607932339394303679014409914441410074585169146392974521322654369080636784324818198174750400318585143411579310477076042967583611768987046041872314985830633970994348160640365386986902031827909343500405068567913112393774748191312355926222149598354748911603474122660191947294561013693703273615722634299925381834027207939916869092267590198445229200666616190266900938519911120218870996468221538959442330085668893625025266217816863397523291746368110761911309952414955055753578498016976136687982278725198210231604585241198814923741338302468156178408326802482661053838210704492088111477846917717770271828254969957988893804695771056198762621226345982694913269393446392908518462480713654820162298196826548218720253263709421218477731159501637053590864450914309206549259932366975189432223415613597654885238381541320856194703043278500884685476376712414176437868610689052190616660687157773234595385254005460670780933095318767986393670107098978649088512746884635554422462433095371433878057587445297479283576164749963785890864531761609822899163970802601003991359696414803049760928787961386629415042114105559445422216951897328846727986817370918988437321461181684827584043011876978569258719668940771520209301591653081221687510557656209008142870527893172062290498726593738588654173206516431249545273027522441207780126870978504045150696927179582445095767626518233517125524789139722861657240856546988135987347298471245983870526328563261803588669130080625802506659033305505533044733372802204849274731075061536779994992816971271891436090859230705192614411867793083537883650552096226636015610763338005914690106963515558534726401607335802047833551636622413994681572294337275732230850954397609116336552020444649845678137958582964536542508428260926035313283928242011849740973734561550731044048964817184461991417031281882511190279182494352627579977742299975060096746677567017493564318159587765017561936336019202653386532810022975395719095509358618204863923304500445263527069471896829491834020901814346515910584707346018893196669587607432368245261820966767747048130943164554218174391187136459058073739457564852495647981133716500647238217306620623076644826877210926206624094817509690808342807715616780829529060827084733614168046615717325649418719412071572878271069884767123985671494702403188966588850735768877793294638436790922255697940436983283824749322996308723160454851260311216133775638783910377255942385414655491808102149279248724990893395779783905340804127915224011561849056895616076069319274375639604554143264386304776194584728027481523877874787865115230945484838396722173631810215121637945568932807575127322840848382440917770476779831021262979084653980766809457543609014699661214682036172928897205803153099829982085475069185972109960082128977393326577962156897433303870849491433368962217066080161462547392308035630767458636947684501030054034904519224416902331136119048356452083461068801325597625575684755322161130729596772654010629203635907434089683826238034504908319994099356608116388933571400806696077279959342436351073684018150240058554324072848798772528841844985548513671947124260516079999914648906014086302225240483292582317700949524460582208022371261807285616494905089750875530521892564218855767343822835915288263601546805743813108786420514390603530763028595619773882195337717481655847561240557434465622853956377654188071811366260396002929794305057093822852008677004766519188180444155667860220651329430309019520554325269350824856548070354797281077575675332582021827249520974727889702802046801570232211386720762979562059308450657297753659305152382744135830245655159091763142835266268975760007180902862050150943751089601804631220799444929565213888941093113530226740872579354019723107551698916065224803191618828105139430194949403218096570112403005689226676368378187920587380918734571782804603349195939672610181975693656247382338864372484509796482491265598724792583971123508334881250584297352019724367120319934242422982842980523719693413019025710030832531397117799479876056164995610054471677692461969391089353634389942476941469011520915971458361203906515371515314320400258265776904693049117330054748371158757242806173948415477530804938116317251657333235287860539532029850828622738382887029960212930412588646514469327934732270969571142191624854103792708665657432711163212073813826243232161123711341147345906420579724160129366315010477477396347578544494153018591804842464293357396790707828443201831917324827098806878260116717898127760426964076364054759587703072579331404045695943960897575945747657112169024166613104714555321518281627616540928281929198239036737341077178143645172679090895603625042216114526220039032984997352092668593021959464548653810841836822415628233156217473856618038072263254693290480292132224036791805356284896532614910734889721065822133386080602646394345921806445972554290417249890230921877751551701391717377518667584870890800675251368997931137573050926948896059727842178386920663082142999808520485930247446713053853736347616431745657427757195794055953705354761395645474423008939439983880499685933583138090758351641067949838363962366618450232742036832298923093575225146229642120635170553893720426598522132982192362212118121121575522982772728152679177832490178376761788489281258711901489758518680012056873629295169230773757654869690908498923378044722388613952762111025564030192248261116706628629080412072276482555520621467501046684626495830904990445826453095595311222045483767326150339697561031087115018448964623958968640519479409576850524149191527728555561072036270900938219631303441096060545654011752217698061225947750920649441820101919396961487035788219545974041499938201196346954286168725743013210535462190148435757219055602650342632680953511342692850678286049691687343677596444988193472623391371086702287123689870877634728714315503744309245361305754545353502569139039065856929323100696953188452166569886046586363908284746950853698984167246395615474655130775946498005677382368746295560499394343222379102051198683020620958442172170417272174855222100849362255992964423174255312058802004311905621001276646780392013699492137412888057728979799456156022715250326075466339889977280320532380393047894549443830723702671617535875951455396863151428933255493908069253829922254174908813478898077755910803529806476571201886690898281852364949297329503141797382740122238440495248813819943347447743041598704049298429003299723628705302456491053218198843606922960311479649904489528704909179174495107075599348444279465945551388627164701478772880468915302027046989067818358134613105528596963652544646043606546616172037482090186904498982493620486139026974362498790768380471037271666495820595992018856656588586363307252668340099470145924902593707730654727571677387803772393310705746423730065746560413710356633502773254777005767660974676334622976528628245111051781708961403243915077701568769550096269578266247488997180042612692975675825318303441665239077451740865957547005341275698182089704422131665064692040382090876816767028123097837007623261101192255413407142877478909187782839651028600792272095508248472689877270558990470610944813125549002639019770463824080460256920540037117689918530551395018812614819013159493335191742019995313200624574210477072307876425034663221777907953176338834663660827762439402370382710737588073956536396180638605756337273332647936920925051131016142459907511270691193714506490375481549335707596855821760627078641327485768512269529460675743712494342097748567933918713110027699433194490328283138794401158724819726512317475807395943016806108845538891886047243794388767732576310700968809613271294268574262753012137896538109070962102015339679702668478401682538778561084654868721088489489570748279071551854510763501778658035437455496890257844056140347143767521358535045695779399465166108108498567984566812978478476615052846084130028511693843333604544099782750804525587585429496820872063927978372767845868762311111626160337154810113757193378181261033116859430623767109996970014748192615355644191590767210039981548993038865193759723440997743609301885528401552806808600812204281538031511727737939746169421649302253124364703305175496862663859418252530192075291885072385908542168181781961759886733015474501485083324508713158109333345475845073474802553393957455625828816938315398254093522378680115142513864019280106196070247282089845236324898940938308326279960642104249276923145771483579419451328861175697935589320998632211198330473629444013896746313595585396609923225057911110973555664561738631898239119050902859757256409763746420559263348068094452661853065489247612729233763788111706252834084674827614288190982489719553854607580339710405735851281885373003387795537722682269775763068410171049097219501445089085940315601520957687260895039650559151027467267320932447007733575251286722261365926045270649629848167993375953963393571562400978774289493428591311627519358666870068290948613076126045732865139987793671645933079188384923182175879444620034556255934955967580173294742855935751567939082383529765942612439905643423896547637621450062101220945638143263000248650933216370593261516345747530040718881386372623989030239188395642708658521250418492195061160940098710828718218403422973725171742551975943690982742328391648502829154870640899412439029450571397606870983491426937738577884515114237922516687392248701479016593010243403476847200687096901425060620721449669879248895281829262552286539077524915880079762459710320563514954628112041209798501703620926064892883578003099209063886629826756074171530928108163781207912268646258613899042705065268421246203689784810717759554003979840792989854767134431785982615835061820138419074639470768654539996059457488942566728986497028692416048582272433925048409782440439281538422683879670064895782729180007204233253841770625373062148771709380219017538860978452728368847401600397595362854245634990079169012504153759985771903761615295878337492452302715655391527484292196146929457469508633007737648136356591988000654953480330749322219581555799836657092793021351430720312729717804154320163838501918401035034011001406547889377836503783828800195743270508186072478914118044713912088975075558474743494437513105472930558191116704765112736219993908366034527796386644467618623623292621968531441932333941145246111954309117787494101720283258925759565074348014759216374306186088495812466261291571565034474583003520104868766421212867459314252438016574101128552222514292152036258328461627140536524075607131418604246513917203581890308545901791099629945046555357886235651893060490798879412626354193075825786212193963303655598719249469950459341057485949041831911125720514302120324790358812836510565249617484608226600482617440585515854448835709234417171614870153481933137248792937562252828525200370710542802411796431088522489918427905214576367160116490535053252783915741756893087953130927777722550459514698475761428003977640937129372358502075892852773972556915806705484373151003642248029478336591380430897114357465440312139267562932035433341537021760465683343525092921631118350579816552040236154335328364092776763682745856105858899905802381704626420401675305421929920555559855476125771467821129399152315514852294251668765311397016021432784728487679274409280379046711328612920326068487415064820411975781777251240107442927292677799025085486112687811153643088998695834681926340058553432453918243571991686481786948532429862676677253795420610111743229961337794349229993006674424751336318070602452094554949978385657704227226773471396170739197909961488068634310742415634206134140174696846161173138517865236325650757994587715062752763767278417596274529794417478431635294500167265938355036786075217948402138494362027944715859202743196458349568144826769326854326450198752833461650073918613153953712585952781552676239256076515022150816097683212903400881018104303703353788832051006084873198700504810315864963750933851329642059912208897167645705355897254558428956860672013026008039071916981817268188555320040399253723179074975909001526936053595274046514363831735947716217192878951698289538866540133366276738493697585645523462077484935654266614052116631635407046025491750174473229191854205227533919003264472878251409431801407921903844312860270607995162935744123700982574624940688601006385268024890362475757597442738781591407022307191165765544034873032970887225311554601858149712168563454180726251387378318130114644185340319741871216586229200488406480851595903257214018701392111355040475653387536217265843716646098031380320671470636879462017512526897863938132587936929597288105424238701256466998367682247905839488398681058775977561606818932437505580299790626337880742562314049508409032519252627627873270798908023381487652420223909453003774465745268604991696734869388633894571658320048330760416536634334567694759683271453817156293593495678220086950193992839437581189452753370423330001419390056446229322496406321700376303126617528754991836846014673301869131801225066577662300434259640824516683300895481509165377435518340733163240710837165382277377498892476184176967085503258397020115308111105386440365454551457223501587687676758972023257344644251943070761061890012461755988894717767219303067046927157688839722982035944816816338115034068852232644552109666158002298947308375977837386729201766417541877801114541306023526505096691946899781280342043800787648924001149131478674465853828343022576438594170528950198902226025966200568706386324180882094021156405823406389582000861945778466040572614322810696300014390460559682930517172656476999309956719785732006489260295622305788382144710054418156751021707715454833159799580148223322204665432778980600778606692615277666566448534282149196882860123659304180413096728610145773566957433455696318868911372397069377875133592439247894060166623866360881008810707536198686444647780599359650548884483024715973126043068023519141180214073561910044628741537448722162620403107380070325564113090767962999054171085306062666265811943958057510733425809787247347301183523111793087126943144564131587450121584494834231038317385541333184925984731906392660060167853334557028279827118444297951160254576444183673083231559517838970771800091851835287374975960367025036666247266201682643718350721004373960840349727503455275315907732274118414947588965333478853663902867216612735225347038484794205144658086903671029924860197811583534181346149819343980196751528888189444664576540365836780621603857998739556905607006850755920335932344351125572801199112728999995077532603990844232615804404590457152739681996507409169219418584358427198821871185594994755711975442388533232116035786307741695924475083931348860160708360975350879781489989285939612164797794126976169302715103896062052048994609743969715086987566949083772046931898421760631461238031037356705581391447507839318205024901523428486620711608604089391297644248404575381437821548946980581002140713440360923050447091674017840717745778888466716422699818234673551760187507690906300381503415531604291532014134960492402432828971363705697103185427112700420884819961589158705372306158669616127407961540392446559475224616720738538481832935984541560496492511616196863132230230672765596301893148699302827739124763859632413902546915090884824959375063129275819014740260642402728389815033942535025378003260828319119447933912580849453951232391517686991581903047574078734803614581135979098399345026971723266760258148106140524572781363190159017410070737120297296954597370351212673269302007029136005984964057520388993531774562815135499929616965220568300305251026023810381670579620498021792181534165320247623078529792824328771832537954212992404141068625574618314204492818245552148566620694480934385389674532515722369821263774264505568146035283394213312418196123242064109680129303524410544158747365161603172584089356405781703448016212346429514092493436780909082729082341757957755469800298089056363889122447797907167503138081237222237471595950999492899866888999005912577102525910002073733926608253619389578653992289098030649159764666718686965740611067686059924249755167845607456680190425263484051723115913018764019552583715783649084703985424960327665284346405875004506403268355601321338402194037480314292332234458201770631543730881853726961809768059567013591317638755679473587772555278309870361610792513546840542684554139010286244105996040951575272463719062402087059038011248535708681257420963966737958532766538469852895133355386635375771343744722296814030051639228104534250864579605186961747927295672461426882810783700011003698094485404724373139060524184460945202202334756819552576456494527726851823930572598547942296516994017524157193550607159858431599898130410605728635721175403463126804530391820137938917835244613216347367391555917637950222951341315186017225306609492654419465210169136795581986346731532683106270035279677435173518484915179390964839284553256643966984525454732145880511797889860196079918537185553523525765976749704608208352993709790989378059456904913781619638228699886257218247168188627172128951983863984510589785337263595334279703484239262076629803475166771160351001928453798218462646742002795365667058651056574863220246406512873025368071812912238045777300482221767595256036308022540565314999352961366765896653460024418962598566637522714025529694769038782704371000391254673492210261221444673500252241260630441397346806395257458825798700738361592511558774747624275103243882845898337975682661422755827876419347674404173757308564099983686628366065805038654610976593151225067010792143198475699384944182583758725659776663544558503038839665283921351947527408704606919199917868596178921841798462147790549119722834231507477600383813561580193171288899032450789302020408771069409621563240671952796615827448101123677719068780150771362835104247715350574156293452343010445153794247244524848605126949939601739160342272578923512725209986360401725141310637939709128785185274834493455549886357176754361259166081407541165230992523199601940705111842784117511618430299175109901564329921763439773259103347294408908981687804663068737403547101497333530910732333907702991206993786402121490287308141600557327612175614416912353588572639856260390328830250928178511251072596494102149642002288743340502364752001047004843257776998983549966228973380898460629228018713175902451329846246612281497004770557476013767779486135939099927164730213881389834424496396121063406205433555885515409938861143089582628705648283451411608478753186416895659372153927172794994079189051871378499007525129137535906491112252167317606462516103686264711957986235912950879207953744055632346254994897608271483809196723431188265844441592968043567839555116783405938551008404037069491867809125644289170217168688390442964704443665503904523241546494346666364573515175402703945785525892218996596229147976920230906349997836248465523633015680752007030079038284257776277413081243253128196452593384111840303994790347969589828853931035135870223972174946806780879333396742550073985098892559909810280904058503083419560904743236641939651709820919376996408656119732848428785045576224521735059827927474614399423070357084682264739897308548236401931309581221662091329559880051547108269201918303124594541778346058641933410155815965082709351659231174724915299734529044771300526069327926670767495201237850934162742190896827420689546927080740037530238493877689900919137078150607738387826112197591466521943735969642756306232804210504609460208799023974673991928180832777001177431333448505876921114546571234052756407655537401888425365175501524684687818320636801989545686204211536577208990355660320414728841502211026666843584277426679387550281905762583405288538096967964116021711176198440208572016714388681136015834160512059833910020314160363658062658952967770784038160959759842230290610030323207368301851349475407195050927157624334115120549290868680531605416553094522095334942122709196840105439052371676028156822232481826784420563430235941310790314794939469597895834014435540126543023371449871058216817269465000976594197944261062595288634983670799778808791285424686682883936123752121848075029907737823884274900421246824941683472710868674474831114387881910619110708959910047315752968042667581512949600190124111129914340524728808466183573419648501091520295277593329600685002743023902651655720973137065421653495612976101194120551763372858559383015925896797610652003001837547857752572543930274597420134716543423290699459659195968839933137320984108862539512716372413316269125400589876395125231499050596167279149466835070199265556259738769147993624764569851318091644267601898712641328256669796245576994858794654786015862979201795386762046609802477252334259400131363689196483716133779700824009488488246934710599270493880675921986042297503696801261334694632030516959373727968799262395292436291846358360911649211941888863825588402819528834537865947705284298646160857341850427472459577448601887768632754054496574302815849954232517479097525956742764933923984252439231966273283465914037555068048910708727889596141814801042694944683578946072703916833930735694010367421025934947862094854750052139870538874766945824355709039417141489091657145203583046518220384997444309971801622912951351482399281306014716002917001633542302590868064471235220609860104061029585970173161082275894438991583123463695294230895407743874151306821142937233497927034642394763347485346149506349159119011665771965829397787657657064317361405588154549977638477408342892810161713525149428484248282258315112820860630215997531645110756599624689776096021163752212350306501135537368494358338320251777001796688322835625923942596328912553270568318873978930995493409950298573666780387756151009717161848559198569206309788239693068217969587979528952376650846753603969988673910378156947128691492904765085922121050536262413004814030663893074835434472184227289166564691158440885824424452103100550023783358251584393662709011688144152097124621209700652510042393089794821576525478717766336761922146431417785544960182497907761531431151935701414721993128502484153445801510764998929851355972799133010447215942998082062684308788670893676256154869698751585577148510994978001925194228661373809724986564963375656287793563596787105533499671015595116688954738034947825901604869548556810664349671785754285726743435114515958528885021190741261123480402332905685445777226087391603961178454585396913653492595872823963123101933023477413260903168137267249204845882216230491601497092809351232145603561162375092706380652191559074015434957069557086383959001730381652749711267415950837105059531767936644696770114623487791677166199313998267869368075186085371223358400088661726633899101918449518247668408564135082587220467599864586036177161249868451042156319915908574432283020928113801631354909997086421828362193083982946052663249466493537380206590545362811094333539486580134221710564745157771687466754564295614400640514604892986926695510350166630601502555781109317752437270246987305458696572658592695317356806780327845893964885504081009012070891762804141172143006230908876313335725845387769485866048080850794454785764052592890920961823545242771197790997129681338223037550445131856540990211917334942836852099322114691493720572637829506048365835373720495838328120241608915903223187157217352095360917584301066788610578571995269091732431690837385043936888290210760159886555595897555911899181281847407294558389853023671888580480569819009433052632789554204889763655418726377720461082317744824234707748521734379765573509083894761719853926822667554474508288789034742060749050809071780350956870741020737121492162017908977244872936345461650740816850927396163433578779383632252835945040835671234651002391900365082802656335805541020787332402085363702044796853337359311290715951837112461925423202549422053016477324015368541740690130204982285811590057861529375701064493293504065877881671852257642841554898913473132388623430848379355442562808740791565036931264524382626307622380226543214356958428909452133439309607919535522122001566868049914053438017785523334400817314078774927846564351650144777745998129132714534965449745860887235165931961694314738103696239857127505465498559573287591397200025522558525475809398102108342842563080410289435479570405659910702991403756459351739204146699617432325610117075982782370454340750346578987913397361369686430457530091864714015719699400531881438199530314499458842150023887017574858883516008737262207730695342985571842109764691401526477585387042517428400323993225358703200943158204990145324924044532492802524204049264515025557525653645678198087529469264689686869489258813165675344491337851595185235699566279230726178126723144466660195266519498178259425921295408932727436608740324124758930877157782564893968517353099799982491384014860010146289817973088215018662161621008525523553328567225860961709024563233587391563653192808895129344883224928225089501846917460637873278784992234727415908937505783376393887632733213069020764406428719634733584612619398304475851190939856200910296823496008823999592373891950458010842309129265751704558864772254210132944630109793038468206874194637109338920473850823972908129666296716455538911766492152765506221773597007607485864447092880803595909965212597713313458128286830348827162498784767378962865777691895910003120714721018326827618346873606658814347383439088630922327748344316770221551116525075161910160265068634871200829270005868209110311669447126340381610694989531681016272089752955544832934828766080406565931630269901372523030511718567913136919432876346340329057210118454366196030284462002373791907394857033607389840578665056733577084148418358838122990301025430760404678648360213399119378416692552820042779465376209885691156172136978705548282714435865877544569076953551817721721754594026152389017260172505752917545335155940291207650574023454329286355496290654616491635725992266372499722663341804978090367978069678884250862140225216822773824080242457165239073693480949179883818937094633133836544578905631296577558489937342142221481581790229309195752064913245511811930695586645926179477977685100294227287778914387800136807578796263007784202147134795968670590585186955075204226478177068206012739956318090619490511855964780229286186398243050283380092750191758016716881556826681010477357814984956863708640983470712071551708808291646744347148700673062620045855836718190864475554114649406704260701513743036401445579684641983633505898079550345432369291689351770765337661910211797073421956095215727133333374618644592960194166090886315447605520767513700406338068502364066599950009510126480007439244093900368898716193243938440255455345972550631273195656711471519917111312987938247693670365379689290418006142141237406528839321516915671283134202625417609980716707797027187674367279797387540544920106743914201372953812601737518983931118348103497360883241646669304275699182873697345460577306848065448189172534333341699959803182678079544717519558660239867923156579903047877888093487099301659735520597845426814142075353317413454360627579029357097440042187890952073568624026875814551094741903643079093597310488718129094124503616849917770581607466712772372261215479630577768498075816102217066598000674801443567122731819973678139944061670239949235526581232737994121061356888799822846810852652519790590398837677256475802813452436794473334239589217586251437048440609407395684080674486069708612093545504533220781812488294364064761242515771229008664080079505665027396948731911439517257580401158432802231481607836598881524323883050778269060834756657411569425165281266776658782519489136498441912214624660412964578023457136122617795821576354591684995329901744012218148868425113611883983883321596249395393482832789585115699060826387402607802840191497076538483133976907435038483049616128493864496572432763332513272391612095715069441173463263595120393432646248149675227432045884961215974857984173856822811644422990251464176250618138401090166828539520746087514831992217256705747671904721047185236524158479713965420053484342142363475196791735768744695675778460523061198171146471014630467285552782521325807504313060055738199352209238957888110800336488670118871120419174598975740710141792136933473958645478771215284225942659188220560436885021113370903370909798431019048372809286903649674488810147984476169034507796016807200877991586063706376138041165906015935483772601592435166814179446335486927657077606140067232938601360331349007599014047632934550542426333823789726450573978021764489300039884517628249490712944477831129955403448435634905247594167664775385893007443224700931955093492053675737798365260356130857612707443603007553049281345775312330243014870031829935394353601861817393422234416152196831916637343677666598229153981490933398307632225686055457869324616101897318207610445314160592320587656061955858502902121917707199509532067694876387575681630567901310904745748033215393492141867256819182102192432726426343439986507840749902403934081737216657142972972848478115589067261972831194837477805535810573125544725858919669483056746845157862023410592948374472145200381928516097120190301704766594196218691744898807674191105382120476565294171856499339426119570396938186954947468452376537734464563353426364844549314340758494135927706744435686938112828295731526183063316909399560218339317682830339378161067236191674230178265239648936902838759079337133581180673262722261979845506081690302355927505051519514568020575037888056894779770595687850452347174821685773602805698599873137206466932808644035372757525525806978591023076242795484040519263959646068682802724191037185853652660704055107218114984069271911320654483862174929456246316469720413831933432214534421480712079552646159803723427058154671457488182368784760425011279057690137255581632359157415689943213964105447514140195808886815093552802391174111529075648602202129458770172795647954841278522123570802292000237301129448573015708268062039874124401995664117866785947887642989523857012118164495835756992794809803882482851007188023024819176567370960097503953568364177120925689053159454046458131076745465390997337409243421157368489122274735132801962421669681130841787523675861134507245782702033129815101526917457622755651009681438239078378431787023138676018164914582381505733181726546644232467107483947578454805345139702872939370896059317246117214747432086035269719367879070969293828103464251082692873654174584634502341874953433565185925103096934311672796476598703842290438641160494487248668707082978146854635114760103120694383010791724555032590212778611426480802879538088107627135703551354016427021623067307414174642264986677564187133288386162827025537008101893919282671689036968445055121090598941375844252978242880712893577957456359443141754346772744908413292469237853827461486408088388702530213064175372923637764316083686899740984153732688404047515850605256377289601511000567269986797584581454384794784161503785592251623391419268870118349222924458816465135018475179699909426743448730185308450790978446043410752458582714109165253376555884123139534310361839234372537380528543460433518242978621438764523071005492204342433326237747113972225208818135674819650311064221698856203411996540943126290961403600234726793626618002715090640211905637791736944064183028630518789064790582857059927385793581862658220491373433985903355067876955669447561151230748941871277166005002270690807348484637127279313496271131968735895259243630992080281575947797578701409390535576053192404084139705371544884467850053663934936630941627349655376332311860622869834494243151287039376262168120985841040886084761252923752941545380306082308376979287460785927234682626874861316062687221937631285176498062306662424196913665282262822137181050769158133728464089151480152908457003077158162629456196984548522014876412501273613787864574778063747803731046168357626379426723467844018814076412742341601435070998233548621445044660323983044717183134421303773250181713910609715764408138886243795332556833521575698300683991238683684147857007889988557365443207160901433199927276607752879239920612424255115524229096382122323415052695252698397484775765559559531228187521930845750305460312592949466188843762904546296476941126684319233393154402711771328846155099483340885012034217287576606850636143318577198113273337480314981466317657042548041201554266331500685309331051948859401656858279746574510104475542329256791386724599432303170850035469247792877912207118977096464509530785223732190172987977931244218548912108987596462476027555832784696588422827550189455508425943028922213601744000389601598210455178377933511549151513967227020994649274263605720012671729385574807293001953414578595957749243830211836447973689395960805350874368849515152026606694114046390285619583724760928466228408996607881060135573921472712016616102887208003797092374984749010647043001481665665409946580623124412701816210290583928773636181185700036688988681756766623725310844801576400479581977743031807034785624451482705976489678796060424324106856473204576744463938366839018308366615864732426662134982135595533584348038962866623369148148804486983498082826834533954654072336419563633708634852736041893316825094907424857257887045767099266721289586989065795614951519145717704134296435248075012313545533802950239905306434712459246523797928216126108922902166592504284783615771989487839632572679936231612644237088701097917119963285415794479012503927671557848849684822870760079206732939749043752154861688159717397748392934489054884407242504940609212779235090794327878386520737059791661723683603024083024603821489346030936028395312213995614934507196360130940802028216773755886081071479394330636038605782187989550520981271818262736919520008552709643742092761217175021605652182977841998801746267256176619402260380836203457745654969140540820620511935222523088969284563979178369927740515980531559470075286287408484162230918383793250253444263891152331074956708492764721228862316207698721995514217841524506626628072412191800524104268000391817202558694355175148260064130165427174388510724691926696604586540207546335483624224096618552259896375315119008295292733837958301082042643599286314679619405795972061249391778253413634275568705092629914989845747002106039499804614263910798071901169859896070397272260552575489916966673095574113497316895077674741814723015904778821958695812240584466651330279561451050992755834151367687782231314734991669654856108029275405493111688215386291458201638472962120358396323412351689800787468213198824908852553771080851280075597357871382243054227043467762341001482280297729543021987569829810740063497217282052739433037207385651394045027714134484642381882895501628142818205373752216173874597851737412858418580740510458159392213547139633811856300331862001019518351026602301836976351096070395046920794839537688710147252337723378940628735850588201862801855848743988575633464013571699295207080318396603627548383782202166717077197030424993105173471062713383219235793639627705891380115738811813136671565168418573435003324470333148572528927749684143199247468967347312894893863364722007821177162435900797001918520191160382211067908573680218173533118238920606700385896068762792267085046888351140141066657992321663072171927877647292742202197356553151275707662864207097377605945227146616157486814103246298539008375465024591662118798718194293705865915116566848050704014661172686909061208003570024029121021344741361395604538486078486393720281308188181577880089671166859017863366223642030693007253135665835907015216172219031162248921875661692903284279705455885833686300832367312466400499663055354806549684902516874725296393604726651765066870656377246555925526649968305517586993111647785406736496571652527174462472336952856437923349639118134246884077188074217620428719584545829490429577494781090501204201282067169230299944236463195461817929116811183643962959757246958063498746172152556843675507975996889182369099941400190646211089920446211794187295272903519109159383860856185632211805410136671640469282613475421073831275234759831413211941246793795297602483558952429627901260985076068934226275747088835040370809756527152619885321099208847641249733511738987115953523410692711265797523256410579493187585709740059904069383877065451202384540628193212503375729556975205642860545119195525513915517184451133231447660772477367434908242053461025854510287258089876772721511483060468102654013020350026920839241684717133420784173949235946906053288406589088442423738952526539501051203912376102357237577637424316692156949426343171052547883888673523752515558500482374975556801521108612570879191259664877153551739722575716595011181321749912834048997180345461150560545679129191826235671530426199086764014865933985962315404931103082521588641306238505603315399524233481785067857976986809426681028620863726309610846918535223108272824448952810356716268277231111062358608140756959115646026025399087047012904422736807188600324204448492624603014503020344289687797350140249755384526102548853872935886601924336463872558237305471641917504342241523598769886460460093132827936666549761146440507303146296709963227867273818995143796821575568994283052539854334704350469948329734259519264835568536586498093387962832490916800006084556165390213753830702125917193464384953989108857062696553517803904279072542019586963320335326880763474516235537332564871891617988007128266131520006107490956202520607907458897654034741506490262220018301024256258602464184772311771829009660951382945680929094964159257271254491763402079550068678948998924970890214392988229466845544763917676442569875614431271980618887429457827387119926148754402458703753590410407831042208206081153941307136210292252405209268171958593004118740267001206189840995045683374093199366437116060178020814638798950817187712853271680052799565991423187296690308780502512354825365583334680079659289263064433747665742833648345767952610680810788776107094664543312092927977267282663916575672016165861935875852059704695603841287164525511064473763490451739743681569203962305086938586198614423773512490981942673835663632745990993035351797953972132648265406111703454205786170058276820794404729694348031171799512766845363984898308968828664826344556355820402159513223473809797878063770745927421690930773295287715877443461576213160258900270618694510276272033528175048799746800791575395316380296133772446776003430944473663994686150481922636314223977191418503144715129886677845296752344385672393233467966660809755986755893129332305430862561549370480438295620957670285295194330769142188205344559943354541523949597456135580463725962475928465741222699065777497705783450343485812060390500430046590266674541282681153407109038647219638017070709672148534115197367251995915234546911467694525238282990925792912528892163943632722367685627588204923176096663044233866413520907845081164118574113795589887052971031612452271826131460738219946434186072709778218473364325768590328701599989551394634578615055321408675079422054693853888299446452474673736848661083600569424768840407806796886817083656817979286896495239745682235153574498288508159444081308893585160128003519795781432890194860213197739280985879375196524073537503944738758523717265249811856333345847322248358508001157468968486173412513665652639125845519991382015940861611860362130977730014046296415383052395241592961811652038999488963793778226410768401171738751908322047963738313097991536366850012959849816484653777654061707344448568983441818775673813442726945423724974520683487575578611877633805786684032639729564815767196973635152436581533218750472894895224127855893134988935263473437157926104593045456003294092069091154167029705967710780978386311886481029830000937083768400593554310171646975143570030769046719976252550089617823592515641215262074525280210400227095292014666704293270551941021823719969477298564593867673971382692561666840687764834731740231936191927295460125404647622696975268131960637599793382342767992864740496876586753988709559338277214153484139220706457511733934371132933995529979694365755997014278835963539105532992619803479383039908033249062191652768883490924924598481000256745746498805369664835726682908573043493949195535967629599952467918254551205708034147600496183809391673446545615257388863797543900372297056952728634315995860379364982693430102502033831710484419444709470756281252339659982565305625499218489848861769493250163544165769689919792033374727962847373088655542084031471331299690634692633774436185936780116897343445165440595009341115275318217022660709327768089342540708776311933274317810561509661113081471335092155906414691684359770216445062213162722318181940304267588965166397868538119645647651435737321907784637216023038174036869066017207845984743367255776696424388511268289789814197779346387494199230130723057609425725133981200808070864920381577965007067721160571475338757782589606975196049019847538314712728045012667635592297534633075870168020764409365229474902982351274726503817747584102551646296568555925582941267364067345507441901516335851629416754286267504115337575855398417560185727768636576514894110068399169078212943211377302659700314411866601613975543205782563555927373014499702675364617162448134029623980977194675653937327718111453748122420329488780534182041985946923536453298450979023314875050319053968481928571922568823064390305666610751809518321179918616623005435103843195827486761783173024791731596233184521717409402514678284578791741435167942754333323071986170967869331640127530558567889817476454898092332563234718064585238215319548025357015725675385318871429267504726758438190111072051131582210291227917781599994945116315233830395828389990225182026159265658277466916210253055015433401529344946803998518304590377743008408911501831879509658615228441278148087764592412406154121058273096599800190757327289165571196839568168117663828654871137092320883454520892999440730331174367972583930137714544759680729426218751276930363534336115275957679921091618627614092659049541779214434981314518495754049652476839065949297011152985342204801975842458084821458845109996303905447969996035427106768771724164947865466776472974715661436462408886890286366614317543907689705369242857457257399571573127407618475058388828574882092676812023236923422220963885294116005335861009328787570802143325047095775106967056350500443542659717577800456589396890412673794276991866131140634204842907267146022194920461200872852327941143874576990298636590041781614776462138099884664011073696494099556809707251232310355843262340025665542706542734396022719626170365168429163961549644091694214318469719606431701668105144337430888063085493407788267880872369541191210293408422142267055075347923904382117273232288970530362178118356762350108521713715328154539483836476413823441471424114877419988058333078983671361967612223643100369354852545850903543875341721507641443148146250925690570944943482662495031305809021188492802028164927397186144254589349776386505726355734079234307551026250205237735904254081102622488147883950764708943418636221489868755874667811219052307090852003615145151217097498122244670438650111759493476736706408987608575516684355000377161107904025409037210555419482736190577552495498482325496036264977307269167495158771740340841786057577661310097283939993207937563957806676768426812356520215896685729656583834306433717596128323158886059123257977435727766040883266912316322576472663290062281171905125497737590475290756276857391566724712050832420919884600669333464129992887710897709992870960539281130731462192021894041953828804593783269676654869249503123049888383788993786980637432150117359616350859787009117095250580974352120357454754973855846177488100395525912681437277685413810547541502315432763937272623372976344287578729561716166874221975674320770369705687057186478526595189024848944914247001954024652974427183130386591892655634892342677513479156713537328580020877617566647199022243232133713534307845689075469353878077366850359291624750108541447554176029378243018830664660456447012349679463123764031020151023823770732546568510112269970974978899673778006992680510362025516242618570591891697247351512422172369624204262318981029699174017328333392904180948375463491947956550522834709430693972660160690251411153594206752758734366723508615891703994275646098991214856824963490870583509265130743480006759940138895949564749046977119594891376155781243008417556223157008953128278523314509991268586613029041097977416379795179025915449465109737746484345580525798833751238750444648920412174670449804842485267427649085461296632644616034410464562368097055327522903769587859707482827609858373654177562847965077588532148941380766065183784301885323145185724716405816846214268607805682917989486454119387390647781455553496788506677456378962783909087391634938294191807680711530495298490946828162265463024590013703089089022902887885433666280663865036931898947867565125544618562828425887430921949318973267643617314059678344524148042529284256429390796261311265004060247845822801908121204426331586291225583910073112275531618528920761764131027088648688576624489912021026920762391379900553299113270076294976986317791933262072852164570556675621023639976448203475296499529173393649553354095281137828312113383312157492170033859028076466392016493761515963310071797219558225284686903143234018206639352345401107865602637388689005211308594636843009226938766230625077234704645984072797362091811444934245385631118242977280252394476845992217576577710784717600753010614107342160229129952180472626260891693513953178913144180532084730535192800793615481069005447104821691454325312666808294927472076350943570264448797792923479021672096519951297830900755807317936093904581156329730341428637677537440558045386633388274470558676394617282772639104780791966030594236431836317732425759095061640189916492352012799638627943264466686423611988116964280070120864252808853197189256722449550512705128984002136318337445313489505512410205477710824174068028238077848309502717556363368465951131940120370617157629431237243077166002279435943749136673172248018551798823929513914241021050605126235630655290346223717503936244529040338225278138202783373861540855947245649142664203690954687568492093733023507852300931944144436540910854121069454456832980631025969210081009515729078998012348983091410891771209973607400084331768683911705905279895152000996364152866104580726429378056062846909578162500092238196606153846301564348676530956407465856010192628010579622247869435890862095180137520537208973896780318206649305411075872337462508132033987012079867716579558537301407992367694032728844606183921947332044847781721392220505104844504991421042655487373388821290578206941230575873230763756083549134340096985424599436346385095077660479769879733644095113908789564899732941543313698127117850327890841315494585803616039025689757672726872292600514006849145566856840546022989590404766005854291156848966318560015586719180434192594081933367979703386036705547439788692070504170021455393697327712486362035239686155042253999018003960324503679086542381409317088173803302246584319421387336985611835663560304422518444674329695372198798248025116873438012192908879760938218375671949959429730807789981115535621969960134442836116863384643276594393474147848980674554565297573470005294917590092201144550869768427567238638113075996883440729231859982499517099198440703192367182021132059008384396588519420268229942651604415960380938164798940283869728940485118219357600536842870955522008787706497641091627846095730390647056852392198400562472702604539189513547349600665868953843558653512942027359513108902339092304863201238690462195357641368611501772747703026431173891502901300624581954790306674468950661590589766703300794481674744779516550667564129568508594706442546063467451474120058317455983018211836380042445090541265038969661878947438718113136050963898976663437375669792127754170918364478265996612948269635946236908847055277369328860767787212796853283497993592190617151142042419232462238073907303417831416997043664937548295052256312667211719021036417980823019707474561368103127630806572393677431870856413787939835345246330097723425628622873289056941627119568569462356177796532656103912764616088860450427060633330474276376988811550346025078986459609695333845712053278029747324464855745401410742637474971085578514214274762516445942861113962195871583568156086598909172578903683050694741149955581364562155993600785291238603725472549657886492362752315061021888153744023333737555118028934610567136245955181216408001083609943924215158965333525901827892181862323575327121064040739601488465252845084272353263928673208207674718047589780793690961995806969310888595356228357205147252916855428648243370172626443553578686957079467167948910969871598754639147744509057012275721641981222498716779614344061264051707819375680393789616871498693253854072393176724292593166526284512363138414824210653078806445933438346504382986661470541072514208433413108439058295616114774680209062741743031272586084186199389734062867190485538214643795182142637793159945766379843853062018990548689895448853569929131761920563393499491014690320403760063869708471656440034086442070356504742370291080666011571229184243256109457771311033979297663244659571642143428224704304158209423413869600641617941676164724975415303975072941291250830950092164091274017994116105868979006740172843402139539640287751994519340437069426134053355757115408329262777076248089630056019218101262344437214214728638503015082112486947925949915850610014425297253111871258426698087050833037586650981779871601142091049212040050658838246817998879287622447121012325727710290981705406077778836885279668090942033970404305026854191688943055155475285888632048396613013166295965228418766450536295728840960841511284146289258197598935174164235674766543384899865439858355069654578849936291196905151092708485423540303124871407046557908588226185416647672346758438570607130249423090433051173133700859077788277416562240232055317558843371252162452680988860428092882110472553086271073418943031039809290269726966032924510188822114886680175687881516589438070137167304570251009583394535820420306692908334043685787408341930033919221219197402601553288445256213070547410281092427413920815844479600845266024614487373884817190830610792449590627465390329983798023449563022772942989439276916977854165419021475478955943303113831466757914774422301717809976692724416450625643116742669089651314756651273981060794365373515147710791313075619028723132094037982558931741004256074450284333890263930502759472616584145303928614191468101524925279839240215435008828045047509895986211648832601958710583174019957479786275106929111534647827939477702996979249474673235604537531888244683650464782912509672707306377212418530326283570703514044901793210802387521022386120021326577068610546418396426161892480023474115783150111668170879223551401848096286515939525815344758655787783191383689447556912985108561106507139979889300902019886177708851721325234507955897373110736030083611963016235949683259134049910747528809702296491155689478573890668644389647019328418331869908770190980594879553968034847089429573453688042423709711756284613816329293850220423213234364444991162648988409245577432381936136585866892471365481273113537946956816571276266408001807150404546598572195575504029510599856441417528888069741439750686319227571172963648021668943362851779045406020293670110716025446552532168516187500405326794011773962764122243624403984362201368161304538148359562328531856215991114803958882777110875210745643441841775558798695629194414629485745289849756985247497073520885800997308544794550594099268955304356257622332230879287450768805292599003025970652941957889150995988953881817957594761394113938607622401936844021468971913827755314693951605971708649957533715805142609313329911531589163244559113569741984128080403693524500797758586613175367205028567415145582288528147404261435446469162005294873324825419168085168477763725221965112196320858672782141300610298600988662869763177781636914802423423234605995468502916778149207040794756479755328360851204564623074133075862344851497329551383918262635582748669326331847315015244332837704219283371326544107109608040989328116311215058733423924389228718981201694526326178056940226302360250369224773957268518548084113384563767449633966296903268754386114056352966784008967450303825459706064022624665953930491093633657148052560342400753223961734226396061841303172830006670175975951083507282172725571745792337138387628469981111564913549349330104474937697302580631034486778107159486537203244432964228607304490413216049249795556473342774683257894759930461352437375437162029246989972773082918450243693207787833848577893611399436240932128645981986855319847105907272696580973814879048796678946898990334015088394990958865588934708407361117734008039763090337628662996803520063034252804271572343452546858716885271932941869777480315341888384245296420878463473951150238306767780686790530350479077258668224671211739669475633603433235488645837467133359760986958547993521280256271944360787665717153329503484278984282863004972517870844571758806461155895250139436702778513297652332125063465341179365908544614087584070724955454961762613471238731676385876770701423996703106789131782326967653559688023873442835966167643367601691144597726763428579821419952463131065480658633330799335304047885219261217726740378120160863179820294048858102951068968893679701634660300465913085440024975731905998283444787873356644462575650484009332523892067726067909646327622714774055294992589543489028045698835710396279790569155397274532552329343517965929728580223581130612864282388381659809944357323207587569408112468163918662420307944234508945148838569021704617492728089003212955347485303755635079299925166600781140077409440783919289743931912054392684428579706124183372894028479279986319890796010813295972638782475571687000835356733857991986047275275550667265855849619033089312317608070627480969215137149302664231627130072924100316886108203586960784607593312758322960729832377989538335115781885349719935352398695151984356441523227914817537773514541009758184353968793058135226984866508906684259950203432166947543153461551972174300034316998640151880855893318698082869302031422426699927003026699394444606664504872883580910479497637612311863939991887557643145722989656494224375709063485344022824766709318303838218832347669998619353263555831908833569652830397376561106729729701108598842067631037491322100577117799456414058965178880518550230366632866963732679663666122451625235699215285057852430406690701811009020941996773957927583476154074263793938852291275507147614261885187739261606331245194380145864279134285325369989581334055815906805367737160369934780066603702300935318280742019808406700200227203830038217432595464250366443712390534436855566164703122145549416213536178222013124155122154328699751758191901535343805228905120844411322905525879982674213140494788314731405472019078684503671527605958760687263926901766203483861010045199001631675583359507771405725637492255599730628939478543329008350769218357125009407953757686284746369226601271137734799078600002775080928172674024670744135348293890357351535223933141584093636310244638595668041281524756337119327937878225276830643690237147816548648241899124916148774319797892803249381751880622841635231390688119013673637295802155107760195695989622921870261624070812841181693395490773855138852946050940055988424162174702572396375388223338587156665820011874955808796329868469304448920648337697024748497988834628684516139938982589152853282684742626949370108441007093951093514996553589421017547657393467747108226431070044493664934277008630135526268165092613875964337597258149470165875964559995081511486823583866554302332221865262798178808460339311419312435051096458394758546068766604759618061209127343690910250449513249624191851767820156312642642007583312891478158326431410360013257793166232600965075356775599280488702952168110554049518193285183767495563353520790507777268467344753570535149632041299532576056598994343986648308251161844160175179082300125733972779021787746091982638877064806259998142287283215067437064738282708390909455288203954842719332303233275776565650435400098925371221984512607208872215657166762640613782255869067622210310536467622733917212147405203319810581364675969688589641527763213081889302991945809610781066742032136567927932851198162319278220378522270856306654107577953113158722091494813776841760213599104281629570965986670369084779383104565733208777028862545701311908878674547261797260205884567265150829707618020274420250016280884583418124881645937897330695937709988485697995027540563249377520923784718176010697988751232805516849139977484921726763865251475375423025116487096937454927630480446998058418220554674172481118889919603783435965792316807203589379284591198473156034300876482725497328427605442846773228112931572978917922374289394315093941019970095585838971603886066736091340591385371753260390413736305622514051907968081179970105505432678262658857372050206682254612949415959675019750299665498219093929508786705754030548932532705521339650776240483665620804479484428793499428300663187763408554714375521199611646200084402367632453310316038411851883627907354258463331540875497225248523149317532079278486635756177288991169099062748637974418843368192517106348568266551679728747814056618239916530180791316034145957558121254391618878731892871566396758209290365299297442488764449688837243606757415609453331114368607661403101378579345596441288808085538389885583414467947072515564763278282776937114634172818143625563458382144970745473131950739360522145603238919882169708833105478219760662114889845343664534358231236075548445775780164229585735520935318529149662686876663394323196816524535530974808023007235188381266362101857711917513062630220443549937227845527778713344417630129980357794082261198191980534464013731779273920897298899223668948980780929434941792304794771092039141540578613832070982896464171651171796788034699243844456566026088592688338749526946172579384114109301702599845984279682143885084676124349097523155868912760923894400611934918150545069215436680588125082419303610280626324352281521323063703769885151211591482661545059604937849031010088005743309336871137229290872937566477766716727171922866600472457329855439407378943766583078671506701758358239123210792829367374223152682874639359732691712170978383111172676447374980357850339339832159821364436758936264314765690564963236168064007590888024282134621641441467586453456028450135209792642681406826193633612516267103354270268286344663267827329918278009630208141155198573560512707536551198031329467646502128533659407814586173396166032780710821854367041869651205624313065727604802578529479690275116506665395640890588672623979798421759192903452936202351388852604645780197554123093808653256452765264901784236750029756191708369249876112707823224761963226861950713133628540259666772611362620088643488021904652599324279713006105832215481905938358359716127774722440955484071509261215076306812516853880749114042470561567866484493718783310046809575501756112412522218204566887385123315504606614779729838157314022843787236868996303661097935239058461234823613192862598140946572880863741402597799272696120780316019017226357942892767655653776364873487530647305799539684829042143708008794926954984166746717380862421710933244927899037566543787284847065837019379803913869759684926468024470414230678137172785191918255352178792437977913602839225006421698723972802850937317053155126087968441753515727424976504598940967337989684952443021936102610220280521237083642977840907060398232272098257009221916681679021335913546401988995476430353462120551950579233138518453801775208590258259018161895341342738283742236401942131596623056895251966042865978137794058093435412807377262471318398030836052380985559102103756686679177884479103265341067468355638520686446361706861502918257016817833267231993621165321153706040600765423094368989904771852288892502027612886307015779759968723452603268440255110687323463174142197032883167512022247828567402463424234826840516764863265482503126014731468433008977837492102673306619830119007195241968686868657844431473123833446865505452870246918511023345246340961892991171423017568985654546466911568953764819643074669296089199885396464570690679502213682819922968191664081763385858260720589372434419024240037616786731656861791759841381738849120191898108416363855630812089803133641841539236829591695391159351109320026548598310559870174665621325378501109294312758556488891464212925701077906302752031100411779707116530880659124956772765153397198033266614055973645343915505428920183401255962006225858533358117321748246122737821792414843696168123629644176817134746532935003522109342507376290687446767184247348247032589822743666911290773512323926460036382296669103384239734629550178201140285616148136141821337492775618209076808629917879140899311028424916070284932797749204316723899492477015603707939373447433326179002630856277749006220423370549259790604556945862704831112870517356771412574292896761950646591285641330774120217246347432416935298652596894649759403988228168346427040312982989812335686860153900507406545636788431364343551060109263448755656219569001586436444087283784644733188758456898565205798489277620791654549328532545301170331020930990008349369201549072152572504402640076708726470123412345028508094417052057137703430123308479017961968197297983969214800795876519634631616428808094449990400341290753201583893720382656519162870709161059774450968414512055596091706733743901326032373821712000892461194469930550509480602644538759598354762636648634962022545462160546077208526131275936125564926191661744972635182317181486456974792017937675322330222810298340996915267212732299429247697918473623080622192776027874586877885749694545172622118215169712702620547405921214875874845180361475971958512903761687110186547822683494056010833119203254006573211865630582393162033673739829682570382043176986925418367362417393373388548114169693188692853750259784512226593441496728300641224801060826338008695717522854030601061798529535456697310794802695541548826695128643073267026576296373062300679968761137667653688217486825791696786222968956702896295427824283736729792543837869846574514872426891130669365865442877239601386108899320653689718014624056016155593634008948224388707183598630728162729518902382292341514826526313307468134473002666921476731127341829102560127813934755540122756137246572527904622729961849334134084178194680148766199373950690102035864200579680335486516555741723821243259479945613917621275273736321937509031715309037627101381475035430094189504593270824170583943424033616512125593280612312223782541031966610116719209438950775851930289041573983805883490753940391806332366665350231356452012338672760496054206490962739922193006499861046100908233997581988503198866255492358638782540658171498413423779337891200277598422731539201275952159825344569330403229233164639145409076079227419788193545486879030714549194466669337113009291162693248062049818011535509301775635177745767799121100827840588864442206783532830354584924394243197272818358041510835348037461858372481030477846003108544942356071231460453396915170226442510946806836168896971357484641388124211241538614386093724544614799148698369246825483563769782630817495766168753709215847929337116872588417918954073975267526752858438241889729655044169314939996703413574582662523288381232596366996551714410184050065855077211469552875451572940100440535257889554916236221625918910866520799822194093516438225723170280114599086101498731163730520116235037137054690386423054621849988011307163555155990452965752397051393609950036077861614288540109711737201257553092981455880319397167763581513095583985666586339546983019912552527752177091289319474681064035409450047594701405281280166134179797497842080034252625414933199257639520575233365345277749736979037302799458064623564304595329808666171863663236658873345701833622447590725762841628224915220843161399504979468132282423501702926219455089461694848620914671934945132354954906129904478060388719293416257922440238133783515295261810194580191860752299072406388574815553767096775069524317525034109209797318693479766315146370964068935618228882319751581305032352130671439187872303698931921738219205251989992748164996864939351304495207969787687675011037622921649558115000092072929060114905006969406002657169961398308372564457149772790191641061269576943454325522391366743820364411993584768843079351765593547891107916576254936366094394423877430001171211386242095986753239744945529328016043539930135881215701261513673717587249014665382222813270507025071440052130671687029550709214521524680956787435816076138407092941321212025898839092755595096391955286130277717321769663848113097849060392442702285755319745963542035901565342999381700283712407956061661313737896053298411651849796898762362672858409283532191436798759478310841648385915503290093378094166433820485761882417205590898868016529614962820796428153725378051149631058462119295080881519072123838338390839673390392413577301594094712353693312455757462238052212062704158731848352576424008331731810101268586511169296897704241800878625212754663531741344016824805956982336927987038479452417164480475661813016743588484591591621445184547587911786783380468466933309958988407799343872892053096677465164368950641771417230516092224141065788942024356817832009379677316870616739209721936875981652168230199274854205866981218608639507920197813640778920697797092515473051163292056218176930380068902281865659846142568617025931059219539563458468850387973468764050014200712184530506320860140469255996033223100695146753685403250399916659289283532814611600294850424797593600471272690518547825088876407120398525655605248386739009560519660593919476152693380362679114654361636128312579949395747124108494383273548498152878114712360374857222320533493614646710264824755885539461870820011613110722590027567462230132066614650264278354344499557010843597831117332359843922619078542793696009045269146645927062786429000500362057050988726010215106324092166946455747945629967969718130539500391714751040904485610905670326489537885599158003084008288453579712084873302627066188048237068191846662438904298520212645531455984628994871677987734592178487070468270420272962588437206305135073278054861433161791854760060643016900518229090494559429905290117177933212512485441832644748338297117070618558903325223841046266838903418565160461429696944845764886904975823679906343054421615577855474454031503679978103601363698793431856944076609627462444359261933558556185656443826409025591447935932248269610868563051276285192694614920687566744648760275536138504485429467643277912160907424410980477126512710781866302669472671799328422202177630114700315527996692090852548200756510261935667747525428343147629761190326209584542455693737413220556653892396378504106150481184791186580123691965168697206984277273823312294769986734606937592830047110476581080703428082354488868355938384554834623593693076463577328207417846200630965009926555976370098326864093916084368160458084752170410011829109572876747296648222275780406465232271109547468365675247982934718720430104983897484090751309055650558314367996015827348939214475854043785821486401760988044906110139613540346238467633068322527937981454270417168835508610969074889646061585059687637256668644373199952703341029445814153417148647329152659900763926413904139940040440524248154982731668321982528600865120906650843272837191572702226099766228539744220336332873514886467473045305204729886051802755889296176088766731910073909470695453772250582426967100407151721455193598594855760588169450831053716842593113710004655889301589496493412649297285219375158648954905235788817943769801953459760046597885455800874736234033148290325332580887246666424331609988188957407914971421751978704360421535497458588058986764008325387950491551383285831255693137216311154013197214239856781787204226647725593426116673081463158641472606224582896351262415731485781621978519163970404345305077384383843040486219539075064114868882548618331825888942975700397155185228145837834343629387147219351728161229421374182855079985943513286922362996081433695023386859322477449667300633213739805124881996261721910726938983365229196307096532527969262001734956075994162204089629987467418804988522608888179517649618665239709600564254815269593630719666913562910586247816063492724323030642918006235471813845588429651689709520200040019335889338519956925902489676777409521403618121936154702325539711145730281172102446330851092364716747101104470446497704940086516678815113242411462229548043786868925144443636692772066301131187862330924310031200812704453250023595439455191671537269676351992816222804639669751077231215229721734348947810919491500958379121186915662859132608424488645295817999569439369808514959702294363737545171092925902419297757992110694071364577004336804857666465562780011520365105306646056075532273710958732977182229563169886920370223117471677803885308199397012942861643730828054894799426023965371910607928585147573894494731553442128184898620807566418329427392370655532741657579046032850631071219162919833843895453874949557563270563488919445879220366442349804153155492885782368573859954660925400395048143103253396751883640831308238918950504181223266058184358818739471404791128416072472211928588094806382955494090369338415805518933957721201870433603345493714465850322973805410958961928432081414781491971648961711731567117072282252680486486843067212700034585713342440285435753470462846138307421176065423277971614024898298344605669374384969376784968262622016158084365983945229341400690453947232286494985513684388836414306617106360323002046524032797646533713099816267193220128306718309853807142389752012428406835919594325660993245086043024922153872262844456450852174438498618954701670106762368773723837307339211052318318741495323668827683296624362167920613222486834780951793523319699806431685354274195750097427867288650406806746144505450834728012020122266391354757613948160029374386805616627835011946375093645632054084718306060920949773674618681786313846386812407936986020990319176666405349020511970649288820921218301417654635913647483145949631102829922755964521777509717559425600635939199886093282683107354791228779249114350132950510376978860370019645752921768198407126020510095899200777226607144121663480459299573687984799432756948641881638752971411348292364395137694575871958971202373271550790804185083090416982963554770868290389082767385967889533644486485316962434256714478848157289741784267439072844856542460005118812281918457469618714380342972941875627840129581322292782642446475483810001600134933437455601294974344646667826084643095294741651620377487019308891642919752091882893938622795524501748524686409651695156617500580264917827284572533211650042724889505862414659030180376099897947694593499157011620010306613700889958920233596670866024496146503885841548875525207862826370696146763237681214280135040272450437847250077505282402991551887214478022870331469940848851254429803888038303377824089083017222844638873119027894804520138251613617054343015522793281031063672324544613963775691586980949241725915772107978408046294751722264853478206414107212603680467622419275905514455472218410901120190298042667263553082011136910328705139281535099267441309672887620659573284455794842218305831184110902251254285592323591533730360996842015033641953109100329477357065506916188770521069933566777403754489987032341070537608725430408228623292362429309949489385722577308439214031371705383732045924202754989595216654482806648534268713642395981937669395344013486813630205214047458200324397903728615375918740464418990125168651263285904255850004931700011252408892119218039868460039500540941530512924488728134169744820948597542762483424474225184461593849879894776905252006234036006103858876463830698678092942677651156207863164225878885820939626184270139590042562439356364707433583265273506814797161111303488638058546482613363707247720943507781682136643875641287093551217395929918052345743266943699434560992669389917020913479876108970559113367425166289876139509813823357629859098477191073541067756824928588026786587539450992624033383836356943366879251880895666251616599070573041710585930427149979162979880296646707824331726179578578543820306054204754527129256545682392293967182022148019571127499056571761576441353557004718650041369123828018424526274347007095629362999603581089395154150694050496624849382876795044926531977890271321993671278289244574846280316613250973533498176910517918527575637077110996933553113006588668434325687905554097308853491460227890212649889819059513330210602812560692250525933376314978355518582049719623228342525476872089485512469769671403019171819958021770593857467772508264570175117722818018229907225975755528028319513475069982139364555994148052722602348817939957592364249232992974013341504186696021747174411095990880298076794397581115076198524404093296317294558956534537339938707857255598362398457987519348715308480308382289931228466060394767455772245539694145645562106782360376077948847135574659127672820623399686792342261498517665474815410870470969945952224098829136529379430142905599031264833266949728034130745664886276981565144208741617821345469400881394500946211855963645175209985806878452813689811483460523779858039891142651092025479474101551475698567671437463562253403169233153777063932463412657718319496150475134443088583037540047648361445637836882357666935194951156488019075928088500206692751050988697939841007642983112940576825143712652373112365537424671227601740708233791430414648451020674396339980335293978848579930889471963717523518122166439683119176248533487587629541268048739980839048751609269118964635830312042187150990129754915886972231589750498739938301720333348961873093420524123055732518608766080891577059480527271850107364159011277362352042874947254336306206122815051482202587784117363934171480995907055230871892178664232312542816488950601901331242552523628637102121683422058137750082331221889417662360392373606738112778734204118389289885500911650438637264587595632900354776754819099474639410449788265075764667119576838091880058297635156513578596570238391047779160933057372516127047633873422270895150779015915738308675696376247842259138836873889525644574974207214703464789349731359768848264226525139403588459615515886286345203347337828571266585595668443308181862104578783185070483897138832277353498336816873389761203346429067447943178199416216762954245459081540539182412317897236570738021482615134286768118966842937994165169731049302636015650452340353509166789306344371928609119249443161974159145947710423403507998299019927519715345654391370464123484649656017403823105788738627477812838764679448015960489874920762566601296722221796188680361337189232440873611838847527662834152602310996426259510196873426754868150139484504797503617242347387069996628695181843067089747555531060227006992024174959527305558888626085076090631910829910304181014228020124883049253372809162733252291162593996704653242416637307604845792741712457955956663895190908559455013364999072061939974354340728853719319183541841863535560044430259522813182302361940869502370541150969291596510265514574400279525428967249335774658780517244880743251036751055341923570393555047989272829818760698831658581213183362970464858501973678351949666456932501820178969888018989678963522400922681913881373978604346900409013583891183259704983012358779791299394105174334622776721343152615249405731898003157397219731860921355613141709289446247472120954633409604672643197335279906366208080673746056196608520371910668564658845950250501667982773922434624186078453966244706880652276291486758745004408433907812131140549174183220215702096885840928479200878650800530251925555752033734123745224456652709840436297781043145624284094384500559563993556234857982449763415597073186532379792755709601977856428496006621823226679769160215746876489730782535825840396244251065963442289107174071546817062086679688958055842053166412618723079113347153053466653031516491511303839760598844825329968037504655786352668745061292471993406629541409545901553306116643672913596828533739464744292049217360446573564988371008728463720403023076234631213558720887065099481763604614082105440286070686170329247664452784807168455525532849856519520440855333122780024417967776886025921752068970744311743888990776220083607903584178541030602296355658365329111032327197650007164328149648963989430548107003878567730014840644191863100517457350580868469679949005915777946669381741813182352255879411062546255310948588115720993148697847904437596965667836013551839573193438952978515783688412234364029090568080113559792844346352697249923626353965182233593010642901941948302412416487446047451387361667525008019054838583792125686875172805389817991209069653712371560389159358088682990615508781443736624686029216313604690666841987437358712669156237326113681901764859761348566235551550968472487385685141207798763872069833449246445221333896699856193947494882609142006118447130558436672166371626417397675786609554532504051032617591468043166207281913482387025860190989146877913797699099174841460628705435955121604705356415605829686156501305617698521071718337753875872543828000927052891395787431244463281261848442601979630491801431409667188834825294048682319516437263478373228375851865613960176024246598775166000958206664728601709032793737928822604383021333928892440083728424621681483725242719155053406699522344584311764174124884874991182341110003152064578728285930594693774469995806643728613192427167063125090524319992983039698491333139716205872835200403695476608593412357509444133535276519025732424502986328544112814332582782184635075997758164600447592006822146279567757035705832803201447186190299567947811188239898139898988529604086594435376690323141603544182285670608769530302906821316622559505188953228493517289336579536976583712420510973603299663316696054210443988572738249054558111081849681207690138169099753884442255457777474045643296895637947985993604250239061648676641756656592205912552113046426620315556113780209118367200283595776703331684780766542131233098141782769526505873152072034916862837161961159035604400608423068323736892450795104628001668813373882478894052611119637550228551611291887941753925203930440564784839640520973460183382126964011055037197676026174868458504493936934482623409627921098910689226011967447694283758246904031783461707160008739129534224189589414715920210239950341636250944638695933631425767073342776689331409195096224850092108337171238255708369645183345201211303919348354471410071255844587242576360910620615568881591774485820044726183697772289044645653410934519367375294348407278783313350563615498838908787515885612614099006245836003404140785533730609989571300941127999294210075030239774615828527537198724744211745811967635179200421667879961287100311109616358940118688181553422451689889688966673934254457026530897421165311751130342843223804108482093112856619432941101183038861659976846924593609048257494389201118011848166686048895059327114375423364375672923215714555343855226834650377552702328226024616027788100467461113726593312066534325719497628575169136438273765604891949587036666636764681138477350941361869988628934920748790699022657847025769260213354799254431637329089849056999983102607849672791357377068516096602020064293819352670699920290277786061278060084128846832768460920114313616819410033697504265518539129758257949196895685016479183016883618714465739895735493247632005485619793097874923395651582778812767982912365501085440808586537886567817518871749584682596081951476804197452552435517019981865103946144659272197838847334419422405777678714647816440316757772615703941729836291473724847596591953577557374515308444285287186145160643349421040771438293861991650945689075435573649281647614685444154227825064616726764955900942311935025981887708452029946424676198007312278308787550089158234497932051370138480690990037651551975471067287146340259412700036650359979868255084442365080020590401377594496210411410706712165716841758749175115122994328134750576947477744278711874934363240051596486800534761692297532412149281272038415974059109108123467992698335913048342763591648079757133811254084636824763254703034471589369227934474441429971313150609123201707242299640033498014004789898601069046980363318833448158653913665830794392200263431825627902778594756814989058521388846968794847853242176728582033221376204383827329725750426937240942884193038232412643210959833217593560510375738421692900805378723215045227977281661880274901999871844654357121153953185011300369089218056801379744525798687121122327526835015386972046858783040436112106687666792308032080435858382077809702942561439032526025929490589071128018220894276087410645216374757250369348027030862317343692624857403319982064157815517735421066847302374579116916288179685249558052268726304575779234450157061851864310096447318153443868151079800075300044998560390322721761034159039759189049125875451911654508083149943558381769317504544464069886571951995956292494808740925518735069930283153091216540076655053041661734319087169456554878628375507910360925908165459741031298083917639186153111290667688467294279195756472133056586783546543077879341145704893414020328166452128932879540265149034762867296665653289917192028847067850201003251768858250061251530694029218348071341404117293168246479346491209329852177224979205598281069008240425517633032575074921557215508481926592631982338521666548868921218862280784124276449598214944357131867678464576232981570370016455980559119461595844055841926476144974870387673563984052206529810427647325586923718116683320250780317497517545484722709742202668284108761236635594188933595567539889960708598797916910067716660682761667305085447424927124461143706586441713325164125732534664844976789550996392513131941969837082011961035705165317437761488039554825347243385834840951751706916203619039130280194105827428468789077185243176876339393922676465130121308190634278059420315983941605317935472341191176238216186479143679223237587405502987386482088026408027056917631607538275134917102914317651834179213451035837184267785626042134426856708860206879757563593743660532951828914945450645426862832821262229557759223124911906875015122854608836763864870881926748359510183610166848348680204738620807045191323174894470806270361033821679929498800000785128347145531618588463561491509486216919158421432097716580859477202377833242730505669302551938421574808230645205454241993386824339912700785915241959157303475264881497031963668269948725424768555692012400768711609375826322292058497109034671733327810736629282035152897334033176979164757803284578725287711008110292002669814579999664253879224077480019729932331952142574091205460536523492394713594729232377228382507769842293585240127710740790065967473430223746697375914921756944617477911455780105603773494048320382901177328547989546887170513761035942450070105845798510823519034399764174135479862870848170663314833607289301205851819462718526089939127805644209855370898146240309931672830485294538116655813900149474184814329890331258474104100696329991840410059565039451671523159635524097341228425502673142604528688584751739774391873679575913709824537215203752026882907873780998164143176710943973610946031654314819127303831316746599268354408532134292798702234192582303939204238501228584024477527388189232401379962137334675473240562318843267125510588695471635609331705615420571968006052769509168197535872479590167496408189177671182511356715075458350698518479957704810245848334360910494404325974872687926941318923798959743581622516171252928675153157934358919042602963821428747863687301283745951960784258174754400031639718840395480555134931932129813461259527971344075103407244428094454276478878391956660552410787767019547706986562298669692662426682552993724161602729225160982727492245742663719554842933572702936082125540410811816003807729159376262091274807724891236261970181583209854570692686592496782799216073714036392950372443239106628743887786838973675015024579329623511617423391496366104213617411954847727905478631780406766685411519789818164090205099883293412813116114164540749341319022257012862462436833505366562072828550589843232508248073104347555470488994065338499568527692310723552244407583729395519941278835227609497822829484989553294529775649988575567868648866695606169443984091671916954602918166217375365173540073717716862332453435892387952190162427767195036231298047982777271362469984062912970518559283158418799186827094581041438531761287359733375643519164157907339454677778269008312279019800844721477130917076794636966432234497153737006225722138795862354081357646877606882982562773290225346533337484521872821976009608421379634659203394813277843045321053645571660177760471039658157111141972357120684252472102371817502084746198172614102512461298572503039383643391351737086251313263825395220691693978222441780999023363406982944079750182101085327052146071981527634643638418268218256188035208866287677047377191401947766169347423382961223692124189975894057464808696443321387036580801463662894405499132162824404054795016024891040100906910080937912227966391380003987804749024915447852014336406110622729318742933007777789100104050467390791055397628091404098748022107009296229432201267738172407310116886247303735755286987978801273838379331090413432283865870984213031827119305004463437669068789757818238822238220473564536538492192097756959568525776262209508465752466621931588912537257949221801888289056105766524802471528220414316006647685177588581260344411341957654421392637825627984774367923714183422698981598577154509083768878862632893403059220652090405807289205441730272776569735903535619511236851015183200023789677308299781602353755487395969349810504204775406105619166428197149654157060618299104585838864253185090128452955604831438646936474076287566485792641827662685212035780924050779161618345440358940490194279279962225936409709132778290416332134697748515116578654028419540865025530966026594996776303479682555934972724695452439112810730626961557213323946909254861375689668124866556410463017549599613028912420851919672645214232892190446481092787324807945209988701019085904908868353569243268348163090898772674499249872233399132756653059710859754486614238601043210877457111242489059226411462797512639407220712619491912050329300406531540117079400472606508640386220488174167730506732374578071055351372649559524313966823717256854914376148314617823296432341681893308414693985933085573191229516833092617773204040548404613319723364955282279587020115267051240377554866668820557994672410860067926405267091416285896656761674177009607224657805226100518095316770379480307496126305696108363270107052032888306351773963312847314248360396202083331447419158226754905241483655790462647308429712562067333482087877624777943367379422799988077326145236077354647669298599915191018642039733661666837957518071905226431654783734658872905445736758478420954142351839070388765524898889430016020963072153292639916787141077678220599481763445888541143258753797109111701367198828220407077325564594095235983471972419066729233823464578532284247708241027890781181989012468729187484041302713617105221878134370746971139169464203945249632979254288493385490737532805934808158477845314995740259680771283356935281058248533424617493122288640614034107721399578108923063942744802625136669544191481531574773800928403124468225816789134353133569773367020966696705000522846624218297309999656408477533395887608360670559057389399533821722045326856319496268309698765495608751143753024406732489373720743506721457284526173954857073867594940632021948441622835588525104905112729056279668791991233725339214436726596815450277606176816881150732446162003231429885961441260129147431874424400782365883527716798790605910936244859569992222596958016763987157574688399495102372041849399537260715476937238086593408861872791247256384552626578991853979520439576800607417300153606977095303217093314448167926942808305258445947891183225240764487035006226185714537002088319724886868111213327822364208883801680114409993338199126786924275417763047192536968592373891898529945150823405604207590190625051474274242818986251040255236151431479856717135961940103556042691547662802637660454667274684370942463596521833143080500664637150244058897698712938361586726881435978492788084994833764113362081123638122468741700421536375252694541211433440515257875184525262435891287178985216059206603786577860993392680063985228726933721427221040111484296855863067865643430035710821807911881767617716287835716411957358745587223674348926630961875819344155044756944126590284731265351484492026010142716605251037744158347086916209156688702638099881190499429523834919357563674994875517986719141568931019383215445260820926858862984132739285236736516498533541434790623789294869561427478451232026638438359826099462278477862828548452675285119800931061715478001862264784233399564738164153809073519444955661613101444633130410782637975781817078276059179119307862514806357530906888459441076216541978728462803070733859086179301037914856528590403633941291191228491200427164565379453037989629696524184485897589517330301417321923714962921409905057149861684527941099587622733424799087976503507473930963849605676032038744899217304167647515010407262980583525935314175317168327075805193676406924099073414169139759779851560909928721367608357198821227070104015299217722529897761049413961163659193080003766957479747337291383823223649773408593617867021650081391190303231989826951338951344155237651101350496993623037039678434490004480300282930984803354071020574560045557787029082721947618814788472423790164753564638810110741624754414407079759596864613472156737775703604116485435436592696599747511679776350066111128885692571343744029581484747061271213761899183327140017847618359969622112676945756866372593768341817989408485066474944949497824897139570063833191974444801563307027922945784910494830150974766683537590575726859892309804255181769075093989370250449517978475701757689767443758046790279961821131555535631628707257908376374688234430485909971333468863868662086517144472847355647565885077160110539886994486552884194889485969102817668496467315018847856857343691243258335230254466024692297805307104012823028414280189065849536531775349747296041023278037582524012539617284627055274158621163155157855019797687734021171663241825168364908687361850803638678893646576869486601167093665739699428694624577461901137469830459146622026979244411131303191878618080350115806333481637745049506955079354876753109865261754458950060624735598763924853947592782982860493334774563312464959032832548463737735535600917407498855786650278692146995897593474263759594057844509957003709987926499157743597311655208678618302949558277402308217677243234209788853117900095322790757838177714242568930087229164323015249606784714676262400822323663099390709621347527317335593978158467450736835494708503126129572467576709953115555639206032067782703732554585745088767479802632921485290291173459426185997462034712222914320007335921641074029941244897491684948117056277756667070113612132835333236993355245835814856856238225563885825131311801122370557345419341054434015202522600097522838511723216003144077364169859556213397597105953646456111482665562147464786928712680070233373524159008198928963154261109880307077547288081071361724615049099063876034138760511088894208925357939038435819579950869470542917583519348806835437334323793802236365410211277208552596231414326246416680729857092598385115366430503654670906024534391061980752942825437967819983790699994762002430666941388640395362061400494789279536662431261204523015656829455898887238939309666851506243730393523462531630395039804132008965514183538275159039822864014245192598569468695404845433349936375344834492750292637056671808136221675973641013321129335339021488262762999264536210693980010184969549453601535283868948179794094706641923649404175460971703714247358610036146706375376319581503302991712885387491576079218839395185825932712471661843965848661680307612933291070076577722366087624746176892976688986160527852425011081190063535542245508212027573573463859227980253368924204375903511824615110532116304996115794919517004200625818352268807226181788271803120342482470700968600643589178062418325730040927620341272285249220491200728448413215350663544880592167531012735023727453693774055404202369795150108587385977464291827699984751576047179631187905535572810521707251210909574645953599607949205628030737728052593328141535800481478793521205561772242339335993204460070015856973809439161038401616531274228919630989924061134178928965065942629359802870407879757656453474409040396517792046778535276295848575537052474013720007963936861125205235005328276329259170180261444407679180540589454579612112813775910223087994868287123580793086668271446697235915940107605518139021849793734381472603395852467178515399329369291599229571461586091147864349185433294650993889837985568203083522761122424807258627904356696176457678392223890321041472189606304591106070896525014194202035182053639095761151315381310820537371072895508007256269405015807365501213068135003902924416391570207959945752136425666401584974053971591140420743944471981261937250112168233726719240681231827900492683261915818667554090295759435140780408617102357680544390001975805469290668667777237914513147019750867248272273960816856958866145305784417925082859752482979184482179519351437733329246774628157237183611420112304316517245770902025505861312730579649235296564528023945591672048396113753010031840816735379999707430925040150844320619488698993543936052810662837675123389247757154815448307008539981163437217026304803629568415409213068015932312695894965828776385422363026984749610395532897063596674727274713881065310395898281471406262151933344125676505468971321445920241696095241352864108811439627297268243937297724449489128125454205909753593347709390961969747034544236847298885209834918529401547591591369991465232853533665724844039813491901733868122530039075280516163843715858069767149150624348359178740807126515712230725768417178974721035132743194702596800193290480378651552896774661347609357424219666822975338325038431773758713091230934499298528487847843860786024525889718029593230847936547677285729497535480620694733745207865306486183462884468434054059773502799158567897483326877743382848424549743072055778617327435300814345297192205934019968843900346400554202941405354884023962621481334920554823361105377238121305260786547666447871883650577492687992269854782709662043220231409266742385712885720971735378814255557181697755569736958569972546764398858880805600156283843871602981859895617381893127890184013271782679781148940679066809479148385432739052573627328685145623918263519683799334008250096778994174170887458501953992754710111612664889052147704965708673353244709736939748551953292057869892918753166651616420029408072150443621353636095419623390388310885753008916888525847655062592351857733198335206533318557662777405936121071763792798290441324684492538504469043087044730273394144328967541596288524965210300328004998250485050834513104610529685230744917589081042340453330973614981812345078063814185709220403506449622696602727211871648874260175272221521938479543240865432009207427681951279267381754148016113852222001380854938787438381282295222277150475113844315430151691630268397010854000814492419207631802778964431629846881432493660588315766625962467726838866153240526432961073072120589609008732444692937559522617926207184300813711975220022923042565737496179170485024814674706774868536608925586453104956589480383994584159885810676551533572530017343060871713175427523937708569882537476722695857395980298442730900931263150265787895368102596684028878603200702653648186589676494844301080980783904647627273125317110779405560320392244346030289841055958612111146191226981076148246108651335869391564302568793232919031761715654103472599785600269847162606593955827883386542268682753079401051174529687542233152481336502384081526550229927469506941204185353893521839451906248348673078878309830821064517070897987002192111945663209965309428776250546640992316045547250930070474590294928642220146695214595347109453452044808767236580749419636205291839545470660381670427019678644679062498602601026497846687715160756293552724449308897158291835141335769773164984684459850724272804978563378072654645247471404698395354319685808181876199190969050215687608705856428908472806475671551954287794567736508315377941807843977046278419883817360249487660096182032299760698447264154921372902389410588359804457900334371812764778034653576706052704556993894228241690038907257092212168427597984717442994723434469352566068260385074585258612329250615966258825793604010595394542462323200518766041327258878355132547289849959606855841888521796403071799371642812024006443769187870291267097108382457314956547778895667445488390096802231238810908024133366142413084841884158526897885891168300309591980947835976817491814522202884965728209059470532518127175254892085568611195313639768435118100842264884430647603453396997831701396598380075138033887627678899393050351961211987752281546489838802680991549970263180986563893835417612141041885639082481553516610381456793540616738243621586657088079507548450188350545591429268326978360049062456410348238868052169005298779120795653035327430614950026785739907126472394130020660854798053244323017831806527908383386799530047165202553541258254927013500915532297152345861938793586731601722532652022392489046207872881970164880949577887669585467173440073816674898668261925038373089587823618287989753203205923665223147262363548885067186257911001046040890817005816763214265821984358047925698993842151116059275310385666593050099323804769350156484312668174345752164498175100984261650606166489241539437836584398763831248361157201766928871295366206035791235532999681091451409442309457991264483494296789745586356339116575966799732130604295299469486744652353233324151531183561974899179531157022045144619680670948861150754108822632105392744162234404820240114105807737997166204405251206146048681927738255147947121801698733658396819421497854260845915429331010560925418891051121101620289793184735121895783772141646648156627586498505513177746488637711589341616522639657568529521616991523249302847051786859412299200745267609314038255182751180744649414040444577203955312765858520023399330011557301240855059743315263247784527279486583749135249298060945779336331197601780459804186124237264038242134168966606716287989243378744470606280847817078124543435151424408810105835906801741257981422153967313113656074842961006425611547921677102481409690446408160412827396350214551493076405964771407995134275013985431939697206636150324565045476464895658350623665119253659012439277536900710346125565399920383555080522239121537831779515171109683205899643834444631541258826493365610840885604118121457081272949196845056867481878423370420267305935667400402575858071291795947806204401057838468203763469693194017934679498787759449902146092132855629979692891743668616355990357248139418529918461478354554427027214674695879696927200157932652608984896777628357534321793655564978512287515491721572888734759109233763464699039773121462749295809895355453789374460302101229280114425838553650783144976398689601922296021600520336134654676861768648389925504258087764703619772326326256955116359891338834631460365766599295205441636126979414403796023953740895806885945971960150384865845300783196370852244825846967184158147362268626265124719980387728490578575228656805072218945979496564831758499302365728493464151371084316504166149816136934955452733825329683332281905782389526024407272168786764418895095034642690564685886097994505401545616056539263424694742540107381788201663587784480475790030964909446439413451282971343616717938015041664666883764104580241712199951794751570362977633561276152789470315532365577552191159771433579633947629814203711800912628340261313253453519252011021551630727831584819179479313954623429540848354050858723471336492874534057141906900238198333337057762837569154391307682192375753948897273495901509240496619800796649935605539429779691084046007737840603922791790862936480540748052974830128377933341356238402059549874134403657409741864034797307950554539811187499956834877303424767803022350219960727555130056997004356453406668258332761470388586348946024236210079801696146517751096725142063009288964626212535669450854920328277131655199751086847519478192289462940374594296374477750533435136203727287163856747463749131345975091400723786178117306517983370601154803616051717852567045828048553597016808354883385676333492160631055400177977302331642458954182520560634130057929174653769613085790397106289050522670300849936523056445984625503406541577346948581800218284170555610234727499178315524725691515567219348760799233465431235434300818817938213350820035574353039489237280825488304104153291777265896642150139882991737436972859440350219377314076912408742064918880422074982667356019342707800188204991981166714885115450916867414079350040585452006749103820986964551022085271287305035124134928579023096706509935933308396350857215887519885956303447624925712153334846565171047401610504567548001436282181111588527017309766617744359546147599046172720953034906871988710046323158364688156157781475685914595669113082091084422841841662804403207541246205993702232679260999228297626205789147006992774656257090926432239224768330692550064428951509283229728655309519633062897631838130199088042654112415766901363649867459943574521440879981973924849360741583128546556698352375899025086297680930148655948582898318793704786626477197538195533987412405031369531372291632762746302244254703889764949495622644807271156128763681758317804119042686323249826317309476214776776394052679526402483548315041424437464863469592769789257540021026366244411759308512769924447585353447648691719767286767848836760413876404394587305112134230174358005675556578499099039225179331622498570283864319868293016134466893983656025816154820780041344366945152696547223405854345581616912266349454171933781352203535243787611712227024839306395153300283430405075970463651010104467758489585631381364883684571675628932013369034713693725022868940109411944911014990308499894665660514143738884039472743878737301840679844806651121751158296500804093333331066349123127450040997704092114270252859887428804209259405683070881649027107345302627940230575876531159272449653062339479233576306534126453050218686081744883555711472142942807655781304870240882030608783981535465573266752718742315367351941154232860597191990964914982581690469068143877867774868913882414988599259512601275733283367206989775252535243854810354575186349364727782372423645690629051938936599059171177651915867486125323792982327739797818586219363159211099429594304748257190910510770465516812963529472533459576138718457686113676209336634427584766087981083843233789104679496084684521952012801452160322176391443691427040456178167118106156744865615948859288642593406093757265304234869451716063321251017146262313901036862197739933981951481541025831232182781820801527526552909206844952311645535834518532532972054259390741526425042543974720632863797073759899240734050709206395438462184533117495821657414406797265109347945583724167948643208790384142218895383691193379003023111249989345014693957023563336277316375261678160996561282870920538039154840315617667662725924095888027746627600688282479586030017537729646754139145631411442604549402462648378582519336487857513613129126055612332053346780587518877610052468623608146614909402457587744261616536095402242571307171636938512918421979407268696954301913546977111321866545970117274288854185546101360959840768691461118462390525186717403299375929337762704452581098387852468758492180952202379834298381485415327945777560886779886248171324573601081110250181672683108339183460640094422805311530473237181706991846752404239247842945888286043395095474797287661348789196214639873030748320328673358394926645689569096771983904561316775068787966469659978866632957158354161682931449564902318609643939282445111467263239163561135543443899151224834263690940798870346659991408157860010392978101763299444610167277328243342386955738893716304229362313647215955056050295302905079329933129036349769090951574648475036933936496758462731326898772493991207421050542184106269263779899288701905686575087491244413672919910516296947868861727330560719660774618365462234422728033996994219685422390935839198139519100849512489325470921860941762751073888638167724275211512121920810993829015182864896502486690543049674753230390070933706761225341369465057024255040418308893886608177648672257667796989708761587969448494193324648713191881318704493610679464857595717602358592702591479326312480308022433937995235442265589934400569453290392544513442954171591474881049479748512575491495888302895374999498797309296492773653680025136772053085842848866109281362273765599518834923190291935878549173698212766367656721270265246348310404483843451294639918843249830240165616626046199564660401158345347967957763223410592524669399635748154812442827655325228051329159648150024102272802236646574068335116975223761006335453351199627629327760634255758737913813601297900276613144673670334105505401180887368972111863133518407922629196308766760275166941767452159896781891926752234435028078903071071844401569748413800193807275806978243269922564032911867838847365557030178919358484217775289382280299234760436308483166361761221761098149266198025736896538985381886011531994314067833472696744503891582475629445081435644581019910514647141064053636024964876992824119894753425659269290380103934691849913603134670444435711468532022319429348607787464583584752931588184622411842348014308301214754930713447207800172370711706541590302809496620211342138231873439610616526806046242654336509559932577926600949603883344042492130954623534103830274149617103237765776937584703702551092027259313961315043337518056886290844332635132409826570696954484166182519380290767733497898430921317262434379280361277274516146959739301976432335771549440450986591851500851760680931988793329584509695887200223142517637837619325715184018813772320319790115799407364799333268462248472210541410403683649743575094727124396866703876385993889828704801330126209368037100180900786949805767035784289091686685802149532125271452469760161352327068272500662274298430963477115010228645441749592195184088801658836464346954921034171710807331906494593562924826235615827471860231036739479149394914494313969819210284075830661996528264119025344724429619897178093573386376401691197892384553277103814783896916047088346658573959318677224917322183935592902898441941385093068082173033163494187609937956300564864749917557051316135376525441139726707312436209444605702112984906585125135929322492108654534550649944877712178808078841099274568635159450400365545078216279864825820735343324851557931584848169952198746511340837069285277235469675626099862063451965168476321950430838921269550595997205018753678196967719728074279101719896979657797501091166609498398666318270699784998257067555494132087671176901948948088693443759640770658972513208529014291438283451439701837460699532542960917391552044077492721639692527299348916193475578315564312745372228859953801204542933212679410529451813003527203716971365678811034773063683010367506829036646513829886765273545182322517427762313611664210125670969472175228585668346738974263552561370837149615099695424399499713158729528994151613037728343026206072744544096610904323406338593968025156354150412287555218235333061498449925727645698600248476494092733214258689034786060173821683107645568412479386834145563576016173511791032146737079435265100568603960159159203256281049827301376158278404026145247820906779428888196554499677030814630349311448203487723781075709681249807695469901160861903753326209058511206704954180193120240521531702766422303477086831594992024418867691571840628205192618007227140823726551678340268440929476469073371472936697699199640611317722989327638618519537700957386102498310020286019014186830998415563216863750804312794741667103175453100257298914471329557038284433072124329917030427078350842182766092186244747857443149071212075706417797090576390084663608751658507622188051781308842394432470754396546473053129113155468004685327293137520709771430390253293647841175246921021211647324467150919590360905470575187699693843377551250585677051107608794879887590750443556471452276566267214103792300101823586484565891894863379231546681525025108281478818997462210714180052990570579327540749337284546167102594983406478030115136695723218145920614760494743349649169245222840322784470292028788297972828949929393545189656322762520016088972750301424967473916272966679950084103168716407498958592011648455936555697940778225384869661012215994458959677336703459979301982916077813006880904596192740065975092223752227748130477127785548619590875523395385249106139761968924407959725157107848421706148038554066377440190941644253239517750371884763123628471177798697870459596032485760119436358056198775469908861238773554590647807049089181535427111394317184316422405302642377364631194174435788064338353248289651119432218080725476857128970679745826095323092734168067804644323786065054434487140845062992890541313980936558260992757860979014023872375103925680189130677119101114734303614761658493536244799217280686696015598376359849163216608023387917099225654578145007293991952826247270592182187309445974374888803333443384653266038326678827052865684644085359302613324508589244075059064758798881131000380245947007523952988643094928993112040747559428542720923219929363439176543807486537802833944702213999997511638418922251063610367131550332732509966394634060535245188460392105093074495781918882857837099477622206728831888512610978372741232663846783897573457787948301576180773947324384835716363450215719236543617674757269305829229389559044855795378793028522739003770223592737644512937898298969698936615603953225963513651189001468301273147822609464885725883615900020066939623629728952103613076721344909816137105544091774201259611372692152650392775123500749900752591876092580991701944730930046395718807270424315042006701521748127424603830543512529363013013875243426716372783241885523904072500136447094951379015507414545371645208170224617595072899354194876474774927592500485767875479747756331172180341015512764061267919842202779203113086418402977038959489271996073577040522114470055292935649717529778581599699476724535983403333463933210343545100558864768337029652498716761397416262547824715957700294878918350277091155035677718069039900267228313860039900359287301364453494375131748092253902235600151624490747599285518116246604657509990350726305903155496044973666881693053665529926873216284819569678455836765260263964123764940425018652543734054111804482955349611138367074412166838704589411384791589462065111134226403524625115076651303218203176367058125686559783442902632876385536516919379726213522829367180710315686326582451761879114800064601386647029822457484971202267607421842252073987641220742923063619037374570380733106610663708270710086311640990708932527791895200259979750640622750532212006559512718319760491711236087810743851127263837627566191448068642388907625122792730888010400709305072851648033924528291314116896243036588424369495564183950752691850195299991172652598571743058916562753158146353623041751882205519782141284704471299801065156353868517417018004905840044303229856472661177008466929459775063571007032910302943001178615732742993758532222101064250235676018872302859398216390737451963307143151522547214637080952552149285014194112548038402442643720291342727830513127725777741936908364823493608195973927196562048811824771993237490765431895236565659646936075391420239451160846815769272339054211106625053668806414881500118110480831978486545795584893206828130468769812306851404548622896612028350225317356154804959743400076571576786141221861423583706596040830677390497704848216601066336405924457510222448618888234916569689621581183717284852839288519470139937827488342487558891163405718574546329473584130304318324172095653148210838179606010643337987773953256068325001159520776431069010122533677942334274042672335633063905544532014605980423567937609720512243759110611705189716824263138482254439271972740824106250274564902793757683261060383795444639493731316541213223247714698609171376343087584148926443507489411638664820082204847789296255368645694047370174191188560190512574142735318462772994909945498846365408539224113483847275193183482503973669231422304709541416797447367524389330738286701253420698518839777723668780968177017694238158466025385547265046100528035264280875012439250240721528969293481261048565966406795498012933855249586861940993446451744150790412114114298275492368675021994261496063958395784458354529610037836576545431658741694164558892398933569209381276463725869003599747213959363092676969474431241294038219646590502299175664145713403809222185063120940323516501919027923858706304490344159078740525253655595351392591276183041148958007200608202721057230676215325332852574601812644772404006605554935678349625682604580670434541906109660318396303570212071255931769837772152472266048126305251802591741018791587530709525049836944165235850361699121630771697452961189664109128118060367515502329157754938962248399667282856773520162037507215797229861565849113279681427643371550880369705067175698447252144407262312050566424464687375046290562701491657136207328815292122888311869494525314714383492963987969810449768482665788886402087805677359407821739900135275623079124204770092177551165173684178237537761331910648773813454938137335532511575999691092615950710141781564572874645181993491856256777076795402001719795359489559397487079680505092409339988308100410456595040445926700567164711379450972962666827691895951887167546977467396212367656161702518760574986699593681515683765881046959376239509723399145772991541428523386426202200571716910046441792697144226980035996355701253161541450845794369520711403835700747493632773457405595523625313439533936069254581071251219546381497407277789071240559796667393934449656472656942638998716005154435203319889011582477145474071646180059332266290730347604763355641864512376197434235197140834611757051055228760250117342764625134949310813738402447571387578245652151049171081696902421262057596080123232524388478431504271509191065842366575210762752988220625579117853192838409020343841376867025528686345679415400680578801041358612974800922215899060804885283510380125674487906679202797480149732156048339348771863231738352347682389332774442068165469348482301426608233745261618949282309069614278120252752416633483830449448213149117730894357484989707164001879308937819861599394532769499251627330440208671246368893763040727846429736622075546596754076959151891257202311306791383012330994574806541405439175617802457219141765313727220163496491868118961042595265383949722681499712605982865267916253991456633845224773254163944802156555927691331909906315502867894753702878574539005977689255357135705932946140779542463025111420056158227803414992970128929797654444414474332606144400196399098454169170395479428276467762326325434975221611210347367401259114993069802031580136939658623278462661527482215946981882824808743688670865516099051191019566287781870730483441098177264116122491132733021300798949552989984794290873242898200420106012251564570935736397462863814895407702954040898567775684477288315855740836447600054282475406482642498111548662246556284445649749619686808551215058295987860332849178280212485406014456890069274199458652460879196405984666136745444534757950088054892617635937541698699887188860279092616483212070501413164202849363315011866626508094062607324735895749179295997116746541133459594082208116543294918067328213055395041396921767353584985261907259450612302305110140378929537122365844650233964283555744826606263513232144761857766052321271546670662304464432801554877844069864241625361400078294359613308696908274605252889915001417187571256499203367981755631501988101266697940096781570762945931609620206848890233071822357730897051842226754291655409291132207356607639449886545341544883254434825102003901785671177168865155670558954386926804239304088819335596528723071864551093683072018095530714049937695825658440215158342074349442588362629347937861536184295684808102459638310112096432301408088676532925619065242054379486429707478814197553374724345343825865410267490639545235223855356672730250910000274513380270584115139885794775765671743068457637340362550468851936599220951669164451747654373980693374843112020068784508799346916772152951396789319092808016988436627595215967745234987664255383776337171856597346337224684863204838513409142626265915459072738299533740564261913544953872661275548058735964119192554088055990480557643936533045805190217604010776505439488380183435602599304083304413921802923158075560272893592863123676026419921749358677964513511993458518567327515361127972468221937173341436970421729154778804422535660175531179042387635376649450377229874968792832191911175117960324651558991197812120152798721832027486850083930398097519378320012381977340530167179407539187999589373673997350243431783737162755915732776170889347100105813784748984657381349200287462248058652712661573305248179793210215244095657036589527457991778348362215381403759659886509482920301674564310912737352872189733756191052086043712447604071990919657381798699751593396025267369965820263096662954860137327652312409201353670823095929306350661927850317179027384415874930702644963287521273488612305402527326548247412173155046767358041841857196693988722382221847529803801208507342997947605342732281224113358755624943294331513473970863109740084886459194109202883163103698835524199133172046542453211081871789971262568742054166693047386760473096747344039638338925920839869113185598329862238468044424491925798769477746290926001408721668732894499583684995924679433724143230762555866904505989017002542104637380838367255302339882929519013030363653612884883741365453057442682209205367425695224744104642251087166759606862503054368344190290515896757970704642647743579485628339772982240922735756709984060024575835399724128799993644037760513683459432348776690392332177786328860752225072447528969053287420669542937961641948733676206306934021883887760946922290432101735762329575142404649139821312852321409924434526049239202395029110458338954536550906801975650431524624125474574018569507248894424307565624878071088448012160270421354058502626788882857089625689021829516795638637201925138915673725894230694883938175580677955193485680839474895969210064965339041158459952738462168872385906278036117743193230839217116996724049535655445213532853503223889682945035136852357601463155315187701920064368175783629286177729439159306795462099760585649687512356944895462131891553696683536446234410739279596490616821324246905482221593002070186249513898790165870139585039365383605159575881625636280887353230691127360607364864213486459840279559428870002878545998297030251969973767743072666443787132567442635083382620064298087535394258959659188075651986402860250368786919954019563541831478012721512167068510352873866352622822197446024166598082104739677213491369326459354797283998454328073075509616895976365979752335381411779462423131573172249864401673019925594249994538381664380361926229832461740330932575105605839768075921901665969867327687309564005446613523192078596657222372914029088529161862041184164883065173635910641798313163044962107505640930646714506811563512555297050849921909647050707367003525748471092053936206795590011367910089450250580459182988003734225239410992501565988699935804154513562581311150813930341939073887531977562817489196521717864180896208650001295103720628300081457675677723557949616915354319749425831410354532247401585331501984125282258881923077824125573017500337498914597008389639522332301308413978640840202147439064820571431210143891968836134430233427712143951805586023475404570478055804560156137221116398102930881672287507709858412772675674422362760493408959860527959545182000978740091428300854563151040592542116641684422164078065330361455396101204932176450820896365539665628521034594568703256216786045895206964577502824825122559059545729140029580900899822146466133921492303068591414506074654730754799738209363380848115276711662820952012774488642322675835960545556349346753397396871463581747992262856882325004889700184710819909420115309390922384933615452351710029996212309361963922174224645453159688042063385584017407709641628902528384743679095195255089063914794569856484492663066654392516748684176191632196114179404835225644506159959564794281920084507722267924584601844207267411186483080588762676449929196517060320930913593273297745103000055263388280792845556275510721557067561847282649188985434678267405404591563920511695072484691508493486257013001850452868804958187642047927603770169174309542769197660819208988997691914005594024384722850072335477336761058393943585690125881361720114965145233806280450875980489114607128771944428976738032774639347499717233328945309599511054057476306619119229488140732840545907110257495244342215996639234822533064654801930411659987382276412677108607109135484087137250074832830743565768345278107951150511190810601203567500232586831090116290815921628774297669692220641990738545205910248753910269229594904879655169883727988175643986798740357446007000040450364013243847125095067717513144044924021176463752221761851697973072485469217451122682472745992222872817507382067611159366193462567582047811527577260391022592827098265961122237558947940763024174519699353158519289121175383727268663652173496548965218471671798543613636912392082388536025731328369867373947201030461942903353342387217094491318360129820003217309813598110359129173948014834172634305450125174783542644956943131754830843289128585873480157073982884633335051458844791897531382419270766468252666416092849595553087918415650346470902277051855321598840512163964674664347566951368597332931254108452204199349239185569841462379659074997679134366078228559055550018708165745065838500574702415768915563748054073415964127009109876740374542258269763165308545424521827975275217733756288309050276623231796005514076364622308985810666091827037135770937210469472042548974119567722146151116572787235624939042101121060474773023224642437172865533015677963056032057688543823425479625592640291531329889296226238421562843057262600589464332801721077261124192275155509652525806080443499307711547485892880976733562388318801759288294641959013274058494939920304292534559266995736789692476227751056187702856067052113584256987131942181492977711890492122674246395344929511600682909646310124289579556523275556964588673619896031262755137136072861586629499116595541209522959142504435371403207015598377234511285737213350440360377108279346368051157749456495637105472210478646999170947443731867403765586427906929283653440733365968989398103078586796836432629673929284940308058892967949037495469943350984087944805710552127017350880025519999560245152207875620874398079671867666555699699483740366655347833940892519196598062042869223567194607267784146517140509829779729611578194871098346946378539693306841356099775970242496127246878750487521694381368760264821602888445263905455929157356326821917585982022977978930305147850980123840803223220416742474011869744016264349265845713373083284669582371128760728013084532288406283783073088613619376106459640894529196898267550832157348696350047536085671616272572069159505383585383354373907760932252649291479673989621771660304820065916499425639586488689990488163222881688280658127601594979852594206721843975233260329943355610101246111297437412443680150643620586327544457846435934855566875329038134370900295940759505001871564949864898797924885197221656255709356803924992973883066949316871233631368620006048897001565543933543850424283102937780848740268366828698376682857328343398233720503928363005248597415468823483404978918773578293751569390166670783892842842849697921873755550811557762610056619881213260656372023285183749504973454040617661404520320190180705084508004805664181630622621023382557411933329468449654760530946996418179221451167129632079069557108329725730683903939309863976662643909267312672935307728123154531789482441417042363764457752515044785114402523820900950901398960293472956066202850327027870360104644526098898151637889768529760458676347893960433008889258308789296301911935107751298167824228056771386215810561831360351452485439267181513225041024128338917603898646590436334014437004638938837032104387225197145039458362214877940833890548647519191115346830981621958155069212433891225583401372281301103492267439929304055900011198505170623170712207682415435969756488354086303632531816494541516262976659095094205082510852561012019088974317350649096841397149997416726016982303362722530663661303474849555480672968517875212432536776935615374550533293046543467970760517767587865506298871466186112317945816147000970016032838540629276394428705891240646202519351763994292570079626497560221909399363270695474275391848312747182914182500001417556531444996590547873925863401103488670363543046400795585482724268214324605411116134290560798830020887040901126779089669421674247948632524457480100497428903382344636977100991236109824501398140796609001290575646533125355118504740675553515127441960271359004539808468777950154283449658721187163664489385165829054763258961022122974599061975472902187326634031827811786193850154260843264109685904205182063664432776514900285707532520892898346828044380194278161281565540465631398783580230785677071829800715594251986958225972834499399254524299999287982134623344557360226571502771875009764039889211664447115680228809863098790554749613400349337575016560124004671249618981748632176694666697389975771277005729158240630397861616435944766530060799969353674803940531572363688568759111227783921904518103917672038706967230080410694174053946998850683024581954861571690249261107557719121328608659046498573248576457566794091477911803223728293329886125334153935883060480052354066663509231449074312927702112655363087296265387827266455824230290945848036112177261312497121896700277967472831260696255536139747007400918465507412831628762158404042220023076615554174935626953877605434797157025752287792786525658682781019872279969984487021421376144789888134518103555255667408965866074232620021011237313007270820042405263955299010774550335772152269876126163717473746984245955975727493933361169613962236315352265713186491937263035145850584445957279030829005436111159647352442475732306555165001063456099410521934094832689160236463490729246464701917209558057209562153143238258504533382313445586632504494718335608919689601546661119487910331596468317814491084920714855402785739914714008109810190993491419940234568630618022731512341628963098252752378248465718195598355322278370293330015178689175159738410956282427159391785772974872726011558336777827896087378310510578538784693922048216903666552942486462047735508520410853729714001431244997605146274987149617396151469921661913145313119794298195471202722977485446779649756026574989497513893002675622925228408982044869879543773535864496364808835123144365070513588098565515201507831652169704237265474027872685934377465607763126620563844390340082919150393644424475948040200593085979625281283010378520651858626831440109811223658366195788757859397482109323874700937739613669954052366749389279456649151110327445775446832065306340169195142518346636232603173651855799641736460524995644414266689113918590105725394729412960601012742586593813973374959934990853908225277981417812398348586141968584269608614390102766520832488894791910753006848811482604626576076942247873392162495219298447287332581702701154256547310737836646590754707127510418185694403624886105553193367882664027528226168269241379229180684738374434674665437747725119244248208135762203147708026923887435887637376994156656817633585527354290046276269872498229142292188525235709448914655687702504089174174861622669217219487520912053543477277804458342096795897947997180437503283593577483095643575171140530269516568916423357986848011460081241862880318298340467839292561459981757901716006033262430949813620634817297421767583858696595585005173613719674165909234462595256418369075641293447376121595806639904368862627176559135468485474844571890388914887098820873742853468502906829809513342491725148725843994055512231126198644843472220095882627454387451998315242416457639923765131796822534482378599017730043734381927120314941840093318994667906065754642998567323470007065117985302729260378874035499812755954306164195324253918473698691447448502280872759862919580824759944194703422874678580122067283730181141936376684442898271371070918941187223786038232196073651309115223856156348456707119944591406968301204403841542938378190460899277114773906359826364041963741393769494742261459294727400167240561893567331219986223095209535288388446572302434516248367819685668503046891711111544595510153463198427929266103742172696258156565317415334307207770355004104711560199136021473497585367767920776798519470163792959299906139328635790170317736185810494428809980373550494434868997123068283613237682922195933172405596260455221789471997491788612607535424495054066343464083079517963162850523893786876685109363558234884827966037455002153074626538055785106834509341366605921102655722559266211428693267263233748884666383882333274131779386926290216219005248757476566933490388829700637448384195463046116646172353334137674853575184942839639189506843089313787782271291958893358989767572803853098747499082076944495896742696061701879160532137565773581467001672284502434370340532708087562913707726539631720879397801065658584442420475349929882636982570433280140835784187044787200996749348248063573958036420703455195824350686064110859729224498551341807842263561008175708212596241468791475024303027994242395621593332529763343462168114586032838037498473341520206941342095249142951568041587895832372861820592144192913523692930346928461640034793519503704396046043668678734324528354740268519436974827670091498933527816742422271842703329273394018669510122952807379720768845587704970653552794356283509611995118387770786110778846434335742534855434952421232735240290233066955483367759541520478683797204805539567715452017689271427262756122077464000709293314873573472172519301449223108742989553715127780502264146848764530922406686904218444300222667434515963249359290730721923965439786150330184921586557909900684996305216291497040725309243256538744059921686692905201485344722811739523022236119077023649459755626873647487467588529969875605973281248020208971732949338736086418845119920727818242580867701885146763180290530728329665253992130735684595964768297149046836600801375391520579139575592364617705039446886739195083834457683648158315538288358194880551453031219806244814873712982074710469557861721450195627289502761185783004167811646671723565358003446736725044966042841137195467644792719779602420789878845736183198423216443460607211419645141735296215219805562771980703589282211286706262290033787276518395922712771247861178267386341076608032793101409089747744311557985899218941386747934351295088462150262616686073148135981135147257556602231005676436536280875322455160809358112785895811962547732800974615111766774607547005870263876435098828755654961555270555514663927319097386950549807462309844369996638659712667357309939703467458870081139918753998023944026710876883696043754026739214407840284808503252547382018917727564001553812336119903745209975161122542297201656222755007518372873462284565072525588851904492546026218688232296125313397114792949734701582249195729736114377883836783998374572175852112596851685595129929677071857000348124132281005453540798423229264927896789075156299704607427938094560537563831615895860333102485414509470739766284181536968500183103640035356371950244573872179144700927076667776536723420210517387406206394051567904781089253678910483671262525346298680892937035238166634686559874889271728355740648970934753647717125940061359060881658321592601014856976243023351729853458253536462968986979805463444461109394122306482135575170328381964522775253662839498155791828220573870492719328601673035296505372012566586611988955350928570955214183437993339434302724914531610187095007267449040467341024908974645906727141536785807134666195152328495951973497649924362538305026114890809297621685740776552306008467433914937135975580103184916985667932822829916299890516549112236918623704058690761517140215132978609154047022775803967860012466898663166136080897566485720897602198662070440931844341549758286287069931625518570340488233265858071097566846720751792453159700653454724439310751298155748047107875015615828700333207166338998155290589360557227675984187185967453773940211671418766114457720972350416594709706039203220817147706895563166926010631605126650994037900446948826501785859826837740845018868648946578705629756425492806152870776589096759236824770019086460651623199672550968437775039136261061475038249563688993273004589701133526020702290766536668267574722432250445061482942882815671904190166830086611187628427314317985250786712989005016172641889798166755155641266985408849627430522706109936536255006609872296386604226917283264343751981329237956453948050158241554413322135595906830404407805882540806755817036380335449008501971074227815561763704343176279551791200541133758948170560509025313462288132293377021117948765982345517008006252267739191274917268848285526995486833935077132570666500615198102611193277998188519481792521495314473852477342644983563622941610756933454616564309982796790041397966552657044783711694019329796764434153362742326722730901888229592180648453778178795741449350522864715540534100131550103782078732253226125512807857452922812148718960185660219458866779727486055421593691151443868123959562522494848157963556580350069992113610899904909990030220874677745140944094235288487318294126134144509612370136283286956111265491531446149281945544679197048813119634868038556947041074775534167050113188632581951401429832442600287887272976347497048163449574651443496139951526771687707368319956010333319436215033650952770947946643035368109291103857044792095044635530602578369787504920026657615237680778182818942977690272227973054776705457158301020549755408870764865100066312123656156527203766035759337235611008612367135115710325625340043887123526067714305489582606019527238763377365828000928451476228767011195557018740686012341975215066819146991662639455546509243077349793603187656896054390469737311906114035220993088984667291423109002900480209833411349943488144084109370248084363840661487188671112588903507489099456062912325134148638006026111004847945615460775428361953146768179378844046084164670581862776503793306890191981696559139720720340897012025730251840985309753537727955517956284503096538570970289570833085593499567862308083125678355130120148130853036447375434878354865249608450332141235922202598532321227970245165079604415184062532384692186689671413829103621618244299774878363604982030556706077661597096224818460938001825683927231551989987263279441980391206175269801022258399378495236706356864026500737962504630497111023163563752927645783427690716388573311693757180328493569729085448685994025127930385492891949647522071406673269016993606419938688871217791663609629037712416005485544599059749214353684002864438228140413276797018328275544885982305140131670567448690552922410238472314760745295998531852282932944029908706514123025989350861751820756021626992775857168903236016115674680580796379769865279969537681419359167597999479967343983353632407637065749362082767725691135770069529345106435472925931375485828421971534026709177215873284873298082408684513384290199867530283081669403589389211568131878557568273713673315240817127414101413130987940448173413409140210930377096782869112611985788578381384746540958461651419277828535770264745119552390930795330112318227043081906268911620312844954954848197347249885448575492425030980716291584696818422335439443120048804053740581405016893817108165724174203603941342212609414507319783432984707966804333202920687080197463736829444654163367641381953334808265559606098981767007134744314455207898189367952780460040946842993724021417193896932545600813929928266284312378038347118180412249956948294835281483587172636222693773750973949766737513873544700425789414018246202583249598422612772229188000469536201118555783353735057876100480696094616594173373052641416107406744042593744158671245997366229572796295247330201607919008098874938348310300856827081961581731967558511330960229501108517501639769788890719508260624802228949915175346673229109390533109573559063617964291236197716199997811657369055145101397022532590249636195575489443828513876901154895671771386524281909044286429006574895506734830629349918022002225599708885010193789241573897206159975969707709177804852469855718926856088571357503973460545118421633465488220187540887188317542320919974728223359963127762943445442382070157747266685878366174657181123643032798814534010490227598164625375192050559648678822077427473983745907615706201674391435861818849913814880765420305442482710670935481738591988959351440255850586240949026272310736064216763697696642892411742141993953617414909702925751010290246671828463146453233824886942252203317139839316368544138361004566907096888232014399580706067120115298058041758294218214419670230354450839285055836543407020619565407039837304372242210298171994264861313552634109625616069837049980492791752988027347326646452333283357765975360778487608768781337386180187849714329026410982392780152171847647959043939923688584609680693454663882519634062702874823391825446766133768919477137763558474651310572430235000779076081854672363238228332816685661955509527135628856736209332940782303103934990503913995676243507959249634748764874344921950325395540701202790513078112900277596047971379416630912208661887701721508409647770548174204855593327831332299538305874235843603728696231399476691173758824779008879597135631658743583270151880792060707021785344335397042544320773483791754266500786182999684262125081187518555337123313809852222064065320740464825665439310348393712548637361796013839525453211423639821785509868694699198758183263338651196228038741955186131746845868734185693580409378400255795711909793365111799803098536988190537510344052694280633314918520614791526152944457253774817176396902639131401962420186649346112397291842775130690195261612281939763255904240150464726193382162602800162222672142561833671054059432032905395045560749293595425081399627538488285328787305133523505960908457471395662566361376144411358477034206435042079543220745513447087813817007929865022665773225012732904616877992926486925981468311180274239833695547714748529916900202238963847703128743649720927366679917681451731261236740054963971702524833594854194865911523102797614552851934878180218432886530896752162407281323581862955030871556046219000412450552430441986923972627177065805968893288794986434267677546505826671345158016256100115712756800098105244801301617435564638968302760944397947650315528043552992062777965647580220552853245147264146377672666288488303534092879274337279624343277188990061164824620000471274162512169120704539142982238152732017259731049723539917841136221093860056376153160735021178347132970309082902021358145706926077724413600896716259485895576547679784083015769590014694352097514864900891234473326110377198750398831407963847008894768792634797312780992263534276497281722599235988195236441280561063012229855101285235226591130283085452274501556946905448311898164534514011038537887726927999472339362056043512914212792564762560155846793126703060760952994766229575190080572880105692006552020277815638430414881135546058872373711238877477318677211931532918624784728735600238341167925074655212527853026691080666647888210590762437458174262066951574032676404712844604709687510929060553670526013862559776515335479799248641733380188147470780254167542873124992330252313529003850162837898873633413307485391032152688660120644746131754390396522242540687751742356548207261772394548883106577476330700868819446568153073135010931101444165669184507890689438544240417299637521288523765896844941230856116460181604227167901728265054708924794273596217936715352580767261798656057465410277076774383549543876073696286564614594283241529853444475081970922946596642864531802569471339423300216137297240505315028685655374630185432316290260916556519761166202875505411257979689375409912240440665379804285241635923345583835817064056571871077960211099721156764027166166883433887530483286534301872102099282792852375237515411273296289620622952786675601310035574102148624370573383373614818440514791013981554703281317185195341411687395136308543928429622110374556620270064494843614185743547045738368821849386219848579968131853159927883059185117944714869246991601591981269621055117946188166123452349852339849501713314152545180324165860870468968858252803640708919358803063325019501035760230532685202581890241933350265092495189871368895916085696503878485967888333158916775236354137870435921162616365342886987123949514686553968298311660609593775804005620065053592818955730023726978190911757882986186479738660729010238627741789601223330282183165209404963888810763290006684631285410710446933055876000175979122416507626382101764528491534603603388618698913818362091867110886549020674866332591071656470306601884141836769787590375910703711918312161655470161807813436333999765417581959614403487588049395543002211529457604201851943744296109344947597978983612868814675674284170141535923332735661097465182283708450985161170510141697192501623168932643000198915709782688785365864909302879219930700132060115428528688108623626768046560053973410085203341380100556120970943361201419884536138445993960599883441925147887800611215386849044747352200165681567543284114993625753187478976740206337947605429150158507517056006636789280673761509281688941532780597946665713634471666359169649791550098054851738184367155694852560829548204753905999979951216608798861067990197955529051867861478689147695913117077198344563456849775861669604588688762128030555780248201822284975419319697839237890224353786530399210526939583907574471472349907086529129995849294523404974304299006789028836171025522319281015750089034547821355018837955197274594509128045773398598528135130107669432189503663940233313116051038848964715202625018016348006073863064173601832419914962946026342362057698784913833092713706396313365053821013645788886721130414666674708717039054964316942946037557611654667761344127623812602342757510764140265775733085970114424834450682432570311419540353979975328846759967719535369352218857682077104026614356755796853485385720809681483451321231747085855360571132718664077551335178342307504178798653362848093396648892589339133594103628172131771248139415599973793443448118943625612863114251485012960278316959194035864562718103276546008803748231362094738842467559850159527927350151516357092098199698395049944296369500500786414993330177744512815825112798435844311216020728755117183997655961883370643038299571476483227597337443455883028612493164335410616972023965732673540052738244548341485692480846010237054429779054476408061566279875910511851905801635182390341889664561135474357442631897713804079035764465505408301963441249627703746560710550894902659841519750652958613167898268859750199878977361281551906086383401238247242756107178226734299872190579452271178252817394375265471616465297229905988883813132094564505663528716190653781923537017735841105720829381567827474247291258189770024254012128992173605246521092503794412629309397071900577268490326029714498067327787415985082892941734907676113197778295870445703611937123688037949970940329033378278840837198018556441071775187150252362043140929703299161452931414411719715275323836211357124725471300149751535158197515434131467295249110527156595867925213289298374250016819600812082375093732146959896920713092911007685300686549126462697746855625147576455977197326487937815224004072085280197558991639564701916945073401878520218765375673059622745291437930541119634999138008892811820836160624714907476794999456633922522983535394981492846527442493240859852965799629760177303358086729002893971923904460543162453359289628245099651099269543752221841079217330493765406228961039437410637607152026000751847498944515473635937770965007211188085746476969504675255815185987811809339665066076459041731044657070188494333222850366490263863447674509559643645501428234330300551576409362377378137737620931949190437184218327642244762155003248504239710278874762193208099261602102908610523711470321581615765605129764457265020628965435139064905642993371418156783275554941019109928498037084202374224878901897697299197781238256900926761642455039598233899382658385060001676632414489665282081135237695656507138795810960528576778222106369134236003685877451993978980814948446866611179040484264222070739971697740003359614736004368451882478846955287099691893543393226651063919569770100014930927678154857346250305107510839768633651306505597943635497712794395390026439032388353288774770777711347040250120076218744095472986452059597712429351918929439892859778035932222917120127297117245719773170141032023257996683345812170778657778333003562968586020297807362092192000795867169850101567994021914952143061201749363597107997114414306117475755803429680709045745487080013978177460673531031918487994211600619326315613472081510874956083534582081805083009987232130146524572263109784111849733738505671386767976158315832513305039842643531505164342962906764418044335338082041058198526381526344207781109952754536969472107247822044805887608958606925679910675051611422544446090774902592275097519127206948986482236530163925839845004151730264237307098251909803013651692680486422578005928777082248116767699654083385012418186391602621656607055183874072044777318675906193806665474877501581771899327238881428148885691308195341882868183301890563722443273385994031618103663505761413066098956331844657925859505700691637209183080299575021417759231997474219156460644363395496790100585363411275337653110656117256130744279697757206729651464986580480478732496928704877573415785646586210126483455320162632921481285599831055017341872260559038271837731746744720499743395096547564603395289560155611967777071471230640920292132570566278413534324074963177233419512227139084164510581967635403236042150126126681242074231088040078465339186100297168111105305828124636670283964642606960653688322147481935742805829466654961029989670706377573217207474196933439356750282646799499189109253996405757298362538414618900838316837844617142905947680558152332895985542670867559148034430046782051758104782399847435590651163984992386919352967888008450015433686217159007372632671609261046442870360153391385560258703068531513997536642208839921382763440884281298425086182599441681896147161692601700315525405676392390923139947379408741577334100519300370055705618371249333100971168626946326859257961885602137217755914915760490192958963461695801752923391943553514752830056540135530618913224373566467268799017891943171846730047317411580578131205161268930701271325941468307962015093977146672250883070584460659096529813607400650762940157190940404953417465374800085150320359375212065379779014782779041811344968028585232129020625297144506465110763525270323609296737376203806794951120032299806770201747742493856398738413908526562882345699338794565111981177742024490939250533042926215129680767508015678611018653983940372435426827136264863823807090527703554080316834984912642961240553897339468970184637757047842842179187577500317081127390787758703517999303740751322883253551799567315699476008645387840570501233322477996394458115725202085421948859047032940122060533956336474890414178065812437286682923819373679014570337195133323664707509516426445804223620405799924976416713329204712899594801904932025331612645748941223384393610938734003134112919829953934410972364315124576031867147469882237616227034762841340127426293765729606359612907401733410177764417584723973741445887142192642569138606566615560209268032469597870206917085660070549809563496641069594502360254726496760686870598993834644458114743699764213308368652789316272038865062003042482317832750484139235512280856510552383730112775782698902132013293242864964663882166506532794833075669877997948514509028994487031997547601074905342874662026458672088515649056472760179571220675945957039129691918367074855044030592068840569316102879767662403501119838770202118059605289858874045606827209534066271553828914323133847707731160199084326793601508018633160986490610395781895360322765614151353483646589292350274937577485590694532871899780456247489924246541220211652980058265766402129918422000544465761851059499088559695089927955209929099406283059719046762857562792546198460588197495374727933082375182061610337403553201111985306114600777250139509149217776987324515850418394267613310328259370936075140749171428117678298789513021630721842961303914787726935036919809156280665292535353687459666384946578561883078476739474221713386002203979519160470130714309184518678341925998690778707001897567061661690995829656867694657437958227590538770292446700072931520648519630983492393788244206349135892896934987421119168949977162493465662710054798798538548728670066751193974556732335623442341490254464033038502108323908161850128104445237113816743593219635416588140230780784609128850217699406441060277076640716226810827710387825949492454271873500175672241018384298372473420918854557366227846902396433242611614126488174266578731133186169619342440789988627210885452162002518900802950195119398431954836422998802999958086640716855632184526934618366829671614043626265821720629220864420283859066192058071020418891474044635265883614166854702753332848249886247123979283828967433312326993745634892929474289080586450481314630674055407918260444595927413575164722230355243528918538086779680973762059939791345719296934819806733570046496255020697475712329721626868281935495677085855080347878949293284324392780159355585483229195746920981584369900062223203117285958462587135114269772262914016186031707166312662716291888162488505408598496905242766139551787170818953610873335145624668240210724831882880923044101241772245239422312743551601630266526403632495522340413843793225612920826350507229940372462755616381234244220052903431291237894300927442368587746079989669009645322098299295906148249727575056449610161897406935588278806253301580666880986610410862451750745324337551818865867674960760506104615058582498548571653571062943764776754755806265298101894415204538823939743591577416192362482885506477871421450263239773822230034248808376795217766368265270182416234493355992237902522618243044384297060335590631678179413755948152599552385812492619076923010330631436501407995529444660410978214832674499010336798796639489549215961376509929150306853515634683319924562844522607262075042724934917127180137330414539329150981393280978965133516172311222689659537655586145667361925089712986564736765400891818187252492481019238820196605587479009281229142982234869850836395092887523586127652045247270443137186230397095591429676452178260919477096836374250121379255811348973444022539024793568006669968006083160079862536614314933587478912689908164111103769436869086413926535809959497804139063108415883232200023152069625959814417730479710074822517375400772753961607560376404642949458678522377698679584887558643411253117668156179784060756312887889691026891045327220894568763167944204371048968551277647103579761842559424531740426343667304346867851574267799131064432420752660772420494265345219943488960391284564703565194639087272776370783663339700042708386573476925066864025854691420206884834618554190801472972905059393947362539351428784746212822032795651842030373103481417096096484909079463936468086624515385146878131211145099132419154130109962499142195340716733301093883834876775974681650349679517794764095804157924598148454031754778667169460489717078652946082120281776968349543209419242814006434896733493858537591974806514763908497871491879573993517472175207619703327357726890620622412960735866005561728160030018632811354541985687876731159428256526201985533640225435835864332290324718550600709096500690854966663265271412509246169283678911681416422703396515605997820111990897059600207578929546101312217721666928490807693200633169553597457096565634522082079913829267691784231962832227877628259956595746643413254545765232790363030485080776310741460972460182833917000986492791888808034618155578388466009286640730747808845434422533759351799927814137594811256862501468990629375115896904285811674181115224453046631567297515995666245084834802729975473700599089930936919349176764739695431136622103485776595902027376621194491507131516724272827586788159322713052500164034651966493968668192982979244307483385807507037721533003902076360523543362932874355446181635833164583045575591941426445740795039045832454072817225393063627125312213248985129652767798945801994309354747736562930139308987244213410249594939566906260503836362182045176551726513895518426361374110547924510190394757428075622991197628614286697426013326123818485129191525805840593149387946310279366939989221886810723688562606343641731334225675350753564015497416849156018849550288940399596407096368994180561318827718668308833387752534228070454888907901101651589794037878049520274633356281464101519828253343901454838535590743742958114436826867232850573656743542016863064423777322448600011036399887972950830858756544481957333162998710540126898127508384589941395931067444455018612742030411785470817976743148378468508128192208171863924573901268769130564107163505877786755770935284425958289076055600481016349180065820682044946106177917189445889123255107447745716413162891235100804330577638223636011694122744519511323034790124010792375641448011595890851704952663895737154342498222119549529712873697169756994799783933166888571619037691157100864572771318414101199525133447103211642129497446437606894419768050621984548648122856478863739757375172779140327957927705009467792715039471909714088676271536691557734488637193325361194929659825115468384312970063526997814601384641436356875125735611248655204808290742801661942885123929778000162567315666444227737016114923783818243613886089850597301025190682406743778584506370003529877975486965992939992301685639198023797574558012134123419765208273332068487279726948642585717419530540846405036028680632247415421888829616586446068337694509049635735076356901130910039070304283339906857994873520583052125868488732305389872807428204398536444460437046708332960521975520056774128812575812645251898076239877094951123459761358977335954381586931296481851253447613463391810103243132598796510908527628654180088877111304640440903365300402111320546039852237198993644540632078262472652859670693045328769609458445223781335482183740647662963269312547932618357136739374683201920223489875361592032171685261255851595406376714794843167424869423699615446985027890092225987656949890609422124508873962316452101661688248584583821995077636959515938124786136582091072975385906429459446950936019629974685079358577060978969808530583462535630064908808526559415875674126345128691235795149076610915554475388820264384450524124352969270233975217149526715325699914135486935519098673844892392350599040984505136674129692062395091204911021314921330116384780460748802418711241224536400265462221560269057063434050059290992804291874497412840641598728223555115726805649351600262661462157391158452417665160475763501553163927092830960119486505964700592732355219529747232735787438097020446421039086345029037902077956763110127879873553106358767630152903321035898087688598995010634159133550262481755922596444811593399832168048834613037620589310585436363029972454693243653085771310035483877572869635370625185600358332869903300278461231976520455806216592708382561397580848994028374358272173191909316586078860518778746284615943925709512082682930193542507580799935645321835589288144939980290897171923963803280938024910899575336467519114654895235165711849239236707299815815701399111332003628103423248981468300335778440151979855623787649656293806750434696728956963424777112014265265619446321326326835419149486126036175982452710248686960725686672301272329073665488357192286380690922125019129878604324702221639260252871424361062871882221399216528763328130446524668450957495775837667498872779350524898356851638389014703301479689858868508062722295235457199525788979937866268797635827532883470591943719212685263636674012932984897194801309638667202288019681105282258090238917954359052454253282512859571970230012415040434154938139447410123519484800592522907148111115286276766849155989891554033093006415983154091118805884115994575827679865594136934627738857928898289969321386692629405364588257652209666814370240477183418145285113983832972544720932673687257265728981645903080677708761003298114837420354524785020771959889880301889633095149221040034819354314877710517323157055002475795757765440023154572495333209177563736119556534959649418427777744878095901662050658369398512800982883450693628478975553662131464257747146706237340133154133165708242970708257498194914202893404806364825141556928444223793375214571651146840916210660946481011439284400676826126343803696116112425819313075742977998457134893649850078324885642353024809553379455983168815491264944101544427298973468335688575995587460842828393220795690250254279306764772903702893243102600363596347788412525589537781785840860577617850671041703295088808219499044125746722140201122298275960849659859830704515140210652840660266256354216364180026297461318420622344156609190750651565303506378320898217967081121675369060511485895826473206171932799478490045266554367846213664522656006788395390226903002862421446380806536829342470211579270992691561058651081325462283079884019188389452920906822977689698537273354032648885867123363598436137867987365571214511142141208449061297635537283139826192445803698483079361642419971699989358722890121455084645002027226697678248058215563807643785053819109920035499500960593054647882728621718590641637607478638871139124610748111515886074441471200927506250106785476815270374245927601810393269915900369551401952156783350612309453158499974743591043653081466133361289972540788910298198163253765268323647911930977380632910702721621297741072531435368368866749889071951140280380384246104740410048666713290309005489977156380222708696563993053630400440198139909703028922456403904190018716948650472916100412679793705127629688424726446765112924687273619995778631199986428040959519348826336302758848343974123873488217502224943559534884868490470975571747389279786331421861089980204785450649981868164285124568937534708672747104111756733806136184261837479581932431105108554221505506231691653382235062761386524579072645667996890459225565349176897912297797222779011855317219085517931528620215786958180560265512424801561728670878655818434717753417794760096003108380993916389050963497161950450427331587354917172470617659183352851023568176865033547903492269241686073692433934592217639750724202366421654741354221714647955500895640825088623516363380194683083844521014794857605209420433754407161159702196012223116968622010949839734492426778308242798453567397489057731122670721642770878482424244700073931153003822855933434716072836590463184896672715967737169870223658429889411894786226913112121098808188894106343601590200747607316934093945869254426347381190489258319292313873622742637661237489526389997661361804811489573537589484675460139759890105983908016779792224072852450280229636678163496950933051257623156804460688014853437395450374301382146002562676803974812831930539768323206501642394275741631709858349516745634431945000737841512297984795502644343341825083215928695355589698594927738946054255898800734819627882484545886487092835399947772731487618608670218298441779967206508343258791835433953674593798210117302224223746934486468655320898754552422805547239488055871442707582854798808109569364255695743730284050434331050020269180862167192807454374142558202366801755714988915681985137077307004732352800297408744281013214919597923870070657029195291486820215085906604108905096638288461220160035414733807114454022460599247270224879240646848701446347144019017704890275747575261809812776356895961945558066229730885246588201707841077840481768024051314009783304493345187291008662840132999430352410092079936145614486211437680199951035867548041489479436723003805426978914221644254342777513372955201299592824448025291603790720065490857104817652199848536093651834981716634183401902115715415563688664478348554780435451585495019072979050575253149824093157339700698742336959842436584095482525307023161063839237897188540975338459486736721402465293964454471208608950726362990107294776780106149524541669295157636399463342316282331742470317415704018994735115201597373099126207888468346016402484881370812492828386444084292894279287682861742866826064856656772879734251970624628528087765961239254494739150312240044726753736398475076599779626208716370046446108080902501390780240124551578607989002705663345844551635335075915970367398406130526512085835241579671230332505396203666329922659414381981104753342983531919338801531137545234367946455925549495965590572992227686020461872668869769424982173838137442066156904285998635817846439046434869127127938043125841498754427957678899621427153453689039431742468008877720722363336087704387418315904226267184078957505171574815379071348852764675788346090280600293443769210088783827538119368847124863376629913339140696427087769628034181441847743047403558650262429717046624560449543005430197233178775513380144216126889381596017928420958923364290040896287005661216587820374467249710436901464101812599979751838724261356210364320436137712900328253765962495679111955307041754323838432416450503802127454782046757581033490584433831482542222454590592993004551307017503440943739738298857667276749175341284156756853047374739547864610053020349233233811564059720532874213245537455768009556655825490415091875430768989212461700563176346423021331161597251545978983954285516939610100393467460832701867002345513854549828675746788342751308920913974629581259061360558624533538361123812528923795907491387184500199687808854234016766715984492463242483784903884783912539422479719477775192730999118783325305739968701133711905568194477197136451523132749489576119104316950638537347779217277352570436098368767729706696531215906982198503024557033160877490723850392542409298738580761537103022648923217203155351724826870305288858732187847432143387000026730198817323179425985201753859932040461696183864773489149030503592749752124925285930976813748227064645142597419145005469299418277655893198245267988966961968895715207448138643263441362585699491395790014099669989364283689771112642203713988669160997964124193342714759888394813257450774686844642513532130951883719939805371689976214100462797183012913163564450119398366573239647795436131294079755485495281728479103635671739238706576202122634755349068702252330008583918675576428057638368491219488193741991248505551487116166273288560267416541092424870165917471561921430136898870683018957759392319227916018773761648035299683315373542357473952278016640409538594791052446185639138951990034145421310599125299128750506230681196969818855273996875227168811452954115134607197862178876477510587277904328789198037581551743903284052631445605490436600818617339005590619618765509983251263970266381100773588126607080598049419427494414027627440873277156011868218276189991151624191737535757314585716459882258142743512775872871049683113697820378215102166460134587128442965978680468341381577752649552719444586828555551624531142160759168926826687912518930547341343794522709707871025906898808314950014817033273529794355951412189611339422255950137486323114486337480642524764087144143152909775390470719621738605750687316872113929693385356987908517030033259666476757071603048066267129455335782863582021117221352084498570220557838790396271884348336614476035249584412762346810668959713398468079106736236838860326348635306954989936203438563589904495783601946300991605998572694265540786273181329017996994091177848718075596911702817487344209640176349480020070140276283528334848811608644063802125453083216082098469213385193316288613263612814066095856449790094528900775866933121230142244593236182441999053126112795277573042046927578139829174808659618959596578385251898817425529572284284564088285477048663505203682365083841196442504868049234450675559871560327764553221842011769427794626702678235756216960610169434783578881236928088843394951957648637598775751509601215048848206478726930161881656363777638788871221268811329253364249286362513506977605307633708935500673577528183758720999258199581224603521205643543818069405050088187429528013683932177955679559067698169269000772204365597891403559041838961527873658831567964421254845892789496210609191181861263927088150294366401973014410895127740674557040214194289741343416384737652501057130764780097691253426814032661496855788402570289481897908690227058823975267140813889358999220532645757332520708632168592005965740408291474866982534488914492137577275899861780685699218459580928743123721227315317028113734779248253926509275182289548217457339672385399995749063780131810868878596420437660059561358596127690392254677492202400126717529980358167689679000368895839861251748036625337919565463748181406496545223004699494037243820475161696817708147879465385576826934260227707521636152556653511445229221660956284650989370312269310370233352425629640375365563768878587901494492889164908578897907087822940997309206533021674700339247005122850869991008261184933021856794613320799582355250989261401509388407363405165357507800068596099174772766344440391530506070585980186512110573249011752388813381338693238467295253916713377150738615756264829490240641648941791658742628482624584001293845332170032859432642547416522485802723286959436065010721135520019451690350292563074237268795618773328168508480478702824668144747665430915552794194734990552646825822920255804196514488611884481563802504102722956137906530234956606316622390044527777995459646988810572160477170910288295065360687455128184468321484235275179799144660290459612909249733816425226781146303107247461598171626725653454205622365003391288196130636594867629715910212300206338198401592890215269546978581118806542879508784874911514364134945578767739585877450217571128669554586280804180165489471046186931958806574712199494497759130469127868119726211497370963466344065666054985362977516461840561655421426901399343991184654940768335183668994697979266178017568931245984455669487489574513438647266673178020383482505164490011425014142505661077462325119443319912027925381030425390645291454631420228074778490675650971319468823375408650974774786276462566593243653178950335567375030370543921982307996679202768751228498759598238776393048142354204008009605104799645947670050266417150216198749031349421526664757183216124743934017970752781184258480680640221576834940458545907909861562000158933593558383577479798278106612062505166510788235070924404730980777298079751158138024422294717648350840702744657994789258189127025749317877839419509320116825797286984022021807126230194409463769569774136415129713480291621753233723641044535763299417177311511098646527242672169265199346276130693536010418464956325275245084402723555814855997396881890843483747697933801963053610176128169603184586703267319543752357922219582369190127125845271568684069458882805853885761786743075684168606664892733167586975339620520399095243192884318411092398047346272415705935429112079116252276532323686744242165820274330951338490038947731862698850401951583516402601341854077114115583781899808138130839736239669904951234570979728980488522353315442939815924604493144778630885025856824864134569918665938703413571158991718755097721888216367923363786765648989025634260606748933976199281129165741487544067229888096722790521534367376838121434033289075597299725589938907398173641166142251773408274337834295881972946971183071788844325870108109417201791822773690124596300776756606294925972581945465319758384146585129673491808789626656059783486531437612360610906978610922426864538345326427932000890623249865851412916022005561483285974492760272142982746419977110284210784941402716043371558938984620610842306225851160988339132458501318701933112472414362733144756989918684937636719896655586803138560216982764326836159094455071698994801928643270996018970498289215988018922225865678509346154811269893845640260941737364014910038082253024216441537547197194886730621997872290024685053175777759930838061898404501139443778990143398469099584327225339850743135844974978197672151703315298013980940444374995388480045547449761629383435971126588543878592029604136727934564067306109900312769360183138825445584010808795075121746251683121266742680041828775830625532338861576535465423240022605318167077744674754653885735320973441253564758890390857525487942900784620275123837892527615306674746195698844348535789686783617551729884370996679149639060158143798582359097831081537109927144824647342089146249120471393314932078066886298456978692215636182200890915953038567087231710465508204125267219513073087722840697310254528893977285307925813728976650061597745206704340687254687308423630400929330672317060866403452744492892119486882170147415459807994989874470212540209053849286525393368523586275948211988837989767238333995643077086914391799044210110540078347598523330439108758208996261222228341348989262941379177921398177739922361288086627553130913676308811373222905925116208622370651606553568581662040885958777603852328073318159371320242928045159588794446290147017717936176818773320462570630958120660466325714331560204939221264005538262864745763024175603849234381821472439605996834141805675539729349743444631468542469219494690375136364513111917131963971221735684905306750598971670390859245200250755036379242206841959817605120156787856059570781088430232237044951798126045873409783386305461970500796698381689253533814598923854019699407961520896778073530500612802704882812363334740987583265362226607858078153893692610824768005426640550506473081244839807972245992268940328899537216515073930245140879172555328452044788808428677068432658746087920361007641795961900091803576535933510421471472836891251032600517861654296252455277981899535183113607353376017845076102158735292966780477583468079430873930086742365472232099859646885696532833748436726434712058481086355575414553439380173075793317043884739261975637872827468485001259418110800969756334619162267384095852837971933197811033283196824149952558043859134971623228810967153156459559168250901757016751159176529998853340562347913271512718639281584451029144218817588930326932691824485424318456093732845868929574831248839112898158019136103074530041566674922978424344098645043520180810743831602360087478027120143240808488717237112851702193797259681051391827349063509472508418735752269815808003739791613577173756096438364125718562365881646779924713065577469478044315137163297019538645395150696669613158396154671089150703309003036399879900130908888735479553108523701285185557204081822036923537594674921098294563112062870057782920879100960955917398496540759351084342193125733141934449453678069702529636646199422510993011429543958112118460242833547842288848704977888885246623800936440702519169054749076694188069600984498158567869023039956325171692945236686040861821071193838937046855657200001301334114423692346452759872841650786287590097738474856277145975048823800869243339878976810193400404912013552373472984880991497785086474891741613158026860548102437841816309054532668967340697169644238399202767538062226252471744207070492101184091726364315519989876526305744384797716369477025618598825267145204113353936085634822839313362872421756320201375933610433184368635161199473308440045139969281207120086606553854286820539185381918823532572273074741342540802291453091685819258410789423216288789898382742577571384192368606964405481847135298049434555713419551979488989811191033717443402613961590804528417909791021326294954892877278051145657192395391800425922046255506687660180801156624532720827710942920401719524171325068306339155728221006412771528872441925845370436652012309991862005280664686552404099752358407997734077549230215903356956002742079207898556715878200688225848706298839308343166257252621098046798675898902121417903334192143649528806046893032217897695435960200854008629508750384188604274371915262005088192579993527489702785441820959016605823017027311955549274077625031673246432485673309783001004284300586467459284514153173164728588613328367068995974607217141400395642880004384360762486458621349768111677737505458701539434851604647367820775365493089993275744403952737767371351615798328157582678399681848449822740700808154677149757410394960040912647922840507762034996055869035772085454148118920414031340046600719369074870806217205732373393418216259389306056327636370840023371624768494544638148419792068323178318829665963296367630966702521910450387627002355696807590871784585244893148452715449565234546560956106207723768287065021022276729350118647936326326733006245412074214523699703343628486281424903230911859601470125217866411538120674913622241802764045334209799837058346533227798410947966327019216436801414826105906424589797375081499633530188802459762255318349996067718095678677142474985332921908794729171896600086870857566373263543393247559535557244645850141290598751150616944548842152774370278326685723505982399941828553939462634251564186840356900783948250533065718022455065348253458334047721555196334270287188537087195588254813609936917630970453869313976052186165444230173044795968181176575633678817074381854711720685439431899526913436038566406778164736498113129421736568750677236052487931812145195411861479180187772461997220841063588993148489772523842565672731759454289529855244315241236645299216813808605751626760365045953995955465310423745023559739041043933065512281793771621830184043293077168972437261833149776219359370390950667025444953804079107348290027071999169798113124249141344840956700948711277676933178842516320438798189232746863030186971444374217132574589285894928968331283019677846045565542109907750160333152957011123472519136822573017014245108634215748909471066791163574949265480806055634916291874540552443514524437158189862945207373745001133100574818552818619869611166551539386847710418233570782734782512112033296576713722899763307829964034396278899718152620163703058514945285060629385946180673913589462711494585691295852262213875701680199786846439357214952033357202376846670474247874436205689698258411449994996686059258270140554226055157348892905328028074744809008759667418221488792628960436681644720898116845419116186647134436941914128899692210784882977096883839037049770053587343042982723452818819856336082010985646541602809745503688336921383757635177881079083315276541079968632889009805802241633164365779234979132530495574884165010834921352915241899143982274570098255766455969577231277213213330514358291770333225967671419920496442459653994524273429638590225212959144527359393691876216913624714648736535203554164629299709955076563580165247974113751625867522318304806475298619204410460613126516335620517544805100408912737064656630272840971147807211349355363561976231551080607514322799258313190643111517180379168292609993987521771186767089882154309968576618293964455361025699700934237487815437225088228805435527623950839275247846965081586379138341823392335574980961896302840873390471598150249125999024598517437756487323436779716037223753878861407503518266015256788807252175426044867737916562022873431586909600247231512011424062488172104944527270857686156685963968104353699635088322299612541128345905017872824384384008561285592043664719253719664015890587955481468569708456935150587639710604741501350489372276950482659388675730681750469808017297840846893247763889690951758795600474963751369512631982391028014168589395663678100598826006506323164661845753826535802161864674538304708197796515973573382376128812676350846446044059753800970856173022430474645795378394831976882811095636162036609857838007730930578753430738822693903329036499427808338285843757622373859413295970295266015416895116784510307061595096033153709014747544751942421754121796027054230223809016407705385072750022751653730152851678858567944418507896655524732804118281118523864571958442964697654433275640832868511050090448069043494909025516356476938027673566595618232840800964128446173184968600902179398334960145361600810267488145681289343736378007849033073606995380375088947595182588752598043034807880514112252889402501859429606879805600456168061113837482546449623498122469808750580554033706071188086221007219951416621969159441501846080963858852953877658552813014933752485023471949706266593219820960157372875025664012314315356500142249148032744563307818456887995024822467823308659321678576404666560050156026057709113473708390795692437947794541533012692266033188668262297885954264494249223991161347872816614957721772761249147315627336573338540193805266911189259211825316492474804177038890599455140985089584509092984770991868052369318058572459178542252241110126650711957387583891658274027938449026635637479930174523559143543919765375517803867038493543717378125754384118212142519321283240418905137993460607441805270598175240082515512182695725391149007739193808429042713503240194088136897476076613111979815968632842143040542614065162355264826681845302810795866570803252147516977881067036860591486341026127141204416407973673673477451973352494641688915698620942484185433049054115430282909873296740317228249837131218251311582836652455111473891333086129066706821392150021481595668821661721005690742468662501086486898032486675505971927034993304842514079184092946793569671494072261394721794358885945281424904140080265609269763896220672534517690238289910313657696898174352160038400398842159330013967950978860230664498335398513476619805147758819691684505755205859980530575884187516093600485472413228597586085113882076336887098315679750465520012943088512720016145072869316793872692133783374684788884856061571638397889401182482289399697556518527544418134860829180141571538698497903929274395815014742337329172039696883341018760590039017181461420216545169538571405573859383409770590518228936861858831885633118901581002261573130766261470711672103174569833933248239386748458648593347184849766011643915380855461118441807695028871255145562722659141455569786570048565342626518570817335946476708062672529733935592819148580421842827663511826494025015851149134643788585065254825861958572838303715622011623644355984542846603744763854271866520056402383731076727363629411873671526426891438158144167568516955435662110182497658393920262006765803406985120070459001573926953734371419417096429470735720487467365039885995017543675034337267630569526045701474924218795355552352652095166984729987743936253465583350047521950856361854127114496493868248968079372862436793218140767072187139684311216285352622370489946768110335201223517647370457297303611713106537696650930317834605893511914203078497945403360285794047383492435151069079317919584807786078749929835826698161385821019794101891782952070123459366147700384290555907726567181964639198772598569511494983491726374519197057718475491993078656159736890621043065000915715080972870638133475049079499183170574385235095966957912373471369482549031448770610018758758510144878584512154145257395776193100164186106551654846879803983301855692175922975917952580368121371397222696041505702075690768924106544709135797604187417295866204149412376437953776540393139168113118335731241078442033698862184881429493540670593129795400500228311386601311072382268728693931627816532402210914127408286486966665623899528568924664220634305390687407992693051812496119057759862181331832172953132233849288686522290012505788595839907331231691305007964080281594321665717125589862873140651987682643805746443823930008609409154532194611216875855159443112087282141776377247671040905410772204934835464163092670116571752573725674719298373336700497828882875256171354096976999085875969649294628214157282098502961162223351944833093049170941952784598110252906261434639347548880045205445212314635096847693380875642082045763813094719383317730122675145425858668598171713913236842900673468134442027937834403799708231738182585395443091132856327589888854884778420697496446407346662858306194066798576050030516274608287550796546484559603052396951512317599370218428018490075679784960521977470648001222176664633319614569713439208628537508427660449355412773383310651566992705842449302005090672613217978687704051512538040991901647509078879154510822014032130078940495065921658709025376565913398196482927326582223819850601011418105486371255975637988553213286897504820722885428235429148899253122836401028502841929663644081668803825223712188140535100649743434098761990881514410965176283931318356942044661491511477360592961219207852328243913675947133923008690255693893934292815410905020845542712166728498879951561702193017634440487823960055406857780653469330046875026230597470599478236619776373837542828305253314769346093394934697709191074106078690687029730422802042877766095663468721762693885712508343590169447731238017106641801705937653808211948442525845231794753823978455036805473143234961956352541704596432971584924985586659781303239292401438692810838511315093979169509934576014917192401764087711653966170544442703808138823999318426636284042815514348996852989603743384625022236574248533869941982228049826107503834455357975825341971388490895851649535590224080282162995828519652896718418950171893267998556801080080641153201388242263430705409167348393931170815286960030149725917917855243034640951819318736729638463675596730057671962550426270209750318032661751856713729536543199817891645096730755209829569613551501200274460153353422696960094482996746810496248763744960651842907925940903357383204499856221062216871347895422796842890375501222426364008264662482557738646753148667021447681012169325574521527795085428913259978749382486510379443588278480004903751559515374793510416706702886682098879290826716183871779809634818471585699855676568344938064743404259833069755491329013856529130440326199818480781242877941295067962324896760429116188567227358791168763968461292565143484801739405773002880763376709949260602270073387261941472369289651793821895727336526843003911177894889823147567883534040426548336479648922787737729943583473551548400797003022011932619123101393554842497556027167043702445087306143959281188739087091593814569160468937040175516818878798899357703757503859216198860928925638654897247214922210951216909584675961544213684208962337765330330235405477638925327751231557422177084138543871086293606772560396818115028088917389697462624832476843071799343052898479330849064899403932939916812684774490392335111072006411477301794800038750906770339164729705200724818471230317024152509888314588548050142077399357217333175820421921068805470466115526225907271325653494796227789021995928042871853833946938470505004688963483478390936386387297956536880685491811051387765949098408747681468750541041156061325493303655414890851361742068431515377067402541385156414756740338023720644998846800221803821647698007175440967417506947922319929932349907396688439321010630375040422842270144440031131212650206014764022594999197817322643802254062273123494663594823738456906855450765552192689734579516747208263666513863571326018998565849919901374487083218768094575011138358274705095525843705380279404839341104706848720595495111360684451559597845415979837909825907331949403696451835958390760984329334015939377374859646794090640081256822087386961667658720322175779423980774627500519030134989456410034731840441835199147754080902487182828102848078803193150298916037289605112248245971928347647045110270729580151920777886641832339333232909688914376623104841412546225636516215404095981628960188462136113482956428180659669919706657279146354531518327955302458217792002783718702529809322644886478628169634250459326429278158838569850472011264010031630045291394566657431409756396266767866976156656190302008810476526329319888456619352041431519580449104701374608242217186967013972813038156024575295916481581080800779025944348674046342975742529703259138197280861423737827157020515458208859537031127284187816245332698593337424680859310832735758587149866811808268108326715334794933038683355498376729309550583185939684221531967386807282064450862253745287757404552213853693146071735868239540329421172112223611209035295838837585541247675345671972682872921111909867558856568703794823261743794458403131307558407304375294066380967291645680583251704861248720757094737920829584502812902517290998138840905521786143649085114906167377069325213852997373141623412070797560382136368007816230002510384294476103947412371154619802278688692164450541424205323772904976168614321506155152433978359460468370831619883754638018965654529135320387710854535861578870976229497576249916141996465664166066181829044833422698931764659441961433508004121214769027745637557516551566959929198699709472034149562685043977862994820750114916058707691393781441174831983670178484957649118336020704306910050895488596217412805425279148769910949941540902584728103446011202770676864869021663384138836507671332956173335708707796977046595569071130943373688505795369807344320976296497060654561216990980281524720865075700428848665278987421292215699000540263850999947312556331531656450313038827478638752479551482719376230497787576374724924185634481991524251409234097858098174207368616746149100013148150102078630518890609240310257941053340346305961280414909530017884976869558705898023057195748129699696227620427008948926617479263251312171755886992497107143768894769790609255009549182360387044320725572812153378721730655928325134204822336750492167988417905181495387807600943927674503019216566523054958075017977078744903866833875089709140479680508943662682013159869993256814656091539201634113714613665635203635091699721690896562109320979652672696012026243666609431761056796574308019328645443212406011299782133337610591103588348253221114638877511641230349990693452456037181902342369608542202282278153747552165361111282306085012678825559335891503133851514652819746471679534243839430144726959634214981012391223021569954645227621929967875210576824620344988607283642260438659928128279410748786996184027662744583802530061602843665392754264315578049943065042929129956308022123201776604949104282227368063450435329744226956274997680630863299406232084347578360440650578055094114960818490985007068739035159628959573258039445913384082431360987260349037474139895171579622737033759136547684748615563172698603979351926693067064223958349362534941027534597333444242424847669510225575505143508836069608792180079363824955937715083007837359085726333375331363723507480178311674306796322428947994069209268790429420703166456096205705131754307471154457275833636705616028358901671773388673901966694561435353714969506927700424566736523695785224046071499847391051101903681897569927741923615329478644376243469333196605701307468149941926455275068899275664320725008373184178279531610013417853660605194944207534459726779455010754416445331214666280338414151056312168454998308854388931316509260123010947042620052625704079840540672670504035978017967267054952992649569149538039419305459697157391808126679417365223052219312024361575090004292734261135040980681587806153352129626436064897469124989582646528785596507018784735749669380194738540234088993740421647179326431567495959830232803779489042251099256948768891812248888961853352023270446577133163078478290248730880740039328195779999237047433065442806914463363478998775531412243586133813321783590201514619402330290109871451739908890326853619934835509584947751275259447209796681108922780346750102406341600484422631174295213598098479671039001710628858158725433476331775843940464756782392921841589982815223729720953888861085164823272577485632359873072112099542935367899840961978871916788535503957262399413117245593587736634659863493517095606821577222346706794276123301342194854778123218704117306856421806498637086001379480219674924790434137090721557155776019710529492230705893030043701820918388693403582449804624540215284392456939882782261345207713276322866599680135248381643929216273844948602251877609658746652110904026520799220150448865011032694313815759132975738469770289998716869410039101956084935123559505099708170357375192015268190694200431676473184524747269683418295426428691267254285036019802023996568537660616711849025220429701424736712229134041653365324638859214755672574650296424111119392525913297084775532407458349522471064512110974830597989661254379759420712041102512666948555201806893206766785834513057409562046069167935039885216982420997176905870038387514215763008568376377786500940204507667575587421684748772975637915722189497645084369704396063500716828356429337400323398211932225367696652257928383525556835132496654746297506486964945028417163247603230906103095268804883906977654494661414888297533692844290423276367753857345674038405674404283292466532798038831676338806716908954710739835746042045329483406734958166593206885478801011686437850845851961957993219896984602187433063837157314609510762708195428271991027205819633303590221941694919560792355410911960158934922519467981355765515267252573162267508218927958861236284125875000099794959089740365916433589101369662705674890278920953367900426839488002470435767419518813641504442266141890137135794604541752163335845791368177893743818658729528678345421008910731750061181281268714046265461155616413601048128697118668945832058187918825642070820858337922544529975099650852916391737145149772073290555459183039860783698566376775891168793089371584888896105564737873684177949903222623887129460067877713059688697435128530904282332031771367232171708779579439042927973502884417563534108658810201381172103822650477409579249081740025538718297369814800044241821008826812445060039479340422323965750891199161452907685944742821368694806332433791098946651141377737771933291776684602457817321053712202051771598044878336537234707098403040538867054770944038823901470176737239023106678417476949404866914902965747547791690026909888566940309704329028973319551923418256444308382502514163105431186548529938635934425981631276058359794649402720534336636516559127977995894160775734987693972226991039578777601199601556911306635914496061143414297702783765086768640473411831504504065902206033429032683008659442588486263940585950158619977858377262616199324220124741615431439553751892748102042008477313058136957641231134300720597065547345354194278185532683323439054891431661050476249530432991578479713985114030805794697318261444681475392291168951319662163716038244802037702828029469184655804684949397075508283136033958347774248599865789978714598486655746070654117610506596165171282579374444473573348689467002383534340758343243993911010810941717543792871506531109430186575588234504168090528259545495043631652619861247544596632217258328655322719314474968127936472939500020701722546390670897419419662684655846083942603209174719881796904405051873762837998413326549642277544381267516387086762897680441092707267367523372255975564522137534320383543996269179877178107291853357832578967240495161368308428514520391627657450159831244204771946448173414041052079893091383897001032353799794403669543928885339642231994646385166599197590345399706592237115387505389052063440274201250809328585106314973788722027826868106727916735253571448913948146773999340138486769019065712631303681701013980521003308900354915816800502612305821354098205385846031018245212702424444745868542798183746789112793129100603881448475219537017823573380647359704913130567362361019147222654002222972269270117413844411896020867716306124861325351343996208157754700728223994417865811831211700519681069067053946574838685999964903713227565577109858382833908909841048495581919708449672277156412801774429122576854671696465113271223082456034324696849066452221969412664495910654254020326737149295489971174963746340077153660261950197057501284603632983516419909962455822147305309976732464938603759588138671806019488797113809752661771099773640256996040176548027749058800245825337237468059182568304298321578079135558466180392769454053407590677872117915402411999231376865657385783604026786893759337154853546694066240427916663712282394173279395639025180584076787365706933887248039235454336990991520077495252541273555555978541247422728548806461961945112804098119679606005937401604136014794242992084058107394365302752618336148586092571260672909867529304939871009853881444911540633520329418932093005567705377820575975786572628337038590572523156745685536747945977243281846701564614996113662664279841266295976346683833873716128928472443963453815069638174680089499474526733598299763400262469775708458530518772107936668906708837448548299733138724768679405714894850741828378937662841658994069980067736107686641984418454638227822213027159728254160201599669057038604847861877343661618602929439602957235049137266964923266822587657104728678176692649666691961499453352978437385664112687143920148179985323327834587828828195523374973235804510924676002844107345588238140319847033761093338166554683896080306682978027569577703526942883402775690495355490312629772699395786075719671040314262568050276194191954255312692610596220055658767729304902075051562527976682006118722753398995258392980548303298692321308170953668505388900992280113408700619803357946034452451245597360486691793275424433360300623338974177208436728341265498865722302009597846090319304137638891812225718358624997684067526990141327884793013141609484435272517392203788116012419058963677982231132139580015699958484442617968818501157322895050127505325533316525054661513323585724610372988353416089255309468859002390360579384336739514156020385009291991297781129886315938099067094314455903854989569055950330870788917163922854365812279535278079341779578754109985699589312835734828779578599085491106537736086054192048697120818634545837103317117750534851576110264222688656984149762126341809285502284703247439901230266366150263718844864500069255718930334789998242252071958206036527877962092072184936541820461860914543654180369079132382645458470030885091046081111060090149789503961124380638166117172253438162554538436119722313995555679108899519709131995365472855078526437416839790738722355056438779293636791965105813167670578123561222140410547584832163197540068367901548399122539433950921931893035480835091122675913525468861056260389982587562940843280609798309119591773637247979523317571438598101453115753005524578786627054040075665853411543511670604667052155516389778963015036262273538348001852238149254280650434079253068432903846933355773143635624741003527056463671093568489802735480656410017393640992448293769062653447137862184272270651836782509020758012611731264381216434766289454445106091724300022468201217867528188097583497603238755864580157820979174203302514697479955510695872518287781617343056776342790991576666264161045071396289011364346771888790559382456634194220692729073171720585495794886461900016633148374641294352141107009737375540376148922858951818812580418374264075448049804801869619747665463574835584705924574059430074461656324590806913331068088529224626931382546986673890469685441461606637936614539197154264925244890617475234281260250674106808734498590967347647306639490162282935905543298940560585080310866302314896863010872916673597181447621351228393357807988411003062111539696277409810134433410652539232158940505810242897179650902172384669038715867702707999698755641811543762656272969776029447633534360540990343219618954339838886917646507153666954825459425366200550873379748625531017006990521940838477732370746485288139845865719197841141993438949777718767478078939618669899386695892287209971631292676977866493186574061530349239426320074300848537583788452730928765543985353350547332445817220037693545972190214371303489641052933346126071807175303081505430487477726945459436400204053440343888057834673433578545881100434140939672579449098179580034132230168937727133283156946151573800177245082924648691780385246378033689130046759614731162286273285547562007542431530089526953442783211002818034729755657398947030455981149035665361952076759508074940471399180160005959788440839449370809793517858399850108878443457719977819337985076368712876598946218107293279928584976644587362012635847250510084295862032243752276188374427006510468315927102331558459726831363077328567457740078596609211441369373346451788760973334793016701712603911449012306990172292174678942869357044304929278862141912884028438332545099776544233339793420902674830818178748221972225389282481670596664570420018503879141005635042855120724225464726016798984800554670636264551796210144059805756539039920056474658562924199680105039452984048674849421348112217198501531295283448162895393414647146361456407167880624924372825655467652052897870537420631536224963747024575392133711709499049178163916318638758630972885359179985572865403875597948966816284621743266607188180279306991776181472755083769931791984047264577962028574882943753992050767142918100507383264514128390729027987271753391077948700802720938643221747995423359635702564289996507141512280288856266407925849391134211947595386475489985791970515029114379416019248062009705667891500436651179705038071040650385525352132827263473785242545525153719848670308592978133961488778369096897811119763046265303969422399871216824343686513432814529430182449441290157416728881617727643902056697375351637691813649642922144824169547722337209870063188345557447741225952644887514636027088143733387622277329623287505100417257922616082659687685138700226738295468855241329527022022196005087941074320203212344249670861755364370636997550349767791249184174154078519038894555767074835396429863779736136571111606592958745811114406789870618041928683494917319937453695663817391901817261646884284529258408549290299674283166352737419101118181131364785789982495146620989088653726818081441668309218120455434552636719996174174692015195694834133808540008503555724605330281786153117903843510252136731539385692918437417694114077112408162035894360167832722740060797513748698709895340905149702361971545837976779766720235702467126805415757415349205422350645903312489838446063303062237714655140141899901473871679088420159721345496637798854609733426056399694501058020004224221569930920497150090004619657261785862090219557989071920570052059799411843397973579675244594024159680979752628827947608450911730753046135683911992514171878666012143752053463128404517180538564349910837026039391379623428044426483259658521771261397843311545510882658273722593006120406835803296109776861783567700517579743459096098060768702286338543845066851408956637764174756422052264123747651641331826741238249618209630029863644580862970490580628269873026576498956150366799500207950318750009913276672862079409014069280904712002423781777635062209337485161833958872859788982938389849222487760175907441047021601319541121644782744901113370340585169473453619594705051037078423620923847197584436266321786728567780754524852606695431857418040275162892697006716081934608482088383331330726433126549799136049023983182480252715796783992918959179516639732079572899822083654269837963617996319479729841394474777047212973300430229792427534034091655483715545341908224810637111719888300337899423650389626416860110699658413940729660971586733115121921432272994773309352654502471413481336708214980764645264486230590002920597626282320354739971064384790502402694073548081136200062366305752890206519420344996654136751804798045892913197197674880225410722706598707195118450512415266132617644209069321079098995679096503680454052294360779264257497411823847671987523801258500197768376611401696331361327025888823779450687463407179758087497992085688340432361090110983475517176059300699361958657018057880550008237928970304612128206849191501603083255003436022624451560653969570201593255662967357019686042788252690114274082080175126614629414031138145496930468895041352677328535401405846270216213661362097661701165376520576085611769781477042893477687134343418958732783981461708984825075106600018082490009298188354232496835595595064496309125856151176320779561547922265853711872173801658399343142015176306053884610223564032509687404199499577037822798177114411592132171993690650727963244454463010019095750515941826339780873092483982741518154371042586476870366384234731621636994889373492280857315455149139142810176054512037963712697535292259800479193655242546177057881640919154089145645414108514908221882512531823547844152746493681398672303783276682983456277084299332694099567689057988344109065264761197662225670466829917491775804236600713808514633316197504711716091653197214260362222132367170990906260497490384765891046853712600946208121680667500587624487882116526840055488288360299025314794185587392297696154121661221551796193021929496863377484974771508876384120934104890781368684763814016549618896360870810681897782786955025862655149663367971441472837414887240930601603127052286183357274753450772375042508364600239724969123642251390596894051419616319109771374318176772264283038487915197517730636479214359547832069541377918529013865077900166015204559908896187684535160920182264086259175819162941389066502551048828533276189936310427886493919372041543443446607544261835682453475428190458953682623445452933249383819178909113981918667416793307662413756228706047164422197397713395378482384584175465782521085407255990769785508803931674858373579695692714522152517527981099626426226233376904683953465800700940251082063754177675514308930278412351016139582455631993895778040507019725471679092164170158495542524455140310540785429865748886740196093941799234264890925884408244565681420181439200866100963705098667936040877542869458482253817669014779271163421342247335390047039384278628642244613264275786422425582682853739492997701263291235870241293527172065551192178813134587475399139448432849663216267729526485117940626377994448055516825977481688286661905462887470230194500745195933277260450704349750246064192075114887400041844724772871161525037111304555977872782116121917556073394417473808872075538553573115333855944156219199081418656396502868766749573771698574350003620758439165462895112748376660784280220530846104842482680875828709543725860928980116277018305506874431371077381805022342349088585075940494340974048172111851678614798492290469070594948723400779272064704127241221767422469082555070474060561752022600675005774807647255200441135878434163694000128575137210170518667306964687835409189598294919636800622373952558210834225343296278002449549876672519904653201046028601750181217364976545121425274039338906680664870414752891431817464994444215182905369001174794563409395645787046579168972241556326051552076739242650878547437706759412249854985260748934643933440138076466133680852817020656051386580214075014872922923526130910258253990381340040155196824523770883971246072182977120620374364922069691338687252414750397336248438728460817652302399907802270013815187039691955517135204706566680200915116975216822429447197561530675063690333759653058280012128479838714713684791938228260843684971811234071204769616630882706725901815788489764729170770541070617526982925351078923462951271281927562717427603294119760801496146595719650580496150554797723037413423541545023172956881334076612843841524837982366133963187774167886176229073680550701681056521652427478874955048106650062172296264343090583708588428445104681398120750003222609734175171752360221625740999396522159107770104890911522791546432258108315649900519544390813230559854464444724630079795710745336349911349557190280950246093755760904877173697507577462612504873189458501846786369518921522019098736030597965209556231389241236079690197443510097416213236567665910352893312445192923448923001223875686397369084885869738266609325258662521026021230030592123437447931833554612817670704062300958394013693530301679329059178648382262593073362805291885404224743672241188386482953857484724056432888607770474787585286738755513786818271819235616662517927029709949431803123229809127597535333581553208304597264100656709244355219040837971414466708580746063830309523787722925687819994999607493000839561482151584684778730832792479906672709758344462286545137603175039727209608096081284544908047858061989582748251481330975493170016659349266908668931623294011160488384221689634332315805201756410825349740126892354924121471246202175199336987066417283529631478072598084295791751319673353773790029643616075174609434740367937430173441724190590834489766390633355541414049106468346211798268574065626568956867732756224224593027529163136932169876859373872056449664010915054555777932251894580916563355357613913097606446415850489332729119395660442010716052267342002337271317304118274236435496136084998163773267217709025670307472863296111655093493187724315506394761965564144118709345899709137724539447110576600253880634116687860507057947425307084916373750864303777328234440919160346503853125087288429032305320168803053759364133486487667424538567545116669231588416214616338410397091156359117775054714159886192510048385304981856127866624289857879281666191285964153097570446801497003403699482410383909801552436772729033842142180196495159366428542448143039241049425513397068757223351942518114793940790037346174744645946277585348225785407951039003575020757090387421093594091131116777483639466036872126428167055204102334148379499811910521409582738974144585770941695318999914827128857774156520786774739473236867677763430798749196520719673835843222924683304392402109484512184278634608998112669943620579632823311861722921888205432912001115735731866422487101989589025567466925258771821899507103670512250444736554094801153940640405799193712131636567827875514594467067147573499659864827899347556421007417643618555778308678376623779536112525732638351572387276166674271235963598693883820671694194858203509920332566594580039061075309449286875326535680070240705901917401112628955545001186954642380273792849769814343322675485706149836217359162850545531994079517744430758425800287118587566447776531136597189906324999887835224563798262021929613588247836653745142727608264594605623405175640488569838652961558960279704732092618399821590199567461160212836414145323431085346426470024726910561213730886333166659143407631972730256460364133559795121714511875309497929223818634041750894941655549107036064025538794529831540459709161930795182103539410240786110569813440088943015216019735910467996545130881329989939968121417503666141904253310989266785956972052649027664383752894946167182250093650737323332275093872420838699255928443865480171158525284222780179131732495324552660541295229290264611471961562778492368284325588322413751243560940319280556483256644497828778037761474696135280558315108519628137564242296079224450977741388563469115953839135301364225427197173310547674996224020462743688569876513061095879107115733506713631892972475388520856923629938152656264749469502333599460709727133536981555908771579871305759253738137643538980586037223859627476233547743359145691339935180414458801945545938277877337934581675087398893363405517576673594691029512188963680859907926099814736544536369485825823972180266946250755501537252156505975553185982564302147310760788995222800810097762064019249429060986241271373627823701689755604310859967626022126029900156817127613862166329587436103494879293438183862426481175417516115954278944050426478064560132693131347318266417584218132364749495861224340500285945467370105444240657712067667458876441200546145365765389090180132758349735529219480587528373529895886803728265124178502106816724078676689926977354210982643506707030632282332829138314765372802647862986895985913251457797655055615577830497830586690384711350924647940515674690890129928012625710004949814454515122077592511656010250850089102339053714260325896855809339464287375559166568571832709419016502245215669863957252994386426723785445492943297830732156427411375690141027491094104429931236214705961649667277039586141368791517504613571035579352212241164818030909554054386722538751491939193222428316470390749340060695985987992339124413559234841589086032323735584239895211654640534274885454017956570707085149720349190588949536242245523466317621398431467992346984564748334096629411924109763593039400588419264478314468847560465618028828746012460620021539279746205486358675140642987595078543267889365044102703480285628466010054675892581637208966895816202499772602875165052917476961635649171238707480918816475499042558551389031494809776317241948703640398427628003604613027753342310778503230887664354833939669603980303679357688304947655853439820052630098354686015049774761490626039506740330932094942807180629721414078339821584448003963693480352614845287995183289664518655424473826063911620324365184319191386350154390452917426425708976820429989809158383604946653235972932772573249968760789026760760313900071017292675157473961258662865797509294752995797702940856562226449939525982384782514766440529893967468582476515412154534331122925362648201820252857540031617661595817409429013954709479084985818284234510758439808576170339019405730573313646000765943386981220196990963568145412291000727629077885056118445880171984269889144338586750326459841591865593745262338727869759262683574456543481560507624121251686458186503889430207360226157216319739226751307038505170933230667198418545188481443502398107142209222175877440993321469377535025234381215412318769232054653676709881191933530640842618372063258284798797420985110540288838242102690610221729027410397015626550032338233701678508064790707561894520946635053213021442312822066532810650395037530724426791912401286030644740462194979706022986239979106864825729686099387545125503810848682453276699079260972822506272229849869905800577060528011935793791243710863286700784588844085945345788520821267721473757526677708868844254124319323981446470167985443182577978143477819271807632783493540501711382514048091420630981889495043338916302839628014409049354107023825625289850242930751162529244605554643633302918493840521944425750923201630928146770767231613875875772569826543417248240820151759740957917097253729403580004090553633958514609198004843396889914234576630744386830382628349745932664105329980274258901214082288847433221408313250263653624332575457202081632915204887969715143141471971577996598633337253618311752101100195228108241400094276134696640397062515887602124589840136531645780048436918963730434411238890072934757372764811598707255937056455993998766350304941267530776915166903779476420602693963313606856090538349311412712583538316654964538651030212897306278928000455364881624023398850656555952875929168854139295012660463625278411959365812877910328073393409260027607389466334643182669046617216187631870767759540073297094600205001069123864710195434959579440613250276441133506679252737230821809677286223704541070120765646172737154830776307133566110969565659624808853687442726203862954968526929075471256516797876328191336351743126290552491315462490922125782896275362596278893541629029094451239873701050992817800209900147858845727237918125850047402648944059495123322312648435441933910307643900114665392790182903372816942480067192696205456134454055908235649383218635004783039368932211949014153517593201922442305852989268332443260317135854858084677297327649178502418951331307448387748877847705632544208258418447180348776841580465214403569436302570626982004058222910643769422648622458804744046610931366425948804372072113905363726920875213374816541375197530682782289182476016360387431234525079133458438553784522714383381625275243047303372159412164411056461914841200876314379607735402737458867174900875959802599657675422749552401202340154773778922372076071732397936289053275550584745341544637336737586755360088092882486621843782109076687454194919664562882001731468232473697112927364764809192621048729218476736972740838595823702666839826069271170287685490078375609101443710831801919993574923388530931791332706181786717531605409488596755799055427015841268366396188460947700328929832941183470552384319755653028223278840763310616690843051087694146104818341804515448256288790382232474221266046134454253344567526485685459618755177239509928098295526981330839028772227122037147101505410208244253916677373490210721646683057191972162098302070669510826043298440794067857812708759943293991810453755854174079147463484489551132653649429095463685321895734214356311322327987349334807673592243379738761051254900954932112004770495588793638724323395876931910759496646198148690038879815991749497509317012212198748951815100786460329428544036257740518999806574345697485402500161629458125863565540225992282812110295383560076007870029639859916767736249486764935355881480209069888696517754387546540331994217823202898471855746840191938276843412103956666053138391513811843858238201164840505682302894345400161654825207335998524103604917377214936188319430930060325170268305189681884929938273315653628007112489759708398469236185956246188405393370197022461200760000675645384567365828383428875470229517136864522938110737622871344503575290261339497782228346961472412534754804579696369258868752416418039787680063338498430703134658991923542119018795667095261967226620622036554192258267401503689465982005982249153980729615919133505950235687407661081105747614579614514287494711047803850854260564225819128102778409814690644779483284704184849382153249404119402093065797488770487569338254370301701261305744840570670702983945596034990128232342267489381915883537181835223967921996462396179270695235967291227576236657754084251586788721311793360262322702539505146101491663759743520587899884966547765296746897874872520665910505092721816158320745377198075606484647829248348085620521915909364104975418598368479922057114756091863764142906289302177231528482198856909287512539341120527978112389435834205420525837539306960428609950385864224806498211178874657980717696264789510903960264134576551558352744748942476217916126793009830740214978269962916946653235193837514394242438713243795814506751900289678419832719739465294630048322418179664356759846088261542803915264021227595540539219269918276997740745084594017975182955130052578046686687170677483197019589800087140982127748856132106307365502466609431183852850226670950504268244664821507928370704579476958194453108837997116254546377121393601822951238083324134202108634298401589264997501972664095108541583310429504576886229400255891104296077689878780330819516007438982268649466050112602527677508321128706977146063710740824990165042010917509320977436595428522805978675295344705116774171616318474773461069917915462158235369222331320103431991209358790045740778797314706792396258150063805246441580208825760362092487088123814272979523803931642385213665885473956578657179729008439551874129640243142683624886345183471683389630835698463379830051273104601294737369729510273188040753044125632221668185502930021730042574173768403957573299910436472308594104891856690471971888801560186378037452686967375535822276877900739955931764856474076018662171065759857074676612526190457748274421684378850605716548655930646342932799487976279425341921491221936765818961018538694326225760416548273447448621293667785735256703397409620724671160452313742509964359464868717549717580550625963905880897594185691057532410249993030586775192208071627873529849344745573012656877981410355095144346480389644777219632358922181695660642428259755999243444271908510484556814672812561062691584219152295595061168143043888311764562245511386865477351612296974228270474638119545654467814588655938221471577878705043468657269496256766699461612109827286899694007484739957668282093336399566659437522889685525961462981502667534538753096855307816092431494957763766035013127623179683256950354818053084150135201111603157800796096393832528120256386306598617178306076843531251647752670142674744069518992091625593517784350993639119766376869526861505268852325308237864694976410929295804095269611984230281859490747777901742558983660201848795604384380227879360224535826428480139841222599268792727473681305867501389057027293866387832439805491429769453900860411382710122269513100049207328472320708258630478449734735549669543897095949164053013809555597639664762275727542689148442474900438191139406583016024484340135942280355541224513263171399340718144529144512682343372728584613171604510997803298013920038469535177375704971629789467745334351745381496590075514869766439513446257991183810404008425459720867208779145023974151962223515434014408386492751701145837321805395618029746094946627119315126558567812381849881784676382764822401546927596459019724535303638884968562414773285021501838419064312580010894746748189567577928143134809914040163988883731949896748319836206468586851181632418071739830116887594658887169848834346948834267416844858460398360226517225069694260180853970934220018245251593679121828598160135938892959208785678421037257898598149263528389384605875350921761805850196083566795634666380094039402181707642124987881484080590549555660368402231811725113367707099745911884316051376924315125878650151944116023216173458135816557013672958808440931102930386676198827039605831592094635206689215813944011320216282670620429785202321096831475701555130613511520947048320018348123790718907464390088770206609627881619542145771179415400098106302903699318551839874279200054523000839413939737940021579903779906094736565039759171252586604623102901187299247205245054881337423128924407716824361126499391161998145037711497153025472000023461416784939285600608861596441923002517494060464160182664026393865913034570545979527726108259654920084552015012235057207631490850318485374824319377200650023894438611264150942437573682610868897798368149738065822017617424459266322214985485445278147685979547497567231331777277743618900537025797488306913323713132424060566852648582892238740087699554506558527993198373857578553120225897246056035920220394504743471730645750600023064787424687352189208698633207588371183863263720646847047824859947592796969554897755644230826591887458027207015037355625485299440196041928773049587775029323054157386568679956813087310127858847071341597895287466436597368817796035944663956773141614715191546708500596139783068149669383042907588653523470484772391335536760171555854321732501088959911314345211721363499953943721608357010899026720123170453291604710321487968152202124727399594640070042329924002523735889439562125734503359022425077303127920982416035906977854700635872697563933404107202655814395461962315074437104957177899638221309305548674930945556160009526132936491572687941075854844834269431262112027313723675346323914787166806266028512671385769029873297128864319917480832174438083471800650689184406274134873066041583056826104383471273445591792761107912231936819494716966943248177691417358737351024369999070821876586678809471963022153101418840182050192395969541132656856900155701419053573585704358774274801513769732784875322658405268704852134704770563321859898187480604426017297574155629063330281222090037459458199630908552596251513866883365179558452922294126732807104177366155774249332757851513209675120707574976649211903044764445920637887157342445077499516651941484063897871320526247697505755949637531939255207921331467112217481906425169738109854080014327540443686508995810225115668169981241043152702793382842436278175329338059286837453797535774720716902427338842611719872440067179267424135890479663252767084716602481284508316717234486473549223688492517451356537678219926964504179919185832922288532776380114776957814769915311564726443380523216920859671192744882420762760342785475440173429244257428266382999400315517732069163073410825604779938926748685078376483952964600272240869684865328815122994097589351086798549028264665094147694454187740309115353379839381720620993902847372238328347182597108529164713395428215769336662124286306139862904477862743622262582662740670191678483347421170941969292471507677207346894377228923725244232040158855581514059521753757120048493106880893816652790978075758150808507095880024594654622062499216541707882261635897595108553636457918994928691532878964776978032327576883604037895351892221634787281928977764906234562234094233276382991111917383003031437413416308175449226980847230135363517746706085286985248867484475745719048050830568277906475211058219230483724443306966626592490562098065618660777602427656524480773532373666221320891473564653216526106017863167760946428650205835439735561274909236234215112490588216501410709284920903655731910287626984164369742397117795264895125682366017066787150053068320990202077696190293370839794014494198992590777945119564297394031464523725572510799351898276936534450533060348182437081911189453202931935099862169846855586109174206142741523144718439156417317886190600020039952017971301383682699234442134012423227025004656121129564983456288560747959223853066238664883584614065203905074150540916336654788324954874587980952317763705261912606476270418539578072578172033468009232257256802114129154186286091269676653001909224127247248191494960245503428857339020385128532695657860043185376102157754503940628674953920476822535608197051178624886183109561070281646963245652023481182327595662284038418507461358771016007029525597340905175338719440491434654639856414239270178782689657298511743778250783353125773968998818654609460648518618235489760765664538307903311660236479439087503498824030220189022746944456486288635910490159181660135057713262605870572671193997357250008121979998434845229847589457782779219501523263638699034546793895712489777227123794477018882773365265640968659063753785661585191120498953493702412583193237452173824902635546908123166131300767067687825875543119053791332969444556599366852875629512090351319568170998638680576252385443413059739970379170833896679120704876119305920366117651586164616605879298450641891480052660052666285937427708630854172664006886855915902986593523309230517979442778793479676899716192875644231199006431134768123023320435370452789599697832114619972584196254023563711142638851799645666460169333269078638405863572254975361655283551241977410560772716016563107362955986621778850639644759467522599190061648948548004059599751495984664891112802827776308310704006784529380169009221204057926419440811589930768828017495969841043485008208356412952504790977390551422388563464441569860936161884865365491162333418682447894581014294505539696231338340702633556760813379542102059428290653798489043227059226167937287221413151087335096947866248345156832838952190587018840070074944928433992004563046914569097748082438979442621787266869002053973482544854363662142167131358840769963917663341748970751470418025671170194193076771252068096089605045203051907699921842272950685595280566066536384005294127315278090693554219885260526442002294239894095667934335005950744994002736106762147565117022358415473011596921278898535508623110729132776702810143108114119750887346936994352264601824150412343747651804488695404055779143183996896446650187171394584000957468148467231486599875250467522990565799458443417728465741397349054434272644429399099096134463860948265531745907582458331879315014494126641118170094371448895221985333311803329948916248261128830372936146248678183832332829442504063970626601870553062090966500922356063367005795658548560259807991218826223457908404790562057149319191370503260929097473169983221594711510253940675439789965169053233430350132821467129000523487388298651679566683612369380848195203472765462886261930297372664499360370895008484373729490326616366124828125173866567287896910966779037405038259680765578397879900902780618600659550126540505752266554207800976472885660310138154421491135748677248618934553908947961339571194683173870410339442650827569709508605763674097662356323522631513258348259618337080071573439594684798559049232580673986257997714512055753053705657051966216551273711635135031146014956546731079836130682408763566616297684499750865454206501770828435610774353386311726074397844759072664132612617105931157353956722691530074810154457214983128061715135969958548484830310747360212323458713382317899451134146364451017098939577337505070993042061593826636205815510694156106854835169723776703780177425262952905014196238303231610923491415383904925870479328775590175579612026955686427237831126723229941354514533457354281659698306418382438631774528925693739539933664774270515400375017805579469232403388301128898903829137158335793454547785738266671718882397920436101214244363330116907389213338830699991691588311755899987842307704359566413747331545937281276598467516494067802062856360984040242628542925348439105960847104896934051577076636757934649188843983803931462969153951053117703345235428811141349770256410447346396750631778606129300206957933098522984260602865897968224466838131477928667227415623014118145478409671962821815041633466738690512716168879937771045919379291529174338592245121594023619811007828000147397215540217964771093919931865857282340125678674278744821955582473530816428007406457760203808973703043764216483706433291861426972055732292694728914833648993201092598394801058653093271715100986558691958145036752440335981971107376126821504091732318396728396214653207127724416835515565836737190307220667083400807405636524388745204782935864587418854620983782069230703644795279566914131162867939354381827713856241625654546552401175674684561480244901369760834637587156975219911943366623662758550156712209929177482516549531933151530274882371113837572756833695061884677566663796771025448240799773708685549938034426124663919704366838978654787908736838994638832189617129299966020323374534756729953764177040762701143872617878763193765404856887826300719913724673608893482945724449478548042162749860418492094457041175647489489483593698172166925705308911907913413241685789041692643503384339509074359232691826831478007788386993146695733541958580949698716064794258146598242474295067652367290683675016380109834219536061442613900272926402583141427931415983376927766020736854120860226735096197269513521125124094746212486066447860747847777368903872849150490324714830449936881209358748135743120075754963873007428471942993992647157349285311968730825569219168632314200992268728225729426903447722555976415802650385502686214318271985235344881320331931234572930007562667511822819947492624726926708600890105605342333604074894159763803733212266638593321925214126573185473634225797567973889104367651917128704364370012351277900145848722894501252487899248327099023140566740129241124477225038165859735787497917084306383918828435468911361055390106892389581838628319598915469830794662327269300602357234514598989099622950158574643699653872529009964623744844991554236564016245407150972050807938720165886722408297421896492787578624934329635508033657788285297621929230084637595146528834776619346933851349226795349953586765583571002211432841203770247224648729628820718682336854894165849970462349428436079268147239974373069147263281691594137790959083989820688323883648653437647716040570876064423479260623746764372070917642173032211732642603350447633992514800094652039317494196200736273989294736049156418726224274316429321098017866594706763489213179527717178532017722204515226126771972559724221698403885849911823891189293925377118476425153245884116785330196853988818146094367806893267516193851210409859267080330135532525020557760268292561572149590661850689613112172589931824960684147195849592209373803040283911411662976079254561422639743229551809830743103341923709396501483800806071912113789665272704274525127324002901745908216276006059393177611845151158090866905293986444208048149476348729141582799716308035883195258025081767221752137790229374611538262256333637168895053428056378178272021012329897661749547014339496779660225208554934722912042747344242048618598722598719485573005833881689713386632039078214284921140017601299848661644614221508589454329249832046286930237656292216210858487409139127739349196604793129332198565807121898839330257117991973870794355587025990784220884152396781082696567550178768697843999226185543650891807543437750957343916206616691738705319295748761701919099858602413723813165469929252860644305717709644707234802403451978075593031462823086531177637681658897011770061343767598980960686220606517244373328624186666917246564427802670599862655752328833993614961890398056273078415064692623568861759656855344551633151108554640457003442980379920311375062179398158439511976744869885510106919401687734079895369561709854078939151920594321595801179925024480441430948566609930826161624873107898578419976229368902900375527412560276980102874817599675022734923564605462529695248083334062582224220461843214045899373817029985654826521860539868833670940439605022874521470460155360282897076936649094388762315795899343174998779514385288900358435067531016225140273080092577726396488734716097227929645992814241440472047101276424844483924309663047824609850932954126643981533994389233851636579376043893787615661253608778160085104151176354540149142843030524308930372379997438483277604104653471594525384787780529850631190055481997803362083170817776727230082802099699329546645851464586271942429818160083831468130370093647195042148984806341339126919722855651582614247921970864837488982206017869745066139896142513742165370247334373135762289702102975904419931527981439989484904654634768082263647896266626541114963272688824346692207537072648551607453535367353570632258619752245655845633530912352345265695567660209613637455322195738865461413923628645122337397160479489739345663221748312228271505539504922763858995372587206746105507045537447988255784472726724620300922834531176732060440776917900132907451695930512673876343515114691802540925179880585824444024612647707710398072605879907991768908824905282604427278835938684963776035911776846597772393109348166943618701083842847416659187290920529828537026311050222618588509058257776526270546546179692443130467716453228421602675835949547487735558214758263887297789318340688851636396006543829798601159565903911651669446513490874310788037166448136695319776129115900658543622059613199392613194726452442163135929566053269932916137160655276136548037234745869269390963272495990248397366985453867609636814950197466083392444684946721552903566104175197248151058816240550413407362388993423516287537114554529463629528449366100610821281138470043329844951972442915262217243306428325596618500481837383124059760532354765491513870086554716562128624567925890184688508570491915010840854942902747650991523853492922087581602023406540528674364048755881547392256614991835456837317345425605466604591864459105823643575633599231551661040907195369247976190073890467833659065738875453135704262370631773821390281966428397605524212011560833181539595809543769461918828300951324825178814596264516934390320789996440495747705654270545219348022665405066686875676583571543027659072972552503207704871831244521196738283335001917415565598036471156956743189218603608282249087662534779821153238607563123653919777679090701235562527873770083482961979239841070987048366810482241071152700858416655185619794784192284076058245890828991476734220772135738184095346253554287174727303171162903417326171248253550579495109522396796432159452730627688745104730755452157644732531012295455804638081460810440491426333790621461493350936227834099895662877235335040763615383126193603288633863484512454196033955351911775137851488698840748217034223979785269880632241539621206690382710056952788919761611120002420370349571875001611796772720402112693884997340590444480515199055691121419470290631779305472996484523387045883421674051389411504249461371370594483711244474305640649342899955899724541631586617588320693150065607224503891805696878751013355495047901224899230903758861810007700544752920128085187765433950248872881349355902735045623222972424933908313956978793079778892888396683821935843802491094327428995069231263258922967479934655349195250013921904289509116348585031157492822603391438856273966912472783238198045848667582867141986728492887623495146868236199526551806691809531715489205748802481027098836999661738130095100548180711426201655746154001715162169497152223260850726341784889996258812364767266442320529029330614533132599812000708278334814311709841758715522019543552087921066366660177887378248329613657438429528438881218332460693668625327805378009374968090033790408996850795125970921836955809891712147976296497452976602815882652224441741082689281349404336375906866665936385013802847902919961477871366588594521524144881249346870801770158086514691754381557975015398397086185098144693620514750689127176599706437821446072976841252443949080927509490299083471363565043866288742878108545687009589592492413807336662023719289401124204993258329415174266916516552361044021854824283314978678972291412033177530865338663143897391146346817746883861161022022749031367477632964321936555652226323638979158597276832325138318408392413987963212902575333730276409750618863933698487442638332415583208035426253468387482791407355881654914900830997614269110210295095417544833496775188967337736957027285611317999956151086745983916264429022919339892974013986612284650416017289740836064331166653160738601619697657583389422838402737316930552633750061756283979371967062190640933252018274858587889369472421549849493606095598746067900159007923700501565875867307504495282792414254371360534010123950333073957213407650831979345587824273611742422738752790118646065161201502639186258398159706939846426148313407570208822145105680436333038988041081159049971771582854911224239594539528521826017694851946707971560460721383713169549440157234039729598438670422132573122010459796671376510009527909409223597581466900084574188356098517052528943123937700405047436350924935344937900616622942462257452729761479253447227528961179267039924762346131608122954194034831526209723001736380246086808690671565309519846484302510096032831880750904252002477455923395105184175563483209640237066575596578039121055837255389532699404144075560405505082681594926047776718698536694894050753263356986609363507302886268002959558914418178844572166606147143150690762044046453914489340515872357411125630156901485412709177942988156171070638885642501612609070132501599304170271354775145463617067646640096391732541946364177562082130253225449984594126274049298807455669782710959125255591733308092420435150730437900275100511727442536541435874158367322676593850401287997108066075072654069310487189658671007813515342095227890033746653573017306328127221017863347486181776198035492515928929383990450110451979363617223884665978390545862631316428467468888872096029083489433928273597508185368455989035302871939435772052471492264821408768855527436279023095546974773777566296641375044872317645788176682582676017195604985253291844551555881128033733694540527602737409652248516192037687064287293689953566480908590630620031356733545671994736812748994474559918115588965834438509560887845194877698472988753745575447364966397263621932450566721557437901811169382522859669547437053142529106999241618201038054892444436210608265364607179221315750557251370549320499848615462226734922301156255636730322715861149078140866462858611561191309434032364359562161408241521325164728946998973295234177523787799310626590992643373656984979715903609781000230660760063972398525588494582141548864088783900236123744112600662283025466614290197101983246311776462192936319858214005477787204735733508311994259556320681003720115862388256341573403648257805399418133073441050831194792843035073267589313497842311760762482370736820264775413887303027843286080416685697471397665365674099985755246122004170913361954384794168370239500833037294908256357148264695323983422689533561213166724254398684885633446663494347201599362081567652001129896080202399872279206978611613587606049086541218068444660271680814974467330933590825178862446479138538926206085937717910374074344735904665389328414082837757937611054111275128079443351282646069295350259549497257528625972682056444743588588184506460406916590608789332008406817655656573737091316059147269364672123659277632246859337924427578016595936227968701664957020230382845510765560583918535307272203693860214463249793729084119129260623601205468283467748898392449873870944827210972069558390241276868858403522471829566080871181109738630191401622606784670453513001189980855305714867360915286775650972269040205530944408310770428383701748921654358230830130445717187186124942703869929639243196911055929441025075805301069021274998680213777869008341416835612756979897428102210996557733595578056194894078122245150461461826301008880570106915281536851336777618983924408197095201145439895655982226150524722339233694679114485387040985177230786785694760007572705679607027436215435060987231975530568782445731008383343760631448929852022167304412683735942904803181431589974191314633077663392303781470642314239244188999317354055460620319730344802542806615155833559122380059562683466988028161166479910759826684827371877437073406905027039501652022234047714946789089573635849551569656749652269581314889779967235553408348431132940037415745381408521720101073191391070229493653045023107431150402460416715455223970636613884394088384544752522446657698250581572399878894536800698371658617442226636146643693132229742012605320650278699183826947465803509139014746920467533325532763043210062552828744251970762890897133712873927455713368704176427043324235231246614244233456088653530710764988717813329257197919130070086513645761566799606120534143197352348475606697917827720133335875522192380458176821664381510746137282216101909393507738008598969385841719896741310248489484275049207467650000235448421990147095343121513188727057742535586006608212613373997920803302144381524781493305279806614880869631414264912843734674564556225409964831902980351006958919733620870480461493273247969611360927820423610202878688717545804002900661735830489603864271091276755192963908325758630481902505334585536667572608241267186198668787047258817683629187826683840224562488973764280114328816408748827719484598950801367517900080685504869570270121692845424333023439736129932218154769522761811530140101005629479665489061711248017101292382582633870763336338630202728569474727088315959914844929760437878834810522567057657820635916593468097993131097619955553518271800679301927543385006205366903856805143667118205474711185649776454996315559258610207970687127105715710461081270632125206192089180467324840579755761289376189499011791730367099112358132052604226187495289017297234876913105860014113700176942426696693276692639749816382977604433480758997663403165515173424578155486818702900991137221260424689299809086929143723663142509738516982170257773899765350125316670194450182899177133393643901189877002486884584433621204109569358782004057520234647160091536980705730810067776604070547559028245961764900778262233242692931329249012708513805125453345822348334921452609165400370321386251691460809999897047215034502549223323775479510390017859128388667704958499564377339007116323213477626268671434309709008807518670378776196456212882930520911693941298812246324165913478850152315999155205942057488004253178120683969439676531050775001074927099437348122569129546991702601798079224057930928701987623629913604194516751782467674283350476811478417713721009749668224311382586575693411531689093548138427318553798446456905115808254601085871473082914482918575478797806712589952835257180046891784595192712667724334202132046423006273861108917417524682923222555655575708183903019691882522839595674284343250586919271242367241889175662547791362766907733767404221546644800707617249804415372319890090799216934599293136178773397101105612801298279460546881054807973077840440722484194193224715847231123635024099579752206806622402356746705818670173144695098520361361662696798278512648771900894143884846706581342082701364429130939152850584760814816340741093806271957986596929190393299891658837373754592529032068669083553979274186943490042251933235912153505054591226292536799892951621962319450783804816737113154951089931700115848805857093098386827181325645494472220641199350996153792167083409687920052855900637217592062878168287938487825808487163517691218688320146754588416630788717139418803524563447699221652799204889750758821023107079591955836717751232187846704953446213006274692375520623352937246372815832416210740110370875583117959574613331451720280691665269149229160729159260046201251966857589874749363552410380756155057099198306929083230427120248210937960731435803351323803302160000591764619807689708268488202455969543379741228133180133710104204188841311661066272570296482769811194810161846820349633665870267361258647078987203635366500691791184736729483217407531623453337307133697100940521867549349553523011542581579544134136166942389732350498691526594064857229330011834620271627603136105061067205604150058246539577373982227893705975131976721887200751571868421871959976453963985256426353547575224953198010677088715606605899979491198499734353919017520428214744307460635748306417266275593582196664817384594556609760999413973606712149452505998465659136838571810170087429906906011798404218720276064167087426790891650889312263964286940059924797209581909069407166257595107654487445430798698754613462957866666968352849958853123059240530974699297062047314551439599230143500879449106597763072319876922188211744316039443197215923786682805580439356985829105643596175039850840667463447316170293396322022125076391081424349519826248920235754900642579793501130921564409513618619852300172138189983809240645415687042627474748786689484131470229673512819510419099248926345656626628209998842861645680924333544805437401047109008222491951811108737199617583928068697103567949762535208146453977997116520690486260676244577434676936856587949177441848081208536103186126425356853321260478010730263676935448932942816347619366956565455345914048626481304219861739888380192096071494433587607420398968929225250719050896219313425088794437961972045207305050972775395511951970932793221176781381103524643441165664780248930194691937665514947605650022298455750125866775333488729994879135138853178676529494315652639594823118010971757461289514518591883427904718740330735080701462813906004730695087450883730385780908764385314029683374468453669449699493436955511038059088056531233235400723215407363623487264382255131599555803352823953927130920174614040724261222976961247763823483766833428074667457165132049349629798108959936956154549763058639619069354883213252687293885498874981531883677026258803787996990682756970135704241869780759028459686201768833737559767338102892682127900410123025214650594798216715586297946559413702564461094574082979693327517592081385364039235929017633384414185638632009739883395348656082405124627574591756388375673116884258321549827155696134262485515547586337715522087565189500772102667410164055465415345349064997573610147194773092435825453390235026307222781080803132097337951508337628686992846355220366967369974777926803148943643447647818967101931575171756134539492094030947568077184049330460965117001654672307956417236423893295807493359546385089868367703989686567357935860415936950465197799216752256935952648393475323646339336294897019919335800231199431102377461210659971945455213786111389215589863846454859327601317249941838836234570746703307736821244920258206798459118026940226536608357113111372774482281081192203650427941960719997011968920486594224972188137641918111003734458170704303775830040837910836587466776649894823602451817900528077762151773558435391032459006698868691755217132392721280765228111803475345769286976683070589284431234789631996996602383737305634110671445336369479093155393479217456417050547782257792738809845347889019580071422992600711387672260621770006371928149174475857354451385836890127551498357152172160119212679823361011867857895144186394716544678166390224580900386308779316585110522734205430364723421890390203836360928065471700062995941837678035663623378404258761542957750123463806445907247766396093083131392318946399557798262156020964454396569844476790982367729910886213393410659894560126310433281865800389060729294870847948303511863417082764230375699373144305479372189472428499737042564204060813309328900638189832120125330616279967060071852436579358258697167747720576349017515786954335616898497674432630319977367840569680970895298471885092451402583399006270857519892743599179965602708478823928390410278349409614215676964481921300786387079997756798658039275186516765180580116145377793214076571937349959693487463431442958344329490991057198331842093192584194246347718632837194709952975964858188009898300106603540097349386254708843637546085158634185950892470746721992882843571144351709401319129419578517651324601704594982512017325323427722985206443019233646389538355098397348969576452888250171424301356114123143049540247117377259831888619873180391942062597385356708608526078045589954789290766270697183220274815198390359487153130775914406335421984188775091764574456044950694891462135621306721239726175724664044358795861482999431646832957500512474030815997973689045811723694365566078383049451856799521250220526531692829471992522964071401100602919462902074188909841019682222998159459502979803122854264003094679571263959779940938571489216272298305917802114948118389962833003595781472542058334949058694278812475208078855842215208815282536040586722481598361349133783806506498262660547293698384008005590985543018082476772380025693330149233544169672419255468132078321471251766782508780153982869576287151705399442993518697509284174981983674932865692561821079796038233712679560746511666192425397500035628224634370629671389399725716048176657893583213159150929407375445921222469774704905644098556544999708906152754909699773062839666595739813794909503174602514974239899965436210900068435250972204333763960910769658587122317118706736357526119006458959735997991678585662993128398885737363046991055145220385303690921657526481006870261742855980680608232156233210210566469892104088217211027085501520546942441537216634183432855495215759357284037837147851089253038374569702415291212746180463291806084092512141190956325496111394283360484907520548858339273744073174264320479082998974454836136129993028010791760014517539996731183730115472441381917990031099718963752590152347777280398939508039734761210554050799661581483007245137798186676013962760698185276123412870835346819546121963506885022833587489525773139770867545313872986857677612638387662544478283413113535142953743138478086298631488269612776973837569715071556763101994546504867910389499173770120492935357235995866101550415071613284552383200287972734593707113681017797008110717410724015272017657997404846459133526606812723451698269861061780734599402910433212772408397158932099551227784474800000869226654940084429214657175855865846066507490302483490699886052672251505761168894611773161587264557647453883855154657868593580605289240546263600508971539261857443537847110754484218072100690106091013136443799922821279646876606270993423507223898810262427401275089826613583223773180639429604525665088307045359709382541202116249991195365738079931614262157794424085241698715007476412973469215180641675035507325577643153138814328232187914600877641539792017797262954738582079192433101790941691518007805112398134481908397078645343958522183705561386209573330465853528955607008323636028006639052657917645664870428048557640540726424520716904988653073563202991030324543663605826748780357488270184953784360578192990692366074549511414725592154862501898721608223249733883635810472417918558065367144246142238504754343022750683513137984420743489024540285526093803028750868230048325136815509409339482298046525483183936251702102295491372766662545689421023688472920786290971509154792743762475392468432865732211578013626026780851968865367734095258815425702840946775358725758560175226204844575736068763954286314692695796849183474195609549067409559418898221636707823218385003291886354347070037477737949384074009856924434948018209116350911664641172519221115314388489901114517791642661267128066143166007750482613604990528175274152275183536565887259924261107461792824558311342797832173436240444941201100754647619740774635377022820181072403160791746725771154597166219188985065837824156610887695270939005406493905016367495382558458646702279545315937263439570128454270481035331702384294928581061582434111008723334761451742529385744689645349557191614456330578494716942603943804513479890534316417823668082361377776653485881092370402630003116092844143167427873714815567841157886087549613873049658452802826918110402467627166967326715417937132352591441573582546829812316178775241259255870006490257847135358005167504289583794445501077439525642275431621196940701780905117629625695297338679377133507424220187251035952281234499348013430521268399050302794372555113682886480869425638369690092222241949889245867160018085974529664087279047554095335335657138173359506959758755063091220253181092267718490482550503127842377936368344347856181829717699631885671978721471380286489578517368611260249007440659015611124899001075555111153081924710166262744439977531912236604125557953886006356103455044251359538111450898473026300590541208807323970587420623591908226074733223997746201830910541962128986771571174546931512821061826475496493901622968255283663645912674308891325397686258769223525430509607171904733188720174740154593508284424390505838632150349801104268786084229806225782788628792567184371926093260837935799240613517683202764351303851485172105493232621156770020511945545456999991865204674315552598815220088798573177627146554446391657292096996735224117882635868606262001835287387384707586288968741708233305757148109325267240362404132415802883021495263204410809184703196543686877418591699904064506700140702325374197124030930242900409912680611260510444929230133931154967365317823010532486039895246512363723333931019141917836677966518105440269638857739855933804785394808010881335226763432038221346379278140696110160903353423516639696318042203613385366456958363665161629872826326757283055727188985417734154237796920297798173780485163802571782688478490213695314103868544549010067486800718102021280191398368964885499797492936842849194032702202971351314467157660419907513965776831204547511820906463706694262464677932566662475559084917763737783348227059385958392000024414536079439106868062768779427597932555613351473933099048453306504417333899267311778538379970178490688205188995782105406573245940198288379808952810108802056236407836482784691135343036770655680643408006058089253895917387643831694013866913149169083765542320300098134008244814023512544950022877543653962150584638895403276587776925354472965658088176238710636279892901454649075854371592065866506577631774837898867155300165488867281199770364750922602562427711960612946330270712443848111897931267788387351697417686826856611900768602164371984589255619925031542371978468626402785102579513061008350817871467611599090237968462468479519666240662390247297288192682145330858852371179265026519557341490136180307701740543010216801604003283100847921006155309926699750974709104605154506891775086022761270280129884768479415126123195012192207065055883978720782432897660521471592425007816968615579188097191603419314326396700996229497917521559845519720436576607320786151020911307233433432041858828135489669781270570759135369203345449137076301791056125955972307485393734593032146220505087032989659702822578273162269539804724749194258385472128903275965878459197816885256483714635150184464925871048762192752639804984079574928893968932809887362437416078213104307308054756498493584080552095181215500927020271397833523264552145658676458517591139359531562779253506404157237502090968231904961518674032110421559026065014608909565530496497948055581215159284514171174140507976272618610261934784439316337604332339249260351279061923997270208014405980642791641541208488833434689562900913622668922220541775985494656150796880500723240111714993527034565690246193434609436141530554747715684880186130096650787501735968873316590802577853347160569625441882579402259882167877180090768372890870303301558359805090625936462055979547288425403321207346646181722182083627854112451833158099065830593939221729515406727210980302650752116053683781754731997852495264527223709486911291494761997287989914310594452238026710543309320305021073712308730489531960236024085309902600865601286609661846908965005746294174360768155164317455797289096578193594775418805508110487382412148569051940757152882297214611808922247361683477904923451531742973795165610281579988301092901968631359705238174413350089732712507877129566429994207561740182523165992619286458341195779087603959806070452403071495358097010613207416214795670157053919840287258782201695831099079404297067884846880869814422866162984492174128933249456497755200483762635268324867824666781199981313003118494224842354850992707814511383833854622497100681195918820878562787021589077803879571110818237734742295082597490418628255269393838502281528427116775854769488852259564504890581659479439957267871641660339918015861506589297986152702867776876504337720601946393689061403308981466844340903836713117281798226738063828634886010595537935352476412891116834813647104215651645721375955029280722073861864331321072288345253255687227560700328812648635626962107576432749842107586697773069838197005452228253153848736273310279144388846652204970950205908604846026321621688691881482196617446108195919817336767481261731524710390520384019348985587802082838258043901704372826081120243004145892468559139550788135876460495421862870695122687493797479335974571856323994366638510686708664691399207800469937596260372386563229588374680131791435752165681945867588205621056002069964581724106502188047357675074087824880458260590111413728067816132855622137459854241095913447835290700381540069648240574432450976604566119256083645165532361017232162055558862198297788124614780505990354351589506133960417699672650643080400653125072485886422242732944550684952502254889695713347670846037608165666381700348560501113358283956296468204265553990824368599824913245197314704405674400211207709997801471594461679308736739285890053697178358128196106520082764931742837950205757860078209715538475812256964778465598676324612973397247734636798235403171265668488752278790265498693901186314232891614060638509544516906692651606115864379012113233601833890004830783844781857610819020924075267817783150972517285456969653927095124465625891975632763905745253144929856010181528003444358819505106842893398995021476745034963181251627327501972085486830818756482745395298596056604708987621671926085488066210276515983886575124952037420585294826628181796244089974743115492115330039583856030851655679141975634889933493091108812736788418606764039174979651414524734884237438897205108771663491391930812952764951503451580443475403229623147465283379725668617120937276811253069638635488570555262685002982335343288724309324710641262120087261157887817642663892899359190479569932854665112533020480327334645830638167328393839013749399313755145023719665577733081374849623839358024115381681234113112549460592820430626164869947149343593233432341944818243106310790564935157848036232577269451501838935776217721244881684206305560623316249498748617379905193390011369865501232649957755032096493279035460972351665929828305049259589687757568296837510469971039712676332098245497953025457618382244424832080235338860486110537218982546381201512200362472230691448426897030104360385660113411722416716486419245966372154580906690007345880957843844113621333031996148157678236227588622298850028438261033508302854955802808211870153131543708548430991221897535839563189612028170505395626752953726096661068379527458123772238880786175170378603871819252266994998736244849707203702194199398191976787981375037504963674331527655438213209221790508263442530439495737889918755643307207876724035293333488147614315725528365569537861620337299652550629700117987677236042345224307023180053328041298400533359462919601013464426942943037117940437063299781451091790776204050646296843464231959867376036480315603474206930843307221138582874541481156561058170041284171847354048837128058015996532871907387661960680857090574487550162533719838189331014163623649493521741070059936065116473415787842320846496174580119058035050224532537649644874475709673326726965492992120544034363082753940924957450113209508551392779224463876384873375658656473320222048210826569816645279103920580770458095737990071300984442336981937148007343831507609206203599649060716944103500371124744367814760491917277472528895208102230520801596188969467557671133696133124455651814184985951117216770760635641147164647510412472021357550888213569053355236911378594215476094901528758413329213577096631008367939539886089351519811247444876705905861555387299735172010923093130052751311975407436800143431449257398443095986896483509581210410204902228554379773527495200807604272018482831717499778376785557317902544154970205424986387214714512339202174916077774192727515706389693804349353572476677032485354848840999318898648516561331110762851538288497434594413204363864676536030442874067471050356991667424754989989542120110201625059694122855187472573868083471774072942018038601954606760795830642334777355098935925678142705764188701419078111150413887476862576515717956998755019177349141070655431972491596095480746123533231210131670767493193038370615377425578385167232984600945891786411166172713641405017045928959428025726040419351811000309841475905922927734111131044512387809984088287788203793237272777253261491807213739082919165413953833390229366273454384595459089671942267361019103010939661555360798628435819912369286250638482785266607516471229069013146920874131423425561871118664005972611527016340520367801973535575584769781602344746294618140165925917159736178855975917511726129014225784486217753169106564071707712898646202269025714923456822525669236635454530337075589200986937513468383558769722750734871633724388044269097781067120505192024227418710228556722309351109063513443757585368539926857307298774576975801011544408840353765346065279879925291628385103168935864513152689625554129188784650994431847606013037679372213870359931328087325120977006856511267619332329891025375754117538002706512914155346331011163330900877570080633787465681962503398415766343282384316143916533868158085010666650702837421469321689335628413978038790775101994415868223959187758341566501301433400664466204547610827742867083236902747946445108499833087832334949220844579099142736386370168981501685002843881045056145036961535435003575638572810499269788389006647497395263235360765224499624935407516474187923236098381940529802458510930716215019477560254564685479132454458709044131971975011481213621598400706606844201054515043030425925129069548493097784551789620495556190638839440094865630196950722133348775627261428546350244686453497200376164512679793334702235120978764472372220322346011558357739735747761189526288542171034034326379037002284015987088793470599916481685082585851118339330781815510967617642947138851371170490859785368361466509537455172514498975248083473239892562573673816794121199425325184399163154215343409097119668192896637206676064390432419388293364138117087264982576484131081711125231892330441556784914223806707628492778214533355818210558583540531484523068536180268047189380873569987534025869670935186368709643409401863229829161040256981197699565303978863053249984888073726766386443987031962714562459734564286693375307390860496745483953597762507757413061097022717078083229425036746854168023445811619736514243207693737518899933125308030046014839236948872489028582208300647501799977618420314291215185788871505826523472650718999080950780479195726778144445440907159913809371325517236879725642291360145153217877006239434697443692046979022474807646399025988061712811325832156341491022661466966536886047535575619311062255489744471868391538246526147100554651497224305191139439650316727094793748944023906603981858218639684322818104916109910202770240760501857887463173940404656835033701032593771944433671026362536537798482221852303701850950385427372927319086435420680656744077810050125786521820448289881038893707010937793811173156131203745597433823363553049896616680597798255760160694228854343343061775282441949938472128585221174585813179048957926213071560595843734926741796036077962213154201344788490317444970896449652956233128478827141481646361970654245702439224080678801689799255275626430751993066529876285911194938294717750576649265260855231749494202209179855059387098647327432163830025963301055111260151513571233055256011587593418167985697714687984758721349005281308618783237645042232506545494466675932289776959936505559020180056566816716108797264206908851617619993484436035469003803735871357273119035037646891885268239988989921746425360450800177686657163159868710982962496333280920854212594205437084577070523580261693560899723587783722378484858549311063455193252727141076832720233946230831966856467717889209705372224776316287172177835208093826874763890066826045336547808870398825990307569011181300765714510913737564724828243077892095567238319843124801912817282335073632397659853558029078193652656492781992688906643053298330383083191054443152578004397647982753467615761161909387231340914118187416702146457136299337633861195165640359454107558622414346840847148599630265291467859633450927244611553401353577053267897696042503567530102101820471874984769125254186504495220303338417403037103469131738730286706053631653714968409406465056866414768329500579374346982031354573260157757424171886205122262387055338516324134762060579584275463873169838571767646796458622253545924429903335443853384244664867709569879720531419933544233463190913945188435218782113521618878368650255347406792655836766100928059248910856987926264398085534011928903009451771941713065478002570418839125738669661493937171803025178323174678524198731550827723031731264113874554812279390059592899844332375957786085148730115925504568281972696881911407413421603268092061671116991095739922642464439465487597987891960877952881383126694454545612248199815520688085242987287266505490516765522576769911081824375958160125640749177527873654130378029739105300174550786776047335802270915352102003124384447328314102289961331129981838911215761579893827849484356563774426576521922865522950689310747897595607131465473224341709432318383953843848404718344497596395966451524372913314490056890009538879814839876184167041868915895502177869782952728264334378878205280568248459419344242776528500553326036632764997712208021621990958938900247542865395524621398669368474638362547393236202309914770058019133102762166639956015373841171230156363628746310729522884107563851666303282567225913770842492761547562836542996681725521950834826222726541144329291867956567360760724757836216922950527586572970004388823784273385293622629756244169151156063957753349208578499769736908181012412459991587596744731791404505963743117117657180949378226037174031656516851646684957030224907587042358898300376965752586898341994891474750725768982872228005481560086804556514760811486392560940221617292229099246461520955428929481980839050222289599535214938813718169045141397312227497051121872676891975558620630469991784973437188537157023246981875906559992329853770490416806601887007951226848009970594559507838592621061527845892805013580318564851983676155808754552083192779787483336701568599780749685347474083889438530678679071807874668067022594507775653056162991946879665660095893769315064520371147172922128473812706891453131284803074218175698451774194984358890305792060991891261575758380603811941622283764254441230761441767431128876696814578641193684714263479054242739096621529006803299190858670265610388948213187603619860918466596398882759586048624617078353472251887606390308040030471024459922634473872395249785610183673605299010400026955276571439609978800794709767672424771557473178741444920245827370892754816900398490544770260620822560676268869992574074952328154746594153944132334955283297295049390311063604527179785370235773043537639029442947075473511937800961849044296626071866903576212533968048931926836126300257868866244872796332085614118081466570343220406039153022155864436808038816288592541570791127181478995220304821668552980105253670176734536565159900407084422234192493054141316085204724060747620033808749119218976445310571315068820655476936405471793674755752522120212298719489152147772692600205641276218687723838700212163976759753776968428794368827268752003391955321103143733750938973710590845438705559043955338525101214346539115252887561277864301935607293101277708662559480854553565654489387170816374457757085548249278645437691164711844619875413743992312660535228392668836018208520306842980516317818115979858505964396938150334345731211655647994529166573785988459504880818035819532474251020232970850872570944258395018913381009071632067652923048190704411645430379117579458253572849648197133918555182336426028607631283510955666664312990299898041265267288071527270487768115182667701312946994123860250259694643718148173039869288881854285619249863720972048781805159985406475179022195736320511240201792609491943282344466431559540126721205544772033107366720325954692683692063166769201333871992318614378955264041818975504345195095438568664060647478611184773024476621688435113089931730375662391677724815957632934262784882957498137293201679216066403262398101081542723757816047738164134185390018289772607429561300607323166877690411546168363062764812428681298572956733757250897669470214825165250468208032844673617251377009592593818198178841063475342158901637117333389729775474272824386449977232890616577477576676934305799896535932667607654832207177007460739389807206981883207209148577481224463054988879004209412764940445482476092144794342871653462737674779646773088138612868895630928128545682130527808747197224983041660003454749105603089900283986717260079312593251268076949227413873239126702196612596388299332649503880354246282394782309289585625897660161633923647469444442012321178658042785448454505716524642102191195285196813511224031842527595803404973710439518462717769094743888478568383060228266410197573843843965489219393098432566861035535973142908683253832097562141198228486435652756156591940098745699049807292955642039009854153532054991051193561993290935764918877663661896835324206605953813803367807754271770909585632517416444035542350050218421354572032234094082565075750998801842730438380482502783214372938204009259459999310717334930254395393810464210108984225714563397621199979220003858798498364025362351692363127757923496720647862498905999170796140407271040491556817255637451942687341050323393648763310338784984464778067564670774444321590326599685538158610812881092820242751297395239276581036241463126746496150232161319645734207396512516467796234121462132781757790612311303037043216259338999036580496865759291168923156172409751862260449427865315468288228363218401660085269700356809559399400592055073635553838037205614040664504023105129311771013459455990664708411940883718677855069953767672952935722963932323056868980491675964285066152935961890364876713720542620337515999362443157100122103515433463459269059637650790682093928515596113547745301625276619739273747868823609617618620437616894217132261718377271459019876030941569006737380919775915580162196553161711610228632079271900195945203147671648758936965067318260544075080948555774753155395242458911960426575586188305697766499539717011034974367933885350910923494416266378780193735053816259016239483772620535401916220868449282189978862472586047955019949994837934730734896551418765987068059064178244979134926170057870491479995879744187549508967625275996120650254909952387343338086731202856327143038684148970165895662457380621172533816761285276252389550506963792307833920638602314012386212352082509434519466233821966040772087503350281053459477011987325092919615846662331312479248460614321565783937892272809118477947320730296593900953952348348982388980736173534558760133080218409023961081809293430448396257132835774416630988876995505868704253612975416701315710440459036180105645777067450054394044002614162259126961483011292917456264052786387211708875471974603582069981997508720115961164407926378211307213673242108558002640894565470991377804480239136384138644893244638408004257763075262875449765205661876621158597707197961365192115970940656824903383359682811557775318777903716120761290100094703234587115074044516167725134707830559798057985702352899865211290664667641992299140653494800529512207376833644745513954887257762968999220054291352845186681172733661155866956744260835915900741082179747790079370768032178340032440999065200217066312591411912255658134520082373798001135208600529981263679513905294465821017686350886943079748877387742871601778096096975840562579972052045667512923984417482390250869981804545258459346025168589936966010381774760935552985327020548921400662972091700814850603675649578830211294985070616208492827018450019748504306795529592129221447932479287688384017352412822702649882864369790172440878026860674577206202645302880876217964212848922154785282686123487326047785280127803779515895710565185610052699816853552317978081534097976870992994264383107477542392527296382275847384555209430215073147220501660351065286536751375998964953560204906651540747489804734770143039092034326153846090392119441961978540237289849766455650958529226783664597478569811348479135568687490564802029138881272227708416875120751273528792736188106699035413302093033252080605477657196494151453422920417911602718221934704765492056819813052694807254760156138508151765296641042475543816502413928489642313368394834613965244354499717240147897473054604120273577234080316903983638612748026239815778862276080486438397846245307227663030841634093645284831267640099880172031054299127811681709533813514568079714367850939416934085268503654115837938934968035989606392185406219135076697876138116078807327914205664124503297758938095238076112226617682146220089200518930637150165087621745566144706790587646593025828045181284346555578840041931829803738095124637900790842711238253993255466353684716999305451415169154298580018946506458186205812040355462776294659992265665840013243710291385455048466165261417001315779551107421040595620430080543638001256375570909492690052063379506041464178742896744882316662642310013571666594281468899410624609857478695057436325735880766088343002693610528423936022647616669131355030437513149461925300467291319674954978548405960148625911802368558539347300011680219183320947353294168140962684419883410712798773929301376360810363914332024901692484078941148324368223544898031002956937784383945675160612516317987929591891465885033857203456815129135232551119505070987844524967356555187586713670412772470533913030864291461479617029956946012508781665754123889182783648707690289921307215987731876978668053293936210123196020635733946036875078530744859054869376233562712410426902778963115598613326809023979990591297583900849695114838820010372916922739553995533226349900836385152613129881146933495519194378011517074133356347138992456382033633294677829298542498382353949446763503134375681271297329405464913787486212560647602006374474790894959253058527055134898949208470235325180983191838293252800471688296515732745912266341912862137200958452729585227747391479416317123273550093792926053955030774571483502168538742328209644206874969581660513132508670759617908565641151470168632789670912419953958624470793797041228147847096595318199135068983149581642051523511364579213915204713816420968961924939874384134853353449416826746197896761856317893340819049661433557104644838874535109027124280265372791562594423526868489309862066960274808288627205560797243708479140417314117160759824137926573493487926199659266470811626963485657935977137826131612972796030912185499244850520416493139580016682026600149733272351985053325978946058914085923859278436703353964335654535520030317365517719216864190389427823514194115117212375098226629961437185690647316844669830853327239834712664603853836886228596087150596584940022077530663917819021769304418253260773098433599685860814879937251151230409590627123371794078283939210685872648329782827616126217183814080626529721742905605671324218458411783604998555404717826761223980483873518654733528127604434293469145958234265267631330111379938491186489703148612073520319317723269612204634918139844034560274084467682077297928973879744180101961756859993078253608595210381662821934918806914215231776886882136684464916099245857165394538620231931444281020696968273805507810654628267226436125543609345749598346552598729171897602939476558806442907939813334026828269137745683377111422030022211047641636455045868590685139481719557633014876208238123975711468349327634201133790621365030924037053645067553549682919982557103486552599869844211258912059962890393029283814853999803701272151068619642169293301250122417959458351280011097436224813417200163768286699405615391453481923740153493108630877596864608152537598466827892780308574157656112885059368831269476498227119198505109462919468165291828936107576997811937282184706138805010037798761985002515549859223711545340385797252772499052139880768700190574451326872770191319875917526418215221894928726124511303494505360292673818633289267059461656602615534470830095781189024784821718301709435188320057455944438824415727772822661455249558142889672575535061045320707792181983626165572763837787881411026752192350915107774581935115732189279414990868065942651529895236522475452551528033881060488602758422224331328115614574298681752187378442710041312310229524272221670866375332459065186690379663673634772887503686265706057107881764353044082898337345232396714371550897485266560509123248331435203473722730253603722908519447905168223001938710218109961706591143327780065564399181433728404774039413576580227658820437664986625278799354335080408397904943051208545939813846357946706991617473230052983415838854667106609468566089430317446042464129305261241662143735871525044182271620183067650178624620212292128236309561856187028219463916064579801087650576916284231067143294300849629779132787332693000933786517581933749801145969203225322692906690781973421881281862208036899620060456285587913756380029626407939086386977193213805098236725619367461067516470064038793963960714894182388483439972723183285091839486285793584655530902628410190965745834997211739148937229339275162226503165953822968074543494755082420905665224679408100518480989929045457113213419540666368576103882158905967623755926437014770792103186113278487786730724891779148817804766877408925168945571668322887832659357013912550317710379926401223365655191301351619160767277160369919741947169662413578732815224007229674267716897533907940829350576735434462523903767394952905615193864969163751944494077866187341716607132190589123723565934570865835642100453722985905748716416470068840175187123501570244483376419698461003412674124216193757527094366565779250555343322317272841250933827969404231142516410513323606710550814157704774706831376164379098772690870739122488641906372457351438166129373650470594665323712018141841212527595982194471144175360304606351119121191527748387401766157161312066160346201929072676897433929319570936376483742092561986407886586030859625752690287251287620394351123655727230427088569280302443936771250594757020690462163079817779160322700162641530718046758263274916951530819717971287919014727586552756443586631617087405114126307406448257846563624819859599818301714721686355193786629337489396684391233009200329525772384227117641473445294516941764508698446168421242622675613919198958053198583104373555386508104306971496893812433407137148074936221896391981950957955100774820409763219662582583347336976199562976821027776504335695960255893170311641825646902040354690846079075124473797710773244470844147014731165698492706891318518969001711294914090397486237362189587811050086024778818789209645834677333083649305626308436701359538960598106565774951576055202643572403076844652472604445271748353776337226719372709799051093018590775323989377661697067538690371286790931558976222139915135786394054609126176546273523738253440362199302796540625696203254381909770530180499736176489538027554834306863067803240541958960840439225407889724717837877153060007466749315915276231146640799319271098303521420955975168042541681147817993093532884354056694586610925509455380984659392889960613597382934687928336882481543435417735346620204284626130206258160250349930467603724917487444466698896675052961184637335694067090790213911555523408083915483258905949649799755184926785324463834540594001818445665345526860591802231323620564007115132286340739910512810064957060743151980071566322885762381513842033781463014060527441766436075385792244687292718576346760907438689048943939916325584490873242703755534462550553281152711450913873488499907977373504991438462921051761714934558101393550788116921721087704729160004923732041630380263155627377320734249622265590834158240715423105373783096269828928045301666387023605721274442789920583058264321335845593071620270998293106809657294036350104513553711614207227828841672272655691435228010990323493253597406699489819093528168199243446568172967718116755295458979370625954799942446209136165294608896342573883457581045744900425335629643684276866193900067245557587944092397011126017911859092661831464011090164619294349191526170080597534021081581954017015175522933093789973696885486045436212499045411499688440815254131502818913128545012301039279185965296031530431634822319301962090650549289345931444783113781073208995590289462512169962108530512694715357607264910766514411054788339764992226633797762057801828046844125282816816302407672700045560558413038747364090092948079716156379985174855118795323206563065127782807835316068424609604096474578524109903147310630905295594139436390349926686561017990744816209708256867124325671766341895666627067379078035641093840681227792779450372956506798139808470558178380794640610152554539086227396026075469303689360639898690907857495492269134153885975382643270754159601913758214367634260071021453308259758751747107183090837424631515968907601957887944779227197636590988149364824298257269952662274489218910800352691953410608106197405620194491606234839425667939373212095009314375328558211918332265822264269358731283134044433080775308112180151032858533195333280445645364386539867441936359311638733111909390515490063825943779123403486163704678183685194389026348422742195325479508391615771887842606467982680991180956843651370852771374210960599461599513281817623044907278490466101657833661777302982338805557313559114156571054193068899143522624383645371270205553818683531313905250548761711435492103105063791463606061774577580922587760154961698637089630170736984767900941300600643177050524606328340408449715861958488363597169952140568737624627782617544841542478717079203126550360925766343299775135421919136404196924264916891337289971958048717625375751679440898760094793444669338859456008057825893166582785834604435871402452274595744061896784873968186058315067532850495673014224093829858941563370102430471528437978899939199699742291484303472784790961234389286546800160908356652990084853438440914673933390606291928960827586328341501779848011852478240021112904826700944142413369276935335352284853094059271406524203736173829647492908470898905371818025008859145131918118655578264673577726555938810681224745912282094127356332025393329523786117271858944202316005277980942897602961919930265313331195010456678991732994251340202835350526945731918778218499516407159869577048750294190626793680945776785105474292656404283960426079887274140039646164065062950655098078773953830438157921952407913086022163474899458791795488883732804476245556702271530109015926347009798675872948580518895961786749509392632133872764044281471575846892449271762028418590640870123118302067695868065435707337203890326345768905310047498478553189935781050862835870543288568496814784061454702364708747319376454026435997167898559359982745091925048524436717999325985386477441524439309057460846137950051318693038728882077824835837775656278762093538992063992542454935151580563667758266974859462963279332906632203098242717956884509644984893781657757679838648803301194725209304010578021378443739236980496828647047483284331124929542445329526849515120214004861706726682494340217825651847834691034791904334630275320722792790675838382391595532331336256882632070363978787784421261006080229083057578120441333212658192350527670289737880131509799719677946523024155953954862758212438793356312066554376495983995073177525232234008578828102348781148763098110172359085442586765929718059785454483598646316629557506773419645965031758599953294630620141365287969953374391853417858517338438454737455820942674041319271796140919534884927680969775095393676201101930111418878744050660619600707780509416248919603628565390206876865680890401738973844268250390890816044359363904741741444379991922495494371075393016968329266868480446514084651034104023379456319079456873380017216787093293066459078769729446598667629827811903670917983641259855540749723265681951639270401339787265125932363896880772742490840574464275005250758432504642326034540164567584324062358343975261189347132893864889184600707662361195370457759750951085510416664118108059998428026708171072454919874071068743050789520535104511526310028566943577001310029796880466928485944834108229124201220383078557204345199504624172139489093533015084187631099744830680068751016050142080946331507978120486704982039793311356712625441639373878313579979755748752333568913200548017176914757450383296848870935904015556588714744919421497761588415237141997894047278032411335097702541393699474699041014818420690686200801589132446148533706143693985711181147214079847429294127031720173196897546221124236477147716122231223045485342864007401275993608271198289249052643743824589197609944478238655880233001723206061978696420127094567475473096359779485571114489802484008368423617511229395080228572249319926413729180857443332409954063732612279523002341760119726056226542483436217354458840615636270273182451440521752135553013176741177508256456607763265406266942186961027231873253446465068265053643468073377412476761661976683339990861472455648546595068995619560641401032330732258649296931547088741857348922697850722449930304850850111270207958522681237703472084030543174097683048894183199830292687703620548657618470214248756379141370209946934524380068064725685178204561401971949544836936657115487078199278255130443685978463184392091374020148076902697524914117947759488185014602355915118957901395769111031822856042797072340579672368943238557031874351921326445524762894531414633331727865146450140492898347267770977516169491237415026078276943870603896434414480193928526767188966934952333876960676714197834652522455317830595091566768575836467398599510021416534073648770253184272884178546386230339356721339924055826573331807661775023690576268050685418800607810673498936210296288305660912742839015651900001306458751887549723394393548426649296947270280080410273588715712211128130339638415908618733778340051962936361310065964764382771207123832704462537062867934206388725678269480508874693833269911278960156017525227608745216708489323831717310870623652455028421819470358688568251651441760027325029517810367596729273098523890532553573226358734309072263559749776483371255795449317243592306638801739832208560999691353158645596936387028907430749963315236550487405923617541550918410781567533716703525247794494884245397982753459092575963794986359634590426745969815074535823521235290911799940032164009501081913995572926484640624951758811122606831587045782652088923116699218508373440851425349581816044159875231282016809570067767082744411500260400055332324115907921138624672203812142280884203803462227746609501077400815977428522841437453273393884250049570767273174899159635912573102346912795310006860840817860804469701973264604957649093216555493735095790358704774985211230022698838097795069292433847984892086977661838382453053711178501977104187052627679975980220646193665591794468737230252072698381761439522239149738144532030134246485390724339219687118075732617082593371209016030184360201035280138532306291340698046795972564725498801545101464714360858085813893437345048197945285614852498800514672223140895107332802491521382604178120737148205721319083716889608007895171866172073332852666707286850765027145713548949514104150009823299411052758168673044682347457264545273792420838289214116893217403247299976525093968606581234065597888217582072540343203698146812705059634196131716241987575278419086325921023996872994712941356129151862490005455525804096247907696880584469139818913616325222758969069092990316868823391683300917085687010800654515985453795778844437216255522145929670554152190074063759548736382141773085605214875574548569008254873933705877654334596388813498761746853098142876769103802161272739240173527904875731827825546617996022765006448432255753223183032096778618062955908057786265593168940076909154042796359145491607291495790962646347658477224223124605253353781772070737456774747236496470374567514269752350590006296840207349995539717221567053750209759210304722402646645502155272968168404516130324572943357041280134678809330917726308299888610702965025886023242591972944734022985076482503118721398221042637330444473567987697173166549754637763398818289155271372016940085892206582783468118493629643903259500793842360863918793848987426708445048128344264618452748356569455847664673933830760419611653715711894298239862508668538030136195929057627700176586249988707060390359071135401964728520129976952965295402691945348925410005393834571034604154576764291793367480337568263655343294708967412467927416017779962802360953095537086834049833852577180377497396111184645629095000351708574919813295858741804270421754990006105722698407171765567345245732526108323964817298595668263912952723440477339091213968522416896431105335000786823652923372329067928858996143527796142650828932971758307846619867600084741441077774736543342908981826157603521301728535315800824722510122943633722674831523128526865587559922427274344660462705171404749982644322834463322546895464906580683288084373942834856238277404192745390561832314751632161962768194050076174535945435682415236437622632373052509643030359190705044865908081926600472609271068393721661853414462975140785226017327427003972822755965942787378286943507515421082671849983999968383129324669969894190460648137080398254563472802744164408665670558768980215384534333920512625880620451533562860726296777864224178114629678568861466448548977990497911031126589710968372442233587176140425270274376009176451646619520301998016495823752223936835723561954815211153407261144836497414230433364838702769017596042173344216430254636642649125475283256820083612364062667992184138637779943389361385337742091510112545218546917425507254718898585247415482644099475438053400290022695527484133546797969618031230099938124709095948286451676413863972468820635196174135430519439363230963464351534191631248403639054395985400844620814008955797083310116663625402146347176941009326735286824594304532790625418081189285220675033716313093183581105588342730828894741946164189448474664947985125089947529040341721646606623450935545492048301705434106229809943221400193418566176645006488270379680796724823032829723352608092972099747489952854707218960935988794048829003529661174580360334788757919714849547569745414212782028275094937916333720416403765819230208474349126456103082964816541644862485236867685412106646796424882220890362050632975032184562915958818322623248829001742465306041400846821342951621729602877429375703102056072981514641911831025922020916056774297672808267191016769679695554477495768686556769058991161795828264123326939246925539978035604277455874693355297868911554006849492521769846273714901373002793930345634694273727852422878846679182754786079967826345738068202239524056490802685396949284607317408720071103693082015530471434457343895250279778131198975104978521120596394290768326674200682655159912261817033912181429395947314698462988636387328949368990730059844534442828358222452885854053796586329495787837800374114886363919110682580666753045325078627710866188661341263649895903217568266338658966470141303192551587946485323338037936979752688388961863340657886769217304041968873410242833524263965183907967502090026848156555997022398025556181939644535326026195750117686227541470907720305324055435571427114891920961084796208403253776219745626632956117159802456833344535963634199321911753772880342932769629791662897584147323916250032388618202627070511308801862594271526921115034326942788135869219461562602431608220676727151172747462053094865037284546970672419434689346389614219737929215198664891531732678694504441373333444361334202002340640884112497127916022218871984594547543244027525269357390410308137444288297440957663964261153917103821522087673395621215067866801882941993785990001353088626106463007220199632831643767848777880550154172678983106710129852273677333897849934513091962661437754657357651354814767392521788031165261477405654054022584430519597413011050430442497366670999347065294028364467054574873890344323046913664265309124995194372761611195180621517622244603014243531728086668696867592018596207229910739555881849139386305953707635922156776836579362082497140102225759655008896042350750263009771894494884835759160689244092920206111629326480628847131786978437693711001214001672094930167354124143158173231623037059257025274856084944107002995778849935486167433084824803582444879264202751652834981309785223453293184626759853202359192928676164237746690183991140735056293934900200564741508945393872406136539723050275934873049639082113572864399432290478431708561523281913785835125705312964437291724272059423729337690557849859345725368143616218006436890406672013460307063520033367762981381017231923284166734474499724904644692973502416831105133053223864673724355746719288429498220435246517656175956230622796674152789881832101485660045261113249804534134314542781965499859574970111016769865426640248912625357936001205816413076307956306744028501392999757306765154587195935704081682411015612713758652500713021293073765328807641157311718132510720011246419887033302915537787871499204134919048398281523823619600897538249858790098990114458794468899253559200157010350095741402411069482257153686004551312341586673697204197988783802051359177701643529990897167121036600609537516665344828660841826313088733600523655866252008638353788657841885661648570136505383667951089928836072647443513874101218913720656866653095281457479418761827761526175869577651631438219881250417902773918551888679829009349104684964458520354130293392204114079626382157254440695332775351891585540206070068988592025519214134311781232618899558506565422526546017855775693485342861044221864111327738200222154990615406963360555699887032622369614482563779449387613172450056677002311945706780218784615955390505343067558349602430226916946966075654642566229639171752249601419306542832878703821675077394775964012738209350884933637575998385828913456502215715154202008328641472074860562725968529097936071148707391115355318196311254697431210366283381260695232414795561549250214698227265316694947822709307859929907665214609580540899813523918094547019260235539840582334010007817138646390106391177519566165456095663497473296593473339010287447819083017484922761236257450339527241360413639591545025729313108252749432955684108168395997058446116064375846518833108325531078249940426449289883875039770406081486976374470853263335008384527523661778037629782989433031989918126910086081352357187011998090440087235677782812059498362673075981936239807619107976694192809095666089552273663646088463729853931763995484455886658552885041887399552493697346837956996514479301810020795759080123326942447021332556061456374885113795981858177030796773849095945829055742697842953671479792674901348820689590598315091121958826887414317381711901998854907371421008822738630119996182007462417065586790146858764434930609325428366726298984966869892245079828174923019327046767818096368050277069286103403322113240803668446544390891307448775618402487279462467665072282953960885742453644883200659677200577576451715465011513348545026726857945733113384035434015725726903750693018656175034584701724654702101043380722867456390219939355555539342608144124270046742646105933957132523729097853127421351020148818335523561933054825658027778071564813042818784118659823838619181074123280926887622934862061491803993867104732530482907639791154733524537018104082885460456225331742729261621602377008199270454577944803962936333326770954880578906058131766340107954214207247414382248924303311260492428638941476401322054286547149427116482339524151191895640547825162380746466126425306960076794369333875939354052395632845475608649135586778264304140334401560713197423675529121445392740249303526096916133771681111297095138006315605365195343745910541815662545698054783301541115393708546920766946979814784543364116269793966229442719103547706841675647147410815781342577628509075322944824206250296993499388766629438348251916978309046711241719109377104195860880589513107501604751165835537990131866044071493788599838610783896019975773926479250235660884853381501788421149847730767445264979451796320112574128430781795104184255544677230189465274151176427285234773462396831747236197548344232680981422978720333781063332168504474348716351702159219693980888295816606661763818940590901716795643951396669034117200401670764836508445559515994046546237224998377296243115255023101578662981025446319194976224744058886171773572340313725314012567454223611187472509829841263999291648294278944153350438452098170873239637371556312542517728958522520118702830188075503105349115550363813274445453984635796253016592371561729416503023226802477212403113014441987681938527307323372619696279445968245702067638307355083236873333121000907755165820825480890997523654363393344821463369985184568744702440372888029739412405966900737646735273463619452030994832680124087396614761524430401644493328988233129885826668157206967491467414482333742579014057363649953166832671327201753316652877672455038652951820413297092129946165762330064110858134737782610722274427847053336436755173857425536614521585806977258103774518351540925814736459327501548773544411151008295933741663756693288070784342100457063182627374593126007668858307612832794316742382352844936489578484815232467196173387532310651732815515170499963504571463587985517500881062835500079991980323025455909370624837137958019900911972355619726149498129268783577092808909175732986644173555080387167095752530584332739074576419133533678383842159225116950897248064240554299180889161348656806181564804300230184883430638806877921310876510938719291328653528276032889783903439070339669836231036451838164810440335626604123618656865867678732831060585961373184921235225722549853060448764436989142571199991288921615954704783518880760633567351051656749851251780941481489733295003485221154226686849399082250662617988911803485871459931488813771087762721436885057264906873322840113464153425541100715302580102268575716629526313289005065549996007801906411011514741127275523226961444694532728977076198536291380690638326215206386158947842608326649637635350978080291917951942038759214044861514646512567394272420038400203411251563110126791666820960747486777348738666649421578927177455031965529405514497910713280106165709121681993048149718751764315494543325432120984425573452805657114088603176238618252445532951706215979115280027735001292677690551468454335396957454543204894150801487061154181728259339746442888345658949154217852835004998582108418481320936224421309284723066360657807094129529604457960752392395796507586816325066504524020336106074450587051898665578308776593666725513998834816490591805295417183354868860561029099932445345603230142798618935920861339240178021252405861586369234404342493528101199082540539898324237690620323263887040318797554373650860560110112599571867720740916746121988867930345506346690181624711590210528867207453718542861349015730186271277323811001973510348790494268195822248521896781470514046088589298691109025897789090563749311976554642724568289955074061733304961416518603836105821154063771687300913357625079305521333598570543756841424959598529192960373279193925655605363552626964096088029450686919689310031516833260718780410412819198666770999878031287170097548094798342162357264397353711218934082111698569197956292883806764471781568500295821466226702089259275145939683084658033569233359822114387021302141773958649246585949756949660536027811243247961612187861803066622583717473949969191453210171297957404653949669536255378807960168701411069121906054221246414155008317861929791405132287147126525521859500786077647946153925275466886872912222624565797550909562179398756784994518878361595028952903032141337909338085267631331442607351894239661997333576448347652857865314893714739019551741270767213344195093755398502932511844820303128181550840799596366922985835232107567033732218036734080354618352815030192916842453461372434036362568331000579720185094893494818421423781845264364051499918976002984898808641746591399181320422451289506114385907290403731932716812905929380631272556721568048946649842576769405969785560884669937996223558879329246749953133259011705275260159695342582868252756408247901838342915836211567933833898270454701365578634341697317279248901636158945252224196061163232991063041647611589051777271282859529147954493278706017825626478980189822814576738187928746945128891947070813585344835722163732531084269615571579983627720349499196620473836816642443992287599767191824081788032661739084404060390358406804792481753560480141756334672918238445216546528477590310978394535005179046840915342011651268724497955827964386027649591022713017855247683986705158840101360153004848759838484051967253603304306941162376780074524225269098247470403690823059269774006421126838156276964472785701975660609375267477860284908981683427659600643313092648017346306129410763972305175224046484372942105568403302159422893508760232115663162003087253213800863559436146594133894004420041355882147751631901303275907669942864114227823268472967839768193722710200026505778012062034487019919862349691133839026446537189516552813268482478526396548796662621858963450372211566164176858064173664564636813059716989764672618321320883151289276592496318145898432366562659455879290547173295900470457249693592085820312629249047038857774940037428219797489467062853251160235792269951200764542974379635451293892792039191831428400936386010072520815925451077175151480537706165636143579573008223844676833737901964721190668459677848709106078254276181717192341741032403319917224108397695744109220773872467092443806876073117471205475973745814780060928677144101901426912276352357763716927585938618739851507176542977275845257949592697977220469289250259678866271533496385776347476135914355459039016849834457174725062277228076660164909154071387705542820679613271851901959956834736112740226863083386237249381387245287106399748151732191091874615810242771337507941824069268778091702858034547834697456059645023982001551507962586462944493069087902970341785590192898181537069427488947713819382196627150432204852925957909767464813877300998745488984494261824000092623653856160123508995317762849718493741407130008105660585556804786133775115872492824575001466165550732887024334515362264285118808951664008094273436230085248704003937245112349387452230985931230053554645273655571796350089294266928820731107701630751110954917678674954092436809132571605440445573562806955742958960329703893450700501818879611332168458427906665290696064833193996868743540362413208707060285408762363382333046868744785926107415077347391163657277160352751832635525568688685041070451043155957671901462531527380491520392555615123804573350667413989436118780753541605984398891108513818616239174878333131724604294955821007399622164936346552203348702350322935948743742019785213788527594446994628070903004959547374286973022052665418952688202886320675586507790057722432008885631477041294135845075317333850042078163213348122554591180445223177116005517257695024133807107677848674328478036944378892923163429656848929837243742344685724530493909457891710770158658095154949597148045266913556694705023840542198145271452189842802173733605002460049938606532177450587925635194133020638877736482870707537642584444849521060361139928287010687351967791154147011891896940662230300048910594052716554484977311766863717808298214828625921778072199614677531455936545020643098891117949345800230597857436435158251853437226474650782155273182601425523702427616575252910715341660193423735316404859371814265243321344477490995325636434611911167480182923566360874950178192012697489411893495706129825073729026626851791441763656548264390213615531606718662816627878574669522568309849631980732168350863831768932896979800547328406154846716001781990593468465477661495120008196573620832400486052456249362957205223283797437626149244968793451682178082397742270961421836841601018916888224628075519125254556185578376856679834638837651071941856980105892441156459543231597124444038688362529380265784743831163967051461778822344080660605398846035549221616754612391440241636771907696972023558842553615481793744135906310040842121804388310718507904297160709049911903936454479806820206803047800527005230029073370775693619514649232449548606221383363955978914544051051721289243963065451457627725739705158897886009924265256319014201109345244207983985966863860564417353975789676699075080768058738667601361482258746645087797208353294343710182056065102017388202608680690692987197877855126023747231100424021781958708966908746431922495809519598523516253354292526472154976182583921700439485063773092332296401948115170905718912781558230211036061819475042867007444559392029604172334817986889383228280319695372075126804493660526668231910151229050901040775854022667357860670730074739514702294386970136614991118555445075482477639326534627615138628173599004160087213589800011661997334700077221929238893521170834398047480377372652822635870087307031494338969211745043453007860385776041898150862752247235455816015743076771382362727630877196327904712854950596061719784416495725127993374705230282096669220335816499394981974635523278439877180902031108368812865436683810739728566145567033326114690914429280722414619096050506436148645765390384648031297225759159132460558854279601370047938407588027884287978548040400459467466652629700922831658255593193275550714815150144147557373537337305299678287875277082501188154173633707634795737277753745081434892680815911039679493055041431713121483551199643042484081872342598938451406919297388592681384562190553474987335043759679289254936075424100008475017664190786906867340694426047874259639001817733673242031474993735667357537451943567657968953752202763471245113704385338257721849395745892089221376200301425009921750073703506155967326009214670865865001021030651664769010789484014872973399167415161831085810659697615921654894790566578292333893987670709337250243620131691360662661519151552230326436106222473839878383617372314432991383402609227454269390017029188135424796214505857639869253638778171457514080169389066886482612226743768795811249571770400049672356221982612810788492439304827264511006158658464987047101163894192972732626086734382289374123162348048201763836714097732798360056972022112903494402916872200734455524458680179826943164727123943266739434256248583298164528433904919435892476286179807720091021016067732809882264331609774344970756627095874705817977590369658507131401879188352246922812133385808785631221775565407206551318267529882360417351460534782881588895509239145767858020015984547187554802102894371116812435621015026311320841080710052366924348534451109567630657349003830437340690676364581628654383815109210681996657837110531545633749447152903293020887077705653028816120453031067918540850987834794126541413558018853303542457358277160551172959706795627823711839345963336901071312403149466857407676942462720673009495864256538080644670288326931609276297689244847128886748963385237755230368845599781122662598916242562639091057171195333002054249192480281565670934101941670286589530001003969952115340044321345982541635674840851728085932384384501774345199771337924909681142322253921889765564793018071168642812534458878844240094492130448416313307639016494504874546988195929107968892035899002994199493575846854955636711559622346123508623435707973408637700373749481897236569527948258539691216856520385878041251719523498716729978904058418593655440244099440972802246074655944778576023886542968253464805607810651631671429340002698359824438066257542234770306421730747160023219262846027142669156459322429511918595646805040116574531452759399833019214903913842720369163333115478861046012250751220003915909476016170388200182430764315121768993533354729101436775114154135201221857335619876861003544680395700221683870681339335985149787242620710715863218640314994516965671526208392123058381162661166710586467158879330753911164427243056564350968832239468186108616196530031695741384846266069044283637953181880229154823989826827588635290176048195176451468285126232064126549414123256458368234281868988848188739756738944820721918046286040302061016070108624912645277297658188203730936608633023270260642695469517743457805846406534078248205889145692014599097282955272343771947314910752630745418137806778037896023604994787404258612266822316810503160260573932948618372524847777548721914835381485945262168898759870742466881134579354857082234586608322399518215737251058943054526413697757157886110698959291754403123037995989936071237512995469969983554316873989426155050842446873897558165157247221461090957042793936198536343598236014428136361475404856560251358647797382023649556879464766457844424712214957216122388471388642992940764556049668401150721723462298178133341338544430622280393205537746677360846004329068800819675812676530258725437572298084996125084254792265630861828035513316566820952013523458853809573459362682378095005192146118713335928988667273532470561017109135866153117936645750339662943291827346888736544123359970494646367732525582766582886913098931954344466632308995147087551646147324188661359522375470855628136166128018339727915377755184396477498725639756655719989282736337454609737740309212357880070182474559202719239859141408605719385756778091385907758243962065040908531960031478461068622842397571845155097845939646248506355973281425133979490404358705636596630208789508734704720225856047644216383191283134110684404795430344830446160230542600115241767392887347370681077640150200671608850150530693708674344520985475355128935533323045124345895196834114542111162789994328789364533050205891140849077063512893127472117727516581693397744350701182827874796195183742951448563119004651410776198000665871914986048550904087324181245572352394406115376348053132095114293670174171312562308315175116806088174084350322842507908368719024905243020768609621410131592821169946227668413753057699233796707475687074122475894794281981125617606858956901896564792088499724930583917290113580193422125707056260660148702564000492176912600886428439844970706635924899432783610162746311412906210186580901344373276123782783284860652145810916069181581702067245189699834641728326530304489274346119220012794767628245458246514502827979712711632615299157761866393453181733093498925571543287958675002613661162936601534116615176055162786415831383302496294652829845585642313884056058699626138495485463959844850115816242028836489319611099434901960748239174078772750573504975640157150316468806806794616485596432261314110248832226747273029348518283210235073553763689510396321614283592907659763903675891929496589204062300842531511434191604036828384830148509881051912865395669394610517709372229062855703205553671406668093397831972503482133641175576717530363423901639025756139428615877152955980537939323118321311210348593512029648539144077014280509690010069611542642673944180481573970145156101965898753680125326474470835891750091164717453960904798551243653524340668027498418516189084177529932574749691223937805575452140357505311343204660148935938709809449725975760493672505592345933066552083515016355057702681274599816672740199055715599037272652703293434976343226961227548864056579460429774840726895742569311554355904635647491960538467087590595046116966122195398225364373503637557031071394987428589509015938186522261952471250717134687216918945955587147234673007232891704189689433582404101784511673654028178671065143085641999906465609467066336094843846486885378143118938544147269872718178334850988979954134494525462267726003239822295423734000667033781774771271094819436124002779476164083225269309996276520506890936297902393592716771140774308171701999568698274091770563367873381211968883929561428696801014675020889347862541605669702342562812313671906227505011693435074370819824092880798045778403589707229872656358179276670256697341968353796312680351977400258288705228548697177185409850991491850704482932363012638659959462362071943610902630052466627828404123173298860499288333380785470008198622017850964903934655017785213016289417461685171504507874800515382938102366587688451691717462841554363627476157451406204219629883601292245340396286147841768106901057720432898183705006724063002158991196374753507027869765858909538587693142506945645026307430485658492584304149676760427318600903098495701655173838127275672800403133148330735584115093181796194276297954737766002668168888766766152017265569755668758704263898348174572937825392541733867709512867361734822083231572288530379926929811168600268286249908416257163049106424793107738621755460311600704953734100718006079701991031352882933150619219845039683231016638951324739114389919416772559386922459232938096889840225622039786659867580782976166487782325652629939647435801815222943108027812220459560860678534496029899904066258387336180538703624850818552585609641941870902863784264495022885106936112963671334171203987727442039164465440295522584146549603640798815402896133700064675618195399282216347086365145438194654113056462787048711038893440688264550222476017162746647688680358959322600705017455552278172287394250232333901087928197387183550272234123683386267964920847993767138821269462794525957120574487085084995544386289455359758269187913677755723646997808209488418261729585851236512825236636148763302661077551744020909274581121805619554024643438350793837572671092675263958896011094439338593164276307074625284073443014417475832421293437012046424632483077230230863053266674943644568118633758988379474431513855496465157405988905889769760676258142560297939531184216616125857930891561502416137952071998996063073070765157813011390679099521505160342854726841032867444546250550853833088822900823973581208917092066445356629405910702197672500331624031232190725343065659150652154315710029698869752464939110383422297265099465777371725415043713190298606997849741909292538553983541564951630713854884540151423677455693413199164184307884538713921816098453739854224221731215242263146131925093821290009748867602346972753071598808391275666825252392148247730781706021621713033438949387803251984103924229006078249180244384827110127880242810511060889295123397512759497299463587149335590501128202769627874053468393149653419242060499255518281637588202892752078780705518322777864300099024967279357885671086202548089155001754142051290468081450366796825243867042025168525516897947630004223347346227692799045642253855353371095434026301847704886297403071409308194442594133794833515876624694694563069467984349237840297533992899192771221744173129989483531371969385974390132744333125714094969853737845604513835859402937513227603430380560990083568879788266748881488833134913563283284797474741013593786916732555514607757633118391808621498275359732887000794493381888030157134969837049626379478538833898868407186288781696674123309905592986592126607047259211847106929252322796445996787318448690255046606390587102787660065058912138136133294743539814390163073740093801780168787380516571583956715271530242245940143771616066415598351955597697012175608262597729733471504418229407884461208741792453336506477924689414278078654717280065498216393445440474490018866168318053620972146722977307662241853686166842420996809721870212245548147323168376451455809474392105370423491420178113264610382105880441813840452671986353054808299379677075945850622439061889265186302969460076831082488018075618114591572780385526953189287734577675513999026841690637825109773103065694186594264714056889449153022341860715530159035153466514314211917763103133337526775540193924965672538982342989296266820480407606923078761733953536658071773379366004309924747620324356174159021756099940368677100984778675255687967335385439332161495962509336539772556298721944670381594603048129752910687093230897196953786362535625078673586141822871468864632845514413458320744675227349914667066082980484154184078079364899921697742567881229700810284527077290443170599328896173628559022456788305044608072746680828441204595776386573603206751244829684022802290837676338669933662676944646985194237853110838038506986383908898382695751373867353491567532082925914440351610162693951050053775406918933924523431152600804818115932798681555203624266958669131686426980671300628547949114990446071154335415207459215933367671723115250208435896987123897931945301759261263394229732528238402874820133270628057196225511895793070419155249482972244449602651142930396710108632936665978619065290506902467246316978689184972470817907015578537927774483931473758046973239242417189328847952409144742801409921316117530765256747295189371773014174784749916943972482869933614888070569714999052120223239129221943116058749299005824517544329956902904268391406093196825590526979958732179585897852961881658516418697522780002884835099954580742326145570440589638718060349448596058833533640772919137136467090141498422648918795704668232340910234486961181978264031626461699885226282031773387728011095841562993275984602802942344088531693185862888690687208495969557400469217282611218088012927740413950013527029844992530520979797885947641418304713504396538367525740162146035775925269162572376276513974641986833588943406116360223007257581143997054238767100374020021886338534715346405919089067525508198329045940538948340366655390271645170835795456390096774609554520221002772625559138217809372390612079599343113127422896134547964420015182145194836694811623929876203330104463005466719722665422419984387640633174559161423350654014466649629741925532627446807708707449618375005986797627510922926738203542900758247508588601308356895017598818576422547341168370936236621137661838905286197612041284947849675900742362034341393039821493951951285991104157370865598794348676037250334043235979800820503950292103571632441958356605668361649186361787339344474085147164069425463273990870344875283877550118013747391921375077704227149617622753643828387879967457881944603242316344146571241962693623215420728856314317460921775696661096649230711166879586988529663234151571450929736447207502800594054731324230722618577530378887896854683878408941075104810947480617069167770984215759484454676817312559105286264833083881279908558709891264247277473422038022593914622792238286490331884957815723040746659079160783130753258319529204201303237121458010007921562788343272357679268963907416678548656372096258381587465762393704348644073824588979846933681648211838658848629170624590299703091191370961630025131813733237142828470133472903873437856736689035179262200403057062019165049323056569282527254151043750482080368803777016932673322191401449485936021719454318591613475279734640081400480779403251718879313070430844222075775828251772001098041387514677506629995313000747228673328342083857740356420389663539362678977681734375321999045707929812878446782884001728949509437232997033607550765487110706998244267485335605217100131945935536551073775251040691547323086834883438001759317215886995191805256439702949509193782963506256758046884512886349097565103845855148711284554413545644258138986914277074421820807548861250741720665452564292388149975793649905036087818393779415677094668612743642654969611217566834401872406567468812821529832711136788910324187152052067610993596469518096250123096445785323953378754118022777016307081882480121121659943326441292706431056463754380428473066473545813565023369011226583979918536309006181180572622806104084761786976508562517582535122697965210028638176579268109865386474769704658359535052258653089941459092733491633161857465109261107175426983443870784516365277864283506690412154020875131666679465666992349213107529452030200071462530936503294183362191154651542259219004260486951648984557838576179093513867833903275047564250797305526351980879163057168842650546532789378283617049525602292784938338033796680110347422903180919475067364568983775998162208119443298485087624600570982994643951077148411709633306370148870109936089136974100380081752019625766732047547422939537263059915882102860979830292093183502143634742448734464172275369470745014288930857381360820754563727977369040300006613856949883359874697695213110963961397371838192494118823728108952983067817658609954521236159667056437862619564903286342334017335833715597907418777870338244494814476584472268852426129510829421184295928401482692886907335107342255243445345166391892914681666604875105740664652877838785555519534409574536461503412694445926902963152658334819300291779100503568851667042228584384167740318104163957938720423843512615888314193067989629909269051601663027197312084122084966596886833813019994607513333728716115438489405617081000934323757808625212830496503986229697877713088322660334271983771290895858391105990941000234599521788348703548160745688921287686845089833519531283555812393143458846841047311168973261691748968942390326180251103182101089854871090987034286524808326658796796606053854957207546889438991655417784991994797579845892131705180472752890888039786486818847513068797368622736550832783595932556082319809031436806501167987940074340327358722471579285621731695884764447415558318322017063091886507977952101646388518362759464873837337607033217052538953138795156391376998470861860715310449766778210707241211256897476642001001768251476496519228929550620723573819830202456680703687032216801045974685147613549005243851918024476525691990021771883251241836816731569175160016509667265885958612536641026755128170636554654933184971896814939504960849271474099076692673961380127337523042906463618336885621080020702133213014726399883049060153702811515969667307773931379609254400845922953317474020400307750026291213011880508949846592651345310291157521270839947045399115616727440158736575287675491111740379844532009889470796596276591504262084812327508846347237263941260319694841538437803820014484665858702995788876197045543826121834296570322314107578646624911319570792991372885842913449667004897919446140059868327281685970150849382273402295282358656426480486263777429238997272693351061017397798591126512239370738375299677907739126502891367774834888952363509912305979751690904650472328959078374120631744123169119513153586946240018292428829734537189160453528229138750328635223984743066819415767694869776887885840911362844174219009351753897445504060419123588621360545557731909349023493633657212224953318072004759421264843096102250351169242525644927250107313044945720443276269552445844132809091644040003925879138010349488708117381212156946051320475065135648430635470125851812102917600642524173426558144975159438841268007109474027560911248324700459334863703509173667201423499818081515852590124547788289362343805756315461001346875255467433699955062527374043673725556952984455860267356955666032869384951785407351323784359105974178685696526022161748879957562301733595861670688614442778711362700366075603354969276363361096134450276794529146617639534138261318163898535169880464190898622240969180039707016716958441636362661170514012481507037941945446547560732962725735764445833310652342632539761736936169626677652565981827888186073088534527820887938251514550525124614474657733358099423397492501476564641045751572521522521511553484128208985055808231592989427130029301782343204101206655034114831613000740856903512675928798410842981022568179486759109968750116611170672001969144404961187521879463887427998103557283423703883987048484557316508786295937222736122097996326692671588959397054621964927458843239949369231633778294490570318394863429253935517988458511402763302682075870305858095813618231266479233547695066010164443795651593445271268895111583981711994145418875940585157226533130086231718210308873849634366729836728474870209300543163770709373866332651080738087340175301386794175447967045645729698913789717581190979547367614061725565680465986106975865065529588649346558551001410445451155127372631622841045837431588083584784059708730768460552721275842210578332426645979248208864645933646593987183247837631581752609582670563160018938002820082986404370423831849405961239451865921522396259676889603469990709621637008759971328270359235572700956781535555316479608627009203919697551020806628452457561304309800918013967219541002200624944289750896272314992124105295981395923165055560105233109240057747848964647141004438929679377946649556934529266934642677296382679773538311022368203136659101735792639914455287469055934983844406884299327780701174120753294329838743646517548720770639236487789137980336420434051473920412585511025594063370962865595794656162471563979789028446968151824008004738427801751423853565763596526974903764210773094816633285299710422333619542168598885565001919520350544719750310310823345422017190060235656171389943088125382340613486191946503747176692260642017002722493609211830184471154997965771143713360388410456805126282362091013186463615620901173427132939397366518775889275035561286516799649960861019543967765858035622085491739391363727944561643525850670721054479614305421988405459025719094852945619902128425314927356107721817140210547197013539997751948608210192858728332241977695636229973539106955305506134035314874521543914356324036225613605884371488152207409533187570153044560981561655298150062960804953098737054499603147581946475788528269002313442827178748293091113422133614106996310543071619660370126379288995089065752569261734928219240270015457616437970455457925856675496986930657831045225040262338508100212030484525529875151303404061834772847528257535867704026623506597658615106206376005831554598453876805164306711909820179858027320141433778755796781082658170891733602922743744816435701966449418731272829745986230739349438836328325147784814832001246597580718471246759871669769595003541363684726585280644348044482248873791491150620289260369581094679816400625213256634886257934252281349607681623245518734353315726425127446518465925733069385286550341263162181738389287341323576431845411102843328753285784609441640321777011598309656408680440156097792700822531308625464719671489613134993934496970607461493505103218503717669781309209787970716774417847464325466669583533868511171515102754617250710245636207431836320177890657364662885363284306045140572817249908182460246632478108378609804215359660981272445619476286632077657619399772189693262617989692169894799473893815008244478050644946709081766401074775200539780659435127554412159824868549858767194786791646013322444913071311003806105676590768304882673532901800603186333108375854589500267549457775376624169144025284487108182755063514101853620496194437226109441570655620976331945555978647631194625213383558248844973717870230213214802302623522747551990781619700974757431723690390366620554187478944415297389003516389371037614013922122874424681722992288745199983623085296667176883139674009512942980888229397851488702426169184720756894001324908732920107485308922920385778999455581107673859172489712981591380356999684870918585722355336414214083763713946981016474798794339386992340075701416595776243459132729885012854407713569941427140266775066277702199800523807235401308384486633058185911920796732128903398925294077394997324457588387997800347228871359532918086536748127499699865928990627210796275167842049589948401027666705782208997495150686211882636643936175681031607217589726798883946180448460290865854538402288712823558901680905246923150283645071625255511763366634437819547845581579873700279545981120770740278124899561461292076987914962131416977384114041466334079302648942099655693480640094096555439639058588800000327964876764571666750887327950434727419181659287295619243410846937375605584548906250363984690051647334400227271655831288371821497364685653985946318422409364404650042355113195212499481360522285078116400182236811602692639839029717577927007428004848646642427303919529982883587249776684067434313677796747962259471977509957971498863313524588391428240548191758184609583262992924911109117839362606801389107948180819896117933056222327683172038200890706751057554042589467235227533822932048015463898777297889527833344490570071708534704050531698373164888549454814093449409514221710135407630440194145258493869296952132300384975902334218258079129326139435900041409450134646659191635296175183059383490797980610954851296052248527716705686984821666370900919606517742477543346592221673351238033367638662942431983009813055338596074672897504179239169255447677411084733546598417979376434928209387024712679053104713162424519955111724334873202592388362384326771678066457184162739621319213048228365388595548610107681785621031405396639275428646855749928341692947764339611804124805873753559009405074296571583633639825238125576350849997525072857175128003068337353995151786085942151404996391241229067037384267326543647650611991361158687584110176107767376713731896256106030709649697311448820313929605428721896437145064618172179938480106039359451287514982288839668578002187841095749481049600472587335622761520978042759912895030500652799162943535936102309950188921445193476716027786602623315895117060205289146636829529228106586890153997855068420084414705059195277649091596112053722161510957461018873949007106776948205254953029009497229724322012362817157304979617365116998154907366789433968103096444034208022999488763097930750289893255140192516458963935146941660120097678133765853631499687765840208845227730005908316580819044521311424424240549073886729571199224134297154623753812895917045352191423377581116036489238731268278861916953579061256747242061544772020181858671133494974285126394566065463555650759427103792213235295803643261653718605456560841374166477916046665928498843375372032587247925289641666491231992278836997924813553681981477401114032809169070060797686299570575963089182558375128310685845073127762846624934273834320363511790963988354315897608463035739870322335191645971239934893948772858793127447250157880775082808440966025170771932542318340107797971236073655226405478186758382743421686195775444297568382200632961856586996270867933405903419477672543801015132989012958828872520503127997757679099771373704389943628713740667856275169442448085354808045250114070866118412606795782259302627508755263154098638258504340175734308317367924225479686041522959115407763563750729058098131321060656503749008089707206629213606497260206194819941797923397850861331388196577718419871192024760247542114969192738649736835929399999706079799744835222776400156280933788704412277841587028449454565406152799505845086859387044934673076461777436353362710571059600228507597393641764847244990466479770450701835203109174306240474594732181681381493782803912279426032393105182715769636273705458938125429389326047960253118706156587487751857679276374131555468827133021735441995325151620532888251211565488537378972080401867055201795808158863019990305368150747141886282468397108949008930913710124122129635483307203652178217097004293869075268257355481921233917665344262109849122050151725080369632003637527019812742989626471328415764766807135186341301332197719536353866315330965767150953394853128819987917439163612823104487716436838912602494217709583160687464779024002956632538057611931849038506172374773451087655569898324244790614083275520304962654069439483426270252403187981460782321505696105785083979775645748492091098125747238472437936852171784089894270236299614734928834347686977794201170297385427255273006048772664092092533846339079293167543545651169477906302873355686196889109007028336490891886337945627754974055016621296395406192835391410056914241557612613623772803182249594821976533915700802576551031090358859549141958642949092896627694445674734107240852466554126453500442282889578500697479643716235306342473415572595932577109303278381701058885405795432774573676449333740843365104053022530423041918195584053324438669995733563915440474740278559583559204577919722654317779655378546664483472982014806726671974023857856316189327740567712434205790785414103026309779923951882474719974293647679831746771303198236412847570535038967063379471494614430370132312602796497832081390561218584042655044994832727981491324249310846652891804743956840789269190924873257775122116867589081140247780331485358598814683803728670303145028117192657077784439938686188070491001895320914358582914363517377335543596646334759226248296794838973345579136031776166380895757442728253139787946015635613098918775721554162732745856169717252380808251380878738688818911624676919849233901365377961229431723900202735541640664960077086725993077158660047622895236894189818277645011417645864153770559011265766208494068947471603013087290848010471709474101469699600234933994027864156555682158244541502180833704991074672293385005537491140950985713597718522592235858557756254210511441158081473990967748908648488732304463362913428247503800010536674767782910962333569864692173762949659325002667341941514665338132557061948358006160521491859360619560841396943783815552799519147185715247779404672027400967945793406373744189451035551132206012134159604021189525230278693779618541064603740478618516601250524711124853620169124360765047912398217614101346449112135848420428513687655108340260283807898171285849704945397482220867674870071665558536245936288841624585366915116546974581510980370455411695896049254154378303355233443754647342398883610856076236596490142988785550654264356413675392480199569496011133124158022993618392904749333133107823903373634498775746810667572375683417698772005618760602766984636325439324376161719521028608313523205572506895447369666930099632600406695959189970060780535290979874765621260664093732097936883650044576477093001590727608287338060528608493564105598928619972168942329772790068280445273455748223663644655126789996371036950141724647397793937996145470366337976805015255113548317358507822127515961117354961309966513515486234454106981048729756036436067690753987069775549859390668415547997256557785622332744935242666160877987633734481608433235242496551643266476859374288795593485282724401331841014573237096485819662656030620719494436356653117812025886429650416170857660825441502322731751950480587674620597932348391800744727362901512480618902397081540923421169697350660387225487623401586833875854909535574621976223427900042764820143526243257265756533079370575495701134344990793179053827053492412057510557723189580127046934221483715504247779887788366049827268410655247697227935203630260649796871410557606847451107891326458732394737481402507718244969551231916546461378362806625989242970125472315318810536599806335864475582814175819296815136531921246337144838077964159627445427581344295539388316617729074422660114405403415871126437108055326070029347472414783107118907772272517118678323292436872784921243837637890087429757545672941534865050986816266807760700830762957871196570973811571728767948367885943344126944585143718838882811303065031842725064778951423635912714857400497690829063322789872626908200093173863349874468132273440500869071361842144576358156647380704394395999477945700529345886928465433594145482824431711570307113252007191743769856623037668373764671864904357665661338544252966800770279616291222079201657798651578249189390421025675650919916482743512201887912958110400262662709912080322986368549240562861431258165201648496419743274630733416382173223573136751315072953946287134612431796437710070781101669984086066613970487817896010812713872310531682648032584307528193260241177782701551329895155699302606486352451084669539323327033108000918518497799413296254157383594985365061704429747844554222270303207157428568038746307999512588668191983621708383102042574105858831893671250937704689693668924887434159430789601083571425805931874336307878771701166779274977810512365902427503952001897364463073250076208436253090067807345554280732524524247278001721316241841736304565073882751487630571503395465593523612635839548380687090832593395705014904246143289477874044984791464910616764828619822006033524464865736599512925851276843390773779459630342612989494288149520209139030030315338071958709863520687131694922937960107261982872230734694095841927461384195759130807946804600775996479539076463682830262821410664780145081790917694394234779461312349461992256946114592760618302165729243029819551166610752377523121416002022811562939006286830776253301142926222742455088836924945619835793505686415379832340736135107983974461647461630904264635538127924189914210597960918600443584879969822359351547229132322101758064224014648311870074998513800667412562811269149092452324063064701779496761403306528585788617444244453341525122218732999314457579058738764540046430327248277265396272676036852296301865095876485377534392999642547906334788578390707840951937372594468695279182479601477104429878323991465626100471062545457995847245699689147457848560623129814853099141498344223233273006360967129411149028457351567246152916362949024094586238098983815157424674935438932756979135734329721652008049037796338619591877135987197699053076325061760412206185382608583597161203183886980048154804068207907175367124884095482884591691342166487394028785117798466849715912440010767319064863826635818830664598840866809825867098783373061148454876874840993578137036821036238918771228307508128992289206779978015297404836298485224139104654130704183193612202705011295011663200598850539357821957849351789672902948202396204655200261603190799253129689130192561075545761138813344521566519392404297136089782374856436946990329863748372061389948695012682636468809160745749860548641717066088090680755767810228874299549866327469504884411876536686360630152669237393897060874037676352827242040438045430584431904821086012107740871902891828097227444991789522028986868008636100906486212789282342433804150602621357733991743850398363161801980562024564105076010571167595408924097319453812373609378948818669590692452175546118125991986613289644130526594514317558306454439014639782138607060441401811457668505363284953343471363562321329624592925022448720203825882036532683288576067015383434307894958278291324929795435821613757624210423910811777413254043905510817671214207030999897624434536998287722329843010923788089830631703282137171681040249268649675624287828158720788181056634566709585956275952290445901653070106025853381137259006786331810958466578313988728440719980631868427192660359469987818281738372894011429421378592068897366808614052851683011360409297164348342060447007989472132020665378063668406094475146429295477267481078103714649681288816845942561569075785355980723097706350466813115765964230021450768146441278530368597408172018375313594022063160971056432694390831466241533062936605610555322412239506619026742563506963451422314495942956083646539267832475367863090377848169550352206421737735103668465011323355030583936355603672492684835280588848716922581005146292119248033598494079820983008257731921087990000517218815127266850618506118232412663708958847017359038575768713360591973375766826199417087898684726952981782056239061091206449895139927739679630229619450947463962654544436045050111840911555320822897568882774975463308800301621689855032800204656530065096007207022180410324434462318488672318844310249167623703682362734218986535510626658411222345554877219096708201070077208629568946198991630667318063224732673070224492506219517193695987906066850428375962576586151217442619074139988232539562610863716265455504978124653785630218390096588495258710569520112141774435084082116409144981357592118889736096410754167100384354005919379352673598917727367907986490192396388951310411908424551756365122000339062634901550686270070024242941419065526171322825359321337824095057849396536613461056388610472079738015618527967940600201980317802939979628965382917837165042218804161593832138036535552374834934160671869268151829933878445066453378626811219363194217010734001833997061951371069940711865916946817109869616450483978274731835445490978367497974373473325323005902985692504611183573025674513673709264303226107312374240529885255078409898944951318800732656457187344031357672644703983744344157770614404446688497555834086078141188315283756706777147715317252521331991934096542984650774550114402792345335282608286788336105998527449952700777062372352666035804767841585064874366413344809667743070830634045374314437220168597679620800903629603004446564641445616320325001173973539493917985670968353316779989573518954134953040492840872164413685209796505893192526165797960135834745396777204491869075667623289378673395812190478215887600379446823281425092655180475004766393105007620273406025909414440249458024739367694224701686288566798981933805880876588792871909481667345312330415828318466883388165509591932098014005516378102835047188523748555399766654010583217773334094239162775667484311183315143832914873944253670889613524312329991629689854304867059608206685063301473777430895594405024259731440165695054059011895856692098132280608794089277654920822466993470491647021965213538055670901230695238560087530654172317373972355507503879648783103308956659695419733882281334709782575949138630953864393788851518961341222561378326897156954955021422628779330639941297551601819321411430913366016733226458790801986542603329436138671085236551254272860875180013685771272550185917846758992300135837782229717846540013565495433806828245478782486405826653088184990339538392869907726252655290721467284504128727885574125582507374553944381953895223751557405696392313675685686269323986262312332653411906812109572294967043447579610251731351909127043771932079448393491820521724144109770531862968370670720610243669746664570648483764385900784232600336831543501279143896627154489198832110414144941596182652415115487871665254672634725165475818744631519285217280057874694252576501960242628754189868650841903217728158695731561817662007214857279409148983719104607805356313532333922766106749538649003305809727482732439104465053295998416255578284269582910864209559075646720935225736553854093762566879391731106106418466204625249777889736083236867055741188521176819756610830290617030173706632739506697114028886548929870781798847241517944450101057455370796924713565395074476642401995893234530801273667320968372718307277469542160537162384253734506382078271696523959770709022110733246640124521190700113261342859570216519710095956753888501739266840298311318860069152381417885808045509050336790215806203859953626272849437021483571518553154026532837191243889638620918986472477488852957865178610642603727568237092791836942744061451846928613461610178125848308171008438321194421817402125289528074757326469433780131306265515789720489150613674172740347629868049563280757253146338647736750065589522583392076119592632264806335074599806398497356510079752374791999518017517488167033327405086145092574686378380331268487562159746340506368373259949530584217432306775143448173042973599409686676176567963384721036420741372430817392472742596083822173597145655179444303209623584028754947445614750884614036828291127932473160593910208136978003975239571470687302807932514677145404968695708971679815211910331098002270431403763960953415632079959761181851272212365988498296816815645192480201787261754267210288681172261055558179934471348249232876115645244468195339546993059851501747519851371965853083024611106168831240098189546641216029446115500736654868091793407157487264765232235230047991729929087123374758215860033560526535296967218199972450070485326674385837733939597229102480819566052231963534281224919541406832093061815775556833430562710243333382714006232675352166134050659456782156055023569961912549239940682666304622459827061861897226609332912322708190629887425641859436800652774169162991508212914721551570490109083802289282458184281795278750076136946784899672125731280742434772023196051009399369353612107523626804102399221175394862816933607440024832969326552799501066133385813467849498418325933436183699275876110793641259436023982397631881928298919906925377758042056034606845831146146615197944167622507921462287009838408865260821979223556722806811598702980679349042732701744553180205995101383737611180659624675842861405725245150879709140648073831158479710343097622952671294268736944440933642180134645114166907823357537759880088093562923732798849301539233431498764311042032430409172653267609722361403824071788641723197826103415009989041295033351787986945578559262955430747291706170730809486104290686963963314014551251338482212827608773924028156471142358899169085430215099190887060446169054627609920628446591986190090410000603628047555375817102964746762361673298742151869326146611058335674828500128179424351997380916905326488747662716190887722770533057050508051734421010415376485648631823747912554933678039510967601794514281917648307268043635095548260069460943020136690506081746604861501095601141405390784357216593127993993172060085079404448754422387350457414221368024763091739210795428847647658388459366761053560133571229362121402656182227997066112077454119480904055959511498188658334551246296657897994479482730653779996043665079430558372898505640382407627534565832561507881646579938450410055433516484356397958648667755403648530541605383159372219292573861703299969043894073761369690909806093501387601036670960167002693936842728041000250477819625744275786216084209139817818239995787451160608273170673866813564087868012204812629428233042061236269546047748015385797959916915294661481354539238256852378550703254857736784559071370333490208634844264082265836738943346098186829781888627265121492907168273618701983301955471595024711400917922099527292012810470176800339387509431020450327529755194893324346601557814755972473502696828772426802430390008713699039407059828192751014472651233513406018942386532854862785604253378173878463368473045250048526494248381108328992945232216731725121763168133643004874665098598475145542340080281251104163025252202925365323347374772978550965563009548270523420888693977226867568785451945813500981969192107130151037675506202406126375062358925079304488751313045495883696488198238511068238148742045506446662919916292017192866571278258293632338951318379627995749668939146230588545181638163319772044578894803967349348260650562896027248668897059865088516105397419644575201027830439368675311523142142494491294628836615150422855268429905003890198497499229369791513990497075997973447485774026611771332426254823895820005044786481593906498411407283906686100708854502285565258204156627421282239585966597776200534924247283377947821267327310908809521958886074956510224794093306539947983685978933133004062035343954415307121822547032174911033733861165797374550641944542817153907112538352312809406221000102493193926797847082131470608804504532566939991225944298079559721819079164438333858804431028907413659151656048291440098276551562247670845733404712414300352718185325085783178450376135370683179330135290221560685050039781787736483214712676836467646046487946696954892717068830674273935862482293192945688693064693178861966842956462480431417851563716414198615872949775200605450094021950708863622636248871216198407503916132604984087383476044866200419536947063179309674725675656534086628993635125611334860327207909979534586947284206545840796585077424543249998636627965961872548641240888476809679981719658190420243789722898687464259706432573249073435021356999154361449944008558534017028202674994336076675241672699731614386380205196568438875171932810193407894326443950165033012006014954494811152365715340234308038859797824553448756510607847843398201264976679422645654635747712981360492802034312540572691263551462319461019473756993210146890535186104800765067179171518499006925732537414642729083628612565228956724357123514677858483725522876386005732568952133731550270923283218100082200528320206143027935388932549325948512328454280870117473546392957953875431424924083060171778813525600203231453186602891637579923539082558938200088117726920260732681217664200100517623237698538408452842398927161413443109151674152215548615173268321352046800798850786524593779067454263245858984199257933022650730464091251938809068543326376599119358129411251587754979886794066397915376297690552766685866356628467103566261505287112220006921929020881926277106632454123883725109738028967357110646272449846100248292106878998354423512169836485407382011436748082528156513508432002504798058612291345921257491161637500472594971079143377297036000324330932358914311198829409271515037169248515981286516182361272172071140671342585300040755496040895559899573758884950606846175157475105389546899309726499682865095217909806763660124926235299058954917218745155248014612101853211711074281936887313781145915289617795046313679064037967124529472301268444700202005196782876059863443284959832955040934502843002139504770588352714048721543937257915066979020738719873280859414749922048542038018948713742356807212800746575584434717034632331165499002449114504949155694831427961989445719154218242424020957676078885803483769419214262378339511515917027127094099339050702676426913824385740275656856290044953645477853795642728555439680090907680446739368929901985103474492341098658485704700609025333542333825242311959321951562777593606626831815502797188946913341649135358761385698688300470745802568047786356166872937904691712155095412738657435209181273993807165938088689703945615154915304585593017687188688160221582027318011890402642322822557000284156168031979341651868379044773196522792868534124960922501328365227784199645418969336110624038659660890067387915160868793337178049344483381191574325901022242578323653034437260521792509148767843156455051034872168758427029297461116971033629891006424808623115633140299232544427873073797805055267165739843846935815548882903159815440559369926790141030085093283104985786340888040930480511715041224919294344909543649899348498983469812936862099160533666037465540220341898307257497857937286212298321609160049920181094491765568679002624803272013268903310142996718933759536383108237649006571752960847769517188146748545236636585480373927335434486064456090845206706959083365785677486228247171678487106775274371781839244564362980109870127497736681572230142453889716373297375663615498791981379250751632814391360384030730699845464708161420823820259008427496973020375640595660728168681851729063499350055323558860947906926255325129892575207929460306012127537905069229067494992526511456739733994527465229596280592391394521150157789333458038614658186117936810583571791071670009321135117684693199712807871367042251688969359670638685217510246674046890102669981114073733102528386050047101544117941545777514892049478648749567739488985751889595901164271170241293560201289506084409723066886217859166403079323297755900115313303276278615224850338778046806868053683550521050097899479083690398924273954592848930214010412233979622267516314006579594515729501219012207452155430331637996354999086428581894296630780813603150178668984033695680503842652528936744008200969599420407479907011004573854320142853920211576138002304153380100153108578917578628355692143649042673035831585774943389299274589253024213440327278492861408731860466092131208949762319462475658164751727456917908895101666042209686770353463174085038325077702230417742338290218872342989760811358198149671696478719007986640280155076209835650214894312107354863955923013551557511053863488325560726971129561151515360791703874664028357379991906546034769106541761949167398013316893750131646876109222594497572261015447070477788965619459907224055812990702296086819343359727257200926998575207704863499039737997449822840338523730568253743847501936780430137989635353624727707460591788206717501212950043561174025099737573913560244031385140651268573178205535671025686409716630410047849453515254281812647842382732288366032255258025868234777535941363320330810927664314193966748083266785008698337395752912876802732949146014435690640212107968920430336594944692756909426552693859955821609022697283409054429640035501491195646275138199513541150521880662324246818939364498200668820925718580745349076144630376496088958066462031936753953602666563430129468407052663316394327102957425113832697606865852143319478049551922546585882961045125592521462660657183662167145129273698647006884000754664055273857327083399656097129879537514329078882084426898423627000584753160230383537805523527802215759622449682228703364291660469158881948925773296019326677422878799220943433824925325444357915410078577022434035877793980291511699780069161003729097029566932049158848828675267325817238895846157160436257167061351425034660137986199646744969139668738128227884900556491055479731439787834227433783162755668666986042204369043070939252221622100972805041281751557286526680988265790987545622347010282097422215012068840837468997224528385796621516685736652107357543262142285202501565278340451548292261318320839072530711371097223509408507717194662236046142978308559839862385512604037486719755090785922103217562386625801101082758590221910966961708921507405933698369219870837033873519157446597499255261924851222928874256716026476245588615936832862817533870914718323597990789851509968428136902079228719523575294695050254009757531873294621896290336799802062701038563323081676148745506669354865005676310462244994377524157193894646707250525180074175799318878896892707051044306479499020710510317702904564815241014561968586560125218871985792296010047914940604890409927362094268452216806378650688020360743760037203834821971413040109083504706557870581841961212285911649519240372269117717186295670631116987550856911315759914227274489269757811549170065223397886120763526838766863320155496922985037775877119276140570857733674458733047487005470982634443647326576481708505132853874757566183274215541548013344388533695898121865680678671021530563919839326033145233721050652452047323137978887238296041501404062395025644307458964940431736513362056438616187753887076052503973046748103189382374262332724614141478625366488280612741163029994664965486266924549563656864512104577942612779816646221279826076279774987913204197586683743188127645868274077676404190288631602643399086578563736664814947661501794072487628824370436248531023298456787187486762787527036389045872696351300002538130566889903172279429838635376061736312432892953429380991165664086264561180692236674578351181131913646087850213348458467183313713303493763401566239252842962814841651478808080468445083462766507348788274849920263770872173109813132276621071329427323232810059568083741429079495018961476243645399216835033674015175470271954180555750042595735279467692488238312189071870817250535400674435497228075083114819111406212557344578110456152355070220170558413351651467409491403722929414025314943189868724435426759285206445735842262471215505764985894323933520998996730777321336482113020001394092058799996453366211370035040364702961175395315830364665274844671204554114376516999260003173622000747984946053935931023606728508153718801420195899052261303835682070321045514347587618702438329338945500999849938850644176404457463154594550721129888910587482027690692986639794874332105656261065551044406327070968175498587162089601173495911663314546803979083357839524531452054484355064530899233433401219428259555911906845514565601577495889800025302353522126268038339982141202525198922941413667926489481187614411299326180367794057587680011614059557115235394058200507649553649984255648333223215324453402628082900419656859419006007192834180292333505925841875195550046276873552330472289568368766684141652245762276668046232503586115132444936215179751941632181866478797783324276144340195600990781595475314029634945294175335376762607230315931741276914607098957516917311240148008259593112766604024930087231283805563386621838820208429778036939597537526377346008052462783565339877109186518363725127247630063240324569204097612632522514079421706847149741151711708158209843475576709347112236323139357270568583435853485849238181610966904924658693210013165790502446247875595098796237196478478131980264256293734959568732702704579025832633742496067238401806091223920376788618405833997354824432720175839382214309871343301006559669356368030893330101791102147197352259409133861203859968365115407428899900603496554950805889699537540695466530982706984876601473583674842220593423876111090000322760126566398868143163334791547555624280260247864706766292311373062245738303626799992518559326214639096206307562704749042975605329848640322884454387194069871569963002905975168057047397620185370149336028044321815074909715479163949126758773539909844275803377368566269284783234896934310765251222904338325727190117698201419783760793378304900547066354565922812900520732953767401916821621131949592542206004704573168041584932658992421969423087632493506850668756054377349628329110090667581158791451350362571404928328149352447179487407173410454193669466168238336446368831344233608260127552345714155313440292889583609806600366651187460209281509343317973384766867117206670451468881074020198960798563593656880666959600120279133464805241482627691903644565648838189716776606138925410148728793269133028990965215541813563279212214036779587571378582492044299823032309365322119544073839017811879504704739789108625691001539700626733906971118185431532403121661702588341093504767442699303669527356124207445005416165516392783262495632192197112206836280579767698431308220692408271948941834196628025642465603309314783004835999778734757750984178036412344074908528777199671830287594079994179138346824696667386571151005479889200968793453900610417040927480323907294944052473606840465373625843009803031923730429668599518356979988938280992671507862978182996686094713651077627721130060400777847084266466576132803797293990478468397500400213991619726669393136096542697287166874787986563924997565017873763388318012323919356041014687121803676715902262926000217324104412720049873387516922830910764686467356272215989864132694716239219940602862670386403515308058880604668185507549120177310112010361361066981784756353271193353503032076200302277552085667990128861733760444790939714314334408508962890647496777012706707956299003309330105647284207415532400956037666723760883734788936516108960606908898965469049758509616327991506552683519493148391133271940541714989828946437080039966644773662775547411663730757106509850553416638311728016508172158556920081406071499078836637830633266727502436810372038710743541194736102985927114848348209338474864439164656237124247146637947882313311038933519370159144861241986326966342082993652829823030647066278442293986067149948688095127650113500227941427069222367926239535189211879779108913553456995321982619391794398578611923557470747288194491292410288640102624611434666530225531483976855587516164912136530881565508981013045482365572756804345966574608148586667806844900900229217343176647506677548783414046980422520762533955220647030232306418152689764208425066005842002694168862567601520557045953294556742577158510507831609090761710765348747645679463533642461811778643311767008591387217855314363984114345259942601008237830177627791149731168057129129015749210815211778734532821267175536252383082172976122723943130509815627947152894613860404051883099169392106201550836248880587945301553022465760617632508452639942872501917922904907643584539969630604523367988840960108454924279284572150463453176538476201042677168785458001211980938475051932801473809248164464046015747150355478882680943708664990799830648059209098594723791867056279002104554033947454021792823700021211938803986505331259893615580869313829770033114087737100778277679799308529917147577543277115989486513061366287127653586641166184585031494848256017807606375956615798628567928266920994293698472517645258207444538089616798544506462807404037612391327451243410699016085046122100360018833440052959695250040018389455384699346479410737617404989242378551004663557929783853964750653400339470834763347590842432346949388446835014601062775928801551544059487293437426252663841942704236505417137978985302580596977995357564320781685817202246893847548354772040721601678103939693577194477043149991979612246286258916619489841613266347995672292125844562179186342884350012039343094958057156525401079739912166709511090151127976280216675644956031433631937227857812205649827267665663334412687031773634256509772704526897350844757675745808640413871471073438087379886149120251351125834229849418097592169876588308125667445355587721598454654403491979431614441777734740598268123634026497665830966836521964172336459632775708593418382646156184503805284804454741432655748508898526338604237448068509097416148162232279471152177121497820546790299591402831884089934340789648767109623412452692939061078281049889723798716071775037920661872149122647647826294113183279424472225449472028199268757377296525633760441325428114042047440888422886588025200189815418958736396278677719946592664827704893304167451671364439724653545924637417039144901802522257722335418281677541839968681934622187860022430225478913703881426440532841058201120429447379054985440706534007330939133920884745124269606714874575865722416176870893286116755420007056315286664187007929455286414698685500119748542259142918966514888931104293276317484186654250869508571456980022825784640518420124939519369151602585312150782260978143024275717815214821423561085107850622157924742506781248507474816906761440597145816753304958191083584809197576529742048995006238415589201385778175127064701053199182587584879089464795950598617152371625572635827294101247230787294250480171129228020784684588581043898504161997656249175434709652512750521691646691915160709598521356388436967051011222567815176706057140639824280421252319212816532466404661506720680037473297911063693181228250852734577523861595489133944391408848874163401680208167686427276967328970138324786302124240726403562860522291130696349033607980615772216274448734851730975776653365116927096714233669949053268823787958263680795531155565965553432611927076482515854403733077910576809716846354953800241077537759603861883717665189789287748442179379345714350317986125999109239019633453220091394981295730561148777619687504622698392408413155450078932166124840856997839900378049760531171669378209667418545877600623899117786031897078901977449311097738069753590871623758564739322818015094037696370881259425006705481412074907474800640247825778843228831506022044171746311837387335471143716596555837887052019154798482889190331002987329948863226925932884030485879840160584025057230996866242903890279082741934181240680392188128692831952648680626616653623035681985128262539463889527237931994244685826495069042877694643977819241931270774122504487903810731483556175635271248129597126231084588631357931777060470963305686148171828708623221046802965498980359304830579696563369887503738313523124445343359881008116242320518894364528275923601299317378502350847663444609076296603289977616079571062867345184722620092159675426402241212577007159068292591419394231644101512944274744181797851300936611428357438980864364531059888248655518671709029533577533390894689844000502096004234255983632322913011958919679501809573421660252112965589509169215812691446661011021114994248947114319238098094944883758820666529401049128834250255154888424274919746581421931462448746751395366184053158130657609097720900610144715440501510751135962485739000408788743284756114583024951124449124306284983450426994329717427273449361246466356409300259916388821171879984341939700538693452790631954858364041294628817930579150321834946134494450360403613676543832494238205756004332867078614373177200402660142393696431257598969647818067199575147367404957562389006951318262313931171029314552291452400265131419246500064287780516004841214402778939650986018578807546408772042768068274061870542272158303842463311372822624488613449455207216455685612112032223915726195078580769122937694141645386642002177660325331951299513759154709821639199532993984700750576463262629310027569114222475374483991123075593866011192341768714985673122573109589657188036587174153451175512350535226740104560973634599709259417976935433370072213713219485390370006952916676564151796513609843300038887875996937232598386199136339685006037262956317090061938006262773415917308607910629617144714366934135860163070966277742460106290259579085448190079388893221180972613969114392521919494496802350826651685888294957042417078682727890871638511654372920760574871174979018039538640949524734978026738856069360402921483838177628298614759525242668840775028389416280465532685023068135059244439630117719299700955622152565902365123037977603822260374201442038833527069597645182965355314200788623515000299238121507643197437906479934833267200621633605772929313141534627282663161874176334483748219371675195700672130167812702734482825755519215947343351540239563071994008758915880517783386658850193724518831364982698825015758870810662925392159891918024154112266738814804800788489269678529850387132262169207945644804310624715202366630028155443798912108757311074902496588920118133598578250171608585566110144226760288476402156048636555020018328101781594933969546959213728546148770416788055280464649415441871564105624399042984887558887355857489258814249086480648328512652664671721115319394299237838377969564038254155750364514781953838370291470588417189506257356298953890734943722403347794889037865454699739746392817497642607690954887991954508298174729355080436917561493227318968144330312027825592263921401446746558606225331445723656789168203962168874470320168109764316157857931146120840714052488111901586895619389686410400258242678863782273944776847369735417673758614218689622624063876020281909693023325865129079045163329086585856926878629841920472821952167722375555731310613109458740101906029959569347067262303849931096953670990429715047462711204848702983285551599933618043010682124751493496223589352023174660927871785001509454494454875341515354756761715162457298965858976215421182340923173396886627651500807446335603869678278687080929531531293335924922114845667739126246401025816305885858397632886934361124350483663485113136878592150437819628481010461915632431799839499825488631726627143232107740775548504908500522274597571267433276918974519863429089002212399442032316881053716853630988760219255358118915095377822854703283213155093041585876323875530740266101351289773835239050636953481742954254583975531826720891044651971074328632463902207716028391474608607251785350958998284575346967159759856091511841040959501494049173813606866147193947153816286341289772614196211752119069652515031348566474448253424580628703000039025064500646235539036008518713148463642561595297207670926324000749180533749088626073570564927623393158287175280491457810519240439218169991725378838180242834862458367209702597932596045276912239905032227084657895265362275141196144497266476503548097951683778787665045391015394577013330936990924253797346768771308532851150793500659046604910489905668413429977924051820362667181562897542156886339043556443333906720205231500701373898974610456281675138975467819832654427996105807869281882119399670928824136651203866594689221661754864938935571672035118339551882677523841158644093038731522468813514863271535174659137736171372841448856390055915335090808374428750253242539640465474583623569527537058854423202936437054146755431343753040605670973384585456183592017873693321587524693416825240231683917665357427268589680444348808355185512130283272488325713392585928886993340615979432833079821215776093572113010909843554577347358247624167975395129886234094951398653178992438578877022921997013322035044471180219658921879131998885656075324142934435635200247500981422284529974394970310923819609397185488808077117957146270803135710010545288178791955989009291138562365127677557176834281802394290529517931665321481730363744273645850704725251303203141132062490480235967332167872002103093373002421943177859118862894127447891941184216531385408334092111808654038794941894145628748443676563695850335131691967214012858835512061939875318901677654194903856929734054509640111242979208926251095833867548035266259916340254046917495147346776079991745533648386982991010481338866907704434263008555938614907514535068160409527458802570488691596208195690313264497414558995925788270212974643107549806064531312482901646309820279119924464418517069852850839186640928869506306911280068184382126778764335026560898045979582793935809390040131831828455709628490152065554255924862460067733668999525127115782150170222730356857656571271918554761075649526122702175972356827047915893162399050224696963771903861093917613307089934936099663311703126710062688731244665192770825943012659125829345006342596758863298226301161124000575126891131890061018780736008688858088420514679435476594625562625544416651155312053744241941850647725270758883966463986617995194117324524126820597853850492945103760469439470676593826205448855610750075725883583394435490689596624506207250385477625087538309931249185856110644451858577727545057962604893356175442010634822700150212850038862367931373144284102373209667729938975478623458551735302335633178117963482672490316942804982456435122189592345636768678121522319406604805630060086681089463406653739098712287770452083838057198897045897624887438805940284814424105154004553351881306409058428784850915712430005776796327578824883371292658192917927855146548180272878781384538375638533947451793214455257302629353998245554107850623730813145739170009278730693431945730928257321998888983902259762829289549697524486628489524401649927478780518017732693903223348980444466923128408615766169375324277181719025458742454881965223031580374442958230090638097031744880844952945961185664779037096989574965591993161735182889352538118427478416812382637576941801618597719350330144090263906754601715542648136758421078675295102425668567674804219173328306485038086440411273014602217042618102279737969036579484859875107725914041037288376014970216961578491475388757037310484774200327475614840797629407864401629617985862635736877801223487945313548971171252692097076285564015458184625657693539656731384333080678069524266743446745800330890508012547461714454467179701892304165933355188696299081580229442255095394639401564283928682408809748573038726909746611238269362543392284851510900962658205647543851068385522672182519454296987325795323032940468090914127396642683365283137226436103546709569479795921195394742354943048062300290371559812337833659293014434822265488352416571866992568387657893479372059949922240801633071357688631002736666666097493814798024081337034467580001594640813771343305881094470574136406513634321531377325456299777468271410956431569577898881825762193072838421435147844560932549335647440520263031704891367926781315540460335458805282723680997525228927775735739337169903939133515818776202899213881807384892967476703802856392289438996195272574368543411970999494497580180744526158989781540074995612039673271230909916410258192875959811157814920587938766507005282098035091919184071833573124746178994150536853343833646000374356568725423923958980613442507684179731514919908117561699609795529035398379534110595452750876232260702320287975447510804637412642291748969669304218023941607868843118291967687955603279568759249943775451343558402224251431931927939845918904638506525456047327409098167902063911238964420440973520108845227372164288538083807569058950651810720324015705798292019144389257290976746993525288107523679838453213598059400252006433198151217264450230434587224740331392215683859577912814284571536833359358488253777090352648824346032478559812058216337529161564868969572241402294199360071918163947916098430444130176424647902987021720529233354265272383521274615014711652087852181991728572226035070035098936905880159361220034848387120712848744145384935307478400600696583987672556320491427201125578124791421475895032499154654534825531064106215319734712117960339153922129004166920581755256499009394887061786660458741714741067167088121212648946434594266169487147157618682489763042045346808097538778019363454354720753453898657808507730633420391886906243833008029119715537868986174415885714981573596124343813485483759133967555735352585056733492740381338241730493102993325898665946381042765518261989574494655373974011534952224330787309017677831846381355394431394989931125094931910329101593520421418927907632701250452107195064165243531960968641120191709477613819557334259126700112763612679609859132803320537417767206830883638122789129002871508413292805611959268542644454378993383183235398858581359675375502304626211612682757130677662890957242154428675350369859396768993105459844861122539501982370494347913526998610760836806554110856093963234890574710523693508035527779911882447124004447021061661087874900740021643794917380177955479584827370221380555618894166215509214040491643411019582274141491236244338495281017971097841239151146479873107269198337749465317710261413674144025718460529779612415015712284782518370093693254070933483333759435972390697447061119753922760257636507007224798388968875976387943994408710809040373407654050796871629005084166742427642465105554642862343565023602808923289946531559755401035956425060671005681449823330398658121580490871188573949233017814984236950656925340157903199036030127493845517051414195299422444426197410187407145714414757741515143162766626019341894827670479296369668572708158101042160576951678630296593294321279832746851663917586405707115185271594334572441401087217056881466873904080472399055182996567556457022061953836631391032896075098510558073028121619751996488259413716567859213053589453123915727651840382180892658255509831962613195586928852140361506692520516879058444090309797982255925478288955323029744810232253151835428510743865484255899396353916812244344530158301689282071061191376084353678747516319012170787912124646223417229321747362611091858424205897184524447761104601399030711577347007190193360143504650027735766887214266701283489889286241453724758187504766596121036346245469439793136385836984183399984036205866876796079703279994270154932173925478117771678497279525025331217365877079561435185148255429797681184721106041441403332339614668606924386564233757084281154329096758969288130090696518599148976059249307705031356797082888906470906564178032505021579347489196500672354547869227596952539330526749990283482875956022803127210365341653982647802781742148254091131756482446800829573878233743182921458458409541818437564374358619832775390981348512714525662987986119050907941846858527760731687895447921561693350911240950537423919420435416191817655443220108947617103623665360385826809275608422857668680651229637702552165244262579694499066748877796741238027112738634968938131230329430257586482080049433087267821392745441378721356743228747897093423750155477278452914001020755778817783288392968554745866728034984792243867476005754666303500923353057568078147230476659424323474296505075372910521224472824582648591308121865162751441228389260470858762011567195603366872959149156946914809422279855705895521056514914836846614113865694460167256667055289278896701481504853219759645484816906770853386673544178418889115202774480157109694406539761716438255422531492263996320517672180388481981352697017293630252094703862789601319017310888750854221409735450242249096629634340284465323984996597496548075237412877015195848804007836858677788678716932486076570309555050243776003980464052087207563509331297985847469335431973441517238762081474169434348431487583388088134725712002400294711205655546769503128143916217679985009771788834056699682915753590128519838447873139549440398154353031818103029885983167976117569887306633864423489018047855666947353203793800157767931396350616624107790588973322693930553737432112673623100594501619109699363460004067180502037915759147866725284644701820641369088513196484779107204672643965009955650886055435323427159898206537914287091234252451759897582692332542172550112513075826015220925394653259633473541912081387556760916569843062256037933100808537338010739303159674550104397743682307793763506283031185422988003827508253196239344316277327567718829881490646634668325864940976320711379169431471550903379166753115578936393606158238375675097316861608562322373184434711111714309966510674449477050771807740025611279795302020829786874641043376469715724716662571201791996278900875952513041495708903130283370764171283709754718492214020185870043548981271983704183238456309049762201730077135007511040258951289065598256874114094576653294890765367226554521051246322751995445069150290287728289817989501150765360514175371576750678545177365146987340748310889409069649340922923355484987824380217622381661787828293189352133367853424672290293967038188113441787277020280802378061857301766690222066029865758396620595236961883597526588328451456353352852274527058826153041796647774029357964298173311670054928608546539531384332900552256989491433164031694436075805185169638517354779293348470169752062201460812187851090646912991487912152832905943225376462958820994051037608538020201323768151236159025277992986675033503187290295232970904433959491790426470300385233989309412560553392126912537177868252475706886337528900802845750189101437215721146369539668054774605086659769530554813032720036929887514402862971738494278202624595544773903268732392121870150661408038250286779547264185793560763627342046246044362148113422259119617565333193218153400824701661506216906001440385370834206135447285175202870816795719793709501334734353072755082878376753504792978904971614168722708568419101481810793876967885134753414560405833465066257982660107505437383775480344099020614541799981872175850396554482354457820501457493939328572307852408025045804830753897381127507732910046698973514697844563487749465308189786406592273211529039678517110031147850711623756833522173485658932439059836854974068539207950001244507964629538979360855134117092160777450134014280422143041440998555589391185875314750349120083037132897970601887991448788686281550603183194540666310815202157882646729544396209893402788522903753674823626614787244305028896983731522813563980198042635231094429368004114389283291160516899603305951739479732475750253288025207858041142793504142425324160363822897110299253101350231089763693243648583616974586600702194097309425592155921402396235995209541572146566340122509949660529227609938152574603555607550604295515286085623204101506047988698439290903662703717014416037872524272905724259987909764539752109495370390960621200552506187693739771301817914278025665064725237428508297698373794724066781109299697004428562593447090759366407807549502979405357928898747399223538232419645069902510284607398164711113586630909002346468564775511342369907212389065653129621759020781307855326171120559254753330380267094834352536199935084036767249505207805896561301593985684203181584183697340665621171862315718540547567689209145951201747287177429401471766570155713832546442997210750977552878083770464915558936152052119992941314279370481694862584176499064170581170974550020869773410616201299777225395867639942790135680464075566796214379754026025068472492150596221938284485927373575322331288517143329051080836180338274247847681473577245663588424627884798789495805534538848668905100044504965150423673970784538166830448587946300928243000046602545203656821012549467216188262151859718777150720366540900078917338524574155785104100440529931715606010497685700614620756518285548233910865266882934145062401616777331522595197933602738483713674421952384277159813888562222343928072004496773165665336046719030519477270817857399026728404951567758693785872474419253767359324148795843933001575753857888767916038334714084394949197769397527763937750517080482712973246144270090033391058513253963780338539972184335756905999929425577025959245306259130607118264039906308736437280002384316926180336603663104677337576940874505583072428918695215924953100212432273614814950351904169050479654067480201864478699755156950798323346401189833796846474040388881795892304185619274783681592615815273677251106653532729694183682679409415712327322180951115098927583426930519904941067935146810827928019390991002746903016283235980941420177521215898314003279161078400401587309175195607285458433941555452725218836140061451042147692693457255508701150340927583676780658248630781390847066317547490209557523737675305425647907054595662180712452411491937323764716591602242630514196824223252414135332415621363355220648519610372351361882307112633351452807105290668063790299761217754268595134978550264564505111633028081389306135354573531742656639796705888386589362614692806675209606151628421239880912460937614550093107154586421222910625318879032908670105805497137931181784079452840559397070561295755706982706639309111918890933824926938757764865160442271796119028449105430743803839840576811469819282594303682626880015514747696456589528450000368519576415352845087444739844240019036033399563967732114946460024745118402984844348930391088161414634654703868683975149744616177970193684993974275663995144589410883646909429471657066397249667091650931897714788086468231657724311557516146319163452971766634049720758175719923344705554877844685828604373417980726714548551977896888045147263403891786885057983155991560590424201864147394406670828698969332667771727639752166313494695682162064539325663252972431852603115801360046585930424226266111257463468586516725206147152688028816849368529510721404531997424773621391496471959978958202716790841310493173469875707561016294552259094236885607610388074742628008838247590646721047621818099462993943479034012095182133550073501645674136723172299987407160910163404187294214838627857188167210150627153284739829306919155545748312416456500750193848401710358368752443892907247893010152929732843682531854375073485095354164292716760018703015280323472573331995725967184357227273913195323369936624952036629818179993368686808285158687639740847754033990051021358810642530597569930630169299486115928790484506871351663456328892044489123152373309207914918510268788768473187861947650606705575845907111732190180219869924727549573610170894907429647129802073236443100114142000288677112497976165734299198495680499530441658610309410945297704461589935918496461237340884368476356414472714620218650977027849598012912134715211357911632239929888285744277051538023463255372327363696740704606484949983859314725662352603899381696015963779500917490812577879793800718385103628923546718416744522175102899862777009476824245743737017331893224958723833022631161395474435007119526224571341475163059814600025076676618318088524473355037830390049439526696850091473499882974184850921842828612678250034747866147412250581321565051177324661381115163451633885407406654567950616552018654212989192721065835947308800442913813297665325464586816267087776837821031470436388105330406902363077554174121766262219050837074164625396355397217516940754168905094468972299733362013643916702000120087419669487055556464889938931069028256425957053290003653185899328433246884563972779675856852089796513197014199108329839549525336152149846436463884486277233820444570229316927982373316289057282606850042138375250735436181186807879450986737383559863745608567558718318853079037109360308218058252025782599973260906813053102463192190609425651949116818949607075287912293854552212245941624328644112211578903065073724400775149632406765054670918074592764675962475719705893258675950616596216637034464743040553008313054745659707439299426885073815742771582334201393478887399670118179106923724409336733278016408176961958487190881165750498945682822140555108268838765726442997029874172857302651748835330544080045396564496815559668135599616363003693321809473353794998440107980120377119416650166781735191486614059100478945941826744276161116200632951528681542313952822817329497391928281445618603004314970096278585534415059306583040014931419212540874355328483502925056713731000289301868320491280623869349531765170506875069297969424384494329394796811051114726145267626311713357572687091098448234098482931483317382608353261599246068406350851250966701587912274696364074833401815316263884875159382946872719788113148752696559723261090528241689637443759699320210861819973708300775579495580989593915371389472086868425900694976809710954194339870688306000339327986346623134038403831036691307573495588023272276335733223389936233305497582566628007887711677354683926580316454429192359456280096274701769674188697066530413892252730960100358825886553253744520518515517708860374462432219064669773185326025802877017449470531773371082990051344752168823192429840669465880946730794575429961731878353222333163240880233225313873391750666208942729074938957469976368233474569055789689889638236135818865234351156412883091471844007140418469434281676957865270890500774310233730582540697759689889841007066640970661834246292266827105133879566878888376378759407010770804472391086728988923792100657497161539475006479845813426335494953104730080174571116722049688055208408784318680988957566146845895207271911872697152481259697023050755477983209642187158864043723583733672076491374795372079556774571556624217544406396536417797182290349422717054473074766741488298864285075242228117221737243934418793288088434288901144897383628923658769626656409232893888046466708898513114455373652715833292915078683874221270928712993241232501307964405143159915504873413080805006190502520768416089787571444819583692483422952628940074654503619247501130050956776670628613805450793331022392885201286442820040498768608480695441127519658033489736884232723456516492528311870958854049791343756260569988613509342824650056246177714365058780492690793312159016069152315540627864144674413456641879821859129217353607357880848667473341538473573280537677074952978558687108999855124578711898123756001804564344281318863190484411965491437160615756935470761226735299639665611536606888203084930614660143621773169712134039875276210532198009377804144269245924661898940439207974188207233911399268287299239869253334790952239268414706707944291323539761619845830926382546557840659821811640846290742858962928324933983884947572311348974393126678594287621020316552651025473869629239784032219963752481816824479842189978138420358670780927356659645565159405355499502498243729898283912227456324343418308039431964214701886399857777567216947749399322524493568054866609444666612502590647034584938117232884666740680900791341493705178208821043664140643645302931791995354434450812399472798844983907485052833277296790778933401053353031220649159339085377986388219274326518924526070012873076703155745281668436456637755804159318623843737267699149941546338012695087573571452792241693884927155733121069542541151831428276291790061473056700087223950535261232835956043232027468925349721722992721608074999526381776488976294632600775196950913907686382244550497288582644841570322620643125325642964544689770178251388389169885889554190543453640110203784328863657334883516038229967054297369821726875697108880193974496067983059717988754104536708708926617081095091915811069749761609046561272726623780055382190798101424322131450779824425241707505743019489871386707159833758114454388252952487925686292707916393047896662611249947263651620868811208934071133699761201317413129474959660662025086276670591797335281544018927548096255583581515009784134027641828595099903845627717498981979069610467497533065502186734723293868785165512381922583382097304013195347659949952415505317748386143972432476564800495267186754416530474257100856259015942198101893338221041477842769805502248876225328173772874125537919401463013301699286357950855357163571596594625709609222005073181748900931855290373447143799909961413051919596608824709824327019993080567986755577641719651930775065874129386911202903412541147917399039827169898189364947532886913296497886762126338180780518549779806570605912840304775381817946951718820054663212335835012566559783604361281338500235350353552950773265555512518064243389195736099906859275120783278864754298034421870838230355058002055077943908579148333095645576959467212362458489143195904213975517704581856996873239270454497265411622624502632412796065647440153328648901070834322624240061664008069623230380876970091876265633205807165620380124906299761352106675046731263759319308085175822742585733877093090779567147836997144902580189063480219224012852593528317798896011293911697194656546838533726199803218356958962586517019154557088991464824607876951088393386488777262322153315859345915265446308935655277245077504960291667732220796269603068127275481825034882926663314311045555149668266084461598137599323610071848324853152179161826820699009583360631273948680449398990599798322636693437092087841598223010408675206172446944411270204265397776668892053447800679434791227854049465009617278462006092178945237317489479261962066459552333378432829086225537840708417048174915549673816193674185139074655950197560020981103859748709402502980945285392520347052189378242888670175065196967200267343820125630880786821520706063023092641000370725751890445237965719056598615717334718714146436841892330532994709305178399285183137511671845666517858334853690600219420208682740115640699141513349426866838622652546446849812961762165141830299982893276739830609816708205045613229786025538419830371569505527389778278848561765625322128868739339898545507491887421414336238798078138129709962919764668789110842230762455158625745856292793107592899505948154259317186471224404289372108603927957618464409914644027274181761332281140573208846077955850007648036187039541334700327587453212267847299475011953735415352079956746931910707269614687618453158964264437978317342129760468308355436006794096607243629745562097128323384858472740275341251910737057378433236680436950610593563207936340375151268358290964586603148671674096118506482224368378273050153296040963875832647089954752130846863251761538198456633498958810815799536993450604708445007947595897060157125083167193740860124025701682889358136629556291843496126963199615595404073745532815559060018731886618319853761939937952097397001926222025589853740234844552687308954783645119958620842110134700505085171865809993929699870301872065191706247669976254257977783828463768483286343170993752383738580502904328640671531491536008817224778827011387384411369847366187797068129141422806750469349198376908459839623808782142272310282487639548448588320128589999023177502580236853996092602361837691558701091157270922096017581357392893361746055128031099393291050815694696143269758555708523294895372494561124463184128964488499897476350852690917629454162613301556117135950590008843952471319849957608469606775716631419354073115069221909305743908871853541600108691529522232856338412117956416016705011254197672419168505208125492333486494500928874416512605118879903538141706433988775778184678511753377067143315640653396787933307796411973784091965356957288609703917790753374282302184773316082563887468978702615451130740827248564410694056259122620041640945014111374085281417091878942382778995981096491571859466783785860804015970008894734844789250623171984640844268901576548605081308639671390744699766667800794190563595325114873176665246776286989419351842013937560030712037022171966784636651858414188790763974629456513582788103016321624000141776667186592855486152531866573828752283177501863848629454793828084284686788283237051135036275459568183527473137267484293162819957312995860686717361666768655412526873111026330412225469809332178802134289146369462822878060510469502310881039323481374671976754145932898064761593888859985017649450187449428593467515867945635955076941144407212131100886090649829971348255995554270769930981357866386710338123242010225144294521054143178082991473549084032514443654728965729740998859593667687221796550412834640322482665997782445405930136098070573923065459919996614877579986853204642987470500124686356925793612664692659090246726229572388868697068834273427035658481857638030416609545255529646137832432161203807184505922250095655287828264409577551664008317015511176922966674602383061564779317036602158013267221059213274219936632465465392040616799997433824431204226577338439740405230316694058587885436189937786028483944562140800210961684641199485406939640143606160761039140679724489182616076290880409506876572253695399753475795951921600395725046410209954522572346694215856170916284394232578468845120923959951686077176860069090684657276611424299452369930529458252320723420915515909057259693740873768247126787189649761492153024134643807322089948097053151712216922861449145969888644014134956341025962985155371157224822253627601421565493677730054497743384027232589807792165442644584557908798131162193356390559561353248125315456613958388040876363930090756099897856852330026807189394388809467163779195731667504940564498106577391799446294789592164814458039747676441671689374705318682111832444533090733973332695176941120116165262193876678502682168497747473751015727896274061145278431573517726384113721317579189978999817817705064318149273596588475308239634069254751473058641523193238795267519370112089934295312909148307469918017325743061666798840539569287121605272887363945588534683091706299680802546602116659834560676956404205321570604913951323460422907995663931983026964431017572072654941882294295723575477497043065836536626952158521503085608360809664159117532513800052919475593883963094073846456315197056990782193180315955369303362090498818219113594390076387491033897017209654496640918138496979735757356794466827092386036060399617070486892645191315779674396465472922727860028430122869091844141573049509313652336257583674868281151159145788796554193366500128125559903373807179204176446875778698780286899783261978759218331576373727282116567202320735296067661279572847598103545220259399294413765024997163472504006220997874548981183446198644455723360036411544319134867727932733795539641177172594997197418566880948851278639010213651474286540185146911622884574068601246510442731923486814522261367238336685793380983591464587064130339690863180013996375958160873596207905952976462425283068714821770903831891750616747078908036385630937817407477173641339558714205778110338021404066506149844008737406346047475573942645969940590704261311833606954413378795968357849468307285279511640123379648791954847745872759724766085174556521182016195095608778492470599772368765706221007547563317740250114967488085287898844048265716375714029146803937435740287482871078245785989644155377298579220666112842408665472957243990696279423511379019743146871428092388927814847806879484046519479761244269943469419392664598315869187959281741801870442033434546006480532207434768907783574125665232188412167856559832376001243167809983008311498124502609111078694932433827542843844622628529709529041002741923942695515420881523804479676027360077215773020501020725834505349605112007230307932099944720574018756357574056335018883748365832572603186787496782434061583715865456409916798771128869386001387488808814781403031678349286422428270430239618091256195317708210010695437880553681232407312434705713384676254448896912765325232057926548997430915118513874297872920940374747775793040322902653020094737560636555511163932594495201667565511230211953572038700285499911307725183616148879026480696324135341540984478835350423688407627542900886825173233138956899213993206974834725821392928954356528987967296754089232433312878223091164717005722665703859992320021082169599694688901877791146649658777007324918033821728163006522081733733652388377823688433460301232660994797119050255144077333481409062704716678623582128093904635436523249168656758682807307773355190030303879423929173456605984554238736458198472002855376182869220691005077862585605716367676877007662761890043849166801883649299335927630205312241887361583834393655014079460567378798972196625121151392839267227630271112761870525714156725934399032862431174029697596922512236612011557447255163549938445677019224518721744900895580268308637440156458729874295105893844287563803816519602081801558456039661997441756166948354115142128765919635347347635292457459016140817459143527665719994824362065513672011932643899656959387866263197237542925189833553192098891335800537124799208693659611640802697735188354057033138959227694237755795200288594985028967723264192646203520107130991632726797446269314387243192223184799212454954044385052070493048103361273663412649449181578974338666316577792632721869295237011079738929542108293426551217534316357166508467760035912716972221645601690498606981687805914580996695382520579916313563853088374706679601412081674869206964341856644845960810444950798951912693671326761244800633325359205764071750655057584395108592544061238031048526619779111855648056025041304976919282183774372593926798055973859856434027835880473648461741754601381434496020550099048043530170280872775627494824340274946512002571730355976028263625367756651614663521457718128557022762431627826646745750264521330859086403917320556035712789592022808676802175273797504970571694812891426586671852153478574944378860180672086295314497637669336215049722776083061902474715583608661229454462866739074113844181420902587166996072437986767451084774090874082862722692403430545374564039403176863291120870219548902410811249689060497118515553218271931997474536369193150892102322670540791663690744741266356059191316047499311883461692642896998515466732012288336853456638105556973935112071990667263890748915200619339838127414391332039705918867522354076833218098557081620846426744645165990864458246484312846417542107573725871927440359542462332467589956639623635107346310314322870561861030245306932613436542500462545209985085789231438886727035459555177275690411951231690110157815830665425233919617777985445371522286416910294141172738558707612950030544731878421014719582198894493915405616245791408659439079453585180826931449032933887184690078101157317080844476353517675362744768073170880694086246385235986916030693803287088326307863261394957166149378834942160917050110776903434945441719194183653428582249954631998874592068997866685773808267291989199898925525733023920047675541370005262165311924476233691757675714418235061842574586270714713731709804179099012168814250367132176852340383104169167776649155564410689888639104602107323307275505347378544566548318526514703504189793828673524330203506200345763537068911130509823733989503687710920097236844911320203533629201919345528412147556356627223901237561371873148663424166605679993590100105114236215605568869373697148112199184309263883074554055089747049795267148106746306927677632654170533633660025710546872729630344648209601332378314535866867294710589992719434273267544430841053747784803355488436298654328390434982540780590014903369813627661704158873470104145076235442093219994987409343067992051463232514254070273063870461522848182103004268819360833603649591684540875932723655785165083391041363981312441950403370072430038787661220705915110710385276448690189953226735518402355346392742010194230796913185379034099428572648923055183516599415564241730483000738669043542610947233154162098738477192763215729009145849765136948015208367076361684350491196366552758891976962918455697816303064446112024615590080453504304121218419426957869803803329695989711880357997492451098983313900564643552539521787002174661190425511534664709969170236083898735826662392743695102005842782663678349919458560485638060450431721680745048254533440372752129022736493046933861533419509840080679254782686407865006668108674492331903334367193282095290390722376681934228352406850976270992921099654355493011131821092142033514821278448327022939508250983181686908809646986722355163983452563265175387977712539318949773138706443544408674879368213755514736262966650412187085961409256081748409340530403955995809201260413235423294976308062422491551476522968065459475344077519548587047124258082953929080424184105630001070339471157532006903010427256664429252431753233512288310682739887623921685523236211051761106479007683965830071366560524427487217168769002775684672246248982017359008199317785844289217735720099611780369729723715432222718009932054275072687921528774489844756411382858893766107431502365004618832506742822453756278490289208978255552498935756609087786318292296820057361198426615714303151604383309236060425120816063539055959596111814073795355231192656600560657136309530070655282341728424696281998291844887971404177392603017623656168428924250891376149996648637866974618741940672445246432777455054976433011837827724464105877646020131651801070560524552211465780681765200429314722381003485683106741438723542045468550461732968862325849345692113289035921687607929884830404312230873484162922494259541256316100600727424674654271811855211077942476196849223192809413373912439042038676615041881697828232885084373483831022154091446865386663080922842364847565292228189425637821019154010493421934196394887074006740926860739744801815340694565178750292772598475990719238829833187957503398495462953096770143043056624877292642391629031516195409944728370076645840310426403922933738142374739584677190183448549295974953940291987059015961110016435172951781418321984103188215450595395908662532043479865302089763661582778361272315384806025949554815948832182500353396646761883667645284765755208886160353604232997611099622694479942563087124785908486947858769917751551019527037983088786615653591707215804137600492374725310718245213215097733744612958841985472897069796764115362424996259621071601268972110771152218463527438782113573727576811123693953166449942116057748545671159307122598183302578443754179373146369969282611431615354205435259500911301193129133564215135358779914072986547707682199230882428833698818044511813757698332329963577068667112706668961969691622223922252950583213577960108931452427840709205482874564697689978366526343560788831799974609789447444115832575145615316770036967509443532604570653541894316999289765656487938767114845630107882851752463490661673472639920245663037164100500785669881935474346960631698069560771660159603568716598835657437640330723249932018749542985203657746245011597610114686112459000320081812122524302974592907005513005127964121895605911785700010567603462869583309533563029675335455616542141004642006781257173648260696265076143074234027254809469137679243567027569210168117410813061304331425510015397186036538434489335422829939944143342489731006026009835540499444338237620395325090291055473613584005925393146536827890566398775430721419840054639804796672408666357251859298549134160271784146865838719914664926010151562008586993476398452574406226089365485663931811549941545213703092938280704881665217615515648373563299659628959969129603388367212937515710952010811977447576685257507411209598839374950847753103355274468658493756630084608537681614651270621306435290348408064556875101939834154650550729666906405965422409228321535298111494734721402537894445300447738199580409341288910170184568538987868563160129131374272263334089827794019761113863247122349261980927007542110605518594169260319485161673116827012950821597606961650100002795578170601227154716413939361439885943971281657969021411099224912794017442704657352800243745027707045450622790423411281767964862516104525224758060219001737145544628456803158928209779848842800059392614960409346848697764437774105281829037959047211160869776252121255212993690038570250102111268091211787894292187817872680858259361609943530924109209696000067059292737473975852374691221458652539454983682857449266405315940580680330293009306429216263720316194827935278739560129997451942992285198849514585055019700819844610492356597696958924143901407291088842776687084374907162491797984137465309696804460898891328899352964420628874132503235554470476235125366857569301275155601111411281677831661025852390642591253014809602362082698025034870217621818784967878640545948890499372167758784625852661526336923993663057433453450634132195680962862083760646857415810453290418226561491229263335888844379563488706503281975904386276153239773602826023965148962198699981221302187387596440364034458027390469621315567233804495613921954666779999531152998797117142440217325958064458340606447144843997105763358679510652011082277658529641474986837740058390768263121104690891886831767368924726916689328559656317563655971051886483516930300245120384196103123287263495320937484579051498691775364251309472434202007476033082100099477191743177509586164306784816915722942122224851517290220283481646621528953535164283532216223698130121914711696185658813691605230972763774580724678157222513285312663673133670574380077782612872013818025331079951158816452058165426538965333359217034270890855309098982921766428850244946624767179238716703759399177430434351727505029974950331294105197470683489137435102009622111772520769365953135897696425127778015927683543261788094637006655132627893841830510688068230975997871269176221246883391963090345462338447955924905344786010722259315119394204075364310374227326143144708340029500401422546641249543369741668107310904774161564120283721430129753786809487971770379082321417979568468492526746036835891767188513182456062879610934626618801512706276644545970244791338267339491896911985585415594688992913551854756225829738894949642107051249176810140153740564506209394985703157262887538312206967668462985566870652054055343991118443801051821530211431013051112748950151343812827292866511285584891909033135325050885211472099562186395100694408793145320728647405053256455989129722642117856964434803397473445737783334232363552862820261541986890689597528204025805975903600003516089928079079202664991785636471561004235451392628263278017110978834024342335492890396748078537736122521638011457151626921751036058653936206640420670190385558796460293270675741259257673690959175678910049400245595725091422229850024982599401497200801382137196074770402770956349492608489807154667969409171703627948529243008257907563269289504027422770377956121655954588739710424776578540855876388454300193014037752854858237460979391159616640141986368428670731825934127795073322460114961558045388084160223124821135178516943129391093817915036428361862744814015408052675335349799845548040642352044735781215091995776715667176331071599910295142726679181161560720083440992280897075573255774690327537517855189857016670738777684698513290403440030547938114214207628198740656640454182291928975534632993877840812552494709881395389528747614395888033077207415694620866032421580492228110011265409607538154044422504455628016627311386768070926886184792104799333068750113145711400370212960038161598755753557423244243169649256306165086433080206656142089287478412504717441291029900346927256984416605758403454138100338860621903186610105277985404062460564283663234927708988435354396170405891660546195734351528930560144269077841003964280978621834387245902438412366087079810201134569388404327441340279265451349816769624951045250339508828085363578768750162588922352551576246779674733588228461160006681438757201160550689112117960261882876325515151385634349962722989412113304552853369727870975998810567732448038076132546835719732198284257778893554362681767362566356838072656514962591667776850145377854250966052733867184549411785442383236041122612299207245499182606173212126238621104814825379046256460367921694298888236076383169266260431097865834233018906650463649213705517901973649625344933330746317548354141292895863214335209112338030996716510441639276760963515220822688112124029361405657330341890136025552682647701800820175834010616768452457967415519528509797772354178250643330224414239036377756723865458104064270698415692600327775228234501738579706312638884985500176709007113209477683575861758987300826105993993460788167086377224383746486090585528998450681935325841373969393584638837589258571068337752600989284994723590845374378720139524881398093817101809955242405476160523699489805414924111876611100465510872998580412924413170387402627105261403955521889386363053749839224720520532221392871663468261039268407804828519491087856936805071289337582397744839597413428593925603068679208941680744343347015882072923156415771635077603215668065644520557941860603862252167395383709936070995609765187317865890709610974337263615308870368611678556877264268909264282916120109575609734185523064353766897813644297025615085459293521900184910397820430244237043464212983325849443565906486632171015880004155303048943410639541919894550759224075344261340024159560078432891540120021419224462224531827242171378991980753676187152114348502227341587849651487005658321246806366858796246582663948368538649492190979618742428318015486948654817161050882849145478470744379088337622735859565967152793013417696348585344254886627917520850569998336612437237377891640165422527483190765774623226986469655098921933767420278187103524143319633040647361215813257682247578915450866587664952827249584975189673131955618959375752289833035413099441941401234852210387812716635741813943733384214665672360051756942545299420219288117467130960894006240703361190155092291802011744598066827426421848500082113202606878544252862613768791973221182649867964039603329315614952449784539836503110113127153174474474268560122404454995652229469231612260647208528897752964845428650611568694686873142122888552463069104456413022657045909096622456114788159711440270864675353850855262489571955306131181832449627359399161707486521383158890925466513352570670973775768825895949117126666569793951997784999137606944153314094693691610871995125085405384392972192842941007959807547621265180279880474759543570882123333928300196321688119675484374323454468826958121455335730367881858607803243752836504708248370885100815357407576417852355444552008091579597215408613730854412780330602799548235844607814230457654568397249204340993479130413344917741407949435554815533045505619952172190158461273140156702057449171954089312120650976091869641180148338302017637271268837246004843024558074368960381106799642131488496307769624617853809453250395579908338025482766939670752389139542410368392822976550482584530981430518661108133219621979271315521672830868228516553617036830774339531021214673619015812189587543242905714727275099927196045314254227480255905755061092902650088723970948257389219061432493698506150490483065810084231166609479713317928473627492314754690001173114338870770948814162940055302231141320642686437231724340398657681927514532142283405185417098971525638738144533246422687924280383908184955989442089397115636038532267266753260942644679442225584610237018979695919738450898437002667149668989676834322631979776460481853973125853618025628712822372726364381719191875555370442573216093373696861005656407388860896379983374680447615593277660415614628195796864534656916395043442112390143191352006300018170629055389528678107101930834435587710898263482028429675572650047426269947570141668601521846608094893129958854340834365206395110144665092408171584227981501749214176249240282846906835133615642344496485364595637979741679425131332969392132675734732898923706611331480276879112739541157814388374097502431879165249615662346674933597011230797031845728249663678306084202255404493882691132271323576818380040409516808546158655527706774296838473546486577377651492784548190152025773237183651928247798875003310172131774052030535686271625762796963879274421547779012538879902937904579469356849404943045635639425142492072645699909477349545760940755788030055091771148201463107767589074879887091494661618702767153612486016870864885231558780789142617220290248661974637767012634820008428822789347637863810147439477493672979947977359852511995750334085063305281843840434930019596689908633919490768057324780735060726988346785723665884403016533608812635698657128119352376537378250480024114775723471395780348002294156396855052963708945890477609549346918474929807108110996097458271638368672128155416301559597103083358833721349552810054725147157562865264377718155086895525687785413437699443186600872587442466898561351437603556096592788286110948628489878828168402395362620031424041050362018781138565007888413319354912346771749737737580632373155597707924872199628309374219838111723076605034843489480655936400790460035220468985507147775852794786357298431171196194836010901155118713149443793734750359523746910965420954260119515803902139313992862768206539996640215412648395612285860973561401560008739099156688338763384421335924269743710198183460789028645433258403617683023465849564381390626685873265684207567895717591819632595410173946560179394546877369382657947681508140625525381202496509849230154879611697490147117165229107513544710377075794303551583919339764213817179880286040299409425125197226383411779221423885237242880489684595376528277004414684856741544007558827379568714916084075129654797466087712901623817550279677596355897875408110966576629268514832504554292324163050211503396839235108424195109722345583498951022795267245077281775409356671670510443936628558983735966229123434449811021704500546624637670878814524042890441101256414215717361372130309755234061920368055588762800292175029392057726815249787581269143986141851365385335083304969248441838733375933875428884055720377061259280080828570818140624591474083339252202345104297960354257973860692516076388343786726572738891968723909042326191688059557014125848544833733525484955698581203320336674515540566069644275057804081644445322671742446141910049846786633687777014790238877453618401718747997795204684990693226486191633156043036615279536586512750729259463634575597159004260934446096739647546583219804762916436112135936566911659737450250163923568076018154295811996106697288500177086394191761573109087192714771084431325322532962833434124889090442727145818461126251228231179805450074814625465747987664817783527539146872848088321834183025199873289580120010867817817634479415340585784893510798744162880491300101834542153871119946647862859886879435861334131821519397581870926818755875906108429666522039234046133042285944818267176559647781504058108381959495839687283105424474573143847440505010017251031964396044323071930599606502418178531313957802632205753533146097178537655542834176928751823639200255606461738760718366943182442640510862959864566878995814503461671799745157026886760736534027828959107188666741488505549077013460616496224066998310966544082516218625781376420178045584065574039212029762969535512935412921132580634068856828499798128111032902464717171065520582908400288546337014195745425702473656088138911608205348322386327124917923703728647431654629803725934207779222906209316574256528947508831770440381304332034278770850931147553481314014330984199964226619920331949623341789454302456847788966742437305150848615158033829820519031188703563782085794622484881602755901883807255234728194473372752992120685916449178201617168339323330083292798665860191638574131812155146287312626632518060316013641987454455677679693084809222620195696633961157677236583265800155534153153758876165004308717800621159041046269119282345404639312325169822165064741182143630128371806745228028715978570812269304582708325228990948753331907980761987754908835644837998558418827321983746101872504248625223520948137813299556190008492230669991511152755468563903236886756958302296345341886917797576834101378840126697635020462373065285259703501248566393050431422835677965780902811116094341954028729042397419141743790975418808929105177319284377731365336062475264341755393630822356206505770769630437430169949013137375926513140560441923642191141685549247599514188026943750567015178576224202767505473004413189018811072799568560107260400342291957089247900134894648191142693958564614937283221052625726165188758439998672437683887867037373761078318545975226117180593263870015684821366943650283238843845933861320146607881311012148712263030963552388864228714677877165729967078067072044147433875238981393382730543189441587957480389532547795695960104381250522758166363005194459686413407193841719619193848765774483297450246003208198246257041885738611944006777363888041688239305839330652800671365200453338398540316874569727915789285143924827084275169305821659389271429495763660624566889131045407813253755962132116082466897567914110968154196849360241795787642602950192024125909515635329161307810038946235227553980686651380418102706807406441707292128782471984330208981162309394081992497803653630604098974898370866921180665429229415861362018530464284475928110032724364099900490848776416985991856055738493477531222956087106107670192263750887471925228036484298794986730620069747133748483854257322394561759054854108036710544287460778301502739554599333039532599432983637596540305893686779413088622638743868857880440350841143867693149293287692997466175047411265542569213771127779568271685024558766258182163297642464726611675976662715402489406267174910496463654428019822604287845037912376655765507863197225731050481613233741137192776214500840584851544403745787243552962074894533307289290098817186364724404300930930852831884774148967233856303758361247338863391628505200742350679154647091791358291984752583998276217485326223650863645613611897341787178515560855685417671313758271465368607335002437812341076811478907765921751479863328540788646726266551586294356436244498197518455850784959349777791429644725407187021667418787178018948723017748541732501860181883414822240397147947120261295903071984785546666042272683998929918394954479227294561339539611676738497511603904071059778681962844298691045640655246845379986310534638474846782097713108667331136178091793135930314918207985406495884388417690167980034774805715466749834756788293540466486548681019404796703006810484791793494288873012572773260748003290860552968873626136134353265678971499106176192224202359211242825432850297177394423508007229526432191081643589450297048023609672705028012429095920836109239514255257450948964283101086375811319199133000808631510172484592164643644155673440916628395964578785213810614193229997037195627943781548500788970207982172510816597457950847627471767235067662949259711276590622137599243650082172328044888700322510522245292632705096817756203112203235247963094329899421561752652497918708489385780525642666410548054632876176586558208418478860951336354692184958581709950004161118078740799087820160016597048374820869378832922174575144213565655524549123908664839243672928047769540644072715296934875032028658001918516836119048654355853676842009338998904728365264483805102221331450311523048080698708848643014857727318832501812211112861183518015345128175000824065183037261104723727612241062966415887059277640936989433862288608968090702556248428356512819413541787737678172364864154362621740060400892838634832948709673589757993976624954608971230657462602792017679151241676513336039571157698984058801516035591922268660199820356888796823563161498644510320499115460111753124014826251583012676471448910919720988648213244641306295021727453732741015648348608403427448414589533464136578100723405666124668081460901166845523364253847824119499563825439785107277930285640768801356750342485427896205281894693225219924784883421392608757180052535251041012489366846852850385751423522425497912481356042481350889382538822532901068173338413281318411070281631466432598834480722786092997689886382120063133537835790041829555356786578314550628422011185476566705548247462083141746706239144127843414296312002210800621155078531345148812712913391683627058527662258245512704404290256718860653153961329023041648993598739614916609304226914553271652043797334863679738644121943710597600889965730916556766969670344037532643020827141290320125228951517670351852860475219330173590049370955771766167459532834406341304775305528615753710862953816461300367091154679476541627856086120686211593301612902964984424844523567942489506841744210436838573499672344673766380084560149285623566130151890473026925194177618991684114738973560566112166716563506113675891489183370227987544151318390053917352125766727922839832420213298192990276044600443720683597985453893869210478454672901066354194318677115310629807016943468308099603679186000046152801178594673131308423626046893226785927587871305590140788422084753486926490978213530438724472620985790980741964678941477618328315560464596367467371564056636129255730071263616536518760698179429944879881679644876822134339611421633037879739397541029781145947910517160955811840175513582948168622864168822786182743541556022298009766092644078099907438333169686395961012712509761399005563139654789332435133868883541571479803704001912347376230169902473803768241392917221039578051084279832715958567420288222092090795160980883850644838363702517167222377943946725127467052669140059140128638961518721329674290264681862114712838646979362504306587183802540777095272127548806155907213022647594039043002258212487229082818701902818264684739584477392999366647320091139415036224097975673763719975643388195056634759352420550978213420002245812668328305706549620482716890433562712069681060445548946395444126488616245032258895300638480841784845206845059033031174198335757692258557727612642776140760094315385688734780714341019828196966602983322591185832999895250355413713910685046328256017821855933205651801609094493616367636975784469949483022511525141700302871580448732324991762420662364676282274290194159136074556453207374694811718135542422190374040786082452674669025370625637473665761979860198464614645895130940075881048585586211560297397762791420520790414546151209374694310105070803853834500630834413478611416138472292684774606576678884293164193347877820127066476139046892496369698163189656688179991412809201135040231726918193721573338165330538586673471206691920802621794241246606723292849711073643072167421893946394957144695290516461182514208731058165315674240231769736258170732855020961040463092700717594149490663729143525242420991016319817477717969167360052173944762934960281313654997744656744822682305929112623952200474503251390517482864744543415989414871001423288432523562165478408598688502035752477009301469025051661858629108449387411531508926323712852746259073124944642252234758477056261873465487877375797009332699353316040276980370380684240869748912951131316212670245664041344500872196338251419429019786333461740918579186957065804666951020039433706747100676895978910286671036320564121131815463832127448024023082190555481763817596240984941884051656586371888160815368221728127881042365829003374876584900333322671235519043875657444049584392402812845138704734562370038614178898455981918265564082843701077219028206654863003722541705228141662760186404253433618356135031515426111470128682620601710177974701145454798650740910088307429371227025078930531132398564728313252247210073052968300012458281189874067688400283683581728919720214595614339334293539803480141486636439865234845208282075623133064028504137523355824274575352275705506912814289081112588050924866071122748058996533974723638853963971509259899314776301769239218080080697792128511951512263721217742054497750396765490821955927769553593125392177499951156616681271439646475554630799229338441368674892525386399655413062576206856190339989109879057476865899752822910897154479884366573210948625829419380066415937539970382594961112892598691796367413591817361148540328979542064386367619196535597467013313751926504410013165061271213221121881164134321143996565860607018823192460571619257909561440439565289120980701602069500800373121300094375085664106446643362099798359957352718501496174410315128354985616862816265226278619154924397942897752000356375992527937251792320800790902884477284724664500974858435409747219855049011701102332075076616692370904555396930308567562553248611247321323210774712981743249037757020357787533447533197125471476827841276398571889080100079677070935884028551736050882054579454675385980724597837418825358965410011636529689277062939972630736841311398190942986433975767789088702515811207677178002661723606047504047225617292388677947160198090344003758908137455600369020019278639400412359845988924136878064819480023131020376161755005132195182817877439623156324252321846731970422344937511992072969885624060062470622214777985233000568153518926500269061651775708506251069915995257874867977819839566381799746048568750808034301036043029935749498453210025532773050417495072558760153282079596822206344755785212916731592797296053453315051881438450861626216811175110640707122140163411323853777455735593606029017412188823235642533412092440495584102151396010283072150500962342847759946027784448874903208830315182356883713773953200944323534499140428572667976133283722367730312896789995148042946874620555014561294888502573296225685012677666395419481622985026572274814142833049139634439526241145958796105072560386307421840026120759163806121310787115888907679345416192178161035733076948068078169939472191183456992103725399221252762204297267247637594353466981838739130886238572215479938211765947730925780187775370585168662603118217823244811017326777106883058071120595520462675870561759562560889037674417213841148338353603797559397730433979277272573828886096007303110768387578222895308986339903836216093129766213108229995907265114396918837895662229522813987541219300043254635216628254511710679455898106106758639566733020198263260096529797828069837408382317954460813743833156545629365793387409343562365231259806494406533713255283556824936445367184479329235232944062261547051491022505015294104789187740073825863946263331232338878538749767337539759208484812982240680728788016236414129973686981949573514961936756320833708454095031643132493183300033891233028956298600201812428516032895910280144938068163788825383943381835283872374899101217803630303499635915517811402058256468096944880255249735893118703626442880357543721802099261474127564909256682772028655939573515548259627478258866409810607634778213070539847913219061747934435403296891469839827744529954165407807859599869022848435458626155938718029186399534026143230565393877440255105806534652513009378408481164030412172358906468610437011541698875442636849710250336492746820124159509227780838638383145702230220979162502827087598471687445289841147479765336307441394069962173285123829282040796552724900781591471354323604485059174763597468355856782171801097535047640975212799555464359263965975717665152468444842319534462646231686108747584647377333045141895270129984206220999592625888574784941221589430636421827218984347685632628505915064449957269827688393989915125025958756057704071603075926590507779227872524266442745601637736263305137800552091401647686693692464855093362782304663074258578274960022695324466585306475182222130328140562504813989750650748187645266915430273143866471103224882839437667045162127465440836382380140605592857368282283804471922895977484002080215440734830968243712314475112709341729649298026543992997600695173749799310972157938475480181511576903841729495101427768987527579860426874141714353850919657099164136313630983879038565462446496042785937369534762747132126194058977328772229217705697760903652894099949612463462406390870145546501214260996488345500635518175467886316189427084102582985483091820320495034135859179807858550641774452650810108263028438147091774457401400807885672791637295074651899870962302188443089236212157252448912952435378372808715679332173807365272938068860800728389293819575125664372058106956049105392155827361081329444499990007544369415143998062213040153753628653521796114837439901858038920278172241630458620135632281225089209849787602043260957597457338896145693022237159396816514653366063524906517378172441771651677152664050438680421469213502772706513859763957828216567726805304442854963515134507202528224188720434395122055081766088970310463039848516184158306296642437633321183430641253944022748961474520505785505260338304473161017063102595018394291120966080022122547627625491578784192660315628773271924904606645343975080604703542632467511563331887806280375821983775021362089582916595067848074919668711145880418588419496242965748591158595199186928391386697461308731517425504211455950910250894779039478499967093961736881427826857358242282553459411843992898802587716561906529413953808055004936626688337029201688349356281634239923112647979339593720363180731005019904765519646920558175444230098715106341669648825215237670716486840983260879951349929354496745846611150970527484024251602875782173903404423208455832222813772348551571582290278852797743013720587782490972977517929708065347379231121933757799652368885175886832694053551663029659372871062515509473721368087306203283201202696806456794429964858951047660806042277605478818807172879092617503890823781749287164062168351100653928495064511459419063358202599166337626725597290215179012405695515144524291093685127377466054015248290838135243545107675203720602910686977532988827676136118309022938152764543973569686280470918793058619986965941029291694381042017099326166499031634406067660441828461876147843182253807174736074372170739029218150957488282456252950556449094373087170416170503596917540316249572018634373424598442628366729604982797655545678834447720737534960438940743599827842468357950482967556665779599709464847769781235384018705577758456254458767441051294721994685710957769030431742339833933081905873277413645245402273585713820067231886390983925267690972855573652349359651221365139903485466557936797681971719508887564814877252357153929739270942221831133230258897945877547240904968785163747809044122452237680765837956759273844721051914023546888942757375094996718454716876377535488721015860780733528858639748932468414699549995852312212129838674380276191922769087981735864592591731687481464787528106588422237615062743511152951165490982348391518865352366042676936350985890087552803026746585806461968127554996519516700364458368018358126531248844170314723176662093371896477204356489709312071647887546678149118589420290660926847117322362035557740269344276965700113466991802463878099540045902220774682941044135804942801388804902497535109196751048701158635919589275459726646976429698912031989670573871421018158041441218539846219535807459847892419696808972534784788572249769405330376954034679763198567876083695463902517455451750127878936722105963546379630641935462243174878600565593831341678121833675250206770986754157217056107010492833329962125414884852448772133130327579104631718831318892181991157390455958112416970922209095689863190333996102114408165036361166545728362841701953103391610771419610074986293478868771824312841040130201660243133114416471247953441592945265423540222789125022983629098544152459334927418559745273440555512866427408370511900695036283427300463096486166240778490095075393031621482370285898821907633067049300719408490249046132020094024266626113269196486900077886575414964936622607733471359836838241971672325399288182629667170071152477062814506991231142909531307535397578965448553659012070625423853383304283144293448554969775508765025371320678015369289060626065444126811643024943652641131149956514972197107472509075414567199178430348545906716583309648401921557541262604762088267618051967228329872637909857216617194436111870928758890437240719870214918179989807865770496341094317943491743448654247958198190170116395840370133216486239977787886480950255137491145908368393512671274638406420480013899069581052818114360264677284583003215657247900572868765823724184297697151382787029787359053987657446482326776464489961247684609703634986838521776823463469667733330739276882742192303413601483387134127049069470212832562482140929012885848816560596200642158527895131765861083681500522913312562626351972406984921863621205349198368874558596727289653699044909872800966700900411449235420773647523058260820613240014716192910190258426219586835135362183227687886430287933561090599434840701509792956136277674982481655357395078449053237333336188152552723385695038947740761833291628642492807448520298909756677036101728508077560627837731035318874968986115720688443626836158452401503130815320436369112875189201228286243687177249141591894329404934092561773567148903037984903283021343266159479865454663470545822566536469057275247306496662745670862196687616985667075390082511322016116281903085215915405797798154120955097789492688389910172707384991056275144991853674125874072389026252457334291308886556239007891253094317412121287418977466591249213084494117782362491252094521300764417299464012115926247588068905089060862057413419968807671114457465932899754451514655534233735596182223268432963769532375885632556928984586992925573303290301202573943369772164086805502114652637922569899100367097149113525791544600260418912018549116735432031049693939910240449908606086224950608517526391533396789963485985203824573400221460255990293797388151789309666845618400087838616300637030545437486286094913816622575552270593288015402045544955414205972243928973187240770137697211976213463095748269787848284275029402253948848882195812467896338362495898161082017440636831898545649464883644647361864259487995823338265415512585801532033611100871778251246655279716307140367460936281278026882984489902416901289217805168281712209635889928541757209133531738996590001096350841479268015669188507871052417314130648910341121193366817580544806704704457448497890877226499956428927205597327550387018252377327306068027529583441677529721163467629662238664214818289513914399461214058782687387410571574112709554511921060874448597246090777424504939120363170769646183210786493166334626361687558743973718307629498234484486998053514974382792194811586871319818792961401726070518838950266889390526189977201401775416573332890676331585903421955165067389719725198327825933756983752174196309991192253123329746677224946293757980897312080277384177639683584403758230437245238871399458383775164812711422573614475752605432823863445162964411872244674758470971506706200974017536087973573394370265864050944628474524067070503414318936954504244171863122803794033171477775971367465945360123476077611609052251121276069528834720559676678079592250271673806547579977847788585832995386271915634045476233421690183393433405482815978938862959100729514787809970304695911114651169438144284738558174931447977531636299417901021959916751050008439238467682870822199648096391864559878287710310501987794664900949132116122872078179371231576121492357493049614583685371181772806938590108332429324415663419543338347204143115486239309497470181628069564601143244275994498912968213665886126286511526858838364002641619939413101376117894935930564696843266962089815177915006485240630114066995169301983778005194092467667966314731970084345628642487632878249077766034373094039872546186163817439168710794101171465645492084002320917418271959316344651010750287864021160226512648326133055832689471117969770799253588824269126412274351479924741117577741638242623639973313613329488995056197467923521550309849811259806901469014376643665497227904525709213138412130213256345237308864041275056027846190032893036744540410813333658725410503215017819529415785849952132547456695047439414210470606472981108039083043267919008698291582735087754610587200336176182243700449703077183824689162175447866825881057119360581333622879199798918864552187618838472465719289649275159701372094537029923833841455475375768796476267513886557580000398958067855333385069327939667577100247284788416826042393917667949466170699472455329649394180917313344484766971198063620920069048952468569764929955753792900045305206612119350764763676736213449615825126860162239397941890349194290203272009691167899223633251828638991332129932355665838646343918515437337663015618272836932326033890704323930461052204197277457067736650438076201278493229689588087627375312683681863231459978024527224545775564220480646992849138090257958996607761550733420589485727855936214687636517240772110010971539040514279493988390090603732723931111524517982636297679805825228054827099832063702053304023826785933163653037032607591529775922799687074516269906225233618208789519537804486431889423469111378598942028749993724656221383461589816472356339241508043504316291296867496564826356350810675055333998212198254483934302899068745249727950146710063737933502120026817886011597282165628268164621997362745834508446420973174906081447092400538801927864476843344228198486579455818496376906900005630990585782188968516266269972964643098343799044884072176590893014052292649778858091125042156523506225286709581156425221911846278515677372603132428738897106327058276550674598058435366494775445344714275561637891441259707016381210407162075434116823323274290844959891024737939692133958840095233228213342236736982475857190463400410697265279781692966232677890502293682027196229830984339526759183641704691849699841181645069704808462750753944980800663204261927385951612058803928502081673098119643032268333432358360592457696863200464292242543778986761002859606202272164419291608838516132519637709085757626045333603690280816774083689664191454655776555819905524128486385991855926613909888272369131472269206125781639527736088179694366465693889527269740571588628630187014353159919043250654064642579620321588117252585716171161918514665379355531907574969423393489773761825388152818969173949172506889446048944968335069071212300599884604811637304414729047647103069398986637822286179343949141733532436094236056709523781664102103305479224703848781576271495997083279437823718208889412554713892829305684799591382029069201370626874005271027813365767563478094555945975314993775481809544904441197805793406153733861589159593189608287968053200749887398697345403975784798431469063152169095179515229820595739684288135291999908631756697306151272698765490736648205799913807755370687839526724474948318213036200371745052470836049610028836795376693302765474986907573421615489644899992752057775591976538661186663581106585146699559304345920091586234091199561710489672851454226855696201073418384598543871571999795587472039712081778502296967550391165664842340256188838988677969346241494977611924067014796951817226479756298518936575076226612030385048056830851726364710520220500789343466145239525168888362488673461640296162135650329459271346252007885354467183800639658825997782873830855308914967981012264250834626461808744573290855083561723428179564508674648655341246965250771901727691225163441636229426994750345380866915494774510124447721715442951793850997343508003762302000744188480018537441933874875935519281061565491075525091367147730063595097369163675362846235331193973805414403968947578388395311332397729945098577193705806145431566012432517736155086382565335164740438691694023587767320864611628225613661136308335078403158233501763062396041321874776311734419977249746357265317822977259414768858010892898405655052891331177673199468032027945861957232386397419943327427863400408663535211343818899965389827052283186468829893563535918996648329891937171914554882168267794566847511993141292631983515509483381728000867720685034477776744722390954753079791639936632141657375759057622792009791596090693755531967308346180394550584963025940636229175815631733908677655167681772389771500371449042483756476505306422602024147474738755098843391505410087615765227201706163247902556966863361431994021847407678776144274780635389421152470112094072308415907927023086692867990694854346076604188406347053899939828256440698015828695710238781662459767524625615220006822242965919876749974666003355104116829118596643283157293819791219828723013906363401244692264059535347100880319676033911516301207005301426151888118677919010961275801384563500978216531619525277995215399926761210644918069921270829784588361543659732582025117361453323703146249819550774065538286187743873129523826714185022586535930006905098074371664403278398605265847007603514148833838355152700068076630482549634411145323419818265624427741697271307814907288913491746040636847182942298878020112532863619063559021807217734216101672704935749520135323726566364863522288872188874562177292542393580546640923352787758433153032306220361586396110932449587915994462531522785480354603503766321679960123781152114264455772511903819962174893634916145107514546867459099776792640999374550023067134468108208227222038765329396390983868753255569667119685094527157600860803044781985519128371032365127785124865070318276997680604746291162481253586321983687438069444701336162791933513312477041623122985863131428734544993415575418029076434604712946442095996233575306511998503748065857786557193382389288276686682823780038856345466369910547451133139726711453688952821407193330048528128546118898607774711022893646169368647467904751927468167216387754123453033155993410784459357323771654103754311249584734003940605099985339171542751373727413713781499757329821261910888177861879609422611145252087202719751538698058146203915057236991252951808160546308705570737658118369834944748973939797481319110719522133639397092478998688603264927592641068957506748372362584413997532467444083617183980340756960385443653215241297555748736901363279612174589527395876589048302517551026726767675849347117792744166500581833982256412764423652952266103651281334690451059072555692108005746228771183100396457015251258222732352792644127906392847747305935177478518933538034141424999178954188591383351024246710051799276485834624065990419740486296425978303306969474962964666114452942113135913200558979007423636937209661037734050721054546278150001616851953677849580056276668286631936173746120047801816082128867624624110612350448592830971239571816986044137309949194195596420311680977861728616893423040714747841091858425084029893986884750733752357904896099962493539310779977425071466282718174157306200730236783287876166546070845334813112040834173804945536596355598813347706992018831542566062433771469592161464463863429722733842910600675766452821564238632092303734758390137089173531301781505890689052659711305576689927592675684675670478234834417527872786130766711849764086591832610457664624572313644336127960817874103958228307523070812630079872251610968608861598135002300879589821677835987633798010491954263339391527537692602989967346215438357734775335899183693246436457246124709373257328866907266005095439412978896359996635001083318763470321879372819496145774867661810110097284661629192874185999104766569925423868268696628854009100134949073844625658519391953078958755009638017204672909721185299852047201276407300676664194992569074943691720265976018131090123023533151582223078153787047539763363586352487654081222107087346254656718582453716695624340886212383022472212337402403614111787482265051499281336922106334709215094236749348873097162047459154481889417585952930084693882212102983350033086870027336210610955258015058992089672877523535634886139647295248632378448299471925308618493550505933959922689751189624850651455213846723385694716768516037915293328395037445624509652986012169878711570639871712245477127845979580968628201048133841725978169637845162127294957103408661330681313373588095662017691558837429608218678800333732877011511650254117559608292122403451152617493673622749657189731450855554210678810919221050421054895951108887101517351550009868381407037511917233152396704024791170769784459501794323601977419548848245307574775535937505519013642776261264135227278373042199395128789424806027940126646428364835149906674516472530793169860194669075233086991100411728635732484163039287561771249132716396202833667736485625798551239909160750929246987452983097135413630895147753890259232988242321935890996343433583973491640193606059935430683270810428222913070126256340426955797333521100599913312595507274572061645279519604707993839330098534589946496134345474137875368548270350774800024591992876644417320216946347297815941336578385838124242338033586744691107244656585731442187998818603604544087062312059307687929455822680329920210274688856304036635874412385421696700957855066269720635176047613198823734502561206425532916559001857952981788813590130690394847600668740886270001572926549254506606171132201631439524992757355030749583625159838568339073282486558435185918909756569932417077594582366948094622967389159858535384267748691281219474557411189478845582514563284445487659045971634492245870779358363230787592028668466831738189772820648504363691794946116936680374907182380156984303531118020791274126190694554524539816553439606791399172007044915945961660063190810199841590457666630925100556990736833467054127823454154523363444564403070729608543366654653135738862523668630757447967368012763925250907906840798131011110306362380253637025506094841766014738877033746668108085786678742691915254706001499962999974924345677667714579859970972273209447511380203419673624527651476844923219006268207814698648631896629249315941797702698051335064179524246762921220298746778109531383008837822620853065299567345023989560994209777361726608538400952988367763911620421620410105694446615469668475224465597755686257009912728817839292550934188241637004201989885915999341880810336165922024194771732183100718416546498369041051232188391519138836254185700946955901348294271922757282212192771537625873719839108056384662365235868031767930631764711395167779855631016671511928156637523545706058792863109896161935258265075254981547457211358787880809694679613183335303454574913690139170279353028162448708757428251425810171090386089646099499192151566603718238291341693634922264404357314003740169204100079190852083760845321955447240717140998207547313472828860857984870220033662233737163019878556725135628075411680397250907487419911661117708740993198431874280137222992637032701287264771337423735065660099628988071861483740451684325371445953739160850397053193356035150191039734785572937313879909537012707633256220098851207550769241758036317048845631915746293761934775006132136583512318529981717511235817267837796891111046197164286405359125895841578106714147524998966636365535098974908029305225349085106451743856789585506460299167399758972860957566068665550354571183638157817532608178651957567312584768836553157551986492764379372980239783360617748968534201711249990283979468179080697567093445634288110623434897480386424771338105676313195677249004638771659037048929242889291758040696183892423360534048074815611493525217925390243505801621060063927671570597758548159867183774731104835944517802570918874423650089159114676674797052227389801730778641525318816836594914870603323260155866357044761375314284802793569752734492426614937741320803854872876385325731629070601938044722198776703103540099686545175263401809291512835246110585570413471700212565539968566636397662313889295251106195719377079092638768606402785188252951176010097524955921304253259374859163887311652275264993023642392445861299916012467745301364233604925205674775182078212123973387205629470290802589860499193159887200676672416145953659593059215099076177420384172557017455545165704166928608696859431832268267330800741905108141158228333602576524924744717620922007281394773702752582901116048516431966491147007158324009314950800064631282113984406716502479079750792340688264347943923894066714700866412973921368053584792339482550902844234835634844668192655264486909121257532084813263968167976763106848373504049008304681606247241210378929119812531374011339624101500365531073713666788884268100391066184246581441152470280304757889941411125974230084298566799618808541834995958258616557285828253479815008526385827540676254697585062831346289425350396776642505846774236497211489110430785783715759172065247124175264330365871228806295340771015135346802045474155369210382201940568420835102764033980568164952454568845635870779905927708487820004915357468035613982138752962183658123349519542784619961265330877020987509294763202266899584766049718840691759237024231706737840413394300322044397110038750322010873275220483347678651708161104905404524004819265829631530003776393522617762313169308585803212505294996504825152488899054611895194401036892911920448551734716256595499256001044657011666784493271120548353940163443039491886353523905345281892534440601329732798918106166049027700434583322954738127362643982808594258700019199876683772841539523557585490833006191745880501499035799957860265179133808244334767696842171949599694776797546007969273053915467159194596265923602647140815423365817643116408462649738070902643104316663177456404929696187834545199595421400617500266062701478897381932761410905608842072474412130610083129337613743282383560231360688504007007765510014450997921881779875374001512189342546594152032071034538075925408442596885487654232997774284457621627086907278436950694565762771706641886013959083163292901083010745775495664355733214501548114811245609169865491716219253362652571916096113329696913540375031208391240630455863268501708441895719712797184378239802382783485257132084660933439365522128780825325602313405457318525061273143337943238276047662625984726349588738937279251345187230412126781608085336587151830860731126027736505242634660184900818545764494346171553986171295050184184980623795328319188764133804386442720486047668101422734125783266905032575415676652436439236536540967469125385208537411179663889959801130749942856550968749022711817650518144217778904187765897822471432522036125134992779104568321426581662924265966204790122406949866144481146676909593062322964623680217476673973800952264876960921826094996421556078477508453455940046285674859803095990851803733528224627934301627295896524817881673199676270162311639484641403082701396628862710153267500680025891612600363696007185659141558378474903091757568255754447040778264263361655016334633193608491940831170288863223113023223304940752213304502651629237508501482164219527283138745968134217190888200494156955906813085590584154491705364691850737986765756071917000654959007197624489672213803347767393303523217096307578713082466324381745445330438245877466249499522753482882857854952228783372667020686338581372416502844284522091411889441746118622080452962182736566520972151123934722052085672227230384904862538463192374465030862710856350597779621308340603453741262421292457204600382346782111021360236571617818038285666147043688149522863154779820947477516745301551579266386116657202489756779898406226036684847222687647062569598267096956223965606590826939711227026277615874106855103590355694917566760665007240336210276325673367965809727145800471648705821923810449953568331307458125002478501916624400736070567864637584095402240192125488759422533435376383469862750215884925631264545601532640084838418898410721963288166221288428733451270009718094629989133263153650492594256647384303628609485319223109579758320635922555406573211044247691902924186297851997409210142509102285251292479555804730404490805104121740574984245778296587529694429197694540491054242326879634275540400489598457691491943318355970800308875058422896306115177693694221589221344439441607853551729289402227682435740093735500678641609454367794454440584495369132766869201269519077932449764382407039758477177255771235969596182888129280335058403682196273121262078522758668506500449179180662871041108996575048788739590077523408692431703861067146108090844293828150673946359849575428657440313058373646242048550712427971116965556577814999221432094294564624034301731391895059711212330627067906880362461018162456423891284215314022055609786440226408562340637400238727516634911934403404002879971203647487920656481201467805330367682171453020257577726697620660007548724721971358677897233832698262655070683271461561275457970612357640534035893424591350604749615559712601878841104717890450173790495448165773699088038269351957603086766866541536136452233065347061996752654003087954210416059102931534519831675939439826008306741531175160481378334009703268052974186528994583091500125094632585621254258821988274393462982093925516887456180831988683160932341650910363670862543907869919147400221084479414234791523059680256849534720553786200371977725893220913750587101066974894389998526564924215398034201481107435440368700534127253773372999870518929880451209505992562775882383313476368661078183321821094545767000343068650830552027605876809948473869831842311633241891067706626461518955198268654502721359881555034908423204093604950779102244332992268080947219205072718920296452656136067691587830362981969791428778366086852581078728043111818171621557331947950024023593570584470977192032792493062835397241205230258596034011815529416711107142432603259569523583598751926296656774069929581072957401338800084447100311266642492258474682470749764088558857164512051979077555095336906479177180652284396906849280742180900075782918836734598368615543656680681676897535964948326641054804629085506130327749478765585029561317195069238722057311176054867330516966189508052081853401297097185860171856379479810040267657922746281794837653747231058491925618248618413126037958378394746185860865422386869294175227090581884747369314591104219534394479154408231685513375672703420313427101458241631310168530254342694517023350608276667925487139624043600146543701098299054892824433649774909869075033991200997811086696233028614823777590724923082866929399123232993768591266055084085898948284996236315055987981727867339077670386750174891870819746303618765406106050050303765353039728671092410391469521493929428760058645551547069955289091704202522652952271621896217815846310099692858185610308711725867533090204917445403894236266905672725730123538363018352963877899937340703864305054346311656669730455041382966904181643966867319774127403938958375687426527025695022059004020838457469831980516314011691359884886255922055259391457982443168736713749538348004261552889349240546535764533718603945189266018840690123321993306630944855172685409096787708100987176790945534583111024433686007046325178864821662570925774924459333701520069025449004783193854040670748501443826142993288699688003037508097948622014785611970416621321497535090394826984398004434868505821838537021620439258847973049951787731227007267933525336573810430896468033761206038503787611301906496868096452322218908554951265760454478944228988650482664192662678424043673717869002521342228153253405181442338517207533603391202698487054058178872877949395518124874954149388209670088835897725742506906213287729663931097962143595570148782360923980965472550779466171284770749217162697425675194987379561027352187961311129840855177496352112218038704251315894664634307901076789548481383198417336624744712314632258879214810403315375616705538022349358952864407791401357873060245428969746639357969740718751143577439527767351070055888675292515983850329872443384904008923920218620209131673260241994600419930138328515369732393391748848996118998150613207016205224483707735627424123536261238411212488621996392006195186123371464769671201702481091285706119486986159825518233068584373300766221492901505711170830438489750691009846845489757886973841053988453315218743723359056436081808319675538885993502285551210864141082050339461770277185531178442223753997133780212182337204465017570983407674883515031562862762928708965909783791893719940390638676700234051121158570128515993351073309253672203344147652045711315969764165863347192829939967745953215079963512962834684045780619459240375808468355474880341804743238433718900072110173015480410807855871461514187314552350525184354617706160627101359920007476669480700237987107541219553087076029840346575200250479791213998276224656962616476129794499634746058112472821791743697738905416995256953597008625208404299410816295697068060068069374241580358098601447808524404170520679058854422449344297755866859780825695644310534022076778935111676579819826188884657520195483206683354397047115764632771368936683094890038022984219208271483859743007456143841224413660329285807440606737817391901855087638361551184755657734620561998858562859812249236415849129347078028982588995844805442705303538212712847355081533896583463998629971097128983256597884741777776737998281352793447498091512095641716477705155874900935594141007234586239505150032572571337667119247558251496054754517648710546597321073747470856893807036789931796021984674241660144219235831135729850089290701883328458640982716273076646300859562773508189025209135215421446914354617921670200288574340279616826216128449644683232924197520114449255966687711806119424182138353742753053305500439112398296121730334829299125820295156975505980989260307656885807377424126908285241915903376848387992521159755459650587253547603615818797178034517246238681402386387282171624991319652260092631614790769646564422192104136460902055779376412598346610562275104127230738747180154706719655789219955191076005095758905546005416608976254756920751321255160210316898701582607788970099249964295684910795626147564924831775154565605369405124548226076523388889867280408627396399475068325008979076808101123503126524724849625643657726055930949378840106000998970711885075747926753801617350972618326837896136679736751230993605893727744312106348928896953359218919480368653741222951748630764729425674310135064570865119559521199669322252392995645632571840165320614824659051579756845438478658162179715353049250654698252610936359227286642314407166072713414086886724509614249311560834632390310595845143689964993185606463564411547453785848389450470033035079605474786209408808947912168065815111093766744323608683483315480819675986148159647557483352244410713451222638390694346509093209464790237351554249580793871187394349484520193647563266765080436171011938232506886649389751621197657196427692464952445998861713749419020291453872533642527179856010733335999201652028652957194069441335365886314784265235726942720879577592818839360303926801197561498994882643730704681635293311548861173167528146085374271715673544617869175447725665028340636462606777386716670321458741708590598415211178908416701796577673734585258941201742426146670802961130012668050837979904333796451923824002105939720403596014572517899240124662541241428192187293686793073474702411868321231834403811313811324011409084930773968038912111488202984117979194854658519242685302407799079379730629826522982464671982266552222541232786005967151767933535729420704338288738458896761328094880149634469300745460815953803341761064163279930400971346925158772071249806558830174028972564760793742483086909923688844343399489140458666111588075013858910631665889697761599444775221061158766382734900507719418309188384560283624462830524202624024463986994329312877335822268761364500608146151686707035606179456309950853179612768909450284649446799649205555567473305655005608627991168817276085821185717129995656410671494239619989955695838035978300119311421567797155372449410620470116919131810435146117861056246948497899983948292087321804786879874849831408071641474296181776624383133204031141203299215630939221704153969344324309406449628442304701656339925729571157490797168578068909428461461102427425368685502442776520251719727476900572663194354832339846169362380860939750931949160910429555667485696580234730620013939032192592035359574151172919503794383575109722104411380856554017274534520359227587449364148933658926598958014912969453505207572708638497433869965582593007592897257710028993681082353974039474667814198263129494095399525061369596083212573271305002279006401836150623301420961404439998943519120363528104808843032563534642503003327766226912815964039607713019038648279336027664135304798849366557781599137379177376975667066134373056051838190079344790373338051526661799097091875686203493253613319142549765955579027967892651083982706410631422012230490812116874355264440099705240455918069156639628946847862990161197707796928490495195384176524487415669664940065250927064948546918387554884028109734843923058308302306176353135297348117141471020698372405787059950037667976441797129567685599161875879214238413162536813137809112585808261065324141717259717262555308198394460136422111641622510326542931506972734816830232436567887293664259346956724720506564442325979351398048971360426093434897609222107873029279739875945019873712317296752492478738985300461670707318476695833757220188484321524842294556318083049154222022000562039342091309380373104175643060380940466814711795194865504073449500007790137197158499303467355548340355187030477751844806672597316279515082605215212722475425546632537664269534622460432497208385911191046577322171200391628052275085349004397659920730640614034476847763385308745534045242487984686247733811949885172408292037852252956515242998550131356115072564298705207812328231009155617065998424584083796568358731421080639513583471922055776417540944576217721597978083302444608411509832590709547477923235915817938331841086972028650705563260153244757955431231320546678081646464258085723906977980485508493109117569629647071535622732523168842570739837192622803929581755700506129479555756960386997231112255318196006641239594202509092769252044292479581672665612384899073288149932953020064565410847687739826889519285818603056794948472598374462621838092128808687262592883409350860903159153658973427656995253205050454962722839757136868843695461385490904156336223087795352319651662325350199712686736414299459478054927474667724627711175181385163741888921615389857264518841199020109109887927574224094600256302644735147581583529594845716485539684555067545154661560173982989872341330420323225354477843009942124879959601915882328734567072305006513199331006704073336442630731666312930652245624551140287053256330381003096146767782692072587717505726935312012464622533646864422215238578520264498552007923870370250582933118170621261806367673790365539614269969750699307980611160500399982446403563217073900451589968411894167300926422671305940863612334178141351870442077590618457935477867815262196941038375487839048087964986587823258993947246847315181465561365931362347684928905440057371415615360209541706775084643338992737248394986245809213713647015529237427761872574571685433425114792875325696818485876528807413885134326339358728945972777004697450545481206110721763505690437830086897579949928601229426151386400234131580475327155788839253930315113616669303157413747798344099248603967078634516496139865471568511828923215479807501304505724508668115193270380882520482110188668692538006531628407923112324684437318608973930652047181172153274624721340584956292007292900375668109867494429858410401247828418982419735351162537767959919762907815214997661758066070291010832457122594883787806392681124880398500472871230028738156218977412262860226274998646417736598113342976782072628140266757788933889933017608532872742973368248100259504378624167982523737624767871612450437151845021297675073220674511811657962794168402228311089687681860134182479940313761019527837847073017429114075506453008497404183862166237041884033774663499716437246055186780490464463112416658632479257069222134314309783244410083503179091350439769869023969228728137493344611867251262039281135035684133082127419488986763544216707613740172678763449624766558015522283606634831582678394457732491040700892221873645321474847802134393979303764858711319192222261620562638827432901431002014629118024777985622108715274774947828104719964633465357878825118679605084933403716098471855368293596428125550094783536196879919281077826685257623240380081540456138431951517421305496917265151995943596340683294460139082662783059528743455577591264979468447708321539167941784244852218602058018048022657060645407962249824171485397398935784186095029966370388978227984230479394930175506054312083648166294296720793367187731882041989580498553494950649398882013157400909720493075578281675678754302024556301444934900251992406407116616427554799578155711200770999453912825798809821065444650346905625387971387265257395393412782538885010158416259534052671975162301317754215282313060627955794388348655002061092936346680179015489907790584599869244914375922316601759399148248894844099117480698250338464842085340249098286019256287406521159538579170086023751434277249527124891733206664705356101303102282496016182609672522120000240893744049205475040927403856348871453344720361430976439327813377130448088057179870276873177846038865003503373408668958384429518392636727738512076844217765560160409533357952737728750716870991478694972596459130605078614893076017569170084509928819893673336056232038838541398329505286002827863388788326453958961964316659313770520116001224003170931067656129872514615758623998870029986615826823069894553877128253797218870333876314203165696865361918760569627302902240547381663173458095465053658982876239542868954176421763513220706699877251921953115472511651323528997608858145842107372551702499926790565235476556508346175277713535801754200308787270856547251031710913312680999215405767024487807537969138855637803575424716825600852497489608354117167404775109492904525430785290499282392978611237444379946026729351793820399440177470780643582824834519796961728733190734952154508956495752245394321847173835695912644140973396208612491855619127830881612695040239827976034664784892185799765325322878763542860148701523874957846694396062030206287134600992448777723223382923014574362710654129796187530997804804831984450103785814881790317229092277287536244242328702618057592760357848211710257444987957363616508643617855762815982835573693145162318799975528878769343662684922170767990913208215151359182819506504971207346372397111801811385947198623923436646048009166607287405471778311998314070560190645102257134199520649578059881730626139633896851730899144090786243313159670287360020869226806891782091960643715439935831085426167757379473726894522312661898707202497794193488919227795229164839610273937047727295271523566580133186596317624964518597463218831589278349671370118293371018984361161262449523641150785136162995397308613335558185318426251586166786118055871686770434509532232108117522300777912251730768781051208203187213178554776386142291495450867132424614734494302675226146932050173815650876244387662416069240357810127009326453193304870753908867078438703838182392399583201037455701464509136209083659545454012231864899592072851017672025909968372825569202665628081740989369527452362584414827040582932675077686287039826085001616058404904723685341496855633082666517536439363439482537236691862465147895246082342329349153649044306764266404390491460485752283879397725975345211401424859583692530652408982021100689269642227125399198337911472714460442404593887450660193885503632969823220193458316717099134589032473295576917218489075086332517929489681327965240002948877412624311729582893313618916826970800668705484347574253739772930238543239334591534042219635401627302777321089241661136486315304747380589953238170992717411018587768014725632958078468842723411010888242144349141321497285651633221030110324701439930541000618280758878002188044110088387342134180455104299677543277530114504641620974086168380048622420361107655331027396447080374410576044085477807787858117358537344257343977885715318253664771035907449652377970422116894544558711124247227694916013743601153264492534282044499264117286842878520691126720194850315829785000739384179877603397911253191472071584931431896753724794407119123263681235778027975969544243555144395971746964538638859388546275751424827931394498185071672275838894645585183700766343196539857504678438388486865237351614187510552981130941674381522058767739884131019638847046964750085200879722498977096493305327080492149296876916248789252376685532518105213259197004477690280373313285116965112924591281943949013517332152932386277460253273400458845507987303148464307613194731665439042282052939313812419624714562937606941998632713770328317089334877814112311725955184355373249966206481321859363305339036432418687081876663127399720726094675479188481302221822554046170482726864391528472206343094922079426614336937869079798648033515471789100886242778671990564671227045456519082495214935659336109123355086562721545203624240816783119450389668091268356366753577402032407914909836552284451138514806736210609987767434626792720538653642800203651547807902576698997498059199066712208894010427269679699046128142259947286782370004167810385241630779984970537406133318398020262793446085064891441462754723417338896562568955889885601076214220747633450903972743608046994355776939619726821821976368936151049946074789011309010339508560848505022211313391784204200118671159498960621614598337416426168981459504313785753326186450045574080764906680801984276570682207047159339639941717845454430095000605353752408505148630427961890694299811087290287728395092536601684048984308585153841199627158756445432833246333369010842798081204117721845112387421416004325328734858397392596210701772670194197469034358405555834691873639592029091489658334998384002799039613942820082072007442980307747526162263299246912395069208857659052435692309060161794188897386677080386571615784134092664105283933116407520607465613454693571719723934559913257720079028178435716539467235992821036295303741862898080856717057290455313650986870279108214369251533154299769634760297203077777721814745546422985796683164564639601164632885657041066385293308684157539574099752247759894159486890665245102396905475761354873881058043983932409792423438418246318332273081326822332240193992997440480875869563393143162563224929295830774595993361849104168511214345719528036774242586288106479536449483716101784148517855094365911956853698920838629393011357575904070907894481217209998607425156694088909407050190808873047940627060858836393724343661620766395854168200021080427902534411572123231813199828985930004900859479890164544696906169718088901700516243669134723786036764824858639365707998018848555654818541864256304773362101396333758110212524806220371419622743443455774828600117770715582877998197736012161382206736540286563655937114274702070517440901181993733131799105499481840365785248303816811526663304276241522784034961928889962673278883392032214663692932332634594265085551220841645763546601413749389862331448242248277996409966702169564822806089252484087553341096285296217067344778310245678277150022665763164621423778529349687630843216902896989592961281634261434562269148882241725533665446138434383422131999046972777272799457662844073470940810873808129517284661349494988318035651964224097407386921614941641516003664201704325877050615979315328401744122836247728760266279860183697663883126304053909367479183766051479295469492777383379307351745892340208254300206531470214996905419300707992120270253635553383408819549744215208417459703246279370266153489870440739321359920537173652517161717156201406124035677091663224572057538851877381062030878244011153211756893923455687386973157437994028191540884495052186287590239332415572911224094931623542166856641765199601094960510883579247708203526232957700776804024472150687635858687053982206935363678558240881804308324482031599251686402051403798345126628739266001995045402076940251713306999126728716648095979031801631207402884955935497582085347779928431464279780830558489102501707958035003116335186926193677113613374449832852328196965947964550117628627321758618139024210408821780844967924093404142413846754360625178806843690402961895401104144953461091344890182422739749165182349400845945229826262456717834330379146593961916330508358285911156796553960279941671000129026023769781268304803180317399230761381104996344409107847762108298355572706490029027539799842204911690873431323276430358724456945962264941501550252309099927737341966969091262116012206144083407623432683803597705644341692388754529987209844898763321072716819558602394527219475454888243229774145366602503311482919710119660589110485735471329574004847895216229870549735443061424510030659986117325068523769010082559348367492101453061693042574017007243716113199617382982883519205368074188439153623892088117781427284654191676461097466056392818659820026333934334631236584784653524367150659434726203476817853935441973397047570300608089403419147950038196675412302067324339431999478215629219688207717353978116749338169045355389196842953945549388150484298620677955514556400393352551042311099338781604473839373478600055797977307756742118089430069312018015755681465802784170635134155873551892637784351534530434705798801383170264696881035752953336073855717175670331137126470474922140871988419994936536642375715534185527792144663996477711213795394265031587899794259108602788290470203899145372137099822679022551348095849230209759515316932050396677357545527420899008728626603871995806510070661645592247235153246906373803128347185762675125439727717717643600314757247291793390791681865834824422393767256091950840807589641406857563373046387678182938217934715894352737263568695884385934564979054815501694441680992968010186361012152839114786863602922877086456558702333157267511248648399430368694362915343580612701163813668100822315910612011909180264052839531184456287797548197704491449060335424694339959568819880673588675412394975417550719120268598794846321378444218176552682632397734142009077628967921883954303521475365837991566093549225277151302725118105325530052013072541849316540559864224263445357520315626468992936827528286654656180218405311010357686659085712601892930122501327180909687963095572835353633030538609413115810987256352115277435581766249049176438843866308183273316684702099082612522681085665897839552862675633158530364707458253695830703863570174480640773619790830271496711866368375865359930698391685460567723896860645195325613318977658777272517615396134390821260979867131050532559942681076568937860380052254585736583541882067021562264092690978516347556161638777880946588498902062153856264050268364480052709483882541616235876400837632373586825933108727246699446788724209367233210024617107733642475777936421265779418908930332426309402599081707817036141490627885358656383508483312251685540668153198386999279264141624347912388245791115594324067654746543172262232728528279281089206446260400694509488771901653101342548224288651507548759697622214435197018443348864402184865830065940000515733452468089113189422543211986388320321430378093100227386638481927751260717045408712757413157761104644286771768577654230270871732861268060705022819707314914421565568466675646139753948536700927197821570509539097410724041294795314915351986298574373511618976899683437124021553426604724721826824936850024841668016398407828204778293461041662682783683900847196490165602800495425108327193078464899782384336948364689984565923182337718609802584998513646027003137919597935211902478109560436064212053436968500576923506123289304564499222185632041843684928931199492561831977141175544022855048895351305202702044133167200069750037521146696040736166187396260177894758603367871199930710766323399527358778662080678003405436878872242482275528421708658315107620343495915037586516897073845381798066565163988524562156239433715453456157457411306629358202908203048758586221612186270578654532587846959305714547568916836063423260955059420205889546620646402860308778931189850246287255684343010376005006829979696912152644021603312427089760907777843741925753374204350270254825525346441088880574020328270854293584710357889357528348887401024881360254330574415007084256592519285984088931520174454930846673487808741923908363297021727399252927468802863250984430325520916469465043937556082398525267328741281057211323484553636044850678879104903239750947383497173636434137633387061734023291312055528179452239483926283104207393677275605353366745630679882012398442430867615578127396853071451971345478158926492950138452169230590834555413634033668918285303515343523077225442962976747253903062916679756042773488002612690747294751499557624217441758822093244082335111588572165986589473968220954845157548557238893469349199091176220546947242167388393130267852363640813915288358395149204372448725266079121426579154466955863168524248281868607146447593459180813738600481974361053716104552109261246145584474579709005421644918665892987070559784654808151202341971736217789326702852822721332212780711957126567540447319558543673070437134338437754321335592371856431312413709710295587539146380894534619345931351384158985643282646401078244024184072353944616794438367175576629862205108948554149288449831274972206942510328081799648729794557515033286265339284996710317713997885037622685021434747921043673279939873121574303025930663495413423071818618900868525582681259027786186134646181071204211131118843022993736326062013333887936246340532884367802205089759016264354829229807899599476884684593093944589436711349687097767236030448638040447488163365900430849670385886412561393227936654443340049779309989625387999845408626681323723157251007533494525472979942135272985106559291260299773384897433633981869158772777129660193929950210625052517646488108622592323499438085478998402034573397722457654688207725898236852147085066775642285470814630013235700576112163544671628636528274226908950065950451053526940662701799794634291287147803680662368064512878227256349991435413542472305367567972804406566174868755459340393655619932485524683733338930518363419256809655595311355586715957823309518044736450757862419685812430438573810398872329229673174837246241478082638843024605510796937493464149686224691355876210456162875175872444007411338304999381240007129019668303232941573629335949147246313685899799127041348478080498638061689634561581022723964117225886289686133059543779022585706907960397559740623848724077018667926385323715617264072750506189680526058448918225248362675668595190367515042465526568537113229833109055485507153182364699415427410226073480288647878793911641103205921296942829286031042290634836906833410822452828360590086959024556894178041567491686900654133987458349343051826361271857547868033832347048812391071074494436006468170950381983852792884905577036844257427773667877671550791552917571900594261570363830227254097601932537137163354924300332545971950803941446304703723624823781783855087363951139520791191510085366388706117406082131534017132858277105689581234091938268146618277845254547444655575669843371229938353172824350377583877810696296966432226713401543058726631258038086144396252762651079904546280832301443892256935149386496416576355935620831181939594807913071265970233338938045194943148045333556193258100454121982272146804376136756575515626035564450421549710082039010852337929650465908529968971881657263652649045933646764072497077707606332656525166009538256950682117524856126628516284522475816727409814973453588966156905461929565959473792605105632302850369845060136432081039295063769212223693755250546483799828434714734166888510577447629115860142720623162502224464443320127096410801979449585514612706341381830767005683650780689337582203622324778204524285231533101955297940185190607972463216349341576775278539089967999342730468925551259655217364584074365587648675414655809107715659490914676943323401146895072664401110198805833151617445637272849308245831491984281180102493262469741920784830157936189166226184231069396596651578320972348607096865878382827897141624071297577476447176902398093310686018796784697964818098202594044936091194795069068027485638999353205858403134663282312720226706990301446717767295623716069050821426108516785787852338368878888153586855982870586979398877475247388845536227787379653753180637221201832871122541934225160805943913072926852019389901316169208425171345622673128823479072333765328547317495396118355170280540175867426605172703464984601947522119992636950448853818350371914302002108516953571444489276763342620719659206747156096472338166619590613009536664906133310405469989248273612805801891475290458417783437371724733591626253438734802924681151933886041155505074777262954732337599744149425383230318056574297539067902801278516193591298970522179884641276043115207988650030684825954135115892541372379445723166444437837986371798794829776648741873323072014885935760681510777616638385367020029419111271512337142761413624150584655953978842705665600733814856965350220504493776760811643451318764512598953491441336014806202609899825802553995129591385991837222127452343880526455129973227557428630970062469867713387183385848946951184425211305205649575466231357539512652045596383654798174956244626101246127619120319456995374805802818962900603809158462317288272665119809184103386788718910210372327048782300905798685102025817644843028163359939542284159132434456260631409627341127478932299394580100270691224693121123782883736903628279080603880101317306805496988243718809617404820581361995981239293180410210379653986666582645643843782374324320900030472737336329064632826745688778629374888576338358213961628681298839499215559526935862833986993085374098845791656823950896260209467808243241160786833645074913963167707555443159202614598331780378997808240896801785298964193946494161024777247792325140096615187793557600149529019101564756707906473708818824620430737596411981268973521215978394231907433316543040330999365727013200270022927704059348373902493343145539149468212769261614155004694188196401472459983503396218757170791552514030201371722026196389847522130054817867535609309032077510483860348204244127292379485348133265025016273302171571401247235508555455181915852243838323450519371983780183215819008070272794802938424456410896165274462300300615694815840868234938798818663339218413023637701351229787060291256011974224417877120700727652649810220300322818082052932767763335683851388957182580788635353726675026422984690083283370549029300446178181069131376163569250423641272492815402296286797854229931061099752004017070895449499821221429929517773452947109057308174664437919125125083345531754002503615287502615139152447985566157204209806577372547036937081018590992454612548865616945028033085957473168757998956506490811222895246128042332352354449379482812701013324107492935946950336294234885607773084532544970359007286684382784126735202625750213258809995255387414773624465153287606059326308922770210700021574983779907578497964781626858180371401934761259279407955225067362444480481637421656071426435018301527372704929572627739549468659514031133039515624797924541649852146434881388196673046806704929621988603921211091549856460736927114021469110131270915954916297473630578444778925460724266400873696537622805029466669718277779153780699490686685111028516418238663546907746528537978279207686783496337414222047113062937976751157893524558698922410616551999388436543475417010372740267022681342681718286393952600103829956713352837738568252242169465326057057695155949439570954488896119694039382943585681082733166252927087197799651351243499350955612600956994746727159610496614505399238468613745787092587295400232067933271156779408838343300244757918421591157410043657266048956112184745861206728651734691809584964146946325624037546133661525051738873985684782485044278187472198541933068357631032220964175922200448841950863217809935651102401280603169576887815085260240372642222094186706677374938882184864005059544229555844357666907730814623260972728382371811218003481650948179416093494544485443885231068801379879765265291782678834980505791968675756766533950336621284760632309989143095118107443988623896067751182784625529074716783609264350118203511989231656052343966231025513248412516435475090736839346677118149376271210800563758855301080638955181897631083508878397730258022492099164620183590976054672173133091342383062479848375334343337727763960512852734476534193327690782967100890677869185653264612189643059177407824825285528665386331186921361492769531922753593942333367894822046309423130567011642651165228970398739175936322766644455487813176488085913696191798407240892174314758127652721211119441631274102868426195216570640928198245957960736350663933130542188437740246774759894466236638922362408339013796235151374172648174207135973812814675827419657187485219167423471780155882266496534710110223159726844577293041350176629829645090661874301494688950880630874409241420242535776088608937169398322541957556724061469453628922706643029903158211579755187944617831271611323372837589976787897274160323621616571717007333752082520541220023227920573300120442598699346404049997492017597321992268919220144673880786368076703154497451242588570845325219233608876830076337549858452364546784770970678408357033439233641735122637414179015254829011713704487963596802626779348601840862944547943624766368525186350088673194229619268589075686403454317096090100452150882240448501295096334926066049091489762813786737882350949719563274853518114859922652171117226248205737101474697368675993634915747425422153024178818763672816868349812546774354667424454840715924049499563213216087326971506344364193077020254661916671111672250835777491576760481369543025160985175219538044991405702453806632461871012026676880355105877206879681815450428028853591632179702971841846666138688512125476822618211648899087655459484086553933319581627044302463555113719511637525012073078981829582342584760067376150733261541413696262776250156878334305313466116944643907859775528934704180534647248380858264153174312964384663108501170967638022887591888423406367860267232632978844643094155726590832933028044511918125800921002925061789800840021105288330329893206038359700652953485139746703275047101231014160496267006878270147180652986143993384543975924980059398244049099393171287849582563483934934201304529121479943367215093669820935067280176100862751352650079945513589054435669733814908102710216732467840153611419447766199966565389978991095977610713389790296851458010332988886856650312197146784009826542087102507537805484841287827092427986950853770166247520718877493745350049715689333769141703229790316630988856575899711995782222329825314609825342322039135724500731730797159608210605050511792507089974999898432737829003262813989758523189349596948109383772772174460159272408599817453540958441200455400348377788731198935441531556661084834555009569432318446250246140726199601637440960833648923359718161946992888307087930907949346590691686293567364377349103240983455687915886548613472156567576700337532652661076983414972051983799165163233399571038939498323267450684295419441030451631476499003275760138774168793236033721846383772355572152666629344980849755195964682012010836295661126968468793460841897853627118974857288193302640138197774951149981166345033967816811615092546352836603218029874568921411508621743500588559475309310800471161221264010700539261050738320090876579262215088889838842192533828137701221042601358558112011312632963015595424010395764495664272587952314251482963914241957620844459490740976226879615156993556817605739935040178065880891543184405255454281693067246031717809693029657997174480801085125090884587008568133036742874911313817158519091624411767451371654805843234146859996843259263998765265613930351911858922604363452888806350298687708002267761400062969263380186268368932099220442889994172993567508995436947587098710773513274675711868773759191209088546879830212407116781680024833569936489878331854169907922118322073960491599077813639407555801172186478322673930655834891790840816263465587087860188934444147985583259237589275250496933428746678763850972462761140143853916917983406967892562571948811038011035988390833593761213314237543132638031957248430032993716579107540828812659276227251883025173933492551893048480720139895704961461564753094043101666879457894651355102876180069864379760927324230342988150933580178581963896192778386079539837071176831249212771093261467774788044635502936277908593172239697221092263311477561155991234715175551759877635395931579346472570824111972188040788134341212385316485963587989509335296818335996248622615114459782056593719608270551421856686006651144664123823157212025550212658189458862631995471478505924516991110717510531071077578874439784143559447884675692330968129553818362770166018784420403065932530171364472932483456515674443890416031971237408338756010928553596356611240284041523264321914983655378855807848597019618660726270583244230063540694767678453988375776109962512852640894895542272906726066574120116372533777299154400476447391526780278222650211225946013067860510438563118987681131139682773136606400829015115978597442752596083149979005809970415153097821940970752510455726347173703146217692936548555503809446185432887417896764699751181739119261089574140225500428316939382920027341076679402186307755300924234022856114167741965067910201556958045577696659727107465916700132299821418015058332310733007227720813370645785925280576349664364788324808529903746074215078555074109297438880339925453524825755266042883412006022957632019053490227147190481571506559848947858817101809083843982016301981122436764302111061114361659786156143698128184023145826874534906322807879148279988199673141470138689535770540972996408054648172889132054304418985792297481442307830927538104581919765898248253079951350413596444862314580326346185306994948223746145248784545066765276333786800287913716804781026748541536914941303357748328826853100938373175499946370273763901692328225064986173457547007248489896446671582658087084620329103312184683147157481132590592806092236339286746157178023895321725382746297254644396603059976003705467172970990447980048191996268031638304281364265896532362145824289198517613941601751886953009358000864095987925290957106414374108226479243002471426240687538188365944215191095813420091648660544278040624186873717263998144656763552496219280958426666663799101200361212614574110944705502023428219978677509782974736826626594293349644485388550354990377784066176452086165310918278733014340212171590845643917359272306984465532474213056762016981356251339902206218284760538421928623260463156161399018087855581267486270873176372449154809651731986425413052426681760013928053378457746657759558949232008993905874316183509164668074089865746631480231255837101437429257347374419930085836314856560288389367748304752690263929603306621038878395396247359196762101037871718506223413945775975945718990203541461963155031763125974937725755246565362295692188566844604149659362036435931478612508717107682255046228837307929799151448116055323357938263185933506178373659889147985766383830253212641395773352443602967233166939031461196364703955987097599230587778555962680652832740185878539696089096271692633438004296149984332029099944610204520348307698897890508533781810306688761469193676740993927382955530294283286250127801118580968339078305306714044878808826385463094912635599899279065490972275526445939729769703273018296969153848585650285983113269375738737773648688823069920104314787330538146604542384906281094109224754018722831330151480579293648252429590400933917542096235396882511474052350422135995756228999135257216442017024125910739894207111359637325009295996425139725443967083639550900341387562111360334027917173023484011260104839334013125190816214383250317869751973270461961945668065513109148707513806748049944074210219485526165799918379243016817823536646352160095466496421966354804881758258552729047454001389979908887284288141692226826470900221415034337852188382474877809191897167179371444040514832693269174185730496244240725969100230730242615990738686843448029092223129757133453378702203075459422636052225240005979755731106594114344314942563072268095459886152912781770365236709545796153387640049346568305252461401360574010417868180891727493616244915107441290639306306641323059485011727286345836261226653005550173995851436232964385178224964000344730357559294432269035480958570286043448585289364363000154389292840628290719508150954711309860228027912441255966270245334810516406481210476581908094372858802483781128880706095260013169821108742666053205452935464837619096337989307143735602970099618518199922916939531168720049503016701422509813207245351311822459907208821261352795953713143652691807495505901759727795565777187311736951350283638884939037544629553933293435654408124487117604592766483415019150116107086429995917349757966752862681431905542171724585448876885947986436207767914709839028962213460016525732435635079963854747345726243490996768347020521607819585811268045673547335092398262423718843461639240553701028277618180434307536316201288769741464049946555993368853604866843615949792890163705524517263333884499073951714994033917626357094908881251200171197627938612679442669339294149935705551581403062517194446286704408046569067155821101925432174629792375352444073518460839324897376259333392726106037570864071211880656194108149587643432766350413677927304838324394583585362806866311302378633270892369346693525197292308624709953637640958269181549797853947844443723770774754637305794348446392744226659119774125617042365802344821882882060694005101361371792715446271789961972524561904164602457374379839547584937918010342754375274343080865212930526967077704478435631747582821278468960480868809292276284312089635934012664932629991496523830981222256216752521480117969012119295748124114263673657516298933310857934334342439052580040769357637677672917395491824985585191313696221001955013805196314636627558048081836676297568706569237886581812210198136971832010542087246020315863576020001602292246893262498516497733385220674902157411088806665480916373981130658939434000628944091704848908068514120167833209125175494038615771234961415141805919334142836549658928513618663911374407427616379453935077358545662647711977230276373639954604228075424034719969432833941511881622930127256205347437481625321623798411376032441483875871311860298001564374652280796314432344905968370296614220269632055564474217106882935527257701275009319247201323505298017485884444453842184871549015215264016471529046072113359859959669902930830672814913008278739899319292767999433073427371292409285028375929243660474691254147131090559487981735491339714285775964317870804194082654997671275111129050305439590985219583069863893549531110422839174596658538212727224512849506080919892014518796959070768784370948839548544058798113293976472485777201120065998166400857612482923942715699949862483467795825708438767207474809206310597608497308284135551325175095226234425505642263239342662565379382642306678541841762141181287849048596187465299758485452838595775266146603880212766089382722776325309183266073234512382627969081043596506109780040000094900357867838170046010001214912179570318948130795567493580584563779318259318464469123564434417393456517891869247183606274898392142136374075263163474178178587662368428974522331273310849772850921261072748213742947027756836996989558177303005431447983548350329517985878539147715449421151238969420854445709821908891570864712816739205132148617344833530201299882747638561462539224331607483767990370722431017458899463401499431978564855180523695539731089070223930866631512707182430966462581108822468016492229890215545190094827362474300076106743949153073692821863530614805963494346205240155548919044234390983338733829134338007276616557754627081714110435747851032964152596016243215677936249036498853064601897669101756503770407455367578791620232264548124361256895774914578932575245021859653636222709760574706668687123339750916798559277035942616305197007017973316956415218979978377635009978452917068390168767227690584684743551743130590100790928746591545165257339283033660768373238108188761955066753347271906471046798639133206209849710958961461480582036554475712185827500903798239199706653369420232234683783007585768271983108254102708912561764972645692190594388092384465837711632344401941088109485119696833831300042304712888515926988030688367180798635466306247913228591124974278197844507284252337197798257566040523827754453769845686940600165383150870532026885236797850105305720646852372526080342754569471582453745725930494573164839709153156537768635803920644774377914326458557527254392106442179666514313645980844842599695842214183803293961356828773285646686022458594203364140936661186683137863729662900324109047125226510453681341703646482017372762018068078664257926674036416143806124754953053891595443904517052004637833268904694025234066840983854670118369804329407336878629836714856182262261271382643330921815173426769011596286992577633169206254024756354043165552025750807390169274910323475145337654495995944639492955993088193784782690163172415427771450227034534233254073232685365494496200545249101240476714802745893572014172820926162390707367221634981273627080542924418006902047309587281839535323660438944326654573721585287467201179331872698333027848980428597861234489603288203407832043554050013681310971209056820662098355226155627406397959255076376877392731289271727412812628589795306932493581845056091410407911586022761491253046681733440595763954349686534904611758710598982791608875386738289974085348618237656607564638579741632504406565389126925674306856414500527245488169446556011471019932672289331444378014816379151282771239498122846355193336723505881285857121062783021006239623340953031517706071201412047834363748318059995277377838249357103698741331701705835202795008527203188646160883935857857612974290928658653923473928035507186036712859668000766492409790399139963654113431021237515990514698233416959531249727403408564289651910217120767292419109916621667364430341678427251640905917652148526700497094531001050478862508756791199144386950460808692664906511455076178344125672048696480651607546001132010247201394751046586738082420916448939558785691355398639211419909993483039215585468091235445485873866700624014203928778311142212543906302142830646922277863493979493831947238856756792291439515553657744854275707752936105949046681873748796453658535047491612630042069089845908849946019034238337794002627990831542929212984005239192102954866369991209523622850764336761996727369435275050365125468840566400993893135977338706535178627049432958560636833623719055479375462468757783739242432757670757527112210269162271777679692625866370039827053722372847903642351979187464062190915053147655142946438071561339295098531954075541051516865905675551820383177215830870530705430772638705081627537953591328474224291111076209710927983348594435141532335486311050131292158898099290120307320606666162104363011557870192726754776143244879682721094631042959768614416549830062269762244340533650587233746698947873508443088977985058104439147568675061502027717698319545688430399967763707682861210766828327112859931333780129956470049426896430874448575142986993539181827129097977622221874753846265493466075604487245019559189090727680206455765014480837498698948649443408966187014242666581305190888454412947655764221838242399730042449441039828345889244894759463046650938831823644522437012280981646889604704299241520863035430424086994035958839877313584345575799648001215716403736104980843519202040031296798485492891129044023035109081620898371720915176680169301081416513480820544025954684108089883332275094618089205347662636436511309454341359156190869791531703550776277329588284300359665346327071416650447366292873778191116506406444100139199592177543658909518849600028153202803594746495078526950529519684694994587161184518662131530088048496238832464393022309522852357570871678325156335061659073822856686666930469253619094780642862857221197379609268337774921046448033908490077797375475265514023726555416374904980881864995206131709516733611048189097410465766364198121373813933460559234309076293592464213778954386161024032989150565842218400495398578168598858443493500373324256435285950453480758288228849343449212113030145949179610971549316713851988355944824053109722759388540703611752547384454558863204275223685629272872027565178717694238346779980702607820311252627761945290218821234437609922497570876911951981893463919991211260514094129457258828882408528302747974420013673342956173637240552636597863852297630567605856191611339271259680312448697997774792661953917813420861468898714628402358443184711973549093079062317982440829245053630426165114642706742682450348476885099924748724517110324424477311147663418427696014451276454416686282478739206372276920509844292328335300442520896766004106437190340351786875566616812074787576664549220673898575716425759301926207811640523196469595246729580186760679161777703100857452069098291877378659836171246132967845121050150947117315372683593733288266913733975768588457930812878272015217279296171091471968881739683681346490092930626291419297035495928419443194696069259771351666632800857809923088689107697389568247499127745480286580924763574634275806411544313453590700918774048885091034536066433240513740050018803091007859930166462600896071616218880059717870697663799091124334344180305574423328362459169984807465155303117323472944494450301029313669259878921567377993961671409075598055593604102518084814692386545099857170552305779538643132592490550080462890682659486725723028338335296535691497342982664982136159923889322015726148496806412776200718210870958272554796182220780053580053071327360889081201156000455825623191846545060475389610333204258099891807768763991076985867245943251274149803536043980508331384558807665188893676084424529336833339607657680928195733852667829199730030815474147112200139960011189826265662781843715791379157685823346439930471578237938014830169849339031393209713639829978661370661546852705179896367690374421015577102741038228563791360735063544562093790016976845319865913117809118130645321126705719648843377736302210526465853904491188379579082099342925964763602925692722699595422231924762833497747883864811738044200124092665460799265095356032066180616794762295021969737096485665345549148747638981940907241751837424800525107655773974062267207043965500209476157378289469058959816636381741162313856971038170155118737874167369876583887925613555606787250040000146580146772631172484396373230891309960089490121961313930856523806210460658436333023167350034127712392904200135875124251421403814983186995375138968430845423590632613279956508177650277997625821147920640152861385714696517931123962604927311075607698388260755286800386739464819998756065820667489413164981804620476934541110663675046105237699098642132349769661066503342199706831742423900300102269140087725441024163849698570286835764447234245068743247332066597043292339012644422829415258930392407942403691427130661788549361210777308802559081962327970720357548771225115533035907345027242525215167491181542258718310916200462584893923270556458268481298146662425852654745054332139659837976382752311851274044752753309899013221340431003091718482413899415026137112972534918560817272318553542881405588239107526999713967618272757381891865455035126113626224782271993360659271613606286369527585371214146041850020451041442141988109338034331154932570248551886878177876212696828669933160163486886935604018973121251733916917758392056498410490280750842117026541622900035827255180937564241102968821465958586457040141690945153125038077527984397027353814889057651663133309205280145211452561793947426179306047340315159018750802469230033020726260994936215798695907347404003053398743824112314379962563134133145935820425513913093175601736137847477737927906857101520690240569036776919526204118885344177489881281638955796596549956501662128694155603672408388320170964215088552429473066100784034843009794799925376310587348910417665389880997665675691564930113445310975085866977515830574256596825030345708938536205016631264000244204973746412554298540799224858787417165122659499979762797943111191122516218538849380766449391725655665413402719424030423430602419557391481621916438506004068469847055181224604387384518098272006458479056605009614527029686341526522402028190316199995332570833929881276930324800294052029163985464893711060052624574232242234048677048756886722075655348144942746298932683700763750185166746449543352647523907176324252401403991676358956367197613093766195020622425361151682889539681785360098314105289509914868419863041949892617538817442697379725893745037309440762781887407321350981321699376376567339250380595168817398866586726586374138487870981240890653396773273824932676148947749212925812662473052846219581454977064965202697776453678839966968915161718596109131602980945237949328851969313446030193601499283247274704708746561620454254999620066136269452092027097585836635389187291078624926822346849924840593333273287545066805040076893805809376690404812406159896393974132610148800824662276754338477829892760311803781066296453211601581538362416089120382782749124458306625278908520476273829313805457796904443049642991624717931192725245903910848555967422570332151511199270734144269884298640365022595821743842160705207114974039409934850070793842793325147772967435878819554908853381468201865445739777256246076707420751396071081561626865168231712401476745706854995475783948034500905187983293566249361426040819924806067978740427231076265304301950701676509403270269038486847848023616164118196051707992032083287448261120458683633226451903182355342398067959466638106763471919184513910061177208998322341845355987889227189821834358940200120827319081621207268002370575537624083800360265201229489588149473500383034337871524314880182713726216348332641390434493819495577908371109221379850025127947775387644927186019459252449581847059141292713021862269265635153233332392342564017727480540379389780032063077101445209764195620307167862214757782412445655364160355519058470706926554652417830828507556681608340034658769851946710680544951690113450116774938058968538010883750997868585135763511956622869848467034798987957279002596299106735141269114251195242435776246358139597545238059311212594961744343279854454123731221348132809234011797502825811603351191474010218418301383818787056390786489625396258402366317979202047167959019348716994671209828782602277879401258473342314351047767460744721924230279400417678875517196273726015599935677392419944912875526137539729254352279860678190595269782993855792083476108904905213676110653563157605561420360252387142652138747837523768790577062329724710044623730138539159353062353716567002857595531416903687820047891429584975515705467072259639948345987829174387503812174174444999559962638778128837140577489779197563009348331381250733405983567612878105360172773785195602415619367847475107008736313777639476617273109972280788118029609930445994615194655341811815052404418243704555034130041839495656957885649167190488622929208301082274808506298533266196916871812233074919573284753897695165266623853261917184643296518597503903633453386519446297976699842567306984562101100275236271115797430567308098651524173114883248476540659722131782008961652550561276952657489965665009915693333600465203508798119667823314664729480230970284744385064318399837994189252279716227014180739363463412797891646489550805684006735482116771308512421299463777287534359920914681980256313841599639515101827500162028484798978094050683378579609239720993353676182469665617589663042364110290577020895605804523007497029440009010360535661636054024406403300939142778351510939963483650117994375860304852690814926438934906406422615177994511896974331832126263244952610410182794766978585746101036324718860275467058221542131473307887945869185979465646597394039651918648661016275108082665398974429315225973478784868864482526154064692836842456094538466490957287398466324325294187172783914628426532045724780854353633387454475967276394201648508002710975926008542622321176466227728294309632332176173860979546813981487491530534522327715811283901953807334212265317742130928078439528788028702621040416557141122260863507320933453542788157054264347433941381317974967130834098414782189813530370692704842882852858062974343777551568926291835334973435497742214545079361339317982852249653108671412509930487055565976623512180487099755640559561064080284555316836021381686556654276750098281399142915639943573421559552000363765871727888839669047167103190364727672914192775722691147276783576142057047124750252583784294302015914075807672854906471913860962423931957932869965748335206075704660617027317302180479453106859615002656853590498361999727854471979935209139729869682092481460275704515083845100238894011595707457783396807797550167889088377899320859655051304424000296324192408799111595161368190346482421261948561575574011314355810526330742000152750368466272992054299863180393167162130577172164362725457246192101019648855046972658123378720526474557505307443532568216578287948221199724619177256677573956875755760107946909749809026180658737285520857026354147340881926681885837409816951295677765899481066738842497056192234654420591106362096259808711304160390778412805451959184498484830810473434491451906091123795146211910581532579085858964537941342517532926441877148263853614809042318108259251449226568290140499154118736990173422948944572090727272482997744359431783285991185589094983407109345291883427307982956006054008963218542643993196633868556947217471510512596630527134108564682583658907432788813217061967576493735114427151205699138897773549159206459943999288577163173568186624548586007755300761900176815748924938806281714423638750705708306969470520896064273810226648076381876436303524557755815363786150918005818668053616283915513042647709311397442567253184537907977586406944207285124691509000459553378956364364126303870988707582137012511425384703784335590473202420416484126559811503944519448002304915147892005312538222706387367333206829599028567842653599006777725376175305508042374645456847069782380846611494901797134966113709577126440070511924916608092015575687478645378624025897633503585981086695005295417442273351013639194946293282948823740392674398192480792403855861564011347087510312719714133968273436101182420633862250286740548608831615432693997024348476795009497392659561677744711184629199245236737328869974603654142451882188355491792525863057963728303773105303260404734281287822450859687851767641697329554746713791453857332658290266803191816388185357994744900758866900211489198383992275093258396907863466126593476889780637784074529069484872799096783807871525934250409518575930252303537899591558969730674007548487401024411671843577135854436883201434152388450100860154484718178948629391648441905992920459776383313340101640752113679332518858604725448120821896984325784238042625946064444668326551832484705388744883231920384374498150047335833904588704067590115906552935185710763456860599880171259489940577250304664719384980614913740722964141205202536608224274016677461062283986676629178275002102241363121877124028098507376194492546715474471245267057206097442604525206313575893320065044750561626618887547578091259877733467170653881730493980916772157905333659504320062126408271556253616923375646132837438449962747596343965331542059369999516697523058765912439268584766786087083311856045554534058581811125587492720962080382133346503567513048935638460340159937132306107071904104745879154751355258494423892329603289302523530040126145461189282733756533366333864531953095637422080649970806313153333368581999181908140948979418663832537230373489327422751722346590933217449423333801189373190898645167780644776700134191741174657889860445616692118907436245536419854915826130211772188107099044000275540075052515861928733945850770583883289303976841879468957132041887082164655218954718191609715803829267756064480164009728540425519057812958438482879114231508759485388013943812284822622099999082822713176971690657050641031743663431338821972085940672980272382875530480388156349813192761657684255700352854003567427670378301986770918261446925133369735498635217185015588142633281863184965232698498907669837500625577012164786728457298250453945237590932334922010836585601697882332394622510029567030653167004669887494459677596551666606844053670648319503024535256524749243690099144350265504768865171299002594546524188244283391768680250301004206299525823843260783551297606324374046025132568442239528853639038526769224974045403963936471447618587515805048284981656224576978475167755842338230635917643707688025451953404568083212250753739003073486005370403673257720040488227280599752024836578178495236697332420623858823129871292269937602715202361335782703467957264058868367643849202588411662713335647924130371802203125796506955451734496467981417485361874540832716345279839336748173580829925239803851563239469485825369885206595574225318105144013792974787348915978569004917876350963974889697976735111994841820565459847549463670878795419446879135379967364506767276997993970238189811868447098966792971561038841617469790856545196738175075372337223243698079128907020866300388087533438635098524198025466338247733201287451695787428399872847548245947202240154396705900553207602014647376300942559487209605496207702801729590910193685986227714394805275836996259814722019053491807750695055794185186636226847529235611754681166641161215058782714974920500818147897440454834044318822164309673535354355626976264336765972822006209315187245149704374769380865595198961585876490328326822794562187292347312433235239978212097616339865702354642024743598215381206325172208949048987166605372984362578088366391987839042332015693624267742254887403208123009072187404279128723422578538021437145884646169964020744565480689385215563305386933587513696602774867917764439823102028687261511035021635000706690409101514557298114396699952109695065018085608129672524384240458580206394424133780491478496072348019600954725159177717325871526129859021001937855238856556356097038951990322258860852770934457147818164330869055189769369509633011480952532508425261317530278204946883868611988084997954284642238660757533234979319706722992711432619685110375594089752126347102850346877264908379699279911900993064485085513938298852502055451288715800306045326342913880185903454600795353807411155350891532540449306355502386270594804126665651481461483729995888484563403546458622865699900509437307714434385844175586931910268178845274154441473505555771125112959805917781345959539496027334707922169591878657076999425425948910736990280931981257127306619794872089221563595919432860249388686078953962931658244962474704543411342712523906681620914405383226948670565451616524971323128922915504995324714701088263474347271258025941748982329829257707353395226492384360248514426576349183510818656238872865147062340159243633199516356188296081264346628089042143778249638080099498950662530215167073297716480466720686401108309359412860880410634994159219976608438201578947555053364150420657984907638608803166458144126770022161455520191613146237573195687575568292472223216209160438466340990937850432128004347304643224278981914727364849347522156104030722151077293140929037958513861660575647257477824256500618401950926272718979502995981424962752403534170519062009361177417363583357906302419331091029602680730749563314672334348206083975759961254468445005274083938228807136113718531714735919234432916629342487496787388525701398437453508231773140063106737620736963844727121777600511579053703687849469000564909579327739963773649493431971951189373118636143973725322311247359167092942098107481805313028471991754861397748165775771288656936581055371124560467550775494944340613298105012857642471742992578055415041112897879718219492457607998392006369200417544552200404057873759445645966767257840474609520713974298935682390136969069311793036456754174489421423291797190759778862470209072152666004732082156759796464752011168970720936484897080560329668271981099610746468831311177487958993132748535490442743221159609936052640581341360276573163383437204600282880034699733731859497702391141025734347916613458186787167200587567805439717512085190849586945867389372550793819990339904197559166064756161533461680566648193254597822188410117257139363263732929981059339311020856903519766489307420463219134384762807597299747167642520484052640098441562804437742335204233110629955889632524104736532793409337958176862861450863150719238932792549034487506818684876578001248375898046968309848604565367022373423392871906115908212596244263209214008913207138859319861516479823932524233726225349038108296237083426561568361309274438310985836278131832729550612517349992391348671270316959319965840969441778684152004014286364116213067762818961460766627891120083683739902677907668487562644264644570065582244401251745803992633300120927894786775785804604155240841346118667918015771298431584410396520485101576023344558207048350272099920453604453541846776889699666809307544196233301690607288321038897440361642448835831341743254828491443625248984870731299189865965476627526063857305038985669762770170700008921430203840669944703356834295456419959280376829322902885342654772310805145172200618958439956777380160037948324548221846621338438654521794091101449687748758236864232353228558249590318257394029044435008551347484027782772543711749790657142298009080540302839113717272888360428476250583873158849786095409671041528764165944103187656580852972460160832587040850292037128743095269240024393535727822533049866067762126716332828690879977884923699715029629880942881985937311407546767478542602792957826663883760905634636474412033707058469987791717951098054793810094986416925651222392146831598250644259367937257156836244448924697228752274437192207094820446960756254228701538022316909241419393349875612275508943954169873046027653350426416158556670106753150341371284194635994418712864185241719630180510878845702420464561069342145401229808890604902848355914287817013324259038288960314130484729006644766465840151313312838145017054346447558868858745747227272502046447416545545514276156301537761544750874166360268285796640910150133916686804598454644912171363064991782007947617411646810825095143229644615129728105128807981326115158794841558367045292455536581285754901887508723161526922598749498963316724840814108971525048110429116379942394198809573256350741663147225446717515862355653757330303713025323116270041369500767383802206767567670447029215713678340915967959989845373358626465103205030314995584669725008101277767233211339642336209386949110013009110028872555362028462523171036670352205700583108386581337820258633219942282524045027771432596392469562813468929820959859677142525313240596483358141408321907864962187091135888324048078102629368675247853687549971812486023688790795066726172025941671305165946481878082648862605557078771271436920403838974353354444852542489534409574581867464472488557893045157526617471618213100446634056132892015156296499814669477683347978563387563645501768269724607035668448046596997582015283450590746911160337346085079567301063776224961956464368585594732669752992078220481349092439570576541249841205544399128642458153467184617861462540959201343298082860706538421859237979373914575828135095902156993035504005857247339283779245894460518574771913003854494042706153106656481514011699185716511224961101640606563254563748585737756209895659482537183688639340390648101679725075759856285773244185639342729512090849074819363535114560956373070727041080064268530422010996827174504420242270883191965416925409258465167532982980905414172864065614684049625989510706332931755395812075147814373466518298301033898645427476671037272330856902477605179395778112518598985586261058464411486686786280073012752118454532035323689373588018119121585341395141975393175724331480366146538384532896519560156904185249513996265132868911273868887168311319581921676391537657156888239037061586411283391871291867441384425462952227137426314929227460375210121681589888188503811436195524432626437013163259626718630996012406704022267374875641433483125817295989870636461529638927052736158540736197774083031930835497497708859599964990780686129329043073571087500819944153751484450921560519015405207466771138827672842953126095560019506931003047771295949071003330967580857375495571406767330898015357600308532723202887691277586756463229139569891977449936076272801467972084733110113588449506122501825551754989629338219123649125955349718677531542587943094243606067091171937304979361131317675420578455268704075848773137089652921944726519574585632273984972762733212586746039149350280550783971700994023300171746761726115502234887463777263042203248751650583188760023828257774456098753256554808042127039568821651281833825279663167114903121319882382529498482555137713621111931765816770548192807863936740825720035153101311993222246885651415793701671389616128545000016047836853463632301133921298766894682978837542812739164595858087439095623287057514606172625429757323051260740384427128658520175123463818019399189669296059680753060974182136850850366680417315285733697651241909311508076951683518064840715013073766566653798977210654774829628383321887787035953068699793098486755301135405134693498936241335513037758822121105917226013731411152311652012868749081285393656658251923564773280613705228477039097464345897243014902462959126437504385302234488314401902378441140170737413036688799067387146744960473248452012702798479195406554201687370842328304560844823710864981085238120279894249307449764648071484987581030889940707412602995612533175118483020793303782144794452289157671579539621565847250497900898888634987120103877198225634525715849036848817612476818631118494004655827192986744691647428882890506018825421397735518308035090938330591668654023008171922674256761824004053353396628233978161735109434590730650246091339767597732303921982597921888506776536467099585668586710216312935825991618976859750582804112192278525611504657511196718263595643292590807774300428925999978045761759863725817629086911133112430048970141116888291023297828110674288990377961497233485288111619723156802147999692823469761767205936273801857847654726087780874022944450288975730394437242874454081854612670895944572466211091181184381668566621903712591946560150327833299027183520755058237706895372164645736995929477257691603294127905912217404128176238112782344911598891583534910454951858560468242548645126968377090534948841591168162071280906836205918811943734555397358573168691412568087842045517567026007342770255439501912229367071551067971830926549737701336604305707021502090940828341982178773380692097940742320999823399568556372613322525760464421818466261902443173039536144715178473649820349208795443108796874711049755179248174109812049910433549615778580871760071734816046575883258709218972138741234205683643940079731452326869837541956708276564567644960260647259146898113650736666954187775143382005134614753097755280541129860774273383919007319781649551184492987393452977923682079222509591110225582126478950067503825258917783108338471540915453319305857139262124814874316656985412655251512620819098015998633028017699688342648731890216339133440389597487615852500456508423164512312942701114679897660163176304584180991235562912116421938109299804652216118456809697022703804687515154650981985356652893573064915114216576562235625746732895947395685396850872754136460943160888087450316314278530613863320026617479921971469783803111879021902589786762576536261256173505240063941405641691062181743596069565930757093426380255792611414410237085771218205148901050319301248092148890533225016982328189360973637485500789184625796360454789948759815009829496192824537016587663399313554294304784293539738415766081598655108208595692034106116277356961233608046131753490650266533917950681854709123163270140905784120832344923224163594548232721142818823793209726327262182054998119408670950975322225454374580396791673355205560642304123490653327714566320292132513128817229816239663163792681299001453394508569120571910277360826370388902840516062870593689452648861635146824173138155750217540422040628540930630301840629449299169973536947866109354725979128401425095644403151187272553081389190809830519294254620153546461413911884455901014365123856768864008064093042473231959953643299193645047837067859902433253772860228322010661840409958806924469273203890562421047590143255205699208959875615085554973574147524622160217882751120088505459836941653773835193375834306563924180108682484204343013748099554246550463428990614072411629605985732501775077988708532623383384804691073615280313816616677552181711572685609787795925098364329242803270473509383776568566599577523295512638718291652974748968629542533308767583793560463277067063513084487850273155869738666891055878395383094019906013084985782512449817163998200624424586537166910932873551315377822741567107151127252795115346815295896751915802986611432337302415677623522547231265748191436685497396314603925419197158669249503203372052961924021944684234659769262619986462580364024557347192030314256020614780629795206456243141581925632378250222357718372638527775071120002631536303157803043971732437554682846813893915585320103392692933969145997971382664868991318230159220290221093867423999002498824369359849393451752281122063315858922164518726587389479774252027966376335387155739463286668852704107661225981857608549701539973722451395836938995795288736676529288688752555338306620026539472257400910519740341298190397883226181727077791777199745276402420120477447324457708250584222003760324649002043399259803394158892966431120700911190806122760188946350594715532262090874099335880137144229899591090725477586044579443487823233308753764157935766103005117988336491605215701981076906856872031235809843113272259261396360232915834054622132705527394584799107318495847096058316440242517495853150979672899153757513152094505075541949398910799754102552997914949493523156796813493518765583326677632913566610686143777749649871292520638344840068803850082654483509873892259396514814054163540352463093736453637821236653312163522937548301089313069570431171120924985775221158710097195401808906549375309754617326567284649062744199598005013133277692961925876348209525927395552910962801813110675514047077314497734152670389682280197432857526747293094884437241859066602935731006938261769154037579878149510303991804275619129882596003835332368076029950027316829561359973492773748639281232199704310763221780707110614332496287504228097205510892379688450499660836090557509417086388025552310880412144437936240355862433577594434641551364534816587300397829900735989458608985039085057926522715571833252088280769923185874196856647217502060597300434189134679238802401944301414151590890025336380020689848323645533266414951039463942072911681329866640324500273014330267345939338784424693671483856201698091091385390436676144591322457212331329396437346378197213820495836996852863526120924329522228978667038600745396830070172828144773935173931254534507832436984097972739586578648023578082976944900281993919406082458868035864072264296652655221951928028956295269788419657838728808035199557118438558171206436833952641114225393422879845057584169849542863865765510517484267168342126791993515473914074102619002193827089198298184131266625683889424927362751759220229271843879705558045672674134988118078572439527583689484837468138090948893653671060773634978370706353904237615608472142176273235810403769556566120413909959465136823012984940745879224602933314988862816601556294929679589685886991015733705942753849525752552757434085093027110669590652817108902838436373261728421308078864225556977076036592912317036106679904337630191912412290983857091026830883031763830740401879923480582729376297058435253877209555509916061052042049423269497750001294378821068544915737551153118028969458273460735175648433819063584872399229504294422782652422110938104524067419917991358087360669694282949552726279769579981686333000419748143018153122236876961150478439514986534198226666214709919373501996322220329457408462974987653372099318345139346655512643029350804581371865222645568714297278294962904793178711462170111235559647796748095647792623671904766499967717527785545567654750964030605182156524420372581732209997425405783124780868615778198425266891330163037181234130838844765360342114750930019851704203547417812438195185632926638926154906259962327293051827159120961125380642159182079295823571149546816847901839265547263901357689289681427484293229615899641549947638279600884119436123337467106863853496074746445194983347334389948460598838114318274900128005816250501272628377617156886257628772340143028753037705345475406188822609973621250129309496947299263958545898863248656052341486517942544731289326932365376972930782366979748697805979265430313764496339611565892342864520993220591646702269863738550712127404519799523160670978965434688569151268624640282193814087660902424011245273465994117866625279507288960277779385459199889629112432816685557533133525604873898844811675893387604825441994378872887634710850427490077019022107938249283484305896582825875034310865682126042987271018257848633616675008660681883033825948585531422654626212339495245510566961128078174556734749425422746574056300616048188574527698959255827408528861654666291844405550437081759165791892000732676552807446343506375527634910161587594077915269553120988032056415321723155288939399836377775463993440244649869234987813985549060226184941412568275365570046750970539776107927537850511395367079128146655266877995010180710970206446591545537590149673362815011460034029660153014765477376580155381295628954160396012842064641255563719648246905793475165653910391471233606059481688122738765620852215754987836499303295796651748933997928954387182017741392134060210228936011345390262431928092753969965575199740525532814549175141603100231216032728210521167498692867056419686707195337808695169554170599444878882196745375771962721864697592237693974323969750867433348738161999814518067225059468218990458409321251076243269716374640984380800569326185951889133506251772987976738010368662294237643887010044178643185502903554850827651101538340940486319277012301614151326779644046794115771371690889981399179569258480787363861500533800250045792686028522955395314211092371674473222757268452701768344394784181420111086953139127651678920425472620682845150738990517748541135586784680121946028103853915459469058285251963905502675016584834333568687038385500137906841252978934341968005421317406980414851337764569745065049461324101501215453503062388808855216519773018031755704276554235964704455227914881379506343962920210875619524156929764486502860493705278832265628484487805049420388601170383962710602569045882738667721782605634334675006898929050270466338587830014513677417666934216400983920249830435482786060526466453442754592592179350194728706688678837188687975896148589247902225822860486675208897336013392082388902999288822705309008936961725572796908909485610665727450408036795329481701338040333827971337217713508275726700677353734141887283294652231652019873119093421468083926204330128555572638227080086475293743261162594296246122509031039515670076732575840003428041820456544247552359729625981451066049326798583075987181765652941983171112399521030712096191471123049063937986287908936005361149096565549356624339806621120816820457077750104802826104458762178135471967283098200966872088496098665054593023427016626842076105959496534926372524233435725733665434487871604450390724760395453012745336083657272053872033209411132671929807173028824902816021162847345850033587298138823702479072516072474304968596132257188029067549686342029210328738925323147567648363080226878252630639658765055035753753299229980994579607064487046327591853685797710948283517622893950480404970304325471004609887733495830329599836245214935921456311104949194084617443490246162966481857029393691110665842863483460243593973222998314855916277563625936028020971964338725351036489785245086624932505020624407000577065200407672818268878052252224749955359411245112174800780918598826301920596592606490024139274981699389744532821612641418357170141564766065062988801916119258434497885976251542824407037194915990896352513472118497113949425966069607124569004222807036976129621570041980431587914569717557427698800207129528104023721787359252597773272979919664541294737008718657435537135581781561288642261990502566613965950825929751627165905263820267958837694687079965005051191440076860398913486412943459012677090575639699736054500231813192561907638539085591227965025096826114258100257612326763012403839555099301184918503448749426564368141400078157617205602596728594750046039210562236968332200793287337930211179809867310997069601532904761243718078011572952894874608926619562265098851163307143100493474187508210694203011683605758727217781001732677185713781997880719369307922108679634115966278044675350196727236840237387874093731541726062447504338049480582470762479826297935126909934621932099947507321683986272834251225080241832136125294673058387740484601818472408999671264394488008732485538763653116950658773834763090315516409563699257879689661996661201725621472573138210524311522002209110766124674120093765632720156337314293924596365195166396485751270918052198544270293954661130816322242667280237244250458454499710003637714159625616557257023843060312575473129367300212201818439935180443659546685568554110685934944226002167238874295817366398594070611983950456827070617209836894426982810057121186419982996978124572643043038502053648232130418821113473168908931313257661164096338393790889596326241256855956910497950048535438134890881912448543125619407560053211076156190697776622337871328475803784590151686134467400734579639893924907069232029494473717453302429327182566018357800186911665902589217379962083035889906007269615989812973944505732125123485957678526299923901369752079761631073803517642132230230405017036119203162082876181732517042131364250693051915020510737603151425954520606679827923853062700841908380175253250060177341229497751383035811995285360050766776603315799197302666086360722050658907867483177456592274567109876807193201769490440060973186202774001205039819771190837354115252952894249404980708360753496996069898418962995291454295697367133067664146478309170339951213274128151485239724250689879516480963135929020285339891908790406931826852127241897884875400711399683864328922948797321072153212065615344050597470237198341737061207220702240900061087533902950667316142107739455558441152870908627161222281027984809982265292474027074798736042497102863144959513678689660890821558013006695508650471896525643755842877021290146160485943820594383914994942425738555079071635125289833414471986115499276272312987755243766623607037710431393063554294562133953146297363499988514710478801247795552885017718219418126867223997292726537942533123557006110850820005885550692285334361402314567687241817805429415577655235814062938414971609139683582208258006788077832395612058032301689625498844469631979031377822578902381443359503128688815395764642232596830378300676656043177372394457007732428912221138311593998770317747514882591136198517296256938165953016705938405013752392780214018506940089215875970077923138813840474678614341788207636701272914351645768807848940877212529956211069062317018181922518609239496099436350831830154063503132282543244957978197067442979537434228792754362042272132099060255669882009351376138734018747512036914008944835809077681060251289789301716777407409903668623945177623017884363086834276207843085241524744989349308483029555936501270109007469256870207833210868078009148120512132154068116060324640941572267466290757964023880662351421184184780908374837105373043390738498660153691438918014032928948896121303021304780870102562685755350302001936293898459254726290687937038042441521129928440568604824629732770088066799950065539011663277155612761215012663163408114985563906119061595250577958033497350168698255099272739313609031430966734860722062680326844430035721987248006278372782281627611842993850941202592054487236659725904716140797428283918637409264445680767544343513788991138194023556167071794489132468147344379228904194206424553743793795162693267730267129071421697199255213882902092021405776605497238205326766656638743591689422894775794287943633849822610121648172602223172066194733166231449992342046059775540717397305361124022935175190798388900684483446477227410683481771135590365757793569618909318979488711807634452622109784368361865376403500255113613161650539904371912905932009265330363788669695052253645147732245030381802081150724162780518296677246986614416259454340320199942752236158808565755155169068510139609068067971410312621094667291398069573692442942515444099329641639733485546527215904670500246021195188947429616821794481079524929884970677366105102803135957685608916953880161276422602751187807808560625446572973533950820982842841127401026068691319528784724295918038368260450501406460090342347777165595508874702332184407518762886355975619199005557582311278936093263873985598225171991248945265093008699278727666928235065631377891178668905179457350632800581657944742775550602410609040557366576827756187734662220207251509163133427161269480257846822539475253759037019064633229163018218166359729978594090751894798744516685171116850374389984080342079874762336626033082724946778683183282893194453216351069524009175822339280675497444430782934382780375727825541847159617860821536772843123567139459895566575974182410150989868765461685080338197635537311876848677225537328468216004305093361672074370793441243884597990387598009745635714448506839634496873439176431554478199446888873272110902032607737994083125970258050142541007528919434586780423605842121533992279667316591667115987432436091357640882177575386587159303929801507308451933959787266188205270072768990448922805217648350098938710628117925715837099402564825822899793516270019650937714931745804632524683657553405728386201717110193935342159791831865315039234877652462099111335621136148936770155676984889700972961932099851800370309395395559271133370942555742603800773897502963389031661233299756471573279425346210317588445729006122855565814225279763013868262320977023182096594985890206316200013473019614036705796632879431883416489646423491299551880325411079010814979249356340250116814460550954759638345819672771541679355092415734555756411020222957934915438065915722582917815176638913678204288670201381774800453835086657856169618433706067007522420721960836067249860507583069309691049059776041954428529406782201445156187013788687238724799279617638423071563610083718469911357182430406471238520729698123456088525031552665162406328870435439888427242157804820720225048543566822045636670452094648043792135832402840690522690709987086237192997750758299144122311584419220600528161931380113758401849154070330603574282406799838049791304950430822159703171814507168992624415801760970513119270085934009244190017392460693252327634964679084290680842329235059777552677594637686703993412386617224471024064716643462596539788051622092907035703946229242193656262021529221880272150205592352447427920832868254105245853997420228084796641706624861389444876645550193140768980671184367602322471356946976232817460626539730045669925993083865794675819938407807630695696292018835356727626177643934736139798789260697945005239872680540261931729622868700205826399693165610630952544012676896400174363416068868055142906160937920705734112066272603733843762726064023691552640306249958770803989357344615494651534814615667247011201621599472113902433910127102429965842324894652093221171912048294937713088087998388599143786043321857890033997843572285766613302390147350785588517417219388240971464618175711472799961059201921681123441216412094520395032225387337857240119038032115578783715335872354991941242264368905000069964330755916226863366952090038980400405554758102194520456141344412580719039020148878643832014670192370400203272786540091229718638591327992390456406762781917325379522138920877971959318285076765199764688773540567723126878759702774396977897370961799800018234370942021282528975122336158357767319176293267390341613068394211474873794288125672505960139521580593361679448761076902406430073006156612459395571537767140788551756722952561293678735677126317912241542472766197020017094401046055620970579950612727336851113571757380536696463615201341260064336456404216846152052703576849488750254920137010446644843939742490630703247634910576359927076201575496380378211483074463741018778585505865603080657805846967408125639360952977948907452985878180479511207245432359472108444054086930641291154330607929651804777288586440670502160236055339531087386197819707506730194283962503303853168454767979602163051723365517330178013280121387209255887760476474700851060167326497526502226165875815522402169978482761867206748071192313923463176976424573152467377170462068635822831315216613758066740804197150021868257312626487069622908057369265413070483158815165566953258423885127257577809756920670657689448272225597322477348445356083282683183011141661819806162854815789330375138748047079480220358219960688311500284773279621610086624755146821876326650318972172635362335473445115560963966695111803925175371074338732440896617944111070513612075349187964529502798771577881632608029850391763169742372557872285674602908873611406654238738260815166417565027641431281305840756716746331130556841900688702607663585073100333446059438828941546619836069740229660489213036429635064600974840964216403969885360506887609191599213136756580978839862915944868669020882039042664875648855362146053693634048741920333129416790845732513452223837841626478618382883962091993251637366712756317237667598691814733844529430938187589408838975835303715950471747832731649828984104959833344824812945844174394147514620158382026850677678676911749237312762995922084495318923036348809660326709793974047204263962908073819303463580493351292485065321424237059755468090615852757259892341240569836396649773223675745129334889138004860223385837161657334815836512748634847561464627275740973885705756848363940803286824354330919997328209869287581336851812341864593306457800926222335548628342265239292926044569970066085862566899450452546609200904608363563817800046107583366310429697761862889043318706049125872896409802590739832154852803331755637891287544045070789310431106074168885363359387643325496878383573142115630858929759693240691024529270824497062928595810226008363184936790778377521828699071235114184939974084975332910482921237662564003411995807463323296170393356034427252625270940488484472554570505852956002548231782349379071014574204287083262594200653204814618024199611234107848454506633283031648321869993586421236266008680046496116740921258253704836876849770100185114530517822495917232200557072011028571157170401376625012516244338371205453752878077240593161682216451249605558236236685967643322328532894879080621434916359357238336330655018341625066580247960009150642869505833961858511272335972525449585385975701185741384338195175310694411735634572844487261778509044371257006162658328217050643717944068220490212275277091508093353410392505991876095274391035695194487077206458931527983413497324204973590308651130200667615392038510320616766003473945680071846790287748465678643942857133051521178598133029116791719156910962507762463017557394121177650308066197810261983534443082185179880820808563747225952021428957064272578240364700254655088301685461053567872909943993067295704169494518007965104349468231134715810448696114175999002220598696739985034369955812891494463424054380198831828582645854964707546051048410373378444000705042895474700185921804815852644239170664232893921073089164859962597837464580712740969444966824170995066574004564967633372767149844195698523107277012019457738818094096574208204052488291377301005881852559553513832999431244121970195221506317581100902301302251053329951507716656808417997040023578381460323969277430253592634025656331409754985750189963205904080705787879603921463315309146127177415020060048980643284163588988370976213353053583523695887399391880049729312362341614294161731688840997742544867019326356708082361278034967813242186051620493332333538456280502212052510196593761651567345279224391630587990456142810149098602278576390573676493080698766825958664426714230111177529998027157286588302726753634437321936092853110711946039789206119878008057171034085194602420712350264283867971003775470273380598498245728958809645989126447649272896846266173113878011142900258718766277891654583012113796264508052990413128416374657989426472955460583202853283561763566340158620531089262196231891600406625291449656192433302507760129167249869485632068383677193578125958065050917040275055527747321854566952006980601899116135607351614855444076661465983370865341247879723121309207425295853356036445291898531082821744697724059782033518843463506337066584804090071136298279540761810396942299249395260762305614076232520706230063473794651004930687453970424353493306042816524201925606640035957127889536997510684253732023921018252617917089201169304323906864631753634730664488467535556654849366491325680087760084967280746731703339392605303685699144191734125667876404863462942061463273142383901934244236785207032118870510995608223873236786236496379299633981292959794943018674120439726570168488634946919590972362285137778793813770272190319917840834456148226364142514147740850767457686027268260579495445164451041422131500912362720557094372794497845819019774525830827572558297747869303039960722123978736595424998913462303648619304367512026274380382166481235210828077265984608364767347801479853399624100117689245616035204022336894211364761162123265117869230725203640612399678920372959943856095120003137225980823148437917667337465448632842945559663980715584812412175437464074150301865173873720892671570624041060381513368918031815053278840700268683336374783123971478106530365165381358014977663275895258827317249803291192520383230233328841972013144849726440930417147890910339699421268932297966350509915460902673489264947485427721169618687955803017113660049379635324034893636815945378372889141884981000337709025566539927417161621744994714079771951524426828217693811312168539927424856081339445046118411134618659522265501577159071383630971564900663206255025419592286994945052171540033596595660848257284112357591254767530675360881108370593884916329611479092191799685575109423262416781209679597985751599443745994630901732502443967966747818059016448246715246348311477633994324935528811673641829856761740071803790332206207257438211207704424834024952730056353120243131416548856629384424652328981970970034856064475397408931557168850238761720995867417403555101519580412203282330401036715908366105325551898035271058062900418479588685823714313649862554363634946003679494017343483979517811440708996315716674726933002922587825965670132991201588755748773500911642010904862594470981635353779700885974202782140344325615144939301558112214126350264530340422660070975780571352515144830870559094924851985810908646271744628635580234070971009389063610414380059356403991447005118946549064889679965297216271477533777552486406160751586604973901350126706112508716946563299724422784605480498479484969109778575707607695819554052347411307446743627115675822140880345551176453025306836269023003659631450239428490628734988944642113021418106643543903805729093437496502014951799837352367519113114303878911851696271658755223192621042861400751693026145849205188893429658585854079711946659859597004646706486545300961375924301894589316213492541024685024461129137135856695309077872370260641474822941574429142584966147577932848885978457948003348644727321621278381845675478706483949736741386259740448687692188102840816606831071653970875595720415576261630291718520522679031095366410434768854824086868924965273275797709032356769342685439899682890409027880250059204631868822168739936237749437948358624473257353571019613596328853445673430599886193337712755794239560689880556588893363399748526850021676098554625671096996941744459169245746651026442698043535552030871241278956838253293575405380429651165767433720334254852689570241001329647670587805316476274217446954394196078957200497438749176606033523583564771634141703251241724705826505932474628848674941949710106960462875985604461573739786436360327807168327706232456712599487876539875623366478127216500134152333908756072324718319930049709365288969955006854585715814627612985839915631204640621464433879497604246357492708686063289155960244131522857844869935264300529414714811448705385065526273801665054723237528989477209850019537572719713963243060011902455715937165900274871820061930294063496416625221562249108321917214008807828197591469960804897008427837657551085945115797013711977581660879952433686869940950811395278011914593699545371484456363758225229638847589872483946709732364728963559447044385561945892921132025719527300732070249824396789544813811461973892017622420849319102283986645963637452124458042029417652850803382086866276667781750353227068390417929568780849889346933526899134886424725825079165277645361924246550208235546298717521566680844393450417253565231387642498630501980161548730117722431081355306110441898623486664697969425724414011534512555819315104099106376739765745525833908472622043698762949699547775141587545148936894401150930908116602568731680474247530835052738829497860499700614941310821740007232791198399013697051070937236022566167507825581703595792223808663882212974408575632714019207477970294502230085464380816735803000811330443833530434873259251353246052550711691440479373958385374823698646939427627207847586210957350240574357212809010289742133784173570181424986673397630787438373969633182919258870364934453902416965604603025703275013326430914868451795991445504391118336357776207178210651801558973872954805158184626338860839503386374551199192125517711644002110368437819797026807047325377418607419489187645281494576216075681024254927890867423213183721070313910724974150386098903785372946234307878440895858573375170634350804901591352804874192617006855177528533831004169289436866075434387955146494357959462396058242138488456511315833142408552016102801664861446927000702153901925350159463547135524784846146752030658689199498628496292755621355051390716769669312834029927080276403173741266431406329310244150027245931818694543499035985749193297784633883237951505873930509395523434231546224907242677832566567205522060633344405654964082510510963758444703887296854170143901746937267229477968234269394400240224281870394509110256323786736053525655407970702150784233637573862285754329209238984098014405031630145414842091353704912963595074911175358512358943022095494089970859974488926943728477667434787255294008021126648405626641320903712644247896658229923517035873251605281766711643275972306892495988172466146201278882643782775549165594341686292310556527628525847746907405383396236157800778588120837695172884804531409430224595053294923688468358468336422153168608960437432372271341148271460970814479090386004876405449135496697718448366217997019583675026706167708154427781403510391971206152736274414569701709828192655808871297836045714289637220598302050427101073370225360484911999408249098240190665569277084555510651687482594348657652743466009898973103382513298352436922711035543701758669989060142777855277103060765518999779666212474934003113853935243566028499705862164939592899461217635853272783750254054589528605037618863765754648982440008893581760383664635538120857291206692106550872163883435229630330302084277472068368549055574766414503713686508770768744276988120232726886984007970975206970803712974189193842581784863776420023267912709084985581023468444401013242555348616410692686058113721246276456060971963830784235087538142596416492695442228654857035844406881023505171154473320406278286868807992704902904569862039472780875348319114147812004700558963918175388814644625564237422143818337760097076566569427377555916524085437888264935420984850071168090209000445249678494261988137284714491902796230893585731281918082950957133257999346716269548702448149394668429872574993282916447250286765301795591817203113650370277167593008962354520266472952115475938079619357812667601708138749965363028635819582092717251853632118921113370880005070617091039112384063764121117231908796700081598370890691836098716760481214929553007039348871905193320464124638862176921431514293563309989762475728567608774287075775870808553446992981341926492178995171076454542020270789048434889003940698156836605553360974218534964929746095937750701361723394826560602279437748598213259545183645125150794369780529611945833676273885770717050747456344586939610762020110332422166804203701679929307946545569462413281727016663657495863712527403871951245261224409345356354197344761142561753055978755776820606524237526944946574803805598176911184009684807722204761295269130827431510508993892586407055268946093419190646828021671212644729239376648109350987574287748971504103599756088200592619339220518873039209093864341730920631068691964638750689565981962292151642843802582581238017502404561998825240574547227704667029182985439732277059677540454228479154414490368651728742153627041481893965345035458518153490759587404806874118774663584907476952880864932103491011255200123878857596850064589626900921430575262839068510225070051201161921455704838782472701115042518779995873187474172094563864574513579368102317545697278430425096281738430932004900862864854857125058332668131975616983845793320435889930705694958396205337284160284825435881768477782851841856991425407122321274440958716094282494783827675079642429641444185378878334736946311706749514846183212919796607141451387860157293291008101126514365332247075669412272198812763881576444870468682991979761915262038841755937666752674083387941997460035742358440544465950124777100868090048480129588473357277415062468225178722386550587726268390713894079584593535328422257046665199546542324549397717020087722531400193348640379008413792515157290598952424076925557274719374326183408598216975514680554718953749264472981852223192216508053880205335109911650714387170815964381110129429948025634313882754508754360029013171624544291859881060625991076641803646912900399701989095959742912477095122978833086959542008610207028327330875703829540195869374845628625382658961559627000227952289999218795839912884372756698921462003896831023266815962095459006163611060458931947705804594228150099960094351353850494770468543903260766610091030053393330911391523774842351480852318743668050325031244074306399605195558854608916736155639525764683669826401498103604752009205931543381674096187816883784504660976376460864976425508900985781723642689292008085201225927565912492984009125163433182270547653164826847088326769102175030323688450359464134936359795300816514351637353419845084968017739691470004846823979458635940835711329436460109687917934831865347639605092563286282871539053458098859379527032366756444390760439080417778536810271176756711655166506396810036825480925679026696828313659726481247234514868220386124000115600022467739760541288468682845345491535873141180563094859117154633268874656150298873351948963221167196923973238395485597808826268901663615731030432224157286230266226176524370909362886464004096708612183588784213757932333862647806544003388968783940672337689954690394525297853233755739344544134644422897832530093039651917402904519622081768773664321132061638531951155828469779689853545354448002867255389187742398569348533964668510745417106413026619360597502786128319578801338261152675903553922672234595472962149084081478517097519249392502943652842520840096376824967232827308093629562930596926814111277805131331698850107873820282669515962195203660746315036633813668096566106239682477500010011812572744023010162323671042482870012458000222720159218016783294777535641306123700075455694742514350574180213871464462198202742294201755951031013554803623974051506311635271896977791835432893589947285076413161252336588600765877035355749054169410639348151913121387887137144946271686246942447664672051720183328238015359597558588555447901492435648221601244558477780626684116996309049413309760981102293557899391859076525650539489107788365727201871943378531729213002690317965494757137571116720271558517989092080622702058905910574523267093218554323127873334498138550382099835593099842380115519868538013378062649922553701256172167707176466150381652619551757721837851424542239979642993285536585026576788524512224011117746541630752670790872386500028876530045069148087673623343634160323362084765094153715167467375218548070672075638803896651504160162282031615342323753809312425622611131450624343353048306161394477806621812829289772025258861913910124599849076795106968459967669372908000933342048031344319878701672191870636945654910929463807091600348728022596355013219199800787301348467763445681298066824505778666776249249524638056154594268729364875223787446657148303083035184202230965059647029051734242868977976118238854168628859579833688801682754112113920963944351933135272873554952060427687264885173802960233146507621271152455646792725871573775247488906987145883544730234044449511713577265900776246288585271182417581775949585571079459821093116689920574844031088644773211167601765446199183532934593503252849259698762598823934683013302505128686757147321266933608962365110800963126563208389896464481517932156019721669472405969714183443282477823158838636611079046474431192920172607865247743003971031181840182090406391370642189897384966824177926794258260242310890739094696121704418193541671715001618268915363518330246189442475127968316080727132207634659734126831770072452695014309874109798786534456539650458527962541122971778875664287528833424724687099564764279678660935803826497937799540283405265153015208917090295076396556735089631142358857058328203389233990088202180145181731124568974543479463981886733697124244851138529624788204968835741002201699721141328118212632653428453832691418470134150958814016166960613983392828391822863809033064745485161220735360319904282383404094781647428282029187414465436533208925151013228961336741603084766798993096082958360569015723048863280572577546062740944122970568977892474571998272783128742679901318034468281222379791544342191656995770086391522283318647325980757238246914636001920310393338566899664589592023340729941339945664142659648524440474967399344253096705854862469346837463024926531455080974170340162304678643694820248018524413890967563219339749932666427578805413126025948749808821958405381123730299093643877862726881232495980678052599847383627074197611921444981273804766196134858905632854396821207487403937087027567085747871127078607108347052367594808358900214934722969084757652464005576562485041296867397814800819568800806264379228762978382232621780773647965129623000720415869268481040459567009436411496853503108639548488185161395054553040549021163529542648475909669024064567057407595902967013048518658344505431238700920651993744758268493884240171318624286949522391363471788080832566646163617559810639804686235596868694298889216417650469960354199398175508870127965435887539357857559759131591942904681482190282887409804188567734275078666650013334244389178196940814278855097237862395527080200667226373612403604535928752628477792417863997889355008268530067558650831325992649154876401346168505803785596426208536650630430164527374449944076997167299873278423042648106265578455351179191715107991733637857366469818665351876411455100930777469215050200031404090006644704772927128966784184770642222086675837704134492839289325404329525500549837100359716111671329727384945463620666000365110885769246595146731044448602422395719982245418795754857127968930384111344689891278187110212965866479592143998086241481400399703419796466841477496893500500883683930009244780885981229809260363937835236144073876795574605238254512723451875098940341020018256357291277241275818233306801486342756893383638572753100452633920526140352438657085821935231274775786540346810654079796169067278667930419989422606717657659542451977180615417334821486135480702299081617112752413636130916842789822690260282622580249099514384211796716723560314699354721172843542203847260792253636363616680282777844166374907466916030787945897540303525645663821977116348259409968085935173081466662264235130689874607874418341990126329307214963401684250093263901361504308697373946103591780816089206927438466370041420357310661894421498769902827116053149752501413820492284108832415675628563490012832582759698326958174452648473656944261511857355175622631113580148646444847961041289579661495797052982630303437614456676300419731259659966422502435003005180970243186956588610331889893813232773091867792985089920963525510045423918550264427453307041532973723290065158812889884429130938041654385909979073041479908777758994616805394162495744584867702861117941333784098348908749532163984420432965669445326644479475558586908508055208572201424178230366904988523228152628140465748300908295562111995075823415657006406501637398509581585083340431154103802739851112927433461283741969320448110287722678452082091574351332110349301200679977030254043639486226839065772307555349074970659084851366896287989250672523986077440121114535499060306201248288002956760246904794739804750939680599566368490061924733783321975955908698244366008247345542920585013841908977618385031794722379542555063614534160812267879141719841587634835718735941081677423771048391044405193959619732264930681220667815858817600193453643273496187521111083294697854158723176094332780295794560491090937019853791978377467107180235220251195333172435599969838369955693900945929813711086707229600618496622616198280348016561108581724102528503573265610314584502612449646554037248138520552482433903468576640851965993424477410501455347990068229698318563343258919574538032626460566238310469470064003646440560980823347135697546871929710031833815236085695214123490623814282295855189867389896124653379292350695123263182373894503377305167032371904166585972106875574484577868665419871537313200951349793084211257706288592991303079619908558236183852685400116191416990895390872444362708961558255267010626247366442026901220758663374886854583275917354943101932403416558651929185194499015769152260613576784229609134928612716091679895382623987862764027124299897856774645043417439871320694669334031671412259024377379323909338532844173417359263183939117197973495228593634869756935886095493911125106634792721878780507141581318330092395460832993087689911937271284946018078155378595640283634119978907898014881456815808894897022759826269226310457933561352258844352651781490034778641737725862233054524780535039693412856994377605230148939875105574625750369537265644011295340436393246175960040976989516444315078636054074034303837995093051046752296228921162729735811018263877389914512600709940694689046367463784280368498030197647376159206892419015406754712216056338099468718569257476489484008272196764763916830311203980191835430450597461787828526909540842340036155128954762393146271999079749117191591426633948515920506463905247660949011043864340077502161850264878660715553893750864641725941082523215820520654078911144141755585274214030481014351316152280421525745895133032709057248960972023349877782701515527617143237251430182418064117562220087825872228498162341488285396045361432077654120143459563832232104391737930627862314207867707680306809421061806506614876544945553052210363825028937207940078886937290283213620006428172754608238591282478404520639967238081236361176249842815508074331907255391294230774905867540089320764834955183166876683259570059800085083198866243024439747802657348110551282377243421147505946120130324772526136869458049701270251888066244437685619549792138184620741109182004542958629279274328479988871709111796491617442017367569944677540613131747212440139077733744257088740348229713644374075328686185575303470055429392343039627641187516004046919513545581766189196946198209411728629713273324049713933007582255750870635764777668437549172337139426558975433177713016997131443083883901817208618605180903736019989979912533107692692617830218764942347962352958565919522542843491137747112807509809471626073397081681501823260136974489862591373152187540559044675349186992046589435420376828207271110056816291979872669915469527390591204068650302838135375946260965745367617220354538993491848622138673328511404170858069623383394071508226556929345230206956866476751425046776396328523234459439730403107202411905482345511917698683449392706698678536654738221711166964646734439552721665859918724164529599113523875563914804705761186134451589276062696472145757630715292982384707704839724437351685416401479676134599674183715685681286038298802380377895273466312512351668513789727699682114289781511113979247877571283960988801377909148873925626321935933998735061010156635868392810571227291565891962114504104490931318843645501982700220520922731565465660477334388509805938827678179140819830186654576652711978921902348326604693548752685793921647109287530521798565071276373071949832860216000852065242757860194322755724515045040928315966883051309217333990020799968037726193046358486845028160729211218541887673742081437211636758322056315931584623756874901515323432562165141241546985233991767780919515272832617205891028834946655020925356764670452036364523850807935170132140128952481387044970624737926125318291329876742304856935049097603762170809141753041137058686093664002315232199815340679338553006970856402796075278600106043272802740401109797665590409672798047724329665456712884714503406297868688150313722660306593935354177283131755568868615616083014907377982974461839819018266482215384086296679097590404079243204369569763162593776033648431053987325637582455210390620205776903361032952339030830046814285644922367965889810819071363799332568884150981095542594792139888050904880288772391495463180531669869227699921807607409839420445079615499948590463419180155303823977316696346277933299011362061294285311194852039872642437599978992035088049713224767634030270558810847068263783858138913193141885396200836302760552589691335010446627495961233679747998889350406663053518633805553858432070688855695912591375489787726291107626840719759850550859778207060010538544268337864350527865905864895711967294406124850214929054815504830385096995765253035035310452251216868378923266088534205467328589536648652779344815238742857447290759129248377667826785078353639705670029382219303055225979957466792836284353187813124908805434168071220375255058723238802422882760386679624620794524699106885134638404086854545471594249358867160470938622232638020673349673648394064349633546053392121523300207941027402265859729833413989752343107000122545838928638582551613783825219422242104869771721052050128565518721891372526890968328033864245756621325825148616237825217579735636745276815446131347014679038769893578147414931861793053871299128076880794717390796593926304184026588873534402455579133001149766073480255185237335647688542132379698135231879354669139187638467102829419419921848584039701714663779848415152371622632101994094364781410779463134476109365994392827817351128411183916957768983278769019412618276748961088232950835170402115996433610956547170724984594913208367585298812182238757479768293017118573434881846765744878084544087958273609311129366570310369772237843211161270709805751808363315200904947964119634812603757874934599905179041062348778288577627931452905760953469439687916887391391406501979127384515101227640637796601461878086919093764299566491217723107371918042589066148371691036057663966893015834290655547689551978794328504261507815683192148529446806412069808519642403632760734086349974714128503543488282319552912291354697635814013858935158239082691014486921003507964832991719017984189264612964418905465088553429625900528858890526840079274194680161095104262683224523491461214453850484478238049657784988688447670467516089530124219380607368778675933027304659527287774037545978963872643442510963349446263287632348169190908563992222176216769882377094216902218964418472375592684488158743943235519255920770664924058776543046583565528215335983110564971483165771234345144326989915963935072804002064296125761392535701070441483667028726629136482332177496747296980364827012365580011706896865438017490331075342653820027143144523802275297367643938341886842498271152034286641174212243271839353541471897264531604354704828508494564939713217538747534897189738912662673195296185928848260150677927135110643905895140851864631959352618600372172374503160032493593799726114953855326262490429622532318602489758112963734292162299083217349247075117869378812762033268931937478697671936894652454864108004477490420069735469002758148644662491682886723775248671310522509501414866841176062391737611365598237688983878969291654356393138100075994471482862986510129973075402054834489989516756471396799246387774019549224135794833390475956104451651616237150129338990959098453609315135951112415231922545425850685319760857913969405231328815852702912902420989747501393988959235255881383350069969885587410956204076232667970485758971386277970932779280781633313431237106339301120923670412175516241957335131049850193858707459285575633691896331333496525936200644842849367980449637075846051681171981819061559672433034325359973811516580699580083924235060803213796497170687603956447124832889086740182097009574826711452288219564953889309118170978429513828860725095722401403127302680522327425643043722433675166099622968174727253780866119823882170920773790630944137223909141997754315261992321377957714265643826269398228957599587257219944758139093276945689560946341427313608529637149778443380861591644569185017512656789434685844578473422451745987934732797886739419687577820061067339157263225695796936763803266713617968088412232853906003491551636371845760322856297145067657520228230358874351833543402901216190992726153628090076950276038839739811386603861228609952276059662436038047676836100561451817820227960320093074283239633726360605165675037162456690374151900821600967499060341589901539343935364866653224937832432052095154056967512922778347078074954552669111897133363853021550491032507826559698715404215432281451549918229891982813268451952017952037518840736323666242658652438887972565291612288015526236347212516780393235810925327403918949081216346461291376488483294600332673593981031744480382236751434586303378412011506253146178238817570612023418559359259325099495797302936977512792813016420123479981289673717963031853411364212684334360489625201537828505608597817437736378533355063443242021788075346051251454860579338062523189242444830813227588426467203647805581258837294151301266821536917998578953581740243569831361824116490284617642759291437052758532124603631576161232907594010618198112418467960453952841309274677780367944547357796470934724308334170653498508670030315906463857512426925704566746211185131206487148003955229041558433568857294678610110872998066148133497200461232982367882751271768610047849596761954341706905545653182062828519918438209256022554996151913817492312252337422472051353768928636696190601873074074965212649519524949040425244657981275554888545869048735887546333291451618038325318537792532194382313875248326305718979010001684905188111244073522778090950401122925176997375461215264536880139573100746211098483500401826875079324347347726717335850430419770766625569053417355003255928127394334562705323393261581373568962658181280411796764891134059861358420403834442760431369308804757419997313046924465071191312693350643696574228794432873947468140848816021923506221945355305755636730411974258087681413765307741712993824873768481546821821994125582669676478965374234611563986015384667749177350796615597385545291304572580479716129171762797009920704281177298457007420385844344115539210307723533147526506523828867026081167557375854025111378810309266469220332061349260999976037303265293751498611764942751194198290003337717175454950796880894062977149041027924343889719255159880124634915302522341993656742722375781186546231287372348093571815819449692560701569956703997398100377968343800517459235721595177232015319976509104830625452280736713764459952222517156478030749203337674341957535847513231550986512270385215370348406927850132422176979712442634079605112789799645572114449069056516843227652303210430461026071672572653070340924920156045877240882665256326282953150733448374601482839114331219719572486480961473820491059083007681288832964728174782706270439086062660517711253120243996081340060706391265092492099782841159061033954637778947240409549617478709840901982678395019823163542992003386072683772688976243019680284281992196822911492058333152679907009157948188251467129907271576243924383095642557080650887281948602521969666709294965574624267216515864348150862269297156536203793233555734393180764963658985591101860714139881369188021423832315757167628963821460326556935475402147906298876412685796866631046006146017019920278159599468618292897325835352520407599173223822164888645515724325034707844303708661310139763866752432118078464747379581030557182168317610821666095943316469110151784449229577128421528949892760825984240763362180415907631505253808896084912851553891856174252018198600252659660173754867703504948055162307569003471540670718669572150630693275398963490182695348652494107338227703222945868999263099431193927348441501125673235850386683876531850136858083139027848801421478587146942970727067031969191208965478846911171914559889770515079576421195396945878503652783349541598547851974673552717967225942625304480866938034219468886093301631711986065356814498849448650998802987616424695066151103292105064411329754168609657767918388484102745449868614158966132552918140669850922327529991518002062919785937676475693609085942966727188372801792546204097081497952832329145044470525103536882230033491266803593228629159098267401451772360756709745419116004996482194093788340293190579763580075132359453057925490997425716393273957355885730804117634233086044534200661888162252316618015136257292609265894350543990061103532351019660851789034745251848676191412870385616279861900460691894810647395203420892488934921091537290397975890656996721948459339874570986921989082596161795390792050654455649673947543852714755613070006853675564632982871500120422043924399321467408925286904240987260661909738566456755757746977826358561310054957150946712977483767330286731274231804933444934456928421509201640125131665948841545752031581410998572682986385460646420410174890222386650398933843410047686886092389879576415321585046115314746849947194021487317620636450729231621529975481839476325461650132231738656394637563234163310641806374508020695610583251373306807314919502008761749551762579988086907835756590027149090605530971036559969210968513503700998530495664620476051023149515895540104892130804943035815215472082693394247422255954387074966235229331319239451710998789339482251279637125139813124561656573735331809472561057248495586234085877889432025244887636928922872168555036987668579637386686175379343020143085335472026332203197289469524415262591685037680043486283306153574780269326602335470062079921132403718246556283434162266577400142303473316844335293793518875264434239679548558358561010886043484825326439207069268901625788514631350338007002399503864671627983844155404821036259754778529745241876451604714229941786110953210298924348635394627322966444946700317209631178401742709622851238189280419833216422080749015564205815570015864444346281569938978979079736219099359155161498192893257980549153817372492385964373920430562507061078666442305685699788828985958616274002418754138705764593367927747249343038889871357637457810979208602848530906537930405683178501208563178635388036712772811217394734739037278416787913595043924979769748716606741277348882407218333310352370827245417708660372579333452912486288598544830624269126552818711962185901781756402933314121002255310947523620125612342048405809032921002661429862899905679419121829293929605271497162561664160454623807782745986144812022434734919975552690390946482326389160346267038852210132644082160607910763219901831883888047001254558633619525147417837454201656473995274638781424170468377750237444199984516633890763799591887323779483824596154061963571165178601697889289747221627930122857713985082140551682933815538636362011272103946011684938412263931807733614464337650018017830019065161084141541385498870259892723394036183208246841468053760086136564124787765623451492830045766421804359120981503402727443690432180209172608213966690234966448618316900557825032017846955410725697744446736545698422712184069141280783196995767308038625471414074186899743845316705556013612100796972582674149259982267988499050546272689779404157263190128739656420733901008896557480005359280765308112152777754912676396104503866855968387708308213194408416520605440565734511706358825432795072546830028555410817233428533437979274006487010220680774342037377444083973888885701735921184415272047898404634106198693079872017261211896793241688764480936447687548449016656602848374783150251632375586035865894756570677688517919882611521315205553715357019153563419079114175090313261749626203169993276330322125887571531427607905627795428961060723341644050425746444115183474497002813453734945983722890227038035058135504943918648939085132189384312351431041691182581328987828248067617832671897363628262553936066798594555646907349557530861900983680431158292138353970918180194276709679182341709855897950412642539665476219078933574940511438236765617977068150596287289257430173365170942960093199897910664249318928666537702472971244617807894007907111626439006464960422252454655546287484154151099437680430203907001294205456237603295686217340454263199697731940282308699392701632153937948442370693831394017839603880988107243031012346705788546867805462645807849120115595047380299370788285333733856670003654035427906722229473821204709759347832100975992991953927987204262811997129420901985576151952535175940469408311655902247319782765271808279587267404541768617796629844003651479245838454478593836627077530688307122523059827896437690624550441783462989207529844499774241055062830158988053624954048149865663852313679928818844401144271318185532147024296006230983726138900150750950530609303337724344210669625983123241571052730734208359414264798054720920281814642450592360008359247481566095280145994250691721755534360224498365071467363794401470961281322292329440089406199472249142460501064854931209661458335730089841741299501701350096883008753534572838427870713145410751661814939306330399641732271109941614913854787154830569724359674616405668879533436568940862813834467027134018988089545747038463127129739248221572205012550853800395319466765109162397492900505862196098576827170851176249573106590078600967641418254011724204294357047218098262479813670524383001020131612852575058310642167745528877644462600355013393345206928464645320405447240326143679396325110838095194138624631241468701276801457259606963272513682542866600837876019990614497700109485516101949706447442969911082101490204625927393006821743574699053066237441962901380862603512503953032470262089797191433267308959608040448315707062578562681141428273314139062763867717144582749844534499941226176470439188492441719560002785174412928014873980263408586076858640188187853356505818991743493822791239894531848973172834073166933714597191198158944150743850552005507936746592802675490952055634136721094606171213201856463607702694654599580570198634209379582716613103916800138386281480007222926965620352437885194644206902380624874979689712435326168645494764784780714026648069880023348930971341405714699975259709160700664863212438994183201696870663650463463437549547121871600936272530813249793206449311631383644741352104507663162467000734195058572121535349575931554004278492745942691583071242151409265214410811702156738401884687102623206573601926237725604170497473560532612400398125369978199530113690933126519111446930736706803282282972709918763468715061166891309038116256318227506077805678347044452534484731282898046951244129112577452655915383823294871958738783629750490456758406544981853536086538276225704999451356750529358228182504570955843289516694883951533452980372200743781177247239833880385434384689170450352060821699405642320511986596362116071541426910710531285425412771927339152555857757161721406063184617831959264019047650762698184301002661887409674082914272494604571796449325082799119215012921212383783768605967248436885653951576300118070095903686592512178655965748352087619451601941593569894275936501476143482816369087196189979069372992485362688613193858169514753416604609403334477561315806302092026218084273655315243170253002151181202817911954096014554136460970147101857242816393480477177067584313060368765961500402942247353902268141861098023856728587376242830327186236331224832969470226333808383584210910529106644941246324167700313029437725740164092107798884732700681523655829200888182273188532288538416968475873701756966835909403426397065059517207750926905372764743228384925606698560456571110808530182082462673262310743706600684924923821351576137650894797548834422918404218917981579605278739450322015500085887303068822369676552915909575758168747449284481753009464012701638921087517554149800102339212630226590429853921507786491190503496476879548663583471395952320100549416962337386490984561353442662686327259631029399607575136390879299964812831703304429884942245620319460174103010978338003915652541285579548280059992901594682492572836151382423939141620209540332207811592650217667270141853188675281538006386805099660654769206851223756435656280372381875113436792397067345097316646241879153492122139804171176727682291666677683544696675056812839158320068015483700176520968242060612686373852762850894588021905517840708763160843293688846687425273732735933051056085813478371985328461081524672697332388384242316360079989341027746648402229494738285302961511503227825005691680052644720679854656496908022423639680514417224739559436531965904730862412344002303870045087484314767943360128678041419589268289450989092403610777070207644700711020572623397760438929170766318139551373871461701023168692353385609506195421812635191658759678511581970721138500411723355132533612891854672784402970643801503537298672562467796351118936914848820893808005712524754585945565850788053323326921906106270654980841294366533978265079456692150875735052902051688998000801076904266683249169041530743570705246748715786983628505106302861208289073571349073344053330052101783948630308049536910875840881994723117614741795899214256026572840721491676919667959577625304702685707971641595295523468451932339754383088644284960448489509815939259618272551782711378862617684640439166357537626903418372792721281803527809898229987110821272819070482436225634741367353090107063897150789900604937150102938767253871695846538581719912134387282015135317057415569628430804184715143568685168731028219258975679422653347966623355044818005732864305050322168554339116406962446425007187909048663095292714255329600864828650284303437946781324196780474081296869197208926111517895627658861429116087831512939895712462919189547715289494891417451928409993520133371018075634268927101421402751117082885419300739724371227145352110862397719146498801800845871982240258129816441912380869576687408488530677812702341872718118876557727237119929795960181808640265252398119406630618377317829200040389585926920404552613791395691999637375458800303324959807043390901862311526951414820715715517772885556550649571084501078820327110845380885445326477775559696537602662737103734508316084330839984309960551232210950641664168051511626530313929718472258058566403052737512815914722566461220949938083392723878489796416679140696987385792578049676552597410090677661366416467042991450474913638531620798899889696667540717901158467690894273803157288346883946748218246117265737951086175814614009342016806644554455424499346710475673162624626586296841104236480083141747354607875750061419956077984273439722106418134202508351411439522796276419634986260350613079003542154103836125208503677884609115183890688499408251894549495883494911563017869353905231299094870352637899149610739940839188060577018729784997245912752908333275807720466625405857819938485839584268461871786398801616031591777454709601653691981421027578752253868047563992610083830666333941783906249916311624596388335413878517409791970764586553271218602262908328015511154461360541579384613962446238658399132202484025301043988012700751728873345224856696360400574761718838129963777981095893952731407774232381428484638319751427260997213338313011915213859072168841102685650674045667791390600565558719589654843356148776106539110213109023113996361116486483411686025774291167549473208078242968155023320086665219046671275935432478975230276900486793098375329682210457744959234583191287843132135734557068101785711964846684406539976533740571481744882186876757332289456044647904878327038061622862474688155151898078154293899819063930359156410338536090935437197941708161047432804943718477514119674410027042049579706952869932151643839579754958382507656698384378908943236833963460651716746361353811881803526442854991616253543749120746320964275702719971760268546071207072506913040979897343704461370300050392685248052713266698238140344636570148756159392902133101892823842980680759844653332826707618884760103673768058179712096226234511121684207341652200597752141586598501217582070328148047982746681095629686561747885503215711707405274132175381620008018322892746098434317818871882097924525887752027723549469897945055885272260865414748699690436740120782072787134151860135738029813043832937734039098219533691374121485132593909636689853032474538459746041234372188523275167558615041037440318185029637061055348031816223763788698756437393159793153179959793556078421972857057497148290151765246038350972579108411678379870468567515594940856375681248240762542806925106195574261021114193907144620497328538526808235489751611933750245360546719999067697347131663794883452696792199997307437802878193516942107735549619973910333432955626727612042291117514239678035206679661467958193452147141521498487358602171019184703588034074825852146170925099773557566622324162897748633693782355424998891498451454090121519189168967040557235948916093716524632401519329832552373649289998108307563103083035103665776916473431891265226713505468519612449529905269702243857577781361286438967182143924540868996902247321032164928146393070702394364746831777877942268010515988399501259446379184692306575627455523295897139603287062258584387107429074424171565223154794014309082672243151261541502032933377091067619648900347611634682647053562445988525156871518441305084877803497235318862930022160402984860666469865926597407825588744650847254894646082867874035511962803360437912590813472788764257997319240615603110610101173923139956078328598147422395912768328108814204289460915339897380676874955495019088560760367301722393984020895044015760374190521838884640944527000857921799823232709667950310006080240157213117971463099031621817840309967286984826607072078794609438173953339497542888319177284470828276449405407820979550667649316937519445991767222598498215516126268397341095127555911627337083043826079593220978788950687027787048375052073440662555763282464565452509492688078868523076546409491676561257182958990959377322417710086987607313779754171426726194270877190240326332516419416519555381698702669051680984679129800941172960035237014053926939638342851607578694674337482676269168853146904024738443204683898919518627326856871291776714865832400540492667890176522207025764690877927150713594013020584338208227282386815187056092387163126839577347953767332034258197294509323474436803970344888541876021467363476240739286036299128549850426896984397882271777970528902032321288890553521406333698132043671853851907768631640512077465656098092360138356643416162660504403259725664487056914556789313814958092743718445830570019053672565200779089184800793186873020965194179447019147164006426853124114005185423245283886999288506573711696586642810127628768224601374186933269050820446875319641772472193029409626054221186015048866256274924800100415589202483039107845773971128351388777613099400023928920656472901409363523683507614317360844998850829840423338537480428047431601760630858768155253001499737782758663562430479990831819336766776501138651292549545097222242301565068209023737070753011253528186219506197824592336623902191769384280456304729869287372815314847924329742705215530492240793277809600037975142496124363163200634692200966499753887320564294546549968593879414374019907990726941957532719627895559781641311544683764755462911194762790221580629803302703693198834212761228939768273824221248477192226290259876323247831871614135053912034711402950102997413142197610950042843359726994354465993751717958835390825853192267743577080964947782193458015006709137783234622747656066303258377070836367769080590871035054089030727071833325786953091615532166575679914007130092348408384420745789742336535679495577984655994904367731826857881860653401025002478710848714214639454120743384062116665164035583569748654505354377137767809226079859058882748030066432671746444445516032969907260485124016647906739489502050035621793235179233580179622434168425374628788326362929130714401431118112672416621111145488643423764638062887764115196187188108923529014507940528811171321221371975335584060475231287573778365723133292577080395430418543458074946078822232712173864770185824889938620979348985443253210063294304507155626582785866168892822073720176314639967450459753054907069806531855869869412592965927011538919304924658885926840780563585850452992980787009637501479141695891468272921746005970355380273192036055044709435108875584675389081414626946988776409826434823576963330863282522336416248873943655726688753863304371533970324655471262650105469251346698858914473414436531859255620529748249616533087312026791179993099744391311002388598403438822925922071361305285662042591350224195529034992424896446260469277151441234017161921083564138917549401911833639300080032671250368935318315411329445825003810035651869161289806916693095336394053100500848781326571286894057965067312105978345508607934799909093142531263424301947813583733295648132930778065266108284551897958663376919280250113969517939566789557099755790418411880224707899305716512617452023023809531471828182436168818694567086286091561978432335497130902126212420669135741195107648835349354880092295139508785923035456198006127332299068026504071911534279530534131647826102050849039308893175864779419860235769152412646896601401899602344000960564331296233175350257726025191602681651264263532588707434453678211109204541662898466200378331135597936534781069343856577877522481122546010075588822480398707167097779179165096597707347390809902959337165892173308273004120974449574064097578918584602048840811452766478059264017556796898195282286334361613164320280111034121019809981634517079393585335167736757993526536176303296127827634199454815410787056843826272961126552154332389600697020679049425227138535684385915748421489642290414979029449833829901542468628460749108934840195107233336423150929491705193318440750968189068998829067319861962767808243566712755778707668488093612021824576743153202464423245195620239390966082907240504362833936980933327313343775538574010349707035832463329667017921190441252834776583028938704825018207425381898652355994161784021951967627400594042889937080859997457396524857891188482192544742513193921474497354362652086519369707751125971683083386476055157860005148522650833921541610550949797165599158541748716751692396711883776486916387039124657524606976627782122221318707994473559821566233178404954963838949627627885163137743742741564871043592908087899045112576959536336956604009682281903231428083434438515234253275312019445680058913157758106881267303475275850575498562614924332868752440916447543020354787476016463947879316466888700707154704933872032805007595597671427022744235828931774930999908056536263164347936948208964281487092279768293525161082665013769228745591859947545510800680851609710463231961826878114087087921577968630698311954028452381267223743865405164839498247980837530999652142693377170295434540467521814736510031473510972169877595654501033233680409050445452419254996901885965125823302323161404187758603606762074179641471108533070892755903820278040165216323126006503692544721377360485189803095150439136750202457165556858966968361711843117990905968584757199955235666654831645489647391504519198457286694137736496519682338412481287870427674336116756525744036562357431880853401806837285384891308833107788336293957401722804199247628076654239839397764083619072043347842422300661922757129191663431636073192050992210858256394987078496949066374064408964567161393778611488191566932191438802585275854393162941916339420372952204586203835540549600395020041149599433978550622475416003310189083991399180802750048572646429190313900234907839559558595537104027003989590899893300567633511697778612170874482631801264822964109124263824881782300802637291529578799098615855679419651075828734053288696282375779135639281144980665926092387948293484397088655969250742455318410879327693180056419868848667740031883992463803232565413228974865617604409586897748188513867703811310436618435455239719329323823432691631820891407604078197760748433197663735795009541732713431945053101588344618023627074309289193613976521198136043010167016068729621023398006574991067996214799885325477255994377647160626719276086040645769000460107319153211938147918755925733156356355510837757287076861046201919068439312311262677909757246641685062469081861884487429266513238810752249324683519704700477290543405169807576998952346291415128017567294572873182205682804765614857584059090354304834826923792971447634181812139400037679682307852510087355452213789813302897386901198464890573559838921353026834847469225564370184112621094150973016184216418496436355213320773782031642193425267205769685482919627003053507669137215137047603758197674539623619954249534985340588229901987083084378687051418309866608813170503534666497384469243230707386833899695401880367834306608220961319056538283103275061972895515230762683470558319981583857031535067422238695673385569581719554088234051069986000569323969075647201421000321369670179814042864480229733718117654252844134623542233075083081155809166863319088438716221733060491868032697931446611669633250293528155161766882551027214915925855445264520943432956749572929979872249467460337646223419544566416759663649464444705470718238940838931280557151648663602084306267663445199497123349441717617990985931222560827354007442427220446513191544313424256636847620852469506426308259888153695292242332470177626831892976186249531798531495925938266600211335355662331136561288275726770078194085936113508140836616470575197239747880844979489974389407986941900843005912414822483776223867691246856806573030135043842880534097430536540216331582467348932313026237381455864494695343778363199894085403279572869919602609861610880882406969371146716723507823937175273413359317237087038485996215347235819702379808813545799885648028717545451903906155231662454055154835450999063172698735478171078772795191479048896312830852148306702799339386263112205944730296929991358382184604773274198056044662637886524867515606013256483425915967210902858294533384887128480604312331476912692176721386545402979923983132040779894385007519678269717589998058942384699659307473522742056763657378904874118759502111871659260648299040441293327615460149277150007591487268283171605911806968992525057764679369624976388056059879749376214031964569821345413682513350729772350721833812673560312621292781531559349572427336101865123686950982988265022409554570745704858896832981780390510609956357221062070746173954831445802876585690325079204713417913056031617537433770832234683943944220347603513788714249019227799367851194494018306350564452250162362272507514103398389820196639884610919829957154190861389761178256703823073014376426033927088278728223121495062464458434172849169851282772917988695957259718237942902372588855859623289781535549309927692006076883983679509311342991811310444297930005377336440810419527030307284926807056276905272775663596675620617982799258911304574032120556468005500960169325776859637441578656097347030781446792929358037873791648048676656167792893300676918818720004528492064612590032968569504459996575616909184097533357180729061751668049097543632739713483481411157871931425948574976971259615652879963407118542303078351894081812557724110414240496443328431008555157187410793993931757383639823014439195942018190420355575103991425832017719909235486982007472305786637219684485314514064082041536281712401867573813609676823299824586974668999959872955090772271887860456761944910747441972791321930889038913758111448419616116187374395785962084839089188907589277645927196789154654059092344422275109893385533514918507766489147731132852426688368865284849669744226045103632970505635775574506458020880083000211015029024456961623065861048113832384437726453212064980325433176659027276484093566053302429819956502537267062485844267964821721445389709969175810313423585288325472206887614880972642446231496054658439115428708212619342558137380338037038641893145918818804836612294796613991294092418719824359869287645947372932335934184986791617071097228771731343974703144449543564348640980392542204994698700418175474768778810935392876806945018433264198935065643267035594074187230701519917266458226661426241683160338592659071718052014156329130888041716789701467870310461392820936795128962655212472630752532754739682909091442844913885686378439845415510217628360351310907667853683236975685898827016525668158820520981984206657865211356482140383487425747822844128366192652029313883913544940427501252998731416132224558897030599118802512365443077360916346431535170123728166053997895990700887585037404926266359808647780928554131618141011804400728376492834097247663957288622255038969694589236623016533626916984764637052137272088413355110164274308390482683369945777921877190693946841168988590557056236272785870022718733113925114257851236405349717958506933291555136058202422717094229036193454707668144663412766291416221861966627016171831958803632145153444877779781352441653862762710126406136561381929934606556011212690071828090502668986532939649947566484856792991172689766173546599104761644198581181777211089490282348635289320877641322892870940939997690521229038148668953630923493703378898836067714832486265574830942828062010275329667397670803750622064334009104772303912899060371956114025412483948263226019339544591545617424688552463076429608358668845455180439750771830663055740051487913463913077265869884800949150712008673501943834439865998302655013317212535318473844100109279565713191458806897080473435788838477170951202078430020660762720209676605066037319068259068708947719917427254103434071508014413855481364909565034634662713422701057344763735766587693061810401551230151831691844965014316722653216534027460341703843504317879820838574123561862225128430471622258176711707914260399722338213908807119970140476038635241778746841862139653036387556979283122668647446854025304970195132213924834571005273863091504883533256001178236125452783178653759353306958258786203753692764784827213234883566700128574786514252289664273037964593660156350274059210585708365750875775074004292921069776148181008078088282318027596086001299286950749847551491635357105927034637100796657706015711876885407531663912775862795900792704655235556789559977884458030874629430770974677753153819895007067853249712895159261720083712725211131860278356632393736300357648904764363549963081384389937647481392650473117751768040145376397343976733615546352895584928699188489471485413574410014165942781245839322196598283223038801790383194889212343433448312744878087968918722646819158817498523737427224376689062332343143477789120327749574764884528132488770346842777132842488026383240709990223714103512778472927419155482813777250944603383238647784142509563208991151139740568301668862562165115493565865125643836872417016429003117322845441284702989750670124227526131756640528623886199772567085875727622087720820864044782098163547282441300813207577953085949889823631302041608136530200283141685981387852685070853007286174504354064160920798532931723120516244804267681030817678177999259874289492767671589455765395688716437084559333569761458664253708848227099535536920082907565709359050526765683654163598210057088506772689033078481283787850097272447487064107148225860589739963073957899818118305073996848998825524276878442619585343228183617530697699148118632281173361654805243637143505399658914154304763241343360073235403330076028198633587907384163535380104467052314735279970842870760845184555720835522283319032546938817130684311102962333030055181929283687056935556795404597490124216602308828904566717507614852526595468937481523106477450219243317391847589605396255665127611569070090577417806153098386198128033361416846206697574367180546770268270293154269200044877580626544929006494530169732413490144279363340379218962790509072895562024633911322848565091763239958344135035860309147210226293876748382560038746082087208648441667412977587903290674805645783048972183441685297215818366102094350606753961024303786220966930485370830350162147628148045756491548700543225321323054620914496673983480062242081919743806183179544644639370990267920958237926516678510333631367149627181199826910841185320766183613915378880180523622203862486886646194174812640236677018401823091584837547821623816594854134853369012721155596398434700097967379087535669620170100471279243250218963846862930778604185884389018972673837214827096448883744020098895653525145649137249584556603707201628702140688883684065658148717313171544800003264076326529067489040004951142964769501872347461124638243292166902680313616889300021269377217967269338900706636292471861171703120940097676412979810519520118880678146302995374536629410985993172152529804186071528189946323986984861457428987417828913648749004292271253481277467898185932104872968047377015609172383576659754595499820651415311515897811717327129118023251597832864593077257222518716446785107687741803935299155161382980682237084005544087342329421745420210607707804772765909903012632026077373026048797137611349974740616692947130960197245468941871069670982056516254607528576067561586084719947287076479626019209131716717322027439586847329460450184948991323739391968422941034811977963416442370189892852662982561127324065927915911453641019981298662728464986171764848127861333238172936750567732029332481744107186749489670973531602275612772621878074879680024312682653996232888793924220137427078876412683596590237619514821300219113636115966664641638372138856861551620612898641960023712021076597579420862857520630263461260240346022506223632953732906961994219891413741309134818188418589895731662507396964639160680420459645927343190888056892871766979572435211219610595860133199998318184646512786439716287991098057795988316988888047807073583524238181060809935936632544262312220081806542763666131587449831967260038358887819084101331176066854537765662542546344518207581324135169367860537720040605377928707153992564820055268324627512863640499458373852180166572441319429040138833021727163114139693912717566868847478262462932073276171382473963164484188706561127277361478845424857691330360411653675592383730408769310570919113102206891597962662088635576597203739336104330145469129946598706657551003946453363856469173057038796167565975983496910672174867672302581639480015437822040822066293402864878110226386886528933050633818705443191288972224010605792783064050170954995399631398713130284985473885619648762178215045873210099875554911177342973950810613583213925227347465431516130003385527093508324336705178016249180343998380737547774313019874630444688956838308649823359109818328381829389825225606714922359495744672747205535003594049376685002415386411247223531573223544398198410175734722039127846806025805996094992550294625774153738809258096968464623143080701741746151150118670327357912544863014166383332233679610019020925902514388129147021026796876864961768035307407604197802686975205223357262768648422334764319010523470178894199529856126840704058501111872191680535150065053631441752167200605049279554162365659591377845624830491089901301536154055220829534446371977324371667362260271694200817119612577094642151964776573244148415440967508770407275978288606895148579067724549528797575497674407773778327604438803141485030727028788234267922642866784871877158718858200471328533656519845035185688281378001072248397284189419428309183577924615025839227714276087251407122535930380626099106042050756441145530652091888763728334180243856852679644785863612079765654611649880635370490038317528176543043647106418377172429112157349419930701837604228458702838660953046799037078598408443691152453516734430023840642551855280911634235665438034465779803309623253872874398184880842041174756680902404204830390291866161902265625338302962492183281786594574685675439229133192556289116850289981834607757919133357569261588451166378932911852432815103072671098977210162307492948426006596920186492860365245758061782529626094832068510191333927413981665675071976188870650647897480274760008764743646811144388613153838623232740950794322264483109087109544959449952727258293079391787429436730715465798514861131459433441120155273578852736426004821760246421239724435789409966587026984546688525722371046257381680839674992672768980940045286822731561434792804720878225065253841910673679144968635785788310718866766336247587828848033983003159198985148381959959192281837688783036240349977354013490626479020338737964092829694769298418609237291787988932834391699278239523236890180786213333362651637840427879104628871082203316893420878575282314488277420764705440949797321670353943453422441366953109814965379221865923503735848825277763650803868118704154110569614173797299551764161969911984194734891122670945184420411556679910357264668588454436656555764326935468647130197180728902534551153078029599820076249727575827645279971112819002770824460875465723686134037272392147937169662422988812877929294187073269539869742763136555900778852259753031744308470423394320893154631079537708930865806505148472527595610501687532095102380693252832592253948652347532230126893446878453324901750859963237275103759536920600433678105865827405388229670995008465488880621790578607776873302315845292549788067018257296351927643416488887978566702827057352103974763881862023444842903840826202501707036036965504164545840382871254599455501465089674581392146197684003162676209240671855243342932247686012254238096250433660737634451288144593990143273710676553635849346390132623975177504862463834237770395688511583491810109115225527675439508537194171912217277815349520013004113275683681738897666609096433606198107720820228721475634722643546677540327958896616831710613906138353770259629906205117210632318954565653145009173384964266607837470156552786005857266192673720653771911441994738711609218123066092704646197904918703380829066063661475754897025875589168657392107429476264698408069552504169970490233220941607696805624134708324407553711053164816360518869386501746752659980060236229538474725322206903843211983058668356077220942211126423340375643935785124105340405152478027792063943575596895151026273107095057497284131900860514196239962272694376971304870039868583826349854394461846790678334540478937403188740094793145145228181672424681752466792431714604063363607793415625662649477916109616548375986838202072698760886622621065939935451531796641289897912961481091574630708599566790229233203675356678861827174813986081339363391672107164916925874503222566858809254575037316934202442426020953071672321846461218151825436508489727668617007385466734270646381678263295371455409492813904049132182837601133096845099930848844213812182916360104723276610775645991639220869094305416970454224232178064066411396700240775759876819754985172163612207926032226267180712421752787638187847119200845282657076813150819214437817324130150562141069521404137959315284705491404199296404642293639368958997662916199002197324005904973557901871825187612750213175515582310363777894777081201826405047632713501245894997846631764910994246539079509679572968991903041033914346425788226657390281318351941738930891243249116971049550903112331658235753778283221670815302702359210443963893222185407512127725017147913935069145645473577339791312128770096487518191652221171986321195428769376249139043975647891783643476726164935275596294155108359755475547881673406013506614996031790477421361957018298200597110618444449336226838571105123500034059989601975754237015060695606949115863559432292290323313104699418890130638901582516632882129322851196592355635319957845787749674465864719448548157422815226995879807104567835713137470434720712910052351923278017891715694076584662005227041805939265885486967726996282420612729760145771336062520830216569120189227525822729201951305244327667906689848759981376658050233251629741891098021871633078827935200470115271353953166615526935870452952708563976646706527160898871644106191478406974228530442718117470958753926039711442862021929390666776097138820891741647371007229168522748335219835795476388540618002378818258782854117358845457108569258861712017419535184972386550736145835085857724832133109077456894845035061521730557001477149955965767406363325174169250304542105137602664143904741404303442121283968665944121048696144681562092575066826362126458532981536650576826893299448229366900422976871014409823424878673055610500847040114157454248546363227927735816951012685294207098029386140868943073085836484575011941457076234811614878463789070687449814039542502655613397520619033310574715615638548322312799244447009169913526861313479566935966826036933662915870331240001625245757640006383892556304242437101240579231156152253139554784010402740799664462338963208613410095059793737232059396808752062376087277060051837241679627749133248377182006927375787869923073415265774637412696934657708668486523973902426173155101462826876775584533616215288491133682762310474609531240636371392959813842026387261508101429417807765586856103475747828039815575972986402076958883078256650328598825713788632806296583823796197685436552130242137877729338320830290963459336279542601040482288893448924347859053784756516696173685095730505488551658547531852277616975170838537911330610408309779467236671464463854929695573517786803547468022963027835183046971652892769247359928845903079174824874212280840800550926193138406287512538902477419003393749115377917281031806960303489139656548995669290874058835838341421999616354285936368179244335238403202311565606779654340241150618955593842210175642853577297094338111136253172712915675142277325219745523918331269728342882893601901944079333714898977591955475416047426332930310208783034023167897892466443825817995113730375770432758834600828145059468193090557885536477129113425691224441427998052766066093725507897543117186976381037189369481845141380216866566729065337406300428925063268050299848445124450966349565835376807751563802052308576225322129973288703558954632547651234773595451062549853366699248732870784609356692573246077051101097956523918356420993867090462745730553464620368184089360277920363855202352769260729397666281651573712351717438541977228970580435929657513165581575931201117231894358195240836352830188734477271852427737613612961457474155985606704449977815927794505757745360499728743012686822768023357829244761273291544146699829429718626649970291170774677339629472716561047687731773581367583662398809433123218294835727255497552487144063867452128897855997298695082322426240998621832784624293776296686409011884784447536858435620991468003527506813505262400941431568462337157050792980507980678094379801716517251334675554804999732501955049110480536517854105641204143527248659509623027818782822715301257870627722147127669619348859321066419391399158630012963862937394350579379034557004608620904626654454620243117811585777139193996483191588922856075410659214429436580732431716924525903106572534387723235320132318933300375672251261951502651909071995922914754090669863871431357342160308214188758614552081114717567672560799938839309907381835856117271784933267611743127670171052980409541270430622372256659138255541254503158421752994709850591709641220784737170241731940841652457943784425901367754845323231070510888749828219421134933197610299029448114274661677081232861337358338679350029073550803800357388053830397951997863493261828948823216816423868323343614482180051607414809009009586057680260225787875792401994761790180708258084183382940963579129072448946159274835470458212446456510002717607210828818231946411485198019742705737680132203287869750972869751974940346730967446390464200767312094858958296937681976268934581183683289047408930914125886052414760687710453956857821085782394593470674844147824224709556006648025612645397600311045619268926354438854151002181898059904044897721919390356121568457721780892996550369315960734253289064146115747497881857100145782748583275797894027176119315281240960034077627098217712417295823376589963497448459066672588884972124407695136862281032529431454882155810740235258889054089216844878920370651174464009918384217506529360535419270069354290262117768090444496618642905734739651230171081733878252421254431120788932991257584724513494961733923085606343833744213834245026105545584458733446197903278415884268303122841680260134551127278888781226385995807678817153616650529018936965423684762635305309210509646323451804234603521104849744777654542669767251753164604060760541561234828955550893110282201956799238650070150703020275819494264783654918935119569566380338333107628062729838578939824261384396108346376016814755138518654382628454540921214349206314736667281003180764932686705332128723443239332021795646717919533735815954977642320095437830761533539202219225133459171058124362254551983213836433862973658574411098809736886902405080687278738520836979711701553701880494763576157318995812555050595209645342023743969215435668620003078615954706547667254266876623023622979883049898794311754085558561172476409927547130208891927365770976002060852487328649756446596748408022306365230176721581762995270972640879673528181112099823945860578511793510659615977353352746180766381137234764170475884435744069148066223209453887861450166504388651861198382559279728587697944981068647454197957372329933913842740998404446435027342007571910027385101410053242726377208565833363576832373012296995929579092411615777749663356320986195599666762345660725655697569989644470801605638075181319701835910200502177066089419925444537876963812512625831357369886607185049394743130900778368033143038725082162218637203401566538568483995431233589409130308414433592809181748096438477462736222414310195184662790483377297926823915998752290918274242878638075477627317819646778645553076731875597155352143243917849470841161065019830178654116617706204310640576197597812308312513004221744925387704466587224773422778143784844013234269169231893330593324236447320372112078466721744190895039637483723674059370716357614109336097899322919939193016542116645245475137092298761688318010974687641044150137944573900879760229962737683633210454412682219349484631496945984832009549441487834111601608367651292220509459395463282825672228092045867124355563428807604288326364273279817265184900034117386773366363169594947784038721190902029560167973848046853866848920570042499206810336477492640388383916987713109923289376184737839550040224690161023926968947128296588281780943471139600041856025872491948026781369084697851262386962928634740871782131128971247602488957333173483585585131739580368418815022600028129323281724278691352933482911211051669541856181526092266285280564928364834697094070267491947465869674030404074637294458829105480083210305548599536070825635687956185603854915609151820307424497739277361359953453681910791818407548069434654593666045331805193520919938919307915188858750294073638828178046912880863429605391630647913177418534968861881865610458609694898312142467388789311044018853791097606673240334675172368446083221644518770833380839601808458890709397834159922697083059088694934594684362397357560277285265038827674052312951694657270798697633492665519080871027395946965899601602905425130533406085005496180556908736267463764422238331045983337272986406065268783737879430770389567936162512082755395457925221020895430504764667231480859850219068969652273770805355468977295756870953051121685717150254059752722730905239714463357463518150694651529674643231627746627657488669499939023606598204680774924666186980582815528536463768362511366079012128583982023985189117053242595928166796038054079560451360459275485939432276834768231091266768956137962513844311786101535486576633595121653802494701467305659670521166032155219455928537681672401544679784742276964014080314899078943491176021690309639084084054847311141114760379159025492784187685308981399802492909741601342219560141001169291336624101525807757941467185101546900827468893258415332747572865860099242093050185565473848263821500135863910478615164408130307945909174748903715096562141894164408729075962322844222418208951323767125736646576687023034012393084560840556826285235734672125609924832657899404707755828785711669863331040726117162782240175224659879218021818612468961312143193472418516338728864564875375013932162717355015283374781394748950623186280485555674909359617268102181175615702123968961665746896694159019684704461503306904510886959386893033723095386896039938573388587631021721295159547727008896459991350972653243785749449410470172158014524538263965830902221469253541113538881645120176033006384666676529460823123553989018141986806968840491345061004168188535374721291228145138278307890217179417066728163288976420053772355282138574574906160159939574118911794132247361761053253056324655820964938573402436183779981657343722368789423252620099329612252149834188977175278778190974559326030656081037591707709789267648851612066654846105680263385002486141108353375907198110136641667892079960623306090892628746448082468494159653749895125880382100832411064863448869981054488144172949712532427469794445415183691753145557450061459632648491583448218269337913025502619860282513909434623862745772997352527131803953806954315085125751688149151416430745559499916131626497440050782600941655074145028149431640545206935810553456403933013341646412152695479279898866434298964027496659282341945142726191248922179261819815559701433245460380806864145250251364353878790800790619363342828396370888334415088076293375233970955319346619431311140608649636690669916440268432328264615724049955747360441493703189644252541084722192668297779991459762993773422113613179221546842583630256500697652751633137016823937058521947230817452455621771285101720470565313256261032655918353373362305440561593722465920417282387759492604637127853496452742631026953872629371499341133208152931026477759775548857937863047309000000231761643049949051281654204690170082307493807083362342981298146148171894730879855285683794007317081325470491744990456028766615860051768648361249714044115563310878321733434907498223490417336632438546043686950728510895049456067124542417336367031699960440619081092761801826048468763589392639753962802123006444644347355061661359304589297710775779314866880242480362678781893806850009665506062907146663837140503840283454014598189218916789513788160248754910764387047263910434890849256710258465313838283606472023728784455122417152847377112091041368719339872349252149521018883968514067791710691175347738410028506845338300203312114069047681274577416908225049146241484597843827245103233403401652708349345791889243691357173814879498386857862495294224613461053210862110492479412246857213959533910340673348811005614315695547980841451061453281159305234366552288761741057568619139413256845326420247280039010843439542068397240892138641628282992479479733037691418729403711654212178523926196982096017209171397661937449765488876747713958490671350833190494627010906496692503625190245534627685084613487976816836400987821878008328907585191265623678403653026926506166104091600027148166687662502383499786796937461702030919503295176047375559359661228375530129298569205028963535724266525921895113066831242347504158208992166199557946179333872246442787255353397951952958693981573252650368501760401572965677301775881011280546221798966763691789649536524064219060487972038262508632611450821770456566477661579810241569274477540026653919564162929556920531838549054987953185550424930530626605984790362042874087857496888253374195594444503962612790759265571829408052036190104459429548640434440681086272372728728259423242281709419139526596264490153511710752576646920937781666303119219368585427393032474647627232614801653055067408220235256658503029561830834361731591918493321123489693378361793611341148505133258894197908802148151002196030090068540733619195582328392684885832544593437567815091581481506375755990736472751297351280754307597001764157932456499718706377111889321219027657361767338670088204794624363957748542240358883120206308745397868962873769177553370484067105006851291570237843911136306106593610737331598877691308403283336227308829037394806941142256365273068459162005459499363714353014741170914807678668380939125695064818587048787007849617275608955057183216767129948964032620332729008048003021770366939456056169923565391230594659701877180247246194614024344192449435454404274322916606156962372907645668541451658347035533097904704953497721577663823515671245155264072036860817501433261275114656564845763421559944316405118153754195798269662161247992133923550236364188051142517985953205322206279939492783624244182554879612259373284178255197087316466165896142611246228020594997234315405093557951942282783942483016806570179562231185264286281063133633460027308836854983044789841392986171293355193628743573098149315680054542099214941423408123268398093211380025086430125504071650022396965151709766006931212893906867687991000895072276774124986981676337755708657348570856533977659121791353216539463214946637654166873143576921362987576354125695889238372219808610324467221796436931289295456495081842089874098934431553644286209676950487137366711787772146573152500627100987057864485908673486958986116367508220839351507900364905376945959292408808233223125588988284444878653187401589069293287529007013768661428166740145358034278521255312572261847621250792820826135720232274406492115069153967052272428278093675617034552586036322986784067704716731671404004296986886174813807012339448147207308588385610907368026344606215928814417773755944916215509052880075675176338818562529512567817800894622118475687292805109914618928737368596623211211966540694260658349666035711623013870142747262407502768873585431919306719033375223252116530642236444259192017029970771453173985397069622870257504981368309613251755701201552506402871921081967278831436132714073529472476600923481493546766918122538705685333418665808568092717189350873140373379381249804763145516406811184923784709761855895660985257559277724481060272339956681069718239854344917311890381661682791546292052942051199096504104307076876445885753365185722438342372323558029409624601986081662525996411980203276595916347105313722184792632518019712641980562540462738295120296185100914418101719560028043943141413561398175465670368981264135044404677243529087373863788341097921061152987385774395277722771222689189323544661233771796435813149914728422747278414976587653711082149770607303916956330133265935575436349611938399008683607634990829781976775097940312579177495780188233082813473441511538707935158014997079243564002364910800797819801739068565899957495504322319108152590749250762314314626000056358732565462648325876167160823520105436670416318962533149124478280511568654960719697533829230852229743572697515462470668469282625851638678314176229617417879337610010281363367557848241004626682694914142489149590204107300149801462757837182758236657217493945843960631312331050777800647864224590883104846448021705856767853392624633043189215356247254926838587608566734397820935194284839595017246240929404193210044088533325050243015980467560223676559742223830403145709660707007315850320351016037337546493597811634547589279082470318216229284161971150556542481658043637677575882299227589548837801766381479280157697669421341301635012704627288962512740542605034319733791915688539476442400940092224130234658504950307246221711908262047721849808650845976459281295178012035293239290582723493326400843402099421522547395653707358910202498555383399072301817784203309343704845335368587863688184236808574568850503763475812564702677516793090180969136626212941225181789545746558197536203799308279828463111511679779743069282552860868572158610784501792165232479421006020582187204343571025499953841325955664348821985714856083889686680960705486671691046137975175969800054237705469119820138811939096808349703829564809841817378183396213922205614495325178028625057093585734981692402302536191746027829182294735640413124055848506644744775628040110350270999498449335213712562222673817039586692184281690391087658477312172717058677642273930448185956297849748915015220119277186457977917950963861334959314235140988166307067124815967814154936931593421035675123527237083383320105657578131110748912109591015427037900340139523760881117772866242337012393214330707130419710215696163186991390371043076646895642079692856187792287455610222151132277089836383503922159063872900397690316585434677099119373652307341264544714042928567240938062699372579962333272509530309371250495731019790478948900105492787735816373809125983514011101516526817672179828858245867697597538279827835504948016540315671267822214733612700414288020077259409978201655677202550576870834116901056075169908318779773592374000479161829136079452723065207525796571763990043090807350287561241795243665441010065401171401061823777303802982950263473964351757723403965211467402504826673772761444302889562258787170536568656491548085358625238207554272823343397770749832884643847749216052486678980371295426238395616884035056623952696603318721494917294059768859249142012690831116848415930279911170856833242405401767900215072407443214192494365086547219576006456250602533654466424896526594943081216128254948294516136134623773513239384510257228799822492492535915643182004268218254436530554994653467991824637030953274381244252224078662720010079470270528419532519390340752541254299373895531849185640881957912591496173249419315018799165384609202471064347669113603342391303469436495039534708687266763671947816152767606554759752870165361072063376268449959382827821016103286551760329774774250134990803588295521453252145502489574199844346629214637701494148924265219931502766353750806729762473531323115132696348754436864902150941860984387049517405229922996622653256763868230168162859680503563618576533550465800315117051164781505212245068549906894551469804696131231333902538408070541591647124564775281926080829508201116848486890442800592131653051610223927837442110907397444146308031008276651688170947751244938568388307067217356181195907416853282487710533009431380786657768840555155744044490585435878896230101223286212727148110550448097135017262485360988350425833917504895825481484272742116596496196453785799750189327985965143924575559870489112573749254019794383175432690684949943906265321942791045490324353567314371189497139951552428253339762185805031696640947825524663104442205866955016236981289674402362966949965046801234670337871985326580494213160279712920573962307977080837230378365060242150446123268961441525421953446205168351982746613571351250212339959451051114875948789634120682985497352934218892786310558716675631536222773206122031708759942207762162153283532637736026889158006576629250602557639614595072822184321004379812665747105240033854911603881931756625513373844072117576855224402402441437650046886920064642567041263616037251222766075509383592294251048914830815804166373334493544701208120247178404435991446249121591547214355463477896890093784134070233604632898075038740522827337526742115319271222945832350606918878389703647263303926135608945228710867228426847618050020277575511660440557175787926002210413199719019237971825904290949586669376971016713582803655417858292712170023155113656291747638850141224310265264040774658604798135741717902303031393376757779742028316989510735913109668577465045790539665089485339281439215649468042280830624742033526657809130739942568100381204934792951025020511143807047411750101231911549313948482795218695232777043485274033945909019848067621787656967222378087328313310116169701010192154285749755181006761635070282293276853287639045811578422505606379167015652189638146484525115288038799411649604954730489459110037914891794825057265900875413124627659105305116157565988027706469058558691141950919592918568181098364881689420441662884815881092694391463369612116573535894564236468305718176002049637019223810548785492416058013175592164718461763572565792696172596283653492839492811240546152581038962250837653977171033472256988411808777898229196443175229444232413250746706979969498922523251751268331914566376949027189112200993632772712163051038467659162389868985476178067110308624477351552705392295940669329664046758241340831348866182647123179543682193042217918750062574817322519128923267154882037906013870421180437034921112311627097382338117592284644508357024830016055410941326031893329972603112415567519883817058395850410323758220212520520773823437074960742301202282434624807275542898785755908466907925873962142704304968998702856144618256434387992928366996721620317912489925910799962056526837510160128845944311286477949593182346136414385621547566603273187803896551377418977625190918912441384961716995642994277824675877042475197018197889543240778583579341108952868130206196358868410333048434620996779942045754336924628995372480681062069481087454361982002848397876673370886787856513970093239786748718059918828125910001200253347122887365010832444004095078576043429736019363792841031539756147413687143912585280525432101923599333756875337790669678109657863430137925729667259292693620790185902840855654878080454516565187865908819411560690381173341344155145776411544426026933605126358989117582893668244055425411318328427959644011485257142821274887937017442539670797051743868359032763914376877381327526769357137297216223984145960452475183124781175266296669871495286688226622547169192038935289866058873172316158082299614327606862115147115434048720846604666896795813965382985483336069260961460082531117679934335393460992807616274647978195053061088036964316425004356785458699910575906461976303631472756678117690866747463817808895114320391860825574000865166778784818101766705279093423353719092925866657620567877784302531189058557181552767039050556157445484490058713050746705279891909800936381433378222147206833589557848308737978619695168387048591781573503299276489260031558422112270058466138726434581112779947248736273571985179129202165758311181567656854831977077967066101017273896888131692774769095097380834258858568594392647160939088756401723752184228012989146777632008176747160581305269224597773468663009943682387247415585169184958412598702674859600302058541205363057664496115707780515562831640395091531261152999091886326469350189955330404715091684278033445797586379234455464811435224980464746357161652248234754251127641709842253523993901846443448313278714192928246262515319470250551596960187118403238782073107848433888984846065149043332082336358000462552829882111207902906023883732619741308237526761945510683985561685741941987583115605790164634062072166764242309272498399949907483046407849032255763003990816717475809035818966304330247786829461611488072867434883163294688549032140518576751422882195572132675060242592619517577501099844215221952473246556746940954896064647972264604700153803530326592951695309026473295764482999053217450679631205577775852146964651882754912161101839703906804367012027135196323940543270919131676867208308029742527063549979656695072577772345587557714247599346892602299910936672008715359928392012504616001804008501197072006785228331906806236838959664410295664593915695845810027613094133833091722134675089824994133318880207527384308122848093930297735241678654556259454792695500454859043209082177763733013082544261734365766643202998196736286872181378330938710121352304519242411893775925784572481436023975073967649548339699669387231262933943341817075742134798259567247089580933367038248177401047624711475966101949113795255688495126742861215519891972711018573280520396308115036160558044438807704659177470593341252661211718907946378838270729022190946159337148089686187440398234505996718439151347850709776873924277778979458747242732812565270729147192208085128658542119119268727676676501402416638051358702120797134352627888706398378946013021696514082603582304896026320471299925950658749576089742347671013390863862971372076259580210873182288169565348110261216863595173411638815950910281202320168737109024640334577348054031245055627255125256581872762642438453809257758897239674193799089152141825320435219587042194970578262121859667658531111389855480624221497367829825307028838186773460484664517679328016383703623595337075492726302601265290145014236770206780473589899407409388466191787262660406957639832497937395330054189935668560024803525079226667149803826806844383887588114066238616686813650460832850602093496209505523510476891367080754634415278449482254663651283062329472172561995681514585249947190199612611530742347271073595316089910108325115730590804080688884145373099958483060577506393796830449393239562933115956205290688407673018219029384004242731143554786893739572401142210381470621895751183724882676482148796027983828380876552693157851679395370485156402199831323972637701011355806924235696813003915508156845983073430849381426619727716599030466690243074999987190541707186584010687472772303609943474707813534972170402275259251656912666065482553713000670094857936079820876860988313880998346408657447207550709040386212249447222172515452219502637231811316768776945269754810317033791110644693289343329957408340859066369735403885488392566383255769764490554546144233820751600901243394638279817265488102898005137746544926825181288676903444338214701124161496832234482448446925958018985395618681509532564132314333400238600668555340696132127517230810465477858904838841217298839087055956213481784275306435595977021708745528082680318947806436740635190934453305457562625070913042095863258346372783144110992786055403126948306193575073572932076909623013879204427794345410427762882919137887133916408653802192647512589307530990336386799511115449418640628583980037265216355628439264542115758214023796346755849979185867347124411188633190132238870354800345490841909146838969259788920361998979888308314008089803458987235093464803231311350209089371139191134777563786561253954736137828769971695722645911736882972113651257028642167075368999872331471000775724164267267481331562513905000504504994108372530510275379669750843747257028070771118310844314157398548534864720752922817129586502555414158740437293035099246806372283871240966982953171634454046960833908722683160961333111481281753609351139909657137125669929971633144247147725107663108550724814622830285917986203652566351141078867217739027273514817886920865987294814047916601143690879703980056785698487973739352278129569217071013255589945064814281582125059942207162206161727260633689500489777934155526882038065066411925082334288969680962938798092165831254839940977916589135650543480877995086353953507139409467372265295584254098809098750835106978374367713106163438206811810226293187777283062250357752235663983208540846760191095936464428518125222478550616648320625977991442141564682437170990100242709923356817719217577736021359754384090197135654704832612913364692520658199579225586550702350961949494358701048526055131192956739107134699894739805261711747666831122645266159770487085037780440072965411763717243441795790409832641642390143607943313429099276480547032076708186644777521217920276807736580140443528240108160184200883328586460419116872774453282761069564306590956366550496692908968584150801646137909393532495797347761346239335135891642804770761459715274449490462699470318729716726383243226826905260894383167149678568520563968615108643163061763059836444149563947428661610430501020065104650204387374513471839378604586272922439345879951644836376660822319479106153593972300108124187906941059430574023585747613484672291363703316121312299252809213222857086256648995312964887006644030699615644148937193761865105670330099040799432582535015500055501364500201602059588296869861127520408856538785569010736587983773393440969783598619287062810468792261284653828214363501089718909386432803224884534817613345000827837686033852489974944724866927274922926921830244301936121350778382763824151496262738372888001683695281436825696157329560100674602587553887112411650941263166357617736170957985959221709976812242543734446069864659163206606709541183509561959693675000086607915351628844378941073076588389399710839078074414208664494270732607486139597387838179454755210206441219165080910316028131434728322099601712474766323379882488379490199952017217147159575553606098205097714166658027670716195202191042828740498485723672407144601056711413777341295551351919507132635809782274087682825961964742665713345121439796843429999863096499673510624955626395592731756927646002997771476473117574388395171588799901598834329548621562036002535689619676986971949879548238110496366074787817880614537917740212249255967797819963461348910175834515697410674222721114460597276369550902038908418925272657517541220322287608929576376324186304082184061287237017246894906374581536528997570299242341453862333382680936913206343008298140391277035614432137829069061053048362834707721721055559683432228045943117455063227843952113226009116503153971266906404589076081845699730661778781871316956995045064816967770701105926483134073080723934202880848206311810371241417688444368553862096399364025283940135503637198524694040262635616819903177761132010876465657170957825806608555441555457256801274655088560331200186243776692804614266161145087053064517177151953662636835147101375228074848467723035175421157658157421683843107401784704771206963318748647202620006183920842532282979469685747809661989549013884133965237785705073320579265375557282572272799959247060545612053502608207031955245399832334817205975512013605020105424778038813481498438885923217939577804365570826676282384424712784904982060508552030922987985055908066535593207058312204500862909007515897387074793658659890985760441001990175199657849412982001623820698823294099778165243712093495542436130294918334233844080544489575681072909375503825277223286752928411267012195700340766165366558420846906115865369664007711043508517845850464094157614299720361526360572431942765607827161138550484897583499073250912038246632826149578799733202158497992496013783985513131750652626653490043426979739127523770740232774989226532401757313443222892758015618453222232506588324713640480477423989828032409455151415854867097925596020614497217134507945913234006521137567113977452381302018840921682535806039952978562490120765831038456373728388656669493616529371190612508796247636655952337911715538020458627647521763439411532310645689050578760293244613612118320835906980566879935026295920422208852351838542230111754742281607923269991363945798969492433901263356690662583635344700180208792817500905788241350350999956734518711668267420868182207929910446620230605553792606845525156651383449613989854160515067972486019758043591025088231743914512252053762160873897994401661598659981445487941521586418363242953490703781205869976038546201268374000503783991775264501533753236916306340056822500834816599655056563456014280388584718260116392402917719648647276778581506175392538934809418994559824092795136725175569162379199293192313026034839677341695128391708752803810745762306935475700041358665315319788443699042666771375645465687141804863702114558509840096610957935240119126794421049869546743147032425077001954827594693808443723280748482567723628591211120518566430547912453462953749744118734407656880831395595242726398987255029969647026650848902543549021717840094751502492248557512360448626416467413814481314781636642651728943489886925593381497214882662691628155934540211448331402420766160650941734375508091793546017362612409253118178463694191249739089344755192379635015126243481597775582964131431508067573056896489057820500714263538024564043047968375149220007061999067845971169393876746917401359860189769429059890390146670271944808129375122498584453572509051956739564860659776824489700112558040517316631093624261630392751114554536250188865173114081410250159717862426578544960804724026092317946315010818768376169857174293813197208296304118482606988777291100350373589842641164052624232994242339530537005160122118095765989382011828390992609161657257861758645627195273482088719103449870752204241946858209372825748256046578340177063846735948932212158925157812662408626377004594847191087833216961221606597209903898457814158502085223021477233264185066684504370879930638382197803448102036958108718138306350729795191697716970662871804815807249118938378113273998908900296979455828288148270395930611229231998154693084778474534909786439904586709338476582384931619936377184815818635360044727725422951900951673385585610429504332286497485862546229596110605855300025734114775721279775751971921973134298194039977955993147816545787355426291219209274294096844373132456359731973708017676303230696397693218853448940708133115436591336372369998936415612645586338744322615636232604561042534808253892143290680985202718148892692903316945792274112521696164014078410613819878401622729581826948965837659110907370706654819585791584943137829901422199375098892081286536636542271306880340713802279351276217369923539786668974133080815249707861778546779187295784548575661190458612893450427897701031311460824176692633202679913125101464011833714455834470772616833633170780414974496735213280888449123885753864960401671102891429827240149994161390993165687364444786551784090936764232935321801784371066073857040834216336236113816631231245579913465317037130420736255841627474192964281531125397933630178715449689807637809194929030771085811537832346931152986372352754015828699517617508760372080382154479534898142309788518436165496528360191225553399377234148972968131440687736950248013577119586265299931686808485953858351674700738173590370727399373936625208390322151286341349679065350368046508678464390765983569672728361757205918421320105772453093159238856144369784030822382099045556810128109944642301610949140040121187242290067657362939019428052798837958070552384379243811306457436205604398785512441813964676908460897458188864442840731208131806561709172276255317604232194183724200346870220364288721240356455425231292265353794017907941636825252887296601260205532905972524390240909620372179858685482035218045891158788616613919358792762492279820487523200996928468607127361516245417580122499216963256941819759230005052935034009450814397039468761496702590830465017738097045706486689316543692373739882820923490265855444176914105870047498320246566364537420246361589291477221524628521694055534750802922508321818015176749819912490777815352653101039094096281484728902831371375296044414947732117407128052138631576710508516056707625677123779375249153450196600338933639480010666770333455254776768106453046231244537015898090353368503105228613158707700756156787556168301918869964918741075537597295225927969001087607916011034127359802296328409618468924347651090180330543827356863766760868778343630147019232329274222505810685879741017081191337166911847563952346538979018162884825599924469516563176430735567732940687415814199111068942204659644504973138513875424862182503011309883495692094820717931062512721457801254841598530283453885705728957490290001111279504437124490954950112583630882549160413198362171098816040415854320913772170884808072210261099757477376078052910867003065782792881762377076788740941651619374649476241341083230790764558442068406688103280466197499277770157658594289042636126626957401212358619239330947840408176940058146104862409713656771511282084927259480160198011519650682231575359671158435401962005093490178160892867157156068809737056992701162208897921922102283985863326106688581641185500374026742377664571933636641127471175516458686154777008728800983205630418838204697215298659849469459015588588551532132646940500823957147520266300896827491500011589838083094165505162206492387983275294371968296564106089531325421024573493552710770838285347526152560200695471231559855308689386574289075491356406786137101739910129294683145709700702817547272063924267283632404718390758559600953738458347701327669769167203504865127037038681508659095373890838437551912382768486672463113975758187115202993619057550521747684186036238576721252663206780843083352764239731166150647088678510651925425414816080693004586466684135385646222092398735760886691241260046389512911522625262083541101717680719390379611118649810065416983546121665042802241111596208757300748095089356312263001999833789398227599794367379207401133010734089224347749754179169942237698465635758629376601683822592925916727479637178223775607174629923702260610868644558110915503847548773879395002807139068744411161431928446848358620343992740872069101994623360390495406525013303207795349763991538358770901614825370614940977004633151643643476821711097521927523329245465118266339488796622893215452496153241869381355698245333130278628153794439472550593086066204906193777613795121516873266205744822600776001204159914921412947943762590327989581321595938893332461954147543960129288663295339293288829358365960131088910435200502135399180141506590235707007512873840253319671223679896316687797030243076878703301915618635038136976937445955883811616264284201465615866945582858072868689302641416522627336080557708886558477392120869803651089680332707757594644080593316666420400781261712955954615234218551648229172573564169775128311769337594412878073183709807144779263812043553085117093041708917166645287681527776441848210520888034518810731979744248959510778756097763347185635181719095969372338271771588226922783442000265848228350341828561138550539881298638848126483056233534632863046157581997681562033280942836427311943301465266597059003431116864432231184769295317250509471397618105461876524417161430352520458104637460673491257386203476318811362173410638289679459388856735293428607268722905340397812591034118886318728172762680487836324228700420826498177243320856863851318066211014974199879191690000377356448020045299391158695898895553929421998931890316636642276668856112718849839831770913330574450604343256956338603894394443928843682033200280911944097299171753250752994108059258304747637935272419839395674187177893164551018998484139559120151597628083711484062508570951153028818050775878450054158725438855728369948921897016042296611931832325796219126764691557062488810137760014246934842178062773303509154930178822286194122648094474906882265767892645108896648771429849466195451813742215864384180048685193920542744547095970988282087206582233714336971363845494994506609921019627813847921447884600345662299952025192724163408715099352561425163255618984109821262581808783331913372355119350123314398024560452748834150304337361300267932183254362255745718367178457072672142723954989982455810850077132291127798254605653456987160448239523661156320255128303043332097458251129046208272029559788936508856895024943527423626098751800315362214934720662202090855191191682562054527798876775055366637093559839560756613121609171417113824061888101845582624159579894730441388363433983760293245093290202784473841176156504348296615075419131870368378228174323854387162532597677157261579845151469113600573883859360670993975301023092949391292360215923836360696161428334830892538833813371039201153928616584380105615700791238567437683809355872443948510403343279837547125643979351332878045145991476394594043361803082557294252661377717423908203316737359944856497660422162357434605275340192356842694321367303493242867474338126031273318253328647423004135843465639755230370753473320627748544704593398421925138338729183008033482232061239707563742221768771698916476122018660313734030997510729233780242025074348939139763772401926643407945846669310210647278916807302733029854492336637213303448249816921263253230700686902489058706220151509135176384700925057483186236674726721377310214172900655969832211274349902432618252229276874159433003825892124727046742897033162208939497412335828359479715525431336016993409394500126813639816936129791357973161906588737823378670994959891003705401931425436011060647269802122901991192456484001678509153089115906150253539616238316915938975523088331417559706621299799445785870023459161606111345703335912525065603318135739982962086046471252288007958452478363794984437929018477771649948348674118682104253902412666238156247010172963394567538665084607632585282546931120787645414006930934873117273214895595458095554231504464182958624934895845306649573510919835611891842707658191683524966712355257227757252442159468243206348736425915680601736293066099489348431043728099233714092426708969222964342614830161987760382686786601227309512661034462562408869230148140800992972135262269234155488505323550628610016043940515149886843466373050474034807692728113709061118191772391827634355158214111324747736799036357855959669336469512361915227136123034591820031698029516117765997159585212084545144389327953961426882668662245170458390239512923906421363573480597281068726149726079029515023808058915297354026235840222277341720519277012173092652404644585745297536191254337962726314380898398609335083469028458243095842215044673551138322733077630474211374905392238340139544938345276755689428400295199665147339335211899574159334569714811845053865430920634456039292702940469413056869774677154596404844500791765629172762288888452353675219895847279698294424878538470138042905301552971428916208129743336084701277465483551789408334475617370275083159295917931558341106976554091898940099530015147518160953021132463359623308500180700808488914768268649319720045185788574776660666669521273923757281348774737120435670187769400476239081705697625166448195403627533242389897310169624328005667218386219758178291111778804096310205946757394247558841518666792760498947320105988617090434440515630938528089031800372619809476315787037823238554278599376275388599926333552693770670639036131718231219130524332606304149880158352634091425777452623726926534094702483087139403543977387641886054516560070123601238929755468040994784891172156231743551938121905280249063233195277707341619713480230563145929228792841588671451866018168629783473693615239883772152767674380325400208388561064718573631196041295410050275139043879358525042637185443478909275502290136996803808513606982292988532899002627477043740230184812277539179041171881752188036496537615200737939179905678621127745748245859669279896625930189457187858687807120474861136586881921537383427300980204951581338956298146606848066859417317532530927679331940679110097982615248373717974246668718301602864411726950951214097269991314825306333326471420948389126127365138703181330035151837353220362574183504250517253883546174651439298874547287299529197977808669610419831419123242712612077234084227620344043508132980729784626662559690481165036114803659293043923184243856243860237206071106606481655709074959258388913523807276630410414891214295601214117772225850137879989462882594515890976066263655416582319061098147697979408814914208545442066018160051568878755712212884317588105792144389789182486424363493363602809644293425993980858461201008885822474440683007151349105226535152532514593251828037406660115666503486645802409168567657885013387621078247431442575932718485601355778044626940848517181596201950100743797255537252579571713178806870572333551027251799385528609008272756764780569940099493729051255285022973708822141086247640251180846079636880649561556601868171285197569638734759607354898864064031018522728581206258102280681421353867340547690911928278676072478337048362059452883792926072282112382006076645864245000342146586603761105683817530114399442219542492526203936113817931829453974115487726124781115084986099394979485007816479672296408230452410403480968401669793134587403852963070005336667764386734511757115638150204859750027931621732781948199775206655613850712378877111530809471860322600145334376066055722338471790032586874743043151178558994889222429857511930165279780385725622691643402727080964279318241937339188850185800222536622322270744366056388253319203868077371330771229971250971174778007186359195413921852210218288062940012531125414875080437003381103879336468018130215088601516308364497738211644242552093739780257824011934659203111872400135210738054964135048252529688219993782328520594912389202078942390417372356383170709676818567344156921877242974028944956993057456427734784356811626128436941312641836474345079168680382887423839694278445976723844743782052825309515715000509894081276022320108033641654356965810323180529137282352395083498329293958957402672650967590891814987963463405890475126966990351952174672380708288276090744813750056249564294934684643311294979179672719522034762700415962824302792406621329915151850997146787178198943418661287121819195530150515967165536577129644148339961954839638302963943784327299530965573104011518338220339088107564802410305299907100189734729111447258333812234357668498080664797806458621885453305573986208285524434465301953771950209267649697105041071076347862794965468114151726281583640972410467188516390155454536540761608307389126759473688626185987151263830820821298770176919277089962989752790590295477031209714072327857687489296628542964968173948125708469921097422004636618850052767645702472662822671659083536414187836397660186697965788998559670395739801289631894058649629022935386871233613681221535669717261235959101875322393379540250467148194278495363330376287234954899655096328556229027158573008065327565226712626283991310717579398680246896166225718687416863686071011391917884936502267502680815938895300008220356773463431630990715665705177296386462705113876484486257347766087564159626903056641638427068499668206161174602833838019286995811832311548853492893386749882011637349156878017163558936548465796954290006468248615218230135438451522224001416156717176381179613075018040610856683891793366623900380938550569258654142651609537765704729223558820868564213413300832837905929912820350656997070859212092341083465444785192408848105699589109508845643380208458370199236639724487211854570025547244994042395206000451705022421078422669482009124330299732277332331207554914184259010679477090032991998383729325633645323649236618206082140849024715081340954216553447541582181528902663248075155659694530034644468505881664754955594199523664601203986135732476942648981811347779658765740098866990293231750712559156913930831888082239972739793336784404563796486036018678017108362607048612283481065887300016287420793488033440111818313333086347026333717109214542354259431905771105690206798820588070920141035931076083722661888561049505793930625928580710423565252182500612173569133671114898867617926465502197012510238037888045561830643702231309775637331662430312834632422495792441030470762947533996828601005914923167745980615902036900048065212660755519539691264868109319978763506023901501393897935244467382790222689769611782784752949438059479727784295867394048384937061042052520704095957679336678440644602375339405219247373500827647357756166903192292597962542223473199760418918279460371731538383676692826901018699514669028674909996312515430359671352685144010106999675874342046441466582205800271995052038588112980516497769260441921155931790626759744735086825844499072144344312032134283260138338265674350170295365049939418317198206796279729204930850813132891071999158725640991487603924685915887167171456041930882667391498491237935555834753259004063990475164476406343371037958914721075227885469869260865549281644451634643398610368949617629969228144192689025171446271319546542140808635699325161700461517304314747229812450812523977897140970068135492152692036885200109612003427243910663986506986782729790770534370738246008017614412967339162835949083618855282233455451801209832026263000472381537490532240971504045528498505664949472392569976185542441628903878418552184425555403903021140782987755462828440008680559390419212676535172823437754915522536955446010520889222290949457244302954975326590762593939160205486598150953861930617273350102060332896150862139633710466989551820588349843515529832810451670978885036335343004646626982338709030350195750605690233816814681053920288594491806491056670937967581952646012631042456335729891092572854702074321061702911436806869777771487708038055019098218183364578093344638754926899298811346899214903283757455735656657428109003388368412500613977274478871042547396476100559831736112826241233799671945806838155994968930342416041800559723552911788662546723345685581545341770304336803428454397252616696215827502782246978392086620504989177661834419366639496910041469854579907645705709950569604431113418061887784142649254543260927025156902634246015215775421137871242047824416033370242125871557037079241607454233594661755600594986225166690420299401474493428542489953352738861488320942873179613537821702649374192544642363069592282409221384776325328332180194014855736124875895112402216627926542956231559311758015295936231617891704344953106166123463467654835725536521013593902613790939436865039149342165182992153699802949875978746527047239061191965980570546373721925675949457048730865235674446952716134874113415704970928454034738378514452339615103964723580768462188060112590732416054241836684425729093593695229390608929591630187519783436180640566015387544070279915630840226344403891472482124419879696550266336546893090029955398292341415374323906232021946366854372650088083751495182414127483517044777079369505194279721817849592887763763178454421200038801860963500509690182343700088701971458809664162387345833745809312114766140058802338945769465811181300972277013944132047812472001663511649229632209085087057874029027630618306468117925565282146347292404687876147855634651112798114839106428027487952278807561157135036918647101028752524718070216902309474411952637588245177149190582751977657781145151456735177657225487221882263775453187486547434843528906963056379635657294825761221460021870632830482020633489228203377754981615114800703431063135149719649382117572475406282187392616757729932383202760774132486969985264784463240002254490311585082672319766551371548758220007898057020998949598569223966354510985254866611291190597248409726432913237570932326278614655973873184231425114920562008958651411012776848345782589828427737617663813828892574650806920689663458144207706858624124734140244648961123066104516836892775263847212206273309204929841634774023510502884565046116629366219400124790846888044761367437557198521719295907120488631888026895960683962627216175824198000401495709530522921999900141774798698813573266917097488380531950462383988830554774560777169618566656010445722035814996489827031085943255790427068802420184903387927061650390501248697609907582092341807806731766033357120236409792415835577897628223958945553845394683764725694630033418222701506933593776077541924381841326180493163963391422148562662430715038584230281410357857279896949475602358738477203955204351318941754507820784787150246157929054555859152494069032965597392671829880020535483038045192953623877878806552057636069709927529606739295810612877808330734939010806943628386053131475902852190531490064656702147674801473915447257085112749682845929062479184217990344369379198251991490751712207462324605487590006629708075176649897733713101927118240177127085687074811920058146451994147778830922424298735669634508011462908272826281648591967291330788013876633443995495814628821725211016503261130669252959507074896946735818353331934031188589419853714110281458155423789523167072606763132214256936842852765663667465545509623737833390940272254703357594694557266245901093091221813470100043303769843264308990203767194776153211050885629646099943641418229807263333427222106828891527400635497107326055203783882904490126514587234802133213938294850283046461562080668102139071625261436182283680395498871876444104768607567662953398045106345533728267735491620210227632205634845212050666242639067953301452463441045027451676206270065062793671347403498811411197212652517510669167733016598016111154530258646556415590862969742371734777099118745119770604481496112997379313012966094981744035425214970196684649930159227590951898689199659092442587365674563703818055414606549371022781099471135072984526453283691329904805819962907099812945182693524044308499755411114547175483991169658058511479373027507502518916502418342159871825727109990262518852147584315283463791900428758318899029857509876394681948909691757303567929745080992848890325759046943610588318791707701617953022304617978150403672924734520898219260546952103223118658324627996408984296525995565056507462699111194303707945468019889886541881224005909860329606766049117678830046885208634499517456777650282017950671229105243619962026694789330714857342171189485185530975003657065416139847257479624909515161085690623534665635305976365735311124629440204366050995324576802068992000065517402743395416151968061748850185505954342228977181196597107150942256201853689404883811035583864345885559433319715712591772887895251077507123704221848006732417802704863725593767850847018451809941434423151499189826875958362966975463681257100898186770675681834005345611728224628018427894808518067299857626221778560711125759844950942684684974116876532269580168646392686722378165748515493170656208717208603775154903658431025633004890361500494869148840729454047036126198117808870204693860695763368958623875216632137734933423446253248078943107530789463958393237304634408129192090463614757402835671815594740340153948561733882202320101098777244614051668618397981376051037482778499077716647249543953539082464032551794375406102237348400991494910016423695045756328465104426444969500130774206843127498464709381302091249231183601867285129589056029626058127246049680533140073182358829769593082872482923253306930755010783788191562158895452299348203312621082671404884356544771932257125407661811359462087129635786496973973794333141180000315950534216976393888120818332112216518217824242840205255258339492253923628148495378442489867794533612146996573526266564512432069888577796472347518293137141610110133334080458643148686739981187142869321805169410958173284406688336071934019996046541461903130281873548681844176575721298134794515568052659044256342387298652913822525814516345042006639048691330608440783485723016003181114016088183143278767112581702853870458574181390712877855885796786050166814253479452408285204663799874609323608756259978124449244297318571634565731602542058390270664471968036873602817741404203540302320472164199005616745928218504969935071062782775244013725209026043711679654633683340490186531414044874475697511078652826305519243283014704062449767356489784768274812590171926033457160895607627537604288080730942945767325224487258589719098364729256478600259819641858373896093121458711921539172559305024496048221877466905464309796053113189353946543408656955834052789568191593173318394604204325690258452109358824841294457345658466206459617845562306207555314973282064371733089753792127703450540478475326933279011790814212637437145516359098806419360434971310728684731913226091095306534692674457832927811181104919469301132910277261291844631685014714611984089339807435759858799269429356592177260457091972755264625795353578115707012767561495696402990805306919189565359289000446062786802454282281506863935680883600737062365707373756483798446061036262937668200474439310367186009868963821320381107845237650810397353067343513074057348130769505104145800892809649108625693716137078734089633629152858948862472358527648694882764580399138283023391138920090660623135048467860598444357392181732851381373851583377170068216061296605741311348839837560933524743736709720199226845224585281531439671426715509023351689878897955632911075899838876420849779512281510948180486212776611983041499492491059996049130554346484189646911486570511462117912127159848245511591399938820203720959399533305037811602878940245233786534121552125872743370286356148918780335022333446839036244731592621324937225992250419019866544052779314960187367557247812286773192816931027727203671559006815087734480646480042130292694347249804684011179682221125270606607657319537522137237794596954856203137157640695909335442238631660515523563935965472774914681294813107637940002031120570594340589472705591470217089494835260707933459745535701277595091851372300466461645431456438677400655717681732089367949687305307606675183519921989468899319534026649259487260890549717347379658842073589257422940781792715213076243429084948226773679063497878363259347866305030875591768904300394475263015540046971158402729607452462573798253193071553922548299294722855834793259434470323441538573632055187484533497903537718854718396374722476927483841289469608312047761771169657698207075570496893171691352325281334742737985256835204853094222951610854094379988913564763406800606432967433679467667609019800268917271612648090113822297652449469840967987280800938811747794456249231226453295525861991474793576579885823490471680461898540530867515628676384246589390291896057588325517947362377820997925409608697219045895885641663236819314964752014141403834851311498754513621171523186778538642923318942933135989479481704519299197004647115728762435601944134639597005269359066030934054762871341438896528040016531088317803535399620711449838900369562206724501290266474240400353239396220818778988290724063879424164990012764277192081015966386579478242589052024646117815220656533692095573525996468718796407183882266888352654044455406210230229041119821824380944811347834905625182571365010308513682863215665020923548185266183214492129673780402453233474120267344147914780286443385519004299763681428945919582500407409998004102035362487919312798004925937990102492858901056234945159443838288963123945064372601953553536455027466164316985251387457573297168595144934799589855009570753068000660076010276519306904139364304591810899606440306391739321329297876357247557951607334350471172154767886313590955440686043065173335327934003313059382694220334709525303512803076675172719980296816176899127008204416872188368766183434462651340723231576155911122281470144758495411045266787059149601438551284204611380656439412052902274436219282389335655200398987553625144630682517338025199267980681809543875106458565470904137414440817415923006654653506840484385664127241717790510817470644172447130564227933407815682926324230394678411773902968680045842479677446731252243166454413958646030561505110355389721319785014948636745602960582655636359133073175518596118303855080249397993300168842336527851582612443673857709896510435164741528566791812577104655151326413118447770089760160877770961748665593859095647256047724480025392461578779704883625925567618114698923973767646890986963331319119366299251325891333423250154096426315251594131507540679786335454357894399948167682072488109172615596561478569918311134555263092857907539982554307982627715589339233709444892571147661381889151934585060111143792687882918539703965399078611248773186252721035312439065199131354985344558915431516690803200922730047588162953180141274871871246720281754179367039283389936489016514045939992498323331747455406076090931520305468434994563306059689552455705910440696023630876904373603345814452951091491608165789611398114625868596724941109016181646974327408458171165521410439781528220217711050825008054454757998031624388232916361812146789373643292278943511556923510314883532889498586616062186753602890056502223836966742137639628127435421089544559387133210681618862804332173436360694704101223751932063596843380400930147692553203135917477859321853855703803368091982703677563936747014220561008992193103476970925533643289177139869592286617160054063845624194281289637296650337778483733123573050038813708185070925955925568976163843443596723476721990575800081380458968681490609200143566886292221488303769621377526979502885200486866715642363817475775044153882060574886382844751372174152702675196851480994775227008280045903465961865355518901181533551486433711332126054798662076588281173893617056516525863126810601070289372729290083845852568467057922738403261498616512765655200174126764999728673427614669397154440599392099422283508503495738892442182970796237346440983592822752863643449497242043880852549526563679532499838556302714863814791544605871051869269297846252135843859020182193291193552077249424082915513078462314860762465933926353726881097439491397617567914874868472111346747502852442897013925717839038771134488039043324462024612537242172250582376673833574937958858753904683240095213682515411084483222252412544069008280249152190913486194768612806069845811440148433299480853714811517379876081948501321854691539469219638882356546881687739377358049468483883559885837196945365630142623315047767048262436104066525340428861667929971831309497735291400160652698761584538509578352261765544152022262315532902710213551421982554304486273651893660533454098936822181172235533869683609232243731492996007039889321112262052582619864887591105699072495873038653388497181057525272678747928947560485282089490007644699480950656904076850611614380211642074920104061489112425256405883631622055793347786670654159627166271731867320869193890385251774006929915269287007282568243839180356716218593394197386821577129725954729608274659841868793417775813376171765315488025456485778003134943451261368467513396448518529184953693128614926850052592389813886746330258381839503758991381620270019686805385584364640845458466134753807951849663831515511675257066716083256980277548978748995093928585216332051563400618482080587844260604375298652535469440707168460951916107233704578670225107516635906738777956202176146479346472624781853940530805210831422659165444386125236105833167290088449756762249412432113434940769951897398112960254911019139987761843323941437709515875272987242377391540618404670729242459816183269589765454100307836447673263388440562546496514198895247927815690548970766958064728217582688468931895772727260530132242458151931797951005696259569553285162626626940090211895236290581517808525967714841420057285806627639162413609850202738585151345675147139361362342571905245435353540700588158282741784805669225338167393043716155255462872915987055852413178867141627362986193271991599377772651319691528694431449906820677540367717207933268352585322228380926253354889179920052591282067780611809499424219515344576860947094259727714173968358224937775216825980770166998795333590296370137635985784626293058900878872635104042067433161671879952615912985197965432872203147383853105646165786923362676713698382837242890754985146546649457842812310386216985297145480759110046941707790281269860722882642553760209020966454040498853528789243823626814976161930885356321747027993162737269628321247696235134010824298589692102178818532636517981710919456853648516998017137995224653435441635435600822681492102908421866799300334617007238547083911011505911548964655734624582142126876528202968783882328107568138993647216850521468739155108932472985800743457316051535918033834260360221270435449407472544958912989938409910604818317652036288114653386605200223605293047139837894862654913038923484462286778863132358072704074991427135340120282167881261140985596916379564161832988086999037829284695284349150783963933829525632294598542086426558788903297907756463910106196750688478139308237953094927546067875641555958248803686104431982255916024810777490246480560161631524591411089735260920700425813153243138474041483642809995374462839572419449777181082027186411611271083470604518956960114567335820273096265391428288557041607370625743188104450604237172017248888077194461917951319668924865733555005492821545458713126428228019663111304227847733935013383482007199464581853190148645488426684592740813177638179579634976001529295592938548282896946304934695814906654937632250460068392675338500079908547679681271259382376724284476802153766120783219455888763892484639242088847602879462374036114522623849834524642278680420377993960426945677460703333514756985642263769641552970775695691464466709751093599191203305306379742265620848882019892559133467405248376373123036344153960714472351053341133866355979086896887959752449276155289498424361885503476246961492354215856102512977878987982375949129396091315001506049041054124746709262211865877658914385393375910190574301345174085798492277816465346903230365658238466190330828944217765717990004982059992391113398093467234428321949221770366574818582458768874908967756845835929565730004693366810997882797554732974468601645888689712550704024602675361074638620101088468529180520744792566830731011112434113672082842626683834020027929950890570933912787962612509305844008229759687868730727743703296584645878477085212774792525553810524233367027146147834909924992928388264271504758319021254390491341218450449082876547888130450934322291402493351061895964212425472739412693725789804570094026006717284579964607093186589380365328151782636257445237703945831508977246210840501986680706746145644970916820575018382534806549153667608428879974266515030643056948887809674255628042264485463343249943706732576601346355527901069042110148248333127998310751911448549860455969303789468283311608082726993370954993364451289295741947200166446212572387875300654625946247775898306363155915289468722526091713329025115138783133509276204588957168955372023181514668330500898812487210471343387887251048313842928523804903252075130620251259736113746995481587528896044166241994917306272955207346845388632273865520895210917950160377287244085673468368435716381973503856608845050591257121160232162940966547075032037038087086664576256555127456321793403484590909208476117269072410214600455720626822779483283993095967585696113473940159617020245962482742403324851496368137476732802054992435971134323343178285377639091088089527032933891014555571663938357974629728712430512654233247687526055516552291594602687856915466727027232187813311367340594983438322856013743340405382205780695498821101253118719268051583513469208593690959232425753923990464402793720053038550988686046857070355376175465203459319177789371703852340913576802745862145647310553887756345413440779732681824882916357250509433724815898052905725696021661603205883977412664381863895931853913487623271310461257150343620584808447062057808938745247322318409821770617795685087013477685630683277840306688792381383841177693788893457268446501516369254202404452970243934161918717851990070477344781128559182161704489012581401413584998933151560702229425725229624152748426647588716032887035640264783789590912038858755140360516412526562275666388220331817044906662330851421527865277405155562266393748019881705573040093617940597779611886514988049673766042027152466993609502401323788503650529651267414154720009093642537891549302823436845204862006579611257686840004497876979224938659082740991285729157266082259259564461640725899607957028730738650801351560887382478613791910111119702835974082323572878204820978676793792887392599112710946840375866488091197647217706570597978597005210885873750834298038447169408221728950431536634175392861076041023150702750355431340779473913201538623922471074784554808455682296456185909986985485701879449956717051290378924064827533385805943025472950017455886164477824022165796090000341131632063560518964022107474386862578661624381094177875287674378106487128462301925511111133961636743524162667013802674655143214448683800873615702884152886882401402929191730732797748744602394382676672930834393408403501767272460072780892299864822534465376175690226862962555309083320654185078593321205875045594903339053277505226086063698566871308493193716774744835307625759711041479689949205136268417495740539972045004849414331471862942179173013353052846358176606001417452289406795182015282632055533570831195070167700665158925305542760981700993076854588525803425357243945661822471153132310778959739811765485792730873494817757381906874490000991805102112213686976809953425896816592101300886171215396316236824112595803553554451777162316660344577867374402308433515436640687197549798731877572622046977169681357535083874457394592806702079252546653424916457541453668215270881401661473330649705692491858250931129183370835683188234198540592044737901510682813270118538439743787238354278788425776321050125787690446074996925634267194071863599674309913798433900810861022096214510031838474959878303921229229212982774413940625919968155792585412071203169685045283791748218347436271474695591193270078824156232829249519246598900175947863744052786301075753679931991711531220432957728278643698078887690573134191292779832702050013234356645818988130155536271878628597813762721688274695325907551655385761589620257931449180905811219581875727192448440888289050586476224459823964190610655032248528143952941057899215341186407542066232462190105186179959345193867628652332467225382353088821234245965515513536696072920710330452177832602693579687603799539813752559070726484217797532119744009054636312120660799602372028599263234725616436304256290261102006200801938094795657561454828707095379881234936375877001276824839879392203731154318043931838187856221279290390200815126471553244300269374544318908811369253488458328559955861210872117899887993303875724091782293545407384066077725634749163549768974200721357889433287924354362178116132518336202120558811047811718886712181035937025632801376019752227160424358141365150927081523061800105289503117484495942544314629932221213327362810440003162073550169255586798708079656076073057991537711312516619458108161615001337501979272465448711667476074365646646265487228207878815869512973105758484060247693577133319789123190905332426605040179287366743615093893680721729668982688275156236145695418183323504642056778206658594715022069519161351718331852374208182665895143196115531988730674255719244079291266902759204887035651750112649612975311983240997845404640957038633327670428775749313083940569342756541844285166837446456669614622710532182510691731232484146319394121669424222191595971963655351150798626552474509369617923741370625481911185389692458520459688172336266824645480389608332794838344412200828041651986426176498451255542792984263490144680918535559578360035434101558157704541410965186748400761398587075222222275781653623839221552491297839691195121790569475644956622628915655017656055348850950532842288347053887755150185758802411879118171814641935524936925840981148580145299695734784362243386954999535186503724170854498207871249275557835624709576802284179935929351599606036293829518412808786570163620503385584859439515770874417790040804581140749160537998153910654244924478008349141064012753218349684431620407900135909737407032379059922171032595392909999996710720100213786683302760351516576577182493045728377093548433092782029960289296349229313914504593963467482421042871338782296862873841885613066477886965831529741905246298467795084322158501238752310415804247307505971280097713527883013320641696878340405884638732908276250733315905927941963865810296031863363395172470151594783000390222315856824414096784122271701070645627132724258644477740511420960371408726718244630041463270765497349269518846503367830835939737287063294878472195537093051348263132250039507518502367982137647031399625341162488128262792711260855232674849263067986290067638014498202446775481449704051944375102164047049060630463987237152916413753768359665896066162036753408100145425759712674143086328209294076075679890061079695095689667885056200166411340428221372741497129675836043211438584673557288716457822866684256349495914856820404056576050535128067584494242257103587505644326011967359327206079756643315912344848635297265583296563508873747194825224099881975077772228731033107732107010605707038044519897195121603354230996765113720106971234795239446866311072239745267662939420175216447703303852528013143444292889367725099861436181216282606378478504283485378399439238438380326546376935743042098221607804272756400464809888577842046438331773855090551343516219368605619675290311409281867004297168646484053515302655273987142341463327040426848714664232223687393429866589086129173496607371609832783388785710889742591551383986119959177013440709166613331561865518221498557426827321627584627892285569071945357548949043184779252741959436698061579795129026493559717679154665000016538073157496270136242754788359384028971859103853375239042030291777466634244422100652145927708560646179970520429279460626920999682452166488851399432329777926929120502835704076935217284676303094235808257853313041739071644258577746791142416909310560263016823773426800930310017379409583305479942309675102186904749279264509209064746254619191783553191550579840947052070202097299973437770001275701200283424916803911804351449559548115837957872305519411995276932450420494590555894419528580605628415346193373294035713571550279413685856314592631190604232493865076113563566130251303957114542821579619508946666163421141121084552938318754188589054090901898485351363177146053582216908887720831310531569534390656824486878435318308891991174979677940348550627888784727609215815318905398476251254336184323100665421023337774934568154242104406888936911372208525168083323868089871772477067592697658888589058255481039204267569848105368512574475086487747080773373818644009176305355422431732242094526048145528226938547595544081108051124031471680040254289195134072868060465528951763895030743639272902293580273991288637107084133492618424449235715165418291127979859037053071228354683779853593413829013882292536797137498377270376736151819953664776402362278634010489101233979040402030856703565686584160969351979109689898164954670019436197703969265891493117520479327023784971892336359126868498896724552888658982324966353969762551201505628065938297801646194809626321527952266684987723436556830376311297842423664821707695810955513337670970496711559473297714014290197285661446380031152946752331928341022845156647836420547181136809623027177545055348372322404334920017227582072133746592466715922048565280546512400698673688602480465064542594551973398980114975842157901373861092742445953644023862989692197375538187398346249581269455679597124839911815721899328004892457482027593001631224672654731844279642969940293927220535192255458358530632348337711052935418212652840370990500082574686915589630769350826908286488468702670746993748504388620071357924313939191278394870412242879510456520855044702230894753787568980713322513173931789714040988002167066833564559991315264201643784172305148744884723395620174815566539632759893694573150766937418771187023286060180181138342410857332387627442991460620590400620543795193795332748515582108844873669531678729757925665174427539522159573201133300630657331612888370873188667917540537844059517049362580972574637413170370414241679545844159203656973892643138299830536108808633505924912077584491836840629146721379925350041435557606470745335968121585319378661705059924921376283893019837304817221703006190264536959913450520753919162012069225764436840546573109466024917925620146734853071963705554820039125945175167439744953476683039509533629258287196481719475712747264433240988121263927026074960333073179156789707733270489349326345509400235871542262269418009688930487365333081145407707505250342973092515617368936565488064711565708011710025194012919060162618629482612528557457732480046806079658363027061664079840176050123932258907036447727727128102140184321140605470116104709699839738635721705388705798042784132282528286384919451189976448407430263376225312884153136817173523385555430435534884619753288430618325388414842634438545826801401979399775542946457604724637509062153313881677316949715470690379851691179987947183281084091094516100352526499643769019586950023887823896773757022200922974261381020948653864971777666342673260609445005058828348870896790126395925358518785472854495255441442600345884660919265959647816923527414538839799326819816056526313789425876292608514061965906797711496222277841247451027941830920504497653133071379485618578801528778018337316822814497960278000383029509323332707512851229785316233726096832261731598617383901324609720607468844191497952354571525155659278473615759623214157064874966261446375093892919902330102227920215332521897333382596982183788217371327458704796434041722330012890499315153532531628610227789928094305794440764346639285225529703425312927226958794376671987595774087079204970538125631661061306258137031078180932531751768721501816781382082694770238718362931497305099178709459464372828876070725436810569238427386881327829657003614677692475654377886344494928067037778409801320590502604281922217286819160827686311708857545041808136798350010792468212027753890172543422843961282717437780851762687750717821919626528899473646796997152732144660319123806828009245426378807499074728908325967870579987986073895289689917420267454879548970620975136843674875119392147764742801024285147152500022776134744650503288873310363156932620666633135348803886682552215267945552328826415173599457096160571773426460380659124354911565992737125192177927659659598960426882365079830550962131152831180797854264786011973340171870385345452218680249989022840876524355798997512805803147637107541628788578157856060317037424983724800874541128711185345634863951783700302675933611017784138855738318352265986535443028194607650949017860606796084600828043174314428885852523576370820776625859786657605441104756399741647698762539204392587370010983691559957653243916625015614829865481069542083621652594606206516612325767800632981996963653518405343431610781584785708176650508901231075570421523437566575379767736842417335063162060871651267918089540927680551040424647589176509081178212487709807379838326672839987038822768561114406450006190504344403905491631017309052016222194789279679847920870175878103121359903342491388638470885596587173197982615724677839561961747233083161583859554477466614609879179520688763698557679800416851509803055398288745899336121598077439551530804267373587978399121239778843903325233723497427825739721685409217790563504520111244671897180914980650512258419479464157583338032426083807798081717981640108759372484790660179913463033383877299205896590104506217195991083779014227694982140644821808906005748192338263309178292891880296496088607707136430113186789351313376311804790833779670195523937920957395826791329366001455185237427368554362666232383169322088040012782734274513507357145656095655952204704502009901991628566525708260445625630622944966470407322728996807339718506957044883702341574502755115435743436404077218008684080030550721079430947902442794918299390464872456883210121006414604126812938709735141379869710191234028459289135466821594518661025487916417467037398128866840344746412156597225306787795287757916082716187953689602182131961245177990791790185181986773824243584243038604092860244943492999302919862323059072058278695835719509998082543615596295601754016900160864925166755997850864370108100781016700354194628363843682469394329772147454820925690212124877554598726916106655908629207279015492569308519295490064108445699049220316692208306327679956014264887234422752495621555438092598227570919104498094015149940193047330361062556920107704407763641690996972995718102618540025324497851867419052823900315185774403894447952990726829711567840445941897276453660897901328594248203672098669748710404117024349680049590051805202497914203216701719677452987245938439552906872760779559539596653748130540618162664387094667142817671049384131476670006637053148608267907533042410213104655869972828732035961059115463861240948808762245459034382486403837443911455760790087385412537575042290481594378110785400200518799191195565972277163854009781670749524009089890850124305977914594123002264265049995167867347730760283053023734515448875550298297270678815659426215981958900068086882515179525194090055866866446662607461495088009117601330310095946570441435791519726680104405687738694421557714251845815538659917148935953239221389198559231924757652999348679843245228978619677425702938232669551346802759140819860427424854011517185778897627733920148695216217319922716633254579992294182238102257565115160779732613783867944664037393591331221210974528433098384263741785617731048003997575164773382016686080909539456221803043845348942250825547818005024331402225994117333827378835557512203942956019733573423298672535779647160742610489298644632836688514758535953955214203795709279621991076715680317184199483324665323214888841906255839192954504317302792888205046181593746813278696707852947066777321550012068902994452103443666976659838874641458927541463173028065523909366918460112708437760098580486145449941684148301754364479770932022873905807550047518722747020340053709352748928974828299334829838627995879799120049498403170684131868273910446588133210333730929882460915940155711941440258609570416006273726043924369830387215825431599446178897016366990820587337274776922926040767506548975774567222246745328107347907701836987447654406794059462893533954096274033541518641631095661339874505718052566563555260804817732426290720997220520295624390615286238791108234495601046465321180190948471697401649203045244564626168829172961055360958969364840485546703729548768826660111324133835310489690591895700812977009316120320095959290565098666950457259512574794143880545700997896990420503111212658783104796032035277164708611411939872968120796606294145099364566274165873905914196419192939782025237801276597215672660452371943725150502695541029281631897865567563860829063983689286863812669940359221411526309501412659053704294890415766132726721657493261372685503929447407721460922634587336157763457702827247790597156835620995481783483539590662520376874911836959850613665643253490194439072002317094560452610325473913148565889335059467282156736886862097024574716634974668124747107549775358977025544674130652603747168629191290400733987621973785256313815007517748873163075335206018963952336639918256001113152503551376394147598934689953672772031557752204871274812358193864122823413671826917770056151980943221037639853536341926135354128256627291000936161149242161204455899915563033786069485709645493712659037757761917946559682083010656364226298922309690151075586722536113977216780036842418925812745399217285525226070664562132510808319207632812309677553295186201647012179573569171779812109550115231562720063659321638937436150003761275090449042523303140827643730126868606967099000047845359664777169079443349010454942903247117868588554800195374874215084052401751819470466198321338138932824837895237354564195666063202220524458241715082801627907695698499090352009373407047415403169637697921091558543167869515921237012811872296855200690428335315070116197718583134205488238625749807022983917413310982872140781270687268417108580332877621440923247012147470913986290403340281367527231467191068761656963237741318854922751013737857605887075500856125209678306596192582845603908440587232766575024958425350738271696635188034381217410788162863933924529932657437481242152658131738760531671571488006568383093241972583836974051568074027289703221592936702332944570421106775229776601453053437850079852166778151987037280946747094810350676566067406229805363264455143173553768596521418474184466914125402720806980042088853073456701350598850210515465424478871889355707920378765765789573276205993518891323407389064752199398757910820837619673813192601846378219382764267544916149405823647518845946840541992808252717797408581704040470925977899606282994776060096925522951503854057462944650496549143852182987892940859379294663410072777729419857043843099234598846890824353344778516835770895443230514672269014057107723579088328924279698798344367623628025914806833114835148949310180111254585116817309666528299767301623580246106063176256475610525211298838763623970816168990912672434008079495930562084642263758383156338510409456435822208337065790140461302175353282618644192294478813479164255631626356413969992476463606647882433353354912565844245358794565138412694723321238264188513202442076926464655836203057413437079902071111768084259897476388796996249649263674049312436179170174602160222528184352728122358455616581952723194826199834946168744047073649294659958164511930459999784175290466949017284733046283424415243304502840195865269613968876254225354036609527459657686811512638607820822686885810630537406829459855616058335152112659802909381049164936043737533004805898591820914057614005470550440828340932343375749391504215206383203320820722480480993166831267630036168503488803302358584449977493878663157692399530810101780519534610603073560803938567965082008522322114648419750629606739601183129795961886011436765525644337794247416590666984766630113249271053468540192455999344591435253864883746160182656718121179612933516581054545997693514502408361098885099251021689038450698811038140085599883186200403354187514369926582909498087595695719982458358636740734278646914876885807484011487722969751234461800773146013292514991763209495185580190202876737935271011051561561089975090222784128971896745924558803282498545096403353373333122728813298166071358600477667331038564142128659249442754679307565104445253542015960996650769856788187724526170568918910921545265782076231985170822445745292879073449772637132491850816178325954394687376202441776306020256854212575394955299792798439821126382001303663164344086924163817846413805554148836366948098374024436525537265244691180661205855265432213082565490962176372188124255212184918805375517750261498327186239109726691088619742542174419661214765310735555789211831947196998043958927915699189069129449557520920386697930438080156439207064716431907720852984026400890212246904702070052116268072095834618184238346806500687293957352851204464576518670150250060798212001678225738583787690654997280485257659274684169358765747903771433792872615804194529174480423357103485520232464474300886533848724812139143578294279839266880855486147410443438873124839353194818851105828389735565337972792762369873721201622414606165956493826687507597447996184085880931181360733693865528438454309836574973062447399834603770156025982792169489320828424630824601967092262160542077701000752124310763229959467865532142053627851259445197260616825457855353225128243488106287522752831429583939090646529617030552829946081123597924771151615012115031613433944340962267118854727753052316440116997437816747210115780803626274612653976903860355987111752230563096770454346576504018665466314618723467631424581568895954192379520120298295735038325773045799742464048806241764110023632055047240631702702817261584864318114967058280749520642744475500662200769684564519547120997250493001452722554839587021326330653839094841141365349748420018848690996022963756505660479275393099444245413674806932896454586332075633182263474612037734127664393873713235495485411814108905954545083453514945418429567060766218650294601101449396068300074017682386428809745669078130234404841255295225207959374128876367192672793754314204840484766293452060278731637932393302405230295513219441203520646303891872470649062173219188094623506554051805973177160809551465475850448664156968478398473810889908573287731513286832191381408968824069599225932117247516696126997918306236899247702656626537085988599739286263468113594982150236468074904827384269704976831816455327569901936065152325682099921789431238784626307636930026611196699999794935975606362165647215538968161833736746363860913590328740584469456668562243141892518481456185743443658305161014416251564214107313836627833737866857794008951392469624575873504115424829878529122513424184520922862954853807383211955764219332654728632006561277985143468034039520200785108507842292341400667292317121143277015704770399024423921100451533715241868587782896709009842535025041696688519901236355468393449350116542347365754015212634897446664772487571544181525829900595954349774412415017591133926770396952841375128844170113221137226272565203179869607818893678715053531248261363442805782285218602554754720115561749705241576092494782402933566567880168520433148775357624402857979592495024651268034764019473288733981687423232794006888444697638184034324178850566504947746751404334209213124661174767827986790236622202432769825608203824141228201345000151371904835628171498197304026764711729896370230071218635357064558731872975835495168309555473436350542603293966520882788753019825597591452268358834141590001333546377347998150794410190183633635419551147492733749125739459740202612190484625700606265586072625426929018922348826609959400888510190511978968384491234608711972568627010920922103452306457051191064977663339949632441467344113509129697486404183382562878335601427413066316210147871605708706453529018675558499616862782214176939127740254836994509149048237670161314535897328643793477905227620087145762339097674250490099585672795660608574175787075440131593679815982474041300938707661155191498755984944835066874343708160732906814077893463779349794084338797815380412650829683133556854881979153040770816889503680529841842362851133959361564587409327908938432536293258690703198937521775999977383727922589895375010502136744413448539374791495198632647040544173167257074537767710281818080167032671399068841442797696825152863862119731693667430609813388515026669192804702651805338215534569827884865933146969841352340593565324591496512680810327135141990206668715346186507984548550246495684449617769465209031876568880218162308111055528719912233740130588428264963316229583532604309120805064345892016215020281964548881150749013055990156408760907445422360301248980380650829063045065519447237551783546607592770487922799631931344498111849850560982733502757533891535719946801807909313267525063456519030168873387677099434697460732017000624782106383670154313300784981453848705017479779376503581605135966949219747959161979767583421422336084920679648918755954176522703545270504432918748601151443858690598482198619969504541944449509040064381759755111974999135821276160307703482163411434542118968197065644406889035504499892131771279342215404204477712000924439981095847725010290909407008341705549530726804501451578560722681608507193850026118558486146140465740877944887120692740108574149013700768416621248006653391163447682008308369214479456339571473102126094938492013294606429967743880823836044451119297675983655362241191318783470202941684359475563411837970783611151397709453223636419181464759365648074020200817543159058896418030911148257653228567880746875840134138293394966630519045678412401962488823280533657947747480717675390237707054816964380370992573103539387955811387869098754439454700284913677931634289678964360528871746995928160934043820622563905580793257254153111012729648429092652174314375171299582894613796851321399120982080079016226291777666681714078056198599338759980652255081675461999661107807299811930461258688164275879491374971806361786214222427800596279412815147198952921051170420271533179062028584068619688097970888233250755200754282259496705409126456841556399591843167597638809155620355098101857865684038139578407833132014209434791529294280784686802348132635107836487442004676162274113507819321988815658719509534427652452656630194782670560949261185031391654390353083366666440588166498758332273411507122492262109940868877419586325090609408799565136746313759017050742868306707303201525253610830142316871401300658096413600789842709183730932542395815279174657206395003787259755853278952797344297344517143936138046688341261958658969372254570433508790152045759456995388703632954098608534514847724361079022273926322038142502476629985479441100964884674491805979805511958520839459834272703862772801583519501577835459642497489915404442414283344124825466995199195395062499099940272217934782997720775443847109174623279080384520197992059302028619522510384246544893448028900528365560713251125688682487836268427413928436156302723896356339960315184705821981082818613512225372589895319731829647917310060980982707896387975161949751059379495346759383460833351126196761337736533431520980145634704757095006480061536841931607559187895647194119643201640159439956762074568669334785711685803418168302560186582864697450903066751194386531337433281442420166015216396153483366916878614923109320148223738968876417842528202054318212480483592975793801356951363739738938548493725933359167769728615512761285222841805249803723340650044402908081453222804786391776258165618218400431205341789858165319168766503103609966338439882735709976999068431234882773751054545048426626133289848080802396123348685927553875572925473871825162903156824575923023437473656952561505604891983650241230328782624323148728815460769151723795885081570533525641698910086009060721931996925463646208287806659010676299452613741906731039244659603533979646126596100136462750755683670162831131809105371643963328529074507787947868000550475581745446394943802565017746795413365702024238276996899775355994493286249675976129075427628386509809111652666155102883507872831689752067321814101519343497478145066164577375816987187359920556743951492628567783247185636785691637198350391129639849614857477736057709142000253426570510975428883801984611225332724554350577117243171681711554618400527900995856465832630636393904993893551832577843743200052607500947731997468257272677713083312442225026257945485635388119941610014103275225276755269163987956155314189933557838616118200716081355018685449438557492742288961887625134851464457856290025196437803066710326101447012759956613119217641383963115362545354417178840514493497044898506258173760182970733961828159062850041485124775882878632126499055520607972235079926789228214610197813707513574274143645421942472908625761370749196773042709928504543280743556248698232742056026783331324692387412371357386397358844822406903249408736602520244442044166080795682453213871138986103295777597492515988156528421429770662109677254956128397812878461202929638302432226093283888763018846035163755133744930965289490985359370271334410448952044524255241232907961504695611424098866514686066598747278347272478317434804989920999573246793471755990373210835515404864948336578097102509552315435211473790708921728945858445932763798582388760940786060847563624786951472499443050412658680808762122382304925537100174248296818846445935247018282222653480895494567752064485053751509210877220355020032690100962529318153264165872142803349346618579509025143300316733515947280885441749242261977730093585731307569006141920967224520854196512340462514694754051381269854212680323400320132041040044585940218772386774585260155977760804340851244772578683954884548664514750529089888622971596590649838718057000276757656477899808628080875788840404097100136304448654605120449148825145142968174503965957148042714587079892084280807198976726860501229436281391256545839401493985231923638089868291467138062976627335472891254471845366104212179502305640818394416454364522772362525009844604919975255323604573850360476899240408301567895818477612261899576058733211788518470636246602672840710175867908605112523258956939089533010761602884120582328260794548858059013280483317424781983300676405592997183321112110844626826821016371640739756587116393767054246671682744220113134133101423527019024797619130011109709435935068959534273649874688644522764675460887290585400137622149099953667074682785390954868046621739951067441682718391055158679105140764821583542811641210582057137050887934469072362965740059991742502844856788787059128933730308400476739017267528714443938253828424411558213491390545315137896674801933577163623212436934715035128954567537313697837277798857597923001127915979199654107472811186656742563869483244420311117703759223194858472273206038333670177900700860013954888352766326731259382871076818798073350607248321455487104758401892652254537836656772237863640067882405963984222855120499808620805530743831695981142763867995947863855088678392986412515671127773747214172158164730458390615508975690403292061149794931576246060581449677573489456861280749109036208041585295067341050231398080593123090695620929163199188752453891678330300981896390888885288911297007341945595003752115242308327602824696431241190464413749239686003461411354879397691529970458070114427951107589316179899111663287855905371270379409067709460300233584568028931652643991148693129816299100594923186268527483346045588126740463182187916102247396155477730902566338071134653435278957993381518574000425093388538246118654657708772497487940960092514833254632942558727153601925243059313188235872412764207665979028970939472561587784777397632420825452824531460805202344103863573997638458425946348397455281798735492766277115058058427950779037798339243653380603804467221720459380780461123199244358804076166172451714323898583964327498824314174939020958903214497366561958812092248444322245445759069113292993776024685300670654413452396346916097348058037646024030178318717273103280306391327109357051527585924950198433202775434498653871865126411260880035286249224108355523260284609236997246235551708099061606064919509022822918729812165998246487826884344285453874625658819003770351824309817505863114929677053277916123579561441585806114177419930445038852991865661650159972427960219271602518384372286018936145506588934483251591119727306425251498677348630079565007025308260040350654522575477123681316529928741312622419176345104974790156289804433625625534338747452064215000884409744179522964723209465648471517974650681885948273009603877656372399410729558354169364549446213620722627094083889223145049706079874206365287042801613386578908274584203220082699623355878712310237195489150269163694934539827382735082423627713554590910823639761262349644988423101444747810316166759414662832444152977555863623804230113326428247026058024938776846596141399210382545215943303835532493037072289221177630744937527428376501478728925702153483538215415278437223536120289577842620953604695357745785786232975105049154932543389768510635173610695017647243480089109861720534881807370213892980749949222172923038678919951109673402108694015379975386696994545257549253016860977105785914679068004193572144301906432060949852752718706728582087370939279639338786891851451266278740845289234343331139707579405336870755863749644623805471906033250972040298976724716082775150612659139353949357516935593204444952585631150870270664114500079763074551471407531454174726988265028647582123212360452476251739260051877035757269002120718107316542589577645565819819610999832664795331806593785909455768404539579297780226628615241777813410007188614451020411909434135954337217572302076735561720343202356869847572278916214249842517704134280682953455608758013222251367641256944642623104594429820876086370869310674159512038342855964268592841840375338445553324177919784177346181330305417774740243247373524963732704276001463715016536352453015185677335337110793858560105952983490835724283693546855539152928497659138026411383153863180935886055249976785174209992954963393101511825584945947943754840893583645813143441267733712902464999553152300587758567078363711587180950738212883241834216718235240103314122239561860545203876767734362998473968076220551645603035152866797728392916708111570874176284755954991736648366653446981035709296889899239201315024374925708250016529443638746159212507688470419274088012602848081956647667826619859045465622858848901697904386852394444599421702122552217494222439176019073780222221701887716975906758391201938461865571659170059521142382549904075364345756835862097674235389622049385699831771746664232975835878239038752309689696463684179132680448375538636977147675591785284841946063326214901988803183083998008087210716382966937099071049188373161349241783240857159136224038908222474682889853980748843859414929512811043883903994438707693151677804955347855689175695962799006019659885478659529595629221330585514715732504925414772743739353656358998282835967204328133704587357750630657039702644926025611208876026578600362012655127666270299811432313353149985635826825801274948915343310523022938730788395060138146067536788544697182351455585243674516137731996168146125808569174604233879913317263778492519535767806728232482431880641104859142882908947978445192058680361321809659358459892854267863646608469949485048264314054660904510595862422037752726219994890618908941833384797696479794936267631007377968587125133180187662096275661569058591675526853820268185470806518124785699777730920141554492988596695547520511955063003824167529244230788272711265924973625722884794378848043941408878376572805353944382335807343226277616225529226889747243536131356244404406387967027551017703683803500953532938215348958865193878763607915598786272614184107295454020349258490008811631201415409866634867725215468056515884881229074226120597261035206465429505796128939385040445597462562091886269174083604067455587734402671374542051701748273748514410400800600423375556537444179809111658913177118671312349868883545382785998901638561650598363338503014460928970279275424527355553924062142111291749023562999296021087621339129558912463386275147957597450692176048911468869380937590847918959104032119328747538940776906169157052780095712673218234970997586417125092334426020598049409325300826729928866490437309113304589688886857892436118874477748322256020217575075924733787224571999196697635488530857485654827014192060257720966354275097984180479210392296126895801187678101268458776930040375395552745474741902780635519437054884275598945914913942832651407228920139903088319984064114370694816212287554440417921292216548477909371378504238508906355698605703822628136927065853838699531980062792255424531063467499022782897066702096405343533751501940188636444708494096076204874201575911401749748762783648181478582132472219187342755198408856425498235651483039532893602175569727143245883327593114930406541863472949396767341310676578525581908632256533597337856549730023334308377754864023511135207561692655620216535477284500175128656149689669695023987960946125879581573175719891426083440661654061752924583014605285024256320571271666910824678973354600648686084694884292390844436521052593117802391675134220550987006698463450343441839156341221523166834764710873740387976568675279004273680990113565434266979610680312526114376577829873790281547321996221751324498185143330750550456183523344479318205476369907053120878375619906958129005748253446413621373913126607759737222655814852928960104760094130406410239759866045784902921864471246973153241828088941754621021410656860844020987989732591240359302873867080132235774162456636537033617362278319502155007590738985566161087346544854804343536246650593456429843228874978280613874228972136378827403373500650911961022284174964290012512775181657291317775748884355212663673112892215271384564185739332669681093435886534127300004666962068831170578101928788241910326328938611521172889460016495077009860803379287147225876474679401440427402618755913021162762177924267012246934473183821696059906623236747897495661622183231300671031567214596325341019465585859843257746942526471266264335734771073716049561102892313664754410852060540072544730685466432105406790926486672283878413553812168011893005196586495907796569743772228052935553347451118627513129681033934798399301201893726104590454635032727958170114123854002558711969232216328985952836388442598301417592757904195416745124336587218246024994243843231219960758412925613325501458137329130388039670552250581815366164680837129186813167262001694266242417669769774893582395985298479986029377901162601029812986823647114228933271258893015040956770738339488776630647616649211662505881970309362894007004788161494823830591702912486987567959868522169270863077617665742438621009322930831873314721052487673613764423221231720920282956122780564925562035682460938979399989940708065528990135845757206096112690781649879611389524662438053694155947081313985018404523132330750810810464607217485274599118377754215245058850383106669998555546506299026150585616950211982966671146872806306916050104189320420976079994176330403577386045124232517369367166632982024676191933094058243958569611643119251359087242425611369627540039494209292439346670717211383435279187571688495385238318949911746713755118379589776693344842108563679482101905579301437197102018207978903803093774467909275144709168985739941829650982903996713399475631249482061551234043341838915142032564674221728127014393976207179995518544968182368167114023631004995378969101137678383467049439740115776719844418788912565820109420658453257521982633019880220128729918772058931729856656626186297864847341681287082071437668371614847491118633798959220151479442834508492084018376989216359233487974491115762718721468954046221315456073398425707416273374836513398212831900036543712409867243371871677192741798266541704801703217573764866413786241309955553760647025442997173285462738200621123009069092482862919474251081730805184161786953018386395511080238706434570447240669240289817946267196031829362343615247076679065524493241972301460102974966280357780555107326980864009901939331847238680648013148176151582251178220169235044072132054376679147845849901611680138083063279076533499388599562669393588997230360092646383243245821023805378303365837173676995759981080169779512840753501958444388441483628980444671595502956603403143290548405777089042896201324158298336134380190180422059011811045199962765878195708425177322987060740166415783281593416621952907826194630040450434939926532144329255333359830746614332143699088975563946271330660386492327716017996843912799326692928377878140436569425061083246177509300514417426705706588007581914333784790250047415954460712605623082612218064990405815515521293467350815230329390385299523583740682193137420348783292230031360969628090269711459531910262533898619803978349344464236833030538850455357190696459643246005593908262984039253124243234556198420118395893503735702917744303095597843524533194478290968329092978408302227735047731939263168094344823737754794623550565593094505967989656946593288090943988823653065988025898679086735832613633542865569371417117254707220897314791857503273475298825333812806959481871974433002620857122390546656886859361895173120606563170587082401348629650810847970468021702892590637695860266438385774103307923746478977233880561982618796865290567096804679560970325686651569207227388779234608831669055188027587694070480830560965114545853770902478018355412727493296897252229239996113357209415701555673618192500760758837095864540857807228782689515141941424599173775511227654981351785746730560195385257728519529603384943991699275884372749526301774185559823678887533561598486330114066350360474620849211991445525617651671346418179327775816573765279338280157442695520505179632661122876517529441447670571067903010888945036715363574381819265654080648036185707404811025526513076404127078928867516522284760582836258107595441561581578321980107887831100566716703610342908753727058106843710438317652110344187007749160519399706888601272638405373811834154877102478475764822986200305551294997119010435776017842667913073461354255636509423873769785239369367492172835252108593741161748529110146863648836956940175405001749807670697082472705185850256651560640001077118025879352724988907582418421325433323954039300371033750107058165271613743192158640971391178167420161506231149018792051840587800841687299868501122725136511952236388812369550927216375925074319131850128746881160487838395915462784286543579652178258322380538060729816711082689120652449090774165716146265127903869591493245905654483942441385643996504040366294720063460956764831149277905902116522595056190158612123162352174698206492837285675408276924388343929968197427988123289715061546007470594313251799664837183726026695283276075843821205841117284043780519878813597463917277288345694890142918095695117517702687690623790388445191832538807300254557691090615114886045914771794704541846520134894302209671568584965717997215018249606222682050422722856768164365201216557459918017254750064935059468699807625916451057455391136626656156545484322027975048732529297626554701569177359651492820161780394145912494761117150593505617453767323183348731773506472031976497153134129728880008718254488613397436758755085843221044922447291168900571952912005003458345966098985095916957658654255922485656029688328657029450463738061367028896672633218100692039038310333478154959052540101026483789141787195489558816344769137189835469193849388213581286477543259114172473440517544251333553892351474774813941898973088259113106121151402219580582770740112612277596850264564758842195161306627826186781112140740936886169826750916692778664503394560811505646402760503608946318906539788455976875379081526124536705205556126426488234493354704639740300276734068815201784129284391179079442085772829928930642020607597664860698087370808679125680063254442508039373336017713603027507300483444018115741455507366858190338780844171451960194692594583072876910829592140809203332709261424325423644985199807240357907056074807065327550391255371165041744675318633958923618249636852213383325528726247373010208529308476557339564471891986331746190203508346435228970541417197331411914064670449367028061814080267005821677522387218156195607877390682289544900644584577500901862590221292654266227666676235983462140533188929223016638067916846645526868320177107237090528761653637574642453680374897333797576910645084101191944391267788543264632487422099545080753510766951120299998493036421070090219034778321296833086315641600575741469630277093333223986698705995399889860843694431684695459267491322980333805360172124786564289883754758610803378804440115385024069402460853133295317984569046009833968220010378082706616900525434187276088954279847016660704360671080453028790023988656965961586554326627145104766387631225471082699886261482149341403220015321617903132054789826864706686672876493301959799097718456305494787697456141508203271973884469409670848208912255872632747213561468273558228215151388425040038701885700189190526462930769146903852012999570227932400244925942049943309707414017242453306994421464358623600929506772183785465036776664023082229988735005943126988173500521875850552646252659325572315114880666569816448876493618020183026451973944988186960977162700874789141491166957336307336224986331644365792754989580244880905589313267789768480649955673848244706096903896162303719816817311348232182275963503695265984876435926025785483320844793580319484425312533426267872175986455412027369233397259414375880605422899144025708055171299670183648526464371632859077662420974348169015544636794966681602590349547388569180081408813956110274715103671479687000092603435287646409882825831470671370677578113274291045064249842150466978880389329676883025942237126046637845804256741193368020882041035107064828945873310668351709142532644691633923331472630023273975584648302951753144969625014400144171858587341763293115324834995712998495542967555926936800913089592627215330854803471573072495321581601066853902733318849390146590854627214676923417764323669376646168024004013887843936635683622469651098615266970912981843294549794721442108595851412845932464315153245765444712507221631935322750944685624527042567908485246890197377417412257777440712325083309666188784555685446214099821294179088720296536844741522464929213511197940872409697330464904775612252852530972683912573811078401055895107884513155156312739095676155359242415327470773989180800284190280263079319070615506443101773020763642250317191574628567659736995265475945730954951311403395195430577298566036829972173913987493266294338339480407019823326558469788323039380863535948846965263053700636991973779848523088695340152736823793853056388437306299149256719760355766620667560304682501348115285680986151257292918498969503451180510253938781817329748806788602500171286168130742404693694486843303052995872135994068337052678542984619808402557992068159372815006060271016969130573691937920386879063903456110711990483198276534004046139620814544149578167725664811397384150997274267395826621718333661194564052187860314271538164722900348101548869670409856749018448733033897286489384197262966546304101727876513415251084705731454828975354196180468678367362036766950683274948182755930122218324934097729522890323587939679173259541057530255016908884595902403206911628003778479849611856609246865815180234398805905108101115533953895800863077821308025303049869310030151074486378962941974580995956346202550856411204638316369548480218315351779744786660759764997071241067597276307866516225853496452523370877863867074914667814136857315015129355204721773731568628733003305177840848834781647628488469190761244277511332086757053204478697916494290199758127221653599013321845744559434839990309434572253366516624928259541210558785518417267123244588498805700536535917384479238411662569272043628868068672794629012397356427761585914348294121025703392372099424842674905926063450096297922683399861978889915109146688773300373070640787421692199202874343899434368903806218230154657100870693004004358675488092296348548674186532895450671483787768818676490357911825889921876308188520503625772580496476155193048578253543618122888181704535430652224097528176083314991244813392813959323734044955373104256847080834776470843046189769084067610015061217273008280631848086378216500143081939335504806037757800646580456953247892445290832317612637742931813385527431953112947485113469342808796814430392719989376051216444644476791859375478687808830266239594690112938754098370580524918055464294338853591229931673706619744847027593835327645578748408096630256299883327631414464693775474114944756023760865799672398506296551071327519898123188336679717888566117734259775979232571347676748392654580093254141346510907315803868461448344664190600069807283654197231518415663498468736240906860566023149499420735942836409319950854949913937842285856069368680558330104588095668371388725683588905288467691857417335911253158001742961829920239954866560663217054073521534861845000481839525558004720829765444869794143848254935545683367883413037555399574620178325232267904722994667314241394476342993248416048642108613804084910251605668744269509803007250264710629760642679010904109413657742123294840793856643157570151187892773010522353952617769889400526577266037883199019539103297316607549820086743427081606638293395857395008245610785027426772457505386667049717411588676770035570413384852900001496188846074123165967077292457753383111369698281138589329737650423658683322044487983649726710042289125011546750253266827313025546556460484870860572082340459319776891092346671112124129718960832691395681930424120857159365103200129261163171272711690691461746021587434180417956182057701601761159703953986325018209960740836034714857225521522939470659115988260449976412419882841005416682118389496447431118044178522782096155461669492358847713114926226861311828399671178444531851685779181450859558251823740064488522347950479794374231045064021446905986870443716039459567354535243484384586779637865281761845446649320176156097560423224989399315964565937649045913602816861117955062400227349042511870250569385230134231280411977778248204209145920079556238306513332074281546849175098290992962376333271210980263536401842491720118125363130291230586509763974554304780696541942452344848085911306377827372195068793576928292862854788219289005247297187732149701994546425354439965098094642744243805927532759892888004824641865048097680879847209172126315504761829428435471833286073224738364142915861954315803420168287223505664504112985556484352343213991021416705385576433788832568371124426874822616300534082615594581654953343334778769849327075496032350609975852590540975930336603485561200955601993416260213477610439493569734545464975498810170789633624251014768855623021038452950041449625051386134866036403186333687752432652012704968906680280961047852548692246389419253768155308140581305348129048886914897745479266796325308200953951329460171860517979867462108567986691010735439311701600415732774251449658112019416998382480238062211392826338658676481884956592167369158937231331307776588782014038074083440434738650771522559990638622395625242097812591129826725508538719235506762531946481086457249591106417669010593072381812673460873482840327004822484280908828389346610869878611499572300634337697523315514482877018406884427023885802971707532398421623143998450933313342862139048110691636306803705012477082549500002072055010757093779062560346059438094286294987705143384023082120983086183884254964216744873590122913748085581165493010082898166465209740723856063145879586824449289808422142251134436168086627376108100966875590180090902351875839999600507338254629293816936572710285163963034183814048127942849105099968895685573724591632676582764369277742545333915362392140464672663750288052811823122405508280667044548774085631914779222140384517056300503324115537354564877180541650359031330104244232835041944389795576644386348397233809348426031608972232961429352311513019224231415282741974648564689614141297612991949661490304346155789923405177734645471226938208235435043360910921030108990009833338222203274537264102817056604947442513191274500626050523255446739020532917379769609686894476666273929328108947568201436098748822387099816250694790925860478670131278553560571641084127178298633647386041384145582482649866977561723227449726838147190186200307340329017966027141111468707165355363885594505463311199775645271846653807383983801387707346070991751103113502717252033546110115212701548822261176717649284261494327329904089010826045764125850744942374905306323083288198621328286562620960317681925467508833618683844091337794262058434917170913926105542098857473763945905980746347402318750331584179469414840883652394445083808328629341573713890326313992733908824386369799653832661188664131613254737011993432607133995505904796888923903808864756398234053479980208293307074047399020836742691817872931438954734999136045443482945532908628400393598601554665852180398893061457256399895812316707397198575794724915864915375837577151528037074620612517214128725185592296273238040231813244418859948400226798782780984506811928078483377012904363326111088220513093550776094802235094557623340137626296574972394647363062395552241096735706983019127121967510451599174861400414363786069097317633652285993796711460377211585071828425203373904923530770322811091383144674309709639696072025818941135924320624542448391762440366046012484928486839463556683354511872896918746216272221654832928570471579406431653403183709840557720235658977760075380044295150649951050896643524977941996652161788338670294541029381862389388300309263459100253851874816688598875343342835816192484584802141586329283635037754927442867081192044888006889253896982456825822373479823332017495807608609536725365062223056225455764083317189282397617934261757481894452189026066892779835340786400784967156991560716281425759757769312948240765903511424091909224561673934564566876197895490815155143541420209832424976076259978880378784063211683183972356223977288322487107631801193038224906913392228242005345947375010755439972150047945871798490544037821166303887515215600430257674492204352775884803135064381086927115544765541343963738618104816028285342393017818890441425423565863153072978881439653160612904401263887571065866087406280762487362140635828348592204314235193620399144787953261381813742078750695400436243175904441131598558754924150360233270854633188759412321073592196581468774409799223823532298641937090573191464834030054991198073702882112617210168102035908727707980385254094472969720353150656853413496734493641715701860993923970945346811037509992475812136428060656728284102767382050546855844098676620543172129773538432176354447530706333224045372385983544735679516132036889244069271422901894334832909779446331930795884245001196807179309639612518962047295118142922205190468310570212919125633696209632517956507709830254432832961845608341502475495252547736118465915964882851403850802311894895136232798158618926505011138844803040324381483580308225321079901343769155600356400419010965546282477193351108358242194349627293954116803236371077861413808774256138615334193070967025457967092009876441133168346695168423314910227760681819231023945887265727675352778356661224196991723839934719787618977287275550429464715291160255473554028466487992147759515231852428252831206322266348983086473514433047923197904571714870555328934468949115845688151573764772579251888018754159648345487361478730069861197413509022165315168150298427606472289273266316318083895949768730592453942350898146273702776771220070495338539633282263810953542664933438090740066261048270391824073312789725171173049143779985345657792092350317874026647992704332921558961146003282150728371949054134230198548752985161323446138902359713378137685348369709902315954935457822047208692561449278280260383921391762117304776680554210741334371048419189521988626472752692205610154001535131074962608221619353618037345213778591344465698171193902669888809256707996611567258641241898092571171280301224440334102400502810247438992569947779290478968317833220148652274769471418336320083730629892868878824502278030878906441371014883748087501540509972991512889374148183918736831361517722233215120729894443718078554093455560698014582441778503109202420834206648927828182036250475629939635593413432800598091150941374698552219590769133677940671736831737378643089401095640094567687800224025811292566376168602583486512026527358865420894775228149928094519470813986862936731102366230148880221435246427242900862456750944242909737047745498356226109979695023182322973143863142324377220803622115540068522592281894877501255150143321476392276617668283893477302198124590884411195152478196795720924494997060523696978247263102881958553298944510020337590305065557471157915871520665638247884551732958340925664626978075157560947754769262740687033170956678485550095364505690374093133628195502849423612352090452173194763469862599461248711043922831118536904806315073294148060699286331895058700039129226257146141326962290125572654927903436048227277229660280305077666577928154409588126055912221947715136969853269575658409243764403905975761457409173833466265897016780931228665954255403775908302499776304725195914011847712812758980081742528200769690376519787717002774795861979067482281131377937805658237458320297916508638986584610777696995898345337435117892153679549150107007871797145682493722349720662543713383965707168026518321689659809164388163043231242994007470245489597216830542774868695595371498956221731163354786300745796329985079637417192956794750083077931375749647138384596214333853085049643032150494389030568903660586417765758406570727792171776936934701129186520698556506890919455546275954721497815404821683503610513330505979912900486414205462595722440154953282083449498350846157582834983339968777699451546590334129784218884424951053330391346921421990825443354185393215874385282350601964229084345013051743247758866826183916845069917503652525418941004130577091425057200104887915032205960503741388712215895380851436565892003457857280325737709592577255614919151321546362670168196346189604961394134427308336645517850948653852985387208261709922462122423962162602859371227532841324603625593657676802490665204451800505096167891469579537209976066831168368982328207570753685221588418024400159761161111471096783858669730784183108548179460395172588547688309582917195009329225448001093838092349505553513726701153012658360296730377561685537700521250553668628559643717885563352028360554136252986642851158831897176470223089901072093127193850890160588390156595195180062867006524969869252962287371454148186199779514126094459364372000271067769613499458448029374725795374096542099994623029048848883716793345795891026137565011180727278466752474954263851799332340981201404904586062867122801282557713535828152996942443428596258825205629550900207043655604973525186277625112233212193011199124046637422348894100449860870012835190398256063161078121514002307998352541773418515637681384545135367392239969190150322597678804500544309385748331669236335546052002495092422623892971902471895203033392340245055822503645536316496037593621564369909718718812318684755143302347554000012611794155730687198228018853953426676592819982833907254269398299378121490310962588544790544394672206195621674829332372298791826903698730177836543094625799868477504897908740281437755312771103102106178022341516915180385198949619502166159362938070566983689753390068946023954799843377325306493710057465367768568225478862639705761833509356292537501842824593451016047768273128717843865763531402009313614185020128752645895146208834826038853514584798119213613489958009500047853948029091833720604698022125078713025154905060262669633690545942131874242300314637850317789644835401534482082604488396245733533482625445672009311300509839093251615506459502153722682829666231123367897557584348237984830868038808329318045440081339386786333355345648065490175690937808473392978463108745058806709241241467290140051027408334206046824944711741859363801838262209041998954952281889069600401071052351261750355005943276658039901294205280060088909662823451236659103757798840405401964755968892968509373244379339523957491070703315211785963458046575530059327010348047759848222445227047710528923837829109316678644375862753017056810071793565795069436605316928227181759770776100248683528845993093994361154786245808904226148571200766577536187747023639961875923532602352496510781745186797930779669974916106310378377524066240484882596019274556188137595861013571944875204827145765827705352327705546420483176636135262933175015948638935969366262093376572906858975117052205871433099665878254709419146134345335448077634189820514929146228273958037285242508528337863243999737362227777329698165713346328325258901070899809984033721953173679232290364950253117986457860808710738283383781444132272167761566339533665969537704820779780814186781326190172456515674031510773088014555684359468799802065549131636351740748779108802082922726344215492776155318860398085092684291872601017001952997383511577645003162615995783553924323503720860699794163929708565272764249169854073818771849169011811495548867213721212438670935174135708720236097696071804648242639187914285302288350305606472334364481463009444981277182687442605059852506624280817582881958969406735656147800391113811316438168333843469794588912250696313467680475168262545717407027697033869097377949570488976281797823041240039081996226109842385996343174209482179018194483929102208441619657420139439104378674513701586927026292237637178532046890088805608142288305422341550056444186238525935198821607620657554496187980720812092544711398492713286028200825753121646162946791510961910938528656930502364283080835697313939758026730953458966548659248366811848823715740581420203980287601510564200411753561433696583570103954342858758928744731241582037807935500546189939503144073356377959403887063846287336198226118961978134238908650359510263076520328348727282678067094757684287703004313936616894541479073306705619656870553734368564675827849774192435163997541187829492043327302966143171257995361737166565878909181208736476082671967439681483987730256529606465866338766001838541718316703750464126491875587978794324594781916005768244518276447813109006819482956813688641380716503508532300815221179323944653316233798439350944783945651898764251179216301119545389618942101466277963828843015922252453109242177016449870516158641014113181617817366541425482714603308150452247185345794454285075250746555045704476244059967342600134276883107818008342505648924017462268211394252321273955616247979059894284976672637022832221520788590544001936900046167986834457582833627530180509536163672227885349727009995754266884362105965957720322753683811694791568244658856155447042325243350054686891545355529186873761094400980299974345339931284473012079689752225356997427510901771860628720121350295535780649104982392551586983292093041154686612122724423414324998796511307911115514325623796639042780823780871131800893839519830704163246755262243065679210608782442469678503781718615994879991894312541342717265956348819804171910484181801300082953033899278961535189582627638227188427647684040937626347679659862210277361800964964392574780265991137914678432138800310225462465374521687569655030249197459503668023845547897745037659538023036867740908055475964343772724171059711537529450384588182509026743895659679181078525307460943570180651657733777199005616504788160718360415209433056314902759111428408202485412065132327869865798657434420482956867727239284872877510034986694452038174900115765098462712169193964586278490120099469322671070476249951384481184439789079826258576451937318966248616381596571894183195436090454911836845880787597205449318366192041750309334908878487224578487052168238478863722705488247974199947979997790115332845454349802465011740644161471995703023774000123977498326540106111318714446335968714505278834375536253824864354419476726078257662554185156637795256429559904801893025807341795441855679367876774185186897924640514621463019662422460877752306846423729945498916685109873687139178450470368731417640551694076406953335402949095295319396786758499518972960946877638646142492468347805602743533067324687121712134700788699942497537626191875480681311204025143884818721324324055228930458029157315479747671879986328477752780498191908215136272632738144748981680920218033529295812173210900445624444640005401380786347062595834340434396337731909361292825482893948004771053846762484332900334716399416175061052793406615563235665093726507465523780444463295259456308115845445026184590481827289962834881083879778678595193495623259979892377658449083837440061684897022269132889398853765751338512952082017133206300648413505206688943469458237193824736254428953100337563034938966909666201024132793835516833800986907084798732385976114371302552409148686384509363587850794478967432978785319678729715705980166082134629277551141145321697817903439652029839798676367138136945712395811747018780147928657550101266057451327130653982137472622535066455143736090666422355525910089178225794458593623094190562940419205686619931525873561375911890744651979562489710365847778657568223927152361068253502240559297861758600893484591946318051008646150292861960058776370482913375768999748901596836061113758721635611604588079873119673294594131590966574041273083516291289573307199988397444033771148233963816662678231313473104742754729050533177462737522444826497355542759049848714470190498474612957154192624967377126231152371021476381596663566107377827803471317997404200690683557221999937193746763936287007279819770560059688152788737611251425795141334063194728507891475297341005336806600633170120465476438253069930194906268247438533709624166954521784846201179456659175225578220510335902999840189926655923337952147166384309455018925504985860027749202920030623514300183613329054758485184180767943769071760655204862752514553556860049816218309675933498177128630007716371380434046256349506712721855208755076866678832308921077215795537188439944078039671222962214332152211851944717052824921990316548009393805056139772032503707568291797347059702839730183572025116419273143207883639893213093351691601466043751630407132464298474732211457615396283545804082942543423327015196455013882178151473940247055175675112667000866963223933667517794844119631914837416802961927940793756852706676644689807939855952440080642244845171181064404895516476066024889324312617234332163341130401956176825515428469664640723954364549183774739853044431343284125538263188077609182323036987455335271582785563036498415659175200706284303923180283786793042632945982092879175607502615662760258013864415221363039821368862898821912645230612219668998733222651619257155137922986728595047307180159448932959089078318336872363691997084903450142033868473912329311402426216345345728191138116433621636159950573278849229233497953336519736480978009209630017380338044672987834144379957683362534688254381854213755370650872231838347990040749949380130760749074850602296185101837978748341691895915394061339731672824121685554681058262713206975882103060176223489623187978558014443737482027839752565521438438297514668572603557926801676621191020886943251020674765375109098982585911483530778108910628762015588712750067545519790634214973513792029903227349334682227764802133877445287299883412190713284961380994150999885183755690902771187845287405234123342650270293959617216170776898773056359384367778429880286608988778639918828184818461376318442167931064289911989536493024209754901101624806944855738646779143576489390656555187648558340199585586454549252689583302761192871310645219162532569120139597463248421637367264649003795357664383650297170249072559555173055811143780777282296025723931572384122569069903021783637122870585091261812926956922815725846980616299126298751047224413871123716502807088321852931344984713373506954077509170823835529158193773163302469772459273472656354121887602481376557943946291684379359930394325943927551193428992285131224419621408633901607858540827746161587354712006414929425865542765957517113945083872099208074444859898680754750629788366648855282182714751586981843598264063693334364046425498224387620151224886214199739356015383128369536839721135506974310153813940927120080968491877878418981354226905935967032054114803773644749463188811714896068029987027315539145268120132114831780338864579323570656395264199121071555626956435996160942952166896773688976163376801596782418925163742014727277055015374543483619696379104498969355418705149520854817836483377584961849401111786314005897932337638712010483014071502921463089034199438951389543354852939280063913532691478643932655536775559752136649686722069061721946532603535709102581432004378586202047440562716739525146810776309598592837648976549622076367196085551903470966111816645073344257087845248585299615564929752502029447738657329097328291323401935420833635341010030943124902899939589309389348786199769413496190579770167189142043204794079749074337895537109303280517141185853131933008158741663380914359117026978074443493945731284377373281337666950074518737825498182149530836826718423802806785064753333236600266187234107288373817292938614344524502771798400075498322934830863801606318056788834228541754021975678291802290623160423422163165991790182623124005019555669487162708481504621685146504150265556212083398026909621557154755549139336119508499784240809525679097814016001855762491040135768169016095952629816531872235011623455833434631368076664652865235372401513996675835311132471928168316026087647340052577837261842656803475216913490363573953988388946889492899160360367536096653157444769643862966490131285873934559957170043445157984446879996849855576078585799893650215199616696005345931748760772747534933788889184401063179074911558884606964151650980159484349465106863297846305150817676413289211892467172871265779016079210323038646932173648292893910432378851635891251090048818959843939872252104233230015155564019592724280164062363609016007238076835989942088844205397068669317465690360372802813404965256693720537735626081699909561714324925311809274769037785059397180291410654105758905829307498414775874591687139622209846608387884832155031689150716010383144922697464083543197454916190712281213025435035203215261910778156970320835033486426223214769437684179073970857406096885483290948234309663050642413196888551342910304441299574754476189032475155370228641524388443546610959651009737827143366722367295657188288714202533122571753808722723988703905190306525001568483368428554051903136359312061205048229162559983115351883560039540159193679702256556975241888007781487017330159141257828018653032328275205017308191212292500642106555491432486887865602080413132455543254642556647026077646160573042755051484569660986007197588529534778054478304245241963006255547006745342656974839469243141258268535865707213376259597547926231426938543056953846910929885128756907867001956931538263565642839358058439516481007858972702808283698385309533878415518192036055389246426170324617293503007869100705560577538782722469715145300313415697300459932967522487901997823922646608563136893481143602126493045691501936704298156104350674436119872002423636014599016445043862444064049135907418173029131221340420052070186854776715713770559819389971121014507396442894520692653301324604329992026840501184595189201710930388635976658671724119228038594464479928828957642577295306283554052064708146215225410935669788772621243372018379953969593654663472579858652031258197291465067957408292814470590491066692665239402398308385404818280872971088589093020400972223205198026554361082383756510086866929522293360870832448979765795899521891836100766218255283977712487255394197192787238911757433063164062646644649919307797015798780199238648067369490963223009624791731072241173407766416378550446833213243850447784987637838192644898952283619950563890150199357767445957809893183386239706590586602371903458181202196822782762339804029629543659491561085842172547183367843130998348272205593018743262644273929075003475911977745009861212948782742627138908746849404811129486477498128354226622330107680421423717652876542190768768565921879973620721630066389162218694046755808762676055921788290868899213487358374959526391951234374284373613097756336958348218451573096130378847331742864907181078452487704972940342224207020278937117524579701348221977437938353273652514956621796843994224793248556867343484876769438830216907744352768306263404944019575982566532355428373786875589046799993471466831999932571392299748512944058367291885769140587607169814742877897785452511279975462483636271565379691630424108884778454972208295119006468930045168826875462996183407952835788696406075238273349308157371439976223539912626329928803040222043102298744187119823750250001105101904188212276256495513240583331108096746387343119642333582697382940987884738888175405170665629973291262111410345007693557753279264380043177246521638503652188321667443460903826106000727116277157262049111874488787891120558772752253816750871034982435257073002339744427092170114186940756403802677895229671958848784426521323902089664221771160038593149305009671005633265028782747275555189747623730898647349997004808270945662322254102638788605800267629419827613194195994082056344864481072523855400849452747973957456667142067366639654083157505264040454154256172057575865511428084871414805650170829904539637708995079540830217759594702451584790479627864276316276345991884085064274953065163938063748149610194336180404660428064751873219868637733756309522194196850868481945410805908851423237364607880679816556294357543854715064528428831877841667499828552203963418211502254055340286703088893936411831654632742504346376868028273343520137992794146157300011089352608616009151791357722326120541096370922685979101124818526199549660636544682014010183552857970646415896857248685061705098646212221667712162068811905049125016317376511216179697275993758670360333374262365279748232127677125855341729793287260377911664739993181881825311219453108292547907042018005645196830837155289495756352838693435134612576088384744290198001567488179826784148407343000919381801931052024748040043949988210481845936256122260973934752168045505222099811387319914397424442331383721893385250056739586752114775447378051140045953981681885910521807845860790947442523038313941689360108320795769384964567416004720729311383989100428598835337828075837409532539934234566105198191442456082453700310825224396680415131953969204359444238987997620738042037664590231436193026700467003706197029478171348783522230978976608613296841061026782132903514752812669533789592393958918081681081495640367649338154612596705986442025050837240630751209313283777011090862368228054527899066224285248599747891239873609667157198944523234838105589622473137950189807176734452915836482664582731947982876344026079944656306166235419080685487635580909748869309733831142561612121466730672626802777359415843699651362477350149046528490846657942063067852033307146461258680525933744245203561321507120453438090165032621141946018433135413513259563503381891317287586052847866628093819822036039315026522865092540710811151293434294786755296579047148962810450013484231045482380705089597056308032666209801435123617175508572239586344741093925111527411526545176683581811596752433503265582683454996054926783369470255356498466004071888361355916569066890737612311766013454878743127706589245598866039437565948287957520069511423545867272160655239683286099947187590403020649856575215467651805408901580007640621903583406945325301468058134438467974687927688114132954467555897093493669373051947069481429470265777554183098889833609253381292132047989692797987365542516494508638428620461992962892304202639235941269224672131610328090199875886000798910911515162871125982130475189498027663829311459255756105470063274465015898976410605159685872685631650811376382524366520266972963901000648892956592569000871575785099030958042955341629085850675756801513268029789949031736280248477377394143146527721894787416478332891795407169475649047306898899381385532157586162120449159625843248046953594823907093636326775801265612361587046862223570388419181869956678601653930813813818722529098164241817018263802960451472778857588586782902610778237052644239791794793172105656875100905643330995840770949062073870408907741848744895231386919651126084006958646044144407918606589119031053051887866998653245688564122167165093800093102965247085004597645024747767266340239755999529489587892863294315516086701675297768326949343864747205470404543528715730986541657915706769966116807026290727315639641876031497816091077393580816937641888853650382831272830842215104154301212303695861571669429011737101929925291136375777154724135378913650593443226207864136317949760956723021631888902238713776699672473580770136137672539260498060243698203864321919910267751230836903912878961194695136299575625108949898713957327320011418819051914611973810004608293189866259895417917787267380144088887037938209728720969235058295854460182896173397299441224545146534370902843496315544288944338909548266037074705796134009128658737740344238635148486912278161913910277323957739004506858135428794603743420300828323812772322611878533434646372313735041210754582410035120981399763374620041336913696341757441067092524504267218950943701071118844002025738961890482273647970071727383555545758026189541982111840874919670727970797317714013404182401648469019422098004929354082117062483429730784332645372185419897599610255151570593769555095342462475590965369910618877450870597820425103925200721826253398571561557650841820091026225986571712843878724048201683339500784366995659124490046311111748723884701007863329813866470691178367143599141279645829718099098315659963169975126040376375876993280044949821944344041807314382245758796119913172889111209501004386666080646507477743266634959609464205918683684916378266178374896386232030703398035465391287234046341876618455016194824731186060836329163555582121162968170829381420058867930409459164879646495901197595618889170576966229656021196308128029717092335904107369620020069664862837387932038442477208217683389106011052547852604173889270746188095873423950803784996309010502745289535449420666590792590019751747820747918607692670189348858581080314949410077711822284278841584953451786708131251563576123256799545846999467474247306134936532790208811762530507033287364002497974346908860336876406779082953843346423088064076069344211671296624956657988024901424037852691617377668050099206279275480360622367518827179230661539529563855063325310279891952106701716109217317746986709429475785631396955430702051625320542685655491833558552325204643187960853434959696329793787802123746237329446283016437607495025829346398109687156124113243643026019372608753983643818170052281905185245385570100123742219728291286362274875059279508757594377482628691706548100027558158578420141692570648724896265337529888344615707079766475731785272906204082388644781546483536693360896967578368792896626283945981531218188005027260849244385852995854863025998933060438346499244418215563322894754336985257327724030204043682275562829958133131326141326663538581548593305423762062120725909943862279768887021474890985772697833162360949115841450206585068542319336929558210191335343754932452678186800659353773224971662958010491879916073348243815203376008129169653614704623373094615576607150323890172541576376316290989071502132675574872916431883646459694404187354981573418290970360717506661128719688742628208214746153219706168434229396145429901760529548024989778208774991989395709746366709346393515452220634483230201916134827147038442650104015185867274342639717073888975453873642407775806916190211338767271753011531272614160452267053460057237489324234185978706175024210143859775632430231011288187602999939933666975631743407913873808070762229996893948569543272075172565306676921529184362277880083801438380074829468529267743175386771633165946275554732285457972266742454658547320894949223775255804286430915895053640288177453906627136226632449575619690753216420373706422717883405036570665047310099817364971595236035880763344101634046426000186315262203316268543253755272363051555569573985617097404040697769039696006649936748308845935824009300172045941829704596373783780088510975599649704721643015842664304211699229209348631111517868560709404398818888898180341984201674742521290564724474140886023214553103180890654589656395295521772728598274520020022551588950921542546525580142551065872455559084295683726265058894579703264425405980219103665134288136177078621532324067918499614889643203804189750642450397742719338608431165724073255908052081469351100764508307584572936349250296557152115455587327421976250350001526575692620261777784154386655441082933877439228166562674010648099231014357468367899295076622548856609308175696735951697094909964609168043983207724391417043104070432616851622834261743774218692575114712793709790267872612169410502060172498158325235188088056500699735350071822530925441491047438258007069373155539814856195967249087348718943486335366067723090164844023415107213540948653515469146919929291075225708383798257139510820447910467300804943111164723270960497156708310402022634624717785068200376520211265486684175521174577385303727781591766373692531471446421715151656883837585143164424857854699859225558019288276397082560358708523740220023913705412956687406930539066034474152779777299940547712092897272563165105618697031722467479998614649882686166838538311073732750462234425321622352173305449769635099889612737896142661743186919673538834423191546740384828035851547781312331633832778461589678818175633076640749470281319945351792057543084801333317643000982261542698672451549588668781948011593206933109180642879471084772893361064650823303433644997468351878631341880871195971043935207862028057103395775534301160468667628323637125879502487922620600364771842875370310023916190732720596082214131044542234369817752804077234204155041413637059745300408531658465798067105335827011546956953834614341071582121979443006309272824166717311132832878742208526630589550760508779345790397834562170893683636030335142322420659294680614248177148568541691588895802908404733318410350876190594069516903612021541340953727560223455772108284358979431356125938091247020161940847564502290063511778473398966478071811549092049035958449961184448037744230604853743205921408653862802917167676851184187731013242175310415221935018771561496862276937130913410512164446804380854549729869944140025387793487885172608992272172918553944356066591229462478322243091466182501186941036272748480613582859309311077577137718014280970436155408026847463067541468382174880029709779675442014851920214722533080288159640339242782060205971230010673875502814836083476798503111840608347174885252679351874297436483497452951018898131406202606896771729524417347566514125082834763668061865140937715317582081786510864917118030786890444109590532232281603877303185883014802620677201661729358755672899070055966418177488807905365248830775454104114652646267411930177809958999090252856235987602857611936242765884224065934936162307890335622037047914480579777281009069929409802042576805579988705325298972204513442700421015190287503965744119817455989608500100854431505410483209399360156624018192752223006826784054206864505186808960918175568096347082850778535404630531468424017088140405262783650689927534988987073510842076558969223582226680948270894337365079280116038153008823303225364763630177157175076884114755819276610556430324641944026574619014227768583952484143568832032660905691783430016826424361560057758881592212898399714780451928011784210670111885058307225117032545366546397053422603635586203284648695124621084942273657045193568723034827570432865554886330048893581867848477247949937487845355718726949420549680394186226342504047960959755462557613894309541300168229201066601230480696864845495285585330397400347565928893301653387367195909299409451667533285107911326509199667187144126975161047691836214242422305855951766287304734153337328701839807015457490630044348884408823444960268946575373176232197948570580263228256634031955242182399298690965006350574495965897102612992462539066996146211956010552426685095613888532488372085020033314911939370923894034351159740808233539717702298650054488015782385369188997145494385731100381243328342034138556094754580273285143744373918989291991903499027298248923738946688611274266934184552458442389282533538141023169998922071908716107944392774909546353425931142591377861278995070523951247878390099021551168213886735742813402830645866745381143911707440294986700662919085452143602143241413829483052176772332492224827431862182479762430072711378409435166440523513452389990691897172510541875840789604852201379505860583843823929888844982312654132478259916690052281330073521921720641619389315516463835154867416492976037704999475475227979231731657730573209339424356635877141815639971338894684583097255381606208389354614726894648583869778149541673670777561543313934374738510634790123865975992735665051486373010353576534584517599008097645355114953840094795602137587553734419328652768025299669249609481723356710231578158422287942253834821510046179389886172267656988077999757844796606546347992560676547448056123891986604293808069447789956324669646985643449217359180019698454661608985408669307257097371211865097739793055527593613113274843134095397277897169775809205776031291180120007003396301878966651863473822608433759365576092005134830630162512987986870412976286977144678424763699985075836842423936433937048724935388603752558535989832614596634838905696685591237801081887791826706889332415865373533188241499886697984276652873035718370872085581130141390476025356914804924658449535583139253274531896699558161685893886240272237870619225397942334389331144887638106049173717605450832739489307341328679951298721680982295170234761596302631954186120707451134848149652652569396390203102133397466992148191434288263238893919992578040016419610679888695704846167651353028103656013280877008182474185054081205225083937213837868911678794544509809539754357660733366136028795524691845533607728036448180535032659938825298319190888399737057331772214298020633121637132436705015827137547427371358863998192038072819908929893595730555662438294215555981672657284239724452944439231738104748351860934327954336031898276087409081471982082021488424022260584377988115435335631536771434515471701436434653559243418684326722941989633609407664408421712454654172568940660998326274620111805531329958865644742426494690002126936698680256023205521280769222196605954768007964491603392268435525822814795442182942707833116039342785848444215362156473178933592600190118741630928058068357190707923260418966572457242471920498163282512637470103406783382810014450511363238903488532438373649891928087036655586905253064047471905336846196457009550352042292404715965725692689654505816696377231968677419603212723723027773376272543618898586817260114231102421549264550692599610914657008080822030771698190761740065305336588685376150142939239574676232691292301705873580050894566483838222955634760722364328882067078764977280111603559815071918853021114941537215333255673730023167225051431398351608887824459088387858368610582896403665679863993157824006829095596272295787118191666883021829354581164504491111532635276922487657095408925113631075723402950064711597667851243714220559737327289981199295086260716859050990365775538467109613695155322617374350123186314449705906811213723378206172849521651029687808956792204022117436194510322325706983074821956466430278587462686115440021716036275454693157547188160996371349997448778056357542301392142317640345637034183132203902444939608676238554426892556664889636108014179979913404753644228862905323860594191210775625902038179344115555764144150083814422116431235477093814113146149457995303544042682130774315362977647963460143185388918530460854504451574388148320276560742095242858063403311093802790551910547474939774365112282019729156803010991478032826904805027715658965421230373614945898229908518577575380459702599012350687013627632104073672263469231288845825315704550817636899504167149515350810231015542738958553432455399213478777672840653264167515004171021914226941777931465813322106532432369680482052310977590815658053025717507433757089922758178223237757294537604285540132771967669578172764717318255105658802523256012414330942008007880918154130190383964235225988939752515090924476353549003856004971794075268958262479785262362067121301112895912962961721090439235143104979580626128580839515004537360135451264961405551061312937617231251244820363989302419149028385977124564219431851354896183158561483524683632037445653557158515692279787478252141669246993680622480519814686143034488499140175777386149840469936022156126356667640358021024401656591825913745414955473225997613378861058824448640135771247178556818189732729877833662943527788568621599131913341854471240797994242998353109657657288882541530325618371102444094211523983899918918130590609114890718132575182426935374479521639712324547571356599062855375109357042822436523670041959642085458453663256002781194890439414116738228186780772861237012502846093079309428156093283662495767832132338337268230629370109867131611797188720768955349449735831434924646898658838483463781850748984611216191300925352307995448931733686068549627637375780914968082271337447279591565918206908214472345944524546652511478052753769316208565928268303262747344725242084317872910305174640540721461159874797057756946967282119977722004347784567173508108391689856396477909086878428793567057377538537177665552440230284221824354745045684284609996119935852628628567834591615109281193451194647751035308233989173007434385860096707963678878473081436083702898110961917542177766797164132602027082902481211640567310968845554764417970735147087460177072912258443433953940176905745110583241358451064170681922843325455404896560665007138040785632625395976415509079282911939947183915086734229594320475394224955617879553579757543046593117311094637325188864861626134536096644902173190628040268802305302635651754056394515615331667375086592098530529197560370095324057618033940578256626384761272916544593556662523641441156513124746404465449322057296423627840968368370004568504836626169838616582670448585870947939247516687442877285307295660381904436796530575703536812284269037014172787458107803079428505127939180361844016304944938309742841577323308328583219082180408681073997604520791446854524731029484466643766332513231567202774353893642703823266196429017475751039694596083870558184406947587922539700326397174915348965656666683977292201486575921079901152780090746403976815157057620063408792983100833759349919239896836361144943435033939223319514518113022427465929052711328535012285876598091957676285537240241680035326531937154104045965408566764653093327183650250940552042418939002048893838023091063676043125056062468691488504572312021364625793082693901756046951498982237861920600871185304632305156219557325513573899661657936906118400971427297384234572843548405868843009483112606016880990880609301214855603229076985498702235030675666854714601641517958086729489677964401090075520936317993839589668709501086925814681896741464888910274825787021404822579727298072613350140467558122039222085117589697220832305298588632160623624520165090385752586858936886185921875431455136845615755590459242984336037976807408754233925724881238560574415991566714548398080511644458609277561778099032149616729017508320469660172266458044199434566719427855275066228742380393573586017393186771602647547219420348912912449016968982705012203430929174518764613345138725222659660796719060049805865634932667790140866133409359446675302537976901021307565862972922715999746181839596123985869862505846213374787838722455452009277494628513539413983499908934891609416738800472279086134218526756801550837440265845146115474653420791134382187031885827375899259839690010387114238779067189990295706159414765228531523559997744839571946397733536226818440733335379292312828657460695636983275316397906567749083341135446450878613133314911872373683952794088968753829853771585993213246425637867564345944074672800649934681516986356040013300291254584020060892389696936304605958524210122790914507470622645318080278654618199994027422253647836480044140554838258810393302121608307277629753110313311493705612316201921452689573265947584355139676022138041167047678415187645591484970901058923640604492727109532981146171572710823967637847898656760962718276084970831960396232794568659576921836741413677512215504380038106678393123329474676785974611123791921634849547507541976179183358554859183159668750645263064033667960183700834268738124473480310476188187679063926368444190544211882101603163553626551430232676412797079052563119589284244087469974938487461509468245359115200186595227052437891628258808073738578680067309192998900192939200231984060402899076859338321872412976337837913308117486563240674548644315370739798883896312959870212947849293189843669109858674578584093785310690934435251295499325933076218689937972195243218935644258453792857367461872620572477344621458697896734114812090076016171110067346539464190306254440882332294718890433790435276107145835937515509169739478447263569061879750811857358051160063324791968580201574517862169858114835159005808813975211555490554272113274480662697520890581966534970338121781762542484800575212759243870148650398294593666207606577230769004311137148716840296092503151770772423781375061278312975999351687385741350591481879059730243918262190932224722164855576241499347534468993843449391238978335236041068192045212906520800650394433004656402586858534103384209078405384003779874859106531903595763997141271208926041091593181427729635579578141222735590940328916562689537489893509481070333295886419184768083290553272962633771879812653783860129719139695895709865455071559946435810689006571835533428774390405758033176410706995027491086020937702224351130014573120756735128208219485379228943896406991804198004103531589748614325824129476958177120616779154201008534731562749774211242201922197188437959593273481026866596254577758636929658202008540078830842921949389436690235638259122264864314681386310157083318043865024157638801261050222793261734213707811330930806879097222879453495690311574730645425423340842064193130464875126652762440146315422273127128745746428808127690531296621169534720858134268973136343447256747056255699917662433589248340219471291040872701312362248855585748062861792502683812454679506619903467212716657271188319448258049863012615920232755850920979985967519013661132614379513739911275311537097790001439944918687704162738545887476908484544983580030629328443144111362045831089923151928189143891575301698854151127857633214936536107376496223020813795819748365373879390232806740658465161434700018664624213275515488252823012585770533525797481811963861267732389951420799976912013740015551403175867775268374825461336137099344193285739191313509891478452586241759200058094003820589332085042719094083636262254030649398248962448069728451281484870943482031611377693619414070861498467520598969822241007161093395592359775620000898509928741362476564888137868283230341367280144289421038878671120260617688384258861010488690691199269375397865158814021421787588752564401308398632935991087711764647641989369136940613405371194482811148548584297849508136975236021368142580616821355176548783035039104423920559813177004500849605753169369183441485081790073284758667038854171795545465766491028155234283580251829066989469063879485802188668882066601909775855346299256495741513773241261289545141314582771632644028460217224193100291389687295145649768875713565784729013399941706316669808473994419205411712650228096647461400017774585326136895152028514705951394266972907491533596575042740700117817658086022111117246792314081045565202480663097834076392668577379051155223546954112111359960798199345976450975557166091078103978979043150403184006675541899531296417821595966496476317443781513387755541923753559887471842403435155989965591371867888882212255325972195110265557184040136389308348349213391433662781796197759285838760157235575897415481539212572043200827844082777838195399780759626384369116286546520715529904481038131985745473894774715185867392108583349709560196216154157687987644156005418220847267877175365492157713109991231501074719804321283223872088533169331673862269932537741226687584454089620948554223409975251252062516948502167062867919854501554011202799511540997669972187902608204023231745628529690931242508726576522517924073668482054463668657048381178441876664662291489892231065398092386995340535999674904587203711825568747099707441765300319442688643992833516767485176855826527340147387795209167623839546613813122273813036468735600266175423411751614023574563361684367490805972851985779455368537093693014481862879428241298010929301519174913272124105379945468834018344350932014377169446442407203183889779194899083551010529456969952763406269329699422811541800366947115336507514258059754607133969811357756917981976941524066557072092502200620855782343387232074373870524850662481041127941696245287953544430586146855515400208725548424109935184394035772745138438476334792591184023643860470518084667815486704669299185787268270720210871685296795288971005552856542215652310549713167424381323624003610655144170343872549273210980893291815353928333365257875105912966330573792830227911063968074680356790647474673256825604144745011657372072371573055643653302059796053584969845058941177437791965937937862792584790314418850283495691286418256106751949504010037316942809641108625351083290019637131317163462819838519716075121562635361617196835923316612587340595976296784752765404279010248691222870702121792635217551473529737590455310462056750939705251113431539702505545190449287382078012083127989632740934986707247355512317669156680265520926626434761257182186828630214899147619481563937916950952088502124193463704523351779923515416965741728404629381515745535929254275895140116144513700268971279059616814631308076796574165815102279008637647402567341596342954890879555042798144355019910701839260882834223925622244446265957621803949786876231767493527472731683908150999922806720764369266464630704609036005934358464816276483750730727162945185367940539540711322169855322632038380595140552789574840690024155767914191282642638147610179311996505464095397994958002679906491778114854702616488324766774994587172738030300312408148190714084262828412418940062198865384305198865279549088561788931312862124351932954695990368159110550020753607214667995826009685660326528134257454226108867715356220050362424793122384833650602258189951423219943307621543099574996861032648460704156209000927082867576250449349400264380272021945492847874404586187301312971431826981909267006004410595473131142755177859242437182005227110009154796211714756593940806983901977460166424580788351882771583874373874530386683990274283676769634176377620702716627973977781269218171434539125597813847458467377065760931567095026132543639003870201379426085188552915188411377954946956243402139615784796775159053893133600759193786545780928084256230571111357444052044229543648623325006987269418879859563565192248922024131113090471179958556203190248761960655370495781172070073334912363129388336173604534386927927276672948878155560308900269841215972922153782507799731375684364000707833147102302599171491765544444900674363455430336900480704135956271446990998982656204507271780410313664579595530231170239788096964909687609554095776865878916391909381288096698767348455774443201786686784196270463813903865330738607402187803011545977500065612291614259654419720818691828677514722636753867774564554669191650764931051383854451654242368764445542811199058414962284719875652095836243256062270926427129538630251317565839092095338822622275934116982319526715036528655957251817186043642295856448532678579815495562331309989742134737931180270821268743510447159273190606774193243157732389690320462057731059859781959888065526817079184700174520380328210465627588140166678146170259284324403685311126804385410175022788775869704806790102222326025576820784171627694182455318696814245330583843686062461238187595459749510456313771272513450481303751696688664199253491697701156241493197922855603156653914323646116950787705030692111850574199197289370947749739746476696491533589836069155700928423821805243184717883424667498311261978527957604842759964873013697123587546623349703107490576613385493408689806204693375896443393830116159882410439642642905043857199102278871767490858889108482378948619842031714201969018439826592023725939002713918883237866033894548456138375614100235654999434099240892719651504310407059610549304413025887755479965981240816087279421346731862844307930110276816440947982240543544927717410691289060054440122650045086731227187484414802305303524658865517561303707715439910778220351543782383848872389234082809229459188860520207345161322417495597570052312787761551636486549478764290046387004189309456304721121742593346063115996534461764095269402110872798193423965343384336237466249553520518307347586361293888230231374434024623106727809506787633542895296053375931335579488831803761560675605880049905375564639076789099329487387171782125160136019048963930837388530164841804493323864534734297234249555865649157157888230180294211229545294672922884380268326383222191888350455701521705364806292013946248149985819167093142618829699015979179172041312213858934107579291586300942840426349220268084006847576357083160271838407094386291917137852446529084262475376828650233633362019706293517791324908303663516324196612913646361801880872861679374453796759078848044324809627711068189579804178068112971529040689875533342524596917532869323484866608831685280680289167902254576525146991701688415932604549706485425228595517281353010282260926805952763519953650095279505241366741706480983404696915749161544358514495304009170392368685165745416344152164479672814729956261002404677254448273794882548138951534672860646280152992777876464096381059867640706891252710195871987685498932895377042666209332212502727893942907738932463318309092702266912569247004441753363964941819973748772395215879245495310887837512038064539992061041154281312347753461853719841625750468242699574479209170139350408905062039913354930445379431899195716691849483931944704970789325513473891112951534165914472861516402924223815700629312811780385931342439791446094595460968864563412186257903263443462980317891665429421945257706619126794256758326388469003839546268139943943713291129253520427717323279054854069946596350748011637327837500685468234998737687652219596608139004278660257819012441724504848802918953965689881906245812749725614267211944463865190059754842078044952286017355356647605984352677700787068088991939924653424293204138403731739651175189791373744452709202563772428484463066694269235478516881078123059775635294243067095816033038155654581189569107445242799903649899955748807469099912478887714782137966212389170201543839767292724032595053260806216603226338379864501553254808065335752455175474683127729399658547565120448753062543897300096094055823374248766001855672578412930799105658323373298332502397258267268626594981742126426950793716691187625746007619230062347610143605930468596462390392705079764494093838533744606045581413617884358543261268575452336463488582631393438191857686282386666769998970259716023622450819492221970482150909688034596213411979877685515278175006139168826658963502208007167439185706402032645259397292155503581385009233586855460283165417266208537609515140340096284179510746032985353166365725017368589934744743696741098801191073263693867046209164554991698880701633632814059138847636289166104659759887878067184724641234171065473443838146577108453589552026695059446965610785665150989293279611000873047307082720346919573002018783061417073812338232654019669974449131571945577575858316127881949449284507269459070095973853728861024848614931083235979090705243628291313306575778308582350068358123919751965187982130971654059230253387305924992748332195841655808825756908135276411911791387024274776781002935282834256845875873350121264202205908935321518790829173454999490370529774721439145836065725770375866444846359345340186464492997442979821365850089528728465476818717438689235376775273172542927164541822600661537215373893813139503225881642526373013910843637615238632838635374994273682263522594231474825434689548755074430468135027573859742992727666249610703237165829096090918867920261698816148440906485209450523652634348333739441933083483082852058042015497971976776053180455554429013777927852921866806460467518997460933162831673369868285916965344286480962145320181024136423230589479609378129715452823385311792640997108864599108870120167999951196362680912492420993187129893791371161653136321039815646949138403566018812364425233431474568231713642668844844192456501910122072245683030638067053533456045460316358754026571977684731806481190070321726492280706310099109112279835853511938912727306474192393667678601932570255960876342671769292959756256442943657253467471470521397753402621603733684487265188740180787639169206925967033039813661151078710229145197487410690077189133628510080939958699736767262076741364414614119703096451158044822767218927194126700694436646403723774847120379529165713057476844574093291453886248750933528349337286404529069997235391753436071752097431513022308359157620280194669553895939289774723618185723183052458343889588753521142174322517362856976115307450912388234526960922882054661508375190543648043158930699152915219080680826050984609697669550108623453512246624548224683449687140108317316162932985486730165178801939961539477922332608986420218024513840989168385246699151993677893580451047662630158846877266040114244258966240816995264862167503404148448868574558334263797236000458059434386807493357487848023363475776284220485286297116265724592123912830294714556477032925751005546410617437071616024533315327334362763399208699851760778563126574999792465750563581970912959512453299266287625237604485277373334325887532103143698446434361403375054392173129778663111345116324632771419783279607630067038635988262252577030051865254993723230224271835335882260501055700275043237849841830161069543641528572333380584438139679132221605309273447494794578877967619985678167606816995067019936075500284052854629207234338733532246552737501681209757067767676641359616485518611508881379802747243045801520100731691151870462723387195112103338098439568925393517250234136691487237549814667141990052773355461677492378057468239091064784523459493885534561567262159523035755154417459903688813430695350931594450500166627093312690634665702548167453907869153681413057449562328371087828651739236615216911794415272222632683980748108458026415747307410941522419129691295946873815277607356262659488835045575245378111023640836613355892214223341696000518798070467348558980216407030880800337883868074619887704413590165345119278890423668164336727434544852372366020368198110676249903988877972152220783480099897514303405187130525089848652827558820793684732526364213930948580003488648898251494868534531918837005111542043008005656001832127980191957736001856747823774778103664784980146683644850758563370049913703059820112288660699425708444734751171397285143652817211771247816403693469976961579370811954309701032730395907496397329002393084564657798760891035748891510797008517689355537201691522650884406194791832498520967761163549483905819101019438676309298404981260850894704283582429656573417506125365046212374672458035443961172439837799701576644973949485984718114138155047564049070487725234539933061393170056587630839961514936909871858030625646532887413662043715987902125435909993676816229976505519957295006223717640843109189855014144190170372358096864302168657908662228789967148599131106827776224969743252077150553885650076546747634893069221882974418456120404579435697538473655678181128935030415296919356450104821053746575444082785572275154920671834231303327477423891484086966949928383379604382740337973702695695796563670742158260424729489647683432126537458689139689018620167504657747018759571889803643812849006168372558377630834127705453624446000115841967863039057426093116030453669998500749839759546844252899010504165083192274077548188902179858888690164624811754117558106186405759412842323465228762705540026378790300671560340476436590290099143136939585213974716727240768379287522673032516465430863743309084624238344797493803667067959766589431693954870619474958637976190970347848254523082781747415147545031482315132461266274365293831043132998859141973683615855034337771176091868528985122440742850557363938011647040145973798591715010609288687112006921165494519915924092739043379228793220178977556173962407128983005474414416576396375676470762488449414911122252489339155468488864856645139573817401415803606061528144336520610893257617245767236163080105306022497375245024077947956789645718468272486779797839113263811162188330976442101704187503774325362407920071885342739791745847589010404796727090418493922265869672160823883941095276179487022266072005518181182839290338979216959338085295156223800266868379412961859402599494788048468066718673075002829339590120881181257420042064413955410681778265081056829606124400479229106920595271512060143319813279559684994368828842107445492974762918347974784651624811663392036863581893767304736960683466472832808738418053256121665689698980134213191130045142290764527888505047960005718076214677380887460055512805565770752790747696016671105738562491765904527428914880922856685315484828454101697522797574519548264350640773516417991982952217303374284009959953804588752018728946402561672519324202493318040069963324910369715440310936575356063628800583794096942449069596352414380511628644428802757976363072079409903819600282616996177967259041555442784325044307049280202331627703645965284100261417091315045780782506692188623876021484856157824287837135916576079749658816565498640888671740875434665225313684962958146418385845476256860292159835961497110077129794480052029839449365387775530376993275386488663818305994984999053190963515671245218452365611659241472407596089338610688054939442623311986842569019767007592879258951492212049223485045343617494841194488356244512266597498345829692565088457250371218164098604529603791345564905235269628223662879778223884378435566903384604081625196844610236385355389491412728719601894833241486692530223705485879615806051845051963524365144678713628586116597124460019864533283472403407985415355370655879074388368578350763184793970838412913289215006644162602639630756400301122051628394922259545687932483145882620051472814648215375244694487474502611031372971058019577759198554377207694571058841658822535748214484836225935904939069345078771162911158115673166879355958572410509773306575035344727524523263926325508165695404289210172707603339394853758104391903043239652385695543465828360720066268359327886491692762971313943774065992105329282634652466484388154886402977302508033646139585233988136219997781862798657006552812245038607135682182136007527549983969010428533894270927905565660276209346367111025419558697242684713923707378635346218667101206902429237314782669927516137052394895136438244463915317851194820543107642559393151775467329730230842828657921618904122259282658963496016973359745533541477473682279271797807893205035974852126321608135401491238665794238742781870739901861126397380449354779915165866347551801827947218572325226244316953210475607544402751179516322194158876921280115185244904249143502600292431825666260136389700627226291996606839886342326918822443061421475712584926564896983254601670615109375041327534246140034369897832270005510653602029976690218461563576499065560764527434460735200942824973320258093744130648247932250263645230914156951804498961004271476820901476072427563651834229532554932171717443327910695454497932131317855742814694260026560900818195217373055623033958771159531301246846781277341452455105384141699191940558455527294094106045436689940542260007605988232747785415682157092121805607487943043104976588492027161948560143276484551224753098022063748790909335634216351410501954675449575975703682802984419105863470257793103982013872241636652996128234096723198219217947986784579297117615179906471361533696457717090627999934007393243400433638407256248532030176986134602936888067534027814735944027134134469022514533984127833979245532916229286335932607985023629370600407183616381581443229977632739274793780435571884764374463124936078011779191717597693044515055104506298362619526082506332947132620362432786303558515716738466219353698481638183735557837718105854895065812698530012464640840793750188667297124081560920987592485672132385960044010812766722580786900467239819044328601786384133363727113073069786491489777210595203424048778290627734846403712652302498053748367147403697075955149205487299101944395750305581097166050358681741526908082269962301908962030334419853168234235647627468484145116038363990258993333289561904262829775840520540798139625049524982161387464803481835082601229569079742943236926036109480041583722518382946947434174948552931445272431534828791355335112805407536283690712669642375063446064770707272053667844261204281284091107257417943238596530190985938866202946883766303325999299849922894318644735526597336535133106686137465379755618117500843517890980182409443768632179431984291349935757085509621042606604017634798229470863318490144078968327932020448596646043184529931595144637053728334159106589321740642478602632616427377597260953687902140738164336723913456981939374493975309062143778754029291350061539223880671114247342772037405852782050561925839721569168803377960731394941119747200149435366107529814903128451001070046009813519602727709788761249083460397727934059223635759954292092297026832380970241000696081526079838709581245391370431376325757839294783617862635264734128455533141601324440890278169776206330538603590302204628638866079566029743899336068619494503243952130787929370962324354638812731168109419633999527796627470723750374930451284920437243555947764927920432676365432918430228170544760254967452287358993657144850422930781037961952273883141361641728168007973789269624740889402863393634525558978161007074997455840387855390562457520704832807157633269089067020589289474600645280686352141083933105179609654622852219118465876161720293073893090178392481424435623170833603779603304889593392117134394341950658577221156644980681029349504955370758781474073914116961849297000487961947954421086426490382937439062689212181831954070415019967871582686537130476114826224302429767561497251411715674756956608038036619551379929142276815400722009717762441936020196345717842617387563700805941304201621113252316816547676982480908771067235033836134679936295354909226683805226947390081016557576855943670322350304239302348270278712513669935077202796063099093700938051174361627559707391485467222792717651514856683805607430754033449118077406344800865089188913343813760840431608828616186658541575445134924796355759693582232319029036933140825531610215413398972446685941100535021952388374333728548195323029863055840155380989690845813057917949950459559069879006005905290632059628454932559910303080555574421993479757145668525614849614392479115509138280729481501571848698649698437198886996717042247760901507072097397654127886696102455220061460599006051047583771517926080546952015537030060294610759250169833349398783002331433579883080347072095832936979262133808297385453418636176969878505046830036552725937598502513252932374196940570998821949363156613623232955418884438639536324190130637554168654052372541693005694298523878387392271642940007525125391786533442751827566424381596867124116408292648346375631245034653645810784938678730691629712922010510098016008434002454580984599010570065136462965729020596400069457789868692710667773414258040859917197528272421177437899599296795377150718020671150458775241495034239645005000358858935345152529997314302481641776629520234047760440127543210121694026309479217098619545910348152427139696602582302581087293865527196070842111380013222659854677978977598046392502308487442066339914765386446178242852164665888612513471692266952823206903462158899430090957411616397990785958790898354654751109919212366890746942123438049227502056669572998990681472492714575556681225116621953954721278446174686470269028036192863811451903941364333616917911356881558232278244816443856756192488058826509516713239483133261591530936294636192555225650821855483549392979031593879438833750624744233995375590268567018899468975968715220044549822673716519821391188899243116703867800368361976377282402182968143561506479436081412988117714523866999292932599791492215022455572581104704635670195579969889573110268492946106306199119433222650730770294088472921560574340235755591767099226128872307447801364480649729557771697128007465611141111447582465957580564426679411513129254128868589908606282656939831603528420493814609337922270779374261417941346654046657012662908182004415300895228783006936080736250486957264681480672779127334796571123092896499614336344107771461190297980408530615074314267406932886709864322416422539659223129322073115929976430212623224070697356672497420063018986350308373897606001490153732552576723042712110013218583276882186500939157766904486948774538018492276998250391164062138388516317130169162006402721303098036517243596301884113399475059588140660533412145733498851973967989709187905304637044617192190397030291981945414897368396228162333176531212406870641191892911737196707792338471609898066031976076621940386776145644186095754983087751596497727653618157283388162356962051930336676169395962022135291507332183520171218993914579232597279928783203566556331601685315205419175522881539934065547375818896801835477817983785328572467218900233435546058807584114339142629302110092910823606322041595142050069048705926058365495866282601675882083533904299951121447550078650248402290743323199987268965517824087457042852472834768831575898311741285089733508588770776895826185159237254883412351455035001567605205439426048522072437322587519531255806255415659835625259001262711749176853400135020966056040729223117638892659111434421055498801228928039661938590272284250963813863240165905204702593054249045186699066588741161096421994744575884631150616950522176575200614392943467927789297127174907145807985969197196366719855850215295992733626726090109811083468510379164359542489378882781958087725783660874826686829305743242094664537870459320533650748201230419181083435210484805065591838824161709238965498121987357151636695750805480526412555112744285724206356267371038960460088540868789335024614692476404821929913496885474481073710679959448880903731865980587043458539608842962839829692552448385799798970319538226822191154925327232494073472216113755331875940976401887948171547804554416487031312759863653788145737039076035147838038966961832302127820673438757778127765357866546238532932440325146707808107434138701827536203616402573529368391886670093759746793692007120308758701630302507486493691273173578368689918100296129881008661081673261157507567005722952960853192768580158370455726271560119748448638561925064459197647510162350530644997424344162554514209385875368719804946774451368595907353736412284445630676690347968059410034068511366390666773325484306187920441673536015721187712695778524413656231621748338994678555131992864061116718603919093661338885268533695203166721474002533707426522188427091783401028884712132001913866010932755114213939688379350942306868757260255364425594049301751990410559036414441492661009223422666114481225081688412938429522660413075581958613912389459124515356896441123903747777730326695175164842527484296007431434022657986845560299816863900658038957792694591883693246614895826795519989611554580850239027630857490829913816947254987636204862556759097317793761312294812628233017089125704910206626057859574167425383028526582286136513791882249123290447181218501023707294827490876851742242106813262116714189303370770054316291474437023108929031562810980400547640596764140525054537371447153826040962388109615045301063889013782463659408696666542431716863693809542203551224478213498733925215895696364816408172456644606914121465616310129336080519822456431576087955152424899706273823904806386358437967064730094211914877274158895862993682128187392084423069550739533929878425513096512847564212716148154778027196943954556647517036393652435030910651956175554226074782743368743600265635290082631378040624063929462367806609790123090002237807451987986974826522950694010332990848302501932655322647524583297297950383208641395433988005629825540842398118985480463749383836288643499226706413539558636057144864425106689107988758003648954475292379942373989489946462284741551073463030653851888945306932568866561899308515585824650475915990446502722350430581990973278377699829348719020497860157931129334913020407216948306596542230164763176471039426253926236537732222711897644133511441481523331110842849240469064977042399002502537127927706650841393729345624319501806175987938777235984206477079724440228133979161800576927691903012800925529876603576863829963755576812888263624973582985706887563217768349599861344367601982255928589039114067050609939672821971495768125071809757456199533330499285688430801789894053892033648891603075103381987100990260496638419412943501122849367645695245818071521047509987593906252518770062746755988513793869236397674074042547484169418862246608253781036244904119177634725421507119678445047432210230710406048177511889630007829240313602526656312760187153341680774002573325701735549133143915612111112362063040500394971253469520513873462275478413930357927172522875008051254118779050555740675079416259540960458511534486624038151238003109974633854458335360579136417202509749136890032534530351195404705365091761726601999666142039088519764778537662978021561201453963196124267308886118140814874755339781277026922643329884810910029774281550421738508380358975825649640031687513757341098073266300651907637541539074831163232475192609010201800460906038288102799126041364465131066698722377894297557444416975883151887052928648365465402215090359800878277489453419154078540410655244194901428754501871357720714040471294249838171155972043601399589677516938740077415661829361593056558175333620078329767296845592174173324343172392994999591760527648704903131039979253566008762570850062499102357842005724978789064887645576132211683727316924684082052634029195488208256503156318685333644029319457480250811994371951058065745866335029137705645046056032652627372148014371793147763908723139069802593980835855332932463041947340490947310330648610124702835540161701692111460984555893247475642129046648195543807019644881605237418236098459083341631069140692290002276089224310083007265631116908919781331426841650724377342141284511662060761594388032153272998038372354523197714396353461710088788495133481694890862671426476631131392161171891813120942715979842822683693734161901827065258566709765329612732627144824073796179977318227348144360587681062961164044753589133598087397409624205392584394394047534611583118289146727264414636247545575842792395864568307615723912236303924110830313822862413068512320724104439640776730900587371757610227033287639862013232600058864275189881034702509552141265925068581681056250175091964127266429156501849583722245155571419446743755997027184003587940373311799462220507321255056996828864077198540267330460322076857291492859987232773009058976613302533701120736261978916418572373128023494914544076051508368268761780122833585772147060402994794652544503027679112643182262865251707432730341477901945953800735990022871244657245796216483845399485799055601314138737293600098133653804350868450024414262567983418888627546986865303407654785620260935586836281428805720732952122748381886515928253288774035789637989113833437180544677424398808831094201829393090513320693835051424666106139642031545287142919067845520543804000239047648422111152018932805202947193264723291171869162914018733721113957824491770012830699534753910819255494313669374165950474313891047884136333561526567791232434935134035501348694239455238022655705767269680693731061214415788030412322851152832257624421689220673386283294692656941631773985003723285347148383405392599652431226772771996934060777122883303831952325671380930632852470396714957628066657600179792401838930083111094979488037357087487107878754964304433257485808557991917201459100411946464354202589827857311840357923390840156346436584606552263766300360161663887831421353492916000406919721803047906400667422482576520268259918150312842376733054582466633459298700473581643027718151323861829416643772763805749954034647978390911797267377253571552832227432595705209414837782205125474753816843699610942916971249708118949132541729327987770048715880905288661559871231498784375110752575903653941608404760468340835253779878995310454817073171999421563883501040604632036707502637351389474397416625651789347073520567286398632731156433778544022717534111256793546345692581860334944692692811703206576418220925231128434203555094009211950923562574050155034147424933430144298655293689946811257544373704911460359981946889949849680266365015902485616246396509780455388617395882943840273312525119088275918462596174947986969428677467923073969192634639809848628859286624762680051243603273171731446010208866235171676637148617432628724832704258368165346269909522319638581712728741030886018991482229509480379530870250078073857497944418433988217718998584684042887015842826736928813944666840303689537367212049353167870040266478226600944460495230377363145855715500595019958754670550960509695027170951407992592622600783390680613597875680242795959595540263530695480107715061820284162951761313259625397239573749983402748406270494336808299973484652925247465808682187011588898626884508020715302915901343791339818252299090471788949432630322842591808656829420678392847955055351782734731700065659471460592036650212705713558953669900035400651063310388241051654158046189309142359832898076063965749713375156192392671052983621647179062162118811424006701830367002855960090556977070305253958764658708628719239265833331019627522501796889215659104267605059978049700736103690569096623692416118831610705820770459401885187489328771192459090538852516453302613761930990855966567587148578533580792395057763548581975322933493424366590783646729215272758198472330130457534420686693459413215116730708423110576685086019008850752980577979365749383220286725328778734715490215028325393623656324582307396230139995901051706808825670253026259222393708951724685728881697249746193061038516162318674437758106801040831030279234404136753088451691322032628141982592364493733638016205288634054044364943379162341148732772068532282784510295445607632860916453915082835981994352229342024151333565074953569565329761566076079225035465844417470746385202214385921017031191650865900410258229438351222923545603384204278109080932562528424909682893082260591357222008094576053107895517245398217751235444166119134827156200859111884249557091458962607155708486025778323431252734620743388123420594231269930728112931660786351214644519678590539365609808260220236330909673829268077663828254600696138012488754230255053779500973315988204851188843878168852920307754180944667913597469228271050156162908743293937803775265817778737091292877229661148365597818701450823228514836144238286681267092293102943128142295983460855898857353454417849188589510216928043394637488113065480609936399395451966975282777787446491902930307935189839071509561446891327192843923463081360600065061835178211564859590875471671496733826467678451103264509606246544793349587842143605656550840307649263047783403206118925159791641777478595589798684553597468294123544167927921235761838625693886865986879572914397737778689803203125095679706592458290655403005709704383354420245011780487393669355690154921830186239245240879995283646047051570166168051784316272532971824385262588499154801868210497295654468859993159763002426192429346462619378918933057036662245759691827842096774857803621246324328263852059905722999448284548897135945463865166630482977632854450479924691452641226243487827580077606246648713568012377573470220715654166270988452199251721815401632499621307781521480462946611335091762276243031594079887064658658202357767580002275390203939108058681867766992360752445962531494170812247091783998131117778409169454060492432529397517967461964838443707103325524144877079473964773496329663848785334563062662589254985666600235599026527361680173584397581493025766490823837487190808321535886851815641709637307633292181554029050611995556212915111126105806084206479888245371226743116601208246447040589259099834738670924144261653882211086888095984178662403586283785119601844279352107164527920426315428555432746552471159454733283044634629344367588381088211184897942553539007321760852484659710243380794549546132887322771728015066272483973531988525184039569335708552043625759173920803602942972044846538768366647505188835839932140071302623725037853833559972049819459773765759308061482328478652000174252837343884537430460729054455219962601855458317390355483749996724197650926651517617386576775509450149573537742223844116246472274799053437561718168793699837300035542571609308762997096740943353232642494051125478529184913006639602942095317178835475545572852620941065645790588077163179615264018112842696918061465332122201763828286163375297609228923840118399428417444791783098089084237525512268254856386308449654614539204626045010856756276658267865834442958570113795977530049279971153235315986394094934819621619727488583520229718444540419382678091321376318025621167604260987516834181772154050045991070017287829171638555785425329468176188919148877691295248989417730730784018146436255664233864265014955992624682785247333571453360138137908176456374219208929706999100120589647118161432441684915012472010216089116520257472038613098232183876909127276138082366296684561662514601370432746964320771052635352536515872319767307972746375797121165262335759780181820312310387580253932078832734027050819136508007383685273512183303867585943517809753701257360159837555780978830335968899093755901830558628253397354007541866342828896397023236236991549961574189782143902379301220363917932137413718059296695606973829114259565228587030787370991899440715941081700993124503300422063336053264545177821193165859213161601454229365418642431477816757708019540152037249561130016650640410367725437142085653090002292113113286680891117067224701161092046711074247544255014929575804323831529291430252279035110328509795618960248904643514237005871796978365454331114830685561758265447578386223298201644124872729414554259198690245746961647492953912262251678649649773613449384675603613090518620998624597265703956339598040756356444463366882224489212018537736902035759569925334658247278855903886931386737994074359126717463420726624614608051860207752057064822528669388063400855131650273929765991258227460750865219077183086303588257513019805754649056432675130956279395961485543638761493362818994042011659220086972999267717556852224647702660440263755306558839571004870325897134691994103437003448476988073129201705807720791665898557092370041788332982838223710732209612727786368367789736455871852551625680023641957336819089656838741982652889669199055163272111428260821959871642963211435814214116444881875463462916602847108897921725279675685950277056246042904081255633337812088633853572780327801005534694892818782591016483336798731765804512308020262047901627254339472584557942994175567760626899641280268991614700527492360044911377493687461927379882203938489654028612986111201132027445374801859782337648844671877559599384633148566815751917135041051541398206325563595507458677006516427226702070021408486783552626823371832660851273228479589125622458080894117371739683567616431495074438833020783663038500047072476337456507259259451809043109866316189274820302843455864886722857578386709053735867488188747834252773386720723635668876260216120067093104889445499591939089717167362499398731943531732934876179274548558897711320345217077768879412715297688834706892396399669926770116571907411861060467227665056311966965498175314702965990343717311318467385934836107994346195020362051745135688423708489469739892070454242889245089442154159762156676473294585859345163159824816934065312558737090463815295148364588889603593198814566608917681426552231712211763080607302753836090550965871128396291106395090806033541787915177593198413162929402853243674258336129014649501451624338888804664852987108579259162248871763109567721581963195885115801385239191150818665191477896108760220166710873871931072951897919541100532188356060609462978913671620868482190061990200787948269661017450542312689013515899188162583474955569957090765844795032747899645915274449745243303036880680237427402889711912307721838214847988236351875309307886083666917257955257616655228455156375057620188171614043813057757194165773418547994421715045165480290480895358209529037434574009263247414066802822338419509771544685617180335244249881976568713953190630016417892646579173977578887451655613530533348578703673131347698474995837843631873056331666747910828853498990389544914859981898084939238675869488624265540290635175742451942675296461173760771852830360536733850525801479488273666849883952991087566040305424173722876735429472562076880400418666061217891906201830008173326398705188072961603694881621040722178717742400964854369548945029420188640594395397494034546426974941624420045081855886473395217590822952333753741461739254674752379191931784816279650211549932142958709246569289789253401386953919123525721861334192576548553329421867355639137284505826909449082897953094882503881524985650280407098428575255246981800253436646112899228081878378517581402369849276414218932430999066394238504084223483957188826286238527841871869872652917450408490437395810132913983950977961387012351936492638658632913599941781869290625836212703273860252337245146078127643359409809969114157723913393490247754910633296103752400194986330823843478078281758050532835252259099496799207290409603200898406221937393663806049983746193383101726202638645250520940910043092071511868914153098926797393047988578045060812025710607370061864651084335703212738004043879819978603224963752068108325617321624165180500504998236500212077300849671050520553536141379952546520862574762296005333488010762882807910710968673583958963664793190068542637261236006934520165204655750074307531198901077071151752144457522995031497179627308099436797673912818990786687469308693444303577860359369273247409406997257430776997199638900714026162304070317194035609317210352422718711220135901954284648342219209722812661026106070932519036147283137743373008100196659458854924896751044877020759899432664995242040062778469382325302839844304368088554216909040399000265806250500737337961265964612038497384980822236569095298835305632990705942051032465245002850217258829946870197168927251220829040732988058603371188829418543082363388910672199465396003486559638881531433595849647728848221279014301376641612810006640101843836619885794217598181731968663249781830903052176346192850578624546490512022998360180244102862517060963231961244500992993484166328690386657445155414183697530848081602298667404815060899214480257700546074581349068553186078685447204464103868282889745734727135825418803637567171276283961264664107931545651554394263109873220428296941071224902544809680414893949637214597505809327920121392934319445045454841700598868263389732690240189859549612698638868400019533802075196418963321098693663319018986223097427568107696386054504131114991893946165350022439997262375051413242605712480820084538796444206817335669890819292914660464384362632047592319817557839015309140090679825641679351614738092557658797996268419128761130424189421877251851416677167802336815154314229134929362364758459053735177258418195909738592146219726704827151203362345283319547537434953174959237052623629240495974120356403430188642112346213945684909863983349861174762447178576799296266536553107121088639800873717402408425833716932952043480098165532399778901069563298860939354119786320129982825967854160233933447759049437801449277835287950968850027749121866053140017301139917631463620076283456159915017010261994799204239896498243832093859614685028316207193622538840233753846333041882962206919034168500330554211184708192637318742896734087081607060434486486410959171529229934272990778217703998024105921000252338960894610764430110234286488798034848422684685855329003721584452031455917593591307551898705602658570235116704586038255451534928824532185747787978719842561071661793586845784072582421094652368484041961448770794558556651286790080804468869778587122584251920127099514154431320364309808199958399949180212993494268822871020767053412805846550042567749587826932080836751777808351746854579024610137286481980181307729453075689613739201285199370568704400719125795069050476713890853836022039984423301758326852556046735728056598035676710336608220123849550824520859092327246788449599855207176384801220729358045879675020580295013491902795206470872768892281022457485843709637307975606373507524053555331918850697770248652621606418352868129101555276763358128209269405274593316132686304970027817704363973940561539673273170763506157972024145289091633208606606753626138528842015745051060673196257441334384976308166795571614431544525298757265088237866067255730248969620607167488624937109857618361436168434215244289705124354251816269011777300903512863668905309004545889282806880343699103307315241653232455535776666515397513295926934245836531914362199985235608792517667802101046989128008543760736101424164733304435793931060438118735052402849067217885312425340332531053585490884528271231000985142237363887561922835558359965535685459603329027074219219900216144976185499576158807497636677190272723887208354012387607907113912061398278766800158266987027435107885621431723802557879579207510582196737567322176029152472193749950337873099052031055698096753846139130075826254561199145157612754051790369183081587954721811004235110711278443009059329588886847661351721690673126394893583681365372374373660249489363691476968129020104515703884259932867584365688792061050787625446951843246696241684863892864915126699876783835376290901456893528558719321111493107188932432899783116655470918059926325030094042782173286712717266982289278538572915804728011181746252760677719266572399636440953654191943754021451717253996588016552851890416422980211526008659645200973130182493332413017076316170647104017381667585195878045274981516877754830380444693094094696000342324617766430006087879432793673588819619199299341984368018724554170196190231120153792333379380423305119937644117389453360291373435494081704353985450750936594973739551023285678801398476991436223387095167097009776986176602604531659534619092710535170171376732192371210501546503038936795898767371388786969410272040960864056121897360287858496721252900669542304225945744261726921939087059677297503924380985052929694617646189614446330822602393250971242621808188650475229726475408058655086300782747947848464029962536738797581789973334288961888944258533944807075087490971866980842134067135957079629226365484784457712311439637531189212630279521097956376785797876859223591330335128128317472616901496309105185506258068981329637769876545166046105032479485166834354771504163318673964943759347930105083084708859900755280300580930759623031354976171667901700684107348591003662029836133471782621376806924192596470011508324204226515436099169328242468341559214318415178958695070794855120577259733265306282956291549415552361131854158022909683051167201072662153664206665691389530095058286162837940863914588278434235526379777608890971309651770137047079417460163932501312004766543488909211852977660812505636389174003244921539204653447779999279907427029952746733348983562007532393644815122534889939869187224109293187113799511324222012707081082513504623522386812779697659529578968744495306305144813404386685880709034179458384987338282665806231957694031316693401743652096685551081973817948246889501803130271442889980484650783862363377823584842575545209010326689561611623487553125203434072444699087440645185275948583050257489189219625923473683011101228524463773322876304481916800256663622368421040349684835927266611230742052612999274619612959444114038578865955401032461541577976142947930158885756896559922352667904974820451343513035280026409181635862146980128292964680269132311894656606669331355850320215119374444847357857382762896563321337844730890248992187292643997336375970841850780428882709522353974542356407863688325554495194399176014317721708565771987324286556719567503423374052068355041500544135194875655993350918560656038448068938241367742037831096636583408213235196595615015959373753374104144235612188792996976568633494891468384171471395574642775959261228330563425768740998563016286906826078034334515570914953574266458561720287104030759444081849248676831253849061557444419959457130018651202754624949647679520074803477751252082974021587925848341381025579548655458591886607779573400168328835675136831313193182042025524357993967944256776111231291421862504559604882401197856135534748237533480622989608065694985193146445290081608596708413318707926980891917351365534360664248036748435766393516740092199118030924090756341877006948542524285824949328973518550580618188262397210275995479228524302716793141832434883386255826012600547274921593485983119388870452582066245490939565026728516742437050503396587928559374564764156330229062971866638039161628833175982506986493856910455170429097472379151674286304161342594274717361844549341920249677121654954722522605142385992187645693787753308491886047053989498928890834084721542530452646807864258546901112629164519106930769330003334511519863949098073256405511621619444979760078624262514592046792093556193136714514147370520113612424685027504519540889410373596496211148336049462971569063108721799047826646901567859482946698818175411752241402094085181280190659996044372909355773525939271274148994271335330160621804561975491091029888962894931015314789898599133544809817882449612910941095027489650274454757939581965549777522227146028054066184841421288933552397131029676773195265911414605685787567568789802632619711542990728207963920317406443391223258528322819643928570813416044496051601056395133056220433497843120795413591007245285754568308173525204165025042041485124668477280836250010869162901868213516207232177385324578182700890203816330426852259485614377647038308285671118412780189904544260445915254599212822019207265632708792908222231805983102737976669668633110781732455392855006197922982844065574724565132736680005720161516936827972230303483505189886403991226821714246227465192640280770257989949531024865104757272018371746794520192866177211453446126497238093062988808333939167240506309438513278884534402621927703197660869495920098697338902461924459856793807959855883409563355313035275106280789687422558791789904136235637150472418964068757648506503535541256298449741712141952949908494577183713680309231448877950105480647836156236849598550731868507214400231322214214745911670417921073953886110676516829795826357102650724278980976079004026695209298485575380477257474576799533599676120753015414059905504800453611992455341963478956672251814431776547057637400509792143068880323618067328146099123959472844705014402356332970368796253653289219376260289028882010218232655057857186055046801955580480252687278453906987496761285015553134890586439995208696883046534131209801875053576309869336303328842451184380163941927277902615188723207333838723168674674987052545837413321360128959433104314028728095927448439847528389120150705054906649659763735934224436377526512978508967473119101551432923515545056391358436705057401158619949398369214789343629761479690839062273968334288299994877911643948437876061286843610204328841231451939873259737539521116201003824817253426439392582904312838250380254612336675864625868851300437397089535233675770341549719646255474636034398459106421883100768506079743371351698895051108618978449593368061010599697065774589270721932952383975584100818077578250384672091786585975155108688034834644550883525710002175898752788537020185872253621621455896478440953684116974721543773008593972058228410751217285841237732318911067192854627447407487457545369652356330782643542413346672139796381534807205494930095992796354618226399543920808329360608674795031236245255510541095349224759635789713310896298157899393599833030336097716614991080436488846375354589243309198409569050612814636209944374452671589455104348171527586054020108959415312834920640038420218480128543689101368187217492239194370505508538556175233843354358611240522252075057903287527243447217617929282760141100471510007840045450375698040457072620579637762644516781930014594687556287172955975567225220730774177887888064373897875811016778690207698267382401701900219298937525477048366559666035984214895455027967997454736000156030152448224452478111706339594932707845693414933812639961981345099488277089411514856282116091424232864845294586202545642747866119160143084085536976838857143894641866097554790911125365388599938652338611255941343108984781428459513792738987547035358208694212747708306166015205669998770391581720901393587336689353092952764846836283267261521623586148704651713820213646192519769960696713527937356028811730476370551322010973565725715766649738219620270709252815421455625971037751200297129962400722588240566506557275406707881783782206238808445663635599991240459881827239358561884795562327166388185261619343955270363140879141166247418152740529156332152311950415808572712416949172462212302599793268391429779812535521065176220157309051817754205295503198670102155576320295441924595640829353401335949984165630326674039384659093321667094318830853086336236677949042145013748464972212032773986394195509213197498721014147544804441960262259211323280287236892965854138596533674536705963778518493523227033389626954780834046655637047266313875727886308871375052557092414158479251795155169045734923542675682603329051581923684216093233373549228467238836121872701987061311758709989606513722327724214075966141010766583666204021258467237437838617014070426826464794220903355447742964129484425943838004438915732608506681373305406495893705106393755578239237418019562417978946845797769442710029761903216212095306388794281444297790819680918279527399519648285810164362640220565010192758004129441485818545948980540205901798889812224683879655004768167955313353766742159408992176170213424178356667961406182471419253085894380733320150544973579978504288160932316076101310010313232446556433350600741048242802335991558615415552940981519052430314073092939620482299223868796387103467345274142768602594162430084377345320674908026503144791191273093175028954167630746336567662979632613164910987725209847167209465700073045348582978386574712035706985723436102464458368601477216866866634835463231261256095107318282941479541482721719484539352763497896512885610255957370425042620249225293797979162541095390143591746871203533526745998160349171888632308406394384467326948739262281626871200019190152255829314287204126058008535251161389465057131813298070703390535700842098597641600362892394569609042425869089251808066509494909359233495334660225884919343801992929503563249931249250927046078385511524057434038285596814993830776624918041701527068491612537649390893584958388895089493272537870729891563682495738737274022785788828486281453093268198773784666205560873764479127323942425761411841984878564602305144856958589135797050290935641581553713435666317555386832573821371081999508807523061384398960257830239255819546740128067185870855489259856277050177114094980484265953189296141475034628814834716654903489315728711047329604066948385581520394422663696609452246927887704775771203382347401404648993287604322812045977884954149352614541593725859974763272223149983558435985882060310702573157634396494303504138472475025100331876336661311731314594602581756466321715270313678269157257847066896960488440497752730033252566176312982428360062303995621524171761458263173476055927220954888388359371496785970671832277541099454081231446580346405205560527966048016688893394069874647784881120184597288568819119518968903921027830855405255318732238287721693914251591438597303456294443938827979639659629740087631722617608262289666115870121246649859877179886418714932810877538744293859757822763814231917846057593827817574703161552806687899800003322314199390779223172753265280368020191315814766286205836786846760334572074624662474784362503709800499588169639058006231779733680331192628260987952837902100093453370303713320095428122394598394084158653624012401086960235441767560341561912507275661650815434287590868524376017679651894758020481192086226081469529234927661372178554989485189900568538045456802493781049880741456824165347476583751998396162100114734781571548535268816012292121808893782454896452588424010550703672131216922997516768171607186018177367551697595606733456870882169257886778028162368723251255484474402447837752488541199049399459770616165856752748692410242121803599315545169291524980912928844968784203750101121413840371078441023822506869439999816855005452017171979372481643484045908862900509097890286104551959240843016170153592423421202670165213556229748691591034511409530206970192604085255935665148406981094922892455580449520245120900702735290513192575463969573534719944400334056191805596927412706794682548001503796951557984203557099416520926598168662653158598364210880205979358452121583553376104977678399098079049440162577822773743388093190499085439025270026707040919675063286464855477530808665104231522030572337848359460330018360950124284071724395041541796600243043937047905827154728396760769601875008711717223316387245440396498255538329347821675014982650295929971881360592358290845709990623023428970369808995983782946201330229053514511267323383564561395383055407636563502141194050488309902637776596465029398265473034685035852381316671265537327016647958024293847686490120798370939249493058636680121621429772330010862918991360755214815208056186662608482648047464653153476243692418305564128118686144003163704815979900071664207873093384763255647393509819524316897518152591189359211169904566659890208990802358628585474151512804776456657052596325856207917400893327951433779408739288853109002071174546877678177252824727224846627097153342730974910133052180150833426674777483911416091316945555517474547251469549104494488182124961260501131473887145642706524621178589702653615041446878407796949274600982901614015385669749016115135738536644070358206300253620237275555703416459753949561011470162876762100763166396227634525542292204708360269781635218954066004047765862082447026006094287972275727596793247241068519052047477151112794381777924132031725333845067733417058141109328446649359921762508832573229254081421519364076655237868717073861960925475074266008399989101278688700277726578668924021690548991425688193569450763638081725750346920067856807388931258790333921994343465476748744522204385005776759256230207660063653005521170785057402018163672173081154175461193983682500098321586719590913593056473909608307619735236316405555101303319679635001360046762373114070330984907643095581246373673298179783921562915848218862406563134438090493628170117675508622639154960133893720827722663363086492832430514883747422462141772850208612989983971654722706765356101643347438504193685740438139937531538837252704876215087530007878039890035270484729627992116685620343214852669955007553607722454794032478944870506506258129054004454265022107676291100377395563177591982183070566273899528858481399638680190535150452058668193929161630193956718396153845378750723800089868441104101993774517680384276387341311402551265854901625406996873778652109084174799698013728976636579128547105572224454923293310570489250876243336292277251054411889559872883812002925347648643899591433551305352266265514746253233881663440959071327253309733957988326759003696375275407795020544944774056396466896626766476225699816467429569303752430139394771046418324105321227013574258492037757115079465045408390262541318444897564887388520514646479389411534940149319742923949611945103490557730247483208325734578139871983716304926467905692303332271882489105876869331479777527992137308761915535772830398815383859955548112256828058939831332484224949428249284462956639865350054462310200769983290930321411701407173329733313781307323398503659214696013697461366860139602226207278887138674648558716850906494294884176218876814736410182736893609489821007084877650448219010675328383018706956281121809094004972338989039529162075679490985760422535957324233179713358173878776204110096270180754963956315998599916353435336639299861364076355837012169134369991066656781566719584786283085295557571520104154475541259057128137047399870209913370665698700733152575150489090444953865018293713664200124154819655631327867435128904143495303787173066105906522365747332614100449220663101428240246197918318613158816825443259703291534711983965534541944757857887119234258283881112687644360220972434658876208295458776079776867144490631818153678564926157970840877959167122547525884539741753332340263348640479676536560091619039024426450247537172260846363458919159005197538923898696888039448538153747236683945568279193922122568858250479985032144629312406778641349738581849736362603655366312290870595338245620744906772046429737338388479069488137013831624889156916649542732854119312255119981828311726010018848120733697705241287052105808163984453736984779576496925128436014401272732151228577532797251879841399826902518702334941654740052022962641468295487269855743452208378260359029536681898644907251575762196868243866819873667340996708977345481342374911146268465204635998567118471854854546565127689576599295584165880271311628582680953018213402093318829559733361231755713207143549601577651192125063370349647015824454704943360690712019148575746640498436444530672317544524520995768087896926556779550458621455608097475397022878114701247983833072958188415800463353055883876422468330409781716260248778612658585541275264040537717257126101406698163753977775708707682876976495366508018181168206781264157874955428489406360284465444914086449084938712579284302940593714792962776930146313868200621884198178845820078998462552746502688685297299880698810493425788906166890916923297461096956231293249187880430687461924651956943284372152213004177039051956903794536980336542010318438054047991662423369349052473440911732688394788375730903489848576958026468708007351133091462151631606800531909508912727445538387461849065723327134008280842450745504593104686684331121102750325863742755668184116098671083680164648589406499540024850150632493290326360825476820498051245003207838787013817605089182403843079814334948176152842277232985900529611829264281443647201463490633820911600101597494981246454243626522190903190955461309378242341055479892091871036490596285731658153306860798246991726731377677004648480585037414154762401333388333357215726895246215107103846534930161037888318413690442047601567949128194093605590267370677896295369579081534711414591739730809032864417456223349567938329278407589032803600891549826491193979851849139564926010557191297742927265443203761945653836350970223867755992865497580077860250757377402705052202363836029522894079745700022297484552343761469973825296547234329519908855932975329631975548621766478912832187190302903454502323335795057104027550988570694349323731673896635515581053511615179328844799775078516739542799101620182812304486487461355909102043603291627953705128803568288935166829034974027098104254626470027085544921806472771973735456880792057722109550172840995073581102244270615563554884549838655753629755284493209994081080964068500247667499592144501575666683831109293596247492394031878076848278779267405767867729252513189465554136070286580504311818096159889183592700638440196767277842070673125425398882894000122879510706976196883187319224695522044431422730181725106483501605284649166481200799023915103761708607044693199201078526478021136765312300172662233659211608658430040776546653369319460746192015590981923460429850816813157913098101908369570373566998881720057011739378453242411835649177851115272823237016681823351468673970104176670166671581706275950741446172447650194312872577578563325033502823513001470716830057569856613557614919218567122622891393146878444691246418057838585974134332349718940598049503811060248768073220146087890016569319802822705160940388928785965896588166938841669684449073411972279786244250737883274704524820029588320035574246130607418650126958909633803665739894488991158111799806185905585435832842947679984073836317309366121802057842916089739512988834438608716988516996814806770915515994580864039194581496910111650832295152806378208796325491425723088178602563090190855858779312123150730161179955974895386955103020246371380044614730587807571873851674986023768903540801675458290736761256925346214529390979569829352637888601580112663326168056200965529995213338991691604839535020797459296576235649540494612444346888777329318418668079406603493390869538017822938771140409364794386129953724508498464693499229391374762093871464986008746762618737336342947265208277313091350582598892145032104395332560815709682782913027115119188242500959829437682764809692402986765318546094467855743320059553519412001945840354678128670841785838803237356354241596026625493448621421119883388751494610736738883582674853683261573803611867251527870911628787803223583649541115682939338433827023828179114117479028791601334426804205021205953820813965600529400643217480424754300595499264473574408318813802250663908968792136863696816283569542596219035050818370195459534114403609759787271704610809360781952967417797924377854555793994351028445973783062631955538951721336557254668452992634310295049211147241597722550904225596457296847791785870896919832228694481049863268944440959281091326747833313504850582238555590014982960805811944258503302525929753412752325482005942449716873558884664630336903810897279081473770726310786661206950757910603952421369664876552302266200104815538100194319583881745709851924265043961854305700407833781833495247196195106721029312477459883575291642760568285058517553816503767260976172171359269348081872654137505891425127336016363872329541697078175277266841300687239788287129813599008889376928667712749647407884546892623385799855726008915935088551165087511555884244730493458528711521585045307560901296277696545036107587368448621652742579361475859542870527834349032095597872352858088613104252065802526798045720265832123651000477902269361980387757025425682621304294084917899370962000283812928259988818213904054963971666013535075593361058819594543042185083362287961501698406290601716999840661746838986299127846168185935778785986917981771974486724203574958984025203553951852595950538394315240657588211486219397250142205387013647773394084934155481903474860371934048707968600115038390597822650864224590425121600024669496424497403050699757787931710479999330561190675075455405282352184531463684550316576322673634969679295108762726097573726462542032394306630961119229243244525547785522640651713090962133563971904033991223904496954098522432046414433742776346608822304792016255015159493883325610627572760527120852135817547368011229473717433676901449396364073222056453510492782498170734110097743314118666959487178436185230842689390843474934923304804445748451654268960530097152294042683908424952767812350940722867570439991692661054324080046804564746513019433215459369559823041941889581935274430891817428840021690316022460122815179948957269828327271531839367582089073535847135389193271923185773016640844410097692860838111933825075939883052837226506918986876811969613076288118906920372012220579277013356872712945615747804486798653616056217634767846300741011263195590925918719093682487857602489810361179152600535190813171552762951126096188031110737481405674993294502197837621659810952030969406824695600301496051664057322262890800875203526722740064032402680814706872796767538495251732321294687974763132820630736592707120358308135580887633637188675543641882125990131923934406916692028156023853969924843382783745817830513431475589764131159914208617376981064725127512707486124340039353768742610143668890114913829580377395197543684647657540738113817205330429330973812564250323990880321680963265004678050842992074519692697102067560868679451872324574396050573124186548426697239022536963075908133325450147623282925364722392934541386192598106995178155968018722487873425248688572661359598563776234125564374644237276495824283739857177191335438628023807429627985415331015506977576811657794913360261722363243013891801574322869303110371257729520091560001495828612865966881440551621530119371901517068288997357296451655267287047965814719731855048638222240632846173441415164645229181543641245242741708213673140996391885334905924926848420077994879543882436545616833139414372976989242603893888582243303511914363213909797098243302923490890597416259452567349273961971541086403722623932447086358152497157171060887853987875198846317969296783837327974593197284299237600368481330916984844688615208382449454987690767202831861490246108039432558939017312973394518530993500397679253522134249942866868490711986504069455656059915017089169771834186752913594850503017013421169388084250456737395796787408602574665474868523219134841800357024222664496924295181269602921017259119799400315408792639852168287944394884392313919753092850492690217171046143400255951080420820615169381947292044170896516705422813644768300261746904393695690746648156288557474395427595550964709481525382600350222346258173292633287102924103954885171338995169851048714192148491749705295809475470128576034079430790723372104972390865257743940856197330002413870890618410255909091496735056190787912078705055996202714628338632779809502150022065054748597859028685451106423236574115121444888661552468902699025353395791375141285359914014603370735714559716797461328865691750922858669188295351217673960276615094234723538813861977446462239157097264704418223619258241273103512897524139248027805885328013848924876629895189903038257692534137834518719570096248540067916222615100166300009337310783593239286473707970412587541791667204680881659067519130890490501471605822267913620689295874298467463841322982978106100883182945604616544356572796169243772264048445407856510228821690893535786535735126129764694537495284964802547704446473861344502677100593966162259657819930622379857377144187161503457057101625143514492258715568882988620140124940517842041183874925504338878605342365410504763830306322175488127230629161491966768831550570912456368349590163085981859994055304729509670086444339486478401997551371532757802355133248218287036970701939334074838476300811802987581194798451524153486250796916081293407584652325557150400186086863765844616030809836404521724426090016712627936577951032202760499063781217059000351320897877544823346952234152918678337935351188859470999365447059165766472965461641893437494827497894502309611381323960953734402158743270827568187059289081466410961059428980522076417886809014778567255349383887509791281354556418125381382826706527443239845226793348490568670963750700996706834370282947269930787117122429816503778634332964280026450602451608159628758047282829511332576576482560554448460022623021252840313576557094111205416440314180889671854468106870707942092423442850714679201446198313241026797259020652625652762315373763051655016245198767245522306764963887218444915579233389138764473898160743728486255071798585386540487578680116983420554285837709220214645253832853932215926564777507481122383414544369586058673483597181865506007270016611414465233628127669066724844687792751199788425868508122530388918897452782082981211862006952248999020514956479774881079462542584707247878109808429666069752498052601013494447953593523026198662028403267847136023350031991936735856775790498173901465960971518241647536860954446137312973894561967303888660031659542579020413831613367980429150580860878196487704527890986173719482766568052810796725383034866190350833045513685476539726569741650742979038185510785426131534721703528172190005139537947341735553769470081976110141554971919988654810664357287835902836084566204424465783256190554952266066467431882151880224560747583234045855765870052774466888563037463263719262131935859842425044995517566806927142427167686434697727205140152205520385690109411133323702835064719276788532705732965974148329908894443511904678859287641513292109346959618702133271224350433018769581683774284422086558879485037200212848165927133547366355858535056741362745343072646409091680189490429057935033864170722736978005215019503129185112407121885019887682085637691937666854060538230277876537507444794391820933399425389488512636797795406890764483386712157646083971253194972820099895272167733946174490870701969420225170523302627478965273922629040959625574769138361036677222254937359259852203924818402365298799801737314140625442759181795920977983176135488575862117960592251588059324041809185461294881910290600982339797360523628320067795924057408583501841141064517365895382154238558052936303743006864023170224396542327321444276936860300883372751681846440459691498797488450463028341629102140653831080502157239409888846551221259397558960860419765404506237908603285253555211297915590750800312084755652481861474456161452032848673186173206419657160429973101474069198176966131533033813576276731595529930187887345353377219331552978050987376381857851047409102441030388895728918320179842925843157912623490565281315303276541933916907436642652233219325438385547262835425360050032491299345859287845485993523978171516513509706773643124533489423840741439275428238393583118076227242838365893151131362566784334948379314398348239730122767952580919449234981720237291856686505421777652490788020646434675488517956183610419292253212113466311557191167240099553174585162673495058731171978971495787836391569658642249082193442937535145967963933179574314996557836082250696430712084397159802902379342725004720081440983266878332806035124275842048438623883705236572758365414370208763999469541767225226224646098188488135048765710397161144313269297413728448733095146734780631774950352876613960514856893570351443063339012710081250941238859311285871149355065486114398144582202554689955741976996330545324064363385954366552721809492568098912378883656488645194871258529499232592079374983438536012793074528653780700554354610243021952277468922576392032230545878398741804159015287901165112184526518304362015847814157952794552946835016733006241900671204007860550388611315611515830990645170246026054318935086702595886939169014990119836770876709915171189144987619404556100352340804618152352222314009250257092086520804978769458863721013465812795380353804763258883437903806508372398200143754118269821197512958689063549599962025716057150697745728110202930106529573296109002786632745251446383870137804345618344691741293080803340606621236350492028062843099585218515161763315132015510396565730656939080321551055969443558493305906649974036170423329367489457486803266522949211284673806925731104946750313781983628822370352199939143641085278474723247754716924136903683271266465748133155199669983496570750279065312539062735867406054784431045346186709875348477825137063851985560710054625794023383341127231050271561622351391445192101470999399974375952367848326368858217086086723466113992318409183160070890432448005535448138410910004579084685160387388312436442641637357304991589480748060438947891698918470458750414006635328157002806074841371378297327499640960591351368825078456588352939390150364136660625836881611762820540852954649317631066205106830986811423479854273970627815158481682967056478980435068003569366515203358775429842472108538063839601867414586512443225141629672272007446223149777788870585027170903642960862929012702517231557443510216027848244086216600805605227937283242710699987012065182211974234512933442721428307269136879280193699511776740381186472850288428831996700331256641802586984039512046782925772235965590638711251349029637683532679803376773653745985155472291124484085485454275188482005159274785478288145409904359539328267316927813492461679808332186085232267915142688030473917263465482443324864433338250777581363263627449968834520737474898613213991739397562216227569718359553471778767453187023329525428909725735256441625780137691948610637376487202795966795563183112397849821670991634200233353024509630308860733139291877274520899431378969570567452978826339506264601152527885696898890644361242783162943609469465459175974430879812581037494929241802665107087162262159413869637059094648510168360061834741761995439959830746292919726547050184332967362196356560085712845399984521808098964841358013592552888488103768184424574603481514774728581759513313814820691898971022418894044633739720422821470030101123817999461637301958254802167667474353043870712758404440473554147894708345680507784660325383541702298352100305939894505501041159404408293099023289377368422308631255562375798734396467043162892198149287911538806586465077297256189110079066796484137533016265508304542923852565714802859672069620499241159335216235659074426673552535856616664208539649371391402082309469297679381648738290404280231442259358857554732446862496306194901272769414409855702580624460120351377248371039583866457618108090104340425058120636262871574950754220310878915680397738640183317218269794480184062184068894432749933893004296191396447157310588325963126712008530792805727688389938935452158576556109071646913658875560653088923705102414712557131136410161223727676386132398100689491800308737559566815116833482192725147576028009955485632764600879535785739844737362389528075789438013221336319945698965982051969245205385362119623229744284775893854491730459503667028631206284368330319990925996829167521125121544323983759333800483009815452074938094777572834474361742082090362088872716887279584070062289005433014789072266640418800604749953390548506029315520356541468129382714508363311017108472929751470160947478833659662254495252502435854495316130902794811668484001663558751339695726417926260612380245930242227727920131830469362600749281423806728632171472659471168705685113476305667701805671086841840982502762779776834357048942659575378214125483992513118117963032114904758700004073827173183624319487191473498354329381316144503799928877523106184127268960117749517409430731288328772024171548298500686601205412286796452284107104247497316239964965093664775927772003876702299429296989689357768390677257703484472550034981947849967693876180997347793679438178909284401628282524347647190960329899467300247135352476127053268776932384066883707017697139399082409591604091695589384691124598553220283123320838149626390223648169226935394640177104248297610835849628947518582674374852582954555205482447874751186390846282542594041299926421218403509207151210199837600590881193504389570927879253962264724410204072258998373239773471180781593975929139970549188792077569029543214281331213250301135173375925162893385088867751549020159237026538028173145722325415789082860850262967303896542454229275860622273828528948642927447394153966274702887444963363679011109383305933730151538467017935621708758470461128774918199213475534119946676885846123413717443718279535967683699172303294640909521632822628280101325787467804590250496606412265447813528223680438317655747677984701430986683037183254588778294624399193828626817839116004161138381403632577390666350216510819952827860346373824396072344801468956148827952384406337752076530852976278103051423198827473403324629831266680112969519961746135875063558301202221838205879568291597714343471340943411799145628921291404698878496483565887181929325823232101356529667024961314477837335952356933848748873776560228034132283226190797331516662469291826065909178223509173079871981986769631860230140317443958317033961388012382046575358992584560077268536729645703067684298204719535417183212611210852993436460849318904427202199580916868264491169567086959388522262324521032580497251370450245867650381357599596786571741904393176020570824961967082462410876591035546725588297344162658011373275567835844391948038027099613763950966502126219005701755547903932872953288508417867929666810718435560001893871878878867720005323170309349837701833891932241886888136048842541142586527750361485300261747730228628045444616222607669532053093595013667886856297336792333218737585251757806208678644677000794416807622405034067452883151982616880063078541129869459982357560975766790599433041685768048966074757642567433686798959305157557165211746928575283756436363985327202946306283817391268129319220661225798745070872015879815108088290715085933773907811924090738124697943080493422541515396678436601299175153709981090781458701370381868163845156618330091736807366267585554512336859311907956555284267291320908670622476530869212735178062933127337069380411159868448536564410121265022276115699243313647038458865346653927240126030831163614969286276003923822100789024073221978315982502789203090730495939710517891070770039442767077019425002105392923432648765338865486463708647269757886763554790230823734831828684185860373500983252604568313859272428672673491740942813690219841828712230487919244718169888496357389443843694982305660781680454897258706213107071684599025817473221410499244514456585142596416571468081627638005687199427157560847049506852381845971185099573026276685970903110912028371211842357607399125868845809077922293287146044581822933577640662531058313842706338253158586953893960604830653623425511982997923553858271924124834572599691787102538979785948941236707750556657091428565767524290348150541867276413259251368348293962581182913186003715805570157064397524555879923172746354528884387572754029740457981864966101948141060564368239842827456467907947783592851298401520923345768704388686550701715974891204923022743591442439081236318494099629980247163752689216619233059321417281512548339057683250249727406037464078264231862906376618603651883231791855814961433746892755152310984416391332823193003261727050140257981095673182813741922796272559233753383017479908395394583691112322342116332262516664432227493027206694802586359336018081255120829652813732002729133942592258209289093959736425714702029715573746103857390654506945577094912790890229875343139023405635621280737540224705242823876448021606583569762388247750508826349269533624667560013631564361623037167931326206892597341730469662517537607205770362314399171061176310838657762613642239604280321654551399130078684485694942433146611722423875207994862550790151781666669414196443810773052785606204652976683650576021892656865936521760675380297850254458122235845879609232466744700205522261193278042839805339877414895007066216022813084556860762677234902411321103444822562074832885366701321920095529351747687464691259744948594324680483435438972082124792911880982613046517269281219537723041697199859765380648097903366959028812713173425320431408039831257460867285828943528974742586932156508969661643846362358559222685039001061996101916097811451495254901749432761728731823144472484648132536297206718841018660485978564827748873896221375817960971412144388006726943458342416820232913728178428321679029154197313656058179827389263856603014782909638727395071883059904457318096577482028958061804007534650213130817433306725299869253118568930666337227414961747873559537672126728613161138062746704984443627418382638440315093564260411610845943968727680369674491194531703175077202665408104467828120608151487473875313652160017207738557230413498770135044432499116197157356760435989782331306414549052323090404101775148409113167406080441972807324217358274331119131095539526962904941829212373101978832398940931224580335455014487039106678918959053925000580045142363258016664981799939975619109507543936693898728270065462570787405247403043946732449033921998472603641688765495080842925658025985080698499871294936382575433808843652651243131552953747116831360234507654551848090780838416434990660531464647352417888376289800104672055480755722161474692186176967146058015090893638793629268789983589789275053511033898790413656028916654540908044230555954629959844297879645489161345552439752616045930092846032016525193164473456721315470289339499931832073311341527607401711198897472771629207401369300872138471061948871173751963694282068588660593141762661577516791423306802030208448582505170090561064833774317203824756799233472821763956928287431763211914764105188269640832446508443297751211605851001875244182104278917225652030276031199959438347466053625965684716174856265685826141764503762987520860966937465146811336138275308001335424162298535785507859737068642135258135853767811762784455267045321233691823222835596293282502660032919120544014857859682012191115508276750610835483035915182475236809393580349003504482454708755390918821926836160641726457986837182158134419336500752293625797068550865053860451127430432494594750664672682246019101092515321706002950369675274723329138955632396914785705248937439759058794490846002277571899471688784591507368374761947153944641449257429419341447672610356428201264902900249461360970104734127629791127635681518205592452612938210612777085452391114587974039322644763667652151974818321467917626923642183474457933648633563302459571435324355318909778438311948184571861532247637185452753041677785036599615267601034667339633543533673490533998481393855384729093240695490587407862420957623926662572818042675651774454369544130750083221664069911647611905309166621963356625865470628727016926354342259253576503808886784232792590866010350494267737252083952942418489697005060452124476582471945534649110119374493410489108744464579248588552730167775870485717884970116233231622220925354629619551652659347268532188557953708017486325325139946297209088917748277200429890621962528175683361675741891975365538011777380582929919909286102980713404274877127414903194603996494451555748112361843144666200664181402611331247488481490641021680655122167983898870694801812371302328650667004319900026658316298521863159496935485674559139565407122097301138089369637198178871533344486864931933114188993960916929418067737401588615787311416041129546094418662819627022016813149144296536943785103768961052340215115310025262127666922812369583457420940325466687515876891042415677407920894272754683716001772726537785460045389797699412713006092622045150882722850474553571757388386669397073336423312201970038452790787240926461521142173105087511486585882133237795333342785009894225123207091515017908107814057710129338359317753280714842033637829206392145009590872162975306563184384083835899108517864035070879067090511399971040338093216060672068885314241831432980440821494441413990856159743459638487964671555738221975909727791794394873695330821671583068312292031078940696025028144617504847636070639524921418463985030458522815094263321547574401731091130116429887681241004842600594328656425279302300260483430295734446535003003056481756692192767911165781294348705961321835520839476836801102983253748054696154923811352280138980188903469401459673770575136329229553883137107145070619071782157389741975255902309325488563285286082657008518183723709068389897695539804524700233205050775836016367145270672931896149706048362255890800613085474146523093133859030461736797014826681510282474526391526352781867781969883597245629104806900494263910108552818102267935739615492034077910681742955455384617859011349252935210843153814163926926231184971928935497326974595461481696704047985320358032468580257056978298337880595968121143196495141796401934165312620247447006338553926973945548155905043687581085636937127410073643342559365787037510426159800452243427977258555714618178703584622018052441092283631291421141870035837210368046701041291617843484412448487791742793192985338886340954689419688953216030770756618931202907756566999074225680474243536076396296502697184239228898686953490334051808143928693963854557089820431194799877519628962999234808103206997862909784313439995448019707390394071171364811109952864425500740500991076256140727401850359081275580285042209420213336042849023219602702578500701985403850750181214943084805870165034848529669984122543346524253253105857397715188280609470301366552256357997440972815835188026349659954896094859285075759873190171076047122932638808513962035581018966856617086526315073566847194520472741509609727835791248356733542865777204611534245132616518038663859277719886127010011597590812447992780514523452137438160872561130269561460522834216208143473875110350381142328578212947203116705378388257364493285944484498853888163990744353397532034651486334941060739659023796564566174178218674163363950988295061822001309247570463531439074617656153371996008793125147493445693735805950910949511985356261728092003978803224046011844694527642038859810814460141716949813403387970210378768634941791617105036982967478850118828906201012166533375209626389576943633743523226927064597768652777666907886179261052843602729316647218360319298270012006019448615552608214731949332227967611032916731037090188295655852410749103452589410319040567747382670544454381510954854435435939951887176711521796702423250937407148281049607264552499211102277832633413782571129874692789687822104691711371794865499046950261512500378386755489042773931995715755656888845005537983584585931623146077678332308844107414074008363731022357112639198413911993370422844997475266489005700146782670450567095310761116695174630893173179866416548389473455211711095960150196802105943225745006593536508720119127561546710763973348491570115556724573477740045051702451532492723359755677240323894012862020500001970423205230144316947811189401869588971184358983542813024641010743935969395037185157132388251781695153769876787203817628727497702744672836889033530978152213128548489025625457016756108708681995795029744610800376686782306321301583430677951468714809455896674428863205238399911872799069326300237057263996433640558928982886275065473989838831956172832135175885134139271419899916690368516044798111908729164401975274726657095864042407971875340967127630085932146818068252606986892719141094933035513517013477931430030979785425393190445698675630842186306599722312618894905393082753355360588484384838365861009150704251240167250767996868256574774624266809987973273820901201477721622126027442845239455662533905753601011303378307930641848069831127879639231452719935275511577893369500158366810707528357795638302980579004773385955156171801545196652540966237420744639218342603768300339751473088027275389405671062374561846885546850140645970518830148963795127396849594491114703025629041109761064010055593215737763980259608705704360939701401232748869453734541452947053405637302637233132206691313237278783640337827372218191592490450968705262056544458098244881318304823043551136611617318910004859221020911079934513673830067042596013660084214918165484150206284742689423117227197049901394974449637410351958214911709277792232916436771201524428366143291538742763123700777761562225661546280818052725396651278732304019235234751238801306198309167989455846578595149844867182771623757385550816905080451723712811720168053657640300689030646462664750314473067525191463627042920386210266546698898011539585965039941092907333790017808656604948137350418496445207084510698391455051509638898346029967602128872105288300494993443856970343784701308703913986100162565123811083589016406444783793792602560859220915306975892031594755861221894046842013212590434721428416534018547147971775287499248736037464825353893453917722717769674408952110800438839890092938299928512063276452085745930033626362318183192793535709945147111208726247741059217941454001776514073652272349923763044455568547182926756965222234696621668182445203821607489389245540135177240981448739503250071214873368658847518234306583958946123235949802613826969535187671515852836348659814527868811055315857160493300815672956586503888655959689716215551695095419310388514515132194840962769202901526966670600188754928046084427856007511800954891259832807095927528203860060661058532893238943241158262999276539237159770974304945084219878459500210633251010705998272975413074753862746061488382474516950219786032682750242128872612321273428908018716935638100076732011110113015618655605697154485383812619935397419819398888883570925222369019423461176756970352434947153580579355587361695187324614624062276213909495773186516467858153052930558227206510898151816224645716914917913556172474763300547056028181813401975754590236334239183799350711122593810592699833972945733161131399676082469010907369185254458454607052849213958890453189979431103464209596579447621965884269979436865789301500220714026187820973515586974440124896440925938693630985820211565652305076844442403657020575804273093533149024736605458963120307294422969767146032704955540788332302744208633163853822374956359305425786548244808679802704058159369205442140587391676729085435022259693522448127173059646911710768672702227371237262485460673958787106287664529088636337960615724599604925624045289997323870661922109585368469928849932063718417713479188915572381555660006242401051869938125429284725748555592787736350821535181923284374452696469935416086573852802798459258321763222287405266835594335638869806371627770952013334277616795734901948675187187799214938573501432750301320762063584705265999870270110371597253456590401785566873497087270490788709032671908946472620142145807266681397652058077910537193432656368022318490252749132943577584714426189185972204696201890467200459477079106155759743190755002961774613956252715694390502291895538355999776883065266652968674546587491443024023663775807450654535101287121500126649819759272552958820970300903034158491017592802734644613168323138344551410343290721337447751718454445866382896079567432669407702335329923727091971969798957271777455988080677852473744988338555687597730660760920631673554146509021679095640360904123919040429283790038998860929822943103847004711653475789781757676992475875265862194512811250447233559428788817910038897972613845437304520861383126633285529052363284159735786223002932972245802063931451296734823932218765659659333294907341850638112277198255651733913583179141029997817790110499514758621594000997561518501897003684239504400765780840511208039479524669560116887533886275585936531120853690802139790075512310909615383103255256856229159739488894316047937880464956666638874571219790867294770111956359534282525103467713979875048532159931144402211927560032298433905541978059212917864708055663325661586128396962370239679395306663161869075061004031113356635124659189982429714069385572922030029220989063995400699562832994052973885284770421173790212407601215672312606108608318022650737692598222644383551193500107890913868929842780439927906568618288294780132935334999495827425736190417456889403884446459246905803363638825797940953270781834424672360149311921001891650315118858983818481072031465691063402603257142585504620161639480980965925910149021747491051164191704776959506976158344873581039036372010034903751163657037201161882139161177983660684819910760200120953218472989610150129834361519554037612187618866201959356164477907559743480067499921915532207705097916611719296185202422951549137347446090668126409845565338094817769707524231375654278404641633569751758156757668760669674870016351719003222429632675699450021790494945509083470036569188681596586651074923641053778611325279529775820273069589915128828141136788512866656325901149272127909213864830633510546025258866479912669856886290491088243282911619041976752991316776930775957056102716080704871419829207099238350615638317197447810946815128822126819652112895277186964451805500241402731217593050149899756115604505197762008749218732149208450336083794735754254968933341353841083613715790084396518036010435903239628340056033508574733691947122952525198692430669562694174910445934223954861641925986203579501125520591584426573759675297512778997161440171826241564359614741465629672418724055261174837058295260171153434967572228101480630790273672203009933626665631170493975042633980890445123238632127061159985373257249614038115462922275648723461272057470670867042204045600653358162722911111618897364587100953299017817115354402833669718687648677587807268468367562685388711732811800564424948748667042687622997633805851755474373419386501869970158269905642188142860013741635290404819696375821882644224196266916184152487503634037402735774613145027419464028177994182535986403067361466336979271177456203646609610099888646633871337761171098811004472173579094699804097580294020983890515338408287531087269702022529449615633668252774616116016575262627574140464900914508183255751043536761148997316295256295137704905358130443249493636228095201328869342958369965806128273899212851549581804144784984708443418654465060240407447507944183276040407464349697259756985745035685702470820930590457065084526002542024440045716753818989363612916085512228351340523079928846186857006266314950764513064419957792944480308582573342268428236990487236913920084351594061762806831376507093517452960742596560230550505943358185896503141108565727572886033588650856065553430996797190401772442591925631511266739202538021429198899238719539307341804138267902114649225391418329082959993397399990075296546238957658452570555852687896938533010225363192262596158665076362105999512058208181498238667365767671724404914729183981085578211687121602397098547271456502381328718626855633336576004022026263716562635888635870214383500115599349067408139318358386841052847612078893102368886554549244313991038224353458780682112987319866699321216772703106380173518273392814512289698309971447437737234535342041754470249961883035021619470723884565055007292476010754454969687506248881733850597533662147217022149798913183029084778200721996173104111953175689983282914197182181421994859316540889337866641389936980242211874285882555393032498093090919642541952240248439093492547385347115739943352898179987443786797289514624361944888344179736741476260566523073532428697859519051752239923148298940173179259695133168188517106269268687232618181251446965548307750561367070386645478798925439309571697764080438434313342664560133224975643454961170938217941362964211190892374615891141164935190590345519380298927664984965077569290373655930870009057105245094234515815229057841954430273203426753652350002045397960857820224902078598125646186562447528266393876424355089756063041121162017919115979431664285640675871729604045554992657369279774104481209323960699352407209290847426779055184713402243774758229279764672824195739015685234218191260129229057177557448679931212930364841068079563710962848701237035245513090760605186729486478297492347092208710563769693034344159908055725270485322638713239903774565353813064502657921048518554325257503829316331985694471688552860664275747625617347286299541628191129775822872174024392164275863499036809373961960008848545536223621053895111483469303282525523580410301556497284773015785452299500125444562672491263195801803435845046799526814167691436420571651246900616684170237281286601627433498206346313991183994269151582101483478363679069749780033223399140429475215560809744724653736199521477067206942803550090532674929739495081677848800950409201269393598277001135138354901506278525593302910577616715822523314195227355739469108648787554638690746210220130014213102030987560417602922049988074798826722890650170779398200888335451033924125699955631411185512784717111185337971334560540532848599506398931576957404641873785108106449132608466463154150882943799185684791415046563668748233435675433210348314066104401213735090490584424026222599113826570846052138918040912981437613436971486772464000182353143999462234874455647049354511972494982931734063500440821753396170348046018625881284968030121088159471217239041863163069329245717052814398226069025932520832453279057057330286481521630509985747041874911829182184329196342819476014375177978971523654459922148918332967252824977858021967420788743271406709815636791016067347042028676196273203529617836553256355889776782537533022732208428983903821410324580899921484731275114683284447983363592394175798430321350857117159046044343379957812594219106466955069131627484648134834342841089438593205820302955298816458583782504638914608208023555979159461228779672676521585430289359906921945875178197713772949995292564790540489150532741848270890760071174471752044975037457334109976725678075019256174905194954790859497993481606241306318600864604229891490099820048496757214188652644720205869303379356662864633154139329654275482350349839146946300474771376212763002963401456003228107473262544048072633018935138905591767120144199423052767510705730272427066430585786839322890141840314778385173920221757735070094487959352613833044381820788718885269630469398317696793866879561568425298757566208022684307266027946207026902553749335226003545969338845295402728403675585791800389693386706877364021782396119797721859005367208343735463222823152453991010395292311859942724359063298680173883579468654838738273802847214977086228762313276520158265468857365071143311818197610084486228897868843539164466629316006035643146935832800616290172296707209550977517303328734907511864399250876338023160425219816974591514360690322150340083083560388225274480676088145071899031905220288553178456453418648740321037144485748933194698161694298037516948421416809207260867032478767965247206904352973589370118771612623612549820860471656652359743682429172272028571086230209949601166375614002713405535148112312652600950766359026299460597447925869625050323651813556133316932479509779675174342290221894270452190790486576913371979329829936581584098694869215317215630660556336397847439402483513584711022489715938833313710125841686246778417272080793159943915335570178628210798333627254687995818520646637136547068150038256676005518328117075839296034703239856074199247510274079899332757796126589098046890714700895208386295508236728635536757879108099772161630635180790140619428147763125676228547827977655031815569218568392788142219740672263026007983582376365757483409573492880556350176267255440358429627472211741045379517675614144811605915891154744894449861055338353047276874207115936027291590691976037193053749244862944884529962194943479726569400553811257328410682655626375706017334853544622060314344240243226646171291812345884959481901543063935763134126592721575160162492244435912128372593862258327444267798127497256042767831995537757566957577794511838023494877389602402795509112051403910191836151512090693941650730112173593418344314459977540562340760427908811884502139949344779084948833530081092066145035094170330419127499762612954205270069716850184887260692966284430815005854693812289438156695221178395046711404888877625867041749073823622750094603815323160739529813175651703138992743959112515013013883144483700833099693038254130319388507914053267951802853467480854085832062809184963035715329624874504487362019765383245517609598287047378798406473292493221221288820904382019726572812679831142145547558549364758469363464205939508899351504599629941831643510915149845147717771584889355166079070083751828182286018035885156272239887537513264017478363789345947276068018386522389597459892964262489182935638419979477899491908334127242557875717808249601658365840139167659137898183688477199227404419494059642024273906968725030621208718576693492263663812151959015755348308092336317525288558103112333735581982458301332999300395418146731797657848972979039160039222035822309323570326205268520699710209005253432552655330137202088612521463215037997521238559380084500996891127764592288827858084637258506328151069139573314887617349829027946279764215307778468339944453945427436714324766946901575594825101365545781229477156810052996413326844491149584078347479925370903068950718568014886928295352047250099721563873366750838936691050227500370694215666006145677890783032810457027752336375006433985312566489590242526655499648701039341925807250521473895720851583753076722348935434273022349948081800880358632922841906331917821729960475824855626057066695882025566348480258238638992082564666232574723702650921500949829467846106882385126641094288793500285388291446667647190251041115207509931443574351216078851857380491255305578387314755602203914600955902202472028150425614072530279189335142695811726675558685077186943242875949928278006807065362393059747926417081540744877478204530156061447644247391548927957942214021677624666487100817920594961473556255912055542140044104440959821255301774816292287023318702090255926948548362730308909590275217321352788616128664870724634121380520171828225312320883985086646591551668835523239107177895768739733191984914426232556656330337926567488370015144310855615464105185092684287209261556885298982635772105224796509632432271270064171708329815645993537185937537294412612118216674052603785763255248304193606845574118978248622189056870229057937381953175196857017363611934630517532486317443473473029793023151430645851568401198753439777720927709756434356190148280696141083872644870311432799381696056551203753651541110183278171313114875706609648971728973567901329813256375820218680192687837114944156306414900656142514769012223676434452871125435745262496744780443483655892602603574057722023381562529684726695404408910403392430417330305301756325291344527577140459590955360122762019856919248662124163551324789293844240125834375905502177648531622507998515919519333917598799485334701519178435848176161828026084163782417634690576760083788181788603520853305842735311254532941242557655610672293057937540632625849759453983237322796556599359197645972970428845646399745683976508100495948084822940436235744534099427498367890362981033273071346879120674925930296099863886357059833225355050075090301010582532687696438395221549010989445754450301269229605078991862340765756519343145969569242882141004423089585370295249159456005727473083369123292110979887475570533969572004128994672693458707757685777927323261497067238782507468679285555595987668114974086145920825913637229475917758280448491126310000881501849953635260216215021460878904375171945085573712733245105787153275442449959281532824329147539834662534588338235329699852461056817206075287925879307615078614647243071286538072255950309071805275639951218551938565823318376499424548939695765451358369445242889487532055662703139051720434445446402835179592814257556948970222284021683864590149558407722866312810904655980960412592830141553671035539337515764893495468810469883277956555367993157470587500855440510295079334629544180013277071869540376849424810394867880441705442059671654139842888234902386269113118539868301422192950465977416443040307103031318616919621169402737772641694079166151374901942478663301978863598966056818189115492868397793371611353056041192748409347988987288965993227201621176745553518922718395755945553843346098270665229400581381275615189828136162039034395021740312472802828353572084985654664426601284778699915816926950259908350086423937896690686650581391557535730994007273840461182834528162119834663876342067024901009525233356222166462866131325093895599296380273868529603454926551857722954648650161236980449662758792171163550488481301984665738005071017140486222974261367978549575095452888036670699763041378347400833180963332419850116073483482730947033581072399522924941159078359010100337136053056303892322941466668825870057813731070558025409321751918357010062201279462729357470713389743510395207431275582450686967670817466527664163597733714298538476242013279180207633938319517437337574766047970176860604852723290481887571180541115700931687715504725176899283003599232621892729198208831396443125312177217041679469914873039404671469052166084297166806195027737910285938949805681309765385471467677837809850439210372837679077495628224574207015543788604747242757288771446702591175100536408087489702005029978746913818262195101304910106226195511485145403261702539055956330722075350742545400880543176371268304377253543061030842100074859917146364710662256999859059507495674995066262284802972001616220417861913004843378522659746223230804289059515011652344504400030073196259389300079998299385331238767848123452546265524020054866763040024557759157214457925316234527290552787878158832984455225725559652841631204740110322169128004905477576334011784537918736306856564837639955467468684445976581750165067524499169214871341779222771993784759227451095682063467019022884524330670498817924908233877290899345270528161561954411851711465519114890581891844949582347719270444311698703260305532767161215736995115157925023225520806858037625275226271811745098573460046099542183208658746683865313506188054602857057224257105174380614543189114976151736960795901489547091806451526189472239918629609306746099177903797445220385135016772556593514331788453795667997633984795048634174776094199658157069803790178381357894492978074383144558284650916484768315001167612667971346962662698683548197377244299191828829974954209324860351014934462346956463195869949227111207173018646423518276485173054544285710417855386348989547409678942853949404904925230987282398033280626777777507363897655343780058599438581224872959193284031217950420803559974356342612855718274273184964454842867007094915565454585212033128369412554610446093871906363888566748450271207572386510167405800283263881465769377621301278083653625153382755566608289317480352264719536231809850840400225308408139037709822896583802105893127732262311923423754706805104366795445327724022713160937803882846885990217492909384257345049137770962384694450652727851158627204177904402150552678630262483410836029971546955381001216610959036757403795132269755368521022240962577778969216202368254743408545047872381080086943354490781056277733702127500525475469650769027564068469520424263627501170388142429715036498498660443593887051936629546048532993031455112051958648864361916865828072763042539789717348089035147624487700118387878900748309412494128053481863471122137620485921464803881508374795136391284136311561675878368504362240013736237076964027993974268103213857867519107808956904494601912612758572005388572261069165035575929465853184883224577852913745253671532995208358372545978101025212819288924961450750080133181666721048845598444346133686863906646916983334910677793808001442966153065845602115074005026483014539019369428115374167289619345056522834032597589630891020764697690976627386158130223498017533763517518356335042437106387089004448264985500815839880533822568259837929727461535738016720047646573961365533677373819206465465075587149496187433097729704696793170724356171285932929628771880634870923515026132855347477700919124978100535776494973499425175456618492677983281479786205131117351092016679282554743204849129933778123379832770574521102006922765523857959528034898144376728340226966317707292262176015497787875435475693224227097024209745864279697280616787743581535110413147302584541562762767915010131990215881523385329056622311392277515145679228840475279860075339655061451880943132592912219441539078858647726901066778577333284910422741081644257896251516426591141407365301911418360875438449903520867139340235952863111504351457347228592337345684363835874387457013377938869045223052961994585928964355187858609049211543842503440525828320024694407933409894749855260459790907611870507539831664388504308589199624030564592041790615092052303534185561286492458159840927094540471253023202830838105384432897804956995192434354217879151409656076336870067023177789714438418204498738657026517722605901690588894567886244070856286137357459581785113871618055316492125459513125344996562420217469413555562591755126250537766008071607294340569847526729315283161900235863811070198241406028276589519278064347946323445136130636244707810337949472145952896079438039409947163583959224692423341825304689981815714511986187138436041301042425274192481275573486553980517051253697727102731836401481860440707747228359621209190237932618377145842194819643569787981701855313042142931711196212576031349267612962476344286324504700878883796848901022533562265975623613205212448159236467493842466802972686718028330656468487542681023135646207023493130186618340220291056200386660011728650041569356607163412008454545004047109596332770171620180008563931568618654417832067329372614856943674169112101360602109522454395155823530895264521562752788995280346821089131603831378693147325480313895731624938708676209292016314736905959233965056257473204385945333815517825900472954468207481502957162003327691957948308981320544661085063527474922983682610272997343553838848783859047400350053130403877976844188483630437178650261822829196089612836651202787064241168285218740997023633318616546325649089318218405239473512873193180630146232154523272178880359791403010234442785904364339338644752447137090249669276676601512676256379643378360694882692347884893673809280564275555646843594254700442722582005542843785093681590226582762420014003733840146682339233777004128036180790963963721494598746476413275612273862851977571205382400581872795723207149630818214566485728590241097502752182720408779039151673830037027267713506410264785426206742130584042980215935111016152373403390788525719304126962761959563534926564389019774490115065007398816923677037145507612854925336744816407258268752960552229560657401725923786004807466601184562125865719843762880200186661116301363063990102541322874548026281017440037509100575258918517635959075108259453078401644754483653345598403545753379703549647975067113858297445858967024372243627353504290909147375549429436627457559921751174983892487895808090915692117330038257024304644268917656980121432178017051498411860453956557333948657288323664093580542695109953660603354726400155465762880355801193711922438359328800614895842878381788224042036739923505572062652341297020714858577900354758449225140414810307410410558549488549746700436644289257715594516832230801731952666013869695389288142021560851077841880703357789563723850981090605591799507629339530991943261957334184006385177415281689122101318429800210369282543455104833136550125118127446344554001034450463887479330215081483749840301352752702330241570326741407248590556336847867668854845487506041506463866159233542043438226374577552365079499743974226938361364638339144230544564706298809112389449440254667503519925671286243658327733134505721661655279345002736998851798764118680303071564542531920082522730941417435061428383699740835738812139164195609315618908013861534319243565951501336872247838317403983635745520912782374407075316097791848404717907674527285801316143681472838399423759173657950430749504054475216845604300331214401052632985924601170019099278587257361540108933240163679618520534902954354621264982205071933261704434876151036203387464831685183565182864099090637606384840699025928487279069618550404995174973909760281720644829719480882884201695353908546703066794057979466293076526268021196475102086469666008704566700268809441099448957246567466668999859981107413255630404853166693189661521249354772131290298143109230567819872428642135286785148502367342121294807083376939103323719341566172963797070528291816272027800363281195580210833315540606018728193937746725058608196727803120813846827016494422786441128658024369652687275067069286519098886876951855931434298368546323431987097643289866685829963228800811723515638066890281584655617407996770990944126413079155176447619019269683144922551201606189642911898941861879979986626815093199677945492883875356718564614224130132821834608568832559740821503093922348812486494838592268771076735134842260212981952246155681147531031198971996713318096653404853050648352986528969469303884321436309172353113017907800357862400801015151494184317246170681941845039403097518648120719466111406406198869205976586184058312764513719586309566725372325952636087356187423086402024544019819952257530061021708845849031181932358937344012169047037900363114620943888264927223235238922886299714639391108080148647008631547600832149384870966987646991006186537672031660201784108121501570829968145642212844066112696898789720487406319460664190513516806076709364751891761320677703019294089219348948295854591402620982464622744882543111837038731684606472461024452385521477226324745360301236862332900261973027191424512965980857605341997636933637328221801659349099094607342209612642136678745520579663228272494964996084308235557754236468574341284130868579841388290509650798869425556249077826262975569263659405036126817686504929545489956143647211310581711040762016215049602359713803889441842721522259825951375067471079248165341079945556275397195760834726029704357333962142829895334665818737216208401424949403407366612417069549543015273270712731073800637860879275337388676005649686369990751923555393051708142905476335918815893621734300833351052914280322365700320851231863834054395557869688103028446273412472724034813940846913859851483681565576037969734310212535327488238397860912256327874480666043921194160056629207934781352869114177473803236772154505245450906652056707980503592753095643145130529645521635729917446126973069788319564486191153295001463279449530251945643309005949900676121646078507484434603013262385862853160034760809260470187594885127175139529108469342204015912889919405677374910663786784993436755513405367809297012753176625349723778727112056013372629493759489753610818954268225560584378786540120411775524061672893047054773458402991600582866831452578681408102573035086395602820300704733639807252223270410670790757045286561413912774693754293796155729378962338781846056327928561896369622147085746451524098155461654968078027427296850619819493356749779809428004445367680536680209968404734154635459358761826978519941081821194924542417269332082865594480050317883293355117332056076527838292834634337326510216286916739052653713344087262841401048427246951139824034695786462100844430180207638045039181608459217686056181246047122181782900563376756097857106342118009510885361560735741740492390603415343178569801666117791502624831122593750672084712254196288865360075657695750064354787454502978541146750395970608415338880539950657059253060604618515812846679959818737258489193417498415320011041211543416810148003920972347058584173740514888541253756101977088439038228415603413862960114852116760783558995901739383352231040150245953997927299090527544981344342419584369258324995508260978487479617097742899050803895592282906532808339686695826914387834777012051165324504418817336004289248512909716787720222025193129594829007474219456253233131051778729077741227029874684247118701354583304717739580168646944753736561544065840317746283471163368268382894036779188324780047252326690510794087209082493248426147799646212480993822779638263237896552589342931739032319136782319544161837877053011247622767353212780665625828077234548531251566833880394877063133630848871463706280229059561014178285495892567885562882725365222621961361898514730640500037442036592274703240111084183788936642819229888116148343117295018933904925163970981344807095821790785680959744913347721557460617648975735001146239314170032660144784924675593059472399888343750495146896892444962091764728683275030147065034548988291419875457973009944528992403010135863931162404266186443397008584502941927578778727722107968136833331438287547481211701842518420471906969908253720978557376530098256443991499749841551269627701664223340946198527958229323014372027236301324678216867107753787060672452108305178779756980375394281356854490947571352441043649218966339513333539765654322750711810764661812798089123014896892367927294406216586956506508069095303489757685815966178894300705867304290719731303305377512339303507813919668367990533746395264072923100727009791846920167767795142796514502542696291874981997794836180198268835375336340378565220124201222767760093346768294044679987297705806898544043359619745536629470125997341977824945856745175908588252065629756093184968639395921717877424775146211605738749396352283901927382152582868139721338895309783643359021807417573669121374373820700582562189190211976372157829523877567390509479839017638287203372943399161804058855267928901024700088249668501473299071307094434091558741734446497570964833599922961345983616172817473600438333663632749077113027780942120847961698309543290736445358596560009421942849918754062704736170366857776454679422125568805046230929205480507432746223173065995346509407327834614852443388338885456345291304724820085094962512373772200437935766339805020120110238009382744914727516973207259806670187388037325964869711042061080426921594827814867770718657965479847728969610252654366685007348460555759374402875577704647816285105423110001070851463575638548809965750884303660094853745503378120985431890150816855275912007005925141243782241636698430119990447710632908419331417442556977594252597796090656851498644975112116452117107331249159517322968633200990171142659239961856599027806323527383910510628933756397015033015810906492753409179095185116836300465872498082827420446132758909467494171551354353300789782687609660469656176216216628470981096689943827675616033643714492199522624153950800692900014370307570271175022300580443940729838661829886918566228253599600099951338263059104584581842557743382495094126760698306245947055400913450237534674563083927172823805899472301058992119185253498548742810264904781999139585368868733319208579722862528506094503950797220106482094967222519080180842524930566812549704614044140558416290702433084052287771982655844607628451472623907014739044926047947331768154112132934301045290069146187985112133288402884356081945664713162228803629420515772287563799477245066925619301466522471784032388747825639652409359918889728591887058406461261139404416155613931067490432231733850507925199649050220617290029926535906178752804194607538615250600595104785648605251890145384953935454473692103616729844104139594189842418120932658350559356608356023350230162126115694743303074753666597830627768999123206245280475181871518703990093956788326192627670031376686210463571706345901767758928787481379083584917215732906549349957411176820897036753929266164701734858286440582199040978220521967244651956618629485409599443401029779301005325612561871123201984389601958082736974314396868223128393660833282436191658132967914439978306352227366508383983972668292968629083609079098935922872103686153444230453444979702932233987121583607803049728903404959490049193073987875626008124147462937534316052081729284814715886496027170298127076395811998469437351559094635203325449386906829477148733775028884466252808929051476384463608179979727330879670836576452152412973190477109414796359739980832270598999806373390373551817699100163079608021754602410319345261557251698602923803983993896990068407617760688294320449574799234489350140916987745028801883511906100080313600832236458051568982549622469976470758310067618375932016314701123225435720229127005305631865980811205594777898757612046021115001608398186965859921017281482477502985624429056024481892704081138101053825615512443360448822194704593008154633981269519823070402183565827479524119246316352718134132379340925305760053150338860384047075347284872160765534929192593860699997208225047564093118825393277432522817949856636424509474536298969943142486484273061410809615772834754835429235753097110774324714136129179523535434830757637260082839474987966738072638496850670895155388972298240684677480913473248323627671016138199454640601110354318030603534837623359079603397194382323306803031546959820147402246249518876259376378536887413165557608513297989221466653505433788743343150067499619853303351691781004964389418145428598828973395403935621518226450357287799500911588229068719476595251483877027243830374161810724113631115164141722378864610638793802502161533048226872735886607536383839150512204718622999544908319872208475092102361082337049168255952011538719497513278262269810431008823163177701457060006097542818004684927320742612671979144049388016762293432007245196951948704711063925664277599084648759772334508271853779413036507376362641621909425978619721355961169698670943409050765767080403277043944652640615040201868378546296154275907827166105164840329940405910555697981410926344985428778064399462793885145762581643449343907445594595015351415489389347773456213007750440291694278396897708803426043783896340388526728814747721650851575067773337842219118011694504471823962342643894488597465509568022206566807318909400764592472717047951443430606186827851432332279749110527450266298346003412540357254837299352228829909541909615738216666616996605758802244219799929932266562714703550004464533886994966439855400755504827283434021852248678411887293291817490338797253101247013471491279981864925928587941950563297857696605568579880130917692138935170676585401078130149292336011911041831097575765271172932369064422806647614166468037677751320862758413181612160644202111554445508147357299665273203262760550569315518855918121992595669738398241251837031589178728586475010291270783509283492576106479296168328404810477322319649920249515879748781993003291571339277663066198805840402698537311282529224839763393192505728257561876074134806849272386537839920770193010864106986759670727164434587584137164897964476157831808352943841250122649685146223131927184171859381069127514577195298529348281013416104276876720596824808546527125727243225024482735888422121872264636277383685483923661286710278600134959468694866925751966715467341150252725085435839622563143536869048464769161223852999965188378169774559026258243190238691331956833239943075248143947465772543620484374484935167056798787059367381835633921514256467725270223744624061828558522642617147692667750191328389565638924029565865987665770589236177638606175875371882257033640372087480012905890428729333240547770475509890286401501646795994671479882951250600505003532235666639264707601369118993905435364187193753349618072119232810218946459706480226223166957237918817115533147684953510670548189262270248218714541167555320502699757064983122276859784006681235927644595917012289443851461724205064896036045791930771180372487793950802565972008746963808792555276689689302062287610038420218041378984412989698031938035244096286702244993367793775436287807998491129381694493261613782406470170700919518497628634715320009674472939356350756170142218912858721416712894540286201382720504617016034868120891049506755136464472780179690220031868189149420428412992344410023706287566899542063126358451665322189288955962884675316524825986547483460421475264284239129755631130575802234037182772372932978115380142764252904344588771309682821600907118486544340771996501821477253390214816320911385307085555945650115823917285821333480144771617349952453869100989574079410717798311912407705697576474256189296612246705287190501542491242763318955372118719907412638891439144957873612629446017106098876899345785043484707484315703069872815982383376794033826341451462766059517145289127996771423462291664113951972986572725868353811977247314402703847974808273706338267183693939206510585806389065227971792571126491705282863696898676357253608005624920344330337529679090177294031974421826938510167423348947125332826044489112047307336014192309274083229867310297850860861158500643949205333762349802906748971035669691991166511544304935909039066794859305379702313351691461507240326459241457113804336647949647375306976823681320730635951427177133270016328307836776042009065341384110719809570059334815847231091041626906977614270673368973094816143478176558438595965242329661899410090046230123526403826944242790712333369375416706534374370943309246032748745939238663140459931673755576695523940716229046675280060721424274129225828563901780402422773804626292981661984500651025175750184366716068381804479906812364585562304498253762981187344951892041586919204605746153887786425185117783884208793554697090049119959022497847498558366020056665925490367750298909682920172325600088571979589156744580619518539529033245857945948647745180616332019651911271995765414331481169769822601664780003888535511961895249938779878834507238753573433055024812802781143005582013721469692256801703219028361565204890726993573392794646181812992196231797069763807681986790005300355726421561593589696214441300872858557643013524182254718885874342226730538394174690230372989492105611903182149855461995615742563360468054329944557282240021431276967302008861778043252666890208059644253754113635581342529962825413436746983197651271720569357285619191502172060367834062131312245354606764225245542218932604986721674031625364356069922798844049780731522744368215812661038753375840105762593632216847624967412212909524427690844552256488606798106597756400194493188534441026153329120166481234566261986157985007272059188018566816621383499600864590378169900156598462351500916287480414748691109827418892581388327714525416593489251291687882735171734137183861131309274021969150561700357711321421812406427917610952208351565152417949253118802927820929621545456201122401602939813046107615367917779516233802594929144489760157189838777294675186142473681317326684310309480737885720766206414211950825425263789421073568415742252997402757840471862528031015783552388341858731948830207760237374206140254423627099660023555979873624507791100915925830199037566840697514541248390135721876448994251099858487790876983991429374237734993465273010148214990287090716118707720026634801142137241448827552049049114504656824507067725124429510446593141213141316008199608707764155590406141120489856328717521821426557711991115815655743166677850839291276343693194938119800823616078685344292405111355492747846797559668499717955437121359354902093371948715686377530185035210933296895913044050611603329908969143654424619825669566776952262770640103485399783844245220478821103533423376635289145140353553766037604508360724477088032871839706518866998744013423095753011430072773299447316327302943041500883241055095291932778527648673452355013021752988282156283954533457832200530620956520106077424822800131831123031228060468279874453256863948604109941060821151963573370940544010937662167124812748626555039315160739689711094900430941847041177653926022531993727311716467680458937511783636650661535074643549957133967907331803298012323573771477297118530695027926357295391332070804044917061039975307717079445348735366665779517749362152068309825611739462711669486691450222383016430249253195077413629362703975380469962283555546356580869118633072560625814254107358542140596905773513121782265601519155999200229049257531416787282407204488338450834545559327537649210536156447091312783939355520542666952423185132444832349622278750955460104286432679618063486203229106530694120946958077247182374964542535526664811161811796028748925553183340067622347008537491686380112789353657695848894242988629378786359020933060611419975252472226026445104986079361572372603275839259219295851210108730070486813358819442460496277273210169031230372509043403731415147475392086257263398260514972071143363018687239881864824355818549155510422404852910899575725270906161852426136827555719695802760158544509515174845654390105277838805945483789641265670661683177865385288513715056414990852217588263925872040839806206914774322598055690436230276470902987161896030187270443509076293808752497500545450179814843719602861749142938535917298352719984315097209214073000509598235966224165679628992670975895005366634786011099962608469587166134654160445739002542003780261468385171911000511803555535274250575587851624353753138232851462961756925533717775490668069750650303478260672540631985878522047654289876973256924616754331328562594897259612655794957418675946994203507165998541068295712818771859045767173022815706258754846851914666227875293922775860286150289342760122660532349943989713547271793188017164828184959140177846873370087922728900426944325712085454731888014186150759530401133810794604034538771989438958305762797184221432898057422750157983542710831360444044481508922460192659730602403123091998166900488217888864362505951915807476640738049186072665337623155189732645418822469305062052346550831921580232222788095433734683535571581604673548822117602161089522752467442069488300456056009211634259638264397058079600929622898018919343571600829951703510047115687807747364350630182339044262915056618964247599419995791465865710469974832312120341323243020019325847144286569176799948929439502596799761063426256016412054768296380902904887284215578201947978614735003624278358966397121297056205081170565901855186209673423596531769371076068082194476616955481274378523239236886294228030139326732942610097544671156834630766414102433295400896232420100953615470430200315918638102538480955531862254720436936360670828938633120198344598321993691452297438682631655742744775184137539647917642512887899352522367944071868625073807924901704640814898906539581574839707556870473441906278201906643400063930836477439506247947656154943227924789359225723257682956833857658257786069160740181901316561447997312480735951309767869686565343872399395573525046244882945105246479385499956186917674412020667069396638617028531711681996585104642695345531809099792356633711551569571765029231665043410173865479414733417758035085383291542753682704045862327641878388038118589280103489750783532364017194863963531028045244775271939238628983170226934191291129521881753592733356513905637045499643218607863508176158131306405992386143485465880133842226802233201294505638489014586288381809657040301925613117357465798653799146148229156746250919759599753730369530107496700266588034258636151028642252797042476452240808729066159249501213645468364581727749654789721570047944859374296658599679635264071607987615458231456961744370606009169249253954660522400873987111286732507862678939630476179428686739126731878645120483093683330142481399646623891107362573700408288119583005396323057731080531926678269650709406589979451806331705087298849786723903558327600103520668955195051854545596009204694188348742212043517044567682840127464283291242548894612915895717069446710905677631616658293631244172306933144277933221714140965865931624550442447418376514083475896760762985577947435286859982253363679980517812417340723343131828885540160881085789250739537369087756297770503480639699812156325284978284886054600989420823114422802281388677214428720442007352326913114211189641349439753328111229971461625006062073471053179678948059700121257392832901853454120146978432030127426853960160589507251328985224316501612562681213370755774634856799836094730132935633263578188594455064878777239217005467611931844764316693405426144935598773112504116952631380588907068888459303415091384999070783337812462109983037405037041896671124409014113018738170775949810904087937571050490339975726172322662293901537567230341217563522088578163992984563336687366244956570096930337720676260655632308010361115143938319842065075151731789893650338631400595599579076862765318884382180433977207171214603747647601152775965229728203975528297491595703707847906971815614601963755375520172462186794935242981334863363990951025995994391771773366393792454630569546166973878220164019039667183125101955231808971762127117370056218898610161389226684602654336069723951700921520286694159482854238144127232877419891814434788749578891523622534564246341755654177037863868362260231470804195624335169316871932715805349984742766165323833604778156234996636785858165848580196948595004983775702689579747041438469238016869326243963898504682148959659726858347182183874966839277959067577557454961916950485268170401052649442786803029940771136164511746167677244488787909782838915475124541617199841174702810636501969634821523686353438746395918188786948693775991121172180164164253042907664892228256109578597772135774560895880563181551392605979238218395531621735440577817391238520188972867646288565827385063083076306501366593491068519676390899593181847179782291331024858418893217668273227348647499011554527409473005064560522662772905838269860086933122292915408792435929836067074351305288404208239166335090316044048995678281393892441694100312127152319867238323205725136824116488597892426988836547345965984308607726617318658352679593142893449463724231959632909048505972606678296993311114522923738269008266782725155413693252513277841181370064545657556523622544120864233799532420874880047994449501290820778836308487050950844008395928842713128599874534093287961509690306427399809713552316916808082050308519006082252477837983445612925450634920980422648939901261765095367312229387246522608882259896551096218900684541973180157386619922250376347366361597837758847203781775707012876119601479852378051018242099688927339268682658111427834455316999580510369165687587016920930344284819029629491793032809877048585535380878489806901171955514509864301074075622405078700828047300872544244752924530117532004885868639011089933884625089993307141804401177701190531230776906786099422445305989035878746540135729066660727235037641657773477845265184396749629147382556536600185072004729365777788658414746235072634811091830543801353617153305493095174733745350453655678043189784825715418516936835167399073938110787724662691644324106013671748951598031735692390201727142342294711340137149772229294570923322296104216482979585780495646517549040600450724542768109927423100831033714430585719870829491709017852364880679002325285187181365861100205366118325226175873925386225217873368545842794827771160262272559675882011107407594055407169827696694198972134556678589449447133515911672449341822582921086956157979288035084418068007886009057207009378172105070762582261747675846695160311056014443022961616053462403070960643310910376648387150933670617787758748889721364342742649928954770098391755329997956409273965900082823220439555576757128317576262829068624878032626467254433665158056761248389476278735798249437559753184979869483143358157550506278323690456046663356934894848931648531362016513578848186756160033025512871414678013950101964671176803864266447578842511791160095956911104380365209435612820169991825635571664352904941742976226633414462972825981435041506273786601583021921579787350608624623392958060440344950858626867832893709600605066765178389953522020758269546467177905466473330752824590123730148525815754005307216808136502268324478865514464187742944382668847022422333213895654389555332932735048499941153718933826929137179995076677846479850790726620140761433709411883008846936117250517479545043132465827180801757597310363728303195042156868239985770340751713520204831482956017212836463351706554404755807331413055040772441555897965581120434541866950890968539928043522314140518372185770202219857052333157687611823832443237158352117490631391843569895792592805612477411020714825303142588738751936156169582721615356949614449587104474111020168993852871943627519773886638471152061073961559459048457637496623344441379512314503479165841913385865865021664934750482133060542021564555529756883772570588215435418722581917421773188421054832110705333850750322299476885304256551922333648990463761956179640372349929641537351309182740461513125202424183784429731625632367099793254242939056146430422075971557492097735611467734823842978701395725605903110586502123933060268417053145132871723381510432386840154046440556053429875276567154712860120107432138037783709223773056835123112933769269618917534563671229037142052735667597956433896215636386802520348374904353745830837763508316362908627469803400112781420764045074252170678436824543813459444964853865230371118892529026463299485112081169481887588147665514541198057034063669676970056074062356755479306216040308278564246841563462167787243969552362794334577547876680906718224261004602046907255593305967323974511768145525214849728443150482594352340474823841895295108930827043956352901424415679035862185484652901240835471262997547555677702985333758683038337810582085057552210247154348552143825779461011231430150481372854198392643935776997747169473058181995060404749998309990077479433036149848280127546737550219658244070685191386910353913563493759306396130380343501279685378301429176314681520530588610598287198942185358844091349929453088966608295064822905626278028341557850936038443808234191251361195892587152239638033706166450601274202656656759776161955690513657290234771538836366317243126694209707719951654654508115339819020875774071325975449796970275918123858079025585215310317212036293697352892903090540117162925892428283966624888111111083348331229111245159495919730406364795803503424200009083688788012502928874529531735575549472514522173073171068131959114051261172919593390803818222493019915734754866387168491458110754310257365568690152109754265309826230238357459046353399097472035050508547269558503744248290490122936411790640145494628271828217829441059510353468444211549374256472534402232373067925106957064470871685735318532914377100058648500478235596444228262512158194900197150744504851004192541960245486094363442635475276021565674806281022625812831156541327138797759719111303528846660157997990929896510162619556037636883615979836038384421982440894887586606412469182379759748969777795342783441709440715474586404350148607912352731602861904310213172252887556348241911446581941773510715249987444500800627704771077766458504023077905283486104773232954948682857943811855327762533592924224551589315705959817936485881213831238662938859704849282350469071730396793785712999492808042228362451760474262542137302710903436907862715205650609002417586924074780143118990159266313127103629656783809361788309038891227813904561999541697331614807048722079859323756810099517254676665291295146477898004071919522473876456562110923288048398458847408035058285540630935210443985128341189211557730600958410588119095741649593644993986907953566380043284646042865281578580333957260028869433999017957625101314576093396113956110776726987493201900175654477822697602702394174207975471566046038124418377200163674624567748008236819878319269576886061462897241395099990265391988130906221776640571505823983706013499958252364422245027781353607080845160589933719066434734939883409646610880756592778515256057408376682569688740396794502624464394496351504576644604402276309707830031568689050489555867121710386245447027621760976204165445174434526675140955826650770810055852640817990263909379205348375150313228352495765957279366933093415202498094136785754559135513767393007504683246282760960223151968939495886697388462357901870591730241625161878893870699484288188556165854980094005423349102275723573431139716780024060414116174558697241306851529726063757707627801258261232653549378622227632577104471341694567473247601920120646948266188316927587428852548624293893788319217166242999572759585145711925289527277851207256362257371590638089389688826075086224805851029937151426931459349386995140793842676704412576703018063335292959267366148039718973103352879216640953535111755049661705013793416015245031413641796716741241554828481968923190303583224667530933654281815938016760688031381956593501408099125745581799998405743366386229705580193707065213890068010965133492907059183191238148137089854366039172105938153150438649009475229711291310763449693124052297579400217627319062411168988678746800143577527829140401867149132556707933106363503837888702533067175681140947035102400400151966388577980430884934143552782610380085918056969599882619618389521760530628464778803009552149491983225539555949287957209409808672356086847217414676465691521105940229192708296745934484121879422349738898913203119624388636880976528732656751480960486533265792856477237812001419895874846716304322196192152283633569766226922234993043777569526591712213019422527697389065249762201963183524697021630504413187608884486239104046981263711028542384465922535167949277368952366193043554832090808225324199163392870807338693915545607398531574313973564112490922530848126341093038747924096566706813204993531696348050471736852987263492473220146009443605562421495388447042212815732118081542344163349440789011210363984831869135801768756658094571396727423803657436575846813464955320453965594417567137607695775737107576364375793271432575962845892255374002973248807267211377630444811802142815658073658187270978282519110323173308362354984202157002789374448958033068876402569330966768388982005729735431764683304284973342682898391666985692616041302664839937761160843344843048513328121283214053344338651006417730381562052500369879771194436051164848934577367531579724982091092690276464925188262386115494269247148957751091622100128537638379837604674958035238333174718152911918751118573111843094125845866808529788045918314533862016046528560955279134093666713809008591576252868439562711215813930759925728585955207688523390713901214377731548721234087880712988619818586522749246173915178707513037164133508048193527980667504303048001538219694295566914230784648660145625489439799627655113279935546424218319572145840729414621487798422600136599146803930094600677504616320306986168421796402168267151473378993108172113554953957691618882561213980368391583062340638333544215812604446717434491945807644410616017162194924637974366684198721171060958218581613226336332832934095330009025668773896822050235842972335001979205026084062792235579474389516010446694579301018430295533458053698647924191530650429970987878182287923822901489141820145252870224264598602116816648404790789922081475450770740703089320437278996407039567293149216459180076837823977520298082016343502303124329526678738290858817764293740499705565882583299277705893479978634430059230321472396184977958067763354571538858371269629378623257579631431427047227462388321851371682932488380432676666466788308106909897153959370047803979532455049726125669184505331381183608033094043473718430284771051947675163361114487628625329589291558061833634094419094804268091334696324652894155893927410925558209543265070430653496267378249310548901241108934283719868324256661323834851256100604249313742249262335770743244511461874639347342159497782502578954685365686274210963192608396628781624704118911342508600197517540982025973630852658526743808678954999971570808932871186196236294959849129403805814467530964699242125230888700559341820169562577942333065132232210289779553345477435255478112430441998052366116673715402258939871213496941026187996748376414614140278164621493003762316994871345413990237765015778614550230921075162154129314192033059359959691869858014003514860028765433756177133853154229492828022491927320138759644636113706969141481280865632623455674640008532307950350800305090345202175275374715177555325429736597742095725709202582502626308091587831608900006239094268663434041873981024103577603012340585843477260066815667559314393823269905892025157025579142348121010558818296731239791812075939989742950144258509339953998495991565342147493399054953021999874258149167611033529582984429022059524394889201138111020086433794751204110944057355815609602334093795898921476058286425461615493570154507964515994090866803415449177780503953972114743512972877643449595475265434447928809561229980854295091643601069481601141002738765465911362835407310459504126381748023755621422861699085703703948084283927767068363294502638056097969677903459645092405241122066502608387218868633618316123847346048098857663579594902992692503453498508655750880931508044322181244052937957009575931922802030110729114041764631523338016869294883066698372644955395986867462787919230487148768599263615699761192593104627449479629868966155032960312020378674970281379136278452053256501361047650706976922678078555276293039349742475113255297493537981057510598157534748980865068005543454339477333427211204765871403263063988624669295150654138019887011970247514377852591212211621743447753674874037136002224384491110019411338970234486058089298036100694856104641849287359840535163078555795392211242889096364597035252586181341513235636057683775843992468290527934613884189264791837600393092271102858719766463045640525100594557823760723053377207942645646746154390111476708665448477375721996600604212166861279956005977638221469955619103403297713131935026366852011330905953274253384585362997292619650547915773296082455460234781894630951907014643976641850452942450203536720165456198681580089618145223228216908572802558277281964577042520129828695170140434863983955186691566289124327697047624355157446321671343069079448888768596185222129684146572553146012265049938266915337871321130495112795573001309427243246243808487339116638693434763934129626915405016497271227022036411226925034598537124415276400881443310263131931283795547229055836827424839154945847039415527873239944950712621925635183579968545398768963048049631602555350748411719018601622475606541908729791077492298045408470603210695524330711646890316951126212292718472162027641634946628046115424791323499491181973955872290976319280014170798411211185668180606733461922757825750763956721411843613582944595778299900951048843811053996692440959351090504200105374081908956536203696661600820304282552559196179187944612267049851198738144074561310890032968215605322764219711884314905334821134118495012640020857751850085594848661522449880613131908203303568605954934033646283909962470218029783405828640457837707777366264214735982854873668037889123744326567676852481949789226395864864833972852829534247477778962082421637544871804345766002378161116605213199245004221212221039998679712431744173460070128949516250173101844444170042262250854545657042629717164845352844463856938863502398087883228775047813128595976006883506493589022893378511803608997184865622554443226623722971989041724966505322515893075935749252842507296410489340633204575169655836923721383603822005991047801411988292633929864215276997624928656870960672962933183463080180889203648322974034798322871597630557079193994706982498629494472560110164360002270682145027109869652091279171547399816007918780062346692866499418295091461179877164184671939155394721762845413800767341154540769377624506049700644057416732455846377484356857711946050744878774911961852515547544294994829332394997795256827907325970275111142284129276852462169426357331164489053387303748576202388467706416373331006632489871170845586915088559386438395346462862981437975819927694735283391997092887746334964624637104775289447313972272680075603051276543247033709340750876245025601987341392175541904886928874492921140667360847686903793728167764651038768435474066912484180196909267290666564837994871419003269343872751549857761221269648445825686098522158742821733006151522318672581409720045427978396414661576013541039247381056787732208208562647074439084433922575591347959414030183843713923294475424141859335031356829742685331801688318514800085935210116984123327315730464054492797781016885021375127694563293028635603004431069859497233215370016897485668201886632082197088119805545994235277688473121520116031722991210989096332761285501271151208087639901220079776379746031988214846450870815709609578615290208716477178556447924779632264993937385552444856102177644186876997324466609829042391883685557157021293038157574001583103004343028886485543888352369121343779637263016210485234362763580097787417602001535891564299753332805494674260294153569315931906530132870721564974564306078936453305827714658804431327750415478070700337285639256388883712206556640173921583433816414293704144716017156364436683014988724910876549641017996635702748224528115838220579089920954788723234827052766878794183091693029457216748050024612127214066715968693177894574986255311125333286960843096495104200789283732277739464619799717115594146668012261063575348391190563972353353925216241698823280604263294640226858394824152107405225672459937580291919470214449955173736464177965924103365845676150064100113567993885849699354598218238835522667164825892139948283478620288365724766277065609623724548463558922326952753953317191051694090547902665634653415227921649687614460566088180706342233277596545879176813575261422336838515896499318135744363232103210710541799807199801662422928550723076684503017009347526010172438152555495952927304118598247294578362612307529940003021650503981795994852656045528423045037382865504441958633995095233650035518486168105567878803080938201512511903588302642310003233404694605501847458752941601405267248477525952481092618389098784306568336007530084496551869062176991830908938468027036338895627103577285260511400832004410550623877503115822887000545815302810398233713145867597115659969023173845782654077763767661044744091067702543930740525020741703290677066388906543424790587118945026562320131082690598446531491107758265605661278956272085099017144050680206447085932261067792783038343127944900675707985526843834692514261278765085396032996777272219054082664946260754820612060485734099506040310997133617579066303634343297807061837421369862417333806128735550327497101122702840497690990593384810005062342040393395466285524453193705128132314229855912712651409035913789600249314790031401154951306121572705445831298231949817795764641239730385675211854427601192692572306867956205825990049980010653171764448018639783688385496855554047575766686019751557496787288408756397889897591737256598248390560694044561491182408099186832723498930003580387201731052935189957328997832081340195081393363881231156487245968673647932041369862831604815827356161227011037729203617256198712020213875785196162653065134016145035305595513664971502098591456430548872442896827629801486463055258152937547264716615186153596036131577619811654239345646283176342952252828150261602363744282300335793660527173820744135965179828455370014446028297204632737792397105872271624057619583405878823193926270658132082770072473647777289369351751274972944926147409414545168782046145673692660070519300303674891962108605469846477781024076875331838168996750276926163126712640472144677242293958140876615655304668217805889075565750985266459393583234376253981392376018425598095847693921335564158474537332052319986364026396632749303188413261525501746969335255387546162594353499777302964319523308681015324213504653269821614230770523044748656861135996197356453613424431923524438431570202138264092235383149006605439805891403194276701828586285709232435110130611433528922426406196795757456922723779410444864318132663886156624337700860947678096647279748176381113892485257462336833083802355726657672363851757895879160995902897574238499471927435655118406435812861128768699182782720781948733157747847874108502700186707191379466693781297363382517349099012356482672396218302126874284484587626753976964337796110915298093497265163417190469279628380862256013188643790648563157685628367728648858905129240190364236441848872874500709758040097415226498183970700597746211901109134588412916091047131396506288928338883546488371705870074458543226762857097570728247116723153848955216107604631254473589215470763154646286232166969359191006313714863943946195481019050319631593279939293602074266405737857603381717573551569667992522203628048332458827477418959365479225913375985768503404612179009193198571660517914601188213774762516152708557265363168387208639911733349435041808595021021435073029508206299021679024223595053344796930822743652856217864709413242248341119236925009481750949036918002389668483605492916359102734561856576480382316424693475379685753822164310606968094176001362456556871851188542443161636492828315073749784885738756367786595606663742899028284249881543412346364447607345175844278863334054830547297232338242374765904340834393693398126217780740265087487518839931767837222817691505847433672026932295195913567405213526025954497128783348381441588532922493253878726326528206241483555238268216582653330065507528606944668231559521412878652492065962366957704438083508619368317351863997829760436740452685645628591491980387861807609601570005871262070006752768918208075396619610624175126133613267671103082185204270376909063124070620342841858472883178185103994126187311926698689535632988160414251617599736467279071279526381666349744211710935286200513487563394052440861641273577084917557539821135427736248430319833003192404378152968238780488235971266935683973302516038466292287590681867152398463213632662641412202612611098448201861336192896862465188151089136276352344378583476325134683162577614197223939308209357064854446941434552708372894412904378451562611419479125632279503430469085903376990885177124641268910376260212292438488187632390295967999411419739428238685802918317470249836973356269767035507032410505384825619444343974696138484306302548383509937188030761308451536764052542931604050718643110157006773001193019649968569359557252690970974571464115151874988931146458514222677161437388377739446934385399063408015284737344221508516032726020130111744234115632255277201538126863980489439280694177659267827280354183930674626049608532876470137035701351540484796817378599529859181239658567062104060442296554799832448685997340424640526075896307690796148706165520437648433597106575101107638444346736443290673071152075302006331862369097386531420380277403274412559212652942725174193819312683679517412191778921753909454173905535285163823361803226868344962861044485300172053078707039892791700938191144289498462458045308331472821719340257531295157475784155399422015818253665730874132161686663808493878328544499450729620172190840487489064391213282524998797643322720732162772807934657744890470205276104214542827197482940079728508711286645701724781081152904514440492585233705767028999775992582856067930142788990885129714784069467222296259623661908385434499839294662656692248810863202504797142844122996814473107022571995761202139467980384315952881851688498765261044070833125930099763416779864691458924231731708345519665568840498060298553916271737452724934888028374083601464246756156753602842639819435973269234741481237084879840684302693004677745313447167136842347130217451489185189493690246984464051646693713555447884140191658177014247850690841204264785090227181562124914770963275815803144903609648414966904320803825013015178213213868359050649326803590535601178534822053493551580359564409420853197481264092477735999491788143545207353690981548003113254662786911949626996342292823645636855262457921211720866132947508713953610379277178473998749187752644648445701155782911593900212919023880362012929082905903659006697497968064116795848828860815146598140112125641948652010793931916933428281838483594878449929876682718313801696700593492053268573097553347522931376014490412858729491392370478863727902845900782801459273987761325998039933080528048602492472554182897579502430886462700905519857778610627732704826556622754259679389833084427654969900053936102477659421769676958089479068309551772945177109606287895338291779608327164536029941084915206393828477832843278673207586292803228403238243168714920306115811826717720283811281868194478104329360521071278908855695720751314192589409487899104990968685048584136596667821668611195552162419895039365036842299298254825775290397674127350413055348744731352755848258314582769373708164243076200186656441756187859103642700254180127679011895104904401929266847191002827598326156521288835870182111095753987116535307262257327858822034459482246538807794182852542159355750347734023815456875777059245474437620551115710676775392167094751494251316466186170723925193482608263209477129869394314935283331652467033629128704473691941892017211092572812357108568984674797843820320128421852605484629689740788636562627190950335721353446284228184743468501660914343101081768861725342498293948314165026677888061167464868067430804249206689464516030361060014985766526453190467232330713518103167058961605487331356633205782689543962146105417247343828762579300202539566884646425499985968932532812648824213959557495398142935204812166662538068451914252512897123077231599316430209784130590712912832290904311663242939613518357202310999690965293351713178748895957249983905870730769651806917831498497356074304450983255050564575168492939735555980206521512275057041555372595009247867208302477346744106504233778678360601011263495025884358182570771660224689847653611684068232540394002872955674886537401998449087129186668891833525356885767584323359460904098516833024331131767752883383259687601552436428098131745473256942507926197849725339100981059551487372847930630919771002094773388950031704334440550830192271669062519251637149679699457917312951806531546995146612203277777087113261161955416822774961716315942887669727591441204954648270671117572302799336839817954498794483682524352950402349025207660987393106946752005819545129185446154199422981088366646006731220446970975467293086373215149802889650711827312464541726059848561972469671300091438061720055813026323872875227178257856166991794618808667085265371256239011447942093950808898892447759276937800808986010862654705529034955453496321832261268466304857088221047112079469074485258633474797893734382133252386135350911568124655850399919563005293155387296690857109564392491701482547142356092589428092306688487440608813036688652271545917127335547444691652001442490886273442812740684873172275327921673741809193406800164833944351400263970308852722060991356852859473243762599821102850473868882525598136743726026735807236919505320503195097578413141955183989191898807102977847027823840851707936527038469241631660354278952967652802348902833369101289568761481689715820465917111283549981231847521617013650065328505897824870856322014330958966595606305026521237832918734285892961329684119541329055305362344418343154801808428775973111686761220168743301217721867958607800041820228827821726447240814835310537375348981782875863376547541840439678851686852083381372805816751108461425926946531131993823831624391728148492282012593304829138875700887551972437394194497480540195453994205230963714151653906304297546629839595249618845650058725086068599920106360603973473676420261560542102933714016995996480683527155370830748754373121679341018517691385051452081106348208860074031634716152535515427338160654208025293976611904612359739898655861412789171978628860713420377253300592535904055267843079010702831403553029469027473590395206175456032454426492289288298897898593246452321648645037248282626103948290470740423519943852634852101342416894650428946773625264730227889595676288453495464969971353261486747231358586475873653672534532719681232516362236145348384457335501584578195559725244271127833004929733627223237946093659507521205012304007139802244921892579267935993261760705140526063030015519646414941440452891507874350386134114038046558125358509658093245622788444462778344368571086548341696109474605259036581582153763378197946572720552270855294984248655715475450713300062012320562209555066804361314955350887580363624800838594188308017922816837080304638536350753303214696460492559845641200377408872611186862382057372701655514817971062286081520235432040486733761162733711390027403867994467937991523711229958030251866881028223942699603905396319494578062635601514444280129692430788102336007347049108957078516438932831855765958497377795891871707975651098932757081802070302953411322903872869576514088312090589694110505518975076115478343582432452472657830333783910569078939984445126685378990325461531813989535464209292932162714101451139984955081280056852404080260465683569763509946791971727921064656395551590840310989972262717007200623629657793960034217095598808421123587703215795129240515789407119257305510222707539051261552700485002762539198881538634034731752870483936518370154443060229760889725698711683792325235950977096007721224244840392042948838797466665268552969479587912740662321170282596621092700155587732088842737658360659803468266469904122409886464477322715940411147563759323714561080588837288730838888435347394498830891507914972582270415645659711621145259324602690217926510918391216780191794669312632264478653792674295030235436775895366695870238499336365203923002371243360580329591493121344750660500192070130396690930396014764187788147371370674242033066702216151199279119286633917655313662542026643654371465120174176787213960147286007148514621009926063651266785845283438472311198788415891305219504517536590711686871777354638663343009645028252762235677351342844113846854774473137119210351391634233976255069233655604486938460247280236953301418599347714879522831218632039730538592022788075557105370920452841699124061492744060921503104480501567602926794309539819166636026468588298659717116426725787451269966314777379689043340472810403231090938819528116727432801148551775884278564435871517948555330683067788440369916396843957869564096227733913990979314801643263207375428293772421984865213734136508926435851335682493673366122373292014385482679546168725868949648905855321341157483323091051765110527772299027285886257434535310671417488175145271346323989122387743417448957891981568971556704714088238321325648074365300142866588873505514283618057755472337799138629806919416837481294772215302266648392199042373386962296686979332656713531722900771893549567586251148230414656056938074140924487941322995071569529617722982904524066909306478390258276535813717792600744135498370585256586573557598072296301746893932393719485199267717154483356803225051181267510031519251268778675476866816134021527061478756435676943133795099299634768559426680001118721846001113755311444541678206587867930800411118482660512015386553921309136428382426886796312332942737201916906688627684572361750398489310914007910076868290199108372355591210729324489828712518209523042013396814310503492246073020200140816090331452705141416047430151750514128593175582709166557371441624338375002295117709097498461244742438147221888383945447663684600052926256874896644928916096138237980787225599244249025866401371531270508340973369037604222858269096048329812801014823896641999623149862278822469352295902464153436511803118792119239649706405158249510498979636447746238151356902410657784369861971179813215319374424809588188304997223253189777192031113974152907677217934211977933322632735328720606171882277284232094274671623343854920195602402615652507121802019808651867680261988488624101178798637056046379181197797170318222125936745632377499351633055954284241571102620056609190601821264675389716944802253456695712458655616645877817054235743720873106449328409861201056693624404985109183786803586986756039800642831974407501660077896940683950481939689173667234786424967724746019016313652792269131999360387429254234236957875276292932602077212390535736390674838845158040001370251139836317272329019077808892750233161195397890551858692174533613401107208993528929980622769998629019206579172451719928204662648734907320720269841304772324753485571992779479365761558585027692275969857424130130188550722558783227700365980781766649832352796918227549395716354996303293777095144443492081599698719511299492349087337198656818048710049457933425613059789291737466633607197851881262196534008933950374828530147877568746068661008343587472003113206867157064046834880898466452983117772189241225885383042953764681151019996264325583256338648437965999774724986594303787946826367631127369448886777212987874046474235342676882659276247851849312667268062125314965518513632701197225623517900838529683612117397268998550004367379284476375642455976334770845297974545899756591618482148838964435770661145984284568722210432932958861120049736618015301039900314412444252635276690212687289935386940139592196896646509642397593320442896925727795745627740554174626742687792490845867906934256602208946637624086622229642574508645068994415869496296463143258907367798452277470150778445194172658959237652784839060919858131459360817139346209663048629582198124431481400737181132799555380678549847185838095238214895916427357153745768083738054414970598836025030240051341819155100362894608574663078485068816356427111952309038255918385265145985175930695724206135686136978469126334008202437508921231645487592103953830447129391376311636281902462717399033131211900504987479115606256892746030269713243309125607317881988690646126785899629929364305892821776637817804750611770801114753703797794682864919040847134724508375023346641733662935802658564358082906088192392742080758579740957844410720903827641404747865648700551345383864940742467413247793985217102224299051049250052041603258735989146637815904796344254582017994203590361334299773194565650615001975497778164869382263979863569273221264377101315732622099864344392225909165119628210919635023019576530572711291120718019644419836659133090097143000948957520510028405855228307919692465405787843893924969977439000868381979503251181440948522039382297617904780759455722415705804574442457085222309753766359802656209370448075891142342660105068545347536298669352050633231684403134545929693605314530381510374676226015668447194497627360280103916331786951569185148326439353314297592379871225774942421018425657722306237971590202794288116569741233973812127030767749138651824577730559118929541752593908209840691635017544710137492573315424500747183073469892063383675341647712494087045179571994616377513625824594306316903445288542220846572891040026064421026192786191337409159023075133205677661614829062745799610363430364620928533946574635421496012032788595701727337884678361737855419568836552810057161519315395393284159562031878549092906513090593023069130962257771286038527330353681246566676564735708556678190733814106235715850753138238958401589335418912509811109411783886465482593173145345238561992798318324746935527297851856048504888197750189657383592430975106089838283284290795177843387152713789199637868396983866099176865451188715664524949322452590431090496785552733345674113851743524040826548049674128188502499973828716482822955476365959633282160993931125702048605737586451903195262405937019618113340607886077838153713420901323032405557501864007235860887793267814218053477411937028690362577899881131806305054509651782200315889231911543655553684159822996723628263967527194202044080492792126144392147788317918418227714002658751661445442515925201882872819207796283929929020266315452927488677940562185152777324990615279057795603687097077470333042380416569025433513615988779719235454587881476421851299868342170043812509763551133536478284082826687005670930185279216884685972171686952088195053281782932371791994576358096711817517927836601841285156979240130683469488120960889231270810902394463754503926777296301975790102789880840772307268356056156703526315933569480682548462009389582206461336417592691918864355315168331461810208542101364455613605730161952627291867529129739620426126989152206719723643582855540979677237147232164908858511833306645795470745972478112587747310549307979603717853049152551789081832458157440581269377775713833552316111859498094146398062279739110191571451169512769363666939703679030822697516260277381597874556125086338105994370328187552713409689084277555438496842708806442872576919798065008387306708748625581005047416153195286250558333099624175641200179850199798556093546142399893287330342967851816468597733746131879225537820526567135442023898946785630527431100663980574293776682814257526653997739670941356638348380692702334886936522599847357926160848489148480797097219269579361004286908768378076663587180963577457952174248940199992632308216316285091332033625393186378768822235129766318219388469183907964682420017116153461964013281258293876220307039562473658198259093577154552960413319539632263534281769541216731091311496173450973391892157596912203236122862057772771847717694780497048120572441358857706437428765636243200378178857057826866459407135484349157799963774872401221522664487310133798640869191777404481498103344163918806160917454359466416394308767205784474767777571162499122666672069460535152405794939778710780046506542325177989856123766316276917782731532300307929912833860304908147610439413039481859203586254642186978876099568337074351879520467460093744468114270164632979549105263966649171015366891370836583419912839529028024634528322667280814237881780762823954886722555361471288723983493401370898180614952509778465322548929111614686249159871282991808998930380162427314910781207151124610525647792337366495129969084774618540454765884574754982888157542799089794262684380051729721022669822002338900962932530260988830374028411301328742717693657124193550919537276046234194862656257748392983804677255202267207054123752983252429656020918662811980645593758598819624831211632038594150054650383636788231099047401552532420720749604981513231120940043772834805937322176944807107076273578244688559032781787843415051321612071017533801173450625315598844605469003486072006024033001740393170878061830460050933114860473423863717775398274720418361832955124515819793687794758632972980264849471885732018304663479796421897901939358717967088549227662276859101633579869042675049709557435281688714886234548004364866048871253191424561569083071415641720127757769655424759804661750167786780411661380115507996202248283373437403731418777621947626636374007152394668719801640910002226446122008192078890628291177899712209271023088650504034517812456711983267157363491754623539820663224621902588844412011128258905717695120245321820046357008251590218587476830236928072915873633203965831962959410937746050881400319820886962767978205346537539881192764021903542953730404795672931884041046484299008447557988417668227861222178296817188800442381829546998230843270052257481919587068190241606588284455809715324728203090912584294850806164784185792118762221792072768890864253233209346546627382985110175905003733752560662985381198695132410213153944204770602257043951179730288672610001904729363128872547326883393424664339812688802756789619372968933757736715280431774620493256671098436214681627027731026718430222560326163757556433758360638987947290148517420576151425619312501464956736576488145511430175473597976148506361148463809640096404839203030584788634124750284562318603063677716241037117170034113068419351131443008848864987405096166015011387981680720570928151252129854754971580133539242963028760662088120810257181420517788097051197874998695858914841393707104883668210858147608479091863825591075142026336911383958991389808761213824775272332824705490361239794515167257917346538436110400609116919006976763254073425842246873882717515013634207804813301161974847020170556303602624797521185491690297198594896747015995233768138764326954614864271367411094534608671537369736271014850008288301717793041673153704894024343008804994530730936457952519517674756460458973488053705942746634580561354709963196225612562041147287433066620753284798791565387493886175435056889426944652938724761919905834075505691000927012752335313978019776636602950766061875364111406853199105688687259372504344233480725598997927888595814602453868483149570405696597411314463529722816220819154175140094807388199274035146084868651840407097847193582803022221631468223078487280265980029349530892110393734902639239245704649390255294738093673879975542697738974006410753293785399417046446451638906177834210674443606393830171753744444592153828127811795013339456763888319630789442855322104427183849443029933146856366980441639667069053414630686697925035055231293677177689862101371159775064551727887588082202110284047380322857786562904479646091654162096726864725418703280059177715125582945959001337556541995091036578254493704349511075113368823006216721147849884121231486182544709316600411199303816460505012343368792544436537632949036645646278932239200216931206675237815904392860999136502838580180738044519860979483412548128338013005439552396939107177211921521796033585397387919923912067899310974636404103045044064905334690219954973798092069325462456217223200824549373808433192227355159318974524957157367024654779037972235930847220066772767849000319118047572355752635457138843382249783791778353873367526260232135312423233363573508988845215248298957433831149022148948967271135096428171255612920885590735237965018932937604329116899079775334575086036873641957847892797822457604716289672985552597546457572830441019704272928096776309764137551805593966379858645677407877030668169570046376143529824806889048003634953594294597055638312453911153972103634933512557068270790779925616977822351963263336780753683379109701087702066604875813989878679009756757774629631064627250938204667252219024992859163018246948717932428003911900021590301159738586596055827542974809433109982213321205423651129118095664832193955528907972212823724309681274147863232145077019805350630809460821027216801367394342120976127851730724154389500487285538119405870123401341369603351530455298579282837975221932313628266255204153375839624837187798434554970885329811352119621086004179807488944879784371862824762089748542235150158313128690476139001229389581708813490101148914718459034346476660306165164025617188890953746789128268192584880477457325550125893780658280916251684024112030940285963469818796652614616881406425243892319680702554229625210407034436773270837789563432770645162734810902716042090813015103653232620102371986200664150025753477783182728601059901361248101595535835630552565612369798853902285142600089285105267646700221256447026753878912087322017921380008909974090329411369418926012376401333974438069098316098421644900969127581185268372324503446075189438864621694906180761147423512877612674622905411557056890507196071055338255224542451833159556997035244276560991435930233880230903652054682863850221826049341799385490224478176723134172768684488352518335985209853751677100867046533911465246508717694783138556199371272381299551277191033360756238640903729341728318202731471949526483303176973885990388171113704763152214318387255675945753111872177157581594124855202926925890104550205067190275708537646081774505253885877147493353052350584493121583092604864678158110956853133419070642143923700994570143883402046616820443606066565108163282778130491510771000943932158113720706754620819121531864854567474652397968271260270056541456177615499060788450420005400122245561078048465849314533271817433699623427760347000407036818559070742117043315110069625250939018359747164015493371555717700290235773208290610019450591489523701826690225214083784533036282743754884067319648838779750635610339330644820038691310256673127556384813406995827599399609518106441902332582336921696365187231793215002057929228040811561402733127708214279495640009943224731513104562494057837720680780931482700305398103846504715784893411770191575666756953505090565505500196940189048048832053974599181890310602807015381470546189737288643413668171511166307437952058065530277541712355861383031347349122236781148023172496834075882081777711656355774908759771700612781304384044846203363128337272441504726287772859183758259088598329817759942229515688035315626748850231689560684139710726437623588310023361818664008709076338391543157697243476186743731849398129166654250492493948211226582277242691851072335438230706145440165776341783098426377930827062914846053003312857169571151208031908362813915727375407025301287999367661703581453957221785218723123333329659910975879485126743201253562656349990526917556588447761953312000574434628393034045976075833990456664928730688385455898761197100912476382290725756465997403661378439599700868181000220669966857503106121693210805646838434434943387131249007614827440646972618322689128286405483373222126266400142147566799794318649931431991068401792014917808900090313065866871363127936506448884634931924416996242631917426874929883645566372657343141015348398956226944793434890400907845469311698801780139706536665646707639855865041293869518488523087391795212799243147018831150322364094929974460825539135213783498333007869210016100416537874510896913233273358021919458095761013329627150020413234259815936462712663723917836450875990264521676269966851730496291420951808639979176709558534153302475564122095470646710776675794071938010040407806120527130524099987852711183142214223401631571983777030027474267014016843324296367057571636560006544604468366469607632049783711834629571039108076797248114792601672217833278411764762285058107836833524155356573944321570706160264914890591283007488329827686381052233810695329446558228182512065688448544515207740294680851442555977171395601321401746603262781157802742232066474956036427332614666516090250811338516200369652503338134205625185455785089368719401706221208439091788323447534643033029242054675935016451556854967026926834955030416862733773916427116591059205948618390509158433320952982102580632714352728956174675213361419595027017384786785897682881095071175725294197366115804103381683682854201428184700113139391774837473928657265465512689402235672775855927958174196391523641245623334368188667442132365898161331880091447860269873179579987888844439537898860803728933259495235277347100673528469630784142127982902022951581174811709213139769937358047017584889904750227643682498200861680071871254851614697603133898007110153587633564231308521902859615673395422895290814446491864664089106214326216585502646096042259653646218314533673381581353250617256185931817823800788068483564228301446561590241653512417572050164647613330852144912500840497751276118377220344656324802976940140375871589727316984098329764399893574103485400272330523170831302481625938925333798216048455180252541439118905885242322572504203661563164502188809199725185174067660978731635493116917651340081666273400744574857661372321451126395232239025723653521356251984158727250242751727573801171585138660376905380934132261579953443785235569780410126603862112369489515835963545723970344471839127819424662726700264939473205657286481420967886033626670567442684792605037434308883522392672234568802923035140167481579887710623188131877109069667052604318655398791578859075613050441926568229178159596596716389696651623919375739589418795038488135787180714549082473197224094881658439867418848765451055452433412193301316992577218172197379314575267435123664421416553769141512696928426080858142398809976536179496565885209928767096344184072109343416396799168240806407315411342827554856799431930115644308783486236318567794173958103980357258804366877718014229258276315911253182915058477308271637992356658210441556958420890399979857825136650696791587434777448360662227972905887574268504975957382397247785773838671908144263467103213522217711710678141974424055387002448290095966628181981084855370403041339660240342384989053754871386123832004472373606472412072423983052666878764411319109233406302217184161084760424345076957951749005142817571671265067399669283302220154441719006577024605997331236488437489233660002401061919469176194390910087213493611252407740811865592563214403087624816728950279539108828739027484847998510559320527317650153152965999569334810477124401979778052724511312448466761120269341594399573143275505713955639018292871999887255910051379023301815774497443525789392106718508848575679171290503606303268890837903874910752605637060641455067437853571610159622955645500433697909670658255624647175305297629843603936732084112366733345488180659153128119824613575591409120614066990180839266810877913546927973582112907649254158037318469623709517691863197078118966572173677568532754772780723858542747052636509058463101716176446191160859604259178620151661974713460785908407702462763369121537871756540691908983694204046507106068369588465674313574126447624511985256541568873709418534490719991382532779710716456930957016728734997324569536927987027729983749393907287592364827854877711530848465847033396851393090395457314340282193271098122790471646095373101735492964416017834002428887159165290631227508625163675069585531153153886690321182309356325076831517802901010706731914513043256221297083686218173582363106845655155254545025515101858018219928191125534809237195747775287882895603431269107023457107014289131053107273842140469894632697195372987168183046769317906626964333917260972731476930253549881610533917149881005857793493290448221671478058271124543408316207526519509205210796816099686745411622472555891828566714240366527949075170110816449110618814112279902092315064273647807077519780136913216050089106201219486080935700880851098029517903494335227563567218838113278702479546724652147429234729091827889354825670067695969968399185708062768524345953310716785882747768385446949727489780576515980973571981202744589020554304613456316914455854950994683232861526958908067908853322895649360378540782323963257738950068593830629907642234931293979453323281987367955560314369196316662816990599400966683206352765757501326628706841943401318697682127382594495179859423488228519110163946751263366333199253727123597866996750241091200733130403590187388412807246992364267525525114081591689243085843785413523611239284798929139965165921346811993171269974386442697865248375980638755397320125090902263396322601707177926866463328150359200592001515381371914412364481104565943793816763663039066447739171878193121169802053006710528618677318168926757990918503039315448785216714574396086548015176228592611233897540828515967575045718502038185377266046617499494800754419794828698483559287298329079915493006557385872242890723056606144043233818149017052426035619341592871942675955392356659599254330816269588929686496646701917387016554686104207729072682702434320028575562415715069025705693658051956774311742052164188440146967844538836049211385841557266507911632983452992295879062637661059751651372467026684422686856109054537506333684517475940224490664690341855362472232564868207190750108627349326068464780151625910737199785577224938801569099700948098333839435893207939581666944310461800524965417782030824461226604716178392709167043885340699385380219079182333018585846932399528876132199102583806932678985746139237332329117752795156387833960275522324397285431752703409402942826001403136731689909537720966744100944929166858685858910725981051158755861244834778914223135697370331528512902114444495652014013155706957576521690050079891122942758231326961754343392935374373772727512007573555609015896956880939245881697684979879348838855935690118882791606444041867686169528140945871198904049073843155169169816862012658459675546717532272371365298103976416377558347128978867811342621302366896089873242092376954639438582226791854278152359375201523224423174184867765318067504003375438803472420241263579774229116100287528826825005523571837416546104789339278331814941968842632955961442609896717249600357484966692026035413139783020392098509449524464111721298862743773155987682905210082283206547753653985953537978860238452488580480762138996032913087908230007686823842722446674049126261348238594673868868143711793761690189775613435005728666423124540940191884575905894169798987748394220894203152160303818423882167604213424257999701775178172393819962335195393214343271372308618347925190959260320107664207167877171594777469279484607840159788305910847881094889770014853778496374685224691826175591925989064372551096803631604019963390694946909612081019587831579580820596059971196554888086343812483296177644856255241956859048667879593214901473230846399451154203996136128319571435293113525339369561930984573671578900281139085672791043840944811467733211624041276076433802852514509947674604109877686273449765834986378505568934955119608192971119784593931279934493596666180694690620917318218021546868754017492685782471356406095308661615472174748966548910030335741885590683166587932414666146849698122662740277663896209721308787496079276657272656150656416531610801641071012553072810465330390873212306389840775900394966034374615116168091146243837073248352892624102682328495747229266267085751121106995361687217817133602500358083072263009717321441480319386644850317773274218667363717337708029244313935495727402809757715168672449944581400160508619353228016286508470511093076885767762869559658198490246994515555863021893660458300980031416640098568436495867574358307497614563386263378213715427043799226357384351637779246357227900742394497029292121908142599025431821255521134508128187422775390773024310572043403544749201193324778023256067563497835942498597030705006336122826059514656542033008907529463557092760063908614782667922779276438052862180127133632818234055165756025585688113305105377921140955469490736115824883276877624450793393589463302556505327190280096956990051481522170084662933802155502088504192239545332822152205480723284767711446699426926947763052016392919043988522378854619886090090207942116192845568914899667788519502471390544941770606069238832852515897189885009410069712254578804721894363412677314049597487701509611450707573822513067227060958946790649733965807034139371916806291921735613768619530446398833416940187881748598302868671425775848264351131070775151778466033027326592164098424356605269171281969043329862578296623671843265894845211437481502424809183268811614278570097986745563056377046706646001665050152235631991548962953413884111563554535246959003192008057418681035049993149569151356667154086113876589485213418319467854195539378659848969950153195934453511729119298488676386185432107387836879105616455960576099349932847075269481461211385025108627911489862710696464505782140038672059152867549404105858488555294849601531120029891389933497465484536882486584888411706883160497720175293977544182420710634983664409451384422408929913441464086661360536448274940425885813721461672873509405681078623436275940153825481790220205938478874759741912585966644623525291526483983620190926479045523855531991665812997082045229447866758729431743051006596842204578637736731858016464209919281247739057691602731627493514563044554120611683263477848051882776315262313199437881451632945858666337086708384925538247506342615800837767233552294121245401958253930524067196731935900387306075337758945752776389651517937712563738609703008318496060367664158501699800269591355640546807125732306097872079572549419078566700999138977233110749398621214309491060913859308692832843150354124831068200798411303432879899921981254385250924435240443796555512526524141727350971729673803435318403160831618626297949647480663307454397775063989413573013244571797442357031251638365004390499302843993553201353324614776254800739073355621659300695093629254959615480150220166418071672787715193733036588626858230889802660526837362841393400609065531582126303862868146839467877604904024429667648652842958551542905708373010641844442140277001909691922120170833717810618906338304059091664126736491273289021021875543301845668461142723232110925889566944481608218639603014630209671396854240244655031840552931341356609408567969643264900862936768912621394505414100059549712301229736928625291058309182438457790765166285197818586672048940370184644643473306083410477602538622311226217601485489766679757155728958508986460386210704434605392465094011131091449041072120162052994287415815861495483683131454295459047340322624609367155308762633984583867039851104316683489085999406489986664943038016245349625163288848211859534904149198020214160053855266084743527348506829703240768362497061654274899281768213735620731399877307263935456269686107076205512367579515266156481108042973583169845649479677211346175802813828969715265706758383399262870049110329739545813567716882693649538094774340754701178247421212440700402284943316801895677789601508968969439737518643561170185359446659373202149235757939683976064977132943223032436566125543264163042609813302310956981081138806642033581458286167249057061245940533444693979545330186632049531091292199743357043957536854877561605047614072720976652621842285474730518613053522693379753577751856157866947180732232061069235521167951610015397111064573756889731267043942547619710740284957557926763784049270423920532688327657181057218572680240149232078835475955964271552719830450240192833057838465962752540947754388079863923029837708432123675930436599672054812036795410165097489447881647452946593871298282911840879536160485083628763185913699542472368052376668540848964476566453340364850403256432987878803146304289762063037457290668018740653249573944060920485522964019072180878137595944815112998415059476700001567297561995329585783786723786519557663937208199090397122397773008638914370927842305058549341904018780459343900316052584477818030101204675283907439709016770745425696830894102305073981831472305162306254207984685973939084864761554974581266297180240158889453437453231173943348240307612946207327610583342018391786115111879521036514237515382201617975555814418885439656121267902548104277926918691356102429919159611282586757887393716266911319153929989868772234152358358956948692942667250852749630755183795659706192717950286197741936343524198062084379141474936111836419131465246772128739739424238836100486896189869696545095809326627295928073301246925673577212764380008654775151290541415471438910119245298121965236043205366397146620792456188405958501777798219811252017269400864460793959933968005262221008076986944231059971774669282634660165621619976734545397152510405361228428444446304341729442305122674459791156882539374355212190612687654433717342965771094274567476803698749483825510623271265172913271691787359620945936339340967772495133599586596565954621917442303176314099382950891063947582412573505183250977906998548395749123827987155948435970634205182470749359750901926963831531385021914143977830513838420594331179931419694421326187500761397194334117292736826938827160312744842710985242738095339564890070670788979101937164013384927390769771836394176640406750369410193041883637148516323620724942970402481451073976962752056577069633944370566905663937258296604092953303873798804458322577003094516376635899454367271725057966424389669794536497933290885600548228943988681879476880951528432350435985457446254774478483817587669930059962330224567072202344718012070950000193485499128422433513726554063579421043221465751094771570279172602626707547427982804238256600791388327336470807385760002125550200310790992296981040645122362444530340536530046201179830779006633488761347645827117331774335558350684186751290959938057365017240339005415362115326321433265825389861717241744231671618139897822311038127641081896890085427791114819783506441675036711104068389917404209469673655936672046587147845531888469067136971559141761230470948987357604262212649539739506285103844538189273240531022214394055322305468186225227134097971969055526584152451025863396260954158773101824491582993090914840589369347272358180867602023521782492515374488763045471120857986922149247787671876946344956219198589269040308962720859124320112314484649205574524548935357987529086933349188360841302151543773088112249557699126808175507051325521910167825149321731898709785917682998508500660690157253356982602487783797239875261121675236050070345467344917250817849441890933386186296917643555683100444679971518769621470178501411868828663783304369383728918395823929881768856380540070863295318654908998805757918211278699281360683907624845102057866359846763940264094117039589688696201984715537550161743477715463994039372938860745222035439091941115180048993034697521707901142964871428603720227053227882197428534251220716183381485794045905968001240409623283130314033781556169873737995334930281082585743785743093930890571506928235790267129051315483845952904050347998497088779314312208948248614255377291131169737283300652775439841861152046395565136854227255105634930692593448145107385224529514979016733073259407256915335971184832354546089400655664253614916392247070414685811062335913637073667645535136987047519648464611590363494082534047074141525325154566459526742071302315378892751282768231987349369540147040836636229958223745700507108561454344304048312341338070226064434943769117676491971838246113029340540079516694262326491242453821808735729486313328544982472909307928171064295764481292607040044639883118557043884001920681292168002126618056081069318315759664587094237219718509043402111709292793543655694335105706584679654200440963406260714537187097667585071677875110724761148118091518369375470211250384001505780957897237840749384683487005712624470248488555133132633113545266820120849491145009911073761403394521808801229241632929460022998892444739339567532215711654314759486154342950135537568571347275581056029234411967869651877933495205216068327661668990982456420191029357803579477833383915490205240552174905896789400149095332903774731151755566176807712071882077851962150416397216663282510009925480186336248190958615088339270235065598168231291155270649968199344073593947642731146596821462561033112920243593129785068951855919940823655150419455158329768731030134203464857253306233800514347153244433515348533643395448010977167414198821178698825524380430873907055102646184732124385792659794558292383167859746016450250550172674349567667662000221367823119388858330110931565914836519635399827479431366536186959006318991627018524526265472245813666886827802590163427131978587712952400227238605365508264860021188733801493839051125096475460794330141770102466266724666454904261978476213230087119200779651027979268493310791174304190307179021530279539358149374010803980445844470937125167931092200474207735235734239184086726214039987827994309605112101870598601803558520821664165001265001556722693975537625214603455184841026257659456035104195165056746406730249081337726552139045254878835864758713508095904229129514006926477368406336140589675986633543693805291681517615590827670158575797811809406835780744485056703990339877181076665664688101274140069705449696978394504285771680684827208973989254949377556365529681132888090983116876728903607224226666710952373172999944644004120320779805183274379735104762925656753551592766285595197392728957042968734082468313196908222902389478275930269349873282332466752019483024843235846596301376160896199447817830750154692870638867610645417217522925268892524183587597981897355186954441128892935741847477597283373972503959020306887698559900967889116864460527024754662228117818457841490917208734978028399975621311383675762807988034165427445347568146291787068018990786553652956633501402700916687772308825293777298631644285569559131719868303464852188514242121002346042863414799141002184822438117621378390102517664421587686809381670042047241829261300107295574064889636803105306047359803755714799413539274317093487538114226390431966726531422646021133704362302753669458381334391907711315040626363811367142751759644547946545096247005721818644175766366431036976448632052196255393959742041164116731822491445699935410473634296754611086603213850930745083108507015851968999424194620618110672848194320288304078608203498475536285941746860447403970668064064065052659628068828657487552420971882608109711339211864360505475004640588633044864021872112370634011419023834344447178027765366816387299030500491540967028340190178037732455580076513868429527248591096420624582264497464668655150995566658773438980309815871724120899732336540429309664202591130658542629652134564463115291062185932625654853374023326688065946643314113570266882808828321519186411591876246078754541495264224660141918209551704603664573397278501235644801050664708388404491033797812552865069938262124599286311477778293690264006814267940107996757502362852457718200764130142388260054483556549263038300253957148636123592405734050510777968832559359282955484453659017392293318748615812119919544253765423862178587105527151446145722143833151923721485761941934791050956026624854595475487426594284858990750358775858608017565213576774549917377927348198654561987894921968533322212706519199208027519859502436633777913774308715345401354041428561509682252128846757778499992475774226766860670379041946734809569133231019869713248546328063424720398394958078194836615420212645252942258348656081679642945880344447457685802683159378830033942279583768233831592339934782665108328517004305653948254407724461686369064519477191305399207048146840084247403194603950555440831972697280363305142750717275520177632962951692234077574813401528758659158667428344571068495507440006079633708118840156025875183881480722856546654137211894609823155952840210233165541436001350203355103149715849717597447572842975134178119774527918954621609567020544991936880371772897280932341770082906147008844866347151575548529503414853092988121078973293623865082757771217302964618003693156881699328337233970791449350940628286164472926607794206257247485645811502308030360314098942357604011455213407166177157096904120377197321387652525221123874133331282272400420158905104255915422591190071470033251154854117485825791652300723218097847238893096247139098135549745194863714661855280095892276035565290862257816676853673528629132521096544667091455707404006023957580528087768660782489230833564671945669917384518347310969501649238786649564085803203667462739221879980816424532466212894441016764625065855403308082184085395119718562257430935489792136244828643622774228809955442982822266670944985785804047275968330336256436742842734323425000419777152105013947174216128828024030718913336661894180687485318065660774512818534729724799986351927208727284580488466445273159692449977710197385062626596476088935051050148108129454298963749370602798268376791143643026990686447442263056189582508413529827711602621331959070558970856158582230343885246258819186916951401499453311005802074707945329545305391034464195926677870439573980910026652428898493294275753665271666568392038202366056500824543889027221598527290331177184584094056891847163403064093093307765851594158909950066319770695651108439348710767195580204629920342534250300169503257797150359216968863927073588299398407804281197312584170767509194047764824358638274956596962072240445770501118624735796918941026606289851525705864710523860202573118575922714667828892880223153411575985395865773373951716667418313668898085965026863755725370595758679122312735053568470033312473484068254959717025450175596567096138878343628965706582070739432297053091193071228896616160818230152791472468706000287779684127644343259554840923441345100869011911504687241224118667086266545126411092963642227367279173638292368233466403616752070492479637104240206387770583562968162770231150143902983378331619988076267996656232245114981512062209221013863494697588728899484673652342534894297441732479417541235899489570591289292162249557587500967707234163693824416094574826513468454318916951880355340732569425762423566448883301035332513442847280214933612084993751212900530082563954409077782534582281040533063605609942989555027456370360600410716910191800657892073898331744383429722259105480862038716459446003406074096668224521515215006711688439801931587689792536096780946471477238530764595482147128919251899062519780529951139319448564040726929647372110722138226311043033248695354779237497046049030174624560810834774868088121677724404387193777568749213980239234154107816410123926437182914039931659283935430290635289446889996527399497249420550173279242468232145026023356373228376375028010921572182282083671329118926876485225049256633832577249416194960806036312500588231064384866073995565408731190034945226364301114452957817046696021496931608817189068427141653964455361012025324249783433714072282411969827974822371052896263094478494558187472843788333687726839436936883308215308993372948686665452945183103007356423254457501616695434698352070924079374579332037408923969056850665472812578203001507012896142284693804150828504817810825155425997770875214650746989250158872087589576907381481724086857317417281858700846147233204704992824953125567434990969413570442589358982508522958790942380646521140918469809460024444167479110037996810353944242840587254425956565810542368142032607893790447362173344204951390225876022639075397346826370888143678353793290636930091431695858776840793419096377154090247475846435475958781509937440616318244279085796664615269031906857900897664598582243229867344771465003273589215054733355862865783819485136378430817886038220130352307169033809612466820582274743385315106155925388531296463479477446396628265121893722585946639491303256878847700785227024882356231967708598301090754206981631790352233832720022384575453380553649939363989901009045849629974808701578226563525759763695766738442470120277311203445129728414107179414873510226572699643968335837565442762732700768982087479698007920747745098175562432769997826231220413811697707479215397297480329609521125463877171731483715396748292396792719134121137194096633427477819867024607778046356954173869009410290366386911633097726127148136385882822996444741469151373995263897615186791550711914694283629282287127442543665699322017834192098508011390957656514439349959595974802430943711888683275407091637106778034957746521322646087104521124336880899528902206459494611044416624652875529262265853033849859657003752503984852679961794424718183482357809156877846787057748671539597290692543350308707217495504729594159514772481507245529169405720380573192313795885649561622065502284229846058978081805502656104711525548183360640759683967528551015021071190939915498885944822360050157696613898999666074376096138379281345739399620792672227369449468141958082772811064556362830463416928915983801551892092961472095983238273714465807547433717638094662779341427458457406950445657504589723121065073054291917379304249133465063648041177139481633989359913233874872740326795882078227859327111557631385849405170102829049677191276901929264630669904609779238757769313108809982180891749164863492928462870469184612709027647939487278362515018258414768329519691969476840206121393423464807973761187698975140417323960986927316199702423681718534168882699836240369168406221368986399890793360580071433977653183821216419336247173723324905351798466008040839615086381002514423712309173269811533129052454132550537358240409172625237567285840721166666486195940453885980754487986655807046721056215838645642518825874689999414207664035848679767721635430852927828360503328016987009457676432867020671983883304135255641855951890317864589037682917716976534499886541174382332272011875684489139072484130350935532297566331172133913967668982567259577762740470473240541777502015458042736057668853133438924305937996522078987111480597137182258448276886853593277121000327989874666738934733693541088833367911195027806856011483151368439372931737536043169602164333495173116579246063879191611038572335588637936466803235934603605462384678355354123820881311752867650535436977664957269076107168988061815469145088224436346537218839615854088730806812772182790167880481862035031568893453444876477060903842237361632216133778020320719797384200858440395211876018115246632030210358903142649677404706272671681755654150765091773278748522319871007213195554685073825384736662289580524198924800128187031440993459331669680218229410335537290869543650750793887362422548483343459827412792439453120981791216072289139877088926476065441128444282146541876760614854614368340833068269520512348535056997865289330290895464881191792929211361064265457784046768902881941869681758635639709199677424302877086293856985835849373133684882460865305653565502301745497976716988525480821563462120102486978809869717251966197209816717736789920555919703677227745761886830449642380310412300439245011335629312794026995634502932437274702589499081450681716997504894699527894096488885500036305353394613433089588474529389570626309911620224267065079498061254295820187374013045026236646906968709922278901280960029701593245346129392693150864496503117318719129395488930061115056766918373452712275047060412022878059714150976554194417422013856928242332668952432769923787203254010930957336523180998377550003935690661609745216944109459065607464876815373871514912994561620442641026811963982256092121067984867932541287044219485569818421669271530175927150320779714171533218593172296971095643926760163746215884253408333745672439298071185613481007116044082938080342667441916434152847980427256488760813762980023825495835310012373371112519915334519812195114331589554580215154503037509109261293696335125282298716354180032859773731491138445323313300261173144505870012934357952858715818262476369229104740052675870322664194434330981566408794350747965508990143989320551492000874232766065193666039815739240914012472795711199400313963267960708469807814951460664161656438012224531831413181032721240710183910139176956322845319595492213993337748697009162891105333805296704297992495332192879352101411090578723168398155256643587457507237802747520007874016583186993716252185208674759059819976194742835088304343996563502064152675020032640042762969229876430987282714618948299096374417548394298338891262334805976984874508611848358802102116148252672490800476701179568619270922991352866541370782971842208207855987398140264572974185141001738411857891905055127294450028490766135201258105991764255829940664463217715032383276186059917403026779501121842373497583559218420428938551836805288325396692084072597175885583805600479300911365175676431095548288429207173573021475028793207957897671364867731793308077666420368993923563084016742144987779501580857772000400044176233255884618622090594988765218481510087007413728667617736437865701687459250600429313293965351830707150841535351931519492248853091157015755121300503235480092136979654839518269315634443077684281560473254028487869156650146280766657103752952440521995310539303759295641374741969049178297957304431480271371276913783146069483677862989691699150927924664480292522455783016259425482512318218626981118920564425423681424799493730519088192689685297400055903054336961019697016445632507957125310726510372061020442766220658557395039932337787601138844612950232368256169036685252872335620563471897695731062319609242318096525263573078009052829056077345004245216134049855924908622482892419847499342800360957070972030773817234294030183073570394473015186954334083324000480681948215445157572407892925731381726353541469683148224756699761929981835927035466966195852826642133533416399148450269675337612004246698012335739073122248269825745219734345762081334552605838700341352935845429943490705412019881111861206083628285910326826976075518330567753415965005187561312596733849653900215560040437806439108346608158035604195281400085463438632518594741510931839460730475420199861312958414716745317150442244183917776742288553349348843747885689593134073420554905867512318344491531649091962702196169415214960013693486648512467547059565797253367704913911677499949206144084726481991530865313527548093130544228923521975691728394149554163962566043059320242760625345963139263633542773331699174390413655399868085962944054037971935105222489133027204911465384761527265127923471380325516847598303336427995317183249872764082012623387979555711247496589655192954558920030444449145910905411916617558017579005423384041678007952036216567652443427210235400201273250378248484302615665230362463949649612240090651111288779418286548439529996504362242479999528243064289383621006265149095003119991652945428538181957781929405029122241545076346021545473960010518608524748393489312909010963859297016204883582978553694456936029446877575570851467444131006302189324741539683283548188983151584803199946813743539084247741430227626322088950527303548881654305784767763311063849086571398296536849487818660315393410412235684719864647293923829315346712664146435737166668604631195313424625028542943171850659257882058690042945244942065190906594912305642985773920122857834135857124047964630633850856943463204601256474575489667003275449880181927212886242057359489132410318420287174335633398448436790662668741815337995427512020861442838874716416430355602907166883998028170121678631922149545640351890796543972647697494225120422238445418233467575806123162923189797655909537049266305448622804039532350146258412404714900369531417222642654932205696928649450518321595438986655543742975058721697696751056532108267316304005488856078688271103117998717488437095258083765356642759856273923392427501941833252294088411313090684277024486180556086281314908577889274419373993020837303874262011629793140471395556718919955499092743815520206880269129741169110167446215862191212778493231839341210780777259971605625862099581673582206014962606113274429727206931957156371587084549321197808114646529251524878463305986569872718265986211467426854476204814482722231472335219546217482871606194206599845087803965979375154820337323346299891383050535426004912885916390993558287734888591674993792833303633657194850077101294999860717291066482026267092744337665445568770297976320810841961808132006944642164880990596461779765277507798841837123980403688540845359394581670712481101032418255351727991023935072283191276115170141293035340543363917908324872618082591116937177600510010561152626151684046309508546481349278518527435886836589560226497301444221348290783222379836658468717889969206835825200661759368279858024112144235401317828731137796191840996948379513913332132774408481003014240524171285253036277698491786326059293373120605106615923907051467477631727236495933042852199530221494356196501370168054927237249893563106075337689432513689720517435174990083709884531813271599506206660559553058436918809095044064742118600998045172538438561368067930121489330990235263730819744844885242514519843585691385990906590463968708644931678729282277497544540013503661704316082851788867878850078152416070477795462102454954038873796798422814770539655204406067402146311243513142859000762568018803111956655749203044097500713301160905835873825570947206464066576088236247330548310248629214100205904007561049034871656496522418168262451713993951313466663989809511560876713422113582996411838403109016214652528880627303366588439968343967231349494369596772324456786670444766771421625276312044590690927488968913469397517291819942636096561188599182207918637991398408785801766851816483751610382041680642586920907873445794273507188140963649002776596329257084525687156769546330917388350410935575839446899297013270255499644151281407384711958498092599447765309642144953524220046571664757178613937178334729691608335710305172616622142873615246177021003579823248999861374129326126893289473320396045141922595314409603757975058317834803479172560848756951915839036355096588441003137981737251811891599619410268637833558659807262062299578120173168555483714988867048507993647588195183881858453318443912348360240480816812559617393346539390231194505932548087982278361434581739452362664879724182120371291435498295166000813923047632180727036116714175450418794344067745815081594595789778709471491970878258620780275809913405765603200849670086058843152177424489096227932581922463987445974007086346729728258201275237599165901392518790986495894955946181550888886714502387913161694008249309234431234569904828664008378097715788105273743631294295596698131958305277449796741640492006021640820764803053180019018341889975878207219818336201274743281599132389434224709792020395031007734818632093160695709123998106075407084983512236808311441059740374777137338394863533135911835696956484223853856701529575043739949298860688069382403238846256292006503562807787543362729938635706534771098637874031755350399397283059164945553604537106377966523873685907238714937095802061187781900095276005537465602233406619101714829286529930873095376712355857901408891775953871498852291122330625612787634570167550173439760284469112986433496140179023392927980449900015379331017240906850157282299916951779499881085029721135441066511501005164031085975814009264435734147632763690207633108273727923182872060291121689228625723005184989523584746421146131198202356481020742420912618421358907994167380122568775687797731793773712870712053448974457360031207883402353195935640388548905576120099412109645560300490321546663162332664393464153559925327919601312202068020780247933789882143784806189472912204071965726499327069310012219400208593859563679230912188592687347416433107078520268962046968446108565206329046342192537953278770979151804638093368381150024952666471467486184344118894712010500551179488686609186431979780025833394777629766063076945525861066372450158984915229304977769450870063551612847089311602586743735132967992251749429742308384092269508350975395443010823046350015241541601674367741779532953445758238997466667236360609703701303057926901860421579264788198575118530353648519747951647972739048688719486066174250674023578079165449029774710602719233093712652776920645410925045967667533025386329935980391994568172370177803087877523247181786703419092496047128029643311034327658736826888861769771945525787253718863109909824572681189811516866404531949452359118858957382783976621436364652580335984469510785264223996502879346345662449156493319413667830322913712912338922314419270044335070187913614161576275235292494392792110267105337769362966518917467471271884065955240675228883712210316281278964787510596381882439826821282299086339073654377354448578615504333368532833296316132216552246307882437570148868926453195962961728693773373785223578488347978345702306352960893046754220493457080140080970158130324988195265122312595496118843766159590019040040142992591251235088778665950072905297422277534852774104506536081900104522237945526037314514447443910145407584558268657321030980068410664217407472155984258499882966451414880695194470317133454996730983474196505940667097341568472431838879605841121496759619715461531545670501150041655901229018968809553325552006998146252331185307582734655651185153325240237803575926457618138832546003451728816775559459256310826438759231310609603965805829801755431367539152794977800997480716845028405477835201169326286671528989800037155572218177925995457720865043232329643242265854103101038154069520275144293608849189179907931426062727435834382055947047424882673928405472534976516704910350422380492325884128972740717054279674331265478492596164885269835529895604707207578010259853111312256524683985273626814469892402269453344742423595186624159474078629095201878111765289048166482407368704133375571836464926873302992527893710928365152245140511047462913567891175362188365268876456511363736303796228621276121883118165747729897446407011912273808024833366089806259527052533041402039114342118319060165328502833115601354124824773983944971387461964292626538553899914193830842055876665284952952365822775766900990541140938776586069948495764422249065142244668594915759758464359605994545967154268381848955364072064422243019575153217929650485276281404047858024244663063334026004221764962231456881017153931053593138322292233581105420772227935993516417709079782179848499134457401407456411786849434203588358066347555810062900485724811433138020433392484385671505912822353446162053296639750702441253520971808489603717871973901795832573484981690675542028688004394201064398689492376738754064800620244976872965980373851346088876417815877370257478693742479622972031465590156154953277512784142610364662484323633150183440849818960601608487680847332400639377474058753029408424041182266062108493038518846186007630820411084442384527920200815638055804291406653020192512063344836037075586549523069801950719859128505695284471549790656342410376119698129657445676238963217758235368807215039330303848130900688480680575774485035724616538972264713742666663226775921406572623607061699672637697115062701083977691215379663073449147869416258622549005334169623604618978926561653046713724413870012521589862729090252754261842092712174216243738313955338090306615102549002868248250482314269244886374736783381061522727652965380269846655253189897364355191490946920193833882950786657947797686466980005493496118938088392605272208843274406577903899702037523526996656953634190364746719129636231540252318018033900179348702623912668227216445126014222644491966325596075518614258269468779717554888321119421299668671123961666973487215304669781607088386027909851734575775933305096713850323506908359080222294992561712323954992461906072546167389603867511370931676689539493122688245915981038795482703706536861818326440519599241581423182692689431559093373184180469744766231400729238550732407760486488873539702571856134856966772510628071792764752939154076299127515750944967566274100089498303907668258573578746799486185104281759424163955993177766910713672833306140884587537574052800287270619408811074967112505699499711410453273812831704269271449630544885219488361743384312367283563739102754632973612451912834512843552640232430286659482114890438495800782297192770737565660510011112034964112391067345958220045389636359346968034066646355978682335955285894744031006250898644310379341039621308525871972706495581923523423840375861258005574707216730315358505157484384337376765500941628264262072062559036460582144047351555358871643900625935030870434429360517625495152209366020906574927739273185103784518956016308245467585476349882970748629357685003253457006657391270294233134059954879503622966008804195113709108356716480487890830968099075580758268140516719783299951792697823178683428950298088449639507549034555048716501960181723467411068687561389168668557924948552668256462237988541072441114793770295704903703547717737337912929599066758889620252503190117921139245702660110183984199148507826391704983138258806663071480632043515768559796363779156792248935733993645998854023293167075676847953480025842713771945720447786069029136354967319601347242216478129288704571113164318290829714069166530632046217586942078003424014968048565111050067423704029460029090271495738456891405080150430517893484125148561490629246181709856445405281965716614764848934812350681095175516712551658043955998855687485720274795107986262547796097866550673599463394715924260602327602451153796949058440526681534211698957460396011621935168977007098828172822135073677757980366930509511282875293350664941688723413271381157439595026015321936148335483559850786122016395634050833004296618571615607299263617628001887153657671481225988426239717994460493959969454032139061938042300555077383168130834094535438072414785798187537980672165206461655622790243351333594791438040444541466650772085358993857574310803443629033224395796941388134089904939132540022307505346719241175153474702669261475987928153682732312496536222217030841158445964698128444837396445247009810026123419676648026979643389641359951048543842668872712244922769575296002205694835108317163257050885747151930687674158135773098253948961045035938495185684639376616473990748508429946143317802039647518567287931900034160956361674713884990528976752238608781306698896928353854191594624709796888665614910973916224995787649690817587360502930838188046811724010425580382223370433232497091777688765547295462240514701529039115716539404550768240083621975460121769697544713078831004041018543029421353572927675175463536101873011751878789323501857555386518311946524238409872472444107365905025080334055123772195218703431091689590837104135775563515547692842632443445541356818354467338898433662335248797644498824274832186830356188368502508233891487364843736894920037326625135430045598438107064515021910860888630531168075678755780491233126284294210941230999101490356200910573903965549376101581833688410527679455279719912222930836197458124208106628231061975154020521457618354602868796462472870674531676401870076547517540254220485869241068205937070019184670426827042848769093516342045790197043965751627099693668330008211243171324063927668039058851484474456976633582693364419771522487027951515553865148691906969504333055472748754771416722066367111793840358780744595540428629477428067300757530326254805990261693725362040526101251344160645891749024631872550680701728491219618762688609652686668024305139049373067198546547092408793267925407486171798458557171305039196882377431930949249810010947151411468041087950173290459301600272760215546628664637549479813621138286772562440455448458856688292724644713257991568449081770312254574863461583152719854480329587721175409023760613048533010028642986605728689077397245650364171708204351344898139164965727619113987177149491404289009437906412065146303392570724090773030073155005378568160425434303721227842070753172095947015736173851059910910898558320600426503013607499519149679333542873982117440834170705915214319998551703628734099182378179413622183084653331891880064099499521115440107513416338271895107938895319709148352136597207907165633239392365003428114382851975159508116486127209164900323626718532456748983074433239720289842190556672302277597122642817677786179272459376926153615606060382682368838552981772871817593993290393313809587366274638367933318742754740034682879907496642925626525195103971730330384625713450410907993814468663732547570425647629241015934377510838174613251596425977940249325297103072243513722902435993534009324550007505911324980887431895803073176860537604082653627464498745204471344305493718855718910565310379094945928961910271835727657348549354803918245733934655338772049666442873501693856196169957730453932091683443738217477196416570276932382381646176796649436427901860541816953555810579034406882940829113662125850072453800484287816737355618196422882383264784185159134916543611582395828613615876724510115916757796504524914960937997424551404850132247722170163038434545107009883825335784966328417264078641271049154511750677097488755543508951081263326152746874882317270980226643002418225249349050274207924068501129677278011788908045096647029797272501780176729495830785880584784783515292846897291633641189313929451453034221742582023993411695623800910061473728807148714118975808487677670093018709098371092578411249739575461776854894941003238812516156521480887773030233871042184602807073264457008726095687230578316476791670516033523810595275244215692431296725326748228267388869206710933203382728809667498869574455595010047049371476242813566015429230918970362467543509961986946209243381211305634867769613471516265915280004500626429556605410151018623239652469334579553036064755649813987340271388694054865915058055130167273918049085708395052597936171135139022790749955613258322395855440448111813589848653458782689484808783422020048014431898986270078243960086334422490085018299250609446338782518320427307503565115843650553458698947158121402812394302827492778615383986055027142123470745492549046129462752368345831314926607854658495364062523229305334656512520777287978152759718398766365960242743865508876861957933717842151050793676157693920662879015979442729502851239590178773168820322372844232362686047394142985706980651143597046418630994729984750075362637142747460484645433548701824352190969469751194126307154592979723995777941592884542602058543899760612259433929829192000120519471517198850361388294402995297938543666768775999582416579234391390984618061036256821619077789002114552328467124120697574137535300712624958727593607269882208036747400884545956379921898773756321171585896724928821747092537327022184009960961169984346131745646625261184328658224838536924096315144556570028599127827535261477262429837810462484855580691565057186080932197744646162135640238838947508384942747055479553458628437056132908036587981100803263173286471076696616009947750080106817559399718975105648544226261258928306783765658257080726250148298517188416620200491126759915378784096937180437720215825221309673013941027584972636115399307097249894652160725410977857212493033707377216017515473360117165675576815769202430011439915259158866251562996199643997735047712467376680474737652343447765547109295949175536087476884778961294816850405965537732779651111545713543221623083846119974219099216975318132137008544722539232047485278438080649808886368033735804242679664164376425193613425912931814551236244335007181820020456240462675512370965616156828912678462541443953787682044220028765914910683822635890096499354517929556397455907278016751833554835019720756491184068776792466732529351371837622528996729461472140519822084991527215248329876273537739675198579959646001238818733350576477093788031986510045266858423416591601040117939002780727846068300909969212511041656071383523706468371939035776568322988679931268222218123951136601612748897227269343511277059692589881801379090531494881405581884849901691500189388472358544220645364570065290564842270512778926199068463857627582124131643618175789344193217245023350969138872371345854973155378367801618271516059276243708976960005364205784087141274836719504314280111151400680015126725521691146375215914273928314865575663792812656265340065729446013844114949646207046190597346521236205352505236150095433555507918917012593125911153650236321466477877588102928401057509839853563165194819214793324937668051354716617367571648700953877726570822975238512036218296176820258896758510950834890466401848587373313450363309740777879913583082906850605673182556115227114701566025126698840200409738445604305918002930197004977816382175307752341713819491347213758902134064733876298873606469831360966627663912493341941566162931416332014314346819962863949228273539244855095503756791547205432210083030093936379027998965902011032650861166839223907979173629509939952046862581292602667041617915717262442207303580163820611915669694793601982435763033637745614058009876868608198821092137794344484713251318241434431250608103447225734811554174905168334451129641781758013638978982044495473537468228005169018428780408161146942173139975373493634222305531844221748395698398582035941122820657807342704844860751190506732654942108614583588430117944952890151679273420136443389995715917669235121825530788491689914399903583921727509450244824378196254012881354072029781288580516232490131552743881384756177917977743764311568137016314135587303672726886102752116768356216544242919584007681602970110850660445023418382470871327203626144175668522368040488399855801550395594848409700646077085738732134246902199727250707182682351752437361571703471619392087510373473957268895427543080211637490790439939819125868065884578263368062763301670375394032879786131341593876261400384458248132653857295163696419950460377502524631131114852562237863237893043537517019220257218755827260842111681001305542457242169554750782632466977386951544456938734846357729472791373696209175516852653298791934914452743733281625724637151721159736678443460250074060293923746031325998892787319030344666362623691185361559829297388224390202229008111081334556235372140003875816959320701011473337139854781863269776694269355103132156780713453835627515541855029713080236540854345448215405600489829353380578706839360698551231560491394762067091566362179780839147651411759542913596176032769870788552806675492381034625307757735211406782380065827108477790974735040241720634968023767360855773434531969274188986897825594434899144787991196991707342103175899944055471783230365995214939593531819929890935525083482443434377278407456925861642176252576883039649367442520531631170180638319441660308516571970838398351857889211214410604917420353125528874442588080059151908222257354964799015360728865099666426587690466288926009013028283368507569363428711505930463830544267833743408745315842438295956954658280688147612748248981203139910158233674648365126611453814847667122886207670340441805471935422836608928265769556751375412898049555309055590809389199329545581158705387046100585438223333523444182964731536009687570365832044853992374385987088575194299889382466523308977328363579015796391506880915718482669204501970476448506585561410645519236782976723633668430411770887292880751821549727406759430887611234071207605284271261304251133725059996192577886962847838238209261517023103787122904746468512218713135333821196670151622287935154484761627144036966906634589770556201237504165729829802627594469200169919680297835497748902986298583477994608593981482136735725745427420469058197595464731565948991210443889115960904498705096069083367340349484614841208062873339333129616235940689387894756606288714449683670776569362201327505209520984069809017756379593305992823109466100204820324793336788973451479710563897914796569367581386578140066639729205569978603367841555953992697787402934869874690551068577427692377581244447400687754279540354017535224740800471372359135346747957402028318302166319015709949618796072679049756587175858813977446944774064764081548781729845621012338520126333364139208997161408267468163735544599597516535697189597318170646817249210889825087131174153925563344049705728330132667030696395587620577525934488058723272506533834914377648209956301044876727334438847106391002071214890104662527165809261784263858886346057722538621911664238474245096970201772279936983158020142407862962753506029608357678153059123050384197839211586675963654141872121483197428380368402606172498649800880682278163631437728110186674995877287350448289678534688122171211136297406775716080452477627322252622918923891566882951710796872815635966010277556791991928789372373700729398826966093537507586598319633576366129076119927083735995366303450227057246908014666812744743220880689429287877915884134487201117088793548817987096764345136534437148914007824593883349793536772724882050513207958367553380780122771056490119055135973476809690320887356966610973283899637616279083164377258024392542229179722107102307068140261170161547637779982601945300797923322371553604037797089798659873814041744685713708767209313718131237715879695500108692963811518679014858146254016932217067056624153201028671605378159244141145063697594734485896095323786145133205251670395049709557912278496935917300243460340388173944531754154525786707693372060704283827316119090031270875780457922174876688733866695668838773470291545572041442885415805747719591551217145425644854900408438101910638650873791473111854795699562979459593980915368032583775173306318531291771383000620698584330956774027132425525974571331095613733500992262606297103507175795487748627030612843922893426358953123991672231032049554478297036824796997482311160957750384052492167252162580585916176542134215937731012889181994768620236568706596817645859707171974439291210239417241649383497433027443817833364078039459758417759080630514427086535216599751298534401694021313314183685918646220344270402894177090417004219614544771141018283532051408088131521212324504221937436809467660016331001141682100045797256697795310937497504353262014249531578902514620938890416361489634975918991293044083201045526120201825989469929056041991409229149299989781240946303059032883448386822678790677708308920310854812065750915088677655855505920640734671782172903794790727501575334942452810662709335485679078022077080581233346940304089085648961679563354897305891601550923027029851200957618638289229260535190873313186684206373717367007639191242105142476283986699089049739640196349802014735718217183307579950487093176242887638910067143178680534862065875071992707257133259141186147278184396128348639801714524465997946210829450417891257507690313748768583013687766801827172823270751390162852952630077148985251245490392475590317525952927086922754211748576724902314221061128009593985966744963210546730163227633544883150616925613561338407915351754660752820021760246135785684911275646549425424170193225245167519013482971802267170979008827787432813133134233260231572889256331201427720856745948549720220858236205596747857547342765430800339748060818315043944283893116756396709057039778822152489669395008590334962858408053558850946690348088756341847264849917798319985340681693284107876705489861086893919949234358786196143855872101811704461254882464286335173546145235582723193082248809233638611374103048846595162151081761569918339220221428499659822682054804687073547841159166611348394310534792841110952736319723917329025322786574337089562388882242327030085464240490675379510399335456349768068088906777799706768099588462185609354969555478013635495028100841906194849130474535025363052065540253962282804539921063116506290439896153902426749339422310380442894240131340834288885091630791795786226787171003017274339121944910321111203292165277004613005226650794669809112521657938732769080295453393101777834037936695722637656865525272970045830331359679126023550665622668149110297135506991462877173835129649164999133197494955416005730527074700102363208893192155451994077289200254374651221956442963189076632182929279790188250779296273084960397008856131313027244893065816418425261090640476184122447735718821380296433937928296045833595798149749542610531153821519306742706818943860966968141351668436602080288970236296486135269310872117615346521876137247180811633996019713418548993924472909288029277522774904506075123518475249929602586800743436884474598222550213952217180336707627588982467593568503452136478004592214939935552568176411983967920652118208521929880387291299491596035603355069660791578726434550853435449903303236930237842778584259155194524363573003739928564634027037731285158342664639013483775991973292903094650320312005156676024430330360909012841001133538438228769341505972115873947625952329924588101430381931457209379397066525988699564749514319290043714388303752426345436593419781979122781454093265172438372112201829675938021386487185918510497427422969686878811646283718846200298972041629793898560580550857825212102279863361400903070364122298195885784243599178125620940599441544795535143369862099317886438265471571034323338631925509341056819620845821446044333619596135244574956808153704680835704530314079450396548947095390445334857101175907216217123625689338339991719704126492326056367906095684753932976623472403158132721517571964963884090382993942444583441770802015668089306689971132228412942402968570079190387778566773588696159571552061962915477550562848810865112440561350764184884732441910422033449486008842777851507488045883097144318700616597182541613384629536463978471857860931745323096271172528270997128955835062505137333858604382273105047127701547675660705283858243358465176538576898782797270642436173859275712691186758777858145684095947000934200051855977602060342767725095585255340438626284179294112413180104266925387801381631208259932216830309204651096093651047426614088354426551800853393926248819748884352033023224591494084719077800952403455785291439459668749281632830819797367116535014322020942295640737657116727935020263462776179470479867722044424046154441001884305052971636464752763080102209054233834825162343151787488186217241586583241070356536482825531959256675986290623899093685561161289799637337001510058738717709524201668353023559857310240363133451106786670006983496682498686095672000622830904263322906487441548776563692814593747491262753428039106131819501575411532494624492663323467481988393566957671065879624704165119198842218813387192593750337888702368542023384638225775722159846149957136559252703107291481810747510839973340823869119218724867645376134144220450812560540903920504756298402299160200734721341137977987555789548990039037981158156786168089987684843454739580226800893470842995472648735976593211682012315732792805501400562289651142861883938814525521591283474112990060998031845843671643394917841922752765523906251737302920452390289971310894207022573896721944288705047572872473896775879813816362403293699320866158983176575899607495658951631165678001622854366793067073559668207197132173879253540182971179805849742030799107404468221013014240320880458134289140134715961294296455020645693761666071568239441169012741857221763790672659867126597589569160401728885515174124530639113220397487924138604164885246259642610653468793806661445526478268520798158530169547691183103307517036181605057087265909951075330110590669438322013593014201365019024292066870382883945129405111813691173431399297109164582709764961238339349346525461204413288515952950648977771099305744110902108315952343668033643135645462957154340857421617865950202473368063315233289672901842260140894441882998966835437567397387602717103022975355081195062934854902794864337734843351513268159660624844756680339872317421730791159998310706698997995349617277419758045203016256283767939910348472273409826293627946665229869212934592187573525920704512915110635608795582027536607544167980493188985345627495445427278232893048054821220320467494400157525048053208523266717656396232742491860076386584309019024285489446190778280268060709423307490699705350205574925325745866575070378601185757720422185634757359512334727957125792471730587109460457740251320449597056129495242832630847186917377920502521381847229061300468964479630594734617246145749541026300440708420278013044948485174012755386277866574605503478569090694319725435834379042052818741315610998559971756353105355669786900677233929168897773337325335755928316558738198258764209064744456568893174263141227709210217424747312011319289372181387339168977141733734282957660328310193918244805089254682110348323717647746777819572398173886335919090812981797101262378465805012779933543257241703347730780991165492404729642871410094056343232266990103125679008941882643526564009777957720731197057382573971427425883634591123212168917259313915752915096560071439589442013254187518876523927787054636851533532131795959445365544875915090971001177584642360447197029869303644595135157016283480060395512274526954290988437711861614279561391180028848720672513098002503946600164401318910836424559865083555047799147882379164349312406587239835031256084018858317100911306983048944577147219844563127834805636631394734046874990628597980537678809051105942372899144866003144600511867465217147758830514022810796953259722917013350121609169526400312393901652724455153503512215109503342357121006926680159475941464070185496992815778196237938191130296898288335468387434000127200579397821752034088722034019378332979950111934072971555426743776195287996078126547333304188068665043907394735409587624508343002442763795028616763933580138577924622699795345079569516779386185678012243561174483706447362126854893768355547462956569931430180986348532710856883063585289183223550379226367950782980465094446770561548705754283272737982255517595291361999092280230475806092952912248621512175057492988109947668972099494158949407225074920978586495412165428973657363068961053455373121703588976456928260734303024097482726392672809902368155303861609364947643670398763645117906851266193023795758961835343023301711149258604025849012263067196015110063131126231241614251015783576296740210436597769374167449349924853536943508733171248152369385493237109577719232750917131560904502095815896816447328555419691745140740229200494219475723308981625922745098539512417841853923261924402217942135451668933659557598655523215512347091477060253321187970529545428267625644251007888361234423114839918882560780165927166512998301128226680149020010574289846603617420457732536035420531474067335979165261498929251017624383673872682084957428135103365017534198198902260077946942844500873062749205601719617769660356709185891313225633052522063275835816340265323039896592438912219222015237544466943643741017305759718076979200189535087929307163526709340661464951340870443253859441342924055805325428369084995269975134461502941334970016558077071804494354001859112785927805898407608422731709390044800484908154184490518614645864358392484412117766417323414559841274823463339605328762720352139333720951615942101528882638566782727611626789934693825476407467610184513507169724409428030332040622833089981667320435054803984568634212396878385820265254098182181054394425410684866826128960058347974768754382796338427627970375915011829728565110461085553263485060996947494673898720821315247573425418437395228218334009322339989754893039994421617053127265351334791239832582261802547067856825347136261139853012604058341178900960017699727967799165337251525887021737826657356763064829369636737181109471223829286164576733330822930651759248656480120681252788037316448125426037603024945747217621029060305345962282105798236215970617613159208588575180070750379384611853630184208827493306061695701263566034400159495786381748493958139005713916319112341483138754498504336756695563655303382281843306696607952004210118516669377649824444095129647492026809315174593640019091440460104650821705778655495211250921098135951929815572443805704363682123595738404643602734106126008684732466368573215790094283878283770247007924463964182413025906825113093482076852192002507398299132867520411197613517447678837323460782717116274159212082257645170934971825005112980874846029391697938059812786536763548864493643068494630048262077415246536681338226131231560893152940791303736818794593305845524883700745791457615533444297857636299511208181901072514787513951157282592563882748336179621646189986928895071522082942966008222758022378841064600174542481417489480906102428568668052673788104466147662472279445822662407624822771004870726965284854597746034822739188978244017002457675182478437786829208071902329005273266487947097395567688243751624171349154771199770538972588564077006630993206178179164312617618911373145543300929629327580436116753975746576723883757484868048844071443712240476981211759977841465005938936973272473214189120374227931556805829555972946874544104611185149796438556669835184774050962011379177191041103228523957791409587429342808745748656787665795762175806747835603270646355759233536618870232918737042927387364970810481212108966159738016852881729418045817595058643950515658489025304136049471645386299492908659483573178895986517326561719997278108566570945675837422375225009858511993875682811895153094602987835037656869134274415141039935794976124778821788210115575907434856736075105921920437574299026513047917110830880467958179314833039388346079057952044477257377112784904063011654087971899846227529346158763717753977941210022229719966077174203742561003754173830008292017006393996668082613418872683553676166831915723942150000787782494702192562166378707944392705714294811457353314724891739266282598801793545073868190314686943434846329589346813149948365887037402540943740802351923552084205055554298659533314415631766298360004228739750497848967498917515763347872290728265080659970313964168904689031120938164416121000956623745932722560923791878916165818910894486895347650375502358785062012897942259679784450273981061312088340219454360022740221657155393543045630382438975092566085111548545050565799165969121479414183768773200410598046861665327419451251829774794294107614684144748648622020741694267078330967559611081579861909773848313011236492409648251197644185974636577999744001651239189873707153770512559686221056877596132247980701705865491042071973931069785939952530155334930973107632924238589307852310961681319673430999372861856767667426920973725657202401831368431613060572643726066315780344078356151945420330502826471450119342061813018802570693099456870858574569253890328139299132828394591924716324554616388357893987509875304070123520458608431065501278009495732461424559269060523180479116512289824520288110566940723564012963265006335712983944127187252701899473503292684497483592569270723594877613133362576489941084603272599076469505621218033158865698982893160788969428329316825947398764295070092611930841174520744086355584972668744214148965024422770953941237996109020929223534248592987547994911444979899605977353822564191704140383738239974538045617126469418019424273006284141550748432201661103258554835056089507887377625046722053274303469291495830191519937591473321425206192608206559267520359597187926067754793747519164219914088651173559119351203971892071725419610495146578093062484592592627364674308398482409713601537642942182226414547051700807582624683432585934921470103858321964107904965748012601930165169740286530962171901160889400860179124015035579273166602281850024833533949776792449273649021403792437997008369046599962943739392936586356847435528225230016832083955481925917365901478622761298841419746485863640400523833127216094426239577664808628295474731717535437151518081617489028889611304227757853779121283207702654340259130411954804937917572741162049514804452348617563474955859523159465636872594518183978001880766695978638106167628784836355916512277070136279053797825267165417054702132377899632063130296124786682465537488686375590930920147434655334750304540320944658600477438410335768332791757881020057247230040410093023682411981420351314150285499181403803356295179341858382314645619320751633678110861092702885837025705334093727792967637044103022761011960327060196961406575152667960274678703541258936468651823807633189139416237606491237621107187157410900986093053694538222786050455506080348358779702886788772906539299316363939911719781368138083571609481401991949248516340027601663569094265548520892433614216597402776990876195685595345381539517023708948971682670290253912396349255037601187994300986464988010393181909601241638923370697642892067676188112247399477220050391240640931442306456291137258969008924073044939458588792516434473460601675163095903216337058249337680695108333245400592316597372207512142766143609826480516592178106308815117062293181426657845276631933416130647665089153544649713163160303147459118821663501146270866678657484998071417877719848878087864185238267569139896962871753282522979359641950103773163767917950551077185975446010243739776051882652935127203107509073027183560270579937522505483790774353955267168569435813489148628169125720490552119255685603165390712833521266126725446634040183516170872604899658543511053852363499352952967625901130918422274685938634584356106013722562421942623759506373827570711595381748397082070981365343423665938742578970887006084793867021097170281737386212547748274398477439770900610807887148276900420009438912224516869483298940861893780509627171328366076839157660457840954315242186946561626935862811092688602033102261274279210030210328946757897930670878471112912876810230244753143704090659560302824549916488029109886040321956012845154587017328694618654640363680110527129303893808023181285345291785717438666053562114385152096266610398611799346595520130148407916564676811276576817511640743942212567163896961403474070261852819484372903082205522665427846846622766005595735608833200647946820375504554748342850599238134726827844677638423256137497965965757117315941429044018723950421808458027389564193228144413131178472508069241285404842785530824729635535900814650108280882488913961241121009374531881210423855832635919143852071290243446984601846670908014196175067872477087785675203409864502074245450617678487624313159209999932279585833300636579880924758038991795601759647662915453101183840598655522408988114726239806919700011784772163988285633204486829608251665300254129451346459450544904129505977274928106368562338433403633300108220042626455978021805779879435954872844316306012993012442927726878228454244237858111035969342226030339704422189381476685749358134512025589430943033759091547622264781359640820123807587711555160240020764308655563463449049874030110298060314620820992302866323696560448427901730953694320809198025755437031653854547351136274105163032670875034453626878039338783948416072693971414572557542247356931194691170526077609243224358582101985294958857740886301737687716955149853619947783468915867049012949060158068184633921324835948958186985801576716106676108161188555895004371951045777901965109369046238739549221073935728539032166221725187906518119824217397791974479045127256482508531198441947150953884067182016490340556091995383676786693496373024012905707895770467400321263766561280501436057436167406639353025506497839294801252375916926567205560276880690828572223476578323619785872103857354765530434067764872571322559065487583284433642359238696795185544328308389180467196500301566447028022201254675066635637223823945917177289402315463392345052374275981292682308491129302152357548941502736925040069135410978112961363339415456160234957500737576122394828201409409610596415295683568595104784102325410742113768897156362806065899320809709529447717467978631508609552839605611199477274106448941473804893376060882133733333311104245637222816607166325622676464017613926091811454753490714302233692084206294662645929259431334028167374491977918920654751115783961260239552950634835348816113606438442488549004153626440810364217638431989777604545846979687538216533192184473716450777532463534077949645935362366669535913946392204777118608347291594563249094383109543119802032923103324813333459533283501400454398310139704578759755354166889647323909133772881298742457047384048934597329619444254783647860503026762260733769178968362340398726366578207948517139583469319621665638450962081515560724065821457381295156408486031221068903662981742512649484546085457277328382332696801648940064521909831221838444477180973475407803552908832253659842248399909375961446765896997269585355370014724310114589793222947156630560529255353011879316286273911996826159370688411891149672974908920727602229688032874877637058257340333082065876725521485400205350122793529392028678037897542791401394647860503070055730215441511580957703830559379661016869450741362409604394609325095725736211649348319150396620641373798273508343478642686114839708217142475787776091601535650173552376141128228420854220879578309655346833013100004745226102968967031129330908000219226873112478465828009241843544521643964810879019695919284117386630450987755688871688815689313972320765232678414172086646801481539205262214675173970591329933304653399638885898324070164034824202934171121600789058832329233106479389968895202544777957545010508189320503940815543730774278742733620218287781302375279122947525521779668176932423633384924570566845005099293355660919691461768883165234011927271931632305280823958765547110289721567985578263842300569219265596950190052486553696423737496513795598171935310997596050213754723853370145131122900378771766390637552206082175389726312176392551765780288195741084335015391158867056443105147619332464299387653403756544448466421829977635527004489205386103798971403044874646421401642572007453100554878812110410159235503405525356927178060985392815204249371537072209876158748029314464298483663564714674778060748094659419372578173600458588735668289075026281449502271909267477590447668661052644213512522989843184624833108701043993964745853382678264127294498195334161413772100018135738180339689492574646940135275747217175459923694168123454078281412811073532023744975153490116457857692122188280659377651180144726176045176591954229225107833844334461955157411392888610323021499601874202465717295605957509302843951310151017046041317616830534791493271177678377609599018170261238785056312548991135137952425964013959004397629915551138777436436282440738773598776728107428764918511319233157548272237295606232793443019913373752050526596931023040004696878974356777022705965056431210745956096380698466796318043721999914922686574255622296107882263799909706522077737236952339979526641712115919540332009449646765622096685947854793110970982367902595039251939562642410638999901440624599470569218128202659517141589180777704440260277467468194496590043515926477900385017770378688137725305377761021260293598480173278174106355711082772382655076040256064059767999746349378424832342953655234006612801359766871956068187804651872795479114063104137140091583339955213998610772340310506463107178392873175904754655969395242344004693368887874525066521551149128289834949710833493586895068507945101887427503539930547932812258550311099707239539706064566142749631251383710326383952177921561479611941846373324434097637179908906753568686809667166362854305921960037645049538477014393198310726329014292476178353447814816389124024494684176679207166732004940026679710120025646781116072030229327346050065833149643312742610285470092962896685710500133001828429226887833473172665820898061561991346974073406322667990640714375447969000910955276389487091758643196249904912747571838170886461683683110555683398853197003331083081100462725427372261391383942164236820831229289149037149406223556405828197389636665851895103453881789207891139906028666446419276712052820959497729089554912757167313860331940304593218316205207903956385280026044406610294918892876612867428356606363857611264239217532018637443410796478436181731168644036964548112050527625939142790814908922666589710359453419241251919163381577781399987892569771319532876340119855029665507540105453822429898905557710239243844334340841813704660797021179403464958810192013745927927194582985639304852310946581163945755181886208241869512935306505806154646797118722549459108594380575858484801275304435655834712934462568718987596808630484718541823630315980739795661978151293814648596117257090079701301196869635674557066962923940680372873458209683124072514183695038975389460496784677698521686767124667047346393286627389503572802418762684607379897859588635679501684333177284585491260228488822088294968645426558209950603556726360018165737950636372504437774570955184389758996768087995555970917537941277727810708603473222151340557510996947576996481186902130373745531092664987979058533717559506213196204226115492723384378518877334670237902034592824200894741518185724209175623336642538673207648166948807176549916205056873015302187989235595640717326239973280644676581754286749871894763617896848354018015644121798350605169195385311570938217400706456593294035995896511197857093139915550358809562089394601762739416768296087751115425710257131098456865439513358759694759938637350992149279375980327915999502759585761777038803973397409768208732696086985645623742317815323606279453894755656735024513161987449707201397524759904298355991290677271094787255341810639517070710165756556950093108735141936055178625303011851636146752531705144870096667784698540606372788907255825255660496226720415243139835845292984170558503086548801075090517245076464744622687064669102289774390407567673361793901511159289019067431644584156617433049228729751720739720712890927362085559012427481878778894758796230120938029399890967506484403877034635322098210642501347882537744222615900131783258205738739651490503680897036095466346678768669893764504569791486442024108997445915171045564951243058949278889001797380625227476816156222240242484175240539586998236143098136764619409291274758307754053122331335620112780511306224815755294289098156738044373289948449886690228013438448318060171874845433178373708213733177487762135034473724214772685018828043512525946074868460762863092176518078791498320240425959463152107047109341697995893608492272291576235543173435988917403393537089499056175417268840729792506776716988608786210438160220615259773142096951379027466069015850220484146721184950141106676792015188275241262097007169627555701961832312415782922993310655433009820898124398152153933777384695227684781506215565503760257929544198137633956878079494118495634457655662737898448882319431061494333295265939306944479122198217359435420962566352143850449111979354247170747171187071189783843286976317393958575901657420466260989836194219435769798877128221853485168341336082091690809360087747347162093398557377159389538082652145680242580584280737659203622446255170818264837144013144447027476583557981804833120282762809066576497192224937694905282491104197105082879143049188828056785580437428684074500412164878718297762081790107100143732061110077197967461811545751963143708825777043047795712080149279425745959628973433793622791304466139290931822918833118123638329131014870826997883380283080705937571763496428209065557026825609852245292871495962775714197106647221269261097832801987476853650824220301372784706159765794587524661986734758014580900135481674995453986140088679273319547062917398759621198537207040656646692808610671422021866819686002931150127992702098802545432969841655113470022659312377989650919650861438113949018492640339748643688126515640685539443527810107772259269593699219696438498704585352827662477367582720896578164278812804515258321138860312764066228978162086635521236156235784850216255931691126976136924933235548346920193091506368663673165930640242941304863008468005526938289325359763795736396622843114876961508833109681589679623627444213166780923201434480102838998489587010377516857063975117854838909576230111008715406090655380756953590855204741550870233740555510104053564261568758805595566425780574786553421185789711234640037540308816485007397378122375682749740194702877335926847447038399379297969650533307760422072391579997686607242410749652883363574016682379576626077926368800474905727549726925982025292890199861598942674682309323728319851734564671183108914683057851286041717555788480070384099299113300215370361547839643180450729842790382347352743466523580868623094529934678939095693072646792236836499140824643974973831967295238431910432519573801641676435263322441460103370031901743486426058812302937552645658631485759154832027841155547426437781619035939943830935412896508132332027145429802407970988956428718375270431799148599303970663823888081783672603659419110659897531674614230055747122214176818988856272678477305460323427602292296353595728334851848778063992349687793708713317090502699571090999627214180705953768663321828037901770397321975744705162165125189489012880179783543526022541436789168732619283016426982080545393524414510876098359916576606501930531958988495986545993777576914594461929835640992161843988950725042145836173116134419615374811128619079243253991042513944380148814876280955563609551290582043839886104018984196953353227511345258554339823473585888351868245027769149401501157434078339099105381620995864701003243529438270033863956145522306345694013224704272169604757813104951951882126267990102387216185772595985947242369390330184678075360468625597040690168152858575433979239792585424693543687193667499496130212097519044845087554797939740127431213698848120755636238503453288698199337730675623355591406324490629354032713610949602636245982466982860582599595829349043596451349527972740074813751286957486068683097069373287714001193466815194524376754502226881031668293646627319833371956371424510517814218995655514358955750120942705129479188007131863136195403293270661142543316057532004958233775774404572798795737838503734554089122776162382892957244564438199454314390687437962934253402967432833798852967080133951614298320870406925148620583367348710760173241765015744602332141138944530727422997395261815797827342900604931488238552909578425068975807032592367478595736293793074903801108135930001914853282827038613216174062524311582796009000252178719767748284003571546061666577468621270175955731704083299825517713353287177229579453625384702073798547796587574931087306891800317047300137839712215897646227022154939408723245534319929242096933814333876392830504733416708215553486228595141176484874641495266013126664295450299019045255958516064790941826370625531160982779947310860426890942243169766427766573947387653187575503783733516116520087830001931837567222193179953481529345381460175138473496029284512124620313241706670169565374402930513129369575828212786846491637346147052720337348273824164962686985915143573979732800210819477894496788897134825431393381716530895008816835587620716830754820984606543509753815620302829092492271486575492440755287260759409780707110177232472802010340415265905747366858880203820345591496644870323192135963331590910034862944905953994280766444737884895406939990126172306596018018925035955393667982892710257212022787386163212334583673945507859658672401064127089909591939960622532268818756426221929994104967999373345905965177357914884400124491245134083404480921897889665482991442123417700241940663588339077933463288954611935711655377430108292120426146110662740712607743625374171344565310296976252139630673731390222455607066916410432682694417863150542187157680359250483450821308965766930068862516669501722805273924927350588044420848467360937141572836540759734830020115065464809792672418953222332828753248658858478593300781375463989610018337744119402148961041306722761830058238692573931799652176110678807298093672194956009647454292745760705642137710859704678386809785834577105936671370533740937251279701671879386462138628332235671957018543080868829234886333210424288656513642255726498799081786360039902762338256333549759204246734298437320170098988165356622976931060835749085521834107914460454176914112285034366407002685890167082838301229141702098430569490358214924311489056263324949366681683403781956006392700965290134534661978530139811346278691577266133866308110607293571691551929596217398184411870770459682942711055935487377964208432175375304048643401648012594788547060453268867048056658369052321793605277527167031057312147088658733909371054249858510605685450944808788446387425442978300473080342786563835888000610303874150558408070424936702619455284050657439594158688784229580841235117323084898369371220178234100681403405239416686089889514081379191507266947599865749476393719320760406548626215704056995357494314181638963084423280054923687169414327245393554328088137878583503206155927077167489780872209691046951291690297176798953895655686725325637365979666122552506986717785334355628634466316123619324425036530890063174061479069882310420669054602614797891411891218971552419171764979848534673133066888410250854679203456097453060291496700770389917028217682218372833957296886960501251774583219216495046277781405084018629506653410613940897785097871043770781651293929122208882107789897051128140915479532169503355999175392127635753105622085600805066008265928217292761090868639307634155022862013481514812942586858731756285486846581606957915478176542642744940141503828333611990948359659639955835633655422543119726220286866781645490066122599030738205426417792344718798584168162659544930922965191450630683002465363302050027837301051083384409859413137855446287806999640034109285302764291259515561082379307679089038743500967237706527421884116406639841120530393556913791233362642426701952965517709032983042098239792181050976994219045954908511466144809282949656993446598287493045712897369241549590930470875921257769579057134358665286923285863032808651598511209841159670237031727836552579796075605475401929455203572922528386884858842598530779401303938891405277235720369649994893055772572034545780657498972495379530106492950979439698458543003419216978540286463167150756238719666013595365481595897973467844100063979987635595843088881986126082357461552454572309946212256175314166154081757623994788954134876439107933367889522608218109879112831490376612241628525621854770733831810594448842405985557428119238440288231020479849376301533469208120770472898906625259746200672212535887543135891159035022590715619055977386108261467237482620534558744089847364506891967096267557093618357171766496315615136923107629825850214856553035850921612599028896279404022102850871899968703135206228452477511253274636410881756364437970948818946286337569865454258794261430033542817377418697701622323196051229474049843001906977189825565813734137411623960153626567359889363539082247124348520289193410582519310336324257869347074145242894660901558537319838372670626120205122451092589908630801914192045084495975853387629265465117639719878077347332522282590962038828993643353897305012158903776885310364789377581911601130146956894465011126126718874818235416713640146211015325470839114874480947804032762721870468433534843010874416785242715622200852094098954461447176486325152416676197771555503430053002176400757578247763465254842702632511064206853853633255695678359123548304923591677365307756463979213982536331525772831036602239967403019531237556309918709627779030717397358889656043507101063735596772306226755063813494625085476165775095695273985823285869042953072558076949882505377313107246042196858641883532040616600316285409202097534329640503706850009525993469258854065574173884854923145079264500266884102245618748243609625657676439242198291838006713377773902485356712646333013377556359054215324267646955708258134565599112469036104427780967589823117958297449199502121065560656698714625543764488989160610204279666268195847406399290233507739974600037050281764091112957059344609253164891601044216804893702617002603996654611303896782636098564467028496409894048710430291787010884156307821094086425182805768284590977359245336568625587999556060873352817674983508907496125336157459860468576551533102300879709617879115576351718996117698289505666762949835484437592411807494039101616267390521367358528759937668238458300094190999384767443088869432331892401087038602695630816623539335476702058079874319505288125452264516175718449200387502179497148166123913553566297463567047464206262587652453190465404218007756859545640363651566213611374352725685435515878265032945205871977683549620649757206264445906279834123968941232636692129005395249606541238674284193420695975142231842749521008640893585553158482794988164534195890007148983103317021967292317096283766965997833136833725943307286998269576899497419119477304630013875635696485009976877191326153453147743132914772627928553951569114313249442580061054194387234270741798502325690922307071322513403602782703852760830346965974929589429783225061302798644112160247614712573120109795403501866125437604880650292800115342883916713089995962744348107734298144724137947793923771359244676639676212782055434266891542283117138866229014787558839713301945659138056378242776146249270409892777033287444193797907078210753479389724549922430485773498833220144733809233993050838304066630790572495370600669533161631733912064767954059067809117314315837631726713406517155414140785287625015005355550216740926649665133305131258288445840728854459586903781357171927656433701762055401283483285598078825090048408992337553625324340231839213459416001335389916744361512972810510583179705268965492244862165771091416427349679685367776476624580533434475082611998538588322085406210281064027732926905558103880976437522636124850271344756701119943464112915078890767133511134598240993108625051612680939865869442495001057615977438439553467438749927838191062942567101143190185384272409451283183517852550422477471758345382297657799534458919706868582317209717814999704567523358339913292226483103470388208640817482809450005934978652042657077227625754834460885460432526990894466772924427016748209300242089628740501958739906097480705049531238392079216171414577523066105471400568193069048354669701166088520493570894452986526463950040435624161228018570978740523972556968041263268309732550535303165997509045939268619553776851721827288477802047906105335648383715178327781195542130473582885964131163511003612208870434770234132300296513487297831357123832342730306561227976232330042195985800840260262726840554547647008041084116909542949311476709632290824898249982671761185523628698205964949486089852103604257136729916897446674069502294406250046345298587252226647840019081934186951447473129380856394161978095413653702036093016020726338036066498531265820176974166079523929599621159572786703405843996428315432014974111804933955703236152945777354152097111194571885838026747852403557803528905878640759629940617296119045111444514405708458729546968968921631143368565099640843768841854776093429289598565623853078209272955324538366944066550219421846233743064139820166375455705795223343994842139160656442628310940153219904192922572829407678815632534703120116857366297796629690086519289072144065900584651562138504355024062819888106006670045058591365939505636935583070444746732264586721432272916151551060980111391829416620612592429094191660598578013652975339731807969378780621713281056440017995216355669693202115071532867138185051897692604981441691317370421429908025393839594681468831623159271025317179909987463115636706424605105248937721131749133104938626895070076647715797603172270218882112827234050920795904872053733001862359902150709863460839095677451056959270435736587480345800677484940816079677617794405033576441429661976050748696669548929582279460695111448459222313795822938361667203118039991361781751884608526389118739099310979176077036529471232213640209878607354251582955911456544507402947427368895939894479855179573232061681574233510371288609314054060619256814940398585553248019547915978870702515891282514748044204078114989981360702740796428182861042735285889576664510471478731676350401450491649237152043598405712835917568115236671617729433204796535399516638086231646671186747217215500555686286454699603115449304318288228769948121021486521393907737482185541586321363705790342211148772070977941648185488431876040919730914000868281118105105910895339203661693657719659494082036282863723104688162400971128856572249953764459274209226647532947309133547563700965050007351709837286374752454464988424700585753413933646907009369151203942855223917764263499572701691151532590944684376185671152876210531974603338059103993263840678103240571784750339565257140741854574359268938492951019023022011488462157858083407635205101462399715645104418039725677637956809585749568289004677081352073880344396165836464149623569064945337019958735399745490048603876273254461064330828873979048010333586635588606819182753276154590578588758041137972289868655291761269836246281936273026639870541939842090547066788367815515934851361943917693091774323617517714014351096201662225899879605310625419604381556037802488657892062658486022675740943561243670485450134920026900071471919050011203300595623284237327264360140816217763492482212035208326321702183334287097419524064289026622360228129519635283920180124747465966200349682409162483076701231864630909899339891430464237566628310766273643781358309192142836169961064649380301640370111791363352231061567188027952810583760975148969775903789819054479346788442331408387375983841125408623471335082510937702183550444275358968202760328410249006013837502085503529269574848208075350092099637522892109476579929875046381789327563007058533788109060467954446003837657322782510704499612437211710881817077365010961174819298652960357177292006714538627017165501997442537700470792358977532304434005365272903561199785788469828560718324082858504191120924840093497285498020744137616419125716329489192078607074960333769464671543583476269460002520061128009822777695515467045484032578845775741705278386175709050338880612350941951772639368254791168776652106534095858382829071747470676244289893376398609857519550177676454946983026317450630202229666790044566222919832484771422814614971143355980232409554211363639641164033617556303293197725035121016412875085078694973494751788356984621850945311566625244111202039291596650912977384370914900508283894625505491847623529366258702266633441771742056601905301389336771409257240718309920947454987342436249547213408567414913504863330996239293316771520807142330404944452898281740263881753082074355658141157129549951211391628228362495921935866829137736879963921541425147762833965186404041684909708014143882450329047986165430561368805157399051545685609464654883939864260668243989625878468983427860549142442117961227172635011712673831767904278904949356311744174939885194069373064140553578490623832937559357474860818424237363721832504261785550680719296962137132086695554570853573497797321284769480052056345406925354541003255154387227825178957920415300956791366713979527309655302122195366498001850344725158157540373849106399420628128388248113271315313813518701972522513137244507203679973146018673462629815640287901044946411029741341920055536374649719604051388731533591822705946730037982094548970631228935531949725525975788076947638216306843930243946443583800489955551644658823811934904388959711825188683497981294910878458615647992272980493514265003070918985997916072220455018739556586621991843606854261797505345834805352531356998793003285088394564310948872933093667607033733563172734814636313095643381093099988632070179979069817144958449944893169937914406195106173838737946378797355514255016163362941607169546611234635240809274965013367864641737871114369699276723754602063642585417934523550124786096471811531909104945304922542676949403785889251442007996739410164715643930801518702362175159139109647995072312928146969509962092408751222988316355614942682125408587970448305755030245166748289742485569571225577940590030981118578362512780649101018996818891576153448966190009941546219729054798320432767260460956089854607518677697268830583632104779867245819870728702762982437034354857973335811096210147190698430881278301034370968842022413312081319243846399829786161452427807192131205556853549353959093641518406089732593781756420283688677532584847734089803056002654095284051036882397648256447210184222232093663409464157774914634469184938629332640248937283801373602330608650283776182144156994603665958646952228210609787370063013962029439527461755696438227024419832569588878063492203625572500928615259656566510482587969674159512973948651268180065200258570230636353797788054989445891118546270194513876996568755756052751105269916085278569415318668635558383256821772752697996031942716287261358528412873861752276568504947730276442465283072759476468910412272320317128842576035309227578972513229843664777627510303558349013698446276591716001874281692613580891175054524443851596996713873709692349510254788907960916597687937621401271697658880173824225600837542084439645279708563895901770557501417890510794812300693512776044448855509566188460045691001442910610125824011946464533433675673714900994152644349054093483508291358944270642897474417195241190360487602277591534808995764994802873180128294002142257049530081969774697832356267655566860382354877804772032269678060294987929709088263329748189305253744230430313831004317512608656981666115501664308307650608119186230060362305589344352610690801208627639214095377836815205210244107233176509825677458866694188449563488397237352222050863788153731915497796369980747910526590658107588099916132155404097493942965282416121158394015758303685202286341781123869210936175637324598122111971389668293744760690290870090986139961381189239081212101562711497666003838617161192451147850974771179324831226813233905096918860903459034194745187922591978503585000709379439795172945705963367564916711200780487209876415573718884798771197611336990971721683470675936156535934764642979941620727510767315537366302941091891718451816524577587785627057994938767044451581806212014320781320238830074783640769681937534782677280720295130458797924762810657342716130784940173475913856159077830640956626092113214461020571783510840075267394934755599638799558909837695433203606293404762279342393063323510256675733787391218478311643344290687668212839357331182181199071931933332364316133130547088537282834276305236519953260241508628357591259639019978318326326911677699255455047925074653292095216755002439161988040554925052965556822303859497315773176129545905186669604435242821510186211751809522240387073599351897130966590214364839981599258217270506676423393314724377224149904042707001960664431403931228302949832385991235840482170375272692689550551672987340861191242169553520201715782603806762430875460974355442271359343178773309576944017111852956159154477894151589241468605946101903119647026065377422323229100258170878270966580963141550687750390362465204096880737681846638857601936398989339924575499854113986706700580998591937517579710946823499544176967935080673578399108795832296293163720153878253408061820313957430471947136382722299174937287505679066452418455113156463976135557410246045014235249463188781524650826448021632055846230136822882449218439669651708902342259823176226966771197391904182659761410156654282353512838694105682510709015389356505055906627686070233548018773265365523896750087362368525504612507541683612673852080119821245666899664791548974328584257322350729205240917329461704757349932696015743632705393491871096669129454889064853154878130197555915436118973544745840484715135840205148562082184181702539662157383259478676452061846599652852106242907210232878272561667643410400663530743884536839768157103071631993390625086456966899838792051239418715127600939852755737276960185648707358079316626783119101573694591435698097165877945122700413267356746588231823284901320566532025239512406010813713899848096553705614140149630184579649318461806407236097005282025620834957031193105910977092466236456887576754017050451045726443971941014938067884240703667119838936797511207503722934288440940823329754888630655090274108541109506616327223010932791345483722202524133772304813906242935309794764947066260417871142224672408551941725292004883454857680156590041406301504449062151032968255553274047377605182218549308285156816567064173540638130568929815690289972190994567586176471793439138662478196431523262467477215672422064537529454205928325278346808090788817934396956216359109703867838400778737883982393893940506094534833935346314293528316890232206679744778584028086507821011367579060079352736061523347256965685503224313032267032849281667360369576975371280645366849218135449672758772548723278555848131198089361798606950280879618328678370569179624866055551303633846848843996188690136209442059079573482036639275851148840443599429414138466521318301319186744508151782717080204932070965168757488021735331899983162924210927214797969894632966647128902784539170102001734002564645650468086400976750413703790953414300122083487421848324845360326840758742944289634942056476547406586751591426565674133247922223417074094411640802264309242849406591216520184216822805018073750132950098531866022032005404706295284165128981434456137526884441194229280937300628149247080194647087974502647035458098039466471371593045042366098030325756306903831866368680714259769596752906855036697103560332945685330842230053214915094980264344108356131534869897854513727786717163594292309445724036514570684543400610039209869064791286584719067422886293341936353208734212688058588367114155537348790691976316172730993801640099538617136327599829055503461381951217549239650473589024387505030873510545414613442675111295496397766666288544664285659470901931404797543807220888668653072031653074085585358424582579806652717782050203240669913152497939634248336600694585979921062592638634978093644561653592728336922872745055106849626973322595532668155291871389057061759712020583452466834645869460611499161574761699156001365083049573901612849609314621315901952059725366281596039464804811891677284651155052740171821037515384192094561764191456732238440783946720235022914001704309070037716205642706871446290391590055368267682688714595888251712429808404239200967781701406238489022464061012029380935018630883058339334764518341418694313404506309203682179315516358940133136344069413508082513596075220337103167412449751550200449889287901806128859450165706523600060698251230399446224486862211858615962271341850794502936264551652579819655814511053573002467975300732959251928894588822713678240224109998082847200958047738363487219333262437361397638817762603371472271646167079582824890923966709695592217850823244031432800772427861685935044857704183996729776645531322940249634663700552287046965300723689728218276313249551241784570005119684132189011008249893222312359691298316437085754745288143661108554050265010033073956316442201132152568591937222156979913580079714873418602376502985060144658839339247594941946110416170976363856587709951156594123701531898994840200683394426711531690824768834128433680352510527843405088334753976008701148328158535177656229201668543952525899629621832502519390747282931521013474979447350117672073294995135117307748138492896938784318374183388621222383389207051752155747868377471807099803635208874252360918490560551338114793259944572536321260398189169353081201954638648141158747456901262954727484407530461716847342690714468101071774664966881960395025223974880195605702624270710762947688581261911837563801965448438592286364317880926956821125306642940726034149254870660581953414397536613223243091156516880602509407735960911411083565146054679067508150245699474237688528019050966821211391939505701047103277740523630247760499261449525298911264891159750266214765567352227741899576690114398574709741050973440562873368027364030650654765040032155151270276867265299317710509156416941879340364045044644580068322149210257719553382255660182691538354961325522852499753066441725391382580957312327159891620919301504160519426297878853726847367446232191210195702083784293180817034193591484522932783293070587819605722683402730459274594488939749270879449983388559340387663708458337166556356926415577536083168701936357092895298441096593123130895416477719416858116961691088557920067723350597342979760397043701446549789317237364434332109796161309907337993643869589266604432189305323199526406776898549088225692127507947567574191877241983719986314224774842058053179868517388054731958361680713577530635444014122975785567800059535869685852993894257857594032404693874496463038776180017041576650085524513200126436011119160469689983113796154827839334542504994171548317967984169674002973486483147782778141983641207527225216443351999479102327136206758349233520299199318609063505133207184795698309970095595777274910578980543999782577496377038913583266510203397960550505896941688247239373428304759584567285670224433912839733112712645988594107252455010099368817902653465415863596565571614692486455214847187455581696917971149401935416412867501946142703984818749434744658978211284782700004984673137767956665582150180300355315898565769872798037657365688140968436111520555197885584288523701590528666548597366138622730368583770251674076184891773001132947264097455774521638998948437475160248402670561562565434875528496579405778080072320892001025700812365315561878082348142704166702699117775442991887408844936380290159691405910954492269683989818244743648731879174208148430402668407738435440646952939905093638756749100556218612907767593087543403245792004549304081560672588001933476241990445651678752681117692547215940791282574778621429959116541510080281098237279885356708434641504682383497863736118925372042424458283135070185720951445087855875725604340424268193885397665254278276245005541772198759287663097311701186311506325688715570325949946806364526002658260020438796063087293166507101978162442050846642381944834807594016672208937881742293859152157169426135306017558576789344680527853701237851710223414420803475676992792386376692156977664936546768338280525333709845138983478018320250631699675026932289121213636087250710553320986920374068194429419515777333893793753921845248667541107008652452751791249409412313006285487635953144875037378838607649046942904147515616046423930436787491160511349829998208258606054128490596335814494841562935211334715327815438281956352097378714358842308717425397192553296910885743877335408653117400183993816956582587939607450982573536664093856977478036927421080923886881094834964096238064042419806984020856093372426429852734948598209263275522760913556473441348383797762695400516314378123855469762082697300410176364529968660613265741246848035931935260865379306397845400143295485018572139287969691672913355309506449774451481404548362198821671344733249570510370108065452865292646387158555548218960071053491544105755329452155992091038687566381465585698225732232614923192473090999551263626708303645337785721903972685228097651115104562398672904568742836357601051766205715333818584187585091804159764340721258284577323967911357615919520408002478254325768465440023460206668313898273875672114336942230238407904147389016557337204123240504719793066684187303703979858475190696310702170485088467052633179375932202698457457037465899905702678673201290616364321258262609298047744936728274400073509643804666904036080296713964204347820971468596011447506644047937737627434317325466085779949670484066483997569398581565882495393667646069039275199445136936958257869943731199565535275579617104830019313770741654226011480167656953550932106599356815648181984931066047964017885275211741227464838925835851739017365036656163093884328099405573021140375886989011726634018603338788553190542587959953954699264309529999508808845612670941428144081559196380319891189116026263554268745063383296190356300919801315218008477406847852010023654949067283013421538574818525300969885757493775968367439238276675262696231526372547049956863389407157736021499119418095818677382622488409187902432472828831329865195244388307079268609026289684115568112399871538741050524807629066015224102595699755214501874910393569460956014206863892062128989842101322165579470313833177868410084368380113379423799186346503654030629743840265381428340695198517669059722863850793665828281330697731320592064162779842040699518729498136873260532865405018640853630720255593661854812745161034601336223804333020472396087342382952937944689361893248045993350242010999724259398341867418069877959362126203342703414759991348157857624429955096100019180325414062119351172419888143575565740202206439394944265455618562289055765114090438803337950725404376450904978973609215655577546504253489511459009247622918359718458550870383487879447927247081070575862658754844321260713827782929158405837879266304955745975436470456511810714044658057005106546553132064997230525260764487239741896936504313847040707777932741650204067215487872407224143192184098217739077670344192444535674816652320241013325952273433986445269197113681042031620353121995237309656270199730045488814914880989325113652742144533428562667880952031797227390200616589848874597174790116586373371732410556083356255853809337085979420822730294197018131458020268325374736991298819775139745300314320565495626493373657157100848762795951861305260854925539625309030713582604124169925337635762882055020256960286284141215491918113647865796433336446340803647575018585073826118015427398981555102212868597646964959395033768688363252885223342042628784773907769926869324443672300605525027610629081492159045048982732985051561642064386725503188073386763287132759214848085341924504985850811595302025211875170703968454258686034363888061339935095129285071134489168510704560381204009447513393424265076494901602006480211805744674548217543109837723761442353352950337585070688697319217542305924417814579394973139992823297587908588319791398548530694582523461588255366164898900276000222753442189399683812143103889226370579527261596147578224827940974742937848402068737064767945383219835069518957221617071231111591552808659945509367039984956897967973869187553629560620200027829485318966328984447071956385302247625922139825862418331138906852735103989294348787569168532429512187030906861999730016389206537125622443345222102628382757601438424851919750552971506751664551550372294260730532809707050576357277906111811201972436093610314796577120072450349646339561423511110301912270424120451385349445906608189303239753735589783975934264523880089623892686933985980070070304565529746404948682485168148141783361354011641617391645595718252213826219454028117094552145557428524313792856333579007844198005212781829083863879135382315144217847052255644635958855036980811045812174679312278424164539246990953105478975006790008623190851725922796813666743428924840078746208168229831177370896838216586025637389275133301742872469353371441926350637058448753586165761469594692661902606318577092809020807582881793912554331171309877188417244773871181362798758281956156555616501419762716786750986319838136257089181172702378104580840866877057732310227841467541660527348134586508636035335244342466212173197121977524450576099084118086270987689441541264903678580124823140059607157855803314836639524783571406637053682974672912171144446626856680370485340769711393349809279261032402448221389198265720037494223387728622162213242471943395052678103313625507551953077632003109637404544078703520545756150128758268746271589087242876555137326709265240436585217984671763412027815857333593705226006276113389083507002811247260166763580914778452193493341260169539630743635332418919294222192258359251800203649378689606741399338768260537127181124984575812435511795153526568071709963812009886834184823979822143098664104710067973679045939741903887246782667236123241356817146378513004725987101356020157712702434860734317065374636388016755286562203011333035261631120137943817278545080548027395031406243156144909645360467204566883951496515013990743296313029059964573925762134251317022566556929069311218988499780555966393609798744062247247913057872259738281212420262048261434284504987802096344164966596443006535137893138186461679078676242445820631106171522985784405207179095804794592430365988461885601033445090051555069725254463814535959177080540746430763890751568206198220261860528407689995584801512337607497694082137870233901448405957330542137334201637915735899372649895591653941225194488120025465999810838379026139466185698637287877739003090960121089113280337365594470043996061626941801548420681607252037178459516620323415956116224182592874307840659261786880146747093695889086237513204999258773208864154818815202657470542456316868443376424971659513422220104798442694786890311651681172835313671128459511013041543249481427191969029978411895523979512147899522492245992300372511493431551237079808659014962432174300525727495594676410290538104598957315201963544986272111528132352980994727566390728765402995119942559689514874073359776009851769319486590021331098125223556314940981174405346519111344521605868738119018952257371239818205802191637275136036122260220367021732074113788973187805678900363525924355586548896210556655221750715593377296254551246732037778605680108253847615218070099223178841512290034058024527618258892090454433882701288486920206475322995900171694662696202757364804115471382925684156865619398436967236398620313959089335746286836012513265367284628683785366547560261417169276998255794291260928096331282776637600287501064163257499712186337012090986313563452076035938561524243575843996896059716143681407463902473313254156313087358834243008359661799292274135931448172093499265696824724625674518027344029409926333055471496897975009859310507595658486836891731949180562509307900742728908066605454980817659376049698864273596765320736544509700788132572912268411526378143069344377545185531561084371312696749698994072525811560368601215418017897697417200635723053189069398906539733123234947923333404467725563311015065987518143414278359937926025311621554627177011936590041502152309646204447889431366588584229347875081867182441569178275514698621062899798300248981493751624459329450141284064314493421042788672445294287885982635177787897244445543981853112548450699233607641211726462934974566623401273383185915806252107779917215237819025621023554475002371392208090983700681771956087594642172166855913747387669772516151077947387463255163994772708076126543394356715304382976165875055703255864131910757291770976643278283362409504102538387073048742603915036619417792483999072221977820389218200653327338263112153648270026589811172320772335889065961501699729919262440414105579983459758588554480510995006108185264312942647857026216859287930590914392516786896218449327319192773843423263957855076516920145379609031585405755745036724705285672248217081112042451519458193723331383861086186970057186043197669036565779404623156285264934341104044886549400319583899411782321792909252397578082112687536599679047250532072623583376109121705697431091657652396758807637780972920482491667043938902757800829959259371009907483161291012306091213715064025311630473611563700579671717132148466386732786786942627382941782829665510156529067890935232145738402224748768371534889921851055305486661518164344235886190422875124773419909967986196555741978195528822869516427547278179259926181224187561704837966670522485646646233991978321874295774639272297407530106032759936708810243863115303436415031448509980483904798696472590405064147441701133091986849800412787641321272444128364250078753291554054822452320822479408875607984691225710454204205610709263302231372418107315145508697578839660302189209595286143758170779062913187079002083825391069528077970835074931069801448580839997786118519407190225176103110346774586969949080591343643441247818626268968184604285286183019664530642048911212653576659317420911500924656724783169849343721346848295927663957581902169858560176813949261360597585560607924087572303718614636387448541416592801652479359916666537486770990216473138955867400987404265906601407506372062173119404073007167743060071193119750948814531175433840018218215867100276797378984187226457510950429839381246254915418921857152779197917574444642321044608936698763061451960871402915273769878239244556190163653318874382844369261940346981175330066703618380318472754736768720121552679471897019497117773156046292447415259749846601786351941142893363692477475198089873649046963366890698364742268831860741924150771652259910553244668111796827517952720770782605670205081169467376881033093650183011957003813380739117934092260343240408829753909835576942893906385137400337619583178124612032810508635827412159379553689705307701259415452495456137240172727289102625172854440504351066042950332813493217786487581418280339207226962132109461353858994791445826782097556739786397182196417027916593095916579455527623704174239828583614548610429107274375384242663949944127133592917827232434967508807771310983304509904201007816473641072617529767029868651217304428833803796443859419999794148766181384210803543850531063877887740023644628234903722332446074380513921896859561063916719231327955542850864634998882518003208745758062851757964501404886087407372597537235397449480057423622256321447113564036660420588781230599495532206073194068134471901977478250732727575532958171235119225314401730064326148159689272811133769815188097981863006254190708265204417063089237277993176107013848844347380643863937637248468607843305470217254283461778119889257121065005506333492753838958206754720249902581072138201070080729020992837514968994193621555789895115014405837936032253713364957454517916349503870440602667442872594205842589159027447241533243507220875853964939569657680595656402188878927075138122041376269671932704628484037705883380899828650191586261564370255382095992556885205686822697032609406651639372234989784797201084093616593224931752987291781527845846413601809977571846070994100343496624830264605009559163257504569215197224690692714364457501838302619593607433880229249824603523538883026415100990404343805404139080058646810825662822894556092579958183532416454703471664295703477894148608780674510564015717570974028782071701964209469252258067799277183976833930270573189184322717091407473382436475862111271516510629304308239672189678156713561212487341359544634061249083744394271316133460415470519957337095631690662608039057152485139695915671895829427191962607906792658330616397401139868959038368726787207213799826143376918084865211236791362051824496285607018563648367020132628678057815941554005248100232652971197924472948999899204080518708787972500047882939917724055795575579838982283882163400849973612049037594072910033286407516063087550786131717134347029654556015338160649507479474352933457316010775868500773106409141831733872484393241853430853373266642143946805920188048808600157544781617947816671249908179006151680106608713839784676631109999365691607283950543413954405948145220348306394267926725094094652126655040597589562309604522866184500006708216189850512354854226736847406581279206524562785086590323166289170065509127523932707243058738290155218018368928079521023383160707564891297894714352390840501596101887546046733275739202722301788823223842144320552972998562993920522280437726954016144854235010100279795460772004183042580288554995868141217505085315786742936940260036384916706580595522790662835622670304742248618740453826770307050696341572813825021528799205764509122296480236821292960272035188793124740284575583531333280985029034807037728204117729386353251298886173305379669148096439474412301073128037742609014110638088476689062855888115188288170986732742244052243169745929648877382903829574010553531685566276308399006313328934389890633234161686621538101921089601354540690335730144667938983998875024421142432623319341306866893237736407580334245046666352709575069705489648811284589097585044330229236805358716477720232924697489885111001288074690963948114520478423322412560195802290439930019999284499344383125633927243319604114053984022215252285965731076652738574658725103549407228405667512792530008868224693364907075386822069350171200677482248631623563354125720888705017021946164856627753216448742042482065007155978730972513790190213536511179144484649934950901101014607377224462573632413959730288363349340514820377959546918241874497603768202535165561249177782408064267719671560346371540684140185304095560416052317423819587708267002579742196023319983898805482686000501012007250653468793496823833231586852868474157834064911348031196352600220707499694399927420071268952235852826210650184003656827245192220887434393970047966414937901522118119987626293578214880212553794537572861954720582632650812721108904092668512391943580551933350691191031358109236434624671542727748284204880747851561362186107896846797265907318798521267521266855065617397976458025040316190566017594682753738124580184112039590747437447150491682948435734473738071214244766324609199239299675351612056383367180829640537996945351638010315552162528101270370364519917172200461010938617469335053801655363160918443697988527767569341776046570708440981708711364520094789217564242158163602392411260496654498198035672936280594755418411341152906131112007122797316941447183455430012550858463603264996883385252266308679895228194492503906419099925082116194918189738903858763674268033364218910845822429750307061143045216278416557126922749553841909244100662346643610421706291029771255528235934835848212625044850653557052235193184097596956540795422950282602939852632206579394289237281812164498202257044850142365438837674954976001946382530540787682358070391833849340479389924118858555181271250051092538531298082533754681948940421412308056779438724576838317051174890965972614797065150933409067770662538802624521378518050267621853701403456064111983955934454076820259827951016021877446660500475648675095310612010078851012965201111094947808891321422168268430542201919714323824806024173294600913670523360823492862995476909314616554083738704733055255415678737390163533677577563465084917062540497716140308122159220575388486375858511897285783148253282207990331864618300399422655493981564438104885836285851441761681339690650988206417229954114212942855326203128805158588510677581302921361898000397053092935366090948089173021549564105035564839770890891623381646825279466501257898867142004070566533213174931286855627494429323385376028587771020048948121800950003616093160569539344157339632487272634693469054250120537182971654821499629322734365584147375951455031614352677124631209964134527452249323522996727587694925543139718040743625657415835741237056420428149422549666941805130406227606463644151814377798075777239604658624243418234942333319084828754856824492969973998232930667253972063403449642004938941757871977446621266611243259121531294877676905777986507404611292827089190638264175991653584523502424059580724439413012803844900667445141426049593145111557690609288313481311363903529008948405819254387537097890660369238453551824042457782954795219494542396800247501388444233661740493142964375978404752133617949930449961334364379037022325154846954433029256658589078244819228586986096134022337861561963461613999365126859914953453820940221543931784260203346505769039882068714163098098199319694651511418623183965087544446298077175754692302710458595798691232379404983933929262439226876720717585696594745502691990992786870068304978598265256081338147125059930514400197545809958111810068237245732270082841825782595455404187815491378129225047584616510244893579240572921077546630068860346010659087059895225254974261437879950723327730038594126688304285400196053140813363572396180704136360950353857125681420980579708423299453912476656006995893549893901881536266494015029438958683963359627959978879231617822817085613779801306938208775308832407429533993994528124641595067473150593180009575066470995192238533358101505831273039439528368068906807427174609427065856965691649526945663775506702629064197808270668347561055556747649652131030677808159844018478424950556305233215780698893526603844793733213424982461170895900779803744176895952690569618556256413194686205696309154390518911841692472749965982763751325280005090366592243872470058433484238111513567235617279469998752354429122060099516272233191992373103384037454982429531123721245543472482068312522823592365554047403861551468675442437451445420297161936546807115648002347148875617343546559798258054511964892435413815756924556037505141622361444037530994266592583307343756217074572145518055241126975529182500602515279693432862909728645056742904007180172434576048189750654622461878598810656278363358485221114017740854659569662952475310419668054861272986811346979138156855097134700440353702117360859513363871565390175405403458614617656854018008559082396211784353548706441035200120802049194326111664787657531361684003619702916749212173940802563037520913844994201322083762996209546293344489759210342180353453493464547934482330908879314244033744562826747356824130193329964735419348333140080858548136392105724443859638237516271294275101542364436748454565039817865250600730630593087874017149158147630133546636937284314131375592526503947213220648557914335679993349128555520524522965131932426237274959204830454621600057036160673898069407213055648669234742760668888555535112711807950434591675007486220439000034945777284423919626634328855715012300566612514925034048825274525762345277781807329061150072978401877619371102030639958960419012587638640226227430894091438541461214018473664943360904495252393579117518660633443403310878475427851903723628210755507676045619171294816925005772019267927845926809408633479786784528804636248579937630017314079793190954025727948026709550238515097059196483747053092063364105078097964750514375251604451005270444699937014348004475969812719039460623090513455598893677182356054304395461732986792247136932233604861411885260469589014771094618878999113732960689865809543834419803073890531147085899280159775765930437162278041827597993271741495513068254215735194956931519668952831198235253471154991364651885173587744858684835847734876327986981835366675568771757898169593699481736529880720942695201627914355357696295349703452556547151945147263472201595107685773855364402110579831276121816265985877807349215429947457632850046450122948066333302660439896459000902993586206526876439982416950708303213313055348053951115512022428315277008789954368339669924394508742225208835861096865747651449416480947819416795034288426584011570230241184495739353429042079077547155543034281068025513962770154325007051008134176849731603016468510553450431486648196060907691611483947271556712475321669891763669310551197163806811703825876213864272138698137250322433585046167170637722965594844994566496642362034902700182530569583083945483507953995352233277212086357604413527349074639500127742051806543618487818241927198968573194884760580426121376127383656530317963295126504639900935794470701020676997565042765175004306922881901700904701718167466517629451164600917190780620199562913858772476493907239190614510078611087885097384624657003000130115996160400547481818885950100238042824261491461929822928744315828462027991142897036950347300187508429223849429701676594930244891221246489162722551431041141490678668233522523505400682033698805203464046217061694318028673774818528947363301444960637262188548737697320026490248265437139126899459943738517530922888151686247226679969551302138155692514785748271007801639328213540594265045794140000099841743692068309028545861662514881048465328867898123667581773937600427628104474884493136439501104065027841934136922011444271681802007363769858752061078684908254320281719542269055826539790189865889879725430513158850759286973412411533254270255465613015173374330250282666227065491717046039328778271378702033838273657899164766464760714463896679389574401107819245463534371023080181188330902560429758639395857790591444599282603832468970712574662162445389252659317945063038038322278810067583643429518472701204557571096755176509631784646825705856179013934991230932777931084224948302752846548024624036019988101392009665162427982243886685378652728676808108792343354142554181124234101897324191564126532484616228658046510680473628335147309238963891037466162730573323176696284297721859675604053175736996561657882797507517156737179395921227025567464863231163253631662500827188790347805055008830124247522676446275759035780942158561032043369124798422078011471555660423794135823171821330992013078477877141146556850352252701112977819097254459092878868268363738221335430621284754467295037749431546583254339059711688332687258708655492846748338848665935576471940160900360492101515980914302434593732282152465802475688162682075237289317026234306837683068345853656066877810553228541747185111094340927979322879481629851151948523788983746885137102242563727474214057955458736236667394487025766919313656456896852532117838500272584869436031799258863195125512304228795153343372328512442518246512511500322749010269718590121563515893523570656843469648236566442082068139640525939423712584624026204382142115216388542525134164488681404568455336403450683239987684255107111216639059917887947364795209436057274128304236398440596671008857174425134789001177309496396554359971306856883182136157043561483426460719453296787581093715498925855266736658159488259666995461302973212587244141905362768332262460216706680513719757072368308532195462504453593734258003906405857443884003070352229922560362507678150513980731930854764446957488901976553692349537932457220223248384862872683679362242747114564318406853076536461692087415099576166955176912265877855297100689181083907245000682250043897833433105446728147834902043604292104055065865502518726144731947254368002044790426795762034382776851054476848242197389783469554213473889071749904892193999099455324082886330271320807506228677629477379919934010579846759940197969449395003233832113374216713594623901201804228684656644043924768668077780974376371273591871800022053906098503882863154515979938586500008518840401434818978273856000277518031791554741306807000354582610265732140520067895300980058235709267742870098450129463472005346256255130429163779211354289254093792697829081364221304481774855263625353626478941816847668579598783177038279040418137471696614766603368525500957998429655077336389739827511750218241127402925538823140043100140736243168781894473540148565535758067564814671697422919443092426015807493400667543507546675293845616015674059730353654627587921391513941014837501983866067499430045935910098119256915752827146067026201473293360843895100077067966490811589919969131462614955377578423983957643622151017961344542929010178184932270409622712321703714497196350542208171656913905270337366886245092992074589587801615454557240485645467076223464020307632002975199782995607907305582541245118937677355877552515819882789893736033921472391708477678149899759490759438140568949409992191160886764953151813845610454454850148907407344526684805904333942699054994424981462214924571476041308182433844999830160663114277522472566235589494387961308729678050560195170413613491669438077460866723995597277373423618781354087143026225606591583756126075234713087200080202116429975458193802622730003284254317145266556294909556856721750065043094367582974892160601256989832088792508613458523695086466635151757811983101701782071375391843693407036375428655345359303586820919630784146319440585324879510013763061125225358473715510530120776034513597345682314224677342866195212071032463020518259045470393334322840581443515544427613353352361128889079277310734151740534476270047483710121135040699784864957107033794461235177274479686516482802219923025763480027330304256318600276483233391612168713491889057985839626369306819316032085416545886875833336382779638014240594804645090312359858169747561708965010477449853800257758721201964858899353016891517755535984951839174607369051292919825549564313034035511837868898397627491858331665903793516254450444756978103602667988613033525539268979831803379501650237146074791384393367554951697571187549550558215688604995593754407494768628403978549866842773824129670497332659280455448141530332501294373093119713718421703916173022333411700901130387973773780313506431573380314219307231140815908834819929054359091705726002621806567249164268922830501090733287382144077185369960378568547623213592832277889451428583905177237085545943519517446345418248093606077542982146276633902136793094632816808869959387764809644623988963377968564099012609269314526137176793603826303200629880565782646575743752349550501878008138142355990534708959736092855734006718254294468214792363124176787544541619451046274370349910976935603814345174560055605278681364160390047202507779631799127686180305293579710477919114760407889199161211026560302801442951828637692027497461873243946656020817390857324541861173905627674841993377201919197140183475502753298469400511498006269873395922576199213788796238088418135925353476754102792772158907646947932273050626590641882152727157304669585749032227373246671297836628916805191082669716276473743447406645190105568169987423480485558604235418479408015014848555046550952361741538821378973741668273597278605595891970868108184406475606551377516404539895844252247622150560746065626322088588532514756743788341312273009118712817529589618026254020433136444560887346846895099509578254537395066950563489818069530890073067597585041934193737092489718887509810906751995820861860060221151903475692245572959872863378802945424496780172249276362111736801081250327580645247252355863245812358150209962062515506698692926158600732088822298152291609524989101723904102988931416906865746593883039552333125970496026574843180235905067460953980076329488353976345126051066614386342374567792151294313490418043799481371738936557062689297376822184716330620237613991875559397686799885348114457413575041396241872246776595027628694609739160224965873128384953190943983581220708154156264439572903116552722193848891850102225683478170671168501668096072319090784004693723692980185471552679971164477736728380047255180435615305296604068990708915960214039092883030730271944199425238151284136725689926852758429400243132922332861701965836088913192759978873899622757149010777239535208763082529094708041519602222350024666176512612212510963134636100599605460723756798763588422769512688635378940849612316332720985457344266394568878311171623499699550058326915897736614305182050155164083528346775422518623568392384432810899113061260421466212135977018361631857417122027483864558388658303035372688624321166693314854350864216722873339358033485144167856686294307347801792914987866304970467239316485955304982230996945458978223501245684437599921883891642789862344047411812398211418254733168028675736749218843467985851098834090968414386730547148544640452463795479036595540954291357921652236119728858082737841578419478927753732252424117362814055074921632084998762129012359069058839414341966374222811715828402476251720700993931015436191257689230032638190098106052456649023214066539571728121819692670015320505477533155762337767433799644237751495292481371898815539992160725345938781103920530803492654968311841636445732184520593533495754634432430408164511686250753692564556537901738628568572936378880270573957919476112123270339745723277567241213868612071182696823684836125781093840989008635541782973555965031265381661875878233414026089983382900632439388522007180048952750549963217002592845273366428295590281928229716728609819844460453975878487124546590405991597832224685808087917773592845984827546784650678963708213518501207248565742954567661138828190341787369903646503063818881098668783436451383562946212096003920986185880353291492414875630652443926054850346436811071126011068940003595039869520011445937848739835375228850067900571327101131164247078002101473744846623857919577124030724679942066549210868570127335935266457261523837317536692669185413623186280537366378866170633235293676264521678450544341883278597624192606395736596715068957807552579416904153839050366456240268941970519275090258733512544196918348177566170529131899687881307819798618512965524338801521183503409716079648640483593333808381540446608648143029750028169030089618308923397953468953553440926649426486178195459527126733901639482176332840002064132947004147682922758509422133112008218092467156229725537066067213952083079792589125757934793586657856628837802924506362871621830614407827922592139537338838702801194065967753972780088404779806574238026111741248175152679353021713423917431728114672156378081925785320271714051191327952347119640610085743190819531124663208323663363856585459801681113221046148389843378034710063433563448135059634288506281135218772012812931333495949669166188262998921147426563435086238576899219567523805999269653507825606226451408630227829659457376097072308942206974071608073971014476612540998257903481843784270650846502479248898094017089327250583583709024929045689702210455764893201308468054205277926970932476456061139373679479349706307304386646240516070818884589717517643703803726777075509600807528670692814589305742903563878513702836638608074878432418964710396650697891740183128637064534900858570989079343786916189535913872347494119856496249963315193870141676070448862419122444433889136150172193037622913955048079342841494843770133171481912909442181742412411780420510551118418407549315161075078750449412811419785084994650768803779967013395162698541107616601191973174471716913527593830200890905756021684549654963957962449556707815218701321540455600309319653122644372412316576442279546429820348495003646459096959803950453472410247679153608155842800983787174424698501423637372819340543202579092104998983159135936675352993170731734195879771098568999750955807642114479370290278323562815561936835550465337121937676179806109913656296104045572435178895569366009265821461273012848372515993344375987659354175638714993177810812950164876034557221991347068456981295687379288746725920019647105371865939755413238167589428415179825987061292155213808143583901362335981500458737772284723751611565105707576461171376332165709423606907893578368458257936701772107870258613216454578006158728928173602301114506434923083067517228245622049187805773520550048997031491643543938196790125800247891535917227194076868625288458871668696361911264032953509586693996274175327316704292895747274514580735820291352444870900539073709438849451231768490841996456038526617073847785074304981388375854823870117622918112641697194164615921320772465996487777321969524040078717666821011331482886710848765088984082602756510448652877869686143279552741551276329901711873553585043385282239237080761877056575855052907632836839279841528109257254205081848538930585801496593230905384133230458215717265785444289238989903753934570849280058861980405436735055995004063671262820016207997038722616591549603382206945417187795094643531712163398541129379020315318830792027602567014833363773483546074148629746881603952812935837183225239916768676450948447912074835607998039527156517606186680783374537566874533847170720511623407510729048678479191048515603268874080412319875230355540040736853984698059944521169426582430820617534096530094185219207227688703612164514517840943543860715271818188257284885304800074984988235709215573768748158494949024151941008260756424447534987168437718872674422303216191959806157093149198996641874160135364993702976969126824240846332935500792389310723102663628558347487700705135699817345081098539580487789215740015866270773226861141541029150946038667423039953581632176204175700063524680347672758713939529137098796332655562846658366141295008518376438075441728894312164750114168685687015521123631683084246402598974989425289751493543259051944831624660295717137593248155365385050443488980400514464342629695929481803722100516250777471755539293624426013730402151083867303105123113910267159979151645508512260514479841466894260376398711788181510935801378321439103263223625412350067251866194787896644805156016709479885696803143025549601851822128804651883819223642052195608140346689240057832064860359724500917496635533707117683186522132893839488246078941630711827530377301114352899182095377231643632012282278389929355264810179885753274199479272608459907363800889568748119604436805658161785348704638680816781429410053415101324876626629788892006103594515690022187766474424231550299537513527004348847646631893571926916201308759292131554181878101520555401098776906090648264548256001990565754255033911202697025048543723097978472151682835886374482712987294179237041959139744181269664760222719872990161816239263302058066839659813299626253829135685393619785569770335359564373679111053898077542569660982754230590519777869323925571714556249591593859541903191146296981709712803477527765579218964011892044312941407625314805183488719887518556832678264074110176146991627775056987969235922724846065036064617851193580349637882409326893112671103416236612372767825579101049758382739130645219215582966448715645528991047694637307718065250732626429198705575534286572579046529333167445295902651465624653810333789446084284941139861859925621227296228716324229170404380447358704142688817571804120358340057568824337443065406289790219485248572904350573483866936634581342590622079841519596815941120815805623162932862641901648400768262013460445303419961187286590849373336710179538832930333060559051833253956738701634550115199007962450173302330958049385836056120422792313114800220611170585280438674490491611316022513865625215374377120818948219788197680777539576367906943166970103610397239468440486100546474905285274386187621141383023751192595190993233217912679094982181528586699737739530524087086291468794780391386498895108991992274474791462940057517514612591656852409767840019106296669217033732139949705257336526951063810430838377930693430644418680809252941117747544268685512937208192768463611769853092235510677624049382630762010659431159949626606873217652305507655197137904394103190721470949275845284543885522662870801336852288968730568659716693140969323230718030643767542573137566067768048276825756389493802744713575340662373014167564310425293429801006240064170195585920195541724007885963164514109557445050295651754944910271400808835164267582315050336167068266307313409537055035542062602291327083412840954822036085469917769989992526327854637603988045491799969296296142671634388354388478158985176923164363018602361643210437862758636794747743803683825017869991504767067769125478510638299576040971699621975174748917365517279741389975576676358326005940809265356470208822712652959709309594983992055193798353447990981199541180270416801773553289137850189115204737373362959159951171620398664172012458132622100101561366287502189701979270100708439631859480426915619412738558521639525729684216433438026795604897597422522570151042258245931980377776784715260999667946230579114397270368754673552956044026765399859071338835404070630502225829047300190496874189688210424291467305802367020286405593717388203492050834234135054318497111907005628972854458397576616021780194891628503530750095903748667067181054687345839032458851931315506549397825913663553066336554937383717632315009617661661783467806917824477555485496382798893427869476273147277565347174764761763096282368139396496409475240898066755363151803943144581844349802578392451817309720178865295491100733660579925803597287110330857471165817483885210259165152050086380000414028398181569245945486251289708896781035651571289053459574858097630810106865928977076927496513834174853542024386798778229144395090703190111093405041151409525357384765053156231379280634101499741884381042053469107679893752368742484806524713557039953780378164662077533146110117974893117709872726836105396458708544247335534449192767387438789722243133878952760024148536379403160762997574984819031365289222558525252009946399428392687773452629981842598328964464201144199087845909627047473017442838885215309667792644711182513900067576676641589511817809966662952097910087243671564022171181403358414065220470623606571465507007872316441730231260261759545374823161882585646063853424517714032122295721960021975429991123754149683979729539125618660901889374892431827966393238764390978897966175465584405870191249345888625808686019419460006542553819771049478319573454360245875199672754889027254533561041782151378916680803945514956908305284185314132843797196693401149981274595456231880734046526356914350326819848534148360696446708189003818680159591915242180629058239532048884896693044806962084190115011155380528223844708736509115101820940015551257169017138862677682286739013044973506575733427722450823395717689388408908335401495690021799537766137957768797419605990973650765342928353197843757062933701423731371784236880957176414613506082690967221772547186525005874709485231203477071266487556183077546427604792041945803773608974044930458030576628564896265228362312636407577515828836731861745752513409708120519042813146125802590859439308269743381694223832117240386978809487248052759385389017406246492190237328890047672894905813728951362503307378625160876953890843950541119523323318106729835216050033098461556248892933530029364706294880637203466744080790520895997320417268415370858330763092361664131151190999303810613020069249248801052406860763573122864067756958854708758232789120452365976763722900992366763454199836247088108097888584262051145893066471527562441397843445840635140044667613290759899690208815108297900314914461890615414773689016305890019647667235087043158480475946183800331742819100958098383556308904270288471651966140676972426422812205631430434578177872574452347985284803107915566170249085137996098880199041947113015353873013693911742753401713062977283076768833070910844956464332424248050646963096329643026062516282663781065377047371200734925480331414874512495490485238694366496818982677145631643001819283259467207052702696582490480250919771038559434040549542629554690941429274332976214164302785901015989754055280731370028249993322378957864598913559770625642015743203649864702172989588941700597280950573071719886949999107592630442804821152579317840993115691511203619869143494270252817027857188304803126653470019677706813976207305914156625972509448908702553773682582621308707516820969685036939183466396405514947684782511662474521103241994094294742554739620827899940804257106658201091943568631920807763510787915454553914365484046944538644427799882440085595145644156842946391209001380773316504672725060505910135468449872612872881909543668317601529060415604918249590605327396481395553266197633536004124729695427366936894088005508021783465690213689399402955262692579103335540728641201140999719108785269432671061025729944290109124875803070869640908911923235904283021480623233700755086944159014936706807623864865134196591979252781904332857658828946404319331438236927625670102887197963525288988068485831046294102647568068675713949166026055649722204508640130017541188495088924532218865592688488704676411395542313750983406378696300002591878524233419119733265188512459475677890465904371316837248055313710910744117382746092481140425054129792548107750337046057492892575137486296666562981535880684460353110253119229700300704657332523153399863027742470442218235779835109210102112008962692711489895548504645506774869345503265178264904037050167763819861785831138146129615019655180632254335846154682748102472998606902769629957687060424316314849822211545974285755167594338732724861660253680067907944697682338666154988189945327169247293224294900136938166448896993544515671279085220995136706384344569524368468032070157121515130894076397369536521645738477206921205206360302104106293449357540873696591348694452121837776103068018279608316395215379433537360296609201342404751149188325281254404583643329729536435063361569376842481834866535608227839288641337734076974786509475762508295885884056450767415741619755765918787093222359233681656701867206582144972408192664845607722349278860795299658864621098901444029141739991175466146750536568231970840986703898673350458818012953275998277938525263585232392084238596542377793803053834931974978939751257016894315547332138407885388286598255274824814703636403063049084272754360233565355146525055189211596100168214866507145829886527463343592912662138586855844660842191627176259211467875168258687952219801251859131449766585535645748235219692657109913870937577845786851977186058386218255005921395307786224135963072319558817849192871012819686748756244909078311886556613937578656788624990310355959628201521074026011816859184899756141647631323459193093406716037767145859762052323872657195622271832051497165444184484881339498180491222694398369243982552474755194950119814466315791426190097560924540396188567421194430700945730081934524834901646360420153680158931630576975001513562678779304630497083803944208471880673882737269563908977037896944412438759183102969977955402190979225089570047124039833818588643691955905938668370134572065003908941755144970843723411504173155859353921810247986045956278454814507930544781645300704110244477919584815213985878611051856888533925042167609427679677996991027474921962812375621223765289564153719607104507318049647107934145573247384447750136021712157589423799560421370523935881012108467103016566425962525867584783177461911390166471650590839620663089675887717569703787505589418127133892059786245334697828446751526622414414988406911124291166535375747605221856367234154908281066702891767440669099743445889683619832133048326462049696689443901420110511627121333031644861160506223057401605725994888784648409865609284802469581994716472547772053741233355633405030672378836319862793928421055655367572992951674717105453855289706684175366240665646176232117986106752234607857150606023580881831974123131572398764962251209636051172546551233468786668967937790160350285543603936223322124897508220764591795293150958774751079117116837213994682384320537908406302186531752310559963009052841257381883734996181994480475862871572680388097646052485813205471334170058631912181697281642705316037066938801081689366193279260483612322189079581469171335394764138779538967285464179604586237130223208475573066665020829054062834153071101401747304831689172476002787600937781600419916709362421334780980495224753784905206562371692734326912221043581237419448644431950065312470662861262813469642902017873634376041286970901909988556822684080689244306088041890616559986686163049264773393805619267766719524466222918268138607081872318596644009522146171930652060030974283214108975806332023966465027747111850422190627150801676277233511449176622992143744482480496155020634774111104598092158448864938159557424504610375924888744444475732317270040857612559561673475123582498004959633456852250524957932514979621303588284182163781430368343652405072190864534368944430504154481348322020083626942168415347092827692551931442393502478549357563728181691698798526555935765475050132134699488009246928037592253508488036361006756836840621568389377708954238952607588434044451134502962942318596000227959829289339641090520820811375048423641405003303640935365695502208950528641971211472940528996591806868455998777163088929934808019131732045892623127007090431212403059622354399166216490740603904172190095521519932922197520318828549418766392682397192339348104135975910684009165943617350082930390873161540916253420717842320320920847217501700243517125223682989540541416376444171407448366490659979114713483962840593724418138556280098721280367896912617903991871825994454541205989355495999803424591760125694282463805226315195175549115429610498420994452215169599435159871563657420721340001883107151771931029768554724684514114700993068375498466760112336778806796740735185604298250057362293326954589152645795920442975027496736176728241209367144907644697382965693121679170990415689862626828854747448101132947351164512220761833016970636241842173335098258398031595399502444876091008164907615105554283811215614719124670439692769973557951375431138952028306484350591020080578960065744305087774736513643643957234750522320083248850832661768643821336952348875975843406933076322187591649595194725098877118390103025268279228525077980460580207139572947056558626502951096704238563859571463640644507825548090555542275597471873530403395711248748710947354802047925278756835790737799426028651903498540463738014914971987498470098233269661917642169642880627921783428137006542002065565200559619905866043375110814075012029244854258238804060364190804973764006306716485576093154159203675712905668361405035327802623671685369365204553425887678986652933700157025978641047987421781800943539019155885968722822009813184778378398255592277351393231925951170211121536173777062019457974060422104192777738332906199458373874444058114994615280241724723509168107616305415320194348270942607637615183774863420849728717986420291869567733377372364361694447567996724412362004737454484205063509091678015457481626664427441932140157950178320300609949414737399499011851882417464637693685112916827751814199363925058407750134214838134486530016526632218935426040294338521091640753111648968629560038954608953940185982099407743819278248244238105731069220097532551954806784185558908259051507433360900238795751374880730671731938548750073349732440444844588424022295782623747734114105127736317605361409214794732682833351727056239822362130975264281278086371573321744551154748682889322390075580307315295727026857252298784651115638433848511144696932211210314807236345887221068275305538186007700606971653366396542700006530111549761107563169426711239682999532890379572333115973095022481954742201423501515901228018484316620520437040386101404601996801635176355709353818676995686922735453759366520098776122519723967820177707241547335186914526447460297191720320428059083501549573710762652230382003330667119370274940019844053021226553343474752074133494501719651533772383448625457217569754617891638532144203832543740201017795444012889184815250226282342222331230481344253122533185148571130348456312948936363869221256446934335452669791753822411762400823183780153771576078437700787476194761075861918803852634967936459945112836869266313499860704092088243695065069523745251007398275303071984323846605429398155780571872777225567862558950912074573091163843014238180801717065973878062981037869754276291607239675337769775999964090467271325540814155491445015019295538203773482608063820112589211323861785012297630129064809767279670864274808825948830868486725133634220033298320130843276723172478609503041621218227971926447116666313560432620605211698055343733434576193300683828129596366966737826779450475064797789844199818714241444126803575293946260360593394479836219273200978465007264301618565067348302965924159942206682030625324851837755539666754196694782106823669385689700744578187545870643376410049062692087363854916727603609527811846141420702872541776154031954422034553893969895662999150931794481028555719309560677193671826858429926986171694861738462167532464650791387679914975335521432450564285084646765565562735627387482052755485839876280138507185918484047824512093368286662253301002219228589599996613459738605160134838293263057720839221104636954985080823132991350609817607805094801715632664754722204927748448927737332328120300898610952280723678144374394959173327526578265378525637526578403991828828157486716774660512835044760911723697749181310097260835214931323346472234724998325357440641499323922632544449617497406547484480487914424097516862116396635705676344027911511612254167961596695774128375972778647691628008731389642640043313730762552817865996745348249254952099117788745309440907393027433013468119671901632448851389377997093239165361288408642162265223165309352099227271389094986818387693263362037203214597604818315071001797101602958836215316948938896467366532276994381917242668581629949796450932120216266470214392727009379978984904752795447652191000598020448099347190139123909408267656517946642145500261450128910061538829804502873100324433780633723499441546859300237491859945154346998629695248561126293369269309981205298016415716011566940943181541149526256691737074533611481658441551377697682812801750696732359093078138750853913421593034209219393958056435584215953818092154089588103547416582112721676331711948246975660173438095057483031192170730832393143633306409082401275361211168833169254133517593670291643118962619815347680436676795214035777487966737123958565338997125107212800080078473862536364214243563891189802387321507181300430906610130587924490990767837429022115062642732398895066894313372271669741307925294613177745775304267818929202069771452991609190407913339262265740851467332183407545207403003805491507955524930102981405719251952689639510527119952028540071937195353503793599819722328451814996339745269156436309453436342335960139108768924418669518599352396482090906771037771081053109235116929883338376820738654739134924603881768064422039656509596124887436203766009043455082283187084133708581862454205147796637653946558124417214179380098006948805269826024138010797782512599009302751036879723584897254076924333917266574230143916061185159454242001253552674643344130871261903491320101364153606991707722443177119219148459322646950666414685927647830341343562732221237583575062901436798740411329031039464628938132088688678656890030855891505814350312473147599004478282675189749209709405843488665270014433978119193146594624878049967068929557659593557195735655456189009323069315947231946127830334885613312892389178582467030440682732303068177988569585869102560700359682493376338909860773926566345919565328093486990758717213699255497809826559574810415620441375374339862174784003651974996871851356589964158191116386040119009702213927160756448477818273388684382439799917430017032243023934037383858743454846269354931454774833221396311739690841867686430611643637202195060445250664605158433295194966917287918914969886350771616298447254238480365955481847236446656793983811843213809597420479687442942030429378653151388456208609067949675707128616487045409941090449327364935071806090130571924950330618872478899212787817846587066998856438100773475766936683817926196668298357657204055826658401459504875742532604831041070649426765839268516752469533758776709961066422792075481220094637303105479945468847339049670385584860379468721041978869269135911675191568449430138317860432254772642495856530234351508199728394772088824014261516681613517086703299919612035899744871637960465331908191301109873781481424257270967492746053748362558256744526599541084192259453500086945575818358671514957890083591653655322438458389950297656878876859401574601640925122530573076540819469844978157766775472651188725356042563486343122243639294916958625967147604947894818469229304401684445569344368279655569958456791181571409992589274526889619555292208412191205948972051706596844401091564497546434596157956419457777485932586718178883720865239171502059368443149722627545645419868241610587947211596139512212178467409050458283613510163173984231835143734372802763274914888883151416491225129177470110781581546023100435163011575858150664380034802220021139946153809173906121936178449536919696123436780370749671269821061146588631762328983235855828501057298244097566646604057583521746295584666635477347087091131421219658387121493057986111366045228954682277717447387882650973525213361747830016422210410082757186793975232809532566836319160971168767941234615777820023348766783897503554876921176475204769127061549097708980677239967679551398860070897009226467446050968661501468286934114180546750031738817139667845326778797534994240102767342231958815654728315369121423013523221661861240550885057374056635473854944069131379016922740330926789153712037981730142209741716403538355174351556586418995142087940488607273579942784670440692540428280889216261883284604617454040426444399541804529746178332008231674913083358575461277153735365270010690006469803710589842662236785607317848451086090754834780952580384090453966390474936958060951957974387218040648160612714355176230402337467493708084242051987845977476904906695660743869526828189957622955793176719558346921989729657281280159934559640340661770730179001095247494170711422783457269496862012226927784293156543209765285641505712204012099603352132794110399147140487213503492923474063098397302066933794642088214062111099999637289171931907171822812212294736052031362433092585467390318533642127872998316719800316362226295695438636319642028684633200967492420090051122650665254292375246023049797816781726266113771344356707351565591032356556473757780652371100792845120316613816598988600450862805028440098755890824323094767130469720824079482592072739985898436503944530476235272539198988951473201145271398701359697909082740064821488858116503452693091254328339188109990096043399571161135810992752044301742497102183080263010237814801554928014111367475508953171309783976926862162502419345034209024328471798923916801105527252113005770240318604590289800029215128179381457847378530708580707838525856267018332144495636798795464054789054259130434728606369546364169884967444068070217425287096602114344542825618476559957452838843615160960531200340284865211166787153444178037683053880840884567555490354548698573605677707759215195105564364399533088001826849615735861078385903120368064197840730072900317202913012373383678637217176555061990342862183308971137986029861023576222959083454914303058660112712265600518901156376675361725683541237678470920809325115728322769670883168671572496074056770510323704041076067351228954059625514234212935105396784081455521128102522626332701809025654213453292758109847801567230067945588955698853898670125767734546892615611665047861600250773892079759569395496081418995572016070184093315834161732247278917594893462109679793823539199269871920811627111343100117135943279051629661893075231110752795885844942249716846980137928911109363907419351239781281537842978234090886458410433021411854720125731857014969171852550230353132946225162740518127044082450039939125326961614437216027457577770579010255465105285922153019317227156997690653991826820280051332198151116374395379232345190391370973592750710567040236472158947039135465969170848107216983905425123791355398670052216948312967019337728082728832842921764247216773927511641855792167676200171868933454062181416285582470992807005196533733160736069192853224624986809902823485828258513042864760646946436322938829169031422491438223134639122164625165414551877696935927382682457769677323161659878539004052623865209593307310542727841029137428898526561926023679297133736576255623559611465743242864702358358406897766198351036178072994089559809707537169588270726873091026606816779369928164296926957561919619948659479591144939282434219552327261922739594725766343261309539366978950336311788492841838307946825796378326497022196914952942990357989438940606756698967506873706042172055297908360370330266590984833231884028093294033137514486532752106330798404899114966974954873418654642160530273337919552892270361951292294196017470344613365661565006859390373149834568935433966874526809792639091845084877496589889563857240031707736465041885165824344288706348756361587289808939990872460461509597723455259350354976335659118504909612209533483400856057894042973244886510749197351319681881300070313705352778509077204795212875331149236297331620826933839910148922476395442693864957346455309721284792717851058316490418251926989863749611248107163795226634914492947873254862653901715721901950934097289049154924887509703386540927264696813754459862721780838069228329470910953394209011661970614974688583639758909497718151335886228228267170290404721719886500998987442966849000684178958790992089163799518026324492980751022368564546087463593688442581275804042094318126049873064325635072055285822066271072705936805275430600413841182322232968093457946652166623992969672632839564453308544231006812479247300837449096544385983560160981452974113234686985979928398351192824791713417528210784687487107946646113710488655228043610695568096357630827540152057447633310214594610098868282935561177942553221319470834767347662336481414520576291317014928878243006696695254944416353585362022895380649801997841219685444303173246084668715538564369247827338822472612185408193369843642688700965049171666477403662952788677294922123861030781464628361004858741143395425799746423451444129168143142697317491982120698898058702519581461944953909473501481506608954752573936955931786356626449279233368896677430364313897773839391494233634060307829874924860729081347787296799879451562294622916331983867820469729949837941303358421497004445461796156794116239842881822292635947763401125767628037855170742237470885715964711374862237391967998338333378165963684039842048058887094559958333363411120900450853052240733339838164591663286869715320504377824109991240111944372888858757533426898324937872145337464776214647774189407891333248899075798142671173163137366486503894312180759663293753374872225825697883062330807837181620011826244567929356022144953265698614441054634752044360632641997785437661964106047102871995485051415663428698455567879186385831760932024362748144176184784336022497736059968899833052376498942101219094296353822205797938604235834646527312424457182771574682238155279758650516625823308031566127261101646550121020597762208674242103117268839471727880457447139636457607043281969639885676067008489596172130406982871653861089919627426449835455016593408149919368678169415192629847080541377935771282520756712926112971135038319866385995461987328296580991196637608824330505018788772579306797925382707725740220543628782942442935582755031543109185016698780609233667378773915425834842566159976098130037013693917998544545869986722471846727945719091890010178202056090465866979994679326303881444914446453935651685531756869877574084884824348227938297028605516730685063516300607514248543684065880689125536512773723293546794734346783386976304227466836518585068468361200887128846338847789952578400369393688581500833316593021753428789602219019687747037678212531500699479557161139675837548348213053421478713532739902216229616838101227740157951517875924138675337155672935000411906452671543504972814279063715401913872648165259143847453036527494361451899952978334761571192251479019207115329375423184165457587220413204780470807134056333261152769680744450757979166791926443178460745597031508678892393796105375314047425100243324819742026181420687489222493828201131631897419189171964690927727868045982417818724721380686995172048027994144678712899841932875316033148180441600973379041292761219330954015161116555650516314952984983649440623945078363464958559623752325333038154924102356782179960386381539377048672208541764380202298713701901585646215485346498129722643883582447969314483114036174742816410530717326709901593667460980135818594124701275331189655011827435119103493178662666752383191442891606676181340368834534492963100352509483144704439947607082771291406034554809346744517871135759365761539198366271505971855228321891778782162122744025005510646928448407718308836500520666118615973247073072940048106736347623443401509979737057830689266321054111971143629936976236922983560674563957079149526175690728537480924065489535180657262767348175819486433096186027688670527550181152335171932229738752885581107492579497524365987360691285334184880701695925608893954389115727591405618394453459639181930597991546877267956952954904814501212824559817721140090331158541828000010310013518425938269380576293760464784214026991900375896862312371044942685965520229178716322992516979957031809423391907186417100091869488688205940764921330012546711850545335536893054697004215772172615703922211172372372413619072089035771367973909844558046254330994443492770115201769353046481381863891563478245269174302555733418963598584809813642729270778696750052836991382753610990400103526585461613197301609176568610920505878394834231839453393098226187797060423991492767195213447144093815442595847652869575292027423120168662473892221017286531336191114853570961175660134651866459777212068496557151770108146270605263151278551725917098509477533158045252381658243810025468133926717121106165288376341448312904893713878737868203031573981954382480061519018347907626302530286234324209920145477871878304346803152169959387868650135867961104427782159145332563201563253956412510968039524588478226942339354671562005905445078639752067732765754394424065282608158304888344077364879748675513027129077416368775715109825107891080428308142367473606026033588443379941567010629120421142702164542977069115605869773132926354301916249751746294435832852484870166967592333966442030373009853506771383004472294873036327995549871779336059841521821799133768562381495450350047532293636711777556140440073095253566591271579674233971184185278026726376542971957949834869565429780642410341712614164743766460387546870643440742703457673112135087048064086925567653757948044368314434340056102340261137375654948159215259565851912180192107771173265543027115957501549213830184983571901480319533794287876357825514702771359472801958277421862842289730693028629021733709702432242305327135102542750692003211655808279086481786936203852031265598416322902565961893887884491585626094775739921622970866277865224034566634418060454099723084129132514401358934468306337602332120913704564219942577778668738197921778861422302099219930125459615416333346808119312244890314332183521589698810231575839622382390307796438900594482002397368262786449155493750594893600433237275106049068431839499329973326256789446127730046176221903526558411978082479724638899240401841519505010734052519096246474614497606616912228611467032591467276797665983111453133143425957750899037440884939390774863193274440304266372207382039698913711884085561513113013104698419510338783855126502043517516923689248419262258181721438695609196574212808239708538800637985409602983410695799921276900062714143846614253233699039986530057055395054160055710196762040921610058135498494246607102278826341758103966035479882614126183331187684329916355794235097031804396780463069158085220522422962516864014592046332666300296958038000836384471611404834188929314340959143765869641359535103701852461176279162256191589571555627401505827093247474460228934066075958468075282372770377335650987589303674293173736957390618980768838374744221108284298566340106934344642228553600596214766330034521640442934677855390130602656719583034074290058635892914607441038506440649891116985477106654657054803820376223388545162452963981567961966455643755949389685136472916117774884456528504956157360008523177373902910705390894618568624880840308130464257841043515941286534494870473862007955973189548797967575199338307496859820670628989005742039945516348934902460538662988609819997499945175856784923545096208100319143194003203062169125243065943545962767813094406275663597385361683433085786648496659208717521698382380943257168553404315527369705148473780462173559690018006312099638472567039592029212488124120258009165075197266055320734364592793614591315999403740361728577968290823970888089966344227473039541245949382815774587764444973918021498988704073730948307598427961290737073046116419916465481817256648461670351903605338899013043572281415674802258460365452214812583703831785082504903710471431405819695414659971208479879786878533590441376295274529434246951341388136126123229796760422830901922892038866493843957736289542128237143340300438107800222617013557996237233546662721505664252879765450957203485472709311820085706053049885006640478031577639818200957901305165446886085430465063668003726977363156986879134814301649297126486450071353383976137966629018587948161443243886410608812133402733031265199492633492018246503642075290089529307875341167309271608843930162843162576215077042372216691239213950850457064477243736991712729449011985715447021975392972847123683330887117420295282592418635813375923674409133256887848855894930948074197694974669423582219164656630538078107078007637476166403918346051388628436417373741742185693408503437299592340688453615186410839463120115870227473647637655804468660976149092902788501523242297838071772496644864074258148693173627530386641455521733194901236689842252368740609647812690607286213928574911450773060448687285752889828933776531966804341919391466808622992038077154719917821285387968744039331660356402729937228012641548192388443591391650269307044147583983316763811132209632328188771665934328071976765163808302641551230896401687562501400531050163646560853003939317319075482725922467396700080377210728497094813298533717472222375604610997931143133481003301640227025412182185095024869811650091241530129847753955361482502817632354325375440870618974134335118001269907441074739900058700425968818842006792918313049840687675527024148220394492186724700896323492058411887547380113609543253821813396461437446990637329738339065196074060088545288241969189494377101039203402882695112971122914154677765196391173253254303374751828014153491991954080895989767387946655889145309482573812719143294060703695400961507620284315652233034656370970575340709944285149076390912255675473344376370597316888626985832146489343572109824800015913835734160812195495026844100811772246016342321280821817724573109162069667421225649144993367102148215918184384293662041410418253651091447518076555324949304856571302879482414982176681197302663098015976786714003724721727436865323714173253096996694667033062121585890917761668337466158251015431341988915206602719086224788741714291692898579279589148418142777800618278762901621599131139725369525679475270246139758600138997785914573999252467937139323556142556254792557681330716089979169354949469943346373137783838383663725901465747760232177647454702940493274773826019063081111292181520069404972099222622851520725469743235910950178489781536676500794631261664314792203431250819520975817487947563921072177860853927256785361553203149930177930798280288233368048616446812917209139660268063020119545840553628251516696026079225876948633008853259245397512252667730646875720982965383471115299855817130018238676709359056008583786423668441000440641068234639102373371466503743643334389470999186381929252168766483193318012866052378980968525674763680211885489475855442752232290464991195281295674814155507177511349764006708076865464182374716030446077487525548262594389712809825470525111004240076541891816817953995278759716848369361140007120126696216446329312135415174261272551910335556910959967668099006305083246716834292553449964597390125531926126234597652936167558645535805985203692431961109230365587511101739918850489213710767656487388465484902055575612482751539505327127702049305785038439239487563880114394972337253190188187393458136428272249115085950888860164366911576890315787392502353987517420905028804734552881630338954331664168912201852147154841889687872173117104359970881978531416980905142601883761174483657189171431542632305236153548030138009394083558450425824738897550393056685031068493464493408523367009556911469498908817617533830140732157852780879376900418124845276898461259230077324965623293168599218752110244491450253392554200274172684230608697816593143287690218382389882767175263397977218397687762165216793763104871401500922029180191958160663970821411725458245767538941407102448612675650229378928826145804783206221202629350274071546251041915111542754303310582313506182004407118336290307796180168456199461312961446844223545612511797532358673380889300706809931113586239515927145287163678432048555015449005695158881356563260336727027551926927579705734998741551470070429628292029800138831084237681377654016311139683178215307115812832566367354360196208281772404740662352548384142714976355039658725728604711596002127695613918946065360109743449352750484413777130672489369847513336683696183651860715922529216129418836661356605312265763145517248029971225967369019877944508672137240076890978587053046089209830679747508455646075921594157524829964606233465284574256816520041926142436729847221112266941652867477388941481682630586699523044489753330373835938088441057795072727857035216721849105295993072271950236352833571879908312092111909493342480201834699426732763866082250773349854323785969509146598354102026381024098341925106865651580542304466007284835283157462314453829462823880529478753081273092624211311342968105446417993526797564938165527469745065768081141776822784685064122804125578502086893827422322906796728079429639130884798688026392081534528520880035992581976411938785906840502665411752429444676115876493023691022475911706473703967583880795502523091110873589282353309740669218228388248144089008932019484890918521111702086693580743974723923532892345230571274949320102586467775557843878561949696066686681122713342563666274298737588113536307941497576943138331632588704053101539677090007542035742222555759793835346831565220193742196987175894656881480191621980131071719129907915178647004029255101502712849715273404279920123588360612247406072932816961676247491408683745133864929695522286617402908589548868627175261532533844436777770936141633028433144934594381703980277967166363164904897907909674096014121562801292099742656372940058998004138777256092920989129076694784947112691025237748847392914049902902760360702452317747035873127071138135366384032442094157170502605999471989813089515690873311958614010172253535328558025065242813309326527437069442872270885192155395937465999058663077122159162912107398476206787507880164455877937934333188977236558864348999311971539251579604946016457273050097161758313655732354553027283090542638502627123762270020919307625298242664849289378643436363167368747976540370522240499181063845495992722444586433843129724842020284556074023206435806302574003512818472646768105821738297544156104841173671632870854609381448360128772268680981158250132686182710847319993622801665643213845934484338423066876266693099714333103971979964196986467345286642873953568791520020124254032066860835670194730399369578138970233188785072991417407396689572334476145103883586778744681633653641999039895079553891108770327062315323719207541062465724741015393742206871790732227626766500213360600346492032165765545654210128083151721419820892256592783382921936440016051346288836990121203511141811035987644466212049406094680549508693296288042471525518322825457492624092276563034887811060891509776474149057621085771371083082136433205118779529039650085236302993743635323781194255637902883094046763444436708218476257366536440651167877431529737734333405849260883908026837774114792500234519546506975718258188724387611468600874265334437790122625123111605951061967470284586690628459698929740772007722759725848548508922494260839102727884849118767760564060374687276510234302231373190883349846110527561038857086999661150054638942442084454714392870099271345085660227027055018666555264689761752900000438301265723390707390181692213149493504468189992513186151863359490420508294117424427142403099662720394763230467726020852035908343327556569675433704613606848011355093219186906589190413501841966314494880922420214857492259467743557040228678773754092230867808013418118188576005576762844370555600720673540618126989694066141934324471981689171463782761669858342429404929580515898437474554173193192904091494639401103298629060987831258007607215314104059296011717789182023595492019064003011178756094689438083152814647577167289134024114435572541198688506183370167016258991835886531431865765181162069965658914264592326371462752737170096295916131851538536458768194611180767186091391528033713824481800359029967954963132776821925724127404531995747949965039840099293696780083262943126607756978243946915981494254488273987312654037261704099138207825962449726295560067735415183932854970374353126089157209882934234509481707042169501290422864406397169872219540476730543375560041287271886867303738457106790446901285303938334221186396697737584571086977815570010248673487051538910591129492877593523622626444845087629138524752436822115401532311662039395145821054055936942686228794048973284153716239416718938506874315227419956569644694723343852331808989245625684412267290056679399124852041982961412045069950166169796823136268131208499430744228165760864144568861603209880798629208414167491149563971000710695694771266064993670396385521670004960683373081955568772072155334648740981637930082884469719141238302936975869888079260668152444503518694356597430395571922356377037671064229119054494738729423880177803389932655580229776230521234603989726047796431174058598405980864385648181899806488432952769948675392024436225501000236798928396790933900499656446926323314162573786696148466338717508162647426520404940290112902118702688436188069660139628933367155663190813153174576570769946849444550916677187365705101885009858959047637310823770232697294567024080918705704859061793014983960737362804423752909201200869391355485992072234720294458054576036101498283809232888830126297464752505385354681360262570786039141932463347831943396671081471565780801709950907606759167562955070171038109754291735525519699527830067854889436736977128799356508070051072674652251012986399203763575462393563541677875433855348054434893304893986154910289694799593126095912969716169599382062081882184472590556588875020633163110355284084825815958454499504230689005176359548516316507019067261507505760117948144919649091932107188795970467177978838846126292133730751768785135512046304046013646531719387379769930224460001878914002457466760996024629213230787852571769039413060155114557291894807833055187564276132230532235627763840469714081522179709208540648901436588883840307520375412170721281762437928084377522937479976260369817462569332899059927394225668567241187017981555492304899053706274703473674666354842196972059497603699599279937692205145323941834299342759566510359454903042220498087461189587839833695205911224123837529824187154061747948884434551038764010836618615621523940920298176499477050760413827492662115953271818727471348563249890982330298666346866234168254105629583630813589894930206316387853977930526835509801286414360726309246947248275289387943113177291720262025438765790866571722018214488479889739838077541847625228553791886604234281789038320203129185482343395089094997144819448166360413836443181049993970008755782854502596202313425510946470983436253246399198152463824450474483808811562300407207148967844024092686863077775021984822558471534378180491594021503832420236381272186217182017393126766906164618805218694343736514947880480104560924241107491733456643887500252699927351787948109279573453394088592360126264837741297907462980936065109546442035516333398534577749159784895728761706971829614833472866052590076883087099218831529131151000305951856956436062643947595412401686864549886318416179291533762785182738312568289726277090441892751570688435089224077077813967417023642465398437307485457505277511547425243360526137418897307537777893655034766637367513644456953628932812654767220321004765122977249625741420087874410933939364372522192096010519970615824117857488491982657748364932997908501618811460483742132532063284158781044459642107011397779971799300507519811948625743364585600324589682243061419739647483444112150691860378463421295271856451362543678560329720782258758185321093021489137548659178499138702375234114498725055791497307920453701179392066725958067120180594906958356258580413936924228342496958191298179243282610954683952431508824504323921660441940441055292012287896275637690171349871506511888423803665491565240268246161517851755365417165622629079961317343873581756237880834290537335208262680416938065255501569858750209222544778614554257514246134185369356766342189305660312471119464906694204352728625168113985643473411328715796753388041992407658587579752140174490439540879306065210139162432747187473641183876743049519536542897202602954520916982991385778536705020993230367392597152064378123051126059654562525696826445161412706957381711859198669891266966052869785190011564852667026687689340185077611740918509996883720258949097998852116594511595984757931336050080447090753917387675736287155513681772027124505154309424359053207026887758642961830138479477462364719756862586349671375851395991040231210910973139669474264992463669502701306949846760898707024468072065127426600860562888655270667519558718996609573491709811377336154690008516402782754295847731334628425345104736582497150391781892537121040327204601023890033748137447210234387285594493403400978110579566153236556621552608161889746640217629453535354309664708613286169069884221933874842107996210683152689310804782992511269453952729863375183236742890773279037331427000026946333467136216549896657240707563920878636466009407904353172528249291284009165165907687021036965392819226026174320052689154062912511443533830546784732636327860053193715564891755375345399253589956502633248495929662151480158347761509568484751064842489585237496698758042794569694636842522770881949982343849576516923345419057444224049113053171111726567869035078771455816317674299121434013627459890643600117564231417641529791118563302598087912970381219890377550572003808495116606214284272199399065461967774424746398356672254585325892265966871960280987368337871843496817769531535050387960585832634992673836744492430337399244771582436287981562171962837309635784810753075043740335629990100919329300619268452013448661797211691803157142067600308581741808007118471093833128236895767730764804083303591277651908559881603551341694350105177480033550886892708225817534795803918102594823188608975128997026948623491844816983184547881209196928809166232564218641035002620335225033902554288444154371649349055344025008823084620271594632005312048536657446171564709300647601480905315704871869435621048764016342289474742028645976561830892624207406649777136545599151341904687212142882688062762637335357974763583802664409917511597529387193005567684271101248262436327610161232172817642023274347441192849218927312933020428508235055741368148897364667428915179185528953938369730084868669835546718277657906454447917669072417683755837411596169909106720823208465664145642104484437664855673400717649546253138776034881504277735117004349911847100597128161017286195121257780710693035861885447939325101106273019450541110500373724665818291259209913248601074877104933633684254860864487660225434534794730298428263715223166559739856260570190306013783543979543423456518027591498185345154801772905529583444501850039365559812758802674232338652134534247975941944883246202324781607294543251033557332362419570178453803100517821074418520980234335263988005321336822514046359777305779492291568448119699733129722788679651879268742559893749805654032335420706917819360113197840722011326081158810008627813815731381278478481276932824841153673512781533401887944712330623550648339717744261177148852818333075757634888486222657046639788638827107410602323150258894325043091665943603839316321566574531440186430849102644717573300201798487623753655167440846117028941101146724660543825564195502785844253457340918352087676092844627488940667542194056196068516531257455834982595238398379923657211242549134828533103160847350719264517498520590812919095819068220564858621995158334406957685533799325925263668518301971960101342969557174947831505977678162010806432460144118779852839002815266672953814666293852537922072306065073174630074533694192548133929320105609191027445794978708892336901512368100409957626682206150055112534832618791677575247192260852491474987638503540814270777650090279924248849604542998260012394574685540878901563851818057347712896156239710080771133213112669961823668540140037257612872756350587836330288015666997059844636371833426773440798110865980428921906406023940279419061901051583951624100742733500349318504074887382520793638750405962735574916023860867933455293272005692378084171430183532108965867620342214954817206448989315814395100865071035799691427427967844356951544213339861536029995214258199869675206111695940370035318171168924428491558308873161823740231267898445863380024740725159388657604610014251838209182040976232222748421989552438132542110066093164554187959160557793656470984582546910864518634330204637224962730752203703980176839207075392942497091489253721491822938503426782460114460713877374480589830904274154396806025387577714470403337138480391694135884609116521867266961275816730994396216499925299673810753265665129509106280257703756376560267774189306179985506825658134450017374228205645312260899639519156031261396367420375328259814315265621940000397182288595237991101760150492151014927110916527919149440122782183439373232766433707275916950296203953719356117866342247286415098837555646797683442701393127764854989599181429332370852474514859673194257386940784721655740358045523487233490889086821936295574989848840669296365505003434856062549631951466923340198499443146386895604682608681102082160868305219722428323220883648181891877082133012628247580823336701116888278007225856721800762182656645528949430097385229930426526980756621319612515696377559599313111719758799783490941185053620710424170516112300395411680841428095726011919310299032753412630743472740625243263098029304883542836491076370008811021242949602275852940695728196996789800757955144761102727584112546039746720999824683200396544403323939455055590660961672927524063901347092464898403468574608614811808557500459229300300853299988090138507157606125153391373285657365376418809303593744931495178954945471469572142041291389170430251316487640964411859501520100261246650460665242742852573829013084147466524300819782508538265684282588400398169160554171020642179301848440733482022014383455484454098952564761677297654328725973787982823594541090698534361678254500771628852652341450471246406367804166644015482328358350842300682881617166926463958723702130006129852734296078694746130813499012074264392602298148473029360940462903900369993580108603918628993459378120088119030437528478840690017310545578818762552756168548151459161839811402458639425872664208776109515635206089967435075532708471643208732389902153878038930831196219862755454060969072634245051782537073890923048498011140728709977050711103560743690100729265587494196293752310071212598424513047024842882940248434498732171757241714479884294893189870980638316058674949845253307389548344649068903111330897564802242309761013162677570521362015584889516589703251904754659589253422389985546141041882614252747708540600640564428815937667344948137929019986192421938604200438720803685630522346835420822800787949718317642539811337658637928114207007282082531537304105402774298595895727613276703960880165929629796865134955994968893352324447739471287490777851128219078360456525662139548955016293928866415681910649025546507888994757448880911463662000869598292680767124408433958468767089167254710894209910035260398221265040242147941391627899454440044101270224502331289172524762576193020415523591906189018497578015999678252016681785956115349512528680569320510813967919238153595933221939552688353152750654727385924760240461326242211199699760370616738484574611835820174115229549170340538853934047417966030904288648891226312716499111674810613224771528992600006697997358782778942647346976962862472989798531493900971506055935669730603313390770604364278866226426152586688287643491938578639396767708096297505445049166385989708764293902517562805692892319853088350635402195382929053356783175898782591386534768943811202043840288000101442154642273683141467407727827230707793102277261579261524285917341563452034842852663687675613972676325919711719477924662790873372401317330844597667561100332632382619065577707387714746847006778478302082482294399795014345571278201208207142860972990347842962023386579690842764892236238136529335963124867312003490809793233865959227856602523391682447107134162011693978662825307054526980435233158404556597512647961324924897078987725803143052465594563403096647138504138879157123363984074503887818214263755748017138503404791895139879797795071152061141086537776280526015646709443087564216072587451449265417270179369645065621058308481592910252239528217248813311863741603924758318059059231247277231681833226077452155599325552085374025790476626842126896161108444829930291246171391684940437541165021039970544716125495698311816394149633661890986981200515832860600440995270816022040214026200115479983752649315915141774479155038933167927343877022777433763546662902060385832955788260437631812822108700132634094935704625202213864488078008088817389573908519355274117561394950016633946783243059770220418943814360467633022085074277039175906359295559130824715796535781326460543744743559387326765773393994436089146261444977307632477887686599271685793591166258076761250149320404901505619970822411740130243724277446887242935555461581326585989087934660802726493011979995944532397133307594086545984656250567186782856291350152922394181302053973555168755112270194984807286364977174254436629283907444404515178910321849861433664976507392040243000951054976613638988459052522282848144353506518123998192582148333645978307725455669164269476452158018437898427562956862496202971686204314126520375950239301295039663183977542501398299960745951856370938070831441760864637679441033947616661858273695239813286124130267562475817930676471489185498588781808666117868615095035866934578431964707046361583203825419481667814070899268649266252448265036691745607568313536294587617773315030475863687027371942963924308885321258551896930293384833194383739854997084246534318364429913451483365499939493365991955811723472131203089001590795202863068380101602331246991577518559046207962424101942886662845284534196183556722963209940599745112557560644570584853900399094072642302397335541615146626659597736042589789597843963160798161602397267447855113533139730255637390507343581933101634824473301779146289865723725375272506349647086008404577159826839393771483547547232635229119743635825314282979739375470626732422140397605043901861110640473256706331425729090007150277938724405489336048221863986451435240905602994085586714647207679534518918414933194356658859803267655870010884555832304458287572493862999747467303570757793856635537984517069821235131730557076589079620936685100362495618936361296764210418447468750297310663803096603635850884982856940157763992733399808993023283811676292580054437498247118829866217538834398696696537332790901555493110927965384383037282037402583012992270746820649297544986206132895864662383863823753371072306742264498633108463722033058913406219028385043806666499967016812300646649336171989335488534860757941350181622443713942493745037029328769172855659037356197506873315890597481971964658525277185163485347896471767600014850505695309973916560934774342396277611172204713256335960209083701431068833406448236279988760295276594331875094776177444566625923764896950650571229518791304095000956741674212984791609643975281937643566025917854529957048414347455775012397937044000959500521563106483757874267388879404931049465355013716187863079795677058823606191012463097003798055838427813591769091978135833925580321206592359076074602695877403959035249145782038057122994361386179949139655695256365063633702432687323794969110758678810592376613330336784557953833359735409665587158599639904295791086826840500188465715626775494116894209957425280049082067620650433967334658916913180826910540596334786342115629558651500605439834599369591120643658933219790574369254250349003636323577201744084998634720118193798967142233090678876645368325292986055359370409437064684286638001140349649577260780460414488871921487565443553637023498866957580111510634389150256484393618847326156590435512289895835098279478645395022761427751008454514831795180095114963229762226671014551950082988386070557583537315731084280837873135693151240479588370406327340268474710451058362131636321577236488944875987544094321296283934602773769248330242560141334977932164358635619309941894045967354430446648272263446079874145964223576951352517994817953332598901562650405839075828616792770286825389605550620971459489772241039199514592644862436712510089497379350879574229336576779512958014815767892428373049239617417902858371401062272340798258584893666277137056455457729212552032593465077642992239999478507322723960258158180774982850603080958243948805360901003128313421203121230796536952434276762403431776178495240997233953386626234413286255458910059068441865172591255034838000978694282586267003961145864589133632143760303941155424186062900919197990071261289396992148383991897112334474008893367968314308946859663638048837776653554565570741010458892903438463341714442043829103369772108721208053725647406090528461211274386645430938697572370667544807798207988939835801827030845617507705925189960176736444350674550406652458644928409627303980066234978891759811077257353651390160643827306288418304140161612932703054946226150146785319383190604860502807772903225701208887996899371228306853418813940166716897798394528763346560230354693131725061055025603683304572646787241913730307133522712317248133884893235416887415646292457372528655127222023029927935332829224138204759842693084504570559450137706387435536135269760589934085175196767252460101621069411488128054280502474780008201057695612331470212113230341632355020519028006084064945080389815106433801689673038222757671901237378598253985460300568200098756962701702658746873475440787598102141636011318167373934993387847675706306747360256902053888029212510419304451589933207034693781949312539772181683829164303388700271719601263863494599255106059747535939189344971662604274900493401192552028235286775687452246817289371527023135383682621513206272764016456456489245588728002106317143662430012248626834534365688832632568223942319077109565624651849215202216635649393287529520234527352612328903192588399858769276329824048661099334785479211152469195633898514489904105189492425272299174602969783345619281581566648778743751379478977343029106364072457379029063233950688951222876848332427179690783982594762039457029669028532251254591517181642825204338887922233895927730668426218464225884946601721553972833032069526035553939922820208552382166682237400956677769568457576465803644569214139958048977581627959623680420941528488361533842033092771509693861862190204186821188360303762410896324958403269416136327639134559212437110056586837886440172743287999213092684136313349967471132182355350319315437891889122791760848292443512052988644836263464376199299957183576395429266536824143143529262532614967304366539543042988523999784865871340490758373546888618803710280130611280495148792665586879658355763402320320430218517684040363850741374918564045560863131924609887139563548217867130540315446752869578100869103870901244374196931283391635668189093115482215724481552194850874756388771882820855694752096675684483489064124410717818530065525569441566976784928312034589900862556112199448881168256670376596056561150726393468697745130826922556864324422624354139856366695668097832355822012316724058457372652713077381939146192789954371809542064787689671831122722890424152278494652229071486772137089683675559999398286323890815942718108366207998060943129759763218220688947406881008462313321265162564706371478821403542936608241185825294509660788957796627911298629167683413644609458338606094042139291612950057821475554623955372339384300872913644370297647547794860475000468775702614927852083628742455761544734771336163323344755709126628304612518818079121891060845392215881374577940281723561814696003705477968488523912923041823542351170205992262954711937547267337154187287585350514998421189082025065477146691026362938837014165525888300701054426547763579913167967102518440665341302624337712993359094810859022170736139376350040580787122766221481409233124628173243647033830238112325239283434107687333843680413911398942666428469681719410946588549474265368692393980493174142968157806592921414738036605793603911983958359765258305498994801852450696849158280427482882434233362513420586972865618057650324231052447105830142161773786785161867522356518180742792923200350680839668331788789721689414667567177683989652846714818928022261007208006594885027239656139935467715330503012455557578756214530060009573712100944893880118700529077628805762699922865146122022748400857943014545935030957302783031713820191438910852958387176736484638204465497341203590502991677186192784770612052364945291899298565321391084603353259167020105385371450959920845153935734474782217837701154670285299169404538566923335287950979596331332758546460687152824058743528603456380562329070723241653873346081801928706422426970065433839373455719483695084334945710979809890595053167512903404619817500862575701749676344379525188752512941010885033878224635301755234692071047425973251768535734192551881444438429230647162621836618085126538275375768388934716663799043453603066519744091093348909491655830902280985007000199411260752321433369555172551921170514365714223121869985338741606000655329840414265562760712715482344599283049875682571540068804681264913125047790246287428706824997017149767001271895969912165747802741401887015262846087658796470783157015121457066294150834896054062070215342709560992052702679664223786949807012498774118382665069069872675508897389877857518670015172399001460795680406775684718045824638851695270126205988458374906309126986417075102998863364853186410192396777720019508446255511043736144239051788776013995038411333633195354283910060283090562422626371206020876011036151107949747051918918279919545481845024674358675593077512881462251870789615640921565336760609257524675880140180532987352951872625013642707763664454427409343103079876336003597294243246148963835755086021712083935364787175706449172224510906413685663704396560209978201701112847420778190421083230365898280010200304078187613685205423846316632401290423554955377292274242707667069394011070695430900791917465237923076955555767685418640392318518261471119172658927648005284557622700931619483360681262141484047542770189939609792687994052238119635280153750636853533132398492517894506425418321795045124580701463239999997034591974627001978111522266367639309292120326634972081686328245314204931728750306766064247713580339179510116253048254029595413769612902396907545972415891303061054173040948157460156715329494089848401992316812154716430227540146589904283800199539031189562177632809759883799608558121194831716878839301325029871127398064426286171517559798219276476058454060962425682619626425361171481246150558929476204971962676768120484877454497155321044604044714565429321029556886368014765028679918759725681998750259635143724604686455713349152806670775419129877447115054524696672780139199992535998478416849181899196347255432563481414667754337978166779030939169968063128015951622111457326781761418821174703746997274000916782849266094428506219910446608094197830366971980954097661672263589199200119724447076012263928783479629857853572030174507454661910492304508557052105468291724075917345771994450667441056109640375360453088832503125850068281638954070837141892285509483335919243509307900317477688058304869364451211716188948245476175362052758700913455745687123731179388947472938483095105896239756334689788128163395989038276413418365786766235769468305652480728495191424690097645059876303729892925673722384795914921737543103846966045476156372947854031870318043336745801251307080545047006541986582385926770321119852635742708344309917956465118094108078132933298293661081588805638840436116308991291764122089344382222788270350710532079965670092974218703396027292635450618171019839040114393358995069025516754106532988877289279898654412796226904422528839856179021649481031708150889788664360969636570187513368473054306495975240945757033258926224377721117448494027256929612064231999946744049215678291715666602478361800591567809784681210301587765602604079094651656539487931575325508658472504403002644240332045224508949451161503212208492932811981418134727763186441801093064440895138971156117489206952937724847436689991163021555775385644721084829502056659518359020231251081963530003766988637924362875026075095025140500118180488962900718820735852193430537229156460805264848413349867707005922570969423509694506096498882546762016780368758309008869425486815195338894884757798192597650058405797003414200824971841967505786491688384698916123734505595553715218894794389307642377308478781227488405243804339902423775389133992628020410506105543874239390659853923347161107055688836010557760776811177333716682963946091874936828201534985746085330442580029777650750584297104578207055865980517916511014656514282521101818871176727484318089217789155655577934885663416604344077650364555350866068264833649180040303053771644371961897914425171566096086744242319958534355486816484328942977986101313488273081310582004885759880639500533126920392588691610729735158156016771465525859904194927953631797927717026107777570824623148816340102774372054118350161750333631193668600992223079854125187011601446256083944321730386702266387141335704669334963635690465578472632878215908874095909456709570523231974245694254983068244358027417320121885829764633617640493773674970697314263735014218945547717974773067327755702665010176110626886704615411473257812320637762550736118120027467333329703286394612033023346123344962033036883578019753464231094689333570624034686390410137929853763241612835880401372169019829671226416870933469525162319966132649478084002115427549138760166183436878186804093815986354998465283898762994685082071878216093261122189580695821223808529984281429558643126258391875732980924142534009313449649605471097003797536409493594083208012837785642530068496905710092668907717895285922201840276626403947702480710484527201816868071767025354621057197488137769630946691817831986730391749735728404025713612012795038101370865018485786027600432695157672986603917705551538754792633160860522746102637540790919635736318478534413142948837166467753272046643967265663480499393511059791239865128226528829704353675758762964448251588060990382682646776798527000945720874089453573597993065281841761368697079795580848848296244283525201643960963028096806964732318643008702296463764775814478720418133826448891602481360555566680803002894979289614818566532633742348497133669128569454269933980009239966113639435005058355696960421911793466502503161935972069283027735935887472574603422127709479795840689328967722732341490192327353785641850072434700010141813490917404983950704303476804084368730960758025887727429991009656709662298209457560483833640744968751298012184193033638170639608161540946805614585842209374308193451518955690716775550965316585554350545952602731906113682313595715512677391377921431927809851974675834979669622200666973503516598952490996477448063615916423808011234739599502823163446210449264718215084356160201181101226739895287285053292324450902497346688619271347937491489158467019464159942034406903298337774354923355168886142534719321559050199830670481279396382057998064387745559491481860318559217057046080256109231049598197536112427743344253836787236297544224607403170000609636958449332731414742977470479982413044908292564641903554313851705523727049643052749998146315164980253419080327700365630794093979782188754215373552787106081830816436468376778344723270118344988028687655735816694534639945899854643323105957203676313590473458910302315027444432094598834894643141967231237249876093063368849980771071980664985992472915435074135841773305119474502530001452384462908472547022131526183971902733854654059306848162626700988406888810303226806100347406207098428960969631371159323760315993643315397160286644532992798447998086588042956907226960512986994696422701397286887171526117574437954478903284058980044550531008177339123670707989896501901435017311627193671633547045830974741439870684045081626937160209066496926902475778334285001454483426154201189683543343382427255295190324762404742196246860531327052133084471803018700387172037195744352339518150103669683336197679043767792090829437272322110883820415517017960206387551998817503112057814938796912019297395060152323990256639360330782961775502561962540315425020266328636474719095388169091901439516734951593134388231386690737780437350647658335812802811753222272962418354913053122940473362021106695898018507157748449122249703499573270996986154439432588249148119252897955812808312483161032677758990736066740668420098265376123599830436434605547084233373756795850191056321637008934822269095995902001759193769566864921411290897273104107260124648846098809190164429742043906490934151103158417572044303122392434526889024557958986504880448325107927874751684942087763928217830474764654502261326753346022784349670850283587473616328989912464730949150906312786603331574115922084401609817741141606335498829990337367550191269356729786994336692878526843831561896896471744917163368829616174477884933780164824048961440839269204400086451629732117120071337616760605041664665501108807537015820717438029498815666589852669712952419469277454869621204135515182849703376707390026142369450289348524759583464809310171974789896795114858000803323103984156086455801551447978979051932100130215921452204249882916461633913891114059793485941172834292031869562533973413200321750041036231405414529689222933017726003754689016154193286784727694471208042741429060076711500345468624098432110087011633559686360081844606796590970700687432960991744055096121631135175274566061133033497105947217055640073466288468061974032918769330649987155034029667589563711537806933598406299294535812106627993322926381694577547518526669883593303091834458730273075053900864968731298311961873540982511377180481287213274030661572461372445846325484484855135436847046722046545082023371196274483755709929286100351776242925508621562632313719287697491578440128840814260136105460070817577937063503129510757846769332839567355401286123181494882677397619858675392271169123538305109503451839094916584155714419440263959351482214986823000680402562718268414873234192204891765144987382392019694063918200008904378944644736895508939618287575477928083777392785174864282878675781570708543732950195233456842499827910213711016383385308174430213403142676835232745565968476468685569121086336385177570538316800431124842167019831320099052243106615963621458890751034376518406755524899709733793235634691355416894937948674684832479240274240452912827981263114984073532026359036670749125821115354205283015950946624245536894272326122994268494709824573093347889193287903355363297346909065390306466971327067985287158828842345419043584261173462317821439158851248171604618141290405890601921177060445117427893880034067745664881377081664092916578303433291594646775521208533473280357855434868039020782953891522002910214963652254780040104674503787370306900998096289696554300875492710590301041471651171260950752448999822114613005005100098238655193389644866521115347884846155119291701982771492268431234995913431783172305577286853997010000405596770993567448041963023038193445455269228121875521046176287230739616724894349636545234747339390236460064707945692963317937676390955865884475080466462072482890083867917218154771104371395002083387862560422220612104647153205855328440797645937573661691558924703905433067947780085260065111706641691996636861632739075953982901298693552963420974999166116881610028882166337641273510215901044204001352922845061566090973128086919933147077315349564665261999517405665583019795368061203916616566430292122311406021197163251158320514291271198899170579130500457252723049410762713091180576551125656780863041724124509542479365778801356803942212556014185880104896595393615615180062364647144041898076153034658575475693060608380160928876347146274773214423448409837374648119946397307785728827441532505404568229728853405305151432285104829609602614342321621747355494329642059792287234010402474200443083598729740423668321788666546122825312135978189862251895239872086258751098871916278710509227755818722813937539631508419033052444173248094734710355546145044507271538307650951342461270520287285324605687961431477871049552319177857844939477809285453341554040738137461240222581107443580643406238960962413093836117814118033155083848238309032572273481664598888025846500844735342566748962812669613496974459675649877539554716866134401519539096930065881775878198845297338826530824696842433914749188435510442203192609368001265683816921474638650012903129576962086021956568675756028607793196115758283151625287294675930388352117409305081993977610653585003125280147186958773422625415413560604798778595761403141153378537483896290450947171702339012991273817963769535712200474299833175724060606046272464937594403566705108620600265021740760903499190468602441902849497260706925283862840681941791165142442383650286924328790436075442500547492381067818776703267868207735237041908175891391369541012572322448445130686557477262079197381908503286542760801390929351433361010724509326329083864938934555630944776832551948760536074247038979768355882679405757315310896818095579379632583556366431517098954078546549443697755007202500190200613093794446347881189778402249078811867575213720711776633562371444567822081839781854750132685007168402546560795829210518300469646427736243918639018942851978649131779135198154589680946809217990972701073939873587246237202939483143848078852087112071841300010082130696558680656038652818881111096306785506746589456470339851260627585864472692293686949720886050753251509567897636069600646447492147360037510920404969055970349855089215590960910999064904742934719316701277227387258108119718544085125107297330063108520284847455050510870093869893466496390394350568356307729261409492207768572218431894246930797327840410588244397908843594502245609036143471470006001292651726625492482200489158875453662845318160838362322239249856489288320712619629471320767616179686221294267184265479793529952278440765686193105912645905988542056555114579942939451125208166265635240943719858545711918885061425558361528135479544589807583484767803732031827665399436168696534432699541876457050596734829016523332001095807534006145675854188686080232584968373769673131843453664576297829188988895573553992851074939413677090304880991712862630278497113675620127329552209475818013100958031679932915875984024733062252457384633122503964797881749470765573362329587730911944973118568132128857690996969610283644472954618180925482446871652115865706092688005491972510839884422842150648353785570066487874106526115157727253800654079255173848675014771508651920792523852066985523783871461478571257999589793996389516924133927380212573105707387432141634762989741968784117166016007156736525995482529621269746623026036091522616814405235270025378879810682134376000582066222201200817918494236658385161224673711537658199959060871070988048481177956389246028201195991665707116481667572743681365146315215195740938708582505810811168126064958911187659884548856124401887532506987513037779616146813766920057405219475206315726409953073532628479475945898571049990865311698002952697164130463064422663008312142757614692760874485090792040954287433527327011514441781594772537504458188781625917782814811336198362792619534903678076788430928443255848131543978388801570517932392865122917788521092862764860625122217444120710807634905228938837593595978955398880718658653779192016701896698653922753598164017475633397668852644156088028237016895367670026170606652217531457016564919825084187493326329058937223838546671210635492763923751127932079485085451385661899220080477923288287786369592988558220024115647805967875803803939241918194715172010178300906968861324392266116957832918919254015975960494508207851422439279511048356810792086110960847476397390105501973457352044330987788535254243205918093293291497941065136510351443100268308031084597520347799979078374869130775909474331350073814693655759227623417258066832089705374245729077201794753079085488997553321209276472666174460179366817429180265396694789278158749828957515884093967631705853872901486899348688304640291399180919900208142017532808263660617644884601779152524635752884370760631792979008465220598155532006470378596822839502154782156486933790945433732558522650369099425627213919505539015579872445835836815521823637952222684916302826487969168904289026109127687680443570924789923954098204917596332806395312832515433759747620255951033692336032545141284004572700683089650890506388978282540420052543848267170316200645366644575714951306033076150978629035157366104163324230255755378200485001430209787649040173488204486794138046372381427561684038006557159830201243175004824059961867612713885625660671505660989711011463412267168581939973245807524199482161697828142096200643573429187633476898106396805094119191468333237668133059700352033564092086177166136964844295758657167714110646902062278754108411369093296209892570845481070532094401518956349528075132866642375344276561173379058338539590262637321327668137381372763542104885972902395391712333642983824309355566000038938054907063405790276585773913769780684559592036823322494404470108559313209711339510747793856524438561615606337953794499686306601476916330614765058843329865531569238393316111422307424937674168175273463034959731605050606538511291413284654473825826100305524093862601221348151302652444338672587310847118882068089174285934025532345511078245292217988120696611219303289793161284997507630796301037182782699097544176646920607816647696032881668568303813191702473968488133838651665813447643189876361989885107771667672982486975714702236561322975136508876060594422357695458164514175031177089575885407519258884100115383270495867691119922075515560262510372595990637057677246459554042519069347013282615400904878840924909459253446919681275656129443680692502072412274262071070537773142577133822315226295538831449894044978741586262086904553841530907173098720830559155403629034255393167473367784504465087947918959795136818108666386291296239797946848144302303464806669551419999378373024465577775120022969478276643020705964951744471132379628496881555850340477422206116420556644387872833547711353968110031348754304089922717221462410144634279905149014411879907368257631970922764499567906950018009402724743271458775545219667290211513974669307959804117578540405842565996018973781681909864757556135900234270925858500085179385984501482743981816000556771172719547894264963290830472448908165194479531281445905216376620134023446631507192778973631806936669949149608419695956560259699347964775245539756020045141378874549499671041848162760482668118943414913677777452876187052068646836081938534417329125239997302167622953628898744192775587256004100328499414817916967197364443829891271509559175196855972676042773362573819018411949920115939582214631354261556286859878605698349869155077337185029106897011146314184186748995050734861025278067550033745356653439997489221884590680525297324677538292019579790343246372766259498828505214886486025542852511240216388459985989853574343016610973038554718361445659149938473379341660104015110166997744054665855712372119050867669436552198952643889635494976458607487733700170308564591591380745078916879003028810159814352693089782339469194810276970286252605830404640827121129243477320476571842819712119469140975130273079022429005351315388952329253760272204881109326759398573781654588615467741082038956627075012515952940263342596770274741711802614947109408445639390220566094325733359139299062699310580772651429172536512722504466361242670680685212391021344825108810337982856093134406349879761336929656195753046243450911217637163430152149784494071075098740311345170140418177913692874632680475863292971673909433686445430211475986294826484878599454937403279124391030305306810212719121890058165726828082921262820534756225171750904370831019621930909454817905242453316315783310505902038758934661401117711488025949200186812197179034634753477134548996782715166127359090467171009314452825786192552504480008721039798964098579194461550054612767456426065866184383696849933703760080710252732877897707849287138608010805759667290701646913913107209120354413696979057274503668613575705195916441945191892351966402161364926424246374711299761874085146856252908374232582901233544386811490901886954874358052283171689385915572256188248751167083388334571720413295558730345658174759441775888914903448867711261951776103610836613230285039367226293861418982767051249423641657721265311063098395844554459877996672363872299388721126775092920170483521299101686928594711339068829528435537246291369237011753741207373628261340108807935194460396789812543419053439688092611990064011132808855492903284834073721830024007765461744766498255160550536379189584076818029013855502535895569502482567464290698118184694335213567915191728806378258790813177276318671558261927205584897287016790695893835431387633351178311031513690892245203608505696429013767816787704391517447690899407134760218313821728490125957374429856747365420009918226380222296762282514380769852556252189498259115113457931376795161320635117464098954104216163713223971032144429985286917784615954175421496748159207227295538299959376810357802433171434181409556460729598567598075386241473997861740879930730037894400629783087054303737811907695104091506055231969939522448455615074081657744489255788977002061162511446598093189252449558194784431710760675136147432210378809679726913072298198223282400504582102996779260886236211754043536027336731047175056774789738149338330979626166938159108257624026643625297405559997892092676762408486818773235805090070790458814870790306750941133113411788074360821649785196481540196811872438179684622148048846019633578845534451670299567959383228776043922687050735398350205240851870366499871746723644613654060531895350723469174862222633778371871116481017747966523453294364767231652500724740065049608597376461886252315249766253632198728341700865053049239961378356638451277449012425834038139349181068740808508983725181829196010772868288621259986233742911892192176730434849124372157136429152667389471229751591090891263933490612169414449281433341375984680475612063403236121114012835824777717728101249671248258184569707493825409665952626515935816883872838738108011920788679820446456224809660634783922405683264093411764310964588544315069459162073271898876053092508078370357091060495287968359931013268476853427428606989828167464726757301854872417365031643029829710796781666216674861714199751571993569689198029411517741894838633116290036106370268464500417610219120849041674444361973290245766838233269122981700619065895985532858109202579648507519330024279330723059526246320360341548556250740319819975012096317859585600838739160591330445682275479241865016402571794101178849138423389964857374222634860926744417819185852191005106807742113219077118841669855910570574170713662179819264585124711015865494048840500446266855788529248559443219711457495910777871424225072426422221292441631925929569670069795472733820283955480436053009927345440785820249380042727679587601525343171561964965446294116739001140942217100824635202132804935511873153950318861092055013380362345702133648921930480056102263491869142317238437167704055975968577014436430045800478126869662666101770816425017038078308731551115502873100159038994590046470777339796736283919384286261797673368321962323609734115742641704454760147308613140237866240846753879883566046776578379955597166279232805660363415236988147314432505843994589523869922818177567450418879612190740687358572807501819643855836570165065083760187772750488551317075137615998250587520535334797306816363218947029017976100838370811048374211260730815110527053922247734913635162873472696042191685383585207841659233419743956555094895244846756614393572334803745772897452974330603505962153680647338515519880687076020048713439722889994400762989955875973786903677279469178117096994607676787871619494758390974961929234176545372584586995683676373613090725735173486715087103543670813152243419916764948720933864633412763796284667199598810948723577984429628213969456934273696294411071925799916414134922352887041938102425032791065936203435043255890826999218117957503776700115514695517246245131220270799254374007838750000047379735739180792866970548193877967117168340983006610502115404280975539803002374213169478192598331570835553179493191548447084696393158491793350820207014948445721693911979442146036365561544760087928981379592110639692111559354758563745424511927031067340781824185165246570744820552152043544767468426628255295865971434268216024565450022430979568344913133273870454316603918388315088398590762775740103405951519721817209321311651355771127529652891312989432633860902692944183806011629058250726183308629994409278032026383809552778992344528856594526650018503204982384475453902526950402462024191634362449129963630708178628038479827661753080290066455896754441519476014023587231431586822423389631430696860205965482643056479403674307932282939282356795379246639840405462278884003801933476389969835221463251748774354440613600911120574032628696604842598637126828037126900621734151066653443622332445895680739513588828566027917122933226995326252978168971644785300730395275448989763601440932535905226817997545670462209004627764895442442744445033825329241488057797043998112034683097217514443403349627589080907628521896452243363451689989544497128143448336217177923333008344957037347858843714594260953712422460937791926084906912206071091078077690185407482368274988311405959073243214325727525992007423027441005609940698854426902774853531618148059158606650049911250718016295033300707459892487953289129591812907364298140761718664692129636896941358772809725637321225169862714330688865083655169777459662821269440784895188295094276193679240405961844835704263475269797686640155645428046874078573339753829488045297457586399121132176987537451285874005254997380574859589728563700195377731562340615910625176274696453815766478559875512355505384979792315173871382484356438417741251545393267598444265162818487501182625282140059848051244942404327414799369543923781998230985515051827933626519517286365792218973497193687105523272661642035339198168755162599493253599223154252802677099227624461061036543490025066691434454081077167471295794920989471413447007158432847516249495539600504600867671880166000673369363185292585502964784350448603176907352893814831971838832328242336616381068354155043214818871137495098015631181041662532096157334863128822114257379884815853964905644479724244337729056059331745216528798983843153169298385401030644876607690414132139309380719767862948315963914431339034322895768247611013389903020530402113185540455596657459180307604554578304558611124549955821345268874581639090747789103505149630039586788663942583624727591492333176602121509564476045358313588498494221019029098209661290658405277349820457006627781063531741863767541069823278020906151001231489266916824234775231283309933180999668698878167056814164793138348784687249899844956410533701507119949579194780845262688699043074506742453680974584918023004322105965471704035197889545091925907616888213324505755832202488303272883381109397487932919928177805204309817475840708790544428604073474500522708088168641424455212204111744076626399256430523726040985891574721800199135313978516354886745858877864945786739580581850751684655591945092561338624448903391062715448957456380378867979491634706305199871239187714971749138302086207902527858946337674461464721559476716265948825739809400387123103903941439074466642489839853657753850161935312912687073296318403709386804883870818566171648758884493004940551140051410408898732760686459942831396172083682471474920410893176557541666101801986043492574296452404569313189987543839022097739654022932592891579347431725998006508590286778068820740896977643715548700038867112227055215921945220784564709312318458083892918096594927080021000583857220357282489796892417194834823474916985384856703297993824881798266818972032679093507261967717516471676679264149379759875763334654002626283990167584945426635377333727742886672434765666121684511362933367013668599472514242825327406317469998909595222884650896664061278864146248953152223293482931528193397396437996868328163756197315586654196160039762236396997349730814663425288380611591271070137228353249865473132730519632422170431412724152184609775078338390269501891019105131984901065113818458062931318076314958552950817097557060259050541678980230579392811837212773789269216069453252165869740557122258658485604147089847601226724995126915414886329671818438903055062387501696856563996897615611031600040671533602194370771663424073073593139560152137573225101319187549727457268632596122838184067483556890164060808564448353318037076650764309681275271664002581886897705655931993721768950660661636582042860118272159962142697929454795512625613921861526048203857171302657286178613408136408466117525328531058238969443307060564006500504205504013541954763771723583585751612114166763007821923389750845393401354889352665966519413411799520800841545155055468930048154843651620481827511950282917910831670753452562381056112926101347083460530625865201891295583303065155196988318976669065275912571115711527700265436826229658878712461994114043844952687506852722768130699620324595261806598277821722280635036776866700574979167602210665608032118282065225995274706480562942293989407239356517229423621990949909430349213777952040265564835785640433598705190294094081857910241666888544190770954022047021618920413366386950848557292977523993381885321831130163364225722779456091387712154416695838260352403624467573844573526051109335793432371137665087968731151854706130029124802264809269046035213230227202246999874894964501384182619553806997113981984408769526416325627945768824026248999068444437371541669690991250844849709101841557365428177289784705487071037103876059673561676080298661271082056173510714230518125703908566620719725359106188351807292670154408142549243643822667922530187878078581974469627245569730089996799987809054559120157074977782607452651016441899534202241104843780736224639052793010489299548708870408907942468974658102850685555679426548999709363211706171770556977747067941949468036083555433661184837066248631075814482728079537485924721404195698421235843463148891704442924673146363673622003634916881719876876410488958936234793018756882026350398590232254630638451128147202246144802495665186668344925424875097657904482058659910608041249931969976364037425033166174051808204229264928462462440705904668187149609246771883402647940716537153861190216899999123878501335985410124381720076086280723388464966678872288579390296783886931580554033475553677110747226109673581191199543977950747515195941698825917226975000904713949215294133590140957589831413537808181962613922966286178740577013015106855023566738405703435259097121405182296337464577098452798631429430737390397548982314479653573923671813300462433318766155240779290261193805015452681779067566466429828926836696993270198965086814881158974040513561922400858915856353426656413818430188471766939865181668157267903387926492207637017173691408613008651734465757577601071753627109101989128516331077178739992648582611783965131426191677265101311429069885554614012468726216498078677177450150604843882860005051531913110986707736322736548768553613034542235988388180358151206631567681472421878647430206656984715916911847414382176637401374863021479333729662460785708137324240702190688976887168257448821491009584458710894507844400035032331240184018296302484692719632654940260701597091407509237717658379335823328659266576415675623165612269685891652580803485722483045035851392924485786885681788788280061374623310948757111099405658272587546161489108604309708543127034885800862031379052930511669397161614464031605537194068952930062897727584037441591453306584202408358124254952766861811728189212322603901794507390849907990307227042132581026068002685502656607693876876729676819142873104944505498976388979962832701284664623839449617128996076950379247583210962024139784642474205459343843794186650704780465950566205738348685125096566473895576787409844687886745021070822935029359302855040688676757067802516568228416091909980370123945650283584024927502594226785398361736078441792799229602276946019526763426559631629338748301401587334394011966208980210022538780942795348210875559888355686400630169323370811206440535095149720456542591432565306160225472381486609262565754309296312652878811086317312763983501417144532383830982599331423865555280104534169743371213335398523541742577210520177761965582117083504917382264713596720272877930884865196785810917959827363218468287303511318513722211478455722488757875668160811450403848255280034729063182756218613497362599074718264687463277464550789753911206408121510492888020804443040727985057287907160539215369321528965440187613585425103067452652692504776171015297007218603049599801283195842597532851827529704309119906874409414430873228613359053509712778497609935252761336991761184053596553202632099067925551886855840678793055108889635863072529747020316957505615428807692927542208667085304337996181861086740320502497908593215061342955826768691196126252712862229035043437610637189122817674312032089335966792340658926710772169709149393303259398491847927913054615160807735993346452300220930336346068448494896577094190730375666811460345960306676223222882264329189630289279726041858534000317778235071480684301609884238792951408438823326667804642714284558903452148517779823751907456032235436124832250790869997931271110179727000463863279960143986887102395992002695065748990332405673579948189042176601914605366087006990062405561007881737195370806435281330489554612225823690091969182384413144190471589882334283436968446526674104292954976246019117376451171576773684132982171769514750205405338654675197238532397694733067156022322789866040271338729855089843733416419447626353874917168771743032895204804407560461926867166393478711970262161340854240571319018025937614946603389285345154696373362588339816947781896838666520320028482130363695025047159138298035826018387069903301042302087775566994615388107982474748941797672032374229792483410158408852738229797106344053156093925053878187577367952591100860684608414244178492650187781618525444001607025908949691029912922061768449234901708444226935897788958295901422501642525469201634808721946253883863456050196916668025164573853469053256736041805981325931627830321713610756321699605019395947828560486859069621706514086577542858987528661193641148422780352715918826054937197624057695336425930971958150450343477658139085052489645240321690693126745771632780506741231478985420390806575003975136552908422566947320071769948998238457660461342673137808913686028642101749577111477898034950429831389726722656220511682515229568883141455724273521691319271508623095146991755498997414027352577392970471105352837813706363138171854467986194855027784326809789868555269293279364912954792941579148599801912495472612709664948841501666781111330435164627963577147035098656393482971749572323037821509698705476297519785498990013543910020379870239360180980694115289710151025713238490387314869806504080587926889026872504876149451327696347956330798557989971862484920434017036564094713456851887570674887914248772732836640442499003414632526141374712779695875759287244706308968423328170933482746027034752813317840609420693327185273958692350214564301903050547410692784640297107035765028513309167445857478088863480508431154523710815176446058366693602279897967136105068543655994097241519705210215019451769143938550245937043509030130028943320429437073603184592459466879435262359852219294527918112420853100614209351050524273300187294349268327142653048137797566364520276975208958386256469455842795321026665853738634274429746253439050842611321393853246721892789200380689336834943083805500659231006266207057189187372667459589168468584259101940203333901409061683920725563253030925095973550253304718695019995917963927699088489331522840118923552908807110691372489839693139711714377876535839244170799883324494880415731484373863764951059747662750397724306553273325342117915878692999151864105334970971621934218826809838247605506660794681173717753459218277857038833924715785788271697352202874035497559610724003600991822485438948209810556548173430488089240565489768132256622940240285942057487500377995282083233398614249264976122852251107646718880619624134260335695947092909595565703129524783522904388084449239711322954373072153546730534690292423212466529693179127669777816328257002228871121904479889482242117298740900578098090809318910029234371925870806965429749244242671834115060457859481541092564562903978658402711032005789654603074730546690821976293025102391715054683937091762158275070004148191092328952883246601410265171410246478730543817394810382661194692814627824697609584066705503273439910369356711160277450526237441517524046945254490428883450039158843738259851000738027778080771931804276602552225494222064758031507741536046291969229992709959504425597447756498140670897459172683946411626172665126714121906760611922591015986757977457744772332351749550227100359124534133392201369709449844167198269670110450624053600070008648136239114442379382675714004442201927142498523678425287614061906702884909769763405777626813586328821150440403542108220898285375768890184894051400770063207801348428899473299426911915463713488031169482688995017597020541314205684853357016821885717774050379995857061974881565998663782030034417054912934111646357695568622759220773424952709810873605449256551079321666443818521918089148660751744929562058339855967895145247526215895185060831096009082940410448150787907967639922372742390260870112641124883960983094523419293987466190777082389799814015064873159371367354070706581458273202665420592859636394661307808536202459456568264274827075945650541385952351644489636012243194906166239966534115171351153673846281887263728589785314423780246831067152382765118170751335358922729177225767493714854025053954332659222108403409830449341802648734173922151649941871618281750219179082530255511253210605085614528935948372531980475647383822927650619680028706044436045838565045526063332025572850447999661880844422116575229267622795110101816313460976669037838150322026196427449343324525424663579783637175528444637937960241051389238013746019002894982598800758752485647681016235165318385252452073555973392002283107599370702404218214277300021575345066950909524440022730454132900719589475381706233395265054635415264455719211572724354740810733536837040498169801068464734480063311112889577757040995694072460708501721423559595838771796275828621849258801920348232068531083198666921700082070722107527855196316777784862700612160849728498604656434610282140798320156340406696841015593988978544996413353766393649828549755283075366951667477897067208943234782546693195398566640242778954053609051540308399116976085844943692386748285362528036803374996200093293331274391774102904985049839937401107009544616607144439081925836650551046254073034560944777949894653233279306640768098868077237727316591394894950448226822962104849061956690347313525951916292504442456891994567555604128053635332819284873335521312041788657083850099668197437118624655230420152396661627941720061975321106917385126388233253126951264370207488039954135148408935112140920213964227683913051886818645928136027415712572289979720039892704507742140614562604603764261632816274304030590909349581708688237322014794840372955065678942881531739393216944913827628207832278494410094914557561805574285105044258887129768427132315707573255079682692750503342272370571021316349076853808834347144543767896483940199467302916743532035227806909681783380658286504540186382216460964544322718802730100582545232436076819069453983589941866840892378647311097453750295306197846976650470900538615928078741750765593183275712025416257846414787112373342761363557984063524229854360845528160329003805296698689886610342657731090163561818629461212255249480392266872558975961606090318450900112595116148263970720585860238600370314069514050902355960067169760638910265753194508474154867013558194327661112202084773424667112399439407686513773890367775239642149671223390290512119332878905257160613117020311002975816200001323911754725789057321282206186016175526235103733762592116332699090131330535368109458574530285229069193953195232011174929747712830711460511975632368635490613175231952497585971123726075261685626028512713719999131667642708836722464561238960632565488794936507029090488617018342851778394489662597111810834372808312379077403607583942183676886035468763982069457148174529015558493648252167191025262785355269050918085853331198966514992275762569778750077613486154476713949894859611907754405471927708839843434664289439803592996592302341996662419916352257092721424242755448756798075580164950266161361341856835491573121561035952957114127731503707047595431868072903015525536135805726337358009926116163617044885636733028258098018202988436530682203777162804826749782596064133635133885053495893326524817010228732619961672887758800069650463992359486292952290951633923612479846839923563655034632505340796669046517058213258332621604221215221807105736379751168234805730443327052355570241749682264253697875617236656810989364252437855929193039183886518317087631789299455218811579856155500441181960469695584442043922360039510109890847676911119518183332168371691847811253752940734162094637624585229901357934383181969324812640642698374485758900600649831581059012197568377585137864752115303182055447563223855019314657994133309530440739172520280312823413970872889418053530274648391633592660435227138316503452235196968500623276253570883354048105223800749749345287241428014328951449139039005792173395494569079813696588122505958442414889329259017262081636152682652693866157767259372556735156618731677713683720954989885768359285636976689035200250128850575059368032166791594599892859581314069287692236378364646978133780467127419070534840161911095995629186823924694656667272969541133043199247705455258513369310875533665120783368397710525534801604106775951363849671487301904003547930006413547212571933286932146113890307617108271489878204965462768424811695363930674816762907422290485485608323029475551421593635928346281478364630802728074114744598339783305105983521317961290769401429274167418458205410843429477129904858141389911173892494117433340749317284167735040141288839494503477814152101868271698406640765351739431954527866226639101852657942151811028963697217015947337948107479651253763336561063961115419898600685442022531869907922003766718883923753420074281892391468678623219195923252371658746979610511604531648553886600616968606930291314359885879874135169946575906652153001209358487874852372762206317722926620633606529920225975392755316292110749110702530064348537800899712921964639757740616024875455562324076202026743241789441344961392921106741818370982691888672973436991475320251798094179127666764837973638174500800668136939360983186947174925199346566895115440095953673782034761347759879851188472477722067645888102596574467272130956587041157433039994749080681060492085629953064943451821490934504764450593981716693108156875920213186477765754932354713029029893153275567082771093195486678614404251208956322760687189903499498480134949657050574927305147183912568012560132424687810902706747322433392277089480774599835189920329932972039317398660611211716393561212213026397711125089850825052947038061903406199969679431652119005859991569802442430020270168246766153083392796081714864051616691193735757631071427330819575143806171611391598959680842063420505710561758539200717791493549859089687323693600740647986521375146380884232962149861901685888191210856341521488189080973097218595314083522775056376248340190809774830840711159528118880387735547360144587923204855210369158005823251019047098112531935659921944791276791789403786891670282824515844529467585666489322533521879264550395958315879205737939111713383674911299727930070895965019886539952135883819037488951771591938971704539851908909777114922068400607089488187860899328097118114871888857876613177918670760653449229013672135501425011174329536909288460099333001820896413181028116670327846910341742080329066767319089386359480578254715298355973633596069725912709023317378361180734230714059685661440118103840951894441691055664806196870558059381829023064422240529621903609497792333295680800300360338773905562964665404888949927770159270057666898510003721108788159448307536618323415804319003975035998406499545733893742195093388093721117500458237928753082346549510566547464222186716418893959632572760823275762702118733491327188999020642535318884510814347849089224409943918821206899879749505097765767053088582543070780360837752547200514413689942297669074923468561846704923786102287121114051886138750341905531085622666901134988203779090286889492663196166907592384071116232407525217667156566656522400303013985451220868957918593146609030247412331825496532540093199987860367914382379140137723184952437415089995942648658137615728963126100017080684166185316762295715776261248037724422672127214887524625390736544602816605189352759930157006692074897624137136508795086849936220107572176213523042076149082726071098372511804220139199971823442727981168123132350287997662358745039013994926653477475555849714483778292701207238872181206281905904781131403371420279778499172964372960606062461759630885393000152726115584629018011704685482035297034866783215483873535402509673856273870620249723394487746291893443256588720681302937165109932452751150033125818293779931651670675289683572383173388755397626722234250186994903206641497948510559540241917700362252195229957016074280076480580842706704479955777217422824863350208476371342944296335442498995049386738651698009222743644822657997486657465879632846510382086931930893522606674110059746578379479062376324925383742435778437744023362225760551923700294304879011602239698592682390723434055319778520096015968114139950404577114437128711713812968082343205845760135668484174013741658678407055204088427407374663697340373523130643494523823399890350215064469573031733858899548685361559513900998276356001279165808069053346681185246481417831726228326554359490449847988521395063474453439829339426762561498549948723440750764413590496092092268979464056013334163292929694011341829435380932551380268814252523503103769436651786676228531033416369729266250472460763110744102407879279642836159572342643060649936205887588099558812168440454482321078698472796371202642018996112471839390991786591597614211756146413072478661965112606332416791091668263509778116250156188311842668398832755944459185994208687319828998257504838684707811506125793382886277553847327839737971738273598975897801999062431940970368348464069195964183761864605944160106431621272427316682484476484191414242037167861879366478934603936089502166408059278813755056695499942134057094000678978925492340107440718463794086218345737291542693083569104295137553423851247496118260846155031742939178473934577065478087079548129018540114527709197230038326040738307664110504764278554681931615395266706590287078587065058888520218590125453855257569311763587373141838589373024123771901452445821712630046418218307906538831476825090174318702853337043590298416620299747446029224195627219897678901916036025556296695634043426270753477139414905329756711981128994726329246729520415119351632584143496250471917140633912991324891404527982329551398689871620522446921142775887996959309648721873390240350487268728092935045312231934148284275044398189354172311958641546639843957524118926048488197607627436546171418869091395889290350679094741940949649248500840473267451312659149199257996818212627631840438911645962314382413888060284325346753434215697355514153490881832196612847798388950786564457121775749605480579448535995646056579373263545838798563078395509707843404837816838264088425882420861463161129520858104380231882411775219184146540088753851961148274158998266030229053891269795135757850814360885625159509385885450466957536429691859782749492739596138369518939927606087913700006920784087483473110192411971015184113878653966373570050805790267781304864060632407288645573291440876251822690227046435818459202166779136455824988659558384478183428951240004209434799107162396793418362779961850978557952966885849493819453918744050954986849816575096827640794280175012594900742978229546103155766770738779480377679826500481240491511476305094347870219922744080466623735284761443189577283508214658627397179542983798477250452926899004486238214095899875082108772106252265616682856637451935458276228319466792991459781974686281069609291594866393862347398539969724249317200350613269372077685060266087072597070548901392065431318530501261905792415783385476928135120199538484063989764476583753763241579392453141685676239324315933946725447734939589357504651718608217425075277707241146465963192505807666013776083215466923185081622263250937435199325594174029035591686079194942722114697064777319388294302601921655386948440407922895425875642755804344591082466934240567454368618886277596907363483800059672419015516811088434812305091739746289329913864088248094959014261991245239989302144827347654082386816472740379261433567610326065029236232338359770409189375818312619033677618770362670341963572325020704332343451998339500652092432901021308479106917044061147274276962039798742869557122784413378792447418343974910896265608135180154271340400546677916025166558361511937390816777665990929708732300932212695130860464827849212567035729115983595550215011464941472573915737706524435557230654202227982632483441321288038486337077036018187144799116356744886920483424338560591173123001612654628299878545478297433747391907067723778473329541474248801260967703030178320082863793371685883471887882855867521295069971356242257283030614820722135036189758461680525190454389447001409146337368344961187079987363017455063660012313194531027115557715877763072059437840279305397124579249083875764901846600980038276377314721808103154379236207972489271835541652774226129238512960381340594904003525494729366184884282999925335142599405408330131782875138821832797665722342931871582508742245134792574249707518616621950470942031257621554138787305541877251541507575340583223761501846821582837748865094712384071701470590960051919451328030669019732546199178497540058190392293151413052057015018092436806697777944745126118612684334938168939372483311955054932375882237830398002016056689501939021784970221339516399548376826244685704034545037400832627731544373796573510212042424975265907789503001671797259663419664728003741746306746007878415726369298270226866444974510528583023359374934257979981210653726014381074089476838411754892848431783481042413053773176573817109949818948071983336986776054018712019902789411530664154513619823358273866183962921821870641308259091811956482861958776267163691050622760044636715700379008922454678394687218365730294512213144115022729877082086809994877923736513119253399153716273440479755289365397506803610693799294885109612622207891780527202266000174481183771285266240590541709581226696270690551283917003747629822215489557282410335455319319053129674218424960394581408941691664577758949615112056401600887982643600099078862621250680697592688799986330525481000450749874058845813404396855959402453357154099363367918383637829988531924901018826204964756476906999560005622899440349277440534127921977203495239617103319976018621094933967029962615774587451377245017283685660602755200923067123511813592805461969839139921968790684941216694848492157786329551181658880544277419355383858787748857600711635416914958240698364303392872495655981886581869778537844267864282939020955186876937122440345765960619407504623611113765820891782612071181415690998900146066016222732728636114662972721861718617527872309244265182651973673726693856169427224115462361510911467968034485988217019844752280650032432595718845376548711043229840138599465735946756945524978551741064879110287367276543161235001120701808701322348932115556175786759894920537802080535626820063176799571711049617422195400341361965975956223478762248506213887975539581780060946337195076461794274126225730734544791304962473528014799651365670339233349545790146614332747254763408226148395008415694178453754957476380750665127846754119600251206103290948289705865309924471166972248816805927800470108583829397532592043689526840929993742452933305250316286481470079817131072170837645451369578245512036490278941773261901561863080706030671085335460508755527526358623664308237201305022239505389469156358329521595550120533485416402330482058637203408083234130117450675540036049791868312756092762291267081424365203512123473490411706785473117778108420734730716460864770303458890248159080013016158073112329282668982617704821825795141665274177203285062033902877569925245339283682903615014261746877732067618793783780628327114403687903562407130726257025414404319052348665683728895068139484031913084146529005925730713909744570500391636360773438471783700309244216208368007780090625199430544865376491143736849011068922471287072644465252757957428420381936096619816761777046711546298333298184488394367805515221977153314369705896378924783708872687184901176229191982703640789852301130534020734780834325466638725084675668836419314717155688105836630354779009650220080963260091118990298261907088536625237730063368978700269283241424428850992271369743867747873320127445906710366352639685710681914376483889286093451487755453214922469870797822712990098330955082566119787796066239351820648242368034331575559018382317722836986871647078706614018570002492286406338578372104081095302264295276799397891624648635770321512947959283744045470554341595211882945870630850354963592489234789597642956290581069061818442614648533014569611405093377122332297194073724423981028023173696175731363598462216745625911322520514391967264605157552922302559334567044545319294603544518625630113536984082152179424807019445915606385145048890708524783854517165786924133356255571685364883280397369975069864449663411651930918986991625305280676841307745027334665662658408993405539807689248893372907128776865703903409687587764125911530111947022521200606870791762147119785090462401388257788083141770290726652179113432026812167472798353668156225279832953349972133316678808119903404514396552548048223872117851489100506743505074770175834061227845465015399242111028812317930485904109518627102460031131088188614113918106827008263911308216381734136110719826812579877225076187851267689415339058690761116933852451860622247279753359422046402712160207193918858498140118620162885528936310444673934365853351590092824076102548408199461374538558541854905400262634637654269320182425291408996760617133211512293060075011778834126704415865418742576995165255737614065462237026631003541971764551112014713084698262895412597916203450204098121259924392171816438799566884706340483062016594107634894095326296915363041084225232918372340485558793522869673090849802814183780082482544831600155789097856880242562409999555109704037073846496056659731663116879816702692178396784836052594599535387186566473424688919801356438686597533769582205803091431555764906058803993059625217899118396549228166433375943002438581900304236084572200758722899570598741709738745741436489187530151896873330714879063020710745333089480642642000490598150829843042624556236797897015258006027504241910003212570504854351299824481564683230664219634468484219906216143747488885859714141183265354419840862616289734880527330127777865562347262091665947578235615570200942501604923798072955492124355376318184606543254798390034871367856461346948770784446756158867398312804713362037122974469809514021367884171260678600250020671849736775867100633315385647427096940249182714578262891737682755709514776834550529629373436325236029268762635149122925636230295170556148146427940112548960606285317799887409944963111553009570136357484037312618772054709099933867467001633945944694587644093530690547286262126599076986454811224997121497324213001883803513549746660840903157075443810377386344631411752081097438562116032693880433466756966742515139389207013898844021502339390665119057506900941728326916228698302232349986846507344041963943694041073720028241121205948534137915117841455313388118216417805627318787969119637595094677874358552221533203254272273675071869947936049382422603860326364363625473128698899774574436652779976776351887865645977355272945304212457373090934247408091423512948273023525391048694653485539811562433370582513481317513089580078216290831946738436754680084387659182942252465782872247658439155755983025363895595960655315682114204761401498509246145542064606562859528232815522183815561943611140803834473211937985783406996135004787675163531112996172123420990068655914672464936796912863672149755674095753133056952200566535099631231052025522343473666477157975285566692005665266797066491512328744210221405354671946885042297751236789750298544376260229180448346706421112233222016539802473509794920704305955019493080332735015707624426178495490007829718348124222755166897699545154798379749185468032771521099060185411853740042989782731380721792882840586007504542969044379003344056688652528893138215729245684995934012933434327294951546724148803622273165136673398908386921378759218144246504431702801483055373432513126040048119501174575667369703111843787347431061197363342581492615033458638976236228575881925603635633637906129218854555237339951822804703205263194779790008206628481363154024517308042995363556199208399757074843393539692779544424498077266477765308007410055723011436032132586959985103173077680550429497554175198938579909141261534919223414981543276072164930730741560046616025666064810613785753184716267072027843752348171880164801191427472836198221258913340801056150230103606158091494728614661907086374968206217421402548620303956779222463816087963460265167622117596194626853742112448783289084537104488524950239911502165867477066575092189577600180297703055056896252872655984348306870773255747984529582383920046108899573498983372905412989662219188594354786963042971830240442994916397638861438110753786038460345856206928908513096081377131492656416636320827045453419206524225111439104568095835930199638221383607480862727723611622874583141498068986634244779835027839432628547865175064859632871577946239256782724747813118097653498746004182324014136394585100419063209563769219897626138458594923423010288802635820116819992845414030166337371370561515636843990751579833391254089714590179178575895042907062917591833261324707844823247496661225522562852010349753279506170866483861997659443768315496824603503089500935329298039661938550505358560539820178374917747921385160190520117593894664563578339369400500580391301950400022265938447172086176430797957634522844773807644596805611133049016222860983498956634990458297126985584199177130728604375502711231843140709840905006213387214913109735897259822024424903802782824722999160577678914529731843155308263811106798807077073707991206628546211745851152692979145196565118319280040284643721755904400260938907845519160247073413306737853636138722472019464106037704370868700615550537352318607477126370480481563827227542067993997304266746193649105519431530473168529966409305063615987040523679027872435635367274574444094796110183372068221455873250110189197203832376469378028724858514573337712337342077850788154591522519410294355049513970177069554137900225320030554508665372219187920397177995965378889823950797994113322492545108547512780971876962883317594250582180406104359634269772851304550314922828690944282632809543162558975592713079432912271662410325505598368452142188872230539914792929207437505962907847292073208002052391385192634280768188792577025052968947722106925067543183549461481673401715476829117153202191644654137016605683652715648414157201382737206990467162424660078229825589907661521982030517541271340873643044715397938960127900429371405689232382193871013663768499669115495303250260368651648231692679791783392203454382098386398645554276531721941258301723922042848837098793183274906862812633961816086204324463189420779122886917780346209553060238961461414611690400547491501451807253469721287811094002188772376844938520554995890000836480934470446858026065433078375536933408956569638780840725669448702110885769002331707107727506472509787556229613529161077498655002601511486244417476585137748647073743319117496037596122098359027429672604527888568110441682517798050701963953572993773523763664796750752267371621538552848009806482610304409073261168614435123824635087201596735206321137650468621748561419234129950787761792521653678014626829553700503186631338175174814658553880762806447575373804074555159043880710515054782004972712502852116555763465871782612318566514140282872694927165447050943326420532824387392856514418458864525870972060683165611823621489732609339303961103003624955600708303673229469211629260668378546514471022895135613200141246866059749385216713319224647414701927204736288687521082580001643852795803081454927832534043800041683342185311497724248835324485034993614624089610100898957186331046030282288372247860134131776177857595063952667797018172421557955943541918311396692056351106182486744119406961467425018427710069297421016744829046797751071004925938596530210585221242274739969375174736057862838439535261463925027696905505078398168028726946870208977640778345014655752500282235278325999517103415259456561326842988434169394452230802894061300533276060677175208930162659722925057180541513835693720052669899103513555278647306220358392744175574489138740847421535294333676257002238670180771192368142991666796490032717330699284643117332061785646668298091020328318340375173262460426853997139427260039210872551348066109815343035716031590016540664358291299069774273954954942241700966030771188337028283065618613753853092780452023073140553579457393578988485518864841649841046651859587400133674282236762790713393184610923224100162900919571516640336494844710566026160318048678142052692076891450088196330672918040150528680302364445783018513901354957552216706461823353473478121969993244455333618286729539873005377615867359069950963910444326165916904163126961882492232199385114609621094468636577853729943549253894672118147651826494410457083894310967531904171344294490211430454124118034050206147116557709989291372505671436972808841554881848730409704721312866238279113023017960101177701605871855859073291506331423907517024714009736924088316068224324596484518821752867834137663879317696190781784926202572268882626489995224998165279674552769550513883771270857463222682423667167240142856075115112119400232634932364872021983556629813136754822383127831566220493443176098357461791702961543642185560886810388413925352910612013242228418698209546968227291264756134444192700406324249101848902358918896134134626302387283806682018606152281258796883726648529106416333209214352113907851738765671205887349447648909435072384951190980285119539912749091683685381204329782245361799488978656634003232778144450134194350819422828558755816705185399867605929140323958250200360106997869067314382069974855807885384491773708320759991509774312214369187581801247362494548857135955685671352182666553569434079729317768043744959919607845897471384926124968265463384351574015417642330141986934563434964727642163022169547005004762354091185472260884849465397486123138293540567326564971355950670393326521898797326295123364285572453846542175708340852173084519535439892524539114656653344800003036009750669622697487157192358159326955763631699701574877608592011310964486937515840018551544352595935181979750965348360181225187787374105337710183812076065798786967634556315404599692774357492295959447494543402160074785631025640418407167945406672071648381296287035592934465367535907323960886958860604162051774383167639132237013737399114137126702751848017009936123914623365928940194948589972314655695450316746970037828204904314776972395026261073912111046326212688606963223001503142941369477210456752256455268679232149183657543400323711072723413190326402374120978452093182108318183402883313920819358012109462758864215507237207559019734122141655259621610394642040945562225158107687426764867668942038062271701175403220351680177962335089715160927841871817112264931514773580614052311675466465603326100452106589538759651575182186689524217337887883904455632396249690178319780091324768582930928125144662395818658521070417298215607835533012441757969067247771843243940486221218649025433213417349206871776474693665275113931549315205275688859157290215691158266648738089331608505630978636404078629536679851539020232254750270788449410433902739164936292540776582150890050595451479490244812577902177811512368197714379024032342000755870605194367682418047063774470025362528579411158759260270300579317770741209386044052423351082665821792657030913896091579353597741654869366889582169745085955040128116974178098912879713295526631597380124414485521712116216814194616068133469861870982439176656428857467292090809368228072561860474331542083169287867402970226127320667977362511299746158948659513394263075230586460956864124281752046494361731464091696762290678627982050158285582313556661759513287296892422522344448840580897732546563377291349700135288298460309582851734879869541901217373711292470152218671266384514147915772673321119901028293820787014424018735049310654127568312755913933242390133571711127681103640446716613999798563104878057299005342914032962407604378712028208886938352603157621539372551868841254638870293758092556458407621783812809447404987302903223156436159502522109898025883046149834031172771332078268896836749063635002418364251479486133695015882181882183693350004938398872047467058068501473213941378657812368921743024058851225272600820112985960228387831029463351853848305878938901209475426950558169875969688396229286812380911986078192288412295841552716279912999638721121839906647745996333923891469722231938309091845786605958141532932868972669726602133693923091658552128767011204763628568526891842039353232148421854166326990855718636177546280811381669618352915173620153395380379586228250078841717677353358885695714837941605864570155005004174783960159570206541063016360461612030710046543466746404262871394418142662562253055911219088993898927238807945749335448774706771947554604078766970984335798555919414684476609656771128787527837030189926306762275718715428939975605906589514996479920327550948230075655962087298255686628964336204357089424715258084892595916186673507350454631147051679067081600510741341461967437993939238921437492293178302786156970996044172465083988988582341140725502692248215209028471027280571449039740721405584521232039783473554066649061370967605542590537791372338060110666803783270252893564528599153625638878588647484818705480241915657517877780977456121537484492852029753433100017051255008464833133156484684200121536935839839646853620170877587297945208323345812594471506376029199296677829448983540157807503957063034839772194991848729359893799002536348116958773500852433945619465643028020335859873563658236006215180651986162401857773320340322702578923110428204161425390891354773174424580671537353322838622083896585252286652234647188148070067870548547885639909393555666041007107870155383719705569435836549926976957182279637453619471760092258472559302509102378315267720561814387466307310738161590388930252384107309778299186572780833758215887509796218946180155237500456605182382962377102859595622488794303475185914500560577569989534167744790374275615704101872763509999529416500217618024984434270578433693561440455674337910118205833219479510896624581073293310792389013810855059119334435502687357694019085690382236950121116380396825434557008916156925351978522583847219767295966223645779165174410078180650122108787185752368770853080557354055701941044143238416180624833724639727799090138214007365751325787999053071528206625946422246081641990823398601427757272062148454375399606851499660668980019840973334351924529845021429906019726277392528021423040661804175513199604762085411257951878589729071978380121823200746079139888252313681875902344215528411662553646064036261157670634664349480978716654716320578609245447321755260050921678341510556364146656511680530388565053455048840309709266053333682744698120223146968213784110696297696433573231940626713352990668983632098673048891225458534205612136880578084460281851862621070681649565645288888652639349637122825900135665409126552558308623164656882123272814632483194486811812768366120969445196166864695796096993028854571961513173095625071942492484442674593395120745193992688240993050724624816226088248173007011297201753217481664723867212301462866201626631296168895747288324440872617719593040650202708117402891367628708715569081556016048743904128319414065615915429832756063075082052531067400134510222932964772871610858080712677541587213646978472730808887129637944789515777816829506287733027774388492223411184273948815665816317355579298911679299413394410271889773730638249276631017908582974008966705741939931706550430696161557410473275328744921332493718023603355902555314083963371317785104553647079142877809781433197429735313632569031428362754007563263952705559865191881150326265864461252414575895764757413453040210112561008497802467604531902336291295212606293411380593160073453855352923051350422810496095053284462136451953866015613466431725502707361985785595413450078987145648661869320108873755269384947581849106108200788685191602779474213893498552803426223967804764666155128182785700227567707558166217224423441323275477247523341309153406178531261310965888755409328078482929571877368045304231360323451079107798863637288598970780863411034360832152252747380005705257795588025563448897766509954896173948224789896315769853740105482937818559628401955701595451185588348691581053098569991079302875615841029962154026392660905648391306027371006572194367047545413543785317685772467554284778684601928691278120352232247010146108665911850918762767481232245646218127046652243640512454495805885231118604808877183589067434042073223888736122939097116164122780050419685445658267034464346961421706884593035431205745463212647629277070257502033507259828492483261434466930239410580734815189871511490700415973296558190531341052663684193476657056332628082850098908214117861224916446541649331507071101715613949245523578648776879101738511481307891341602525052546291682367091164382956336646298979425565744776801833212296760399063773813945573613403199237399437082764100255672737357279072546835253938624939864071430003569885481386505085491294512876567028204149935991085569346598931883964436269449021135075638710196974722575254445868818805457360816000591117045670115597060943894242500326882832382082990262087226148550546887136705922691104894530886117490208528685708226269214871757291120249944544292973966024395482275212086456855151489626750107067201397198206612583001750566494188120918996328768515138506564714089154987168795255431668176747139178311418218970548386239174118718602608974655985309939532584434297608341277293978177569612899195295285223880145302701643335127542937657283730242924616096472095210981805925877036402235301396395783968946573995723517681477746371059458151461748603164275992173472190204624050721928207140025699954328553295122613022703719579352395299574941545068667766159032871810028177042271661708305751878451209716039682319204449441807198885873473192132670904179560285770545590252417960732711489368610665133117171511196521263370719761430176772705678120803027851400048277475769171613262542620290351882424538530910951570381529152249419943238301341805905096755813391126725341528544610925241870494283508778091605853404035154274226766362791547459163029252330225963257247446230708185100264599029258005279123131138454987287332636289830558608102308504052343771687826350979928882750735508283782599758290313447398422453481582444968194204086351494888601075427062508991507404292820710233085924893117126282536539040724521656960038419190602124975457908186018689118859846211765538062436262907701940659270854344457440957746846093420899092862662662195693894554272641869245729484576547901423415849068435624349882467485659030185995446119758798035618081388363088408694202156909386254310378688700268134285872456408995134142083894087386683638279194823004881106626913046877265460275069669349781927747338479432269363939874968228267747479463962941250930667317011497131384569953929734404573440034479197388090488280232634808986743154775686805895672629865585192989128122526638527139458723636223443795336581716256748480048351754330731244706439735447526496043842590257697571581175165971124603400965817896679423598545333656269441914538123348467684768851518436542600443189590690187034337917333748156849948226373071160221978264052922717428716279014241266380751860349922487320389992947263018082075174662484121645867752734220603695455654655256560691626963819606524274647633120505075004575286729366152261532938752050084460224029974371365826688784972471442206897169274299540825933310871572380000738143473023323110733269345241269230903062899904464344081316091106885635787714176448738705629825551673021411932098026787666429731319290792616983829370200983753946034013660886331508408176830136676920324724789099062858668520848087634744263600032075821252988990182726039687808842360485793023190112310749559383638028536673143097380065152004310781400391822269125656672205489856309280031975408590584130488614605405370582139351581819787545880643643947270819990182736945176750796301061263692207743318475697389311546615342878891512948977484420441921198900001964745525328685949751647998931529757028304737923135584703198457441466643796186035170363989856494589196043707787443236046535060448016892143881137658366728660210299781073969117337434707789117320641934780392248384149244696305175632125111288638368725330179947995004854737599120333572068780497026407822725980155407121748435915612037559802480550518920939356351357401796470790869221312073275770590912725929726442166213847767466384714438087491880610999424266220917902496140612042663406892474739472016580217376865959788767708836033871975427661442397492543314360979412559075187400820111932121577082112790900039838426638379689926519819078551461245325650935057572467685109014015119122131723380268138911186860754165793278458949518747492529697793532692268858801105351935406094184145868522207166382499851704974852042683505396188107902875425972347839736368039747003778524643548409376634214101184691250328593294232781862868721932769386495299923358425247374262879840751617394370688191269036718058895407884682018737089905419950687092479045630570614454264249929894575138345853081818056374748340456342773784901244225044342813615974504464482081940605890308044596539436527221912736144833020518941943175311950585947334901622389920729393794053220836768244406420885683257891159024632114805871928680731800602784175025973042901239687879100786592150785551580368625877917672037479728282721361447477645926221141538553562263173144077580422512588479347697535460391593811740982063196567352871526418540766414349595140759166739621709050214052705881027343583542060321369723487551379382889801166722145395294129431667151376476982165257180212205596430215238142475122033928295697076361255256979629545628903777010986176814396979534453276090644711442558300268433783948027167729927429908107202303367429177177505631825652166225913417453407724411241486724423523025861961287809718056295247911459599542170484072824532088409945916905220632587450368068002560377995345447543187990620309598696603527031350493957470552186635162605892135381173137516308731912957604136642517115975661390353924623009858669845535559289552704427088789382734890185107035470141852124099877869024202295494731615422470051890025178987465395911487191911265234976572547949383272539021037121691791454176983349052183467877532964977890388619150882861963807781620339878667867162272831952336049137228251020625676057669755692018309774467363232252098443023135004574257816240118510546227825377377086678080536092133222929235612981074665922296924382242533499831002981041596549891731168700004384393046360314962711531445144326262981415509712974641541436285775814112445424083561998441029526987399079747908392706806544427701096909316709249455681863445118741066157167425164391606741196832547629339098543851663591545262570099774024235033035952312933294442806127406471418702270504236756161872851702619974279481449911906843513232902858592808049332696224506508883598311018008509794601912944072092655928121476411187769868390360831292358350324166041590129313888146116234527662186943706035935259927928691905458031317034140628047377264566928852663977188286376256813794541448833054558607046578707593893838274999128422744188005854101965369758820924471247708272351080556822409532357086975811640346540389359157112536327789753534956673699751216392569568994076749757407969864325932113495917031785322684314407076078984695975749218142031507144967924594433508083689342683858770330130567494956719392510952265932625117324500238493162571658595045470064798873458008831106226842615531939602614375444275378156163998350916355919307981977103440323083099534666247518718247231567197788724825893021437536064904659685365838148504158356077582945179806999297292735596389169443418230774671945234696901111997058582009359727793005360597119733991897209546190479059836732198962404133191291303033377387336716450013013164994445392721156425368531651745063648459549094071179215382263855168345575191806069341050529508458822475471894939266172127822765072132550242602805291989245761299003599190888363433612479549187520564922208205285190274649690535224809309805110322315592790310256768533220433706995160345204753798328258769716046617289370969895919725561528774323700033101536567443371220066617395914510009663003481284665721668136637192638543250027547738613977101415615791563004306283948703999746690330302428979798323283436662436334836124821599940310500695627726879190754589556911088314654417258828748708854313112122005813649763033640379122594911005828560218430422934950988867181416250376066884370049930158486381282225122040336819197121248855859140534701250405054682209553205885640717009653192753076907125401187017586163921555061621251679203063693729623326207900747152910515145597227346746718253138201776383345703829813373347520150252617089475074216535839949647735443680649879333996116977554559587612557034992008328912466675645322461685045515387724533571658500543356786291037675424109744394107776401696338646830014610432045173883007829061255699616350971053087302433102961887105906776344862535505239507941484969484582270265643572528274430117255679412395006652586347344228457522309980399518042010884543656368035148721916959975714093921410811822431466095343460930516046535561376972621928257642508705511271078947314963386079555556057932941498598174129495398908803242668126213940930788676803597877655093303056803310012025715782958746316139718360244184464467531975955256990753916913634902750509708397853806365967914055144512848955144568647867881838986395557023212219847702505778934114488599030507030193694593229940036690498295750552467605713452980251895573924177813836233206136475874729073284852300629344718688231425829777544767734883597745379382741868229779628100366909414265250909551397531423129567225226945696022696880402607700725939110771599209667867071707381425504079870324294609358193383759143991497277507906068653270834732304936361465242634742163104437220824625236813448156646977427897703275914888813751195940327054406527267503754088274962973282530679753871668725991194754478597180607075342688759036005187784641120376958467659788109506670873673010544272154688156098753110717593801094743570488956031196660260916634028342035122615333200063580930864873356317939082312496037988751889378524206664509127696192567444983074310849507038116105457685864278871849909882355618852494842328827711109974430683627262403859983947966554781195331878048781622680215319607347475398550043689891992593643195566194252375621326926524173824963922378257014197728424787186516088614225482125927907620990302727786353964391950657206816604705562122862259900841559902306395990835381495614561406775811194721427198048685551231763394412516011417755136703598780319565196814132496749608900896600541435549016793435171990206249509871380496131190502670878452853906983283387270240681506891170097809037231022138703895378817781778640366144467325542217903180446981785512785500501317337769578016781759031044320127927127226049946164718621433527188501119451357526450330819253077544157745771426919892337961690163211109632086818989309879304035738177066460586995233508383914050901688634539884400848101224346894936404447187507032171777111820414044666845637516013101316438858793303106887069402023545327789675214127302617481728018877909215865335882177677981480261104767814374347172015579970068637480294374137840665698474036290455123866860234322694954021363936824183743429238220507795469305755820920764356129475798261078206223394739694376264099573294599921621732203831137102344305901587653869620113929294770718308290164549974747732637625783256054575036921788071061898087300463516619698031111717318048678996892860770777165604691035871084685641164693046682046443087357237923416885434935201725577419619451950548816239306149776728907716267235029156079381486694232481047336163763823140757945692751621546953255655707812832549451689536439642873389632275344641889910676925475421868892536292060817912300022808004083944255417586556097365654594579104698899979616886170680239337152576029862582630181775162033917927414914391606500885199926163681090187276734247839205636309231362603580632589055460520068374402444416620627844244485492047320774772642556125772458242666052900967839318897008679411174974607241089433493782862074955789559405453879331546538068296242935862405724606437511627659510183171574002424556807990825470809250749534527149095853586270771225658628463836498730163450772585110618021489145683902103214287672833174598153110549861427702425289029922563089584916633598255722060394087827454716451728230042391392903467252534740637868804960252322784528283571397390461407002875860715429214280336492937689273909847708171686727638754270123085658088208480070457688986401501992445423120862897341654023576311361390709792699305174269845931570754950600973429057904335824569086721670184928497116811084219879091518984019532298012833814801145484890064192687760540222732670474496223936382019728355458691615690671011775628601570078523817964452211523810443947672502085512044849524338681303677764556828896413594660755750191817983271658377905848188557161011591942405589180153150140181909029147494306641886955223358968820499160143468890137584726765657392949285001478191940390510526732859147948442697420027635507190587437886902995047463622668855167723329371653847658229799077551992620029783059732545009136022035428924230663117433737717743462363333355069607343358384183369232922714628477530146334722952091866876366026494400606711605444549132223548556675408180779079351399464821580725952600841379118007853663691635221934637556104088699499960145418091026746426376714588271912711037448015560465306832756816114740504996569906401115291479123565172636217994921299353981977198870157668404881851865036501435703925983018981615480976697834603431214025680261009845672613326496352703259156529280869759193481538077431936199735880844375741476447160008492893986859495372647124190851069068408075703927264498593921155615167061829519261208213198599982858054571035211307539765677521884036051930336527158743205999611797347274471672360964255701100660793595752350213459955422599330430651730253949865078245880332332824215399974328882678364559342647497644063358832086167511386129987362017573070145699374084831841098867946757943394186041164765446470506093004791767274631944121923468334222911556252797334009346243308101666174308806081726121789921315413189414610056843732554010538912525437730499528541460568508708896012818933409602395814544549981081385172123998484784876099658539434156634028508373412810406799476214123105582294592242459461400387575930022710231047132174336953269425204878658684614489182825519500065211499783343163986335193681412562523882047015928370884999743153977696258380928347970677352173037450930604858248649933382740415023293011054540094923324585115270284960234877831616941194310752473678268989762060251353518015314456269150292340400395376315878379031187235654766151330842314495450357949428592038952975086644942903006428488601657021002705494952682698240187031777358663794363531901134707045465431876579099403693742440316998710496519525071534816404053455590765578187532674245302737519338455395738063142032273598386281003362795397936051839620245298615586247488055815175169768548898565540578392311725406120831110846397584513402813647758557961706251048359537587436981480054462817739849769029641637642712380252731447510368671238949727180970104128212145069254247420019635759436006194192066465035998386413801915033554058466953626951733504012014983683861858789210445486186561163675018278527187221972034265589486480311857205240622984849091765858930828223049752138934365888665945063883892138222950704029103499717411371226647986777055291830700343821300599431879916694901669311208106578405563238895185976616814103759511846800453967686985314250533665134431763453275620131389652510431520870840671233725612723925980396157566810125948716264304265541296902788810983878396592126638547259025935593029705626766719609286750296073633207673263408497553364625253686136577422546993572081402829911554166931534002990600702673086669166435244373187329703188687213615230130218589794858191146947490783628536195448925458130476067630591767694126893651748977449741151182275016867491771268385946461233071593154433646664700897936221245273535443524362256897386397146860590450549646779529464989033980251381964920796287827471345202880974587935312262817595865582264492318416991225054943455821549720522843276900482671236953287778838235332088687670808641353162026271731477685150809237413994768172540344150959348827319913258132084520887040701323098669246402786875675653029384522151190999358077937484897255669954363737238020338962968680328875443550416030988559036183596266898568190980831507748036782038802444262753619431907106275037215992536562838641651607298340568832331709309705131845119418502431204977302084721185019598561086146822407913341872982071269915600395418938628476804735659966579582623656470140743944435252862062067193761750763899769569685417383906736131976406624395108702725282568310875221007106464111773920814883220342397942822259998647487526767262840923889223262659938980701025275870300542982691999298661256489528617895798074806137349570082078677851580876362633639704132330850565825392010022184774413272956115249260069994253602191781238788171126415095061823454138340257513142921838366573342497735512307164238302342467046300692497857394622421410539491657260872909091301567121051278732630790415781262988558975891451909787123999704971917670787025536666207037030416764385523981275654212888830841614678410329909498327209046204696012155273522739499308561580738807301615633823336562970357769278776885549504622924923622620676094617623736223637843925903035050735709149063650178607726068236540065702362273838474830689261327102413931888313038061377999233611027702245220695654948520989993114116052213355892422463022787268154308738038716931883558526983024447523610360362955593024000230118464705268469375078977905622808661663499613261988230946067025315034154405981810002764917345994458477825040195577410862637542592084637415191355875160494278496219611669984669682696393220625723945861188604482027897857885440510507495283092928675315942879242740928683066189204753037193428345614636992526721583363650918110477796239643721470372188771065671347557897069072239860588033846858474274601089884658726854795158164242900886907439491844763188697975801220340312578903701653558178439432643187637088150693892314610161318270737346065419831246933957965663705261245058652674995530028855767618613431323623566816456957763583809325155137592385178288811831947378198070902568132081909610307729466749473359554849761701035246684316295022131802655175991860734140967767855257442144908021638613887235984706591266057357444960359597692182536854680124241334245681986177872306641046556604852374040749082460746617332246189286544699556384612329915128410931622738473731394482217446893373424019422343247267893234009733783385182653623286396989992783984334404722942369753617585842416726089721683384514468991616939459929274822242935738784064957981489040426915682691240577531639255892677896463774345834281032884651733578593100625685219937026224137590512671497123845136171214966737627345720895024044602590997124683349523273215886843197023372171857799018459971478347591627040066821269677639839915314540110393034245412805545947073824623022259534750571422315508535405971722640732193127334811764503885874451427185242710689105354090477320444983701055896787216221894730544205426524923626960419028874983459450492983269535255113575151865991351598497809743511819855474419270791166431167508086433932853309784032510494478024375599279215569511320344664857070527587003101962767408266751629687001927329901792548930238331165756958457010658620598350346653780850570146858075476509855542856324437048019492869262455216287940513777842173202496511641205603976959434273949597196931212548297466658355812319750910503871418565255741140342953473013195842332739218803638497271935719361712239387707401401828964799150920280435253224957162639054214333452039405688547277580200690119256427514575449055173150140132903167097201496460963933238974376005706416207015752536262590068954832128467074836797544731939956672496101101747670758352427911141231676884525504785047717172206088077223459406382552670023034191187901004107187920436682596611049270368791518234346387611031584477270162115496404117655366206086205024468515275941372241898299654175366601101204713968806098012677320803365343974919318137355381001492600071033345748666775041447764131698746217216053274003887069556248684386270782603556754199785949769900996839036952202207955191077088134560816999581095012285607241137500526995532233734606183163616931010398264151113351255969392078874337591755483622881700209237002662693647387114968270881748022690242501026998354895160838661690003521184140847496161168496663173082923628106629105374637129720915374998235060873675117800891933001927082648420525369101849263323472815065311853649757459791074348432558165742230886917233414207851063515978864644473641396534308531239949603288652837414703170706649319602066007033637138332249646060150038250162313662144369228051444827836779785347647646936479008461829481013695533222966404071659268864845080051180138311701218936607376024005846524004873199001704789667460625698661479118165071769012188003870669065397303582158892971831643853143054537563722263370421145071472893062734436599322908572973056312300561481215121732386455587509042672881664334010851130711641784467295637035036746347480912362940882118392272999370842239770551634556378197223844948909241875645130206891033210661350060403143807375561388991195344279377408154526681616998084348368650313944163347856626461546482299590333562197543409815688326919049922059491162753227680664301850543020170767708382171767679712025240638606375507638915762978881666813213242746370439133237208115399234601359809177390392199586165601203132909729381437157178914001140584801888048267583537348889095895277778982202412896622672841373482955738835911531704998198194956553154269904707999751717978087402273284597422042879372042331960625789891835091132505924010740904875016083840584037447680621151863784468756124262039564768153101073534236851670945784300095378559113402815433549963518425854162984918240209740812207363020683643004684795572291760192735026613993433433777583937040527494360072358225651366421862169800070714773486038753149372165181867094806145370420440343137038719586529313906702267370078458497198120100436442721413979201421233798025582446222393560599927992027980259246932301982843328272760842908962840764595483557661621808065718937556440956538572679814721250793954893808089830983141910415797815593768057306170543418303054475995109059550891805738088787282197679205352895593917415109526241666538521946456632718476052993565099078816787107737961703912588667729065497976289887361630831205726604304190276990227468066078244998367690341812187850670895998734580745947220929757362882779083954484406232160765830038570896520964884875504597107652807686732721340970966212039238162002033730715503292215966858700160824260007469073550599609584144559407524082884834227255836122053889695222361362352122832177072220909352370257172808111247591003259862865175647022525026328730580770406163315490875019505316584967616477719323876348347458066254769351745391640808032034664440893400258939969774281386894553403768022565987103661214311321491056845357982281863486035270505029297123996774985116493695361847631305065860492688630097099924445325543066765438418576640073687680717904219706179262640895088803758154754013289922174379658717075200889679211090241785969311362352925206270858633014787333867997699301137397237577668036542665153863107904777514184453242892891364366444828179912387369419860623234172362809677147959303517960455839367832041179259141392077319181202265459233150840625405471677198044500722492770872903370800084147635958924191919621921114826452092693003966309782515700200160524974807726198575791101875616485459778319460642858524076736503405077678634630898947983927258684904125334856429783288525431571742154938061104144796309613254306396597704682628731601214079346816815111754937356526510361735639288750850400937659709334446502033358205403283283364213726405781527861442622760243820340743125172672802953073016948602792707276906754596617553391960252874714586618660751849501403743110171152988480454876207571748185515302640520201919431241432874836560892850037014164351911217903819997792684213000497157853824106054609566406298126558104545702722155504904364254019221181225454950841003339755868029463650804724746155903024514263595962582074692007550999657732775847466872637342318431519477963100970387826937464971743947533655698570860275473799584691415713151251461889834210135881451067672241970344343030514159645824955284823532779529985818074255754129018906137060692920700618437237695162664843155098890092601623875510049330944137947027678603933561869702515721198663508697131974658231768744980640725860710517094872939249380944309269448445993909766664972895402419711804287165560661213408848793028442324628305716399315008708402255923756129142731629096696043812182370606293674383399030679504910910826261104346115179024690377633371937035775804026300162210504616447903096163979144538292886641796417354543171921825703383320581642395097576476094914413310870387862371062758051923737311876868554084291966395486936242105846810198147007787745080824387359539505397427159713980176186901425359806922182240274780496854955004984699735783393429528149044643132307739919559893191118913873064307191060233174290786713264430867041080694815512056172416222755270039146232446032093528055436737853639830097394736420564525452057728357495566032535831826640882124547627939626843603041229172295195912705218726193118813852997975313645471437995459485753617090645806903956064290744327317988134652423907349700338486690074220293018146051325684696928277055663687494250415619334110866204582402571394641112005777360803194385498877848562827018225104943259185125554709855012805334248334211238452421288474813121783125742283028114204808228538418384355583599695999510278396832623356300559656295279522794429021090808952516146075048712171236885255172195949850540733199539592833361513455787375349571452816009895328084621265862553891943751511281433459848858503080502960724888373452326514711372639579557355347326707377464255685701775020982330595062053488339606912770309425517927395104480686026176287069351965950699970156951736593905480345755798320474205602109290755617964984782410643099058124758783688498861447953744555566119797952918545383171336084013459405509187295718221599555217922224095420884458928561207599532339926604447946338576330540487968344830175654432061083443607643557254806923190641749803317568908610166841606546599367556603639221365555735282340885982514546439142315663775349108020049639048475172183799087045213330042939276878165264961697762249800213067116584871995311824485529192999694499212838288400990065998409927771719029326676429979203306695996903103221032734250900598010495101184978526506454355318526911894865565018246910541782970548200178520046336811245788752416644136018564845187935570001747186792391654444337034446872233726838298058388090185377342745788825941677761448379305000815219954718098118651800553861353440054633581682827441564912418985234523908866065315017219209153601813519404343295682612196545809948799807814599124285329353127907669232222210961291533243845389081519203419218347385036444023034446948306008704667930967678611451920665577950701687491055384760908834646432523429129747262266472586091823265603669873907885845344114606643920857712736553675239788566343654591595080858711562769460419208248618925031102673385036221899435586920210160462471721090760230996415481243230333318338328835236591967289660933302388616595046939656825300565741570036205740426396148436915184529667395702715775045027651804732688769267312587839719275015354006741852284072897211571851838618682729058565306066902922621607387333007492947510206211667933985421762906535886102827032187821597016104348159478841639856417603615670732418353194034440015864278811084149313642397364742189821129927900440920689257541441832912262231737426617985786208989662767775176787901261784361902369197969351960661482097290700895247492060056363117872102798244155909751246829745996474803988057858616912036695576743119853758055336388833020548793785542118178462029381194522620321822230453126981652032705455340723139323105601725021475215355856589927292610441327294646621950762863587627265658972856674856422684472862777752564664413486672577499305064260572887410282280750296035196897562327074966265856743081976091822024365999386757291499126418192826623683144552086048512505384190734284681476373312265067404782699346490026811953225235046954732782243741581611438771578398869993589207902363591701090740796829297554417521219187154974881337237852692758665464392259455743273440053950271000696162063996814301122778055413088453493208709985602716294994877745145131632732585666160490490586044802847082638147796684432466696881617778763422643672138236822333695622787453639970220218957311757998989047120002052334834024522582216479952529432120785383967132593546006427741675484720212777491296347060271140317900619779697103391699774874037391583217149369120093497162103404473488950750647219034443203163312505818804663026491746653882299558323827987687718023545528417159016774349289738142964925721616506493696209480894787196667892276319931517147380757490555683423975702690001928811934593270745059937386136002422306888040180248951234582168832250749153837916285532286266307639517432117709702771565649978578180240470099908260920741806190149415271093597368718675184412206194082489315275841373840125235259236413387366971562768910499536732312608582061756384921647188483759954748117008032051786750296623289685462432338127022971615428865719759362622543750508703206073873286615207923927315380779611493001823816930478661691382639216045522422302892486058261976847506851389446015320806163389022642692450879642656220623203189319392183854382971213264228086131478515400834193281766663932280797350945254208808318005780585018680474191748488546824820030871405296892774577584220988689251559993420818611761749858326957321906717578323840458520264844317088091930683396818756775719951792976887207830214560209955692279965393717093542596130365819372574939647035850303322320337427465508989574856945078818704271662057962134506466668084840704396802480971535481571398504667731909253063356970794373055180674545403261979603502280409030987421709120702887770826749197808314067859694604782961148869471739250238658411863321654829680206201100635813011492398798945008127848896605435131472188928393468933973609580410993205891261026388653876312860964243056434514282407127544879150121361788712895479603911540535738768498660335096901745782119172030066326070755378130441540214021504510933812291505161159342102287744053255351369025208590754625590017653942673442912295846344043980932160197017148673939187455881296958236738087707842555599294807642970062534228714187225168262653780730551529890027133420836542018288833756235385154671189680748597440592823186697014995716972067568133534670969982277398620729483053527947403724607807650956177670613566922878016607403044959134814071504853189557400844544806074558143927796760235383911232674268166399239192177010399446643636111639242521035960180439018802020815197444757845572767433521360714608890260047933075998170137145920773774681453305290667856516241556458271531184358688558329655190600021074405973387906572809790187554560406958218789863814491634914427308161568510283841075250856018512519840018485593654247325675452204629420726041148481985025197868990761845230059665502051891275325499395209209706519121518652182255060675549289570671189135960090584684299470509013922459674052411905414404280567851907815907695706119422026867680933960198976533028168143796090002787473752176682856955250629505097945606746670107415037771770737859315133590054078648306948613509282896587383509448725754753200791416273745213655666237983496528113633898293174652404513881798596176131524386471212578356694900553588432454695678586071727756662127086489186846120290853772914173679034196770305322574374058633942111960691245395210263637753806319773481477425146697941374346961119918787239132997994349369249326546644914323999632108331413279331609718200040596727311170373401032638529667899954768576408547833970955753635916279339068018188428638231968478755826963917812075056010341020716068094497220761359628057849488680511854742224557368337921283606381018695021602707088759877429822025463603604858658305422494689824370540626090912808549005274624208081816863907692402267391835664517377843268411006640573232193019765249332537087897451342535844097157337417838807926722848918754705577643004879330758139233240664493576875751779838831358919444297233668540639076014418117216736708893444131965337211176002407214042862641936616819088694984977157595658102761764193260738275286422615256590784898336908964747068034123187205273328328348214514646643861709535992572285394047733268607938854079799220385932538514594233883024471426038891162436373873173834335330214645850293780939999482296575163759725952522640279518289822638720777007218908339563021729759158841395115093639994514718938584135255541251899752472179296996169091205151429804904837491436069039682298181039623470288583906190875205480834446584322144034791480404340619765367370765399995936234958642708078191214460306538981249398900894120544382949842427884778827129619771701752407080522113475264099995645218296629760736361517036098266432852797290696198961417841632519644626517692599909848510759281568489807922755448134942136440368218349408199039951406106305058972092808506883328213859532413553009162811320004586340845479066487579303799257955875947830799893663528189709022383432081358081652014007971170773335965880598470650011455854658787031993225873510549468517164197079355894537262884503147047237868392150831059591253521394049680969534434886173992674723433402957306985304601655961643575582891764509835665632867094599457629162025282699943466309204110000267326371322537436257748681973199811550958871720170211592487901994855432262202252489249148980966486403898573057487612331594096457964011894437495973568352945871343463020300296143772245696589793526753532020969565761135072119717056852334065649018338639717981184277984467797660487897193404374693296924910205462321217229068881099165750911126240033134699009852869184322556930338403036167263864692908863802905656158696014748734772961292015750343978665341384958948496387980302437232407263853881467985779770049207561625566068648826888226006093772402993756925781072869545449888068799759746269337707089845288032908715860139432030430279899832000716900900476321780702366235371189762638309216993263483169128693434339953455270833533656133760725786064689841425586249543318148778479356566683752941747265729344327673891582365706270981838674531163559341576429760970591136591198247569189330880390469118677077128741380695095214043603460012319139042675831765178633773105205184563757606684904158634963108369884556442341713594833723596295449747744836529766090752640591662222275270226480107429599523584715440185980993390638497909237110898948026530434988226147493307760438945139304623953306755846632138532293910009944448147521776869709564775606617200388469302476695505529970917475386750476630295309819620552958409909884030588660438556375597667061146507342013928976444146053924683564071557940157503755170253355730776722603139709125375629976425583681694045885955364444688637594941317044434689881305112923273332369062161299860109506817383094368824579908592807850160021806502072650894581549319885754457216045131953594280664056356679351212695231082244583160315022085679966318524593444192866757458348945059073679176601518211544239007580416495086487486464273185949455447923256893755059348946720826436944640479982249384863734229008695127333196711861529822506518411039287612603404717483683386413682435260951220129954739820819166668996067710566845007746835087005861456878082886755571105608421742339080199361249591870003706896979058729636737870327719581097987803645474217099043896908125721396158131630962026252566504840456890254207442980350746781674664166659548896262980707378352996201435281815890124186652757251501462373782115569778579364007330869041531911361718374293826015677090622038973557920232460883105316729190746918480878165500372862675512156050241841972784584289241625249678624732391850302641203500371533171604691632397465444433460412529019303930211775117768861536528631200989646022315243457515298170839587227059324447400499788024557495917086360414803197471736243129934705660900849013798277623627827377310197955809869547564153561345578122664757056673289078016380408581587973093555494830493851524131037095866430214640003187731554581740938355346869751182406473147920076282033159478202042549000374863937595788524846090559923323710415819026328571880562894593899898371906841957277914140551963561616888289351573816106753496235080651230343557489348319617946811771344517971981727820763322893831915320726649205408229620464186161023659973514795402641100042750635649364950312842664019571367250674149701698651386880385355240346524822005080767294938479706231737673429432472168511900546543478393635572656546683086385592607692626344617418123006636145820069100868511204758477822021685102021535523245543386992698537857680244590617737710908685304944900251925482430994911936019775358251635789327954971824122163033835479581815859245902647290841605986603282610850057882161702629818119688197756821862212797043413212054593431876056411825787218161538735419856177307393123041597807011303365270738422637865850453728177939466329111131421811901754699205129098643785388637999999129381152669412651231342950258898367844824812062851584752587868098351985630434984227611162480035578216583519475198392927407445492686834405878073488127380137069687211952276309035852937142518425912207427306486588888931110939719795340234743958260398392930499886347492831340317547437339375800141868343604782533592038167725891639773804064296795584622476499740787566916467161983189158248904772804279513648303789590305642372328817724810923141730583354975731949121391197885360181847600806142235576205015379681660411152582896917354817430538755006204990813641875961768137332354639665058082731616448069257464195330746156125138422564605580264694919474283624291040743702631414100191560735566178304789481747604430815336345861243033822220311875847210810072807644390047760414570190123951633312008402042555018132795702055664716718237887319530167141764983885554730328611869300927282431379967736211976965274684734746118561576818627546877056700690605498981845078997222339071772772019684264201925887433737225952376650237371338189525440376414821077571504709143898854644423925148583851250436303966481579794026480110791144990571467603204877112250934521428576521402699243436319099338545656836079869350656186558126720944543030683780137638443880294441454218841763171775521815612974265522339873314400857916069934855267207132527273592981573499207754113191715737677492973468656607648162179751514093913056583140180944736907915802182001422690617494559114173348761580886085736655415776594732595695163124910173336293287026046364717989378837046509847893509628485198586332071236914124677845140390333633523464889847060781110277922239836004115828206152869429750925721671449192610973003227699540956305871947460495949337831508324132277379047731495206069260343543228382786031691207134479228540458592256193500415679869107253705877732483925437850797169050337534299279878463515221894016886290833689745847277387491178496291171843724669654038409370630559091701800353072173586911066221222031535103025398415290809160413739945537880332083682175523767182450102913119208930102222000982279235052368719182740893260816127380237897514368616828099764409626000960763361201772600277333622663629440113968031239899430311068399387303903053546191245932403185078499933581289601573187406803759256752875881305382457487486038913093067350133897537428079763597986004792383241095038917083892927041490411245809919699372560294169318484198944945455435281675653802579520461080408365177713071966874056554185838718916827751696738944312953174441845129656331927729810801473941626036792011498561766632037408818487355757113918843534560757907859892585752511386993446149136376016269331534528575157333914315410928217585574740480671827053141634392921640512623467822438059970053187592286809811848339547153681369760676991566375477454389248513395009128806871653491098111288251687166797725337915939674922618732422140401352061179358786762153429050069284715900293942665641163172475416879989645591301017561925236930117611778406170857763171699574514780168826935464684117277889501165728008627525721757617092470167567962430117886794339786709889420906697123678235758602450703001157114621270419684507763342660698953605272660670723156054043405966016512943683009983737807573592517344179246888738184002608567627748380828255941549311520687831413524175397892049033201417558997465102126431985903476403445247057165552625493353316339573578061457257587623492420067500123365795038244360818761896739330337251444018309959491630455213664478626102666010730815659465580809686117651953696754641807979802981415355729636712684175633709754714299940161383514438317258035380569413929963099423783031729871460482842354795155601673391214649976962236010078872526708487979224465964908220499808553155830419859242131712966601482172783680205564339216223785357725427264779987398258025186436897845631871871079316486954088292814214047793732933200048404756591188247891376657321235394247336897796894923400529446012624952407275178843674624161249309814651542323720453534191264214921585806619925867355493578312821652545574625166285222898241418558772962705142409566364572622077229639146444590306798634622350387234914484362118908880093165674164218536013581316090765667575549403593072912279504224755358509072761066764761850214872606989885824087686920943669044425679707608523669238581913609626624414421231732883051677833583831138403255039408931409506065261932493430461026413470188302652874059863364479930485476136557962989618907195709426873698934197526610376884216261950913491871112400166012090111228870495615017499523929225239893906558185390150141385580281723530008167677508273549508171361419598966048584671144705900303078472513543869336769291555445481149817345863631388616470974943493058987640052504040096730774313000597428556621311405590634512207537961483718840622901933535763213963252036809166510214965947552926603644293634733766183299217962258102357786921606335257583067444953310087596831361932542787616121745855994702221164501453491976596131108287433601363438544489759028682929152178006789922720479516706815835580960191596409992084644014399820042161476037674745437176315625320743011353589811684916132856478223344173601789638109434627272427869427991777936502424062937787153025071311808899477718633807531196406129380624399242793584534202714203797138588126961887035614603352429040964847020805329110470538219202338653185533982754182440380105299930729352862102414385827136153019718760022802599559068055694604356888616334264501501909543973958975098441515866405524218987844380972878254835120925361618861187859623790272740551234554675119899389337188440039681186347994887064790603871650049881208521547248350786810066921385053245607659023650612754250120834295208171354367743455829620054985878313012374780266432470522014061504137831584445309518971527152357251108240062338022062029229854348117296962767756922445122103087186805138168487209627965759582689395575680528078409079832866662174514520707893348811812509001801320646695953585117132509381399090056296081028014488236169393341600249842785622728391263855328421183865054214740543145493400260833095694568074757138276726974349182613705608257717113493506812802225029229877659214312901050713998474084629789501934673234011477271070765564204836986478708273763629781812463043016049207840710619363620264111041066027573802265052073452319613945537429905241136253514604031187257315107158455656555256251166578394281157515698922812674622055890317196590352282565759809055312675620662126862913826845628111661792911008656702047142919333769303984451548904913886913551389722281016602370024667936674125319823128850725179440136485116116121826102430551680100986924684430260994676655394595878431958825232573681745348198925059042579531536102376769928610034654144098135038762176815255499512000278728105054698162708730301151295395924921561956807845576261548503204986319200310396133491458824892060329228120388605661881344611430168566825627127876169463492829135443195198919452393930883641444706709158485364203154608664953840448604020798943390765508197877741657045377722085941407570531449311951756496752918197144695991117142887667917951451041804364796184830050491335989590079074132139960701133548361218047846026278086906413948662660536496352018918233421823645894278558828766599833030649151385224286511559141017834780942124539501973966306817261371808968560697178150202723387145054883783193218821579641925957133350326672760177170179736560704805205614889134230683370503624913317625844328372509326848669025046605269926207182048682857132531490268738493909362628950753998628958556104733678750054409788720138057980373696824460471831990212275034306381480245162612279989012693595171772806594512790268430881416200501058103581632116690070758179842937346306237435892789090762372563415516521421422785014170150999262450274498229255898635082509905785966830857847116734963149046474924695745350044836231037502710225089335330528540755331325075756114355562547224336403200895392655016643754526958736534737556072703594333060849165617524248615049301499251893467605684554546676902142591982346278647839683138755674412734139615033088993566698669099005034204985457074517581452384087674733570828991746383776577047113031649623651251752382091637371293791628829065615027217572269318477863647842567612775648312912658884323559998558005042291291223219481221325576468969712006771077480085094134491062597876658108656862899402597644607860845554594837765550345634732929190965579652423900065342826136525351064550167744881569239868917761659248048816679626544538444758070115565600032164940896523560189807049597031416969973376571202481673354974973444562954860266369868164107520163284941436683946841416630030073397039857435877461453526184730951622637139609113820868136640781353453667183064751369351472978667987534404004201565298062782761979612009019425902922739428457902844715852935108568247665733431798617229863943983816695397020641140507325653413527765900232704838177233689045240151360856775666285562601863591247523885196948849091874515058533931761926944943693123193998123055143505239978472061979498465789279104342223605508009265112365920703916421507799043699668917708333388120808234811549661111109878377860386223063823628782704142257188618535743878468348492072930702656120156040711160400397106250986440001597534183557252465402458445760146776920455340911922675005535894291303272030779180861423044663431286670246366143693238374130115377023506859552727648069300531581550008218269509954774712549356883119170775978715708100154824520077173917978804624529856114671326202295345482969664416537602258377320126283667187980691737987319429327389085881390717417495551029200573859016912862109286718265622434672023951423828478641529602202389366456811101313378749731537012712667836680383022219464360589389365327387706031791582527616915405617472682068438291594594932691509921819536855417858367715552139879330478481047548551259440689614632682082835931731089251106324385913309871762025806949943197414381398619161731242192689125982142337503053725683672774818405122320173036432590756035792477038750023095725325183018244523814226937228844959100090186667464854574250050172502421643769521852835929727821880968599089307868462825411100191212697660536551208386360661352249969847964062093590808672081391351629585433603612771271582143595589219850660953555427837304618561401918776190719325369713378842504766850514253013699432809557581720181773017195502038654421183528148597933452452400878007023832778491255932816361570372258670302656182248849485476955020926793756686650319037487510598019457898933288545763105387008972446741397114637972213087309500246565899892847029052208408514235246450609829908724145970003599308837336353319687745386474090438746932406036716431070360055293734254981710939103804128735224852891739929435425881124769248532354090052558366685061243117850360241845541093160162954566009306319045753295715599194574994620247835161626083003572835590350164383987028231609392538142748091283509566960758419963648423138225220158481233502684904519615876140367885550569100484038357311376181752399907742709274861095332295967324822450221586207735762742582935626513205402427897738986992177849463595971827463418185094243141022264789317021892082396838172396967327960531560551308389771434395748679607037999495576376659785787181777422575980727980034689901395678500266698188674745620409117460115448106430921880649587318130279729614745938474056890120778104302691972424182258377194835680058388525555791802635036571304857222056765205382470373654942582649694920609742680917003145122672347639765617035826348103209753719461599220665146141170820791992453767517186517682232936180993913361486673948243125789238767642011960685855035025981812151529543020227874100926259929041740094897370729618965232933570678686492697688744209063471682952035502636551420812469558083661543944960729602983846992229071017977455836106827225075080752422858920285452361444951219023731984894987159780277368669397189941654298634213019533227761559033411705179581532877901050482840350568171403260944756624852463224431617490514752697821526457045489772452177226378582551481709328890802314930545634440524224012665297851308012569926660203398334543643485497818409573726815881491705449498094380495644104699215486234617090449006138236108958679165854195038766029287740389774928922814499698305200191446926232669078826776418837828488550228658239044951183101231211158981909681759656378845303915326203854189226696267652352764012225475900293070701751648326959926849083173592931274669152467102353256523456860160254472137108846826433358225076739387995532851812053590768897151692668566522351074835363228069556951592207018632697436322586045164355535784816594441660265275943171626009146930265583450635384042417322667751640069680944641809548038795139999159608853774857119101560946005572371701521247246665825958122344236743895751597821310645831812606254433048033239736357032553218492912667423361468096988727627457413110086627157673161608163822334247359174534222769480816479518887286844530999670137204106155869884158164986417948112468901460460432411588124840653151758054573459651306474170740862549325467025615417442157749993792066362083440738021339802434146646938720161899459003193668018810198466860307456409842055113375362869015198116602281186746870311173105001049041388280641247145187763540863801102397786270120207568153907985337362884749707673184253108009543467942787700228988899276106452187814799107667312826385352789041064107719836355638392487613982842155747044192872904629349464350469984588816308746216170937223758963489683051991573836414756460704903602414737952291550785765317536710764258346428580898347960307728163697751989387587492898336763343642883010477881912405559982076628048393401638811047315993331571093303360673156854297070618292607366210195813558723363049202080270908687499996083398510604059038337522300756481050190361751658883573346794141077310263497672531969663732635121412756828333300929778883776584957527343324650290737660809251303343253507995380027176533208852021758063197862787606392139319022748023507635943581129087815204230665962877739437975570010647840321857421432239662378655679686533345650839139036458615545491087819680184220850196356555335198025537131346373564489572427798725222996798435573181190333817412162694990872477125600236273021829857443202364225287686753572447695132730382610000823737465620604471336383164349871871955533100266848869151159421531656446499922239264967908893256874346636556596618374116309031560002355853537434227095063086016993599324281005218453742828619744249664613033070032474180612270362174049369092182679295979294049341032334494140945950952110006221120855636123019738780861940715307348790450204985183328677759707915040423227938950013993441752455826319229715992502497205997146203293588951809122317982888055502803242646837713946604527063548657264045637796396190049772503567575739245811315628787660513942606315519820368150777522834438326297307092749055042385875046559918637955837919869886913749614982540975398467358428726222196325180338594116110935514957733688203448274763586622679714376322393191820267957220244127431713604345185492254055706522166947050553776029042298868832397088273983368218670922692795971442293371181803609677715355291988480934395029216857872912512880911552167947573491055150651920401840387213547528282504412076911879890024518378755328402731206044430134221245445513249088855554580307706532533994365767007094297615531927254961552510757046558656694139851692791765761821882609753234605751460260807853393906205165296088279247812238090833079552085865670591405802927466627987133963871440641512126942708745651351183067635028585711963113063557533503495545681733077809580509796661626130294851073262433464145880897202978361598754766669019238038594416384427530538334531807343285866653208416392684788841286414014780376196916386259032731825868217086371010859743355613249758422208394080904885606470442824418291073883778381383585381814027869529291500079411818309869235959135495217828427704282227306161722337365708946472082976196748996091603613693483401502136823054830686621795332196591870152640618049406103323330825313680018149382887622988279303367055082494316718029700403921096821513324303504590721202837485710779949079403385304433257683486352327583685253062482983468661487873212408010498002917237198986458956024469180059704057248948686299976820898038457220411835855342917367763270665286778503912301197440253601867821746759242127584678455799091680127422649457285925801494499318920455467383824345406691643414429961347377418852373422045008037565785896504522006910773116659358974595276877913260757455614830421746555793985818385285472521548580038929444818567073798933575912109489581848108283755452761257592121046608872868356120491051592959262663373161386279150523719961295450993780322451764380017992053248017842151518773833838884503274393180469580155865445724545387078981721219986753514841675264054943662074754584405226892513765625255298478414799681230414807945485365942586878304926148709492495003495678821738224891521687773328148696366486231631931748575909978360563722227231503882411023491834441956788301422090768343370545571204998782475015120354909153416719904084402879679995647523182910899823336464683603750719206902344062362259506320557415841622853606083790360624050123013309644806978240654378096419132754778687359638390940189714015802597292704575047100038178804737838279189838336194161454861561500029762154272026535981775739163495051928292246787830545683695565760167201302957312806644400749747533959731462610637987791916902495283683586831293960194321354161204062150950077244322071876892685503010659859644696398295348893998851086571162722436713371983931825889925165386569916954052442775263148745486256326081379945533583936241557196397961126143972656954074461743895094547671522266387938612172100124588376464770980260276557451159396719799883463033415501757875418646435158778940308283544665252064223608083006226823257034179790334144161996113446082087223116075658995303957343328198534184842340252746861960094702993719235577817161886867560449404640352119866539866618411282736009609970870382347365846361916685124695908053406904231552088313339710742994954333528223314452864432263672991451354184292894945797011616417084531732064934130886587708464945783721264566902358615194112624806146990934356502228683103650016234463165892594231195981449878979337726207938669052571214249271198185157784175144832615996392468298411301630768436662798575062377593062928470338100353793389757290956404073518858066317685773788806497741639448409925327044408439896468722541701963235990993155789574608536199755911689953966247364481239679963331957528506582693170757609768103050608433732278227036342741275480181250809463767329421786733582442978214537412855557922485281472675718114646808672947128260772937228592283432578686486147275365412947445835357540692771691280496657513530010400612250771427701310243085631608557345101427759896285899042792221348852910737492779760513412716670536422296472975694083428545840415149045657153399617750449625216121537310412781616901302503862497810739968736636226846317436316449033123352763971970044544180394147616752069657996220622168570268861567590753003195836724408142687353050587859691004672374432497445401426405184584282742919910673315897140943695138858000363094772639321455859633246268902796193332915048024954332758971467604386008860929138486597918540030392035221751902177191780098084593329678029565040973448649251150306235526790725401661962465790094935802597529194234633680599922436128466791156832346608987592383132242502983326537607040104393516035740996939778461594582398444434708372281068614853943406356085288626725043493212184721048519181179113101305347508040619953204223917921983931599491657364781975111393312348749357283599204466868089671732694649920859203440227683613832774335193217451484132688358460774177069893490539932618233367108546883229223485999100900799214127954688221049946398187296838016453539111553440504785709595054765989684451252302103742681958402212347017787010298150642577875709192444914702979018195414757328178847980731465261084855526083675824252836764915121722772113864048537326728780067319422539461590653529649271052048742482908688513512890102861138432601929435547868887544373587088941586854981931653119119114422225933107844974201064176665471995409333143381719951550835306588179976265275371842793939039973562789472760080381747092769553244528376589387278834839749000875600585365155009491567041767526916498941353748706486267448809486653097535598126928799263919380136896593206122142581293684192616700079352150110585651800066876730991402847313868463072811809807107112625674701156149508606194458846527139447177432625844148110506704529727750432090037379506000445911281763111758799760023389597554727529179414309579322739243622901005965778052216741986447667939940752207215131256768448109770876041196823779459094196743517081691710582513939472286838732092334152508973097508642448154267614897258967405256783408857555732271279895517092031573742278946540954030616990291324018960333935160342054237044597196053779507172334257167032899624571176300919067718976263497424382187979548950693033496080021739853348926054499694059971947613782258784941243980066988624529449461780676618600810772905053103601711349955671123607391097192706550318342886786941254780946250503855255374958986478781786971167482784207632292701891152509467856056519630052661417338657821582635586489763698746838838623508582246977965978566052091949383105152331443906447713366128147569405669121026113455158135303118074430723998138297416807029863438360914465842200279791975943895331116296120128583974737015354566924524253209624817024804161615930823492843523026436107250002779111943612806367730630491099126167385901681110960975062098483106382335229630606502399003580184630468842103183386489592821679810718445443208175970965632945989037577887888739391652880243591437669029884385928212878458688905276091853227825584688539585993401297063479670299451891956013830057145017635176096560506650085344898492451213250898693198521116607694993626335529030325726810009038898259713184241859362312792752393376831395683081810726780826347083138260292689715196325758343719078298387895163358766769582303389865485934763421661067458018258275267397713605631610844078208492230969950108385402868904666890677270020133474800829865127855917075430634465345490605431721443266809268682903580496301510370418506717512147910426819471756209793468145807101778332249457216960499182730751474281459846373274306410058329072228948926949740820477854470062155303720320858731525502268735352183385883507219901936955134940588993518032715791830126892971500233961796157982178895075485472526936501450440186500407590713965753149217145162161558981725892142558499845633782437739192222032179528805292786943101257643299258689414655824546546662832466791849388093310895596241425034934226295153147016807092774226313795972910464991594605519422924839797209429813027698474858852842257085913721591107696737925823194945956567552632696248479589519667686261468247856860971208784542756823872486465939158373536924750457317149314128018961132740870528494006026785823111602401276840194580592973806863632765104690277363664664376816255208377667830194692394232571391022535914909873260990713454558451648181056839794671959427025015716186632531823372733607288421675772808626398881597606996174474899114731691459198256356074672224945005851554568916712403349880544610347320865386662875510605916190544722984692458839637311567557746893981860741693073164366285663586643571677122277676126323504551670000928166254012497324230094750142455072964253379296428573774899400103127928966390442865004581152880124565425412774161389259198194940417997710098567581825979932364216928331630063079589495733252891587941015746329294115334033921425380559973721641454169173905306829322034126712124534421590928134390997946866546123132907462651059748327023488067114872684094289385018506724376191961269826429126568286860027098769315885366017083014330050964195626732301376453886271151015698067293351843694598747829860854843787293692453806230588178015248262583495668671070508505564714540850450887332218660868623943169005585487768571231014766734336959703056226841931789214698518839589727905022065646403281402436688764647967351357764068705921944895430718629479800406865185238080022191712002665551167643653350670176738048069229711428740965320577401050745945008971038965835605873154305345227370973289652259520663679265617863987687668197343397696763648018382262558012500162559318705111441851650387062280561612532246996775112832324714785053293561759490076144067982878968625900910202855821479601378877746564500266258688329532248140218937074329763306514824914973743486930399362278761696854294628761393008376011075449752951304142956475313479190128965064129434379348949556158446688332159031634033407124616780555658410744178038097166349386127681109351261826899349097643433974302388176947924196930232802822470193147031159415458616577145156855371599996719948608922608292713466587092398907170865365139295655678842220424665616294704814919955648976060909113690510956972333178511221617950201988614818396354568431331928255299542610780091202395052031367750888848924638365205347312076631049261906384074536797959238354592332029133697489670607722283928446901451793011747863082915232442404574782181348430820615393276510008405700535724950772205908519859821563029141292868337217468424460537518517218336420194516851871411514068023860573206428202665933798923503384930437521744808227297660399987015339986152773856759152308060794572972009963614281635214253983274661907813728268577240944001115805806193676876655995242687959506607604318527206806349845595841678247342581082968937658380804348847870725509560479959247193904019235279595424531971376060380689770800924366681172266304464257375268067277726643205943796527620422753578381042472056509332318610930108194006232615728743516914463753265102648939564321197444054697243496309385844674939157816467384072694948920214956349005516595386789907255873248298279956976702115915126171098303102763647324884621055676120478118232379328555461556625908430398377121169327381393416766596222862274008638302617039091959313643043805389213665873084533019536316354983687136663068352914230155475749569529552887669759877660069914361009573815941146874848381916593057499591650808944724601988152461604228172921423071671575901717930923247261585438738054352298155616910243673654579864205148281174032669287091876096812681502499010325913443329037770395163244749609905990907619809386681927704144579215872203609610467253117485843892595173913072203720616692626605164427172570139410344698843550015256385144569045021099001948538909227420755341242824558168241286895216949452384849158813848280062668456724523629457684597764757283797556140998499900452853997620771553756434569100649642895921718736394393248245418617220105272121293541006440292630371208739853176628087095447060363770968543000409775448902088564739582072299923689288486180425433851633104226888175337486448162179026400444554471667189292209455758218602114450714480076605904882665374533389769481148268014521929355746756402330615475971585521068997315452821731316485651879343154484423041818769412877683058380070270141841506029184219821530864152471596155051852718041103253314006831479693066084355904870021420147533048121890524460058984699300700989355509805543563935785229057335738502266610030585597904824271070220810169708002427519498331225109567518913100313797216465321747922850168484767111657569301479016591579131305284493053678712760805041263122557039806615801090687290643386612549612294526767667322385533785357067120734941038642989941715902013235293366510549539294955310997894063181078223899121208360953417146629223939798022231428420617957412216202924358138751943660308050750874620453681320004175733098431793070604490920889605813333850155010001216067579153735741532423461319922211373480137633060910086276688993119300502740819855480079565714738268431542132817604282147900077922451900441583288205374547275827256162799282660673814758935264259103224904548521705434090979610798611665191177325655103581085723006729379437814465063078750039277996287766695018364996305044137408221456291421047820491654556785272323949157031970281680010348672990032040636817279267928234540563985692067137592351588398459050542933624298000887245420246549119698924831828357003266625363587023935626296325847763962742232604671743091578017728844046572125112368478864080918666404320687534325311589894549259318176798567694928126861850732459486989796280073967100085789376444693491987947925384720114807156377038970256893639647143765310976549684722760571756989359452928081314990408588552003360902063511564905861135400636365378320296025827153356748678039693799426835905121162157963169449983794194984801053960255510912309910350156610123706210807409576936452513417955936804274687444778914811116689551637112931854200884129643345523267138807794956568311178731437567446975316808456953927486399576802905288714547851749872591978872568847735400693918307294303375392609794015154459447703258236872436864310977881255654578850382106650691945883347373584359945340971555424832215957665213457460034348845861598994494320475919454818806141985713301562701892873856549920929013654391567803448978345030043654988327034429438369673100254872840247941707971408966104973610286059078396369322445077524874375298200159802890664331400458309455910243558332455180916551166877790372787252289767515442370624609291029087380042154672362940707565284291819421282364210777211613890786781005780780994910781463463912795176470211020848797610971884109127908803114497636721347142573290376514929372000719123400510525530330845614006081517547409420013193701875687882461321736720239368200586128485971048901778463633837360366561631830528329620094561059363994459719633137880768228132214905110639369405672722925272428392440995422359298963504634276396772501315473433667969324778482443157769972388240196699556230373086274796153394646506574941305056253443248948880150184680219389103924184426482119090748474436037190564944811528532585291107591716580625541363412484458697909105865353599067493765831702574284416223118397716551211485568095928747839347852394745412781142857822088243845058873988713176999674651143626936137931377377899993830699987602743242509288007776327090821015088674496771372847172724983004682838022253470572983434154954015353915645620021947480294709709241507117127206393478030026946188340053277113152214142832839597083724939304720287682177641760990917751274356502931918714829209192591790281196259483683637035012792839189741401559827416152360612043072277894299457222574608820075447725296321513605226538775209556658317743930077377515927374393512758281459075464928335606566789052058456131938466881845777355842711248223812523837413517002025921287067439656593064084699466039989168915500546560813690740153553196331636433681704502779121637931593219972841701409703424968663827328382766352231756001435562590723795712667363793115358015202887288290301192430525138516921252544343698890378810774808070967286590904111549574587086738352464206083988183560027300911479475400448519809595610945321436180111930561197770397188549959241721079270437801822981046911888275554604610759680380653095132119757063650440129640064559600899521601798663216324329737845200562413575159698449328115046499252038121949255729939626421809017927742542957389014042925188188820590329114667784934366387198487885547351104224845901464414034259516774679602089574259751702512272465198020707271978486970062946906146184656167289425826503025472239703733620893709371492227084381620396538274528918495545785979187542260300982633430819119363150503558996118327840079810308324784115393962761494480324486800239204610114944331624595024067030971814841639727295752689056293084437905891145502765666453228840434669269821553968895573327533228586363129067494537031331933785232143889441629897268842666543772665157541401323457565040057014619793211231723751881773737355840537352086522332126216376972919336231987587027869489852909904812124506492421961615560892089398498031851839297183456126431941445842617208708139262478821619050379884975017801716299729661397537776296391980632265408752523523643669034487552231640017696729084032818248800732428283500854202106262606374789112882243074978784024452021140719543539529421844322193496451477134915234041688899318477626740251836379598002016974990134706977990038354608250226186825534736639772205239595102398838487624692377611835310493026158057963105720466306292152582859872095439340439711196232497247569459372956384820506599167446309837409002374635494652846180844406633857938931719427460307075172466158560372552411906128516201905597259814648515824586015056579826585409753806312657604481422822266877660973862734959115499820416219971139067765429245646187800806921397049108218657660528460610453001121431510814259447932831996232359617202022949447506739903718292183262905839254786832890880664387423247494635082903999869565905802461890369280410937377489303781805836107022398335424766079282528342564524990388434550366682910338269603935998275926825404126123471354352069456050216642706091885903180788250830201270606421468862053220065613498645979502894460532860695961363624164176523769344511568081586384741139188981146837323297800320672326893236280946532032444565703250781516588609161092077332376423359775228971902749019962481985228202014159041593760766714799178168140832566684142974520560200638456528308299399304956829372480195143184734245859843639940082352697241527301056621494820620037442969996653880928680691023845725795962470751569462045827988331117889465961110154315159133011896271278152774044649838038981330008784677957268249242234411541151261648631319236861280794469732165980627102051473427999039491536773774265463830290162246348395447097004535960831365014012295811643861774173675970784674768693511464216196963400347576049293252240411377158979290938491280667684142155872444337110079749152765040989969677351620340555168174431708929701101193002323138471753234238266388842376157357951878808217873307105590542604809229831831630547625727489399649375635559544694062770513877878692336400687149196626054928159815157143491401757350235024524178038264942002467184852936488053630484486004680146675483246484053762608131879618840454507493522494101853407063843789139948152729934267521710084973675057202110960518243987983627346460035914924253072187517201225148152705837414630286190672542390917826722628329121000914320055090432852189023462224850816463962164280430542260421723111361229925706704122323885279045354736399232022654836348533649366015098600266852367114535497730210768706738745950833195954141868797040660569989308357926262930313668488442928359696806821569077634809184007775587203436230375382408666599783339460377355817230399406927973327346330817362272368359778477700525718065629004905134883910355698638157093510047801711275071857577108322738598727405237602948451810714324431643951299227075642630766778916261211681544049944993470103721373971588453496561155191425661608925112604829242909495410800071277828088659012805943597778178607875733612915656324282667570006038929142862110205753116485754242265148015545650267033043735477125670000613183714113178669295702969702692039835071978869304841319475877958552356654826348720092202411247518396117984574136126002202336900566237062416568684697438914755726662972661679452115177370212342393654176350139535856123732957555886728033105998250640835410462166675447923448243272859602176606731380993810852440284195916663913161891854788002456260365248688292351320659539543183845419017484573260459805096097671560750968203092321424581916698948911820932009380241265374001051386109784803045285242083939215702926112800349482460603869264359597166751502067035129700857745646253765372378335197736109851240470479319835850776118899795542770501950512404823819215521098214710675726718260262565737208410534129086884423413793388014360926255124928866174043502185278455007202967582114478040795638187288787654314195361549059687591111560655476328318767970224970914849232114249321611204421593779757727533101149522501101727980272098102516942553809373952474505374934136557140347955440649429689257406609556840116122109838141131505086567541057665444082826265605323086670219074853736802589004097552470849512886482586779889920799903139522738465381077880225196097246812359893592908671592943680339158351321190101463675033077541849854830606551969459714041783604449854484696919458619500007013937678812954132632798918392204367304742119278920225767946780021979578240831614301322218466431878457931588378732121761465075648663524614718725419839746024605857468308231763290810061127681098587320808723220590241742374267084160273754931142274669275436569187030668480356660298736210602175832781801589508670763941939572165673233256680594212070636610432066336167306293861580184248139103094719825492037570000432546932648754156058875502842436879689879589096594843240205366258767572117296788181016303202353525815492814056768087301840748747724646749429352654361223111462369408432395412941426050940725178526758173152306186999888895566715116269019472270063122445099205687059175254986055026806600710430797727812708210606318958549889412128969023440349554228706375281155908630007876163518106968289030367725920992739531325916144193087842417515195328490418763520556325706659219413108010698797725445394880391177216752152690386306945639973439892768483008340032410712486377817612545825876756668168667159507849399845785185867063216506341121169539609089800362143894689165568960413306470281819082249200022202147802854750805366066659599184358710171071045683749380236001591763052696596586611632991532096745833449877087213736717896682276154216324933028952621165497800325356299616282225506077851520929665735255262260949462122219580962815945588677966922046197116366481002830102076173383229487274847753194390238608447167442466002218082758089994824716468371737902556949676929774100263712201193188057049143313894057890209644652996426512119075867088193961129025390367362413451505815041775588057887767396930839091119072590589372563705792038134604962645067731199524554677208486527755680301364865337223100843038394609170409864725253396958020026453074879810780125641977722718893884251468637787919707295762221635245913717020529355897816404837434763612559639622249443065952629338676408567519766826260842370879974238871411716427710749926088677488956210346623034442065000822477553058552069942732849113617507433986704924623424570759382384568461779955390657965254269668324569955399277951061531864962754560172154621272709302604971223251266308231436306941378439783030719302682152355239074403451033027442899967110768038756455369109945165699364660935948759006355937052553974271563808571173384293076988736706962887582815642903828174817565084223632833459545322678321609457045958966761539836142890163146195831572748000152631767128949942313810717028031015873333985671316060495956504246710258516432091577563388839168427535682080609450200645415321153973738150290484235844001197902845542845818615552970396456997130680065826092567156822655748038459737756403387161599447444285181875235307714196360741975268085774581642667694986489292590782340082074194550148097210966872038289656854174252056778917017278811404314849377720555399666998921680691660419265322411889511454796977991612087325992594630500350969489123873356215120964525735542352534620267988640619873025739916225046430411668144835756049930542697326738946767483860744651415942757159717861178431046588477672586141753843302636873027859244319673290820640119676912018323773774867358369469072839226545467505729709073657018628983730797205468640672651691673466319389066012278900944101881757890388810755354293689610197205995086137195754056186590024227229043631732940017583929648379366843289642620095979523672945328781771631054184063793991799041060868699053473662267932992532501977582959307387614990482694858679539778613468891646588508438626466033277398216075736671123608841528432751790633658780948258961023987232638055661640242440748008239694290771027040930744093402579903074971365111823832023779359115964951352891213072542030527496414974559807180482858579346777565282405594911979670252122983618310717990542402658135888078482611081150311526086430679954512269660792676481813960281096860047512008157112426706717026106047923566834800901241114410485313765790284849311461134504413421173031242354108968230699734506266409608456967244522200431376025974092952733288833143601769380382384367093424448518099547934676959012266380949864624573320184942038273417391639575316453605226814326521488424645715276154280977000183006854916916271153872985695814308725004374120509716879995336843717105538319647051480615259563768237888322890105183501318197814330243105726904186000162657771196588780823600759568010755299826848898874503204658767807475282847046906577466416668199241532036547124099737443589132790499138999549871335513404329675841294826297844122664247432583360775186404532185094696067989584108882017758638746031986603753977172489718787243703496981952976060935998699999777491972639681832269300611988580851915029538764821510454067989101099846288240458776925252554609717501892442588987539194668112203809933726189447574977431732956879150174446325572057824398369624459243543488463409461347808936338093046945836124537237564682682296294383725516109839808179471063485323770861784298664657979603440906024253551505636969822016692689287817586534233664413446975289808251383101297072547293722285939483377684783686651452788247726228128367561027571367711235585612912763791304428275780369104293729055872172806799405768781508399341580213063927165921758367059575683268939599566640205530545019248938686260309345676882716585270950175385837907765139326268665229798505601136050540548158466427771720158178077668671979941030791231648951622273932262597851123552762752528828025149359143110100566297422638868393350588813412725688995441383899325491005268342436192668134111097723755571908692639189650312949021168662712235044540568719517301023609457529576310695931866255901753246274015347023259652017358315357239037747427490268374247072918064586582945297596763197916180800732795536999397487661120085798150103791020840447108035316052160782744106100282449546792402352405595679577495384137291831082995721352283197871929408985157923246851924173990618108110276599482953953658549849233599074187886281448438370069540070415576177126365551938666837369766648730512283537365017856966690657469419527474357988367619879222281886243140030847254808239803777806239266802463521640549782760565249509879478659698398158035905377165604978774353609447060486999358612531204721111410439081682404828922164628934400762623021550712448539109341179125683898937062304351299020068914574859994384360096770827658624853372302023121724325270891317615996188628814590917381682437932515761767171589796546310697956936718023493279984270333361997573064770517020685740371792399011809140946463796866720869742159576063955327790816959864589752089486884234443956679581684921900468290170580569553782692394218290375358892811816656478430690590921646437970033948174104088505266309546002670255227525157109285665118499530681460324013631299913550025117982906047818380234316798318746192268087308608614594857264098557543198069796296704285253203838311244728283798239698344572028029288428253197626820187893370330227634244747925484261025656376464419936036436466091607869279560022973794823617209817117681974605292171722744342056123522774246301500962535355797813449894092891422169895430231146630276411363672561171834163396812593101848050695049862284983908728071897087164484549201206151038133887642686465490189187736194588994375554785003030276465168233402231502248986743617760103610037002340685144797490860437737530762119051157747970463621963581111094361227490116895262735727845560746805978500587357297569382259409010785057662144847022528392065792039436060216002806449807689792573383089379046343854964184929186659039759700483418117339770370132209854093587559696680616810951702468799038746996550453647320963441692640737529138066718961348307267081385027530784188345393270600838972147204498083302025836280819374997059406865739904055517409688848230845304155269425272364816882576718696773505832065907116464367389940602894132210411984352023353034445846958940698037606190801177508259524971374423157422942527931290431503508420162596521045854713338488971328640929682675467086538225729931798198698205881122779538369726799528148410305209020110726070288700163077266585037547972604543592011500847443244307687326491216405106871501260066457516414450011985818301065612564576704355217016583565322092845685492847984742875592581935103392729898704333858587170684097277841596369901316827393169096414407965761078417918928994629534219795443213683352627042944866643859673213632535901791332217107789554954707676132632346348441687904545714417096628824299958524982603778556188260377271996003149252148932189229885828318944770704956438708272608629445337251054753353231397632785195146657362540854032855287071180240088318060062866526433800868422108143159800090742732931024829746540768766335099595625720200469450741680751325170650019759654218919178063089059062275732304693465462623014997613386067286042906639760240078036699312001978133795020742471951373491341472348739179710284344181287657113702328346469665925070407246289042526527955841688213723689620724633038912728026953799971867305343197463119829915254918792225893677223553852792335591003590918681512709605600641557306155194730558194736311184248324125668210841765643970064375507224858553480953677287282501270793761601182903585547852481515695557645490456651855332544970550332503361607753800616032248721582316807154076017763046749360331760163503587326762085842992337755651003155596966056470886811579025448584370760701364345512030994230612441492556878604087099801770189614525374144787978526451590116594268112445288602794808927467962399760576266838192854185497131566812470019837047350444237278034350102355265366232042872179079976022319020130597675628455107581035115066543821063208529350357221075220591697543810558442000157731501621215275704144607648244090243004952026435098812606415731094753846559368356060141244399768916174297385966456554058294090879405935755906052878433874273351927835118060812882746027662938489871491644886104912940909141185959289525633164172089780220165230700222638242773165077007724607005312446681179985087598558299293767712910512109796081869882395942729272262091405627723773739597950601196806491353528823231298664238059815875861134266603607379694394308705341448186013344451875058439838795354028419392458239032862309074828446117436347595957573258324274455990211659036721255334291745528274035489468159017925920511790881265351842955508235242007542307171250913301320772257948785771794297838589894413385030177920921495056668832283682943602987273109398943125272425488540429706792183023445875763157357781106761816518417257652864134851459408554423510517755226764554884029565463240468288639279471849864854380075042972392743346509595096605527731700918420377653205703294021275333133702972445350953443419016764067726551849861379718311608841963690508566768992564339479361810589415266423495262670795823878005603543247985254237309316069484694869315595259351619232026426174732179446306497016390266621613271174456845861756728718808918098837609444201721848589443955461880433738747495782317257341590192111028898818271071161565156845280662792718370367343076920260996816158782834095036551249241990503240278224543724050160481955041761979161119509503185297878112707326440786718812680688886792657603744449258622843734328862428348943082172969498296847621175199437990427455919984647323108485049023944892709863994960638028797247566502699850441409168580067653545924544762694224007044574190700329818546637739855113836199226796889396985885705576590986424758701776318158898085179149149949678590850489051735093033718546338925772755975030006374925628823925758648806275598810126121013597813758914037674636251931333525054067334155428029856675008970411118800850114838499302185508575059083185339417657806668088390773741754221576095201944220269555881976961476888446296460054469419405398508692111919853688209198918735508004820198272570726262204677475742213305474602449950679738562537813837789302038622712177909030321195465487862666530583858251932097433971636845835079973334652562805076144265568567129752028879016115466962662129079003091097063832534831004852837921246116668280674751479699386251437505266363229781667417409254499801448357880070097408354480787188431713239621678932920332688179755471780708923306599199112664392035839535389616310525289338326480552725049931702856960557565243989447851391272755227238537194141587621131570469708077430360331035739598003046248840584306255460007410989833121293754174280517173083547811016756707155551342888660926078519770735847300336049499933794785478284123881195593118009633990205453461381330825957892805655427843282631686234435822481848693051258047739399621443734508685202539780948687515667443853737286423744418868484341966717274699505458958926234741714506045527831622051472435065186186937664152163234588723240653844270851418120879262220101902354910062801886138779556319351527033578435461914795480091061324508656631062790230934950709653540247797673632271566580393055784149720733544059832835706484814224079685989077722039687276654842953993932523110629869906964646811889476396342099148883873398030953736359649831517881572679906650516095665982591973120779551106284261599803374839925089850674933496095867593892550810897592726637901666831274572406938236991622680402111666564969270440166376382070206929518803381440143579328309648440065893443160232241168112651093587782886518849474360587571080394056726286738673023979262901570156610001312232567823811124517468735365504268263722519224374452554230235290487769364043076571895523825900564466110162341597110263578712079263864847064138485253582600456846110808348744687685653807124523357187582886005452444430420280642505373200755500809903542883490961123742401317045433923334571985094402645708149360163015442356256985808689547006397246359384359387422257258273652411066552414260181782706175552813995738000468349666539441590748098198063669089656010342659045968678584547048862911955491733181516277624648939093621511491110352644262622708037238833365317518857899082797475882249077910588276629749035287243500676329255622192023844148362053514235580414774748242692446401607955843600995638124086303946666366833962553710034194227755269371786074630505927011467956330133579640677577732312926993028123044682256494374864663460210738070226803335229762034528779765035685233300193823306607321272778498745542318602177612603692135080409252744297342999578402204345776230034910123992808398281795860064074007110455097817137708056108444018748211512742670462507903095107204360084468755429217557646330441345782132953538425096479091908043853326980960520850546950055313305860083276350557089374068560188719547854908538733725618409652568318784714297235167998787707881614198559201221549006754320816918933842876470926371989549988156630591987478440916020781434672832436594539234762768350569346072026752022283165172564659387729001787881737479510442739978905300222313418048082189181077746091770146564458638407107722513794688240194802549767793526361591259376233508969061115101553893772091614496118967812224922355645849452668693517903057909962938125742330094224798617626530155880203264542240656502614964764659271153638721704930153839501132728777818584624711769649238383115432768943037336635862452584661247904022837461702833568419665091886074251175417222682898214985774249147842284135480330278222200899453047266047073655103091889824452211584716739861026307830514215452488339647754836659566213822536607165176789008544518190975797999953240513235924202656706554271580510534710249691444439474347001286219044226583744178548455402444490586888945001769833675635947664275083828523685496773181242636319800225606562229910950415882124189855979863602793739690064622787616226842609679594692065142384363671102384670850059465523836230884457898444953280531138512584726355932310470851671488786341630284964477080256150078571537030774114615190302682892393023834044875525106978497091990156002744245615361724684958016066614336804694322076035459208743855268705401745889633756850708931127682291898967366277661979079553136442454370085681564440862398665660615686234634250242782667198438285919086357491206828179470041474302716407623606351261385210784203733704818076378171188637460256398054583110270851264133910607858929185778677191655299010497555865473531198406100031320505310972427870226634461089491861091158292596427631901992460514073536180899735183922657026385999213099723918028311732029025384145259453333813132125214153385768990034842140907853440266199624000242340532670384931222133078982380094370566907103834191514604416979448745289697966262798520473258564095607662335219790893007623926377336782691689683487073704478246807184212896827390881035882426855539460157276311668900943150455912217684274076892878292149303035782897065493874364418398375988092846295771378258649579968247954131715818396847217728601984805758793552494203457738227978351524336309686047614183784777616093072713877632528581432896714021643425316254041760041381235780249890717025289705409468081888699176284789085829216964161797783645957469102155468813134563228967779621877952163165827255963409920256377625817271433017643002866857415639188763293660292126359074615750630893414824102775828157500949341351746749582122339167767566172871564090085542241725511819861803292658492234052318015543368882474183706446207454705477640577937389176641996900906011526802515527736359053254894641363078181797120402725824360238409730541033536489038133013849307226312113348521105605806606595122191241905589262288976936162796167835094278918443814985683575023965191108616343288704635356661351765777016294988194054403053800358011663516196961898991300786846029285814690183795658221908982603068723480697940415431863660314939927574018891086122705777877438096955036116694952221281503884486065386218012850734012910356584954989492571191385503771926141649650338312829089352779189267711481200377057032236733074656960813062754360495816609948000952517958732828423974773726150340308637608146727213872686811032735363618727855913970019475355582413777960620894759391839932044696281191724991847974432990708421046551374722768983852759280125471395723915141901220836821451798002218373960177115151521190451562011924694934448632874453908539618435728911185665643955562525939826989485141518749766603290577768871136828501362051779971682142805260853847679919558419888004390644258436823867345541033614264056556122170707642702166107080368879502974360209051184357774849752004185564843476696127292695459112473800991703215479831524263151435359454300465890061805870372898867860654539018791512267905885273446438206046834016020451077213218916643825099923892272591885352307390242031132081990107322796622311694949778183681867855487413621183809615513647582639463611850789973512301639197752462109162085075929450900421743096632250804608823507165352138243354971563660869210886237979910384704635320735266830997462285175830615345906616857777928407010259894884281085566262740396598719970990997209323282111798540344503979184071625931896659339650484383416246252843243776718448092380516227890782618860252864826103186622345951882998746060313264177687369475312935032793138677349267721500279882966577352102863661981202732401991840412006995531998872443691684854008831258512329437828857761558848808805267054858058584621769540426875533056931550188010958275151517154068791422893424692288551161164032779096672283546669557096913551157692113027145759766566403324722327900252182435267014782017997329277738704926937694795439945339745900571841055827776298087968569646113024152211090994074923739370614995035741487844310514713240379574376917136895200316954820738742905236231690954867465037858943428737987700096323455294941225048217726951441836675301568758786168436081361536547042514402334870802361140066588847450613268270991987290910772847190841147346381093809038915260333836871579817962270096979654464524405793289730563459503088185518440460247804518364759501547942763948931161231556050380200696783401080598947724397031650464302012177650304502529562045116842739956977506634308121667190366258408234356219668004090991621811224892698385620720704949620953588465027531333759627409986372714325366423183212188660744915816597059982684370384740681990344563537277252306492341614617690977643996232313133286981598667030917320307813688260151945379403000880784603170822134054122289792764189108736947334005715391594116217504139526275838514560006956333590296592064765664308905317483153472921416116133252798584748931866201490865549254299733926504622790386858615298696125942354112675859188600136016362726891303357066435150191934227592157348592177417233450268852496389817239913291994941108075465472557565136474884299475083518320279619053169490342805138472749961447461165145462768613729603037904033396084345333592385302278581023606361001771481615816267230163767961591043940853760293909919683925365513773024373526295544245036706735990706125237109142859637944949081832437323576406827954139710829196037608590398662438235916744697736675497331830651320479627187698387562576450267264101663953631113792227992071295517154702190535695456545124020437557918451610097777629170976333964470868023813247395911846349802740885849866637052436057828775571835250659936268663317256263911910008920023174784482959531634886987759147757814104786971746817965411876416333722484740502964952005265349968680306245294039577221451665981473910799871389088814564118243449210267375157738151113373256533915612502569857385175358801123309256703106840814688541064244231149067649197602331874561375593903711256921925175956745700028201947281849513305200994814449393538024246221929882517650803380948420668907724662624383204890838710598542299415134966533160214492961033494296743589412549084179763317612902409118621115400361757604622168041581451541982105184329207434497539849851569997936481185540050246313524651993606896035974022015642976801687263536827733009043151875442046247236279459535438893293552514694025179422545790966605665947867254352556196325202621346698545050331829349585103351743953618421630041693820998167608050537063759922329376189695417715261579749110705552484494366217693743555241401464732709731963457683237832307694224027478778696481790110843260379637208347521079609153228524573583151712390271353958318655709394217880668196115311889391451278259216279126334868530809910074470905778718458101572376026761539508668492711949738441652602286611679088622293081352427010014255697146334242693524699957024668391912321450770565564916258644847429371003174258168171795552453183319520569198115812243555516805419368285218114635705417290856499860702708582205774618835330261945035618089611603472140784927620064362496518724984174163583329955191326886556350361497541260473133256796001643273093407704544086445385786185143888514227838250427694250607167198095780710760959806859722282790780674474232731749021452273044067193305266066103732438268924215706693449786258057685223278533901646974719204405272345295340351180586700145065359758973020600059079251114124815523688415367032937729258333141941438100010757666242821985341851382109071905874886513849203406770250250921015985111890745843920079809990819634021847990803680835072303337473090308103517109668887811949458636248269078403530132176164913259133415860861158586089245688493417776332374350882685726002172520514426947702921342705376721848887445291559990724567008494827869895589410047157688123653721287066277416701713554504940022713140493370322690018783936692312983431074505430386463205021414750364572332279850232480872820218877768360520358514929912209251112400511124757005545018561518165576107702166956621132890466098017484663680929607184725408943177862597317848853088021492745690537093976394639913045606356085628668908198731886856708866081003031895117918185909874584201779244078135390001575766549960596963139549787536185770273006241034615566577684058608477411782725652000255488571554789206600364611087032114652350554584163064896041768975012429560102435310300825862613841534334919652247854901890497439426759841862946877740094753743690889396236851242450396666317638949958942246488981397135684708461772762781129831044357340604186943017798880229886337966203981230084567686691142320611919816178625799891618426164537076251780637910198984420213467647870187310696163070247975206526612772529139777702911727987931095826217480295266908915493237238952596382349914715949238978749131438518670363633008020768415605531501127868878845948825663820031569235582640874126597475354441513368465216454103285568030838168584784926691863362205779176659551671410550651365613706338995570586724591085369953755139656428658306551388368680123535792671894179549563240168781615080322515919710007778257049481348703661330063560003811341445803764111347212815291697798287451404851120718953093615096244494724136287819775258518700549319488068989216969454537451491889702499939259408902912423981812635944582504472336377760775669510978414534575331435044239963411044709252851938195503770609954659543613627548015079840159766274672635001422125116226397344398712843939681918873789213370606801721859550613083633652540977469312441687460214570812171237347077251816134255087926030472288528979990423914056743869547903741942080921842955306502856128593756588918505162851634255627671704306391316788030598231205092106296193138817492735649173856015344184075696263550761867685190543237662427726978132719680664657399800123340053099998021552361223891431712068011845081776124858944988524422703698063566037391683803742163353791047447823237364813563136563410874144444197005628716928576393324155506035863242261075487386729647437138669788020169643846229953010354267114456389558213670406034099654258205517505421300094108232073392843841575508372050054409800502052226839087437617496681312268822606218918083408962807052051189520892223512939485335949395444692071745690290138107401635936849393639075691096466169671183613364110669416612493992673928904627714300344738742599222419563405309337436090514537746840618877809775673783735131283830420502260337925924155642284844039155809607628012969569196232672808910104386902324048652894731983436187097240677680616923191414853003176648453943167410864691739040019721827344103561010138828426386980903803123252296706391055129250387664604770789632153795864253745604492864291921968126173641057398225093047451390232557904964842258077239122061761522192109398266144063759963685851611711601730803812524924780689188100441329559102181475567504332870066200659826518440039649449837943453260741676609759479470187889308585516659147720738555205507111791375502156219011796931883951922987219348734155874142769155737927723859242673719846276202479295576639870988147306443594118105690009673942509826337666061552997602919174954329191557740662519798363564195640263859467800378590022222868574440190391905017688220309125905133248894170772009780029482286307778405677619871696231437700710619453025870443304520997096284083934930921036313871587896234585104710630814043587010675063930685098720170004945680994972103805419353475029639469988585037452806294364774134473633979855966550870405129031811646468763896466465176954803349400989295795315716659230238631184795792452331127618183862054112688401980784676607363090503014575057911425542057695437995759888078788118749086927982030229967578923264055324200088211120022741042474651817504298739658625014014684429970367604498302120812240579874351444865876234071133824037978990963897051884495964031661164984891228490938731130349835147632505899941496423130993982235199245230842015540991209452184588982814429199528473720372428475391703163464663012027140481500670747267640823256601447785523957537506519422546730122798466735743153022117496931101067883976444017556813217858937767111478132712367896139783387010669184411254192953021597059584809263974698430381546078415873118880653073123369596450545425393889673563440324748977895050836664433727038930938032846252527472522765965465938686186958170771873391391652740284570661577112987312476998911451201999634569135873059898554787878649099959500830588369271907189390815267781854528921912151852601032790393536706201669422192705500666616478946444810353669788111072880897655040117303422596120183818982155348886581498106643475906763677787146393004719337691832981504162043587680526460728945668961143810431735646816684909121180810834095245506627325789406747468525634088323698218991938148413643128328041174890537624539287982577326867469093252364325656286320481128028412589950438363855106700848313251616534185199395494185454406782122782148113148220283898223554614637603743244362314592343321684508340186590627723985580874592540754509978413299021825887094084877313622819522023726802225877290822232057746970123517181049077732103136820628426459369553884927382535141047733160349772090011434980066759427868961076964955833053007012668469838867246187944042966368737331380268743794278540593655588323628543242340760598296467792413968287402745296730569704519509437643209546946117705173120363787295310076600138190394552752757298345219494745419408444059646213240102741774264810563549916708411667981186518579343932258108919967786650021249043260087504673715159343585005137789196491968039082225689383787658731266240896876450065392058366595311405519264964167561879288583681623758550660732311390963854879690188625101327641507156434808604110563227761982345649632078343184234577897544896669067259223365272726733241292209711434803839887271037566235269027636120344465085748912164545139976220623054618131214233696246404882000841108793665233303794487114505343229834046390286284113887337745854695210083579971354632552321112054374276082505799186826660968922133754814100091533160341597489911031062157014531700103084256279409317027975807070734037233288228987212424135649291068239207001748984747684569255938094543191600152035712124660083782516787966804941181461061353790851528169468974211610031518432075566889112496996057183627408760634587211009204095819337983410567488843726280521779352915266730015582970488350873138277517940322209988285041532069327911707098498650803311813323864001968283654056692400311473489764007521741451875523974355368128989809630585532960411553847933443790555355948079531201641785421597149359323386848598381613796255698809849344891032608555711900961560294220088983757422748669572507627905789220920620672610744926845504906433217610043326603019335639611519595717054005299309765116807794267944095142476067968656795430757419854513858563440442304338527695943442862630261647001311450708672678118437795790343997583968681495486032665746157253467272376967046551176891874911588263644151486234431406658036073893933317221575915180060294728683528031764263885513321429508441473104672165028184479500741892267327213785515950248435500872518014824111900430987288608313274140724061952345496703969362541436423036203573491211181657370081684212060499410537659480650381353709346574845346228899538464551212642729885086664390630750334984711942179622146475124682164609766260870285760785330124903806950029689670803923017239414552910746893019831864317702332458472742418752186183501823727041695732326065174788770000286408644322804522848544320120770862119796883064260278887782030586986052063415576141571880197967668721709711027876240436891880816891725915456961843449331633988482470253481172381339391290535747843086167668054265908856098954700934632398555219184262872057566046822684138577968717671073910525889306540684552682949382965557712848108684836960476398268680741156081919710665120622598369572981281793977856537666949711700007810326944618355424363645616865074709300620678561071188924809885865040108316850389029498117460871214884737681137878547785176524735762012567320842718992945477087045969136405511376105570871221615321725465146072400051109909701507283582412357265045487450015149010432868215393138889041659890142393286541050889560886536448790499195533608444980364405665789045182669731006850956182071096416087696129344627991344437887752862429822584766097489004843187750520636043521863672644364103443755761280610601510864925082604813610325183462084216419083829125509868678139065972356377930761641915033229842578968856710316810280904737841233155449260599230970457001729926164057339799036160272028253130493936444034711990899288496405120659525096550912860464157312174665273888237807232729779602098434373302654557153655137167385411216310634882091564136885085269273035129606886163895636633901146157786414560057351151094913295382923699252633713676491415265945809927685220002033018801714595692318993984400486918033048924034995756073772503317496733880954138637954259792380932400245740154384748913601892252187783503725852840046917453146798622091613008122838615398778635264539286652161310981509349018461181503630053964285781174285078779283669795362997732440586136908657369703667726358567541042762332535081679701055397217864879536724615040416637881450918193723175005577681683675201879987698500815591202634801033271210045730185521784842394305625868500164913378807843387475675117728635126036412021912321219769048080097052986663467680615642860173625186942622223272015897994952911705022611284069607567123662271957190752936738628001108144309777206143088531733836851831256317450659052657676711421963394934306112067595533949129057427903618314959410800065903012609553200525086447747825504856942718800504966712045000325167268724054506987323005647949517285921019737830493645023805712229187459578088186617036673894975542163440228463420785990491487622165783444220710056697826979829544008791570820308437786433071855670558008651444307989643374142310823854181938045683408246133074374595680392519078554239056014883432976398740585365094847406871773035500439215655854241557056903987282970307292803275753840543529072772994798455969538673826633298887524853321661054554475724469698289558107367193644340418049398999597801064583492643614039090754986426046145286829067939451395831945840091791486847846609227703020304761601726034346262752415376213122345538508997020128155843610308614394670384152889644920537956160674328875297234811992609514769459476096162306820251240753282932197684249950729689011268090871682464870048578966824289325197326716387123898545232793719614972838930527142743165606764558783545489114191573482124600873726242919497700608129910110834887450591217775350918304963367255354402493540126964690828991947768999082243651123822804997147988588466364179535179923432282755070223052424897837282298060421591040909205462034426471772421711531180002386390199202758787034709983930511706157263303598216687314861956726318082921365611406670390172543727317971791772328686217571544827745263647844945602635764386820440270463695214244077036495961340146149676108503146351940527084067519033544107964276165430163099852631104063191466497271167442513506946995909627258019669233372237162189564621706827875807257428277667635944060601907184817456816197782323465885018572473332372000676570872250591069809022685891903226678156643898273567443393414763986490964728928330798496307974594934303920444691049617981412269935972900610924151492524804549199898384572533402394168484230277083281696992595494779945420894790177565270211777971549353040958990940190528728328230888602731010429877008879354870201075815539936798487412134220627326190842186749609367791381943359286745376190133006284986519663287140277950394177376872879596354782643031896668483241943771554041699946120454109992121414007015213409336291960103437895837237220799197364863930488647090522430331584253750930740964663779250846465725116307287397494336001658115258280702817017288961382145143662138630438835506161310850479072533173326988353020282014436187143232704852692640485917654880652056962480488537916036253895276979774682670597437571963598722266379078895482503558912121609389561544652243509285215322286349753327187130847959444202690456662037264715679203109898304780197814300787747630639198398915819498868946806920935973712081553793668299017565953138018414064621729111702089503445337019314268967126573671344931629827244180107142198963745178230014748724328572338537923506524914875316919520014991900679289033840418716639135702264206271663126904981482234937453686100853032088685386011704058357491007269040284390048805190639134259559385941677492174512552768007949010560739110145321739009870656153283858537423758051950404298440841799127354143492214587663996597654210909246432182056246925171306138683742837989423075354151186428857208269142196872222375903925478634363848755104674340790089004379705804907557767556239226597192238844262522960179380130186194047505209903306327095500992859509877033483740199864435707305041935862531500783198251711336429518086111344838885011167590578567170447637031051518939732755032054749271206072712387683896760526416243583218961928282343111436916464531839906580454620320973540043084951129210045748652800023766961616071166062425756348399422359149209498847932360724879055550155346219126741287888625116488061457088283205283207438233457842719226482483622950959454782475910226929570340458154490802707896213172891377081545655666441883898215048671136382059488944321113422201093612878261408386344431956386535575725271390612554072186649535187571871817459624928386289992029804918285641042017500209875959259657666682098545094487235675270705226417618094565605134707569592113672140018793231732940480839873921321170453315912882563580141122285874096954633043812744266651040634608781544672761612853152611262814590419830397210059591323303273613276146334666675414245328317556679906814648671224331917239418125185325671504798865530057078275300446839421260321729264543029654033839857431782187375275286173925403541897139835824480894686480705330863842421164969543514566031989958391179536318324452948919222996240653706468723788147388818328261675215382976047423816302687215204263350333017539028506895340441957488831846159685848411004628981484275046989025928670335210622389501579178007549522238222898445292795385455557538929646478980932341192872149307992540287400396776940378341276598195416160137801201497879883936260943307480094889481437368865107741683863338710745763250985471799055538018271518719265906495207381854094582468509304459858388963386495608397928475630022624506697239689340421567633374505800370098483178243117072899569334613015553396553813549994850645823816391961653366818202158410832923017960132102544974867000872334026835716080620890388200346432941598792067610028431165613794230981564177500092462809647137162596448346658991213323961009802946488329434432940168637922398886037289171498119780299760836992157501424192793969127762047264938098426498549723856790998479826368707416260591784797802536006421592756253015156206383539896683580591516991040992785476635477982060480152434354554629187776871642821349033044311450518055426557498775141172811286865076543479924903560742469753698254029790621481688692606098157742393040926984612771977408402893494055404472098067192693282259756042462840335165980852331129186200220786038776674953192979341345219908604094897511292312295571661182683961603230974299600627994172335616844440292781965350488825729245086369986875303329227889982751581006748208555132879465220925980416352869846688029862731342398333984487741886607740485209342512737241240853814876492274876515133754028635112507589108984175331166414435160721610493247660400282311951004364322947871124174980483925701174330914649283687482534751898182685275455284258834246263963466392795428942063144324297076774269423878858188975647908296613961916772209712874830152133940863551952392503252799575835407481344813204571764910760470939945128247243085418345221074446451284872089076569759024141119905796300616487351287267886893224584180283341461982247549380195513711268782533289467910864736735009127439805674402097697424055132914861338878142367462881807360371261695941408130401871599071979335473149701886112600673113959660167226050758879600084521051449995177830974065782383503225052054591023305021724210661399330724680956625972767343896347607821200502111490317319892583470125210518298565967462293113006770212112840939982949530783540060898327314297423158295485779808222968931641528841125660736422166562754157056759444567153167218843183326467414485659909474803691049062976927466395310535203506879448697441703638118259456186587929586949086188524505278051272657327846132254071432510700713679743829484028060627662678443404470412389249606479256576367139111290919467339406109099542952202404407264184179693247484313860502038653993863018913779919398805030557623035249053577383701670282877849468767295580330495996366133826087485272929214471787089922820631101264484846947770923665454746669208788123860228084072041601938925081213918785160052052568888994377946079757932791881736237719580328800545684776801510388389766488528389689253484721379126475558456433338897027693974060680711268840780791203402814816101969366613417075024755995549821585724814408812824548846803331497877039698833133434348154029350265760431461479078811404952190580311281383924523280951709378180658137064525204179433868132852201735490127643253855182758161388498339125573296510393530890691384916105562943076664452598581697978613187634179912241023532529627080155734877481444176730514931915647659630480395060103743241806976643802920372864199014572231195941001325526070772741547058596035853099335642069014348331878456102767193725189406131487795662325877920802561604658668178572462326087246101239790705133631616896664325779521379862945699788452458426592175816044727225898259677627283324482081541169794880595828381660588169876870540739626864462979270250524045490993752553914167858691381271380129621637899500092345715030748312311445172296003603102344588234748635762391560486645118019714328712077243469982849124134836806289883050565274316025745681028815224924706575563781094016535578403251648518975064923443909579750577835114705129790646331436014646483114712651455400973647536686544746603622491099502579362098517969597047180039486675413103262789672006596618000993052164363923328176847509262354763388931650893765613829005038484915207668505730655594028624514381598409505610334729315663820439983464150294262538152385387282175707445952088001679852061269845330631707837645494164944574853048259541590539570015248693648073656162322217532862645334679379643026592280648534839996253294677327368247819911823752263777390400170971847623608549146913343437544397560236554952545025786363516638959914333438109959645706074347989598638580243962935550474996097445278523926217739070885904776256742195926107932042738605018588321506206105218734982727473875606088794160679694295047571004126828458573459839891661134310742638706593579022060940090909456016842828723124919683207560838011670945457557922419903520862592399786532073146620933844820209367436422033020728451626644296327049542844964065920996019368870399765753284865397954823534468781980517633938116370477834400977969101157233391574986497167047360994051654081083246152367253594286483618301014966351932739591707034958248418883123106227609199168835124931314730902051736052899819411575065727883542121506264068640789397547089354058640180987733038455473114237225331250706628575996422391005204837313452010868073320273411129002105034244359825665873458011894407141530045595404703753598591247869868789482737406320466498349929283166902426881384222072945924558860764976814467430036074360337661597753345896606177455644384309527663902388584951802399578081909303877335542122077924362951664692215179724254042755816820123107691369785553541492063866819935446842281425811999659728790236732172142948188270104713969340184399071881496980815079799393689282540630405523874110865665669584154971848594968209362080752383844337134161890272794536402981566004839521912557647172462274213510222068947378038709693417495605498109911062497738914046412985143107314373079304800025330526893195689442678674806883774045417243371742838756415649944093667304083831952666197569462269477704764450797312046825429961873832895566066002278880608980026546158345291270993471009515172977755209675767753225868938973830886124896859599897031145549708672377627803362376534484132143341142284702103301439140610758941877367229632234016923393072700334255955818362383526897125627128264551586537809031267729714480482913995346518576142412355182698684828583064275351133148982151692208170838829650707723246528494908141033552121221961923726455380656704625123928014359504069071119653153260693771117136707257796494231604282491233707159116918488058415919162934381837568564939861708583627109812233338745368607599549824041812807184109917665717517562701404370595717623811594428200667879148398309378895869263394678317023374782733514070530009343899726306855683864699807936457406801817114805896659879720936802948004412817084838580883211324603475151620617731787457373370512504799231034279741504716799519488206520669909850342352070342265794054828285934695742588098410707732037364578452672334490604217181341848972334993010610787443920969188308536639488963127841055392639429976459581760524747914919986713725582291152870927112751146513549623608446380571970678752907556065648359033905702206000405528409387232599488017826876565031642831064638276390788220052385700050930910063947224503054969061089724747076977194928562774005137429913071540261191255806511722972749624277019665505943488982627078257501315437448307417897407125348566213679733533266865280947385378456983670365693250015420391694170691655015021368921932630970615626708474211657156685296897699523210342204740637831952505871939188731730334474779714409184313137175185696593837603368243107606647623790673661820935683160737753343427668569075200414942348983337493160772754353534317857847855709089708601525359881054915691522424675477348722247015345578940242571722580075505913732772106843125730932836090915154269009365233248112996461445741316502925660914251049699260452614772670933074504672919551102251517308824701608477856506406879320363078897821559338863546819168698850210800664190799196227447294017792438750029031409106726678237740673399157482659654246743492623764895540791980142050048631673003663297398856966913405394833735570322032358129088613809365735500751034470465500280203614909461955605936460874441685139654205748621926924654240422827407176880013286172758320068499910944256648377251322049915676426038706703256147693795299279385119574090737577055361663056358966522602453074903604651850453493209488770175914684163953699603861561509702545333652844199439245693593801750670493838064829756619807700409500526742840558973083043820666384698822962954276370042684949085817639128319598092801186060173332179764907114060652504882977562166713609429747200031482931976838009588191372131803202381748872714018670151955621499934518059220110263645358551454814011925259825046042126244628047497161401683158063562899990270822232046513151080030462279192033680277390172025325283362541580199690953316371128120435513772413463909473910371462646037333948470537262104452495392718245116433517061225510559890354903219664898100665684270032560007152402271623126370099552316968368520999977026325367552813535552145763603896395191098215813421077074654859892691376574141405160604559195841036717674471400047951504360198732029614322648501955557996374229985904215087642680387391542328112345922954847975218455113972805785532264182385928639155016396623273923865416673924106113929855633861059785805823395606148570039961648233792479228693287150194575254738033619605350862335902154954833718094886869886789487593418800505467636128714584810856740786013277533606903448372730274422966349545006131174253568279689600723679934531363086908942749321123828970492652770967581769927512814593037473238072434746851831873768285931054904927246055497469997032996514045827677180616604281999413949976903711749897300312922597404730250818428401815192826298663814661551036829330783100064000714565773406610317927310686292527668192717349921950134021684239492225585393941124063428120295180570409638445667610524724253477255402613386736688280773477980438095976785539741532213652556258859512289920590474821726367020886710604181071131072300520601421472119767818455988415364172690837269793886890226023222760476500985287633576344053747784299368288583693098344596980089478722836517615767315372158503367764769951447352669370169117052051902408756038100760893859650398522147814293070753202766316563402214948697668832812202225682015412031756996140974361504850586563211547182777467567820713122158127875448553355468191951371269507542094729261191998127821663520757591030307846393021029967870883520918693455329795508650678646540230503930492099493772673973215732744395693974385520402517899581719070867214918527427671102447939344140900221580992298811168470117532178034698360476935066696992379022028597853054355438787945194094217418672547560022808859473711902701816788971809838459426036411782945949421663463920505681890313430143793766482601160771792803522234082148433715666759438625807647696666603412366803168979701667726613729776921240671019873966453471108309364613530346885821570821649562642340231270389178342100555191089341173874445897878458015466852677558518405165664054574350257503255748842443884284468634589428792647859824771036783295198586789662439770014642193338089936651955246441777971129580754599292158418675281612648955733950418965539539657908738628977294786309928142646220501198498777755727554817888944630427703305616553032404355841088666525028733215387751116510816042315078353791407368415452743360072049242492149497346305863664453349989916926254025550671606190324956730143815366642475299318536041685705152020533844896629136507675935430220354295871284404283207274308785703283082701353206009623562623046414675869736112620371979404810422627742876163683776153582428915812496094722354352613203583220746869205742064818721274438690669848509215172543414613886693723265538296845113361267236233721581094901134690521622230471880183256788239627972054403436619517332814858547437636040736084233070858829172028835135435046664950210220315432132510557488480229088055837400741383965254217191987113578085674477871219316811130608394061444918110387531748637121986064053000321397921059966949652889001986354054420607411321882628725673060720288908303728935178044787132371773515591974019757433830979654271202396227407400517603346948943367845354984207857295377141389830062154871509367235564163872495643180174102418690110723435969065344499083101752755265958750715204267977187579784399986581794378890143593324459623171931718411383557240949945786215426256303328139868682710287738020243347560869759680552212441865198612649242821080935129624662533637498312524702216903479318386338548955907891106878478779878717620285520598645554281163276069253079107973107809036928761664904793238238751612165601453618176663813652775123549919352998756465631543199493987320300900156422991723884064529014826934753858574043900594220804697147410884496111418943870360924419257925374944859825598946153933210291923395411452636388102976068376422653129462643008006004004611282306788992856106887109800344450368890394029009112700055959175116902406120691212807948581496971146417017695248274062594818376349123860762677403280492230319642285070250201390146659171967221517274651910039776256055547944235259609259557015808921637682932455743839799176281759098391355786713243902044298638212854026893298488211512035670428445686474956793784377884848032320433912642976848084234549720997164291925060018735938107775018367774488070002855719661156153971297206115589087207898837092639277245526458980053966420274887317869449689329047451619186295398064067614908579752307097346619512091289415110685569904308237230403942422291932363481325326049883864970091970668906746656103663615529506749160766055603067978398670633019582326304281869882386949609155913630102169151933487413122079520934615927698963727939295695395961311168448464006345445622636779412899009717796132712119233908135617043360575051497206234452000825925218529120946929905650350049405920836275312266155692677127493260380640154604363433355744180244237523346580662983525965056651245491827756891067953012200225535502572739450215342974179801762123930010593801004598099736243602041955899637754591870903068400999943278021324834169722764379824489085617058578758787761745135341122924765524078169738058994264223646649195878560169456558061865628141747267156860937663745324404566439397967583363370434241878018731713029904902920071578119883889262904246225109779910164009209477073043001727115443831888540398129916084065445367138488777540840142603751538790951281345444595298956402276397295101592445176591892288321656812530548241654777555965489312034699694671520205598294730039840741672271873592712279534179666104090058264576952102598320804866597013014473546106668252331120633088973553349313165611411626613810422429702088934438509062705360496901065695288105987489470977972301955317453584081014259550522457322102117509765157524349956519650348862308023873952586351194432860038531463832237607775547586886789672871562690825512625748712231398775295650432963690349589347225610404046617508110728489787359623326111825346001620411328754354360830454756901728389989865483005731888114313505799777187416467582586204803231143356784671816222585866187674338849653070662166955012650377021538321116470343362904814305900659469492961311049673978827934350633035163546790870949729603106626739045049314137827451676883586375361912881754144849451801729619897717951132574071233324707163063582503936586891068566401464285393845994773177799136554752324633070869191306347598065752750875180725242865390054525213195143284809753638158470710234077113780664468170784034211213490081004483809218067644611816726308840091636395000279798843184523972067616217830751047131375155219927623294573750077158779245177407015009145026689557593887830556918142481280200086724303024434238669207692997844619214345640813373227635865116122073659904509033693494782804368762462393819966604533748606262312800652144358975521171859765007907885578998849985490037422814979969322495536579450929756269193082898331196126709970388040559775640217345951858698031253746934903411913463255309304798473882982596202581470699633614970625248792548148264275066634672820150102356178014914217776173854504618230598199890221408867068261379783845153064407156856644001099475474445059957443751434061086229414198392015344397014413768791651490798632332020248206083288297288716477750076436290742288491774290046977395561206936080669946394978654175210188769943946306477910736976294671514393863960853613530529901639861935395700314499355823228693743724308579119252028681433144555566598325265706015806563846454019593456328455511361617251416664559965579883261404568764930558770580895356744374349750793954906288394657979646491994330338575919784381660597344269528557251188408306760697042047153071944109937271766351649383470135289123526085550135987541818627155597814054588223357251952079637980130840909719454232670132330162524241627693524431859597354966645396094710308950712725865268642885860210811098269815755034606767977584776969026541761010863753365102885031714295879297244056746497558413256693400564495073882762413130002307060108147713904692492136513241788248765740434653900508520431097832125913334411243079498042574418311640796913774775242418196289292362281943904264647269429673379178329923709272406898474431955892040614855853137733977196798254394861774222316780594863799853419132079487556547850136018546136243441918832258779597884993615155890243398852935011276261916925767063004562006957587878194688842433636869306249295751234351548105541006025302163204191885402005839883454154179859460593222882381766181827521713475946532563363167194184284520051809336422081826634524657043261298056452549776292173014026502148565438729222458556008512796337572555256597478822018217812139848027854931219455398220440861583039194442977061060685498110953976917981586325864943337819756721740264060649111022797451903836415191613694177510231248470310881019696010258136991303793691499010608317280328051309345961687633432207892885601776927254822012865722951631014582176553654408560679940571648063670604201069452377292643543982897748923416939069561600043923994550236220324145573242502122465196307352214706721153014824551907529578599274115648197207667632633781768749569635431879749592267626306976008944721817818525761149185451934039126880904687157828467402849950366808046670654655031773635074715781805015069149701645038199397697535519312732644888015967937985003605928693246961664841205440402721025475149628052356422263870391285144104860402072019138536917477283453985180084436662641651879517114189203309548006069456085822674956118281442238973158807479656064264846066951078377253515471202828042341701952516811685202899010834722413633004604671644902964270620647211586213750367632888509067355349971776470767907448293828023493681521884549473156301803027950665451170484057022455605751388871641813205984127724850780586585740800801794398829143198609420223976384276956873523291846693394878127113641467705199458542687617861358931375317576047388310116023572450375439183515841038177778696844917486763214679572860039715314786500483991870927042852413263296070911960911161369676154166458380838752801542037494973599168396217364027492719665620072386301751297260241870409086843550811440517067376543825789463815486428975176595376514713462245632602251708072699540233049187182457117643047783430343007305196881601297841838113672197086407967799051941397828866115183279217673630396577784434275590961991271841104345557782289523736230266722960757849765733123909550377212728415748070234767940807276226186121286209210438210945399670937794958736108995561815277067582692058628862304155982022560301755136901305024984420295550443616614562864886165065834137349173399544610045095960204954059734621968104761260110039936101228845983594583188143127763038564263406381664665388362203656907127499525420396083084707170380639610934441406411176216689513111978923019493050337546077875338156548845193777849946820439949104952929967304829346149275458242528759361707552701236252826810938917479705851615216423227720744396184111550310912560068460540281573137801893043446136407229950769787547962903062010944059077489663796435761673192824511552465452779691473691942655083898641297875854420379678921026167601393323990888763229005330758724985742531687207510447558007792652767104095984190015536208665473093759139870942557541101289052091383717277933676138121170483221777006790488745703373212356812803479860255914291309962548847996476800381263356146116970893622149441397075427361239575617550434255294476972410133233118616709739345614625158218178522198733641518214130503187375273264848010621396705213959331614555845589128985702493877277333952966895376119695032820182822313479526616473535288221173443657596933385841949892623188352411724025607034574875979819042604674393619400004394228592111522872302125902045942177346271238028734036518773638142352386638963083877286183641148096472006993986617592995344572152052275797268676142522259378225222526170435485383248136202807354248783626845111645090756682798316733935233732004805735161823941303747052931624687226963813941183333038724791231578660141739054926370744688607392815243370229184045607721972771879567255528791536534669044218867676315560488975710378247039065347446467765836243667592462476331202364280521834766980508506046837015055950980438961937892985212171730300339990975172923622615661429926411878285403671414045310764609850475963220473364637541424222182403150372745089620206762263978804102054030657442698807163340127941744103279233994561462748569597588183679891857918811763953692877047605968799314295789633659570228914554520926543744556005155684750992160910323656926166158457943732239701856413395285636874657736787345670921450548794863869416444697273648446635517512810549737665202798272784007602069601848480268126857238216435359091837185615709496348255173270121757461332244722857137029137354906857057768272113411190259477348557907535012735047273517586874983914293375024288819544337638297204505095687438391122053695679208815727203558870631222056889144494940456345450746540692572597410006617451980050467865574717947778440334620196548709106771358212300847438082574925866981189993329839273846045972360468080195774422259212606501626086809290106118536095095462395572261740456552637611795635355925370717715747482369712261172970713113593613035447747595800507469026583963733119155510433428875552889070005829925391804562714297980134427926003366108486899023299975529592103384792715767640445281891401471716243022792342790553859835749044709527549466592992156764604428220776616075838062698766218948046527511749475880174007466062672893012695473209118298164545182547281808650038635188358066699668794552810340323133798488402253378612258897278844080969411417906865295323892776023796955624219675189219359613856035435868525833244019987141427794367545170339466002488896238161016639557400239165054110486099932943316011687342458795759751164727554441344073113562776835246634053239513232913425468205476409315043336013076922165409313605531834726499349376842804000743953636207376892372609407870008255187705786267333745255745226098930540551296129219675878092812769936758845424780230162981469059321097012378602515566638453939932019563127956931843812622911498804600347150224038987080128681872674396014585613344648391589511089228208697891509252685103836226253986068812440785873018032001436679101809785738621777491876328760400524114602611546685300068986024222746413116159316650749311433791299189408096025477443367273399673942546522128921660298798905443417680322935430140280084440414307343613362403474616785647936913838825672505380009495528751761958915098941605192235116461598948029534482396804792448563867158474145333911405395679461743564818758120976193559896303653918796667842120211794746128697819401210373923563160563135902616431981793915817474539122420615413767175419674787388642383136775230857365435377652137342258967774317535431005547279678192288049522573317197713502842543265797645032549417864742360315845539027917253707650877657641829121571451006854519916237526967048844702896777593360549930180296017764937842700613927087009692709037331500470287859511898667095886358783506258201677250280472679889616068565615101750702391519641228188911345551537378562044857938129943710785611850508273006508207545241275429036830979313200375946161689432270853374102754529482083783379347711241599020397759784801996491694885516224412574437424916405334435387553187172663001189846381330348097174668400083471020512495637072430174224592499666687417842912667337318519658462133232376538304215822779371325370159063354033177423965626877601710259862016109765119964012760151639944733167512011135119503120936448699930463162304441085047198989702587171383453445042381935649875652401315434825747446743566143509846419473919781728608445472285820175229546533965164200673588911864096781101948689931993315985161968258886860794805048013114701764502039872387676248257973597483227658234320084411283001050856746937637657990898859648502831479389442516267540356628039560568759066189146038080367813026996048577088340119850017824538123923135432134733430397989743962672210753638690022767215982929381011201319990885200780427602908476741227969883031295622571315077431343627293083176699758160023613686146953865815461072676478708951768281334574608870302200704092164055175310152468020396411330257564288626133114561565528733837736410164219512279730488233989765666757772933821675410564967805476771444764004146363283751870298337316477522536746068375570228669870146401631304043248962569717093073448964081460603177883004827224904087741793786939169844850857687200500084122730174120641957675763281410663587461658549380521957734324734428255138296434693569295362115420070274921770326954820315353368190695819315420878348688177222651411312760754265295399000813173630957094790969373082655680923551554453024242078096926817359739660092271900834533498768682847046264877198098942335297323200399326675614346209538229837014350846168706765487461670355200988031061390456133958185888824492741089720300124268083751574587853778435349433933898860454204332162078425673944009070669032900921875006256580312651653136848907191485752646890340956548697333828366665047226712484115351285960399068819002555489281533219850779444693401914897405779955132782305768961595453000479066914175228370322510767166621288105369201154234325043966557864211057829776713637258599399876132035820777833985262750685230658935406953085007596383613966990459260760926630862591086227768270833040155174893907660007215789815006070359731276990590869631976455389211177364641799598867826769756833768334071502900744001110658045281868405394574190463016116220433432982887559225028351450625637096779303349280305140174785929217479232236941826483074299877997522810632340101259475888525675793346945481553011856304461254947579671140029839362234148242567667239383257154506066505639993075309124619602769506033109911199128382743556593295059191413864702643092072546266510611481658906652734086633544042271598759823072991217508838266113473744135452623948466793446117035356806780899070960534457510380908340397079639984151735925332758355032688302047048648410324412303479534484956217894074584827910368507117907999936803295968845010602105266413092757623753167365344245182515172874322975208467386154238301117762182088572144744825534646318453646889083878617400830367332647710825142917787945257490414940409722869691358937831245311549950836272437329523111190142233703348810057276411391023104776570182993228432637426152802823487793948368688150637947067763657484078546001909953199630455616821460094250964739413457900410674871026479100496101311038556748539634818638870519185712027427566661169667296563635320388479717877821078057733489695093370020610450176812537212228508883920441561601163864837682814008098732319990095372336178896545632612827092468131634832709383919721785407260837147308132589420357949961287867243134422841458398765068756450071729059330599650059802348213903834487609488327232439899540863610483972625115736880415385786905662463725006569799609342501562187886607885276633071512112386738891216278873779682463770577855686130339389881702203026341429685348697657691582902496253079820440404321101124947406467306698376908009659393739904731299943805691507278515078246348396597610267070685551605963477779920715665689062855624294816123048504143983034798618059288047527916507198987854912888447447582445174459834160380688311093610221991776537348888879194209869715766426261178953295663522908740310074270947378918426272558284007842099723027946622062201014410272622017373099221442329733133042648123809872064239541701609807121854069415650818769095412839136800177081233282936715526857942257641209551695559220394120140351864004526130486811997756439541341731965799499226914466579613739040239734261953328608575413339445538104284689263336067704805522117971886127415897238331177260531311081072196104022220151076743914614596789089158086112143783870108884458653150958358857464826190936422376462260607127773869172989922792031245991732837919369642510782489741341482479219064796682690545062594771676483550786032821578373711146625478979583379601502955216026844877793279892634600472144479556318472857373009686984380482335246571684532358549533482521930353965220088848331503606018575986315152783558925682907640155091849768407360635341451596823407034389891622791373490785173139810498914575056758124725223678928720459987683408125475950147653942098790136527059475802177456862748018221723427789143646681428337424028677692219957458742497917820343574205145388926655716411464947031391407048826988352956687959798976844721811145324762829465962318231306285791331188249838028108365714629693521693002660575346388579914138503487672245485130095643327281100302684992996998463291126756062481292159997791649640091014001174259169991567996902081195213109616793708087447850153919977374383877951285600667904494333718601217066754368161554415282255609961264461656175428359012314102365681969308729026735170636093092090098030853399224805634495692297211135134457224252079543260325629637061466391524765844629349337239127436266113142224450738079332848657120041668406207865285963979502671901638280815213773262395596683320482825644622054774623834277067336480820953201819593575847052710944759515255287369014175785305968033948549536117167872336596363348319752418175887510199132401816829752089015288175617655851011720432202864250046941369286529395653461890543077301119598361433204037800611681738547633417692278080485976276289449681178269059740800550157586867993590651869225633296016464088218973723058676821868147270636290575638116212515489703609269246218660666312381903127048354761397668816690263113077025126715734686660110170040416472543718433028232672065918617945107766980228384904097082743591779613649591286643768591102249128035590462820471531535782473181235633414510231393908881628245984209219436241136233965015995888685359801857808940503527612377724020541961041447872278605543822504267143904562411168045680767113288230119294949680148685793859016187225399407632592542511896845947983014489238004541846071138749803468299608228043191591003815845219890162553109014544474874906518830706588182588766447533394141625605389382777984145803750966291453798723984507377894247246123368555796317251361163962492857199394201565256302353869478520833963944923152905083869040536735785404059640291954108735329999470233945999682217323386871143638357894570927134774297521266239283122304358229021719651242396048820746843094928397640918674646643450144575092210189381005832492985082617973248220372072136571061526914215495026397552987197205958154628432302362443834928267698975034637285091201402594885241614367104321548278242043067608794745777054911937359341317967722177738204992167756499042158727497149291925245304298726034452646545248974666901305799288830607567014939032037489975596343371684383137271207321880261046931025090180689334462339788269809749255829165328933349718381480118389262841752141668228775734396250322777031344956018889425322158833582903872991834912412339593788269918671684356455429416138321049304272585077952271974383445809350524381530015420095478082075580689546072631195068779068517253633447888132564364979223146976900707824208005866368575131019313224722870858626998795790368329353406930410158345873209862980671269527250058009890245005657488620753407051845244089588115901749790972049978505738971406124585330404838089916822488505274344003587088012445627680546387726718061794666763208049899137097991707939584828497233182591954188069513003810837144693774397653505547434184475347690568457176186976826948299549739531815380449520108838108766654968612468057445712922762603905387907471078904244862883232484576836711483781397489508126974018793214061283445917560940637394524122441079897687789725564444299527987633617786338962789032375289094435332885053542468938769838707985163847157679395077409764033205275856550865302021175561746391760514081382374668212837157522307292572695495584857320362034735033370021884934686721571424094709268811778594058831231016299982501411601686067695683736838379060571114836718380974020006669407988640181810731692463872154235732863087261118731541712470521599041029870209611255042378135441716093585804223804536213248525447358985013361086858726370278055465609459121289096770582902934105905242770219609675772268932684557666002421270124346791682935260522645945884955882857778396703732870676033838397164598146840185072729790451392567324888750652429384327155642151841077673438638481908712547562204555455251852337034523127873924664924037426976971279124086701551746907781519538617314726430915914856699087129563918318711808458956833502406079652539600460634441310172412134277076419247727398670378586168376790844820537328196289402004831641179878888544595597788357247151526059739835561552590164387116712069872504438660532652714624037945754713322642355106166410908438254192321271061100124919761160988065861875637636476428513024987745161309056119902169069213897365123942428464439446198898822393710108818435620676571390113509623455179585550453132425906233887441818392975737450203453162396933588237651580659823588471832829513155011314962951686722622313980020928781689053087282179620754608132095002264956007752394979182549344478071245846349307527922398491156228815791284557007250678248890376642332330551192984174420583898243917411470506944525256048807710654149551261295784245578069022106640024393424368478595694973624230609624238973771875090891677712981878335370716645348813652019742274722454049706598673768600795352814179962782185648450101581391369929731232780480143767932572852201066398013723111740120790627849897845193358803894537297584845053880775032779497146526006842568773326264558422790429477447107262325353766188421319361330902506323222809722590079192091514324446765195770136608000473912014425740848927069092770443187163540123594176624790710303165615464033705501530808426488853189448828714797527658319127737698579851964310469422802122885023611950461373627944624936191840451466586610043370825631863281371799098504777740949956714069404923625222218622720173515269649093352503577393566473232338852729072467241833183666656802205095107940993271661555183175113934573541260285501326438468018276951244393482546300223306936067912757204500536920225358477510336254832667768922451223295877986436622846056870708589267730634208742498756748942202339072059642151652327324309708355479069124340642198694322076007312608089714112396384854315883941029047244249590271069432509292187120076513114219828678353314634771065736948662329803279227790443772476193071813167739008256711583076365750632617632592961526184986430566636026664915539224248582727531800535813023406757211834701262946343420947693681506584375478702879904936072267223784276202248277443514261225263990935835985870445460301919430819554785691259092514056282144399780838312319822734317979680280030641439989818386657837643339835731828528721402411727691216607917798782144958640785169986301326404797012219583102052714990135389988096097421157212366948472689544208276473980681246526210583349655487328734240779937290489392271813612824622013348837300387031212711359095656161268528816114463163982435440579430235136329063993491910532987250753462345712255907611906174328838962977672045614630560647505414238810339908032391852142453153294507184061745874470207525890428710393226628996282777984569549655026485676498857224706279901109788475348472301784491095953285381192042463903493362235669642077550854025816115282444081187932255439018177533079722873909550310969774353394927225011453260539453372777658126202920727947837377416157882849566631578925989611729246654649913099700743556336886664599526516835366058836394999897027816379497084394048551766233778404738958203501877726251220283810643848843926646810563185739976969349849508537345813589030553383384904968664976326206302528161981293650932229683042922838896665421533802095738033967481747512488265776989343744317941758725518463956504535123262144738315310423259686829847067089275614083017974827644289835839172679534401370654728747291333318684997301452077021422791633070571025387516475233443515028407199456704530516250041254252986779721313979134258201365474318184358144622137657598522575637526573550565525040583936800615913217598312704775615387351976854201030548788104102978516488124209207665140058311207461029387102528659267535813498114771214460955744989138607791222460529109032220249503866089133553759210987353611169818733987627246501712993161567543758932360035458055952501290187003426164605507010458674265777876192998670225604494986267543285900302515003874521820184497898317690501622713860998314044945905568493969999984021689621204756129213456356445360856080898314646251939741785733541484109100797508147470487999140575995586563694259086727625465527114121070916566642648935632523250295928831186286047863234539928807111440062627086141675317981133775068332174760137692184663860909574314826980285118259569697037886558860016855265061333999958401802486691775549110482229444338021515993723702216806565155273155325689011227488942466372224522536799526518059505400546963563825833506345927690272128091105341462085470619719433640473333897237766406732103904500441031258030941680927314375664709852597845563465162241782869067172971066769897230247265525517893231947609276787110551568537445117652491596580829684669011534962549498364614490226332018804457758553563738859479616310625903933847745909616300070515767606588258207230216198007175689523053811318156349452936770648266562697645331644083822385379057358691085586996951683249733980898257722206328768852950245734543047965313596374541863825239020435662807529685468198868288139047583676239531781509851811718322189258762829736165810055752940867652186075531904122028329245808953130032454711951553712571058738002195895944034310893502521983567890565543109578904483783433264907891514363122796462473081842260558114538453338555282761023615857182657803932655814334393579793212743586682168784045544076076426855920144413433648152379311991511409356889009468072262792769603022252476911209667688788802658150819347674892146317782228177175387378596333462390658290473659335111882476614947477579958755057793085512859122692801092961816131208633876553889266955296905314067287325646765963724502606660293579034718645095900257972687742688195568218726344312158393143241112133893046011982736780744560896547044642845538454452792650722092637817842730184950978353938685665195963274601501732256025351406300419218752778787203365513204769121456359667908994073886682068492200846959670073403857719334532090595932483237973825228190619159701915183996768199038095874426791122333164748613442705111464669165439664787479502960218848840932815647816709156555290642270248728084445556644082152827651348501654908601529497782704915921497511609074002402365189201926547695300148050148704855887995634315518479298880095085493593067475601759150224034285182156583656837392529700401009735233352278596058141884425419015847924723180543947694786224069681091166793050796742965717306916491163353824244041998288063106372090233291847081975387160256282324514850015876140326457386917970324790902237580280898816781033482808160548988791482066796204511045133128952134012091365524126736758740477201961656567100631902386051328369965910621879095440999467798700096056747631305886593374896111394183263108750909099178214799067244762098476588045450648874102954412588066248403919242222176649220604764476648968082777588034503753854830112810880844237323690430644057651996731431369500457746770957683244367643385330226653017850692355678306017630701265388931647433015693029960336297450373143091747791300126622926527174899283230352807412658941569657502316609964045248000193667052441158450059613458407022839102534720871684887092237836057428747764965441784302421875673003081436152558740473929120616003428651901893571747236013620273088587974581209793430340181083533296019380408965655728589904263400726866032494728382149063687200632345378386604892441368427010463388965767314506393453073212889242118688396695871195204791267994524634385666108251824128146219329027192556028093327608451334121177154577785883663365654786589952686997336289736064202896424955321577162387077979227579765229479172397520010441141410426087326002000855436264020459918602408288765682554476060359045025506996786429162616808666495916878062449558421346119172294760559426134271023999716667544147315795417673606834690498888249045068505914213103601276089615259567732600423280277262862704732095913442096081695201267642015682107657529671167535822843594179437371023749517525399789256327476628512135321640238988888096547046049904495090633347260335150878967713483258491398961108028192075229460358075264019028323412436783587600214705505848417431397145185258233313395958191480465543625795058257593915648456022633924173547392953922386904512677040150463676589159755529147719784242946042802978381952911294400910120607909051344471938259742982052635187035215791294736669297818037680970169825648507293947862008300629054018181672089454762695824451398412187751106702053388370566283772476486254496005249240523220714516371811384545065322109771496126347340058266779252060601814033042590416816415793102344362499877876404317072757431941080766669809275401642579263675982167980145466553440843783781721789311421100460489109575213447488609163588328708169072823033096662147894447468806344240345381555784270732767062061755173453184051130521163454691299244555536903318145970166898329114611351905114286047999552348202184508894872126599178608793329831137125478421734073106584184380100473885631302974162407663985894104579994273449567396740942362624860377708290868335817946023688845067782243770745967351058648997568504872161146958260814189203476392501459668260287279920738696308259258246183142641632601481934225253534687330541019983899476783129343949779521051382773401114595150260500337048718722404736460592914693181499418446327441281784926709585994590477359138636430744465802455926511541204084938437252013389744837853567179439692510608280867436268133075714449092718935510311910214514034008796669806012609544031762967361864275408109993974982595726834345036200356929627024380399059718692208853791008850337199548239084866913213889337025863815031505089704020936120374472457691185839994456784743295285525722107210034825926684817241384808518562635916294665183516531935295946840981179931656518368809658654824185092632421437765939732120051733797289646328092038231294883223218438976201663995674713642358413390081872355876583782909043572494584986593834984609327747632606749759104093814025128567968564189486583745939237916831885731948454061406092717409990987006584411531614555389461179337697264351527715436374738627864930181643788055442222907338762128039254145678480014077791307685824737278104159269131195559618707747367208991527891656065806586702525973849746108115540405449299728600103261404441840469941546090772504292424252432198941934746447561404989672019716031551416299634359117750061481169186735983720912954760419454108773245292070284217094849424007326285440541489026087735095209426592239261018892115460763074673979209770979926048503667810745764545347454517203904851872418695477088735612114251010167278248478569904805888552044595120052030731235644718627868590720884938936620492441817887269024393546461649496895906724599554447140825976804013352914715445414668963694415951200531554883073686052526770175048905891735361354082806534749571108031281529083284460937043232166719429580580766904900156369613471784487561270076103146964973843536276257871947363450727666535744907480807556907879329762807339599609266524331271562321931883857232232543396732487218050614138283832015166583530625193320563654039436967166611919570981301902200617695129578590600175416131886513999232348866504863727127365242380998886146318333524053997530838556914601970397010152278669765903843216765498270916017496019690111446752570674257226557224149890027702134099503464894477527994636616852999185751195988224372717126209110222332528495332278508582681881490105556831370205718258667092590588457999909427594862070986420701326604484856697815753539482479191145807653693139330184390846712054169827726293775239725563987462984434075242095183986116960384355495479789463450471045970940181505473021094885920989813243941244234354572133383405800336699468836568503357831056035598228016656458620484491253532754348246723717946542338098108822523969629480603380340799606404090771443260758588078627004074189747288254574338372900037493564564188259797824779193715149376253779074512197061623217389010845558196097687980037102096189266995189664838944627991497525059051115597108844248901377460430570681454706973872196082280032073615109032294167584050950728472319184373771008365748457788662931378444561304650452278944752358449702003601149662201743416412999707894243402533910053057645147003167168221554053572457090255672191294299140169060456361466163135913237664138829356876211732231126133109928595272026792960213212877596324555408402971471639858074860528259953714877210502164981086580678116177070498916110374350528928773663036242166936257128891122925001257777482925646900650387067239191552951161333917151925617818257623110523748535714903803145779353760496858321354628772601523874415041643372176750964766174319060380368572164224948452827091165443712456635280392897847312660526046387196772543123508838275157989790313762964996477655625609864185036215330795012935457821019847992964070115823893322989060245546287074664590602609636393121354684707718708581348691785460178829600961735380067452740303058756876002427299366222189021535716634325476097272678327846213304538546207423599852465542046937893859207257070155039920841496082573721596262448043250728422852071714593959837583356244451954012079291938246442047695012341593950313777294639775326621886388600986396254393737034303702640717039494145269127314393597642190907069158044812502604802348358521295806812615800913460957494672843162142443934086375009444446402620975720772292459233614239308609180063591555589722709188585040202048850191232121945032308411507170816239555643382986359950352948303881604351990300605660041929677447831469579736254525417582866187199215398244208190143489370237486429116425528435670275629365151550662020226546473691278273472287457515917954253167511050237992931658312529013534314881358245361347609076496305370497884598089383053714720005557820111689466986898116681841275748281721791233372611216605357847949600077803055229839690723016486736073882948545407971708132935530487269421804735620149370868639500599930454591671899828457978211120825032381464899969450239206047323168228699564214322423657846881716082560141070153549261607205090245626242822465893573427117716612136101650282278252958833134488529504395179630740357217467640878326954458298391763178304860134707233592981861084856713963678495799502010520090089010387926854174316406984727468233033201445762903541314548696485996311478189242400141307408599691824212630891567421154692326377535393770719867489807402519412887644959294196163271312146547605702295430322674985473708492952940876737913133649687312678101197913183946561890709658981604378404030588206077857838576939954649611029800401276438872887045017749481989123409508872719604694372355406500290364813778648441894695677458936972397847116812178101361318288951267071931242313448429769606407077231416425639560962207736658449324447156370086974162971078118073296184276065124621866386360221377819041272042414007335444383550720071915589172519655972546405965133761141035592553901093760615733794705648184719119684723686446187166990368755694122177501972085247499378632362660527329337968879043286818169531950238031693686749200882617353510924364007160601174931698039716334346595265287817571165054421216088146583952807415075133394108633329085389262758938092627496279452232914195359618771724563491625985881048794691139390756499091244726590932245395520041720452029121075476456972708267312533153024179951618055086221922297978642701974522085397229473386064018075720458665447916506226570504167179409499918901200670614197382780738057594495203393798472351724714615129976008277018492813438818925407738428105637465780469197784782536885120854848971608566335566257645041923617182019084729487973521755764111102242025788200820845482416069330487990516996401194673010236052132198005881715113295501845097528170937159213050267691938415266815791500349864907258389414981224744051476671156164577398649228173953582682190230259127878794299120885231573307679984770740647716378433731740436118367097111041475686296125969104075263249842562495464078627168412791282480369443121886115434772381651794046910005430288447105342556764277925556541038298779033891349376960538503496125472384338500885542385827809987269687013145260844229065304496488959509641477581788172721848483412601085778387621515034560392814920270504683495160486767733587462218716324202759948852262051725235451205491956675286269363084896208582324988906963205284048238258825207649245939982255079211860650361869284297443172885475757796309006925965567908457079562709525184253855666095652348541614209799309382419473088692507474895508106492268822360185166397384540785138262780004328431048502246831568131754107939928235641853080593851635685371299914893235924429718274263161048865599851799468148862939104447054165090151312060390175767306297290673987598377536993414857447024877104171551344130774152764699235428128594288516484566334201710791675430518461652728735348815326831636923648145105855838039171005961529534320905745186040639989517944918286973123386631524880416828385774247601954112433252007938255969418492117386298229857738920373441215970836895530869374644008491123049183976412044917864348956525170209445192824963700657032239107344434639098203290288333416767097665278194772019143931499344652653245763408015797679001208255791614971391492048720767383646734988713565615013356312770715218679217088181854393398146249556084494332526955382640629815109490732795216787378540880272673656568236986045992140080954689930680191403273692734951573340980717494062016282234969828212259788095359682615685972110393505263772157028201807213934733165788921838464575028414980654175438177237855030971321850531291972628374371430795329070222955343588752041622235819384115638402376021828144115347918283547968057601259458644659312462740332054950680951978168166091726987130628367906228666921604463160934486299823489306872777984670257394505501399705093065091208574996452810626605304413180650889138690550310274188340580988907096864417194359466929830258920627912560754103667120463405782846933773712222722500286040161103462927525074948020866757418725542216133095663005920672904055646224400392224584098110766809498448341689852828632609233850178704067979224865062403797000261864959810224086552437552993563914805419144801306877950424544780226032920765522452309591971612038418177927538138679960971144276449981257459114341814599199539317876252181642953646452941967103944301975197513911936834096951434237526941004001896874637478127995952229992525806974346488955633708966208089589815634858314329923524462393750895706435613117731942900910692479121060998049082082953321355892172839843273746813304549953284326675910214507282671416514820130249270592029815042782651325131343501494816018157896184401681829001802493983349709256221627752895796591127156876877911957259909315223641989624345989205610745701906523128775593893158945040188640310658879073027244765596343320685340880948253928386425527910674669743684383710645887168285762283579457689112227448270152640003942099927577010398879556760967793512305791756563287122859480194536719432660864177430024990673587977999945200589859163869852974200564311113990093149082711685653603986202567082112679387238900677408094121075609220434531149329069866945725944435645647037982466381616056675867752067798759820707148645014014203787883704824597502468666149094776484445091819312527346763572613168261961670256060816916437104688868707138493586942053348869753341913169886044160264463570274927565185776701738245681422558803275797291239211192612206920561509963995882879333122858627316642928510893212743422291205855110029591938032646190785217247708841958210403880266089527480314843065433087490638564956854574408376802613580401008665724133731627488556034017578541622730500998752702773720681367576676644049112856467259758463434861441402426423724502592282610266990171319291360801328072791834821476364921234570688601906137949961889981487371621668831397739980111100758134223096252058064654096002572178568982453544855592700132623472901139806074572355248188992481919374572147540410476241094360057579712795384179811721334030508228803034421730437288370360494259712379562008894668994565023436397292576065887000844929624145706332049339430689448541384758800426682882285278149070747539653885771988761383139642107578236557492131721838620158146368818799367986484736687923452200965793026598136715838746285749684544001903889758202816873384903816788423264418675312858327596184727279206433049257995507112628024490533062194632007212157491375022150292803080749304853970791852110461388945404101472107130744568905450210067957660559361103610710641363062907685124224012876190880926303824385649104158630581388786477046767429795561228219331749927066373054280081704012225798015934182516483759727100046471342710431853841747189102562776880316769482186676095773557601058125695584956835765238599506922129855697612163714226964016180093914456039580538080043736442737354998228724804423231180038308683012248229073570369251315377984389475037276436783598461969098402255936167328395001580249909218606183550924123305942053872756137850634240456550018954887706657883509357837403991143708523126562729951355931698832361097686287358700301727410985064338406840982024774147904320551403371186732287685971349283568100466382792536011962917731444726007494871271705256724841300889280378685226167858575738532601187664207008307760914909123656635211683368753260065230472677988528836807155702459389663435596998461098671588334619948104784896628526388352800751986896038330880564238784280786847377311562285462436571948037845552066045846406792855527030749917227761437846182871153573920906974876293040641607584942684009729081360663040063860262595150350162250744600687200898599052703172212444675490109682416352296665124675390544466880275399847823612033033968488730546602362358127212152856381091143439827185701968466855242016750180929708590760968931985474214392511456981667912733433069192794213909038368193647351088303907718515478669564633890520096339804552759975408974129300597218383256233178507441596006113027660394931887879126819381410784204710944337691511715111599671027040681568208008746221355435375252779960202647724619194992207718470770079821017848139657215460597003975946595331028055749130936097981181847459301370256667382304453427590549659939295968709252689177504223413568617390693933164716285444627657963037802646066685576256595633962488181839112497087815357843973971780325698303906801870964162915640088638186986298466812190209820755335728526746785558859302212338135776629658922006737882278064273801216356510147881403250875323716413617402817328671197640108930438084731361396905369215453011675856637093242173114862172957895504296214161847921154923575861088809523549996658786969023850598762930447321008068306851034354018161655627552866147911230178335955341485616711284488564458253099399737936964778890135727433835329511462199618212049478331439240117142851735346617479839187975107285615364629415920595477728510224782107683008069226851514106487646441461843316707587889419697741030802554930251285136229777151128803286648846348649673267705797691780877615315042623157986245173597973330138091167241017039063433844388429227643710966634153489513974103069820530346724332739647494533973688905072524232909354082882212409375758249010485612136223207452253265574184575709379701896742933664403601693732816950610706575853425313632912458446803383002078011237787962290679087991404297553985863086593149042825815101184024074747865228342944258635064834477059138932398503158533866681929423307773135246286854453926414481484301063961340380293373516220688577855642267130924338749551437751356272981155950762516047148830751298062016359990026912568638022570314720012898404618407790440186915299101688135577132640920965362644193247152734467988336661631476788665294659972211911048819187161246106308266396394825790111703140885267632968718127822981935617877275509802251792431066624362440504565923757812225084518477101960033737362762309435327266323537058171968222481744891025846146912743184446163996207611584808785414583135375066378460789758307427802737479574512680105135188598693958008539721102166205234365504853096667967784389365725864280844592861905948558356198720404182740396534424131647099181666011616839650977394058302674365993320900045798718688058723594565163532687227353806667608299601815886213681913088499058470597257895100740822756654386704596665188206036989363538101540854274692283505936626523801006507695875650928141356253381803820184744284217767870367515944595038503918406828862581481231956716070241737387179350764745805264347963547598947853394251380004250144084677908475156370341429377789171852228292045922761272713367330239238731175378905508103638964141477570981376825901997513751699737600672825232793911940601249200735291803209749106672492215484468030687700325268596852809675414989326300039313658360123195707266120667482622192010969875539373255172841999772207368744397452503769339490494652790561724416264210164144402970363259613367335041943273109318646331067965677625855469419702056470424753726876148462939254030434799214837844919961354249885318843300463457908878214550438941027231477049070117955666540479727434087117302575502146182681309476290466842296747857619177216410430468457357770497316417619479487466442462035742414914884478349645284277516738243795243607346667587673603596065028106268130177198473205333732096653386129697398154586606081377857556762375740816108494933732955953515092249552858224305877268682716328712170133012714225702260078314634200066168315853554000793778736387127898328668321380107192845509461535949910748716751547426289977432836653124520437574735042939082976543766163775199911993232029064252888631092488756104753530673520061049158706785349147384613651103815228188175434403440116277832216290673416577147540540619666451989141830520524241597905867170751855692333296522420642002689581089238761223276982646587707436534013805626459977160405741346209170610675847223533358336661991448228310217956679093667193429385835190264254053432592562911986403011492671249302490402195023827224354403730101068618251999766912844560470215355877274396822055927707572850169898986864989247097721067336404532449106107093447820189459711956137776313312562618138814859167735446727819067274461582635116685567566253967157946229025562481277261505688256211864491216399828580745145232195078359989354095803360360434435506541596724462192765058396229501740383239713815606955309872491587918059213059409719379692988874911722133314876594418240463956204848850428297960795142559634725278454099513975337860059383772193798099392539628763290840423846189823691026045228892146243497133061484512555103489940211720718165500109527105608648335753868868208235474567301343808709182211210086909029801748058827482379049861853487580324045037305845068171661027747107680563517954202080874436466967902762587030356088631734385708152018085289623418739682703328311621931018176143302710666898383113950439955841036218434395607040398118026625766028290615281443969776704754108669448989484882224057130555953784803898180445912373221733043524699186748286710352543512150071015275571158063726121377821078148122201172893592628637230269812468642713053805851587755788962714092850339858898773223369222233650410926381287637997027636111393363863763270718391520661968680594552717994961412854062769921498325192884130891270875869166855881782452055888804068026006289398751795280941718125765424263327061905501771867494434945592480411168627900573277586683077672671092991886594694562294303047387954903603938623678562284199212851683549932654755812989032157764059909379697733630457707909444174358328406560910273929779697472548820364084187099461109060648105411125371020802801754190126775358210440930915441292093170427371812771542590903456853428308172057821424196801787825422383414172587483933442834872100852695045641754562339771111109123916678685746562475794401475730745117979823524425981557670770971631125888973976511851413899184427827998298997685039117075042334786536175590444695572591585255639913059857633686579340062647435521462922237537206865605643655240696016935528535478899876105552229529803405965591371284945078383750132098519729187955172113268766072118455833956229856781938445326354830909846190414101680482785827519464825619839656249533173301813684841852567520093982239283741236507670023653747463745415716961795935632236036483749414323405243081930302913680267147571672227542849802966355899553799114198934693895985034720239466366285201585076454372201336957963664523529663227893320840672640923632785973028983031946937906054277408529091294905926982255623680543538292281898121977056518666128023099041922963144889239540486993014745868397803038133874638924334929138569452184334218179969421768945627591175147619943376413769599037603843132185446665115084436779365916563269977821550192819601782224542014471430722415424680465089178418127256454036310904798158816328971308109514364387131656649466548262226617019096834695572834822617548329168848827906228165710227013187065690838939851062007164045499713205654792348531440498286861409152839106138476637896875617587006044369207962530030530699698641621352867914967183297811470219910895038904030664163481924179351882302869881401171687014105023524873765254047484530066610512820922149317216801310410265379046969012906075781376841409745076397510212077241226594017692114700721922325556767152579573005227567384663443118563782206688476255367554613301047983455646977656140878606625223524027633152666042710352425736036944269221813456465770984188847950415816450705043529109975518425172421828879236588532902860911138671410445938580687621454572676559401068239111688920985266032955582467994290204821709621348250810243843300418418762254489053325899002626102699628784767182667782466079243724491016968833385156414994599754219614421490018967655067565953196748109150761404549035590026727871448450764871277348844080305867192479653200794891966069743305248611840319824507758896903885326145825848408857975253857296161787259957127066365507481605538260809216173431239484777984570692072101289987316528178489585104030220721585658384934888367085989661673112654129217726462698086523244427186879384610582316122343601743131020306054014291746534305591671821768541187864973787617901286435358602173735302145424433072105998609424918348342754547779848298346516519872479501804352130712302717659786872313539923412547668047443568499165080794221418100915454225676392802834454505898049929723926311771884143806723737141347866620596878633321649618625480875759175048586460245273422165261050009907435789272706785853183475690149101692206870954902990384131563668325556921981264388366771848907080419259901002025091278696257443609857957079430509020955300903684885287336146549538825430604216535446627186650514203519058813615231790840121591462535175864424509836703293691176408043479879128464073310265451511418883078331524089727015062395731169733267150193909652867093404885627023361641027502699614802340955558547919143712318768866953404249635883068134223735990045625661714319834770201068112545890605787957712749874868762373302936538693796306076268620259187855786926822885794485104178552036949444222945547445585216707576268723207345378501668441416981464970140757394596276825834127218000131751680365691541226215326362118356323335281932271833092610794861473620884571426825066413385366377904278647212443751585430894797872382133888352849171411108508723235646922351990926836671307122358367395925277416142672831566281304277685327325066678718032750553059962059885376501616711944903163722969085223256754428115430869824701319946151825272756589154353333029634913798456026130363789335106634761312604533925938982970635284273273905450295099165304907924859736092331231152691484778220857358264479332168417995024132244392327970992572522498495035191810325387649179069490631769809290964195174662169908220908022803056469564345209095429377307549410957805470695800987505826713575413549071482379187690995557328555870631233373096583816771029229655222117137075321017508174928019525866482795333734024359009287654098110761181290655926086456478961390444921791679425993008531983385815947093853533115255866412257546399384211031080371166415803654540097642740926825403282321207598769884547307152925232279797138720123309514652146772297153414586578863464543078670485097813291575824084520097757600711400014312241139207165533075150452543014117095063936004545229045539408702020533614043434919633096699830338853973573596420719466947402307911021053640040984301367606062985226609251483624518554596624029954911997673552021760004967843042830141148461870803269774679165186846461679875793326383956114820243173659853162797235738490814954601648667442445995234922026836882635685596387253738483064153294449525774205188277536440079295158688323202493827984432319831566352883707062822427192886231394252063196757371101184089501862219126170648105350494469825600785176449097465343733785763276330722361545302927442173428140612964636034779072594183285757831642367110364924333522399496578300790140561228593850929337066261508028542553396007228736297220161942175321471066111158058198585715809884147376348668094461093177403590603344690932400824232702652788087129340709273232368839579552513596349017547093162459836233445305796093374999550919544077176259062114579904780130561778403875250123042563107725280889905425408467129604148078523139609073226640568019530833557477947435975821188653580861305171798057143283542367102810186529192335751470109935247048624077389876246476085735239434389601459801321965929219931226012223921536353265266455108330349869770609508208182559130608514025256011880992484797021601925778257250221225234445330762002351420331175551102282921814085948350119651311410198672642579250963875575286230549801888399041885070387311998842686777192154318215529605284405815780291973448971090826536692397359148428272818106264146963923107209270041973385624844562508770159068302941477731156012402005069831065485959197058736101672650440540645888503470263533230159973836895320772390353322016376524643932854712468257859338679537965799095556388249936918242250676351594002808504059840431377123282770239339150838405836825067399185683549446822800101385678151236552978840988338454195310423925687925873336169228142029137502910457407351063484535875695251676419830448219990417398117980993487026523863905888812720666499642927910817601339040071917393024816542002298221023963805484863687585792685653246166780189960264562529829719079483306986010249978405049440476919267246190500365846054350397361157095237966565232165244669643815692623835211662537936512912442391075112765859655486041188193806200559158819457524605458067579473346725090078522072055002476998190876593921079276297239500302855209241923199419427444258628849069450797162879375030965894060978473052668137634856598063285480137477612306802381746235301810506811622028988598245794787963841999374783038262845952079782767530502825291222150622069140096692334047139168609667382871049029871105414657473654460706433669152399900541818461890646384929930158665542637396822950364118996443703993299080353924308751105560561035988552036844767546324965538613790111382404647308355452074683198785139965570257603479873115372507115355980585300325093602545582444916615015799124393006170998796604353256255753783912748421654140719885198166673848878122548206345235780833837596189267747779956138956615823977369952587043265747844804030080879098937470247119021642408786959685293760133238107544820624992020335062908036642230930033650953103484519127099958375120594270178776172705468961790467944462633313643033226436970722830128102208557680328817790899564492302889325367505774585280668687519916850485362832641702803743181018663788687618809626552455847276540556940615436957580568013516069726918834217275355020693546529153009566764037218930058931564082133335102461202519177308846243220701867726294781083009743338797347823422667524830150484732290455922540403874538709933808016590355001439253391678493301617793854556485565907669603880609707460744715685269856163051305321314082036701534528765009506984589563690066592392939916957579987447797268951963802210724002183042906575107901952313172479342950560566548318859239711767591158449741035595667223135587759985045968242145365600540497463657012468269753396845284535736417271203238860504154716866367040761487262454421790809919955146344918842347316376502524067266945592215800439620400369648605527932310832875507282984033666073332953347152970215425141274934235060862847947114554364210359235496060589684277606581383256816989208059953912000792696069413209922204385817918472758610817765377000448799249956100759845637576923485694259015988756388644300806962043217663534675925346592675842196773089916506313888991532817357310695302475015820540835998183795232949711122849741928016697464300723020641104146650825733076968989801445981792703371878483833053950254676836558601629845175965885450399756227303843461381894643023233610575731510825673158983075302431197201666459966173077861033807137221121846061827176233018497882270443144594943718968539610392675621655583425091746275760149132967309379070008312391061297398626601829680834747178192232038209776555355538318837070610195158309658840946045636103590331504336482884237928472550974055028585264824556550326832318681390638786573802240390436043229468170988066087283949394008581800532783497885556149951345096904415671508543909504918759585428878519838836537188737984069732448029719298033553760980251429896199225682027005701024000828205237818062552356474428717078256338740205700625152719648276086473696108401635756604507818193229802678796994288652804877509576548083028564626400749203058116461690743361937217496465138078298427830009826410404554859025936784436624692790271533455374615933601197019658922284336197601962093354096207188674720435930368362913526990222024161253372007489799094293868040510378100543031796930133462912360632134388317854482745845766218331974271455511152332677679035473542148197810882955898947111812918672069816664051002828740867891139294529987437514007372642768776383987120702636112100055217276238306331011037022184027248004022165286382593333584484201563521201225753762483779393288863359422838224861900338775339051858793033299287980536281634051285273533192813952475706209578257594106093435881377458847068697228305269545095074057062580503779148416830501020708495696892169738248349325948878437837846709139399931212064649730991041650282008802837681465590122803644382645164909233778687159300307290071098479274873047083266878570700215318043545513989428400954733448177431219534009831812970828426097582265021918784050113824695195652649955220752758033624594984630240737224922825342871523417978635343388927867414255405009751957269386458458222613983696566010758108015889819335942192279957069076947606736007999859603011076829760150838883533251048736426399428170849896249587553538189097458520440511203021784186384091057193755193405167603415118891094647148147307861536699067151579757742525608587281959593844086211987162703411542601638073455049282754949840218515806925610545560299346255350925785894834659987132006579408305148808924928706956617139240346854632046931423313903080617734748258715806317451034136866731818394669412722413086745404660262151513106054781796188418771921035433758687423382562763585554149238092823803861261452183080185441756024657800553354792091020008462279932946857244218267355039988395037067009676153891959157489759809132965399958817864466354636874865734575750302381201278688705373137726431540211513817547451197287169147420177651757166760644010954431697268814904218872722738436547405632554584199057760539446374717725517973254680949474726138984674891335279550874246934578957936745000634533094233649900935294317166454591424587358589910467183710648157436842442235105613989591150210489475539002581015862712555062024354619558217568490055674112784726024352269905330428765735752390580806833176209646523558019048521157125413230089159938631933250379319454002045710189389880212982979241155460521299667860039767335518582923832862546793740187393776462517273366906596120441056090241129755950072817867807273608831307433835288145505788368721371691429584349729244106378919483605191138041997428954486591056035329789401749066595805921160084440557374111132325711815673749759702266040908430454694710009472830288909663449302830533470106854406950868428801077370566458862374486142480437513722584759822292898662317259746504171175744830208885023670406116450469401784860535296756022400777674283916654924178302799817027072336563624400400918942642962222198011272854255442188747599157609945333294214422413493650322420048237434101047961693585390799889086536975702094422947538217050757466026105571966566771525060119928415769546968346708910716416893314954675921559764064599262351940841807196980209288758390095563757076819162889087846928582177434250288049959621601584401524932107181379651445731721435865606205040298608907120213165657753948868653549620666125149525153298779452016022752432179068757271908450151875523559541002439127347917978469925274971525262254376185891476725196651225093590976467444790516051012549695906184746911592905702503259138751190456318821077883173752189860039110702797553079757408525265728862671373777777281016722039889105917388932130660398781081422655672332509622161312161315429091411675543994663294153403534160629325242924795934905357040590093908049274046054222744515642034604400098361348577227787804056614490374244961992906458498992747549673960276184732375474818136967892734118297433277750593210918348050895794764313142889167827733833811454726589994836233610872266614050102937236187594490394101872205232002652949469522010070058611570184800425078377846203855808924546309914010929011335270729521269842572074180679336803703864396482865141302361115054970470274909198629441874453326226992511834474675429142412531582328847437293297250630201039710143720311774002495348858446823287859749408382353387282901276431789584892009055363050496882642188648491657456897133878998655908453207593296553215529443306555316618539414106894293978541972578756247719660378620926313964130421780366486570109743181627155867538033200566500060143590293552062024632371720212509424733476225876068432126014226259900812614894905598033449536961527324047325397136732462606307312418522561051270484803106501695327071193624756379107484560430395119234216987632640547950913225451305113002594165800948530046686011898607075203310393998610691697309719192443245836863848712393236658324590984942096670021949817176629140587008194916686535346159506389492760418237474283635275006634490224020382963135232110370540809710089255560434404479009016185594633067909761644887448317493887176559074670889253593351714930898953615667390891713025465461582469462944829628783735694995069399217727368920945161932864316180120875178294812106217783115927419388464001804641060819020205350703663019900121472179522111387716240381838668165300509540607153217410452369857295848407182585387925427145310954452581087567683545441498113226534552712487305087199448014609047045373300426066705627799378241925695333954596038884494241052833171143524492598801273995067912514351702727921596964247483447886009299350610800739997292576246194865192889717724159090063677351865427072160483937754301286393147630669232150346734105979469961517886295884944880719645189856735645579057052242778795706272444820347864524702344555023420571690490107405716627613606876738867189863794827251893071597867685000480360956286529951365702847158317667336081583219288352771301882130805983513736070546252252325030856566363171738016271381849042790625196744331079476423628822264635549265928728922979703226091639206510911118934409602281700582097580710933802701690537285439483386164709032825630087145573238504409375455785595691342806989205980502632910748997524198259812421232177611878204402699689059346287466377259768242866910337268181522981198035317239019399425581084872663578539242096241557078484841335859071870448067833918935543659178276619325644843450104630068395259442880906088708727825398692211773161018418947665985440461306282843458889772977732266682265521848568622220555217203023961891546376722689364502705400191569262042485801741651373842805806836358864428242591199813475247161331040492021761697405973601853534725655831568624046320300137135884560184820883278382053770169431892000815721083079941169482396864354007400123264862935514642198665727609503133903244263695645621469169892213834027710309057376937901433419479908414468703280754777454045243439533337937733901836796332427226156952439659716566149949315535616079077475781606687178266986127701315129447930211316380445871738922002191456979741144715556988940071062464222163473767008256390813286955336643323300602529680531984930843056155562906156709408737704116331677803024315567601122610108803358086659948283087102673544567673594311580493312267871326096693755151619794256662579389882348558422496677891005872223570816900720633375953497942507247252588482328924359692195180563915597695198748321297900267847388610751329101700342025007616016047339392479939429022883745266322127170822593410971925789667292589510450294930845235204333536248187243196459613125494470819629942753822791932334227874436191594229187829062088129036508059272742757042795631893967188170775650273121902468807236794636779267612748775196847450113614103376808833564016851172648894059616839750575561735605400031727660445671285870416345438056716241588543350964842475007127778890265111075705860323929930034763104085034075708119791326846400073400046446685321654017425172111601873460987642999593637485288777522376886861054743885126777090720640705746595984410059760555821647110606683284424576555837880090231804138763723094588236018573231894564196180365615983398481158590887929752461236550093761953890568020837165161814145055616128376467218469033709918223074776430556285933826583031154337321131570200109112316039132829439439925723298306998471551732148907296178162598994173060725039547984361463961841829018087306540944440785936472469381099458221790676114447783145150280556489481232024491030525005455760920031007247076338596029770680465953715999491508880903728332566906199179309842104624966571642755692840036059250854908513699145418634370408760690434776805624373665173611515412647503911735308957826303121139847566672516266877786779702527118468750718517465568466180324790245831257299883252229827038828824937489498424551707167068894367944019690498808009639439199961597838692778489310350946564753546747975120668679030122763723630539503571200894126043084669677471305998701000481721297480201913404886631562378434388037623353265489110719477085912613288622891814429098131825781552789749229395423791649635748199760208209214500547899180186880426477409652951211149934425277771758257030001137596315852297835976093951110234205184512683753783138581402027019351141238671181219159097241576715635716830111462664809228663827116058641463965682276963883192396916331101518514496136492244602751376841985290851441438453467376536235379182838214728331252388854031255296587210119288042183265597503671475736092007362216825518246766293599545061162405298543050788686726352167016805993390706537514988756883801304370671861259214700231092217621305459966851610404900575545292815405887882603777696317280997005999245502508378597071822649232499715100882373130305475191302759633936980203128995256688355448951042854103974306071910494629314062669116011828998636198631794177435762127745289315973012520610477743029415996209073342527177388616700589805211703738743152938244198173483451377302646443993769541916708454243862705206604340482926054033107963976343794315714791198003644658035791327845060254008110704284581367392266885497756420205913532017799502303268952508616935633067895930173621352992914919563685330140869126680779837852118222112795560967628782664726165209597368158943842220890831391749873578303004584405629327739322429504655386411119315472045619962495949469669976035471915634101912640636746618874963243549822098845193475675340823796517255117036121796496015087726142667752009599920039180913498750791961225443317165371195580445435024743206918622089584923306343519055472048675989181054993307292834975328484990922980475103475442890209045795929396283849777156670541179971162875464884214455198555988122002847408526275499556333490553830899677411069176732241945200665846949811021931030394260698744281390899764593670976194476784921374751912944676354383949964075752805165515521462646527114029291951009773993824390245314412067968908923064457857302795133519021172775761653115553789511808078061067585060374177018906610496986693504445511599692942914770386836570406217962800790657807423220327706773061322131950769472540784201523003349998990100786481062248439490671146682561402043188192846937193668551181568451259169113362162093017427378005088078868826715693256594874671003020782983787882422695241588928335266203957938325967419398416915240843874305827537912628456603940673593632691401017045624722964463421495982109669877432815925819925422483956704597791896780526081811534021890545370763260024912190871562551793487506936894396575933233509838286161958625528403780383274966642303366793091254244597604250339025627831476323670717542797029655000582238490481996211740508356316777027479965066546904182855774761116514548872009668710694768792326122686503878064172861182853756319008298752852570488280362702323155946819914501323171467155531853943565504506029677900371837119576234948845188714956067614417127723856914063633850202020639168509088703679260500020328465288758608935672873685750721176575479880154067936210556437305978635574368810046425370949295215504631559824750748364838510847257819337306775172376764331675183873018097953850514977145489805807260152365716975738619202773460560316729456772375053420567419113428277403788716507629291048764544629636598565107288417729735258313150338113302924541977915145780607969588821568422520838791274016307456722563044544902922592164809121055881200596627880038597746195513196497472727962336174783992287913390386530256534251053877410865757857546172024211616904158635293158050000791219642921779407716926206260554800539200225169464991872376246512282230759195634400012664086704155465698692316135994479780517351519461635668551629214217755400009327863080076779045805565493199581137798264702254951915541455310524072837005072982457811861536096084552789273514237501382975590072394755312686066044051483302622569436456894893296215058061315567867776789475282437228641011212012365236287024507624528474039959424639284766097989855827485071032549329583583465964376946542154946754156777851293105614110366493185397804208289308884798073588485259875810166155054815571659104739513831476861289121639462205855808836350581134407489117190981934098788184269089766378268129481541458986553914320380193330744782067105757987833247944598917543580567301104398378237052197224580686244433159838752532991766361956894985804713710464106054303769401982237307059407319066979921303926078413648115030940653487073172327839123218818263753074353927072999533596783727485982264536256405678349786255809915554130058213540747478658699140466666682484069901455135799227947835777979287982856800721698907243646625827824426143351754008280416908006053303714271501106220501351849618013353615495388091956862233186632228754273793637027002920831444109616230866973477093047772032218882292537675129482407733549550837494512590531167521195751479583801837018009960961904783487354930142301876581288491859639290473905963256971303710872242561007925663830973049199734386008726980953801742834358716219273978359849783477803062291794665906385688168359384563313834788912087707476945138425014848556008378887769342478032339316456908467365453359735724605575830287749486500544755709822410034267007776116127777871891882022546010853277094587198562575142345092243848599812032161604071730083750477891392531603136074308709887334993741870123491872288577375339155946397685823272904131591599310583021260092292352877006648418572588561079660239434863983259319966777881085028311641135560101759341700205527830563865272641764345687147259073341437998746053652584272061025066435243457000870951885590237151500018854329119735430596147127368002025703851214432189530924257565998477541697447560249922126393063909557135847093879759344982035492930036411185957202066084919003841391021933838433015504629979569248060303807246325337226950465790702825033683767315330598108103498426455158397519340245053720644479486208242349467812312343341737419571309017167875858681338923086026526149222878963954370881131243432298989886704311747432199247693122160132768406167659784613902194889567309750323706344048987596104100772360737367925906271757972067267373612989698434870317613308138215159521674508917559681245572652225012978001605247813124014641712656083921124422896281401636581872270788934138244484372168727727848941055630356667142715758380697703636247763382973076684750186929229053263915236099136138837859920951933293221890668612686693980706595146591080744302657532360930355311838434410230402552980246793303794364372777471493414759793541005112716296270124159131589845418062601705511588367192480297101721146437339371659611040652272421852331475908833407477725903491026591687371604103638958409640666549433953562297826159842066714954673118059294830482299960701322053666745871064008537577643237272704971282430973991990556157387991590259471405656032876322449835939869512152583191808757314231693055481394035583406809100812532592347256231379639297871061922442415256213145704890635707426244275084995775916439209433967250910362471049263152423313158851894264437726460058280994986409116021960175254228067113224122374685799553189808244398307691727863176099830725757244151088679996793212325228105304392563554961758353090195612794560869750556348875504248151872901058646453942873626825575485662105943789122124237091282827742679473214553284870813556357523544873562157336891553043257206945259624398178855834802228948013119232390824813930890937090324401154575222006985623341597757476902082205756520894654917522876981640484287435111858626569071634233916126697666506202611640180510126685487035246573428292813539252513957851272514505341444748804010525359239604031252525880691844975940261888018561433575508124771348102698850481580646343022056131576886409121280253551924231983708694697144669840440328694695336714488114848326274604830611897516596339674400944318901858533022446055884763556712617870139592116316726515548643529501240645037211744447148951410047923905571506169737723328919239319208546356439529666106419110028494119891736304580085650686505991946440643883894100342030682164162706079481515209477411776904488169944227255908560610867460607170204809340890440944978910607689102341470128313704615423781540829326845385296205486412224654384002957250418171791849782569800251172554973347792108074994260014917173446937901813113910185855494523796976116236525843013643200669130228697781817030655145183975217686940670563259917527985293539728710016604622501738563770041444188356330577512554746545983952869708509522837867642518985026021556280445620900583582118898251535670081940222690583978179484108754818345638075093458904914781648069941198555693273350279044446932590646014227348594494559096868345527033118394993188693958400942578281932002501854842953764993357460531373969434916281913952167733845520921493669433301459633276288234141089956755466042014064335210901729824031801913148898288940044024425959099012788493543908331641691855327970649461233379861283860863455419942720368026250911525652132886823537425104078683403606726290413349575789523032140013537247267799664634178999579515791872028887732902800706033831819379755106402317762623212200625981478291363286518899366742916037568851688982735240048520474255236552062499492017570941333778183431182438737389203476852029793284222096976847388254501069532928810718163163556272766121501118027206227856652187640787398955071725347522474563445281628736700430056095697843554181433022538096996926277273474247954926500261565251224388370785856365847575101706329077892895939560067472381908705172996366806136571602897771592051195401110345620397444383069075094664307110078882884442069031741588231573233737436201507997698638153697359350441373022842282122131315116715872744168301217143744339224383014246417726730992563921716812558848916660265311496591737150646426045789025510563607951436527342250321936927067153114795208277115390159874985455687749855859246374656423703886798569279002907909299825398803506034162776257032696838653948606119901854538531310415814405840288041769416025390550678730572499065577437165938104565153043799455042114547813103700275810146645892212186045700644335422676276169953710182966170852019325046223590099255875152478975233338672750830644342279765775535531130570086785811734931643138329365204247921581136568663507371478314509168558226510519681305702383168643306345842188129247580902956586691121180250335391659724437956381321769686578327361402050919536941490589790793950948943269437812976219796929326617738074885127189058179785854882662240241613998313671670903826613571959836973874635642442011154453159391866193572271269733686139370595091436261038395665031287747252815999768564291736621103566780222208460015165244982639580849445945541194477326517520359527927614735840987876573827029581556458872869253546812899620655134295423365490477897837324635782021682754721839913985696003995735654148895426228508419697706624754037599933530832693587551469644088649945682546671005035891283900539771099979844728673506998799998240770185653612897585171398444268548677991113695876573436372921247736532950671620675356678643322688231062415988067527055307293112786480748181240504847933801677544012311333676862631616052016717120516938392235587091754491295820550080603016127661274880814648169792862901084793195047768744130131511043732112398096281880636696514763383209447399798522410320854298238127093281007220288164458510966367491104372219360710746743627679462890029908147929936446071144079758389380553516844382124040426766330502256631282903705450084244471373615178611165190437571767392782442106102945131269203616952645884555281126836228478685557737110776445398467746471204945241601204917595453752658541169662242294530817447158492199220578648896046689575214139749727144960046614758211624332043602461133487455807500848729244672431863712795840258738760370656276355412329156391329305107218134792817551033825998276922576677116402834277925117408277383277475608099928576452494943302514583336998700385360156233032652313922264955489104478847231338184527329763695766343681148513245613589691654965659774719072833786408532817461520247448538163518470163857705186206765753872080701980486045305909783915576744305863892497103360912187244134059789982739187777040550027101386148820241584896166686057644129623691300231714157991573826629644176826652491629447925478236295539574126149720569503611340221889155386729923172590602787973793707216524292209417605014634163573655120831702144067516861250089850523069259300325385818315982943596199487563081899075571788405712126401990174174583182962325444967351118738080030419394750210658707003997022713375463193141857366835416068005148111317109057133295139407106051262823107337433075651992633567604324353228512711277219880376890741115415605706215079081009157913984671572743578053780645082763449574763904693075800795855616485838713612536518023822691283598466707883264055556550321896497922864372958669001229112883759650593369564566687373070243528171291703048499509706658726103342887684691648090043473449003395717060542859929851833225136981810678002896229766433127049931096270077757128579633090863581160645120554820187731697974376475760092686624710835374095280999378965098962482747501774678738125095451018380506072945637556093207516278399767920663504263603607754846117811594738574259464915241620517726752029159330537261314174781036002051510399394371573401953767472053591929699377952864897396778429153151716725705455912449589415383993153650359463318713795093544490500187334594826077217599325613551749100887438096072306708342766502834364058097769517123704009456736860801987776579703971963002677983925058884342255441434842584187883820682547083327372091606348391295692874435507635220403670458202594316563678375877989192251493104141219006650226897230904935342277286922644847841722883241000183175331839153975367872893842307031942643478995776687038392025631349992228043799089096232922884910785135791592058424632233322099960742001638309166057340522951312475066420534710869210679593079010271984951449509299703611437882508574250485022858060604782173079363136808497356162528598109897129431744122897394299562232568218784737384945386519797764077973534574608579528302400436447885778415289215301197850193145152339188671562632456567077955732249880168374227911181559656833941547227375585779876881134297250627445701859654293638121085051647113525862199764830717446315482235594243751558550512565274924138812416568609234024826198172231936946917771092281507253867943789136798388100514256413244338242547001104328271788695328853520787642281621707424497729306483114945569782698482138176703273936266637066443071111607654125399324057259666539483531336400977069531908849979144330336427674296960767315246467061677295982426695908933308214900529476635923532987378868175618950452273043632603809346904693982002753528930712354675461302010770823258496311746497194075484980570850839773536644720887798306535569002525860465551042021255189527304937251744990439862323516020973618517252743834226393080203741039552569534553283367342581725206507913912736538360968235077449993632200668139026953127566498242610579317440417341401042978490450410221366217040469957634143933467084152157780543770939011194720137079424750988370901276806938471247032083167179136993076810886181639645306868015951562965908262646106791166195314491050784347266454788549003528956826502993521276215072479513085643566000118506447586419583629502239459988928190935097846336226142032227976355445439837545735578434144466799572718725217742671393621144704731210603792705701158026562804171548701553001743361025006099800110112670754656098220223354510075579514694999185859496523339460592366997008577480484330266498654775342438097736471573554409813447532510751058990033259462206464850862699865838891512985840331583861150497039586165342087257077837099623082937615235654626854398826615588477886891357430534859980416850020724000490932443262232289104948266512371957832045411549807614194675486996266821254120266461621687820636145891460241714599101752824161126617901881194843896818526492370488958929107380652237667779709772652554729886866007920237185307726167679337295177808648520391537181481613444609067639104819061194092430279780404485944911659871367172033850909836785421358433325996400923460560926797668155874771238220208059314260815143521308945184767138473166093307702615093631606050701850936008185135514502736972694413285281974676945047806246478135532673884583447259551020426092106804628784994073510006863227887849104197095185548645265325917256581274532540919536019096648252026450950536011583588722125676181662022762832456581698177245841257937979178584752970768933786907773304114006948434098666251595561891696395926350883466969471888059772994978854135099463534311251155327840186451333248014577859185096951616859384578058606343276606961658371046819580586942856673990357406871578493771096183927065160457809841945541668189037197971092515093659129340560734601125297719496524592706531627278869295962266988566570363464223773858742104262301446223975723050905303222615033501522773619582923599514767235744305857090060719428684260803110773550425023923302698133881487332380318861985528946679958254529903677630777260203319577542147383101120741357590154927950809681116327926253240323657737582142784969613843818465221581729685290699410374365249681196527254949870133948811624731798973099629722786099466551853140612536478716972317843033855786668731423998844901399127774370857893949015655847923462488403175607044999938087140551670519349101304422198664691398785851535449537500072715106964754982507127069172268005878866838502485825242666601919090520840278231169590951395175514354442960808377170705218939074291767448728774781986495659576586592507346607871602671972083920383289390426549139638008220770836413344407497883833823962491538486858059877783686384143926962732126735751695125057221912610491369490606927082927901862932248114147281306148113644077564158991450805426574596970898566309531590312417284434536850025874014065418190684018070197900547030938718228589548391404624051479149547753439304957956669867481806208406872483157810580326219936089412749967960071291288425068690543888964005050654490366609746863424082250405644418379059782198620791690760219524210985978239583857294721533476267583326044589785129942338369502395697304122544811594942920352149407941932323316586969125301160867551962624596060509353740431944558544507363730430072326360363424161034650567912698858181776290838054221321301353376861597507075870211025186654108406599381598300775201611942637879924240399102569267454774997429818232863859045536916372372677313992801638818852213773276710292469634028739920118424603346030456043859160648738054783090806947993549398918594670497740420921876859912294160714965246168718985453968626483610451327891097667403269483171497649074476720479418964608283906575701937321112439153943418846881863011312812947432050106574705284112525020645019578174469378051619387949731026114886557634286935000446373193938011946192525504271000650479691304534999585065023132354874856900586185297761815916690950375145441489406738882844075886143161430841471457912835112185032523230312576945569853923430890017279289679711333946116257773635201031916800549135343459730184001019449356222178535607046151832902609059285161705811452890170620304680528148206925164116764296703582659799930616658914607013982080927105440105280550401783122482498028660142523506097374747431748530333863131134962203932977050179426499272055027526721052028455017060796976458487488271647148157169948651464081865909357403735346853407630470852804237664295133022157500161392134924851726470205436139277384414726678266608461780241563957945486029641499540664390931662839888762496916503940932251693193902143725715154924274153133974220983070424983242613253706545631324460154254910225410135219707496238457546792671489757551247278795691625974996745541789870417421745723511689697937538845196386606929110852151200859056734297218352073790060397656347479320087185665264531020302814703283924007138358905080594427121841896584811632807736083797727979873968697054949371364232459949722481048066833320449804781531685665482847962102857042960309322630039025697015926126014867777107388553133433734705252781281473852747126878828985349401791104001470520658598692742978840573299512430255662588236835947408256217558596123441498885310936664139108438365875512505181535192717777534370677891732229984422106599103956709500301038437624196007633134065685798721096296662256799157898546610771334899205752131446860914987928364078106221863471885267189640762153317325099419620001035837756120543246595794782980072035083257301580323239936824365610396289041155007271707554095234553408900866785993500298422867496067205155503876265147699854160919172974073658018517656463832449243211976155636032088890954326571877900563958963075434383854890171885665720130375086163128934171120564697888830743257100194603704426461638554351936650116487524775941842581168915948850177241983901029890984276766507222357638141803701482531817264768044590588858497837345504504527535635540120360730889527684569735351287924698228076870577966304657940704437852470251499930955291045566282767768071442119996943575202446361326920455268712004596260325604991713313754626128508239846999910766783541622331319509542690813219967610298374291058326021420910741409101935959440599809145778076296977111024095751201097270626574624535070487024895757141726779875533245061261547784135322814116685999371913660996533093066148902778297807866351425070952276764627564478007696705311819648332411870821209653742710907154519278575639138591575663073666002381943129229422152578749571219591939933211393036827307221169056192716204336726479305589182271543071330595640736667410085774585555402588114445798775015166743239195761447964610018402430697370848160087760052077668207202239462338444050212507954806807052189186842375670894485535525926013871575291861827064355661149705795237615797188819167040186455259898927269063718507716950740821376088851617468033651665596203255759338022942101763034767052099151561696594743719398362082512610249453749927146348336828331071506038189926969099459903657414137785443283308275236157148425013576814764437824394294048854206517087351502211375673311405745322915234305364259622295970640598410554136355543734968121465227480305508353759257256786055597036448254568853902405527989437996544059815847662252818230857146396589976818164372638285844944996384129279018489721819753492452135915498093497299868492025938824550690475137952952480031716285564971274687866150394252431190243805908849573296559165140506213001685022983762573898485665756551589662310545412655989627718080595179717218645423554852362996540655377646660619726475616582113377029491590725511669756420544670296317125871775439737314990272412495226529704986316275840036889354792412973448416758328536946451051480482971699434087577499717494098672337722535601282967116286510326054569176876173528633191990894769319851993006568883306821708141674311769356848442098026438412816006123343102089349186341780699934226049207234324944034587749757107688605325424238908772193828743640875042406300540249913119903598589730194544325186404058877196952347265542870606788035330083887962488199414695883620192678021538288070711750705196397168804424431975911475088665030456246382837038180332199878813743559526201045866586737608135849026856498336990920404827297218201758959505199831212065556279951934679991800622001866670752218331513334741763547218396360618246269977151200433131149241619139988001431062253729735774778484170050253725257306201115524140645082597452721676703583334851626126715529973708562521693276020165208986763951560000752555472124480774720159183653166549835274933251167395820747025644907871519102845690256160486819808579500605979439114126473260010237309121838840451393118428452508230859197667625754958941281217266249718039941548958406664257594536898095820916589552816056014375089736541514159773730263939590125750154755666165457548282414424855740081422297719015905605386364615003581387675306892210559037940410079688885582011595662969585861327222036956899181101210685515338065725199477302402623775414733614247236084817985663937028580881574545880601324318968848874571273477562697114081107818217775840527012396944449936263714563237967952911563022652762474076593570445347194695862246990175330232603172673547260902540820627527635310340807902204329654083872568159013846650950516130736438825946800368851448056348949966605190391909711495665863657741385581018294273742271945094780196765609023297088153599912945084727432228239371403972471606264239884848048934195841209580752355754166137635156024462521831185045470515611898704797372076742865811018108340773177559151197791857608515726412123074254353870496610622722662307989315627539422350155819755513771390066519660293488874936471233691326216701988701831598736775186285826489852244317369193270715473002238056291633956911974006412263480939118478548674057260593269388710764302790339992249945483064484464418279141231625485549943693663731862982338779809188745702872919317360666337912738825220658822962918060185507640914596505542929320595999810249951687187736073996439233973494470409226462999187929957625777275698439824470282707043298341776703265948212634638486981804455519429048115544107662640383106109980141094988177789910727154977063631494470796624374650685758227522501767654912805656798060446305906681065260383047110398710872171997769561465334983564436595081969275666992906239643914004387940928547328859679867345019569911162143705175436132820251180048805445515487842177305555706087863485527891627227012314359917917391465093713102856573623083501090963902434993623856624116523833699990959790421450768876073464386312346911457242791552679997268169961008667650159396897069829105987365876512447651281005159339161843177582385176755450295670312637217391666922153932110497897364437509359377484305092489552040085318319453385367008966024916244314656542846275798152323997917704100600400529925531525457737042812130839912745480921788508784353528693364723850939273149129924437209014794196131152627244557213968347265514988705421022482058413817370345599510286622373476957429789809818520317484788117420300341551605083563106580415354565242245957747298689960244910462606400983040656402956688526837948575318633746924076642063661928096012303506454798776907437806135230676619403785277720973368297747406199624223638124202205220094018846229069411031675615009401135385637009698031361072936300748537736517725778833225290743003154407253727061899447483362864921743397554065017201075443878541003748147236319285924877966027719043497638620113934673737218141470469641613510430030047562116297737550419244035895126163066748761565922662734776104432417900572812425951164032889653177091902699849318309173012668532280572423014376448288885774135486727863994533542295986949360897243207861205237917171158445893140989142228003670391257175567381816078851779784233093683918533041858686014275953790579789293717183439313715247177499477577468456506737659821852517825445942834749137043084580294397223052239065174354443786001543180523343632477557549314631752375482421024041304099635493561501284082795216213472504429900022351083383167585451564815319322740048583854246898135207566517933423069905287250332656943654472044563280234051170666584602783888468757427708517486313809511218272124662101619302048628944328576920210233141935152029491965709457204604850398416555121348122862056659019241341357608817298102489749143660642338871761218347707200380679218923880505930399347996927726260208756569393199152224220824898105223062386174947070354993495798390974776091436329751614861380835566746927902518048027291102344866619573295067436418979396565222275753122591763911572038976949183404684756989557393906252037315890846039208536206283775007764902417143145390519953257557632430411434246553357346385685820647051053628009228159154174991059181632627219954642637961115591954794116592061782822928175924539013094251558361962560072505596732984850209209021833327875072298264058293456649172999833108392322128132690375357617657276042884655493283393663335942557939708638814739461794040898179625852311498680090296943010522731593041430392773807201342614312810845229067973223493348860830567658384729380198780148730492668830379631087678659009108534509559629156538685580536868116086830130095006427145388556644776676782630202755731369243946597025883308203575690649713186525530653595875776002346533411458206004593525416779498912163145271149003126704930527545620082732428685556739243157045155444345751126272092378697119210447453899145170794370695687781195891717182564781936819877519467207876254981861435631006398400528321117901853728958961537457171384087474168862748928375009043608358291202634279672261106174754354995245023380551505551612726069405334200305136333305397183809418034655404843319297198798222090542196298551208073610835427346144593097819880480296538237179175299979506950332583597250434523406591704036836506694757144064992889031983975818382358169066000439609131591008656834492256581376512609392051180980086133434106073632924861398325142626527218338624446201053321540779831844006804501031126017270096492273644032983369709890840898458349853278001006315817886681135622553459386365755018991269284277863681843122351153942553284028183578731380497800737131470984351945435007065640572831240231784432771602924033723056117293969656121828461436752718073299954012486803907659618131780212156193812286497510835664120190054738772324524831972358744774511291621364930467462751767393132231991729187351635803949422038354191382561949337809181269224785910969823454119498521595100499821483496627650375378287066892231790433240088238951389742674510935443797857921711577808401472365688540586804986522383623379651055705506711138727781182343422518481062704650443861793136590026099023208009507180782926639130564765802573120886815002388052900423163106006964459216780140825071301051069841579106047073425183149649100490842531207222752764715013800883157108057716507490927873503651366189609400839379868865112658812981271978361837602896255996422694018982262374564920344261178359301502542398907230140425543047692751828169460529015660145733668288774541212975490580277439625949187619786035986869631124350194677537888440892948443596824841760817004900360508968888534723948166366303288949698587050320568968582339655573767199597219720980107786579626556563314092459748504877125776229183474626124304771942285016166396029314992838246234113832994319941472496894778193219954043534754566276751478201287364841325338323620451147635038163740297834270077207356505929385043205729032167299836342087300529593451247766523451591938751250325543111354277246182367111963746187325671032284622483807277682948262506934885848917797118591820764492681875454216901870940324179100231517651239436232508301111767614017421588991554863463069834075242512808104236643077480579689863807076294481677098506747868790761288026153723860551556639326809044504257724119723508929961764331912938709947412364450059133301150442891377994519199760726590138849320997606944828449862986797731748758777733718929596241048817357758680988852033181902397694591456004897322700988121739643620068825005250517997131627596247337886416374880736179773498476402312763027497500037932680329705271666554456509433653941404231329520151047088681733330288438777918155089093281588749820665778317448488648859548463524696980638775932038967206453271758153216236870572308723909647087341286807312115050197427454439195838082039285992540701318518901369460334393696973389249877529109915976096866860181300904102011194138204350596452983421338808051584647614950966625394780923826762804352184442470211162915915950296009167092397705694312500253138373898534457259346973607840592229920295995815199121095077690841262763447337850185269265507709139036208217161285897918648437119020116243135784638073007735838748571378548121601228970494724770494315039864896627248048074498492426065475674358086839570066460356158584273752157625911271924779468332001616795272429650999820431739681085083275015949016234219902131104447732674586261151967787106208274235542452067804700787205675164328428959510946994948814918282796315836567152713117546916169571630826185988474290531282981216456311727837362919423791289341241522317844729275284396150882222234682881881416762726633933207108747936980488419142107701111398062481538453858467932757850533076657683768990528904915793213109712607711632198449004919765239311366673059109642796700712906971785891038396743789559163629864852267213249904267499531606238410481037092845831981810663213505206602655100566826356237776850381445022621041079864389109589016879192816683686553624132887123129851722319038683736175683798040911058812639947762873886778576442075851288882973655848753694084602044669931230934574515924019375716402331903630317906984004017547628886396580485089056099322171601717644132872973401770081318664498237195350247982014651604812773458354592407949767193253420118577968411754134670667045613694215006608253847148148054179474043698429296191635169276437235810616936737161959242581011916389246028078975771412571089299971542695263313853331098308412251158581447232157263482794752992856060426656705504828058725768717415878680952501919010304186205877107596415050282843810725444533328274239161436455675824151400401036746252626015233619421652778661681858054695856905563340625618211244866367785170026348266955688865585874896125007374785698111600473096521411854974210710590271956026609017295016855853891489990115785965621901519750449258761140031591499715132772375519244924349733912257583446339214828238531427172723432239672934256636056112618256299286584659086377315799943145874262892952144853075067919156449451423351353045609506172782710616252249743081445315342876280199732777580643003541995733996375071464180975487430605631910332315532749816834999503620851761477226632455000755949606768224378678318444522546196772713323841409977056776727622260499437519973602470502920479751624668217455051600432991037316022524803649874030691925693906405751824839981791278877566620655946761583945934642185888320364096359795157760943262282662317790543885419713190607949617975663931034847603317726827550319015599702201838757175084070061917922687930869039988114722306758946781238196771324605894802170483591486351664105880042522185109779054538164347253470540365268108444511317626087363445806766213127532139045723964991684657029128322072490362591471749554192300235428617006241958298295846727826532476769239323776447084261995047083860565046589079578360181618223146554457734872571836490757570828090485562236568584352682740972857290248527633092769805955324963384978829619124046484894859100335751217751625093157452336714414913517632508696605967987542133902021609089585969927926051604138866351915812324146525317307036958036008824776547881023662486831239160609312944836816908532983143869693836477749395209167867965921602519346716033158577492275509257741046078701164140701196558334095050395132816583975160902531478298317533312003672593402410956988638437011860363823734139646740034117340991553491891543478586799084236287964822734591690357995105719118131365348735389767415782537595529640117298118659675644550944689654608724697982824149267021969143284403243167728564450275002645923781028622125438913139846949772655944000919587854963529627962859374172937716631016612841853440453895567883709367892605204722027495694478097881947348685287733598987515207298047821180412093019631958208023752018537809162036469051926557169069022829781797570717141722634980825665681960806527864864556792988831840969998223783373831346655548361542484719869533216353848206334686907606499673607989949023396251798550867690803598122081311666767932856478647101505896304938658690811277873067345177492043752359218357826423350389952996992161094997627714759066476552877803650339529128432610097114260022081767710867271501705435973165412173565272039166304442621348249847297784299313337540894035182699986485042204669762106697057321161205494233074533621796056120317070875734042158354154390587037884497794254404902293056194610691583457368874595486684365675567932736392387718417969524239019502617091895657762785623025911229767102266560679394750206652826591667386283365196082806273069901267770004857192826380600584443712936980973119351688466985051949566022917637142082201044868245758112271445477299278438808259463688397796308862916169928533802809323462714477831437619145551948444486170916381795466848078568453030656991360846719900931181478877492420988581721406144825063304219563357889923915069211612201928818369457325623014262448106869607708236220810159085971779497591029103475758130827819508438900850742080017377519609712427198135392063891929463539706593047877261395895854000696738192253836903868335690106494614933084855774248115102316807140212517161571567305215885242014162132313487304254436337126626897482367877971665279847313941971303734177620255405936344292777766797468832417904814264216917309586023558100551217246064729646701507267852756201615130343921148954823554603061784129469098328619675945249720110607743291781879986235596522096311201802124189436950241742378659305915454357275899830685583208896761571303824545886979655798702361031497659740061277317660528421784066972931142097095040438995171943349067381902763223784704597378801743597871978933556803748345228428511403960429532329355871921318865107000313919258605021846223288744843348582554524113928408414499141357938235592198914935445031446351071242676476876475673256412877509320288280658875439498987420697907949335401565079357437388833254069141301658603047371435873899122891882157596162531491762069301185125912193305212049107036264011957488787242357810487743790070834852433975684323289307322807879846540266503619851886419794694872177856633161672183299739726526056055744872859613670264035521047233542824010341824010309883997882595688060408573758206345503153786958552333683467896505463176577340841869334031629002905203931713309409606803352834809974350829827335064564700364961296569110139261645532940241323241572291850897173187612641051549480203416812112097737297824438583201713040171501463265338484122225751424080476783437771780469358600871410833688587058614594439222394270048136277448997774363215919992992655631497259023559061749141181752637072904890551152883961146250731254670397501499059170453655745539752239565526231979615336307071927107367282748493576390093400674487995001069591632669687028272124726900572304967253971248923956694637930343450663086872695222035848176553179165408801384493046227311404274587871100686586648947095130615583387108203909410377870790150750365231720979081901976948335677997171180957825776888545095396874372349557878811990868581925394020276724878016736910353714663150936208042727210105155866097612309038582975604288420979590889114233052866450419871585628374555024939605578511701756948839253056463683436977346081828310996071467518883361712140230639420465385986485638056497389502802628861320812837662522948594921327390822724061237064859094771369467528138120978415253442685280827683353622759341076595002368803955865702844581531125184980719838426990628106835984693764940117742898729776677215463623879603883985053040050108754774951014970969436875831341867117346883860953061305148190202368296304857100219101028571064370387897322602894996545982569220119515762890648194686991325898604687464151002379225044483356016849720934473582657520992283058838877132947718033078880847623833550926479391852066248121985783450030121291594125151136465630533144689226260669032021264003415522714322904833091019553467509212851377381500214980943731292872904445970573025518133744398867894953119692598257912575283686437943833463353360219502390249554907165430851893112673022424136499719456524694958395384303756651151556639858086222947619804668189086717718163334126093121697524949137984370376170801245736296954665249011641228483237246694440730371408718107338310785234041225658277836206601123021933134646298126779732213939658919917190154212241394394732588426944125814163906069212452597983730840279924540369064822580617905783805987160814900936947687838790849116383774005383736033413473376876849279675919435890374052472709630237687663308644130185028682153948868880652353842932832538413439414387699945692272866790304408380933213680686539389931402488178797598848172320428696390836123280084582577126860656584545657355790883467443332894904741934449050272405779425653744192230999861135152299428817945228730405165385044273276429884576842397872232696209634505025870617247058420589483280440180441019746892060273510844443583832593007861375476532005713829886761322886515144882006944204225281812200855001917564954176109368169085405806772793356905022258314490924548274567188352685776182654157996370904394905079110201212872346587543055141961377876633878817920899643215603682025196341163050184703947396791159683880240965488639328649558257815928725817032075626569369660283220805482481227719105137465813320216378956908596122026706267355714432638450054318856140871764038625794304497487597444652116979141789226789201209308337469398936599126216768065148153526828035432299138306699412207598323297777348252282997591915877529385418944323297697500320859703570015082119536043277892987357910676911433478023724458170243589498804010302886585388753930580204426092810181706898058121845065441472409964826159465680093411585779521356829506132518257192768698999073134386883330860216651895059253148230135609020823945344756561024106449691661998075747448656421653334986906265885472945788026012290264051986470514471658030137022739392556443831803005986023932933613068957337492014843207760333453605728908953542372586664210672981578487761586891027425869781371274330595589215636887729824054961857638939173927420942988968105326433667219952733959479980806985084381880361303671842043029276042223035420910879808878962301105803900613510125604745693701543776425886776733604937797299074163451274138684285389371593269605817428860766713422399573099644934529405041519467386163349087581485575954829391060868329024570545800154098770888284588663514754750994767536071175457803608278359018790278390689664484639606057298464754456328608495533663119090052796425785788453931736026879211257329613173957530596172798943297066762398651514006853181489183548452303857159287904025754742058465030353582822514975705638136785363703753696803584362128100983598109346721446565652925083017709278763998039016937561253519816517418946720127181183721337454054295016852702394196806751104087363015026496777198072976186284088327055667099148266561716771935657198457976273904238640796930269752292458499624051914428495321481590773555475674752711172840298422193521570174048741409250703770015358499464548533794089781228555778251850447089075661855997067534789349026242888042407741271029062006797161980938870852104943473907434264480718948399896336126409977278437003988298298258832298679318951406495388214527608452781087546108011501698106891004472780554494210333112043400824180067759311946537611961079092851078969853367037065722506464562428257802240965637427023919423587705885474278905160937143935175277832648705563814072296883142555656002561260920274377102708381185874290953919443717817747415459567002171547214953022365209407679568653804595923120473638732409027152473288172126344577991207119395481792657461264412515139751405774285347958587470788856957767778237923533642759912609563135692090185072902784911304759551632490649574551189535744727164113129515198931684869416699270899770885654165668206052129724643996369804996667809132378608500350722795919699076391403103439627882191153241838232618248653356835567702088772535799822485676315295611920953483120702538456902534826405918467895566386701453531237815360514821627978008709916017306716905358975654623484410037816302532134488730597860737073538702100802628615945450440589084796995249730228604837268109460157876457861206784294789846953296483822958300943331134448536028379558052248655111166359324565813739734967982687448293624008834696857218318769555001963077188342413082357956205894366759984596483569521102883201127630486293135881754525458226323966649184105945029696807562320551084391118744367762872854309101263391432420635753103369061156992615487449136461539639381857490555255494245450963775635467830930834273814385465978458524899545176553146588216281372348958047252617047778566721340298396317805312166851229459929791614887275964809210556525218531350257717126251525844416423667562570857291270861523047164770399811192411513986074473006199587168341490399351851750817843212563943153601080721686932841591145198348905470996168002863717173137058327947803129256306188460855379168950376195964733287171916509785394733342974388465948376303935061967623589230803549949818474162622278816479217628611978881311689912641998488196501224653501761617821340900835108030370397648144715381900539112760538293555648953231123625224599490226486917120306929341894174807597309866693107591023384577411843043223858857945875246688033025742496178710844951612952071713517698378451333756637957013098049824433780389293895156465664555071512648286431126543476102394731353737265939622575581644737568984981548819230411978924623138801416676692033612156810650066044955482950462481273280950593185020206333505416845920747963782484435030712100220024122312366132938436362162731569278772474986537900516238184130058427469577114069260448802396144734308712121093038893828636938855931523979640433856805083433049350589994822938405606752322871417154837751674869117346135335675546237243564937375526079819718544477675758360817636999100463462945773462532312008180648190277987259181188756166606818733182135619958601235940748082480659979745828315085920114539599997234334502000898232777204217014842838050538666304197078778883054156414463078460701441008640559407090772648909705347437193795863933331164063842964772115048076763280736158033356712987544346773046306894080500091094433289713376452503931784527920651130222131226358245862518622178975418673621957158375576374705491876871573930874695092454924668291382321849187219400550074037201260453158947598887816332809654999660221258652987738497161509991298605587598607461650311654140650152376642120000189285726774716970207348805810385728894662398742823814425266590323250975245501597258482659475931577104079846362234244090621220700572961629131946290049216984996051010740060663418710191978557688262668376712385694418224009115765568571996417736749755111900975610431237753157353840832520624719261561218465904093591237884117885155191070819499137544447051238274415369857542655121062049030781613707189988151560678886930961045667137466916394249234566118320063158343807558152500208338251678085621899661057629461360064702208438970248650110180618547342701808678475448017770410758020265959282139466683251339625152314187685643367929610111363728351256112296308686508997090978368653370232059967039593725844059564031815416745431125583539278614618266971266479964668487740080814959863933214533508239481138156176160615356216490522391303906157967200740270319704697239337925441562355893165442772588708385356773024768836185172045324238730976281871663379580033817004437496445545766503360108717337116376747063021716030285176124434530025155971444766955490813595268123283948129828984205386514163593717806121710386984086823496182837082961322416873473186999791371896393823507221264626601146598974980165271842696996151092223213193994034176544319103982339414077005336859943390668417222964648195969279566218798370105568145514759826945974433436074972371398481146790081600653918177610133173639776898089816864446800277832127727239075849577020503919811844769617570496779796871680564513031233756084651748310391261967190327929539270530566981703105660781207844403010810020412788035269421986554823353422796434910836994910099339408665826162489548999781577027781676232841783646242860520304879300996441995729394133595016499347660761873261461146561381405928351065712622742642296193738033617204682056766992851269923603153790462017381904980319192666971921763826161386848296679396548011870700500762612991583074384266937124015166591533557394779490289618885692793156346299641341662557874183179021909747875139338421569462431803554976253927463867887017492697251575670003879517375915258913444210522194369594144059122506603059343402564816642634428112370268203860573708316611939742057978025312920107061587852423375723692442548697963854935915464114540716760309023841646132176722571359270287096810866603164100984965518516196995811671175117006100227743771185157226941703012527301495178954498186908476508493828508735876544679083488372073413392981661702881914925905951854106438043174482203537981267634080157970054713563860006422148159720999138902955335510494214085703508309847511215853645065235025616735500612496453209900365825520918641737331895777065790841940286996384606192133544960804268956952710271926262923072907153050269390182963754075996812787639375410362287521101434473331358909053108159269393505667684645475987403370059517955020166223198963753057753650295590545960873364123655481437973913202718618806416541937292600439606446818389764563421081661338085786712963298348474003606439546988505762345769018643254293487393753894780164035560448707027049440948507940595246948338240248350829765709990951705649081200342669705130973749160480282896284640348006463655939005511937037630085625945261152425594860701287371746847477981622248682458125275139400976737080340750832870415144606162224141231768718376841860459625100650986415651014276640525896545953746289450829942384376659738652804841753589151119437761654500899837923004234687531182558680308745121303941267119777564518283027073657935275471515908498153164632340761962452243570040410657517577176566514832459992427314378008129481436256820441969816626052666050010459750215507407533631792070119655040543352743338180729167835253341868866884530144705360031769396476618332726560383744551203488737650246145072923271923693127070486500506532008756601151020405167916287398790343811293125184059651378322427460488867913686962154904470344748784619923043616018596575996083977861559122437887687613607637901888088005791019571175908632211242310691798487572974329098489988941254336840723665452448889885464938085691795529567741155508717725801731143448051006167779567202418144186228067591640896785576270738070506690128062662864618560912152447005116617447677172638356587984831471471403175075040405040414991313703885865016283237819662301595362231226873179622391516574302377107527299768297960228418233657532157248108434593735363697520252242259625029748197478116231540379524165817743677956349573560415866968529954662079380568512386961117209851836280967876603289174849525674874307065785880050443155896899375420072266941443813022265735241314015172327363107114228423346624987938737241490362096356848383925259604782090415951206834338665693094046015311194339869015796436397341697232611654740902670401613953321827426188042555973569234868574215550675201524843184269171294236687590400970416484764533922175494915179844594031971781818114561624301681483492528451666449421372770541615037092034929990951367540197613225839276873708225576052140184069293666719660545968627256118858865771362538800716925757596718822201648874529130802922073844273316565609040258784296503237240895474641412161453773676443131942131242844066949440922263161042635497440605947890794505587318343368942366610757109122553625520433296743965815741196115850542496531695214005231932449830659804402020739303238625787975291703574854423024490754325580734300621957882836870102896010551084452114965021423935377369744664440684627344563583484603225609096486867414813788987326514429634973957352096197056000497915813640604585069953228059582473773042873895880129678730810852138286724952926198869330341719051398992002915307405700149921572686798050203571262300148911331292086348335980973069960349949393444806242474532150411418411571996712873504579291605901083648485500878960990272931146484526524389492563395888714198532172416232014314236604106359358860800965610754023777780216996348288810410111125381139224580055415048464842143032457066626809371195623001344641537877139893524084909977252889685653490501636220230505423329781054749379086870818262475800692578192333593198872402555133464144432483229353591999708318619971194160591513931506091388749753578708667775619023627918334574381536532766919286531131129760563978228334131722908223547027166220643132009713439985267421727257266147218995144297396305356639560523583078291591951210951740559437614727541294794815214516364376102099897403900883275731051138345077488734698434108913691487900944503489670024556339444178294622678147868476747436155466680358826309553365986409309523040304801621572180767216662841237435748945567902884460465452430478498212773829530783977486307201793866118826951832033582646572836110345440271735941885583357373125986992650254482282478455222660009444553683178279843414084044176753910683907981410464860866274020952055748602939096520291877947392244269690693618463675067686753073009575657564742686744865765294317152425543263633885988270772104897380964813559147166124377373225998160431972284374774190747924335204709908988888723043768335265983172501431698373522957993444280762506545772848752961354462661187636974803780774560851970273703344402739491156555873316253781549360388493516809323840079073466479974235067492877343855616387386345515488192347119038198189613954579933691685474599981635452136022637949131664205891335985844412597985411334253679310243807753637879336507291481522723103312006655720901680233510586165554493017299896941566218682376252686150392732283885062911000432640856976270074336893713537606517159868860743147621338130600373460713275118956114056995587455433258815304139386637473844943661028300750457750593628761344514569336542461990328169230957726237419288667639508338436101794785462799224312081888244851807129585457370910586973870738293390389742899762314909591579617497619525129590658991365570571600099530032329824140271561215986064992341226014131454997544810089684565721278356958458680225441011264463189271473997499074724209206081066781072872474349410652125429814515563729156746591264097645353918318413398155519987660718656317830423033110270045757821992883562519613670513181842479840335202005342634159104585114363789533396455055997407814373191624532308458349952287876584837683994018694541991997150091501592280537588370153041704703552330601659511468020242859734811343266348180200960022100682486197418094971484862550086637518779944612476080134158665415240074530964901406160577511661615184250753481849814925122194465282058229640151318135649462847502601751583241018873182580265914053664697844518643996498075275004454782784481155857008346500100357022165196449571451721197696861230546102093411938827337767897921231350120981432588390868930686326689158133622094078452894819798980681871690356128293130547337577873852120467842861790720043964331687234909241265748341531079833317271586738720336006665655217830469773497848521914519156190149497737863027766638929341468554116548006982106544332438571530609023728999689245639528567502212154623847314310193893419160064718672541355331929206427390602409491145747803871574206727489471035984928861338559447701500378226497096158241532641392172059076009604823871932872413838349451081028572749478653957477890304520915780859834374272333011399066092208880705058466918732856469845370957626450604905737365879735634426331869782143799282091454010305748901592942451687745081510460675694939661415536281111305877245217211168102185781414813574771645150733281070228862954530589581744963200971937648359107388789829196810631942864439657021363783161270611475552711305684425174131373462666931466572980183926538077850059486403251383964966542392182431824298269004483008992358653201738115149159985576860863593977560545002367139860267674376001681196264871083275071505980029201780289945132715506988468487446297518555263335152992706859829803697443804881266029669690602466397402001439403502643208714665857526196703185565814480409228760504590403401217600525044696104060508714234360535107083453469431733934597637696170327095463504807935145258267956623177472514067504102502384468009542264465437821273791307934764472175144986665424725809493172100643847124755115444733670860100557165276294350669020089192227916806713342732708364487695822205543158400081617343827040953380774099674636009365157826278867010954742287384626796241944876416866865263943826624615069358348703419727848289083049568093576752351385701847581273986561895609884597225300055908356005828629861337452899583875981028515934539270172825514058131533833537490041754074605432813827909223105098751020752288485116714438857581879473584969352949442723209346570343108320882243827857005305234030554662526863244159033054109895607624305526547117527819597497115281105741004107185644549501760337685613818548757125181537052400238333370897669427245940520777900502030238145075936783118168563427969935177955469575778138119643769458094163075893546186468342350074515722968511269049837168274981029308603106828679985225166441033778669576999128294367086133779439602381037370070444986679618004436310380524859122363263059333277128123126579424203659486545215768476326148050702841855166456900758127051929284280755581349881866499398705741302360137966821366127988070381389397934630453852358314598175308434687801362698276621931151235486556130312915075127877301530938300858568462748467856752993320661428394520797476251571561541898960060702206614640039157319150730761340800594112244321675622102904988708913652554947568202298525168788809603886814044966480733617492600942525916265769498605769151810281779482718870775526010996216115063028385788402138615499268789294170454238895503177507285947406183377553649214116501613825164853368566386962688639732352733776978923084603320291826425702581046191174441392153566457051188360604321723019903180478346502545283052882886603867243209619215588988236278035053356274135299597376939892410985059654961305493609298312321473804158536461957149724829714981145702907037973844121014174366162795757922325461041638496470371732674557436881444594457836476473305580340834235652918279750732626005012958296524020506589199597045245810540235659374399654961139951587985165031557557304136585150616384978108300949550303336964560032934187622723175194566486774760558108865817980710422673692457561352726104719566161301039504456998109672588506922327508020406307818720937886733816360282243999234004736279903483863253668602467099340905863905525238248827239787534169095232872598150850852482854296787144895172545051724964306709802993537415015776562955476842497265296243461955975858342125036635922111525949185258795297569908999870898844333967201453575782551320091133434943432869531810101759689831560005509651264366878969489083906261440344066239927558877759821589886838141924721635985443063684991234538077964154801505254613636526070465190577426992772086839100618329337190472869627345071241297717889511089630604014643869069254986601955743487953752675749880323150468324613234958823766625776415902786577235078080441983086037054747019732399040852584558594615578165092909349235540360406445558241740133739940867748310201120311978882914448805778991939946443118764428539633244589609565461732863692305400689096468276464577662638841840148580488373599453723030880189845438789907841919319497926104415792960518220274622531030727168582354993295335558964379616080746620076035318983749861005622698235591954300368295543188106109219376336065602252515429409686212854144288505685551254123011951256770669137102107958851974406993023372035534470860813154318723644148615517196787989811642460495960499957432694884555050347231126584944830717478861419671242283878133980783774400067686999415664290011102558803982371516574856825053548646011307903130656119572742646623232860905425317853248915355046276718581088211458030925521237104967317268393522801465446878505352247516402311844624149428847039025202999096722158461463010138007919556586209308064736554487595109360925373172364868201227230353137709889132536451449226521615054915662705649540973130301404281888005934305000409343982106542618672012521076218760899846790631849757438621864964150056605243115283886859972855656942383532106056396155298921508357343909479393217994425723112672945693062698798033280292438074459291534581314886462591011580104377612396220422788042583391371747050117285898417279445070878485745886071881866089757286758644637574710008510255758613575352785141551420465340141441359544976474919321267486803505015878543404461737362831597716576399568635458810729200801082460777956912729448299859811540015562561185150041649913263855217722965705835922497247616247765982019054845272699735169999582398019175515170287091098208752811467344960287743741800829614912835834345997099305466198808013867063105685388201633990120242903037607402864844733012230683865283818125779675309894018793955238683341713633218885848924600469407523966229079995723558584466386715343422280202034412091455000873912904019030418615647823092669462058930895688655906736664337713250298035345180319423038811849985659918807140043803356631291505290250811829294087205287906401682512997274681829595693867209505336101536736265158307377373097944567199265984515494057816293160034482888590593431472406312790811490179035529821642862821421786854292160970699536689097435374891829660681099161573777735291543884250850100975391593938738517130587865713820847647413901079452677545320805012573575062526771768501007577791838120671245378176351445315716112365495604578295743119414008513409598230684119853917773889697940481069666882986574116763378741064685027121031670063615790693054378090223665309753753140257803948881485606555016600946696333477594842789237466896606941579857968359564886499723367700936390814397699255419656971968391931042426300782633079288342128478651351893762369714938515352638974429404520639884897091211732044033445568059187369742297190559568293779952929705583116303656446219202607338739599361975400706734084765739596401510292494622105475616806320699703153933073225747523243225191639739392641603368407240850547658664432129426062452499835305629057083440891435632520592842462198669040768073982512043301427461361812314308964300676077139022198485554547957463855022950969253739529927047661525506297457397005618347197294720161640245968257764807339786596704836993845142723456359659777894255226476819937365161663121105259702709827767962382893192422627736080499660154482070169227374379784002067356674752971823647733845955527150751289422888014762316220408517957493468476820816408037536637209968482149522032791317493948897868983649647547085152151878792620356165295767376490234525069916428873363378264169728824437926678222436966179867293887908794865494303480219376738263373961183356509560220244824584838686490337006102667075051472500176462932021498586449541767122811620888592421738754431219000019290423953217792274241047955301208244173631031646303616602857435893690561436838201736590923762015869821502398342953897550646216607928387982674973150852531339366785671197230881653332328895231402738549140764477987184426007723094876642213928439545965602827347111359135961757632964410667209465356970973534802755958126368624466306540187690172969567392431800513269217984749815708627041835661085449141437684225526548596167059486193143151293332032593400929408996842403612022220297792117325368558822111212764488429457256821885443286172021100551531714417275208632810680169709068660315250347682639764136846975706078279496674845195692984118759975157561389663986492692432853230988709399354005530800286971840528046568577337784076480877441451517454440367502863100289123870427602886604921517721334873359420996486878425210005504113593425858526501595558766433535140385044606125597208749940980541856465808131096482522521441281225784118814652390527314627912166311172189197627623429877521009963005889296067503405079357184008642488904190496236704227040959112936947851222737311212341463933127130932639764619190789484287991705058562141791845857024054196415204277110447167966467855401234590768809005962279188729606904071025307265462940221303136617753567327404378198359606744559761535238540819104084387412415351697980493324753518805197983323323192833390869290490171196925454801849458364743003032240659151399950908205352029236644204527263542399600123130146504254266784857951992036113270055342056461972295328485692300617515593969500500240035809523303557873111297795113217531780637149230667874838666483816350504656537787737867663563160832739234113009706758435045009065989579854081239713409403901844491887082959078804329869840029256056481166140624246613834027471564497624566284753115939395623267817581320894996078826044219425883912615352429123956274413362378827126817937660483838731310823741680567881137941673622149978186508187282738513948445619627820747431510220648062419076895362587119711672078720779241746970140643211608363415889499173837587321028636299285371455757388846691364877920745801253311640453009057133730698197302819551710498026708287790404823200419343994491673580738590871095652105090715440167814211827438532292036032969619470191006617917683464768600246880637299931417470733460257381875647367909003220285027906398090117270774530538359560229868275925294135238935835248331488283512248413195329849367429617045151712388954413567081959074286130546862463768753328427794272101657677936414610333519412768721090593394377697978162875601194980260340857203161276341664843058548771635969071087697237750679390423582732814713976256880607661236195089659072522374977692584627716203447848733258446407760475737654718852858922272376709403848382460894797356757357203577838797588058837617409175309103525408035844152968797354000628973744747366613285343909294966683012040121807735984022334009374938110816821945551850990859851733936073438309195594534586585161037681426180147870578742882046042599847873217921630277636327043155357051607404887382227899303166015858758989310161242614921457069118375979450470121975464906920324300157356697838850778049553067336458939257684569095047874795662347656452203719521068459299826471381999213567962095807825766149470425742231336501083139369301739312892219222004438209698741946101220860735657265881515624207534784604584752354892047333263349182067586860837445361986484468688407508631892000396158853385371915177559048006135161719997075295127535845320854274328539042796028932665771747331122559525217603657440478503396690551426199029969113053603874716755773503444935391247603636114972706495807686475893983855163259998281247749723698483733665006872780952735714120346013584173345621645108224782680873626880787053484872800883972101457529520907311825847971816238022296617236617957073017843826945615817005476086475494498294073168314048236846104708284054856524358694739466499043104431563308539409365790251335167255321503120686727636844963983812893148402870784708386223493602729435405707575430510498806362152409282088731635522929095204188432612550603267726332202556233205099052330439852075270365803684434275871250619363897183916863093506597938534013354131731633063946531546129623337831185797367022969350252773811880037096847334835525044604144318054589203257461202144290229296897911159481566871998406277402555776393161227914425064286655923178279568441593792192518229870840119814401200293339076908091822074432359681248269321989652543068908473984444149666667675733999999366110853309997921911563871082187941736686975253721697876026014702701475542099562839742525511868400810488037346982970379128633620342976910982302184591377848190589158796805448218834485599729294664460842173642323841136284404926307607259511297939193724747344185965248868594665395506878141714345044743719645790307549941943377515680711433545693551471620748572324075045298605929169431281899141276637119064815011435439173612876916808483322053116701614748747867340720105753099984325881764555132878948594306052588073903189378101296285866363767316386694680592569905538240427421821536039999481284596342993585756113243103034231282259517987646550234861915707086406565641921799594959424130137834341791223632962909338553446596791573888861447893925983723495027733678729860217143069121407740590898876726623026249512326470661194474428714656455716649230174045798694985930117943663211754936934358765665417915169313596945769145044291550427802048707516262112452560067595280802888796998295020559060861987845533243062701187420081035242713706996592790309955459324183206256558504345287761729870887199166636898844454953366466243971993314221082596801130776975091318962923929305993605200515870679298443513810042246681815329899194245928504328197117041903373800241842042088549409121315671065054289678247555670723094675747343961899145954358004944824476127018953104302282968591410322628199903998624634361909623528398014526703067401409438218470285211129380255958807481683158728072653172814983611347526021998441464126968137370336219665280481500438470727989194987298610778702791839169857515518578533031365449013175744299646604469404714995577065198613941076999535432632955823870897432975692591215442324549988345215192689112984994394552650894661852827120452770222044920387351311312274684389269241326766183994616289894678247128127790710599154639244316178906674244390382049702029686592508970549101453420804307749535337466136952871015852497306716317661854633479858091703606238607467964629665134554893334198780140022360457118739933550779099838336813181894131866900764190007623342831691123040717702153669049215338891742531478458350843543407494637847216908554879050091163494058399624441105880520500637454467487552929703657700135217079085042867387955684718440744278247504525561040335979993019046894777918328080983645262443232841026344767643334922482980957384708017303606410051692835488305111467485070329345791590529124066898362125585490508134172134846805877081536288727937055121319295653154293920303997224783202729056014102687793749557829325553346567195853765164586085246941551880864940873490724774797786796211598497037261090926368158710373760476012501212894270292979588448119640330214448242770142968656844941082940432680877496257960991035214320220476477527242113260894053011218990778738444757459992970593635306115344172236371773340929082359733619841562134447586515631799399815823247395523622846348034612241433905920443975383790310743361932271411161522511487577628350473840477030209721805019782331750723037266334382264368449010592882121054134422657294980459684695932248965745439200529673987875409073192678178944601797516182738234443024309471148335605786424501506921190248855652603344626328597838823581403107378249770139202560757740700198695803213109325822857924398728411893461541380963045583010757335161954646067173132227115143427358671735785806334845297337073995297749164201493242391861685226127243694867395956336644846639103332159271162807765249515679172392077632000430248228674779572811466404517196828565862647164323300818482222124588589035649160107691863796868831435104375585150454130608998838325552891214849302391327511175002792204191218819233138830461960277702099627901895729435096582251239725298155160504234499930907440382343970954061022282418259762541014053036316074920037262863206651014935913988670491741484809138979861642180221052336934519476564876341758742340279569087937159291422175497372645362138813068897456678865743434370270440556489210418331478608494785293858227941280963925109157986440151005803862698010567088707815675403253121721429837279181029316437022855102607415913514788248051499242647833015236220782661055383556900775472916192953760564488688323278222781744217023108873536562395698651296109854076733513270140807722477228192702706163342504565425020152973160608134928147825578299603253802366386882238035062153211064573719543793712294371753164061730505829138948307147483424394869424550295272091586017081999989377953453889108882168652482197593313825178977186675466725540916221455186052646606266144078498521218388231597985368198075936958361112837394466694963182645831299727814528602390711236384676653859432875321327095759283708784735016400024363975963731259171263437834688794426439233694407682288353301512525881120428693214514525283105224189061080519654938507055018284699018771216020075420353077709567619486764682121181611030780964625978067116525632635789955005214806905424784882940980736844676335908899055392218594959667151633784164546214112925124030039036592560297405391384747156265263352212865379576818515306798271262674776318906964532680315514664090932681490689932485997584315499619153608236390382851925009952706335953306681778652770374832264631814648269575128025172843771625886066656752828913430911487827952994309184892390488329950452019007899707284942288755017267676468220531292296776491198376944519188626660162161933305941458584639745472752883822341234411142439110474066186333650190047235383330174290123232928097275861067284674813587179507449301802892151839180258520473371976399789385217629249748570807303097257551188752167229528359894057036753922971512507348916981314753839987159042567704177007765115722700040084539062126899831631048768632850012713538650355340884167678801761516898387098726711697564599505920281794468896269618106479875595682598967390147683954961682908431940251846874929302349609235435859352006428559980668214723092992364365191512382989125619765254487872522447189973105674394525313622032558189532064811579345953015971380796027116187801289147318198899803768847827177820580288972844593931758079111968840581945590187148930254833174552104679056731100179666498955030133136773559679035358696160487305218853960824062619036829143534404249098942624429149200085994931491185548639915611291756270222835361602525830650857111386300309279643154963458233087086826166530850197132728490599826287479375523575531635496849305667405144251320900689971691258379368523761949298685460057708771684017245474909360969494705141329904724399145758872965107018675150860958764572686965306596080685707698612900272847603154583549792533416346003233611262678604341984086374709596865109866090159770197884944442697619845688069496983075147819987916894306523817427924486388420577463682633397075238930901555219095954022491902630057317838403214440166353470705857705180346738025292174690123583543861188710988522868084176054687998909015100374409627072263212954913157732010812118006678921269250495801981525232631329675318193376875866589324089163323914519426814457666003876114606749053172926432147723395083635624752608580945113822840325620196308699491855015168075613086199173386887870939409241900895878956751060169718488938298066816199043833600954980664857739487396750534227218135502438848087143863744688061715392233393391006902224338572071194558003337504155291711552804295112630953979353057684378295274680234434481375817297881001779870222935447204365217243781568733848959579868778678118041147379672729669864020144013667264463782250796854297595336690643832604840672414527361974488415142855584201620901655890823905109538011381217572097300722727015793867525538460669062174493032422151739089869816836232737673479749764729811730906601662054269391595262070997283506965375004576966405460034970571276626276573844245712711755678056240187720766914108252996990851973880204766393247683555418592777332883929067194507931814891419705769051260241747416383748820921043594092744351052035874240978259903837997133119426163939595451033965199680563267558139545928292700641306455269390499103803208605632269747391854301465016307119049296379646644874506741926035356872391643729549929223072869823614021797380610486496900452231844714851081946581691037558568759510692912046617090237906902493809143797592034394627516689589811161422583129605723251646692137925826249577056853241970454095332400144918880491624868319329152486242992131439538735777575287250197429094910601954532760042929333603015050082211547053486143764119671295955694322449580133162477191375645250202328620447486720818125548068667925162358393770092566654040961275954002644539248072673189496197135557600283758349675451505461551503148988802766541243345012591031759050530049804220285217172783663821976552979981590486678927619860451720347657575617354894477138343703759231824624088425983305809696761948891141120202777360465883526328887083096459191990549171101407807253951361324286011762425083863068251328594809240125203436592109772835917481314648634410824056800692333869863602048436936899800194742324893739761853896745139067317581057858188636912315964867292140879032136351909581972974657328102883864523974270163143786918052684144517115032618712236796632459954832407913878686004324491905776301958111028869304045759346611704667149659218085354001206122353196326088413737084829225502459652584690890422171583432024026496739402923105973507700832814033137994260981113504272880637771042560368456343548189658778318191072320241516598592289616353971958124392608685938479438162271808582797633754055383714325718701491797982063024510591334300354038029924980008556362740168663553282151618260330198230169569813982978327729188601469396260729094343373546609330962342633157990651900770282660826727944716498553214370513661948616165705020995374555497290952384117512743244666956312381144195276051465503733541758546431397727047885545447054505008626085410828525972839545124337069877505637602680780573221995905652204618064367077972851942883979725569116369052876960796783529394481231091068468766977091717988941124124107335062483542746899635438526438553295992428073967552970842067717002149291359606695317392879555910082578545665081353541623114131120147638563540682107151343801841572697197630759216089856617534059000308262867779889501524293271191644015164310210864800010486577509319305772206090463003281043946612857266028559070586642097011653706800727981720636648190157840237750320900228138864256280049169635576730718823077293981408059690029553304459351955741006589085999428412845644354121465525360851822350221623059181643870865250832555448301113159980075983507264847535024005996928455491215657782548203112065815945410468949531573504055143860501006088947919867751981279559153628229160630510597884981677629745740958239163268553163280985003225840838781826707410926447640114632031876993709016594823866976562693445142369799200946444789731668066484294731300599479634734501048339965812849326007635925466607671513313964565500279750191406010073535581069978162031790911742212773962558579950813035088671554679650480388418109033191874078561394525835841738858789246000071205776837553456385151007264421980419549125074607756325715179344926326811275711325080976109533015745508097873057747897972708093382623690939965979182864087985621547355337989213542917321465842739822037797353146778049676165366505253479739893535435294775740265554295394947973432607314687383418684272508570761131994232420431595607109734221196292636807340919879600834648003309298608043675770368304127228714447377976460100090001010542562593163406863131234920768609648284873128610306428254435616320452722088524348891493575073344030664791023559497721797054816968082982713358305616350009371913256275845237203062487779929545164131723482400812469938510653417317741637415286134589578114696492833282981214198710258759532671377510467419508201019057870979026590885751173486216864553317880308877224460959869099482494007927163472374059828223072564784644242646236174169876149641831053446149036564696662909514307456729636291583968193416941454769465797710745315872510793693113185178749022570813098622691750945028091911414480614021076730628663925747148818108687105993272452869668626054316481459421572057980637045728427739615578220310141807992319820964920059274979329016275384215935731769666144170904223715232226030972039756125406177764311294328762195590051474328228479712697456805940973643447548794656006940260505205968113623440585290313961520652071854486061772368257330431631664879053143066940763225564066579653010665007253174367463535246578189269542775328864836505238456722234939042640453522305306829652201607608027413863806003045394114017746956364557850967896960007826764908245466386674686019769862755610404928619041292295659075186005677533562503858831621392324373346358730066245467769543246555815636455509968225311840909322421376582518048691597872199544446139382459158406998960428973392785964008730459281744904868400022255209960601369697610247862976487253942314748670446024447207803918619149327802737000860878912555732724986408467519719721636652760464688553271303834471129138831053356229288682425469190647609014473857340023185194717311331163470436099373474879181859874282478794668552975173459397501997148177380148094722027763596865463287490522144117994124684769797777308589781773986999484018916615337188834506410283986239532128477655719445403428419937746881983378627827959296425483979603883767840024963978493956558887023022816602280636948683750218691910280220007628830650194592335404401147119455118879472483071327970354049005613272011575831377689506516216692956385944066833901140511567840096376236420203581739876031383109033608650046661194736202500307429728729026086450023313644426616038505586322818562072794691526504960831703717604467741047428965231244767549363638013916821117259247438004498447905162739053335132812540573694741018095353061475409715884745317025552860415743981353976346236746371752075734186632784219923182776020676594094879072034861376588331824299610063882505049251141667828514806515856761144476588465624724811085993532298640622662607347928999555521168276897035995148397228818889860574697912273173039817403591246131887773557267600218694200376322056030051494930413110184664039492062534415105834415946428261937441012921930152479874922251422452408160496655976691396407094218244532086109573638098638026138534811363465886960128119348707454405982611249351898693089460796357235951956719492948094318923216571175956210933922923781942586119285892796104802841395560122772068748181130905983221155892012372696487224946116467835947195222079409136681845311203938516361988281912396077158446356540119481741095522600702365388775006068860999119151930270640843539334693254274860787241891641680972288231939667010870009335692622184161528595103270256682083856377342329411405428565019043710783087486410342017559519064252458465662751211222014066560847815965943317203337154207791154849098859315985173469595577357298590060998427403961479855776402781692747647550446743262025553647443093791305014220509923902157913187226740382325741592319833062903681409575054214548488118260988653552773121192758592881368385252101401898163407752339564633171458859735383689299501448029102704214075105793861618686634431627150296201119590671058330841116108208517578651241554831960326184293878202658461562535697431952678912462718991159853770452638116833562532727845919514700638202526149474873428523894300241000058303162834548259670479426032949807495616583593940052915089446377577158331594319811382572533823970550604679192852361201211292063468907135534028896843107433849461955766922169272053315568527712714910739224830294906875007016079052854547036453800096688995283846636210167571034930482552929242192939605152143695399145942027205532104132661545981207938459550331321395596635683359798796796495911020390902807362737578508805719704640461152528376700303947962677448216333394924247126851294209242639310544927172316185343477025633142225386690109541104514721076459148571463207300933875215508609284110409999483673184539352589016526596137271224828649306566601623217816167339938459491297326336086469070169659996156141557420784821182053723167287572072041231281026565078169948302170616578454215620687333047305240206654809892063954968914823939509447779395465117392162164851685480919485773223764991491383879824516675697152559463844949098509846992429633388872396644100505274478401815012846633099920092142089350556607154194242679855756886242526587894054854485996767476928662739371484849886256596159008470984431273399522351689028873097676458656758225883857738171161128394908843150225262540611019582060088381393714380706335096591635431063529996868671497370049097347340906181449523767586201269928248157299119874099339692733833403933761128371222912064452267654701396234111041402314520483839521129547954188990054167112575922041674599612323079279942287903960332896008399354303660921203856940607875052020041587899549680475176835473372443572721036334101895139984513222602277802956616552558879497207385370945197865843926615159558958023540367205065814257544256660205727312776031627220628680986231593189009170707182460101456983972926901040729817884841656042332911093370978610282842458553811580280031400221561003237093944853014288614334577345925179359909429249054850049678321508331565255510599093759417897931807932742062126885086560218256103424892629173123501893055489668304396204832379285799190401866544080699880246066854686537866076345818529592032094059178864689022916724951992541539020833306320128964097556728894386604209930651239611339306463790014910590407781014322253888167546408668984598361340614616468882422433418406592556456588134636761094501558195336480478976889026702083328922966510501277015014770982517813799882208525576436188697263663826477415616003249759189630437058999659925667549768616299089743391629185783426692815752101764451685585346830624565182916709693943022104342066265274959672962187336066260258644242610645566496762307159449548635868907294779223299856329348215618891800305060361788608329963324577416635776170120791288177403768487702719693453716761391564799547878928222004108725762922576586179265146399796796491858494915891662626022320134071925027300420573144173751394058054295122063529667108296414953758687194563289873809789565246388798845390652926675023997015996294310900189673402259378904332458483753273562697931095489804111667343886663291936111917940155042926497996276025422381390162409052914958607519317574068545130923949728989282306046274765656213596099351408126426728328089703150246392964878661339108321259601049573894544762867186316584152915883612465525980762386262803396681322356115309910546075017034482677723336332521209777221695124877046885019271666130305608116214312350847946123456915618110991473018662595322574706792571576177664031933264173357530751229494894982003680220553703835648500725483767878504070153290382967514220515069462618462525061829906494819231757259251221776199513206971665772942168055643028107799130201271956053841882403536579442082043180955509132295660245665664870488715298812021217941177295559754471464018629432139860811894825088875914933209869515272277753987562671692352776487574375960614262361930139079880998681083328097546335366720495634226989976272746050361868931877034194104345573601154004598749801298564999933912456652654962575296341442681251172960976382438801962802192631278172930241350607670148651051807116413707093278177837873467727435639527591288627153693758966864456237589773562215266600791262387182240878180638425585201890496637568895176215518203372335043685581826220615836103218285809283475635899435677640795637496157884497559276753315873266004817436274744642061789803681379952213282653236533911739060049083878554335975408683699982941438288300015892784489065252629181598029221664653655792317805539139359694677351790403874879333516815282726344452938030509452081968721380183324416167118247768036881466149101495827872727522424222231858318921939423881836385928564136505011249180543755076734819683902967582136977632707230100164578271826035509776536531814681459308461506389957788388672848481020230477587736063063006171442537436299061546910449593030955520394315429056726186437156754791519042011625491465239999550491184918787629764723051304183002234449096508185931347418377136520689522218047778614233711721580367289126930168603303814530446888501006795861536843590094650600141190289316346278478423938903579714627952717369707070013266569506322880057888263857523102931534817572161313014890615733823202651918469702619152039447636890219377912432691401278869153972363943072153091892737780581576315436530765454504212300116279022041503223411727837359809153986603485022725481107133534887597061335327315533657855838055046665878676652341510588790313936884236916806459623343691734677586131850133399256705627889672168297913361274107255461853791529173287936624881624540273333451159020545518274788259546564284103864778929514801092410248463465325545539823791601893259871495557601173372680055781493948319638850831227327176204955330077485415652432226352538448611159778632053427760194251014022034502460035958486842207126885451958131412296359886145365589445036026070045076773403415835174826509137467976025618801263796428058816406389765908297934322050821951393591652208888174667136637971678267029376109823557464925089920189229236987845410123732196660236251837511110851753229161986685577554414818764829611230602583650595177875271826222355285899217984769596453484708389029892729035492970495241070222246370428793796251010590685252311954603912139313602112775671341879088665957728121089084085537808729901334105258829070707878601955030813284354998468221229853115919404953951727872429632404773464586094317299276509232861062890410626251856948615877476753166170093218053489880369179717068584829078101193908665593647631724086010187688390962422752749038701367576745227739979275017834381772616654699288148446096173359384551729820628859350295337897497192589195706678399319181505539247765778964515253380206860738112876968674205158011314661321364086602497787934597815236507103672726578543106419442649041382630134894329827123554267511442856211831496354589887041862325360455277212296955694051931380900318051770071939136168703318055793765647347883876174537604248114881458697025206746354255517882868874018532234574894750665795870442217720696720564533926569335828480095269240299295166776161009789029234300735666125940605024266998306911266721218134552947152661630642106370985872372583550056641855316549778190243652439140355448079282002866887096881847447676656444954882332441935865967022109587582641392491948608625395758348757996208399995281960928493751078107618180837075841695895515999269657254286888588066836348145944251209912885015932057178147941206917045787598745853008424010580423997648825687847106949185326829159998778043988252988909380921327818561048400114616298423193534238667194227968688005730047526087769906778975497513169354427550569826501317984654996348754129070602210905265917460049171934001936720595379249772552391031831195184333802549697809256261598510699119592550755669557786052457419930314964413756657578464106303222383996610431557765602969463827848164704863369543746911363590188742199618360869205541807786608109131274332246813854688885855964970442937934363162269731078468071983526799889797368659980963673233594946616382881145658345336559368323988178562734291327426664995689905433777004329083250955493734860045526738116416725444170547170084586905903564800300658575921871710562240174098159059104214980771776214793041714061211473716530611394617954677804864887959226072750476220734145753524656747916941758332932230596784923962912507883369662903111908814571423335112781101297610824248213492000417007753903848550332602492060642062294747661736166836518516040945764636694216092488587817610729761119519700844104962253729219468373383068376954474666532422220643210800252685353798529813233294198444369430675163339005897007406736645886511552812324772766666310431633341935995485580225942469159885165743554057047086617248540986660251119256576992939151246651105438207339145739801871955776231745375405435554082838831709974271018533474969474613289094556591962069560459606430401491952445558465747905639845423728843565540738876502279107938005930380317937656443602541698069737611911059514467415033202061665455783059178300167526208850566843951077043864829596483346967218009052371895130074069243045578623485523443140706423671446604357405346264954709218170174929584810338261845778129333229268578516027141142419166574692941698983703445361584902424243799398241882049823087276309039459486944702407694227129561234006015660584139380310600577709616132904350424690350228461142240386665116031033565475567863276008357836414064007812055328555581438476557175394557580024104096079970829751199977529763241344531115627706725017148234561585374982239316131314982353912324492091484222800196873350868924151675064434778038628021032160664872257750325290587335528810057449208382807927745118971863817430869640269459283672075722509104923482275381450569167340851067043232196505632320906699670225592673120950801622214242581410434629275309576341181150633587144300830185966348744784173974355031694540351182135954683021987779574460443207075828113565292701242143989951158003023494787197981244604760570733845407968765492504930192451773692830823354542853044847221219585255486918866783093649414621310057225580592968697553444920826153585455306275688565410899136423886092351876351855145509994250458573056188615558507526756959557595123246693678937154206920197620838083090384913407544332538515598255267612714047322280571783828848452428081064631993891304580336822805899178701626908744501699152775493835497168747431529618896322123443221519798136046661734384229566825902031556529854145068533462066953033422296711188950795203936883330874302987145802374182648109340493644045791566176596043962208934961890735183100786395029117551206452967541472477318125734058860124887100192934978736587761553608370380573179961354975325507421618556063815258135602543386334322453044466070596596514262415597116347769676995074248095545342050493999246536968418757352027191387231873294740494998191555696184362258540654942437341447807479942952341038375418902768850868808207385742771128916993653272031149490897726970260746418446334807191222525981714089790032657533477395486895544740055823634877523073375890915742747525049314319219209767471729253968556613577144440985643024537210219194802013900418137848822193908507319885485121161870607495406196704208246090450394926578357336049476207170572985236041200320180711682225912799298194256470345219535523038747372720501365811713229681735906021660268298376850405208864500757849459590336059164123917728009038126674527242879661301742817863503773230877336687378078542040933526360239789804741496888826281820507486645197190331583193005470296442863481374139191895303807422715730255371640090848395752693643739374629374981993048515651183433288411585758225971319568171726477393227759932660154994611611930098994966046091442196840888179780504641170786567305058964600021984004301785700843952334918559896482106509562788262442188142790184697703572890680853001462319083966568693029272896607244929726870744644666973278846282044908111159424961673391261541233327773390988712305619363537933428933675094128919762095701997524382437330432621101795757984008713174169243945364949959934650745873187742708074870411413230396864107262760938811550429286724550602601007343558503859186264447820174454960639344104671363235701710089470357091839433932896046689220710085856548352047481268373257354859511334320138692974484796188015011361228324215632924865563182039678900537393269952531936378249499556221980938697101867405110991167722549527893646477795103727323804087641439412975877095750775927304485336177559883852463203572234264458088799003363284867114464509158626852421142091108077944325404622993179092693065809799376787148203277012482353572557178999014333495700765621630833895553200387995817632353876569516051887008235529429748290065049395637382602813133485010440504922716087455971269800965094489234957442959738507974080825189088806174981258750335491725335059093637501591590253862980557406310154873882228552332388828355290042284855357245920377792485657055935711443336229482295641786212984321936485363278489500488328337897591855296704657071077094087691252761209951397423755233677603603391833551972940823957699899691513272054634657842266434292635957055546516728014321219328236397748749319025422234609247955836745452746912846155002109969310256587361317831985215305869961853250594531747405803157829478869230160154543061395367862671139530462614741448125564377945392803010740301912521845619576058740568015692080527051955549387398266113973909367895725595482838926397097555382851956966939080412565643377558351886406921296807495569176346553795283349580644559544641703531974147644778761422345089535580623015631864187019838471942967255108231311830974579119067914430214045059554166915859639664240051434100420814761740050035456121844684057386492782916700736049965147382803089760157965227438776858019789334145778022618963217010980178135558648003983726861842416003556539046288833310128496481115127956671510208723103945390678762855004927883297336679967937930152036853373349712134060193748010290870470904888120207557148271923583713706064875055388493757783133351442365386709891504934738182217031192951458295161845050337495399760439944133389605034708672774245083099931529944006995901209458357728636052814459526122081731182717183121300260940178037352476137572094569027714028951675798292727021015701792879464303472166900993078162945777414891916200389117016452026149942261595606008168456872104638614630955182880640379394423746232643508633844214803302342343091480109206671733204401359661911346755119143777195096933174108132169467010255298808672966937273450399196823227381936718577060179824265039327846157842755730704754612609900196036852996345573804757078635992657681687351861323402475890473711673683017766665503772517543812532706627235412723474165894365563496540370590056857469163533826012753029356804429787890985122807414015892636208750818279176489957835438143919206891285970772719235784539120574839137633922906882880120543651018864852117167382830366809016778096475789552580824388631751798803196073861162052951866209096748663467408559734401209195205508775970867648081582476728311700486568876053012952551357462927944222530454876889687885882614997746620772865448365332865227627932441920207552235863699056578341085398048683072973353587021970806202016013634752715384118270180704697560104001411220496686888485435836586063808283130424544089893735672956507978947479150885666222337099727148235271784702445663495427512963994047107173570992969381229089297172380967282589361975582848771133574349920598304808958928120810730737547860200816611457439108473895913480952305386139706837168746838571231398778090034247167470171273405995747569386836959821790721573142262721745842196307609104610366346744852402921997003166602498947905783248291660412275708868118769617620791940886083403855047294381140605955229924308878237744155556770040661059287955912401828390407098607546954642186508454035533249628520110758973930195504415972816168836972340302477312686068902937028620255281170657425691577239189164639996917985888671959798891572806732997355785979157219881374902207012185802462813194112429128005885405082882108991320180157417486952224734826189550837884834061624307880793016390857815290616864181555403459324044117933271956910138124793350534206917499758207991188773268686587025188410794615805901913050746414057107322132297069411795926875932400305659462911718379611965516119237371982183009293819861594681008883859182616250683695136724907836605673719747951035842146178543763566177534492605961177685052383326012730615508791466181029743184083392922587571500607143087102261927546376915314599044627272140970900334051038164624259022459989906477578611080239694490524544005252410042388348304505487215385853908885596747934351377413288207147447855271881494430223250802393708095082726018459463460267705264359720575731512721207224812089169648582146413786647781974550750206238260244877112221682873173661931873008809552894748120465698252918264638666787309693830456954164227413391951239134067516405245886650422665821098163034331577933164430207147026854603053755418901146391918592224640211327518489500772306528545778690774116707446960694858232349712118677721298062930971900237271163570843875964713238915048333337355116131288026602839985496733239829011601727032906308367251779426748485694753664425433539559866002768433490955868555408545534436025347094142247931282760770457418802309491323472782630698337872461935682928341475580012067995124433753694709726236827324767191816598204292949685439305253199329714576444300176490409885614569750641013627802256793116284644455421929356774444752954977968074276188104100046865819455983343394489470449662323318816373358748383659811501084410312088715053800491441721409886349524579566722971034162902650724781645803596387196128283362563163005674327702361549662421809592439040434007920902146807190949128194467622225372452571588894302866116778813824250781622478246807148067889582045098035895634539696665507300401242589842145108494195245429612416465648464520262414820323992602460263016770268914685470574116660522496926759136271468157787238830537843977060538943557239993824543353085786789002296817559400518578773498124157065165032551995960900982691586218514364977339295124296781535149237252892212713897370507158222375423623793594685930880976472793762721108411465863502134832921393775972946026385103038741023939692232502618204008854410649195834378850620647773127817827766909520066071869227259830919445163541083348962756218987976378526525863727287054650075051890651996452100471239444885372913725927525786791187670057690087031269582339792425738757874086876376919682751758528755201145626212841646670335307898467562385035785918060038137553449854851637413316133352775252685113995445356061561103925697274223898951461219068520906240438653637903856300573523781849286191629538027552984398400093361006657122782355977974233272989543153343055017147701340400491930907203230367539123758180978869585985534335807714391112407725926411687194600962109002904725935533882349816473003617974297220683248159690840885118084672860232061452993818688415546115160554244022340968745061813208323886030600786322336161340902924814109460825696022466848823548266688220075618419865833813210746349157790951250473874855687352270998596839168720416937665610249771307236355204022263522302836138048006210337800617161321251506022215314666328336301872956920793961519050057487478575325054566188728607771549812034042877017957052846419364029275940785282537272733035621711223837564225650407695140282417051164280024517639452467572668447943085871451738880654876187630552054234825388631019888153032619435209336348365519515305013583170865066009094008393447451035245217883893231599911469252054989474668751728665133494166671148400864234723755284824899027742921651461183020336241248095582557263835256187543832531703688130431704416288633527939669818465987964026404940732626458111810333781936860990709344161102093108842921433418029072023084345982322933340902494039890507375132137764425272004480585390535677652471351009802387924373360492231024007085455085471690511489211717263408460782663276198426444572700741203641878964696270181057003299473954640886907248884541937211578126237433029219685588745778921870235638320142659777073195908457698777417515499543168727387635518747893280877214649345016919763644292832343591834170378370442982347510750917222660279222421058577370557238112883861367561882196304211551620856121082770889017160227165352707367877564085937276068399811868797849968471804674093106630242123591894344138856984695247628589643067805825185966955332193850318702238585541075325387680498017471129320782432171090521125581540462306601407318334488791553701010012466148291049802430428464594845733119734841382007120285226769819517298624263477289759800459354756493685430672805155061325553887697726954435199219686402266403773001984374354763254580769074463276428569260766335474069288670328392757077022981460725352379236629001046519453684689471138880361715462475881730497350404945930028533941744016742104261962278421477871293748810695098043714630550274789617220769173387525219074916950228364086570897975615668121255829546557692623874071157295815411192109711004890730655224451540373660099052726253753900737833021217607490139243467621056354134774325124931898659807156804747491962208401407459492938353635483423611140821183307045646151377532283412671054044716632249961354540997608535660132587063486520508345244220129903154338259163896353462104821775027393798163980689040399036539433164645172206548638646643553046858124230300073313982788513187798690772997944939224812185399865869802349991682970155978467189862252616337642192156587910305753938225714510145501550934039708671415202105249576602960803231768656512346034453123207779437728130555908482339528860944694735820867243644071719545601219481573583313917225664131170046374232959054601887064436573427831890143816761362943076045964983327025917334310567812594271676127128262436571813872757837931521393061012042627056919575141524556067760991374016912802271280408892209649031684576829087811869769217375900370788275617631324783880170421780122815955394269495099994424244017131285783181728533745388404034829544351757969699452680677352415158526578771385776412169955419645926590546517619270168170979411432768259431125106803274956821172821829177134443877299200797675419858177553765438256634887240481761571908843969543542983642715412880571899213119493430093234046153668761284540951593217794184550253676328577725160634543477112862842602659414352223401246857260758293193410514866047045178104646807455361770759786040704287476002058443753225111080362936848614929519169871183810029598029105220577895729534479541801493118039838278317122120992992511400157817753408386780226648503550427544400512330753250081321080219671490851809683740097786962611710604936801205069544801685007631855977764484472008258550602598725524825708497958387843672505133946354801735679607202887000920760404799176521560606440729439564027130830613563395475704828222794474916513883885729722326771448792455344403676457323721878772639133841586112431434018513321790361758016106129257129310675733456513779257097187025756893410115214671343588327536286765656793338978120952086743947922666272258935607803749369735461459748067567286346769930252735854521428584388658637568813782426926223342554951125692142176819025785759093698331008522276832407014126264334810697665443631472374439808250903381802418279415877712508509158581095796312066033592410220659163320106845419884567739273321248473708867577418429908527528040609835613139813812215924776362360487003779268621916598896385224998149299205882065098277857530369826605018192762890129805916429791595579911780083396023965412075544292038552141686811859965116070735247406433650713290488018625904017192338717975111004318237353615743499939187161077335825727721951698975528450305690320128233837048042222928844782176940103123890553012827396925051762767662150996721331801748649887299684082023297098840957941296521277670459214770509524840388563622880989034072518099680186887222013505750685619951913336379370291007376876745931822184200910455838542126510177071857476714381526521330656722640278828223913685993517643418526674647606322258420480100557883323898287976311889383217324081456945749057304462326978598259984212097619101119744966368802549977354506035639719077832115743532456617492368318902279351791567225249366147001587326543899172744700808449399364200716993365506019289088244402300627770545487253703778432943603781530777005090503994231912131958986486333153870270660274502502060672107836762518260606067946471898005128894784761906693196955129283693108201106760800393545363592868540171999293936508889790793006950166904895207339952253857550907091352195378989291706523944453524098867160029931076209327970587494792813131215974134140168998890915012276572549477477471466456250467903563632117838895228094282534922797385342449030804946331041437198401496706071913551721873831091858483939516275366420267141223451326010939180127756773686099495765816196596903410675811117846259363431856240332665127420940728638477366854561102969971402956404965763988020029754424176899719173484085631836330000762513260951860582368874235234070434274023123339673410467176428537161103570946275563453828907399831800987014919783183246871053991388188545520156193063943211182295536666889213673424783267961404279706554063961213680736497981640519972131147975094601924280182925359505098861816433861863226314640173189062206014109863111557183924733735015080242871205690667279481759651803518203412560762170544447269764596857070436539692058475518271268065061779145401883695022078155649535042277617528231332437437611218841262560817851921216541952469464254536325430570060443081266923247403182136861512182911553566680885002664788191451932938107214227967111985791596826037288442254047520535769867447311730423932098310198822997065489048354084613054686771539697416426180312499849790478100162387176672322229797181928027715516446085098920070497612163767177271911046620615572974829657602039716829994694856448593379355367803331764711326336923684850911500051406580203362022203986611043210648021630101694093169528041286760118182315409409803835446268505147340731275979118170445403103755769855546876630713344557679615578079968667045857653937092559371091819719714071932640254455383688528606292829920281717006157619644664233092641623940078950541750902759019649209649888985746819080362630652552772705345760408458970329729244623445544651002955299992093171939549034967202496660501441928927882094129406599057422793197147047340383732862495015554383067080824626139291398882355365128036109799591422705033849098185336263219314291915552313073961241252756671525192318341330506762166011156103358972732978610851477648076298989437027406149643384031777465350202187441590770865545054071161372351182084235839735180874805906196083022994806865135486285215646042516771542589905409504851828726762748583443037589349808554039535656041342713897472538970345877279787847387035405905524433627533982480599938291902321563829654057427661858719417437184871659611252043246067081437012031686927369952373006191788678664532488195268820562027924611573805340323647336736601739464106410992051247599274516646511723167681269449037994149022183483197113258808742473586368918000756372437730952066476776091972810686610153122613841621312277100568498546757125721920918232002823842239715639631480249479077291088676532800454911273274287070431520681323132626667181777224095245395071929431899941867525206754936478003969430560078430088258229846066342831117684003547380863743070389106048206236510848767345784845229809136121049128913232891103589713181920358029573728809303350036321713546782855295240620399585694360615674932320904398056799547046940046562662370443922399777742370848962524537194551025039641559918831126671675573750096546842229095468440163563789475991747789136692155347422838081790360659523982546644785909382998280962054776294413918218677978686438400144117630353111225583245899105144319105447778571295757302896911940554747734518267106001860209645097589967561631167202408484170718978911432658942828828577195533258505989687246883897941882127392492408557508971218212198375264417559604048356320890277673466589892401648049004458981371793528720664005017174000606886207166891836139160556348126078816127911867345959742281826743475275497523288178590063668592641084429492703346003790837460697623685227195058033288055250913835293025139312451182491191415853946530559709967498622707150288384656403573774399003982651815094292880818390099566370795008633732275377903775046164937311481346568656573392226949868551433865331805695349073818898571696475940868608825181845140829082185526136164780097081174640807425830497185472316272124382958497829436335652421995831438728060690953542467682637372964454102675776891151786588419028365811730735980474890983356357508014401692205378696923755486893928594071750469573359974081902520949038569748717609690653550624720468761994035227623487803347275517627956185865353419978362980011786998304157139520767379167353314573632201760150124362987614236670643001511677879032483656973388521526521244631481046974527155807668971151114633019003055884977513660421916620818883786052151829467644979762191783982967100964088721691583877224112800950184937445511997152352480713549309625267173256427401717838256780725588564299861950860247069142889949212643366237119966324647037152127840014107258746134681823442208459243927236041700650488423991701302665228976483210639523488022919244710770979852415291036874343810877827038902719283867453178297227005017262523821447500712262927783963578745648908216136904629467988453724546425175675800364087640281626262241024280886926209550874515927788532905592903042230874864411447298233240194366295418618384331669334538065948770695543891734758849655426914028662221303531613420931118544412774959832429094862202059976440350802109639155653734013413323627195734325804135217524005450654773443535423922955283087625295469489160039151679293743379451010850247285271998249664675195842932868468743719331330247663185426089849928719209090850957008276889801999099247958209657430978479531291226765938700397177921973685354879226382499439404122322496473967155440628898914072774912387033724389587483540759801218058396485321094738084386155800472486284432556697108027053178425299878393870786471432273618326469078967720098437376676961658385560560141467772386827541936075997405821109502041783167263999797018880865764731626858565162860850022877368351839937117689400800330805449135618235386793815832263564250279620142668175221043579577139770931774036948362155430620122504164064067246619001523056329295655193827168974811453389997339835623870843521256261956290437308763241818747784555601743614635532702435130746622283502619706112305427284612376042555981801165415825950819786644875097185143442419513778323029318283499309046754086354223250748084981784753958496931367602541856967783978717716145893242917322909183140396872389518818739219031221993293869544284984794784593156980014504357843061898819548934414554175947953938646595169944192357591480782287533092544333534720946700931454188415543943832469604257703853664541708472987051071424922201462821157546957344160248134899788868412430438010928829930164698502955422467316879598043941716282892537662135777175734511994883273269215969473996593549077602203128576127449240155044215639629048285869934912032242551918266881854521828603295090633465792091501815094444811185534653161427239954803754373329513202495707108881194214632841928854487590451706082779352043241466213529287893346350364429854407422771229311670332961133502198388906317269790949020035313389162275570228806785049449440895273288787478221838399895121558611513346552713695584650637341258420772908218097227621118640782699703815546201694102092335584346921588285787405471658052920892969103789625142004604916445201149285760558799685926299797663819949375784417461757840796824016345790052659771997479176387243875503447785634984235554329957011870275408380467940975878440957408360817742688741360799823851382194200125206862761775357676537079637336523963899811616953454977580302369011052983554057116930625312038350533286314521322002698420223602204989419709675511723328192919763484236018996717663293878988770981640544614773921515513195168843706435441986840841530700510079645451807640890307558026816086714653979328445792624941126783740309135503217335966549399706420967136968086954099843879153290805905945195674210773455891043985069533127058437292788276461411432625967130467436984134914447133113595685016181728266409160061507787573520868364746208116849103475965284367319081543908165883022272487096262968885264407669993067373950099842612051906394337248634395968670745084811202553662814202475358154995980825645726320963856912761915017328501906315016134883637595819930628510392684453100513021888945412515623847285153835862037002864881719247979584986882726411241243519861908690998453371654229205701647431721935649702079263734461881653151893408573295006555994891477031044430055179464751162000194652797418851082186893670242744011999240989130961674292960024514895954095533256287052608172134083296470516555470567293589143628583493296702748041077371896080783084424748319344755664619982503661914282737956664575988141265286448647995836652437022950045354543844727143703641839873630089428581068436317498474608736033407855829919534466433164674255578871695845242353280045668096286858248574397085100425200354582082743410481868002194587552517546540653144081546044990177812609743603554272736493970647291204199574897745904347170005199090878424527429947376398692639676078497840218425604857179168367355323254956710894182082149216108468734716584769752023684343444949084338658878651697964702222811621845606660561285740741659219038478727064158328612862441122088848493800936874816049964517513595510081637645001645720431332079363907055329077844798693144318053340401721085542347998892085483108161656859926017559340681765900020477032055813390650662353063003458050282947274232490535712142102021949868342318415558679497804983940650550020274843028294719866639716542365571444526671708078863969252502655537575683608796080554915201885991646309145629647049206663251657043728635168217979082613413973530463565112864990493587086292076940581785612784886789462279375579601168658124141613854888941321858268841430123557537021306110459480167642187898474318527633786960322331990035113523578100654685558479695713634744783962284640014019984958670217519153591381762426452056888771198056686926132043643382199970000630651975562572591067634805065408135772017335943114823303073486433273880466754381428049271158566413405579230466954782676994790149401186989162812193824638742200116444601842284421655370410218472119107720395969335906713208470169986657126400981735437733063864065765075070719666785893839351402149176678960459989878595663324404310668083527958198430899581541579149512130990127482091057889461631183320039012634950899852254734641854227677088049853936047899326606382948767544229457243913099189248766216823764466665645965781092968751303860477060930795556122975194017936089786549782711993624043255549881021439265557048935051272936956892832160490646388791888992342372407559511503404866487247346964360788396602824415614226860723012281974270992349167271971099219179808161690694966611886856682417299000082765646855280830167494647804198631853010476962209003580678209815894263290422005976987499579938505742463026000372557063724016977985514174628414682576314679205947477739420279819411653136465868518548487516816025985023389360351142762381249574483546364821720060937164474794220329237238844436000692274212064994280158706541916875238946284844664205233862050348038891196902574182324566883372495131955077870578577762436900215243775012377353414178903576067621793632770975083903738848584945531724852244691171806218319200961221018456610917644795177305297862519266384634239206831720231309405693463799967816950646255650368157577069732678607595139601250472198674801406620695700866584388994182945170770187157173113080570780732330017449608266019212063540436136587369023472644049731123323433258027020332282755082947445275206837751747907458324860757286649341049115029967501580445288559107201999308914269372923079540289298508541437782553488178732491023284901804655061522979580211106511172087296915216918429047076731271868593532335101871206398562484990592697952206594674248332329494539227467291459266249366336948029230286051931323266832438670570640355418394124472591099857038582769747063041270149866879412012575092336029061073553597755270601938084125451287192353839556017148103342781346142656085729808466745894263346930527259245361751398222307970244053487787246238868607112811012148161391137012688842679978068055642624426289390101286985271897529510063356422096591088510922577062337438638090687702662880245776360718691177732196006647033612880129802791924503910807100511503571440858185842756180504243936098172511546509666668048048211038772067736551955053011654007571548286065430476381939105081026524850249729832996847003933513762544028924940271729555085748400161212810525589892184151394137729359627195904678217297865003255980558637364113398996134793015033573249473949075080989287640164642344908122141458701703482588325435891743331201326716773720062382842196043868822058471511746412722500674511852155240582284721898748275933033436873035847337079483551669017882504042751405984202035108028436586153418665811542753073834075357457059406679127699946870248727275842962042063937734446852463069632733734823352458131443834343463144312576773222755052626955022248867475255709010722629214446453873328844431376201037709958889169471826443529142638600140664938809062791582269181151652763523024470868334001274176207033106385488820512486434478924373192769927745568282522650480688743156934953523560835683909760048899766101404912455454625464500422045974234416863476336079265918975162955775164264061109914787125111918897849947182901057156919271362628415006003961323271019878004460186601744941186416832625947929350736646155124792886412798786960475185239773172376535045674349552322430825764280106432065696359469796411572263485234371833912461667719162136018953700736123329626479114881751301333061674879948901698740533446189490263896792398383728742131545940373724042812368925765367960807784983329985846376595203733918468503717057844149483059511175763080013737318809503777993404165327522750508238476283535225886635465893914391231851571343187124506027359269876459499041681677808970993635512311404083823845628500632807051936197260897730680917631472201385728753316176114349047070049841714654064997579648490835444578874980523277308499842274710413578181721005982314606612523355608449818332765983002339097284304287532880639892460629655827985168377531468069851182833971405201705304300510881205625761345786780253971659719591964356609619664422592029258859727857839584861096127672730587043166415961151631440598486043179571557511656028800450860088832369521100221064250798227071223181740478005284518336667523689568897479208084732911245790619299319014010430359112178727541027401507328516732491583699265000356017288086866109620514125041467483014120619804801985057691986501537654928971811038593913933779257088920087451624584502301244862942434096360333459953451291044953321563400578929943007110840060932518178539882129857549217160403973599462779566638934675894486809225858870202664342716409907329618162748476769908884800724296381493052004761009791058142774832667848521181141030076287368408214104929883932923725565171194772847444194321694662428824512416620258909985555902156524638288773081849722466314435641415434240175324709967932496766289469545497153811783629200897658698386734207784204024832118160946105273762322587041169099076446646500775608233987893089197244341159755757552118172875952185324582535287576099288530479775660194830974073015711931643376193601397595965458058570549113528329154831451586963809522723921715718274545466217446080237237188901646859886124655968217731293100601086267921422306034221035650527925796504083823427056074790080968626015551533595958030013948660954919725833897782174243508540656479011754214768999724973433633544093977519849974902617860952081012729062573820196039153810805955717276100062260530485025634023228419887820636553112273964052945030531799843247267851283685054973994392816668945202695503477218278706732868459502184101632216070799158671604766396632145099783854235955068719440762919707683594942428139127229996257329375438884752052597357953865264802065142756723422027738587568022077016244974214678168439644145071891167181014535400440287076593275957322021429516049109077396873823163538864505252822644524427899873201709218293678304528238722569266388844103074994271249293106452352179220350575204125912778378108819107480033448720133357645909635356621268310914683765920217135036913852726120672539219507290015238415000767789904051981960701441255895528589776536843498153218358309948692152398460857080752193668923393423416876291921571447781181898309969572615411735280070599347365479224602099842032541932476734667906991127471569194916286318643650689187513783532164419120977889736176706732602994804761627448979746963517085667375651107351406365682497271160051556013768235471894275278817336802277219788697210980770268125956314375223841736745992619697761623511069185285750245210837367567196331453906866317583096009932195868433640426667507861946772953456660796175594856961538664432045274299208295700709500459539595647019071719805619256845093006493991455277350345794457153032266817738079700781084208822860666505857385870889355150081101388109323479784564331603495350695334233274859080867026382564482899879838995470421390344185475800370295233676256678560755063517692639474050886957956031777281626783534119118038008044520391677488417707284327131302829017122299658629102710287342300431226085854700411114779016400344622657463824696424256466414414430011917777015902398935713330059901744310175803294805754382442500589283407688643795709950314390092884503939844606956902220816906837290429021894460776813005088324743928998237074179760161586618042392641130293271282619363621260471842723966914309733434086179504047948598364166757432833820635146855771941405795863760494757016817494431014711961488963495801125937339412270549914129415079698684156658775531731505805438559676553936100129722355588307169269227427845466423045283874622527025715564515690261709624956580247734654875793347142973128394332255845762275129868528551940445699084243831338587340268798255058012780564881329052305393415849324514250040956228704371001542194325894231680643947191102753082169520586697288454895329532212091383851629466970009960608649533685073556435129305401915901716598824559536486220525969273257338096359222706085382510517357229149251495400079995326585839333395665357328836378875682073419125871782706336448738085459137092149933524575705969001704995016484621968469833639402728226093689272158939533812190628406478797597779173319332925458809044458251939696520608412651537378241318688612527090013667207356667013868203041296622502904901923720289275216824278724158767122541954510071954742531936940288002034245580102408976994020168680083183474744169471142749838395479466967295912593498455645680616615982771999607492479331044538180121168632524607349482955743286494103994389187227523429472921240292328757886654521798640567816743738043280014237488850959358658371271529893977391531771207435100329680513214395808260451124500033606789680020360843553936897315087043299819525317941139161925714002485317351094943769254228331167812188059099549292310953296680215181275014507813770719375062774783023274936737239391404852713947679667816807899717179139387316942890477356583052480919564929506946954458445669768784090284376506466787880115246586221877097004353190602377053021077613294950032944586440262036973009403660284544587632692234032350699070516125723466209412297055813097345661324662831878165037359207776089325773944326217930380623903208883096492530957773411579675068098372058217417280334721958169914890633251753129635593451727242814954335895841924946212570336364268889106863747510810556393400159868283316055024864296511735976906587601827705829746545567398014356813306122489983163983160812283062371672851568353627502355067972536254444616251996586399315876045627826047200986400272031090732804948256737777142193117845426959629273682871582198518435486778222799190879548408093206402205441618945741722053288520009093697674121778171662685021600560647398340732781605430543723188794814158975200808008854513437645354730399654332236874800190879523431422028075563865690728737469884768775019360341180114224262243755887063064128652973990146554037253151560269882738467477275223280467421641028966892694157367367605278296354773784918321270155624967848394761977206270022473290165279436928806717905822031038169602703823610154698332197149171002369794551261450267784092035461725343225552282630737896577659970866320321115016710560772050021510806869369773980817011168874196961992565352955047140179388564949159511958918642716180292454606843757087955497377215853775585863901210928439821607006831411882873953883677431026991159316815462195458910611610575386218368463610973514192787272313287893448776694344010465975615512327756057856750634826889455681699608939349211685983328773318137420947072225118518424541960325361936136399765651430643856479566146267004918657268774844966769577042895149715168140856531651276407514276394976732233172191597807588909779751296206070263586052813676619129198551323513250416765515545895883416267225421471088292109173728946253351367645971737038272133127428074574015935465644190336457838270470456311328265327301455804709154317477172405175867388189422718643991822577110150661748129713220550405635228377248911424209327848036432604700813010473106860906225593694875804761927049840685699630572804562333664907550312065050433051520922218467367196581743231577189598546106533486900381628484556647996317853090678646711324872363943294310439566899833369989532586541216319591481998104907972360865247079984926161073581796286692098905080363479734653469091060356899604593008962291824217837843672573217942302111393309478823391116328419706856166667924921505973049265806605557945280671061443156486655778998499175066807252806440182647441643640153574132848457118558174660236482216577953526128088907707773267905258576245496803122447157179464826476034371100140907779625289149222252275084980446320779211618424623508392379034560410546508383603784521575578721675244048784597747548024332734639421360454045765658215155442182261364903764323705181693605615510479989149942356492126522781998052017324793123407884591445201874247697511401920324834458160718733738085774997430465888431763379883556183251426133676438058131556316672565603233716906115282219152193257538806548129831762238194219682517511527360456203171237953817919353771370549510131158140659278057889767781768292062000288230239302463384022057167454783022029628011075942000036532588446821408086565678702553675768478629506130643280774277628527413161499238606052025744347357054052066761018187748940044564334890608489862606985739982367459229049835814894255674093996464007866717237243325500853058058163640617401639592718170562142473690729173744916369416322256996977061852014913023424949291007054581227044369960763158376871232328015013456113476399183241536308022359686509307294060357710777796344558373909543532415641310575246088021386647625139767212586175973966451222165020856824911393795948959757908037227335354175089569175534486191471766064322006817527811471848292106512804275597995200913236045362409673623327508147587944126005591770717553313004547914888796652007843576976891506485774341348520330192514866675740393102047715149636006851096905313952905030056493357455273154990208241951882701742430023922164310954067972053901921990776929358280553243928096811704714419684913546536627163334766575877324445620376828003159031436908336784745769743210053757503468212334745824951123449805036715876097611642253836285297686630131174554435610394727978926617565797375129956968267257816943686195635887752572169490943508359682946036503557382842899560511215577950120884051389222314945364043447239093388222254979325586640737307742871699028516505910759345033767491925684177671578922280932699683386614962996399742725202173598362446334365316688381168156544527393994716928534810872093940096153079503653373130239228243493142541711980650068782865120178564050330706022282490214341811263309292543368889699578802392383769909342213600795734335256236625489481973255260810048500947093415702115016728642099424834641466436356646186598949942849646025741710610252938551308181219883687576528276301049804368050069114543343416614923165893415885661451030063467320625000711865227811649677352836879664086211371126747631778821552334335018788643698118947485395540088741377306229805974966836662884515451492394932766303729759033156292139866746342623131571945667680168416353431698499714429085644106902305082825730655236498796084352372633077313190685426696238575023220507807960315942485990403858586655080784677486193245606842676661697006618203291853526027201207889182365921760855307579595235698609963928892157178355261686846564923674699201882914887257017274081104362792978081453322330710305097431770758848819313737163669457802720105542222110035090479614907054565433740331130790371001161447270009362284439740875531544576344770807001691983502736582216055568211809269082398838757405249531054975313914657752921160503068289872979013300961035221315057077097113260835880223669171056743081453917517711432057579208683932057036619237715962778600217985210219104705879439956998410305630456350141257383150943291629678902955786008877079899776453963747959879310841675517608517754691811123801111282459969196317047727167708147285706757947231550394825534556865727737279503432353523156528257294160548398461834771055813787707300187267022165125066077481957500758067983965130409394773944265198643146855738331167753613762303284521535984738612718391711479565890072012581348305353571868195852813926123056939078381208370378841268777884945796342938542357958055294191775747369493148993609384890577460016282239294153096550109262006877874812528625866775126334151677977593584149292495655718694210590581187170836090233961944281983163738317491010387932889570083521628933735397151583461008269353452601939318677478125268175878427246706447823243681792329826612060093209813885855190586923404255408186657463107082467553791476198258002953203955271377443621981886702632738028250155614537848759861632815666603130849303374228120528793313602639673484044653116776744117123258555150389564439974152652546470669248947161435590004193422859318987920988643018620288040214928829107159009319414314637295951428047233620240281203085860669645991060854917849387108162902307166809279417221431611498839100942376940022666207007433795238343209681182130955906113606273241987469112479826418256645526093924426095176214382448064822772329982845262095227320917346910347253832905886676483534584146216949904806294258260477310012844919224018513756408740021392428530891579735227396906612177308186885804587836253779689818658395735373843496362870776098151817035706340299053044637480971633202569252632911366237416445460590433215443961152330611608941690360502367555357556363490768355386993887183509617603747322457145681699264526676868104839848501836371899405845701237136020476337846631742420536049378671850202107375103526693540876142927686073561257549463729916679392853366340580898782990879107099015138313544734199051170414925682012919422753110382638995697841646354581428857632818808664634334477509421379080906591897208582679435166229777335501992426305939857421859468805137529160504303452272502167212408770528249692546839577056870500017444300918474326419629733129319630034539662574850195226051250990891322143215938144113950123303918176678715120862989018543708732909546863694847681152498212467350270321537984922717195040455994639297055414540361562281860889115965840599349516390544222604491415579953161085046202115678812421537208979406049886622989917847646043984201698643843281011969519003454903631153815576308387062110390503357062804933044721151523406860944492118928497539453948612258828580558020466710726148356156111957190445931194596101435377388672872852257168627751645904189744803495640392534297694972851544494551815869362956711467942862358942331815044243076873264625572058833420958373517333011847839431566197563128953928601342116411083108551695127039397527765433961421742463410264903497907476944233748723972263484457202523867195008118474296065766034925205739058051424848883507964981988849957175819132136802699091025002149012434431277146938772178073525901720449456985892524042577833539002426889466075456249338095420761239738888887792508850651313455104624119733478929633534450962134532953554859619454226670481719670901345086312178651943621775938371100347245746034408945525398005287393090680806450556287036685999214667620559298193071177116878857011138208443595974935777127874413542274592397910657362957501277194478415982715206716727548918967812759559353708391202236521621988493090443850934902787318177723623729423636962686908124985018376447092670210777560509260312459330300240360003622232239477787582306659967254355926367272973091897788117810201802281354061865064685067126332112760862591194964503942259116202789145296733900203198553965509603161677607533832255097746457407703562933752949765906001466647263264655698260723683238122910810566836762913958133203219955019528179530686964416487382271985646983346904611367996813091772181471145638972663671399772294987897424161397233286604179367144466417047466228514490634939356279880016513734621147572281851311412054561121852215429681131081581037341985588968512212091054545354577455846133437877435048831860364533912846018206161775759880083590927000038704309203544081539011223210700807317068435343357417863068253506670727182743628047183682081359896987185592123978453156947462385424220745552688012215925631766905162676102368694309830310470484581113452460481453907427542692683884293937024161419949062852106207364802497219415567328242028148093868291387872013822653318187099443970764678276873837132013105201283568925693219097325388531065532664685161941735997627283834717213822190687620175296287439095599261245603799975045707204999891519616788013159407228535119165990071530359774495359870292235542899590142657894912074884676872392424815445919684264922976446446282120539923037739461981384446140463326863670912374836229000660668362441765675150774414874885825098843500779545171066053887846987704678439176387904404021140964871538791646977170439874559712149514815292634639395432127675795959023318628876031609087322374136667232386474005871103241196698741686948173452071239354972639962290481174206046136633066037628432446859801416513770496906718954848985267578250607653540221855151141724052554159975214564356066362669218662522936355404031578097490367733975068224808109268026387791133652468669873636938208727221279595309863119484474723597686398181971604523419307740866566102295483927885760512531272561774964015662460177726138273799508544015020911713774991641689372467380539821638415746512320649054350618389859227178538017927228963988918375145345270243807664456776709288165800019689991678794697769424109427758255672053545439132819859077635832108316209405683923547089328376326075096728111305974431599633860542824346471357765426175286364992227910804910580591210278749315330842065641773528626625737268631121285030222917543922252393441653933499908383939222726884236358845849996729188714901653547969129030558558281636048902087346172150807867534926281256075948515285832857535036725066276292338183413272092952615229180516711572195846422037481647536030077361991517029818251668803372322328151142944274000387990404337250216357594087097222080275415512375671224815789551244675943820634499344529360135042742000029302420049652033828673842158674327489911442573825211775076484443581985253684517737135392565219006603422176683148445596056520889396916400970197452050727914857904914590491694449773755512794391814629830328889354451162337119157333496516729459455177375398892070211995969715498372808097428156899207846558874643833550039244688356697152045668833425991669306797069273389585752585367674082508885976976255583275736080453704060237862672798160262581683949858598311624388319832615396095470998927149928435910456300197220286786066165467278610323275032637118145359614025477239008449878232897368604232106234213164318318480053670744204901052879351525170130968979660656685316058537803326109389649032073816769786198342909371102133881754218836734720746435100032655423198421542482844267322508185499026820633802202533395664457480559226428716007218072706332509415493606119430428404968687661722690398639994038102603555769944873750088520728753637834160734149363103134211954607810445868085229193087105542897927877644204841027058971205587306919566931527984698532874661993770311006222579165823812377442291669901197427637983728497402707856913734378418458892806809177989213038890415246977559156513033729774887224541135742949877773563307730468576374613198689841465754817298090228776128789066241248336032868733332501746003095392403828057884285317589237430264838829145161416531099327126488338015760656459659087475064187858610090359746684970892559256710050463533708736031316539615929550893775143121078919331340302757299678467490598110976341136857184582228449088795794324872821101030846915384281000599426562978775559331605798175903677637875807536050488437173404772027634015427884210150164552306691620407030605835448492995499942960515167774200477109736188263054642669379602822692601637565149731492152983125550651343468339984429082235305171011091758656771150236689801442391645725930603411383009440579094467832317244866944938220617318749179568747407965786014335927527767712040954409581274051550102041399795138781906858340597507689941347467675007383657791094670761339450127289297412157808064078244554150289635408902061842388726553630888354443398086909429063416438678996850733077972614448262445961518134699476220068969621754341546271895437438557377622857644527085904239093127655574241016099558893383746760109100554557057654389504248283389170541624769768703711904132414214580429182779882480383185438738514273353544375626089149708567334359509016891832191226568266527974650844508165923151234479329481290790480704360199044055970646309959085042983141059313611735589139754847380815794788427869092921893230983190237003930824569275506434417045188230659444937982971342893530900971735039003380790229969637639228224428100473612851888900685075231678985377337456300152519221376384738751374187663595347083753240774469776953725252365585544599350921663151000738681515790441254258930059274173989052938712488646916520860312143887446604809961560330256441531305858137708399089673597863951296832767631676737213356691185851921510293761853679952556579158605070235220949875997122595689573894890800997281149448315954864235212882172548200310578617198127512685121671234248570107484615153599309049476909597719019824857638461424807653620827446607432986083400306095731352459283609240975178143476005780608575288007661469891606113404726442128499808279404012582864286296257338509353628536903546843585871490917195902522440053377183866119733460950582074758370061161357765312957689020796485840072902486159878869469764807105905989794572775838253151674286449051868015620895273733341570152578625678359819719244856679674803275395783174980675702118615490087019086205116274552549299112778906945969186336618448384006645201880350311052993881625051037066861671656810417307149090093304947487294091099981253201343649878110365764459106249344472639719831897681092023469461614726066021255824750525015586211765484922613585203984425925090529421796993739639002831023058477873647465895110622373060820042844242817386424920596454168191399580917177973730849105545895232576382720779548664918039115402136898319099648512976869235886558887440216937525798190503973448041198278749020163015129618967952933495777616768949532251624231329164816411606833682152484667154352633199274736523652255644325952821977965392268353585477474247219933395119581608599238210839650432221675211040038492275144498217663443312172111775737901039089935158178773752961811044733978103158632381683675847387073758067630175626259793872452775243409895999561588145551999899772945957166811023209258302997471220182931983266230545162791132422874569010679193494740142862658152920947947472834038653598314056188021973257083643717485983415502871983500378726133780575271866713045306962191578749367585459843615539616172984641445354762836046685347822990289968305801044444300426612965847996271091760357996098149206673402892216391555007894927051454980268150386344199289893994888898700024324654255469477599944172978791717626412372431399587024893992739559453244840860330473947561905002964594417685140553154510948775487010864534184883811456536602794648097569299210792861365414671343676694089939432322262021359351260044927692048307465751515639140739784422638149493064060300348612386542430122472544932912391827070110105240704188762546523598307954035798456394042285593491118203094596140957136923785538140741179675527073757896018688124338881420705925686244953176985726362767495029222638111291051683592412778892153897892478484714499934065097530467663232033331946948652274890176948225817589161202290605584705176856634945796129003142436828395810847063854439657815571645343055542823237069740552940988526150700445610367859275385162100758102729385521529140231053269216349952944358738935400205904414002560047135702024964522012813158341685402137763886542080157694170931199493366818275792274317334523329487076692431546430511844027191180256930200569968277928854406675555849274008889242606967086831764480331696185882603719535755318338572298449604876136591872456273187093798270041105548923204950171206674103471927967119032550102018299652237446031317295631580384457939768067896529660965882583077501405079576497545180257006999650629209338237871463913649698467541676527296828558380288040927414365885328600777967550845695769135271403019794314088514249391664821123524556159547661146576040358729977174259888441883335899862989704431108613990500185139902026890342640980718643238852483369979732558925411781295063566635755549577317583297559098918552456845616623238501808633062944997434174416550781075319039533613341974103143986495164474109164848792853105722149770801250393917818998732792236207480287928927676216072387212363971064242505231403513601607808329036779649816697650295374294124000184914189493059621574997229688341828107284370899913021158301436633139742973746529149732484718172869052618537511972611624351263163548657207320804926116211589208653095100263825349427607620883107312668907472287957479394940925200983955120337123901091891994582520053888947281644356606515822767420145558237809141384240833495008131144699580617424207628861269145467859979263483231533035799355575679819159900066882092040166399697354737925960855876547773070544437281724554192596822272537283465546664816341871171423005011166304876565679397119580979255349069735373974341195621173359422279063838230850073317525221715204675272517261025006072137158836485424302380714542856258976358899537770367979406868967034144545244771345613349390562292136864559222157008259457765683608812604398939671021089223313971043250968277923112534589899841288420667814226775989730273650529983293696425041250329575183528988838121001947738318130219181304481995841839282238870861742272937154613855926477832515453010090832330470671618283213242495823720658418166455934269715695012841122911398124769546095992139710260363637452211253479471652546754822041491780285255114396174585135893895553529459072846362337743660034072545719407207591449653556009723879251795333665204775147277835945902992767363100011138285815596270689609615535652704923866714573022553292336723507758702274153804344347949095840723266003233671233078796758929993410204051455936173825644366718305368651653082173297139559715696004761728524981843750975739358496017101618572604935833352703829046589139048863703189550072461141375460490081430690302294328352648240496274449681859021030715903545657268149984761183862621259767016024510658221902329480168266339953739779282641559903173639808061076912029007213078220130845702531072024691572086814089618664677999644415044143579980277682016825964844264139099872037676204978541382156201165325290126883301498159925063946425805794521473430616912767470326980827388202550851522915592621938482444041849495866164806752617681910790794369676644926010382863046858518395223106289326112256223594441859158598316609442498016303673462320990554956533812588952017667606932728380169458136014418027300516132625709570595560908996914175087108403294675241673747038782097350606505451405311732692123476061408301179232502265939615678674705300633854323519017110149748090465959387457153536210853016151410590462365386400204973897411759996482368040240274649510897977059913494542973767631059970130178073843188504922799261990933724912702875452792418475996649741153556685143572517982480601423867038219783361668851671611321694245093048811488132954284675792350156190858142808405614732889130879770774690491643832316364001695191535845272730117248843582414768716167817004659146603622922582915067926505092641544275016178849557865656678352654807778196682774191837084209066799383719172359478910091923134824538681991963344488488893551705138767471106273543242750576558065181624561036173925339357016547158107936321787479876781610714404220263179499521606031380570584681096894477135312992762593261163331663813701596706086018890162531848487468724095300570424224594088243085499087470398662849717854457773730988585378440130332679062327903104601075513453025550226002573302532705528878906267689283213665633965693363735561523709377201938883565365566920969458171834628977541865494498636598863079686252235708595467881758665879340131913960413729570598631875154236741451562366242738829560016355244729242436704084381407173023761611722035903608126795072149454001579041240569658860661310754066217712125900066169473186984314497749791616832937991870823220440731018234314931853502322964774849859306083093109572911006786296895223757355481033799215489809390076131260528966065622955009533231557152113286835046611611201133798403058596061079250327620828290635165891611929537231282587711040831648238773253543139117454113878210185160272821818986399514511299102633836090495008909558342852444834778238344160308605028195887557863903046110343737645732984091629789095240059574189140498130296365887404975613683550187071969263060712993045056515416090329654069828924343391492888968436177461386146130117344469216172576134083074222965598212186303364500571703644221562508751145544301265479707948234988487369017905506290029499703282443248239597137341420297272069151563283160655513559117757197350247085774296497938407373695978600775133996794986014123162526584776538567908017258466036702319715468760620213476616842667333418506305466743718955145976143243512683390859729260682883886705488446938689668673526534329500089791561264554639566432758513383252585547348890859404265812154035365406414809575244225623884949422136794422913417898588481438657435497024644119646346886733158618654175727258753075175223413481995388169197386098647738066390732982923611136365381795224846542943368742259781034997659774597454910573957408907071557493436336902593974943057253010859223898483071363854456333718553697245393430706816197292602071710801196089684250266759909913405712421220072985961569761886536440412428387830827431662211170454548418190211902079385208743372249271728776950488092353881738577890562633581982008654290101191589820739466265606058010955162338194602730741856910595453770459971626432628775512665567754877601840574321275700027275002391610360310893151264369124602337779098399982531607852753833681401709284501956214024765465231723155218743742091538233613236603739298279822784510936845982866115815041957555074355767452987931190704346773824141638076531913716060967350400618914581582061965495435834781864069358779707846353298284628074626865337834154248255710843968473921732672514914290662198516704197201853666292933723321287158752748957544028722480758948099082057818539150105246146172012621811775235720772875169686198945466011985678333141241959985315672007430212565140780198875574652119591588352322032349015970402644724617224638487335656689202007406481838530884852440974396855736433830518778068221132901392176277723506610490102967439342781795157604980128631387882363504580339715521241624411122641777992337680904832927396084835473941176261742784657490864286451354207558694923019770654302749004075445740735689868691420989136959204910036451944238566124010396967989189364112532232590802145029788240399325060636546020615971069123690000399786162181295155273970508171605417099655917253023785365504003072248887305014660275928849541229115427384154335032146857975242059245236499174772115026584098150388997933954640978769874364726690255994041281068822636261346389364741506226055925801359438079852772353526118012104858450528626672227262751699980633794496555364316777277717982665292028410920643477783827449048480780924424513659738477641911116443414703567199210041285024331086447049876702078853487578122447648365393848743766095739445377572102836825857249505354311771536947286694054003041923014489699836701485465858528295391198883379686761125853472324016135842933691881921896122977195056010683426257862405142590749998384080465601775443811687720389491199935953774486420019395099808613520632170476201780015565815834186784839416503647789824038246159273289963083079398730004228977080454333240669719448107215800448317704596289021799381150936704852561318944369347733584014729812694116158138230237166196201354553292892015837317896641542053152115691120024102904119501218489847942841006947833483031774370683884091009523361690880130307398039847807517811435317721118145568278215983173307036438815993630392632102620771335928487856614162233638106534276298408630545372833100334335730074984105593688733939030353083653344154081673156374226332395369419265829587674680019198043147256305093535460396751182252274874641882140022372396028524584400690655660296065234053381917805796843465299281079839479024423423018273767085201298493070146787664206436066743470256086718849200827181230934643445559820341474568929157032062115901950814542283872193100469960466031486165104632247137030551244565409702903891140911526675321513095050396415186004690123985317688557979331714884293883955064038678243883709406659428076143785391213230486994345961806741554696993953318005457407321846366972124146903168744731897701803811541694876077461111675200566822198601746091714766030430545250254749667904026704787454805242855753539567907191292375072819860213926138032694692406757757749188384893874575625469910594242908852233505894574193874771429083802016682837993296827630053783262751332155311628288869958598801826561076258004591206488641534058698825046611886946177557801249735413828147729762658557850586929762595653455277783290242732221243122142502165468903643305266067629618287803664273467959445112935282478110777846115678210576996147639707099522984560233965928386249513575933321614817473641403388290802903351820805768556410358599242772553350694430337463558860270646275769701733897706982702431909853456393439940568290581613000814476676866348439518455960675032832903668311236007543588350812995960464101232242313825706922482482007972721621768080581884020230611832504393662611506210123397466599655419360084048643018780470172153033907912741052535315484722136006113002881147170279543132555733209918664379882949597632325999271021044265943689823484973925297664143220755850919186166100999009001021569883175090369190036037750510399484264663698351265456412293504818557801559779341970814192300690781236223476106580132449019443335713888145403085567870142348829220263741074990168229261775660179132509307376841766164052963324942460184623892227987592120133594195246729607298538346448455237639286993868144547068118781818694031097019791624765019176957235645188115346578671268601407821464908908841122079737323821311775261366360802729102400953553541350188746971850845705314173298447081011478608169233806182498926536813422631041547773548282929835788491950017145858256287708252929814546323913261849373488681999088414246988137954309612899918888345760383893257708689879484689812395298537754210705611360979731441337497433534710505971278030142240616885146589268234824952966209823844194552263833284097830445280840136263559852408246910352517152389602564151403442190091169936346023049732944622237424505491617759829644647761759798124939314274724005224371793959283483494801213310891761651321082656238909278675574755948230945901667113017836030541120506409270449872229437736423767461044731292669851401033532304129767102176503976912038473264495172608720521734718611875845643506217534448164548806216407287511427795346980299379563558867075012083111721505378986028753368260930557116755091993331775367876805431178367212282310601055426969976638705351525081876418606151030765923464462043040262865521285984234699195866067720497628737755145724731161696294147193294019197112725650494716401093693759868299436186422992323657519657735563963690091301995632839533470344527215236859260358904784314060297059114310766399863302920162996863194107652390549164733025513166835269994855716389741665797375416424850087152907541257331986826434925954815110944753915725847237693877740520286333624841851124680031088474814714039393421530624291644306479549277164572981863674334688535008670395545401351047732129550212764177397057579996480165290511804162530656337866850185352520255519187638455326284335703774997743513838674706401790264784036189007242118590504423921184579480327266225281786250553398792090521586554617140976601414913808500363161772081008522369735657936141218724894132643181482371801913353967747586164114230923222768720722994277160349000033982195922809972296403047962899862051490776688853302502174111447123530071615115679206544619805654443355783042257845290884985026034987227751479840055396852534389286692855046164711564594876780986483881430906433119431202143837235002846095541811413403242608544322276947501084764442815040278133854775135841520517132395162392747018818195887193222828909585679053207323757295153026661584337319697132171107396412285097958432228952557716580518196122473866071681091668923446009112480165859854119878707956021735227715240950668902036775505769344261583469672773202201958060538837532149656786394557346428307619434970454371703797166960403119908186002964719342346652962425156004156349608787521726711342426913218613244332283923678720310768323853292897123402376891944522035724676465345700184094825804837542604102385443560594108759439485256572613148568644045067552008733013118394042698492932712224004125008737218261638744690938110179252383068763444068912713786159453248255234114341236108682113216472093783073547291590941205673540811861186655532443813686381893703565641090994531091862356504899045214603937546596350181261828180995758941521266501872859974523541888736820642463768006354063551605793716891541720852001391369165994250288028684449476691720839984970502796536437290896747429283083610209357786367690819114035856681694220482466797580187515464525378595047032829807258117327869460672889375491958110370757621808426641543780946829106941940599956136963474492783283110780035385233285096230657638612045522650346618799284403926743933329121618693499059863950637115790988655483992533091873077924506271293653438773130917191319687726263604554188658065253791611701135842731056362903517322943162571994062437331666909024217179390446575016459058915410791127344650526023023406260265459879675602150558385333571482371379020383143036966881808851708063663374282527719684478109505456081734096562749290277157871228845595430017814763217807467450206458907332773728725732144712187939070970488377200005264284318121591948611788674532349987824116675690608224722916869302615073909378005886537886331296398279046331401369164598963274584766037219861990239849327353611513472670869793482170658691651765914791876310017846247749109616700498852241236597788702446644187285554856031239068886545974896248611628328403584706517449688063885700829953741339712392178063092931735602654964058408654359764041614156602567327070372010173830925145335624710574910151193122943928838419144099625163004730351989327378287565185068816374772152376485720546244135808519351285181230611644862047056918451159431122928341521690597961908627016555816823253021492174674679885428449670418807496724111054488271930431388301151965853402537985839083496832649718390407632049059519558132881144430481405260075922994101443755369187741658088798214627107192893045241633875997731467408761199456741596038713179377895947600308625682749744022476281425094146088147274258526522102131925804036670992467362121007063674026490196206141453756509560103556773338137794379052433291155125716068592123335715634023508072118799175680923530746403165040912972342737930240284982379412920219565959477923159807242008162195449260278083044822314480325108903146692634434284023780897763481439059235383907285943123447327311135138362618955974332271719266128883109752886230483849920635610443565578630675039245025715457007765871120243686624392622956477881165621259106293887370871697413452860424739061845886171827771736807441803106003301571617794156468382187275902917440569981259194984421909387876980037549962651264727228073740265263125209171736405080042819896832931110556900916263427727293772523884887348600606849826165610380668480446919467104084528316370028626057804041395113439133221766800624069327375184804049229288962454496176469013792529884008724605632319717814744362541636692347447191569251379131459801024370123838714835929419241989988238402531244516490241981719432101039799160218915133006671782445586559117286819090675455512190541523192164336508307363351234422290038370687059356436994837946818759319503253301650660762965454205171322240891961115729705104110210237019902999806146189780488099038390147324400128742169870528681994332479039732800302602898601058017923818722511533314283186908946040429824376930965805242099732060035133465286052887113044666169878019699927711790993685954673746061367861678646121426120182545514778189461739615492589717138529604083797248376815487946907176674888165125138097111294695199456121117295119750246342647374482098209851723209954118726788763366811898549847175402322331487430567486868503407012760956300767174275516675581096570434484189503185332278946332023412242008634148354431725773314090054954833607715318481567466325374392292504072314404214013803097110542807252881955880857505916752623430529765833190886391901501389671122190692326467922829977330007863078208168921225655500759876140452656594052269780814671018535155735075859382407806641369847593171717808088748925944699755578820332748626355528483035558991763205588171767639035302526772425937244569486030953061287938995229869817349179190321772153467623279962329206748473885375962628507762491116471898984936916896556641104670771298811311463293828753661420566838674599663326558943977459595648674127030886090214918194699224144556181285102269091757468762999366434241753540019409711594732521527950600245477516886565178398867831267753139332950902786664795948714697462493631212177336673002017683176205786212838011902272390762287489004713973137876101442965056608899063610869186937936822083902276658933461807353051282733669247426922245787413688660135657639302565980200108330147884625686810841538258739401034704208258400920000308730152386319849096825512314807030311396441947363685480320039303621687117506753406266362673891940043855383193350838847675031244888869202710105697154132759024170002407009390334530517211772893146996851290355118594163695683479150999225200010056666345684916925478142104455577289965962890645507387587537718183130650481030757504643171034572007229719252778270683917529934688756110645997793752800834559763253017064743767883829072072269372596771952627735690649510932501364281722387644029455251919289605182068410093990707792623886714112918985509145221197821603283081643763821250399804824214153949091093990323263475697972446094826243057086553162924307068500992441856381284025331778165443998396146607087418766738097085366975028712689231182291266628942071502817987888596592974762738158271375251679442253580870529826196633522917946136048445977805631646844911076465909485698232322943400900069676378589961011130836205395411942260510374016952688269274943231248758602671886106611189192016843193754034519293219530530363384748891518172599617252564360108184499895088253497679919921636063585798374836639476387169054185873713778840088303944632785209024417462599988144354678445426261660032702280513216824371408548180323289384627122641326740746119443709433574305803611104319486011758507915111349972502445802802637991315042078356676865781995298953593910285021967270989096782124900836590376322457531147163632918996515382494644556758358666349003791283174076906241317989708897497895279544411597083245775965398209781556736979574520088102938170885339362475274795507281115813793500347350051128177918082353699727001315576292114969243086128371753205170217009991264782559630847504128796385750652809126026971131555599821209408766179360518188962377387188781727825215156484615302999149621548170089600995903570223873516726255847929373672559726584178030927146242751555412056613723727489631924676560784807133781625377939371069038012690896452332507418700167774995162175825258198999766545426543603445031313999613469869809915460533103537734294637743664257451783900513877807028053604818784456525540105711805780239174455251657839834617405062277509490206293949000085172349129681946845532846844554138231749582627868177496433497411934901000533316787262729987584806092943431621320395385315857240892792029923419459481035455643545974749562327869069778598520414530516706989696186594913563165567254237062859092458341146541716634356829567169381941980866167003519540074975084458170196939365422021254841544704859051395239486180958375001231840329395608094435568920769961654750859686556265544999271178287166848124679941451114106966627879609552844552513527782853868611883965324827883450974154446011040081481018582758761236107494596087227412267000402564490400180172993152343588606779205661902014206806627811159743189292841507631060726891592759237101912112681811920965929583443673190784986439563116013182528804270233279218337947088194990169193532739806619280917570531647867227350536931836043951744902677955036593897601420052328927484675583049388265801578589982936490582652746546922278705545485157208781638018002760531454181314466087442049980076606023231961770290779734676879478540322235097353176066780268560774864267892240323298199883796006273684268156593089148274207485403792984622939820596475547347146401282522306161133391654389624859886237675221178222788647250346140854410067868349117626442129750556913430258195790472574997794315271142369822925808438351626086088015375363310401564898477826418072674305721319624110026702905477929682854316499249632146067180585936992297212680348086337066545824975796916266368895107108327774227517540396988531740590723218870705628277190715622746359006786330508162370780534803159599237210352202670828854215952110475387573184725233407810533335246731091618995843823698730927432203426814165733507173214738853984705733996680699204377303406333022816627244760202491572482512834705614427113320833828050350419857178912346210416811012289699524207724621822835122879352577083511313818615454947833025509602162715640140166069246245816441377702278585232131963201910093966169988372381664096132277291958162037291312561489464778331087580325937416000958739473353626652014689560719810837355214337347526968785159407871804376708022100387045258630324297199587110461128519847924098239850608435213048944597346078817932751274126906701599214804460748633686002323571001297402394523984255006408930553888878430057060659172509436151657843547033989805374475172354088692616823600301123795008728200967098451798424636431353222856465810187887517766604148133086015590744014032317285882497662836444706598756833730452614456773526072207283482850935499397416361405242263081398500711399912037957219401168401536248797363178217559496362454908936681647210590282467428929671693253096690088919871221167370098905931676082353078578529138771942309655447651501771281498874932315229762950700417109412410421276630149671089605617626148589315868565985627569902558304278164247427478686549707952857675243805742649640968102018269546901234399056912594207152401335657602816143272827834520859368112709863287312455420760391231539614646592409034143115385355102039675133353615450071872650101122598793644967425395826907342381258653286133796460793552122137096534162355662181735584259295736829957938896864025240445620256629724886573884086384823866645850122093035008846806450890987758487206574647926542795350836592074668793998710547282109820946388428150637584385980450274536980392861182315255785943903712593595164814466012581333483951878853893057353331324265510312715739092701789814672949657648886932763935620835606453002851282478454734948354159286296235151038411793846834950621778439031832662686343633952969072038198116015657194858584846679041932708014283915022406114540322453904495066220392973786046327589148418048960661265071265798265177053677802621887584371078989435230070817668489510395409220323119152426235989526701377421239012135035803943106166584189582765092112640840318877704933677573432807319154224676267058346488459055078535346096024058132903128579099197503652283193052417704204529110038111081044136004549887182115578280499281720517227145779859240416097024946106762243696160717410296145112481151179429535915557856736090593544226380489828324249764913917983296544865646973018645951710464000571879107772541222393274659075472330686326523139670855967717043259512632794035656700388421501384074025547538067265454024575488338668538538796325543911617507217797642618455694885530063662876918898182660217925814068782709735511315118824209252183631467846278734326813797613099446725408768155316159302044534310835752029588554927403023945210584833139761243655362609400505745649544864407563815817016247509390872544760943079250760807557536937691609745552090448168464347868582323367426717894304778075312635400010790274376422788524145968006897357647654688782742729772737145644938487146684520292916463557358729150560757692088864188809278213058679195764916653117942399981514186858225027104686358104393587770662748039953707298888795910890547215409670881022522279561345546868416385577127259121324825434561697033412267897011305075877479312804124627352404520053347546296095286634852912799260059947487565740915748062352240201174676923592352519833973239122064022085856727144141241052873594586041655875355525547381608697960309781125799531679191720974585859892461463047020961888130123242355716312105991503982640641239973148948339029498568196197244958841838504275605392468293601997104022753151009842901667033261189945824248432653889873979916027446905523164230130506974867468361964763959834819713307334754991144006340358053393305974480888601247765061676070190078189739816300803446059701554205115628778338122757020919549768511254541136018330840429688357088488743990393591443783376664375171662960438942117124422552619655931828424514494194658899222633764251459438134502202387755139299116743222085430897614394152179500782260296510165456942979573313736110659291071596127214284982729033694311320358046128438330728970621241548302506248751023741279531154507461118472557588250401977370677883949609390365946440979021418480947756390923802925904297280838765039498906103729482499339730770500900361999908895469324975400959795502759692588137116086948870382692992221214601116080839520959690419430995433803273899980521112142899600147141344635997273983384204352942859345265965650813808014520008759757794980041600446942182138147677269930347755356405429316838045495754440340994188509516607198762289654645666116521792735791453941113572571629306884309946026734014116645562995456399455493214991389157403997974223371119977955586297652085595573992534531992440011162782792302638568141101279566779736228085656346333340907469168581375926316375567633907292847853472157781582384968078825205201714991956457679752666910844497148894124839510857458708583091608043626026567294392885066963289426234029687132568532383634300920580566283530531464374837528375080062586350678162975427068112458596834934286797594829586290338478883560649969639283271912989837784927126413343403894880850415220040964577758518975227883995831405455438673542821367210940049686352873337933645244341586713275440617587955287126772109082352367886040016812624941312789807208485492099110019770629655964889898285541600640055523309801899492537982070591079508025987790032399927744739702595678841511852274971693306174630905640867525469338437081247735412935786356696149469050455108490112327831285794350396248485931263152753513814489161453299964617882331907561554551800547948833843783986779594779507476759804008442754177377982662890343557304182846410179650230200793616230770699566842568042299866227444032498881372633478771506582614340013980194653946464884813256712935761414314411446088718665022303799534285450787168937494319869728569448700006336253306446333860239178477450413038707278814666443696566660569698736939735554300730828314086731423859480239598521040716291235127551903314602788121111781226553481418209963254110242600905661160532768525802316227113659507057016181319661876708934638198493014519061839946400121932031149647494173965858844984645322097206321679493643790307991554451182204777633519648217703977720484459978531983841351877544638086850445376312775353650886367255583637241939551618735165642051034801892661144117480204056880917608018264131291141967503430029835120002111056073228122092232290675245437980789040622459394249346126909936740530767325681556002189815053720473442424105700817749265871171102502002373769790314270346834408984836172771114861100148366211386282286280593471725494332827766418346622742378005474718178433002410223480066327919735411979299543534242001062745802394285122094107028473224486849445052737233465105889222579159255287535972301175808971302713508810835175414733595478203406969235909120684276838930314904635855537846745366084164060488908361996621274211214431749974442305812129350289248089089923678082639994312515008661211164757504969388921732895031319719139674745623872209433950138775475114505229313717482326647727919245426931757417673824594807052298117534890258808817335929956672600689354410616101947847609335937095114173550791299198553725209612895299348586946679581926990823308421063655168111492496474745656076621913689556335407455146378129113330508852436589222202893103214596946211761159578111258924726120816415286779500470965175433878077646207954005115902088375111550929956580287129505157612203385879047015797033790858128418716648691902766808161560043173416348263694006329333320406914158602273270723753009769478164789598206952369043342178766421043902478995178530064045511749492584508534769503937528729573042455543962717656894969049535626153209996781303627922891968603358415814246032700774704495807557062539197328820198960545277647434613262180952063407280491006724874386666749095512251566005484806480961454845256023985354945506093161592841994958761520398427226069082534414169782985182206568673528693889248238057207418059307559720568072882054009311102304448367206438442605597192530028891719000006330485300044420050928429939741084223176769131091974295358558593655658513813703037007634159680525824536554476034039046839117419408687208194044302449389141085681761975475742215537775233542614351226711521437692178330155518586489130063326835335605370320609606744493900037966120987381173963901685961695237516190676093987423559456209589473051072697984670190702128249377467972454633543353143237663181690860565078777687906430540391598828748434506853145921674378814157436782217448435464231582940091656243060211088343978663249895587818609232804191915955996333585054922269090870980870402684425326320658421878225271489726553577786181846496763822004912996837354459293085815542024972036874833659833285662243014845252050543606422456961570410093760623179683584239350517192888398065509116080871980487020233895393785858067777393499654672072060641805440863657420973054319301086933544239645222725462454237044251672236631301860808516236703104886012794945923851973988675487069884780271283978407089931261971291590176465535496756079690511297006214781269229846238564069035294422790453210193567032517154388636203486629740616592141840894536664066907145461052035047636110065884907325534693768857836704062407988744873401602068033847160665826591117823322643393495002071099905376087103378248675128479277106966676731197934410754073375186002690672916655868450344244695459456072805374136308156643293744733426488563098121195464820680906026099333062709133168960915808297578218961918124927995108901128759423217059706231227295745129426616266306200796951226045612181929590322024744599015369719624459634019854189691239481728583581365416030629837410605564858473142991463026505357110687477343047937181933958415334817769670974883193331743304609068326334382258077629505725012804033086690724352507239450229282906515058661895715452232145967260526704129094620188449253839774728985551841168472033526207097557828716505823047491672042678118523732444845412615291000809989200042464347998558966746762434368738118360524930888383961002148240270040180034038047047462285989930443207983171981608723802940942033655236982757620788418374107779528821305661534752667218365876827995964229246477469682252635542959917954980308914638479777972577040634762782232421968120214187888085738320924326188426567026166483849580365407892595173075278286746784712904183009875479244010259336000173523458579940023408396979901307832556489972806318351549100408714164236769228319733443672889850665882896742838818264006278992253970904211536241056337595699220620956343933353964884827415447155277223237920460288593703863756789578008665266995651617129166060021875912071238541657636261991342570968812415119847833308234665800326911301283416728702788146019717080170679374259430887727835331977761005627480121577796569632624825443315177706738249056831550195912420827763861549368468787739879706116207495867810792918665515710310934603283130872416418184041093954706317775111320035270321197649516276755945424530922367426903959480925008603922264764914839301583039047766298837649736593002797384020266548292465202639385088677596396680119882380040667915224134515929952062635282358863535299082916470922209508062004552658419569098608001527010711272924046608884218126811872429133133021447508377921479828213571924926698085426805065369038317191816371276158818854965972387050059061362012638585262820651482475265045521571710727522853118100172056351330464144217068371493528744549964912359070698711968028204223243542863915440756289513599893585107882424093870456604764728809906000764538114385695600556756689279030647611265003606550094345788403344152647459203590277338255951144954488512739796495116422788944775848507169288044152612489315443255969093904142729014081935711969755300895768702633741423075919073893531326296027415678206202828506719704360002118163506067529811233133985555691598133928697050265730999570927717153973279532283095346915644520110811821619632919043885336409638260405215434648925371014436648008897617378787918225213302449146918464703067615258479447978754634595024475692790670250775141837197281243103651759497032209725368172418079761384761368432390872104392670599121261634299040750782862717593168592686649199136093027525573166836350150427432846061974191769615494010762483641769908584848236942695395772480067752614709909808341952612111233901442896746891821551987249861565159228244540805290982392474599836972061831782279467759044559300582938281381953235689150527284730642861272534288541978610304628945567924762397006920975562410790518094326666301424048143299365761246018320640137673187237150181293452676485740926414615543771965966967736550491898603540837320259142467242014473842919577409812536918525807661874752148288225612520894636055019482843021460447538407602216034541696068259136426487309479168633650300887666394073227570983670548428340967985983416229008176543270054778073104417279635183112954390521660555475883891831309616951216916592169228544163490124786323447811887123607385476469328314004407630003567532867126443411000401531576847280188377946483539622495155866676952508523518243664045213368126334367445389437942655228040008508562894182858073764729416329339411125605717754877698967207058990215729023453175934750492905731310268829804514006918241387282949830179910451926787662621334800454759681654350385013465166727723151769066353531535481382652601051327802139702156382545786811399801461988629262658902309092326509948582569702212321135728855597688739039302927866728044036584681664385109338205464907918922182065916634994615895235723099806989603952415691385170242761894509125758052700361796845722844122175905911261660000967749009072932328735528428572072628035098581277250796542019131693686291231408578312984499053590671693075946821555400293039103479789082556749748388914586551637878056548571133418393929154633705817980987752609151237932698461638575373458925619942350101995667534435274422797864289259148386837659279786865857150759012351746880857309882108157062500761800507585874533976479029918204819841686257776549915332821607241639383928681120606805887928261432996546007193582085359857943910618839335278302056555568384910841863879236822159939523603953263555516693564787206747576047585040774616273875018987728789687186612174920857881340341090950167980453505968672181690023589764529463308245411267818837210386706011684036115428788375917451799991924681999222215337208286922931371071780144946764269748377451274361872869320244772195023846144330540358090938204060270959780329393178902334522634503969616042584113557020406231662968057162775340582231646354584788578938987570933172564276251077170348079755899672192990361828825364484357658644059784568304878513621115197288444582607858541805228333689742732668443817027079188124243318834164177324939811425466037948090761078593729710726333061709407318157085722384977760538504252509266876672779538813113011683902290735049768904107048937278848011038038372724188530498992251590073951664178349454582098310584509363997750093964635952080635555505472659531211690246693743326630142464298536342717684923078389617422867103183943207270086808819380603900360914342481208490090901282808291647798847554992811649030891899770650063744567392563566180304711242984763174669483645595633401895467328751468445593835679090453909617247553560716190413647610962002920467075733257131009775415143998194169928280369706914719120746567836752387342868768729078118238655433537468380958549599462503969493806741179850965553545486049383115459011559231200647947744527850891996809780518900862188665628847048689928301949188040734656919888632941503802283405155519528220667934048012424344186165121703073797793986114263639014759070423621728404399921510357809363142921781815087225533873446795285056033306661071822562084800513344098943496031992914004029211830359105529268736481538400111534470243277796515372760139440830260901770387279030984470971902942078447322039281455889066297213550710904442482104515535349134580670468927405376425602201481801926887957040397706758986544859316947894482420280501795293480868927659412891181340008546310445169100550770261380018339121722118808021434863742753979636328364892370019830141944115163652411927275426225173070395057449697468991822829249650465500660773430271727464926351235980356473381488443954536993475766859814303091538975158853221736076662993688531098017280121381939089066056288825697423941141220395126011698667719878983660998858286578331269625208952314302162616978895279553508354950033101254075984236822975849213362700991900171934719003657266263276133244499718255046702414891492149283134656108287905723585871143108558875092127407679570840562662286464878213605973694668529852991870686926618990292950932971508815960757850370473782208545188019007009860229864791200186237392130272180660542056214705401684242337669623190971404278223834803081392162819953872121963628273293110150606253127129360659138364923061815966607690764141582638278322100055833393478571264132818179276007873610744305805126418654179400805249834502090904463779772136584192582564144890860961970175412303143215489879648940531488914941009579164865499298479179582129167591712876772066078666589830778930238839528134087271275028920293421260262192282436504838114787530142872546738889834106064986293618873008374127116859201872546362315240666555285351687859779815627180511992554010927156127383561880250741556288129826871255666109341945461883650294106835363453029682923770153863137111637373599108744551916664233889183200905419789509484211708792695288618381004797573565986505515849046238957852403150182640691082238159252181802631734982989311087641784464312209359267667961070866770652367714144993596847820015833672861158406983370501375245182673351231198172608431627000283987455123125281871769395154062576966380417996344848812467023724156520885447174517690850908283989280519572871282189389853159114257314081661738391467953192682181951807749467386058972244839795005322952417418595936895436071190994386996377961000078537926096849372866242790325760705918214501137438777637904110630744278218611960851882658542364899616550623063313177906234376387590119222391312006938789008921279046816250514783306585067910439962065222430689313233744269651366956859528720727093547824463958873363750570618358541549309199134711105990588498439011734011559480518506545850832349693865476030675840740113590865592795689209638934581996149571773748482407877934853042736400955563001739585525110363989011986877860338341648983977087368240463502571917225536988401425697440617647604715195864909442580900400445761016970369048792175379985844843970316634113932832984250514470721974275170811732283532804174301991136936159357399444697694560380726583698226728374985105841855309447081788014813825356694416564337242903980193497990174058023621218392271915195581414086056051328909335584297593689436740214524528440353017036376351363504881681461452680858381871330155670741689616990301451522761961549942327171501077129876887120237713942627423693598417433784956325427794028560371032169158799194880895312838277002227291040737564487237375365646091376727067045544556870935136953339647171443265153155687059262173380191785391585630027021445827672937175445838266172796508694506049275875033214110077407116184138033602780987122654684596807302436059011367639508488552279562549060403564281117806970037252515321711273476416669720061448252151685576095999528435215870405387357923703235770353324470117332197420532986541890723007335382341063304730338128307870151855986373610249808747291638457680616202508295121031156386491839611801012857484390031705539879042310093663732092305321908994668702026405451170673550965087064919055989761913319881113808948330983787727956821984685019418852846271789803113252040976129348863537852738671642287712432382624115823000974379500964152980565477575114239002375393076642966353079695445859276894114254397983666765764890635709531917744235998986357815873713107245062305473326781357766902485111862051229821586073880708583442373463460416578370676148065810380217686772973063902748553379831075680439015121839812619230520785063553040061378461369503163483936475502652087071296444282775486620716870692477491519315872592569013801633168342335327119196628934969045821174299686909001260425719157586850873921573215452383659995334230881468841760038228694643650267382877613206825738917119008503955422805039488051118800929327023975267768154182887534771053823013409502957545302177437734792444257419882875363262204557417917499048905221574145584223452263511961496831291962439404702092656697555054384363518310235879636742876449091620158491665176468139551006500777477678726161959533914303919079785721922255553922729017964960330388305441508319250864726603985178857559111324453827258627286072851848834688052852684371251984566795206580543086372623172339882509927526628006833990659748037201034331868583492516422610451969825274527317933477032377636038548906762095836762763523073025836133212755668422595878505340215649935080803780864220901015099219294183112367454733395770622288676861273978101732585449720535769227083894849332883271255056641558574114137964383162701019528222846383738816363194563497254665205536815050600959255514350393272771276792537544739506675866290654180731337429316451040112144458534252625550047709438735501605126827793116862693155614646721316484484028347199152704284132676028292339415590469694221486414793905088162247458725320535577040791870946365092654084215203450112325486250320067515830599583151373368439438631094970090609800911188463434399164755678079091996321244699837969446419986218247588926579189537971246091742670559053916853153366601259293430212471413960586316495575905521862297019189359978190594816291454032728898896553782724100232740674180447095739911309536672034637687005796465085289014849107759945592588315745561315473526962730405875622318368109586074436856397684218126127250606192087526807467847508102302601521687221158715834076044039819957971130448764059530506668790344706829039547146218946593625538184263193776540197629165000554024647790967232564070344412285070524758910111179272839716986530400833216791592332722823702167760248797600079064990174198109987195175798968727406928541876218787650785335282002575094451477737040766569481046970612574904365515703988404555937407825810573069132167680865094204782203052324307887419183470512715437332218065889384620609435449494711776613179001520378423642467964565302050741244566500421073438012101828768461364459190232755117688933842531311834929667345709692533648076493839745550161896788614930690698712411238853010001712597918352955369154415836400172555714189955418994612179522475467616057728470696231686692646237056780251312301574263705602517378077638667684024259238747568575849202573825417439428682193086683821149373962321539973096546031374590896530908192458406440692758512489561005596397033493123589711552669104627784990559611453182812718559940076020153800160657825237812021456113230547276983890821092304765950588212387136818044418247957409310579537356915800313730782173631671235495130412314855928350939240747775552181318137218245001530818286145690664843565517185817731626552679963303231582526071548334130234879939676030114427468015839820711921754654797352065088478602602411916367862285387886778681160709327381419730163310540289972339380334575556621041001242417380216479987091330365598852026007149662782181400804316126193249854270945629765592454839778412978700651735550704482129209188764672122284032716666958780446476851545794376083008653258415704425892923370144562813931203540515572236768571959502999431939531048108555610327075119532422401397045195952741880124267326893185507240467292732701862928600587532458533163734030806981901405726840291699063121629213947333699779473319886719413688180173697587619675510690269833687021866021643419178856598657599617758791238057815208220058778305470713133451399370172952134491035140191055221032787283608140112358483622749576766621382794453995830206657899208679878800333434227935727467447924762825131610162788129787173237634169862938454015718019947326299830498397378385078017790839780949083267682020344054524722380568205532891349211508565235692365362903642879834926891066166679534123887301577944075646036624797172423828874421133030807549089438543145333437685102328594486656108403785606093553823292292476061993871599919122649198099994139453895202720951847902695537389999884091804924830522466458262432498410157479336058838916476647609493852693849018821185212704426332260091481131427417619516136885390566969858057976436892557045133909239367385087234684095488999534180147592977218247621927265664054766220548030473780834190706052745337228978228613475418842947306729763075706130704571454617326130579745114781753482063349148003519073216368668771592224983183119916707592539084096928718816232164057721671691619941467083719644351132643661904300712994114530130264303672364576877365545874786004750597442330326979561206949598630658710216935056283089286451936490351594339307450688735913778624994241110161395532065037384694327345125283646979625539271320122384428573039042917475659303534854682166826294400906005916183553456951246912587940104525961168868735488978223694648682845885199281389409264223346422410542129499262578859061914719921963149272164865717001854639079277257778772286148228873660743694982822124472857185307322477759155780961256898544611428824263924880174348753516672543344891760087597112643551955010667921638444343791749992001678174383034958717640013525460203328895699996197524362182019412994235373902990298235263411568286481685985652235758529397105846841677999103382314257922734116987250363704350959546448679683367266140454845356404663339264654359925491029908017215766094940659331666601989491169172968241213890918231900179350093681665273525565597280738258505277487082353139001408633913913344675199115185414103969851335728255389678461913569219343433005976430595475828565897663215391198933715504211431726089660661764921838620951374929638130261587024368510343797955873633151427581412251072657434811853252650071582688265993159293339380483679559438478258262111023363763202102058658072760798720455020689623434994849268794534728966551678983811177054529316592534816100305034453081902115442703275460839945004938545775751223515191660345451396095639062085949840610859107835639504195243768247746914575063514894617716283346077613683705323007002950746276905523899247410982121017422818118975519190271156549903998876465357111319396244459719862237298884379664375471672666335405460800991111455007053234470952387589722592892323711297604180516202559759212660468246341098583998152208377565072345512665664284780080727194648816067745769403548158830212807246350622056467030466164167014173487667925584511889609751447643885515422561972223609799829797719620226002518084669436446559515006645517489586501181111310970289015873839835659747239273527571777982816547644728033275622991405315155130700568850500837088887729804612847525082496114438125836872741903049938237535767556171171943235602627171927499775058928054346753417451477836155544110884770127784312214193306914494142837489353964565066920448076719240111178205932153346433167073173270697863936617850472630692524596322353709302798000824311344042094588828808975198046570049991252942528957945966071657005098557385271867262074989061435962470446219536772234893208435121034991216452336295195809664264862742770534316986856688840473118608206211756220564662414751048969697700608250038136172015196600140343068736410945725524656957650870431575651617439153107710103998134938601338726745522943824493657928099057924146468303194747305493745191927457866218219934738871588275699438829686413979585205587046261881478351446102197935959654461405561347069380501925276871249892457394861760429199620580842249153501300759692642373427803761004494407024380141114068049374388961077487862664393840761031702698413881547503615766587800793283613085302054037864297972816200431918750322789864887222271968298969734599499611178487650192474631642712067456497453628096604293743925699648390960167314241112461788406396177321904146887288435117770875906639612371347409663890163590217038994235674090032212369270911268004483542143418185107207756090564966853145611018048037468429179916761695466150965458158678137712301681694145606550641133859491047563223571527611485209457880706030445420755300987264743930784370823584604839412274567770337246293703290263121652006069961716759561605376021072123949570497281248843091536987707847148997592829583748505348557590360843707053989444788941837029380276735929799583674779522176007464543753168600407125438093238922100408142559887025312743012582753119405771574446708634292073508001877022777571307440835618606193182652493612320543440222533749573797065345629600055607092710537457798516531537770625193452785296111862531064017868232082813828715801608910126501444217311920969423339182542524411250595766226636190730527665439438299740007996975553836198895647992254152232841354653292692443341453707919705180984413062396377675838202689796257119552805539556285342550224312075212171148029351279144460092637520831954604247319980495619344636303587496647593321751279069357239876109091869259736972602166039492274550894555265853960790775683431737537297057827855634325821408407976683034437618966230333510001160378038197124396147821871260220677034269448573187885383321211298593550332011101210224574650849668261739175419364674728739058018614006128280698474709922051024132908987873747144309782192406855200699511060294981626175643902189059583664179761560801946155293435969752937288860269288401093180868947942468735113901859250594030207024913128667811908097767355017558734915687628644268610702034030468309927025347635253488966161732703707366918384606203584998587215211627077166765141903121705183394563821241417422508764063493057044408571337373359160497707844558331061234766680479710297011029310651194408327342051604315224536533041308218830859011650825098877094140525265235569683845543600098845555416928864502521090388843914134718884350691765923357907231859587483068833273186071765398712640826459519620284568661466418365088902037822438008868433523404416896981839528572414886603877086599291542185213604013764735635291045216790412403452153917892539932330262209402597892150643035457344140682151095029226046960969111060220092608777145140607340418376669857648358046181388630282585563403439862465281860459275190450247187385492036590712851105553580488924083512117920035620349740376070112819189799737661846047157854073755966432962221145852529823345452589975455179440121476478149240207496210044870336274988730069167676770080323825788574944109069059720930984347024646498726673597261449638373809563620385662518514044618635884381849965019436851820291375392891776388495546366358458789496158822988403789389848639007601152266225262933652413957816065575939885007588692533759901890747126071206755201187439247163283051033241310089108203997036558013852919002512976944142819562640782287398263133761804996881089746481762674665615928513042268120988186227673655937860863371912040080595898564605991881838956990293541933404547723500016421995727652184541305709521957907810210967825630527746122342587768268467160206403680640405101414655016393313548138950186840851965988540089928865276915963397547448280719702385628572384264616090847321153872560661828995664506571776092179079149184384619520724625355306447672557852540989463663531740693379091654242382347203501989455170958765287992904818019696771240096896721422342598020413844631598990390306659308528487044068600759617697888647925334836808016613531580642725174872067072632949615224225315251994559353476173851301997863818012098567796534010546637238120874759047876028862416192956602732370757713995379350489443188645601147202746802556171708000292720804288861826828054035718911423452510906910452933293725718407440395945147728639034560186693873106878912294140715034361859840386438223037732564795508912995958870603789728496461541544056751672100461786877898862931457627323055562358064083461538131923157812695728693163697601659502960945961092424958270411913929640829431255382319669071339139896425009126150600664173044325929633227720835585450204960191536809068600144050954798350366976662914050535473203701192276109110395137325487563015078218325644947170497348759845535155870079613056978068172933226239696881820583676857179762395110973277931340222758469087240652676966125561629209589511014982573008289892793274684791774522471404786836653135927900600486594845215655249177174827957172490661005180339315045121778368843687596090112739999955226020199023624589483254755162918026661171161437456647374544708755806672098834559689339874543885885739259228231875332471313297837845556234734529683536447315365137700105334215098121055173728403695985128200333577646036262006167598707573974831761968873343731829509980156359828958207355068054183766346422943097464395519863331649340914414416675823492460663612811097296851546409533462418927180204531683982482692983094132725750431196619563648789133586291809512284711780012649400586573738742631433845520462701791064484596352018982758030842526149054596768310210434978125080424775244311192040634587171859411000263063529307325243269504620883508179392412625784908916647103960555759087423430944792006433354561351712407951048633481321365480694555470475784692177747805638477029143417637082319487483707875773048288081771267962379030914524498140310391202203125545277323104282125127022146645613895759649640517594825718333609761500308252593310413603336613946215518231397062771027410549002433806243127084573372581574926117923511544209917293542351615604823436416960213868726974856407741343400625508260615557405633954791436077320044054967150483498129506017081881716185736438412212317481256841396932703107869474751436587156079961372585459443254526851870064716298108272542986278453720560504840419973096484998276804625908976487917909994493355673636418591140670450699274001618334898666417697503172044627324974421158735650792071434207896487364073893047397914053876983274728126306815299713527530190049465248372781134722771477815597214904300622603887283212629697595400212102202786670946603626620417076081322857246388914366738373229539522506617375499763003305975148742330181143082961012164619153621557358496973768277598779535211992214314127074752215038414643166127257385599316101926293942581846910641796102573640753126959886513447577515934569860164991083275997956927713277821606049921394827449355645885834237204583023510945080291700677501306420166835009637989215671066032513179413128096604255991235360433025931080644242111492080385979361562127725209100925470593277335256505989292209766466729256907060006211843885840169897724233794797642629783089309874066379093501268699875141402417944519511610669936046295179761021868975331381857930809615067791453884950290019260312071761398844410680460401587323528533404616218739190387822672287313697821052466533338097056995940777921607497638209950823063203151179759416651701178016369242656660536595651223554989622447994928985279740738359396168665571993229457526890427200243127868475039840676423681745501219924555459683656562659786043573264019791521757782288281744803870463513150767622761822327692897385601190405375006844540843910502707852814205369540932026128612024882111432146849972920022186404602184487364621651634063429696860901623079251428721794969746298085122344635857536992474989785310895119322619275563320718400623352544557280643250514306740779553206480927507543485296613596443643107530269812112437760424306157068997592688711850306081219630766482602037618888697918326491127162933166421048896594928308835470143558415572775351352215360264877370470683188990036977232909474394148107997348247930599110002981594147779675150483947778782377876027440950182230166672092084146342534107611251128553224928544707570681231209807103167054925101724715303933936564733735681860943754589578865184100526916833211752274933891830777445558869629910553967574859265052998067366554898841357672721482827220149186140936780705876414707995819664094360564345540324054117319300124296202266062258152357606035002426425459927141975850950072842482362411007866612293981680950949048385933190294303057460379559745598792547963003962898908232829277898986974791605474436066744314575521942329538069891858237765974025719718200243601342737307218365320267609884403511346967112502993992947973660089802095045138342628315123996495703085931127804671051349477332033610804458708897755984091970337788033538078965957737714935667716954850045942657227201563843160891136336952341512203194788875276147270717915945402511898487764846072926370671238902615392737766454190890268431504008960002069713157180173820082831635649583291661116597205513901851786554303492104403814497399319887968959980057625014987869972822136894064671824261485340520121474202181611160914130022614337293635005891554959974174498560606881348650027449976005400483526597534364213826581906221999246561246349225573111971985369991416737695838219115880074183682278758350623865086678989362097060106897484134045040499287325629368267234409556615126561296503884685587404244331369542982860159598729551340640976341611736731233486011490206092011176019062121648020264663542654492798985730892560816380252013250766496303505065037409457001266342171999144965171631449981859283755503408144851051928659911561424347978048147849622436122433582582711729212419128033099805453922334709143265083874216955298157020058729650970861198059807000485032431047505252730778145273109425907937285509115826581104126036330984814837723040122428103111927689768354891573180067147120290155296870466422980249846692316791871875061094177149199935417047902124468053665966436665646397962929050014487656488086383975727316553409468408830434440769368201161368454187384757486328701464935038891955737611193840013308656853054238280981425539742936990180747950487179596501958355135328082819503104817191768803713906888774546721332269919094364567997271984048467480166061528521178117551018552128565956131090605558303842097004335696480873319578750441458395011963696907933652962424385303801757929126623717530201217033422618530966918369539007761112368632876429606202562807457995826424425929385263927328340500173245817564694983681899153967926717172922726433278982652861744979069237849240435937617064950875941244610663992555539625660334042434731358401901077673365897417153455298591345190907023100043287308280562528677562838209856224922142703298944512356864708473522412306597810997327131702500450037243963888011365335104626538991368586813172458250589414282700651259365591434317327455609212645939603704674669735190351998749668137295709114938843629316240229058677271821754649435533456590873113525946620177461819348564115131796675503752774894374129020283241590741829135606218354574352660418516566209154193713969754035401426939804508390137233862475883886134784682251451879614778980916659070463454592425147797569419820132306098451851736364210898573538319349221426490700870866478690982047318086671659362687147307848917650828444833756414850817299472262036680378296565610385923737481981401260244713688763153031375554290673522812012844433527391838032495128979651859160718789609662632022497583880047560200947775632899441085530202563198600184518849931416992206683005223504377560097181276077564428426941238200239312810922672365145741010266327276461852983077466697639102414823908483801728721574423751920373452089224282838912287582729798575249954923037504549475249346092472319235382560824282173991823198649435970024229286124037164214420012634258140519139023420767728579815455935354711429052263526716294316260593152449749847196560402334132906464235128809480061516659649791802563166826048435911065896512990636902122508616255851582902958529238677861633710367687655645059083037984650844846636241258997456846305761768270449433581773170547020003711235087041659418280847008697344763185669535883641077299160920276063153629249201800935565145375976760680720271859781643638552725170995665480900859243845124322812984828010281258348965914290655748639185943950394808500483872042453848582008938451058549473854520051248995353395092365878369938291264586675305541478652188189347778299122154131816368416768461224538852065157448409146784806807244774555976029430643336842812989178503928749702800979115068095918622911261738182349658401594237954420558894588194443050388966819089182997297469679577895981865568457819629533993009263006367725452260591225109384538377009096330821712910124487724516290280234980624113194469624810629759194628416683313620715063959304943387893471924486081109846069692546409837792751390089276415099741285736342063587280209064273506483897210182938162220443488377875593570320995474959992120494920863327871778091976619739842480186587938904309034590437341407203996239879267881732094324352269875710355836175443697012040587510969583476212814852019772431944196221465645150957816303127381791032137230466124440729211540454778395702208763685570160259783098567710688545020591405650941918918591281877883513112826931922482747336454207364315210915724345665004702209046859029355225600829320618701872198401290795015650780131687528121893805222286026738419289833412946148744960878185477639167412669077616272625844102670122536059758621525564479336390180099755145990996696381136384408983119178698570141519505895950045307636838792628547805202233279800649190602509571812038099574421362269128630569125876479209702907740682182048245985273766398847847232553475977419837292231960912145910833530812533685558973635256282787007833847078028391370787963054075635758898707358912961035249927791729515784012900996769623540852390047452554485992953405578694306011582145052546107677153783303159418154659041174067743584322044101276700508275326326846590513746833339239955308150610465559117109817706401046333421134089401601338201048728225295939501988591429441972682125877191040156030673683753688507567125725802109202299343832544288035625944977300990766458161627672583618656952878586584876474803606326774518758874861078059304782640495039963006477608707028061173339814200884523085900160862239952406916684038063126039814172040855213021157043583327989202213293168412148545044291012107692135019497959684324230686045282473005958075429195779431327631918178897049530994472854914157359304506569329046776587410416928924936715712486162309243399261738712210301427322870024121302852653344009864384018014807366455066819843692490677676038134563098441058419236894819654423848898373651416182215292835670885710337219747215254305230795976376301093947460398981778467688606733756510192978789825015554661801854117037022000194457404236588964129018773267438645624490084408528881291165128031403060940392608747940481222902524664883787352870085550555479147718481881840503572251245407636241830792802967524737959141167478718195693631715851377817628091062392564508667211363260989909780999359053506461428389664086768506066837878450384771178240472637338132107816510068624107794329392329201348073733339321025483005230664153051496365989186325941474667470351953171500407324825807354005308103982945618826715774086341516741798028716493596435148941225937578211592795035937319270574093869509936808248643230633551663823260427845282536037637692128279623170333707611399518502219752610630864574821163935459341568569920755813623680232684423605677677805760813773597177929900668751259728746342543555735230633303518648458762374871464883398172708097093647688832011276455727395226855420541557372526731639463089489815985770103331941739131577461103654027364270387682174702743860921475379000294190235149888735992873467063062012690492233400062029347682811538615012552955064222113011977849215155353643564195700471183413925739186617750018360417549959848221136891229154870416214428549832034924239596289001964382367766283634315529933172754766851681213542478904128106981249183149015394093125471824567619676655427186981883116875863049750943766149963156834712037100213702714255842046568257783143222029645252945400115212539157560185978105224404085918521587774318162285070746281736357276020861188433573635940173190667603549903685248484473976052076515918941523687206103063119118782916702783909812460022866982853582229829499333811867653727493000879365984693340215873847031699074919454812480207261790866848256951173883561446999589117418263001738587769465914011420091143577236743571184545729848807301487956488629012384455921610524199264303622737094175865197567755805293659377971109524429207517035689802308085423519871074760571053298079005974836369255035227043123105255239911173884239200398381871483670844032828434241267455362919620383992544205276388439409867494418346176105448582913094967424904131134169189957884415378492564088494555735763393794240643695884898902247633625628228725848348254874788195651178625397907254318279913243381054771155747842300264025386647520955851071278711904499036025818660832010658238882317250436700160212702618400060260490744106459193024656885752852286445192817555080297970777996034386033430766968668965779235181568770824077118299923113003598217122313734827328066549740728003083060998203607860275583367171304018569060829404006631623119738061914063007772760274810257423739390455371953310234821305085262307918553797129773777360963309507146951092221313317452346503265867731367906087564125819699689382660174737279465276671317113302985785503702560141014252010806684079305256707334680534779044214837939932872281704638757323592803850421239720710122488510673534921706307068007870009091479064396702798111912119986394877728653283717726318242147720392251776343716391136672952483955799963826225352689650831651922922751045367831289166372454295030608763753577801814680503189936404722338032221321755975425094506309023698609996665625782658293767963032061464559997822419826747417555300384251345714566085662660865652066957089334163836753926617657191323150198979259687794098624968222168033525896760809965858308416051550926128239305234914734631488324406512830128680553203830793775775561416438938286557232059596722002319678663765655816739781835346812710364271155613631749528600343844085516849577048090450061010866641931493884548304365551146517312836439471972458908355791416710604433283239762621226853559968446401812238152582624401567028142097660680539722309992879231129841713931989146465238692649448480154475949434231509037303641817030169989294230442710860764825267241286220400930539482222961029952362383667969340938691210603239864037736881951468420304208535288473374662763299350610294702114883075457553908727574649522504398474763838905859127412874567622502192108463341276159309974106720701028399188036852841391940790989318132445822964983498437175399584329343614039384835249539435836809459319607464773689568131607539977043712811225575242141521471040202300689717844190747732132589020557994668811934057944536995690327150068121172771143246980969376309325220401184409037935551705890509796679500555004932292512835095447670984083014253673768882768504713199041245466384495794194046273195202224902826684461641025173683421308572477507630667523005101891115826691175214949240035434016223825822640425129712118254133703471202772806809255769466369485068404325228595798747359906427710893735722852016990648395353672683701729586447172663971859475589232215095484208476351105059292468144288976579579721333146742931301447533826190052974486164921600611738670912363516803214508181129116119129638549916804253941087009535109179748745203672115870328831171597003586653547625184507382890438126185388147916681382618485171613070585082554587286384038823753844719126295529637389237038783107835174415930910525588938462470430149480530432104911550260892999149292597003648515884826471636665942164454537605288778267424978844731939793423992271995122436626324850628539605408270410035881727087841700983200995282746021993147185247995829107238317131091765739814224916545502137994384949715081830959615392398824984895871254342995849068381451854770051357106147231164046121037043853392812147026608253559567074810540473559835181470324584949655025406110168345495489343720111520570278746247586054074183270393196947491222669861232209603455947512491427216085571421745776055237297967333317537906298597024456456454965909704404167923787945475294117846187300113237416021463980176246581900365375517494511188155828041834748039399751933350579411490064602127560215495523096906016642444427152149138345313733539202693885081358870388886788360876292995511047151647815374863576985763257663453161196889904127819476002571705535243646927419334432007517271356394673777035384170680270060633258901966545749537451772037338387027977295541705017432949207507312038613630020662546050661803529923521976852489403369241972067142087893631660808287248278388483838080443618892037977562910414759585801052035463161172959715641504269877058770507301085083199408386772190605147795568351066731586487743006568932443043725398908850306230499208273350157807252641521075748802328483042526983285246218698869207849583857474200412826463051126681164853255453006623096536427100903614454751885851848505326739986150351803794747483615588948003688219323580601473914508478447345612655621279311235017618583109763330438059235040396897389713894834986946906829986996684881758999229054668815087540258527106901425078147694964825688334467284902042471576554776641236421655912903822300888739767860136075968403838378600125227090645990716220510916670387472350750502134044959616524744153470619294397647647301853322247209985649257445206444827733939021524029006173131345564166145144475288720196054956828897623027265487755503855805361532644214778302843508404421892475252325861776027480504917678452079428588602028242731864043424486933551654947559538753004158863764087644006090570872994333395765877102274683405901238572670730192650459494029428016281991772734604683404156678191305514109896519546963404268494221241145619021814136182536908701175113359716298110246603616837075177470648391141890342885531409381275127915188307981121642676327084210824744179373398382826827846508867263338211686994840738818466092882366407551426177410557074144089239072248677278589776583368628497331631815743656585571043078806207394279269148765983344625042330802781978804844041174940360568686349547746242174842606849237401393249725021841004113303478812193168594680761083876083062792270108348611377647426370170830604116229354244556264873428425724388610873897715031879897960823339088902213331290886163410671195504698693206290762770111014616294032618633042330734885324134400774677790246205801889295684281264145787106410735202792923030878057764332677663508310824850655740720706896036925762035053053800067052328612353447751369725045986776697838626057843855316445902366341430111677080459618167500080377347557835400267140113237674901504483037481708498682853866863819975163970592270762921302749151716201627417581328426135577506836593761687320436128472692412529784086645655997213753285380699212723627507664902479196153728730380304972003662355362735444223815696510291234204587975620403022752167633577340002193980531977723684286468454200919689945105910763914665948554420390255422478441935397286676131735890114798812088648255692159575874805405026098486248189446384006352868537756952701816442489947696761505587368768307985721705851011586356109506518815914399817737488512525713683235593592136219759324901799140636286327854981395143521892889024064101213393332938342962554307028300825586592796006444155255540439625989997016410951943526187806630937377738805419952924929561336023341450403764427106118609102157516562460037223835683456663586108684246404055030710629391389096049054566624476071909385299685172898407608399582800164590294373723688332595471134686356927317355172274558185631958351496813059317971288823535378737413301737834251356981125248472643361117270295084284319027617692583663184920757543466339773064315539290180349642837308675177717868967826384653698787994578095864456041617599820114530899264259934501751946712135997400148738253520422472660796722588616947723183623820681005343591608909820732388725833107450104480444657917173003660472845994408945629360335552106511288931720771829739020809297367253839324746166219304497635939429658009231593727639075726236687767687301008710031400871736192454504998124731477100208382861559251471965135488404628705923814198263078727304790265006262026026049102831193118334140498578591404726570418449751772225744117304666719507615705535161472192848196964247855834499438828773619093057175364361918643297178923225054178124297167657552063791528752329507211155462388011994010932929634179233856642091919362103757418004099242832586381845126105645678210124417195042033878454947466278648682436750496025637417464660117073503743498985318843558337529610297014303722972311958612125858066645175936221204747740385222553607496203259293687046999135512705022751868459775707743937671050467496255679596820634566096697040325850469252241945466457821539362067039305603935521585970670051393084357596199426561993338829658578905472470646195642812897204082118352346431516613415948129502461353593269265657037839156971309137078436477737075350351991106427637750726332103500320228152865237846157619069109961386664961369701246141870822172172197646684366764348598063117373237627867672153877975650108621675103198185220570981807319876310079063849492151534258256875222623564809998700488123629494863048915119930273198996667919642469771537332094099951805952215000561994696511995592751017927685818468464665155476724367334967657631060308748322353438133068598889237525340474834227184358835744862685689751366204885957657469133895335397548399059613064464098430649029430696660712114304194937302758542248028165824874618389238080209552943638442425728839466889695516283030401185726558809012772233724379705773494251366645648094841289908873320406981998934216966279510561428904294452508135436123615184426128540745016362398011587554603658305314373126955526028279438342013177046378900297792655052418663489780709010372177552838647268072219202615692939602413411562319661361070673894635750970151178585913197029092625076873152099584438168165046098319959017088114443188961376094267041465150844652431917870464209822143778124219689586440731387151590424953200167032770144147671347836858696496653264934164571578555217165390511957786757431067961416836162125238968375342127885453032486546878473468965883392911413446730055702778610117890093845138003865012041409017272045051243489158030608209666864418374502752371979469210340461646273635907315094706584280200967064659002892048835558302844509180097520203023840897429348873287981872324392461116160028762116516422419085198735265076766588290634556822279773867476136498381458972522981797424456267969670770863029624221176578985966202936323481303104946933943967878244375620770086204031621268163828277119015620890591511657407583382156243426130693730178922818806853683935101534023912074137779626724806903367175076530374447645221430434604435591819711672736167681976806466824307168932879217860398044232101497448579838289740014159741197002639316609792648978090881973348030985710704501584513719305758554511089678147805171840765997729575793905292038498273651974699708459642217731728659082922196990266965283284860627000782697693850323953887474478092051708365715103290027790382434308701272472330028496799890679185872454017182791591978860842954184769237827384674406913506760058940494712813547727242822105687886758380516328495775040622070963593326075002836007872147957767250577490367713423314698200366072733357848703189315163950691292864865466810847576746032888709391311281334392316318605683405721080018829171626711981366760948540894099805021497848073515224786207553399917660771952680147563091155038362669206761343814062289851408878403684895084250400714705553432334606735829254246875672315828318598789304571323566622691914120459294189957580439913542779215860181847740016427153413309907396326598645838357328288136340449948259080423355218270885291196577353826820483587037267291567311224213888899444820914940206938452910784398522249812872137741044125828287278458535690021282596405494606883644579271516472714276581953714409875235867346138010054331706016143165661665286265108958687324903650396885158413139455108967578320384896477776102160771712453155502234240194579577670031961724247662714659158005444109799863294546517327511472331325195558163506559889998474406679611205155755609212638631936298921255319571034224088018419481001097765606074952750746538625130750614634979374933182081868497352489220924774849685769829327733143538749147886901555827668420520459148876024784968938810961960590766340571804208701691420746628804554661835400076269112058287805317703942353448602016595450594229044319024752621144485162340653210339931103375309209995030814381437248619154950646377317919197641285744657017998196341230793456676509737362286057368569223313441615898719420812923079784394983488441559921620000291060781537327492235568778752858485250721200713270295677651633894384285426948983977587085441898774990678218983889666111284416298414664302305154661039161886954288916311619714861348469020367400355451539362154029281102167375193246717208077753674465094035454686883636394870548990034064932236731024620384793185128551705533710473133461520310624940769212999139059205301850222050244543625258136691565707438345998303334438414006098268750169078680441717058095738526650993055220994156608291772318848022349092304435271917585879564321517143389603585448387030878479144063076928107137051770803736262082147527057832490729589765436771390348660889111541026720487212302109810251344763314353569326496385343508787473917092788817970348630693553471515619627994612821438722092202558242450629559713256659040643775979887783117054051613305454622536789414093935663492218465220096974364959467208790517824647065186002306486596932989006764725980960923793647776087885051213507709721562450956015877602738731177926077062456544406832980497166223925602971745782048875712432067928944129874916485870508908791474329936275542343411462361964797948426282338604549172823319688341618474239282550069886724430855804855270550411325871394580662047467720330275685016598796476354660199301495008799185683560249375978093082853457604693917738012605146893521497332237746744529146321789261620575667377049051121498708848551060629873847499953516635505445185030927774404583471096312243747464130565723768320695284424065811154088990992936874269823857787790249577334521632067841557728916433205097936885765406720256987005322097879037954130109294583744494788848532279237785733546081077445989663238149283261696449353740314742775140365395455276149643246059186510545925333344023790385003503637987036891932054597024634737735381005527624322685081277175689435284786593255504074186117758618398772823517273193970336573005072789103291111984775871589279841063790865264537110003476936480762664118787357966527785813062371423957632815766597558620256304694049010613943830964553505436119331943061375386670483758788144654089034485733803551321803611594487067407215513157483706105751963937607761731305510133757019985786038349745875951455684121422196527495581205845678245924595823261235707139462508163861606865229064010184260199143795941789322577330248085347440838674968461548735940610446715980646215296621596964623318221884035009150345690156383787324611667232109103166881940885635164247299316524684168630867024731018648727028767868929324086064570067305522294581356196845649390638911520591089684017135547413737290203289679649584506743534687940378529084095391901089093754571875012591562013592172280641979968605567827029319292190803568199881568190953114788839563643456696765124862172723596337256387148688308762292154576035343484974161391468258735993055247861780680568373525117098174989025788969976345399247657494001794589196980287256653515195976590395696382322030326501470440323486808783534567585195101286856629957138379422566415120111152693269210069883366672114329955526421235810242921011593950246170843196009495058017450538099697596194981383206600855966140335627803485743097823019184828022818859668302264832567694727991798054610586707413508405582657380780125454391991986073247803758964529071596285008306302986476090945434071307534083796762307999021563118403387550246322298467556608689363001415401008084353604923506684805513614699760565467305595611944778755721818064649199571868272585835219081461036060078318904555045656089194672823215540243889246319328601518601534263281355767663525462840369447445277134125358913699300552834077095671519973705825863528078072887900289851464546788432629537914415247134149318861728201309527036177670177185159928180182761201463643740938915055386161358978794254306869159225132748900460505020433970757698157365127602783767452465807961903784907528377215796292357157435329126297806397886762291160656688279502876994760940844776130950674085345252974503094045787792389546790341619086253847092585388537193343008797520517561303745504596910955554973333669347125816545628716873343398181943800189279138237147007493915382624944008121710153224123005546096246540139934990985522410236943501089579925612943506430601596667953205972836750972079059497999453789483332771451195213311864024164683008751644844472596532956987546149022439528491614751532715316139644038933411879264144069292056038962423451608600563588282110672768048132335969478307955311824217797421453130658046245280986382614264483281102272179646410000873419314553640466077807500425176449622835095333769302142168258462746113534024801802003893352674846766779588966479843713707534880484516117376925552214338545175047825400958947144807691457963733239710181110921325557318652629495048301030186773105979242998460757021725248519293297411657402829263772269985269028551723305166330835776392296667238496781525409805963048466140539617716301262788186371288051892998386805334089375695572790685481578468404843815796686320984150955346930154154846098895009786960144262519874048228742551727682930835900487045517172622445713613869700527149623719404102517855723994292174920698160527234756876487098766837799805857210438568008744112148719025081943805717048435989171556667205335608523011307477874528948835614018075525880761044656224744616656501520053722832362811495301823711718718830485144938563581678048682885433720450509745037766921374972274914522894138958417738161490596556946014067411271288299014304663838321179178870451282492843640544025196863831377019983192541125811038109328128556413485965509703833261846573391781126156892709557397261874672532767037340841711957641413518053914989324793444229704102261313421420990045968874000324503677861932467344571427091898974361201056191736229065444892708980960005551291180786729344619147316321843028128429153682540495359139741255955298418844241142968338480743581930063398030956510621530032899843477226932013072296278177476862421497056564535732656516941683647988613826683393111701987970279241729594863689205423229966837328191432942328185400300317480960188151173460442325901382336121421121878067199650317170620045254494281657221339360861517475415759681278624655436900105700853193444836198472566833335051405754739647545809587023887518346270494298690020544922897221617855619363677248603586606257526134301512400103687892189364141408219624623288137638781007208231334540640039368588855904218867666131846789438291200617214397417030756836492753764510962646901968252699257300027667089497329869230715956506079444027359356212299285484718111499311030270183310920214410196687062920149355113592135485068651114115335519755051293960314671188975018876692957418717438587238815378810334321256127244251878274668674017782706802528072772891655111582387747500349379008956042391091000962461246577697465374471292124874881512519517682390479437325127614102612944507266330444462955153484879466209487875826400862562084171036544358724813513656794666857897701197791346681268544023510123237315313109413127838041187350483637233592751430530455603693390474853459213899804368202611226897778601435824745292561693577235129472733173693792989567999340380077788016487358303583893897416386668198588234972418984678825392448627655902609868705570763210948328641829127479610196506335705102230485038011402587035616158732278589295379831730523148292950245923312782021667564169895487317369313480123247023720713004221685545995296368360928496617349975490146160867609267164127491374953161193686919082085719736183785417702405719015265290385440328569121848453501351936387383962730511280536680827929800887290482976148378881952156285652467213489332698766098821552216329529156859626921209558977038738143639478899882781069740779544481192215192767223113633399613495140086799373563522044821052138886759525736912860297145518140574946143134042968630898879131650490174656986052613629984739004726999404019423706688060279104590810576119121721832472241978657706190522830322106547937238364583248014142446311827271316117396168274115618118280459032676762917868653935141956607993496259373520612621970848071792395603253525113915957685039134097054561896964381868990085569503073681342876410246741128758276782566741700754900849812059846008685923677930548286377999810905026278481009322497836867764345465854459870754697656249226288447713689679977662897987159340248667798551052219105412816973577620158713810511120259875654199116084093058669155724008232571908898756693677891718062107915139212299175871170719893655279424858661896508549892701388377361356557980635547866534451168882380496594815431194716749649303680591872209106887056619977731296337213913058244139331479927017973026728740004410862220443008429978337624953196794091626109452197013325380089061771665438581995642887328792655129590955819907559522959712294605551532564102293431615493723343413548517633131722018896962467537123080734070304957325984391318683242646127592669513362350720294558330965540350602976314547397873013725203107168446427168303504343384507021203443471739054584507794560222198375659272712442398573373155510348579555215278314842564762694810029949481960266779676804986012490112842673110297666464678080442688884772863634411058505397420021215753182312839813201720399064571689758070436742443359423138709195885757645109472519019990726866572623510821616527982858865289348411817025509516216360363364704390590739485187185907731364475517286145184029067296943396748936555013276006047214821328408053736438823395636392009674228390680346818962118658167392722260698196547192404559548780129994957499478278673687090731361137498251167784457211389857150797513754836154035246051937386630330252611556444083999225931211484175750263568481302032140364437126487664179784692042301893379931260086653616533247588795188081578105080471893931267051184864922361977070426891882574016514583638224016599748154336011357269807638996455355472396156311867560692118049731703159621174205661017521927356243381341319276779309979652888291460417507257635375795192199180980604016029198121346983714333327837494815475903092088889475172847973408971271457036370313731062365360573228285089988457458552120483201161850872426667350775154596283640640173652180473264461571194117399220504706340350059396709441960292831927132200375434503006466805165536611807051692856880902260234535772294501937324906902730096220784129916799472672584021827069639033820908684394290891092786431738894443585053306948389723884701634349060572863381431718821893136502911728080541207911783287689434872497223144871266507672363502127472524028001664934850281434224311865356782995233341885796329921533651180239301309778896697140337949356959323902990954965857249370988560942683792301710112092142053798639412021049286777883303528276933142919837095454121190922852429822551490904300208452328381389411683306695233494143894083814774732829088358596547880910129539216804240800193089010814656586683287309384732427747375837494645531220282104457679162198278039557651830806119103354619977671653624309381018357235637491774975631624253587580811556068897032250242791193169950699623393189549057786291234248822453104599700138855805669460577827232799899056935826350494362448787976530296663030294814247564057805193540816687469939118538364884652532336790759932752003509540447070351103365495594745788819036671161152599302378197548423069457340906083476350648907385986326838836539016016717271859712522284564687941944714968273708614684144596118585395456742799665775294471422433671980268615209260382451383746000947509980951905171147479443129017338098437182102302120887225486574338032957355625327680987884038420938836135456488966790732000867076878738907598635730017216295244915629376295170463239933887008518328811867957625709924281444220483903421115161987171451337829434706790228089209596104689170520809762808536082397701864804814347124365161844180208461117809228187928279085615583467654428490800727227134153467322140126464298494501670421969247305979158444158511850809291985350696672220380926135819810252983869409848967800651029663813283264380080489333886159298688216283194752773054161953743674369112882577219040385783573718801959982268860262777711076782143346138255330650398324779941016506108055180294320685012032277935247923165559724419131708112004446979661989217156810875951948039654747952189075947933804214239625589664541593296278499008270711442241624083528791336258016889167602815170745492735280216171604318264489217051015889565093648335181658558079572559226407339169428878193754499844197643343314496194189659422430649005231618945691598245966982168181759891873321892474429181890542499101707981134966910535178271048295217779352321781749345188693319493258613296448462748418379686314651650373165322691634884755123681357819796201090889896538218921681763828763488536998840019677207522065770616406450766741001089720633505006050060977656474222358164465861498490099600791487799409781419461794783114096435481350705122995176472222371983633561499287611454334011090890666697524765454188110779396056071323435188822320237182084784489560416519867924051759454635019991474065668135979468368532800635348356519940174684698010876851851343972244566647993653776702884581452349129773045838846428689086081044657349576646857618995952463876483117441365875527476898450864668032788688867267113718013526242313606406188691969953387062499989277561680628044176676689964139117890922848737123073289238101017290985075759552163677088971535393673713673011715667203019958853010497033505218088943579609448516921882874483220232572826205585557686077346996404839596078948877136031117253218618148666250675133817301960066046056589712039394856702829812446926599056594420764606141265469670406979417480481321087742238834103550398215924993025844995237792639414577136984125981663299029618820542744345053963680228924502100432271535899496600398897347874905260523973994077690605151393701831973224507439301126445744541848313086208488177537035693801966062626637865342736100086501988383555147578770857068502095805273219151878924040683630770733530681066838693997733292971205133938897355589427776043218065724206325695834771192264074915112571042868858440219448682796780222119458646820239237720666974788338124870354227510121241658838317551010203240632952268293322794217304999603456494834185560299889157053201002043434182349785630013268518002924573867757832132321565525414300087030854814635075774424267670320069442796996776103176341533503878935911404472907282960469096838948292040069591143803936059650810239878335298564690235464552228868107596093190861810736947912129758848913136913639542264774034331474456852296087769977786758406800550893527293593896137405703784190485837318933430011474143850342690137644918812794834473526825472088243118724466855273902618101402596777523255062900545781404581779576002012188318268672050471848881185862942228730166329213535567353599245493256417129361217068255207987967031546171569628811497597103162412438923569217522121174253732014315530487551144417567975722935831983554325209981646095634402365341377739535611007965053939452420671822116228615478750815464438103090851935097055846514121840727211458304234093469070675131225952018083776391339236743721995477089158073168650710571606826085085996944179354591245430544492190235245216324887823370250226561947664175532134215734661529821656175155904342709159924385780825253774280455271640785837853957502178622265038006691037603664978718606606246024093780005952087990274160948397583606216632278702358312913253210130819380153662405014847936110044547024474090134783857477207412183014932117904858749833278035465090895289857346144102898310195366516148260126325967573052193520814895643130558155056586090684510844021359031481229844047412736607220144081221633210225739720386979588125423306962248507741255985736871394773216152860564486188376295675819209090711259933241017171322712577332352302836439554106557777905373946501788193457726157966775446202034047761771248916229778406327873179821524003415243114871493948114700563877857937203259588825343048252510782348236126395860829114083491022701337177794705585047527302884357497857869495997829397063656802767620049428779665264514524311626020840494446940001179195272718791782312310709842935447604120137099266171443559937464619550139761262504528121069710519440590087436599275542686503995227089130241704802830436083552118033583993104910368199018774715289330259880757284948170935286502355859745351689600140589657571209962002153429706084830502421939225251107455842533095998814325838722187528481843020857329103335608517847881283507254759454510726362259265730340692417774489841352956726764926908496887211531577059211978048589830957923795555915430686818096653745447132496593385320350356042710863269778826887683997744108591665073561268699177691694375390138930467275265741674370020479477034942479615126349657534072475360871937663430339473172523088475980591176651520583727630855733052596100210309596402928775595540506632141544630107771269133306483387867920399620993015360227829278020892006693891937133967522121804571287863246296045466762077469191076039887307731760988372393596264540785588820093072820932808390558578178480420188605433977397652438080754283693906027582531989525748560100704884002782342924201990024410610620601603932090979155187553455172273539419178287878940595338715034896994250960501316266403470978261343287901198813010473177633198236021968210633740812029052377187880256665873528191293893495148844659724525540429804906164268309666972892563580666886722286541169344577718765037956129081991827985047721876918082116669403685620906116413750629614333619689552342618151132736924902273055373680396657671637772093147637765703307328213470571059685305142499924629148051930230566741680117456932963660794006339746747831457659869672727669906144133415386850946716353564669765714657022713259631266096382513312875042546651266981766085974648399092983131555224038995536310374822788102520439643328359375111138342966350885789507191402633732933992810825952525474404431047986091196316758539520086424361488539802255051954404430386920757429602775977178967191767877680711829813375277820898209545892105725696092666117949497748247274154973703060425693019082381874626179294396139421938698386981571420377287272240284075778683077729104684331522235298148858903502702650384018257313278159921585560548342766314301447528662370308091132465271135622440006002328510045121591238222203033349961705022677354327794524908001372260461805054424481671119204035390868703848188185855087889286719718269886174883452544266742251053315231960732241003701127762798851779097312481331941473002207803666127823384811608112263259721929444421793379915065590698066012680990568411624085191065614497309772353879842990802706433657570206738843878739256864608973844256975831711625972214539599560117310824186485003716677060883276805809096070955685393751603398447624756766275725586379968325742540536098753415168907821578543204060519850121290220937691515479120874702080138505894002706072630977640023214619648893833151123516814848296215646747980841212493817718429618159663048192353700449911093488278080458094168300789627939693948564084664140600304451589418795878759165345279130915713651354839847440636939279362738263598567991658474955126521339867094756712736990515302336599918095585855338403419733002578522252031698146569318531273170084031665584805936256115621581093502992818741428361466932144593824084185775702981702182060418190220445961534792078419706221419360241575586544217216026396948466545456996243687783947565560167618401012562978536741283956317763565055914104849587856204489820326733986814354850839447008776404266859303582808618902127953252404931348279082869382748340512072766632138608010857597260922351483447276440937391953446863109135067824090970238498467065093738580810811523140658839868882849780149698567690934870924855903941569584499864538337182412267667484532311102254483620422730226772971781115101937044715858139593451730349004220954603603280487589340779113152306475739650484561900783411431873302862438878159531346761156203246694759157553143472571658202978252304361376280869737733893632183412642270914709632103923542624485226225152810534724013336760708556384494976908963448114928884563823232297692869938012926818728444868037067738631805971392760865802295869411950289082569346864260499474601093808107306941348791691416413341218985687112288175885586659009403578379155901540348817594233888248290275510175587410208013377633443302708913006630891763129495046079640917557971794053403150817782144693975284455475756022880051237776705770423917411243099417311957218447426362681004852851690906278505456407518827080868355699018822817255171709117516391066044018295667939573850743495351965337717754312250596909833234394921796246219870867416165422763098921814857204246400352400360016191074633917279687805797526594196433671311487994453304311803402612915923519707005241827229393846224934018314254536914122269427485074944011228934688175232827683283553097288328134293331337354777330044045475791269024354378381436156621071745934100602081609652633377184894020137267547371501573371019835547679783174327277153064577291080205611804399940408065316559975980031347831257058869580662492727516192635150654624267723951395982459731269574153502118278386003847314056757743434104702671686851992033212004394493254435969598736428562698434535827502384968746634981327327037397517041899320493131676002495335176271278375246166873889594225418410195569175724857789638360834363188339048670530526236524335621852553769806033758374454595310603549956151861489536528464234135981530387655815608086634958978705148839387211888575292697047085282711441194923308285126132083684607604265893465381943127941119826366429247615939339754122618681764974093795790311240491437661349980082954561870447910636984205538143365445373947915355385544293680741210927991120537869732969537899323804728342790272439083951662880666522449913577657286517492544766097809779457437889544452812048648522226015365358737766037764214099787698323185380908399713846401323416726009208480293403749229431673967991605888137792381006691812365285733214331675603294437584636572483846304818034165031657435997841803835200418011738358488616239943969364169531423738969093624080208692197188087686276116309671729476267712741245488188834779675125961649381319478841712333079714849639478991778636748713440262509736986730617701857708551193721008815607815014879276529788602022698428725417648405015483844069033834285923020770792013419355346566930565583520705719989117750134317619956702441162424248963727922957428221788294862045920055586859822313684976599015120284928429304779922087965629422819406756293818102889794399064883066808120211116620626150354499241269801818588812529026275104193427362677869306614779023093926744088659623891945339367186115371716987387576040019668934055063377348578844712851704502904664809486678916581303965705609848273560170249513386008237374676591108020822784198766302519242537036537905233655205865332037113712794286667034759731256835826647117198433923793028823113423328984047710476084261751526790116686307083600949584183822015464653926100794798096190930416577674997177680750261478299914488405461408604753471586408883012774570372005432999320406054638235692300318781428512445995828772456083143403112211861320283873832845639591033823327508455379085793987756404855490127313672789205386847943651969638019842962801451557526836892881875221746264734435017226189435731366785897082480117566273586718881446505037162852861286139958973541705900612402641145479640393338737186663591971080262541410237183849511553624659819769412165198137583633540525430898854293229141397759362279342307330380438242533027977198849352846484208767090834384959611214314533158863676611283568298382388579367741584090279211137298782205069746240095342587690107332739614373548982009555246426373298542730319105856095209475631504502987525824521852226506323417321589090906336514087615937292589864000134212006371541351444461631183929273808656301120285410492040265457099032218723589409325013612985199094878735198031021376268407554952219726419684638234948513734587657433703055522134942182799917132798491789796974046761741229242422695199881891573452816192310456855517816614951770501793437891946364168754640386082093079776447794399745494280054275776338371132991086347722890979304321899814734710227962492104885591996357570955410250073227546781314074545662155411490790996462112792295342271147828577808393422484515297164582879166252309638173946475306340511798471221198224405164061772741464861812455437027698758310573242950849478202227943741281871957391030853976212570901398579219698593505890865148327290292742699054610576549516802948012595388356348655595006470036800048419536044727529057039490157941879080379185674954497962094140381052965680635710214366281840355537954392562019419235324511012864672808010534115160174593093354127198259260172193971036480839939083025569253778703740702039047252198936727796708498779443358272794949337948504925193308381764546508798851751966660924460909889399439550830257647545763538029708860804197771204007263668178352355736599775718991300891740647293733056384406313159678989377817975236002348377337282222851567775384342951632441867943471427664096213489437465587165891312468154829986163206215715973849954090475377541113807125515971967467228317760802713075691765570018368984751538686138349937007487787430036160438782605068536088475792021695562603391719677795341323818928740946378616331749223507956521296796790663917540720917041446313111577339745761719389515417225423164334929405284480881634454874691382564294834814951439373674809724851499243034131741209288928340047977189376886888642446325868125274762276977001271165468518583207517048046874041874423374602576792472865681357210140722167027911973190024779350665979063915715907122381036901238669046286292740669705090645633495295478457920011315782671163449520878654709955343937771452266487396828134179305286697627373827648132188155382328545376979168830201639468814855735533266794660173278886683827886961180612983148556991455738240152214503337362763723576087326086938015896153277734500533317461466260146753497144257784655025801314926047748176670366364561350677204919318055737226934902122480291247158890272229072374278145521129324333162233907099307356209606425143808423872770699936410048721672089550474815038588679112324313822952117674771230736594018962099158573175868527597962502557587225810733477102279320375892363756353977672195311751821966359485609600593858757817198670931899998436038915688514299253854095584359820510659552949998478535544684760041174995664946784779337812558011292664761799179184258243779787032194666089083170775644168640289245238098750093306316311540631101773714099397574748321859191173201844932909080154028357002410396691327245381538466614382475841489005823664120110402401964345154978799546645704015575248620412457150560229490980270433000332004538753032166671248558087209916018200180603303154474071335085816347136890799573211954945826594851596057160940026758417712367013531120521921138506405895761095546677839754251254082753944500459353717095143987633433297495352116755627430473089856817591804293365832731761603308312363581809635598346341365248451696322535717779186157731458824988373786400796701128141045747647959145399560044923455099156313268985262110292949533347486691367972934562230546192376389435088690862170586484377178571482932796398544943593205231559026177851832887466819626066889907957693413064551310526278012109272191292589416589644903982928154507367686032477819619841104517488245210694311001956611675390550414073272045972155130929258928813549061396268920516934203151509460473784793176010755724634665596860163208036667086929785999449710247883487855090308001341044567943090558179988172334109909437235316230748045936901801983638124373775576432732021253977654463088634571085803902156557279512890381973780262840451776366470162336215357351404461057609902259950173459108379526597475341314159579236803265572943544086004609134169261436279316822343956076145886430609857530024250415363036069037780197045476097692468519007158900395509653220403189689452503486524330332931059276046962297822201079040951196950617184325041277592904202375725811723563759160542074545876497192793117744406646554410530679251377028276994433086332049694453168634658988356988147349371184618962392292245885514818807235701452871901510998125180780839683306494917641934686513536277023747437973464317135624803185761145839178196622514744944240190688534094851204801923729552260459631224947108977373917585452599589328308840130287922781277173124486052220933967543552891702027534550302494643692437050374906274498564180246558717196313025334364132489825078566382398733663201723783740408754575612824790799187226792720373377099927643602350616759671415263339231576742060249739281525343965633736295916324923686722978698488990462529703594326507410628534409127328260499740924222013889258355249986069450160083692442376555526383151880339205863567609355319381403431847849789808089247171643120024128390196626294579166128110100019406334705676636578333560727292321423946380783677508967666234201033756511140639519830616380283674170440933423298626698450453263308672487991305383106249811961598155194774400140017469823063144749695919455448126409301735418181069832342080502844869851887014712353740248918958967380017939474594352494891720084830411750593571572487207036717575706086095286883965598702629950325553822442134879765942747933850207698906554997423844627096000625844007613496098257044437843019150126194143998824826495076632923378512055030274345272769587892896845016984439247105953359585693935481153004113086275111051647058525022301431089369743062371076421981321342067103349923438367304906335850853197595701333968782126687008921255154050828044306797675697888201460513738622808596987535386549806116194708936139701860559076573010641410411559523178826011607793336479571558455996275861904626717197664790963976501115587341061661642724200797603186438537853219516448375449795704501068263225669338172612350317250547571742499933203226774175110692644896382787053455530894231189761555890572681018043337375567132826985495180069693741439989683460136224678285602344250121089344919792266736284905329810964516670525515577540491712187997432208668278775423154641486244053131424734631357733622592662769196443903746971941265004562043800681990352269947893073590314281017286841482400185308212009034153712212547712720909107322397785074707474604554797414762229011029886295879595386801956141276699572988609967472628086334605665079307902645044521166154037549871223461928456654525239612252607420419487507946340708276083538955146043363788605996901393046326008783574570770661090638489449379712013122828981528846076410772356472087521943771739875087157174744827428301916630907612206661058994046002155529407948077408106751290633983386131085832608963290007276555672911955636602299834792411520561936426330274722908012199491153108821054587482425886778157253496431167465141628446291048912462698687678558341059822198155320837103030676411482961704965159536144652291758683062031432432572500795268600155059377591814765039980838931546438961486977092208659398444855975695716534925339967397237753288295243326835327291471222463885968087840323301943429538479397869018067328434836765800747584878336091465613103153338329972938401290697875484572276481047638240968426873745803085305395284557613662641618195125188809744460688544486058118517434221376878808223718801036209156152200626209639674750491444552003553834998991547338978392975402314142082018639705636743895311940339298913459335861953493321301785556893984545353879334894799895554865731254367623567148400990833739873328234835856357350762655934928179129149736379010716066357241823297486043716111697296050697512459327354208530124770489421144342436852783142608952148302158062385792688211329117470941693286752761477851197405416322935996674444685970158127868475902650794042199122089243464872321614168410951261170720469639892927150570247136551617132120005770227792593483579236343147016257895540167600116665120599561093540747851836071162698922435014770682650113977036649348128848018681199818137942537472005626605889396138697164090675725538273365943614460143194037970000993101168199520718752471334303096590739868725741402438470886286328014792500229063071783032601458741706714075373677084680026288387685843869587555214672602458842452738053483740444429428219871226619249811018320656517841210269112650165928496118724480969225377082394298789242912140075259249364281407582419891568789717431217057458119077252126778100797439414361616287298292287898370571248918771344537140221609746681248991771953571617320373717038371786313020025005850218256714671155416203919310928681833899448536228057051710337417014788544022937527260805288832055034584738969455206650230578897732440817908157078606926060959784134019578383669116640296007093691309454990070025367273930102489593531135308749471487197173123852692713799984734618680053607529708064985295685564914936587860984780532297884251495088354583073137727670645193730412570527794257893875241543850640324771122097870106557227399082670983307544960472209059470679647446057919228890643955651717786450754104033361185393056118773441852086904943642936007141663809237482500800908563162021033219266633684311591613440179150773418452083411207785065840514316141423359004848493139891458452339153754262553375022146901630378461810866602961337885507597361145504762233866150672404538983572583642271602551556125892406060763014797726658336386084868225901217397741714084411433700764985460068088473255204838631212984181855297178169753087082927477774550355036219407948823556039836077558709725606742604610804864286761353482924407663729974255775812505878386653157101113685232650136215540776559126916933841846492538768643771455966069354705741608170828463288843715622639188074549008006453399322105817187918128637648434236982096777408098105975821216355083984737322695582699527168486703368047259138929601722194968761909203658521611889396388193383004392698989438670501190049759795340274243161891170576429949563935227437368634721065726016543738789676653410445644401633394760780255059570084686297721089388140382520448099669522146409120314680959940807927837008874432418838057327823489772828487318018048972018280313516876495247300347065294860730349531804862386056943900060726011351878751777998305334057058808608672768102253320891457986944975458075377534158385121144425203186721073804069632740329037366612305237349340724250811971358381840849335049883145859231979207999843334081153444666010506745300746660741912821665107365317865099364644915616366526096168433130263942760015102262579831861333133270415872262724556417353269619134500597046483584291202292259255752345119529862083533295716472343811689650889972411753962076572159209174293276005327531620723149342109399313355004786188667116314735852019785365457690026294068443278435945683905716901467740205674446971561181629196742868480684743676485880616610705160160575695855781763567000696750573737416124267686922421185648067408394396555342920773993235009943444141302055224561726774192903906664844239468243097326234123786981928884413509487585157590570724317940854023712130805999569256566334872301667444107885695989096697197166485486614795818524221060255740422543020772451715207051291342131601040137077712785244086670076308365760241048916541786946500404670309923808682505504583295248284577518364698985505474013623140061975019610432733806256671401310310590641912437648703872026517767721105995274917128959168255840936953972542695806209757068932064155516707145773636394231846756260200897120640799180821620192236974076483518193090518382831641741172657687022384913564538611317746349446220608903375161511744532154437943764708413433722920567805911405918768199762653609438606302644325560753559299188965376512116292259793081585100074878043116187520020002739717329151385102140001822823073803510531504099353977586761371718203903465795344354143024140026915710598558751216619960132288175559961960453104735393425685310812656645779370501248585683651266477158428233268210184007184718357982833996047159613558578038407679808521294385842872499692239065795627273033448965014208666161125198076987180884390642731903051976376443647448623049208203125672090841989849118011366241330143290157230715390360750637985460920681350010097269733338696564061551563233599927503292914297915186932100875045604554997231751416334198733815834124607350626626154480645885538838445005154949254037143165777179149085823645472728327728801395464765816606007161692943567137536275095360694769701269136994688842248273886343476367243349664104536512999897405730749957643607722277925653979014591356926270395818355105547806842141668840379179170263731233646867088198847664679568920954232713965919633508272303528380051209211294391258628314091768640592983579048845129796661818582028108890470656186964364072285725723990772529633395886245748588565028319256565058292601812556459454696044587694804714430063649275902977228379720478375403751719094416620247736310414766617678803405098081588799682469847035747310483257530600233985190681765639902504545411542776300931439762593273318751223224449099009758403302286388029887477143856173270671305305680208189764308032717616142329453148973243625691111961661916790163486753497714163520695311268678714152222196116224019772742919832979921638776423022331844157128890624387019816314697456280343858791334918722293278859840950054152273161519401329494905539946272275821142569897981094708165994280313040864954067970336665410368292238955379661658565098072552909223047515753219488295043977958945586039637566711274382918704882941366361086641939876261584354515648300565026670915545897591497893013000561861171162284506993634028654505876399782481417840542424409639103644120192512562109089178656668941548430208463271411532698189292379514796972550995168374525340874642874898169871663468139684086771007087474544087607609822101647366482724551136549007974541654720309865723308912768315131589322039575415851882329799545938727746070504509733156359459978593128112273362638812698057755907550322160981276439965672070029034127811261225411973376906384585683905704154805351996668494952131739905531592444151278853090924098229834098704474022514250271128473728578782841054479872061905660779602735388983148652282733918990488395152743328907302413736940046535864180491333899634378371109851326816689791218140083956936281845331106814537754586523526530176759667382000673656312702596784061059874784247682744878512676488617464016323751659440232266010184251758107467852842410832022184912146079099004166401109744692706877138797973996151440731721775106296048298698883326197435874827488200326440969052737397014099809343640892489269852815694329236214612864403004703969996279541283667864131001847074030578342239169592335515571512167731497819699054171219217258751077779131585143425681822637477913161759113871590309218341685078364122162839882235330224845295638484394741409616132367595921399979298203183048255639445190195825119944224412074602148912920504091347407239542726472151998811921889692725939148017497761761449452796294549020924276311718562192305674452722301474390546808704966039390749934894340628000193180522700216274522938324221694872015970812713008034038147859357201521667769998835086766117521230199857201097298971707958556723270220855214231692401046193661613019477927406842802402921112438511507563774659655868658805333143798079788432190225337062704517089972068482392109585113007724427710301003727671525684516694255497060869992883904174198679188591741745742992440485125288050976959084908786664842813797816833086619714468728265230489930872855588669085370562243345281295893355524883956147411410990239605891851076386557881041610224920771795396585078803423164614114874428510383415104700722548242489229128905847097215312531409746380326294475504348765425836569575169510369545521065107983215390288157596200589728143982908756242489359852712790506190497411273233820961637263693018425088033278772684855958615148411865005288813356436273936530964831816190342689806452443803556032335374655817732775569446066475233081245223064937828438287951842332116219340841823212215584712717179176255397308908957191255598423052214881769040324543305380472641377720724297081234905265638544937677675274528442756713188706245719013117832230546694000049620090942379830568412265741605434678026281377567133792667736212015884324495522283315976192012865653620565080875612240521473385304674415863778732367699880629668812531701248709062309939278451605954443570916988077462194436583924527095412190209230199008973341747406371782376099620835346386543832815788837617871269013685263326690920267283008070390948851997396527376988920343600207022149988231305148735218396021864354105009427897610030222544809520277439191981184058597861992470924146694703479101080752086021085134871418786213082711586969606737551938493612762454979335249918210427662745567692688157691935257528191732992101442735178693935020268545022940403069904824274093715042736798551103318190513065356113545179925163856289609383769201406606820242970952675100234769630980052549148455931959004732778694538025868479319050160820322397193993448214027862788794113413022852209253989763187386540599502425977511505753140653542918938264962883479365537840813342580999612308574847299251638992153534202927368156963194453304101262278484500427185258123327750071894364362575276294804672890881062677754333269935109855151408633439865358730800485570640147477838493298428039656645072285102751711255603713192411133303831978723273130565717635022532626533099390828100243639117351910392921697735757645814549479480725959397521764831487620305997122670590844849244351713851135811816528195517306926227996979292874923189047500013087997009389818309174671333496908966072583054858435424652996595693448265037261817478803853045590226026230685230720165782365527079389110692588921679291029242990890440879700668277327492266078600661412416307844558487439991108973984964511682543536315634194465008489880949058800658139712510802170597142354910033566130592375350246201419434896970565181579131937394805117724015775373777260838276574830159689872294402463164825486828138261494723163193850813276469768247087806310010892057123273958306936609913471026612678499228828481664254797510860218458209973997854612280174309911413692185245193260874053579684319331469968005805766133253572087230382040193375458175363173152403565866155396756105998734044925242210261601661006447817518676431181836656714038530637314951096796951564097454372378972179790163089477800499789730426470584575145284845037373631685847820933994207695723033804086720511321916376733625384147966788529881886779967997471075621751897528330110969282165640016315977943084839658363134272346601579669831880810674216929773753163229764334564050919335148335691701540115475351001518574471185957359960484769128658320774335323152509698463316692611742981726674547516128651763196573510284035250781296089328191228308569407443006786358490159532599794777705975892119930214760806269353042509979862690796682674304436660992019052491128010672034333348408512844277187151595714495323595867402858743314792175573204645034223536398316923648597625530196708641384988134364602821786046832005086630159917960936925028291616530693374076950542609013992539439247546894745274996256296557289198079160946052695565532723194384806809810974444120253288461689033768337433116833729385248952783776802280693798843879294086662967073157679860249188487136161805587944369597978362608939003607563655097032222965523981803805385978722464987290951943785654246431292313200784877683802560041408633731833598778360217154533949885469000337872829700741222058815662598715671695946852458707498487871513205435220740622359789797944559230697895774899388029022983527879601843917126429047188820188572707937892950540704302985927209762434086814231283906577514187048696858835541713677266617003647106569736825169075852206110444382631614755218342124446515461608437048873601245124665042818121755486747148416240508053541328357742089063087026534064424131507615678067285675365898306780366521821436941602130523441121886041243489982795287405676558947416489733050068550074978668964477181693525157457063316704692551867854425742228558643500888275113281974536658995182594675131282858520467299245406836825624042456011205603196150812988946080683849045858584460311092451042135672268015888674816527882179322325821716403387010177836000862448891427412513554805999507352392394123846662269453102853942528569160099161077859564232169325632041572906226366647709842502207841115217592061152102108393547958292725717634642626259722030469391090545580121252142932412951116978814164741870097191351267985813113525658411119864047806180684442975660971932050089080663758480411520205873199697479554441310567884651350745345877569491679040103355083623236001911087378470455323486445561085696472481523998804639293164958291669228350899135779648833990608051245027851412626078552508930868083863640413839382227465054785807671667621757135542120420402826067108944426930555710067046074511534458968449810110283263375793490465111719163673574541638484344796676598010763040054007180639665990799172832271180811706529130428574377126862095335653968164544454136107758282023177151234564275319378363093756281596585401596805846597864876376186853488455496515187839838580818114703713906447204301256867635015472904394618263600012301944112804337048287684798656859655893581867220825840651910727325691448514937780107423674942952193323094141526505549528755212363352671401197874546432507672990759524104890217029325864570425851935936647641386874284512784970179902311610293281901079055222232028350984392066894951041187374090242027624167796673618593316841588511079170019875612585948150429808834104945429674640799985110491591324294803304852975711392404851682382036806624809050435190503195671479695186081433899345285102614683780433762238817300495746430157584567639840113983283830611988546140243155197994306561914304607916238663776924557293430719263928875349888542728748980265254452552602005618529263552215500073620277004360927243121200455164199302326864727865553510209382392342050925400185110693434294486073974698847951168034991704681841696799084494103726413167010812810970181161432662087767527701234544907204940103476571830056162338711126319782616864520290287736657916787312424403169284872986013908621540838451533971130531485676313902908723237202887727476543476294469314445213540875970688609237892367214633764970194620442088328388751448425615103134853740959533083454512361898863937528286247477890166484811334534682002885512461571694901467584821719972619308620239138633101712784869863913418194955675338996235715460538208839922135818212017714931541613647145792689207153922053412134436837309406661057302462587675822046761042165980884722070751584594330795965398306654933121461623099460037183182794930610735266253071705073509098586916027651752491644535619040162519488185497957312760680278306505968002690930790779485521741235646292185803263046934643189773239679012527226136725113006608287187914003398710348989557824129801907823957199905336507835276952732461541038795706142796518710077329376748381075464187956470434990623341705887241198318047060842033206287713381995464548057645534394485988282328638402938377522187376869444400453141824841167595861129618194205948889829931436670553472259872193825798722989198199642867213804389969490879150545485614884117809425171177803915493259671251453649210685034177949128053850220133612043319999051759204246422499620273760214999244737783812132767016450270430353908442854697049852649756429709516246192762784594624377981520654832567308149308301134158804886688259424826439906020801527570459068873002053694279824827882609816061642073525928125630907927522515363944326556987360613240514776438525817931083826912893431210223274613169679674007939955285932051384271723384591863001315641286183784813635321223886741992838624754219652155256934937998165029087063605387592392782780811704064445946268016384990114291802803698003997561992199214533073294592109471941462267288552458691575230756816494379557833001404086014936131336631414801078576402319069386289170363290865550994829149489899621266609844609621796660122164372961189863430520479033049180934719901021447760860126691349364329745636871766919550659872880224627395298985559943626589655872130575615111701466243085191379529157045079087679713300297803079759306508978083343129096099405188080940039870640347698585486428422328584003832245620380849814022593983838753570476969356315151689811698782713245625937010630085682977336521618878536903376584468874556872949867924074776678538039968491678178722280414028472937882512564584095296015588186502333205697182731881090015195533694793903756364909699420789891753229045196210249870075401975540524559950605019510519136642970559491832347107176475460096090969314387729945797860607402838702396847799440762921650705332466994168403175186519368772713495305450051220734327442358182900610827896735643922935111946667648249967436028041943703847412794579926645871236900661679259362867292136784308810378396178898069955970499568489365651385750706395868998922721935076374574701815025396727137860219242506930970067220441104876077667981069022034526968073746939511696745261849356108744504215838961611788550273022443796831293577561893999555991490758558542396738835388422764213651159202520523522981237510522351439872236854761080710872088860288185363077645935201703006787253619469711704518936529256986791329781479739301735463823365577565938483595682286567599238740085350196250975613647188529349857673651350991987863884187611642523071465398813861432151357329320816824336939260493693084172009092036684306326379295009635948157388321650156806455468059643745541620139485525699571209427383267657307043629292592676765578181236358324500757481340903410958830042780104779517588420484836759773388677757874849724491147790776387487403379441766187550361120130890069197822177032719997720640418929452709104254665312764660329225441967151426584953325834010976529989845178822367574379004326736143215067374267060208851532061318693010017224405989452484803544730734450418311890844360855475329975171681639447360167099597418813154101612371163305569419568813633715206313971823579467652665279321996406000407800264696534768218539552285089517354320695460935493257315110698148170215859544374232706690796810012863436317867040110530105960049130695987735995712777996021115960426285769901823884854779557138647435565494550334039160051888823056473240720511326199108551732732393071652420637212437634552308036172438527096961325406354843840169246733377696188161011254175439723650966388518306933748852020371682837162130544974908181709626886947585964282770861604350132254632022335132635138630981090488649889917636794770074049824153470699819657333518474248027378136933574825410211592769526051546942661513738963135699723090562785335496005118708109928501325424510713102368505156983553971285960285954291099093559845234669992631867808649599980567939704751592498809590242046253963620783231405378236286424945253546509748762642662587539623512512942969771233014061761483703859147257230818882370138444907797003512434624620349577232544399034187878416749345807051457002605882822606678024916232621757357802768573433327201622871846528571413888128175232010113857578909456048113114633639394077754612369824304959121501791312811474426129882749017602711077922135612759689845992092842460529715990799652863426574689758812960500468839595302337231147934423913399832667564180557291052058948295287088505951236941372490748418134637894606924049697478866328028246882994612805962783026549893332266925974510966080359456145035990893363857047518084411981617534156038295478000308750276306336465086793642025135077898302782249859606836510205879617217577988361827603752171538201493888581262727690994257251624016207112002052858249446927571018017571321368958567309953454286817308862726650551653093381446027174426911035860380645772691781142926664338168933038096514076098371018242485917126155926623604122625751717057693067130637818504045030657292444507095929285079416267376433279418516697246785267465017557504790284643474515070003535433261904023918058262493186976948030925432907321882025893373070149020405872245109070366662839495252163873323104988003510719579043572932852520865396174961299347537933074045141770655933678145524717289975472518583199303579405074322809226317827306164226024055533667518546474674894284760635634028124000559451749762719832649911835064185801271578167470529786786377279152690593903090038269037699736319322527689752882935766263276143943189688460070849368185356179516443990418851076700407144715787852617809489484184973029753265463667250797962185809306852115752665137147060678522698169891579405380031758329338861199181912328089404262917150508473409955419151418277892550598608994592776541898611693839480838730551157827812386256129577915858573470032001231386804707260927788330498241274206380368946864513784127905087816238900628722782427264789959680817348699537806325636207541864704119405898995440374967071144031156796482993326972665895542485873052724000140759516233411982394108582929142963900969166816585233954659734307233271353374265459764228295483077125328347142027024649782226978820079547497911036025759864570232724893128050964241148838797395395673170801742109449565077823388437534984647839125107493673719735931254083897291256059775137353695607409419292876548519339923926791294711639097990183477118018497097104224015425926262956941114609778182335917010601742585266201760895803328255423777317497448453230765175500081070308133189204038729370984546636341120469274506673555066647446453405995884715150072664354704427814901915850768070061816964557507405391096995902059176454155107112819538187539947481990925219186317850007238633733092892334390427605069484446630645390606115554124057026779118913932452493985720610622750224393769662891722627763820593207418462021577892738466931465447121360386232902750736457925981868002087358083074385261127764208440485478745169254919322518516010081358842280988191450891602139620659339259598849286904638957749058724835443921926040106444949247493220459055413798760709072805673797102158345044985773732606765337288090770099586614533732803621069491577520948998566639121642909211400434489227272813065699281666616789919535634460202037048958647314351162065995224397481068231104924530820428689873668514010121380731924964295351276043188937617582943417942405305535297092160000964241011808834994608969009337829697659748148665477487880664855140226738585497765115773202761529862697022126034335483509466329374584689460658020835446970355656434514226435152884654643723300669422225073133333028073937896464890561412278540964395246772863191510603181178533626364574233484502276915644357091939071522648204464125110372623714470182996346026307515636756481491671418055078985814955615865513802955950349119840818091465288221503883993064453153535067498947548645614947730715677193364992308894676361027040393983831229532178780286924985105080127655284132838429049410058158768907164719440151220108372268311372832917319277546018412707689770417708449656215811528950261597583234986661147619055033755626621520478542835831260956789903295955940540300284538141587276092209427882869200887821787560960976972438353199101575623558885938072489889946655958860954453126184189317167461524987313453845182003807758319965624880203476218865511815900235357931762487780562858385154710894810388521562080968402101427965551677895202886828671185461439691779203761348552572133838748349480351905701088231775322520758843109904717087853629736434635578591495660222864320932913806571468407153336768927609028270282396272435996124479906313699628849761874737845308053848152482257116782450996201689759602770887288013688226704087060969567383747271069045828566807511571762816001244419043420643405556077532746328432406224565926509852795503752076285271787093278538019085309982666076711105602609184067701623563009640921152167872769089026416608305811478542900692271981057526309621143682655412841405357602042413388087876496486714704255148082644854734393338392700973733859116596505236910186365041510823539788869994020936695285290773587950391978006687266890195432922687061984848900751391093016900790641292832589898573860487583089415527105504707244398756753373930038955470089572628709843715761259287136727824709195357197219254343942475447369535240041994527158758758753365497481295542074790830216114911427593292381676839203006199892044768517482766456499671431964509009186696944319883749137661512694746253434301022772950074222472218687274683538775075919322384084160975373556045032506363217650489664941191495742118855883307843459992401335900074878914467201929000772009743847979702970674089016215051199776047904188847544461825350319716440048325288885705733275315537236333073255193904961398711844829363191425390512479610956268736058655698376017499328860549442928987351498692151511413726298659727404010442023226651713451280364135645181608035708001647237837945273118554583175287601055861313579451596845068482547398394028612964527423696797130172003541603086901063450030477890663644823277157836879858975658986655397900223353198690832050626685506078406372175479625079984970520309767951877272974615876835740005790596163852252904454815710570196509226326105317822960824865132623106849233968017573204388913033602095175092749551343789791654060441891621135023478290678400148531107334358809995743783494866445587875181909447969601548143812338123786172926192801008636923767655656827066524828803572108531618801911897326032036969954476504301969487053129663091853383720616159561554774550621082435939413802937544703146962487166748294956974073452866169570221211714625014892601242176971694878546420209791260209357429255105412299353237468918643958735153449587959085555236051015291694361577549918390139475681120502162174448150857544677461325976989749573722228009041418931453354484273440140111676417643794696063033192403342753419069386982493627964678200530017960087249092220453141506591710800721599392000494668245797438641615105424651075677172550780513369001150675215637813249626912725665650365157496413358079314928174820764757449940332264621108360356537896270574395327250761617174482954957791065433134780470148736123044137143164465428253713002319233478977504055911687057594325158699928246508474525212813067590429966870956306245179969019671772077809459438123469594132777220590745568335751547994844046146551301688923993984663731025172682643715939795425429279597133813066149240747728027959392754619463947392127912063970323959971282491235276913449497527783921121066585832112540319733346178561234042342345469117997027885758293346098919486378196572162063627859470827648879150142086442624347397272695114655483243434221276826515282433155856726667150857501805130845653990363340538597019789304897770046262491993609910595391187813500944433814973226104331671697890899962098255737012804925900125385976889488723375074572540704929013456693399667830613615737227567104780631938361113480752110788372074469386112129038104210112148881433809627540013225906344852565178816760374089168709425606652706258848297951825203490718637141392071575166560718016951062480512273296356111067154482199659706426540784951936006432358179974823622987350179898112524684363616128659465527376226905746078197605031096075734255924814137337273423054333025168561025518329805051779842889309039492241318301429705660396067219877664459203389122186860589826710300355490127718770080282522208430176002425050252479478997098554634347769458980118967567728782332073101469147821095261952992401440007138729309889272172580725923372383557193740210105012107004274149319606711947879160710253093519385543009296146984503951056460923333004780228034618324482787547070813281121797825096636641722752525040715524296181086998862008772286772351624473694262506864020296010447228360145827814693594312612778527599804025586699479926732993822031169388270696526356831926062324601323126655543912228206622889639508032463798994204041417948805207543866143102406733109464801058765455618749068290786007387265869789804018537572315216156355543107544379564580627033742699942482901166532866123183380998464896321250008727438234133814555571198981985846668676459850212033427433378459783798734828144491384750843680333895748779206057323365882451703425260734504413195879022774621769415428708142071909571428577591787086128330975395068202669950077160928198291808091555021547570907936360311883467137356238043367698977873829264494562559387884488462661353887005960816826237814110276866783620000672472744197461223976414877939492287664087016637615234307537094741118601414079941662597360709803031073850689192308799436242898332156577652397469385122113154277553307284669629017558209233355046783745473132160249904505688704212649814073281444370605416825015457068126652962059904059749860546063119394717374141532862373561966720883982844805167188666563965892134629353234456126903089927833240741478630138747587112779399578038537325828254308117291385570993265167413086940290335492293393248484335515282975641776812372910343912180504614787508040924994476188030859450710945020838205981195206182945220689573554275316061969647860676935195025091557900764982595643019489465008575192909998402642699378935378175805873407204876913051366079028460272927230391486919553851620002224137395332003609510347089880432200030017764404444420173921288531120384036128297418257407104938748284390214651576742484530546907077504469969193122485418619021174162906238854351508242171475218982823665941562301067587894396338408371037329626317125318207945900098020963090528648453535248184402801542667902038928207044715167460554891910325332137035757590793776400058797747144084332563701006966355662395066474934974727174572864414058544450448566706388231129460139278216314781537904120910202266858769182014766870844502184114160727419710082159388659057918861268901235007494520990809326091302112778517966725694691945661247559204994054599859007910776051523137395293205527942007307988539301628779922548502135147339009315993131481624491145649954978205024788502388888792361263445036379479646913764114917300104627761023714052430364908353694342794693615453129971458644634423108874319784096142402043138871405126467811499986237452655442120260697972691031600570923910271351177665289918143377128730017114991970015116553227184695857879755462270655036844486803496989695488510919753935769254833562232601661362034933194892326256237297385834583203422960499046214403100196091495018036398227652414006187406985901656925926075281866682344888993684055347676426311673605072981853566577491719888582524010306394618854493570390309705471353825013739697173434860913249562228836188350005567900092707407176077269334794235927207593420521410646696332936645068732708785449064689492772859567005570751985358690820706495513046003701947671782502228251559535875710301033245419680632812736926095844548586097314223191696473222244867647170539545198622184269572109048712183486661164203681599320245197045508736927229556674581940333516352716928042149587441518977292435111516800607246320390595114511447260019627650696280070116313590742916854591040840395008530067833522928573096804711973617840990223285858421146647121889238510063170393230158295748535924069020760990862384544275751293547496453093367011426160512101922068549342209180538985963260459078450130106806856557127613785535222755967584450762458935791619580950944745331782624162529213265858207176837855504565158455171537827818165793776461675620222873527215956254845187276069629137977716635696135154006259762051007933749178298957937891722694603498476631428404759583080517947940683612103927685717738547433114193310170398974974737948462701876740852164949431019685010076984173928332241929170899707395471643908523488587068665844552882773294923803783592125552767373848108842010046644442290899254649133843144378273142854831403427620905595590549263473205327611732836253155117410839070580877133893265255560425152673548714148271340444458529210846097022630599731653146927302509796750011622259829617493398040352218731077092067849170775474368047311172811885578428252758931117349736265975360326990141181587120537706533319917170004917706546128014566001771186144153914918465721504014608028657918373753614133388223420934194815936301721666338996283859339689540853493904200043386215743712105048462763174375544425842227979081362737250519799896816278655850838285507266496059561068082132237604109734403190392789070589993271864332526602799456838681024563264547651744546758952567496190913556451182759488396751169466781080424862942831792170678517659311872111266199145446675525067731406735994087414830959370013265179197274129021805066503808676538222909943250905616436840584419922742734075541524390622823082160116557701509597406894856624696134491366775563440262699540782279726858401048663438729323437710816127576563968599665634787030049523757066533334483458202117636396270625575224423344548677829792809550699630675133043736513487995774783312730895239497250423798607910899277010049135173536002415597147283798231663352448031092615385852630735741817442135951978493520254326772447858103558186635924071362088865195533255601418507428988151862780478585365501817660119419172491033757640111274218194622476229659727668308879740134291870653691719795597083161797351619465705684926529178300584707158605286973861514916453763957387906962203538941451109057518130806364799214536822837761548634485526766259982339769484438205264645289446363330474592524502450949517996567344645239733318324578014599163492064076385446696772766467725837430661021750558755349500154707399046734636026632396966898580938801510723316495434623215394298027017342868983014275555783872895866664756871495335992925653164587372198018632044614932841343252215433022642964193293817156628519802344942947985438779789666791584863843185692127812018535572238114955286098630278782617352779198878720807019688965242235836248055762980802302404948047924381192885137797354393080744618918352381133014998615669993292654220144470478977131342841342354156621476043238469296002808041320344732170200047818093247744027533106350947366715706561072666153140485195363349808111229265918059680619293696760546014046624945400753623441425656952784544751692033256736210205583147282706849933536337400957846657444998511198840392138131955413619202976272324140969947754056212287648336896454135773760675685990604245191766043909389675840960290132947162112486227954820136434239624599927253674651110630906146791904306406527086857553842251624931610533947349210456788791880464264719451645632976917884888580284018239767516438914934750005959567618628165736430984675658296544723660547356461833448170548416909546001684021843729086913066967546509588151757833952342150588387742598069471067946366350585010869682752893220559427909318103729821779749140540321799830632617340331578529142287516005411375545664940894685056548683767048553613287119513798580187018654986003569664635964711478209962952709637940342069825773418916999415610901579660007636573584997488287877030232480928783497401811754183958310513548704673080716458960510751431992055392634963143164840482409370853533194532450493456376646578817598845400876649954793336523727250253172817298509499502146707546336763495343620095744736723090538379638515937085612492794973614279817649531808874756772812686625596943161226960892602437615767413164008148866897138639634404610885556776108688933275066185692316227526553888560505991320181259629360616297957618538560381727803475711309757336866364728999871975611061683052018740660203574788525231302785949060103060894745102382631360078742715839451253212285150595426161792186114534850158130243675058181528950844892454401689828192133959263872641851259621692176245731033263333199540560216326534643582547388656386507974828467785830166152602612828619436157357863656015544282116208117177055415193028217519785601344023411071004293771862552827700903456329838829096466815313802252920376502294895801200474731437012003640024003632659563479226661095378085544580315307199711358236376238080166220501956992467018654861281476539789229168906078651483518043673324305932540152014150707251915595699513497574275666144905168590362361953758622577884136427004011619113600170639011468834277099613173135684330349708633647810952578337340423624379807442933814564846638704631354446747462993674305003198583387420682929218689259070701748500252459092139545917773050792873080132356081323317361745489980342990007028200184555405463629447293876802149719751960670921440497611038850573690310882939188096135475031123041582324483334415423573744662589503586410316551201173593654460008822060281085239792817860916131814549109208492046397718542064567123421489458667812209614515244564888634938348041006598567433033281149735766766093003073038331753107025502898487790907008605734825598157623299491793089839451771893098783452396403930908051097145554313622817464861522343355039472094762807622177419685979724126695843340187945448798154811386112912092895861334318269083727573729141112782898087589555949273800155888879934512852833283013749706972265150128629034088480128429306875823262239108616796148725660124298340241677067432069494018979142070590526762982436016246004284726529255195387138845019587850805850956232375283064168413775940002170036908612594874374258381467325684325708665079868655846961390499857910725992169045864745672362887018976625277431465186186903728520543146788402711430525007627399975546004241078303314295545302319737758194153541276923287866712269403748725789394937373257920669946023592645900033084758055335465067591361297884364392117915450073149019390702414089768232089532021767790346327319263260395204453830357337805829997233063434757851682265080755364257310316110205829237489808887542603170645852615160891435902844535991498780343040215872263126925019758774781512917933631028510333806917564679514051401596238175282514764194637374232939436441785561923448477559263564279381760751701184922355531021605135823840387953650646175529717417254501711244372946588924054326493186242074142144100088191857694106264233048701384604196252914315260654979063277427257599212482509868148254743482005192019957501265010818474893667231998136953655324074861993443791112637560948732573669394912864421478952728142106899308142502605251084354866326546062462447218334278942933965584763058387430273477168489035815012955195384107070560527696234586908968017198450665946630569309056209928162842087933597087456061949450507506782864708015590533472929123985123224646524196859577801923959972256938623190114817341193780693021901962868714269177548706361695361791818075055605740097927939344516156706391170347350607851199555830056671890502525048000879703704108832702152033273186188671702312602973549948748642875075654939310139449297096786596674627990704911137661579113911532949581728357255095246469233874497559357106313914575739917166355201911183669325228201208527172310455989709019273826080754990429620017113291330599088224821128149535886838873671141360362776728915080439579891414919556552527403773352455430618690682230589068927351388502161489546387268489853350743075419899357567592282359609573333284717391674977407591904561403234379077545461472640645851351893090213643168917273953757973786967159792820906467091398092328964150415971001035106154681262322032549670741251721318167982195082670678020857636563236741129283000721169451706458393544863946302981961962573806647003262342518027924863741627158699812677372699294244959713979522161417631114291410218242145281951296344151158856640555614025277200191525957818946658984596687721390556911538857939461986969684385760046249869201163890914667991667245716795121208918654369611594090965689906174542781981553956976985136494549378683979858569744806875803732916353262199736796556388340570523868790578062235696122156886525149420084715362287540436200433950638542169169327721794013866916463540662071831601503854271396200876054244300819613796103021138646922801197888336048667192742260919669043609311059948908523928880860265128992710362130879296075421056437530011044929097774331608035343613769127038626444755747662023532620119386860002631524581103538040930522531357925219287456526462916468215440747044203510482081994310400082026579820870826832748395465976946597655044392795871276982899883180196783064271415714871193311112723248226408046613655019287152322503481172352581106685838460853069677802772937971477228354347496832600984276102844505885784612655034160244618781144590755571366183152925096326510579207405243761125077109466961063409645932503934023986883562697494810306186208039593636645620274932428560567001303091917586934693396663580196461273104134002055076188391728710206336094342654574422190989163889105776063900366636434274872572365342334788492951021027343389543794551956771409935753998962073295617939617942961372016422080085734579615519266685298707787598591921323472226248520034385432999220888525714080789965316282778513242891901900662032034800410113319971606978977463109431542643510553557621905363520946566392607720229756416508641711552013506345684014407333434139599567578960613879571433605293036185155773760336437191912343867397805910220663200974916146604822012715412058185884358918052471131776373184616937776413233498308238416101002661426093193119053823478380753971487668545622842663712787984182040623205079812185844812376566784391410105074465580712294807288427280508975850145181416357651006815893222593350788722391495794340824334995370424434068272989492596492070281036022567724984265987066213303191344357549104075929607512377940689655914292668047492161612114677173471372025389708437184720229586417499957385859611824126733572837374912993326697476411714661564116655046387571502235203455515657018583153393871307187323230971310921518847076930593066962999250554385682151592327957362345620499239623220439519583367231375234586518230048590123465044551515999403456892155015819321000980807147824216774141582399024793749289242574028650442228994704003704436846491798509337188219979026761248372556845212163342265674093259647163088919903252912423091127591355848635068002711298942178222524409954169998315603488394332563427502191644166189292926791716352803796342478377243372799456298969144568998875062686827304944873908790339497727811435521667386785854048016989881792813844197908009936186312763538483315438331125239454015970586975605364816671540476789870931571091885690084179894129746378286684895874838874992891821095680972026250393806640315191208837564623153283899629088285435950473700506678902260253263391838676059995198460553930180173814488416070749151175274980932692353125666764884217277051590266173243091004610453287919049875927224234914924073053704381324935058648302412601471215085237799149884700865236592826641350141063638052511835164103629350105579434441674430767676273393846135040997412596463277816388099044685229250409294087321637389453455230582642320567894364802776439007453118402068102939833927732021168031909622429730344374793289267805445559250536424457715077202728033736672972277642579381971551416594112779306523244083673774066163323042725514566047307291037861368011448447721925669059748838064242785340311751311746515458586631616742151377445494092014827515590321472485254194968869008517107717160929165987401154455338676338969740841929769148731593576071282318591559648970067461892592818240493919907234195385013794481784172338808271826336858905460144492050470992235449086300907115703451933857442842533089484541835434259713458051419075464577381126304136225385508976186658823036489078621312165936939140858354560484664534794241595761142395533769210564824976497280318622849326462065802612999355960964509082533727238105518950164412740990930996899913075858107703397805638024196598593601101211824172943512119269126848170575784054388377339960708921664159337506543856325979814535903922097738520815211860861768916051917053392115810779089418122175395811954703682718172369943659876400883428172540909709541015996076096192994592227201544390758409819120976400886131087700243856208838057122692684193270253605843018308643540432886947437392469149679506057761531376975277330617696563393069195416494847122556641284037782941749517448685587877605014495014539107432370118520184917366140373789271857553903803684264868489430382995885578816377334214858886967661719271084358100407448534088742074944135830667325389344206986411851132676915108059334752490720764665665513944102707118667760343258889969545602500174653547897224066416812794573645870375062961973977095548116897869831663500248822461273712537400071303721434575241588652711683711486205326767265723196752822576689395135057893185340434812304052840975737713859400052440900351425918042308483456248674301338654666768071548707673326914498246111259366528974842051943389675208374770995431002622745063249371266604692394185603320088822507348460165406415474590356830132331589377843188367265364367172127245951367707389691335723321667321631416161222061030294056659963870873094444037715693585214042696921727844923823259653725798994590892050348994558281071789620778370108349165718733704539030370651659886923774184520893248514117857026484849846612319255568574248133495078319202024962322768634311837422076093798949950212434646006169614351243580039073034602945209403396557393133230927157418458820576476100562468716461654000151282852811030401141977368427365649902281556958917547648355873051262920753312125087419319104764269775269489138374088682871828140810358211545140172560780868725033045600888383859366055606176918379058633062565640801515560531122937733653665104091725594892053513885857731518365499587122625045704916660733423105453914122610110561184595841043363612122205061283609176645614198874703605980544827635786629267920675315889496491899474590355499485463590326883321586767190489989806482259883359357511189757580021771749264106241326523041488493838868752261214408599878448831482564991485837450498461226455152874380453950090252355806684914403695608125292913992180792287450135298088719497303769236018683981632781599992707758075236945841616345901666923548952958217346622875677936128475928200600838828259251360260232518068017578095029907392554444550790879159819846256916535626122604422395977186386041501751737640775388507735767258508626478575857391005942288811803659501431589407491549099130211212152860002143564153929130486424451979971654864450758284497988955818105192547653268531230272736331669391626235546165092079430721739308733185102513257382384827259431909746093110015680390280258899695295336595507186568033000371504457693002477490541899648787804402974544321255593055533244080092426482432449999715877745137865908735342704937143066492415419801720765386135075051440894954623454688922208790176791965136570616088514743918694605126593819063440309252581498612989485616167694930208859489878197317682009714929032765928250835791044369887061664443412502942017364762924537478170209313273636350016885872897518568830977204151575137959696267517119433918207687045641127260683561183956620252978982826125606543880574792341464407773459758784411832497077687504744481519391805568249508601182556148528707007990301667942648997109475829725859409576250459805849307586561723063137175343717152396318992936892736475728294358261126365276276912239137915006714417416436387567634376081485762414970228921043584322286467544413256535191028314961978719390455163832940053660550365921614617509882257429257678049357049073941200637911516182970782077531296669963332707379719218899990135615771331678734515655387715668787957193190097291765938869446481683010388766406304018610073812206786332527404273541906287487978835713482843337021470963961832332152409857163401196658519242643932323053611885946116803853331995140691622935253867202716524768516306842989206376123210268394591445772290635573297285540882532932162260730505402389939895387760027946856397186782176172071642697180215509195375941988719175970070753863369647173391049477406212213429100926847764879017075683178720086592664574898832708449976133748349430896061622999296548414713545712486582573439011387777511680465297603428214570914367132752968573115883719328147050697662455630087779485591665521764331025018797621239888982690464567960941986628955106997841245934944320945307984281824598702957476086752476728492532316832221067246502741919852958712870239975574335148001480310025523745324075165118448240832240281511154784283063139184225231988605841129018207868972818138037148164816682070630495242967431773245435851492100671993831499957318406704046414922770555694367558239918294642438611511259149601504450882628322981652528650369381498821501323938078106123538566473255310120698668256780265439788774322092434066850308348804232479554045890946528792428884139048111319187272700374955206794906848132960259200698935370951727731791633270297234629098387028880079824444985021589341049235690144949217099423154275890125326212165438040785901595365979250486282409656140010070494852468631873714127055038294163870901943641545908762425916796177046052395417013512723199680521498567278555234934427957366006429415046724629373032120246859001014977105597089732165106437058027301111856957105921846639285558142647946703461599698032402535476018724640988281530500010303160203059024754061344428199099997513918520977670510370118196159867690947864432557734454073863924645184493723157154891513255170323160608503630740247493657253683964564876314835972192018296524628868204712510906844748448620922735679027045625083669869922397436664427894860088911044118929929560107134339404328813637804733875290574544013990030786574347609145447882630689519915019376534602674745295489017150922822186431055481638535511093505349357642409506813062765541390982571545169183838007076944235273857112707699597896068787041833674470629082630119241826418810524835068453968997608895061914848608054018761221334431941776217877211924440282597526089208568204899103570670279171979406631754075589170979415003823630739257281225778341834038936344392146759465874213510656668037048613752044800084106043255144817521933212810490826119444101222226669381602198425987647461269569000507766947761337347143140225986170624106616161640923496093181126974407141118667512803296842133578011526609203508953881410187444770025349596306831128353627736426493581088623131204192395309018968544314900153554641621661424941011002658793964532158830540925797727618677942134038575549275440864386543748323037890102344649018842312533159636363343350412054862375565429918934341680329764416595976824363057221969035599302418771219429110186596462954008806754236692514679941258419952906109168628384889646346015547135826757814608203131549064445392067808263122273812618863607546362191654934120333022267222457859382727047953179749093313303608582084845127186822269137205730155553197649782422868118653260242617931138409759506466048532125770458363378413763606670847648415216496242163993589126178528004154934846538715171366525161270805984509506650459697999745651270969558677639651508233196785951704972008583062538550222257282480238994196850548414568545755664838764851169799207763748086449628597419453874140983184804616302809886127679916495285482712624564498264710817135523733926700219201458960351488506001220780498562244373264980883304004749286222175382040397221962858276844673185066294231026376693318971080239366721152392836865708790505570019395979422467953179767296421018072487096686880922324053018483235675038828664576098106411066943694841716726305905101613908221867752344126685800843861179076104707126259698315470377435345052103584914113171503573346788352601090935107309060231200100759425078870668689176239144612060425328852183762624446862280458527883723632468481397519333769795974321366967174648268220481757026909223606633240528872479448107509907450918247716949910093907958337634986733740568311995431499263882410078052521401836089243333815989427858999274296657385233231342522126156086533389665057263505428528084377350019406578991710142645360493515786555168083145251947846450411052200696271862463899988766880107022487745882572128091396494320029573183848230986615568301838755160164910769043134884928824097390802421381080656560900000031274558890271844947097266876728463693213038956719732866403881172850940460633905430978626214159070944732654135821499837078988470466358417448320551158076587388030321078725864627153133938056141310538770995703002658351854833297525650089740021640294112972685779868610636283528541936718165049554446734101924492884527306802861629929697930698343288843873958078279504305266053406361042306413149756419976527376168196051312797562389344450501390647654578609758492725383038761514424696164580976144950858322949081279650035546489312854842500256381030493792693395372428365355488599256420588932978140697904498810541797008616041455820864170388204878810651352034278905605694658967002412946853126184574621603811555934023580854947993384128695942017684950968709295022854404199907704710037061386816229114709263372520406453480640356268995960027011061368420804191743996524035548426881431525636193680829074296077061776336062429124798518997543828670548859972079394904598272116284520736091825639370616686569857716341867935629894596963721021883724543975908042523021169394277282465403709371374386436944733095143413094809389793897420647228239296864831408192410123119842133327173791197916056640761539078543437962884935531842373315458269905807715075925021518592131232874387817121927373204339823464726013885990263838731487571594131235809861397444623760741008085283725955012913561285898346289618244687288153761178098518488516599735588944975652066962428737331957835247115733950120462962221962298160662393151304965244062866879592298333736540958930930634439449228292848481111903102650736993064080697304067521641920084454472055782420563453260411775321106244352464487274461870517032573066257415513744128655581426465931517586974101804746258124913768469145471209198384834064589717511749395827840815846592696615334105510981231819774174606581732870816651676757411848756603577658402489276843730948025245021058630355022564645352452717358570949935501588276911894078026117608217378806419625722349970535784411058647992763010294622292894037375798663431109174045168547540252848757174885077462838909846731380774957882801551624992795519636053476528000845532240440539740804190526880499409514662351058018001266816856367255444032630575537644118468717571590855396954905238383283383511011112186044270670737211947306465009334732300343700876586884689851931279106021511199667794940293487197919361962727246765385746777192066681079853197755442559940931926196691404940999562659371920283333041053439250126989819423808466528610984437294650404271447633015607388090193864589977729093242967161914633020396688406401661205389727116556437090475662907057043925836118026278703464378121806609730338576328315898486002426390526199603182846222712385260886661739920867094469381449662583945484117483413516301113519990526214215304232547461118867577270486474135207421816649922965738249228224062760269368503641141999606909800127518062375093385776270178401232109346521459123799730164277971143541331211663046565135446206123542079094718820872828033633448746806837192314964386105735147901920430077313528837762214647440775737999407794492064894290893733662061236538915096553859416885076161237000444030219053215734977818781890590682458000770247244268396449918751403399571927452649262919852770747281515798753648062730219595835476405857082934337887216317187027161662204719334337222132081883878352708203104206492452680598506846816096358038034599462758532989837194232952016644905177895639290596629825827178546487247197936985367671436141433650353066372847518498376050650681891974654453066526248748066171535010527461386836171259008555166814145041991770766351204362924976765919656448097285129503318629078296772043691547678020143167973748799740482302969062997621682195738424148980769358256889780153913921045065511925465680413058283411674347181552807093891421487078390895069474075388799487555497298336120945420406570963387844897024521306250090085561438074372799786212021225669293735578186861528375493743711488601599656234319149859432028313896462192024380945911438623186218099160575255133331733431787045361324229496304872954625371725533260450692968769474647307064748560801342727960982739037818144669209207783072450461641364626688862027439528240207841669691396779892090345255659240476681998041878365213390986207791629532116391343154485833362089777654815831139763442706585050006289536322900482107091930741323451529887363678095901864544774898604183539615601940299962005358048570977223841757873713701700136210532253244419243238577209430726429665107154546362155735228484430869471934365409683819789986138564596281879785611899541498921668277020470245189194514916045858630618511172954425527209041568465785622361763334215599856479366577294459258222390669603788217729078364868026892224444151912953386912360456101172280675399685497970597583594210500805047924782973513582064941128937551769429898138835535050569848110026287698089722247935474052862019250465999587440650629355265655592157462313419277491257575515492087992072910668418583376768837360812092293505209906540522241048129120239469175723299048763240001772646801247953246538802758632255399548335807725763978475024682067840084583556989348163796627848382893048646643433523383681628771647554234765691354151036286494692379956008980386627476401756704533625637957523535153917549028504592062723402251280969327977463928203348053190528412835402920639822673198377542836935237045356433568644995460395586523560884011203847125560451954376212698849315115859874859835306284019195365855519219562244531183521076520133414902372562625936024093419362580959367187041195395470386908026914289840172812914140951229384437968975636911215701454529665020398542747937245960136087577002784044401810210325278428583630747956639412634266885890882621865237212081258773220102179474054889640246720313867911166877453949267470358456548529315653137013522864617942801741093451847534406285675163649757822118748346663475036155194791209883809801345812374985178182428024963942440560510200646101707013030849255519947275324987346273856312933566879183926674924858429907891999956955595458773842784194543390172400172696888129289637776314426688695687312375286383938953053883877930268992933724128298591981463320863763319304722475478840887814529979159707725492689078315593114651381482237284872272037080870916369255802928163015125503603397770594157033388690674978755315021999957473181295476769019161179679460475364676447600184029435651902275714431707710412552040788295608029967073960941095203769693118084371040606541633114050017145188286819210999340345895452332298819439365089395588406899279874800473280081544075178244780425634846986297949174926662314793178918466635214468052019581379583633292927218452981661957314904470933071074922233837539086443254784217999000218255484293019925153187589380834339168407926424734896580445946643759773453365662673771395734286174529326140132918829136168418294296458202529107486602386461490159842811348761505380149788812803575611426786638896294841392630800725574450322398257177099770966387635494478472346576410002713482518289549482169020203590885050161291758612733639587058929184317457067232741828547963407727795875586786335047803501408051384977124004288855876798866143819242364148427579911781368967880726417444656531120800490618491401858897164446820079357370948486607110479576232307820593754835269550716039101596057003641448043505274414641795301179646691173450019700231795314098605140929901189970797601717563238760183332902959214150624074703099293947690764280741486630521499710277305552270633478966805165627373706894463480437479723821899003137994783629440354312345532688149744752826753389715897638456712993251125751388966915762653423568225851743744688135028553829565761997751310753771076064107210711103647645004427109408060254470560535800152594759899354355607992423902504406534518659701377086550134203584645476621384791366268787414848444516346355917699422838899798967087143189825119528835624070798836250597350570919049897352681829424723184478305446255518203801331942365779080043475010237296256369034896886438448267163865500507112979845589895191083454873001776994511758073260207763727365303634847301973861921321841873661841053675958559185568740569542000331877726196989386277528648740859668155998591753090669765721312572168807658485597868682751196484318784269304740550148103025059922879055668337691174146834423576118985866115556134496574407117018638847923809955401344935848477093380638028406865362802688656273635993876574155394609945455687612565088053102320089933466280325755186255426500286314032724465639706337874064092624334263786438557834899558277700963286458147243969675425456370127358954737717830448382467323353798198987868049103387148958383483329467499318409727505110129183085796673254923855273887035162213032750253533190217804112346259495844277928511632784407603857949452153073591275334289349393164625171908712625980887668181895875810898453622510063715716250763781116419521339200980588194659135859712606137658059737477963539651845087530425428753726287527668656289322421840183152444220700098312182510761559896451550639317122472044980909306416816398841429831855624408173469775834742812984081897060918913395936174304301266127185248773424670648265428164250637901713689790158116219816861733618470865055337913779941400399744702807531386202587643959055662053694942780272911372203970443726686396174232647834343501544452164043209661310863874643188176132817562067976834802993000711962724862930588499796167598598585426661977974688881084845802649015294494658094312154713286354483445210611883007252594092195640309986166264687306915181250134221241515176092147041709714583609274006411548361160604509221887010732223705375451773244999017500878025389046579620702630112890651026585045687897532380063315818445052594719920016199249487475070101482061528167358090944158054952255708513839346706177016166497335447043254562938576067055163966889628497242508838713087190815950487795900786126239558561030284911039041250142051281057018545768566518328350657697399587276197893130519434065888208098991583062948659543328171157559956808687967662958638786599938518472734463008470227233058045273275499691173579387837808719715089524463641351566647143579745342758453027023151088802975355984652152945537160148299116547499374970187080921532184807583359927215194288352415030843772190989019917827494397303263792698381970230946099553993175508277114602068514692010057237768233254496090595610359133456840242405982192077039354273337946425051587573419009208484018981830291845613914764911796390690551465375774040538715660025918378705314644412551605472645475194457887451324053008535321250875476986194084699899903358444164215897296944219122431230774934650174843133697093473764625138537086134950869301331866154167097312718086597941200397598343743884083298742932342912270553868419022347189278988336854683897762754748763069356913144221963422369819374981374035896730223414200162436749172196150981015502399375581290905193059530129663707682511555981603192589921610588605450248706957785339836414877299051768669019034625124774094627262371568661954141633074499778360480605745518379912619751194278223174879241060011506756539325816488235922147828331461173384533904073012971968262406363763102628561309837886584243896237585030930070954799551672638137677077442567068408583204769169552817604140692606419180864936109624151066415504388378161730589895076528476654597133842604076306307040948976357978508392368330327965935570479159728430957157871255021455569243766134394752226492794335053519198313448183549717030673094342919364230810317688202222583110656589263160953543367662846352908973587919781653134327670701804971355327856309710317442444493395244594396702626762502062175773528345396975173348613873950438196021411431723034471061825455055400779065264339602205970062985569155693121847362056027469865026667693993041927885530365655582877877634798735267354396561190590920885466324235670167173432475459290215955858407292255366706888145457302268135863629819344452682228457712615521475050275646656311830698131367072854966830709813512449663708283578915014025017196279471636761314094813841144770475644760040985651988243021312021191836843930070348688940808973837222053309524967359400135651039020989651724049985557064107889598479471438702203538618688657852497475697755690133143386719243223373571147525211777126877366550574983066931626694304348171797820940740840856398368538732102905148422516546497116578858231697771409801294269467459823091922308004179953598084455975680033354085678448922008184848372099136200876606227681880625566031132510818303449449094090728180886715071580644233682614070577985953951432983899018447606614834493779465633179989855622078276735654076545093402884582825282616570324503001979206862932150879142910115004858333296988537379639770680523570771354915586251014588624651966566740667973347238492469475250177353262103318129149148335626101082939338472511774535927911603163594140727033554305435054725424664488427132444945300258020053746563835457738387578225089930990502272761918243151854154634169968512082157110598743601411232170574798427767249362335117736999151285338404171862944467547155994671149950060443798612030281129195517685803768901464358221334824404285595095191150739501057232619829569007705977171237282166802533876754504483910761954347654529514897740945173498796829761876752191754861486777585571881976200793062918250999970861147996359636420799298195087680385222708891297985918149105833699958016051128053309122333140002005440232481226390046113762676571967416631295113759673286274995645530136729926317409013274528872721797271030402257131672124453228738962007457850508159061349437698582846576705324645646328701838383681690886787490676587309774916473492950330193389717927816736188872347341478648740148504461807885306862882849117832775001268307566124556874797558424201655636032098006105789346577186010444309061169589722539573801303630832735365017427176617375363513272712826074904029673774058660159634687395128906890908953956062578010566200664109645627219658060376599791354935051067466255557808739474632724054069423481886836744419847315469686168192964300001591119664593496095775400920224047690019361353750084246714540454201558747102401695559770812376796559253066019674522546429228147334642382973577447767113198707593982795260494879557047832669616381924034797711855463384906788262942123432521522305121084964443735846830028969938386465944060325621509459037938931493912260484406237516700771591235860104920098482125877450438842878770368187887159355447573767110071810965039610619096502773353232341323364339537022264351116871269641256240061435703103693283517947510008144637236761168150062628788453346657076964006105718052525981627864692575980469292665167079011633194623476429414490120738234801136658241316814597735095506610707924501404240408590239973662030071160421126738288473164627574827306946131592249919272362308416575872057340329833813569171531199767016568240310243632659806245120238010245237312789304037999996919416825029480282110287476804751025018743225421377134014816016188646402271788130108559974566965505207597649438312499713404259981948555749519271312119612612130603337189353614614009450902885302984949663226554592123693305684888824509150880996411473682706549494351626827967657278178921094426231242589981107892966572706755527628496477209654980150192813951979322586943495013122458179508770505477950686382886617587455903113435679392684060937786074139702027061343324618906212463237593961431937450884777801940254681175881707279798943740877680055845687114786278980430489045865847400075309967313106943999165918264810911545729938262944162495091297860056985211635207231616885131884895268196276594786215288254918600585572749724048714473008791047663040197515226640754020668871325738380254498956591145935305814151444338108702298220350102249035695562348656985992922981586926444276999253161499619418071922680168676440162732734430816822664388635045674408154996857061255824858162102634233921727078447528636693166876826234390057466073938278131381446647784511256553575986795633517647523458827116520148471996871403773846006440333445185134715296551246529777683491927497843674298591929121654063933451380734468652432010162123500137502466840859164171934729195751628110344187347829160435610771225196197282616665651400747607961752923569085273512927582715290083354033834241783247301997584889203651812867609335675164452723817363126455559826877501953456497453846804497052242232591872043041070701714298918673029927717348640925965604446494096208873856812604381416576777790974786009911685551381363944317237591076786534065451109893785066258035252309327030910929435932161899939879069209514167918385643851314149190992283077020293984037727959340812278213628157349919486390012021115500244787188185764546852042781950659844882069626940283983610460084876148526980163672785996458248675217935160051105683769732375976551926268179579411528435891686621272401343111996612207626231233790449527834368764581161971161982139396101593333428417654846372765963944160170014122150218877552400740044399174068929421391491117826472823797943957183271733346116959644620035564974311339080279037400281086644543586213713673336349235725957940060309548587743066948407377075183090970265413675550644459777826821481296259641409136846128933488073668003180532120592361203251717707856208808769758414110153224983080354457399198458147155708152289922668274684546777155120043503898345633824440902482806510087703612326581354543985148464131150155746921407396998930038865484074610354638114510336743231145599595867040926769210091158822232152962375273526806073217258567019754348361313855609424978746577214560618307921191422645695171063938741620717796309897058256388138596710859795766099456377359228205127585451773111408066046092128766767059081275588855252041052086785397003096268106081498053999339067268143015840935718400775367850006559698620034704433091196191867150918951123500074669927862903396228989752342618010387832955129556872724429402208893975794920982893923239312364581801886796615303603723125244981426879899240230996661418476863881756779358057485247369115754362014642003891523094277707838636947759514675808070844478938251972133056286269591963194126364886006323951077463926909930399374021775958653603263282696111695555602293538406142801095071817545243277621059026440170457263334558139467488206103654080544947274951843596461358934310555228503970812113671181499305351571840654404880214973410224852602758337194687345638859887280975522387987415774992260486077990048738927867046181037159214217549651562472390456585733768375975871812391317962360309496940728505625288574389813610563348846465463734087414315225191209211858405573498077403496596274354249795950279157179612508460749305709164754146580482886680845296939223036667070504545208936259232538785921930178015625629847618555642819251999952422959966459140305536281902769824801635600407058151855131283931511017552241683413617526473035789380260647994084497760102525674420261098459301119261300664611881109878858130063368483928055099733866143532719101535085944035544897357270946392602052937356383493946806334818267824340715534881660450712512935194138583497431704137204255994457071575653722840406517503833481680256958148646842500453147540017262136923489733572219562219188970319938027234727032916588016772398558867653542089134843245485179655112663618090582473837763057275943854192479612632824000575057952150811608790012369478138871307518500615377217039632875925837290514654066381476614504748418870283300697169922871646387744484798452481855132074330161681252205818452290210555305808775711484953295518323817316944401498754166719410219603567309293770840216765634126412549471401889583168113900114858405846291548251181858836776352876119254914726849851388591692719775369311096146279647372114962432309230048436969589920492952639903763744728541171333668274037283230712153067351147089499315087303073754819874052348180369802686629773377274387904869672764180027569037090435186472269202000178208050869941613013543043219539152230066568878877838260087735913763056510469089412293668927909662919037655971204528823687503402313242885005999153997050115776118987332387202998929798844520423937834193387019192048300470810190551745959202405403324381702376778038879926854317349267949409815449753840587855631414943651438767192756754979334228221763552486924981261449314196207630576588695513341500846679107620740493717891319080587925871006767546318755827524885304179716630204365898866382719016398806645517014396954072659618729711689960914891361361540403677048041714674135276791468492766405127729389048483958805838273734580484133928270736882626151130908207132019137325007985769806809434824587766642986561947839254083512917514162498331416818768195613314532830751856083297364655768564867762831393771580765634898637408104675785110662070660426675176357259498689860412918956053558334448880086142755015975218224156333395788657346152384492891122273701420625443583496188677724565605400911290334188813398691686747532137960555985374177118702917518643089659985575535632568264499693133742350379579029024555854191715863459626748033169259894472247545687645985630206529317097334330590413867983565326218531346102952201293432719073991886943434467621776410000992464113157692350971360219503181660160214793401361823810046782955081373465796058895808050999283054177847223285932058524937662635130269516972055749453068973675532586170212850811674733917380612879623403965429467107205447538466604147108263518038306305821354235446881436538879874425917114869954911695118987772480738785886300004539994464135106180359796488150554067279909333159621471750455293313532105090541701049530899380671405812312733457679159915058365102611607943448205138126961973814179626341142698387797908164545954551787276364774562886920441181572178616922455436630582706750810896299099718369705826262454092989611617284617185681465807612910760900988224880946093460025199390921222639216137079659198156599234687271329369464619960640680057013277167202615492940435255647578078164889134529883774048915519278333802733116648515047093063225609922289274377713706603043970482796133930796875099716060506076571054564893233556400144335572927169841617514636629059729025362997028824683992826685461658045542295664058799557758079500651525069235744882980849967828429561125639469763161262486484769225161740420831890957912508499466430864683664243171800252674719571155070863897453768238416914338630847150377641469999832583111452656011382041279787458989895244200507803945038278293795485536729219906202615823450105332385387464913020092680787104487963818265950240124544396189230132071839402488924742829965208017873185311624263484133915892435826514473799110470161620217762834110377255289474523215280758291081845888304083419867490970375577712248531186727295732175863804420502415866607487837276799727022653053803709191785316368200183216186532907576707758050226030641252651999380445024099784926860693597180774228720874086116241646963147986323270172849429713777012475199330680806489930198956619296315834809910177552321639133051090556777786446106970104438747285928828385653707840756513949694018900256133573767451041969208679660135268431515735916765153960978940959495966781244001685818423228442651897231845208202490172796064103498605726679477923569099665248031305719405920846327978823598952941914129691382917356355149228190415785447411612778365262356199944463103855479911161672769589038519977294755008523711293378036533389968883331392142581062487028083787195447273126412326767213540328214980929340577303713553591673727451881581246307828907575547552411054865848947419696121730882558453573855622933640834400810982479328030123782218450861838103459389937390574337868216862964836122771081105867883187154024359116058889266390595383020805808275041838967948938647032676106386257054696256663302983863920667069238312361732518646902517711476375431647242202118435217177251489512360449480227367604995468469962502290343761486691797019582833221562195976195569758124787730519740929123371103805743997244195915654954777933794555076717868953886251441238097356624405407120340132354861492552193125005106142490735640194223218200262858963341930013736543959476126894835882238482867959288422625472907299317105679487787697380745864139249336756983218823419477763274304842894408938063819443852931657192432227733390194318518074659382298192193387318886627814961846135906364823584974750546099797402903165440351130404466615897487971557165581591736229815678831554619875136954314662626959150466321254776022427837275383383781508221802218967831735044891975488633586163985986499259986664667952305267314535633719465407188403343507799585983665129503753105379670747381969428242875261312258563842423630150635732485029960123740824451759371504942714579973982105739612254260980798646473745920503116925292190829764589877217955400356803113405431707195287619981997694572520916597806293840024168015471252725304405622605874300311775174971174755926438937304969824472164194098354016322431324182250721773673277949917554299601914649176827438640326425381387391674827969699537097775275184738965429668901535365399839606739601563469181316355450876330783025917305926342053361242568407595397948150465400708469397346094580715390485246145142704416416766553173599322964619898232064110231316096321099385664287008311912817656610186585743169970121655168044438099885752836769893423120711477523000003790148636532484878859057981262023196251657908384074360933974143550813309372249854206753520844880972771242888893205807957402327622927254067659367214095280796122074243002205236411176056618081340571674439649783584946071765703298910341382839349446083594651023610131218871013688301194264176709418671993309895485159199707908113543128762005092437884167386853741584822833157743500173944939053811351520146408834053258337672652485049292582881471306788148721896995712776123734986220516734099722891581133474712072718602831274581130960286009795788897515397406378683704512470152317966047521267979528448123336408097633875992640477572412790341978158494835216328819527559430432136515342243063924204811141268828736735208428379285891979611761880340866697953513243284175131761146803541588462197766778513138204988767218864225672862902825576016780331060001961998087431545307578189646282299090704988758200845599555461162305797686502053104891499420912116506718941499025043448192579789626153464861355412437186407542340889308389870802521406838542864010585474862128329616408403960070988073306869747522221631441447854139130273745786357966734407718057585634919557959952550774902711294022911730752577072613152725853692038646828136835174143089006474010803439758601059399314317398698019487924787847756692760243845542117159631114421665634188658891033918317874591620988331359325708885535601568689716372246348346435034649238094324450859568227651316706410209792463471493691990126563792858207949206127517017487670406055061436372983317104387341428397893999940829727543028796541149632204463342046311393580534051657331244554923637599877766483984427049349426139055063593659117387678572047527539301823916713833794471994341834543118500532101005098586676623199432691274454226200051093094002944423616606064297027169532467649053034505701644966558533926044880485527951421503571449092580661336470325410244884622712249238597905809112889222802674074396719149132905745839602183788067662511088134396686638406030373118559230725354576252413192670492733682596219659159046847406528054604383664805511404300727173397453017620172808559617415991779983607394769239903371851069787588907742113174783986727416725655753300331930233179896593616625743808632454209522511597426020521492931090309222683981530166488646551138284652857639224171506783910672957454689846456087003030700446417952246625604915207924107915537042586880286845361781304779485826259567012139128967614859681487354728174586869430316600866755765744060312385735706504286782270274093102100196264614991356574884840964577747856997307726392765207311796858487146977070011318876712848185144351936221531375699460945258145629832234428600337159119359844185222513687753315539872922856123352427465504694702931892254786975792964357540288715029292208747414811173441070324390113313263320868034475082972244758151702940104395254871512313428022126483216456568073221529852146559426038710881048384427667683796912433307540073900119363370599584840136794983649573678573096883006244409818749422704843679211380353715028280048501155322200319350392298586507570902458341881177552868568829881073925821993480092218412769762609263029292813438779976838847265020351919489860891792545720022153007827066580729737414548286939741584750512683921119990255048596965373733789166858867681535052426320811722770697413272283649734014903763253841318603565579368422969653542650910965102684625697772038312127789996421882335185910775800684898978184171115910761850028778151435771357921116369048516002341344595540406811267776717416841306834775470925447383092657864037757966685604509417492692619603400460807164306391683323494878090141281369786201456058018141795725949397779936886926689961300126195275721952227376698115912721077768769819675208480058902530633974600008353375059610914166675410647973784721238186933394617466542036678682919358317232914395766115786358484545249588663656751054825138945008864138514910573062266390303872315521960214409617058839605930595104587755738206916982911877380248700069270926216532386048563485321695864044050737130659831501284968535529761310352543445654220292196836000614729405621020151538737915957862466253397764590709657973954615888859397911249504460188192560959328875261921813741825272364027916126040197143040197300989986729165933652373955192390890683890675411419733884870326465352912405398394461684162789922899081901248128711902207075172398502149257252813648052624351430119186649542505422194581549869777320109282696890755616321924993314084778129315021122706746005341913857447542844751006111551335284698611476489771173368365421920132012144644367898021765336366472738303437340076242297373739433011291334634993070570475243681224423989338907333595667062186620679934429014824729018915328685213184732634785571657434474979961394639368526779700676447492986721420811551534504890471912710836869591589216450287500707544617320930509811353620834975848098286197719343667444907863780530678901081652361173831938525821356129914700835570864635503021444684926995974541480549236870464831922722383718108685041043211246244744965350280036362057168417193095917355262101425289424087557805553181668525637454080979466468197183051846355437743881869283604408286490299103875717316783833640715979484733376034038533050118735754027579334960608987543946539532449966890498623429967360579939518865633512613667486065279691789160234586365595237888668651456707310412385797080390769529275483209134761949284646332951941670143815026311339173999663387169329477969562196599103450814491392814025980688720325797026623072509838962663303293046764818901684187789877532554959869578000696944034925464046113205369226234029580382587302420386138997241491703293004138061617380200139347616882971288286499433367099244134380514803240949959732342926843273643146222454666591779330656216383193883709690969029814548790789797237523679369001842461604152742195824084582136816985951940296094555360343319534668735411574951839097032141720592117461577871433998072350427042412534808802617612946182697466658040458976066807422572821634541393902847264591437911668953368572178121624035914623421315255578328949113307592986862859829924013964883900383888595146274578635519122034503938422405103008428735718582644406474128336212039045888715107652177606424622911972858372792285431980677796669343717179011938988616410934509539520739236921998319768751732713204583547121273627023850558288133760865101163302025935181953130319311512575383559000452140170549419008861084787648694919498124112825015449333961802737669128499749913079162138481028369296294470119979143187839874761714709835519893986000791318798277919680338701346580885464736771269380992264978698465059721244242643820902018956304478088131135407068193230060249507673152618034012307823826451101188053038045385778437971285356979869162309230893334788920409182766240849460422445892229949555320961963682614821491861816639056305817427123966636071802648930606910301984816697077523301576371304050137015632762193496508776091664319165478633771364560804108685846548464530999974358094214956079543605356813846232613234426695777450180519011649174305009218019331835397096731223906666339255532885446953636781021761709985026996752527197314274508286781115508766140640608144253115269223767814264755347912406790469814220438945058122083898554532391199740722625435699039762927391294219697457994643589304143864182680756939586648896180892528430438036471067031125878848474427970035100798167794549911560667697778921459316180183643083717174651437111874908387647474617902361306882089312548885547795359483517101520643342255472209198359436408451037500002565538460841096144207908456201476515413444640877334382510247353275747950007012227104465849503808275959262043234284279935707127890932257238466673033530791189960174199443548724740291511577615996304077439677248330296249568881285604387831725296959358931733911582594183213071137121614621300219778373653717460019983356226918227544696836262377593174274849738227198734868048145670251751081460386180898387401199195157441607580908734358142505089070558186489862761169874942709659418705851420132571808960802100055812509761750860832873349517766840633984222441398485206213324146737198643096123975536459395440681821910896521543338990968456627181127022712909902168654253233610645204104441696313289379660780014059385377209763600545906174477513230982367296294236912370248069437433391154223798508372207635481449861385518763772430443479484804256096661406196137744634634931893159583501044878669655437602615997434823275191012226169689403298908304073115097920921499763501413084937130535994919907449122737522990307037294650522777644982303307073235205175432381119709125405633748950345963584125368934663475180328227944240121879347322226409168936702372709878175315153944838234366617140951478421469890041344858265956319663258900987562982353170341726233653868438696237803283646737060126315993864031459825092895285197132493068300624390725707819163112592413062075292813444642905723865592675235212736047823796996395429625494502030644013658957968474722590353860404090862406053685977041955856234880709800984260480661812562573570042862751037258145471406985219993083846832137589943361909334854208992297310846762173041762015594932332332465280972854690119439702193308191963751372967047475343854850113228951729721886053311111137910402477510675649666837446583359127168360033374568375730807901336632214813564366003688035005466014479808889569388683206194334835142522114487770518108904386125973448589080845747358642323469296978841315069252948075464158335900956937889473918761593398600027453176748387899413877601036662012340239823140805306225636534258666178946853166055083153423689220993870477548773197557440698835725381504825485355825850826135716019494317929634671482954599464833221858989505027735429232977527559133266553293774083900795616940603835176451142955859796222635552182023834684606042779880634592839976050841690228007274450831961951622694313191339259711662444311195685008003653676233745108066918171958407863544738046770357435772190480406397693742145692472178126315416238931986086983891692657726525447036280308243274823188681338646519855890610206642881868996851944661523600662228728330704867308233169982092299742775231478048312481201584793695128036558766503623712211436790850522653993294187743286356343147218371441179511592159684739501842758673461705060713010415397357159310950669194538088046053821560696967248190848766439910097423886788397977980278392387578418364649865297452743513899172124159130115291557587881929901314539346857122831457058310364720232287867293848485712211240314147305260790877144134134183207234186461854722558137575371758323162533199552073548203947626885899651540210709183785516007687349127034631065636273503317836033536342732661277651707159412325792832018473291933974050714406464522835153473111677507960421507126792705225062381012384575025171195566737149658849286271244610031639788497119562995747878329873035288472541958497737965097650756298799809490688471481471152452437258937860390793554123619433115432124065906473808506933952683707308162526667278712137773174032117112726055745042976375599728842852864641688679172111773544117939353091012899607300022914157302966990037846495697449315395122646830748306501927758057086746971121080759525366479225462859324173248786020066548798510457964371038277615210410092087669814596044133753205384016755895630477276959322101074367537335914570164983079819041978340480395929163424809569275150228475442869484339732180953434158892443887461060698837792644168080377990790492785755150020010097607972637721314032794728150315771466624876811874714301100681253836002036317563214057930506338785358636994506086266102159111791800094304992582652575885942777829207907874742871377008739766717803533301625051738018274016921399871751263228268322234347617210979401528053214285729774806508273469599147080697087963942565714796401947224498121989841739076725787943705512447772561991569195396424205439340332568200664614919128518212763943522932976438929797693520918671603937903739324465326499569298396801936147476329216447129822928723553625937761800278038653303241639884445343080137623698492002217607965738543390574505585722902050455025782852965599257838849062629360486281490472866565664865975023474395196499154981508032551990118393045622860410802854909091607309853519855944094678523005255253464574193234950790539275888262368710557959317192182890306498560827178566692706619552987055850823818726623749108651049613974475967289256261927928715948537704882985279804923271259753533499525539471073775398142234692036144621876057912606170054660898680185517746675938658129644931386000540206350825243061773211784690498306679690291159645811201236467807447653077813017851612097024367929635719306134470875965695329160771171020778210153409537336151915549495096509724401879164911416514754518634631267774182314966480897036554041512899463538282702511478352333236639280474972902301578576907778825999512696915756118125017284806032050945689406580093058044284572890372116004457595816258370556149954465471961970683403481751380067885540917914915653176458796072224792585897182617316077331919743073948428370334371705777771996284811474714582056970884975860521915513096052031564336460027982962688172731986634594292995356544769562455068023925641612905244920420062498078470208924583247729778962320088084807329916262143023583208400935274084567438086985122640571019226346127784822452842007176831971728778481425001122564902555961170336105325119683055846728569377636706287760776837690171612199570290208232983567099496986527133384390414312722156120312383741265030132971237989674826931557202480608084662051758193368333565929829469195037668523715581700949986238850378230715440619511208549415917895956019102700628915996380651844727189482433835802801475252070535982398176688323586736512015050146058874092186907417556363607862786678125093569043948336354484656094329166428029746246060745201269950447469326886228961872597444879916633200330080156939033208528749553751799295071690892382768178477297778592219225914886390049158224203612012281444065418539947473116325412933973613912685017985315298131171513385775170666287301098359977704132597432220073830576020092270223063176296185693965073442191644400503099461345064236176662821277066954726189185809897109017932790746437539212959398086660530755637957881200832853326924509884168648590445022059401111388038889025420390579732592931924319024833239231535222300622353896882465276431961110955347279985706546398714884564758909102293174425973791435136401032165496822940146026498540246419767303482257318264637883597216006894223158379674045376395151514162032792679023342482692815862668560604169881844276198129408640118840108101945324389649591959394845655821729792405278899033725461233009319414403372461304320483395275640499749394526272434430868463481350700024696695983723467683193460759659134604840989670119676148768484491699590158056009442017280543366737739863423935947743321493171500514759023614119139626954140392287168777623065503741986082342688804234182184715470317267830593488061538432925341177635511288801002284364819625600537165808787708938487422378931726666288686268100054732128051473295426443957386265696874925092719072131406739483560791653569386287260433249512178861870733304304614355100843887930136082924509078368290473755316917346883365723835341587471557212668301971894291066348978131670172791596776570362514836528112337509170247019938139326846262873824593756768688757045675482846928987616484593080000830394285345392516206148886244922897736118402171728296159907769126922416704424347738470369880191690726253026568591051635827375966339137084192880528640750409050918782530466311389304114494969345379271428607771242315165142697278625703735820566786024570320651389682889798295981778655597397215499928644873273793668801426076865384729720094751656240540410160273528564043658557174044365585460250437909810052051749554410218852909219206861891692971311817154055535171832725282163922340911303162631257122268590647719982877467951702736522837104191319158982353506297766980563120458463412974828817601618173582782811502795635358388313360122491376456597057041572796516061001226823254238678473232048429696160976999382055295976467821308008815916635786226598104388151878531096984717736605851966869639335288082162763650156087764943650901685590805641397786232797609317455602365869077331507913043736454815783332791702198652936033829927388723755403833800388234251156648387383734682836289022853365601887196652626272823344005139692909978760314643053592135638482573076427153150098374736600214640542244202078827151024254692536979773813481380689650846607018393985055143017926152211757785850898802709920564613137868128099968609308981751839795953924905205480676180160603628477757087868366672565685517459095144533057078468340935276783061550860012965050370950458204758711601714595799413277693215575339090461670502043119155527214781784906933447564430377946225236230461347157722465970121647588218605856360385777364928947260271603337346549668284478271296140938306225216800586830225136473656597949110803125228087610154326789527893215049521373419933373366837117882743353259115381945227482815091723187449683923492968173899212345868042062599525482096573871910949909434575642890670345541755369129289477359570589075965806267379437819565734957031451890244473169905579370816303149356294262395494605091183920704711156156804950120147964120895670548878403802731436644381099154962176668966652916785177120380179309738306255709447584518127485571602358127949315690582653502590096472671444521814203768272332793727174934107235368980979219459726241363023462956761023178130116553773698031019644352215575083379766769114802982866990840472147767872730579448634637712311373257454766357652570202017398219878990210249347357438503903645084921438719802411641784255086539763536691855730974057929431773217800550485141821518345776553350590192509160734949340358420233445932361084052835856946392721305685909053133425753375066925707423340656616182912027167137751428380638639095916094312129450463793091422849326881685613208745500310046347790382744311062093860686059494237792033677471203147089272213357019377861805117797866513444859700106988865143324153913383652878898138513078397637827344020320760841923444433263244403926391863247442476412266885862318960264756511779721517288313468034157438177425292900625623740923372106322909731684730910503662377297202352184931045257798353881297955037236668266949917938298753163041587329831381814641282616939620774306505178323472749559150266073913303055320921337687693295094242077899836818486587166318111887733916648966880586963935483866747716844047852858041381232535548360627521569611240004588182908852420556244477005673382635887586910082389576428563875135989140897938487668602413401971276236952458435007249113589662657740991277923717548401846442885690779239155829436631245021485052801060089001946821076087211304923981306071165427333109799413555712039435725621851719718784739225063584547765919742225481492734270441123759216683284713216452796683954949280548010634734664986946930560913947879284292387029879541196658658394259411306655351126376156238849119930399930904417242196747081540582321585900967249269566527751260386933549997496252544847455625668122382468924750547038557244753043297500505568019051322386450378329787234802377805604134302208269123492526679277228216515091889032045233449916378467324389264652447053942897396538250115432139894465051151246123228899725386343958861773766441249591474489727834167917482566061236719783116635810494789725468548488658584774481002911881780811617904377165015983500536466101216731236413456011835494158618113266660925558346425734449067789682225220425189948025646865294450996188112908167051668889780224904485206989459990582339436579305101011248277190664964434328193536551753332108828892599910620316785220439291210922580172505371499475211126433784784231230048155769862954493502423406879046419598557183984148851103847900820636519483203773221032890382767005502146622585155962235068131441260926917305742736542661451716180427717746209753497134750192151250089573974055453773596947429240214943609361655310242714040219546518423544491484726623618013097385350158641132399283916531953515666410615307086072410150430993346114785278956700826644831546398799288753249138617256912118070651911879076823167335679607870030102268788330614019704137502610777042262565815327148504689121606455671698849366001640087782130139571299716012579833560585190540725962598170706612192546588802385261987928028526876746516878276614388549582678738813384229405304340805764255554541980050984100095303336244180042309651054255794363556304135895384404238901737323042977531911337579716172653282374529057759275407350969531290151230902942710131755124208959703304843531262603260542866483943514709576493461040165027133184939569543378859424592206607401051979676676482861653318828518956326664382670698589172569147965658391409917307863748136137511504153862306919939992546200422477763636195978415047454114148802210140352309660561682624991032945142794397883472666197472290847444435850963867418879815366987201494554949576553030094862886927189067554139785151711388330862462560767938192921203283246735557930863920811627114093663120511939843780587294227416674350336978340058828938000385553886290504470176679137165764678641907935017441679997965190890073121764971394566852731230159534630575267313140645235946254061829531211549617775630877119035734468820444090873929965685579906486832343734605524574251524481396297725979233317098424096016066501887063430962232987274015112325402495491865560766833891801668506428054230616289316512988142283532980362321280141210645756990945956356655622868979644003434206992583622612358354872846178277105669770303408023664850387408480369222612726679844423727238656675267935440930251216138952300607886283356951209569723189875558257997195757760145122418467769634525261672950292367378217995413041225498880639115168235433035146990543669545710031491416038236050826354460337616418562833937229700532519920549562812045680739997505963038130873483129920283826450590359911033100007204854286205229477310339016968161921277177989925328171237463149685552623752547225631994574162575957547200580949572335245155494769208599132025785923314700406029928082642747408852835878674742398814813939630659024264062643243229152057398168624317747505275556846562178888905391056049442119349694325552285635575790149659451098115538580404657379035456741810848171858880497072723946336095266457343478739080323978377779598592476387160097520850689105975211119819663459518489409000803701569474828356461550970203369246702800251516478941651778157194611601077914462860186044027338741532822199742780213909831631427515300996256480314922495054892031932901709803509823440575232416955564372343770342222469292498849635146905548454739393167214481238464221322784956120807937021538115238727835618697386498649475526454284568615794006232991582806761919585462627134464049554534507364298864568021376329307206769311307119525348597472165261413346400731640257242750977927846695063230514668558885491648400818409216274906873351583686236728019992095805754652840419816074214719962802562228258330120645828250558169010733500931288287205566270018466488501822939343744072150222068142428990013628094617245855009403208863970296588715264760167525052532627282507320084169516623512165452065016116358879805422123531814794961353979225008011216196864015367687125794736488194476281098670083275586823153425345967634917777146665364231646692366896874520505344664116190586253761668314306722984766272140951165887830874941175391922738360743243685351861171404304938123343715865342791597932122502871254089670003981330675091364116186030388173254182839088822315433334098794391541758065168027704942649326356686038525650717369239492087063644659884240770397959863833380617837951476105559565577257801251138269450530551054474128381818571960097079858168256272575262563661371432928956040663691387927639694319554463715599783255977698534002440964293827683039719372857199401595525336310732862032255478177431236359060460052642478948164050781942802320038335149635241528742803239031447663234179936238453138020353096712066531309985827514251884000317934771449673887678139355696851291864449068351709295689403112419402580386405586863937611612651862417000725409134412527103517947205966434369014889706744130770146844253378978156947502689881921197418845800724874889330761223078352166530887030589609758485804605296162554621653275717946007287997160000040072286856932319445098421126484069578747832094099202283107357967782744391188161050192208692382142231800099191053187854568111619612288615799380361870546291635487059705638191501463800865919329376293746726974004145193736657387307360163890028873197631832129581327844460561005486014775728648606814894202469062690445028276934465412844270129120655381458526253689759520188191643746280479353821640648137085742668515565868069137710828286956115649727388839373951981846608470973744686100537793736741704233767084087666625332838614547748661705388069738119525679497909356234496216106261046559267735268700082811457205506847819523216948300008909244673496068290965120509959780611979198000076564712368151309164575351965632499358478599632364508056342986639230766573453127374546526468616940089755310649875832404280535253701978180469169059674904191500348483729047696531770366742957198528468151169427281683856603231436710381600607628372460738711018268975969194495367268942543771820614386898564135622544186898565012898968360698072841465255761457871520913842621459244839131105401291747858764082157418563921856524766025718103371666457611810043392850936643196819458181195322537114656432868700813196040483047893441235054976100863006034577318809402704157192956396241035520128511924380019001038240818202451988640683855154906311795491202930844259478877615977330368965832591440747766505701801342960775032425613826783200575737589331881115355032122264489658061349010555715200852148891884053744303588927410706571201107236617674438223769243248344025360398240067475449593815754696598721487997944589046211711208444833763827855572746162822470992094227283831779023369847863891262482583383734226316093869394565804087070338544496215334133989195647197392584335508762972929257877179081443492360008008263970287683514215539525711629559080102034132598143086579718269284274038231134626020610438337345100684268318372174157988724975779697988422282847960449115611311223832645010134990688073417026720182096455091588059247365730791341765069807015997877536618089413762844113857576100248898556903524378314940045534814135155021007080495966255667900921750301991334218756144975887565024247266694284471694225858438214995562062505970226604439980823037052636774835104053048147833038505160181166433286823026863444810561703995453170572093418873414020957014065264194645145301403795601257706946281197581941849597276539499818908500090765643486916693330450743098185277025849945815820534507718452461301333988442065874879439407357993530132096994112959473794429239789946997711687622286132427827307585284195778345097473307511900140436376625446351249192667279265039201990384923540215838237692498664900825331268475088018853882869498732408956026528925295880154868302647706062446208738298725317498842062298262271298965608078177719086094287062757745309200405618262438008951230389961490011195742535305888679186061392540902985952109948207047530103103788239442631843821276741456046934264983934286732818977544818437952755148808431782535587960470450535598220150653479839163350076099215013460804120050683289031761615883504354098968461092348581154129444184243228627257965964916256655476705856331615841910374288652321669426036688568199936243618104461592386182116765537538709566207871975325392944311375378890665705448442018399351613018502618369565365331478631006119171767842488469310615791246712134051079344602671394547669366359552019508291092525185953324849021202679964888396254515570980033825317881983939250539976637785140878650826719151464843220087282472342704770477068829214582131648638798547828978818742634419958524693339626143614140171715673428242762050582217760483625045103103657672859300685011964330759555474309100155883649956552245859792036394143465743892160642052959791221303030663397510249058075741963053445306400611118869518382300978721932893503846066351733753747574492951011579567383254318798275106104177436011241082931420114199451880953421162699440472456538198414224493520766419181733956787171149915778826533684218486497379967440636692548846160471577865530739329455424598680387478238073657703154166762474237068138443100136727157289439588918454928827104915186490127135906737716078143470226958946543229247219537435636422597786770012206722480545381763064605988170640304275510041330899931989116328396899131174228754638727389277534146221868367158799944389597853618292266631653924602561644272394629964004420223456416527595788396946384155963243063747305832267351082213358098920241037770212188805515879382891418826583670914448606421973682273746934644460790393824395989976956766334149206125027582000546337878948719967734133532056659446633650936480156770084438339241567527026286766743321359964279237289522661210473868953078510972935788900875939861409795552448153025859187501510302334479402829350891885419457736829231370277626504099008176625535466433085733930954283550104782835561235930176922829900322768738837198534343774636386352564569886703552549327228024292266190352117523754721465826080524241105816188407027685453698835959964508295593819183836444488161935775111329986598819735117757186701065037987672118739558066032073383300103113011704525368115949946359132613871904119769712584591468086960701740216879409382496745266141653239006273632762932850396848902650153325504407849275963551444026973496221055093887017934813895195275583942562143284932181459292544901817258642673072720980944809156602457589125846492895162969407272598881064155343795402763951174042753045324238811725905515809195130823869820943451515581123317333152771651829986983030936187338524027231028198390868328222430898820077546976045286114739586173052228498684049107043581461835212873306727356233416308626469491632453454696141687567909879119390968359513339369356348395798100426550356052630699923746872699207654200741176839534251470715552284127785112357262085707713099441141639412887420000149408468213509213025280940498318633498271873258592474701007702428356820671722219662390330215746798449912278184315238138550151749523027463031082525484360325349926417834124344819883708404405230606614435838846921835887925323000563504535829869979246968157206708025202296289882795859600357482070972093153921719717118491031247977127237631355024785760688158029948980429728424731527564437789111886723596879582240219121884525211956685500519840477796582316538659960821515962860565422454493024207347268471409341404332625117642292599502721290863513766922588408236333305891280897787169378929102199026990843346566741002250639922484035920320395113986050334765382963037824687909997139521930111553159827198775845374634235360757671993940705916744750505318925021554079958353910888832652241944060979431445765070934248756675395962749423949543781731147695010031780519708270931142613824027421181647564627432004975419048433192741295454527386802320880274402266063778522382560230636884070257664465797173482263048288719362884087565005551846754549898493752103410363612291368976871503595537277601497589745228756970027574664144231002443132877780029943525776488348679355634667520398985373021675195289105654631839090815049731720698379750158434777546137826486074693983483235512162274343076085881958262678893565042838491968352661561720334291526733638014016939057041152360728927154370911155474310693147648692235833500648250512181429815553408644193497881349097992542074455332947670207684817441498725950168482480566305733483795074562599196923011982892050758204585263975455884954661398348714007274012069432307503222545649598177076532753458971992766389426551749790100773712197605637642479261864411876995027873099758203667799858487953968124330317704663383105209159799836336066244466373047076813140058416577740766026459016537672806070563068436915147769482595021877237813033188205092420195565838251960414785264153310105834721315607918457309865613081241676894691558782728820607980922511053727754580812020081713347974525058582519828451152607725337128242051687914061598424654537394694766544443390512789940255357913871063620694262925246744374707196692254894502237326661670515803523716209853426958655509678352911098397436447646643995045388465025058346589715362447178645591932871756428830936175022175228987824710575145178779509039155921056973690259874053763886382521107587159194857556209634103616393754474532312435483034846806970951253061842367512162866433407824666728922101294552090060643442271919542818455702178316507434033546614809933794601844910301605591757712572658534298040452930718161996974947798596550540238427889443933255341934464033999503147097215857381668874261786402980786924138303136010839029120062853250875767356375857070347567923253178327725188152387372251316420014814438026034513947083134481594104193512558372210143799016693477975623634614783773391887662300992832107846849365773538217436879695932940640443862646704400964031816688793497221829160562667674310181019899150943900908741103325125250906175008806021610733245798808503179627988534695436872367382140711049622665329901130615100309029882137860915157841880367465307564892280314996896186036570301775253463240117806403619739439630089664444361163653044571963659644286357081424055212293788631676444617783076483928094688615947053219858885156065025930766929500145856790571816671816632815629744617619317348565019293504483129522226783984697103403951770985344402044333172352060415737679148654981959447814054790732534246922107929265305285741165391257017917247245800479284011309059446513521671175268476675761025086631384020778222087508306133086316714213910892026898780137832632904745174385538842825511245959308097147655527018257917635075383166750240566674729675976830506575083094035820010141184310737719292791344350631553583854305786039380964954305894557597864779885914060649929703064318467591705155672952775399760176694346186092440359088088282553697996704118280166616556942881686481740758883824300062324798346564157285439696139130957332272009969085645350383170477130840142403768903412665264236988349774090795277714987780521726110027101599278125834743716017685317962571259439896419590787746888581753015113180250619654278046352838380520530246647798965486485438661927718765133116086090678612149145742319840760734714902734777635968931540976620838583407875958664478982075844828616640248191951138272818129816843495233686644086623559899402876606595105718151334376259294057193265820131800321019662427053704352471148783304231434543681935402323844276874952183641258602473361483011196642687199490290382713955022486332050199143199520535942278694895891204847396028535073774180058917381363057203172022274158429233808053346782559685790076633013077081221966485940642100021401006268510968419436230267166760425959372979194893020984043977710484474601887794136915631169195561602549220276769979118824271025239698870109283650644650304254165841179349363135026093628687849371998611300725780212398369381271280106044601413767951620068819400142283744094488111604768420391056035550944560801391002633793077109384731379209932039498307091590793365625913013547202664355848156151034830306568083935783026510332490432220673856428241817249068955814687186218806701922826670007049287694292405250853844589193891133461821883466922048242364737392559015870092571675904073081789124973423693197584862168910848390634283197547559593314639698583160047211956383876502692082875695976141453928342349879305026716194511635267697356066416517282212128915765672368315307498189263992088931130995413331111481304166618073055568682566319877220125243754292509133449662483344216487193597468455392656006397586566652299377687953944304984635528705466362158215382052951619076769321020991782490662045418797096818770079555528721452775621968964517609871758590113148511780779294953167834123820779355199460075674702989230265709911074435748290749730325855578135835723365538755830019874992454651976631292329284718480018716230534678040015630002929306864835414338172964366918880140229487045917795567162373321843701793913771426710019649346317571585781614736166225239387441639713560772607481178810570848267139956532637434429534023829774586888166168963905565864117142818218417741187829165905433567153724946769917467752776709419622914075669785537079926253541706242172315950100388987141694581090791967772217654203310132453331125462639030028031416848878993297825441281892692853075362251852422997327783645482557508291089258609259284927276443320142569992334761484329324542407054103713030036219891159338917188543505475461721301043336092328124987538577767053599003789994040862662630601788135539874577463697910531777805336888138934457069275451827617212456562671967408582765531481006134390645031465433170438217103868041887682180544850360268229726408451063660996245674684552629765885467773490209831664573924997077257776058919219572841581675526477631092298968773901842548940030031506539516545830291726997467098850082284746189522064505431238543118642321651349117280191499746762282256990080507433862729349217146112884257085086191674390905057763670148542875829711529963049803144997129397992021773977607371942367443692346404966841407654203876865469904406297981439815378671987385105791498531418822723420888601678848464606000641248132115205389551059034179332262685021513181227505322035721273117183103508387005539486351192119718054851562840334411339211036574650267401993369191617146118945289871014484022623415341946553998444069274240088669918516963476520648462810940058547872777037014366909352461331880380695886641732355957766115221542134514398737455842988969550106574147407778572777988949624570384350733910028812634394184125211190203803617833520695119189599507421288843150169090811433707630923315054608126758766468172906614498052845410905087037442034784429494674907844826172281120204874866751504617099514997054377497725559012041871425130527039324009555297311985369556673057851665212240079536715634622577153463294183387637589889214448607016400722712613845669807260616862288277772163643540908008507258203561720417545944825549822433760604991382052619949686261078794059757282286766042560120539459060627212419003655085527611162575640506242532639274979643497461035329523287426104800342707160268784997058241170683125051158407966257279647585162664192500480449170530050151086355547404055497542116659268831853576257688306384669130047787387086739885488860421192138694795886521201967428443028869426839797192627882349540179409449700060158063424515671243240381712302455819209256609865901654974096613798326368922171130224783180838872643775750809668245047455655464798068095692677286619308801060627251687210646297416032545601206062738637029023695604296361494310548489119078346642847930689415990634449589952827930787459547697108426855909796226245747982014911207237251821683347458215141458473343381761587842530317354343577371365971203946048740083485601027678714644002040619553627254106680172098946722494699728824313588072032718996828098570345330944353025388620650844037429906251831307977232997794190973527187776744192626454663448551835778343415858025685461141676342077240018762228128767491551353095370131633449405344386179417342072521881144514087112954837543505524278650020035544763906372134526601047003372694023806954068795649609959887312502983280364791276155321136976194670386584841119543204272215330362360407118107426125570491537294928399033709540103679932666518509437359421227121765120409258733594462544650020272657127161102295282457941633291429009175720561879003046994551332825490336994326151992545673405545891612518370772124899481375609009680826604775717062874652309605984068141294766601361873829091431135238110091455032161460499676990891226408938147105183993506199290409471241687859612695972907007271607174461145139270704727223908355968008114688115154599718395972158303048735321675164725952385869641576729619683595410260479038495549220676455425342549173915278717900300716971812708455183188280066545402185984072137471348312417244071942704222931989681560942410527293045540000996423835887333806269445364660257721288946580864496651064908207194879233642727646943450685574489328335612336819331965105106213153107916938600398523090084968877054001851519481082113822236980059498929497247213554408170442090702312672817559897338573166452527758947769461859175666401993845911174074361630055285300300208290131450089344414777060661041708264906837998945987232351072018957839915486215904599846085343259280150008044963186935736958499875741986884393180485614766737208170337836419444121007116808847842554355850176578204851640896313229121684951545390126359210025769792371684147642971824025433234938064442225756458609465130312498036163468272391613595676723354474800653955236999684428095004201846011730884141140225761848447494933910128129057155654814749961537335912330218152495587151307232905982007242466518428505592215653828320374716354148168008091845057134043520186518693525379669495967925990558259448506016156833774645633109704636372751429475174074077604486315135266616714352584933042186789806678013511409957710722444589872018566015564907102205990981134440724932435148893167135190029209673255956085731111588445634751777974158648917305978938711549040769643250704792002041982284719719703529563612246146272443299032991954512370965084085857731658558375990928101477783647813720298064787731156312289436158695189187571314103717534213156469320550374396062414771783070455535659687163226175305951135586873028904182252887144238380262156409997496353051940487226170475364793351097069994121845138447078592218239984871149778138856666972794127849643930795789775973656949936656060424989342577227638949315853872087022893079405267634937766072128865176935531466022668259147410962029122660741674760589979649446118861365154437222521445279533087895988066216387817512941723913240669211875042002942002585911988766826831619177174462325135301553972977677125091298967840920518561790689635812949857176928464170323828719125160406629450737052554027952715725289315507662667240134899145274432657535675667863963721218692980106074753647591638728538432054390798693436946659346470096914451679953261437925288529251047695945714453973982120316011699334269445112457989560561430149240878167262707854165580167607856634416406138090982160502083539806099457344212333099614878695360182955047949861309742847774647917809289520913158179007222968207827285382703893534568758180440904580392584602844152124998054016741459140207333785159901639020430673509898119100843089912773444094750861941513626416608011807689790502653293476828313948601898787493831443120919493862231526517810671374659280317234355367520007979069681980034282927010531995958203549873987179006355267531596342509058961433654874437220529361823176970710524485147393776427543301514748348859627829862238116844549921490310168282095031260079543343259362986818900223446192904362221777775133396862344762860423121985663349224048924509799709876595179526569127334227877721526121208869512347038873131583393353312819463404239003515571317041067957578869356205552619462820292058596430893845485088099133488674366981201696767301498492898356948836501647113823264087526683206722388746335243237464658688680897622456256507285812236457249928236634801821561861891582612518184764636124626645195769319191281627184838628243519112944581411848300760087421121992630138243043571987673621434361448246259148506755789724175251110896099374792048287908255865832530230324060652690784232977678094274668525874685532696155587331587778218224313396626932071862684917028457188407404791268426878413377267037907461408695498846049034328826685023611461804358423404579139709785972782636694524080596838715331117671330240844247551448514489373051398356841760696986767005946207084614577560977630537763488779581973412129214648866289568705959998221813807845601996996064395961268266304243048807669032595271811865808060373604177820972643992889764033555034076808848954702205861528055318986169678189547419889664120265699455051235663402841395956376129641190477838473619843007621979735601490968071163359107716533890335236265477908296197385442068261223313513938118513518852565688217635168816944200055068289137078822413802585426007106007899407755629500292213080664627519552371833325348856366698423500151264565785973365996282719714672155608622013623308199422035161415005645319188639581785424540846681326090369660520046049856718969628986441957085142332954426083641927497900174574233879607809463880449670718190219463726006598788904215344803134215796824318052942373625640717086379305426253022208203276240173371086089529447056930324839604961040556409665919265443245813742290932806043325197542118396014314310669464691716488098809308387189113640520361173802476147258423285798075564781504103679540372745798578748850833145737878367305449035715961770389807394593391483602339305513500499678676852670176200335077596192943061294955339620849026011981348881296644684300365678874909784256175457390326160064138905571700819084838432222984077482279391419438854525268498388195123882898339325435679784099814283560740738961455169595602468417642018517365099477712613974700589459408155899653531483874311482102172391044646784614578996300259055980597229407295452773807274063369173217181059091850679923589365701256598846851516517356332377785498787049244498828661947047476395622555681277540033333318029225196489185393971416256823829311405854983780278009347587334856978724084590827381759183564045925048712492360894094147336240560466445127125498015453362897620203271207105930363605102117108965312894206256064936355089238214214273795889646800835373600487536870640522514338617836204263555465393968523787153959253619867774329134093098256039906792124893339928169094640034006039815938157135556006213534713617592807946764987084174591879164905332593646858636355595984146321495508136664795594669022224943124446230967232557126693714166126626890638610521800035512906797245517290304647300841254744268748408779711515147223727608028714823523152847332768142943264390899689258543613521876203005906280241105305756888254606396136174199471472490801683253393672397551466530700682152426465201993042728400822435596966654316382517452886291782980541118201069106774374742655117128470448762349091893435039874244285740406633423169967295267508855777573050956686145380052063730447853262445117848925192040517188878761878752028405760686120368328486599816408432998616401260344697547759049788438807206802001697114162106186597130595942812024473680815484695050742547673583365502556332564049876944308326623442786367953328111998553993392510841912801458551818594494044450949993894046561379006868159341195700533897263044832400578006185642075135126377003924028507672911225264764048075052822296761206161477499036622282477115100955966925179933290254306539759574908991355155462760028192281043782696708543222720675628086267606489895574967133135551088882393137995484340384163272475653001113957541320523372728838756285195894140140212659343337071015661437175652984979494897841490341695938770951873402254343757377286500930810340273910930194078525531974621195954529052859772871415918325991514362065485537233657045782971008286576202758431329405953671692047882640872431969626529790086183393326070616631316174325517961181480120601264754524796599199675882624751701059339105876286914518951737398247467135746346390432635180021796171061649799455046261060709724224783409675032955024874988122450988603243961719619440323448134292709007894845986502376947232091210050302001697051823385463920516533284307796817743770104618254456026416200715344815685159074918095482096846506693907942204957889405562207696267536917671634885662341277233460426793016006031937711718832828006281061430782993137001355727533689962562570910392784230876624222539155003157631874143755925555525369965674306551900653383569433679469058865034357937704319217468772653773586625030262541936205048066663899947805789469757086496198375416135871005096599675310437073103434023012412527611923672961172184442172914127424286479883542685329188610565077664959541858486204976319040517510769820961713891399463233992564468669564058610475176530431677224159699884128872851700380210771441118058921473601621567214643093363068094695315952935584445564849372220106334629038415800005928239776862196335407397906874222271124631942063589939704898059088300063235682711190955791078626082692137754313066981889591107367365526418715497933366327000450820422394816040714206214063825766450090469804949335198357668908077985824984587629077688178080814208745287460912884013033678030053378631559201696101289891696880345543819463552373591333877718945095230261466940150406192059089578102582953892029836258965488291694907134162043530750079998642792258115448031547793896968114269417512019557541572839066077546177736483428851315045881760129931950545250350194815530353112005906680730421098817185813072868019218411528933196060744357070865775138639767471682988763214961023328044373554611209353764386775395872419386450693251828421724877312398203263923034999933744689597826490286593688684965435928049439135172722667782407047275184783369613113393263956395870267622632629018793604983669924076517736759511515068650688062810462383080483374448225269171648693915201550341364278895508909592647294247909824601110344189565886228536876495952817382292660392798428948452898153654156299665990733578579458869150066121478543522422556768996043114907161972026504038488283150762626374787015854994134723115047306728641934984770473667241595913366024093508441391504729099072770797797392108441423412796232919149980067741119722791695902450486927541605625366049967495729073051944685469155332426154516159751180554867636980849358221814873062803737838947846930343517667685007737879481236774945714327863100930093174435049515414683823479343146905536215485394866134186286909587887726250759010905192290457009032296551554101005239668867679311375873972802216404922359426687315429379924628418277965041866302505099565813861256152302053453168708643556537502174849366458189126776514946067969999382491834840938307561598157474188269661092281989210515339902467020730304656369050139090217239138597867669397401444620696686298566034798883586286615141537341503246496050555446678134020245995516483821289045908278157142420347437402022585228170613950490311517998662324043714863897642615619130691448758163053037487593227152274078703968771256162902156962546467443844706937410216092182652213336863449818039195848083031675322380763488724434405147461058272569502031806601890181869630352371431459557080107867379480451303245566478588288292868944376087917480313949603981598656681041978694200605874763224957737670389690976707332670272513077167105142884519701998181033618320548902141261387464193822563930449872946826840697954713125813841667979548643396952951505487163412417784663923882503831877612375063049915840358796090475027015208106243605999139724436104645636551218499419021416619814926300992670040596149791602660953309054566240688415948632908119382326203831673791099904729509567455327777153842940891583736093516515896290412219888515794499761414260514580313790714960035060641952597767594635100367440878885658945524920249137189458002936467458813836393885487351645060920012867310847528972104850687328050661300290499375069544668508436925353591944876317965028087715148198185206354680608504270199103516566126503079705441363647023163848178552511936772328918336732019088076584429687277722453583860781073674057518195673151126334698946677243128564282591890371873512555704065367403673650214515049903436343880063113335922775749073150161550087775627740520438140102318326766133935186244657454981004931936833397099887320085178028392575316942070509324972511936445273185501325092071739823533471361803515574253869025091439186923292348934793579490662625062904500689724613528753682280157906939304596511798065394366940543466980615218658445145750554787199059359415907336625421216471327472067510776908614406914322208264806492794055748099854624919420986363531224708030268751604222133838496546592571347788654549072289502328066381914195818746468666830518542682827055817701135522384977413713287500406465212604968681606810530772351830197162583361852636781846698257850869563191754134844882890837758974086542609375733465689230873471710787716997881600183939220043338180269164214206810306211431610498127057618574810914013412713956531672210448825818164215862062027914060146766556577943488981879664795272163256637582799634765793820732813345664053200996499102601945247672796251607142429892591602754771013271416416754813238633656605669420691344979036208713329535566692789023533346292571568707370089316584896360879266300155428373156541591034382807186722074214856878559835720887924714189825195513300950538922243131459501425829247007522645105323863367173500452721885526300855473346069061651604800127387405503407547035259719811500928368953338845873266980658228684949206117626519497363606348650684836609505712313768570137320652982292611284331479488093306603561523385277872529455215837214730974844695710554334624637868229570295590746845491747966217850442346273321844295923852493131116781776699053157287002719109357396707727285236202634556752922787821194383300647381010745422906146010843521233915282639415529791627564022655808936975427276301022003207101947747114223801806070432147581603067752104098058029212717390237976175874092159663676307546088725152731265615518698910139925936832211708711415276126123212786210101552736912154712916555384761298153263181296768678261839658505707436271011590103053291011000010002589743047589906351692720556842753016974453334828142930972185492727576134477636975913251121142971752216329447169836150933515820387720598963140110724287086256513053222489283463872390166116294674780942651958376538369350387945861677342930676573416069659086843875639247011052393264294853539189428726636066868062779809405012091378920922133464620262114787565153061901719426206608637238792744155758636173693921811476366637501156788144692367672326558653362302314963244943561054530967527760726776942195794848223892855393297062325074921499318193629897044284950616729609837270904244234383991189549797870038866835464196934935718177011891605199179576851925041442887003642716939673095251484012931576467844756507728111252573501587037534619403500826881258973348820705100313257704277620960655831730976510340365100605433729763623445065710809274966539868032630788547361169703001165487285132964369519586562334428182282718926454956577109700014619259215864445300939002652180523222382852632203043290465461339546454950622550301942252562488335371181040458324556068004295743674862778193020811275002350832169795468281264271716441392340901794085075287605889659894729303194600852969284292755348916709137887872573638584094845971013946823860610127234692845072600970414018814387663974122552717875497248786295215862884581100624779020143297451016200542363497697697864679925112353422875337111607132331378357089641349018782691946420077655451386708338844385082135763921241933480512110226553755691129376441418677380023591511530006809296400613390025169869683585846175912233616192181178481613364440728514834096872188072774546542121940122792876146470686453124438972906026097355984546896591920621080388842393219488924243224603696233077131026920838238101303010903949026971932382794661810752162998532746405795415558915840859909643690988391682781416721932593797304262928092780955404465029909041697238318195984515026264309323611956735086548042030432187648405959893759942002907416587767842060305659283725335704296496640485079863429844111613146766935774111086213457837085525223586585767591677686240085581903751057463377250795055353748913710238455219504867708654505975149462606329639092667750493370430608343921528132914687997439782364229886941471111652790308829623315278585378940287549561850998521658730585675971988728345569653822416222558046377003021452268631503533438697606252650230524828613909201645220761105352188300122567584460522511362836587939905356142442151101386520894346596302289859083957384069713182715417808529675091752218640064334507985558710216639623812531181876166266408719642612648339593680381405485796736628745776233444768004203871278219400872693140711375579834287625404552865138939240967905880876980273165967830508104911378210223757688674665606913637456838418200087892834145559824720560650078113955119400493939162243385066482493713808988808789646914301603347810623340825547820856312723280307246846374007258252481205584179876090783152912035822329492033295017922687029798947817683765408525160926115304547577715640786241571861150655393914787694035116071814776462183624311454174635806996238228189289000803844384817730176230142722917963719644190525915421460880676727978229708143628593624952977803627473777887707162208885334085901530681302573619857343796905364222991102404171875166402015464302705694380597036536747606206365462695425004053399621496586339827639772208837635053559492139587674240827299999034582016387791773726749643807271884402510668523231689933990659050177549498696709781613914489742143933479128262338177269786340852948346822413338815213419879735787923278305525868942204870937150679242473336664530076978410054242552093203679613478687769017074752408660605651651302925498472012504678625462110288435519916631734977536754966738518113925264235090443868141609573061908622346743250455075977804846820011602351239099921627588839742682163221891831991494974195344425470863426354225181651075969301706862110852065888248420662489148277229566922824655446225091882271716837534412234353787451272866101602262124380274100998015533049338868295712680076674530275086862793036324954294064341080708512957185326843846090620398141459086991088954506658893689965723509812182756970740349057793121811279152270851264593010549602850060259098261625965166835471203793779974699205184955829854510718273610296715195207683765416933899504039389247948812454177686096919230877769056326291099131337524383256199078173715348110873688867823034350181792816667349104908032580722516374367426648088048842946695795484054320535120673027990556648075501143623403822401401870390850067323769902172410908720347518662338591857219381754377615564423961844205373974154802995553067501908760510268030144220869557331927573871887107543985834588700051554529510714699630896011842661046022950817420743020866169519375236822383692349001346421831842455248780138202696975948716062938713155894990257098359681147939671204018993652597747265329011390122234884485782661864939782580046757009429328117484664925390205953346058775161308451441791144722713917718921448727603971119055395782883652187365659377014155101315008088046554342506901387121691372593224999652996648498980427399125731243225814227513854704204063857497836434846121944354987014172074002134303018091376368003635694258256965055316494850153662114060200709636430933419156548576118052937400119469481287691094090838851602993592269112239363328093378276778318589936500190287723628029885757760888925576726559114503909281466638312946533100008342430719885289648312870755016600535032058236676455550530328439420099329838947148606118794338366797946517041653848621409822502654001130042757310249679599020487325318063107073635456153434086198810387461819081977120969079349806443161193909902803714652742452236503083167276316321534982976489422911317109418910380513588514708632343606853651370729764286462751394886115484560536556827936603350147957468491429707926154306804390091734456573571275354661586131586946808019515267623882996248137289476101976162444923641068761931765569176802067264227371792656979805509393250790795896084890117660564159644951813976681867835487104554470468969383090789941752443426597207780762162872724226324840543992197912644406161980283599910750902456808439417253570263214947193321433148572796500875190202140080393936451601420967130643296138960421263815035136062783899368043903427301517037097285508757518504325761410809257362354965944261094333438641031004696532240434283451808172133040443091905731493713659388157906386840669914374268198792750029020371278066098745373467074395373955951830398800822310602205828979808861718072549295641157935621005807668797658569916234302288254076196802687295656486049260939496540311658411979997695844080027589819067868094023811944379955222567235267856473802283732068036043993118816442559177431277879894558771364612342644145325056282372882472645357645036623202645744765820277341047390978359626834392529646073844478741155364818248819857478333952502688564942465734511943662360152979165441353033856820784989189002316578673230515615464687684898641770160892077032779699878470724655631717465273166508371461648672163503411703986231082210678755843403769809807992307405561191797074939375972065228355549829480377159368031673165413057807177212446716241261789662907422308571810172536666643382563785056858208436593959113521130609070575624505219304915127724319712338334532848843001689040179922610411725738168916780878114323510119453376943797077886421977487937275111445445921090261046979117788946184350832101468596979697744851524699629072871709281596840974140265956282812788822781479406015784474405233022081530881558038491044470188985194998845216428826252848454575394244705618093062179567570055184112878801219748564771618406402644855439010393296859213739412918920379905483109173914091309321164709549583691629405790784749502774957182075134249716237064102547882423901269558534888268833148006521497633441104171551475426661317209999916152702220447444952272566927472684216884582032329063140282756106823219313056600196090058927015655633762161030521609529248404657870921819468386958041843863528539561100185124297508194387596571106674647657279064361506174768868832521419659440528968832640103319887566696945764806618973148818032114407813040025612812824741646788640932532844701579431109656075321377142796146767457875640619378240966896325256847672737384708554425084609035282450954298444484323988764755962173989895580390561111188143571159609285477339124878601969893296249441938892637976310430314187759473923490991582064777583796188528133192620560909003717174494059901237695499468797431484219717981474249676425849298195078501090992672002558107737917399501964163723491436783326292299823025971789472380200279344946873920399698910706397337511378254242822793342624822288000736899268484819406196390386461123797373766819585077050187859393451534228674835666608271795789870907444360783514112374169264329193767097787518309146115245328096450737606308014941576666526687386933255951083040866999787189923819656866799805182314413962265169699907008544083909103153564302361571591960757391790230247990730000865769256225766533497481235625425987541659740024528221060852405311466387084667557523429254383249457376145190335313707059161036987921135281650235450541178046834140733715922836714273159374257274805467580476630764096798644794445567809855952061750366057650724956529627580306383308816343731893475092010916031249549763679919149836720574209248954519728864372299287036559133807145857094524826835476077117050148411993275465526949429835059247186369703360926865551820915673048360552002026300638133485958871106523001686421491574804003698108393295121984497921281714014625268366399174893372114344512941824451257775360357399127378913847963954240292165145968517379131677880087125035247999741428063439836802808385889029767963930375226085470647301835780569543861527591944976379860330606756668280680563615737976267257092333099300253478883868227600077466702783404091352216203150891208599291435636374979043412573669757358777855875622144183488663166481224973795272561163300725651848995099049550901400403429718931127764639871483373103914337450518174063887488477469078520060146097109390677728075329623242757734214843136422212369857895432678873478421385795786955048618653012288616049598774239254062370942990523299971768731791692672074602807972123921267620619347909884329202626861627033663774314309927776446670368520008043569479786184866756096080563766451952114193402556647175908337073354615648590720851543734267567324854562206267420656387086322976837953134534217176199410198026362833564963131962432734366299669974430852745413885112222278745510674052010593931659364044781035763133585054267439956170314699246111923434413077752279766566476637786768217235548480637970341656331586797638960344308345812523042219193986671986960735357540034157278681476975278200458429822586738911189024811899066981255700492288542249320637715509421436984096536001397162250376024999189894822896021374965068447732487726363787570108112328308111946338475651871667090233988815954510064137718506144383929261892290777567783521819079947919955347238561372153593580659752352473063602051332783143574251786570523151539488024900647220245535296732398708313613526059572520310097272997121576554502563276160621792547406227114225982004169926600966597368724223927105012513110362281407979810552811929416885547409115869344621901530897757922233188162357978192685928702208932549439857398615275376299363026362329327622514813707551653572553361004783819063039770445245253881972249773713270215975055169106348540274123460201515433307323188064396191968940089090744593279622414254811272339429037306688232180801982516493325608220636567495816974197389966369950191883542796764954023565789346336630355552972220610794682355288493135898093533684804624064493501504387924154241369657804890145265822008393444692831735143921598426052108270488695967039775760616818971141465090229681455883877091423611282072956659083425404271438311865157884328293179402838583839408976402337563082200927592646808901791321169126611885339303993890196863659589462555502719105656908985716669157701291613778571972383125019485604980147942465751387559588593583294409352816659794615760626919627836353851935153706545748632466276441263653258394673593821932268431530530627424364115194517464953254320802853183439321005532617712264244562781796956303760866891873584807109835152973061873858332856283707074240815898406603692342002751783230565430853358184617828582983932092450912813770408483631753956443668359671627808333545666197755260966317448063895086617533662221857115137347966565306774334629363576675433261741960677761348132603279610595004723739209817543224190084986983237060186435776292642365742475222575495195603142002936133652159024312856243963027279252538199021603137651281448289272981905200867744388258732978517930172695350179039255278792852324698474337244500137016970551462019184864636006672967082007737601961740081524283440100230124482845251680046598697053602925400562738610203724485943045843602545973222958395222114117698804471166699756149208343453625344334389481098441832532878163365041465946807765839061993616215792564965525934510124547777945264656878937380238614515680680648215947622189713423009792689021934147124027525564761575208774980877079057067772666097005194549657131088459693552907976557376026315337054921179378733677636975668622690622486773836046347710645770408027776624256284524655826373047754258885511108831510195473524154179558596651999984897696920719699573419625330879264553379561697092909500530489436993337342901083173780245546460051215769438184820189771138892209244135975181478671620322257501051641855402478261084507053734942670189592799300157271475851496264162747350214677874881499978825232999475057859841701604217187501568662138838165730381679099741285622032462990619985934960169946505259701735574474804378203731919876763389381431557321710174762642623983241145141670869562756624683596712038566375927071062919808825987871424465994141794767615401212951036002424545537829382330366908292069379887270382182476172329827098453810518148210764744349707292088697210057300830476139244273922948377720432047184877692648984656275362276263125780756545556766360438043498108878988756395973221306172873739261857153274384120860569852711931646237766513169198487182875019506674414487324738571387961258388532161232467833989335943248130553271517036486550674322122953306538259672186933818665924371016577314327481643951278756390309654837195781422353243840224624307486418138651180071447612150478475617078467200003765449975651228815903651248134545272154210829144770684867954649836413056558563552735292308183572752171226631017218476863127492834329902860229813974728913160634527962739961021402776301725979920928313067519852305238690450105875570437856073721323335135105594814915150984655482066913926316852298962648690412151617484852965727175624679565647341926264538702017296304677472843633179939952997375874963760857828437148691769043732950962718977012569785476971356804086485973248457517997387868832859127485346716101813653084824991404326261651462067607064136720379533691429120922324788017265882493996376303585853004387432414971837404167108750314454187168975899035480248688878240576982887964717845738101386410692486054643726648108726193567256762694921875624108737206322392544872838389273677515657334937255686901619264900801749613624179891229605653746216952119223517151440198019218123596526882032945642776876226837135680353060666894784392987068053730302282424470714736772815567058323897459661153154325446766108772289507774570913378420718783292783211183826530721127097980385210129937086372733020252082191265721738467116701756749293847981950356673111487351582533275437917917794872145198457903283711194912165740502988935762957604026018141165982695020887924715616472109038049545381941524703977493236476438420621843242834891302712555465204596802975472458713357809693662572996106655286660638608876811560357515834469252663462604417349307214115349743307127878362503396395525790684646278584012875007233891422654344573949689793882493894725775783634537587528747903662799616295438550095256188311597771047394056401762516315922614124510998887195740890527551295482151392541222024654661962893885645215239942669835189561422624210684952339439177217211558268326539618185838527920356856900506926941977148368143729517431027467781606948831471919623127191233649420018195366095284811613272822603738465745809210516575225510645584221403808218057866164850714745178298705315590591757544747158803754880210821191310548570559109922922471084167652795966739245711187966452491107159245400467642465746302744186814246753874275657592969221621642903376276333108294376516389461605648936378139817050553304558285784219401722338256823090568459350521487019136533291699919320168106953025626102096303687969822919464510472996583933822190803227054968435522549814895547331035207596924996359030586663299226729968971320249459749058157460365666054631654297658245732406657412956001619173258739863479430118719654313801161747119159212835179106721679868847032923638358366970048271477441301979732161477105780255465444977098236936361949827927215542483384234626844795086217833585988288020326064552095347658439534927815992833862566172962999781330273780880197557500356678359975640702323424115652702713599664193174223727268398068200365958795927573979472490929483523258128756682744846279113063964508777733087251931277473419966870422089838652984292225208764788936062645670821176843248333617685434538281151749901546757161118989851204068818935398768096606706609705624360653347252289152828770964244656353547212023753295910926604793979824776384566565391594884612211518163958674089555207990092294703033360423119439546983357875373357196914673360330251587444555924821106323549757423373435611756250984561621640199086321764520554804828215669725925382244618457093356546795512578028054479244808125663915104415128039192840846319378279495630966994618693173387643462890953731699686626576780253938130090660750987877382007156338829387585809142526682042172026013388516816828197231959097698149677988987102745751937103348066758973016537703649974668388597471383391759201189461818003046649678743341044933716560579780729388578794903873514390778134944696353251721720848699851293798055051940089916527250121938596098544649127082831657780454537024378886325187922394662489095646287163833880344292869445650738066432872646373867677237867704779379558774936257982627481532192480649050154444863519358592699858504062838992418533066972358684149720452882969296676999249920015037254443870985141517947856975454682784434242982452137252741068024768601894875283789816145569171411655355915332409069373557938387781437994404661749027996899107855386650914391998981614011866385852451109264190879429554306883716145692430699300526952680236298691500894999158170297398918795553808043912236749707776054505569952967300375250651088321568517185518765878829738691781496355633788516058235770172714653208192842971768745848165229380682455739358692816954167227441392359994613435770824626440485405171758371658460965153432292635619670785703556649685390585344725569106988112201582331406633647320473081214960890858794038916618926338143575916634822106986409508022998308415871577178080019204057692138885325668700265548768751582224542880269973257675034232058578101595720165800312391338646700160228029615380618735573344387716235259750611690577663219412501915225287034368420430955620087722107068862987466208271659037811145144841801259191614090759716320476134590283974892909684792177572596973252498507560295541237096079255104145858163821930770632544177885534347800747796100350123961038203878057150475583098805848620586773385511961958367950214208503280356746579373269520845848273098920004484221487781975469101367592544569067219779320419080832122380703387415621097494992336292848717647512604465843770274765765957937602385027981683426336948282858744311929537048113855926098666459691245739998678123959538898773281734600003891703946723245634991489216363542608920578327787765427939085001987960507254869835842507893348768432884517852945385737621718487676623245336503501555656320278635090041281335155480503060741490060072228319776399328901851755971108496731988787441828171047144437699757612725763333662451840283099745419389096489132580506315910272595499976336239713207658796287080329778229606904816270764508610993605730077764965632900748602357921464888331207648078275600177935677689172313201159473024117229543329648047368292911629385986968326270027253529953300333566230953820352130862363178407816342192079506479443268639987937822782108371614016564599182794082495591505002101314372072559203020882524299474743028560289844280801108067399958106513200314414472087043859635069578626416396502286584201396819023625402570892119013003865875733145284382852117455173069705734141745555612104159358873669791682192543955982755973388478434187462394101611390188919231111436153513901999031303430247341837023889761181665204908135989168035442474017205815513398173865511329138227468861020005862878563887745719297240150149945290202694905818726659008564818787539253965572859078469384347297746708555923190418350290266143279089980277410188467740092439526484912155126210266764331505315681968886393498736148016743187998212031163962226463735558550910759795595752469475540623754433357971048041037126459085144908094129596708203121395145774541193871467562791958967948172150862757433495129289951597863057391326034878884027202964622773553757634807890424630847694601418287408508276576997054414303366411406635251653912092669885571730460212164320873691062183277328510685232409938109736167903874917281098536592487064744988128009035289102238568586767617874757611368881836591439549053852128202600246533478944035583101926086445116264530480060880858430051656253766675742289000120614579910025302375288287905250409597665435851956128762288769170437241336066323891262731833728777564964803089134451030001270535103181566100835481880365687845915737950234715525124639295836424106357533389123675287740310862892251494852751541348846469124165800469903931283648468173946186947531975332528840062958001792759879788944228760179411710430314327974289303656656199378484786383849747276020611079992113321214667695808322557733600719208801731496232349225122880800914182358700172426566911921786670008110245102603802434490838996047851424674210069933870435431464457222510486637920719716632505636260526199376969885038867584472084564783566104981077294905603857755651033607202002383797000602406373119823836369464030225383709873839169455496471348190675265397468471051482092065664974034314927941964618394163170162348204990930656486374791111461066628165100867934219983350973047148397572683384478363372489914819998598311860836513961576789830430252187777143846632577034569436965139111736471328953141599473102619797443086838035570595509835394221605997355023077799980977392634637127422729190002471971221658390954708493583565506201968352583865381261462487905687270643740924891316184304510595825933435718442624546954477379888640705025176654338311964086372823879841433000633602289184686835180926052643307118794512574683369672421983555030325136424689954843067095295191218848354458059898185541494345887050325309062489972823705883364821636362865044919367463124670377118774293697868167874257268880401271473789343994776852464652139009876827561530645576005679452450426912167219858864409139744301234138121796591483925260166499651582698808734885391539747941086556431474204541262237715375705286383471445314768345539441424479780123776903856083937552889062542368437226979710437080127830096545839302527991650535384091024772300433551628197788962648589969642817445548481641638340058311165675014176896178805371059745904268910798932596457979270281627707399865903412965647155247376044797312761708162277030885158493890592705762024030425215522993493604545318849668987317714957799390241491875702458053105978136178218052466367811259929346145055861203227248689495319533433568744371205378568404853582895374113857484777902472610868112236018517673390585501608096292818723285186568081307726826579399970393580999554251074787451187686677466678488468136758235102964733683927072672381540901832896629635336236216413896401064293757095911197707688626355407946690890727796935287358266574545955234891687702637068307216869225527795930568131723527614061588425811369403573521154784807215880991340550465285649440456949128779362716378568070957235880006552015114863402127992886164748168091706874443425824591407075629884128050338477981248566415052637379711255273605667147875170979373027370181734522638211645767832309018401888774522551310087077119231077402511563880983670585543051310319672418695633832233780867831344983290729035109204637583821877837801422012648309175055060528699888290476942327100528861897068526206682673026918634725705804869947795376105848263160604101187157401598752627862324894529824064164454340319425134704567723334685752787926931757020977705319357035518913310517662713995445127148139450034059027068430196587159007696252079966789660576361862662161734090708454792870727031720101151975854817924383669221905093013570296250029732166943458642636287005306251247710219105089447692457093795274786984320885053175097760712071519728897870579186927935708411346990648484330210563933575984291690207042733260322678484965162772637292405202559083797026034813565808734064240266479365903861807988277618345972835040224090553309341748660077682237867155099430969950333351062318727534901420907934882245944640233903927844672096487317002354592205907162608303945955397425266454802247110407400610622570856752000636757149055809870306776233622020845385942351529873649137212747589338021906781984564537273344652351024217665734332113686642705606672242799185378761640739686039981956445527912877741961251034543745599768439256890422482703911319030326840243073848404994739901066159795779335074520671549830729065528425534723775858763397487457603805855053613918263080362434889017660687422237071773072782994075934988460933335539343234151476822126425280724977164089273598968221335173685849243447868240727335856914974496777942852236345866172623240231614046460075667340208844978357798595081645993782551437866000884177773146115762903054434660800522087244951371382402683617281502194422558200479494576446445566003096278788368409556709993486862772446713201518787209922554805303381513570149251471619551680308656479861092918011115980637591217526563330957390816166446962545430033420890303701278405735533820986957943455313726507526187806009643060878841071881296987070921867331777136769590786972988247129106779553030435015812918952344220433171697316798728627406758793424521552645749926774340832854031055007167688213472918113537369650678652660860814962696697251720308462388424710351790508620807111181511395160618917536824166490563520470606425571082925475923521936328145603267914055634232113713276826953114799341169316450855148496374302580466676366197710663828892835659457067391128502087942060298469904925531716764028402196209567837504574292611800651043540047732400914277801050259823988569094979626997511505808810472892858125343701923782987147273109622524123263298967258883462968855211104189336424354862300336975456049474856119230300111264292552819104456894680216768031410838667657506393597604569634944693146331714691248072562702407805468355533208091390148181731797869052353914884489365422530223656990365087433583041383049634292917022505234528510270432496190148314270311095660742364004147298314958524737487276337597554866896444567823451268890639085241851401077259975288856433891910215909238732606347359199394085035968033093310548141816400367533381080267268948051491362567477452204116807805029455685228833352205217985127995924415709259688929646966142575795051036666443862481321916827307200135046833544489474437964843691276210608951445355647061195370840341396856000140736016341771714925505389354828366749731826856495564517707335359984609746069074419838418321823562838570855385330820907410924514003864176796420624604842049554562672500031202477439090438143830465033341368666998546648678000019912736637059944353143294338844046910482600591694744083138431140471492489155620205226885192851126540794207695299011898754545138056261436529627461733892306630299813436596054269722327210321244936439149640609539474672691688309013944451393152277642412017136141912555949313478357093262262588066485236650937315736370702605644565788459549338603984444804277342480215797710780376229022762937391328426907615901878660291047624508710947857234577075081487110524456018304241588850668159912661016933039392265868243400262510096741885056181127646131918441723178096614525664880380826493781814538412375989642231040353652212304043907306569233470310016128923090556578999448987021503018791767796276115084590062222058501551500099833064719609855586012457953458290723825336606641736222390081808047552741271813922481946170086352727311011105557028252735441233579113164581108444279176186443749795782223776960906235433210933211873875304410137027493215596636248743038076285852124181547385230014947791979109047459188085575453660596763642878076567798909034433478306389453315184085044986496379585163924332974007738503489369820613233777046165253880203217231113572134822966499198609025309248243138361750217625475041811274883291465856010068069393607660627544936149359693136952168790912403050128481111674348931065995956147942630877428935352012504810496366536957317960851533784086135808396319503690781089441157468019921640703220827161859341769535209081056289027651725933699024726587684841251234680806017085077220740233215052881718376807034666767121084239324171190401565045204714153370310137206742772637186322002281137889074360985447493303917549500478265192768044312447211729531193911620649352112552428892266060041364526404517870532479787043886013986127771399485821666864825841524979370381891966533106294577528531932929121855670721519208189170159263606203200843027427557232829562649080040470043043578282721535694532406237778709745258157441963834171758079053784504401848128106907751500982498629516818257972565324521580893263760848803370851618135629132591566410269005303411274577372527409373348454548641034785881447280224903499802636169584373575229118000466796163814062370232477073655886264385916106110755026974958938951322681256470326616368193277213117406898168750753935002838824287578269535923033342425144806311018103649939842176960118596049291522785117180623828845841055853519316289981694941025412419620885711571159712104180788104268949614186145480014816247221080890726766087785705722581449414478105052853148909580961003649118723081817146940735047033866244122028849174208783884637577952865109554169959613331856359214427932915535026651532306123950197205260682677138016635005311885419878160839374038065145596513049217640821835878265433820694900882588064220978320819511127150785601700633254802331271199970773423997996329480860262532205348966008061868200697408380488665411304822757986296070312305069624710105331937769057809385362184171674403134832470279347607702018497827694503712377745998981884718807349176773008639552688246835232203900358144849820162290505731329935876953920592495681560116835628004074881881750241092485113765375885790354077066771185739704330639640441295511389652136532898475034313327350139368250248118543911196545614514512118958172666022819227368185547492409171554141623341329800761638925986463643541694476760603221994250561498506848434327595335415153830193219050061861749208331022350856588982774863907252210183190874812385047349631717601543796617946975324708232219703685364552273248086279462203566795686137314606798502126087911290364903245489478829408381301768621237285070610216671643648944532702386136235226247694299080898888613639591167821916365366540520368532218591937809813170485193759649673956634014889300960036704287689017202811123045801155663400160981131551350253364015630570518169586024509651806956121759095297138667479194653188717642275543720923664485452494900841082177078581834604219611722370994893637128805579711358301673129211636813185196310295362692621081002810922148361254159286083846454299467348130067532720782921071817305120637199658837160677786015073825708924082402594173378923372111055608409538185072569100514005876505111842949895623547433761620545295375072310209486395287121037127458591597514218730718671668763859912846466918811588223963400149496131324489956455674601569012743166067809634653037726581892441681439758844267960160420939131519393606005576203388075774465442216580749132592650836744141227499235481726582093268786995276795378006873815743366225187128899510695239824427515861579101274285986215575606952234207475859379205886539177211286548440592527937037948696957048691876147566995027238512673831349055208033357288776197256137026105713307952090987291458561875884364865517622563460247722004699596839288805798340549542990012201904808383138034401813983516840756718061335214263992871572337586887827120466319927869499040758625739246875128664545196034848858114954691907729727985877532795991719775548634818039523902771151337473599375500301414843672749719465466920361614912999055001688398862057050609172881959007377961806468238014146922339096192357120423257934079540397253435670455518357430744774740893479822230596023774396521127034958538105869037814198087067040508762232717535363953095012161751394998273252768219015222795670080810047979275328258249274673529686326303618518974314590267231630820242037320126275346518160604245195171781971557532020574280933984894793060482647763111320763640176992371257505757274422998609531791294929260431827606012185591793543407279716632407529711156550321611802628932993932651581179869102216959825375543181213325658777288198759634141668668684931403346296208945880303355680348088702325607171554026735134168921270028307165911177309660510500259370911142436819208260091557458186000196166082913145255747702575075784388719274913920273538867773418511493035697284139194723822628223762787839525329061526638413970527409597291384418689077996498466676483052081661414574498901838748441354384531901830938835331260716928882425600780505181789684309824105098434881028870437811735485013341073641615925175261000192711041205078965510847523200700844158195522903520182236938441363158872345552930107473251133475796531455011238634619222872010750422168814721676311832904201141929933901597559584404088227439562681620958506533921732264949313060952230221666895457732550865404657794014417675899326387388213767862408353562981944204355281542323058722075245219160435399443065819608903737103769004146171835020199359184918724836082880717501457866588918552320059755038243156011961492338266081706816763994731058982863728073546117961451958407999697528014921084737466919679681678525447349125615640944197933007163091957062972312037914226349313416507622117416920929628777501770117642561758933733869499427647756232830717749679247239729600570127680963663654173003296654450001836869115355623380853417382253938581756446832632832784521439315573766238602993239025399517522533280234227066968403710044466658287953250281450149212741259911672481929003014864810844811689076177013503204894481637258351657304124407037295041016481629800000700373586253303023291938942941394724944758554285820181615105777138937972495862520258066177207655404346725814247671071478820021409822562992464884589716447614611234489443582952576989636567705327808680311206264637079980297287914683654472073999920986106229041662790619309452510032369159789786817530616892214775330170277943187359442428525944724382475026992959430243245116749998869462180408734475932860581651745212277725298649600002570386679776303995910326094843209399931736803939735970221243998492466660675336902500494441547236100416691850163000943569205748674440151905945697531361915125698117977640732156848668894494084935437829680303580896164472933385190289475651044819238994478477169223984078093355501705852904379028335183256608198905946108312799281446970668095585756455546445555077554600277559388567657085517719059685251973100658150542567064077509724593702363802963630956253360086246606846035732640319053390418128676147172784772933874988739894098235182140257572656134957879940893841336615672567672373097052589006803848535350478644003266916149666549909646195825746835736851563910561019116993818319430280424797343711315886420623825476071099276981691423325344273241453144282986298869088304728215036349353577758014590742494462508305836709806728708541448613217805813644847459007587470638271384597470695692526380260895241219096657019515110236453509517972081344420059419397363757922606058297792891128063981975635915206423346617030865259522973577166995038492266206657541712428067675564488160763640015798843508685902371689061560918341477611966096336969494592145336630656635864507282284928456357715447102301117583330458012745352458350001818503010238670660625840976476796262126035965255506139311264202050984170895222870099009255849989881747475543730556356383872920745498578295399345779495487006977668462564772351138916370556242076640837690821271068847763971729212133336613288992901972172500798963660166078725905580692158054148615139596551405486354584481137630692396244929422907594320058297167509762215560659823711017579859515805900629718645072299026075687267731281178065377851942858352492732289031336696348957092679969100606868266066780232957173449935838972227241219699161452406410083716477806505889565190887517290841632248926223496860596882208439640546990239371548810906561245059204492835056655289942087845608183095554778321828253277715692035075263019894125937110534224525823521352323097916629899845140461160960197426870433542521663743693362814434945827112368403803283947252359062462515307923345883804790889503098548955273957986285137975229395444675446113471180794438257955022491120790556611943710389876057387059799376626170043019927142283747717647403835115319476816116167727584015968462658677118979003077316474965120090513914875305850335001597701372565846049234500960786642320772425430603823020758675072350424748517118349653139327275563746255094791110862052459774351628844055047581645890487579308901781288794600223355625547572647749150223067873020750572867250148827393647458160689277762488354778659617715106953457093484310073403162294759881911541868660935056769011811346942114705418076114365054733701988412439059156865977083525473056293815527871674059062701434705372802445079535362783955646194985681468958227705506292251601304549339599882467175930272833646012686057968238797416924093802527384044204390875749110363010156497947015071606648310746709549467833867840782565075884997706675420176268000542641105566014833799439609674972457159672478311648416829693574226537718957365904384279829300497146763156436660647943560529543745496996385697941224545955970806425970919431895075797662071377766534339304264829086327770674564978564369020634158698188410026230707910108510316764265464687992251185644942800671986316645740004386812866330564833477842483761906867025283066484207753347878679885146324956077361347446468992883516143753621277350324747009753491927052939536980642942845089662697726174090667702300896496489520562322133459948802860022245126702618348884491291408263535304791734366242918703586640928665858040410710027057278341275129390583944703056898930379701903183126130460475391972094233289756119806253182686226010277088082760896434405725300957565298035220214160184831176048037026661240677334892152283055549530388869823524859301607176064899682874997035482680958088098699345376322879750076732291052441372937411641558586750594951309863914065339629086799511454479150320444160633728262082004929584316368791738081564196787951206557277171267944531553518239215616388166172700178227606980111922134302463925744925694925863175020804122668985587411656985189524652136916033310331317042771387688296521515855439314710349401678976403992549498153992619023897749238483145644549277290309341550590666506499168362758071432253931902682739060283792989567960691054481308978008950150452657686134485567353562662657114314776237870398343400670916511916105625707611095263403491970093125676693078157148379741283498482322965213289780031164565374327383287467913973494229124244918813185858670905729194200213605716985925174383861403613009398405905377131970278205730114537242717258158959541322097567308312673187308701170319089067711318987489455667872249566672298168068955720375173892451279421430178867180921669986309459399301494206569137395450855985139492997539465153922800896102867879847485321791192832633200655813473848547323040494455488084285433588882340446173196690453855293730922145693312764041098048465876218076376309036383318144262977718881703573035387980588307834108952907045797824956952574685417879754577804733866314828711874864040078257713775268942320304621547448952070066802382378499900475902351284425307475012062745251733964071827688063301220527093052157735936278024251041915218316456959981827472997629803637138207045392916722020659131201363546129624428803760135475601971739228634336365125317123626733962786238672851420260616062688003555767069543299669642399154921173191143248472040813535116330200164551120935976002984772565366583705057109551937328653973963511032681668785847498283539183289091123354166447138726840872223144109565269980696013748027382667789177421138799017013407177514723123845236985770347965172700111755218620688825285199911058287870547614163030678329448027797732764384988057928800082701443782863072076199747934201890825787546732832997856517214170248067165823889865975937052576368535357937938491904148694713434387459942077702392076264136651440321619661841955291788675478405763914996033263063368276574265459946957886571680915705887798653152357576427106119928387498598714238068164054186043638786267274264509089792445487145478795233170731224059401860123699079828032775592938474133112387325269518265056041882986043186378982214984227404502458911138988126900830834564182773439572807924256240488346250125434103413249857430977614576551924316198508664302168312110817268921011277192176046948788216634141843183383402072985400388796988401747140003942021290415723010502262308741672906640885617348562839517982438565460427683809382159384411973353719254242520223001413072793297845554555811419004363372344254626499053046754661850951376832265173197572274876858970481362480966030615008434618096327850008122105375074652970479516314354033547767162393581537408925978777565433393657604418277000503475607810127941619846995183845889810691408563640270972470225983680446776020202247205757427491112541595669535682053654632733609706779801984722995272922486786911960433168935736792208675667211422453960939692396257330286942450333385162362304389084792590960028768288125630905375369992397012882767168689979638019926085117191128392670186838816561974822728001528702930001593432033833808774884015890294897919308784416693114132417514355435951180357450194169962258849858689933125785147935519747574429566241869789658167683003715132839714767226728528379769794404125234725255638191320677374713298846494325099320287714208121159880531991766723315801483388236669562888166453864665478444812129219016378226436398293245326521029272764991829793091109125182287016896904832467469244421436802217616990586577238123560450865328481746916802923304448653415036911315563133810078028175722550928751136177143375336853337083694418953254664830991724093577362821545958012893985179283112947824837149781026920499662132204398966641893134161033487236390085577196626429733764912306950800868523367973656071583729965309268258091835342032286136668173893554188806977679184250983753666265020877369540186415492639211180474028924743182085437987466194576234777238378668491622573672984107284637703838756160487999278384230126212573988113717562683007765352430302096661398903373852513453323400990808214994896908944095676169373295593617317300639136160785527217460664572818584059773217718733024724771473662318351887757731511147832704080566060126838758120352044596160705380680770800125363739831345813433825631710180801494804114352308831873711684861868476172747144762844280242468446618068870046030914220806549221613678726317473255536746958592270898938666172561780300882818261616676699954191494957716275657521961873545137602738771228707025815702355834031104619523874039971563177957329434022975905690943244370948827929593956833763090724576166693238525400308383551050488574358933705670927318562660016833716337638898660952154996559183977464788709057078194423424901468406566389785536775217614604864541309720734434219433345801300885902648541077904101778765639259248808019694551217475136023541117659221907629736793688173311015678272855915800685642404875880356413450548907771510916519422129345873994752433056743093033868197290958495129232957003096607931523822606024651594738688528007661072578247643939777534077389128941306292345145604368193457542425289265659921834826119104116501218695794325592489789738648754669596456213964138683066205873566671888215213680732665511949651513192500362204471001562226207717662435111616658493536840508932449476781223912712426659688735583092229752716065440392364294740577234501853751248124793257213373622094557190803661734749684419795907221642804889956011668138423203497393493825112844849341669167994640655409809248357416511853179202028001257682943295467928439024640986528975155226103452252528283538335602532392011579137975492629308888341370940568111848374822133074748559555529786729435636586015424996841743499489431135532567224727958506089021736955869418872402051100296243512439348353052936286052007045204367724490131957338833545966588178241353907514620262634269481402016373862086058489340951662381080765920608733277066692141934981066747129327409491641713731652328858073745378518530512488460796021109410906106693701507593539053935669966476221748204446782168707835232208925668072209584943780112341732849558605928529535472051534066300687184330496452676624280313883570585108060830140500930602737752039265570784657162569718353466737958656919623390303931486829649973468571914853312387668750652873371243557347004202026245207684551311966902427807565456838746708237944224535125013725902996749079200528997649776761438399910249743326648859425529970330922142506464204286705850732541682977669749134448313173875322383396914818561698141184675672366037471282617723823233989980698860852526691508537078762716329134602487644520645811434597412993332888479774947566355994329409415648540946021030965313975770666089283484748263078615694005015293557736671553710409907702093415720365363722701377863991447235404479095397927967671288189308337592320862575443336898151459240946352522379689168357084777521234169851341206445399676085342031949916540418877155609752331469173772598982341490460639007613206434849341708800777034906797598480356509314806618516241185725393226787200520191824911564555157417210280765700239657456413543807759513839538625540955129031926186581247002929334150889338589479721336148429460442276983595476687702122092810311127139767454929263296187201099719831292474435683745168630539232095143461053386519617477022644048417649760769414430992311305738831332595736474909471596400198205756159749760336256702271021569728802776974064805044980920325317056954225935618832861461446913817957880347317749625871671539485482466136207063359149613514114450030522683210222871963421569029645604780075580563602421874646377121387453205591417415489355229611881455412693824480477277255459859581326904189095683655893900787816871375216720194575588609306290688768471245985223248243793464404158530252085899461275002521219337197963021165020270420309700523307582647809526023470228906708999649422986873339660324310150711999714706685183787087563633206488779352715734379866581285226068433327809477048166031627632590809496829396827821722849700829798070598300312509059030572297922918569421603737566696297204166852053177784810957346422525760905812198011558864845271606470257991995226686707367022065136670860223872893517815424891741127283642369383445534157015262691896374971587052060800605415852643962531636648806061103161098909236513134106337583599971798384267890992107936908480811423943067663192913875741517232984961006210203830721093022513990249604261329391462259483098018263978526494564667904073637250176201509284486479038793249791338796595756400863257314225829037899947872526076747134739491695967688255370898938187452055597049019941300724009869922916337837525363219225614819949543316275745323993333134902035926972993373628781301552770117789920057459556960048565267913579676031970834219279181546201625687832379474973690711423223654827073789506949688779499220193087880648616696867899800837673119669707742911303373569588240180150793180330538022622942627703879168005209396795055922255697585774557539506365541543294103691910634618593627513035182008306904767415761150483649418209074472869864689699407627381321326138544893638873677219203519940017326640629445370815284924307503823702421305233144729941516925422809544589538972517329360658223266414565210272081401337292913750918604412653887740765731838632703114423111587101926812346873679988023750010424532975357017462666854079750840282941837805159091537104962604827628292426671416341794961380840373395457008049358957893194386229729507785937442443963763629750135997430406527816664982542848339031307490259105540368160638321983249762875369148344557101992024775927575039873410236933494402645247365953849426464529374364138003058740476637031432122272668694631985763161545035174245644272661927549300064900993445250049782484784611391861515986461963167850113888075157652077522814312877822331006899428651008226058813600755757616888158279372953591622403173585446065326779278706914905569376763306205188669623668343525781739840847688903530083322145091880321041967639641616361488056796633301875519273825174955245880508827918815813556501033274454908807010923788506942243822119838727671565493170758402686656784541363856608771084263037859139106921372647778200713330008429550279342299204284449506074163488367493953791985018756138387390286645954129211521825748899995985496757627087440423481616746336330071770468723485832381968926422139833112792826939909010882980335369392542894908572656708315223721496641413217104630313090580016747924524987313979407420620758060233754701956906509135311961561769340585972112860952890600057161071754761098350028766469321395952997489514702364528303815202300079396675568919980580707774449024524611051162824016843440790130377492968127343261183048356393301364736651554499439344406205968275335001765646330375944383280118846056857631053117497608549007138626489369850459886927298719712305459683765993591150990277149917024193401166637016133893298281517175980317431208671192064749978943113381238573706812475004940542975419573132158517524192671841730718039151672603782943341034058259781158926636340477982102959464961304202688853618085148906548151366273866768766643573034987161307435834978234329894078291594370464574339142539492167300067768899008360089472374401312747769382061747917916478756787042655369705952228411427929124666890254866836517793788572989141208466458923010657027745901847935420878578927646196322842944767842331267534584503736080025396395080162884195770044007325474202334365362138218723141609299963970765380124438913579150941422311702819949128127423737224659405242458325023335375180619510627894370287283777199695711633177862765963352443112016059212588699107456457308857163763611395146329191277277011314021533138400747055504069408508370154413406394679137247866574301734485031290223448713992754844907302036368724723983711412262624003069324433241094020348470652088310290561478262327627358582041586050237372447852301777311343193470562738987155478776142359312818670533193612070589878748114232806949094613575692808915386512763221450849134018080552862448119286656494214919900450532154669679566666135473802972107994569907018188673428653181723387800313231794232553084887790716691737186371653277245974519808304955009117753300117468253260258065515094921190959927567708673263689267215600285739653930677882132063245520873903124398423214109158936765387840508783106177420978215745080033442411457321186573061740586381551076579659550039978536407220345660330627970072182965576367175678153031511715839527042987667566939832619142464068963383174449998639420970058677749613868056121741912303874300230680676910938521816836536318106524696776656653468249344651178846013845749794257715829531784141345497155349016846724107813403887587172919621748629572722092383932296863813899493219402655587723608524864698110779971031027813496759431305203187015683518891842564664170089470975648117496047200711436908638554848396584837290070651573723462477632626904803918109393085236373311054310486884545333853119496797477062206078515588208104267776530131750079486969260286711041360636565096660833413417608169043862475414500022649715894956035492270033983241660741263503863022222541671484793361519882257800960675551845741593918896210267280082583961827987080202126988496985908862995516437790032211414318275437247735886043079658320227487397072155227102645177906571135044815835166019888465004790221080130577054096928087134597477518838675188227719458565041155267479961053631806406238643470094144401677193796784514739782751916017475660998351569101258151071714596478854955163412662772707514631656495421358983380560770600998055751743248584895332997284491017139523150451275059686915157319425299165783701967659612145813150162230435700457591326887844151715171071745078183617524784101769367589113972027366034097194378758506424888666989685950569985657766395250825311392950934766454741690681509061852584984457295859773469034855216288790612966742654990962362668186524075304090716390786642262323535010760520680143121547006604040651787389403234106922708067235767653922861383872692353460158677514094639817359338914854467158721770465753711038733864390282743320263109963496341339895549614037175583413515378024292979313536009681775371671932706228721488535180655672916862515856404994213660832751386958401604264230319395890783287464193270465784277266359488410883054149029086624353661039660956307989929735459110045892513531798302944673517203012843155453107653242720915897024917108311944432098519836205332464027874420921503724081284826538569148302142702217382775388140890579799838380090697354743453910112540279417627137280354948794248726395279057066466342079839898083648304286898386417243489699438953127663512002083886562689727831334387371845856004019500937491743366758655193437497558057119068668687140081344867045126272247651643346719939986511728847054982098975372166618507851322518803095886939243226928744748307163146782240301913929573727008959847069398547939903204929310116757104372155897659080687884814380784092289857389433013281181452808816610225431454154025875754922656330644688999768099773521246017630970000164856301083046267592357126913046506045149656223546060632213084625678022249382580605767649856285218236317966092935139028945961413776921745387006456464922256997262633880371206587475831517170291376663911411476392046267645665248835568272181545680143608792368257733241958831179675932837920449142938088993925126416899217969736931334508558693380477398527876522722763631838039382354763440827402331318889162716308474548826516161421632570603546613400002004143777383821766439435235001364528427431044738151923619141132765179316575413183554418821017620262826164799300656283194491621376546849713594759335477390305161500362668146073126411431413785867565049472117427738535095662311800663457286865947090026524572924731035814907810691422311873794952954513710207360339435500137604482386698585152387566610848582885536186309981806346797386378784369578074461733647954109941752946508315461497355325585023126403773174070958780660166154441590269706298515868570141891060704608654291564099422327117726932988746232978262940205426294303548502860178637374590051490167685432225090632147475293249689561009213655047097167244153763894383104157214123368196841840497387546938995445166761384138397277804772999349051918087812856019021447601431897960984513885934940438955113116014343921491265171203221537443764857832028234083580035910440895590015602737470606925259220400172428115095163105332668201757498165305494203028050183752727761025753133611832456109078795851052359715238737030661937119733831277137198152772308365140542384784532772225826023835405750089984442312533663592423642234043730306589157923528160011182479566178725347427090827042281472167904946648451921470927806834062189797508259168613755893236336234142924229790208062372496866163300637842838244327204101653056250113752005239141464681355244537496216931593860919569983580957092175461790857638119810073697858150910222611903663986939890399959353981600673594621954071449108547699114013015228948274788202181086307037700307745073835978038733107056540799236386790437119130583573275495860038397635307579184362542369274761966839430897353066666341976315027519507956645173997661967068825069485938970437942841287524335333644109136874828943252093243250437450789253146847723630762889356322162769587777700299941715495000084886838189260723396432046733195072915897871351940561400270745828276310717688561760912108489278189152928016866267543065062947685606122420532013017049025324292669017512710648957988170713595490015286256897763971359177344536438801932908871359038791029180205707820880399709436025526346458083028997182618254802820214015121090843268629763106465823264126666946602951118775775888206808125653314712115140187491993256346419215402261893352766867456387759314460533856326781892476910809916568710318864099853665222415379432568127137343915594815952817182968109802345272934488168318058301214547471495465045232940044766136560088025499527851397203995139457233729948352071749025674043228206467142540722475775295004604108756702920314754777920627745187289388731942917535345742794919020753061275044373505315531754891926385205572221806322404900527454740005488960065634875670918757364029997545092962245447563516706085326907091366486433667832632399487617930821629182839297279798991122040189278948201140157918800331787714551605258864825332104880684358669566861388183776462801985526964365654516073031556054407985281288936025318179410930756804579642663853456775853557108633736035809187813011773286067200010484889478447419586178629327433570789353127689217116960774896293485492882220550481494460176601602463392301506173034350950556725474828114088225517159549925597406732038519787136175122561047113578810986922974682224681592241907264184385799044572167362832724287630918412277036609551406784638033704839732498786580389384408969656773885572313911045281138529690068058883792914447907398732149635018720457446799924600119928318904126432136536204582069324271676425525463356416800543097880439488343317681923760357813931233611003051869690049724179559972866749454681859097475565051209663987213820092791797605661610123496043040887800726057683562813275760592089132197276921049847692730993695848222099251615024939455630508988555145775390965937908165465659822351828794298444613953350314056520866720558217904396593330207581859872107361945849170091560186424992610607408358023089580708368986469707891906001787707520433909846613881399453335881801304192268527299753849002884731918900378920282221078245561024212749273072572965174541082350977212088847622842021380559355296775956490489908024405706921648215459633807634704104451399458435054237744773063069186683676639382560995420589963623953367557357390911270467217660256738960812054385097949442988971902769768973098449288289146092077157794206245580989990441599962023428398590337887258033806815209357567750433078479667625624152483310894759728542353605676291965307143476442772625829345567509958843582410788180202479179047935635787459044860499118555871379744463320234813475691825852939667600580022807505688785873987323103379087027307929453317939017733160079099812201560031934824732735527361268427525821394029659996312880664327428269122300465730408430337713455324523676067040552748982991052712548418347738840402305104927058408353923256840222201660057280032799406146199109225631074025564559807336688503199285784135798472114979237184822310172519707030195566129733040347580781944960787284066590155777959846802610810690425813825243043411331436676878336945357081986202914408201695497442879561327435718173613499211538059395844156222601622810956808440124162351095824492555274868712786676742539280347699350080387881161959192776912575792328220565549910530326876286495173485767224584325213181620434999785698814818447313766642874871999078244699527112270665478576607617598754584117278004227296511159019214213577019602144495406737673681794510864826026682831149654286429652546617320597990064934944984373070704657372982044566148381480304218534459915371409519912040488560213914430540922490696694440622987516635817879944055083270135545562703229625155819293185270988991731469052274683433275773740643277320496451050935514160743174103492375697214151374026870376377049911342634190892308096155594539644366398837217672664058670099248567865213745580518920435938218875115349033892282393974127379769668809638248224081218799523477799723524963150323192387009205355559782172043128871266888573415004684270222313559403161960916261722563319901632813805130963033975801919683419696353067362600688816808732834271517575827721610490159757533385031088411728160983922979746579380304996575774995862694932666154885609161201082542519078414280153159649173017600079930299637572257856471796668016119724683145622443487848905277152287283490455457304256339864380364615229721017631626784045910033287563774500143754304108901353449840919648626571920253074905706286807773558330242482241447997589442056030053696328859784697993197567849813800413002284034252560511210582094862908294297244635587520954915501097326624994666268561112265239500763130887755925009461417020622618190158946205770563855798908817923802475874172736400468358148251296274815084511722900216764409309938042639056389082489565266132130664411700418092081196284039985089116700931048845223133704047034164948584115008761948190738821623025725483780221323604378728564161016774569181564172583856946905080027748815996597548665793364829468174985372700782005582455899387404559058903824445151297397685798909242420864753121068807456502748006346489254690538404611520384291681259787285305174658404491042706387506429566791825937341426694247736679435751839092990081206715080432450870565368427115028118828822704441074692383114370959034966531310946379053816473781461145995194830106165811677683330431280691063570741806772105870606809038541339848403146797848082279655801969219165794814721424588123186628510208873259662764363303280265623117604188428913222580116354410261124218714901838608270880382235188931091197545636932754974780288155809002931050963515580829761303606136560156219757020188102659929803080943512953583769199803790947606236921403338929269296699942607747709179167586958367287005700986245911387190941163054650675497747217282268591796805308699629087291152849711558334735261924194317719287597918638617232042956280772389931036662150434025303269988502905056815274885723204718210165179659063868169367810562780638903122476885562234925194946608153114752486482142794609144624466942517063756344692566888920518495490718612604520776558634953635993956783359362043433039353395185079591871919327900142509260981150790366095610035983230812985265678764370773128268379191681027725043334334419822923348870097506757284535466394786335165798018577566835416053191781195977725903086032991954365067498279216833158097586646098611325685607206757832379595138534797102067243874263763100297451981156525834833426209164036342358319163957546990211238947805183116158339354729825145841536924374795950069045292512182833453263740226948673946541618085501313596255888315187416534153259453017132022894438451181019835444618417385680749673021638424619590652208072135926905262569938252261615587613652377514190745813353763173403055613774247422155920912947779428997105492542960535093523296610544116576701540080521459328435611951414002478372841333021317613697385837805446868419137917166374508773437288430720761400746010744569828727487044132815982431157183384977992424001094828461052498848091478714935529729543199663624941698249650231198300477260515229884554672148100195382330376352854255183365517051414973439039637299407607000870250424453237762274414298446790742914504102266004432910979186622161369410410392550576606210613848003189554438067617544563350367447243288534228146421836238651597454198782047252507275836260606282166132336652669467769490504544351541384846869303673658547568955822397466865466486434086221780648615983740806031724182360816604222939240292724132651582253878332502623972469812346117043765664506200249450002028658010560269345483831611688936724442244842253125697939332952261495453977145079748821702442242703255319123744793017886516601987035912502807274461031851407589155186245530017642522160613904753993257023797993126675949819600519268612175642009818083102419066881168339901536029603528298045445535508795277513309509213475178762640291415007095412059020803977916327844291866058867296607383296050018867345721398383134715713255007565929364564009981806801517226300236133629747207985177970367220163161369093396400840522424175539225066424397071603160621846670862141034418829129273841899110295925752059128336280217629865665616966316091017555952972667790099056459967571776199043103005325287148280597542430866662917863359008573773404613958251993127228223069127408495013705479445778796637098976304305550635916260667167307418904946948097554275780572451392376286048537519873045881967574862177664989506578557109647633524962718856485291075509487190366028061387008998504446863379871943161029092886939252037985415007302835923744745131213291086355118469845142918249833836368362142532418958945956997189472113995068720961260216884440727033281753290820879323746078343623100304556968303821233559044164694741349953890971193538661379617307095810234658188057605204169489537846126104274192965802742705976788093388499324216127821885230738752366465390736177731797467238885265666235978826153651067652245454707102298742329634259113122665847024005276341135786005777825006281701978597715667170807945437133620400231796511132795007564553109659588384061346550898324286073457860951982987892375092318204697736818247881047726861903723968239301937905852891761805919966016992198942183133254593704033673684103794103836629535378895424015789790121048253541681721312170821615884864447165626480191813380695405436718618213393315366490386416781618083373886286443905611690311033926866166278118606188384247614244918230316286418375018364928070201581802654912608125555243791970052805870168377392321906837430245399719614100511047425156989149920786642235674318648741766543252315818613927799583205162695586395375318228674013842218706305665995336801547653654072140352017797203647855506892497796672342590524870314097206894310817819948203453025369325136586981855776287005645816185578251829829735665103523834561996800990538021450718141711548871591171034855632710805096681214058830844785590125264980655855104090115503178870668498164711802146660152398199032778369409486641846929338460106198248179344235226588074514179933538874010390451682301737210821765721513732824910723206590400860851883341896410724806045797002201469202999572500855322916699401733039357377611745348357003013494745072764622558273962218268546341186394768754657364692372335530779965281321049599529904997056644902143917098669266116845235914832991268813447638940359098070100904480647752076527473900736220866905938713667363550412190176107937354436774372908446923826271246111520689485592621825416019577478814426824174024621109219127881632424911603500392872887949699179618526584181115160077846348708229318699495972498509794033641838674382736435202310209962506628843475477121968735482839701464278353358519421738873189519774406562502544599456303008298161667017272175143340224000713377679785251152251304954594461881161672953833722896360798524510675694340468289892495358297044023089769177447837432298076800594103783166373355235874144045805018076734203321987286150790088460836311848067598838286128694433626975548129656873636672909557414032255166006365659405493165684375494853903905571036226365641965164076046954198697773678219300217343590225117424621366094406702323201773242188388907782067499676470815227045581027403344945272429777483731718010072870664276234634738908017388328424902782286975016500946842722793108010246630468924548751429129895231033931917064561878214951898189108380756134223546924114616214921979293488554858398785764452706526359766130823160820073459968767149220981166490607698860232214226374364766979424039538904279615927998001462167962236113780638816320452928820882158192221352459957750792911931859614511714548917817294802306296798960055757305808623363534548637935046146683560984944713306969280826925928012681208051937472461520499803658520987213482996834560945472262232983265425918361504575044156083927143352870342537129019793774952933768709899586960192624833883933282699060292713651217901909739664038716467211286446932033112783127251232339024479933667297785633138809055579369191098734966344999922899119270441905970780217131051165815465765484804994612536757226150710576817666118477069633034896048694812707166122113201913417180025629644992202969237916335207077395200588146100267923889173706815576142847184872565470250551799941440415662541605853410449586621851101320206241395452639847479456481507761663980385054188618947848956648768502653182380713904696775528065596851469556226278326077423300855970976028636587785919057880473011790233103496725549186813036134096067308231345417094508184189678366466203854911665160351719820077361610026643189788114652944185802739484875012982263235663172911325825528519678161903728512393448973388293380122746539344243986058466933405713339624043046655482958064753006384429716004885670941526352859346823368336120273054057495488189629373230235084162296213860109511818978332297013576315556567146514500503671491214413098289303316823813682231429506264803860652806447580052219775326470247291616988116488739602148017753696137054999840042812265018128029488632004848754358335366758024482934129040230418695338046382679332134009006995335162566306393635489353879715617158000945103144860685975355853562484889235776529401560860075943893579307470920760835639665661462390997551382381151262490042549693160325546216317591369889805371255329604387004061781258155943638408282492389209230748815748241312220331002214368148271066396837907150861049030572607113712397805337868378569162488774813595381780781480266700352533946231995784906523045920158335019501799472653573054377069895747254117182440041749865663481687613638767020905505042871992000593338934787347122290213299632722070863727524926613550065690356852403034036970360272935757417967758620214098844635205850404133143246910567496918861301998332428963365733491368940633757114898312003743298711186431548111311363766887673604922268205747227784649495011715715613360526584765037558660672147611972355125476092008488728850644903009465382367437263281637746678700299457037570201465359978559196180637227849385965954621670803428330021339590222373701502424400255666944969524311708094669387191207579580186569746732002780375062165233051225918038841720773139391696432795873793430733153731672460872976406902369098703514355593065594286072462462359713742162202350841325965135827432364484674348059133059041204840155147087315025124297448012458613265792860641979770462665380717209600723528284891097395584775586493093917483528059361762606094524049125629659221480070353125876870608226479830684064048478901026431811138656191557772645639166437197133518148549136429920799405272367672875836029528732988580948723392899165613159258197667648812793446648180502788542146835246041506887478018716725426360813667745475727087436315264596807139527827453036935479050108425234986811879840147682542003501587948871993410858541373918276502830411527284166768523264536115508153885656223122176369342976851442126776071746860210150436014181478625850748100892829383656415765055041412772973720757669758454393133500567347840161621795748043291611460769193746472532797607326151486471167611110086710369957984555640975955526432107524924983348559906908864809471851664490868979475405289654301809836953231185346044517748659645634327112722006382509416138161975759543360231625285155188333217980523396867464612784258177930022423679289835010422403420015986055651887737076849707655687013538378149838122522588547728535405457221214582279975587206728356298269475021866661030897763046473256644459478895245075366743903218671695386477636976782302396046107835553877306752245642661164866639619810835047408560652124277791681916392851452050426722163416735709050978556576590254619505040241961282794769693781272145718693571005782110260945985157553069792775275845078566686135449769522482435944317285260435442357950448605772541205772698158497137838177315902283013176285151813190770409883492181771905350986079234917624305064201945201909767084367754238606349587971897313305328892258726233668047326234813347293184498279429893316179917298946817792858222014894650390685069675672102005275483467605716933542469417131187836814816932663326737653779655846380889817305209252319975548380546638430335515106710086387651304742721448027433447332058222138901500174168772843779418715864521294329215140042413354618443596793910898764076722520048417004144863159376712471504625589168191145037145225705745956288910229101373902561404772769884093722395310713626253050870327567523786824507212467343783876626468220634683476139889063826901740525194538139381207445917198357852476726908359818815579849501804883331499777188090082490964208730111380843420339122671346741243714607096015808025852664443506048233788892796072773294826123956727941758422953466582447470154425175406213438275188353308861245942764907489175808286304164764634855947606306943210985182074957372720244110016002621850486959116090386373867649373302555628024286781219450766738110233601010361425190119452612780525577017570776213822755798547073743420555306459808152412580420338512198374488956451352550724816180871241124097916253947752443489884116761598044870197443531187656908979212078008118291612567676432784641608930456669195245176252217960652882674504264549855377784853389051436518424731570380585062990584214126689226222545239646979431687164843686042512711339979749821872947832935984008313019297272599004957531629230299282570340215063211590281889190520740887163098685980261243875126166323614522800425230072374553606642130128407147072935380423018723907417691756112735933874853206432734839398841000832239126787862454901297954802425437983600702125312042411720578692448036575680303626911100805184244051434399935648962735488142277909117327998040486118648463342194398284321700051346486013872096850241822363136989898810834584363342351683959796257065897591354562212002956597145909407072118192971879659079493098930199022598464149437758590625381420405196471752794346096345660633882980982781427200384323720952717746486644167629614278036283154053943067602293884190951717305934603334084703229364761419684137033721103909147132515091795444882457877757441065675708334070414057916198614960320777772277589727984897966652408971503463731821952815791894844008094767226907571482266558381330563658382604229910000355254171726631429480895377708767903634564529691322992099717273103522126225507507970401428702748943824739798587396833284275711342470796482277326314375718152318805390963163913415366345845190348336797414812511194326092450072440774055948371705777060573046902511458454962294046585265331338313881965858418653742598045223571065107259149965178644334963702649148105815992243424147146045068235968650260917069890885105278680248101478693759973599900984666758043240482681060998517661464023643414820993924137357907154307885204030975651776055092917851508512638823253129285950419819008293480458721843300278853742354452096252879359032341462553746777350626611313015511738412145571813687073624059908354724765378509602870744624053001074104377158564434176440323033803483636922615682199201847230864997876688518995150068625010042622309909959605472365365013747278660351534348955057479138662425298474030259463071482089182574530662444663970038237759013893796692987888403542718533896184527851701839484126711125267846720362340553416184207089939631381709276503513146279780788148434565272376342980329388013987590024692056601712109866861380696675316091809693850221435092922899373687030048411452175253513409949470372482835259211165792033841761601073269272628234693141515098887481430653169970957196981309087561765183619472418915357809425893568386071501944531186814477348981583983357156591954013645883422915118179936164705196688126613196109351676926419111502965746110399984359968792457832121971092709538815124946935126136788899395159813110838191145476856126628343602117907087511784461838861810294991394235729885778887295810650050414853588715152239558667707374121159669542326152602672493665592479825356127579138537802336780156308361458210659888744807983237101947446401985952200425893674026607287666071707929058728721967466603271172081052054122172728485492196214057847429347619168801228947464230594434551933645731015372450116734497565019516373213072544624956759313394879326593792505729494887839164686557278452273483285127317701496448440072860923534232973956028672318436643890486427587705787314988700846883809121111912098471677765123095686740187375497876864695508832234066181173291207118392463101969866132870724399988630745205683490021613970297424208293877059234361531180114404909186911078479448222543615258256482766716180882717152259975250804638162779157802275514536100146398605972534907641367202260453600808319722777251153163929747395771748593873089470091709515819772448071545756653845002878380042851655830576681248873536034094310639631379325515882443209428852033716953855793744441835071573748655893095736885580514993498655384830775847755309938316892606647038156529278218117111694451538672897876198474946479667503129626253506405652801993436923158243221721912778491445634352078956809133363735739189172761946103865190213581680651775899784426018700998604883490658130946106922484210799380604677344865169131137044544155246993573009681627517021995271340438953586765709979310260969974622758307658677465172573862567279443806699732541868676049493253966003007275538007476747523867282810727085678517385970643852249192066077679605420914572396078845966121852401203132455792023891124810883062955847261790518910159414783370302354418319753663543757639182612642718636606907947364484589983344199894959168875841845239911596855373617667406825679254105059883040142906480342793531846434206560042876109503304192326177465480742055934496154306835451616634801456214931034404843447242769081472007374294744788194549317712085610854771053418769382668601774158374044692258508044036637243293484513703426989729176127347806481038369804032314135285762840561081294653535447644291566647391239112952500916528681723391928361712097169985320135364699305595985380991125550445225304773057451162829846843410033556442263032993914840322523585108668545112690561506787357777874364420002198744696840080205016290054888200352373322079278375121693812100746949137600801099964097902080068383751805877054085714907291333590218156016227864437032416054770892212763785774073705541898356860763226177528642386390738334324903806547163423640451583785255385628174451207395011123469568611555158465913061861045595186715367262002958260912696674249590730503476367025846455459982401988522717009822438064013105574927798256144841783191275254852350524117149297904596537684801234898086477175178242381196282385592587195882701256686397274835432562151044079644999310653002964799232866203356827627799471004245838526556516878391929146283937883499439883719769266499643527546183298400596875117919154761499632169619538607659363239549319069348224965722849442051398279269267612980398124494220254079280942390683576426079316163881618035131584403646460161298361209568775050465932019295937793376757155248325906617314823379417690175194447206659777083915048307579729397970222847493524789250727624065750546595981041409859856456114339499710500964747498538100004950972213605016876843283509460711586210846131563252664705182811779505581457089493020357348844734523193628590915130845051040560081423157319659998720880906875066664760443633214630464083655812972117359539554887547607266426446943534814050070945879801267362821186865873320488603947482457547325071373354705507573198789939898289683647807025146596604125968365872002508338691646601487602168288202440468985381322603745653955107580679817828290272227408274391883684925778723455446181098533215364192558473143918364773063992369504081522630098155192581789786814912104053143399353424344158591210679653682925307036461887339941069648116873387155213895818177538581668885833564066722278851421741874965133353866081546625398682785648511630306780497360997758589726098722618885564481140914846008553156341290948937642989759808837711658321290465066582703405130632174674283620308133941972478555295638714469397041569083819233696054841511272810359553193524509465472458472990589311723156619331655046889664793588556823414773774827270349204394783397259347567397276699316405875705890000216249974379910570863983384820961132638956283134123731510554309490419154452985844203880512781353362716180717926993589754245121237675313012972665634897692157482885403913136277285740449078726903270169077220454283605273407026643944298589484839749867471530709476267772097398881503752679520386065983494989037578187207775007873757047606484786188388646602028788653112348515829917516138002273842893502073921199548577159583577225082141516625705578368863456936263059590579283833880337912509810277297238368232884281695053540233239434239477837186175486432584618094161149473297545015971857740656454462752317508909967754490517519211975465686928612038870153881063034441641689762868380278318546951665405260043467907523979703434212608846985730926551428342633006533268420234676548483937649383875320198811889834276880647149222682057564794772487035716403837491332766725303349474223211500303620924451494311847968678946139757744147391043793264483891973110316090031276601404831700377704801928904671298601136332771914549407542132271486568547033867123779089420813824110659087057475697885880959274861355942538837354448429673919578712991155760202328458206729615941463532068509786171899572466329998408112567833477644531625697201052678780810538077275580533450229183863011100624849463999786506526292678305345313071889222553104923149587904781003776598150247680211909337261183037005524373552782767328568666758173031562462320786807087249241321812298440738844973985844329668413473212559726210335891538998549272633107098469753666010685807429153751991147747574994057489855132497921415539634884880115414070008877966681461101091311820237968524357769599800031056212411734552331536964853238180568506646198578017926151774038536592319956607196185021704752865623111984528905166806238068010700665712774610441108816841763990651963018075033228295613987112430350106796843032754895446486135901885695949655195230850985596785637950331851316987014670832801092097411428691806047854524644377907488603706088323631729053328984813902634051957104336995823889873667395609264390272285892873078490957062617737755532770412664417362366535583358508733440713392879283974179026848072229318025239612667830154965550133481775496053692215119750298790883702826520695197031004691583717614134254388132770409042115192726207825361921915042966835351077046938488551467335726769876563210964281771726699939206422284210270917651472435101315840623701015911056185177031550523178842651348723675015829604202758619838636303315430174410585778764812773783833465886782202704576511362938693204697200009699026689522278796272390519331164361081268113250151937929354423540715339893052347080736607681751615985212545019863488197334683848559992110472974316346387661967351903759314964165623998257238924328838606681978752462246666247094354577379297139404901429898611855300710811652582132657184107050417602260691014289849424216988420075908833579964295954756941283420105375216316351701931343476909355988250248844770361069678830887145930379172516609484028190342230772526525302355460582828136700500400205066933136574892788274022470286520988016104250196336458872094625019384741902524126702452414867113920334595658455565548389140241038212856657453424384302306375528127014729044438966757200567630469399153351634463584339145303649063396145261656225303184483670588847826867478607903620784936777781385013675883334660825118109357751188131449059648923236463939649781815745234468986559147818263257809431365768127015437106422448751855670486038919916727856640304731910850671309509386712514601656087381661348637111902167868449588890823016474327400271954584582615343899370878613570407687874847379780628760000761034396888108511055475105132760504715061341722879046473930380895784758742626682601653473679564018675871574457903336837773596148624436560435099247872562856919034725674294690168615490129759802803821019648481315037670431623875493359634252529379158859851781483394418594175509398134088199231145513288919877588909704426332817858525731889727667504905911016484491214148212151732492397656253398606257447897283172864639147714131210645548782524950664642187965766600844772778563191136541178482353655375284993343660701379827654592443606518863530051988366678620825707450902361145666132281107845415700261809657233260675055279900258759211416812211379027158532543295880228208075573264790284440752305041263383679592338692984000845528178035177347575475017763710997069141028139042999512775704890941841255112469616786852604999025237255193863501573139353830782731689457632816014330034365890100349582106263695954314522133293266686590133249633315864724620539589907616913228520593682590996927287334806975560866662828004422483936074844231054885297655259346897342469004832601053266039066233421261018971669295011393674514566006084934860357523808545703979488455761212795146047792467134425797978002042610745266731494514807836016699595067861574944654057788617701730398915465923110843694212063156261816197734641370727372689404580839291228575909208523838798357787173093957123661456361884595192279378396595151526427932817282908231610553439651442170035467330716617271770717500400047193047608484664022598613374802165871141472010490088969841252433828506304209168922054042235333715386277530751193646323036705567269245341856852754582435071187007012636869781331233507619269258174659933569512589840590471498693091859410590993761640528724187600464657137067617859256420014846292743536793581492332563654290412606156052738397316447154168335074034085359782179372323731816091207894591026653695110893466879792261478521770103700969027315635004149116437182097811240720387061233784150910241088522912507495490602058601274470291736919965143932863528013174408949997233782586281246043444499841172470664872666303672146192647810195870398352371048833814450548277467139766822445661502415728239745090489734120189151069411776241150573701306724788056242889953317664610921669443653888844541913539883862468602272533026435202327102222296657753056305629238267558846616600819613643759168576577802842515148810220526160670252007787599052108870611108318681881812156172696603468095782970582198241033637057464369340315361396512390018315269522042757089664980185070383748290936223540681824592824286223875294844592780399913199940534758070966162724470176538251128567893987329769835032656791701873113463991034866795468479149023584838521651775864798779634445916459052541114709500995407416022748337624165553574506383545829724717003433093155025257544576688572317228539608514647787536024276550427903478445684105829500042806528762507635092244799589684183103853451195050253439074260993727365315889952316088474618535964999149112407636345602204111585014156800344094153296760024958456678987080940250009868768877867336364920957500861112529474671767234887294193318926448669606030556390486019608855110721675857999473727283179211012853120082770540525515858896302653101077038216206168009672845153284367376675973574115014722262554578296098643313963764440105549004339269853151770479231589899151282100766884867604743294449961293350838882025841889899762716161343371517380964917212754630696069254147567652926570712461724985934190178791665200830156561479689091359341507717602344281783829978236017784933399377600608043416061194928266631827922959401991122190259979482846278390954789659658881515001606965605995523511043376393132873595336072427340358391765085465441406069301810578474529303448032279695701309852744126655530205084097454925043540183711490762914730041821500755739544298545859652037910163838047422249341274544450669944791932210078473383728661515590268256758815235453562037085551174221609717430740951504056108539965852963207702747754658316731121127382371825614526159771099148302461879576603575575408356433294026086524566295032918037942169127798177464035713288833703397278550211693403718859078289948039133036985674348424993991206774127098483944096683399983408119301988358921664680482685129722654499914424652155147299523220250812338618485031441637675998634434703436106506995229591645148044415956881676552958178386319237040214963109201557537732754664205448704766280828204205940439033352386889393944084605107520243475541843270069602743111228699805883438305994431733365346470679100219241480605722691204935725256238380698954244500105048474888650516151384403178989954535728754868834781838722801864884557465537804627205919983455592483949060001908452556009840141467032998030501457834703090776007513415860921181887725531811021485023410168593089697686073192021298029890450828236180889983553270077075948480503361908968935112587829758865180046983464827715035027648917346957799489273804769204097841536283136506405676464827889458891468447669045674182798574463659737944952313447163797743395965526672046521876599712142977969504628200231108605507813576552441208328586536244170782618192350696137163611724049407436824660518683226716577613742499478566357569325703297939336955183611162900781140026890746605553617538931391621838310310236726063389049420915740568710530964676327205640641566256024934784418994587840813140941830491166653104861975649944244803633290763728614576467547902582171366122759711806178823567664541756197091949408782913257248150057437028858440347263442953760197923860296904550857472471788524626521931167947243129262861111086444134233310370725378666808520640236267119985724873633798100269708066556690589497542100340591737578777790281911387370733079606884172109448262774744572816711105147164876239303704570041193803812633943488455862856998647274335244377302063133930500115039391794058541698348091942734310580971349858415950914183213424307962609422715003469020083649575793165241835390559865973176147919890958503524880078318693209878323198938763751141239477255227525672583006735885524258765199010026427245067017124531603875527688702387447456658326165532349081208173260218050195160256317388560010504471476992975244608473689391645044450760531723289637308408738516827036655005755638392195285153351758833138635949650719245521750091377317797991587648925810941619636178815093945501679647874873749756693213088316066486532338953059733112833535403973738170018161057825771603124168977295565132188167328745981081339394387120308208927708768325366772805390876266899723791712765110297706055710006872974409255973260563544660794256872778064989734250962701072904099239920265185553678985497616097044400931252460888709556197028902150949217069769362448360454774356588733841993397789532166251785514018185542831855220668482716186221836068342838451462571232410031022931248493289898409301368802454354195227440369156170790885234450816853650106496730219020446469901829533094649732188819007312840458018522107111330440530122711224580996777147093318057256773078215338982545582738784313796334084307237621117461584327425076963123030348388401520133990705061283150929464421065499447636615085860425901096639318343905950755495360009908001599386698790171515208794659806287843209567167766756592822565571222157600333607044002992660834965295853675767558914398878935981035129239413546934997220141581673548155067089663545779013620402535491968156392473638765438590247943976848457674933688217714678911018262802555988748124159187080146929318444119316048389444982243706489229483076783810483815009953912185270329464178340162866201532443219801849094429159030358658498376474796351332684628735076665512847923049283635258778141202191052335313218497102184443869716850086470620322633333254511233869366726954232215078806931984319066979091178025933686880762176022876243900929243840583543591401071518737692438959086655236709343504196942870799747544502111832258969789103394830629186038849444957896911450216031754120919144774893421974198083320609685258644890799813096914783721554271375699215652911758418789456673652569187876350436404161352389025000385711929472315111394895793309173471661264080105275490029512369994876646682119579390023794411749693560015037957128897832690779644729180897131358632178366843206679946521074735156692135591349130330651951546103566104185887237359667864627554158879790158368771821805461084997519760495950442861631425681847565302334786708929494836724684797024768793417389861925944246051797646476172219235885191003347585011535813390732402354258248536556288169487457825392316519226122716207653998807775171166226600224215848912935566995561731467677594334888183154208490323105982126206036912343925118122285878717837329628940035896073078898527995331056003026079348327850188144845075093948489475844015841624725082483183397916328794112459175209062897778648798443204411341714894796455645270221122112037790987814758699542270846951335983374836468931496523655721164615994069163945133177511300951148778277490301282619414650524219561405407859745146213043100871638135580538518872041172103451173283470750749890974602742272466500555134699803680546438754097054577054650331742401178230626709198162453297357594023765401451158471941442356538449240245219524353444592511644472618144060244440468286624010321528699301497504238133681243513174137300772867411940482676928652467988748625550627598513121882979541295343341252352870059351132227650936850263225994878230003216613255754966569233336357641906716600054797520054883731987889551954429335492095339286248382165227456348208254951664037937824255697614282052026139379143967751320729112570795958607236295095012100708986243600881988875395694408253691651242553040041786250746255515237031402978570398097353327961376882835893846205217380693513775536001294931026397552019407493008810031599536424957821275752591710247812179319214618161618575250060944009035819854690145603578680813157082546616603417950197738039138170941091755873014985836236703017005541731367172331359656537972984512504952313395661857094281884586429120733992926540681873208755205358011913999333448112047829703277193404788042718682884575396233447356281503750356729825231335771129892023100752665500674647537034411148502639691043513246366428246294307913294157071544447133619422559692145130980511588304149828980265639389725882885848567467070649642825339907319464973392876633034537522602975702181533901750655584532402561338234596532176350229880078768210168967779764295997491013964163146678308078915149066876823740506025219472371584014854265016448006092214424558409250564732511372079370802741333319522618079726699608759500872113527413185881798669638828516372947401979453579058908974011994422398239072718144788832831076615703048974048528645872106620434103879160605049146772308922776964846225633974841824061657049654563521980936245032125705817221572993287639080114320257220799817059908746924012407344593751135418592157751277632025449095229219755410835080205272842546333605948191650281399898997635237545369201817258368635127081374832892338296227281731018680406049854089110789256310440398718131367391057108416242019402412163144410853003339040376174126133842238517265103626930966264685595478976401985933595942786976021058600273440000616643677338262961365801320230614999239390763776310238419535305425921373510221694789543494140156600992023720914804689364666190874203623070811181060919751364386729374335129620501845378011901005311138703967039248968905399927067997462054501433344761686314654152483104972288955481240323327065192896829075158269580783979930487288039100131706146115652895767554621100346674513372811789524917339998374897360101375483802589987070771300699351106958967924879111788026987257541809338501682959579752154501681837889566897936326509654969389035113290415643227607549919543227597963577421844345229007275338765216596852011170784511292626144736959323500818039227251349474709233870519599988556138286638370685148418691342310592012777491895034768780997157056354201461989391668108670858330214009318537787659145037685245853731998451534932085689619936442814444544142209628739751135877177341708140957955055616114626157426469861325485134283766089755798430491452093259401961936297940351728535998937965205594284930421472177391077492080813819782044738570461229563550807065709952675025850488045941947196691220192818647999434941419864754847854411109847428104839596649489338944049701538637891652184001913086100436558205264511189928227479572351743827884765545340634288847345630412474186812654367198745320316525112781993707778881255524946820795570374791529384368724846736993823930859597306764672131671673620146969288093338532704785766861528272886239849923251952361275628400150499935138709307961591105921527199430282445274410915995987203769442230824848927721615740824610174412223728424144480933368827480923096509541117519771908292288546962384203590859017048375416344673407196874127273905064799908072202296302927850985158868843672860704734325798831825844918485944104252608812223016441981914917291216900120431475214695724570122789398671938658259140945861435517141724143099418115735058980524853194573888069182551607757284228989207024476638082016481044370997269234769337243781493980982072824790656233443093337831840971504498269317651387464446587446037153797701703539028812022474954891226544749076299861336092053437932746837066575856152940681086110129722951275013580113845503736982491119370959725900202176125501793139476476923530449049717151116221281595965975289246825078451320185370108879179071808649537265794552834966654374971066816127076350760811745526411818275684456763047126404810795651510262231454723819046338449349870844270954370027311994778827102262646771596545005155547222834123160531384230492503963274614710538979744855387803984279812526334092690915642987527582631148840094900204706246696322265353238550813506372577081001994137721058822930867954113606791507704975619824599006024440299328856468617930420481934673956332710611171966742275641425977141414981172159296085714368262062167507048400809373651325070074504036853158925772391837936415649842561595649519321228710515139603817396547862151861017794060555663453560110485562685707836113978055374352763024160484161828434720290018918711733206728762731344289331306250549904948360958055841625740816932269533251752438445445633744409928956178114854179225855605598445660514077836835297445800201829913399701388713081837778687657081320591511926745782106205777938484672791000792067028699350374775379516023060901167122110406682937304980769739427859413417340175482537210720125835980381221431241026402145621135775386935982686726301906846143748936530570187601571976731645128813135785279166785378064337240665832827805936846892129005379699105448432198970645218753560926270011921166941145901321769250624585714531165957785972717360291284120488461968359811619541972245990397567886881644820397268246207622701602997831996830184939826810294310936568563301532956875647756660480726357305360220984527049772027326190935302515052112231077486977297894697919450688569486310727174282062291248318158473196112429008765511683358771752258710398212710385099705500738414115849473502202324567930920610824647820848387752300021552786631704175033463857175649029835906731742243460618667560552069899107433332778274586585236839319578658142662276244995517052703172292134940282671292912714759698988651917244344157388175373263690765189979973420653217709866113778740575385397895609481321442732272467875757499774351213191355427333498641663149053499213888991564256551580092308199214783462023545329263918728586240649642049070764212011033789008470386142889843328667140405958584760430826309610821270085806321254865441725871272974178856279366391994907807792896721644490667498099162204610271482776113516719029299567895836100690547620554607421655883350703555282272362317171737910415462688133599610894327024078421310859466201402299931553514378535135787955436518418799891783859580725868269695070778873506975674340738290192937298829683991291087047135599531846294597525859563627367956073821912365751311201543954618232838405786566589531316146160487942828417774476444970248414980378267756210421713640793844220394948127345780657572377578597549724731030281234251387909107032875508372640112404977881154898311571545151850087622903476470899589033724597473786904540949821871870535943973007032181603274117845476930898962739545742365760779636957211441227183082667923349214580715687453214357539016690354690827944628067033145325329666145849008020755879990178988225597934192825774431530473962838391874218136399683106143262826216318486863691836353243064470070163529958094495551497063121178373827983380017158250712955568351179787781712652565907561569766908646325647825304640489563609353999157806234336361257568186876523325957510605433675122077002929461833247445592704090694202941446653410998151839088291951100374200060950801119966664083791021241757468582522995542212273255724684721751924043037207573162150620823396458771351362481422711522786857592424899413365499428086206148735589487399041664968370307762867952686526712388877818780161663707116139503181538209169420376678919438006316193805210965415776113204230566119503146624926018350439567306065290305726191989032937871918976766204958006896154324242110034266450482827751404855568829185776487215653601003433114506912548365748437153518593610551441323418717250227896826430939697478485329357872937807007611018697187496807128601586909686163683573392270713302968962334280345524609388191849517110934012314172245985074748734706046508473577435600078382456308419226990255102489282833216383580978949492614460489430565959914262610220477712468539950877074740689872143564947488924847941047094379415565568528083591646238229404594609186511454329204569667418217586652117320467155862211317352834315692550224133850419497700852789089540825746474452116280172175542756327060666831735876254810197957423739666172156527003537536761970570517822953001884702675227154042801010201954283247458931808007431281646631758140878665998141796772020265790492455246207715687358784235708355502985543142960633669145222499170471087127967709182199500877879519329488869993475835677364921954088317589617786593842366261666330956451480630524702093218846780537296193961913864630004172848169322609918392320548845120509617241844400660795752709542117707927732508678074940785697132672238426351961649130530037720209317498784195880676781335906905326975482168272034233257516854540122085236427122061843244100031416368016089253091292160189651755952441539645233163107659434905185927152323340421507829912410448611236904123397665405042558198730953895235047226193304413206023545302374120380029927938183708381074157453530198629665999912563548883196247190525518162407960562319059977773062444650541746008069512950433123036031360158800037256481911593053812042966221986887922079682368510458540449938349953928225749867395180245498891880287921740131444180777335873330998759891657113567936106046411240804704322188938309775893032377671522793659471071734840629521904448606975053689019585184047610921509525925825445015066324449964029331959161625552530683372233064039438683142429748081716380629198475219809453555629379143619711302607758253381710231918714859373424404567272187280883700488587382857029142324898290910056877367339085824841833002789600719635326337758734325642687842443764140345899342862249911464861401330205530012223792970198215387479415701668558016980790890568482269313626997652645415898831102991761327989827980912256039518037036988892994211108983658965793722387940967360789974829700433004402597745361266598827116738674088810659225822105450149740552820768635102832235483141150635783788180215397538682132557597018844188602389902159210891552578831835335153807784395660288439769825620284044071835816183281191548923838498371190706853119728813495062923037069859935613229277265101175348304844204143402923749968580117628983866165589609334262482497916162744638797247062199214959686631529219419166092668419369830869157931382524477933414520396973511600867735304776439133022949061988568068150894065061727233431466561886174906411050192101105305872493927215033477642380622469598233133156619600955620880093452864088855317631173985188107768291129176620897482573110747689411409159411013830925420654974098153378539663274592941919237611329161850682292836601686101222038537517216845600916092145658453379774850307753641613485599544668234363414476229704266446116519313922652349542209390279701391083685190050441458669711852333548934957612733440869841055160478516586908978599659314635755778950008137354710384177646266111173752440847706147379752044240010965304179726587461832587631012551959795862672332949890614633435131320045229275727728056375825205471619028460472011748609076591543487642095912300625498837244850705243712537222470740620176702535692326664389260575242890756408499877355641617651347518565967881257228395490053309388501510978933789736659998152430196324855515079979824149865108792278747781601904202961059718162052189732780997930891070706280974972759528520845151195410052651487446460780839369556559833122223573777330135240575937975883701796527569950735086948878730217773022982171949981403449501692460868907624269607863729914035397172194944215328117719105833903308659987782484362138686756831401821336138243745915081563464803385231367017013357240635585706752659482253644391494322845659010252352130181310387237891814477117897157240984978575573837307324992878095554387141794391897938271168520017563073294543871282734015596104971916148527967286346654903908372280311000373073562209363308945067903284084867849741550364298186162505862783180304939735329445286353553359821481575477872323910008604804034644098725658987259010365052581109465602986378043672706283437196605221269839850582210983153096408344186256067051498085442027667229359831869938414682103124805581466903436136023308822458113351468031432390381767455240317669942302702345714340286151082045995299005262242854722453247695340114803882955236868631213189553422301614490432888289561208279453490013900122061934018507098412668349493244061402648415677339376267773549076166737007815809051461935747849009626503448077319206557119205637724463804337437173531433303240999898506705630248289148990531280417682278929209754642101180449115461403840386801630598234311550333563903226499997356669960870782950705684461173756854207199985807101357386222465280303842049430144383901040706625855101477066527325883725434022868266497717645654402680677375531780827907627765867917392611666219307872585277093884895228655955332009587742251808144749484505914362389739207014007271796167970429665781266907397420194818877038311662359942099022372186623069904737321472125737058930202398256324229182319713424001750120232919123565754270649154864611742878956052814668456119147212004917076177739813290603529429804568808634525446219570753119962629433598737901665258345456601169772723007011114319850314849077970465421272443993387090168960044481233038704956230937500955667905100148288119304308350412357664295715880339810077546355900064410148282351802226132003924553854109225695303909791533003671041620538237866399421508142566522545715794972045829623109313597603800348120015454561726735195258411398378016565458670705411374296440389773037394297142700454146457753959995098540908378515646845370976083929636908264400347279536563431732145936130975169508242730524839075963652992316415665625165379640617197611711001356069544082487668646136618779292717830673470629253027408452960305693239567610411664391949977690281905480830332879071651092490070464264131250204415865594909975692297772846567252172869421601649798572058118507668605844332176534010439468502171787791839454723437542531595099014614152714315880824027173539305736242370988733713730655098385941880496057593135237356741169632920444406100017925970535352752445385434185215154408243134278084924063645842249967143990968947271057672364488425957646130745363980753663275269297444534286004454632624167703993929480728898791252655487543079679765208781207368918443817927748865212047731197156622025852414104375255530405014573212437559283426161963095257497193619746292397118061435699541608552462062332061297389810803074060409520504145597476697031488450629907452257993687062252713488356758131332463286933847131056834654764944963886089833202158676239299053491343955565010427000758776069606749942192644553121628286022803161396554679462663735410693816103743021167161000514224674234334354296942962063384780278774687211331503266777251071364163481792698224866436304276459643526842458268799498780849428554701133872662930277055909793194260303219351875453460838939925439076706772736431020711874759905249194047064363724196022865892274423326794509093487181634353221175716126480702503927278750023070184738827302876205353083478095222882587891835748987825259872079414588762984053279224361871721192645831950956159598733817366191545115564766087380447554730995800330946129918516424923907224223211146297930106531545579700382428422451614111850513213418953748472155445312328309974638725163779832291146310154842058171620577353743477893203031378247798175004098537355462091854246997314548036971764338183872807071121834198764990731925274477059026372730201694447949966371478536358717442814300654240361714681028641738063967399247412331742133183598377003164750562716450799450312465929024050386483475578791543180948534132963050459536171934417593264439005148176590522766376592119186900882275941112027155529107682093251320680137527583771773833142994068027629119224372979284493250496000753309714718119383446931888255941909683479254235031322691174498475786093050371528901373067522262237194050142559960518072093555387792995416078642532885382624794943308291004582032293998149458436763990282035201351769344419616101916461493368913316241677706365420151360884592341935191593397137315024752839964805027982266377594417637177924857213567304385712128613864563557174890065574645691037026430858031629940898258386894615523735893483814250819448385148357907971181842852636179943063533683263810681542363265998507206258077990156777025026345775744802401483440542416880052759889596456351481635021872239155590968270848652600564015626352280784741005397441110092360338464758850910798674383370404553618164731232803894783225386411837857761925547885011642425401953432589246573682353136072449451746370183553546307676228946295191766374315740533070839879895695973397580674361832067183356621983887997315111492865591708499589859906560342982710890635810329354531208203285205635083003644806250629297202879969477177484471033472192569072237211441330854570920530264259759981401228147846137696045582821206536666067255998271128747217057616703566067851237835794434870708774865915631338388002970324599383008427695439266979308270554553148698550493815876635050606312402678554517725089943077802508852641162598098866542248389217763822818224288110572003741013870029474588997596350216080355705442669536976417618860675023697010575440016935076833336264272797110918735939032294353653683517311608333581627940995290909514756614482984338514092430660125497465854807745373128156402488357148710444774969287918441622289632647797163062156732390896711478427618232525166388431584718966915061843161970089553259266023884255805230517055787670450669566589833884738884816818566004138893686744533778892793971293430768529673001355352424731872816396619010319232401726945644711987671568804777770777782731679233153956969327532488345068931721093084665426678079080999638094994102084942699761860021342432425138251067599483519248727776130319032094227015820240965673241116530822413530216505204879198732669047378169327802659267706754741257214605858125813519508663126688427902987906442036183152733043839289371736029460567453280321544656139820795761210238889928447684431398755662796275076413067798900415070264186745851576897277224629630643015305362361271718008100141613953129085980310825999595969945181556034834193379280272763560060434091102494458291885194685486280221677700220999660317861657917869672634883645704763563755838233903342144405965006010794642112440456201650702242368980905561398959014936493606374954914207258282935321643205793051807109431655391434319086532845380946282531528565075408846227099530401958955537954606361683126979706192221473646227004054426686012971282048338655713193456494562726792122344226312258621108450193791275395308253486955979829064015191071545665807294184229063417123589656099384140031696391813554043735267440180439655112587638980512597236062880063589763219710830391141139169245993724853965603275457811853499290606073875528871999442809703819885440803435024577002700615371769035140186574039938628625923759959668781187925200456098507862428966256616172357888086644530273131787958676616753696428310942501083746379995882760583133811698325235780714749433492758058247912513442000911374353090008419783669923763417429727041425462738810217762034042829458363789407953182663149957666978861960347437754436173945854192834250141431816920076137249266877272650123460351068766603005034723608080965931968282629571597585803893432833689589224458301649999404292653150551075793835279898007166754349442441653416324405046344224611632405315893584636107226753008029770211238472994106358054956140031072000730121870717303958044063813902072960503633607736018406613502300439596531400658787296279409814605685096328579709406930912428748250736370927373020045057786407368610303830155625118030249018162756151224763337179245332619041121763914567366101909051006094541226783245304180268765620679109139908275663199899578368718905475989442993454822335866393978144330444980904346639762666606076271906264608934694535768262039835127672444669286591712866091740102832616042876031844285748884822395008058125129246484506344788479234822386324978883773374118518366436202599012274351283589010399703736223882264046711002705908050203757506212493094420315048862949774716975659327557844335425572828546420846609728553278005500944225278082225244957464725651885861119799031755956458592473087861144949237670261656070190252918827078129610753645015310653798218205487616985012802911406599394678788113565786459042824501933123870177242164134933493653701179396244334619549487761124674758727810152581075683325304787754416006460775139881751187880031651690330340481822826074058092317297269076967389686259267591201539675973491107890979716334138634529803598610223159432669447589394919451157055006706599060268824272350864005632466714051333161570537938465683147121693299056712789470040248992332155349175780464409517181027906878530728786663710459206913360417636077984391111426434391058142559763768860708981947161332116464387215197428352814942624812149634124969512759945418974227317717754585910497367043820914286772329855329272075195874384583541586612417600280538593955209445854357668452572322037023670551102162879798771417823822971332938147552531135594953914139360410463379301544692218040590993092419405571131336348224670585707385343458838917675244205953993852384876324153957152211699667146774749060895997823393373995160258385418083712314109564612451004929905190434347225862070621228807187657499444201915465716329567434898702791757811956632663928803734958890135530889902060633835308656646369167101447458311199654651244492033789355104142137371410089755420085498935006936284252987495798985836717383671524657678557129197498509580809837247467397726634040412884400013930055938570737126269999231420918685974300618227994198953373457894494324172587658988592242926048344240242960488236857532108981825290294671336051387712822705849818109971817627319325836640491772559542149303738271239437220814398736250868477784982200200708878342046636859623873800185301424778377524699616145972201709329921626548278597987322069968099710765945589946318319899684627061603749453650498625766062356671500308763946705546621872557816484711143210645657428678711169599763252171364664678142820650546255358344952382066713418776201162791961225527445343466920149824871375481163979954163281575838048495942718886125303564531544745855923890943291128261296481715035770631008632440660207746157717719390419952312525853668335839982904432214711214089408757067380053982707272204311021721652345709651067048705325085681889666007519210321899638189633391274840751179439625893526870690599067495541179345800120617566181410267959036950799833886484310027681409763820835405109845270872498002950179305168757966603758715023575596747995734195461002716878465490172094915094608166926404340246764238622200190348519392073359047530075611225944024506444146088308309689970615324843488499431947533231894813871747038414529530822183810380000477616836112346780123938092058575883838368698559316376157983029025544676388213414929210323542129357914797999446299678559927475168707925594449593741265704913018469038289747949316661724234186687133754379426170296525217680582442891062236070245854806506323774413526793120259775899783206131893932793012919297214937610865422573382794038335033800445178033559318500522814169204718690365627185744942444856072568861890990297517301422461597189768655394284246628537677840747520643200799791804414732351013372259933545574640569289250557630039992571307590751017030572936530432051136756483201718608520541605923326353387197102001319043006520212833220723753376518016727195137734921610999134133672103934025764347457780705804916823591861055404969212314974265345979584979029092840303030641643777468809199658557793640193508970058888553706157719649928429674400902598947776665526124099135737473822549881567608420800022371754360690520985644078368321201834612458959626460290579247805814019183118057664253026148718870275672364448646876376493643941531987497530876644661441507270062735937739957445323984351440282946259794249854212549697287847429871427750505694711275585837974378611697254741651384975269866695856458196018176918638122426574288556120658606269745459438450201998465605761383816875734832377057641447675230324373114342440780960822840201429918120807945349233861828824708162240600346614790096271124241955868016099436227688392302890134720640972530794947452900110470246030244933573271713029006715964297814992767403062789367851161578483518121511453720982681809662215320138266913201902456906327135091876829197886245545020708188234708208022058722909516532364923684669828690212963888608624746001217203800254291492757475484320784625290637588957695954591236672101711590180667225883448287521201632196025557745798751868289552303978163727685731862349282790566325364839150442002021017012207727823304275787512190805192684445022777168755111902011952851614699202769621587851970709544595827101856045136563283196957484198322925609660971080789176718374824051074865377938326106266323631685402703936860009989070004748240981721285713041250028648692170152865087291153063187434659433435048367478485857618099566671380775336045241802898156218025356519390773295724275243567939795470949862687223389524159699227868980827271078287490330498253106260544725599246592249566409391450255033968858582689935698927064502150877938677970954516597504116585647042233039879474207400501962726860497260354256667397244088704805274958402226910073117675674189947958121513428095342901970763668886585683208817208428870150932389953552241427921214915279811518243351625484391910187510997885646202878752021757344292448477287115758552104236892475041968324006832972736675858593748167917508206951070403717289051033860295289797055836288411843521975342352886273067846687244544595834848549713401929177275646909107001987735550242375777640986510104186336458088054311840456747584465716599619887134652975571624063076216272663650074765230969551713813005958412736630352679890722753002402576773625917203417084611271656517791522207793969836542603878578570263281912648841365356624580954359452454543839017645437251441690204623131439242958534750749537358638242999771792960759104411758973694924397242771282307416708502176667180831088278589970738395205494127382985611544213123981994452406603726343062218152886355520900953165035350317739149590402107793730055961275020619558141260390649375410695189529959220515263134082836002431079594828629857643639022230953085803603327975721855351047737666401585013849730674407093960075203322124031518186759403938107478137109097713086364798720086387898032165544208870239543911750962859364843207314978565499153696017926911530063738622731248172302755419841213574137319481091180510512618201204161379234272101032319244233573344399711706676655117667905411883801742481096425911496845244179685168928882521713425203317933039199055054639678069530432207755947849139451857769088876480215703823068787474096936249589642733330585629173314957464717344024063032666632154294168335258419096754696308924132171000507201704867784115454197732475312291458540667725099742463427521517435158398227042841135792277729341767440186898406766982160333354767249985542998129045421184713979652335970881655586778019528092156206083374606315387844786738618753811323934436181367841548359790872180249585248757656662288253286006861484817635532594348676754093280525676224717611331003640778545817531408263445188052444052040937267502883198627261560365871831201767690034773806966823423966233451686139972147949000964539507027395745213647476437096603222853979711053169545909385176742342779276353048216471490635900960933019887917230943517475605005247776971309027668365375614358640413888255287865716718026477004275504918147609028543604437607778161819739354122097054016904641589843179048870341800993633684419476665254632109754642161281851973593928350313970072609057946107206453899890486969002105426391256599572145416043024348771857274014318576338428046670132771424733222762099120515602717807363571894260345959704215296678144053548023191940618014774558619590899038405753933649657133244544146830198569313258059477456309678014851644640027809410050557594856635723763552976526181367976869158509814661215863185040039030316732221924311555736512624929141927317496652297714218694148032992894944380291216938448821377370816154823459075894391000921337586183320584543872375201532799887590080958631016211945722596165378348981362001600945947587576722494174214972844567092181918426629763514570843927621926010187951861900601593948809847114893411633242811112356183937242176399404969876461810809853144388476583060938274796096904270321128320843304266412726360625033422948465753884280474602761793596142656333016000942420962452881585031162206154443267904459308575847856601600975715589938939118913494422185618534312913189128793004755953878435160569910144712735246786118380752707055263533718871318609159112553895354069331093222334078311535686316676311890068403849453008911962140150815405553697849845479961091425685718648242350682955778560639182973781379922062901229301224929929635462676235697429038461589444003607691782716271210336596502539339839526803804261891899793811679057201423592564449445378158755369580340660264372964538125707563264593171703230161617735791524302645595677235763447415389693868801507441867529975531799795042451750383664265229511052307702765183063157902196089249815646509220297077661190371918245198124752625844503542236975624483960054544618679411154237384676900478815863845366397833598976465289826646281945427278803890667710185527935565022042635672473018473968791823204438388669132477876912673306310874767608616440134389499289279989326519601785438443281775823343036964551364734235767371303880007266115752487015181851110376889136355700063421261691320448928117765431996622280635124075647094127217992586705780898222763390850564361714564334881453606689677264515392000474277350065997284536453798604266855760111381631701092515902158432806471428170413944285494017178733211454094880350737705485255380690711654791685815544546008212014436575682863433775145113922983391114020367755566541964414962486682710030658406350230681696845512728865913352695107815137043450200328001533099456313776850003556350188598472770165955033958197742290129567338998337222035654797149800498789934623833015669405937932234389940592443876191260481700478021252619039769169105177423992824734417279287043327248890469753873312370244113074780635346440562598953486168429859759106429318079198862877398551774982739799757096936984383198988764177432369997936005570715688665537473717802130461975154180074923846196770649740064139552591088058979710370221250365223891382337077625848014721236746863621862756806412541804446475858379297691390415935590542553145551328527471610392749382837091279416302025912378418043179268572834574673408553513379949866564342558412202158458863448617319190821454117018619286193471038980941195643617146658206282862107827316520707706312748164260013850314931612335445632242461411168192328282193648211071509330847690484127794102326512237499080419534176267680383299109367939865509161839657567658608734039008439809471495623283069122556294929665927822990177797856485608394160508494401196495644151106190601459325393838479889916743324706555016142803491983360403173627963235476727917278147993961123041846935454999670366405589560050897426015139695392413577620872999770898347604153064883132649139898793948909521387263639170787945491466442429519085304652838923792835126573290950192328387874832345494902650307169918509857985094388610372650801778151793337093825931034223629201124519305631500004542662956448123411827788717977118610437852152316064056294221652976813417223209828464907617950516952610603912229702128411226699407571476424756202912636031662034455344565812572077548911977507714791015496343274336875931955816412198381252722390030683594602522783870958761864242155689192586420335581920011936921927855335853525224801895543292273887448831780367719997033986856254748950956835826804418816811319541972106432557348803525329642160193009722235546154018590548102462814460422211945315700642868461422045648863312316024042774941032996505726922794958659974331003893698939372288377022598047756790928667919378927682435705512593583370504261842196212954664261402084150143253757694293505458055012446327606137237257225472125057610276958299833476368328947312025248092945678162907778709841873352466103852190377016398165703512387136856127037011063983060499209075960232283395564377801476344357155761651292181643834893035416701450279917214598314086250145693496673444177038092271075624697399373226603717200013300234672668071524125212130094384285930269843268721838951870210201411688417699681347491732867778955705791509652019208387065537282306753783405164166949949253925098369739352141805457120771569741675891256917519064579442174229727312844778595790686918968760617105861323316332407022132459724082495098970831159693027385334332702089816630502870303895062153628347469916430188176442896819995735106628139081017759887844301678289107542187316083671968799776697089728272042687825529724914999916235186663076018066312766615817319516019291327688092992960703948358804193487310848015736441889666363643988697936923705222454000720589686887195395447925722345930051883505133483795059132412130486097469368019975435142868686712388806236416106905542056023290959572848152117102140970804893962669673812878819316744049981908532346006884356809042392942341691758663161683329620105814303810743079348739352059648127727550248606995844806481624190439449762389673343692680366812743045799998177697035342387263185703109821279144740728611349279790448489763582311121381522127018907636890496986834176768784624206832002924815118033248153726717855052037279264712626922478677877035153284940887511533478296452387049227652529656343821966802421047304244320395912650764068170919694699149448479707839239412032541399682089531530412411257749220192496553418458296162323900830966841167052529530123749647667020981476361363394530415670672797342036660147603167130493424272771406943477228134903664696860727128840530494892586836319497277291924430887191996619239884867176667290494946336135387222521835962227448711463995717401916281078933105732202978789140794342145373540996256597985702559535327636838005037044848538581498109870835103776048240990803841427893589658696266171395542034130387077116258178232049333633012498500858825175763954919849413184041001196039863655604154514211004252925586889919636487718822150897426703251021426503722432019513911453887397955349755352856462488697715493984315504807690089918012879431435184901715683985836960767665751110891551437633588861030244319861679083510060353093995148709358186617443431582072634565812041553607127144369592529900303100743749302756254747788722234593914021077325075058104583146216989870711714347125461848764897416358830587780881504426342942863768725226495706477055785050078479924054512471968556795332737872534630383335417602925181376181538412290033832838960623295794990734548296379399564038091237198650638326544287322335972682576203792395482758658838879373509569563622262216025023634699374868834696128592203669114002583741881373503618101974035829798802711051026961734748703430588165723477027581641064122861088796680175908976678701137147388721795672574030827944281072611558330408939710127494057208065099271788511806023425571724104866673925999910546282485553401214487829576970156296396157977147995300529914147251311031971110947478624756477795073053770776498757988565431551980536008208489359801709717576765210758869705603408765388423203044713873759723433085830178393536387651050482876286905834426283874682864360503261019037544521452675720350874015120909488879024246795189253887683925063166751302560617953218044340280500973322543325577862780147219129298070211446904135586764165319776684978118315578087205184010668099697383462496791293533967855409054380072983222367456185807233020706447383144252021033742026284425078910118708457946116016860787335534097709304691608553995881022159292523733026927469548194565896933494154042766630048427520128328615359347188593709233031193630115685247974027197680411711854797309706391096297336182268281351696652572432103418824462711675756014682099686935787503872665534976726269513837505415468401175930878136642213328405410400983114925004495634677712864722946495710860582596727481765706766816759215916645717926977050579883159725653140473761728078467572085027580598494941109239571523215524919951423440613491576175819879704442707877501053207694490308872548548668006771569747022121750380786517952699768582331874113080780666863430965679541646166438851650005690744001533165564722658271267703227808342450362061298374814320293936465056745429475550702065362546285782141658126123445499868537252992725814534162058106180813650475802397001928509679469795607609075718890395388377711176026605760266236085515828197911611127389802951282971337080517831540980930183137408321193266437521657662040817922799331747531446813844811770831261013984954791321871548372780856719204226059605815470248482887907708660801121650946493235438931425847240098017548378948215926411499537323364455077596405271568738641153667871612272884814968829150092408514999309417465624223229403645812511804334350786539669923365417623304306713501881680468578204555675807815099762218288694482018031380534112542765189343823454874113726203462517535056736115362589522132246631211537172331273399709850088638626919036002914133607357337579567099341897477079457412958689812884808776719538003010194092466577318009482574437775884504746602780366494830255667513511357800604652135514600279597477496988020584353883103909870770905017838427494430237702048487916946210719537140371701763500052981163871783805224608499364179485389109861774601194399114046477713843787301790423743214054079312165658146248956993206019446392788813164273848081522640333662246846116945842637266089939362140375663957689138009004715874884137360580528130211444977811055410349034723601648317422276865545960892114062409239301668557930324171444795417645520154870028357881844615579242368403342187522414440041652765251058023399978240537943777602085410976393397548881198315243900697348546053389095716007610871698618197046091133562529199431313718707024498900538052870562353503116666200307555592733309433293628681132404372414661782864044302396872821509504316276451631398076369581338598466758022676998828765554997633601656804469398117830982330148001642408244862538827991051233215089582140629659450233275632928711577002888405563226087520765660623112527167881120886254164282792183373981864523479978787318732107738220687515771058405448269533760446952539502303608108270860924681206652841087092826315149355041128009966398576471283597362030041125790555375111574856698718868087964280366627617926898553176499925116095963847929499345920868314272498706381526678102770880401393449948610439076588516990380534731777071376398114196606138107261079453094592516389006181249410699478922453162787424863183168589756706423079223337410729502695648234965883832920120722449598547538438066960597329708824579231914978301510972711373921980617453903248303169874758970809631106988811720426212507436145341480628182534864372127066689099738119919430681365711582922053523535260740161353801465092069319147708869777166707991474070685906013770660670823930944797094876122014644040183155895560979497394439935097220593268912247224461521812322337984738851882837201293395951684900593718487723113474680987284425550606721941502135126071767601347471443770362124032497941628762285365838075763810765461274140157247020123727752294643506190471467232411856332865556610505254572317263591934470919946681995058298449327824490029122843762972072805182468678246254337180084989362366375744786364804600580850807915812559010386159278994197225500508041272631233652671021411437013027945904216859813130422671358175997420278707471206963772186654772330220255019983892906786692542752600777920975894385438178040872184391093998128693498906945087645480936999161931440915563883929124354267171567000814685887900452764220302644594313632917367209593420392447626249463232800631126390847085146682173380284776473646824173908772188837008373802618037415393373507352579934289425089871315346688932792116744905546487767458060651406611776943078686362371364431442894475283200901720238850341490214894915247696786065907473281398103764429599701837801484364268278609495408279890423029832187407065101347518667365181753184130618110676637809563676621879271841761595989415758407162408254369219994252648137255424638741871245003846089465843413766117559195246299972804343958114254275949042937463063657671727322278815589536608089609648294513734940470127475956722440509516180349889518601803728765647792378300461745918390880304802589954293957998712668369066851867483013245957351493783613385752758347931287975015032015762033875681120640259615933204160196508009969526508713448505999695614073192428628694159928741392282065658732017943416908782074232270213024259115971397276004116596620657668335738761352715367972895415132922313777163650608269811255482865097658064991266183460365657394576122723735928504643024557189717109882427793063175098439400721009881516746605732348418795305219960587165900017597424466284300319732308873754572069447037011237435780333677375127196372696582854048924861054351179996484948924416522545447376581802614045359254893311028865968186471121208434168114915382430405423250045901898354895308130762648411168256840664205188518329443410400106543402409641546902981710065487247936579690484487603710587399889385540668015242147218564866284878657493384783882336372057483424791925002862148065888139247555746651587923313263341261909103107369308992737697158836957351402319893605215431175508496147497997267931147194794996350777642577873559368474382598123833473877298756827924430530250722711886878392631576117317892377494933898039138031515858524398599608907225788376005822390946471958901765919286131695130039646351179103245135384702035196582283867894337194677343907915970363666301316933692381888622036597061618962211334683861451749721281651997658139849817514000499318379126900974557289048518724124360621205328055071369954755714924225999606282516148949090220401923211524310730254487175784219649799163127725148052199047429943698951442741778320309914617925490722850965441122868764858149087375313703794129866109915867411206355081197084985968869574845401520246881843389295071640197392195823177256838696921517934947009235408291966905284570444787990729075621058239984813144619787713621203835144929265851068849486165247014391847395087830946984718737567828975672940011672970076903647592375757747216844368501725104814488417449336735332960590299282750860656828083011081495518800732170286231086632120080837197325522255085659968294079901849266051317460702080370940067869451005237534833419594658129241401617260591282141291008422119531981302117364371722327637821844951794280538330525328650261883655592429556375566450703233231049618144883945802785350781090973556818340564855104863159674956017873509281230023949086428228033885711038927873427120654340043740196954090631588738552253496477813969485854797104211260380033470312964552094401643411434770394941240402035237468182659374464229982738718059969347599355688921070469436804568960574524967614348970637679768972673500829352112386733151148682718081897448826750223226301978667768326983956221859515773378983669263657533207040785847055216373002812298400452460078948937261501237526634857651086024232026148077613330331924108456747151593158476502465946952136707100123249920144132308043652990847484904463470680243063600989002667023779542203834023040373493442192798390585530355904854526485597670653555885308283765705179495305648176286494443288365550052589976210481368119229706348263108747852603538282772145660506526484058876688219231377587198810742787765550107574190708528124446416984638824932682722688367574367434610509615294892545815429655017701574242471636589428008451746698711496429072992444967442712459801443749007817346211361334554650495460928690234944328061222762141162856495863574656437405279956357857189555918314989852085920598304067221771066717925965897270263490076258607772470199718181412846154547173585332252098527961974721614976730463745644793990596332396986275412376796959260924249027599598302932812597694630147615308471732982782902491325120212936529956580602321410207623041335120867808141589161909068394079309673571751728893270746075001380707512177680708141100854899555062137384163889958547598050115138853107012000998863048184095532848065381747912380464338463447719905392914792381575362384902322126688635351097797536164353629594671063004921250013513113412753911411662777793302669707718022922656113896828831472876388879456204555196124767554890582922125087908806921931406254713553168497865616130411774366202614191019902534285858485693358718586137891312666638355664269209597673686177966889132868240299297261313128419051219085389038498227035383254307839082593441850302012175792434539731630998488690348997521311245386998000908359764927749675042077264278167362497382967153057102526886399782377064555100151056817618210982216830800512420556468976888864628881877853726814938663382992116245516558831643351243860782308374540979904986503022606984415564069436041397289350668138002319829669396796719552827491043517846483958038265137157879224910516646945385058838587774659534528087172274755399296871250291047470872794096158575412197957003064691553798772745234377644991959470013836117023016789621523320002026500625352269391892924597528718113989190537027038968147152539599510191810875257232070203958929043759830710548334206608897634202263158095388519359709483814571651526765316361189713463469779827609528453463600607798831280811946781738452845616965859324167652270332630030121324501951888912470555094188617634775086409013909751733558691486170469261089921748423961990296593255212840257138410684197299986221924171797648555546973946783267827673283046836373491606609552706867284813652482179211201388415580139330131213612260551124168793258290853378169665656571075639802823724221245122194941549329441800223143048947701650130586680092639726611675289387659798562450635611879314557828578037155589900654023424048803346749904737396606607457316374999236390652357991417823255770556066029624835255810064120174420976573806384862432412712003729039326476083941889258950733473556579300217525659222567408550350575484559461228062669649003031940886133424541694287307046222912456766255524777456670756428805496848753963361183718214894957540566864809041121356572117466854706405057114636433943763872973253336502004583487292109955769711830740683920810956705105709494794658618964686362136960425372869244886144401286233362742192675746855779569980902099526018077963694594703018357944481324497656901264294435464712387881939968875361922217265733969364545935961874161330917233047334582428955116763886247508478827067165398713882271264866126121940130385583611374038778337972486400828584638255378349416224772428020948619733583902386921762929516263276419775770524095602659166165679253516777670294029017523200536397991402112922123374408726541975748282163338278824747430593541830319444792509470540442771376636937269145466277209804599964614652916557264294854122652797380953091559259675225008929834993340648272732030304029807613921474009510266124533583740941354854350839862900434834335679898476825833571896641325691030030354419580090568630940495145053940298757798613024343454444121207888266793679995046623932569098628836897406261398672471787309499463126258866406979145668866981164186028622309026601428942290405601739031386870472078170355821143942284499501800705826117231010845379297965418430113879282270592724782920389011630195043868098425338527609499381560208786754218527557789643584499132640839549777917112015257802668028193616187180372936150910862961163663309518587903374451820444636415165855623110707702720844548746863967630727569358839600742359253435122500075879175784943139509780830221054859972818241543321628082154917387856624079890847288120726060618161071081364299651066320358595364337630797636986472510782404955709234116780757782474738062842191532281502058978508887485667285240155454888879155794846570069168889532776126148179392775975331086281163923289447879318724541820850157000870962328398907139855834130881999305840610874958816599825703768089291571531802474561578972106173876375887401851883503710510037938588836533526480847526855341430681891261719069437907536662871774508127036980131923988591245983225356720056755580196440460807577915458183218609555323173894858058954751482662706409262638495048466390751269049427053255554428019274198181797050897339198082981510964218985927299244168096701763156487824318698976020538087374335808137296243835011617004433875789053475015404573159244512884997186552151566934893124961536448459274901763369146593580462659335469497689601475855554205330773683578753392680335990991782429136527380207706760584841040526090309387916402549381638476117724283281445428717866974036467709663152771788184068679340862749043904648493115985736072171987822969259966419513334240368970009422502002386509987123372228244867880058099915810680044784583663750557646883497408895468204812176400179317746653179199249511873689487943401541020246564561926815363446339032690258713317903024113886700079102187424079457174952305386984742476018913649889478120504545331711822281522077185021153791259985313107952467767632798635134423779748148093774806434773866892461704072932372360780104591154960568383711668787575394122619676219094328946700394593643810139540151340852524301709901948678734719977737276519142454193294494386213760196803830040236513505101390532468016712593307056223773994754853566502372253245088290399929944206102530256509764379383210898849455834733524264739178330648430867044734249330447751660197810823062596027609412088656045388127819500611443799568316322176096207324209498944205300284136542765514971876357467188211384047596899276296619222263341192235747938283498573377516678452889697041087681315868168276681051200383690653604989829868571168998246282655827831580258053209806999025260986887091944652844212728178629692448275931025558698891985303387157069041603528736081345393591830605830368342050585538907516237244565414344676129384982660136042453016935567635720502693822111088244070723778135957517687615867625352028985701812137160172206301484468798831583970870439038167454965243401001384578761924131340298619484839116295102561796158927832343803084799740908942967819325362808068218116726623185129763266431680317583543610052279929183324389359432193241582706705712744542369469211644027306402595698989193606809192605203961265216959963065319504214882033446748752903597215317986788134448876300065856461790452343206011993047999625942739157043912385726030922958386553477207268104471434882313509343487376021427810144397174053619982452912591544895265803844193481756542630793123653107277100249796752310988631968472804451203866614126389794280780431339750357738465355233004652320175467465982855306196818006880147710159316588208596846175695624971549459664867064013591323756753067053246644905939740365212779827147933116306069721546745166605404238583772398364062954742202688986721775410911836463983079535715323943543821324542414762486136951893626282402626868179179812529895742938206533697627996218895297305308421391771291794646675512120718005498010371381207478227705050453335420370828516445379791298792941452215474434054608710730933331241875465580616731919379857733933259140586442981966564931243087033781903522048397423883038433444213945671341090853107112349888510048454580161053416975648866883840882544026411766132965150351399476265574624713622693952558067656682965047855245254249368850916937256536182641746188612863402868935647945112918009643059079476845960094579600333661530531147627220354036780531923301627797623976318953046388828156664394731575909846968266536905037735449233000354332420742633093358424000612592851835007271735606724444614497152775489232481057650844359525357007403114105785527450467245229753313803129445819190001027709349469892849870053137712463082060379846614430619710604315781192465605017665039794621236093014999355163747591186378899900251354119658405061231594655794877371882681904077784170715053493823424710928339826791981340066813960873238034616512239835621913904613139938393808525904124223093615424831585261826857073050005506705017358630182582941100056253879585750533995661751925254240885244195864421189646650360387095237728988846159956022930885517380834478033432552852554068940432822461370371908737320204172726735339247102517907638143194886371563667700664798409091968252271747501356240868171002861114552940033065098353350076169671101909167803975810706635527401558154841138457257647681148379857906800751805840055035356285467969706284427341197976982722653464777547461953717918695685968227514665116581495891877542737598401111684769599182897440315103658210163547880545224828487104907306757654136274345610364509180531653388797143970502201565571184432239361873178672293211387899129011422951038668411534718297547192221657169049621471977785919869591186581985241509387699654320734219474068804037187063865879020447150781067222399138744846250534318155637694945149896890999650773986801118084390122619142703243914913839594565963424012625613896467459374254310269768806130300175911989203172310638859138849289811644218686883566472947767520294111262618218746517861349791213651074890870331914704509864131731225737201062496704375439694683296007890330673942389203606679280773202505711995048169853910540985474451608898487953177744427831680680273942126944077959089162065591633568499568609344868286606501690364496205193870733069611020003093373233051000831947676891823127410014597789529540435717567215581642830347747457352281433770474370502259320284150316355507073276601691386889686360431129185629303142485006791711981409789925183963557951474125564762193849238230599088839976008771623164310260190221362387284875521882408886961363263573337621638960655649581218315363978550070736144059530994960179099060460579527311485371496175707738010284107946280091287740404830926994064034123534126536305797533038669020709860260208006097479576574780400579318091397168871684072920026244273550504370506050550165950447556960769774134625323408059407128434222430032724427806564511458408827296751707681062016236235757208560815961103179811335630628553388797880428686924494165949925539763132083819247525216972390783074879436074667490156800074892704049524598620742806917393238652474749483119937214545019424021740110836658744487613263663223123899600899738301531621021986799546749216179485374659964526535192419432131756219127171710860220524170902086213407505500402078845674874597013792286349167047148293680072498774576392231569948431437176401611363731479768438086936802823873907662038771642172270642151537858953227194525548244706266676503823620053515949159836319022158993674625375828252756944559006458860649048723578448367351122300273719180185524109786825423919035188026626289925987568096176250228933347969523516413111987209788915402987790701895810096567527348534362486397642114990787721471050315209092713537632906742758216573963477657815886387083083403787582509880342019914858309574972955247003569530127054128715976812604074484061875874525977672285252256050835561734084146020243725271934495918893929633295569813288957422757643575984960689918908615147400558641453019487467576051629977916683117062588576829893873583471362944788400891171990118902298111919511291948247701308895495517763256215417130193806531976303160021470530802162588521114593451830926866070334029192556440712964864221373704863618243954552571438888324347042550783919519434821533354971984934850047691646485110148226374165284032394102338124461777438090082330155527553983431355891894638868737407643855557269159623562281438209533674777565904872581970984485140493903555729321049462765493834216329353880889206174215551988391638756178218424433337084852324200468662442453805571942850646711424485003239468309760572982567929643720225631432654913622451152086508703848246873529912124205799380482292337493992584112434131353557042559604134990139824190200977898338923292857530515128585087532295296970816993916715341389670821973112928134981298781054295043126757654998985535779415682821038635972105483918578011265537595878969830980524437979662691520746731989282452104069058112881851752834712717358079556630423827292946513318662522328833766412753750843735969277504688347002332274358970421720952169771590947661689746732564182055111740983966414703514460880023178595615551427958640566954428780475498251855278112917600808023057682447676577257759637686752858899352455143088750310378770729099740583250589109563692814583820512401203822604247257086745281550364655331860288533085465476652787486222289502514503338966228430391887525087664157249059156198989547877922859901138263324716476944631713750991259808452755751583298780461998823469536869210923576221032506735179261793212405421976498994997804949384080358592937050840289429030509594873590591791409398865892839452273117424745455058343767620506454536696074849646383295045297328992545482746403792687090239552837660534726073643509600057470167800236432581237867197488337253651457129648385536558836580946849790822776521995088217185844321763876348947104807428142662009238121516485572456605029315225677093624065196061841377447566774449307832680455435925165499576629059856914513364127887830062763343983167833320553034864230128177541884508795289115126132049902828908307720456462623416903743544680484513942005971425699609889197095384295083405436162606010208575933560025326723232767787404518535352618143383738719245791250749800388684992219956005050595292804777287085277077929439752463284637562614169589591526682058276350793155695903449818255354443545037637116559853810574727094819607416028127990805238425320741818159941207938134122586752474553441411922847292675492396344211709900198381091766480499189669667595612947271722655463956810400616033281076935887532968479721734603773106295476888706234444823016597896382654409812002391027155335874188970809519329542104397152166578665451762180793580736513653643719894338487019239774129763468614210692860734731547794428096053975284297439261572066065253806228156095260206513538139049856141401231128968820763850270526047646653285707814285716591907348196399094118258467366627414884374757863924003366567336754477987573767383408508023826808399835639130303097688075708006038100875640050486907490566920970705092835675541042054419208770873270012968792357617684648683754184245738205564359345072651542180514532049437899893938344373822975005045029277742222315969674812871710634877443927251087582104395475275608443384957372787520232756980873407484509592419716065466038820654713112054923299516384284228054399781962310556821140623931950821299883934619467357034520710076644299334493873850519021916500926528094197426610219879763966329112697617293622867973294352325744502809373613182941585181814961459521038158584632953920834429553481674908039721247819312999167077823176023599866359513886693271662639958596284734758533738217097201094041628745336471573517398882075897720606204962193028725136622006295253058888628767806612300409446284276993222541052029911706088377878691986740236750746968423791089217355219631876418882525004408798470726006601167253489911318369459322881833382784401739118421327168417914306643165834685991621684296891978616895050990194747956591749702821211881040032870066313688624818027674552799767726068206397155334665473703574040247231050466808980759784438722139453667760414037014644171249411283964358351643555527377417959640832791158598679678901457690397228120745388640512128142611626575529240978602170832260167136840256329477374860294240848203561472591388105003965102788247546553214231953320010519851600498832895470785649546420613840698604887666610646441477098277277222696561641879883423820371486407584417656060473973886477555889151427864212291240593519368941709487283041526688053914568232781284575549605178624305008590591734411922319499203715074706272709339947198967228655489018604045483802124361466323834742371154878765484129481507564876675375267953267044602344612306198333714026003046930674209997671718837649570953144478183714349956889996195453358228447644292236780671238432924452427634550874082158474047089580460955530120846660567123016003955045358763690326613066591414951714443491635078440738023044338019195420255863838917678247980076437194989558882963869357449541245102168480768724994991975236079807079822782260403495694824925343758047206719573111834825870556552500053635599062207133923490528096100824949475525449492727366294389851910511979166998502135367404463055738596410109913787814907681896402274383307318059260347173161856634460075801002183031312670758263185073878360131792632590006656501219243886871726563175276584921303843037202036236616706714571099717376444876035589740391991952574645241760780018298908752506914868876860777006859069769662530412309236977665888982349200891122150101473945469658218136735684989110525226941251991415491466662474544666333378144004383646045742482766955170202924203569399421472373010687087729268234386788429010232970330178825858654472995108242361454982001992258630220421919016371741301838107772829399574720546588567731198078399850034892359166973841223114603768651112390520297067250412474893769585854547312005905900318476128812247290475085321833768153549886752713846199450836099607604890339369339746590121996145202175408151460337657806015702420673351363782196028016003977343301883579900374488314047451828422213439362388091884272403929070618034255296102679372871141595798912619873786588887371710006134999256904456090124449709397541645143794207416709530464897224044344201470135924913404988868266283949331944529702140031061410100742306037799959990327981977877622062583688208554289257886427168558896093909107879533485626230826632023952317547841041726147138508705556014534028409382340268593905761886001534645027005844943666537956498343710471511043795947909870848410075372273883381149165681495815490132763666815147645306881071345876098628884076555808628174794327827224992148498826157386233115880898413374653377250937141744556860020410737859893814486492006166569474587254615614632029381396227962051035523894224623604274723614924774137592665024659688849385359149064502767616325151514808440526851704265144490906309706213035492549428998129538517149625068982657544645480641035456473610336180444603603686494954087837238651915801220202127407870778383741275731149355995964406065905207959858244532522782586313737554035708179589379575702542181456617201540640627401013209245008140494370255656989138527335950494571214501459760560248227091908743433026338529114735388668478307401227764325530776522442732863551465831399875399765445289369101129312047456800959802569896557616652363705720461562823886889321074129637429965723270647244193058347404538503623787886552824431295634224767689132882970711204536442137328329991820984128267768110146900861223507337906084563612140883574409246024892736866205047462988883665266339372170339185660827199568295312942359514266712485913308725710556462419127664629005859289070536557137036525765530498627462129090167090590801230784187288736823790907147531366740288778677834258746485729891289595854951771465246727935405819786554141858333016196732289788173688762086684489690404773656362629042772339222014918636535678039199799366761940999754449099814548489729755415177450963627752583706939812965759163061684266559681224953986276192456756692954584329166376212873867768907338938507223667026745656914803714785109841148483360598486860866034933478318538123113845603744757883993366593828767787754205644046753465105343655513396006712793205365647775251276605452630153859588007377079510317529668552540990215551560791842938084275597419153247451982634155961318055249335441057184193500802707536789933566537663790731198511727960600175293624987460938444049573574238101509448278371003699111304703168004119866803753616573070764635258819982745108571555336942868663154474743333475418680437279255519819490573933005686914685429178718717551938771353435314165229753563785418438856546403838567602817414992627299302063387733471691173153285362648746805514107633629198450944702474677962727944611264204929859307376062557132051435659079106809681160970273529931038897326579794455931360670439314025276208290749087062861680761267925921235287766035912303498378581726450625132983263118054654637944512538374377004090240709150798424022563537498996915206251979066052389454878087010401577041246260862942791158095480350560440418312890192537012775346691424594406117114501904510998803096462101617049763592118047070972915098357299765672091427999468436847099365359996714546494569690653109962168396649167667861571513205203670606355328981956480729662722785978503553510978568387243204006142310547777198514609476811179091674790493873912280770346796450976567288572805272157617227602531790960247408342624828715764822323502759465478090697715896687250629817136146726459140366318031875146941349630675829473813320158356056146306693218542905792693818240396514091430135341539055893005992444346700284591329187539753693700587596264996290091417521390590133659007831555579518115398727748916434142940206887552742923216534672192852530673757222075865267834560159447158250111100563124582989827864902742178171040210010691700161228467364418641748985219182894392819395111119413339485874699331270403463447554783046257453648633426668078722291795224876571827376852975155177247779189865559721179900178002055292189352303174202961764357963343215512025536050540493400069528207129494613203614491804617534358801958793933673615267306350458471234094065589716631088647213515779067861535064397455000326462385685456782936377418322154150606760132618239949716593255361891992362453643244836563891706459972488205470566159407336944890834002251051425020193867006339003891955585585481531346808559458182184766701886242330106892065632459024767796620166843699776585380862979498787353355764601537294246409206222790419143323253489065623822178704582825174040373106713136118102580991977602686657401211392760441359253064985435080039324856037930236349606878804925504030539848236265682631649495831825833236909910989816358710893616118492788107575830037634524936898351192204028796959781582301370160795979812720382691919730875604533744845959735532891396177900424522351481943940700203405565789929549471281838159284462939711636052173771646019490356415111485201595712614726806632502020230118625498993332625574529091541324422695958394561157667676429823453856900340266233777354458670248760165948381067616806089467966355420719358482344842765044522037663070710648959883835613532233695625907399154787957310712836385566135868330810034435742457796622844595726347351777995172776079258583880725794244993101840960969504938764966765752834118741484701047025357975269825461648879900419815704533247488121243599601009269524085722355778269160411560777729974655413323709678223877207104831775813952965181751412661900101247763768084851746686527386800650823983234811622505429305600762764126898998727969727015621475579869767839002895163240563881864739485854395887879381007514081581614429787977395868925049104896446073358609147409518399048834840641500687345885076002898946099800585871559232939216422511518106725222817083672395792563784381798168266334783116426386484181264929305703415779120572759891835998675840837815989672298995133010021946165234411004970069167859392397369926876776226935597627383129022128130983169975716519846137007133689366467788727882038549587761300207535037612850961574045980743734459318258397925421384159646940783755147930854516507057759584806633525457534859547822363647310187240189764543887072656686757292066515303610273161785720463175680530571494964369970844802036789128252262275441600763640068180571989238713383384890334477109699969206359564023578229233941506093608696523798865560041499158985370898786373878689814706592850940514568874171113502686575372616964762614545628417850775313675942592021212535675321562105683253708432165788699518443955962294200287665140077163280086652905764184120737481491553816216316214015302795851067191268167009971032299197023320631126056188996668279560145982397620199899691362865714132810575457155038904832736539507626551980210051213967982620863127860604154278680601038588767583161408464199165000940470132150925200988264389488250350375837264517064367859683972120662506676384618278092943124485012219523450513011484440150264566998687028845674293709104548056578368680071506671906569095825678013388642043462909471258908408503308605335771489807120459556094164544904698645749600274091603525083972734228253457964333161368667034434516155021676237399945523074427099822204963055762295280625056371891854108093237761789625413294955283396824417093066099030741556865284655754887736606175552263888117351703607358578546240575224530617515874115313284100065469894650269294567586765002067672459988614429503854503503512148245173826107330423898008311668867589594266252830169264016292778112292741120549120705760574259623156877520534941340956398751438751611751532924538653393072751314329723672144144597108870457406019152827700262313422941139109368318481313525725311885248844518528852855758216801288371750870782817872090398927676284164706216595103814856001908369253752693297365361358476786482919714080203721640487494068297185340815503196724043415327576359952565350532455629609099003249366172487148296118913452617864058169667448934614688732225425321577191638543997925359907983583080998205786980842503476603287886198563215359221106476182852995557658944887347681303604118036987268823637138641261412400962452806364221853355380514226840331391002843399019920051410094167519181255627769065418231083219158920377702314920033446963898330089879164307317404330143247983805829037731204169343377858651019014918996944418218131533362296153015700607077903837214073444631543986378565255789051775154623187893132406588039404991405438503825073580160098140568362453992911489450006182652401424556054890799799716999975005223931847700705073512105229385383582539664453375269384481069954885385852015758985500883560719103214422406254218980634002116769051374396092829877797352611379519338204832048805622721609053007806300277340937834562879777775936789148334623683302425028198773902066284895072568252144129951962615885776875442184885199554040512745041299256355689727758974524126129527246696415150054527030469852343162594275108051009304363946023490948752814909199771662997553600316832372818653810498813247814267239490908889707496548515963876038761775014545257954619574731922649831382620388754204483671576317335907801860027889397501833114391890227596550425556541973615174163635287955178256087503079596424145031231791757002923869205258408233481629328416436805194000249106269432708178179957931868300541008120692409781146205119813152837671193058849408594308727724091301410881243966762525132113752894209698005691127592302705507984259745873143182959767579851974849738725542588197164712902154778119486610975098674422826779536407992002310990726766021585241347117981877280836880053694725242473272734476391267548223862980235958757795990544843120599195232066472253721712761422014558323267308134854570947896306289789049892479053109938903262158316441513200497051402541551097699133192973238716871494431340065634716960222053277577930585989290823043804096330199251106303569008543203424238591393415408672516172018179884218719880985744529493568604155320375123809642567213119800273165306309421177319956868886746048599157811518855305051013708344017583929305893007416062878145472514889169924717401751667131830713294538686706955407898100485775433236315078129078208918955777419651432430393206464210475496315925078332176352647224325110852076876237296794429893398254617944491143838884166270710004455292764551748129111443725320531977378564928404038464860701371756433661520651526675870421475745390258214324522860635986422445513836234386465792454126597937905679602222860120017051653177383706399250885837533338718883629946128439703069453658200316812743953514445501068830484462973047040167621572852037312364662099471821782192502623314851317717215841977760320858797837065055408920407123993438771661577275747286172820151771309810546783579860523613247016616998903399597446928718462531168334022075869635188833362357362569402252761345768166202402198848297738384804268141966172845904277344929776016982038952455145883278014792226125168009672831931936489489966367159238885472693584059632267881169840786117730535357808795177787632310042811566763038711451487399677130334026005311928672609841070498205789251428680808475249704868133451091529796940003083953243051465158603925635715938569596537907908027896254333645088370517402487440671480368989458202007255110852467412229841785498048593913388033637427405603927521596555637854852116332091873108106940043335584448111973687828441282406428629235278766942158188316762332651594503290690189395985850050041560422032430183344637571158176678058230118021088946708277164137663404104615488590265678438383966131927522365347903010321852000579033397757675318532114748918360505533259447945414723885976787254337305940149817309511732932598717286369543843153933613125808303869856592107162925292885075087797671736211830838384477516562572433508138889933202553982103391476380618075734582467216040269556143348450659978095693774074279362749212665112137334724511333854092372689653375620519853021707687283337846916071378475495824918762797384015679970517251809460253166892667572314008887041143410685991607339419570902785586829878369992296284847476001281678595569485977664252677267592076407180923522925370845857340326680412964718203941733025236992711303321446754629440605989068124386110924988258156366347692505820007705756658163322985618266506203094299898518117413184703645051091326852108363582202670009194553455021901583828337032213887982627412834847519280403276499577123906447793083022858682939412364254502339784764057339181854976057201378446858646381673558053975065058876565536407304500468199453798002156580509601055401669286209300235828288376939124699328127296892143791044208804172693780928951707541417636667448095084124130181444921998172713489348424194256098131476909810424179739138334634594385714107525518446812201208339516171176560675843094981880274988521531712003975785152788576958044980621435348934844813085946667210365826585832290436451193528174499284405139051464495871286947023024601338407071528558827660371846623496660362614608035111732857422894977954075136550134876582610984247380173023440811558028017467276604974068180217244475284068502623274406748299508676133190241585028250145898498392252721770307254274863375639511884002504276089882860870490475089453797709954376939744555720054497945328974170965726146871889686263516407349779619052336854130578098542213726367574211447876710127115443145721133179783055170905975330638631209979376428830872574517407668328024947273250685668354980130213941803430245842639404189406195893611642194524124985461406504288633451397899518858059745266996448512023731468376423273546864104464249226412178863423291514425322599555285709536403056671804481142756469199995023140326306837242780762057114045839170547607277279986139901484234750182100114309822058363440853647029993434454142763286673494003170910090047687650724908368397766848665970699581875707920538683334830790708867298858990917750833362380611762890910790389526599112758231179025247879985413266942647327480767698544232588251444046241940245093536178357338931776168474219663507207195269272378045595754812991600283216332797678469631403585615615210641449901591706128482309304621014650404927881690030914935501389100789731975008515629766972490226028698100790890945715995933609296116161548771066159317101205766679286973085235931540584895823108114008073181996301387531124136253245165207597235541533335815567213239523929565607763940013005934869912714771845218573160056047426467067028925902327178689450437658557954932767411962026084796738555405475821663818729480351779411143392273402631578711886882610125951878081351722320891261159187406088988456459378520454846136979562936245743994341775155504854249007129500197590095358944421288044747802439663173514760948364130903941495830991277540681267946561470769453008990436647824193925490384952192718855190538343676905900632334285077891574698301955677623870817656452180859583892455893297866359695648419718860432422758330586725562310806060321813607288764546943187728688021983166351102126706371397704740237513668735919703508326425333759647333802626544597432137199819729598499385205035830603753920189895422619054740472185919954373363721314663416382155371872006136640303998947578105245825704399520072030039114348931623541504700506542126066508521042349329527420113530248640879778508031450582852740557569836079489325406616285959741154686056675010013870261534165726078131957274866315648357609223905093102203857878007004512939538351771336415278573900066447029326193449803572473257472399412625410812476183569108859063843176288936612697507317653824616063615842124760673429130111405832670513777963813824046346873997123710472877424243075350541048544601503134579234029152550531543135001257294103782701556359512635339748705532787283838746356837157721472574826751499883205817560903222159777320792216842430723735655507033854561976882863121884359707308047943640737214984695926330837213169680299771925076161284476025201370068216716187580256553570087356588590032403610125468433513503080343012045042745700446836818512385620566499922173965452419780508594559640826152326166685107743606124644250704815352983811503720152845727408208674196374317891093429415461200554258689779397526723607976537569916931549404855094885866993938741982011975224729047777161260173200676837788826285709658296314548658245769840350524142483816325204407071838061060643762692037157687434751022342118822298619581035967946594221537575794112844722561413398559977865711726882008428286302053997110285628096801044489004961733463571506192053129074801511431561986080307839581365162857533254206854600642767956411791467912323090541263569741176282014579317564072065124156460590021452672503619233283777289602937935952416085577117644844409524758279685624099423221512470560107864114140342031887416657450879920203810350202617519741097712318041797089917589736949624609028971395055134507319956147867351866766796201613332269813469386380249126728191586914338431327416525619393632687624389603135225034347614716187373745695298709674404485106069244991036509203174159930378756470176684784205212566120657561360971604135202178851107328173150078015993250119706455772161058067041555503006546384420463314040078802481704159682373679799765976498516936510113218941365154605565852176610056457815081610719484010420925385115063333794851484698839852662843469713877274353640254074218648987058853450271625020485136642155434449621756053693075141385646244495962302507282100335425362233138336553375113849649469788413728420624867402220964828356468206335792870010476756739957764857646610320436696961740325723946365542858929913917111610147498959824079825591574784961458638700141813788123677592015456596662541757785615000100103898390249471690947140063811657507752550842317861358559086889680271041977436233397681725605784652677546356954658272379227582814872696535915346854128574998352929252220912737017701968737299341684802263725076891836432621236127320660336027940124918352762843815480822311080867973101228877561328481672160495339748808999376108190077174426602493722432604050649576467556537666800934961771463278134358435481319976327134343976641481556918172410483244011902386721276200648573844043337188567322671615414336882659046509554898114974554102486383085498491613063500715018904552191441915821122394469876365209756129081905314401194230830070146964669306655093548020231195462989634166149879245441754134917822528514098143453918695215921750315087174731260305315247847780872277360538864185201749906825781990016833285295586655802132754795398405705266917079805782875244004032669640061793375501782646679521670646260529245202620750330198166067175686279213012361404433038618358640130800478295744030930935490706040037077665367506067647263594384508225096164239728439128070817601222471782254182600695837803284337168136223514670606852627401299230449072026821727439730764953673446910599631591268137617501141177784635380005526292867910616909964928477072120339579203475444302702289321614998937749260768014972865537906387597723802309325589745787060826741811783262458217562878927674738147904418806201134837220327191407619339704647467084265413644748106234857707637789036227146797947379294001576869656216400232373407437333202580166313922691096632997428728754246671229715996148819264181225533036939343201963517380290713745870554091246246061365337984895963562752272973634903994965067740418296212100244031343611838804363000903215741202366697548351269200949862980954273189938021660851818607987397619675578806280280187385453546410347293193058507816474862537268186021831189209704072462074939794404427550540923648735556124011431278172157535202166098382131052059799710442445897361953502404255273120006957576252846641471843868045495451722270212914107646659168838322851762052502155937208322857895959655362954103888355609971498221242006325584552330324150018350023624725451319502118665025308542296078843397533708932352353679423982736877186648769990138664052301347427535121322796714984464315863057197250397559591560836980865439295408146024851155267381135105326367253409861315880203703320949857348507141696490364313427745994697942399126141014783075322675430153313657064113746488990774402172555795179730304750061245759409244933543138263985089378306302533295918809104199422475959366634418026488086372931988822997965938363951554300854193469642493249369311537480860783055297927337434941044836726146127066128383030609797653484310423846329793868011081113987203433508618127426333918058980128452738026618020075130865287766967402714539033849601014924849710306164279409395618014330733556442592436292608997846521383459930372357878027795705854245095507213579619027517023627466177349635683459160966772283240024432351736606519595663410690895300098258473887443924279530760609273088528711829982198733067451648390030929187690346502399326904392079413596426323405063211585293008388759476971176952648792158858043250167355589918918694714946741591556028459060939504197848740001082813778792251964255910539591387430401650740367363992664390103152612298491583919181273450184326751560832227468964849258150674723045457049026903519795437215733741356701975032743344621500414914220628141644683981180111441578977396667178926015555236245380952913528500392530558825592686080665515382484287757610687086863530233718971332884778582089764178585685788453283935735500842725925945822212789580543198056534797923782612749823043831733703414157236633860802583317164944596081681967569666234051334842585027335657765249302384446995443794562905942959254781854024988795750093993381483436245075855963965405185636440438229891711165651673055050775483159895650149285022517661312726168684997793821669987825095265811078072904315309843234706500871667438022388973060254051633065762460316247680877828403070680877660557106544025423082912176598952367562940627863964301359428234284256254114629620693362646705068778247231490204213115466810865384202750824423199987058292525598317710903147473398681740482865305068799028019671826719094678243656272501401766824500260631309326405747192534762269318708764819863398498005734207062139090600487287079994087621667628047170926919060734106665876690619403995232707376851064069530844894836244958718944871393751657206554256181461693702344600290231240005154466588214925059237777348271547189452471091553321293042975794178630620210163810711588465691269725171973425566104978648653155468939226933059084342626803169488595289589162921660086892076876352881408651698855343282032129464534893442302736645698956328580751154669107937394055590683581445264169690521042177266882213969379599357217337263887371808232419838152480052656616986168816572198399666770973937907981261213302111192242250103712971009365959825787965653818493027973874312469488995974543895247021265958528750253062687255660664899328348802682633094476262237298022365524400308539662877586782071356691421315786375677520786528493637371437430689053003393846334416335984967327315566898732397378931247920442119698799602616907536309606480165289777187079553022178400218937939005879963921182422922025717934553453808051635003371547008788407471079594972965199600066054611099477610801471677080259195972134518951857739490456900932501074259983541071669815911946184469924683543536000779208220757982631003431137388403918347032362526678774090771460874624269790888180379732962575029249928101759140317082640188940684574913096316701817380772989899745454687455120992583873257737095362821839691399058319031077550835926546535376962221276423908167901197719233573792696563086387024785932925397893548025897432510857293603763260047449053883536928869527575818727097185555933247979741336534526154991735251705395233143360874679255343060738493875149129100950489793833168295590011625757034718190816793526273628800292369232309287645763808125482216132175391951169854526025956433909549187744838183648018181601619485365194948181850349728357141031882010947146300698397365209491449802782777408428835171604402925662543521531627048906801555158741858355659148451660670659711061349441987863237674420040654657917127866263165724654854164759428403769278650431456093880475662842935638616921390077197307264352758717763781240279175980544371620565600547181889846029467281139957574494171653120163047015991597428830105155473812744905829260374111447614378858719687065786583625525258588138904771399965664783870541413832565744325984402968861120638535456243514050792805568293245069135321150358996163479272827320259330838754595078235696497441776810662087354382068598181376335015386578788523810115352438468713287609205057399332287311536794355828449199149225836127263099305872283806836209053648251728426633823309833977925338801769980341543791743601935947633567958291770169203869497239884996313876973292982571076873262554613708228377131990236177405706860453176292017225426882560479996414694003195300727875093586162394873997683747094776701080177141927210382058857092508104191896991049056283593431791913593515897235200936261535773414231818103274582630582615006534593890219981765397891732704848460857676002852150610612302887627822064957712391717261865406770702733908589355476796510557596289019897403405740021409163958141921503205462765635185819963193740098771061787722622320008437905753917457664268380086921369999758067897887722598744112472901902470664127932197513198020715103145401483076257764330547957146377976624483328799942560711899414865659642587733179691739252523468598126654532941421809535726246370098923204211754856979522148861816997470397317914524692858873823660302049767798786413400734257748473177217575919784388340023076674678966705532462512766081791673967352707540613260445584588232524937873798777427347052137157743157915098030976442786383109564394369396288964434126476901377920422292913165730242978269394657775916381973562294597447338239568734126134568647224659727266485462115348693788526478164459466743123544306672527468003487200635669966266129736647427171676268215059518946734372615424087009470663966619108542856348711498049531137126897528549063657174303573974061448059421180604988531632306235533320478359559097884313234815387583445331408248253028908692668009130201717527678053011950507468620095348254093347360046350373500932858852508945610468918275592476733197601709191933313757339452610233655883647719734889827791575788125775682753602240566150270327650349575175524747228459334079085348488818678823067072527404472137426049581242668339859177658556745326441181203690327465890925299410052341637416329015750121483263017308532210547503254535037682649973581983371972189496801349243239158555478590512186853245513309300802209986416801090205655524037528718178932845997344211716735893740283703727306578499005840689039760711710825195112214304053654509504816826122582156260394035534705949566401447079942617368286721862289091324017220536934064985945533925377348801170248512287729983602947164005144776938985604035007847234653128264792542755463224574720765729385830355651569939173663102531487009991736015202299050657346498037886041873223888356935329421350770315512883540660528476818896286386993077540168993781720108363216439174157946591276474300883398277558679311168140935073290247043910954312273566269327762083113316832891777412961881261806089844964618930561449632705351110770009956179149519228899141711141697383706827437302461097667145476282692027921558381778650235243681921896443416601897683553807886708975476273691377987354107636641676133275314184128846646328952675683392791052088405279259357266976245899561887921924949115377747693929851978774098442702772428230191626417335328433062713673902666215448992297625534119202784457173600293808725694047141075552263611606218424565030008707430748144310730245730806205110691738186219496719763796647345151991939497237177592838760237826015229451564667265963178509379139568577194023813625091706189145172129831205323045842254605580548246554993637050843618670796272667126228875100225137413280584536194923006674129175381100860310901747075457900050568696091034236971894977252703456021565496877467996902488421235059820251569730221522223576043514284108052208736276903504633626669822409095353994725716629004591464416566099955680295720929389599714085256237166472382999307614437600538565834604736052217954512792687484379180219020360201438654773741050390124888819447903980420097754554381259599065701426073527876923851201082630935006174744313626210604926503319802828101284729635165767351156718961798922207191347451756474599306450432220478835790586601653450582569978477772134697724019389918759894073288258219775412758967935499594177907015389945483316776661430190475297290457881000102139136917584036631774696616124719951993389321244321229703496150680253507164653533038721090704969771097096688032919348293805583780895023611877816915918994867838762762690817049809388290177035087418460190242517766161515385657013354600807672175449193945284869522657660485651683990695275230739835042010575991068786967778681241384358948910606876204573564982999117963541767038175231305147857601042691139986422479934991396438945188290200869324798986634669458660232236450729514737689440062800176284171025688908215199834501156551710427216710870913473473422136011719995194803935105977299396743401077316676413231753528519593930953613194689183717651266302854097600078724744086385178237164554361168981461697785420387371214352484941398868353812310457030185089446976374070458302975622349461059490991126461548212425696853350927422092607053859395413862157612958959545451835115221569219496815696760869720789217885544871023923465195217895029521852458349208092324842457753605675289098605170353063560546673522253664232339490944359043802923610023040831233568419997075280583496674557114673479108731336481948547819039218400810476008593512929324982541623681996568609249146679569769980010038673001136933613669115429878121546414369300347225474412330171940835406029727920733360677809282424712411791271739472058651974223745840731138887881414991996502306831016109834120973279741899521912237542388898781673682780432405146594454416379605465176793961370377202679237765351960005396512840149974803549002272807469815329444528776784514640698487900216621490195878684699009613769408313042449038422958061242438975567721138960958009438524676887113467556483402587579990807478695614972261328144702113842239953742002017703948531338455554394391014546455536993458703239924463128992715096189081296234792674173227038118002632799397872006818586457697391818720040309283677150328985806947499953640863389145098157167481238040556617954459581722040475187022457739198555827301752331632069026629325281926274016087011047316146741485297373643314332467776840135079820933051781895298838804817564005474697662412882477586104850739497986066042628967803705852827878255338467098388477524025016179136275971941682019012130000337478043235023943445099532995765328905793653161696649012597971057595951881400473854025720355364478950588747044484265177227920060713748539721186074051144819441914386210916863315065629472361753429101264811081477542648994295592429425186667984127812106304051736566463070347976494390616337577860351579531811731195966252754230914607306637091680633477017495321747701601366507034966918928940623163678954148210009146567239664524229269241326793228123688244289192583772651912727482107063239382287762293476790072413240129223589691297612487756005174137150919476120272041793604690569738645956229395661236178599176911616155998090481526100445114438622752007745801491401291447976852217950696849339753464698381351314661501753019031869907826098648176634430096194719267125350122953240208946382572194629422705513940895433753562969177980366493237073980906599281223697278604454437211945445994647097132009873444790029013597757647618214515127779484629635779399040068927443576979280441638255040577002294528941371121288633284084489606629451626052199965903171163609130603844326506046324311330772663433658952521033873208274105355317704893043148062994977088426778273127236745819670400683239294225541093814719914728122139813299595757462690358210728266309810784662116899577861806952643544545107777729701553835407499377180281451160134700574643655235715502456038118991545693491101166704992337735785792819170657847848702206550841947069097737894615256840731003434493013689752743706179890960278435823200803933887075058502697113077919510475169010851875391712506864759951342740271059111928570767066548981307260202171032402849559083435483797711778321498421591598367027696724143714823604474229573502106177006135698096432948948529876001348549590092083426480047770334747017330070682976906220856960719060808568470656175028565283108131185372887446645143671985351134064582035463471045899316565011848379853333493868877684654190434406031914715677410154921208238406098778645618922443600485684086358578906098161223667592243913215392960301816249338804982579300131377744309304535306110822929781426245908480167583363156100057068234000560591504176950525657053090617322102463807058957899041159639695785416442816159675826317849971565108308107145078764766634218160508409928926607300030975812342982548490340533236657515267644766087569049527050166188795842705367923913000691020523212374059952084232271420381449105172185623128670366378268448916923784655059311901966501299413457983881101089660294172284368869566948002439458576759757407842282779260212708851156163214809729103881061778876016821692083209963241713665739170933883732597880527958717013200895184002786273088221867192634797567319209861518104912075298495716034327338255740448173612574070670505359697033826047558123888923610631606701973530164724779961190203726344116027097355850186745616291809492026618653850318170784397065457316400497505960368406811623628388577681351174552061998863043072876464977596437982038564892972461685871759827179930267961767864145474575891264055998647372074389940910823884703257389653549550093547325181016748451519819566930281469030882540840418419601032390422940139889555346522243177845469407821990065736177107935008325581379826988053705103919832833979271761795214542568193612918632631011474636048761933777942820219430633126608441398433451108437523598947858971577607474902840774708900330454294972072303790615205779182946213441369999790824755447427919573219418802225795195039815397571251598908010518977619714851158035778675800031522398031216086259870781538224668997494823951771837962523083168017611667292754218304490814567376956451709288884800259660303631600373452050015784450154736456697088914840674967894237334251581601873408217420264842229896053721392596123464573634126271114907273091609029708533598926586355352303438529558857343756069952443402059361428967376750863710923680301631282422703657889330338561254273628794157349659022556149993145035144556556350671169841030354946236150086974346620781976751750243284149780612652319654282613761979437286715896573805271441576088663841151873941539115597680038086402092608881990550256384349321524943887725446271926224222342304418175014990910411882088230930439831543112427545743841197074477633163191219338311054689830028145891379994477547673084075353542181869090043116924893645483519456989455566084754871266296656087618073772812163065271798998484161486801898138128358634115972136516340124787065195820666742137800610621568591185384932114708767915807457984773732226432765039925178119817775840641440373508734628810965953887319264413917067337840581981806730716380063845672912233927996845586767101387313209740655697518155207904353337130851610567500571765647321288636801908740921328198431307493668182795667296232159107600308915324316870710667499321754314456475918239203001992743289548257538701345199704823107982227659823870953261453847812071053247196572642014748227059348182318517068630923828017078094894623315334987112646132114909611973026385031527011337350301098482621482179616503917817847000990820559145612905200672670562897169660276735257126995967895460434880379739955579711514598106978220231145408846431747991979944787369551792334357029861523761846320221957660193046309620919971285297903435935133854740778785207230994815229739991456551948254394903667782205606746000708457914052213462996885197127257422431800785452283161403030098606943732066046893722126933890857700283328657523209191539406122988470587353745860092032355380454063075459264524898316122974794073220658368024521799904191798336919443850859814569390928664274238344243305010831718659960946008940373094116002327190801529923563114821890678891249378493646115607723918978236852439803284271919633620993781664168795292182287309514871703391455926527392496613183387101472241690565483448876973268375283195906456108572353850732124629363987400036698069641628558211855647089994320302345628819794806611217283665520626619118265703114109962011804392290396697326604259237957459827329374963779004603278601563571645232825095721723198417309355961243612855732394896789650678933314174224389054396551912506648953023675713191883663555006907026213889822020808479973591472026699008944001139990229096462480698619973581372453750111689741033248038644140420678844288742260199100275664382637004073519954710664174228701383375118830067333049445491193859141288196595829691109132220915356370605255659147701868296675558633798956976172741377485242939811072301764678697419322982142618791305583333956371274075012423890654945807891470182106424109085843513663340439054968276573400483363073699793100105490103297359296030080387431367974715007551273086631486686561130822511201109604060126644484905459665451618936470810267592564266461059558777180681488571406372523345701638557142088638830268910088874770721881789640320066765213528464742988357204671306250363224339109828822630649292681708146440083078420534838660451628608921371111096613021839419662138940852918087555923351040869371434107220501700460403811827771527927653764201463934233415729802669451381483500946648480657696649410601657293350662875471496734276266444284237469866409943330596119635441477839915266509797061972522688537400371345455781841502248814544004343792115773583408965327152066928925642631979350802949974459085805590103567938239348346993278457107609986921059906665937153680541241507099610292168891781901607596684517342619360370194098634649046766244500217363570517974092331473218329221487938343979355828400228465736917722131448346936123557771257827973115127455984099457043923158312628753316001826521179312718474437731484837293079011841479083209121776381600576308651831033799261770182897959440105445552092653774994724382616042328033132224037218857805222834112539723856120481711077666852429530594914160205740770801837054973555865705767973092024954424895451514663447017156385343566790885971847535755575901725525491309158769391850796626097499000827734594974623313902569610808193301301552388798917054507242777248141098789444461349504198837459282690628036345100962584667019032162551364391335178339768534141833853598982000096181244236412327175942635297227431539699836735895933276524597364482748560394890404875334089961663383288696489635459778338258377302214364267081636246628170790402992851886997982701024907993427500651406187713611343921714254806512061311912364912837386533742381643013258754033641545821127325643878740092986759656579985139058413161693289375255115747129455321749085539892581550232588347898925047512599948224881891789317503244088984606781167084222536695523298166238868739537378798400115674549192265134495934955575015979967144794896859885498688190237289562688644395433547113468865897658616970900294364159163517869806048094314047991990004819383241356777650209556560348631844336809616435333606189563819948491238283993652435686526739158383735705333236570009537919002336011791129883171916071202412209841320195233887266813873711951070444147974210966672143814590350614461508724646552034468014766809417769575194729961618320749639448207904403412295021636652986078352849413229937275644842527079166301021247513639413918618745793181900806854363657897988463515661627676721882916101707087606201933782712264277747481561101967380920141553503612680503173069678602711358011708600938174717011377865810572694167067509101403470409409310090562438716784181278865556088834500882592176722892813180167682418415720752532671733668897165459817381657738229195940342751166482391166120041833773262458386764639519182926768834512704877105148515930350591933576933323821297031274866597175473809711704274541650593169347525927969265416412667095401955174685508373163184442295690060994405829892604847333440979053400409555345931588082545400080466636951842973048386980689662370325065716194140006459599905179797603790389483662649670674780060439315977384030244996908174572061877920615032151393498968138947071846485162682618246090325054019783217164771898913539048566318146967792721208204408344599149046472880039790254330199968580914092976925379736031832144418280154523621489261513075691793397318874672576269411561706742121589027410732300869147844526979656875935679792923536004463101763596496388971763419373650232807894150319799635132190041327928838569895494015176349015752265770134964127815756069904102244779477900516737398225009769400457763550961216665129074554516338781111420269425670748020323941136035325264548175872661385130116782754980793128176540923844526967137419157525512848286273514692999329768027455381125711893600526465868169710593435487129587006820305927311056773027294541372659957888333448654097704423910933270924087835829606471822839225840854011955874704456939928367892086615238049673433075595971376534381061600367647737341642704380750475616734118691296344851731122263003286842017589192942207825576849076726787753869834993109845162619158293089061405512940031636270425723092543547063695173848420961835370096230418291195297258136649149372307580672554545512475371439435387982076634482245166943617000642044383455241371173899596993188930671039663599637893934771029372321142397822344915991272447831227525508971246238668715437156560372691523919551018820932911896725352789131770887221434215528565512259422165754570476959389982948023146106376448973943348151747681057011148653886147626587613047263084989721758951166675045013584309761201627973480122050736781974162456951738798573258619236734404324765237344246492713385170706417142397664210151527642870695464737873816614035333631910035538982644685042170397950557143223380640188669789188291396378538188103914247720687157918774189086807515495190129253065525697115631422257480668170577808039843002640356768060393517183319699340525202394796428868044720942173007789402013731535338689524769407926519109773123499698857566500101780069924058774007410464705494990445384147101247923449189051202868990032089713317224890230996938049680232963738958282153287956914188703308098906297277038394015328869466046630685902076905250389817422448456435180916887555067752378584314162922729437351978898954095111536789202821416916948083084524583374903862316755133455179460159653917075898747583995023049225879753644500377665782998960223438490201025281494616834157414391855561445641308875357847327898870426214481767474961578464058622243559896342779810921620708084075977093117173894335375913559532016314745022698265669546437390091220843583415851993988953430420211458382540142310290890607343234265192779787608699803621970850219335014022271948408112817831256972235584184926281023400728630719151323630692825941949085278984542368942842570090172906473845737844569750957588984657132361227014081750343128890631496081840471416399054790312771334662013632535082887684683265730898088915341908375186146536404779437954471169712817542861547575557389636543960226416843291249257553384740301413508426280721801456184010823820497345461392354632025044481233045366115131258189078878618608151238391922894166944862336856071916178532207966131162921017015837489445680815247966021287301948760002151888273064693541221012376480347835896557058785000170070442196862461645720764532036753938600637584047885752639904295880585756743733309678359544239516163857456900194142158932664902019391388704985835003980912720269182809021780458725110170153230458241413151753115740879866572017514108146189953584026331202729003946958501291541235851414770341708680907276298746009883552649640409249519401316964262747456463968617931538291501300380991907824418039912399876061365172483075988018402418336998207012646856093784433117408074023585654607549465305343773768981022340105111893932851015943312999674596492995785198321313045816382290403532522773762123991900645537711896697046555311715795440819576195551103802987732457871131488384847620338162071302154896431208033903135876057751641372733611259787590650737819826689613185250211766752409100936334606340755111049844194956234914486974049133013547207172828813337477749937421164697437057172147708371413140360480622307888859115855660171565557593725328930018286883189116365528603290805884092815161363796837795688297939633662057824688734747890307213411506248469630036217304674421272432023371492564032852595535770666220555030569056442342401289660611641476005335496406836068730478291743302563073136167741017482074672394854085165250702495389664105925067670518911860924896853995614731381976144868500390290766324712683036314509423099148017109665933494039002777804369231216523660387792791819784291063769621966949646615665055479355020728505315716378315908196037210710102042063428800490284461934517816225041691564736362100158189200899603133102040567001251238386313643385038940948718627640788464610353238582750392795220187459796265007604256418757113144277103130835365477890157544223976182589619211294968142455566822589831374022756781022981432430935873257438731784809790262647360741303516360073314374267056772640535220916775996576223268535799217022050769980277199329326591390452577105355611683141890968948139796835444277560121173589012587263621714798901361513928309415692352395365903825820202850770560733486546719070684393219595565182320504446436585050396733456064797466034771127681118655765142314954461664631823893194766038306655823361598027246568221612670583866123921241772525440872274520812479160421743240910510199590262100908705328249795439763904993886189410209673664849549829374726999734425903982328116941191073923743339724990325721390399681878886944658039107496417116123064225437237234102792924697918831403539051286240750361204498077005245946107409999021466810510212141170791386961185599483175832386051626101145267929806051763374559767627998651216791653704696242190561743639353274216688465194764776967432430170138441944640562702597520402714536393323595118240665939320234138251094312139476300909051564484658529696324745384347969519342685085985592063240902045488329001060568069132588032786556924697538848054923604484006452056203032697875610194144193865737010375745198180269493884988445982225342130592288007364369655776039152372850130224337505328824905661301248441164244982339290264668564839852003049895796829053564535477397416062374053563720275219002674686976314734028920901203524489168574071126731868691686641484917975938803225233927385521205092220804269074220421288802446672493397540756304340235464919813183583226584616323089953938749139921535650184818250797440800252201316323441333507253231789830011837073184200989627029374727430593559193754454155148229023648752605025956138902260846920541360440280651507678800336080474302675702683227005700316383461666965087992601200303161567412819857899421519356159494712337300995097944183937687079125769156254403500655721501037397174043948534418432647134039602262175896834716109023370894744821477658968213087542117037248082570152858433780471688053262805066592544536006838366918463405101081134758937980842814589899549796774229274447360828658782820015228820459185285395862478408793018253919420627985646177544675868919761639716206359687947138448027204968255513751041645050192815274868145848759450333733922255590113877715323147235014986888478693567733037155380528107053973589019711368606448570847250156026451950554388044949285427263767204315049368447374989173939986610926906652452005535341949411855332588360884206191979922290696890324900369980719610494863824541009530168855049409730791270820719379681888902955891184927527490597307957655920745781584575152524381304706524122486941142851020225504706455739973998795695899718519609589426028134099938895110818994687759409394273061667798560162296557117604723998013227364597863838013577564432985653217975138763906906245338291029523125390237088326812917209480117578799307410643239500978504389994903043376954872147975873481512773445016374138414918015856720048141597126367132971256417232251779583667414631075406300708967749455757900933816591317190611122919255675577377797972103232563756816471080726507756429875072778183524717744199327091050625828202389558280549573228271368257107313918589207778131543666508485494029972324522819008866904153834802903776461312305108349876474948746880747047624436453994398790003147215948947107556682928834605720564735884986970038821167184921890987037347790749538802849361300171161900947706838127570593459586377917906494464152267163158171382307454644843523677486126486467944334239842988875159910427175559231413770043340673396795679131692983070539162142410452912851839434212671609654519869064638546924574112711554999737151949327088148504716023835000695019358271525987793794407119043394698543892321606936719627733253457324066439328481238674325729635740561992494778972851103190440338702405227534678448868279795587807243584070585956947114433153874922061759100683313560536225754456534743581475353963482784258358945688786676834675648065347410172957039278030042947164277823685581619198810009601858037874180562219684630922696948003372982723506368640863230803365502362097433220896956098716185642229761029593950532946942990822882423892103304228859627281575013261977128207758605354183825767741963441473052986651374589936620637928196797102111272439647527655524057883134751277414721462860482380329165862623945910141474539990450115643367925528497091321940694332223672126689098948710188941402758750404343749032895405924962080858380028192326485476230984313680824335491677928873667169145418781753968729137687548568131370865563081179120890523270648512236562557938340574514164060538645279512625225002935750608591579262626341993376778071218802845068965584321398733207887075766991012248793376545819554699094279109045378594034928979848083305736114083097785254605922562353301143720830500402879673788429968119580077803475349103113353511780355138078349458086280765304714589926106105397847248001934799228831260519845554527033994616762528806057299780791085870559013611679137482130555882174937652611849969677952648987991834446742378208804178210030733926496190587207184895925105928223916728976440222133353871571851071523366374608345449242760982535768904055021999101475360937536418628731224944191345177164756039447880847399560474423584612918537902305161960856753562726218258829668980893230543299835008940375064970121234311801777421085419625452436873468850676253823820797768101231973096518093342158973072731893536763262417120826729140524214332051300589853306989505035972478187014297020843060730785079088362023364592239291789445660173064863049644757501460876763226953988689424910146750023142914029706202950894818759469983445199217007476118770897630924816485737746529257726522395709748377416716731798594728403308891802273555939310300747290771686627918381373672163196098545304361447937069464519173498299354990975536910601442397882455410521866682879109202425001285478533200647009651891453721226613350156683389200502345919409335960594442061800156399424122361760450598116247418260971022872788733890771605490990608795090244355696635705321569710854602928831524226011703197556442721289467903017726267167369761673092635334865263763713015787919288974009795490737527061488895648767168358475193375560968039749838544880342596270034165243021420992372389064862632798290349549567368655145719376692303113916328454587634600703820758212782598368848384621523631548573094493768664146950707339276473659678830336010182012682042634165876333966344595136956342737358102054293270293267159547087107416884878212568847142015902083296780328248356530121862949491982661007513065452355974557229336413888856401324485152732542039171225694214456371704350739247540610677391156095582058098809315050343299674931537522395440398243217896717574910177193287041855223801494774975082021217427163417921224559689963681744932587251379133322357619523543495719758493134029022349483928779531995638811675379211058980660433066434539474869070443861752760839896493016697100577052714218146323016742125660091368309371701378887259967871266293323464354275512534712958491163660300132419910176325281814119875086143393983087273427731074575435423040931225536551121232841398065503146664073583582327069435348564519182056050481509831862794728407024745927098980349002213227945955261069474867329904421326584433344803461492352600789305408785137894889028236866596348032819920568651893208088368531217650341242890262776813987212789573822023550789225916971487245029149669739229578231697293550509188140384767701619191464301020192302491426374776986020088540035900559033021787344962501370947951727650882921110237133484476531713114749305679512775805582283937480404753611990187711067081573660891681686609362360584661863496662953195589430848674263446710913652337367897087235576235267071633887818233434965987441588720497313050499470772239208757818588049717391609445292059107368553698481368880857001509531880792027205452312446974689306428017410868708312691173722505039838608493771543896702634504153144363900451426359349767909829648993191902873331738870260667143300362920620981887515093884179426494320416436862387654790867706177599549047872014272409470401629201214355390008229515252098545715415601846704831290819539708420222161797098301423794770535544458899336601812991729777279806816379186978468939574904291364292236915774107431375409956408332609465055021923885206293052759703739781432845132071713078490937298491319628073353498281551952623014191140859503734624265722858524672218805149438913459996622568640134431543248896534149355448478785809596692747427405472474587589766126900689345686663752772181653883749255740114664479374044910383087569753267972043394756359575780057675087778566002484974350587393499611434486314012785612112969407998663876399335405402601248575938819373512674890515608612192559482276277829975772964838820374756874294073644676366849905549787769025272528205317083260040996006105250532611986470024193959836627918409934227671224758143179949358563709549940421598159719408907588986887895390072624242233116474101317418466395564872221392755854490992683946483413661019452028237628907686154329391391595866433369399619422553635167788755128465833783838250862180838222795001659905590242006186065241026754121020304995938529421827267854035804632424949587878122298544504356855084854296609683749750059747741458321364145812803211869591208773676306303997104509065377696085125384126815833305571631989219590564409884850612114231708909980075112732376507639924361415567083719142097434207452181107778595559274198089118734347203078580956773103303191642819619732902518343632368247293066456494380997478042098406208940855419275557351653260812097466272768402716345126827312453321368657664943505799297546436490806701826672090008044172633748570944501787116905882428230721120268573765376312001101249838469056978405595294499946812442251409867843901501165360658603264925860761496339263739607477761009129879504873230315067405523929925261517614966434312919121537488457124918372484451612936231622049915789168596440518947570784466587960722092768476872971121873022679675251482057972749917395158030322350209852139386635719637583077730235061076649450098645391867618056730369395396379870466888671704859880756093098756601337263077096944891094320477313797922973205867054621875622134005843389326194625074814010690197638172009335852695487622503916926820635740095334366797300868055494828851364722147695929088281473632432133818925883554257621171333865976415502612123439667380149951981288416255865722001038509326399374166118637224837981894645125081771254289185192482197755067478848982019651739494556283222276425896310346703663295453106615135102695064098500848801509520141137755681382302283358970848068485682265678323679683876048598310032711666259303419821977539441359705533756723935322959210653946874581878663347087615657504719555390398688663642538402828195383471524844038873112590856918685730554412399485793137316548498510232305326023162932151883687731018290405613624764590252366807021872995549158708545081114107604052894458298156990326212888157168719993942417394767208449565637380315363965682399346731266088942088216916320676165833058220385690775451622974271376235153826872132356424394344452051414157282478482521920323026805923221625631793982493850032411686506359427453166975947217245037610530378519310818970330900364461946993762065524426679920819851110798161623524017448880176933852093844316321441614352596663323703439415713935073540434135995918519728480625695633078208628256543153420654647062379406384587634485658960931375225616730728835959046055296966185588755181241500405668438554831479749077976099460789955068074390581720229740600616400739057453443334027357739066262046177400524927521187459500048582578997367917376359745449072601588679509339372585423524677894476958179177442706886991916458865775534712918033491922554246628005829707340369905385632438248651780145852840374275825912498478226585180582330781343747904359744125225888827336673307472811657004573731860557470496745457525205695082876086710804923462521889018437063359108522265606316214217314512249081955410246456161761694987930649562603892221072001734989602510685888785904331779018740590568332877707890896148034663057659137274757044062255806140831333546985879092601058956804890930189324585001385633213175425109908374074825340602910529366718280276135541014234038287409556903759272274491849985640912861742536790669692232768303315403042135608048722979142049657014834567623030721521815999429985446783299342417349546236734606123409078081644212862897595619459324045656433476514659478742801421406144939644439243164840486783542105691447397629849368760556006747078058490578683470427204345014641760156707499236964537266489698582709142108005562962641018569162850244366860092432209187122079488413471514785095250089573077359897441361666757674570839347205913600240387217298567161975557045009790371582931169795514736571496865629890039740600661420684388125543897563007690909415331096080422858195955747113055241122253479485133867230223263138602152482066373549161311535314582930487149536777961484773456275626100461835836511576952147980129138122486136165635266813150559115024492443497461585801332741972687285628374409107501005534729601335491757973873432874653060010923001317720826808313956705103626507516097040047920461045193422169153012014996353957899598544555004134617570081137623333235216822809070749765924633359017601557771292477968791387554536809819376016299467454012046717247110841225074230114272624516192593680986789245443236382661683081169727748645525731848786964201278968049763154560588999646438354808241664944838625661328969730959694910469140232826464901225472232286700827334673305335590615502082887003353877277593180354041837277033515606864434448719744557593751293031339285872620134858598691958380259303315020841097678070638048964806666667778896235461496743980760560299708974796342931273374199174149149053940521879237836745296229895682066765738251424859457234770091266566404237431674111929382029701868800540765427415392034868812872617075329530600855389548820758003954892144176818071859492129676499748846592622111874426409088826402605422022222703055804069322868921096025091741689785269439599202758976392358415309984825003094608848310368862164261043163435252823042886638898537798694253324757483369450471720636678598947402882460865258054982342954288831586730967168074408032887467806922750404280528422968814548988423618010880178642082293686866265845400075488158750828415320148659688356053108098049735352995390880894696885567715257006770706068196575736548775360025561552637352586298473492765272920904122878661251966179615783930204481215704504903471895751652492381048379054408565192124233186705501534592177320554189723554902429026023352825163142741336485453199339767217113883187473384864197184323358169089711622804279050798106263468189194634996892814034054317207833547642589050873625420983929538571485792389541680466921126240055813867928076331000984786293906349166071849794207438366468120194667983697227863211533641364240454773394893595050379576070077561708393532197745792625376493302699615260891243409785416768559306823238108610005750909695397282933825687956959892836005114283361650967470628050297350841392990659879552380373306465414238220630349204084232773944786452579889704771202907575836851662831431428716605270974635635435143123289330204404178185192981639350702349428816546237654958988040592656309162847301785513577198092903933468222597847409388857571222007362129581332337987987422519923811137347156884390443444631014854306272968081687762173136667591818198072937866761101822627897012876011097272233595505891879526204233157541209921827335700562111034963306704372325955932803205995470360805817788428481439049803263686429136346505996681777895561316680256356326908432386300553326678191210806787756921701734130961157003446099531915676724580820936794734332003520793675432393875702035930508025710391372102629148065221369170440727059179778762076475801419424287800730784296231765214545655615878879160818519829929877267626878114547075875404587538311859032435060255725999237288679348739346648673808525849362003762285220455672510254969200946426457220117617640581321372845835711163415415487278637985403927827731964855639956728823537391103709158670345085627050335376374311718063581920810921540941627480371267026867885476658709176092360579985672814361717978968533708203031894808526860832106157696147884815163595161962962129993434863998405267261284796937851546243729456951728615898693974309634489663484388031877417601225949080064964515896962483958355188276581349236424620268427076099662091142777489112308643695921030833890044832927145743353501954368933068515871443687155869960157268008498400004169840647382197220166156617626510132355927043974832973445050264092417612930528794899471725737201663303683590298170980574293725886162954252804525043453212879688873668035431663036476670647138221370045257226725414857006137796840236807538975660005334205541333179361004951535259744634668313394665380516375524453143879591794600113630748716794599473615924138378346888918254990508226995111419363126483159984071854809539090036488931823859119488520161211241780575983367511964436113531297432280584614995096128351503291356484383808771851612633885489311273331130032047583412007787333039651596776025734281834010843586280898009680350693410270005151036967920807236544414831472998561227154876499663209935988861736294756034277421487421455737739217792715605792819979280141529129325676434500283659354711634263542702786552593974110567570432703403829045260209376412321175592605927485805266022550028798707309087331599362564575440392982983956137223447701632530540670977787545893344908068989486820783496395387110820428053109499253523192035492624641024524811385688065528875756869631939380073552188050073512850418554770291641880400783721579528820528549884372984216208120824002684430918462625166124202675579540517548812503000037766708663703267938959087946669080697101765841770032010607748396134907260905025725912841321021761865251303031924639563130154579735883012171271953780789828189941455816364445801660994595849699505656468638754775268255465416999395539935112316154080093672648178338550175945808737047623170471759719729642419750295575635783764176353047126187885021893095520304743484644178577476994151868132426181938464387558413325615061807019389301498465633410559481026664144078909679942799734325556305238362600771694741562823776044658996079823435687287203752481097851311648495901468865239089588170120323530537173299805454007052957946927390839832815036408390654425166874314300039205487025501405751554977207162774066449456065906005874255556153880881029539236659314810025131844040498886020277964701420396320105545660746786623735028446087137649160621709704896573733805144984105692085060842282202571614124616103459698813519708581454006011268575500682246096839379942723196080279869280417406832120650049270439996203193796030254407813065748258425400526184879515498794254705182246462011731778353883448046134852373056992440479964915107937207652548177354303333415623987072279736662165624614447533171594590533474035646088034440311673998959999421406800834629918346649369196238304415181388212144316860313727170323495828997696687704452130464553444076147270378287304039746960883245552464645477667645859911364137544042745955414058139570498132896977357829537043447796390722097983206394234798881147274037555873690691664840683605204328542891228267076401135073406249677954257901905943924644558763689810621917957590698749168080227707414324023419872504325452557634928022693509706501101113936662802777408124180805886507731063118692220652721990128148054831125859300779139888003873826610479028852165257127926446210769397402732122922990415037053501598916369048323860927737866849308434497064438271374693188475708899495981706664268257973689416242980988645698918558203745077566386111016585787170500419060180372782616204010312499664960430300336306484393560927180749194414875380131832614881989236695031113546403294908502796730364852895249063478626785229975772461720556209966199121095040441047521321545063482973439852336976721306179059510597916803650076790487994964950079307960306266594911753594639818884657692163581826151601568786034091466395184579946501956456244822870322557324656997092297078737819433040092263369573305377815157917462519866446938002455791476395825061164706045232817753779919954221516241282779901225479172056625453121383318493139153781622759686974177744250360478830130034012651289232781150277849946839643173880325370552741202299278835035524551311425650631219598409712093543906884432086335048307922860501050759924658599545266772643079782772273549602488890145766702814211596062172308153539663204804990960463825060582550303646151995027209140803641456745048725284560670419381173317171592515266321486742774831460998377021738962593140183513306193420504068570239640366379593132664747648206993291632495605238161111372404666698561415481370637252000966209077973103617815040676009173205011320850331673689175544157228668595708253087123992084476693575138541966476866342639817446192741046617064977624530859486167717202676286050898932702966442775451537277571809892983925647290748911478597542329025346733042139487310669391101158682341267752368372989794531884928096521986257578222079354548932254431514844228701415932353038155243032448801125500449279745597040789223750077824085986270948554929359099051502149362066089126896740269935424135841102778679773869972511589142832651162104685900742994862356124664054331420842980991890343870135282935246719298667352532939764544946328091778891990531582003859253578544923462880663118722867095425753034022326903704253661802047371670457575045833691412672720787102697725265368258859214008125615504914934931411710305551622447177286255598828298170310741959722795543200447742657189784702577127614204867756922475765759676721987905784506270405452323200035457605180199847403559664961049711720390856301086544937977143055923779567955727500704258738543083134629433703499827067995459554275448446394573084054858696862985617931904947920865297214956503725598888382733286504054012745284474914476827256230553170038746488508025100892519789470508148270928884302249097221079664665913969132961529396385827498685139738729082834398583521297119528038080685598590297177510775161544074275324134065999544114707519483263572765750524390960527436093104179094306776380503355503488285268374962619600110357076800984842887650502658014796373188253504754127349957201092245210268731654158114056264254277950510815453026681425536053695392871548828356026654525514218285099272752496614606236897322265156304120819330277819152273370383193800554659220149859802430609482326166076603735059209671687718272067579148535097942342307533393221898086633881782444258205953716229774251955139336597529019223660467449539901496732876349040593677503773616667128479223482263765452402475824342184270111994570626753695838989718039586744105255352076944904878803276426052650817199783756689511484511466935435522453961003462988309026217841510088835204314466946956200654104819757862675227347417939778249944211341920051243655669716045731934019797860831837272980853697420096224533415387048922889625644276073686220044947828289909850062267933014690287168347383974219047475919497891639899576851258081298572738339165235427767673488777288105034639663745696368776495884899130911538253069224643098567999533872268815600196987183072579679876034479953362388679074837903315917741322831549093905996037413544549388295285275017280603067100233160101267261658105939031051625414709554198429840604459274544524115744734209500895441055030814706784232767364204291404996909457359036578533789980865146296114914209520003130976551492671235204625892144990115002514723098496054978173091814050911101669790448281974539298895268926103070808075658515585196945515393747346746076426896236871707313430497603858884399763621703755100848740390021131669886087793815441156101311922331243086049028724127001523761603078193560439792667627563215812550024441894074772495042149251105302348575070087790902040197351695043463917863924225051399108139403967327537311636982449656626526536487241640135745139041371686194595928665651559832334678725126520156449216710870434306021812737734424878174801497287365526083861051891342869183900841781479987082499315581069619113440029648210419667164676049275252581405202581585345222463562832890023023158525036260984628423460789979124515837881894224335047423511979226962053265405187413292467595974325347468768135360273222813838183058753997157052497187475693545327452971481510218053920578929705055033398006635143057546804889765738646993474594240793642766102359318412124719236484917068388648600070141073480251281548879501275326593952651795457392670989663200364083092480621717122028383003931371786612102887250697604378862244538423128694666342155997030428892481051441916438760977291697888775481100134799443538269071508497456858394114295703151577271792231910150144282622241414152820325965895853845790567306116395568444319686930438743263177843368462190784262270965688187530079747336680735700655628979644182387676476127739325154508377794257544046356635909508633709069741290117335818437648622874276460328816152582858360934347774074283233621486266445690269421266572391116881478108263579087007905732946853723649513665752311902303073397591130715050916034063070808857867388857669099162215299509817344336917754588918401292630461957292509062260206170957395423644867036368146148754477243049435838570725294723871102430169691165093039647618689490155651186497334289130489082811930673013654384904632242160330849318118491344215365002387809284724226948177547667914366552848614550935834722187828199915951212513618899687390212307540155124316182597705328516600326933997448062242802753486824778436746088360747304435582726036226478580443478381225267300392224871208744567578712702535569932534293219357199493615684476659223263852975242447799652780790237082588982847994671854305788505259330128337248119896980753454077214800175531455638701274174793888270544633690697191645715622767315202327988805956361066942435747671767649437546229180300914539864395517894242259760586824869284765017145656857677790963861083104687334729039979175523998004247536774663929748773126218095660314907360193030867941111680894150111411950739603281577054137855151361693153961064165807700073109183083172104907228371884539521443270144287723087321811325511037815717778463362647301392095567380015158208854547233742370842518393575559517328706394964336853688875368123016167139053002084812510385721907366929561595068436110200154300142750450656622117275419601113505339873913853128235175358060610070552527533951793585252667252687905771184019015161854114082071973855470128718035066988676903744072537931742705643887339503811167570576699200478003521008299445834093991551349391354362849642848873796978718002121349060329011551082441982341187927707647307585874335566082968538268863591878438656760116475445752801308126308575012899352240031449771038577372034433478357725710406915829000242106270960757910744519742379933021442991525398491430267180261377705933185472238004233156974407763449516089532133152999050427818564788607595423118042199345132210973784398245672755052662882155215271942929357470965234798926447143884228813643165344709048751093977839236309488189525070299314970376578127381396707811658955833104879013075833479827779537351152717219767299542073037645192369373450236383491441224825643453886637341438774677585437167641223730395923937770632284757011081621968596035173146553942073707120262307123407958256200873564752654194666815828032903733721555502777133286043315788683592438295894910615701397072256322655678346209393892244186737530928808100689653196284012838935782698188925686926294778811133500250880528463773988033799768801086154955750144215914977726015072043343362981456359921869895343471923838705401723235658683153850043796046142823874442178642328696930021162460598158913160049201057150723780540313912086534837488592298432423855356048069525808622229606372687328796043712052075040026977435331431985791188605100605148710320978159592996949486528236578048946626814743237285976479408850510036810237687247918815814779926700814287684861640107434104357594394337778721636992950663819702868239615868286217258312629187960895643291762149732423675949492355394294949219024374504115548741138672380502408228401437643856805123649434440110020068581454032507728563583582285715111659030149101233756354384782818760705503987413446553537725085486853693302070710333638445508493937894710568045778873667584947467738122777781904870239488649044753259899616471009075236557491421599099578398842236202821718672681071668637007673882881130090218478486896216331330218021839301320471662847833813750558609963986635068784942783603122412870625620682303426029914222391720764329672319155619086386236604885983050608278720164980880073330930679104369034126600803985064480928378787093190584867995562357968052765465969544065322371565047615955196903615536359582497474586751615693517850736241506546108463498277624787917365727831179666822921098889950449963691985282512078278840619001872707317051424841803715442422152295455248906568539738779029222580594166488077736849094268847589800376344839839666918367105630579720655642233890016614313316469751779640589892280928347423632527655403268379035917840666975584371351276720388390078519008723171116432410109684775841367809607856471357347969768996481355161384184044153007321216724267465598955472280363811733744626628624348699984186691852312297260406837161327001639569417398396298713525185659219545527444067147689458213798901239935382647817483400966374087083227012702306068825047174412218162631213526443937939828870849962623442783624745542913708577362414416316788614260717722176385939859446168374687931108331110323856814020438647252109628521236074777896868604620015469245255954342914937523665790556711391172703425442413106080751684296082624875105079319980431124413895343895718546334823229112429112791785420946866066168999580384568305078657270076906426697250510202383160056331672381469694066893704520665589974708822924268659024857343114437911233834108166470869080139526509358518086228948778525612386714974835651764967997667488982546781310457325633457701329761888107354766579763340918486963939113541048255781056443348371445661861365201282001979037553853825830000211582036376355501598122728866674525844479649052563327920949720794775646366312765171899830136760139550386766232306391580607498353381389512495470436886551346507591051329846209196852456515720624277907105312756355277929134425112090932713922493894546588418964928322725275328211006986732932479284884089234605967790063730577599697419890656507145132810609068296105246365074983126980794719597502100610077437426217047736862195874455271006475001638571132942278315998929425901767551300746465826539803515305806906326227719583347069651264851205210612353892695534182501690047288080750908037051265133822597321555003198462491284352954151805846115237986284602058532712399750214892563079347064116903904371304657590632092164866365317151003015512509289918412507091454791035982076613224105466738423820827621168644009546839973525040871286382087602791009087314334822183869031294065150043415452804882691387247548163470978824366630266446285762448066505069023793441365448037439768959521402007817628388995584264055441971439988860905723258046789040306872853555587534564392414527929861437407732358844245636583299808702853344488356759122629030885652686108218968448644785222590162782694949084765909097188417282977718510721412024522592635847662397398945081919183410146048716531814740813112879275644651032416735449982476980618729648018643842009002605464653075151442906893177584996942003879057769006232154092073543583560138077673378706824698413561997711212839711170234179587945917712169920450468667242610842909651045447021591491509001320797784259973278712238808205924642151860067917315628127004070326245069970137438201276931827084342136099727052633459482502432303698940078553119677278321795029702745844412196823436780052697819232855675502973047402014294523657048967978438676536821293364594810597936600920111721806039789702675454736450001927731470668143689308709177127305827020569408695511058162585546182327941615669336997298451132008079288321204244334357770987794231502008426392476318710790982398141712575538918716277470884503555135185391598718497269920039786665790991183656304830414567501267152062458021728510195499543958405769913244340384305986518722673581121278492885081883038447722134053478447683916990820577375125040864895242768592892068146982803843702105244726982381064107074384926970951728986317474679801388623941708552054400744295100816258529454591817134258517560672793505871452408029826013001627584800286391079410300471571164694676145388448910125924179543460956076320092431195980354114365996265893661974712831119990829946872623552864489604134104186260463547908907560791466881535735045856954834434932015758910640485678023949546779819453557304482087625622469498193304579935408381230744358416631241084478622415460390563325103568530407394053957850259274647799027452107067567314792737405102861603421567274400621237587063497928806113000728947455438029574483260913056608437916442334496505811683940790339505882384681480687604221326935764756579442046863813243486250139008315652360483428743972079427190402500828307040685900404427800445887547091236787856430147425869350331900607926712601092549422271165679779580570809334672224941204643831737203236554227820569640957021234653604437740192631546755805883900648207519145680845377920027712140346903232976636959940778589382216468554298083690237230500486911494502081840072333923357877555788004945689137783930787749553277613051748802514842325998677931837089908823264494533584956008643174004747748607898219558165385530237408136461509881122802475091443668938652874282608745170856741718197119309117542450244753518020657091935674257153458407988063630783108578182492268906922946836967405368868110664912048248018078788348719704502493989360989784098472282904739927903461624635110700887132939244951386555517908664667744724040698470260882022388308404935252185505669055348801974232527756292771397831903993337974007839867588388328018331322873787100198307104906266697488705845950463263034092432333377919588845943800371995139056674131219998535344028603780135529342568113870939683399887844928441899585227734446881377197008818644524749620845753725177598391496007149566268018086794164212397218111209604654272414025052012157305062223385376401963805512443291514806882354522795421397256917736570370549020571459350381413800393754544077670488303571694408151453795686757021875744301130273746240197768761752660695970572905042415286384383642976206505435712847404949242092345517425779425486518278649646335653711039606803586632137444131789332248685125317491187733569788395579102814259336577043622687648499410601027142389249101189135437507817874147292212140147586996521754712933341572175389113323088687698852845572358474017328984827045586023481302197015286572280432873743572970117298494218102504491818433529789678713583358919934601566532703601384259815811838832005782468612761024988256484221991000875570955155404309221299371520230588002917455947840199196513481129670126874478018834771092371603414243301554111985437279506523115985915419770636823575512005808106144590915136161315567058678796136016128136412374296736984493170498422140640616317719333744725651407396429348488851549284832764220727399094105260272850774856984759976712814744322773360743622230803427014635294112718047785693423833189385547527831927177082894000555278523241296889721666486625976181374614971746262579452116262404256954943561034334501645526964632642737936720966527277089708624880193771400908540523913830482578263202307985599648153215746890595714171500048745113086819030536567642261117060812119348540348427847119815046936612651542548614413726602441802062727388702595739166826460826987413616801025523731728577645192913403923472721533313003040077490501861238173492554239238254533390215672433657825146844777238218769897361773136109543689204663391052969222229744747323710460014344159106920610326745430976274276767377673680906945838222274729596721175037317838978771387548726805878322649956419586520533457218619106154135900596504131989781766948577254306455624658967401245891863485145043113147497949914128494279025087646731833214285649352060865473656206204483402693311653453697918819264069096330764107449763424584993588691165621306458029308497418759830378218518811381268188872636479208958990710415972774683892080833493404657164804876526635747346369676805701028094975330090523392922762937250083424776732595174566480615450015710779078471432460583071514813563876171667941682953177384002539830975637676018586643969745924393430238788714884098266694690170067318685168515891589315645449931233709462919798080958516053037635853124543180088161208943385374141801189522578307653245556944147526931788409152300270768398750532548134505593993644445330851905863683921047828841137913558628618900042724335679538701659994126891767271312434023622003958878361689287414336014534424365200774853537291312178866523562084107251018430212415741054808555505009770886274338605678701083238171104724281613533542291440468785438236444771847619514674564785151840416576262419007908376414913888044657900303116527660761149814233841867572689338463630439780435390164361318782329053251631411897276859172689072421850022521422915069337322080894517133608838385304913679520030445926435760674198300879759799882194143268377486989969160724168470198827142353246915709268932304459694339936557862633923629943002846510456857569518058294615810183932683254707153375908297017831823828027251511065046693621481529186889184543523632681124646521515821176555944495042589880994552728286706597500798690624113243822830571400584395888214060255065549642100097115141149519836974764205299230533827635352516656729398797886209758493732471298804755390353883356589241146898723973903423891679486104056434302630461028520026668972134397825533575088857382205319094463960180987018934875853188669039778000771939620504022975317426103724127733358549594412057265179364011505822233864832621923346128146385161035269203626382512198182964982415055447325055308303607089823760345875541013681361373148336821152337338212270744240214953172839118383057083304202527458976913679815199994302982472452708016631765918201172315409431762963187286151890701867650040178519530720156253920958732848696042783673436275858830933399620352567936099088696094452529022150757008193765524998419359559258431379825767288437796946270813104438733442974943329817608506507946292942129620648845519244616260534896916056707211005102674251659497894093998846829660319243207935821640341223992071543664733925475568732129550673410949632403979006666118741571589652766037939122466572687766375190545852763844411381964975126279801230267949385153150041809635460684825957836147580076973138932522888495332041304993639340300641397964369188114311616552769333947489718599256992355921593146160668128832040275621939645088754272788042039655757386810211395234003394286613910496916378266972309831107069057019522640772101500792900611871212941115705094729431322838579869517644910831035600581606624530753224510354752819088458379003494355598933548178983979554040747242630860057710356600182354374292899931697379606886897788314597778171705135824813554197433649220990762563724530000573594184003388753704819975659566118322405391425895591069628816789501676167760970818023613693208332047182451984431989509057071021578819566722609524681624601084181613935566668711356680399582009790236992574366179184203496861550414949568957409070794386635976158583981469899626399123157099462180473030064442218423314131973085345539532176650554299006476251544767016855210431352370139062641303970851846455227318659607171795502960170949882600930364649660489161816840268828384815016261241892105532499537079342361345006650279978608493804319394140693745741993759472440177558716738489579242411945912223605773520611377263917540875922176152507542467394268191438492914456002553726034693552483192714230999814304446389816085623415324067192325408183018347444373967327795364168606599748098375015090598477005563377417274813718178306613699223287706664289804465372612391382976835299219004831548942355287058581384045033411924226102007483674380236408911641579243907814645473032748581572686447645661702063246096105130896890815410317691099778686814286616146604167184673247345119866643071765315316309369191312269353210651180317779654999084809674916830452908383166393149545497000072557077646880179724478259391402495874182326260966348561668640180462449325490748157162685229766030206960946688846327276214332161295741457585485223194637607851976661259421574908464771351470673480279074823312060813798639080546299186432502401180678220539859135204252171565158906088069058473442595685093852571712948791853597860711729948543554343696275964338277978165228842146519859459177833841922363454249751082501816542855372166371943795284682892961024767225791754329653226814237868281160983750559652919223016850785831999741628155333391211512978379947774103182805321432467929423940946435292683641031497265612376821035728037571789145954539669756359923349355242019797983304518946423218101395658400586607234918940605459463542147243440404602289164004649833197524510125796258357135826083307847357436987506273623901684448206071585716864452053782353342137479192484532388095621397477437936998602204169646101452852802496101053667473727771855171566440617282611222862203937080486407330323851538743189326584006509343777364354252054292830722473551706242332400035326295750196528221646744058982302614455844083996888600530898589258497598283607177471599490079662644921348314780455037183672416197255808539995742878212933924322551797287013879590512321780892155248017315090665906923202598654528349511767577361144947663433087557064313579208643735783416510580910722783862419987325078724402931661092515775454147279140112334583298343741614431292140095444289222672996615960279803419060390372389842729318658680038902295822253282665467922959487940724852936844542234015888405526412081954397072991281596696565946940657414659662409969718902793764547640074940436251633091941714271821825753208426911567533707758946423162685093214457522012263572490669143720791708161906188563478300952975059738506590300242159370858100694991165705737829133434841286765328429383725986939722942740480672205138582253605146591241909148138628567641253967988143362756391176290639611787161056288286209751035947912439703286759352137442247999460286501005397625310924498202203123845564599161560243025556132014451381364291632280600509537619768182092737123928237476727304058260612091537388692826449882987584715213352777903353074902530196550305223767734178429373348342148778174405980695878403728520305328342478253856471891043634353683797915363145323215303507288992155796206517473160998733762993986126223829023707584922704940420692975750500684680719893071330588349985508462254404770707968852014960032552287971209737664215255026856211885534858644891268892999385902201962087785022099494836406932200670418069314352284535228180547796054295742108204519218293523049960893454566388639162222853080326299805640690458708422697109947406152318483453074663218821252959979650838683988618074716792372759124930931520065479156264329258330620473486338359020934984980762815578067674439963681908613987818949474486680537795535546628420082636606456922090990154833776523779446384243816775452245455006875583506000063824848221642425194987228179358298626524842639252952567386201736454566676305009235478637782546694856333392162773968236109080240101572478134524441525785316793445864152390949388465202040087631690073112727775734014665309450773879848044187070785240015354323231355913510268044807521801187964713409193823944217466232674567198633095907207350642892041318527992774882224510783252105485246887711942173805053063477352783018568057782160364759491079689998109378790167934763081073900645986715385778784931363125709999349270996353328324861153039513858593757101742856807063012468734967286632809192989921622591089509511188419705108526598024862362051538436181644797657183140203427531843699626819541449746175829329286152713055990093953685879589895932382111662745110723950815806487401599610244752783851678696869231706008322781895774837030496054294665949562150449390777049384221514850545401408402381642089427056984033505084361917233310508023772769961682374272480901116807063391025547920110467273413511536154716876498310554797519679038448409506629398249144661762293689490849937830093261520382127708221056705128946827716969085302084825487931514282304594521213795691597966812783425349582141585306737171210598729905014652033931836575730095162978937425134408583512607026022986041993305078536793425284955121291706967094774725651018906262011028785857926830884302904939360748708437633163663694428295478709598685678704887003713711363070370050325143955448249636081427399130475714876503100295576734712486012350084025469205321244083392364499655873485463411634399307414942158909829184222623616954324605951263105038506291232220340793335345967668518431867506992393743238231469675726325285537070301773869393565711341078622112251614059501048692933812458317034010610135457921857005063537988859643841245604114079756772467593948176682352890951466262817162351694449633861532755719732028537097075377749313739711347868056931400769100886694408491728299623837034421902498481095490109350909727990441270912925333657282479026700832990122419470554663043603710102272757832129460668486579440220248612946885929036035145991903644553269730614571682842330015217754294490864479743635095506087416825247793486795708396000464680998842673784876944739485519845120592425294038601082151425550510515926933425889930769879325632604147182137611604251496741150994840134542524104237723818149706545831005946244599049274260930178498118425728794961579264012238467458025966961763984629130945421279508717500355243143790881966868157171623809041167457988219445688108121577028151062645246101604137301512796038929252134130525055350988264956810692047588723812204144007841595248544291676813828140274257751007036472830810085588488804311675205517480706280217380359742250597265692951721566751373182956288914445828380810163645074848048289031366391131406254703707411835058391322441158070908095843806223096940855564052710909225015661784259179714591214874609275044639250546356486209954236963941477797768567156263049888561560355264113065393533874752791970089800454564718577694778807851967684714910144223638262158761974711772822136356957545591665475504537018908215094666055724178431901281193969728620447230271692560267242366795849584859798107543772142557114380729920599543315824652832978530244569717418955877917657853189117847944485712269932917275510436171789439115793736073830554468653386661105765004492958396378436257769502593580049094536524266957461306543305588585063682802971439849757527125062510647531358405831664343651318236627682615034479746461821363604585902881880771546107275655831903764118982287708714411643464306685910435883230093280266252522397155243629199879517840306711644315831941558572017253777368663092304201950494129066822195279852525468035326235263248642187196031503357101878174242821150190350700864633030223418905402592503390639291349417889264711774409968937306570702618754169975230226677712581163730188516645042348388621444390684415111807551321957213755487072824278289139356448607458967062977872142125785507560902358474927669016682353692837774586535061408644783296747912430562667392683279767739547772365443724557664824565391210246194777257082562334842750675751960365432090179439280004614160863517364648478857050826141187162771562592655256191630285403804433060804935636738533416321397170288849228427794381851829004833227202636682393636841592377820545963622238405713718013875581020094824054503081360892514517237236761608936541697370077882500788254867794075771577585730860018515439255413802151013869516964227146408410674631159339601150216423901912830699951492132883900089531567296117026148428769650740375605719217035386045843222825380813583902840946770476147659280213464535237111334026963372306289667172358253934978525228732670626268025045615086338223847527458447811407731522923778376667542209991121343866683010431478038709208141405959881753156969847908909373956578864960572567215130728679046597507420549513893455366288509731425080933206698781202018139839147011020073507392350349988100153025714246992912022790440345103508534552694301405271448739321085730726079248750649974306196394295739971368532822735831942983337672524209996613158792779765606306670452903071862501258895265235693341089749366966809429281416176043569940964018334790797115811436004302944305719529943710983163276618848806161712450728580590071264165583910077521042773741187549072046099366827041998606051623068571545891247507789913434063130764139862781581334765776841575354868760783271747487033001603683827363507778805830711396047984804171629808537306384184557141568048304531166764399843179669799419013680967279529719076803004736316070893806909864093783699521722964744111026656833424554679608707695125841318049365087621739795786307035022541137862546294059890726988274704379287342427147534484014278711288154845379207446173308152475475599784692032193953137954586408420529870425074728882704658853628814607507394420685272148791884448207687187690599956346215805171305662146739453606601403057838477037141729854924829698061174210018583389996617648666138534652138156674999942689761975254738871828319654730496437182506388575468204862211202141209327223822722151552793738178010296758537870301425149980193784542004689780686493671181379470367333611219710579535709449631837747288843980964133225666365251615691793620858785173289707988682596304132970018765445639130829531261630910961626978680304562167498814440877435231412577342948644217721793054862519060852568821536936977616887695851008884650606201598810185654101140537524090022489384011970729000947090659765290181067596554866145320816162872962950564705932758111746640667481619169301757628032303928871858635420538309972269583673336207298189873183328405604317230078743718841398946667213464187624849418931097812940609970714116904085800986669206982813558880727131381019230211449505344458307379597724851525487979661304026135650456739750429453800967867194707841066594059843457932819163580334221759743821290234427632891482345964999983037195422208605377023387777079163158646626389175914447483013583917180327968404122033840851643506582552739508768590718425526145974086298971495840047747232236617094658553836120450925731584894813666864154195792037556853545424223048452648342533202718427524997314657560468275499011993995664734887881934625240883330563739745396210938630974375283297098062121130343186757071022378109746667465589247444253489592494426756544389090822725868758967677576746996586488001229168104958991163792237096827114184789558840848883854817894858487620784734805147111289445270067199683694664903069552830614620901259653590833188377371873585624627941195124532901881737457069985754229028113646226510340303050462518584191885561166179213490747420311013425650811441378905144406936948421144168907849268088971438982332419964827560272211692507691273111226550062573708548859804293560080679029887237295425196062043534910534855559443175151910423836784160217876648685369338488867177129438461951496768043053498408430542299733758670315623492102855409139691125102412589451563109052954115016523601605432285921679865912872046772229629191318833572445257198856392050446770006417780122800627793197982826488239796790233942639301662488231418231130899535938060844870819070737720178203021504006330336414764644274578256221573367053403972996357978139787840923304532515129597872570801693000643108171934971602043243427691447965414128963661280729599721617692024435270362169550645924137393408561673683303692339166016289324230875378564102537951229989772972819310299964761813416952519593401960929464518183245953862094326102706414184713563076277027928098210447119580462148326708861039192959197312037033841393259493078838514839808496031849226808299755912046239078380990633468731931713430719958559326019423145348497465131192680450928196195301359042197368535474814364627359527383623681081334376391306951264846960780102193527211793640826946706662810122515143193194273786053219672481979701405402406707823905461335551279097085981017275365850920170816167230881410145098565978759198957104601905826322074949018274786008767589616446372695658351534248554366090067568857507426853442691954684429396593110698654513396879990759498975028504532082795426735626838001810396221732917639035945885610792320699077221993529956378544833449238509766327556906349690822538523635794355095087131126099614258443820247717989453731247130435423711135394337717398699194104923904682378050238340691090148706765884066057406184062123388279044565371117300341498541975759492727881891410870256575143426493216355791944362492706200703095537733714676946273231926299474864211840192598730947921823483396365796532145653513160109639010622240745097206515977420189136308242570122027241095831131772146542760753204123520663753764265614276596120190968678277052652176774829041892763010280845701251812958852771367183381966251213893282629179955620809848472328842463927305642580734955816990812826494141035841239847859055882607139513888601096432652032527536079056498636292746015225833325804678912744916423256430431548590780990140602143433898666558352886461619747014768097731445338612273565705266973165541696139291064378666214441929532870572375202019727244162358894440857023987512496629049688707051561313267024192291143571449035217254856117235902453874725309380949719404051492747818328211830287563345826659376796685189408802613998480394577350106685513912829445957659850856767360274283740974073781803513132129147728532229944401404780701941943955362972626355197890023249362625366029769946449534834634441199618250355927587727824997090103543570031789383626272844704723553655516188658771742412840200617950689771629540078096689814028771573566518098987725518109869988203370506256719362905026344804673692358355790413496415636252563740783590425526816202921605789550639347456002224708241412798879612482473569203165315597222366407608857248813917712965036005400765636921981031677265616291008238417872012837111269610788098972752845093978049112902424874746817060175951066524257307164413653283530947893297902437728362521056334732482926982665250491360345653628979499059467058120630135425426373964926699316912544961667085041405211425710506430055678706564523200516828700706905015963854463756826759313248673311561448493007104528027634907831656613523066519379489647169319900666811200349947509071167259819679084332834207412502547192672963538938876045145796645556541769934815029519283823075056319571789344553656420458216689305206409797758490489969002441525565667655731315972880528754230898283361845024650196841352391491389912154864349652909296516210944436445997385699321805909765472313239730137217646096673385428473198384025621180825232352469299303755122363823251015025140848258198544315211054123776919178059994612227032374151893771755887368941018217906309065498655987683749248870278950194679739516948080640450054252861839815119650097370019050421062766005211607735505946918468136683458104728473915777518754693372133187885137620285374946156618534346826155133016623901092446142884622821657725240410092117252475751305929214397496086370086223084405598608062890698050572681925664116842562443071130842055504912904359254275408715284259055064118794136442388290133219912196270367794830597744831690552326875136943195579113617907938142134778964161615537853046907021579828366063852518189993432090881357432728777860282521336085743005836239133204599175696257139257446691069906413001505130908266603622597406455526295233387252228436081538251906341855175176379561346377885075896394337612316276092145598891676027459172638273757333616722975995579518011418023607792070318396281369521298783264925556991835286675129676348512377791483869919809557791530961223129058422278538863743900089686165547403849668370097860627951267617972324444380924667327598300565533206076746194851343338369836249307555034539429702651783554313731517437816606753797385581537283528958808323389013998500129688527351980587070450641969068389288070170324475909810443749245617335434968546019174653736207882398829321596522448939854133901036296890241918026260167008351755033897900388906115971150995520012733934301126859408230230808635961328580663523684509213112505358702342789420539114967480674961185957814338956711292755554262400631086638223856003198712428397235851569762850683304866780020432039634785236934916028673331575444857980301867107934149038342272996794137543265253012047609911297086540367388771317892308980366096855161201281155324482244332566407628311146891584903164370178370231624218062240734014070930890264022738898768952881078283810834878803945420449862903209490268132029404869002437199832988629048298996291049165870207309657295230599061605161447564618391664004697075321960596005198470590282105803814245795278806447138077182320292938593741332999611878648526803357208072138346779509612087300620360111614502087152798842805981249404989691797455204191056320000201278897117381510265832832785014161879022631328438224560723673084280656097670759412652252779045162654682497415430532925709858911023867469302058958468975723504139275528743867435749378853677336556790044039588023344377634937508855218737983262612369877729804597335465515225244078302031014370972290184149145679129654930634282727329983826721919862395513675286361766786481248990989318528240094222685840546690881354446710546163210001176150632364004215044784469691649882783494204291652261019771280942455284952568047864617877204301972553920573643667744130228989740008645375784432646190029087743055902507583036037621997150773800946472267718793457848077039579440027734538620822990687558292215802934453027585958388895378540979508270634103262322683619546321591655702141889964881877507560410574479888036687246585969191802138040087403988404797816675745247547517981326341407873797799071804296538904272041424069885584110682849785803100566190395457499365176000256776457974262470040246293070635877434181810217923129462438136893530789410517264743876228149463142912565867156273617865313010787344960597335083893867306439501151390529502140099806417781669439627991843280503164924964778209192599888620885341511713627778511895719146664531763682401537012274266589667944868691244777328020898868420165289940645364930469497984920428537613617411738289592498117408288662342961606405071063793209778466699952200451293174734828136577419723628861070780518493166628516939482199378483865134098119111270172900676300468950825718090419260822474565258553152376846547061866682859378605629816511785180112610589935108976642749398767366230474471776971464841103890611665714304070982123149128253851657579659717702040108114971241461293398978402861228767485729534594601326284019248536604636578136523733855928853420041849068479334326245711414531421125734579344045697954862855267980989397793642649259929967448607432675619350181316759060725712156663008756019221749168162000207176688682052306517701995827544112376502328036245669617195441882977004941513501601644774993032110086256118942070697317808459388078253999658893315182013381781013833076655391325079157979752723601446531860282264078055965839749534858717101490127105629936872374278986423119513841349052585739168225466598088676827338005721782146818669188784316512095778303877693734313787938200974557161655887856546180085618042910086432045289849843621271304511347251653197269185449383609318988960858835824032878691496857340557741730456195438262990066927477226057107312718134635030142596911227415104679803468113758459644643397542547662578649074183086294599414447184049669133047242073404509884275694920741110056328095269025997798116648423203308571498476892211547006997708486084359839421542100949958786186422980265999594289668515672429565046781137294835737450894181732556541180455307984465609926269340786360617422755866240904363893456761673743377166106842152568773455573626103745950386081550523227159013337534247637466412160737661710786577767806419690855773171632917853198926597333959754169465103806663691173632696390732550602457229069401639301886521823988586344665539324273869399452325486473413339360875557273371058350802769339322411789256780670757472515184714013582483027959700890232935868180698010675452910308720093737948417847269868214984222291619885613453172420882758469106329499276972896076578594375298614146936940586608907027052929523984713181127187464804700114446510380874489243675505867654354082223041610200952464432092403458643724173072300738664584663427967288201294283435371471603327727329507811056771080100448534207092734951120309952998988097016333980956869713191466072398771875811283953625106484339662021567213641989814406058854120522163820164879716884644790679304556496196541649054176111946640357009909103104981680026430931212678707516572145323944699948616213752356524344347066844150481177824506103310023457904208271364942072861077302975898921604448710205193747753699176965889612813641230285309668326913048675397125562458315043909590807375975111299545376103009859034006526715886844719491168006077944747609142728275202779809842136851728744504559838035691067258211395178113571092137754799120968329948464907147335819685851517354467390232206798370759295146073001340854333259903831150656411176136638092857870552465679782471125765953383885941412207732392490446124631078951745411122360164007009769899198137960141913887815416228582042276053729226127501952864179022072124971284664271862278371725921229737443696723624316136719869148174482334025700584643979800711377564696188220884571137792662652249639750362976623167116678198941680614658905943821032774116847600579680582928227596754473652659665643681035796240556726733575988690777760721327147810258586442224017661631527287100116297599298690221421114632087872635596830534738666429952465152560115738845742054374077715025351218199020530183102671309218204423318647954682279024445426414197862320215015154222211074224312546044272952658341911663878396736023425410250947894528351678392893461915387500543014517841239905128470683825412432953420423219057008861020296322651588568511987835099656890647840099416852716595259227426893519619452210019751140685911168691645445767878809622287423202296465695038394514384659163216226827008570014628734765761808466209815553351027420616486107660986630900478626979305053181966162436998285793136538279450290638747913528931536913355726261298867166847289450284976753133209618752559722880042730211503239082661196443604313542013034098005925788222547261611970549412907331372496549642250873317400896098834971399821121997678109846862098790609056123546171074983260228731826463035928760332438778734607855051522731223809888361819596067988291603372414096988855016086617664356904671617759034373520565816851618965194147600619826966798741207717686867726488947367985088942022171519895808101463690969872073300592592834572261378393977531239915364744737848221955353700981339398209360339442356064377672286535260995424637299453071913863509606985992108573404313161766379112001682909595202119984929583671684749720280522159316377802291076973146338268697467982503441721956278766769320204603258610279352455598303916998320201377903865970001440060611420694791031452198522093339590404901179128776284834796022127489796287463083412701200782063180315464069820015543044270125211013679969109957429422156667669882793201720472912259860755173208199156094017017413651460858067250158632525646570888051391401507831021135829353130466736214883872626506318333647092097727311007498064375106833885038940772128220589286425141398583993343261396555398615934324943718681021577772595585907023157347862540180728237324015131062489812994471608020993989364636784021833481644627147891379286322552503681307238787098467353288796779140736981373035755260397168830264036924202211195066101989459264514173804022132693860221293990993547893198856125791481244133882505489380036828975351976342723760134147655898495431597312956047830216884905744908074229755148525366684350718356694258804258992987316801543754364837217500917283093859535394691597210081880761735657693430617882738096834443322878472831590276210761621668588482997753493449230763248431600974001647663968984289699206437231303060918409922877162806650911469274742834149915650285889642782551265270153477556350432531961933794892560109734796165542271089697507623486494262660723433929298089644470770872166001999892559485772927238689900273294626967744215039235669210961583805026637792179148798689540005764005541279585231738835127545058531769483484266057741141945742414607441056937808636995642896857264638465207413418936867922936858886812106010143575578081821630037266031274974052318731866624094335449643643842387984146078433130235103050613978403347826885259501043911970196308148543152571998967359951911276878355108455150329519163788765893519132629597822451319528841830340586851473093785251639162514593003472023839308820839413812455440195312928340935337234620891624244407998789043158566456872313056409375382109697760300095427041993746543652980130120005259808610293061634579595206922241465897314996050765086034747604649404519790164867021770017187105421667865364014770682115894672948907634053208365205928124269820020341910249699361727130406341523743860950707424161447341726789506479470850266908177400166983210488050619617815985779538772533684034594097092133053784247536994225006654856812297717848230070561716704563682083872294284753059446608559791979466221525792340787927628337402382598054839107780809074187308171555182085043204768472327371098388321570942780197723104498245777583999797604264248667455589588956404223503305681924188403593973354910488738001310701417544064499181194262186022686570849706219331281797739217785246588646224675810190071433630346006866625721414049682975267213239385158775411755582194324109098466837520795908371900665322174055630934431363097538717986383105002496577627103257415134173608072066160226199169821793117292371981583671992243855944969615437738846696358055309500415762263376940621857391082719454348675788612803098190512961288396323248621891284100447455452815356553736947451128779687680448054449141427778165130124877237404415585801327104843186232010027938737452246474462000998299824431535220013091775996353690340204146986541484565911838396743838069564265865405525898752822380992470314344465207409324436030997227055561273980728327674193347821497968235564416493043256750013731236069461061429545041991477937313215409809073069476701342897317360186791462206189722290198867705870348028540267474644285347552661191550340614907906341682650301226361776958883975102757592412072455331764065308367793765917549354709859006492385693131865732217060774257655482531365135023339331839510176976715161045276479917915510807452329456657019168449122778016003311226421057419035436007757033792455282922935069246829527392808806351143612445306709513222909759570489092438191305919141367128678845735739635188998895020732844039838829015974599326302174621684900790619236498487047555896680437245898109975324661981720097920803592275154201837416829291090344212153623364670012514640322147354949086744197954081122702606429020493917165218853730848518571071689241327603875650150773788845047300930265270437477237037650326816431785511512220957891079147974283014184117580809361555805925767493925635344336076545034333117029229129288346992620680881216739794532916112618832596594438310795077028031375737691540140279883454631712335339014546859312603463799858391566061811379859315217592848513957814055938127401690213484532573576868740889782216673859315081089413917570117766984833254820805794624886493470385571230659298351909517393355296530952845156007708806180399911632852921143434489308649823203801840593464532581537063376651230281910805983944867197020016638297535185763818728850065497185298504832427364995218990945184911427704710596347883108360718692424644945671000499138593400388113399908960152168485552810407566892610871109016208816145355996371726311892082351402268429181622183160516110207828141379463719148331151699418137045991053005070827912299961414971120548112663248311221250799495339574376703884871339388199280355281929437792616036251030255340032184470656011332489874916121745253504442993426066864774368108509296678119407199994822883671336897797670517693349735545597723332348470478046102468694712286153292441524955496620077865664188711944171582734395464069456331383748407012194443852767226547091027503513966265332523662145231748056559380155268650799492127501089248985599841748746172692247541209707922168150074463307445096597024889119448590539263783415016770067841228999563237316768308139497707148748292609564996066968290910803562401093382250577778475727333061214204265532957468419583234923468131900951123273701636984487604367263982837688557600213235193824767290921843701198185762740211331121130668884595978487605095783271136550057626519073428305869693578674873111748028705142783412459623421472189971314762945321013405960216279363655441740453364549361056205173619890751810729937587663365485373495994263823010137505449538764492588643910690804354866037753517248653120359895424196387244822572966392257929360892131379303676981988450607193226239217589239173512026347732149040722462184611437856651146529244732275747615979327467143847613232346753415159993445975903156907770998539033836477256718094820248297430169096339774392283319968904596450134266264990255035810458970877343746694695372507910858318140194886578457486920232421311262726209296616664188531600506235807185256937464322709399242282808702295763393091648851780797529671680567596777961001443762469568874977164815741417118838755661746615183812054824163537738106390706198664655114057719246521560064774138974089998003449329341670262059624970007906012240766997665407336236609028913869431395060636247219890016423960076914172133681212262583536967858297764123093659046992527073820383361380944459188201425684119358460131933407855868686731399819780251229685100316220434902153084717517700170115806958336683898062761808250754547366870092284928568381246295134376866267194952403636678723217738350394134521919603052769024591473440442128587111330500127882852930964558734261439320018895900956232637864118027150757575339043776303792738442809236240357001845313076686843420270986296132975849162803979977582544822389050641589696509925509173702026338762791673861385899726201885798695543344372592489474299443137833581710913216133101304703371797657592756553373887134308253361390985636833070629777294901008025289464363661478364641772997069170621455536289896833053377280327447280908296319992271776529351791574241724225798397893492337295225826305543863922140674256789984545439645433234641475843307440574727444937408242382286013881298003816494112886641222658052012943516949142803585188375658216122142340333774555299809726785586289997788170325972985834723852456228132908866417835103345667425475810111632587659915007262584242265394822728608562306399729381867324581726793643274989450395021383195046207217718250549067489585754420903894280248487484455272485583302630687473957802617366742826205115671143984828805550975581234122421594800568417679512947879662861192981366435233576617833469388244096196711617904995007100034306583253628297047437161197278971563161856515206163377434472339455972337652360620511830808715172316590238260015536991415930953589637037736904981406669446342453457260474641609590266363251533569855238925953664416406757764626108109322894008859312949316957371452881314513692211597055397670776151177042682302325064081572318552375529712656396259701429879948830663478832850551872547129521693357360510168788490413979465294112870745320569528736049794251413583173291549940156131264490410519168422977301126682787680552108185311604154929128498514616304495573325501857553846852084962348161937822953741718516332938781165883798651301185265402312396591417552508092683714552717933432822850870318035875806024156311966656330178132586676094734101429252925416276123056861809465231401379485138809254917182178760297529931686380546832911161354343392953039563431685543512057086655707721779522418559049830997077226990759410190820836056516360153837442626297199132319633004206017273024813391920083653188098570984526967266071513608394216395831786919619823731080257780922652672233911356182197076096566840142025371046676024878940276340218986934347050288754084005003115502720755853031059559306997194558905996438139217564984242551982843731269343264798422281912471991670827623288256033454249533319485082320588763360235940160254218276581384058171907498849724741646784625880798219867291872313390307473781053687137770523901966154811263169811923056751212609242722389829140005452767610711743757034877276205958133644585885457202532468417318198829857823126249920070869295034666671758613441242516670466291433228649281366967531647609956628922433603050861745235522317600958721165352653851970959311707285951155336278709393234585675378231143691384003375659926288073316675827653814090070821493112294504936699567444246371566875592006868528104214353678593339048135307621755080091990328890406007937915185999398347272240467724591890245620877476406027137567806972023418524814374506573659859075287101843653315315095749438385505811793762885471440479452337034822177331894891284894619932477006181847237286131036526079869054809297296413674967047742147531474006750048029700956107781435443870807816626459381256630732794139385532967730617067796132526271660370733773913045657289605241516522331150524327194533552690962748758867265017966352685185568389324674962918808569153644737285543444096165262890461624442796199835500157662713794410049507461873403572293546157554139538764586096215918438356471655067321122611643869176070449108987290745283972889433445204192573690805232063157683204098549584251651806963580368499090527091081915031456788102173131630188199172882432278565021484551412523370182000535635268804471391919685992254130495611043146568200445609573419231380403639421690565584483480002059385684175510576472064655848882366893713227442278869340678608149121487038243912496595200990062199495132799380042745653929562814080794924683142625566842961502404809288231197571991267800854846331374242477870274004603028641743950634444963297943792851228120310716366324757579789846275547398065396971709619556183436222889112151740544249521792449953777157403077894106219796527455509482525090616227437756506754071394801232353823525077187426224406778042764394501423712490526830137197010420900494547148759167383320620262233446907870017199789167870783294375274967626066489543590241034678257552767360108389488199480487191471149927550382282138646385606017943201876263674636557489928674993111041621282625798868250624796787249442777821472475863554735733788007317314665298340001082084394402591934779725545081570987669989994711954371891574911521596233828546072462249449290446510467147698482630384917007854298755879452217482912052482393073606308434589689197959912765773834523656052191129633563048784870067894563908038379057053882128300569528941759544604509903162232503584101495866474616104640098894661376165087562695230132527167096501032532321029452843992850341938939808265288644285210564035406870243429305731427599480628700636147079211231579865334786536264804197941778061546574849794239368154066065062181412707398674120919975617052577345375244714139571666243024499016730723883213066306699190136416856223709413601244370231211679617125791838066686300392376450857011309567845675727130807303889361863400665025608806892507292185557553251466022897558098456647597161504672389535461868470490287733320844509534018376834051552352461904627879681339491624915837588709096361567141837192476374262752107870958211570464806213568703609293351356905457850658143089859921502164166405408611515171224603432976090423472311355306573498255748926537563537923509347424183798401382387991449268982171681117684157149169939355879071776556837107767701283384260455769030408643600272970096139067230851973846383601568900397464759129941650094690359962453466596371918744983700814300652557907001784683120502422907606525971554506294386946448779997865248100646186445240110336470900136733627269947102930678626612679483049643781021423794928303441685186943590942347300384461594433786913891535207404205442631909010148739935139851739395801335480579834213251222509909798645654986103361212474457807379686927933909459233100765198578588693629295664133680056718195507548971641571311937001605848509365969592031678445115307366733649407935124188943704360644301202259734901720867310065089838262929484674881830524170901387672704831894816758379981899651493542516312871037136976176443028147771485298779645926148114641386035482908045734051572260493257898062228562519999341878161294780097285846645181327588246833679870884815464161760887590247393334342611489633227844401579679479304675485802835760947232415219287794258628654496058131700001373080723286305196433276720413541466959874605917930042845341257466540643954391436310548056297844697335636565399964538594266836093461591337841234713574412177690159354344691690543378553200515503280238954416951341032645803524213664615198644191188970283770388669340178288962360223132026700647759783554649722919371857315752319912819916046843408997031009376735118039098085621197757875850146950531505548187644469826168923849607005253204936546091048519376590658874933545220534450661895281683210597276466711161051186269728547496158724311466498468864920788385978765614048956930900391167677200978010966817947463526162891570393087376877174251819157408492796906365281766312324407318908945909597391277506729407970120881688804660054278485444527129778790194322006832983118466502445455117300036216923429955577519849903530115570096528967422550522943999441305439054730835389852092075971572953097208177881507668302943246285329825045145337344530745145506222464202687996173802836070345737984198293033322095428961177194090704499514504772989743401956296260793952193411290193115294081761847377281543954153505880094527756620196970853912396677951320550990590709805496665966607030937817778870203717820321307075574410236061113802676023053694557294039238799321055048096229845316431237582361667405456762909052945271026071747237593760218619643538552880128531303825887741843634809373581063325668930392525601443345797241852798561869406720281614197369734129712655619114676431108374505666931568629037863485062785401303341661544547392194576211148093587282219960971998637087748574811095455568766862624108306818884055096485528881286279518032360725123516467503369563772431745793535506641551409179912424960170603387037616125814643340701353691358686072865888677626309104975029749920108522768395609765161008321853290878084676906976332849336557309346661285614626718642257397050603865696000255957946104104075233330201495411595170291155858324863466670210432627540326482051124056619448593780433295711933012822395817164148894567263917896572509543506875933155826091954986494082118366633853066191811401884438006639286294011108988569309778649804982265532442647788036242520927041831792552865557846651334446214882842098160704729796534649145514632406485272869627577741654387802988305915222253922140553906625239261612330536843311302837567298526196296043507366861515022800678270157935017163767616870854887512701772232169142078998462542276994997554519004769530806149326058521862988029674981557169865700973705592190536496056371428974664747122870621973100117997599931506856182261191692467519337491282890189950234459828459606611987880502214747680789819012682743412149309699108366449282777837093507146397311912170236087159269167035999995877718586928153453368360651148325046723085075760669361513569421704254390508474045007566929172677155460444831414359734808957965985787890491978305990513370515859869553381768759542074842674898733605822286478064260885273195338059738059149340826555898372330613861146912946187995355226316676929756681743389050019638944350612498755336751901539639598012023974047684532289002687606354263163266617435316042218657175111207560205307654077651135779800162552946831410625081134724922013625150163510400204532905405643802436528995045293809541004960598727238649477493751525057534118567515532287766561991674689131597208793053491028183608982643642780540931826571347636578921658235202238018435360310683498052214004063460130763394353058562384589044715984817728058620656351863647814995624781935406232075262665620463197015665329746705516681052421496963080037771317970638223111066554726820879225625454678244675000314958216446617175571284959357653687212300226616937670877939441078371890628074954884765286494756142295527748062839973417635304988137116820619948512750809420961612743764245481916484113425210435498786013063451411770002854567494033083447733181989232748704049073458590940651740459504897312568841223060524835778977346530733897095203499046594287504994408323416677743468839476788082330945543814586201833159893995853392421601105006157508465637886393360250424397371051747021604229372795371364648402867595713998338992781319144899809668821629996086638369623633605707110249693265946663275496354755832269976210867876350776843883830743814826074963971016517476312701118846409804735300349549905626451716745653391320085882886786166950701530514735315587594520595418200701557383285351491624089512584166292325518932675392678864742103267655101749975438877403256704421512904217384005570095969007530421156082062124650911413100250351290216228077506924857930307475633816661443030316154443598781203993995712194555127680425496934114519895810579289970006434270833087284513981161448997222021665526096317184884448862255739961749955353241819749815550160298471960453174657118801575482946352966572632855422116678267838687699721927193437608875400022801707475462151724901775949909021936104155252109611339326452359430505109352122468482463106428383683922613923057437807366215362066757289028085947877136510390090517110406273020180526181829600079328985553637672438923390855390584288252603848748075513570462055021034365280207015429238813911067570196920420052442875895307907192533254770009199404171696173356530656280621765705594758115096143660323926864035530831976656163290347588567772594490236327054394839334647870108107949109580517105988052348892568742950854549530375427064618033362510739382146606924251224781434180059786373319375916500543703008339500480605570940793236233265749311612536249322622003448643128613130722241062728210988169904669184433074764647548335789314616537476392857716757419683147381104631898094381487827541953270621327436326594233877963868487336330111089844655627443609372344402679336244625201599589175124964693737130066551721688338146201419307391089873970546878920306410690909484510337574928472009974142843024981612906786543984069942736638019705426387921058446182808303629020861848610872845526087120815621530024944803327321104557266202512591871422381265015457663942000768743690746018320423402101095392016858025373505952363226876496253203568095561525419848252920345096501321814241895404324943799262093176452681493784340218334305148002386608308810806284763104001954735977098458444159801691932354571826842563719027878105376076330003504429548854955686471030979307032651489197375942700445367032026260309310894752026659201840426940010566631444670293945067638118736833914738882139340854642978342976005996737374897718334440413960410363444227235158811640086836869832803233509111173949953761857047792810117590435779481003950187458460036450116425526345712240985527733325747435978139660889524802558158911579847634191705613920710482832888386838741672372223495768055870456589277501632456634589905856934529580766324959505417535180380340064595459959949875506128754858545059947252594299010600536785315123114785927233375369398676430642453032605355732944764486841529746778524330616809325977063283242001661047932537147859931725782831374796710783625859751281342171266337059867462124742142539977428676698359149014848711633556549433930999286410978210711186417729313859272357340441669071617690687316442247009027376540959994923585174977850892613436297459669004536587019133633688599871306081332460000829185921290685002411415952019512765064526160657633255206912771414267255904799150018211938516209431821071231279426890527389816277240119829888699412024909456474212725338093538989799935769880205972640735997799127261336923838189421888918676884945895399184267743620801880164530646737920209252168617819547557308862103355724356816614354198142747254928096973051225374377470892955515916626499608266887886038240273385852989888193995146605830745326817007174174623619289759936000338906032247050094084530579271677680804469692671895961939759090100247055068218267712435670723618961769403908254050543106675259291927222038301408910755583833288256248551084913490116118554209741851286522625354048223075493931635033870829099101381881243564356919217644647770255630287951757731283254696115354329132207258093566442784289803942229371089610678290127206514569236757170625891928272453816318666005486373937623897036666995615350645334554259562480691812601038344338684310712935371932926968923267596787367832539383288851227986056908177072131901965468835633253718419280186754114715491611081232182926192871079646764335404397202852570686597065517541371753036250059248164246068994033197632529490003478945121407040604845854425275247862106699971226955097971543921041990310700343763835695268486613369836820008945418318356785215022566285798037059655178740406471902869156699304649381282045764175424172641490005589158403755228258597207612756954817887092126583370913967119969650318543795076243560359374354234570198139799579202291497036069732888152269060108438248099860084082096711143211332552407882234288156742311158641849632623063951438332745894758299308410193246419483259434845814798827827863558626775347109982976633054254094242931033167430489267057606214827961716687756013588009530777388978670457118838486038653573182509476516024252454456341071371795563798167222502139991950344681943413646938156686860635091622977004323471516707189284080673676766702620476040200675413836636675509183800228876156402919597628723048674245187782642107860109047115617120350706171468223861632966290841661388068264211078196044544081872479585865573430926791366613518522163297391441954789936324763478225912512110911769146452435127772006210076664336462275792331219271138386144908064565039608719833504938198864167164381973301910626801359277340367762336128550436120946976536976604900670165196653529087139352424566279708808871870860691500103386496592162672623742887869263049224657425075402940967060377106157020905917285552229401069599771744453945522612535146791004447144611001771131096602487049366065364473736996182726773033245903230933181994742963046856807636543216597337908112998720125538079174820194176476089035575870501520381286887163512994296017054668579836611171872965249616783890174592008108379529745689653677309878733678088305994915183143888605754045834309512352833499822080248294274129564723659026383656003782323638752212453788007114255427630974128507045110277756713831647993056030790517787112532913354766948280741668896965838151711171192507043067632910894130203625803176241467626632452885390913365844383865254679330435868903731904918522362951332917924503315233264090800752154689704636023622869656789633769691255337526515362354564523180028157975014435630152125382500599531274108450754138056330738655682820620270974581808133766158384318698579417226844468971415025901349604762919442408119498835971429552261398965555112237184355423436910117838045528023590672878648881255144721337610365052810797593018916518449660560626083967700060162741783577970526265676735903276426290927338730694923352239919698924983985050289794003686875589225444708069331767821378893649624695589415704811694018486342157270000029094159135069126366960876775940362606624618168302654683518443306864125164748894094286700453715526475544813326357200109658738908437854675597979972915464090451373672857908512409573637744873612252503454895293392033672280620797522236734520637668052543976319180363824611114196653364460528014178416819396659538525624623691719409023287111056063808401989879885469926323554373574396739355055636398165311037760707629982329058410416771933694018434175196738138904642327789156097698430392073567542722883804032753680709785304646795025974312428081066371084970747895642318195561954696271274912595672310192051800569276579041074013259936595762944593216915911318929949116221230979021983335992635519225955527972599165412231334861688651480861475620020391141470244510825788989121168262874553506443101787479415349168234528493518793374961558188686322914641931007715349639391853119178193879740548166924759516194970897014665829666567573337371193687184558932540371244190300402064106118461021710967473207337404579127163115415362193210303276877748401384531063208442750810510686671350230476401155436563812146022753894641836396635107063385586359811413048570628534588796984078571249516109197640423477764753214482742178397691197255287324990743914000990207694383148085767204958286366936911823166290276639782973696393686982761444801323782092242862266303162596981329269224009215494168121866492002243317297722501305330432530272212333655179976513024008384271108926214596884386211011896715150484712599678596588426628916092751595241172974573120171488979187666854225359156783742619541209881928166038858728865824244164062073162628829545055851413441964600846297636280354127534504518346371219100046907021992971512710916173746167533376856167204132907623039953211359251723278142329782234701326496754790247659356470222843378017950724652781300000317946564861030084357728566638014724194449671445508164950864701131164334148794919323236625667655536747600237312901136756145810326072090060719425722182144653588310813085421466641647460840931060096800011361693155800670999951804181267881808277210375828664634301009473870727733260076099018319343677812528771204459523922811512027038424848471523170181322789883472122230495612124513252433369655346843870535939855653094979323816932568474470658678205761714134415971277330104989257723210215746718584544992091552782324856388200265336930715134592485948515639865978239874955905312584615782914419338312525855734096430700096720726538493463707521684291913598230623166055600276686710350189980497255730891461508718018945491296743152751196158029554252886528553812928774350276793876545923838713995130111299225503317789674953602940643617566957827480408046615892222339690084763376561331716315431969473496602574058990412641050967497801782222133088324735567959957171907860116031681634994246106734965308263802335232689939350885327081274534807558108738218053563699998575233374866867548451118306218591918163082735689124040605283687780070678197116401694337042761688082227644726214686153379079845531948652508847819200715340469571827452922140996304346091714625151651978652562322690599098429363409942058738955439413667104803718419134758304635181273114060409739769168548118765821090655407703190809463429388859922655302165034342649319468798050757767759475444438942765293216944322295778587565743837421413626596341515405829078586116368401109312353320465619427087630521058880225215683479080979004076752742483573668798355099687235511670703996722497393522726319930259572115082793018003052302570154185650082404079490350233566864156260096587875427985994714821279641443425460814185288758519306776514941075478413727753445473300234373704232056438761142400594070355802978263007244395222321793459239125685854849674559383452756653285652380532867856833102309143477868427602969037774425592795946606867910433600515782587455194822689461291077894174583362155611210384606530041176767866469987743789874149859895345900169385183466606456046136030508113064072868096434085897327807142315729295461061149819112625177013090502041845276561077439407262224935405334951897969524913526372582360638370305134756658678766717598956138010430397306623352845886200381253279272538965071362304008081681611103712360955127027160237482080504585144314765838802806529117418479378747145434706346440709834445969561459379999128500606767063988319564369877463925090453511128315453827370490890759828860098501857518200496355049312742185565821497951223243570390708039541452334826470411923559477287938380327309668639645929650858575132333517076584763030240241255427967458324361106402955060049495416074465538678562546838142599034431849840422406274170278814700761199637418533872819063791972653076213894549093932374724272859685617194792809273989483036877474643706869909597104126187334394792210612880826476116059068149413842745148374373654634684617789033184582115010956040273567440091819913363398273219243132393189732150066256310987107183720361099880313537293495198413080222926624971280934638787105083528173514441499255396965830110823051728290480326959934149307026550420109795119289144895438641735793795547614293260563398184136610416093783406998426468698889144507216719272037610261337133025346035866935652090829062006669829902694789190295579242569611573431648475453470706705651689893328542679757090453737340127609230098897193654644152215009489120843688714942119518954346193809898476728900538287151423391450133714180022371740384204800753684225740911756435255014743248197627391549972024749908401618414998957095156252951436431832860330877046797438472923946775022309795702547376746458997011379062491566724270413625067390308478325210065307811748672754282017030751339632589617727051130095943034395771304918110334624589681779418830430000311390674383259131197512042504569689231803688006704004461273074129765640229170630418790683800660424209297727212646193174375749626656832045416859636990171412060366326060731064505667664830452395505499411540855327264139801672973376606561835210185872073190073359855031333074530103479204746815222224395144110515498298577370841715641195166125684451742752760001939456044723018848571315782653072442977383311546774168279411175952786115278093941010507790993991340355122460108468917706708896766470596493562520841303208734040972778110181721375385404547483994971523053943153892415217224954997089096086472909910893406971118347121539506027902176173520449696908222283671178053125211292362616785274706782659884668973184372674616557501719925228615862892646853263633832903812060668345458656127932194246060792797993916642370355620824148732018608781303857353714470153620351438902948101724626036032959497610179920150173093984667190222155284268634654912027193921495058108236336135962398168943142228692291997560206589957156955674549982972919832353965773647513238580894685657711974525827452953180580654541989691322916320141811983038926212794422010512580254692766712681628772464480805213524560896050312670080232578510757482889425503933585684493002530713740375723117723509927284602586110768576179196929719703631458145926652161424710691199519610175904028180243804251243930590982560256501026596714021265365731511655984159917864410789875052074497334803240049958751439839873875488006993275023208026348058218538654522989878808794089688888903209742591690361278272137622854833632161247140740823248428213034071235737872917095571444288615958132930644925690780653332189895609289940253550494678428331946234525057377574751153200380178143742656102545195375643495345845032714941531132558608790768097126131205551678501674922769799389881676509982347428644420598830291317601247313184311690867375262804794682432688143715461664755131302052569904358239661435606019853222866409336359874286385148831133795501106050762639848916277261975651849613067238564227834141321814108858876195167691453721939466464817017816547176439072096548110510920921403851585321592597904631506845466285519762997577543316397107631955726137450064315728262374030074404245569260752564815233706572281104717737628871067468172459325784527438331554171749849779304812946037006263171349868199953152679150555193504941548300878411620630492390304166924660068969978704565103670161895359718394306736105037637052970430365728588635702456121259752117250567104419895454791788057004050464505646214768457669578742267115814926566189917277616642551620855261498309478056386516511899752550399721519328180422801513118644456116509599266553008024762726838381245513694716499553015879042584686565669244824429471975119345602226011540288839499243051504953934809230502067374306929236276150968741437938915445398346186566220157460793511377776534852994112129397947850736000683952507764336051303722222728146127120826041548090939573072125567818831067209819592176774144384759594027302528890808225828007486301970489180578574340433304175719727587146733419722636917628652810784679701609242110701640171152432019864792733407513256125182896279813510710264862146248481833011240150473764588756085104885729950128148967463265454138403027360660696962197777907607847241895596707827479177388654899399247403507064860605951077610215661368979882714366099373253993758837689726340288313121855927524743753175997551399436154295630340397051875212898669455013068505738343965261708422099407557201515020346179295791092970113139328486549885166772626934742932278802418875944160043349627690823903724665704230519476761572926460716489886187617531479105607729884494444334311349873111896114755780303106900731400329114167456353858304706062114463843577832881171542437553874415156584043711307929388169312837230164077026200984447935966027077791063851039777540815072967147022393963878775580028290380673307756595347450418660791217234895222473291490713754981503481257419783401659506701604253484028083954082833224778755364736779012667158172388896199160668016621019153614686937446933221560898869042279056965096000180551518194630665956944443480115646062394954863569515826986276016500163998805776824844020538377461218440507989661520452566074815286468630432439414845351447166974999605173394134947871092692898167851825037515427227534762265514932280189085658465723837104543671194766445340840893919532290041258724231180081718016835576250877370243966775280884199347157699354089662082479644221808203340024549268671678908778582732637197976543707038599329056566440245452434597632295033145274609571991073750588521023900297255121671146175563787049774756507806797650096260446893426822884570554377708125258695197719523395871693118952192952598341997956529033641791481542005502529516825826688732970044575213715565968809433696679116063841756929673130441978545718508894555923166692038420605584855543997358448361640507248693092211305548488264375192017413747632220601870813913492938988062990454990754057908723933058323820487492893659975560450328910057817243982404984073665924372878073976794623267655561796667879567540178806028007015550556091462045795119170387633864436986722760904412883131497925623414396473765205396241516113958913379543095242545082179406096013024482754785857287192930103113277714378860566723388344629950410278093464401530910287341202277634608715196702818425433328300037174926041158797654186156819144672729882279330432650588527494038486141302824260137306232337985819582189500549986292567461456843466562929602315657158984571762670883603619120619562332548733751640219770578865820679504808607109273073812263413413966917043318832945678494629833088546195806479614157921745714774799882318463338751813012359558094180090328001945028023426153902490380844995503106616097066676924240004720392370285654610240961336196258993010219983619736045188594714939922715347863214156046551895506233517342889976239457237909327059344470228713838679460874357081297636803677037827952308886419175033135026878007848609834388335310863459543710556744387398922949941892908703575224288677044767743986332889742884782248395170385804790550877822225492432155157824255052204486081368416333402954457948526813847896676705548971759025211556689907263270175497919271198558971690574943449666099247220982019192661020285809740129392631827845011054236266192441357196556026102549368284525386508239164862049374838463661532896748272108568055586429357676281444622824309485270151924572620564344746371881091358011903106242093516439647926443365855534496593697899357822587856236081894839255709293379385339321448590869967657984253644698418820033934407528994304813142941381016685904970715428741736829444550180154943674571867949413596182132150595013376325554155177793183237276822772765295730092187212246878015849110792890369581184210804173883874854658834336166067997968399938948093198245053971010948301681048155328203144865457512564907244617271373992288468837094871779480285679572423107874162881587962718816529045996734861145448685141426075798964186013727868435681111210296220708325950717945494637608236781560224849220479379491196861492445121974463388183046035266226377250050259819580445858121093874660989719659709428724471245690926295407470754151858067388167519918663164247249581489881935701936791664527673369360181715475291315930283667380932116183398156963174256003760664089424920500805078328356647680400094760465841175911113283917311068791731117069096814744953277302650036906753942048297854064687106324198140180864974385009251977678678442978907075033851977028609204146303430140707612756285565733536413906906037295088715294745159475321361389558374990878566413804183272340018458749349079037004417038387762511339273374402042454912509496879927796535517197479008771889766727607253465086724712671091788787404396881877723402910450913613509476041561151847008653504987232254852824308490693285526470911700144439734478571993950089965461554639098448653417125608256483296395912472219005055181863935023113519752653548388594446905039003345098717398554692247572461209076330044152043875210683854250606387684792115800069021689957844837318976061087771835515321322204551914135949438781040245322873207037435424715107236143963012119827671490597443322967585182401609982179166833562498584452732753904821005434788181227085954120965406784311541430264727362268765466872151236108011971020979421900749206387038473835343535623623110829624736478915731842728883413387389533581205572429230797182198478790409586248351605582001370340985186058820160171894013662443296366907546084975142917112731540672322529423196985026768475183643998895667734172619346511089920149328992759644749121557320686599662267537195934136897868567535814176589744467139812270165641690010168452582632990902409170084326299731928901246601834307369986442549667871710366118448152429299458486730167154432285775728077081631590845181533654003709465934397610247170314112737233352976302477683343802700735200892902982926560203248380680331104989471503839918255376915353496283443121310671283615175466641033443521485306227244647305814437937152765091501032370185860227855406636083806976883170476430389124604511498981575402202901047848003103101880155067410878562687628626957709759126375024932449735388053563561438432543369219338409148833308557761897445459890681616303395388706482697723899734996145382106719885454990955180749917302324767915652001539618931409354269781093694610555594032877772176565057459227950838257285497029623472816114515498604779966066054863441801888936857708032220089375608921320512770286651733904043390671185505726901192677826905937970664744819519968024772798544553083022523738411925714548725472071749286256530713894258650734817554266640597203162488502006995432138702091000366993151433003554392070644613590105906429887340137484610157149957017187260367011073205407260735927008832049297878791894122958332360432947827385306020506154454270041737222797894927290852126256178657908529093707140543907503640479416190095983100314867232953081552123234546473318042309047582067097286114749128719618493373214904816176793419775472406339014129348421779834958476466711614001006679089019205798010769281516311163641916152092402009757434666279560961019485460689944502558916483754857026014873366625256797658726913318785878186196336210028070929702491957185894254625172179238107252013129448820714151486018997906233510178179257405575634835516093475653503566613968055272334612870358632948349762198888066608355176307537152097241359160426375837657258005173567233330653213169094941654251036144354903462396991345779201628595600667337133435864286105622249235383429795574879905441668323129264492199453015871203997987517019102894929347874853240908920101368668151135090185217410446099816558471251507051314896357764860300065432759086040263085861057696699671264555725049766141697063200550986817428782234780030104176379087324638984467758612843514374574607813535107191371130125854948686129801814825440348053608034128353429181810799783103107068946546590288408590800460601084949261421189692812020194024771663971338934906782074894329771904517058337379859102196081073021082221350837937422960346620366868840815453974518099516701797354733131024419617235392697105431202138610319698055689957044264368080495594563644795957157490083013720098288886323354518220803117328486495278907235832472924381118322579084366655286564443156310366437231744019745400210695287112002721927042392920671684657137402393827682621884579627980446716784492445607734345773099230458053585350147706703387887650713903417888723329593853542671140536183187157800832073353243143429829344094839875090440102761630293894065795764570696466633832700983089118277148657784601230698583057433818051771501209048706739747023147025954922513210015818023721530719299730003904597470327159483739709031737354199992020456980071869406858005175816174366993466829035769691101752065642019311956586589166164213936720372453267388029120610219041273004771115218969275613738075696163444485917707992323578399521078574087388766918681848268841277443832042624704614391835260148670674283060212825768112563116005886826136673599694392506359088772240465964046294571194869119857620229366208059309973290969782619765126205581998142687066175528315714788906898718456075665763013046973694295004884885634519734249938029717507763100931838339176036517227740071672517096489527849072225759583230707431548993689401766967432432995396171149307891331086933162579739304916859521442961882400956028251185502281262886586827614482735406943499238880590641950533376476786752055219683298406678349178158595690928040380481864706212760868387255901492431728415704834537614775220704259644450348997777921765934889742819387901254888852431660074236676703269587532772804071747003896120588356173913387395381002733819514351117686509684934730000586234370660249940477453567439158483482401860798366332755910527814686381185997130053066509311271455322984767521674192247922263286800405389401472682720766683269399732153346957833450735332106519469844836214978052292304399786761598998468200903549310225495594406784566023913925182371084373455819032092798764972303492416065427732900816864775275028163667601400411412110002062225208369964482481136835116413144811837778106002993565012456328948336635312372203442388804013805835207338365964249892806290768743968358736696948682907246844043520260824591446642273950913671131880539741077458317835865975062877572337061684674905713923549454010172345961229714687028378712443960085698021322018059887360657782556170479162560684715083600454722466913148596184250961422181027916508047716081684525763454779472570041383436056238533526889750294612068842853190984162921941563030982981813708510191819948785384562880239485540442629894829487083509119572498774888761478003971923178273384433136866873383083578233377209447209833849126861166447187805448691669446366920691301913735558100688001047974540411311202023112283327407398533546790913269014765397929343562253376880619033958456641649987895317131485095494516172610058791555935360101595502154346159524332851996196475987973117239965438277531739968990788830084095087946001779157777446858834405607376699890113873643082888987270409943642685811579719002392539255114361044334153789208650839047349291480992811521364859237080263213805795136278980426054589362517548283472378396649259930887552289392533981804997979094181835119283433194740159046462397204600597939880140421860059541855074037412065317253202712959371878772799988620529038024118162196171222262159458854268859882355904321782426472102452518753503986357168930985131408412198269833939852855653924463608105667117277962318603238615330507953052025249104471273639363670547372519039266968034341571699821047194961967691277802794756849585498766109814095530324331934103760778750168900908564498231893687308932130009684982959760288094390071672057462307380047378023864704339761228495703395159805329316976028733262092930775479130680719017741829655054372366581578775892520242105771082029130432470408814965895449646624725111600100881488990632713204070442017265472637327122363566019328751547385589828913419068319296797754511768225839792939614558867968996599302793467902472637274690523973666899997629216359288579827881675694297015729311197514232134179668013451937588209080773893807676582944656849423528610526101456383141427035787752772975337394112591734562010941530292542138469410732702233196296761500691557869892613434361940672643066954359981140656466930908859982390766945817276546078760602362315130009557416600428706096337238830343964116054086420493368251789874730062282357688119705941118991365865967784925487776590094368814929396937685283460812955943720532126784400739016787542262400962813448400759743119129429606222659143020436062392603831994656234665651237677601752450001743021471565630761880002336567438297426096230537976383499754269269412682002729699009435782621408872676203533543587763908804190565003411923365197533280900694715327008786167609719192418067461746570566594274441491185019856514926855106484048578315260576588886439586953226005576900194417090433475978687746583495572754297966363686061414990463648862328209479127171130187539850517292259467878043873493960779212022377966987003635276690634845787536192882683031448434096256535884153349289891585648545897663652948133014624510771430938663816791914604316672221344613376142760277079564782804324623017595625250797258854645170631675821556183011793443125957150549053677741942383476351382649693589185770307862674209729966328256358438743364223860865625765389764695849666554694880209764182034170123587389274401142494683530639342997770029133473387003081064726646793780725981436409525673572825452998161109012903027109561192729005744702116209438882297949664867559630193966246482747883507546393546145202826454300972965387603231892453472310708613648739603270775926105885796958824325486319888593651647778280774108438469726006870728758224300410459936985857302857129967540205967232881388749372837683118445678920571280417751986990485738878553989144991228852766378699187858291698532654945722319748372122166496568013638498070295970667043439531868116685771306351598196215828758042744271869215007127505455646161481856157732198521161580789888785872031722385992693741320263214147948357244720069802250574412894273521963487657760848063485331130194514518783413731820473668085050665802456520011860654539754145548643811436429321125877757780294248713176283028887829570794727960652199039165473200673140314506679363283578431373627902677724094861154706750420885837058556964606564820967882582646925355778164183113605722579803973393004407629186372181284917825468061317609705213436780352339589734797947377035140388862331313412103766486185082066921406050635461610635980138704807143579779908924784405954368048345339916393828499968129144554597944678096353504447681440338651553694471513467307340386584449926554522942242039844461719313268662082537150263785692590324695733587968304116666086016740949171463537495581551222008475559909064879848218146026802612084340475853547781414323524269090637228488988083332996748571492666999682490093700145993721919366159507641497961907755155757242885977772226816324078244508376662126937744253528279559377602743164640162622178326257337481642959982171683009066225022467381520936777299245021528867035881871223720363681276877871092571031821367088492436419605346836202572974362979847217436408312161495369383152629151118907519774713107564760976507746245505893141383565784186712199485796876028236681870927829773231608603979026374543302348499362321009471050986581405426074875943057088909247145054653294806523252060702069245153374103171339182630946366092686887969774570453662039290006509290965138280988610766575261301750749291868750317883646556781970253079461369102066664931198267733076403212367314245277681690178806109927080813669429199451699082381037910648337886907699227309848803395095691166331738547140806685347953675845207562623568892338690622462231974258240244828815154033495525192101618063448485376462678057487571797974566592324187703858196121215786602090757873436687826554943950241444041839523071969680428582542372675844188188579648417984115731440281009488553376575492781392418794946285843457650726704405064393802665920462921320121210738819720123691622728793630806663063202342133294144390915553069102893522810774380490815093448049523355357748161908651002266210115243614696287154768445214645966854259186451715442760964200449974231411138908875013296791211600818928216124846382038881777586566775018368648787172796063229650398101972109992515904144850589308461021740442765135052512797860546015445928969099452176592049549747339573141373031449791879520407792890669235746893075042575030493124923245967019312311860093046380157011243755700560101098209293314175373383373241802521036821703741779265491574207916615957559539549993760583470727095164567581944157725179888962639334794234053649296254244173258702614243312194297019694254809013725677406065970547779958732653884288545889825740885845588625346092547112857016379974800803416787993295707427717877065095913500230980693614853630447981887780476173294369856220186834351769766622163216468789312152996148520985057816706822323676119223502983218114023326975636623731476178885161494896860513389442461105538894880844302902185101166553350073494890831132462913903634486682930281601840364784411131378980066260079529235182627575720013250981666032340149881618913443317174904331516645611490831198377092548018320015164910595798784543700131851585731986986249610192315171412425963866136521246474255443520681437513925905203587928594822639398632877758245338033223179899730707688106078503402725477258734271092597252547285843363365119981491071628000122825472115229182237640962682256365798244035095290444012777582205418913995484491771805431405347331006052942769953596056149566113289857200315626590233513835702389629754003937772252552225966770379418315035236283397156531187857018477173629910382385311680450272310408488992611924662848646395991610263182459599775746050930230383540891437526547280521470152065723576813838893526236228177918901156635715477754318425094791368857161935865890522948520690876036371328427126216863442500848319677893894724410494141249305013480952222146752419610930768099295870870047459708991625238477574386406945329366491362170046563008676537148242902789501393356416749949822852360543300581975947316760286447793718372536162177889371951603027710329252901616779526349616524016797225203742352432382888041250267661791719468593182670585159523450657151299664909294977042502936083670379825827801523741972171265106886698019484322982060719021923919925140508000121941434485990758856562460123993978264717308663330228071825936591881276685470600130703656154754292918960569336411780614803662486560918009218401860045962586351893229987510953102011538777549943476092641985108152430510137124027027247970922655521279053593773639475480665267808299832382459899120392010590511663023906968841001321645671395998804526276539360332192333092158959877696829441328580387855073100698218896223095857909237117015562019590608131704945644011323429783022567174969914983667202193241727779990594441965250964028292325975131434669941883453957270690613236492382074872256444640627490849689742453521088684261369921984196837210990998553273849269416572864617168128865575170972077570737201837050922067954976544439984040487195927459129449945929960336379649310097240968867209132476581079853678609006879956394250187387169244706730350418746364333066490590427366898701847760874610375676692959338002679993628168625526461189772890138020140713705323499665416667742322466790745530984163436644021354087450980821372739840282144337988313972400034580535659622321816385107331449643342214560343295257553931249846468417105046565749229744089918841298019820854247426371325196127739714271714217081633307208711595387101999846080603195377064070307431227853643943624680329522049039903589606209178029038619189123514397662674030446720335773132856599695140002597176916463536316251105945608279325897199312510651532474492039527868322361913379812880980303144397424489117952692348378879108674675644623353568673424219105685251986657369883386442912772896565256177853295623261130444926616588676676810950241458839258763855891994751946238232513995117822991675210048942906079543767538496809748216110854459722053948893854282935398395207100668422451749600365861931715456773470031385456495490093510042615109495284270961276606923894191664138886215076574461216503809052022495752602441940586732895269445709225671546790542537843405088590971423563461334853578673380286319210224897677257127578117574168788360080680408056067298459975501920818759402064655127074888349002080165725902035934043642435071506701398344225545370736486969428901837963912825855951868457961683061013380554689592961733989231569689868624730305099105128977150112016377907145086890284314027506909342326635979912190617949676804802235438294232786624061819491616243753095935029016804260931468531033965025257326030377027589845963704795621853179614065454811839131379980623920666199025474796843596455673842415444806607379573603522502326052604689247480468356685042565929358532097331978837382318794610551832960441767481410069850075061304630070169700872156298295216823371461690110451149516275271982623376691182096278485821109744870719485384077553668252674856038284256561422552190474394450029472889255103727995401536562449121732731706843709365249129778807774207961520680236075875486096510593536050082543383088591254095431730182385797537108625434320573134464066769343745536390290371283504391496874860677043904520936168695926217538286859477336623983402028593508622309342058342000321531440651854388395587244244819800331672733805643574389641478378852718917059214045016166904793330193349138082647528000201663064805371479944750136209368344680217602723614253890019663418928392058001431271781156177979292821605170731504204083709547079030070234812662431967573644000455642917556753468080791541523552615676943903123899448069733524522502052467711928179751027848600066423578236454158046845316254192115319473876840673960538886834947016713775775123925073956040858401832789117746647931211900615535645362361432355038680067475960832395231028412414868405637666332421532957964451226131792876327227230959412586072538257155987093567932805464898997813114089440102621438601587919588791231562037944109975915737643985338192850956962842494947717187601811387895178014107400134578481568132713423997403002853003893221782633251506495478956262298084946241116337901761041270052619326415091220459945947015275530728259863615919837229480662222153600069680623675881422007208376679495571645123374379863248904756306720847903371447351353857438476118287235568261368774258866803383559695855903764189936885461756520033967302417695952966734416772418635639754528214468401759032289843116966875817105659177850165430164704684134339533846752797096916942608233017242415163843241984632455777030500557617954432620839943258246269651490530540732409119972328949470714500999453732171719210346177454992746143332801574358249545379726724737410413234281336290070778193025808884490985489317959774606005691192139834700420412311536641841119378494953137574373187833405012568446822637149052828358037695201984408875306822447104761748758496610061760526894813432435590385045383434070211646580861592838995123923882495596808085892517435880485280480805068539230517796481993248466996734644464458831561430402575033950930727553631560973211641872729200905903873644912490421672454960025281855859059917602782100245678029970696515974188660745305626359314710635199025179357694138168035807018564437583944443389367811053753770145906211527819805622121034718255299925401199778082671297526125329420740102638610592778095458530829927647343741780053866462318883719525311947754440967445949445265209110942612436073356634646758253557573148936887914775851742305525191472237528175381747048627170786715360808339047599241681045273594864740121925907527490535770666695480345673524548121591773910963095269520136797879593124324561995529072141184944596589814972215329029720975063009729155693340967882608394539098897608770093511840701834852645389494598541863024399620741577086268174256763667224838189368952169867580942882666201473349984428413651110963748601624238422083859637241316262900693986176390785506776404410791373781976821356744525588285779621320703112067971166162360385836326095318571442487148716753859815916697302313498968968920421751204606218794715711721590562064723742651613376601342555983574430755902396633998368367777292322274717419473909910849890041548647329487434359123360546389218154506348635833494138899488139468691505261032452176077408787111412536411512171487979900999226733149601869377817600559220770061147231367830608898396111586319031317015659816238472964236936991212291442966839892765560194448626788269075586996523217310936486684161759977263541624839458238155788409860633781422926902896140791625465765046143510626465522647686379481684699542501250002665208029207124500104670791123062454371047025521041448388708425085711710835635722528978725714779137701338570689175739073014579149561402377289666209335902515155210513802351962699191566770515955033247397471403300488030000592113840096001403977526216358565240979020170974052423045387822565843185963445585556963192572522669437735897442362821091088783303363098986806218263567088305356669227115351695294809714469262841067706304310491030800425139814562595485047296565897332192303334822524139206556327170628458590804801593166475804876605733565223984627845891374651985988352742295315230343332103592653971717813006232788637658337360744502024865618015088610536131083064944020939235713800642537154030686156687190323068810984639173511429280398227300218976772094180213755697550411700053488803595736772575606254452943064975115932824942259790780745036340159744230438100287730012243609971120855354036809124617577115539077744658881297145515891739315966118850996375493911334981021691513551031526652293183947759589447655762847643948224225518339866274242008723506559731098731055119212069904226820209636310845248791594370205429352050373259015278348254444543359076697066406947968861664736717385217625846186862936141448498809535721361464969588994176521559576200635454793288368799778615450477856865637803511176524516332215670965688829707524766397025070390981243732831007500574852402903504783354463151280714626509729748315559119528212184577176250485345394248773847820632922955705748605992179523455943201156855389414155787806496755402542892592970847962653969506749089064827302858506865677821393613410621789187087207092320702882318325282111228751362527504790072595336766901662351602930153657922799463837924810092531880521325287288806898929966678638439840034946657320653602447243323264714918140628959928832309701799810958982065968258267337422775032754868958810871443421720112438178113135977640047178504023429475734372700872910611667224980116001601284978179471498601790412989498611479681299233970365712068403478067516330598580638645683860400570081994345192016801866076842989500860398802660100321460542308661363387251241298770123087503550847572270956336199043233959183603505575516613996893976134227173526508415712991478444263978075709481810163893276382233298248458441214276014422590296941689362391307791871807883926687256622947680383546115239808933365498807634557188050658891104348881290452892507225203032066628344119459027765155697100076618277477099168755207611883165665081147230726757191593820037855909759916819595598991336787259292578117703565260614445690032162020904724613260019449086250312502510283091174297743379483957674100890761247283492401955988920328187323535561770089343615330697913367246449999617506588020645145415445661969806686855337705285693075880916036986779738268738243859168438198845497179184089687401376093965933487338318762237275067177423030096366219929037738256433363903340464563272487220062782928679670720265825839198916160838659093524672581934866706854932358104645660631210374986696233774186014204596061181151589142556984206497174097929009464725176160883744196558655958744670628083792008372056055289121598540491218228882964563254915343783535037466779335302708608697961681905539267309335817390502219109096406261995416666678525694218220378711532024906208236079456992976589475720892066262929447835759194817076825080544022886973795219641818571615990382778622002563623331283955435003975666975666168445293138451150345731616980778395144385986732590040569645240251737010174677224730525677599458523153796720993490120418617318248650569184580579560815192065151747131793420665692598498370603332686083757686212071479498675845944018663555486558759428283300086453779976974981983298046677239660436444518544601788935067425182093872740412610136560163861358500592348098205429792174761793953376740664332445203107442481773355128593693735536613074096794322017205411538409069508113567642291303226088597764665880992241408824242105131092067050178743940353400404772971773340646609117072197605240055008895602127392590042812469513473334415232115716580201433173833240554626891510189854420384513326191391452039787595092757988442954000220118149101031095909352977860194126828739080854149736226041785211075793501832714725974229432178369263638865839850299613116851366300030188426150542118689307120397552325085843750815638934512842934204376969531464466292759621580574619455516159775948584381833694324639862684174462378732659012505438662272226534235500881974639687010188516607634703322542522834131094973410214671551409856569300709990842010557784669553378101677371155478306240687236243946344080136445533813363046056556113427536081202907212721866501143874798575247578481648669166365067299637739271068700438752461522943150231397269794652268979162625779092569358746885217772992106277956933051922321794863431321989922447876798530546919274413837097162284262013538350152922282611518965359444715239344662695745109312980953923705217937933391636573026766722265948022591190923795265342466801688718360102709340601460313403202629989337576550342913538963623707665563693411703835141574828246583820701808123459046721903899076313263934194980968260195712253864565958183868304550871214711532893305169819257720826855975099628571123651171579530886609197340602566590028485609985776128296619490434633807769385016482728070111861728414699708844489225577196251545213370617835730494136382723354747366248647271407608546135985142216573100124192795209495443160473036559359072088617840255026249385030825270159880392874683206667065169464998613914570336798759733282196679839579564730932085317040410392591093834818319993976645429089511388754960123580250648078016016308088761393317943835416862701848625252445397422466793902816525820048016484256087509400185830168968597390695318462925590528811728049822610577689001289859261479836102555576075049086999784421829747443955426308146986040949755152742191792159520228955346312949197130418694356845068791649963676231238128513742237228430605264481548186335915498331957877252279024590077386669769785114274998938366550298482494609335429221981366164506333984008802971396087599931987944634447486435477996327848525185256650503007005414076980811239016013983350342433270283225229963837549372283373094530271455627696677717864021259995681706605712824579657860954340771363234547442538461197963057643468235103788722344706223205520658322123905027998202464251349150359654347365857062374826455169558104077471586250572121190316689673269726627175750631471999637114583116008281678663714679187716917187089017445876377250241631072369067468378047369629787341875635344555601341463507593865126516335920347197279637000127861710432550435229907613348809283768132827020938492255789288714004583635267619990388117012850994540758010216941879190505946122779542585877740721979182656022301986427505476888488248107560213955482477082987720743855645447209552558566674991204641458403262725565968806210732155398435337682072919201380550066351390451841476021852169009106052733184740648571877812317171973599388574564509478999358572075751172618725252024733140654314784686532924570942231548698291301335872800116378819784469245925538483136282917786370986312492082318604880745632599515580756791867292510921127309493172850215998635200946462788012353820426921312914673608011532672610794722784853382505195031785223128667985932518770112743620034450829536058118888819963706254557396578945015962312890366835194152470990726885963056048546229408748225833105087013429524386711626231493602636361920666825865356660245147476339643445974847731831627361926130399080731726149441152810187039158075341697886014092665558683184629054328353318481523068506638596077412938438484086757329887728033405888406949756633353464244123520201532460014059063129674178122539703285245845306079728969096644651013743062853700966065205595182104208786214273855840143024319488788241457308304406534078557916878185817060279670411046547740499381908398962474897664415269685712621038814956975533185559509640015294111270468130669940918279979398004790993838528094817782522929627990049223466691856924150524184996109434652948338326929716385253135618556372603887143000731028776747778763491328728629614493864055134935325348207849291594427972201298906483527881408165978223385674767246132340922070765248482354477937577328339701767183186457973276805570174078708748738481533333259883231050516358436134390891577448832616278873984767353040345835244969253858889950937237322987452292153317749181577538694221375988716571731448043931686710600285244210366027104794046457795126350486988375569187628407188228537707496478192158682462144712467714057916728801698651106571186869977927852651049528461850275163997612467546907519167488806410946292198225294057795818867048813966411251681235806020979713435535121598378545536255145767188110046176155291523367205273521507763512378787194328163950496456819700288644063439885388301375490111701026732584318135602917105896775517417144732901245315123850332225926281938284595838583222154987496523872843941441742971095518638594089640249725619446787266038849289358520656183750254670685539699242908073303152389570324605883631356797654913393649225400401022242194783576295634894783608802084494873431090834242817664225136861878423858706657871774454701947562301281882999796550271203990515633888275939551819594605965984525843261395538473318128669100837369092646641758246252409016210733886584243361580465868760840204754732523913695706832194104362234576335847461772197912543076048367728735900222139853152720789769470958264824656318287752174677027242482324588317044309197422725063724174234768097583489288924331134034532179390582878662483127602502087938205378438729869130013785507661309695763125068783676014050561426656055670666043483957444516829601453642597601915130500664988788944940152609989795839538013438488334517837356398517809250730931568103762859148582152701728789000224069573990686138884285445223121974789668930960675244267306318581095133264032241092467524448482150827884861695713508371571522727965531999365137267573918645805441554127419383710483346076805023763194101011842989897544222431210439527036808272559308008364564046337810832457671319952255819677637193832467252554801416111454144344959268019538513515962077755391257942582156788140239560289166635547903694737276394051003185591534236982230593013948783136042819178279304824287996672890855878597361104523704524062437722500419856110137663832171683945206318302180480585020016274812383860002702832660022604471004567596195050984843186970915568406098732111071276672481147652986064764850496701081903236671315494435755089378078134410009111249563155505940859564887843481774625100214928934109810837469078528124703612285112592725374743730004413011865875964283320756003808988381123806234587311999510106447927724419304545818769932487002896129618385375045783018013971231202468550881666277863720484280072195122623127248213305629305195684166275409693645640242103516325797808403126700304487183512705075799672022110464755049574391028061120847545269692607891196734319078878008032227503550510616172997502102785336395694078302367738689427825068554607031338784198419328095750672651958049409827667145532097531121952096336864579113586984544581265243059934882708185930333210786138914293147852747508639924427721468713723556104115790849376508728352475070331112035055193734146226745589927678289690231100142528609410271553764678674715792181464942103859304353008586643168337923837350201028729821964234236953955702430080972357459070205613462489456593259464379798621283617039917194223286705503457944992753742788613514694794238137928055090062166010792027960976397127283152424883259062543592886348447747902961112214563185101037530321987731610698566975597153490258875978484197700001626071068216236395127470048709219510433427951488838626030120454556111546949744316287142549235187258509379162972724547298835629967046980080119835286339419664700098756497426424682898023149705295644976913396242677630107007421153631581754875350512298116282926201190911822040081568327286335370342784859129865289308821716607423318839571494997003433200434430892719105923378055270945196621680798247616949640276466876459286325559008886824974919359147292522095986934937327851990278361552947848278530307786002697854153225735413455850588486387277300032993479156014788521228426409503592639243236155486361550199101226976056456641755329854129109279497412129898341501376013366457238095959631758881995583552522519857223949258901725305165165164607152125403371985608515084216481606575946511445905986141736005255004487819887444055680738526906808404498341046355658915762544200739572756080618071711423501085788610319588826621156897024543163313294164288487590054458644953436790338053206907491516489557195860133346322049729314785191763176301402946263412211205490792520459543986298724053073295206421684077740759964574526502581467070864655342868092000409975901843292811367556657027899684301243685343225776341143714186083983927318369131117813050821567889656003954876029393080754514266919549327520149449371739608486377414177412152572893334941267643059340602435075080149232046496640080329629045955675385951474516153490079552039992678010832378863243161084915492210340113780380415234032824039488438993501398553870126188648004849546678304384224920533365350958680895975583444442701723999707681272418066392466502171883937364393337627190041396072029754485748603797301111057641428862726726351000002871350310136850471631829419256519436903094080608390689342688761440425211651850141022662806760543074919651928199666812604065200579765016240490233893337260270555457174694713623487152379711900761913992704956958011358042535527851276780520652245704161407482387248125073371240309626135502155898173899599944513254177815848520013297604380397958383577589055901895228754165444179795460750338874040861698536744169175025296798578756250875707499782389757693691246396634456234020032677613907329372103022663329210912765721403765873837803822106578940148105751570391649561718555753148681785384093330417344600821555302713655743352875273502443149430290981324723995442137074428875934098792453099637652241357379507798944902523987390447072171298223089906065537401488265102103883311492539641855886789714947639091992727038491769564532296969923885058063185974394325947763395845488203980299234685588731163129371408644333176972237122004227473200474909183747941368944995555645213038506086118301853978757438336979642686124153604351204919634128565058507770081960960768246028114479465182203256419428943379155761926982994811610415169508644291570660539258780087192530204932754403364320079681227849855875835534580938277647010181947922841711611970234524737596878795751270899806582405130366363175312349637087316400873249982096267665509290806170604978821134319507223262540053105984818038172894816318308475552297864623969553426366457732496979329690567738441493200040168618076118668604177340319201773452929591858840515983882770588453848860320141767918702170737757853491075484203597914517833415784331063689916051179031158204465228190274420395475243208578514180939223873174844423880912953940992426781192098874922065867733694788756108890074108586040554534750414456459791667744940942396514086026225289510962541896809312174717266665047789877680877503590933731058830513893448035865767206322929398048755371477716132058944307276458470163536366815193353581047286937098139564336701710422484286058371414663986027411335379257480147492549654392651881253244265435984638759140184590017242433590135540197847611563174993980537237144888283942053228154396812911932713167030642120431462541131198448625816994694425224822514490216561447664343764272996848231349625112341696473647470722700333664558494797663253273224646587732551585352886663743124775979824862670695967130474970738141767860706064344942576086125910623203701765005109351523645199077295676623153937775806872780945336616222034947676055454051627804573543036705086449578066082122799876131920908930877479276971266707383185832765605821415708676397203002334176717111179260912914363237358574016968957042435404954169211806059469407928217860159346909141633753290662503749445176501529275499040872214400821453890489316631206436345397864508020038335830773271201931478564786534277222086327959233623091913045710779850374427946953936270919798531827876499499481958711673250573437354462808984803512889660324921993279302135175296754295660278695815577075056631045909389525303943044829198670058296340985047359873802443469963290432271135993624589689391010550868171406337148519143991164490814671526327393453264051665622129296700696212513800973392956786486390058605228342325586575174101123432427024887880159941029664698464415239908322329511002340089473772862102057477534430928187753575360102428175930548314794446325033565014030681331250973459653862339127066643968578634754249365099076903310077984523678302950554365056148391099603022987561014353620645421991443593796007825722656117121716899957676894493760277822362955126842744973620609105485609473581773463930583259161705289347029761443519268679789821834391249637612641617692550478727156009560303737380072431954828094415287148552678022774447952700606653059334774577909016752608965853029854490661382650228540411476632070052974016959427163434886408067164887014554227175828256308201074620003512653521111596403476966480771235070550330178581388719546756873276968504425119400825669715643677786885078925415790708672962584953126892752278571193011405476708400175804201736539603665965569289756607276326456969288349435385558328437591600295315544618225606804866405158449191537796845273791383521507486338348600988563527965417026621763200128284587190889172709132132946634408872530461617015041751844778157628364502768649725621146351402595126733481423976557918727959470447181260251209889336111974067051646128670772086727765752343986070524436622454376362001789290481963751470441967786128837766664900149138730421968087062246878039571617789929058368448455977042175307365722935879847603078061991873391463536149624858601285900436853512626713845529140605138190153032316051926403925303620521301924019308802793448952206640620500686360871058166757938642548725335745864843654323863115975328368316021093269919923342329994670853458802641143207142537108994749466187902325116702432428030638766664531792055963282673500138629787111604379516991304779287997227537872104824241679098545066200087343108261140132522674149661898688508562821737129883371496435086765585119493068292688569502139891571326322779499643161534584648026987182990271682210747408312547190333212179750895360928848551959453281629161447292645144033537239430372456184697251307372004594377006903699990871353503534274906531205306613947101004712573233408632554938141757316907124971247064606266883056159977984644803008444488891501827374514657111865788308031387159425788646979527069610215197571777735639710775115306921364048437994723157678221697649743202406751555101109010970562796670423016227829087443134796825072135199420755031423376259881941229619327445879206733052335083813326443974321172531500689305255079485427410444152939995600511638209025067467617723836232207760255841028759614814859709899430767354659117391365855258318193589956661697446006134702049226099861443041741412901947982413808652548384469744844233661186801690208834927156846664162488289544689074482591483952502747538841389592850186208652872402539578176660741895707301311170836079637393949583101555153055489684594659579427191060696775191434115486356840448955200472427057828389268741852112837954610470410054226838003833619796553256851738290688940605433924056055950643529780314165670040613027761818942555735641967580854844220632751244998261160596415534472928976512485458309743464713511286359834297313141642142850498398196844005774439217291214418035279141961561138106314301404954223743617517250950937510020873859213021553842785795728582772227371966570608918044705528814980186366235733605207005861879677496312241513575709494118626881232047318256362938470800113573120507817418712607487068445296821719550617268592022505358155787688686179852465232111148810755624651088571314450810440430497737484588358960778408900583383736946101332385316619274855279477606469229853050632683062523638860934368704119905520259286444474620710230531782544633205873412132110300525173818017640133072941337142510730843076918818458419329486864612518217386329911900971726080855029674188581637498573897489094290105041235063627766158370898523575415367807695080085384042340840790298058162927554109602306739182384610910398743695414523482041609860616328731290155629121073617242203666903568194553943655919194914241572291460494999153820025043699347701352192361870525429378474621257929794709710087363515478224791610419613437741321409729636527319542370474879278964391036743399896855599136778796161317160596204382914568538473054192848821824402270802659478739394069020394350843674352476637654067394021769292445809699431894908280414403492851753629421568624916908411280889188198788457041098900539917335451373084704478510611430151554158816036521763191712323509415186283191006554179364806014350494257265172944667646565308755689523610462186686215235284697749625691081396100637465239783963374675997231721259624662698241148765386688672667008627295109391039464749586478119500932338486038794142190386129766692767071318337715882589634172432169774918139948124954792917202241671452749252196031533993773884844078016226066294439045214355845292210011128809907394477096528397696451894713220313448595957152235749398463268765260892179369609720816197410299143387021976494028401381414106681223270933388418502944041007206802350260887916536900095496010691763732074857472542217627760564585220588780150243634211674944030756350978938765239828098572743320242006334437870247525660679604539306681547749555255339192290094613290768941677922840062597353026791829046800133144351998407065413998448500697035130003178544613862697478945545276176540331260575436888209113988667475386236735712770646686885273146601937743453875635016941525818492476826426766746986384672924552325531544320971013316900954649459810535550698177137035072618753607858061062682147029282404221959991493373367269188702417604874272024408028612173986048491112057618549188866087418547579634040836111731804580544742341096525903277461694063434686653263484214134486097866459097888945085109363398351086874689165536755201444825516932778641498887408125046722493663431537449157266410155721019212256993588703772874646796750529809788995654916355838675804649252595408907670564879989859602204438591354575376873571244148501281610837005590432852450498819050829933895308179724183533007604444760484832594458691125446032394954794215772793930009507023955639387171097918331907591527382546793693703005787466196135802270949875460643320810176546146208659550546431078594629626795991245633078589505814022054118891453887162384895722172588429309005578287259893200445777427957406172279519987152801630406587364199095214434829869065839550544362540569859551806853041798333613364923144600790606474638730080252207683574660560227751336040404495565820244449133265391087297169364445650483376830599654562399009150393388769696043143509731639413152318655736368932651895396789617608154897714068546122162855183788565114545850312322024153473722647070700045565563513709041401371638025229922902359869409011124606286043429763146713461909235522102097723332897758288848766533784283791655551839747089101548731396881103076567130306245727559433430599033190383379494138350577828564206918161625479683853372685056906788088634002742237559007360401547576783501013026415074040856580102715602686803441071823869904786539277108591391862542015426962842633887465442917105632639856135614895129733114486808806479038479007507912076833042670502936866433719631600885082467477078208298170706897255287477346398250239580288979311929864498406668941993540280075273774988211430314437948518416979264978469264075669227150739927756668698816441693169572762263942923890410808568444213405024064677848934086334971868384344819080710628291979016925762657134721906991009206249187031568038444640314583082369319638065912503990621683390388700843064799782435509080260077749518580552668300147607292158068511945066081802082938278901217303831092084121377692698828164954287676291096456368545009502537233873924979983292326749338168191104812796898639270571171019634393562326762351204033375557720035548882051722225025389935970501403011926572353664203902009080779036259171111823825734444015174825764803320223801241205607691677187514835194964773128841421566275272486106146877789579610401179767119286303340562616165081651038435021436864618820687436042313377754348065524039848155385103174118445951703400540047650809836081253599826464733593723663866841572475297271206629425176503080077732602967642901629067608760291818557687736764633885587501404916459868863312003476619118890817013595183477745764120574123261274925799366889543133242158244419183135377462570025169208857064581605006692926577294320467878404103882098732016817071244013167223871439076474596906676541309763238517005804589106410886954684039048985480800959314373032905159510326514105621893177302347152494427097425292117705942287735628752769688863142654373171907207650747779296904827237934852968944195764109429095266074914517412893217468424045449725117053961941863166412805877917817247501605132837250760249132539079197726711873349183100125004903528535286613295846372855670680114747386651522658501124612078905955109344439318676131969139438456946605542726901982921428103808455250516569713486313010345719615643403392452502062140145027681400112260138388066266318359686234950766423783089742668508672401017649969174283259153970770354066566829535084779304413830323154340201680044019550946098580541759538127350945071839986671117267633527308680779246125368024513129790927660633201173263003368861536798149298933986814246388203864563130133246085734674780216176994196550255140969277725612114768554851850671201788310458995867317277716575656700561543354655877554817379451144563048025421575242397606560091751784794592142126768648292199133438032439894614614682130575193146839465110822970694258010805756845615911704207612606188457752063974034667565409038646149488000944863907357277124281937316476481601429541408442024756037062711371907583268545746289341871584799011075068785858666638059001539290212232419534667967837865369597405007913574386631364948573677962287349435028099462360555283917569509363532949278961513564012767780567019569240503041966687721363091939590576059479496750630395829601054462786965701133819596095357969029180148476342299416486843446465068617540004588541407100720311047370300162780815007106288182922692148154005520261846704350226447988437882256307736694138787150097870485478495079168449926582012147979785757725307750528803063015976079160777568791651007396329132651452725807166886565567570241050599037100108215269524598217655871533745287241284181739268320522830526223424062092002752043359672646482159487301316693949363766896476781887385144395980857392389405459073762673035755200167391953932733040941549331215719540029438853491481689984610719910867504774178399271222199726001940517535390697989069780678045498469921837643947378648184591710068146270420302989854358502266521337101438443689697221734344479616578055970564129552832831642880826086607197891709203873756974513849465692016124647222392160224491017664507060694637939385188560485529992744229183204171671124707226178973736805836422431093624893394801127032471456339819050409069221349653608796941076897848367799367438756129119565289308365075099818444803975557746767662757593153374147303864354137704685641692183010968636355944411502722577608036271784313323144153004652928740577424184796470396361122529052235744356340073357083987330759355519815585147197275467731037528993163367983912429401882406957373594915909755449471566153651246784784399523188314269283225322253821904891987361858337454626345168676644115575450865515080626526723614064604930816211074975974584045187948425818465032293340646111137898999301249182035982702304439859959947408126792767644458222514240581318776831819784300414425570145971733619714860011397266302667021730252475747423644939492956037570495402665809367388775246262674945134968561836526910466567756179690916222042681194476966980626346280031625209858687029934385993324307650067454436107553229436820579797124992671353007664923911873148071033291257528480555744328854493062857958572076959169139791886003775967093410768674799514110001645211283644425582534279092110128572834932004422684776455601124727753517707159715735021319701168843137418219614397610871766254853260819133261948187786142448921511240476450335133901648390431019265938846496304113305320668627821501676463900989024716555374941219091142352564830803274852109351976446538419412134188789727071660561024123057317344217844215459521761618317544917537342006882222715196940500229300978593003729482794030998326434084506913529252513443832817822256974860884327662079710163227155232787708895308889533792675217632796616300551663728777208889758647465059045567201944284267772760138941639182609026010516955165260698200230300563398754266953500003959656849011421622130837753325121253671302309953650027009791201964267940509594023043158080843519375042351684022214461213273753105598767912601348248126284378726331040573977517759990537840343560954196604112929157756699782042895722716311849670176809172161232986191107609246772005234906520584037047862000397604458061280456186496752489074638737735436758955642247842416047802302198776630174471930423393361649103331375597875867099443461440279541399770070998010225560043963128951729259514724000328930548844195870533771611100963815269597608051032344552943647800935105253942491101437434245769901098280567766438262305923400175827274608376918479967473675440216520743497992696799759424099757087832437272252856427767609622659687838653749496474310246892619663137637309675440798388714993523457996194353964024443691986211793690181504858517165658251855567718165726381814632129325426773585437176763985812265059451711970810265695013190163487124629968661551493728343285889042638477574534041366871100293373182679832070052037940519741402346552713647853587747810340739870575209841665338685883819428317517249655207091860843440286402060936247003116488001385188631267604086382134929866399314008115597512054049354917031572623771411925904623781069924116338797028177331608969667103673983786588119452879065795680127097964101855296497861203308274654110526072777743981456869047916389866204842310374616019343963900640513707433876307451630834673511706895235504308725342793058292008622085858099492057573781324051734434714871282107042802860689783471880997776787127314976580686964409251049527501157615720606560725052758288057028197162593242513137521746089138767375921214358755898271451664531702636002269788085822267421561470638086790587414204730437078860029920548183005158843529834655501917555598907176377321543363228036468551127508712236583477385072283526704309208646909114044213271063875776281835310358265459123333966495273060089983806824574077221048366510081980856004886517271303142507927088415858242912640586474713760844038896872130205301161443514296446227390012460812011573286759877842090766056468270056739774453136708106544832183698268778318991297144416108869084295648495455789925229481734829827875407104788834598519824560681927212995676314531430051755175776147569877198314487580666120564364576888260271718435825922600067537713306176543608554541923172180540880237154726779067275131077663182999667702347639093018517545311268369035979056428871882692462181080363829056519791731604403660011223153639593147136535864319152429792080244271922896102254985573343269804590389761372824606568149616954954538740147571455756292577309488434919432173717104734653857309290522488642567755681388620980362848471055257176947354751487876341291950064551030993005946971822631115156376270894704120753154025263633715858076427765984513310916460975127856901518718402993467709914703724928315134859152614570837267404565285594910380348834164251828504287639847086750724752003289075746669519344415497369013383380301662923884303703416284261319693265566188081607055256898419784839257433982867262203127524208363794584564726491568674599821751999974957630355136743411309925815011401559151153042754044084484823904034269394596305813918840745502415301352587808486278048266308753269602135677559350238064448729292411052991924545305224168910577703566990488438998315365561024292939827055484234774210927328875241650317592999519689488566018769395974814277786235215006473135039567146613089566152364336579247786839545752554593581073541686847969129716467014434095481687493385017130129918742959527996225339536159295048719415986362937632283644754086040892141963392401469355615808502835938379357353188768135485582885999874260540307859696391410045780375708135106388406877996216164358653272164659722430072637055403694792654420591650907741700445543660117925689454455519113606110028371689489494956522525237717957766574616783971924378180126731764529920699748739328284604485194849538873840623291582141037332934340101487212184655797281225251669025922467817716269773443946859739271242056928466802948980286746449782559609924898295765785802021320881905820125087930062094827824063358627090549337462266083461290479509316661239268879278027724658285234958929951254586394249237206717828556486098629410289847238763477029698993153627681328637899551268569659881596901835998285637032114406888673527113952174218295648776733069383204220461471999970780523770946065099299511093993289886364942341487815662333782626732841371555735589211733983728191451381187730597945738785985753442765251954668948430257582863864424940934291945977743107564922180133907804475801022577293658540147155837471676049294939060377653507115723048581006796276652028001281116733777617076739627969625893506938837041207634900610863947806249557671772025023733941612116002773977053147123025829250041627203624269467943455070616078872141674257737757412737834420810105079556615551350822601135103398886614550051879014718775158859545158379441222639316923823501325905314265349452924959667674445454070405650825517946511829474252827461148172994635870034745315053832056502913814755059305562052459828033006547037080407654133204634317843317646398944432287797364880242224228993754956430713992934327121905169701753358966966674530908857039223610739049166152251911317869113076409589644584364548618511447463411236795669457405210098553482526324320960448276269112791833670254608297461031052113146719361326372041816130480024116253493095075401551509133797807845969935620733874450550683413146530796884347038407600484508996477167129185441867551358130995118071170414352859363401013512614600350356135133094415229118997437897427015339977650508029613210389695886068160699144607125558153387343852645540874445573946802102490682344083812261397103542703685535429199544191273571509361589809193850751862456766415789002349813105223781622081090964001309970592989944351828462617037665037915081802993490174130494152712937002883062713889260105605288985738904763880471287990890595075122458269669177848980239159048822260832628137089603409989574596525832083958235295513324034206108950062631843082630865079806455856859603560731573307385788888935625921384502922614047050198992869386370089511025980264387016752387251668311963635584310277495823357894103379952259903564815147686902687398323904667317319460891204240459512581970986299651658906155605598770709816245136139208616210580434710267015904856915722141101225351953639139924236030402447297008191739339532320171853772345955813128290171444934089770363016195023673093837456867624904183208992655432782410891741151603412706833657586244289103042096794212469177441370014815113833012269165479136636447919972503543231191488676743427518409726207493697269723058592723347928936679827055785944091736716834932821808243124881436147651177751244033977517598511518816139006171823094879714258962303248225243528099901522920166914765716875127092746442431248207174554048033030095883903667281808690638507267302634245489351771489073966445474173309928091595831235672193822095143390995578770178038162226028928907948138465599642229357412812173096084639237310523478633946797953354544972377317385301354148175898778576110576847204882401909129452985979673781813980351712077633082274876231184225909201994317127749651920003919804885425222309088238389265014175376376705284628326987131776263573751628805652848659685391033476446191863709609119535066650506950167717911109392848534591436060817875258280477552096681024934089711796534074034198061330435743551472153617448511398332773570677627532827240895056637919321084853859066738267481407708734769045091008854201138493258889441209456452005411826964962723610174907434897138819904496518650222782081203446416378307448104153524294269144753198709656973387590945819843066905677093483572637003060247566242328172764244538337966460384194592944291252559012608941750978145344663271889047206009074234964922919751665493429480004472059444497030633200436986544439811840411092830343368732461085278232932702562540042427788060839974463637525371975120229498653983092310754092900493987338554437053037261042527326199427499006176297531603311156652525663032572373780464500702378303782151849170243280269485374967593530300640249902259561483273891909049650633699567881112569774596687905866625367334882704992897574068097532284735875344539038598454849915909477378003778305162735694630206571263273030730460454355673748204993511311742171700154038562597397912796425457218331931727333713545867262121925779012037139640613927887509737477787841152892428553445681960687216313446982965309760494872754656526581024983291031169583158580084603107215432357311576690417365524440202686887095955212274850199657914047728063262992781485336606921075451888971666998187842414693574721302608246038144342283591091540102956540054770966991307325696204430220947277823857975372393932540324601446269981865296441981042517208658979488558514640222496788049969291178907801716106675351423036195409645834384806348033003624755346776150668711719841549781855919890127034615162836075927085611218448141961034790044567634902163791410492193316295798873929358104842403140222950437006030679304347536854119257626826625288217287274789487537257972997602189360852724272510644097467626141199154450757520867524522226907281367841560635743538333134203579777402835016159353510839570677556400575271420568758044350531932950904167012967640363863855604596391654148808214371696032361143272618906740457226349725039183281860753284817389323569941232746264800459146304904084179394183473822712438298896958100648937736643571952067488219856168551397857916051556449348396876735671074191441558568081745386566247838815992285857596471307206035766421639665016151598115665744206167339707864815236378274093806978650984564368765957777650236736740231247774379864877110564107703257687292948153956819167162128472723799019461924085598065819588779737180549536540024046236480059269543690737458511444638686198040159141619774285585421747249594434023800915654997573610569454891109799322214124709429466069818682014759250229213874940147256412721374654795811900294219030298628973467086128782932267502790960489732644394413963269128709573352479655667600529357837757306706446996406424501350824424786826899252271948343092141623459554521013191894773784244744036327516963458094796806111415402058951294143441025129833068724916014575630750676849283522310787951237084949774941216410047743717574911950291951877527129240468369171451121964467543339890767639181332479071804272171957620892336047574940240054669167363561996442569278725205824625248075744597475005730666843216739676025194296445112163269576805168916678280561865985526502489510894854196151002206091285516615932240950195175244501968197380524974361226759124688604736536164745918101546365741476255423369923711430497720997939483081962600686341922289193508851684820442547550614954186064753925743714228011030880489387119259758294932634939656336768623189275370233043934873912397141160531961799082924078553719235663546414285742203882232832376319112595170760686372273709668360178961821919572756617310248452393480685925642679417594224745724748464142094068227238647434561562762861139284452470559545503715658128152957438760275505222819078691885266399831169502127887911606453092311681198287523878516567251366829019997769876954365285558914855554350249504880803073117716102466087811031818779730219650668763542281798161487541728157158261291698139024974212581397190968360702471651947944440102568460389433759693291179154536320019274861601074784419668819470846385359013131321030956748748881298472931447634533454684953132200955835281306866613897615045499322667534883530686281999675006746881052181646038847713420097428981251997944184330920747800380052333632397673008301937742159787205739460217548383583914466225028743702538944002576727522082043478081449711495005115431590106562933074437754601848292387384994186169439854610848968052471577432342732998862625857208520752260287418419840544424311159736929148216219079751107412353251384348167308098700520490621013171752901141661719170773929285168711700618669379819066182847861522267812141579283564027788573462809545339141302265382041526184849012238850996057070423954112213557435138905791591400188662323080023915578410279796962171557532617105180621346549922845881026295125093658278111165796506185167478127443274220385486011254474119043254329002884514044008033509768007427243191663342343724636196403384473718754785685166600084156424597393953915682062784768176223443262495108556275414618554894240406707442953163187748266691359003287099667620903093739962952234653836537571661263604546237455316279892545768728576422084643946830939243969500450364162131766611050917839697118333358662177329399992430826907286743998007534504432363077214395227702744519918470847867306093796002850764654170034306346995218818576459271089314136334360243457604596304902806901993164053718064400951100656875302531724232655037731907657070806695773660745201347645131054186468296395013165546333461959455433892866176098581912537137466715379252512296367975468788101865210117351698359135405839033528691598864516677372897774172080526416967193352281825093662700073540257943536042142613319028620636784157413329271128006435536076669279895612788548702893942375079221668108767509880099335087783155361451623342027673511393298157433103542323510646474354727046656736529411479958277551729765610324888073789958195658748619334098930824406556413971108000036238332808218263791244378495497205546760891957040468975736954536228831508957347067960158970417291722009635265742394378195502810807653526990522753933208460768703226167221473322336387076817915496484717058181292623457861685604624024382284897401583488843013502312450231613468853201897305213030182472466181157420594427635918921983148644295998859548516258255298402504339853110933855997797235463535275827834527077952085566393771001483463964494320934103972851093668327182943265262365157186421687558369220467576707820488748759524744373565981198785478400744673776011161644095617968694522875978788904201342285149073368733707291065614296090029280021970487915237922941615757555564766686525145278720191424090872602797501341685089639116956966967186740506662749933715388625779405920876123766972902979038684764439692484102975075370709671804815808615545298886804757787245325896388767681265191831438306077011299573148859521650799962195292963510102359320315669403829120748828471711222805406833333689272821655578419792025492533972577720577344414320810729258405711559454974907832366950271268557874529414260175749368082013787925891475123927965713315825948167823422447167606053649258776398101697438557168739187199798763598156608883088950908597424882033287956075567913105649910578924312294580421236217803924237939368202230221472541302002830078672260884237886091230590168650922998706586511492406025712478850621125254668925025495129973804997483097602595802217100612419952003507952107313138722004075814524769667782669881327071206447267505151952522345711293071204846470611427521670766626376481870804308024981449709654372911045124802003395113749949928827048180493761336613371871511881708309177191487465891646115007407804854964459397952277206743278432704918451170415141575463883133487112871755181017534610794167266802539260085366369112691545271782226705443402513312381866390513736073333713936378613441466488085430780243608708430499935636310988064589541255894240404136483943382046027057035245715986569713415124389064140003889961225371495696812657468530143406019673889353576140105621707533768540619424604318359383618778206238499990645304226329257661628154051828750289409333157534783746017543503705599038161009299280875077804006414896298947788840844543036433006317989349531328363534004959951208677183731785309815398005115928846896229792714891003860049748692099162567679660459612292708764528905337543636578746642076683212582136352103767163006201796173769229512804321862739841704773475363715446984482579236451726968556804379204892711263618338428957019431233221087379183270683098467871332403929159668143817352478341187215432865750995531434494290056916611206188783836934580424221765784129775988077364123261691331871899568542825116400623810581671196393609982147931821639489020875433766741436455372855177876648632649693649824883345361877477489769779136462275525828706538227715865453146793978474397050676598330722459339070673286107552057070366309123223390830260042637075520564183122826638813186069436627800901691672879138506489530565642159669498481802163738134491188999009418374225725964568286307866289645596476713982463032777886116674960792889009864062509592232450563223418214000233671105561882522770413712235349776580503454179232143651852677185635426672746221867072386866141282100773788475594908057966830071036348557487318783827555300843803063809912256296278430146240112047107220353008778258675593117187797918194327232049088908428948875579085092337275963119333705455059006763597768675563256522675862729591880066139373007085523504739812952207983930184229976893802447234281472713854029213578626793626346608604861668686895963796758253201092132082773178007433422871414950282193850940562250984492484127934266452575719840652171322941161986757384382889306907564495006263553597999712246585309653955154203453777433615474675407759468208093869650669250442441023686284946077334310721655180824427630003844084872813124468856179683884968879212564151184041508759221984272946081648461049507064020813050359727193669048132501632016210939650265987816868937984501197941002823778784609203720739043073328015891041143072713677346310614574379642385429474428548557214725978723566275878122828034271867960795454168339136816474313449414675244554786699482565366054804588608355508365769282372729289204279823117069268443045182803013382481611747787432213242901940874233361774984838080806986361093959712179490819999157747180162173843942453458136084584560445226876614854537835237064853860860571272071508091393827347576126758383898736819185967178022489270967888241753379632388049451735314848564860920466391211329234777385501993726052941862414784173423651354335676384931477128364957315590488425864335355537892613732779167148586650906467964018216939677445392699483304384035489620638168946813293008077861315446143558479741703518000193391845562953634444345999878711635174896359483525392620682760294690177594948410261759272630646759295374859305878698305941794170250526962486998755330428736643839864482902883291537996062976539360106946726421705547468542079522771459071117782164345952676465565766949076669930186103202693487711695309225139348065427650856485404277099724790084434636355144426350758985712007485894267398065909858100490174647010452954272645777234826540414512573234222728881140480427703899822644684117780534144071842423230312967234648736458347811518940089777597367280201378608493403324512916941899947853382589315010168406199679042493031782020546371776566770867531951521788481294394126946292064644048140046534411772556790601944315093198926849662251303446079095221081687506365927008089356368120966787306426528508911722720861433908733338488401907104476169299657367287952402282420027158589976895754198409820125001973578711801355297153175519585285631150045046148389932949032523692115393862749640700399819630612531154499929702163678438021907770012546643330377971220456236586265285720289467793921908310291307783431644005402994552342274925080313954253743348254641777677847739496068450969772913703200118793376208789455522101412034979678659116756078248521022084776758520548911008946544421394147243438393264123100487365523809956511059019754896317519076234559244688124651365465918422091971085395219454057547858688829386115493652519938461483356629737254844565356398700081282553920919116240013707914286112131896785039557977877869490299320532028282419079891948400948953603375867841871688752518200469153669739181730630701659115974206539468850325529460852207772696002006232613105082005974422500040521141770547567173383772345977144050995909415095606586918284722157096204674059020651571602215317812917274162212060928738906333693156615183683422261519961898049288059820961350818389028236054831819551494052377699944879678711019226001256583980007658942127762411219729660441813309986257511046516151683350888050468202059011099876432564636798337427005636580913796449918543585557112515962028416565855620340888150727658418130616652756388163699014408712523465563817121905481397416247186021785161729440352554777986075814469219852641225306692480379129982353346571431114513812291470686784454545163274654492171486764552277951050696042055463391259927768135884469970615352981986242239942787741053125385585036391237839268648399307551801585282600064148484628116110823240816040863220982668398381171766923909425070229637628776276281236322049109356835048284356279228593293076566353899288928504093480986964473278865128015428325577764791396548547424224506162626911839973352843685423293900295064789037981429602213573014649518142223027868324745121037883423862085000007753493833390120869019717361505420336803630602474769683261824884319919526019583114335547534951250387818750938534493682144407711786800218077705354459157657607486825103237928616830458123667314347957025420191852184152730259390668740415329339081633122083132627943659187225748252722920733669562418677137349892251840011462801124772888251637472252615573435014826861246651040938846360618035943824400879730466563894275869513865387751092194881546911645039635831398222452577059551526555196960829141871662697157822424925633074330976713389603913977613836412115217693808785918252904028271502271523170700320070990957765851407201675398703276829591687628361914085887004534339490337842493189017970784365864174885212179849102283338033136395837270695541539559823298312834872916237133556310956170263208440430833805847179224546501672585365771475505642698804313120182214488340706514335702678429920066612185626302829530920078589170587665010856518553917376576495497411850774801257343474926209955766597246310701912532983750939670010486611489179179176640989984502808921824373162325859190316128830898990213848887480569493682705085248429564065602435185980806439909071163913350992737923972565003259606795102890890597001441891306937212833627689269748816121500332210226737687843700894702191115168565248408350299160794494822839725043072965224354123098212438086712755699748620853995231723872394534918384871839135926085848399590754818319151108316029749974962068547591699838204864725193246918639921582539788200424116222906712228253841705044684942706824856200060061803680694042025982211774128599494271985487106600404660639391879138753364115652507567980089463748017745473096691533854221399308590039836058945598866006247299189421201388161622211416698375619051980865578009142017120950070775343714377805563544052506363277070605197548831692805150307781487878725987834593092553502697250070437757688391783211116957597409457039248112848089670675910007742511378706183278579319227993136079405003671210264401083941284232701990985389900738194005652975273448975551175955187580564013843966316963556700146061067991170022947258826089988466176774479657178197925648540194640185069298222300501721878069605355457325031472540184237096645357612328464414661924793923801052396357563800339284512986423923944794643331714543044472978332121781717466609200299990279834727124889675889937284934251181985852540762089645235056597898084695912920945063923864232615054842690511829484052544222799960988159370857527617195600623241948198130089307746733060666937971004779330572443186172906509056733162613509894905542013302369958138385388520796884223032253353550539969923344179861758056147058509215699149628999556148676731582251522540424707971875958270104768040909535058282351100082565012349071091590188562326158848433744358037720313048679963798198596761602184878684501021074216509844833537832314944540083229086739915044142716050785908641074728287837772443759775123782973865677007743441057284462640210064360033147454215367012005504271901354062067124254214774180277850125648228322395091080234804559979918721282473473994659988633349924840874007095442964859110556314434095834998523758534170628431497561853151412986146545019357776869153269829413637343502109568210183637658398188938926771270307285536090306562547469069016938271682385692203785365945933841215205533489815152377334808971110521786441017626261607973984087502221558078491572821363225310217481802309573162560307415575673631788031541428691532932596114654483761031365684242377389156895342504086809861004222152989462149065117049363071745960315935191234333949662542048050572530174459332860045519034554014774900601101850822947185211764200235776524073419769783812005110241353663731802764407222117846176161646607295382604693517931645572614121215330602551673993872836725849061052560294116307028455627697521262142721643143536400455554500030510316977716845872038899905262585414398009097129637253536604525465291597128888106581656147875758640737793435793401647818383700417094515896074452660211082928729787927174700416832770243222503159271659909269996727103878732259706222830688542858070570988646804283158009458872993548414093094834143711697542208832071730391478456470985053734637652423815337208350869224954694561532776046449424324430540957333316210147995316750587114117892322954391537963441650976615041516881671847200509370060786129688418129360937385473747271828567758199015946261187528449872562615273572905256605496037215610866144652160574541178708995731487158323636848506039642488583729190609380021059568263178779481318060226285471974791588188765279626693706136885494781684610024434528412822111457031008918827687273597632764229037425484337215062941400707809483310884817154135928892567598431196326189358895934588979940485580550750183909476528209394195015645121022959135447021461958847706673892263395714082107094026578774439052252425456832371137209425289381024360016680620124530103983791291196439693259420383376149799011295118867946395809705346541152567088343611995981771875509137673567356636065389489220414964734354516418636488652530815865245524453783508698744669039864306200437737519718599331958468279177692896691484197992411696525004942681571346631572721134778750182717961317105050282674175442930962230418292438924034537349233629127891790609530558204242236432133029677926071501778744328041887874380713662447030848930339582472126375791997179784863382110013892087880979845786607043747927006290335539545840881412243842080183236743090030458715713703834686190985637476476471257498179500933831719620326720735477509156552648764596251004881732903789366060533198779290614137409680960280504014680767816475105019130452635018659593610127210877186491733264214400952612862863572800078819937345671054471338914781055888896599238137254911146338699847264187913224732629924620398245765853133344810650542630501651352939201384156290319042028699863265830705153932941284312289268051195406080402830424334018912001251057994134998576385797853840333245275472397821153698265504766275952721155786873377528356970367659827321035496630901009911806064630627408969901248066209559411762748257762892916586382808622974894772275334992590236155579588798661527583452139978436408750127552062217459082699289340668956163715096983530308454679473139118530919585891539506950689858404851022311245801426821037214191834552593697396469525870482609712654938850772652071735983944668360406742209914343737196925002400821265560040495209672056896777539726589712146674321973060170882545385243888005389830163539451418721953660144141938614747037559781157742288645624944750116419236930788640702526062513337249542105550971267136135465041221349565390984124515055782155051534864375747510416928829295550105691620926937970077775454584783717202954651800601359535805121881101709681703299098996890621435054816356960104040184627216418345211197319512331117910081545735190914927015309491689761000417392362604746995815914355339211065785734345128262468689854489850166146187800555625596779713731066812545384433122201179934907968777782247762128684120247613336780472078667532673826040298100100040637408824286033255406444446766718446522605336467037276582579123899551679994797688343542044056933353864392665920435822140542995946447028238876065852174151363366779983591791410763057972222121128879477377360940555648219773953537920810306643593851095457164937877932953344116144702220680444144826930809787071117071551970348884183763777589960566576348025090804132150778765121727947031851205231570587930198388662043985332960285502778026470744211914045887476256400834716222912636347856974983687465948309206793944678574756548566372621645145025885632729341592667627272410439325047163493083931539447107438041962468058649476395634249016153534192279480377447436416393666505713862935456100368497105129933868922593203709064224192857289500998810661059238721527637343645354667673145498770332080601416631654984753083894244176485165274894510900397093928402092711866036894097119910834364943922377822978040967362380171775356917730522058405398361333591375246387982993280603745074113771867930425021936321887205253901420095975245182915498738323946337633810237303302044861991217266885293287249891513803344654810733452656242661405713749395903960182676737571378273274309095090461792533757706837307376983431772393038524400841701784290039902491275549260797567637286367892167132592665317953877909131103401997609946567488019294489912422766921382437642122465889880853430545251609013709788145805585170678271445477571603614015670501279659959551280971504268892405416354016013371839419379406378779106782886561140047246552033813218991391511788871350489214721790928331190200308912602724023291219458165558837103977140612369742168558030221211984456805975636183149442995793378304580347462575485510290889122649160852000122200216043089886191131200218240316508161910252771486098258935801047136505303421217768774239551698007165379863401210837651740046556890056851984900448577556493479746519762138732118307467735614792364396256633071243637909767209239821311939333219459961391725431522321249064408527183781459692995084027275576146495638838066036066394983817766695827912664956051389376520079510679891303010219495010081758925121633611253371441767367201720101513438971795605204121910190884450580553622380759744895782386933459633296977455470997598195849025881882199252711287667814420877045059190678268360979407173428388707926128543018964105148343267289433118052627620773367740927135797198104743982781303455515677772702739286231585491830678885612441293105756813064207838860592743108568324333460369762379359235887695934854569991487577803202975633719064166496209274830244816018177240003701839025795313679806171911441459773764614894296947054585149068503456186902798473807828468878732347168445540385894286329110269917564135651260750190648314993361485325390351609564749953724770422337696381425704664070228315841220728528985507454579735944674836590186576705819136644903629511355916633253875477671445263458227011205912399139749903420384324486920379247392659860093186619717808071514763041201921993063345779384824041417945662351624573024200007373046547582643301017130049724167935179926601808925102082331522495853315138509545362065443304145550428558795442312478766026680385168683744262832220438300617577116303837384754835708133590491471460260805246230267717799549868827272565220964396703752185763409476209146862691969037118368582483411072343046933981322711680587046581170937127319221220596921136117305992290921255841780129617671984602925411561718895111826967840729277078110177962739335936603424499949067082415010902053860143410447612003282239189129132429504875988444104093895060016997828212071160426960044925228237006797663014269467684854426936925312111957228247973835505056406944402373156165051919626092072904462666067968106262625120853252946567290071826063390207572428957951131794799608024879536682554238876546342355261233568500683197901455642199636433498824650949571005098954750948558451563222861183120444829036493878612184850952942604045176575155724724498420982096560885621475024246154417767279166342275941349413248224792682325707943034827400339374913005591390931046878950730404091184807438982901804871364962555858987752476853462383989977430980000443876545125125990238074645518756041830301417989451662864640098542367108550624694010401621682606151401192511151639825713045444397894484944327333436636698578033897287522649949116977528432767257559863170978186889478762952335914330596746050921734185684158380124434480296000785679582072571142521490249347393964759659540896412930293334975020358468452983167338177244174508509364059418331346184535070782378390338804200329227972325705464397209912297276171704806789473070538570099515679991703213039056140982282100487381526693684387273580922796088245110311934701590682185281868964510766528570779183241441921814460899066723416090478310347146988687478487077269217232589115040909715030409685577246631635843537541967693219669298004982373850936656813117403585520909955398074386086072803306950379276429339631444833350835596703772019778853547559427163773868043595919443518287373574225026093742907360814456915830061808008567851043966309720356322597650059620878868206624499545693798285883428531287058665603873603525809276214907462252967868479262010010449484222373763501630703521803460893063662290052812701519532640721593305981424402767282727611600246506866042355610130699899366599693884880203519447883034860178398448723177944096456401415311863123817750969862330804651093967800449342867760078309462912067193278380430451051646459040865633923343292174286096611532868070852426209369336562891621156127356163634554612457857339807768634147803839017679172944296237061692734543584742740937408824969497796568724610516495765852823309264525279913366710324663646518516075493984547950345952452468811269981111684168892956305733890107519204543470344066280872199501207704014806316864204682538222582118070309871233199444141683100249235863161110733476263704976695718646996320545568822934076910511691905619384624083296650846722209365083059860040503365613754780820744728621247031913311940732669881326265355872965488536540826554758523272851701918283186380107207425129348572332067231775439869060402553269970320410655388038321393748514167277520581974979317142914751418236898887139356336806281918110134130665580643273340463864414007763801563059570789864535825977737112643519578695456191566882100623087308910452692028875294289448406832198235769335748523591068866447332362603492990624521411079202877616918566718555744632904210220076163106372551309813830171815945257236932315358565940253563963906128197053972516144981740615632182294406823903167553938365429632143108627611131919928760916971595077500476517849345716550457470715332629930364588818946743626778364680568685309546985503053675728036324212509099827819519232442435482684196254632295090377275205283310332992102146247883873666444954717522650793752163832537363815700141789454674877306847412955705415439392190321730999878726210496848273294006410032367119816922674769315252626411994524974078292885167080140780662127534395359399135419801534811743274153133577439235611645284757124059882545021006791655482622510523542968677415917506461687855864872504316539385112781817709245965838086073546488825654726087166258893046791062144281417080034322451196466206043071115647845638745119563037858494317104008165926089118197695215865815800691704545320345847447664519159254191786992244320470977038235604669254774987142700931484263028834630084655190575110666669793977450982327924827967837458967702721891826890958107286061849825808178314435750787370480965414094445266345412616325838018709356216599335173249763348679938699830789126705720422507593279856977486818810557110664437411248594242974556635179878828996870730952858444050872095270834516347991395875941895410161281268199486670076716971087662427374632856869726998319365808259620940043411291993043478791804168024849937179543521268874895499274257873047175659482888665904399717818718644380730006113236616715058221152318746778586078081199768590656986948798728945970548021123871764462520330154389469827228609611018320270275225282095160619614963055260403400056316680749917395851348689956532631021727220987576033343202303782728476429807204603853788478500465567980542332357196650279246157354618811335887250033337627115765887251688746639687578000259996103465318093663510764389158910745183397326624658955789987015227275006168464486474097032179185589579820616026142599799709383194721631970544837266714575709614464602065918317932510735331309484637718306562340710022603848651334691826434348837395895511146754449411470239201099592272683219040456832388652400805873185352526697867036339672932521367978155266896235849626242401167327286739548458508284939712732619316361118447872893632796498808828941907578994048392923019956373249142169155386437477491136033639168592478651567292344607209076243417548920521503987947010210902053164344432829613747016903992000758652922788820438713788151013970247252533335817478007133374960879043773564451044129911030268339227146524805269016641358923968753231370924460689636191075517108242883871609858481862837324725687591939653965398140240406506827500221157933757441190542074520623425820268243492712742210818814981479631603164689899148663029780738603270309276178859397412635872462944956250698266480120528776445888116740263380083712846138213571857103256611624166881636154816524817938154863713145679462786131387799848388360809543194608572275947979941898870733972690579786830693770879451940712246347995720051491917110028502810519578933445430543611454045173228368029893588947388860760139703669206008214383174873163732318627936706539245074755038686950719469075880266660940571308698634675025576611312927197063140337320750527006588063256777840288681081613329283818771117574713631396086078556870805767687966399144426188037560094666904040034553951720230669690336054402158537112908723347150169465088721548086727222125156023058016326856626758525673184511748308024397650263938450713948860404130846479802992531792901351016098147034382601963866207926075611028537174874053461764733928321014754304605182282200808322689235661282738923671015717123174813983974310683912989696606707179312768483727198952090417606063448367424265504506474252185708836790696929193091652709729754340835967752715188404005470364560884830975393322260081284632903578370519055323772766022046381461281219494220002234448652970524776867088768941502977256895987808465721405126756679868155504772918906180347782299857052725005076781987283413832350886732043598849365206112736083905512804898530718748633503188031513732138156932890549742615730404966504480029797423315669090870533914093020137168270698046529666439055502001458454539012558252048075316320878180603461982470787306455003377422401133447325324382693899954302139271730038947097669512655808122999943328437928824041570715764124225053575696903623213414831300009338599243662674912245320385635187856226951179660970959330151060152016975958360986596143295795637643035591109358992312145787444260305304512442555548654599774159005515881620478724717205126813500778511901605728657769669583031710629964129437842109834649285345390725635020791234155495086813218553968127763049915680569760224473018610840206675037140909177446173823872896340465634928572183374247067312060701981848916643207574152334642747598305094625268309238346395920275384827835361428201146260032155106295343737650526579242343618018366483159513427782895510761845435988441686981728572478384548665917111815590390554370184036222593717049282226600333085559353066674229673041657476665112039735094768561805071170378715873412962379423883571461104600035168908052451904423040541000005691658763661166825191259273458692074689940704390110594257813366134451162342103176094246070560304495335719805047126966474693309321545136688608233463561933635821152442901959179634492694450240039123624992734479168681180895850359326801914239394760342150043739778110162762296564644177138091178576546869511879481929569104499030429431283908703101425926698967098166276521785375023136132080163282165371800455929664545732945067915484780850127925655693860869743717390056791888261709834467444341408634065930730665292924416813686124370993367556327268963929949827463848187989899948399220115768446467564044684819201335884723621279748102978893639495144913212862659858844856908948269605493129224635115282031327872420508707604189234931713134571545759181846369906495069922370483970304768704807321252949223852600692303914035867652659780090649047935515735620353193294557782846059063845775018876955267907713237303389489277535992278188948454559318296447783055527936742843025725900851061093589973256684611892039358371203609960371510239470155704131481791883375680905431400021205585281633621843718636667540561630378953863112251259929200011075669569528949616578631613558634389942488224870375355048060550312992595925818011486039501992850380835363758318104784831599178706606792014511643344708692804944152342892193097059816687551001877334091101840517858833497549226132711104581862601104667383776000399956598969691254687154963258711555665989884003350504016087233917825083845032268385874726332003977008602122331194559541752815877687299840295507729179445671296475297988983552754074684366223363196939360808678953686268275903962800620525401277665517761679246937773570233511672857127091791497539721475705949840518872040942355978586805361184682978606126471601076636723382054788124244869132638348758455472421376737424970908794571853944283721167708305962776204542804784843945464813881702587628319695825571354548059346505346819158511199780380322711087064302663264791787477902747852674336492674424997710754964109547190439129404885421255472850604623780436246817121146784938283966662313312069198471372389411472721267200434495245164924150183690805279437643317970920172118113470904475504303099032620409916904780002143803156127968930463149000997708733693438422715084160908681575317967634278720573183510096980729847624777931079767209930043702353928824593630599634461222537446845084104707423131754015807141850501348666100743103571849567467370383105731141744855609857607368827600475141905923793756039207535899321915955722685047074226271363738345164474193942433332356473847198053206647292879676912714510561720990208209822051960097206236955564320534728999940068067723563920251236069924870636523968271321503131229455801019842982427447323611184721087635713149751264040290529999957287435593776065534246598599521083127043973658973712323925062348124526688959119429256921967937643853330180216742893418098009040785960224647566459648107509368458270715433967159388689788634690518817304619698942300692240115562651792118547774682314557594761892329782571771111987233577289889618471065409309181050046526790205718983075247734064182110550132773772803060589387943750695321685639254849915909244620384411185954554418600991377027104743252273536760962488631003576467677257486702372718637345720273936193670605658822764867502891891354744323326482827770307661742645151060287305649927002892674122040395478168720350854311343302847600232715467193035206634550240172636199713516160282349806026460600553271760376283658759397908176109925112028657723610545093790069075353029740965321688021880369857265755786913610181997063079981489054286724665811009586857993461989952932867014159578936995125914406702556306595426579313166587678106854174115315216611807139926359871323398771928831581526330003867237795557073114579202621689452448776621615009688513822641713385130330186662506214416385069050100158595631684062150437734587989480876694328027813406542221860051248600038381171929730682440537993484669123684709073473871081389138071684622103986643312828161765761673486179479713876552434216465823719621329954071466729468588458189524161003931825604377623120452632117540870860416427602348336400953943135253966431274147721207759263556119509013947001478496399087795244443249061873308136750170914353342166307440596966613428127081148900336318032869915218559562604002557511888860011656111463080175531138849444985874534675992711319056444337280750145442489536180973297328693877711733402919261492986622500820128647071470095591203507991464505676088550263646219521500574726302452106447917706992030045056408086077753021586029210165551591475531892248232741467028930926052225935071552030513226272224876922403179751552838187239610665905809791274536027312190120420917886448804938743837514745605952206245444072735626042922476445680459236286638254479490369221120271097941373718344801414825632019682324399047448793921962989254826777358882734428509655621378332966574897053176716952190517759557590680997779513722583191427987159612062201835044009555607877001349780349492871411835545089837883727596402167033619128751623462426877578586542236151228822639059550931565076580279735648248731829153377349875840064082230243097028608374672629603674435330642737863021333868078722791338164794708422038533408214280744247687321511636597314120920045043852158822644443721148346043947997803922972059839541177625363485247991126969011270693348913002052321521213086222288859169026248450118959938308531684850277685004301911222593477268326041649860471047775220677734387802158647162795632751722802965246010610623581295422850188343654805169581908152697471905260734119842796578617473255587296402184643202367258790768416150832975471719096963517675108830870626561006634689180764794968129191638072160568173514152702553247567618313534460008748764462878284519311854403536240122302976397490167734796760548611080702275837865664834732281172542318499309841994608592704520428595731468045010593785503667292941390979583038740869734393428241266194482689089907288349365759570008137357536367521608065212649141021368619428491976465861086372809157617408054705072676535827084309558509594358505413718420597351659861299906693068109900423049346459709902088950616156347684323204996005505806407688257763745046654541216204723201516962738575691778135210888799410852499206165898060384916031309848764523598320460503896069667650062898232174805515270571351167773238428363076809604778638447864915428429398405243857489906143630438995526851265468179801010042972245060093858425044611377738152111166134787380278930602195158017671721352784436753956117761803599721034947474447323938764516049486879263207995981682887001418551277359535710182428286671213801311446382482130247591386866541848513337891777510664025891467209449162739374996666632907718502360256178676412925830263049380601914620462946196968383507434249957677812617346378610140171002037627195363863068837184162566438670357986466928116842604609720272775029661408000746750116516282542568847707287298944045772454428574954667982557529089043987406999016056977847177669335531597494348423717000424431723297015711675485063018109753395629931374612009880346527253189714789542772589290848374520630412187053003762308878027385562863715884878686616929742855162790269553604185234947441235735998110097223501712162519971747257689607977159150923107117907705156285688873410802003550620674226635874359209458942042744552291618397089790375189592250424144119897396979199880015961010689150842000006183383572370029416336668341123143920120525100198339250293679374570974446133813561213441057071060397772372319735853756506716649434407024283560525790707915814351769538398045937003735280424965748180646616221058536851939633595680100701927379975482114078636814962522554392354131121845262112654480989421905701575918532992038728395621708568440122801730272157452057404092759524706374573824404510840394862493300401378114656725506610470850354327498664613616405099589180063705426569062096868415815565488902356702192987416470904025804344514766715940697111748335686341287250506592989151737931701576821791368398759580119815935421840982134154357833563950798616551855306581336486520657652307416091549030184098848529624092291785742018071882448661599474221789629313785663873317693050715319498594393499454033102403868426243668163673913493471312321817629303282792814193700407524694061999695820632001613073041530621734546886741995474921470395302851486688411100002638768048769992728586035121329063961486014927766226036869957499533122109636456473875298688528226956725316010893713159901884511921926156089279496356728991671032070019386733079222463387847742232937005495625335032436680614360661654841629439841831948272950452129710267610648577958788392753189112086160357547982588456437665586334846391057592832326487880654059242014284347768063273243011090906106605104422901335221320157900509326793507663224717425137802309491799623338266471125078855959118621476881785537101525403077617560838890626479925819775706924387334816443589782605530190408007945876963607664640092332974258681601938461109553789588154777480893810547504146693675179198156370225454301528603977781784874058014348656196340914945429638688332891913035876959744109276892368985716916280562306858712344633327957950310383402475813676512633949964665466712966856852412200376837279498963828469379753546467716456899487914230645412653556537132209841045983211110928758107306657664173876950062223770475760146970268543481424541360205864967565238326234271895823340754428697213622995352772664031461344477704678754646186257250013447903753458437015117130060460766804547650684381912818617559545179581769196909465015252546916695836408163028689168265686216413177861580368725896742735986212696592361990944955322500384792655033454799958448554784111597502447607340094983768938789188950687349215345195396048946665696541406906891247290022759145332927764725444344746119399619876446511956870283089779494431808557571334253369401175913163012822570765805686390302582825435429642424190567194484599857957809151431630646482573391911615080271051618200281726062268610635058247845485303534875158915407788299792296130509013937010684191241831086250869881531298826327080652481839021606629792731936410734322256813039872937709484144380458775281205118053229254803346846035816838787280593271446273383333354580422981959485070465593916353839805515028425086304103260341436144109978397378747828733166296183011120241126832753927517541007482575796959578212996509407863018112347122631495551897525635025591868740519268018244238652834981866907687798401296708356869717074778225073780673830890074041452524142104003566469100414079426422919086246826658766090749697488254529149367803722034518917839213621178542380138978580986063343879878678192113419116327769324091688099630363819877664897276735108773426725772381667172292416763906927155142019203517490438863142591582084270070482845891257696436437751489539020597825269098633199702604275690419809286014368941962325899655206627531644169092468659006849613923937857615508674621778230784929135062298032127518144057625817986379837756095381083593077430528551651419219166401251592300457295349507443798489364568196877738623196504125914816592209493467340099938498299157505429999419303623265673192958378864516200946542633968849649273891127438684032275701524511952841412906415562442038277952139569086907054617401622774626922965247738255293439643397640078041309860572895566435557431896334724998745630324040393111483347316434453117534278382257890086552588924293846634322616284216536549278980524647310657314593201675207878805525866828057006360986748323696366674554318510482972927075436255768341038930195137544531546169123168183860805055300345439058939468469403479608887675345534822318011557366878317475140091440624240724052538311387793614239953729070477727706041648059228948748374964122748910311203663313422041680477003668588441876581171726195742968462810892681951163114879856597346569513788769066861330722513934042977224473819455372671310680871480498033538798740503514463055106647277665211810170828857391877142334777961594904174510181340296654404541328554602753849465755072404162168897074836197469600763383923163595381048291705662289431209881919381481563558796881774791012833791582272536701452621269439307730857826554810387691089591674908653789249763656521187098363076036453796360405398969018095601247217053917212655168768203713331408212895091920206677621915310621303562864586572094543588878694157868118450077917491097576373283751521684206356832439895861131669049703836714414804879720032715483375285893930435024808692466172296765092981789425174580192198442262813071408195312785945242104575726984886728585265117487950515576029645932536507677113200806948403255150046633674991557533971505446854183076668329908560224828690303516282959829247098788881524789588504536459347764038733062967080860656032177922693276526418643417820168341167456134588842704920280143059348836801404732631293813203753731143254519215522184973634781501707712015970120733898018381456158399883064100799992151033203836678325370789497761310163779761720940920499819291036883452158990577585649192941227583019448040663255215967606683611325814398640441791573110633043346161645120728045368338911685577784844936116588406932303207840546136433373119131966309826912759552648302141159977096420113381849910612182364755227677060958419117769831261306072450132145304700741339798225388890811439711943290745055544941229648255300424343032808605576729578881349356105818715324015763916414164604419694966416018923475790521751784913819890855804957648194991987740213334490344776562629347921071304524158311060143903349579103957723496469653045849331493419677280147358708262440861920506898639193466085796628846171607118189854432499148413150437031595553185335968773825084886761962138663140508580582044351111490279063775863521350080358969300247541580913973905593685712971899452956911206701534227897308966347063696989113185026270125660858356707238624818232867589099603883196823251565913551137658180202186312737099459517430709242620389248918938574688356360203103090389978660859920350287586688294605638001671684553449949775062652452678128588437698955348236057430032847436617117882284638230321139727628823060424267863144829865732232967737409438247815578508472003020111855355189125114818409646212657880204265049608919805423547839494719493639912955943170765194629197959255532885180393548086325641667998335466748796038795937256173523647010530668696819952803698475569767323237678809328836141870045334159522630097282626626578006750817667903074469205094889335452671762503658197797614094806508902543813712772593131189007578861525527034163547865437773820680793217573244310359598064402137691283224309236557142227153368071616189198545577913911146877009174292497563928279679455826517282235110764152892832480741703042347746435229201363357978404246267267784860137330341045714180043707556821449031242059203725727118088312028275623595972512217867123665538553425817451251749733081985046097062917953390911933894321667901660372117256401972227434036051918353240473574698677549697339605936683722662825253571340837158769389349466556126962654331256780728800313102980348957164986691570906741165565772841076800703557166769126743558900384274449618737961320869479826955473403650180096841321576006438201038887050269569637491834322983362962768335103102742834359333585962376685524363824810420432615051152662686422884231132100145344028859132062074607764936265150571175685725762128415959807994473599301760250773598473756843798094293834376208789721642029611358090563104137475382091637533050646142980917054835181948969104855962355764251070218952566630096138755245705700971411777273318104537825973710603168777495651160786887722195484803979306413116790827665502674369951761155982909355121449267465160682316633096806345794741866047997055020187142422602777566146181401762741722229965388602132321602859509272151452064845991029502643910010311266672750105903344163367446043401435350175897020468594248696620352839010803198516027978834842064545272587835520253023309336483079505787153161525439446836730339062228931447796298777918988677361028103499904993780405251604552486566674497190246492743449270286963437837244511904461346557096492362598363111587433459804311949048941191257208109638019032480401031791536231251058308563805773455403477725601357214569488344703712762603552849936626079127146032150416554577099399553081655826023451259092083159647624954200883203891917233042711135003974334828955833391934418693660120283559140205007944686244094479736435111450500970709882282272738692382146097609130328679733906866630453861862088748298485135609694911763144523378841068461357228966964918977933244105518208247680529214328757881579852497694688504340179704801004579510094189993404135096771564150426425811277105553479353404990083262655861901979680318601426260659585456466346724712014588956372907029031725568139596263464337664822636294286389800569229458048180218197714464101920680453420709457090064392995186298354343559662415432000303503181222753374858249009559241599242707187434482429678030655592309994534766196376239469182283695287937420227453008993800556268066540809180975005815179715790776694915249610798716570363177987780085323759238816038651449254647226714391166197192966816101726709459812432396613637907053588844859300791941121346387552928066949197333348758850928766149237202322841531191684723675381449174244619517819476501593621525520159830423042628723276648188458755064114402328858645978902933480830251029032946009974512070705918920393679108224495910490479990914324110659736475578791635603196460194189271007956108147556669454242901144299967154072544722437367512506068081930433163004838437801802209833298831441425326401926007547733548634426253112977700527383030247313948096138263153508479552428132875395714415675710678147773640768318014379593503577362510620847809338450617036015018667208695712027910044329155855266462360169708530921164605863439114582138957337284078436723780503850201575388080938637037687266398290292651355736049047821897773402745046473793186813527873789409221915424696794226976877668342795723455074072816038639140106279948891133107259368884374167119541727404577836821788813625257261455128895165281023833736169196112789330266454543672827107303668462178383554299501801097032567336860249867516021760062884420048903347253604093939811034206833097164091476686157652705043581743056625032977668805103595844131332988852011325618461871717288879534417321484911870330748010684696867852404659053252286608552650667362832332849536314814702529848307451557161679146176510602189138628332265485251262871454867245551493170847846420400486520675201860254806126899513546840741893327339510365425745508320721842408370945123047789674519791228202114609907374234229101112167861760468419110655354050900775999219295553520871325656303681966418842720893143916540387036404838614052157337842176150971040977644835804654881634198725392534681392298751219797563542323186328227752464032726716346498267587822494193071906554179650434807564811336992720654669393399103456760411317422876423966538756200579691937475740554356407278865075602335444349852044285727163015473359221060432175419517535514747144610707684869467432497597143027471876724237316633265900779278707314948886522752440118805621049372209475737096593979399886681865292723091023175996098216201636389907489026483337735561094203150342185223449825562399778145626017249940252634648892874810933178972945682364804109656840397687010157265963262643212069150876520964361302004481108934187556918411172048426975903085506380331284875247459661231416557291840809411800162516582391810409137292288820438701365166709909208396034735635914990126729411427979304129549454212240459199804308724091685775035853881415520832891865094007051758741279775879958798587227874288656990844033414951045239809161931402783479961294674089731543821354550834961169782065800482764087704415208716591214457106263082078687965196526587272676527711212965798502876060339987992073186530172438025704986640061230688360220056227852670318500740344299640725932057549539816935777249536023155515459887832562277174781763234984933147536520664320099862119606423245003172623139601313284999892539876908766386465716623278494464453275185258846773844147652123136847025947091581808380768741825873739967174982918232976267176068439694684923120596296770947812027552462074158919945204685807078401914435788575513264849954524361718221134841718922986768894167194570942624706594809999933176321531624712643012044289932433566838588476382650752129081690419493057619166468323613695816332606577381110784186456651013765598597517225105140237236230795021089477082396724271273591161502864907239143490325558750753796893747611147623967949863517972917927459079524240697285070218723071695091514758654105010706564181325856763005577155756067958609185432167322271850720864295132076384925016137539559200456270930177124221963038006828376000849758617870850442672904228944220843943128436394852961150583885639489460487963040482471869153412698196134426777884412583001106248583581750890677719376822582176613085134459400786477919374994024246016997275911823914160038317397803989596488974113496911896503871416996537403097115436763380502422648646902512243182376916616138767038177458475268815332541270023503312810282571312612180651654995150137129181823852591613770206259380851195640130071829501332347383428164116575565757489967892451281762624692106467777713194513970946146266739013029835569783611082209452707418337164333793804496312059940725424433462192954488039363208371628020588038032166483948785070445930825181817249638794133001843780861790353661453478381594178951745149721246495261329727538587808015620053379628006005811976761660945968923714859994817264112544858805270984109719415829903251150247617325824926908535058885952150929200609108464539317441111450029269824701380279800718083872369756098313904071984545793397484538861242907527626619509229566178243581196234161153441209172708815339708067949726165246877565319644180946623620256959425160398758515260290303029362036661827566498346477015916904331223191600924838454248359158504110613601951002885930109198973374850593591345849423895888191768990524452343170445003711485778820267920180346675785051124763366446265382416543630296959320880550102902473483235504658130566362780817810525667074854345244707618862222836126552983012934249565511103401233807817069800997556492751761556971190694537367788713948583021910008010646322162600480153689704461508876973732105723369827422221615194855065909890357243271134112431969552085658627176666926390981104522124063988711813899248653034717715458700806209123015455191335466835793279936181078878418886525395749708997001586153697454481300150464925047562112612836467781789140122418953828636270139634792024813077444852161824467084764777805392257826607029257622850322401980532144765510072427468398489762945191006102714870797990854614996297844527551273578314882962213772778773297369392401857791420974272861060497238445506966217955754704780725455146316198183388530542183758084696543040148718791223441682773787711113743266455818420455363348051623213311061545738833976762317469504197739592388724025399461244673822226821849801535937206425546086814628892811393522628427744659357975153106811081291218081507145426511558127666957569805162207607704741429640413644353719185191248833663566154564405077924187511213522577365329007425219130940196736329751261818121817455089105642110967613284535087311658284957474784136238491681475284774028530743192923828780213586976924008573882608016774950586619103835975138351880057444785658770164012077409880011918308477792641600383132606483656007105875147875275841220848351680918068356144825754561736826074424062101890058077537319948508108955251092203004438882597746123432949320140490541698415818211657492497668712213130552050545486619632435665895637723537428141910391633204584716358057112969942824373812140227520222396507647476713842006187384917271500835502737513132848794728294746016619418545440811474377184503839059582340913833232939525551754724982450400954941134414033617239970141045512459894860504991440163119645589041425901351993739992116205233554510595328592074661496852634536682025480957530205841322157087846117720319588964819861263046262601121490305405913113956650296170503875541197930858231472311068618640709847582056406978417028528521125715779861705324716406104664919205506210672660413357807264201484742322069273893882224621706511064043972519505669025485120033586880712054083252515059885335427601494093339690920009210681391451328816458689247546533775218317488720694171593480681473093089593707928225403226903180601221645647052897365384021086695659302133850125408074337008658230906620886947238421250243759201456379885161701986522007817842895078165664319524926161890560631830977535729623572172550448351694197239463149094567723867189758624451018750941422225773302797363676715675991702805049040397400156643499926562005228538875469869988948977745360716034421135304652186254630360338583013676598035357561721057301424395932001836009669208544569239799173167192911294270490857117663116039643565836419768782193279594582872623278210511296949771848441559712072348010208963157543197816994401218964514007411836160872298723697030676574439229554111185311249465622764184727081018567512332166830305441088007752844810310123960429922637565825533134050863684628147565571144499760470783185471767466503815122400615318432366083327086354158234880607781643790444315851780369655872861341834296224223499981875746327528910922268013703963295768820778826507145977633118493439273685987001585067416414299181035359247531346008834421139698802980444076663899069389942585146394382873306833359427653054225550449328525199997774992711488858839914436299710341334149549221069925823167756634313581119662890091465773167113210610829244990898748602412225330711330026956467789458562176279251035942753511598781756163658071970700651716177984734752489094580848584667956156561940780781533358919999390513231079435139562329304621081809717060710993684291085101433084984813732870100507039850340132211513736129868071079442886153890113636791821513977323388488933547092190781137348360257646190192603575252803937365548755261334779703067405127348329546161578141486532456589339553042979606391990505545872527887833111265351833568403064064120290319937561975014289076245762496753339960220479989792804154426668569172357915460933458554261760615275416568068465780258102337440145957874742352741647266909045382225924181494753462703571738931873404683467112099835432027372006581545893040154250538913520683124241258089900499945907526174546810369282979667766182550838145106907038411448387306755578398932519209921672966153179633563464287746505987244706051863859167220639993162876899744494015732106104402824739477123910692137315630178632648764293639867743378422863499060369201746615390451944675830866632745417665685719868112801866731312409970513003061315751729754781519943851548246456104538591885978812923467646775364549368505685629179377873768342111568742971362217251348155714587650872548262766986009639795708246374303035336981365087794301161061385555924470810770976849762435194650062868488152186437146368370543127324883846953047242717485226695103064306808961101675693281503107856473730461995210476994905176138476345481505777742302894263225878816583960053357249594314257047697030104718069994212069814003626372124940540152040709761717971611641825794192073121664613832898930748770133799496909633205792155039686369598874338595495069363110217908432457284918049751732959726317062548567573610781325907665339141078758494473411393075674915515173880130567244038534433350961759282813956641714679116326342867959982845288305712305212146259544187831573185032730483488725904738847841215946106319926669702925739477040809371745083039688811303344779969380378315979278869642520853988763612065010924161709381477105256010397976031111743463531691242874880011385983522210670563280443636111566148802566354588917256182461363759060209015474221794552427565130981131306041027633161859502393763111234889220691797167335985801001327635368544652351702119223145197186435185176448174277590828725552318097570774035768421356861321823686407006682016316480920143571527773691111535099199105172755988957325777558515466683582600013359750489889178744753024760536710672409486771305649713178184034814827808821630702409285012377148663531505645301578728340339596937070852596509895812493356892679733955534160448067642339951878502407074329654198338369776258908514113493685346406627954137942282424172950035701232374609777265801834368705540384112032396242960065685637415360986975961061991418127436006701744186789669367041824181685265828693561100076624618263684008268768316377234764454611525927773321931613138327057095918092061608981160415044417444797070306225263174470173077697840279781621392227882527421315803668095610764390092874933624180281772732088581188111710657682347527123336121176269586817427014309918897408977019922842029690186380080682787090286601595304399356849732058159389782878023706267383571399011221609772511783854904139662720950085606080102152605334191895012116808858026967149326018067573705555425122489184027106187713727417960064974165586186829911084696689300018053521304502619600981654470766374005006502732305098499501965663916017277346315646158203920958455255978989914546517503671877892108551790374963329945752837167324708704697730796186740299587321093498303100354599456108592574757042573291494353597805806042904739020226283807259551832161727578154901064554910428288276071802680915938631088620508921023728725878133979385680287079013290581722995760793880089681289345847124438133407007144466079655582023300618473142614162148939527378366177717436190904960394632980684669710630030128463493083326189863233285704269724690026869136923857589458721304552282471767145849765654903868463357878181589147940603940026683410576129801954661623322848484046501804633815094645933527896131985429829337876050057470474953189825077776558662654903307378144363978322567017115742070103392038522165894026160063460332608206204076639924567559244095864060435833708676606169330265212356485255864995499490760094112371578154703846820524003837466187289053923869626983112551669475010305491914737998721409660240752132408876794399992518461963737533559058561118656435734385693789008092804617536829116870667447039979016876904678037571405305953712012711947890199928807125816288919222269353820028971592556974967413486131441570884863159974956854511751647075119919855303470289170617443540128334571654842649497066046098566132571624669179061537632114506708116416603013230793654738512583954123910356628731001983500849460043783802388775630883483771013609361547573278018397112305460459880837318660985402437706981496517903117528057928453315840417875341489923872964753815189401223178492102355134931375406971156467924141473190846961834258964085322870472028871918605198570970764377521418597992190717196790170542833764512500662207797776384672372621384932326550747129769380860225567521519888309186192490372666809729853615179753790559164667420088134644382379866562923115061166012074510971518788689078721945381677491327325553708059254685057655137236329094315539568781061245260205429943148228696251600632548712841756361666635663893377527614786015261010861042201393861473187301054783487073606697447702942502116970710488543761179602835405744183870112391966762979225697991854493941072383358272836139976113931507960549949695906712102965382623508062682207046556077044625823898767265122827418252844950714101070942622889983188767263705467885937863859993946644313607841797945892276594616616899403302922117419191689942007944321466398770779708949799428305575299832786708347569184066988671123324379342209130800088562317773584185032206037470436833649815142739823009995143709912760545397182811959243491566874440711521462887911217052823458100109410934885135539898562868583965504415201693390482255561685257450773040835820793244566103666713957759034412593702397430845389269111345064518059110543067406602873743528396318449591364225240525716734520898653396231029174857601142730942107358004579555224451849550995516867732808000371172925465961370937345797987381413148723502000587495854794867219854051028086270481938553646136556653979059129214862760459789869343398659562747696189093983937824490259501288193763744677767721173892502932203071662705740512110431900187669031757368676314601613928556206088326818071852616105972873125968143563019731651307894181677492831247375958143851171821686871932070643036376506019840842382531459065481891361785625244550755113985260157339636069184491218402927485157293696904768995306246678609034875849476623360616250036161612691922776214596421702891961009628889678722006904196979493415342142957295179955248842544511175299036653010438562579591904465404277977348734881677289777858568723347708040606635978546463248164655793640865172752850101638035085674781284253111148108458515808270819974543726996036526764652156847376351915043174471294468273140918168780512910103101815894195919544920274020597451358261152320158536505816815711222821771484644065064275431073707485630372913687764287761845448024301516828655294116113445552972611938824337973142927469810213159073500298074830024953812923434504241935434233444624294802869196970758255522273537576034854207729023125728213520561755581964031389524591147892592341333582757478024037025912108491128588175464933007309738438692942993659784697359274344869547607110802126920267624025530284240684627609080122238423312937354628437976629317153657588903132740977822315596649744514478629721055089613841955135002892539994246615466982263530718925032015572293708421132288158777387438116337379790520212513876618185492684946129357185845431493966659035824651197925783464676689173796206520698590333464675320621998222105994570064540910953620771444547214256359655138801779225563290235761648891370935922184927720569273088743492164905249018655377057403225129693012039801506141300256472438364483871710237222060844733744801695751459399361625248566163718306939031969018419438623462943575635011478114129636255533324397769290888251160807782794622089862354487025261416357461909148551679542076394400579898905877951694326735488639313845395980032793904141786050226878790696310061584452504649739962942465047520273082544942638006860326311890534873165967080609359972626697519602874145687121482159989451338102628137836561859522409086491830937031733063926844370070561785183452409773822538531841033704230456656236424200519605242280256588454904264215425193172599488211986010436184937324383366375305519618700602973115145010659344891663831892539064930468439767983394652716700569487541121021729984539462562125089484420665476679527225581217807913448817391886232655542114915305840508034269061688685551940041292722968844649760924823383829570593540122140977972944123516408268652494180149730903417582923876910421370450665832645704003528607235778137969011169350583349010924542226229207672069258388122108894621377571830618809497029981967172990872867886844919938994510573160512195039182894776439719272810543705176698869817585838599173809628271399483116590865235009113018539580359649749169295302766415103000266350046417519888858360052558231462558054294431215691614810197188706456156770917084818921852143711483877191791167691189815505231064796075392535816812460449389038346456377374150983779795951546585888116663916965945762852235291027179414577634411067208435883936110008013523359232877089889450525833414673700598545238384345733588384377822664368861203428325151263498593221145964464639646968720225593932305267497905874703704869383138178321575255061050284693243052327916676889142961583961866893532229840222875498442302407900355111842137018772592754109139750644055781467025130898570545440848650378358822563564075556665557089371207225360406309480160193065708289638707416180649585045420156911555769216865792728224487155613522542030536427895686333069355784802236118524950237792375607326562474081710894077841483499335972448979747930858811249761363612576256849865391346711446933578709390748052343655135838886458464299262827010824460262883516221595956364226941713527909466971945167904357952902940730287799015900818619159428748027754762913590327753271246663248819846180689482874370400196011850375539401429821761425243749240091735158137985962636765684011256252326463160000311414292374112972663128598113471658058618965511641294110129558866677734735253295496460719587491326191560472478186709289198657973192250834529030589849187424202205621925161095653286294088036007718996031436291426570644640960363051697692153603028785731402458682930538081361389240242483876059188498218293707047030929224819034314608404059527820440208526961372458435727117122523259604205722752650111292795820077993987544361063401119127365343816134249419693588390213393146464188932927445521299135799944130792176925770136303641889381977249084931975014489637045769884899650723969154370216521625991070547367524637183195714537293710508545394184980625686480461716580991002101679647678510042119740906639269185121318067419714067802233483041721755836931886753671700029728894202856036987445112335363730294528026780549873061164242126889745752714557880685883735001785935275101488247959430710176900483607425771648572489989543530370348283792678872148388958624058218284537984568421926779066514288794576877965522419765153334141124881010837919185195605829694282933096698958642149559676465417841726652969106452201161233984089538244609071716213020943510477803921510185755854935085982270536322785871138280970148408032681014684056993207421558883051938933792449981025874927540433978904500825063459457541284681259481997496623413390809608242784715055628313287242527339329095664343844321415818236508037215237213117614859446669166918447777814673401518261187641844336115603692664468784047577151564481332075457910082593787992146186006179954087760887027130459458032897962343765784326813429164003589651423152692399207118682137610362403528117183607214589281856714919218058104318933037447415514293707830005507905243259190197023942142484380189386963196249462215838310925455655544250174559000253976815225784444352404317658609721699919146610702449723084284308937466442752657916710293007553270550794845133821647127587452116858140931857603367690313939398199936477551117856831347011542306672123154209976388327424873893617906796903385418810345371134841039133936056916578638581836771537756538519798598773811505638168724117290646203223156437678118258164771361659722562325169609497496093112573485350379558843097633750328041121026659245151394968726412695300214323241943818255422345347703873638185297679339835403070561367224601615007692774170614331010612504920616070913702584742733941023879821345934324258432315585077402270533216798272594791387375330272504618680976778109124035643423402230000230750607516998024284959470199394905346426419244120836185653750473290649060180593073330926810423485655423539158701961742922274942368906308035732391677728129984255860224791875115690616438612296564056341698886863593428146789188061285485959841122490894355236475689639350611971526663339881617748672169048249151350396866819197525691876649010787760183247017994382234276116611041267547902891508376697818596264924353617981946503165111732864546066983410462319759800475190337290686191538647154390533011785163049710862809445011314891835914805534723701998613204755807046867351057605624201780551920284549435248060457089125268785598945898038484991445300193367845272384472541258596775674783852521928589105102737547485399284897145042471005121812002985960572441874922288586030474372795278291147426006191798583963394616677263561454938509091752564879891474843406063757709156013696738049522914873482728723864383216535362607201412388179519945450576870318085328122075243501802659286748125656779338726249718819161576543757138174749725547608319433205105341719711183297569127648680216944648564184265194565890332982337103928297036416960857363473709658546474819472825729142130095211368946601802471295702849712655334518604955458235163246461087734748359335226695590507305613095529244474833939599897792947383271325361217091617422691319545850344225443543797766466696466261067924378199009356939830269285158328286253166098220037924754758094227017455146115563140365864721058495662638646849179269129716046606905549418205965092076986356702629713560773986262731794835450413180545489025045176510474323247892473499227216207935712906884788233953815607792081727975639118373970843832658853595694222127365616079435582975925422654760031938036724789929927124830265628791226467757957351166877173257876856333697755577074031777482614790771734530906904411562646121703885196261730467488705039922853730691037786693286507881938787020641774363972437273384896365876669612017634206290259744213085461728214892096007691620474826932263053034376730715736468932238951611039501172224074934496498716421489373518939786901029406692803876245900862640651951446655700936157113823258765433343984736727851231666518657075777225096234017723183430616087526782250065867111518779886704471570558173292049010200002187179480517073490940899325014078104184411613919567532243705482356049892157931470659012729222008807891965857223753951999490973017067549507424572454879055732430467457675314434241056760196751968198306546306462249382324305430669579669257457356651146110321686058097841549795397600712651499146071461962374282596878344326494734938139252063638261107817925037104689016920711746010862942636720246675120565634791880205105020419952356634839807020415636690600524121784103816805927649949144265648693531395639820335544849234886999818903848845496301423005905283075954293183653775371733923116474711707521781554769938969729989261484489710536253464590304390921698554267449699553626756715663865342742150336555209157934468942425830562820350057578486770578646475118773668124392975030946605578825668431895370883326201158215580417806042503301399090402838037329553235173886585197870197282296360725369923039290100701603029392102363508516257862317640851736763922088323934138159271657379967334185543879669667194018082297000508211303972833761184669745562201435276265937582242794638958992502317755519905278548603794996610853062655017414037715894464805700395103214459863760204722731872107089043527084444281182230006657066264835384821235349293968624074861167888506623278351246458346916831355145133691225677173074554844416618493320249493826948942940755917170523690909872807864277030521614179892864004527351788943897197573096955625103808980605131721951604013448583369438597927296394127294510177014897730161187326702141135153405163461139527448094293279738614463735854862646990218021742370429219348734440562602052858491456144529467438436475209762822360399756692063234686713135386603778101070180789621668988775237331220302765250836959273056535407034905025980779421476689888456679136492806766926397489490538655669182658610016968520564089491780666221742072541032100341610874651941248605454151815483480364114076592125484996076072040370636427653983234829505607321516445177318803302296637564266741548667189324309290601713891711732762173055383560992003909512059961212968373265226964151607506628098441119976483500954851423905768147586927885483417930452093629473252495585996294278371342079893520216725772640426880408348566933982215002116868076706153158811889096089455535293188251147448500420066461140249272174362040256308556529441128847843083840184164175421389246453895585957666331896237252665976360202780011667638508649960233156673546686218882221465573892423053439057895617004049972330943883778535280339579917764232199606933385612344539037503423348107628083567129778500384372034687292254371689514345259779935899162188764157001871226232674976178175774647060374083545501359690373431597055443582327493766290057719059953668715739622349244712953321280167656928604775084265358782564682405941133212236729429701142455368593937736322910726014508775609404035742229974974647065530554961974806163567947998416770441644583148998802140554153250837373253337473487956670876816725286154225022039578205030287598015700168836560755012304222698086293986756724991968409483716811196602096883330733106744529800448676853947033905969799137620280847496483685412362479114806868644250564823219646714792598186423871712728016741019894311887568427898674796822444884086626366668843332155333841987461603286023120046368484674313092367926985421920277030505990540226907393057744789891907278527843653174303427179191094115400734993006580020614674486908105692142216255997094269883557350696683254081460152850319423116502983712847824370253695486058151743174496483889660910529717029040049636899285803001585170580202190107667488847744963857227806165881811180624531101896123160139989220937801977821155077175015520375807006829253402249913145538883796585070449956147773623625271285027726553674613409840327006528136390177160627270394784474399519440475192286671260872904304885065876152792420741000886217010892624786168366201245268344766899287946692171954560715038533660609032196463017234493595182164772790329176801061340780223637186158591370778731947679247095532751168735108906741789971056369813390868852186380731239801642943292804647468263927164571725149079491336165641999018507787338235998049544149286751151845171124902135693685568662777471309595496028633420409283627558531924996073720297822095953030423400389112988040346926117347973865868321802162190671748056520287946504028835671486851294956141761395875113630569427568113089746684125994967070974083675965101762800280700833211587276325736133197698582522253121182304723393254382332751698759466148682418048510386065740484377573901479973995390575762951613779874939275934943223534315252558491128424293123456629820064953563254890651966022286403221770614817403449171063416573050958323673294985988665195436278265782966620743355311995318426501541050150942942827663607937039794442786857945927396993170238664652445756212709849894705942200438750017184024238572963587293971911750951900541398899387112123743053813154206241650330717172586047446016004592034577055064242478271677739327557570879327084862784016055020997301079377740300439778880051250481457174436790732799919353111769170613105432665640324986470271291770904144718856322799433386449080030121311972730724457712549356037935438839778852941844200152685238396599804718910577980324001714994092088011093498588299564111475242221285859280268506373508801592609341642142174256459249625241925854740198165385991853387222912476859090720116373874413583762266575593063387572041871501932431001177419634235947195053094449015434855990001420891397726495162488592219304593474084777080299531733325280624304192641647965196097090688369030859090630783889338781716757207901931668391840889731855028603349285273495460820651432151095856811622381398223696695776270859771857843969292792636648544862661156174977970515449650863899169584503045235441255217895750452204757271419180848465386958740083361931405831660302915456406554499185434260137085511816580615053069244119741407895710272959462932638675914427332385784764115547549659285192546246798189732908890811378479108037043322936733275882397441093092578424431616626820579012716221060621083023614043383459609645892588393255027649068975026829728236677094578197118555126082804440527058799627324378315895240507916557561020321198893735668361290715435734248316971990409917558065452956912667466614049744247696170486890503203215633903415622251976697688690688696935373691724982174190621563587123806358594507500866034017678709547241121475730919746937797665959437910279288000168466051991616123412094211797970479207243889670883900893239944335500552343693831227927343405486866678806726017238820221541699965303939523097804166273451342211015512868659778129897381386773702136870169747656543839200456832664871538598226244017731656215392476904387968101646952568165663891253323132213364089143243155644747046985663221926926948028928569935405777054125757847633794994272871236944162554181213633932418877477528037591878217110424789168011288406007955466927038612521348127549169146478647263350271427339423781492864259819047152328073441504416788337639663000325626495041769009128309810469261184056767780728276488501158133943705966806390630417404375862758068621061325413704159544458284886325301048900293135961450362109930355578461877932807674047765990639738735043566408934021779021642606401877609519442817679896188423664935663526107366611512209928228781626289171085786081542704258719525520201346263713742720949317470693338017597489372670641204475809528139609416627080147045487175242663758557259481202522573938489249785628491043245171929885898421748878536030153504603362710361244154982357154406726170466575007907136859880669247435830280664385730684997819223207168965991927965518028341275048487266931521605262226278433536831392467527255974189703594741068508480298650882760786563822294132146676322851540713311910167077948986074441896179900143257493431763099009025578856347755440658793390928400288125768629774646923065936497756027981803445694685525014576903506370902096866947491496075264314897754053714156119003993835499284776125865221895161264152853256001469248265167435367534358143352512267116052448890479530255542856978594022329816036331146220060094023453676254793638500180598011512726413716216865891846923675833103980443317076592197120642574202897711251248709332042165076793713917323657151895143041665571590807410306290567517596366974401942606870078880154139180622120002859499462638489241244662935823832246169169761286719470640171112123846336884552307182851170240432494781376231199713729818542935402511424674666690870899583750403812768895998201721119787922262508485523187054474964107624093547870049962850036878005192475490123366528265473828399620518604341716053854501355344550698980168663951550775535263814026052640486322624948988156158377005775180477137963660864525474605715154617982763595199207843677522708872716954623095573901388143073533074103420169028545259486174349115199355128957494353179330624458809496552613782434434508853556195001001515515491829240119182759725722013639617147057297964009143690403715459784742735796935224091191623628039574530110850738027707039511925931609396097740482138809214901723543653314117257339290852591588930227918720693627017620157135974216153274858693122741517431718171935131786374447802809847039055350856177557345174732717024206539791301036280235572658086605886688592906630812057350964361751037151236739474592916827652151124951509488493552314110613094120209790799986193801691343977565217651831293645951577726124175658339672384637155730383036700417693767252391108445937927098213486213413182296738872426556973487305351738632556147483636735690668482557771519489097149789588133483701823635327567083721695500138266468951810573415022992782865036005507444108777495217153696273159779829258656462170195097431091940763011551541062787341289018139058820181867039820116608435090977256947526210912392783454750530013598981332432681171087870113825880610859048723016609679131420981816356568609072146938252006771689045973106771493468509733398242618109231556818156965897537691885106302834662414254499183002230038133921329941285625873692116219064864550814562442558411439885033088758351145818826516652642702871388674789714919843024647698030153017411662430671051048020241080535439579137286647101495679065419919981729810285888429350069949422910238293984675974396922779641796343988287791581835142194691960143293566366569779580716616266537371237525665738731073646062637483177935579084849079998952458068453576775969008243059029708679280631867060789931707023595504661982955305852687907937099474961442726028736595091936350895555326454131160094948483530625690955252403491893022258469654917003557686354679347739158225799837184602525171499839934697479153561014632668499162748088290458141062580165183918222240304460054656573082343173649793514197599101823613586368477430828922575431064128647837903088369619322015427474554389587501462939977938142987267813567482635091182973047637299508151762765078620457666810844220306773340659529095662378460160819205450949594835389825074616737548022700051331491519693044473585290794774739591862767173036086341363049066862335708344586094547097512541009880662643856337217150196628232958383459789431021535935571103769577842901290217138000593266239135852355311620511272638179520561223391099900552485747193565535934472298321902129555242695138486461509399304444587667922422844065821313541772246158738604344237995414209236601964678310977628340160795857419918174662989857880562340098988689043304535525055113680710082325241200533399159459352719504712761519608652880438215641766498062103238048873442606661946889109491438619078167118036422435107858576615674828367376564689534811855258603728480070534163469311486078642010520277407269484304947123902418125701269802056843062069774618580881374494105411328376081844881414968406990648936386950891268277712665189636444790078967292022357925558443869392669341537380593233078253748844701270996712877123336277916906039626276200307047041561275579424355399536007242961171717642832853362629007556864741343975185178944245676439230065980398336410824025920127169085245938386548209825994100136821059229140593315142156128947640164262222110124194866214598201129570735829792326783585173863844110035916349510433265718199701948280793657032321464823669442898993136252372369878372926333607210534674749764773299687037684456485269340335044978930834696352265045843639073350474310904309947736752915284841586632671555606240625784977207244052192770578281951061654109467060831337651125121861879413429638632544492170340994573678200789914172137038813189661909898796480281459570137851821164968520192985201408928357554384338972941155532273863894631415676687881961945627248035388299180980387725928935285017063903735019613977896861390954209016472039451700007049871834491784194718519863299077969843846220889967057644405484610094203848898106418726293982089228425628065042796305173454318510430323625331658759650220154677607738254993144287743052453183441759409455457131235557497849829461258414013581610443536574191784053843819796694960241050592415367049837856596666745903023781462810388590580026134650157916250049903712184892166101439690995948613020950869869552640478434270493692485056595145737502797956738905018118180776933941212537529576320299672003509428242383851167391256515402154957415960943399202348142379833680428747462698792549896564539802066144945052489821463977772392199365251757597245556410729102555655617730283789138542640279788565841216817254072278239940433488896355555710988996757665886055780141215278298215164263776907722307561852416666918990666521215104469379420020768858338671263704340660605836824415455511649866339101581403191014443024573139642835651223394010539344246343454647565780425593845499306983076112466782928202737620484996377539787661276777089028738269670215596379025037996426976891819795375138270616974030884051939515942019660647017228743226935415084711596577727483802760542797337696216951518111115907594601308880122032635501937408808098574354828199368149024917601466706135707874393410812405079801074158295740734361945751226124721424781031177712354709172451829302660108224202174113805346271695705069914201930132378208193219070755473737252718448075203975223145286132630243637498009713901414356738564139478825432116669068019826673035973571994938176453983005778522381507445868659663391550964674902001585459596789408640725851748896399951513219726808831564181792997953461861783631777580511165820821566210935325543766296749750113268587508014158900158940222945582609558907975831856994626439864494149224798955782829293697847470995533767398935766653893133489047988983889514324790468986178473816431720556759605244194804682656141130207647893051172149890127149017743326064624311921088381633090784369926183526092615811876536518504730626767466709816587454930213808781994449644200409574908228309461933579973798147567040473525448731517009228490759556782446702725863454091220420086907976937104080199587135976943515713336659766849203673365125510251681997325726217213122769557697274208488933169750690960848873780451777641093260006348963873951754531396821078040296863294839202326924552586469966279530771718771064110368853680951781946570820792332927131076529416966950889156348981014609092354980340074232562626311280685863490039475284410848691684370326035248605995894182006019078286828117315845358708828873357757445174537782189724542583250131051055760496836512938003757850416742541919640310529471630133164804885911402674087456777504584998353647014634123971975224009758271220115849785861781511946584878846856926407166214995418595716999611587926457046448922064691586876135474511779133698508643142783144156694895455020446410979743465073308663258377087643632169073007348070649309208101407360075051795524687552678178199197345333524761690974591295753829515832355800584656516892904634063564162697969107818041493897398818489981476107851595631870217548511466832556883280554757308245927017950281739699367223550341741143787666881974259119542956212847286257065865760484727604004889517435866411868157851863641839999814562950536865633572241667408775172077159776326176509600427614536477455447188115370992757628772763277704880281256823632053165393818855059412458662179259274594751603135111353632099081263731267389195924792433961783155903965569180227423872499709531058747600654773890868533120938544109847480772969815841524271312455038895274077421341771332060507178710491919454341166729933680917514835151187625292507293528090922503785150743726513218041341190597052608338287402198367790906438565843999575042185956751333997950633681940077068306017964625196966482629890695557952759067302026140504619199710147974244820977342819424020519047796553390326545225094774319587692144061003647268777967798958083083226346705041257456853516626044951943992819122488825745463661145722525411375181086211119099210705336572295476250953166744217534141897669880220714479565021302889071208855449143067785030790214009018282026360378229303392221909916443673692219243248786023420244363310812332787848810912070061214938996704854993603919139094407995660884355064773457179688968102249219741582146984859054572485832574961938068165970543786652530049990033349482621464883974858203686350990663833398769144679864215473518036337995039811584451768102483041576134074588060973986260541089754267472334627608733337188582675412125860518090152666103060450947334327012039457643894900671584189273157922549133253369624150705450957953879058179285761809965681105779830847225887257338143491416294785021130909739892364890830650541719702495575535648580779773301582815690832010775059171171997440551097417266452643366232081139787582809696712333635707772840645145884831597012452838021060702989805935047991749687088908606803824686996535828438593844951909075361543706308900170456372161558037677460258659440586427326162171935123001617681023793809284167528379775725446967111905076481455589357621229940418228253732885214162650990588830787328098687456348997055059835693498165706197031140646764067247677214118889819102736514833429728716480991250348344013713138639162103857134762295240450937307648095844879354306087518715210716101713132174795742786980192546671788328679445094137658684355664416040721881577898695066001813195014834252159683020378184119600008610856493431483284690778943951874397588228695543563725296343224600364678392339365091968010622517107687581854414707210105484102759712803640805897079762541265733164374998045105246653157875315113614923313334784644038972182721361297823917485451511676629179899325740461030396473516011824419580452261683915266769389849529527882354692576495040524463021367329442486534101259539153952624708092749743786852772095128816068895549072570562698073935286786188770331116671837171268167986761463586296419833289897358760783330593156254034745487005502360609943072004523290569819222952265583725647369936259859481054798063162336966765990132477294111591646793249471207625654955433141284153205367806171122800911865514978046577546060932677847705563206220346120465622100217433102761762894314435165140356969110113206971804056810027544414072536795725696103478349801913597117802354709064733280951626822307600216563451813432907859137399738576624484257125538168665452576649270983046196529470451286351191376598943640857826963570551061944626833925400898785401173933837682302327853150120325780620283617201348029933588788886707796056618641927904432846011825407643216640703619151063478252270972731652042259206363413933823850573384252774016887238441476718341560873802175526315475569027327713699942250884921506006220157557949708141188992452468081981358589858506040996146545032361671895362062480388847524232644590417288209154337380210942206541123291583564978248752519778259215557791988949877323170508108985257531075495325592465286063049340678434993684261145546596894308958161118759923139910172346216831495392028069344712924834785509499477079538280539123947585935024399363487060160728158096659419724447355235913044673420898151399695430488894355935320460680034270040049612604107432799558634760764709133154059008152482448536211185484592766184963509336056396587920949415511291938396083157053633294940446132960576343527399153070576948327345041136628868427162221892208613251205272766592137933387158513209784235156263968698048240605026414320924120264641308479329873691987806463439209759464062158016087518090161419788777745813153134852212385910759547636081588201272319814910923050819637188097962359440289762731976466657795257271923499000019194371268146019667086872568571462628446836814562900579827124815766172091516826099885256649946786795099367088735713022750609387581705169326918879136027948419084856629346005369920211557235129386980831461299429740409623580603386795642365206437897989951264810964844391427571830812341940100102528829678406607114665186544014924050116388118367535815813226472994487465991434149950558331390650065018683409809738573331421311272704762793272219895492504639579987192810813471556310754578556437048070191359011217157326263320353609112594278985529265463412347989365176587129775305361858974009748421846106111324092000797349039094627982028163648481939883131528605094594888202966785311104464693213821285925492888840416779072724850034698062182075898824711103507508920039444381795878135691022384143217217256716460768227976682379278517855961454481696899766524443194765114470344117959455679635146413871030271126133638316237050272041601415967897085322157370292587781656388631185547421708835426135393081546323881749975149991764686107492439237717525794150593292507885826219234656116656938708807092065648299053404370400605895752560956189175820249849201029119378209020753206635688519432599117715938563494127238235360877418065035907270119592431857716952671126953116409524023196744642075836023136127203533951863607437262756472650006519700404817190838736716368793994713062808563995752125596908413035164025458157363639408300269732851066911661497107942416551694896077530181078503338836287964300199008406729246846583405173745423974805399313686147141959730136547270550258030076850630831288075467209192539708915064823364902054479759110272082597069447392752785152097388285774189395989805575597084172057868457929577353454438662722250748514823591774772091620046835186878703825629058360710770242074626855674716228718416706526138437034495551126824635934669906355538287927148778158135443987432730204991996151052085506807112530333868806852674443312343636719469900556071910766809424946183329579478370190698623472763036476086925234930283271202371611937279241668669104987822629891669508750784363222311384254564658946447552945351493411267509644839213618984274882297442488567001489895592169505552572712305369062540051407101475880630948089526425579784163209015644396407927593716539436454260938021882265170341308955570111951365643871261536634835282211192398906549489808051938092623725567017884508688245162556782746100480036140002469244285692974020185305795076427465317287304852768684060583154236412569091757836875686100793554987109913098654175451937807473124018031075126760857357683707818157495664737249091697626572971376996495585743137201972898464208227501726196974841977591597752569423622461625901494674361216839174250560607490705234712052668597829793210472210861623140985338266175006530574055827443924558066782995144485483404235972936537600414818214234948112733855126971873180311782515204961576284651885039797347104897701808025447719608227709188987401334937355668166032412217091690738950390030279198192211599776146384861487082910330152567338443208321417064974421178994196358008988904010337481197256501761542203900005690852022832203237175910747240055149218034593311285154907555266370226934846697912024078030278178132269458490479584799076413376989941570443677803011031588742908285816488074759940850459749863895776564890549960929601877581003808969696123879272609798024614087871642678662342692632496772457443463165281760946517662953938435183314814985753412085854086497696632790478989568898455198905316523895102792418911667276468264237774888979721581143153550512900910383614486537610498486471371334374199585949616312259823409539411970493940846142317756484685402898695629480504485243352285847439737932818692445611984699748802031082953471355671182067211201506879339592041942915669274371555049979849899730874895006411513516685831027906438545011967692143294326493726756456033787243094833518385001673492127177908751529655061541123097030521831463106974206978463163128497127995289839147932446443115056230522412021843841289182370627294114219044506094440034187457459053248197843626893741014816189643296649872402314360175278791725539358860915044460637374643142406339548852002276277776070501360977841301590397367125081139895732570747548682329000631436034570747547522259849949502592517447905586260182941605879271267470772653393248341477611592955192846723848237303946040509783626843748155945650980661500853170955733354106041161397627617596791754457458560905094826353749707675071725371484769644950754314575280205600615465918815691279368111995283372656943809514316022783006008487967664806728312129819257415082564546231024379963514017460091299898582362768797515344971532661364010080059639826111023872480304365246723300168892565490621830745903372352628175245269187100659138170704462728764058287366668804875178290566005334605261771671443166173224683555606802435795760410568446302990216030899723977242138879808638323916788331246361915195059810896659877729387588383565043597006586322484855099493620113677259807763740582192193361204615822574969235459302845960295320970565050346276267573241654299530981914954605571206727324355752702717904688793692390325074380922692837413142001658972504344368304482649684049080520825774937187019189006129558897713245847542620892405508826007477731649035297371875858516188338143053418503991918942121157358629993547197296368859319029983604613884155525418993368232407351710050448915010957270533227409247439128302654213553891410282332499071531490382160400290617471366205882552120023671425186672637667780809069426648909298052537907253396996648589087957733570951586906037788822925554814780516603201339705467781697970495898462212256548413860124973869549680991721869036522108776940233206125389435840936220257864370317793015591527141413366593721221641088518327840400455055129824183999435600938433000704596884110599852039435115395433180600755103998515557968024082845540173984198059006261046957173451581343351011282443855089133364160202212261088977574554703868039767008753662370010572898001949141103433414855562090946993232675282515916310478036223388684163675940968229102669941122127619827085044770947137567452734275957786039190432340932777154165164025268957733908940350374584958024314286274253476194619874769568593197484237368966092928087198824859244875884604891629498918807996469166972206307067521623360693265408742645076183862044682304817443052341415233059373000128256775969806902693074273039600282063062320111023617704509262189268925774717773422923870492606274170851071162124149138181122158358272072428988891876309238079323639936887020428688720748318743526540065998112863158180223305838488471377909986942448994905239440504895715836334962641945006849222015637500607814803138163231418482101594622695379565650498415891639736344379239682460710580728511939360258511086097219629513417765771900436877441119112885429836848404038301955187229317814915234932619903878118964490820916568891739459381204958226944576258680039096648320551777176111481800071829610049570512062485946757109310725824592240577456457329353694064421317491092533813460026729168322692214494652279737230978806195601453777611622969840681608443604195465674967903080903111108085013716851421849350098336601053685189839810478946373976945805700340871046254446899710900236578172025130209843267350626127352625866150043899679039781645723345764172228079455625433956595875493845736608924173690972169539780840168791228277396260701469854772669740241261512235836420844670652608651688338143872757550343177023587823059341647067446322823925183051201228812097979097653544786250044701415242143565772689429316154364975606933389909156451759407230639159252130065234635361248406358563510062900107101085357110551771220111293052480244530195073661601995060937925219946159610191191053126401623459380597847884175419697447827841434931975784329980908320085243002625469861797129969420464755948066456674873189170362057028016056856845093761019111749760384306879829429601133526180304028398841727090065054299197443162779265746786324177453696735659085853173149630238207902778285623553010726213625481956306223002657930134826933581782371960468874769659820247389381044202902012115218116065199692995947062538137563311777432502432034836694344390593491946835304313938454119972638818371565900113066558792099429079872604498975650940672155024427334854722622123484813083861808425884683214741789256339375702580431507465675544213829137933502611595050324586451605421013445680882685470483151681936211120114791800741167337829620707023228583204325983586808266417963137691665932386054064244578702102156339220829015059150716471296453100156493999647669320999852195821451762838633681182128917328050547238504288842750198643482170778843292217547720860720095062783543528737397433074005880000262499780774411764536779728016047529533699494972233493813639135110137798347598049191423376039743660475585621949580829559416449786078011274202483921890819773206896343206990707686480988296213432761055729924571225178441918936416990226976091842965807175624820610897952776725448670860818469221672674285824789910451224815981504888749662101503672508632245691258974561411268649045047132479358221441381230796381662416768109780876830124513266824645966883859471045501658198831963320018839987078618142805138703208246409287938558110940552236129442224252419596556693292904842319298283011139926798220252400236068081472079117225828762165682571995569265986424981780741392204680802638363139082205378127329718203470800198828410140575590648490677944310900562244825102981814776447884739954300122294963937711552270540010745117131486444953459363038813375140609380629730409423546360445770567155456868681447191511297103354920305066033462497110323606101507006439956285268222724446339720201489750770927975559872275727232418455706504773453155641912549882482425518215696942989509503409983803106915353308228659739290535198288201963507461322857005596984311683675709142697588643626653678230793809601145239773477638750421619910388286476492192573023630147962993422717313679472283174883566711502101232061001408721853563723790315210439534448034766922395786683774762580452613991118973298969649006959590538973160841837704817531165687693151890039200658270283756637673117894300662414526870785683613553116923262420313261233772403149462795012869665197247613676127232727691494261199012784544114573341508262376570791228406430587649330432342985669086398872574093842281009784026858166767604749738691320346095914966599401225569869859305296235245351765561803970513296693527579289679727739851477338869570403599941652607310660429019241164339875603096928226589275829584914864847450213983982483474408069716630688322050220122790064103321281194593053682391581379355652835143789585592689052910669991927477061177082960146890189567240713003858509108888757676574261179283176123052615047088088251621015843436817596163296200988093479185529875102101633169312094800010167017061296278259974781218576556799769411516698992741384527940968691478999895417798297238588953601232387923504257970623027578390173731814268879140422007610937640489398171257186557564421213202730934524364100113303438999497134985535101174373062115630194205367819704070961436702371838189526798038982884084248535598126272456119853360747634105715604944295865699685488248052343887762674694081088946924257030121180390567666748386028616716399024082831974837662946726886589356460021181052213613023930604144635431398697415072400201294839651821265355387084424492359565591913783291997783551905065831066518692053510267085700688048699397918879328238781576314817409000827051824023264151465791038619828601874111095573785831403688317334321207575579205080009343582357650886100134493014912345642057384676748623182493233918174046221308726322924030870444268506692446189599639932470871102122922452684536228346179994841965919688988461697382347041747812413402902057969274203419802076415608133552898899242414372722626539587357221267607216136702692582151748587994826032093213301209062250753987045514465616698865105692963522751887410361933305609630976480391309078336629092751593247556599382107125328894169574834141061226284001766112010743251937356248125957147391829361974894772202964859512852510685769742113461402150123733683179939877161263749929889551616041018453621831096966186083898141488059095691729039753606765232758479443735446730773995991814296188873318455558008591330906732138647957258413367742508479374573848125761408314797071450315028378591154357334518921518158849022359827796461398401129446288315128451444623672408753661506593241228362073639024036752598080412769004308930769409493412721930221164725777998053566706364245596805134887845483811385249971205248068550938800712988217441475350875248139724241145114798508492125115159436624511660174077862400303510799019638912046001246129785955215408689839031081115290703183797749542264638405882473832259527144394710832084779568907849500869011429209126092265758173037689928295294091292311150739924164624667315502997455449404012144962711020945326092588651592673954323838245741557503404484879743150845980425226452444408851311197306354691404062346743182083999625665870613625933367411474768623918952765088163128496018104144232384970188864155907686194989500824114630093598787794282697939734425794007065771217983370744532301679711700555538874419616832022156645741626562193374153823617345645600615767410419250788583891203927640846114500311732491272344285154856654516542774599913614049260369525821809634176737751201911905832890037487324870949502577021649076007687454469550233119266781053781203058927140421756721905684915003647217421829472836766326082421177806762863736007566354122292785359163517973580539478735447302878479349907285587830343891831745525315690971447491850867042524381076485068251992248271394116438205118216867362364107038648822490973628663547142682254708082837899024790279595290468966685628112171192986699023039195735199715445255648023501941263267467579824979745973457130739636558472927250960577142132830434154074004253034397633382338246532659637548256054582775999456402352224524734803867503046237583737392919660650426205026560262331913282947205877100114378520791462315564145979423134419373150145556928267977932817920761047671973266331405578157605749861261426877769833188218392343974998613540481057874389131002261441441943446234378296039909935982793784895767415531275388795914933918024555308748347654382002480865016765544003169511653956491243967390540626328994400823838110259158650298189677964277845392448276744848896283641867313793840025944021807010433725695265614062226427988506844476441184135040340263228943158263650507493783976297066363058229392502118248482311772067331068620983295043595702571076413778406022140295809611163222345538088866838724044945798116067994427058524689294320688893849005937748909634704069612758329266426276545855245515025279787524913029749123528657119826917706315688661983906150459200486789311751541522723458722449476454647860038741123351893638895831424910387509693601860976832831601138864794711112464976255592074724257330429631387984632485353935920873910151527955989518648165873213729470502247056578431570851460439079963189499736853126206299780112613079163286662077525643067417223703695659168794818274196286093901268921817049645431065349919641515562284906015757174103951728298019603988264987795970618953918689879122419889154698154734798619326225030500984664255884059886893974996410999820443585670813899780348757177528012344648676632170351035623317099596900333640922466491933043711448731550153893311354931415552359477439820214458985910105421840021775751189873373588382570048123306557941588103539280385496538824018361573279416059972186085632801318820242985017376225907402278789785863948252292308592924279991676823995649692054322868117434145677961830684968124199251122777481702202110795591989631664192182686060301557893496723953866818642839311215920355763003415549996750967111885264763497529910647305487374727024631791005935817718415875186010996423437338996551268024651989679573285848690461327554359611639416787544019598935946108791019986066203057198418034348567950743703852083527051894525834050326169234370038998490771656415286622120829953208954644278470389269903569501458874010836213956334815296899244763491975634419279823603875806014951705017377770314651863945136216083316525832897191461852452110555042360813385368653566673056312944228454477485493185945722808108886335764033619212995711469967870477078457696878991503566943621121541646583599457332887493958884332626193542246507906437959725660567269523087026924625857968595184479960954072580346332202822337239781130768380612160696386447374573231312508282774332223534298565989289465614860293264258612340356873049430572159633343820832949147109203277798329863392532561510246771689108926621790296690381392301126178443781860976468676550404253064840335457461279717579868981298053478445465882711987852153255765685244774026811425305816186546700638503234732494507253034457357142764264050234436802699216830361064166144936685133118855593181615782164990917571692599032200158430905820391805235639596102459520583507889959670342109928200103809864063989347578352370850018599432248393368882300535667125151344775536799683098088525426830861498988763406010879379422689525541767280104001064851007484346786104607621958294077801909629607407685311439326407716935149616747999509378683682361334116733098667436292282278856192229667711811800694987697138532716158374095462112119425250282826058934052871860878204697313206523598193268749217574569612767425269636637909097642750445741778469320318139536731384745637386832807768947325150887499121287053448416613448601231164201323595831705420498103411043722628894558994708403096817220274231875036263974042817146743485949966143194524772690076235842762367045950461147278082558695166473570867448843533070754660414254596236812567679615994105290762230916178053260050445234885229143616039970482019442110883422695119098396684176578605728866306035686788062919174415864169195051637474631582114242556261662438880722079625715647804765755857438066940086650062556313719965910728957058782576780299129991968544049165904512640474771907155489913898823561948977974821060293588694841398045750520728706358959044015919908292062727406988397889893217287923978739565887784411384094525473165081616750099925012642843571790253368577036481813791966472691281209732132020851608793975040484153010133652591149125930574724661215225344617670840930941249737214370893489034796827891577064104571552978248161904800524079352628429877455192848886434415018321156149401558622115043001883116370957762625499506435586017371244621240996224728635935692774223761819824274428452287425166382132231504333943748859966399539408246234062375041533279587349694371882536442628029028929563643834060350125359646599646880444204718891182586163576500901572162776548901233978443340308124358149714526856344599627951614171097466219693326024119435743090700741903423413807867348848878726318498812846946688500328495182204452149165522060585728495497483689802476757918465349090761755200191399984778012644869703940916725448097950602816012801761746750072739176000799121014559397214195458589662278152677144081610721928101950030123358733540186463749420754090948941152321226931859983457702575299868015814584864223415959433451476253985906453743449261305025226264823364222022074670153866069123717295973491326845536990215158518802462653093838095239352649755034233793775848233070231549480715869061136316458774430768608227357362447162568629421243401195645083346178582066571530503207415064622876515035205974722354136869671360260408763517147904112580868081589751878382974063187312076184356331164187824735611467391179060728524282729368559521161363815785942942047007445896986428749077938237911159252938232637732893720841104400380551592904410754369709842360065853250586638013241120593509084138025541074409108768389192876144793936987423683075075442105025956422059961880060924118322488734847932740630279204120240821266776604949182267908691983704249114905135094168808170600757817755081944787639774904820434026237106234769475098600971226048210254633838720732663832161876613410086257116209501890764257884653007821510188639952398983109801991318815766667494042330004015662313900188509067024993513361901373141284589750489944944738163746064014018540846640726849914099752779050861554478671864074858383837533566257339285137399303845156481205953834797074250258451638092730735224734218051824985484525302068913552410373307453528895961659500857738192517221670490749705339346049865468851312619576441189818317551727273842130633851964728033127198915405792509910369779725581672755426397331704080013511300567624270239125632556293701616495755872166051963621316332705506322396612945713068126531643353971513445013318150127374267100504543486450374248309727767407605698662150080594232537230751464619613471056444202656474405765530870426449163225501246469134192267689944044642039992214301491928729729187933401406291286355069765507482614053547943522143791826062640324845514848551514228929639081021876672104142932391143727124755582899683275021163541737610902935640306230953322633906758405339483655861321346978636961899888502242423556780992125773519628045959307214389788080806438389042405996625401724341705636343654632410055412160977791421274084586191835066897437547133410475951882096205415048622609585136960131701786448337509602714555517153839110904015449674960962755665388346555726379621397693381359446504810256392924086424995430236193535033517086804117058472850027092110517764136365045479378804472597411066405602319717786765148997119837400105621727221291210207782886805595469273698686237575987438463510048263349319344954220654375847174063740571972778666949641024099503126503503484972530599893829046224150172919803245891009830667030168340147469178930388760496736132314106345516300561607529775109345097881095099663312345358718489194499037409712921649946284830875789378143828992027807648076665760751083767444062669734851063507156225193956832598193610214661108893309599005920199192228617247392545879096294695371447107620229396054338003627232025027204448688739121031853953925394776621987484226622845454259297853752352426413243819021862923653965482349280882955374932386426791552867757794373998426557671609368878553195226907699353485528936060503974618788365745662722688781957254406808711016133491389828701565098064583774896249079733218106451026301629738340456339328776851401301540566626762766604053655917354343369837491514171472757524489306582881581768038707493195708554960230337043229205037011949202871471958764136929927924421678977649538496333198504700601353660452875532254054920606597326064051562856965295369166780210610147489621336482744602330743957876520022261369463621060630819495175122625760158352727926865079423617310842741914677891974158492326422829127153942935611738941605884457548316297123231982622546625302027549684574311587468775303304933946511657140828825984760368818338709774161615252467651237435720661872064835627241887809913419711595909296294154834750366159542129558073026906646291244804630043438045645914385732656232630165125711979707957659428267736250772051868036361920715437727434025315519736749195417544594167298553829686568335719717398687690052954620212438498429202066646813212625161650049230010081321500336296305647356589356543920967191367375582283964756949028024952246551707084877394014711544342880930071080267383603856965883044672763253691059275946729566617918731729168128380242997031182945377897592373535347880360263705913080960550135066153178204008128547491150022290718978189790911381491313255068496231911719955168905186693803228483291730798865863537630774139685436059263221141432490031005642345936314487229137189826856204417032417921898579097929087788584395174584846273245101371219573102833022392015840055270358063199149563660564037887254576909793603445834405991370440795954454571032544544407610870556559987992476477792431086834760463323634550815988869945792162718173703725958200051130560365911658833932501190403813490150219026069226760574043908092553982550898559404163867264607937102055349429659456413454103345970858530255459066362170733595137334475032035972994737852854957867313297153293159047617655045577022846071929798695364926550104357802256423893221063991746210926394071358695215463008744519118240487702794291085334365477713066853879367031966128631669453137460675690613778006421361948213144032320414300679165160014371746370890633047425671855890299550173816668311448879003563807308594532390635079735401392057872915249605400302995334265640576098174388181853744402263600050960485230193781325855053977799146939872051675805385599437365379716938031631718526400662347533134772593290577272627578033078634703170352170182011410634946774012625035070923373403771101065082888554657200403657488650777490032449153915089762429357774640000807699957426510252609910075411156664128299080311871120461644510974130766696371144528837653851412840632925413319068403987919104936033019595643785599760129359589358439415149598731770741224143728346399342447503097390236053423243887403144314705269395937574594848510648929921682094354374861642960447250249005511620154829059453099411732629656793859668296092503715063042719295871652620725064214370780810245047146090328741253323365243355877568680274429914428478445063834430272878443806921770740412367967258481311270470100155308867275000769084679726060819988992167128631738208676851325051042906098494430677248024006026839096220819583135601300547055309443454318007564023411871998351053930267588748847935674269405474564033539315050756412440516352159043106753374902912390952223295440859705114177541146924144163684976656501374840955719931643637534044792338265596198156627253657917793787960080132204173087985389497059032969433061378722379439434516357493870755352083026960478134430618444118400022754258277720584279708153528192721563645772679709821746925230737301657737213317803778563334141550496408247195198053491977430359088761485270729048069044846182108918479101454731539317902844179498469755351427903331412841115924768639107819111961804288371767874255299263209539685764667580393623105489309795532620759564150280629113533204080702869924718658450037561140150889579912012825282035566674465063868550276727227565040284408502480485902505225481728337688816444405614803560907159509162226651452496129317489795456940493248912525722254066703717351560492139959419101674525744323631852902555074175342226006926656115219750405263475387020842714068939043206364578893071977262412309366162363859350873514640029343741168458802030799673145895768380764969432258322067227550574606817298577511142570779247159867777944232835274417772024119785645910737783567575730860801892467268792351319239461866607484558114714650902201870409349258797234044533719730244738099920932166134506101850719486145398336286665000382730673227420837448005343729989884020895331433465343216090557756176678887334974459860802708236168193502746546667345931851752386410532763158563197340018749171905024175126562663331787771367195121105590210676477045222362957954678495799497678455025984851358617070638401368667432216654377859500298015605841012322957182687015905337347347073379714557838514640273939687954610592914526577752644612956202548364661033229485529069573400252992331178721974327106467350244465179530698663930861790460226202430818173126059604620104658644153921052688820529758937439826137350668688744833165231030308896758899792456122580599013141601112589095663556457623582332632604155764723265835913087849683875110456577774366003312500074048419940503672801875407121137014646606615350996122168320240053299364152179898581277794383330374280571315913293369785511980591024481949884092782127150316116969445854795799298251996203064398422726686050380743475296220637531448866921245315598231639543012798536712044354845260832405182049191957715768082250097049961208617432660863833879350925579353928262597358955852894149031843055372503622378249058140585874711281637198625705650841638011455220223904000491664462962912980851750970814242041610765330887437559417377502722747741504860286701515180116347334241439476917950732072125171504517972350575679587065811540677053590886641591047572111155973689448934974988819003944042862596365464666800486591679874003730984598391189520368785764505684241757019803758908144437243292503747675620960463635332056747866692659388923006263971350109863745696534036004435716325073351599936032085921523116449306213303861423249056048597542341793192436156974955434011125907019412606425175064235811098102736111582924533492385315488349437321864416319693023823394863887171366568788066092574071191707116575710601808092216240259842404109487356026107466285999303807082504533090536330120797383852628930767038187485366398342074952198730329372892483325546998505232274121122230055143404958869952090062142881623401477268746998268027535787399793956104620593373796021703529357771678156908607908034836182491712568914180823527223614987472156223097583274924202513992244953771419729006736883721767212199516252532316956168979643965795650218303801839880787238273360569824440486077265643694553906229740318063638123745962812373528569329985347047796381278597033219638941187664611896593229806450387543681625364639785610051332862889778773062099305436596484392375461358038477046748954004432910270817184134860036790549390419382082604723692877035681492456848345875095588988433015222830408858195643093935784895930239744507630336135048616553619657476585471675162816817226466239985888872756646658241066240003954006597788692360896356818021115054392059391249344054275962943174739108522817484083962241956749369658650205044436281752734492868386330054883789401240590715655294138266183943707382318811736050625459331916153024778298744811954296929686380554193669658810500492009709601948856780587709421933853289930472001494010678500287026728157334355712790409836843123269114294867937806915323078624998318686275320326301607609533450053107720441395665606707197101108317182873372728953273298146568884714743546429790861553138556497403600163348946999266345640790590344040178568657510798243589314406161392996887755732482777474555704679634734573003409401041308507295771318086446016014327654559854037417286209926591586284472694967438868645112698843480881658875213706805797294212377651394828274835172890910638733526069981743155393950612345965805956985738590473283170741668985633163748472750028264437553899322631453637843699625149235203057758509614122633340168908707057237543496949502779934876792911461455959631567423223678019503416224603501419373208243449233838247054869842478675845623572758045574533005177624952927793447752286311650925012401019624641904997551624541552592786983064034617390282344013171222122500598991518858112732838689243735734142887538497808902490096833739975698659246136824559124039209287185096702977923855036365684732502063600092439126768885886207954367325677303875294396906305925051635820043214308465401218533474417783929967741427822882165424854308964617991830733844085920429355101796389849664141051066813371823149874266290314815018563658419801123448418593047238706710151909670065904995434705109772087478900429430989916896426566371136670848957512906200144484609847630611930638606811956310592045354984141645792081391335841463389259899134776120042856746106142268075981911285356265474932930267528583372945696382903675138755963520279334284565458775789139165449955268398943552536377667617243852009700184048972904112916097445302644338148378695161011176199452921572769512885813838406902888746417517839606496523256064753551153865766588585774375371095114939059037256555577445658427875091128822534279507619367668208155031996975732216636270916781852070133634977974078304753258206547429669101721659416041477765579626129671439443922193441726516731954864689949622177250261467691867966405734941951751120374765821484574890667015196369098727267492004904193308631364368240827524991131190982471475648838322537037066542017992947361793321620048657517002458949904927272741952051582687812806959770617085456618286483410562839035937855687710692343237785938269807019301367450792442359009989681441424872758093315473176811136098823109602159380196962848324942035461223057763817981239747773442078750527905589876168647773742619714104550872663230869378852432181704188483483410957272393802641157773064356030720647184398129624296943108183674812224773502138817004808254111983612837745996590243520071892889448052097877762498642015035873696801994858324326894645525237204633725305176548117463355777529957749031332062746882776469491383281485401562468892026760060873962634509128955578481241191873603748683274856187148282848810297412104003808528512860886299268514725936697900100753252364796680010833206605926189164668433613106607134639492873342625033269394606521727680678880684869527200755179319562745477867095989844326850175232763368022876484741140659591178973228043204901853495668696057493049900231871285994144322414003810449252756953567868650584405193002023864965594931039198156619923834637222169308543700504640504736803005137653538932788956100330933788720697505397692057372113349569395942565236306051610040101542174570749819281322938924791995287683414825771099974625073708697755153440044794455480772330213801608685668769988365438970681392688868772619501011592104717424062840691706791154198840653870217713674852695742818861260282207081989857579942837595170761032256442851949122196063381353239164367614136185893437352604464896221852835121503803103797789683102674447527335235040133273704943293445573279618615636375822994998177584718369483151201970028191944450628578455322941781577457683212347950743185889606369206782542066741709265855669456291390042628366769516441899510569231677873323979595052233625860124074227608840781771979810712794051476781065057707133179345617488037472112023987784676956321853671467812275779961225304384205541254035372759085093688049995224922896806719679443448788538200717054653898921855124702576286247777184863479286233662484281136206512479947218144111372490016201323000981710780974376157839782859513630530311201894057334714535771911939080399590823534924846120574356190126303909294058208190478214448535415190084081476920702579293979970181993906579376523962585996651475585552552564619662534087813502709537078967828348665745398750825642655093935171327077661206378617498326375136239107054705965111663214542723676543009436292577609762580093142218799710177877769730123452085319525543476167113412617058120235086062199812923521303641869566656649554741844079072728366414308577732263234583606648594130805104629423489833454560550743663880859250509228732454010207966189668527292114964822430615045578476362303519875216223245646671181818207389115225485808444808417625276269510038010142190386571645672649460923744835228622295569234081969325341580315637998685930985073192568120410702364622419739327883174119835139180141773890905906495941667502418013788948428620689785168979527361882904234959041103171669340798676045400907135225911233974363486576363991437519691886248213602371276827873651605778682522905508013821212226428645909866433553944072409658026216698168254152261551951349769175107685979721365597966059456411067417903088712105146585653260971176397494778813737005652866977059838442844579416756276602610606378539959000997668276504105996408987813965161549801531356668145613873190634305418071574466610976174124952675988113802770835526798837280219767512281268131512758588438901921911032550583491037450362928949611579810754460747738216148773669736245661750514373821607267997262594357989329518424420104658009346040483438179474340729286864189854910200777413402567147515877974655747785772920873101109026401839745342297172476427362419653918102656088698097825578836412707743638482735249181012794408461211757115309985345106334251018959085790915409837882657368410228199033301068715691606911896005929174580671433116767071430077811888704868821808798062881559350246972261675045415854381498643164937648999005304572824829315660540488730844837535042569640814651129543198402582510875038792543913870370645000477761431416249516777886694474739077440645038235735070170968224423814337237374895246209813862965338754684425375148707565661072448280581861797889532460582789891512935407621007449397465711971985571512567481506912343409390831197744159535064966651934110498846718213179798054187841485278585907381294343464764564554152448223407823831078789578108090876227197592784109035457889804937459664665482909855569145855906343320570334574644405244629001621197163606998174234787259848939388117909263033405025386783974295873669644505817863946584652460936527246037189744126258948369059831414324957680357297575984304109287701969046178968742301077501400995924129511191847451692216888205479245560707762875172623536707800641976001948594136587090120987425404710173938590183940654425910020167227876945069762705822227312113781403599179674758314204291706998292720868852586470408023275410043855756481631009762211236582959659016174773869280500677626935549558107315481338812989331552224090764229952133755012084869540782790186222034211202087670791706604507342934073805653816773029380619426905746204181815412834880137717092191695960637439753918568114585247485538705597384285859893788587266046044475898577626669666766126072416713316550825162649201405664556394796617395501044444459728498794638905259464666090090244954489967901353541378204124718102565569328248834374381108124421842399976490441585759776525908350072234551395689862954782710726420111154155502203585363943249940471369317028161097105248409684618414555784167418884648772553555893128559901277774759834320661382015024009092271336823980055177345505927497470553491960436276467131247321417114498574157015883733626123378935420433821403903965971841277124321744277659636035996270395037876727582436442472158567130057184334952496006781302169684417939609851396401631838523451853301314381309684735500122066915995938623582059113156421073531946375223274847360305028646300247584562123931465677832397721648745170200618798602920963258898750363231363218849524312827352197686223844109795327394231367765080038302824384804943820803874023165181776961546760083937357973310491330651249738455501958025528260663238925033735877716087683952800238413167282677054528221995483320053260772700924314251203862161205091583483800819763022450422908440432432947710035874813479010963951756479571374963742403338111586871804701135152487165300659260965278338764316469563912799818022677756402857218673203469655391495327972591934145624277934297276376112277505299843980891435602034802174945659398335779938677849677645477509942327027129496641988860404420234160250704195761592549898538037200475836366509261422833109551635153003793601851455683306023042294302700462951960311773369600748082173340326475433861667774630985968947029463652170689722131710628629762096698281747673679066704071344364586892551960159906651942470662962476995748280654786739452804830096378756354934852160977840690133227964515889670712349654473432197731693889308429698266725478522031475943972688006358070407852324421320807100363861020949967772359132018802744329738282042615334045720251576448337594658901887020913356712536107601932987138592909375755538728537084451332824827076424687853256949336288013700947146729473505136556021367449740001497549018599382585730270257812075510842976028402768387326329225564810360736614978089821484621379393982905431427549477565969555258515741351456917306558491813156124215102054455222409872579167332698192764910170011983618455480459072996334656693025909808335423754091142486080282176645887698732811868025596614466441547741632110219729010750945558347927432241138820694075555119144157160911503892936655546867516881583566006837746695153554855681758673563760043892347154047078965867516670071296459929400366764647476855009529885553710209291361583244758348998288035078775760637769964903872984010947985677598042532090255241799223788169502361338194746910012766826169900476203291565447241436815964460256253551861572445160973995796251264709830161196737797956509387113880289581709997008578797391054879115627500216634138276153046981194591734083224118629224989698279809176535764224499434605432451751006243344146470526690089242461788892997364378518573167924609830721674307203897054120393005259814097989656073201887024573565918416607708482632828083799052294077779637334681977090623466970154515249064412041956023305742814683684434940722013088600226475959665571957846567343273536065738085233886387718480941628362978334090548902338808705205539159776056162564832794444272030253818154224876742605270068017867062475801661342990280558606290789665135911653254316487679686869586127514978423341285000408955488453333164039759316035774188649256513787830851605513254677492411361236114123534803165816112441327191801965996031500364141506818097062862860975928964545976255565403848972328852845922453286106840375476096106473170695043617559133358024972959725734836157578159532143924145478032227091854004735556998998759414979168386836904036778155108746511998090429382876616622850965435143663107425549171241250512577464093434637586178858256211485212937022104303530898046580764656170911842131791481665323074077555337248246446166767124181277502237782589752030910820980807962844721053288204079676922153629820352887574489576749444787195647142011308403358977463464580885683872720340264349327596494816491952453476067393914838009430085555127625926441860847384705826957166690116965490996037180650936004603258731204891974110895753373449055758059897028361242068073136313053099489112880658897181338521836294260911533369617939754184440620833107997926428710847673489236599087238798283782788946952052571022179301783855844093939100750777347667175530390775577071990779507577909550487921922464050344098098719119595504027805103106957576407570166664745970027568606529223065267366690838583946224360173350067769035776202139373648080652658547117088286254710900534017463639103489175397784732456305973977714797377377379274265561681852002176448807888907127762365093402418602472638887927396734241797034532476752339533068972481450948423711175520300108575476652740095008137452711320952660597640192877321840951854237617368520193497231821123851364225886865167993408850297945173627793169528534105578372963555968041794535593734780918899464171394340593664496028083577364848053487068292757032348010918326018471163749260036015096780378200023386696730583587765834764681509436352026654055926633230177475591563950807624551971012127415998398041922405707699665286891084019547194842386960999734421784793835565908530142560029807404504822175692376202145671218081405739743517257127309697342394468488396930018854418867297447361944148869678860578775058789081329869042921274534836059996271194972082411587327800211619512909499178888315329820683748959821111438510330444681980633253453201867827878677060780731936783422993391993422062114740595968267485644893824651501256122877671615355878280199241142183463748741848971762924343150561618962000899943402851793777116155659411140753789440568774738598129483596775357691936037719207871662158708515741691889943515934489497343174614373657592343226779968225406220093688147132729794188492594891072777317979546581807209951866037429329620550042259095469183101956947905647584914961576621219072464614190511424713197608439872143432705550431237111697975568399909010831495918285870497850910354824409790430809181702711306149297323658146491584130817690197029352221575678269571659951712615154856247987889950039285581442310476255024217355731563127703480272511326521739715662543370917973255357930296740441643813735464659898151957020141428979861518392960897222083621502988947488649022769936427413132140166825996031979003908494380597046688099148563746335496267843039333324883898247727769772806960632955563733602249011259539307309552442850694662948454905548156919928216151956277828642674034079664732613132393936957836432367374644270220267388372983613885959651120016530249562383110069016662731788035553536017028179931266229194510332973464993171564851422696257434996232218167627726789313674374183818059386705657438778951157212784689741464400917812049938119362500364353912224682417694714971153930694877338685857123231370098114613224345243978564087650584858162639365292292690927160282936971183747367873357954687932047010626494973827287288458950319715616596622522770589122040451800441707041830519277379717364158901894043811452931292610691715554575629748987268504559087516578325019159587507431510180583313021804080657264147248144575247406829163566483180767103601792771801554464248752162373999637782132541453735692987152039808214092645178654974512314369166886738231514523177419515778627805896182352194716976138837250916562261011451154824395214336706071725071057624209010719441522375654556396141852161302990702333487443850207953135144239860643428979716539559773286313489799216911037667125475555021043779798116683536605639058433810924249545700869307475374980386783125692003903302327216936336627080032974368535925294811406378156892224279452314112142815218112942028788888141526882532831653075567719281160125576363904818090605815168034855970596517785166337872836151771542015811375284868571256712858597655566933483459679178267698409981257197875731051092466018277670200038991740609829772398250425054923121358022835077431370646290074864015738048757626283221277800341794519838708034907287805516847457439400702880130860912320078703388122982086711916834951703957950117246447538773842895311391262526687054998644582968468926294703903217533506323624111973711239377096478049831059117946727392559073897510710472277670747101623547383555816394657776478517841829226545957346433452476063655943395974547799432273030596200736379382829018469425648708240600072886327722624082392807985526104771080309420213761820925396776305029714196705540280834400599112798205869917473722711305911166076791064849257408505070815328690528588889615072083471000990992754926506533592641430409521046428351264743111562240060524369918337004753309245711906270623715364779980085466377905086628815770103470346122980122719898390933852208620499803569580096921707909930300096167694813676884342923993055049746701877450489919956957288478192177411572700441534871940017443367826764405260484218658909714629630613883039200723431985263193800575946610866310679378514372239805424107199844491599325153549906246436976396173127649325173292299281204134708024918242581504862039136611632500704970999551665108021925105565300301209504258454608089643474612708636957758976388635124779764609283625817440738927561357936364553423318538364650100954578092540205729188593318110727026191588047583632989250751401723271778674877131989150672131481723367137355125098549515798814579191910089390061530291403799241320924048303687097429647027061627633312135529139416498039674000425029104556724552837076122655311614811250897862804898080015684622759518832906067439948031277692576443340039431414488532628039733634128457071706959799818426202252658206167102317770500486364265278829766648320497624703237081965989277055560108678079425917688286256728640229471673168510519874213597320883063433605633032002281966207658944014418632922255512884528680375785520881343408454238753947510517023165750921419168925008338155095467327693104239774546486642345498541707031745200734287200261898592197244659130046239514149363593387427632799013533067558802960223509320600943494920981280253754756645919914157745178436281968211789133478915850381618977708218146553879422418800490361188421335379071972106439924165870605728692372490337005359064434088257050144546095718449319204580185858565466647836134009845020254792780168900207941985506519099705925809504408589303686668077739182687548861715579042914561814033758026163457591814906101335547401959753873408659369000538665182536789178044021882680438790484444687727720411175939436787327437589634455629015158457113918728219483678733907728992788837679513024229692783130794965204610442182578377044962731824684401244679557750226354631900055054894703802530869174389587854228449705562273745171632593792251558025613422048443995819549588569672145877511675622794068055594207802072450013452498589390991613366516469712633459941298786748234511481920426650462436138542518481270175429092742950686005530710085534137280516607589435080532864406018210517955748852585169082608475333216850658345972971992369220234229632103252834362824800392316914543541391852902409404364560651673119726660997859153290246361671800399227114060064221487288886852738058571601094260265501646505432338529181982980228557030780581850234835861129202846768667784098309653338453068004672048705089208524961727555573250717174087926167052503661811453502043659958241173375291968958845035827423282616417984541333467363375669446674498476221579461867190602594079160447361110884129661717069121910879165750330089434130717724422532439083609247080003361065161077557968451973759466903103964816978561364383675349991609278009606791859410288501703658905718793082898786158026949626041166982701544709475868681998886286592518139059532352278668542319355648384666677677669260677073550339904393401470353869762463634536043674956058122376344565272962466368545678413048701243938925757462694585010672122715584399614111430273898839407208975034101180888789412512754341682472167977849185865373704312254101049959847853445257859338450123239657784727525045049597959565742042942944524343354065919595085262909989715524946654203800486174172389644882380005033629312007329285007547465971519122890420899417600142512819863166398639150862548385929652064447682114832178862338776146011831437878130739841244515082370241998114987054461813366617827674756512342574343615601468420328771874973377202503846407135826196521852636227698309122794467490951331947119622309027448969614107964823394268576534800639363393582213659600053037039588710583684520141050774762238223976469289937807068030403227110448126296834797145332717569712782266766046892024171303787551248715154478680195753823350740180435024660454421539863509983855042061941067317694844080711645835656016024699378607415171611115072989626713704388912702400484469437295614187252899358433139891355026190601150831843694122694118228837230790546670420216836095225125312821586607216601714327943014932364230396144585610669671540977585197057571696060235580643117509470808056696425785353307782964199869720207016090042771583787616116390269026611964436998233182868951670654580709064485812348656179752418464028938886013137062453294851979781802035637889863496085538097509740936687954054065598713863810427944077123517341572333637233562296222376900849181449500973973130504990187778611846005148804277098339700951526853108029122389104536896733306710628276215609316103645365701420696865612175417662539565720748954107278427318428472105770400151986618065382992005453666750816472535839380432696233752836472027914078679896005311224763994389566155363111771132115543616375997828433028021759069657704009731912942742001688789898971424502478369430924666333156480252458630231709771382079089688422622362799417395236916794141698768321640086642562480464895985414201609119041740252438874899240754627622498601582857307615247090410453326540023365474330061299683907042160892027620013769928770548491249531981885353655634711123255052533101129135391112059380530639979322212917429017705707444791378531212428897410596510010150836036563312620883862264840918957957120248155031871245475585553469784689584578368376344845958581944781556299711118879384432464371641088485151857084628084715578261824122722163916637346957571501237150314473272828296782289160284491515999663985596818284765906208165832284538984242956208082614494152466257607878984801444510769007035087660470433327099386924568691997151673616581874479389554407422735302043137931810020296712612284710702356003647691795598771362021314935889900871453623463610468301206958368784633782183406314336541555799819020705233040458231192093889644241515536415734370974890266051222656524851071435284823203044584760991185012455692703473477879581148741577722112685296180713913474745534151310982792814784631636342882039964508015911308735929686109478332044448928697838593710124533171069464093987313060384665672949055091260617679100818073298898167946331409722062127251979446858785836736008140380770683899624306298702748301293699822834014668370638578793471088859862507644922494269476423112509578704488389306614138053042020303365443003741150393324263936555018171585001824204227611988666542326220234580425023621255978051036356200242373831666207447678609390641443168476556403003113167931872367459000827115034217399864715871720353303866550851000836020737135434712527645783542692393327511528374470511800245639209125368567060432953078226108251995391239184262410424839038540793507741385264354303459034220305667889543655371471175120322336731556836117103570518160907922329061023418706691120290941876959601796865543542952650811832145165876396845092040797531020870798673861671966558721709584589872841556395664993862741837208638984836583899324153744445184092424361877952486401528385908005295900739151475618977964598291856507756128609314478845725231450025215562370628702550192667631880839099148083134750001728144208415231763849673573799893182013574838107279646336161342051103527316757310622663037944628522155722729699295520203144068893463895360236195317307958302154740852130292640589648815250118299915987240175652886312368522932296245520624121890006915694286855695252853362785540876244392773157834925712880287294344991604056120569315408417602308270075073928780702357790484792889103248902169017503688994952919453954607912947694959879338577020773996018079109751715085946221993104475458948367829442530281235688496745014547846985332445870260552540974497943990135931233835630083396314168775971138188232812776504100222592963142813700379893274573938664773333518293067094515489016823356335165120632163529782130863392589097240153247043724999523477007680702437788616868157851929890578200964700881036479479887964528878184186105092199447752476041145794447726823762757206696557146619506364807264021311024508384244608231460615386311242827511933753354461341182401841897279737837782819062310109120102632357871616256559839583641638993976135875986322911710696115647697662960901950488334227609437828601086051929395298296184434316520179716564286742141738705972013308905727283335468420060774345455878155930126274105946357621717828613077037911614463772473045756826874175023579127242893244214347731257151649409084561973085573282433031557302903229589953661734312253336986181986500206709904976171974978147025635433943906651435934152323633828569055258553254248695131226975492825271289597856562291805073125632300824821127762291795884682279581720985206273965805279730745229631905291624709126507180936981889992724384165705339917287801217998184023894249067147965467379600140195056047089646856282775883435827421627238502444458433065225318042330005409453526222763034821663092075081818626940836015217457062098088698181323370533182369795728750074599199661104074385119885905781999856301561855690249392466803511740077303553921215797738830846869117651551663174907700582705257478456077003916457061732408319964604276161040859862606231094956517092092722139456304338239668298298458143039396428157008096881803058581294908574997298639381221469819749961854251794851671481296415594468950451484348509223688229206964349116075162561148224610743676687244527348233247911523878526973786208269309230743222871719939156017931753941771104197087907814595385192663875193382254259637118442831169891497007966754004658985975238298152130545732050478002848917632365341621626645035447917183120337227730965821573937566012398779364696631900346576398055723617707980875496416601851690674219003742751167423952419524947308006943888256815319367078065106173981799947946049320991005056679088428747923797605199566679747680442808583086207424954007275798182724464552248601654028136949139016282253983997632819995205378085296650422327934434948173015976776650523776590795724561659763479426882690822583335610082627893649413272052886533897154683554724349086454313368803512202567544375867742055271855088896069760104453446395282701470596246600565993388561495941398070161990578759389521465438962373915263359173991714800386744209457940335404952906857632638102034428794106662864405436495751720697580467967161646501129890465041456705159185567410829983252730576071059383907953611934211571147654065273496240561312070131951336233005616247930816719145718524153095803034794175137291810364477109363142326610201524684122257877968303324083164379777298364948295633013702596501264435940623829311739518204614016160167829881965130251120208163022336152253733648346680429726098793921797562873523973077487278617102391714788976428344415546062225742579580728362280435765515806196410574162365660599312516220181235758780535656173891117341905452569981756356426448985131884825585040459624626614563120069052393433179972378468586925950691467353722343499083868706099916301617281607702987558154849336989013530620329317158672715537339910394597555838375711100615527283637911686324735658431149119409922335230571059858147388953450801309186002400061172893015298409180971068658611744514597413621839871753282642671098620373727165517875708515565213399620019915896033213511226014112580996564308945846141028317173063487657324001749491964169216778118389995908344250801126432974013622787564627091027838243566047499333094168484915402014091838388070339260977094071029408966662649946417916851488287013509178803721441442297711031340562214902278619400260355583739621325830584931442907094330374121441319867786550106345730245041142177942761809755867232618370082487703705821306396727858465323387132948328078728909039045104952982356556869842260879454275949601325662367062408429610087425171533446863234308517318484374883045419194232012536565241554337669164486880993331794140660046162567000013162837963066638424278660253489883856950357884982395022581208041211696046039740919211152534180926842340005900439034910754271013593377180329560864031326217552706053103484527621893336532067254723639115412581391018608731957511268903217587883538285786925469512920072178135520861209314983288073439364778263943660572415928652714523004711745919433132555830119635973530104960701858030730808987916822845210287442466710647387041588671019140159131815499319784434014965659777292862974791707986960560713945961654294216875027111420946176087898610730941695852490457503085036196158970152294916732020462074731800961501694821549806269342119414292069914630363417517057893769546382899853040017122329386661964450694900833692127161962244199706657880759077051315891582336255372195352289741722450101673962159274943875958176556122093250465545924040993548757059060081499517067446399413741615294919074388052441642552438574013458785627760668395338026527778728101702357635552399469181703118228138018189551678426511331867049011003677952131942722591549905241036741485935669813629830303241937353427989945174482914584540442020674632845378901859519054690011620515667918066788731906284148301112103438831186617644307381135433074964559707759212045743643224791586746393541794609085024979773230849945337666692924163524882937823043851385338972931198021746326752869422310924518677515676221279973711059293013656453804486414198147257256162129760850871958044626660389952328461431806570881163736823319725891615170162362291511563379224320781571360716950394016546668462826947914001039133510087494022349979393391251803236757656437397779669563179640254680669818051694626486033877944319983938764722045253486687124990819673607357146286739522889367685333019523886440991378087544563495773255847634578804216927285718506319201403743358630388474212594634785892429991236995232126740523807908372125352986295570321021333516018433588163220080022607837647324491113715087093862333339592001792060444900698016161943529756630643902110576111448076065583148849954649606711465604203792843238662979583820938361021065187660280740615518019516361215542158669441153952769070370482591679941733393477160582632464884782925978960219115866337128525438248892576579672763037003495256606983003091938447519627440440146199654358853694282365088098955427318226196317708963245122138756528805415943106786304441987991848129508489283564176969521668884793399988989710616585472183788308323999548611919013551923662824482395617403059646586690245769863842338000597847353296940255617703229241457370530527417115755335280394752824501989888100859758367211725801681320573976186708471970691920898409384816232550252766826074994021802643930329395173128157828251240980901871811078145249400046999144270831850653230804796102963914605366808084325477280039645851079461439899806318575593696989149050546739275553305312486720314916548456762720034628889139613149708165753054740250378715208705012566112390549306521686155074820868742870258314731169955705850959663825329124681192819532946764980287237874279887571629240473925641324133569910353551406458052132763874139859449804295080894391161105605927437963791511877486343982262758457931249449953309103299422900685939691266195384296254666414070118873042698266257598224710059853119954601739114029874410238175920813362238111313712603919561885648118347272219333451135687425276213568046234082860365945645923888723044326042180397212848498103760644718772436451327215942275414134387238768665219042212528092093055168115311765675393470727657087779909301807930631032066792500860940390510214475520657446823562549086722629142023149698359345634894475142893602351588641369231642754315252967624600684887909035741586810798594149387057469599703439391093988019311375996504608740385062220918361978886037425658358280988109979723391243860286883097792771188501369317772752489484922441574245363864478174071899128292432302147246595243493123125256226280156656663687886351918925917670237409276395939245512198058433078124757317294160882259975135803229836484941383948957770653063730128345048597103056596245295531692716532421645021493998529420095425164814839313885802718610135481339134192058189561330803285863438035108789032643240386160815304034834336272579372749515269348788907518278483641565298612455084569738872230060154667700600423947430318267034281813284270968511803658407237831447633770661459510005548014459475461999464962902853721961020994166030199335090880959122484777089965396023560914750464508932771016313339052546286288045450386853845221913280963135760035728914062678394767843742415777698340609303437325932636324759977465657573545349764141694678299451931351151767462382825365923389383694844816354981167546825745666286328375856696673934213343046503678179207920211667033721042835030281144262717644418731367686954923990611481404481908220472829279768418268581957537271903108247843092660762646873309033575289377824319122869394584578327794093973224839806039206368709292540935178307494344345701907408320318320178042182736698675097147476308230203523901606544236192309961895551108525269241634196540842763275599562534929232810203586328811723386920397064750991115600693657884873981550945747838541628966976806515422722805554328272910805692740957130210026772470662237812183778517551465133346556898863622376456652940218797328604336935619709656331967700585281316007979127339473765702336376676321474304189114868569692209077669060980960213816648150054772238850660172801933938998523602227223008957231425520855436015944607773185038406329136233421619551154721505884111620842994422435712558607340285839011119890080824631973052071818309824615306000673407807635316589991123077167543256942636017183763347161827064263071588246484786614915821998532258037341772377182998689874162144898631945058140831276023315593033731330162155900790446627019219225869630261109311304896854600945124149727943319723227860386915307035829603872466153435748359849307411652536644075784152139110374797864472082353170902183745735517907850585704295714485216488496746787542158696050336357795464933116568714788338681432346209604532193517972828696354383489578353102051347897150234899755319476065644306685878892957024307508811321519162735544054492303877721715150308703039671364650668233116337164122213165811205134212082204049753608209223575261095120124420261698516465225127551366876531974194282435478130856779266943675236423101806012249292319176753029610012648765886972469429020799952284142515575609128021560276499336581401049279790603892262649086188464133672114615716521362754525049180356909004116719371520811704882299893954140499951829845887800819393739525347404605057808354483878666628161849132000964436920101737127382449855371310610501238759500944316085785632658574943897583592885891434338353597557385739664626329719673871482089350212133513981604019303606161539671038816521361945031619834412885459486622705114814276536012694375731423971339878906486453785989665583695542357704702926297845985356337118983995612771248750600474534654654054956133839364930297508991118593147137347148346838855936612082692545754497912387260892833597075569025828009795651793862992943798960051975284471615313024945992411506580362933245844226842420588310067762211410762112765603012445538664390377765131465852083755702004433934826412467935861589230559084507645831055948368617374235652642832380510926408139190600073374775964864938592747669437977202257413962333843774903367881352809131188054377343038725543529592658023598244325024910771167494638885893418724495136890494076804558665645332315357382568324544126539218713630507000825610287989129500167130445659441591288279148490920294763874829694198370861254352547786175330626159656464651678021393758461886255925089698558979924576135493301889733006119225078503437706415776206125514496135028057413298957270820004017899552349098564070770207748741263881742963178088187412325837533147435547296255134873620132132844879109802548210976939784851473428084424293774090696338779476703724335813441527830978489224747256864615089337688655732461621283679574845177771556774379981113660200355145448690501560685813038563632150997729982593093721026777289667353539094577143806619641022361989032913509695349918715819043340272501738512865040197826264530949487221990870447110007092450814537944953140136716184059614646980804327564843033465419741428990243313246911252678034206278132772013618987930603946947479612503772537786745468940035642089335135618767876774466444699271711457850599029636524198160440732411593435816270036233083581329563635938243346192604377984555289959137883132574708083850257622063540845245968175055739291953164085299871880371822254964831386306393833143679670172002171240856971017167618885303501924260246841342306191768815313267616284210846612251805071777955840773887646704707711190549468194089925540580120511086136445613655073328893608267594417623572427254973759983181829020578957168296006892241975250960184239124220189943274829234518966290194743108647045441180872747899530863328485353332652568799321521634331211152811066816059948952510898009191568367204507444722892949743784796104295831414405096404635769773001605531013880806716809677372734538918793635552758069976731723486240048396524144253222333418511886950997333921060714246412722844680567236217058396237879923516866901551710824175025898423918927958435983150000383392115386496427718871924978988868257593298515356106621661341970863179306680168818472687445692894479502339265751174131436005275277659012695105449701754584160224222209694143790866926434664910454616438091897830802409164916303974179174478137164586120424960085751788360052786013847436723276701885601436226282353975759938720430427076830236882289341129271516629093685084896659801355067826057668451942119085918490161462021125987504039212843855402870279330122237308187965806230427538144028272989411871178245171625161849141711029456601778694802118731603418789302750366699530568073531430636867726876128218221895165412514601318191776506290305408422699991608938919799412621021060608989453994805393334754246558110055188652953935164382367749293902053636005182748859931578004404290919370945254507266209233988758550326658876595915561650220204372741234314552004721866855920106811191050513006874335408587391647896141541874401388581907534804654707118411842092275908228793825334872481259898407965726081982152566855807893618273860777570401967671069072091101812689923073892182294016208162126591375917046218336003194786908944820235814188442579787967857891149343609253103316718098070692846868374309982834973472643914653660343478668846985922867265293168257289014017741790572860009033512429770820827395256296538880596104933509512182032555849820625614659012726755909558510294748721860834731771190256984519358440753503267163615695754075284426246468213950470082200784459470347927133499266945990899881279800818189753222327227387600872156847411970286748753430087963708969263643311758575330643278926824935706428389340563736026712927987943465988499467072808954724569498924887625026056357544683206948042886463516568850094890235016124916729609600996510307980350366567319179757203831269148276810164902655742944250752176838714865771814283580896514153516119170158167239039588223030525297051510219813101472126564514921686193740561815640046091955049355835640587046990747092552631377944395034694615155172226633554781767569474728703437606169828336438684698360740943551666424167280159535335194894338602896389518733139593727522050539865812304937681970627507581098090863477580708421027222691929141513193845264971497140950562326873174480263280947817573102603865259306554409851313166533785846146563904932381981007008899453142419722972328060106293523059521182666573105880974482837729796177676114925990738245078334511919459601583481849837014746596887401147739963326660834249970665334666740919071186506710578143841879275696655721530604594934409653195697536526332739391589033117685377079914274668959913077173179837392639881419747567933596642561776893528804753919167580420509058265311661354008420063910616669638696784468596259018384272259795243183431966769560047492427084651861204320792823619036990904934158319707416222429672562609642545193904159402421054098646060021116724915318972360691847835050223692770124862230976190555192629504751545813150503839079596719106578840413348182450194379972729818254587762181502126223797706802096280033438205402253611117471803182753641031056741293051350404472354073555689398401445401850357954994380265812192980296606520544717337683746826464207986739685817734952803178874068354627796091567732492879633015354953813635377425630353286592112452274752350713679357955394253878518648934146138075097522610083174991000734438320722662586078626037347651827198541086352771250472168613082452863437630637901873945344232109784603531932593458515594634791930548684004878369746260399674941531894477405968902693976957554085583004397168866310311850187435775139868187651657375976648481173214399430864769095419295534055489009742071976856600285937007974825007660812051789863463494389724186642671161738064514795257666009757932901710144745448111456356441719297412785175584872554550457898898481678183702913914968918375590283198996237377746984154069881495132409069807676785175081370710940485892630202713212757270738301440680829702337362573140099085429429721016003630093952433909909938804281401772554764474205307242728351196846232098409691709296415034860074880845161465806591784453377027004798269488147371939716730384972107540030515713197297878344975414870983865349344248436895367225977727350219660046476060607272640430682339965323664279899450840129990091890577872320383818271323805180235902937484312059678317471063000368937258237118402335232946456193005413421242734863562870196817599714992083662576592084843294199912484503113655555337706933391038777701208863687792973654566553306643844634691012989551732269920542876566609466152382882449726473802733210062335237642525676997328373207219747641926184748198159678939867168532936129935039776590559440261133380082173295473805462065745499689427967065499761748884283549973078468821877769692004428267726436867095050892115981129441823880010310224478025003084738246765339372085588338658177543108607069449625523609670844635050723224887120375197981452931850744880205044512168842133157017314004919164997520498074301736602471931836125686348168032735187174920085860686251079727151941370082408023372181922119156988062536747768720175823488952408651127762380009478856437891483975298659982029721622733760883771621205197885399474511848848428974042254194590857238728639656827717225720839046290064131158290169975390390100602640763746976271687208926156575691683986987597393738133833826727075939422251937467023533258969072644525700029071430925215139074622776389188804068678125161859662463413909398921781148887540316190126381568008050210697250451427821146116775414189597913740399250720391860256783977285650570750167340477599725165307799536416440154196959750912837180497496882266120609031184314964712099745467581175208475925470734822332788272853439911211117260679206502687621260910217665730979169843332382238655886218475159840874563274203613086115607697435156840490944334775744564668666013418839323317075302645235727556358058275570924935040331063112274555476261146552406137776720196706191371732445207686132004977130742094484891020712435188530292269550734125625962809135142386850898935820994171750824206306018795666690642007729465003932776588757320575452769923118442660538768560438090004368640339198072298731179583195183302736224479113547577036249005803716519257802665042434037308452731835536721818031331630201970654514106796884712428971951314631206039224118578416868615499132693275890804297655746792139097731511835135337012880166561539871873190728433679174806545700994893714346700223447993534047688385728831357370371801664235610485972541354426690214436421973478790689882711845499241477882447894650008884980561978503508555702184944682647372461294390897822196940684955776631058600964005957036328864657342576810384263198314683249897852163477131665010303429777494749025606437548230905370175174005168888885002112339031993657975758735206106219313522473132978116711208940209176427142650279494148816372393778449008892134012982652193062565407209904760783622005826378647985697879221167090478821003647665821850080221438404086579270987366752291070984243967631474282078512952774830636238254354655362959480852884615704363612103262648811771593289155290210160511944203841849460720974995941427704475858283646265740664648037271258551670911890906401088709866236461489937891385157263871463065372786773528963982416750576603593990155409317933562379830207223057705617796064322043950523093936679147472282104689669532419687898934735170364849348235249455316122582892797490969649040250726118536660756697507914110774370899700006793914894422889696853811977880296570841686403336992479929780824080235757025711870901937085739026194333471759109314596173025382057661478761591247497004532314945518872717437711735843222933903585792202425159414674474596997081085790820537750226933566296942707544481521667338736082019850663338912351630320869721470352062644658254870381387614299375508983100808231684682744979108138207342011702789104080490862415277719346761769504245516848424493030726974912312041259813343664826116007606060551863418990280020938221559517997722729362993283849672427758024602604215221878623616270814203992316758945037416688315693423021681507997530947919412962474754728417049289477401498393602464663680550628143997379313656559834337610711174732400560334844095862693027154060708222159762245447656011296212632527407894777350091044823335654310709556492202500108538534907985093521921156238658037273766989338865207115919613362264083674094715080562504566143831684477163908107606130326255160436607318641050473573116219024985104952450666469546366537048845495638647385861108723757835830858637331994832998158884535907262208869204533477969668397589855612139807946542644881013457317886486654566712028365722134450306213182390604633173225876950189689991816784324225910651746405486548345009181702741881159730732652221393086054255025514196471691123124177193417563764524872589547244673416225041157645554320414896486242526807278008324829702579806238229150032184262918731975360470043241047654978578318053063020474208771906282727430765423691680087691252351857301303657880792601591329343783980202107879067881730106424996931562968554194732301478846975097651376959135325444258200960340813145787155276960883893574241700961502218669498529459408566353609860548136606535976197771446070145215648593439873722630310622876984188567214403152241160048957645704752318479371297858353375996337055956484914573168099219458687211984166773718201071829301968984420190740523133592987730087661050221389754121586637340292837288596738702856107995422282798134341139554143913303755434642265313160273015072754858647327435131143615853535751000342712946921763777583753927861214546593723649963943277444675935539859262826199655171190768140184873433635587511508982171996794729539112375166731093884269934164450027763116421517425177065496732871963540230460346180842228788332418027707215927025643643794748199715779546996729023112187348688399119047244983786558032858299091759693107404790296494792071517249932876166975599717147132158478187275562261202530397194854218640991436570612972059265530270697631750095006833881479447829155105951797890767260030943110363062696907441469683003541982685126722854562223207346947231357728278915639523252653333377181879760842639033503358024920119504471246844615308309140133090701899701415243948753774012322097965670748914762727974850263450965259564177094904304341977479627940644056683044453424798752708053478471021082142448907107910982648534645645273429075481520404793468438547278698319381018395359771402554291167763033157571273790393759799469838726531431279875423856233873166690349301849558206512907780665304389375904683938245936583238701320319801935970860024270371885067300263761573288081212078604517846476488729806789304612740887412907429424715914223867837285087834956199606941180594219627329904769318378767774987189897693175989000859484736403374144221832804121162103850912258936505216772380009398700617642406643814055328864807672898783100180955643023894601533677131272885268581184387992810545965531707928846531319208754391304524482482142326459470567536544883183150304108206275504445518379777943519841731523703297655765637770336514376248112052617962362629354771202229255286605313267561553035201394199658857187112062746743212244876899417604998756685495640670959953626510489817927763143715474511457120264127167171550047814251622993759670953821289465922197850672280957431620501169869994698082181869204361744708907228094162877183266318315466979306599000053523409714212887721043575003940251713216521098635024618262640792002155221193220861539378048593410461048253493255721564731221084679958833812840848090061470171040676072695350568353407997651215232985606247978365263452980869447064692536047085713338636058652383571414719164524545045463595923839104587837377910698095742336415346466620764905858059184694494976627404625821355058148835697909156443158275106711923478914698864343473603990681763170812194956644935464178135571580945210817250951694981498179157797443601702579114036642260452241545065585715045605288056980485142050032580382543057197058766237616381602203108709475667220205191567269843160225405638399556367869809238471332755855970740934203577343106176087762898387605612846486449492179457129124081307706870956857421639544607313036088689291297383807806894380760981504855173665178549367576869678844726265054696111641832018304484575898225037998677335693400770980367976954906028669907490089968546330156497287243121968541792389048965619922838696090492709898043718827873477355512631584561632237230020927180259781597600057351114095966451331235842963182473682146786979903038409306737628714918965218190575560303381676049500593907642350542333556399921126446606912504218670662945139732657561511043824667643421514720653276622958891195734271086406517313459331800611847422299624416911711394340641967051664624169815656562143681550134710223206288112869714371246477507358804028817890123592351673723770744009451202167223320127120849378909651093106274261614494769853250181865207518507495621595047787418320393289533789435520372160316676337818494183729753974286181192561912108966538598831590423229100655189528002809561055599955054674286103188981745049177093992819515069004681005033898616755024367977315404584577865858329885120183933356488828250690445962859480920232972537232070837255931033712518192795051648880776254075836279770761916935963754454432923780179026321380516101972534194022792363966648944756182096699895211881520329674608211533327144018086771025001392768611175817570270859207289137635427476841924425520722275383631601487970481748975444201034036014896024026886920616104126640750431404980127831323544155741246495651936322117680964305594040374382992494926319627023086485565561453892203850238511438599514466235950920930737391798268237180408340382131927826603269408762660537574688713116450568223459513523575479662949536329406185879898782773352120295977972754721699044608548777339278230151092387239750814559133248672034681173867758245850844267649657857837091517600594715248361659708738192956082014576617727823779604981090063253108915521316382588591294452205894882915489862038927072298295505380193326706102893741258268362879086206169998858393547768864981987794511628154286834603603060287186595878015815068713799689295883189012765646830317539152584839558168644734279108120828042414173676234217395037862124243928746814862332011239322102287343372108734474596962948170047491477402450560230809622166019697056203140469437139148406594964593972963611963287434377674716041097808722865367345710596351005233462156985557093776586769579290039157515497375885785998949413742081404702980140343969963008768644403782435520425381681910162519297509445732413934674698688652037661183589360487246134573802042674867920373103404043743674515800259774816901278699859407424726098114460537312466415824056410518284894646943401965224390698704241693389620859704318043247185331539499421472437731453426589684278628958840374196107495561438644344555530325946424966557462248209550872366151327320291984983529578723173827544154111463376310921594842194259201450981653409614032213723306199827745599169658981979331638077853965497246946995096862838983789222376001113882525987416796296939489390304822497274066380694143747805673672988026535485774909710067663334874709519586384958368749714622198865220900535364961270893405783124712591644972656742047642146675375332889601098036543513794638546043402302136996641940977461880614604918935907358635143985535811722614179693015986344144579110239946989762004030792243995246126660730347979808548363333580671404474602991355470467350485542806444604721104186935031392852395746221329942840480876610801079828552156796263084588545863290186210017635727751139766359477068756010402757553108291561623296646164368246595754761702931746388556363690798789132025239360902673401885678942137899020554785345914749151468005284155552217114464376245804948346038720893818032119097696068469305581441704204100471745983288286915066244574007888707379797705641146125340260541550418840612203642662777264199307906371124156554633490936816839400386502225754510965697017912517391379184524846319643033988426293562871387444445180800532397570953919092026951023552251849038223104974088360650336015583686764922390252881622247387210954433769607815749488516469565875300941028627526750916885719536040234271938148933736965835191762491922833852461826114816723944965843823311687152593584371463503974027528238806388598249411387802811975596318848831632808544299085662172897853488907711148137016156937175159192421568067211469311862646795159223550396132053382226389110150989435436307607612250935782076463491245105025019911833320191466878169442388582998599587487930805932651014425948358499959190374891185298575609236317777319254013949660000562598341790795128460115378185477839516237042030850042417428647213138521101302131769377969588278967315755295029248153688806166719019122832868612781805715600082682708358868859810901896686449454122216509137676477719503221000406565458518932050722841995757871798484039235004987700182298557551222595034721510838766835447242075185647776923656800719616442669276430069553392945149205191749452646231157904097741705789479608049784562493673533713684428206482528447058335160481289550567961511065649529680477283638839291769575141239514910593750868814690305868807439432447742981908934725030258628978855322070685976962044273994125421074110579000888033366710211208808937233483745412066322948324726123232559410051967989470582237785016487602754742653526248080160243512840680957046703649229018371279374648074126435619102230964617245762813019059101958208605391041618051406602097076502320840314388959059369731394119538353010562423189360790925028505856858612623957517261321977511783552594297196754096700825369873356666650281013546273379899709809263724900340284860989648671057711465758139236411516890317013312890432250410386293911326180469351004564381484415185205398825668898087608050783231822286813056350116667058636680292778554435319218626339072556879060172774107480381986135654964650445734201714648395707927037154476293597516648298203850405692973044073500853705358910564478850379832658192379149840731783798487137062420121062457052900829628431735813569122251682188669120643498440644907213380160448837431245084998113193626297657706949033599865751016763162551394337998853430114062151577473110171485345326735773851697892104281683437540967083876539957912831270763466655604667947386145029023225409969353523812183268291199559242970088995413339487381704100830641507901738416623414946176869975141887624224798945217984100314259017121179040002103650943187665468292124264488056956879705120940372886015501821489654636564924654967012797912405420758625303673468778646488766674235421321226951013537038865616722342353433311942087169212720162391771371686057562329419481800837221520011392649674158454914709200104068107485746287250106030700285465453463811211625490965250261078360923501662806766080398091625244503765767806154937085520451187410643697774266103243025361963567128702619280818906317392970803181140441514118136222580427504411959272234523824323167254531975902616318616441437227873076038887394083312216168653162302207374879864568328609565757254601549874393477143072404799254607127429588279690257563185602081349681205095243645072062218765799185354092897631426078994311132870641207715396799301596296780875327119302389344180610810140471755581727802548157488866465636236500790268531649560356412429174184731102107739753718103109098434039530910948606187299681926842174012121215670512384906134391003686532788976237831547695467077410016682664542721974749383874214782628601999858072412552978465766911364414970220922775663906695410176962837870735567234388577387668224545062020726735178807852686761821775502245016715121117597157699330524012376027282914147735638443714340106699358014238268496797743334282706199307189367811163404821363636916723921690866415566388474329952555312581866469928686146835204400371463103350434201827373845960498701376546762241493890504416413082054300388109635632397015722793576477417156366919271096084843337482833631525897779148604933901306424983261409025946548084129090087212474660508957656439209290105178044424848848260476180811446215073595310975906102951894151956959058333277754345138932121922911540553043357218630632089202018003363222599131441451130149840196892906910079182831605583075203967810636182170473068702131423525581623500242889762231671242363445808093018987839445920065263444660768687669060196960688509171351255084176148197000702016387602005541337299258731160175005422172295565860142521049131148574836592117573284778929324138926212038422240063117166823341406283932635316579686621634321229550318209792409431735720192904296229178001841705213517476721072012959350669106278769034538130246017635444279456645513841514585925815525874439289991587892837659846405137310195579681974853943194802891071445626213007364355987268843975712372149447565080111162211176035475709529032712225157988708469027732253186841338388671770331054158108257790819088424136398335255387105162542595077654168154651342081739163819912946704975132275377986519066610743981537713577294643771127889013840595108262680858883433768454295023392543304433789175727055503479110011434005921134535545023670203074374105891085057275256828419386850703197798596154198217082032793724692701858265955982013558248022716132328145615581261584082886015842672303977555738576749867412715041011199496135824425293515303957048502339044999959359147016369724646542025413190916799358114851678118482972404760489708499264549787487299799662163958858801527990155970551085220011095411444318838594091142884955832936354332373657287298216193534017220286692743716078616347489460663063745379110985207611796417105002415068625713249129996598729526820866760398679364658225876095627676296884707061449427883057778706795821838207600322851482651966116763048407353007625793906004869273394151244690911497900933232478885482039215260000308192759194556924886483810707242403848783190291539205622541227698696250122733777747140478958407563072046781828702915637755799275186691793447583305211590999666239603693827443811742099883097375150947531145620103191918685390504354001901369737366367764113203102321648518612889484718576873186386208304138453216040410831564597529978832765327653237400174501607352697161710123046098746969646051309639446595107370140089599099375044969168370561825016188873990132149668458113824860357080292606761515202430484637785864375411105678908310168588400698417057643901407070009496334194651250484879864235925921928556966765342769355258406560783839383933871897130119176052577260122277851842795515918088685013817507679146196471499371102085409659255290672568034805664174701879962985457923021847414198304192215604399865201136323640089251232711698763436407935598562413371796393123929572897112182097861360173075349016481262349899603830913070879522894079162125183641292300295388912248798346210904031397288746142172708368281100476921246348077577174356316164630833029274850925187246452828909200678032271995448629614762765654997398510342170444604581081879738353039988886884702376746387796195308520883797765885188244719162504809566437821959794745892722826642044375128820435412249335491971477051297272183211997619176054200400973979688237546881602905430227981560778758380286648998999477315411443756099078875483805667811700295141419624157142552275125213860236024856294493717255668208671413001388497678647302328018163328567584803380950304667034244656062225283228914811536169476205402374008687502486557654645686578983090468366924977123473568612218828685190851600856617815004107497734061936115662390570731009999146548707712412218794235527148705852043344965360081060992377570516995152099480027535501993910628373527495555648633112999214377849578803447465031988158265497611177226916074411537020304609297206108832888139642279667593814703485375551818998676345718454869934405555590078095717132635559297052995230306690850076749966070250449493541344702549101197889297377444122065545902619045760610953358817498773264525995958584670677652407708830925988937770984590554571802124848888991281871457334058667219146091463382828408876466994843021772812649858841792315946558250254667692240546403404825074006585390492001776020586795130310700327622350178582108109818572214814679221867135050259207189229254577459674599599993900727033225535343538356086121645317362064081566499901407931250777152473479061458477054388445251690977600367777123328179601122914738929358914078580218345196369783111618936675212434529094245029607884968297942371558319578801654895513279011839658832314168978186150344943295419459606656201833831140395578155678480847844860865530633459522786552241801975178007450740618793747335903789760955675077891589871348324156044592753591708507246281704203895830053751347718935165975534256287556508672097648052719306995617668886158030981258824763812405653913812359152770130904883799895523920034497210595732578052511991684218683237138729728684238423805244444835691776678562636759833936154310943534421812388558078480150683212428935573393637475853742804774997508467180371454545757792122240349150133600282049716137446092575856351702357521791982135849963147689235338800295364373507276172023701798163022977915407019100492883992383159289469454799932438617731614469061419356911862308842764556615274455455594977111567022078141691342299010952302506019645499211084930460133322690998409343870389787488849760132548053924878808469791409017432581837918741687114205870818060578391637242305204614351476010690026104334112331345220528080941283144880625170245808146463093651871710197518958745780664831831783095049778420794132727879335017866532065161738169801810770681720358722398231071183701986351635449090452556242288960336442135063646807382842795047548672386908142536394559396570313049586609162879344472088989392339100637776573138193842547215487661731261673759027541035390846020846847053107751182516350694380279434180849089312177881947081583215326532368256449713731185311220112121033413052351353335813045388031928170331352976193285517080612164994469285746198080207028004855111909447325919897886686272184966739179732973554088718887810620214646130138258104309795953223506901428561353534398239789466450626889347069838443551816861887089159745109207455182581640560935633509838433368421682116632957543168964415999042742382467500159403818598124088325221401699718887377793449274144578546139882624216567657331349468180223575951107477660291089223976904910859411108034717971839393961883948306567110242215119430094820368143573215469920097235235769755550059821363831756320626998272741902978148700929091170919634945317653520146701486955391734795084674366344523455598574467241625014630567815147779877076460287643393835899156905725794420929881087290138103464037212924726172823755531868455941785791511769229667101729452281788755540255175164748329049847095989717734762811583239755875314926723819454003564492523975196632083262931562991100342701971966462057933866202709084583366171926489658359641547354999240628116577042780216381310136627103910080654377197589827689789757262506101698658064270506452518580345760149793948655645779924443603501150224585665593145802152095036755490532141901135362287592223044685364728170182144300279993528038219347228249362954138379105958723861339573194489758537766592043210752822940824393747906568517277982092215899561283891586597965871907406713991984438560952936443437317791609273843943822684759240381851678716967665425590929243062143093369426933171003197856050605258087868725763877384386794859212014820766260170231391181587367624201860667436104947424043154832874447732941990628606553924858739940655798592916368405964239332982144825382684982244256075062499482938475167851528173737778711864442553412368614038097867884227183811073369688314335844884598498857089593804514610094058170654255650645539006606843870978418224048647609852086128158425368076348692202481780922948248873557017545488119979998354669823203158121467536070425750365424029170834268439221216325643832030054717466730732605143343089209447385982783184653160680761038605674584658258041676424580477264339185557419025183126525654467182929947229045539205264781067508586579175195421176165661738636202359766481364126357405669656814981810282585945078257878985969125069079644698031667680378077144853488617865561482053838403009263271755540743452605119194778412457728992721429903322641801723156252156948683231792853752951601915382832353331491926225673153900276719237302185451511734242560554479369760798374788723154730335978133806066234047257164624657633975286670665241879046984563895891786892095157321907952824158281904121776754045573144028568785775810841384716978587250454453032418972109793331194349454461793463281268923115368655709639998821790040698071637329712085384368948007823143676312270391248763377521985157900687586208764307909176062493123162695418773650539887377740098999381363153079294200890567616533241532696643157701128395244047277323816300247212115118069415920998819165184209121696637703391040739027630015829973759308523971010560296969086092278009906128610236624102234946298633933864303002109436082754312178778091234192692699976276323360881788278376570986900154536336354101976463214592507544776910660160019297345306331828076385616110007737365354257405414979693277051385743854013690296453606875236329429697764764366544114201382337505368881788496199135544150014983219400886178744751276851832159552946064459046638415870870151243833070650439382463051396427013590379235000972959154254333548480882180487159073924120577438318465830439303218657221760667873569576596141210962841721331019915911106436125420236586587577964471650266654246352402362625308568758178788171590586970834672157023761682020772071136419092620749517345422782699622940841370726005829589100786063728508031017251717809285421882687951523552360366418332184201353206364247350619067501663989580000229446560789492192254040072100292829201625279167414307391482272587303930469937587796353367937211694035086514763342306292524757395584067130441322266561515341275469640292546828702031735838750535638621610050598364535328811243171873483874160572517683365540792699035447176741317770667128351768615848572508976178107337581273973754399801754996156615904483784152734858727381586813210999992906439529812950021419353945877433104863631385451679080165181829379152087991485976274118150139918013398711900244941642267822043148528148838022283847614191002478894186595066982854369882867915021803123852423385313429693631375011249540138091451951058660355674822978271563022153525098891493236481749857511900430436722679748432851233094689268011260083843353852100911216909856123359092620455184001823350718723123872792935667267701336404331879916740817624870547322161778075894107467929150513587111145517258766490134300008887904177254267308552117541540530807261391532818398121806111737476076112635695611208676769740532646371475536563158476700387448166421776114096967621647127342690450543003171771595796434908963690968348960941256227758637125348060411222654730446636757014832644455633513386252925251801363768670843474451026166976163813915362336980820859622213067501630910621942214715975365186098060892338332374703225093170663342827282048942560272588081992483565216785093688588237749841220825437500263246769316120754212840470947812108865435527170918579514726748284723975351793931135121944408721207375618681945258789421130631193596258968180405763768824471046159030711390386069537572150039234038230317487175065968711575157266649895148577719539863354579016461459862331502797108040270650509069966897246313504870035312003441240068943039547628075950744678743418676782236439671109682819809205431885259607361522803067356861606238889664786840645749046049579918803350013674765618147347802515438995548831222269071953257386057747961485732791360334060766209257745060592667186911327465146209825387840624182960062478289197258147121831525327227486904138916445967383457323005368921630690205546939928721061043657397844316764013734774900800168325794549978168629716852386344852209028022777900147228247157693422899100440771253405764761957280304837532788039373720733496470355331826522107690315957757714234595617658704389221428008920800844360570583811564721584588177163739123517579838327882876340248068958885826796903787432018651832644733562904720495433289020568643480417303030491225981207249222932612628899998620456702168734974106085739132730040792910380912264830834916369488626281862142030801828177983834594888514402970708789695333897327440146255699944736726140533779481984309757717385805529792305702366223990702937026047498438778585462823771869702215224633887507525831259950045916879448871669101716117427484249201484585281090377429056640697649891415850028758209488616631275211280810049934565214455930259218958608293600424700505419938567432817106675082913048201250650764761635851747796014118513039390941106244638698001737485459319282545735604013503862244121366452940042916405485892915800075602946064631057065550097301774180214854673180198619516375716780343048447759895907001892100302488852794059121956586525020646015890008308867967649479400394056354285184983101292013006892256048619284866756864400655986655315718700153226660121292855406348629283465405537786122551161828013931239222056058020888680056117520599404932825868957824364725884917400605131881738948612650375604753021663194155990250557955371874814970434629186392719570520357579209499719399977158786010377904310319743463831320656382453931408870182785169224439044781810274937540895548449865366035815344111676716086591982986022030665761032025219978493645578643413620809319143538275419167828743621217744023987812373924333148512344036961248324692121064405921239222579339350150587063270324199255836611781185444140074370843264341236044339884029473121158663195694198059847321757501912875189916121498500346583230138657264291079981123246496596648178036036960231198395221610535161777704844429063822457354521286226930156591336424900593832995597826658293087493466478898953543583626948541173626383835341520941203557443180265490649963770962895253440866855927780993150923046779213520274480644137177477705605910764878207729621821007683871903902817436222278043719811608975920374583045413918925237137371227620477125212930799907389191815161789230656947469308346411670421295177986002437570774654416141037201971728124095379842992670777970061439419193560004944392889577195280586112963003034998989668304140788060066291736527062392015757521614617274194849518355191538012729594643051828301965309770998701549265713976219678537293203314045038097993549079116536475336352208677041090452363953688271846968154784055633954084838915389261035172646816500135932713193398578469729365261118671551691903429088389825724031908115265365311172354223675480062435103807241948237306736682376264269201226385979986755940012093037625151219917861719897035314095785686268261328080154704634665792014344691892280278978552059617241865391693120124147662482323742692186682953063472419519517786578692158285101549361522232445807871222827444627067226681252824999644498290671384258134434300691967807168128603830861432686018506987240121077410253277624684947915645259399635703477173067943603174497742748164430974999945049066588710488954152088231118910266435162745878470655494608358349342820698916251570836099410687564948231812108660184630941631747436750111545200492487922888397591206335640783144281416234277659414755522300864049675810448614260146454331443491355299855313986468770510481647151529551503583756191720456800831907907120687191759399577936152592971025917357144921997401299199188466696781262829373296028844144322909096438618673088268383744592020325549449014305398600250059932949231957955854512206512524695689981918975847028774324628209454306837276894254347035433519747193550656657990897643576617961997081391789474879747743878633201238222567228663018116020695566632509492948604557462409626522515867377872766267902014119991460269042775765536767470964399689489150490077284984444457529995736728540708553594256641685434144144406336664458461139774237970403963434291739105318399386134835900241999224157925952259060745955864110808074293748193955884654405392281607144094230953472919999610411785021417259132290164695505611213098637511013142045541447498770484948672108111857624772598518723629751632677309517225192641146336384621082668090488735729015594269367793542802359572049145364695662034633322387006935335495055895381234684218144451367225080450199466938053856896730601375181643873383674892637989224177722535939182562936407999167619519830405104166848842713843680673076159771809155575691582473522046415987282500649662104354126585745304263172437368786348586931749690908115941773578536725880648025337984340423542328378970595396191119609446635693886681046634883582931663315423257639037024704201003790795591638062205672450717081579669756824893700511832489757196209294976447396765116456073406085164901936165247415318717387109254285580840475360803689858536722941998551310309482053221496717250762774666958898208491973788672182384122320951927560229088182992012672939165886998334057341388337457794874200011031774965266664333692547634257547779208732321630028527440081448922313871487637255578942111502374895285615271025516354040784189099175612598385654539997151380344071835570482180800554241749528810036711335291876048580871745214550591154969239518515273863832266475482327387311592189562923733840605981247065678959663924666121231430420164977425186873394213598391715812081808208110792424120223165621909552024355954860960053336428446649733999036687032402834358476143133354771883088662230021366530011543470473988860671294763202516083911116234825206693662596907951494422245313227993059430255055593645962963896947689230173447019070341685997491113909793215695613080301673480202427064781749766888134684181320464505033809507569085888669420280565610814020720835982673434448289358295973637911001926906105996963645133327127371430100105065131430761794990969776362743909686077568139018992385037670569646689410478753761994767948619910163090484590491939982037736591383461979611742635305944612091332687405992082061564335465637949474083409545918304526277782689479195481408742207329021036699911966255918274400156986219652552246087438061874288643327201791663990419706380674320500044815611450030910406166840050479876737505020110207334376154056092797539324107499889202028044982648324774336082300113938743224724922919828826297133018822645079645683365023708721458971997057149831478043184876070696751107589060628158385847668385127729860056517833950323712638184557696704168102199943162941244619228871280158148200875832677543653834886002982244586832924144638192901538198789897206661875520187213964353773659644650291727380102386145125841924831280649329678969422310884462617416043560224765858450352753719266302252249822284562266252856109794682355917613133186868804087691130159151130493751398740563268904602563823131140314752796888816966275652311286860858886302227936364540985359509803251973063155178187655636638055403349729514889056473983490921783512548568036487992262684924841728379593643689818936586921991920030122581611404607812851448666008025894458064719006767340876896191983943701479567297467490864966395936322823471794354875263851158896590382673741910300077191688255881044165635357961268688105622934498925896487022436138611491492259935029970036838467170621156050971525953234601635954345534698926762409512155451803056825871869813583969778065136629836405142684546854826512725058423526267939355334147571459484266716598364553084977987775203686156471901285819634692405850234881621703002465893029364005674921911498437230340098566301437059231068453513176823430971685687847689909805937045330388421318353918495778344956219719666494769311794182360914307778859753795765769746064569322901764125311363438321798882515518491879521819570078104227511610464334131180143182629445429283127908492152623454796815060454333339566126250515544847302397931439388109585940471706113771867166400029965582314478983015328271874092032411190094418121055073487815402989192944361176801040974421946297617136365222781460409246077458446095937241541272759778285785707321759858492572400390175890376747882367330016331479429067684271238345682683859757357380568660960790626866675060005807550249680234149845153767115426695439245242952470665491657257386627694000921421603203223425197244250802694135856661915862165837903889238669662127865122404252494423218333517771236974039186399658980259160479281248404892338917962167932592598385558999701560578911089918466124547208264167050017634643910161977551858332233548996929633781915277557199730985930613541621000984644315182483878459477933716095141814076625229580560400767608037736397664033070633445524541915216589103084470135074120096175366341389278989956333398452759997747043138066136124282034007134776300351259233957298950992048942923869955292238560514051869179300334280686288556829519236991414699855935776812306428445442992506497086042359653269663391937383543174741055811898797455078167865451810626084939888249614475740845785122846334334946330698701983273351540795153060695420137598126989275881542309354631422315777588586590468865619274188632166824091269645522442449081523675220315971538334729879471775386668579736753163916676206454687775100468545748893496351028467490794360981672925241821583469762571827964856424804401752318733744855146844957501523124775674553834072040231050064036767395429606909251471893246810729389077569463100432526163984129250456675319297721909962187353836053196692600510696744592398576971072150570961501988096979011237469182959198910170041728521691900902195684701363946833760692110765831726875513024097506977456125284796349231063877801392215187049378233228328096409682952861121819785719162646757383844903746069614523613946585311587983254070219906336340919993143539033702683958239744521906690799748874047889889407880071514697956424912897266728888220795724164765807434329264529987294901368447009738516296437477339214291296973952234442782554437163682783547617519528807345811171839103605018538318832702329203735302959998198415154792627376920765821268515381253390387825209078293595719379756786240389832811987326747928835159756586701258790925753329145249053926096664054605806902097289089427601013466049212624663025884737886702605651592317291596075466973072181529490866530722926964538919174004674465579087950278824557367397397519384103013460023417076280397483042325960937705573152481402669818625338092567031281611784357834806723479457942091722986772763064869924748234863661107221155979567392441455584803054782251518798756222525301333685794163737128835017848460652880581426239926608709178661226659521483643853005420227652689962261017386327877328479639709847556330570254413246817715449395005088357429106906373539670340054427755820477830960489618312546215947945304977467927752443150902648774302026937468434648513895532831850096397117147188045404236698836414326943029885756401337081845856672120290338797073042103709983052300824198718342672100863235603581456281844754769453155233843832712835122754767751809602280348765483979415570378452559092239849568583184445463124878696338824684646354264773866255081797730544100533691213402555185639299572216411879929955734027943943098533601974493460784623730668036510562263005168356561605394054578356704026216462046492355010987374918195781615520630263385356456527205147626649488113390316291475173120810542555219058309042519380343106285119625298770441375661344696299853665867343302143139791444738278142819011213175867988675281419847489719386983651236654048921818237260940754939515751945074573955331087123374673742837246799940800951962180271843611048045020834936627150706877971906259102619919211883653618072709571336359558758918480367266345460236523650386250345259991403526066788629270551353686205228763319107895722464986303756215764737219521455997215130106235513918887820228428268726598530746402291724443055755015866194577294876279413584723596674444837819013818000248057897871163257384381514472297923536575479152301698764332828814656518272782726681844942189226407313109430654217501159445664958133958931945632587040997277425948717751733511185187003165898934214814563325116397121784349293775303455861058800716308898829810549998331930204531301743479537017111124619442901011511845870965165838731620374932165322325946330528768725518047114094199040898927851495138247041635847059285934736784592377555028131792261451262312268644685437061460271275244077534825108328755517653686934388008774665211555100884109050873505033304465723113859880989532161012496695557759737354096033535921269994356698544853392676812582099361851528275998752837364412619852858596223580297626796086047308744421625238688049070721504049047756132717291233063197290115659055935968286898828785104905781972425500684436812200918225445326195975539525942351257405125518232931618389483089270744731244602954487518753240878298020513466765843152532554309476398598485759622274951352871988643336822544191833076843427139747973712433029704326324090069173875981244387205641955388451734139363055297699366324744624079084031624643382995695101582868002734236090389639916147732608253703651323570138363999726588016138164537351667418899183178107714550056040694027296194149491049360414411634499739144980371282468159396395311659278364632160120906361303471942494435210377907646705625194010402876289041007602908227539812952262456481969849069484655346296869403125315249456590540162153001557455577782974484864222994191903610021205721311521532516248522152057496744779192399557859847369796175840261565212518829356383871895578012869972633331418035557403314857545441797026694487980104504324803253633093108527676790518826297730002044275978011390504311602366517566397304120001949679464249203268706230743278414854153933181945705037773834001034804111248722235097549902447820971428712493512374433356326187621709059306812704691393150925655963553318149458205254183755305047018916496474140200518885277497671978732233484525149498211885557556176115433217103760606513064544394816881601401887595221311051896187622388882155770367152175315100884175980314479347580316977770755651754867427193299429217551728432721179150209690062677205628120976655162671920971616031894703212279026396540542718573598810568925911941064946183893484893174133083624827603281801513815515141787154401196322278645603283145519089184983493399174745846512590974210497510797024014098071266483378242500234270665177693625784273685915254179569013834241814075080347935893205589097326070234942114380731235771589136238296090312537911944090493273821971880058779642717748499131682810750513297226612686138234809543639600592725124056549009440683591328919446475635922816741865710241342309346648428987543996506973927294767548310822499277685570202081707191846690109231041154476699092996364078388356690486787220492127648423549414978294009954094843683719046715964147798570772567062596230751184570408358801245411909466845981626367101943177129604751835293096938512815550344619182132631372848018854259258243153977258180696210212694770476978306773394597033399396000504370785480053301521200115878432215385552098566501479368311627541722982669905704144823443807769364108242597090864658457068053350482899907079643626114198182334322918147698671999441780905021372699547543208988119313556500189848975364631279427015260764981297992430788277563530990207641856199016716739151290999916906858380328761612301774307199585640831317333948015047714731090635733312594034312584549873610974256702613689634488791838482493982412092162985768785839437834621005044577419131043263123099189307557761692758014793355922865974508677413652658408144292582779109858472392589719267224722382550532544816588712601093795709136899907943812063866686295206003124749935437246939405037695168375338962873647862575224544336458604824855519778228993846026838199836000301224749824764525635844999153374405246589796685051707881109721737945356637950513409829997694596761377748731467021717193557820800298731746368227350907066770010691062273375620630787378354889462258480789141014536020629934836526105290496629273417067237534498159167085542447690010619418153045898635720477762768905175055836917361191626131095802543437822335893624762175710886005842076059961002081121437154275945248810932410566803877351652807237966667213040605087737282784412433326495538116299038632190138454691197937100645153516538549280475848244215825589012359564837553961157314962964065856836441291658927024349586308974242857583654260002929278439733101928293871538299577177185792155459537408787096058306616488563847013631312721140890505751551124197053154911712960803245002861444648736195158311124281482835617905449301266493490839902436109399275088338812690428026580132551796875901040178450516115885371091181359849137870938857659742521193478614343463628990166359450229505127217359872208044380569534397831228532958384347276525511179210787706888848276729654542596801369172911954297603819875139381433025435945639047005018564201414558837389033822343445876154575571547643867199528788495521965039811353756745080283840676344214932893043648589338290454776954396589298325914916399165063207768436592223654579306594231528821357810550866105759831344271863102979026069557733962131386807139151373396598323010028768936101428442486350754841672489756715078305835790199674333962886974955821001470149964953396980146262106051338241291474986944455413224835425433688615888768637018302521761228552533396086109942106865297933525976024011566976040547830927790775616206303317092906868846796401383534847271978319401780032791982587794576982649224495336788467535329056585781967434854864273016622999468163261315408768084418920349466030232359247691001279166314482020060388454308563484885260071384001200504033680805282706602830377994664762837358671408360810944564200426295862696860656806487810817369892941373196660103172108793316135872962537723709182767178501824773732837520922227733667481692669769439735696695561558626535060353744340934209803499507948246903328923517874248621027666412035759053734032015989740498826620027997098725735005238135124926975423444451590452895661179015072826070087335154129564200698009542096289296931724027413479824436704091750599501220645632509307799617240204034025275516116677185376035556751376577722916973753152430800866566567073036172126234657719384909028091068127402956133324838152831118059302586700401700111338839197601051272734038389617715826467882870767761755859916610594553560616389313010610156097359308980909265590529159824953853623220093129748234345317456225821553684387887732679795891079659440515200098252527109773164029909914500073717964573007411865109688426567532946119088643983961081087073266509028887136181855415100213832773031784246888240333451744783414450229729636303091471175985475303996702955620262823987728050558732556901654155839903352597277233546345718511730627927334785689572111502284233083827699554343471700652737958862159385617642167760497690826650742436471838705877539465139333586052789529356908241488269303893679757995953247648450951948293299485864975664725284314600824018885154255221722975206923889652252852454429030929346691462461771752245708913931456408518122447667995734344202493399828322923455374471433782761593732292266113147545355088526228928260027249144000547887816371786422509932203913278864426316041457190859044570674633314032932495023455811424965290298307959488035249799952060318429334238233950232691017565468042670110959095302455839583897289343857926589551649547276337001961270249886360638298871452911346346124904354314096272671630718552811946770333114658814781596802205318244473706923706798029904114636519510994182017948568510057738485685528238864578745722404614682215719362680687358207452923398345204430155061048962846569424987597383582963635275404635536608760969337409885472609587830775549508055150153090732824361524295473847658303411869295734674346618963146934009157011733178477583671397044124742054908758471231254980051455249701361734087076812369650007317076307180675035816770734041533906300511645480960172101811299276065142600240177409683511651988049855511147040737389926231584590767583821987014115821021213149920182068170471002074277783113605461295978768047524493636722285428119506463358510804494868461831394396020247741863135465431935860417290813283194115367617258145842219831079403178074467736916195016755072801622804396473554262364825280505145781704332828409635584345616333209413873268143461493500774638124088882619121099392615860312157239229591679328772506059026018695162013588306877496614343663559275025850706473142617924518556097129080727691510196307853064975979494871778365100738791160351191901425928992658246836252011904961088595405081528712898206046981300932804092111591764550934894555966653614677800508360315875143947396838738914048618997668456970261076241172757300160728403894819969859751880814843673952562914379016167509753470324456160353354972635503503023475287004433142935667697513046161298696433649133533963675391236637321531575886014094793267764516314029364606227052180473275998513626130383703893804009544287718613177279203496085131862607426194315021130957374024008652618044644483536633293172255703386976484732699497671320713942029593274469646555452197773189444499956155907440916045760677964693805102627926783097333809119904193242025013453264424503810571945495706128873875547431048843702335105061034643940152197443279640727485937494039407340347256257911478635181548224852759586965548371412005511794817887100671746545497176743203165004056524182261661665853106618255650282881723143388761463084603963655512334479259649625134656166493639965071358470447821296957773661714485903392470249725123974453926061625851704931624357985559474727380804837441995505639245637532647936073031405673380527723904543451577106045919499665091758493840422113251374248882730238852797106346852723967084949915688430022106154121242731842171468709681135370175678718035445956821514809824322444854500102911617415787067654975771051029604766446895826702103152653498899321361004700241655295926545322433770582021396800307170084464007979291603719185421971044913709139000165857384072541655979136476316972476575567599794423997310725598368932819424185297878688323983703802160591817248254440375859571086914661116023146079687877908435680078316083206740369441193526483951624393990857560661536381617622391452110211314416010425602861463325509294739921713729978457961738346826005828509903423815191056535200089085337866115399776604991694066963586958050976326599306309760057457608556665761166738337520098055071887652690098172506658838742372213485431375894665631428418235948778108291538547882371516954892237703367105580454372887731655714084662040038552699390337510236116701382950007641337926603836720053149449372215275777282695993966353581285969872185593598138102549237488493378387833563161975838223645606646632938506149513985379129204537544787822536335618630044982563846413846760335636822317558492584724172039733002504780801251220365360240489251224447050322745821779162539269463012468312356311931270362975367259748240237203009145377806058616903572783081389502989294047284441616202918346982801350923106897184619906397986872990144313977046014099912148085646960081013645863130393015185501323217598081202090663239747000272317313800461702086185983664761756337608394218697000922937796767167059946315359183615747920697185788001932134263763992690996083562622548566352072163230601761797771847787675433146524702268018362642398941215473739995819910397898642581861977042019926227305368915412451630096809292674614539159817355780423580990320386860069507031363517014246074101642039861765000898844839885645447188568863969637769710122274799296240794990114929256823633657374499032701033892791595943214354611721944638528440056144140403800967220630894644983119510966015485281802417545158263679860408325157173445424787688241173588581074076046419303818449588752104619192507681076184000449196096536477968035749357302574198898893966952559907416798063360767769238518488012424280184850641715749687181983232505089753980051340796851094386984286900948705015547018974448361133650768539558346913000910774379246831281440783773045583692529090819324571805743167139217481929381071590055481682485534296572977256048615092050225652039519958844840916611958706024068327659330642192936780688944570977803538971256028787300035969385632190040520754666443241174473579152948348970435857573474041043359864227810804368606250220571461807493481329150401242697158367684115989448730714374824225799767587455935741658985265681257810092427211211519303362277944750466600148727372025614393552302401941953506495975534719166937724802276838669087071433349206059168924704422018945863699802448243312607405456590206614053272171675711646297382411650210816831643595097248860178757033574091710645917609587258645845390793983433107324229222452118621897024485514176897576450644036495215501073089522468780812253558118223258546940402863481778593564317772897405215044052522562068274713665475850718988219287330734491818569225933767069490620439813484144877442430432088291154022275608301118263682679551720415061330176195862269180478926008233945687793692958910141565588320232975934294629767779156571418782960499291446687610226191129616860430142409825148326474134111784840013323238904595460183899655347367811426805834241705791380493683308066543301594434502425443851131896765322829455588572705006351279991509316298057665204629929258385791518405688131497299932791690214400393689291913994312515020035150345070419614360617567319103525868878075342421821415337155215788657542579705206044730071420871272876740644607062817732966892810783959593783690701351673623886250552370218497787851533878043003601725914634550313852222506890889237702341073352707739073321308332141511957359606994735095274140578337923427874304492199984340594678654360938060870552382281720391344701134834479850549986424696332638464095153440748237627638262262580756877330518570785195950626739280161893129795112566747245762087363077140588100671418207902519191229893635852759781992617803884726555508248568402635439837120658179992441180105120615886810469276939817573197875092515609067934372024135728479077772285827492867321374015000556073975266702051091761871272214951578694221602529935436753247038613768054356428219450071590437369356912335000684521306162835364296101673943131694201836692498466360095706861665149375990227852996684114414142477718814837841180717133639220358627449374531560806767617636108525665571855544853122587387138903425948925781576422187075492688909303475948307199709290178218079244218463293553427306579970777788017146514058704609926359501523019683017928771905114504340226803956927659259933758127877943948892046028683382262421855581269670116002703553633634494511894718715277659977532711324985760373340040696208229166978746696176356115333601943892324627067596203347324396289759195649664741928911492051025731720184103235937780910581369628125836606929954807620779639140517823170675265337610944413325574498662452266089451409578641795473543032018349114962379252975244911768237681527648770278740906976825589371902060290292090614824891417601833047131318940025707895598015682979707156250679898691503486632741595707976665193310249511144501270454927777377020028929384967949866090078496455335419640232601339642127898973242738816033856162797632715732864617006517013741927854992782039870042557426481550593052027070580969567248808476976110992866287119548104961389878603705564784447164301127108748559146780311680487579838999657498699416362100228375603429641873897981857299017165933425338870124813328170802682583418695287838022322663050681075975115503527427509158886314643685295611678770207783018682452078378202941946444077976509188231228865128124384622955261831417808770129698078674284982452618570959410208144448043178236492147857220620380209752294721753120558756390761768665860836831292368040672068667809941729297363161704046788542895553263952659231878371462162626333666889199473778290322534827321175480918362683446924768152866342558529841347300522521684768067182635559714695203780086958266074302248530299580546208893172624911361125876694316946715434144229119666297205203171509542983076995783358366298632680465495680374962697685243080468550291315985136761011874033108237167379299176031654629674769454285823765202707284569633172457846274053215463595243868540527680291559497186611175940949642872031215486740848692712938190441688961696421897158004340413755766302976850788589644797975445035879853011901872482057661997365111186423763061044838820870679052154261238745896983683213445385891678787155826148303038623045263774979509269834154352363484771155482085937813842293705356372681603051759326814999067316933061352987808077699849054702809053053746818448693895467905332181981011707391190752507159184247908756775658476574526799321601671494243059538861198000984480241485666462195576239658741294523255291771844542341668200574701952691957855469082964796011380569925198944164959960086993799350223851935816434291705808548772647786889539442075900559253010740393283276844182161207975281868873002035627979812030126375010989748806771062354916237431406044138474281929066179326037222443804515663135573799954304251573994788130603828982376244722408620785880957307596649657569816000010277799561935916744833661369767031667191926826461955841968522782561649322396494734336017326979102666060239040751405097722855425031180925287203949831160971605708540856237789539917204308916521286945082076730622678869166716096456325100844234696112969618416233994743021927359229484120785250783105198808642525594093052565991830767425805067833472912493932034612004506745471273153225163952207220490665971347751968706166789701269018020294037806514241290882983108007836570608182691429357626730479836700066789728870031040773362462310006455935283865542787061571697365794897311738720912295576360665337509442419505851783656219509069347005051275738313117925185752425726572311229118840142159749794011533765234561884023435808613157527229829173866981478573131507593453515827949500081012045882539891381025563740698327733230020298527402468491957424925509859119146259901236558028126712761661396081850075791436220458511888352376061108286121519232549232454553518121149797677542591933122704306302577987460536610584645873186408478150254341254684883448349262968400600574513325506946674353186201591396355251208263122859855192632463008288638547880208959879235122569121814143351783389151823466535880231332547828314975960188995635133112304932440222749105192003066441449326514092482195867740859893895709495785507074651171569174807772288240249699021782079234066793481004530562296551686365941789803790868189496006872729026936990255139262663924752436711616511869404458787291046813891479947447423923742442818022197845804192863422191513801095422982398312219192564350790280841459744739381176531338651587709175608772548044895751960579246509363175195744385886651217639793103792000583041556275199105585904703923265738593044642435586688137904632665860985432878848392357627299382576076172394650064134226244525255113839414219257904167034119431430495872414065479946153428088380932037645581284141789507283486101849419922736739462531270969421280797070570103777194323297010491563595851066564535148224648322000826934290347703858186755154908516123977623280094932462591411843468731290314126814380043675876905186402922475050591910502388715215113013961773733801515858641426315625090182318678280861679428049349269500716728902918919013784714218610555195752001666883066954177541697410531344545854081432979063896010119961107849999009569863424651688980849231174727224124318634845076930947735825779803291185028523679026597640956425876026697645239142090085925579788746670149378604528598740524743829083560268745063417833249096576738159069196458931863382413756946995635244468551075145579932088057245531193585397282762927409954271825949911134450888240589700528627915819633833595450012040760518440533923287907490732967739305378226325423118605536055991599243696402846071771300493911282939786278796529369073775706836886133619574144034823379662055802916627924857413839599719731957730446003265314684880037663756948618666547887456579488148446884804814213082641412622869165041328204575118263416499109658524140665070155652990434087269732577905109112702120462481649929080016736892486258670428266510115528614148916853802415259773173408465939984968936786699753836646823973229503236965625255359955817639474486762749620128175641713178852801908484414275698633501308861501805623347356818466995314664420847700223375570385917358135713956925239717623014607712093468562071570053389865148048234590385382882293590626815895723989207019809786209410683201072115220183815673198381095435128568860687664065391203317823122540061329834341407587360148062115649953571473264573370238411379363823008209876448143303770230436631329768676652354091923515321627390291051286846276966255644358850972977042816293600767216659873274075334327851659468229527979696644492198835576612689406711732883754810973903542915823491261687430813430688376559476463052523401388799934408196504289315537261163328492284094311079401106327031171259149904921809839671667538457497162505968209407515988340861305179775779268639713851474821778965938082904584658173312542847089139585870483528240644716029917815779790661487182967520364963541491556238611779726160064610329197892997976769938341554839591399381488301474723709722106658664505778556269875713701405952601592694809496903879871250909053744032947008296061521053676264065678248009207931661484727678883477041204768076508245235078685904269825306220986198340976667321799907191246903775896221922727161840329461459162608957707509437711512580734721287104962740976104251057229992753933215165267971616493250492090908049247456710589061604794609958764751970356839470765162581768431666434638089543164766217553197991682794618751171293474746521286534761258984900336671471951297161827263196391786298743273025928390913893993675918449316030439170263227327311356252435404883776190937433610218650751988942396221557832993303225816504843417211959177899818995136652278273644238827901313380869683176174210748317186635671198997365322815496939351551125585258760883776904742375481087490303399161566856533287902851853045744025209567910220526164528622323229662344708671116868471596595638823701394679817951620507518610243502948372301425005150812114139826127580670837279679153156100330880310020399037736495321256375356254618054538513584053862903936776037649133546840744422503298528687992374449329115990886286791775297063178511618165506444647493309514333696349336341295580556587067628155823069966368354482431981176983002037580682289269677851357932525519545546894318275373115180318354193347756515819327807545930118459897261737560511512439886864573848510459863366040102816849677873668633315416908014445239033076431282386022822402022387617067557255689751604323526542029699737196557932848272933685212557685937268152972937571708768225063814305559549097240846081751166888953382931351663341224653053525136248022631460030498811725297251771482076971877151377406172196338319562623866786026931663977855904031254796687514267003910140566721649127620211779356692383740917833214724887276241429692476458784590438276641774002656186666818313885721399567440586940811127501595643346329708849889065179002289741034764961641271345875356179106437568322606527959479142389048761763603052320036030352759854089990466092860636740413913476414079634821288273744847802973157782680722833774776603288053292146174013151772093133027325059772458413334621831190786019954813462597194393953019701641940265479830355243779015681980344091161005169195293314625699873114810536148779856744892572456854342114698298591722871985965798641684801281674041271035214762058055473284996582163479321022076459505285631688335373799446004742212037562538660870406458530524207402761899553369656114781816045583589123451588434286926279526197712049552918756128038708737756945734224951151248626113649556735775383248713715614497604917451029270005202967949875521542291633211867199636654807943203221015696110964126033025054561332497534708603717321737263290222018793783534619458416792682200079378687720759381318185821642878050056245312612489404310486193509755768480472907921827634750196944607086864311433902522375236732672826994998665465000814767940867314315738690719103764199354829546278229796203727129424171587591265889349068701751490801934422520149516465486180142609767023199386245423873230653645867417684835770786247633021877420587131942317250929346061169473932116983639376151384672314654371064795034857566904102301468055009704925048611198252340389344208285580248999257796431171982299527129231557017541735793727391566062995056860979674628002327957841848059045403581953922105939527570953117291020784319804570265804240376063402484662482781899020938175837266596727402174956254527841790648683300436906241465503416351211555328430303326759297225516923246153638454580757950726574569051068338279825440487364898831848694759019809267265724998594044326332579464075499566872771274972676185007448172769873763084086622454932552075476534719690390706251841019555397365922823016834401200332333435190235154344454043729372927436393551839232568700528275952164409766279137293643305968171696428955853427035912763778802588797554474234776547916551827555430953241132913732342672225909157027417240632619497386333354165487857848359238121935413999074198377841809817019873772639705573339479915517117135363886879652530086763865383546804330419073218107153792918431544176449162946930046821833765518594991328617164732816220810850504940971790369547143733578818297849214807380260932916401401732611908551654806734237099571346912065821899806760861062490870976767207772847365398688430280566755272829874133132434033423638848538969038545374621400050062526432915670390811229803061261083072203691414181866310204750641511504825817743958849193049618340858077852253166358297222235837081280229298273235114440756925886238614953597696473712029614072143666998231387534293834905169207227675850712466415729875754388288446140631909742696691539794636134815368242128683602205356374576631721136990358331031550003151040502712482691286723157448407068134265576782842224276903417124756091120365218210719810183706173247662149972480335994946890851750685898347569801607927749348300243344947409501176674615044589233566196898566368539282123768523137463114026724477383815068459081236333653471641129078739878802746758631069027964370219423514260737313012850537179367941175149256049109329329717641885671126288430640970360270716576090154791787694353901916841322624080041438348459147014700500353307032863675180365224350245873337743037889161324387539823014263432536108439728951766763220971793010650964485490790764480236852410758303390746394045135368558716244750463494800458923952821676857826036300428778967604624564470449812105756560858848738391797870332686408737042063764022749601029647756565183758879589937128322251603057115204178504486232325429441173590904699262097922536687136419743560297122983239525760444265858072923487429965126272845280999802259680248964338994210136228158998911604324460037721301445517643361724544907099886995292374167464047481547325604589578234885125504402561366157412730978157811445513460383820236390317075641465679646166474314458338647631275684913284473898917446793221292412717200576921988036377911653532742032227319035592286182630782288059535419063165095284916505493551607212700933761889833965749107023294072220331613024544679209117894897221049448114717715970148250895368143423861448591612394167213247882760749478030548477907663751027921820607655565338575783001287292544374145960302213617909621178681977687110415950513360282210521533550901425925753001367527037957933025594309293117426437609733125447576270270190461403235151782627342199298430086418006870189915152570082786037833274523521010304771659229333894904612173261444308586209985003951016009311533851537142328490351072691388196792739388900823415745133847398769074491758070523654552658868075426649075375095029850578201991173866707603024649887954748563476860045862001765350718447818664060118727936144249822287734621472968810618763743715843229544019574951285871390940650624653912497243599677505303422589088025131038917129693508956601294245142675198455304088158422131229976930445586305541372755542176158195862774799617950428774944112740603810187318383566283935021887459752785278163368235912391102459944613231567781358497731253995345128845199241017114320523551305089032730997339027423791866560172277000697632429957062602823183525882033634791172173042431150876197994977644853573403281171851880225403648104989576806223384303973756759811086251480794019770278298715730720495916456191678079173354359512223937517409931820315922937650688655321005327402520066479289911884423137318678242011580814019470092967508771505726533848511248731676759292511388900928078245728990970818976075610031535317812260779056572072192569587936556777146774463768280683728070273131495610940010589098897006797396533852081323896936180835611236199043440709950357185026197886777755913192680101745383000613346049418427818186710944929638925602887917744629809940316345043407935647159441206068414729530026610555883942805661271223004645682488086900470452727193057888732433272226794585472521221333865582427550285548671345058048416262557144103298509516723180372993399287970680964248071083536666872929279188920522580243321208046994489948854514013357579778397503774614597532948226930083656561800497890832697486280776681146045555317765491667768366901569429687903692343927068052994227676357080925571301794220475443944107904932822986676538550907206241560440019545249905781588350570363391359094701905497813397662947678388189717360484176858794612881488012124893675316773489920053759556443165442925404442486624871682734938599666332812815668107298261088885783757987438746581079628604170976430289145067279054939351239184757737554470850397355671623863142244542888016145160900272398361458950519312942198626256137546409677181938802003097257737194691281013130266303518743454134473780153515912815024443631097889653265786983167910453050473270476699017727598601763347907398936241193613747037507056468131334374347598607784454274982578998850831433180658139580320058561903376901117732471805234444477811996866244408100322805175236701906173535617160856554524161293432046087203941947894710937880791634049585156558409619351972398564435662019137383848357874775023371089591962536185751662608591922095619196833127523304456939124297380337743521321436748156108520752677775234760137552277143271173268817976740148645401566182964264466159056163915063757243677284825686120105448018578259269626610440654494146699159314917649906879873267250296040012525618230798373581158362673733944869196291097230716918853518808699308764756561869795675918013420423675439421699888712526828771420180855180936959455105297047408616635237984555070976922144663485755239912422349325994488602876120309151941810106794260956252764981547075131402243051920564635670158953138993906489277210885330435146169414343910398442342866906873523541670117155683161498772516637328628156799203776744484677051098941084931240327934570722866464621662629885743092882291819296790161786016900052394078204987274617363280310754993240558058529378878642748281312013360992308707161192725108810700059553199254191169406916802747613561603324498389684549196818646229359904324447158568162303249999877486504939850661448235487443815423804222491271524361534412073893881612880248252906095927656289685602107349297408713928277941498918861551412551390345459201757100839969046290490996672327807677116850985677195301473598592241744357487247379811526479962725432110843025266138300598434818677929940366074303847999578009713781458975429347802346185743111155184574609451963011524770546261498741051174987059122637404539897982733023167234936980260430855279106534167475008265227899062249190516205212416586091536465951710844403211915567852030249669749726701677987560350274988100260328454448601630422970858827449971422487934494617481508072505741811010910450191311072621908930908860397602994373724992716021234791081930145192885890765691064618503890228756642048439309902155238764197663986368398895346620663097180193013551871788122790937077188715533101838252862070600643367650555720492025061660802601705697512457913746389080495366825578862198044883016404574830032747405194287162029912991871334639583350923570313195961962052279821615283105710997948414260502194537700438817246062577954950383270406717439140324317344964674350081449367844136975721436887787537153279274367172262314245070450687090988025753183200731252926157432225180711143095280969274867070458405287796457418399894219130725894242992709395903216422050565877399674258140315300736405103321436526350666113562082021514072758476884360328009467379127928735994473584953769638592773846266295789529039390374843938982626475431841692653901182684394059738550307819027842122940202847145979339965293640126731093515935960124649675116876350297207691623665786519488644590828622508830581989909088051251842754300523606426302993588520381364684328039788796471983585889782950360750367482857987574263473292811388925074343017858180268528313439424369967713851191865946942921493917012104802031873713829933718090053705846192949797805682168776844695534234280975998494657122139969882046441631205787727743388739985421774900135063629202952303100106671258014116568482011848304675582888993527423309740216118559623634425537987189304596817737258267534492076461015452856424552576688402671012759789957387855975012459171220363474188144186366296850322947486496398165339252441276486215283991362892976761370265327808395372168861442964388707252282293249512136587942111356080967241082010197036260918807057837357559009594807501488209383701126207452685321404748243550170927570871895102169104368398721596412892516695284646922354436282565377397384768815112942728074021775598947156207313991804215755391774160615744159011874243356910974945304274974345526538486416597359851185174326295086690189185583017773719949173927289799974797880907378033126292699406419890261654495201498840345703743000293162625954858875827990328565744143235468942287642578252371641661059159953593657057501161300108414478185514862716115310188949415961145064633641907885996139652230361440107295804341274416790432194359021641312116368270220303932899068387118216562830264694782892320952941115011871884970168434944060311757863956115492571816408030437297349894769529707518081001066685761091642756615321586990439528373789092503027118752190159442594924779106568419250956373778551901646870761524303817422239205444577260540276010318088710515146680157903874730688125761510048252227743199026928175022639583635631516000544550500319879691905309814953246828682508242860104206303102954561907003244201373162872735333070990971228608921456958114464418761314631799208881110334856257302259923801794241857651402008650120892087413219619790645187902848008268215041010596403635633965414052810193429078143959747363688861857991945495326594851992718349134633265817560596503362692300110777861682064132486046343213068774947734437372522606534697453057569515101751379144184320155658009577980991763371467644289331506137378724703430167576762525372920589475144907720819243802651659123835969770428046403438994919349999282401765056490237208977087671938696198983983398656625240514294197211251013078823888143486675674144765800743121649258758317530374451158722371995679014877778784166309944284492363261640104223466439585042153539864789953570585538003445976207666828246718558562853325969111147444575060654915516283269370299771487502133603146035033866757639996904236888496054797369736407192001665968787647901227417217115567588425597081225713896799486211527050747386857276263523064133067028307255279676155193739559099828606745798255553139350372562946447840648974095374283541194588228610948428908035528025386472658929219920720318941699228986225268697408763689598903119008605902041635277343499621716898468223315017615459629788596248479525669455509614964253300386743606636661699012558843793769619912937723958988284991905433788632263034932422363269171384389535691001606949059131327636223631766374895496334788594850630541222525789067897677817553727609322822485490145605213278480864795524913621351344453716789338883724940969065925713326743681627872187380568154874457484440888652902227370520406564041598161332288566489161566537532922634006690666237960644334094302157288853214681606922341718511852277924119659810320156622324008505125202382287475182918591735318791647588435519486549975310955603627714798761190795657180307459015613274350480626830888240331621671311739627388784973875920478236205683024796364085945628525466346805816846079641393791599672783182316061501086765431695999029699074269381917792690855535696637470948809339304135649146283933679503965986957026685107301367723709718788736242874027031769127709830542279321760220336730098403499611873103530176782998634360299040859834993362589685826466825757469515840669432007994574224235446975872583310364950182619517080405940858547391062565495135654473575208013630016737852669409017797501406752111114542506011699254680412470379943712375727166381230483707710993156963470095881708482891826442290119016902922153529123035699401091838305326021300750848482781327362846449073748440443743109328739797138556985149852715513605715672130971322491668307603440508128611882750360941956261464655518652595030563826933683751710586411156496625316814532845329879487099315382861010865017146616354271147163990750967188630765399599705793911668982365440361193601123734242542628664046049439591528115292780565747386498542632144137507779570017011202504344307208390406306828195608894089639649249802199773159479489607171527995641060021667844756800602812869391176839472535023023372009763541852622052295862228428759264388084104786890473318446074504982729207510688468473543244658080639345287706449345804307388865865362522262854234258434788849720019924685367087633088097011760148146276372904754549563835450739939710568885083483457797121398644156425899118381226155534004891852880977397726623060974378437411276080328628426524100775413287222930432591871081855483745600239360013738348183949775516637559891555401281567722936781121684707530325716128749022052429122712053697395252243138853367500998995689000262724680030439227508750160575238212112795868705336691651312677103760271098550505186017562184442109411483481337417027626513270484496212569619866100036851347816857767460874228757231669922622086103399966992989151543881026759475501679622135275937830398788535853390996759566379501953983800256273163548586426050180067439887468078750581496574515829419262518032213221879468345203911922444582220418919556320403633525195446804012418702275675693487954970885139001779351830337026716147479121793482159985271755145555373949444364657705117989775517797198822852960826945417673374781347889687056612945852825479408679712717648264296068174543748404166677601768924591751772218037648303175750139792582500906023863410641201370871827419550170697031464077388335635320737390552161540062344406305029169503681587884180132909814097916386319991757690615743103985572192418733383678773469708481249927255969142062698525795061519652991107177429747561888320148218229526214358187862869822923461576236730620661320612313619946901463675444925348765907386456600658331267682708741243687700441839128678524104020835624485724515790605681377527418654215058464181178421676698294725599564996546401420584820226272729434464969731046011837703879487608528356871723435886218900682963541975480224617535543673806067248593156391748148951044333231235254195803864854778733789350608703098855583016697371859744544013633449183941024303333453512326432836320993590573320508181393322921179635850339125964158069876053180127910944241900764278709218960399600301403653118002542553427341544660991776134334021483606714520849274581993317010437321546411148638337333352649671620574316370504720018390141659864855832253815118191111290115689019147397276482252045230486721965449766295739775931945151194560609673458934821205487570154008934922775825237961693045976256085496968120290045327612859505685367553747584664522330437569571933118564558668734430477242848579711527881367407316002234080458333036570425693806239348717006933267004159373674298044739032300552442093280152123273512269445619461654010948405776012590598915401948063979589280946065893979973982543995810288705895785588057430501798505102504220434440712411503982389399061652098899480648901943131787668394979777386145709702162790333003432351600140845587378128085726562911443724160500860096665075486610707907643539988988430415823087966733249626494373654770607373385759833639554205665020487486962952014452289098178954118859891192422523871315044025531637504837646584546072575884588543321085043691093575809310199203620997058032545377215419395317018762252421073230106439282390057878245262510793068260321697687131127401913521075633956791841421289179051733776789231453337992570695134609851655701234150435313789867773717789461233954168334823398186446547604043598151092731198681932373258786138924677787807081951219106207092514179165166805893973178766540060139358932921812356322187340086944298245545394150515479643729226798078045676752921636511738142786967746108520477033838186473510922714536234044940523129891497044411906881311690130459560575045713180645652242233920099343170882490834834894972130721365732763944399449168261572031683298264287242789231823785442362934420245295477999955432726926576809645519779031301509690047153328712228226080172992620389455493742309266597443612647979647880258492223312145686487631869617664685841905947404123134929094838205090879252346047743052957249426999814586901159543633588446073487837724931253351110944612302823441857375797423947485748097851875482035013672768402924084307667172333272408601985887000183930101448509854475408052945388961773428133990408100725502169127050275575821139367573534021739229134033462053073625180924571702359023512385012378362911191628030257519480532999679216727289749679133442281609979475158403767367756451869382383716738219076442245072283727490334377529421551953206852063724010654209376879584443609756712579884798105383393426980349012691672740378041033140186952455505863262132117648541195707081909674958925003959870102658390126476363637955088061617728693069823588195638878995794158943607956011697616323239083227143420834723785531419760414220455873251325103982211042781372954952450088235999293636018727468900285756304681451750216810577996793299260016689063827238873220366800881678622135324927894871858636548259412188480753833912601763185995150060799698079940609966350674608837098148384526932415872926283846493740891869000849449957288925586565190084211943867767975347106378245599293305013931112716138642011023439906483853742758027693483911734930937688765942603090056502342258056120749895303944089803337459368071462759120605725758462447253247203287588281009997074166144324202647663059922146680561423581763193504794648512571297673709935298664254966926085244648813418540257517759525489986163012552819544480088673841302153216000714586533190615340662320815252092780744843593371219324055908682387731377534086431545922381508340199516338350996186215868924552189878754127165279336232591499071810011992143319589404507005547627616850428935654695440083674411957700835665962222748161340110011101551181981984640319483031095401876214455498520007726304785309772484153518682570685290993841379799684673756001456539254864601256450286845667960167080910344639832465124818292847765812896241450211700222070400539358731810067943508165658718587323601755395281578418073467509336801330088466592586813725495235705125041646118660059084602411103619980567625957979967766756133915757589908057966977341637695142139812364174142667507433561638943785060800511120444687791034082924028119580713720846999430508909167667320379660136322152102879783102504152559853955558498866250851097679026896598858124613407588428639319705393263189208053666649007838414983700181602677947579554314750996527946199458258690331620991631942576651800523247070815836377547001031498793840348776120214894146111258800733512627490827415736323804997874243925496907160227892010560039368824956568364301740253950334646727081695213341751188969355890424896295736609455795085152624071390472266024602845728180460012459789508204487034434390807451556282553739226767247078771303251534904429502675700744382858435316005004341906076838124798280582692082807083615639278300303033755449132650607986477227686776584206239108881924849014887106369555370695983038975467987063705627502728916178161967711137017042384397719180983603924531870184308762303927501195705317016877529755338836246482285195551358832075208975928903258907029837269599192078666660844411042946696509298961830464704297405091723140750269576542741016353240557847464099386735789447571582792888827234624237665768093326636133943439434215984090147484333175040600751813551452370554075982756428319550338320513965286103710681348233335677714286446161198323687024506759756345821228591462653616486068117120410473638329556433136503322820965105237570633686152470048270648939080049921725336867525945144661449505513956155944360908945943761216104401800874240281027518604903396244064298874399179157870460255423751466682565631179764289153684495435719321697860621119942446308758188301033187475487085613477613724657339912429970739194090542508458938996407189549453580957219719830210425305088057800713052705907668761901697990939131213605846445778097083363201049306164993605651210397049074585981997099295399511086578701538588055635143458820587422331138904151668001625056988459853128538790239860818398928479795442146735879074030700296000262548898366505196035982897987011112499338787036760456873800742883466413749545428219370966194163563729477439954237045733874471778340201676288749822970751699374383281711306177796962792876791535869662645093358203172335699926635857038386930285068521666043666091911943781883753608592793551848625836064284113290516605747425473350025757040488940596460803470697667591559283958555596752457645788058624473328887018444763290991442199770853557229072828594868383656720299339266463551569670707917634528909944310735246827112779872174580887210282588077537971057959487446914973992931288446162334639482072777752659644258732896152680276569768002634829558808388692129622078217750020569384253158980736311245118701693605690079486178485141043188975634873847941434157382882116477685149774470826070113006789863940305046263625273948033942527476823922483909243833768837607005198053831138197652753346208086043470212151299160500900425139222593088753545106914885542345271133487310247153357850110621731011906457913735757724063703337753936756833012945914832953696101121196418388321314979838990922553180817077475593301949956643610629281772877624915590702935669136833770189190990101578171050366969986993062718943653965812657790451268367805975822681459985429469022650462717492138348795836191757858248880406228344185126987161014449525530006778308329609954374158364105713175730621082785575065146395862439678335726785433673328175461476518967411822908988992114307037314856616426307913862589524659152161084175738144675230613578374336473152610792487011330584553307161696934582722598110732167041425169224751875628225338395929827357390865602163476147589739035490958239604935029543688018228273113748663568678921421618569149311583280823996289729047743444127868104260894023248033879545092840011828195207222905882731512704401714653096753896291979920533444608936198996612022459196195696054126478399340788310891541813768858579247860591078253010083429013523803665786957794121484134904378224164375690658855489604312482073374724719618385616982512783950099467893803446410301524292405678247370885443980636780406669562017886747499837479187067673877529697142503981153806377823525596952376259316351963916264795704127842165517903976643234263029427368757874957352392537908399163264978825825807081101944077076143159380365907860261626354777825249634478910350030479696095197419421394870798225735413830267912027601007836249174667962405690884289742745410532362011303173317727730579594978275940157385624724991235561418201478704635539685039295803850732273441367583803892243688305747925552504197944581840410122567258561622515484078417824398587181290592967169656533030820773237429875493847530777560650444359995045830436321144029440324621915835112071093834805548295598958950084888640927743136965211335108512825808406955741551317748600418532433735424387893730217645866968993828809701105098565849993163178709615031809082905333811157873841536615555456502386814198358200219644687323954298595844846889309250454156231280015455416726464805320754894885531332121674020376532464248411439467360172876205417946229823306830937858020834619782882576345028160071725626521713475038437386974238205456236034733049125554059960140687791559282139593403915134284562542644689717723060290839825781269191131285449657960577201064028587052386795481220509598189476966477596906874499943281153077976898347613957449041951340485356645232163249090237399945504431880760448061134370543489126876278362209507697940041997719272871527029816494405574538585876927953779913153134343400249676111968690686390264541694508368634954438599669274579128608957315859469023954208907939109606346504604418277341285901267676027615374810471808833971806920057616042315726297707864174195038508664950414699318247228255328703795407875965194824909402386315502255461850824936903357011036756232652501632893977754791447943435345763800787043778739725514390252497429885766505561660144202553648269854759166119756770650178217066119835467917446218444322690572080743745868421126102471544501486189691772998283615367049891359644317929641576780278926150299673178073129544933631511863777948823463641659954504269644963322461732033755173013534480561640651850764953093745567816037899829930741161168670025459482253986309023721940050291272733000970636374702012394732855065074038406598151126525301914666832500848612070890716277374012700257927708276216239936078011420447066754201779718874361384561445078627445181409337871229978707502983677196740919866890564776966552664336450667879447120076088766886755437696318332132275583826961333965068081656006666521554678907686114818023125350514580069424786770562306721800020314050277212828021961695303422625385678511198265459762802359635724708624262700402119719133489278487467166608138339784615681215449723550853874897490796287416378199205742730928442618440068464028816731345520055051135362293886103976641466553766586342138102553288564871805806653669723908667247954930465776311500159845294971500388688093284933029603474276418966125016615280627279886007812040650215153780865781536939797703222117137205450389547131658775404223442889377211973813021173471966463451820769679382719192982604097090906027381830467379872818967971486282610847992527443878934254823921750841277491772946957253729485629292837593802900050888714463305504670640441103091946313201827862994216981749185118955925219922627714200476869917071345908175714690795598594077577679041340739633006446991832685496402620718063373578468472081687507840637312276445877176366521631740914733703279884170540261866896252426685298113616471003446484903222651993700382638237705509597028164145755693527128999185528420112060436742791080053301108928866586552567331740633109073668840631950593586200971351167595765592609585107435300610485465293233328828105037754965732794555929280798684639206828261311285875340064296816670091990489445900884053261932773835953693106273104973058691930310626018513091338168119829354366609947114108421946473275707336543268367109757674510132566342613384441656768219319171715365304000030994281189671961518157201492285439908092546679309467550091014118971588079148971694970699433861131673520403824907064315268705942777965041183294806528347768127419416716280305661289646779433742787814358003741819972807173854361049923182114954035831228602565602157024963897890898345864237228926833863129991358287482775833204507569378315836452606861465454395996301652506917036883873633664714166712194609961572333321579585458543527044712268776445304340341085658555394983686980711721538265305843926259589421447446573968054865808788485730661379228324506686668360029568208752418087256579309705780243615979188043579145429429096845910123015884782211724603757824822618975903559105706129373645124297086604740406348978523763297295900320187378883846091301366319316197108028903725693552162702181214657955404996014209329523324359654205634185890877494690679112427540524218705404120013501377324535136461479617765036272256860663336149542905342953197525477343935800918567150733970516481466577503485172265620252627642923118816931511909762621862321897708561415058133439462345067257253019448963881943670900386415892203374092110470411458891376343250677722699465071775238920966647115768660132466502591903555399000797464094980695089903356396333420118452851453930261430169903048316525568606283446228763767801765578057719918852270960631055722327786913619866785382869637378388230993942076067542581756892511132249298328260822440792152789976852164657988447541800582324460937640134700793061422389327107918394108806889741639804097727185834931008754844501259585834293810982331448619441302937307675314998143767614030164200420006404108597834998448344749971733775397690516804894526323031178404644872943683211546608822380795365919085807753443402725091001744898251462203000716231458505387457880254868873866945876965812367154458371093565119794676222377536517901121332595385178580506644760875585457078106046871952880621454882123079556589252227336489008348783562637527117814285806067568712124937969012993367856878312961756204678524337957484804561228543171703755608013702984301002429720913822644697531876510636638841896322315372020468136136328422827801784794644882323343867223973154280610459877465282001956238067542272127638187074170268538160794961439792412943157453878986701168443397456992077191671476691228387852104895359242623322142708567820765520250602308145256356645604986607786430734282903460896764825010817134469869887498199337415636016612398209067453705110018997412780501534328439070075264179711511048437997545031890225453634486674587321088284030746914841330065925167474554012849323028547654338999901731342574483076499910904427853291750053331494433879569518570200640111700162336797611771734894635673614559356570511737033551563928470155565989269929827635341447213529493426475078325547629052137403391151923782286496651224001145011920187747931456048426252443454628513098614682093256979577769225314580026500706469114715931563722005801850000964586900546438694117647278299350302342011523975861426964044367933711258509994942180107747140725731034796252214578746110387001405423408359561831873262744870456651575841169608809591777590576590784680163119327008415369770182263883869073353957011730414886189350546270066151977103046018366896816232731016773195356875882734002759053845643297539854741204640428354481278826782515666711058567079211226735232647321274190879577523402344088877847185977310718543865783064443549526643474566501267396104347633946647268155022488809036048060302514030937930961082099642236350026737633261016048922388451830344585630638868683773054689857164628783730045091866620704959469179633800449358444445504035407499482277316907772976567988086035442175522889146882449066175048782828235119954726778966933891482772745124786314494124808923993200694732476598040891035996982648802259335627424394219076538292589844926423672205461073165071110582164109413023842714531858267966230814666445892573338047662647956811432568523656106002361620376961178841261072731545243051451032152063959644831842448521895386657202036888364823074813700589215877915107017742872868878629745337566490435968001935199538266760270711146332902354559744860521837502831997399741648886317869547289984846278197509247208505349660567105374210850662999569012021887331967558975753866368420678009495548214332180097102696428993251118246502948836958640176681195361885926032686407628985179829582438966604977105126439535518513856965433675655096439675424633536854787568951635142322839103891319949201346421184434619031446754317486830877556346126088888870843255093368126553392326729247785196737086016213329474112359257372254995589150760667775330643899378641567019396473746174843271585521189521622055534782918012140214657423213672361555228835410078090713208570478686605927372686339646737206948657461021853738153482799961691041307918188209951000000325186447901074023997307126563186351227220262618045654093797237824459431824245782158885816276454424051105893507424174947946606342398896708106572555560250084444464007566298950421149058551633634123495510717033355226211561515626148047325840195370807136298986265010419708156523940435362461587916791429002554071622626923953493448231046137759123202168696574467756934960981513421852211029528379006138746925039851664700366011800552425314741488978179672232263506948441397848373798297675336552597577468998250946165979528562801191860785250225381981605620349009869461854244439444095198933226118623852259930009127515698257895865780112950559943033547222128780533005631873530936356836920662489088138437146705138874288269379924272219570937247337110663805386909834289049904993735139820077306103024182745899216797807778208451961019038590378256183011799112735943877753283522410734997282156211676924167003734400341650028426731934533148750571893509169792148344049305101866061098839295166035935481934578589292713479976016912958642911649446475077598827722038128449095888381877950602304700747361407887448247743318901384376388678936878496223859029290064781239867329307837876591252705771249775208291732835364788901930762675753099648831150088008980234142819918400196410837119494889524450271461629197860842669688181161838821117672304814778034894424916230013256786956584930256286447470218385423362414885150827902610237781445312081510036748481823669233813959012128832702251669942902827990524942318315573570137429399956549295982049962829399981918793744973369606046518597564016429414436932428230775633212920331897210734192557071173352373931585320905268482645865435552241931472217390229302694898796509305500856677826075355586121245116575174075321808629880556360652822810615790496603212897728547055586215951287975831354004185784558967082027166812684230303263184175132638237972292885733591663678145568643236820595536188017255519267971238387931144222321052207943486707436081300563412905852307856545371673874033815780848043038413656914560712570021341375971815537931578531265877117624949664356968975906091094683282639427318728865574996229009790205948281533752294269964395490870686262331856436673965211286354094866778795288816531915766707198475416924956904831335823679182517536479488357151439810910493315127117337591180839259604267916950045334246829405476490711614564937638066891657649028320432291677863865956398247775178813340910281766401841435222798876496414028118095871911649209515660521473394153802645454698399220121891221735532791049081826950688920417561860347669509343016515467918638101860659298000125548176875484311638162566830806133547029252374391215988732865972555061697862708976458814273821762819977758931058176923355784064388439995923467512674124194941201510222607782939682029913335743804135264875917646780389112929522697555974404623935524190818376880297765023908578207746995158593870630990456241159160747428358713917799552506259193515844374547846659357912803587730143857508412152119606140652154156748547444517661267256651304473436004291656016099880896631696912984705592282819857123561398336496412047107831394016094360662651977450794177289091210308384784251672947941647831897677950753193267144529121121543211625251879197473430233562258579754651978640125975260274657639491820215709128410179383799011204577125081130849729002011070566010425702490961852155169431976505447635577799708418923809995817885123836667789265276712144366008626232636507931668402728579259639136293883404196319160215558173708876527199018497790297473602579441143434580165837026614810854262232962797146383006242916636994965287563902201726890857264345650025015825508639829551937695427785617593050125686871098717007651651781655909804766124294277981832239173672670632035774601178803313698928114730819384994622445331002695429612626637141657698404643085232324954382413954813217271441176192239858439586146936358230177735473447429388137616101747792257369491878082249121691178879831089899475650310750934555459509646796991656971585513923263914656655551735038467906177824090629262764544186617991178524606376574920838037201135897438155285373633846619959835708142779271423452570869109941405527248897875091845260580484344388674453882698221899810907990352205483404083779133040973161195983185767431750359484495869933882242139889624153209427174973699888787045787368079196238830917726267825700912841519859461451725146813261591198610075238995361593891151651304852569860557012878224805198883302774377252945186278254428043033945706141839987643358516489029610842559484400519744194849559218319991657733204084652209943680464567487983743645474025655040429107618576051997489515527739279043079550460284601669284516530672785224013190792881202656543065621116109105483563452272875809177673164026795857395321224111687072765941198429486616386222847300233059118357277873380690963108508653856060950747615904728101625685486802021203101356173595047860013311745019523427980690310019600509875941334566780133576675590134954324105430370182116832764654735433277405571438922808651223375428035859215582476788597050029808598895727767246063895126579180916123859497285390402166244349821593948652682506607450506380771199150052156085691960770172727726755438287562169234425525640622482597109691352252666517145520729404887889128158717690163806269741893040953659012238339911803432511519923184107728667977672597207948414190765508305803975322973748849168807380672224083055826033288142251764728988257660797199355670664025776128010894528748020829647683881798171708783221716129438235548846905250088417534066305651851021069535000120629429505355424058808875522760939480638848527106120055194580712382843898071015298511881686206275727072113494956506658232248798765908092333109872643161196995380430879878051053866129488934567323145789190918838960625465797832724839667230476743216387390957426035073640846658062364088207715049979262018388209448594114665957993540234532352088637775476406901029129048709806558609451503483274391036465857068375068001696288255979175390731330040330939419323765572440651935960119870262628648480590330022352101557842493202634133567011622491487607238818985348636516170176533809161699808279075375778699986354919056969734532486432918909557874152818224473766819803051968990957154123576461553027495092783477614632205737086956848929498146146807265332826440175662527987712040855673446103163443036008037490699805471909389804549997308804916501522434662282110104073584571374642798888483480129331332342050641336257231645846810112584952564908516593082850696354838476589676829206328516315810615087007093775580389172675429069982645189486675649003308457985375267328487964498623320752251338300934444633886039538256121810673418661634612393965489230902419782877572736383564363944720242984356086455657948876170254036371267032363946789266209152567579702209218055016770924553135365471964920717654270267011456027164954482954501252170405672743045036290673607964351214215055585643224074599239186601909195140769491226127279711338827169305932239149084558902635514533848725883773023420679063202660421623956696095451951951563061779012796507827737153367771030126678191440345398719106999150289030363743794412998021886372548065320808592512074632731571085471834454380520345153566929769718528178176676327481732465393152329729353942022053402495427004592156626976711014784479028738997050123506766912495418308551369065755237688891134461123427304736349861593013268409093143853739564291585395379241373108576951264130691884293947792579658974059620562352345189528035104258831258169497072906623769940000682639744790029381661690203224356910268333202807427646002749154152348619548497130761281813159455447297258944183257009047638008837557841073201261403104026181492246177290322188278641254270517345006915728409913801790982098295548216020193885158058578541801716794181427084024996766607336736096009162144812789473057468269249598369478171163021805009191385733150259983230152296472803391837325700557999688841921323790589495843796424444677557162787585909981988629987408730557828333930014685908409876361375297949933266445495813445529742352201730358965462337938563229968384409961932451848338192393029797679036716620155389479027594220285412792551882420467456677421994891113700034348735158231398281517017444769311063002891225192955666999030965930478950055206490342800865600093997394154892885674937333068370673317728556968617881642938481433090502603412879781878723728269800939612434267266612857210069920459378906202668414375596850815427732548999342611416281215368740168756276539389652414184573861787121332867810187189845571383678737049777007125403137823203415867396324329166706339054926137009691560538148455589977969608813172308684938935996428213104494128793192582827518707902597824049424179697151341702161125443070500196273132192361570193626678857285845115042237464833293814313294216643842457799121467813815119295339571368360610449523746267795963819204113359059774589217778302322105715947574111414730421731070372510828985734187295054886637361423132494684687681833576435859339080432895754348543758266571487228163769117844112885437351620703942523211433429860872733610444887519154161437466768720665400891174888275752558452492095515022897561843936311027651613347805381663302917993544466816446948341573790849502208185135475634448698175607392635284334297955595557869935631391483264660693484593025100922312622843686627974836100449614947041562804018924592501535233716566261074450510352848141186316239670160503566530602354261678792873113308368070357965632088462403050258841027461115027378160249186907841064804714166105480171485782595685100879485608278531443403667661882096213151184684061355773769519002922054406302407222964676876375921328602875908281001821665511614953160189721354399905845135442019355031695945385178340005737521035050370295744021160328407236197798506383852153898852208241286599189784182082744189285378650840500621204793669373088501864360032522707549530355042754106498838480919338784862157458996230506782157668691206494442240685932088297641634178222594124187241940574831799220006303496776703596175570411851117151267496418802309496133971385670968808606131145272889246408837091729016791830776414231184091154752669779656123373612420926425475815147672940323658119204647642866416831606168475718403352273178377522080652964872896525138110944281238266039422564388767070702521330068945245911449892833923334280279954016370582934123401499376041637395997902894742721433637609850414356839321876347456690846628741019055424031640142047392382460367713374228003736379250276165193166206583085764539074147649926839833859521081598944760966989599021467296023832380469487979192418504440203367830831266365220061258875396813903531579028006689155542405498479422365791580546318348501718610766432994088088328505316348247973782679980511149650620347664871583436136822457997011316964968627698129922483867814525141644966410470448552882542310297132490534938353395243959200779782063031753758349757254438670011983752001086789729869315328752039395120937440999774291194468988411885360513384781948091734347036214602445950472951040825332517073881259889940714166889434371907418542774042600297143944130328470647159565575470430975609112013018177663966712581979768998444836936688326397158914574523675619041165972344194749091113997872609097989737784194024103649522913821009312613043073125766061716149420364969375253020676615648505679401288960777744680849532343632754988157195076503182118411716021308035287082402554580179734018138969826294616578352903509150652661747599785571121716640675235217781338833069460172048642142156311347123663191344346759510053334349954515748724698085470659788651912432578320372564921213393647414373171603199161009229703518212827689966417524321884147720818751943845607565566243762457042418973984584531698290399077599209291845802226883143262433851950308366017641474879209428467061299592672904709071527005613761471015989124437668175420685600866532559249988234627359071033236583840095173724927332591846126577427664113767052178420366887517135573824077430057535742350093013781970233267438135596874760242633074427049214419323989543701275083093347077422772773314998890942301902305313915320678864249514367136243384089247029268485194612984924001239153230804196731972306633849078600418085357405973386352298888595987452434480177848123555465461005695663311434743267697386821464990914400020061940059963946974033896627153276547106287742822823069948856696446769079879343222919041054060178917266931628688626512927266744260895804465453612888770225064035734932591882814954643519518917119138116396647706231121503880136833694242394984069569472494689522455121025623641801077369287012278709418012637585409222153880897592269529416840994358810833099325248257496593299407082560618357583947890857525680228889167863073982742208291726186653219215020903205506691160737286837648992458768629089996326709103082607497391368006976284707654694430526669815907483709027857749708475786070035968141728707909055243765086778907790383016863673361785748617076528356159671484417816888118180631805191812639379478441310919586527176137713624312180255387150809653388751357063544404031378176230447311976198433517717113542113879783665484443834789047622667470515042510870991866511514829416184102724484592995618290818057476259710782594320827066379670440316084134084893444372524092350454451364968298508102566242020449217097905212217704355621256974453501912493863205761771408457953448163176660882980735118263601683585751758196410064760000745909364661900517853503876792827472912022199664531858231667909261836624868589830183978737846153699525996601357193439573991479992512023318798699453099908197216776168193662378979634200658851104771388468110805882079297168624608097032065434137683882191319958668766544596747357106344845004919836456317046537796994897939155176597545400699964055053843188723906109100829151089693003089097991751785390972008230368770688195122673748105666037016660743297810265673447948624821753535879474559942750681736942367853462451116129003805973692808687938636567146456396998473483496328391448529226418816746855632577763401676177195267088884596262899812963784267270684950437865735227296643621333907833767960997172834623846268763292218596582297970669835692132701392558751441905013229055075150322697167279438276839491976290873673167994441652483254863382969768235241719469984381124745708221435101568531387993520025031099573418051242097104242158794338469573244228968367157802010299190511566600931188791998328917798497046877326777792882103742606694407109926099570518162332748173940239089376516810080576483979161106833851105979529541392858154895128052034164101773069069566284895393251222689052482597691793097713570250007856908182340101457364517712918856901819905455167370065138198510622504927079015191108877421975059426850535467903070723127550221024719571901395766390415650751102004950146269549934484286763908230151121703968025929409023664845724424755554717486006711570531341066391783911675294671826895765378465054355819689176904719705182406994118763219877953302962160612079952355342230149221741590550007571802812811622136476066674690002517801127130799245970730184807172376628392772024207552670615861589595417733825167684397792259697763893639138629668569341160229921623559272114859785720269767938171234585851056874710308101504143191571202763735267378901557283365078729266202035421355960524613490854658557434546550249822455511241992725155344012105500725049943797788809303912802885824376744869007177114969426346011284765717503873671727859250233460872881920208245928997290078967174028391315835681042433998604354817295957274993595114153835407143642955229046135702157288204816725141147703590485288021516847582682242867948660992115841552858384154194437242287582867576304821063127297138419373521715553334518553364485040152672084653807316612983698549666302481015755855360688284570066414888106154114743558930295761299362807673617926819127278891589610903431170161232511030821686510778252227360722787402570350203317928658835467566167590582579318452631858521756413350765003474918846656185867068339576785634542095960441431690465367924392330700391735231787476535728504535695878117983255430422627946367500409230174901528077145491596317094480220482480359251121478428517590296896759265388270371997881504913325660353103442945168691348150028708243105785707313998758443174793246259964218029704415771102689365937336931875726572969436357552978563080099923682757645588853325548466882786827330085603532706490211687712379972159341899120042724416456520746628963092393813098753403243443136904466705367475804389705575234711204517049952419288541796706885525806950282968687825816305806387817675284298684449310592734330403280153563007299188869787235735814584419359096971410484291105423116374802985014154933148200140683511595610640241373653955520476063911472073129145254703394055253133096922449053902992520147791809545003544001564166080569028618975517030359250564567967289556308269696542968109810392991397029352648304027365919509260826046018894924040276595693465204674166665863260057554069043257038280176114203765022556874593276946594053028332238378520764189657082743927434020088213478765982242202482997067800929507709708190180380730717866129058207704879112223455971522093642706535505258035026818797317431073312621995805008443871132057104140880611382434737966563576025052070266794556419357475804663600316987093747200411987767396564349904148934874047169141133452575544318731030444806136487632228303018929482291130289778438025357721245918840692446278127912605447695250543047899614577147893220053976176243912059774236610353643119447507334545467060078377338226856947814142212632849986713873880371003283283381759380926210716425889112291031464185549872027479668473822213708996521820376339008397582145113631319028592969561716085196036898301953516937229800271880294949021189543865537115450911001561535323224029195265463071084508994650881209473104396965392297671350194202684072397043452813282308504805924202136224884297784156410973619443209068648134497867480024094399507058008882957572231209694578285788582844630195733246447950917758671323385159844813837554116429695890801528936971773659687602313256344906098383091321946064446319962869294101035165096322199525917617965391832009440274489017012252327034245561202684984754880086523152881947433537168535478927270480468356858205113395805217702330097700850433090277022318833723562560261668555829699696497080430191706041000863588332925717671266284590833455904043818077139111648911837148938995808180659450740156834214530621294418478519841373096279373532239859766898505210834854563903555974736722837872879081336454298981278582205801132567938454418562810530042230430542876704778894118973785229907268468864167458211530818661307039273580564040185408675112518084527067340863356309219774167679389095754613127738533938772869752912959452224354407153180243546912715621693513560386388928948008789590635702558845781112529271214380543238045999302919560373932736478977297551224380130772418043610166844889520253547747550470502749776313031078305864747475910623838961347209816667035316344417655354962898313237038455891364892449854923332836151489581766736351022346245815045006716146783587469344960670162072084598376836542005751632004956898990793856352655021050637430963621946791703092969964646794980287263164735202274921070366969732867274109790378068606830152463593986115751184821898762721059744096713397809345175584139828217715667873469015420571284936239517877903373072130827516985459789687927007299569878313263218090210679840766471163518092456635562603862726533325409376097470327933631485367612797011480402137777537804674689215182262550579224991894080235080780426796590473825634313106111312315199678145678252409826024083441963190122589683823442737743821692371668261739480798008591478698744512454349254092773965783076030075985101375124874564647695884315758649221403670279714566615825370889500082013168126888675535010828912434679241713288019965855810945794218041646829983689901985106399687025590097532219628010161141626230844468103746138375713276755308840894880352036535412994365332345854424324152100824865730011418201405496475374536496807965944367930218906919427200551282559503016700688082787574923247730123884463209051683181457299346139165406990665950798580299930561929337318701614592710170556308332156570189419613164320456449443085026709391545404811244511397281145439787508631499955697935155883495327558637486897191517712838560437227019759396628422233066429891539177954822533755255680975265216117404115498670500619728941432283089814147416939757602970227875365330238875776013538940967354954627634518568371705429033596395023599691091642449067821586126474121939517880282412280242941197353020530171594937629105005114538866404216752282892110900771513477133226335591434407207735827826151284881464070952054250332000884768985127770440471007794062783288458147496290432806243007533648957695156502163980219211582163914428489709730353739328646758484557746469307081933655527837422255806631356201420131432511134552442286911799694328860101668381440514765146849647282255148762684438857888854162107612199065422248449115675472669821489434099183195536162074415103589315258909843505113346360155015709143045165171428542792069699610618581516162174361687946653232366849461739533249221090797567786053805805761502372430341124199480944647743138210448506017680030310205580970699707907851572529004352661720998208515679269044000950074514103422842572604993314704208289335557519320492265836176821152434763728332428444361304390156895986489896304349160146091709387644364105706521029322181564732051559211414061197992160322356009255481891818920612331767136698031223301375778595291335065790906479019002440886106940313253323687551462369513633513263757555364613709174770317264030830293241410713791339804490559141255011212053709254662300518938745993068418869961389737205969991980968999348083841327340801758223047305391427593970486345986253529153063928228793738447105074230770654839529877679498141305846182211568836603440383320907495463190613736591667962377827796573996216613199495777221158576928405657267785734582217390555128260263616032451710200321821100886803087122044847332297300990189042120088712389196627531941650194627134681699654378806955957081104860405198918601661883183216295337566203380778047135635012876099870212446322694253272651412723415574883101762625518199405989383106971173701363765978805841161221817595115137806277931417427265511861234887987862355215901816626712914380401898323035207225376987619066795873192819298635797152630473593693302369041494558971534168730186633840638309459740235663403262266691288867291804238547111975138930898820921700667379245710200809107660285444020586532240065846563772784714016006443425976625382965679986262493737861263409951496176671309133558499520585766151464769806559299980487135567239817599381418268935988980301993089751824391307887805406544580199144710782596284030648203803182395743872039513584858335672699713152630481543308515588944695021284789932489900743874122569878430094755503347616913686177414708028550276471284762684260164535590747615778764379662621941021183033963174519142453350551833833743458647357140296281182265786209376766256783653121382873729575172395126016243106179537189899176178247135730399708559709993356381627628303014222673485703674563838741772523772322408692735296370171775036787967422086304399930528276695190018221519575750845705715304340287542830556616589602089054256655292005577040561574778887334825799503672882438280646244634172883112465016829896596722312611266210442253275362260847117934618829038238579716873768541735480746511860798540529494313775960296790019889541375268987316117931039676078405869048418342407887616824743679632642358092199369856118729791668850296484939627160908006474480253237031901151671333722486285159934250190918222798138105064070425101321597221188886786651861254043191404305800383756095316344125109943948106864057662944523771188595419508106340423137177974050504616819102761814692913531582671588179049044011898993620947997835834210432002189851188281893200855021095409089098513950240306265937959766093996434690690307938562787470598252296109569306719660268954824784880928139882122688482079004631678516751792714169151380405021098232323093990772850558369748880722694032729061818087945543837989537629029353593622110636701330863221695958586039339297402803623339185610791393380197620199689955726379682650430095818756149986565716620002048685224764224252898545242454773392614653776314201395054952837836955821923900937964544246507534103559539776777675756572337972721530877762443634723315099324252653091463510875398470468357705291509751912744110499306657800746269064177477717968157003842110405288894328993166639347811340355000967901127982590987117645198133432641654600916864275339786056950606650151741081742157796320447186474030127911218912088468342484468811490026079327717753298456900543028866725862407330486806534923618724919256012894362095808364940761795026672337618696775862552522811834035567316257834130796962006303544542615058011267253708661526293478972715002554381218402226745190783721852493928138692285871627608491277117909298201949628857701035779057868349535136436641380731556932276720102425768427190076052274316069715600753789377169600050203666217640011374867127028970108068197512314602167801023524782693797108881841808121206055472968029905898434308918385100507895819133116148532698177727659466379685820549323731876815594932321679998296489771896000510782084589352079549981684220229592058986147439623135423886599504754586391026947836124063293268052516015927481701150290242624532924690237689794320657733310436521191602607039008356813625299475641254633943737878678056094678841985178959500067556900688525256903717883453198658930312710259682142424476640515387743816639039048045793442683131440087263889584136102314357340225064721307197635330829500789472523745186431584604135606852674889184691659279939816860373543389760145293303863344914071775237121336101215893243208396767084834173486635012045153303851418175498365162228422998366174581393064680711880714510324192749336604039126118570213167357385073953389068444725902333407907079976999458423691211947576778784886061126167926622986894734497458882099715615805882942119535824118092474501693091232030844574759501461738226408033640886664066273290184656095751906769885703865921725450295836418145189369878618454332032332813528243257084178025222607068928851053460887677772213350436016146274058311669560673250999029254378225102146575688177644083951101094469306393104062896943556265767920164855754259430458973780987965996298193294888039607938213857929126086163324583164399745711879900486927454998623867435246453226610173994751575614813036680887877932077720723034815814301635883804421637108636507072637999103955467731946684403628573902691902233582795022433197879691987211483012086240627235177633627781253835822964772302417906694581295104319122278823979872851229028212260167601708968745204567300268700496512422003906855661962991865945967648851523485070710329847821334634713399342150070542328346644442247577490854099133732028134283169946488739150170956604298922516963031946850504417516569743623453323190735738623027859960344217187664241927828681443202750831205959594276170047243837706502056525299377474471086285926118651327047287561704483826516594416463554909801134290545012903591991984952651644730292291443607458878105806261900221469569160955526574984318554496491861368223768466099870411787121886767197436093795589900781241359278188237120616624663311414691537065798719951066782694444617170077215930857117082323926038722001903676131293319759339740172742298857931364996780145949055144440430654068653920837859391839685817274940292614633167943564418805872289224476999145213098341909922117188801661721638185301426621797607520958599653995284778604621949983577604082686710697737300981087058579392365432660653845573169074195573541355732401218403118905271076208284024622437381810058975376232130702299437835175088446165132908215211307963996540392577232951671717505648094886806220594228433941494901866912383278824833771288112571597971090429247064623841215704987772858644280668999964635956727227136143532795956677914458977371324981082150141330970719559595927692901818516815069368886419655310236336644159496451667235918702720387599871161817345795729731506182027075699650331560868804240626135056520690507918869146579076361191072914854989501435095758859296909315110180496784971035897298037087575946587879821189334261912399153494020873563297191019252782214556364845880868989813932018738731202249135575656926238188071933982047074328177510274653232533428687755030700093032045278156375965205082844174052863272803435808271321392440142697916423600532130372255851966115382574266495533786747639095819362954896825113372966771021651454169405312150984776328746769958195002872495215396536087049448602407480358545875554238027608977004458747693609095366697033755177224831920430805095927555597006381259665958296033590799282923038310429885608433778570806687678360798389338036704492384827157975623717641405065116160361969200486670323694935572229547842351852191648387143749004759202493938576494226869265034697595768826795300059546553643930798801973631405196077176915522435482949687339030144487874340175011646173254307730803853937274772667923628413908773328937615870176682030966657479309713901117953064665130736243338660322270502289919428051751297754209047071882654424298009216716146087454445628046965580927511820478795376409667431296174052411708473864280441386241298227706174035396251226949678178121661731022349854062689178597112225092052302620259921219979976447271271150981796968933443659031260839165102924439023972699978473423358319221834766380915079373968009814320879871458043428843589381925432747980300698568644925969629251268901808482489578712384445461358949596423502085828475205928328118696603903699791045233601898792277325534867907691233577843080011141780213571253948457399886077539632864491865445403544942607575593872917055391239390769452492576075448907575708559807385908337758152715581237330075740099846043457386321761097853047007325183527137042806040884693992273834066707825470252615593046346924030348318112899213629094649343099865731077476926340087326117504634422760235950796494499054462028983243803617301207531137427709579592821226295202657818994164179083883408204586058459770844275131802231181175366497487797167000660245951513303220574805650040333201136241487094237258768056580785847391597053384078653889221583107451851733696474455361210240648560716302223107283152568115953735670948625244780543511064683664187818415734078391975579321789305087088575654588966821000965481018918876215440557776159688170603555420354551704488916568388467954825875102214700100247522280868416950651639521666144940420813567468210734713788446053173534167386664496557247236044158502596239618621282119791888700063807100768433719170802557866148255576138146181157659560273993850521066757615821264966770485200314037790404270135638848512105534639192033435651645724949205517278778900242241268244821248014416603097275158803345249162673600057128679460427287776525028909342680763944551919819938791786557926799320504299760261680847432039606697852425161846826867186360411730209933668505278835376705559643152957324155326027751946329568978427307905370550617130439945367777825567004247182465766279336560978511264064829794045001802218091976078556920128108611885913282907637687327588968959425131187641925260173921755628243014428445832817891401196894563100262179962802378950527032272344459438516235701347424677258938481734525246401327998799414488637373639996613607002666161627979393171892041177341008702945272731574607803645026852962512833304386217461668808042456972368243137696645528452006060079480920913218000863002774641297614977553323523322424458211706321659401349613044864711759391461395440032965356297356102794169601556424914188785636702248864567932053692661936085562531178339489270911212315771236611192845067051618739518877176254046370213741701129237479483926067298674502325899329940496710503001500919436823237148816113405251982651750063408134726443211161745144970247532042062030562454854135090471649375916622602292914817875045202932961147649185083947671858631903003896738013023906749803484431924988955697494268039902878955957589476028477299628049921142917281772360828434218398886294209022078020554318820243919952116569616225321273618707351635926221228275893599525600222441428409197001168142697253609154282389087565346156767615089132300914544662632662056673356931175684739102123769914957112779297335265039933176673097213136310940114037018691646351078208748998233384900192445578969585978055735267960853032457628380576997863551179759309367664871027673421299855997746519453197850295830348696544310573980783344269598382087045682044887871944038674746818258287583776295286320160135100714498674115833248184383184662459749352874417662762606864643920569236681673613445721324195880032460973599356457111512083473252427107121951387213702995142957414166866747207224537167370446934055654009800337311356271228139147904133683597095719943185209855070989324830510200462125978995139328334443637429318861421761901084768989527124084959747708133252900514042665010171878479615820441230716644731304118147355759794110555213059587935993124528532009424343739552917062242957895959538996252420067202298749193863951430973432786386131101083622877413678535161678832662354849885251047097560112802867849391240417268782893465259305511971855383370953965847063700546217021777133448942192307510023921294451413255987230796099848840450030683548550763280612747101274091457618721128527512657384642002670648120854450322178864682809250406498280158236694891696340290719645791977212794854599854659399363404711241759177027099264644306390552801850346535933143664586664106243337349751532129267581927423621436921048633470739155375458660237207181608829802951648470345604241279295787414677596206408792654344235795408515033556157922206981530280255969071257474103669574572505135573699079597714301159376888396089597406736754786108928688394637951721446010582510480712973776870631356763563400617223005893387150175731083536789857956682656146877936694558907052968758731981750126381188887114885948333987291155510468211998155857775641107497066573757623967357997247941112311006482662843095398666663498175948192457825023730049015182090721401474880502735748497607075625386829873566785675657642596727586673167624992664666450023426226785547719006762891761400841962561224762038114744650034519311316681556973942376241944093290540890685371181474737204276637826659791739701709533961400981745767069800023719190705992476095105456930163866761653892600264467107327096550933792247162810415563172500583599309504036196564292870164006148779739281468988460685350055958691116873140078441092751797765868473014646229198921521145674857951085961065751559116313050853460791949630210270312222874756979088315417901287518196424368965707611543266899692835793700779012522736716392319714115745239450292002905742435178528841976836248520133913049822433405318778254980782008281755868215161404173681947208652290051946566892365504994020338058483028578495932611247509344865260753328685535594445589315637168409384378339339563721804297943397530919560706633437544108072396729333511284158605364623994750277484855061857564135891899144793609655533625583953540074453316456688217303542278221184664951199495933976894149481838517373088387991582956624385421167259519058513400963816373502403263395938075366608812889638443144337572900825563103796380089969198802677561443729428622494416712259243595639358599908283202454211010053520626890796367282305241687714032202258331397186238034961184173434060300382180095893865454822548299733342139640571937976872397652100269184766719399613468842996325519477927219923584980323309022492634662675823821363662353005356827708517793067717949462821906140100783559560015495327484091340772907368283147431124123113328317198281157322411130507794274595306315111668933616920380915747427769913001142456216395265672219512696903965767524029451402313707277163107932587647657847559629750489181004314625848238182213939401440025791026484229129366629884764398103726599606832165915586181169626935132232433397699679175752690122204806283915822693552183562391451282477506588408749715845365805530085994935617348433781183985740106371123748987905184339875601874831355735087006376589984279955127705356728665626813200230205949581642773921239153868909604444219051630145624644792242878756069359345761324953752734735383805284276535094228832956216885145680484180756243242672966468785923793910086246178067409164048138620729381717534158376121333906195505533730644342765259431154318672832878686104781182233889462888576737843354459571199557496550044225516873613091864666524219005902892730268216942773125717195185954955564608903479014956731992217076865075447983168973803446305880655832665838591072468782009303606993365869216472473704777122013653111182660145551252220172808373655663614202604689218986558086370486605614845798211445926336558837682460887018750740217445116706076408744290353352414880985563119738548067936787471853528191750149060095410353297917489379329023442293247685154176237231935583468687104910424879430065359333544862990299923386927102590703721620873625865264561230592267042546158037746817914289534517554933744854160063118570247231337080121599817921988958069074597336500282214347365376350280910680112859209770980000376705176207471694284249433769243933649751151624756933908113478594620305225565210769365974395628209183334101492611466523932857432056287336060539184239471356891984107422492652697983182157381063111738807022742513573346469153069291180530116254787933823895524346404101673919324127367967895517834744696393150758933206400782421296583744374290339463041176191498462116073528236353250178499887348983459947000941699393656594265663715667997731968623205728720677030009064654625339962643255899643126722317620523040440822404148757132533113195790010056514158906741872791961669950597679634116677736596819048558219114843583723800977766191823774972268723373668446017369563987663109399963477156239606530788975728596333564090601001914707205532656769687661663214615037846797850285184495510669746620185613673643567260648988976007758533425801947547120391514552770204283583452740260887781195363380950634007937579778956007325434945908999303230030242009438941857983447080595884865320281996396309528717312418697921431560402778748771506250108650472379878646369098206829531557443396178613887146349803214363429553928792879568601591634754704758457646329796019236165662353713591382615474041610421421890403028725674995358535341356944607335819373292963043752411095038772262821266200857462124036759753166518067522519050921399409675151423016413194212710665852618947393053495713448789661657717384542022576324497846785348342776507460441790365382081031777105291661588212282685168544591315951556902702614443442459640509606954269363189748861338473539915797874149859249536958169318379470565937090088570044090442516300494630881336740534675789551864589709770459175622333349910114275757344856979634947308076310877763264974505128264088708386774778070107553427441708848647190472299742938553575508433566530742627766785883421262645038025557730324260120700157793121866391641819243638440373829442524746638935198184902632555232212359622035016666080414342373371124654776335355219607658398592500848716558948434266077705090589243787615615178147815148328563251488456026277550291659712292839423430602514220105288607180521947714017351310862850894242107517104065547566316287472206501360275855780154826786470796454824037589140473071294878877327175554807946066086844759571337766549078019506922735364589491011661427244203944035339512217217853301482485310030915934468891158917295353560735930310466840548437839886392004352713427208964770906238426389041272139726501054357645295229577712147648769647043954844241517056745463366417839076416068326038094205843096793148176668615192134675348798930182056404514653801053191230642730739768165719270665686621341635139942085388526956359821443869421589268297618598265308184648478045841462796877319382490799393688348006655945707614189192497330005426674502880282335554467436241846672766837029496319748930706058194687837283163409012496144824466664978682599162864065602845230030078380998369706589979100954993694779330246416024507827502529837696242080765359660065031851573440500473794841805471091936501336381008477487200062465422365821266245783101778873262269978835429412530131372951021102119676985567142354625711908755566851805974294809832905532922242888225016793550691917188851912722006758443377797712921670271266035221323366326435198477694736773616925358777597662025744466059893653445985761328316889753397104748267985067478406598376567656569986500438835744442797851069302543333626960292470306926225199060768541679523461381678215473409666373086157941317330162138791231682259735792430794372718244806946109051422101184751444232293227616943651888247834536994714498855036210146357455518403250810174701308560603077141454473253621954216359042555545694315159276065509955364602056587461971083739028375544773874459318881978750588618067776318115529257210707666489193627279529273046461735890893228780979788303641149358450546518451279815273577068179068019869464358261826063120564037998345022920416588427671692370399336562393454155939777755782122641045207302831533109559181207182055160881752215855894411143645652754125902071414465687325855229372278884513172590412726568203310364445846661547878516882591716359990058536186512679650185791282417741357376619501560399682581325380661712272640459648279429823596607558223821205078898049232641348943338799883635675692912694254435803651725158222611040768344875258083866180660298140936364693076856031051943533308934415395640783062293892357458965787161363102332902421196283712149031482035335005851160576071032546390914991662158950533914890573445091510734912212101982476944056302252795702544695703583013178182122449261672754355168831623516647938774865943755987876598744274325882117317217680869524910402568336036703352635115156751773078374541180877543217005164158166418084233463049953374464539440658214853801119098145285761194554999655228963306768257385308260366563284488680243461583305665232972302230883073236649700015162696059396214700211641006989156999834849783562716133737888869387130353252152349195952262861076330609774922696016780304558759510292449521059048656471986316165506302869088410516241175204726774722391994998570545571718844341913473482301138219909122219627287549054798181336975148590329556886102781967446857726853149924025586484538561915916663924223424134128688059639449557416034430594650887756699439309650168724994709768340557195218497594113674675546894320561461250332707115230393413901416608727908088081350939391809870800692424870080174998197825846373247424625772186645787965189235144363452920101531066668974234883749208304688896056534564346004577077231941868782233034701917698669520020541373512811547738494655169249365660496705926972539252186868991677592437322528077861775413894634161532476017372364249956122221271381145228414702292921020542734990477017699346811970297831403824059116629920524918614269373703192445615692302939956072125004866250646121032135258588854830022594823257184921494573134939031617322418790496923193660673531181674224089625395857338637205050879391378068763807428893908196819391718968423024372255260223910282100117852534569439186067109983310075778892959332573566044676678949246711753889571216439826275066653489218209067496095291732526650118064191245673047731641117716285239325845513876571603196593592764599497104612169661754443842095800698413490150222518015931388233096703162293953151621881067676626291061638092601899735878263359284696509666021825906690122166655486718250060814516137055582508024348407126583960351733510671027665834458879093813488496346805761148525340250227650896060475152390573944767268703083766099641485885397050564580710364891943191669176702268328907412013902800744018785650483326025643085522643218956386373512505484356695349027358739779774908166912890000224814704818054952016279844042426942883228263647266346414691511256794243957398437155819973480847839825592177715219277149999569209721687483954469305686039390928702972779918845516570726252108424423450910004115590524070082559225256901711599548104570949234080502298921332377100703133907475838519553586781120377440144825408642498772904111099942656198414367100143520872327954807774125270608154349230301498353363868985836748398154610838295448959650605473336345734603588191898330178702973165928703513530903934291308013604366287224680232713130732724628273354769047075597767186427044370189323689941003217856414197118088595963377720774302561913250278689288596395905618705354152352919810473313100231340643176466394259052627026301221497200734115520636595663464042538111508472277703193587791736711014156368392366323859436341072379312549631158923994801425415455671470400957203212912278289201187971124375566335246190090005474481311107437493844314705689330719253806257196519273311011592260510570060114308729509785223817066378636828749644203950571985356553323587878809608598056409391708273459193843800186952230932322879738209063645865380296147189496794460808546930594284186168474069390378351216679930451723039243352046446928547959410298168368594484450049736176704685944595818247532753575679733354931065640097952018452618480044096067681086645420574342810527454964497036247629820324413110353562722955631026943248629192621041410286469971163433359459234004783783047210204552896858705626592019742488477537727724249657122634316008871630907918110547881708716809564935188798963088677026109743575385540647524829720347161135662906442803557119492207358535126501510562509466700857244228719271817342430022755442591293448184689895209354389138183822691942677112068583617032956724173942243415291529249044497291390861104665442440941622573591720659937127613931353433887403168580868290796344309612465724747521703177017951525818658197898920175058977290895389931764257360814773045470317403814577012120486519243959312467515729254564295994742532229006510462374247318225518097119481966000018891676255345418662623487320142741586762293104706772252399235734758225666801677138031547966046203514959810180769445914883801271795916959870005550837428086274268796572174654706813048880030060584074339100811918748415549391798540064202503241230151189784313719137802279596353802113279873645311593823509565886487507772511938622541712625901741802216354146441064740464211667200914061905407121701729757674618719774201097333735617595023052801393144084638002890958782884364840912466893335330506983020453116622744577699990115355650644947893951422555513052092364890328143454753544324852952354770579240793737148774574952563688390435091559453675122820918932365130989943566585954704739658211516765088435083007829342486044738277833505707815342853328201187456789425157164285696995088946016589202587702610117745366004947288675590226769693029543239588579070198427424602047734524423461567204333540772695256553612560035544024847919564241485695068253884945934053825149195114059474351068688186248629653141361054267334661137579491505835240249769974314318120794444867739361764649661966719175411371738689233240178076376541415721853491950359811914002750952954612863734303737100978283984414346360193813541364014393102264162498357787125215393875128120211613796074245016767059030137684935564770601938302716745326936746454802840864041302875993853282803023804104272784711270474431851525525228294511174730992334600145885320303684243137991136921185788526231181946333730915480497220856337866038389525380866477509907708045609763742405028590319275394576602748556189811092998073099103275707402930490028582815755851553788624710160965774458455458728768194754661529770501411657844714787399282631636975645573811794783280526821359091654309921769099390377348546335773090758497888104793196957833101559444549151328503222879019986958438178045685329987888459955882216808514108243922690052541480373136994250382388602702260245335793802896147343599418160124573108315435379423624682992273380787765318268845502388016086943687599065983168579408294748862748314164218060125685720749566515695002161815334579724955948051466082271215376839117199712271230567087116251010298777566076549805345890088423806840333775477747722421864333715598537809406882647223977582523233122709747256733014293257407632609376118556874601529731388760523271885617753071625555312202883140136315258409158123321916804729844366074096995406577318865823869743935223536197994223837215106244909150237387402789259913650494815506275087777779741050744897460265115487128723807307931421157119681497276062030102379338368372541942515357388803229929061141223027626876298294512884106724853651865547819959920244037479268992357266860587536437297858036445787419534172527738853653974338968484757183577275037523536352035814743439285310712549113902855405029538353440632806035139499455283908086701918329853611911255247392704981402484810510331476074040936858581125173131516384610297164707857497306378865516921067661087253122069299814223712063466990317980403710205592711590043408811648080369475141453898105283222484441093179231202357868793834980474043350560779558405631174689881385941177383004663271734081255851920090847423045376012157381149620070209722736364261493562578257870706253092157801601768418263943313391911855510311593399217289421688813088223968197450086717189356052591646003639600744499994233166021347873003974969546070698703586604995441853014946393664530038621144359136904623987150868234339516003876382863410028607261044224857545040530349964178099870915766082086250254616650954829388262519185316640882177404325070217490989361868265116429028769648260091787858120932747218151337272728844368003942217758055208098966199698440455890348015948148063701249218579785573406737885575310474393612384203585234485608806394521537169274563849079480130676539336619202601448667493291906085854619300745042926001328057244202725536204737536847898578788254923751437214082683263874094180114499379758357576653324985395314376128846083741925883684342737152648136691027297842044659909518561238810778989859931602792273110435573061025858268933387515069943175412678862173589326361624637014524902150365626191414790124595897791914120486853752337008282169450776405284567323619827575113209443265872800235798563096675584235622203855183922169022792277620486900658501795916573299470167530689123728917252796576548593999083041561414789480205956772998252165318473549499551220932592881117965274080763958278989272302561797854392961985704868111756330586604612762812982828138734198641921154337040406394368663277403893170259158047300250242909028250163412459122803559718897857604198510479543356971357639850850720585779261307095585362521497283283690440621592126939274573547630087099437103011206895019818719427422255879496396730080148282479958217795068006034682430939735213853334622455044795144264769468309414677512709849139387769648808579969817357411970570485800837588182300977429198890454127534038757873133028451025052250868373020279005766746723264694533129068061832872830296745693687820185238376893860306472027620862198820742024947804221532407351898120196734342927101337088434566518136610298902279833009034558605557294727749650135623070708912612689971599844455536192952997390451181051763037905521435926561366338102829508697339283848123095440707508398434119982586318236142884601014498945997318373708573746697925369832824737499436593078907307101594380770896469454976155532404921162085285015829035476626881398728103564249478450955941092689761434737986832914256075116880610704088482661718746694333926774687663902751015087529343697969076084065482535728699241032302241724131453417045076447059309080325619492746189436437908637740171880199455639667382594135016279863639250220465900104030446036430788870063457747781154190441065887397474824326955304128041834723328075094209149655817726974445120590388020637118670400680367004463853294753039909285336045564518883824938546923007309943261415060024644152605646023882519290625790823763430929815911192776998560027682092627658276990147373280356172285861981019954652677071975482956972704590182530373864012808624293705576805830583627894950975210086030203155004966168510682219607050596013605680532431380704307513650865017372284336032422775936526155166772381047719263525115880209007767427972321542256964568754510948269854099305643646293975523078466331705383474392779024354720011364826648187448123837868403094081661941596840052164298735371963797437732648922488350820255730494224252420444395774079384864848990209191792450925257624701770553768448218477870461480533236202175764395158149524108498780185555118044180903478649865281187813895631222796867294630693898174205585785548550341849262523204035418513062542965417975524705708462411295582403208553435911284973533173617603973566307682695951051671000678294083873480339437398413733159569021045822503075510728866917103724994367089178019489426455215454070246216601192431125114214283868815696373803413681869541558906361760570865919514726255798727536024846328880075824948461710814342208841151609755937523682345489709144527829202795970512884681909960690701290802067189143763476043061432136951743036619121987139529897731223166916194961675731744465051957271908984996445294544212384418580893144057489565691016728444071102825672393284936984269753669350645651528711810129414064338084939032111999886764989233157988611465132505048655480915639614798007450680237471942059393842259077773429336036218343364210918163665928761284358599913717780925526340831599371463623528777466032060974984521749197029113016762891104780569551694263637391467212404649446965057936482220751768164175858305280892000669579813609207106471535542751293022894131703746473439256220162615895492712761460106403102404715270933141866160110581379064491004265406828920634341061566049152673951282704982712035558582226440253712157294784115229601042603474668828344649499833031487091660463513012431297375283114459846562074527721642022210229083871694589881948070168218456513217129365836838928608713164919360959745430941871160529854284540377971748320298328490322877577198948487177209190892387094503977010445591373917495118345194630543495105919084208986422568850474203241426389828179878426454432553354339482973627726408778588918957656578295916446636301812036893051975763439870023655687378496930763648091138201299742275918785093401633063059404745776704151452592774618336965112825841068468214995474100181696112678591215138402025002957073812914878040239664084474096901814407526702814887237995552891187381096623232756657147335653407088830990649017086636154813938133647906539646744342138297719161999968637289514008599212345220759697677697864079258799184488490560744527830352009147367422695793285219727011658490108760755018387150325669025305292946011688552996138127102602726956252031450425609291700889927964211807644547445150150423161046703084185917472091817973244801136570808340338039949477368895147340648307578464288403184158958996592418529534424308809773967861434212808669690364918019428183076257074081869473256128437486788008019144542068200842327375837119004194898502301613191048400026431417248258516252332889258122819100339198166885021513179540351254636084718082921651089317360721800821624064727644011506583971386745964935623325945262187361236670437566138678927636677218060965098408784204595672814734577222870978962599155749312036607138759546738016771051758649511665137391917187245344591719658945490277852241998474950225464518005519039067926596766058254808062005912453053328744945939645461220765051612564815496358974675379899297873763739567896408831424755549470216314292493242524048951777885490768680500736745472280394849318529557752992577409008046918060370555224351905283709929621301895728631471697499899802531647854155662949487553109992738205168839038733241665436870391915408914125599424347091001794428434009448610680562827939520557082140486738453896553781248589438488026327831421182707122992129250315314751968429605478195833577993190130431563052565794314992208215076306126993593766816498989762090553351731081833414471059768424829728950075655305610728680949664535967276427554541174288080094786070527111043873655335117151182935759279862581630556960884051528354667914583897455462464735507237207577489262263379889888825246695231848355503869113851756031367103521170939192315784694319928110711848409896310081649659900542950448550635126217648666247645299305879106435089389808509378537037005354879297236877099029850455320089546049565942415473138101513304418632504748581806226570971717950868424513482847193196607102078192422035586748870727896563958698630506326583204893150152850443600634878833261461446995750226814262691942730488861269854230819232176261830923429689512417536148474092980492621886077690926099853777600462245268760420678922289122411218090601282428054699772138917839081438008690839445265032525155071113559913459210472491752896332850413281569722485633075068387748457326419314553934345848478455843453474447406595410619832313738148890471366763050202465023796890768168045054390748156832820461200057844684791053688034028842127888226288190217488088514874798396080254119885888405513226580576700185485310898233623155790188853624755494089655684159806721629472893700268889734723102393049855103596851455318657632875037804100427924945661675061012249338691251242481594339069451280142741952079348761464012465433619487406534490733338400965300508898033810860739227115511173295675296881766686921796226980234240645528776496541056641314683393585509569262662563890894420523505475335271391548655928414778008559412622478923010589511799544695102541329857245134140878632798435193827026815608486733470063509186781393292693052486088028371978308297715685511067529256365920587853310590610644614210748172668544213156395085092830629128894558213487480203759099020535653138161054432171481326787904821650794797255426079624055118627422059781174841559816542997867119794722098352778837525527196023903395439224706325833774852242717320694339747271306069582198821238006144401177317642246202419557743574550632742547501655573103232884950492960168076276518264808955922614998048929533767441090828396941908849322653522760729210037409207119675899999359064538593384249120930627614892059920444328788816911706271067543587478495916608440655145146442264126968649018290004528625430042571705106540215844828183148885102522668983072718941434955613671640378881697986150251323727166068987762527576300789080383782759363115359748230892589942274166956999468548620538009888361529861639007498280789026308988447396340857583477045734747029634062480211968199049824189760968426396949683830600250008162219899142255953101551609300663042785756580790008292250053142104323174309122929869306786904952451806010632684405331282497652209284178537571764328920924368527532227461984371849778448800922099299741299164005746737801836534832435043324456326041417500195643842175695662080955566672306774493815476775731755962878590174529638091611780689498736871535036163178782406955460864877041650210586474613356708450412367017981062959771984596942040113893058292031461342081388522655457309443397354820982966154853351664277695326518209394430989222360221089327620414763310734351614795142400285379381222286156730957094510002759537725557676396743451302567764937086965136425083312375112313978315205191423199403405000370280455377687940643770410272013980301911277848651617277479506031046624305279896822871342008251496698430137265345823707840090833357118825979808063580053136676068935172471039062650458020644803304887658851403131346648999679904132606483981865181924542851878158249079803227488996476836513614224124610009348337152374144286160312474922351992302460099718302009392487874139952593928387362187510869448586446028010382356573346734190031651829080969844961258632490246422941245919809349087026790269038838546662582018936197461272561887713286054080114939073289303344959984246205034180991906229475918523517879989839901032743853639666805085457505301645201361256707402878172295291236531992764099830707274579550557615756165391315330231057753104474049079208118886797917497889212059686106912992749100920628914366414909034289524963586706181359848672665595078980120384702353161405039014947903855748090545098814652355753386967201926810602525892400214907767054403207431680429166253217747341237826158531732533984170410556485667988370358451431735249847690537487992820614063755629213922056814123832004286009203383793233858035624422362230027635428021321488642022682815376102247439123781661703855058869672931950897476784722660298630314361600520520892487413943954285245225618021748837313354801019661267272596078544217764469633568418352654433988258510112390951411479158518780267120310698931153255613020845723125323454257739718574273338344263056464146657557535897613207212598880100610988847417681194407601470313945774951646281440710920881693596864479514914500279081676011514053466015603254528214229911117728165881096473103743780278355163385296360834880997472243578743154475849246160139952774090571453738771078444424623195820423720126975252150972952034515755246716042799186667955889736094819194615326869651188538231594453741583058612482077638433479271607970418892404275965549958449814786751076307229475587723467354056185520869958927267298092230285910915150473293397355283851986024602812160850009328297807787171380939461906816195611082273625805649194464095260877941774184329036559445017772004790364429021085216260469888310494115115504750071614253413609934715646181816614032750094705959859378862451450437789234454013252681390430303840043134794372106595938794518789295966781347912835200240397096316270449166469739617758523707846207110978744758987202019336486029225659633183763293959769798208196545399535117364370720599429912813838621543260615951306811060835182573238938861315761065171143444206034900465463005232195365270201809243236426486053499193352418954930097951737151890157801176907204889190426743687620304314976460973145641064979643535721952965047818384634762905994397649854400485948819818265185311850168500294334618095024753598683335623336383916963976709954835998995305419953947770883803965286795187211388398151844123036500652514580367574867880477627655648374888020178010131704409034602822215144143872504196305009058143587570814542027118149413617557547367000487795917009687486028600132039503622757175261183867383556313022253425695937734587943564473250177707441563214578142503970953975595846360121076122237317202371011357254450644464726694216785441508125567511923083232609934666933440564601422079503677584777001896066652450192822255618330898146536532980931647279321408605750041225464443549468386466381991955464369514982226152543526838294006136975173088749103277595190586262092585475230961913663083092291687875635229683517457885126141551555143382644579930518882346515854748813064009918702698242915787994991473232110662081807063431900630009119712028618985059884719851542056938279929688943286389677709080073389847214742867501103984111910329005155827105615104759598768408084921249972135481730693894694692161481146209777324674118784825777009126400778696529296268232174789701020495255491272471948685605266137950333850732157288331000146239621131370109162398487502443770331053643826936743239102851711542877805295381070745095981811038529375121806689741623019244554195076460698073922259349673926084221656699672193870370709770826015883108010118896892532968093253986121642652637091822480455892526061279780000667977526923070933603192671599717209353500104497201676527024087349928687248091410031230491651098201075318915971495302932747480637824661053335965705970729906764250926814632521139607447263358797227596413051539444009124102218185200309123380587323643628304279588535808048015647526484879937841460409054190990312847975073128176970267442488191959455324098197028011174960121510522535994530557240252586643575912854981258621927877563173269131433536992281548253814234559448939698887563339691783293748017711443947556542295533877786158086978049840233039533117125846143656740202026515986445790769588290361181639492773135402264207757318729611410349140494926125598579144181899054471810096627466486542866090036003431669465881760215688463343306706987395064493168793460486975865220018275561665684199099845367998084932389551304958813505695866137265401608247995215322462945433545670172279740843321393889522786948380588517048994636659519317249634326050379008993302302212022255741837441710362003969015244718406352862404398863914811558853094637160327052384099322551060948521543115815168852858093042204925010514084288861207837578766280300289363548802601320121627249277685564144973386567453581483070343131004251977245888412447265731208886141494504595045063819292494974001960041477260259722350339243749877210806858977276416824013610685161714148548396185767324862733336325488618080311934111705210150492913750173910551123022963417334806296896331121563916997176302304620611890142477845384230651766132933045992240316427940757017366224645387833410248106525044965848854846518932628685794163406203956612014199596692925331203619413212744204970466410777942345761938025922968211201130707669989397260037291169603612006598889831842354022946263994903637419771602115712204197551727240196350545245740604398288943556722861880974624562798119561893819155285966696614738800004780094562029508455445639386844775828120391625876911814935258802695007607635958009187055526209275152612627258067782721781609493190979360045223020787608725777558819090352655353971931628074315652176138441263526247926546094547066954748420661074040026646562370132901655602466483247978733215807660592665597315837800817355822475109686322765314552424289297717854107339211001734194687530488801514567996418091540258953780277798134079648101052213539899649698480251132879763013576736872011248256435533604336712978046664458237654699166455597126444934983995440445634264604541498411716032779331566932388942618784777087256292143354719455582780529852315961172489303303853041252423358119917793913046962359794148164610396641314738551154417229532472261470164748649013582390320702509623588981371347519910107492822348967639926450773890184717038639857561126748967214466997910521316036124621143367093360773336992309503313427125950350654397125012844615064750221174747414889943535161917231846501392421831930237968208706663499772460511521975432580810655456459194489662278489714165545947028466240673909463394133456025587192398485789288943271040360212678227472263731067744324788016771653492622255967081876689940389248606737110051320920152142336331132403676931420372926567754552761600758474751470854960401885823716412910922205946179368835327215412036710690447252636462085359376343662135544247652657693162871305743131559903898972103772992431176035501049540342895134880039736574842307884698610495017065885694354576735764870679940051127072593384327649957861768191574350156998856344759405340645136976554742725213101633136229905471345721364255159774723715390081857469044609757369497334547944502460269395997233964756858373528813148280063036940042517224896149928708927616446597101995561618507446613083518484512310426496571667195878422266199430852790027940448026900291195257034532231379772912540049442030696157284482128846613603885751786525687568847494913867363867199692015534023229990082043818424034342366410140690773087392100174701517906967802992859152226251312805143581556040831244251191353406951525322179898493779054683110857569376068505462430825243592204740981427667006558331678309997886407802399414301932284892579662291231394762462216708919013444118595912583427218076650110686600938955191266663419439012807474063440639735159527844578018213944459530952212650642952110089919501599503323396562568288314708773183428692831902260085926847800560275221050316928082404869945525848429297710273782381453539604356734871886381126777028174620961121714012133095192505275210381274723270988482769143649446191294219290464239858792081472554273070139107704368324784300399674129732866904087754146791932440531278923134074131817595041535071855096218086269484063704668472871166506468303919411107957487960412986003362825110121117823013590327303135378995330315683027593405613965173621290552297004333344830539597792744270400661850394440107395303639989939537668981699161665738561482980569944204628162549993331319348745273062694731006305061233161748399253287476356286739562620553477769847288582406518246407344491483262780893872597841180664126490829201265668440526225917501799551917218689211837251013474068832670508642876822920713061143541184526200359138476872122418298701587438714976353252128927826738783976765413470097662940568018567459716585318673140507824317840783623165077473601277658098679534101556619145668329818457153121518971502951204090011368628455132645708514110430554345985718021713293497517167278594534595924159886932815650338784402865282693602332208736420407430514568672437360950350769240423119877065267238551438718526671042386060152422135980958370796738427983469803524096544765845105862775301024763703245508724854159270894624419425727843328452596861354993301030191527061547314181354494760098646756191596097494511354103838150192058822564592039023475548961817305546294156027383047824558336741582998058634151152452096915366130374710198076909068387573246380250522504642321552439647534047650321680168818072625031024353022588366766732967781177670841150498765188184352309423699581144496168006981394606937544805832306238762258250755291277555338006508585039938560243350239578536746647107533293585250448700646253242960111524499899258098210698962341211346945970930829987081163159422333645600110418429354469573854429613124390641280671253249443076804408626359486302640700944940574516322646160734947189033254214312681686044987165269157687097338222983284838280685135718244865292533467766581756178375963515977413201573320433571651845407886322069793143824238866976513178221489200729391433532719793986902253708494931162073868197599212161852107431716801888007273182884727382272213816941262315668532985070880537363469137763032832779509984241085048101823259019203087008965389920481234571053236582802842608566242025897223496307592426858111994671542779747600333042316718354440059739343823148384862300085230010348095537405114216742449510978981834525722206364734130821190954616976501167376416489927026416427669509329970069970410236509618318274758227423921746413240278762097720860859943820578505311686479988687255501146623120961632216564571317967195716570453860458356185450789552411318558119564748845904891186712556133383408640285195132086876517907828302577863805530419511645164745628520612359707256201656508614392193920124681588567972909336188760891225191580409181333132729623854124140818607391053048791136034282314114880873015897638993124329529332224169411420519060840379249718628578473540137860073271615433376364072633108700124166885491613843118583393862159862537966301383809666165293578965635476898452752157532137238774464927205845118681110196145187440656893880994215639722705733377698539694991303184038376108927744896449467296753202885090603159908619600287020565287935502801080567709614668830602103203883208137082493567590898517515655971406078040449662862088443950800616330657687201739771740389510430189309792356217533240237591201454480999187601521800771235802632130477198101859720372915664426375817686715955956264496791132609700857689901654389104887635843459857070608684418714732358034473400072584888861718406246459057190485938318082406140212067561470228655439055073119257132367530795435268715439699786055570159579662858715410561775976643869219001261110345319428354717473300355416778526825837062477129357059314201904184032810256152808445511360016755907780032253470970446294957529922320865774001685677398652187886194257047147976573788990494265746978176002914574121803069694065604663312994930139223782009334452959900692360836519793540116064216734263815861055878685011090511787190364598029288082777685371024225571183664008425783938955386730169488923654735396873970983676385865481373700433525533150697367309840855971089630956793651712475373905773641826712543922836403179532658676128914865475541481201392797162095452545038754202020537554772040679491097850302831848783175125909556840789316778561692475720953632157880886561841602039970593426183350474455370999043469583282132621057587855177069578922785658480598623518601041448741504695712113447297934610653183160141345120199636948024503579681320832125096642826065710482281288717923060409120669413999811628948575982304607880154490398285436680551288024285615033360039823100549742880002955546110432569278643118987539171980190317011854405403060846287583817783334063845571888569844317370066830469385642359358523706524242222820006224522224811431155067547168166645320830530897327295306379682385792430327110283249056571264925785388541601819972765629246355213987363185285955044284478864309506926800345855782471796554336571296558880623241230515654397936185860897873980726906135161816047889789829409428068303367758393691467340168729152448085606779008861562889708599481161721661409396853422839896462892100268411902031497803189361910564052351634592195436753580021256163543555248501339775538058182057137432936812266020466222068346159511759657009579131594701000238171249073586127924246336204302731287795195574612165516400395556677257097682205827493085544377190136870150184240021752665347741056830292333108978138979221017013004066173172586922527066360571267000683983243886142941704906028430259016829725880978349808661522285930377851146365738897745091629831035258919443889916199810893642140782153670974921984202747361206630254321995894913189456103337217892455112528079049837370970480646417696877742256136723880971880804029219535118757189960512681206528024703503960344592227488300195833792374016537913918613448614647546460619780697313574579572137279705676137095654534390797991843120264764381787684283406233827535926575440982148199118385318817802821882452895384681591818914049663933867158486865284128470891599469712177882197879631720750340431815977646678898684112955329713874274661508989361999907823235916160349329678843851668332655732505880564000862198523950008663644966553384172163741776424788667398226101618702123212729527650438602189532211687472465170174934595794951220778661464386547046816305754574595153047517372223716832692295607685361609299773607600686791462505424578368361698420160995190473602094800477925720595453674804219141360282476782546676906509166704628446819567137399227440633633527293065538487447294178358196299130831901116912817721304053967899196208700289479475883031467304852897418856275545815905316904569842826701077399993749143542288546649811377220872251144942047057117105817296801964086249902832267335271392911336460662638098081640158085003197205883923695634915198904646546207620982073221125096922555372910880087737921729989981732077499551730756556397288605852152026575465847334867111444555480970490010517202541574668218151703324628345544880026979416916795150279813319396794528361006883125856573761279406874135101290847977943437851183235941450206119454028233254688235479165335331854402839960838649977111532764260479686681607550980948767065713694676919651792165532685267951443263912516572404435698742660760169291092171694367620284210348559500840978739831444093927648653027971290962590821608156280209218657846257526786672736997989408469005632594495044642128281081522005927235811799365643982985038481321323650996998824872694322677593302082492046921197502528457913240864262537421027894815281063941967310554704544885394972591988028141460213293615978005388729636767342401326400188081047456028148723911682328635943883010892484179199117278331148048350497531163183065857110009187457417905870003635839681478119270572610213548381989637172066479362552964360308876375826426983171847624419548966922662688216231662928183249775982973328102209026770160444218003567114025311204889450644622886123652042378103346204724949838513844527789382540695666947551170191370410868961695367420397665409774701718657708574264088452557193766976969417728246404493142125983126512452870945560076209285346889648603935693971079977707716474350543775768436858907385871285804689064899212206469170115171245431624878559484093441986581615790840973838371554558446085841385794597308631608244090744243322916558380370554874022929253454378067909321417298668335080043045123292121750867109766081479183582562478951995931756310256065587714911757662544325427000334591671289646887057096383756582886312296486379879470689250958841333264619621925385715000438726011921409758783787800208733457090451234346679407528502750254608974007185777177945767829604742739909200597101864689169663058618053433932844542062863930569941376736757461532365796630141386934209557446135991424322417041325437743237602639200541643036712810449012999809898669698266514132432502820798534020539972805443897605587592737625025547285761669318764858106403536355940878712220456528243638447444836272876303775397203596401246920087607568291033346807645525288040316732869104080682891339551204327602946934563846245124977437765037693143075335363099802925626485704904241763278075711409182038730026082654741190579518690963876583431291627959785355508780955846744966449009647851447114793605262277563329411885152469433579138294076160121844650377718462628791648226365780632533711255139228424587633955774357815647700435200298756038032704702856064224731175830432261379715526453243331636059901478853676660637487012345885475159854281114798573015360674166951526818152624762683673987763409575706907868154548367265644293171893372471752607731497349020369217681585052170071972353031345688514859295318294693262961127083991085565133136649138782487220803824417213513471327665707013412978604384858592538930814942423465775030746910716330809501968767586191609824408281180274779798569893927477734736305611312508086730089118354998115197602968918492238380314798696297431495912606124593670590321815342721657220465518590907809815251195099537256465498464380275541101438874884262206135584489601267118090051390905476054922787840651525790494245170068720055800226174373212705527179553455166112331869664789599553743948937681268413882304594432133680642817487684802153450941683830248272729936878301636553091374847050917816299891550164365540090601653036962090120751747108551179792233530805616087163638093259213890801165342296634903738796068464342367939312824934840835691420743976551523670827800399174497625390121333120971561606933956005463606274625384850575543880148061242820805942713057326512908699738313026289676392876426227015505069117656878545873290546512009160842535109563328095416095284114610973399517368567640902852117305400402419513683226633445592626867734760625332066575358932238733089646238801546739337618075671119150483328860657145270982118406294872505132795210989581912930529165474117983756053064727533427195365339601558106348395574650195232582778954749123699128094009161491588294380679130785758928923141418366446984464686919410276572296803679130190914970911400442998320079784113638216433301444923833594641571119756166723222607394348920361370508981926239061679889647108321671600701987747855925468271428626200618225177870641005401997456411669977001274254481813672543462765748706189671690385669501474938998985235293629893062193795127313327042549121668992531845851142200218712688803283119178938891672869201023660331651169606666176546863099751008539201850182546467476127891959790046766778018267057845677905014260981970904992778944408803134756083386268650145532733520004512133860241252358595219002216000230515890944686242412568176108960425818565306526462036455616882959156972173359259443148840216188377779323456676497976548283392428496622486938408767409647651965924713671377822054554355372154348123203582138440562292502601038341975393509489783769580273427067308947290991827770371916339177350707770264076431592508300181353789586756855560961760219769109436192185432309850861893758330127339878097786205341441031193014746712482921145713755388445282016229088461456374738013243334923201843042041360868561934129571024241521221791656113366643076901794963521027039781715492051268659455925410858853776145730179282517174426256303486057867940641186098306104208165082208001353197211201057603458285212426555483282047977534657647132408161345068331535257478252953192523616672281442395079577039671431856768435501968196543460304055619869198198965538819527953481285908615946304422688013981018086661776099838155609187965918972457690060495770691484999908003997594682178633713946209403226916215402103363731148764085174587386061173399864765635750981122723428283400396522804991513341243507439250308019110293829422147367326817307565792723820760997176040935465844798072479338614528290391382687509292541647228682017247202005888476398476921829896903983793788829635291029538711185469477984558497618321508362462675878845891596551690318586550562390615137756714829174945983707059966380814249372198600731173770625806164523534118802148912646275064918469452310069428366178912541511720947626252402693338281399450466872227807225703754579027540919751787281684913032260607013147417483095909310039846044365330675875704084615709594851657244102597823847439739376784251344091663944892197499601282152506692255496885559809274074412067583676095228744348547550315746009508578836266108482362744066020017892431932165744717572365667469761606403687723257892103394220994203126002255261354597901094121236382307873616511157201273572897212497849424193434456185546888584391043978725568208330234561373894487613474565735779395706006269708958505960991745768660890048174642250143105814948145053379333851625973813722658783323094297022172580331045973432592172221767847838971404140831865123567271101719300944875512593026711877169623105266835890623907545775190474974695634710025317291059921667450816035906376325802381961317069526521574721748963760951934936337877765272331317482555881051319409641949624022979693750061772814529625885449823533331117407094523746869919930080189074051268796083753170836985427755499592688036028588713532924652887450149177894949120014771860153538592918223243384409219844404706481595204383784776817164433043096844304278046033351848174046715552693687056367441060962974120915754238521308837581911490741361361198057187744569757402769460180171960203174105399653479188380564745117588252340904120453090234781602106356479363995625325004492762351416413478686449746952026276685669934511901862986046694676302538212841825096149234191449720994870111461588957583539802247626888345027928657744147130931215694250386173245916710183395576415766814040466673942385146723315756355710322308177416939359558353192519761054083071014527144725037382064464187464266178959139762124065989659171368724638301838639663396319178885956365424683204332402291762738322295097135131809832736290634268728317416374611048935337167798548923987574650788560659822314777623873282536615385070958557927139594581340353195759227550436574380366058966030656605568627093395175368782478816008902065841626293602400800750315910517609114694561173537875241938759869983323610363138944101206553288190457529318449065856114496073103499776873667118684838626674480121905483217748803058833655629632522231471914552761815635954926131517249816121996382908734867926606323439909559464054203737702105496325202750684527171721637176601844274469962839005405481835405141771979543676557283229828342349614729812308070967541998471261658332344912506710294846382202844933592307073314162532032655756391156226614206414076968854776935813479466612722459382209525804582087429070251381934745610817068415802021526158239772129561107365212839059279198128171844894720401598372978509156850124903629860193738931787795609755017243621202126466563994267207177128961399784067531643524469556968785684110400436419457895520986399968082346354748491662772464033986964977797808543366006942819655877087880356577218682141362499873229446734082328232976381410465316946643553046022379269969342142689788276078669973682516694181958887008215400120854637585994861092361333579472235065447051442352708497217848202726152578913270658159428291871021841700878153377233247409032441471592468260909624545644869603659242926313687238071439653272158514071140090866530427565102794885719054606242266591989678642219865161900245616651316951306558021913379313679934511663949228395989394498995518622333816222819872618361818750672841061925223686850589195330275260969281088898084433252418495955353814368489072809528804329877404384800163281706209483105969960315468109703831548633838793352804255250032326208840734856192989453292325796070201535833149456328019105499224394445862850538231791549924583447849527409610217666812412399684012773157777611436193721473617332255887572661591306839625890829387789515950511819936851153752129232382166224589303206520162347853900916071785115980194870116308143267661427761865223658515879282456121322513045620078515631918217342309478121796657841439625492157340257340012328369725796842020968509992815184265823140916329325084942085846234285929901443993028837902957618971243428362704329768215004014114712355555125670085746677171031787288376611880123070038319772177260347274617991101797154495620782601089874054881926844442871203823236287092378502315548724315974618337790530649332419050568447116731449118853473348985851161715838963204255389059436347847013041472147148006060265092455689457063639645589939281528937117532138329660765537430279004559890913611113988824106419422681581167913983688365072019935379845425322188451180311380383564990892205905525115015638144545956981717206280341827435083405119463040811338381892312080151102540072929867536058997201119064961576387325632126887868088843978239380584587075557912746268691872746316146467728603120086937577612840230876641665648056426584955270814615803085709094949626542349448923721403059050689136320187741293343619777903968743110959480389870813817242240899551184172297535995609806058554934486779056513313989673850711138052988868380286459925633893398159361652166880579677989392383928438013501924707284240143949799958433987383553262052011637729894125164112154162505318824888637830065044075319097211288423648462478486213578032178937302644842497014886344453016240929840690831830199670592757107879847357722121993668717427879878161300461118588573225694873446599600319791613151244784473474443594756189359170252110431013184064397603056805897473562190888334489997634123073782360983805942652730064335487641660823194266735459104622359765086103392667982410081820890278059154924482309907145350970791491779779106996459401810252711572682302183647313321315299563557019871389638545329839793685187606248551897812281907607086057215454561999328718470986118934461163101076976008642560539521088990240065329009794814115620800413856787166305588790651730052187528296667435500565548850880016000767838797884905257951787218400443234283616993102799991931516298910307066446360963298643179353015797377371971837229034966352197692239494778278716641850808249157873479126573381004479391845127270388571677271176607580517990899088953807901818926701122995661698363409566367300188894576481291167701299053946279709310973293677880511023982981733642726042395851010017937039261821418179825208624297167401395204419108605787789158736782176255480271674417506804346371241786732641878772600133360061438087030972386446640030817649784175022899624294493580125360602667298469054008032545166625304664086729006708643758824896823758331995059066069553051926082455215443611954689094242212261704802203135673985673829622870811848244393342214648447101814184096267608649983800965708228208801607656257769128298135014908602906167412284937005578505035728041023052262789984311289732087706135256531364191380858764750451422370508723746088738394964592270283649320503851872618346250518515774197328822006217527718463560408821095097507470262506669561693230743076634223689196778067669141300897770805852606186483151024232590462779075318410063697432905138726709796719434256392106107828454013771061807694195013724170907227957747626618345953302993380739067681219792125071487906506745619804771604026789301545491843707506836721406569654014574827351434419466270374464671660003314320184078085999574991536237996724396448928612668057499038870240296743328239373636360016201324134014591437188482655373021728967182057273407894243389996883703229557799938798914066853053382008075403201959495315198231885112163151327940118968562299020831278139272857444195530533719479390099112674801995863901645658577140724151416924827753045534655831442163114870384441563236987011511170194315023763683507778034944428501926220259993156821806957681658451782628633546419607853280347762737603430806942566622739547617920157093719837792378844142057924404306407221629392407317453782125152297148758722090854697513240218258058572401297517338639475545513196134967683507057995226502378427879633606845840265312904191964877071330450970187679919268190191508864137675222260052747706303724733312857769575932523344554737801577764176572804408734091633315477903080922078608327834825782443935434070968831166985788176845036486847067880140825655933099019523187433901003338206849875810831793881077302433632466878398303445731156925912954241878183870277429767319489746245519980269665565854452907387733646740897584474650490789823433216395239914185216364793430952592890087567424995326222550814725558548483295260386045118023267941221269052538923685242374193906819481910997074373299113267631712088570745710684539463413226477872947186283731580721311316769874508282572893740904540217326380038254848243426856719821416577468111301280625496904394022381403618558908818921141887247371769511334953612394332475037039136561649810447820314943976004082099145395614251193198920948170777961809433675741612324390672564447120432922978814589238821367743603858803400294104918108291675764552721623249896098832200455788842487563430814180108672051618080896319434266314309248596475363468617841411436607037542979693152755686251104073068045926505237768130708989739251663848721491573828523923062107090750050187057528885362570881717835953857932298672233798205642808640191033187687816227174632092562008893580813284501503081496807309188186873108788956225344648153508066796956861665367640515634845141052422718049645369767586802781250053827262079733424399563216495314826245771891537678208637790032544727394730110325682334947237200114073228060188172700123699440996497243531386877257960165755643314476199577791224067211386401643202074219074208139998407497107752833095805557449267626253717131350230441799308103591599563224277856987249985565659635961640340620663016616155971562547300590824892677290735360313600153852859113408088203169977698261943973618184948793240583536101329654749147976378916643905948612303693836482563048382759164455902556826679767965052530291146801870787846453887206804449028180499771386972109314672030721437606446128601945634680514693793467417119740880975543155421880196623665068256217420841692005751227951632064274710076012348905267991735187633632806144121923152642491814924919956387337810009839253188526660171006332521056359506526529119130919948332286018009909848082940846318126728796354689586486494871926811149971781385337674698485570573760843358735280719366714119650506376513389094169704606981693578861045940424124045850288271197368792626494625193954892144741365449838159164284806740797011017112882748652067000150704372068592959460576935932254368175055832538444891255909749306450173939488669822057789620099327262457085664162299670452708306101272544949563135726107617722967337644385406572748344226580683416220124724471204125356085460119984633148404485415830176569138388950769547289980990701817877006167817384239263686737075937952963205311585915707754359827089432299716003179450581302157560388897912643399037916027008224292385776908935415678628241611310204174172570062375776033221919582666220413074402281977959495167130590419718309206282266429719506566465313523899139251815291857707057467903002843735660536688335932921382221723046071511747811787683370284504927634931668543427611705057697355265178915564782407680223473324848535637036223597433732836303608310527550383087656444419625912093057691974927799167130586084846328866951820176660301900319086624695187478982281721511277781508793247027703715158164767792792949173139729609861198609684674543256895114624338140455776002357470315105878763630889130696326908490464060071927209938617418663404969698927182500158360713591327475560422849431332513451875410839322126840563630844459381295770616481974308632340659063507677054251652762492219162661744407694073569216502958368893393757096236640794085692191376964486201960566023296575198324623653391098672239758306450974323290148340988844204631641109295676046292468625898957213411012105471991350939552686382303502888506571046089222387375587258423330478937711380584073589015946285065217126713463116230531639036418091560976212663344718209703864299805691024625196588243247927564961879883788434536331872621181076406555660967543397026747087270156460462880823972080259927730998296929173772599632707816578151813147080090002112132834318574992995221657086524824555634972109208984736427019594515380772035482973917808921903068546987316365736678999432808111206175552523790476611122815123858487117280904488311212238200753959710462186095363534157760842823034218721002497575382408255403012225805717083451215468358373722549723709270171722385746955511401491488063122014802716450508556664687193290142359344630452114906508009935687099630733681588093289494491810760892691091943302795805443216318920219148427121302402973094811128779266348398466109106560883864072711893293315755446617688162062666245794419827163528984507335716577022649406721712529020712760660746030044371897598870351680345630433335988025138948286739034913541852403849937367066929354021438007507883366026917257093303875973621661996429224232631306548947059172903311521758547165260683293712796119248267009309994795434437354842938683466472249862283296805349306659045979254264062570399068765866440399878034847078864852291113859183444471204303462216002996534796263749429098509067952660692505846498052340143459834942582445007208682906086476917090760072441331144621554782754676028976354900613806788881448381229334115093529212614124149480834981155999083155937594362091497581047024759608459435589773381687537837267728190489229329911820031175948132334092739759339496006579595145519977063545079847988249517429808730507708291116726370810357356879549709645652640285922465233998784736413361748476544793743811386809591112908907830410364396265813514767091756502859664137341782170820970632240581571352487822408374065068596708275258930828922386344083420684864448645596861487252269764231245194289343466974372140493092108215603039817513738261635701672529689578400552494638211695090826625393236708335013091669717759800864866617302370308029929661604040195660103586579061440082697956784270861102292446111700072021142014564769848342265872045676795047218564550207213931860241515669567678478967768562886870226310979826520742193469787490201269153586456585448530535037391726949243129266184728934605431696368336776837566994335883502852809430138467929384232246114814466811143752200045283526920041060570613117356120190145997396283754030612900501321688438041110544985972329383281989795063526762379409393060175691057743019244097639559996863096582723306577458357201505022393670489444777240685249723479646039595498091986201860006152760716481812144606894481940626521232094776836310252372772396803122637652057332940585337407452233139578864320506647380189962455676557622983893241737143368819682760395763556270965511440837487006291062257786742421789815660917727393393142828534980860784737044862777422702032720046270692532464023883128252593341884235950456805258045072807048146619973105202401833771390034141137206239348157943247427259663352049369738019340829685507127214359329500984065253980240488404609107045548800411622211337850227645386302150646070671194380415561592653052924896882966015825770667313560483320138734570632723350426227125337586414083945877972516247309642487354583699725625518052540433555870287596026874459670582783366806095992154555404422418868612122913771345823817251184764513778664071609059078777175816147882861351915825169612423430168711849772999020815070621504245093888574709279785742433624642166021728206972034898769512245238617076641790245195232049974249670854895814558468520213231852206590418495513007055891645857856898549363734901700201987343203720076368018691537667509978066612312300538699759506930467012480904239904874321557795956002077462439791411162147594960791796407988130952211138624909131129364942744935909769529066267225798431261822078719558619432423434117066638041442075715301723619022266295992671155106986789272591451930380398863463587043397670517861349631020494762706007415233212745044400826463452482422479596132623659793275896782491056505742737190132528476951369293245418583350518586951064718863757636877356256579176361386813888685269910639902422721535334680634627710756177992605218800655640731056436106938790048747070743039142046098309466959872396741832198681701881830050553220532103693524591162833837155372857738365753967192423637384254514652907946797222594371675517900052970101389999559339750928411378694430632425742048338165365519253924123822064469861855657575481533868477920569047169069144574466984072298143739411149304912372778643242787863287992072893301064634321888600745795208259203178448014471270997705521614221160063744069648800577673785735355279598687982042430487494208237910714596503923128499017936674973080120251737239552466723561148620881030303057060732635713315525685164757025893527087862748834508413763135039113995146386131417052220953196810951953600296855069660561468054337174224035476792377409727017750854924481926511782005806488460414268763678957224617379891800847682462615238167078349478168587746983902651029880954111182520012728149730959923318594704661291330347266121049221238044850107405414281198596104350888864315940985381055808038125350062919782612755697606220469552956606891883790487961356350586099712073131851492057266295104319808870746404931907888635618166271923318800743135112441229568641341029342877787801845197426478937965546744628895655093356940739909652825976332638028345355771019121965238877394058084311883224579210441449913356641165368809788182240890465548299053736172019077054914092900076156596941013332952319312339150063237172914520359266724234121554102176577769843942555858908722359689314599961538401504826143246486747391414650075181994532934566076828088478129929610286417211900774112507917636411878984171941868708760055566677513143337815738885942838516736198135066127576585124335397664821480596253085608232478574502709694790029660717531698153297983900945875161818801457210619996885958830831620615944236265820173864335352787622644321116831659319857379782577178406726731973210389894139970090010071071969687824767223356611679629441897886866273315314496097557706763446178535850064172738824671529715924617804940699659616897201756542755744029269631716297342844903899608868599526954730784489610865107952423529990039927107238014162750753823092569614524616196149554187451623934478836824885036700728657811900209009342412279965678885201184043187839305679535758819520128108944333272512007546054073694039031541235116749965194392353737084544795195037707168737436767849192000025317942223274163251687077067575232464480640439507493934747759869077026102836018644744539584357385101127099366753076847685863624663780220767244464443023672625605817456060726299853672215813352425220292583068637552063153472477220147420876109191189729756045443896215432691339773711905243181623743675355616615132131519830620146937207576361681458208284709831003790445487634389136578218158335149452468729763746791509299876746781554619050262881807799710451161919190676328725720632479533434340772846491825569554405112251210418178611291853989896294590802091552891425056555795445861994946592222537216022293844349327989731257797412787485152556267381182111048557022115903869984812750392005036973409595791168187114037259025886996933172644276003621831742266010617094702346632568084946109608583158154005849701297094468816370341237594589877617025699139255687450963672620870597271466814664460347364388090805165972219220671779337963666633426592781874765870401987509883934336569181650062722367436401012422915687882728010515560001826870395887136421871222507511938786249062490245451854953621353634099895141980543871412275855712910375312806322696490606928807927200124344655403008319985810565776565166266490143663358448921944626131566478042808837258582215114658485222198243383290174152559714816200723334818647023670522926941042999703722982554463028645455609193699256478725595362161367212228848335725600529387979126465201598480206462176847041923238346584037049899105288163205035173320878570066336586344993794949381697601521625539751482322739445885413434680701843824061041039374072897730030681255604582453276352501070918607608831335779254766239053235893531027935402023609535504401356300391535703023191909334431075633511456258373870453787958745648649489516547082048791665930657484985039075653691637191946097747260589435840646104942563156018606809193639214913394905204425259323565042390728917152892665054918428536464948463438964363538378842016399393965716905584983383058690712345995716231275614156425460012847180066116772766162721108528614401892289016054886430280820167437436360818956471039792886221152344864905759194009276102790468630986667907598903054404480324360288124722242869838144574452906177861457572026147460966400054094133675611363739029971327474561098670112194745878431111663947343492119196732541731697290824912062163958242006309047092137079722702579722574599733553958102254870082532714746620433329560611829604395039017980355298754832610001854724354230222638498239601017541562430739070904096201134486900903090483762072141730833426610159919759624911129385773468201763884726583424329288596269550921053892707203329545395929091707003403078752758215021787883402447785102052849257581031252440244033372030386180920860378666168143059555292858895494936338568044099128469799281150501407505998268655821532108174922590842447137498937135246820306948114601296625139458062197053380251455526402016339396953096901816342270668877733849963409653335667332249281913016238179921045515226578320089642587541116532942886623717069626112645844578879856284642315741514426108979638486743307809907278668400104787834224386201363503365483868129127876821172243371079960032729883964076467709644913900855027987826905217293833353849582958798503309380696303373794369075161715612070076361598724023108540861912891771517727254306811999705214347441945995874563733915373177534265080081894301484085526145320018394487775006958930244362063701334702102721293796994849475175599569757430485757990115593052533636280134900408053064407863931459116460170041704910997767433415981137321640980436266666761642519560770375048968869383175227003208772026397375012574196846301959900625766593897541274717515082838547710287381251168923853641825778426800315655103955971802737792818439462195114824457941418511878498555368721083096789905325145740012195104829257256462025184996762012473186467086528336980893405782694142075595828861181861940448933136119484901624999634692111850814147547423194211443405627079892524223118239819128596617161262382510227207038758027017076355883856376013989193461733832717485544964167352874166921157509451600106189114349029420630285903593782520490840714597923799140951456446331140283076784890876286674410422564521931536432047960601654499879838120248425626197404638887412893711693828518706002081334645408676286156177932041330050071209443214052143603107787421943305792517592821050491808195496999454968855029951037969935701724721846855470720153064136678120202933656840262109297739962344119451363647335533341461975853383684447293694881980435463189378001117615534368611396642116566893404563400410638559056877478485405733204864541122001020759411614181371242589083545740875503201828192220894595017725454639030342653541611686139501658906214355464245560762486184067116342858085273666138939904607601097662928185048733703961893801925003429343737994044116906955131591242819087986452879943705013258610246127552843931412646962781905551486437701648276900139982491101252319952764611835041649451245970088648947725210106158430704632142174767822495166315438406381614785837691001571650790430901938703735490363006572773819547464848415014126156839596520324826677075144850195152255064879990953632278743029668819545983036177751061146088219746017954829168007591334480797471375254563214009150745401389405955202329361977618934348957194283957480041680952962321080041710737874762437127852436775889891262595541802327777027229497282653216268414806115038917744763451391446986098110879765950226914014770137938085659223253047392503011532819039422145562756434333901518010415011944387681432817303610153425258952159081140752949274917253101319193053709259322243500255098891098470684139880129201650164578460529800223599272344010152707229004226872653480583670695780060146362183086504289228311774508416253267119587105420333825865886574871393904468625322134584403405663630632812934535668790380381111138149943196383772966269558945549854747538260134013672071502642238133750088828368235187219986779380687295991280349783478533026329796447918322504858699365638489697088020913422869555857825426485620795413241816206551703413325829101869770841095977891181282828253833419859178723228338366375408051478400122109666119556878068817862769802203463414613595600056266366558939637384069105148516791215715808719027820023583651019378561067599478188279877725365888492669070698127529941966927334453594432840835577082713169583809178688283435911929839109783532563415562721174944605178051399923210203763687643667239470956477345038544308755455140786847546225755457542376616846332024370673456627976122009425303128050123539076430151042811917280496439019784083625116134354979662954484731439733850083559226071204972339359839487940222143830372550570100416131509959136576636150609271806997071885754257717506050491930325269857938552383772179902329094807514099266189558409986282755790498320729966285403942487187021999725174698175148325974298484141681538213801955033998075180266349992003387815208440475819083846872886836563014816863039444041367394590173428056581065810341488275749511020755457768076267402568534249151543019541141728637081676772772268704199821716249354721495543558358380409404765204832230466431959132899355937877635758219926720361892745290460467656581325668300098829560577454553999874300308335451722876486214922502938515087323273929799502160931405153121807127753824288266007488748939088029917913527136258919778866655230019119031704848699170330653268288908223866929077799230144358825024786269546027288894017710149879107415274760519690000084286208831904610340994265829182504444735073630471993594476623784199659079642115884337419957557133369626811903943519809303028266639445262473526016307347327288380388289798363616065451843932259401567560169871041824608388634844743579108567238176712373282746453414200648337070557675948531329656101132484187689628360177243045040889609512841005906597190902044150582233821121188496089682053109458211278983321943452102464029894804914218857852486123001467239035879317464724604424616399851166623450900765981542402054840152585290867958553151733738936099259510113672577746681183828358036876005159688003754255832615606302448801000872329731358409521872233421584745597637518142114446968095908332265660725995177453709729724861162455618245149164390876408629689957564366108093257824547807444704805852120415503310466694721689939851638990412982810350269673868235431072466779443883102307558359994767685578430626254003637062806214049868435800378514638425676496581492897736833988470765950195160775620937161052830425307681195902830497803315350426788217189606809159237055713551262188750053446637010878353271777968248701615489925859185940420540430690107212745742861799043998754421033866137689553224654530499836294079567824691705735232768996950229755430771187823209376501674977132980021365042101412247596124044905485856478093848106096397329103287679116244803034848549921310319006587131930114159311340253501568206673472085204063877568745371825499175289218831120265338559185079109277128009446712388614143156985656430864606801373491811229171518059239150396173664551685072817206744482984673184009339940157280026159640987206346868815092339093674630827573479225756013864629211839289346354232737032368644428724099835566720364293687511489961445669080629740769188025738098206102543553675592521054881017752690685110132678928456813822801081273767826948409787810853959306236756365083422377538444523835784491888180220289061996601824648485310314596379521646465620522569446273126454829948814281103553000158464030364661377777415419400545102276646179876985909647477369981150094306411750003880072899303205756976523893253575050499307893734524389730026478500562356106508490299798629010864057481425049223377218063079931998243725189258349115815752986579499280527651709688530051412226505220919640667668735063329258201959566644729796439142254966284883401282450794758483381034639222699947507446908588439677549778277188828200553719012538319010469690924503647356949778806226683745937652614153468640999267209919907566819650869578999207801835321988569935720536173267116893171548272489325568158071900142746612723572936172889399350387975388099252452030491298193440322336647407872850966679974946510272024917359943162762104368244400065462927586592352555426659474745175706351731061489844206142372960754113056320791730104429406202006715898929031299242198433164067012540805239297006481190223081868928511709737642629461462313801212191788072818811223559286065815512241530161301649400608021269940718373761947875994641654791182753290967527935872136584613887445264179864153697427035144721886721253913523864435118147296693567187002294876645676786574607234374567284219277203543734505368376300669449238111647025201241111420938780053357668201990043930511515515839482028558151698351468225432389300128359964992574426630383308129544905596023124249042946372725621882868541077740864012546795818441715445866518347097080645494004868461287266208266794935241738473714808905479444260239075668738942269749271635278492484204575742849785391951482359667830646472917124886253606865067545750333667713423470730739026980889737550079880383020758995213123676639011353959639707815306537908676890030689829006819744602807182177852559112821303517738691671550799641019742891865114424374033242158061356059214855358598383628659111741998194313579714752735739414855893235389689934420609311705192270693016193978634890222328047670675438830343937025072928339301865093515022368807825019494007806337851298792885673210497915818222780428060471461416193184586594831910158648013709597915988307720010524122636324617356414270183347936603186946345062978646705123024683293774989156944111944518357223923552960954320828393306822994832938390712087939766959401190444065587848132779882196173209161741796736305923022015596215088154441177588430035232658112615353912083382149302055963274346531082035107089215421056011478358469743357348925393540866713601482702798573976604290189118042745524872414509960161726591214322691987859178838716950428758744043184151077565861178340404039764023566597883131312656759027732232320616764426729659670251246160329884128308412356634816870100334845740387448086460391771374511895463606309003331054574215116257147749934180197409287133582225140374901935701110102793883389600992000095134290306371693117138467414403876682417592078231126209029242795597749494777587349885008938750185777122598325898858430901554983695446834162729903129618856044156027172930804096102132205364303396597901530058989629450467124394694289611796900366106415388710398395585454039195364438370334132019722382817709054665540615973134420199381230285445063021023043861405888931262905350381517920790256557239982428368099992071282685814272838782994482254778292700162103817326792879143144120617771058041618970685236560178654473964004877943666410301174544936408675203676233376062329035580532308211947399958807577897042708408063334709586385497818887299922952001305857596564308717054011482392205241962846138121629234937734995411641552200260454396067808077456326847681073401658054560445769248699040589441160016857282253692553284567785801471549716238541371561345380982710715021019882437408353413816586493982274516533919835757677911560909815080675278208483124226643630780074623160330174033109225341881787725367877132941351789192644603767110335011491231670743768266744168149055059045176691563957324878118237917819811185642553539578000486680749625400917929777398225705471713985508714359650728547784861689153466516598255888008575188879771718224082136241532553748521423619693121422319237966149530301023848976938641348988932399710459936848346303980385209993113277084217980194263573185613680504853835960008982763244162628286857207039408444709551404375208206490961300207547741609091914625078212719291967410799778906268506810565177294618268138834644429880191641682635018355440082837257235234602379306150723811499493256580351669793187582054764838039319350395201828011013451373470654663598488089857225672297130283629448555247006656713494211076551566104081630687456948041027286145265808026558451323492504926406719257552494967904794476271379947806823287481056848606016363792591315401078994281852339271446528827363541533356690905347319084033948221014890628113871866913959349045212323272856603669367822750209149353421396760828754903283397904620589162587810735870299488080387179016767513988017125726045622051069500793914960249861197514569587672165738473534161083740304852412306546570743396692232234641745867578578230020517383468216712185247808959795923732337455059233437211873333062845919674191019963234364401424508440433810741061622766332316612086003306522128694643715786410571999150078038398528737782151839576120842683364397078525237240240949174607248513587875354955443867229187049775364913876049340472095977572741037232021993858840844079108363437508334150797648729060352146440004160099112804620083675356827336698071345596702988861666246351603105855635752058525344125466847991991032848272390237134934359615114301111234510358804780470616394507713879110431430799156345228623041621057504544329901356278356272602075588972200680450427944254645363555709728966660299070686243544024938622775060994300241648857139619099195833361370605360157118680813072867178203077567260401343079456201312866403233308250149717999762377661538929762520720094751733567281640872690708707951909509606057237817546058648043583864163542260663934563329891072293368310868567237525097996053320254028731065719991249395352465151273767631934767647316274284357269055258368320485634644541009108475669191376849622105735608723320411905432178704697681947418645567606832434487176816977528050297347522332436981174317230399237554210629702785891460439359066385635073419066166177746438097342523604289675698350133414849748154674793872357988033542734516653217626072304933568379183800856242976255310323662902527848866520589075629425918041791934437032053530170433196080550639254671239751951411550189959276354634581212499827520852990387922371717824474948551345223248787493373598322430220133448871247076257556587571682838310992906960655276064141048052172719294232509738758997926042880460478804552823015909110335939094313522733450544911129236833989694253378493441643986680427854254766685195356775973749851073222798143992565369675567731407484749609208262608619389133177849680509110538483309913309193396730866019222737490964545948730227109014252089666224016353706341476867494547664579557810757603188348188376753267582323781468761805734153372552737219484715357383556561066767358999747643884991100849736849629719942042168530810962820032750326752828840007739095549800704668893233801434012129680259109376169832217619810625481569371879766499686425935123348334770110369798394905196731574084328450253299601184861756868278060339652556027462698862430404576707220270929583823849976746362865686895405589294105543515748923047297290624520765817848313425007889845301242129214478334185253250855666266336958215418806478109277992513512016163994388899905693357373734359546689108232235341057554333799112396943209784225756943002419122953371487518203124796893910936519543658010453736771078503630211894361596087905861893549577909776171344635355306619550906031031818127028066823105934825517666205025720505866390520864905505408549004980745649482534151799755212463511019433095896470475059578697063005493193010338035367517320275577604414231910624937720819791533380780654628854870244274860223708861028984528438254375600768465163487315402265675093009237447719120292325920317915952749450891205644339120854100704664709414832866047330985206011868192618996052644857396177773297598999059779614412980284544621899425077903077938124908021473313321776504943651807862772342728461913851872402955680257355093623685377121131751443233165155536686922100556710890649341489326204961076386122739022646872919649567885674988526354809330727461799836813192979652622641262617896438191786701825809379861780920626480312931410542014749209651372792092758607523016987990638077924222277720127030908123454725429481077239737034039146442435342373896507538276834895319300323038123573277581433231259700726111074681476596569591993358129038449062218109821932179422481483166285607748586217619061174596616327510847182690050594341366086798240286962496101643541124636925838319700004399008969210213355570455004973863702409405912542135237690986524821878076218738481285500398242882407627703909821229525583609532966520949801381797360041671573895060821707093024823349140324553526063776904584497473280261829254909357238585008449776195127890769490434008034868904535957142759001891849859571270644566597643367850360849197588674861909647625398300614830750502964663997884805813870209176591362377399244259379684542879839708135480214176123993289306535176922609781193049814742027623483020220147421833987733865734094028886646797252125100711354485646127429895003991593030400727527237092357570047679828652926756109208570175829158873099038453045243351026707857637658700429042964166599152544762207598352698628132210003175392574909460110843084212169400971904614904573191145333806799908173707117672906060592111369607096592324415676421963313361351918553363834066781640694548732779007496946773488822654427791200747888860045618205747276386625988071904596233887052914494987149462034790469759877267211406070998578288212642029149169713773035082206398979563236650233771023258537285730922977596669257296285341580026795931202184871617920947616357516764510469016601628172390280802457410039054822631588477999065616906092701787621691248257364547977369766486684639713342640891019722108749537252474588054225979239278178166820118233296793157933301157282456209564758018589597389000618735250341847761057662309708815095127857706532555931558158253486889743343530830998131439788836962037346261458307586131492762685610126955932575678658297113433863811824079329904940652359486950699234070528502907488467688518883827841242001834085331015843856551060986191634254465836838180060573153023347159714730687100394705760130247206023632148626926725270877603411262293872196612111080071121590007913063294319891717330026038877329053702369735769487488581811658652135920318532103796658679255988989895133385588477033910477837026463519378254085168060046268113253724411215732228816280918172285055495455126350247038600412530932381450744275952838680341341573930615078583991319606406754682383986112073935007648489668318999098677931093156514197897027690046862201413216646434266079539722117382691752691642779741986200195881187028916973107097508458664020552988711561426151676466894281580491077906013133903527070203759293203409924816197297150651637858564764741837271463883712913726807358348283914831893552181747478121357908177425726884762343088102089025517113582582422500770760171628290002005457119640796692442668352205561031217536258087354726828330103479957763996847422112712819771504651043205999312437120934641177053896087918032188446932874543885567898636857580796369690870510068440800684233240188831150250593084521637205066743611913108839695612891979102762673977898765299659323344614376414770248634962816030299596793470196121959725793238382215214578837003722694107367727682220610703981793660522878951021447617273547919361244187050425588676311719207830475646290753936910356195529792249143905091409108869286864637912449405610867854332974902326006503600688871869427016183572768009885236991266239939532409950740205921175346700697759718376524613520882223921784248041300324864969247155549848762803258858828492737650362630144635768569271119189440223142046327842124505260130716550775573811306730446595797690340049930288531212324821936897175308031498870622562888604791856803573020298935024267850624497079985501047791197073007414433471869180033968741719408542818705722373709068029983717611283686976279608337921436754014929419055480864290725245460404119834553190928084175578199526217524461178643844576817988553385947652697801838169507853736568643654088797509903202261156388321666065761452270317362182575221383225850669324779073000427601988969901452298047628678765866552784084714698952748885402794305414871529603456622501113757332124529973468358911384607271571171659804133517091508575214743529446756472316922543680109906590447433213475992672450776527897830914975375503885329583288593767628666346676766473086770748476274314735912227154322218301333769856487446561028654431918111608022919910794017757724585283561162149556330148989596371746478300226820561279100727158199001386835568886348889984287585861959174135079125884438423799154011633784136575460773835529212448145679115675079213753449279823144801629928956382311825850292823641674221912720263653733054987537429024351830495576263866227965780888116132190150664619041963838984806088831010965725100506208833471298892855987491778071501451619543023007596740831405728447754999507128552164885688671039100568323244018303227024725463245715434959208310102239827356553398747509645277508199241652842421400174333468865642864190845393476167070986483317473857793867364097216282422149504061633700983771728689412608676476926627517793414019118884913989597318965371072976435513907907971640602388696257174155889227446300235312197422522518103892290948260504430062830393780321821534986538524774008681308873591465677522545121125153439217946340001509398070510117246109180556924537762482241488618832637912180679354027618236878131341898646666812264565882923052597408958723206388464004365520666763943406411696607715192703622856764349914964091449708200748920801606327093253668188666418322179386288710279948835683389165664336824448983236674281160292053905944576809381162546126220533534132119082731966237161856044824617862861681015265491624719589866214649806852782459769678123858708596315110661000335432490361110737625504944983870601920242840210216350689374164911647558000783699724638577430256405819584995934514961828661137466841503362833705138602049774094673054860952290005798442294526766180720814412670317229042448916116859344804440122856890902346020101602742243318016022810766232086701617103089048093420169510705180867851059312420537283637866250402048795977315087098868193940231211996303355515282603050253172209581951513400792007707030403617670585643600109774778405499824311397959737887185394905257985938814126655055704132525394207489988452150130582739943784732020525178051071646134135927092077741593756044655014613674410545593694251661043481326492643055857142554266983521922369340617719282590350297397917259820562498447050777056746143721900562407250875080068122735748834192221260838304740097634011339508825269968316257257393372984188743515528703458962076564292804028261167535458998604452429969832277457231558155076818671360147676950116619874386486528309452830172079025529771523681700339667581872619727355637966833278915918684497576071118658833438063375436757167736116895167218753830325786859362648553793476365002071571867161243025306507469131723990994697936232153432881260113516850993381101850265875020609020020282238004162034078527591571835259357171641886956128465357271434628925971508939206475577604883196457343895114882866897544694797245057415454375988962439510462185664539417451192225225514381526747499014602396733161003473439382945987095718650331538109699968623889502632542477446379648869024399567596860835696444636418301056474937561745298420099281144677177373682682858959235021249478795225890682575201216756705017385126073397605887085032274118451255399590757834757104995483253025783993947679808018487995777739804825618791883988722204481073456621036171669937372697496677916248483906997113540338622944301407466342878667148089458332495755937320893217676286926879727394954979257400502444702728193546765231497244171247059930924722519246691498635736487925552330295686183197756007000343959661033840439889100586077483230516359251672729776900295595346456883194174679508771567158738894285449855087580872070555518596272627371130047094920827356102788556137098150044734518348600416507515040393481261198146313583069651521788906702246572709118813641213960799933753374790045481539502722659955260210709249230103618272313725851623900625548476650437107638550696292766502405623931735319617738529382133162544812466715075191780879173475122439763908174092962710428057246474910995289590165427433059906192834205634214487367045008676258088884393919536382954054652409662470575044916004948812974773195712625112246320473265801764185500122987356860898831944085171751076702755771612255503408851245906581637176781022308904081668850497935999517534824872903828471636980436608669691209808675627815158662341643507228791234690901897665786811880780156177926447565187613578750804094817125914646425459303256160493582126467449851003932374233565258161893906676695551099079087790517006180668695715316299890235689829432307377446524208995309094095612190128596688457127318815895788602408405080802347053398213446526508886646770488918562329244512375689491136419953324070132172008857950271809136979760312152598334921315274677105414358030738724715359704397501051527104778615275613234632392235172855860284706034643854028645019440934715669750279694650942343176097763621711518469345774000772266517693752506318633940866816364485595507693747170540960285644513670176608350748946755172486541605942552926378157851196529422161457135037965224676636670053693730942302709925026195802521212117825013456133671290714709506505592363335926977698225436430009317898233427741263099797137898253747119797737822463159415205003864370170147991906708169103298220929621093796969786465322171302418046915847745738095885627389852019302906509008592652828795460103811805279458765837075581880728507363745050957228967530808150667930752172640691668711493039493826542140639005395067198356236971575834806095370253127421418915563006090401010899051999281388508567025216532513421197073603236526845031054314778167903840469180472165863772171220149068141667106648434626327879448704304687859647272127829106148756492369684472632550951587546792858187532500403240918526128050326499218590369380079119197786202251891824269429305422847011562726395028580419490297353206893700832619326954383391778004728484113377084742260429612835704661594125797156064441267441875435079710989293953148626457352272457079984009209083223375334340121494650721162338601460384989647922257095823179561841566505344995402043153170872814728078081667643381866800144590139188473279043858985029343884261134872885399311631275654442854450445915197665985266464293054897456986312866076657562158780201177812166365299138732302793614883622028248172719820870322333154638461258741036800891227897405490642978798792330633478209370042133361198108886671653949961466781421508872803743351266589585683882391257714478875489316286861252754392072096596183112626816892175401959909320586201124070163387281578630617366142767492028551757281688655806070542792907276564413433226759071786408649774214486737161658397730345992613539620213665015434770875005257032997778774472443145467106523586686474065877927716041824277277985449819874929787983774913220601314336656002423471820778526907527139414916361442288245395394455892614991108665006170885652298775931141459943325474447012157979580358780476049318449572665285220870458662493429584875078499379568756745935904203196010006260604504559605779641853111200476844667947613308571118188891323276622369001198171036904358312608018570194079970153430874245901026983605491090321780331406239591406560847623718467923473492117818902312651858727016865695863662934292696785353294641890321546594755857760464194215069579238603710193039613592616532474305604677329739616374745180077878355001823345487081354101041716292726181850901243165705888449780988346501453342430884643351636393063540387726421583358526249755712693635644000829564519516570875824748665661271216798616044652668914306343999081132471218459937916484939875110289200242356728129592147968074216850063011277089471810844387473204171533113870366379606604906478147505802141417682939848132773856323256438264535370201533022983602072796412317751246063717387225892081746856493924438666801147395224531046784003030202393496843548649150505954300864324673323093816752559105544213551716054582403639908171665834928625664806692759777630876557683030603557713598592861491712196965331852333219869484006078498556403516930747194751911532700822928638223714007721463875502275573218763340150939208445693831093058752598975622963306418007934237886292254921827911544541324837201667104593718764226652451638703530245635605302342949041401169472291270502304928314286364874233022524170866931194805038075525552828121877600026304446772478728260913825860797501661654164117969017814306652972072952089141322829502487828787841412060704266472007397027875815946779908532881805910161041225024070701137311390050378481529151006995058961101016980125368208198561842715654815789677035685135875507718520074278273327146430657103575659115264691879194973032042842981515197477473246067243412885385841268794565918947137479697017560059504260404272329306127949279316583372572639545658122404005204391262209404519287049953941468229084379368967476169253200634772088547287609865817537869271105627084436130658980227103564287295770517959859237785449402886124692535254472933370444033415346226234049485409187267488718556354783534211903399764050388877659997617609735417429835735112045708679145063281835760657166004373489741388243161948927429454515246448986744262815046837595920926402186690007275246401174462406670380029838810092350587960671887686893788095104162628563158743568781908347543464029333002581187198929887006759355041876088498380616888342915100229047504549813575338993615164202828768516771906422220266973033882757524255551030272772393051863924412871257144684492614028809906951337867972733724024929879573445810309795041081133838449056847281355856609606606322433815994750529888924857405007844485576562917188236636993898750743319196393422957543430599746043581213709794271974002547584442846367836429360870187988814557971069648084657389435811899405509795686137140851698711154774597760614787271578546162379033639361825658742075012210128524260040137375325728314945419880571096789009487063168359722173162909169720292272680973008146366831120017546642372297345929498788835315045051145864467164238272794208822716915338989050221837301574017215701628502829497397031109242108512830216017829900610491792344646188422863975719293236392891912236318420337320580361320291680134862477344753241827197330189204482874117573891380485012152276300514780664922131681096445310231395019524002335147473689888966436619111275953537925540258144803706345831823446547490687459029116909140534446105731052923512545667304481715797847299866627681382397749589902900461997801875970594479913415025735380121498279247852055935871785768884731040598499380593057898177666788113491467911762889103274657521822464136890280970764036260295631640792346677781997277490465981302681979314013990507524655559170664754685963252821661287219878798812048962279756551135856128875136492590146260573338433967950755477111353558274170677349422046273351140114971959563344475571795472935124481048394056714623121020561313789635458939086828094111258447264122731266064484776584179675516939544298717026047771547125418604360844697128877920027253287718240285391897288919379353694643693866989740889025794510228871424575697925613691364374812638818229012157297839404859527986354255353447020282324580828087762035177105169821061142143647785357299675031302340497124707033472050884132848669048386728517986386990337555932810788784407496560875685602286762214528875536612554260140493489045387273055128244015074398515760248592812999602087670093499184948180679348083512061710915895947127973567698781092157652085393382461516546003392250659485480412341174172873145651656547941996617015787586361915871055952140753007623958999018519186051128763339011859249519511016889508096881187371094598138042039525036535408431989132872429588233554536107539435420134310860183895580584867171326848023471428078919062078884866912179387236046658375514295454845829345941680343187747426614423034336021447604509347789922364429405796955537052725194335032608668338710269416766832023347257830609087021609515373338274906548424267915695036189638850562803855520885763633044585313075939983520056967271938334853731423277093693059545519410882243135189197121814792602732981629822556433915482427948954746203150184391297525059811807733728987396236767174602074369115791144222377142887693545877123313930797464340807383707133154550024483828993651259795218597295095055877257892799037414118759458304721268004504923669954806612609940113988984622477297200945255905521466676206338761519842919449151456771251939646497233589562086474682581234342452412496978107027773119003346876762320151249968198109395322709602845933150490379584727553097376235390510090020974432379953739189013498891445753621027472458107586103781195217485512069039102018039108970005032001427962659202089949860593112206064067314346963287810894004690171811031769581582400215980808691989674467710606714125009852855663567991631217379968088064290622506369463696863601023234487120924295137085718278215569285201281878022662521778932452521965885409369114269956173494878279101137025528740601932724606625287809127248170145751231689457144511887404502030684386067036240903729970532928745827809021808372231228577675582920455296625426428582026290025514966723375522943044504458459370692345260741633361449194973170405246451780718673213246532195033589109157921885898973216052620903227522287203821791930445304705867594392313754758973743481958715093590076463487397212147305150186229806201735912282557184242921424973954335781051607974327142269741374658980872632516805690258285066329969400113300499673168736754435753365249858651495550693111642054027743273447578591479104437865485110449547166639410287732204365198709465800571555468183896772262841134473318082548257152080926805138206774214262152450075248696180140907855623978239639454441743431809276203272009202461847374576061507110155307634554041099717147193674426397150379310180327107388744772778750113239186416938879260731298640341556461041400462708690988389727281296972459174980516832198354590364785123004584928950546000216777140793039305615230312622263757397489180433920871991188579887139174091173794689826588267936143511027487275959066019468358978403209572094909763671783090420775642175260707717794153437230886607384898139363736582171244745067793220082378240188910670448394598976816166660722916979990491825963575695356852609669849510854152593714997898027092663080856375314312994385230912187541199082470633459963682842568069231516604527683708505527991166449387618924126818350393700998782770455814015502711955707655217346659603116090985384351243859225696761101610718696731794351692902415113764901547261707587765050963703580563258145592352763572905967541449179865629377639656427148673091827571993449440629844566443996013814120507468796252836266813361294642766944663868042991706192344848123841172959076887168212608141494582031737939022900738174499038610686488536672925989609879831333678418309279089266350169332988001274581453939076659130582063416377330050592244473249037173292929731502593666834883743310019447129259480623409761416811723295117445980826490876944057170215148962820387928244673853219537237516114555511120981215909802729953345745823197496489535482382476504852712323465260416843183847126545873053892285304320027966451913167363737996149725480117859217148124190882016469109600396892910512117359911115892349894337978424063818498049660614150458150926878262704539561248800375325972971218664869153605995964309094514920140939140563314635588834481859721972808437578239854650051397513769456683121079589606959783872825448887125891669232917845751992904309790436908310160703323630037483540644427833037056560783488964980145192363572938642140836740087869192968155458698567420655143112695392117263671087113191872770135365529901869342974652703678734885867424572653112771304705854360076948334190612769942552895565584936582934989851056131264840121746131042143724302813539434101183189142628891861429741481124278509735535735279668608386734782323773682131033713044571291544607349521403779002667386829528405879633033159468782526125641362830567200833508614365977783909406595569839452193380827049085136880120692184932126698796997928005965310452195857912479997468360256686302344445221039674008326833979945112989065656054624338342721011989237378125420407422225512305109808809290646132377583822633441067235750826190137552402955925873175415984256563016243226671144354090679903394027246153177491724472432577661035119424894962069763534348164375555489162961501876310449644825046816210477234385120015651278742888650724104630418496296989930228249549779096154236131164248215313326914649140255020666463133358363059488964342663155331140297867510272634381431890327871184042480644988881481584298984542260085630048617227661922578325444755419358811527678772573506022941916384345109518982271456765673458775915626827806107965454456900798683017785356012224328738842161017387897696553764523799509427170581476255734927303976878408514841903253283639266213056316885831048926502384282334971623060153711882019903281505538531700176669522104364615011864654106393432778964026162178029930365630248809325086361997369699509613440646988689712183634457193700061559946306131983302505962566043983993160873789152670527517310199293833852302085150646940050398124191842058357983222708179613650344209664679087652320145048183161960760054867551943276357773009076260276633569660959439111620308526752978163447257696103530622920872424202358382015031819438499711698862978705532516861676549275227602518453346066618536593282939247790989894228255574963736430772093183887010255589365769956568342017370303632519464161842946554335156762057210472603629652143632305535772122303425894196522190423169900190995021158165093889984168075590392406425766848596940718201443779107784696602655869847586646080678913563181648294244675089619888739674467738977071116139293629258105635235137712753524993233030001377340203708872073848316307370591638349723697131652441528215539797619344272510027882315586342640331357245659026235470755880443826576613575928052327057605103872431631268206928959228902468886638344349332814316549291479045814571687795980920597262581324529521670476496308815307470915937917387731815807056949201959844067495059555940157245570482735498156737379406971955572758332297149435772615313397368500392260624419751176130932988148382380426971912884604021298573289919414231070409781045167235598236715906231602115036410115722426816688798973286130852649836954121236377993003519758085281984096717251737733674448349529316274043739078761370961817393845991096368028752756572102319052762509330163588818192942471511876560730752801981225867311088953030389557676370073045831426026050634341083391115030785738206836414567823317104662958839269971824730136854904010786571043240572079192404417731222587390867695792407411076805371730907406338913854572756325391028852633874488231176917111462106731626859335491122990561989962726214622042144766187863579910981862373258071556318958959616219779876688825494729044821358262398980726694984261876045111084710916870556086781959842714453754792036710049267683490995273367042670475543743023739842452716984603127339075155235235082874762045462619007762793536775622651277148100430893556397458671170486780298673584358235166020894341910508348768109273383879211644545949212955302049872437197952642074936084914728861690432518452648284800412296532512569785275859446232632868339454209033719098932297994819251176548553180232784105799011392939698433183769549667293236681244612314018617367331163390031369093110897614271515330466240996751630338553142453685884599908809209303776897638469120317564280605802186827300711374804328594437645258913905840702647107820180691643152576736965144862354493408769963316064286175807441762772881034347100652594073968844009981443960248434219655030684686843696178604251810745119039442872880349076123636988466120348616277335447154797288315146096773686446779005634507228837354742378842258865666366230829365566115302965274564947900111188555203806996005499963659161551576663688294333850895592423317197881426882799749542413647616872433070203650942849690910640626108633233234934950790168995483273470422630326617211077230843825495099769941383171891892189287442807607588596592825256739748713550020958063299241177333414554513091103887247541851313050762946262691375829065389785974964632439489781943013700733493132008428738310595678177736563554886967687173504105163771266283331488868714704246408296701301663836314091646117971603324721524224983366350176151659624660110544667597171341859666263581558129982268342636690627607388124229313858357772881501137245160678525353282338879451389167726425671239637604086638296126287440154264109089547249836336214959834270594634001356097766422725218462693710287520095485804761960774714163195956577612994265431608703221515734314303569960033427178873776294031578888391241589046765134237512032213755200921744633952286706344755298690595895451398545086597043375466609918579063673004013594033441234170215218014450690320374997138521486449601566003184790545682538475776756902700138102698308327913800132605031770617777948190630341109885468278143931695565984719111663063864592425041844887221007498203642881295532842902206056225382287857094805410790663988276215605193851666580661934950620495553496373783621999578660419229365741528492939401175878035412627230244584518270580461919382047948943724837269067172888168371374191492346354119182238480059310807005120030090077041325124633741672425127912874926184204947874107059012377058064608781373225835383106336149666659165677223665565782158675163571927514962701911952207546125956430456518804395972601091656888505429676719976366130429457414198079589892157393851996602785233339136302829334274743551637565829843900389929478807422511688112192451180619348754996757203163537623857723223733076546938568086979360780908555629294224329073129757710602163697079942165306771128747790656015946007846915123344064904717602943703324835653153701845171754784265655336681895784128750504412971338773126781605088976130505289120786109310049705633552276848134356171373131857093294866178055628528688375835978521759979297550456170039049414862379629688549405852662787796257607312528055815320730908421814665465826537652534448945232875828456406381573995748838008587904683940503684846510222338319054584241030799546632484263250010035173882206377834622593063484322149729851125934700133937112121896268911812117969338544379092499964145736448481187773706139332512794851519114696636491314390358383254687439797000530343951924867233214033974536825843941022329234486970049736674615393981575693664961928291341645050056974223477129456669911973444971259417621467082969764857345212560714694601254966162436211183819231385011899585737356111714771579230104981529092086557681531937881094910351562318540578212891351741000919352915683233896467328902700832094196376792316369801393773773575693480420873977792796584793546004454764505245097172379648238511247800291654320677577655302365908989508019323793964847773612245738269888404113665013103412289190324796714524158345884231511520210574604707923284819067704625578631358893345158583157953073519640434148176741395981767952134996281190534434241802969625481924542038607747862273588744787460883110026524599565272677872351194269513206665698073408467794191442694693199222614369289453186685237200889065588384443522781174972520491083033316147770151378105272121021249888325691457971786269698066755381296966043606708500789669482091641859735753299675171767413347693735250585966005358691368053738979557923771835007272538427940113553455866513161219390565885054708370864269157133510023493431258181382433263579863387240515715494917630610630461344771654493775731427223298032974376771939696980212674938773117072856185607002672686555940959538663465345941725064925149517407793518565499143683369253340989345220065730150310401737246026201203024341965248350548970102638233954867014844751867483144559637159994789929373912803549956047444221223956571902508792804528254689948954395867224408913245008790411919211322872778432329976749424702297098664543490883819273066105240880818361663323443610235227461064102930852989966702662506129175352620385242936161378121473781304040227658835443059396177317959849067100846287933553849546408717499523621949048416542892879915393255193349015067865287962140100094833225371821701472881069511918169028012453773621905842178315546099354672141012272880356768457673808881632005022867991746521663050245237358781192350407045381643884699525837694385084696676950326732563002448092751541847436182761118255804423429652924964554407441780643922751353738728653462370383798044318763605633283629593049658607583398901187993960720042403244658291419642178942249064015260307062391119278728626064830935774542326404607929385003656713392744364274088695876467810773101491563887896591536760769882338257756460116694981800042233151523846220238397885010160313381860194783325064054130038250587143088422450354793655246147784097809261101045081340475909161036511423574469812696213528038786354134698473313547503585939952538315405697612073381350142071726455896146156125829454351272795174248917934404891297146372067658148953875638247009042070642735853639267138980828867728930941881695760051270823230676339797467832361655902985986652735779335996308711538480905280975992568127406115743202453746041043799056211365616446121356802435201259146927472173897937104469509480123702734369095532095076237622930266306777834905395937757528680576098892041775588366295680001352311811324204335985668502782819508907134603833178670160630458171230091414234765985649173958274729127369625888962991976430124304008905479756079426486115943178001144193721854784908582227177888949026016924699275001290786082318349104614768936781470712006610887503778314848462308666961281298191670306270816218268251232656868821984033178527071220597202868299249430846406072339572169465744976887838230344252899808128150368195212154023486370283217724317787285830980422766536597317764784463420077803713357978429891706177493391591629454622741369103225930694694221935831436404595757281654202202526856436390570028666432140914785675836401939288393705905554258376566878690040257577357385123532060865019103913519042968545464330156831078567420982897424324204857091554512312452310025624198658784580057448215155391405535780867028653682148352176665968212536780533655584036549105726316677027494481314977868113413573929994198829726920790970782671338723523170125031436743943687490908074940831324657800683808619936144070536177285008441133138779491378943951806398047670348749514635572164588172554969767647696571038889127698598154546995586324254527416554737938656953359437995766685833240035266567204355803080030793119541305214996651283871314897655133854254442602632554406999080564780126082815388838379847442419357746086470747645869757404335677200824207755647335337910992317353136240526006365469584980334270633265478733191947687978927848966739608134892859775468296879630428379841244150650105809069555226905206547965794626186005845537438171134625667869039859464005522949733883617906840474709007760760116150602130983653564767189937669370712983183842819756436137617145144209657514674711543477096959970198331982793903027998857594033101213349799220609112111252544705627798198182016059966688475530097608844594045269766185358862736480375152010522860340777154583603791527240140505919781602839969469752583815777545228330625394902806459371393690722532943864353119513313235331079412570296055784273656222524686775621897533033226467573544120014963795496441414900362636156249049433483624449515907807084781598492818495952777371081377495241872447560119678507315093618330644670111294232875559471654157027376111259382409863195088228501979114229188174860007687889319575446750647605556767404077292547607682459975659038427235675540079144507333489651513733487747461121144860052003135050022884812182413098509871347978524134130338463662709863594344471582958525658572129992161244633989629869324970021455963916042846057062193144274305073564859955627950080405796053104213365453658116558698926097617511608825515380714194491779651344615256464101762326114455360557475881396834455332530793603351129887416801653479430977020709245646365261376287953998376836681726887210919848648069841137012190037593814721842953875793690726214150198896081420989994615553083792774317000568208278454566199981413764027717171005118622983483744822302550739964323495159473892179325287603624292932691356698542526315633973989212644642931963046651619981860411480441470142069550822803608802452559674495278548075683582188696975491503847519484457572255674671602724218375321175350887628204361004699884995077659294348049006013159989676340425655796282167271222278898445265915006284118707620733817023267926849427165983366188695106280304174398496208400502504924910747341780953326846662851100064575988082667326245195914817497353282842928221240510312920150995022146013202396969915485773268301271651304588961145987867786776268884497588197306969530714638674156892274381431860899306084321279365425858314771829964168852981133406651357341401798257010971697561057985134713184850579389682152565049918381658241187329711463811162618603420328106640729246820382005828083312313264146864201780068596974279712663478278760541073099754819036864833452500460058274957740482908752601797570706043278633478982573085293300315674272245464020896887500303873996076380339279570969221310940136859318627931640479494126617089753002337900697106216560876077941246058952312328531645506174911361424110924956587461979234894060157857705377249334696974924297061672677709778913773208982000932934629515692979978608663142851385626253388815773931494467527650369058017210384474134465964033008599234442252977684969380218733378448723316712317069562519293553884218989177320582049558069165687617830722159791224443964551855821694887986557630880919266673941996636603925375221185633996368842522365998668907873317815036845869876310690769597165951940517155997871592164650666882509380744526358262860447177093097720676004164025064346848359586761665166272378409456664621142700652512365027495613786304355619023657362747942000975425394873112278676884833021436789235680442133170022458508550211769894624627485115366975944727778032397930616096976496468427517200389499533871925906095988837197776234659600254071462427065675872485437814056307905413079676978994210387903742549830137653989427410666668327926800874935473096460901919224897271401346341585377387481683381804284362906744949627035791803351422294513228681008438574072496153764951413335472754658351969314608388892051514189868573240243552024136057821755442004450328816690173845563730779682066699818365475823660775483363617879488015185298066087878256923067254894635152468616310707298798645507905486587710848328630963546411368816103372486275397609274731523572214105376977390125950555681082380144223671751836453657719264407329440627560822135967525284480983895115563270946828194458326102573801390925971694324422483237544766683111676020110925489674183562287536821375432046690685978637346084084076184218142641984040043057308538569528437703250374335874998388999798870875586274461561316660705176431629087054280250267506480043635004122020251465813941418010466963358900823465279827007672654672413965782205731004969938526379226963893138234716828947650229012198541946914262432485231804357699024496016140493932469458144694183213162013385321375667937578052834895075456542156633625305289604007002439413630201880171902121442963653624237497028832113151301088942338766068845048173580886665038923017183205642598757224468449342840779619801751879025645600807644902310344323761369164499622122296484116054289259651742127629128422278852178616489670367579985408796393095092818293486516355744614655960991020063811978492766664379351224926744850487895538377240333552739679197074473867766839232772486459930885384582655228121318550851231792132404715316239262896967393897038101135077120552181016472914910529238449214395662338451933352946397505924970391373861815332832881965384887472941785265714765439396750040928214055681847358769586647866993005337587542138848584644224613747506138152663716927925346683887776431450306190417590431220781905060023173641504818275652668738640073550060261184101813318239344265108994365605471352272022125082246469036623499757705990153129362489964230067595975301429276188695840194311811193208664550390897183134021524490684246921302461676657611422038566799893920878404347541991264996956483348920130044296518774860586056708630385662189043513506322200976945711663228985254574686886233925115996179978888543683414257039124684713292112844568764890672070566719276626774698734055011002627563773318654094918589015310634458305443377913450991535346880144973764392387075494764769709063803848972682924344268788532036636614965092201783598672084209890205663086500421428218970362568717460691467348543076660530922747844742705233906729508548207580216272410020835399010574097018317124353809868772498438128881931150643912054542427467096775383425096445834611067290592292551576961382603892925394378765120060297660150812445008260312636165988897645246619973606585091166517680455055733193091631449620669406869090941007725303646600397062667707721270522954366087962104114650943959476763660151601808095399257366458861833440174904836238299576221295673638420821607449857400097202754633979790408109202641636474158393989959363762171847321365892735541216986664842583966572641499247894738948891320742167955823908463286872665846381225196535512510622388987369760670481620134579116882427600174502263168370637829239460380565679915756883220966838600883487958767847972849836541539950130544973004686087356087890248686446873712371227427396129351507566477687814835297794262914508026805802395474050210577403936493869450694740237074873834805016803152091498888589039342210688245519531372421737597097947722835139447852054448510470549168596944425654246372670295712682348203368911925635103607344273409734757124932195655921183621031112637476367158435117250982788692380638447202113345465513855980255591186138325065108124480536919583616061338940677153806374755924363250406371239862805368746180075192404164445759115904077833976184386015650146258184050880405432430915139580074000910839250717850408040346254369179484121326878102940720018478895024769432534568076278747032034625170797338724533024766339327839677861726216744852345791488499142116605028983425320487751467454777047289380203558926468636545419478128569770263119147265330385284106089547074630039163325577082785431029265336347499901711621017204683127221579535046201355489671846133659631257342582964202660805798989307053722393334055637239782453614804468166802538286007822343600288211513469093503743188265845696247704429468657020599649408494008925033124024789550356732957799866374640056729239146764732626862589720570626533145193513234838535752753495999799027062258530371459786476484407561464164459592424004472017685160724769870580901761052007365262115540317472031452438202567115695869966091755724869156205075933887311288965313574500662978763730314171035309974217216541407416146754253078253821250937635100276115148640561294546048731649261040332051083172047257421918340022810169510195783822093732654826313517337054524524842238425787011139850079587611960043787374371305567639595528285792333381243396611268154562017496191692075858818855230734523760146636860433529747554231389720832917260842561279804524175819945634015328806361878816149420944075624511854733761840277970964038624040393333809589408116632767168820299968591798938179953219243297950050951219994751773880546537024416261261104889942627555333561468240207383476888041542674655400260580192424060117886610783684352623310497303036772727012198344870264880592196012302887672028613168617391083743270220540622757502869075836554981013511978599218361653597735906051576579902072827061241710514478477259063364342381423394536713621964718905585466949573664181033845430779611100505882448163586320104367297458037842189012285835113993887564260369738306007014013947028715997466731355332260582672846687618990431051665943619042615014499168142740630030469066499955955066800861658433099486363393778365280590589059786754433818424322131585221824164399648868746950955218696624745174600368572230011684390161650546269630903247736874942315630397532670267987860479070874292219948716588707825937024905783579090785365517533576196094037935366803904180989435914629416423065458996437161727972249458827810862605402964642199469960957085590778948191432560632127777030895716694712751821814878164457901105910051919729603403616979017066155722842173587203472487171900334074217249797261082431280346344870945223816556638703835541029592811018539728229598648324676412522261943857636534602865424623936497619303761898891399902236265663969014788210150036038116956583623127132003503636137527073258010672444949737027370377656073603945559776586227912819884833315158324924177216637254157564499794467421596451531622167788907469121549385497777467696374100659230141117111463357400470234381348563293068390308772670389028273679064704711402271021567548456373276995445007581999858302864006256096709797708929803899003535604810211574168963845751070278377642476498757879287791553703823220247157948468789445031073929918619088997211423676897356208004697282384976435326226531626144631361561129586270661694824900902396132397335927560746233312050078108524969791697332703995354604844102576225052760901164342906215451865699677002258027212492292965875674050349952930475758909379133359422131267374226549137787618703830775329048436586684636372658958625218333842799992157837862008323717817298338162809753285403524285104321944437162826814779968095921344322277028955169719552039197735438579731429399750304022515292054981426223902485068433440670647713635769411148806219101855385548762620525522701555145288851714994422208525430896501596213701423984485056221369112314406308717075745641986866754419270462424946566177661076840818614349505489585391800581910295271762165340543403726086256789258768745056319138610285013902402319656853467208562620928981161346919339447440428910345867703297515104969378043277251339186798285033112845403931310030336995397594196250018170317658323362128525261548010213194465760767557457390446458821826556151034529451570581852754194295768116124706029149256739623239642099002971013784062856124480383877312338404551654671411700299593086437588052226158093522206310641254271375790355238645574529112848310914123882941103885189344301829037849350225489830908010443728078126894340794700699548289286985021150529624007883746253056991186875522748174692581658364544622142371456384875749107004504232646691372141149756389424395411288202627614246181871145508800445607802570825717858851846116730194154679962405894896836084341779637524255024457866862771614036152505087390769483123656755779576787376008471752005651815267986344665150064891257490368462400668958164581373844993670842447079867744748485173381411828001446843922233108390564439091118437101439683308879026196845386385514600997840900255101473053978933905012733185155679830854108068780268350405523510182405461278050789117829988393568617353538319001102793399786845739046928829897437403679998546966180158215429219718305455194474024075909590754978704839558167273478570296326054602069713353690176469831913591849660961943031541526005345234188669952618010183923783856436905611913617401745472434455237838415444318921294775007119961242696167760391983108372094364240519343241991768026865530530879056691117028848743152082182479807366757790910002018483423108142086640862168202700891470939100754556491699615059753990469147277901336010274200463733343437649361955089650936819664676391715189614816644600458025770434478819408686602746600490431233135712111208994419637232508034304923763278154747650029048831620760367164588912476285948272713305738935457760099291932475167903908025746883917168685506338220453888345855776904165779772007118734145976231310297606900612259090541343648757156208922586579826554584359027492397760363167438899675144368546574361236957607813472075734761342393585958846713039791296544643240057332007545733569400611661743322192437618548589932252511692045566517948441666601330187545207701809388630258077989233189754493672021935340965268993575316191763601913801125187619716944850251026021365426969048683886826977486318558651057519289754325069080272548249487403223176605836710565134730223546567307945273972100859492769891314049333545966607573733811383742462692187565048953359558796949954714489143248180660288299406364519889752157583410476279097511709382438192452269209584076176745790942624395314094452083573386030111581745613954517738906067010549589505167223190010245419154843257479203292371267718672396137915520839305095166351518723332394995776203349808289543688697460907767113493105533710594171961951987853167022564098449323241003647744424305449834254405616779689657604363028631951376671757853415115836067382609253494950899674406490667674067726227559843216724274304236174405166692449376487977955329516706591105135283494030101066134140745473928343702030466481850819075802683501783292277798856821114092961636976317455316871201579529568033531005560170030846808155959700125049853319228857650388678270770462219455072475189017124453600097081079228029390925234223130150545786969227561735953352522220131114237611190054063637300139712200905373088999885288009099040694764095527226030240884104691263463269524111407204731375951921165060742156301889116302917349174775932728746562925062899534284472024794594438962512560189242647661660423314536548142271404117505334853551759069835019909277717110521625861911809971704466667828417886638637887482985400287943069263492956099063681616795924725454662190904344484600556373221057642779993795502722406250498435849880669482789325191908142034765517856598403747878260430709614220210527511232619067586990383409450753057507644459753357066944298356419270030733791403141293822688478099026792877341720034679192771872188934616834318080505557895220889569913543318546610712124583992380762137939899190438159554711926648140236786156713308755464229600530574927575328761430650704105049230658207984174003914198134817656793214003781946579608802325687298171933145294524070385051526648596136333938590768430057303807796328986395788652530774817282093172407116124445743948111190428781146317603047582554326103562055899649832100480781537997746027053197217851364331781481565135179859656309336706891763046107351470798357307933197425268065774919834059004058126624853761239006304920752909480682468243356918411397033952079594147569978749886691946809822695064862468545024749842963763080185331371640851456294822540161254033400801999105956484510183980696520220136503767834175150000449038929320136531636569211671283441182114178209561778747200655054967299587220607781574662683316938001831269836633258125168794864648751494289252730765686535582444728374405969377069958875377335601422999168591475468336535256548543462289291613028570783997996242188295858224528586798236636201132086177382020190798234771200539835768049300769693803656134017257484511529023991280339415833341228374334899442106838632244439712020923307589967839464059138872700698527533351406545237286045055034622872749010022922704806449349641300625087813987030464184114731165705410443909950918294947247725669476619176545069291720582458008628618941266255682179850540534563291653256143241674248950505413152498282165942596042263770761559497788713812006317455379111919066720421198878484249502391540830678739709264758572496010093569348327327261832516619544525808714861915687071902094853308631698249235330915398455944380469818705022343917404005741565489296129819470047071582077586982339530970515590120549143334954919845628720835415409490546123848924764707591467332225065973086330152566229604730802387700470339494569233641109817097839598407592093988951970760651053231443396592796479302385457554584095642937709322813487932073366965820787234753362558801182943771891997706229077963393515216572453293076698992227664090803524093863595978992197560889572300663441093175495308163322402103498822676743552290238717067293969784905943316793089391107765195680064199278056064617507978045586683190153480604777060347541623573192773376011258187812678635136402422177655313396022297664475954838402569259262146640127428803240041318740954108166885594073694169134044268972616902757079864269034539082041253313805149306588612890314851395930250497323688832918194375305024569157092454219678367713362003444481393083426292674712143868334500018980236392052942006661959831513312115925693349248197259038874550254230925479303093650528488764956440473252137993925305653956907603697354410767844488191030565022370298298484474375595523573134851088604472478446971349896835593105550030588588089324457525598538535722045043295734302856873970234104503179235284232212174968095625044506951370096300510773982998639899277524577852004689200215331249320495698512381696813281865292086820723571375613736867353623142985218565347949163704438066381547590953800418481211616202562176794180467440801867620231977980746801511061391577068653344579933142606145509072849455212720560065986915282515001490263645954916083557537702609170010641225138725914343092907838357586757106258477640962236831119204337037370907283920419961137233909529461047288052900764588855086543026718125268887597939662575655691915514258948056282436864083408848159410481069089092017093668310535394226219191000176107586744493625123105963592536300120748236767421220624412085498058321462236816879553748335975778617655529922062743671949239095203935841592684834979425328628048712136571945537250070657533769336486255335333594670387790171959253038190527210677461683711776873942359757711979799366058849387401036496569577389420649242586280044696442593023400924025228144809830867018924300956831670012007471327075789015248295236984125294561678675230753975696838145844681348735973761661550972100152145221202362655205394506762109059839049693010647214662076654610685180457724260539064399071773119352119507453966399924779406195266810890327506234447902775357504064133368212177834248335725656378963703912227522446499053404030330358740699714918576236135546850798527818066574104037361683659015876765664129881805060476377644483375756416744696023847887521361212008629371183112943920229614553929773910908790286654171792658538894089515463893480035104007263780726958244709501057369790744055853137593930635612481783061076739076491587336866832070706954117705956580406399244021039451707188841440465439479769847914748370074435099630268726694749689981588905139047084719892105442712685232657244544180806985699938314619308120379237198759809604544170193530608583104009652926482883257160755135954672665888850399885950184724510244236822520799781115781575676802432546950830069999578409053108554647124569402118032109090475792721798129244691188579472380244154615127649080356920667109213660140682335140396765662196945710627145927738498741098845370463302362909563872549795093881546162373556034705731873879357887034909117901583144527352608496405943590958606830615436558537072702770376888278457821466643995215351323458928003873477951390777785361793538315093393913231186018461665301907415303904872879448733741475267042284919108812254313543695545668526965470407404695733313703298509109358814841968921192421984571553829296385245054670795331553943263823496521354106041063266599266345440819978289958031640679092438450212861598321809886304434872411645330464114377074613686610760466157723593448107546078044353588219563880496282474172776705954138272171372318437183429750061994300305678494863300361180677582370853193653565949011177282941321901080253712095330818901207773592131723256540721173363520757624231310790122415983956318848264561876545463029995528639667856328372665288817039920775345607711470180229085817548182432593346806090000751456919474498405495337437707408502215524950403456531026967630131798495025025137989550936897765815091850564156778002997415720790076348634559648448499827956869671785521083607088761365070722708206528135494820966041472148145117180444010996662188055783307950506038160061013956420246113526746754506127387042635628850047562968310315194601666788441829447291303315865991245568686545168183894050588568283320812530700711779747118079735527271965692280089874808417650838657497401340050046109094679420393965282141118307862977040908581061722072213822329487115411156711302765916679994169649774291126482612058453410723801741606858281866507793368791120783184636503922735750876570471661870184968572328501314773381779621060630152499780947339125910607911963675350775267418985053679152619906836668266821272492628372334292499663423094247732009419010707798255628081554487932298760485505997876703765000028926713863669596717636464472232647168793554944209839097099816546848772437739089791016453516142678521743169494050215323270478843170218208893144687489269287579804937521601882632938869759678415261511960423193444168694565810333177829188093022088635516533361385661468673874616212642889275468495444896267183653395235520794838941654995238154634375269476776695369066479734836080634455515578743354130563057529421676099231085478832649610963643209595765547403297158402183763119887187746658416615768997706531131759290339788946996279552762765208386881122697886883545383608070595491483723935551261724563342014519317003086291587952833177330446415769769684376897706518019902099361027856945062536263665426145416711851829319847330729398566483405037307739214376904706053773643537860826644033503683824146207887684075065776500187698629049678709964385890842053373409310270094799253893388684138798914501412738174373405503914927050765911542213199635733393244756799450089269426678621586758347011965394226738556021479914896614386282900953857890226925774454963640058087033932687051523770631997954655391228258523564933586264761241471163619269268629138975139964683322606311453665490473365264552127381578194957511989793593952528798463090283680722700087046336448965667419995750066662835878896007122520353669923838119793593604315596172678935287052456390039715985640472715432927311672614623615871287421173762688323934231654677992604668920731596482026124561768904960601092636245006288566457532400430971786117880224338946382857029340387267202768377388340710931624908661837090542409223662556013696927239763144828083142387206121665013242014818570760779569780469707578765808415311581235480456877883062213100290128651604988401423627174605531930349731453546683294306320477197137713449637312681341250071821302293457301313531595330252798903900852955814330311925949394032445954298560118294869163436858972688067323667507445407017156734628263370290278707221906515838753721948040184066088742459209861981345060465813600168655463956092470669101329032141365860475891371623628996370398084866679682436893848922366414058257433233482196677572682298873199444883509372698252348327415821445774700104237502696595780406542209634557375483156261478791034291204733686751405335422855059494992599539651536578812808661463527889050163730584333316814510628934780111333691036848473130796217540850291557730060792156657652533752589528343206979978128609456897776527713888791156551876336301546517959365559236738568473984659543059694941568492583785327102706114910966031078005753531562191030998121253514624561589518807567898192249512618249705504807421277468848694638938515782294689173814138054953879868367688505267057400223125299720756318323341090839199574544609795079828253241541668916578672532328995644782020245714103387852400570335849986594008328359038095791079434056313465712471988508035017175567790258488111721657109944754007611787871879724455289965064479755112048947584696928792393429240026956801111994346702373268278749068115737165232376348346610139259621075322720490174748164534463281374828134603307211877836104960653306657528704319160260891911642221930121640024656302948174910095596673399702125007747302515015308846219386290108393998974121026857435357335776477393742122520478095008681941880584532318326102089435468024126049405484300369481335719868587131993200960909617439577339520827615766229606090913118116555694790549456344078104910959069527682953548370477064799108493801091576824925620364863665653395190271549205872196522238014478428172609967439791233934776460210373383568084050787830174927838562828246052891259345773694118036993086851250338933383676672328095694726502270459318417622224766888539278491528814964271432940021854866434052805911777828291542504911606760110554406973425743842193167703117903671211465507096600937459608112797734750198299027794453059261123840759105059699665968235502108791840038904041864364278434330667885771957594513029436319573545006628841582523361251714689291024336220170879775508472476599607273454681521732522002939036468215012484515598686359311202752581210194837559885520986104528516529496059422151443219815061394109574582655070106306654852019237078591591035310938551282581584650461593130869535498462917203324385806125211425401203079359186477483019047314523678960511434926846202466184321776906864872584594685252604955045978939683032065009157878997827714970516428893920566356279292172596990962520668202914392379874992521624257486903995657520002105169922596736923751154470938712977139434742860995423306444654217271253772705997110015218432047077937431824184968961222292536417751272239561179496346830777438208093727914768483482230931315792099316535847194293666251998182560576571547614881411185328387806102108639834949702115719273322312112066974480794396340258658509916617102717670923999059400683031020856485998450954922709492830565729432280988690216190795331985683454236002249304113087632348337246596065685853790840659201659161437003342611838843412711213353068540520734830268123567385641321260958623780456732971348123406250115075731254983494350067837646613127769546852739842943095577904909366727954580069733486651411648354244430295105417520595332973209523411935976256922928661322640734990608831925886555536034081852151136990407160617827234960733636181771383147140706178209422789573291782767378527087541344015068643910064819471199164036716443477737599874281007204983589638112977102935627817938318610537143057255494375462563262961381034477594163375563109135185270781383284094477929777474538329337557015919421980592794457925776090595111028754135626801166833755993294719531902414744099216111213480538892650260129878754996819797372800695626716005799410103135586759474840922871388287400007238416956850040773012774219629098571016490261760123515638923971991478553052698569281208461325790568522257932298032518378983364223725018435255859055598746088295197922444122025387406304919337097411907556056553165517995673904276930488730583316703010168084259480735213270586425314063111875605499655850036858678954170910343554723565886052925749096508913834021889495829562589729293286480737474665524786271902485160435764161612101871258630209038954173982708090747454168658556722402072175252644642444821539594750435804671348012477906580522103646686394148987871287006270071158877164677462074677101213362184913715306990528722622032492638943301172136190793459334579902426418127232828406165281663336659500520145432332643749295915917830502009313065502933385311593559243714768547216630936340314762706137612570433967223906913791038832961749725597858565293514927285400245177483570393486252045298599163579204662225401839496771150922783086054225752461323268013727085152288996100922898155315758687047463404963921504245765130491073682023771487563630296704928999724111662094014347075526848869020422545315122134664312692057782842133008294585190560959472761428157489572195369239082602522092862086629772884253089495261959913339412845630537410024513106104955857528890239565219115159071188534789884646762488715915241174192411966485345114940779870540967123948180132593224512752830722305818553234567911734780542281030659499542954127800965333496936857017730990355021001310486677849559754379434047037518837271179319824445054920513889458957658793677147497279624791066837783768211422439991925408787079730908492449981172856176621624077746945299915913769140406841809349415175772467098183444047137612244060810729539062151131872592632875949620129554431995732956931168604941121315778513073515612854304971788217073183348598776604215633341519739064098896088731284826386243399430395454417237076899564546511911076624701087796071125511355297785495499916286979070064709393446549839185009504896949809445131111676659856756428929056613136340894363296006096397006222945829376201596136284391828938693432727790202939299511564241430438153161640788791277424603972319062792804515852644188658331582670396526391726072339006405385514570521494904980998523481562172186710584893967306291871987179304702147898522399583188022364744114630685972219469174742707671140040264491290253323994936496061811369594895164099309940291099366487471570770977254778189231731366330258728924608740874329914224800340451277960464087524117392869304180699661901876886242105497358920271255783903278777661345563046078373823013515539906054804992424344845267151571906678867655967150227198110616149667370622078015468444160743874067621806429206541769069974495996882474754304318954638197962200850459289990961531957515558889477210674317952079263267375738527844862752659403847132508922842194424295600142867690938351250853787999691314861645333456212375320589715257387038636285541477099109650415831083387512729907355859536857307755308748808486419740255325502272873069615349519336886586588715952656343964974572760728890975313337267808832320460784461399481899577289001020944512775270760060018910981544987135697846218550855244658085193960460569268417825044002669104309623016536562394494780345059652066002700266190162110663581486039101260313333268781265624853916751166927786713937082833866345958781511164159654826186317120955726782502864606290262864706727971819469631881951662470290624722059744284757642148443246414025804674459497445876663653667409306200444040546200205275870660004086156542505962362628851927143563910406952039004202929280260687866062487789637048035452741885455536222921401797570875037887545761530558687088593696680606655287527967111732160239630170032756502575344875296633539173692391261354318155661890000151940565129182696164593694280004932937520756804219410385288826215758725722075189197493783151903948881230259803277480841290071195683729227102709608955648621751697812477248069540894795034567056629748080505867311187672062004548686393971305313748263153608886580799575478042093152177381810287834909833535225655450894891396799115486134026863100957170846135714573527244051246292153875667099119240555855473367388399415536271652409364186712149027447101722130719275884225272704987407847303634087510140201614197099066118197294698090283608319377815391701784869256303543705088797616942981658934714073199214056999732095691058774527658658040490213808543559037972884116833379680847244218487015479183878644814835492514609663919328840675666596933880084981330609322259508247225765168358282050381961206675736876019776015719532213127400942218083239701389452894952788937372084255819462211442037088255128908444916616048530506479329280336039497040733284146047599804357299107261788164638586605263289333041499506963673177983855070367358292122079457113566679435428519343352901508405218522568463514886074278165061813139404939255702059054675492114592892280157641239168304331784522918529979016769468121263524951512508964510519528743688251401243509044557971036915505306490163587737230669510636086536604398199375824594172749481178052615548475511220681083888724707770449849658915081369545078562621364963670929637971676464227449630681570673946542458895426706336739993783329210071558608665901194846532785968062630264157290826253251861908051809580738039264549015699432117721608867672650002830134457948958086505883440870349922732987372887783267640373990414602186948558554563880874575025820695855769658623310217621852742745257582366887016914712199704319624185269523389110447812136487860140746949096941663391231971005704744287099536672315215508727788908788361775072471263893175572683564523475793437443413687600940800783977911322829524099239686573432279153456518239685533416161022563795578597730471386854671452399962236781469090057969725725855045461130138506406612219021379989458823249926899489856448299613287948944608777850876457468677381040593865564186166890740387810824870426791625093990154659296152197932754648304911542861387897344443729439722743359851227086799864492440261893978287321925757703467005078619597246605193414355026798248415582487415226778109780075003909947167975490931138447987217289302017156294322093728656705389035932462180828461890448596958418396133843959838059424154821902065430484504151484987658459980124171670542965044222666791933895058955590850453374102202351478728637969301079971688120740548665334686424304217458066425773116088257874202069135507988941353775962105519919128873798147709688319017642595213892884960549499170977659421697416765660718881774571913415970107421756686922458221197497654744550473942123865085429785752242023600008399504566525652340061708821060204617428074421622180780557019138171603206665856213440859653296726149981247377456924261507596184868777404364475019312465638670787987845042741372557480859047855129370838862700547098377997408023137511779973195489829545482767547731462276637561503515887171812726737073965900675809012077197324670169437347088703765860368314773416987782761327782709484881694815016958001993979562384297896353860678862984764143674944040199852627274911591130932906126999295055127089265983733573493896329019746082764535559316736948168838663362535282664958239509547287783037804737003126844177324773507379888297515975696630991120782121994242153891956598058737429780066225408696873020482720444523435668663350599919657292232185816200218249557674387500613277625960598242848542783487744607419398703218417081499142819975220238895449702490071548721523429615944886074245450187624019932634257708411720461025207416732933948425286269528973390447038980972098206431209475754194015761446948458386753524236158991873313706774309462983099480196488072618909074292244198748225161914753107319201936746820861513765120501609655238998914691792418289506886174430638084373259873806657294566350018626741054562798092653452842580184206632701462936112785782480229253005432234388352192675417579131576667817720752449118478939327210191377670115751929702431064820572548939416860717170368500233720019066224082426202720728879638448944345299620485169436809075056389931428266666327719776110696118159141213609041698130580070992715957351797351430068440220453117990809965720738115337679407127445383786712530455762242107463850742052017413155975711213255778576267148961877447377680206928498485740050563829732374016978911911182260433090869302279323040819549572788608441968864157140082318588472786314833771104902084957947099364222764497516233293864521615676040908462147145610752251132887401309917041420260813030140851880809796944197046708096007272143599865940136992366793399103531883791394980030533378627215526964826784409008950615820178063003182193304409190595238075041679573434466868310591100914567894657911425585846967945741772431609191273234813413777744720927346002331870544510156313567474297830456477162694272008244446540848938784007976048307617797459020358513428982916208545344424218106740116093133898012362096803314901820884365322926748317027851197212420522844719272823340502203306247815041898204984518799316224221293157068996929278500737081941452280497949329285312563402221174158367741750649888591116337796060777937873045944381569439579655886640797837592407977293289968706809822028125653505742817659820644837227000957961970088780761811862815456594278646418375796373179036714639348283688560451631829792612328814951555558229974283730703598615525900595125371046500932600740341752567896682039746692647022328252575639742168939861403208730269318448373443143251339805506443599806488813242813938002933454769028136567932134547937744540241320764154676157456359750304687199322508369873630187518031759456757729015570459333911409994845611428738527362539145442563108758993752763863985747116392923749598481603441503309878794078137612130616520837954274610523457844539600461148696678766378528426778630019537252213569342909946023677207950950343286469918582935893206755517619052136774788281920693016057430479311475581103002862913614934835322404513142198398666158613921590594341111919686871680974916665094951657424912709706929172186612681268466246065429963536186261732486999446770173243413103291815615362814448849616469897355451236317288784739220763270641374326068516055702282404670621002218267218986924121180778325749037781890942094118765394069010875417046515163190775340545365958972542306504382472201044540751172629333311205825681992540076445504355657313664077989369649822434424906869548788948104991315229035384432647552564554867655933539560081417889668409588509383324452926566801400790755136437552876194980947158411043729597831694757003394499915563965516890592629283233418448767751223173150660519058312927700892059508094286934269872049371276345966943435244621651926906070257725812268007793756751119556651687291238437172382925578165340665943458604933490159488647849172223444845910734280167111784431287739009154893061105808921786390227325357178597907365373909827204192829680566752227726213956878755671931633987012184390244828650112714652711992612359838766181734851910594494703685190032038101328230031833291947750070503764331508419219297695512903611655140928707515413684342686731615083767108777279562591195523288453594144620930203303792112011418717868593299432193278418964252419241909246520432510349712872482416713051256141991608216171560582014328567851715411154792866293940304600486379882897151444683051209860702627978959762170613420701211918498004715490005606144846385326039749858419520430529877632954838862949468196054076801740049692530094715777033049812145327599537009503869768922253660881442441223911907257601323936704074973144759118212811297755984339835779669464062983877821544626739151006943364219446377664389078551190331408177225760587011041290062222651402833449134174814565729269245679539557811285208421623676440334738992978216563488311276093352541236529389629907424037397617512546104451079014794079949292728894068823071031693801765174515013842982426226593964821960724961575616162757310271058965683382473732486456644905564660149564458446818723212430164956011014377146645855499497725084879082405653182749193339741341002470166921215057013116427179562263879724971094495670446024699136547151115450371470359175321865278342446985338579697552807866618784671521490927094906236844467236521056191625537630056146524901127899442344421157697511158043753913881026073536794497365988271048707679349161999339999130674945204400041732242754669595627249414322182445104833461194803320436509790888305655798196647943147414730070138742909746354232317686101123685683298350288789265970747088583495198505663669798097551824841512091969087065604052282062933141132279299302045992440621251978999430164006625761283841167917021368069638627913519676716398359104171292714929565960951291924197598538042407771310188069526011077004743944819588075778031472458125406809797612081841754844927075126402223097565358933559996472233396040491216945386804720571591660820722348164170884228180008050858913069815130088865788517688730440998780870516630879751560417808251533144908362930451050913647842646474629360582489636441730984469783325311339361023329186380290059943423520684114237130525845277143278465396672340128873344665587735543078080097128865607526284718414732355676766781770786808304398994146867644575506013236297999634359497829630701752584594117015439116253119327040624971971627696029738583264174281238615804071368108613965648437082916882618363466894918061169997775443430368262061003182091336425898924103883837166529374671031935417130493285344340719111091391986868863420332749281982196354912572740499937312612608364095638743493460372670637313071917608198750529875302112111349532355959488444184655995217841989381949976571783242573291775690257162040819642441208214106488920684316021542217097356933725107033571007574409541481158345262713319440901280074522683788282493004466595566423570947076995860300778593465819823312928996003149929280790374360882930269230562277324170556740065954809510676262951964533865280827346802241841332108015688252831902663367776814300861059789687567784176249001305462812572601321920386646931175116460769932948542807506337641313845616468277858387589123728464351178815069405329884460514651230148212276502285081600965452268879661553188737002050036464636699650779011592676996627815196931112149051309187719576834931057343441077795876747111075851109397154066970704489485604968619380657386177078254628321450933540876316996991709635113153560129678667222980474052933138347640914480597199817311799591808843012978966692342914866947645664286256432757824846710887770954526043475529214003704464114919793394585429561979531662422044587481291635066143009489091597988566739096988929273660565627652695189146768016471555072853183880121131979606058122333162626792426930909030382122383793477616174340142448380979905724167427461509149770976722754368016652097123416463236495945422745337279493749406078609139160606169552718460997398051538596611192564709944065152432247663780484930782611616656482751327967182987316073746305915238080460124450769416612354661011434085924773884852990087624844571290446728532922497533238731547387534065781404928615387512094094174904959940441971893999797558341831896859487446555138502352732189039675644382928100102632594956385484196677442012401084300984201980381522414977748174117529337810207415103968862446283134958886872110452569430778989643650485659055116743845124296842422501530912516118310404002673340570378602679903951184824854139819751342904195848008114268982699206732136226543751572916363730589730051356430034435220718280845878358777315391526648282012905920396674802060173073179091827498145147225967385878888850266221366154604918394360628876694722043337349687534570937432565300966072982664164330117226054485928300291077847420723390920223455511580026979673375687514905606366509703573823829120761134846574898427855766459442507195741415788518606059494903531190086934885726416828055734593058986787960291591385394193734295001326992138005819909668209260160505959332242130037902531058371930234916265234648980298888356201194795144128145047312255145341084587628703091136941023876009781760280774395922450989483902421959049517753972504922286910624835815414328669380685295574512268721176158770721828612845994925693958246235104416688264538718523079653952909953816072619291585969042785600016518975214247781279938423724931229299618334075061019643203445727887721989732135840022020313570102707308047234514221963055151161756924795127811774541894876982405067889941652875134955397513039748456944216022330194168838451339799970113996223660650208144558803442626307385252104682679832292874966236223761019308816939954742507045181692376282637583538756569950862494247109637509197141877546849307676914816570044783833786243909877854787488290911494304109874949232913054055856289533197024936672536456317200594611981062745945029512233071982923847627364798602751841602625656300262429284511276964942737710718399046422747504517551730254459823051645821123025190390249671700575915121902959156176649223443175203386006063743894570329603693929827101860712603506127408363842345035935561817652590545117009959348552733232922428831984645607273766416431782157117022664234979421102299796783789718574452639261593362012179700608770981580383958889483640758443050522363864650048588352648497178977500895276462305329922105741619136459704511178443033158485638601994560464334743039843729230041737363248939396438622654844471438029171084173196973011807970564432579716539153014862667644789474913728827524508070205571166980290190200733673375855396476833913784358189641408051192001987488878015841903796662298377562507173968238188653749827903425050649724443575810555928364579865633611793445499739002230168230441276723189620389624426725979514305421453412600056143964593166005566695706060779270936401471481481265699287735357090684417179433998008208845140702300442364505230547878145944925540552364182075023763527356053069445807646101882399782607403940930813218366115507891541655381896346532439721441155621025076649365827639306160264909192707204033012766909450201239920644059212803376454269331148160508388840971999990587727243367781951963453208850141568919100113240233346059053282586584909829752676592439815303633009716367596313183407299321170422625860459991561185510878109828007545175111738519020909050241690970160464512675469107689650388685882825716490029143222196723539916527934371413581410272879657825492432040251363081297035547533421834295568319098788126513143459115423967841473318512012442437625733879123506563895570831081735393472440945376952136941799823671791904768523805410987704682768212990166136467035799801004099346174987177980079031294510338656497812773553017967702331967697049942917464201960269624285921703227071287012983513770293754051525068178255073827563107461919825288601237285155274935024060255443839225657540309247367136958532013808059195673809236927326532266020519202270168373875975163840893974147593691881195849204475881821702943262227588642987969774762915870645105092476107214372154498374777007657213482406438070969815023949453503572627306153911855222520875489236666043386684940719199572472382954050726841214717575870558049104365366895878765320584557349764317802583671125487080079375807822151116348245723258761938513516015835693274129944560892293543912563787919275511255040392615891333730503415771436050634829312649217746650230508799574732409559014063901418328241639158259505387953507234257977818089719489049812507473875394209936012463650485647529153292667337214865949624235738953228721285525478162455796318877982822940320510552529784407680632131893725026379352912183056742574148606753483057780130021673418928996676662782424388890476149648710037129596849175553374355769601075813722350547534182315738991677892620509183416974469877270962792190429696512370001366502052849011972581954857649469515227035319757112656818065229524632592152500424181479327005565617383535854139863468733158055526917824967615160368227908656505018860631326359138438450654889406766458484413121755138796229006856693030361022882203403580274236252211699211525491731437669739568103867639514718152896308609025867768658705676568430699618086668015788732683210996837865159886394640524463045428276367175583441669361062739479745492953385937559903299928105466029190466111616138559966189817196521050662537142353102016020602213119936442355229397791485515233076368596336593495448616635398703267504719781128130787072510431784488888913032270647978957346766231805261947445814364983994207744597754831990211038479625698779219753968866883818544791140971722170021378147642624791200191401257875571081874913831446550442005069838428519505564079249523384619080958861217327124240175650113716586169962783525934264363472636068593253999218178745199556927593204424472028990829820677055191468214158145375823685379599429588722259497440771659603918181661436458324188636982349522114131996222598783905714418213162944252034224872963271660750415045981188805784202629017662579858507805302642233326092783418093757379636662906347973454012855190368042997656514227817563607941632366976227969264782245696333449731550255047555667969197915689736445142158659700184697538557187247021782699499526103828063526542587593435328132690544685170811513300658474654176703716986531208082674211168774444633270819457026111291509936294949849826020304829609221694345108713544294504555433726829711129828354905576135531057851566592746243309782958692538895515740600712289862582829851655859580473665433305727350618159561922393853316541179533596538803225142323427678864160571493704024232783688712025370580107717277949503486742328311151873609794030537840024185909294629816285985232993530384419472482350993348146420359507247119388500042891463179278756829149059038734526483268992347644877165720308328497121448124723030926985958821114326860138693625401900122770559864890778342576881296360143616742528108993866241328708097655056003754328999820992676495873135829399208404550468461702561118095946061319108272163601028191662638500566038176945662216142176172971752451602234432007758188496101622153578688255621661996746276548424875594616081063307175016789784573209129693763093528804203010685622302507727636369744740394472516717863012834992025547715643101541664899725569491570246854534515798930112486900477200415142817321119009030808262811122236602059000326519630790314715286643211286766733903967715704722031658349783579053023389575863136596379505087517461201126082453788131659176680273462466520557042155884524726533392445092468769750255933489391781885259073117528474224209868808099148763928602000306382570680357111889817530886703891732318844888479257857474993486587446601229246063409502802261288646137586654260885229491826920990420538172435468689899204090534462528058120724875266552363035564930020152417133603576201086145000430668796008434436901701846955972079176716947739579771139136443058932256199562759525083517138087107771137753841128607184273334961807891487487703574146419271632020322024387217363056023113792518381629767198513270006902266609004739199297525783626327785880443944296665587398681345046478298551799579958805051936921635385880018533533445344871066686323427599352385360693404771550743485032322680678095583150158200444751992869526470976243119112734084540456269120747849257613187352995751972951555090092891075463238019075532833230570663961713908037708812914488814966310482609084329337406853594618610571151975674361156622023026286974516682774601149160863838512494790052427539208452100756582491988181083799536853832380789819624985045483288642695070389580065653974776668110402831083439639333560079434647296627042056582580829505787438459708457602005885756939969702748538980422806834476571974370397319139018944229393554664873822002203038635277289180083096177947948224988194063900773496928439374560618153032448628452441110540247509964481012962986337850702631568779472003036360953999509340823548965840185539497564140234744660921078780545816196830293091446758636182668559332706324321394198178485168469008808575525497284580214176874167213281931936187043233054973615402532346993008428466561589892149495714640208616719451214959879024464056079005156811348295676863091754728895325971777924618204783629900868009312674408063787564359195526559772992284945108255204457687125904951779876341585482814863972159122047784639519807999550542234185089759816345172569913875194039665291719059010744677145720320551491331667927183674401565031891906775677853842903919271919112148995488524876048852382237493835066499016989819438572936546948494271099205432534483400557712777494659333495738231800261752078432802725781298387760071461085775906446846512696939281674414261005547299288025604547350735290562966728857979196676279066111204306397900095064434850518515012963689868495243238982654291072720025127568972389696865032235855593405296064699849258810908272702784052112589239150838787202376545596461824493353279860975293711455759647276420851063627238543758512361384669881362940277907253141418896259162610638077641513807549439815745998133246406900943117017539137175450804964251674529111028354884836363040984385051543815866707753673838901118094189215201823900705601808707937632437898679087402021583691016579177760843834928636333302057806880235963247098635850567004432878849053111369828895023949402773736767740573729620276522738152869928734519668553048524093362258672422934190542708700764481424732958441305142154614813650610471278325418630006939779897675738131040633444879648485368136392028674446740421050444272362112260465567080722908226973618450608963182621871857427239769224486369158925155654843518675676345316462065187131259657851724719385068239286800811291234183347247228882444733709692441627943674099501798386604273127932118573504886853789258453334607101656783690082448376960423158232026684854876669696113759991787541695080116365574267509057515957483065835160285948408357058052312643390032982924627051547533726768634996936103436871898319072038889809671574750592446232859204099046038349973042194144825500304107220376303934604862534959997710873335349755238510412995821523435329991954732272022947317716293630700855368829851961473570690823509792074908596569243357919389327185918965767180513416809190744422581009704623443539968711692930002002903396497908343763052880379722354720140265339835130173885880054070265519162653622968023095622894810056500662224316096897133754829352476214445042810254658795999133376023783882117556014760947701267436299027550378339576209277692603618491793607104055201053375733202429277481736119985441377663863219783256429639976328666180447623655010537954976419196207105171671751455525758200494036234780294516861867851572955200534513353729086949974789279748350572858492557878029727201050094793840702284177668001676207257397232579342479413303068050101570066050772110715452260852088864809566912406160031494118399509657103744904301325101608556709034303401696362534557376872336800409581905322926008609260622540989121445806065683960775208141414313591330277675420608395624301095999942861839550054193360720418877531120348037388128779470294106366001257276029579155861818227929589616268666834896967510448312625112205497997702421521835014261337298555725055754063745444863266132247817183172869237496980180787159247100925483998259942519350250436879153064637228846103769399650878609048237690359756495788993677803769049662059610797812124183232911767978149509599824277643454930596205463585128936983510011519528476199820555092537853936076393472445089062289212618218912396752852101950833166613132413059231467702069128708838709986903106690684391573254418923556549065053422894461973026416875458772400599418415076293344216305614704447582659131468892690345532310144572132388991232235123289519831201863324118175690864836957811700887360074895949004284889882265114790082422254661944703331485449392881294126602246941561615419996192795591800726942386719874294324148457369053490849754442670154609511568386978390440143677835412943107453499971558085995724395128434604278995281378939989769108415386566234464113076550513941449672822759141869650767011180964018646313778666107833893713464241453969510567592583076819066094696935388337673916378897377887840284763801077566341441870255245420025823394973655720660400855864847555839174795888459758621822882284074677809209294797058440812887042708195079461881017572628173378700640828705246342830075004985715102289105246960757027291612990529595290949400562534270101875747469900593295591314133938135438205708010161884913218813871109864565533124589021739443214453213055311279243601073975900298140278503057595128753893407486144319663752542863762542198005829577469509776822190072383853391030828202362958900002981084278420594815739636639530703428409301185796626429334686533765816811326523118293569101154997702739185111233756982581860609573653638905750616347825292271249989809947939193727197141796097953975922704879052402920143690490627337001419133363940805670208522272226558503883540444892419603419759030426194549020421728823567594399596689982319428587792208382562011067984839551978197381923846255829715378281851293407982851199329879240107104616987680871942364257141419682434540379343653067883582145405845325864068838659884097280389936651051511061614378028028497577326691887901052698877609856755571608309601189716628646011591470669540669891442994662927359250152622712482743879001485668197050701668823508487260249661977059905809545225987264406831735891592491634207699922459640242958131219475156926493125952853914655516881652603618570171588927025362794333685843391857993389572260922342250185414057436085861343355198986848051858877684641733930845908754057702603503262831325131912369731009626970905170720906540043369489005940625584588469324358398567487443136767642631756928825330833935760650954843807594366632002878437467261661232059374188664426490431992788585390178327791950576888272841617497396770097284865939680007967497189148210592399481531608565167907336612274696169733489082702930350756348294189634969086755959341800522060033225469124790864180642167357292496064270772998871639166407081686094758463643219373268621453517434633251980339487358254694296566090143658244774000699403024979007926135856491349832185200709448690695754022156976997343500232702644027817599493494949553237099445426062399938256931635748440687029544049627443781585646468082960142998515816208529907771637105615889506751874699313845519226912999872519955065771276137319854434189892674429543797285339094919190162739937856941457028723204923416762768900933757061285812509429715370893717853271510902111848250465402415365976921655629877219753025539782124089093241587807772634757907923159729334950575520776793021708777199268755110452455427539442842683806016563092318914850508702394739810938477210086392869283456270526204069511719308664945405207515713166492668167286200442414456839230249734565632533775057994813689803915571585269280222565768981445889678083000668749217163905191995834467197790293026424186578880694293771119393550096717274868118857984844296996541875572287404900330543904106468529394545682001871384086837687542356496441951135043384872968827400804944709042405993896104744846216595193729754469502562709370244095762536404249463757826975059907556105847682526841898508016351670574401706971317429263791753055335965521401353308127433932946894482923066916825574203200641632076988223247177377426949904100404874340366985460701890370427343597598189373963574928903066819918386281428844304912039596318563410579663538738297703454727348214858230438032410205111240169048700541179901874474861540845110512421017755056923872187935723006681557072849481102939186535508981629187287402487900844256038515497384040160614101787249280997219522190301705449622578857734428903314362939664435231598032484445617375683229653107041478014147844960850673915722074067319624146884825145297723429465286178494211880456416887261448181218448275010322788668050363853295559383514717101462658808604978848964677334567147542551026183402569734614746919040157489394088821525883453577562803344839298028889252562821373670644331511287653367701819940921064754135325159489496816664973965782541852178262131366918126970535459676341051084902671821530015036867236170402767468859200690340767446362822973849288846444217750532933832360374733878263016741250914355906473364994312292970587593187591156797957844509187926067185978318394997256600798969211335244056040430893777327882442772432089076179458536910880687287336548149231592960553367846759147489744211784757758145714094056041003650391843007516485694212420636721722045482508219861492676643963444506077944043763678847647017511087946269526882824443530307223729271255791675298804570976336479285356237550785116779174217223498058912173762421888958516794716691485358036903253335714005878527443236105361731608539336637627364395407337610388972404250281730965175520306920992802282870215447700442144040397323505383981604056072080092512463995065961051205485244197950691041189829611935975264695088962057714053376218377602313287515081773566971384249470192096299547637943784576072267059088448980665999052581689472161305892788180564879250108961145828081312397316978684031956559543874829864802881147124809089160879908572778287005155228353454690135212367753374779649572902667885518304753326710912314059644527615879914827763413167148311327421140496060266096351866144612359110321038770490306985881141023444660070720691920097974692869684144550251110373212786762142302066302679857830624520486924775284488397676001230669648977288543233535012532819922299101355865698537781105256356706215464894293729917883237659590925673875343849398679506192259714447842200425282379448997704522600361479662600656472004228132041184567805842115546209232010055088426850258600509140386686208993922836733436797823327991223232021728659880426405189820199239550614320075058237100817580817597909564476270121394143976561673747005725658729993869760817866167727158713104990513454130230827744956584733378784125026361098754631911041717993384217750657156744761385843973712318827747390977976673750941024725069460055068111104352449947134975184991059972346258676115892301893049716039484066090688467809209146177406049867085138910149738832117910822409043438092451758125943914831681326486933592281642003201330892440656455209742988197817768379953423180497522742565936445878103121706134777136948157984112218379685760614389328737721271281066581282576690532172992837564210714225759793460838954967621877858063099801520793126119245790486461265222560747578951011057503888299952574386088198984228472927523484514980960861305461989138374698532718221657318313836883191897417513509628209297109206682208286824862921145298373534004389397545017858916147393355601711975894207680281495058035854275118371282240863245545266460211839599119853538821769722800869314632592609292613373509807246605581632756027939146453852645805229815517914743227212242172115735340369775239407846509793349732328050731176314315531217509824285748489567840538842324688846189025977675816599955125613216986898021059821146349674411513215527951420928272861050617093652728320783634413641017482380373718221398236569200822572484238511467495015875313449985074985886154806456250712529157824534676194778724284232549909017241387077062794351995279826584232359783557945690447507337394942764149957465112789956054396104823257275682223480144269157949046672322418546784928914325095495020633907372289809235426620495995028766690599770406307985686672345350650920727135665781179942066985714487640730445944643064088412784854167034551317442553766704980616891714501567524984303801409273640300066667654433612438767401443927617950582810846018857143560811597760685728997599444819150104600518907876051116860535428195821144650121729643099936141981720511448104722665765961750472543607949284490226336569446116155876538984761751423878540124705075235020873492691147519671075276928586320490532115221548624207261326387999273921573962447509934064177481498788139099110926733563015031137647389528402350493132082695905503473079640498428445908398385430498221720504981182403119540270158138951853006738917307523511510418529932516564632125244221279664894950256175546600248363783437006936136295850110861294117261040216228003397899409302104641121512035824065618366490184407019326233416050691194829544648516655977259028070580471607982266964882635912013987047802527411807582035783332367751108636614214304805678952151008770289058221650863007961080552380001547640151013624658250016053441025001860872803353996394189429273167943262441919549344448017844096949071449453682930946392628935340659045412229652855091086119734085137911687247496073893331524485769943864208598245169779366845464738930970370744920990654971086307715015657803443340031992130505854616343440848243095228637859419380805579385890064316255334208380602306942194793257831125659379653538814386092574553025180357386438329336242313836946965316951539592153109857892658404003907786136721554257647955015022207514054577156453499437987222256265286410599561664110826703948089017975960255159414390491071472040147826462795849359464302315739559170577618040283697347728081151853592220173837592176278266756582029500366245800886432280413502221828754569818133428760982268045989766307057155757243223101122280287956033823018818445502003307362887743077788920189000843161132780396041269217328379131781074381267010804117901770472778060921957604704003694675683358375293175273688793163312688383490346658318091830550927652723249834777899892261497888094367364569181117879797740625695148623206422318156731524486306614212158269506140855491652903598102006301986574032747855426400407293856392826201664259629602312870618323892809668063187039867648065377703814439274659466515007186898909659842187977600889340383657825147957221730346023832313338948078991439737735774435561390438643697360626375677472527188343308699033304473406459310735799998331425390656115745077391685165854524257771318378966032910299773636050595023439773355257411476415153441023321185447564656435632439254977417182993903183959265222668844834113421744630575190080626578485020288010683421148272002169319219078786187971050042394094288091229414491612847323508345491030785671243255831519780157268339963892706741989460694228278840647727753752649830211841053254962442687691002073218508791640085751617028713683185524695083283169680662585067566197723743073332646335002262139940893233643253349467900039588477123715374615824777606998637074732905378258811393180279124298561062863628723303819491382968705656551997297655097744089001405826766586721314178997300519967096665727605331840891354583866024214946349437844214968155039839821728097695561692299538907137722241195577197922831271148391529018749128881802773064253275232903677532387805486999441920050536765995569596190174552181184792318068031939338729805457889224702066306124890490894548801407864641968618041903156701777422059305971413482274647289946300492635731483298004676663963914382720028580870103395503487035143719651514117188583289268036907373356746114450164973603536052856421612787960589663896664733166089414195560464785228567156499683230923975160113251722489243954356151903207106393341575061534445896628268180236567520218952950863737683392094419757381427265372169495908422412448845580865817610872171230943067959149327085660248386169881958666299390344250547431797249422623068347100580750310620146771174579876892585015672085923205450293836181298688138894353313993141256409694201595054486449605571518822558476447752141898331614282011589525311121947195163968410844265617287930931458730872519347836692727635355234916244192708594551527055977098745269805184116598453925230865837492337867699239286513133825863402452698105881660125847734668230944123573544201867792875371169298120106798827533185322220685700879932714596010910568370662715627347769943371303619636211607753179431466506012938341187628050578140416522362395425886218675627793211445256788229955374501523911551417917302868389540003328262468086393921535713844620767781382773855635128000646724528729318721437176531496547056671812570972007852728715844858884213608470198693491537378262483263933755076158551510454358017072886760252648824697023497085834193909752640032654605712437036020494593084313577837123781528804029162912241175006279555997579443716005453796501414654500648524883642892538704990027644138652138256250541638740872037943121740858771158766983272823981771201040494563769679859799427108369882807582795835001112322752156690959051523471021366115226586598497706203470705559778230240496530027315855505012360674253437115871275054183123155379586120136178136015723565925876523251373045968679234676028880432820985412176698797267826410321701846067255033633389085170969617803843643707469645166142771943307279738482591170809824382808862032939102497551507635544856139744353958150930005827839840957454476121063473101868250717586729550974223629905134765891435270070454195251398487209225785150310252246267971510556114547386860167450677590403197007147374758272057511072333343249966134663816569186936162002441110340914135266590020668916166253548224045470775284610748705402165164073840895241857072877294395266351660573558004299299575378567839934552166195674311297240379825199407180879400456185546506713407687736247767553381976168247552849522238680516306257649523739836449908839704590945523400939474706894211264755863315468644760270947491408443065441725655172050194630003542068892796482618870898432797999478357783370347666117060124328520737424262535982162712742713696893895680645590927998736721415896741234939080508443512457853707559941074976156127576909436198953860906340155427342358029775084689870205357629082181442746864035071912846880866336863779536296266298942792161631420399251211305520460994188591953219094616407520726627178563122942093927431777893426017088449736459236014669153050809539630700084024559558179690330332223481952340738326546712913816328372206802337997721304250475218715048072671694976086980864168774674684709491433259923042636410425170494127361333149471901741968875665672686643892718222991142360366221389584716871062715473795739719530303282670739995671883737000524599987840404607576993714667003643473144914981181168906065864784996720787902247372826228293688633571233336475074588396538217622911794088268887831236493091695776649588326583927673412563637204597436228790180609629331277051665367366984659949699466436320125111119108465299443991436026590056306398972484059430567914105402595259288412357926867279292533063279178925460333211584039052364304740782652814644913447158541534500735879665173556852351219596642872974232547309363601934309990456805870420609328018554116028218950719435846528319481990282700136515658473844874827119206446660196903132556422490782545931408342194182455941585899113606740465889353126727223306706155820324559335593277681861125887155599488990786261127644615521297501611274355541659689696503563074681111365873744896364208400233417374681235740264349550562039280983609225168615363943729142250506148696533850074075157712295020020140877643102656518419001595677022747980342399829901603752598761551576418746408624781181798471613641196281994967850100359051639313547040191079073811617421736388528701495137395125609426325799929945088160535308045632271652592319785141756676234846650076480786637464132218424789709300890676881403224854609455440245469742161836406447842011974145850654421817840742158752554159201054827307192541614797719232519238911368752646219420606334649498354439065517716773616373915510655832785834227321557108871286180157787947328004856903358516599768616346283083826758709473530490019003665221443875777458457985836642006840534667287629123852568127081175579956185282805795499154234059796669690046741748802508082262392674517246145011831508178431668968378619090061428518977556117729434238498880356981299369459460385588621676729191879491465716364592363014254209917968991228881122861737327415000195609714004706124668942256820424911565980106088175934167219310111683858058540643535374373068926992544524320218684057135623650777019358978279337057553787880204264693505623558205543027368301585770305417575005352653220612883169157055439751284693498191788406221700443694280309788426897312659713786190943529461026479960205456030558103533200556457779815124291641591491779372958946989877417788883771434789131150794210285993103840770681872183292641375969913187374259011794049337833360181937203014190872851856161895944671990560791599801196103461303488963563679870856568683614689913057986489189705427584716801062174583709571559332101802808265929489790616607590454459835255710535125187512596356219613941063060522712104035819391446541663022535860738269882069564070059721513026175496742860572192976514068840320501431198456918140141656720980852553131352859390693187010006278932761949946029106363207483756664510624391280143687778138813993013948416204340384117343694812618731769679503837567711489158500770901403483161538883851163882450506627982986015051494599270242742273530653216460186825413558126812060435102191807071465270910574867714459053184198229616093770503913659638888073898460069005640354696522037884515323941706762405443808617094327331614419008186323628058540399576905358732552597567472929065901506378693953423176903279788359574993624395117956888515370392725780497795456414496398283033697989386326693395670805705825058142225010012297250209852524669732546757439467212096303533500081761318823891184927433222477545554761804095372773628375745325595497972256796484195462648616461661202785854966421130638841837704067037470136199901866405218241865864920336409131142466962080590173773864621411842551198672651287765519545009856514623827139835855472267613504505804335427627769346934391575532667733054203438383176978620019951904687683110774961317946993560859844063672892101368202703006584400387796003838676318887097144466066983845455195939720505970114801928567288090051030101845419061383214609160868389698744734182419076813764574187380658352469542915843309049931465389000760840994920666897388482461153788977619762809309857684106991143321375738037058967706942935362463794810666769639115413943522959186546691584537354841484698573881837414137678522497047263614320522891115658904843098108334422998100017925942871918061026118987942821514207917281428292930394131810524712717913700491167352461874738887297824231591818039575613220440391922803901012652810726120921951345105563916093671104984451844961710989274966357750358441456488797644936196451143694515940272441175722072004797028703187320133777930422511172329456248795563811291999040433464723175567908886725571703773795134322847417856895764032332096810162147319786711021613862278120396444520045158284184044269062176764076310304760022644451425983430355425583250433709820918258649211203749637148385897731395577132693942436550111138371998925743033576350455521758807878757343713020253161075435581817343773348195893969535296677639002788789391902392012028104363551788933634521300508103143548685085847128437740459757317329723806407456365653929031246376110667144210135882851056771709929451320307839959315681586951735507195033657813104198116738631810233444550058802167356689693435772038639557165662678859313677989651734069575141518085859192670416322787021851129736680518366672480739309389268390798793596131036846563068583344199671772265117372858960773262010187534083129509055601884222961947670193001008879592340317309071578060548883402843955914268212542261834899480106538151014699828966746275748534600193250565392963220961844276703370920407203332373600463997576379836419925742685465044647211369516681726148977217216862191534423679691380654234889424337718666997434164407235038080807879832415760311751718093197506424652030495130556269171225092026510477682222246575607005396892553729012358153542894729488206769083904716062840513077641543673665226945377742464824988235592822721990043274596483441920394480053060113607476423842339341851730801824402040182401795501975442842662902103861313293363775729423790732680213216986467244490755897133723664400401292803351063912087545447833059609871399955436072510076746469793479498431853868552671256886958803280294333917869899164758671583580241114595238101740244473583366334669668935265828602129169483883156646841146985249391114096379747636588820648569197152841528554023058243726081620060966060865709147959459213231616831429850061842388584180432775520551428161615925063650378387296725553812074907424019306778598057240017416727586598806358034784535687462157771742350345818735983429342233246568716856363280191937263962946743065598553851667541916605671248033748045779209987777407079878382575036881088665702921209309526444271953865250210431563190829368322891751001193518866784135663710108121362175975669205810268651585915141048449647333493219853442071033819554611943727071622006189652462326054954576284459471354134988948880423890034145668359384865746503901077284125802341334250946615786619408338125729403742407055901705676449707544221210868748496293532247331351942325064710147652682525577439011089227546856246111282557920420862552647929121491180255478164837649547036749962106905726517260022312056285681963803750986708206242078235278945615652054512431787534269328883206098228674880056945822397634168287434872939559880425342824743320517189138957450204542273419563572525889581514163448948052317123785243575430837433373013209432150082057665231443226929083253760715506898061083965961024009346126106489744031762794679344900116986530868525958306132264147430864205638424628403607122710334468453024063239795948578162963741344428903625930116275332639648874002034454109837772149279480903932884074668065571835872303765956690616651826249085498531761533339001204785041042218067519228681179221491392221967020438103777358479231794693630339139699729002330664793605790274764278767329224112164703070723220624066326835840078733122747417458568388378340623036325199826743176979858572834608244860801594833342215045263661862384887553953817857991118943475643416486912931528412906256264864382147075909026454709760619373718178284439628578473481757168700529934161191433632517304990408554829716549725719430036172769233691144556893211141160303169310583024424267029247769312449553145612806000784443859611248150396727954345045139601904118624524941039023612604447559306889527765500779864503022842623066188951474348578863942983800391926209995300710312848520501849603164866726327856763307213394839787365932587892380180757465325382518293571077944269861933047531406781747429875607459549786205026478034069181534833567787277163572080041419218638807120040781910848715631950622691759790920546454534119459982834805316332883253718338383331983207829290132840133670352675995496108308229540319981561792247881670321851859943829844635754494950495827354179533433711426715561192910795728208204049278599374094366492842718790418569774182162465091819803337694036413857113265448293946903633627079452575268982539800429067326463075193717803888174631659926048727749975770083010079413040858390843949999500821132960479452382460043108996487498256354106828362256106392829871496709089506743641156514570823331152912532257012031406944756886256129895046726573031931973965522141755873528444662064575114878365708687246277745446263413098578786648167269226395803062958544779335172187654971039297987309337933625340921268721688768943415936453565769674866742908767916518909803118245778780901364113040485239088861000110520887305525196233895753078670677089310869422168437054747393286222157331337367234374339415409031485898283090897866786182472255627782497320125074552755276702341028103143705684258437352733161235691982640434002879870550810105463979243429438088090126372852798284594642389839223371289497837348895500951343072408376269004070546912746309171063707350827287934102076649226403972117415030670932837244346212423005584976071587241248674325675024188188996180126050547910255916179682093311568115395826421913923056767840400771585851840684829040727363175507276405231661281446406204037706618707949480907923015770822830774568842738205739589185103523452999273567244144703865583874980214476512125183554247442648151977321878128623258885591369350965241347560171280725683687992372949447065600488436407691570106275766049546638773039931861648112125600888257502857244086472178963432454674688236339379684710163283541117236527455355596279048816733536990036935258091724276462952528170891935197908807007229686705276700896680860634013398210167616401647618251344765997860590527713504302488183508327430286400154070063793737441138552112402379439320673549802442758478918560310239011133060812368207293744757043579924380090098390929395992927047605327534615217135231047275773090788009164882077792548354681398778081067205768899567012147504069742747075845560985783193748850122394574533707686470958140814280761023012816473237094709819192225643562540896115215830336925390293372860174519516577955927836661136654871906246577446105123513547715569616198850168563919028252861623459249845504236320018087859811163758050176498226982712243813412901315151117923741701569087503993273167372883610808488090107896344242808093859924667695902531431713782185334386400705877882802417177940069055699178940054016265865913399007312435052732974143674966849981780342321280997860644300447938689185999953185663995181689267677775270285764601281382619265080973620403862027013046354573081149611759079368713821930396660320215975986503416692912977370849940489653924877188386258276535408923864978672490285273362418272080252721625217850066586814649156288889249582174754683039204830299832683048430628857784707481092833082161782212517850256509719658130939909771282974503400029085834712829581942862199526443501232514535417992530324985347158620894274469599519908317012085089692373205538552087946132375523023841460473018446107553296014499436205891874088324770059518629804941527233032361631801248435558771358417969441356104113176341525251524176913202782236968538655177143739005986294482704287784905511689505638344878523536785863156419753903976083910820532400042311947083121611686615587823313338916196930289933399674230092264086940105898613071110505781557052420593638671122219332799977942838255845277880969204010315494208376866882884617879894983994083854106725266906657633598159579291298575860321509088943172764925219699938242945337665586247691777829719758364772823891374342017993050870223994534911800353133757505509906613655628063361144224723579410011318335396462203465423444684121221322533748324526158769462338102087029740249921671997151913782694171792933937635560289926083657325752062739430690015486914093485926873423344199392077816417090497610735107124587285272066994649984138751896854002204118131976703676713652416118691970445030186644105479272233654105979278497661185642078437040249607226867045649596225437937025396574993106550339637473401755431670728234412113422901076100160489710646732186271009385184863878288561050563511212873272396210202839399084319043761024673984433112883574183738272894293365834587251980338633501298438904761812544162261243120268213007441146430675780534324154576971096665304577965639016089055656829793719411950260004320665506366810758556340725845388748884566648395556566407253172383633167912541865396977764858370077958051900774555855108090628330807854760628277333441179424210868764747818233123778512954271409244638060721795302580188924948808873597194021946839737170621998906299932185710250242428787214987713372554471541215943508416060156032769924443675619667776459306482398714483815301452021561679408044465167999164961268049499032438941773450875837546927008770425575600528970816998714897267454272032191278549636200343900599912251504991568598991322871812836972929734255314479267884743084478269522629686894968248690607118213920292511212791606486817595470922937580031417939546710036893607747615502434568438790421261308137332157020955050723583468699476914494872855148228986090483144883758044861262495147586755172494422091091293627915239468901107373275418587675165742803265234439739586500924327740451455255031092066670599503815629460067941092418793946719827758619578452960638461843350992494367257021062284833263127078155317416340349082646429888852568267270260192659261892016572112489913903879654848654413699494263896540292956109296897659247333465353584291392208974475279814179757916347574357268913254014712417270511613900079911614576063110120035437408544737482273966315955012579488310314899613680307531704699942946352821634326113520882409250441108959756326904568769424673485361049425667663445635370776374742479915171032614010672528577412832316082759738247041716073213265535482688025456278716825880861706497526393610510459541952652603305025681881242207032465453504895398241092796078879434808001001812196885973716075218288164725643055827155456706011446605073169245749150320345252753018380787734069615090332898487117686847364059041002366630650323682423592819767945984881483951196989770380013708484526982216865563322348895233074622644904795957683882079905705594283800060254285032107021362074687941887241544965618006423808281204877855515588939700655723705598827921466015629850055716241801830408879157132240193161293771789379672566454432606491043637084514346248414150303139870722355669106855026646829746979446804830345415054229840942883069643960432091024972173276647863791845475201168710830748516624255757897394570294747575502426627713081898313027599766955548453094337535810599383790540031006123164097289604672265510591027432745961181425527003694839793062596332546567444371564304381116266674570444007836254521066420991084886355186601136802106742630986474100737570113485413427165354738245224401724801265713869790559586036830071693851965696850869313161523137245763414791373141081575794434313601635684538189653943688610887720946024820465331672537216276074333458205965235048287094889049719344586821353482960313444525497660100675479824824475834307476451097273500466657438699309723491856379800197663894770918382135838179214975285997712117423568973472949739090258135165311281318902501180908572182191115126713306369037778147461340808332305156239751822214747503102004336041691568820101245071868890587082095712487384265422944010911955545140621529538031329299598532034115973945933345380459521112603160496269551836351336149620131179774124198478273341747144524228380386444528183094521685369346459120945712874412830046726313928112981266104506968605986001633759760500318299256542444045518607562707969147782000796664226752231530961188699686180761821870806796883616631966999966656972057511792690756109772994835320082603164093456295464784980089168427825476767197778514363394782701344379956294673732626721492016787055550064222712236349265206619941521190820526748728736418974274276699554571606644039310075786951943995389402511930071823946836285323922840374884758717274142399198739094455279065925409658580238397227567684592713837332211341412117055559471816533361234275289944711914504034941286280342814922208836445110916241928946168831040840478812463255120857256834981428764823656809329015611710274543388339439984232184951582284842018336369492075525763312068554597271087561819048822154221270965530803839626432160558334294014506976262465549203753391492899945803494647057913383698680955197645178565866523437765850006434921936144362756286750813269230030467754514362862637203426228176803645958575950957818460988118540209803854832816453150845583330884432673428338876299457200499704554010160323560147581422070161916894449779169532525954962689739878977187595538134141170121759316347867000892710564928063457078914764032887384573900377122619270436136873300009140560906835403806297921896049186767825154374369128281044458720281454302470583752864829072313071700459421486097755914892207968248440099152521425229323445216585459938138534290638066381958371416611566466630827776282563691212848216576312252941148022207504396366672528056366871251108429782721119509859708959632603654906644904096910624974261532015180630515006065649218045185357969237532686660994909400997586375691597128405974890257794537885961210745022029258587591969523126694563510940559976233306220730148957708380909298065653767369491884426332849869083131236424027793175902836103479975094378706776159667282412341006040254845712406162985079732814307933866455963207360945450151124750750431801469714876241232081179965734433135501079858905903150037107115832897090213431100005000221172731286679338156394857709868882543130394047019101654427555194512710259820933662827224371363128151260733448031957411113012510188296552295669570057239997704750208243465478082786482202927354902923696798650933991323520747272871328437597758902973354298280530635192433651075061328883099598314007746875772407200164634684598267053064453346318975952520906922428825211464228914645107876289183682370822261059903296467168538152364900707882585251355782544372548757379091240917324573548755142587942320948164372860451008091443720110608149339932612769525164997119824821143530666923312046756802067309823023222426629184938877125298835485606861086805043991763238685383378067665555614845387958757644056709286848185615799792593614335788332504503749208071257102296851387845656479718672188070737778271008109827856823863309527634461237906771337462670548415811554578182029564234032522036214116885196321093477599429271241315792847112513748083535561446396194665612494363423083561880518062944567523693520117019491973542355561093983119478236628758335022601136477424913653156767225362800618581511508119117015026362344723100749014735712585752130842926932945162328842812183972510916487427939941332763038526380674841292326429891646323958185244925856184373478014686195556634550955426479963570830897327714811110361995949617830047037902399352858729632494313817418066172398506129353055718653238841449478234043231713753701876994731322583502031695598941195378909504281795288799887485293426736687877297810707390558591364191583073644795150816765814217992298756199924863109079923500484116049686855613026703015400260840801980658762373297401516557028904369473329270209924486156435538593364539879392288927236594566998777720243838730952344042850450751704934519570119786937334218448884629497951816118419945944989932258671531440908819452748183323965580248382875659308059506719796614253979829515504669010893625910371549600170680636518543957707318040481984952855398220535488258066466126022859624464860440608926151178136856426968584656384680795117072297482695678126758777965046460406126049432567463434298869179470958987536422642729771159645249737017986746801679147038687878761283956330951173771287547233247712989230939839134402076427432795422957902823643851792727479583019137704897855945040238238209152125298108650266425378502239059243615191677895387910531754792600507391306033109122875202061392937366726094262429686673432369066637680339341123415844609355796397784500007106914487343320062831469770141830088316295387729868882672831318349048449136947490632437694970695085133391960697165275802972737762364675209997240800542399588329422932245485975684026177106110486304759516003900480689229871404460774482609631771208457586323192423058391045194603405700269635735719188126982044777246436573337612920147105302178363299056436293758176130027083910396226169781299281221397352660381623639527914859075413065395595304744519221564318415830975157737825456985305696910904312098266646769513244431371710363567679776069433493813051826606519982778053200883910830014858417431584396530893126933545669240973537232110569437164499273056242123241300583631739894056878622175679415233366126209645089473217846343033767924121920629482637638842707616325006272652647471116877011945006358891444082563795047331709842361639291092164092706439673655707192308692124937227148253201728089839335758321076624448883921831054581421700506265289350294102092358902707752503145592101848954426345507819515480544183737181787720199211246298005111957988542838603144875688855391707691861995512607444513628552808904758153790731246404876126410683297697074246004676989144791065543214257236393772689788633878063501407937617079681716835179918650999820358548974645733382241735620226263410849259970127065167204474385402556702988937028125698202913152040852706265654563610385083640279673337443845589003549032394444596494842099341742786801386226128330971299574142079968839632430466379480527063815373365993718322538420522603494361400001851584648236569372326111099242963551623104829724774463816619217865844372532259892992451168866115838393412528267711564442212073596435186313138428081151550258076520027699648138846560638558784178519957237760548390244473511694767532282523918051386722961766524506330571644411819483316974694693381526243746873660660129631810471977350298949270721548367284647765407431471539887380658542724960897966207061312787811513786755760556052545164210890742667952609236378933901374605749996635922295157989332319539009478155699483583056089747980538258248991459454021035784279144493545355023761977032318568783613143081539646829020309098330880901204116259968468475454344757591474620682773233900275016557251524673686093583741277774190727806392778105305514262694604503391010757463987855736064935944469411899355860896205002889212133372008552003188213098234840981514630276099771080272225960155126428919051542941532458149292809540134728791028540125360550528170055505233461743410050807278638511965944580987920123400178630031525121966789832058634821997501255103308516276304442287399764148912782387329428903392464984753036830836769357460489590200876573001955902007066350775598270496189875370689901606111748667777835358365069750887070727504110399830814165461859192612595499976622715082864020684237035187528303834602684407320463385249108914415756681357730240948530486449743551671075464929998068321173953951754940325667575221382411507978577121159676905177648809319527522851682637542046208858715521297971671307580289389038368938738861956737167598734305392192922961300102353327176039347375040094808601049797543609196251218739150731904219386383966239841800606918340371887140557489263470144012801228550296408758424558372220514179356898174121281096610780295584151484074377652697568792191346096756100615547171740561703509171315253673669900621383211549643648605552807280705976420449076398368915573742400975125312620000343797563386023439056053014417380508180178509969291510602509641347169047190096528826712177295060080991217728614017892206573391145660111870512111530686704015021403404698644558360018699335868944454822001421372629850538192185118047032562739370983430343895590726647312179421216162213859002195651673982844503110234572539753990519041409294622858102418223442283943671435909908236651428368887248252512491525461355369943503304590676685499875522725298699379260697255984816261069602240195264269042600236190198773146257100832586095212922456514747725135500184980843407949173571012896417481103763284632690278678941821537758137172616331728627571891946261495238428237274677658775036637813019886046137452361996498389610671045964643853277028375869897787198063997114668759685239389997519740875571516879005514173408898354358298433294286095204859150071783985279057166516814955684623703967631433297392871979677640447820355459741083241947738117637058963440706523732481951652245571750874042188466759936758611141303400873258704636991965133613495691908113204352345468599076964300318659162305679657095795892181968661904969860441373660827352751634039303548598918093333872460320301989765719016066866182670594330100265229460369085091060098106624308840828011779067318643208949067520096138572909965517263337739226056145705178074757400822353355366145143083223385436311037224511034679033475140869851279411550495738612355825823816567008164923935295273536784436876873113482091511067347314319606761544757772009587450569329479082926306993584986527117666117585048948032699798167669660881151364265256257946842669598362564465631773050789149363948088600917704707161671014787630163486115227961028237862427136065411195078852078582996056717019179062697959275302612554385460010443497791273717946000030440941556817065976782371696933286431990826121952624695874614657873017666632350604450878519190981277488834142863375113445740014843509312376389264570059245133414441755963912397419920334749208041785737194460116881987273043212304192615237534906464454113700308716323297753717269102184988013109480082725463554104031247783185973137061840545299528412471036482326803361095886971668517864008442225889443551786211454926287038397494617469095629372556781630031978411449605368916141358343013402436840878517487087311227571660161371873930323054225699307865792199612910187375314231184107469919894427151240964178138730745613018409936433975782123308978450934836081430341823138625802804986808384175890820517105978406288510579512077450684944765365973131816357318740297862984667147869090338038755237210964878556978198514744464646661143718430440705676001609333546869362446469958948901750849392783353395036790789015006311366969770593748628752981539680279738395494000303333442332278094845076626387296689239644310900531830505206979906214545010488107132097159460491657663598620734800793117410858989724558324401592611658656562609518344189203539086162920039711709851300163500939197168673945186407281135849346922248703180708475977701640559011575678922134968320193818294282639023620254411801177498983502525450061376871231542178447308877998708268768065042187059529722853347606236346162590428892305755912121237747898443952536557282802329115827583725512931695214947431523976801576077198841562687378099583946511070134937947969661401436804326369935889501100901540632139889307895564413356124928244363967065026857067950792905468036654151253749480267075340463199923487540485218017471144192572183070002710272468062227382136538523486526208880597650607882370622734077065834102409843427752662984070282388140602529690813126645611764064240302506577655607238771945118687174723244819963523662032390451388385120559505077070096847156717156919798795026937568439984204907778229122160091350838521143657197996840529466021570633952394505976237303872006971854224002705474879488080103972468239983027598496355194239800754759014160413077136057552367939506319184456601426261128140536038298765708972129847739080976700927926859279773209878975515849246704221661415498953859623716003856895431977556577397517004405471149794731174350480363882068307400105441790947468810230557994147701371668930278697372767658549461064324858932387265562306357612329922551134360249620712674413599095746135220715251377620018722125517861730082549656288740786718102332518465061520493464539096458264283187661826861499642171527330528925812549854526543673885723113696478183561558026051408868573499465351393393472822406416487766446974672951593190907727112906121894684529400180966838638674264301713333300157313955831494449132232316205961634154401498973914273491475349095408157306330300009404614693425473340173413098828059140555800870016069624069771222347675855553495962678776596912235387272719523724627014886821118004211368164763120427327576274328733744545083753095047919467430547680987443880069820339966552808260811074198553891361301902684567056459405738589308868412256871659820765712849876938405788055556652100984856922353682732402924344048139973516719486145502865526585958316376779499701107920288688306841910066909533204923309864267591697984704788867297417816429737014900332673527657716252561299120373721673677029479273340729173421059357320313004223938578968397590685057420930400790188168793971967908006265846289724241977040515284866998829903709494396778378220027242960342072375368163674217336243326726362766304035237575053691613034503526808310882413934956011015293790202234569849188253983892727372875000009041221282049781871708029426746391353052624280312463889561293221044793433124486564660126178338106591550690777454098818416708222036428535947551846638484106867436247632263127615322369192218466824114458282484635420937605556447479688600574004166792637242728734889775378311114461641336859126818813886250919779627045188493734970071574473698523855080748950758010188401698651099923497202641594802614116096334187998422120072895965208393887715223502945448567232488201637678179879477738168488107068440688000958592202635469138577848502631823085620126053516486618844485806063935560063718266601264927511116028609639127433261459450280066975542532965308597764571625998688651598759549142419323369096680106350109889016516283797962262667954898516508759062918326612343277414759069497883156101995091651868207635123639916062410264374572751546558824802156621863972276564684271412936632588603824847296505262150543701015003395012152106904619416903105296405019490199547298450604783676277739613073181215790343459876246028528582605816648000500852121291358791030935434644970567281395210141737910318691028872415177844633199644012924769430453229350137258146510645889504127842112455527095158537357800651333246225587644124882544109742616070580083007553619089547664431150629948112200851644214880431039244952835173196442186275733500152496667806121732076086218672077603132530409357301014528241274864622961622880443346439835485398762545242467591704598332358995088563722779800211094282324075522892870342311861500212912568727525825591516980348592504782831176602303141377417515077020980938497248455496976715854049599226035250059950151539623938291544253118143696344446466636380517526186715339295497315787109245290684290294791120650081401889395492188477762560554550646376923030000647956067794181341917762247849417682775802806174658807079563189447902249199664259383482518077415388517607074781739094887959745339086540978471771526421995678319198288129170899826745831225290780658042333226088723025808699315772253258920144758035053272191434995703766018304244362530387782606983126029279205825203682711666684935353176392860228484600377211650216806832551985563184257244894944295040734126280042854362432114363768332046538892982844311366450234996760292981209920422632788815656931074284184038104475605339743726106945404091103062083367842108962519590285535899067114132737910960019581842211113483876334500003481307495464022467789442836380244110669489251688337390671401096799591711592863526710202363413954892973890362748588014732344734993520262027156092660182691642632916057789085682033282334626946663060246245537001264814473238022196957749185570993141724101414459417715784891215288865973827018106082792667788729023558412240713898054136587425255828313334985683193076049087983411077428523226986830129662727612737034606467011152551603535129135997637912878277377265297852110694102543241269229450030156203916474287469678563369691063196010946436216762459099091782149629815638352218944591657948505430368052166964472866711728425267201016764864293574782920422872357501330738737076487017802397756886167907508475695158786425271612376547775865927525000029563127170286960612911859097641151479455896670651676071737589654069342633376962480074669278021938999290932262778969549747324633023285707744308233331291577076543337863436011422798930068495264090431222092615691966167528484086233596211772258269959077897273512277466658519328219130087993834546370574113349018996196531558553900314888558224610660719665921988416854527736533534767303633102589642462603625267818856373192516589072559055766364642188460258312234797398819041353159145814620170976265314889078573509612218273335981659161637059280356171580667561028554993043449638426979005823986081794365688637206014669848372962461122842192861782781105682938961687945622356873469444175234354033501587598589581376997882999118765143358595224353389678071498731363044011634689948068446950096013415379604859091399385230690128577372000785867717302504711851909044366966679451190281298893371294911327391528369309996668351853422147992946791100741227551580443960469815470369233050662358586072590489646442883985794069985644751872212553478277112132500782419158393925282906370816945755484868768868611285310620818988760020029712312873914438816574108936981540305092341417407140921261996748941137671514623107991291136335675748233829959847546790459204864049991365639337400517687427902553445372625418429459656659246644322248082657494556132238547993081896593991689110913363453193260801209708407691913912320620512440030073903415469837112189955236886964815488032163167689911228260785575683044966668019199797151645424446729055899346167082207066951767969781390716818669568240733962846046302428592079455829361188714205052089268849138825437704348976190855696267450320759726110724191418973060545556489559471641359739187460929657638327084816982986969340145229684696831159514989417236398580444343062502904611911209580682437561660536988799900953802343082999884898436987381182544768074539881490705822650834692344228208635603453327796504203640391986553063458394510535810861469390429268660848571114757402283006437865806760806093202874050188712610892446859711521927592942782217253030209766521991620773001342921413656157018755570556296698877697641815154172644051934310792913057115077708042769377942760611083553312978432041667799124722233370329469606596231486724741121562801270520955188321698270639044200598102638994873694121943746688333242323375704204755685335479829434935804122963025509266958932213177181806043450000993544683203411355495717570815975201327948275475232541701957146038037759495244824646585598748069356101409221782723228029200607566809449029801130207345277489272998963478114410904466750755872791657310735393402694060261023929619193045744023410148844472219253037037313527591118372574742717826349870090952871545849813223733448383691629220536794064883720077781281030869070616404641330685815164868740813021752841820990880641635690283887713106181549017453164621272038080333533363954114056973002235553012186587258449698810159095091267972407760558355837562349576618244888702260250558853022217723789628176172079155296444950789372611988778155908179373826205916085831355972582068359734227869600907169611970068874211706377920814481512231525144407793441140014906343082383389517861009781722085663213548007489809109923064184034929794733000231774531344942070946588409190187229926265697135048145760617270951800138065309774950999789066475294396793451680203826408466813126365722510038470580946079702058515687216133432169365010174051217920208568878431631533941038831659647478499453151947945145867544057999698755807867147004943065516792654598466854211017563811533833537000959872522895872534595197227175805341036024196055217947918796298278486880211274727711275652473832711547347604131122641457140400259658198310418564263306042655319713563703433873751412680801617022718319865478484513655918356565052540511742724402035462908482327515779763593328886166975911807159499531839191960317847537095916920532078955283453022599199291145368254706480233375741425423662542263680068179727357678845350501742419489029273961280692354746159155141417847918633257267409435558551331416849111249251900757413487869575610999301743315403928064816736698921754587109076327541976352990562076341873412685948317157051314951732099803902707278797123981253255932692889616909091785723762781301218009881461120808361723260489709197000978968359923405225203698499923281025109679763102383117035089379969959737520581568728612516800583338457643653718772049679057393807076668004696325480601747756414146545624564361836046146010247051347869165356708829940698581329015298492745637055841727220071806273283049135370568435552800248581940901502526072121630639579597757174053780481957423002033318738607601146952313359843605184687177134249277782094563797747836411359460949792414980883558278560483820210795810060213663567800315841212957620389670477301605274283347627009917832313926112287404957863288558252081095224386805855383499263893955906712242332841548414304204495006717152936070921847946202527120843340680625728559565034845162260089714246724832355018815269828220378573081581482137031100201942679484265687568829417636250884114716603202376124742282325266567966107274091748458451303288347075920863432212698103941005318907275894951814461436006213126705357807863165175700856886665258324472191994745804591812240958846465757898790170723826698787226005764559419666354420341164105357133334767506676606603719053260408568765071175900280921636340410866213444569678061287111381085381019539356063591864098841793908247131457867541927338934140096518623956626164021865051258995278104632114508812164112942007395311570748194534200536004568015191813285854319953181953703339993137597603720777438094068158227731982875902049647528786223181415701185891796545911791769195718444617590445318358472979940088786667802621353724983127210859759379080785717586291270217560704271404526288021415665173176072338216054374342014626582969532173188536383802670488883637736671341982088539935901059890515826893336532326574929617826953519242971249276036759274571419016533653129463457745579356406973633082859173184860987107387409781741931338592170531557438247616130383820116442612028249465836300794753173031607172455538372138142164969189670587722811760457732087589689305440925452393378251721144935578716875210937128391441846638759936014373601504568112613546763585489839542533083094599458466478797626450493903602525485465955339339823809956127499901536199675904195004353683106793613569275510429553833374698174637803061478682712468468638020527465782466133953733686385488528945844933035156763872231823207104941262516031886098885853327184650892436928369721627328250102274392676858371613514381517680810580544677266857471006524705948926219750615863379689247965282069651562400342273549135504989232474516908495800588860371223158293628216986214702621530853762724841173606737850005511679251938406113949885467977662256014244845280227303217881737043536122863979489195403076914441695262031262727582549924432782262295591334484523891553852798126077658231292173716505401421410607880341039682635648697944533917396351073949491970542440197498363003685919560041853885485866455634341686519021992563816346574618486406817331833445242065646738963420994690189934506482347409656306732465958030961163886299146637369084279845834342138064875239748195494082428003092856834448446486856257714574226001242151326475845136316302932064883180958226453164011540515963463508163172560904271333496520924756084308140998912262080307386976146888116359580425669766081901566557129423012028616389574649398517299788681963022445443521003630754339904530863800197127276400891235067502322561343650131425133786720735703897453897124981138580423245688788462654789981707965438777795853311304749053249193226615172620980011664069164667536255167824348026877555593411278173658039701969379920814730283007181334558296345501582599755454469057008217852435635383347522099862388805168691741645294984074084329427955620711897714056678240822484168471613988041925998755086963626658678583982057159877060432349821491645395909288963765376645176118970095294874121219883807334910069935049789547791328180991954264787487169739464705022119417686481841247133382591107235768666106011691330213868129010709633272617175482468976152772724922960219827509237238571328554089373212074170906527561339472323003777711915761208671342643378299936763425457898467730039414395217015853706642290844372430358061618382054685956557345082440416664429441658369761661362993918725738314572212319928289566352828658105404090203256305682200422389400978076623810089207195295618893313825384050514417985699978257629783362364694053739547844510905799314312145139034393703601092898105131556075893027464462866323452092892181054967867997706076342758374673497145426493043298759449661078315075840231482750194543652618043387756988588005448226572587506598963217099213125979829803128135848402967272301725615662291329429610158668681621407431963831079845914330503784356171304373358003725723712962888958503747301399047245869382905295038223590285540676370201961568735332410555480659776226901709050213311097650492826959742616601099809327602675026543219526092326311099969836092880391303028639925227764745638015880210261871240374547591300559416846526901270361908328391522250697895737010650592254168203164141203082267676522394708533706739565820723880589803662665674704714425910977083049977556271655672710269644993108999312215371768730605582193526789345975099056388738329880503735617586150158484864480381203315122764510852673298658913114319500816689716272812879361880956244790319172587188410419078878619139830622640720565591519839374649038653181017110225361450102828460931719353453863810359076079651859952103645643970379827365574378856861483982235152407916336742966070817255086366126639996476920895512590454169328497670423159037649889649128083593333821671621315194828638142096845188105089086548719631846360716538861380158152082627899367984175868193951527859213862403199161736673099970739103560353463030587748646185172604534482798006799360333578473469212538311965668012654624240729098566082377669065684360617219221983319203053582401554619451478386819887666077093391473116946000947812051022471788674224008465297960201252989366472222842627280794652128649031732406012473353465156631593040138961081091646134573985650753183483991165741222017003733324132577399230833460950227401642741716483675832484402669813125065609817536632506981393791677393798676487197872428788551591839436062858965289742886651749591168361083321577286009406319754540504365541923404372081255307542407515134868455529215196370779958693494939970585266113375861180905851113054100282507689474516720906103800949516569242953725008865119343829884918727865010253632363894468597685995979130332091288764526171684170666152975379029874523073107721461741090102087852550753228767002720551192155769491399530536871057528376480957864714125019322849847695596738998685172770969279787529556836144091193810027849361112856078892939688237867423606054783031320971979197165746143283195856390953479866349281940224402580967017413651960783985830109116401152249548540087036544398454195701559765756064585859833532085276965168458171525857636348318823911098458548525854879017407438871998655973205271330275428625898133734805857259528989734298151431061540932315034459107319892654800720300924519376581464130180748467251553430259187370098955519222520687625216636646631406771330915820579419845767660950518205888609764699487491676668607375920630425485187253030090152223066355388244940852670925506054688379798357551179661633751195804181955252658957395574607688757728852168073100881878209078723690128504400165586700835005244641903791747537352709945486431145393061927561758601829520407028972322441802653587528323196785786315280168999970202382080806574624185690423994743476576013556098820122776166067167013051059020775705858865418304724749984854743403223806040482321239157151972565785339147786851886826043932426466667542121282501599445075594444307672962734390843467202543444294286946568463943196497609333102533390269883678932557216545073662498545248969278274391740082092688562341909222269675764574774945850455260833771489690606368902368087124096511018255143455919859622165993246689230992180707755760141551006064441225788778029378585449510692299979039081283803963753974983651728487717306219591871371974832521098802044545877817041084764931657962698050478252245428313395790634283668171880512407967849854526815519712457964528176637873498604280867740937990645757148091232869521238240363261304039232151283798378475014512555521401736384267911080390894703776354133995277792014714949336811487308332687055665783073956826715072292909955209534365660290447161498309957975749457622910288192977698945919150290644650947679868900149236248644940010839463728833043565808567128336062966402391626096794271793370421780832293081449127882822300961742740641143254908418672989498992224396420414120144982373519270723280852247680791799718060356062500363286855545706583406403127386833882200169469743953953905916730779925371561535920995583264003143116778431152669607573838625273957689505780750431378899228666939539847777450698901121279778460729569528430013910261727575475254248894264454309700959844971972580148284563335349287978852408309132070151324532784870133807736242668120641154497539660299394942830983638882823221485587883079099077241049734976846521433275212690383565127314682220709383909977737817153946308773691623966639876088227550433252593447665599142332741821910675851018356477829094213959618099199894445696109604298492668195839458811899175761784776288138701761523005103071121083929042998386819909958748890321375391759855422502048285004003072296079334571631109216748457699124006357291352375368794045247457891209885760488670349557343076620877741273157784968737676356264154362274957682440569189134683047134662358094300864194672173096439164090218343934383746448218239754276065175316789783740654691597583983618198976536032246968140870096379423237081263459874132939680385355072097428459133859566764716688908848489400061357625467586763700578045814011364251364210179985775785433676080893166552536758664684105548560793146193360910893659887541917711587752394169564489459929076645729560651961329929007948979041438139339034063043134116157070981786738077043043721635968742205902539369341893745437376797958757121455155405653650469156103393167141663138115204663999908454855222220070352869504146538723646320588140160991766327499186323746332386488701711873694282089082296661036322578083372529106176506016322975030837047561733976979833967252204903735431615902592792513535601294223767018996839727169909188425185374376663525880701579045316366911279981053953471091484482354714805560615740371583748784641436891551702837999641753933769301523048887973398441365149907790169630712214304440324186549629595967497241726020516867561855155759388395154213224717016592821722519069802979005380885083285432191576535153344618757898889324540821874194534325480264997571945071992499866566167356675093120151975306384595929986299937335796065074676253633006765979932508780174722452277364006410181075081816912354299435844387349665711279059507559876381349418176182016750730341978595359886662227161103061653029067919513638051792287768850175736111416618774627000878302134988782277634389490548542374602052039934222674569812643291945995267942840599320150325282107567600592344616495297353832455914439882424991079325561975835500783267953499070974682693462797131620418924096406463739590858828569270808768181901762012179999576122064554274662767585473730651296903542755881369169246346041281478096346351360691025041531909161497461421574249637090507681717854468127913889993658376203320072100519656851015785287143111956429975514187183455963803632515067493390269157065562410148195789199960368254908731220974521490135860722049318346904017441232795356860316806494931390585785170357983735546740122604362765654714175116810133798754821790563645429112769280972479181332924768661521880584129779826934130466129849014749423969753284884149846162633777427920113039916140808002220588310160666442898668164039427936102863515517427791690787386104766193951096853674741799118150720530410806999932893732277045328132655185595006778998973764174305170456019554714427995630446067649077034757368807859604082416094629702363045439912348883932034588230178524051099074272988007823113109007946098851569120140242787177905271392934511966189004252410927843242802311397661348708933036432545500165635252356242654890695050489698222619804964123917676978976022436410705194113921346683337568974559437873185503739992942237930361424684692115373482465778863254507727248140228583850007055280352203796563628693104554555124687137971295459188569200877697140876273865449200627012034982258953686975507296503941403243941211748729866331630823221018286565582339049209581390215070768350205888609191512306581967361054202756123454317144002157240046556433591618470399253245118439465684374220654841777760524975468467160708856306857178122738721413337135245867120964383280992889585430004361738785828168387887524281298851217785198215083594616709637849095176583550649059908150161896334131564994561719955996867446978099308537178627205359015475435953195158063541165579774318468335235840346178440488329820754990118070965986032572507902853254972078994501881432558823392093072151216504365095476813379745148144139693583147543220258639443218726355067088975668563765664683356675359730859643393253580822690124981318391036280932237991093865206857194147370599988280243129560162857793035566038073899217879175358947088805125067563077966917498000896671611331462539169574485148305392425237250282100040527041374765059724582855743013213384248172509995978035700182074217789306018704308894250360421905996346149248579007905028433685452305604337780251483302690284602421601347793320226536488099261745971156339466407733154356421754491633034510772962694062786341268269828814743808131558928948128263495551119199991896287607473255581531328616874726097796640860825607161924559213449432808717287777029771182843157473746378831313718680145986523765406591262107937455387026217396974789855967841524341499925438859301755664984974823574273129274362413753363105483632298394593215083824567180677181764016569314409326385843344806588029820039692487349464782785657297516743293856336832258771927229306068071111803600302912715141468557421890181323997805633869040360212207372942685913755536515782700726816172352461456028671795136455324816300367423784033627074561064514609472267582049676320096030804609722365571722582892372268132529118342795581523239335236816777184805835686594392562535636266956739380690806312242251234273585833658620439072777521703146781979725419953226199695573323466013538390672273514471543467643346513440553701680444132572154300884919151225952260517728760870098770203523503284524442136864656327808132151836909896277056501948805754740053523465618969644298160384761922297457510679211439180849506010736119496584774785781415365804080827819362157050923756002517139859205262904479096303293964090721375361313613815406479288577430000267751014873473894819728475795834134572982707177754865122897494644837578172611180948922148793667873946834871428443101633193320561881331638922394397566972200629069492365844631525995135177479250281595099722896458864148201267202003655835293779430561426601786306781085946612159176275419110642398848603210822071415392753883754941649479365637158234989543399049014762970627754705675531708485077929963990874318194019044445512899184099932642105640854973720259565645200375385397228400622081839438671087638069118344542227575003578805451843529035779153341430476937112993698809846382940575313234834312507089757505696653009890706278410915170946662084640763798712275881288198726443324776270732636439704999245992391935576138185767049377158583264923148664980968730564725004927134184490403375577905463978082331984706227368564879747589980007800444005213958779088300471424573479476020973876251908954803710241713282356863217875753977064765511792590881326134454817827604361400215007142790560761150593804094343438496585510667693978316474013981872642017839787989748410563819945883625836033136966433829710069233197365769698429509733637845775718430659607169454245903210020687799149688436765254497958928702445458107575074575359117202304908579730871436734192750737471003747739377929528710454816867619698479255120102382578195062803590036335539508997897060339689260679169898375504653225849078543988858759070658093155353634905543114316333610713251338847822790281305113351499663580241002237212866684288613100145437175081200199428759361781728042877274579769255251329588926740709873281483448458386685499385930166482539551203032737983214484604521650757904379400473251064533244767477947729803869895229914126473623025319003651748824772107469340298741008665962822344348261136952610671884390777611667248162202501776873471708732012024947106942966907962996723169620808061625427739910068403165365261442081974931684984357242671848300899814854220772357261976398518820830180045990337117814795850414651253525211968225844350090732030680854428445763031826140396070436094685304860063477120859807883742343437001252060278380409479891164333109882168545557782108641294662757803021241855319944730478327059413533180915616408474528521865677726865671388139343465023522649442755295301674988000860203649928024548669387161730433816506798360779530510681967291597031213997619569647243011432972966138856668708650532064880291576838053982394785827978256633793553845492192029226199265157439945822710209375593085900713811020776013194450384724780975129724414077489700377407380833429780843621460672793949125437247451506313928542008519274700271451773451490440897160303838656924891407760735170928680652332829268204071328705095716913156659407925738181666746414695391039937543227435800278000800548275802118887527036089471567086926671595886379738578050122166311116461512040373584931559504282948763240136443778872668725292660186160914170926486353750858457330742210609620314206622007990400014084259259873302217327406824920951245013399199553489946805166876689709590265638459985106138800917253049493778694489962598918905350990573370666629026266115778804497000486197538815102967797579387975374650890326249560031371534193292394566943728170782505952899427686227979926686964729561877081122891320749969030042075909438241184412604496074025213394355343683337456665422740232734067154968864250355838544359061943524928947741230705786247104706055283861305222325995290584897085866127243119249033224507940017943699670330287232966189907835457593211603308825111977739786286840939177664696914998374505810411529329356017243599720150000603959183135193982693367561666805673398549657190072454619747470493109174813582313158884791189463574536022420428318982478063730743866757229278462767307344279662022272426461539930842131240692006345069738981460451015145788185323297017976416431400128161216594668765585580822004745325819403418891558716105331998027201187951224846949600377615067244422908779845130210397400466425042719838002208406376739891117477142092213540241771022802933828041486626001207405785928029774579402900898831785087273085703307366283115364230851384225463074483385428157988430219563717557628254270502334769189338301171515225473385622602330256824194398480109520255136062663371316266771956824272282631265831875348239068048435412839667602306798406005000727919637134480967256203524270655466314804397788760687273769654477318030362506040075525667716972765672399457064232536734464384093946062594784447225056344387201850223174579847034429722370898443617591867176756672976917518916292752450792490710949439629745358886894808913750479815077742545625638389800941616177160292858760787337746178118549774040067834004494250118141315967677472169058650325649508716332118269732284798527484763476351621642903481873853951764136117697957419413042768602067186089854349055826539893657481420513995342078873663735574656392250431613458448124268522126451210582651193775229168607398574150391435678940649297423979883932534548862272163479172777767957666056254432431035657224527594884409039693445027649947467472056539819728268068176010576340012520402323047743088924027260613907236450684296018441100881251436211223153933776851641893763218329775455419671455486399571511675740486841249622016092181073922774787905410951629350759021478081315822587883449168413399851586013291072306085590508735921844709862875516775748483562139780401273644513932327327698624853260975571102114065326607487895677886184706427846659493134097119905881462624277784311351514724877150453790274750431710660339020091858158714123680624854067390301161797238720414299913899778775868079016128450110699109730214804792383481875782854642084071202374641517409858413328990202388539958490449784748821492311582239458134270881820688253063210550510449533584157686017633022192671078932039111618373402150685988375155810121483192049707793225980899437264693682330929677089688302350851073618653141756639580476694244267386862590379062460358579136606039364556051303185624251257792123248286972376833720864147915638868853901668864093433507048485313709113331978544378928255301459942309260824002450261503600312037021580066509153860226566136386562799338695431500358131505476370656505137341017267332530868808865104870572107836771116320267019289117475259962857863034468084783779572149212349582094559239401325060934387220655536425568409996359114409275144978891387862418952835805413686912487751475175761521522092383903898941364324547833328763885857570570022931852769701968845997842978554885095300200058986411979561540575205752216305457884254707340291888155689352425421005437929011808021603745167908979635675773884401678991747301415776945281766871925467658042837087731911198022109125222322585365337952771832666411721754304427060165905708210794398480275834928095096540085115697086562897628729072435672660163250470807937716770704845630292238787817951602814068197670204167125658542127684284505225195805287517108245864924184634989044007026684059191549040010157962668074254222471297612264855317938704770101585288832690769492654558116976377985401087667947800961411410741889648409538966249635092181599888130044142714608729307023980336597537076437712326349432406666422507162910846788782998686160887997483501402636431351509841068333702927529256278621585429244946238447499423611688494835853430631631882112810099272176959847873627882565190038106200835637260917126270651968565447694353074070588618201933237958631167131675317357851263931796031346857575533911120414476207984819783577910091133515692705228325888455950351601807225795870237316517446017117188628217560162108120208458470000317149857209448118957303709466033377061671707516464829238664009153792327766487730527924254783718759686247870413236041234874990481711731617045718131927547242254380153208656467808230831609641021901040290577676568719198234045375317321434582492478560992939253542918881759376765868220756144555164031910879520577963158531589428574582941447715888321483118426282674896055752907273147299285558061100809230150391111170303656294607823782452790209151045745885396657180361744469480766520520121876034102530946720311286281566514959007039895127347317241308363540000467047306237271482059757051579208736410422222143758215985178797357356167284710553092497196712006819233150548494218287592453021399215431805675017215326145803879532813211823378791382584410585919941691054450122768130863717517751617342156779579403834598960510083689535538933826361253150608909891680351615693830770049822148611409555564311548203123375185007105515168716225961708018396249382287905501782789506004110355367877262817378887722135109207277247947020154719547532311836655604490526282738330322950906556701542574259558737620120207602816767871847933059699921035519351832464828814499795964635371522540765522937081956129971083598481107920618495740632845307051252333799590665166406771846623827299441500686437767882201634319308139874677939848895364494418973629219701451590487903672016531470830025624624994887441949519631429233247652445106807051305360909196983330211468471240334862028622850303647939832924118252068435196803378100144342190860738611848488617304629798289249837969503092230746033689214196317630838573855593080458096502739110470357625757116598770180596313214179819459436913862089665685903975700846093292183898177305332760604227482505082397081632383254929646444272200471219289705076124309423000932886680083887529079712510224014512033744878136011446633264166774355225950780508041925652143405414116240302770431991535141969991102460460631354537189898840726176303613162986882075292314018751718413323608310287314008106016848802978972389696905011621958776153426091814680773860895606485714794275720079968380100741707313602505430662746211206335241472554997280782646675546372939798527997145903564245098130720634009538538927233416438891519469706820748939841585753880780498672721049305564361549767648456832292421040662949313052051797017399968298808825949164322291503996698584865546948562087698284499893139248435865133737584790752479313310720773609806085987798072762013811566233424201474349514075989629105517238406580597311404797171413921235054761136325469974509533295007265338464906760160797975708153502967491507019052211569610986237432482702948802451029307216503625446380290572328922716159579519300168771091891765740746763414939903301292828904797505902847690960800707675597854147506462561906903124273169103575799248148393026485683239899907226754684554662277394384779408014763377827436594279055244122280145029380362110007636540260801715111205313223584495550995569136020485494490870751004256673583069385757349167315812195276679323919517030632698322730965569346785663191296409885285728864039152358126162229727380829263210359470022999503225187392932096665317923369336486342197362878703661264905316049306111147503093484838266769942166194946402455125926280191014807602783408846655235726402182484608559115370966163334330576518625606291638851950316634730827526510155507337453606710739581379745905417846843323085692121571468781468564278190322264116762544335445164167759469789054343451989772190471356041307678955770684015502857960403103521406331376803467165738918940297951478444311760369563897161798223154502543946207451224506737673529509921162242229370488721148271304147174448395128354321563039101490739522685539685136430071513436874492271256049563911268995276162268145551263191459648230134547929337117936464475547457918011495513049773140380636806339158644962073173391836083332331630367858797338401288144885230680821670958194009113420959974586312030334088916297032258189975559450791173204584165076629141184560041242877624500923675196699709685261354619133641348767674140846329300766028342159798798690412245838272173925748365692423850110529672848639750615376807065904624821288582162346394061206333860230204245713697335105384732578096701696356303933397862360293672634431368017263656696073282016596340751129871944690984065866882497238748853696001360682596925762869973099260375554662596868569086352972057831778219533850257492052914165153505091910132508175756941747741739954498789966649386093562939732319900096650719293130833067273930576106029240659497920095811748344977148606139244234050779750780331679925667482212886967335910676699953683305947331682076699640832990920810233696994444686965331690879959833465068631309157670424443997004465185566804714760996361635838781106213218161302672290882408685715453756400204622890397096628692849358790274364812767181897050663730967365694577362803153447247853897165031209619355779865116170100984916087772446115351025990638439152816397790716526213646179620291846114586806492380665178505644571037837451038678211586222469849971851418352481251781998345447088865629350819142329039113598112259904250225258209981039110542536800633876063721348255305106195017818743977391460844158184235882479453096619083017323123131512949889715018338101715400630753068828551908822073876154833105460440860402670096904168597150102457950948293344629251938935561145317494589602865629792209270445941096541396538480138527020093379986391792375181430122340764675097615919286993723297054773175475454251753807844500269692242496107634746127257490129831667715508947316807502409523590927024424452679870226013409844040328707562762803960618086199592645597017981423665795490225541597184540581850926761368136092929138342529634284491281084822812507012532762847351349392438255987558341467085714013867573805123475538549091550606651318050411316365479374134389905475569838306959449350967849119208727899342914340981547208466714099465420236858974109005569716598237004611312989859548604698882134754723139434346398649337436338764650444617584289942982063507421353795813647839878146859904728724685884099631708864544370414351878534982440382475779425187018851886477814583887890844662092093250176595686539070095503750019232537082860810722686348044551403393071413212898478591716971926858681127436647454994032152494464600852503899855498250877261725122968262311124758180881702637681779913797783021497254278841582449967497855797839788542795861485587713110890822993093686574512307906507530910411451771493690966633169579242867402649136629425864316051245055657753611467632588123034984463762683195873485950354539885195421373931885095903066050963088059341106973237250758350004192026170370086229682731145384153751228787422682792683797485949189607242359555464354946287193070001362798811872580059574474898987787972915813824566117265336879441775980499643835121445856582373198717491964542875023551828514025124632160199737299267985846104361074170668637668910618364610610978418682568890479953871348693616552322106671582771925497005227031215353772475505911288359325324196992529260889911365322812334733555090922198402607350473359848067117699426666108381491651212098490716293224394249956996907086998239003725070718659352406124437707016018789426966285577147124140476633561222853639828699536595097136424890136484122197875903778993856602002162463104291341703602994961032421408068586979500141384840308597199827380836784439743180923761626912518191480233169346104446402792912410703605356176028465194531421781676997274499924560208048517023549155447723801091563299303942787394430485318767944898904190778729711391636163123230025483512420669336838095359359813098396194217401314917492640650608622420993036139553095825653459991509914426600619905181061912920941240419345082698073309679773270874261369059502416202619450911048311201819039152327598032420254187919332926151726293906619338805940931323866163775288210270859842333003437072619901650368877361832537414358464029683082815078250448398113129672875602549579558232388767041346302866050185122807739972458099131120328160222290717254543428994613913427235337276279057060136336291191839045580846838376332652428557935371963282857130207631042704635897465786808391428176932909537174790803556035445173558843092405154804155325877851535004407325478724160880687115067683928441623777771383948385373880503501704092501380988297281995034595192786781497869180127659769985365999618794346014150334865764582119815045982410597278407861563479279300754672473028130143620170346752249993007748858690362371195967225683294180500485402349199557563534044241727191854645019971073180134379292872862702208777935423609396459448584655883426797781009882722059681421697355554861938919502792984479157238119193201173155293050447962999917549803861577473007695164686779772311899851353373383235592487482260190138402160669481347049863472672528141075941924177752222626215296872834781364508703057141723404519697423024201650415453362589448934835161134303380665346290823807429915610107708312742534664026980621375821439266658007503341678006252421717112928606724028716865656878936802921567992562009474691016271455448382036481184904768706291089995178673206030136353139421239499917803533654981373575696657162128996079376332966564724533500901331827141120460989157903857127703226181072637692006754594792969059635020876913456081316147685440541066934182201185298757493010093610973071041917583534475853934747289515733050682746237620440122712953038504204002210395775542149900033667226985998485175210983011120162940738738862454598037996596041549950004897608646206122902652167860611632095655254418719377497150736624634234033234050939242930101010078587084139025660896866347761326986379916191431106149717305203434780316197346093243634252899476142757638724593898848624463976394294274308607149092902039247889279690302760302365845086196313879497559810501238933297481076249543188499204228235783900611021293683993995961359837253134328799923681122542634631576963793312052887917420785153145613569234663046031128889812359456759108463401625315937868687329428117776838332513218604671753915707523330167339294021062256504453178730275505160469022119075583620863291624991796213905061925789447906429833416348152565797577561029526597490256233876513637519296965082870872448668869656066174587143941031572014631044470905482931919774704924627056232270518952684333878747156875926822760890098182059394780314404214704739206817080771092078322866297565857888533233990150919484915750704891512617263166499198941439687816179786092216645639861629222344258472505021977415597979619974906526882926723400046926616419774158641911585187864358164794189309774053013821920648797310389933817492412926749284447234509263248128208956512353790392703699003797258592776686267951696642848044929392913701122974090559473673078115987808351154577480476404256684783884246589384670282930948123912155094415671074270343152242448907307340363934384425326580699730734461582275008257108951781041510481135436045566728822933170101138397590389241587731697479791690911814982833165425814226707708601578125400008843304675091687279220496106629204444899162266057124745386686769942730089184980659917965640770089909179982088567409609713199242055353636300576300153912624172877900000128220846761106974718678563803116539969525990802817525616951973444004783080171029499587025492800778381639762188411179160569802746266286789697959056196109760340638764818869210735829581476760247396974929216885763397672366787161748568031766585032676838843625537222311094595378034524088891673945352451301843895893741474453540241889255915366635950482865400650046832960387981222288627875796984821165273576132053693366454439032675202882683071945547944955312928185521813903799719231535946943559722726606894379068775706859523848069741273766752413087829525086927006311776099163741911472245428383138986176826301610142826148509060500771390516325023407683764017330615429773121877264561055780691236160796386014445068284977889169240992284718178751358489085640166385575489289051434928855117247588024340321955110742986336403109452667725911957913752408569950784379775531161876928094877958602046575017453534524244371454158429789790018539832916495258133486447367594017383696816820284631700654458950370577383089148792455019432979090370421557008415865998809713252424443292073683710756736095751453382619665119158286627028967589654720623880055709628604343886119331968297029046677305856878508001782625325994859445016594854328367037433983971673583484277204825702520307083937382657249957856421641928544775801627822795334600916046577222518259191551010424439571106639519122505237216530549777582352692604456352603177490112303046305838777507723532936094630683130305905221014109027330294476633712855188015442420466920804508582582240737496680390378589419428755734393043108825227038386972666696722407509890924483475676948563564322243070705244676872084194991912562949945063723489608957326710947058144699301670264432267052406981957162191681532891512975683271506140273516884067682964372846990495669043416637936870851037528648177057547874959588262154843040064274456426216568484672981369494498754923467644020490116921983922434571433607475343117427368356043686207048026253928994427650440844605861602943771242211480074567657090754778532250734186747874507016192843274912024759658599937223151042923216830639053035288053525524465999011920426653470760516754398861356966645987436926802067510404245599347957135870844974041618465898904623110781664452812813192106972538425710306487163552075116637713372788817825166482993233744356561057887935520453617280779748552481819384807595183303874752240357270240907195896291356880937768917619640432278434990129135333437882066583167491926017985102162401249603926018425519189612093071041396445867952877397646976193274021985273987463585337979581256438687292846666892535870169673285051046520717725351083485927836469630404221020998910072629370499413767928230225843482789562286291308499261847258938699432705700789874389781062552379999378377309311971580316441381719294522637542799801510804132312967033638474824198663945248536540983573463453207192603443118001226913063855230487734929391030256099872900292054875340678487776767959464528935880058796659567062678782561022463565738307307156870848801267272913898859933794928620165658979686223088989869718157210598836754642561204978005969332459441313146949567713464990325276013930819605355445466535281390744061464741026683015873915184363631152815631412469218445417798753001225997696897044008712767432033813935355242894378136343899039587340422795789205033206704339285172338054000759227856503205574509311029878277948128845367948850812274952438007049068157095412620725445784727703325487291027072601841764574285152954333539808045273833618194041085181030155269122235070393303118997982941778927306171994005348157971956315329135393327059825939594077365267894412575739272159990064391498628765117174807412026265063850394705303977138108619193423673398858094287445989191215894997935196594007057932269696425060701220610223092919606597813507165530190790023551405681740140399250091937424700898443847679400403229459976127293155945033209658910478402707105630304420723943383674067225752967061443891405904606420168387414152105316408543242895184928503381635935995894555891673493622408615501590616526575587196280353951006983000127940649024472935586277007484322728345305314446082585518677961338550106975123404712492433103122957895543034446008663034842220496023871375677009137051505799884373300992763592843477349673733104027824726367198268086628654905087277859778740164673006914049431228410239322242133100486219442655871950764168170933176893371167137191073627613306345352056369877931214922988890700253068724193833247570337908832422554625200282829673358654048241525738269047717907329735366862920884458274534707248125601355732049177305940776877503838307482778003290337720503398982583897867786482879352123095733793042847111815837130507586058233213580368016978236590446825131535416638703117093800782754249645113336270281379271539232282213956653155029214821551094821115850424912179217763372660301010454602683005043220612196201773297486880095717307302385908107408886938109524024288287794482665477793015333385499986629009570856233958266375571258500625466120313169076739588356589864811153801631514192381903805427212163581029168376546437051004760406850264107691853190161381970337758871892050444223630258081098773147208042262080290794581881078717611146168394418299819990559545245120908757425947536854252629139474505314092161175839667067227390467506770496091554001504067044847926445282526653943554136668351652360143569368872759842107831402479971624551123095074278055427759983928623455223065841412503160652894028767704278394829009203297110698839288637154144197512091626111494939705402252682962746574387629819404525225878711034610942817573709366146773989450862536059950608852514365180817768429731189984493991123721041159808721732309652295886692175169210570298073412745663823861106148539563326125821208467701321469276896044771512648233365645685087256464539638322852395420189492526050599108840924236625370942871559142375710324421995808455415533136130744332372023889662317997645359484568062075315520062468674233368594950966514312201131539583884628088972181318434474686270149881414656172313057891811458521829653987199975035915953909470300764001362280811814920237907115329238590421392868855904258385817731614490920783046077515581163417542891899642869661684457469894001618834185601298120630919005681013762308063476936191462086105530504347677448940874331406224457355166783457298556367845796131024188588444365708813677404983270749834713552268349343684096263221916549880695157558616936640078600972480745986747133349586537215083076711433296490102191844931094850545414873741033609099610736808163686271778238489267820667884918909088069423664035247516643239097366418539259362693968134637887700664747009328814735877101157625588758964177048012285657094679449027122837293756912819256988950164812676696394774302426487531952108869351725319823730943315584515591675311967932976769328492703697967984386034147316035693380314457803657300028963432862980706386192656056631831933293636413744738426563652858321656551027650179312972099784497257256061389394674855425458310341201571691898244700150552273030984835059467629220072499771784779747541482088917981424938127132885919363109292125242744933865265213010115761742278143131163340916051705769064594629475962780372759411932215097615379329261187727756393590520558635119022193618939442848528112265684931783005887160737261280825082289746250831263510967326392845261357579836651081462859254475876820266298232709567685805102970582846705305975660168776751268258042861581921898459481046248874716026308397150005186563131586745190237004794000529024327843854783882347123716854233057317037629388020936205727579676676186592293242089341527083156877876810601386072366920352190677566654556692604976242638349225293789007826958578926416963868335923152287068518833757647501050330647741353978919589862498966069745663890685842744871737463073565608466298223049314913431055212671289559381879556930169084748084920169006548278580710904669117752376077072527184540594257376117547156362519865738104652872725795784814778528352657085880979175553808197856023326532554040382362084082308580726600369376380216861815852960258447176554332041534337739008082195384036569606610972608674869990901383246751694538271354930297181671435035999567911960256621751577904626574347500543503932998781469567789589014899938719624875449413255269198416314590228488692540263983486649239336449869142542452134458821885792688622427851089078473308678771511277826458246417058187405864601117212431060535298626440116633102972000663396580120206807325138018536602467203758076385668118197838747728697854774722713102706172529656881170485761503002429862731669800993557716816046413732468783777208712798680055383469021562815223342296349582990746531127876976515375484586807371366981380920885541165327398535666648453309704898317567812525145291938732000813755554875877999183694807958902034013279920282814221882538610693381858607854423932398170814235679150667679450471000431268841029041307098821233425024577087554375355632166047235865603180912535633592700125176871727890882291757744615400383427210419359336916870019620371612473338827056296314667947180714650070618840165084945771748592144717010251242433464024201239962016142544358095197932640389740324677628953398467954770812303367514460815988023811143425145661711822326599925593298422691823267664335072692288444772944122450575913585527752284003282575977117653908503039498659263546706995777948160825473563754348928020847634175320597760566463578368785217824532985936127731417410359115586790001312289041875388490032363294197722254886745897666338277451432763455069731351698638516648188387797994025303446750221403167140347575293672576607203533858845944624267617497382097739906571404073118273066775368710849071007636397740421119057174803337639141396247962862909629434665356947429200597027497109266580904866370121918473452657070165531218007135674989283963348476073032899727565846138967838184474282113146788161208900362296960055829571377407161435941879352573663681370964183669812883844921602780141829751365165418892190997585757975682790114724023036020235792281770632521779510224033093143495152655786028843583731818122996708528189166857384797725676541238058978112198780248077428769307227821546592303362269413983284776209335762394137185739621686122782589195882899922006436737694965335220274522157433112159925991382308573597995763882468724451675440878662346464449970344405011834091052485825729942049370455808207267856573812698846962280552371001547737582329035557652279808948344405437170644400682570957107568357592822310639686157445925305021329163280552935897365319554945719052339708620342796728826087426418881214764750024747791181182597719238248802921784716267154128762386244509987462154641376373165073646669911826484167885873471701140078253943149891378166849219056715927173865238309653178815921367065439037077272558362279942989900302554722613267778182896583347023628143622394621428196653301979664941489314229233960343283548882704772924510008338156033267994424831901899338128924443682049356861260358064312164620350848110202069726345421502291367932455487024942155303352522825890782374087229471169215422047388758090845757962507087114843407178929806056376777761926992497949982906240604352500092754351087273784291652319139461523251643825903155835043589479222321621941098148821898091198040931823743043317191198784539550976605209475108587163972017084676117615291072038914563026949098041294953665320958616663172163705490506662863384791524056318044944678271478867252530179633218598812867163924433860815906289309724325625600910077041421953867485157380336195949593753167928497239148377294597875510557597556597719544070875142343449300576419854831178984670017228506877378853731167815045473630672654709180733913903388783063788812400543830813207224020543581553366537349975017775855398837761770478010719150332959694150625409333013867944779097630278715139494579744420959390532222582099392019935423191902511398846389955923437012165338808700163215540682621428203468019034100725360013099985196962896145697631254129366602608595950996370840267491839939444809433729033670941275475385212418811204444566563647814605047515607554447285567714840435272234159651767630979598139095319960877353762176013521198051342460431334406851767292492642968241063616731123736620362922512992092420060535733066666941769873452155936593918184127439555578602218704075967201692147233026969672828362345139983420619819862293063328906931009229622417686122551592503732556356416310134967368652456892410528366280794699708984084954156791379084165247752422164696770473553788603612782904551408778455887324240267785624545451158123566704141449248437954640442865836133439836812384096275030368865966027287663194021462835837697714467366635789745020188990754464054872481066684012142150406831007337749158341675954221416196475709796777173174313333703730902752443585968773794128636853594595842042553441877305749580371703002301037257558539677697441286709041629549311477881162206681957357526907658106819490384269970178231033812919265860224941995551674795916571715985930200717004318623575410484978247732880547648831406766445278443243380018959170105514214480969422458769593112743281298001240446088950798479319090356869168863799024958151961084307687967015531753143215541753646618101500055190724879674043918235308497928848850379156306399447615679972668340525660011376011558359255899602228799695475955034229895454566606435756800967443351483626228880324565379110273573582661056697363096121020592182443772435606951827964244684456382444948288114107020197592645901048080581379129193277545076734848127973658630308931943232556560095106205584279157187062089979546340409300467899371157043339091904387923734644323149790113171088633784608938745968705297075974768682249378826493113212000739861569747548850071165429443552023715738592406688295337965076832117754282621980480973286434345392104104603145146173795313364688824767016347037698418003433166666629759225353207286751380698935091501537323770897750764207211708540850559854485815305271844479244897331663933844345587317531144511966295664271861303784232302470682444381665862273013756884679589707104017781078912211366989868059817771794141844214155487628804117176023547388308902422778508882323710761239004960630278103175255287384263588878705816348300842430061732136641500957516615691848679255031852292494221514607518119104919589238415359674912956938433696144895867170911693593228799643190764278332980222460735150779604179167262561136079929775686312075002184357323316353772550239019912836007115217273737549309764635122737585099449082170396321902252704105573006678290786570811835216340296949078169347846154317589078514160944130619208519892425122285684063287903011911383655445965418872545221648579291650606036660798723283781588261925847480457796853622336437908177292213019808011377720968837080690421491938382442968046852146786524464421782990530989178133423516785223702735681902775100261595551289067597167464905300370721266079731659282047535593313186974706648832165046136516999275208741431126419717478250368461472527217677046360072882424546825736887508116004560615017514356941811488051209068482972845177042258464232626563081195806490836088559726591982633694253817664799272947159273531406570576207860526739433335286781503065623710417422652378575142835418984248695179415175804849967836566825912681654285631664596493871405904942546582036421962213342967384331883823081196311663826409451187416664725776255758890239870324544307692416783089689334304564952889911820208441615662582828982431796572225592984527681148780469998515433763797108232371617348936778105748409325060306834124875964726438591223081000139502221029160293325844359346562875293717125945119045272650975358387892411335800368501282427474923051770758660379033418264861694528280121855443165574208459102813183253564060076095533814375167971203636835152531839986397236860468697407399670193860410090646085760038842395797078792533280177877837614095714454589158358159814540590275403212105271768203759114995180992340207995497426925642541487371692954765291833260951195928468380581172750828146674455613487373313772132103377668107108612835323758072599931932939871424923066532269836356319546620985113366931746579276412578465321412992890816339529468226338650615131138232563093113857890008184110882778116817910453142313594865066274915524182603871854102062592364642124712324235786798373509280074309349841954268469681795436327583954477406123213995886084914203727237099847363805338954361454616013469705442508393981797875984113925256792672635106767286973394463909844720953438901690986205082782532020094808954147347795075845719160555722004694822270705966567617079671490456167196376612002606348839684199159103967449039409210411578336541185126944500391058801281202180371411802246154910465184207736742921303123468763096631632981145400473863729820529483842182914217806836825890850173860864133872518864868928788456762427725119042571575238157445893741563098807424674100415081292841280718500213986777071246887595581561277712498455096538129610155058576693997747176828534878620589531117440975799912759738519432257580181492869922606504509569724998444018405375892295326209418543905031839304485412300950339788638482832588085329555676209145529407632496861759466077174694541029838667312318420657980507515258799164840638494718162491032151047685268587789556524371100740413835599384971829035953094105187793073646796496534491702279412643984757873913052071396591713309205766208225663098461784543239769039635358717841831203731844449269670368737159984017942540511479356812612785737986886567962655222736762151955224004440419324068026881864758979074817909922320342834882638825820444667473475150024086972245486453141234799529680735199517392389733508389429502768801890332317190249108684825186109828412255024571750573878471066342979069897780095296400532082595083120289918513808420170781268807258971701877848305697885753682022277803866627995752315339495198661533692140269559950231382945675252467593957620323636302875795867608458697118031274926029878646082196725285326462960914999400203382885926134483912785303785189679521718733263338088873930535339715345764523093921158253997408451478612308430288810443215295915321746240221197275704249502869131547037854935708654519231575704111035963111910486044851645825527436065760707328113239731327907189505231533162755022484805258790945104889356546002647011433396769428748395262887129231547232169259716349393510815556749470521036357153620908401812156325668243349921440353072116683052935005505298231310445386449636543508033727179542678925651884361682631274034532143980588806916618449430407621431488106655734714021994450520321434919873111102012649421944678509954135966129486440022247157374556089677106227483192561147294369480986185183128539820031130683389324999995314496363081904585125195335473031984990252481138841442351774070673710592031196659012779180594668312988478924821482119015325911823839689400518672304734614927099547669982779688426895358311895243934875756877428358697538559882109939565927929829342733667385328082954112516091663262836577686500847274675107230253353056166089193162287264777959176433228291123316453980950617621064834654799312488831169513157336604592275179534225019626824458092578539795575132802246765331655948339279108978685435771354938870780077036207910068920692457807014518488370148707032097062301147805317638209848191410554540566769572621514513928955426814035384344120358941920968733034489254371080976498464706869657089937774891144473532406983265266701793752817988656292919202396604816665289528255780041879253235187451751037340694635987878906654145245134295537168912327854863619523246925725417602739209346825520826750611671183938704276811994943372165205269853834414361277863824556136011520238027598139753757626373116056362358978230389216286764263645407876720299054192704118111998153443781309648022150347598317309173754579750791080236949142288126295324530961202835634975284656975333193490347816468838856111294821241038993920123279957939253923100058692319202477757031329782340871732514126827196222665076360295712719540795418376192374297434577776184227122686086766527383909888991682527637876811145452070967403163131085921755766149357696834454998238630207394912153810069875761889592244204653540753335877269562178038238861837077639388597973687728810366029039034883606570616024316955078865692367737166443096726161682221988659603974218045375883446379345704103777762056602520204231560519322421635962103602874463349611432037457345089281919523178522140488171969690279650897473445009458329836109323505782825714285923951933205697709005395857961316637677992424885118189732124059823158369312642553383860551008674270273255236830030589227300837097456166470047261429774237929585547910404444750559650638872618510460159613789529332580877895693677568146608960455896983893822538736149776740834193297018128159591004836842520485495582082390952024639242014922635459688355262520589440245710680124339312592695868627842970282437244253481347426950035783345920742648804631478331427583699440689746660841906452261845937864735068843884257482624305832914630210255609928178842333553402954661212149109869746439092990153523152426020044166726880191286886893100949849031623848484434935787125876030387259282575574036427035429262939520954359209455274198538549570008975748347917828517780246667102190011344330399333216575473242764416938731669404394233565282638036371221983684558655479848261991116668168759455883123834007752456539500654556103600232196434269339817695796371525978414587953037665045091963660240537250067482230076200728206383733955802407015852748980906778647492037205954356808401922234333406889348071887109131422635264927819260896445413197978689817773404212679566319575275921700435205621401255321245965655055051090937335420186915311171473757190063247635977321230420385526595314102883686864902278865759729169403702100108493191940834338179488545997231166770967456860282003957895881860273463581049092522687566572402819294100084346776565765477219558398574499842545636186401512305420910672022782182567066000522498958814570364520543386396250722149886928117011795204071304026091858176650546216012970260871245895477374239180326084517933094344118663221540141620633270486339506250396676070398147249981547494078391383424302512278677565832758115395695459667083413678099452276106050909186501109908058202174718717930029203652362178626203101281128271268130777437912349601049874687420442804052429432602496095242099792026850783576327357568555889391687417916076804449874739948605896785372154188833023387531745551556846820884369791226521788516366897118560361761371447704896183755051656020507894235999183351606579387703499368137552192118094930784309441848200686269816492170521747283550111343025702658549724011802181870911365684354921249951661534418426303275873899111713125572584774903599821191701643556711312551539974303629404344404510308745648728300562782738187167986064480744722069167418380165399070222339653126987564650260449379998832252188151186499409987124938998787171826662970309037583521333264738820506087449077570320787229207684998782684255667918060849263817712537949620085600007071945083295509296628242173917698844400203742255939940699304668352315266562315136234309851206915854793292312117187692639275214492384093064828552336308769871300178868260163459892284342824862809737279808804716638800503194803878599783953739672845468463155920861931069764036630774762474494570220113300432761261125124126785012118895043840526071973288046401774982592657527285008191739006672974647849857554078458060542727335549702253880719583236617269327763719071388763698848580371265032755429731672735355059981218942955484734626164008152954809353874143160764749445291861479284675348481521832675028788953320102987271262444219886611988500601897441117853743369016556629996463165652168039225307761927915918521551162695931565560493999619373585777985087843133848621505713136130093843790575880355824105539256346643245967896882220183391655337847015241546313334681388277128826739828565718639115023242824924685615230836791401635131004209875822416411327595534789319946885282510663989794572120260041402535336149532538333693734661668610845984758297085923906075627305229719116367703594906141806162206048047056815971927062198321858302745996009595879469851038955302502177497876461686873499904224118167965889711988368186155086205857700451487488733028878839374503810551175838851552293060435370196037952161778976597434267839817960868386393183674284912084395877655029829999700628541432856699269612326494529433625597488054472805485623247307007671881755234252994704563487951335661775220316889003251127350855439553873171677000425169540178260869435224277603502953693044952677055499473141660076227975044975680189022184902686940381399815534521158277175265702646080034988229849191262849750658980906642023875448387003960554391259573874507958795109863973340803903545286930544034761622032331869042765138396404251068949180415226257269851760340788111309614377120647136581051185461843152530460129349517929175282816912254630378995510099596965990613846754656388212236873318453739105517503198426801670997092264882478524333818145747312632884304339056063968598327545415538504199517809377415919647090055016456419810828103887384029545321806601931097152930130705950961092667586026041744475735329246047638178546987433269205759649520483495270630701419198808303999850039507248499391735956162759126523894406848583651281876396595045853154119571029592602176189094153787799450602930583257513756849369781579723550529723601498966588000859245936200303258160692855476644266669425500389483244823071021820911650923758039363815381628979217806341304919627597706151402757822278013446002835693297995074809573309327566834340619465390095158296999202689299826201978672018662310925536615186189683637610203014101229837155876969503005332143349061003742964217711420912563808120562185529984365592375736025265931987648590687046107931943897795960829508723568427810057603612559604107425196717963043219596145119772141379974603154962907294394663652831615061491462434961184210118426289397005923170480605142316553088597560036043886469043525612180532517303021873734359762055411975011279172069938450009759216344227108908493990717860915381967328210912504660358805569157799632534851272315506159321690726317867726606866484752739958887756157636784402059242334156540476631132038580913707435851107690168197231620914889824487682413055241183452365360388490952580680356221547971337359458265033261369308598417219841515035741923196942316947150930472723684284879106447630261526390990571897075825362706812698961010553535117441379228795819211029694602576780637056344939898853855353807625528175244547454283384474982754764286695587177245672125099751506896633361814829439928587066901553354338484823734708299209065515425624821861767681255140195987068320625250970476832645658038117524454904856154313241603627513378843380500347613713261570604927272737128662363612520715262687250483240642266919500047871548159500232673164116839627362168505182731779358559354663191987723748305219990843883868219328102525875805795924507165838717934221270250359825571933621469965731349912547682553129063349169588075482107618742568268966544893960233287246179386128058766400253440405863167149940224402122788007760066815707223783125571224135998351922569072048935316201407498269900844170597284813123922956203685091565891272745813880933671078481085620647036362764268200388179355857126628508907182736452881611406749368999622068587141110471118900458068966850781029323773795874641316294642488301736807277559122886610779581861339181414407202074232464197162481131155028816502281976325464857199682048613764463884260234871916790336583133339603020816016255904766471644590935323405005881523419664805936540361208713747651860177291510190037109055327039964827953898313980047178557201323358209830407778449282615420117760707405382569472370056554309221630653637232075339430435186505403847371669410947590077663527726081504960225597776572120523449060011242607416839823453290305057750525201406372958441407747513729338506213139847815776028047832904056855340099138488404441854107969445041015898875278818596583619442727104726084076937504364486644928953610606392203264327148190628775219090835092418182848784487191736338674634851063003910034709023830811795492421564116533648991034298945367004630644011043785397491951923685526816269558134394835393207462599986516257281843159969459373313950492705085265129201125218883767172769957247676068075086205747606459267084997636295110498999532014083590797732465455180988298046683372436477457767607261036009604834893103852050655417466284466002922512398298205042459969626560876002940673691097630254202130190578502348255027811169222180913161479516167487086378613210054144694686629999009161357012985618038243976842605560088388937220883516796306584267430417007458261048739805986663973284988943305796577748704447194687576650224935401413736919900123105741949182923510506055797010074680298495536173539659241589341489077175855863705040860264459948151624322705825944116926309310313037295360921823492865098969533460190323701497074296486822378245756214072681283358164036502752726483573079850310714223828347790946968060527491243493927263707040753178138024392512620792997619294402357395330224843795833896202010777373890130062378308393083713071440657449012212417785587142729028931748970823342915448751984557849479826729454485245861114203724596926606342982774572366889474557269435636152445771175291765649716358920617833847240038360002377432398081133615026075653125707886236173564563299431392157045134528363968364161092910676442366094078411811174999053620402032486755335370265186815619949909424685959973841894698984556964247624193042290558594571928292127201266535733697537867282022903300717136804909365042680583578778156048335604842897511385434434149879005748505543572056977908151135079377695924749477474527216499580806264958243568411551645009749637070190447048356936389239063716905228751565363454891561001714107014367407181130415231372642871881423228572615497796331598614272879864763506290484348556323997218764764173897967559299210789598757490831470901253062064149288402826334015906444374002663782088444907554784957285205432973791691572429423111149303602496547572190983439197594827684038026218474688534646843272150500369312708575259853329887373527353998502518893065503141570212816288030782075032558566904003697169095154544395248387678900715313414593029332658631293374001917623467889258056843870163878713693900454168308663173517683711841283266780872049161596044861940832148027387922377125487525967666253944151443588295532548392846520227616230217383546489758874457317786054117821278465731808155116724878615107118807746312937726921529736213067776228736841785831976347504300895072419758923123400219912410851641534142719279064944731412667081521311016021369288415776728016528506315024206573855975091111713356355949037610305445100886292264295518913067014184689475963062871122272368593378585137082738969748357642241166736767487365530907722624375522592425235769810402707597429738419800745925007942041935178873534183321145961570704939690320239856179993443814551352160648209385391079082000255948730281272330839314491478762723647716408440427602978201689562073714007467142302316664305092240613606559693720701358572808788312921856946645058182488378908200027580966687097771791070984699076529964695999979266426879302851858391952921889576065705928362234354533414422960353196303499527452259630806153514980810365164454616426356103520237785196985867813074480537103513071992286321360650552366645639414663595639804101228894096443560166878312990395592930077905969272615473552690064243833286783677118188358614713050389652986094532640223494069526000204573897814407436705012727228658806651332019985117047703942500620797816959119279095384535334817440720426858733974907271448281429179046453806509497222520895296715123798015381320780441511455195235483486973031164162755275796351482204215925810778644162946861377793779382659807508335747195627488739777472877164929064603615465171095040740163500338911671874746157349938553118607185032309677763346133793788024500669282129217385144289580348280739136542223030047615267177592461338838687844203298298852230137751726889317211014439173623162968821517256186000381905638450160877252942870667526819701592516667439632239310109721741650696795152018867460236357559817693226580570162990646714802906445775918119018869929658785282875187347096276164433422497411286890780459856855183686996847071092235258094381506120014244645025435720283446843746410351944363803646414102939431679292942966895981401323177511310485093817316790495922909597513870314623283435541669316057607652073358701773570440814362148724490743261362142314744401245219760439274022550404222220419237072263471922370376866268948814031704864913475610607099659074359557247210776529585197544802460327242908612420714351293518156274716197129609989519227828086776905125126792660832979007747199445036402333410573152031405542738556009060030749022247506447647678562368850173556472028136597920899151884833002212374471688809223736560814046393551152072574313478377943819917898308274930832882520076879928107227745461435904989462973729447591428621152287903747807854072645570797608140463310976719006911985924062581339470156266040150008108895859089632676421393284732987207464685994774525793320940668187505692440221540295384418360827296676763827007448009603575065196764227394899304534368105685783426235715745449520790812724081514357725834260423632362642515612618441927092296085180351201580825989097808829304991791863065757038703827283986064166709685311139968278273892158632843090103074982114872041988619231628977075926373550067995896048761349095226544517011050732649092654579282736029788169342396165639517061927859739984230495977933667571321978879901911325928609248236544956644376788726772426498287729480335854657983843932672232274136233004685199844880816222891739682157127599312886309963739354604019377931113225268299906549526892304039260745999820761905788919220598566903826602868726286867950435954127347472161573077925984836925383016591964149073248772193230413735389030729843177560259366067395598520202097083252800279815112863325906177677139836914494497051278869178272921670217313172036189653112888707828922864624756508515030900994572021875972512428613109925922222848012028346358077881078638841215472143550614896793027558333190491187689673411067288311850950695345504896255238467678531650201830638292282684202892854567833942536454483214063899323915389810950855164315546245933221627275537391007254130185378253431329572222351961707963835085548115547866655445830873253104808986398122814048895618416195881147885163875259714984126341823925865281013562905927182853186558381702167048901928596433208568236680001520259901942852144228626416059886419800322455848751530421983557922860172111110163169975254749414400730788773412973966572920060133684533140290655993817407616684351145392431781257897294392029807395919223913864029278866722981713181258151310823599457549989909609173554932175698929575360121079680155214207052384402861146795582188212293149724026357563561528228744018854327566595039669395667125917631277858752163934253135506690963789805942382057813561917824638067001609993061511582133936295416023880828073600176174240982007301582528390704367595502669594545676765598849383584924001427150107594505899755823627419190543189862832162026133611778405686866025456061409323535524546956462901606809246377242575555767510007144472083074573611494161911701401565767820247426725640412282233957409846404981620322877909612629827925772592090233664454982856062992892253639917907185092104774013744869215228998769258142095131185369085006719908505645025678998064217893958679327600829785962324939086300669715647975184233580527074611031603181144817535691165820240617906544037994406301594551512531548133327451497170148475528679747700085509208491615036081467167964860960759016960992860519959565151755724981048967262474321349020178560182860947575999471299898436336889200333341921426360494777467810738522347178643737242384017877814575438978692169972262892538969122674259130347956917724870784120804235663636728670300121540578524348447690457036221611165012000190155835027742280329502850395888285214832772580123420406495244756676704057273204762067914794663134197679294066997627079117079655078991872059757507889699645441982181184969211669331903981561623835662360390286192089154788445373426359059849377561267765343505915917294711013988401782821225162322193352744316404851106737712376624948635237178272415516550765502589255690236001234125599060844371388774244130978513868677080005020419765572411235121016726703699207162479713233158574511854237165838352203036876973131135716741319092367296013712038160604408935398323120315493377545288986599146160798777769187410649478535448204685147700814113961710920026152739569918417878209059619162226060860023935868291294834943829109893159455039303075811302003772685415332638007808900925726484035851147377735399328719353368611407709657384344445493483386538592229995512979368420650133324060641365406769519363150360021012345523595996185094926092045931680597938926854851333018189797549755104767778406999977556316826460180288374361416440540759363014221838320954583604973174501535730172771516482412823856877535783516748881212124227302287377438922170661412108045734415338417646839655624765269943542640124371532130257795935596853923380520674930824388973160206048926883653010302904278269097423388184433257035317901117610746832203362969249086224747312189064803020666340078987411850892742684869839298034234280679528579400208264261264347804348734764439784585400921696974155862454216688779635341856791835809760235147171294805722350272844069608706768783092735379928884673403642052438177633100659599814002606403216096788408951531521220887961584982600181154902649039309658488600797410200138451989361331875320154834196802501661047479752146114377072875718434164011497472143245537657030041491253782109606476572377160431228581388942689444142822291209734667615548883951286009269588902920609095813531811257409161037510187462086425883221931956264653800542986413313881828599400048391846545854118180629595981498180288945468574027210610055921259599681790256708469700921568068582641939949017485348580112578102039735459739976005772937762341713293491852295325406438983846323647496403287700631880463660788147103965908493884687283804555896265932445051996763847411037070276067511173419531104579291744326997250495797721769030513329611829288505394277440358319133625115239259120127909398201706698681841294865282211041855032222614454775592837369238776829408041872128917211186797695027476140724985571532135898132074729102423797490574651750220086944989719275502636422157397105801402858279550118984053253579548046876533598969558705929525908355658286382098125795368401338051231183181282104440147991564270784753671900136609530630426813589105094243515213174632177836770660589933595338919929360580595353005174887977427987070797485239286240115495361878797090173857080607539759993841601109961998900811332969312283286285832413564685027745659483908537026909849189326544346928545051706148508177579174455650412294670763880902227458638226857525548212885471492497385545042857075982652756408410688792638596053307143675872072432178567178331504942268772054961116051229183462857681906464892904325566868687956283699521494357314400044337558282551142578418842594203911472271264924423089328687045988347798254623561701964461908900271587361074013252229649490190638979563511881112483199423233473514797205472138550332467248082242641920796380919929035584256855582818457069551823828751946997281596078281461992521019960503817684074338205462822893261992501507843665115440927692275956261755566865943018543992374711075071519803706218771168152607937117678119059898116289852219059311047016959799829168901005757367813408425830190835357309825029829565418944358279015136419144126645113140710881091148545657936064081347410627976135937631686623352218389312265806461641265309941279206645979198483291390117048416596643499507478753676709913291419444209470066515549473770616118950764696621519037424845682447183180565961332233825627627338779968404508424127914625324514356087312890695560571604188194940556632139405469914773086534596301996667560789303431225772904468090116358695528178101742716795926168552237241449833306545006030094017737586322536849428319047485808856223300236142886888586129986989986047619978764166539585938930949278638296354309835342088075902205603814211289648070328655020712004065216794951993146344267492832325201229852218993381272557181349851800684573370677135381314669868041315921181264419364372980335728056081063343448656515201930706346074563517846146593370084091951092617663128398418612002644949064215215327508150370578128437997852169673430284747791539350557227550827877609349654211277465327733078603529805745546608747162187508245692483205061084890559081255380531424150393926480214650360722748353792890192859734812117400731092431003036063586310400762057745339831080329479693176766084241108512849153860799907938905966813509175992371838784702458693040879646290983555159878823974283036031415813016149693530663230987487740995021992428903600649726046106626134566225456077037751715061756842962732715200428952641228125027024778900517050980200191346919494970981412655275401862942614253412592274324380961822699962720555907672794521088786066238451704863283192897378145995809947638792561999815031136949082940734104130324798817553310943791272283623290503771682335329273308514311430377056125715632824119959196487147479304307764037894330121794534318106732600735399548178626937999652659123803662230986169965789677274431833840695228675377767092999373948790528971577763074734717222210909086257355165086724212199947888454478153441820021146972442573642771060592136920698291383881426559175581083384987260902838012158210912899572478462443377719715361512492087721420014530052037627733161690311770354713876250926083751730643506020513365809177279016534970049264710365302807239463949452450245575277711254693475556163399340350466237302828831029300794710754174764114558714460468121372235756075144817373716337777616891462210336174215513943025798827260505276067980520888658243367947012314672663469571232749019962034147867324048923163744366311745707436001760623644509132986820937905036991843702367566233267196784273426020815182042121194544743705975178152853250749071595196834206640765709367987909727976318989089838540464979942329414467737260150721382581668633171307209872071195793939634443531969449852505852554870811878061372647541420318045489343431655961149254780050706447426792066717540056177862083646944504539915938365597245321677539073805841560380663088229857718881588688988935120754551851065412527351441442898769598885029095357970493121045672617171742848739414918338815218087515296664237015562453160719962445758682811238704885749136944403154376612810865251317861762954002335232678814067539059073639041211945042337418526036459066318177556626903094976310235761110308887853291860444955216790487630382234385465405539222349879085788725763325745959532590631895353021493757418979287982291227711514185406268716002524027029318224322372420062971690535484518276531485369456635712743719197100385880547243068962079098345369487667276004583657241164529533267436845175456384048736245135522679416498546620390598154058777661552501669812134150507992925759173197820857206803593770483332493848117151977217735196765942467843576396952668995189974499240258964988116321175561266021152408968183820712794039927251397747061542756116150005406771117788059192942674213998779560527531250368025614211478741928753144428369539217892136904220897555207351216303227453309141596223260170872164110161889380327865765626530372074272662138358452568639041338125570337810778246298878942235639624074963200552414373993552305515443100193952428453232562562370338783335889364638211266691283874188667649702179972108623111591367533809662282359289208259805805280871424792113992956573362213866384552390588371981340771231102621934301413651937338911804385143506234006243456660145138910835505741556121428144842613583266076606455310955195167574122152176788796524039256908902097699162544346575225826417378697935872285033949228617410196218005387203797754428383981810195705504520568624164153866244821252514577728977027350459039657102379743289565954947782545026281271803179821506524815007452566828969945321935143465933895435088565903017441135069477819149463267754712085847049538305485374566700233911282312298103695181011463360983661780600188408136891563430802236088559879298807757872281218212079681882588006022014196327105497574164141019351645631533730622820762920580836101570124163987528220337069969197951470529365386031240030024475722136242433053810498446485122178316916522741130444894110848953539195105663013828441221410271652438598495799193833237158670698797151973706878011669545220711360577149140394041091256537675881276140753259795223477880789643941337280691350635427397153650545605580681180575045305203245882432570759832170057949374660228419368822464544790844410137932053936690683595275247039612696920175999983045695269609455669811622366672695020623579506365204680661671532663787901612394874122870240485956609474495215846226324616183830009751661185869497508533392159263808641999508667993280030178176153721958433208437227318822400874272182301926165163454434850103611181180695098485801181829390898445616491130695607421609157556541459927349695982126210181832299237103940133112788741795094225655920981191166567206698842874734967341183524176492973918569602386908035645319595156549674379234203490084430915276530890183831695476088324130361770404441138969588228665995958134112720428875235556889429957502923510515518834554317719078294326824134613980335376554302581579625707276336541148429332045383440800633552259127314755119472064315538894146551088528667533829143182051775322647294279889297446737106990757969479044150011928255932259566547943740257828564809461736694484681167804988737292432953437221196561721192230503021724115606706990867602187501989689103963993703224516239576331524230521484924451720204980371509977480546800666093511461220427396362024223691503401714753021668837943370863821178542533838846425952648278459624366840372906109353811116478533887429622962101635390732382822796266717496586485398644199393008696831285979055977424631394406519172049950760051333619324176286714495346678577390482708209449523705333379226384571261156036392636838044026909934461088425175593660188179389444574755694599363727236718651524583063383113801357103489643059532474937826643975178593278794598814900448841258618783553413801944894115548254205295321259129117909532434352403272085092982654521660211554596891242002904826421136618004620417311470191563356621775925591178974920715848219578987834898955501865143139741784850636759068442537023233575589343796327924310108562807767261168728053067806849575247620196195366662018346338012568818219242861139766131912404534702048086317010093100722744268642479850999803703953178260515992208059159676899107220439618444501279122209394552964132845200294136404889729287131934209637865697419900679724218770034640280149689140988966303797095398076131748661889563503891094845904262319491988225766109316699381931694153590944529051762790861629679036978830294211378308128864724250432786713907521804302005015575508527864515527007733422847886814703466488345222145358932894969621296257962327798763190051117720445573282632014336895987903304277042481550784938867974579473310023696864653685163789157804661497823199123705885047595966340142450568174752038752709634767749941246408886569993005509486714535247733940651974719251238622624424781643307955336222089385681261123043439009466939753493192927925456629274508484940081230874808534947109856963225103373324089533762961454531414365003009380208631186888827597731384762348333468674319676671946843301177333833471524502983627129085153674993234187239376345489038537842187427718790955743602623096451900890003330148678304680712351649372117285320060384837995916665236264519218792347149669047746313744882033681705363074534603336444985711318641736349773553194854009664518442315184330640162716805636622058764871097664885349654501987786147352108299239134479169291562221820029000455783120239635422679963037455460082559343298052456076936371751955781542397515404085163719226501727939744676118442390645120027803945842769534735045036294997706386640966473221266618136360190370871776840395294485879278184355785189216907902847115185830047066719379148657483400918864745364490329987148706789187471340457832306477231875642191659241671735545950884369171892552899636314939365159457444106557038451317491275183712405199543774461620487696149375427701311814237966467732504226843348579703599261324316140986918590184346950768732646430015165498887460111264281146756213964290918771950343905987142321865947515693310536812777505925044717780916307570986087183115854496800019670253413936298504103578564814125648511532496522473549889354275509385042928127279890521400952123993354873101650884445242011317786301694544829644068421626215934167785101027397685887539708643188022859247187037129902336341993291851616950080585941920369721501185857099287078240143295358074228920283429388541205371069723710853631649238305940550177214830934414580068160181397525969370459387722358005036331901439734329293738763427098131681990109335309659497153989084011695048931783803895726176382667803064499228729930783926110955245198311816223542728600007959341196218689580119400386117131157765334256087850874199316399109018319166051530999309242585664725021264832691274197544549100176701259967981847305848511546677767624422348643219041167988058441155524625057515630486712281694093166194019814569978570486038519566732212526927759185043745896516780255566729049358965793431922063205996650597686884556429009706524152246189049025375666710900798521974381541965571367592352311980068942405167440283976122163228572844850314376683344309889551692148673784802837948190362638580152664392534664496323384889327288345328959703456378324913670358992261855132031908801602943545792447568139318346650787822242226232276702404324154377260914685883175420707549608566166400766734695901344768115337271899583828938339455829838861715271977319349397056784484636388057156589987643537631108794897051203842146904757149442137017789758571416116323603684239729211094987646524538846562299683711095592037827760785347219071424470671560211351109856930330642367758072485238572536932596073368531568934063320883734530159477109541842852768683606228872955899534633895294041965260858452231894408153535981463895111043981597913023307713553923974126263783888200762413637454896904894901999948354410253274344708651975621851249020766133263631574079123144145501916479050879843606665650936493496757622539554074157058142671743048170131596720172412499325041246485316749493162050979486122935897799455561847954358413934845075206088428988952232090802128646273287163556976453048082187898554205004936799543638583816716008045438429772798831662787968465310765221092741667176370519191671062099198239114812678296271849880742155514356332119646171373408521035984393160678847567855629726737553478422832822667501745026963631839141903121231723427517290034270436485956281924755634863116239589917850455291808193292173783331066290596310890551716331607792300375356368487972804888757660384666829861147194783314919904832913904030452585768298133506661238879938955243088723278929226519329424146455222168410184211663315556115892778850493711463862703635402787134318100882312712637102714432593643442112206075827461352571925367724972804812460960692319268524111293367915775651694000730869321053382447470003833677053990812070969986111035295408008820473906984193163012490533024376767973995183532567775903171740141729378393970237980516006371096357737961750416588013129200371331946803297922538812696934493666480315955315030807618305028100591850869525659155662005339426721125474740974037028816769565423632731677390048950436193394984487666148525198604887871526595404961846193065338592314554932691788840613458002808159075771128084372026790559175445684072947649419968367268483282812495332732496669723773817288189618681865820797646831735474903554460555742576830761007096408288520706380202423864251247855290778002619222661395064235249138136910861599814650377863005229053793033553876189514969277703327346730468556863448567845670833379803628409861727922817347210847522549928861812146069960188263516524521251172518984332712004524440961967034871284305895040780031715795238471148611906177303270127064856574353601119397352629324176250316260030168371552120960976803474714091852218231289629177505311669819046036483047294497949702528429270021554881104412392056477332744266552557584787758382048038572893963045959253042994942606829429968933559320670547758464980941509163771625486961008715261932493829528805405986549870414990438731952694674340154904314395192365333980802916069071574799185759860436095018453343482667321737268552704792720243434214228829104016538141653942844563741218772740161808214423117535257532103226174329963619675311127219400972476644137587973542527434466230360071518381745190331539758452101869760100905885664734464132075479330086011771405129026910065368200086001020682527968200087951773379573417790272794841119706274521247540961292944337038480128294835560580416797063194323351405174232569574424155514996633242264721712911289726301749660176649619090333481966516112488321188898647121418089391219675331475176315594236644748946737526169434591307337572702484651246577960627245927311704794302651246334025937992079747681155122222579162491816423314755258465943866714364292317211483288481324381055511882223506729462149384979171115201938934674152617133317391546209403921552845873288152098160159739738473716744347594881097784669277608325315271239068438242344791870287657119837662378943751970666808945911686183889717736951904563703634894665998745586281224050434070371335086866102614199862616964855738350054216556394519259325630731731714517284838492497576250186684254984785922783034992959798625504333612083485955047408235965425343274604566278026065337300069349108456326148321064445229424359056564734026992660711336191109571486742605177924422910054739716737407243271959807035220867990795984025681267755382259707134650227186780771099731220679577696602900211514754924952874563788417529383310865853467554327160681410021054412327623829512973996330940660339109618041790852867270618543156857951600815387348987445644900128851446416846465360387839755683510339302610873402083593622893745322083393729649231304806198403130987528707034364465814527616749834553891064854023528070348625617324581114817661117313911057333527633317183506576301290551636198443278923556378887652481048684878409088596313355083068771407064431191919465707541119232678661247094229731751145842410192028091778856692146986740881867792992779813970153476606805191366839240452696338369077884965321026990602865744815175331619450340474691817099854066032867396544216815048128878148077806527440984326409702848699901790981078638496224630239897675206544462920505359782670422264815324780793199346514856893169744306801843783951035598499456820432931820487050333325724155849865687418261479514462540272018258667028274563414627103410619810966223025786040755219290494620747229829344765609589861828939284184376841497532700766310006734495002320146843114890756468418802649781824355888992158969375476647520599214476861494671289982367410136389212956778042725649399800094278921446294363435944152977376814488343800570971503102853384348532554019271054895648207635380240885651288853450103569111661001668211714244036558987407746245164278331909279027002361734313147880841713722913742585984281438759649149230921831157113166047103434711179141340573175813423034811608927313187729737352417941157136023492205829051286693628726765677802859722845449509662145522473846650609862136395958761820740583374077119565279103472558189328412383000883307057063024860662561300658311701972192289522447481158850150097792140454764765236202394097444751032462450157418860263302560909674513779844093532753302587409009253990057666681953741074683552825049084151991634600840502666289666984060650249400686281394365475512743716423785359406231938667894662187963062008398946984330410228960189938620391961887467850389338407810505611640674348441916444850304519324599602554762464637358191423860499434806076660262732665411828077399372565871728730462538454780108358199713632815340508914584117828045567908344925093074277186365861583748344250508033110815296456219779538485537999209225245897308838807652236115602196292260958126340812200692699268216028984539598075112365669483743204075033230311557571399799131666054255691110296039880080462916723166710390754254858426157469218400869219277240150519676518455114415800287937756747676013818791569851518286161256558735370356270017509826973250793740704403771043181886879576083517422902680285317507068220779321915297249481367904931075237408861182469787462255650776140127264429534183939062786240026443906432176050869884732548843499929632725834529762456495994983212078650352754941452428755025281454946449076432439067470988504832885822927353549904172331785266133840607965377303996369309075673170470876423129108533386647371340960521180428248136178943336063977550708269429751262476624452333176954459801286382286879815365364715154872195951891636038928538275333057075747898551723538584149054050437149627971806961245754062334707416481472617543786572388078955938061886726931634883983775762120291550795807648972095574620271819428662214442039163641358621485761063176665432572847439749346035542113473685841136102149566843337671695099596428603231878515719348224644016111068095482596731725908029647101223653843166339270542588751769679777829827538852800867070657433833799643384858838227662868311839076840717316971037012709127537274732524965670066302955856778794045936642479835929418077421599559418396055008083027451267486254567208979762792972133014868448098366335422630908301793957298575447278945203233943017666491978693374658882148303043600505962222562952039433739331997894665958090616968858897278796783784302111384396069026161513510153374118095904229733048774011016875070502089286138112783812051673644155789458565090977325970139602623807445686629055637144146085529840697983083299517564483440611312719331416557984692784676131209050465174390371981825201772048432422156003781948403737975569444364753798549829567866577242778054576516591454111101314256493748505467315488889651311137642954278549792207167265978575821585426371127444301088248096907813944304280738583613860490994696901958874873952912229961085699700132306955148561095916883340099924029804673820956268748489208131520586641717024355058798119552476857406843829037422472834498987731566407545587240841051594318681665332940848851463603111187083722267262566830411540773772264684161735951857853017577809338161561982519933175516114136792014076576163479091592979786239599671607629739724453921780998485694778710587436905046165425760941687656169350553028689581148910622589865624346551733884156064912248552089725944691798605982097303041645048840219451970395257875920424408503695981287598939677083912079765902474681220845215292818345427610859597917026429389805994904722423260707776053486514304003396954416701833006147289283354359288035884402064930737616878655835072845825742768015978780028684220367681885790036489222868439892985846739811331947634796409568839268899498359186587787576663802678049597431206737150484326781952181396732981336501646177873218141451030963985050325564501481043744513233748432781858514441913559357956244404714486040707780424138953522780911496555536008124445239376737344765179002012594776278614353889023571024497374937001042478845571923989570373954797721942619209926073822326831988017805542765457915991229848750153871588873442972495830781315208155239613593887012487257313064231028006002618300429446511713675572258972373729575313578860373953301737773860512833698801046499220761877422739681099472947429655303272290880966683603889389229880879575090121522429399792320755699548261128009204747952323951446837783680896257615104677459345423318910621026011530555745235416020845831397158550208755941846491400452146781669168904731968990161152017543128434546911141381877826012584077324630481517459476835097862019959809598126583174484677867841539795545560148055404486620386617964348754923045993326976608936045756517610556489236340581958343494855017905486334902148297995817767848287488277778241733487345477476349190089353902856534680011584186507658200338616203950593248414017213043414449543887529978941021965993352524960897081578481489002004924615079181100202966654452199259467640092648053475374585014392483595948880236804451602405313237871628675619448660171985386505575927158976803590147240228974544399404559170544228993944317877332984169210219561951663676609068442706747803892715271183625742699736255497886366739429007640347844280668670168329438425209584346240202470375400958935470042370393153728247563496287841787538746685596120402144187513898713027555520943948539388115939324591249935034319642615400581411278140899841805018791524451725771736323599617174692132566606001888462275984119742937006577687323094380780479981809919597828646761537182165051109663157206026071492334107853887350096542195890077143416796931976221018710606537381737356278393834563779233795388622977577727354897887725266424244307390287867557081032573696834116524326320909169703966481355739729755625107283091712290371837118643608168066875169106029255236240762943810017003442442001168100471733834937939899048116188833002643758112889614424088412954654791877356044603009935746872037929561022452312791633871151386827961269683055125026553130277228900316402928547979508373088027038754405425235037210396803467140308954819912871494438332980288773296145331760414202901210280653501025828057484982857281612352510110668494415834830031149120083310555239486916719586874922049353150155135772874917386486898606075739175337945086520385830119107522893040762737934656879769483035903047359401808345097342913024238608224471528183558463800909610202974634624572943436327278713576206049855019384959727121918981787463068626733974923827543973882234220664021823734476329091935628518923742135472674419940163312200268936172698175750764165879200815309135407621223469771840846273771632793566948364401629767463457834597830802336721047388354816614527751656007548479253897352104777380158230769508538100563736132149933693218730429091363411405050545213071271188295014371784864445772714311966743594124749563380130768784567948658332376743874483807752796460914178073704712384875424977704317331237516808210903196016774571098032503632378266344951074912420548587802926155599900551291934632881544673823778318946666228187014177580122283569095916311277879274859827462083267375474358255187197376494996476384412426291673720479161212365789504425837462871237806687708220596229966916007482736604068064747912459486090222265534380275046897186728317460673077361191184273143783816550013612130311365005917378846114126184411981125492375266783062081021095298798765491523531450262480685850906122092098581191370974409437149238058832054667861917381628581356793179210632336487810870707956506952136654654376483814490013784291996770670339518581497928635686771804265314962531715207605961656926854395775285492316114589624493196113905940464948505948383032055493207825750979153801090322325063741964781322472386353227020261301058895010285913995034522258229776338409773402563507053675913417352379661907346517178201585423434879028500047380658558610442237013745103254361114624216885395730412256684858785693404657873318287671139948228756433010066947326335498724549111396570157225995642577266049189708669645635102154018754764557544333170480029032431786015258413682993713116394967288240639321014287794013465789629153022942157687117804873524313512994055172943327683371782217732866947978310394483183683229271101836351333766424861880407608044199476638669125182342414388089388659339963445443598393752848948392865460534571031572253852407737984144783589346876248453718255215536151458863266520448210122112524618233552996825976631736781636549711371582183087828840461067801828183753754766288847281043455068437186023822517743794034251272148436869637098671228470584221079216842926801521372105701563476113528131001247950507789255744875612847441145136319231538230245685457235204011194967364170970288523258654537384773616839920225685059507767155222635724759146031015625334746049003648868627477338176786699139836149817263128431814294714785408206544281557850662355868590671586692812640921164440911659986278264162033346765740820206323699925895997552272938747892700893682154917427601435127314301015809672495666201722856764352850513887570310889608890556193727993220735524277411599460164349258625781017122626856980903291711946712395445977177855445680568120836996721315596955882351827645780036116280219365526274082432411419991815708507279691422599570705526998471037688864047644551422178080386286695833803632276411531233522170390961776969971036528925080104538310423417148029055565571648147769966110987558611189052995432700523536570752968155574192695715473068788675899231584774699204268142733990005207246181982287555652158738375752826767378962926307224186556511557480014669295779932407616993000431782819760641250927091302436172195528509712854196184015467964404645268330627165788751100515586702124191980464637608141105885110080062773045730823932949327241058733702066587367279906701571955542602227314914156088184334335002641931585185236183185406172227971803615940575882801651849946861224968330101370014584663715345427875834086756234984256297169853920514678678327913361403653714795489444197487042108773523546567796377295131168743535655778337776270148547837868386720261436160148442281659659791106677559928043684356482427817928043183054574489641722271951645039784982945325929680190095196960594482325404450438044381418675999884650848498661581070977316400936427193987436693768600585333434032588672387243530754198334279259979813107186784059247762858069993299616249550513813686433831353415851345178779093812767956181531999037333521706157812448519444463370287998992104623807923839193649328685830968779563316896539496884084567181294002771603879088705231386375642634629351712408599122836633707888829327661408540946423979156631519614253842313620223957625802234311699814992159106207227739048884222844910560766765920152863056851029503283275202802213847866260854135659544684478709500333636979869010688772421376293982905889900815930816906879609558072232578152609192377613273881701523554665052419732092263082078840187711835094996846616708319570997265243296784675660505227274972924598529585098427203936557251366732417089421848816912746000678575595310270326763748307434194581198826012993961260893340483824464753310400405498560157481082653932456207505119043386308885243926297167813629307056836090075895457302748052532347407066917326576071787327245549007160475595063494810029961352494182934949861357988476703077119879207408387535238734414435531000805664723695484336392075038506265230023042676284095849924925273213866879381426257357476362096818272701554609007520945600563430001103597470237030007722138519222902982371121907660871681963916761682708952730471032996680024483107462452854494468532587224013409635049240480726357305852979370050405785822375157444352841593960539925088176354138637377077348853338309339359547465357065902156410004155220557415750390340784246961258952506312084935742537233942329512118906898027843222412314427395691086326226835392485273880607031894342875128149781253872010694390820615512538852969835167751598396841140150933672828652379237578387672862418173518513417738023824545213703001119166499571895997867094370062620868196064678052768623368540596179897936418195467862426923942582743503584451740700486564135502701560775450536779917460195253642025696873234335352197058685169252513173702458118126570444047796487651720821960730416037431801964756519449124647083886612049338844304467030078229990260440416940357801171065712650413394208367690419628535383497077360919608071570573713298653537439828811959914291974406654397529708783142318389708454822023405107587447642893746609010879071045314251912731146245309766681657629542337915255045058320729776984702817007819900538993805867924635601187093172535397503774662262864125897361659562812963258062426049969347294565920040003773044307943194383359265287492170135648748316583692568850205204415322355549610202608023865301134819686719690643959773968351460549797698947908696945306876671399507472841551450746857071552730859628883494106462689170947288698700054774242955471800944304691722578528422860389215206003295548689839329719147514252955259580510801200221363222327960127969656329666008138253970436322275272644985933389556829233860881775143334408750128068371515032065521571127908494443912336573707313276393063027248405287860638657932814878440914848155889712718755822909549039245946311971429692531414269587885531974803073806212251055351973598627884100115853577018368253634271205810716391129503017266690290759209525648390533580863657963396435668000424105939700778297585750273974730492233412797960479485503566303517455341278292130569517391229824988253410104883301488012682938688842473074722182991667659003230950914345789667381234017224657892061050316915492512905806095401889456501968085432039088936034360274135895618516449625749014221796647421270860808067336588581489849404751570796076464001908918082089689894175565725883719846794911945446785432272146012852973380741280931737518116766298050766782612970766097669303721197448019791976619484497869937121373855007933887307560118186269161414903891308378956957545640871456972371021453304012756173706013962708951343026095404383831790840607161995807400086533629663101872600156766434223757737480649605044076190083218973974399596280188632521592177321503544482202534131950846582148429745610854492593510570578569264054490363502092759933478811576088650454367402862321941467271549443031556376227914519903805506264315522346122636186250139750895937462596491087406751156907010327091443142228903638185269332159984775999183670159503918724116816703366418714593365316698848829665075316873805035739134351597574747991624672434281516550809656967411109430730383702644556172442353162691476522444993073710237410039443694485906983561989159528628391284040249058592217502277047239018238724486817149191045516018387869820188063145631654388305932535450787663073096468634467795072163820369916111277124058040180426706991435024888780093099144973946544383345574744477463308184620221264029488174810538067248133394548352886001327936013623957133475715675280967042704115978724420042927802248218420117826903480926244990555655368447290116889868680174090634874709125006237457011093837657873907017678870215726999634820271540746579166043655438091013222146324542674450172435989554317505607481517489715826756161783579253165970439642335114848418947728672853902424613217087900910001443475304777470684562168425410528629484748467596111088701910650868225471890570377040862301898120518258990572156345392505736242258105290732122477547593023681889027062763650544991389249929558744856276703877976611992944948491268913916898098344160148815452698752345570980835616915252489325673336637439410097687004931594206058172652843104066746587289809939238014211372931122687786786281927905977408405580199242152285836243825784132252647751470370217407640400334691075231154777724732670301587739748551384494626105672326257763198856155475251722543509608528613574853568281536130777000099609417148264844596959327506422082529578911792270982937562657110234261753948674790356722717818282140114623735944907705528892677142164328203611558739339900214199028973275416153863401011436563603369794157054629450828018684211541577025318804487593553340692148090821025369568342317454219170562420344622102228578534693480056153722383811053428526701017753750057479670901180724655144612090506404719122414435229385112202948035756911762775127634255817645693203691780631712227296933181669346410286020335221025372930452432706176040296007052850207311140151704385922568304939339666730069250940952351900220889241141715137545090796459791091524455671906233205509896703252514927620094199362758788511101687108898242943595900625289906842551624985263516976551734941988503799038239349676573857864792035309217516933995238387870457880015414891379876657127362976246388946272519566890716049993800627721751480642118225191444805906035512561373361609975238145800786275602353971576832831127838748176450919716622224661070176559111030964451201494639207310028440222539276681686175990476198527398332715449536616934856900263596212693350642697269502564850513796738829806237687940867017395656596597194065044044512826669804310369701004528131325860460492996106151010925134107189759241853618173459940640736636269716235844989011265047965110933790273532478453625139725075979209766950994922483395901894155607972423065558065961088804115055111092960254427855207829702361931199831402003775983760296113015277361029902293266763301733688053597580982486107970559080198057949650034018924513515850911358339113554090803869332284787135361775859296858292490028733605010864956099254598139583935519585033946479019824101677217329705085051157500562827759941775400534182551266973927449390821488793624289599135149388681287732763888324637954358032668871445229423681585168734662647781526439285727539355290448473164334731921161411272328561845508242917511438138638857081229864470914476926830009348703130744936040215732804604002331894639918833839215567363073318634205879228575486781711929849793806977757315966596120535827137919547240493457030157551089771298532019383223715721704583216678143182505278922680864894585666055926484863515626713792908944166191507268425116640575234329598228407035944531491452649065058741298196342638855287661392676930214912591543056882447922146477250171331127650279848085509823642170883814721163463707634285605712871013146719673520709116157228337370518836319233049700449505103248743891596138497661766451143104959941314089272170806851942383236681568022244468893328573237956899035583847640164354896032878404454088829741678670147148525552273305097583024066916994362991274078815929321344155897427205220890430033233247223305672189991622950953721583462786016129442315453037785887143854347410659717651973088406725760231012940801806092555615471298134036849551721748459713692216920861931002531460493589093945290409079839629635582385468768526296803569644665725838157176909398594655571050164641561235551216646883228692652614735615319229036969641158782379570412417940159228190588545136598372014027557154658201879519343715510200026116774714146616307729414972111598912430923983965010498299203869908767063028178660596179225959969442975102691654825107254094016722926682590429336943730448450674232280879581390519498870010693310133470751405524686638631589606897420041083966150892366471432066656666888598008322446361553706805426989139298776318302277863826333634488977168166042342937277880718807837478952889428895019664078060644021882053909300347856341827801841516878570012501079307875390325672492664700411322324575392989848272033774824381557741435251713181832879621873955028824305359153310031247997125621585298232081237113645886430986777626216706613351862361415207868226863910022526627660573604147311455533413388656581059303382499186018462452632463767918204369041650539602539518037724108903328099884277235656502733377564926123307103516449203008437165042725262405813736014511532539786880770777078865755347072288804553793510133550080396410730764772404861525165218217758980185692149060256979445250971911138885006199949252050904113123018378312591308185789545726655960058684081062600157673848737141413404773713446649108336911880153435804517652603146777855365592869766539642666586901263076322449327006776843272214698200344893240755719474975329128080475154954713637022393245028915857550948019847184989471301111813587626081028455257831521336810259329477004670197383834411973412052148979239629737608409881433003039786432525999379510318490677097523479325978353538677823007462853362274800676096374405705823166647120645856804659952917537399876401649771758897529802422970185278690904482330078036503586390700826600171182925260493843266229168536963969121301000709382793426778818225211857054454517089225033201493717486678852782860918067098162988146046013812815142989316662980456572666249971590762293612918328668178459922592008061784679694694265210807711398841681448046009155240497715956119465197214899047026912711023009338916071628350479001604952990189735537775799917312759388549134229165261920984310182223320843961067169537219648761047417899610120717672808131577108672389487697457506024505031453023361439963860630782209654694372582544760012828178386393309238747820679066880620679101451695789895535074984669229182595774235299015529585286122516004851515748364829629387273589704119926444408638760423865470531846290109434028231947105409436650033034195582804502306115300488509051303881625871953029950142887868456006119638957930984735386067574164999900755369723252734747467607350768334839072081178681094660572771628867065087321849703268269765487942974004111042439957038775555137258134682815488158025110116782918114414105266550126410954507329304999522737293039799720450850318954826907844948832870317399720710834018600307841922832296023632566886583338537182445592294375832680963508628819056853088037923145794105132729806000128046254556451666586282537664965971056961719631632696670382252398786288569994896545625571368866707897100361797933083051593497071790522291665745539279311384371000444429142515487121235546826179499402083274545453598038290987418142730408600626092473203272291092261498265947888556123561726981564066614462902960036075690358572373138994973072157588812460186252598423701347043238853936627499042642680558726480734297873585554357974121037360970394892859837094492268485965520930371694971730097731269165845472976069611314244047059370071720482536023670870970012401789260052165289974689590732895383568490319292596286957039542001632620788667395698461117258558418487783298375860831689949181934445225385234767974391901965448519619167033745211382881120060927474215154900714847532876909503186960623660041159290982254449909106671558727695591139120840952064963360886512444107856488709883124533904874151803276079343810019665152810812061437374246738435739133076168148394832821242163471913327598899906822732212829784766611094712185451337476733042992010790725095534381244580730133522604297003018510784815565141753998921740539787608184101206788131436223844606758929143470004633527321452428819769930091545463971317002561632049043634807205670834204116216803259235640690380621322087269379377153224374422897641521168297107986485761235707969986335555734963683324138330027063457537225087412837305285566727341565561734800711759331227760279039762211317986100841033832432332546853598396726077288130343426895981443703759108170307959786696134606645979332836750282454690186693254923827734819529606204768241663360222511194155507760618126843808469444854543860408544071599226877579533985646237280815919604593266844552288052424939458122203621131443404544471815256214335027040678388005962000358937746660779692058556707977497109574736977953676562497315048615433327788059992619900657314677543535503073317396718297135066764051108049974950248536694274407603939040371666566562469038804975647391687354051941029088831300808980473633760753418045921778969715652021501546221845001035412315418142723503991871879858799713812508908730675829949708364061635676140628789947529101474024553021472358887259384417115506493753522277717376126102796925294160936727219224817018323849689960011419184105034060770187967633294533035993028687108999484652145904112613838346733639535563977998934832802024082096588175768403169418432203574504740069043953486138274118650851601862617215977106919219240617285082062006996831667421252337063260099574675916872997963456067633770595419713717429409313066423011084663914265059581716922206439719802816312277210546730805579227803648902148128006785728038482549918004664362363171710371956827784726235779500761030317887611242337970983672857737540361637130457787427495832686946602988251910012976670759724526880609475604789179140251541534530720088601740204391404878300835901421923737428663772801623355079107554596163833221383304208872713678436088580254710296303164452655505220713125747232892149835533558034670493314166573851073723487184704571724745728992676094314382806323118349066134043912660121320527050498752334209372960527987816701182291092417965400418493676882133829880835983310024024662665371753474230801189409222102260847692254808185217821612414924309791095128098360960424278067103849587905836378251638736087228162272214421897052470209930681739802457992936249899385118684949401396320335417377435807425976818908422521890634929769083216192158642106520039992868080059679556090348926087533964049146953093728285715422459286358002220156883832294163443204970934499485374002467420036733013473486671920517122229148748102132146357016586787178977225683671663438391077149581583966282742755255011774712654506015479131457985864455246475035430698614898558724768135167471654305031854681138773547534570486432843831836333019919783201829127321250912049846992322620819587321190325885501005283489162612339428439284178796846744869046725863511766353383055652693195507270958770721339627465835940193450520853735455826991540032995712691233592439588395419290526090978909999702674340826302732910390087581609456080236906101385028677520568612207531515477522370494909949259288354843624821725868928913912336780013085473259816663177790823277117757259636175094532974772659850161705278881963958085847959952496898763279204603546643491814790477757475376344464548070489879609510136066328597993188380449661757923055591489347492633894100654203534192410734272337083717669591140363176322117826694990221968354360141873516873175444634903717022327494838941063855748689906015826446439077978642547523611238843152935868442624401424494702877547410578491188196029417722750071227591202388481048166777155870024869691466255906351779970198019010145428385738246451365022950371018475944190899622989217465279357123756503605560899220680437115604910549542122731473764145792244529867693069143933561170186855110656818828692785368371447491787309245527612232936941726542035687100366356566535444627327756338257910236327750064034748167161572998682998826739934723857041149660219946844015002625783098182365266879890516453809282581647571336844822751109375071460043076518988912006846227806658028316857086527442177551918838678862200612757909253086654250937521682234495235366934745111106870702726835925414644729010521385399025270028091964602754977729479777852592226241015641225255851511637020220029728357582063150256509971978742827443851505365511164815771845672073569685039454409557117595488974558194985516946609297141870622498921388828549521805947526494334046707576527200739151817439239148551393764774595160045446593687362391652230574749928011458191750595327892994983069497072535934748732755616483536822060402882617711266881172587159915990077343398317876708671895311056376536594986035619752115826942256345669137667593337856302181982078158719245269718533506623143291210717291424686081624031186329087497899180780474648159374575710210871695125654641016025646501426807890306393883907404367114461872898123425641961215482058268838789899338058522847297755411304235771582640934406384228575671839716758298640733961637420595280758169689113408208969791149125717894989202386214889513722185758916206980263098373257845500918412407180714993474717617343729458828832655138842959929848109080726075051827483013740734101793865207236570065969230848768615987211670421937448001948381142167669790356187192490549978437315978916945812422855793447303023031545632332367295713951997221058369865672984204045266908240988193685223994661805758354791634451803517404329852984553719756737274291851454793101687994520845513292235151557631172686497128534361578950340015944475756698851074026638404583146891535815171052358886626456467646723599556372317567775363668100264074902568491410860662815299216959623546147777084880623297681311994631467195146965583653944580886696891635486043629428978570396891212910742077356555097687855467296417110647096805966840362242174088429385219575977046090366701169371812538764660892798722807212645871045940859980477787338969052462875128278390486350090614684933880348351197979847895410264735693835936269492760149935017853634432339017108618307911442066287375638254034084543709460429770831161038717565079140967035125538748360649614045240582102365238011213827980972996634086664988549193632954747557819742243827893657083294179659619427677047372588143264597232723867080919827737153521043556554828601250032620428380953522744883442451121006783275347146736983771832665310261475621663779646461034191998057476315557001664006866088001901574627459722487253282729246842275841918944907711939941711671391270140214963780670014027272064239425107175752039269968734203243109352252673018592093684676120483370548511599927575944714722316847311468087221795403528599645665443761739826931751441992221628502927136696999905013591590428527839507368832209299940727203220334263455741582393588499093791450929084356301180658892333500571954751303520760642478925525230631691394166115922192549693900581972347452648653396499532967237321373375934512309723031838935456496247633331358608511862490033308693441030223124627150504131229027751188694644627152902669622797705035643418411949590661745281780760391130088364571200704897513030844710201245251960642114124490842371062366900236555418068431197943525421613044209556339841103429720724977572114040896259596354032148702326953059149447278349873715504946042684943349474017514461225644536159028533868798062564029853152016331759063284387563025920629494630475434554405844849446947006541820230121123476406744306093468393541584049533168940450733110184455124774224477174582575952194119234842764125623005872064458307640268823887049346485517406653243740345656252198551158453495577853320966898517334875098638826838554004304324727303763770143986369398193278584520790668041979092874334033355325728072817250649909962438320887794142055004936122296426871363679967652421680926412347456461061644157770021952572497564680202131537094059698954256042959356203743515939412874243935428948914755939966373869116371640127932177106126827315571909430908330020172946113149807920930752174314199078405971453481645398457988474015253059556045446152274835556307910811101725674074732333500429279364843426290092066697638823267628296187755221673339627878516956624046357260070902541677400657346922993172523002343418905997213979284512148670169323256708910201227719860440007700145345863428154573812884157474627727442328655207440372815131601696558967693394827770505460671455531784033160121258742360403144634177159466119971429753954931147290948146717996737191756194828451766705278442539407401047063289233546214377321990917151292430555281279036967720071704112007211562871951364605246225514656509232242235215363813117801763147674585929985002180094811836053698881581958005929886484494598979623487272478745849180309566794175630358390063781039843385145483722826813960104972511187777768833745743688469103042846224047440214476197783368213018392796374820739086836807643410068419706641064344164727888222503320405837528578141672369766708982538693697688013123995552354453602326103387737153209085799357319884283033316118136352798898021397038057989836135009361455544637942103286180014209485115212393975611650665414394284316585504429262833270065588086013586469285386034697862859570779337135754941539337185303186273464676234467550072434515230782367947746664387811026590796147925162114281192510990079535492920390321832354871888653769403050600851720617271249413792127191861630267466633411496905809013111484395616071092796587791708848723236786126661159757109743727585547132848844760484380851005987853830637322951284774201696719273098739353603547869253082756041308532667893698298600142013610031791187747631315137281904304145487474307041176596288059102655434797680584389261053938875350683727967478243887990091831508301979455777800402636278764594148276071284745350516519964871924990001694335243217662268451706058521133830449974932135079748139738837528496659755601089207604595956875689018794988916355202752673353835859435456138231409684950465667249974600847224388579114741281471432456369578886199845711211941389401445402389478018849761063675875857404387165918346214906802407301114067647906364896903900150713842679683426252172308605472113033993465041474715450990389972821537641785212276300423336532803881091859197962850981284532783625265714985191801311162906380676100258580680515686426216072987700391855459646370881455488731338509383334732705811299419321282849770214250654865602116948086713357963548603977056451086241248475884029455270217380357589957861534568274763013267004914272470064947331439657400232832320630108880595459761474252060157352746416627674830247712302428839966483576865099082855479550202127955867826200409809385831520316107252654008513709775022933508938725993587297522983548896110295001668727877680795687631342034020005831543928362059433475334218760034361721901251720262155993668740882605062561803797789743137091546589957224670523101558299215973620818382743371010287679700856210887247406744661797442430890284315773991819362799193781338376670585494600424131664571082618785969208292928397927545452540833378299212378281945344168253170488657233448645648304785544839684115911145306994754174632861233685057879880634773439171648654049045428860540895479607738640446586837133090209301708156872085012410394217801760859560615698492150791295134021627821731814448234903136116003641601136456738572147872306375466729823809939681111008543738904637883876738043012497487209436131807716349925618382171800502490146230880658009718927890936859174211649035121793150549356448725930997958195027424164155350480656238636997325354944329784057283382956284365961149939924714902198105561903424804563006784342388543619105862355951113188645551257933664725617541104370191429793550055873780031749855769135244227190967905756721116130924352729804537978969097111382285871829346750786359007739286109019614289641051004440587516218589109534318739285050072580174867812811117823946619642033083378741627109847309980579558210982245872131833236948663767148296887838807650752530082264199636050381209193758498433610858926928269050307472648957416178782288537037835368555172922892211018708744290432312946708533260732241152658497049766512769157766532315542727479719316082015618350686369013051424606673041604499764533226853807681906080284322690696339144728745074449284258621199540760728651119862330673883394711425854540110495574199062110662331043378834540846416251090466971604685965729554174240539155261058151416628025370129409517407443890193445906753054983318208731719394729927094123360650027136712897464448744262793316749057727551038597408206789463245139293670065620311951989749105803335279461231700269117800608649048158863485732575804141976564730697830074887135253890807334222608284015511595623323202495452920036674007185677360508755048598955061091092174609584049886131119627773310536990695090168761800993131438655100828092803919928421167182806101159489738429515149057813059697349219742561070041886899633598091213179154136159118449771515398684481456678359926194670539045517324118419099663448486123186607968155732146733831152455359732987561746072580856551945876625136618648232958756380195194203681740403768684209636815480924504917123688004676737903260158444640705420807023666331081838518788721075322309882568124839016978501058683722295626066676175883842680023692450765118235995364282915310540467478689262908629245135994445246252568303262771682867557250467690258832043190379968606239669411774965646995499987864014630647263807501576888933252632380038116094525148740585555143335715481211991361984846007830536716846930611803711278606414700291332869324968612078859156126307182209398665787304699879117721810691555681428284832799493291046998546859081130023934687016969109267805059347702482959208362304657239122916010803835278076209985737433539555740265804755796415112800316743131255744477466290919873766394918516655303841948574664070620886302314103343113912985980695556775500228799711054390497908101655139727774859153993730240445783285295245878120538316573455148722754481002340224098154124054249657392932119960497259182490714492739200494498725952811622667806792255526597687533724114241558609747386441433951471130266980549261847142850222123855520983097230695541613597933689127454686295882186588256891324012630114673736603459869923715302888992356340693387401458350254513139857171885763390597705713270674928022369928400714253121165663036885684961770482399644554710281595294234051246647738394837653976414785338668986191570391813397459451729928268334004786652774126044522254123304781946917982908364296882257762292850072857389351524499733094623006517449215467764611194341592224174754530665574350803722996720822629831081203577318200616255995610137743021210074526107106347087003495286456125289721709615828198934359214409199026552937286271860352868342804147447705004295076774160284598677736872807854777693376630686317989708597130933395905320725299466785913799737124275252884575475889367379955891294058361032392684148284204217897588451348405563865739678832025597970889635493428185644029497031988232742276960467747482449882881724376820113346580279590364956725951398759961825460406182745035044419443935247376216366828868316797465169358977652928755939622344260977250702538054488624710354985756033692905684082130244632225309160177027453058243086905502873254091122852720191021248111404891083408199364615452034980597234309593079812104269408860191618203190481428386370914249784480600629636298203261160695550252229042610901980615089261410461231128895565913137574557260351806182605517568841379747562437857948405107950451382628145342676574577264483022741862564462761855365566064697946159530025819674800317242410157479288688174812446590763983831127417115202268992153180009242489347946662049103087926089822984414671139839772506895408420707049862341796749159852687311037566428358020917098026620868228036875370944014842478744835357574368171066010642536316878695503425354948565980506280389733547013168791926459554964647764240720278008068960302309310219900931800065120694019724883448689426708811047189659528756832265987415007961809091751043423698752058175724377093698944661840599853840041669905478212461976285612039334976609365159624800498172727066500595326142048464214004658252555343335694776981282142106551998778449692357994396015493384702746158757101322074718908823138039161589932710613107388576213427146319819810731717144949878800650321505491861914123427046565450181208924616038828985577662944841352298861719326558642323944298765636775764437049659718274486103663241751419730894686522485171557384940477245687275515534433366255570724799049172102983377117055581855009425967187573180623579300045016848386594171954810346675824359024094608755040761868568983303411580134037308643589977676385477007787254749224614070037348945072487907199111852915279262958298330102694476149831067345198967236770533636765397744696882859226068675019048231877556283351573260073488355798130220986364845859078785063081881092700786598716690831807801852891606075090508875005058955037798970928807533323205339484778775806204283320595025556939705883458796201237974976820932880675604182727131827572801135256329889004262864945190007495667950252253439328201685284809159378718027633668936845155973360636458067424259169915813468467817467553342570071105353812356939897281609670889027621861870288382091184735213149300824085863831112080402837044335990626554582938515491889558732492305379987563817943199360615625817647491367474209492601899719934053738597004998723715174629703010048723365465223438356404307646234441665515183607901837344356096771716029341418862025796070391960678509771037910403567458677828799422457022561733121788210203241722238386960085171515936722200010012346180711580620114171742243817665627864171329395604677058783276695003207334786557968191448927228577321435319519847869538229551557722295192593033716743422753647201407636772488681256140035513677823631995502895140669674078702983672483019860007082103212742104299253485612175486589971861894961916625110463590006198167778710479910365023874151372342261337374973870973887419709496002297663737600363639844861327160683500948359505032119963152718697803653921928568468331718104254363929404824110324188395615454471734074635772932078676856323423698633839574930226986240812483868138196406389278889482603696359144025205752468413563486980697420998674682827208322884534260004878568757711921327010066107595338150559978069729151536161148545514144650573109231241804398584159379726138679006148914964762030740549761410095916640554237115249414218952356267716505290072566240344891843865982883010582012620325737399280975431159200412148385980881494025677264594375668659853303305883573478417105994270175252861472185512887652173168774232164249201354892494206008498298446726484880889921812756570264140440867721812931449003152919635537673848617031100599983490579661077139840065947362479710248793449264253558984042816166026629948222882492335038254692302024714305021883426197150397468145939154670060229965198306827886873928742113491842716902774098436023408829660186600094620776528112170128045459735546567266600436901739002926629067274552504742794091133780486704339171058002794167985245884715485438195818713379096220503951264065400478953583329044432235879209919424016235998847574326751324499058402765139810578337903703281509818930671941114435694233586242310546496875699862934229532317945293203426485221028154848501651227337678364420549894341123917863298515389394377315542235260842017398715852882862179199603701428394989786523220261510656356199812586813374434129842903448338372024125710702068802011813001623604277833938176503606516067637053529963552865193777041198804346372242803012471484489674709372091863372359446406500589005004774481467077334795118989332502312209750748252692068731320740545061557222803087500147771090208017999657095557973909360348866309361341393267530282165682414991676992907965426163985299412099654926205533372016518970960041583220326142426711537200304789867269104847111890733953232044878231008599584228495157541462621682861071193661504779686257493952566216204320935082462224190270090114627686363674183478391693624751024516356162285159587015066500277924330408683256832930509914929257673705839867870124477157320107521964836163823466125734582601243361989832121946451217808495057280780781931140755088792724988451800572979095323197629973520779411682719944149480366222460605112524059780988098872715541655717245713256295255955654689766855683190212442075239699469887807111689585950206427550792578442993688760553143953841139405870149715150673861086755176167644067227349223062368665571741211260657405807619563464426276035193100661344416369787953485392738502012213840135619859563466915645684575829238013079156102362719089656323940196968028980464198980594196799915835179026288749499279262623231793059175147365752712193633583624663835181331969307590370484996032682508623989434560300373868375322138829540797134456924712491426234377024200625728297265994507779196578127062875864983268435230986328801663276415086464915138506820196306527837742733174986673868563632596170044377983424157876594808067980826930362267828554352662502448209589762160033207573889508478422522361807899722933836834091931433883478143902646172513532482897766699291607563885814999182162287301887970560950446607327698126869361135165420165190141593071533458028986539983964324273049339342375840589723803119060656135754577505226526604066414637401267802417159488929427427899482356108748920437610459641419930447416267765468087689419369985313547783471185193924143165817505746944064108258890987979754099569307289546812534237410189119188502160774500658640246146713618898128806414420281140822232724061021767302825467051478707327771909117184272156137937350834823890929047147862742001734906899641292830297852783819450493320783914573365710593079698562959756874462176888654926183781280614089531499913689089833972529138520647671553718904530900044556818702200576796769852056783322544976291822917188812053558466395135956289577558935025724900203985922271405635699868864618790376615990060098854176000662684245841033032671664131267185760281031545714697955282600313506050605615330880312394777668729737550201234539134257667828194548334459035375435188191593252595682688535163273732372209929507148463475464727556645299620555347463799031324336691917164814577382099514631417091630697460015633525058380738996017790414709123843124216092937217695113114400212169258247336259219575102736395227437766583305893548678409149772262201260862092093097446849318614609228055931901935074520850564608533814646879918195721553729668203794575841627136448990143794089316630179193778172534099007753475221516112146624153973431292000925722950500698425025933889302261523714343671332383311960143758293453525000360746054353177954337116247243163499060051137066807166547726620505489876001652489091549298335903141798497085826115276511813842339378197413826552642620771181727994363431566458196736723155137206828632421457366989212955640871533975026405579683520966411493049217529740302295471030204642523260514336774281984670686011065681297721979827499166778694923790290667008336925780282613457204919149712528490285889191122670496197833807108856994421346788554489058155411149428050379190293816790030584126020750293096192989966235291601151725241335069418323187432441967454460932992895900301483369597767305459213096196776880484731251906055005203105044350166799566994591648928852035068016823482717244294703904699617777855884518550219989478788751437239002760225587584967423178820865441945554177790197976671987591682362260322806719253873771480628006012237857704937508706367219676567224763658206007664733314891720118431447043035204819449456775626878728616775321201001503656513722258032384648818510585148583475864347445034245085106666921490225843280157944320696183083192588249795822360385107295487538528684092549272263719512434331701905040534162823816253541887337585251726680552089487242565587004473467909733903850739735753045344803152933178562188757150932560922574848548070972751536777318836250773490446364504496712663689340686868958091339704293324143039137300612963396910885640724130630224467324074290125318274320605984972236260328965290121638155921720475814271379611766666169568368192747677637200306965166719842528551358943740433507559565497735728668409838625430925782239537220089958077586347936348557150498662939955345329775396611171515964175157346062150116538471382603558659411408207341938921801128001921562866064861498554085621452102349310324979524711632462034587980910039423307064571033165793921973657128460547635450155166963070060634882463028687392165742623375620726715831219300407535285955814930169346876607072024555075190243177536476223248867857931272877198906185841297302045484736769533272311272315033400078142002378185466081050464529356192717193299907662222983008500324389476179808611732433862154750313189637688741380016664763035989975667916620073446791787259698476573725433950199883139389531128257012889849271271761059827403927258401906510262411435917259745932193790993599101436758589425360810980856900522633227596758478535118512330443487939784999937237114989503113671447773793280043932129701911260533285261661831981238398924797352212298385149179802809984611769581492983127365175710258188830702796415762034314730265174655774694704407668063633526590575699715211110650721244691399519300168458593807017564386689237827672320942110290891992512889341935815162857450235697066025815607174550165550449655101112241090623597239709607674524926504024626545528150329590367714508618816024522229441816925984712852293943729324948018242829292433727800017135938506252438629387774644033989094100700402843006346773277434251769724474193564538768638715788629704243432756518959547876139920946079286450937282855299088541415105028150893868224779434614932385603921438576218126856635737417464212916687994063659238906190364747391667151155429763152311324867382607874302844346152435156243207332864857918438833256515334935917862318166831495983829540924952163245198814079575293279847437518795513239681196480819831511360968947903769024415427052770479710796951397181369955306375559976200221288115169793961061300276323476442531751067009465666357396167900935514295899386910323234480578984468289721361034683068874109684056118760197057493625048079139869263440787746451772563964394375859783772269252035964984877344864816925615292601848328999914534849479234917488085209626529661154349406988158829258742935853688138703421264405096815896308963210426667839903863315819463846081709708568361311649461123063382998788656531182299429844823533106016620327250871950466608233665597115739639599921676253818433317188547612567538316043102721734827389761674055726959747772369926866434633947324943832820419015403706999547416274732401585383454177435050435284378495488653954910887030281959760347944902167733294680603012235350207894117992550702212797400488052145938172428527169957629451454972952825162346544550600661094310701123809032836931035576619398846624816226570806154433466421820447369124459237203904232635291959371897685528745500889104811388814120633913665322919846121448873706203270140353438858346058314573819302492164669796240026848408751154654256504553497798328430904587016004050855746166598324594870308497360797205333629787872635924115256825992095684825502311149111622559967844823987118249007707497446398056334347844481922392894113307246843934109949476213443813874749155990703957267786193673280092209978013147428380412172880020165666000874005191369148656537974004107419556284803410645256847668602109399078394441707113339380385962444777940800828254990014308183408468756889301386387327356329446458456958204232873421728185935813399211103963646618634860972943672122584982682380425186603491204026086013941217834360136597766227639592068948818647065075560580096824404797015148344146148287583218170124636033249362327290524900580813922099631973845828615494272034282876508393954599993117245814082030634158526866155373347808205715097093600078479189564265697615568055259733396273749460910839104925354899912709912439043705370211697485352021296894089011138149751659906317463101061788795129416224983951352936177823131298215095340819315094431982278519471577794886770643798689322686800071579776532903269767125827241453344165007692613889006827923939858535083277685713629337082079235174035671433000223158793867994504346299749628072127269189591001555527375744157296767620209616734773957778871136829557720096476806157104037704471688485653307083213722111469421277876164257112060366610160764694695283965001696608502687874383931297872198285866707052386096422855213783777038977707815367180560674252794775874245843612938146110279891061805847846486556703083422693265031691899743588002837776487665572278896056727645601117875101628620509799955672842916687671560445553265147523418033798169133462506902028404252872357948977159828243941643117397867010575615612779224649258241148346551616308273068632825359190894680025148751478573853574796696260653258215635121739756004116240358478691785399794325372855096133350003134668917462833825736024397316481853889445709620138691237658204374091193542297988808134322983787141296012871461334425411599821875117168305669757310036395001126801492384851298545855334665808417249145917982757940309340836063964387551741116936033518765944699680815783016923918474225917148244256435485367849344895606259458019454944349591501320344155823372484395403149858054017706957115194934124572908057266880631834808533979997894483343435853727972464057689059940364806759955599991125769122256710720507879651441416304898901742854258539690959284294775072713185432472106122836355630873739099539193589683349781906530953954617609609955761376092064985482977181564807096549470929385421507758663912700742916855328358274941552791567738110966054668751486070762659951544343866210911334317266442992152525713668545769111324023429704272772931983570602496613487225993791298574809652579735641263637236713483244880689510065118020654211106013448766860029893447778424281839634802427696085401136302483717358395321999777247669306575536799447219025400762334942754420752580478598609372675109922365655996940809063370074083153550773978253616938896397179498218733213787625130379519622637768477153176042860775709267686136644835169789421221791857628008423026538952989465835149190096667813184143736528588730809373885148596866903698684490033808973704204054326009628075093961242889595127051973976112644821817858186010332398903561910375004907526120028503432519567764933038863719193249599886712023884562945802805622385422645263600857433138518248489278787856004963384418071605295316432141281352103157586929265125665422888831663756416219657131051491775614292168514364785539039780150313631213383405644067480851854175112696780725687881923591485287471217303058094669789471320708415971955339646211786067536017204823059282921840008437052550985709010067962044262295668258224746451312442175943221107398922861360049850284497717809769386572311004228640706827493691667031738445320948515350921329246841052571540763734657285004504517887630267474983310420209526299465938537719395798705823893120271324804893882436960042361558549393892554891822709917597369012323390851874956822605446704075185863639777541203228130603278684238844708302289555249031499294839748682893113952648385449599535920343693456118614925327611256619317440455668021585407934928156735800098832776197255957799657558953964935039659841129280851958682880366197447488361737936180739994534157307602908775401618236010622417237375200125883177095326719277208397787449219483434353812507679585470784460905002303710101406318686934820271970259369750581254711522084223797517021692254864178320232567694700127426546739173361935600551393676849639840978655830499661895181745029339947061156214891803524072235913123207994767733372707414860640073269909629004676414737023442573570733507548555771749025585631359474133598617277054418043520825220629082162797851165917323722914757555432163681237683336520269842743595355224234715686592338676582381491743765537288055104035211879505548529402338691761196539256996394402819653435207123975511715425221799331368047666858202283093691596522299893504605034945892637261585608653503373781255538413634943564884102231457620841511331904247135611206925793759786635120703697350365994207755834686376425895248801066475848551958475449095615694991984289592063865832215896763349786731699094808615262645682065105907082903355702997378506398662747154612913925350168265296580919857437332633662164911292572828227706074341037034146552761369425669784102402807534220737358076442467401240399626344244966006655002723666151629963678074412931887651944192346446578228459251374317429254899464247159874697386870699780722957379107461497639333832304000293449119802258593244699338801108731511111453606499185458215807944610371078569242145089891804162388256607914695046062877052674479193640162389901103570794190859501268287089395899121663030454892853613954390267002475189735735140814107864141174880350756096453524423332132983870953429550114367221763844853603251622781911666733520347424349381148961569857884324181291169766548825727952598304793947156478119529201725851857404751754454953179610767629768555339466701869906774415997118980076435059328665641249541531856183208550933090852915239453599953120602037579600482329245052660868645254318815385334275657010408793280534686280866391431303682357430228681750854501899437500866537348772517096118927179590635913121307245120301801139333153484675024193883930392965121170550079351434115552109069239103249116112399292057046753189089199662662502116297953679272881188289094717535525181518483245473043529211633754302296168973192947515058471966955408846714009701738089721340423366845969812389248843277306423528927349207372926786963631604585081657798728461791628560281228693014506476809468464230509285947132362800314516439606531318319264535506059278435172664890033749953199380221440172521630564781720724424323548334113053505223119753102253983523577820474775768949565330880929237574370911072626848522291697276385917119643646860153474205265410518321851376676452749296845187385732537841095588726362964469900586724168165406734772416072092823237558543175493923443302517281862524571566407923405315688797957995410753629399949694846206143771121222687477598221515873218579795837527619384676284229447037010691818113282135797215637136027858226585254752010892265974236713566212856870160506204803853517029222473531955825103660718303248995492796442441978787250448444695646904377499799150569017077127426312551387279692187706702904707573120271332631583428552644480783516983743504044340230035585400151771240628645978180933355677296829012692020771366761320833184775317645228196916299311246874043821621910136226703692143108306074350628384152019369024778741124290276107032992581040487469667471199315148757574916147954417496432438141072163847391326730294688243341132959393066927730735572146023540709363620513886625624539688531527335428215435825972263455936380400860123502936439366387010979907704168602183077891261822748927268881817395704193646497544336332934277687180891078181144660038227924410635224282762765557714297133451247795160852588028352682512762547686180320661456133416849135135446690595548518922446169552623394353533768220683924527254659102438295375996411601030633639189531554391189127776024024336649187526419056938051906637181821117216692339510326432457343240587292150551351059692025198523360771221137001332190162426658563253250133663364485376133847085387979646504748747195713582564785354635091852191341010012534831144617063661323133468124286420488259405885718833331891913592558468033065756124668992933806473018426190364233455495522623933727377587114967222721589565382061677905271560180579688724157337267032923512986419177453368660768212207082762518549808490108397983407421516393787075139290633709091897201640652400227225228173757684358611459654297872478994291081411221899899097290520396589778328377415995614414182646088952330458329445346412316121826088195178256278680035975063682991370402776947563849203106899533659580784579282224634973353825471895604382464782570693863721383997532088815863104984186653068719609160884739715629274464985543026812718478364259120801781663012501812626437910467294111528124666612166517055525634460399844433712529750878308443052257040832272015928919929248929488108133845993054228528284772349607298833843827889724301510637735894209799314884029162326723259630487255806725542987341347494138131701311889329359958319907002135703394407566132172181726348800415561270670608803693871041107570613921393432658708588684504074964398247401447749511639813141496148480005650243785515777182378878398252906465360261142244851511671132918250696879154166493675414858565400094700268472495672430969172061484255306657178531268005613318425848272545973949417894069147999421904427849509499776475613083703506379900887638403890278662624219889811013882457983323357797317705042592385691802755941033177323879176350526994236736097132358920320250550527680490518627945384934727063988510653400970518985450191724781437660349753965070023479962774372335873343328416920038921694859635686045907968823930562548901649045224183086688226065821166443965239478739611173339888908337094060772112103918487838553812132070250404739965280650297824834823135930725864596833042640321373063292732877112809195324017083955159733416713734303830325309273465605204878959172004167827626880866364355202956388078996030449006997897097148963250411473544574799769455507422995869603117522930324034821852180138478244114149456658194294707926198492941074363723593570132065926147042636368277275173409395517829911502174062562273732836792945541342879527475153152713793000940003268760444348216078270111199244045983297616704568326994498824561249952394158833252793933768116555249248197536104709591824027833446930205076630564250659602808046153827513889287551090164540426700606726811815976596543680945767347929536477517804212115672100830479117477940550733881364144390228588612977558899381875721779233874782272694763120277434310657096916592024451135584292237757900615665271011910764988638424791613187818577843171582004695126860132704435509537699867420811934206058959921074067099294412478795693810525025792556464393220671381220639091347586586939995199505427557762288966487634953486122543233844845459169019457042668164721129477495504754545577942580164687770037224918679854191986458890268482596847579410542188814896711644015279908347863045759924307251234621525580380499363995736298748004949400181837038718854885358676684105723763615787692549829026087158892551255030513865961624957654377997260767473551219992110182013130805390369194938066410003201804133101157505427161321749340073396934662421749707110916113282524752586192025800931973900572527451433406909579871654714962489364239040635156712929249441870721822745680989983994877478092674578689664916677025618896026947518091979066842255086159080774874791404947081156368304784316166318909629264707337557031493125195082143697734656005735526518878374089835720657903091569655275250858792394877825264849003433097857499915929044599205099782490044904311109344465458350566387157185729855908447977612782753300371608411288884742799399494864448620719107385493996799163791893724104637543453295092610224668731541384490171620472154208435032414311379683338391158820386228411653814751356733112297176548879472726566907642986185826228109895284040831047328252678079434779787867919549904184884137801235637228602795387950683298512167839686756959281311064968424163899656629154937392198506314614241269472006093092810323514840220563580957038687772031555475178241277701207744019420158027822393443249238668636421226546377671989402403143447098052688195289803178663137163892905299931168991816023749466442377211297808031269355444734608047781585418297298457786509332890573855141497470282678219550091986577612347981586427354320479184993167519250793673146139311051333737001261390053295654073322691018182721732149191585821379844439513930008245212845078362705780139755042438294756157905854071189634791174348043290266539040363674594763308342744496948600939101468267946960505968784216708152483313258529876241186796434593023722059480448756264691286627911135015132192942176902532748545928502965946025136925210303982787938382576758129758509450347723467331732120907515513359775603835916751600268947884660045849054419574216500628509384544647796367902047605255362317333224858203199316517419217211100552862072814570440131730445732142863749793643472498663248398626792913238159599381613785251414684131885737296048004394935682212706924209472881739178233743583020962249957480386895415054115469808685361219403996451679916942198205151559687005390948163587724125544123296933948459532668597142353475796987436863673419024719915405008952273576164430742237239042609894001078635673652764590656693301148685225347957812481101323865422010841828400967771421774229483819147662572983190050816782666281770273252834200337599215280955364528737228110032060080599672297738023093694172026402425196209394246177610393908247868772208559483658416985884905804499961138213203876251825704904486809818188388294156964481383748958694653922658100341709286962112160892725840243759808852312696844902550139221112391175770824522492633033196933499179103659696008497443522539019305552830569203438402182418415565765152726585415535448542214420579482990023711884516184697031208437023600187305848510777653265044485204767944332377482226484007269142707289842351684282977593490181862384515235205923393231346219160775342811866481107398542805157821852000179888181635851727657536854245885790174933376673691148904855148376313946285171772538406050072264540685837050593518643987256246869170359937985903473991467963099273145975041693575029229443887548313873952735024396041346431450437211534530108767966045000580073853135285710941356670990408481967189981771025053150287283066171037771676721981089653847700912518443585431678376527099991849487424275270743752106475693067146585367849142892857180670919732848524514954999011175361651348488051278748700749332213303191183671163803493715344757870499861100282961278350580966482657295379230786675715789922473637956376866305071254135686050178533332199758811640579060026877164447434892848069045071143745899539924136925609682971015484623892829407157104140161143317144827741809248101696207956799603778043579758942180100802672675115042542211080850558838193551880275270546233557990204187841405798633319640711059238429237279155567007114971487964668025696624862253148595927730834897416624596251919652520851198809611341042313558460341187637106404038908526556400984745995916683539866347986960452944953078110369231240674492533973539403054717704083185520639211514782670659464902239744943671701274579013548531477190898661122264630776812449679730851311489325879299908844943902643390521385718959867819126244315513826344039854201056931162841545709750852351874091173550883654335674871450178627271720029620691292456740641232874281235160923436362773785876070801432744832450237160273973410350461708371559938061651875829862724024908177376652875550876808235180808106336183272985905825352026935012045970031912377915415404112986313497904250918162665239102132716120637134545130681046480506796082232306260756425604847608848201254046154342860764359587071521444760271645501464846032237987283569059056695982899285602624530804673357437316825115231497036175507153207263390071796718359196701703789763356045546221874826020731562932919075503606929783736316108794796799109546017537913393275804351077779784781664638196828196665389376708442960189388404549752613799359320462897252579652038974302080395230292689166963522256128468042049067758905182890790755772821673109983727222362115138636269491226508105201913292317238792001028214185035132678952913248130155434773639702874957646182787462332701054239501315729389832907607382530097611810705200567834670676805398053392455861390414109783305501210041425226870051518249257493052454098368112482570847782375324989021856447665983915132250015396124292089827842954616486394759848322604834078201406988510745136683247193606405692895448232287523853347079012079778341519043150706938582986946000616928761162281247996622110088612615076231494860752817131193901543981931854652407946256617700973341671588345917635172284008412615193168296754992497329950127567860429667433690005691439539902098795513391743294315652943661693239241770985806345875484188239114782154504547103159937178054528973447666151653026426467931460946397783702494398719779492686410631521930305081025290127695743049717837105394662780903486194686039348805951016352406128775978862725183765983341921804897546259104393180835124225959642503618447628924335728728489903196003781006296067388360067063448270590682003868609369591600282766462270950882054235177679041115499793898932734665780638979541700481711046365785321192302618978905907782800909213650513986628022010854630225859420295278951443807359400400758612364474078961710680824109751456174049317081075760971139719483121170571552417535047418772151913990263085442751686532856063581858423734677773567525627167722042346867033694068781817125091702800633249347065551407033285076595424750960504381188952233682928514331216938845556899346689312763536532641001580332150878121515650358867270087146478473876009151868202418158182371717963168643166927402196568622996215312853211740607638190277140497192584894609979410691571994477367976020831638508180351734501675082272186310707672250660449081300095577963644949839588255822047544484179422609617707139015100531649396652333411799897832639548007349917152608163566487124595124295692373417135260904968404167244682995919665597103931956490442967482081512274804460906852807106111687950848149293686360650204183734282982038719542281256408368849744548546852393369288855257733921328544832848390915950004624802039467624000370282283246721212744320387440840759473033738856509403681665539139964973908949258955977794440272800122887969074165486783736157411671915430378558114893207815869432798706272457953203039590017306415974540703480879327255889571349920234066175892120894228586584369311687061037459771819913387647833323628730279036595140013293929293904274571750702269752054035668765500872994794818317711823750599935522177499620235152262536840052698027258466384095469113364164814577055960269031478669610347095590677652035936135214832213571452939966652748739265807341472213299186244168485532037570103717690061983739030398026800923292579243680699343084361993214506992090305223555891368424537542349814445648545228480701523150833161348311803202837377408363853328288471408990162681877266432049945176025489830730989716559411068395851688136470252989623407616661194146124491913903602486853529436847418775359896960229656517360238009853788240725920702780183633165393847052696598940910586506479451972590784186193363542474815686531861524092359893150718148841107942608810958624685241326005905419395640129510424096811656217122054456805527834084745511997745497395255637801504182233377382371607033591605081235554999204450031613888866958283527563775457389741304867391072485135746038398964209755192391490414258837564964129682584656921073591544010045621112537703925067631700665035375140584143064843910189299154811351231656890376413229469391223709412933776820879145881850303179476857200740820776943282096020245104374164494418329172090002483958907021144473166073297279991146065990370131077128778662599387409131869591703355893665669026773894318272079812125143511525587363808185827751760152352043202155405982594293516858615414183573185210711760678274137084660945158551056025311329410938115533746681811271425914205444005750311257372921915639811264320575085538820540860647778740379518758622123304439514212572103706982013259062934526844300988063518208593007836433760832109381987812829164659436447138218316086388883280085212518561190718354390472967431945937213744168542799684921388668078141003042656613131692675729687652545371862306011473775985633074338831386423441845836991829130297059021334121006616320112153307828165423198353846184604191992526884301325017062984388792103790775133384132139740038618054693878108631763807834833274147489483527836525625467445009151254190285426795019675298907502990718918265860684269516329686601310882780842192393414903568512229260626443880174568626441383560392430060731764771494794523815096074477174990855903015043918255413793473979876476768620350097978797566199586772432009117297312642653395965217418807174799423105356274022217863070685998183297529247058287609489039894678887873877370832521321768111543154407865541307430004380023786721250518615046625030845624136071047122765850199965308990375588059628167368719466802283473495522925899974919458810882351749962335133283177589010318404693899938124405127492579083193645850986008511855456950663453354459367866807875179743628105330241767476524209574690145231417732258940342572612071476674839023954873119790523449635744851129461532991988107344739083492690302579546576081958650900286209141972543908411444615744895482318860683529557290238087547105805679701968827820417012315123969947251173158027908565873926355496547272329380980330185275060655482904118706222804570361851678778474069995178590948324997090374132848126187879520002780950246327660760560945087503387023425757206410605236287266867234561922364899876392357539827281247888976070420266701867556932760992665897464010197904528360774214456308490452964312880319166886459721374404957685689776808110482477999488188635136978124352601350717235582051942429953681161368234359843581589337476404222881798263710226035427654651727833076861808502304117918223098014089149496359210421794547754513570255063016693427611859643844164233912569860225169571741611197573924823182809784644993347493172015651185587984827690338114507817230937624812853271103414484169513894198511539258448790199321091292124546547835979516396872715265467381078946803340769775882788966069840080393565644672175567516945259062092059753171723533596737942702034430152927996874900750441108153266560827236431447485693201994265848077516503367430428479505134197306491921928703116051141388374260566175426648746169555438033225596942115285453203471461514677503820819077910176914559602304308272154616081289032805086661153206209509111246756517077151431107562612524353395554343821544111924723732239335636906288290112847988170871453911816646857755074695424605173909797962480562047468024867041648742958083949064375317505736667897657519226509087382798193269796169892754677910797686867666880094836535024329550301210026977533612760314711732481490015586931774459674303619071724739333267245062059800934192771152535238305493491506686711860968887466968666962342496750580624614988428156190016571219334698958218563316671784243121417040869999845528867295150262865444461851353847681874241659742919809320778136080083213288501116770155735488751987295375984665151342880411938201738122915096289031846247695409028185182092830244882329579499397017941637505325343160353512981014112497705669843449752519625504406748001042824778320781054743866686258869016009966848686517340770799390721800560724238131423162548488087050123699895257647417133509582966631241412156517387121456141937099190991590765556427676719928796361654819312144697781610195824465876484987783419592819375943306411755327478045091318659294453658185508182384425377050002751463573444343347917225943494601773322767226429091318585580957293128112706050837179119911552144705891105456236928286807660292605128435898459300292071576421605290579847160834406650271560836662812847428443966047615367202371566354223772617977189089051338176363505306773761230861020756963781229663232949937182107205275206578752582185116013219824320532377537240326717728623225336826620092265712992081879941477324669124847117864620087904740307013045590868397407617493580516435046689607646705342046101898630611167694062371037247277694328672399964317048916591622926165604910807870850747014575017361219582811129039376566836144267034714566490773731013561408518726841655618500462862174597803151323298627247541767604775843563664306881560096737559019921699527263383304059988480574638561952401995991196264720416266089706342699804434418772269871669458839611350666060869441572309723739585091960539148420890808967622564508628702412927394051925025366682013644303533407811825106726131256492745945474731062090566697935381604621697228788142322402875331017412614142697256933540549932743345625624640217890365648152650728867266818744720798211591457263221061478139330792684877985344371153672367905407361474975248744220985394650445647292781870002260526801090598197980473682191348905140634592047801699878538979859302837001779384276183428373065479799222049309038227363665717197002678020994585990595634157105259808875976749852293460330187723992525948005619725523952399864082825592125636423711941854875173978646692354101751428852659211664822773886322206786034324242208451213512281840885509140757837574288682580092921627622467798536425612085583821515787729447073155780211640514440975425082697503947611067178733539807028122397938956006177947897496474604851360218839650236022841370535847909862286757426952878502994531154023250522352794551249190802181691897035091468631774271626154191962343222220859514698015305513377879177454193872616933755245418296051110844258246773703438021151768584539370519049555978195484003772343238456780179396727703665298511812085246547264130506136344793629531341639471582424937649736841163300279343712467453538041600554099698362774968838341028754863401583369708486250516309603277359566404451567551949299046084386280793689072998404981493930870622342948573432905983299625546322429551340314888110694278272856292638672056140401440954533734047254410291534103882319095927433286279957231802439789477019346883109986444407974362077999604329234167500351269586581093127674153790321959308401961302591886260452767177966264971941999944360866158097613930691795461069424794489025967909410318163324497207499238366596810679876977431217308977166264287862135944376484400633029099036840449009132271706291780860364065368938222860596834161644000608883770471780025230180111294628725762757352700810540203475690300446036156497684489609583332587001226853743344788243937316671336788441010885790252290739439239285039586119956670464024720167031460018319804641878683144941039293538775014181830591520101378022856271103397232448287451444985352609730763976222529604235643952391258608089831869868939054067047768901423709309235884766348131569302691299086321776114966335471843706752229094628295166971957006246926239317597255966421356424442464167590895117605605964049652581803920173976488803824389624557150279546537992115614170996764704830788761655953935532265587557194013041687147066062498275026272962743940017351672128756358820158326956072472619317302542303926385237196607377495284437629398357203777554608175589650467298014606841668803975265469658888515930754031337834201030295192651801918239134369448853423576979321410484266443194991490110713124178824830634993603852142205763970875778037327696146528094957263851944579315201303773548836700436224570031341854915860050275364430000181469506286149210265888168829797848878397978936965326053744638299409053412844086200370006049834307832364409394293254182054732585578830433408312949490954370293336306883752871720807419793437125196936480508573458647963656404651825018066267995936731420725630577805586227567950943817658970856967957770141624617063234579812368092630970276297453433800819835564395306667129767688480606806890417770204121172038725729849320361372205454839320651166910897876522860775919150407412032162890926453474862026496510982394295172889402079325218176433534999308343856122612448516967772162593271445597528584654918786867485696756856002613614452463061127567289217646908721794739302812693059070153303272379062228664184247758935967702008973736902040750119849113328120471903773925214524879112128644573296416455491209772400704644191778620943466202781911430565469713370991277923792850521757711159173050154201672952895269427869439130989773720004550271920015990521712368004368547161395767501705189241856495064629786015824897577354741640893745596623025275442680965417586833910990196971205600162775421963772945452183271055567152626428694216951279846720302709710112902262479336427837251579044940240795362438511102175124675116572223724248200352430646157013970866229706028255231243253154708478424822289461401432373546491795836886478523490402096834515584972149297271774712494413224046901122062528555002866302249321984166865221901622994240373529228050442061739788604527883555450315808820039120197390177070521992848075473901303377268249514883798251970175383580865136140179686301403100508984050359743090629748058692358919002588837934758344809753078104016501189320580468376129204575793214677397420200106296406601763181760655358073201464942199145223883461352029944564565715761552743864510464401267902310862007224015489841898364752294937200422774979000938501571419778919591611029716703095375585118831559687910218488447280642922372495608346914080699198308145473046283445023318916644454129803660255497435437873681974268585144823684068892292574342280103998699614028733751274342260849868870140648551322851375318989858250203917239922928201161307144935071194347763715791681855895419167255611904135369694555267593221549590783714046380198377664607689800882225678291382715034359478744419123120394997077040198773296577891577338601368729107509489400985861948673504610297889616087875738108667306338579509915797912639992495648116686319177434042609927488886785049767518276420092418191797692567043955392530570287470566580451370321483760249319192658521870965240064305156017786200711782731554028567127996173332148966128099761035486034515326519873136674879425676639551081807815254994666525217867618348501234072076894325340165733290926834250104499005853917901289107597764183973341264170114381120964617018348612578197030371228270281992711576329589132180525261142245576771895149954287509092216890114143592180482277867468136424206579911668281643264885602480439142743184173511745768153955304759684730787187692851373585276047354545989530212079292302003620374642613106166686162883394055349163876574950692666521777062781073844264248071719418443140235059436780790342893741180479061803905834927948825544358143227820700529387891996332083074212178363518268621072948328648586059781785871996633040552116438612542744341494111802689686279307476842306487469032059001217288368923376312267462996542156206982341265969227907366801470353356853058417612996528539598006623284430836011460572690082099622194545975427681056374486936521172931878932357784242568928970069823066874968490193507763929701207863586612988435783778684368088663862344810726784078804636816378169922164818170765046654225805675246301464376509083789945329750963672908309845829816942838161473586239157497050704266226964773525182328917002806978199413808845560122878618829385029114685033712053488358659592027900732448480504359685782469608950440739748578957613403592553000035564564121485699530285750509747620280827284522127239633102284361341187195925520007411659766027601103572456982505499974787650372225199224346118080416398822966829795581874801478559702818949762169709159008168603561716374320588045798621335689188508972805566804814403032983341254593489940052485225688094373397170168291183382151935922825733740584486516715735068766578131626748670355543923305463049566936388223401454982005194719526947866588137744997646120757735964658117096695408604980915412026920563998889500360152475475535880650003013650820956420940757765284380296452617263641779869662671262642584624852784726068162022707975818907747610412554428481687590446784628693503426776161068283538270827781138473933550355717932754347708989147038747672249088691696266238725442848132360672923396545709005115833889941495342026613064170149335872015389592456250647655470339787346345616672355504874060467188966331511145112863113027874842784683242628752354771746784271151565091204449219023369076637035705882510008239424557074882078124460899999100432283952683341573642018599065323462254250105952114950654702239530194230287107604476898749732149221532855562319865838699152585569723795270466683096244521279645066029644831715217324443910202687969694505901374578271093006821028072232014141627285424152384150804034940997219762028665870221672903578329939163141078724724942836623704463871014260183990090503714817784555235919495540527209921613387371276930007035353044089984488085246738891954957736583994116988483585370513882224583799492684039922116047421460973447055212649966006661907934174605765572050430462198484039018316134888669847094185568850093805917628638980700612244303356547530439187068863047085177266497688734748871526976324834922428285700728666274379008497413252722282323672491453981262106151916597177020193942185357485753963369665967865584088915910356346007261532113421339444297555100559705487625178514710956121071335826489738522451525530965309311820241257974479030961584513527409485187452060643645596013518526944576615648458727947026875933357826326347990943261878478833178640905942163406035393995621251223248284551347290369282416399087507845737774782984251611526878703994446733675342814900390397802885838392747388679978587335552186479835018334992764113260642167834442633035529666442513845774772721477122434900050248272793563983493106349439138054848934141209950585580156474022529904737147632290404761799449790006689409683509202945601026154335236015586256117510187169583616259485281779542450251765942003979677861775836643622598742489055644180350945297374732828555657831787138972800435448385805822067002889570290859251361331825643277317368693523396004279262147663221313545202367343225365543967693527359232409899730592275168563890342268844328934805532483940202523524392700127255923466911165293118988605784603367486568297560879070398853287638589277115461849574840627365145461730028587697020709528005698790014296750397281156057493930706475593244190133783630646928228454194455929661421082945226946519009748583896264082042639691316147400989067374094222397933822288062095349478085920829250878437223675098146694847867562794152849204371857914207735646404706005049755433110027337615038766621672757218845762542808401053801118631516963409424997855298650549335869405074581865041635919862924135862782993575017907792455267845154769698161180652392574964643764559031543805870229409596119588464963641022898163823342126599132756557664842804461310800537787757798391642976461281779609336997530913034905387528570062872658023348611520966555929443256867748689711826867546622858875781419487808041669551322992091999726973214380727014892687801410161965969531918255171270789271502933161429869724120206141639361007963302896499021584131296044797118446634637631158056971942440354013070477287378319742663267716352626893748411562096353740285673300651910472648604387713787710978376475483899261270893927402653711373972777398255670156349702171919187802322253687630763513722740897817755942263555077835413050237226909619370419872528322833709007229910644777899849793619183777321051749238588368807497072453590900716444452487061969684627441762179175587489670840675678233097853954965105076268735789126692551777205114602412482994520661215211083499966178821743344094616599644814013673526369454260086295690624629341534168518883788378376521690773647110916213595921418880143865469737777513320483916052963021956480117451208206492624964783794598607219700790163502523671201676881770254732209974629502694553214331962337358171150606317272246800540637087881296892259118790017635782657748023845131836378595893255151540977981349079909094913120592469119954176491101798147658089657490709665421495776991530287135729686003202110795088137635991327983362501659173485650001491506900831474039119461320537024254403098759638038609410561245028465244813718404318897534995126518550477351876200736266485024025494310788370944564750487565466775568396355337984112079113195190325311067635377678437928108375453819835931298436317660026447067630822912506536626284201699569939494247698224794460594354525670769614644939149627267159740078817424928496173952377089517987399344940737875581988667270952047288601733841350769907993772496313943608915778238938218140264473239257139265030798338953030898897039046794148009037357221022028588159206007071642006155892061868578441913638814239030904469433040619858432310079439733277183173449590828688801846408727961632941729125338531006685876477370338879987691008238088903789714984677889623902765024766918531801938548205734305087895514631933617701322650498367976273409678201700061742485887937650904143551812292528252530427367873314881022047570212025112295280127504710352188628720015494700052288199134097794760064529880474999689627864366234868750401262342107728958838752511253634023998208454393430427875485064192619005161418139245666709731163554783449003733030212303239679656271654573353421208898900617072844102561503173244209393272712392007990053521286252261005934189983900242203023239319021153721064381168801628339040597156716549400472424008487301877194295444336823054779200650616158460935259146909708866388936339804540259490599578671672548607158456216550861397221299261342480770773878598572492181770567272724851993779633764584974615186219766018603240504757822021137107355900403810510933304588561303590843046777321801624322202347767220319390290224208157934175888338058121782751872604317815440231435610243511469056398517295049855288467039781715527842213309796951899083319983185461323647806375178199498644114905734963031894553232001620485659376872924030270008510122547786998250609974827794812141343602402407600862307272692769946267765815981451147381895162377668731977009627417102045313664883812240343221326954604615347874115156035818794330561012886778747399979307570525840433850265405681562511716882538625102714774793037481171748586043741513779053598884821905976418054862978900813144606816987468150696996972312061735342003042114907665825702459260154235061288941430823530519136270598237633138969100329729073105234018238390167157396926195723883566484381336227571704652221938037020672573938767250049942083220021113999159558223108021552333214602859595785949135118720315693801955924239837260329099965979581928285185960318677363914999592167115421804089543146454332651813409910509118983670701114326153790215945571899271502043554713066024613955743955970794166014714737965501367726177419017690034025233004453625360671387062862502277251724105372459508870235720661082041709541514828006665714584300031491675494787438084154262399444505662240714784207758821167251806390010250631960225600547162750592879700975666122508034653505324853961299825613181649030937667601407511965998991100243325714546853023735094633163443938463419634578656022445507049166162695955143617783354856145452673548179212989186672607399975312991212825147818078880016163605897783757050072419991988438869744096699255744300776133600724364852522059969925466153643522938017242427992816158219023688989499504451874979121365266670129616654600638409860495409667549381672195184912966560262106576345937377946802360834345825716898445291051385085044343671111917186464930181006652501979753825823594710613299544552475204163400152323270492857949354204505920893028523428978755348527221074228776009974093132329717080165645535376306724793447964598924410345974293985373731169987074288185224889409490271007485306097434020334524937035762851749534793477826653344493989736746445437306587459333980280700332236859682322533989408359725720362213904822299507186848543694043781466716539076176816519700276465344537899264249817060309305742676506602583958971011794585660981161423140119856303205077050163762183134251224541484105008742215969107218248207688067382509824940182062561463543716425228658800950194657800026458655149612955498372782679410207616574840681403358805883754222970602742388934963904919303368575140379582588989739709029877552584191279649116300453771087601854508546999028726506130140471317102045059203040485188497789904719589816674310333786385621774892031340502622998167108159837114317331628069050401494442304244557308145033934392136245770518011332799438969300410370480600489324985669179964637588750700816732819176531388848949146068617047283561636144854812088327988321856372626200870760742672962852180142375148195093753266836183182988520688898146494468730498942980358884907391895062249397892727866312139842460995997641283479479188964256637309636099277731972306824533984932089918115095630952960019718350730872935301230628438175740402048535507657020267737796208201562501301474541891391116979558125161136981329831919365022616890951216618669199398035061856657760560110329288213408937965254968005593110571053175938499285374601119768323971972021640788615506286303283530246691306619408099083700351041640463023446803992522559558140697264218112979295592176798921653754882400010104571754619202942191052349379292866297920376343446224604322462105028581320423979969480226657988314368101631140928074425091079045739118945787727488977323239518717701894163341621491768808081971494913120935166243464714316614698103419549091816810053017299161780789739949695846876960746580891495693536494330614136210600502281193074409319793201058599209121646100429330052166664265232598259084084148992463872324456009997062794634965307877297827796274383531781268486088253626178217290395249428474039096344365747283968145760149870419246848309204490572767130379033577670873378665233194819593081322914237236312973746339387443670019926641623642956596517647659993162322630893097767935199851589574309558894474997739354895060710153826973617828605257116524981098316800718482930078938895792136096900506104577164379246196261878107749794605055421232591982586227669237995383279932116838294952234487911788456865601318585188180109284803150290917893714495036063511291306802994249326371845362019593716134629983528953357219580400272948954817716294693101188274050537844018442109098486060410156295238184621441421643231008493506939423521101060743238937709022158560955616778904960789682218687137951710001090832846305719956804007043410553833607799831108711167648655574988580767128676577311051925030800205078953766197595102188024896019599439293231824944266509176675267638901793760074012230089016781639026167698217682134291302225328803798413226676210701797153988756880754304357371750267355943682118335462786082941262854045844587281141064337233956755893475874392994686437438311789200970845597984433113972800550904709502163941053913853551070128742299539836471480536536257549362818481640686274330798571580909847182407553166369626009394783065689120003838265200723522924629243940639302510309579661568408914859340978682761167436422657518478919002197424485568194827404163094465804493039824243544128577885906480261329941737340376975048238485573679286996977755460339498842451569556219237616372542091614277476912107975860174977890175859990269965925963125254081654247540928380204294164493125321279443394667957625658116817623862561696391631643372549567444664628085351312723033044429081022187232221398770028089749721050530377399581860059046534299740919676339639717216134200726202296900202790903468754814106216969855568121765259216165906215375753908803876913382159232849689660364860818978349420650013894378046995876030955705904024241321468590276048541703587671576913653691927965889039263187181895277727410854731470599673315512900060408623502473861394871234059174011193554428259353589238587154370668565035167358690059895340341843322780303932570619472364772787522810434982312729619343021817893632594731952754377475264106856143717072811697661024027819129242747367716050648542752026715416684621782858063091538103771457075761517447921775717201592510536750768924943410746646490190301501597493841499446319243204826879916446299230955821023902995636231130618654010845460613838978399144920399414376273750974110537077052738503275599031445454679369610550164379010327045312127550482215087033595309236873486415699662330811506133430394155733575239786448424233602374535003876314476286479599798556231780415389906656507095437856263243104529757511591586369339746554766033814767597263306349784802996360569676077295844029304901405049997988824562282553557054055964377243405302342889842116471813107831732524439291820247598007460023605444724533361025269370681680776118057890551764627195247727156425294459713925688386621365151706702508208571022081920453904966639850503836628061421943276016004268266491881511446801355905416207858466907609233826687683226811987187354895463213793991099248000052201757187839899202186369938382234227919929573441836296807239050788338941809691418384498440900330474920130623861773422382596733657138254246177657722485343676335433960306096582964048823543448380960423414855032081804098265580671663524145329518016015004709315371609016773603010642975162244495578118313766830161821866016007973807229379433663476795932111800033488615249140279087711114672866300748775005091804176393105562545681246965144001139062475449942692879861668321790752054391468272242103986531368484867784787079065891697485868579278619114764119226195383507929248634717206410747352170585807949496315360864111218859893850034843338285889500562040015619465914074099836136530069555388528732403941867917469037732674487348206402397324798599177443955055178824198511955518313085334840669312854662518993159024790622402199376735328838167595380878679996550369860411370412872046031304774707350211421817864779727775716507220491683865392530804715005948543184213317186313513619205724587768243306071884549457836929696469043287443168905413330369349962972715676251915268073163055813238931462253136653393636451728268264229833263764971594808039447729029943703689642735758030168578412428508766622210758665743918688596700500499811985107550556670280622714065749642300946867026022486790845175180719405078735650530714807910076368947446885192552068236925870953119478032475968607228889130206376472017688903933145471024156672131257669148813526502011887702011426779249556262205511340664900451739363341560691284584398545586248372490430866794433281180701232754937274915389466281900463497991242810054830532201303723071431236507890389538906107252842473840637913812112790584761326911569602964490291025110935002872242192528599342874724296103434435440913034915568056218058767613744235570387042219545536133198662683393419477331678824239083271599978086410548146746280782919437764508558739285281579051206332562124032754274894396476620622957799477445703068215371804119655413239825937335816192283813073970587417324848353718414336764127330827208785253477023161542653654706256235207218967931363040212023851323422312246609294974107434464570929117216322240249824782289691157781070332340906785745466748281181906427911681839127712039101838308482989023419085415020629069059230355628996055236015454254392142640962648054553818836775420684588757501238863370451696704352867844929106170004668920112700431964450209846666986044869203080576844639578702295023798432190830982561491385058179248841997167483831456619652981203694994997248143655794915401520713313898861384151834676735736284926282323871759583796576102885745470031649814705811248495881140447497977696602898491150743509636240383200341727469952343827621315404144026847128673748692164996900504782482433369842827714483159750779338387646621328130534063800726060325443150894577501633981162134291140739689091989897594783994792338795699931073106668158634514857514394488848756142695049693788765511338011327628186565921833825900220291282973766193139122718866938219776215931947592631759317747798005576127881825018886372055387208242499496071980936283125498796331484635886169787756021177249700988174825992045729032682981413367061450107257628044031482769700676235997119634543804372371181826682540358467075997944154935913595243346237597716600420320468427842010749359370938793295602345417691097415868071372421691046502254215507926653103204638670537191843833291623279979572813026968124768803445599096491713433904246060537093402359131757768064858597523102927694903414389386980824824573873863403673935760276252841767976583130619847729460707867300367852965257834593828037992182924498253372647569273703857090566716021672600133007103941959578341023966717444974079093696807451880636479723398901172512711858513063768014915699054459082738612217764532385809865983515558214011399103729493703274654169683914973141303647797708849217006179074474234621806756791542694263808228549512883448964920936507724521806344612350305416645552141965688792280049659403074874433559060037185473974152564443335477973988293441379709376735337439062677318708788764423507026832221377519567718831987482134819962309345549487127381291409778482626104163656561788952218015078097889935738708977165695162465502647376201937233468468977158698403964255146867893996190346899900904695459671771467421352850872429753694886471660432994636718421090861121409524911407690423204164627112378828369877944952375799998529072960664110821367494806653616114479397883678052923221633605850667813456107322019326158591926117352792979635170711347339336739793331097636557497965549901750532931719783987814883894616636809463520696433792649213365442698907004525137715855758418670672288154298241153724284047916318152571039750024582929896463977688360924280239801148214228275075643409617876075565143653861071596756568537340468454486012008126324225043683807248654110452633193298461982816346693047199788830018418131182842712763101352739938096117839474991850672260743440754462894940051026580549047802441084797568135558823796393676291584866924803666062481469490097820329698856455002926105523866316695707403264422604039531300700369121179402433284417015715600375326832069784722637515990461237738976324062007596349277846103519376900716556864531420498552095289365427444684521052222140208843331545806709245578138743993898945713760022478877100463615763797553429731993241353192876503795404200678623999453737205180511455301817860571830155292763182772917077297081648318412742739083152917308911908173993334389464275180473232826851730658102024051242516420341128926386001056451625388604971423667749904798434139390547068927409171349363459973805229326187852400068941223095760976921207145713643706348144728813674162409589118602122113201949755393829581521878210176061063344007475093516405015091648250296288616905699582550627726510750262876178037651135097186241530318378965272645048548636128204073642001941571331873913944990326747910353891761238458941571601192675694130688951875316599992878620892182449846723658100411480873994851448191679678507397624590132397943062497210204886029753986365934220122558769769886490404762026819001769205109329360337394043023435397292261211276193951214882968993702566234520699736578544120020092766916219403428041781411105790285690016836352439810811982305280577063190375830780408958807137308497246497154777308409814861926396987769901072857301724539011829974997828433212830825960260832264124406556270543932803533164392478769719029103321288842087102672266859854806123678414229279819280676045438856527518106331912171945637560760680845807806525511149579043678696677455332010032884944096316701025016234171742753847901405714362485736291700127584833717822296913811498978591553694444084960029698336333353622975846628399363190956989389888240849466911933935788742880635044705514012946445500387248601781202376916403256559273830066561080368522227654299160984894603254676628563792788096084392153663537676581436944929986119696713917313858077577539065791544857234320050806357978557238990016612471454020450426677964414258823847127561127954262275042824646611294782803568064800506082923926354365946430964247337164532213140838555583879428599935482925261313888362790557440621784003658487805985602201918793014943975707732507107122139425533509106889083576695841965802292956282853365029469011302709740921007710406370673699038275106023171560117717547395465089871621120292495968523320214158566511191157082245670262338293994011604299638224941422053737463402704399946365839960697150479367766625954905252600721938667913525730589857905548740051520601090909960704454808320402364271798376830708575015048270661754109728360714409771302491564995097661694105224919142113831627617843299025475308461251160385280498043390343496578519215477036948549740095056685539133325137866207778153395556964704251782142595348409194834326488886915311879221455093949054962491591289420967183925646670050486825507688481645181540466181750420885912280850810130083561963774444339338291952276019354814362581458099605835170770907982729312020499187444998355899172148742545687572919917467958486273478774998978237031759653663482749795638357896343097379638767980201145763018372505173983421432950454552481490173531191780558268689522339697868325566362165226608616781989418259976343076356460301038680256477842123855939820147194898722773277836031744357353958818500357779886458190834300622038589780497111957661015006810920363253943106941300868040197620895271587924737789150785442481383009605332533456795788618250511943637998173883006569637306795253087968320270655837057911166533105609465611926548276696436068578869712728142346963065289763291444702794815730869495483400890044193569142342511967577106507097896136235412768664018371014242102385405643609962420186012918201727245327437912737137331841262587735089955523605002593070585360546480808680093404421249926106886309285119581060901427253033659611283215247771620741087863799217911685422419213862330332070949620917136667681209792419386035317605914315287732010472118769136101589584105669593105634751558111727068501265556218687478163439239854500814702341663431030633511652875347442777624931986543753705612796269101400873111680449783288536704964577267813469320758425571186987162955896875637977487653364799648947407033354022542248977889870924958077890072391022583262356039309549678384582760947026559640443436235502734985896699223727613026973615330165380981742917112421121509969023620778314069210887919128076056667995871013549271095383193251050014561818726249856447249769897816991417192210097092169290982231074168626154255058676620626560860415040951762639065133778271388353343991558518664562323124361636482383335268925299139356796183354196136008567167352643749777677550906432341103879481859064447172564310209071254292683323386724827826814790508561775253210790615643975451412399568325451116418642574681322128116151521766976027148389434905377243967028805249968564203612626329847062288694379699744240752199050811266121911974002953385572294353784319312382493617213575952921177447884333294929501747520093260775371783308514067806098919382102933898235372132529879950750729653062231235182652003460808447141447488239523238583706872600737488381967107573956895357367493772162162850264381198531472199139166007758947694176705426183813446150568162291493904895179287803708818666354093075077711107676305400263619864478249787829426452623254255931861975432615172622195721841228576688581539357579682527316924873724755437556332261938381783242413449790800119838052714290132963096467125364005773291643361582341612157079550078994594216280204536094987187437258337856321866103259762318102393336357442734986333974068006108375447653258805635807567633622084338897039718737727908125676979265427494225489161906959273207706297210544309667616674512940619327537299444320855854886508169392470897055698505082106175839165880044085108191821153087756554097288671096308734002733365640545274057017494213601798765798664604354890835174164466206321283524566129109747451829168371174996887069284362213438236111562830474579129311331597877662092583929981622114641174829728567972738181796475318028511096812895752128215186469700054754739515392635808990548421174631207540082548981116151421886357629798831215121304788852790744629293171577823353113011223321117861582840585560516644315394698687025212326308923080051504386617779476419840536158006317574361853270253749951083467442234292472927696152268618153638121046126682391873605634884198198586993558363197448914305620505112494846707870703967280788274005376314906775059699268879789159872499082948154735109422675762329346886439597098630848221656831075594949483329826587917419105151363171062219300509104392131488209554462202032240199974750752820108566787930311964537766008175948158020944819017935068966206011491269485699576940370195106828914249629983887879983073439731936101793871978611840147424218226120867083387167535955120813081492864674700723071839144344683183691117145674390307685090090681003226772841147986925962581743970886017858976829319774301691536935407424319461333759318928129913621042364228404530615391182133482089319005069601406991827896495145443347539342915675518804032395047132448488766195332364335992476457562697975881705656954127052701388182047431478125225082375839360125407914863257913205948764209497180643271014326402179598137677380161526050173405264187286653381858541911698848326169528408599638120887830018277278056722698872756421779795451557347324903543875871202661219505292920803741070690773579659438007295246384088946677926027688973972523010249673801817508462167399939419665939994447082840715394724788622207773343087633874629368320439446713031434518659876851823526177732549649436705145469209352543850668512934128700890585036449643394073550723445926429527575893441842173265526505693898921068049486501208599924219613437331252402962954988383251204734655662040968354530751137422897895933112724036807588608978885434526622105363782748057672376066027228809284367699914299056370663199501131257896063007674649503835010881107541576479812934047486337084059587356384496086556000618820939597138247901646539848044168343114514604066752873570201940698554776577287564283014433658208970707000469504303930646957802307135970474991530234791241507233638530489618983030394004874862017411309318471541013080768035324475302859989674184872855148765234075620119741573364056018499514067644051560904315915845570822452413401885192790970947761830541267862715288501375024889372214015087811632329124524703784585685432708199925429784852075904627162447275653797979286876264672415788111967512235791346972784086776079713929275683717671810822305013608915267253659466211864811706605940559543393815383829771403684696097546640881863364969166182324137452653836824015445873968217675332369235119370666610010210025039752596403782255952463064384737935434707673843899941285787938332883185225440339439520379438565045096526670736386012904929102223536559515630628899618409167141453737599609805408777152495620333118096413685923589604417858528172575206926437239989027345702098540924993528068990421922134942304166469666505465576969077336805389762510755776895708826070560526530462698316659479736033928362188906180628442468688889352958367719098033510535950721106425455362780576452987841517313322405939331287606963939331800592462497545671455500993584216354434260308699151792783904281653282441275668513861743250069939938551363316097223422610273177745113647267235532179747126169979750218996030715146548644519651479143135707048437992442578084783667914403878449149204466926534876025227540672979410050151992494367793507258851389802442276299091029557299914674540771349967285354471580362992248524697191902787777736057782043880637580043852850756750316436812427510729431722809755584200793885450007832613609094359800838190460789046260478992995589025367037426002521328405909098104603271489448804698904387080786267776708178123502213169484940417162949533369486467060260235469650152501782971388969519395541527960661943683005099432085944445997373693679219828004725850879800298707333693927243464912760847834616634965218104330430187743333583140407046540022021574182678546131586290897074794674933466392094098725174989296225834359758240675816157988166771283805970533448817421972487079702130289170317497741836815112721470507632391224201968357215808585806767343471160252896427864781118859044124833056973094733861160578907776576626391462634159515151781072560644415183981250393366349819393225465807367230932780336901569827025192789225116335208240188783014276366533661001432419857273328132749733961795709301759674501182473737471555498994047556561286399979810880189933566417444844343790051239407919815649155710689970407706252199665439058126933049321812547656150485718479039553683498106530086107528954806086629876490595733361004579835014749118786117421561359578567412706581943191834097255901724350269533697500656135262692651089838755323373091302466888794506707772901956852049527445365920743119356769416214165274930716135853216093320521070678148291328121668418195470889872905640242466723493896853492718578852690630538661101317009694158182538560338600425319772282976168601777052269553539753144691167920575573550781778697242024403764239326279727963212985194708403176098822975674428234278722125815476406253800533636215989291376239038192701907683084333679669134775384821786362115314380022047324062803554905043173417476986837815453627804067598175633397579174814762802891645262575842377445865538978924096082384232840100223208197591053405346322168490970335042328578502372408386709876078973907219414592788818102216006531072641361733422321321719254290033400026022137707850985389995535913807963092602256543319831425911505812718310022724179708998077474736860923477346856970422399089994091963839315920431602005372189744385618246726147543352390269691545124635192686783194607720192694807848945451234609167070428804350780111800464062310216908222501403677830659292035807916077243061684349665374301260375441808982297933960819028018151845029381004234550664565599828156005560254870485984364176335070638907264876692615093077719526555539340791863897111770865747236454373043421019768461087641555520631216298825130137097486811664180744710281937487670809257650970425757518891997745528835483966341774534685358369520275768608051107337258383016753487380070954633615910878470175588606505588314439939201084163121768539874234146135487973520645867774554897224100753565234833712603235703511004619762533626196769236251603882500590158143987002318509969953069290784510248527129763373962043323431180510326891059244103464187034585183136280977135777788018849201227508351979873560310342232268603529022669134883116442502462962055469628356851028268966241955968269934770571138721979276208415935118329756482948179711054836566362649867419617635756695718771565113978148326910549279280577660924236010655191097039350797754472060301995396191077033958491100968790502731255609701081051588374583962259867488894577071822111375616615147713149535416841266643634607286002136680402478337553948188382685743410575379832609490927272046025539120268418700595030342144381739222658560613263889530059219420598075180232937274266438138554259243921657191785373103991472866551153714817803925715364312979894618475455946262194971216416281734873837116626349578557300475226822927785420579839045209758274220247586815897494836678223909278190700143604465918356208747495622938804431846290793971995594793382151663095481381807200370364948226568821103537955037691347606915311489463235168615304186912606648079407425401257673922734784410717079731818868550084561136573154987829160439354723009279175606193748864294352375697007403132084985072694363362624144998592595656074635527711757844274334579948551261373234011508338988822881860524782442108866719374747863589416577306622170238405743057384207581473588159406604121167931140739111164435749417472155115196367529458237314594057780378467247766615071751271674286304844297571697919015090474622146522758228080111751327175648949906731806733349817987044467122167251686702445503884820546251568533002410374852080103574659603329782025136736839556160988884092085390499494208607641407702423745495312404077018911214310362450021799323011352474024642794650678856745596670323727465923734227366604488514467035295459457311269072784165629323877175599600975436621940325460249822692593086554875604126806352735263100192225546083573966282554225397357178891264994730481008594564966850791810121569776452262715826952561685072610906717785617248117932534543110344858912307463471412858829850864132911037015922571128394147747702390500655802041382889098933335869977760057100430781118639429155433370050766690749119379277024837906437285122199523659161261661909384209382269847471750815292561707017026263304784291411325357069567073326904180406829889307310297442224862613666494618718812318803155690995788046607924465056320245215994113679557412657901139627909518902746289345121342787282127309308163778275754771500558800130150688854579031648073434779186631660838021430183601561241969309889828848726845625695295747351848784222322264869895400862422511794363823325099547421803235438677364979030802990549215575611288050813638524889480133118822841787951423034408555072828791581679216078398252906009538201422987671439738632943899268880891490708621743108788194327421607277259930990883549538502077167699858438971944341906433993613805975580500586160449316560491907205015264934478162649998692042744903210496488285398495876496881326788223988138065319385589397418538522451667107333769495280554572784442497738472294500352210644087206475553921072304404321340648625154625446848693456797211229696216630175881685331896067015446146603554832809603174121378240102557784044298462495889366335349105540290812737937819941180138001085586912734938011634443829859147610317450899917053773617385846458462421175302917371581601178145943726334670038154981550616729607045010211912765436591265264589724487719095318129675177641816487128625939086121125071824445216266957405328168873925424660524118302452547021309253196810410579929065083181058168191799533333797010778468801506798853125614860475436719487213893929327605234634723613302417525312015462212852552038776663709035033787580455380224961121745943431871962013310150900337036703113730774763781066234257723575335745011360288522399921760290064943798367540500027937223088921622519158318654864186646700564400442565038960490184988174434489206969600865881923810598902914587086171492994493121106521497892255783899069421723217468071668258342598584951694675931960686505566815622713176243198656793021736673284084837733623191575034888913054767120180557880499718785776192505348046760408224261959702755134520034932131544856672822556156054772789028826705818667214598142094699876501054076757891167476472451899471160751969602220297244385323202681482608168865961275854946404221686982746200724353194622537414871906602817021348497156074570091880721443160844632959114100561547889537753754218243361718142653766365324647663459676102910713252474540763825050922842293504080247167322707351900439704692718903910497440403923905697251743024306314528552069023231881364733886569404518924700285067231407384387389213972419890642652530741419285731968279584431496340660621765449754471849796222247966528756875847490394218647213282009749603595580400332024504650433030303534117084050182272905317139421600205931952255199545257631113866036692854901565979810699184431650378508216808765259610804583918090937808040029865013850725681903937125829909395821643718077245233629239894391508827093543576883598512862553006287708938685151738526142132630125953962086140559847721097866904529560646987065667346351396072549625115874269035263914669720123998133479771123138814155311345482666903583161120180140477989943601711260496623195478304298409588280878214605326460482820864874622929197741060968321871076583192698173247572281140830850393551100692946880221685959933739269019008326877980942114049186586576834781076440770125798374646718573849242597516011941538972034267907257851051964531225696106354128446152075932203064442434764562121435338024091186503161148385895622788338995146470601245772187202917171044675556314291947766505053417086495055513827778931183700571343507595584345384519734673545932973816642729471333103044587577726753171860614771773418329751783696193064750882013262695339289390083009766499887120473875649988146906839329429246596812823566160915471640326627092676156979239196897208983737906376201277776771065587481272890293737498887173540246214240665217259590847038820298763901928673869097816780220248613087622936858976536103406534570179741715726730719730980081656434487869924824556135356875719008119089623323077056227915920344677984629364341678407567843062527002971465404975619393377091957952618814450909772414475599769643502448802152080339156555637809619845289574422207253720218032044643098640071828956627186844959356118745730851323200336058673230906438708806606921850227495384437113799984316390117697792954891565060126711908230309183061610366208568495840557821487985963211613125661569330209023038523929752577054007962734003374093674338997463403049085342766659786045183242974974103870877857484755079048589612566822867521266498549016173456177116384268818931731384851523985726328717047588360120866959877465733407104075722751127438910759228921780523844639477439249243144899335504912410897949947368784977063145000181539216953618837721638792612270557795600181844098965385025384027973466297335090289149041842046181388437236270517222124316706267374473536962477228381360274361700957405900147035449363710795035621704781199480129658629803664453961990842833883212430099797792468022698083548912148354372390129862132690652678980946102134257790350122286053281159738551303837317594304731469090944980820546574218511094785462703395702735456868016553678983332031501978839990647003856466272783723123709568806975870357120459476102416485043135277120117940277775036656093848199588633549119419270548027969709979832411990322008664784581838148795536766461803626868437703038897409151868458994995440686305139015255301016360097984502711094752518381123989472227139546489452658276426608433618375123034829878623070150452403329170442307602948282557404143576010972368330128680790503209295856376360598731714335760808256574812828724120906600708574320369004762918038096133119931593077946502857469223787725396948351856722964119996265700547231156000726393719526449364570110450384201037202105687630752702740017720866991288751657451075955631114086022182639312342635825626265500156219571738371544835258471173077258164574378858593341053142581038824801672632395486519333635264231143891619216658876499741768178259648393179730438857418065053844451753049996567053545882850696230079836359000865593097637982283519459619413780226281795801967258463151347623606690966939404927927910904643155303728002264326979134598762793983456390394711038878648468510999868898975117863104176356647059255203780059625386129622856413482056112599920039472892623124639227708410576267230697445703204065165035981838837067925068410361892519487259607394120972068516950856618938312169728757561240179121208974785249310235646567012436229223733701876176988588946167559218321666492467356780955456208153470334070148370170205861693035721868351818900161947681179278200564614733087395879053956371534936104084044160090646569642051424642865348018570493768770369976201171918917074029995938635721933827995046279713482371838791398251845882632147498639180399681056164017293388975679263991610429047069559229561362941169857134555364663609529210693800832957775393149716129788088389701614071104913040401121121054478844702817583291489917471596597551418625107805959768465538990994956322329657708131421634052042617891638945214350184399136683526629813766292984514066322958588955315049476995361199996335662870943959679654623187984653158804262186274550748528069155405769650685661572996797130042232283086711900255154059164565733607360147439997791535650535577744027096147032496038427138310286281627292438067654370116850250646262842049675893252622770845406207742591076595307190717218613653730918777712042280841348207173013616485897130645109605337900565142141225090154265506553100791944068227345518008101269936352503401757219700156949764569053031693381009319443583172116251700366405217542023387706823150328303376566200520045966198193054559300486984571273205119925401933430556670434504926117364620760949973185077897307213341635831339869297949684358070322138347237486768797364884383866021523228775572773426612731554447647311220332802345655702404600878972458861842407716541116968253800653486162539318929489741286880592090402018735644351623504659406342111218587322912573388448722815791127254105482621626886004399756139189992958854015889413219149740169590761881318590185559677868626750845944341118223576114760736778553313711771269225736396016840901027305623496708771800472183042477988298868871240444983253368965368933482481263459614150374756332019706639317117670969055232591913824179196883828438640687750108703501680062042007210332457764359697531443979819377157160051278300345888063252836010691339524486385678620583900127643372042627509160653089449430167707109902970297733713868336793278977305673863093509214425035936077180597646588372219897784083609446569617584040130566783436083576509132148325923105714395189453533171699897695714739935716994964504011857289020281655125317504327813271815515568997523135939120506120809396887195439060271678078637239447153105681602054320293604613229129030873915522029687693620890250181488985809243076429567863311268240032598712819664915725277700641459015290354989461708193239529041998910034018095484592265759427951835556165045577249577792615494418745066442741787420581025344281660486358132560903587755378571709953368402096260601501948429508958055667058512575948486771948019754893562868369986162179255448135605698397295821062140296734550238343062749850066027408745976890186260724454318919602965843440596454600197246371546772356093646980306362360349580551963878038913958754025667146645186593837222555590387920104508006179226641317251342258388804676348941582980577474832478884577623508497904430031549354165446224980889773737122536410048861037579041139416483442877135163248894744154837176054733382189220794849361887642390679789189480079893004080284032625760061507857812916540651958867951689496207711693941666014824825892064255421536943247809661382251294251842841281395530706783855529366633062707460460176964493747585408024712557719830081513147693406032187942636112513743817982758210565579457373137062297200537560324019696841319883665205296580908570180364358841661755202994667207684770620661700468169828481652064530237313022772581322660277762804356465125813913199418464709936514537545588706939310468188033346739614600952148744541326196501628300756062595346544426717162513810324559209229579573972646682044140009164658650495093756231689683381579532741850816275948100890476837549753806498557985132206041860175172691663465222896709791147894236082116813133143630165421618233018178579315398757993605054583715908054311544655469841491499711231087128509080022236574098557505343361820525644197070289271801131529372663760936071459209172853734732468562629206828431089141705175230285143239325541612584654268915843582258325006331849370169209042299023821562732865826451009182820220026522922127856876309918155202645302888605980505611837491532568386394305755627812023504017176699455330486049203067065723997964006409628331516159993590473088472251342106153012122687634500403362023740093663823710806026427602290078214809740773366153898568589993682250106401679775038589631714739236441311092588746745004804265050307501911877433011887440968561502636113628265726700850232830133581023609293809293541732928163904674915711750466559177386035376369720645166727294403545438964143300258682651698277032518541595892738756300364855483865856362247611296076689366848951635711408185919278136109417679445229952683592686523473706039172708147476248472663859433141443950915445193518203949004208512849929588241357444009907571572081385556591480193435555699951529681995023246870759971774056837859546341178152909682199177929594825883038252929825223720994761400868365723312685170721327932564114532827156574335444736426033356091675447320315332909147891643560916651734059729320050974096685602759058477696691160416793987999427091772124397358258309051636445377624034108174906697721715928291047654581737313967575943637418151669363433228777369022884523390831921705513405864077557214639787816494571444879546217336512288158333404181780660482111022124482843087896057794735307724332085646258752173666466497860927713800769066149972470882543267243603682960849951387450092813108940138649130478059455866290915710138502121656085171441668063444148168956937433946694455570537060184228706099350293109252340697715017546884603557542325010952063779412946264418167110262646744051776608513442014907922854340323485697973446163857268779895205147134854719977986861947807506750590426670873062204964859506637885978215220973347369735526692913541021104338648373428792426757490722521136265752268832815056022910880357568144638177138101034506387119390990236791119241108420506384455032202978342197098779707805460487970269514425600386445001761275984964402258414344548670078629595296369842152217453432900328217296833124821833521359974923220026940520551554394201517388345248964320610439960974342769999244813235069200767635990755430027888901512541872573368759945155606995276406263974071115007942913232370968762995386856721338480527074413439216634869954298070031555212386712205407068531074520764502071152658555327176099412040684558913394675748955428262398105087947914859448267322892348013414979666093328743622458334930812318154705198632115988148572935101392292916947357452544198819748347952702901859705445285781254681106921988156196075501388917822872287399700197846540850193415208971566648539821861066324624881261651359185129769809806164268143180122266641846766997508483262392924284191008959042853756165878221681911090410431255913378293969881790111817149713539831135327689767022315823301553715836675221207139536586663562150820339644842395445138859946846466382747584580872205433344616116617179043245222806133252781828218805740624831857963735011337356318025150212523510526761703422396816109774014918980016733336020140273017002572659848042876223854005766092588580396993204445880207270785548042914218480965613976831298462855849502128652166514089033815208507724307794193377598019125497459593377754466208256862284227616685253057416975326161887477890114059120133740545003750293822163957869213479211085627508428449481129402187029100084621815508461965823881841602279170021796202475928877265810842381054957371065974102489576205842001686140046201597556757640369116587450449200910898244411418481490468626093290342857788353930405032783808763783034928978911401550533754532035212220216294811255736214652602997821191086935407980861327852837410187762248968787715419994876542003720671398646444639143575560383920709425915077650545093411792704912253546793753873462492437537746588696168068820932912870813996367560934660432843774715954858371922246181098596667209179792190115761717087555250621489340578660048514116380803767511435180881224985803419882134275800245357673441218636471445244601783303249777761853592755242243111341970636109210172284789053284028197842769800928349608203852764104158131756117529720381539723443495500517997240267002149782451791547402199762594063251790525586757052586394604750138352216867419129183457618575650109487591104952939209798195466239705414347058098824103997088393814219778360242279161561664854878516270662643413727483061223247519611073181269303885929436877139159900044365812864744009015342793171257476624746352983566049517836606309397184139528804684242926197668561450566717104803652753365890309901325463394835991336454521149036103856386753949512845749169906764611151325490086358909864916854174638322972602991607236874201051454915048458141284046103479085822631712482339320224021108581046525422464443519667767325229237714271956605863942231212839724531368825660679377798839664188873616554920714059768947478785574952620249250126697521500372617480247930974953882809810132652115135876179353465429190266767651697556660578701771246741552365606811245311857953983655914574805429784593903516239124496439973354643571248233112359166420339165404444221594022529075568133941712834946791310659217938586795766797519467909010723718846669896451912611729638329234623683283186677778386594847708797731293261272970266147844714857752682064940023061013787639251065447275994040599421304190802045200030438970456767536680733444957642485999092111290981713892104446902022491038374146944192135657992453536402876629771711750129180798129394206029830486705565561504721790139880922537983596128605889070977762331081273299983919779340318124781903081392080976033085740243026066114342520429606938023375217414311844626727331495802646700842984651582738941636830736125381100903474587338802546855182925648601300136455700534690627747779488133598995730748531550918640219490728068078449080227081696928565370820762352858630903213809824795655516873818440639297331456199157518127860243528034571039187891795563313762206693242684103792005952714740301013045008603157410702709308693688407914023326197497473394536765909982937920060946058234399124769935542088595792213301694142669412260935590147913654234137489278173832797771931054344387395005705717411868285962034650703292717343766190900391541934993109201288320981662309548374569563139669248378702510998936206601508144159978828425026378813033489016261842277540224930371178611824094609117073041167363993275510309611335293858317764637499428813196197363843814072202276202950849375050962966916101734524265403979361662443613351670481936836925573366349123343036922968617192341021040337785018639928833148899069898052520405051521078203943021854138202252476773437230513215789218992695694825866231272818937137683596800959859804223977034522238832703056031360985051144677885882523962929169383655629482645988526081253848906665374755323620422850845952813073836934661735911855328117853154460925922687000754342995684789964469747047823109442398069625893307736058940982235616316237004154308307925157851635778685232583483493048372929913694807447910212927563336844942191224661224202195758998598725922542668866256329870737678598015338414603790358377085682735641753995727227925403882351549561688673952962886031221430647590546389021489336023656219691083172381978719016171717619929684155252623365544309178855089526470760492734830323718522611370797158731202153147663097340246092725984492541510340979272402753531735094747073765898624312589940524240883347947673920832409822733169394200967290435679765354607429164476512653371555568581093306304282216209613328311540072462851711315766890909647954936605005655060395968736461619850519810896799714104290609367136088987887213387880931315305208342863990087726781069041395345782944352082832703972996123860157622889771531606739223141256472107825817438932436687296335840861982285037587619515660665566611518412921321818041854405688687670478701942893727272886798200648444283528453895411035720184709098443946252572634926270208203562174859062624854932444558850623935226858557091542158279914810430405561523652121391113084875130886102259300804292743472119583459392485720353778303429996998739456035139848549942191255798222994291347578348907030795748830640216365651138572876251245851577745240131488546758918420182549776750597355391301645572495655064016153767607272851410770768537949747822423251224385976595927652450314856034251339987143208933986870540183610855879693919054718161143912389904966244959178356245776034338967405606098604926783773658984719196328792201227783605805885200042211244771731449264635829084064622646602159765835757003005386975633604815874819630511850322652876708664137372388818706517289909277017143701066378886941206243159357154533232838154149541256387966957732093750321562829336694403315415111846502064207239404472372197786611659489174702436453347080837874345875162210467612519444926765949604033273452724375432827950327182269085595850988762041200606224403302073955459393789928565196233047936839742800983099066423542668828145571173304524837276727892120538691299644051234883328428852297354777845807840764051093900082456873710353222621426819682045465458104756347801377674600926731368897209789525140300890773521210316728516667138043833712290674342275269191164035904064541932291894101284325317985236123102737763502305116365910246181036686411199485229964843796856969135856495180594959143193360132941839067088115372029882587297314674529657770863144412427731808050804645022604306717589649680899473250761871176566367199684169440597336595631041640535712006080705789470136847725189200730807755794998744490710485790464016633409583499602446562005215830883375134789951784695388840459652651631310261759655697420452839645920431024599201872633677117226238998297861138451523813379506132716924256021967059147711216627471729110646185298575482235402996505959450326634042045980457621325683609782370799730029557679842132725441314402727631360942882304044513555943695402703227071290949936217447377963636679483061297732542770015255464578113781963435522774489924427438561988980898772010419309133126654039645539099169668626899895039831966322648419489697767539079170076186428294218574851373710951602550264140190111352849012238906348779001233198052923759449251217927406628033904584855230283679339579825947621031927148642131591918788698094266933075264710275326558740037015927056394262574723043515693208940667922670512992008152918300525069159972197754328373506299865148682756834565721028640786894216799068933752961043298853426259866628577932942655176307794208729274060775117732206714089921913060555333515872396114657964064746817125444068887903816630490538392498570773835487895772088445365156508975694242075453795520157140409737393321443426353924529871431013494874867453910903295202762146998019824454424468590432979344645941858562759994718835507690401250827034549479352968743614218156735934261813305657356149675764149718546527188248014112679499517094333580896539714349502054463994225710447311994654475874281480024432917221590057418033493002710903454975383567749964115592433865782618722357354580584501110984852475724088806485603689383524959457818458744545144467021480966935265856092643616821160683862605417480772253221186628463043821737509848281220710759513455576560284017857451161870874334732035586705186672189904555059151045195524965625967259757085033785392607576261335584387280898232366444852982796982832345943503356521180826851311467629101447358023747815927875582672972771000560260343788080168014803730765028748205075211605557389434402893392381800659312222555002060243448909606240392262464652890497675341398834626275596845546334547390756533500216049937297656074236697797328799363034861981234250609832278901685010593426891020485731161871943496944002645420464206110305841808612232256654149847210135567437916248778076606331799963205932964158330555326190733544872131256904422818665376536491731135272094721367401615383058808050918723277579580588568157860438807132894908680457141911178304093873810510472403864604346508549439367249447195215535185354642619804036686989020726596650504838753646694213020935767481552662633850742518494185086851895739357397042934135459827032390087762174249675403102365417502046026858904213205791562511792116725506062927323126483301271523013871233351144360605547362852460434102242897079666782099111147644707934165277542034283643835476305597234600680806353450951830025839543721965367675895530656447437498754172602790205602694153327129975577628680887304545409286633994189365395851120919324398684393332617281617317229236527936220377958668302573094974596455390175401046041572796807553440997239066863854819371690577829907772687444283792898166646897071725475769056080201423509847282269329580201185925674373238269823337570891442102841607726022420109044321061439983447937420053032229327410573100946396357384059193451951045608381660811993903732727640580102237677682676510719918705443361052116379132634259942444641185857761561033541840688571262182862489116635980997099899161713377328373025597227686393004935103709598833098113846234442225252083346491942307556134048026574412925054111193174229217743107274831311195824790891206984481694316844756917311353353258390056729188385493097939708616966474945574984797367361281590329811188504703184056040618338018032765551041293102651522764774077803716158356746248727665710195179900253468654738741584182149786723523766442625235003892274260329124923604004614959954068982700040228022477824256170311996897373109020927675340507811785553751454064403037708486194795850732271134381549645390894797580718492993992917901789782062564192558838636574711837219837793093235719299007605516491060805597211300617546552678880996586152785645150538660436666862105657320819690220677320591392166098127120001070320227627180243940274260581957303125744630486707129013073215844030954446274232805606956983280151737078772090884541486041298552898873441083517064404299651335586204412430151764519602067408999890848775334372442771285568184257949373045919141972728152297544326619657105807042013567356891886535450466314409922345418707154812913941821953241722846079525472080185121584026861554119114909015926325033049275948752181016577187605914925181729382819583769248265118431380820295883213876827820916744570750630819728284342904367677909730583544175370957880217471567574141413493801498413377557149955102951185432025581098630991117288292908760794690309886467575584233498342077133970864256734765842140725363734970476784837831996437571057214588469181167124738720457073415562418695069239074493548896617158664352866652335494422256915350029793112631646884562863467952867559995149989923674569351134403579949400647654740103732952498622115410293763045225224300323740858294743073656274301646542798292138304153613074680210940768467845049523918662958298145822180720130530230219072291287659361021145570867420832233824123593123072112147975499499823438354832410441941999595176074860773915568033586201645179305001854143761525725033930348177972500079124057345256714430074336604004510163097610382193878935370709772458358776980500394403114807256752491139612142103529683048736147935904863746930165758195481754042859551146444799715483719650285937369599667752435203137543541033273358943040571750225397185289766680900349593498858880010503850785614554563842592597435877413190276975422830245026136315736315569501373736947582470067547081078485515819356171018936183648608773294469341942439921583745048125616243812633373011261237166559544349741436916965162801678081786523391533849271576451376253239668518261675804664861127845657242378062730434257988552559412755042047110908010565916466054593932967627447234999075279928566229928876691260339191983755911667587772288429091727102815155871833178949588979737568549748413219297590152867572152810338677416374444313800276548057277726282649711302693829082150060790770486844171498290482640993844234428174640263405750306042666816914175549904507615852924323552883563094229489082021095490916642034210795707320270324185290950544556193812547547625675847993512903918103029678862910139850364577900622504682163448563411005444274534600902126453623812946234104893749499819957792812496960665727520460786860299590688660688926354530393708049196187343004487805927654814503636494238864091429974786765704331415782024184789124174549263427310161370013778502441297665667674617028902826329093729044794587506415198790987602714348015871447023629874378485831182319108172338224555823957038599795353145911600502133241158522627181473206823257498996958857566129916786237856164539936220885012161294112719665333597797428185357051249533010738931906320977983779002989803975769827986930218752898367675327826550332349495098018120132330381097399388549010122546808892121730281907058096166826163964028744334884136641211589021115874050624330315191118886779090333646273469595441120443890452539342911403471003236008682343028834403935918674447918769992495875432992646474398492577583365688519456534516944439528460904195733972785161624773940145961777926177648915467836017277280308619136846134031718099167593564922392297866815393957542062468539236094840104099846109805393132946141316446713066902197650120028974178798737835985834873235789765595079168474074059956645295223162889453802556344664607857587586679595484978207492153874869030755324715121459426770232860761731772228569184979515878067785772886017396130005434064965788888427229546716216891660606131031059810470518896863960419173268749105664537690355405047665696869871304897017276410448477636807230454473964847182554403493226372987824518027103083292092370019806284465914521459383309324901981843666599515196556689109472282786388544416103743075168864499944878560536641773301505435536922823115553926902845986764173668640988898123597339299802205248572938352077587908288732582557627152234520001032927796228154329165960035971046311813042386047162409663781917169342356381032433659457522954764962134511979390459412905004473479560587649827321320983284505557926370911327483110889144682595231599983710980036974648489841904128057360470882347641928525924469427642906620201348277830174993901567180098887655811838438725370698150774350330300266143424520089446565473316180783429712099002490240036214156051380385538887591515676195697569030375421441608233394458096989588650157590037359964543222445031428645400926021186942521602032329873532798989874037645453743676796444085721623189775799547830514757497573552694542401302541523336587673121430289316892683238330588541119706443927356092095733409796599317328131998138486573467528528308194341924570454565426592774366263977177958637880813821874933347325069019156202628666406293412440557091558447921126223914263248813155626502548320582176020766060964438247375977280968166086880143898068675439923533869626465735829368987955607994774724913891906245923837583520360663664766664061122223343716181839329715008258770066002112462223198168160398081575875846072519639571017150216978579615998128734103495534726884123755033692489286302174472951776303416399136955147990513185719373476939515396210000871903164507300228389424624673984343018760977402877206919670846983615068166587344315851570460900177588790386074279032803657026086380492182078310855307182879373482526516178303958856633750111406137310507021336940277048941481818132449674869718213589016884944115920689985568679269062163833698564119760259413529243756117929356941817679572164217363499675447715263820352718577811402235626307965524557763461526425036101280286651980566584785120389301026996689368465576665632608716336902159153294386694720269580707837237643509893458687045302443655287660250509598133886051242772320625411337819098363230390679089810368659998975453108350109445621019382582137453551125882286182539714934932677852422001954453195807719485288575057055127570012339752736035035155899705004496423146864681704566207561931062311464392052392286712274686415887268405464796781239231363836417551911462841810935941578493695128518149307258049325080395455891301984486274406158577434737343739491132925972522150813389319615161306110670712624079881709675303503149631010136592965287737387558216463058853998198061549076254889662371032311462468437598789229071823140059620187947541833827663808015541707357826518041012913389549536343801151520548262916031802130028649698669797305928843843690813698305452713298617352164167475887293334412393400675729937329704307368232312547934352028583776853992727950407461887950683672902475686481389975829686562706282641777285009993949495378773454340399119086577711868416307612875523742219114079938813154020787019390518847617386888153928955854094142898195051619408710934396881636389642177289846796948746035269615140778294749792356170262545256217459923541810883991206206008310563324432956120382485352174909595608614007725593460214902262044183259628276690949436405198571246283642023382690506925851616429734107402643147964605283702814579949357145434568525292032089757370899803545860619748538792645657871707385279457785668003660444247027683529062349214602202334161250416592604009390565551267159947530617740238656186098950236371660346573317363436585740322114361200834417543970636811906385797930406566399167425613569056229243974934156894490721680676631954381466326401674245494155786337624055852550716502312070294154986239230431587556582033597324159093482535208286954121782913371702983274361611084703598994494739734571955894523820351881354948630110787123105848346640183346421453048546792941484366578430657727629648757520280803795690168525107979847228889504248340717011568728722154882439549180872988396465856916682061775207026863867817421145556645790520332846198303253219807243974469262968796967886117652158759831145202914294896694726913382157136368784042633657132855254866986597609945339656650321492392853495970677155542529910638038861185364192082630835369232992442402715638636873576220181875870438708079438383717663587239421030617087683668561265291216464944839006809522154360755220187347167010574682844455310821917044239812489937564645996802495760719920535142137712911088292328984200969387973051608339418271479109122566883993358552921751174396496173355183337334938865506151711737599775318553865615349623731826831844598616689569627673719184850867387738301376850009956409985599035651158385989936350224248778558719041071227320981190137953182236110494480797762821883623952233560230505866976362140568505886740255857080885869006963010422780652364515135612030369845040300861984263082340127076599975025979852609701493335644159274877556219257751395432392692230914086599357898762267788965646607214292499005911715692204423792874699026170464606045178580369916475165582481393163999631339675573666927875826610217562762777292544503861651403863295073320641327601747781328623486514459623063632130588233475359443551999747849986953124867745437503400853568253999380648876477219282426932766498844460044849073118789516128505384045447821412424370596218560050457537668964499268459610866318387103924705865613769607526158103380710033317780161348857897276678765197287550564851037082994490535742450189920613303289277973773158095422388230628682920969946401462951621230860821302836136054153205117834731424157723086964813866277917261276873865493559465295346329340513020269193406474460769281555900793532048338960494309625783611980706723617588483046260374164675117743021333518065287544664599483119228466490715170232375169436123977169038811750756291640866856389452622070248080402185032893843651833874677548197106003571362043498639944827138177002706509152819309446240512233676836333186787397640835139254291586761874094008702387433838274123056416824205835843133654285133750659768375250946567350005289372200566337769637687110896082700356054077128331767298186009725338036594071151667084296152133847262159061247559767948197246827421179784916090352656935711876290320778737319619482829064668745046333151615460810919125497173517822708735290072729317182457299544071491530610101175589333856761633202631784391165136003120595298782818697824423307384288635364196385188636463314872606548251595728124024414413008013111962505233664691207567033568053225363057351574215707639745752666437202035322832957225857384849185828770329190390642256011145292627899287404172654141901260423490768427236745677547739965128242720138077280005814377835313027944562392228775787112364846374539831272589622608450414166188064300446307711858414840631481581683507410744107293375190977002831177791266992914760904448891601236747277243891409560276945445106125333141588547989211051101033969009382026106415301578557390180024048069326282013265285673050790715286529654072351655290519344159040206751132147681829339357985605320802697122897073699988824165888206454145722239832954729496492027746106551349183243556375951744833729123236920448732617061475210362252247354566087544268467889423731439897620356977175771743622927150079660917619425819486904912832863567722137666390556867948436140834954014988553488893961653392547415566395379282028679528863568831302879956971494792069572565517314432804340572058389245322423052594604316500219321203876828364594728435075420849195865767863134040422090737640794234902759817828486894987057990871427548834876758887837369541377653023385123703506352560975123345325166966619910548388998091327596217255871107910182035665084681301919960889052144584603666210815561561285334993650696297355129679072102486411351789946157025349299433272839694924399037641902309997044276054816263454162178095310439164029764843634996530382616283352305407621796286006753592233807932574014382409305477461976963711169811647528510050776297246229567292814556148227695038651141424748437292319501921015887299154348359363180038569207176899602123900132806193493647441413797147669688481424089315134844329027658846278553319559739010360252893352058422494584089669982365139051275478903903955385943940882520129567859470567166723917291900704437779558888115218732200303057444066550777570602164311072084612157367075089852542051812664883282088139490655289666955599352125218197727117586682296800280528944258017941097083787617703852046406734890366722525741612337513354575820385912041568493943947171340790072467249195597631192259322582527544481776383898583677978524212843229672045957906776114349195899023282354374015713511275691543717504193145945046428621768566831143313010123318968416210697398176461437412420703670931845454115604130211090515973379294323866585820394017807796233345800937478832353335461025840277164522875055346890457859923323843940264766231536283990654005505183981188358227191423243286154677740997912704208743159179308960323628545151976106150395690137782402774112510929742517864232132737165384302151260714882652096979037228138227229241439373956009710795439381107538931836119503857403803444689920896549043852588154474914209367699405556534931790246572231404844520120721956375411430054430736072567718175048969509550057698784028020579971360520165352469174399434708434708233821591274374632810022690840630124541491903828664468842081638496471015473344306074842841282645602810653527268513227709065194444578097996910802857215570041682397526228750184842386838241356616560043348664583653032052999876145139131986398263510284925014213829453730386154785168570929104652856908110887339424282117197878738221632028063990665475586305845895522538631026178891635841278633683789326217467457547997882611324768621933940986601668921360903670059131971454687957768165464558634507007868670398136027511852375774435126247033351138593921023380022911816629634793695090611596172697103644328411964060097145664389991216075465682698879794654840289330685623050748145670185115798014173346215965233957678433454430700683432188401963206557037710648534973378442842662827030730227890825331663985601274003919850140398675030726841114627476526049556269058245665224717478991960532728091270675653946565134945480726333783166781460260430907696002508405063803876060269033317103273593672308368527567430928314667698777363330410234262596212192126770451094213161487365049584729395881984985012148362890498383300245038332679473381747242348819855027158760790621182285152751012477338042639456421205687997627155270585662123913469910237188673044485253793558710056109414215430189214254457258011124669213813488628786572570633474129334246142753453174498939080975200428184644152703220910217478968654012780271937118166968852941340440285008990863574844491198376902034820358238067810794883862516459984511549984473218060755726751353177290537445605864269011113390450850912921990457751586912013143797531715367969767838455477646193479158258871242606953113981931366688261468937560776288371284058293446210283284037903179192044783694589526282273772148392598801269117601767175753790065507814220321257102811140744900857964333215866970697703495150291456953176963497209361228392010625102343243666736343935958940207828131325515340195638704850240917582913526469765804245346309896915346305772951786366136577208443190549218751972083062683971279307152034786455873475335661148684619010985453497316651479015206287364520350271743372815875597407135523040074333060586870138544501883549724621224326643713580307701359582831061317385834014905976655482659236172281810373983143990366229550765005506640063047561856598695450335113175111922419403010968551569911934633863133441441851774049569416373644452898831862010007548769851353674152155512984521628634819833422913426905747051139679580460173504408690874827956393599987601284797138225006534451942470749060815308010437194817744441251019151313249541040854727823786715497590484432751447694028542789898975328959120067466263630538860919820150432982673037348019852297704629199461114176397640967768182437622989849155712470531833039647248495336568858335702727714521274765313680100346965959682125097186204580953179749467338001546924348695797595530766261449891680668571455866174174594459429948306176944234462010036344181042284042061353257858728597082361294829438545439003445307553229727636128990749759813393284941746123322924273486003698502567852905062427645332923094301629377382068259328923415259084091260248422090797237970102671182662762504708727420949258900025356403962639927818899669269436855643948544735417784868081210266279526100674432673048790267936122986704524674300355835170560991820205259599231824259594648310077802350438278242653052727719471158546579627392968225173843262365546892772234305901093760831130192835899436991931123793241502075066477290823953663979743035278788138049009418169670962555846059952201199395057755918133452861141407702396364263759459357301146574769623477532454454024893295113829767701552812595588200322456564086333355196798184538071433123894757842065334059368176519706766468051215254980940121539389298890780305060567984259866638280177283154266412707755305251500604698126658764482678391668355778359577420558853969859005583794272781863372839981482569306721094834232876206650745318013449992139571251025458232014018070025183723352574498878024312966852054441455065170204778945392728397589182386798905935220586315323688962592633513396409642700077565445895972696666084139107212919510130300802940429237992088460194532837821991450270772660628802497655361526448212667218569117332670592520612165733273989117812717059430625103367837181740657137333106787474922077955658563686641241023147266841202441660055808652508805873838216282337567416126441594826072711154234182581146759962044645506891129333709345685185370716995114507562008247844981653160648355312059840563903785257134979057189915641949372515592790489382742312449249336278575252348029688609218473266886686908720824688201479511687999723320481431710276733086593301744725832714632239679706070946237828963494523497941136355116627721660327664097095372914831751524038180621941697500484082752819826293332364691553995582772949631048748298404708065051557592872289835782266108505850017053449260665062038079057591337919556312410016194885133500072263607890219196824235484840640157923243333379295966103835239830031755609096299187321183160921872754282821917951740629192380836645654649110292679586692743798831457926448255108634518142760542088543629239147190317529206817531732579621169713053413616913233556475663268202564619960728915635934593412100817673212707555596715508859355781342919287502001147069264617182235286109289754948249775689471228223163766924707374405059803380861509831282194398162260244729766886480447405268629547694363147348989529495033641040585762205089621599114523989770056447424398402132606094491833269720313494003771568874791018206812751697413643772026644795145776872683575570030853377699395365189499657779479735950328085454727922277434568293252969609633261112580697572144647966770084561935602468058753066678840608901483596356706638477335699972027862186970012387001859081968029551666772115057656032853057847886537849092674155548017640441999164246658485870077212606660681120679054223207398159052842194418155726876405292870166106512585908021630303085912545661602312199314608579879639984784149963290638938815194322594717422237887857084965723051439734986136505649628754899310650660688761922555238719461316696545619704083652187430714673602309172196547093936667342906131003148152760619903290075536349676729347374244017370856026210533201139669548999781319687740571076597705290137642107151561530891916633878310989601959925774086252794448774855042931204138580745144580820214925313950097122006451392171773602592381823656603983435918366057307922264361678822060581912350059853606888481419056562366124240684720470955447532078754726541826815573914852563810260685933564304011789795208703095467179445640359285019219653346393249568313925497414953339095826687471780154613843467864261969346716143529343629878884728167918653622085999974611855622255058047486087088832813131658120779460588144111587798727276419615881405250794297334107133248768865835136862487854734669474009552026239083360711886831908638393618280320367708447948829390902575898431952948802063845072378258515327788646421584795814106728336659680121053381395412589726242264812750465309055037969569037249529903179778166649413575832045226691632009264384354195100719405403088638707552889412766644344707493960068123028828487237041935250358332837498991423485527434941482686329542815347291723188613579108427154749359161094815563849736146261006174265826185874108967081952520648776796714414662368147786947125188084229839427868889858303096717136077089781455253608027210872571563567806212558723852102718349638289409035640752842281492118443867403890245720615124059393110812396588744655176640659897873384141393851233229849130774188701777114376498724939460421519268565610310188878204360479369529341113546593550179911295225641137480515910914688360636609753595328650399353605182696093278289192674893954408953790090471272551961530046474563174355517433328573367520007225139001248629335622905849907368626181584569498369357985589045217930917589348268760962624112392864112845409468111836063299363376589246455017103672266666331681618993795033571519333357605781341908876334176338905966368100433396510602412350656699749900423343056551410671627686879442766464163457460040432740007427124336424957706383068025420720724841993514069760709418031747351556286235658815718567196677973564261808564615520980801952189351923257604034525039339285107694440174121527385141526297909004015541979779423731506627298822784474506763841587358983676518996208795254262999299405887753092498178356930102881528012469820524809496906891397114776132764882672480451114098903551836403246888739015576989431204876601643806554168833385058555814066817617751425022882728971423575959348543409381019379917365492045417183014238573760072062196828213937207494076806107592557817657301816295205396564637346944807097595730860113278690237279356711400062658331522080894101791815570602554740854902155891217401759631449361106633006629074080604508265143201436768169609831561974915049149996012901683603085698249190841512844659477527713736858950931082355681066560057139615465410777679449722519294009524581709157770799733960262775730297151406447517764982251284496835183356680195474105401698460172822238482914694810332341674759729663089521313949669615092189407349504914033429497398891101506572940560021829058080204679384892535037181106499972276407615894445296265908184811469787841732047834178857092863805163549247673292789476023255553058582937409278236842935610313532379401249151778991851628695873044989475457312790329059021736113574584250694441827211091582338254839075089910201979519508105685532244064319000501854783957807183085536332914015409608427045628332410335837927849803195595409951784399072020587329223689164601651677666726283301894476979470176947001976761296765657727517784592037647370161221760657714623955149919036145572691024931120393755725479618110769353226125974952726260165078335178281413377021206600054104758047415964457261845434023873414709966868305247272977586820750970312117241548091859448010271056554145132546594738257351012688086571615747496829925621714149395999815648968201158770420324887547886616297555146564800836679527048422665787862058648740955493142433360175821277420080572659869779967729153097681673325990419233335821364433124305776230422582757992767601513418964015302904655765890748613930174600212006475207551388351890990910647777649475022549779090539149276022759878589757989136335698521282629020816996552967603216297686321908944499356791512600231964566304505868574638230533649608264683974112033213519992409807930979455213812719156029288039948638645958101606636763068517688997016059338616965316964707946274073467086179176379602069392828167416121747689127634401806635256437053803445884461103658440206504352945496652435552026570207446427242539909336660545947539632792767299218966390387825405296302699205219549061859769546659171637832062321275010686588047696611940444456469073758795163204929819420307922012954768903991429077332570997167214460717152755985199051131052297943754610521883669971921932282821000862106213216815333774907984949803151268594623264606198502461964658619012858215506041389872782764160394277453260997525930814088482532119164975429165044428969468025742409406574407363789354652146648947920464547076962658239940997638339212846928230063961409968145773903015439317861088529222246147572077649875391896424831108714914065150164650744655806733417216027746056686572973789585436999154265026932663728180161893664633759907341471029448934654228789273445244799884162267273608438318816680869961313303663424935569437643303218402335113437800180316140285167202957214969142053735995079349220890742467467495368807079587204063964577242151531690632023611930343462919185579660443302871554008817560951058555752488223934904742830366344308565509042737235611855235317639848339326293873782987296000073251578596925364432064334794814128986363059158468106196417457134685691951457986561995810526402187471120869125280228899936592779949285322236748074561341078498911881484449618460694977485002985403498330122203682459253353932263352113369078514066786482250080885739288249068962452514564277257080162686021036052597863991471874985032917375036383395231065833382118487150098571617388234583959340092903025919233271508358980531039305561672899629436489802964746919779993978527136721141357380676833920321967997338339274591726640996575424093528181393592944059974913321261946504828246067246613181250409384936562510200393462680526638231589766558746479936852381248241671736497123191354902055924520088560947005424535494495833937064282178859991152898941735767362520702976392733754079504476720691989098339312008194582835476236861439045791948790063052271373116171743098556007609233870201118148671611613338043163033523843670827811694821329774489525400479461893541051589279310019511848287886879751953468496044267734009152674794615881797999688383992364839557152551320193699507454647986601163342897596960287401530022322998315053953558357135814948207621201767075108629549903660840824387625144624636548518631445117055275991591762491209884015129460900040024706653810357603294368530989404597662718684923963232641903958986187885569939198900561527552566681486776533518310838327768744400456552620374976843189177323123843515586314186632509469874448052772895635346296194859178854600144967962999228302100313403366309240663781146877454229813377030724028274330837966654373034436143582071059224393248386360878560600882643073659097390678656718385818908642413288270721788174904229453802394131088272621570900136709393796965392846080389285691423198093577224411098882971392330490026495469754497847802275331767170743050270993171395628265074772216644066228704934454775198744048620213693519276147268635320446009132719165362680790671554167683928737144726763157924030726221285397828622541480143945233497816214572995205475631428705401293614480589251313557735130483586457514105718758608854009151800634216558015451707418295827905355582378420249905904640750392948030118109285412489919793205611625458644117092815223378223139915953785508753020588034996155018812590959976968423479235312653751809366139983878159994732887478988783558730501624063370565404678670982811248642756766624385790509031547040839857823376326162474291011679038512193753887980198416306934529519627964034170255462024359017384393760871053218548628664671107430814579239296858694451173991855206415174533311466520382273040259288711535884063490346156883666270721409294510911061239170363976438480299381656601873682537954828114046358373384618979038706998617262542475094770407931343152089265644044235690449152565735899757081575572618584944438481358291945882785676803983526993568226378141862550958190740653126109691046323986801692653996284104806515421923392223935154876112945025701120155121437516179098253248046107460649846948299976650993882189722326882266050340170579964218471080417649166310666078713125367619712735750364642846288007859618583161144251593936624457725345635712132901481092786679178375171762133751409407082027108651776378642382769890038911477850158772477268230500858137138812654833616597459357067100998593357888522918282551994604419893235512489013824768990779139564817936577068936033681889285531178196906880271003120050910221186634470149315535224454607221848725024778968654463449408423318284823506346628044514161569606649934361690558489334319524375324429473398495697171546445672625999311665797918044042287989412805518273942194003983719040977623557012267823732154957474260048438321657080308090209073712460726965587941853950962274688563660125167220497807983983393101619842332736726826905768583315034396794031647859645545259180244649788185884753559966392552262006984549017342704471823156260474824515600618390864049253879612932959024979386636105494632085893888528117301639185132126377719055914744998409678388030911921329685812428682356877105563075756193824282220210071957698009979917499887316708242051706419971313461838914113427772193980533467994141225854234522372440874876421110047064059001194524821954783127437283798633984646490872237073196553779350882322218930984995249072167395189772299708924219395357178922859100522130860815945701907150051008123182624659496539762089043589720694476125233124113491714811557372131625389674968508562193032782027670333984641076575698354872870728271653256891190194396412815518981204703812199398336096083166388138291687257634180513950549867535294988397298834854553235388703254053044771204211680019626509180826713615519764900024155000464852065097901025809076738659006510481740612556371829181638941757641844341533480676710165719344204750792895407649720340879388821618958036746070795368249537134433852434269695029439794807505360398380290384428700057443877915668815558004549468781517182384452912088280853441882989271784369908239270265945956171426383454298707640374795729919001285523187949001996084734179331894538204301501243754401228796936346112290438922949092248298191514928106951369511959798800161906699040594149745503881292336290999934701461658480165058270813439401393918842544830366326935927630988114599210010807154472270196003373754504452289037528982202567958441891064133320111098706232656603660631320940718174765933039632044610548957406211166487952224364045117405497158906603745029703983030348227415749855988908166578555077373336651531518527611290433422693734375848118845050938794147687546715533631922290138866148147416284146942628293772516919083181717813807301212967345232933928201546788829994868595333811211842320518944282462642416668772023003740314343623770235818736565309842140589579539116969526487110603509787337346100067161966267211454134054130789225050327415163539074329247469195272688519296597491938814291947250725598621484484380614287505141030606794852156312396684127185742561728638174048658691303373072369465686594376105082219517249295230013185746398687637811560393129568380163775306260644074764926403351296506400717758171451849439151403014468946579518268500692464652292563233994399062318058255189048107097594361618731357052913704241739490420648499304867534628903289552566030019418793472764473258987532016162666025588742888230429013129069789382007598376765341439650316277571343026796109450471638994213181548943389306597945398833356294719483938317219867494073311551935540840046067236921895791671319699503311975015815893277747139696335620999610423449929102993537137280049887867007048948049864812785331379672574557242195934666444413324899654866039606566187297996184362321635069940383955726577528963185899087376169689299365968609309701340306879481173988775138383236986055342084175607816880985672696511987392349758742983244054971673194792178044060705631266136539412753427208669490808454375896767785878180231855862844174240249381256220167585788265191645383812868535935038743865780684756868233526162747797082150554400878857979590252165014382944109838436589468116902727403213204898355370777541686282285329270912442378852907638626725698616894276495580451846630366981890364462412815345635790644187515448714717746682830934086824420465537090531946637522423925973843832884593616118729678204149914672568470265224279364834167057535655098761835751973098871391515218446956385948846190642174823121503077749510973802646417477662745487426936742278504557000915722236724396515964893364345466584453256421239499728053927313618209529569397172235845690927142321807630551435817242354967463385577017153021959134442851561373844346964900442155153801527937256914653347096768036772889379070605876636920408520326158869559235022285942297439566012002926092598473687336132567537429833976965691537563962568368624758937647223857604283323418419438492664521564223336152364970480618937451352541409209834080065303599986236046616040835749234657935606324173090500999842386469162068589315301970401073772576385400883086730365659827136496738570671619606098293912589073823769286731492952932204742593587118177508566874054964436993423200012034941848034880419438838652015138746218870169790013647973860743004059697907752698644186486141688622827564158368885474981401702882174139758974265079369863353101738100852774624826840909860567326013646689057973100977639475068204280494350853128232917542351704425893133987497710441429373879276243454552707885478322919434118527498928833035909121113771843796016967730766997347916013383843330300806787075243613164915347277526799593503898794539802069031735813508249842313219907900979525801589498741715675578697535236241306949201181660860047209074824633641272530660236409629077932521079420095482911774520858599956473585584059163190243895972497412584274157230452301501042371391194271422167295331329053110604969997169620713980526593480273830714288573078744329303362334599125330996012942917707469679832462455482431335623119078288879746117008845346038120139914704700521961616714711317976534607593794440856740431347844280227054853942806635196613484081269813900965065191840185682227539538980642126768186218099382410397423288720216197675497435801237037825896674555514498435894755855416396940801191627392792066525453010976238310958761082665054316383360100020422211767221996922569643523697983971200138450673818400272492827484316511209023009742003616064330190323237933982569781499849992239104041381014544071874657717832934457720968955060867007541569823381037202791443952640503601303098127390811100022227179818548259165979817119399760236742401929491714801909787216184796147654421505678887866095035338017753249100927855306436189938398848918233022352396579072318721371795645122189967069800694602098867770888716286199987231504605932784335121578388545041765802465854226234749265862921861971228199162725994828257410127374187791457364310901119620927317227968128795568113827649469691678230493148885871880284146231869874558375383919988159193127709653206560066846627247963603275950422867274520917831051369386252767587203235458266213009991068513827085425493226415237870259581450430398771969335895345543719679791009178495071599263518362624896834510054921497325148121574577114343036949972604267599268785578497017859761070206148953731403906656536037358695961635058663420200574474107341385090661607828820488988773980033540069747101736062761049613747609202893583331016949537253710810037863699742662815240501110495273425814846007425310419384537612289237411170755360209541604257769104890267472866804356324239106086712334528884700821771315811552483110129948447238093513694895887473892230168606198618729612650585740492376665185923964612503610365906107597109405651350422865154070054623707087137216822454732555863392623617504522326080354109521885179161266193437880789272414632860280506505036446201960833183730439463832650677646487442770568310124540935840085221291373270395939364712808203824565352411450314456307030252463262705957217911322334945537712675667863200301255282766119310574778847594043408466574547700762428207192470618543924919856176813393852912630385143829490698947684723907305882415850094666219874786035254258603926137332480878630075971200877890563322656447807958943194466983750910425695021316619565810437831412569192512088124633264965864617496931341073256026354991528865665473615912112834606265241124214976586460341633101218187140123990162025642430486336036124720630618696430393069768895916074781573448025780188298006956091190088719502234460019154537106395207265905516963960176023474516891705522576904449991914145220366357945737811261004346789932062398382886008763953304926235927978325088456217673434672627284049951742344899912951050016031011343373419342470291658025075272669357241290345068690796887008886526063069026267899243049337544685542127012790955587726236660677312805139376836892992893836959073505181016277452815010710389987442931752894645800477165937887919076769659232381009869966413468518439743596403393941053798664628643373964440675335215895244473032001518402242174557040240367777267241488692077241493142655837729547016918161854400123824080114605556555097590152705249537519285698393259223760799931625963163372816347174372121716043022846439044804600544166245217757215477264979387809263051432734600861358051113969850147977219926287177162380085175350664941230586177666394556374405072062773137316195808347577472704930938296748762760992734692583245410856793397542461566650653136806733447877544459424788589671742185294755286335932632506712258687985261820416173711699877763931966773875118778179503409388891320453130892026114590782570592419685710214022397842773377491017426691116338964706346419236967459088672325919543243912569414335179021511767041382371726791492462732907754974004815606865085553788199583336526677772352498335274462232886884631555600048884546199225374103407522911706874126356729435909736012589615630131067409453444491536609130834362629810592199575175176369037195275839500781434908754883920828715980316522958918845038471518956773640705387658176957894919056331466696316516132206535362953620415005339557753052568132417252486308211936329689210931139583146266276310015549446871568254071276230148046290215761141069315455607893838602004151224142299146683289924220714677792624071605019090763740691680652358378710661110331238519219807155373896400061033387161434826729956003912886710314109633405871212311252279973161071978798252174542250930775654401054067070772003210435429146259281489262880243939898976119263307039275282578877532990473463321141549355894344558784559584833100188753976662507865449680106002541737773450462412269707021400060784913665734524161020216767518026237347678508962650900869469576563292915975906870499658951241869643515411770011746741439166176571524200866571917111519080358449714515208391227424538977306664990107238598749275301503837916452884126848456895176798982085847108959373973827269099937021864508796119124477498728581592472204862089202896208199390403222273174941253032821845734062123763585552049057128502424381098004760606313570457386781128887037370704155272513168192484102168406394734508938376756246564298452715222451564117010366781004724113169275967426996716130246061743989912529813470121472017825788554727558415948505230370438310267007787888421834954423761544089833399565226663611363805308133390420165214992500852400073452433195348201872188461363100993528622176285198938884769387612147825189512754528779075283925670819340288273524721872188941173425189711524836446957185483180168960175196708052915263468561791772803957419650788964446071338773778017212789778926221626908593289694032421357799627489806130994285567218128819200244873721805381459568226013480396023945511041920361654626328001846197082218757917821762653328057703692968488766598399324769339111590314038175151800252355412613368696257541705075033580512471472257796207126548609545524958402183766660669520074399057137931491755333275932362721795768798643764212731128415645119904029853244404405809915898184800467027430456928910466558924330182183696443509580910415577699119234323846235616149695808023620048610375311643363847215436719252739526388236587245100578771128243781208883378147259940302902098043148136130632803417334690628276426315725195562003764184404838176857555456233292047190093289622497501574588839263755212908319193075909920624288311885933636150871558311047722720652836500340731912905408343908989753132777816118319530420614200138813385968353110437712816202183129205339203403287955471293537249308317926108380902258432990004729215398621289427551955027246294900403241894746116295882120873081851423043938527605963260761434679547708560280258435263809057800715176135396193994141853415877075640076517599817313757085903801333261411386168438324886280115103063704151487007916044896285850032617664606691428328682942605606144672334917509179539120769049777923554477037443602805366407325829137364963799825009856654759704921150085372280235751853511379351854142676883338221036947447991450234802761043971941481076279451970039318465789131475000248574432304208368658550621446576336677616258560107657110127532928265297458950993727153237245177772137206457956182826324171500103182347829924468789405330117910369469946159630096690101241208384994874168804823364478580495107026855078739270692115743637949928825938224998135279365336119884166003581962532368041457355468049627713705047620669764148496189723685723258288229453266119096057138627531793328614743477897538772001729732835615457067270365848225359094147608940814456348909879544957864231866273093908778307465092900575822281215883368893354048650626267780375380578925199628991734221351127735082791977108247248874871957433885138713695994138392398193763820099290492592060740942055176535042929680548243280246207070576563597079643428017663819284317609518446493388370009795735239544896398233867224389570516133324992507346302439858425791731618497821547018109030955645633005990622514293129774380329471964210604619300244511889048568070631372146499095160223268266355484299701000909551382180725673782753887684945138792671508913613935515599663484303041729650043305993941807449594360464684453439032874704996196668161503399674355529406457053983613937950891778823708762154102556506640504911815786406076640711704718383862898552921741771399943454219335307039246015005816169582717671860829455015160327328628701012934793446455142303364698242479357350639856547609216441810040738522871001909096964388625157425119142692285544776143501408062270463174050448677980662691359272511675949746213599906083827952708468531982137946352643668360917393146996174345839783374983063749506693482690263631141242027261317822272662504467318618435620336974319098104338682534349770852824003441405572722216621859225786753887264686562626691875294390743289388067486685509546823067469434584254057182415601136976970307717051252843367270694041689682728119705446268864078641162648597308420555904002644710836608251134960926332533671242659263155359869191770567277912541566764816929052064882498959906199179139599012632399881491331960773828353838119650550251393228369400038815880000432714272511216566140473686479903656172533490126675479906474361913479028644101086669211573133409459426677770268582838369320008164858547032276497613851809742163556364210942566195965966865299196445691899713287022016783345670056425581979766093995628120393529857505598760247654788030119586859312075747600500066910186501137404222450494049971309083149904744363133872640788625799474340323626250980942493916598248176541830432487215547627534505714834738018078446629569272754975998338322873021510517062484909806972496704040956784946028402558964704811072930551360686343868494188039370595051770850654392217465464155102894809808348633091778767258956489342912568961073940425728045821308723062804167850040227656743984393899069518900063443683918516163066193004679856446708052261117774672419880336296151704026759670394541471856396597111983377982786205084892872786947663074089616376620224547601459325168933469138962055750017444968439965726773757242694376715618627077419783603098286030295912304293300014588384731908705993168925188945350056577562960484436097086082692019674397353477110841361259060377156284867791441288174727421169431991793945557530397531900544929619985757884030545645644252858871274081189379481340509886445283469593897438911645227007346762297538931810759429430861981770497389610631555148822188983992434246601470282013667518547327055425891289381413763502126082287797917723875447755022350244725185080169867225722667278986065197316472797357499393399149889390028213407276659847109101248261059205883128715292658076681601451711634187749703038669634792330348137555926755754750327953727086385935029443872048050927344508350430320521114002017022631186072654315691522342959446905301337940896881218916235300891488308902452508416918394637462826470395239452699086451252910078549944200051069850577866302745457783879420434977401315615976797497376430640876235623470611771974767005864164443877578387826259565281077590622016675408104625086076000575945164828556267797995217179878893449009187992628840662217700848155180487948097373117591406933492241291298839890416782939726709274624752345197734607624136985466495697268058037982247349408684027588225110853953204922317442925164982094346160214802317071048224750687382179942996336015563456203511402722463464356004750301555708935096570733342838899236049195043583935692577401524479878422804421386274108524298824401297991486344618972667275875362707278680435069744168101999220933364084717831893692887345983687457362735005176407297724828813683716843650956441749500522058622859904308522203621449269776307857725297391479844383787085002431875823571050912528759762382239398638840019702762888757995221582803066885383407427515574655256595026050449438096657629955256357307231026833712714536328008262942810368781340139424005117759579436265470850846937739035519705059141940828004000361851690613737430605013673183711359726139537868553341493158849326756928369122047051322356153657274463642632221089204330271212001473184258159599436897269530327650312679028683368784151801788872020596764463311692398674906055549672259439021250995041280415809500498625613423759628106867358237304453131288611024115254604306960463021348914739360958981785135443662017847164185901822209386826374481954142777341544485146242730815559272364756033750182235253149715136993539681437055860360161272564399007744235570117653171105641577601634941665902522307029412677809043264390045778858320890582272889859748787855973481579779890661366355953945233007690622822228636494671960061831645681850317415929444180656365896645423748762477313428779270955022021580105994399121605394079192301873883026319012745283371235197024992046213083609069843891567297069499811886573147339189563493236239972111879214152486478096904088195590043917012003387665798556276861630730392750623858189166522317069214438605003670976312623462082996574982879946263138318795216841439230091677800339323836099261952145940720034970609533217789817591389090371589096015534635352789123913892117223946500621197175833105148722614477676345510928941856038040338691335158270079578893180629590638618057898251408395502492794172131868572305477829674164986860022584381843007114399410939501184886180768955256174271098322436940742534919318592413131678727578887990277291611199368110162718192452645336974005812299353930342009734703428731220397928948901123982812756236016504401503852153546003846718619989744534047926497442758547702434619525352211528215724092004460690708704026907355415251122911116044068558320480033823694701149664179187618490720782287174679006233407311387939516192687253597462059449374995143072535816828500751678920509615946186680157744356400953878959204561070245347483519815090418041327520510725800518770116207317861460262127863778720325833182937039121376059737324993961886915409913818530748413582936897594986276536525667313351970920516938603483070969042787313414438409738758090787123481994872423910164829418106596214821858365422408002636526504294324077033050083182895683956991882377269955649002042794011884363750398971931743691352581185494018787382867342827482186931668337576344011755407869012922152802866289157624008948775851392839731633640307644696316014236841876022893199731424773520859607953745733891396704517432832482994115610232336096733134751720064333961034435371147390989349687811172856558474455392327678339933703840853980010056418908095734478645080891491530961942204627544156846858082607305765279090276187445415742432405657353740803293906151834322658121861076155520157663587039283898416361194870630830060054433501509099934290254566381777166537032211806303661187144916615982235845625775734589793808575918819416310936383318502069532425950682193394293989271290163278503680955790121362744806322486440234699027764482522219293316185114293160238599911651065130824154948900187719497394148016500156949671079141181969682909961143361167707548816565155461822609971285772609806522729597581592510981234588771835233131659288907505273857262530309423172978240548313746799560412487747908609176678314876179030475168176621296385827564736296992920102218920383187584771573295280424571800164514771520116310401296486570255665032533120064951783221920758575806187011623593485658595963291500785440263076282383170506560712958773929303316846993231168027765542410715632470799259145170526588481358316674178088534071755854205914161705496319164080973570753944387768406649960008819047366416628590110942564411978747070732562808408112566462801622003459707453354482951820592965055223363565415825741269499489295416034988122117819134956069808869526104569884313973406916153114749713377065894984126824932017373395603887695237934824283404085226019057682358954976538498218984257773116767887225923975529899211440569309404859701198456748343415237808744452232368792965584830105916301491115934613700934178964504040881652719094007423868708141722617451915923105787228032147671853474320286499672069938044256083565737647309654719423195230262185630498770744654508180736184394644926658170037508467181569364738624258857320574581955436241071970906034753928658268489842915646181939152302996033492499890611680899857906364174344063445472832555290055303243488783878608111024549284821402337307586135603576317350505657648723258156141164689070509167771795157159149539606869347249820666093303109366303183380381580182685072124158140934878881855138863873154323137065163064592677490778230050621294770867638452073752825195441433513688779186688594151960504794455263645306028410489918858919890366027092927168639116529815276519626670519698672893395420111241900569500093761302089830837383199150995634123007165252609393389903757177711124484433259745999956227524434757272794070702414700994565209562130240312572577166990336861424934063638868710959701538742065251064015810837995068363040026373456218745659344742953349492191634265302063114189566951364831104427318174574751710493477563855814016323525000349504224310244956205077146967103582380383125648107193229775254800978469693479403520002046730212424491147516929233376579722304706925397074881207642318345903854010251549304307740358501954839413688789230855401793933171684461344416219318903758470668175186504926274865280774691361327937440187267532727572002519620873655917109617041594567280520162031101726017019036712425990150278508708671420089847577854993075324642682509812834412743870439681648704936573108534383317116996413527079089842889544799807897968041309950896804557951724990615332767180327465962446131561864831693343280817436091966374604453156378064155266793059017484763917987766520894557281997013512544075631621142692686238425809707927268825066975967216850833962775744376126647154215627880305925683922158135982645955624134870037557862160689915959097895595035901141896495437564155827770510971269625782693008729883739976985512485745398017484224168220979023534418215676176152947840906239866816933176984382558476439970890375423815063163343142428937325976790281585498128526697503228250809721656761513801358778275539002261930786378397860689335210716656087822371640267957836577777748669293033885584062837892179388667427682755714480239580689682764705352342429511354644033151076983530216332547172929648870738354165094769606485528038607283680835170633406025088136987896252150651194552390236944474693745770144015869103430391458593306899867449166902969506336263065019596383915675873003622254900058166010248264502059183975672742042660083792718750910795743054323345644553615573851776558914956427963148971012008164164501735704470810323784829475964104655561213027285862002985505205694177904843121363617319965800564714384512047270767068425940193613106643683878913826058885005634674314004080444069884646975720386814239741717576099991543218593932926220004599141916853437973366054288260951248952724601798421284569112178009775579825828161073736606936439443183762852766837487121416456952388240346402674997930402051265988809865159850868903966707879660681101217114042796220188021258073196901474032940363602713992498852989760279069305041491732132946692534823803569830917412263457729913942522388616249637582098903114406793026066918494381285978136547018954401726562516572507589181568785157940480193608290934983077513404141316113281791270173458825452517718413935720130157299335790084958837925435392368413681994330492345235363839566104707952152560315431208064539240573334856168699004130008899083535543932653630804434802550615145317540804390638944427952476900686067448105742354010163999191852739692427415115405812845460626116986032269391226643596205325110416067979273738819018207222870168173878921708056632429703740632320713743999712366755892442895997777627578924945618362446132194849447066676312802969140049725642491229153951079094910093142147233092487370554070924276281697623156967318680893237053877051089773297118973987599657126413623703232378172675809346759967351280642795700668337219116856225563589097729736768369912523566859122627544198097488493881966382168475837639453875412339805223860508731057067659308271918587253574081997758425545007199836816530690048296260164114617008803735184931695505552173171485136061783305084897681349832502098179183313731156275470323722915139625331390865483607862187135997144087870496647845881419015125975124228680807443623935119867798304982840747292428026879664656787640703779493979934101283733981863593186266344842531365458126710805760697824978145928541837801050451361589578610507743813850916358427442740367273090643502609339100449421457660458783688903902279283809260132380200937098635652356105840514228166091892668137901845017145514483484454014310645947142132219586779992489646982403495080154590319502774578937214060073986086937347680907595960894367948107835548826225099701654970183775706036044917400558511314666262810397973273230877250710251859484116914032018050283772051831918753292141154086697037583907183578214568576261009879226959399042204894324070363703180262755909081549645168209547183862280013225662728347956791646358211045792542937355024893291308363435341475131639500080229680701828041274999030206690975273084198111952059269999566251578739848076198080193129012347970076842049516646512776254902458319380740354941705145087486972032310482948334999893387322684092661864596574016427386863870952112333619835925649746796516301350940767878914870076040041470046490631340204283192694586399496512407457455599829724290429819213070422152199188829949468991207997520708728876246577300467418363808278850734809396114674731032631989154187113468174637194474348432264894051106413892625505146610133431437857298517566872259686348885613059796348437869093440412847202983664002222962100874721538897248726115509167823867067508597495417376765745255228836957384484112404663936343124934492435077665517474998657555750355291711786127187982987170061508448875825518855337943339315152044339636978833009738958369450852266912267044665237405701425061995369949328459641732377678052007677824002343765132257753020827387323643049117192745898690491945536486694493560589871458897671625614024998272907879954041908784834281327221194750575091897444012011434241425550598888514031034600777560884537481233906510823044196795667713230125029125979339050596291609514236883893902832380131152285380208853216241269725669420026333350826689049718528347116977968471710445292716884232086606338708693003470123694772184913955738541770467797836249036209207643098170288771237768894631535468521938622726622597543144686316633447663811582744677825029747951746496274678521378920321701153217193435770973387385570922106105128697768369679475082250053359185920125629590483588588971521582500993934254214739777285221196105835365593409692141646508186620709180691930928196321607277020050378866472981366093645167068114373345979193034044511256251227925744799192980803293002289998242790293738848838220965907986692530232063067111766514453018033744281064302785069685973208577004668270097670965535178039582350514340879256956587431248486117465126248495382769417715857465467154227308785385260807725986520904679657473439664974787153826634045363125267598605230957970468590260750060682966522089481436120388525408095981710676339268747130368354529369309453554094421169016503401076671807327990388853396202441526068348849647883706474318337296776418158674562168601818386349567943696220358798122585816760377319017163300386761004615240426171435865678077193220192605670338857514114361223958212141036094719169033742929346876095442582555357999507965609448863713598919351176557269077717411091973243327881571487700760013237022140199830761697540338556858571717388224323038110990856954783612669764667792438656778389530266104521593108413335260404132527289341843848688076287714321323088578927318995062059350769094301824952421793425598990835371881764118350203186257569423900799450479268266016329126649060018269605800649716645001443113666324898507473830535600730098429306444712737630638400404266161856150242271020628170587727819504723050750220698172007873986264454893278089582908364724545363907836970688620473412098986136304990651722578351146072876314773950773582741974804456354565566539741197156464256565354667817437913083502588247941060302286440734451291712064110566881041870004754555118985081636568160685140536521188424923899125751422785870546187489218397326119873836209610416959463949028429599017485094133048767636444018787016728541383196450192805418925580348284674407776038105549596979349476258287589317460834229540445440417015300540847856519350749569206416973964422614239578682659778035077927006658012342464248084490477633342948823036278795195137452638835247118760278126806313041262434211320845589629247611399902293724330057339217524812536023153662075220263744225460043244272249636628429985479982048252872868819537506487031535593896829606758523670543983448425249712279322812892139742629898863184975112903787647197772422512518011210150001358660758393237137378001525725424237690969895393924086563028546910056399947791638328366645323762352553744780504474302366630969158271379402041037373348890160134262237694282063458336352703388662589860096634778641570265106702180315541478429728289913546125176773724874065823620483895375989105917670300239318012759398069016333160306060247249050928190754417682404290641018409351859193561726971151102296326951780671249528738018877537816406040008450006245285189631597023403820274187136489840910658757149130925043974917372418260677050301123075928507756260132181052189651756455403278197582231342539925848732349523175846744408330667158513364430384727363068693405665849897313162013477051520893797583163853534927009437020423052739308926221011859449652086997860637471080055757654766246142592513734711459099501932400269849936913475629531431647558646585098425683484137711420181525228748062975723154222617162341902378167809626600290830768001245103198148472310500768387607705071655621366264343176975787444865746992145847496342113352645299606620673564160689999707787360874058394685008826436376844087410737991110643890160370234766961929111708541043724482916575658822220023243967049307175307907285984648796996911972381409352465334658545295314669366600773787819268007906720037515719314039494919562498302747461367186442846693641305621524845996286892347464309842063707005850593170389683011402443271578198919022605385521332714991295470123872995371625733082085124284602321126121171749571077415381315466185571460763136418890180604509342840724191001092656433069133519155430394598699469828343011721943136768436620041932701790385426543316778321134875362741107874659560921571316829230576891268671186642119740888872173759442190128801110709146188330126136873679447060651764565721459139509931188523437545463634975286259604542668154000078229233140991348241976128491502862348439983977395012701943481041605595497097429617280037442194362801632609025941616384231882352079706679763082680361815841400664095546972792748284272760668894761247460452730094796470858272395121457414302891117429722814210270859265938835263131732761349869988640249792907185538606198073922849967838105561015972947115665174244592267696312391727311925294061489352017259288434004034213939673180659292773103150633942833596835456456347422676190838558298839759419428316613246214276331918463748879991859922117178772406156721284853399075288826417283290620995280565244511266426466639801510656833037374151841272043496893039917891166702396146316069977637245760006527316840167830933238530608471935957818889117280273574783952146537625625855232677597494914950438365763073771264863978632255550291068710279003195251895001955191452195920285918183309812066835086562418483038393681698323104477653689082220602987253920210148841263687550542847891696087714851200755674729131837819700401295973660384390748774836910212325149693652038213607569299561046910974224722967135611439707339259802588719970558350253618099388226058917979963853106450137386130044953009836898449651232815771679381628026269676868218321151830258391889253176895356921918818556946779433458091147297877749853231132010069223532202972055728876993686380790834044983377035303023398213501596789228271852729054567764624349177732215853119993252930578973310665921165690763953450175380130591195925288223767305708917360429029964747049741883672055372465987713885515707338929240151344379391409459608379430073953713047591360758288769918823798361879345982824001972472910009904810815651524291086899353722978719865882653242871961037536250470696604401024876528765889231888097330287728327820666444707502073428627058074630680987609206385189767183190756573538987630997602778477367852415859318148430953891451109239963342236212843123793382490247523781680016282904222195993365152946803522934070452255332009888022104449706133620098673455751856731941005894740900119430280622474017838562395605995784557068988883614124841973619898959672112499825892151979420745159309945460682734475494931237651737826380981438500394956011825650802717520971648574789784609445436915325158715390999334247893986506931559035912959549742523625954940129045058688538444373331009063176497402385513116629839637836561571905201825671529759498299942022288467285107230580075866384616312174750649156313659591275601841862846262158171357510596092468316812444824868736815113317305828990958793388982710199876181557303684465063650394058484824269882519019587024677348307782147665687005376803582115486253711569427819692052103645494706718853045401207052306567365765577064321261650284192738500490007470854439836212008397206496762842306416044710065068302548580215897002518612175517653603172753491164832156248671833355804854750246002611500996788888407890469080124967085113086743062802829287183454029368499808480972933685885251361924304935216237152738126420495208774262531314238628871821804505163801224812964174955059546690138952333813039179115595985103755490574701393240578781637431216937246498385117048974332104080582111417092290828700159702122498979246896085795199875087523785359630261999370058740157508212003240116932817203241328587221794167060017118582846429695754601395682890104214651362997349709714150988813513456863586515149964874575333691577099142292489689152027187342876008295264720112370313219412855115978949845757974591865130958729714312092210055006936196379671504859418788008687990656608010527980747654984230507920068389722084153344408969262629566203667994824982127026532741074495246469284306267409066024956148137489364787808332032165927217702746140311349760898976186766699044776754057420545968127948080302498854813467344705980052516348969138494072074831404080058998651816208582617222985797926420777823939605137502664926282241551399312236687756971899477720836881389236679227921044353277263167927116393517528527208970478143757332562223630868047194884927976927063633873734947611937608120226458121474606959639497027557590327589478516311033713554701256184424497324894314908386898298043352268502349469815369751333397030715631432122143032082156007690309539602702689219191585336320896751969768439743231771103755309024413257015192795759628284294031581510774162512016203139234440891109839932436003370032763574941912125362374187255146011623056988817999177752337328131962205369041794113327899766840824533087830781868298119023226262896518596761378753966962413442982850091864760310326688004385188769670190893888295613850731607937442040347412980143407190222439759304820369307331503425087792152491509176562880906497644903074095763447684220383948144120936596774242423017500262686052643998664211356799693262791386940719425767591384242092327884146976796391419861965507179078990940156601351503809471988855356868565151599608283206027663283765088556559959244874997554912440196755198348842941958056631591429797921360666974786544279643830369701764686731358525252701189267571731764143249250355908761392081502697621732389611985640005426172559030069233378831696568273796356860065329823817014214856671144061521297385862139401043420869461722090779843204731843159254867196505170622841569140962717863678492575052182330208511291544028788937924070568173007266435702903868077747323232476653574200738240963455919124508728225975819190872328163829393763212102633272944921378239754616788149311860089353073011650695091315647849675893351978152446982973122928630847999458139662725772310233699038100911938198823612635865147796407199624260789002258369916109754743380341245562954185220905567419285531186101565833169527668525605256884428846353771799153869122762926924772378863836868800141542480629788774245929520547547069019236460954397953232350092634460008846983546722993776037122951232216756701819355589345327350061155576186744029455552702194438813866616076206016040714804867687080628543038746420008997835426586824502179279289405205878067016167920951475011730309447206573996574675152125431120928135119790650350448581674069125312371712096155324007210119350695417576090025206671411148990507762938984424732660769951298789191868018450182571475011424874422512872026845115472136098603669403755894657175785701228506110315433049740886138840180752968207988007831021351877731697053907573651526817731297749753577204163554481495937976691898321222641959641473275654990188550656685778285480638163978684126886098165407765414217280624616460153461828725027209327836280755901363930899492503030779218898008605863171685488611341581802022269521735395344058379472128144568043201087933957115486393387045986180486380351946766309539451192569783112690324775845351296416690158931262663429169887683695941124091192593167245275786803973314402920737291518723615051821659677790596872374355332445105324272954566831166151584389646210054823723656770286097336152179937174594401614665374968557857025897721393961756483031194349397474159862408694363790734928005147328132899920182146693784209678020671730785830725382821595486503290353074002058875903101953092494061659511129933998031392062481315984139582304388818781761397871395171538084611760677373245547971507951594370909554185357831144054247494960940281865148321038125478943656182825280455150340546358099290295523475910294504077599355924031408565743303168641384677469979093943852219876414369218664989780790267577422300026864414480185922122225212876079544928216364196265111977909763159398359765772325514718650076280743489257222596017776494906439260010185704524101228996274390433201387047001296792084815819631058745412819321078456595641450393080814747383186667957370704117523112897312193944759801623720032058114155599020858786689277270742888767727673210567833115200617052288326058627905455710305832082905658768362954454084170416136381980869849564561439982208044471611189606663179284052208567335684203894483536560634289780635368323930968830128980998965496045394295516533024559429747051533199898139473420249206669755035540500475591438665802679163456178903395319374816547113108869789953254394061147677353375233634202425040357429595682361223800719384475385981452006552097029948427194595664626210461357016997696104020859126937870345214058934374036802332440934959042612285540250895318777924945401805146167871904048514327080127239050710238241105293397312861971804875205711585361594288946302261051988297076749418281054927367690612762312860442580003709410997522264855573155706852078755479556933400218848886108949739338756829748813645318652209967950557324358333030370047794938691737470778850821390374633359597179777399354201120127891788107491625629974244520328238463587537112114241597595747465738512026492044243041759202912652888820374212558147678910172619939133691206707995197904278514315445815093092229953227828309530835124834407073528284733868758510492967606989079361737639982641164581757529781402050059030458440781609947011927052101206702147063543776914827310287154224231887279757275454245152529992049656297891260712572036375403899978281209192170673064883212920843184199185314269998772966858883588224097193138222672369323667164091658165941660171109464586548363579511182966931332583481129439540561865715862818242538050569310462596080973248092008678894788623809866218766825535634120137400439913055564851959664032863315239154155511396367987517732337409447152834509436598508260174849854783732045533356250058690021158646775961383456850925579622540055883844552816751167393975044197581117663553204301788043620907132425236411254669624684573687975241088032756773014845596458581687796318970604402579708522543220477842327566775697398086163105826716187592061775217189806580103940377191155868340413312484701519140709027499562865325390335796029522121493186734328590470625185604727065829716081051503632716315653411833484494372555917967093185667542800045886807736239051802027255382195199000559444046452740595006989030590298297484939659207087268902607266420679510679970414318428955050527983762838798343337852032846971926157642747352587407636238590248106403578659054462753480145149222006305898104188444115354389490640825544850209800780953473170895270452576693795783550134740362340780125711234854264145522478233302323513056402185922552721927117122645952941684017514307696878860658417871190829429363905514130816991154132637311169096644311582568739254265495546118507042729690205634595610653896470711301763910346945545260972745353265458146738759916366598754597213623165643866008252193811065776014140381462807168205610502065743822283714950814619831463305757089820918018836984294513722411097850578649106157397797788563309651133403931579584275927686481468604104960500901798939745928540855983617520448355812959765448622480779119659946395611687053823775022014410063679319764654745888950306306945380146832169038531633384184397303122147473728894671541213586041218709376126633601539411805812972686718642189759537767762193709915272478304477129318160575004979915331141716800212580538331748705269487007903230010845082172995076007581551272816999787471747041114959157658578572249941367816177385102894215098776289442879029654809417576944092504434584080965713870824556149410653173965436778033027042448916773480628356953994400382699448879598568749983206943412180520584592055879839260400070505446364747511123969854592560559737565271157436865213242152679406728421040867174626211360544572425573537002719328291975633175086964869403032879925142325928506311594858829183679044790446385448318997872916136305214903822214494899635966383558508829926094572691338134646321144839789667307235675457081661724744203277594404457557910665763113955821327252885053460417759924367032649651242123480803564354655004809850439890803652641066096820827132291965265750582188123841304339498162618922084189246238331473399408601461148887677661579225560615806005921916799438023045529434820003689030539864844400971221592277753050528028142951932644220800491368517736405478348799034217517875779552350409480477504907554963202777874132403060823759251285448945472413678647226780288885978111608263540568394229317173735201845619220984519504101884944431428587108806251215606466786607996746202673098774500792398963043199630110545065234653245371202157059545043295901298548421325635803119798619309207508586549558050300063121256352773490425611291346048449978606176712819512366289273853237523250184102688880863651933975370804537203770072623284933162323171349432570237801310397566218795838611623275955132362319725419860040974307650226057121417696266887475964120314117788610862193128706549405673623613790219363629718496524988681028021690672157464192469508843536636645362000248505844379102284082289007671956398526434855318106650438612857293263439212861410475465284866567959213640723287972290100327063239302255563590091028718306681051367481482136618846106596012461532167956750807132382009620552736579282985280281746480755309841455993710781460940128469592558315307377547696336629446851363424280916636262850612211782855544243557392295452148705117863113202098495695142291189209635235117429258820731604354975683567433943007246498181244545378758904616666630873926852206844418803708439827303750972837683373852691941273378928406866345606798409622910309323841639406203161525439395381904258229569545362909705229545443125585004443945053987516896532683113542683846454993061858656571677068520880017360740237414007655872293870430939438145116572269938598886052366413643662003285995073843419252174089139399760540101788281682895962509192511342584737565785692871536147757645007910215844720730656580229366925699953344386082255799551392290614367547052253895652247966775092892103606264426340508979822776966129500386854269490099892130566728966833431669410608236555490481650242106411321230113235992611246049829102627893271432919895102767014011296808566760102676912411771624891808508274252225557522177715035777793836457971539907022773959309327676517676258163766690593037429492291593037111805633362265233097387665777971366164708958386053613464155485430652249816177062413974439965760817661256060584004575538036435459438134970663906469667721247064570351718862532141170315201351788365658932360755938064956598277425230602337287481854980131361976568619170447246859961381179368477155221606869981460182045259994632591156414631991960279912833215474022592765886349737765640809147997507326226049815598751654308491320806006212750394741339175648469740750177173450965644411533114948558164350897182909181342547345371008596889801774677897425181454388759152489139138383104003839816392204847565729345490928242138738176432994636168918051690370363056296300697245003215618952293925357285687631621152725328730340455426594615126080400460124124396887403614389748743558336188250810547411718833265617789650247922589684179074023567263487295570100433889719392879727582307527797014608540771561549054217225098746266188440373908322991768776913624805939806036124914920368658091853037400976461430518211591922570656636177995862577637299610640341730019632495513058809372231459036719278483126306911251578616067980388464881379291346948938263500554725411355036138805123886700124170529335710087569857463283871158752622398848894107176309603309335907514604508664823477330872444100449971336285062241374141904747771323153786413548017707620257597323304778763885136575809095705358799610962447000196876765717017179780375467424707339794857944773755376718430870655176323655734912362055697162725905350816539662027350234566491420456251345551736495630640679916581815499948415160215264398674711451643275104553438090104061656539161025227498963314930906471430824130310983507063460043438355915145095831265752713026190544787552783499590783568671290026729212459945875362514517147745041518085259332178563922190846467799950686195339152258935038757975610976239633192448533861885911505992761596065774875390255735251735078796014247083133868931567708382940143484350879427136343002520473366686168487446132575330517806069778763554070079243632266907907878508026687720911031881566840445847298244757778571630900716333156438908872330881762703731411199976406435875340969377844914995635999519602595055659273110159391773863955464396609471663620999370670019966291011944929420935732463216354744581165939252061067193584751269753000444875959724227339893267395096225768797413798676610737316566981503171416135306752628401255284823169826115114047032624652516100340664521165862088348084096996334525615505542881375783487155892464330401481328223794215884185702705705231675612444612944878918153134003203069271656697391313784721020458981992257120317362612233175521237558027745735641429111359366746722489472149690774610755576553785045340551661316357432533478519438523777247863963711621382144486027871309832255491724741704764166814928740409192670217509107238988494013325364272293537167470839187067881416594451841646087344083909057050060457926176817850914403278230062108990578764432179954836935659974634371282878103091067332637037906322954590400833129277730520425178671999166824796726007729027099266991445333168411877128946421418228700862019819546125274601376377291581354552851840342748754967479860279858217195583112830993565880569618983912434865608257446917643055380924441343713058986751969558042976457819384329027346217919362196571084827024046161484301595129243435855196742007775637439876663619982062859217814976919315930204187531362338493916272313869416053069271272326780513232574646105487760931490154941228418961061070543526859623327160930234252839946958748478378202777342998442624285878544959695510932733827891819413945451509348839185682362790142003654096663012300746126701504697196775468522233479914795484218255035269704613020508862743925324631132555005697305091592715094250056361918933843960107117880252237844637445917099494437075776937478443489101097620531146663298408746728795301545869350345721861188932334498718938466865065646114069345072335452210174699659529501917146857848907601476827812634876923565595377015811328184223528313628922680568479667842655579224538778414113258314984067380167214029175888559836964619163491840678501409294248571614316219029433211630729798871423720732715246995616510966494674839948406057840107519104565928536716647167557600540475476083538614167312709318341267697954292590698961070873314034977014343583209331766564893923744101677441434444263099443343904134814292667746375319316798100638491222711530873363119696494394145689201522807097535441011242045495293404927327689402072624520388543319748945590562578465672475260419610130824532000047346529560718036893242494056336588332509797206756092962691033357623826952659484764365278214120916953030098549767512200330046577005881797393278633865988572809081238399996378015694217248340530980437156260578664345068496495192126853600147158702249323968725575203890291689316720051289395954571548050650291408550095908878968205789700617163013913856217334595545875617263953994445599982350319440357119446999363437477060129968379332834342699028832475247728587142523432627682067466832981363144003591923137560694387176657949510385935355403202555609877550185910389800740811880693919113494132786274452140066605508854930166947294535695202723737181193135938669787868403085977479564756080570139018262176013257915477001569167195802219862461492078630798127171129698569445848774916703460812942515264806622488127074579295581395509380927517103636845606679474835319711855946132766177968326092673625452552984530044447306001946478504377144951470441646772517386321658771591441382292792535980548291809457839473512119964947604766788703157990773042307193581174232545629338122525802177469806510597701951166590928104924164364615380232818446425347416332292927741539923629023623527364694166493416201848733204132370581938065603471217143356518114831845341157032727957900597920505048227560646474003469826265268506040514941048885866217617169796406623552455071757798892871910359252069550003711029409877012559328911085457425758737870585575376484772632636450495889436765580014862328951932294972634952650376787815720037359511508581750876577123509784555866469868988466908543625191343488375235514974617440933607010796986505894874017367229553552725104902555526286569929348771576005361838242915622914563008314855154483652028376305886882621844312319034413716971391451308738087227488517425283266302380639908500323276584551193809787087515577448587083151268000802891360428379818235348865827352700103007806189582680366674766658487291444279708417544148135827770112928025328447255407047974315092946249723765698460607813683494645457950027665104471454748292830627809227587961565765923717981181389036189388353366114422758753657094535469018144273422503410259385029815381797425188380187432915900323626299671897974231826815989853898458581156514893720121850412160487735231471107142916241294417240488768059726320922518927321807054250562903913221882883566295742721706219831834003924900019082729093505481333368957218114715191421930350510820252029168899276545077754239268393842109078736020589745945735981122969320992568221261087578500467195352170465807970723858849596520420409119157186497133367419241860717990344689771942703124397053889646676739014655134591822057489469213343507699386453850350923650959863019693690566359601506297376915269820466192583510166053578098903087657920080981812846849092209947439119994836880222745005415609702263742208064294474968940683598930820857358687745212155607470622657243306881004545512357256750038676152614399342565193856474120176752108960064282643689791084126925949668949472940731578755257615069516855047017549454871054687353174231362418245799381875989495883408925105313441748976002261359698824776414707352397347965860599940051888059814370256006468823877148531354979820853991806612145077853150790036964929376812557880134881414057380488928625018461705674188235122210369908719596112206404645691036100164435025794668317623969727157545842744025645111629509092638296702834432637606144185196308143346056787942324352964513962388615583360362091437281182724342890448974937656826876552035295159358887528631981885486552042937232424064207083783242709364169905758713047580104956713085383297512043361759958417430879140538334190326900146344911232829475055085450678942686843608306948062067731111945069656750885931681756296928503560801194960459720176718817033076629476615399377237247124010048234140933316836433270468251596602004054845677880774884701495074836410763079734097473899960118725936547644432393518817265132505144001318554969967569673879727403244210222255565301679811151275641540122997958187471199315757528808490316855286308150900304461862919728017461925014187237654693375289436297904560095299536940081321229263230711841604789211511872357809537596650413312110273678520865387688525498283029481307835705267522475103484614020527856611006071289315953630703606769817162285775841740256175834618639414272930951125432883441281556286123943542479043635855906140047084490485695519742214687390502422215227910807589091240682618183692916022852515637500859575224315367013622363413714393676832816102370308796366465067010175560965791092751206816769769836316583234336620371886326508953139183555131336521412330769208748145835461878766297030544445868858723040865225607102621814817815465156873514761543999718878840268334206107799718928371715713773946631298440352365648676181718064139088767210239620794527438763013787757535311085588167627524891748902731017624527548270505840818381063657215385567159114872650265286554683047671026478677417769036349390891724341334252824526768083513476399896395507832619478621102180883537399013974957060621710492655190811354391389550388403358657149824671221230777723401509557955150147472126247528658394515185324854607556642592749959943904909592542927195120356810314479034899906583943693067400610710942033641894198483171666996832518351489676795841475903123629602172853326459547117603914184009787122809998406704135177066601121153860731283391089776835989192145492611427180303283523893084926312945014396695404873583253565655663281139721455625811237848845885890839965489025352366187434419167462095828664019246154583642464762846094264762115073161782122022749537608797247975255626552298267262036491828641908587724345355103237955217719011066141332930795244639287906867826556574433871331853666162162955949339084484425206974530189795414506672200248290242630522990429315133507630665729185026436808359983855667882614041215808880070695933330228542014081855156911989658051938406425358000977365647015391884783463093963052138092981564747869592259262288442153447386812118055274657897184393507765380311037782795885020152737136292793151393528371625090305270797081838921831679140147059581877652462447187341686748647295431183767161163791651823235128947295854919073415923631015529797148037253641824283548734003501980436435350449158143725712998356837792760827316219177282760503812553630080452673851203276926682238067861450586732034564737655530793540850654521607489414405674034401852287765001070282034109253862384908155733050111214772207112955290295524360672734027973828051766540988937282848452761273796218765402001638460219317178801892006876927372434035966602832612234739688914293847015284627255623053554741667050993509854714916917892487093951838719131530243165225088537248430715465308563297953582026572319810341703394596367364725327043150200310318835162651301445066382101008412352971258987549031489537409903549412212520864704650784236856554833346578324134515859218105473125713080995618151101260723329638099637669318288049887804197991087739793702725137792534859859126728979774501108412889944935274818287464031229839474747539694742074402233700035404264605535562773955131663643687244735606879717467409751566309457755723675344540794209827010142268385094610500738452167163047152513907308326902223991536683775773689380241227881395460837380093156625153496171356556717625740518345939139033862094387183362427004333701883652408099755391433613576241109439570297792525799100799842863733703834758783337226951539224847183930850637349629794342666478189475254926936089689823877728863868527294447429758720968664523562109852038300634830335149138117123644679208762178210432224937768119791760888608372491302873496137675983929811741418806756977228600355351840759773584518738478890456567592467188128755971111420018399502512283993528429789701157243969960366998264682652037967589380904570777677775638167693100836965601277011194076378350896196616257631299933953669365723547350674747825875484681726186159590607849559592909787869719608645883352936986852451857313526002809855534425471500864883435298554212701614515365048220855061765952865788515011210885353879523019409331810276588396260144378855694580802335814855220509201340792485511460290064859223725410406462198643647071625092953221935278823423088566333688508825758235034268034237952974636255828404616769764968562011053537416531132330133483903258431717498998647895921194371780935701270034532751853112633893340461193925630414498664406982638571790181488700597550321475097774061547805513984605288294289128229249476812306324286561319128479507189329864379927570052269022928088401609353023680379019384294664776147971599349149002587617604942485003399873871650980082169146815659658642331705675663577153635965764970701851696890662860500826536085225776646551279046725414849323088732661034196773353194302676891061486475330592837969594282603786373353338050963577622709607752557471110425564524857446681736392756121421277285509704243890426882746468271858572018340041718428913522115550676645448576645021814038589655795957206206114973733422899477647989766614317858319707970580221141920770127684626585224788800036184595013505469923000544722241588528221213771542823441457082560055612322768201290423807679974213311819929452076729395042084206686709959617265752816840910448443782182596205594958773995161920154308747642332815460443657508117057889228577640861643104639993560101444341368192887583321066587549133699625977401366085746330405826956032321981050150998326668814371592465782170433799741341412328793144900840461533935231268192404928890669614429506624194797731500255904169343642131948504616968336508509391870024629474595687387094345707075728470775671673877307585218808135550000998836252828331014504183900153271862272750747034003933212921544480711462784591670462767503893889212282812134617183941565201597431840042954382560821054374304312064997325360962644415376288809197967011686837947040740830822731609735750847556508997201863727192792678718141333204692312435558107764929842725413772954324661914444061561119355494523727422623177804546046958123639878975239265461283685651912324695851629642263040519079987491498869249022817100963692150237093644197284655325213017300167263261683024412352696029498392877147600716253682696330964504497989132824810121133073170865383368025568469315862276799011556980315393681984797917896620769274663318895857438332845419681327237963680932231550021762645365343909409147089801526244645250804828759349140658161950180026502130724359977932139546199860873629635488827797064599648773724164065505604655606288534615393584595117385427989395715576165212242715164808755809719495605808839050935670873722679238257084477438622600558724425842483650722735285628137550762907006125327884379570069831178927460794312483588009763745590224601281448693049122398007520141484809367199583014889807674522912637988418029318110814145754401109337476856822487938074726431394983585299539534143116626750859823681037985489338714580469340375929680721953357715547414253379825096832821194815715579101775343731230215806986552239604391858966139587213587707206132353834523718165639863054995282282469880903889311477240257674130639499938394257590174884257139829140573933217009057618098446584993996095891619755493357266638144869799183866565444004163714564283708820284137179643076399791136037803164129544403789094782259165622623604496676068214099295989668145845600308703169701937249964027937637876588168138667080926986497384802073773408973250018939670059961379400139830670270511385598264775219935474966757261297822262470573292899707735489777663068156110303310731095200254428527663039382887544017490167249308324728735593593485949535974690686639452383376383057668471621342938054468395984094155428932587264756723230518591218725313439683803029158066932807157416238516384524297899457819018291958406042885095496240003801850453987462841928344372524567789472713697143874488875765949884002462546321537044821526092633803982128291935301211379644337224386061878580773179739703876465643520763316155429821316554200107091002883327960358624238511312546133640850420176286584052210789580924503012732007563730582100718027654447529132628874620306583129437944844209952786006565823951017003204726242076494632701935507359540504112642401379298769556863917666020464033742248345106623135033360046707287439842563587512962786985909335784612261222595677518830760399956142160070892420498153696566912656975437147650999309633722984301534159295890372927030884029814863537754569639248886118381574448676043683648339721227992562672066148190362533119038453649509447265262115885518847385359794195356821269921990352236639933747887933040050198092590292850457690825716610601964415394218436575129909975005843361484239793179218288668159474569726390243200271647150431572910304580611621766640395515856795525654838021241886782279317200800057114671386531365365661708064388565635533447893110935353502957646600402011807897794256774640671465357310882125597572453199663167661471058067053053307732443433252742783431705555438663792178190136008523244960992005052085422223283665561359864154254539305222563429264638216179128534620039328797971223896306777961012248610128977295267781663777164464262964000438817132019200174099858469363663249929174535275323947086737526714245648900106958046374293643900184186728208279754018660254302996553712937460367238033456835131919904752281495615696677116999745938515067527361143331620228948129934341075194726994411644576615266798728188983193655076848218373409732630700959103169466779027198558743219849757872356292436692672536297534713507002556088545627922871991562319780004784676628605799128555205391845830542007056375674744849237811605836059226801330977730391794474144648569014846615429149513081554573038832370903232211527188700162378797405375734615071628042300795791946259802284103566464220035503274933884255986090426176908626240990905170408417383901822934610694355038327611376018623055411500767786758613017216998730783798260006770845863556432690983334332611418892551901128532940199943685350631029669130893052621844038039468325447523021845770687661983114950300821575494462336715539076187432231485158792865303998811190731843376141142885497891880391143256228334693906943613072655735902247296773455664216889627699439461654746214054082225383700714545701576289151099575944231782196159877217245098470206007113889969261708146468763687151194902318976799829219694146747285245047921759134616966710844067818692641832066266636558198854686974254202389966396360473247114706894732951552154844291985897276251395758976080284947849344715964566145144623012084098461586226689322902060155557388819190303818759849258166713768769319689693532047169525093148945886516614615191918697316569310938334008926212486204375771246456241607021597738789703002838120743305355020253034241846017921782781694107664066684798859791693859821483693543964976259855793093590407439238283242797339142214842182632734740209992401210517626608457113785898893488536134365315330408454152116661458180929087885840689547271297363465436290845724121009072096618673305453256535929153263939279012504134454035059641130497373547508538974483318884676333131837339924007940697064055678887483615450158552083367531347658035227919506299393017811310056178221779286331467037801063393849847856005667012735623305784636325529824056379839835537053959838424756344280510329362141415168544155193306375695548287545760536417896398979925336698926679517156779033298092175011176101285302089113637708248364490275899069040768245283024601682902775042615253765459629589300577305224761412180110678030882797670471149023313621866218632740632685763799917728298109617909913143975943836078591625424535872648917610534709246905322847853011547841522762573725897939620393997885963193391432484271803787911991966940973992642671881684982166011503220657761778605199514634837837689434901125744954574626896776283842500230632393188177601384142905546198754719420451722844946542770035496760697745296776644090896133622183584085738456872141699134044516371985207593259922990246792877585001566382151029654090399680152799655816357744321306820061013497103064586908916816313372032393467149371827502141382385227273930303149592741912793288331030309904347790084037613656622835927428811083400592942169475683572940237251997271401752095273389914297753436255929011004693695655279902863449384613054994847198784017022838167118005508709383338055246635626029851527658107118975068359056065516756584806120274711860524828709235810709085977659767695919964143536261950392306887399933520505200801574351297539043712679687572825824657148728450931944464395596192421924616596387314806069853098697498828094955679474686741882551558487802154887845947346166755182269443886906802879137856162401934550504649186976363410489391571167573988854215934971469460887390539435388409184885625033584013691709106304186698707718574413236990713899760807047207005722436078469622652581320892926602274170099913147154121782161630003553543846113471465744295069197763877817059581716712092221912059866584356428255899993392135939647115949064351480564281060802826464322549475883609488664782948815716672485501955303263446143702664671485240869289428085122605821706561500195362466994911060999614781606379185384784357262808405158781819424084657784508584835972572898702758898832332207004356541413836003174889949631229246530535228321738419893927025081083439451853709034523280059703484308472698214073590011926656043163261408808485267993409407604877359262189886354867246561583011860142678033150658838572685222906566023484161575625905321563316439603196844333191253013437353044400006578275355115402394020562809278710647221931338631811123573807461432343758085329751363267578308725432609733906337992916430360724407968300044186826132746808598821381510032643304360643177652332550746447715049830117787089407260435297089257087403508869375182086683775747780665746384213122290656679937300286210552552010421511318474274562161875129335376254263751945417212183282419805497286927026786193902705816807976602309790661158278623469840774600187147327068112995388902879973631858278628747710636810833565041537889621700771516657989264364507112739381391906384802726966144264857658198937382419000852135779010039859600506751342058357829253227261822355565679199077739126045371751775029593888604719605750691155885197561105388437397092998329188746058267514645865531284401905670916227359440096467511547928983876893213636190683638240330140621528395755898233093712024381090562544620533860365568588523317856124805093470307792096513539749371962894458337332149286997878172370732752721649867929811091583024707305669552545384023609648186688844326015140787825211047789758440060598881065648704032304320159915550559342726108796301512718561662797408888561360650168532239386349984057567490183102814886434645996269558156075956039655076107401352009565286764130870219360491709393318621547754550603568230074445298125801313214611737744655886763700793058061023494946878295801092292502292132308170483115717206458569279401983880634519323048534067350485393896685880639839554377199317277582866608493126271457450214994000794075792678863795570335760096579007177309928208209047071778697502487228024206595321104083554140699275722575335080397302303919617699770991327380624378343585022969275705042823059943146232394121302958834613523762299086154503255207682847046540987571819442281433837266602319445886982776431575344949810029618909819959210580025239040030896387508219306211783348919682025148541346358094281636120532834836317319435515942560746547804306351298134691709128491673500264408273591952941960751988315942754808880511675152886039122906163942980622431650278301755977751993115739917296669496869458877334299360691309796578020521608105406551618453079622886477203982786542281486794230644717083480735369072516832560724639939263286562988076446091680890886337245051207764255642422861646303426144463447111346110504439611354332109447451185025295960815456939944634047205551500810242034120889057584718980409417952443401249235523789117576279041532648651270769997917934896458454321067118991270832264408502695355751428550646602828976562241729304972147386530481358352380281612463585181764661261314233286632824806805538230612809523757135155638310072219005219538003512986140305534219053289580750997533362196383987491052550139415404165036362057873949477614650911316035516082900490467634511842673410548522819489915529354062657705408071567788690405118937662838719465690681553702252694144521601401619696451795236667828525730692265562514393501247993709709263399163775537775999588106391936369015507225228358849647958479224712828609844465322643976103343999182653848265069602972436525255944834492525782049451460061459956656462119530230286223441690622957095951999192561300814341798128245170669565029737841754712273797838973317166133015409104529858500859225255659141825583824797542561927425159407610234210309395908897996257801469775479201629694491455723435139841227621020702465731873025693468407585923356589930073860338770610580779273957636289401591847707236183033382351208027558493698853356703077089161489056735894842982059759593630861773953623212508854992869319954242748161536512538342584958661750445032373238028765228877814050003408937015947028253907295232649247743810704761059736090623713132381181738280836048467883431900607781709049918150174392642098321438461804590833357433386228103490443916427801941917380851725539541352045982600724403195010313152425952318341005098626943546288174156568494608482399856588063799718559529090799510752356812324227452681540100374491968713731974689317520430558697688556296077555350961155931971564839792096199014770023803744948670797129232635423004273582813466737952709128271948761808876543380127376227857153052738427295749874898168971631155083045107805723623841121519250237879837625699290613233192293434418814280313975861553297245290207529344361811074702190586762915334636253137478666192485291565544779650245978146348685060474872803694530658458920177041743582680190487256936815400511988348991110919708399308702742885137028142217819425166423411296893719722984973193138026051486795201748176835830529107813965787669392874472375962389013329958804701076469699783269198449334800032645591941670679648140947188733363534786777085048418739805763666847698430742130650224992669386825576937496883091008259444816950300770261536410502006524391066404748518166005068107547888413337015338495893611375783726332507887745411146809621551337888075947433201421550614510234168741690205344243213864009098577109578320298523140297083934678635261442118550600405347798949283054961271315770741249898439173204076488859291133761161517342471690770039409243159752037332730922494668416461441182613167795422035871330402025141887914395686445246373140825658423052128981931808146718739485177725208013595141146968705652861684167158950205576453310595372338006777003951673746912111192667514082605657549895741161292011045113504312735478587352682260887699790001562007562325305362883907970053264541362785933327875596761805803988652669516790474299282475518221513170357487408921425362792817235348726024400254206281706700463033495835196148223360784787461556371035841454766696680770620946738353414891885863707146450411101046428600525808498729729605718812418985224554963592301131804520172099730274521947117476967384317207319810539198495528404021098409137739906832052324213317182707982990792422501325440291108743498242782719528538000164787525299259891221419987107605237106625863801986968442223109480639503578377998095582910936564618442408540230695647115233361573630108692381719974805730611095413572755799603323582630094916835157968449802944313283407078411063844788098458650414811001208637756245808915520133092635797591366205335438570897395169576208634923272692621071417898273242273479162027477060349387447851720620316373260348248443827229340649805379718626394905145634649789219837308282877885034539001259790943690789198239653136376275669653610240777385960613612711064593012507468224055090348444005005419883516181697626467087061763559135609704876017594952109441866736884570848446037999760882386939774838798780598736215864638915322321064580150176077898872784824928175115483062155420256416418886215226532451321000764326752766245689931139922716602771013039016927671289199709635385295108899431383790078249974155510078835499897034803848184991991424056705837983690655583724998714193225922020881991716978960090424061528011831948916418092931468758890904496518707821513589979588673082504443338240082027097053938381932364874155913820267464316561412085752862101786182483293583106006756244812113991511853527927067688521954893963879789124438675613678032897752658783113340931389114990965340654113334427857129558111293504157367265520528789413438000087473592048611709449880744364702853172930872789811643389352168619225708330080862213759585302718406704624624027284037971208246437091429127588155107812370200597801729209802467811859607294845287948304120098211463362694739283680179230193919598708394952019936434737807527448021143192054681717486653197750123703207244485384938322820416137374636266968932938404247911291210847728839225317270609276098780667862031024033190297122903422742999827804245979989389149909612447856027810886990929179275073800191278310197385545848889307591854678796116305542593705851184031226845094198039188777566474724298833001095733101476815977769450528089856817120540809409441223203436001692191624157461955102853244731581582429223520936030075884520686127792016528322828755149851286568732054701154117649754136913638327956638285636221011010064662767593312061691090070067054532717697580758707161471354412833620784241426521673135897861473589052006072548486915990304359384412042426031335724649169342100228915065779931237087753346179371500084986695584772846691201190508303797690002580678953981827905878296866404582287369956898403249770407544978586241478052267477854020283533952412056702457914340372517436571663380497926908403897725092309220690763824576695396093769141609462516257092046606545111175178381366105931992631440041657491492061664454984435581327971197558610524780045271837432476454018495585816035463994038060373028025999476070630387537504445748117216911720823638314423578541855603772747603299936479985151588931331540048354873814160163647941949984518054026488651454010671717409128822987913451230954869242352122323720161539633778154643238910310021021529146996203123585376366239824322967822731036565474136160120684348797915688348163714877460640774242510178283148265637362721206377108075470560716246032430260482003895197515532281817953112220091594174622560826260422121406259726937467214666756576191316900460434625397635733373479919627033129925971962155677309384626722788637496697422549142529098133435169851423282166088802585395338269503839792875353552551436840491331194434748872500760097260233274719432953159844358857723770121812602432478577031227618119749699761679163983289658653485797762393845146223393421556495314605892316589661469182596145691635749895573289956262820954025322439577856444367977903684198064940315116694036444762142712848008012368254458278725826655425824398072898700279071246588655281519523816277157040347383290767015914691266253924324859147249595836144514499164837033874499654699163685292254599242524264290121521729932493764723587771769145263412344626119544540558565249660123609597969224139001513608379813310554382615833242172812836484670430380844475421646595117464155487462434941152078264580865020336259899462544381707151436248265408593049728654378586852356261212224714502922783681764437843469299798544426489026407961400556766257008078102692148784703360340209003201607483165520735834854173950328180466817446663662630850379568902036581550752330125621492928136658976704498402822546747684256583608545287899128224524669918880647666401721715301752833823412704705583664935542476161525841196455433625941449892611361920565287225533926963147013084286743194877297123431646784438960527515352942591821960659855464544123846700370076472877742825933177511137647125699446659006157054649931511393446646124555216940218167387476203786071904999387530600526492337741514499350238930636717479506582292171826331207466694434952051198397805484566508120277106327011636472409560282805942458638988567224040881706897629978721157615292069260193403056513955918775238219800330873366174332513040445457103642527815693422788638243606929086798926564885978478681942902788575977012453025637202114343451457164156657111862327514047291130595636683759943140067577212452503635783268788146144891623170791575951926389762258981289941617399914202767594821504571780360221730944659145786192970542261873810731967993022456339344519234020274804939091632402375661758059185877192515294921208257551524024459720087684050850611547895542090382766166313374264111740252033020216565216274555239509727963513827690328364463567379208247619278576043042926311031576788823528739492196829592818442837415717208817604140167635903694746236285182945725199788308458904611869261211563840593176843647067113895883862136246441431016756975587637045434042821592754265711451976199645829449144500480646868032561833364717057558485935788063974841378696122389347910442709243780011162185850348180426187287144867659981096360743384961993639934362041151306661713359272596191786989189933580676515384711149079795028889441473037166644010670444149709819053236179270448686017715188348074982503303040707638338912067561961491955704187352359520136036836558623412845427556305961059027749462002188877676151111519863579953448382944863144610163741070046641254219230998644238669846049833014983750593635239591219683856356172063570797373088285338380447717190736557648164092407057578241327041262231995088557739135433355524141174423165244276579289061547371944867642426088238911117567638778385615814516877037667088187893367692318549619839491338970051398069422198403920332026107406288278414689360707498801120203147820767389432278175415286877475902509789022218422396321183667211742054654628496660846258793156778611647963104000470189865299863595165875886293953295517442073959457200643643911402531155027645545016162732078789212897728307925949347623022012655206474794887042119312106126391835246456365408155035674904012192232382512505409224174099045820548732395766691455748387967991611451610512281970860602919545734172055707110293839735442763082459964839646957991735398497201365300015715028674705795723268206230977444931255366779090547438450736521680116372425474881387088529001684928841449376276080384116199733817381793234349743203542324387512158897664781474662206187808001692071318482099322888695869591399457638540408333799415477606158034677577819827931557916245227589396603056215952396157261210775892463467823913301818537844434788833295761597934963504894760230697496750047056220712503912454436987424993306296778424605870418655963099062342875056814681703479036005780858951604918984039612965233112464835567508491651063998757157805562841610434547831071151239197538923965262760489023833337588554317199005149564709858396317356349339185313676681685095045989134284136239342174778767180060148489274874488840070538274979420181180643112966663154684825457242752526968956643942843771491020983607024549500534959685886345813429595997903207942539822762982334407348239887806439552147843206317091839356813600423264786286887341573028300727645934209493736167590352613299903415902517905087341674283052612839641697352791381184445722078886639675181324611264775265134730684187671279608038684436208033192489440802560120094336306951466586473334569060555253406496832160994336395920359684921197872952207564250927720311754760742584315582364874048165693068311936792552725725687795798476822387589025204046274024943390475620792000355978059631771431221851122494738229329047233276985212552801145229855814473271739852297570755277108013373941592276955031796192713740397987263701595457414497161571232153266286891221257216792401754781882304539882532367067168804448071991101232220574898176424950720234610369009767046166067149776307576151450395093973451884812100909785192143832481501329662968838489323908503506289225535274077335928781498081131248843043150736072461188706693204333211259510442677511051039311350604713035969890666135965811493128515244654512932910376757426674026797774926559678774153974199251814986542800428644078549773285332245545649740562559707835889312112305141001988714142168750172827537617846633573347177543119940207028120647569061495867623121237345981948667175957505953816423465367981841262217108584949828331483570658812918441442720027887950695110655925525558894912004779405544954850173226351141640893631261302119806208055339913840833849600664329375875461781678977076411398399615527959734042852156604766125046376669807810526720689078945030929263058694464445756281461567028998477594831320344215104284341244980184175538612272895091611099663985320570216949628151757819999805301010124651088966360986002586954024898001390419774636200837303133941413894391605224421021318016802748683675349599541908813860833314929728571455605034720854816014804734834854832217464309840286770852257414460347891046152250075885746203563191902372953096683692360029055359769781768473081487660545820337427540615241785448795375193290061951642112493479763382760544515991019814576336119726773994637053039720105213150277657776074159261715137988022602457984722700029313399331236228018908522533334946405299383497820032614695548644816927662185280347364274717013921586225769711271083386581740907014068951230603213056498750872039869087668597205238543942854685549608462538707972369285458198296137849261914697024452906438687416890495951733472942195867562348380891281757033967485605613221543908963653113543006155039635763176590572057321337772207982735640688007653749879337043695111983062405917417278553910721467502785422827224877733971072508244496345117496033670206876979220100523101937031021280841827461300584949613245411927807526200609538015032949055471811393508460888344828916059689216533540762301117331410591628020166513886787069236188147042896239493663908655824735009735241776356470077398199807039257841684891059287866609728940607674639573037627099268492464954639221475744470868746215603726761791113922384074099558316894958829528712977022823715468230876642290195687402190124792934064525148996919242135442242539270738676103671594243838702049436851408425571447436960817344157790362605961902767400924345376168630320858770423948592341779631489453719628994640101778282984692744170200484320265694842289400400159037132289935721704016950738639157755736492634201014262398272384611512337524252328980790863871761347800500630656230986947992839843539984764027694008957767125412210495694382997814893522197262630397200623853281932205993302881323929468850289598256925937423013105299592890584621380663665848318555588955745234150089138149386094966836087458718128209791193409876271216369501208189386157565489074828465321968173228448074690391506797984891306090519612694980768780867470006926485700948633393554334545010734636662443033764089794876235705284737177362803895831734646912452366052346844565455062458687098911899148508153689057147494974698839653605385531660941595169903871642239729795455961999727004733833013625208146469370383594480088932951314781499832044670666037190697052885629403495603573586575822045783535328160172043012432330231264887873194459934372100319254336838009687712516696453973104336377278329972236213232822419362413396562758702552954204603756143255508932211211068233152686224386159422047265905736954773708572186261440466966344447066227847264498433234544971392316844165828155559163768547025872987232491856412509865039880710837909923026613478702003339558357560998891308085753022980699087195572649638523563392659352147901015189957304945430869439123294609829614605881399460410137315908735642606148287977128483040411927209423837192248303063514905853931112309328840266864114831317960310986005742469542818211249363507222382444093241453037608093124308159419368738816081323838995169591892344867645343388621513729828451443090532932675590843697974748339269488431840873279856340125338396863043671101451030313020756390763533471928432557573585058096100903200268536120145810599683351163129535997147324086587793825755039107348106025927583970749249731736128554806264258072933751747849912123270390216583873553700270421171943107529692692912907402541642556005750608195921928052685680549892541880293717486501824448906955394864916133079850419080202474544808613478346839589811180232339451962456621504964361189177347024598843454202057699686096045336042851916375927307097324478011644145643562957469991941948801649688291219722048960731314816366819389039662748907081210648702411737028052513280903400804855438366806553735944684632673663372541986959435258405137514642226394606976008890011048467262270174907210753651012795166255185436304537593573640929846633529861817308645137743110851996165184529288247361319249827888525346841612385926160059359946945807211186156458157178921480883738939298507673019224160996569522673317327028645219746089868783636927509349668170334213087758280270873600843449445370770996988769579104508667837580744887819019695018709093486071706197629917709409152586169332906503564214747507592795839296889821876628524291812138211317104387674768841359636326130256156556390683676806523129320892428833268357566268030445727892406066476457058033383182741755614187005379800924156673307142396604353483550595495157020955537810198250164340572895250653613880746935074412709707617748541884151385438193742581068816542742465006972007906314326941687482445782229605966693589662574779430689259692704642274406025241391243480953442569939261630290806147917986408380967105403512897924070490735814353352081084057049131260350645892592548184201611705292947651839779576178841455339325569966811818803813139623711925548835285765106367653528314031750796921474000321238972613661237426066646241379296982717685401630234125348039691638732570347011611047331534487459196498784039511589094144154233444644816544761419833111665298072529414865858648455824483045937212538484670966257608616387220728697542526486935434499860119151214872035840129197498670496341915357062902618245501313504464169724483357584063555435321837108848735657852111967521253497670735483758763948821932805385553574544339773390883935664422298087353786080390235746881817955865484864493851223316395576571687296268107437982290890808334836169562988204167074951496935476311307952615025323541107635102144429929830501692768102204006268952738376988894644558836666338364587138516735729327115698545203535897361143527135660075804191879135854993499674673884264009506284723473550686694057703370262025043240807574073280467577051837704871006957704025283938297590706906745187189076910379664449592255114836163759016213033642903097623791550099279563883006987017551461669307113935133689692782429647907837337798895522961823146424579980881498593731347036159552416391995948976349023126255393079907915351844737829121002167480906886185602055384110986063134381324742734278437957361834996061340652959269096612596089827935032061110594168574256627283590167514780695516953805173832133901385284661964378951517196662065810582298939830938352064978785052182720020288494873548770871893958954090561886102239477473421982194998261630115640334970560276759016697483105432632321771963531348478228368330750733504802842889250393272517137999199167026800417096386237104980526209960235994015586082529999076548633406778937334542920222608670635315500778357607430202319490637115807861732688311687710823515555195816237712150697878694557902708217299816307946718479574124723047646618912943371471096732934431312432936278971893743761446745243937473845095653710395272854437976102013646824920094974126095679885363894259144703003145163617284091578855263360232180412580963958686947743567468842936865909302361268243279222078576500438434083241362551107908044057720518773906134460093750308576521109039073009815957400828215754160326942637814166017190153612233477166909516124763309518068171354957837047480811650260274167119297477724131124869274352001948068206035109578525179548445181503732697357137777440099278749550411262228201276535380160763774395734522114197846998256869097403467487549480983071435056302069232947640683304406910390179909682566134804910165531269562213735965072496865130097781229023136151085335826671460126417797069003292855200618155644996903408249753465104203488146139657293444327437371356213476758539425442164701368550874778433791731418989321004444397400328509349087045182812696963895608089744829246777038131648722066136602075393103148659311681171313895067109325556659594410593126940380633920889507776653527290922157648748666198303940302941879278342841127696765016484927701877057224297501969170987628733016197517496237802806787430290076045764585252145173094820961662869464483611334185967778921491391476496645707785151301114678220572313824517975235151380906343186442352854537911915356473130224601529517729350236968082383428598484398761842901206918083317208210945310278015915792179426067800960995535655964232142368533485083982350712145100610930384868241205775513403847673497622565339120060296634634609185100872435044156936230882979778302250590990820705687909207407875915374410784880519787974007435730556499745003230938563840105411373561026879432801630233473539389170087989059982310609701677110875941820724947917076139153774824471411340115636019561320863530445426724915891587936536407726986772857217543298158435422310964062057143605717299749410663561756653709387843654858300784027362417858407015124793191221260776149113461144495154285176205593966381706221456840047210242877274771327105959289630313228473984396138545208669206494703801308672999893960948389374718849814335636264342979727930730170351387752158423393302634784261114355020405347603663063790799944653672482060184136398256879375666258754979179515433011809513072941405187656965062093658628493216797422481061462657461854541494880257741645882683683238522687801405325265590512836997293315193697086539519850456058802597142644231790206792062274694311294230834309976258312147519079154149678230853078852763784030301026318313379108689405568618888028877715876726714105050279980391618895411860103001474191921595174045194738637423016134723753633459693293021398818255007532886731038832259714506326656737620147361248647198756361751420346029415900317818320969846486413208395862070343391335331002207481861545842729325076041646870826299066460834164694269034280751190626771572728311221257847958762785705424966294565415130956647021229038951540462901099574928303475547642858118098355257048528854690942805332979994756608727165264082917443684946108170849336788927534720699746833660372585559546489679746135156816820481688368113201075608941131355979553142678593087391563424889619786134738021613739542441288916134349742782702159334430012667166918440925450729367493242957490811512343537760942361224758663493298763235335751302071952051110019194488225963220711394562337540306091375737973448591623752821060204456219866593844233328941722439205416616816179699073217622498398347296237109879467696016757563517201212046102276065227623444507658774762801336491167519662706174612781310906351952765744955008369877149585270664794767340381551559988691242143792734388684284485166767909822215982398016893597144815224550429204289501141432781057835788136609160387710039034673178726037394513600435383939314108398044319154980692183958001712604036580200821536218318217565029594492140667742937936699859998945257910751086816539909032231872603695763137705127298181761415639272957237519323549905877975367733755487977900093625472457028001799218940234016919044217926625123472942562573540020017937448438247263984154359328717835671367217648759718428975424336354690149144747321871689082442693299783399887827462701725735846519782887395087695610953653095773925602615404026161429205630240545908125050676004606244070755991589339400744305355456332620066076113196544214521558258392688295180576990599895943060437127710564764912390478080951800364529560214606892315758576900852722157354475376541798854909648692207220376000851942291293525894508461345192067818397692129278294844559096721336331160961814280473457976753291448934340875385507647447344936422678495755329900973543964570330538899151117576820371081861085793961048188839455753985452983018536816529329927469730036586606913260731291775146027729915161943007173626395637255592571183405393103214414645575570844998308558261422783323421510698576059567223427498848007617925601591333954829960400639620405564063709069415197210811825944287326827680426239289244992679620173738353652258895204626883078892718663335691863800135616008465928008134352161887978563044283958699705248044130057217872420608304135911071535674038033464276727610906701830941029304879713570397854769903089716769501665666740067023227388879106013895960573617744018348799137611092551345656420995031734675207473077441091607057259175632388708973429484434161109488382382357156812247806965864414619761711311199227399341951089754464475377356659840562923512424998457263293830068723305243832792223305558757783621948393703693727504512433508806336408388243775105262131868728221032719751498490795724104747506459650662289444832911402311926928480213903561619648372551587563368741008028356572578321628786497707157147018064805364698905083335257534233056555943170560396584999885947549968203698156269142642351986227812619676743077611471210423911002946544858795146883085738222046124168278989880849780082990178252699954617820178579371788030781032439038404801290961713317224871229103365473256353493424788654211775327755121472811338773825780568544398549437353227390865155116955498599470487393438244891729526029102185783506583009420021289868003625371278935387191498561905494459386810433649758520409373524029359558037748654130622753869775727566331580276175316826560068863007795867916981469880725879702001690739480128372461102979654772331742196528199615074148223922669911209564796828473921992243292005923033227803082052772361712100313477636232595183386059948815123215167401048653959710433266569275013589274879703284866385994014909481253414189210221086454710383708368114603955968624654898106259790795868267048207196300624686571983775236865675203712890554492013899168839559192525069599808793572556884291830759532098228156512382456697281352672885987943276760213184423276732125661955338722722930752834867056461390222278241760059235870969339885124834080115269759126796365951337044944972444016102264188761152193346231703121506072309059736638613303491961368466981050961192937590436659628063411786467766564172232077146394321340550235524156617393772219705471510296346134316140344495663541406189909880517746298535277112594489915155412951596348240598598238628338436676275731253375954567771623161860857748610277521932516275466257490430177380652822054389521450129373467034592631891894209916054770747902244326654892438238167949175386466480174586870947830981513654522375480102134023696935482531171139243741710155728816120124289045663278911202226378021675964138012102643898820466241910737419503594703123232821908339669667517082988177090484176770403059787911013045045418403072903074404541407062529849741031367281207316112721756790628198892847286092226823945509271883515500937698719632257217854991330067057533738289603262370587248864265252361995905369402438731666289650219123888772412661011419132886231766650569227945033756936144243466996639074038273546486640754807050004419199900487532278718064500427317449219889944053082791239772546008796524118111846492770849066137725857142279217712240474630044058016779353701858111138147538661333695357177841780320389557285353437964419841493347775839261577356967068161203269793628999352544006054886980631572825360586068963214897595154230581901872981386674167670225365389146617404709274130828835135501722407851478028593272037036436936202543030645651810552018518306307875637053991578868431686592110293842235190934776026245913879414614101916846185528481117402000654678903647326530219775583612935235148644236694882274861877584437138492150509212013595833562174504968327074507632383337723346898622013930845575409000654967656347709174550422432927880168167087755593046950832784278933854245441774393634841499254654745029539776549361807001619591422440950921665589705013948600056521324618554165459658366593910138274117234859191234953524616635313473822883843320538382880633587969683681181236163991110472468338911620365868674752033954834696172058208088691494770270084696302757493389691865475107931055412846325658600788892503997925278251391140184913517550474990311757959395098869390199923081112772025677220241202372656550001024079723686600883536583670632191103827707714128439242611113057268307560297608165748029489543311946200581982650362037873088318406281557999200204173154627178445305958885784132160139520958585308749037853338644532880437207080779092969110139767649946435079789016746598970358423756215430922355834516141018080990554764180069428563358434646693425588390604238617098889303259976170739909703427386724675460111764745949663255385009319172685085677536249428563641125658854796158907258297276617454556271778940720936940054355899889941413721521587220954693120938406277452779817948649691061060547845414241130513865043164523325556846535157498141825858927505364932119073949228424020279132293671701623603488809241387468411677254357599529057027578895333379643034620752669817501905663018172147101507781404516197367683124076130485592363119042751369427645417614347181704865818883616860903372079951510651026653568245680694764934759387038785291390803752078152619557052376190945769907744910031125958810467051228398073815844366413683837479568354774873147741586362152878343301224164542164339551200545237166026051660975327005404136325479382236738511600956353139762458845567988108754394219801279109599573135781253976646002896471034847939122340138789508149197159239363747296272040310146657664890030138448908902792099686901998928557726024378150784357127376509614435981840815296888384459632467316099554970396050574146037831309335005074935163983145929542575149595866559935591505895575349455311262102559914862618845705838796777836983069669026182796252447970793622782026249726288153086292982755459585008751092607883258124065054470351831930170719348952859765285259648943745474481726493460936724810254532886302784754069598031871424280243346497327224025248853718522616578146464660613785980840731687971354481452458027852156112462233918459065616412492772348810583654714693147449596411183809367996398858588936110648871960895745382908507563886599917051215256932917990361196389606370201916071935625233768276364671625319772081850425972731052363118660711548449077641001302005030198186252112621222224031740371647413065615231703056929496971604774841163266462579994325338699607880176024517735816657769127291561339560148127047489990120178597577996663910996195654859740153005527827372250784104770309471018977423276277366567166713333206105102758427368928722082498008133909516332895518693134470408394859852283646295223629956839020826323088037080970614388505330437561094378768895011360495962140599047056848393371290907348422850128231414233721045921636644090788056564384625978723564758630854108579612971812304956037594191968765359444836321061982725820253678132482483298253252070711701017927415733550518674516500092096758772842725208893333637248444942884996577469604904852249498733277227569981226961874640630940506457198504093348813341193367857309440431330938843569489104398848819304916931251515043714976670989903114085152969441977030590250531278837338305408811066237213153942534537198390752914806541512840392499745782283359504053651652928707264376392013245628085968343276406616922558700331501225431050439836751273441886175450067202944265827319517988891499937425785629718065588796075135916515455815910967004025050576947779245279800168624432318154991491468987287403070059146626466383162056416180797098328844630423413515099629279310343551364171001638194481549127949231871245722215366314365977201484202749064403677449033231707794964508611083643474530916394810830529737842092549350494104496763362499761002643451494184332062577715632958476023736994796317052338190248928698707507761373747858552269190104407378791335013117546968858267938105866430994937317838785087561870125275464671566428107948463135486442283504858584478690635224511569853839240453174150807319587988808194406204851698470956098576870983916919592060128648035688963761853545716302566968375559827983799126230706805494958160303481555985930252908625001495207189472008180370542254526296417305937439661678029866400355979772675664606734043694949684668225293956907034110970353658136087892104255457432065321184081491338228960962526974498334964875229575638772519940438584292426008728241733740981206565922031103259253004410311763269173499386875038329030510265995539088778162960315793516762378433058361601884910348759595260568380166900668974550098859494427053828689328446088941352733974551111314716410920624886276605136008381975335652978097008841111199402022039171001947799892979819757611902819090278383811594153883468849571271184162464965242222990572224039448218527830871142099497609030955550177094571805040360094530433344568649064607625367918613105862209143364520749588388582781877441157447756767611754506028010771331455310699277037543518329814272999262512315703765370539308713003256057251227928551939186297046098239613693072390335581899762906569418007759620769652207789724127386598056611720335143568738700144881806718519179555265772068303837315337668538249185961855282246428676736739098983384885848930439331807270527216013262423002466440240700331983131525708832578491039435107945318501647983514863037722049365268964549476283405867425575133076831154700266965217623457177537190445515230230205960641617829567244781120712230545034991402915698398131682530810099385346667896074017067441519061078415278866447974124061068922625663047846164159429533289484641806292159110242382064488064525876462129816980416132725204526278323330751522295834560441292315159058152302755285621272467506118652473840752284218613943599614487968326855011579078804385151934255483878035765179493211969771156723191700125073237724305402697256566726922077350230160543789024127480799844241617167225118802187536769151856387464928948089373534151029840971370582070406849620045919927853920252867484501682651898646331039926108052739985834720580960781004191778044871110381679749120791436628824193591152708038336287990068256256417175351282309963006971045898368076492517047955153873136115328648103657148893524160962609436594517878345016240417113412888339888955347538046776880239186190960720570740136653790978160038095703542550429594179534772035036711189040713438392946267185446297455016550197980325776152124533106549687266140058638952760325711726196592347783933321930931225386654201449179071370604492788734054053714412021163335085483461645042526540900052744560856456887827190753870265217060437717118406765499342456626119596677514771776687494358055018111193499447653098128316420383477491066365085494782807955740977856659000476805164677273874738511597710838036387795613146009498170934516679890006975275281922140943566433808269611698046406702720990426649821746881929245402331363600731695761345191332770027728072675331841383241444340354853282685755040492910197676788513343759768013298603477491412907433968613696473578762195010216709042264057028646664917012978608272460937742971763240153290948598956085164509988788954216604234430122145496139615275609662865676581730795287781694840687280807838411394295032949214215360359722474524485820758121449575307759111433495791637189620804114676482348235372878216357654624276947182406455687879981543567587278185301642033245425529551125007745825173569304751334033821295813491588136678336529203836192282335763120823241475177969341813928044886967867577814861870702904941010886462121936244193952586741481572373061908272431786477368748560716846538487269670266991828922127607544063246121646800690140700443650252793268333498066525916389106730324916569332096531106743480329621386482863719267137152316692207771596458414939981895398280999752418066827783716481739196157164187260398992552136312366304960033384162853292204842579144840152324567989776551322997153420940523150475967533051425870401063012161998786189148628278884642554055238991676913665588195991304286639816220138522151410732917576824848794665422959464906081426424722872867689390813003141616676916821835184982379635073298387898322804805481887393889679000862918352970774976594546025637428502696755830741308359039535898215831566492750153978414149127143443785171296975970744974368434279953340613750138785084564858531630691395965730232160790936362450147079939182370865466593006680772478685523116391197541781547131969974737761476868513447398450513791982646216304046066057665390469023269044419776005594405973370058359241084390346260442084026648611480333551808335309410686293341519123942811247949955701428843105147098840693637030388640097299630977568335487445080552512809648707317205589996352500301264796545343958211875522442335865303335198013260507697593290059924102785591191298779675728835892719964957171435151799730069768474729076224329479090917742130280018830980738869689805047579459238783730165402228065388264743675394697698552428607075048946594334749422429993479221716960031554819251152508047668715641454024630409858513842073757129465232081534364501034694863560336810301733536642631794984216524972477510666549710676156469206059834277205172847774265139519692836845571544895770328904066856819180213825797373547124552510333893286365641197915826185412226020587725886797459046976926605840359881313150089159419604172456307068014974881518777699678229052631737985261640793963956196601072094294122209410514668602787959534775980035846009564669181389336307295392212921607206487869023840406345231348660823573409690743351230137827182326021066873508430753049385065665010032872934448477938370834592525839898146959715752249608658475589768046517950054189441801582517513544064731414572846261874731488318687711199500945824714245368412195097354681241128591581179462822463093180912394082247264606132773031544928293088560229292241119993877426925422893583127898620506172390215313582279755047686335989650347064804469812855674825576991494677291467159775868216178681278009675211969043990442501173516701718262327182980855809205726546121336045006011876982411827003734816853354157345303439901420949705173373692794095279408195291885082604718987896145330146825581413094174472517794648594962763458571160007439511649544431063613255166103550669251229105163247723467249365129536045116632855064619474686366921931767607256045665572052689004862397383868596045199386044149422870804540192185263573066757734693684491570689832117335031337026250595614017131756038934649317053998815073461965908553187527599563236939248193359466918540663040082918356527981628657607763580000252041185301737451686365536301667044192670273319828206422384805070830252346640582613618497703273350536732813043420563056409875264377472533876646469607057564257292557645391722679221838660411742228828514779024530214642033295985488841874115148190817636340176452400663475345612751475677797027916769605209526635608185162374598290434638027749380006264033140094099882693490139909580237827242048861284270237554590871398871970885512839215745286377028979810369661496420622156512275072517078438179947259632494778817437214576379401440557425946593293240581199570260105083484133913191712621184015716815814137640290886065418206294285634187524472874438825052364552738240340832674282924589504217422223559591514742777824854788057553575339217154500537416772534489463394659585348887812534503594985590936627835632910515277907537960877332951925329821485940126767870013248679401309704273140599150201550693867822663360967090299342789504875311138525927732101649153079761027308120034950580456109126478882982018019330899365444777661424366007973652756230311019588618757174661952689658894699008249745436430269546616739227123575128403056094276038192919178672806236177390990592813201404733867992524323522526372107003029579331175109296685496748094269249334260650532975078770953190397502223698862370364372977828417661145103963982444328940806229661706479847257411010865660583940355990335914189745422707888702764083822861550861259712334197239512734255136829743970521991201177341308226183547958049799413705795152502136865488174509867417943405526969307557839326411834986306732798805975572529062554963035620772160712751550592609362867595761941420513650955624472508994377686101582162735261067133036721446620869330334665684648095549088637160900996286830367106833074445322949747129416890691342478754787025576938225442473003729368813749264072994763327614695678344358991448754711055766671725007508818616157535473240879814423111436172284708322432219278589746322414419406592869997075490084859302102829815066479356351868423602778963598394660505452659560105868455902160873106150143942667980214762753440879877795337924250351125033388272620379419409167712762701346065486965503020505513511469192902663955583944159981600348113131332101665233321251607423307557958200436886532105344879406206189100626589026294353394424685698330650749996624980414222523384718031027520113498744487835219351690254290286211392088991950768843317408572836558756451239356165902295696828864487739109365779336386532698554318715125312845828061154009381399673253839286611248068782151486680563589758062926783159168631116695815098181867484090386163237170927795321597172591789595588073992731762841910142661810345055980645728143639551188606315438865067565667996397533081938731493148777625882711002877356955162566948647326198967226547966939402213264598439049971233979155260640189359556462784434583806181751487150193484312443955006616620213626559623041303528492773799246242236118795828902379865173702369639517480124417989796058006032327077517775642899558337415494096595176574712785081573754551662475612636143443030652962901108892879059999498586111402488343871230381555026946831468189127668213618954845189394508996382702476299098517076184952066026689536038640027940458183624476598688202019778980435672832970381742058873688314948474510683446928842630549520310816918611435344420514892237048213382422158116229406864027930960677166580468180622037768264290197954843326222729810659007610408358455618908587821356056536942723549319408037449351014417212311145673999973887275516794985214067369275326326397731169913116997498936497933638160938661273573241551970081371599640131449513751824227217551501693965716873143229726869409793272349639406369051443802546501128242638322634352746844685837786890906979803697545392805963651978203260853109329653551406384890948010712089953751991078940986124015732134705518943714724141765085880869105884192830389611275017166441106981787240194514532743414555140936265241581047359009445306213910363463865671882826196572132483644500348240373227941243533876690673748871048909965021347591727638932166433044583890605830737475307117274560425530827826779650415513257466202938035693264680385176998815871481173926141167226479301053981403411571029264319004140107444598985175928896592266400734485593238562450323687459988996077809554195476825559904127429145860687983602078542287940340494498857062888322616709337795762433233286015526520542839491213125185195749442835782066008858329562238818649696317753650711126810972517447701242569236596615692839490296825348925138944597079759915728574806692395216686153848010122851140796507255253385011675119264227698987316695087999834149243837352463848538879342210983941711884679374236369750157829705453654467058210671047989895391543718987552916707421110904990110165321361192012846850104380089603175816737583896002656763626762104424571768819052733781739744973015966508710955737342207368386681691071401329607635174617313013306857845893009730928524427009663931099912782275127155393944273044634173153227440597452740599446662279999397271152706803481540582489029250314310025885988524831882771399713408688853900272874484442597005250317816148482192339123804569244752688783519221795091468177482940045068897378204419718250643352959780644842335386691437789563032530417257390682813105284352065702137423508835096796053060841154044549294636262832381046024530649071662939165350957462523532356548577804600757865662838517661142537278154498615324649513724499479964659281240457789362775143399153038378152779458479480229665121703399381162062732077137523338316290551568888408491183108254006432928672024289553665359606006347159344707814657527228858821449177511120299968535124514260912631128568579972450772396924442909594576410820519411981511345918902892477047783455225164607948835105120494434979738462171953939844538017546892577070169243087686311461551902956215347524946244576255339775640031804396431933594850616541286734925600228131147140774162029241453419105196355650654912612762330616260936268519077867245119058010950201013805174889719156408837659936006365172638815881468355355541299616330234492855016422307053485577552394172631431549102139283208687220058445055290882357764732853538118749180581667956376361028975807884862574329474307439117634334387513011662264909229411069387000972717930536717639687732533601309883942211084340315176680394915635836543066139270681675653675341435600188528098111464343450210905279778351782021089422896535858087168258015411387936560385270134654334210347714034859117016807489175127296138703805412953813861979482558799130412895324581906127257987399385271597394963075763638839950367692277123270398882984973529620029277723298225614856685868101642124890763756614368355327219125634782494251146558320543205922256940245748912268001648881430718191887478376618595218221444821809309673601285253148744701086586811683609936448683158459064785512016155561823741096991280554489722165733341178319885550540933121765050109924810519163982854073040329705372479509232614923923777105006635630301892320219822569470142247041342089868624088643189826178241385212677202094209016017051075663348356073657383444610997842869156992399961381299694007082354005990289858146282676509840264009967492455610398656940260474754081336354439056644075383262162329990951540105888454947028033080091494293582204945193633784482248451321272118693295005634655761304182708399069658791469118385648145791193961197313820344698800671833819856691947526762301113112896380303281976092530108206365574572952870375090759016144278588646964643601783256999115136344273594999333137702408437939000411307494960081098862354784617939021571325319293495383747488113664409602938347782340880171129649306295399800399159427793074580453556174203536281653631616519507685586119514490756454687861352099353795700430428957148529574575686509939249238570159289150063944269598295300336838872425166839696463808431856584847836077639365723409457585408121576954346729585387877662749768477962211809404561287360251125116509163151354971820613848825217688167680360174445087605351295463728383683602685571618254098276215714620320541221226702056738166255872136675689766394957690351346029300347246305168142581769941553371135942265374059882074609252059302788132700755953838345466521204251229146061382794966704669623638330488228392267026641636729633148612416692988665605244964747838155338024372407311753252188895868078415288209635886497480316689208364833264141644139854181975200243751254095584539919599275267878002745083029525720999700175241389957226221609316577901943670527273349536262336451892277386920381287669218320775181408027638815900114721569300617889909977750492876118506123907236452526540419474895660029664455459270125456568750202637661329370390877608759396025565597484522319466687914088460189399112741635340455879305224119863144763147175355238734753732079951206827332815001978547628242726160892572480924654843624027709887949115046295208333911021142047697731890390085073390718687982580436748368088378085647542978414644085258827552609110184363643577207885769233426805424312905572524734300097593205103306377906178080117690608715741193339268326585615782446346455353433705841874997091482948897829396043275698920052970462088385037273104309968769091317381743644969657767867557388829173167499229254376374203493655075803060043779900206008135663622456963364928850249218055263284978816078185670673944224774048424980979385130435397870167531209301422931734799230638862676057752701247389597624603320460828047825277928614696419691360941835093318900307281192944891688532742512861104559665449229068123241759758664572198121029476056104503174484014510690286702378635705747473879898035104099242554024343015800872966975980346759834436174581584293159135574931652422203005197584247374372993457811168410642969628461381045605301854652087657526206790136596238658843862887957750726691964088324867456262006153099482084941652200654100128559472041005230825948083932966097849347239040602885838094701219639055699903895146792842265398503258111415507941681937400144271132010639149079790076049348089822280580868368195148195294621218760517987604537020712974415716507087553604361317266283875790266572232722974767739962237963316964368310194869497352938539074401624586165845521902542585111991003838575204047051317223490302013634859899456045881912773755032122313746126709339800789954548597849886871462711215025854051088395228324658175312674454917351947203500847722518961492251447233511126025414706632593534783351460997324473102305093683153733187482260790446856369620777688594923527351627776449276060615940512531063162281069063639411528476903882367566738092288992475091143147394028455052953507669259867776637566184620677461683443136549037372046847949150946554088496295255947569509861169346125202102988304415708415298515726267762799720972107488865136916424719522398477196103858090866638880796673946665423789974203192396859013666522729306131753880471132692359043283175373460885780131738047350758712310056353419929349501663569679853519340968137452189709121023681079024626617214165634741123807426664820431647034214798357475732117150902738885769060695774157218680255100477108715023022050006186114781405522240999002035119405991680372539265619347870275632240396356468328492819539769507423127264245155432501802653068962778224650698085117022393978179519201645120557229950272567838236933183436989333912819328436541970409911223673656605050902741291017886021653711250576880504832141517436076414728135259476650390504902448697449182492927060031124935603520974534319148043185353743685597156158183613630134630878099112324457796168602737111217118325414004595458238902350428966112548895625229696803959648113270734119969221586351106014545779449853456136086483694871348903893506824618478775310281722142810982925598004995524611446588788763141869867623084476912329274638876617787030363502344175403390677716655423130537848933127043580037745497036027697962180891828849447935192280953304918635408362395727685841538745624076297523823724058507412436865173390895216866846034048241167215740878276162053993138490325625715824455861907641250817527505078377501176304698186478685685068117381590004102742609639546927550322865658476622698905229253962786377933383870176743781058433884425215752480490272351446075529996737327741585647257267247976305204159109620790414137477606391149215410395938638228243208168767782639613532244921164330306842575516301952577522714637376595579732496860087965950503002195195844332413757527014696476913089957248081811819289780636913642766549246875211846925340818970542545794696165301035924969327821414844586963669115336251840931067714851140237599900260748152174823392076262605013325084270510370758108013341648842329330788300436379897165324045846329399126664997812413406498875161574994227419034194920588025405018078575201786282705795586250214117715377605214501900965205575897229180059482914858251859492185486440194350919366052382553432609637057996897849374616713741756017258402716818700379170849669147758377286964347298886557281761250347385605324633249363009447665087036978417385437711388431645082657170587123699814611896300627382037988499739221647360122080630686174736940100183548238050049569435721332819893879060327338998712872994489323762412466994290792655882618318532479820832099954402007409860083105807185117547853243079663192908648123590723828884836006699020716938981784901417571570667213006168498251962304796930101316723213078569100328729060604950534582119307267433669369328326628260665182938100872077261670309367686249137991122445811398555454108963773062887838453784264708224650506683453302204116372403926389051531979034165629373029800379703459613479631702195070738026501486381131387737817392372217282331675394582555455235811749156611034456936919789279079607834853817017464440063322743632516235422801964514140248960443847821937789182075563286131333690816376814447105289467423549853641048380048402327700950232965189833369007107328606265410794567912142271815984822460245505968602140965189119788600192064235583382367530240727371220654514448348356802380255206457872158087979314638687312438496447146427664375460361351839873770710171085944251969137465325811461150202666735237530662137222487343446376669315651338332309624741794237478251101174108333925624111011934192213964416367901821512268025631304626414079598859579912259269364404623424843265286203921009704979731062107418683573187658607067634733171973969601575907397443158363204167550666290165712375972371800404996526129571200220208017641188911569896581403828345316353369263794628938935545591085492296315505302734831962619822815654836976974786732746689866977089645637030991422535522880381530255190487311134805141202508351814051600823220306413362526325642045727429004966756613073127982507183118825990528627785802066897572402675298233901988341522306966842227754388134048398761961492318594797749059573929195991257702752426554536424529306319531629599182713616698617756980682972371702410995450483553860798166859328489378482963750949677023749168709467232845525459581141193560626714320830246309322827485722391833618819668388479244177453821703321776648130956317519736784150316935800029692080217256627422430030533970486044062187974260143459727147234779992176871661918280941032572013410193151641757744919428700593153658551437419865776484706637691653921501289569253578282439364036043641798758328689430818957109790217564057281957091963140226421995323795793637634305460696601187225966764541466944146729676742134487128431725969334711715258284242185233567205120874452444357637837527998325679990292367664374280505165362806697964810336342477027058598469023096066112343154501278704831402540712552484743802563743351226169912679050728857177115431365130846781760762227389735997728369100041205942123725669073326853294332981642301860997867298523658846428939819754940281117188123048903931777449471218397133541094195042270563811595544647732543960325832338368904946290227819397614014392438020372573379164556338898858598776155661126788686609431046684277354488246919788230883007912970101306559664215445007937928288863564183231366066125043604088715961205294801785023946284448296321287802329473359868571581108738718753277836533630196330492486530034475752325954882502663893006322236343487747450210508719850401929531387623552004819535808145616589370664043729385609012598943150755016317526663529785996273520368930201096503305755897289407633367880219963724299581830455962679172352793429511823285827431029333041846380622354465154589405008764778086308485916471626138486782971846324954511389451133740342932984326955620921545165432526896623710556103331368290660838058408956776771789999308523594295911191610409482279750040295710977077560431112923205397294886930009631217040897887652278873403906591754766978423051702755196866639112532354075279818237239779896455283137385415072753796531944735646433590388444213526794730804683982621280863891264966780519957742432446430299899165142844489151929761016666039371708511960156730584534585221488740308527071002382408286488826432196225735025313416962937284201135736648789440635594092526527997816266491032172920765941499505468045578895833701211247189344564491889954082402178209269404601946464463028123794341390286050315013591338732019444775027031592177301915291835669139397989604538621939167542651694851359205850404371523281470358581827990198696673624425575376513569851432709926177138378343462038616067702330399228171966674616088645606052529912370430322492598149977023512724994989025732072921320398226711181416585417972120575447975853028259545327256363206108130068316738971822160456551485852083310169912216707582504832449935965214560756529847684939003937605003600249111893203229439888769301129343309051364551991147905153996469076880551057599650465621465844643874180657836323497029980740953868209010635527033355465522560281894503282780338547700632507622420253870057771304787556405338317490518640575740345550315966203114499791935794313689038950197687866186820345502996185019317589207591985668018151683186068397330766512181167165459798666508728680682652452113073373249015282063883121063846690578477045598553724534129921999818551136258708477231928559178541738521699509654191357067950963662203064870258073005040261819735452956098776879635796129596451646175259093801724774153063970791544068671063582800933517010051526111032384234900440690950273946910779697058153371235520435711259533589488381060591687351542520407645762895564746014657218979834689729156578297470458973764922925092484162027582144125619122870261569435901394493726602835062759689827974520692879222272239946425994952012166946895310425556875307499128040275770741941184960321523604045906562597595332285781999410314395879037093786104091370852356830526377816258930740555922854430301550786344000485096703270429447094606449817538183515063383810868647020839161400397718434803076162302790121546600906170833632617747056072204616028240860797690709141458880101315338867676056372256648709687765489558151915456279739815233120766151127891897307179538745840948714534463134736999597422724593919522857425971608727746260283469377254348421809651405115968189256182313415420686063294949613514014799915124244221542676747240270908052328802087006559227528122384597594549449963017711725516455165686059267111127893382923419603652472692318817372729122873214818121780980807799434521848337372932540125285735113748113030645672911600847720810390060352537729671348476013957006675066295947114137345439043269401530976415889877900216650158811968244015103201213457680186024906146472719927573646088582589270176364604658866544200221692470066521869564983513118461302384132639758563722289493960989843940094288756476297323253690191899104588570422311772451681723029427319156762944246163393930405821310484571653174299080497791652923342285667785719785193966591458401877804435302027719967257003262334245352048794228261474287115385654399080199446873812665892887875140484280618245526328807384680167567192323272632265897515100616133178566090802878528296196886359281944211733707510837855923731659968910084745404441291880001389850437238908047114749344295320171427214852132311624757738430054111639579597795022406922979002935752233649153630832684571407721037273289639935361687575767680832005200057428870441017135720671049468184881037376349477631763847185175085086193003250687775573876989944652752141050651422955635596670593997155450985431178560140604610153754151760250574846081860140799201594990631913351898086179371867692700658144331319313727305546758882223456072824452771921842631951779681648066458385214737507239566821335348251153597417013332482522276816821808434540537729324548310681700759288061632924629046216407283687259552350928033252756117167655935552807716036716744746704336112831336388747025201015577816066128821718578009440524406490126597108637421553372535668069664007020139756723949744293845263061213952969351890658091084609467867174602134266931014237137988948573058391101597931648968608255019199673408864553176317938364480048133447817750559465025652584285473036325243875441100390244561732440322611461186894133257659863708578253285883940133854476678047488124208389213392459365319988896131357353080495775628824898025683235773594793246822374196275560418580321440063943776130430498350147123887348706392508509484722887393176326710975729674196722094735541887833998903779894094836976089273121961226215971770968292237236063010478304995836454262948032760317789662970533779624958841180095308473730665844176106664431476664341524925541864426666805609247628050907973984161893124158174402255035893310597673066457229861110008979007639396406314547729325354889068336252716184021593891216714983102445285236581017073204497164380157611715362495587746126156706919669691336333674463633449537557964642868529990169781519864517783568400495312356265139135458463574898245922938059403659509956547901790736382088805654700770417573791513992848620164659253341328640792801800933641778807374089653724170012635268933362214171364340754347980218435509123424356883572559842239690546761768446506070067989448320721508596019648350264860896810281819730428130422977824009666687858952199229787377872720952949701568681939899578906458750391504608018252429327395667002225498485191249191843066567737782780464679895909921067883049995125261892260709465761985298471897825345412850034296483262441494997501580607371823714227607905212654673794861808905048097902115991620213185377332932213911145301582349912974809292171427088979808818052246790268833917703667164843291501745072695026434206870678470138695386512623638983446372978869318275491883070687545478990253383561885972700951258716024009862915270655492930729192357726103092457446680007430505021259809485380583325033500527842792118948569078643211752368196067516424091356006449859769861633233137699508008982806618501745436609054186486153526562824878874683927651150644243879843633628543109813122268182535374944664829947139521907201546384473186737090104420681885424748151987146361817613164472851863690096849233038872330770895393404027816503383712010295881511329035941538240587129413686812627722997885321379821084292966699007992783349255546968655576430701713775557456236991758507406838268221812129548392924461227389958620030180127229616747999143756989451257589640792990198000864745150632547515968408423593112391662620836128074698022434642552649958324334159361550756015603114604734731247896560347962884442686453462964638980316532581781211787613808264979230536078723909169578195934288842749295614796916075619945775099335729410108018375396994086726215586657537496467539710373089030069555683057250782319309406067650075391152137562956528493806898634028668856230846783294857177853515188071820910179349898486995328965599911705069489324005593774135528445243689458111304406092559671943656971896816784184107876848936391569720049303667931220433728417964311459009775260737005732090957917011565215611183537412482817790868082841348420495819894384149017560594400309814827326958999159602192255101726842655945883453011912224795481718898654011054546876069022707627092876401503595647127404489541489568183085024435603655560794282972649877926260683679920825912628519343717608051583507303504831499940054967654836831375736721191034205285709147902719235211537852512421574366873235173842358286298747445782030329553152704011720645942848130876549846667733303428139286087194431984034293582737012548649194419466338539011636383761065670587973053539747928290569168769718861927037513129999858203572206162407152902636445441224498765113308470318854073520681858151968241045477404960370755226987031895466905514222113584872896514352242843064174444529052720060008204652136615059748761431846249121698914812892406466077896131351284688480434903920175336108306780391823912628201613906329638262338112940304034931195338437518042038834035848180840465008746906591209313651115882999219216883533619609007937216766420518056453694870791811400430509010615418619461475732538754525320906979047203260705659770473200421866526641151899085865814090735309937061514770878904485936709616685181041942561663722062695355830431094764396974774637345761975781139095749676669816241783283145575610342890180751104036626715963994155557581677859867617675398557867203556965957935874033718527829098321226239304608620456823917490463114579820488714709779778502501470998273721187852054050372222998613150064139962618473742860050462691535037692704063641628558594020936426275109762590958160699597898583456075877164664417863753773925527898770297334169171702955612570055775842376127753616992298436107062028608845323608084371758358699533337627402012608166795490874156941914682413843647039538342187234636622377121228755197110971471957575560782775551968002011188549059708683547997554101650233380124273573824641531655450913671808632137990831749185181872115101746492150660467429075349442986166404906898840924930737657088181444291095213414965463876210095302251851853143852919715758068770549219015580391044408800258931512440681315714154265299805414712440019655817372437198675851685998827512716182902629891617263782031287825968613993472158344077954017814210679982572505329718637433600249278750014988080634037211761236246639711662952602761263705971256462993872202913268083610356907415612907238925254712112059838737342392444068646871466031827928462917239606697006152847398498921449062044947580657297113032084251863778119683289861469099779720272842983177087948045859732459932419232571767864958179845292576923095314297118095578584650234719349435411156641911412802947833625734864657763509121253828250481476123180393842839449075867517121253721140306404178552966951179131874158523921394805413961708688795466451761697364227829132005006317025543801791750333689718547501122232688451270711741513140787503660372950818899381273840531314343796900242216361212176921024934688460917752452884696645491640657181255811471171922510296343564522186849378833599005175327379452564264134129198300796302531122314225146889240915620695233015091851799688752905027448191689130667804569533229233467235303414981755429171623439301808907579928367642619601835043543780920106774618272249935539593738177613043024324664696086569523179952973239370893104782164400448665045050221536963497466761040988143855927228347574630352341502825867865223057720405972546225215217926577913846781355719508889071535666667043228224326543851094241903065917857966383115730405208281927502647290371661542877671717933931555600786868592296387438972997620641485449773803183265743502805860415227098948842650689328742379879285907878639279682952023280659461960723144204918603220727390047233911960555083442384193274680128580835815776037955320713451883339035522321291235582379108379695036319968474611689756883523679478737394541957186331579687589427107342567812190180402389022715422100596333623740589878246827570274423059881586915546672516926975209949073805028598178077170733540107195735105334457585195825401783209473479569938202948485511839292587195620908714358119592901092599381695655861963386269821188707870108669693169396605021805912631754838924726054461084964949522912910026691166235308337155452858048956114497770176893547534847117480649453713114220843786109129850619185043490627430240998452317188148998972250940898269748129967222580623037925745141619893715412417715193018873589667300863870277158597003801137085879470589392525622334042242682404051489440606711500942471138913461731347855902321500278469245501382832317401956237275266809899404953427170730892272758779852867435685293901426587060695608784892648419554620561900148007461270960330841659636349162553045253356522015059044114640421927107252406315750272048150260114281809943847089415098583330516484219544268660940625379409521093268421059555824529498225823921692165834209709677854792237840936358422090002264013029081577432125613969121901742464509569612414746593237148907249464586490970401219745289540647146445600875581796800023925848968482265690447281542033060520473733432476492671693289536145420781937123841260902360393626891415672978739299468547801507627314628461370745035114937671361753528081530587327417477803404902473817229030228874593883168666130978852623443460553266399830007780891624886237535771098521729330653569577380408463722675182945993893382480652794909682760906835401445207121303355283380240883458087329760542211717427063757933665236330942997180284176201914819870915208058077016326605464030820875627804238460746131483829025411740380508832412074485801065156176332379088090833472804964908076150628891435615462462273647307299399727935525508610779622124954196318635875623064141674404565286506107479248479854994232223642195529509068550876250649973606262134913211500845626588872242652107018466472307006310440016081369988859970480902164195536270237618237491439615254688642818210589383429118384766411154509960885615299811899093775456066491439869914700535975573510991707181935447397669161876260418453959210269936748813191939000961597379720865642351539084148138257010845728989819791404558669284614868191316503127143583586938471748776155883919694528538291792686385298035035859464301887573495246837710652848535249760336844680753285849340768777300887059589721250429371793201546633032132054666242708191715095154132434628109146751132709556396177991828288693123522428257148369780146205090949918912552513548055713100287367182342464983502150249043281267694854057262323550088756888003195053762732408476404820097066206001105516168356865358398499764899011792526729191497868761965451744680060776066577316461702353998273434305820192087665919850734482271360542032433397808888409305496090652447213799128195767680051076795951903472616978160790924671362741963684258004837786533438794974914626393176230224737010658718414812233720721590019893378389337374202965179765335201017513992841147526173525444606559003149388479581974054872916598147107057507206864460431673769119999329939993855975800522248556618434321859203736374058845364846284800623986558552996416926076317598478973417130192604090201900935444154766226703039786973016969445146629203353518227994361991860887288247431899257512400443493724191553856307222955750768532388715248947717173662282000680076551610496399263286685428244562332125659400908822030366342075652914736532462885382066181202055019132522892871113289624449335238669567651874389577183176074167800638612969952891176399444170853287201454245140914523669772697663678701648732300620556768790495750949120145438748225830053155159285050758292392022983179765451317601247495608438218766145924217202116794559234497705406820070068632359504328047924318492551716340973207761589070240563808263211108428060248777210173034142494431839923266563504078119848948454426948977988734779135737754888336091617638478521801872784231109327176169206672518612413911611425160688712449837562422287779735019456316264867884260720296309396954267375487481750728032364385720318631901452887407575862113865140045070959684427444668802105359773725523305982162256867381390635908245313165666336928981854514419134256099271536133390257845799509617612820139444897312422754422998805663320563180223529304457195133448698312063315720792723273954297807945570349877389420330501795839999771125515659914368272596553439282268872717890181926321098086726051864818210079669883899141700099719573543827595308463412910747694416597680418412742818603095028068456321174130240574096073309959285926852616783578260926241540380016411631569852611860976943231302322393113273445866377008287967356064951781790530738388023184821061158108840667824838354460922115313475769658977427924900499776801176989077613675737436574252458116922167269217902226163894715112781263602921676203401319974415301879415380829162163595364084748836721077202814329149953381630702464876110032154234017088926408971967295510780816046658018931387721286800656639949905578744367274225038787058950436399474926886280973867145756317132529682598188464309480199174901289979674306970184170201316503899078714113666520323809952606746102444160736777062435372272656481935856261572865106319456761347793351024623531264045386082905729968131066031576660222707579032023999703301382544199224444630534067020083319377232981797208660457947743406372161544249039654502836105159856012441785154521372968951567479556095278730587672074558309471332274683418888355576173968078761113994905621628510500739297195845507639854571908409402092881107023179248595664704891688927341292660698063958155498903821643610835532109037978910305786769121884074089761900401698270382357182263025580018311250106512415541421615830299882928738705653671890759924982850288408097221052951956563933559580222550739651108094418441048628479252667699145748729765272419137389217778717589173030690400646084889148061892646319133101975446463163011086577147187092684211674955506770307345895609005728424936851300164037469717154588446481875215365119649834224640580877675652592773224451484705121265922397441265462962904171835550396074961211107679689001252491741261523063608041128488683222938217458047635382407207869086086627223566011841592510218106949463398011385873542828839717543871905591519585772663045677423653875623514049879572749431731389153471964593458642781396047209555695116821150202819357271772655866441324783028954582570551722301114842514585697951306917274271664988847344778692645813881528963230591382547159587940008266724273019496501617703351762075551053463313864521232222559403554688575019232368180338087053120520783658193523287185313354453814641674679006767138958602550183360973616444790631131434268254510782833730209629047118277891639948316757672660340325627009471688341372523307742643282270154073031865275270554188522376524715730496003266672525713121977453604938583633038517535441600531024625205075740805354421609465475022678661363914887011363542581760872369687882185693228146339791954413172677044053953622574026746239885858358991510505940374152692218610835979087244723077041616506832513120999670432568150977821799296697728385475250363927095586037196740110232670042082690240598436396500910831828757818773263301856842503823710565736327928864699250752394934760760019769957323742640589554665875757019753141195403598099932826613183644103423563115589828244588449539735560899682258877991478439188886149525056809853908798244107924534998886849812681665923989220294840231088114949361659225529998930831612783752844402054883552898602665545116205097947755638311690245129009560099191291456653847236860414281974045367974382087052195612886505180410033217297471081641487956802077316112439878484003613202919144562949917907111544986171240033146875645478761517053457010960261472130362108191375626587200519218012561360636124407166809048613838925371792973331038362617233286026572862417834988788607141815790488000311345560484711495079204383673407051852519707712848805413667904758420195097603922558491425265106998479733091420741413974908900684067073673212587021385689674632365334822103967090366854322283736772237179202987311797688771487044266119515618908831039134020661783227727967526266684307990305231412211020127783825924030285951598107723683203779947864142399831773582407281172432783125048619921622675124759292630550853001544813647716950277629952247890897780717083204956943163742504884327370398959460055412417139103707615796720542664573736076591480821038736544890902008819780658105031026879228275563333816948240689376381878071033989961280088101453588450869399881151140340961761340425887504434963141972817988329501506922003079188778454216691636756191006930530156044753414885032030192232360398347985256810134486576405376611584879527684468976507219522237018801944895815155640360325794798692118640632852357895805518326118184030225628108529595322143990966706987510164089624319492480556463327040608034922254473159869161499014753816103078754681127804154254520494629288050088543636026229660259638433643539685130889108922691491963826965871862577880184036154847849645550608903321544121479227334763481789849273433802077010824307509969678113182655005210155020629718800940428091903786986823293644933902873895540032150166157262420169795865260789920641743407644493896998190748949439966750562175308245084619356154372799694828103660830361211098292874139091015618349829902372756603046478862845343321809987891448934314110331876008199850047589786375954894917107617033751780272056747643731126625647827516299217808848681668877174100804141610092484264302521792967783608556892023837385680963423993153150023638905278644179294156579156280969386140410212688019974671443860594382165019232184668911836476772136385610436872411874062861239609319628117559117117428106737167138881502104853910958631690424173762891974364854674899997371357364504760411505217795791600863507860702533689976427488890886022612378710211145847392245578303684518193642826620728326278033027056487745317850507580085738010709871535137302231783665301293609760665594750972047860494159081854526554336673087934669205748824628484155230141443179349111061728658629022105697693774760958654062827815507473072662892143708889155707753639398149817931121675493294275956149442618233341058273262706265226775078513134302228256237636939180140027851942557226416738745602619932035830907405480300221169605207538440852190255395126021187425629965664518714971705915497029748050769922105408435275717218011515066324799575656660184377122239643426295638137524789266181478544247814751464705916949094011103661047488940897356749728425296138908056021943417919177077681528749936226972954122674379228815014974270756238583482466775923094795841485198577715159782747729975832215059198826857086425879607740099139326007121474167077828634498865952579720156431702226913701724596117364411566647518494090666229519197265255270526863586264964657593119713003149322396507110680655380766323572101219388646921001239140501033897071199136249510903049873590304094006833763861039237216199325241692501061650287586595997578364757182368271003376782118394376274212297869872364604964904749272494907505883059709386843539577031570562183939938012143403648557540488246622819025361436626900974854258853951732361344380721036512444696011866962172129003057373185024223621165520262491264137571823294190047457853327338618841546086997602042815534258847863730415597703548182494107763599230166273198501555321289009114570111383105751008156522185844749829215709586898659607037949689504474257967509678661673017327144215521060100190548448180917404557543576549897672631004438502395153650332536328022787659007371545747068219362158498552815869555189055956725491864232592188403553036410039812711833210780396211788004164654200741023409459408922270539951404284499847017665749531306799221635816208298361117112437340361017329335462260274636828805130397224114428093296432547077078334828298652637861727732238919149430093838990801921591542988925421027497983176068268408216644456158216353365967084242661260956192079484491698468130361836095891757516288127721025352862922694950639737637012661937632575160802774561354792839126202555218948504683349222264623286580829804810219613384023781573991608318177678367700686509657660194833012250790071107572764356655357087566444227305889045051347037170371568741572490078168900998727936070966168000248732052645445758852739787664587736266447361632333482053557361450617126592081205445904266192833307110214140346903745732989615008509753189082562122456239731769756560282736640793206778333733272444299712809484412807544731096689316668803918869986595347462424733157768964376169605849533010785537821167498718634299119312444368161287642859581576084986196729472371896098104461833217246308646956666005173373328787215627563116401838823096351299926171395520138861097294582051724264545777449626489750954965095975731694552209607407310543870204216396658904140460773826431827057979384452058601257781935904395802080549038431023059029224183244418301677817028174818677951050129761754691027708399659218821560792537759531673628799509832620704810241422820221451223352982946731200478308764914239265971861637050593538075007847956053950702575021672314896198752169699568408663043292989856500489379075045134922953486812112305239976214239318389757079902607750266804966236949805637747455146414444406504903568190889009448200056789263151808709179333736297376457295281148149306836525784019736566998747422961198351681690004892227449566188648012029422883357473469673114141018966450804497037278889261655340106317048486213385514457296913626896565660980496326996483072178746933558971297755286728433252273208480338249735775659690138019771555432526930321956064527258881787449931918814069293422402761660678480342610903508558472044825215327524911991110340669343429291873307015239422609741747291917457985680850159867540027364565021162074106128624193971513464872268054028252062843397081446212422502041426775743145977556566620455811617097283028546909765703939195777852019236334648807879489433323293997747004825971221404528659915444362711264323422137729781257218885566813915916950895838780211696614703070401038686590980074818991982776731397402937575377414602918932671826065314725279115297154579468621535514478480906652481769409072158979731525125256971131465171012419972841344746412877066233410377228808703965369641518814307474050116555780845146196144426793642881521884195541235080310915346333634805214834626540589011052603513652695735354776887145771461221412988870070528268425513877814973829277170891453689970559576818081350487149934205739611973803246516084103291136765175386015142894285477328031478930701923627403222451615561463651827169270307389311917848736110039340853130991759269233567724070528449019921459213413745021181045167863838816544872144721183810115170256582344047490430281752520696806616339746102997985394109974377948602445325802315271407727087454321606672808898682261210393481520216633906650761990052153635966103751684912435421372328861241618675925452672270240956684793062097428060843478920445301782991596477478993924316898134471588184801537341706875111096419451028867703298289593134532648132822104879478932523255712867831309572549270149584416075401755108523997331949695610206652662744202845384309385858273212383035047648351906892991105392819194444589921691148597409409754798240534280092458800383643829865823251422979374341430441180007671660684804210124223713407035810766354746896853244876834628966921980522659823691897100688110825081532303272667593200015896729706605375487614897660805202654855562069159624439765934443653397191603827792809719794520160965777253044609886867652623908570873407023993839562842139621606024816426106961649170787793218373612479646626510559308081655784263476737405916383741005865551760252779925414018788629584145419270304133540051256255491096076196035116019890398018099700939397849005330652535829454977314501422038171162721226559222100524991101070400852186595514743121146103062579911729053634880335755802289037062248185981562197050345262605489939875516363873559997498540119942169477250988368668886899534911495441388762424754913258573812389344983130442169687318120135898737063036341750776439688038871458678628252956883793597737024111775599989897621896409796584383983643462253805117920822205468457599842262114795995882376399339245074661847720771085991451515601543213532486584991823202656698114098031839595445605796806992587318370834734104620736868077985850963001111914539387997596173082093025402920000047999692785949739942495474732967028886901968288371440625876351010713527052926131035373493240590789534293490744492161457950045591894288827047527954497229257718890526839597210454069545504558317416056243322225455337248094325526417488670491411770588468536171936654738805740272485212616035919685020766109430307490142490477385962554256854975083904263758970196363224708609157242578236223477294229424545756040586016356778269883129058517464254424697126593754265924579178948651841377180945242176222928135369666593235809312374767436849199401400916864580930153725260301408166949347534284262413641333251481604459215070586055798627080459485393224171238434212925191859520082856906893232173003178473323971212204146027027785801713126441129194627267782449204576763846203035516821193293939479000529250895136576885715350305856845657609035342498860621145557018773904899468900800712625197702857184493835941670329886487381123045290301243044378954411146606149206155756424268976937710241399384029594377814302271446999313617568960076392398067567332096034638067372440042455460116355837587216757261426167714004002762025292983921663194839072390521594909464231490640187017876561558241861988268636079305050063092404250630283581000902557218845790339135612875650173393011705195351935495700676630001293323297355295173924111191053897921734639755090591202406341303122136626619263094869788660380813573605039103658043735103696225784571878376035268042535323649021066999582182402008185900507698312654930129724818762684413790088159120591347531051283940947940989763111748642050616670786828343252816581697382944603124215854309112458800512007782541112545027505599587376744356699127393852271089835938161531723172622296541780923146393485980359327180406939417989468263832650843037325643866991062820019591613552647611488739243310983246251778084607049852605209471919983050574374440164628781806031230878598684763519222469103652175698782544511250139071590032069600124099803495438610278787960545467442890502214540266519645304447489138400049882636856928258527383088968459534340488397518933968206103906195292596472803675644676851659885901391370600562082328518109079577242249815574542750265332787615959235266134123614001522743071905288352480105327551981717419429922605662865887488480489682403398098702087416859915094117649579258514523110659661284824406748564919665070171232404817445475170009526723607249887981145184826705848061886313615774406803297704247563938571712320399417164226661631546435992467292975505477968253616425475651187327649540399389541605785723537879903177069985363917706504940815163369279048153914715205292092187383295664046078016617571342526408746032124584507095255735933608816700159398073403876655876844720418106657254365943086978082477597918246049811961028869593628958112332431708470560755510269051363768888312980913613713887086606968431349872346975852949443691900162728854553859011788506070584487781561973091898337112433758163203122047055935265325888125785409382174255381372644273813006202195046578482094420521631628547987882667685276744113402587696347655786072623785758841156278848217673261445271668369635514600307113128239412119512832550257521000448412333177582048051116483182756004910671910549508552192511631349821263139588162062216631867792771720751176874452282730227774431047266260223975585476237371729136431330756951772865029242645852014627437537434682579919967954953894824759620481002161977278120833163049048495859921152443150314478572283486737489343874824869916103707602093682125836270540172459096055578280917742489397979726870829141684602923979314353229350443021710945012575594410144532797703297022083312105134244505796920986989557385042589571902333270155949707998526662280075842249558822825027902108230335305363104568511208358342979900813508395043808931336814194957747298201376421197394052952276077862039424000005315137534932714934120438252526416708097865378443644923455015193012933705715035929920295861328388442967281750050831051331552195162116595465491133885693910759105263174917087509958631728207274137376754093682844566990966838605245474932108996591387866932012294144189911750587571989863593907150492010055778700002227410538471864908003691984411983709911957862471776909306437330486758824564475424842512128319949211046947266785742269229057178752535441970394897465314367094847230963340058209027838663168799355415574899470873453721685040427423392849003197996369862248769034485989430762885240547055066974786643692656246793965566916977441766888396254103736496242756777290282556403505993616561353086134142302040350544074402763456664123577213138425651312477264905043351431694247776139014493528878802993114040707315155444592779285545065339468940486870047823537538358208232724234927486004263300675015045779340963104118405410574711195616422357123074870433906586754417540195885046922603541093957316440227488633911655563949661449183429462370940184835031426860904388939692865352924758564944486499155208586645541927310883579424844369321812707861097347187409397547845384470459049824066738592949201913803690928572205757829031246966443938245956405880208676111790697649090363263057713274182526310035802741176032125047373610287721620315839986119731829133935702838266152454729019054320034172776300156003133720503065865286893084600279184290879792542701882215483382888214565638378258500777779317651380685008559491290722030390224888076899823835223537112053722323928412057459176431812270371879638723946817885016270433677319879265284548857196032416973167782232948188031697267101846459916863932364865577437061959525329090505174727312179361849846582259688343807661075969074702259527020012489024397957347071450626789755533373858591407625469504225853066023962703071060086729076016240562303570716478338918959209860265985013822331614705189653776952693412881105783307635310194482542617375764156372204031252170042819330779544724488774922626873865444001940033193036370831447836066378739811605035532397693167821499384039227857149379661817847666782640475343704783548456319178959408214874416087488489797464660579751943493123441999339741851691531665269705589269543091567406644165692190983788558883679735807380523313807863286418047151653201609575072386999640848995918959553943859142034568884423945952183154803337389474151300877262831736766029582725869215668084687192284876030136515654846039421070096153621462292556473981044828382149103883525883586459488998767167287246807755049073024314625588099366934744918003321298386989715994584317472275758703862448168403391240103229782575087646197932054823757973393784135676857264202115421783932290745941068021572391343588693505554301208667854744878315185908829124684556582706817878086010615496387959931129719714825851986445140834223732123957042290973751945456672386222654959034210899254749288548249865612622384746355178343657353707730589947057296123419210079753244663843446622388376822147375568096400080846702004430591956182139290192181197030686214738598515295923172753493976273269519872914450242706979509999613059514515404978550260830861760051181250323378677101893534721448475026339981328535841153589880170065317814408382865062584843761627827498822700914665591785575054192836366251812568600013995782159545639848809146048375351510317945424723442824932891187787918033700006477497498960035650653107181013375427889601396638010956965812942038203285595159575148706774592346044899191061960407444370350762174837239415588003568878651558599194688282739223492593303114286388012961331445921317704186792937759903499304718675866124410602834902177790577330073249382462252228471677337642235078403940593135413865464324548791246617587728829012498634854913806545713454681771706247379992148556698927925581729970090829476056188342359145008344457998563251594508548684931001767725741086731303670357040441372130963370815081819486983399047199960527603575173894951489472627956520567578218664480143518517446607968768018798155165003073396891639933499990125003648292799774317807926397025467745410582444871002333654013069141617580188762052980266589622998815726078863379769806499520973742106835127800407367492085790331661233905916261061270082252635336148592811286434623832711640193424248963385263630070946773435906101061889049236152377025454188861998713031221024521061169715931994460164113408632686714699761986696320017843261764512865852411594567212500535226928948400320370711383740252396773922446899270501770515685630995347020115115917369435672051275552554059269432048537001570552287631222672338975707502038126103212744293558282787401349988519916220798799415801641279354550432193023969040957230608612128823643746964636115173533129437166579835923445093069385059495381773107329110617733654170800710004380084200726091472271103647106319433712785228435548901845785619125607728195616462263893526128144942178717830029946165302979257069501261341784910081908605365023185997231110512021466078651885917356611964723016436116351683449801405506019722813678344782030626749767740869120970149418892593384551677635054633936259990722007736547835825366120280695413653733789513914345038893449527013783831827543288321301625660576036817470012552149612504612600977658842046546380366913511204773316144534589317660716903022369180042513539018981176167327715448838108035884130885152954900117436077928034541242827947753402616144188200420133134408947008932529789369853873525113073734001733293128644361235809503952834673317188499998355000199389646031482806603235900594330125453037866947915120446169743336847162171198697110330144643229743236872441917226946021471828958542448774390831114358761294095271390124010354407074105638896635658267946866368536156155158362042185999245955850283609435294775505369552882446633290048769361847581817964282918165561687340628385422827513232458565370566125820557493891777435879069713970734452217026116526085322432476850354744435829526872601636225540066304078008767064544120466153528872781137829091634462573568491774356939461601280547837196007645475020631050839598486411501531518571901183498010491907541141469569761932016224328970392971308220213060500265713386680281282900834142780435125404553085453927759558592364359033242659908035514308792568485601552949870325709555562390191910990287026312602759436273536689031734059475555350769064112495957872933523051995538849526391537207819896207443536080899602141946366953646064056502780905749624869068637032122687079163983427754376597627978421081317211095653670272504555787892338364816348717173213967120545255818800404430563258671224842953924077449862433075352004697705039339682305984313073111191553310746113802352259594768242864711942863111795386143539950036949303384323071848163280795835217292333180587866231081914932956437067589336756477686932223045291590285550264901022202853097959477628332880106500012284790412198433719019839431379963488440026483678485475913278592076995827896550294115075662980562330648075510140582889181465073551321434151376310493858158676261101037284515922983570536028704869328825756107401323607542103706925001112358958056251055205539104642183872840828994592952399804892825509717667135626990044146222542601036203760251706745881860614308076559346836523848682609816135169743121256988125362368022070964706904345547153772517512737571123658024197807370452233594368701931103500118518209995515440182853414352001145189978084938337859570223994447600355632329615400901379675626608517559491944519193113645267435509422871371666339270676278931436642065535555858419067170138496295244896748243526176184718213619105983950479973056875541938687956378195940072832213780855470424358169711560630164836916951526884379364717492675424407412194466899431586196674137512104691421066937461773648667207946497194926708053099098548799386952016934602993483184680105275116939467219522631072999343241742595585883927425300750230161096790121665600570498874767196249096187634017930996024708900583488310544163143548237167728395697840134516732617772970445113604367876953374702324691309746096506509774363824992087626198922541688369755185020863792668941049692544020972547241884213903318035093518385961873561754318683391389109360425035937774359072722476988339959726344860478365636582174356308558631465774251453880394295350956384285160857013411169109542625264320487500712145969383273110262534182093044679374136542183505011086100127712214776740716893791587139168638267062773139277055169724184461179323860606084058011617347770966462518773860556469674094740048398591466792597362481525660489606034398727395008211014425671635541409276852833522630796667675700667961041943654441992253668808212789446244708432909247891058050912648491424409772988044682051594967603542257696714309337731986708097450165673529974923911370564906283012706867438668850309552316317210744259803170914506757926164356690244514104130028570322479668382626659452742362079526404431239047698773463362853115959809514881566420620590388313773929462563565619108933577931625310936462570016724620305138563674573135701975285327726773398138288863458161473637957113878037783876317283182500226489923683493192579960255183916567320417593927344067119050170985576276451308772074039033026582223689307851908718129301676530229305078887342650528909506043133807143737526416770024983856749318971634636124825825445418616718599593046009228713029488593222937761838088650949668597234514272285063928701128820966573874566708494649519472028047315803042326744373662360641613250820239799282761114401327471230422903861411307295099747066972386843322221178089941291035627788666583432559830310388079020778551330646324578407162371788534995887486907632203280526641929924111542822120957910688529386375399389044682266429666073219690604166669513535208477134999387567491965167157437395908050352223986185122273789467401216691453210909772403458120299450293550511250104524319662939741348588881625624510571144734454428034750610584551042508898615348830562611691494320502310209335111031692174548362754552660856991352430884667528540297306618971311583602335128578384668857063502157672747946652941634699068795344878111040120198888170330640602950480355101631945060638285928444634670332513330123827450612371118386329842051705860867165386936654986818397346243487552976486871275675964899830255847416603141207747896860532408033554382309465263302911102190533689015974133534674145896574765414859594229226274068566171245074037884471951768434455497748867847834803225491888867118370537757989178663885861965402783380692793597406942295804643984298865327744119222035673766044635197499994479972876007058180518038145447657391922483759434433668743555771806704660005110447623823441130525229451285015708484564125473266827570033086333715880275792134858596979048647670228616892545729977299326597830512928963527978671947996841622988978069988053653287195420377476481908919566423762450902996706382391924241287606508838044957652538304836614703240029347111339716004838183617455136325532350455389688509469685523093738445276958435391627412253184065380113804939989400159700118555741831121392584427125632119642641963297622951564893999361136637547377929630426449610167718302365086384527601700428263606996094880301256239925277883840093754627393220032324961524645612300550657165757726118955444509969780552882393287289387555447204812155488016308779665470105949366513275370329676526486197606914322184795600295805567600027339995693920113858179729639754309233966610598076445685579246880749808386821171453060703628770813537769395546631125622539272420246065215648286602472134921317112513035148397598716521665714617446104844455842203621080311645402575511189560856472715142011460116024216164663341264855376848733636683496696433473794881267412145392257888155195758270602752312082162871040009207428168131184829026944935701605085954296668773103112558904018705255356333012365401136178480258500816352998860195045539518816478519805830560763318665410711949607668618530121563959036757491261346561874300507762901151566306054060907249629843079451512941028891681742526224858033787370094135903646806459600483039397746722306845297332025663476261202092712024073997236209562728309469875399998900237373970749379939481383905555823867827626047772619969934451674533939788026698898867889267444495304129624982631837910949920464957382397940099325690314579612525896587217880972909945356544878131896300409995434060460790782490144763948683095300359726300281255645480087774074922435118536896415385569129416781080757137710425186566552919852209510535600697100254461489102962566564468307363727908658927682061752926037171649069821390587080558762141530055530536089541062172777556617108928625334979867598518208197197052682809986957782163487987366363405817053794334996032693164681003184265634900186445533836670626290921780089613793175342661840760453956245107412565502504514426336687024398493353426214426838588662669991728970202650155391880796455302351084297985941760006414445255039311911755692613328957056300331615023070668852779253597949174080448927839371091305975357949663749893745959387631571944749643381205801238657230639235208496466526711969303289022409017831854236470058222117855293963177245977561964837729188082100409273176963687627863982441667281807110065048569320189867415893493644464148047111684394540458445229321818547805462754165134091118532832434613451605815822549552042217482305110340245175584969065642690878327495869899372446356361501594531439330658739875737975567834586362741422723987497622243425199548024427962374258268857178202665020154940926639065172943940277935672946358371164445143914452058381338825758906761175702560380034408545090933666007646877296290600651014512308138762938212482089300971319183438342245659607245329909531305958786381316336478618628410547699662876329485704613806305507881211296523187912148432150001571168305470583853557582498031408657937817004862510910810282051767396621582042846891948311684599610293313549329170673788354631689833919313306865109598924829722195995696118587046603676503336820395627684665298977073867798102517510361004376728299425963164907044577784461456264868815826602182635144513560214878015737565288313886878921189549885834579486389189933058070668687797259521625239493130488213271437810233377786504303840033802705301588292906220600057454007953351069505924662431979378821306535970437561930995317580627585715101053528749141785941129341494429950199114251957496051437653852686016117897171097682563765351544452297709622627665460894074759138744598646836333774539208310773577631574086980745416516222945872909102456848105950645090260255602074099601084200447147326620298026817765980036335236999237097664203781283838924553972801821012620690298005018045203421434106669136061866704950561725290924034170790033421348865935378939662211819221519613311013972484057040605846881374927735958063644530632997172135402132730131517061438888969281406429353950416018817638027436112304596803658533420561840938042687551632368279957609701604815465309456754557608676724027615305278876872620374471930431885799442266259071466960087843659312536388286142792320978396252751140318291347041781400678308014526518967014584862741616551144018368418166253184283877200716624171598330616523223733139414972922855668838290480608205414283619818723320673602730732870393907762072842348516462645116966934732735481069457474047625942809567143753457699266798164900078204462278195129442030011143473258852382424226622342041410503622556137003752896939951946606344238118823238695799403846585377651508515055031409929416622423402139990560723671177435634558926881563145844829606938304334709181491395227949528940030191587546008345434796212516969278932835118499041267917011885054521418860622743359432393942785754870014677349778360842193111445165505522851723345395764436306890206531719420608896365144873432541932976709285892901755505035536282762826412598018489454430983244048207850766854234909715047864584128305575895521169019471940000520102776810536763971769563443006297670777362651459180599425910537164470178086921746216080333013931617925742375053183958527869603764525645340697031472198804413327529652678412064172090455017684898812592138663779316967758071831304370548763025767828964782556337285291355378239428778971426860620556307008860873406105117549068623548238530112900405444499366645929677641895342301455932833128279370977065810507063251783440275639338120426150056962848283558623120244875445594396351457003843952877274816303428653852871285535776101195151742066651499140395844469837875241380939634014100531611258471240621605767545679334049396478110463979560550738625996669662016833872524124092620787447933808189408009506634833539730817699871244002460930531534514223336683954416393736898191193370171299407886102893354218315778266705242977234574697659013000521041417375921164361680798625077386255994189777857095764963604513012096957863587574619053750744734610796830866434402623603104972660511456615439080395527860947424927337070876350125722632110435051842473159959503237813142200114137985591020660466819675348156515506341843891665479343766087724973497939839429768923137473826279347931420799224466433098767587352946074549215450466446499604806162092596644589668936211463176549463963043880070478633643980885795784167562542255684016887564291349368085946848569426863596588495190545432707177613442904869280514940198058294262533779717917584613576119209054027931477099780533446646477739790463963700213315800432174775429190162810900817393368345560020256834732481366176903136210719686533888232032262771271387830853929219121940495483914600084841740511163837298241020249030850518873106411479825709226995380174846993874411923373745424584931784012091074592164015744712260501854700322300342526543618827452767132478487837399145207262095472567641223215493807310109494366708918026853867562513172099986423849756764902545796751047853598224479361862292971520547240278133543273774838248415865475285895736279496083723791284460149345612146181940077404943295800565585234423106863296491543017055034782246309642409238926900302759501351770425628732357347487402042866985501364411110934027716602682426824234806281560594553319505091709195951270732056308877850676628035288954257188400467531306514514433310822478174824185802722222685044579241070354136073088942332217226076345475638391817996614443183495544458747917994893732633941900159122995330359011422204618721416084446659486502189617461867924029244097078395020261912270708589623577092727016947480082463564676867226559395678773972036472336100141037476073807183929737990830652390292524655069622625387933723912040067975487092738536828883484283994721659878978079664520992221139230707920828159654029080102332622310123986376591199159833307855768234903636883077011488090095139784490392258803559294646241610304554508232979109596051082381182877605382780394969972606732415099669202717130064943467434839821228536898050589615537091872186945289512645010192195132589178180019507079467647665262270589582528299875251839521315873973917089963145447883324787611113435846857306604796512017766787625450356110823910725809773398779151290182578800494404199572205908489655191499360563036224279639993379346916628659008875029829373172350634023166094834761827736962262772785483949361009378465006788602080114210516637219429509599313011941260007615261329333772110373600903723599518670083864162184159519030957053132819254747889732921082030694875085256551733055555518530553565589527888013922298194576824554900224405991182074190708391952493184899693561411372980325663924341693004452500377107557509056178805969973435111744041080630039102347991826048248352949967817701400481415335386952272585882424104573653812982828851321823852157992192867192475159780631911368207366219234445102540999404389891209805596530518895434135294823464920016443055305556501243319335592113471851107565617575353724548606102770618804296852685309539690125905163643580568345276049541632516759795330012611991491052401381126620504510868347541322583477457636138525688115841263340598628684845914678644053988877654153964539809912315696463768052101692311129035619557293609628154924776092098028471350660449449583224896614224427227852759978138013944132581308153035300940921436748428434376957918842014855121967074551970197026964284770756301104140708389410263365986971950087415407836928360625423130275607320199671757685452170668597765669588957809214910321775679467538048312736590668582298452991574997005517277245492479584674052330325531783206376683695044752921402336855072972008426472495545668811303869957380932464374589642992786743946268643377473277092400151053226630346773070558481114760920943314961369821621605706131006404001983454572099066484412579077453029017654151559023421372594025766781116148787672198871175854264424237791335690765792864571149785762590282882384263200209384346597683882952717995453487000694646225110901507050960276248393496471519977032911577029103187410806493627997462692442010618357314563273564637922759436224044251667323544487750607808217313082878403197326181949855693833227518342589890948593629557861713170121445374645668088220243052480059487305851689586741718376477681322503327148599602986131149967167505394712272832478979356021705366203119552921125709873160529992417921919743071943239251204966521378059910358027581886411431378450301226359064373822580437802619004733247231616774765201951675757008218428038116298523909052209378368111575152703036767489474986933511882080538769156154481298176659779223011960940589010881102559732523930655634094430934459510029692297515968649458432072989895630388221102599591722499579053397248934930382882183089668605567012577496748587818217669255042939356117575573677955349545613756193193410417199116311192335430837334437886512070338294952464143966889444559956923959705694886872186691059592304467646244710202418482250713855636390203456874661175760628508506779764502769520820969736360874610868122293411544744610726517317340545125579587809911296676240612460722183984187159339760633179618082251077549144701231310715298343276613828421737464179864848016342497547445640243444996442986228587362117949607465001253053767295667669439491837009183873404234510074708989489801151718962484053439448718355652311606704286071392225808642111093031344944407582305586238646583497619523461250517215862226526394996930130136806186338768986522798356305760320139074649217944625730365163085693948097326901721020652341186044806265349594122484796945688101329091969454684092363232960604107613163603550033097446939221669568852275372004852626816517990656701934067173522437381470857513631668212109744419636518069075827896490335482739980074805907686299475693346528994039376688506024446388221657200719866786667390837127247805882691004956182054391898201811238051211331602505053019238577194729427610935971664731643385863000873516025444555162460315732416269675193862838503265600322223528086192238246109506940357141415921864590104758852544934850237515028387199937768521459550144816806745346393910318881585040883286753988031815800322546702126593813254096374864875096794025054187263310279320816212436728660288633648994322036694151649073694110563366526930991442609702224656750784106734970406938124772432282073261812999468760196972525023255829690878714548895116365049040177107824955364802795500723933870474788173853817530153577119542856416577845018404777388949955211833996891143198420282585925187476386374631322357332567122308381008620108282395665918072330844738784259692449695013317022408524276669492780765209794846957116823279190447436280670791314875431544133422455216435584773817425896983537110346062882531581555151403851086347147774796392625352659867472881467742546579064700315412136974396812297313993458582840562051480412110073586699302125326444152398227136545611436158349564385143828025084121342238672746600792947829387145028470475755599260414468826604287233591664797722432317084402914095636633917182977863904971663138944445800526881731324342452684157002434662602784963380707021694561662490075314132113337650831485648965886960613309706517013057080126044284974941084894185815594468159524703599932715651820378894160005128694886030468335009278784352688423096587631510931761619813441895621233589717625136425291389113112009195843408302281170163083622137318012826827774670723392774942299602292855941653382551797455087594191558178787734452824420760403687137942636296988126183739815816722658914544300292221996500022353322455228732409959557448294286285427102754437455666775345154051507810862742755325949645872918117150183700425830894548538635252501084328794027137479898545971084974183477965825725585761902265535754177767633206386755702120015926019558341008647151492781262972049979310365070446614637017282862988779701384390113518104281372617340238605990147220001270429195819652147084423204408672430909472119367231443758255981805258915170228728661787648703117092580271329367314133626955158888860487708236948157502953850267692194125618251942356427401020160439930728499180161357794010752851989921506530802309001787127870366849421390078156406129431987211246190730280445707439420553589456399097497222576684978044706018581659718293448611300233611658734582245721564751021500518175458784980356767723991556558126321088345851973236253553206046041240439846080932616099958200902404339365382419533390196942525764685685492461876389663988032112838624200145319317632519490845807160372472637320623811234284487093872664268604274379408689559385934347678791575801622279466251739277290341860960412272107662438580376173601642749502269069311976846615829529120103350075464456724616991673967700192286523900642414526447817551170579510057819337531701526762727899460086443236049695075876174047717694456988397663666927770822574382719144070204389641036330396990613322114418158740400456145028190929674153158041391751165652028746810921126173692573986104724917520571332934114233577608279278043664621010725546720337872237419995065698121928527577107661297887032348040233958758827898540940317918985917278658768076061332281586806764766008682495608487290366296622967622081311003383689794152528281502716025697078374976823436641082777724424039002677232631794191209139173979647313093678895786168000803419715260122674400683407303351005119113240361743424177171567389474563418965055717362662118475218566402178475280724783697602219178288339967909782951508530885615139690873847834906773519547021689974583925619313814713223619854274193597754595006482858686207376418601749518855982437038917504354543134782946856107990871458162189132576898710829861151897595734544781305820027096034088892846109005084621502125554180199454051499465857241309485558163345873417333120782613244754060389713416297980145494943019899389882311912971261886582026261592752293305631766783178639741244955565438162545986557331075120050120585909134399753230189858477885152600310370205500772601793090906684170427599605674217729737652357697868743015211658111868819087329528853096689293677739629455953160539049376257432196469055943634929395681394646226225881639155755101706838202622643083086778271667446179085662741654113488868262265064029862468933489401793561040924156658487011978620887795941203676016352013167041109961561179092528836939200003758859845869156573851287889645115610652736305710623399736071410360618697440986042596032762862980782056855865802659814839430890423308382812506037703023862252265014285836826279524791952844644190938653152853542900665003114957835513642337278954661325355414784566128520564262813023194236945188342980114300128428516334713753729893474122095375439736723777573359434352628370876574262030281734747135097327866334487368541263705671415730476931615941606722519015499274564693807428829195669638452576878869638469627617160800661760654981335674971249366389750426443483089003771378793055444768525630781883323254058559253906817634400875109163879494549994420891674918324647903509306365021797793150094311003694568002033818150125208809137647695883477684269553278264145619373940145948155695164263287819373415107330079673415800315387701411617780750935788456076210515264655262388867867190530731282187550499441533339463493536087235709120232684029609272665256371146926888520363536407163162873563160841334668093178658436664649536344606388461686384967471577322428776035306641683887045619769307137807949072656855492294105858367599648017853290718858471025850828686300200489980627871154938433894656919925760088696205842180668194445027606891793199018608713736394809979369027753677385015278622504022640287570461696641299165693030530202015060882149885803181308623030777840701974729286937975030135272057514722208518888009639303694085263541549357549965082175520688370755678230686912963831113178002318299313950387262920358995313719512598991719349840776282224851220590948454225456847754189759498295116498327814919476209695497035798931771115600551550165084251262990843770328220995881224753606585202437079125855869006862215405707517069973623385851637466061778896934134276226834895019719559397332965470479945725441108843915488280989830680133414226378975956633176870352702006100255679123652233862872703389285152908216133404448909944875721514816398709267428094748815377851170032945816561145229390965885169727573725016281094096183794954572466751368765993542038065718990270890013794190269977388012949767116664837874788856291199191767501629744291431231738457198454304017369731091943732300141547188998743944839162447723947198330665960502260818465618140808052705565387197631107095710171110446399414926878994292769324363992016114927835392004755322223304711528424914828735741141488882185953283963558260864141421442333337952715675041650147234663069698944617032402386080490194870766022270272582795937846177832318286891061719540910368042692521151626322049935211648209522705686859802656638944642510849401345129256372303790063007099783234844977272204301233985584070931436256847463492103329984244129662337090591554236938075182926260024771949540213109382995565694612569867730781183769163766118829686247137286365662091164428538626360943072886158533866049893146781018645846808100818537433366750882610701493564827494947711006154938765880776653978354237360331953081824708563187281774104847417648359128409108590127798609513072309593536403528231114847806614561938466972550478318380689870952230337424957696495634269935672212411136072583977775818176548762917421310322342293762177262408358466739544317049911661452866079839357661528890113020222633366219115110252730344642387996629853426957231686012352959338565477087395944630429720783597328989643087659372680505759703322796807659833213701456037348905297434836297830681558851868920141577925323688437719284179117568442412966987179963347803102095004741481545472141930330619204254333173782225469966270619071192856203215142568751947102612758246560571872920850641777797540909877413469071252518633142949038971898737120751733887064033956421997073883993952301850326804645995235656548825076001116647940916089836190459981269297480373259721592968204382348978329624866051767548986981712535896357704325672037021706803924977614361899676578933294168032157753143668287276045638804170239946563696113501798408242684601587724217254677555449210523958519233497952775181345206661902265831183326355160748842298291813166767644593437577683065296802854203554946652984050134712370748800186791417692216482609850739973437898232142161139064674905894750508307878223706587977853881298414871161291771648719360272934364444014533878054954640545142519479852073989814115300726473262178453275300615769972186495968987941633927936961533671191407665455872339406587593631572206763951163207411771489826154930927513029363358368374370358276585097227715247609607815788039822039092040535631974721039635923356725925606372870547461632097736064303251397962011069176764057157102987691608342779630254556168928803444712938512305418755737246323845181698608557028399597026441482310868228943969165127552751930022072224592451721697111220301227311338669004362384051913061334433706168069680111191195451443208473675627320179945790253257767460211542123085000582963950739751468135796720317291566738731990704148332179300057307952916444904315861148878145653685283909002822555591742208660935165287138071365591794269718122228257625443713230120351408417694057829013080112263448147157997239698952250666361150851791370191723068094469908875915992233473712093958982245177694046451020708695824313179651230589268818857934697773312921172582243703776217175530598167262036027887480772116007149603565553230870583379227350820735877371735833219559382654744500681350370726463839395299703755508421691062556128672580558041897259151947667310277167594336491942059357247871369858220496062810265829333674116954916161457333831422505836774799717663966260252441307273044735052980632009264464226381331297447823951825367086759899482985222547967621391858965597313751729213317936546116887865914375627648080195513904096220145010308002251984683900129062779591074496071040545937606544071015362918779686132348123241849411375509782343459339673248833487933604497392797232957838474107187226792522742292991998485030451839236387236106390680328150015209087897832418610312189984827212065637199548181880740454840149215632759180292518104048580092278927110789907507950976789556575415654210898996472443806817028981823554789732262264808638630663982919394931114321264563716933574115490796340250847904507070173497347019635481378221662852429623147440492835820257532277442615042636843622336927811411778872208210519259339775771912768570929215231470198583353418768125380194511092146797641973096408711724245609717048205781455902989823697866871546820478451989759249002516982076676453081160092724078248866918913973360130723144388603221939052161667737189538833451478631483135683403300822053999501636244993798650762885993669839398268392154469461481076589293387040046206748834408591134274626950733320984699500011473941724251299984583263062626860874905276298670194333869273934097077403443470178486912300555761241147095653927680436382347742571309291813994474768878299590054708815638757948014255648682608398740497072474795140051334806542934953419784115334393335784905012933518943884109099333601147439387638666761784525858338684031035762972658444086343558145091685098647628935651289994205114321965948198537011579793182024967879604943643985383646457580131654921197196037990842980171415160587654341636344022359018926010392791112186267780389997953537769188741848179964006076640412796025137517999208197470345953094028569783418694841852549817809321270883865044863116208197311554394027727559310890982403237171807428385301718924585447978363475817496271237115299196323041720496765950849535556091788015762542061369564179377530864789944745300885787616575801300446861797220912035540441917886963519530498991148441141114581647080347078713787115279695989882396036036164526976901688281325981799639365202757724025920386649824820653096474287660859165468837211383154771163036472735475184712669457933837180815778852030361207850779976768172719398117075577977046536248645507449130021344086960787233942760793578500111483554617428920616585558561020831943925724243798087642368177764117423449144876271223177554754564384499189125531916689257556671588934905255785810654584146004783466630204156246781971375792832415465571731659485764194613766452350746963847106963721499951796975696951705628425194515417169807310289304959307138101161490966509329720178128048912989688559690402344177695856761604552888311182701648682907574255069109717883838454130655395660288789945235285917792201306412788098091232864250888479578336774614656801574260572497795671246424712398835250214943359276746083089602693624441277935142845165278830701864538402003072190325069351810056066073797097030155439667684048291607764656683230078812748250992783793324203456093854333005749693851600875499749818581590871791148071791850868519295226052318170389742100894364730460065111817161920629154747619543149915568827631700291415046540616514608124068858843767331601901923771438000192135238424256421823009435259916984597369998709826330892692004580780454950441686834696983536765321274261168105178111742320590981301055237558640351293360454554318241511009129598572169074120151190379614081983015822100132078129925270319982328052934652779960962035500800588392091922793107543734709188423457238198732590680149386206324223330871308189306021125089259027140816011601120310526087117556587188381966557590731091246261764196674508748977529967466972184683439109994452381570133029405693380047140149348381689786163315135073230177815389084453796152668332614635393946262939875983791942628667052736260114319735625354305012485629235013976193161096991032657618045385103903655576553259290073829063006381291724481122565951214583904094752174741876996017399480770445181891815279473535244202216723173690270200465735375871621419095125577193121768815116757848543314983933360141896884430518410908785173249989871168842437835366768259939333181133159577007849535078289103704657684111170285010715029919415808431213137141810651518862523066059889046162075788001788224827596298387263248379574836061889575856870439116536116743263767668465720641190215556854069774544989081665281475912100803002989310121179315464628418229291668754047552566815481058659474267265336279007587833388538929585114076796994433772073389768009290116143530876379689885088783635869492201821322215976256723422217523293635763858706986891011834473584402931675731732063387892601937602636432150655914123995262241257970839764507383871111122699359683743047496775077468765157128367517448989213896445222307386752017879767358527135882694549793434794954706229384768770893975284235791699104625944355576306104574048007310378982071997995961331169914557476767666616089078634467495992241531499666478542223279238734363979930807394645300799934445806472635583140482748441927909813518396002539128035493566325335977127839916295423139330552002331328609033168642454188619800549204861360109392014676478760831827633868685775812146096930084231882650772608759223995210069992468796172670700852044855283739130860173195945231231571673624336426387320384715948019340970539283910721667986956229198777017413723361584919390652178264276012758937616893542586831026582295026144649484779867386244099946966094151126248942351217581878199196072278285993997663548860620689427923785264951757219432023083225346576787789859476314442689427207508161404922052010259959016641323211461148044045979386745657772481415282615065005468157761387178240660176927971418822752580769987226571898512669517144553705008030437154648045382465718795894641012648873270029989979015218849198414584139306988937433550624900346923566671833107677788738973685690048188368936405379853529069692029357162227355319278571479776688397287290012356928820749987973592280440689588588571811940396844325443197449622781666082753145421039363769170959081441786499463706075944908859616551760904767967272216456221278080887749351313632229879334185879963820886751091397821719085567152389051859598102022856040501879160608909798058330599817171623732796458610903608065057919053348819105440544166236843335971528379900827976650357166202579191574802242727182951704539745109227487429166302002378714640051690490545271948823928342941371257465261035320339254284642218393688834938403155040670654357325409669641567724732999124530545644247077037724021520832157510588628936715378669934195707122399220826783038445358997967155424982724884861824976283063457964250911908938142681691956914594173839056482022373451177298803512757687534811285507967583244910227294034363833306905975480000699085191793991245601685830289499093157475063472761040073630927467647418625534626187401588173002944082859102316311129781527920000898428191510528173619477578934962636045826277095035488950634464496180860760257698378044946582808696069258074658648302413699831729162816988147601450843769504595815599596889977563015457570770628232235336044932427018184081911113254432027446061961959200974348451288983156936315220302731043459140181783410322450018024915932453435964640191063225885917595698918226752947154479576684772987046912880547708660003176994202465227186438727888373783619215718960098382701794432900158853949406497225687220773269296228756486532131378084180911155273235222058717877077847066616640861821095467044090192673279405786996432366909424301179694073406760110264254402373349690709429393270964885669231207029280569367535206728357397557017165053374010240486011953715052665593014992842832289396982192483769574666006811517797026324879715342079832180964209399857072614064165875158455840344629780234835723929238341357843564012057265502215854296299901407828050816965263788548272435940396202509062784513248789184422463971442353971696243265601145965465561326333213375646163364409361998838166343740709288148627667099990061117100736904259575378526238870965038655376342120705606100263819588690182922812655368279288517874332385663342001249398913025460588069652174922154412897592319169389126468442070566892881184362977580349914536852595704372502009286069679413129694619460800140249584856201395497371262713500619631094177095697618483225800549577819601066838431514101425267476406776076252389823001329481164890003842774620494015827079735338903796753632102891265932406406583986204972273045199118547771377182517366020625342063780998341675044996874363206367429332900626559812850710844692890443938465950758076727469052484065583061950869638559835286566788182275595582750694365754931661520971329853282384597614723712224954680460822834425495820958828794753268285829872424100879490682258666440067702614146757624808481806572818338747398477461775579481504947703508963754839778940920581455334561487827327436097579909607363818539933600532013773409200660187747414893433901528779947581756566433317345450474919646737760239367800320017537932606257232687208808298094269267727091421610807794980650394809651386733262070591478876838974752784789574761991614483300445226910789665782227879755595385449914320893596734045910735507905542376313280668070646664067225628976617641820647054920669871583065245893249765158168652089390605178736955804412788739078677183157101211163590254349376407165517773065055869926355500024090728565137357941601895587617506282677334363242868346806154268159544688340288731492499009137682325534142835450040635754095570511170899467442782189209144683070002445358683516237060745689601037185264907666790325976413436778373588204169990905125209032881277287283053331584527417820427746774151623261944843468121473338097777979201283490880466844746687964389633092442074142849664882406046721817389327399438320880408274211702925077707783169345171543739860356610188847748070261670260274662935307158558846936514500573932797123942027841222726067638083994112420582241896152717961306344556964431330663214790944067295993531192483143825922232892792567870300141884175606101317721846431121281800029255641439033477728271858568467534852413779977067426640073326660376820615466846228732412895624223940603462528394265335635173580798884241195318318497843153774784728919894189126879595819234998471222169229571730874602043015443358266196456647066801324444593419741445639212356188340636657579879337792184560741199090780274388772150417340168649530138352831855891462415510247880286351576341862982847904498922546790292636958532514440582699151235322704905086797406285286698421455917635550254503163492812848282557165319060364402569737442443267729076331302726573069735756421451243114439689125179410217531497756002593332993072727009639160518946281744593373070850562695902195099915136445731685642366574802022686306937825113066045336987806736723533220482852109601265115432882981839224013054957147918841230037361125286748840219066854108703584944547686167905325525688116985024016622334853774927715054870013164148638413395526941733632854931436672879782368719383171160137447069283338366424838654224267782928932517644554398791169936577587133163998204455934029408140316290373633041236138593597315289940416649736102420044908706824812175559052601503412243273447222415924889052620392806239648569469509891346570483167681174317527799303796709679217460481481721136728329530730401541952566224851912045840341239732369227541978287567240887917246371754677095850555462301158701809809138868036713043862563525510025027018723255228718456556589075748227691642617534454470363408884140967472990998781466358370770755196946053845954460317986213989322626580639856969932180846553237677121911099737374328915864364357530373092088091923463018332639407371707123384489939758408649647634303687592702759310284299816177539235727463358612093853367270563281929476067340907522911540303127444228095742887719978946488742984110015375786181327265623844286030209917769199484664614180382165015819275887930803640882906203844943120523946008024114982332291614559199372612334531601232504625765129001332555904182440928746010360910140892222122998071738830761845487424625064643109713439942624367089501230280570908457867334790272893190019796242576580441701930818687198204585199501089571145676014680580884687438650274210280968998054891063975078461464503557134723344009161811765986581329459876993952882317030537436783958712097085327780420044247816842790413230897973484602473170568721174693223605944551555496672363336085073920700538881454239738389649989831169342302256442427554253910545939114439627124821751440307069410498527370758229933411276514309442020379364301267424778064622018345768187120843956655430445053888389194300877669616399752467094884397970569631771582658110983534661181651279557336261121945469418002022670167762518482936348608547531223554726422630492452605496342401712804761694888914959104376004818399233660212567335130049405020018990709869866822510795166169606699486063096030622745002214074677219597978738578721846606219614164484849609538260956780836841304825289830446311401709216924397911586627443260668031601470863327715475410777025282348558985877177953459950607879429620008048502645779104110606188231803638243813577382398496832122766723632387947724918124878767234015986332977108297853102981187377277134600219670250945572356205584643353124706906872540686026178003924569496780607256047492500581660763608787859501779439321967913568716064127877352998291366345106874069414258134514618132360183814984157665243975259247659234972939717621173304154793204379511972603374989341831142183385136973887967648890886271764035379933447402279638116093013855695696503540096632960532089492001007846690468201387051037880487312111595176786604776460011456772017377000638749795585585960979317237007771524714396262831893351570324066745958151152258140651885946039559820700154551114767419621732439722364586077859277458621361162273209332914984465550070437549797214309364361620331971247590262264443018666755852248910605622923657629841912595515393523093337400104650627939704560696245628705552983675719461829905281418320671104701193762910730621293076486644282601615711214850872566858988099359998577906117390516759327046333578933321906163380237482533903267566946939799402845790990776277003832993250492015391623735856714839740073872533274974108291190232598765022301972393208603839355849736725652872952529156034178670331657005788378935892895932376167438706582876536352773187249348654863714343639013434359944127661575499532310467304538604045908778162245916111562716467230595187009502166258102628539985721465994510973125425978129391990059500478092328508691963717475706763214226007708735089508238770870543251149449339722612407894022235926032903342600677250021043351654167527160418102567679812228048974103303712146358923513727438180775403084051784443735669674669481569559439094850063628130842300181395991262827259954230550431570977460646230296701060839044805901754273255561612822662560327274143645122282672420424687825570153784884922448485790655949079367526351419437599024195328063882337557144986518536416857261647779221671051285717842954857535782493974340312222906501782447699440166138686137043436614687253238613079672148493468607633215847619360446047910571007905810616911800476374125461503695227738993539531008281760180623580352400813698230243278395684232360347118817820540847790055994757170460430502219845299119535951384328004462723230839181306963719217378267792148605084431316746613085766397244138935153877033300186838422181102883743905282312940190871067524342457107360345077386097472200293901850910313942372023199601726897331592794398887235388854608114515325396060191646819754463017282495764346066049915069486062363602242868910456363177465327658113785293805765281493126306096380071164609306125671373919351573710242976531333843239979150628506244456881634841764277353742459199205734284609074940648142619136130340372884849873142430875003232172224323511216193253768469106065158897881618198734326606052193069748026492253192140789869125349639373287485144239196852960454889351202764220607963166738234788837060346002059158952708806796555693055245060025451231026714354538471714613816333763765898223518084008218450053323189919327975690795318337015662935423029484145819965605366990515634638890820993918426369721944154071224561233023517381564024442433482560383711840593626284965231490280640795767347717390817408214970697645564593508962822756340450475200020534588024375724954807446328039690957058512182103273117083248353645641597759113078512028147107288006073663020250625572236957245441134593792661014942589442088498321783899772312510042860678145066769749572737290696934932916184522559349447737132424388843374191849996988497103787542716970332242007126827783780354139978238798708083784767892812484927730040712669796556452966622770960096520961658021003904212421507080288422244353250661181855794991684125914878265716809777505448190238875285975744270791887416626859116842867436106899359263688891652887938778312439503136862072052745759509903263169739459288778460066590650420165238092274789225758631608735879832079433621520885134102314765238610836075821488220784731523651444114419679343956041667878633764601777672975601898376485891385896337464985498578368042024987092040788576799843020765043162095198325302414776862374168042267995427051293646250128386321371201954847955186623781860061959895615251775097619464517740142154348668100817610357194185240842325032843391352172876636308126255891250200070733545209639805841543420986550383568474895598213057724051222829431643437184020295293343656561663977693368785042005426018941232104930382319513879229313988862282473016266809037830277081280572859415192536008682901328551487756837513244564893267222413802312339681172292939529012749188601821930591755028605156074556354943297130999247887471711983227895585009027583532340526819643203328432562513368768207177653193046888023064583851245803410197845802283263868495287550350221063214165392470498851191132951900030289842321656524651511693272063663457414165466734204753057634590031722350834871057403218218874999750769047438100663217061548830552991161707514850522209879855728345777100664034149336190574008519227250225962374206753866627525012941960843434003103657009691237867208852712780217672337111438812623793619284782225955988830104961049837423191733728653377946628954666665265351784634110150597370369271132259687210485359700100319951509534958445204895895734626903995205311729691943050502133783529553749428044101969517959439576989372966138480461486329356102558297599135130731733089683759422677480488965728093710670851508755869518858438170089245461098113534195450817902474915428669071345082124888148813765653805181811022305554245063007816341205647909494008023004425595429880338986339952489469117835131764144218260134876490679920336127335120998914015605053790289267455884805544733180837049472996908827518995380056586288725493333268400241488695888005690614022241551225217023471622413422921552350210711349393970565355493093141010048824605694571727493386772570606403304930511935981201531554606126638401803211088352587119625494212184457638789779181624889042188223135247469304459863035257421565668787472353994660708513244355235741466619415405712262280275305621411897560528158363997753691091279772289802640637965713059558343233142707839283148540078850708512129090205560776564174284251236142043997250377792608997349331542180452134135374219817114392246349114102219769840901111933023292562876611769056687199311574041773728297594891048799528614603023597377622828414400346282829419726830597135176004532739355065305049043467051322652811145993787027508836834758248214952939725564046744765407509304099274303402059154180436097838853569608096098832047345258097568100730865382871360376078625638983449140850670210283399263527347122554030526315143199529072537935654225126476594475164097448431410124483449210271597207848469755339092014162268940508491501319584338386864779044291269343925439734767608030116043638011590443935694269525860174974242948095846128959550750209375709991723421607174697847859443978894252567673509314964333576578805879666561126849638151374182584750083687797038692531635159176024656205160917330220519379148257694721570172263673271362338675717858909950600864609661363793297560405567762531626561805252549949352013912737560544849548151978053283308801140545393268207830646425633075822794190725447227511720011811913840456995295787238079883912944851332160672440943933198070860466422681226512002951299145939726716092531366407119944783069011839060834980814972517210199155812568792288432975051635729968468258499156397818310903427534569898783757746368717249051404809067513024268287099268206073442950985733258170602311982826495561879115399958332450542302428972567239971191298472140097188797428339924500239504199983573405142472048755194246547793899098320656763390484105644637426715823584412305798078930077678503284762305980879409340121364770397620855389118093797589731358078472038022695045378180876606245559269553228386887684827521874162336062027571325322394512864369548509204692761999075526624811360287488765283462625228185349323909659911686837986541137853457646403180387061929478544259326384662838134739893114238582055581607079499304900039902814235170008516254028477013690221447386457657527878276053147213865503351844081621576547054864947068319911030582797946886615403433191570006550851368469542323707547472120952400511995622126086740978396826664261915359307757099269831085096293789734564340599530135984903483431584211337095907535575500611912486773904575173512682080792572254931145580686231355461332894803812327165915902256849497618640322318335841930720811948955774844532489411508472837343075245043278640824975724843552732174751690453374530782250217922180554146911092455374984611806980558300482001067160353484071463300237555117182015113376014285461943673141974537830997286873353924752424631803088264012413979298337173786194982974140264679860657626962849805839884444873580327942738823441527949386986816051782631966793546220811744129537455281017795859199718512597862354332573718470397886391756718818284108843527549363214691039091643409753170530972788445939765849714483500498049066204742069462460389959555610886566695944311630367696401771487399755398878423318362538374977767080804577855539150776325333954514079684282559946254100280617623597617757198593167608215464299156747658290194218377046440039080611554719647199996758464728047304184938403277907454035305200797944011444875392869933136419645563272664870796257155582783418371540109632288088296568192731878556459101446097867384343748433014894226006214734609640468650741483206506040151004811746073843574888465890552660768791196822568535826799732513619276429005520496975180179061534978471935983522577305845502929401441773547351522727666732587980397972012516770046664544485835274805081779891869357430826506881416431254821233423265672585812626691685305330458382110641468053087507545199153978163124905297149643749648806438493552415191161831967400895019460997388318565860495679235867018388083384198338347682317312261832249210941006136869813925335041756927636384527538373669857086606683984562483311688957279488043700688628806485595536453484513353973815225412160506535964480670416897085575949826310595897205138134431584718503640058836631415844895471574566383056595540224389209264033071011789642901641315480290363205448478148321574802326693255711578664063231868647548041389280401196373518330690776293727638319806705930687578974920515559152133435693370982770501566431903288257169111938738306819663240844166822712908630547983281715703431424332215155596026906355319942301773163527888831691327034815445933606890305609229073651553353018677811810026501558076496636212175568067221491479044133178462095450697042754845291410734734995496893483997648238532735352793137176540292021354153530805888663182037327272031005232489067909280056241107081867261531659649023718040417787841512702065053482845423580081217717909877051836422354018512940922588838569779325092719760387834968934658598061993837636808087457592665605180751679611449004723263736125664386876168699994047256605608788204991765072768112417868294168952329879506234717184521722662131934422636463055365982732257595973352758034283749861248617008446341570462008244532374582840757466639957194901937532959731827772699718646847646845271027458390873659991398116379645386711444415911182739607151771088603948763822454015802178253838641028540421507000235169288355169311354461478676735884010383497119040208233805953518345917111577378332818216159804539572439309391095203870541788200504731679839679932009806709866187582851060425586876253151906589936266499525774852134470212469932104613250647338682573438188892994386563633601723361011570823043182535435118177892107719168095751737924182902103325851970784380654202059618950125435225836194219932892663797165263068523041424704280814721927561230545261343350409228373320135860401954122200406766021274053046842501103754433342480917020579986877781090677976188520318379236437764257904839342387662597747428783777953842936934910661813999787321917928874847211843259943787771140848755223144870422819819849781856118158276178823707132551781006020896726752372904318066631249332758576129067659410123290702114876396696269725063879972890633753677918431591760109832948944154075857329236862889120933714322777840614575770167757446276071639717493776562521133213222287753691550288664987469715598115238857452312481572201330700565915093345166807671850632965864590569045775118201491732266405464538030789035676018875468514359703218124532874873173907042715055273497198756831484230964376250634805183235915051527091668223428524017766501343287282549376306781188676726634840671858892224795442484437203506113430244194261049468914862552026960807112165526362230256426952716204527811283363899406276762293796635300126351181796015260336534519169874020400571201188158843396208676559390193878048415251221204696618863126297787602427932586998674491242165592512108428218858557165877440875457285717960407328842780634718607827820198561051282077339481476969879061977822954071438922090329233925834934320336026745242636814183923483323064448617247459059309453923404264978854978796967081456440918817486582274600004645140515038176191973334349401311830175172934414207193310961387585839647110503209100312004020599569719541295539009437212790895033354818085844463268873245738832607256095790442492631413943345475033078975937270898725749686126901830028252286731513429011013577878869502466563154872040308262184936238549766233222142393952825378351158863911648498973002334572116804853872337090056315444726155040056119589899136648957016132883513377874403832747471067940704147508958401749767674794387516558400816328606869836923629605498692580271487455755653482713894598853190028587043988823900668785738377736552474178109865236986540132601789799920416869627216927221128753693246865987310725600337882066724316921258735985018492130724520989127014323443268157942617084159947768258186660129500139813118077691363228452670747555825671492100941938788576210114109954858754506203443570786700963003084321049300140072094401417345625275263255572790273918926858379868859911581771292267780324680422813937126195306099735139293206355051843071909621951609324678280175186243159974155095328010763487908188050845949877745227784980974080971444430042842474651674332077360072724551800797407262436230665978803784995172761214697832808234846092503498542359703524594478545627720349687087034147705635721447179271249075625495840502385701135562733798570182394257113056845942458435685278818600294220142279864802413769003221866737650489507174684856923707243286500134254151445874760700269929378979440124546486665099950903267968123203258649621792402342215200607516249168721022157395090078043640600243970401478621447142170783448118942939155135728406966823908417210997561819532536144018297316191010087343898220668744867018989653824955474929903419839998604490585399985196026772766486588334490557158765192146245742990502393379725270364777646549432710741499386025750888185520995892242328171630525205231103502713243909881814359288090938465837631642433867320324989464079147264036962975423706626346386840790041498107195125218051979832304363363008123940571462214062282754724062978220845485927829635284899647510508651786774990348039954981569041508643626068212518931611531817404375046781243663095526088275670037922142804617056869025856976495700551869726363385236325058434468298585514957749568857874007402851672408973096639546508279822186992544256941858647697865747341899294371443456748055669317660916222414497090940328894816566614812870327619867965496983805214751216909136237541234152062750954637518072261267916324921023154462879501601159904566005579870504912594892135872602526365273499105938497504098746758869321688825833906319739437768662480444966228722646885130623663470922822966175648141643169331697096055363744813034467562679476518943926408503452993961090537205641092920306101222112071279001361427593358112675773373504173110202057141236705182415853969465657046209849369935029672118158302482855141807811528747602187875656721652409580424048221357311727357049344302742756364101883102130909825509428284502166204020507692320428672302529728381391205853492111457586055386932614263049195794034894584721124852305902800012442611577433865920487173640862810528720862452748602233949668363004799598638375535396823481877550689990795918889263706572793208266906333330530051197922080021000117801370469579931874973395600073649646448968453893203559136576582364338358570503318043575271101586893409759039272970061481587457614356186708662331500575778546514456704920387039874406993338541374550490803171959011118525355333728170833735878428125468265127739812326988769997790605461583111806103202074130113758763767703975269148707829472614241680924257189686678264997497197280855254353872456900727654552346740357133626618181829833125994176212336517846753790206921567911526757731198563971770216482689317383232426258930366642449449982235144957401570906988091721957883341559026959664095424523882746011451773004580624616539152170581450234162852148280122915778396725771211505971486746849049883115454378484366109111722462848236968272900216123607995722425934671024322905949835094538133399272826243510923867631618480682023545985583831078975416657618339621646918290513910119661196799810508402161380123740731438435763181857465118394888190331778378798148435983396643439209574683965251920518484546822859140016361634700407210242514339789438327015893129891012323961563933583719166602030170871114648061001412545738068458077931540036362915814118161230084016424464197091112567442713948184957680684718829581406421022197399345309351451453748384511238225769786400233833767477720331570342173577766643273975215652066104850945202751251154171954190893253468995668653255389987156134601583117057531910021107613193272346400455494766759191518675474373886024073281982181658944766955947485146494458346707750481446351496299273150664994932310677439096566461306434920098289157142137759433167531125628527927459595698072389886482951708691693742603243366137201536717796715303903042170437988234902219395614238341724141575741677951284135321706938487157305296722219144099590684272503486332095497182173922292141877303634942768334510633941301551123301781924403472825964588458708446330337301654143880740487815989537069030381687596905471904818270894199229932761943494230509673410548698420275184559451921696939482913821278336520124395196726890839202694223546647474862959325980761443159670180030882204066126275755152071906183263990292234912467700850138736927519108824602505249816802289891230781603248474467700508286528709402109794606800397506329983696603073004052478425113872346043502467035980666896744159685425606354940418853588637288868762643155347539849425695821728395976306333917601993706899423128076230444528709190179226713154854083524751275597391891030900347228496262915352255960332832606973483906345282489066717923467388722477355422604817437667950221288361633557718845711367790049370587492493367682764216536570974416803346507921844589807755325872868961327117871885845273362060365456862898176131527493394888201019305728928080738503833249188273126396261575730523975336500560069279634788369513713850261537235384045779417630884950633688276842808813489976754665287354884926150974820068209872110938446481221454364580756817481741471651154826436909604728426214127025441354514356833159375470525068587811061031494195033661381132109352223272448452957245476230297693367736151855856777015009655626174599143913362796941248223416303445419771013543019752495505903473761126294690764705797960837544048001777038895327902827630837803593504261125137959440335583284239432678951842384495519693920118794213807287021041681354236187017911573396608683680581850067544633666989431760126672610778182989708625684524026727236966995130867359349201750654439065699217496474536713510203800199646113098606922085506080670406161817945683640978997259934769145786420321134729970836981208649863578335307000509325602835944044798693464755349773570416946228814549823125604263430308354433509861740033678987057550544466216566032108588442948708847648812264540971253945475474472258266259607058229513359031300242993896587056999054212436206603102983002244572021821227250174236794448514224902577616096107358035791239623215114996240721115984541650473137965394341892984290318724523800399786191322989182985377017839675861503450553674071806629089681680882268618065981954116830049182737660812238884548968364274553337235344324582948737298071156158110784132362069742810316585883494259918283284040874698401325266685768381572524436112804037566494878235680459970227059269611662840374280833789424018767358038778405168765083103122313141008935286605568623910504532452666237277540870568605121345697062743735206177693685133652776221406120918097039878965689657887222411611541024024603654946365895903524431673092947893998325184536224860146081518800307287767727029999050011799387942281089152190438539384071904355860729977755928889684964604412905602041610288289363037547934810966804343678047055911490476335808292291139393044241747889961076783733871641497184384867688007421484267958683909506504155443685842762573622060413562159867581131729034867435366298767489538983528794947374666683250509495202017575556412184961680785491821140874972961063258786303900341741053490101546279510171386966861591458804885033212164266071488779793701998794316777888780648713956829550234240943747039445363725923783681412287175924148759870620054122759460411670207766710019502543275221394715228642972963874740302317352005646749278955173523812339806630239655290925901106726264787080283994012022113244712772547854564948562540539768075900465964911328935595285994036866999379451554475085395900517349557055242902718336865280098509034435778188893668646928263371761387699030155495830984398528391428829301224657417783962409061882102032193958082565994133438274791860273867171686135362499872588839138193384327745471403430753413289994393996689928932512983551012251188188368237384594511630400823141930801635554779317203859110447769203853361762433206992499872305198861063431437131535318915720756820806348964504373057757431580369131768947996007686855476747408801024866625531324891957221184079919014775820384066017429354208439683628796635435818494580961200209337014076018371991690734105843048854730660728360112596435677006129323423315581650738329618092072808598906782621966591053007029197504365623253083941046538601757054906329654353342535752963143782929042505480903155900427012948982667027619446355696404249030915822123464107641408811339034428529416279105240619522364463580556004760671307532972857458030505604731291013016405912906590098994188379123275789300946857961993000459580840418025923587987272604926903513110532944491039607121410623794804140396521491459479415766578090962620191625744757455407893299763629461926156054161371090371881744063389068258427356540239103454476347053972176069827479261233291796955409982145502503255023682699534609481005322729300547980896539797248498830240640571558971955525254968595106290276339077689649160197894041580283689545144662399333283385587773106788101524497262239596622704883585705406787728006763466088045796416086187284925846947754528968195861833709090671059806881427161363250025559562279701921032371879869564554671460047456962577785895059430210382251821392569091589062181922253528335241377851845319038401406284799191942145148814062187057966853047113471609139708596877641391405530296468061689879944452902279455248450843077897040825466846762000932679840811550070770896522131719100297478774293775667955043969159498614586338527227895023935597507812676511469004789498788860801053083185379511820079826997332980308696248336963787986259056546868420076063227528922224505267336891365651761773928977462821595311941872852644252982653902728121512707934089612883957719608510608320673009129350554718738652528925475057994371951813590089823791317606860164060387542019006189062930558346225369186144161558934269566170835345168343408135322242776064876047263248831801839632406752424707922806266426227752076910388717347408875967325463653447092837981197739188919607904329492515828382931666445386322424036364713926542499424027867022204598488280146109614553429482075213472583082530684165173957019297755122729516544770751313852919821633980075226763871315127787667443888555682694990430173692097683532062585718336423757293419695472595032397221615149204485897449523886076774358883211612768736870748394761446667052553740337945049371564944237623129120752880360050203176570823212934720734054735940521816108036603152817636472699204618547074306952960300819675908589029962805441169153275199724871337696954707838817968916666073850045142477356584607631459881316095199072316699473942034341315320132184425195404516036183829528277795565177218669564395574264703306824108818128401443085231370328182447667290614385688328350731323389127251517920923445619223145766404122288011427763271180478352909664681449296048747677139174412812049874278830500748620985797944731323616704956696085194946448996612544975825058868937229032560619460799275768901546550704686682763570342412909096384883532660703147633408182008453783590450646537072618844914269216788098475001873374358685637156506940716290025367283252258316571110183897986658780170945973034336792112590628314732369377778939793291754364352845275748651509954916616092463943554081191327378121361010106694394903602312790599560764191863536787871111352729526254425585414783608359895087665348449723423117182377247871992520744446581275241467006151438261297271670744133452159997183022674959748294175686917733831830031085483467777207421875500570763231953951966435265510397246445518561673443911672749880769360530575284362123264625031757572033260648165859193319302250802162858861174484857674003955488089469326172513712517259458409127973422220360001858003372124628485911580115311126539201183559848674630468316524873608091100169950855755282353482583604663136710495435435247457568808764239932977335673989910936816009585767673053959157976259733346248901655039443168485114831781760746661962105091960407346012255028827601526543811601806460610979258092750895786500559978018031993755548036979598832237907352628747032276962211617223663977222246944138506290533252478249045501029377395879725924278242646644822770716824533958224791918499820984879234198127507566388786889719805618116723829204476862077871460539246975321488569247713396949153234126603046790852150715567049092907189474978398793182834591489287072346894953957463609173504686709390693868134018348887179140551522422739125203580117552049972298537022123855487224606305885744216939214734135305837642854096745387828962413036065447615104602928231333674096955291419317113107186936238126044415464879832166195204881468825124544194099306400892538144969984702964458779228409730038090291705785694862053606168811725238491727875596440141191306822825638506713981722738155449268968049450401410619061872874875594264124922048554257165648070259201817923563935298056332225665482298922946166665806469202690673933629424681124592667857611065017903194302406080679279663128458701787649183352575890128629178551474378497908646193660801863912877937693247691327296034828591649154066502591064154429711884328242098918624971220867991940233541553190545443197565605578637083714514711858612017941827704255650710933614074914379315017603257507240776010243790434261280091070647907021880513443307742045134069921476739119167797681722558440477426802901923491573064594330229565314795196649810372152819564512856469200229768804531289805330507068004315109733447416363246415064697843141908079494583729002619794173451397295578198662269689048359571892261366233992435867961595799058135404184736309399597913287351978851873209292127205318752009727338820507852189476061479537718609694806472325311888610398709148422621231823510836549474799246977467962387098300423264488172820401032823195305226264977038806762689208973270015872576064290330462614203398280907714842549399490884289543737178429120143620526968374793997863878490821497066476144158360896795984349438661216769431042487613095836459116980169796191407523731238869897889099967897359357918759685146591199778188419224410807144117042656780005686748080938018568731578194399579997713301975942332663320499677376013977793226576334430643212831227967699736204174722535234062275715178864168376742298816226455026519636942958431921463367325923295080268345126050926579157876333391175090972397816794444825522851021248986116722748255277777055245986352239511896696521383861451941453092191558370992741089392723779110670183706963799919534607635914475243108534809945507790535178793089207460818928115183834107956517627311413689832794890005088919027888578419242851996309904371018977361717934499383243042261755605888840506421535795077791082452130155976536789339173370257107423990509588961662947355222947053156818193530850711502959712207599838743741656977993712305386038808103560823275897001452166506856833504737115973344600502247612816432842521911885640246754965251758676811690648425419158740155596899066279261109459703111406529375211947015551801935895294485844378816525328833472955080372346929093849610221064253200674741717083446763020625482859107251572530472147021151531603388408968580604604839734002010523132717897801340807670842623282512620812397148287102122172236972389511676176877933450208790725318531397560582313618333350696766003395502208749709342843433797385497883201628970885462583526608498813022817176812673878590493066496395896715175130796722279988288706318297062928855748758368389492165068800960255949465902392751899821820783964773073891507436641082902557652243361728156574759598210361012333946530253459416868653963874732322224583657676720843627100826523489676829405334353451085827799409326720080784248949736045643537118323575039577525412961088566250173501652312548933368067489967437685243711662367837601982422859583875441906196922408621060779075535073601177315002740108921632579676863364528008259997867070986842529905452760608002095113383970640390406791103333796249946510989025848355914322076722507721088367693202509369467494332776038596939151551980306393466319661468024780623403057707617616087271270928054250808989777403142453411221450577100777010618233363739257208196898420157720197331346721251755413639510225810421823054770344437616188379913168939733634240548328056105564247618494230909697591197056219608522020623227494815873862287917889450990691697183125258955096448508159128820760993888530329824304944608692441841689689023179989691743526942069242953108692881865052819493524251287132627074999449979833544110544479472544990580842540314055791788017367692178270472587408147221960736993847852729502987439227077914073131705313694745163409523993732394052923605072348891327803639284282207601756415679614658832651267419964025630646339043695440666062738223862027903571247920310841219304318222304889294730498859072278797651408899519108475826711281238364658745660194216789656078312259976516927434772421849346531603236805488112030053398107631765855428247728445363982978383398724658256458510780205311045758654451179144864194252505413739396313046176408821177723639499537977557438992671661049640181888410942116595585021835618388982582413115754930056181617154961012607423210002209127195711426199210608598585451916125986459044289862484571127208588713797910415110842474594012853247233013169478905407669097302363301663791758391878057537347686770606773309069399839708605169900684480735069776279008286677379399940621475349744136999338774706409062615094655222367805917040658100200922873728003617160830105889008821838832052244454009064028200482784923471784800807253933251524967176052790451113639627004247838055868439597194980633767787285919675459254443753809321358602838952324877387534568800311111134107822062908704477124608945888880420203843202445781695332028160076794569745987321024214745974142742581204207596849682560630178707503225773244944898016366824682672333067514762147164072191653010579588551817977963915449782650791073936000591167060718191703347798884322209463578425203556178605467245937045567727753103652829595057248562440213084221035739500235504028109505059280360620579443324652595463885158592343502551740225280071257987145777472235321876080208545859058323156196142937911415632871000952497792662966619901100069070288159879623372358592897467960580173146369045481383473565420177658347285272751359477897429057203093495548629022073648217811229027560536386897872387933088955855325368195902732020998140267671731139620280470460886330302457934989904944971347482140209438133542159470861986326630031621260543769790598781686961843866997827955987731711718089736300692519254868394491107225460056891374813667519458687823358871774020760559319298229500079317088135824210124992036830331683511602538448223102087884564662503536563170639619791768456559208484711499544323631905400960327784449246606685891091138529547362488781287099395920784623584112972723585083538154357318203970468844463813321625056261212643722308853832444060982381014932255554413006303522205271163546118005104773740006311056003569471174418337478190419740823740975341019308815916704351562121525243402828838240037376913907282072821098108744754174013384416623021921322251233913357885466164712301277973853921580138389731228356784724763478746625007062491684194968329216320149918621547686838148283035220755279028721629354897679037716232709131345582780490742779303887504003197229051616697759894948977859573780245239906436589905138095802314239097823244788470079828589403220030595330107898406349619827048996130693566367691416275460928530509106957350380272003095920345671991258132456125188179219052562992425444000811037825776829312018685849633472794636780008930627192062334365457003237287336794723365011594303524633938125472010177442252491455710637623100101462838088159734831430659687497715699963692445722374266051045879994942046469299713793409359076765274159595556359587048764046680171313370527998809776072266544130191941446176874910063950105624722599528323494385653590771781955479184857617225173978390170014412370769544078684054219634685424909041843886333648855688504570874825629763689399798653936127014005281794689866366345332244544270274112634789885195892437848989029696705756839013980337496940563168076136801908040908983271438201531247365450201926497677066510849708181601714962863926092594775365621030393451262613913657587087285473472601220677125075447938417270192954012116419626009969281086764502080485550465376594124903978396200961311517948465271464861444265837542188578652358605753753911971277098473242409595167813878556946983047553633881247987547643616323496838766538225951398900445204564027739033574143533635253941865796759590158930336595898684452931185653981928451226751305424350822464964493979145576138100973903865967354264280680097438172805981169228175392772884981754573925997813913521098656671495722787111614147154295331305402117877082381161121577578278884691270609214542032123994398533612302423293652378975918105749926780421103269297297004259641614111129403432960120127536249310943281454434806559084851803616123656395887054163699504609971154158063800333097866384104119205533212677852905832337915504657999447062319268400448532136545767480856597825318062435243214470306078928779493189096674579715741991586589512596545797891000247278992519914321607999972539043961823574193251529468528537439055534623545887498593286439476997292472287433154616902274698343519233677029141907110093671974679569927229794381743850164514285781056473162699852269849251889689637746429857586461747192088703323944300909460753036677678920572166270392781305750528567835897165015415681589644851397810470805097594383355359064423097911456147684001844304538203129997288025126359265399351752083478561982266778303333246226171867948822838455479274900159990238312423385113125153483187188969882246346161146764726997608947247134178388208819842000949490561188393205224545543629425594858883000752582271003421634652948854076024171036411809643896689509829248967067094053767484503253393049745512686582854845369562142610999661299541054991309837790469254735700015025556037901260709027040752187820464639119421292592526346430541319194261558938008068037888912745780977158260647441964608789072870305694874700002727562933361592279028793108219888271350832755487475977823226536350789061983278841181836052240475772250172033532045395116187706185271968754083124697987391297640139188086063860551480688247029481443332021695546097535015247905672263151714834445527612642108826900055030045725769555068165536441139619066002275453473925492843068602510043489067824175046757753673071909966283040457031453243135717674803388638671372778608311102874937144218813162466696369399507091278678108022462365636728358029344574106364595271384938565622250081296398440485128534736397263786660802117777346950720323538766846869943449548868902600576092729856416858164737245902845509642083773632034525957749155986159993687667856345392042242412763837356633571211699066887017169308697418763931574764640116519213980933507270232083689759119932290827645827326611566406375808894031599356142828252054765772317243517663731917929286443823841091384642443774232254471784178365693038324378712486457224290105911581795100927795925265948181398429228172835221463863154093513389797597306475090657609552172613273694267074282826603262110749993076012058171663711585241681087626996182163116373161248162841716903542492086631564674727164100987784748006890139990220151314745339622824826523091704891386242560743650873929693082720289894084725965163351975506908315904010024021154087617843406490656794604323812321908657962846738192209974251246092738371969083558689205169877591616647876901491700496076776821536032743473942784107219382307990830768322901435354553485909262862694946189515393189539392281513622824791673594795503290435061842512703951669874777965205696676730867293963937329549318873383721020816904837875190377051047397799549641852740399118964374516225880843975957736766951166702973041955510767603516083423166361542626028403134990073139665516683509519647505933582200923126812327032389042932028250917049979688827294618021678501721206854200254945999094415115640778140583339630888904995763343664740283936930012544411835542893394652258709437160234458190920768656711277133944000603103222710898215145779709411213957665886580138024982896269997453380740461322691069704347588002009775035318184389396316774121543605699146224896761123312357004601866121946673239831017473414844938899130311444698418381864482358040158215008277789368620495240318037168830893463975596229829401042681257561821179623805680171393502991363996877502160530176164998398027753304365439153733516028111490781421715170644728850836946410984278242913253253036664734651349885945320737337612384002304028936037033501708675718211210895759103658765583207921589534750501063316615123799854130100001448684830391557640090587647806542949166536541432724975472620195596836844761436910728848446074643941883886073834793096199720063570539928749816904709306151879672694802287529117144474378142850407183450373535438245165900586542665719844487548132428139501487302074388715167210320511070874598149206425150835019123103618314801804079319142660094186385738713095960513097268027307349478371447219177993535589582889352174483315470398011871651215055650337466709095978151784833165270202880004775896080454891755905384123222182903175960176985564936695179008501480027640402307473904720862045178291051847615333750561184642511554564324246430283097255909336184014878262401910142430427614168364491093948417556685215921514281146827199820394567655239402062391369326424536647766075662237521127011967165722313176132569767463131976205088156067680424516695602387202079150429091077367990476606178437643515561525176189985692453431440799563434463513534803018167562841281083881655267157241330562538543940728104822250907678681203855013556613887839281655535571211986265607863538274998073915344567333924081671697845406918751159296953082885855593068450777111893517589170381377970639560726655082794594654384856327189416253055827624965519569318794083548080705396477985330520417222141247970391708538679018292593572467144531008606154890876750308174409899633299812294561054709047400297923181015737411948289244436956288393484466218865827059901582559853194324776346316355863559637645100435399881865156021291406482081482872944957849856913749321967836792103922192361717013724286262588163786663115856126957095299443608563789489165538288130566374024644868467275690955287461138059744347121640551552771191501453020060347035626091631533987135192891411153986265987894447653721309678099518559322916015082258011535763740908143576748609342433737075061220377421982460631713015664512083932747074287433563358405990601967030767168967699696795793719532514912783287895781946544799384832147269846433565764416613928032058959731413686490064958796523144740283260883038916603422370563504929597491805189988350802913182666844379455730562693030635262086864578016781449430585939639369275677406160701069008163845525884156378122317864574148959912584101642940812215131977574151246144288320280621328184459662956573097690936312780542488104810367778561568604154919570282826374586483894297385536458923254932624760385487993547942353275033397048872424922436534216677664542745866850811604143909673146771454621924002879733829689768805548303465298497632997735891758011640732957271368223208903230626888856575505993049321344656603281215248692911868343003613573936965519038237162004776298162335750414564731353862641076582771647474299362155956492876489933434687456698682075912352848590611797255444686775166606613281906884479302926793394193051029586153790841560196731146088667529765375122987869478058106500523889996578202689229379175038652869444218513487521662184037852672385799902338670548023936897721300597167484638949396477765560500706971355746025711988952444669232293856522115307865489308678112945261351568754049337745279400111660058656880545754823592502269101211985400076572563465612073758941844010411660178123502148306328682707176220728836077486331654497150148675871400563501793656688267054387446303087341834256184644330781276023010966822407908669219646093936407637258456860122834889397332193153708102655075427155988350934506561909705282346312281116243835549759566691331069184202538652030448906792050616398754588455979962635224726451332365554719715815414979151712945168046356813903540735242863185841064767164118313159691391434130798962078940480207698076483050153967437910307680282788096843758042380054582985960756673879595939051491263644219166577410649768714800313968096904039425630705439559592346943279883730811332137142998386975676231723494631504800031296267952111178458520396011051026737560295964491729191838283424693816303458644561276183070547744347194513090247099553593472159688746973922067643348716852003370511559833050113735774087811900220643742950130026111268549572736838726439060316266099832160645069051832217453639481457373290340792600178859352532908820635972629772146776935067957298411437003158430223543958608934737384892779833042309312475363315038765292124131352033367083448706604899456636459932054063650905326268589255605198616866343627056801856152977147270328779988706844287482931273492600957816910349585255527284552106470769594355939163445814933956407792950439154421660499676971667879736042147144241358070872827397238117206972123153769814711764507016893867503775288273990870997386460219394341007993995390188269257301821040538565683698289255188104391766876031775003449704384113100299325473762475823071357420288562583514807939889021954255165852163953674897722381119020301386491499185924637302351066407700865788995100573391856030241504747569721579861774995994645042279878969427902686387210779633818988438102304775596610324640411261824796604654579924988671574739155263741561062901171973510362486639471031452186331185862336973425737384012891503731543863420116969758595856062924933957953102163677968457211913738058529620011367475310589035076602260493499764247173008838115658811242494270963517510551814240895450735952592630478123164389296790656443853866309379261458291828015546804828181943395903293182233500383070282150976443105398279492011743536246905952046112513070379346306206070812481556398652447769244967321690105821696229368947110073244675770046234227849431593923827325533277785004841305756827316991245750161085700632384022979656761191864109844389763525654556120446529202657754976442000184964799803959028176223354564155645373785292160907958944643987343894021974646532625846599681316518873954317441088047218416088060578766104475375279240529146366420898421373191415596985975846905293651876562575190586321346781046082051646111244432151829522937334452008560554575519447467595897066506160494962403873645800288360966623078977738419214343748494899113609848648426524290650320403055040733519890267330309255975635671194556997230330144163103177313048452877518040135978534198103854784812282633506884348937854034455631541153757470774260627842745403563441284537721297090056618348608606911000301920450566407169660985467150129812471603390297305082210964989771965767084860043508087739724190421167086716373611371607680285943161375266093167250989545774085337288173767119287020440829957914392746087143725997609704820893836576421627458008421744699608421796467614456561094474378823683105865037935093830678010304636954021286269526485997526998925202491392938017071550572033654798359801580120818421843217353872166432220022961661414625621304365237607192780180426310467340305778666740154361536670470179772059679691558206655693026769247263510635440547095125094124219846089421985797682599478672039984096684386561795458931662298146456013559352397580936827767543604894160912555016490594355649836076889188301394010537598014078475099622568436220835819278697408599300677808672123149794921588423709174170488298500343693867449615941968357514273105805562249122068483308209380238783439292988405146312344684593484170489731477739085509035808107808666961763606433326293095410913201631531181030794679690389658660291027057238854104567284181487203034452828482714330929253856232836730104606398228805357326619840726462287689192240863553366284268652326185954126996350828253983336017436618668931789611804556725807411533083411625139815260761846271205553799687861921836326862295067697264071308220202399952341443718746426462918541738315344861374171201794130863950700451683939453609956909450021980017461363827265977203781319985891160042107481879819078422749581423986117863142639440216822477786208953611532402721152005263458737380075355444591786286282127382637936169887626702337505130966624374995199228735910311593111771557756242203481653041005959214492505690008580069573849215688330780269179022455894488601226804992628587246238621052042511685077787676047871493298811918276542662373974604528771842305477016202103701735209489394622423685748448045813512423514369661501087738495848734146661054590202857736363560635820658978466429571075579828827355127987534480708882085353694494108348679210281805968694470564159793747465857586287733385403041661344051450746104048558658936322066863791766115447718029587069390151651915484491328287240570803472620642543227151383976827716483943009447585083879173247219460364884215390164058667281513667628098150385936458628484041879423401566552210452023674605240992721868108756144590332610260624445052871323871032004574407047795104688532632265372097698270427815889925638920135893755189181833823441369414014588672828954782042073215901327772921150687604291003814040286668556311314246262270124714555500020949572240890521262052961614050223792209213475123746420297239855120901706268075283869238519014800224321593217025240234917423488484086555780929428939657522791702123331754248864393245697234582724374619193805087205502176042413809019740344572189121703332319730234834636019872843400355974886386421687169442554423036786551605730847746874418730769795211775465610390561875941333035455447465240693557027300763513705644370497322960844254479349094161211326981132298079366403910191931931511741622635778060480858339244770850353376004335978996608204186047401962343706507635080336392140091447075005646268051660543809357896813062587652509879685671420307555675608442493635196535450756320053813694000298862880572009738053966448341334605107598674350082436221065199690198406088885300448990673488383373028368147294895953891652030857968855401941749775519567864712353203723318030307226493185189643525156894216288020987485867801427929858712984364070015440303789293477471658000264069303525471592209381359302435233878391870004482957603853151440739686600587730937014667946795386151845095181896564415337781269463998845754150193440399436181856231909428500915906609866977684436667536039795738397610909242862315323067736379242778740302721987561038100443424673029686514688629189200278993475888554732161410360942409580382185074067112391808824064380450815848527949127526695696187758931748659021331366038940477446048409184213968356948950079239025058909766611323265615672247634732859377769862779127010180473804293082876599238632711198581589433341007816964989826748618435322128061475033464021361737061350434531467322167194730743416827311744070627574890466093828208485297228345830870636480844803670923440909204590083533294063317016295348325102916191345465659201140505424056549040467648396690276289346471845461469912414483171051677078601591661472711740990197105929095325558804038738520909772130475981472371399703405196676091538209780412503003134942463309095798155774541118531924068488941966249293471893250249314073759376547381774770286402508907530792161646320281990105764671753070569486111858085556258163100106934070318314144006135808980197202857473988975617076365985812074663112933423011892980979543776655825826437999706718655534329261683344100320864234014255190337274709599062218799899518805235289365022177992011983312969624970777945380139289825683162256425953377537491841642972623244056910874527377089658848061333589450395462252620620625412083310945415294962113519150922012311408440827286375554755696622299396978082106154205339502119561724184757605755726182091879153076618357464895752810644060739608150859321251575206406943822957841982598478582064389663320346383780692078274079378036855378760782672887162801687667216874404940753609643549342003703839556124301246747051031716806305328985440623532444342987231341556591783562829081320098704209305301813691828901478505205726152422044747207079629664740921854552124169024658734422543926331573821704225414994240787848754779297516110703211974482293849716816732389912909394969191508932034591360267330287066155208130398555404541099962473997221015176613868444838125166374404055094914603863701279073093406679063135266526098948384165436591219788779273175230500238936985061601036145335423077738964690248206127155379330404089953797110621535640980728726225015378835010288769552801231852282453092163435802022152949452676765440128639981426622284790601646196853785050935737639129686300090559942942711894632576556568542143342602162834353518265719306541077130127974331017850389127650011255085175504165865063150600412407799605875676997399711312091830084649578754544662766001086970667025446951537164235664313476407475050647931006661856283217444663459153298755417409886746820530347496637119583888565034159978251924368071846494308288850993304537519496593019240167964595827617785127879729717593898748957614429148992813184904182469464391619369943235044627929030233182792821111430704778391461121085085141296304979229021006695666971956342832140087808825040848764623529005520563554577793131690126866671131971061996630162138571972809511681996956314615326190907098232849395018490678510447323906959583803585460434225860091734167677352462443241800751337424544257884705023732941537104753332860315370728907087506565453305418506930548103427746879218267947718724744456669738477716386935523098131382271395514537667785999968506915061417327533645754866447724054690863850202013430565479013272297929660287095677292815567595421315476890501277448807313437967689508421788118065657798507524014085931510500759764569305712102916789586497508891304521469564674405170582068484201641788557950522675254287155568566729814613051052859315459736160557279778174813357177116394789774832302484423361114412631497502361935491173662144815493822341528739006855483345791948210619620002336269063865450004547514359338555441707779824970580878920571871884853218058721249565402369966987626500508580466954905242477553629887608309061549096665304352303538591658129704761617261581369751764618026048721717462767270958103412161178900238880757626560609535528640172089147433978196929258590092259969246987091983091365605235932333227619603999127170581581573951749411809672282642355996993322447766716508115395417155461769484661068873630486032498625492101533891445869216782172675042716585577385182044723985778823839123260560197809954489258542083809765683300291739668759059273494082228720923654115022031472753214159211449990520843523751504260093581770948886303712275892255061506592734215100886081604456842996799278546698158484802994638243765816191376628392189613138927424530829828238851146495085349856706806163295721016611592396521695031767729316448204529457012464200538613016206261795972390914389478528368802247662243970965550094921419978362923441048551373306429231308055702732839339279666665841264040156782352692819425520180002412488065754167651605918859209001506637394777849541920442029436905911438645958856723489750807223718811704051367756891524952434484133690787238871885190172756393464390627678972624928270351423763225042510139618233133119113704270670016480922906129830471557970936508978707246631316321917622384062862161736034947945870098551855649085516663892684380888205798987963470138350370224819618859456342736127976047521063110537741354612674416622713195485976036437166540848145007641933569962222553833169421651476158846316837679979392371211687591657689636114705393784727121204967567852115107592294537259978645521154217159318469368029007961597199217725287276756425865407430731289594433952161645849408143621060430355374554260913485937532288413760159147800715761858614695814467339129250033109343913952024978921104344160614994534426042030261625232880728433808888599061790636844296297692348354462614484600675413872507159770730785679742511711965322453005904470222620770166503025089354290773840827300938953026865931307986942490322150100291495918821099087052206395452090688609749885554123941807525560600853790366957226255309995008096544000824694272141462411177653219764926251716104436096958665196844145136838353725741694621172572511035422425174883966047241494705388932906547568463966407682129928924938460024857156159581034031713671622985536231646630192102530053231134189367042011452125698551445199368581793710070866575304550110503709785406998954958134253316244714571247541749119636428074034930461265187437641176852524173151709356521339314656594035999756001055996548031622955673200534769617261737097972597878082251236043516492867513745184604609039216313518416276538961454074853998122773432504844318007310458750193332713901713206693249825322481044893800722247923646879839932469744806790285462448777639317476572053450284990469889380988414866235551850313331954616583958345530826770307454841637535583729320569241544511308290049097387493907613629187619959112945887854803280783154495184038558709917370023349178558925620733656763000047760904045252883005872752147853769962913889198203092880763258128462911296541323039229088831152574484748045525922976040739817339583890347443860808962688771892403433963842500918276228623616598018597952793821920748306544134684318125059611889320333448684323610232037748556196669163398314345072792058753279880613623858127552559396358952767658476230164774381136382175344465756937792497259643717118426429992894207412364956903052771200270771392262256934299834142745447849670934681227738226605449773328039532168373212251080730489154242979366998005701139738446802745428169195145574989371873569870757539208925792567916686865669403042761917103396990080207072889837314790695177929532937228607717577047298729644559180287304771434783961435067518087790835093189962664276281290702291412388267399253587062227738952701649299050073812776311209216254079194611328270242884147213548786503316808332954966662684880842189134595271999896855362823212526443606262365796313047599532340223091318500122713953451957931069671230642927983546008723606279956465506500690631872908315606185517954070749626762887037463871489378885450774605305616158810017076132315154778015327470932261448027840390088542155544874590904263053129201561140009448474833489779524387429886353013562423949073723034445858896458427692624296602547580519029642581002166883047119264680500986446154264858294394824230401440039740660942964440763539455774728950968957139907087829334695852101492440687983310625088558902532010540357901130171468554668278348534224928115559806590516937788030184910441962819669965923679381250566986033017734716455168888317476086987289410257752480279431700330396428889606554986385526343975447878698380164376543145439744159927744757601122887833636077152161566317062877602671932781598398197498603528115195084357855177687623680497499632209031968220163093609296951168604559239792686988754609224964590302496809535793762036815133312962437354948574604523600477557440430261222713824283081591413069568831170117445854746467673957057675401632627274132063039864135957780866671118511637492601929048919135734890421505040058150253343670153410573178412317995631059488985370983956889677420897690506125646445474079851644993354947248186658188241012564836411955154408790483818134672865218047488183537353922758927828969432337249388057884422550533788453809773976449584925337771220214191216228015213394506056309509451241426504239071038052042915245255693579362188195860596744881483752976283565367392879885329221156721369849579641627368153613913949170629628270474773219868768533142916682512463238059972445742641247757391146455336905929529339231338101024091217209447878493083658173025237231904868613178292667974041411617853227781386984038283247719611235275240076393568026228700461885931200452016729237143244938009528195107182156902251430576070100916452936230850807904311672173868663902700448001641225130488481840619580033940978033934952861307596392168713730250644519709110866431994146627042437162974972435257400081980629235053543603058878899695268175137157969511962873300153743319596374972190518288681182537762135823860671048998613089704741901642600324268653012636164917880012628495519390487945575305819817311262435409397789663711751612480553309387645808461999826226705500979962401514889887237282168616857683975455226854112595155858573879476402037922029099141947721970941373578437624126192608234887383883747140938182373814900479683415328450140060066390206919038646295062572669885491420435258480268299564753599167512124264789733064722030529313379431782300602795538865755392153963425270537630991583846717841878328234934706396052967359620056584873249825996213918884553610712730812981902199937708456552425661745592452243350964306373420147730229153729209884623091262559698886792843426859156682606542782558409608521677233038123585429503632291476836068324614861686671815854145873054679222721071826506405973935916583375400744813552272482615159808579654825925360300196758171727467715797916253558859708583269538441106182397358263497703409796356873040329715451180736972031743238343203657582622907893978883819459675188218900966626428077945945373662489659720237640433492719155286382140247721548132703851753211751965304165238008154874343263319447410069913080519375383361935214953766691216539708309555763560446927403175793315355395379524601207597550726105682802400576471790465677690416971779110909978874192134857568883449451353104305345737696919009823734805875661761683172533293651498187904428460836593600335815098422631805635180437320727566343375847190579922499691159428354625535890277622960234805627242656702551246205589745277289139707238268827198110598973056711996301159497073542702244494076074632892170862491387595303555119779601383133062569990998726369493217584852192648393482453796141128069518451151988207608158422823507311569120196548942685583412795797062560097059494072809874175944581577469326395240526373043854160485380368526574967638518558413644238099758578150459849750998250685033566482903711303408383412409666276007167391888288634448452047800064617450573579507661260398313354579330657139020062226021172925029909662700352560547365199277516019871947959612061659493715029755566876548872914501936955112430349549011183637014658856327841161341746980354055497323054285031036962708873968561690233232896613073182665173133053572877391293405192267952012148494745522682282335630538593991129744141746509255962247232119936335019139592009544427283674480906956793133966982421527926051838982330596981476056615479284945017358868527401436629685457507831298571615259366037161788625535215246380344994922407062079924034175157889710721215992107587240751999548730808434180130570519675872199341501163990917114593769704383877084393917444807431486571516826389830879947900317527370145430268955952513072870960612280712676007817011112711988203194762285835404952383816003760592486480463703144146210023796871662498808258021786557237418677761507497465756308244353303537528635715956025286267966861632387540271154734995212935026030436483636010297201561274085452174940893623817294177991818200665747918951520159376779573306427355533091030924834276418342510455419601008421616629120152566034848028685507732154372080785808823164394491799580223261680828194818041165929319376265156461517623511258725999734275645954509641837945952537731431538234106280472314083558651840078838383468945732329694045277127637122394846295708352634933900906664969177736944721381673356270261732033607795215669930932582969309373684878499297707448582375450301052743243016557574997478617883846618203507412974822342181812472406235913609205545316887071555994759867143784398063905573754638869987417897751985696579288568032692519535175523011513969994091344316816685992974213077626223447492048032446410713055715561766902341160264328376250866012901857144746628162323261857011495471530703900709337885779561894426526505435641333999308071277426138904962864437804613949539308379338268698871876695744198992355576204972205213994392079157693982589183821980801848804411503559041190435610580929459533807232771517616139977664445667647870267727515938257780952955470848709288872806735974096662656924577794870199365290948525396613778892372734766477188067333742416557582489466736823788485840742233563886654591278148294520186995195534299428922189657758191308898508070952695670128085118530360054859468769151854560256849312866320849273266373140247357968256073244221293691463164429743866569488569661177783661796883413786750244864069459268430571145033843866094061531731449025065263379784025313816988381088648431213534087726857872617482923331963476194198191839629992909814453562358630515517719402213217391619257474134486155184632728122185163939053791133874894203777981140735671363806132001458006841926681688459906593261290708679735506853657596216218917964067345069458645895973736050300813408390742653151605777297419978471610817896138305230678321649823635075556848145576278633715483020508608838441410503655452043276927288658836303700908607583642326096112563514880641224457776447373592448553551327918021773943933861394775231800416929808884930903966043330442751691921032292670049998627876922691959437717590822569461131063821733036409224073967344226907485794337798436787526801641627532028317923147632265906221960346808683314593749379208164354969493734740464428517742865217975968564541186067983299277572811781271960909172654824158367305402491005366320527194146602459106511131048088818849370768372089485250274463042189025246731916595574255062448576479377318197613430677926407952743989890863335288172279640653396014416171718689622097618576839127484492486167371971366273931511203175090227490993317411151429655032827534515177961094771302060902494167058954793252431344861871452353699895716269521609667128372736222865352476286314408363066546940651686401601258319694897323705633758959184590226676315691535757807362038706203116920704006226348310375489671806018009420108673520684623061194348382840233059244898196930638595045390686220276249919131330037896815737847834694871501349669686222741963764902746033232603516629592599238186583287212610932184597766907628343460316200300864165992204461864832977326931977649476105325523518060211323715841411302780023081143708745901409140779499523437946129933300429542800156241018646877160940947994879781806948763301765199895073316059395177923286999194067433674186681252652889039891130632241907760594127086226937645922408714242128337467159682217941845653179993274030639782818940399257809030131377682347917060201149523763886944308838496140450624860210801626520815664631369526451698527886788469238558368333717607585181583775340512200080914798997494029371441757498737210622219514188723893971923118471300081770147105565936711703052994815318306577743505343299291207547726294043617400132657917538579237053834211256344015959302081217193845493564982300870470698869853358184524965265173214758352629983017190693269820285346948616410536447805710816907811638810510691693087821740891878041337122662248532510795278632802490119610644828231764186831738260549827166210323890550940267153233126604084833394969217090586055975355581224869254450391464495812224403914751665732626080531291846993754794190446301462058425762963552291535898821817511850698245096323756470062604761931288673740035500900877775805617211881677527219048404917533888553526597451988886439873754599079815463657435529195183627946076746533142607989691139725014889614300121452279124028061331436566193455951018128702804940995454084827955737461809380972673970220315765823639262886831160909524059301284783692133638764822690304073036273010397615839149608742552998380517944990972610636613000611387909516102963660193254748669797253683676109348317995193991876465148437868680112667953575151713685725898222513466031249919438090338793679421916125891448891259851394031650604165609228277072201436852836017196015664905449913056172573006556730935458575949393528886087469215896463241489791428319339241538938151032612100501123397833744761887302189765915989390961335491544155494303431462463810992599078500334182920109187011330386194771931324458779652849097592118654598072761047901508825516494164463625387336872322065994620171128374022204912244049537944740696880776169550815171038789071198258912675899660399913678589978346155100567152548760346490825040024794158837599077045438416422806724978435702938490401130878518545714891292904442829686901307999526139299168994553805189283323917858676188051508911196488074327259113712433877453437665387470102754461498627794174373537623990762672443945492778492109461665193638919878874043486751242010566179358508665586335113536806574243690259799872864535252755523517694035240526392183919994730289181280038050578419290352381118353763038835998097139194081110484669775838941184058582079978150715702660242450646732656130524761476137435183021655500157905275793552771509148218965096954176707103810793754631113001134327679251310169195144522258500074027602124811137389971800226708525259118825601176640694258500962129149722649723728069725179986721046425417734790204742819372210706683266825876639151390351334246054556701571786881554254178891952950773175768317366050552193946333792844730035596656217595272956626876700269047708753931757732464063799396601493218552965003172595660161508632353754359685385248285522306326763307802677827629049613462006207622526312643490694271838501858328412572022119740626432241211303837503915500801761234710423022462508709234941545167921937828862858043717060324040029369600212616453184027214375272212111709541326957091804406362865134094422590737245749836207723205315081155380967534946932595709867811232282415237996041101331421406036398946828125709311816552730855363828166245679262566577779406181873372399839883386220950023812530585533126053270998939972223254676886470098528211526636582918945952863893069009009581907125306995958000820149167295820265458087086250070188330287267424742204275748096872643435224496671998851365569031803989110198762664405647651134721909119859160963946110560740072417494597889774472808661459098080356550119092016187900669835140908441177595494275423829144322652865235970856711256843776698785129241868158428773305477288189689653674771375378712177677786408703769721706051457967643554981332425110081000500476560887575988717295813190211183872819116490434165504273770606602038810187305978806061204742490820375912177602741622987264896492896660695204758235929334993378594867023625483414461455211998739637026937284703417500765183589507910280904074350712677112776986844148130659619046721018895022453319152369058236493262036978543163481207809701962808489897256263798473001363515032489907863073604881367125211953161120638195320920359856201788616236222731861063866211239893372239329152643485189225213020641650772483487628691331382827873497711300930210986002252048739269043060309438308325544449031727951491689251586399333362518689786596499270066292978444109530716156399133689131736035779833661037610279596591738927483392521270263635143881375346057211589732610002069507397886471538151149799470438160796743751648724503624467025631088852508100605749111575618859951139816712915328670441063191850530766180369950555113638995390071560726193936348932514437127400822185719666673709572121500181341705014052133387334345700338787686578446284374770613278155731455144959801486523008959984524121548299436206997359949283620841401734671624222709387279077900401051327064229427134344040677200411656649632678736025877102546678277654588275665887499139205014516357786987037465639357908260098275393341754209450248289436045449687506812792899726150315675193172235480617536781062693171201802003978256623510264684381283106546095905954078337846332446077433192750737509768385951451544328256556372820461775843825786287642667014793514450992875672858772861881049531232419773935384867523500424053124791576231994059810416374116405214108931218454575067265579305416604532959035171953902079341038571435377541215086123490466623314108397267400414068251833175696840145414565546829873760601256633919841069894531744763789321735571269561750069169954119174737266272173599459103497030113070872573982822651093866454819531906865913040100148210458796231302670264165222704669199481639661595669035628456061063603594145876335337099019611882730350423869395486726273106107199458670570971533927353191722108672626387071813580234092699915804663692435644018396064210071013552737254634474379916049161437102058906761777316761855808891135538672015673431319913621661526379614662319321587113305127966149471835770725634985430674683279551341436148543518869107842624555158947099072115384027669117207998069221946251823022596586043145704679834251216916622961972616662648344036607022046823186366498923757135953151706830874394510891611828998920411676755142324228707365806942267804860597823230838570552439376687741769441078321614083229724664042126162546641220049671973928851464179672351665580994687842137680287030349985247465934724146648569458884773107161637840327898161023143274507021315767233499309462678603178205764587228409881342877185309277249218785939682612944434622344360328758026078275950179206771358698126009399138711041317781823067714377731901046936102755346330564297498525856647290638887911311298335919340358467207697642980167798366823264577237574822980934182666139875553290082739104669555942066808394862336487896833165597643061174352517254655525831720587597746185158898741046362067286528281611478451819478412341920369051369633177536824336080814666856900157885511575462630078875704191953945270755804986795537830682546678956735541556749491746967061315765437869916568663466228857197312048039586776270215357202337343890870493741839790707459260990496257644715652963435981165434382709169578621894762014496413354450490331498742745915884744947502574743245810628038909205546227148774059332748316452519558789600823503781348274558586466813262501166590819957296161555908814407172895319206897333220737373239801627223619744318335196221987827781786490227252824741060337683523158837615203924036980247426275016651910244125430735978039897938399986943488867832975621532628484593971446194448843219610655486938196409427466632750635888102082597371693489378956025384682654419817895491104541443853999145043921545485266962381210967629151780246394559213938088399304442537689261248909586264865447116305711877266279405597835197672705826894322815294200724592671125341804261900494141532567006573950033948863708436151826389994348220252602091683861596799826689855715790143125329227375758625665288277163069542518012054317724543510384548366380998774699808938856397794691310744641866747709019957161860164277185881121357847249590380076112430529273449546808310699306790427717115965536411836689714905778952400279604674071137303029862645449320478251513483624535252003870732348651075885401107900318924284045772118149851449953599318962725645642576109545851129629478935986230956904080749331944779486562666946047653213408202730463508991463062205217378824229971584795783242566067872865461370746602023736354776829278607829229044027733469858213316328730939587157529208745060646183878192287866266642331861734359383698251292846184701931851732925172511081085982040857801587250880741805225266453800999207332044774853748728949463756587913063178001882519646344289519253292715016025689572533646776956620817192773861877303616144240006647269787005641159109762431325645828734134979483620494922217890098808821368054201366017161994538201281576926301995915633228276682568679608721865113807981871649255694585291211116690901170833098146274042780316735026056802918805328243146598376092483145811862138648595055639209907565920702538181498701658760569791004445419266605195677232763443623648212694838374794548102061848320636457887499887892123832482805944448725739514427930541362346763364408642994379979072712741706241001158699940230251059795458196304043782996799045495509151642421899707794378450420590827502749923557205258398041273665121778889136906676864885540525813580153534644195201816829367265891402228135905482014105009378282915944358476471275799241806902823892928650167745307182515955984565479795426271732073474656500442870210532630841037174237247650197452558116822980475241256284697811629404674013764572829389988324015984173607988672717657339608186730460152077296557760381415266434054156985939853032517470362419511383585332725414616816461219445050757257243153020868992774100541389981437629821776297840368856366043688996590239922334744880891944867199349357335562904782591476627979944853077560858287153432038942879858378171408577348550935473668236003858603550105229050285823031285642520000086302024652619825019103414150441981429520301101024684368162016633655518916684275965480405400134334538430272086048333989935302130615474106129767646483406281793214192539132671775249824679460201139820669856613892365235131827212570940296434497780352740668727387919598162351825480771763792037423505472637167353710285118295393234722374629941555418634202984288287351596706018850146020965858679966760427821044788688324768978885746308662951126383265426121294754167654327877714757416653977091185838043520885909557035163892091948677532745139124686796615202311331350157407074299737655262274567617912723262967918231632795830425712961448972529094398707003815671097753498162616164403962566166768328499263930997661900698081352895953256040840776307442560405063036728939873924853623763224968990386645234906734579415130227403118436498185114051516782493445877647893503259021129136651482926246295723762901713044274005066052931665033954771472026789561667565870118716444390684314977575479188524999682500639275746174151345864099333482780126909425898216361313646949772885207515598714946275599846815947138644681423953833119906383069199800538766778937617333991015302127950775932725997667095392921513649239218417481247628386654197154817552260409311244591794920998807186976662399957226795899426246347405324429457404390986963467607754212625052354258006366069343731227536244155310861600361687023770496714271451049723886028971065857516991243942035067414818969332363061219169292523982335806081825904483155919847916096442069008192998347491120856405699873051755756390176759028652405551156636249137992124874670506849306091003394300680057545169439995163014493818041777649377181273221591074284292696914753460769265277664562727769423237983080966632512745096091381157006500375863834209095263474295609064650799261150126513856280385224454401838436420624346993978097121587122803887139424801039824819435543349935198614135707267758781294860880444114663671772762247210084381362930835244645027078735826778169308737901981180836511849878718378221350548706235798312866284176270263234094266682453429668943927936215136569688427097263299353027092703371718712045593301168778219830043315639273770272642101120770265358848014886472214927076914626157247811986567488640205341997510952157724059325600826546797643376026729987488741593339492144551537726509865193234601645533168006389046153288573711413112120836605157281677825644767744831682055208696559766499840506486997976438330745372339962225404248703885101875222917541754906465903771545188059935692916133595511482073116301126574851283216960435473203540723229288600725530000018558329211121114535723763734661589408673908853017641315844227418829599410170914505426211678710568788913903218804745171693637566828196252139758544701364674465255948760786051978513834289353875215218991636095063980241187133064468066157531685300109318340253126359884177821768413556828412022108868647711399720756979192800515300133705146534958330022912466734431553339217396552461866030532066613920955514517683728607714734318354128190688095568271704277176557594990710594235004293808515288956719525267111721359965181519664077001044632681110966968277760252879401219914156755190393390724268599030326052060532645710128650261760717273387286766796383700184418808835974321840360358667415626088748031157240072929603528337186201978062019917496604802680720917324508374702405609894544529706119349740973622092132034232979017107614952936521337514519610749308738959431444395521248208030691172227395496491155288142508472655037321766026248979249083806999015064427795009730238955851535999085247305269265716321250884109189493549500874928946062355939503203078416916777086572602945336116266073798907254740360948709825289665942091115245765938371472479498453572021222454491223659172759363738640733108826008943932992221081398858777292293064755185463101154874829477451500099603930846836798174789291843177071136496883132391115992795356075302028599601867298327563583597344996013303187219574267998112141512407697231492820706880697264476432059580862050489051798508666657274183577450981423839978983249584975504141050951851454690952570370485504139266843802010261213459842844737346573460219179485348544512083664553664894015912498474104482295880900635255186537580150757411314324406816525647603839447367557358550685367709986759853619393975222937193553084459482357785830906067193065080205179787887279698567954889745588174507661925505648404130629144522594200715277643542928933971842618460972030382781170168716104692442069324235927135386287341241723423549246431832894925616308360263443423336751911003587604716143900398492137949234361329180179957624022480249382055896883553239056470195330411559773216889069949774795093692771740991114387390662959422847900467279624556845319623544535657397903853071535696792577156520218328624984929426541160003256565601539156161961765517490645441069147031140205958562466155216517496692592825940156154532117058477055965609616713728996085399255915738504093898376049123702533144308717150680839621406536715800350815683506305822270514155054229848600683778677266388863665797401006157593487720208523362629342207694140463164355170385826632037700822768880516975506071233601424052521657265818859880175888091452133073999770849991096206076462689271059595204393937016394632232515519387094125763399772307829871051975374707167960756330251036657443348098601095585174808586791324196645186928914811977675530229967058374034949298430209433015626233031868354792391282832534108378055515763196509314622371840567060082738737311522697700772476048835194082411983519841602036557474829262996672276601286044204588189483873545227177537844073269254686739003450782071580069281543101436018685887383759074443895656671947238426886234329313436667731830895067030725491363185761154764191125845898657465326167376611309027266525568490208746829966555279598910172972243902860570723165523303371851959834839653771882064388967374173643334890211999118903428925792180184891321796013134764150454033651846522296588172397827859983379292055274940482496989188638740219519266138751796094144885102371664398623811007146199719704026331985268906030519689573814586466602134503913241948008878483902857632007035293266691863648514596038256555800483380451066766525159585470685339024447390598810033207792522016716747515002835390545150689126605118700647387436510018129340959109850523602927637708395953301348592184809694101344529326604746667887452269704835891460671252795622537214469425324590068307383068317976204241480673441632826113374959055696278497273064731108975066637726338991343848594755335704187865550680013106710313934600422541139797038803872404322750999413561774429854813214772490286654539803687779391998994313371854139503749857512788928270234171487194233087013631151849241744713886215798850295853256894766766311231364254674094400802584504115420084380287889919975735568386972697363060844730166837569767276762674760428057894627126256125859632583276854779013119193256480922706933290037038876429719988464236432874791729686741973377067990735340279565813313159585435620691530217430998974145629033740797101038382741524126326418130701267008784616689285750896259599438494523631261313391863669767355369594145858070591202989772843279928784424017020193442050152368307212993033698166980522720237506919942101379153887596274856003256323489059338428532934420818089664998053086997458405482856561686994330197883160667370109974370688198533364537992343105320030185139906452535271541367943016823301051871564271676217375100943455684266615081153898405789632729844108321534545822264160966974527246667859527799774174297565948436793525662274252273075878737776727291983316958164583654396838349147525819863675447887447695985451020139965991785454518813999998183454789365430528079065012012318617518827385231508014702204935384864373083998518799723251832099998448720241537369078792373120237324120489241359601143795156360367860468799574287248599809846068940820124654527755833877785297521047690855318484989149320750841911815210483136299779692272852952866331289595725416162392076636013019206779784044638381135513625795159498247453448636830785350140321930221174775432895195986425389412679011042861400205155227111333659889353259409202736436322057895428433916160995305915690609665449841527170662650437526904794635241703061246934742267695080688473751091720318374050682619469580806165331846912414616787385785296300481649538649257323103493533029994504717483306256534773101921367150253490833453936227781226908511447684811370338007445252367172627702231306238374274041476929030177211695529325835437106026754017068339205630098671840301838965487243748978767707124195624868315934134747791994787554092183154676171605930497996927358038231206738709816226452710905068248512007798266146505337258543826584475988810374126567130090932366207202163184158235084140925098022502474010919674978983093093008316419264590931907504069596177052237984307948980580404308831273117647422824812338574103589661359763612140764068435999734138586421639583788720115586338734643418637729613778239492022306779221599089205212122900899482755663036632125318361964474086696823397412114551279985429661131940046398935691022038746794545689553961591070501323137911221160639378397717173083629790591360319836977430334313092148048462827903327140870668379331823846508943451258640683634252791634662004359191558617809396808204101096116845149972188640568108555675660454503300774744219243395635298198139067900101375331485104446308015545171454694581015071552755183167792482852944535447002759231425776370024744598648812516514016871142437444449311406371565422716001488316643363646983701014505548680477581708050389903164261362492386277748017927928726170422513291667616286249587702245980118540511767842477400869685982223096814357590376141532514694464254131854620365567406384674350961419091530499014233778347189480483689634280163932876383855892119886688293672570604530130354702596668683297958128098951597168320771769164087289747379310374027981126101516474745261146025536439081903355786036603787090194015246147085317986807800866513336046163518827015838229745265101589208452904553053889506763492207763796365298891091677128836139074961549023344153325440331404003821955312937960664391829877154706707913105190537784336265948831947791021826159162590793354106087361040562031511162910530680010971057839890878835466852320106312082356650977180271211089775053745604783688902899024197522026734845567892637573177831439178691261420132525813197191556185439258938598246209676701063354553746996502638049778983245317828924178891152935680779533811762555582598062332135666853561255759756860237499072802826340198686720070550224524476670289579179736617835816308614414629568185369152515323038222231543698341464296455866571569128272861546548416601883407750851874096508440658477047314218421383664816842370435453645157348244488976699019395919853893537725518922376053248317770667085350208574145725122795314280626186469502432109262077058322212235603628426930300550796754321095288950545201949171990102198742153210730568924292030830764069047036756445019832815663710224296809653279986528932184970185891686864044782984853805883729547653285100368568039350584536664830057037266633559808256238111795293021042828546035456321548853869185399038681065834971259438739062764957295814536274580428554399390632554248999820931916636531364782906787998000428229015056870751967411638018692576221084408505049450850838787477128708262101389604648900463757906427255361795129687064753521633570445583809598154034416156359845806375790277963716427094755803374382905585354470002467014743809984475667390839890269761984367212703742643882627598891872116747035986020860245804499482049025815936239397965311415245824372775305665439538197791992133176340741826055392106257615206540047278988287468782574211133505295093468288489331570697498198503653376473740656881787137070756983175219685165511415050984353473470762339097305584994370351009183817671002856246054322617378291337505386079233925612338397453579504961932827886678344243621020011538698951692895504729041444309816283837127931834527998422139855266435279760232496175515868463287327772620725304252851685135911802487846037115984903617087363605181890995742771086344557886134111588958780505810977667619142776671147337232290189315754118953467103616142816407206622256856547774209615983028607660485594599135474493486253892204505815706881082845396930467642596037310070761895621262340143806316466067799905500888751283958031875754128026772480640218756565530765782543313267552258535978212392190955382708397132256046012923581004878413106987797165546370401835933116277020228604447818266995921464658577601610785175817599327133546262407960807384616768062785812694027874217127990747158440544989255671341485863501842161010724720913867725501501745335698212275964471169086754063073890508974307487432712210475133800852441075159357098502768631618766792130735003441210071775131254822511254496060180042518686738060059876769617635487989143780474535227433544562937737424685057596208329798780445414644412733967345961981933870204142251102568179625316224459160276453624886436220592180949688487992484863662069172248932264664890348226982654188921753854767816335945624562275264139656361273101956681137111290695435533340308741903262735355366882188711758058850813063197026251174696878999329476428691368881332671458657769341648067560826149964901473844936761350886295415754763532380611102699578791738637208798405029729091858009000767136917653022105253902112996598228928113458440886087023709945445357819238186588628902020611357070002623436128402309816339064995003524563492687041077802365414696195226482036268987551226395369747377444438716755218109335552379746590603493106332457419302804586604064551385241335166425230558385927324399860022986529623712616876015104797098691687572030578433039101555138841729893858488941883664412759630610612599949632423132700021409869209146621412678030109865474046103640066879589375725182986479226040476892380276502898534562250253846638856521931860470719449976372541784258444499203152518148959041413182824356596122567488911796606282655812519777826148291247193037318438601167584616806203574569447394991677472276495336840985933087309013228862313440833510945009777519278161886718159914357128460112723584536925645356011380259949129831027674500711409664827674951802043085479812430956030075940844007484525924933680906731776308271052606799468542900561088454152221383932246296139382217786891836648735384994232647562797199993250789639361374098201910266184498656954529836305800326962251546333015463463706604882418505427939758968628917818149177005268341189667247987672583056161514706851658182287534587597697855616871332319044648995800129579774852303734715355183374880247753027442468541651210909395700997742647490114318062124126672859987155445715933074150973573861805616875298689743605703793847083200571320256841199327053609116570792335269374591878935338107527032182248434557414496034504298474903916970985294682857707035744552287244882227009287632447638511906452984125459030487858618507193357410794717292841829151980348746236165536425982602587739752526847975712474485993756639826546713130420224319112679141764885059456054947281678757051981561239227197911327660358154728185744994629881238039873859094163859481221051390877314804443109386483565917950267663946527737622436599482479795210499515898672040208774762535478370295481137756864175162766229457739306621518106495032771408593479067510945203248614649261146865257726139621505834780555101920550642736094351186629982254048078015516361350601102765270805983427006608718098702209203612972901387998484183207517720414955939072581912407625938810756216285915799943079724364271044039818912570491778077361644718966715888269571658229406104513258032828113482409981282321893997892175352850374065654548784401574780265022466360336052510089196898574018412799806959676415599519280669333570285252871483805225356404757414140349458379328027470797873024824917702844455178193672173026359093622498876740520511393176457062234199782028447843995077738456005972810581347126366283658213853013558507563893589758845766400524609105348946022603661577819282942710553829444249969131272052818286119137544897393912290180084678727309493282602594625815801095820786322103983714575648053997076885943956678957453949317072680619684742531093323334641329907486257433895522216813174226978328248776185138213510285277764772219320631015150862955316194199105905271549527150975362924923657976946547980414326356459334506845157031867653504911067247360790409960213130037906536956303181472826607630872144254755997801209851845007982827513188104565998831730628325729688569288212281831820410837388149391447608186659471404822268152142637914155311137885581273185320672804362804465448488761520614423665400366948645147919294643687782238486193929327236569678484621615937532106943374867552649353697230876185989127270661876817306199084926034636852629708148582377391152261618850008549886852625362397926744040553804505595838746557517291404262578924573921792395182424249350618347429837006612100651595455838896419373358310334025176321921323863361716476334781007741397424954944445315004388566896069565096604299035340438473867827238845702512233556408684347230675882450786452199005652330305132978380990561626503417280509767873424818694208256367716789645684655813663153765589766344412375353108830667813438918204316732756061456352010187386085700895478019223410283340650851615296342423270812883862789089405956773294597344391036876946705086725018331077139468143727829982005298017069823047013562214658757525331075705195972544654838398942381894590890338086944978675614500447291729594334624498053278069297120053365286396082766841220277436611406310557581780320993392630998014028708433051407185274515307302982647060567698985743243991172855152815317231563034480835032816236042152658407545396159803190313529372862499364403198786835725533576613915329912216235843707951692406430967082389535897412685562797385501415568901898988711361617505017659865106283280985612435696043338262125045551523768583984256947944782819063916085143173502362096435319313422292077497562911488985416640945547432518608093579774595039082314060556256459805038637612343054537234613861310817326813640896953680028051309613161002991093283199323498924478678472532744672922732722081061605645237744872239986554402159411138720088382223544153532321041978608966198651549414499939010643758762248301277228321825535764594369764586319969496159178833186357516494465739353216486992292255302116937635671357469314339078022555656211829398670605504456730574649719531492863463669976378236574266856136397132761325408433440609598002389481689870479673337251456376439876708313850086682210523128011714434297592073876990066748467389892311748845791911837886638563593243896300683324913890631793113780453468072449008323442887483226380428164011494403998010935351122188570691349602180153776427812724823248073183998858748300871150060071858323292538719487312095751255760123476367199229774593736101645528252840068907988963978882141996580231487956920211280918062916603461523440106368387734938476158128978723498401722002883076627410325402420498089113228733196181370881482220325796737500219463150702361952733610803805640266236225528684510474184735318476429402554166293125619807373265985694001898864976762343669820745874253445880910314564124551249067887087265730651261363859847272289877985452005340910390130327036401674203614359241729610812595530539734386168150742313531698783042060122655022651807560077059649788779937193898099248198118010787523619055873650261103354112251409101838246635289078875033373022497406409485301156069013466685311596108166153611920777691753631859168053054919163988564799454062971140730358326496571156080523374976000778343148062906354174770555164198847255050594914957938304653110409869859175353450266659997662341185984655098432163891992833590879693008868577938934419813833685494306998519215108784178973833801151893174059808427355230220746237242084688205842300449050687099014276117776477099887049405805726931184016588405763289788806067828069676289114901516818988573919176382786678532013460288699836747756553132814115698107784781134787128544741463723880006092695498294538474802650519164609360257578312335779904028631208176288245550185187663267300438152974179294886167676105884203472360205177060957792168169593649932214588743158385499263355420676960753417355823764472026665923878623755205603169069713836727741498942692910460373699389080432017790849554026769267611724986199657260183769151693701954190459526317213572114790083528342844802003499753604045449928795190968379056119910154293000740670246953308356557751144483438659086664351595273913180074657606768880032968339206834721840461255205065420184614808976177043639763639223712651545091857761703086227939203526403269457430935207608258896410498999792143210520714841857403030025609611624414085111419102746521891286726194242282361391331111961436117810990318517274059455131834330016478353556915597919108061145674552514395492419493604969661195706593778679342503747651526850014374263112650531446431358094743066712360927628050745771985377189298206361566671352724106654877542460541932963867824709804629267798066728874608033657928423559456109905256572033249800302491593128180843237820865620314590545523624050860344683505212821628617653705724260170111426628093568464378209141328415262724030941619135950635500259655701664929675021558573376594519828632524899430735513131220829631307095041659292608403994585842411941546120907152179600794735861077001171128867334703923797430110909453897336473274002831888443452533352248804139776033436830373137114592058164688075224548925205862713231294591618071802266712112749591822893075405903724890734356790334263265476576423310603220551605702205368233709269282974458137861862155108302647013478387897866431419603066151445909649306705185765403758941155025075506119237069517079655712403733632256147346890610680780680532194759395221753861614480329141094235795661583494041597716895322982631008302966003135730390818061309966807192919838975999744450574737295741296196901746784495256642278662250084592169298061506433924019967416563301017727712266690308282244527445536131897260430325863147918541793961996241839516938927834674805867108255517207367277025272543773356974358168227482957089477665557797937785000057527805103907940723037589683420388416981421063783289434886433341811143442864271612347760717334386255628091781872492609672605460070767542831560340089249824832637453334515278384065977137574338566709764689959400013544999933977364170841784429537584689838309934950029402879266069098632473019205370615449282633159396189204499588271331611646750348208845638938180008196288336989028598903950275599921104254554508427251288362446746605430874329966595180268070888324004822240136885825164437632736966522072835213076378161817994103996707743541625302648485985527135858715111146301620812247922192080907944117456046540493347030895580170087188278496792465536872450166532108515552152126261583148949995339983484667439795974893000625312871582472767345948397991168039867996626471176006960932730151273373044051794172055533519904021171775704417819935417977453557165291474686268502856003692106327318565579854974136889052070815467826009080940904507189505499743769822415354617774932395088464974416982146539684411458606786683951923189037106437296272587819514701281231766287430501072696735451559080951002603254652740004132349356480718424768337354037166662498863548993938999807028565896917762014607977443074630810584020454272447108792704803626342059757686017552420952254446040648776445784497531968224439054908262249579429949259677552281156682260725535776092807681814385128779375998964526910747694928845203452746273229303633794601002071902334754990021843366788461233601946779999851383575181722636351900730262475132804033321262726082070543226855967098031479210052382702591551977844519191089292880883078090694699485052552601624807050409694268057850670742983993955984674125012644660502206744618314424018731090513663162603523381394027198672451539245377254197068444412562215594420869379235603339076389198329297138083366136105745318075049743961115718264877692987064184070631880833442815504505915044488436101315588742984339924798788253405457857519642794972857898705478819266882592132104050460536505506085843549176027631377159355180976988084205305359590084619419412354133717200399422425918979491364590810678182079953813791336702918460699256289935245931461206813867541100368563471688387026793615218055620369759543171321511698672246914004783099037226906460993522995326527346499844878264917567870891637161658275654309948176997962806402991785417107008231338274169901589583084521518579728519132719169954515916054825775485309222539532237859071160322940077670469245038999732136706859276137674163338922455184410318322651814902622210732721503136180653885072806932242591412082457543263368199227589455876410922681511977886046269849767318054210230264626892246161661697140907112204159163763149405408214665445865081537114340815847548919833891059445231764457393305739168334573193932664561580010169505918411763951130833698734653867490201604016318752147541617629774253353251180688467850809768686434626534091148860179971280961014249387139642859478185493166233197942808421501158746674549578963555998009118621657571616724831422315440795499826222492273085466247663087058534729189662155468006776582637171379910225245687309667626111392617633670375679549854404920534848055199243660585911019007606537463774236868883857124723987879093346719967242741243526563518482622374288743690507860075990554003163450834091064028759918399473227077119605692459942568885009019231997902723800247123538140950512273818927414876092464339468837740347785634717221274793540590691618928983288866274725480490618567810671667345048630433999585450756012492249277244474885383004519488899388563550222729239470507217130648259498620281137060210831249001370175030312329024342503095309410930848713596956018373329115666692465063420325044566479121628355143638710789596330295098296298979959115708715434444536879071428703589695335959390475089182468980893791220094282694073755152663775005322913910370019606330053241600675432873138909763467645740944243710639139734584115446527342392034853573220332418041671097879258135958670846217691591279575257973861183804283634336898402324035962642845959376426655504696397358882059865664364576862072707627307377647546404440732078497098390076004933047817217686326203963880894560109093043039714067704091331415156165167405426495243717051540246595446587616970173563548508024483927924965879767517471725518003998192213987137879083728346132321723167967458623365928691726162310671296252446332147541984095787923687871750869843715590968051450314530081741865896548970031081786570650846848202991722827280312013709495187265281369898676184870665098044974000463658387129489998431514053358345040623344732565716698252655431021991413120601851855307151455225440084933784543983144151582533958720730043052867012958206592726868374632929962204338259875286186213485923075483944195899578746450750152821259507969350345171237263670019811603893745953224502659103672139863268703665319647182101125496895508017509785290816234371175704880488051364195322303040192275392795700341101499963196902509313152175024068916033013034545879204371303128707233842314038205571569069828597987246822714350579007257883290900380079917525437422044035548111460837394690713845139979181706604777876151955507355482146840733426840112258356073949210303038413482686771734888322949356573830715772091094667568984280639830306329150812102953610512650078031248998830269632063761524387327474465383178136541118220743850268755353624004658503082909553477220910280349833277445826383043914319352199812974598036243127398287843415375895788967776581009104294733523607706553776177808198171949333340923284650662465865004557377410551339630981871499568099662858210123447971308916453804465183543869155652265398359152617334235404283286729039457490306169092730490872061788899548716449459464339285380276962556743393865313727193136704350313110651189036029193490066384395568695377201040832268408649001882566961393416450927811767473818342396241040164124980386855021427446387692546108883651948856119938864087797755070046539195332639242068668746732244877076085121462775891736683363413139437298114811616178424344723229233378715629287191771388302287351946846370193352835615797938186035651694502525688371066004715601304734327887081979899993027319017532773607485521501759173546713760041424826796823178104691963854708579417070775017810654433288290983620563628703010846986195072484276156351615242101331761402340997892219838914318065048564512162610633359962109317341541609732825994653961595528948923431559685923358989656751116617186779638619496369805662341294918361815529484892811224638213887260766538414572832719171994731025826902865927374034457516396717659707004588053430757359820132117573437022507951383823322425723138030852075697773433915082480973521658322682386454794202071826191311593066453693320055372063556669138007688179844510011879972914673012330172385495174912259230282582114033270222238693633148847245305777316944222091494566524552103274525233742795664520560284619336044332816666721718024721916920445613183526745234495338935674299810165005572476005447116949212960585598452128347571042495200791474512525369328065775773804165654982723927291148236216309388627680069524837580745257299001517978393078883831733948782574772689694357953755376143798189206507371646476840540065745811714183713713493569789994882568569652572790421873861013195906836107114290360918406295122749526110585537282620038513137111908892501102137447148453248662914279265690139503891959724240341491120325887865816511037052646581050679140605807748323913941529603218290062018442391501797884612852510189041526743148155833897897449536248921199910728188758222411404439709446525693725365604165881904734032405554792122386130963655634831689705551880602168024758115823496509384357791510464279841447700645021547462135450210980681956530204405261690856354450039047008828094562381773392236876486152591716715539860783361644266445016988066299971042835507366231759179222556942682310130260373315618036173943864204249833923660293244349229705436664254641092242245271190762553209032300921880342447999697316345936744390832273579556313555116886931257517175777431043314867294281346271580368086473084237553120483027733637866130160092858982842028396474794451004646454813804104272946477279827275347714182178714986444375014007098603619133554638442226697380549622237724108217691644633213873577631875109868535317295974363248014806674449541115454892339218767661553745470530863149480400042516482516100992963608912493913694087273720364820717691232338634247979192107253712250769107842577647205206148206812464902664299779892513401472495957776390402458158088735722276379432571390265624661702073294335943745204502989766091024009913726416892455068822020040064362740525902149716774357947669612284811284731048096437034795146302200631861992395148010909998354800306052262207038573000160535397824892877914949691269998248684223485415424137243644239760722935644677886030746313831572331215894100596184786369894687547078668605640467098451986684708995938663249392424008352762740762609342085025470967489530832005983928336951902389575646495604321051866669531699229867528924155757142764058657135429377677483272482059921766881307140205169657030240966346810723669792914451703330615623701809087568818050862644095267420580657946753765211348285435700344124801580319607677491318562194439974132287893497668468971475411581772416121776744381035231671442885669722069247308644850223350987936615059135561634165208845602182850020905422334371203449393670821922897464498185994104621436518274816488828129464915641816616451249080925572066758505126070098316379708360310692406109308954547695213267517775062292598577410940721922155725729348977451197359631335754347463769109529381526212967156171906182327793062769758306878716129965012664698187145612952450409543318147260735428328805889688210104625365018982143279453941562458068073647406544016836162977996380740635672757825692322789886637112666789303378389221311289574786338959531159250165130704379386782900555658570617925615135261360717405332966662576775744194625015491787217952134718743801493494697760897706307468800767136118229740405997492294743505883675078136123179586122531294659839212223836350182783084579232754110541450267886884449366804986701155216741071301266726841301020966733280069367018461222904494270052479628978845075889531604864374156042366535279877448171983986018005896965597245008137162798530295113098042593597563072344029305151826839324984656711205018007993729502689359744105824158926135144525933518687973651721639122377690833529301947512732696016130390047587193335733075930789690662347107994898288153500763597631649834650090364627199350666277336066140475797318129528462085847667742337052805591689849077970973134142962645939725820802770441492926933931382010236436807905643560758198341921564949256590692553495121619635810080570140126075922827391646224748094944975875126383367624787749088645115008648696069884267383342302215819739608892587225890340823253903701183188728679883958193105620199829618860284932732837954746011728628436434922229036976921832991524528185754344678592416898736865701395996587515846121623861029037607533748017554260910552358326712037738469546208988798263277649969333792952948026382780327733104741944158309483655054507239253510176199800824105574309947448943061779369328176090012185238793759960026176202459904677011978036244770077768047720811039948153783813896374131519867928915939953118957802185196899220786711168939584490634869445762752085580309978177854449549313674196309452937420269468883024501167856546904733350360322890713312824095967631920535146561950643972088579026165494878930862167624657913978325200918841856299038653543058795061424990589289466103087597702620772913120762303544508205091731650367710577877486934516420422042807485806972780323133760396450162484179540881049968372478802775026049428927117162388622095907525716129192849007912432346799764608056410019806849998236899907223431257149253330592727489795968652670981340257331671774784694801657726252499302224947283658632176282963913090140975318367998657790126979348206618134693228043839021541486068119280602737209107618156431170435333097115499850528468988992977451003536408612582484446057823557714992542658599252486935338755490573700520880179226144105727769975639758184693122882479843092938367866701446437233942888707975001704152707955806058753144910447651196589164239777365048709579072686053193615972453429300860433182615805233813106884160379929419569530300982697795799941425795233193648243131509704434455678347581386702831354120192324452756759237923048153295027192956498916379606798326698365884480488562270265752854661066230946673063189353230239977557672118155148157023939355513650829693073762933389037843028815255010002941796815842488283995801075461610206196939581121563026202109011057957054739788609045773900100281144614336118521354927746652888695097040217223738260218878686869756899062251558154468923662975573932887442904080143525660927929427655721904025204413436520144267367157963868479048420720682033398806787252570309153177717012156738717650037057942625653323925109885574604783156307556164459282253707355789399053752453435679042732034239848431940869914337996396294988040419137035255856258725644847558684586499984665599280715053696679384125682571153566867436786988332036395467089551224460159067652805980714534244934217561803185227488350236170828117159383100341277007155817721888530501323586351274502659773214518818388042450917898871364299281707990527435654711719246567609744163582679166029155573334484323664907015079024976448705546971529694149862134824756963624492019781568132789950211596377136042392862960811858688717248560093327068840173036693634274684867396534601804160573134534585668262278041494759337621519782229339689281924772869299444243611027947840012914719255621003530057927653420265579383819830820563606685601874581622099085175783267298345399157912275512264862723508622252245144189434545245913415751068130427051922518724789829006150474833956953766384027819880681603949240484451106411200091556441970420314116180028182121994149835942621110730803799812348655683163715723774136460551202347589827370993507039928318661103410965338236080545174095275565484184978848821333623096284547110988290142656969493973126086654095867169597357613002092940895339306556615956984815418580994900934372080605123873995961416270097480877599309930224207248525235661776826149615034814965764926903530576442286178694697061439245375977261216795492199116138120721045123315079264244451628734914647889029885164420890877806606182124570445888850418497119871446716992250203425874786935074836173575389438790122148831107628706133272032472239517379909047727711596603793027615578608532559269247500112261133351680288570311695281686901802973497740231317209469425218898973664320847639807054420483795789443920811694750034591916543805708490225190477014857946261556155607860127915132222698633542603385785615338240752688316200316567131726274505326431334850354440283445801771404336791915250070591801028916653773079588795706499222561109318942747980614136304488616167481159907181510100225385185601878735356278218841736077101474964593523561016607928041104392813541755380653138152809867299466014359098182756830776651194853450872993429471557501056170337754329540381405797140793032244040531772104874597356569733085190235041880493658100830593946295602697874356005695088862079638547282191504865872931738676107251106990400671685463715842230850450635553142334430602276201827965636005345248645435406850355010736548892153076775077164466107407281493822148230726208609793560023183847212595539663596317596754769708286141453858259538248034317601025834160388385613833610702738915171445555439028401516938127854862920380528697457499928349824469331136120351693621988908360063648410482911493752360445284982986889366950227913381654659568766456032747337593807103457561573074542943500304022818755530175468775218428422571448735349978323592338465377086063167065239484551031248971664090083689434425701670350519664828185638857386374921400561377795635360015436016545267829556073622357365670383003513997292553724875896600344795216556998410909873780121630082125162740139614693308559014417271184462931470548749199646808449814661536669383039996801142272931559140912133166339710348519267756219282200279315252175335210549294517425121871079633693033463728049615319864688763972289427400552066862801124966814463940446644317537106754768479267087206117192658491797132449526015498877897001884796945262385057105059929025416988799152595865261356021971625984940185363872413436846478219788628732004120491291268158187609976750998420284765456983437184677602826113336774985363603063241127034612543025501204436022788491951590253101581235095119128488896377633220405383598516854433899089376056375199313467746320775321986916001965702179594901234722978470278395240876239859646071424908637146459908287657138036695999446820569088135795324202950733239270122245764268878756528344688531566737081347022528303254241408820410177068004099566960063209237144962711128936545187712945275743715690189308764625221438779966731068222763098359347799840012943145520785296792966461125761423104761227743504596738979509068552687856095477020480157465619867082225485097311947764024551102456627725451299696997356689194097144824429386092474911474386168420430864999996168790466861199665035248079603324312261248983044957916868947213712410488988046649644090520586299375530633991647652522381223312673919722980841580344825544937092097247226623292491189521343468298629013684481264112287866672784448038317835216361681685182480406019681941572997575693583901883039777535482647829272379567595291701357014174230839380769792144096260856870708354066195718716416102460857066918566128205592175729230158707453854079448006719224189782525809133390133209933228793937742791581346994839737550531824614349578137144501047470824154842510215019806517393279735136809308163237601303491344364433800659313487512414199966625978336578335793678835692776835720338608685054281514747474160072157625384362260618447375856433398649334617650793687184943803509371353907858557413930237332408369543752780743121941658795821456140741164927710744446952356294848167993026684634773661487903528395986449033404736121515747074095277762757847011838302897529156719528246710792604003614184044033287953914626758983769735432900007381102796793962237012459912506566359653125000195028999378343557584477489609978035902789555021166178631246955655055883269506075464343353110245316551911071526957207771843265294964694786932044035540437703432785251569842256732454393585690806016740753687028643420070087343384830476853842531025357565595627976795285543869697821063223942550750632169114054954331382075336931454683071105635189874265189009018274480967945411044374641820892228596081562476122512623814541875786511206363801368867173681191360025772347745354502889562860558951640465291796572319887677565364050853995171397749858646012411193707531145334616641654080933255710670505791419626296441845986794740215037272123341354858761156025534476852767176690543802959081977335296915662126341317472206985202065393603795117288171336292940620928290565138194566791615303858971350813562117792694356850049551117773493276989007395355910190058377915479468967412256947738984490212225240564856460244731502477532683755481118509042958578060918967653121985167808708852450984618469424145492974844931756185867921322523000526060007977291850697388501227501246479539166287055787683554966564571485652373703565564546752357604482380192258335918178703712575856792523038125735878505473944684181015905515280894575615804392551342400116580875613132749880619872067337747017936638972605488818863692603265621241593654461167494055644469626818634149819843545122458229888211122311288014001997068554944256725821199265536359333789894629960865993653780507006548250676178817104194569279240637749238882111199476727139802175565108410878336801849984329959910277776690578190966392317547296933682769341601369259023408377070301555347307943765293687782820689559783248131376458111737938168998095581265747367566485556964055973925713454728867539865217904462245765708325069867254770035633873591097721579261454284415455527965351942466995320108322275634631484467224576005360359445119398561688593870525433038936125005661808731890154141366095724100481414067118108328320046411457409348682277478315358609253100531105143489405226967286534431269091952455907456036518720468859933234904708365788710849353727082879369513408261746149622662558237365916514200250604965484800600087184410027217155313944526751486388843813254843036906141806513599256575039102090480600542733110327513401734008561889047979452887435847461922551202563278958950902370705728018705015078161603783048799666997558975269427975156412092297883000374897279926990206976559693075399250674267942757020735667771152093382070683540467933835011173739147402112789124522200835947375917103291168640775366352684174981932385360617967668523726120243735076411963587428937733715308684586163239431311155615936950021293639652779370701342707411102864511280141897541705562607200228366325180980676723346570027331737846821769539343226721078661197134561939623416514079560820356493323193956755688413339304266337584899557910066320790501845850781485076260489896032531506197197617271931002753071168922768023910093248391729651191475455439544207106857084335049782187137625956847627805519164205647236396222483361904212224850246522845386618204796927185477784135674209850686465358614479679971386445088545259585712311790259916032717491073942223868110740068018795878636407667047683215422031971185781603230860724558110818292185936196976514908011363558375986807440486793202371495478371894426600220311509429765828124120133477809882902112201102538529272339118077883753824869664758470552718944521962312433348008456894185275324512593604708334542387731908744065952642113276012538959727885067608710632274518270139244324340191777367548707268226347872703383044266266507249480247576778291146909197674971707556219836023578331086539407275665043777159090711680728183480488163374645805985103923231786320196183771054850770955852684738334096524837707046771282376829623225658084161140477424259066841662661219541168307117683987285093224921116706592979205480211593514321653933830755241310798748002913864146256578631957042627547603149688195009932165331854557268431988056327159124813019296152998168355849496126009930342274708402804694261989799004970733844802381726205402651262710652357268796407026728936267028043761239213793470755029735504574148219317421738937240984704445281297856408114254212779875832677339256844766212999574869709612539881476052068742218105545751256206916658928755056050299415470021697032477003928697513588445090466919191980958718475488883549107657132129920865437234465740447632602356381161545497273435263793524314243030048023801095430427497034266317909048604976696558687816843038657213156953702628558102520700288140952996004307913093406100807482742509973512962734827244402115176576102073326311640784471784150354820585368205149523914484828004215929098996007374554043827531188991062196732433472669968289997574258797185608400430658954307317016243818254529273446514192289167853913665427544466176224235759515516452404951423198981358982134111060228697184958934247076618123951034014967532601890179431633311775264308762951057089808907663811705201290746578769887080198767622569995790787733340751816822594993153734748405404382821414697499182511315420073019083864043815883474714607084869089728333995829379232549838609089979579410180743845734183782488668273763480238500982292303978534930117255251534188442988585456910553766798164179410530749662719993339515057679098396853441180543642697334578657296307654880756071461790009894036587281207881680413912597775249296388486916109839522369416475056358985393190519487082598967796923696341378494093174820520269987057696330906450807223650274184543690743877705839647144340680167405890700164669597257261113398626309938553845964459302717506488411456492147468049668547040983156833174003674403729317380876277608943106430284428028176874676398942911554419065539227418043741157591583932992993746118541241337343676853473886502009214743571062579093115684264039824858579653345580104026415998660892123931448710940513307065031221232477081058169198220670752863735244959645869666793050422229270479471162575834833960334174775510831796979311405558071651849532151818578985533005769070721104550920349522373013027403650698103468005836843721577621508991752486450499464904161335342798748076704152690832908768146453905142017302252253537962777853485262060083442808617095670483874630711988262173948534501448332253976389559836665396565279907653802699497732820236559796773424713713907174435692794750533120251647176078716637438783880879981467031793776395393849259650774985553081963349910209576137695915430928462151590719262285864137656078399235205044301206157094578885610085892880782317174378693233235251944254515314535166103704608786147573208127871987291104313510474398639933340330805239611353341616505359915975488728588214642760017802283075529584716190728886951898765182039018008606076527080362551948614846431002030524992042834259232563072516541597355293575191929581585989769165222736292258243776797883062377662791136227082755366904644942647666093461907329498069230450227857937983117558538995865271385442687136728926269988760407349653969703351109664798404567914619212224482089016165234239088047991553435114454248634889613634685072351916586544294448410354404200396353841889039892909895603609466266949406232919863970556275414210451959965966297065776038711570020205344719269072520239886083957403686859168847650616808134193143100135296849842193311289484740117330152329152796717013938639383665134714098937563090456805699951163306184979131826704385939414910442730417786260479559785330353591005414904045646184114881641072397704383364418331133630095034521098003627360974620799024251547537105006878086065148011802665547952888299615894624551654276419086906979438633694455663150896736167804818601520337836045821629579466371403376988468680715313286130258312921197318516976084560694230863058333831700644600629063052630487812515268375393464190231909205576346938243173698696144524517753670401288866389352571566756152605227035502672698189482109176152783516352804608484375943626072206963387112273735170247414865436860677905411369584772246566378573170024585924794748344020819882797313976881610043056441915672435649741943293624336661184025893691928165722529755499933198194832587949406648805363034438966663326844583006222763778630657469416514969910021860783121991225248652117149552053172555562495087961456999968938931584067648926815035457914602857010493953439880804717063876115182288616844098606724627239817938520687839842232759528173012870407243033276768258371599206356597365724198357170536740194962761169421394740448507852276339781793360746791681457014911560874925478503959653403963377870449918024054458007766442581565764678642662798975974417736002176322476290970324593617088357467873494106720342676234390078437086064764927446769206267636708931389276420355131769055141652963519219396160251573701348033215452870291365177131879927620063661729056082556225102245592842814249703326097835342527828389872750411930119914790296167191085054822638154952625440309617031406906950183473850181881410944581471292723945877102350635591266537129817179998554171951829582631800098969408269848481542111194986736809509440492605660771948024921568559831792765036116293872333107669303435073074179097854648540704536155576778913224687581228793376955598840631342316012825478583876908403397683128100475748324373058423997166518572715568988907753128206674653954862798399766029845566479803916042067663592201985626400907239296782729299226174875171386536255818776109777119190773564113165209902407032055151986285335541766137182599743474735266429872595552108672951318853387694915413263366690561168544853936840453406093049425336349132894044671668293828682272253496877254895514501576817996205196424080393878925881276620015850583785292325470997239808286431867196442025683816533499706208767703910293892056861658665795858404396975623529565948133834387138850593314593542784150092931457272504068968005791466498875187660225922120986282240869562277486383665084851472502323882614956684674110263736383823980434263224037239402325082651933973665045150125940286754088416715099010426868787286513443318848962291193216889920233982673241462737835431435351261602763601984176487357162106600605863982027609456340531143117438928717982633385895628813395259759561634518635578543060231282615590605778738001911046921560566256981354712225800685669457342618022669043257064718400097454907885401235417063089239637533324055483905665851691186179654077568246212315165882263909002243902829295729478722356082496999121848295218883575641625477202411800932240308788358479032557723652820455561204407247129665638948812793246006653718735706039954771124726274205896278258445524839084849312655253498304386402377290144478024264137048138781104411740860022456813397447422697402881143196115336572437423577117433335323462460871679720019960699359084293950463406824922219821044989469869597573930450214158327406819681590375187058830541215202842832882223250689082113963803506325998897800660667530172173917280963846504110029571664539863889827854728099566610612270222842260722349836330995095870947953273776277544612514582565012390155554357298923207510904222543441900725133788824992063163420949163892177929674185545306062327380845116414432577273214562525567386860578547959201337584960322307782161104771195011067591048120385568252100629713434723100675897295740385528225313862292413925018669818370412923622414069791640539677149243971466934551836243174955119564866709268273500444194149913856433658999697234856007524866537895589485928265209709497377357463222040136883856528061143264050391044439538910064885957459706092182649889135602626454312877209161211993223035995153909260550383166955541237495812415192421659897154411855968723313812042533241816942440870824778071812191071205153227336559254365762464644872247033623721386788065235126004723678462941860287067383186035284968841477722621872174265956836728447698038505279206581363603461708992519154641067747821385006309212822554833337355885451326734500337008254266515819483130660763762358918228657453605142996324250765477073098006665379313068098172064413653089766687196748009847077425008231295396510448408364253140405872046473362758143092058816591846506467772281968326275683754524036174205298555904253467540133461117383871264685793784379362292234109308670704123025707120168687987677906662500748997120151265273825260430081377141295588983459045387378900652098234769159487169498003293604144588614219573459462455804434993289168101099012348998479174869445629597248418373060539909662792490475936301723305962282427567335687630074969940690910692617075563996801599680127653869844732328059641679948226362194149647709742443227606256877716714702832323503479165311340079548864585540636335678255816228296212481927821790433007169773898395440241638297830662483771865208668895291441592453162119677423214502155878975168195398088182047841335141030544526300198230082432304891156990284037767962697582126564479250310775367843656577115775288672798813490851204520365252972967800379756120750325071424183251890764781984572917805414001072871540643886562654192126297218159471034701604234087471619817168830092432244745868822097992805354834216414769560068259516238799745756912907946121200144609668859727111741605190849884542038829646440064347149194329300494641829456603853338429820697195073284877575749603979948507056415675459344306622567582829367425508949785367439741903002097513047744388431222971535006375569175448136253576241439692792850099200755593379004023829602848393637486005286744154792397204941662261544405364851299334073191052599038049500180493171144798458710924591932256016599212007831600375489045507547457257309765023059365989773432727939077830934966362914145657266137524690470018760207141199882319113474549275178127327152284066565110556681540614203536146315033479105110116116220055140959353896885162239096846180291499436394100149970362845891423138381116777096315171700700683303283923292490664437471727319308463653928912589055937298439594087627067962396203568723151123060441192415416756713371801207347176708592524165913169601114573505232571818338428632976021576254540959320848685366034979466095235276524073983209045879340682524826623125974902022159617145402126589317470897495151875734666796578722955848927649016959990129105780035669542171504551304146807952290656225731714671824253884362525934127103267713413736080670565971776126435920619278339262069370263046248137145575620857052331950898154463823050642145336362460146300559827704747669707368500571740121092318790017056037122016189416871062462896614914171058118882554147584376952391584592169292782924728992342476328783481302714215332968606888465205793386573937866275604958811076477065720670807234111923307036412457927236192480752941694338617450470246809676134675172476966113544233992887595635416509748071078127608745061275631699801503567655526120053673297761283679888579270694827953359904363175525143938854720297883694005685277117369117078381760766880151588226659103875442225109751457411762389957588753602227396324282390232042918293205545487736092467869614868052106807897232869042607750191854307841534130391884595053367648882949122788608099040352926342306503958491455948444826194471148526083780540663887520958473084415398988096290043113610305211022253639824210417305026073738462998782980785262431884767899188333079196153801020264108980586388976201724450066340428271558608355117367641502979302077181466530162584423386257797249713183370769354036083117055327055470635065441140362406041239634699138641295388856341133363876104493014506768797315995502878889810913298123056999153840882326043438131426911008394642898205316387188365474165554139380744094579460783180576091317524910742381795618950713444654470592901680412300700910203450089155483892291536586250309664834781642802628605781892333836244537012313108824231420472262537380044811315750662210187984638704145298559193591362952745506903108455936574232052065942902375146355670953980758672310505739394490167959326953213649472642144771795800035828358542034491364524592665457155391865295723636385373407556118145233613540676832772186648712985270557534743396136390434885003898995147535710009979675972067784511022579872579619426482850631086598778708682563378932630076125593350487149726695065041520293336494183928957446082900667366171670158360619273890479773982491513057999847381344421664386059532218671718456434452541375844325402096572681792999765599556767500562542360990498041847372314993825504677664411842746627149505689418983503457534310665422142165053315175336154554610453063423081606389674680237978357597337907054539890066345966437045801792355659761320444899822538330755203875733758541968598154436570989085779697406726463520681804269787319561161586136662799267797394668819550014550847924200672558283922181597795341675559211129921018637920709546271175354729450108383836181754595551614213218659560577184191500997499026763028230781974308784901357536692157687201832055434714265195001824718641450289196258595307395852364127030835641415318080372500771123370250222790496919891328954101232089981496513215864111574635496496113372014202930449649650080652283990079466699400195633880124423527622463412502694126664532793906800208753302064828036568517768136963735597727803369991295923233092255314271961275510498407292364953851226732018271842354467774715125925086330870189601228878185341380593805076158453270088883899443029490379584630381931550778676436850056348577675182632440431256711417084813016196020411798765544894496095041382521263221331858295002615766139395182457224533817324956263042153831122038831128776404338097577639168394401732401429622965858794053030588977782543101424032794640941323832096231036489841728876226911490075277246438078116202858401403982170422188195779353175884969746155742968276749691852502875843795516332699949135081011762788697048008966852329543705227004407115880236752504803377544755188577319704366077708711853830880593398663942390140347567316076933764903562130585954005297902900997880391521077062959393369398454169389921125355883995209750854253486492570304484445104759251369598239199660003857909578801081692204353989723662425480928046673096563578057579407590314156032811648809645436808029894251467107818652635150603124024891771831836077695886878455836628202256013587150517151277725564807048021275187018282984232208996308126745521284935355201959934391059276057596125490034509634727767137726931955515549928367661811543247333301357974620267971446172542662557318615912093910076284444124533121192057673092696599158563416955787081505171981011518779006291610716660331870427282832104130016650192965362279521696938846266963928483641098039851131869491611805430206355575741018417475350946082614912763247651807462598586949204549552029850854900780293844681677639549527848240447694075639177421031590601945174347224626453097011146930394870598546377785817604290753700302957482850278618483838099828227718770941803794982958930505570046934786915647133945193789397239504753247231727361021843685166544941166859976505837216263267206282957742088425438992054256434309993666300829726303000829189223459213677307130977349143079609201815723366766872049578200928079088941416271996963172960080648392611671870271595417440759258743308537748431016954306447468375092349826013915740016551974358018567906881851927933990147222988241765572938967096178651641144083290938914155243479255651999775212292886432622060520067976558607200204992756549059555259538536249476663690034268297105932758025847927116095100541030544130192128183680022498013586971632235022434820292189781449154663658743233903805032508508131690470333534254129459644548575183383506257414462215376969556622283912189452371036512471704927083836771225464919246420065908394326227316388196798241777601616207438485557634132068657159067188087707191667174878033977322145212879415867579100821030527841970935723091978115642535564166542458337473369975560392703769152855898295819410830579383338555866385013268332396403556257832816926499394642628446764392147559007243015908829664458977348431713575244653288157939460801472940454894425892572149622344167541198415341873332504383275278775030255804051270877529557633615698598742684392279815647178331457279410628045498849892049112587558811515455229254170033958653523538144462081716471385598450206694181806315697443227398423813528009452780768513075874130847354117270680385919328312230953791830023494568418490106361842798349416165522309682339942907748638663692359243838920143455170952475517211803422121597676076805959395066284961606299621972049722897373274257070462615950578398066299394770271252677307171865888588587617347653593092955568418396255984832591273207584285050370548484635709523298026489965086722298400175829035445127107391504007129540574163896880645605795424390655341705896284268861337218684183241420437889193279089583483747990643216353482443345817312173047027635386601245142717771311092828052790700130648801113079584819570960581439068628977676511566023958124546249357068071531084801304901630471940504499241734953421452326751969398260832413403739525888059574504503143816392055630778402514201309293828736570162194257435628914079749420095161684982250158207659957244565795754261806564497850367640119839784113916492392596247358016085817171043774702535176448349356110299794404917915854564766926515012159974830049220485485424724766347395491792181671449124865705197323879748544590958297919689719734424207352187296258413285983842758053072174160491295494238864426583060389713866347258448687564341415686097086192611160890737070928956414470113411184739208227121420470286853967383523898809694622832411383326329720282085161589543256865283502485743052436547942290821446167106049881798035646014701709863512124281316057365697546023489786834724895884859295726547491378324306890820592350754305257497640928032815556169141770908251066996575644840885535237601045846489156219793815247373128941073371832115732706024922866260848668274341983952429777566155833368972244006986534870351666871527233887563359956170711237265765543085275966433648892622096464641461310968363986432806335030241779522933210810758460367296929952698488568718994637596891075035658612716802758638374940937213852456415112444697176115959170171297805743169613873151795221029021914347459259403524815218378738838992947319616852085360132466230520209282175668785003539452161524459371014028698653237484245532565081953061112174083634965998707646063683101215779795979304715075314309911435705973611198887936417839047490900856003089617917494231548927967915248505631446246945659044354601896345095319206614297731816706764416369361420956716968380351604688203454915831511196203580162664079961487479771907893627644556780427439301924493861665322945837546903601836072845595817491154353255910806063569203612774744129861215570044618522473027175752560162082489164489047027647069932111123929879823640377230333154639965386399864353089476100118415591002702737074045500963619533297883965760882578388834684981335180251722840245396697397765137849110167576512894934669311846890640359485224019833077339217850173041748903325065492464767677455336816278880772236639471617042106870887633187459817906353955989235614878512373735812871994530705028876329044526075253922620957916697922465393514511781167559187586679836248044791549222292469401120664649793360586180275188329628659185090517838206027691331728728813052546146294318512389808076612137468565541657624571832274134986987826408205327037385552780222847711456815358211355477118698696936486074675714402398993819643471962465575225843682716951536256571664295728058561680054443107851843333545841408593879718239528801195662121008865250210464620523543847725260700655865649912588041232499947814517579831832067985687511029248949290618602281482775187431659459644572237917607533295167497301127324526126107590743016717250733311153505024949608974354916404641449596733200243667430694985281029615802761307147798385535934165412667171111153220065894082271233479009823103799459254611816523352013603590726180423577800719867065165814898443542503461937515757217286556889482487312117360504476519920653031114813911753670417140734275990279812995584802218567668281030075462433034756951047747556741128512783313567447847703332044719806761608644303664900732463890286681939091385615211691337461484932637072565385203594840755727192886453259362758763340031845466774544635043486669386613647925811072438338670940089871412379737014107765028915604366797477310473983004985646242044688025684494210220741331294036239891962401951552357200336313016310217694213390928586891385042224747521830405877870969027637222002880868678638015853409036378578781812577608141349822942503934629969492998385935050208370361794629555413016662364508137422818141111898763713320363911344417822214248643825252721780943436915034527089688033524751029701136146448155104105600831362374206171970162341938380382143548885608888986876128124738139021220981472828358913496567544264300344397959488781721890828573959437846373702834040720706571590842128968130513523274596788764666442893470996957297754833774035137632946583710724298883944866908138661834634966509041691299062594584283845914917394159051196518675540365754593963737752535675639943194931025495613583619880790724179109690519393875698762862899275085210662200493732079554708652744988872374077736207930401804766996479898196727793309893425209867068890681524413651367303472005416446771199106460345402260975614627976604905919391959265017217835998826280052867399685040025189731775719783901736840598169447179353007969334153153067264659101754067750489104194424583426572362841044982764378755994191247124223667859806146654086001723045095697459812064484226780368300730659557814864839465584071695525687019160463061170798334544550918148690584939465980020364751465725099182463230894715971350241349979817241519389610852050942614757446688062867126084259304817366832053535369141922230124893690194290048761568091485988747844230832926434407268936554997892285630888838896996705293815409363206059209352759319382455750339105049648767679592965394551816938902205945266385709869360230746269594443794966934235405262965424604966246099857645193797752422561974975865587443152341096467938131508696205735677125464607629382677974460468908605602324427909469265256259799687398219579702183806719822406381305136240796075000580370100734253591326847800801873798980387958714350533360585471085629527416709458353545142378490863586948592323486285911930934716824131982397075815247051496816084685243350723605111024703435666935844814809564504426772323740587808575747321535805514032618236247056330838705085337829238287441901931215366675635511986365221821801410679660151133303834016165463678886550805769570121565960006027058758839967168053354774478165551124767400621685760785780476303375597257160781423694497549676365204724958618983902711481473478358033490240891700030627425499806320326679163464396781615890833852254664984718129796781732982506812968860825263417458183658550635249934147768872424935553594212183542702185378149973812389002554708472593241657970734081318415781050533039586402768660369526946034547469171194106441544335328185026317928211699680596150429862960786065977670524840941132087106319331680755404749952353020650387997040157335827986458530936186278371349210913328731832580630141628218944790322494228783554842210535947315122611279103620027948161758486958887046835607947831199627297206839608579141505375994776184531470013460565248801629225464129098880374164170630473027425101501871204088598625227851971751626663271171372677460121485127492551272044898622992906364942208749993272901262022916831513806133481463907285893535969922136483096044733596609200864297188651390480164290099104352517619221914791005410334540579584970855526731160755985911214996853002396217769719034222244362492203808080508374474973208679475664364319560636259207772404769397231369016690864562091477137884896436046907926680597169921131011785924269162738197203090786151508246708152432759995405271330514944788731033752271802284451936354027410745097123407003517964346250296295292736667434361242253273994680508659802181430441341530562266808534470176936405653065971337867146837437518362357477870451835037990230806570045851780983011175467095936808516610671027803865053936817315695955356827068180612470300132281419307321129507098917244297126485932633821201668876380512819451784816246641833516262285104401559373349539105134110381512048277501588943767061846492353140932414859627438741595058986667567014810066859719503188795239097663341522232380035911973847688226351577416742104806334498366259035035732922377569741668273472982240453425689006651040724516515313057331434492008026361231840562094764440308632087219983823461851667178052308012529796222587090570277822480613886214532024366649741092848110554598131273641564358114370860264896025733794274400534596491736948944425539725545471597844394054125098772265925552617496627635146665085617835532811820542385259087358475542162121843966584637901234005557876507280690197863219568533128303701100036591168834576903277054386888072210058429966460579448378652105855131710281076716282838411593459585972756161070166932060720194431252807196855778559190606475944397141007856551037319651642100970464099084732189262621924042520704864402400272977482296486703390555043753785781787731390640803454011854207954562237322072682219245847550071334743093172824006015454790584356816277860098838043845240703016585560188807388426175038178166585136079899946976273990951480389357393771313479759258258420164340644777836569780622232675929989580126948257161354364604084308457391982464153385939326278596906015967987499405164278462773490915148280797230636650880228937734381124868619310839612321990067171776548936901160035974178195714206870376078354548537792171776724201784183313290451599454078016375702713052109192722979700557718445688625777296142850388021516739551099572919561249945854903591409801658627418865620466437446698490753870080538626954539896237579530562525647453821089108952271715055820046054884742333388439174371051428004697686750704937600034267732392257985555686956146110832997193829475144359703930042063366089552067198248039749484576201109106534541038170156479981064038930012297932380186533795802865262475098051490492662947037263704703235085737697186897715998109039568346772638924985700230662676628261482369188567166686072071317925687441261478781264947289118420828114154760360268548107467995068273870935414156773131239785462862993905115475506426156462661998755554603502429051238033746553611645622987526210855369673647448890658667360790442898139435491263852803439991099003427376580758790128736195898479234242718746151724204533141547655469462813892952485005034127878612538368669461189777708979855573295788092560415474218220402504363523685914714879188579460425975675098124924466936485680364824203941684322431186631451093713246830869563050082191604724233331404507528326643834968568509381403786991066697154665320737080813352094253029519978294988423707844188240765903262831350045910932494687426233736953818970710261409864038785896416748724133783614392676735443955407363371684876711948620869512539840597684311394853848104881988398704908472503563249232701749358949056937910616626146509983134902059094193467542269944091075435674840205213135467036230665806394640146011636332854111042933528997969715570472153613935203603825596266325435642910979674082686896256642563807476280693804217958016970623107312028035616366017438815165619398231601355067640848583815319356329500267198149596133236214018958426255733100270276743291379309246527838355303039346678051232760512245747623360447492975374764041895464622179315467454476818974317931376319459262574844921484474724205214091392056663894058159765372215358536396506540119364433690802332454654098266860681769438012668089124546660403515229892747438886785966811214556243945350579230643317056296105102105886797672542064621294166816530545543373117159425543706067991505402259713895081709927699531467070766735807692371715739051394461622080609598535195657014111229565827277538786477684981748766565943497667302207245239161515287545049784057393689212566529333862514437650299220896541121128609181656599347282300950826354691393947575703577487256359902979226414885788122300398833253117419906789179003617426280330678308219921997751631946291843962976184357806769219790679156523836656146014386441997090212850968918720795041195170780651872763107933163609850746860179565745435177027309520247047840181511635169607421125835911534598146923481081709195215403269253426510884046468979808967816589008254297819849145400703195512449723509948757599777856110289277603650549694041955411159691211076561650060634670909886057377468646378235002631558180775203867003302579146518025614093720097482072239003835864442146353477491974073204900644457956496463129997728745489784619175926524709090180144699260065983383540336058745255185568220103139587942959976045331654227243053270085365422445120597970754647321037717965421495400142677329012670327689265122859301938480470125012874090633786731028101145562907208340189651137499811909303713728490195107212570315345838072115268754310344963575866299900731435201227765853327173837396038510410288673888822760101222700213441491260342882059126481602403971847977119674661318794649944136200672636665327101861330957563223552741326737158793448125061914887688292051058020992822220301406130005810007225436805849834671350961922424552934972573217523806013863941895205708227984337242297991992616463232199442822664842799101099700844811842507775753260135789464131261290579933649120556724154641853392499508704256533517722487755277860947528210607321130288020685471327530676189589776595441450921242754183763875596996572589907811230744022645558081730106443202174472874080586278405273698454310264575049495402882023703552488451480308454908348947572850494279769241448439725898328130678073508942812697591440553015119016720468596572345134290834236664219585559060348855740707986631121121040363910126038996776689798061962252042005932219115513526441889722938568234651484083256813268905808622538267228350851585272175216718569063470687661886547588811181713860103188339988769761926841552327781336745525206347224952253364395105314856552601226823539132765677114638923553942242116337033856608807212466366928823122653607728238129863505377171548835921390634286590269484570853470146021122689581262329646440468176602822686194657057408928532573467980115621231561007030518458598529053391881180754621818397477064069263125585347043803127992064817885884200349667519282839086502884703088021760750294949825678303855410295643231496086515643247409144084117684461875375612255418221844556194286975928533820169005034766344268271133022139672256623440171185917199120587143214079480849576532800127479302296104384073353966351706124562679574661937697070369663575735548168311880751135700106598188146067539412692105265400809275607596400231318318857646776366022181351383430121038197388466910183858465140866100334195524212291854533591151894000141594293860779771552882417365446612063647023956875990819179232397678029434983977320156100702367195476989479801255538632821697872801087345667187391271436980261371032595953291997717380997114071367027526373943418574778678378242433115272956844575344771690773084163368078921991014619742344525258538269857208780623121858668693753868345997283585895400205940186176527055801051129443077458533042729803284447309515458868176761174012683936822248461342461570059977000701880574334822805479791681950886251654027011741353409935637358364345562714315312504115288461993654619452144296896195088471135322293321471774050324525626421034940248628905802866498257012827845655780748388167194381074800552895221187329151076213545835413245985201694186580232544271272784836310763417549637765643014202966451308238991966636591195528506101997456645639322959647083501476073595338380965689664720388753303649076720324796057036507170252414412071424295448170620060882735030945797808055386372619449526748002816206789034344667470422656715328362268421850061149456976250727406459072037870613174256727467432706886726016415632593473654067136084292188570856262166414910670260558759439620076347532350483182189810634902058255946996276230753812607646449282034449564269234648218924189429256772384396443257650299985062913258274230455604674250590122889905861420363945245686674290307595246329175944085835617851543295421148944673420260763612550612883119931006062706981866556165532056013760072353035739026366580929960698432143244634533876565532290760923355980058881463090676358271833417046317475316704613471096353042058171161613927596501440421457506295103929522956432701774247399048093982057946102665014464704474582199187154885189969116134537345757811801043807267846107671285747866192608508322920494974371743965530063780440037747351848417163926830214298293513427199142130010040569677399876485847312002166874946516466791595798470238506757804018185391861942761315874765193191701046534468449726704883851843371617646587634014458341895376890440589791276007179221835052698941537945703134416195454431586693244548202109913746858458265020942019555227431901702228061861731556403839836663240655106185000317544115402832183907382370530426894165932525175318209278719584515348946459456131981862183645693967540893264826445240068382777669628554772907922267728979480258220796956429307982862340622547739149983101730448783191708207584220530276064743668792458841977066446752300014557556756797819326896010410299635442409177265189184291343280315417096201349500885684162840389552521221951100589595230445605926449601221703721806953042964852647631241337692496054922236788714796826169355422424349094625132518668459928622864730239985161873875375035151622546316179743796697120765624263997662428366715313922762310472768847510254972143403613527008997938259996514515588831070208240454837841426434384204482717183076468662822161990153710866011248665946953309863415419773834841842395193805260636161355496785169226902758858481027157225287364622013100508638099007259608463161762952551356824797343422880735757669271297460745153577230893125583347778843696105441858842346931966092741968085019197075261058883802907366016634899288830904401001777610084867202443291689117882234755128709337299990736545305136751020824234929788736716723297076987519480697194645622944728141579339802801487378030532100965073382639809505066650643548792853167081520700361101452938664211687485593935762941765626757202434615593647525422958221440881343301759748404504099743815244796520602467288630001739351446956210829175675021886823903663731033157535819082756821638063976548110633267104639377990552861156024097118919288961409780387984546128423215749934247532133845543041271385220485237390904474362495849969328458107562269778233510678075676487561601544319100238196523629028895803969865020863509366202976684648850135352728807450823857649919800400783430603219121490448536072008997033512172176407428154923265496632708010627680530265797538013225817983390917541501491877142084899653915679812809136604476279573285225898159008988151184304110849191907922635445225526131030654773623594436017724128039277074566329961794016462175470716233679576869801996936018952337025551456238776819276306568342521966986078886267083926461640737861384937200164293304901839047608072544086783652994109893867067954058113893809769307469658652026255207039342463187129005793297490459380167602114753925063936481227857421243306016884871995532984818211940659777003659836593075953932149922354632146701255251571600036607948051133816475664718947225849344348070425816315119508183926307952768746580102087741940770931899074064722193624646948835464525749298129883832775421813351776795621690608021674743453470392583949639332318812034979560361596789101361431525954486795525178965696761502479002166357821764002682858851963381610326315574856350243622572654053069545366522629964809544882388056303344591270029842012299750133424787676598155872136457306778266322049153741096725492740303365936846721019168167331267845404500652560134984659923020099473414320952683095431040603425713762821800568743830781795501748787377800111417330607681946269268679351818446573308386664740944007549780077967301872812885948896432296373313089268210715622015827774683525283184065693806080067255473115010631878914694428416420755426723395618813509468670509142767156713575908969517390926844852249368601259035496949629079607444078450391854501275950094003485446968668015907989171262535129405509737817264925149438255713415695665585292759498316905643088079847385635101057242325218778880272976023185200662243003366470627016182056542579168072985935013736911482551900538028893017560106510005782086047593453828867704256008930334154328699582029155819531450015825827505610985823663127003299219565924714316820331593114355852745115643738281285916506238855324322764673982617010740070260398720441261497328459566515375523960267809349551596330969499104401099232056943891899485771500724321557225864616654125682528762094742639100362889718759662162814843463103406728653410089836624889808350605054430545209053085860184670723080120053371849454100462676140692886545708688302354023710492599331999294247370527630771565666922262907087965626061959251881777216215162073991317011480077015021697582869918786558182909012913814916766203991800639745287806270478894539362658679124774370131680994981929099314847617137051628750585814229446311827643390504715084549220090759390525205664520502721440539314253380882505499140233902795260714423238769585068098524578491429686863117448871818977173278489626367474318323262713773433257740208266451812607709187816986722178510375954936854550120887934472479903875796148714217843429079695989542479130202465686517913297251466390402314033110111189325817141004488089848818012557241121453658607181870192334785646073309459056960754026593574336962712567040453953108574543600756891375140833819567313704395374120566766300900459780343707956524765010861803189900639461902296767589846320221189656301270237030555804362511130372704868458563689305649591267760409385845998418466952852189439353586129977824561717040762447132122092896183532425615234429468997128744748002330120244052236692296172070041501228205401450939966438215527413252321328540751486196825355565920326075207711051891781722264279255973103085775015316339095404359721270156581347104424547998906492321287620429065129316018555277118856069963143970005834925165436479294523030572575904922364889057510851472379823311242725369395082705162819677775188052496148786722468349845273683882754410691721186830010901429266461276296575186130901453137245206323511697154298483188371595230450150461865383915136703527423455423811049145549915093368821283483877566321519028064250770657220519257556475278262670175057690650870791441336979140382255414572048622342193289194777337656932767148225298124102903985813996471018931738902759150431110510590771619726750898235230327412717436289481215712167148502872764350473869125832746613414951533605864922113534705290968541821547060144153237815670862970139199830422455252191793270912072889062160843595826156984566776436545523899400067875239016130630745109277854567166638677151246970975847067135150046415742532450310404949148600421811924083583573117465752307036897077624106987855956567389579363989853526369370634669171557014134740820037593063130527323075505797055778187477019342963862073874523468138909544017169984910216824056264011352030384179521509040174547813964491096180223782371509605854821404554007234002928361252847268216255816202005344222221919466873966854936780400285091446257690819989429061362941836957828081796054120793808968725101345777225222088257838156611998727320210988659396044196040560471316732382539249152485393930600976775277286777661107525611441040051503185661932740237696665324997274602274510661090071810863894184247285257516061792096757820374294008940499491660236832714176717460205044819512329999140437788659080368846984901605636249780712679834755236833871136978857422448174031085055879560788906003061361845862401748297783242410538157265268036038443072147293764258664398719531713442862110993808456283944512970147589676346832059811464958372405403821734270153072789337970041901229588876854838715160767035072055581035988620612555470541337115591669381148270097435147549166502451078633964920494649796210714561648045969271990526728793093561382565919768252975769950016578439783302274622338680658158865541311090902794786572215119362430542142665076579751225154800804847638136790708260406393756514112676294234124841737076305911766673681769048693551836519932481210158890649039602000873622497775308185865226596683509389709735401460911155442625264787071828261595171907069628865507237789741566758980685082833759081273795988433199971627365029702603597496709588942079544827004077618898817917459231802642485637989501779626403397062010778739847682856457477868761041296958804637249445311245084003731106685771126533587614403828811582224402798120971624300632958999333152845638113153166254649847971478592655838027063225310640082885533223567526028365356510848211204835568077761961752707932423550259239299866005032631400017558658543871084983793800613145045130485759346615728177848471805273155793794551366594687307773019684434291057242177718954664747480874229427018543278747829692347299945842626774953540400775030292458592081419480332776609752584737259732100005328291586699172397364902110531242563897193205094315185524259349966161274862744801533750440327944541333585066634490246952425699846882963833758348598125148991133187119905307004567284444696141700488590914183492857650950613049745646939441511219555889846551168793522607298402881887889106043672688713323252829015362698852494333716643859439334619324338960605601041522187415945713778463567865462884889579627866017286137583147826266993578632336949370530177748457152222557955589051670189203165829750352959087588096546461901739097477108866080427914863542492051061835914631420021632805597612403946525937687715706635555427288470428231644611846181716691269985441156761041857998107438991064531937185412147047874947009871650475006996453451537645083793590930857176264523723983796786612811102792264082131008368033716961243726482400216851027059945537583269122956205416935488880455511216548571142446875321765716084892569825607312548183447602643344465358761709112408218944958378764880864818893704811151243791445574654161966452738165691132463387336712833020368568796299523727326871412618227380975812200483088462859635618848643078440372207476450745973269545472669171807933282199493186178815810999394981628066278296189949193491941165549388269108573295163975158879637289302182528177560028816994311568042137374935955493029044563696440864530862409982568428936275303570363444972945773007331897247245762895426701352998321805916796060731628904848628096182843835021615072441304502990289944941950979124171364973354457217438463830404280782359823512359932717248611435010910200516715778860717188119291963165699912090483181495182939848568715747229168345233670046763156271802142056791041399652891270778602271958103579178365467332744868795615655235434379670020047916917986515871337681946410511881821033973902309224158666073293294084288662714349889486671122611300764177712124700418706937102853902141853658818426178782215362126323929173097406128325663672041724318012927298129498289977645875950084566512919133191974052263154393073917890617360151260864275764390400536080858031296670078185043275913370218992864985334093254420677330455397526806315494074504357048066778406146787702087983125317665637089808305930279631418485305000902190331911050508650130013015882953305535758993437733220953160886314484612460952694515183398296116513831615067748078714497267356023152261900115775567357094635351730146565009841175062128597610264671963225394076878671994931514569590455348270257440653784635250236260993441983937036430602518556834094356409384665259537097769117675389973993836207434819401401471432847625205804829853975832478908733111634567315140471506712183209820841235591611172941370511583259848010753906444967467256024349506824703314670318467549219298650508373465406711331235782251234590637220037671755254177676009935968774476196059517046706088668158205453629128369848180523379433495574612999661360821003800718770739716151767022818226157915775074970972332713830029502541917559435475192163333133310758764356003058293887956606037892327055002447734498444364605752863030789056930148934093154806543122611697832867236029543279624305728828070651105466452589406764199084992550620909232811215432989548482517222972941918156504855418926405881044082719018074857496479565031382484754776932138894065958592844794489573817796179172593526964608930082674154988954793173829542998285835487348453959149345002742921131852514815397862363328618627365156508185203062169569674665207541942460606899425488319326258121225064144214751836019296105930269537539415489291453908283869362412102807659599079374572156212672979108576347833558390589437126572422611807993457745076201283167408633297488305667425686200521117165460024995206508774870859157584128874433188690902129982765733170010648698941901301415041129399754456926584313745734171765278520132474739115829142470947017659285035293359853147707874877166385009213164037693762051730747682398565124371747011954581225465875347101488012618295497675083861236091157315116118266909422340668565356682512318172396537583610732641324785588886350439756039178492024948934811389443059849125323354460811605435158693287903554694990985336266251959075018856218184611992858103176284810987495694055810473425829470302796302678318036091300562957373391334409693042715234084123348703711648928713135230103668285440897683054386482384796570893235472932192931703128205114249116721233607700546345926429337578244821036182462920302712275776861467573203177684535957526875012642442900547750156237770445343740925593229048936130088799688447535257930623047791414986523529626404064729765229935357815690330741876605806328634234051255037780274291651952670041862185650252938128272743170792142405544815099790628274833869465372639117249333655859601277213758654032682708654225043819873412742070373687850821795834127553723284791032331427561942549021413633559979365346669693519108058580357640921693459524957997467756739348675964664743563830078757559923101688133330223523249445359747738841129254739269465409391722332199920366891420725353357354296321720316729008073913381332266397352925946773260984527247281055049799709209825187170094036317175560516236404866975466984051395148313731032454556486069845597185269978352342386178130842136858805603356101733165249114426737018919965979169451368563617525435904820777604437690104228811648369458047920096357282629956503441166291035187247455742313442895418149865213965289152275119684934944504608385830214559134035459336440138913580347672762422979388470091567683966705507424027719806463836182209434889868900268369295261857827567832065417323686473183218514595773666732627609398120046369532329344990793657806298764226386063121836932552981438849947089203200840767918637718894879517595300046959433749144901011106389524697875749488892893537283190101506663667989411638331673557615569038662192514530089682434245208626380548022365135624010363557666806377347629268132369539073831633758844150753214378288596229791733280365367700681536613514116491184220595087190318298731640165754128239586853245790744336826497601563282176492130047375063302088356685092228297562458358159189691417882761369743065921744956009945498963778315986603445819714293155558516542440838418440027357831947668424599119361757255981307194352124160509324988260382946489720887620844343092699620086193198142417469910474357214712594208417687809270543636080203106958185678564310641397211426785266644177469339959217948362612599599537121217283120088061469761049144489454162532872093880531721683525935542850256914417191766019150506052142919328704920392498750593776133977313911371887781007599217761752777228445107672579244112116543627419294657644711917115758193517659570702941392050410546700374101193485659089163610549930647926120147318628186339709392465306156565906472405323165221707213687235541599134821000644209445866901548961969473568008295809819633131836748356145512819517998160561028113759763936882794318756997160368996711968849633429504670936391223370034015208903750984035967942784386800832032240572992092799264896221449928586658386896987519657905766835899006271578140586398430651507512859387741265143796850069870061965718409721031833687325828560544051342899139935900421523389152507698320488947055801950144735596330864640396112608998989418268179016734437667325289798153978089617010762039553283167774765481891206196237408481459963413743299577557394698957919170660484682328994522974990595470703036155634047315672234642425126373952079576457709939790931365032181800077281979785507168175495443181076644876342267467862285892603206302124461105332530991961228858242164822190988220275003312191727444544116108646889324147242631328425939245235942897119914776259402098057127565221725700514918423145388790012060125087946204860699650747808064128238340565031875771736428413216648668617956042531151581563878993984704554894845283649968539701857815290836156106759573843183432700155415706845637231396167426763837323787728136177801784209859649108295234660030994492212265297121052361493057890952287268563383524410431801724403521615084935290444761660151254725278296108877315558955438600851120827245533546675085579009029850120823667658930013841326289303920539848165568126024922227537871896904854636971569829868094936142870430564019401593159631712990028457115097883020459098068476304181307199412460636970454675101261048519242402510281204501106580571473326604708335276238715287263044126842941811458306966834522915768484944632999036476762336924328090624801404442169216462657213461457428241478295422898191045439765667113925179521835661845690525320509426301477213140798571735567503032393255528924712282778082538623535822778648656962311069386349469030084315053751872006357054934682745119442527236518795815923924766602179168681825442520245458470772113187401080903960438175660495706604053893513616040694212605394400862284970743660699191259717126670941592650082313537888458749526208499345786174306893315232683404459758424761997087861035972939689860504449132802172305672853245142192953464693203855409913366360975299410155685193734673409290691716795375978703591285931111238612337127298387493646135065981481311032920635188489834174117226139759221558339801212753309095651580712998136222187844167786217141271003714887918883335623043417014548644074921369358451950145245172189184597280175735645004312367072210397374764488995553919559624835969594057973872906891593016065625909497665741491736736464607015296188241460962739730718404033898268118145929764707773301779657319075485704473687995993073257006825845524805625932051213772190452124488205024136829000742539822703400128122106939782799401765534107106324520913517100072619922192608081089690762304369836644324381597019212825020786862507319314181433282687124048665419684824993769545525106839011034169564236872823391263248503742113012928217721016978666810142269322065164206988210928775626268442531850659806733754997512993477083263482906493872741026797690335215945768485929133289828178485301212520930269587192735186109452747217403743007444313740868754825395306206397946165164094126484871106297451611984145814313575495959053349666668589007445002960925001193269548990478207064897832619068582598828522750205675580469424200530769010236631130940719307259120481994388662352957337232287749915748611410488128698915244939941708517226144739730898293529284283347199233069726913561501493180593969820080843522952584445252708788313086156187247385378272151551968159224673196169003411957209741736035130487250521047045694279459835166918413943137202387824537725641806626140555443032335616517939780649536458541498229545355759013633641009143204469736725646387748221356742631717715606841808349214286226699647778674303722395654659353496353322530034195654845701202457591358664304779697642810209256637264046209109225477014568612984819598836572702073629365757356095142759624443824073487935400554278105493985295059949647185991399983976173299339677979758940294011310659019791915142928680056865361615349566998700598290975794913567165835566116899284979006712334042390667552871081152462140763266934465433419082578017938124674510732110420921294659336380257707980866324430642369795059173536486575259991831222243309196394849623848633647965479557571557353843963702574472314839358653975649883106862053363727605962388227868243963925776744630732285396627268134542088884498442584681147286065091761531152345603398846001841781991711915597726123163374620035269137849967509265001106322228779983434407562836149623588498271170959158764776528595010263585945392797119603439005586316810409042828521354445233860393733111739248390774267355284140366394306664179484613508663089644949938526000837823121603678481137654666918738901699130834666351878276792406506447743601793849102126635535145065387662611022917527931372509458801242323626388589299195705739646521404527415273345471832077942874836969267440778122291708560751404949616989545485614660546127792655465863491993251382885192269500684062364966284275429843993153248576479544282408356177382776780262043147106078389750567960699648201333831104702498300878345319909183592111381672296532758740040030183330607858242632631041133119950770677540088520006710612718075723565469147591916537918855744553941562510988427926767332026995352097842660850820251601809590864910271460828155973792714217614173138177402241430682794541293156035004606227045831440050806298637548571114756551213102815673316173051676978856304647008562938383133152804464650230733767463291082829573406618360766093582379396548990214450603185574131158064592152123055653883616697767499325831267972538877602554442800267777733433949747617250969047183281869413628001686962446947528119720751176282844227879823977257451943991038209700067973773092116044283472290987759454776340256138940658475842849978612129861200166899839203668541280758491421117026712491785682957698989879484968869931061944965826499313459168464472114185772169724596736293918840603059031115247958339143494951485226567363519239165219812458059025925599491746994581122613829471736193836461471135287252500171958146451759815458082950529132551854088614506194387751421053983225593647210600736788966102611546927832325828542628414994236723099151080527632717026132746972397633324438963054541102416329255090548171520244861106068101171052083333324848535162325957259202417751857928504224825649880705720057313032355878265107711872186629127492097726207405750845007755767210722796276972072263583933474720812633701807245698602459145956268119457818827470669232882191350826148123117585865179380219034042409612115213015045534260478438265987062010431915639795794606561384182049209713182170647784226734796278867872338846214690665125027627236412349613410001170070185580599061948299469270552992595931401311408262871686797892760744134413504425795221593165187731328846587145164469006678174343204076340024315469537624502926424014081970051632516895817768323647715025587557761917411258098383738211426921760781003546314907843415100611526070688317202379815413652579224629878313315688806360274094868526187969324219199214129055579460167727360616923693764313870056800967317672475932213005580599737705996151993291887812494079002458876841475601943782257808623443105703230220186465642476140999014429027819238180487145923728339174430859320749189577753047721562310603734555169619032183822986547880630085065078587517847532306709213099536897886869487655146522925799050893433569543825219201020062612280374767840721523202858893220433880402540908349108450155401380205692901772238528158997133808816383949745535870586003236061004430386632749589349619671851097921692892092018033746839169501072467349999679006428151790338210664671138657054247546284576461412915527690327435668494342167159846100004836057445891235724320530373330700246051032191772330262393820639351152394402056126845977817739076111956369109827874773446691958569374157612060962016498285487675842097056053718597159886797871105724372851631116390633415254775380285269701269703765809688211901069904126276590461780039172581698947557574887724449465944327340289631076900418330382855086321473312395711605967840481456174480260501025307814780802608474975713502020541034206877572796566533519584999592979794606233722357007048921289406200298562063546183715043314764648613810768195416533567946568154242029014504345133855458065097744218055265692111864193551156247004088773765404300704256976852599589644390633592735466145208736372665062038884978561469951823751626137172204528141374278754187879051576569455669705659253732111899580505771715268078715347829039814749541068022030860253584678857065551668413995906219919198557469918821979233900573477553035429720611516212055115388216962297782770845623980104162985061015039314665688405748300759204904248136333893170371589514895972610273462094797632388418498837055669036246414760798130717673822623698998347926008447731830296770796194316555775710113819404506012294548910643376907595650253751638988298586548766773889745961329927271359822185806559851949964274495165533617907211550394525417382593429170524660261937661765870816504771547139546667561367859996575729546640684369702162428512580653913336621531874101590316087757825511751438596656238080018067453944256217220515879309349170468943621827849000695294876610185390175020724973914481486508120713896701270977459902276069785043308627445602404868864400322194029032461837800273937229661118170659832459386497809992505708897348823577342019748968493799709487078029263926873047341042753787123578816531175884249664073421213526491800811354466948922232038912986657675738134501494044716547487603766696304112110722674005044567436201739070382197992760282353026395692943084243761683387081981632801851426026397231614343418454319113557918028215028435427140811727795336814138549383465646374073059713597993149389746335404353144552804887243731261836269519860707135092921670794497989787103090763400962284181532790321509901239267612919732565625281027787068800125888432590417049876155613912836462799447601371376191744577520832170515659358869970424908382091642210986436316419668871278735769942171243082502473200965559381445283734508004841095269317432076903985983273088872548890154491404455925319106787676716936241821388318054807035229341330629132653450359853978032376159634656149869640622230906406389844391639487410557308811737025434319138377824366933328487756033000921735564865237644010651181662181630744390333862579100189401280166703427325173658763321552992378736705594488019530587330021650609123920499718381836730696498053795103460964381958906555216478902733011539302913603738513601448988732315817821203450599276152435821646106722450106218693694788911589316236278068934563770553628649834220243241494806116040916777297072703522797861887686760306909567654206976845869757567131888638088728180658739607680433543502844559166512147938539909254345419334225171608427666464028256515648471797416968447072840973665721535593985472982699803190207831401420956955532382559791328841457787268941799233641921879636864727736147255270891142865535938185202323622896884726237646272213396824712727244650183997163037216631054899248247411490434452144988926473943336291724300091043046435840849859194842012115544663027545577690355478505878492892582001022618857550981099343132876542259377350427511610120805979447915204298941525123053968870908182294333958184023936677090920059950172941472913518389284425933350980227753473530479818189010356847488669662841579894892621673157539056848183556526956363277644020328452514158309339137683835325250826360060919182977042830027979960349083881211213835421578815858078767937850083760299891960265357155570016493859777085187346643693370757962530889140504726161017026355409304134645858152881347231407803834954851363975334893128443799419916933209065170312273485682638416257870224754210898729249718554546965077979809990301635113936166195535759642985629342563103963506928505912117152534460928515741561812916252474170663723022464155247947283834123395233582179192228510388694448193898728352143122073359011756478592641747450536351197019695803635865104356630960110498144752175747761039700028073012821904303768884391997853791639351184424800293734794697118058842863208597280363468848167186035762313016076700241488202467730655979731683760284098348018777935214068019467343352992028988281555510143525533730101337414958689576034505820513432410815006532249796723236172225210178373549381459185524640412365213062934492929160997126429608922276859998164577270666360627031434206963827395965000228898423196390317839255950616841591663487755293448755061614022656360052691793339716845314429963397060749636474010248139543025969885935758032578346607538203056889096134128060480775240954315841482430799156592549220983099110934259107022096331712149514286031014404481786479289362498000171407768624564219731933983905861214021647221892254568650731052308154939915401221183757811154935903829497962673680868846268726214082017223912163751147506780486412347571702485657208956880384496158025053629835033582612606929032017826104379088152544763732719046695070144718198427870127614587081932632944620774797203949326336427433553297103367957451663053207409825118074115658585560020648011635585323241276881136636720568534765347419951054543300331571920741703423017429764288878925190405825106524713840522355856010479610170200883970685077932775179470911478483594546312136006311895832186698603981652060721368889639267345534957142026355901090996909398216401832565278579631306575754843094698574906444156429962227674564253374746466288424944655180499548233280222736014268088811501664889761980220198399620221337094659624177815932135977051467571444499400983624701626908126255194784031746049248518620067201621351176119919585649754406199122208905484549554644568397582959029901905072986094911201318035088226712577140153444276777269387303553446217286023642714733566989386189005088814074327131874721201916049382480984840600173725596872208598550978064178673422585944792997938249243526262695009835460482746342782161640513337995434480257328243394134629872359187235939689221921311827745495724610228502342356304589693691266597187069512669960437714496796395505866930053299562049844572682786712560730312479245438026638171559421889683298582554417475960522822996939923333597384644437814989961137050839172084119802376695657847349609975312750499586131016654758000570514035404883776474069338731515438609682822628913308940676108794118126760674804771490585482223308517505702060637047528470968238707929964641873688429701297845553055216812433793139770232829346750847789065784591349975182113681619265458396463042088126731218953671700167088776144306512153226512200783622563133676473706641018281041844655090879852591827282199878025527499909122957461167138800886387027622966590512352600086406167427375013221009551201855439653452979053003559697995556815591473352305190376148020652419325231934867451916652916815125278579737039587044440057511872548224648910176404686734427814472429461053100623050134319082897662608977135294755034925412900404087121573652725705046736246784973590929554808007049023582293497033582879460466237453817119081787937745075487194959530306243326668822571815686793875603957798890212206216228749938205906947322244666306300185356239082205823581195752793902203629492983958444521137327999589289469789259788353744364059951097843773627506219525247234224557758033467070976771374729156079582965291149460244383936655115576569145320924532271561288868148908519850436019205272436411946438582154763821967392806889000170716100930112144252673305269304412642896656474266980945954550060524399007629567392200587912220714197276910714459090893959273365537143311429508915182711077250011984869372759682889300249890468977953168023760949604503685087308859546503176894721061592154644709416354765405463345203855461635744722259130362366329743527257832604251214095680451076628438181020787697683632753176712204659381091580129105885231775309616649081570042591088029193694916279023068842982165762546403565273956269023204733582259863290068287587302785850999131826539643030305569621849300836474617138416838094300032640214564057783499402589868548710920469454627124841099510174404177881734403149790557715618599218209697833767499889514996411635253585104108097258307112863742105071510157601353155356070433678324584499416398906747340209565272491705573974756654510447325157202114503706879308849857531777616632609786801997584881033455837156468442827356009640607062936576326776331716812916355545560818479250774872759543491274346710942027736553014059367326918992162822870277261684434681783762667922627290997412019036453166725384417067611243212546518746463940340486016273830431835786739739556439938018514116444637112668262505237319026317252441641658613512190601194122215402035323976642385100656805230102633400590688924238136733111182634274891345907361978385611609449106416799470790890469323738520589915848712212592113893756593880274537598221308534205508583711368021508754412796962973227176063559552140095056803131548485213786037686261666189950047570873039702040131976281569005557976479888790913257733326811372631429589835508109979943894030684368564889972907930018562923924551375360090143916974391191101532704869739633001093235928842349151019293546590325842663990016058562494069832875743841215381150404839451545597488127511695603943709253472524094882092578558559099002159477289483056779436588556867527696889205972312393792812918078854468481241769967218776006653178153463537615747457282104671379103075257563407767464622437719636013994282958925859204626969983567083079055280504042530343057734359540049688661110354078114810834351478558403859157902310688097583323060737272808989617533158660352358042696056495917781747856971414287105079140295824815489858304691107415577704319455475783005742507406170705701777972143080433082873608156597900940669487122397553734902471101585382304044000028819733921486569246601194223111770095399330824174324338949901849235394167854442763686004239546802650863967629555322115382513652295355825551021177426929480365066292328553085608623431119383490407503249451191659734798048633328138104363378622064609725534861812435718128629062492918213701351734004421881020409018093025546254543382839886661724642994171772019822831406474121426269969426686496461848315418841698797920071973194745329741096132128992510245147169083650889087690310174385594458205774829573643228504929210938241240429090645222271531196566733196738702586556796398249168913308043177818894676722998520126961895798227100393667631033585985075575725591449937111438716548443433862404634125340753266944950966312820854207237278844787815318999636073884019455124002593959486991835227816502846087545643013567531628810945607080658276765073511059481820352315135062232446711796712041159158738794995764157950157387859112086017446387850345583457527436513726892593099521309196664711474967807373945494905165517804951230567469453332868450926073636232418317061718714525371203283785081574232020819843243509215318782389391056492542658252218751627522835313606760150844342025974743280785529621693003845722223992654305618693101805828586847359644301157205221562242979194579415643151042240892672528433561813290726170589552773673034018855148710769274578845124359674433088794523328216831372069536142189317190978402676416106314077026152984665356777819268609297205678748197556129200396083787100893813051337851120927427919138315936848939035377462273772463608646652165499790547875161268789657690208844307316250790229718808586839798960293747240151185913405882628095406047845553572702548676844831864410645742602972351766127343790933668045306424163070278570458592656144918100880563255552692684115402889734518504065815197853633152871943335463828655652779177608996205600700800458217037840665440254199989908134794587920769064692455325996397890821123907064553213301479135665481324862553518981080613278963522472904510513011596000114007447790300110038875407977267009116702641508481524321550322649639936572560549285989867235168735034933392724295926340823910309843441986810769552700296984826321834774832021322256114463739948902727339956638504382541846268578633312835645492792244372257889166009266755532040042607046507586677602307169806058730097108337267568139604378677589594245087415567245945887466277698898772527630463614339906939788367090790950602102921707973729127335100828809332371121776365668732504045233349935422983415266593791644512467530122359837544978202390569018563432641059726669741197352414121770374023532502551637288231315218438444673179479785845749093760385905243929130433870173427552503267259669985332283071015259719400844083293258624517550140350714983862788514995347544157764953756182047303477531386358330753255167218926999165966461676030492707342629716493244706410954674818430767456397227404555255178427121095528927764798973741331177455636545155517381330794361733231113936694173027891257025307348000799382646190310288660355903330871892612498856643309618415124261331362269000799186323387231828344706724209631151162484198796043182400110657637481626066618959323878768860092636900676048859690757918507626627102161991900850662090268015194902162393958620671206434702532593897563027194530152488234652804553112905256863965931698465433080648811116576404016347650820618674542960331116017192507153484509211032778099118998616617727513303817748009351544616157359382175411609055673330513884813397771033699886143536263828955371462793830301228975527997360363233870980904222842876227701885156304169076785493666735772283423981731223613787019100788116749175199900648244849157272628987794817335834769020587299525784562772707992269349301200264461753194557066085979894154507059265936677460202401711909346679571373413046235807112976121183922195712850227775907473701523051871700110784509068628183166063698913609952629837210751239123321711238564232266267510016874079635372926297336029700100284298787116399432768798943058424766518240249153309779689780089868771981244183219717256413409669920078447993805468633274995032101100156213110580863400705306375564745067879298123435567546737267987231213010950388970165651041704990238893544969974250128422588912592165027118177475599768865183585866488919452267272257063541288974877652733532931688421246231725572881319390246611328944391566701898245416436853105362386555637761861707621927609541275678085381801939253157135842194803400692603611323303192702270447688383745469887198897791240279400685065394963341754668787772085989176863638424333452632667046349563278155306751225056106279271093925206384400613453306955298053350825398981110492609601719815387077447987974100572755470829001365634693426352257750640847813442215472281790228162950185030261598554032591042090583329348693697637236001879797166032491892103165943879617252513946456395086235316110051412320151353682165104686253932389177669555844141691937897881957901960858537508581638056745602785898561889189181158959144258367607393264316882774594745652656975961975837815670813243972578323534319586700264155052518951465940289124244819348983663975720913318085081764725158619374780103790078182763293128871456423428164023030421994914034034565611257046022680285441548715070778535503668579928761827253627376299780407253988023643026583484658779703893323851754014351781998995388898438965974007626678681038012850250157190212186022187371020147581545867511403452659057020928310240696446608485143871313670218972143866857343266195314650103712187033973623968295681310979632872525967296289084999448419691824579175127238829441721855199916257011677628813669927989225041156454609306789092200991001617841587943337435548251634170472963277020651266943127193309145422936885845421101973295856642192591993083273649739735890483918314433632543248124918429937541491699661352161689474652247866057588576079938377909079222665262505211423389286567179286343099516201110878523916597916875195440549630587054877652453787859246052257854591383690808623036102492457661210876409114040026114629558618908084351068483217603847459064632301006201373870215765508118886579164897369527729348858947464307085973605857831816625610996346723031487375043995179109933146290607989065172803734148312019676240550167111538715494715576780858859169558067159516811450404718834859170295473929617821764953183606855167707931535502626973832673442047183146730830418018782430953644995124214354069801232653398791806656265989711120773702486556213845186831409556024501557536593745402921698978804891999497385173341558366944666729774977238975287124922499988402081115890458967619790338562600625894690937487326652885799220067404737577670395126531864362387936353715641760379247474804143452880830042433350187665894988970421592891418129330779295541048042978475319990978673935688029603771792554524205746568199795460457433405987281400454803414746005962163917850532778391247620808749976125838684643356289926666058024699692204870930507014911529486347826112663128539305155547050278878390048053587193559758730879149193694235165760369239741512024804025748984076383539363013975166272236939337422525208064410307395242382376120333096487658801260905365694006711715305986085069621577779015677116622038353718418816050642100344064731132793334769832480210938423786547641580431178882912205511918323706560675993467540226004808901358423139908906705850332481914567812497280589479255977566841460651723065933161994380604716453205056887640351248623934368698173740521791033882325402729392051023433296923343197707417136717808570869054157530766559308989617813029263259763420445497267620524215197048726183665264007426202987030005896839260587248646134348965770179865331464775302402462037345307479915309739140836116728930400326663393191671877621677631136548258019272130182287679104075939559481375251234766841691900700241378109139717246305315877644370864072434224665880221544018094177539231796240204774845356407941895708434937664380851332749201064621219251483769595348383758256087681904664187009890486051554509871612512932897898780133333306626573546547310424721237411959668445930355145583680209083503279798255543207642409968547434294856319967104585987653436728087616671515774709224580387965285309005681076130250855914427255037395759560975427351411912080360482902337081288467004963947103412309743434711170986790106523727118189055364245182345637237838226156754591518315149122552995789092137203188023425071486062526203946283302740475043899783128056586500346892863928796285667562358070508258896175524729868001656161506485828505455376958628703637008326961120922092164445097296746169500527195023703534035042814136491090629743521462838660810398514357881646906676466846026554606130549812882268842185468612139629181597230589916927152569687601050237618878314159114973247992935536252369104860080679763141253193615468707443093726559460035689677137094767846892309532466935423832402185053815012705343568415477258307610010969977133259619235623701989956418174887446700429462354089882638595008110596140029280252021558271001935684251028077583254764000511935807770656813559090771262717164757459265129839308362998778761493267393963602684664315387053094141578380209882122817078300177875854829592766986816533287354187258871434542210496998029630861619637736037747524526409259088058812172295260493113170263851902252695331253318408798179766923142605073185130387515864384101627367171849817761362766750625323986234716655307085869790666516444963746018576258038120078667205823328023497338054971702494893115785870266201400572331610331537290852089885113644716850448412580551723773841693196463192980345466025956500521630010947574709594419213686193761403588137194202372126941815347491438959266972632132579549860259071335936527808396827506594096162586265534231697429002804267382889643493970254044153790148430894968674770733057927778484011737238671349211660011756810464536825388996408824585341194404031297103525865049555530314557463860263899197853131708871631357990538264457931651930061534526162095019881533401116255715007226346382039951656953955586189159481536950039041111094921185472900510055785233042537756420724642020797817013567306340290434720213855514783629296628515492738805156176944420606476554105790582476465868429176105288767767458405284322007103213887360493989931717984663914022842884036511900697264145372395415687910756862597682967335491535579219417412086397761810675496200283716641368294288863665595239144851091505363587539798158527989626712803527667773250453084612457141374001030020530597598139192665324531327009499229529469618387693944721454314218878351364526987442237773487185856534616251594578074860504711814550555928575837589313986681383136850441952162508147613107005726604943352062253103125111374006733789746122741379841703738619755556594417785443310904400867199259480903840536499880414707879784421861934960376677096177959487810951498824848624238109515590919467436991923706910491827881846191691338190241980343018019972626037290416589587747755931261069034219547383881371656763071167641098064630827872578139869182533683738143504368879543791507698885419780472628004750040939973758524450222576626621012060494192857897738954680393974118398223519793866611182318154485932358149153724087248281804543639318464617276844186825515171144084282492370568287200899839070487456225233679595339682350448471945905642637719387627389129121775641162913132441994586768447969946048448117067761316759785052399593569824941032343059553326316333728004153682494194631587482704244993318431513169913563931557336566445654641470797316308180715758935587787535541720194877554657134549351664611949027873705337700075171719888268099594755867041369277381167156609133480897714673591394820052833614855901838339764938605529493973863719830387234009925333329237194937291300050134774073619670531831808855043144888712534764536306378284311979536596528405443442351808905383220643514317852928335414772576924429743114966950590459185434771962937848754728732242129469688598283443290738752130211457779654476005871833577483752401631283461657588264797913602439696854487303111246383323466296647544272645242639663593706935321473659097536246718880154604974993023553470989874708779161373613263252617094167625513107112281226084277264275094014698981649356359608658406728280810801740743578719102259902908386443819526561067230796568904433310886133745933488643676773804104291071604664457065986213590746970781057107040185959011535377599787653587170641723872227800133800877051664329493831191439532946941543671071641935912231155178415892451142716480654087534109086771284822568448566471736014007013570225388282334188563057929642904223385372627945589605541289699301696263167784512166435157086643324444893742613512580150276141516745976335238778243338699892986858859494948306778959879803761957369205273538681657289145839094716530297965664190369307199746264470643742358875864404268662607467929412147044964830812549751950633888196771822717345274295687873508613264597630021213340467107180898812936104942410193533558300793374786647295035664856463436740173068511658580377133037995268416726148124660464686605635635075196627053127684271950091105459004212448931022034117240717118382679633051707515617776158439930296224084370020205783737500011232075382799138235902035613735389220506466345980587151768833181699177774468029543214665939645417577828595674206455196663895108960977671232543862107894825683989807870353115048880291052763601818557791827234905060925268577065170552766356001517014322160941561968595201808770421190295911129036921991946268750099707495518583419245120105589646148605964698083317545497636119377192884356783141476258915393429574062131719925554028303190621606782532510598913003824350300612795568596941882428852638523897787812907492275918892871884026155411122584274419587946211549586358179820553977189418128648408258636216062081488612136137587919438598551008708446460262948767586408061604793722724365024547934831896455915882687389829271571171619744222904342108046149320910436687633774856813990246452712024571748400581437780123159047395150477092222638071515545934285647219689403890140890306516484625962196509538785865364966683503158998603160172269742662746128428083872779041744304656536567255814090492755512424126005024405103446118370635962995772313128957420509022274966075934023286434686036145099704132271534153124586391293350436556872088837892667126627076408265032380306737583782226214655654184424092017400326371456195881045708923714546691965800487625821908145558832375674442361773250989672011166317071759025140816136658001521898315632907623265649351503470628364434814959102742635599665943488436855628489308639371428628488194479568074143485712783567134581625498412299423926521241289582927112540133432526255960078867810386451217702365721844713870111119687055692987700333898099959892943132828998857012703490912343481419264236813055010890982763247033523180199687495591712657941765511915141973603422090086532288522571293440075524355013357751563205222638857040471996375600246287582493152680845544176685409268444029975491663453272800652539804240316715803151423002713813377176386319299168210119798708460590935278462299034718164201186146273599366130148241414521747922462553537098679003331963163272579882146147760117865124385821639707678452002309657209311619326109954946390492993507076722045219354746910328394412716565921694721500590250337166356516643400435609896197878551441188040039373406910389144035688573477340272501371827550344559660807288048313379702083873986839275217122098079962356611157954051200885745760345945434873973855234942627673914668556490284560274252674178762958521470966795495094376180126767676122516081431054331544059338077220352390986140470360125996904278277676640826659329266313323355516775255751485533566468736028936262610220378821663247739334061167687904635353329966036682395406624338963174142805221880535637197741532876777504874177100333824185180175800065702578875005832071472212458900793372167404132165681867225989615159495271123408522668617420031454726320028032131511858375060348490170461685108698741911738775263694166901578017996708215148795141268254555275618707497387630453294747141577909228719937011751095631198139590343100130051518686918062175488280157006276629735717142804857610723389828483406746162513898312092144850932005999508007018155331223572641824131948556869046565324242525668340431385701087684148584788543673911478790203001631839690682275460324601737950324366146990180017354636726765632054349372597221992338506136668643112134382844429156944046185456378154821909562505465937965321158117267149251961221384053436511978455834580254569280509233803707624827428062396083026097805995147848874543499225356141204505629700168191443967527225438762200991406251578147723882502711976990291645855101233771444580943785503127322287427435858327051418902635843562906781416558774230231919745810667092572751410464841282344958477312413365494615531822776242395565328027934424294399278240506109818617455946762765936675675604625036730871278331381558418447520768488690175343629466744191268576611350528131423460219734072765060522410084490120105170452329745563707318184427431620570249677983878443892995440396817521628847520236216324561813986569071096506586748481842882039659411854555404348408405781309369952283420691633593770616990851042254432299465552661682556944084248386685282909503509676914742800552070089305580145159201170595830187665872845832375079004779154829459117650970990691992876462402106563106845596249006344665451226761460860899571533470937798431096222097570409142494606380557157506798356081778803574009225161629125012642783893263564544419952812153037949957904878276523810533372679944705421056670680561422895759521906640778674969283061247182980700658695997845788788400994414113336591713382032597290693584551877134582056515928062390929444102003950449458899785003925343075926047704453091024059598134083148295115892538586553443177879285034291375478814513681229640333372782299104496402623645388759245705925144202533469489945342807689488913108308067424083986737734807031601159400719610422943336870097313095298163848602343848285629814452761796394128511461687924947626962509686307705200327174081237546292017661163443348527767710249315206369230407374674465095686947556113911925792115959802548684731497479161299102959734477378567586763601666498095168451227214959772989360369558933305702181526923788754289604740195997961336028645106683873891788962721450943620339417602381058932397885597595881348421975818288179322087132656687820652583218560493179551704136088351656774869921795246336256349620652439746478871880610170441427131484218641699685584046597414433255374146238724907437121481782805914883283579770352044706999337332195778240274485633920004916179962701484926172886848880206539318160901317496296302837067489374819093345136305139780544283971142045718089322501362817409762067800646283254874804547026282334859077568514674396903037660239289045731639742253478264332384505344647856497770836294579081532027397083129732109979710570496779578965768835981826385876573016208905790784881252018505882181025625283758519519563782563831152117905931212766756095195600956045697210450239325471351819726998334644131351321384542503449327835955741075947503426814376389474806805976539875833307880737962008988330226018440725106842313135795750339702009990081517078897512656509828411460369119513154116383547750277415538445454991332125200217765382245432812784783041424708946368428839279362995135258971669815312862746405542937562503382304995911837754729494790425911654611679179039555957607258106028214717920649387085518978005959141200740912108342423248285137525907657287746221383830626453190037279742601700530158858367593011713092358379548080776605956021821796563466070139816555499719179281303554589005309005688802972122177808746033531950983655718490858331273497045925719646786335079288859880609699713722733844704183106462551180154837319554656187850344175576910083695222038415810356360197212824485765915532850278232089358279690788596573885405234086293196777051644204155690608694273240933804411363653904278520229682664263239186411034807826098937719540104400407238564101133676199173019114379934733335349091068255441973165900359577879422150332014178494703503300625000624882373184050088236108130860976431872696317456602317079623950453605840974316032546130098059523610779033102624952526370153374889556333901068723129717315478914025712609252125307555381587930201150360034200278344452737204227354177686657585237994473510534836730204381002896438107943537981152435450110950819766241296493007809429769989184700117863147584860392662838308892829373953766979553939795750375639465625262878965314143359810687298969383950028912181047013856796670123887885884209935063963466114535320680577816795866942456911359292054902438241195639684823531251061824367254324164362042025780461181341896616999913150255414606923304434383672302815333986556085501928630726174751431305817270341309902856346306672301397336108397732112800086637488337221426707683942672065943558768082544859292282726274880434462114037867621032542225466434483847885393382719331926790088609916374356989854699136566782267982031670287752336626171446899408328856459165272501453488902929609489815707871197897444651490679044092549449416952914556395849971127791204343637816136728203172914750550668449702708799199961606033587259683973883187950194888962768792746189954472396085371336492407702121285191020899296081752072779776963213571972880271160427659742510051023012168186674081991572729852148582163991899596211900164664686533227058424129583051592404165947257682632608661820928243980126069463212935117401849796353534414820444205506115961813620854494475815325496575651331906785210074121061128908383384293945656602778450914086009742509829282016232404446659934030705873610738152680064832433212552562572133202766004538857036179105357843831320280854014923715919946671508532895189361386403606227968979701101629425294649948671776436037668012845270445240140150209607344496099548883149953163432751208905485048047109340692590814693950396735809367578461090540757679313667631241060466076823848357525997231502614777091222992766350722440121724346956899706358928705826663954815652488701230685800709935299789073170489850194644114726271587085862488647787208506733507381313755318850987638546610884966087401281885903219319533769870820144365208239800115534979018437433486589721773443155772349256550841193109228171998294546262186351274827498623703918621515213977159236284496806543995410321197174905470989290142779604224268598778589230203570243828064842938579320461493238462095145742877459692666341170232376162302153180956613484460055732600708666008162049711402288770029755434150174466390414032342796037755711026281961721738727816435377820918737730485731823197196686553616876249336916170944133577716097692509633385339558783896464035930514678346179628028298597766737946387575595689836339919111140810494991430459145276390041782557432361036902580647297181885831717606961890122048182944552907739564951104952002687755334799187470236520542703863250392756063323036364990393576847541554404303355094033548577785066805490390324715478760139350298378384866287722249926684458825804694404152458549945110694631425876900932924789789817171991734339967020989862490082516347192173445569441572703068019413938124975750962139482469963840388659598049593158498534720943783730721707152304377785644389500958278257441588850306175359697931476747119714525576588558708051508144077303247000848563060959979261655374136416044611647479147421782814079703214861030429412872296181893700454625760575472427491190478981682105502973685030200001662847890927908506988088544486308995094197183985015103438560205871161462436601985273559200421797341957287597072762875983416747792965132569046637763329388991785726527154233593522484712096266978941375116886166123759976152331249790822659977487491840909820253441350188256920969955242351092417538352236710427834084558935368145436926886796349067272367142841978308652554591506482275014143568110754380512870316717834286787378975818345819071703512497053335893491792640665110541671663056809025083080562060903389747057017992762046781880884235319788139383902239805906037048878859938689195505613352939604960938142872894334237440923115439040580345268641560624233083695639552025642418847042716787401988995746041038754104221680206682639113116276747317277842743674926430749952168992678202169787383114322403821979025768973296571474136519448238578000338531908282655320840218105708217905380884397348206059186029269932802452149284185061741533569182976728238664881988092845651438611365915348834517984810482363923048282643136224160528639547123129152241691018762769484234330075413940280322647690135124869722036255245243956501201580345953797046309416080629808382623658147979465802753329168530149579003659384810324192408148433650986981945590054889242709397511073915361718658069469970567358191834335912438632107528114759765481077534573934629266183322476604336969396377859820942767001530439408544034677210183663191399286911361191765495665150897926879494655893673121715578082898684002237218019399972963863252782601227956791889640332506389018556995581374310609237795620952788189586615385167423350809188293277108885443649869220770968849059490874871078843113455029444215389405261749499015192283266762592828093849423780369830914255806793110947197120023227618080938508216357331735901175885132920563252491797772175720653489558524348428114094894856931024235478795607465496492406369985490352693856363290354822051016154902619110579813893564070572829503974457589972418456589971494300770653090702276414895888542171829967024785829230441639758230081033071496676587514704119436433420694244040962417485429689836545327693058115742801351337997489546248971683220469170525023074523492056512270044563056998719156969945097914277819335984719593626627185628943588327747803092579348238149101439293646362225134515066443174797025136302328058183632665524866518476681383241486350808857238785977296112280561661959812377684489560657197973101820320722934643531800239549427037872123177403562804769212647541006641736341031531122617236273005015227879289973932238251269862486334776497763967528654572430359790029951212828598714831314957515165749434102281881432223704565136634756619974865285080160303949309872260071459453173598447671265746218928954621922394606522756657502470713090347320508411560771016572418520159444088775887458271588625154018872021462192589691503556073226658568587617936224831827253501573937905740824927715549270434531749272305869693318272685894618997291972640949090952744015825131151632674429087933543838199376344206271580271047907937291018278066487162077936181889972818587908321937168779298888857012701735258784083610889642496285406477323778058437724978940025821785095815218201897482429209451855121887172255771265312759105884367024299563150398531652730872922437747165247362838127137447866036640060460567053770987811483491309098248950105263414026814043023311089294433463979304028822532804455679811644660996326416845799835618723156478579357838549766177319709585120671293622804138764451712479134773960478154783608375593265737802728648014242189433291380370874109044671811848694646047055621747687061617429285333173674214872571756101872222903192766976111815175699346502807953766331584809748332743174827873820693033033968137564643498385850965236930889340027792195399028453516391095595500419366348570875729514605492172641136431173309925104216844800298737554889500775137821006696717162909099771008559879756795460869096221639594060142138542837725129247802942959464704443495715438225573078935609440584929346735785762531847299137906764198861006210622044094138441198215583385570764799178537962808790882446287083403521037179182128782313563275302845385311227463897880880177565929168046282109311225065812169152425940167081325092296223955668876630690786326334710822519566025443042787668369468153272662776548586772367491752474652645064591703984214836948516712025872714568850447524567044439550213339406527268269145785461264331799168371261124816400800643193792400120788759829598325231604144411803526399804631298605200599714823478767842140667680723650765688667380784098303901501270611288361124968646588740638266419770489263027210196531505000726429403970323054730269927864122686674912420644801521398668465782882527105280828064967282147829933767784765677078016317008638550718506462050953512710473046384890658593513150377447830659962361895573668890444290565121756678109754158404439343309794128483537213878659067151747943700002309416533780910349699631479901917257712547090779090322124373644456659365040015919817018330757901206752697158778517166288963499620249739286337722718724476834608031457838392691053144215030685645053162466635228032600649849927896729040506379231846310913623145496797970400269423253266345881421364872438839285028328677504919064058434271722306196866650523147556034223856948139301435533625896432529195736177287962094435177269914118002837911784432472640688435833537708647379619140740668977055921880257223502992919628170689726990326458771032394013844420307953769675149714785740906973954979789080023473533045401274769216240634792708774153381071933116608686152810774925390332556586923879359234642690644882514868883622407622156147062056972132259134973035445344223696175424312680470085470015502044328359789482181170459899610529229367255349497358909514385918050456199110415778389633645858845333047931832180045667597256461199191800190802609419454208282828501956800337091805138651637922732505329335483621737502689326554361159732345838287907151967256550881648889260165783629486743090921896851564726287162508272397876011519635859099818449601638395529642812299337585291568807546112980051051925516720324350357084906278721366892678024329243291367643504997695495372992694844654639774965374472161974755910549656078517823937007177452020170892128296886123686732458240345482408323644551721440043116812429047079219087552557921069401400575765587794882011659448760961291645017053263220821332379498142274643120800558816010379287504836169680730724502855348143236726776213211812065752797929508234082953451164216667602900138097466727520230268325114994863875688389230590983936803504151891973507102369874859061868540061780527966030548468647867576243559018547207941318771687863953536169027503180505710217377266319207117335971489897240740530924790229834449547220501655266656661064531992500125934233999782469335890171534295767117359025906827881782451233546171055387006895922653859899210233201025888944605335619343628075410433990710200325404820876265155029542713039314966691800945091756128567343298676557123784168895448150870368998124853254348836535864430177702331605436060199086776304387585071593546997937250553381568720682636722633740193391351735962243495724559531591946234266112269666033859079946209601322517363980904010305159013698027809479338402740776991220973822498415163319829158571994430411536595677091253049858632249306871893758003843094908581833186596184118857115889563943982851843566172188648506361327977810055390664432994140024315474918204861341681402189964678888722194443737514033756881429477003833848067088789551708070327853537687980896639011935891003960942908754359256809825434100172274968008720285541608831895842336148780717325878106669329181111391679130614601081960073423665788784624937205763157881986378597526700864107271558935312974726326683757759542376509005757800006651236243668224219682212018381317843932742543545687072794814396944939769085326505302180952128104254269263438780531966069023720941880895490486622607729364759577727070147232021608064143181042694686738595204405195617162709850622709824973692167915968570311051864459983762118798173369669939517788348863986330955076805278043570009441049755013708614050740029752810953693096909800147757684266254207460127441411041497426247464913636332671283492556933060418024028894753751816195219851245006498342356244941247490307055352764695222639962770195181406577995218388725652360125586966838554049917305775666659767425414226528710081499874250912517475403226517354485889818140619767992593027688220855935967177213557222211314758760929415255506427693394641868641730656591208363032381571522585186457483010965828415822256673094939765014095256402137304104469868635000670569294344214186107363948765085254633003287112772686360119954674004123179640837746934594984270028856370023990787293121000058172182938093937144949792701491272040474407231307312345359050038609314893287203757433702923090551565844513063281078191377149612358336772175581673877711238873732242213794346928867615562637777365737022771096402657504468271741921669887860816419386316256046917729990847786929932584183850797811226102359190041510623010820564871632886606612704667168677207297523061752837296280273501473634379337045745818597911767584452669358770311329864828755621900730346950750814656285949618171338798299871966458927469277061618428795475368872811594942917404685538265592029277169420143813558351167668526938454175544567120950126942591483398253001127120006417737105770374726827428317772992476588692449653262704112595406852631988585420960361173168336354674407074876381526404022634111375895889675550121643164436884194276064892280393201266064504063702607938855949070040390464475261539976315323560773061277185614449632409133146146399088007519169860211401964902385860853539546058299812772975436732044186632241581222840359311168570642998230305283352154163169567494698558626360629852848957152950089675348190774651090785569193518870506312864027760641234160283716855857957033288205675367364313864302842558280301402192662617412725417894297981870977049145850334393809868639289390108240103107421585061190569365214324387269775200024959177189119581657927970748175948832412780837528785241536075876454566652178832096397221450198341813664571299516623292590822273878189809909165100754877539187086273161035891299231214741667601146943379875959297755169049925940725151021865799192094744960043203298214385009527202187831905523063220782493986662272946035252580276298805404144454320170315565418665663576743498464380850744339309471684228894136001830362294045773817386489334497191090714473550186228219699827632288486038145496497501324888837899127376681417917771705407136040578509460957289774103270853414029367023803739585885880693535824603033416666059656353203682047518235700503759534050539493017996235369136110370806932992428361394447183058458265981735283475529996865219269055820286439249360485576502187822514496657340860073659462427063228554546428516707055320755871306348056777405345697878854123745628618291979238051269378102023504741784490155223306828960499226593284433608040529672761730326492510138151625033831221457553884117263911662724508702081419135630224298867719249469511231131725701364664376434538819288782291228429747058535733118003766530175846388519598539841596284381678724908031429470097703151875433388905984273058606536814258813752037781584431537484826032617831308456427092693427569885840293689428004361867700299972962843850486996887581232239731685868632773284863865213464476068733782698873287030571049850956897429313246329076694638767118332634067542768607809104612471261341614885802460827363744703910628382482727299039722176582645726825294174398472508235782683112922226339698342434722935111874519146430082632026150369900329622545547436785975106785701774017998200568946037709565637697751749892815456994874166502764437524799474245436473927206150435636980888796975667594741962105033874521429083721527196023087827447391204272860611692026021020720138161625428455107729645830405009176180005808681537461404195684715879726735000801451342193364774169323490603417902149589267606361406356325288994257833863449425827936919184146631368546550724285424644190990955836001328095376602133835228798477587654706607784857172668456589014121853252676946447815846340991735082370536265253970029478190774105800832743017454232390755291944601427205923306409589845350084000443418559531915849366425872827258538719708571567707903121537456529245839948978201403004228552875692482558009444381429692902867973828400215237001577305232944011047857827589996717370130494748321432806487242437793254298030831500433822428544076198279185105879746141905741301640264543757883743546272917686922492725425527287057700712003821901906908924084497750887514116879548400465981260286742269592819883879230529085952681082221845419900182778767956756568968644507841383855597263120135813632465108240543599140674833655871392435667018028001715338928172468712729575917503541580055022158454620952776759317809867772866285534305527250782370559267174673267448389426452851944057463366932776809036420660140565361071629356098918303818095255308652394428620397991905235276745838577941556278787922630452455123541650420012541286290706719688159803547109923320406938063625305716870959595607296601343315995793171553452110141897906710415157583280947395568075590570293511962073818451058137977409161125394603860556213899540936711665680505382848536989434617003284961848150818658746570883014275108795310895864154310387516572303649409223164924513983580836117187042012318678062821349751035182566970689679595354045268203273962147728413240046087628986484694231492398532798554740394708703853181587562627074166828560037191779138298875437925357783473803646895079680979775065733511648825921608404171353726771962536878853188228857463488081487435451485425861589774830331255338848380705501626483771183500492967924068244419367074819670396403539704534139034060071934059808247624187758669503039239413153224657171936216175795000260002799712024556448235304567269068352430813213992160799961102757125972710465705494410224765935287665336801509679434699946202915872334009132380135851431176551182867570031395058968899583262485006003556447626166516770888398838939224683974387438494749019103699837014551138246710539966655363686586146937416916208421262509918830962542635134691693521463078707043463478727006377943345068508244427209550672948342081790170239018057419171080377150578145230810138888437099906192389868574287454016527121742850797378924665905737825287613867936161586576295153818626007653329438180199315257551411711847318323537517576019999960828947096938386124891243638770760467988379628617884520526605223073632860962506514597318626152232018334039149215369654955293805528403408695633103864266357974782149405905562198912884067922145617933269994657954861363727382324902430257060312589599198088719095455209725910826562324570423377013024688577812235386186885478873173123493952623147604263488194358376639564520696818985548176479442471604349781177585101765528192939292503417483359906516901270575400074841966278804752406380157804569309426531204514643983811026172961049452793593702664097469515696291798249045161138325529832428087851848212538714012572294047892149308949327863917328863237060538791113480950118857763718613018685193907461186673946253731922708759467754689757956717510456274189111457022956821279322087328139097053317036216280568020225737049165642989815288234328036595670922557141752149719072290580470901395534913556388429713813876480439720362027720047452698302866368598401351763894000933768113374755451460353803918290493905892767760045584888883125813693896162957183664223262508457597158549236037581551361107714730106243738603972874228528436184655570471510279414746453005450874456880141739412244957090123966818777656091726966968323882924162843201738055729041624567402058221972080266344478039832511742296279674280113444252749966081481859048828700875079758860292007275190444935518062715248895389739226276521854538024424098071617196004008541633892939410802073768064420505138146198488535636069237583910428799601848742233602031838918262719245055697784641649855564584730823404402384243048234631058792704459534015823251654588676790399289456399398169445597100148442569831376354187952602301462848860945319473823356362486284662994098263718345443204429071674849021327047722594270806733351374377449700919628761616223533089441830289710124781819745131608752480688628307363649099369308972852673043414545212763662258812592804256533723922563928345448338096337150325919777851238041002733053066238653248957451079688158244453263363367060831869063879832263434148594017981261827117972444753807806711815626649683684335239842939314977049073131190347492372722806273443369380514619486129421928788078483956819770226522985188541844119337568012071269918507137897903286643168879255450180279998065390054129444054646715355081772725397231139360148606278581416960510180657899634759471944421741744333820725797359680979374838566890224057301176875928108561355961325880648348304838006831120446681660863627457688395439715619042271032722528648264769669912140545473061660972413897025584855068650817175434933666433158227020044231866081866997456595138559410913974398727808895274213228679360453819265929246612182777380949339416763447177066144789938830662517280005440192012774506595128262177946328777920717937511527248524434943468086737505941352581003054485934171607317224510733815408974728831549464035752321390915237021294937168557281195624726562152115962402973514170401380217059903360822660763687941777125989482403101386934888593476232712421873186876324998099328485792208315594339516252233460402098332434627402951003039877075220225159704743497889186401444805466032904607483997342297713837380038201845264850925022370444067184853386955628587932572815166681061652715783297047488407305246432561320723414430029821098630906302417267645008255166917912238567626106723391324985160001227385948428336966338684647942991548023460943328589660787531622403704843964650605446838181148095232776857437600613017281568057995752995828634795629359270482810595586902910678151690902726143046897876156832105744913672634903112918541439474098884803347124135996191068973405851583820303461000258035537657581696072471791077424747043271027688835452245715496059753930317225104984357904221889856890667095259990207519712426962496811157485586852241459851975002241085703583149610497347170241465451970397185777223403775987625691513791733687025488243642799255794267284170491787065038622081963625251297217534910288797133012152007328324590971214829792527591533022408692565444427223700314592031093858614901874934819287577637732111424047646200533084266228974626527004286904913340931505880692352750609728275652987681251254253838495721800514351858457713577324323595926147723188413151172042057849632846002954014259787075783014451785059880831884826540353462887462007575077418136311890125155635834964463215650933260121348682443209540641821510395697783433528484464903089104844749440472670499883980913405581266956433887882632721085703767396680878368858948033320109914958686643099498499718955234321642580121903334254294625184988286719537439960314978874951189625295114876191602263081796940976930383662400907848377254704122183851980282264575802419888586470940863039866117928464256476938422124420591375507372746220045802662644109088647930115743311480903251661010036135130148021756560543627585607479178941224152270594994572618388733030408977347576320354547953397103869521502601170446723132736176179036867503744622500123264060375263723777667673185036955647459509635051029327900050969941668137387859371313347074486611063156870141511372747720305001005514512789030683668928297771296188736404486459909164905049105948218354178024158059646006209915276823195773570916679808029579740767617794248007613174569764127731735675524853082475586993056464843702267363024944675707431829778760041970148239438980517956388185760566002456037608458384824341659139545748454813751906368114622941608677857405906005499534968926878798334723643128194714813703208974899234284186008936187864881164261087017741535479544204122369162513493738936612524165024872995797412011117841594186881830875753985040257803091571850509674795939524089756603866700502503681741106006647289895055094029067246182721689151842555698068763124600275394796359134494276142047736801766562954110069582045768751484790386495656018484010380703262617650107482484654105104285621639809045641227488835771371206919284236526487998482813883967171778418940049186288211100210106040417823430398035816243425721653361958628122514731016251686842733802772402428991079868135429575557568137952504819445538840341234362765096901445179748389910222377877557227427901507913840942278463988008948754868834741678711024003865552649580958220948471170951919420894384575714554281798612141360274152370770691479932685154786181151984542287095975000451427153459310023258205269610025402956292203508364074032561014801758285458766619982247926073462989085178488485654094162784739796201750866205431720992447962292593708442911514130107386946257583478915901257064996933622431271004235358595483613857931473288920336211015009724037045398196462045136960815772560665619627390726248385552089390113000254752162484693297208212318010117903846678362415836324433728200070099446331357869294508206309173848343363581432684611503609153078492339529791061659630086628147825815837171140132790583518685070720795778800528461769379515612854034147658201647046729546984794641515150079532269842977916459411647977454897286625871536167311380359245825469250536343800532487852586714253714660084722026266196282239089022024076918805807818979335868332656086061321997751974589733110623293207626704395681762570292511564580941707170167303933367630960514498314543641412488174095217475876188186378819669374606112916932716086392428399834228301931182071706886849114071017451474413817919237621088306671886380598957290044527063117428133843632832595053453281134485722125967293966134666172740192637242250121210657128002309065838200727321333401286671626775408864141285324541822335314522433134928190111938702237815709982380230892289455624093186897565751813853189544333490338005686103710058467766535928129398138703097494546355222688812099138331156650301741604608883339574980429081584861180717927438721108164378638266905024143548284127158206337385586110309387540592729434278085868358055101826159050794922256283727550985066125966205385340326776658420652571839027127558671185878447830663363807394348516080953903780059492641773649770620221697324030892747913337848177344115209885237572755862581216250620376907560822926282519342387018301451969549238953770792756551431564896003335987125864693783613344224382473255720543179481265744346592849441942876180651096329874552861629282460171066630780273536936352620499094804498117384171826504605675972652182112838557308364395608145130478371883970583197516896855592571814833637325967204682907834985269359734797873380570931686000832781695683129820673227924617049194555527252297010641806769543351634416456715098573246613501170880310436214125385350229440283395286451527329859757528007588152057779677659381678439400189699689200163611447857581722123884624014404837406920644965823346328434770209163773856088713545957481263308651640282717922138174257345497476841340533824827528634578661990507348697000870345100752898906540185044026628483800629849390175037971331301204804401631964192377403592991704134640397529557132009406617564543855759848234747552896628437537210718296018324443828795269067003962800605600176754725412227569599423768926444568744371640588288102618499025481027455663183830202529276760546616852328988603007505881949010787246587164514121909134757643082587795467499674437691014905368719198095627322694220465567241166306052905997866215062829231603254571631121093613878776081133086622883702961824102790125114911389931165919301585682285890391402959685654188465763615877457831550186510558525352920542305068665493820079963986810154552564690631205290054285937630368099003515775387594803604581150239376860643087266713913958228949963886363707080057581278756541107654017024286720471661064072319050169143207520165137305530865024897826200330002266155061094322881625894038803417928576787829542302968599416969391648704978514950655168530783357166095440864534026812707679308569071887145490760116204304517292699689064080733272306210916132394935282801472479492317548348587933677744293913298044968426556056652170268411132435545034708135339220787598054834037272268025878402329388849728083640344100116643726457153614633168855132655371721369590170283368876868429754563979188524084860077478922311989280447496335862299599010103483851251266949857210239534411847152793520767989777826401711929627307347205271516957976360481318428446272555312175563862855853506064844366398643885579371149859926320570659505488063614288892439031026795285959557120157334883178736137055099752933701391871883085319866998118453159341867952327885881668489606992529702844136215085416925922690683228191272316748153923031908979062401180200263019992446242826605001388151615948681401169453013592909267395943644952991927792477797824731181774127355117852412874566051553699477235996374469231644008685707123475151398572507812548139926302589666652041241407024800529814144739009748961251058625835774685320461386044451231328315873738319651785961532382223197797744556721581115299754691485059792223459961553635275782196141335254523299867538686545361461486180134662688019305808241014378760539229406276349634700432913833072694054355511861831804118227280330516024272438758118001264345646612383753977765965333892310282236748706269096959605380483997355502990793482817932914550914149831962740018091571154661950531842761845702328230796004934768815697081955586151492774261982278974067069573360770186232958037422652127955843229791344525577882679764372772618896332130455745750530061021337689818935611152771213776239855190022418682684326802604826232648108600228690098577573377697190647784319457048943233003277135150434409693734721895601506670022966502242745106210028640114480424967955120456746318975346400212804458140306691407179374278274633176695295072827050368850722112207514339236555124687009461323830690486910459346558556536935596431952683979471672527410139807485149837331656341989508112878046161712413791085133022281454772897027546773151207639153522504535518729026276406792829201944971383560700066006410094361500816813526582443181267698522946272136703222159866867059553830556575546597351361497538480877735078510471597603754493774108917433528613751278537940463597247155214900193980484805186604457726730934658262631728937260845373167367734500587243248433817911818499414325760944252302318975610042498886068552289795005274504706471337469213531260195044636165867517045888982866038675564985687154969259876602846815544429037481097896554350906115684022150208001333448302532624697127089159820808482951308316146101590317317991448571369286673271645285156110288689315596711870556665449908496521803216085620722245424174254489676838128455251436670749638475357561647719840431551586266356562205188245994590278202250326208367308703233609372390207035872213762400974689981797792533002034590119607851678008215311321977987110624340354054503877811956830700965621513240063378884886699366947517333197547056221438201852610266396503747205777470473862446996582777867322864297604356298054988553062133553460545484728087538145149129397269392441521182045126871597134377991928191190352918789018891158595901887070477714183988140014534238063369067855164929521882900656587854858301897423056122295227995084634151778415270180552526559567735653008400682296221814158529401781670385594848963837651334879807374465331706223300321332969769928960385098496212113983651542411111948830873473830704761985266335280558863569615442376912985893093329770102795330000399654162967487951689322275930989498909134239815217714064581605169447546509219695892171230023155615912632667198490652985399307389253354317358420736149379196845828548140305142422496564936132525087244547912583055978109181608027907684759746623597295990416647683144145256813540614577442348230665250520402256350648429323001234167956935316955013402425792311639014498485511621905142026477461932040823491971093893272682370481641541839221826050091895219073055458244353785884144849755392011266273321897190045286984319342957905191872574685674896433521683123335899310918439604042884548771083584925382722091126990463572490904135785824889612804185864286512111287862033681380655338180664844052376325188876400947079961984064022866026927015702286034896272343526981578389091147968870954144805663552019318227252136648418849521958082012026194087416383201149577417605474422865777225746813832249392153732373091511396746149515903519269953540852752122809143311408923525824598912933903342224062946377843066216164428270866476715805173443134983567544980152677095287676391249218272732309593268196307962433664311843535206011878451929230664661704982652319987131116666923181198223062175837768295883015842913466843369235149304682805293515328253198593338523034254131014077369521883251336280061619534270234171747051584712793921085377945117725421390923628028170101186708713289064447325555045368344983728827097145834645539976289488471546437157611492355130214529955020782926850212456126760608604970042740623323890036953885109995884020254851284762522431602310771862925219080859411157900248191942679306921943995672108189963454329149995362853531602107713225693338019474658251772298800490135322311281156225355667716163626283362280030582329623188035303293503338740776781394131418022878952823449748811393494651289745059656846212595563624400460817028625916159911909110061904184377339357303246649272135819125075095732566371685058822905280966340833929402620293218310913242731522498205883951740766868050558944740438651530272673025482131704979842211199002767411402306474129881167609878898803749003106228226891804491047066907441335525661353405728571898505090935468668861118293143487064336493292430746406907590705525227375890858444012159782926831639488705808584838443019566122968975086453571254818357676594231182063168147645343027794878831548787122609067691078986406389734421097385182352714863908662866834166970917150916638416161353815410295096015266460779446005062913735100531392755243241871987253895626327811630999726917897761559005941881587140311918184565111444980698407560894244260419725234693159118247956514625985507278628816778514363126800409072620942364068039884464100542429129304242418096567842468275304157590621562621947980664785764144737313489224172234555282596860155460452732447590454219921151543846755872560323485778769899066612458653116204354610154599808117194914728177269467302982280705784219435374923692535174424899254638466313621359141483286000755116143616385741493585005427082579543371282716067539376418378499027452493753806738272339965416370396808457654105052583122915701124150549116934799272264456648426403221655017602153583789471885824806435788530902951311301485116125764599033880371319732907795890083256158175126985653091585804225481743309623612100759397326965496907883534759883079577931955943241561907777234113286069799320383413232168306052927851873029135765706676296738701237382997261206613573590919064895002271659387204005484163647811348743127718704063798477923080839292726120631744912852067119079095046996637971874593667149388528456558362417290847620370146431339073779836012995732534061282258248650212867485488690538144537849175110776045731230203373546589015462600351328656746667315732613955408642800062568581620408212362290043016942280117941516082749880258553341116457978386045855628408543183392032325710380246477228518091459235361447125985407031983594472921224050497657631163756823320411066707308657438218710873336246612740368193938237490786774024034006742553592908420446534099702892138633944753721223090205068112866480423525699309238714267034273145577193676941158851330850639160505282541333925273956851103399415729315462845439949797743060971799485211907240059897523428838537606625456383660973234553754211764993255659874056894836244731793966455302468731722924588097195929977805014724299534586860036028435125793922016027018967552860282112550955552348895285864996631629946618383850084790620957475179569961512750651084100012585605496327003471470673152388139191280440182270206716999143643769426451841330467774854534444329176857297283209719402701083294014488448156388740542998655916082424763049167382818081273405732018099907225508443960336945426314196603934889703412254667994144906988475944348929680809654894872694712822719726809480369043975402593096213777457287346567459785695728124102773335376752318604244744429352747607891645097494181128087970243344129457545059445289571989546062461374119513844909741427478674540926034899017798686482485632735697932981073745796282003063880600563594271046200310805192146126519963466029142016089998532654174165853391663564190512190164096017456349261908055697158521842171256057431915663637826145694337045419717650398066722811529341267441685942946377899600505881430480081732768731253555549306076570882026206749846140402736817479706645333088151906131718804039681934376544069938610507400133780031274385907754379236358763695900042672599906535781446841555576339257424500205655640537856969405133720950817558772708284318238548627953168857422400104073557217366105905633279890036249835520415141767838055143241770934841348366380676315880185711287975194679708739671697076699144883900554265532439178893561046018421883185296797723343523191108530308459950907646426824110322837883229302527212156942610453993892571741612938791267765716402208031144764196160352098475207791839863510259129819149473257776146936491112183595261120313402426554814873915239880867470166369178854534464608415842778815818378136986438800276604841548483877706156513359630441213319249136856777471340710384886586768854923491986898530122346772196175883124902520501964902581066750273338734616737042524703806737831731947038503817267436210938177385887558644917258530829812984243471401246667209890107136526963770233175428027093261249919251703099866535910062582620669262740532027092398544656392834534020064042304836270986770392067080088528009098203279357839689864753416660468975145596363058768839170076560912712264235540557905171475227802054872744727375978414557773480410350626217879709164297964151041783638023054580850515098970993503990574279990658378644054728787035525965454100649304809381708489260353533336756945340617661333018691346918836534982073196047980366149196910834130294899213730985027398919147621300152930530910767987335713614381977946732355637399829133735047525311744237566105279436634814613364700322862138158571796962957116816047242146413420920462806595412577734841512157425599061883949980596675238754561945597036218862149289973214325650520361441188323688905826175753307812600299937438005002661660288741482417511363656279422316947818542106553844555029612775551069484533727771880615137424677662776250846702223402751106082733958787230554740719449728803152049281010253191137337198409382425057834455114030603213653460606854141885810510942243347554772428883405359940491033947100928178172468164899021975947484755118469293637822192362114435558774719298473480349339439442315184201100705681210375292141944886619736126976472078093432450163360124536167325251500497008651363482827935454543174590406610024333273568742725760771387143842227026273887083854606566746167601392296023069587431696594313845065153910231392553720850953443895709967124210240610129268326269591744018577759401652591185576816201925594567745342272157432941823724000075038499593901315460595854908189243058452536761612434571941511990198556198530135056207588358295938223615472332391680565351055437944597230743140134726083928382310158916016030980290347078740221379138302788217379870107048135112589763293789951858723997571484708577561988751962630338027073697749159810451492750020228803700253468950532335433091710404880485753362621524967253795937269197877095466913104289802720619530572045666314645801224296493111694504784984150973203859465037040018707371942541621600585204101106692569318251783933166687056747385285188880883524835867721686727048253457801129579249040354442343741710873535586912035426421264116322509833110490851761237896933693643710775127146008266488063326848730791790916975229671939882686771843955935896995286488169352424161001008062996917920954247522961390965933956554055888069550241698939747505516039413536070764848121470408905510720594127682420042635532374325072084137427416078852002738093216146922540180224576084948172546837520660860814644885188482015634136323848097598732517611679804636042612755007733746786826432726215788061263561419806541068435875463606528822286963721430775280158321103279146038802546816386014359062270701555948095934833301514617942421312085178284003124080758805787574291499027727793208877376186850520099419774574834569028192981643592581590373801175018128099659357524653356954301562346287099481453698934959383347131445776613496863245880323953793691790562402485472222414374470348755419883828067533194442660285236372330952184414773994806920109471113821048700940419003703459779652038852835600031086022373239439463578282759463793968453452273843039604473101463470067375269286437084538850666893538164268552328188475569065099325231715223044666318252902685918385966700426287353326583348222226038761709389036058875235790493411673595155523811355150745522391389244335430688523418170698310652393770625593382159638338096552091479238675155683402413392080877041494813359156651158084227342777605988442884906346417245400514235234664959790568231952205984887327280754326632269646866993176764479227105968861017959699257552192065192316164480042276656867181116383009076050808827583315802243356649208616281431060678368796114733961356570662816471314015504616703458119946762222438819701203352921413916407812931269607958096864166728465504386783096075573168679888126223727077293906142754067290892545974413851323008931727250501649238139843246788856484236698076014755426089696304632707449869146089978063092064636341284738410069542185850583312589959815351030488958041013264777314253959720349378219575420943987205025940843634616027440416818111000670476972329711894436795188663359830347754912489697097179337386714967088925953981812273240142022105055357513260267654310585299282937888525138721831929559548447300331206714006391968751873769257022833974244631526214079362260366151876006739210095802776686746334937371363754725609425252284909272171526934379508884470753308245073316346241444863425959042890259887518334500634368025429779254375270564798039402072194121530045442562034617087949502405015672190567370740143109557047756471800587993140258385917736795935887859160746424690960779095204385605547525826848621219552707712105365246034590232530578774599232720926385266482826080436204092709315927360290508770494622341517000112826570346568314277321584076455245484348336475495208213021284523734573880443282948827460232457724990178301940749890621337746842935199038061420151635706408610123688673478189213298724110123582956871451237701219889380071645656525047911711203029458794748124902926301493066815947867996539974406954774995187889201165596552012156146515240102961542925972725636943695096327760388508284949080590878340798383131278055071686886284848592071523814543907807892037763221072079620078658735577686690625090831822639387871821302150029743744236022521090428715339404949747810339802030616710175375045734734609696323486100425251277165279561922481399282365464089830209103666809129209388931067562167878158550854258593082034660201910355772185604620273827628759866263583294770898933491245535670098915779383423025057926169693705324643772708836688231245416877668184842399580494209014336386814292463638441588523557426752755662904916701995926807514717425955952952362575468886134271246615619091767354829679725798574320270213650076649176149853517903297177259111666951191262658067553277151114777873616725408698052435336206026855943378461022735054471424846744285446788778544311655395388636687802301785362487021441891584514458577490563970108824473134430403081101965479787515539522890633762772929898719381221014456685276917324439841611130168615573559999075560089667604294301362418631886863612296703896375466998841544177993453526495692657104702820714006266211592711888712082399770133131558314246269045387106195612826793692020253340065545132261908969613022647437537456462913898665762318791449080570224251285174679975330379887553739931300722393688487256684049524919859864327116244538682174394959986527165543175474289777116320677756408131346699812259085972699886477566496376155481026874788793219330698528780293501433414714867246787266436975972070634251871765407123511260905619048797047047201503672620355724664443789593571009447699552081993683874508051087779568055121415759839796252385879509467411559564888120976820821548499538730347833945007796579853529052898299012655825020336114323007729940270487044545655384320135494095958668997854455062064643695218815452082001589744836204033449946899305288950910039764965281979991906118388726490150027981299095527547014089376267358623682971479977936468885022047263792171589449189001969251745191026359375388394675574685918977673645980459782627220912055722672289653400701325850861273619393269787107217392847904414565351719652341399665488634726006225155476947518473068069779886955036842059782453133375791548223587558831114838582012788449179168163371516110638450824118836840860623863122557306199825738841806865763992204852815553387571664688868001583269122326868406151150605809353854521873299325555628556338632587989693820688809625039958191520903633998043334010704977634676200286473485297810349098409051089540630047676807853921033912767757085653046189501876399293843876046674135233465342192327045632185999704118784553213686819318888480142340972433263828369739584197488082354719713913191752201079712514065625262875598540519555476782379193855554890860031196989330486248745192398854433146557257999748693831630129525084395611642856784442566842405149424201750500239889717123313986127789209493261043530295071935408263311314039055286041459803372029896093227925394386163004667473712475226489579692509803600096432001985710153405000788468180377409283292911045436033314506203614524439507488334090464974250422288671774383156752820840674081659237700447964885372273775873845977525265929942680480272841562900729107166832795902497427390618136372510466941836566805497447986271138988099897101441506138565511520522552814719458846013609609777499585745143523543003548590831733570087460441872238462969717335918611062369225259460542800487186541631195156603209978013915274677844916349663435527937085338497886867244558512536389623880221020499489154300645559330037313328528400606349417831190495090287636431629945754611076706208757299429018726412510683920926531548847554736520995115887199460683099345405475593732578838972638634311837110421478974783925909304021439994346393292009929835938632569102123650569577977619808354109592395777103737673137774418913196542952220661193754853474278825663999341716633472106558624175708608455284585934605498288518859079361868471270345785422174207483759277795682148390669211236395126024383653586181026316591395277926507815582959510907596414389796666335358030919014947373017669951410187401620572240200752218530277505271089612987762153201801784031380190919370384474749561113075712634303955791292357117526559505784292471680520348692705056192429251001887309388656796829446514801796911989726214602731968010843848018820093142320533254642709736248381288641549662738554208048828138660334346570221040285398925272986135423496978387106184327511584646733690661202102282926714137419825256231378343217418682006416943819772047220631173430615495748104086982505947645950505360570071912664085141988185850596322755846013172443867594999835191520871294107482180300700040901946775899501656809507327535180261798704543316276674736648057457457915967860709946960592253934084806631058952040002745166850881149212523832798710229720808037970585556351268367193440872515008127517124061725344425461162228906510829976826673509263384712621303523137844631501600620752954453530139187288094328798052462256554418727028518273753213815262772766298178519393418079071427560229373335193225304328827421974374608181211067927561830926510745870109474737092106112516065087118373314265947995619241837034217962023170983778797169860063093490090468357586530574025622792931775685020462057328126783643936650776693110809565840203800221715646541136241977124130548589856912607709848945211547158440414209138122402806553948508105483924708267147165158037930372872937334424909470836313388110756482470903648985006966714990419593211676696073113111116877429721750178068847023911147091963694696121206402196225411002431077881260323639888550038143507079728552580688803344736312925438095392865792626842825940813874188426215302397315642284288685945634871769085970367242697765788476397114545512580722565603364179842670115249754584977826690035066406508095105840911058548305450880028218028620517374746489615363367948429747720170549141170293575903033136427746706794783003090573730759859035287384165116286542089640191404860943137802356445641381780759243357691894911281095555975666894207191224840298571649209640189749760075731527070336426134128014917753089407002913637979615259245874782871171254790129996800708405796108505957141830949806058202532801193551586725451593303520969464303693503133832766523346883813175994346103625771696889495694942012533176719562929142204385838843832074676953324577849384726505852824264611284482453314328720689846827274117541336823335531508285801959108575889087126495256372600276953938920963877482234498753007718328513626477931256779690020025593936612074964970792829471662315811794333870041103565948339042346789493751952167049778046175660414921390152045387450873600944346100517554189995501791084363285930421991137621829225048286094082859327304036437999268640486232689370061548882902343522085538101328454274418601906907456253952657341109711914772244075351408906165891658047485855472124561119020924219390350749616818072726613816025053349605369627853745302550874085119043866216873483707304685860006864679528870125132669226246894896148708913962429586836358094075695672785804161339213273653841974851005502989257690857902056999612319405523296294861497419260966591352225265099544664197770153238362756200764801366609774752108397444068206052869155851253725264903672362943497542783660060945531247278824592954291860624799681003408442935353105458435072854824967489645317090247565104948264762977672976240754056160906348566278748672285530551621499310031627929739058972795250196495163786675068052653775405636767200396660618633684291217878985261927009530212637438517377515976149115388727708667545504364542859053804208809813949153320180564937501073496046247696767440379790019069691541092830739592359555027293172097301405288806248961094493747319495801186330744465350151103499138393403508917310488763284818085225302452967679612373992850312634725717432674031840573396437133690285093467416310861500319798766609116340010441202060009029715045737372441848139096916148012995601351580280490818270890936414166516130975563089635643568570142520051465469199214075974206821869501430578274272517478762852186138862194748242539396955864290341925866197246493098765676980769424035446553527477106033160810887019566939408447483167159880242677244644084149782980540096514507898238014989818861046203973688317444285162773639803817227444059065788197339383539277391097071612434240510007422150370338375307344259319441251712932768434631427686721947357850753300057077312799531278177086114168344061972106546476274378988795205846442969923798076612056077991993770033020763320646712717408958115481191709516488524151402744020094311508337565928089946232554640998005129658838539248314272708170564325671215757251686811533664378723211547097853701743508612300804719595257379285207804260037338781170287687807174923481368504009246030298799529716241446724349622625668449016278568681863605590252365348826030680523676265699235255739181613664827921972110345388256307918999423372814569914950795106180397756392322083942731894927135350378567822049302290667763420665964346017208649657914723180486742907920522479783129252542854634726052298307138765416041324598248315830875874078973620349336838217251273995618005964350554425952829017697184006075444093329073524966390486699613316620267322345713663375824248072581385116146531011968978009645318534550091147048722132832430496402278378363310154610458338219060762436033966387605314994177632073157374820435521740381275987225638749983116106563220525028592568093270202723703688459936785086161085399209268462519364583765202972083654431134807491956000954409280230972603692969439316974937477216477789146145008168754284982551079340384775212932611412416803213264917214714110434852848858264814326966660906345436030047226252932540949435136811888907081027795030574414565018698878591644108673497317522624092359612637109346691584729373121200862557151788306698374406619104877122402156006128971486489297114341454073938374189428646703859971453657697316285785601547120258285219568807051157212778856474337783304569760517491474218143097657316587955021661170515353437782924311840972150840770189499273479272842748335905547842246777693391922189883619529753145468587511249394513782421548041593659749500564725565989371946515323310406819665080829397859376915185859860231605273732815476438461580979911271149738307480097986801492798284564900194027694145891242144008569530407891195669826341280438904758416268812254914229701796600089751106440200226314546217786611134951840982644506175107041612122540952030928298708750374645595359239088472031245553491701208176763879078434347065708179849445769026252215861748181657023407150909408033751829302272578715642618930550983210083587345543110899017981470977555544471351596409631792919147191208422475498711919319526496902446485536066107288879963863009654351904408492795993371883768365468842048607761656941677069870818855754005681739794187810091382096794378154845804839290325905245478870137456186653529168387977014797282059031970367889380581346683905139126544953883152799846111376854671203482324308181686598320947840651592675362172251551527427368015035027092122783927959836905578751944501817073919673229690739650822937656342289667770456117375215961676434852367985207318451936883322857986761805554447328264967228416361538410641458402079591425384803971575517717443204982114014701557424054416444747493729440543224581471004015205561364383956485089017763231101095057008421337986995207612872165942540790803190013346945913511472111021079733301066603781232206121653980510642356551016619377691533745905897219656118391610946231290282141888418010829143916390704816975889849083194443736083175541457166594830306089442538860590504041516372375984314027333860153323338392624822360061507884954575100128621757519149824305177920081650419980069050416057764720748602727171788901632697630015457577772351921935553630241902082550235950015660479683597397111078496246245653682783015783267819317630388720564346229575328657884636604726642953102136347148319426219470358873449168864272388265473936697991163800324612764480483665085147592600833903266592992445827861675038890107140658401332055394568886915899636479775405950273181260160449138408520577935763104996884035945581528653701644107861807684459771577722039972598031779776251330482733191066938245011353690638705336952784106609687300898678279153862847871804846755546527291191093893359762722257238743540730124244756932356081002101957924521810562787608916262091818155071777014815592742090571355720878549746490919501900180615952596387789595578500692757005213429604541826632633555823405831611781754391280650055404856630300487151419763851752933204663070902859502413828348055585304457091755329412246660884598387020393080587017964132461412235063156107077512797037670746780322827372274092749082863843338727918736077814366691558010921645312993191159421463729815154181647640375007145193838168526175553950096201686574822218572978010368092926684074072675548658889302010186652839626750281972266538650000805087172607353258817714983966030154271191493783400221198490161260006844431575501453600541152528868714989594339762106067602271704900770685786022348347088663600432788391993596640766295425446371365663438535701365437739646393135826650578450503415010580496088460030227242948366532996543732776711866911181056647225947939697238655734040441193757426953071373367619032631913807459853631832743723587488680941451768632828784178902080464969109772448576117149122366332144956642952680887218905972916259746708834667979041315600313718617502359205361931964152070956813242682835796444400963977929599194396594935975734273917591760881212692319985093060276681400273058425801998421599133229895062826762751022806588035312773933771005847487744195241837915058158698446866608254074206040165539256723807292078627978870783049992352193729369695170080346386972246442163900506841536557622636694279308630999693523086661205296882742959763179484514523666637448511322586991785199189594772920907596693908843638371777560875736752649915678231274400434034887509880501981937569752971667889249289351940859130672033939375403335087892874462285461502093933749882468556485383693200603095879269247802729681525049054388040468190027145686473841983180160560141128039655699866230552872153323284858844555858485317796800897892061554412619408584940569355379452841291299132105016165177019256389337549256372546241185786008233141509997635784995112194495074337039737953363259870929852222838085708469097492877022655327255744756527864330148863776807331554192356406435980578209651532888571800973495536614798103711354915484478800651634586883218886961460563720093597084853299616107336977149208382490336027807144745900875141220526556426596624048798742925043262620449947332763009221601879128664557612497243287878806981640693148290006819214769693768043951519496210943931339951849835510571394028722865013902777922324462686044446604340695429483909834036677346639522773757367672194963490890060648877784968110770458522679519914177965946293141544117101153281794540586524539584443634896841586549398002100089807420428242196283630626462325132281840944455514592584916813753304816350246952976472446255991905000324101228032609508369872762707779278462341631593295601791650219646805089787430304780369409134971934781997848201097396786161262240893678724277492260235896485812411275538606945326486296720249422634213063460784609271226205491900955306191072020505058910148881858888238125017810307594430438674175565250099858205972633437140571544512773612286993039324486912175679408531773963123001944324695381345048971827990897924061337066964669660882932409989137900583019601049840792112205254740672216513314605622854016577378649477447529043482703837056311065122958792579743923482154575308885675653947190637243424395175428014986127349262564363450681830905233413366642388339678836615676448688576683978491697802929920872274094076774976835826391031084206023877792678485200999812950258800761484860860775871849894990693781823564081644540248503362967871967045025802459922013971908930687666881860330810294689654060541977134577854700342043587576488919253830415612918185926501772147471359944348821584572576089915938386895992036460973557750650774267556287700654659508704739430046320037019188760464210568127229501356941206473059151740538183312405493992605389853827821052144102724678181215284437195322663814259116710569654114730864572862935650858627845342792859678999425899045639802959721364944988884031485779966796807093498299251244762223853860981997212582827509642380293231092753717707999901096216975979497069580651441359302017329735281077009516851153536604904487459679789616761444771178040785083071115312019355690664931361032218618454177230900385389279218678846340413382026713532610517428634080515572476940555771445070515645279762809918942880609592349569263938866491136464502138676839016658350785004162082820594336679518044740858081894565797497613099687149374779301669432987405320685280635564058585547512150548534212560323734439112129303261895685398281492860618976359725161994504855635629339341103819699741298518935028268089964102570391443076100320158381672431671654783310355821351173051468004201585523348578588159420994886970064737028490162049564077149231840156777052032990468071376926630983406688648997509099830490604404431894671380017086048682215699741285761928382254043423658578715569473329285224266019703222472010679869409862635687802459852977698157520795386919890440413186128237654792480300777671689212478618040401996994968980718131132684823866572701805561815558893891416852846410856535208307484813186540699550612848383681902671790906906379951818837642433112322547980459316240869986068268652599973752465249094365001720840737411210191917835111443499466578270553897485306714971334119722350530345918123495803258722730270388811173409553624801315475050664476961057948542271139693432694339776123666612625588524851460981247308563089782631099754213935064634605588890506110541707041452106574082822333356258858504104201361690719039854397820031351989817441619831325868746609639345008420915490209926618810007314806193574608930256433540880935504772569616757668851501246018431890208475020646554940824406809292960104807583448139608805736778855573325476014116846080459529673962150485590709642865154198953007149228608345731821028113158265432781220096125727778153331131256404836434176401094117525705054833626465485843406217953099434020446386577220689085298312681050379594228154595429333319532547926713931167164235735073245883492139105932830523185250796902079334375093610068858791971433719990953429783684341885869130050537740212038216218500352585065786258351778173476207099448579442487261482032672988334254997721263081416934797728860736886916722578923756066180408552655913230068654261752158729779233578347597417455872017885504430544311023388826039150862664686925321714305942130844948692229242984876751589126774642444355133434238054431732301546841949250792065289473161569416131849768892380547310234055839283437912671272198001391638478212896684603868714832916846253059008552528846069877948362976883950883315502198467028320291865234581395830892147710355059196773116408009527732440928143007906467108981627809282955112561205166504331202827364711135732245516980135792882489244891106324301071891384510027599916469248932863611260497749301659999806426215792225925988130418920868565866855385228410560553777870156820924594291455902340994859436503618983436302277773410303338766989824145021888001079381774532393808153509692649393601412490548175010332275911012808457654135730556356088390321668054521150142334942494412075406002419671724978427422472472160653935917809477194608098659806346331911893771983682561199334837239628719288543719554756247991039253759923936571671611595443937145521877398504468449091932228041955329069161928040188870238661634446495968941449097493785909291278132602123301707196158212385906741398543121052870845585391775250846470964433383170052940708093265247078796719263932778088545818447693488157575044464433638521880137095241641215579685174971845490744968448087929961732236048812629158508517518817843640939411106331036807168774021663482455803372199257678841847052558755989031164230891686024664664402945765382086931875945530936834302132447294132114544733894232689520934346407869337597229153287584744602156742943463698984355521226076121986460435427049054124448719504945611163084157878304471647951421704683392470339109147014044761162203753994229904344003845570042399076171843349169460412025197352451711568855283710583061574916774792326806017047248351648350211672455330154428627422171232067829424937993233364680460354804987462279140000143538145711243121442368742699852448037775266646010834450167629940183564455747345689621902438677417283220028058307289752632830058035903428006870535879389367034032562609889420149831052669541415781979960077773959741786313227287658785783652348724440826259915027528567749186801253530118602450270169765589446457341440334376831901459830768394696778497296673614007469835419452494686982771809232715968372058751873781468973560464332907437595086765123730399753741934254339803305967487056899106581505504219820928244619529601425385015034846777217950978185022424595036843890559291816587108063002213082904431499732580310411670307256911145666848135893309685906591995855118593687686796531033520059664144388597612972032197153300260613277070382473919795109511474904713498231645074122371422966836260127421740160858267351223380193368598782181388619300350559194154583287899693774193782085022758940721612497769790322588680186233392571494154189559795657593742849118485262488966797797192526759212457846231039515525949622890829209146151084021300925758585642722426025200722963755238614430037303504145350082405367876188288420035793880227431549057879746400135956025257749521887163460560715418414989700430960393929130960800445720210854947539526722569888551724548225494550723716637605057234252811555800230509833080247013127426916596340139646802311077014172496474336373801421212276820418774309258365452662272788467744274763956456700974219577308575327722524579496493401838364999866417682913970861690496315404301414949710844712116348711216692791855974893497554584878883970267902909856174466173113749095614321736703981405439114442078944513710462132425107800124642558176954252296225749931369382807504244986964150882017674906612575524096960156996753015626603041634322652606292656250860569907762338267396577768784882457080693061449897801714737294523065600089053679004752022045163203295511481070071997014384242622043975539461080138258433244575604648889159909130516602209460417881740961596463825305231963332675849732560103149772422269534995506429789273114029964048946353148176699940819568780704895843820976739874723583978207271093476758930094613819529659419686185066926334038111801157050263439688220006598974723325869312987306657763685347707903892090130970027480522361911185586243822252387753496689618530452339613122410586574891488304558342012286962663214556661987566680138144669382932779277377826821799823891557914159853281304356239210516582891318930566030477746894710690009813675768611596974685954323125572079705487308271261605399020389575567792368468525735519905879622792863358973701984986419737059695702976308005678949470013111851325100231309794182431308537866207464508449894015133311972102075762146435165709073168686409414094356403065204039009387684322426343896130816061511898821619851692046265018156447798189346397867333589828506267874529469295515128750049891254841397344832521170798603439006979344189641172087563359454570100024574981108757979837196711249724161174869441102666594521422289252992854430601810820060482808816952549498673131776398882567627278364013461120557800128784741574724627663695405985215400770432553830042537484445719133046642520241150649774319428640247812253589317848307944195772431289288625630706969339764437309334518849863327556514658993489218236363804141447481143380106614784580270668377760180526943524293506431929368741401068095221106800763256931333317550573341668872624925768782482769736049772990520732992468576118331069243118223289361713070776019124961194603183408279057338053869927716344401624101491867244575346776068042925053511207505740609996244461189914845561101616831612342757638307386545565421866862260928991440527079460751009445880251296032543385032347594186946474149282857786074857494702572562338762640535947281687988382200343608001680063095152135310164185507855703987553074021725999088352527813598612603896993930634102997363890770111712449646900467316423416101507878518404434464316526894075579741642873296823488788947971152503708596125420832825162336488185912329197212698123784798261533537614157759217018351113486860766723162269843045028006337228769200382514480150565156579412881617339025241909834602779668029628945528011227243885940598646393743183242298907448197106087414902101485790085150341031800776707470012072919100391392482712479430230548461167981846093000003154718718180436531430771110124195366268543554121033788583815004665794617079794320196414127576706863774194150785487318281098391744107870524626274742322328148156492201921018487760626475659024298842187327473551530926749476406867309403404213899669976597178044067116342191562646537673019587040404571498973478405045638506883600603617128283783147103583684011974139046944293908509336404666933492682100136213911816306079160420515979346310248628048874150806387363035119562241621750232084459125109759851440113386128762903881152374983998083255423121344235537517643267980093287276603148432825470139005276465553382239285350958809855849732281546174540207136505954815328239341099508076292066507873443777690014020779675660548885137302725237674377169376689285202348944321344033185694947835929803073594209858458038600067774403828875855078065813729969750621183737862983184646306346628179835640945033728170022662065298450338467531684732004186402840598189808727389207613961197512343387147311860330099397034485532075019053003856117982676359728546517172906892549158192787212444314140819958462727029552799021959413790904824385623948322988025616499534454828333330750387429862756271410518784616218835054214070995493768465829254260369180939091467520945367870413653382519463043278456011343242462606143655098046252405763524221988197173544571333923965214219680812617216177479395011792173019341401421360949729559956850200650170263807679909797811542712392619729583065294539249155414898414743723552349458887230873628966986178326436636596681010691149798183821464007361599747213854661100593539670452510659861802057025640138961927113700581183874968493768745129864313324150748888111132926134769826626446169357274421020092875124968849882713550523872438937326659575839754640360738158490336383449366392659558957771040144971372480093060047866336014543949436465740062049301765558945780109877455053930040149224922159000852804289161474353863341931755485618031910979976957336714558442737405232718465847658822830206791656409339420294710051968348123128666914144837245124253712776858380549078695759732038280481755050929394857349864344692580594932925003760818556771117694492671424402300874854384381684631258741971220204993660758061235936858571407496901575296461092398548580000343309284074660082673676207940401495331470511020591115922738223361103704179858401510395783969113837551698297166401650160318809633435527219454824558350836511416167374359981786751348728668318896615068306079110983907906379501013312477306727832629402356816213471745392632662036081659299781047661505109866539747850027011964783412611433735145891506662585345003060768292841724967346434614419785364608853771794432437061648972651639055912766447342804394580930369766403176388453985854266565416162821329478499754486018983121405288379672788783741818790929651416200303619336863768855464850962842714059456145424999320331383297075253738394876095494332344850562864321184308855157298340886212700062769630633358483133143785514313887250210459538653488611587841684952192337003088157777837202834308104263368090945187061237376237878939752555471092736568029784247717711530811773492394354309441077725842919769993639501136722655880642683359324017443061502665043279212917553894468243235217322192103544762056455682447960582078552925866009416164098353221362381003091107075899335738090396041189384634929942463368095465533695383359297865003749216492356130409886481223757498329779348397782959153275419615803876628650060016946302334542996841351122271513001040825340509250090370735093561221233561938524340427815590652225448864336950550355497112991073490134054441535751037565534612811036686167171120364383102594966020043694118460135458609840049368399448363146837370179660621579999278514948195343348101519110072942560136365690573938175008331696613727209231505131290958262278811299514141666521562815434156857550457035861177164712548566413440685768084640209510910645767476044090822352953115192162023416977576976020727520792159252439876679993501581244100054889731300795338662684855400585349044220554289626733231605234808133243104165767815721064498875555622553256840046200852681571658316706754455674680812073307401020983684174007495850198945317592389358589613762975445252967892051779219877760042129835673132523199619617629168113001438580022232905791686308702721899012781139362273147117964261516254616972426715407636465838950597532651603822582337073252381709881711291122621302617611575913663835595494873274969634247071231459918719372826515150102392853448643927315088016432676205071924502566898536570706058444448245598685728994953379276258626607041287599799716993823212580967759148982832732610793271465432523076979080102040509897943813806891037490523774849469124180129129542794323036631854327378474131385805433005633395977241735882815376219144331705916403361433508215898804583990331969768141761344513353851077370302344689798913859395131428571925824037745661528700013145322719409262128158486730942614661322668801021739972335700335266517823200548942198281153292611757987840305626636351934334294382035838609011330765827720397937323737003520803729871439077119466014097193862925363686183998217427928730710963447259617035272698120379766018340785320890449811106462281689707242424777302916080002506715387933159064565935605902737707515238731771071506076097419268561971781272406860316552253746628637130615098033496001162493134690563026897779797031043625965586565184666638995618619726233401704679142056280845773958410825416596742368729093745966615955124165448496580722393423484775828891961733183597391074946853829764949514934971161655472628390125735410457729540424889689306948321629806570241793619130480438350321511411675723029086821450756598596357917964947221199313679196060443885791126433445726900369131938666759049413144966860137781503245359032839589292761699147407929968233290889820880300554484215821245002729641969756277217621603007354241065024717157292698103537110486400271694864087944131214281708859733349679283404020923957699702816270092982469236955872772646957247340234551722253932658037351989853878421313883686737520965051723758415025760617713253452378408426223767254248073168639286280202848939175909235012557302796477734825145813711766251187901386775070223536189435239637803310789065583240108016138376038962278733831415021950715209593483275254182509257263417911257014829907301016557812198862465444905231212489911406601259348161477971747294639847737444472065465973532772040570127927826926325923277074556977865985030897703838164573491623830859205301924313025563555284061102797283503152217805388500165433276544873317773640496565542360721891858783209693650274722971412983960793151510347952463564592997715712555002802029701390460006162695909306590632696829364619020727144965385271144050062686148981123773465968834086709295505511936620062175840800875548761869779253677735766838538075682394944259435410457576949674759651177520972654672684334200189993012137029944819866229142029154061122497872997249753584833094562651121845743340154636523280398544168979413484906541497475004109453219186546168352574837016518448864146441440822021568065642257982590248167570237709568964944015416950370786374113208354041584277276444971653008343519098277047472977300043619201471622697822024775442005676062681576835418476265669828753080259222523640930291162653873860080021628023345177139304012201830276559728836477277383262991723331100175650746100574417413686684632928683137028676165286268848927549152411414408941928581474633952339573346669097107504065649849194049674141054214397733934151294311127102955048760383079452713191659411926374330714719263993079584634196082468188135852744602033022482470441137432902653492068838904599155658496339641798107744403237567661638431664247538266773070538013189437171267438890519781797414197923991536353582116503554263381199091164265645853324486771413451272353189433234113135506220088335849351953007183433376391741330608374090611661500104212079300688318010557364973728888220563076041095383940177841990833218776038131547941922339364100331952025931541913923232896872278920823100815789810914095630637107230853683575727029684607521223379479401665225825776129679984951760602351808436797611802295528027035495507101359046121498207242250651984106444335433310142261209912653310608938503606034176086526919543101087739144000834074742798033944134370651045758093830438747600233095342208009223227068967768055693155442408979049362223747721657506908638260288115343769286546119610555105848987306699091117865245678172783404802052418613371809113021920399369343043945221317656442555281872123776825572630730484614032401374698115317625097369448525203231294079701198983014077116548645305008658719283376905608825542953350029677337958195079357637999694859417748384811233236261753488260275826149119881708484446896291835560979096741937762668025471274736662289993521511941131534620229743554279060801978565657975377737575333886484972926905861180745482282173525907722388741910630264475194218259103494998463313283916951276268434163462726402557473428756760900686792249703320788157952128196248005355690004101434363729469495584708414692901566656342155206834385946205182553847151051118868651541524212264795527143793194614144138305741115706319088324368421137412723859604582658577581302721240528253545289628126187105111223403646653279376286233219775108929857538482678182874283185990216604116104533827096289335125908783576391404458933082901703919130988074400100806222477305502167689033169763955258987801536751114722856002967869538870421848747992892763225617116087195239747560061903267540000289455799057909754433335449147560628889248961045327003515914417248753575619755878605563650705345126408898295477407300075883983758041286116208798962942797763179874996308203787996114620673452289135963189095912961124305681792980577189666779183067067483522825252478038434971496277936516766159495005243935000435471847132504239890763854148666719249198085131237143293286717943426988530573934896356569621643454284785087402425095334034639516346910307221985347143847237040755801915479432646391444095561249521785655287437008602835030646240814266676114196099370249695255510873312656918409472833551572605676822629585478338094916837800937128531939868168442339257100486633795467707317255365148112959734792013056596773482995998550720954772454615820393987697487360323551863685131976870986818143111004423124111511926238503293243652135496972314628238485851377340391443153975060934349670201749738604065179533825902458510053271434600878253652899536982373977842728546013610371380524004937169305827052544762910706377239047434423078699077503512038072648184911889957610842425843914878942939395663266392512191472114001635479605999712277337331018604020002511873062797292913010687878942653151170668408361877469591489910601208650107576931526125574320719791240550021732373906146558019400553059539328797603025373537085601065437590376906849787972242660658341870003733327565156104700009775574247487986929471381290815775833120922250884181114338629155345688289938267658114348762613671828721011958600413119445740784700387299436820792183507563603250030861355620263013101758429147379571427601586908162904803072615179310746756061034767403741397009697023069173683511631550313494235855193286811507328840210813430890049591482612872657406203661554133274648722340546094970476032096355885370679866209167689728769545277732097635036359690335757903711614591150891215082055704185636630024315734035240509136634985843826314599606331575284894593604861063459514479209363858999898602316933607816032404317080863451021452552546114290558249592114499526470763762298333709891986906103254427901994304012925749322292097580377381785964834435285620655195294103759565737751908345359303609832514685629103417593740785018743367167809724280189786273328895171775927129709233056760452473142082872283067987402952687262682423672445654679236102789054704731649437878788468168011234402107928118444210571154233082302382677232154141928207489685043179888703940587772892065985373272638383940492235165841214006021731053805942660117137433210261604189170012397386742048055038420926886598495329824808363918990088559380566193570285125716986472370600874664330796743581680395473533901967688858993837848591041341635159379998459690561892033157243821252858526856249043151491989159779161467751347602326493626136818491657494137523271663832039767738187542302487766618332937886478511391746777155229121338569725496650637404858620485263410379356623285227279961899672940797231741007868607777410751021194750576659690638515273559348750048053417134763783562487675659929562684673113276961169386337205865390474130024499236981952505142196841251505515717067574275302217844330366488550445072701528917842705110067572747781907276215805837688110201743036820566736922032147443195215546515164166471054740787247237244797589819439730960049514951542704068277468155573288442131243818481750881631216337830600939310653847739762794323759666129521861017286866182386616007736955310232854080370361463499681660143202717002690689959477746718209316430862924009618898151387778779637459438532871049747606378070928807789787441794167811245878690435807401706023288269611663633638130417948033871292537813788967487988277140938688033369133607292432805408418868504871157101064147615186667335236298203305417231573934971441676467051284962894157479681066316717318333332233528156976540179646116933330207544172056070142085988306391195155066013488195061116816940403701985373449742708366185248479063186203904394417802047211641713751320409355135949099117620663926682419339287951476549022762910164379438499256483387779822570759073842622880556636531325298892008175807473331358909429762082504188219567876561037817149814354507322174872601474541174481517232495609251179689445043920314346454008234040376287307154347695652067367063117297642030856427223480133858531451991961828627355660080477455100006129050801913389297059522982943948591408572012140485012253565419281976066572392807055299587580360615371158107545343528677977510176993006462219346352010605530798963319845600282896916850605350761332614416398572451106362945409367509707362739628227099836978962981816167406741944507664229122170818687691762303425183650856847154888730139218704795203351115559205668261484063596675999207336257253537312220522320981259834979274962866441057060734392258901477107802442199307089451889036945549854199683007580293948489687134788657721146633253896795734833613145824979673607127773854818532431897020359616738154391774299867518170461274954836629613927165320487893216540137493085014398394621626137859557952537118327265367726910839164382949314456559373912450961529586446062133219284767736975029074306944368310192979037379994451892358952482133822608948621095914212775978796724968364279322041705383351757079792561750831472112835975139652521591574831048584359539502298724173882631258349457332025564856131527249032020030142812403435476165596677238807550537815064121952098705841368937752845131968579427764648991445512826261044758051540814259081067983086600181241993344039686274307800256861412911587907551389729676164197012314902929879136905662596802082183142454542149369029845663196540156462397874760552913619887810092919499770404846094714314035068243868526040962891542989577118046696173493274093302431260626210628504583316763344814551962894545256745641931424470815812792970164992338247971528528666142877854990609861401286339776367213292713928316867792529351968329301450808083646825818685496469249669502104930017687143082307653367478520013261802330259069028804415545795572640686051366075657822576078130827551874936077265287895960408230595399661694076896815774100517978340600935015115305933524377471896165328393399758889363000958020241583339436230995911098595842515482793244092586785552936237783005109145412592952729710578076450574916282767811225524845577940109069378351209425483903491755900773904967616560587084695110956828941438915423949125770216410158394238902486219255180781606030712952796658120984348646104533524038882620912478635919690771518939099836674754966438416814786871440970811150860050614988781685102369710210438086185575193718540739503782008977893108665242860292434357846784937619435966134123317762659701566323834736226081716646651629740757018274427128516959898238490494529704130943621233032365705889234118600211304153447603092456285790612340633991968672863735584359314365840039822695359510593562731776797817752416305867348202118498882682552095095147673934928647212257306178596069795657111021222578105683679790368407143603883105938560654471328818091200216921397191447901866608693336411869322074196596805041093366789737248205462318163515387218078024454326914406517477050708645887730215488999778049153555176421116412884448471216559690970441572618077339512997013508662448344207292825629367531445293097723886841454297210373203921860721543041442635707841153225845109088474290801552502940408219578599689714968860779082537332957588488376720584785240813745052829170622262732930555868703765638915542627270648998788371670424006789949284663109166774452352486235600147996213313828133472223450311643583326382519161782476383418962075532843333416159847181609249094148473245683696753769854968675936626959622135836700751666143318122111190779666167332315881287644816258120144264578521906059371379605383676167080695520554342809205732619702971213198545477871723705610178524402906536363597562454435346054308069695096638549243424915347296676194951875111735735354228092957427247917196765208750711695078885947722446660683456612565909544292964991049570272599562859983909548558467531231213479602827441848197056045519411730042698398839263553666978124962535956067495094339788133264809971343746978015637931077839130183093475524471183270114147104656422103591664457182446819461798354136505116981497415092571323083137634660055824192072748418056424376287684871248363413105432172453351849312928248815266625265042037446858002903345589628331331859914921469936474245552950420615360817060083326183344428308186334034970378319180986517326444998606450153645670570548156878612940378967770217408814511978652686328617975674370759043841808313916237240791541734786029552906681681347363738037004369922016063067762435973391998548107444769238350785359445181409311438198081638632467584982204721770197674578094429146797711181456137558318683613538824000627799088763296568495767596579815385340649841220892804114530881288806155422089193637747671905291450796002601131912665113514975978031420505334175579050660168243181911498099656456861554966491403063329066206821726506963951947846447796128615707262169467557801325938041507048899783132561675356440612390513403569360583740964326136214519123968354033585091303912777213638821819109955980680627863912208585588950835168535544542549526095923901930599031056770798500568395611219522016481531927834666940800985866772079666203173869892860877896312818885468573638215593007818147989966538883644586596928769885769924555462382618287469719493751930975351716170658240575327479090206195038977948256744713863093997754345781028746039979651360068393896092280636835961570180806870388378494921013057068576472023730409558539026984176116156151071692623073551468227858378973042735316754048024393683415033376797897592085079750417138227854767919059004503276581168715289352524902000897883210154469745091818666390852669175452841243721311305508026436554698183049257564618935372959541310588553394279272273760396719230580224738125093797950300812586258692675396835256128038807046662809605805325607841047295025643606029169447107356497217982208902770198456540106357655052341529261010691172801512245456404498578862549879962912823097037650429624880394885510746386250855648698667667407289950178595819984000288806899689715197448594233875381008376789203281272075728053146068485064672851763651736886651092941393575413281920368862228022893620315182656707318301071567788630695036047656695093156791236923054221623518872708830307337387490906821510586115648619429750571222331870770653989008172969149033881851950203191567203486499280320359290786010773977704988170417342256640274698162582516367884617422448448795310406973204818549329155724922231782062217975961529391494654296207312247751943013264549549454094482379370732881659938287862585887608945186103601721003592369545663134069835994599358770168786999411270498209122670208395695271582988358557638568862037111775233656821981772284776713989905127165331283477078985729072086039848836319947001237975579089249146552558688037858842420989075562149211984719393972968768866576283611516940352047689108071219639910891745117755610717619861523315713368836790153911945046675744728030609185888702165551296322363456615565434534630049589272453071020873706518907019233114591679757177441772244162030321750769632758243702332306490356147797974183355848675799290237149121571895929845652873701672228243733455707112873532259628757130282037493772904134311510811402042928247209442000303585555344947214608089303208798761032968595846853237618806759630821871880272110745023125168596776406701755867339763571413792506893626074201099125615437044346440629696183909590465136959061223987735951942767570692053374328269430938352114280890826645163733181262987253504670292834278189555809047635159881312727409208485713964712849358399986117669246069907224811865422544682477080288469560933155315945864807912367928461693570049722176973210606327756390999926608178199997310792750066301942404390154367336379327728261090448673897581887066003628933312203252732186864114699505885257672084544534829698200363428061598427088733516749493753240179915901587450754474947818500731171033427287260022308686343305067356587008130513813797473523723202336199072433172986770340119069140110137437892644751487235095815561319227956600522614549990345456802085471211980387871141968250624344253774978658510110297281462312199744293180337569228663872215989187590838647236467479186306123798553157038856501871047570967920320827447092463798458440911212333062915497603529296117357903409023064672773134359742924587055038743311035719346398442498087854179845644913016656874152086364623441481628976834401832751426507470541599134538573477020795931418183763972813783599223644958516389960325763044781005649310570365905995988469143414190380453694326807402376991463878293293721447501571571632540432333632951036655823269866266593814643755460508941838282258149796653046697048600859703304820118273634406273658890127690065441769467601951823370503674336932235286477808863125570841263657501303269424188697610608879443277307217571358652395776928297330087715803054263791089391475450691821788515045007960443483240913354071793099711123003222265077597819747020299670615352355974477181233127074254490769657103049687936335455773529927448675095426025100842737914680357190542085226769216286858897712304587134283408393464013873380444766175089195692490589208595928784750209194570804168368538534204105676137793048647960197559884715349719216927532462193323927826632361905040475198667385839599964478503342438643274470535245115436457434363862009895747693312337292698748448581331515445078192893177544298643947965278359550304562032744801159994436938967788320437895301874543020010214044828669606068311544378493796888099157394604894513718237759689954274422950177649520909313584992204181821980560050975144190141639133505674271984288618222611127117587784905632462117118212520171729543669739042360346143537953484898044206801060906914469287120328797558565350545111774131839068852545072902946068837162790457737308687290179344657850719621632337562336194260394498496318267777083827503574610923896501911842291548102771756638959841601697203800281727814094862153830149002838995043998433191863264859652362708232006397435770950205869473240502406406372993170696157323347202735164396095249986173476907525936176576740111715686774685413302385375616553274831721348579728089235052135666636499020321525709134656114456096361528838481005021634508922207654451150238401592318105462919217412736394154188740449036152046014206810352883131041084807180072575484516255274413098466307622274643520943146415058971889463462164254636563509296774451166465752670337792514243049553997299935668318598995677857555977440938001132780457185525483945300935758529756022992785726873064080120684426124980455700507299003278712637850529452611268153956408280747071576192472102850126915399187118321758081845748870912429237980747994755552902935864689737067477743324697236022515503267992149305898003022340367963026926115242778594491484573380326667260123797983447314516904162233985044739966875110726841452080791427297029555280055239423575230694887131866615082607059832703320149727122530916013791658809446204102964316569914921957713867236164148809768319076355013538561009986091961603477116259753926243971909615109696308961053282074327630828487028451941057665017392109102391744496995055891390533703483941698990712467580039001547742908918686859798387896671075640531364784823123341077493035807208172709130963063420483778204979830651817949130462827962596280181217088948602894431011675646316510150984315612351307416504269774614597649472658865310744304893776301544539420851540360738690837661636018583206092969137315493566909647460127197316271593652237644878289492445326186285594142344439797987762665724286079303322690204913556377039551697686854247480206912969839131885224658637861692437429147237967318315765950824720637777194999689061702596377163826402983291274610205461900913171442449111415053157662505925812566837095064370596239934259098716873914755509702570228216841847482365233909730231114676220091338126144784165660126414772730877875256538702370972249590105866892059908998180679439211328340702785858547065749983096638079417117895503151838976914810198590083207741151924244644604194218504802824601650027692280486414966028687360480216237835418231328763821363758172448818809411158362738672008471438271660817183624271332571462838116890241068169105922464620196544230830035107905457440108658901328018483819058741068665018769447542018499189095778859514483310543033474486517573511481434029329098217240641192230785317442065184625964741939953136866511990545893280979889468187007578293513364377515225954483043795860188890713080320898449650390249756622832696926442126161864053535621412670781669642778173564372449204095277637357334841772598649368123632899471860532520096209075637493397752475957103129895260813800326740893102198351381625487677475974667507307490171051759252161993268700610144022664128247193726096003047536132703302097400953199394813570871149275589519606349532285899583374918906755756367479609246461659259948108112982709066054536652337326989673805672339347277483648770414516299169353535413072526664734258986872238701631417928533411199589716125648937555295056339792646281223082596834235746612046422280559291342372337829630948071614497259864400730439535138079636964356323505962017753525794558450104834085090828107737889884777544877759210355078509996355912962236481324146280692191446941713804189988902352359227732791704533126343221432037338503467793048463178354518085269661853931085955645830188547417863572751893604907617200587569040844729897815745464020403759905407008340464871703550359255071057292951209861266793314238536955253150003836194945974021961472064241568549620290799992143973789055971947792914408696794939740903873233835673418607222668268998105303814368378065341430513712161486128388083297987593621934126023964983481766656458638717579008469803058703735939826484765034941447379538321841202838375840606508696250836035041666783330143920330696771915950751140114694868171121220384765233850041340022942701095569438147325068402603627169527940807174054350742811771613869503882688237918495543527495709557421816362891710681844356905446692303165764422801561776218093930177880305920153912456023800891329057708405835769950121681564512695096295836525349002571936293477384967267625731210037008441664724319818002060013980293384471370232790852316903415247786312662548109112491352619072467223242190642613978088036064958095929020576566286544060304450098840579957434384722370811978117685701680355997593015136975389212751117328809901650180744038785088619905318204318543162096276655741809341247429689897499157198897969642155722569371960774169442823908838448018240195642393650220483594869241550748377959305080653536934446122497437020857842480472558325217336075426826352015085565312263322196679439806342151871863653434539976413710112915243489342382890703690469800591832676110239891429730118364486903844178945968968907019918837713290640658174381480557224574597000588840759605691668668895347110975552545459585932923816153703685915512944135306046470012416577349203582256383755914952220139128115905053283828853985385978524435547207383783885974409905063420439182860854913814789308902265730667329741530455252256392436991908416120717455208692682548111671965035212963310496839757828765991487703638052518667562117248799706955079265103533672811857288008258679114042218493478246476329249848746806775207753044640180436934358933153752306277554280653084418972878194903077854602263404082748161169843308549143124441405855216489356990058860527687953233303327656556343034432229337397918751973239124840328976076132047199810750334042639963829690546667457404976434745062347842778031011750213428327912654818087590966341061262437728261968087741280804423878283988554831085707088208071430964002787426058730521731051088261515697889490963316076975504226425294477034007140546448264620017892201063085659389101819167283510065401735997577495543541275151416391993046638098534885735973947632931686348753535861412941144723634420218709935241960653811726512553696205636918141576002797993309183140891526707465645025281506922526468471771812092723715547704646789621549903225630684276431961361033337658856624727970995682992684619242497371504118403222224059051162275742827400725251636048997030115545811028029919377045654485163902993825431678918527356495849161742848948303286828785606161532132429103724996965721319526119120969799454545407415233900013626786298268891619846344750250556582770244705917337236172346051263681708909761169960948950166672818896006792188702796421509378795113762683851638295575621351343272611973963539730426415076201761838049807248344331853213450611811004038895517909366082457033037083978318150457961319275536441072374930735331287510781243231369964809353842932914975470529341579352606502798833636166407678731670857638707170467900880703592947649623284980295820681283431984801675528886207582380403481486800290603008620994944316626916273143260394228927655075528323036885508209018900417369913891051228579948550655455397141495602273006759116901859877347827249601908140115004353493240918033342254608031160936571589250695746327752342191912798334352860948000537743220782858501353276189967818628302066280464827988841136218183269805123713502197416564221363612801393509732939134851035611841490699041516275663664111894420862938178350739616333390323536290657905965740030938987050673245253507755249732448755784952624241664678036861576045253972206959189259690959355371925660947821041572049354843633849740134782409162662389054016586863590491215548867174447993101891508689722905848256074353353173238438453843225002321757792186425300928170768457396872268001281903219516697131138094675007449126289059230909087915775548394030590721936846066724867487465816772909102291258685881322879290816936790917210202276839835555788149853010262004663993720858322935914409069050107136336080174726770967316976901757578416208301967170071614667736112179973581127403034484731689718293030881917543733047302198653186578935445808161672514338083685526628163099540673640652175538877996290241596023026913155135354644397480468997905338827062446616856921372618245736215196788571678498594870115843355000398545463450302654284051146967717920419399483600164897978235460299791216701515467462677532103599350312618713024861436076163174510674727473251106735596928704601591914737634039088458050478507763388949280960310348251249966175276320605404711308614416665036658370975084992536225653812437372178307598395067999201676771954651538945878685032588356667872763921525464792305761242126748233811115901100512967620435580181131014918383444707952732969476509527647904246866650114361259158573206470623626071661117962917204899793849913627492451647227085222683371093706679715375431465800950531090841763295656134250421220227387982957263737052719676856715606367748732008058051078247875102016293106390052561640877314960026535529978772393918993286672057886742910119146463101679232691812654675150951502743490210951743066016603195297037612415107177729188860059999687985078602081010552296800081711223020623502295780004952860941203425005191688798156522576516699689613294208992518091142307226589514828524009339921895089618997163572497837962435499058299540451044100811029667372090865148186102981729471575980225013674992727178227532071239975910387378615714205432065218827871757266526694307973072341875624372162858998328067784364203475301243388832528687983885196848978169461521458330326999896383039450148760029860612446141987362948864809127256027768102354551182653348761340102975025766237845441040324324187550711821135519348561016522042055817982680583467041339100392634689061228731353593484755650917874572954344837864100456979637248623238454430469211840050493558979456305481294448055007403248025855387354764252360406614630743651663878019819808241684125643631896947770289834885102157415429596114466657419539499516866768610154764842415053013037491550152873375548185780629265286482283484739128803871471262980077798028595352816177189589045740046346175663919322806679932182558439825175935785279475291077738822240421736493379259503109323919628030009668536812139548673362314954138117829729211618576140225802485434631179702558292541210500121139862109628383482769246559805299874101062962573130383217835019441250594753076557476315871335770493103480110516887645308900564687397248364701156712800046120897685359393108940877006066191782394362152460589011619506569500966130715019468357419929028497851827808249129281562282270701716882003054574804964889589185588706199323921458275124972597609118129169429225672450207459655141445604424681548445591437707676378954884676897470475567712592173900589793462798458988818819609414665199709734440766555670491319126376562478383293789896514276769892561201916061862895337307984513455531239360550805746097420523788643225190465051732370938257205504260910338482113206239808330069355868833155551768117973154715948145760640985026134116225856354463304004547878816640729808084750352860180554891346171585735341313167240645749965755899207605610210375207115032541663176741511902073341359565046449664400012172931728443045047641680550244326218728027176938703841394351992614237023622704891555755432947239412272967447557035785287601892125390315248538842631660527453517163796516273610275788933716714907066349788695868448382186956006084161705949542813268535953281767960089852074121580305635007010556202622428451702617305176336183699930097597253413087954230882618087672395623352639771328318547974238510340375246182084846525895149754600948580993727074116525662196343242032780706450432627768258984530369274516033749114157544579880616284105628039607064471732037875502634517021022259831838183289405588840936209232179462470983606642235595712713466274799344258414567194015075883787709209006623097631249761815841982979019728107826188240555320556662532388791265998567893027598193329855729535404297413730086537341410729727219164308347536861933672925915681151249503047609389814927751070576057282843008825946005518765285987385898315866281679502399997769570705346980298817561674264353619947244187860737708382053801113007707642141076798015605907802354840172084546992952744921642490236914707592040328743663948294522326282683389491961655979425084349910966768710069494144894120879118014376332973233393904498720069845661892776182983763446358105772777278612229056093952782153545281675336934581748294404145691614252188296484561413746710059036484152393137985347529516012218162001802774042421472277990011228881826478614640857468251248958069679921892669892825921462930229810420042625046291547096154694844554451218437267481802872643099041230275069882438441502178137708996652734690643979335273177385051913847722477007974396930712715791767607623872483949825444471973162986790707399434406237592129215569772272025795846980570304723122523688371355715400385771726026026596674772137585953316753502870066339278286429821951101625625618110817167488345135693029221552944256934439967527820978193221883154890327694423574089543090975122411781844412705893282123148787471527884963163296209530825609059088281362391646566274976530704166622574377253118146533192584699024356802959944301303260160064941494243542638138805109410737543238207883695785947204341304782809246458929210212719522551973099797088756386064879323731103205352576670446174382707307642764043669639891242523763157607827140253678843474948974581419956319616664550928835417188991596981982036017202618181799784258366515384260993007154055858357155928896594197149883999418775953606496277228471685964119362759561274388316258898757987251400288075358676697682077527654495420982886182092529501375698182888854867174473362024124062649813658687183613065957842285739108948534850444332743240097333257048071837548080844475795658370182921014801737157732603305570223966826020821765163108550975170230382132891020812599131613158298760407197936337183396014869376687195968100874038607773070367592920946272034782911788478419228399792283887021591938411023059392006603041990016316745946961814760396587609940001019668435081279486445642414816771396848714498720132637391486298845013926635635945194070318183475897655854948440566264541345728145303361511309931823072426926864317656345933436614448155176718515912225815139280029720597526804595927877119315519837680171983232826319985642797485056016339724902330950593111954151573714305996227082095510453289859014616650394196034507583859201985027915495956638417411323372849372102901455951332736562889334210457875491098606691269293264939892730496160647363121911024614131729692981996578383502181219187420131440553435850624712983274391954168258970441529548068111247091432446061168329232795111762174342975965570625310561207228941051169806414151211338152465718700044093437801144204303493067489173346217059286148787097509349154968696036289246912822932897704312973093517508488010006036664382235794937462088743447301460353290241908142317866803970735594217549409136428469819107873132309057932191914450527874357868638673602513222253622256745108617722052370289373287343873041371302600615921608872461214021327139238442033453759014026835940719564383128750525144161314425042408258104068814246197666350514204240930303123172552732841468714422391392273676001256688409243946330535205727314329734343428896885175854336228421124077653906118722165977870028205799087710929644767916417554176589593210631977378079391150843605940813946073077903305485141316193076099094852869781204437807192232683381727857861082876206555753623877038388943190502649797945536702141394904786872162872005744604385126168731133208160938334533698770297744693492541060511206538760591748903044225421925422829110210438503137456222360245162730352854466871528578026908078518505627938443776563378282936139909605715336270239717475929517131547896760733321165095732982191476616072096734599480832905039909438548590389798212341722732310898810961671626550606744844897870648462465874320762873608693229114268287602128093488769999114331097954546813417209780987828833995011349505769875349360485240689844782574530430218696704307058871230896731857884337390877177227728800354459612704397360183852803051861428108803776989080781015219780244836660199942160099400280869924017586934173017202546225790048443170730387704936891171178718181403890330830477727426722064424028292760350871981724148107421171485053957911650721757920758196049355989868110531431534982149472976974779021317737997285854821936027720271261030686752480867170692068879838729980464051275403938895969715288053055650207234314005302640123845933808710149746199761187910459869549841207770431378424582535214846921775045202467930402481144296331248782131311561609376571146407772025943314871885672426461692112228293525343592487722557674031459474198278957070182564421255922286575578895483789059826896133497488147233438250399170747337939765164592919200089268459815905543948515444049186299703265938578077089975907745186315961895312822687077475827379145993966982673759046133076423467237554638264085413731432314362743898887989675082894110012445263635657148478254318261217243065695321507019898754526061029362495934102095375718569967322841084701393556882400941818958505629446162987981384712918598628816922196457640807860738107864256185382389893867907751216012346330216761577157610969168983178561080197113576078426334390057983796991963242811739660035518421569257252703256418124901260842114287509972026122690258348227989780763160540621335018250423805353926400294413676305523660761666050224832461946259532631524825527625590786502802045923090982377813613379780893916583919669726404838735824183550680777765396543248963572129421026600986575905756760528437388050532494768901284734005742521027015135580919007665791950542673618504577645590224631462341643775203861797181508308853685582026966867894536253872005874846564700389213390378317897118140961391575852699888927104136090009001250436829363034079612245600418521478601946931307088716720993739592275013242189655965947562078034574503254783632227454978261145930252778917390184877464943115685348277717101197547514529278178873460468250268594065103767506705190809351977414520233968600746844048513867202349050575313014006455321896755885029888906886863199862365886617824147608828660511816434679145567291961510874599670088939925380278023426178940838586024557664597503626497190417329537838828735488104166609045677266627390470999425093775134845697690701882382468922522517247726904962431075197719025000408291977472133887880507748243072913937717275446434675665984504519221403763519566345009690314539390934190155314432909411244092389035041009647663044588373222712418645093522610009376867636737360717076636885121609056978187791472530439711193967556219331007715612161877890628480982353214027621693705232842114322051557722151760976046810648705810250725246943188134757635460575605800698445514031031150786434833398842949905298947905597128724006223922865931593299634584100039806676577610532219201991090935951004053415029884734398140168211611635264257921013966025082667798141271407783138918879616935644294622622865331422308437217843924125739809305003812384438729321601168848258933538804050249551955677505880587172962785573794354306498468262745716468347438257927167063506396828187118717899470310664955578200831405862998797840536115081252105604525628360866205680597782001018970612424813128148377064512147328087252148649858660934009968796710747294733556402217924146558868314634769913263990791437479101519132849718667666023400147275903439854975720452681124191948650599521084809773215030801466989123369642387782822864817004740698603615616990338507992596830748274224150377978923881149100447547443721041573493815091974744399139769842755542299892926105931272644767451428519646633475258958857352693043974876656315376430003178562109432810473912154716313972959210364327698235003552172824374583055344867753783438621624092042836286055520087754365346329857500742880690961512444443782694294014393213379031358839360016763823735945677778767449853104600145949497902285099915842078865371904230967274579509361633424301954097440610622470910064818655204396884780552474589408898204976800144585818490622634570048267453868324541912825672645613962919813327881325395415344771451822353510648685066825979110149713558410209240599972038620276012429853804114210140723051635128402094121349601832245906271492077782751221962093733600645374832412508112969704380197133687302827177015563642886072131694786514918464898048291254730952656136861536610033821699978411153726065408901169089836878072930528988036935768835910353011290139219437560315124017052883697632525506037140488444428539507745116987445182805454265485010987004683180357024080128001010591038181967703290533664941294308136489775090699253322783879161034231865985230331335010160122728993751172322289213153483778801323140526751102886828701908911711566002890828747704371862560846682574656464693710479952764515741290972912599266478006488241237412666324425438762897380740820622602578042136389752666907249450901134104216550288382291883843603879151063899902813437462574987478503163958956532056164321387402889246383752770462577753907630677497145199517885012077674298011578718181075230483581649231475492890548399014170478436273280407021145577893428529172148714935103919415834398227182679340098861506231424178957753431240550948859338033814611828438144653917703266366630609405827784845975964688139964301281148294634572586763404590854461534443527103019645821333639138777452689757996372683264721862844686923649131584714407182137411247984869408852430660789175786233166004470699001689639287724145986491170598287098887721640944604747104169122441558107328814700138712198440720804354319279069748932020289692140571966857405382261542401004412950307654827276834255629253349577819921994180580779157607748688299344247165596822835520326192189825251205827705120225701166762995694076230500693757494929764100719518223215671433025909899015251755470482995118445213961027033757538179247523874521726059784362464197606587020581072325825689854269380458405143634432770430124250568182737385018735618188778530729836478730969164880004312671099924497611745529509180898814309215607756913786316830672364270994961291026434000506394142665118675613612841626686853847277889295555838328771860796975773086841262715357430417125687787327357128709710157178316772717847945829516588819661980551296716610411558713893563419520696774492041675709516851932008489570764508969367290809144809786860916450006127745901761817062032222153103757026305044855084199999937437349039250760418466357067194160849164542648445652156125410471994524093349673201676785785649195566331729471043622686818756372672773960121851941854141953438316636504670508467396525023228620604427997459389755347857911423717013575015215663956765737075535698434571787959052780196493762897339272876990105997767069727996586345752057883151958883795496799116532919174597091353309468225224947608214402455016429825960347478827836699079533996612658453775829647064192207925639771639903760298759560382155339512483228214920305198875927457996367223836933360541929176829723400579810335494026425284033840972282129309230438971715501338803021672623401844986886800177430653632037098480720647987619132615824158737764733499657815083375715292138888217441015419813398695672980680680728732879460275542041546814499801143626831090509204400067366859152729028125275404212916639836362394547636520903184041746857808194054406389952798811863924560547667958892273424760510880891473198468172393626799398294453887771784885388200983767223017065084451664008660292972392780466755375973295852286876803332424575496422727208408082852700908024462107890497237443861540297506566344289505032310252892112195846492777289282708391043132208967334183411507122405330112746268945966617751669811205950183480670433316681389541188464075751650513367804524798608405776971873062942677679588634213373808708358925872790969904699064664477018165176218868251907556054295532789669576835342584451424272934281204199950358676065462807479735962561675959287635612292013759450708952022146805345565053640752261292845073258751871061280290644719119654573598889220238856735880584338779735962931997036231688099181269514778442250198929705524834205257326153267898942102242283843359193866797228727710406590923630379439251569522505986459373147325731650199927273669419380787784446417430676028127833396719730437417908058152613342147798197715709721460913912145200566105117393226089476518973940650963042562499992262336515924625731887067424113506249350529425642128867996402708368741612879412291318107950408967761354808852382717734276709610315440385687681112319106269732233016061866433676870334369525744092963855304996490936256681942131932813527530776530808810399084141699096917973202570856901543959367448300211792530646919846437285118277065072494825513148669420871766575687429034114217622869459822780553540767221498151606054093510571989515540660558197458617348805396817680480117051839372638812135508262820517317717982065106873492903415012367979786530854822156698178603458748318769762177379479104153149441573305146109123241066217387804529418091373044493453128062531197688970779633757812577278861983206134175362385739281156208886522428889762330734483996340153181888473422988961220476406667286545671559672605620079921533070034532401770738404845729738771899806990487771531770783503788746036839053146506000531026908139532655867028024160847478820310750201109588563344233366153896546553674248519371294790966195397091502657445359837898618792167311573384111498079707335605612878784656180390836253849239644489886927921739098013090598059910996404254482033523430683972247555854375174414257540743847239086175424396473094938601340313406647166029122101143528422769973428746035377974002744621939979437125500266669329572436238888396893111792959086312008849551111154478531085952128956314346154821742429631650043216158576292703185217760802287405535724848265044735375156944982398705950095296496546234369679727549455397332428984419527083263549660421062111532647037502851745307280487726437999478921384795928975848884340116360140646004094245303377225614033344699914095443555779779280847168133969196035880122950954455168287887949644411017396183263746600700865387890816139752044091296703209300051580950309173325464994619515610473716212142084950765974422321671144159907029032027445633448805603153302463652029505742162962317453045538827216065967274628887455747394725241329802114025603872749114414060638332215284138698331329735186486470651955926851654858837910619380150301514225942991143973031480164676057348221932741615688048412791285121675082031897736340980449728305490200109077580950875769722794488456089865735189411634009037485290365172916675699676759599571303945993268040555946388389880702676912937667566967814583868583157086003301693552535368795129321482506753191875474721643181189216795424733787968724449434867569321350441899383073923348109175843783749087576434277221525952317943696407035795552724686162158128908174536774207752594545495592796607040633252259701603005236416175616770736966839824719654898419929793355682490625060378558256679451604656437912506387656346563716226117319549289199202703026493149022858772957337580456667021723693208186725049786244618601603428582604195843055582222182302235539013029034056309006625946871669774754516281995819138551213348125364699334488371326059707555443906014406562296001198489546316977158376559218880303633529050603144398234634974244640253155831177433087302617837564951324140018568733199605089368968935005875965333076085157807773192081441661025940958450639638750606569053414371416708074775779076513243099814940739857706839910000737387597102178282605375639388120899389640840411223872122103915937724270095382424477257077861881443434940710798264800436530190255310054058502927138799163431977522140251440259926721929743179446795990979941189102428281660959771184015891049994836538965909839190220854840340426690533515478967667182664252052661191190528183244876027429913771986930646528073791181353989270895732583217894121847488297453241111759361565238034593523912856881055568071954259508786503065962212495323344830137517468752886874707071420854831546543381696199120311636542588956273399781487050536180389304773849831636819880086561489896034123617010622279713918917092293323507023271348744613365760552927456436812216290939454528181854723016576927899775090137644350301949015561551307643011234362518150569684451213415747546358005860363029338566132428665340686234964593115952462257583848528366357489657290198689511309105582828452091605397336619893061998761833340152802881003490202186836785607001055363235935178693481690898283243154295165361135715231847959607863030647163666284249499888319539011703145576439676474312655519561839340171475886547443705753760803053200941147987817433689673375894123143406554888999476107152726299092570356812587443407803773224378437291576886650932759271797551751347261756033143874369705364920757975216159041166050779246100992309097728215240309139907411737677797108852652568896862617636293210967704182557662266069266196338806045681199259520722452424801839100874306235416221721762438294097250683543541924313658656304268243204184109083712058958253566126966986530177202950909682167317668697934949424653958590628162260936494154028498836559820745930275203798640264672028961281763451154574237098141398740462707015262934115644197668896635390677537726991426048844622660518057021732414372244477617133987326783268292191151827128203769987557324296286671803911222151366562778558145117043756397131076075359462933617690547550754234993191780239392448677981394336507137353414622364484983660899454160121246675102588842597257302335161452891103587474509888472263129773470192497331302435740833053098070031278842547296908980420568591083677281360182638270664721504563596106324276103466001354682779419763037467453693703074570982169567337329049787397652545857490038913937846069961583290580878506762605066108046707566891075402957540059149664472089446985265329687017037140645905426561054406709811707672331218864818176221503540171511074812909956694714707013797056800684496114494451362602644805317272388322035350258799661413757284291468762284031307577163464731020556696533427213122801237839456662374926712001527814384410538448769784348254904553581642887201169695830531899056953630831513978298235493111778464313087108017607982987099513313415841498181489916906763999844207763775879100352923572621657133201134950947365575493050911039741311249837090561993502181960383251950621768843923324125394430979127634345539666769798590276369269750111440975355894953266497109887639799535399768311870998574477433835414001767597464228466580987705839453357015561746168376068017115526043770423831394381114688822381660514679868659879910169073539897685948237401187035954617625084757904846296035775264400764275586307935199814024092680039016704897152153322286840983831627647440364241130152263310877720290114155944356143299962502676898863957292138625174286190288853625032623633469377239742065534788031717978828349773371871426493274194380524794904381805668587253603998102872896333690379713332535511738933512267124142142215851717808982219617704027695923190570121996469700669727794882667021637633266984762251129162750497379892366238397883269861680407131848734614743796225157461523974933403789409734537324901657348683460652317116914927003578074770245749474595700575705018214401956462078086879797247030122728545527587174260291534952866938135525668246943274245068183345487917687762678100541690461480945064122365113937850892175935596200959461469283069076273386000782706001195376267952109289049370737043082389060447438231437105106456087816584629132282495112888671463881338905738845845809437372755435083998257490283366708574090777047302426601069529846169361664609124681061701295720908782766587290196667095676616280769593871499385860160137276392660526925462278275209406287080658943886861279254751339926299596803688504475898497427506487009174143926054764402680347096946125085958822947588068460873864404843488371971739422399195476346092929826371915470659102534124524794479014768097745948168006337739373323439594161282688360361353603750978153900289652115871168157053441823084545379254667553223453881463824011973878577635058149531183079896109150927279554447545113454932545977094242038713065171869382198260041310573912707950901080315143905649360750697275243713327358467531292877238517678095223726090664758132854183138959353558101389903898854059546834996995587240204323884270829591318870269694023729789232124162423516627037617159546938856995684066668054054817704433980159814796428761171679828883456183775808340385135671989693840827052590561807433853745129557748613553783129403520029726159383791072255610712436910512446183814486958483730218475799397713646819041590246117278342677745686428630246074500648642217912361183909602604744172935589769633046339175820167907131751837784396138686362573595250858275520881155467022241884708507134644725261558452601429739351979018443103023964094030156880075361586479210003464498276481206577087742175379521503205698033715579564573268294043766993255448541821027844917900619372906992474452761348416581665341429565176971777933149628286941587946012703987169649725891337465687146902616412417048063095012316986364422825073074676323582150366753491496987193343455000735837850077989042801410829864600130684514500372934457430682240762246214643608372375568812376952006458935546043346135088906800231954225824670966102611329746296464171978108975410330380763717558246436026499189711758082778401740749631616220772035791435307067667324633283932961829438599503834774155257614570370894410383727974832365987881297576241209703778175897623492106776217079511144061058549297533446792588758780004097909118796532095959406365347127307236048467172609679212689715996238985473801230026444300904537897723086745509298606789891595020880019002141349520865074358413697257031579670180577606681389884277566093857384003493773802141702840545341279459837510846046999602210615351201213115144085642745791548919510138503135491668289332756745688379208777972864579619280165291872746426951590835969334909985410249443836276357966617332444136912460130775232590518320828043483081179472925264740655054506901456710953304807181720167634959110693641827389988805693388652135440652665062049798016168148920805344987212802603070983434827135487184606523615314351160505879249577539798975785757742695566620603078541539732161359241579389444561284237723751371527504765313038747444008745049168972318914899376666894032425660215386797598811663127798007139156679560404761075297182471763824487259712372259055600081945645939787945314008715069572013517200874285762728465140909170931067382013064438156686732503064648952368343046130481288709159596650843399193180432243717461695709985640514125744334627678049419479956786757355741415772544881819824052502394910583533114337967580043684978638245356014208233438135553449336722869692068391877653331012188504354727880090263387384799023700032423259666499556276795029527763494855334059293107629598038182788632581820870071731184076976827998481893815804857991152264610119459264225455144116272903047515564563782508927121314023952569415511058643539616682544665942039632070510512270915766700992097832796245166998043923919223910982975328575756760730836430591684336429676425759955290071510533931522396721821679295855460215842549000850914887170175543043953443872443315918827811737048256146689646803081495578895997597832292031138309461698992927323920858084550608011972813991263274145729615033658997090030422639670396739944562510337585418867986471575306599702752616226983806122714793848430149826153306669072003027183515454677728952490392038102738439317283990628004323739491978448646282165874412918831491006236682980657731577496808002341860528093270732369244460004210144021995389712144989400775554568998273353067845893342646931291456199320393606000061329301133947324837928553533524848372339842249906106801700367433430147767501259313181366679019982215933124892219644664527235949314663852203093084731926217010548520232854393471039253556039718719336713763514846963691197141281304906524750167093952517717613557430498049811069609145291083249344636910988824693197308382650087421530150629825222019942710401399801293647559778750982859209704673766851765149825902028394267203602762268794146639311244660607629257326002213338238312012988510946361750094669403414629920569803334716521326688612034856314355647821842114110016135987061204331620806950154206021979097766353779655782829314620526810943860603461225825546405385141695658019785682022982526802779682960145366618771325583035976892112210141461627960989189114966679734559342289285210348357788926754460607923326138775647883176244757208868709650390372750095256593878152495029580377538024735929707670844578053548199134445159930867660206127611131287811686653126002563591267595882710810772194538896489784832754884560093839896815632055883168139138591902671984948932185637034625307860386245877648823501641145678421087665110264175425596381554006573204161553935328719725642954169749446961130551298842614483201370765585113445925473283916405766012419077575174593959951347345553823331803300712862108981970453894901371294969753710345209813861354716932553484830482394477985646696506625486558133254011443549921748651645945089855496003238112503812130074416610002811170636254195356300285528917688059629418360749761611107784435830030551008361148715349252007366414438822615446785523352606630739837523740215822355145663342681895979222374816742148298728234247978734562225816882056509498499243018235198214853219580653109637554312627244228044389272449212198745609193303744480034195208364860919319443592448827836380212879577911051777371814992659878839853485562710968436055799726608707170443118874489163325967070879162003697147825033428880263403558066636526011100522835067922989158972033081692318001294519122237321463253516626769181645179752059053348778166094523115201397773523845335903751859727351770134114381381917017128196794462340940667008575341357888108927813257881816013615998498374669727861951976366767041870223353388707652988269212476153393554120416403389718000669324627979446950302196472521480506332034229175756422679950307662874003243240421579979911286948526137035875267980787587427480021382065614907486312376612408583812515817400358313426338276099939936544237445193902950414472366225424000918397349876196222444462388397789335909547474187381153790236451656881261735259732185256089107451351707453890418682446921452012901422801705422431973106959712487471794369897090320076905641523513834115887618118823560480313470268001311587914834599827186009688259879906083935838809205734155024340003622953405341967969411520424349855179149460987057888610307858728696047282293770908211209099559496215963177304541193792750531240374823007078424168409629025887983201359804960620255704754095919020125171781807522369128145321384824449192945900289630102811055896060203552883004978580989790148952174412101030717377734609632494473449099306608186117999630843388495351527032396798434383532123163608443568543438092492728793735252562899055137583449603813389213186229142965609001403028718667508590928601535611179720103196771998267651990518231146935490144665765100784286156457172593907820551690804227626104014786461373331264089432416943516831936693787492448364800534781117309760626961503522712854864597618640576107311304909650773569104848334937430563395083878431506824666038540967080649075624837813670667429480724410334996267979850892091402001409308630850041597634312040477682785807228549473946191523901014261924966146354259985131757338791322925576689785684425843351665945496077796106984343386737781428108266521374081592552763302126826668389143986349971432061367884092880339507183682206696859261188846450491438820240358555284749696448387920738403255921793776758283944910309423041580437789829999180732689036741873041867941832100440416140283541012743339897470687094234998047541563292504232591816833125906195644973073922960971411590261747554304576316480934996629955862629950098824360033248478472389334782924175835880844180304696909115864142475611994167330076549641314910688474583956221915070878713149971664164353742939701025187677856928424405174890513689616763846872703838075899697957050568528550166421903465624164008993037065356403636586050361767629300913638323126824915114427667034296639458187659377901600052858755714045457689986406324899058675569865803230338660903806045055868181875941908790636143775328309536020942931514421998303883454723959112555508228073435271704718752372001797302973984265010295587814900266989711766705227019614361163388546334185940018982898552844262300058250676075469377586116073741216759926016267575784539147241086983818343745039070673753878033845028279767565042427623968038701663046521689569480124107283583961686356448531178502913851578942647985008584110245812087556879912107507211031073892212507150792778831278707175614749304606028768330520357289256178275172277455425395212645778832150453352573250518663854231315469574277553733442872595578482513063549049659451681665309420723498067894039229260357878508550521585596454926807782939964250360053791945198952017720780968852860907682622588842482664084859817595453548611660126108488382447345882988584989386649341256880778545783034363112042902626714199790537067323948379031858034499180469637090588810145393120114135378123796137307886710783027853191781479313685340741196917433470593345204989224634147010397885208421639467654108789003331605312421153272829870355449083537843120691292360863478597384037640567594992377229515643525410279711134220764373616859135563464597876608245299226580879086232511838094093551194079340907732838285647959022404019863660379320695965054922340435123902691938429968059987295851617891057834882116345246374312620368829855495423080527591625882371887331113125257902337172696281971539539471919348274571805232770613840006661078192841681693114126648238244434341978162320985379885145851940556570511104962347798895127509632714072882769952759106946593138803924747986216176089469526758456980148514497449204569980330180012818151335645334665108435225872327172067728276409470976294181161759938794859469960631432734624175979304236310568123992849135991550650402718747278885998394717671641390107254926447221841647802174641656319665360076087612197655422732652716005053577634247011108294243285126231496889814940292501797818970060450083071069690044139994256845214266758430394553195789685637464401795329256374861988521098752198643391778262206392788310821546808997847906875727994150989532024306912029632891263116871678116813075494068779755260283373121893180057929369983442209570862064491421333110192193648283548670481759782777120545800975412278441908328763006395554854441569265994298808495589551755356592667588857772115535164642791260226106433503724408442912168588820033161804318149963246212889839340714495169668315384676921362797077922185299527488409232699571312685781563803103115672051531095065853437101112028525842643967830531205851835660072014195961654188761113312052190507975889002072952212313764424837505291215641460661238615584660364041935653259956773599273081745271091557745366115020697313430990298986952213457546336782436309616254993246130549584850144426387120640638468226406095204863335297095007510435370763277153713456761704824398936014014867983040497576476704654837975838565845851491716368753366868441886270943623447208385701716697437575525131513423039679580447315978506504335855952063028923147024218011869584474029180873370021683152409971370354309437022703861690755761041106474900814737677224051146447812315774772238848981300321479951221175631321711399719210125625846423361023332461271758546939292594292988346540133723248077730965882755530344489342368181594177367437078180189656401926724819319133224821852063845466216788279218057016296116723504755679244892911174303221750774874080525472908223614020964679911731313847785405122406566685996048443173016511977454308933816803928740360615068754328346572711750502650011203217511404880099243188338066895298831887681460617069194142886645488234854289015784932600266493442952184026370906744772579489465577744716569364005783585693218759046964225880710196325686061163563280418227725734519550872031693175551713925202526729529998885510011024377711739569741615143466252271526711281374178888350821390963547828796122218069876364659615772704732751097565544981833397296100058954909505849414405834447971352030621388376996977221774764828829014094393517319004557892288742674259979386549499239430171235531742611777091327284755476827387287961201166305595107191587935105966188867244521051192626352327316929648542615391205001180156395125537381411195144606855490220833390712316151149866512495925134219976403005880521621534476416148380137660591524024553633299918084722549054375201485508143991620091367925419249518005304004294930566710465394564185869839444287355562686797337343262818083697809672628282052355235991585417858867296939444855216123582257723472602472047554799932402362054192544204118741813533091434600765355322751814566658591306157398702960248746252616817290098902266279762937782792225448997565889124843486453055514128395096014773566560039859649112604129631694242038763784842091463192743910571200969620339790717129279025896879863320559580951025242874056520194829026827008495085859812743429712716604964514295725594314869767546888459787056261619078212915134279963724519143216772402099118717191918135678781485098384029330089678100993790313539816078996453977377478113232547737191919841534946383931465447318970422894123377774015961231281714543547278463438170551018908509235772354999669536519758756753230228477987898456337572827136749034901440802841705441836653685288632898475575794232435191573177940080658203150325064890783063869937859517879504222871076143229314592447014557195039777590680007258847824286227878864762890960952205543796638980297311701369936850106389018964945453573049240616636235311424567705681635351559391467707952686619965094623496951838130566197596306823930676358769367864979265838197798065394480102498399029386771169331740765527161378224204280087899081841872113892934532142500569446595089259049650491410884493375938862856973816573220501174329336067796511766945844652500028816274986721617608786442208742076566377043711791899563219812943802941632138852433207535415116346868862751385255422355497450508392475779636782645112138935264047179031254218675435620721178204989050663223985771610124852317176635214789261036731408761430277002276460183415185954084485720070280431485060165063419906695189325844598098363120258093663435965811305719741805367041838701787487969050405265883315042536357502828563021009421932815834199905492333789444499955271961609277640188036666716783452222709636729858120797621284447621897939462632733190038273592319854656708336039360301013300657075316637706157963550200287279595695504693402893804524990608758576112987177914306019267439932203322962683398348758351293270147794724953321728069751592938274429460147999584930979409575247985405113073251722513767332522713607617678875485006873033015382185029204176714682376458928926880288573006295408380485345388103711442903454108335265953796718528876229447960433216064546517108584332253190868829507296581628582874777937654437683100919492311771000097909241026298275393458779371780964772683821040433343629616833512018300557218258151409356786101887729357316180125185278236796415567425482299308136280107719043632417280892272629889541897012568926508876448695771558606994811676174780835060003327906268975538493158657015061720359204615173897634668391588891978141773642877675792231278839198551929476989357034533788858515837497548167533913319811722127565474731360887154192406684194308820805874383668808285504824664962331563430012497449761576450474661219926262655286869980245963909540464278775350129004908606095020810994733821247758323635822690302936156980472233646649516422847622667555548605821569212736458761305077357181904860018931064236589820314302302192515137324349676640395057770380907088006834284484547865287764565900781748898191025862789360169477456583403308103556773946096641203651182220782456241306825451334483353004524166852398745027253987463187719211984860983203819020452907967442818621593177564320257098612553248791628161256897044340518344448899664888353703440071546663449767165336658470446321779927318688179255666016225178846415217791899139547563858657324888767694026171872102661593361216514398376018034054109784576357387155144432328255492650587014221343532252752788086143479696305757870286928292774995623830791426849906799311375711318855560819471197670154978183860792142215886527877334171142630418940661045048649762159486414655717294980475959280778068709673861642918746368394123437332548307333490612272425398529220795635898511174521386737495086077903677317504649495241243548885781391951538408873810619831084360452186859586107774064809043680730210492313285688852474916842886092987676285024396932811898870238708457275123360713509048872657699374796527757001107650744810300302519015181245714054425457296905708906197522886056277541075088462983959871217013088492147765703596632551423135508923401138313312576358360938059250973650221210253557153695082078687520308337871586376321171841524056933460992211714113261294195477186286292632079805678301386443298265030950500554446259882513327043123336056272925536047369189080885799270981359464458207065034092049115553927652637182593500271124116119838778690418354014085201163816548267018580654756526775366424501055968346158256917105158929438182728945222251253626321508084930405773521139133881200887644748347260927143985217193785178261695280515965473407998178467254529228693104915687009593026104713092379306531676645477017317881980970945229201861332099753354210044896790828428819146988146467842958900941156036256377927222316384267197826671553856282219971909009172372783359228509087152087302911176114849953546533282817630496930142828559514304960559924982848926575829554128328791071596159998790885509172962673111765042095274620076756792455280285512372193012846882748038214307409907103793153071381210024795923520533476001800018022344242195893420911249381206845314682872890671060553921931902512917300932283246723929847361767481341494183521804597911045646794370003225540032243242524236008930839195895715975475251365970464851659829237401252019890421088122778640818200085617662238840079881107975669135344017316442470035725981846996106918418632970800994951361237826053879548411419091222575935479337909933772719433086879392506664310293966591797113873805166002964198037343868871815458294010164730231763060672908192449955407857736851154791278131608675835077867094855093029119526800968279069637390381309568091250832511190903784312954623109378112304327794840203669623389669732046510205728502361728971213247733555529228699841374057090012396429398378365698790381491850890864898198857621301037020897287580664782886289569135990093552731733741797980876524757006851723255222727797090742512360008014826563835147713846260670300170707263102916853317047654766518575332804027361216865698826911790971337237406684852039558738621014994303530381126909509283013782021502435843295664561966008886218398213905203638095416886502644392370254688450379646380046441759386482239646996317948972965670789381258165379870163909150469939986784501460410381529813681588854271915672661987875042388088420378629559354575589921738136353461657399793537313944392037529676713651427909057634979070536405710279496679187020379102338033191519843455787103458865373989024916981637072475791164782574694492855859419619325504661969777501998224489499199817349345907341615767868933233359369039907586144302185715956433628179654045152534878684434042529846678147754820120932438224538178220262699953169441293341263151053343592657269790793384371740468558789725115179245131827542602420492531801382531241108030368778050675918768812656740647586926774169009291203055419274077649510763721655505374940513760343140960845248271022270088622145936285358203142358487515663035831864765522976806250062378757610949560521553823291518804875898641742244257246763026900292275039844912694324878574481020679365253629134743987148224210238835617655243144203708872223306732755719090429131946580698122575954944276690736468856059939540844897037039654454903040997186761301864086713068040675337340387570040534731227658250384153141294311704534823144393029893383558432459244935061006449062138574974552542457638248222461750669594619625748892045733280175739263131557440674698237826924072854298637879330044521269799531430309139409154345666040990280458346888054549957305728195095535105353453955947154538818643028933156482806029742219320358540518026164843632636967501776415383294859260722070778322202729200743576666229005192474232236875885429315894397764680511385148142242369629482505940042776271852629683794930469485907045212933760489557394976980840571159312903391331363567824860344050018159490672641116958419088459709042485495923125834364686651084976758526492983230203910607169642816644505637317068041846707192305041062319283145684344944734356555567240037993330216147068978035625752086559676114728327956289664794125025713091986188717837952637938310075090840177754926879952934727673624144773044663046867892339434193240324475291490530612070724750879232525834858974056703779471119459532123307744778315037433563717505217467757445249850239275087067568479527667963222262365325569097232931805932590033283995437186011371843389981275070358476072463818702609283881028098728880635783952373908375733871425086159220509125518058118464105842173635623381993565772383968141710555942080741256299943714479688293282148817922957962647392143337235515233281632981524634101716865374623175283173868976481163689236817221481878807320853293275920767210493205954190574816719443309166251664738495800985766921065228166861860202628361514686621151976720006143695779675247221470860330081924919475810773283022920463767082695951374557711634225164357330292907354349236706161720532103474558429126272979022883476468597843291886742059895914722807827137664032265560888588687930693270714722020256377654741229340055488720901914736882507232722542182050023987275874842402887888395021785217436687119419806885859479318163415375861994901116712294513805483675526668415424043968844745067748890732599628995144766967696235780559231806093061584388019357849142064691903280293295370885592423341511188796577090049596656634510959037456732508652784572538841174939123978818913648966179011155275496696019471900244431476604091781908768869637299582568696375549419999449557534887241719025513378110770926249459906978942828405755042844554077827448134979812162098058067738330623257339203620213211720142708224846244903405757507868191410888054971520558988910600521860226167280559285485991949133208728457328936954625785773280170931073393557784493731531793615795933460066468355016212157313281413569133901022614467056235283516900355141828973091745824893309490157358392604602903744840371216266838589528406233516238182489016610106146995771547844097266535119141854581137250741670801542309991894944731735387213757860275633962024950778812521536662580318786453096694408729325353915511647608755751758468115095855595166411300600220864032993402902925677147554673218537059652740956044100902061407494222320708158756249637512903604753763209104765003998697853122484382863055362832284081122685133421807970833592353489251664537091451692160371659174150719120626649901297889780288978355165136626945925431564776948217750360153578458361600448011371730713063993112521028712082176097316047833409566165646431516693507347077616769799949905940640369366117119839982773158629138765906226651422834845381159025724191727023674307427202132789966555590972250869972401368982801877851384739725609706848956158225879617815717341719195804223542967505722609337722641910138486479450923534697695499519957922004013846971019831833879895064176228092522244800104293791411120306926505150497967486413552325684066774349187614526620031526702112855100259297684386278276011272397378343121349252335233259484246753786823840360558405025673102627119950119598420930232709532935074856453756101755611798117632795016482532432354317261202743746192500716111802795343060550780419848172988912160310074646359642157570228894267251192422260627109147489197964197196437567748551183669687590268837280975010482827669249257902754053960005345077458252166844437591836078363574228973174310334620215023819753152231584895997337307339888199029287715263093235338221768003808154353094245657708294585905958795432317528430962417501329865041100326163064428442303582280275261473957533722189369687980494014894493936172658431129371806109392940607340484743087482490757487312916781658085703002933042550319790603562980972231708848806262835258165464515634594287053840774877295352236034071988610163477384419552613924573902006251175214632201603103417914911478408762872941079243557683788320670304792153511807840916735614304271241345689631698046727192730168388687909667004554312962800837817676100413795771487944694816894227244030110009233330814550298622417867384432515901403929402624599142002322104984684928380390614435675005103602664664368509671001619747691116183093363472232782394981091246104573452295108094338890060290458881080407209493979141666207979162527439659284589740754546277670795416390536646961886947230537337500960910461363524361644210041451280883800070147775538731688159588058651230141351295728691595230460895929342238857534815156572681176236145992991544333479828797283800706086177339756273494355317758899405104727508714931381596701158887712799644038199917227626503006117466281106667873607408643737688337644475945262528940213152100621706500089825834402936498369598686172755614334499506094499097229074198165021432882350469418004726114160545820352971545082022775570802869209825521575870962279637034763191741732859739758932814506521993152422165195450835601811170678696699985584023434665534938324555899347072622746760182893449179965957328504073644978711252652997286750869197783966350072480592339773656671355311261938196794022668189019859352286741138410335456387747477373193597303532119384789542950165498549808950087626558618473557138852740213523017808903264940042396583421339585628563442461283853267811606131671722882226246827033431379692679868462041084397789082405147005367504401223186587180279799023646873470266631080674388286881993518645641112056976132827842319961735252342201426941396042651673479658366934403491591039287561897385599185444614606259731148836458524943602964050461571667850144847445256053795956670947391715275829238005069010897468366436627110226386548396036365271978184759994545241444153702703162442727215287616925784188579786117673187034223055093404648686950859762730617269776072192618018810198353292051947814657045386351604325254968196707054020244104414428262195133599832978876666320893222233581531663370062327479228926811598946654416189412049950092553125255891149076085183183052505939421672133070634128078150246470999298338504315762224203875888262405844647149458302765352542490476650916481476776743824053694576105644495746200132098181467046505283554186001095885011904758596264681053962991177980210278333752604740282371202225097888018407843397779751106399715518690411503321278922794701960882620499107047064107004181119315053605524386380308546311146841479719638248153576048062266502750292167504746642109262786463625646166626820637293162336626185683239587003372159485926386894984745535252032640758924890592467834387036440341949428112018586710549908393049423721006603701881543090924246986727814174588426306339205143029921274958487665695255285239880374626549009884453459399196972570612091250670209036431398460538216182883146361046460948598066348905237685565188160474219433177307785502520371556184400584680768945633578099727235297323919109113518488572708990453790542354044307030887469016424772766840823732165502458721381486124137472829661190072529556984554313276669735551997474895009862641395426143898681836333669004313836175708310060014316216102747145843953322408795952664110897900641117838945249788896075546689984506490310774848081300381452731252391778294974414367116343786279150311346721535735485179381999315276565900452891009137853606329386966187388097560724937848161558791752281702359807993982147007130540116824133196854288617854793051733223686212237948158846359171584742921961272021841646644987105162304206229299853439511047983252150023234700511200417191792353827934509677044363181815509669098571172593005891925375945341584408543308428661547280492398874786446567645190748174182506787758302521305479128408495431801202113516144700975975198315360623916623024882642951251865568037774993613570664274019563842558039151867599660222640034162663142016751815214175545638145432210784951315462925497610911112073870683356536592389470342271223873014373024393609650194971831044186277265723379554784957685091334531501161300733321728117108549481170616100540011618823869311805615884338864463962968255115148568749702942391419803215462914522595036482022841384313094664058705897771962703613865662845991513201415903706112241974042679530056936036852943661607024027480446681838444197540910665945577335299267915546255491823390635222093001031483288693857643734531257995978434634465993943824747748700565329510193731741283467341308459265927798102174810017413386844051066159015872873685925797121813888859417737451821871733765665467409820017828802250530164576106359135406499299667269247216697827341957757210546161057751165115303912980593018674641410564322732064254102181659717002670492906997957390865893516322346684472853140942248546028567386325726531658142471087956703299615124126560646968988348506085067016128868387041914053698689793867523253775177267521844642667781232940472177484171812093243847743194813835245524482293845963491069157113056305070424403622094347682948668855678688538883646515066481054227711439217291244840737814100656583439356617317110148162279336098972507626782626286685943850188968046920549032914585429481010186362589189318903364417792067753384499337828239238862063108845529982606697149014793966078701267941715553560659705021395034721372878645391070167854022568035462285836775832381034543189742832379102507654479782190428774356481784815634366869463798994683671125846378376077528436623070014479927290733609113724268922422383792306023576388310251319744280531980982065767799397926830379110338685399073982697949840682822584143928144308561656332066348808819505276446440789817786265814563126996316463277903799151157122040406456835607157714395127900920191783802139138270923019987695345510214827860631608322243169865673145369937810862016719340862531675726594019467710543156598729273842121667313007850142117876000531704061813987449211509983179407166603605922381016165853385602784232248993717544485012706048898565587240118797633585769660421298129428137121182469933307781694527546635547662869808219958753149115782213269280495121690467321725930090577151597215878083336438068174669654075903522340019299205767783234878832420767752752820330744051826236661969575920557683590061611467158143292543537240251411234229969451699802531315151832364914112999821956914238026561312616579931926918350476144743113406548257419659420999934947259480086137369077192199481773436348868736546029761871913478585594992262552215283641049143416410999127920986139451233792558633147165089474935874443972727567862723876646425119872489317342812158989349416597374064790579156270457635818646911810381030800340898234258705193843094463252991742041916166811333156892262082836789540332211182876353850569166460363985688984650278166181794317563155157897378530250052161499021755417376780709996362870124347709871039097875055178331014658168137569398259395639370055169979089651013071355332373802562257364831582613987884552073132418530489145845892690565195215291470584709279229967713868692674525326193775461848481110881912628537751928242238121235085960139593770037898498611454223891136749230859991163763697348207281402497487013179396220522697401695721046989801607882018964372200778186133371212757717684674388123269873900728060927993951312614845909319985470153529803696256406593620528260629176570456648017010807664292561557476102606520647118052101117091664132935437220726100822801989912764671902255634555335329875805579646372681347855158844411888330666461333579645323810796046544066341065872328539517043506145354823412329649872364062437330216768507375410357870264213324728438888183537634091867811393661212924747350113444486866198214380578089556043595008508081981543760449630962560987702789610632165575030693026031219412434315302797559700693045124565771500064752237574793556840131179119141242684144886000723282808813208043189586580711619609027849659672832806816399378663483498724152221293446598077801729512383871428974929223567107682400454405089325197713570358061686087991943997893591669525754323814497100521124642160116993337172375613079326887962444343621154108979338413329315754822437535512600168934425960712153001149933523168853202986943717627449353257867653814490132169361371063728669827404132210411857504279660354806698795304814207898833651834738371386274619509838475752658014196087165456749441246387892049697237407624233964463873411533532442005940325214951033829574473578111253120969108859542135016115403526015839372195657689497760194411023531206602912479606327822834237914038013723432526452499269112442327218814691167581941742716152916901223432280369115261418599776960633891711159752779580828269518866624398858817226807520999408966381087508175593205221964465142003025699218926398855788357806990274450447068166779658108617557020308832625259451420700286414343570640937154687764975187854682789470327055019658421819177338703816374849441516181441871880252551192252543158109150957861564884809861323458072810050507429220217103420294948697066597892269755328316607826197447404104172136814851538786961499351179756860961397277967537586250652105552966671570789360267841433569153758786005524491572971922602653791516599216148187389613142404728956646975045882053293638001790852224934959287554118407074356128004232942714218452069766686505332167359115919621105345054019062922319552939507168567877897828338825977958532162255663805396473373560525637936625124758797935760844452792906231573193625639435640418017556379130721217484241727237059384782579134967965511743703807643578620023607316579840880881532958543874287966256596214050390725557315860372059719997351465869151910703449324055207524521161763115856020464274007616361057026811484933357641766138701180920247224168267051827403371659956687220427289380751276278684973752740511186795110790502738451014592264089582945776729239236984925514256475174800839395883266621635883317172910490775632736676233886046049469620224685945455963886673630810934678424701527858867608194170817186162794605601805081957341057635215408132305931171597345779922071140481223617859968444318991969496123037847586692392904482323774824353879736831079666143874784441531208192421447419163558097556872036299703333996577815275624626941524720195632184279812095366387172530068003147225760043549602192543221570325238926212029643181432649349986486351102287436147225731248874158498085742791736813385536839996421068836453846913532523819803279499015255878243383822339243561025007193738756362586890256417235859074441885892396462825697637192571285654376258860403542392401549530750545902081738554878540255921282822214825190104689675327804092639673633441920900126856331415867133208006546211860432051350317839669056257428092603621008588086573134327857821098941519817130313526059557564865595472625359092603303405165224705068211604739506524259297456308575121196613303241119574833184690063550727011671059066927536717375294038311212712557751549043015206772328473800155801495064380885785870935761948430606844711365446379512354724216114910472363046743724205875331152994150069990059411570874701001721598501743078269730081100647667556337028138354992918253863493200071988873203951481666893058768911060464637674545822412345919485327210650102874083506565871589705603464655202166304244840045402586094294462429653413772946297664903805458242243750837970354713213107451905044763416965144658635311172295261638434525652523601273081491158835894704042625400458589939592258602348085606869949261721872184698473737685819521538064577083306767096903054943600709558196678797656892236762631163365895484684410087116190112919015692308513301627738677444453895763166122100570175718619107487907658433075953353035578767951402704544902712393974666205375906489566241909669013739659124856885876483314626596438279011443205532911622435492080738065436529578785838971732835299767266426681946598323011199114957814275643495702767308535665141819825704043608780326589638432779242505010283048639475924213846833152437825911472655030130386783787146926993728057556368992458079027502999382698273533549601579514463395814276585280904313083869563516186832301506010635962300170449758951556450347101940023390862864838180781815370555002306167610922447194183479048812874693953315570472536082023798300847424946797546357203090672091343228011160252216798926423645318576610876343359706332243041972671836623781711224301950070441185399169028523334603682533063245131329223686274130334649039789825875768052100984404535496524873586200390864828467677790696199418321572283823809507570259964543601870231326193973451121728167736553854600052743969298100358310170745252704023481742892751943592048998712879721346862902844001686405395357907983800138788733519681788300743110030541277786994202974774048889199178782494858253831379444420697932036364242445420112447626962621716799743518581296375802282708015670850897130255743360078439032626637171745585010393619767465335829230371738164783261919639719532555013135660068191976914430015041301639167838020746975069664782777711125007043992514294186427869701355072809701328975809690717009455385409753266121008611160520263245957269669838252249227023781899322836032314576005946235315007585195484501806610603037851537866556595137331923373657419730007133871320829410821780548438998118572717707768088424596715866409034173068125966751257133172350510463774059238213255294810747714953137331134477269260060396459374113391797544806201254341896493864039746746997442481585892323510324564628338512631019152352149369895471726920732738310636537783669593363809563897167839821159499044012338621125044521951901220646162246048806600957216558182911898294924181612479597324579444652953054795829638477603429467601411516207121615965142420030801383919987063108586690905069590123244778540292226148980267700526786084307773243595097878930751919721941055066812844124993186371962740511966072864099304252533742157813555575306094136481413387311179250344654638176177133095977650899282191004119310096094855845711992537081873578182698466664869082253404421089157069636982069099753449980518645031097771849883301586110451195872817172297164016500315251190324175391329992905490908619906480723948163493726377586109830992721623891473642952979157406083421369993097875867890646806022941484630140544246752740974405093754516061349815052038340944175150158304322597004615979869658810991286348131410780765862969110554614066511819363356641786636301126116906414415931894547664552166159744498626938441697059851201795928514322876045355122474153328439990551030671596193583438556506187886444836987808665921695215230635226831792443562963267422366147731574225735685707363384660638605981587273413806937492784228863977865570281603082300926253284328394620649472317314192286723218451961047899079534339482567705469287537058586013419006480805563442571025986462037487212263557689708572812301677718428670705818199152331169067333696312216711349341979647525334969003698607510595610151536552712076879235433458331943286619301188995767944471195864067015505741780654871636959823057117597352781882493036094350943327774685899852422771106066763235312239259542251946016393036066543789081707249463307666818806950157352452140045163471244120595235785161898972339062348766020954838318950064221640739788947285851903476784865254539931367975721641035794647539926992907510787842898076110767603815858125658033002136615322924224801787266095792070163074343383022036918098332639087292720276241055900563789123106396660928891191504713069445703796078598948400243284460362735069541296066880623910622455909556856548913542339575010052836557791616912188542126843686888327552053004092275663384688584282832177072708609032179019625068885318535159109731685074585730497790219527935703120873210301688279288124470522325655719917853907940460546965254073427773561114790694591054708199562736189480781317942743247639881449078534473520677588319658663342013645316833635580521202858444735108948525103531032830333770370687296925098166384988394311349950979056102637673253952185059613955131749592583718782038913780209202257253752882927612577761159836368413028916418968490626670056310256716902997171788229792498984709396743328103629966684940686776680995214040183106549597955205595046579551407888434160638361060794506974524258517866089672921428232811016184371165108242664749454353087346819038789630273812325675633301920483029402017990706091057256903141555446129309817862749763764904247434726220579187903418364199310424751445559004027764139216258254703615952853355298137635149788399724835580760172166119418601033356497667042484900015101309664965469055387487994234666189499847669419394367635420807206192465658416332481126001050411488595324315943947506646609220565902612850115854012852836789810016519055844983293413085317538084078753805851405513167744452794675830155873919141585947249896828459746434502600602730216989893084442737504232887477713437054468640543234181918574484389179277784627602843261115049375302865024140700230073457286095555262846765770191852180189538727376536973265803428957709270407147929930780668312054644805002582982505965324535890745237122648514558867061624478004497803796663490842078860695999910817438110412658679601786225505040103192192083985684577148704673335266675006187901936260421967976176667607823742394119342605013307452763395387269113231757175394271706736167903014809095221943721665456048013171439727850303732486006474182053060306935375780162907465677865583539018226591208985060228476221178931566501768810986542972427002969495686375996888472267807444006055459546854407626831745509559924018399925031954011874958609799847980969699513334619837454078105142287461107048468247892320872433934189010456405466675080606266624686493842682125480561414205934169958581570914915290714250003541598729845620741384713293941958803219687154747294991527434691763838852986795258319210724734914225910458803123928019520989094149148148093548516158415415544993218871886867866473014680458154520849253105911279548658132026903924235796203412581548575178201983965041835075767337149771757383596496497825449213323419713703276642562072672143477801824835741744448177986099464286427780600924574126231020126803055357285520233641328074461235804252673659927021728255759165092586890492852175944305547919772066335958472318920572572208678261017282505561479674147955574700576715577339662810739660225892736174616763958085609709989772143143080855282245565369607132925785648916298110746497329755312839929191432839976581585246838949010775848998648931828066186760990428772972664717242063940015472393161159256048033547761760158259260905486997416934300229319857278085527869415815886649648203498588090008747474605373456488983710435593336666427198987583136575479623866896979026277257678243664150808771928482987062688758904191529468801323321825402077780327516365727586274509219671918543181824138673960550271968428454298806843716818536742777112247320408343922443351549503455268982690492930031124574386065925106969930479979128729969186231735861360972398908305097123468005604585382026851582384078409763669868342537083969976666125358259690840464718329945507168339438984887714262626796856032976899152639239086277835507669707805533923521228333164000578824690814240669936439620251100705501609491439023684778939838026525796585762920606993052216886486356698615614009114641859208127863608477693036755071903642636450028556867781564873782011612876266655387956590637623547517760738008614917191765973655369037893578538932527901690214327027761271312961247901515121240264475701820068046986791698043491133001138649585916444929175909907364945771308355111849431624500557650193512047353982375488468772987120760265025347871646670881109600703393472964901498454307583579639994866422621309149645863829874463553277731247546289665408730993620981262723344107674941355366432040514744061602223647941890276888600657219048607924349005701282633828444930824873938237636403460578231966806778403805682271132138168425053569892368435295287406276541599657963933337059189301383219413944899304664462248884803335610825137140994648015428345853064386172377562462688779429471534749183629709114103856981242979568612390734518700577128763503982159979610819936743706239345431579133066853687807052470708157908057645165822208293051019415206159125600000498781385869609414238529236178535383623454248961338664619911262079032320363855340275171292064323914863900670530171913862103119991608738879378980525410898654769962991096546442775447618193045326016224267457468919639896228811499444948596756668655864312193703778316342923017921894114892726314253033724531546082004232943493553993321119763125765487950334587532479454589747037491682851864553959008155062582579230461149250291644486849121690917487033280817938249969029945173800874089049330446221653008262342012289931034515760823910523655241718171712328450111994569065302788915658195472853178737441057825499245068372005006345120802524395473196771552921841892504508723164301000377080190991925800232596141262811888338396062671229340970898966296705703144504218885615408902577631144629088552437164371427728423643228418822147799739445697385023097521150441868244846014881166520968961095001421619269196226402936623498405534199260091265716690919428839790520276961351748075194337970682716153745211631598688440738339506389725753007154408784978913541966051169476061218421404068963183412937850260836832873486359596018319286547126071824792662694881862230687562670594598535303879961286841229157012795926597774472232295828136759861413181622702923060711899067370287512700884901468556743757560461971629773502322221812889877140645661656371018668278663020486319890395542830172617900395586481116509994871755965314629939883706625076151738613988844505342406130953852137523982097486544659992542704097468383397100614300849375916489496663190608477062793602037609213454338225856533287069737480697059856228877311083074677891573339387943498565565444999347206821132508879600652475726729397307072405001235981869017841114397684505560316823017020241826826641281047689839078851155855438415286967010349916374526949697327940804248720349234084911197754656829136517817883577765180794742895503318214998934991723158841508416832143108469415479854787318804682903000125207075675493407194770796816644268456816264902773368631468100693658745291092521737801189862673287678788586087137850433795954617283768996869715246670004529497908974185698754324073428504044558500355403396503388419422761814059453585153506073120831679573333562299864132382278379694761390150978843216436508996223878468172762721817247858405938076149902292677800664521820898262796894219969460584755508708756166509857025855676030592041965268727588718444035002255624951248496072277198329554524393342058173655663936088643030381759611370323906559153711280597225922464125610581810122397650546619966149587931915233303647427380715785720602888213670269276158832887822894532484803548209723835974401123786871416301344635951142845459959774130562160795234354669845159508417261601448021357856355584114311419832428978536665206803294988910904518149953975556152398111887118322893668968605061910053890053697664072776209302092360379285117550135364235279555566084243348336783456112808593978429300161187032302426827898899421016435603533120603924724660186846844485746820323629064802249465676253279055783374123248598998037763298351760133350560707230161639133699413329031085741452302647908546213075689957020192705016643026458521259276824689291289859944805531749768692198175648552192187277948739838795563773309960881746187954896750286513671033168384375048960718893951904665487575483997866378943392350527300352050359297086587715336259551923246164978277559594752837317108522153622889034163967936732949961580735543606302222602307035770046846606013832860861985434662840173343799560222053098819713313446937925351726306208290711690974299318997264392208827651903662103108487184901953812956017934888082992713276283889645843461568250426294866094951612206886640055100440469381113038928801141136190840558321798448029697418579780221661830633118442788097520981166869468051554369964037941239410438935347494532781991849152467263583339856820241147462102027435841793953035705578735741763968474989177486209886217746482537893579285134120461918549375660345109631722567026139299584160376039100548521639653822787444909530515652595383779482935776630748882836724188162822003361338827053158576948396683410988287334911151335346331313034147693620371957403404920759543293682042309964245857354394906220880915824126702557803039954222176052566051025764967803335694572068916204110565000024635366991591826656645674810376661697753777606055418743430714768994214752617632361186815477634451183756144398544841371206147110327518421539631621368234284720904026577504486478274552755692854223763378320435107080951742225328578160402291807774763552577533541296167297628128100871910577966252847526725734212132189647972070213410847842147775427753407288204784736034634907376761423145585256583970302949342809795432563195255004901701917631832629954069845927014611078028731902136014043756752121123223832948268105996032799045128540467119700970728647649702617108176371246453128144414374821869173159208572497685290314863683437165309948840134573166118328115255498224182937143624906448996068965688844323203961553718712271102512860045368278773806356869038574805717237743335038432299071794311181232666824321824533244246743764784666204934690616740028748707168933762742312129146060872925047806228630147040084360575616860224331955087546659531309373056312131116354942252530311989111335166382522640747901358546182448996301655386002688152702418992876925177620693082213032506406417552689196368327857789633373694308886685885944469253701057632763502981308369172397963401097322615916437767349519981695067316211150208485576507676968729818660964142145242016452880547443807556479055449723710533959050752402433227691361783438151902441328326558254008757278060546474638040023358351926228409510860613170605704801528486096006003873704153466193267469311028333509794900071694582151375088434406857856040561252534911475630973430754514369562721699529884945186491129798587739496358581152295444577231738995688256882651417387617416834759757485475074469060634945263417474147848996386493286769481397011893657194221743034181119465187805551063908416351735787615502297211636716992033120094973260463708246434568082390553610580291014571505428535195361852175370427953488849831470864249213767086178457523293149382184656937507214088916875422574550585336880309101204535403383889816642643917578701187463050593762257705854371730577279680509182453131475684286700188618988107190737266869654100456927637663419111258484049633599534025182434353764113007556577646152846527263355320215825233442212611167698807562812329555004678116454050146431381441701970685773910603420900046111264517298683472150824105262586438728781813427257321536276991117644113740193948149176709216492450159086641155506570606565600638271784971362522475195030323234180976198764076547290658865733047685572590914250022733584089313084457908373470549048548329203323548935012805659432157718746369116646059536609796697996181653005023132960908642895661078443766221713951884383947479304103538965757703423236147949128955226947806685480413252517781617790198128277111635191693406217264186097578011113904511286749001030688291080122644928502544834276707983279948170557204747012062895666001822743515643467433712900010463960847106655308358350229895560854251095382444652574566261734751648677073773333780943383123828724328127709138393086522528615547534908271485725201436351313808391719191609577544161468706017970134708643673784072772795816210083069928857210705326923231077978617302067708213284844892876364548482310292594640184359937765678814124954754338324804887177037058817256538464055935893475773314386528206878943536891449671930725442684277563679675677633074607451356382009467884589248125018887307312729853161120495040644818520582748669087307612102364716300553805007892561072987689440447633985184945670231762920399613380598875318507115858480079580750921692761088949914844153467836144043907690165229921485424432240322695708795254155533952444433368107548839707995124377767188468327031928324561068329644321767757585410399294336294219730413319402066308989631915659682178194618865361887805394321422162104383606633640153666899105093161465237769255866374662630532490042330949384416320395959530865090744266045278755493317464502820548756432538443416580222142524620920100476076763260025217176216591131095360136630075799131115768443165237220523487770326412640948501207457240401448329655961045415520980463684947272774976808556467007707652698697463349839649849380552233256362092832683407213256228480157029355741518442663144349123308075020644411218251148142475343697872764247980398865420678872200940018487633291827075663196462342434550423757377853722324257265514930448936048376380998681806180559412274625045505897003302039614001052350443859347039252748317425632993392574232816519963274367893478682902861233168664447720545403271520787420857919444078496136424106341330008313112544399401361350306048953033607487437804874201891696587196954993163967908786463086760524864176074534759270915945448883652732319080233099747514546759452061641869992467686778704577204115722076494940335706935154151635186793246438750403280254551154064848972833528643397355382285794883035192292450619218019053649471695287709238742632987346075296918115919115587162966338352280587856036604456562038350458180342593007619728394920628730336204666962131621958929770899269846036809211266410488846201536359940794527996738644339542694552379555423103269126195133212429543531740812418163149087461264722870911499281868267346018014492820540636720430067673621930735150698690651975914671755003766842667822413683436577805433593161194624813049093665326385967196183639642403670133348235198132937859503193961932812254037705665173006378378520623603876161421608581310600739360496486841151489836914598043603404977272308068996278843708202287264790417101485142415452829698921433328487022191552979648292595931445686907122872972549262747201811203727026313640301804690089916859159980243821772330593407625947008933061221553204198435457434724600388875967102249918426168334765574368045188607319397893058440669904089843745382272478186989073374938133321041121562961185686803241092163765595439609545296371819526672301613622804661176274566874889040955102635128743376000027727402019778069103112554802962362675884480514729245703245142558166766532193566715476615282851258406266891307542042755400041627183239435680028366290071494731901285523507738292851574704034947056577112297694629482024858835325698361235727484557413098635993127610849809605622961632035735473825555173919645029981139177104319791132474776587388073604979722938429642145695393302847863789102146521245487398417004497709057556722115751237016372437192744216356716427682943724422635157496966033914673228696283653376267436134674376146095667622506202541599121222672255045134911333534883324504163783433144868339406217173220340945591103664396336162822089592279786217698862854272822970848476743298060801732068581235499864631064113591876036911180331030076750494670617617597281444315572901623580816951872889867194592948485524086363400704357288579324689725840360228672651546813569217737147546459498185243595715656137266466816395011348620120335531204834636543404825844405942059857485004048575857863432050849435139153774570393637947761477038956562870560375992754240772983523657630367333755679731068214440968712551515777474113343557575744579609404021600039634056854885827133321292223040842731256511361677508393098226520633801406787220085087184405634531264453627875524566693333375731098523868928182832725552114801792181050541544304672427129771243537430944230596399746324852479082663758740106450575493743571759165256717911135595631792779193876549554400334485555233393672575153228506124853934271439168302855882362295494599190950087276293527437880191903162647241742638958144841703182555217805731527232732373743854858895518105198705651500301728962958133867359896502201840953275912512932466288492039692544529496380903993974651025030971669715425931431763318716810227570534618326944907345172179166157305996889008000407080570216272100731654783219920390022011020656766601741673389396674494229911663515366988562175617651007379781355880601434561300981721566662569912533329964753702747204349429994287890589521720037700539144636383283240436767604672281903638040907177510585177820892406015023479418255079266512208093618138126699282439232368979477296444722144382179386463806296316668551177833187539890860425006183624119433022782477004722926455633208412562155906556908632398940716793918168062149647246244053315620999055494512370501527383686424844001462872862783789073209342469442961016537058751360984065380261737124977815283224160412702232497475834699832771242506922977364968902459620220378789881610342322408944038311409308695776525941666088209399949340320406202674343363804115423294965229661482040484099726956640742820359065424837982705680060959368944433255269364189832942243945205614509559346873046683956370214723068484570358477865330000239849653125070140976148896699521642978907696902117720981487388391389898430446408934461060773831017883384281955943650793929250591459503771069256761754000518044773887401452410296791703054342403213978893402531146761411558570702729011488235216782314980760390258472134284241531319948725964311915972572743674687435610825301957074764465128254579813279062077227734175330828964454466411916162488446116895570759349443892018751438272911961614185235224891695627486163181207501895731777215147352689824771475268020721758528145767692190772428651464433339948743548422561285736188087571083555471149593100696816735619318112318581544242590609740658103949043034889928671778771569655972459336427863828355566026804107042212977375133521255672772337889338518764094144795893703267414383932308760780974934249716250000330904239962112075830445155890837885554795148587480941098340251726879513475037454940882509624315369935906252816996544353164190892026401246621789623865836865945594674687490072115273192723855966748506448623720958047930336943898330234602414837806733163324887457029361182958808465133605759090578865539754024572562064356170257920700828466636059047696935909334998505802734455555191517818838941984238589428980071079603815930759280170567010115970528362367321822963754315295171550558956384919423742043593047094102485914477508732070080098442252919726355161469450572764726776342160118837207295474719677307218045311032096455404556235257981940953532333690414602538270034449956391566925404337630742420696021633874238811576656927870432927238048487505570961972986579331879473693484301929838143175343285573921539940466241316576600140891196557174821189800477438291257331423254791102821743570947345790885701033943702282326926136945852186076145796434109253220212278454471769378862480856847435369001114050225521569650218177824354260367600812229848390421350688517591176395944194879929227690100272137416048436074097157564906593419300753487999401831194156384653304809564058042093802739245427878110366641020695847280742748841132766927806323162781758696933957357927493768043137222105122016215118761370192113779232760796097763445862593984573246732614122153809650033244552264888483277387258582859227299470653916022487056187969091100727594871190220103060509089185540322252414258012087549928186803774938181405020990600678103061985175157911623311970615188751184358270747078102331042303930045278174867821940253246464094693172204191608251346673580924580314776102992250513277726586036862068393573510889297313991738182160015120594769648342958580861069594039476801210471344179044752332688091145748491333222561106035821032126552774624690166971338240980973364839976371138945430332740409200487031696626005265997841445427916318156719866396673835862161300391317343586320426328954881382504539839545414766656645536388453203939468401502860071704562329917478544513638715156556636111616804097732265516135654275127634473680651328566746196225805699175300716898568643543031195502822634389685781777615904529158202475890388934436509749072686417984625037822312517858073734323181624201475474550064609692351442212764691662338692937355237534761982830285067412411532042577595344270954459944413096534638931158258548208728896120284414489691572661100686555524677719785392600589513863073658213739900988786808497195292704535170843628268423751982515335749353406507860202520309887241134506038046520650330653202099420351512176762572092491535645852756349736482307073174867639078639351849572166196823167911180578294349956589068381627226986950857718765656258301468943458208656903947916496862785234979946011377172333448408713035404705610184662530754401141549189702156911780778176094668940657182225298830268299046391509310172299449769311777475786198565942746497049424331824671915536952457923436475110271545119469619012480660820431359472605867342881372226557754765819103561913942142108767682246562402699498382083729261523436675521362738105129154467009805638407191290345556015965243714666418327096972870905227025213153577602457142043592638466404362314102452966290191015328680418513975706327441261046179461930321399027581813665595393183226891422637314078206080361784006548051766883393176434112908296300343559072632962818987953803828287403478951412889478958015722284532616719990475106189094774715976595537965135731755101367967484145086976520257396772321238870789294596642422871405546956026389426881698232359258196322965115790693603401035605897096341553561476749703212353220443989110649119815280616137709937279293089152752640309087241416364485866983909027335873381673856136419263675441755376482220682955204717420200602622514133419405444101993611297383755051069778292783721963625476929274614615132291661102528824524220577475123749192787616284363800134339607870510776975369678381489786394970230467974112032719121047640055591945395975801394489246572114581895555940508204150587307023014642925709812785172412791384696314087012560122940075105682081849559410278219477349742917028505774649428740941536191570816685953716628754362229272897536180537864584147067300552256081974630652947943074156451301857944174470166909754939882466330604819991797940405166092547323823883639089664633350246949737875112381651525986524144247885436431175974712799102601949883716379282017647771762080664161029327716730090366684720886000903378115625657944913815425272387609571478410080229036366314872744279536656512946587376796192588329224211325554210636769079833338008986340275364101628698051826237522817479889708923923459948588723019940432318761911030966306502701847893445520250369873056843401140822355111286647169074639730633411443355440268633056083637482042561171858529074005363157464595507314077758770685424240498705212513399182882004141118186508193817202987778574386153109675917421940012512796805926642220848744671817329426285918836932209784404004624422874940303965616982386343100232728544753679050489948707497383835694785033604814101698688861390208951734556593918279484208566099889554646245953660124693204678823899219968509611177066143281061820127325990237392363816935927356189524143634732816199865240208765481720755625998639341063630413536400994787726902348054327955316446760239555463050549087677860835213878393083048251107099930731948594962957428189374235376445322980470753492303656968612917307142907545927734088885521440345477139717427281972952758829012823691983738790872084225691713019440936130354330530155170438697136261311478440986112314046490161944156677524683786644271490924935612917355502460692844505299289115505016444549998649367779526549333841630878493864070692712844521263713214217278586410207387736280777188870752725580739943495340476905125563752179643231336933478958757136299208493167941305418203226954237720482631985879765697575992631417116470146596423288707660798210898589121665003351507890811762714435528108417019426430458773434917938395485779647153274906711264476463465628866305878408987165332425717020579881445627080946503016916857201970636683805353184941080972437258900354985428554901295159700285873783700593691956107440359484114116746249348465275843738652225627135378164130561252982964990861169749891117978823255632651065557659985793953278257023345154266711210989373483514492330873674345600619240097466181438572554829824285636458781505581780429583618273640068532874406784988963059126448420681089544717307667770428056253034873009359503135397467801976109844271119379619152992954631565645859926728528102254040205595486161381322614078157829137265521079324983182249940011971033536494150880326464346712875096968751071171738589144249634715465224071579349351086051584244594393439088309461187764182710881398892084451246251019209827537899919081467144253260162095248633621827035844913821931100258725386121513861915892540860626076656006709940809889932358748569837663085652601749761860851920878424821881758926163506554089689828561081337862250196247094373742491215734825571984440469731495324370872274770661191402634663033979161599947845964574760359482109222294382178345323886109213079006704226106869866186075084279407240905414725032497644964300975851751787323353401719684657597204545016454115284274343304935789720272173649853365993255111515421486381954534029207510520321025145486664799736433187373422478007143721947961436783785119541126955870161295048472984180568035035257368755785210269232499280070018613391997531163162788922439223776476230945297446144689535841840948385107337615741161964083929323600090603118605248220937014041874241915664006734379457529476450000201621666933393141361975608549869296253341825857758549045649470710069556372241651639913674460253292902964742678726893037928887721845954803718810074664216876740789496047630091458316554570798544356909927978180057701537222975545770809049976851870925426809159489498204409319855308539464036364331896248825593353495330663075241378001926731941534456621124989998524853057600284652490488026020364007057980595969023339102291069019949224401028789974308145129076243854084128727077396565908490932608533909144344141468682236110371273649024430861843510455025697400224026488209799784756112393024578438833917024132990044930759996290107887970003322526388917613468634676923786332308156830944728519151940273483189349309213023734173171660501575453727662428496731024660362537834438666687837026537680558485868633313179857952491317725585285900263757828117212963570473674003712659523690641879731432494200206704170051242273343553457307231509093076492654269837036941659467891621180788112641620698160586413596198983313012828674519008524654657559621148167331056420536280565526858306630469246676608606968365233672083122901662361702977221164901772299771575637475332845684593188059711810335669864977189642693916666016679083210821262922534715663928750173964081663318517992711146200489960361581890571151979261330789219150078738869749126559219565270826643126372601480177784135976473539751044580873968341895107591584789482173487316966074837291546873108905010082535421844545009757708787269359364389950612225419951596643935205491433194077545217247108565339011672524321156088230716384944058843736419460417460605474272344078925292285091650382787240283579778587502369369148660221154279621113310713897111186455466932802292933364762624082919029184226212323193460874851254153647341968165531400311545497744885786980577263741863457125071823090765902185860202243968961971153587389163460294267670760244146268554528244891819179915286723415709805223542410192985077302945135398668589746578831183400903381247213317773156615408098170792129067675078139077807421252348140782933899512036130123794663389865300803498370145064655098794301679073876460970848353196267796702347598058233605044521715519894655805655320729084569068363773751962634446258926876877745166409656115776544788685876568000072739103272188342838798521861750943005308055106811249660965045538620983557771945328016605059088511997077006559125539815512715370184726556315268286579460229228793118318364408321289498910418114469902316294096311539339590517191964345234041814502599415851358840456679701550857926468222507944996876857197397637987976857838289352084642357816863109977255309057799304499695220699383827510482791166268808326676031638833149603889658515866239187360575317118314428512344741374621801678031358366282206370900832170740233062219356721614931520801346488810367803558494822239959021810933134668254141581206008889874022456208281755284090439292292597521302205127853419469973550076836343801453149751448468925682865483950272314660784302311337904348891410104495474992767075068608208427328177127263121109335249264301458864952466713036104884265308558277517569507828441423787078811382670603039373302624779478336608174437538200753444259811205395668587082009061374110105705072882590205721719392220692910082681310317414273691964316359611731500680706840775572689073856709970335485592985690947488032826866704946090887751334565244033200035975264275487751797030799126681899594355055687620882573184356698629756172807610313396643331373961672590166390355595662525019342303025759084234996002406644752883330814651921180224001853166461376232931136521677797035421732314138971573328244968083609076985735218823168020055147114005781069555356098293721095196463485751450508996012374249511032818149604299787143770037255116577337448439726000493237965014089576985059483265038381583417589861865253257412174611726347688538720886575163470563627596282475042193308518677224548620112833056127940432460503501516416502201404352039068884713235340633970588774074297150356204561708839359773335312011954564038583085006524004347991956751792895429839652417385407170139620905330637117227410853135837080596749070210463546939402811341619553646070681510351847734961597941782618590981302725101795943539335611823636973018680363105264627684586764117544804163235139440325990550432936051385965022479079687380057438482959720286459466692205009717513150319268243337153340150539223222311982560112032893846975215328441849392821638013900789123249990862650488927249702765075087465126637594378284933069805466586464324301484372535235337787984998047692489860903122447984671199555889791372099220893389886372117970688055342242467333378169687328660064948211412604885233848518807513010242154509052625093807278276756212037334459799576790067300882101148904183223425371943124829915472615367214103055195477774761774289908797348263244551280608664078689297394170325428782326421211701568837989657601615541286731092280722739086918638527668288749155231480957673684085729554371685965436296314225555972000455674935332254757329253588540161368502649877098749945204548832775023742175993707415883643007126528721345353703721984971508873918617841332663463211732123085189388409772346243751241666937629926613155354009759080766585692681626709061045283735306502412674736281837819818845557102898916437050531261534681093082380030080815701826319552556888040873415695520866465497541271755750375832422856556389250992841897803513423920777045180511214685943423320265518148018382693024272484964276787476837996571223784951187522294343842790329735380203582179689897753020668525450870816519916361223656940138883963839581495329071923485354480531333474813448892876637836129231623814781919660790334640959779955514333283587742464719925740407694924456198591246503824072157887311726636879027276643377839420708007711821415716595025554404472088192909531675971264442221591914504395244249049330260584377628865822120856020635036640023839664141943486340805315718773804555590500130591667676890991351040682519631334568563179447535568137667580000072317611792427242144724330447392977783598145623584307410306165694150790394580758031751247426908590843977499207185009510229265816606379762316474212804921197992253314796090473901096118938384451928654439357747715764131603840758235439583245801717480924219511444207999467860495469568351483943653177658971382445352847330102641963388319015347975535691397187988686211414384424018543830337760107468385494116756384771069364643456726202552234450921151525494786055634723458354265726955555870354884097772497922506460178469592407033799571217947895325584206540095811121056591653448772299700598881721700037585710500409991886394248042103436797173596321045500024788173337182469846586872851612788644385400309615171240912223993150462113109867755716590782980249396026213681248460076657206172375091454739560218851366965249619780642863377573560129738125506782953719780611155045858161422853337499144438921160863079761630525458542760135776602128093641440295109180420248051282541584446586895606953717787867589497596876569089897997787271031628757575403345452244362820952348670188926060217962497577980560781377264012742273858396091023369922548901846712461802962631235167591883968924284526731457277817516070338038371756023439101795607466098862632199120817424860451784574912312777645904220017783780483473304667451071743538038869571501636351064464849172233671910000812536508242594031914077808136813448755473661706506619782111404383580745566129712506738561885447847393302313043176220555930960522159271874633099900649892608994903104448550435870708654190559826596706894282353953938158962828452406100591703530744581821022110775438904268956287437357859620380675969454197804900820153216135049862225726415579097934960335842003918000669333521688277932651990667788486794224239193507698156064873431095896578586034094844277459795415027390409990134042224583413447594448150310128854395142493740999542503554522275585114459815878409904819909730238141970762865929121918252632646333079556012378808320571103847155432570038826982892446720721169508139093669154870795026001997863581838690403992159406966196407478720320201958699666772870028551807731299201057650902259061470747893300486538420569367155337798733936640048075409828037863048932261373117581198638622177360588464092136816588661221402903610355803946211570265932073584661208023070731451937263073670702877807902716204847834771567211095336220334203413885236175411547951413189232093403178188175449019696935724328629366159465434036802463096615070290075323164453754132792781308906472588748800955025717893787211508371905591415210851713271638197964819584843552191995628677948412815528777535566024149806728558069505258377536649081144967119615808027242356596854556702285914510576908342923394674668406653514686588747439739329363412376481889812087412980444932123675232076818439949352607308570747974824311047760362421300727861919529735890748172593052622127801692459115690005406460730251011382631928504522554054595880954782067183778031696775725762574810864015557918261866732417337083843194157602931789230464538396799022942977514330927288284476607912423881558010987515570684410129696531573165295057962041995237097540058832216458144510105595929957729375331732516756435202433443238535891564414248255708860467339345689459049839207943476032700385441508054962272802992381126405097249498577769305561746701257964905029303798134245652349890822613533430669686536965485713510441667149619641088513859970219568461352451454350274750519471466823229499103801975405215704491302268278861136544270128351364475211446016562237266416886850426532957795194129192416818257417761481099151237258185841053387722412688003091618422208534808994634157867248306403335309625043259972757499830750021318634215095883375697910829467478175703901911612634430791028923105227486693004329690498015932069007198111619958253510242545769971938789916830610353584809602288483135034438119049480689306194426603770017833831228671371558383256395560133845242649820416985867677095083545374906246305602961036322777506381808241628342459248926946352395660582890192617409083864184627613625880588794673978967445096826839148894318838891434160963727161824050056607620445952346915518040510437492647298719367347122776168634894201435809029289973074956200074195813118044567053372851376838832931946660019848351186964347333674188313946720516650553755234629117375590749672745597096321555645061012850098569396534886092557056463037037228330256754894305393684684744670852916967012683268012147300603822368407162693345201385039931650070618161197993950261574152718599462864331227228222000032499976854661626804789604533827007994000145093724864153330104155026845085713885897469228340712373395062336908814622187880596210162159268392811585836016166171384849109246217337577805023057567715949751074714717261875077889328921485938264677768340833357691695198517096534447481838360053410061836176467235986256033048725471545894851513179254631486592714152605376028527868764319858529895461825675911062816681822731297910945424940616907871027132363730060517545972408986115132218360156073956438762632761757204404485548943541503829844517276038389364173027266880332399891624365295182788758216200554420556991787104214467284130937429875394808370790309972388091057505056017407381607695428192439193886052305420488208643272348850364869553817859489743702246435473453525393979506973695752268034470631237640819896225472078675059330122775357293502309515940982180785355618853518856575311503083405161033907235635763408431323553134501856297787448052305125184881319847265711214311821300431523555979881452422265924607735713641173626980484756223247657402524451512959979949319509695755052547479570396084316679893667712055177108382427230696076312395023270337295333410290046833983237228804283375088408722176228458467668686078014855139855652064224350493729201409331181476346294514531230075396453758862693274848571647516265641482362088168151406078665419293547149215895126860370575319836238194007876997324696001287655738380490803949319004885696863015096850658506202921955733483363752266853772625841097097699469551518524092899887819992281050985975146621155284461719775245822982358674467473603967596626083009098472110395654080519103957097928316327441411545962351865600109410831880859273487890206633169900279004004533631309129528136552821986821273816902587917653107108094718835669296803774034651390553132890815226222204018315073207256764423695440122512332608617450943098923016450500571898718125892331523817700001471476977558653019208511877166021960983283318456210165858308279647937153914116730986306439654433301223071572006665210459844213048863908065495729560782239165412476094070657563309412784104314998312525885794519850723163299994004771494860772469816745673766181162910756779017688516705946171479382336460171963424493099074022814545025628642581247083903419989155885857245417535823192750770461712890743931337230093528742168240149854849008299674826616337141248396306445564547825613230278137350295860982995719832044346092745403272853222914932624986468788473758492642414920212185920775250464901206496075509076474532560447410904276191830683917356989045857887399479261177994568992011459604065739613374980745942277207455023589125031221694291163162343444041208839882749778134935776557695096072783124406032274254621954635855165338397397589203279618749873383945242282419768906278840910273470766326573960371147586631699709121574838202214045666570807362278052579599194497227571436524161116334624651006051715041688956101000344426967041004457129493383971820546904311960050405941587774679983336708371505804233940401644078613190147561299807824156878057285830144829865410554132130381217707480722412861868977804085574605934224323104381357494511423248757683948879334010670261346619938059745960150261456950583853483892754233756781734066685567045637328786887347786898960549778423229391728293857579002775947276857986764651588281538952818581638176810912344510025004329715183840342168091757843840013240891359203271584920616574064275023520073914172610508748546641501127452671230147599796642065686330357636488055090415779830612276335871566645323239601860972836563445376826754094678287195135446522581295027978218426756308510608792456463787076747350377842435629723100869779722985976095214856334017979380295127997718072169810803846905853806571096304968444654288167417794142709333780038784801454430321089241302314967350087672211466135118357970070032669191282363282747811535244797974017460180005517287650978956603046064721384490345595660744159135236652067237600002525197058273573284115132899205807923822443490856373695077846277693155453963102994594581179993892569334839804654900579231207760749942112140800422003441339365465304300085860028541077738349734925491181387403628117399595258784577098616902931049785196996274960436622796209005927260717687957780974031330717705512700517212904454228176789660279128742576394847171718694262306434111108282823862865197624485150473385289385596327861036504996215475775264203449047833441278355296678729526327377932676758343193194214883726525362410585632600451861436814414185737589513855536054169649530278103703807971505153194300529174144197129486649195139331859984713587312919937550520272149201446270964783148507474638436449725339958069724240809635802045028288475161004151623570729526827794848987881267756263295618342853476563186647394578070008688221546592179561828361388021757457481954257659498377039249933226089522506795294265261180653075669778860692208989290122545832589809251091230381143715477982525135945905847947085954730178712178943564481212829124262564085451495622306998457311408778888596326809998912953515009413622572883420008594513257550589475505240747399416955458213304415930885802477232174289314420813277664145566200740469779535578131131506442490854832038440633223558340425788302154149506481863328154589840247706702107393178425559247852240226707004537207808842668926874529292198300042738405470870405616275358657729566467723505293997072644195877359826689772983526373078928760492972120627987742044618898223854865204753057744469359394251314682357777249409452555717667953255660710460545219181170020222339343841499451945388919282113031143776176275920026192278839606356822202913352933651581703181953596922721420663280428255764969342333400817710211680893027705443400191234117652338934257037928407469571215969575731197813442422705925396770091030725724703951643428630484261640466904671274086687898984161859737608757318653798804766895390871870979697655356051696923369321104343201188927371546377538085144172701954583164362749427852365757983273243765424869736985583768848023798856638582280864935447501753790694503724180408566365487233190373486862948143122540442974909259155753157959654025991213485890454119442913009482079965881492202807828748919620161012029463249068979853174213434174684462498454540160451040755319660330702027799239103342576871496846555344793135828730646051384707350939626570384839778179368562689399228147824347659086418428213521203024690241020989188394443929998616367316909816257213628657022492712809062610768075821017359011089629420580072205974484395082919677785094697098117156346769353396836622412711665858208014199529466450522062273931214242205443108617872800364008683750453222273401988582018214126717653854619459767429660041868760302654462207645325839894923840066822503568720302568795820646290986346856339714407634586694503919170571537228200207745643880950934445008744496490187921387761296101010970463846428091468583923032759728670422853946057280332458465110702677158483054280589884263892476210663364633040353817607888868076550027641939760917894316120835213006038072318257175217332658772066840272035787905367060669351477149457882738465600100814044975191421077653325913602277861073842093388390220124867593205605149228117840344206270802948659565699825245140148299354096423688336992698603697148600217060336203179523957084865448456433088609095102164088834650975790464742169180872840431885456629885817261237037983908540623907420689005382154743600248817750961096368333070096665237497036694783456565539568746476491296696730051039109937860024598762399476106554952243138897545234681876259733394323636812801851325981612970242949558588904782780475004378020125854641928232379646123084805432379240802167338602272800363048550005427710244347751366572585530825719618113505006128025683176624950922588036420339413594760741101863142783495402264596373006774115034632487740062707061547796170836412611135267304370811381661785528587639673105932937952521530760544531607225101158468085137949546119171982293425508381266532231328048961033476446844487730699701463267365797852390027448932185383140157084876634280135427798947154460980201610569390028346194624898847133367552013433135955796133313360665285037053486249672996464394338216456605590264166918549685882309226027941711871108606454055714634483306449907175089148949657903528816757880677409778684617945649844018391183845688101123801391941948921398760108441078461185152358866062461986372039589193625383425554421686176126561966379296246996733729712222592865835317934821212611679614443543717582806867208362002653096118021501058739454154333753428748298069940759801644134107761161658994993640659449535334336371933947852064713547597537916045024484219945434609473890446901139913838472587039919120414140003690241969218188725042862627576612513850980244756116823670644733089875009452398783736917918539121260027514156063678403741142792234426877449339293939499052107871486963399395881417010341563013991225186239833643468608453960344329132661423046628934761738120111480619048135132760759288181020967355564338078973015399959827473572625241145806470325484421494846388385559188870893565591575014948257521305208358123135361675226813201430240886682079768890434657890307028830251443152188509356608511057658045588355489992235197350510465038711480058410068213835337827325519286318426232917825332603774211683299598300746994992295504482914315638269148549939673253512538474991006114672785054042842534676301749748460574964104414425912857402523020792926968317509769702386996047480259721374360807627903002155421660382478323845956829470533203297588382001521922172537210530622807529052168223096926447890657829729804237692638486299326000891564688943404058349775371775857270294027922044544480380013317899058645335669687706185909791132163305297950173906540404503497704551744082130225532253682806208183913650392390144164674081228842928636646768200890581470997661456317932812314298971444356476877833656101411986554604798476874022781653474201444036989995919703317363799110890134609899029762150120567866545787462890391576909307626199662021537506982331971271233772826229225485506795857217466036269651085474836532360601675710126312560504560787333295346493732434174506171092235900541129898521246133356923451451842242958773257739624088105991916794344418851226970839981556214051811436138882886107060043584070722149968473099645090702977757228442265063758788387962174281055942533739057200790201137698115096572912488778724064653395681749019172099127848397225149508681076213036768031719690450321247751111101189771156225952166540366954221513970108891094072954859257056733465304943152785860980362967908678186110399327319754390631389824516499195003427279988297746406694662185577376037459063991449055028017859716395336051650334074823721363316904146618918892551631853423991060948291974619358840805679103847631283951367410359962422809085428570206023251362102604683763824960813319877702646579306640084829569352198970082874343420581149376051293849476669544138108449995214482882963016072918343689776138103197812400783400191395996726172994138090567924355925502139363637797401333074508934971817312852198824067207839883563709370361374864680101162209228956712821232441024847529643410534760458787263196590700983483446119040440145271582644580773227130730042879337732869219503364977856254151609599235768687660079064692135081648968486400848766039620828537471392829750526917713271847259905086290416295291016032140360552915687491379422120792106943888709288851799831694074205349636555556481937436483107423575366459180684823623618715483427957957120561726553553230921111260991494489129733060788188802222215278706908370730967063810429853374775804015303944921978042192147839550094154401986489479918317521872376068121462168322869428528141237350180633105480927582013154804271490759300581778281561212375310441590833304435493447495052310334796630013943550350306952082128231486741233014234867031025119435743538156329585123732219246075709071506162632803814876687450392958286408469957425892267091732668926415012421397086859167037446616279659292835337041834570622810783457937618684888890586823192742776929200248965583156986214351803115325401253364018082466263628095528174888992243224014021581539229911081123269753372717317365489965436539076674565576267142490200282809356367824499947753200398710096584810721832785513419403799020995204165677796015172777597594715365009032898671171069408586214896878127805764990510023661816383569188093639822246867020968863550713787347992825730008980086264883680049784621981139077568172769556848510150074016021340075667033636688626821686543412283783410433138615600604062161258050592619854604670075301246805628683649984452068956472977709628452890843764299149266457233905197352862396881788861505321021799494910555706240152844027240255501855520758558237963849071077253396727277119796855721157494413244977764488082807513193131899459721868214846707061896971740745128614518530713605388313501008292305547458232670944132251093437419753588834445492957738332780586838535245268094054095563182552246156587718912757808023970270871321033648284698623449526867895187652696376547085503420880263613252591997593414617833845061710434454083530786431103793384029198245027905168948961809705151883373750741246602661444784021812013448062084990883806124241281550883783472912231506394156746547381601655191727680674233280135588044063813420727946098156845275966113446206526841623913882264143535793009799880876867693601835385165066620484470994043668416790944939599595208305331142407555142028567352038531945519900304526287813859675192469691978368756573720510170446619053259101673643228803198752600355465797211180891751490773388411777016109170176214343100358452716714641403392926216259216356068708078560028745606894742515055244869660656022585953159055874180572353324608273488659016981336114181087637812127807641604867627560864184390002472709195678009328101957920692090610521897349818242509387648910817144250909923649539272501431745232261344966666215669308084541234785532031931603628249065446483946418549937219299102108934847206259950922660282292651176337555661630766631217959036726584942860953374149148034252236954695265673889736691819420956424590512611338762219131410077107047881058186230945229861838278873207064149120438847834602252140787906896003924438104180860596792052952737607099421623759796198209918812345914907662897641598268329163073870410830205671041918507609232421441367037698988564647907195079183467810506714271624327632288596989083902598673773266254663390981848318707939254471177897993551920499763698557386659707159721983499808322478691682533547832426895665257078281110018755338906351416990188177806036781332704794808698402228596082906026435775280073618483768538422656793027151381483586857254251084009246872029591762157694561271227969804335278280052361558174435059274590800737600680606620480080445609140804043191567769812146720366785484989255359116288138355660717854744877126360385904351141629429710022928664530904864119114501766866507755857127121646529661804565729755829434000581212138352937675567270095098439877823999508058053557429394451667927162131497092786590633675575209218160451029730036462124996891361496382830500583331892906034899912953395365136794331257353865325715741122022211459920889413028431053207993152918818651472107986806719853913294454467525677655273590779159604486450273992640811898395874936515644340344410165093714117855077221510765666055007253403705041832078144334221070530831124516434382030738896246480775147381243394330553911372704303702800960682650398497761446297682270465559303907056653304239321717928765285226589295577014453071020180949419167628209984092482109095866564867255913096586511184217495277231991994462803350640315892022094996907802565809188582969343180246522250801893346370172423301368933806512710176620873673871157420440841543743799495558904100208137565411009623750587481150733910672044815218368599040227221703905769522459494780501813659285113809029585026947461846399697183685350045460345380562319256594358321273261029780194846263377660200525103114405995443318882233252169960448406752219312366411279310818022984749484824239284279420746877521537225298227636483811311554508201900356542867039397043513981534301491568021733707559810753913557787364474291944964851328167604302622422083144143786862731524721072651029194689563128990731855111178557673115747216053287722196056866064733001847593325635440425276550022573835699527995893429849819092089167266126573619423229582646951215951435150571192538496546211918311349371979525507524964147250576467840443062006922081403337911865384314224304167887293235565950003357463306238558743895111974100330475419088133694801342611224206424355296971588318878179674456447700099896692341996143687967026027346541550806730186393018754193266824564161939179362720580677023878723132302303834519182233625905520124834242554850339989146132267679027937700453650030948099797275646164476567268418677167834201063545414532816695746793480102183450448129077723392557971433658215656684256211914828575432413395836699379378873429663886264461372552592631950214924910948099794353279206176755964645231820725753082593383573512361684047004856152374890692576101027931474642542804511050300342285066540601078841716875726052228077996061562150790295999568153141284335682127081834779238715130873387772192866713914369029015821947895891833205020409728646935062725911832454097922100443556409046093601765701280392665388468847261890469615029351021281211075787773294356909448494870158137193065472557644960389341260085328585276598068748052334343638901251985793720193203866555371791510919709608577713064549420926436859638272881902424073045876505893049032796270852706378785161046708406045025334149251486787266127386954775420304096416140105921269388756730806766701077313245759779273439638976255161204454360564628062547077352040434814005475765237568378554347177361038060936720718927865562498323683828524922478278467654064816527526876808555220842341166909684264507184618853353056702170605285831783697869663509754920087601136387710373914960034326009575618440520980723720668679567431793892498285582260983048705581929686886213489509838095320263885039925869317839905085246171104833350969601192078722307221605879824998303235430414067684399862442819123555372861835732979172384965378541540465010601981351278903980335860958197435682866883947528684899419279198567927292421509895177569379816555597674363592565237013837753290940224693811577263858119284681312429961457247222022352093445341642208723701863624399191825785500253659434906710582950369357920754036482824363819809234720697991176446985108626928106082963424975301329333748635441502696413703458474687833542491810865097183171535544338275351549776993558815836093789979532457078221932839787003853983088069341048810564399160420520282405980935391195796421455232310694253947027230165766124807060704264244120091824370394571540111070192995868855764636210528954867249439112230125299491268196214929369105466281225588706033737870781550345856949131920925774524207733289543835104707540938480654596456527554441312121331258219625560394217758411451802702574724602218677057179529372004115752088986387898414385811205406945234082056623700323128144754606625185002438347211619385259684703847175966708637067339126231685810515608107710190400896446605301380116863469175102167449999224488637005254248878896272685759232058000223821218870496714163057507180160772103352674385961221552610170905189482773383459257471019541768467159179288595985437775592544444892768695477274234671798221905054016199017847619982082312024063938678978390485400515380559022795339758685593827106140919428474053050315927751270741665737495664317334643544233255199300217387050482171118814885609690084677555912880734614849142383204133169208687944627505666335479658056594705247225081449348735062933110988093186686520670250052424180854952289890373184061892553823537502337593378416862843730649009834987343130398638567353194400541757846449897781555771935810962829872244158691213009445980820385794833258126765188379987897702661820364319336069560529285093924513346973434109083664116243728196821059994079166550493479837405777165410652086441595852419542787857916143546228523889043530027367555729095532101749837732650265669158538264284584256319876685507322631582047100369571942718173302244311128899764541943484370035641319761361587028558254306106499844378447117824469481258423271987842811856592168149129886492933413166573687406583974229968416974750099024211226782372217832179363123823764268223784980373517995488204004505568082985062805248814195565112069540811497123614965167411413189545901749769344670653810409698454940039930302650721826519960836468861988500964031346260316117241969856226153153175948657014361429268648157205118338890556918105534741260342515421817778260591023995439693934164286628506692735103649256294397959930960070769367684524656189400869575359011438233140927509129612671884878906590659514687274484316542067445824472170901633608645106801296718544997761822829608195510787059627911626821276443017184822970944687605552506534731875428165228893101059625264072638140048360108498472161612261158659622144705023165808871461699422614946225940373738635314979510897730273390154814452495183524069509025707384152896954383854276723933401886258626659924848732759552288641223540658827845395553802896920814796817404596253679715522867553722086897291786336988912813852358415087636468360521492497893427494730248075494776745184614593255771336296035308820610367313832519080181340507566373223146575611926246770443854240459300111228443877117813220754306781549782405432423074460408894549437784939986326065882004316598911912542735222185858372278071909837233703769247060874625263807810090521907667140210385958487590936730576645943882178983955383260544180054665702183015193629659568123839786157643276556801748692425940341093486928346512932984769214373594055278334691723057638814467121717672469244808831186949814856378361230735814746164254075967669512220747658183651994391376232072777946137012778072887684595418543166220051411659428917543862637451869705011084158202620942971606813054188944722437462569242488699545394341815165036682419927509997071084324326145871900184966038004762601910200392027041118500334581703719102097973507231431829403601999377710075013657826899470840558845738305725981765607868703338986940466026731813515957307849885703364012331333235318335945956405301383116766754523676662203154210872929056485053157555240731417107107282880483950474122898206311644495690216539547757917477439202691148812695641273632206570865280767857131955097759223320144401172344890466130057488550839295541133019500225720121729197253012679296263425888879837564386143408331799710847722118656907173594085974566752883421108209487696032016435950263396300429146416478842530307345855316032197555947906891040902803418115424066281539525576096219351821863611180485148963689178886485677207426127969673641422155233784853609514721047760571441794373528346571989830482605821335316000236530934569917059048851679674320261150120597381990765114746818884177563008994740591094390392451627738806435673602936603394705908971552961118768963374900636023329419937575793993630193579891289090809946955638953871660365926079465648124508394066246343228024153465627808831055377426870322561366577534801932189441539631316150166783375391999086295806512928329047633688121485736644444001420516382827805753642721776099347790767872488582165862031009960618330080339031456265866280312982392487219440809537884624646271186562588821606483290098725431505103236733784646508398139189019519269522472009055025365816329842186599248076778802097908636980631832932750940789066316094986750230297830583210374484392238194135080489940603718229823643906623313232567508428344624265955167765461229048799464148806332455238139330698070619401212524937316986400682427511902919849713730204854436460425642474743498021938157899800800286878876254549844250469638648349570776182832692866596344911791843905492613359780662947302616136469474684754386548143122326346627272698811340646131435265684855833000108711069661209349312552699177243608355426242047995787554375985779908877735832427262431069395807666547038788401604276959806404827032655512959533054337330907428218219392289166064270665441305210323031982918130350446639352263039801250929548373788234582279984160390369936610167151141917109618382685579939982922251163553548355238198845778071073852351189662539813952348243500239401491118004199246835395360922295919305397175714820381278035897199653248693443070904940784426096814505056273930718165544076196748076686921700599683743912615468200306361912260558571386631342355203292576863645085793290482933813713613207777096967555372386074029507018613233270787722622528171243601633149312077968800349606761499227311016901895338237129748689611806362730999810797621335750556848885617457511441419854349638664755972886917088038447412606468612898538366017393661239198678134149243229315047926296016371099350359317411962878622786690851502178369228954531910886951285856275916937984412150288915070018167521825106300299518216263014598347625905206168881979987529443052801517681425806569200093992907080040287100472692438304744276046157785729660552076358827666231832831804195721162574705467406781250851968963485683061239334524401308124976539345821897459175920407915773948863023137217006845843028099760679968508221289394651200295606781071850612058687346691501026095726377132749736954730926032739595134394479744741619806904651094857346645181931096443650535225621430278526824292400223918299519823461361371603528172546496507931102986073302424977351380781495339096900115601874618817835318519650248033090966506738903763223595819066725471578064558678686397683561874072573056859718722718316060875650260911193511965892800069610669403108631120898695189680194218719593058389294175395925677687839388747875031082359945844397380802171226135690131691283809202154434460498776916108516795418782766094876471124587733048999854072744952652159777794982653154623904679031131830021355742905750907179327374831857150141576312483476250273825380135235658387556248640099810716245658207604762925301689993530885711801762698258163873821179703002012897292607729439519678002135185652268863136238738765941161418160161709821373270333795754632662141428816413284802162541750590601568472294147243158778062475141117854559421272397905985813692133430837550233962068831429326142956150728176948279266329942366596222428321003657556632762704172335409564677967928529517889840301634909065411468948671782348215611955426762690529468531009168268393709229775926634086330200697442564751937227920995031696233611720810049126823621125529610842100481581922732232798693819885841640609749477960944217986710449760347689510399154284650987146198004122076285578157423338726627853854542490393858106435889159502319671121685392839151488395805461265002597258607372967974735587434573797467288430875557962235754330964018637312950757970000698085467332729634053927198347722551562404388309379354023535393385570157801350277232769007766487924659957028595242409233077959237611679721113957477120645695453727685450778715207173083437931381070070351883130028364125338846974654511931988350041144752721883885389951061424866037666557965566834139244202912676854019699117773338695447248770207204731220524623342497343850009980514041272483449638119299972414412826343020576305121251805966720610720601150955222500802885021628250910696473880438448229381729678347267767301653939548878739915596513669204820922428003872674501892531708692341950003253684920084241165638218549361045635914920442008108564938856463252735156051689427385915465741313330174022708740145817335028267273662402233249750164552228820848572327923773969339866715322962878878847939200958435269583052739031421727459227144263912425298834452928807037832133774723600995404678450875541232498119983176989902794157993480088106842993692981592218662657791031000393030855433524680477550688682061220615936652838421719998010399852302879385235518399925726653955980344346379164462406274155000579615727874949562622677096204991047392685175953468734972300626681218565854431721981675492313477109585761611607347021389868070701494880714659325761507413642515317459743909912925471561764410538425170971866871053382980478503039723211702343311364930753314449881809580883807737304612481451655124589434821734411059903958139590893404684213917125647919571520992957660271008256333926458066824922782956717465529816813273746801288703663919488161080227545804379329349049411834451271162401176959245305259267567650020766541878125923484885970924035662178299198166265367937450819603586612165865109417815535356068645275782489475145192984743304757175635624747791028457807710692324616376731820275825393011511773614395107462388495863621887939401573514333217231771841718137626093087655437615819203472708249565545667354544127779210012956224756517416395185890563792317922292506783131153502329434103619655910471403058597081354749459267373902873295441883608907103910635692201066564458682302374243342383845620707120667754913107642087975491428886262074060038036212408892892455111576689258232729319155041882443664195581043059845783605801233457325516135345382993543939112930904089911800326360539366682315603940564776985313761921698874963340554297504375875931072830187110841965169624301134607258541529938800006887946921551680948799149363283110022282187418146784022996922652090918506759282163635989240334371830132539424302821114355456946339361080535025118841424700791134074642719838114013768698344828055526937202421146162526960892982900333761838270163196805601236547278592137662935353955500353543814276194686212078569202526517562665588285379533519829854038975007000972179069327903112143590812130846270584231431821836954893155258883274983782796199432004623197522721614682700084717905096516220309444281513256199660702191018117685125324296045996425914235510577760751705773967948918221252952053101330804085619810624537671666621264754819600508909163298311182058555550381278375101673741116725557824575465182101221699264738591571245250891888687458075079397152753502986064639634121174996403240460516435767946399046059961906495166387936186056225112731091794988473037635249557005874618889311616025797042873686718158400873903286026941856566497702337880693168404808084837572651839336254080420740147573818922279193915866505292812847922608390993942029347793522922330088936810608448880588769861176934488077049091731118582431571478096571623579765615366447744603493528871006363070577878991105335485778407914958995890373760828557145714860244892347448773853243053840654847423948582234474790071922105432591992492606931214431350222662559716395960811836313283321284206412962088958959243108018006727654339661281428384540143557351670100669797187915217414525755378017804147666381877739992449217612726697485341733639068398912929959035251938831758833422251985521305248145037029822916024452068111086286883938494302119823943975548272468740233648622731513921650892291096508768510048253215102880469237178734154708083582993768680564079921925544583177660076574216839952771803636543057512732080396110199379096128092881506597558551879837987032593911899104671365932933901041705638734883350739046371738631402186594252873154927663408072899483736848809919021740719087775259486622535083926752597145409216716168464523233292669594397414938302924272950314628348737402237557029365386340124504467870492197701431899250820964002263086763757666334057350591215103722811784372603025164409891372619212716849333649468043071085442423690978020795024232424025152730882692423732474388517847803614340903893897941763052532861538898667872581578269557587954462015658728818027906831839545964180608066681616764808092591471748145138501443187973886293326512337352658146054680044509988850655561562877455632890893266887422178800283004570195957122076762164741379996208266413990194638861795842420763728462661866476388287315841731728973654543705997395809932490254269264691123030851851356915569403734671956690433690660845363913497750851241071421423335074861252397474360542558497968296989465569233555785557473282262009503495205063747439742972902779328366554846187642397402599166760308677613484073678654366898092800424085658283113232122291164847319460286480738314949182790668091058345106840861432570113372062695731950875740476019905020189058740720295138890831715636295128896500601776555042344180305640414088206390464896480259812490921293201580096501625836683083551913787424910549293716910726871742719990334387757196550478303433166962653398804943332324564700211730306704501181647641698374049079991106397852064353508485191032370596021650111520745087249374300474889621577834606575280024722033985026949754002845376665872318972935890967475506594925772725598671747656214232313772148292047681696481763733137025720208354473804725794987309738424229982201773918409358646470885893123297600057448982345793822739861069501439233096111397787068431553594107222668724921608832410410279221007465034421001518010559983456398623409531036837061040659128533768661762227957480878140395176196998790026588122513129976200879676265698590048329730635965375730561978293024334182532268560022226233342657982188988252130113051268402148714772770287005104701069827606167347405146577257487710260356255165954904436084704648567621106089212922050285674395387649501221667773386980264235184826738594432428347049657918827173128307995945743548119616665411427574985775499750393060618386583606416608957453378157647523431329862861389790083233838530704397303991825465197467363349228297587655806914204120146599118412057596597150280165887477227783358451442980553594200873167525824800255411010401093005701639557504099636648732913304944179830612808989127881637827285053642077044584273541701338312585352432076177819527519371237791414152916579961209911336738835786120157241230596823584470395285697540777603221776623356837519876850854965368407637953209160216576422341271427791631280860530254157508596071576204080982444587667723036383827562478860567255557448942388411220611550386830606371655781802154384855226456925548742322249894645527272317353668177733591613583848290197497554836365938348940472121157715207380524058864018668562223728041751965523933260971112218375034787981516707601176196294546935028380665978136696474183669449172235081985839072012341022941424277900301655292942342585521192847979148311264001156784745962522774495423685861122305821709899644090838798103797258415584466898109185004578620206944728897485534369749616957568867899274218309984527217114507082808245073397237065960477858137135178220319119662381910233069289768212512302312737526591871310646340181673182976446733931606265452178732306466836831392850772650899484525451919382715241279038671416727217634709914935528876803691705866604229822933469404462338130240676143852147176376381700117503385038832296616094405668714780888905363658915770882875633351589576602219262273438206843800900691705196414878442091831208638453576341444487683853712575716982100742414584735825344776775876961987670300313797174499135124494946631599427400248656482354128594294651428307298178778097249006305337148128679022627575186909590881768371340077140165029245109152221161125234991843447120935509087601605974744656456422499120933775519827045112657452562061458507415967237928543377092423756000405133057092229656554315092982515335765900935272179721141048110808556863830209047865477538480166942727914570325592399948362924556076472580824593518639992316493533941920858754157867161451128663939316902562166304558497975088732585288192077085372274086549444475387009139783660038030543216320032470014831717421555388782862741864671705821319906889141589551483493029420995930229054878784783547972359112036369923731221068930520612621516444720655174291663358254525042128892286092230529156350774953672496968083205306610815939506033969493429013348723027386900550795472935481126160275458781106312927677449905556398050418589663108694839005072153647387443418529382636392257135197594504038470734803876461801508132648261477672203181273300161337546982350791045931077766197676971279386855655078044198079347768682720968141657509440256676306472899612121354988337647937639465775446704108893168744915775813706439959528198347507401546125744112906123830272630458675384383585672592068588616143355709676262171855020073149715475616208834239035696839872597038400700174905301527960514361545668070251681978638055751814865979746394797718980544899948896508403077282585028126539443229496483869068353823467279222555676235343671696613800964263677479653585307516321893555418484546567477322751708127672755037655240426790348553358522997686819149473874855053010022197334734110432861413820465890731467958606293281043319883501773160651278732324840939527681571141712906844531579378776782776554662888780746512428657708964226722121726959282187939906354277983042530566827138773260357966148505871398431549183258827781308479852125392592258936139235413631899919618438668885609886779971563625588714644951672580309154752994615245562291850123432486802584537215185020611540162548471198692268301417551654308363386592060489057133212750429349442914326260911536294812927433449784548080992039070518092497870330092706054333373545639084405422495634927323119788415262418742190986953010751751607524145040300049205629025993710651493842775780287920189125181783817010492347773064410951148174875717323387431667855218098192797535646137178614342370967013178503143833810579342178054175803396079947695662129937472959839322751226518644404062358937036765081246359797429419168499736715309979701351958163791105123801507423774743057580658855030189741047390669304846719432680024941407649053960454807330011880700985171409747857968934811886375976360286701178855916296609656575633409397354854907562569872681817529066560527676938421236158079178910142518603297155226506607063030362583288282593896181931205476524506696713430405968002570298550983557621892026966136454455668032728910074075816182250960119955397485593567990400151036917723242957570759688504446626820708854745821400367894873977029390068449153171800084268954216912156513551010473658503730142975887330037392265654485205037428106851245968571894014394359520632274712979157870587954066365271764883898542478353065935663141651843703737791159842431060063001200743674564631880559257475579246864376157445365710314873334700794681945651327605746036315638157561140234568678668138532385561465902803779286120966951412652232955940521408866786511872101979439680502419806343214433830236285193925515788542799529839647663823767075862796703495237940524004991538341839785935069892804855901284730556013140244513060216436508564399565513184559663199760327793745257439062825574728998783804331916699091369673926438845771837416160815380646413519819810358214810229810444402114383801625312078401709091002923928378787345291233515071740352551680151505238228605823524811057603610999067264100523427962573451402322959537535084303847248910463223605400657395313294752472505936810910695997646604036104127630770570649637941531310747194631257917083013794487910880411061647213344113739088507329760549142196979407675138285850757168672640504922621422752653604491234811922878976843088067462525990108511217436905144968586373114346394211922602580371450315604561417046490256066116852242291707764587798987475259312879051778532845855800860900279606433287523469628800177181708266670705912406745942669429898419122600877899942379164780493567267890537749194534337660477957268444962970462661206039526920523042821861738037894183190470703665849728074997595957513056982352093191786736153164636957965535498761375401632144353266540257739660245017603731765763453820908603007578377055387160258440862562742407877748974822597669400031153970213897132093327056105088094052107283752904320165002525615715925154372786494903756620222526226589222131237675097011415304758626518366308240284803563274428189133334269169778319211789592527995249508745897050965762075257808901506146805726594162684250183273899182714467757787745247000374035373591581389842671695771997254969547539940946899644904775648695019586065722305815999615732374000893735142420800772997048831729692243127807882109517402370015736423037416696777680596438804086488213600158194353749038567064293248291453530040172655356897595604189542754517683215716794167317239451656210482275780936715159388547929475199673411519602096531425814943420503483945317802560357067003411205822365175269606004201448102998811073120200471011906761756543259568336825805787647135781829135334681473199207536425738851719215801502219178974566573864286957743437205359974584984420393924531915771612760132088448995862822644774458512380460817901886521685981681855906647794911602189552727734760841792537778706948666225964685644354962997914849046605079611296189080040622554790392584254786952596001628073932794444385841205967238362606025670958487605099049933749210755691283887956857384429517849010400679674574529192731312675573507196251449502487209825204729366647013752979682641380169647870524616181942239594204824539778335592050377410509717057619289309442009850612990030743461879221564132154953141499743733491170390898420494186912996990322529340361032684689210634631718162546921888372309622545275274144303789634190560542923256932284510926074997279564978060422226054176956647372041416202705560768480390223951922386222462093259553349323223363780443819775238379117800897836146746582506086926878503651206150373691947126883476104036289562769961659643303422726398279863645144671673662141096648618024322426889660713797322025277104134901564234041902460521793048787030085032846185069629706410042530136142418320040598171684303692087382200551654565249007173164098684624206706416566145941239620759245226577640633892203427330803425411094986050409616456453798268434804167172612124636743273033443432737776875767039836139783233886943027930937990636734855537203016229930606346453520937618745356783930316083856854429002541613469588806031148245300202628582120756097709438921171674376790021417816175448665922413055823796549160357650513674685162602261372443395399078661882343990312184231441870869137454771699416302941414486406028217367920881435974902912411143119981485431551066647751989621123294752087727335680052602807386257165849296160146419548797851031559729651231417853283591227512443150598492515056205728445408578088339501736125808044829460913246982941586554302674285210825411803774356278199726640642839446234375400975237239064147311195186718061705655730551150678643863558890965050683386474800403333790320253498897236536580773277753974490607340358694386155718522789363240876511315780978086835565618662141070805330178682524467202812109006125479341775848317865640962893265817436304864816459877057742267074499919870536165499208774214031602690935591456761421172313369297155984502631971943276891748649235091273165834584440722413738143704302083564613903227981441752465248277324025672491998822492225760713720285169833667382758560041116070993244542291642326744852980325297022930541218632244698649080970001073391022575412804236914999407721535641848780278740250333964841917245990388618176794605347629570747958906253329633361590944550163400473971237778412281889835011084483051372819690003542542141173531235892677732225145555895693982518344235740394057180226440229410517017553352254661842203458208614923672286863952517920814321753616522533810082096468648716787514798031894343086184437377298137095068789334089809357205121550051305656645973505377101301954053712365825135209657679685274290677999803888469605791593938965740269222120179239133138989372593250206831899744172515430995989840682704938928426088768807345532337709655746330809100758688267635549618139743718153186806927689020949965497370493586881383133802809814929844081302936691842326418213845730829799345586165034260531210360567400388311132848932697553094945459876508701846195285046513081841299089862484103150828135841228099675599296957004022361259507672881438728721882005865075214755092044599102454565413904691512333375204608514381340497537285003532404706955034531840021856279243635388216749664019991719377021914942031349842499155857647128706639042366257000900242232622690103852465160817806121128668404078364122314634081705953223714123438858431860925071086176836969739178358771620119869567662384452899869935988464275442445018482301841986387205703484060574723253494359974314724199199791595096354339586867605420034140395575854597916958024278975537605265007868061003435447184401255988590657000916026877172826329378394045592305672506818707547426777796249321691155722797066188138064929624223878261546378373054229531240729858604167508880554667328766720672980415348326240831099880450061450954785102270489985800545328512099032018519466919040277243760014676445711196874164378579985918140368784129563803809890902740808188787478834718458310360691014902453042015194690655459197847737150566808522489869852469085637733016444166833031590792349295459709728207053965386671273019553931548405273033865989458335561986185383804034150904147394068936610094103876917554994532642275400562492336317789639367736975685465564535117185709427816968120554979647111791291788388395746102720822018747416180084221654054116134465951212512403494426303717328352467992403016238042689601982289868019162104963034587479219379455845707428263870176570341474519252263385942248538486908400269325892265234346832814651531722476176733552338697432017003063819777217223289626736994208465028241282060092088878890156019943271413571242844727714832320233671544940376952679006513930696013749213776825511004692917908458738846285570095470184270382967514438414173224187942348586951649747766247381356945648286887666370656255902140693812726609883824668980493626892132285101391250378491550835599496632319002990017993709863591521874432153791146504892825760676449747658608740652260477438278532204543253710709625710064422858692571507358064008706980563447592386135183772771244247161516694476580907157371115224702609413635181326645166524662458228667784124661017733949130954920966381516705825333036852333719916037142547470346520980938245788606466926982839533870956221284272069799543192495038382033293595814976504372736944989862406994059874445094284674935283540816912153300360980761452011272378118785746467868288864678162241934083500093477592427282004364737073225424235087852887458044940528333006106529228045729489007520592181840598688764220885000650810515179322911292116677048938111018780555926355978856842034810624286343073638401768932854007759168899010484492990514630873732240098273677425395748431240901890649670369640804018037329544469660178120824868947287340164172610920365800815659568819496047194660999311509112302501575605456307821589285023446665792110430822812599293479091557788547439080872505810866814255377335689912795523214007994247885694040769320473857865649546656603999481313411861151657153772227032604196537973092062518603006197232769418718810424205225514152974240401984023765716132115754848203917322987620712742450974663126605151923646913133991568153204264121900102910417475275673217200474610975020689013724599237366233760351125528462234108708852717933925834118939053844358317899090122529170942926540518314792702399787092000578592335317620131096168460539365838794983328003619006199505706955377383098173532647004181388826887253949485330029643490578288665258354373181595817767850929405535648385098724532170441225039377610466725197472194946010466993357635058198245368558855250901618402912964930466196382950491051890153746963819843774772125278280620898210649952501266858929042973704994751774648562642986703638561286010904900433597047584621762538530791466869758476929197739014822885033096533080238560485502147195310643238391208014892579860447934297032530427938771397826190774769665288919141210414976467019650202260148993453458223767119850192126288787892653091371830232532336582830135831825070501314156355193874264885052485700003450244509388599761013267405732472984309779568674252354633192323272784981690463950988129557035030480046453616076749105026281195929124348046317866428273031041828719660342904556894038060410023200249304355566047675831272710806604465297575620595736025047932795738931767477644703468569103746075560544088032897571953661196688210730424502038991918816998864550026951090099562820085273240011899024230147985258247052640199266926884309690103181747892918944433153484127168799167485644756433206166464445630274873844119657304567164310003451333316929568637074041535434905141668397086110505969110989490848577859860750438507368173282615195237175661796024727902567873173891796285438571176816988499941004644923963972703819762622068372049349226623876916060022339513210171277316743402122783608194758953405749924228791642788573615847231804361451853643687217896635466501580308703105491578578106921445812024734569319229745816033520154833473250214190147452457811707447890453049144041308413909915674298357624963944618342281908613623494526102046483086639744377145352911672076608438451368748238982640214685065937634813947278091631394619466515194832600472646869723544420106974919863894008586408975294324402823387331430399914602386270637158926824367066250843993244037391919557893032300635715496273689237475853757303829361566550397093403257471281168715254640917879877864538745439307146767793582271909273721739030888409395310676966512371410181443809992418610671757118024880530996604758821068767018661510247641957107557236283608563761648437730660571400418239376375355319924397711755446127651109296509849953846156668582164421953896997479442605813677541892670800116253469072281593457755114818464262721063568271239210318163714932803308301429906283836397392662776510303349743426367597005587407916829306594664608651907921258981317150364955244403303579332590798472529175805688351220031523985982236477125147951518727314439704051087401907437572999642591563498510284932033043149581841283610389207823209145975729039706971290072494342076508608294783222403859533199663672002758874324831006682129998735895326283254793726393036328806645846383815275759461881074321144146128781451630395251144727038700839513422879136143306841251393902221734329297779428056731800633161461630822659419893182983134221363960552399554855391176013316476141516955785718842435127569449140324495656781656965307011524319087701575721847959005616867828007905003722007705780246850002041812974451483678178083542061208617197790142719248577924035838880073395509131453592574383032304846513943432429127186800877317671626934493915845064750777112318441258020925617892263873129726955309312553222665914012822198561216312048857445871906717704337109236788294692111577648600801762515473253130692850044944949656829813243382638678297481239686816448325664238851258818197306089289144148104553628273073137694539806414945028855202210072013669334305712559182827112226456459497071942927005389301569794971728544272006456533833271587603690426536812526975560645206104406000208099344446992217490054139829028520678463297142742423025530868431608523161869672288154900699667744649670580885087593021440968696312107356486737159302143344367100512844296936035740715630094695749409419162457137566343449959862552856096241298499091097445731903023729103275408100727229698036640043095420359256022229216121763075439645470130653007769527432037615121765083163816019619855828010154446891460169276450006271015343708732362926162199880948282459015590948248437634835720218220096720734893575769079874040922192602856767164097440396240580381952156647996545675869868887149167327239253184093281144068144955753789629605381311206535558560462842772705724755418072113858519236463908601896837776568825617398486265073959752558731273299378524217179607379568324714546245592463792717197483306118754331724089305822793111464435992633576449512476452609412094038247763950867656109853474306761506143373160057173579669683091864865307128547228762354722777768616217823435446205718628375359435750251012056584804529007701439388585555757323509244936336192457338894463410506723489706424445157226870834932261051320124988750226099029868144504973965010366237841839121606900792167183825808753529566642501218188097174578930585843787374223170371872378835754421321089550438907290160441776992223064343350576886748746607421348432021014047136544774844667480401159921188972072842984775530442183630251547448015765946581128209733944202734011778908058084477257694101931912464623536697695096909766992537142339179100877299569230954861103552814249758948632643783168298119358538962370358300506642855743675180505918085593126936413304542254357042862026006568675628112051081727214213790294284706632448273268244741178700180958248225405706372738928697589373194775487471922809058320318458548697714938859601742617244449655080481746206679488129675400254240359129513515383732610308997128597049072636923614798995676028765437652433029070786684928773584320686515611720669692621041514745207541320326854765296586574061558165769266046818564061644071487702826442398948012039505092657389859131182188168264054111571325986811707050737381550502636901058151686833040611242837360296202256303204782537831894026593476973651169665764635402302142483156142271669671452804638241631621363427552341054963049265424451271678799434353310791825591213382040997480414067365577030044088661409742333269565368152270493610934475418760483705127925541953319428520974600288140986828918483872753904753820928998230909970187064875464179998798822983031242927567702895998615717404749537714046615449920310874616293286279244506253985115049376161943781025804513560387041295540120545356042716309284346773632674088077833404722272205327079880438813095554513923706846494519337705748872730337190953447550080480504294962675205976116629291290715154639859901821127143739002917872860650786930431169927322601372449842701463407375896337307506158554225431024115513015145266728749157404107854778434133593534084959431466902247157109278720240754866069498952929890195165424805828533916952403553395315512240256726720696760345981440342567288143385127577184010848652119284278485586065138588407464734506987228186326344278224716839241839457382606394187670679296747107188457476858390120197596259649539182886842315833921444747035326539866129804581169191177018502847988725930136513784633068626664891530732180499207971040208414141171438676662370222893526986203604048761055254656185369251091295229343698340711763038442058907947394855899771649787197754076341114043302975948167134910292799982179990292921013980547930270559889809035229029598531994370440723125699299857293732586294502398041224187915041097768799306125743347116215559498343211291575142561276748084136089016505400540014962153211578093090643970499413584038364713381031433800042609277894631474062203215868512847905265587426288030099902039627740807042916729123172645915486653320065978018585530512188313901642797064430177607415552565924940678842768968973954849830623993601884580569602510649410360281477519443243619119798123699948877585926587794995647955817169476477040197626191927474103003905109786502204160652238992513313503134367557775797775827913258662680661112804599272591909625502488468390358523754299817215812057845180351259139812408900073404932832262079001228021526129944809835660915557103944227204626880472067863461023470109406467271477175573856298282987755847039481287990890574123127218511846724287593105683320658752962057097659211588184758585919345638158879280213926686354838019490419435274913778689491758545602115726188262017029272703090339570395738438492143887855762967615167441384806350052874998508063037027750134806265307484694010598139304247436958037004210246698073725204296228722291210304922148896851189509890701087503774589590196749843933247750436602062300686106709336317958717907039516191738984851661221248929432160141836883300040029500008157305238625267545947992869998326611298375659161390245337197732901642295089486895286198979389337383319229764841014063483473631565424169515032072975048898606706767303088670189722241783467828742179742398495883941172950504924938012155745006128073235616957848578773496109385164256407299645308297997813244424770158026162693293473753560719823126259656752067649627623684082259885014701049966783651848774098121732514981150127839440968032704200332735318455982317780520505174639753478968119752907373448710555124539218262122290956430829652852000894515429435026830359960246325123347934185480219262759340110060510463268628960049722804895050806722433646715831036412055703299808459327467280678349243270984793982330249328682027775848856709125552049515483656391932935253900147885202550340585696614304049709151059359241385881354143629641731501151980013846996077399384399111867300519834917088760011080240622547655780827731478044796015143738000343070686764025503351323635154944947906301600620695505537153981919804001134305991070760461214503472019520168812971660999980942630429987897183739205229286169601450447053340729052453694444456429634018356748198250406228347155472922443567819313105181561606679856124563594138947272036928790560133482216191272278839573972438357763580377187000366420324561724291390006320080695656572964237981389149001526511621070914476685466862334497537954838513699541028252606603358484995981878357204936909861364360420228044686014523217636116257622445755800664787770350008845379754540164759194804411061413159842117430333486765821674502115310932864934110899436498606878417028750923704701596301406829269315941120696097515224833876210793347664097458206578074140454544407289049629501338261727521911051477386270247132314324994652940720111213588840010343116773931804358100538340228621987037704348704423527834991416363678256429413337644675241016661551609984937623940298700541258729048363816610115115956123026656008476662148263529794043162219658923588724682933293035926445034628486349915827457536912579672210522306381197487004454318140636269078455416554917971742617267907661067572611874258788233144213337685851845388329408005927835783120661922484867868699287478858645776595698803130597737598211420203270580987069440103380290053510304390471244578703567414776021570989515523925722275610812941244748886243299032608607422727249965325744859005992268656960478737880118881047601910783562439024179729601680215856645907535220763204615731069642689285071536616282038207483195786464109480986118167237855171800578047652876132844092740440830306587217838357667715630588835095679860942588349250681948699084293044294267842237081349610193651729492135333769599984348541935423105973056087462423266011367051765470204253491119111507284027808385396816872452078165424026470670528155705377653917587004638719602961682778905986207199128413934080448141694257088642944144891989627627892302851854324015119861217247073705945309715143057842742404938217585331004147404598820295970290272475888146318230992423578997979780928003464921575593235904505142314897310948498324227141901729529100376478396631914759737807610429620682281932028608421032930251024230201894202932416237154282787185422735518048663602498956195810877236373319587495873987768237940883948334276632150741629869971356580726511131733124627758249399381310090750649750393028029084497716436111348987339781137451021287063107631328992346993952741037106417005767374548732317709843311327135257492242095732976753083484021124036602722964142626999607401818495467591661945606866177292408707254850736382351510266346195570179979789063919783371877083169176869638453845819763914797365777856408892172267393206159693705498324386050005724356933054336068557338209608774272866204333533215209745547766358187591427525484288720097464084615283444142600520423564060505619286853768519617326637059126565844007701674259207249437567480321950809566481884451504496864256303739486661523071652229981508247699906110221730417975208456628720667183441806933193975179278561215063056423388191007927553549369990626388319864518397254802016566418851533446136201657706085754278409696201939489489078622843149794553719756791087097995223652543769809826021561597242207407624693096406189687150320610732180486156071777108670218733681646998116330074391237574738440033550659719420134396075244569763575885131743632543230370576022442102696954350940113882079653643208801607445468868668605308812280107132225866304087566546187408697339110410346172170554662877094018029285132027783498003061493944294071385300972268090341765040572100069918253484652440372810837497379103082653515558110629801723015310445961446171052408960943423218354355295675695838693000496162172337943368025812844643459363752074227423514404035401624979523505078448470605023357230217742011801963149547858516499774119983790172402466447593059345599249027686120034780257597707104527601201195246830516170891909318866470338883775804667497621658266210051686108889187782440596929426556725575663501917944629376328320336316565076377643559970281606648187036070483874210058585742372105220380807932093809041324015974558384384105455006499472287425314981581156896516504018252149132679495141890294645217709139629213725031008209507040481357997460621024084120917229332533891160528922738106273479817704679351534161392772489687099148820566551332174061089611316428858704626755845607006502437997387035064269860612418568170803904043461253974581422436000754091548833594926441657607614198086504942983292143921036532387969888847665590067505596356467409646964400192434950352038908575936036784518773148249359319733267111400761932161663006966225682257586377228663441297261092036585242181446408199930297351098304259255112546543238451536255015912148210950758756170966323100522753366769892276631594927467297263567274948601401738652624187881329875963339245573419945254652531992941564921997479047198195254447001654391941190241354405786302966699619943780404001367630423744329740304069984796978516737257672712191701581486427191227220802620872665299319672571421587063097457128567568287536367153393006047322010983510923355463922016559156535007005941212766938064191395708183891077553736641663957959657127463624903379596635704230491526611548034080697777457825719433446786498357920939891159165980163992374739912139735795268869756239656931152772255609239662596633532478693578863923862197539216290567266160341676592695849799762210439858358339556213842220161234798149050730000795209851823393469143688655988296103701058918371421849288959343616610437960221624562408097917242896709617511831324446288736507290490446182100660484834760022596171419407252183162600337726548516031245432942556238058323948234789245371613708301390964295051113527537333954305646925275775140830629634671840642937338711575793093135154842352619885756863597383483467386288844200784542424364257237282429634063809675794322338144061402294185023868228652179811428838247215149682764852743592737609937658718466560522856446018426957743271255255619530784033391064051162381946243419668210977419044004022581987264553613647809023873131850793317879042427960257550286299803182933773744928189159545310651936388211450503112462864971621034080833596967488362961994746114382138077442142609911733823007453630962756876807566822855269493401052681338949394982024687617840147692136211484323862867696147968164642324524694967504058333764253900882788265306940328086353710761715030824543645459213979142735298274209220466569494253833624446993605225034990970985415413264443904939246822946155400262796070311807279053284982462787597228682071454116106246560445432405402762914498013735471051175970012162022464185870119006661967760309016979428900592122555309286937008970910555676549325240655944996896204037011982808208508337351093523107418568496824683705254623215940681650141934103716042233340223251164473427501871482521792848504503304027516473809413893577080599164903116529985797613264434367579556958938885332865355090211980325754772334139058052471547142810363124041029581684464008570482260313191094211890161389096629633944076680019661908105000423629483337078283677626332815150508786500205907820449171641313977927784186421456854177957154319826884538586692461442605520382624949383982626441476209426708858943557065017826715746111236005021345674697982128701465991072545721129133140646343129222856378262914974452954400037704028694803003383363794194197987111700072309371308141706262240984570651327907999167796101316068137661108452690157526027900964830022935930102468212768100477501211586820451166463006922581660958732838658577167280210676513253515651803406290429281467813561596890669804170000957215308506239036188864787446044284528276167033765262125148413531008988443832268669335674968081590554456098399374721539216410667809497061370446765810714393387115919710257266494993100833463259758911035770245091369283277605716144265108444622223359489295837380347888556623072847785283868146429243245476987220105378254347405540921949775642870073827709520576189006611933433773139456128559328099729270056990416490439507158079352083575846979623000469952230635183640093272775461151644489540935265362051684936094545294203855070195150882137744073448283834170496547149540593520990363259021825169767943483947783125011099666802946653866593703461509795094453038339379910690523801130289287866521815750440734084971878342529761231165946579022628040568674110959660670017638700094632413552223700293371018733118498353596558567481133454214928017677672682868576197356222909190147331847186722642226547706136846778628773117594700433806979222048607062379395996645965780241414013429220590811507277760788678107516986255767442624880155380876483093643497972304591367050900870643750207865671541604683473425498234451943987943830119750617594910982186615561826900158777002322532385816499692979891917474052561767469194763118735204951647835779693799280180134447934123983105179902531381486109434262386419862400829558873909443878499430447679550898533717773532867315919809669396938755898501328630950289123227756455377635294636735500455733409365243403453057493942118532243501872064785340363099725987023167600088506885775074849990603379290660035547438272012220824783990045308156513303414019126180838639624946871253686382734479279094775008580337949150655956377218911968899733141020722321181594799090344638610007443184096262783061882313381689894018076605955554516731900242970427706393549968022867488556216807276226579131854603801231000835501358796456628018504292651209451909956622309764092822905001298346287071229842992280401326843763942990458234390384797410327084418758098692115866751287346561296232378519046209819200731658593295630588780463138543416522450916494548266685129311525746412349296236016818941525222954031944620667306320343690217156211187945871677217451107428789854460150044642368032483549102599457489428326490678231996894396116822797470188505819565071661834497538944141199998533939715114969714495554369605564471169648858058399673682576493235486403220024723615575567591284714430457430702739956066709244896871988194982315124285942157759135144019092277470887050064625582016316450411232858252278906429747780142692179398469915885025134427569708841670282291113989453188245798533140528187816020542686876027166973771129798671737386367790324837403274955683952514715661802563874618497103910992017595242666541656518515432055813024204202176513901654133494570439256892662112421824158464004620188380040294363190281484894236080728351325919106264738901140095423628815940392272709694131292321349420889803678625333922155396223857417819984055146418257685103993479142707504251255830822257296100490385686513829058299828727620736277178877133122217571716024257796019589946853906739828956020007500959580770267076281073388437487749297873105290991678424199617511710953601168594467251816865806803116268243722452368101137030305137095539451337703417371667007368235873398414346465890776189358417413710319307500196328534184705186125739687369396178756883531715320434751316618976150834577137461365804780090093023605135113896097846543393581788044943644153237185679650752303342917466327126867138560504947069124876158918328290373462136338581822496505792658627954422603655917287401963679140531418992381482789786496203225373244266583102370960735853047874260760636829045623918546981370214025720767074146041804672790930716906156499028643293653496837269180439085423852432466676843866964961218942304238821585578188781761308404682398379199622938823671617114535534976697054889783859650438032037986814806759596615867865516091641573047844688445295172463746013672829369978171326752643935981547756858519647427223212747565436690741208415680835263595114668026680894781670248405338356927449891644599343389344732297728507728936452723597887814189487294038924199315888675310802369014658482676332028319693021766916107997149920325805081598711178059354773685688132106181481016681120490721994607106339354413821414734420578245169689296098717153157931826635755018073907129870877603810317556269039162516193248459063763528931553315331527751985352387873536722044009186442784305511744383600859324272924076016608820617002598445683054174225007682031455083148482098854091118109137323052214649017767905332532598705138918589416405799796438394930378315677710165169263984518826076691809921833334664051773077252851724603134105181169789893045145212085438686190139228610464046571694305137795387796258711213518387587780125464469154632598114180419413986055172910662219654699618452963121972263274155582474174655959482794824601692851060360665486678135857746950125773706058826110893623034255363906060395602280643123198335187053666332396133688052880884383925793802728320402999710833853339563132986898951538488571213802104817129394317819334650789222182790692090728051817806486199390991051501801507816686044275490178341687693965177745932297569278465828604477295660846922629898930671161806609596629168431534975675567636304958899669425676873228988239951875481455513500847910647899542573298510688285016182207523740992566329800957638662931494202305642686884013599774961149137968303382057354248564030588408763373348146434734100598409451598737246158682936523500644189171136866011957281312643431278796796330025848138774745825678677939990304305992443682304276337415737531263619150982605826154003779381744529221903272886110913877101589244818079057764773322934587504998081968226669015860994384853718050443521572065029190336978779673496846066896500397115388228368360085949948234340370955897992299378233269810437004759772281094758895719455623587337468042326782373678776272206047785197739987564259364125124265625512315676851434514651277026690649295294089499438922066744439720585935176996403740424221997584845231047791511934035419189233112663681104882120153644025437390478970497617581621969125823509312606913354211277995473126338401855595924467133765415612333772750238912558656747520797806319443310461557066075580780443233399533029050280744867565508265553385207616525536879501970450179798568000832449023835796442160146711529142846035159438859744343813973773054857577125781066577676670812813316809349079503170782202493951489929895503985419776679972237909598372315161728611158947998389408658860497140519501402011488921201078490266671376245336333604572586359229629577325510931119818405956177223900409242552809781976515193867604619851640212986074429458355963144086525936227577343003450226651246688140550255346052002061919551299613318191054969147013096380547898679954956160023622751318831458186160273694032899984691512311430631259513369164104611362292546124571172592446618771362322198678410377836108117378976304401125125972614598326339692647681976279738878531663162170129986051905687370621597753766376976484529167933133306154803597884610925467556261380458764501217616638312594254682140899206839058799913598826972139117014872888605690643358549973913986555463943481993493177160441530196430085892249175511772086846162378400077011834393154986760200785506784233367686139897182839198259354699520079566876410836674782025159927953171362517305653471060786348758350965316589439762217433930160644366288907162680056824576517065198536613662860732641341399819903038527638270262362213700132574087619155727421349494155180133819004954767399290053825617255396965459892405555408990206602451598247225691323415125391667027179091386616279104376146936116955683918985867715831661827859943263303804300865523820636591381640058211482953681875472016925026919169655632956003117407929793716828493081038621624586114393688272895140251787647244397348989223647146341688508198708179575713295673434975232232497074724824824914572035360170559258572462444852378745582531313140318634557411861286997772880054499003349728400381863616745314408197189658457462317564581192458054017553439739773102132147753552843476246878400901721872196380408192913834503959595807591549347214854579624662379083155989936945374512503047187757133970900569846866779129425072177394675558663014560806669178740393629103768260531907638016043141621514578982154697542075983758261029876100198344825021550465655011018592615826593293130102704110658443266324718601341255545282678995231255442345050351508538178696464471496380582184077078080475142183513018611674085136411424000367696861176493791992361117068837889930558617867503467045175929933024223611289502499024692767047542117250745077858588734329343978372858240109253225611614050118243517799139481903197687014105772900982043596116357308528857141571213717970040168490946263215374336126157287695857548474219129557436208881227368029218096314820360794884510055945244031538038171527307159909058988260877828267146691770344502928983347257760764958317011251117766847702173443680552487313514829656154991399152150080584290539720412081451309300481457316703393655874826037240758002559591202224205465027896530934246521483166763262946495915426636861032029031054441114095797262051581405288096857561725972314598008054225484384660463118469246154570181157488492253335065381255634769698929005303743592625564209179530895050537247112670343348794636202921052293233552572100604138322130065824202044680884577756390275617789891935725824526964054262909889041883989897304853972925890227985099837484068650495252076590912996153835539290502400242355519842099504788845892293626042310437204135923823198705576730994347835644906675412195832099406061535387821797198360220360028356698656945561231587874943201854092223645679669076598004823072094458752951364689684005189167832654147740168366681892519948522274832378668226864186189480861233693691456088892129733941026558777641878077532360145257957121903249455494221624917487334846871374050661971253759136072805915850948053522134080872575822383688325748380329173525022776646465121993275166978257851684257119129818710459516919748597908363766707421753509316358896203846975240812969437931236312383039235346091349165205519079029104569048321999715853982166871705373908178288194710148432851189330455193730223710212044330668822865332585797311082628836237813520001443176933818360457195905317690666874913697835558030331597830663587109988429305078366938780350912384758530424456619996277536490721930383193216056102551916768773997119616189961840036810586065818500733110888437276395938004945416241984623841216065112170807622923575406719351996673028107404646939554200335849191889990351175976435108203692078360144870529190976700759369338427089771591332087700160569209538449571544640053531934750340625121527051166563555938200060059549336445211551488052371490380397652127676548008946100021748822266908091821727859201248545774162565517964987205112500576529431747074839188003403200089172518108841077973689955311561345013257852451470580354596561345983748951542154802766766023856565012336105924580983836731545146882313340038248371523679616839024820417693587401152396920229305644124535893292481443933665456301400677494564310962399014173432565769084704225783746335496309148533631377006995418655344643078243037190447448971520521259889463933280933591536444800752076391957087564882809224103748657661749686380886088384675967363455599228291421194457457835780992350329426968025924012417084722813725793789516876789319750523434499202393710117537758863728603042843460673284067832290529877650282136703086141646103366375866572469235842332696390365281865408170010511024486478166590110348432606691915783876660986119809687248012981230059335332288599709017731936876517848889109278253053923794194612045907422095331820964095158124950371965108623426695212027352242242277514093732194598684273433659264200707409750554530975989514786577301213232096656481774155370785360657535637038246287397476981576217524175547516139777292754935768973354814009553538815747744597996807460721897822070961228142837230478354525287944393438979192250180154039855872053777369912508415696918455316008567350937742947628316238934896482821269083511414118259266040309327772404365291200241093979966757834350261413476166682069398327542727878383803490320296173719177532869403258558338916838346136088033148316633835671700505818940361017936366484181584764358056896883762676593111891833877747281643091531065956296230061846730420076921347384024468158599579270729330703629402576154778557770578390731914402310106968880931673263823476985154986457385710096944974314248330119099636566584748233590631539020226767708101974752919550305966838995856970693592655591011063563966774633700702528006087655966262079452701785139071232795012006603233395447990980859635104128866577714976697500516705514477903118307173513255335240074397903541446595071697009631362304916745334290904592612687729675781490654646606884187862209339411467665179847221885283029402152430822117648795875009767703041021677564770567278339721215821788910560107532334830280151733285047708660648314079964759121783902871730262629564988435545376221878150714702973288340516816311858464484053561649660079775257835748958107172489220759981815579750781956400223440087420737804878527109363123318633210903123537240776504905358687956615475276860151683962731039133037193895550856503942671424067635131880437753034129476237457099946446818682164128252380874709305321121430614754985492130527608133569371122446271782160303953898038706054899003393815102344852352156240126755354229844173021204911584263577118833605130303721180951432617857824255160423767069222867797769252301943328628441999686394458649949402901981740696190731628847147032967402482520237745462547865484257603253777575905934732581855517014752358733578179252432791576695620706771059812462246231820116284863696877077967027470888147675222231400365453619459574751947688388271028553969301073139493336175514481775890893138356803948025847497746611186421198243196526496465562689908498421132637268454214516211994789320422436388890747485000917615532754158394122978058514759518547343817370763671508594208217359986279095829420242920088022057712999063019789342419794372121869394034353417733099327677465084634500461894769329242532687444947334129318004219693863506262380331845623139326334643176131545345989830553212902961851269815464523651363379414316080067425281297103365682557514683287784858939119965073655431590500111019885997559346331071229336125617115021916219954413678570391065661952723177501558185702850306471745595220454772808277722756991354465351425331061457674043879538245788338277135969196775999207830854150527162238227680875953077104880202562670005807937873560906870652079174581119737072504029720124105537607205321193198891098093558052478663977138973253691954511690166763037858390078384919693359964768834632846370608093410564212293466814534829122322965518739391919115420437041545381456945283917342718146938376085774585515035689079612169595033286054765929021006164743909275073803151254775647221508813895341822343698808430803720153857623246977758946263206301773025364429676773751683135899297102456574272097050179089657235914355114076850771148626211671080142464396862198201075968284030606420536801686695545784354926851924684360784494023230686414597614174365172225581750815810867272252656598841387602419464000902114578963026778831113165024202031022830176296861088632088003996305136980245590996257743148205207885875670734632290889109548464007054462546307968330911049368053800380446906206383062205571756804170096228594309153768291226406139408299098054287478836843139169896387380189200465546794319445045454140988092261942068087645459550223798583422625805448066697762587356828915541563018474526035870871867888565654681967688301951090879298470882409855976237450504554854198944625891780269576153419028826504968328179917580281520120657638288243000933310145970755711906042257513398804315868686467529430168073657421152172103079499485392935817258919774387253945579593124200922157546827157255187973343648933408315359893398173475769264163682087341121961244548217916438915588040992805608787983279933476353253427106521207925708053878051583471141069079483919147001750424535228748123580909090999190430347269790851710595545580210764121328612119366039995434481964730675366683584244621460836535941570619027173722472888874273569039335177554571462303477935821584440274025946478872033423240076172016918471608059427342997536959473412121589446827895100381601853058793504879738769355672738133682318752275542098039591297904474082914700192025738297464720300921506835576268658269705972346202827343155645081335005048525378170695940205523706158686681515447388759905454289428965172683046042973853109077368995321492340654270337382883783517775942176465466751930841005674898185709749350779761204904718723801473113640754353226460846828434752168976133431618807758172622858890553784887394267703024336081045406293005550999669344021182768352761782509797428386038555291285138266116645662398499689421050455946185045954363018540108956189633650399983847091734387050530149603480779195875879649230806720709041853474215691491584729528055264404910968750882414353800684258445016083215494510287277228548032420996175975312328356396015337488715911871894784351041661741829195323974107389450839784205004642916251423323352862767370333791429637873037788581873651100931013377137644271093037041017329543730479435846455184554917120394101291958357443372192750447436311965251325184974249390815222317455271928433994643865798574654298244185846925440852047197909081922946097991966439677300850419735283089307888964232209847344333329892517438064718876858338811911379554803015285372586865236720602063856747123714438476094842824340307748942515272812406025994124413648098548827015648031140774367989896579634990947912966150725630339651742608992712155749146172449294989527106009450751076285464708948598724645197566057007562138442279215497307107737433410137359670795068624400505518152305952752450485620153711430516480762103620385828371441049888630537192123339052506089906183482263971591924519623964424422562909886426786836049709938707965709220209005838986507659683344267699785677883786245909023559671486090287923336077062468986925962485194826768733946503983012910882219905545801688964194102569802301304509614020040738315210302974782506764121014824464841860049516762799147129060534042986751952632736210229501963392566877961715212783417346487517029975583981444430953962442703264895989004515414135410922454689164514645512232418451354917412570531974825361780624949180254109675959928040426801620787651176698785316141600196688326972101637898695181683095396339328265866492871381519138620641775590362731529929896817506952548511205577107770276144606169367257704042630036250597121705778023759783744646456478953515081253955936893765531992325409212029125895057125640818724219721352891454810393852947889046360168411267939960188160523743172917951667399791761339835353578918252292457357650694371511894046436098779381779451212324089883802020810827768930931135830728796711215270636982451255916617307154872996892244913817382569680800098338439391706439322327167097722805200240721055031715598648792483671950242921701745197777419819909208334184588762213973820692026361098546365826614982998892717760822513643738075923830081878955749562140373229212909385928863492428650004856026024009152934684479684209223398547727880073460651452022086197455178279000298158734360800552747172000437729361258545796218773614146356114466335888608550339386033309367968785711493210584605910765315094407347001529901868480716118040684612451845443378707070664161307226402539997351235414867185783210794306207305967759987717175430775417962922620811402983143742928310028241007164472801396906176285336745063741230928170092447941366730927796486172551627428155137377086491627244332463943958736346571082615106501888034980677286800365856137778953780434941834588264381074513258186106425963552507566285480091376694422073040407067660532511418506329120802821209639726907742487273911985405074786077134079893753358428338110279224892954839806640569324965203212267785697505975940807931383894521622534526585239662550010357278230344894150934270166618234788412614777349633816236167823093728540737350571043559776186203857622893189817935880032172853715115711974147982516713056968868191753826124423126512498613384192038313871025232198793379099819159424860450348774718447863297009258424293865383365877342232868124874309335497077278955883060995370233165736679272728598963026427794212770683231738620884278205271195306261302155424210823639225693683186729641434752495800889418197506387053519991887258210791213641208742777421091196043041164520043874496824029761164716981183038240030271149739963937719512027557846491024276501817494027375987603278197876467466199952698432297939334091538086190668027332182703591944005991593108319108753474368872530770425239537926529395838775019343969406374605730928581713936973648002450061333354784058777419948359689585470340922611848268344857703550320627428453430388425452763832171034062328183177321689194267719354578724632163668881636864240183122887646213252960074265381235030486506723826167475844828694819142320251153671430435322078550589854403633857184006380148568341966926554460612041895788832302331566396145026633569128996847224854615563286418183060959322434988711504102422139501827884317023936237216066138970957675874791601298433188388163734512084523231625194271194975957135100434302779338271674413535544286690784181702615195046056444923058812259604286079653224518740333127238568662463046702924531960186586551681345084181246034260370208019949941044768014121545414458064600485549325173105938313695140662045507811402014979280800513011922179365801437551573181420228435933365441722712277169354012335817844614818894789714449263104025500989529341535534712759206331242620383093502567334583889741988061240502049231473972797220622167999651057389536488971787514370407994175940317957741214209003192364288002204376508357078960081045119201677526606841208849791528001382619614463117491680275914599928910586415326104961756686234075521335808476261889557710714753997292627372872997084625075847509158558072940926984974448992310051953478792953787791296873277963113984571577769687364146820363366114937176627690251471651546814213001474591868952938075730981620197588518556222218804995279509073679296173894178584004104142173563334922986454711179461745145543830482099838053509830306910379770302097885735801350506704438831506335273338019281213653993051205659544650506833814602042164967096964171316746467923355671475641066707725628165471714167295536266210739575976355334211518829432191217073777741447215947127200988367232186777432891720051213180434225261781359548860309195167865143280379415273720114240986940940177278084750200947370335798321941250368974580742012415114345120811704099006162463526638344522274368136456728529420041413397169612575056848028544718175991163520565715191372465634773422880042087473875457900616928962547455956089394442901329874598982111466195065265395368745476725512881217418156901302739326456693354731793455471605935592012290185874150916056728422901261769481933839676908674501738425784329077118534372188712722811088237384555203155089803373802601135346211658352818961592568981922937582833774188061639422154842902614413630847356553123379224904162863081546329133489986959983831620923066034884370418269384670076761965163916827536590800378460911816406915132290427462839125451058129619611449830393122044309017405562590515102921481681735006400905957704853924575006302107458431004810153223178492510455130772266814339085009304373176829751361826194295029347666309149513746549668856589910931631194602489478127381450082446206166124952627806709374879929373451157464326079910298994238136726766461298596697816716839419080688946844758189063296908457962297451964199997543194482312334317136117336013845941386224260136384438363854164194593381316863051304924301865620529049671866714729503197917911021458284916117469986758367229006047697412537120540332912627278909583781185781212728222696260207324402041989230490758107414280873599322407522946255144147911916567050599677972714767887096056175433703782525294815177319654371061168708112919938445979347139881626741315068899425551499441329670170360032136280463676169618447510564932863418076160658726377872891779750730741123177377118931565164035926703267167972885657079549361931695825064107953344409306113696446218298515983446901512346665271360620339450426021828790498947995223549179135995468469541874808741845953606119555506227146969193271200758629761661047657227428761526366307418593752101831482706621340895538755401703991770913665702640520915786418549900948184232468161794968520660187020727799583806884296232296482380262052668819743705528906599873057776761159280280355441720625752694262021542087438714563642413376009031031474260935592088188936117083901049240465476674071945980115019366950788200509132429460963561361101096629432914068030603834541616551456697183337095479775330186549127997827929054316949284981355560127735225600579405397379196968217500354154314756263889296583535144956661255396490560944191469832496091856792725612784731000182689858321449015834286729752583453467348792072808333579716724128072878464786401228133098652362559006671675000371572367533028072848358907894496655966790129800483150651474475762473433384686105351086471816601785857605259656027088020227530566235765128788176633771351277209985052692252334174617546906621636519874556232634348418735173045926195548084460672751412151539623558244696042714752457407258554843575110148105639977989748179170197559648520066145965700006309103689708244301260535552372377281189187127213757574230857710000093736569277755362707671360365977168486707916140317424444055760254062515122333188547467741281317156941659291048447502804942404013425761789856798040055903322942110400585667157956451456899912039632492600986551168488815606937857480328199401421999927711091384642530224457263947175521098249332158028458912027297097466694590544082629871053378566781936933768698364778622592848713192316288270069977912092193055958372376334949767656889561236192635180938576738385954732745978444300445388951722342264117944464452353315225128711566788722283846870796680035546744415518331937092919364882039459838639658778747987794615497949513114595763893728635489247977826626893387061788047105701257381657869368662264845078160562787955776925031072383663055303358951829484278508444350535777664455110165045960703971143126599758066972095878768591240505282487303404575553308368429978803666868163810704707270530446454645088566156007748527468621146859986218371244436850330427459476975391308656887245078817993034899634958422946046499581628732280426352281672753630341913673896887997517063096259133236604530194652672348474853786759500556014361491516649717446084175810941592954794743768402408694542757582482566242775747784720508179050523517920780144428894626952542782423837730285044894615083686061506859358900801263827264101294425721310788514943900733412951075541848005082178052683692301928445945159655602033403366991110344222863527211612372841246567641079510499706957078597823891083499818756421382512121207959382168642829085979706877796672570146806190708066317841079119911999111760489967627657480925874683778984033126213516164148194031843526828691714980449801668287249841806668357341006074515582281018948968821123431630103906433555714406237393401344265267520548689181433809467290519139557259649660255115110271681171818451587605281138372386620745163396616174620606502153104098032343294215636852474920627263475006813926263518616753566055648640105232280497476119718355903223465719372451144697547786523588334321417363188037154185439387572209293766724672016214685956929321145464193640075631120476256065393057904047255643041282717418296302941580805206284920872339113805064638754700206089016750007928285302069984898064146027023941708537261112873670643032335102972383749547349312767487940081796383379003008449384133503074292722353332262762193361940292512796288501530552006575968226502909234106919728382650684217340592049693855644075149599750841207477825341720420802460159308677429724666957552128241496103220350986819404786645731802109547356352710143449926718201071164511824887698359182093342822842162419033281806917575174627346264616954152172644323830277498940974200180192118495619450090781192284661325718586261331248879170084615398735938801916417111573705529496298511875487804993415974708388748047749229020376603168204033884219043341309729076866365586377067535664083599367687489205409173232110684505455998330160004629567049534025964447275698570565878487813237149089460675234930218817886535506542520709910629731078536547970705197078798222545901233649773277068505062790282568003606518863207188439420176528750890217879805320086432719624584941891182844926638576219273706975962596060466192596817026241710265589141498708273019891043681944376486596967671023184327604652891960800587175585954794983714633500615968822869639932629191497179449648262110716205626155806689934137794610542878431765237591346739890114329071736122010008558319973051976366060204347478036956014006530246734232937047472006953425784414679523153719222048901238034728744221973509442711553393805359853793421419666355678830238669741747327212705538518728996041660366663490691285701355038510685124558547503834421650886577554664124515000549516614581437790404682024307506552615798430655016767043888558832563034020411485991911993169800750050170749685269321873401741160285147384871144350513374974896315918660862601654472510831306456265113723779883887682933658318998363084914754938111827513245252633182194150990793629014878653313537191708621687716363484513207291605086753013375110038003559569851621606855686226655260731897347766815644621583271229580364361043411978646683228931280160881848805439255543343578637330436945012482686216320366146821190522768149000425499098478561638253208489868432071491634148507935080592401201173705485620807783968156278501214422281923102250950631101624971581493482852714744214790105108087668232498429488053384364012845838209409809959577493091868372913831161559473194576466497792428625008027437860522125281473649727846496949691686676619723998332613259961414237281080851308427664527651370347859482214292244065316945817898995355983229454819728928425679853307174055982456080789020366418403880198390297189143297313954772033664355743421901233456191659876525401227152885183345119197908727897403854215934370712517486672123487874219387926807131981487746860824001785765250183910614319224171284013632846193004786099861274488958852994776559689060008963075495443259551383918559280760388740566853755824764852614907365709319045383003098079864406526504902663086786809072479717774099250552265288214109516042898657786545719260834338702161331286255423639346356476455156009604901615046669488717542595748501766270382470805645913435735603526094073644082670702754759664315847082696699623381174373960033699718196648098818303307043067065971522117000644295115725245499624259085333529501959731313508585384858301193540701331555594128122843215596666402984468338262835940775076002576219200694819679083714259225544262857312530596798491858589432795855590684022128092798820646152250965383941579519197292214600208445018021823605409490581271492463283515892873880048231511814768138256788873737586139745973709230332994630049538080637169147142344221846594371831642082459682910166882914088363894662607340438115289164041777279583146247193594855426782934719813313688006081938721942666427546639143647158349758497152087818977293584603086612859894384553077948899776352014059286734870208544250423679606253718753890116760857740143268338579412261465464514038082907961334476897575251449523221094309019229229241184310668035420583090205510187753733638717645778058623655867152861834837194522188262149674950938983538921704504390733401289434098098961275018513494025000813057035072929573784804133476736463437895822121360623081555706307640910410693546641702515044403086727442806768998770115729153786674600150144839211975128495339508828142513038779640082174079961726935993174186303808560297449084800778807015958925388686390895202240730669208975057479702971377734415116503229885773554686160118617954767297758841604027004812978519308830176287443213229702532060524879177948936897607996618365257478672571970598987474022959671928258072295962842614783914948997957564361701610470260695133749045663573979303903601384150721800614980430720602746897303746079589041675947392907012190705788389486112848173346174530809045959932523928926251363463457992032552123774954126914723476265365470107463026645593942685759696412981962999930982290786785119095284836805431640832833552651833381547152366065414093735954089714558916483980957086031334745798882781896927214113610874523186810826894855608099928686248806518763313931992642637280878478646129490396141420142403279972399651876232185487194657663357140831426094913941121433895613384000100099918737498932905793476223764117612875984517664829593640542591589490996079768977870386214346882211305310023134797927612373760015924884146096433829283058186265608281894312894154428614164949722966136471697982950502011966985401348624791087384657278485629750398094678600110804439155849166419775647013251834521890757792753751753788032543824933859896962403468962580446219558593631555755628198075081902289073136680686879319458902504073134657689144062925201922013881089301446811778930390975466032558731281007813085148111554011053573457066763299757883034989711122200240499087264179122982399923048639887866284867437924141309000106098260205400722782115673937458881576895692585884014112551699337934884596058059134180116542433184154698941407547883585442405119276662857017807636570538985547758344624715100453144844902442870399274184700391767988066295545085209913985338591584248595442913478695888190638067348841819268514900499491249912718875976249696139526507459053344610429477695716051841130984397603683372747393150233633996066973211053124785454921192835393662497834878693130441962212591855066193703776884039727124870339808985675920419959063634206875840152611679465427267724801748497794903978872424068457484513181079661415323932020859843917714109695626406476935901967296509247482404184317382311743516341985114370729650970066525787414676478271822215022610286747314006623129855945256737921744838353554640101145982846104566776542326453741716325103928089468413058141095844216415482673623166083937407135872472624864897712106938797917824017082930604706439723836207508492650815180191096664329489599197041584132264514965698636554178942679701353177290110909149501213974768093611399638808289273517530138517063258562458491002794229265794646416927558172294441439750270474260540886225170157905225119307548292272359865574480854094710287037306693421325158918438508471396389359896720395378918150846251664164638371232899874988990588503085834110376526305126132610731485350354140326550700706178375019393487385180150377017452743568966663817434127760971571585028560365298381917269485202937348038311075494532539601464668662817142518009032521932831758678878905667315993076824708237753726776794435783229822123123165906959588306313531823722642693065969298821421829957905636633964294695022760871718269382607243663029721794884324527272375597464116334287969670597890325350187150902899811420697580155073837911520871842871456893207478832108046819485733494700802160638624086327924785978944942883727591475471464663114141386730319802778039995566259073579221382453627107883402456768592276000154197550738974691838178684325420967700725760043220668900785761407904045298652033292698344707176688730094346187718089206732034716121645621688522181569375002295871067285795650254984674516184419833800663749833684260115288694319131731951765591697058092229874396773578739649926919960279624020248061840724592406469407823238282111481338877251712310588253357995959061509312171060596185950087129699116263453077826030772873431725267400260039154098345423303662059949909666442671656875538254423571299760750167432517117388675972411865996410295306006807878774537224047428816644573212819941441568385251040175861697149110571018730944911543575332005274458209951893877158800724637636827528069293466137872377904081960254068954261790490648099168034985483978586780711024129078869669861111257958936192649970543808925611511770879469658934940280061455960518748621890054022548725520637473793903405407745803555128763281983022903267752782433520622316946195311160411559477319443302497281901459024889098967064152513255532977894024338941064424405228147935456199749716199249145105069119090393125238163294104587863249871444103012413609614312828906138226267614107471074735411907582590034309355385918864637870154900494305427157089304300990150065205160884167442312065301932035943412877136026530892586609115569196753999324851601772605636929756004454144374444736298957470602160225996833885138761759112862327122705029429626848134987740859422666241731000719282806867156631118429173575464647272051868125931465661523829339276467207689336964104906590794187859350596525045944453094159996044223581336111925734612937605713009406067998811548194551070431710284072664465503931023922080957712423494027378083653063221048782228766513121707617540162094294643926029216838311088981395978288277552308623851237172899096394552498957897674877106082148100669309523378980968704652936460977450704076902644092891608867822153289718008212540478387865793819102374279858768051707851950087287225827534786593034855163863235914077335344209542083300441196575591790036652063687240225719232252305680265501852015457681497988920646532238950563098556904734035493415536643365539090213754465975725900301267156878070473661606955605473685421310439278872862092445947077130672046061996290855180740313179444304475923426476185263515132267226598613531389296605780085113728238653570640365297056713127499863501164819757324074219514219179342554586284339270334369500371637236810546755566343373468981117256678731516523137141716525727318845838326169527698025336871196774807995559149475150159675471205831630427563907248529777649640652610323198221023149611595903179410908393367459477095069644753224434288764951908546664514295207236542613793509393142274115160250257699554630273832626965778844432717956626060420806908245375933665279052277725457288012485479413027182419835254197916514788676924991135433185977556064524615331440056699628588839421677036955320469885126722158020341807330238991756838112931575442023834531047489962293212670373933196450433666016829597290612015620728767551030815111847515316119856474712506527911784974521311319021800724394750134003773839058095163097149376668720884148854049404310493069962673770302027748977535891146156053313811961990055982605754235611315095201446758850614705143424235715980436422103072008902014966766865171578424151550166121609057905839090474086710329240087376451250708192819318288235175757218959848893725094380650069903683581035954956187481713657194256496596485578385868875429259724854262286986463805994760136491000149385015978901059925034386110969073480193682910099236538936489554843690380992565445611488726775260639362442627858175969999655174468168291213875712425998736886937294285424473903022976654299952060068047740177265765524258345463498431459725645160977365755079713256326722388885484920467769428387181358826675397874190522033554651964391010268246780687448658181862204496608472674372092013306303596180113686204782654502306090419560223791273198414808271812503311762694510486251264588459115645832163081948339495407818704736481508308774359130382673771651349551156630982316874992880873868032052820355838197240439336256499744566121103894174667226789908933594870448105911930190309303681138858805202360904550546185341511798109228017698495601639653650935015710060391146486704014540234144323013206498211126208033245230767641871102494396800341141959390350542991075448527546424756380640225178451701796459981369814502595128245688125960404843040259243430640228300927824636892478160835086701372376213158738570320872466440396005204835970457627006810381821622413385196218804202643743805500650542179945411842444515648135146954484665723187589940126639538929110660712295331676354751744960726499555302194480932695575080043877279114967667508200818573115037351493128638979091424061628050057446920091859350852815898966617507287755318982046146781464446019649497747898318870633695835047949722338613855616790880397704480713861381408289828917324314635384641982262091397839244843524715457765232090835936460366980144270668514529640699420916991248020398540126780915862546094908722989123600278276079299370467331405924564284360721626164678240502129704811541187678202566547358681706384336076038262528369694881883602517518971362383363749207330568241012165357601185708857581367856863178096760469863819573283347689159374076967627885058639996983864763004735229160709136809423459925459988688720687820525946269827040170276312545766875930652894139119254199213179562863710163832936371120360691484813433126991144682961660037989606572184114268861381398962303563114361725503469637174568884475532992584183590357824779453172793442304932137845217015085904617830025006824311880362587427455591993694407947197304703232360022928079729634291797396840903647964415279570793642046527072040446498818697953293001649884603374124424132622435877002899770404266366607594511256535832434283393004589250017319318955571849878748680299702493017617818658728742853537807066818662771735181012411606188817576665074463453022890341532201501788579617265637394283166784295619681940466045129836168620113781133837642053105358908161756346078644514367665981859018902249671790117966864287597929219710527764742888115100682960103198089045650231184592977272881008636409392570896015829412069798916650357532524336266796590939975892823137180942377763667748089108502505988293180222780172924096903774126797839962289848172344585548106119733148279272998332162938307130226737079468803474224000502876503556885121443461011034431346559641396892030249768048692206495335479986270271988386154599684233349835986023628711393327688747557687918829116410391128397692954572049927270325266344627594531809797613408873044835479120190137775054958821525380863836247050184915765643347354764880895626115806954572841197896836975029346997937076371676344096933402915618252157904567904999590325628521661911978240193715120471919985380578701099173424432335944944215523535458414880153314057835915774241476117696736978661770453073606497954161298453262474698599749113333187531664454778383801540454715497384947892470961512606584892685176694918636025999685610279017038070321363142860076486491324634232305876307551781577408297813362656072341607812261217861116946951541351678917381329534194943064743347298048435353924680397794634074255733656561999168291794772210676370037170466991564828868949453738557026023486980827444935301331996865074953931041294434980502294639351490186870311202035069282180491115294547725743527798702718855350759010455087317661385835246173163634739458416296064301438797226006902194860024421483696219391404707364131042093137863440131150305888020695831984864835629374325297081721968049972340713713642170214867837033287172176123114358117915439131403239152306908616945348683967002028093136363282104701682755996974440722147190197785340284247689589179844755363095256639120589415878867477278445215901019761809414539108649203471937427788440676028433248924152827324936021030870503402809387042539636653523464487298556924795744996769716682978886834291770277930359117539093274438686438452268281651009072578062600138517471441858133913593369061549116119833048171044869019663495283578469008023167553948678818480406684913153465382854136515901671268626528112904179544020043899925449021957370055461861023087606847728799341239761687496930307966385838368868486053041924529832494781027494467525222908632200854781018324996898040740677464551767740768895133509081934571990803232972872027132612270053728062475062534951161990904982134480660941594488169982827096862291397710221162026248019291192276383825291528180207562165461978380915915081229042441061308784968203587471443196008707162415654281253232043567582064620518279606325746896552678154345177909006447370663171501231260827185281892896065079981823894503981506512565564989373109956848115581204461986757052167854915218533552212468342255137503118414826424743083800979995794770134538383479915631485922964259223531147826315143619949147469933498117323040638235816585817581524094640019413194707705813469436508079591205780508833987387196348534607869405050178819126914752488827243861009685987873170012320929610604845774277188417179234026682691306473631021785009280885851189340174434759100387544459079480883605411954793229164588026038450096731405284719863234458999458357275591559499027032845941489918777709556390978019850349167984494389891582319638829938787294820098598747041959187699309979624918861769832486176980159955227964093703341621367587308135503937669358183211187786466849300290597965575130247427694896430680889989492690942606575486372386348363129162858909416786256876534753779033754057172818640528070293496566670618407385698877419710867170393042780806144900167963512360575919616703100317489040500220480924975920647364830023749884660244302363178036841777569719848322973674277851100489354294318450520813268378594640257091044308941613607448545336198915163690468249647294337472067023805733267576144785209257416126505503092508468134221861670297406723852650166751431997850508389367761615106132700051557000778272786828672994524588285684376110737791902719397126007883780021010038241983825732481372583140299293358587127646981031982808080793949289574887439277115357759516361015208528349976141585103794061519390866433957116912171937770227037406609920052050310938550801411331466011002374860729144043475323032067511447445819085656486584537214781714662801995082703372778819978452291214326069594118599289480432253447565070544172830517629631473069463712460173126947391386344432353872590819237618085070136020889281758125629513852344637589076855708085474234010291191930506324906474954791971434510232859411827591892557933009945917733530138432236457904692664932027957351803001184270860469225330271888946623608338976981765472931938260037727253772352530299865332946226491643093833106995615781832782472191156904816476123219489440064640198347710783063240652589719737086136128035488587798934741651560959951225249843599268241992137109940684804843568302766572659732702360856998119244614009703990642927178258116013560523632797772721874722210645693980036276226129534407960602684997628781675562348730545009528967534147824013587092222816522272268160383197856714189749558604142112181234775757427661837573261000407552639396349081871923308448252070078448813296117532689195026451065442236795527088797127333722649963685584771644909907823808954176151429706576288765848957204454698328674678423328553293641985073166202047672298598446459828495238364606253132978578069639783806577821765886146946778340369820686893386790926247750494150948614778903626242802768005355816307299058905483721637026317689806305100783565609070787698545853277047978096013262511448774314177728374630146605871739168900255993480654291002116920071603728398120527029944243869995860834887090284890573978841828111516846999947329380963342495929455058350002323771372673760550214720673754155891894511244871756170325153514393872043931674867493671872255028407629591942129711296794460279021913514404580327381159496660465341864149032772507964413821511543021255572679274292915559616677497764532946209244351136450395382006756196570389324570912428454164164870694462964153560211676806185133397560261366162120029833819025938351434537090917764431274392745913045915938376305796881940306097379213826444509658007045435106054737653264098037013950099702358142280271202387269397657505372067894666848702621504632209457934830631848019568060383510193188699647247103259067442629341000558745286480296567764200054142735252487676955084943572404923738817427897298601253308295205915065556631612477120461380924955178521978929129188481878045320032819922210176569382384012388033308310201723736471743634740621533979413870450088428046078578000586308029071593735957807764338674567716323233831955532229636288709243178910307161617282435481506526724535601479754961002200848274643395159481595246656240238520177559253281679179469194514012833392596664973507478103016861177169100495004878559246508752214321347003809590838396514149424598954730429509531715719976594009312726177692785358140790678680617688867851226607292191726533047957547605713723043726835677221746949735840071200869692413702825277698184876744858255145843565406152315872550860565200256818027794433638381775824350510508546898922134104844236652142353806693761929245574245308763338951389835430461464555877082089060519229501561395046282237811745096819685309393488978918267158314735400613949636416410065669011925760703969554485347085817144615515720129511236672771929911099629225568967332563902468595653892899671718938236226594304833270764562699634868738000657797959458103872440743646372222143829609794338148512540976995982810191311528188451285426502776445241782927407269348723852454158422031303676003525355627484569493776930883478624418866520095835191727714487511688218991331223867239948055088106413176239175336199498399495532741545341646955230991815555458160141530186539238590758834558775188529687830976033462683367431132005255112359860526441553332488572610172014563811943081207596591415895016594891558254408265470285204739703682341063225186113847923535584484327508052132190632796300254418977756126916722520571695568987289356231310737665505349098370406668232843613237438887561696281683717944858617732860003019777741656329514246925450346456988413007883498923368554810846811161649836887450261390519761517810102880631388234466603007524440050628284861941409087243908981394539441092743220021843325220126042384652083960832529451919039233089592112581037411229658322746548300109362881013117003642731976985091030221143873569952042532266642513719233106149011679741894043767462680238346587682588284649732705466612377134478411120870670975211747217738011279387819431844235237785516641909371287474225271512525951344112453460039258314558268529827654912373515479249916237344456590107850726233188572772910113724143760982668452547682306758996620043906423319723227254319798351555534753773142780063196838138386185772787624932882230227332401574964975292985474072490104650972400545158090830721148895679749883338070455243005153026192482462595248961975535987918109773488023332822150432382324176952967111880929452359164799237173025630432970362193268142973243335121980310388541180055426977640811974773171944514591893226223289513197787191631227342840173549506305271161811841285228409176871874139343261144832181557633953179457239626970498198919679922429846078700384616197352963022531700377781471784378535782639293900638848466971962033404334937519253243898394548240945986347176540791285834574574131606401399891555264516213535066112875808011032153769125891480217350603683972770716371179552611850247135949961034979227133269401794706588376860654791710348639534638768789960974540765809979413942043158645422247821551238453528279655349675811325369711531627815210557509905252463432968173041987418355196702080292600665562428696884917033406395669602084228996952960387691287758869724472068469031859854655336433362298625656949401857355695244593048654938388661000141708308802853987765312353728347538890347507924396430505096905145551581075901960448981916741380444180914207959942406729008932911928867965648522819450380606592017353059510284000253739717229725642313528071878535392759615755860097350127689101225702461211546285558723649972230384532320100268855235402800062536846693161040874364774882504856050425529206435296494656434842245978698602026938147757901643792543590600247371354103772596101503803943963803553258784351074200805762465282710922624717818056893923861145927021735012657070206097250418784506783201237673720476952312467742366371631799898615228448508282746062849588919085355453810925502864061611235136421057247278337880437408939968442186583611780781430033281273336534733910806295182484846102004429115680390754656709015849435164435233427759131622826598564369350287291113019802534263883177341734470124233007935414819800542345812596175706634204714483476327041046866437884693500493493690442344506958647721649897970410036174992118786195193518037787426123532569809433646595054150058103013729837310094533672276979930837942515901926058811955424504024605995524327663474522533463528707914066681663078525389910699593134564093273281250671070771163241801372485555709628735236183575038326213844469462301412628174854711991885523084266925608199803139449354766933897791174106490399358965072570607065626716713706200502821702104211041485771871297795831055455770482572079519953572534047616295261514955359403603921806956182893084940377934442993500864401803115891302642327201613237092176683667097902603775399934926346525529832989158539984273271496338472819287128378739238568282227096216917377481986200528944531890818210396420329501230317194594181191255708653601126953433288383217596704739812250472549213108109288336159272595359904974782602232419905381125060937857329367684576383067575699157360944307370379834594782430397528841728182718447141093763911727806062376420619924042794027486096450522922580872106058583356608192807593846449172630790308894733753174292089635233577310511084561846816924370338192589837099094163897510592133355344504015783249615902957033458742488676044780165741902644388496601947510408501714225821311854151178797587423949772053828470921514446877693189692215214487980713764914266754945664624876333737752193118543998053340127736007563519715912090524902412575305186420446445035085250949294743524537826058941401719509240686822791149957249153697717057042486932855572100325203738567209623367987257557785023822276815296356486720498097586052275305831153008306756900865609804336764278941297733231392624988635169091799432650945081748141237389703011565794891514502441573855828457656272375621787652661455973395553895199117549693513516214927769098187889042955389240687789375611643702922366230048973569431746679829761100226285234072514636194812522106370014893516692299138068399606082599116470944114839774662992573511697091599854632381977182523097656183555950745332248642945452742300417479467782569051732924440285040226184389808426687494042641625970389451820804968050409349099900817936130279773042502890348088261290394846474619742308066656528137613633903342302441229002881173516910158947642506258647001952309457709468344437815652718257596010863568937650471379972804200307066806952627343645478624919112880845076644792354531508629142758242542304817052954103279995259203953729076004037266176757643946329240585008159679342658924052420135618086498675829296647098792104131609815186654431910238210307789790731367874735407012550705660991837992957005612886421638208506115055418427668462431712802946740636270309301765707553261315629981206443590742813960132640306220683327310316650075095851638914372505218735530169104693131685998161467241611453360108420787134361125680578846151806163116507934907457847699139773596471812380478156752629522553371693200906051158553492267980146860894611727581894645329890799938646974775943956079327575322377542233265600127669959021273707189580360232856586004839862162497679256105816321344421071364740844338438771241817378101401749930380174875018215042597763207990413919894397474297146137922609466705156599803182670935190587637451901951201123362408612255111143382420296637612237672070133567273084820808729599132241209269200100312915509505560912280344527990566718506807038227475435184706026896298689535432922884780863894719705808972783997522462009943561251173131641299277947740011294743877942745440329301139783378983123741165784760741976618793666027051480454647202225921486807942238022097875483077731273352119990082663085398888231213775310630563236807970723300371212066784360226014745563357464195675468759742540931292071987253768017980853700411341222868614011698152716947117541525779663599181479641177529643227022320973546256886299381666315347415629093314192066334802063008671114241753518930318577443032628753455604134847943667138445618084153205574894277234979107446788730038861813927859893071259970234910166539160925006809805165124087906631575570762046457367837443046746011949831392300557657320991545103701072976421956508662071102465569320342874789238307115454364356336743864872605217213688861438905756727195933590329554442436230621361869943290184699319256829143274257407772580070579397978621367668565129640733430683918181459481024306368470042195781111719408878983144366115412564729587108994879712490983126433958206646063333430792886296133268111137155179339028808060986562812164592203999827392701038268851352914455100179947674386339852890498922683893168722411616585227960743045659849513483029059134574820299293516992662233025945424354804390636345040660460185926773968035372356415103032399113504094128388409737600871215543135999434612902860911745674886184256447438275438935163141565292996263539515852458134187817080583745467019625878767765137780739960553856957686005620550399730042879156117875805629026951683181397393925446806910425694891458043413509643772402224303045305758717345167426547413033659812142643152537526077549417052373531603744274699482363293241537495841695304155150659864647697790054404119359891228854201087220876054398615664580689433413756989419335661944802168747312315656371872718752349163131791307355248262537546601152907602745015396769389784265088344669443373018995687854504960411667787961671581763613853653361625772284290635590300168283444029485277271365998969376769110639243782987211210457357827098019628088602658639019874533511558265997236665707150799781558185327735354637765580531958995051335458241532480914211880800985796049420884288433954995941901427070814069710730327271950914712456263600192540041983812799078676508988614409535219880713963882669578233930747747737552704752986308941247369283202967128271744985098179622600242738139187273491891407067729529446610843977689641143785656651786774121784704890014449620058022492767067002812235401754870199969946164997374537073367799054149119372508037805378050755903873428462611465218187860596834623756870431626694699325551117520725189806117403941610599107247113521854687267095887534084592624206767949318914463989782479345319080210687588015507517734181318198215399035191412344246847389544894236694294287057838319453048512206079885141187042411931555766992354964936114927678274966824409509435399599941408254220260748048908626071892977600429863918994249773834967564398412089947364012847077243195952290047290433044297958402851553570614076357199074920958854854715463074440959131581819611085917350061194843829961375052855725375366734117314293373037795169766456115682658589337950286422796896130508099331188568151750435582257460159823496691948443327866044006475210332954601701239440541985663018740547714608461791586820616484177563223254047851652840131795997937264897898230667298004133042852543274947705986455603730578123639079537589478146550855143778512147456904305564937172871771940240488442643521724089538523639958924625465717724641302435528017421390254991291252357328131790077649529713821729280512342139330177208644333599148288123092269843062958273691948889180475279349328391972418848943133262979324395769420079765438412213758018075835855146999617447289093137961052776497158184127207470176291523616974878810355851435401150974031745976915762144145400282315129628280949798478690568440278939877301833208136221073929494828644402058215074453448684996817536276968635299309309911738761649148850164768363687266450045004446573276489253613682715297328074360049338006068537812436610991355407123835210429107201514616827353661462456396015092016094899156619043469999402639931957703957847029327376860503675461619414339579993377137839679979885759095839181865221991082751021151120001704906104043371562430349083929124049810600131317353045485931890932783115049577231712783335310835912409341022327051596143537805668946105182310356461616285420403477092784237856717268822885757036536237817004863425322894774964700895139663265817352570112225897504635313934269349226845027249062408605095745567496464699879143134965234467268613827611856144539379416712282541052359558872494006308248512846290028459430651573740747470097837476978570426075292481439887640261302367669386794961910247045213739518357340827216459333634541303874600653381702227415477019675176814611318303019039252154213826646508509579089750120469583125354122683709751613666866343459512518763255885040987649848501340669171167748578396901291064215909853475615516578353018665380287084745186821846029885247547303517152629719260216381663773638895694804627296477298027420259717273667099668576215748322987269704619749138040951800941253389838213803759471208959748185925558233228317269680485812156707463819391154966749179824793925595248097873187515592168555856840919375751785340597253897940681332889951177203580973602636532085469264367190807274530862049853580646436549233389334206846876236890236263208126634118387864713201516660095086164398108627715180896996037013877211288761214601967781609397167022377097952068315769242567466242080729352293367838944460518782824675757720550322434985714558993942086211602211886309490925107783819351661555147494281782058229362005766780065922411415382927297733157658840277192904015956426865922885369550859418707230152112939862887328176701121733183337169870079047556392967736367701831508612646326593754227781932204170580772549790629140979621183648573495161899193100285249686096630040405854884521510547451032095483810341137540449484033162925128872480003901883297096649116376745416306666245515085304227370753064876306147709499025918293442801189999938037003064441293934138725775186431209611465118249079141420082926853435003793646167688679726966962642882137091890361322557368701556032073242937091580134077672953100032197511037354818532326163032823647399685965820556624133290005104670400802632206096339952222347812449270156524088664403538761375558508453111867913173850150474244312295643380635801897286431502550254619806663003170103406449916003337847497916764920807160912413369462558437156421705241436685930574854614689021477587924172767859254082486885773875062076329956404966244816340213385109198634405766339101369230455250600571058734546743458628098366942229294238735037564924780839981990893469980588814057750922936094927144430065767855070493938702349246725003077101594415873870928383437186027796514359428575324880182426194437441250222218218413189891597695883609464262280726284094137597293299007868732431847839290032954227753977476649597882051295676029040239121508820988110535170194669728299775216777462663264499240907351559483475120111045078724490340222544149857488251601469622452892785258859489472899920369704142317939339766211510935826204935853121390409688628330649459031891382358235844082842523823298158642837826160963265772550074851398259668802183811059463547488898520907870603869785829960101345051301628919571031943303835027801442980485231630550472723988764455890847794438569008559876723663613050832992926895286800092752500860713573299522998104048864348803594196614607012555293212159829440009702387953090196044099033791650072370703750130582123243103720819076720774947484810070111609379829649876735278071499071608573090240177719814212237900116784879351365916001788990269087111940863390267082596199602944364532820037459079130299656212708404621197485094090508311862605130725768237289482181135190568497579528547055312592239108290103245656154459866701616425664213841901849346261874869592744249341420881052385208217664893543939655637235128168178195644480715641903105259900729657993997483351422309056761724899063780692757004818260529833198971141378813662686910387786215770604713281683291589810540079565441682481338160453979298538547589110400702479994546393700080522230848321338707815911225886591794470882395527126628451939400983557778096683955496714230061363586492096833741489556464818177812177000579111101656661106366056178537875690630058427347129277636844516998252314742754113208819089217710130213686424002897157192273408695961368658081158798750012020745869499716643163099884035206701459782353091840550837927170318650336221424194596952696291730919172808988403007687883930192562053405345695905392519594631282500454853134924058918209282977620616124141654632048897331283232749883220062570877849636419049328345088957031654264822503405144899435414925227233720072889877547281233110187981436667252974452935431170915841968169753134041023253312536038795440611860815027771139072048547828204822277942120716699619866141282265786707302197297750836787305396466883031309534308886839065606661039594415857699587403838670130605320414756442542180909267836502820402405604769902733534600232072746723953241802710228156247777518008538027199898335733907620647106416206496488132736676631237568173703544073565048501412867318702914097360361535762049919779942043963299598270535533605905153665996107885425390995260597414848932368743825481849058082403296981637310838947589006686798983414927359806588474258539784249118313214975958398585414561153738675863906924459238965061729156937349202368765252105333074491973545163987769889381114136977724206341989769464182395907224216943193634513394071351127898863655278820769047558180487381472881552106682940014778122356324363798191223987575922490990984291561340428720021813125386340429527122579502708273235440180710935934892162159212628871794509850182085902324097078862785768142302905472708847661491964636852782588728372568350034996917577520488653965512367223054107933462775263360668258152511082016994696597683540131639600722285152427588184472387879686842290097192592156995592639668796138089558712616471270912256489676968470781693028258792565455947579413236008457297925903372266512742547207580647635483182044284812368040527731585669987994606642819349672609838003135485835950759448016535581435072539890342738784835080642134007723102209128113264927291635028441045701618642695486189470296223293118286888163186698966117307697303571774842149184187834342723849242894391993151354244273004845574689370518084535589303428542365218199781112797153394143915833834309238637071220422111691279899325437295473168599231419217770690405671984137745352127473976221559717497808611509471232831563582045103044184821547271818338430280503025249254135442117445386210738555985089736359357770758233950057128429918854758534286267771189714204887818508341650988351151163460709242418071745830719130782808015432670325222710227246057623225042898631578397225704770319065317621355400180194734607034107600210384197433862536788926727641055358692969848699489224841909986031301785149847119374727606041976321948885921164298381101859987322676170373171296893073095049343614980608873068242429563448934061845439206834549759703351310124516503397612888707718247385889463809999754174211352807422862257853299429861859701626322576669214921675281804750222158582786520675276955246128176905859941410417604799662166174965813919987541118648034499122221531460134281095976775110586206177286741134388871982876032621604625339755575561870775564989980983129653360448654477285327004226389151872972071157569911230163223929398749090841933108746023177260590322680870303211934179947787018461722856606383668127183031506658295972319298738922527918898126466578254793952071586134907593435820954358122518799207300922647674494023960339836786204884382218884577149360216912268871393141304131657540705618972274469524671528791997780354128637229809111217385013016266499522568781792735663765477469536200340267511344782761701170307518985393971853510494792455923775588617985699980759870833471331542716691413507969921664400361146818873786704971944646445148921333790653915813484738514463237705975983712620111348866373959229029590621095745065445037621334664641311062288513286275821678004345440205480460510757120880860565569574222025171982093679147041902802238715766229131430953751684652258457119290380102692164426340785550118222823199228514730004793045689692327443034647776165127891931167602371795698824463703652038997011042653565926839047134199772581103907775289334872225307001830527093459689059808315891681367892235222441249961607345087638432397935178794769523020991437237343257719488224442930147096045931924612062749218433872738622845365124841480611586202870527431193811177280643927965133566008067336536225533850088104378869727124970927189832847290814395245067250796371289497961198897037163968506552950437460437260951836082368484113537243343350216719109889928668225825942368763791540246841191057392366631073987647334097156538252207820762245177446183569406530978219731874544956287941198992212017924126330971753358628541678625276450639261942187050763341218911428535287256258328466191964777859307003649620644859215013150183084274001267729249597038866159818756876708058724096420683754702765171861300233673839693006990036568971189772268885009617877817854213629946819131406785406798885307900536152695302094949163401410190298027314659120857863267196691204569625316304251555795953075039692195243124032829097878436628947339288591947798860870783185887106767006668976257489244066511178830747586829494148334848492316246102006932893914389089751004643748812733023368955297360594261484286095889990809800022081014519163461898315864183411372460905570703936431698534399759326510279843727401009667332823441383212545456098049319249813476691338372225167479538019557595723455726327884898930465702897279579798085967500878690398783195554963993628936547302485541069939556294283590383785637904222307648238736177381053666913337901446095042054661272420161510596739830114488307843112942054019735700999303112302052982544100926949873087312725966204170831353821938436795370177648858690555760496703931310672472128442410733817701320613378628660705226794546203220283840383890412686059587938339470331271785245510134682082120509375937809488130321556209951106928998397063924024407070903211354259773023011660272283770569092694222702939742693487552928402262310353089974116924348071597388134154851155893988362799900236718837683251511751080710745418940129147312656937978224462270981621473405881429032332726423179942531312640694746467586422883649858704313950387396673756849564681166040274983730556503821366127027786149193041226913380598368992522620277357670540777412535348386383394277822799177802265937467601863105455026426190168400271798403726462357951782549206833458646386695273412071469019675806723286600981176884876783166476025238197124675196556151566576243465193356103138289866535391998583349621685049046515715832974733453869276049464398861975700843666664802049767910425715988814810609685329902817663203723386474730803492338808453725975657259435915301621629580053187369007409496933600008133122815191182645746546529163911356166878650729553030696155729774436177034118773292087410393946831346558175163509615223186310330986656994901409759113077276700352539400406998396008206188211307670585035890967680332519183092510318978034514745107757125818748808159718289469516172545011741475015375683545746875468512854267218052364584522337465075257651631824909715235088456389054952015437005472013602135600145837015434356547825860534487691082687005949492466883182155817342588972467962127253593011747217015869369631714185391938570501877027176554357755344488716920656987459360621930920609803282792261322400965567909794006550856512704525922499957195218161728260703375441918552567979311173731350998344448964713697342927981139576359130484005902763160441318388630403524947646955016791205260626073337377759784229930944747366382482708650164023539946231677510854890083373040847516734551588364757194871737935200731681133593981273858669292281942451001308821608556823794628760991947958174276045875390592250153592493129588320315062510758889825472669294624860711040761100351517056133004278805180772544749650578020271571751465730448887398067309588405458526139300003627998229626539161571624647644404413880250032120851726023294805931082103046174904605845873344574631525068818513467968929930005665260373041455566630598193241430252387611391702755777393265150533868292525524441184414082014491695226927186192444599760151217603808455326455394188807399331092080257747144890137202335981491571330954214883720505156888922752404763716961527735467710129535572434416702144000984694212899505173950592223648697989830049678009035186141048919527007906109253398876966306731702978578777141952610018643471695662462796910396831342646121185355115375824550776840813195306000096904289467399207424724416495375159280054013065724648205522767271787436997713904651329879231177847287400133815137621772394063306770373847885623358143521106284051080853491254172554928935871358934680069488788858696568252699771008999223652227758356790356164797762835207450128327313377298632708992565869573257362634682007793921145329834081761213017423965258386988119754094341824692677069272643119474671759137770260507747436643027922265636798817255282471372671494350415317612678780706676525997658541878045782792915079398830031522430382999543023259567510903836928770680348915328257833870683102746930581860382698003590640015764384964679244405842662865426945358743254509925001664441749121795382556184807066075463382732127474838413523853186423753022972735234303518604258289753310519045519122932673027166945968183387037665547465748924252544792462681894481553084069873982226122044951663375790489358944115045030871050442185314367231091280160299221847197633925898828449306084492896928974054120232763863147271370783431851349946949641041365976033335121291493612116643749075300971531531187443477681481580611424087809071186134383923949274609059618338857958118955068141306665467466765652169538421060836502881978854589302920745246415252528797150844042131060645109042748686516213310325610433137252292835752942782090783688256383974274160101467306931531570855244471394493745917582113038974736110795695471341466455226631004639945864992142369981317535951824930702926779079605421553060292896006246577366070044347172503031901585817189657263398827534337803344522709992198182754871934786975625924786074449323092494025097796229420476188046029061265557705453477573874008917816631277591806366592261187946820675892794572499367673713278755358100549772539643819705024853619988332043418438064723572126544072634744983028989932728998430473377764516251823829024619763757301661000847669728881339340127226500953132925053130301503844361426739825094254423269883136631530632892640096927481082804219247841817594182765304487816279873125749906068076384152918393104102209114660743926934061942274238145910777675668918862422239152950766323742160699404171106697482638764480515899402012958167536732414539736510576140413167307456963189731305709231365586219945008322140514389604155284019627057275208319838352671290011335966042060932789947399232575207807991411084634163549798758465121951031236246505768227260588081026721402396588043973045763760856387773209203141870771403435088491501489106548712036167151579391204719602036578930015607402960912196437399728071895921917326794591122271386520316402397939985850279400989700181971988174556128876931709417085333417394910619997402428704835420159127707447032197267482155235940438255491892041276235227844627120501710212514654075377353475719745112197788403406593042515482776717229580354588626638884797718142924682744814155619976461262252589242164663701957836925819055138985016047152431081107051570224811194630430356507232281112422053527130569870828215430282146519137657986890337253113362724584931088372332730097669782673603109853165995814156241145682115349233494645910917580997351537123359234633646702174304247706083929808440448758587899148606718303909453063349263218681741850020601628115837041757412415816866251602427811086384127275220679342329227389610776047209251025366706723314174926386760541734149217660598912547327886035546436177697837718425300514612783122964112194952638736823595985927411675033076623210530254212409018654383569248930604696886714711021039558264171754047049876363435370161715390235840814180062282244132867501743673018816919581088550906555399319433660078040414410942510116360940827135321558828398730413437978303137313693823227265623109476188703062010699523924195568811418895190177150923513615555251901551880740025103398935712299570733459327274124270007406903201950442102278132741938384045684951690033302710694082173184896065586896939725953733676023784636428936957723098924354793794551470746560555429346124470721731187880602785349721350663150729978997342904557144261880382823385753501867049288014842763354367262231215684729345268017169734162216910841566645877200390771684185156927194396839706219375917140453701244715977793773176769667024388083371103326488939680404420740602643467618393796869932937165423483400053474335433051095962801328887079661173210130110940113933441068044842475530540514423264213259844405596000367402380182093249557321734102494124536932027086139801678661889904982568665650705863525856044972534661350321759133777771916512978030453893441176176120249304640291513872062669882876103262376135789634392947099480645973266218977458687827528494131634184844965524385468366764397254727503092058042846394229071231887675351811624895898284279857062829858537323078296142457062294348080562309620787076679587108306815550714478699951796551869781320034198368110300606081630026594714874313049611614832424368239439731080401573056146131965820593884819510133428476699785721599196504860506397933099310142805666129034838248344578017490633819087547999622797293849787587603551290349422573713391364265305292056352337290008303473781635204379476342498477165188809756253323096058341296238435680745175431727481513124531609601222232541849344157305303307477490624706066789038929570235044293637580507288565123404632641661378011775243164448213868187818326339610531889357835710300526066965410426124245365425390377989452002482126755440348063796587816433041637481543082230196576973026790513600231717830913396882962197381186361187215582587898513656293114187525630594922975860011131876323056545055604894060406865917869428541384369932205519389439067777750746339684363679407828328591437600082011478256121131061852964879740870896535658365282439486244509330745528176024179315145321487114303329833780262485090767227882375385693908151564028639264937590212672646729052781443034734683089920213317271172395759048817590078869996880625360172751830536200392808825311064328849942493044554224512184324325785588412348216360747982326580547557180370922831649923268549703854680818458511114739026065734336536753599299048728877556698439595745234479089734845875790623347501614776909435076544863761623495441214121892304293301853999738984214831750331508430650794609769664086225243897553760377145817743529920600255124262024064032242043304854045754168461478522345200053331163356136412151901211564439543009429794525595374850906996203322085496895147391820738389083582561160870490509012582297370419670350815891638837973775560265223834128774350204011179437507719472334687811831867983425250694666306682693767598663595440826876280360041112594941169814874676522531253746535876320788782622241293880719166325519165231418958439096341246527862244255419162908199429242283419252051769999402797462615923139409055585682865687642449476384509910852534824150799450708227624687064770665510044871086191062455115179811042794116704516833494813640911502117372162613268239615788911365009096861161248761657735308767856396916456076847465224447039123093106132252419628033015735388508075635782740043481100271656346470954126641984585124088442375941256366785663204214594904490072024859454952770933678347755308214385877827654527586936545395518139835346141322584460289866453799024253593891871162436802924102242952338417157750356460494711574878118306241940888256306478096804918485426340720862239401991160881183733525513252379630964474125504026832714441855284552055582110387452178564998016680707356501471441092403499563959840124849454946028391795838939673440367066671808565791446926426457596577968466673176892492906714239741230502585365980692444000109443645753065788644729609067589104688914833777940697104411784931409006024782978058612793218281097378030060772713743346470298364641148297366088292476603405086825149194030007022629531822574225521930136874779164884131915208295819944132042267843453720969891845401984308749725445826545854948570923760216285217652312192065415685034418188605787769680494145723878338661652161281946334119664496742716791099499787608692157894665893293182971591924484029720375883175169863108079203127161334330065445186480565224983009274985578608552235170754308185463193853706654977702419184999501307381596742356211639086859860880539226877593577843812104732077431648274002436641954140632899086038213792446712322631449302080945670657170939505826919438970015919404771951174478556704546251282504990303784508199792062925808453949473817953428192537880286947433019566118868785680664596836528639545430359487147744929705267213912404213950711958029593942672980071400900636434559163891248975435538387126586874966032595568101872305184037191294277831465687182388805414502551747593301989112189890702393488771460800544498016777957609781238914001847708995371417756529772422974778187036293100560693548268953281783475611063736047664629888884788116072742532278725638735048174703877826038618038570260453864084520473442019021861625186694932376583047863307501801794384354227564549086950185298970676352681989838345693453122094631442581960510064669970408824773267490247062183971887373411429983447166679990713900587518941565823134315972831349425733895428441120120115375451808170322549024013147041939058057149261871985888138500465680687716091164884376462071883458911822621899178022334668009513736934817523107430146831556229885823018580353466746047981460206615846845428217781064080723509937767130112418747178889746791945050801347433997153982783180053314259187920003665756634512976253545488693121026812980562950645765502048767971011532426472902462723153073875329139063631701249995824518652326628990948298614278885989016534740477837947719345693641609806806108141840456753456231352402197654048522901004281804936755681263392266722880581947530058287003190501355338075742612677807694569313568980595159036780659815462556550183098609710247163254351021752441503335631958837072788849703018282904742320015094678982998318849252939253628618125286072694471152388819301241746709352881925378381171632436472376066724238151757317765347694530872791139572790658331613677992414692161243713906858002354273813211473219955247312635450881143999074684291058095941653331520422250281528727484990741644185229372661161614462577632466183735357821126760699605447974060416175766767735432188036431446498373582049516374345028273306454123884343864163688876376780254855364573958069510839576415047360188112403954220940990804455341946626766737669286083334236131762549491272821725109572251198267086229480184394383522645727543515414172894518460127581583957138788286301368365635344571379010212025519705033315271269726791394853018969147832996593151027537281424750293196681909721835774269226206849686886246194288558608409512120424594014673849825909663790583551020708259264849649160258931117449894617630593560283202087868586306671028855108387990827246414435714277096953029481275041747267223743718839151649312959712876169408959802462316566603982303186271939015665870944282788625704540310870991819502271292919105851731790023336723719219718099837314362804854563272069217767221817965979264401936914625092811465152191965329765363187801096895490141430543791656649877465250706831991126623374510571976219388120973573299365093801273829840965377369806838320892613764713270004427811090289586689417112351680184738814472713127662595726956301598632997364387333573978322802127042675517731070582658896262497585255021169271443403800302635548829464863009551126969046470153985065250869546977850714166927047792976025550353637906064417007763377981360020382927028125737971500548577050859676511270784905893265739962639797032632731219564017793896216988065418964265137160206676648231774750248719544302478753560969517469662258801392777201746133363957699251961635752132735267110837676145850574248503310210790677401507892566548873517571417999712693749759079468274138916609478653823433699746730137939886812020079195995505070316248363008955815715545185538662038952225719253361267315444406187757629391310215660644149636076308678340677995128267728303648325471911921428699762723053600402158732833961829565805161606357782402864230831692592100130860489501531193953739869883819387379178758773128261847149025876702447660263289069087729992045708523617729395641924838890578300428932361617066442283593265602392605424263287575415920672858200066489496120814225538418188158364591257618121753647501854244836087349875802654817284476280153902986018169156648102025965175566477439636160619950127290468706004028358760563865008123054686592714255891952957682205926276473127262174553175445637938803975584508507997252922910888154567863357871784770840431803216689455709512534374440370070471968804238200750033316989015388653264802899092820861871298176635237942763758924140754057021945632009335999802255018399815952021819451862434419811626000050225637627976708493823324273605230926369376351791143318231652665402903343563819284219773900092177938373698150201897544614029911780003440647426426952893060995052179768381642991396099965669416893531358601154728436919023159518067805069100502372419723804754637177536050845444174615645076427281400059081802932669133874630533659850104030556346420366884590065936504072563138973053768626954291295656408276676430141856591801708825583968096606040428133553155795751883537250314474439167292029090707238227869545716736841344029284053152759070375005245184534209601351087694180575208438138301407940568534679891367992878500480469421077584611841213297855152389045586857369683086578741055366092060617038983415520503011699810798077625914354068079171882383591031971469315415568894756639767889319422085759992159849285185953844197931606984359415089610764095538432872538240665240009537517139262995476950907370356987101149171200579036484437287609868923196198222625745555926983900948518837317542657947581170364139755549799204288452505589174037241043811462759228132263855907806836779554557822441443678872926713859133932516006166280413865788821327737228134264289219418645564687917729917563879703063943266982333301344515535978495430912536035970765747060748195483552666193441467022489403874711784557736414836806836155891821655341479923935387899004763033248755519176894153821975251181912424513352570283599785576657532396709303403833783223131124330496674944795890620003959582244363892594977468018182515399926807638145727007459842251834779832070291576582706297553045420690601486114584014440666655089938548638327779522051997491662634641801611801528394172140485927202309928956126787318494189890750504567862518920500487630589187824908399669683233007773153056352777314761892083691792096806819552602508523490256970817267511842405088983754925987581236018051789956087575602967463414779981018445586001501186012199710559517338308879812229032936735213273974049401209317861858326769211556867364752508499468069433714221125289603720357755700061206417863244774297008277594454363348058897986402678570460883078189732402952852911188351792858267817604083693035582425790321962251450510568203540262944603317547373101407647140091999769987380916863530254706898119349033811209024276975028286194235545265955753337332999245578709107195451027861506126138865017797423175791568578203610869977491412041050018611054270002169656902685661401203359998959793590481437851648431712827640541401948920406765131439102391568146229481367232307258117604184970589060960770943148423380510064688194044971367117050645499549141217750369768446732022633670568970744594281975091012586632155489626557323198860914917685484566535232439353686671997119852836732259764691204267838987235701467049146528961459597737925128616149374721187490367111738183410990426875144876602600802500368807240180141264490284280068777616882510531706968452991828860679562083351343191700407572615920516141310224852114514088492361332669557605202009665864115404042853658394292646773547701555401041591201374122065146894317012829895413629370534996318721153886450908525481049440529231565220023870326297907804502026852183006281426859084163295366797677110219349687506103479520510495936586115997541737651431470533296480466114269645554934046755766085482407917246748871424548951522280999045950389189169603943882678905601391194863342940745496138038027296991326355788199798847585805914156478250043566311343297988902921042383480926431960595490190956080603629018457479765685388568343785221945739854436296817836916123865117546928268408881094497002551442356062882208964813883782388924233153711156941921912133363877533677664842794943160995562523104216323731952763489011338767289343542196335523884956909803904763315456066239625004052361102117096448150231545735219305625737877018750564961929785279714564751918170750196684146451460563649122775854338935133961111714500335462129307429539740117789627706774615929041901363611765163482725369308870670730264092061735822042257798648015664704335749736250743687946635036340281514279294478539152611087914131022943669939359709331344031744268317019866777612003378338543542833493925745115628786654466470911470450765566796380515918956248197087728075598056726433808446524647205792593569191460773745385940429279850736386624418840969177206045801739654938939388440024843497800651896714704700873857205809778810474076050058138895567613642484020069206611819435459916863746477395179832354095725342163737064628008411328825083008805592482611978250084705875567080382191704412900457156449295517210376664005627198755809308867388722269439876686777813826692365560010195148929303947603685741143837655421899329614402220986644303112183993888436142644854720577687173685867294067544624763094098693311352955793764239193047981451753826546756601924753673664134333772618819640601208606294987127751652307266876521267778486902260123871323418543467658548710852449942463673860560468432222291159943314955959584967949821943349120154707201294800831076600835071572867812014378437709737846776746724005438725913856275133395756564471718841380871355243894481192301746223527237385670644079526338428068046296987341744564648071377019886998916341123696369438323310254175424995439707989267162159396287224005231237814137333759094141678896419574647328434610285838606171624854227306788537992150224508440862139146436871383869864216458933651996812724879666294088759812360024050420885367403935703005444429078220644005759522659133431192077439175996917436864350838943910180368092890435799859096511265990843411136397151013163107233123040293873295823386824448275032093543344559096267115670618393817788857770134686892692064623663122116319794699048019774818491334294598739553389446993554183620331530088811160046456681887606016679725598620284227696955147461804786329513988037153952839318411058952125322423841243122600867973149970124164572926688867350875941912620179421847964809287436595838169932451281866554314852644111247618004088372976548238003451351895292204113715279068147493760980734329162149020990768471005734723206285914020627996300034024175272350216711978740020030537433810510653884830158774055896635049864801937110893798858914754498671266024994527611770461621527876740616308804317844309071694936781628836777059234457925815402184019769055543912914189890394936611966549805584372571259984023654700489255424567126139789802671183112391627833856939044515189038774777286847057157082235364693095471112010733994669007787995593868996389214389416739869373352700406057948528740503696859404442373204038162015583695947927308553033736953451968518209857471602303852601198861287189164075057882439430123777124124433185755590634324346828391877358973891274475798618884290891072625847617178178168982998882021737475704973038665221888239096687951688553031310260906706322458980031939126262583488817768844653593197662799743140572115518215497914997535030283737112566140311555274204262130007671803937265519995478229822389860426662086046143075343853393632453164413644398452921226714895086007873185550647248296974588572161958117227070414854560703746965069138706975697039828142557153172317466040346061068461414647482676066159330737645155234514203077841696248538291112317176761348891325205661767061803337592025235059883128457725326636838331130347549865607149771752336649083100431653091517603753831796642134369516591337896846707524172423746582384469251485112333987886882818239969682339307205721251522458809885950169244264816946332197918723971159898682019265089009385626940477623881558020374893239595414829686239063977573931303928190152690165950987075318712641119373417432816726492054866655573870184476655497667181728348837217292280748277424631972620200616559077142736367102626882444223153977617117663053693886923959735408851279237207035836376211406059310438832846169600998365854361862384765100830264747211053817270766671236852148059997527371250186347373838752203690344312017287764934577347538591951328794982556167497133568127818451984835819875164667731119607872337860150191891865358815269281880334799642029690139190632722218235694937781641150446727607728448285330429054200904599307415529680328712226663074557815481228919666817459137305288057699100855926612287022759938576295329109470088353911543661668833835498372148008144818821564795630945786025130179912555439688174266093240378484733612061455944302072218149865130121773420326114132563776330914823413722498004539329096573705015729000436176525930039399355641814726356641520649106132005353216762650597846413119090424427229674376039540407215704059564052995773047039597637140448764706885148191064915274386854894697456746317104915330565209888637722495780969119113336384240060719998726862388705314063735789367691959952460968438285856855741302611481257244465758261398738119989595680263063579928266230287367570638613335334263835804541161979462302902153266940001933168739113089517212408024431906097305078567527980946031134315887888382717338933187051959239992557298257402834795234138812919741387680906108661714990820304922562562532697335633885579462180470004256370508125046648960206159664066657832131174468003153148780474301853588700274007782964615347322049995818677968530203951876675030197652527368372408611181164370921249449768582996870344867731652519022542529084135006861914182916006968034680665267423801174779053189865816496292409878434315042144484427976214136670873729354875100212973334847563116882442488310323841443443768640307605748975616004118553646755714049039122492204073510481736123090466077143769365321775408985075425248792710178203747333552218829900405862936426783064009995189418372976131109628744926033331907223226891457508280421725224900557156503218567934780396357362247033799159303484053358761606536752078851988014751547932029209595740351095576450761750266992224052602598795274699691919371861725991794640936051106934138860101546771561049322951741181320156113868292675381050478218671691859719166880889140423547062893898396025947145327822253922570628252690404919041508268100541132505072212938585722039141719017636979181623691163612714258450051442940496179498033766600099669311182907317672237679000304926066972940460506364041985251282919299231235539296813450040481050983268086371404886756263825683249356861421108877046054168277597290513897464847671613995826107626106224040201299758624632714997464592129519288924954677062477573912111179232080963603507136435699467959845486324286173273939032416329745992035772562012151896549156642096906738991505939176871254442095288098546172266367891518956201758979681830071381020027845408460671699860309697160479577959556992192019002774908540643356934031584859529066503108388271108443388276866607722773285095767204960649612762843855526221196415237998021438295806484996894449952389911197848150481074647013966342464210052995061233208079789846357569659629914288341743448491232044698512015484683594701095150614255794576747335020783211593226473541524353570438452603793960771150906755919119045819859547156926506805001191774855126449729656932428486913728994155443505670352734658012443301836487222881487390092435853950908716913025728989645039462961978890747916688764832156946511477240195532963406702245918391253488307956681595061828900364345385828366512604686808768938230737733717382019399732803753409665297211697240211195124201090229511574344258212339157490626301439497290254684180742129934305760950579285414880261734304488303578597589426385625438106815133746035247312154667445018924260902352580545253328080817445916082889892041627339010811029833020081062692229147107604476734370660890812640744645783417924916429493660490179156114218271581615804769057352954821537219703233695277386926522614918105664817318776603007125402530862639622674636915642243033172142948749959358534627574006507865736132279448548694812426432199563847985083113468822079111689724944967425555411812752598182100488231200656150145158460681663792469994878300426880570316582139258653815345119652794987867039426187410679416766470752164320802287687620543897177986022865341633692508817235936002871160831948024112975199396375397879800321645766609229936216603694804802987934227328825775007381058907519741521548950975632988389679720982716739871445638389350024963756629518810241863784532258776057889271224335894663709601351795322961391586999422550158541082674295052630525398235620837661184562266446812603340791449105162613167579112193396541576321587224318240637773953912428324374968577775923283480909293410421402959370516015147870551032369242986575282945569410013861763230302792487261492458171950674407475279450249474051013893438014892121821774707438558631926647907475034416791063356790471129756191986912832386383702605430748070998159695707942659658328906564716997282011662200309395106573182592810904211125683130154235175949860272767711688918221091400713820385881145154628945198578695017922508071336298487053768734314115303873752992925730337059471213408912494764102247716201861458593878379749176034641791529856591771040680318731847550910258490490264981587730253286737984958551963429771586142399891551347628056964276062545490187686333187166097243390174833143245743790097080925069865746394323047952486978971007454807441237921967452297450976295201593752718169751584913243040623954513672488018431496734854693369795308953895851567497611166578896815151527973905404906269333802912613166130304366964552856817279416399494320313163552912959224949406956058124475103259509460057120814098165915709517119229962971410837140476692103557108320161327537653910887876799027925565786748757545216721961539895583858864951385155035855541957185007077073415248049796872076694369035461674028384249468638528333746250046546859223563031583141853471286996450171981686912025653003071021940830128951853922309765664040937760000406567888154358391317783741595343262585990594386710937473254113260863719918824205871679292542704057887312465018880827020561218620961994191758511088526168771711718076310927957233586057049714562390355885479382290780969436873439944264751855953657759811970332443970337381451927851212746892654402572303333180789656109249874409588893240874377406712479771376629854491012715019065282496507066136273251413408951542780938416616371898250215703002486659215358531727209365626900818972619983817176917461972303452195025868466289310751111751282532089919416891754634225158321793103904103131183671763118334053313683818269199763213170478843006779211657633412722526955915091036371447198091001618400473535519434984873435824180129582703412877806598782902665010001767180792860844655426093559433310012928207679036601924973965842773242092280315384294455117460764797249007086760581029679773034519804798993994801043152671789022345329904281105119003651742382275435601962777077130286105448273020822230427501602937847500052750006318426735648267002047310993836199312157115000243776962832659906084209543608898444801851475986527804215962247096927887886263482792922960447224917880248682946780389213023207884044402358240429672014861927175185908625229937554224431416953438179802594119643010629297061452473097559138553652893767390766460978423483386876391605313008313291083203248379244410325310085507379684990278778027881364418956018138820571754510446407493336926320109252416971497757827966726475474573165991027058727594470206327028565144000358452010477518179900033851091996137869778105619482805685666190013414503036167260115568239996832498205328185828746823540686820608511572593664899147044084958654785704436650208961519909668556910503344715451267846640128208750203611768275667792260638951302387421420745671272912463845286614186542527455347945010007180531517883115061253793805834472880672734714754231362980580149751116307481917535876950432070901143280999824886596074431191343839057160034902725004949971937384629785336768045598245182312599473403715047547349409397501336607469867171758776322724329949877703302624802482723853119524329987601118342000298280155337457267814712805888156295562825118567671594326605077014763592584157732531181549190401123385006033472508473594018425091914141940435815462910448754926293014063036157463016679767864976030062062235942199833610483467176166647043607486632092852332609644990513623723865445323110454875898209608802378281505776613863262717625098391107489822497198914546687086362401449776447967165704390510793472536492751710959525999573191085179907302079832743443491372219312702189556254256692956321202867147053087593935290755277097350957203840014338705858258686645425979974212338687842474031139673815284954056815741051240247531709122792844935911208132044589290718904682806890733557001174469771448232271810201296467923994074607513043240056847101288588983845986538282611106302752910539830270338395367287596632259361609348239598413847440945986265367664793510731996800248873451849697277243090273015663580800133915283481783488056365723985746996742758694885592710772129303395146897631239761472051914404535286436664120963716425590406591196423821297157990456573542843667801672118322968090913674949450841402200612170973811555744266956021486744221612553839044879116204190359102438251242880831377049424883933224999382011572004644570701637699922462390666786064341492941259807624579754627174095926831529144169204266115222743970823128597350477909199573955616684484922339060545231406918291573752269266386072379425087038918162053918770461266173769451929211953049060155816070082177353145661169704346762719892238183677330729579735611737608153295258443773386999625966457210477436200923472654967529041917399834342080507351407310316608807404764034495368794295438660660284761928052663106681357329353590691328922008436392904106250795682101182924707507298936141760193176215082767519838755633576837826020769247391816448759642604595094162386380422307942450017523537242000048530088225667679495846134985637547138842480751490740489449731367661275595089595509226607389921777398080485247885226408740914569628986655826244925763404790370785224395340782724568200048042603029877586608032459897036776509065878743989979006017324853518679469054862251595099158599321076248662990047545216971929785526271060154899120465478410710519289479905991581576687049211477909868154540391088137696958620898087996150523898697784267783929796618389166387404287207790296829635313478209387780792897260288854174785509524949302195767693806319002249321291510631958424935687641237429231801600713662478024605596753042911956386014153495761825864103894218858458456888414706656619761976580057740450763029071014524607255525172713538908955679920906916137439614098805813189737923593037243721454886972309753149768449648500723682542292583208408403538383729950314168993892204758660469119147635478527449882649046379790613007476633717425913274056267222436379293707693025483861322792747534071204384052641330681616208453418156827267914164287570845392539945726299928921145364502261205191924562653838588807740148870626433311433454479409154143918403563358065691944140432693693200642044754062179546671632277623835116904411450814304277847672887744407100214363651199891709157901871470220827727824003060695255961911002990308581222876965996408005957232907233317132131556297742581550060318519602675077590061596650096670892564763364521389980645883349392161123000606302494688637531361601826858639840835680240191150220309060840100449501818679668836268563609532571825040105026032616507636116501887610514076822596536914969720282165667662159294793218087821531208895996173068533532381400929827880476888243994284642107527462647564556868036547813034364104225164282551642914077436542535094804689612929349119693195932390917381400885011939840164824776698202153447997692893685179924613921762292221584049434896351920105468969546102167301948064942333514160285993121402618355746782355411798602551012753011283910485727942175996072007636541435682915994989660929755626432778454102880019852995668276789886123818037820898349067041422707735775837308941007644655636684179152315835325594324482104790394297726392119543116659971145737068957035939502311589684725264999569188656912316743607986249781799164673234690038429450016531136865576289067096075088026781685644844964798739982805754967875527830453337975897945995430359482924417610785010133346756361106716110493445862235323207658142495563387380919219328419129819839006306488430065636473745386093107781088604224581246541823769625464517074481482689503526892582508058476061517392491768588650463713955646745229701168731518029637063707885013567407143862582246109044442867922680889984442349348428146162072764386793560070015206996150087979127048189116444656978502535251712112724618728231010851557167415649313438609400790133178948735656063028058320932273676451319737582288657083385993112296894694506931135393241511791453765701046174175859990594830458929555473986113899590844429064863628434877726148963774965735088369550688992186509584533343200462963797939360441855524366171472798963293628647583353775521587637980535108614950812853918172257967298013740656739859910956381508134349468538789539875119803224362941303573462096405458745182522488810318468254403262836704198468468126312827765430349092805222994498422734965882535704611953822230227388437894820522380413404720554373382538680417241001758956612657633879881186925888196884495032916390734772857781766819834943619060118591219151611309990778981871213231013405943242800599211661851588136644782686052921201911464098185851598721728971496046937899246128320327129399883682315324510653238221616179055921955505984539317187926285388094067437872517358907940765401523887153702164425593254135130289014068255859986635738016128922154425259145512242123229279174717669857874632244045553977556953694931266481715455448936835160180982871884568130229113690181870489171825891690814249235265266719977014490743631560389974660910399398847019875352791875521007504995739509552786909427606269511810730541730937875677486294876443836505811140863547057386949947397161987276832978357242709839045061546498750894872649489152926767128156006340530906150188555926047229446733402237375274341931947849961671533144006059326646958790454755575902000344263511575110861048076781789591533924304658615926874139778702244636487417435094180998219668144669251975142431109898669596009015877966009561819695107958085713543531596826323007411622923893348993208311561812582874056422729401221228876458059904016728468700218357039845331337791858137695827935217140053748786430686248909250097615718976859707421684883845994843233782412566476281635738242907470625888505351349326529786604039371901358725899558002385740779394268224424739289701360582387140625889423015803202866264036427425193785398509626800677779020329203528451731232382468987569453011752574944941354698156487498692710364014461429045533246089586717841764069406143929085825797935514993754813384282085077090331292723517010758810763389995652780321116611264268838948062549258059295218002572099000446180351732138999772511428005632141173726166949358096784586281646985509888614997712141006152308090264801381578109613737641985929747569228830350138815474675277604089697165733865086694364339644547013627155995493197204864404331378834688106835948620821136309868208785991449114803241934803563616065158645013423738753796644945095534057987779614364766741463835308159924238254364515600753356505189135231248937482877825418552343815751674063368874816248051123940724931863185544319301795745175001014373314671055920427816730954706321281389588374715954680803648942970527492792690016191350269521183616953972183353793911966192885204918359059171278876605015112536956443317854393336363799517513008477044107209240205041142570114162671293718285150292497399416482271995357992385058293090979452033118844612837428453051284922362577670959008066899490736996026760969203262907465304463009492411498875033116956531743155424645337345216372563613027180063413914079581117495672687228330566596108401536094654281035444347277481294071649305081663252763877532054900692572763002636583730316858292011318753944680691592722647483301412595394689577126645021426575618333088347798011322240223264941642504629883861365784569284344596059210147087169427331583984713799040931969010537601561630597191828507643730790497851989728584078204586184270363922507256515396459330631780963992265164076759868042996743881855850472573069505189348692353501006727196601807760923233870494816445099273789746909415981427071692324164523046682890024403877972377950197224724526138046997563250753901629721816146794586100043816864185092836134359682933379963026562307100225369933784859144129430288632788618561661506097516533857310780566417580271997743127240932580251595768535176089859129841305366624460819667453614043968228450818587181235995215508287180872519755232329445437257989272538723806709409876143921841920233044035879006546924333473115809682802173958240064924443445159049085468164883780968118072426171930899702385139577107872754660202217106341284375488889371605088809136184075734273146077904633112314067508186492952267172348622763379894654194218131844243061975885111927477111565775026980239115703138974380396361304651646539207100194450320434215946257411427157053591436470996076444464064643947437074017593263030461728532817708209852607680674584215744846166504308003194099119185324879706720484105807017801211818809538484381728730984418755998200976983620205904311908247366255817899344721297307175355782323667502118413877478707771406919811280854185693837310560470382832370924134710598089734830150388656227353743881790744355739230563377078931746606646570380796818112600216859224996608945526958828735625386838559055069054397551533767782854605661882811848403798677009479311309985574897787351374754967201281895889091196227122549913603862050874671502410642366047263245183981494039384564542192934944219197725946849288982587683571392313300825633647128158386478564946194290748459236065351170366292243711325315881980228974657957705679457127114670215614033335346882322550366070819491350160449668635210945845393633633304860612552492776363641267230149545419503892900879437111140009862868185822958257999173800394361935511143998065767674302092086923784980679561121155177568256761518577677177688702924388361601554791733539791209604212453795385239610324091661125977723493548693847552958304315799551780267784190387914663527239698988871030097223487616663072098384354622138772540414615171419149131001900025150437674591277828921257219797843126623947730491491978480200908670673304912466139624716332345448081004094467651607705042748336195890052834496107122047507595324932279410417539731948040258709910343780518388146524215822544861482715277996807574771269382166982700116745124500434901775117311760401086506695807107247697587814763961927135842073656558069947805409415903383204742160590557047255084613079651997112256212723989801425797992434163811983456045717598920031132685964745358210409357864342173463063211626516553858921223923645165905967151927695292166239088774681251872114446743722573148117901790282078618655807894960304747874182806936378971131778050605402983295489038899967008857951378326296022813273767119746267107048915972972853635582692748320211084163848071066010065419218186646419131262293695614838638859729826333559958047135361052441055652512288895073777123857322230511834144721955494338105179577466154320802082206102925869560746050667445108464056793377210626636407448722418961725135148501181029062626076152418306419467665562398913286027471520941801511990711651722213763032001613053272455791596850726509144493357682835758410682563719056656883038495777901076461241250161863431393291916713062910357114389048758921947270523799697154071063957490586722677852995524705941074992761134406150282664577485695340362513736835794856280649931403947675427724736881987476329493182910352359407348042315996326443368434720338457360259863687887474567031042773789647154692089200888145024718324352315344231203261874722448928516536934928999328169657379498070800350336747805529370610956832901555502157861337463943699290346747009893844121112891183455951955505397612086260071144238306934961193422679906520651585243593953069835088434754560555238135243255692957347572816448716113409191807726627827502222134130060518820041749488499889820119733838458012969957790543123294309731240034097231022562745951295185026515486721425339353168802361577983559056440094610528362249974675262147148615957492700933247474786261279325470581995702204098939419169713185882447503608366803347561353567603970956530544951627791028033307409909027111820288135171381348258697151324830369247469365057556046097200340371037643544416014530249957259627764081445460959201826148691600369051515922613018941225620776879449594144844096909212832957275767547042963963473374649515810579752835068214088688579516087923061682412641124775834213392518466813559721695040382673738923882699557673479197759114991547209901560224116574843641630554711376918118330889585277850839150618364608783498764693370312894714354603841402406683129324104555265301217565589325520347930252485591879983820967381190459064944102561189145404982711957495324410030703583824478253615858375502023491392406001396111205020583844162759157020568057446011816318626559740560354511920993343121823960640725934267059112128279620675788090045207859757838425133987805600036399689196561853190623463634903257801369840628078441429090666573890090728168974489813534012156822111337040972214171432093073145822513085268597436615581741049505724314121650849644165964342635884400634050154908353675704056494417395470282360982399935133459622147095090349866698113360316517580629465865680335496862982939718975092284698156128392590219341798119763668193489311129176041997869487226622700497395579237013267780156393229470992040263680991281770542936606905385432609307702792064278911527065411143640056068797646959143567017371549176011281122116726628141340114334199115110806545327669951669522893797505614663180795416016267320465334852429674137432209330271646196127757814976335794580514103519702490053107244730126870679049117366965440592303517046817991992963604328556141296852815070778699229877493636614630933079473859914577310364351418935643590058580390032830986219012371199721692846109441438739487082393235073822252084969089539905303011278225035956540318294250076582289631565987532670665023972875143459295632896408476205259447554451696949671520550223875470486286935554541970591292195228348019864664604973196319242793213029021535915782529862401857404654870393475400550520091291883697816286158282881317480556954619235833089738940974940238461481204896919859129293473141669711399444317310242416795462970560132618691554785845857881495410855936658509272506591662193372718990567622252377584434957653142866423737997154023933754415822030902702013255879691792820557299585484718418583067639831164023355889713239530016339857647531828206071148929007461390908774978394632574862855210451138136401860287291241188974152231300779153308200984610558857977136217197934758063446472046145824707816743960720799701439701627764700706611438928647054488875692781500325542355790182508008919268509224456536942981914899697593515263113917977317882498792423413814236556682430934379687429931280701875412650970255788501281788856170586868103150999114850538897744364417628434473029334715551053109637220111946998702264953384041216747755114450133105362267799543067875097978455370503447959453121426029113687345989062439185317537494306883537868667115163889341643593060980376839713967581505556233023867771205712859266441388257953776266263318222722589515349740969434485976424477831752853087191510909560855503502928417706087767250782728605029439034869282296508070916426678176440986084394696617533996221191738057396731718974347426873895921224383722684773185506539121390508232279753995531392356862899542979988185359882440107174848841304872440636565607657684685856427993576738983123141292625348019634669486061143738547284147109019429062013701259353922681597100171351336467938379235478061141090569998789916130752122188810307638520047489938197826977087100466751659945832755886807201984556336128778578119181437420311301203546103166767366266640292993189580701220957294286144601250149714049361311461312647167714245509389218762223863423065208149053560654767436665898779661193181389070819373289602257858629640136192457018241250456188209444064814238547436873048002213543661061360348145549310664477580570056392320602895215258905296046375492192392468128761784330983518528167678840996254509339775877074778505459774962300143076683364934335119180659682586065118902137324989516100115730142289626953010021450249229372981062792684085693152550563293896585575518856438739901656261338796449150275387148952399408377152916263259710768303939311579185597942068412207759474261419363208075069119283342861126116424229760142943420871266511353185922652141134572339743108770442052335378575853309693372219914789472010159938288089346405954270374574435241705500077922534236130676946013913633979662701316997663526072739122982720938754168119992476376639877854884977226933218052390460865089465256234270405922099457956056140301896426870806099218340602152651083695701046296873318387839504490667432545324285295815624587083886059620654153252405961212254549504879064281791361505456414745544582932352907122491638425716436612478646524847258879669091028621243428499560881271862451074105936583969658325738959148508727938153599372917855535832312090118090465884640362632406916029606644068978337593104868193789836506744030683514628206348793965948995295489282084850297181770405402677524952065676410100820267068125897747725189908388030723625139110216739761195141484074863973583292484311978306310880027925126064590643604082331200800285285884753358354954128189295405962259747377937101855272029566880456394325435578742885772182526955783266213195565810723220863391520363627100092653628604255185751600623819503777850864147666927528360559696261730952466962883509265732390138539086487991166048566157544814902425120261063051858260398938343378192696821881394792423317276924541359988252956204367530000031678160497412948946355681164659434690923534316531596984649629418158212662396168963723296081217433138534507476956602064645291721309959642317649014463023202045311258803955559181253538545804058167442354412637111554644911139114330771358379386987298431673824300107956955434307634797960176676830006729379043301728760861717163551055729526819547841211543960747853966331069960361250407960322556468304158015031413518549128606788968134303117965817833815799552876612615082049798875137406753865387556177305196357369633132595642723242363037668913741232866938349452296908038038138134660712806039744718654195223433964740824461650371069371336665914441547950731311042309881632861015947156027495144807500155786970037608921350563508838488391661805781507662669115903963495970639910617073990286368876589069607673412069964377999557216908336541023927475323378045765827911834630827257297603419255963001788886814109516527892625991655915261772098745889982104037793519361316729113160462360446230252897849459156739482146327400627937734234399005814984223944339931871824585160108506277678489824247976757649496195605675088518988189427287469472904336346306281134167630982769809095647077124291141528866441402962495758476595118282108267448373693205686455016293528524166436746462552017592604030340146080652846932545205901110482840345773937988532855225781654938509610763221671046764488611593945562748195738437782499410224024000507831949579821733517127785553340731247251415202808480228336592714732793916624747107502089974664312130499941853103516970118032024212401668533422364500977096427281019925633384458276317147958714058172094506661544708732574129276182550922221427260794161444297960443319449672711997100949020558433387645031753775606139849794462946040290511701438362736852653741065082031638352467624405952908395570232827567726266558870718330969369497505239813733684257914199359800964430786582391783883148924028804210769126660584880209722593709139457450260183465422010047984205442744936574002054167668561489853545699883407735760580346098920138816785815545864407904941534696007034806891677345453491214983317541936982481366061925769334248852034936468462036521642149279161747954472281158665214842676801114192271950542457927513431252242827084741494145388431883896224523770116211812503316978948914478957645246121358813923311859368262515486935827740483553191087877098269764951652941365226820425294357939755665432961997022266526394437670264005841372166406417081338486765332443376307112302273533535430516704135266946725312842065637164893950866127572721617911784417599731058519351799954901506241471319510848849290026937506238858831224849592779437432570164306260902819742813335277558666335181613886022100637869591572527752365516139401993035448289831783307372143248399241587634649731369326829372522250413358010521263248402719294048951191252743038104921827280113978649861339974911006912924581762096696763245171772168565704937288999605238329819764895611539192327753001148647031818882803291682251704111003704958876458830167048639819045281356255980432446279839682914273023406435095496746419918144498578048392589144539112071088669171813989483970278598258538411849075557440447583586123264623011017402611372773924087476503039129155906915145022750435498724601143519628370794720868250466055035776508203273729516362269911715614381066765641977586555027732429636621439820939005848509811063520747306437603642754047897746401194209566370979923351296365550608265982810266557904277167460043596258737673048145938668015793249785512457509212885813527027263659940350061763985051043705155035685137620490529411617543070939161320894131382228149357123448958046538580320169984943827085590027343373700601520482640287483509766952655360272265045464770510364897455483288417992737318500845215499907600184824202107482296843827801777802576685291394974343644401809899411588643397660726112037193871626127765544203492274977808938200621016136743627896629418250829011105769939895409948368691796984351919542307964322084358053077437964785200548746604323602079884879083695950210468398165320444401787887431583214843148712894119161010706180490492061923732154003801710253789332227368046710347590574746490068833648240120645049864000896666680907324510581331838021490020314246905573095369610343407118577369084817630340568944221824805964478918344140712966271997748346682788142071233164089213096282905664383393929706392872441373146753376910884013535516856523052111354365611311226837053177374408807025679189033915797722621775038157420733448052578036043172147156297792023258246057853735808218055141966891054326844977044229712357136312141563911065351009163865964349831184980113812822988024377688172876637657912253266447058846864584249809677572989049521288458075984412144591923885118646222358984962458009098361365347971414927047473903924149651592725728954790487440502933375703036717366973136512940342715388377526359485503517297411539561889543897479681780572694260323426121942153091571830822219672861303519488920770589334012792950074563895187931074511615992557872588367472312621441545369352958149007131153721248037909125832032916939902640435151259595200319059360652160370353248768272066793407698014795687585719427669632006632140153952030891495380635324156528186308815837796129307494265440188017331587251521012222337264283117858911965194213657946344620795645475919587214176859739699841224520130031093046881786704020078763340667636247233425738441698997088827572646749288885935583274091446602441266378306570044895579157923734892108303618594512355396367911067017887684375688586246910164210974070333848156279937765099708903158386948425762505070848120173226819848557274055184790929345837045979309760434393671757420797750677186800624082933214998542679339842715396296934758268514155818458230828027135595733184752601584081052535703037832876868977658501333858742763100499483885568486001715634928308776929921435090809895508030046461881289432376563812916226122379063215375885710830619169686991416679125344541731527951427084033074435648250248587477950091148734523082220657325920324685356925740132420287165304048278715863872418549686672228242265457807032203019822968737531903629124281906061348572273676793306323831752093197460122739111695505606442747917563676982635130398830619857719954695731649419587436495323648022666250032997250045708474190547076454919982059221117021979542595714138523445883622997537791191165077408386704489577192392535591861593057377377991097182862989084583529142796607447352923269713996891748066108368726151855321468621472709163171220066009227104426623889832489727636203628851030323810584837504133446657443838409996168243558513177239180861257814793821581590456286430797751628315253267891999394386288311255245059588867895772448267953679845484520283131315333804504257962230347482797586685097063101180575765718372012007866462943217756711968397166262002926101642704138792586924918651499630914268807949764694181034367507073804918314139414144185372975531909335571398690004250375922737088395614467522598612898696940075456407353731547591561576379359268248280645506142085370769430264489274182872648223608330827273232478443654488128099448187589186029494155365318476510658361601208787108865894965518214917393366695132478665451625125054395722062166522330143988166227243899819707835602239754687341554073725926833998006701339776701273391288517940064706168246564662842658057797166688056535145061138777435632301605961402399714728178433133541188716984661181737547827747607850443482402276040017948833394384374310142981161257887969357141919568003848821565860195350723906968336556579449560677743111098619226709741946568864657575781160725371880114067273723935434648352703068950305461951558362154751317654199293481129119885133806947668808975125214541101854268305130585487309179422704155612273363857704373055392122460547913320228825252372976581069678136348816355990115214319487900813744314738462976685135832249630286197241287233134780152519462669407611066413809604155975827812098686248288849579110566449957296346205944578452996764520349588289128109188308115527190208537332786689323053205952993187946905675668059404407253261600977914706286584112260232447925476482858820106508646942607068128775382676959452480771444055345062642494539657079768748991917923680705674607119439922860215891125149502775555816670265743192276135205530728295023099240995152483193505877945359206138186133559305359135794652059706255078423617333970240692227429959838345292915685721640287515211326074071563922274935881617410534039555158950767674023166420708331989488818149499953619777409422505757363112241342661224012816964472410100815194236080474845949345059573749258661715673100309963127917682518194989830288263751553176899019357099794395789248077342274347651382895582109540709061385171229114523035283309504170222719499343573111987067042019447994492602618996786897321268781528567843886510360829041459088847881653783760692963024372868114425818258624246720962049828653308817587000301288194128148741791417198276443683411332234667645716337072872758550319653660393196415794658234408074035477219221227904656446651801114573063492204126294939504927888415323412045878607209569068069962157743113487013501126216298668247093678770638369295894371784724508345494581698741036574627520501021008765674027783979674315622353890922953351153944936724038886408200351997258085846753228676345682593207721680028369681530580953477094939072202007625670447431817590491390370118153177393598016322937040330834219470647830116158151933002326766660357200745613552408408807552751687301323183875257404024839273412520876482619511117430112271791215209371095824919468923711511838868308655397090280060836224564703413870668697877844270317178644717036950796291669924935797009537198331280416567928871656446165734275711013889812574958539590342989016278693224836125976090260213338864538320820748140795538318256300520005895181406579981811635069417288716331535843495310785219273018476703048100367575991757507872953877667317134105402798396253083633643492407130664086041954681989697705209531941187594714605793501457693559299970680841945772599242863923520039414042964605962337406509110267444729060939843362221514956127961910083594571891121615951516828449789636262461625872552478003396878231394755179302314747088100420925499848282052237211039959708604207255381369719527568911291589014396610703399926523817523438079828836673666704662679528609839689888914637769101057204535129436323841543588671331393545875065675834323630493046094998758597589001825196981380668731353228457070615641338026298111373690398776699920809088625595582803796230030073909862833018040843985484781465372846256978351035882332088697471151184525815119552510824342972586437329337417455222778273673436178895224676895490209222639618589440457900566732937166631484382561844018494103527426177832662586576519520609408341779166027102396042540776539071231697954483073549329345570322997333809743766619966710056987881740529154491829351920713591855162552012664938689934061027472202135354640173600444457310100998285692349595568610549516492241595366420396723204665434557355952498189748525724340363187031283509022680103935172653703222906210504216968596340608520189445029869017013786862960125315117540402365840197695453804842629581531519854777437034723214985371802434351405252105606442282591839047556081783032817327461863518701985409689076721681692818344540513293917090965075434824981061761296207575303371673385241569454918791155935754410332082760289723079017137108878542473619690788077624369829318096552803546138915482051858134664050958445476421104971011046772970558429764326966906014622385678349034269025657474626506520735876737334436002995254621477006633569118759179007914445721281568306492112424395175845179157430113133758145995152726056676646488557776560332922142417668858007260331096322024569575598452791471833841543622220769264868068480400214446766138944962146787713436654825420120326164028093147297955660583666456671664757824757780373286011179945580073582282105998392754473418994890558213483596661978095612286445871177082289602613280078118632263711083371463066870247046386707365014910488209808179091153829692767285325510233526841616666141747722545551994523639698588288978917394578658587058402215551598585566163182569300963684320376942572713622184855666565439630162627109078815454410427934812407837146378892628460040717330914731384866346330944890495508271156452580009207919181633760041824480269223381462198161856137967720709462999384604469122203491771719968401409192995210542485760079398094340031649446034048145302533352656989006610001651309522130176360085962360405893498971787822845902043823092986460895057260123473746799819027753771567033644459123854578259619577976249670885930225170638403738343032773150490528860667033326988927770075332337693185446274585369900070899654130348477391533078025846987507484418660256804939631579622248416046101219657909046197003603123659328181318886811219698881141882225058714545115523303693241038248388448909041813031671998376014003032606872145859826910721540320050796179761031823033111329026450053345591465724254731512472853911777549128438861807255418363589792998153550105976832618642523679824681290250249495407568486560132721016355746038542844842752579087900432898677248838407509353109128886408393659308688264329681195669520075244465535614149373042627354728991206663523984952717286439872093045167529228974432168511083088479938294988004770457023360750336593049505494198328113636064928094591478781509145070495106768593056717779084879143671164648888035231377467946049493301297285323656822630522492466565894996810034346293813955279086033053133894171220174213436967257851879860857787159580248819655005901397445056475393495883776254559966543828739601939860005848896291242793941663660323352617278731913083159267053207754370193208999917648891914097117460317892744371622193654965915077299635445118220414920459125887415571973415935394167392333300900202105658455634865084563991585514672731714569359318838649469669112783018631879393776164177589515077561589375316340835454858658272144333345001826104172499315329320158553738273565569163893976253734151211113138987853944477826921133003760051682991612262460111340103349257317308875632522242515602712555688135181463443590470823633776565049418214494173861566617905278594248123521786077397631441313004981652633450948061861682149175666853597897091919852323958792594028409320604550190327345341962731551806076107136303682458655897321323479400466279640126319578665774110318637937122401013760892727441095323814387359518956891173859364602667863439554837255360828280119788571966376541341102672297666312392625497124406573933768340620965489494615836879913345777157375141092436718065140150528824485914160440998731787576761138177630414459303903695886089415027241004445883176062798985801070879139504332359440018166738068168101185982906839382516214797724685015782426453239146760305609151393610009026662179857272068444152352092641577898242472562526766902387100807771222001654086104957793729933683451240433678531308929938606172152480911098086087907984821870287958467860761849352384290768109020644330926730491403275092301996721273919703782132383184962770865892411582409099332027490736696009722011550282786240281550595177736854852694975942968489967634867351551090384023466906694304384782960386941944982676061586924489091574410358663397517380291251259617974496257211224872848164462802880300902131966139304420976195631430861529753209769433897798097573904265231816478514586982415955148309680823572076036756606922898981920596074407313153301878915597029850004726660395771670644546985288306633379654557401275573251222322625188057247971284409837308995352392242576646950697365373604307024033060426913398633353737398109278540554873374053000400355585905757414204180963457607933823097146207949464048681563206409151027894061441475989860519376761441629665355131571278386514876683159075339364393190606321384590147497644489350551470408636389093908385913304944318991207106056679513267241937740231383451580599125081490085855441213849391630366711361740054893082871612598785537657949532452239010247616701350645051852288168746760470791605820431612542242517194220124779060956821059055014685036927130788111661466411679849515571326211532447071397032400847044963442658809193226376150547104299909654418439570863946141160840674621221060917752289451636533830484831821107133280527988187574328382238303237354692788113288676535220855893474623422601984886491728655064437584324429577030235524451070178424215562718877470214081728748503674725822482642199070432012865006077374302110658917919778967268103363265234173289794979004224151275647284603221468632963663959358491745314621780611955198460176872658393749676549847769598892473893703449049417880225928758449056916092549644241720158111238391012331189564849358428918314268106857539456216689661269302883035659118583868391873144031437155391814539688538293289337035143688945034748116631436140585557614173511117771148423971456047433247545587510797095146745712114040780504334727722652685889778781126100936347692001960497739537202321271165045577535725208915522270377373174249269688010471413300805226572133884897169438489585314469363792662344380353208454077070885286749710756723799921706190731033421504523593119776127761170567905723407972681851046901970207114600753964032265518695686272665745239782838811045708360660449214518808275251152266951000648363385496952070079509140342167528222019628128391835146906943812765822999865738313896941543804072511847471141901990211960950803481486742397670927435005850072928283768634731187827000603057176974546716521470040042619163510761311920952045235238875317519515937450074748075623028360047712641490050947677048362634115846999202934057460670654355988871964833958193507675456372919634539321429907696248216978134642797421619218127187088659024309637438890935726030299133193455172235293185306636069140352993722456035868085544561442516225256173478177917479910598930060196052339372860655557570447161602802188998434881941217415829932822495658929708806904949142562844523593096215808033577137434310250153062261750155094642926805507557744970433311263256972583870770124395494228734750004853871220162166933258396827259382061302655833831933483416652273347955443076516606844875786274124522800445756193208569312948006149052908586780283543088463820558391498407007686452215361686502773929945317922791393412940466472450950223216475369583316921824657914279363511789792845173635478278343356520410656408213131767653160006811330685521480118015426379372672269368913309174051205454112827255740702106434730723987223513873317392208113632241758025718599791595633523769800721527568776386891209316118287775174384040357379441504278264590169584081572723298936637813636532399848715421860622574531119564880513164439431970970591235183852964630938150311141297730714220007202720647142739381287479494697856757766472320718146022222326149295157458332022806983470734357420081382471357830073885315126603131516754952475989834218211480320053972458222184226640535036748492561061019865828813564955931439327892943668783453648555917012431625973850141092237619533171366374593971697556960723443853488534551506114221153488172901730677462091404182752734792590081025771176460098303692701465726763983222261907211157144477203178544644074040421261167496764665732744441164333397327429228002792940889155556957890636183336026318032847196292495298391355460046570832831820223441322775747613482302508151643463931727532617019037787055114203052275025664083879282236833283165562565357285818461267377355908953099356999811950733994873594858955855913271518576446735413588534857760620092516614640317761857900207571740476648498227290959336863060047742294081263589163065956585918405827178661540548553732081325976831359296150774257583876766373105947137976310295527811162181019137009277976746898164830425181110799749286253767159909450559120217855585718099171166817729424532368282271872748085533441573597355229336862018668582404866789908196874835977469245888229513725239136490280538757963593141519651618659635653538447353652386222915799085782809386921320849894926104758141496953002352152779872340951080058708986869161606512297784007840676697736770163008410312233239470645326835380625208568268143383114396851046649431671163639078183299727332622764851424639744782100504260323509757806059867408417485780289199798957271083010712559381653600538501897131968193414083349451132905752873449786383335551097464356057125048402750924547314770578182549777306966486219013676441366326004080232390161814251603725650815948554482572246611371165222709705218077771456734795489380565940772165632688471652911115462822389780427027642133782928836644879332612866896999426262770689563280002502785024549583524730284531297730316794976239309661535253782700552880996689357886323945010222350318377165346907115245719016653615403622525288287408438501384612201637803711636559797093927961503598856354584336352926371375491388319003121636348173395323004433476429590028392439436931559816481828022187961410597907622375305681536243897346978320283922255302999331150472352525434387068174218430671014175273244157634742555266161161542500522676430270566331307868315390756751402076211394657451026341974798328388252444322458963988369641668617873731259794867198280278683454342976511371618678665012953824388276508717173433963912953627077527610371507918398150664469202954265636467533552716529360256026122492655237818221365087758105440848502793130050855881584938136661382508165627003890071340019180839239943194054163704823947685740826312203357730282776109901739447061990584029222931851185722701987733569501694832632075400023687957781972683091864996280837597965250964584903701815774807986677737141597739387358410699900134433452687562219460651263060670460324313604338387690759191564781040322429458343272770675893160573640936527410077403024293125572271257396533181274753023637360769359640775307749746662975067956111314404767263297340186052235825189598456989421669331384238916151807688167080143507608028212742210319523092587578678924638911682296396832003077525449492188601026910937203562412584395399759840476402407849330166023243473285924489949441902307999813811945112194632276607443290615545904397569242495605607445350602016443378163756105003070927108757167232859042484566515080981029810902395451326776096101139797835761288366244968077907390089260979973271616880659328631143569453635591866537340129705702638203355308857625984180511586731012850959311719342887812790430839904360752827992573338615436015704102275646003529194764385758768421937602790208782285028574391277854942193657281500722906034081822159875863136138766730702102897871258845898410574467681025934608349074303022973399159712042224719155593848611135370812001729846143791360678436667032242528188680686068905388791668955212351756474222710272250958996047000424925298930559967057948169790721082747550348104244408328042634087992388613660337301714235900114097872729979956093218526784607214388739478177082044987246879617005668000806290626648475642500060387510416045693123761309882631752796552400688208204718950323561871559977934654226462445817339279190441426368208171203229833978561118072797522208889443760317443510045933042356809556758579249255435360444047087548424093992105447161767566805606867525607703007416898499073245711526401179236115638138226429203020942071331519976596876181782884841006342402437423113714748918722246162780355199244343441008711676907387767053592864454749628759271743698429317846254280013929986108094175637864089964582839893565744143812873398452736881783077484201106468937594149537128431426728123641180515313236746409732988030437170873383474143993157609334147593836157152469504358805748541351873779698750634756931327240009054117768357870097315513277332626605088648548416039562029425291096575079458722278458235957284462905636195146875919813345284045479413278650071977900382874317653306838060209284083131360465191438222154097118254579243948789612389582029641545044206919009093041021720648000335963767240490885863458566418078409092072045528705574776196029874268195263936115301221750333293840163936637085874657928700592276697690095771393547359745521820566622034334586019022901543591245093732894925058724753482006592751115725881180013086695725965731932194588377972205047395071163359982478851073293998020789379400016588142182049168040432913165592581021644988774253690161368608836034890679247885712692469308380215313055688769726043312951808354249337826089770731031584003198058434593048456871105126667879519477810022569070634580020836010430214444313794269099729152756135913638986677243195283263473445503511259767850466231256553031987531972258046636887502978383365927319281474202945289046390213616953928844493103122507964449971484726607971012567892421169916194816357176428526411287791562179313063086730293904232984252887461268204958852873236614799370141512946272222034263827140106717957864386479677817123479245125559667569545835112109464705283050742068724342280572405541584384492222275416826467272934662943120639537727897367165071613724977473415220281466804118720060144080636294942731741582970864802700950381591263938594434913467916177833413220404434364841616346926218566981809922236878203119250175175245672594988881778997827264252085310194982904444332652045259211528139541604764830017714251910304237182420330357925759181641085344698725555071886460670083530475701119250507629418304462682745048070494054531186270100308705728451304294047256311022984593940526288713140378509661171353918674369962473903352167709751220696688375542751197128243959701672303338077557427476748148396988376413467245447163821294254683990247043933868097697371351101201646473094826934081218809357786565717823698476864722659621891263489054617073710994560997573300890587532547640096317430070619830885363028624921427242282603358592342592851021489183599789820481850141577121874071792331909815642401755080357480083759700200505009701139737702760994522252695463628648532341285756969239351869281599132455163295306869965930278762380117196442689015037601910213487473166051387656786771030113928067995560445790429295711539138353188099320606199114737358150562709769481472380043447448870158172832061505866306370969491034452613627734144906730841672909217006821432746138745976281135852385837847500682091600436435987869457834638206146507105094139770073077315203356956341682204165056915490226557821140234314657106145108935294942681886161287452319226683276765284677479482391928442429878205507030589536899917004856012753185698369842859742149748182513231315589908691373944354422538129296924840640166246084484542154123324934778406980109346307505927198441705522678997891535243566895576057758794190275250717016637757570899770545063214487792457695855510078738149587686360637913374563104107957503329903641812625359920496960878498847541237340170020001106425421979926112320435492493143459593166401542568809094807657353647717525144857490639706829770079687917942023690616550765500370568566870469806943802847398567802306217638442797289836302464016231867267478406133389227105128912385997904772156493126821591587605855488467253396174112663228188346704572169241519870838918545811956540607201746992072139067815766684714364302770146892756838834106456167673989696757205375928312837122508996713406607905101381099605017963242983593510067826316221567171407179159282126663419433064528224910662180105089654787770131560212955450212541061719655774666889321713015045044258924224955608129964240253694430051373326269036090502011231450942075897450449246251839152720057372995781787345248970693204544011952453871769562295533307332289058273644393562812355759876226343283696973105609869915809767033834773464028421070698828813234417852143166745713070142288093359216119153861585158094586167368944928061260417149474607739696496799475053479470818936594234056179084826498810008731759444023052630935870485163102709197417788179926013647588250944490612181239911831342499751869514682489613575243624906009967608773511388568599043638908919505075636737998162416206785531489986361503161043757380895181361822285007632746748415369372244838564210804741109478560418862894188493103155223038645619805473857183380766826658481380013652056209311823262971809972002803394177535961470958776771166414406479677602570141160739274639692682297105749435843861017028418778411867541390339067922079063799112761755630086478906800117844588788988201270373024441106079595032960351455940646228420036666081548809958363064052863978911719163005570828062472404487354368319880606194035548631747973012504505649710936365585807150623551477661318231140812134592984690249088412766857815352297573615612132943727404502302507966334470814887484404787747773677320782359833089501108300046651516959610061992870068204128015218703354647092444472157882308697489439190437701757434204370593493938511682063227260594553746147224314573644070784574063841066176273122481502131224303046132959262007545617273280567446179335164068181241398595013162414844111645571697925205917885329036937913818525760126602931293534346656636381766357892710146524211463452393602314915272163259508523614645808359314325904573644294019980172205060144144436794906478001732293755479747389462855350063752130688429120686917304445272715518649880230349322970926301563473968396737889945941982900706932490884641270305862206326587827939959004297662282870859143848055803273136869606173725530191978299769821047698872229976186494083151002015542902150104113988858796421706424852021047888901851551914668025860517417043823956620184006097122279235253858554083402212293253781218504770097829796678082825693079068352734839722962716137548623203354713338975988533919765942500822744533726441027473798577367717604694002125898765248044479169072017008912098726748888922570689589063219042454196504848200429054197800802922419233853635670441377889758530933899319284700735813533520146158836806677360816753566570676131106052190140520693392979226135052654957726712841124514514158452710282711631417025039788717229018947214834058560709538877865206898856695349465537058942884720619620346064964646676731445355959190508595623741524171527119869613750452305497632599107084187351247482950815703782833946364991824439826520288746112604760173109345742131247701967684846711030398700069947053883233674692073364989292273129015833288197577543808075387758268905562908193246240544729135858517922931079066596336687925627283265215705019665186702061893115039727568677381685020453562501784461596083415634711422171906604678039618520011693009860375504704083717339174808820695931347776880855692008796067907969993554566295879622075665859838951120328264642024197292636746886276165884698677045533108177429451293075690665957342088675767407696753698476100552752162943250630421703631158483838461589165112015230565013077284575861154168409319008612645354442530246014124524589419460921454743620696608704178063769867056035509087830467358912582818613644469598091160703225625480284525563342668532723084694499349384615220019241067230383248312187122549207174374539505878474399620649586857698530641289516881633077200652631860509912187736206060172058832165887153569504253611381471529336263199711004275728616879036924431801483221447257997669498654865789462056071573123804211114624150823386036720074304942183670453198319657878370150538361582977185127204118563738666176673941991681479774996085953781506764215414445384904512415713569092060539379095447614421556918338119005491720459486969124018189145685170127504778608463237368451574357470819243422169832621258817386897014950291053712424919416117603379473393175478979927337790305952881602520395617431398858925696271618741302462189342413061596303278958152525743506751783504180018007332479414936622639351715342019005176506635494650604171895817876948627484218144070177690658393259024774496091115735210442221548258900007616284511701612301225114410092893878197651962796972109051734359905844219736921736617512417612847955935414574395631341664360777796358117960368286385931558757103243269690712394180300482299244154943302265927724045615720980023209020804161470306278618739958792183354129984636076602095022157698905069724239434860602253633688177176661808924066736737675695589598674444584571153484689280512443794411685120163375623737513436842518019911965891513448176978159422901474339657915896176843680883625196408779482714919755632099780013258526056193475065251983253710409066412016852328164362154934844669653252060644028314322448315868806996475920627884603586655689862514222918424266032287515065981269821044247826266525810484069460780747504983241836294471975092195891159307222376476168738299039641409742323013194377806861081478944129225116599421008781678345587689031484240201713499997233204306629220481780548796656036772324268664662381605811847052434616142509783482242964334728061173646600198264606595796831713728911232733283477581736316953616575681102254553454178936648313281187668164257047038846098008201938735357430602937113479568264994347348364594127834840412498535088128438741785164083194694526514258313359225069894198428118056692994006434932489398845679377866932408147643757917791007883648305162643483464165346757918694406170656291756826475913859281709855305656886149387128132419927524765485122910875849842869018459416392475527996899576682539023964203645306880426900128681804181111449461908808788512130947502817398570879105942348596414077803176311607032389645852943434902824001824795819488925495944240907239117511481350830779375905538547373649127314560601382804071602396717513837203301756250063975254371538112681992655807302586326191354185127744493518336741921633064808626470472706461002454632326133520097825969636607293384839885923999268474746130426175741979494964358048430931454413710169729627865658391298734093164469920094921392998780746943435779587930964811679055779539705048740539174373223445128405288647944653784782257765455546248259903991847207212576651929461974570055970484421647879153216816720100931053329855617468180213660256466118095173627410806681319517377711147679398686691607787626235477909042792350222874054215246458661008887007355344036909841859831705811543967133724475827212379909152847261248615329456852397013884662255697445205015250520348534410760411297397711071033833886497862542486413607416247911145323642618928760370975167966902126193803666881804638978663967850857236632447607986288182512333238262533045301166898546725841754279860564028699980034836282054041470203557275343733994484290191925035053462859524905219605269033023813068992762924230462274958183752483488545081078626066855100409794214267558645614415642907268890626758261601614431312155159920866632950186298019053371040010328206237857071203604766786339741844380661825748975703711583082434873398553786174913274550963693128637031684363140585258473196506268921390252789664952636424299721449955564945626419291150692762562086643975651229628076729898566820636081694574261423691005361503620394453373252866939546674961025097148992461338844795453962998667125943897679415131835093458259103009525350061859158923189504662920389378895878933497017540671607327521965965361499479556851164225227963735132065298986230586831621975661077719171614470230986363551416453090941061142817822808631861069996680039717029955171785991943909353933911408887326444049163932386179071400127373187282342007831254112106940975211110913101028999507251953241310375288727998994314606075016028825601319301970448857616734343364656661122693700548832861425259097953812052709903396169914285747358165785392370458567745440365017042654931793208212277700645891119783256150074373828469570915603105567592950157583356893521469833335116999932246237119753468920689961084516396165271235436594716821857451375845250807202051510021281506084305108463579635900355738391926514355331423662699509270050007117010150172215370229705524757711289961053527402673657486363239982704272610296355275868226901875805071210842820309813035388036330518530092521728084987876579023222254604703847579571956521193180587696490486439548790134859621520170435372777303315453743634267403089700127122269545110916003116986302545644469395089081162959128416651533256499073136165073718012691393446419259649174095131117309288154597671798780870027653120294407693469507796262357295033981422960878637865737808948451593940754639897738170217395755935740601911224790288086601925719418474832496036081846506609304209383558501254853802764014589444417776861948777307116679874557672502773154749535805497832368517205079150200044812628088908837381984764238251322967602477382745126731661111341756109791631362012120268292515612223688735970272545383189367290786522670966702574389295938363705388794075453885282007562972354683085016085517605105530751015541769139957789186812420765492975335291355602831963752868985802851866755178716974755555082046238109134137668215316413831010472956963351624245861391466373706871620787406782329899701205625157529774666888493046791460772916867314603249967301278354829393661643647990971947328542136108873815188045605776492449988530954179331314527664387702571793345738530742769579016447401383748529072351744778258753789286696957161827415827578062225945325019143525199830612064585619976375591808853128037134259812225426302452538811466758396678463321552488506146938413394316014977031863214370029475850170739689120462327323181291114977880615322265332341334635266073316138263801617133937726683964097963182546322949270427430515805346753562070425169113831014195069614110587198557314954352573593175618294304305387171452235956845447138136365524443648760031229489432994634837428677550278539332197403665637298364182031526100173575336247089369722176533980269793961734872970774567495934571572651577950979108453689439656672168336525550708302182355631053198038093452269160053230270301351792495396733055132508379668545001094790388039281505453462468174175761851459483393604229182448942493795229571478224049921329971292601653624959341968969888893692505665519518767785291932402869584595439565672994639002165624908997165929437300645823244713270229141336452080999952494015611373561075488271091037731696244251772234885563166637581530479466632650122123731622882989067147394805365117369558173762221156248914617277738853359985259273831990379078368041728468959409318910919807041810051807575916487961709242224511907530048158595598450757652345567341821165324390825690172507343065707685487548499840037036448211207735705192138720666454428531297637877515370778986430839632786761815596207861680904319383600900790487157499679100149882510278910827196153495523809621762829072436420039329056829746462243784415466373008665181591334608570129919562618297565079007976209295164760416641535754773279449090002745569358619367474032696773341485814488000178752560511011281579579376799284180079571052492877692562809064632096433596055828899361956763357639465559153204183891701323415537900763626708591133872408331656460470075671582763655641702956345701583935750661879345039310324693294345617139142961296560573880670345867608665512264600624511420124560840803509883620374376149622944724786746701489086356619496120310822546482919614819519326156945887354520397349658147217330993395156263737112029854987299805581165015395122422514807297840950859145958383738624514161320371938267409306126816654220031482356369585078199490400095536780164418109400185631501898004054272913140623255174618227410979069009513691881128657356711811381133451602653351438583287980755541371318817224684990328402712733556961113630529681763725981582619664313767467994350727305058674126053007589993615817829888394619320003701467727385160050949763270017990837004063749062410097888248289798256014982564413817246238931400912695399947764270983131105074087346915030438925069290752416273033895313952930932780126603051336863504513662317197244208833829919788290685339269585440278373355570946026588620414687742282538558729847512626547355306739698915637163482753000578832793188055431203063602142902422488379311875279695543582352384908615598364940854995142350142783049252961551168269033002399030070573152061076322133640513277150346661888369034285336832155712144507039356722643932215890951086680764244304474068912386164568241873028055094691589694681863539059650980340848177754803316322337704770547875674032435795065399666366933717023715136145168780931682901238310104905446943482218808732117397903847300540095167817271112670974291641877827210657106522351429964514477239102317694567191556538204774071699460432526055801158857983472890601547580187910049675115257521056474926482576577332679997453777161395401586833383454301148092085423298414586671379772985430293931565427071959157874896291232521066622371982220769177543867194772803946793771816961513710750492586079316133786413815382067068094063988726545328591443485312442268225684772171958936576161358910094435386709635626222523185198750590248534343138012200640607292690928799408656298913719014486453488403930590599106383591178361462442197634351204135264904563039169414698753183634353964326895135817686873515478272802876485015523536847582910721135116779061339795703761685729417257271684127247019867560385427817285280646813634403198528520089042456218870632475226587151875866817525420411600967918364943200992518531743121029400458105550980797687870073622608622721669288651153351230199951574856512241601754057078260471709283944440293524376374996037085131635872278693185777068710895422971894050360689012167335355140103861170949818778041498491722252452266094795634689831327361878469733342330510543805611011771928916285571649711483384870388992672855575292710517613328511674340131316677440110339541030758911088863488047634738733608152508023425991532131950937510053298225326768137348016657375849394518333901215434518092135778212214043366597085361948676647978460715389244167961159748022919880207140009026329686330509170069891065853943577231196242817074272668282276097502553020378589084926782614375354595777669366553758715312544902958274370449756478447492513333543034185103263933355869905076100757626870893601654050668549363101360554828657099791233913360270819798141227508308973438328504018580079675972591550729744893377248998753641823733452415998587481362620173846773787680716349447619274723717045267408675180852678534054037888335694295817967599971011935730086762038995651772981496279305259439128365334284877297984865405561822464368294741347589512399927260271845884944044855244394571195891034759101903248671368784885998941711619195137857340487159418638877325383472597172688627662449892496533578608475038152630841986471259474844288451094152689364497097304144866136388734045176710653637438071350404273624603556765883813831257976563943520801956574863952011698515230029795934703175378575487701223688767446902412787319879345855128836981561238118680695596869956684798757313750569727105817387551025284149931335886372231112315952085969350460251379565515059771962119577302955191813423220235213256210570641110400100739210309513982885916073367694815555576116495222069258466417799488107647581942381554464833712273342676551282997373742470334814833937245094653849458415342828845604296677177576122898183905753145269174295497524643686150281368829940181032913994622826727395679941854467915281258887468100896139859746580821109166420207250574567574090575576544315506167941832264481331243132980021075887296904427915886079448972046643946130435280201723505865723656322880117545299525245501128621412074346305928968228111457269605798482974678201104280482656989704327455887278770282442638533946675775737575847758083597746682651492429371612689366282467272630994661922531778368163752884116849792656096427915549264077993047819318647803064639655852835645910382769009792187912861748552193804505752176224180762423025289472099732456199003865039963097340107092626489062086543301507921590819385677417881108859773636982899840445271455149751859867123806682293705135678960290045703369339849621220027969304661837520788479049297194070903982436037863585565912165723017524627729524718229908918153385542208594786330074111564582200922268117534548549712740841456640923485095508213331092618512442165822858802829624026738227075643696013531726028539645373401671746418546767267269804068293416145866483997108597284909563755172067266454399773932021165333201249831518309921603511975126357244241937689468691503742208564485816345419196961381994170919073657632875082655897793853662241521834614184960066205245375000805410632902929353199567353710961076610367565980401288375309780710317951652713962504944704047430756447652968283999545669601474588253376790726768882484999579257599073067326801095117810063885225670567924362636661569681158635574632888263593304981186561204685243096419529411209561568017434884555203726250398124961035778821776243096473997807022141545960315263506550011787298242657292859179757431876721739038028982812781991991248280126831200769925667435645162540240371743905818012671248538295324758814881905541157530825883816716043340173218426804969768780886327796883172275990013961166009330945367878715557186070258348716335808079847053750901749695721033224754561987433756153814805792791431967630622369249287457428297838355705508354727301616455004960528951570385052351727237425419736795224650679753634505952050546197489776963395335482823463528306409892337106605239630792518181992323604014905999432790573600470420956269707643165005931818932804382027237914620886319996873390967653815374858148204169127875297086972124577817372211060833247208304816677416456786650633287356983579521567801436438580572015989722223514878004852865468306003024038994933277401894710161475167256121399579531099461947321563826307085087642500901182545203533886625270323317932226019982467820520669201269354376651164476118534472240684682959382566117099516795316773629482185742393792963293274711840713752336302545871500852376451030502771282605426747393145024425132979085952292299258010707461616346255926185806888093571989991877598769329680385453107006836941818324481456103949432911753581568700991520972332447650683992484000370294625850010249193583765625835407327946588103332044795062747039330391625663616345775882783052791405651635074113791810639703569711573549512740713172424750209316943083234985432616326547175905719507041035596704406978058868684838459190629218177938595397607901263348360430239757195706613738960340434203408431075544570298840738785325586034208913829661149131157897089929912606530393528994551245470046357728604359255709883476546292811817427902050545319758264487716981719489477208278758838937186289430120862867369703046286581178373443264393133450776966465449627176135390507789889347137770304653480648676283853812495006102127253531570410075541563988044589961180772143676713836198717434859153258520181011652339889039792072918505672517147763138848745257760019418907626424914407933125609931546174328477558499050159423142015117231787175444986613600643713927665291948111646633644442590801162119191065493387917060010346457303317051408045540841791006676050890202189095998312539763603895046332229796605733562404638812409501467483223261081025407671323113020783421728426161460083424875085848055291496783669315900804311207742327802537505662697667428732674341862653071015425648604049885766878827800319259671537379657535629133725872441376732869969786852266526112685818729968588040299992768450533466630539681579266388468586341873202381033476504179794555926449355337418508901372972183438772178605019083805505102698680458610007544994848283155682503166902461903757924431967319662100327417524040356284513519614050646369228536707748366116779522298268296980498361412357658365607372194501307250882299489827242610475513754761808214686347801698509094498671506171283874892980940140225600407043343105216447035757076684745004456973492775496845645878252525728193459423412892130683837117344408819700209293509266198512947943039086542194488059340774344268963846331904524329383421195937318365737394200991037162479050274870048246498801707411379055065895731015240787168181163319271458492420459273422446337061668442352041750751297767805415588392442485712400660650175229559789255556299810682839124459827760789462534292482689781545037777919507628224434541903555449591919509406796059999078067377425998136201911488696808031711268016012816097889259024340901702322017840030515266029372167216709476845390773599406708637965610849557006305218916351981340956481662069677545188669332680827262345807160165152810086458706797280898160438871473694386301317382179098990758312958156223758708682876776395382542614517473412606344296092590717365657800293408259231555563824467298255216653941349720124914917268759035071980501275708395189646073209115051478876522169055392267494741922590758725078989445154639089210488942970428426747427618988201149887711860463985368885044780454885603388782510815637590774230359238190422748177161862540437114785883400264472915094256575216308884112129168608157175805144088491773945120892864819431827298327452661881816895753021616553523242217426782968790721980880185566642743876632417038000766626901225356290666555380835724802026164908410838098568174038710776553453959239031661412376321227341686117680120415221720847714526720967120501270493862941409181774047380438392986710448468408270645169891573651813735512265728906026001453244369062389933328691395641600422995830908338289639284608850376752113677451629139296357488239953386784312118689491696412617575273592321429798980397408931274503059440907834894014690434864353477143678977978842365107984795634042711588647822800183177798173942478026735508885590154262152178039379805985529798209963634781179041121090899393565080118782680745520022785227623191458102405308960322928571625151471602420671117052421572966669747184305290753353315695230010873512347318187375308083689339741801835829070362865011501250754031151534574308635813013951632030402885101237795000174665919194064813046852818926206231582533447530364096330275377689894387275432268922335107294659443019237027351955001634574864590794431776531879602149684905023735203791511242204641431814016362469371502152310311874760290212117870516756184841695808605305728000635233513037388820814148110458582544900576703645391524132530135766997128754914573224707925507710864869119803142258122277006267812484027430707821990269065429147086015736279667056524098457885595799518519291815586947432422898344811962600041461148575679732008119460422319439375332112103941083793489730281418525385926711820179746367075910953941951481649326230789082117399952032433061221283652154612157479858571741344510160599341392644416601040088648059622655192382430640682942967421831963620661836990424044927428695950943783231811287757433734511009694560443737514054741266252034800779728854759293789826540630752129485624547303607054341622184631173539900743460966594297073070001433646429988895415779554759071343979659673804419493741045193682182347147103355350052395901963436294219970158884612653286280598216756782971675924657298599376964369048511336533011144310652366547996219366807258328344560142429653577052275521688440998621884492816161756722878309498368377675460978610697192843726885215117492481921239896719199869035740200350609065915521878658087937918621878979389136964930198764956268742263662447114886488262537637525363515714554580375924770284669209498964178435933986982552149839260007970504925560965287210727526096138290856349862328174230096097550231564176093132791920483632869148773670132981030627759027321123689374204652475719294459121071017428577764316594930614348339656998926520142756614263464426036009559275147054682714416092747723790081188774233562116238395426248951933929806113605224213355543437997264377044919971573999648232254773818375698810706279816229472088334450398391587122743608962990785524034136775198054360693484047259172262296923445576709110716226365690797435503391981192154304156354946341421744562300577179151190330581536368055840248307538475521016770443548953840595197298088678807614876354803435501583804987938560908869916349945613413121305946063769380451673928562737844716261228472417755669409691164541949354492780141715843636975086765830525872783346052330569630259059297016837412714035173495706912156211175085428711255270949944555579553810443316754635251963125759412172432673874646987448069302732797076226794626797258042708119307278456202621480354524134974439517172071466579187185147117438655030533799249015391462810042769150537070455238409633353181446055054435655490927989485276839223593251469574215792222172087268720142993465980924275243278414220932770180905504166103473053376008268303676153869607773893399643470397464985068660433658404371417984089502379846324801099050059125491082538921774150961472607800867149601735356868769641116048599331226241516810649811231932962583575583946977302451371950071909153158061340335959491428594172628227855072061859247061358368996107442062194174201411331146155491457981740681792882921676985123762491992740466229614117843428672258345505255819846570289973214381733629196733897656268481224639575655484202900909120535111676195367988847264623085375663513988587509334345584762924505242800822165339775612190140222900367583984244208554612241743906232257548771620391363398252725935623793787871432181136086152093772888220408885278983942185032923317138965038862891194622923157442070473635399259264234544108092642737107215033367454543580285029825275232547294404629797244068630543423485011019326888900208817210533241106757392694751204452583360756154792891632389420491400562273225779217525112690812878544325960547878575776238129572650387362107252283569173209269383841070918013991192604394405993166393580837619367664312563803562645525727336597672230763927358634246882883501134673693310164015653570649677816255163934833548119842958428768597061183463220791851423858375572505417706918689924630559286882506063804952173370876329461426597213752335029731917266183406145139098369410627747482191744811655770163831280461293489936858900700228295826284810728159630010861976755741017318937929911953135058465610230264722463233567573641165723027786103423778728477316946391417410919372940611869215039467723977935390474644844931571066411721883583910735463810834763001900399985689217612914339209378794909637619154234247987068100811267482128759669835892509109664645113428137251395706507560864992008796544129891773527332793556409424304134749762675308743422071445919343527408802968176488771570934268131955005679380823732243220574381911006034222204951192424843478868401408595168100706722798520906028379249267035010456659807562554464270049359495733397013685777152491422741341798820938137184495135059870943510558058521128033977277955409317645695170741865559254540757250275939585787164836890128006163521348185908607013259616305707207497407533111090299878786233750731148770098598528424080009897355435066547437048624051520664999603689551705713788106436675165773670975791101579098609796047630694402459108149977951997633549784370345259558463601118095168965009399504313544817135776486099481696016076279758141445782288666482703973807415370507362504629608700504433746748830993630596126757074009455306956182728379558035773321407084693156890418291688931966530193390092703315618761613116189575966405712343613559040119039562990785567358843376474009631302275114516466535339995102593459201167138413028459419011266925833350381967654945905633614049860975456022213397974523409448410688774985046676017322077261747452044963033494332516335825770401244792898200166385112397602908630700730905002865495885013687155218025902282597926884685465848456179403747082181838504835737245104438658505805783540252363703443430062940830691400316419194979202959938504730931663999786167908785304161804044058875084088719331283702246927126371360800580523882727928075838987235858097278453981964791004958994527211708013858277355447489793314896798046610939156360310023443640490284040882188334602292035365885635424566117363355983169909921163330230211984751620554657910397769616101673052532496605968918801529885899421883888431912101201516781427375710177547767003360704986001743375153637078262360979538553192013451660269555147980752760008521409777638824955051004141096274808753805359954155714575829195460995814178241166622470814101466133715365587349026565071502867507160518101333411738914951876327926792765310595880598165361145446016591824704912476700293412924244920793996005902298881287399210487906951950996001503995981420956060553396864578937736448574036031039322433611864023616970612396066618561299298705259654358563644270837828185082765354159154473991918936884861653247325524961314111854000849133134598837013407261387437733070797762738265407591239837716586225790063152377286857117534458674964732337613341362405826947672319770665945470100665141837870725999185290655376346241044503421082135948778064724259773457542249208288323985791784750138708510199816779077563205014560811729533158629547630147793040437128357188450761231219583009004357452830475223739440618137061342475468438460046038780178364325685292177547932535998401856608650186554470033696896740383451282858366821370909954635818783181726570581486760490835696753335583153166969914902825737587886736818048628764820139596900299385281664960594484200810313657085908965810576734506282331039464567566863755861642927035053356606617765818651920720671154826075651698001650225957139884192302757824675001461823342340122109707436493261751619756409756961864081582878439746429593779070544684529415901894415070692886444890320253563448426985410352580718089838312316758096214627019889021707897883369924206759173453435797187369254892586490821358511721204555514721437172846772279759872515812138461388510307272296158125923416617873168720859770914022782448759741484035846507438981907439418814587626905547095785145735517874833187574528454524714863417577177780449409286780422715183377534003339003710943004699386940210558924394606922141374631763986855442849867240794581989338575486780431305966502415414432313002401391992744242563306078186767331814955732282261958117656877389528187391502145952238662970878070569669949297306848921118637169431592540937403638591627753985723254355629917796893740953650487513821817757631864633743579402920969739605534437856849317520842589592612948973900820180702858286393800067626242144928465980542309508123145280804770964650545535621355365010828143285761576774230164936529142520272642643437446724550483896224847173086935649307470507439446486416551982317118877099811036521744960218890033414366923701997436209315937066464516848799820001903379578664754001968540999820848401586687019286808607839761801316762609029990616152607091495840829276998450263368119884435460752538998790037920282158780768310851124897185618432410839321300580405564143835640975341232991978399447664170450924726158088739957479478484455556027615383976959504926306711025227721817295514364912627901823079782063014225078824691585071854638293066037981402093661573063149640884176859996611715611388681703222934316999024485232015848398518529900425195913896414764910405963873011143997978080576429440292254938965921722893771293600588450160126888332642932244820874023787725311413673950017446263207955101677266599099003753670422679042923178010633925228116431281659915663069600183379137191301011200356010894632416313860185961505804044870136592557486825006740868722180413864745359152460119686461590573157739144026092229263289908934488235776049910426899968415718232016687118354403492761765301529315575305906188686705354664462248736103610546295611013151944125109079242549085742257369271290718029320316518615735766907142774365837475207557704162735078633124475500788847552224335235682169168766797310940537714203715158149929981476220279786311386855330323817084875411065549736247542892875785285581285558082983923035871676546439721718250681306047204691122555084293659873226680710715901195880771690239231382582868243930215689569711932018618102343878722751114302179930603620643980763008831498922480218949048696675861861957750426319704312836346051678802099072492303840230451175860841481806587062974503338185296427751408252681110849274825508498308597048885428342511566882366722347164839470317591371838217216301475876987899678107333288772385587665241496530400749746778488372054123708499471989174233898667613295478522788291118817867233473364335610094308198250546417714352105361170226530211803233618574563989905635902518004653017952033724810020492875218844697967520750368876549074602075317581650852034598498174590918378228725403975153325605004473074808927377929439893589721596236128623064064270415622926780530749228974426966618584831017083414672094626745768525030267680359524546927572370860648647278935518986062355756552529358668056762621785838157698544753120871390213701055515203792882786242477775790291810401868663173307386472960739405426821763633267377359241488838188688068587840526654801588930478487534483075309397078613457143618580086346474055685593515370264526876192116524402526838709307716921510471076512922492863999300867262905113745860623468054612449551782144173480684730151740845264037351355563983908712098673101350211498392171576173373976832274605648562941847215142775493006731252111196709951944365570521542334350585297499809691537999943213980266784654074492130074760370083875209957239067681752267587974881533190133245090244047356100918381777671712349915512128710869199628492619753725505321878444898156200429771943292469924536421883202624027292069226715896308305444412710956578907328815769007013077242953280952076362738425287866372874207059878390873436400674646956102438999167498502168371989491906526701182380912631154470022305408121727106584261232717490058337757443202523045427455088408916642771290598304440965267928267686172891748060483506813677266448934297057113201287608523940483427172642368735396835568192072474171414317342696390728392822376303685956365283555319241147182895256200924046710447884254423707862915289793391608660101937797140395852431296692403501925359335062227667488108273139301428748071923216668098862696814185354842900022412105195407855755478697064272479644868856901779944004220780232289828516815514016677040974780207841268759558434241718518180008368997866080212049807683122089025715923178243094908257591651098290319053432023783353399209051919812138003951692238195582285539035121240621853597756482492663545687528572113759414902005944221242073346989741460286398280246078138133797630670602351903296070566177783407571884084400893353376735379811355179344611340742921831297605345752543309653415475895158329069236642227354465839632399014964465629254127527158286888023193675637382224469712670173571883304887967879070329489567889026058292810777310831774566911278202660596814332817363872360560880306372043040433185116654799272161135121525610904659368737132621016509527136312537607933583084596838262028619442734153534112559508663299947882581341968892041171765915077156372576722086941863551683742254589819461621745493596869540095157425291727940719974016787311508897114490334432649668647808971338590404548981697526523847425148002032564402680951146154971170437485120285875343936352828573996735063309643784193827022950057843447336408088858664325497474064097314553837377200714985836701022272236021437536500370232473707030310741909812148652127400430639100864885103149597459152828235444412938332372663972935713057685958296025374369161181196612427346895864727603956126194871387840302835734274520400096851054567234509275148967920654392164772618306025298423127246041715799816054998290202997294443905431413413356124813546550948620223493066234183086227968552724526359772553555228492868440584617002698438101578181248761792650624049132871739495228646675625908505920478651336262553077850175700112577643815725543693070244993236553598890568285803781484419048283239800910678019805073215109725676003586314987852926797255583363566509869252719987479232386894951030372906953618575712177288729667402391847514513670906675787718387893303366877504455794413136146460892143099888536565997522884196040683338029772015486279176425908542230102354942359274602111272764611299504490958443472573810053228772380997102140879606702004574501914563642216287368744282380719564013527514510312871340678462793270765899289738710217812310727337481899986919673766003939788789545150047389055415058532948086710988798947733917244564456323385362992967973262374060181535748117848305224628568924428253585577109196650074337730622528622193300481726092974485786801842929616102791663575139758332132424034461582361276280321289377418666300751963636616720280467721398484876449222402180618558317909513054493403905136094763423568388491874368255668940019354386051106119106890106798064057228362757656917491045281032776564116091816505309664205438095861382588960129562328236284341272387079481402176997595417943740423048846575902169102276089806432174529151452403738278297068206105484930604565929317535387735402092091049201214687305149511753851549724596127140922020561606276449914614367212219169894346229514751757103226776325380743821552581373467740614106947418611671494241943190259340515949167814905359825383438902827787698474761184063985551332485933718951363200333232287925296864587548038023511780089178560710963774990665819319360741105548874541267276705170017006835004853021370993260207492266005007647195771742173152480514555067898129346107287330528119517089684125824092024649880666146512516750467705033929913891636697575209084746146526308792823128284506625826580152064914222776004200773348578213252156120556173991124061840165201702689259553384441806633069643015697629156426450551445362512786596429553790686595661938685550043422369699260829567816479598459886334368627743218938056443940669411917471314092195351501801282759471220323618074136328977852013065658149783332103213787834835425252737669842978384733188136274839470860361948358894060686693079270138196800856080408872647273262773019152421701539020100044890547876103576544883407203825659619808830441617025314071567922761238489986563076013497380832113327455135291664327158791914259905963009835380561817175714972274729236765942262753348159520880213968594784563928265355435647768767739476030584376386280438217707866366640976158088500469792987950772185306849653078967810998948811134186740626491005350800224430226205349861293309478410998761712032784928638874582511656521574732613808199602076358582337726021623789336094503478373423028898586771893672551027235788317766982118529128197572372377376566407905769900880264207012246540438962208424627227716927193908013579306356645203093851648121491186856126530696580419273591977094636194134880022927958879581219579335724356765881421461963776755599561916657528204932134266775967948433202431798627551187032287296232319542352124121605964776306126749763035995742186887480745962566655014704391272695608907836632219682144470945033741862596704403476546253212073515691615160269838552149780938576107653921451266590888854597859477124578266521576139490670263726273772159109906261314963880258120697728158564307054817496388413778037477177083860586291449708351990804480963308953524394807610420539313949051470195838964250027201181607627308916673863805599893645731545154782867261328427324338073384353249778139850513459570617282874715438820834820022473606060086259757751728826161200066396352969679088075053167782396203288966483228779262042943643257073963803823191002316146512640113684034907811496766683536385616682794856645903669287234537525185334950506595970775289585054960597460944218741273713869209225430887031169357997260021186840442607949923446806537742970548140431987212008707012637307984658640096916115005459149853400138938934914176207680110056188762137301687032459396698212099858905415246303227197110466325660436833966932933780011597158895515730470587771333772328863248799856721346590985452798127986632494529081045813746582399863890512716969163228392352941672572844259424751808326078698876662670213875680917648997503438578877995789152792283277347614197309653061878421033125555841806095282799876870654965865680827236749192395122561258013369526647941142944686938966893611218823158381116735130728945586404915197257494115457776728583643294682923802744432120150705903790709168426330550619165884489517056928636141811766837899396750512198145167611023624036783893336825071366351558452394844367867440809885551222845627993455395321646597028591541406790681937905601270594542354774507854757200643378741650456371455707393589664728988140250589480425640224445719071870039592709612199159278280186231450514453136511113943758738082063519908913554458576214631158131317318978753711024754881850743094659186611239083800966421426997772549243608197665977877329719107574176440510242407021667374803349119586155575121229426865734140060886772797304421135342304103785005612500460707386490760207985638244940162833580199190002046717641964330392791774173575785686766780032859559719335814816119659437144331071620730361380632631802356173000615205547029929664750223268113338908739185581220828021610075645870676887536595060773108914005209481454552728782130961016350829035502338825264846320139994730764170485347319129391745768620276883296253730712604949875994628895140070037061983496123553945453866818144369064096226094402406933890435879912835287283945938124720742363051272314466656198756264323540363444015719579032537376683346308514403472035690744736423083669378297886830862743573798533278552170000257543017607350297785919604431175384432951753206112861588576472166013737737133797958682419468258279745757179767495072417951339200714853662406479563729011306909228639618002328518189377904793288479064029751544454345741456483599607282721580006783024086259118120601687333617627253393456425888497930093605981225350451563528602812963614065797913265670020783880468991968655636477785423869061372184266781776724420275846454523239223960155306644416686487974530913222614257023744258440126043107793915538694568625008697610293786791167105266257034218934068144122712190450129043312843530469173449061862976020891077340890943046888450141866206750856374948298627677927988174609171263315296745468624474104424812681186371504635568614783164366212172916911556682379573005927721094537880568325617903492863996237793808290644522179230277602900326890144100050332576353409935175086703946382199641917401160742537608486386372503737236407876081756342623586030757241835653876240029337253356954118707018395022663613125273111278224308353859126439677551878531306172786499423407597606338246137493482817230092990869834703107549445985907992626348405150576945198992523752325871960334836563029249304933862530412251462657547577156680457063468083966632604073371857585796432027958276410650811389351373161753634090975986163843532388652771172811166327947466647249709396413395795403374466646558503576440922896128669029866526577853165348353833733456667608834825992480410611057896363988317182299080866662951701305111550246942413548389873680903549261556022486646938355856665561659698065053707863380410683864438188053001934123040458890432137748538513460376362550534800466848710703004462225513557910313052457525840869368806965857397330257517821040161177676734793673772281602133754377596279258204151502964673282653782367752677468458394590298031238874245982652749336053803887273601976602055195350225814950666034643866902520461705231229234185003888939090469817878956069727954740228525119833644898826791810009872200442885002612634632615668219487396657632022656949796230166827990131283096919878917500405696352297575725190841797816096527260406909239980390635916811411358148720399426611141456515202024623084274261458754954713805678678812476759187942329435627233817737726050450908206884310528455930619452873680683222773806576895850439196359345938538866922696468296396937462073938748163425006520030782565172895601519047986156678876682098779958422779736493825769788493581771319267190623990272403472670072785574524065964918479717516166095299886338389019360098335965793413791557487121747994961840463961449795820656754045878557469135330737243351132692913532157141023101504338100578406719494378827337619695963973046797604425238257048532588022951675333210501463100906036923032252958984224423838709642490400958978251275909391918503485938354637068701341120160325567666653329515409036205328380587695079632413452485660052880939928620181958334948769067840762506680833236058307909056145168303028716458958210258946544827085046515483140649184015707455694671247380994703532858105468740182976413548840513121877458826033344794335014939878479712047180406294236964477525655770936152026895777338695826035705495351887114166853457051218768792806635813623824409274950553588418100211955469107503934471558303590185764423269017001947505719666465551593850380423447995516647411897799184257959035940615853472324445080423323273127565610068460071942647440462421461329069280771778815936283647865851226188741846190204368578144483818974376065735544660818706438675448098724883637584516494563417344873929131319007252901329026720507030525910013411295294483811893034961845010001994550754249539287790679816196552689386855614458634500238856619112814693217769616172678579221048080644966845768463605777976376747402769887582990483243081967159859006004142869383045498012318414572388549333902814041253646886157760754562677854536654371968956083642690674869038067461369399668144331555395870663656284657451631406276060170285442111501934009743578295826504231672237935487816294932559657189724977678570502817078746020605844463964132686765263151287431953130721163319012398377659141292479098059546719127211568614976191739342965930740295722764609890091451810150447914773471632616492805686013487029688720713966449375577513176992664215011745890891831716599811140027524285719394713564597755826816376600826550835170856036438393102199676552390800265174885117595686434952469802783936615285946135272775632386595066084287479060179474812849370073241758346057406484000742729263192476030354262604552867418762090395421476975334950641884328830398057772115422932625673141958748897724489399894722573413408563404938583118401723816098127443231827777668951071097483374821088595059318849127650034020662756975334313974588651893696479102405908389101107594929192641491841180773722796165237004930316721599209584195446976200787488736488799798818230170135200540930477405147661562388883777904400565121007684880519084710955328425998193427408988243909211912730761678167698593243472504693255269768058598454313097735839668354460446826208955323714708420750771943900323467589912170997262318759849143224898393592199197473075926849104786391440498490843691286018805041407847152088459335665209575137705339179754619697422442076069199440836181760857380000706326033775802366453057239171177817996567952967982216558370009374895618582104008371302656939373854704721493696155054293302479386350904487078622316989180932209614217638822800033813397404722263375062935376146765041762155883363522088857166125863596568180645046914822026299591410994305594702376688295501653249005098850340468812105781505852121884984762980643103031432444301600376051074690738833892657505929617360425992655000607558388640542194965201921787625157205846225695089038606139201790872698631803212148390350960210858734094088268300761611985497921674837842152079022748347752453443793845748581900348489841401762933302733431466682343147714874562022523593079697302281959523432014123677316709758763057422948458051693704150773719512552635133358372404124695719855526092722141621317484061858377226896588067386568485731597554829673558951648832066327999007738419369946764389437919795834793843035236635299734249033952556459607113791426336745588056918495030259951539227223611088056938061878980158220368794203412547658941755818323125497809454038269468370607813580940876413232435768542490347142052717139408169385883878765249203817515115993839036505349735830842523965384394182511021699679312217612257265075324868507065644377168788862946249632024215390724326921106295823325338957367105568530759662305356313115209778608142590944734330294874837516560608600373332442332434393854024431310704672734106234994329479581516291471070720699859296187968442410872892259504324894600371282000505733917130819916719368367155728725214490131893036668493775947361221711582886347271408634747124524535633330419284803969934005866939741818011860570382354859365733878923660681710818908376266070716116791649277920056306594895940531293306888331223529147763568267799757277549759495775073382867493121230233174413880801715234318204515972856859076929534061547940615577448399975136192092352865287641980798657984617500819521981519165161602407467573097575157586762726693278107146400925508496224177023200216990722820003400971536562126453975742594510764318623098702639024939218922126032177999464414900668397697660814479064246279337390266948078201598561511711506218318151728570384453815183304979177901982193256018778181204073133333745365947992607423619203337303021811544704901076480028643232923955279905633650471941295199213951986690538896560985450444901362852936132794052429891010493505956817439445072487310308059760905857588583721418726567899704892481171381447898119753369478083009685358546057082560901218697604809209689157186567608488513055335548393591704543863031162543078669657364771917107785231086396306875852842890057857404004660425056893894852921858768151301120425498961210208056459568293731483251764092298633186728737330348509707182031549568357189882820116317909038944702425762384505895648359181109537729526705163720688218853679210569402817148865337289719900146933198201288228153243553972459577059091379721385748776698700712128280097539458286230453498319886788139214037062036780141156779057895826782976637635137732788360180138477353536994699970512429005515552392337388372667535975193599371397852346534728573000682492530741616687905369758617069901936333598984706005789478467489163903969149602203471752254931643602900688523641974908121403718814038393409044622398716147474551600265638733949164476883416296566041157104564714867074758260159248374877052234930439488179731966555600556840878589565580874125114454355054967082763229362460945781181483160760763580428733278981772087723952311148560939593185541075733771706436333949234709737622738877110647453276593360487181233730631308403637570103223167609732664249483216073467478662452646574229333353484468447411939845017204422188734728301126887342936380556279015032648526087036000614753215667553088151231888176215092939203179624684588898215807255611724324259458613859815701080844280996986023972211355601557966035865729738620371793928552581580764982815421426118394717094343779017546366147002977330365748536205544073674523241659214252810684084109901838374666547468400516859540332783303830177808090561282294753880811587978592477908013832317389512613515499823928481340359628233088473269091345209624662730342135839066039723090996714378900094703943368557624400954724125736654229624780785599886961239839039758080096288913431877776965952758714445358713352556685244510356582269825848952980681625131163489484286167043866615975485755361379329917960720398488863093438021387117788093265241776887005642971856350640175919926480582611322085625425408587693832667947273319706008919214446860584956201081650508928625672513977501758969240681681649081771877383302911476433692543337521809519428422159776450650164186320942597385980221403186740078207682673063843321297851027625556157785814460894441442692421658176700972830893073400477899070201342470929559348393874461110719894501676974098716872274704860956666963694250156382775680643842950591006310706326523348106880771144441660166940239846729053955206915206235333812067998901726459425720072314008661786690254319067611767135300737511113229249361504220373413304165674855530275349359093115267590762702861432540287830991939158063635221111648102755434326688974343150716444931769842436160186544245694306016538190243540010826427007136428786661532812206571236662886427086649384025787950205347729200105804056917884548235619933824980925684795856214745414805063746822133147764382690043673850265894926388255749136337439433093007226767644599421368172012294154628434274753228791162613498906196041953615462560020704423880390913591307349563219906133810831974338212015910194171637189411623440241183934380159603379013141580171554128532279037894518067891544885388002085609997820776578783555375735744799958032570031881185711281454518309362035031558575653658267135434386126734639891408160055672507855264973669382993958432618324406460910229721070548605343009455537438586437006235466676018132700574530275353078132074998890917855836873587955174449267669436048792503106307870434522843969481230895205416998033250723570501791300281987736136575393186308986034362231497406684300245736406737823496309205228059648667329449633341408884699846388549361020064069400577133032791661827491226754846473470103564386486806167105380784484045671333317329635200887141717156355407405916135928265320592574425551175954320385813609457094215316232647049599731187697993013309232848741867034603583969563467156106903825186877442459151218840236151947457690084487097290786128584092314263948026389318461906346817758374086206565497304153820781521686912418218356769462255332695055772668836656575110093484465100993262170441616244931398926348823525723685603744192088956810645213566308553069093178792673322815029092971087312471553754500304740570874432489624207481754883962402924474792629006116069449025417979576574279659321991496469403948122771474548010250912208081757579177137863400290914558843237828827430182904249949401727658708335191672387154689656683308161924783069145805177844980896735659118590960401855040050217653378405301189607447436615661372171947248478153398202501550370677260685317519116689905409231552212812776895005310870797255952453157860799595893147625973325878390920969960881203578800341116318795984429080032189055770080959992215039868205301537198097378347437067582038482174858485510722497673126671946904010652129240732885017083242124638211526185281077760755529010446076189807474658107748287474176095834517425194379345171196912325743008950956257764848612344993629161212804592608769331673365384128372447302201394218437469839565750777260123513850571600516049448770694405363335965772959393945858926765536823175858968339176065908002810399166465361647748639424839256705204639904451680595688516403533488972305270023083162890841088244056634277472822774569036204323961026006926422466819670573092472500225398200982227037060482472856765932856825524101912291331428525893266946144730688945412429633015169622661743004121390912495929510665554815949840137841713584421109354088036131965327277944474886900839929606292310843419184413857656548770203306804642765093516918679194463992053332587047994909915761944962763174949847550105086962025796001156553306721867629258526774027136952323027086390532725819399713487539599664161940102515832903905061383912902358609536900752416589287293936860097811002547169933518380386424217031155026883062652897905519444712280595212211225109286834688356381373043045402747894009623095593475863823744883995408480882630850490477832931764066739629894104224701360886210341113103691733337276903130155231761735604470157895897574762454899580234429635795212764389455392117574715948895895868488204844140883436645179570229709765239397590638228467212587944453081316441557576099140859703242722710516955925861329730273878556430372855624908268585586150616619799734615833515413261769487863204110148725493199110895271304920099191267714777219859028948697383795656963665994371317015901771895566217631542543494056879994621897860772079203330801171004264200036450313996986887245459094693180527005246542439689647556536430493750724873512856089155727720341927784490764974386483427967107801807128833463192251051836493930672519221951597128170520043999954118397369760060367184723389050563665995222515567569435293908378716793395774854051499624735984647349776598052333886451652635704993989293385930400649037840420310054347424644077286516173980601469793346894331675292433568830962718558852147058470412727508904345266913614681666636447657723839057023438896532760579462569625892127586543646264801432227991822759811414426060899774367133886741260687464808489451947213308746999972464616108296602226824100614782597733432570090687869395888445824356105717844172176159139637788850158198506295920538396358314046098302232403956400215047254135543064410308889035367414265379709665605975665130419213088702515245116748434017526985037325853365006952701106968286114170840183438379111349305882587174392592125527049345914564548848144398205887180765665955813547096435793512925859983774313006537235713492259788775125652849777732649218059685566398026017054804442888828816217911405022157010437615384997445660404058408467840726370202801762280319905532032843587202560329602267176538019578800910132459851851266048342102997554696260494854399830441442341715461766684544217697689303955510817796149421560492443593767369690906588393117575396044234875065647497559417517066086605985238665334411600289166247784598097331498998245257728294109395183127073334285429726451228848781018840039172853772749215679742642098959883919054787933144745779685481508404870004045646241949356881599928676973544745248260727607826857729150827500769461671806976976769659215272924132594956331546294043567670248627444282708668350185327330303878138369735070698569271167561083462649367299923205479092359574453655239246503132744212708783560910436095116205600667465144085602683420547595408012987694283962101443679886499428287560907966087797526860063715113130672403302040333922139275116848310023413800316169742766652526206918866410392140538663472823976159885516230195424143397105646665819723355141195773293771347469484587145584797573618838485647285445639962288696815760686931274680794186245600610588447068027686783439444506622773126238056815929314586021818220949429717192095562055832047749174579163718332898812190896435603693564719132425672300879675562592189919002236355886531109862633032546510300589673062580405292185042529780552202785137120873146731163086195947629888565955713895658810106069167239807089161133556614122593625129012694499708041731518054532822529174948036471200675337838821036386593146898295981691367239402731330314410991054746313854590534509926613528963176059810065623982257994336126997327472189043384190833065661897132495406480030680211675151179886427436213372647886464757656920495560925152731172682999447463678009121327560854380554123547586918715696483830496724432144937418675960574728770753096325034079866778341623255546736166663679156949899891144238116045918681522845345040011636623792930285778721880346251264486921540100614270707245817666444847707065196276134514200394236746767692436416135836423017470434011248948926481592533055311382326069165638106643665595982582980666439881303320960623378863236253045509636355496142461145119010705627573767983291647260774608681638119469551241130057609676403551616462537222731450134674407949478766208239988065198206418910595921509909874495113150290299026057549878091559505478612387443416851771495592441628155827359311255374533793987921471587172455140294139924129857035008498716220020768837276669950065311394293184994094585125398882296905411048399782677755792376315817335699784147183583943199119675967411534839463987795862264540911066045648870096010733272498183917941385294843055264481803860327988219456032145037369593361171201378665367617014931084423309311441686661931293200662651425073694806275855046733134819362292812309600523615298890758693301984420223224997848513172486709935451712942602210116047760919769002094579226578401888752322027355816048792688963358550105512613681875017182092247954110930971873308693842295491862568869767525382366728271544768225324088648103376072329599722778977542886387082844137209463459942908101572240822086878438304366213112627847889397048941204458110395775022622211207145435424764579130367158944627702448950048702706862256171861182510972905742252355784050034034965212800885917338173805718340625299921916697189425165693562602488347538453338918855474187330740752707494164156988851580524413498896307286627965465822490017815490730483424670286342051598436817298979340833331999454869490066046417635756521275245266416464958746919665684171527650892492341958605466442047328542934560821231265067901974258294017138547562665602650724187591565565887282507872581320890767646788212680099585377313120866076928587642658996336987841262938882896142002952756763957755041475700181067745320862533083823466936305387365500444298129526998760784348190596012521249256366794627260736271045555504638780157020167248267405421623095501060199973361264405409369403903293877093949574720813253978551218849699869380271979983291694758227521415870568689401004590192210316491460700206597466616368463279748386570062279041028028628865361550372798050414825018783207590067830422894041063108815667343267965529680129637770638232294025514730442082483254630543679992804253024808356886833556913410482737897572038400518744164231063379325540650128060573572402988211258267242912680206419380531796954224778629439700951072103665558576931639428243138449038962325333923245920816509055265709642855627146013723446105153844840089496666233456981004086824348802558191345633533007769569942855411204055793727804484424333797329929634375567533136433436195417530902568092068166792718327529206880744362508676609760122814833502117442400665988480468840140249475660607066794859079964353987282744601365656920557816656850565491120827213669240897927125133985670422119168802229668023430402419305121346751917010146138848938816988670509128051061027142581041352890586089091617210457820357666589704915045244533304650727994219730233897621372089941104643241248925642380752495812153963811267828329443998205515563733868010491063859013069183359180066185067493327827071663619762335052063225501024955034693118989819615880223506707115958800463813780460485637647585463424994485572346385540010881802066826294853201468406208074445310400428234515557439719782858458348419447884497387784686469198213913400330248783240717870457155951726305314382248273547641583104212646999123382904944450858607217079522929860988945261750788682730195808409860869696145246538611434863657577247387007075958638656485226139034215784305678221478289702490539079246894456870827420378774359054421585532792248736509230145287262309738863193795381201314440946300323848598973417269207921198044230012441644444585663465940389768533928652480117063974484463059399334122712251750622087201923215087339022721184278510703713613933108185134784914652290589866511714707723006641596923264476265721015210656431020395049437102780950670715753066086555934050181731174080904542578480866549178165774543679397640510954028179472035226812349050537196424039113966195906088870675807184912266495182938939785217796321448778281074570286489083321905282686618259681581435615771381845974039032554626811034719616795924872458599929361572221415017038309520228257390350175937941720645738715570209668918215720401689941613643063364210428134240772091445168579733418459256384974265630471936077006424883882729561338414976284497530930878574732619123997689734512081882269325123013691588855399647075741750887294001783682899614839875445564201456197181277779798035047015128784451015687616956486901849596055822128375514162303789000177891558104386793595357524423555916918239095850791260785457583471234398678067639192047738652091325889256393432716997453503486307915878258338545232136677047706638558174560903509559487741408342325325556753071504068245698020076904662271166982966928208328161713131720240023772853139367747787533790716986616892072443248179301080968698731566359029636486065268515621824644524177340276777063125884476172824680983637040704075866369275960876484958304649005637889142515514113781588745461810495754193914686130486761785706355226822204792403722140275268992861835239698102014056117584883098731218564235316760305188814887688503714009476544772687518676387362751187524817183111326789052672612036577831642580036195784632790975748108063288059223420337759079356989728476114281780510472986743162895509056069825343691615282043158205041018489030413013735092447003811830198230806158506465712587077592965261326182018312499964219752033978315100157065813960665164645974007050391002736510667869988767355849404107680156693659253991376075366839266444722314432603923849434156022922958969209996591128947730251574032259730934621270880583047203367779226737513743265966031207159640071070878742145024796495867877723244563129467535528604567896110734617572626856704790207034754173376822801422747484815200270636678486501923771392498486158348555574954015187200482362274291817057841675224646916922014778253910206632346526472915870093640780022981747515851700902360040346951780082658558077862131519015069490908230594286536896264547375254441329417989478600836728560749995784958150195012429973012155029121609364447734718935844212208088747989532319117714061563124614988408021744906663289537348197536555919327382587015469799497343760605312820917010001777746834778764788041588844175153383033352006524934076123905416530350190891902489389921929921614158873023444582062979261188364482127719949905902456097026480421664484167180569685990666642608536026492179150383176239874229256432049868211858445129628257079008978824255764533606898663505582576983004139321598668168114075492379904582723818066512355234673010708482437879651009968248974242006444416946153064022503803990738376945092374737891888473443559997574506951346400268249480836322382638822959178393303412953478711463711515278618050005871465238269489023757036513334123633647791428244614380030406103509207010903969832597388401681243933062062058198847206296245009640647591436468021321657313534903796575079093692566681822052168410066411154372106788032025437755191086627329820639493047097453318185435640202955148295682623333002568299642392788430186885063700958151457899932715914719870603250362953179106887428423694182419053323257444972551059412376341247589669420591064107231826380735688331121918938003455580774238467007067644615005219665083399019166517214999249275234539392047269862299303814288215021203739044350011041395455914922471435794071841259016117648436176361535104902680198910037106441368329426434044005020744913041629292064885979466836271785406258456972036115159503604642898360275380366103544815282737157333373227368062541118025098299489477151614475591749819826520640701579301775844422985475817944505663045782794423845665703995709303654773879856511181890795159321612147113152767942254760485173804473502474380426960447301537190812136796146529469291446981386826610022463994471104506975469296852034148305704784315229348658855131380499569575264217050356989802505246473218842363805155565622737256450237650515712145046661177852190529392954207851235815498560390301704973012073503726793320076459745477541187920584267859601996359515557122424117853795038898766524419590942445896831144555357266039247867832629801680214194195304133017315836152692046065246219987286578434382516803506311400172469413180941629890654499386094986286018042966107833377061035547835902114294975199284639151530224586928090158310926481990240219120651231988251020368548247048873949708739035221171569475778530287141294688412053721211500218067435189257437137221839351020230029783753585987375914558425843298474149925272242019330004282420982376018020211469695659747602697810192255002879233323425890491071111520073801478097064356660739862384178238629521913649387898842658823722688050282112759419316378938854023845900676615820316157996559533992288687827078725252368235664625547700688051370994218518806526200080013366153352033995332033073118124914079283721728436372456369184752469657970823309580554709347246715143364770450942602604108781560126280123635982887872050663444191760873896802054059613153606119422798505284356907894525172258054412907713747265839061847022529518263573695951414025570759218517526651501530709288308141030605630866603945607978173135183011072402583533468524869575767367851439074730951396413293594867164719933591492635080341238754362720453966243034420626914584991742071364294639793304837930100741925794817687331789451118315089691445543527437126687653149988434916156040653156347309964067961394696750381998253264283736962506707563086669610568471453761194342249984202375829419896122552094464995871707018759430964760244392380128485954445163267388084876016261070983286966009269694882255978209368482889115657159419846379540504571719062168756555042967639143161765272490132306284570028136142254205613590480964933446606429015275542630180211975687856040840047690744477268060687927059195527333534817903942108091414897599758150727657984821635166804433819424791999103788689213667315088899664594523855176048143419792571847865038109353050273967760632461019114228136667645033092248526520445515373053745788117104220379518040849990665133186024193604149529309164947573158388392448154811514632892557336954044089627854581666111553081354798616407772901805965653394444480845741034162685861909418071969763372239439371797751089911786582687369729007257660735670962004244659419104211112933599289086954521507531022493045222032104099271906661787714599287331196349329148224182952461487087760969564330514374494880107155090223249200509253807563206365067892122759746409934598311304716797758130579362231241917513695893437603913690978557790318421924175489731399101027230914368376279192142543532115555679061820322582631859054769389691035680479186806532878902211734345260191357394415703845833781367356238294732769836625933867349998581474238199590407131848102205942151101227765720646363208387417463206276136549405927527050254082288496974465870445426256764193111041670247721279018598878236935956280274460570004833094155770783005821948597571190826514980394454826562564924897710679876086706371398029547847158015280390875426448835040483073273305693033383926896891888320381109724665357125326018217911450114564534079876238315787907787825180116700383366618055440944902967597428410026927077260850308031109057594772707500673506224126436614875291405793232024137900236414157773151797188852926105453316563127882806784632391609814521893330800893349477606448201510348909253939584926208175706292969540130064266764077046170025808718695611741159438674867405459108161242976676306563688997718874222935938442299216107869592284295321958189434304387211506025249105505358425571626972225009717054284228675090199750748426859955017411030331348736150290626173482120108841614819396696979587857926343925918256402411855597549857041663052839921273576728665986833216789349702873129367961220284241133610703532627691221248449902563788594191851574227157528979139021974236705299803197580383574978029280956879433699392127565734933085218309059987783864258997585768342721491804010935166176081565230800874265916055771901246415949412193306844326081288703572059199912486292527991228254297025624962991938458321240221335332820887956042609529035024717970144258831101986836037103399403946648985248451080283929840634175236162381146868868480685909732450496789832089831455662576832660871194073892956066678193633974328489291174256887160706663387375765875321719033268250071609781339424448129657401283777606979306165742085740028130346910431745480553524996692946816359912700544900384861109632036000785296588859516329295805307161629809408045545298837993200483672846086376876853244626531700527818455897302414242237019215285571453162574750125467575863886469534237296170569081246396471465900451789369375865306322450580113798055664908001044653071511918181571723010566875798043658612224839370222209075883021200459148545563282781323840833967066744088789111153735725356571156432518391986887626275028924904353307132349164828774778234962972448643529296193749603357011216585148140345449562007251580389765048552017507748438438147453495653067077492839691300550630887704667188874198739877107892783655815031809975622418425051202684170769873892808990695759034044084204049937395462368371470413470132602897871021212661718878664990003202972824878561485084987019369854756554467414968605387057366617993062502648470070249296808031125265692505884239309801326138617338004737324151368040492685489553346795081953303346467177756527577597640405178309407180341206952653005864764387714022748765565391791380542177155674007199715674565075091083568077755879330748884063523235096399320541828090330579117757328148219570315433862661440472008484682694726409568593070566246365645983905974723446365653021033452881235123745313942843765698194907382220625992082437949036058321941635307283198978187573578288952198388784520504254715871099464756943939039971811907471567781167520486095754128763068889015287737693338628999080028945222958344386979062061010938364138244456677713097194437187986734631678915440617118620498402413026788051534229948900058047233845880856920276716820633303945771720039582853161098189614119929646577100790062706493206555755362767932490812804734817199879501747959817035871763241887010876207483752413083335882921745709089074619109218847188155365754545511788291893811403216230095395050272960969441871649233080100522392199830281297438487271962350927159343404145400483302833110282044907052574328725612160767990704304957055275921781483574428782249563536249659794808028495169437078773959978731238934361414547283932148218336191887881645066488866102574018641484826131339189873590022031879794002878768137496836246073533599454797897567166844135844697519627466894843632653381714882878636180413828245751674865874211988340769831070564202005383729549446450420396901694791134888595872457681484318365170203203900730138298307930403143489847842698862927346829852532344949389322234401743173272345173883916415006237596314794680704137629748535534359620192548493362449591882973754827773383346840311808821495139203354619188807674813243197562167930822519629253091472772454425679705426500618990555641935638490945406136695366732607728396750751749009360588076760762237560038648624480464299711533334486130753704030506939865403745265774590049382251583820484108097845381663898151006168329504160753687030315037689689811069619393850763475955336464123002428003533055759760087359857543830010910035710603859154912817908008534202182958874043754208523831798805186460293403510853229990274459247863620606124346353266693611405569481006723415078008352723459536928575663941210399667902568763248257342844461825356909423229772809282597130767984199030318087500863707239947582172684429947798941596571307884961954740982390010598804648831760347506269546928427467178051143507914509140212215370514263961984774000341027949073603952666743088175161403063829812177747974680393571506332346290025895917579094804884474986882383262267932258369821060301900283409552999414753656573218764533461499690209243054524238067059410708776447401531856192410849694980626989060546927780579762291139848226345884251420056778250502034125543524054302498780766638208827152656666411486786448393246025203384133640587906166551935362405643586833758714960619473850116480847035154762888396174893901720701154680574851245422945332714547854758411519896103145382777275735298367135655475183987140067803373197836541225433678176541877644023536976925413481301442201990646640061735574150417245607158858872017458345565676704664838410468665758806108809501286095143437775989409548986202368045151636495791785750380153098787384661944983361258168679323994646815371242355689670751588056338380407488941853603658314467037392804073610025219276597083908701910860006004356749728471022502826778567169101471257001309185514106527673535238821394008016103191406218107958722137501268183929335523940052144690858714619591511674205067070187139819437570230478425407327763667611418859066023579804606104783039818165049804425235155682029405930400196978901023807437006305085157553154976508480820918252309881730451383060266123053408026208148678985150439749905478219319051899215192996797928039779098585788469947751375484128097792311685430681821768172922109765484163291101184943233223185021652844378214249182941722803573204846659011154321702733083490052635144338979360994053621664259433135333787580531324617997156381787263442931884668243203085247248375611880294629644021474995518020472224430959035457668188755753435503654151161442368808345906382561608894655278377694815073087786703804180618358581370061846941463543177785624278883029230930794560945913770853158703284801272837039793390413262950984522402841331092363043268922052402245874231124104970391556701972420432200183139439912336797522721757421916889041041281990058088829914123906264140514796178665408837722804889354356743785017990732469130388161939469657456192867467001192283607000442343484315711399922172997385822717550800984382599813140188487770487751356517626699131597094661772153798951163827556192723015627389766545549846127973089178022007785007875598796326528637157459634399444284595900899542239946221722143397529755927846596687545821317375723230621959301769217765880899266374810024414253044845402365433560730593302472105758968349136230995643017610475459212864530863961893999293003604751997762740637794143096055040716165773642124055468414426244931388221495651996053396569520967217374822973114725516613341339876428138750607308715374991245972613703985595573497434399879244187252198818555460044419943263868522853837742409265272408644124264241301422005923173407082205719855146988392000407009108125254671429958789700941801044774529910236358090817057165384921129595185127056316865604895263059326109154947040176492388977813624669226491486650001241406719183528799769665770299564357975054605955770008086376362127505075295989137130150592026241141719283324562556584736891185925833614086647633421924492240857387025771704866952974301710029262320745458504039252753210400798044498724960375434877655138096717733602882968707139184723495355562503923472749869116115130028636920267543271915496707033307040580586181296838123371523597867976538384974640526734046951892171790587794836653325459032486959114902937459896530760237567119512565243743592546989316696848921763763037792903497002687053571399853560403645004697153801836019575546751413339461331641285918694581724321326681016101539053225102707123899282886720598952243164116359379782844073133096692060989557755293486381202994538950593122995687298067078722692242980107861139881487069411224340203602996306810543882629949024043909560527980823836023127877469183437542157017638828259168752737417825414534984964618927836255663642078883612357046447648519112736123866821979700722810396734256740603860466955339359510716284400539182861395127457500377172643563147489805630381875427416562543555140521145860742590144513608258521721404886223324404910795196904526589872895955308082266047095470466348461164432867115397811787893517591590573590814827501420354144929312517299014969570386255592635929001407284209384198258601378939553792222856083677624103910415800395054784533669676706447948613843378609883876063607414987354299871414560512705913375430373271607832700399145866559944117474209522603738246748902089975112160895564162578619469796487593221933141056697599300535314501497208609176535835650310489122654341124340083932034022600933290683773878597504745712860245848678799580481532509486862972883603932992592682669872450862951527534120398376383528780742645421966221180762200980178022674491509518599056177749615270668307559992731848459922976477323123611914961712848612178751564279493464035177464416126473368678560815238719785837292834071950769801803968618033284240674349098439486901268143246473886443430146969780572769441328131744561186026891574837647404978897988145386226173769976478935332032602218785731298542658669452623807245785107904578587244562329229465537599652461055815236199358967502035966865008407811695419363499655947996939894110570836069754381378761857347813435037340477306121847630442208926196332170107540631119687495632937245974552324617232509197504291699259098729256820229039670627538339887106727245922782102376591991606043826849871690218596088873828532369197849446872185316183734161141602514805619923067400522885338329217001512361045743520235948000987357888087986733151579943290076327928554669425541209366499629678312585223892225092670270376564868512113906535010488846874782836897306647073864354321869709314850664888924249985549825752825422457862479572523752117541870343593356112708440046784491171695403516229209441492645177037413826593177774423329387051375127592730073972886963082207106733788078508689996687430517351422910321149565767555751265159424149007402937855330096793475116048113560212210400086543824298701245199491415403931717048457790540328338706323129963610396300137808507376054513158277366032508607999889886193654281442441649602887300631398116961673619473741866075669052145720152940086285471896079094211638392713865236250554154736789938450137980498743932214922734024908039911698682289385780628535186385518030430913898712712276101152501180676278143377152492529206181059358075716322606419142100979691894621111019651259153204927274170571583355911283743600017020844235289266015802678655201635261065751121766768965184176682816848480538825706465812857416622658553570805196467856606292614588808192838934784225897990387116379332800008568441537172410457790099196185223583471715432186159339945322109031544698515706353188676999344749879224569108568519784212072276259691301865723348935311099599434387041664251337624215943851651580581704359278342574373066626716984578258061386639844733585887620004263145306470940036669336638069388956964922400582303844263513064896370245592709350523800458056794867208150442700595312335875214663805343062477914998595868709457729649331970058407776926851917578969205534990141022869614178762381228634502554580850030512100907268865957530552447823997156079212916446045381743962300524207965224390573121140721814038650479054215964018598102926383103206184480248767081305555217265232765446075707375429933517286606580164983018979881903655544895256209025593590153705757419029611971282886776542829650582718043214390395416733483421520502677642510207937020292901418699317612444062427407657146536167679917288247193356909361813973627725957352305845673145717334478071137232351493310083212579849792667111582942517754131046902526892625563278439420107786475477499704955513824191796086350948853222199246316763438249671868583050549514035384087218364448647268011763637627127997260417945940310539891819930852803566706371975733086719558345112874513810934503223237782838704665261831750686770333092822746548995142066037257317251089198943932088553177003639496370892821681651879305102725477361697482927968950311969238422676358717558659267072153349803228890372382832184420839135717644214214286223333747533916002238695352626654161071178702415076209688965228778186976971363574305995323124365074203358840292614139593361442574715071968129541148017347205177861432276509534515825803988031133321757905461687672244447529966813458726876031402319193386527396296664808525442289628942102707395913352573413539275655493339033852865635338940655960241855601536789621183795189245625600690332614260986520584823161670985579576245499187373649258629850832660679580399320665284990665706563844985691777924830862913560293418557917510445219798358870173445787636632840140504925713885939480013019842421660950874355068480198038056183117764925480083069750699745740891756736888189252422675942814827780514738761612474360044468923812526420380773930539803439992495195251767244356518345041508353746525758179608124774432552875417305883224150676418736866883206638005257029692294593645580442924074108308790997157155257130816240231328843766926365318892039030262852715024260412221395788693673967839897480973561685795968010668160711137132486726901445627925229198295224136328611999512052545277658169157880296897843191120317061139740433585740946973397861251291339637390179748052194753931725676336878730640462729589225996443783388736482350594954099127866092212493512999447073306879959510129253771350904023659710485797843410612530278510025694195615238071169812265682622714047462468437596550293201354062269318736185988962717853309872290004130543853434926640272157367744443693571778374057780737827602501975520520100122687157927034983944761036528982797614082019992378700766078436486603548232123342860960839826512757799129875794054402643311835678308912761714117633465408550472364408587714417425252428386882599412065645957907356163429515726389727289601677504474603542253912571117976729014720325747785365240010699208542647618815887464772500687289293511641174749095019155177471247066929099772028035725835351425041553790566137655291620135791149920061817205084443236298504533242093945012544333085551978456116869165677606727573546038897109728777677816542544018509641903331537012165309766522526919195644892461384201848519211992905296579784353645988395716947086941785474019014670384909904607455061801804238295663417198535148856033774781413258232453070521206173924654382910650293830497223295471136646144456608715576266423826018887035027128554166307577481627292936296793922416150489126235579218345165615954630177210548460592978626918408831471924371304691987630739091193084270155359168413872484747237903636950727165012047835213252195610815471822288542987658504049773216304370030959951317792922661629963126171517071836318665640170318286954846228329467337818814871430064030351675005004827132947754971312151160899050084098775006069919709680186770125593489098521803011549143054635403581453242183668592474920181057527218400781836943278764562499180871160989171298734887350746412475416519031354323332544884358420799091318841140740015932718960348320675420284472691955615733932874305553114911568673822119407802796965804219966533794666423699867819539238891618809907254074165716269192752909187742993027422320827121321047949605628279029129542775907750344554194724660853558824382310609178526645799606803442993664949721299137486851615167737376937860800901677286713395671546716616116936101378610580156034957624117273377203073278973958262826511291528179874361308507123403694021944626708205374160086432356545609023081206377352004544032529218055408974589337385702604019729022577644782444259248595875397765632212785181599191052172632711973160271341111763132425351474544585857716119721133177593097386425650749234456258090766922889872038544320463766513389007478418082313201793431830038317682041163953166939070219518423612850462044006155106517217342073793196037720852908041963812366085374329062336889466679320805409171912120009741579233397082511365824819669135407228142255872236070394636091442048101190941503815485133724726871598618155487160776350657911602254765203025761921694739923008790984135297554218784737792086701373398920459277861253818449097095014345774746888675401652415836273503406774821436078872516902706881969161348554991918776839685329544892634716193301337666855108049100703791264736523360037919531635247370344069113437308029054985382130861066301338424543536968298969931300129241774132728414912731606769848481989065934965975281459429633601907882521191460192855961222678709700748905317089846625748385259920828895675219313921217372975876934602072760483431955363198089096738294340282592315596947990774105866789757690477559708640769105580882763100110891196691969421397848915476938495113900740253519344547220640677566592816460523585581836961104347452186281498256971512155401505730444605011126773539239429165881455829035768803413569282469229877929534052025723183812621961673059772051014174112735716177589671693556331716503558860371558691663753475595158376733326599714498697973120300339322953920035930387745222607470276127989561720903850295645787709321666803195159950503321771144453986230281456027495845257324970874576888428092773563220036843723515616959293016819071868326721756168278926504239925499004966876795854280322089433106510985399898146908413123840666862895172854831596243107647255706651617650840039633287514630312154340936624486684437970249983589022535329056463661078335367249015345169163119691099408192918837512404199744668268155446922526448905207942079111004358391185421218277391423111453367672154612373728326707945354309142973429891948191825115264331660857779040658498761476689477728673946338615281953202938727736476102401510596723486718440168844425134300550415069331418109535581644371222852980573738331753580727647173028173865801426072083739013971181994127273013697020162469869342291706651737055574941811340342123998625546810495053923496804216385548701210625793192180530355033808044895089886052613916472742915440370993106585185119752869217285903649955322535702837685278659342795234761215191060311020555565591165434476769902616095066104962805766882312241006422401048316894026119170499506130318626124676443895657388206480207025443952622384349556042058330601398113611136657353752569316352073015026932557154218342148130374970193054838519841053089241250994350077063213719609135010650788547590528283129459119773842793453348645792499261962932285038079745027225272322994853943152695394718288947017416629482524717489684649937631539193469687937490340193775675084165204789468281642205141996536439364496783801090949494266092494532240243177272827850441437391459404420439527305209505759265215415332301850563162723862529104327132338478182012851677932850870262110665586394945517034786021886034463847424336766127399140289122797170429408933167965869148788104836308146907512903176154015926699941707005786255385342538747507116571624221036546370774234649171581237642184090325586796584879314155833144863685212121843364026817348762497318476301090718229128627840129660304100967806327156631144495362978350904353306063188446054043015453601234917822573590249878800122185635233124533319703973086876796846897987685962876709925310249544642592499656737185099121459259085310659572338546713600675322452172366636892935602112329304632022460301924566009353583552275485706191276756258217947069050682513132371541800339044842526808035796399414025166155335973314383998127475192349703843149464794286138925997033979631205702529941204339978266218509204264641452256682434001709418719524794342598705884674880880122050338531766328100017740756491221296726013920914271869562776751767983169114081804249787921947347534970778655353692528882153183776726142831885407485203839825973137268620563531852602827082593822470536160463510239871040470344653656161782755984345475044016529867661147613638821024795913587277986572526506916131179748146438513701806770179020966833987511865785180828462841038554725700693933576580845342644672112182446555699877913860105245498802347779158819130089965527018172138408220841340700630425247519790175673414828726550400636938810924136248248776017034297657534760078783370020882149212067145866797311634684817062399018377830074381371219763874099557632922153782016824645217996857114289955430149029290920649315528409689225375511580476051113238900733949846325061371451598054628354450557089216705488963306232352179185837568399560526042450837633075362054349034124112151149614528647687305060539261754908911573324751791777536098749526737591701475563255155798942633853348974875970694386168373334289977634355659724522551149116115982762369440675280602454362855593010706228991528745750669913573860701944599794031095559563105699847151877049088612391340793586139063342208124076289640793744761500497131426000693534399369424106820780769727150075247166474857299501013473119123138563091245698207876205828743967068840978819865118686294222962498606154199520720412430236021410948170515687258104435982431538430284009342021938287339245219651398716371779691432245212473859330814686007633160029150860634081332504899916269133370891650199264178759285620390081187567534051701982994270410280298311850621002441084828509396705942860819796321471174242669119180398786008383767239165990022499984941260033800124542171189185479811471246729789966308764357407155060792135372200751551386856763363112617308357851960153564177934788218100045354711139374400852584127137056355783218611709872978349905554365259475064212121464948262501249908406800769441650533913739883725657517531729724561974793393047438251178717574511256875087667513785105384717227405016643631806090765088977791838336183244239112254573701092190309677842603399946081085426895494737653028248610554072841955046782146690826843319557216948007905763073235432657894906526281931828163720379635572187997004134422327183272864686200035704481013459760222438067845343542672277094980653545719533103821858569336455912599577073047152039414122489671433069650832728999924539184892575851900062747568050300123649125467485340118747333822111635790012892083371260560585499357829511880156005509843938493298148717998350758501458135273980744921800852483773463061597927418090151628354006067375014119459273721598302941454366116377006122253417132843362480919095664514132723880639960734858113434988632566439904649336245015180127601094271009751906769253897631993585722082143647459642445471026528394903566041897026653302327611247959354488777779477330669944718807064355037760689659208503230220825013872303998185276579027100826798775758363646928663805876253737325506630751583236361221406682458030318938625064909149068958485870698873826564938075019088562561601149127099328156478112503256370545125784984740850779494706199425522643407703677191423742426787899874581030404761410177559819483132003252147770222191594908459507945482841319697256550905533313888176963478143997739366655988986190526100444271068609099423284877329257792041654001683625921065055322294121313627140114048196685850409907269426208240975495316021349515437650128473879951104912882450828123568092892463840152619461362937557782571757110721891594921069762145375653125858634695295755240660880043825530547313553632887240002567045933491367367809288110879201365937449723586780583514333028480481973064844628119092184750662506950100009624539514221261550344436528857779845246199202073911878398175051902598797380854528791120417239274656052690453613644246494227004159011371794116633500345389660625928548215278771776716968063886588366543897406544502831540974909245350975539572811085675223586834215900524898478614093278627805964474273653975618316956993983315229908721297434498623643468988373279441061597897748753351152651017329434540359629572465164743998172677737229754658344933757048511019897530991295496889592563196389491978807257929209719505159868057006027571879291047145024535053690257453270521770585087055770669554840953782313219736408261808185596782151209584101322148244809775478249704260558450180450330256594886958714656485210904181101873549219313206712345822409301182850868000125476511169854820425029922377992881703586912028633003174086680378997765738283867878460934870715055278107713369833682383353767740821185613500468000324536847037086730824214628324933566211429087713198757063626507075564477083902024962141572725775668088239482952350422762863047663235994771339512375035649819696403184039586368881242952354606730478782364776988322797919516386682613137278841514076243016203450426584035339078278373313189374984254285654133743725541914376186276181188801978826570014529814840526986885317055804479135021271781271362016478220000381669990694307212477798499621080087869962784503856737381636973644994138513778160854276198470218931237529139791656614780631728667025342101981666294527061644341078320565216452231833948859247299481351072360014783023187835810468601187346177860112874422566045673984002713777092187907934276980344249146123008998677618291986307303896088814221600609503218068174900237438148953059673946191266934925979347366877835151931817969049573167122184366662221332418163291434894661344104363972703686406410475431504048886145602943558710950201363017242960444288483001676807625449697741220059281804544897337054480141117220476290730082301602959972353151853673754032955305466909642914786078956646719008401471687440554749767937310892807133137411232597100030342911066757134469008575007118308946541731935220179436640853863038530050498046632135620413772621866627752031433956550907965546542977018119560883758116122974394879576984015817052325040509048229577366022484000302538859727405425359712124500737718146954931431434514920247418657454030017023080241365726849618107472641362490815728080653161574356687066162401516135566801359134430647382970619187401462735169305834366994973177119582262285535046346546539952314408524317724839108292904348320994971288432061923593601038201165941183203162145254039466368905604319230631433690508260963043014062059042076165202577357457852210229157171172927623996303855335175553323045147420200971157249914945874907913734345162359282706636471192499169662581653795748697502240022133658187534888631706036559824352084149726909235328463163079928689697581570117455282867527491635798006254489062159949887947581547564457479078797477717528165519576870409307054590713532627113149399195865683952437827454980516465241549825124370824189469608351616446998941603044315728186973873380328842292324191497391661970615543143782493559216846643658089354304715157743511175376401928153748178582895367315769555905908317644675855992839217380009431944168025023548479193280641240838609763404079106496250455559098630268970534648164777539933018666072641825078577139622742129277510899495268438042148140480704594238179362281892432396840039905225362075580004640692337883368268543897139994276678245289212684661090786463631879286137068035667519825523621151684409168207445464882328210559480208825716665996868227291457932360976779512928955451673375131973972373070282765713989727373148638697867836624771434113062566479433450224399182360525722209583318330351573595814511104452723885994464322082756635763351253767845990303556236931182174619402380435802173064652562438067103104389211487519229310431126737105183256996391030464730302315030713858527730244643319197057581724265706038544831623557828095479999393191258272367118215487786014517810481172327085596991285408312539533308813221282074936313402848155157264825837174286808514712980873393714459157339944805942664695252476655064424423744240277684575273201333277701814030705160402930986440962733101179950981318794603078355890604842747388430980847492890534832167573382243788987198509755812124522453887919694318398964765804821551477003353296020782802957886004875526306006722345211324167661682252334717578839351359158930071984051202766392125095633587047741567585221989031786746049823664037090930807226261673287869108879660232139152217411755014294617632842268068072755955774689944012701281633832089169536325967343665042425693117926267523384598923752127878094621275492515257396696015011338149007301018176795014920593438764162715657567615779438272260503083964486581643007006667387840288587336823820733163709433120661509955312235451953426442253014513373752522276661878935071607287107086456532549104821957521714467634807506038231412649424346367100149645940737714815944077186733731789619055887789626731481810120314003795821614536316040087526830049556181670651352451401736347020075493389951612168141576559891417008626504797531335228694558896514175398437943564837161904960895934974678309017271074262748534189661778545155049788648250441726417863401509940077315140166548092758781328755901463311083482959270792768366730342417563656441649058603726537277328858533666903293610887520498980982675215818271418409403106458626655083179965925183590548965771323320729032923036356492198481217804634978991197411280847076201876708549854464051680827903274935693616922072070503904369292303906271707317366352819267614108314340841276946160145799626211019656796253229784851471487396949503002232571258493722251042411137214106507608371133146907178443199225017146098849227063970342926808824038808457266342532054275222722461559210040821233075418155001911541456220225249736610781056530817676610828117516920181349980744826799543280588035942889605950033130452111655277258014129739033386360880075992800522458511741868249966643334897294122764499078019799417648974562396639633998504604601711492104809595424280255177569774273502438071269054522220688491822006806061420746077303778914197747358203124009799293229080366180099793314343105433030254339636293136460860653155578074275274678160575961847328266427930303949663214548812402435860737641781323839238198673747991541154263987275456323341328839923330471458031952615320296702499316303830706315370044916506042014503534065546241294104651218355449208602239936386944976790491931883706454845878696665431761731142992020519417873193261198439153349469203940055536457053617157583220057811962083434367575735211328714812805361630949742768441022227927328574471981810394770374137568191165087722449806713992895954247534419002657506200827005075451566581491960933096890080434995054116748967331681570228271238557384278935561674933357347572677157691132508975115358394982328119921887310533715710136919642677978052480900105268442904173844574205066032086519091265954561625418479561522186470104596457889673156990739307268167783348742277539296760922288134123731640018873066451796719292214776994132831829783182215605048228329607741269610065568771837468572038143675107716764773497976477382840154670068358025074188402198883729973761657885559545109327830103724800913246035031490446103598525097872667484183843474876410770275168829083742355487351027866054235466968657923216410930403110393269765788503429162012933542672298875878131236288003297573150312718896384315098800558965797557070295130381993544005521932855298073884202443598375090910906375852433873918942436868362363566742430883400096867241683991454264145931891279577022883046248420324459185755670226776785891792792953981836424859336418653314215980961351409558778355004548052680274499238198456553479927035081096800787600798801518611015439234784510101301661097190715098435787194049238124954103253004871258288025377457724036779420074869714121964073543732516304832159626622446377621160619290399490808179205822486438620039887551854398369020132527588927502327758828305734856946576885381236421363070599638629971441864782071813820208530205602501719271304876010154362944627003000119493333348971591533205392734824771156428875087572422809863127674071595540701598822533648047144603849616366179089822631186352920020190489234792900619694547537747509207974699079202418115343769483613583638485228798274325052164653395958758710356552219908848975244039878203265296001236658614287150055609001388830899553805783667231101372085683046521098783081378813939553194683864479116941483965761632324036611472474285467926583310505671793557627677896050199657470384777260513702004628987230394100457102020349329845173578285927515649681352747006388660074675810559219958941090909583904541410875227967930128478401083127687474939146984486605168908553089758960452879151709492806230521520477861150212760212980768325567600673616780419445502996959630744243239120513336755196135019820027593839901179380121010712361513429504552879241909130867443320704374378309120380508263083101963349413716535666755623306625767841907819409012581877563031470981518913081291011150698834147473440056498383836965576183806327590351302023664789756143239738794881485433594802516435944021772359342353894807998911039891581777627962196381239415225854861955611071104194208999625196526784432984230954616942405831223346089016950518946957517446093501161768307793711455861873804400885313505259203653418612838419575145015726462822308179365572408982659780439172323080293130708516523078264830101650323885207316971393079904268070308231165431423021351278186420465445387109281107827088203842917514116585206240116427600302304862886142772552429859140360602816638217288149967862305060697204101209567835029771800304885737369421453280548466509849212817475698243508108876278434967802983647463895199931465249932099225953530899622518788676407371179662523777329493317632924935777087569676230660148761382547799491329577271124649850384134067547465989069166960313154289198881289795118648673920021140637145715128716117787712720691625754047139072328366360618369806407703269053073400395293336172016663605938348037952821407552607918080672504507212888399591330941280204790036368572625899688143201066464952786596416010312669161380920269515593742835757133479764530151245097835883342441639092517810282146591358667874535101518843062948467467305548652452558066092480107875404750962533763710905416501880005943827050500311052891968436415157565238924286725175340743429519544799813031780905241041264275075812553053650535152789056211484829357521922379208988710184304623136882308368151439535217921109859352567003742551843851774873524741501013313184620416960756873046813935528658451208097691962066783886054203118836735964202201029021881908110218115568982458447923774181356022396307024790385973783260065845481071109131068794190043129578741024575867120486818739055436572982835338894626709529578508644171633269160955168621940639525119653198642316251166069724763195986689291567034377751502667475502642896404424266163466233478061956515035158182703865809160637033562625514415308832056461890528469054377319248913850335276090043515411641466020798123229657281778311060083338237009715122384529456927584213385695882884301526152708514274434461194463631735342375153965978126027160839013328083757483616956629936211373079923492954275451435096579538493696837898262408042679095696100218465602249061076017652021822373842808759247235089449096062825470316581035854930279895089530917165464731933914836010215868680369304337763503622846566966022111818954615729238532923317457126550465852453748384851522857375298046069224756727684084651231307087449049412452604941421313747742959539906255501905846804682058955257104641353799587538887391533769250257159727867015853190555930377875306842297493728893316338857473186356570911100986074636274998435451352103036221154829605779256518087789134992116235486370644253939568988423740189048730302986234233155850741141808664743258965034443206973992710795928649663540178405778884540143869118563575079219334160022887587944442672440681710980045577821082429094550409565313390304915371176610021795918573364495654115912267664281047298897201930632579116515119174752147033171387537856413633777609921048296226248850990742221387246790813098632362960727673415359838547905363975331296674912230130004114680581589719472265692733431119723564758681191008760430541208533843911300289798270480853029755675927863719519558584094917704109028680414475622340089177009566538805464004631162106114131880030005889654900264621808560616721546332863175141975352467715200169707853349899866832204264157633215794841021010246699301883938301875289058059516818823096226517462727079741808786341951436371725709790614114745331181615284518333176856569097682527658277254549324806054565103760363581050939760949658756777529021590898201009871622305597194869082008304586001217267115200936625842846332326101510583884457621451756647642885293887700521563102686711880192328013905015085644867468517584118786863865629773802979419530368520261709193958874982666156429313098948620391236738303347427854998127446642344713404121686071944258933892312558526063203322140029577322879905212615155839536285154837032485774739347888991273985569887253558146268162141884665859627496647756257306622034081258485967040779357091435594902591852777665088570274898808511580760903207048306154881738802876557224957346247048697009339945792720804476753385946414756804412207965275249254415103499032839811972837959905700862968412510861801940466984099025634835146300051583152644840617430993902161433325220696277738410194703548696969747359416113604629120265652848610805180357764846371699461005333768295934882232416264421027174735173326666999626029121612051403966895712524834626173877571062072241207327098135649767400549544046797679461649966759792994616205822415838465852537679807559440103444143488181115709837326517985725735987149753384807389458696473278639817604752987478274242283910924562512146104563286717944212922842232726435552627899988859335998604696605101185737740215646382447760692088192863052280435649643357560165146317270057095105024693736529082847312281730182000874908935830103015633114061954042101907770402966906132397169383334166407700896974875187211954275374434156128081725705516767360148525564685959742689282455867397888365045482745715020761425912230336632579351780980263510008689190711594093777314588357143268115701849035781701815975543923490990631528109472706726207342798421982170515501931835859651827143110534214936394240056753064737960609485151188985926315558052880827527658449197025813162966644919158861001109038806482839365793254733789891113424457112506842525071354261068178572322426479227378860110213812914804617505789444936531156427797861364465445203364244380558805307747002355967502001844894953365448754474323855297882235874557700245473128810268686698840966587058851905317518719907537037500167002412423176726670819202673816814407262819326388111403471950997507178446998918372799623803058133304342367016146301196873214470671194934935899568386582471013259433200489325823673265704527016053395547528373752137848613857508168070192774754557802484677713490705934521458320633226975789385767312319379920391415975864219138906671418121680300444256698589086867043809044444448093087390840161963942469721301744390887341735704423268740784087298107942065672982779539168767651066944800957246059082410493146589217185149649059385728527947330477006488833927977947588874987021625938121630304148181627758131462814204715558116637258427340271979148116650888116304523040926500604183649812857012434995957290693891416473591658899907897240769907961428906204035040743190578923019732014667243608711110763894166430587425820663287343115983495385822141721477569573235006484229447192243562652397746626417342044234959051850336972295957654023887614151526828828024747185906394425179257902242657953724071973292945319172785531431578312313330528508694036814787253522664706297581155638110148349080772555801592085217239984657537970934508528545225949467430444159887956378198918968278709920593014709956796885074144880830397697917080535993150343243456836652494606126716849446757498962713912142487468496426814958733932324296660003052775883561942870934016041860434716479230983832974894344131972095945736356620049160828763572437766528308236085106473189049208785048087070502595803653862396104948268892370134466084003537078283332358627079276240998125110356272803072320751630804323027276940534792703031669883665614303572513603889525972361779384621991675764683920117253642048241298495874201973761405037160938634413601953797341069305570496293373480042378899344506095522648256139958559988444785867937414547487005736892622042333839949739942362102662287289193233797126734735369224305521851142119723533402509193162670968955542527397885559284927665328196910482530182200585071979363738502497839234314775428319013778391095790382111663915208390542525762278495944590237777435596072957629004892185625346386926933492495085700517977881016025307438544828399363961826269208684178411548991041006089954578983395871150310106674214151533309103942913472858938389004384108116536245673527162514546241582390040525802378225410797957475692609081302049784648587407889809034971647502310897990078668990161542055182159524355540433809884798013298480744705568961076277539054314854608164742592009378416151886882574734503596634135704183845977571346290025210745622408787486341860561718330744205019368752186313247140533322557327707718257384658252831689727127275503299599798333401780844870710236733120979711032320810254137065256964263646027326604011351983483579720091070972145709512465964237962784369463337282274618156436596682031442895132775406549510353714797710522572273354111256883331256523100418728478419071220401154839180860773615579601221958070061926937250999684456181919747742465033435029152617183781019964303266109807629393461999314068464063508087490910325091264804595941034372950243700417335795501353088818648113496149272007782123834004464038144468325966708617286308392927097377292084883014217151207780737405547577883483493888759410286204446141674028525272096625043240778096744370206899725557191590184031462549959610305777944779250992457942369853534164957947954476440069494434800320522093556800196469024468752800778097463215836619203713861748224599360532160827849689625068260028727554953607625289433868212369901768945502055632277724628471079425147572234734681996505943880115915054225289022917471929405599648080861461061789224259483253618083854996772820324809041203979499632954468267651560904283416951701522541973133909011244685057213455707160819758533277839552474712330107168598196947378176033876247156100479503312378691702092110280112848447051640389040806591845003962348003628128597702108090749223753273581307579836905994383115320609154791281799341578399545731356600893964798329155460714169311471648292871437162845713773849122832366256433424898959489227788503799094923439229859522438046852575812384667333862056606053930767264755328216465966158204809809522605103256490951021842355617673547379033295759790756530708141274617923628584359812263013718545803109320415789477958996146982979968587996012881635625157110267168802207256757506876120772005093846010157960985264035899800208939286601603063741698303502594216537158311233213051393919225158578793640393248955129138628925949120898435564685666393060773063334057309005935253822784868342258614475921020293387485984511239333849966142432796702950201237662439287853487014739739426824864578170901385924989516212387675452052903166220206328327414637615580121558520969986366012537359886189173448904771770822050186347160065052188752968247312492052204372003760124738278710104192723405779502917819583347826978111799468251963698866711648457740284391857151434649168572811709876556748074870292061932132290637800500893649638067219882055441828767881403333024721592125071142106536819680020721975809923345517578803926463253232074089361845721104487141879463617624361582259494640830721332011018699963009130890906336171763357800411462833541054043962438848182381574652975142694899554750875444556743495201517732864831292531544289185821821731417089524290257761936624003541581254878272428429629976209735922983136755838791996540704397059118396692894713326716306557965952900178158451731378583521681242790167672673051431223664737679828441595986998601109804299905201813369586865298642625761986152288886433718728157568110429855935369681992702593970803164496489058391319559941251091849506275178136065843360021477179730746427744944942219848511452790566354409010733568788413820067699961777884189317195989192438432884804837548566939521603454177663392973816209656200650919229507174951487412081122633150177571685642318665222803765947455637245408444967613196242292875797688967393629311229369555297235019339252218150414003609455841959103779202075188035539450774796553930079983107807498141397023854489968197773713007031671827218069594874897547337999649852875836949232969593921465555293873852309455705972428027098670644121215133949634385233282485311979148785316595555594101941041615548086024218351996554384384296606212516574902364587536280438746077587413014334088868305996069278446533784838434002106468866249139283364069905103878406368274590851062738534583765030309969157833647603427413312878936627419734152216447204467262315264215213364042354503981629550374705400942618202696074260119546565083582979037920740879276568549456101781669669454714168667835128154181604885564983085717365388278079667147543769910270487833813269876040827118576436404083767537255028001277500967932290528912799969375933833573497355719910392883083943259902347871139328041403116311288934569892418480999726605611960132811691579933554146790732445636115872911089830684562870760556827776176457719940681554140612207105023655857301736686448867257998051449374978110632031732938404040397933392836897334222611668842129446035626912457615506049545598204243983555201162089708714081237649357121131300916834065648691194901359531458609326419644763554403728887007332177617699900811442177218144507370805580629983226339116011021118769947041086244464045504963229296063196842745689236568364732067438208456765177390412722945255311699572615248031463114020477006767556423695903327508799747522982118188834149096361273659148231066411265539666716775375775462742153345015626345149481491722474162053134954828970269311131183329629169213698418721633215799416292487625445468673050064206952723845627518985146781315784677345673619727168540608856066536986246338269798420785595371258096776240659376954885592664977786718426135263664402699154055208442372097998627100579738389628084485073052234763301893253877799541515203134167954279116486557704161858095392691012263073110898049708716725152339918669986871163798468120856885149483503576362478012906211401804661282505995162203994091822788613843821898344981631776871005537036129518107017951703312174540186598537711514923885928231497894199228700027668273748133371919353452798566025550572873018600505872748959298077637097375336995852256047698837924280014515898175975299925192169899210548916815413478295396397756709165526925638261442932817878152073360864996359439724849324952715605935221905633085486107199404016575031743381591517811396305543212292758260658003576872975142279078432934161946465040472574485489963044878941407946057335036593499516087644892062014201709593147896064666920367967696442543395246220725059062704617174760902029603387925572699546233914329032111937536637126812329127838304465235541172898459561482474824297348733976971042225759952577726556230912112681353423941618820770929605277328971151593062906440790618822503633690588804466797078693631840422722483350163538641322164084299267091313222200367210416487499944440262093639933243863952536626900835634542167218372601635442993326761864125807327925108812673720510324122780474283859942649142764820248587899051786451311425232282816977124067639522339309161193885151784792182676036001200152367534614046219733806750748557223771975170853664770993095856885942929220586628107562047792096277898774114503227712552001298437905513389755625358336198155732359174876299496704341132703900147569841883083269849791926009141914846351699392284822344020013528797515693364128033944915638016635821172199543742648738942698860831860648000501057767658597843005303344677107658097690392618476974953919233474962628723061881944730165641041304196086689423563284749332715269607504110311989773625405699759783297473713456943485436355098665127712487778552587866740086784201854760536565393648425483298231260627337350376647592433109411159387558401687780761520284355294605510020659161496497749421755133118061787169171998984805409820407632323612577619953251278351615169142903290309602813152612102744204168161456185313125236850748126109282862019842172099852708452003172102239514276440657110602220612635146530588100754813997054915235922433479602628584089061330817258037069503028772839560848687547624558004025952198510347372060931657803422651257313522358375331483296912893181459330451655567445690431244257432351863133746335303531086916844059871404096203598046585744787878853980486186433127144692290197360028066407496579372961138312306586683531727388982982338650518103664311616490210223612291598890065237199423336751224750598892453898001523727779729506745593743021611675362153312340268713509490064620868190853775756051675108823796897876211257593350117304381887543393954915716928680340525278954114968924423373057792309093090979469096216832518479064154945773364348419000660806914969732641402948451770393928811811519449888573472629938632019632228928386242578621858091954070774771751967527192581758008171895217613641923139332739676240546661452691079776068191598176580406907957032721543629427787963256694734307603426677888104709792312358765298418531544867727128212292362796287035334268338048628244673447034693429843447639671652387738356912780859571874796978472035231594007899078313670237593432983361817687290990293039101075143208756947576319078997201740203706431921513475812750783463569122325567268204154863051288561857005521641018248763707562388726667510508897389343017536011358905220029146085319466178940483847307127901229589312089657849331637135922111824106471197531838325458881136913112554588571546885323437567230791526561332322352215939124401860717124372860249749002197485297915350286542737335242930243058227644476058251306281613264474331727234345360070332978528218914517734692761139011417630382371522983051340911557391870279189526854559165492800180612162165165664651844830123604962154922649889160635044337774247371824319446235906687805622162320960979870485218050581151499170875803690778455495603455758395882474900979189322758934997700972382634529855511507069062405783480632958657605157766651194844205015285563630541629873305348932744650510215104496780978584717254510981608848760754376707974092800131810975830443427264545462131396861126475525324555032376665212601764338127716511547808186014236401191533371436630254095526566521597905457468533585611256770820086495715408918646551735179951141756069226452570866151275949557309616918990469447328002160944481051682979423250191743586013804617963894590171171754157276239764055018807186445578714252140723621343054230030004553601973267652537038494112133292472555318425985300548571457740520920186734851626476427672321625210076420761575341518086719210683980731261562795852578957466339299639709694458120147751081422352563779204435119898376141726776261936114884057308266837320518440566850126042487307915684944590035495261824659698347369563625061412066997122923818770372648964505304906913361339486669954122856280226561769487991827794803692353111934391002606467705634516767893451049858370912883585777181907807970487758889710789204993717197414485594336212001340103990274603070021264133983025769759754982821209797106594970165795923310181643564193423309792740532515317480846084429036645817476053633411570359387388218729647626725736733045072790303892285149602677006373236097124313948662743907201515995366590523357972735428763955188238757542542907388227071788813886982266653339799316390123022202248626480053828674436042729779138381945555936601161260028061444735711360925455630817006701449283642988653236818218515761800237215215620394543697436055403002162211202018800885478138646941477447014456738860186719201831059836788518190631083522022787717516352087157136931884507492841643146442284111104632875258923568503339761846002332701083708761938399370603285848109277877647546399877479867696052347800165830164286194404277381920107843185230861297188581484344245301837220623066378380400443346545516002903305630801661339230622898035121932330078989734009998702534967975598496659351959894503766967371437454823807794099499900834417136948907898395813288444314868270074722313365508281139859603956256987270199475290382492249602726033191286013680228726478215688081219239415499141398607869749773615827773744132567357735705935181384618476941564455309283148920807636112766708766563766352806968912506281283720556014483699541107507106254365532907019713352852556419023797413732921065572223425953851966182060767196322077125898115015291762897826526987520922283181779519560944841368897729773266037556294940798313112646633948364195084597320081461456263337709820092740900816623527590524995080817201655892015931484884446028847849862571661479879709484179977284407498563883603692809970225829543845966516729026587663659373935353213749140017141950467795941146425142166679542660777830808608922784178135586839410545689442879533184611107379779576707917403572560838414869610061877039207858029799864597445399246612740067107303169741799895285426740036877494843212423083197704404408355276551040306511020607500550328679782891131882881805762116792248876747511002939283650459710995713983175855105271154360760973206239336606433690976873051572187328468552534161161176966056929208373025772462569345078166829826358604187982847254118938424985386952530141335135239558813286886920019795482762562674586356374102894655667104935929438643644961328234172276557493471749494856261143646263897432717169433943990973661076673569443651004196824843344132452871289871404851319996078883551035714902386419770346840188131983668683436371219176167697493911528917415822530078743747493889898573823604854589450731496085261602400441627695891647234984047851482583149114188263004914952782438640441799547711199949669659097273768566000538535906666183726206351681113898804622602336079831905608979670260209142137779412628181454337048889103421194057226706158893546561471467656813664115096356735652543402802513477204330603565632894268619249899233146719556740536211343867993468199407331271000433173787693137366822051340661647102224951706535276182018279735250838907221992742484968539324920193003266565157917241000789979165860492281671659138055947952769658724412353324068363825852623129018771430505466496063087251192179931745338051344059503764588196627208946059633271992965556706591761611769163724186341301866727120039869895786252258681261240577682825642174005574014775346362680844758150468370031204891820400148904462560107134833495412220712315198365614477801012989285639774575611272707329771249491595909939776417775858150228188943253256563374006656359488492929740912385818174306504289674077285091088240544132037787653352497316958031401169124083512724543848504044174019728474645014707051245036891041923792126046800133905518792815516366991497490670343187099049512457533160814799753682032595973862751869027363621394881420408803678923421590669293082864189468822559096499459718419535434989978254013386931606032101912160307997385116425058613071726945502631495136120253217103933137248357651380763903890290570050453045373502778673797314330274492752523721848735429597926180931108835919366618079746754744327663085370702324862377400749265286381357906797466509145706322161997169943233131973137749635905265214721157510998154833577523610742489499996389305771551369147845607052444375597806156965081117374601774602083500733503588301260211213311590787549000309434002372365006635823990074932836512828231396831358133448701694884209411464541471680998066172845432630484588882074114859281820747670454870628328880108336167302147891929275094100135551942972722362772363911770248223656613285047300822045016188219280174683837265348213964476205078749742035564353589463086359175326070278363838028227271279834865144501353353441638710919321439128932739272033252477806938186968398170443814297404596671759917766452523363718296658705297086520893554520483101736585079494526934154740459049790384951823403448635480166394761071587914875740153702711232247368651576630059922835204056016197273624667797664137015804100167829835487387452425163951950163891407166795325846500524331854949770442389856087153389689615262651179483340854685951625247496083870088878382436993278735749434971056203995396760146588478643704988570958411167650833133842552848979453023990039409431045063774046289028804256410743507190750929295225051576815625803867189539591166182683606048693297473367294899455966683898682128554011798116221191931404956133838023202885185043662570043281031992386342860544393694037695047378965235662107470096989321712830050087954657251239076000660179590049432892298879410926878573368420636084783116899264746074728742114029651381740422654470924952179503184962533285915550444805090614182668219812105251531533410451269893860039453419250458601330632665843068637386341234119725371436293463514455678565424217204510637968633532747961784559969264874600257085287822628588745851458667670552558929492706854514205932537440475736626600380005462457777249219432762662808432131374105161570166945990627744547820458151758385931688418481510929924901508929826514572497088488594805333226377928456347508118058270526575680533667666681997645197808239280927515600791719216408490699591076677054911119617375612935078459232644682067451254289463499904451061925355042314529062130840946812684653135981819624022547061569621307008115732719202013281025456802389044638375667775535249611599560849411910827806582576494069531993600124585030974698529036352896443700739892352955407722253515870856552656268778070301342471268485749266590492959994160267039927405551294045758542179160490517362665596763754948086889602781222339175207583400205814882220749802786676735918891201003171427022602658267507137744619958632485979342620266002597796157982096500941819984386657599701303009478595872264503844639458334160417553138193893780806613180512552744439389560926391282901920054058231816707344867605076290296063615426814434290302391066504066050340509666172578017906628140232189233436580900334057099335490063921563064973750796262464106665429103843536455956879521333204168125348728072786713443305891405706913318789915473276842170955507957397836950580956602873191438045310397338583999673681822815005671361030840425550967428477841356396202091370838973083806958307982765044685821938584768975111836488642731193277686024392307686720753490444546710449281790829017729322719093215487261789869404044937993271679367927591489436158738810664009346370864473597793945205213146852748992600937324188665729019639557810247682046300306360425820765313398091088325809478801595797804880457467370851264249748523396288747235483717288791451158411708497590817148036114718309420608140491906009202063138636535913475435984870808481592038708290775979341067630284919184268380864888946037624858946195470134426903392920803720525115648215169488425376112770393167541751310052391514931781382960852659969455756827649584488618885810954180497526128263138614357422597452526251151143591138222866685988100131542798876465015819389224471856098478662875444930398290480437464303157409180036607731708314055660699938209894294034429875667209964010769152323502270921781548375641691173143447423829575367555129298392403551625710545736491674716402856024442995834622362796047920803344537383784427547723556415207416256720390577624281038629984032316119825443883046397731186670200663929065748757556618817655706482228390343562763476243254777934237633002058600343278603247609192608051981392189491908664450662188326750527275025891155393075564892053782280116163767028865584463673594229957406239394306725713375469119682859907201112077152817661319080509869994286583891361663689655025685254398251195020914015080578805368431088537165048069834562887031194525090990555938342559518966410045383394315361283274322623472268804715865755213217040474055866090103351602909566860491869652719303163976674025799514305272050132876384316463613305192238305602169145963616037861587604043671988203981033418827293311881646293842704821922415783761871493653868109120353100690751623214689034278529329448373743936468278666554208944187435375651884413021651658499668292684780900018057178701384560191409217827682468969469779807995331715038418004154682729381589364251706189293147111109999224108467625121767058634890672955925134355843762260391675849692978708687734968276756372355480954439987135354657204426180173790981638449720813621715985674461534330559545364110659537745893612275381378928203905137132378807223082628713358856395774282000750092567569211086030858189304317813298008412591198872768442878899611816241751415900118799273365847573635317565508227543945649675693899187539069593564067677380973485262029649687741685916116527393439824764593166437533646160188852217093652421351327914696448666288095771965172023091877350870305547939492644387331914413679230205157841684672211224872284198593166724231740979796174976131854411862359564599459465520459197717514646991784978516412949797137804605887885489438174479983653077893755221872061897350654479046034819664575789083433246848041512214085324864922619025513048711973940143441129756568882990496594946401605424612604988160082577985321199094005865646799095627695417747441717679886252268173106545775307763511900024052123292557367286122552465970537258870733474957562649919599601243791832890280332539732569547055560066295274076209414726413551772025504371359205624877332648670627641996962693609844731574889630102410222488452905598639932247820236736472815788966506539167297636456579410597491693941161621808534532693040094758510710302085729164984692439647086737008626844690356897931763699485658694287557397984823181428659384605328929208283442608075427741940708339214195316850954125546491886121929053823036557963169421878057362278383354333551523883199198379310201499443659690110152122682018803866268901748966687734460958181252776180716853963647800324736517251289291325870786978608603472435526498731635546920662087250913831960969347404282337979343676770817936862111282666057136280852498167111849347858408413986798956787450264283867974399978910106010837006024715153850056108731955303574284279854264588642683026404162454887994413385768930504883296623614972752356335093804701160768934288492279746741737754640351576392279458421278532796833862843613146808234494788477030501163825414269404135947956401537558951252043322610650328129437716469991249721397600068229523817869973640717294308727828694352727507796580003314611374446281786828580526516611504306058911200599192762861578888375143689515684766310919334734595140369792222744144014472598449498104746913774293656466755810176384792747738029395092099776574326292746020325854029711943028317252960496223492608651096405162244388244815076775768629157572792934056128428345113295568313615370064958884144217359408364994983019488348271085931670149082807554845441784895402402716766065937595252963468203725626839517813034510722924705269721990660770422537014083583805130679038839101440610299955998478384442397852294464285695107386655026259823518475179620437487152962764415916497332167534160816924600529683156414514799952648980439123723865915620179352636582865503676890343935272962989309533293979626396608347199763267389108397905485797748221390755261712093040371378496162305830745464229016866836735640238366726722167350776636008899571290049992719637745427625965580685913092262881625122044612491182017852432949698551919168906055775807121113870741653510529935975970046894529593820018510176217603624051704807702892745722277925218494944267543511743165543793949644027443240631516366452654271980229540688466816560771974356688878311869633469349738283435295562050823021535505849720659964702185981199418091827749755877307211982127852724955388062367183753049487804481904138085806111883258886914704068218741058920250995132701077380859487397910394375561159609128007974267922564106348557522576869856141804431607154748954059708833862996078307657850862242755180317697840483759975403533525156295928629249152587218109623687661999019254673759075502880147167373047548997222918410338424559317711474452937721867760461921844740265277662376808917509071554282812592079622695434358456287015439079522342054646254251671099879232922548393506884298011076760702180635201605615144796631519691363094882983605231247132150800229417471480600175420933486711868076391749049550839006855721485036602644996768708287615721893842852774003991268190692233354113024624409456695822689162566948435744973830946319586938708894770297114866315618874080699052989675530557315265731185373180378082826295369742980520399150099363753263938814416948088404633536123159511497972278600896570076881991585560664251954692144304132287346718362264508075530727742891277874136703498494833014490547346157133813713350147195330839574293764777679288572522071480218634863157183565713459852556967609536376498045337934399533979962424747981724897720032857216288808473721201281881631738118377143948086435152710671572005531825688623682635821808122269070834983091691660857150977009249305181148120664285441665199630037682235848057277783887070230324595797115303801169454132058732995142623065253372319906948732781704777156306539497085533199564331364636711841830506824637832871023538189892529541383874173912192859596895767883530881889595000180357864638527433279917234686815803328526320653127229928999702578017940640712676917629505947238382418278856284053835678662966648665492003870164452629897366709941950143837325276934428037386846908057408873017131202217010208618649853619845462851596982385941732127182384013262706776919620265824081112429874317381093737059304197910119997904983188614522788402919880671450040552521320405429338487136803072454843700405187916469132089551670629971024842704933021834987288022689805973459393919694985974306829067136733972323351483034229426556524974268586414145975905144721971752309339059115799555587311020715082881174122310566158856261741731850632949987739462149123079108481581422121817090843266674727874635441894204516274494602118137223048713261058658181364908822285592003427848804111205465718918020222170090807262769076739739563500864947967242951087949172687986618725527461507374805993668586098129292456257237920291881897077269736735099379175150733989457148593866642832693533078945509071345864041660603356514484455091490305871846984316587985304996784658620791763339157522447172827526351994096450443635528474351623675447664965409443005966548106672337241306651839029157234300146251930199730548722798855782050663922135144354912046412492737384825218424668285062200537594979753039845762891553691188813986471377385764893417506128411413753927696081177737693982123604034107517968110471959008401200638964301397350608495117414167481109724129791663219687867527028146811686261846637266641834299125355118009888214731019740134069538341031039254395339024340360085109304486898120540501639728759331106314962603844476979067802940463026400252319702896717071923960462813269578202635398123929260863971563738043593816806040729473696499329444685272185951177043164147557636372956672984377766531617553402054512385188779788419673210810530417066491099102111865667379693467427799123826152689919340118555999221090896141523037128896964891255518009420082280839266539362489746931026698394276869391004051321178185338780954286169124692611672966043690256544871921949507244746154125224315954223481263552929613992505798257492042959598969803891296613572396262246217832908763560041909641022996503654240962113720867328412198807170845470362033245736880035613459938191076800576703211980227382417667571977945007606862755567650925574501822984850448260179439964557636871538992327405401224121286796140320856328673249945410530648071730732645308194682207754818705109530255188435342509409982004486994004546115356936929231610037396282542738738514851718385142105533009658298945912098853933076408272529262673363721551373195521838341202314787614283605780376382100893462350380247276483003970123571509317509483705172868718049529090891967665964601614759573805554715849211974377358894207158237664842809823036170738335219770974103012657137041679902048125061868109480132445511761665370792114715645478603040660229916493881592818087734693441368515515671837127921830822803245092576015271110459477434954916233599959169803876799521988457757301356935991571447470293675646091922699415012281050223785063950567093391082528107314683049070667964115906825620081192786168916367510375052889066738026412389137291862095294053788469607668530406600436755002094088128952140894973757507743912424718420529636451029828691168542968377758234157343089943136840968555961032614780543277576418994292829716708856867297356901289691019190054534467333391762441564438209800335714491702773333565617210907770868429305379151837427832428075089075921913784323656555879815804203396097840940225449360471912245207926668868265370505887219446171857072481082339879016700075499712091428158499804047880172523043955568765448703715320687604769980517841210000480943714194294334291282995189256499106200152147617376958399316920307063712876357133506837999535281798700719183785893923433310953334898592887643972530281359093025802847259107039874269473751662600633382420438226382917010537170825118607015494666802901282935661961651848048909582017743656529680227102428587241382839429856222749725397357165716526464707789534583957346352337360474584448050290857781473945884798097621304053211515880236037421800732701457800443841764311502185480077271128195843475938619956472467261657257153659348390031630667502897488206615835279161921634975488898462828830687531636177866407778605515295338891136816985423434979606204876935280411440580606719613236725390315646346523764833461430961013391716284220421104579567867239881841744622755200861511678612111596462150555077168267489892758518931944804713818538312248162033055212447182702333901943546494980597050950332121513593546340259701171993989163684813130940567788255673030593424402715941356082036241765990059618912776755221553285526517475958406257304561689462130045221994596066921322661954391989878637152452121048908669178828389178222264211154700553820946862659353217733877567174891473647425763389880817385829652644421755149759793863683012956925363805610540619177973692178081097809750020105059610399184590316733510726202414124870277103974573853512793227855195014542382300431832907974041622508268638073750815921356116619196266057236151089918478509656146565267894014208250365893456017644239671838938078640036444463416072838558262250535383103471437496813201669232398292102387640656621256388162894401463844910187518094477274697172946628423903926989699980558703524369607313722910023537297616122089948099961696880781008706179865489297674431082864730030634557851627878490129216212919234444792656644219253917533149074986335929892379214110342660766062555190199407165406350225334212557685753043765118175829599610600698161515289290624101476406257020495848413009483299018030348692479310691688511889260187286351584303717399916509768410808994722933904916683132809506714990486604837074187728347409253456944372615555327569839426432027122587581588382239525549846032793280811080587080952524206313071073154442642951083450832385158456182815665742285490801481119233665907427238150833134507611308099018814635418324271399602689295759772119820416970415869799520325837071726874691498620569284784205886271325439236844995686720590174082175139165208519116043096984626340097006394759871427509455969481556216855581797262760920460077269849659811589356620981734262110371188314822065617564827071313071750749359285154404728437601444480310119804192588387891426861350108559755203808263173972161553012478462485085558258509541204317258361967092696723587207154723824810466599913444038195312169102577384853179911091999753953966132267754551578384258494295035381505005088687697446613263650244667797468110313755983136287412389999871708428224166457719042757134803018398741787729271631891145689976207204860954584462656817315698983009733862586675595863382823682289606820108546287956152989993615170644742870099119046155753325846549004055503367942869959880110837951474010476315566021924822551414854199979864694725964092038377023723430107408617215364083485712943395301842922187370739341815978985304689992713453506845670546899742207622114048668324468818738548375960196648210159481206562128563271548267269127050684515262792371204523345532130628336985070081239667461445288797614080375634612251011334119077859704469998843261218098298173737607236907370322701844516476527676499196237267404325463544818759348803945808515091010435286695651023250248240598079718896952409618285131337334046725777450493732396118770291731388971016973243686114638305725746715600905216853561660809454398751376097603794118780196313396022779443572432526324507687844541090225527301399234083605572296702807263705195654667372641316802878028730714319947975736309612334421990910219793508612648249466399925651275282769446755377630520449054573204260660837385714762066373893750473208729261352636474368205012128148313721838488127615538118520308246533904579941793041021699443851176734326637699575918827691494018227672317910443748600188692103469922830917305848868892058372232089756970010894832998560016553930351520500124623050063264405584140988079338452623297164436887117703934840837276378995743984380939653452882860742363449082889406857762229727687333582335678537721589257424978109775375159256266340503997537044063056419439122741190446282210800941954751849647493141260263095707533962678094438808705135190234164059524198840850968159275311705809362245548255964184421237659083199998631853572018031379968567680012017438721195990418560162745180920299854721352606935475731986198387431127698092167001849549243595165625378300879829121176321718838244637500259973128632966481286870226095712944186940839324996322249108195349442040570165762785758570279736849602944078079524725072363350535329165781265478452323507628965427541879440727876606551521970661195254741509457291460808086626276932786524836323868888384932173243128815118665947907893023165709129449558331917148721204813881306121440112489729005515667551575088509628739793551498201710139350181756389108318799074967932371054853250350683398519333020427358858581374495096486233741433078176239600057674824602165915235076942778124641498749186738850229886809347735212968791906780190219537877827288268366459453032601888312387306135240443936572771827445892448931648688894633208006716614972641573719049558045088115445111033012007079091255008545605786619636644686910908584027935369641127267312335162134827885485851209230211352596046054088405690083308645995402623086326830460659504080358747921560468675287272601228506748186544506218844247485152321935792746967814600392425917211936008443816402682735475367647895451031832285689280983668613447396361202048045683169509643053556298640536309532732021935335349145585939629335646287704987713062395150353647389548595191749252405177057467419492060846463286540312933243010390708829728581341527620342717468927581556530412272336440205195663233090711850139224454263572623581316297401452313511025063589289588963871767022037209231578627705046116819557013885564778869231161609141145854913715268698065431641026954028880851683688276827042888668017136962784251375635033677468015436453118961460890806176472613309032171166656055171121928455007818994498886347355905988591406571555141266224036182229868171467361854509827501954420199974723864557316958506229911494391815399894253050857286667704402879922320348016093798665176340022361327084170725072598929625673164344227617240353596924934096788740326355833753347141138476018053962612232483886412120971260712539249051928302799409724411591532155563025287373631839046807561081509038948675438313714994681041297200167432763873679333200910858403715543765864603325131324214893204926636933787725041881207956743254359900373112784079032717716989203441030629916207019249760333825035778343105189094234747348353953878226313288187321484619586407078116290174286854288360297917818797828671735105160445243360583747925147212129023163968534592410626030368316512276554359377283264638337958934815509465708323038755387499505892396184678177683815582173968581254944400178122735259608184204113019378009461308873490485303594705354856954203895002540607777442163239676857562317592222872530097547731753002152495731779624612116781880729798980909436343803024659758934685200009344853774695932040814989927171573929312567731835411775322048299306003802279938754678184419514112480417737343571793063869879876458011662553679395574278071276461925841441635630251870738020068502821971462480524664846094761130157662256601156155535671572113442233598433112997149547953957416099912277712459641037077829370942896398153654758773336759975617246543151170745162014110614848213404515886227669386158479200069787170579886488703401954723101071321158851580723441058139481813287806764375286508649399899060373674321807096200834079425787585149119487884470423838928530255713198182043269947999296843933615336480494931111362637092887484002023045030839596699853420902293573831504054052028674485339432843737788421598234178097717831635877146526001002423516690467717945894644638551399588930915441971685449875700819253517869571091368770610092386070369571661308269725770310717512998477569259413906295477375854484177206713279913704869622812985339021784319080922771019774660573987416885567162085010693755888327131416766926982288707566154827203066007626923944439276889237392209794181886112278447319760311630448290729506792968954701720662270747322868129833626590826851376988761549347849936576856707621707514026389956415923650351883135575259206785761230622642385202356799473511618451649446204253420026823139390131449962493635823708779409530738013061209571543984582570457810093122403977534221123376404817058268699771595444410037234916635034271765572156365408545566267313631438646894080770103248451455890281774003596658058701119858956644571928765753564777128291061043417224068110784884460977390130095030210397116017715632132821566713807563494829780788310902164619277524827635219257262522423781638494901730176648207481241534427620324105851041056131389218081654004937504301483269088744039524569195695133320863686752399354697086603127367639030077330741352302919085191359521845887421723561624066993656934910107053229157107675058141517902721481340554642446902771072315255944135049984271472957048931732139699479338747109826612728710334736206759431814483400523711002384721795391087990106841859439386833510000938960442019652135161596982516045048559593557350783756304607734382553876472073189628368325626499350128965056903680583393133226621978207046418236002715611949000128642289925118425873823929322181565753576907659388642572768494102965729145633461782233728551151133489996189229463712926171068845080190499302708761570227244802620030146152093091628299633565043610128398598037536257264839468469770563829183573274680174834267134279141653171957921600492342892691591984400247947075798846166983097898164048916381970109938386454208157079952488599413208700417648643488975635914143027208807071202534988061018329882967084007309249730147444932151080388489542431941026565294171306378051381209411907556655592347154229930835450584847805100274679121947106137761943006403286113730910138218893107880753138781184273040243815238561476865636187940303734890979342833218247272942503426835268959292085524584691292312723236173776762257136888841112178816154887515638497089576690644513072825056052816550072830430854388695510334150819792930010078855687586598480446588955310841968262298907512912172746946910244958909038872059046385217541237003085054427140946385853949449637283359105816767075180180248280495229530150537259311227579377134845385553366244551853559763888593664235866260137735481920024313707462087234664601746928447975000234939618404921632636467904465344288875156750808433006525583957285196226226397021842539625685985723685430249792931035298896798754978428390759119233508428011162823092145776182802806760852325019184677359134565513712092371163976354483220431208383473844105692180079083569148456002147854617073466400938911275489481360214161287462399949972781574672928532106367869381820848173526559725803761440548732328167750631238846346990675528594578350970705249301692645522608310330770199643118497035324724557188121839269872885017485160193425554172305991894899578659417584812782934709028049941258028044729278679417450989231493374840210613279428576096777462808034091752917384133304519452831858336716001056993901135072004229028385845822952052249422241847593284577180937679814475428233465508709735922727174464459359717882696104915166528156987793231151196114615389965828380460532933601430690628999792471052598344029867620831805992583083600668242716653839903901507303140738135018766949040123299048326823459584280772676844437487337751874695338876543546803542371591654135954461600289352633539417835597889809545770451919449127249593751138733667633944327341845490214175800535284109241601874409761700908778622191341610607592351886875687699723079171002899261212689706369369781592117438172969837950445673234087907002722792172903447556675726864676571169478989372435784250376496382219557525452506959157521901598429191942282528002976237546986287831891356661512487824867749593014709775589676787152952702853537143755461916266453569447254299466860600035272542993310122768849248942350513738644777682656358247727739086544436051381395122195623530258221096558342673288594092639123493286904226458776159562356949324499535199863271163986284772819799880619121555693877383760082857332890867411397513190564661135414827067250922455456257922360948196610910250178764007379198936525607742594940161072860234137314436647138778959990351827566429330750338621304561919543421978184563340418276103282192267531347522436842511146754510327744227200823989318034141825395664678264172615021366838055512992921010502008869595342932966737823007921577057195881706250528004219344177557929418320147436253210752751977436616349872493573242755317861936810935869737095537918001481859114764584546169893920669568618082709388233960192136721267609829742954914237391230051291972157956741729532046926269236491880664224798879512488660765071150824686649543892205537097768195897619585738789482821768819686556368768061172986978658231453967061505848264721365718186627909047858506222828592315919217090221412308572990100658948707965626578017043535693322139036933470877075651129722458830187604743054292849240360128465000324267403641121345883145988185114694260272463259519116299379415607153211295232258657294933279960817690774174811022817897715188544613629865849194761608555154563947094443846250134496999806971893288182894298363238319390169876578666909851230356675399243172336136816721175932406439995512036848320522727392303657723129156845817736298390579079737405355593351510482273605143250572824253094706173027741775409943539105290282797546480210397887660284157673887234957673233461093335986213115495672664664113354855522944940534206967949412048721357461230955371434264451029259316970449472528309115615951360086022899504622882281251700053684332872820286691235151869774511394551942962005210680662363305519173446063597458148573650658873138110967737454676239894167340406285447688828676344367841296732370649689407964673019928156955948239239111742207170099988991665230062987138028769302829856866974626189698249982452223199454655520857996615361405269289788326877356452975654155675564216971813991725801680014102758407459238240741543248082844570643303624619904101942640118730604164136275943430620559223116654508638366881733226381829689745077319307062058531200754547497358086359073556716659793705743237584828235775537887703649423320423654314603557113980199029201186661227081086079568729804075680327973769942400415085071085895057544995161539981588316129846442265925471121411008010983714152913578400207668803439374590155186038380399594420037460526350832927133672409512759525976494342755074270784666970525476974809127553566636409817287739418709815965368686684998972121959202921652147239073143773644744922462287432407278688674778377534949217529365747534671710900917876778070493114003944711500856570779884908736294700422142220607070885645727067178195012160746289049954388855281067990959630749899765288033820101371182856070298808576493647324147439930222221562476114266677709370695610851759942076077899297195293360255068066535203421848439274852940152762263085134436888899266743805339304704511619628369714098446688446494131775483867854160263552944305529322188504260306195037864251535012353268357153277555071077797506750075004757543076197938647111809923773011163399422761340902230959539555306822886915926969123124226716985828792055593885053401678308514597040110792202350560041029181956553822444290503389690030987170065330648734105012904832308197639730656859956647366766802476336137970175389104808309084270462203696575665031097169558453195389495755866777878372359157287755344325707197481687469878594066451021285008527117554829151336573783209076711428799778953647890268188704348668214396153095293034749102816327625032901405664805579904565173910461235670172878245627715153230261652747405444047374521188861176131851319055690622826527616857960611133439357665779253584120399637337278970163641230814838078925052163338209666136433212707597332601408359082867204015994993101688570625103652778316052833415450683403818043906265046360298003487170274162344049269180573757741835546620603037489322079529731262981396470961224722789216126934036046991039524392410273487110766333778510101604676428254871544443946059280481190905602055888692971391520968537295286393102037936991489231210169547472041989340988492989042887394078127748273396379957174859860634465061061127679923043905816388164692169577902729354158033249991498957209891425767885232534168442520264899754886474432815822657376093043170061176467056266777832208810199133017008081255146934349315638382634566250327366934742446892984630091869189324154022086561914540932511897557924859624377268077465462926896063871979347248359389121075665560351334186753547366083852285304221542665868450049275753657271443637284455399775063741322014673493759694550013211005704604958005285223681420893312558301971128612094914256966280337717435685599966614321217399407902501191556749037702344419323021830632661426623168898651066110564873889654825435688916784880791829365846876229895504708681304866372281258879317918956939563116021037231578733848217567207033429701753035074752385841998462149499433723346955210946781226951437430007948581623736081905859901289421537559632817277670218692309306576230999667481504888151792439129196710460383802709686598559099006761637563537355471938818936974507029580528100060060902805758201105752661136053390941470176753604339963557075375507595512338312149344545020737151442713313109038142963665638494901272313642551728809380621904096019684930191089848681706365118163519013010373714218109868089858055397069043436693195074545984500343702374688564081655651746390435204265561709161866394441333168149544827905195336443952901906735988789158069376623256955039019581307025530951283502033429394474575126157584264409286848559750503450668087850398506630467831933642628814975654164773973471625931752019225177046752378410136778910731310257732243189481676593333722739751714751210003853639859406280233404421958375040944414683216657210765548897152021054791306437214387039040293089243404559411486000204503536314147380845417092662934690914655905038991345075732713766871719046590718814231281915799358710714721992420454690962029092425686398225543996345622301865461460983940572841880973370716547807043424771684895073314550428582788920204417130841563492226442167135900798300446989837754482136965473301465212596933139898958494660898088791217829585978538030677709375872770162518430096534882930258691296249842554232716483288571464608734509011042792885722785214950495792852825519095695032767317104628824219811499653271029410080350680817185447541180071477616859650888584121559501221790849570449959229308982932943635887319699487345556701884827694761381260655254648353171327193000053864608985199681790338095597355105735946025677641914226469352086365671086246386628655204009390039441645790714116035565192600608965427234903461530028614601088278294652003473689082369168043936060148580635470420765118609142706059895253471471442518060328274592884408554548811979272081940843107075578110282234545612051833518591267206395808645392206584473708534769547511121531300301395904081629783549733338000977066067050355844769121737473873928886095838204676760611787104110629177082227751697639628637490075939152048231299808536064061806732028925277774550730223453001325669165013985090017993743197464235521487013058827933664433858117426656947123506945764391976411084527786861553201643372080056401496944423216316107201604554306232935896321234365367475284328888455487853783269147919776425713753645467409028373069140063986582182329813692074343587730211009593230722187544680182431678747422648685896579724280168744179882252979661728265480487891293375506436552177402045543571848350370138051660623857080822636166808734086892648704424862125332902436933064641293316671831961751002741906153289066207673021811310385385391295361820152700636480636026799610806628911790072121927371991702597316135753542041636762414052958232128200131493073563040014527931935002637590051744052735817323054927869211546772159300966120205252083223544776966314593281097334998775970121817719686338809101111482662411013234196475930654362928864921015121773382730462505296141279384873849503184700406884172577509835828018428351424553639417716340404385411959137348464489159383379526977792948732914454475240000282642272519695005437783509785395333852884664441987791771741859901498804476455985371414590510633107777304033132687599135739166738284457617450004557357681953222002175343336200212574027955362923906630368512383036276457039623703386355149391674813883993202651187911239010353226075219944131199174836659881241845997083484065617495650611728778733057366064433267004372797623084287515496539120590478980904911943004644076604710643732173729721955415673696065323401606413475641974779348279043375463622187348636216342143557258495758835420941911736474543056368430993879584308739093677196824660726606381680958288554526009265579616786242260016081810359827176611660584213203491941916895458124416712742364791355756050656140723548492880863764235747042610816435342780172447001452555605275440000496236955754860367029349315008867737646958726629858808036081485959643913166665955104001574394463467321715003047356635290234949373877501742473715683688116808349072439913368489872436129154681110701774983393989451735633116148630410137302939086289526775136608354454757339704323665136353152709342736858209044477501013921662310583993550258822641820680685455286556995128663582586578295826009120656330579185321303020548806217062808457058644899756534451891416628493531574293493778393835602609782804052016740959615025545222208430626903968868252355409134685313293606062188861341430786037611169462746162587249117356781239140912487637856144649428890013709772997861439652585795794709982461985639702474821838774239966770967826158643977303426752500620729480483151944225635672509795099086660890615325637000516651549416763897902555505753442102127613755516149240381323283004429480227499469917687833647958554849451058317245869923703039729674480694865535427653212961521684750410213749158990439192516533124848700956036333286985722367777673118124094005668947856976157846537356696156184888657096848092218425916795918801799959537346863508496663079553546223905174405789214324826075330599559987401811125623431803384442978621978617565245288428649564834857979038752053233927765869187832307689711459865760640714670342541360997425930047004339408524131164249009070343055356783565346853202839346920294022317705401030816039108036578382848121304782092625406531633693721568225642536405277765319434819903092648211017293145033758838570702024007855126378017228466820928064244065974949289338917391127906587417270656950829811284644639907576876428011203243705866089323542198462579541108114899320000912345957232538671712528309719592552886482307747377891870293738810495915653102065345159328702662645549738500140347654180356504374267122157779516203730113319683949399730861966883302864410363814364296954642436197695455625167273429460652034489556900989646209699546248221851014934231973598952298592818192802970839099468399991619742910354759359591066724008477878795676296455325471632084513044463778405761741591113399718856923026684603093252070946489760380164995724129522455363832205852020809396350123729491245816945989361190772721938570003483719368247616064752546479075256230590444491085164484302822555657253538535544440176597257527616159398770869376729733708806289402866617806380902385463129897225120715296283149273939325849107081377361284666262623944958688270013145259508552626560799621483471781783225893546155818013519195834438325349425678526741609131815277932874623221631845266566600139212468350185560293872168266906681676773681726006368953950232620318272028661863931254636357185401930348111951316471274920652708637734104684308652289679362476505634803568917508814281098192594319780915074232741322007214081159427538326852368306351362180380596386510073943078911749089885885856765217924926425289773239857564311775266827186002242917613859160456383028967366710555643401420376484128645540095727896837740257455403014216551498915328023844915657069730155177011764319459960132761061250166765264308853925280596253355790462476491960297264753625935632778877049121816517740650626714618969128064369124808077318527858144119197484331567926693247507885768882871412461391677062626511543066460995334107015836333879484117534704172603972300670637866567102397641882871378712692064815151603051935227233424243028131116344069320136316699783698275380915716106277790755085935816742728070069111537653473800524333193098071630346292435976229684373872918955335930549517039894427015157801400137250704712646832069285717184934542826176531416302033651526310554841657591946041694063363937310851807527564878277794309630088819880509094563556421013466384700421399276566730382375175761596726669390863921789246698672153697119092282898866330276441539133380550609198854378379195437177203926920314267235113327964772200643056839264207102813183255656514162160895238229801239069601929922979425588097828197811630672105906292476953087078818257492024474206985388323223110826836311245443906977364370501220528365981190149639405914971865953385676850614254369593215769697147492345087309871732723127871249466001028987667443747358805416621621354037019799282426017162328248053887126065628156711056497291725426907180720495119779181127123130506266756803133195414484955585774683584109669683310831770730248742178145908083086177291746166208333618001721677928686875302161240723372997036476921745852240691732203123496897071788432214875287816394804245015830652438459116090030061118843013358545942089366258027143583706340787155976109235012934085336340323754607255809568187239932342828605972212117939959871087880451809625611998236301859375388706946768935217381233807423584541143671816297248570001240733194647299934828658469938305176371415163548832590434801264159423942283037976152993548151388021678704428489394631205489597733711772634246144136584609044328764084520266102968663428862396481076412860099515815425357475105235989832353121771224537538129019431557560892424076541880752764716073019407170786730088757496221169624090677331457444894105683335590332668939525334313402804296338136840107173234334758917233730969704405769733597829836602928159097300482464423846223256880168300682902128109143869560027936749273173633865440691669678911908128370125176427326522709980251108124691707061153416402170125452265009147384610273824733139614184883397559344902429276785237590463791450304095354440785851163959337918452840603908630318951285076823774725688724710304851650831954716206485742612598945639765769033713657354397938811613081796499833641772958890307960538795538606662960128057438623130473673175873467051892966654720288742635878670189349964244713468325946843555783545471983844524246018664618201434836225254040403906674052791052854899807511313471092059781485822440328818996049571592800543143080456358750195969040368786910877694796164884979817878536187427260010236496795468468832038489934181009016633282707433379271197812798699843701262820467432489827310211345553978844574368581444779798252759297680241539572252593810782863133936039186892330631248810224632597229925652733833462343043308307562636968795909163221822163824552632139682337259805453044797033892151554374173164970151268141636026256398293655594643728417877569537741942496531708004280559771939072718945136848549501921697638341920775591316029168704025471382625043249194233112728043041064448180320751120802802421063089465401287974041424880445224214582639537228259050249453009793068656467629613218188673453407103776371987926903539859221085783879706548812067682394674868439332539880741321696246943722196564422508522411718569085717805031581915066989827558601861412478540390365939617911333422993677335034209381105380483631395169198004576605235469242273636424951246204538060752534870899783122250211915888273723753374789347638762482238592357106199745940167472017904891854076747066355091877059836178854818924875551395795460700317008343708478617715161127876117001619177166001474790180460613545497158129311500070160029256608645750006593491006379834222786162210396492707151642894904084105190824871169070490039809944926786310152948808733225275351750975429223341579016683104092314998023146859702918543695905803933515555252792479280379054673052662736203369932589335775122772226681155919437568521481991947947720484837372297028086911512490924219956237703196095047100062870980855948203973928888841716711246447438927605559076500526815198644045658815135590540368132260214329739560360422102916757278104473865115867656679007686882841129742260209985001951424620718720037507574277206584389922282239693005505878545724874789152752182512259339010641955747430477543098088526669798271369828046478478674704113239665734876255405325919846763404783844063287179206692095535003036909265038814107521894680269872335154089682560725543331521925773047875684720707796491890975680242860893978042682290107970380808800009868124470165007440158050336942352656426143480484397964823690837283112342626829336749723743984153790178972966997504022521136627632128380276165107550481378581892618872367804906723891463658351727797966250982293621158684867955611958935468979922147896121785211791240150527750187975173933261099073386991129733145120951093696547302497738739638011837311928798704814636415048907713280114381994436016184930640073560481134459038341995649982177236998671343526770953666362954438308161468064882858702815154971100696550035342191899110696695240084223716364132497989609881624716675654757908117230222976582433622876916035331134355590796750625673164850944388284284188603360169806036669277028614764033681395681642178261243503603277555332823107436231139661584870460387429927399773312814784907511022402951289573945856481033997562217419654574749313869123441126191738338224151043140405012826516516265773515086427134926385101806480858086710704838953982088501504937373500340516373675351752194209229694695970381018021943136666124364951916436488392271797398665802036729888478604469904918527401647544846474941130439124864108945226435461489700050648292838472574933771353405475926537460325235421908442306203350113145559568031481891986353418349687772866263573836603615580230822791836723878637245034754456261629338419698724215870117096168525142860518310447595815709370750448721750279544048760070708872079910193750628427277650517398130868346502550541558377437669376770339086938333257481704039412437380240458003564187206118247496446815899265546199271878325888756948338941559258259954145714247541734537273177638751565552238773876773285595802084444449921498911408937249756103611635257969429310996715170672026414785850725678081464516432083820880091000743684239222402672991866449520643928723677600054192243651793849899588306043597447230147815697737395727094375465198296311742427293983184327550243429784741653718770487744812908815993354122347613369621713527625959209304796045785386878173535924008887831271662436726598909529972176719443689742063473093754757895440610048686120045485761244931598090766966456456642379464828961224900953697213579171831327320859701206995026393374189873663738707856595164027998652620325465160634704388851795985019693460545133565321161538152349223362449095166415488829619798844889239555806120173084886643112470309220325393814045877275515117952448376602065682704468565748495734764820813497428321320122794458087754769398717069997505408960420100632136851942531059408840265327359826691519723756197858735458810926663930011443548743704248743778646657560055777023968930810412636922786919780681559889739210892089915031127049638767205918802255713782444774781557323791232647024336737392739506028018110896462574673740937518750242969432355643830485969433823898796071410953666791879547361045294149523705549841085085926632489333935162186448659994282328680735878113479178458079038446429227255321699884931502393568946332564507951193256393798729293961876691857659864962910763590631875368896518178387752048960737354712737977010720327342997212911659147160107995679095670260159994863815798647360726954658859834408372831991527178099457086781001043310899123520393300833034769704696446880819596392983404445126873631988737250307100445358483478284540559005323981022310509690415635418505075009679314314710737477213714769263276880701757668044850352046726758569786973031255057339624300801433062634767433529373980539160155156835572542946291713508723717988795732964867625076333992598690571197590206157730134811891245239598246981493250588643753643913150950233571142845279986796833162384020745934717455232262143312057919409818127801638945554911443860080209677702394096646019813680858808068188186973913177929073834857788805900562093141660789514856662138932798686941718523901491892110957484908256090168374982239173947070020454722406328562253806178776437630659354150559478130178898913002819087313060969861589254155864025373333048565117921160500327098042262268609458710538712636412433148700220852948770489632596283893596948618360754311424300371837954111305443167976770977343379993600207256318865168882775293514567038294767593625077045066657612815982918928146124852809866641119933067000958153061141588987498494520804429425281298545230839428968689450119433727303688295018727758935258082272986163439517805339366725615773123190755860860742149675037918268452221499715932980235208451551438956063711642876460574061436996673872146041742118583980109883201325498241699561680122936786302157504033071250162374344116274598557538971949546962471691733706371097361018867730658509709621694332472027765130891731159738197703948034893587417767237101808220401098745470592702638657699022626937078382137532661221200151910469378373023595406524319538353734707929720681460219875843283862728152886552053321732343090414424498873505701495127396668177664024844930326910582025908560319483941384419282639416326282436789616955876349354005281677343096495853950243581470472710687310625521962018726353910971188494542882864483302160092545408765414869779823058092388931929539237655342617382061164479149553662532752449968266912293643764151881469840355532079834406451034961278384194909053952967051319088009197126665322733914684319392431750343531493543096183847309126511259395342200944955676984514823309456357856609693532389540186819552530444511478611136550181765306118335913379906045838352041604686076470544938645475884006317507412606388588677654235995852871698174543816639764010020216069862897314009339326339576061301014945115366260179115786552066713817939512519060212450257142622759870433033609275739404242068288092498122074587095358290600215132860594830355323428632236966187277470515594450412538066713986599554373191147686988549019937126385135194203828680062174084489151121005851379463142610921406117650058106223251503113838845024881892836634390978630971212008220760721076418278851735528389137712841151698272445761558594191083448426175295689076429571723146276885792664333204679451713321868639419933436046630082164243262716866760552573369057580857898293588559716146739991028773880209729515338635512365952957260690113379225800377244472494269548297186781733538298825810823766926474329312639435028644181384209458060921786146240992739755405272322033655048527481758786997572283030858128795837800732019868469789877195327486723487758728950385784036348377681678936460552260433039788991788471089617579372912777968922664574789162816366596835417485562928285016088925124222775345679846241484892909815724908346626565964301629323294900255408087485278767250739349709143435266786494996059494355862901920300614803524738481563164404754159353049817748693337046934222286022100201585864447835650854313359464431243415782488883580588630682530315400092335902995651658713717250922631240401126708936259505344317852547083585780306698093362093532290968003070695835456374072850533817304167412817051545245456343713592410935843792173376625855975254515623310728316513709254665712015311369453049327607273408875586637759941143717777123412095441611986965723026922742679826202836115451806569760439499504240453049198799822138793810396732023275470864368528836875362062702167380690535134826401157596105879505187660183214856223862716477592393870720782593731384070833400442181106449732514665840972049259789879918176048726654457062765295578934565745809286413817928545808182447635704652630787135951925544176058967584551507300418964004185472085101984362945749259232310988298009732734427558077010274487972015086443675635067289811489729434788372304158251051834206690382268661295724785614912748866810271186385730954140322922325856654575806547071250261239101935624922243561315610599817253297856688057935878177536379066430752417270407417849233032598515963115164197663274935054069151168986635398736680510899769402605653580260244920753335668956494024384125428387583050858794778385815306995139671721868042544117939041580776468485935851842275246087070392625774051767708795504706900058110470275122054813229602667602628267495019825561225962722012895469629194205957697915072287118915139102445872894922386590731178333997008573807898983865219913495774941585035659520122248951620907937157982521468038400494804565543419688605327895745238638750848476599708180107613455503807493374836861488779305605400037708830470326096826288741299946244153969340624576168280750159574517691699337383017209129132109322750877149273539979162296118592139152067734315516995654078630568611061190323275420180591920848056991819578572049189704455836285417110951352640341752028691019813058014841943091228665675091704682636688130025032214963801780022688000205457859925380924181244795071788644785311711327621375739830003710564999819889665925045487882273101582930270539150692845456374371452808370787420917918675876338099478294521840551188558250333223301554961741619956855776797225372866508381569741093251344757994687543846889758862451999013941511291707907916166210232005535154084827304659792525455760707114873820134571530076764549449992512627435282768249048871652215368110096212006739500444033258452161429078401698717092023871897964458589609634707909724832804333464448210805971178845203391783638088176656154068835086747645193416622832971233408862770707633463257327344145304590252230554203387857539361932526990261895888182265627375676942198448467691157242896457601771239171328405233374018740529606896332651749816758790645247536796960804821442909057059408091774222465501120879788026564831129711189843765534194578191967041504522413657647121444628829500753164337312864425646509196681451750435316446132528549621394771984484388206937392718487788383314476234448874572057623452631679071655521101610725899411127572495084120758737685723472013355996313104610702392837398379449515981074578221449352622156964915047725770579004075980877081482345367966563407670459420399023528665121146433067992962398937099522768474850098363955720462766128525912219828096792465533254012069221525936049864444219622415333551559764634141606790529357043092505793691846419330818250844258212652004137070035092386107764080922883516778950600044962558079036721771204544876802954102755924887007150303395343416110363124386359640354285440387764754479847756123273413507319821958870186022281271247345937437312512630090975489708337958206825274244298948723771863803563486390528022783651852921870683023872416854277002101947984027169147693116777771060084186626784823889386286423850681369935168546752019855636436015215524236582781794533759219364064004362434766560328559355786534121683348938831574038223986028661431284805007341379226345138638211712137788510097635796215009251074222651583022500570376283252256366180674331381040699646115864339429626877840219125786703602520693943709108334583701223518765506775134335674608606721640997622422937500068429079103095395260902823159908636814233238515959624936834774813898575139078633323911980705470975386627491785614010131557078981867558160476789594882784891881982243813178477858514633997189265100331248887398869960415241511206958218677463716660158315565656798166232102536732695296039505371255004202090386592898488651601430882384494834657086674559515995503958785547547601581067489481962718611603863398762383902251125517444195803663263115059118168578954999833089917026603055767745592054299241431808906286580632556841236089115036313016726226865550573039717604410676382944070359799556452536973847685081759780517361675475138840098690585921060949783221094354504461309431315208931845490661170217166713579623182683849455133607607570097259632513340954848707236251798926655056721929437180584787288911741626832051725211011019129136037078756037990284847532433412515400054363830804340349806703575171854016255918348779265596807595272021781114086557033050330146549290629535950393787924257506119317193153914520499682578384921563683822380619935014440113743423395522347211612691008594375472182411336587663259811600541338687215049356094534238181040275557251837931999941446548148131971302240444187600083965249042364769249614051892951580289330932760215351454427841812955749022396480095103122627273443784232437092221387286012485186114765416871273484464542958721793633883434243999729630125161557531649452070124977157104732990148900202274165550062344575630149344202722757341735928833779064910289214432418447164040526455495090125978332358098303519808786413068909201337256041555791970414675446451719158046412843814542422824018856923613310952897926661707448201481627884024149245714917721317007310608651329646198302323322435369245916690834389386607126750256721467657683856761665118198572811613077542144646339110794812044705450089973798936220310814590864352934489948621727855207444068725805581768262035858899315811567097400291126230015012088801827461475297530329332858655939204571844697268234829060814040867505235994338118288469413337318684262603933408200621214779014772877613546298360210766781841296978402303814795834237391380199858595951471827078408501492661613650499286847894745406892189949114575195380865418295518477946783864632479964777190502454815576762938997901281707942844235514337953246210506286536759809060310498196261217862441700534152872908788681738729626649631037607419112493833252292057395059143077278597334593444112324098404385303703422630420365802909879423145049222901572709271936370094678922887383060293098959367402428305383807131622704220173774390149444333743068408446974235318746834769853858265095885564629665174937768050636956049275465666482367640892329166398614554519445068266094645600275080095790733148182249589226964295114911169058566252266209804379321254242176207367091839512590960746140104986741192147810957830880989405381401336686981676415990431099502814401053904210943034537086934700614383762231703180381070197270445247518559373156076408103582747328515844055470405533968527495541572809342509509247386145686078552453807861428208663930586774572412416965909237163757423771999654909368356303122149773301963336042255217007846453509528851401960042495344473545948905069160357545637717026363524795064520227283298666915742536743857417992200932694047512634971182121064751239331127700587751316766863152021614626488997813367728465207554180141061746753079789588526823093502021712372771359666140889433853490921973464564332556110660722554450820569812704434732362168603895347886328174836257365153202526843118364542289380648273677125872697072888637994550355942839826378864405606145914132142997377992152492190309241722177300259255282887562006496166944936439269668834326777173569990434381309570792981004837681319476853804467546870980146948173224229810600968171418904220213885758839064188827578785929427338019988535159487755951467928946265369744456645686091963035361165161652062512354781267071310559894889494205167911275341604389806851450192028312812572340167509293474920239467389874651518810896995887186627483547930588764041820207673311612403916500833910430709838644936910636061084246641833575922427937410903602990512321890661718645864846986133376169440753127988186626885612196855285246518881887248505275868513037410355841511714204976165271455436438453943448948617145027871094865089628161388169347264861698095115549315036340449263992657185344799442771179258807838033861578894347274686637937793767036045351502549552737490824245713383501416862641328637341418659054041704516874811721103859489484720033344389852227015290487548797755390716503522461782074504902949717832205986709706882541600527858903505726822115702964394105229808000962704559625819659446665659707266855783926109382422996245551453995193538449440537451115151496504792191294075494479607364747958913097302490140855042323195652077613495170866760845141627064720205305086007326930022650453948899371509626372968247895866812474848116366751556831342163069678500399070717614468163878949387570600958534133274623210395102165581929224007228543472520835100675174053222859121289288391150837366003976102375724055907997708022768980534095638070370397140020308393939247408883792272961497135109374482770988068437680772571904427642462468718304783893171014758780849974732111956288362846640360823518461163348612416860627485483334400413325739185459631087872347091737366017783820692325403527331957912899707412006002410059987194478432055143183850980894955839474658532095509710273497568250597030309079413967301872734580813358359080740811839246917539795860725576671028697941137622025684735811086540503775479644800953179436892474041594804673809077250635663608023288126052728944246495025550732116590694488478801768209192536865558767169325932469927362002169258666477953419627115577533932736250454120297943217592967041159474478207817109644064332800892102937903975139515555056377596356615882787111491777109185783551865720400161489996398697719983866526998642747890491876151061784166451416433222988954631577056715158001887323917906079552370168197215339850899510279622174711430172303925856226498881503830809648496877463620198345780994245572666614724262746197605880508024617711383311312357421342076688595413923928877299628633831623002096741944173177147095183376483853474606462004294509724593408943782607849655340512453749535779014949083326510533609990368710676175845275440073546766400504211692025216191292547914857475870755996912580162184030174198241224372724741645323835871647704842659434319645011049333477727060058563392495026569928847255003776423416990072253452783309381962741784239681101406887421688751128007061801811885710112906645299251179604582252419315571649526087407612490052515838877629317388248589427885662878925279129055589073991294949099474496985756793092176314546679453949523555411293670051768953974283625790864999955605138906732833813596387963297393660067839132910145540675676660310752689589184264804655454923299986130181069701330848322316632597715638991132318409380124898089611520750650556498390417742780856379912657727297372254775325962362253607512300563536195945494491989953527695220172192515491286013620976859153528383051051635661145004124884214555474604582748038596764152657618495378057786919126739159991591110636971598577884782155169580883436258183649012995531135247888554061999049353192066486733757992745333398983264361683892298805160595880228666042303919776398431831486055262714131382851083722177741454482972806847562972194970004483441481749459900992697211821372108000536809378909506342256652117071055943000620537243617811405687097676381277965441499259203964637958528019304479366951149080716445738648162554241782885979628403440118300520103821024772345304818431660168186582845310204910353925407074754586469262781397125828488548042000608917037848365867259934297723649892370669776532887892576401547871424829515047035801485044440861353151077020635873040006252576877552855711719057827767844431644385120983217213540069698653422956996000130756482406708106713305215691488909120734587306598860662912851184650804761767075456475483397046638901223535669231009495456680511679073241555974701679550955392099612069334271303198504765853154826316857354819389309839170170314107043618779790881228829466577888393720312767662605655191501023136934254494724956680885907390164850546547851056310847858854386753032853715768036429351247872294518840859188989302086035938635014300915405376814308799087365790104872483192434535837569814723365044243100905459671389267001093430781564862216943985797916987512902403925688246379611035551963725522238197552907317009196417873029831897751116912035976298312447728744076841798716607043049725802654281370500792961902809680620884746926716672003321079727589732616212364612176879638875265241488720731912513358766852822143281937298386279126582898888857138683714152281996766696140573221379998829972259437012412397777098704251233601484274758935150769318989929958754304862245459495421966879777639841204400327613959137303742800449252693728435598371388509855874949299607305580130687639883792970084554983960902142388946355166545358648387019849284149826310280656642298349497123639406753940002560927511297996048401870140566643710753429619213286870049851002602585633994551701396537500588471404105048310050955085760111643266875519206746678626114792539772954371620194123665528552297991511738454840394189631711621069712006397029677194931944049759680923732822047919003095241881148031446749994029106240954213464326670912490150449602809273146358557831473841418188360985673485324245185204615320494154768439912105644228433989852822103822179346616517917095085472843835826612444363805221823234387845980197884501238110897049362983615657411482256999260238256551309296809181200536752508987047455530562581866179033036876195840409302016398503510530718437619358759114794875801427258742794361733776251640437005666044846990635269276653259850120527314461909313445028900819796510220056511698868294400105035077353898691007410099545247664554499149095539229478209693017201912206748593661802143131551578589442279507812073775576752093330708876998488894410685039109116949691984510010653921522664918857520344429644526826185248723653390272223050782932496240177808146408221858645965713223411286630482120296314443824594876290376954414567045217843730133569367185293035415652301687618558598202442583855327376898481913724158720197970519213393903194694106321706783781158258577579420393225283137450112249361351641029807483508194974022857275470343429330885034025796155514687896286277909749703940292436292028856877932431383951028981149861498311233382553134801053775950622164625635729280940010659619947632305491082965118411773134612499800999729804234579538381873608402845528903829250052757861465043618874932984533008469564354945773278429856938443530727229523033205038792723569904950756147509931921709903796095655120879323582193484828072154926892640813900279211653550368890887250228396086701056607161083453922667548544073404447019146229705603160638592855566469602039058633089436222952048156675926421794888241437968410746522412814488142434347565378817645347974098212529016624488453900436843587115339996205000284842304138405848460617841086254190809320479782735711573762354191885311702240830510457975368775001427061926942142731685227231704820877129399696129015183799502722641059849042789374564837597139098219636451074535722711537687019558389496755620243654742252898784461596441884034135234938028008133184790036921778410246699390983856750504762969956884990457107071891701619602291657278358657819319637839633173690123155302475507101702584285867297844956147329709531805245035390863229379063018868913004523993431560128130936846849364204161135602030550850516568691369439814855694046708248315475430747890716918606527351540408099674727768086239657104538230541092254657152849484846587870066641529622957425111671683130221362695576173582505677043912952701414534129005415411928142760528679626590301492085424647237681876911959657526070435585585776097594089491602992208902887918827087870475855222746399212774661495568480574923618396195554602308721167873873076724488719647307600147380016903359087984190571972489782761209052936769145981679637558271127165798632061349103212387286944402625748534591269921099782078380935166281775993726938509986573093814836448739803787790484559364720676368870452125205552996899872283070343911964921262228604572250839723617203630360961300199106149582540814870560581896706583531737732320871310304182985788547835297167389894085681145835828961610142059210234767866524534151322213544302649629193349099761991200721610442360805571104082563308174578999169698632032815658815602620624263008553174894324864142389288199207870800485525765360510912566338082388381000363966161084257734893502949962287227462039742302730903180588695305440203076038770487856956032346679030667508839109551410505249391586603502172986936177720268966338868758610863167973522252492247271255567624940660833331108703590683859966024731097432999757467593765856263384652697013197967794934683908945308988975409885306895757292388852028756903765861929246850692557015386937253079857699052782613045177966146991603119742805060144007033335364800448842569639218900859015781877146893521171913388668490677118312921831399009824558898311891675846235306730247680964749598068052625454380680144273736175891670370687940960863943165320662455992879701751740002597874332785532723018315882151038137957365700586893523179645498048690006756983681817408069981959351680233270833139623523020451643936788431297990449602521475781313609249081494259395826538613785007968135586318421485988132581767001649384461107759167732968465436979042020337192794847129940830266289678843363933047622884365911066076913859169310746758222479687650316297754379684081962677570590580323536956965634672174866234939119889085246051515218755299771972363842641733454079014402131109259239516715664077703042837777282205915228212906193105375365287443707767696950323118751809320069747335311168199289005150489457510703037489827147858295670326493671215153666206909521491581674898042520721064153828460472645013407098735550506934071449686573959045769206726075447253125936195461565599836751796497314288819457381776825602092232124074266838353890883377594162760421656234203780157316266236166952376085212305724544032044109322555354466931147430647665213727465728835163982455458828600632089523415849290319285426970770016427935424569855382399801776699276229243219001751827450956553653624992867549180467468693084351777267671734195523969561905197976460522736181931819751668351271685112642151143074921891998719871301405529505014516462060489667002525605815203151113198156862637056375176179607530982988402076722377385989359929254345392547436055801124756976753745035866127166178199879796502524080378884175467441236552384045083527339777591025744143132417962111293037641166167974925189584694742268537230602564834242595884524810462599804812719866203673267779328512853953293067975869781000065245393941871079548533891537945691304568303256170792872642086770140232416408040389553553409150882651906425513641208607534402938954070297394463701914737090800537077426036257273058338009703886867197176262112668852207270049586174943939611821864466771405318473032712667881494731776784738749815380539972158885810017805623481957109019369306692222736922093715101834655186594806319356293119424244014775563529922911148733921618310037174777377764020654271404380089362264827519306735086623351824345485132373719099221089377861404494946003006273450893710561876211836387332382469861898860963037829865621970030013815434266495419397442635737347421369378418798134799150084280345854569256882777544119188372514235270719064348911225245194589720913008965149513708775725206854167600894608084298879627696799694233173011549093896503670281595311267168190323183735960639498856714078221427713884864430031884867861549861067179134100740481526258156302360685221589648390996710335233216118255742933613859416442717354536940964341647194346765536216710845981090612868251987797329617076772857419708695956927908646404252756861857021619767912264216431453570757379609343076707991337702098437838622079232694368212423243142872430991347377648374600653593665820798522131214658721533405302320126007783724318104786513680912520429647615755685694529028740783623805018656449616844000870428395212052065602641904387038639753367232974258414019878269589033005767743249227201562199487693160471975139248704034266596278595420170052075074678642149826611550398224101012796417057824026370925303563997600239566635758493568978182019224880042310427353767480025330764743242523226698017735959138800983193288549785592537650602406783910138064660395692746966821697714204847245205650131501464268635171177539835888460660000546590018412862146068541650115672979054064250303792640651901693465941473038636611792656985470665146501370944964140013176674180848874629841996215615019263549132858878025391221679479520036022827226612372612676337392380389663120596803500534860785314402714671962473262790896791094728241727774305218427967620773034058000068525329721161065306704742497317208840427810718442280521951176653733370205820398577826713842199471744533198911480860804724771907114474189419119382157546800343604986845165644686132543441544110229703030216275124872652546030117929554181772025187226650909663691522744002610240604685439264431316690759886836757974242792218112063556326163591068825142216214577964306385016260490028763161649291320699583559092546043928710678297331101269752700473830076017637888497653758761622196915483693364900388802858379044671778004843091623386274202933597560829528337106050433237099393566405729050144212766024541414631788850274152971110992075094168228304745909013259181521733943088864616362044521813853569161927766949941560751477923756173521810545060691109034449767780340144580009144356047414812585285183948282133059211694677063288906050469367528060474678552087531312207272274652837004715237093232817103007821343223279855830773811800005679578842251112688298199118945697199125365930966060515308493151978364676586016807033521180309301468521427457262120750292827706774443869220839008472277754808031149666439222773438954122526767875658558153346751712945917177968547327090617887235263419243679757354266146965301912009100022291038350647943926686119034250328337889957008750848388841706022548336403800852749381104958929415848001362380129429253555693531300181437130254496502929790621628412935522079671985442605513702556635225582994693613847510534015118945727518476971535957217603884463260623302249617627207603936826696856055118006423661618823046238927748500211179307306832936350515238505205528587412676280968023739365861249893814663990969555474163958602006704416817378626440120375295711333158038774790424672158934052562633422517350356890025052690764172371390889110311606139296076750912786776141123486582479514338692338879995293266835118926375189977586945506065811908840614574088426389726596302866449796806913944376954291114857037677948376298641196133421566065539731161435600537228644504586670286713011032401989645448817554894229917667782735654221492503443126864629921153549132809711223382831504203424300768319581328370575510892968726518169785307397153558278814883998602282960333125984290245778301247994020185605814868098801929160585525859892605367067486698094807532192231589648735634321956841441659818476502751519158165111548839481424152200973476439473138368808072893607461457396656260530166069285822414289652702963876111361196769838460827162511916775637046734410217441872173980475707258667651020337809731843610114708411302977560735873770655091996587192901725949301344547829171370286545081379954202558211643333737421982891164328836646536261514824290250980592066849556287048137581894554620524774204120768567876082586592670814315922390977234464249358991860918917650096012586517875491064290772576938374295964717228544885752740521084372200238132400654136005130180754108316218859164468836510158663061484399208431614888493920880795846861782562548934749310564045162381854004782111328076046577921309126472216860505964984465416887920370807408960854815284910488951790371764835999714682748972424053979719178219063066932915660037389312845078659221758183600724436671516107423382799980145558664894662163784804505121135087493508400371869327776861383838743718214719873853554974774931190792006978574646844436695067761810919330163917649393584345214325135199113996347316976183914958113674809058580673073496140397504215073816688957628926179447253153418661511703218251543889481378708159448464263396627436667827463922064238952076544434668576680131710899680716152202384450861500134219207381596166615191191923655223966932143612643242813663577859714261187499189772053193763085278705298145195872407511093967746886019041810551883577920097798450768264490338479058471145667682138640966745158838073725289017579467045251778869848320991043091398519986792185257790833926951569674598049693808508214733391932226282492950635033375088402465390617323591416254304222616053279665889727835287872948292155351881675213992218612725588258794142807097045362944471817865780761461953574900900592323387113702884518262454480362151004739862870702162094406633709834228292307197206277735763061708965422505493990926945255719490439240868565924985190640423272746335846587294259996291593955895412447168341058103453529754180370303506721606576511591076586445317082445592495302307819164051163662964679547281935377574567837216451356700548926613538445013095440318614664524482485970958846937995271241776509292122667665488269981277614241537609734531275327044442508481794418236272417558261394792493110115522426563146959286406913843956225163706100247470257638768546307371961522837449095240379209440077647423824789335663559618996786191713709894925558090649634535174202796551503780541270414452891139281318842525020118203102547716320888103774224752597281286660131289329346415958466135645998816462019351285185732836186101686440644321145764590816806944249867715290715759973615139665086801123144420676656989941955316007919290602629585278762507111022723732815971066325494826742348102401656777738644261796100323470245167390588002300553631649884999446728666493620068761858940811550356801087230067782207490401436234584850721854966187142600188950127717117943815555953069464743044587549464353086122676719336220253180194779412867261568963642664767327573976602387645737977641387301987052283803263730529400067504920707300896552162369021505097890414104917815689186385356589082793759741924738666903532191989812168443233563247573426669341115742465780636487652433462672192826633378170225799851639994228167959961878949292974273599302267278625638639698158968035034873041299420240672021419736588077187818007678514060329182126962308529336655567939666261885037129536698868837001879300235395830391430338735183926167025877873894053819377910773981115267610112825157221743382293503824476817460914775031301775143690795629006192583045394027076000231019584588011708540269560986308115354880302559663580698104032547884571398186085174354519954647455979330089159838315829895768703527255103606926535076032355656308764781055390584788985999225286428511383546905949591578654182999759545979633367353165481926774079646631487731450486025820376546242362375680534521803678451374948072237413225724598736307749326623031468478792994399268045223959639582800081899251933121497890719237364133444789790161855899717975516929995608553415058083463879204984945960329129760333832399666812658365309566497568576783541153799088134694231768955546568803682517896052315267076475713110086587556085878840533527728175806328287560072199448642067873210351957833068801926378335947163271533883238084911407968740161192619709856453525822548361197823910701173960829170424533228935128074421392735454595436784222510268934446308584916459800245592699675504317737112615743634287275457934917549100747726681182283972927601126712206925497758024339462056060670384055349464933406774968509717489890185826094899606195899383994456314811297173848460578180327948596935295680033369405353350223332537968856040997583336352293999364784025496780963951673941547927593471589833286508340284736710854007663163937522164091879143861077920628021084405221715352503378184930809069607388377734623243960266850944727557770792337200752024377871388724518108788928333529299288017297123843885367909369285459687097780711631499029159781067171813958310240436675990921425877963220109336177702636120974893611162164089647767734563938910915265516532951914045339614288856648909156202131278635308239469267682043533361324417971395045312525545128619628433460502191587150806294186608939341600474607346264702602359073699909914471882953041417702142416114962697709528267856870503808049540281242432603385905765533932863403900252915639879690378250715309648990927849889092853081254811872693835201691170726947891233567590275328066490882506824630750671328189990116026606412771817617114491295416501741275411959651859583915956811844552071597956331515616847230277021416442419267349921210713961976814243298687675782035299750302144017735637087101454030210104887373339626173467399688309786376404080118556392686754830105435920909574720747483091739652605528674934265955568846755184085209212094404487473864747522939924072475862980476316502936127291576088150259160714146208481710269453399990894491330464883712893827817700556235905600484674263980067464086669892757438209438777663065846143314857947194885002117272327167785122885075524500604973483499715674795964888984229846443310734534188550670752066812954085923931314421659359792761028060492499192256255665200805117242169049829332948854635514799705912682430128124449250905283735288161080520362771677975692738090687635832260142512514073590147420469760143491339849119783854168422705991234735738438998706623152953091595764761779357493902590135819739834462126833807318426037828872253077189678571327580036599049602362688985480028073924336980094125486664370723402328162163873031124120146490999886738773736514085852309878718668386706561028813770449392560983743598181293710510212876875186737158822654072363331982294506894388319806226780334298287507400078909295813322529495095763110482455582163333495431471725313409044219613221639841752219013989461093844168774553929540264523430289485893991415494969844588841260347614524991199938441381642948824100579494517053042608639178500525759385823678216375983216503776470254112636300668497355438917348297055931507537596195082645419935980661011365506668985814971888698720167738630100983079595894391484951499078429273234995110663526873727825794625795467214672399271927762316678808793395852560905637174253764498415543406024801288203738883367428975632623368387275123030938620284360303198915002410066791459688809668299578416524881154328975277634720778128290121382434509612778263183229061933516193949719432445261454575925624700023428379756038835286533093196142445870725683758742004078692085671351825380029796539416331284508406782709535084813746071465007293183670723715901128903240649011831704039975650246010750291610759937985325429363986081965484083345970356824718310718909226291327473002232828397218467815036233215679675308616870515295069721674032925242945276495192633554456309298509320764156363367763219857626433769101989274325716891023823793965517304257989562550456907644468515154005134119755400720145976326870178090795246642906304908838936691727812243799220209749891127254036295116322627149405293862177161114264490692824560951025050625338014000548412593413673308197950236979947478497136335681055122457643986848474988154774145189970925450029875281324493162233564731111863058042228217110866048002109023923483049605905763191000876828546543354468944633153868484550409581469403396912590335308004562557633775505598156353945403381503987328113646512665646196292406886948704767680518851156186866184546345416846437827133372195974055078502642289596358100463905963804449482373130965113547102621799961478635621164770127978520917038325517742575417881731594733505124923058443400925645421932054641976189477613992882316563221711158472837289029414379517783666934101108143638222216311868935765205859564388040077380344089379415046741247902276410741193833442176648228363035264863356288883938593184484902285018336966881599449840966902854669003245560382015481339338581211820260040900640826959031511415243000247848005511554805456316983629271377547489166150170015192744614081141413618176582648591265120937227820916534492911066357416666773505810838545193597410285554725042028644934973884395689146949613726543322958008365996251098995697699669202097660148223387118860117794927378475780449340671839329298621452631397994655267277655529433312346964491237089980080956267296432568587813481218335335524336141571131209980125688984881067697365776897523375229144505034658491290390669202120460546668902153960269531891025571415978568636844837921353996478849027899392227963369124534091038226837128354572147087985655481404812494047039795819106469879311889536040294666512635809300688878147808248202631447855384229586060530263253854327006991912448777325626954822278353184898144376841077299135895871614741581479904446617397905402574019599324410774725558884865583260713038770743961045206217897089011432713454471140609130447490158079417851599281636506265221516202827607308004488909565583572352252013989287505267199122920151789006032369244964813492178411548174618932152414060317530125632250186363857879377390989345010282193645455125081327861605456920631022018911237134292465086417834830414897370162845338379396418253672828475964008435093404839859933808876040126248015286736528505343082086122077968381682357191422174210095780362204702297607493217196832836481367319799644890950302749168509874203830520660899566616890519152976920183044701327280046709248962920597170139550658624490133080830068741804179185063895704446087366214219005581189278864427754737872367666693629855840462748005841113411033424671342693570409821353501720370241259637761610509214805893106435234814891187101729729750267345853629894368294815443207445015797226398249396029003296125677274619764198199056425062709291925953083007662610988939966789288427358720370964685558576821546264936332377019404539431139710501145542884309332594537118991693265318399990701876864368890780122121949546753011626363491008325151924604429845497488139342288719463569271850879686973953448525048985105050985204256890779590213822829362221566144612969513911768765732947157341370841174594524004353125425362119168062619316663204615626836343892318744587194981857533914540362256933350961238832574907818622180526426685303657969811865376492492046877877787426453455032221117969676849539798046549706991878585160861069114182685159562341564017870189594616949805029666252092232415675415447381239743177921067291144168551836253313234078200628356563587168073228846578664884808500104890115572256237005676750722199721621728486646838271730284724856970510037449231639348039780953145621065812594813577202682660000136385759095683337776411716684243166387448345500771304855399889832593393103158787295532734575240748985852711889685654941896657615589809264700887899854283803108350743354090171259652999369895170818872438825067836479747587527907251011925984615186571363237008385016550071644061130877766595982981804635561788488216700680304225559413320859217496821640904270662849641165233700785247789218387828852865305267343815431886599969054086181855439379699726900011240218748628905036335128971660292858711123574726526517108073696670598074805420270298047537546927297182337049768970393392509309311123921021372600767853436498285403825144929049724903255550102172693567851710096420316584552520495902893493766934522011762576826765522589718906562744499428504506527126829418738986074651426553173129289144569574185868477759953480350919021015270494954362947597861005803026933885000296391402178285280548780590911375721904101091668364465746806956771240129894250870345707977511823411003599436887909961460385857785868564681879691855194900052323584772729613380847947709270602523814068706787134718193058518388461940892953590863979801060396965155611113357991447943627130123376331034900134361357634937146056204626492316156971600093036965178378212917471621506760907449586187338578595173943504154700731014227632449736365223338227048296209918215782766692334861777249861844074722219871909434875633278379804566824934376275646002625662506313191347376014798206934197586981716385624518744186816660515376279322174034901429721181490469376791059512526319421525962539497607955827268803830577062389448292919904632192291232786887809499501949759975586093411286595763756128749163924905991647138281898722164454891378953725617972112708278236897285993747848536311233880479344094812638508047716229448765302374821962648957469146122476604132265690000486592485478537162424383840424527377934426986058731255587418981659390898948715150738529932723010640268682001988176295705026160163101293767797190570999437346179809839912448876749274940058929672086993030305822276012259677812727394693374127571482629542850025508125000798712149386682318279432072841591358071622206545701120229506320738869810677057090105318526435222430792557421448492342575690182833051779150435280342750352556860258345153774178548267097547083418401583019836330394293096532158932284918974119208402909824310832566072009839863195626989520550719789176833953802685168990196281195811195850712937113636528030967112925299323136754272436650051148356046393579712599930103900748304493181191551708368450481154001844932627700385920783048916452174744425697689010386771658012169078413824217865783600532733917826868425152377297053648470869227722859963481831837511693182860115227564906831132208356816476511879556661264811280519621800688074597284506725108586542890549800486630826756990542264493463356078058046557320847458030264537948101718109540938185640645623837185014503586637123157831911077719057995525531878946118421314233385301219175323649704137128589038696639818181732742122277679984545729065365956570166368590887323098405047486309333654233105959325216533472514199915011217107860197550943288929495506892792482446704197732082304616309740713297325444896620246223174305988177079966618102770812549680967256326467444853350196673866166833768772601737100817789541063541146391768110341769778759780105177653264911928566213439779863781351920512141222730990639856874448260749260273101758977289286966417547163183512963683907176687267351988499372172494998943084650073254459480313207388702326626957107918518875817219397055347853685947593071959950139249596460900495428094753130808270460119045705911591078133716089601738557318793691852031709920623156786811335349773939786241666345506434476348156253552436083394199516886155580667234549593472754892373427201652586572891356111585443233058376807484362446493931991127907491296251305973293585135509234273792904814310826604407884181288434966404192228399888639567465037596737304854655736602005380284661529579214488607538398243487883967313778444252750059823647856782346592709188854658347067425591314472367351813726888727259232795924745230888727923725762756882886271073105509583054656501451855966650036869163616998961608985163042425945626833222473892926235578431398029018796445222066489083493148029750125627348061818740668421777461668653611484508443516563460295415540927039212124044494847212055792483924614425909239368307738908738789366401837704703030203285520426225298086447355586549077671378057816100757011643158322405124893150298978395853680884328907572271677389390388215397784215542851491393640031945289183465685886681038774042807580732434552270289369364673153269199474878851079602655352800552099176368838494351000781711005221926798672483121367050678412371806989833451927650224300478085228114498738374596466884542768870406725518261414204145902643349404512878042796907227060002871649239446546355302618012713819053938313291690812057836410422502628270636806675909341733269698925887033458845251258135239505864604545116811370378975666561842406450708999834664215700820583696569360088683805740152935522792035825692049845273443736623383461383304408708308825984544300527118361581232262989289046435108526291473537292807443498239872367337320697636896098339451654454321317958906179404292946520442227988056065416364033095293609584613391632496117996888667156793220696308481909942733137845802788940146592746508856713944147371839839861047853686499307157707263013120902679920150713551723347556741190517547452832950761008508403703465681157539211855217050180531711818125565962191419668490483402099916147715979649558629543562896351691709291718567857450522253052944472588410374985476245315325358628695074441127510993957479111872989496614612984100935696114114202333321231159280073765072065161708377452481130114315796102520154002561671768746391937819055401251879510908759171109911624979179340608747165746392337098860762755261781634970362185464389747840994900744784709181079786206505169636034211948970191294839803414169751885277093572974503814956624244255971959049951989671268085932829695587028866962249707580577390913877915015589669959229155577596177246213125972226422058830875149297389063702831447186116158767347036007829893192159009206476805601336864898564980352555980559700487079108652503608172573527896715307903735066744735760679130323219853437824852213986186938592455601116529691711652021445610074569411898349740003417670979011639114714468028433131505657273166825417425713166838663788270473495701961714899526102606701378268342446319568057193049526898568844674185156429908721395506103853600996476057551047125702981515541202748911139889267644503078086010351960607488185609549024136556997320232257235304484092043565682368275130295262814111463735919965674377639183727856464692412158595077344159303496279396984896170476365670927719535531879757887320473674623780208001254860645938087562391180361048741387065613787702410718809839528358460446678921976554750662376593013066564060035457930176209836947147689744742166626053660633683735577078398335386606103722559993264963884857177934937213130140375981589067156447360776039673728588308093413633682574374710756879660324421512153100526225222602700044214294100233081417326290180291007191495398905495405214103317020124505118750108135975678495966140494191290997652718730632347301626492334270480202348631365542823800100980371660210132854797503959006388310759242111453935903182882319542414516375403580413937238423329766562669144665530269960313893996249441048412494502515516746162428943672740390192753589380839043270089253457108201048793753670550008288495731549295935098636616089377554727805452995737409584198766118393451255188341562692996526337574784242445235785089793703931037621651233195790902565616625768010806349066471791131301394095869709952070151105444412380075507011667170514216421550201786519315613632362231490294523457577481355579231218700540051127285548814580690658048315761616307728318701260368947290197382156047470186847166294555297294236977321639654033321952334545262315954847185622893847244969292137206335060632748345622305122308170450549321311626610262093884711014094608083052630551751271174439816320724345038085759910104622141492994866268899971309729047121004756877846928235336448604984104456885774219614518570710465068674410806676707273027947158985990321768385735416530314105022689512442068111547591821940982069975881461734082192128801318361400577640276276330776976449672885671056649729184902661285480298811184501780277819275561881607214066015151788020480619119138960547925230409910130677003788601754425950268323866017322393388052572981184821765076181380360523366583781731653916365574200380785349502678226768858508389605168757954884966622873671699431341611157590797922181974312295496065445530020150138791925917051398887810733143668997246772933392279973249314074926036103526824785012097413771697484813697458069750399903769402765349695698311920557643045172915462544168264245774630900649342933298100024371528826164927401418523507732117545010110837927651095034385086748032250090299206325131636299395573044621529163869559450840888533887238193475773536949002076135487116863863375007362638972336917884966258327903678734529886778031447346532728059902388526205542653870138185347005689248240371223765218132963143728334324258444071650715574165975680651718562284876249819145685278260421865838931344819320709212474119834283345922579196810759579382112017233389893956380394287224552892403749956311547754690786873886786218510688328986959750419021334295139507380619392019118500640173567700035513334226142559987706873195188461479660892363545273898788136742417735050640726819915505070360923833478009594274408644553185008828764269996898478898335148950360145854906595034856201280544257771868145454712912503464328205179141195751177027557689215069857376441875306233511170773744365689915784016024329838875917602096336990277669788125283953991973409310951354574849178780841905769016935991901633344492430240672278368472350904781704166478747918619050682908604142934476245125885441490654601676600070848854595967123229719055479664883305588559799239896716390649782521961382195188476664862665715202725673404457908081166737243394165810332792069217253691333878450137753420240608695933927991619705331268469858220081949626435681295637680436894812317095129177260419452216746997380953280699580930891990711399997007127368368772673217039251395713865570890450176551517552478244374382629824603600298504922210872772988962879042607309720535365569003981652324961817888916307567717980753407341401135260846404636354057249923353202440536449872662896555248900834623488204891893818030234662770066055060006576834037772094132794446691560945739636940547325914633733832000190364857347562869445414445165110742264551920957799096629621814947553467856694923404087709039907734772218296788279546948395540575092461384459055777109497900967727896992259534519268806330245993856503133307503097514593644754803908861391682012102582423378481287652123132316423672746760640503707089342691818480339923978764575330042016159234296530593207986244869567947863289545768093638588787143362386815785459702603449647509098773957001918769309820713571724506052609743702737988735623949550452723781938940754267985591626413264218361556281371112334982953157665095070532817015531833454177944851945816633651926689975471319939825030820575816266479548748369176372784902878549419384082122358855277960231339541984407001021031204168551096481584172497750754694478968529711424351224112588947450416985731243633618867907011404506107887257060752620845660687504102133854399005626772339951987581605902687848810117860090123938026716633920741730013871841780596513196382477000016967691347625427019337169782363342934173013469796705392542786632418021562253080714733379715770351734003027499797965052181023357668740169951905757830828994747508062639455730710868533362764387057892482369413651452541158508165436357084985325276235167954544075784505385335628467611320686658899984927109117584569810813459112420330427973398829780708218027487072229123846821494642414988957962445845068114930584890396684216503099127621456076935336456146990883085802649361988357020429379986386645683072449149492162342963451544802227693952680106638194688351724680900137231528439213985069952346568919965136034068985977762811311293812444809976236875212969409875064771242513638766045869646597495636348748254123597787617338150521138354006455632526154282156837021374590204372772407918750307010221329465496223491470184699803901939628717529609814768095182019059257203099221059309587127761397288962470293223247932261604315328415294809395128495956800488127017449404953017902031673778157303595224743439192936249453997296261049553059218582555167017327548606633433585670200727230563112224183858368674880350141610620227311438431566269872170665376904512228249128833146264226142548997476755008703195979168744538673400054454779540216255458946671725254955081038176917450317110116314590901740981307829863449526792913295475607464597826441396636492959699097198299555645607238147357412085590815086643333486732595990531052963879858780969911172056759401668436067302870558332910455859338621161243068644558805118013805941616195534201729837824584115581861326983343693998445073431276825306062412158765240337810752744830477315506317689067003995768073110628461056159881108741093156480997102794954211561366469117068824977315796866477110975899151106949110171999316479697419367551869429429337311027898271832095912030772175277494687059626616026821285127327681871261665494451660019175145586886430360981767419488497950405354612402905236633320430286417203782616458245064989910996257168676326131030960583953849788989330059672291060348522140411543881099223393946071493477712899453557449965652298176896575984131024073718478618096174848054895581546431169795495643167797477417009790312975051456341045317570760493924449411150199712062477541167167099411999384651684898267502305995198063372707924154666092029153348398038762760301852983722466947597975977190303202566530267138575035090489511336901588281779722532212671443546678233474314910554019272460430355171976652091507108766858356256926357735569063613748302550615241360391148112095587729966056145642642049914366881413859535878456993277716549643388750187098438566985935881329851037851931544831361078495449539914037932466674512508042917890624957028777825431110344525751739222401869485742519664224441503110729155133412300685843091890604560781496435420380570240238478031586656968109711143174170534998883615525038628443368767815794300694888375530687131577145952396765626917370857617988032646849970389480258331682635999013040256606588396638479312207767826840161215417693047172237092942463684297143672487370456585589198772224853453810357383022284931070521781702794580840400688223267424570840735989399419373243145745520944735902428674266916054070113358553937358065928964829156553683592855906658370071017425741091128177002074734237514396676113713020730998665305210271013166684252188381610459534356754095167748807737859634211987916867642903381275948313426978644625801902364181810088837989793114620660798870901188113480072893587739082699025998290336489569120033536808230540897066598477892598891273735072088253415333197484359666550822182201901412957774538675204964855106581140761132461546310814543617393368465311576317043850940255306636671333246823850665542909392260962633793016284040849861828191862538702001298608734668520648479977979727450445292004307082763181996564657127394988079611777376675854730197139293419775927796795197961755873042265490754482742928435815745985703016366467174326270670612606508126712501715945315722544140705312708839213740691939480199992685198071982352200951454970127893137615095522640926196115246832734612683285084879308234633514540445533553145459299020017273295412432608646926598199690723211462156814058796619281717617336288792099987497410339218949719405278048283641114471838501507743386196796978257334826574219166136339352868235587613044143891265279999428386480344341756278358194204726475626589003570631976533823773515543574407278056455140950452643403350516542557976503009444857130121273011847760279359943403054718782487983247922602209878059656384690093264560707229425866770844339386890500573576173393112841558239963865875513844369040267435211090428102545295815518482480982037095114002977593520294644064133346462407805100078623478547545048492991262315401153464963650509980044074278063607476499624163587651448609152736507247111258505976896644244831849709154203299528555109459102028396380432405845859195134313377105618588122198108401415490745741475089687326146566288827475064830932679364508109508371975132071031470464259178241344125553827256327008430892602137312657676193430509681530694915731881699353655857316235568520270248800025565230352192221058358101721984490941671529290089742265315884114640084227163314997040922888713973902598984462660495683780689564699458300319493727679196970108287316441950716178662988697311475284381391955099285528626754182836784851937258732209687084760347461589582698662611880316828711547123507808026860382663232428491410949155656970856776667839171963512624968554168343279397914232057300101266224618227204243776501545253595510687928539011119237016521928087578278406484245265526781942472961540662433780496822123851285993930173739284212021468590039214583196005509699363568767422638454692521723689197795937845111396723615851912705631645088248977756366212295620230209907672728755446123703560052982404252629716183931491660211726591410081483170617011158687609366687137269829552618630533299633035670662355653167028851336406397061629333007123726820748520120104019402497368081952451916043637806403425877533950605375916624526460620184378788705574541631746461516519606752205164611212414069000068906042091616475115221699419033724519317955811179905450413693237093534732788627735164286205023849427728348071465203664516325932467166587208350070320705079205945264719111721504315253721728835346867519404660448207597408250997532867654374175064343049270729100592408063554279791697586069554738107377676963159064852245140811037617772854879107027409647017473399725913237020122996818923455428124245713770921946186733731210199783346838537379843645921160071422783135370415082959866700422527413948730281532830686683580687767699899896584132602234505215555468797616073852082212217841182505391105870699327517257248293836166920290265905486215189099322921690057030699663449365702622907627588758952511169419701740203139564975505414209732914055596284393146301243452413566771329195662424793242065492517276144806522919377802191094913739185240293960675897733519223071945081136657694136521610969167882079278452704309638762213236194915275603159885578777591712181955555303023976681294832117061449629912746573502356219791736788018394705312854538645922983383597638467585753797687667524873640455772481904458288593585543410257514158135320655024996562830283653453373703931999900609361753755529665280148175495212635119444662230937439695228578171942576690957215664126292389290429474384330434009450279822763795986321703470087922976672834193680286119314810248323943035824141234947099359799178869706426328938853126659718900618422025098760100090215404620628236236706390282876062805321693463044031338911200443250367063124103313815235057634507783423941805533399250440552316011864298790014300526514335649719284567468483197567038339000572995803348097299748975373048985740009540728697744200872841275761606900058987607956717569517089912472014747989458624878049163782189897098657574831008180560725469925315111927433786404204104685334211444144261100949485004720147472846559559289481221252137332472080839253994693665358660576332219240565472630192599156949279794026335120935223112089885521192149071548231315590351946816541713901649821305915639352836454864434312720235856048177958670397898141784717386048578149588794028917086573640785251498414603691551403120468301274673058313661813345507779344533807491919802548541543957713562369497670937278805610672545250875024772826262751409107205232568289310971476720709699833426322113314043726269023582870730967222243060781961015096666944907857216539272607141704376679525696385761283726229449025456177030860185009920818436451431552053636102387164922698640007776640637529415408962484196149328397673521475353664798817509574919388246563832487068013501621546604677029194076713976339645954905213333423355481114694473074761015421186959520733027383567638507865475618184913802550696794357293101664990682634468811892610270797720263768586143388048919324036849101230592978235389409590192013651288314984538644692246420063382002306331953009823970411021939815167801947179868775352458710715489959029931300663225459235347202652286157908857203505978462245579169695901542676847903444019589483047265858671422077370801757803582216836951618314894146740562857800727941086897824491141241814241326622641492728214610484449257352300574950530058868931127858590211812642322289224239551414074763618408501213754437265488722382871249584518569409289275077173613216138101607261773254203890899507354236902946171051943623132343861412597429949419100643401704196580293569415396260196059925197709049314427732164855066667957551205544662898170880169375188790383055649336467044855322807082881356775518838932393620931083989115640820726971128608144632167980406416765257887353859475707606947228933658644566069255413102844612532728030120506467628226084915536733723901712764937677043603206288212425242456173362690580234527759835394739351381091133285495193918760796928091672530405640793473478026911213347537912571864881387433986208638052447207296271239927450213919893982799844638413814198082158672843402598791199791981081960339899075504408041062735516611462994108784035977102712030811997382144300416321906630416074419057180902977332409111484930339967076649255090215375790354055648682886734429997471479604368312227928522253356546395722145482600228880529756345396348806662690955585542931934164776378208605094938001422670263249757570941852169629872661923569156129184785736925906186835314594620359259891506378977642812590400058678949147446870982244267809297306005640689562559026962751929659730360623186910983834166176875443545404156039978202596951347288755350848247136011155231644561745924923449574191722437779744262053392054194232538120735182114125302298136795899863603628672009952940626284530442544712570204141731692160419393109045803515311847893639418897811413970754676672650756057951620549640277173485090768923783280960599214493010219472627775732132559464710870997229355363641040103579189876889059438916214144526857724903457672157447093394233773840627188694865223175743150747655697763728903432863627653873528876952642100679582446232160604925496172326392839479383578863056073145576094310029588911965496351586272196314210780495311270581629748143454580964491111679395074587992050235640337006441473328784092488665674895625531404998915861763651533731724548375877696452905515381699124945417702657593563702125613720850802680381370624056313558636466176364875762842275595409295365747969932084403677199021555185756491930240997378636978317573314475790588441374460487990367595920383771422221004086695929078818680657984430194159147193810937790514532542331831544725557413021943005621200527976500034615465047177078859814954591644692674582104047616973826190802067329534398587972992893577756989201915506438751734594083308099006546774522922284364488003709298766132012879342688891089210831888694746389650520416915417281871922403162707500213476121457120451650933090387373798204717854732320936490675563333983235687657024857456989920071583989060157793943443780172678416141843132260584858837557324040907157785086292128435943082101331982135886396152569867554024153348116321279907275357068792566995772794094464151491565462478889114439969737485835290371322631231859063281028812188431282453829042466421870779215368980277269248902829571111877677411234656044363984501219325238226125304031602366025499127731060874611739735938973858888293208969801590050174704167611172669521345384301205857758141357082809838863785040109472640371696037904235286628706912612267628934862478296399701763760300209239290897052567587188508523084700755728163282504247093973310700063705257364059403581572757422056593329980591911985512348237400987202266184213549873585728369509747566460823844306076999556881964893707443696276529109598150057653011915621207503306180841859347642902338843628979469068169273964636717400908829354778201629552139521646484566579183477366563288901356176353277968666103015835446447016573989900414398315626468778533337472701896534048840195730063044416943728553186831018705221241295745163911147990007661413965259374434292773107479966912026781865721817895711847312732909173362850297325881659988214765610283886525560847664539317784561622106974813744081757895180487550655803444633612215774461505503509809225171268478007360023054000688470058188477073604350574349004494145522661636735912264311348819534725157899304792172907559267957238944878345941386171796712182932774025117920163340580740751389615544904708991252614031720537124533213169872350115126592153969779219189815361451764234902682756939839438248159405723709577513397609047195966503494060808558329542304026551601508667964044019858645084690892350895728913670199421116697735230282622544799567648373576314672109949468889393838199476153875913515297479502540458758978109313582352737811552896875172023650298740430830242643439292993287663176393439838223934346119496105020757267995222265006060923610372204489661876223600370589589509439897266965615901684490818760602448011289751934489230639822287524095254370315648149302932955931422411033602351910006014322775479864513709016657905013333991757298829273489105828876165469783871518423869327938917606157458337378818070745034141199972222191523094452202666172632940591574230176042467216740027495425844306116509828750264314420695921932507594093010761531903120680034268174962031838443457931803582268466674071060266553044247108272263106433875264844944291270822776052203387375964888425242335237326402992278996066006168483997290567885922749593074184212061440334041377668451682401999339059935034911261036143947473533332383734119792911067784383137200189199626466370935576990212431457055259710722307516407389212260883890694734660069394645608786225865045246436176274861196702484352969348028939843707389353869068882894521299502220564592320492360671909288057595410292847263483941338205593824070790947967782757719002805748877162292270644875220549950045538733167606767464318230678271522889636793568094528773873945138026144974975062379524891326566553859264475946307499808986568317940490328250389732033119295031743862269435877842652918630952804540601353762412793739591141854440160252184878183380378611083110521738192037306857072160833147637999419311153379905551630700558078160541279545299313636417838633351195740822334935656481514020675311145747285113367606578446645652581538933775364152599243500532995549064548654448328322442571147590823956747080145305825399494834832782931867511101588618876647944450476288358017162323971134359391993585030497051242422269838274838771447182389649366228800899342954415511683167810809862640173513575638288047495516444017662030463148759888919461022741732177856961235514850140177428430152157692660587217559472837736758597812375474360615091622845669273714797245683112702747073794352489052815983244829859916683160841172508884408721608680966464217247357675435233335386952152602917764936872950595507572707125299192808635995305624330441109562754525096900276626136689164326300766185712177420946871946038926618726070379104590394259275520987142850413146651454750994587708405949857367045799908652725570991220983288554552791628975677745359344892469139706893596273550034191257524314456007884665528526123027078250845175843635825471710479188306611816923639707708040257288478178006291077717282045023820324808809328051870201043406131238083917504792092475542017308343852518039919453849938322068075018504141680935411524072980430676540168559283258438760975705526749000014570011840441451393424291853940233592885597359928914463259541699777539818359672122091593339013932674189532511539309725743295571680696742444812836764352617643171125613776463914280993142084358770260223289510268644871935652709060089194017402926469199252016303741492517359672151237427329023286551550802397379838964464039259262195854474789888839824816105496969867151779385828964044743973200581878493403840040799777517562612574799377216208224373331376815767168521583127808312579569074070660434100863822247511809351046324918368230661109643474993233349426717017024596650377573933800087084626906433149139577409714258903081712385088750102748708637627973248785794891571992239087937107297917175261143174922375502755675870046691601726107171628314040365324761984795047707727400054030215675810767278760714816202419687924928696562058003637840275541381234534905012805677936205015890425840927181443655300944628154332983536534182773690966930822111064250069158357838046043730961872248436949758697136478397870507657703377708674495140105750420013365754544885123396551734079501994736008233283315205744715646458866102359264217324865546830145839734991997870482649123611055011282240682653180006077638748338177738068548829071464599988839620460526920848334355679562149633836775951602690966859027550275982450671748748762485984762942014511429107457323933455474130038434360820159949101885113056557108858712081003711423888658970651291937973314419386013954406223220345902834373609218708413788427086838912045633745545601395932506602184925123215320510424716404657917092967355618057510061946665529511117043379243343808548481289602661443859441317443702651039859897469393206781065995250706313643060673320206339067600896144222152731046524024743223970030797443770554155907176742077647582067639912243090415853137043966771412772157880069737231816868240977963511875103666575834083624589605953760657066910969336161800850683231664752097058871153389794369307266287952577450405875368564078465783650272460573388559311192587646864868265440656068709935786212547774714592834299651032350652186814901939733634176708090604944914841042161439944548183196289220146960502008398524215050083719958990791659823936315277471529225332092511001940762145155797992403483210601285093072118498332974212510697640319945644895876280977294023733136006583180766719706161443304608713186994299847970313225172268189058205338309336786275584173422069056016628792058767162788773459762280826199812116772049918121220735365039868130828086177243217789423338415637162117779520361170917745194552429523479929183200393629634832416007039277177495875313635519970412852459524195774835602473172308189890766057520654726466165701137252139015208158158465333352520589454431296315272642124504550867207086240893235638930130406423035014348729779508241562711997314680070280615609031159960662366813365561803561354574019045276018133939062282667444254209982833396593914032067085657505708475227019978479072072289978073782120779260281997472380754886319723163661794934179413313050811157851428976790233279711072312658268724599430999129438701369962083662441173419828135640525644531914943047205077102931077291236455816292013211640001460842773300156896868945515445660155998245471710120097470004099971859071721619453396100327703577352110780461519605690779693986442143008167571289942313472078561886413675651470025015738688257361587610054621414468520537593968351280965386420316084945903131686978865751834842115417118660305121900497032860072390618142772556591952026943247503492944684487278149683969502237734965495347402044007451441608207776735626047595772264597045697589772130070127507232515979500809089114853451818941360694026784176041815134091315559729132729569780061342653151173364327347757583462174947869660336477559446023865390138103912879098618635654118053730608479334483097611233719150939253322179537403238622318786209011398830934696220171443511363229986082491694129134531027612732383803354696166334878847694348907105019685262874898915847657279811315907517205872485547276574391750015161796136527440631800143131531528870517983571636260039796009630988457737468388031963042864037747602133554258757428798992959199826540169660608096596814909567806777056997069660999355752643900147057345523932911248161604612358396977031411060044182084717113790464705201405131881643074260060941356370709582688559885732736145720631464084832059770361546637602452490399025845401988041719508449307531589585140381125808299037121118490048091085750227309015300492273058336877297009100906638507703069341264839630445807455449609796969781351304356657212635473840000532988178427743399387934188885728587122261960828565486880186699861063336612629337917958090376571885812163283528581697131459265003794671885738566233344981240127071315349597951251651430651707390512332324408697701108897570788683113804453803567072479898743150908769489566112236415624788036206817454532442504304549261293634359095386964149912141898970126061974915927501573632299243903104150486303111292163101515661567692407228543550513975070581074632916932165405080519441391666884328582734481679991766929646031450239462288262460863927781200025654127565061756203939153052124591448740919346836811744392673725677203449237603748263351085238397185094443107430186824433561592208337539886936660623435815550520055214092002129189047656023862053519714711234259251741091734623487886859335550716762641116767202657288497059213367147364704793476819717660190380305783996463799113915124694611873141736109590582995654045959258052941102750309316538349937782057642284121566888748919844869161023866817600799035041150352675383056122713259280001299856630821554904882289096214276780362831372642817255467399831954309053843875217294057507740702481294946650314073320395397455711047729472143462628776267262432806155406718415670161097358431936112865207340906639508831554145359723046262938618799711610492219128434635621816925771265657135344810355170030629677493944892390860050907090696971727725734974102112006105555888753934987326853438421254445999517568909872388675560226181074766992147350477043548467154995009820126253153589859603001559651211215938929849486851389882318167601165962015971186912267647652691040570065509530478635526207903557143939220073607615093192975260689743198513574576417605322211317965626963559598699751908756632311259123097687933750296396743790144897604642218588831255115518687979105489108611975604925801743596333421072289731520947261674898766453823598555999554950647481985368134208782153868213911024758208780603039610846903433377745374354662654587117453578345128453301953382578708465337744993476934301451203429955710220034965745556566732031684414083104053299023771746299206090499594197046758149509215912943654810334127700843616783745313096266283972778688036994853239360561050098075721037840077317408445086503072052356618299171600442504568584112462674936647500210972913264204379584839426159818977229016815555818185792819196421472675922352401728627660306181241968992682608000337995594427691937022987016364403230937130889688157967960999829822354047306989777818889805270645651764189736183331786324193434362264150608905472316131882395271773173765540721781780823098785857355203277211860307866773364481623136675475538432362319208653245497453994586408282634357764428246461548706406880865219403705136035213850057913796154874105350099667133646520815016840668599934645429847811391926684564125172815443856871578206173491693610915821924381589578206549311194184846212764635414522969546569034477532809184272078895799239774705548362726011265848995036242037169939623784613927661624982185906030054171763111146310029896777520748968462385464479253472365076515989907794744554092072188491109245139650646642859888357151674965748221919098526557368339339537722162062922084061387046478562023170259402163277885236003913267015773664080956596593967207586318087227964555610586955294564097349857648494022648689412649962488154017686977203462069600761747025593990669208526138984489118536348207252303663580206637777775191309191217696154193684281594693883153013508542504289221264956917984582540127733123976262583294915032979796930042654992509650327038685755951664359538038708678749123967002655597394715247644317745276652545858234412079346636539514270905494135813495281217021623849840473051091078476057563801997458518196253002807083214053699724687741442133623624278365010956147944345231743778729684834530248366174192112789216883026055771340119624276199910259376499332623886532134781047890725510797373447223449158225071657251800028863188874003681859613063827011474555727655925810653743542478491015706901439112452129866384072332719354424657785957426508584739723527736953681097306519416099025326306009719951626271305479387610538147106655180230650178868094813832141292354240564490656630289899215453843063507295353406295018488180287658148134029749512996103689202596585199135231698430368949200975472262682403384998109120422807345865005110401850369153189234939824070764065493892918282762844024531620924076280088797469042859442849038267124824217865356104584563298703844896662144917701928936514230641926455420291107381230619566493793040020859809130016014369368096534734884655613603326089388379411382178172116131914692234216619168885370920799456736873060410066018093254363687760560641348307281915799667713070742006153827376477065249349745110054383594066604464556934912401250115585033304958732913114896359287500088543841323642900711634258424712261796723324420479011665481105013345735194020056371384414610837885328502762250199306664482152451229915623188441082409175140604309270891298629065810119559313287371190907982716553911448807911142525536354058937694259096865764688513569962683027552685261764245246856031417679377235044453133150892852121465899611219907106889249799093435492729556061430326037440170497073253664765486075919520890802196410768460742640162832615719907580334876403052199143522969118756834639460569962598077165616342988236528606472807418523687843522996959803815943217482718337574817267555377420066940371011454281552407560563832961547912402992048274338780391461375134297407515701197639987430047236566715185004486143132100739189706583267789034182147916773024741308302892693824350626606748329674789599511940402742681411552549727671831910541844949883958457118808729391945065405980160478816048476884479777455504950202688264836762726525422469130102208265215371109213045743915198845442712195509698368674855299840220814104049062006249257616791797851228545435985258876695779254152834938879668544177561381108802755467639527087909012771335031840005352845828463355621418391359981693108854455049816689898251378418343509852966100549858869564139549815350381863291939004945821540272933949644615720502394026910290285548762872693445366888022201351990856099676772946316041730282512206266004693635555625031471567305492118411502751269791271700868801735757660041257556227595375394537555649368858134130438872278921975741758182371055827455973167420143886670602619381613223315707929759879391114141176257545632954789441352372193746194570720526044697420484081341433356153898051742949087051239474176376865925356789547005683119034412950900021231291917645686318337017856459813205341695446922802069546785360521666079646183881574674072267619218311493542807431359920901850347192650048142879171879897564523436931902337967352552707103063602073237266830098872206133084347041865821783241586371302103681135938291324510151177198813037628943731256193439622692498401858090327088378352558096208612205817569960048456876473952852990410615828253691288514012309301246305870822989203623491863449897955928675354021967332529021642476148457874300708211445662375976745614522220738473494315705889697553342284150089795299524313952688697148366621428823336128641593355153331130240801323663372547045451199425043315090942003591233153173686576731110274168969683669052107507747593172021907648556221695857045670917824834168750570809715699887100136480168935855948432809951473368469854746682892363994164673373693003236535269219108654356736834313000735547946149563145765978087342365064107718532680597536831234466755321845180997283571603538900852959503086785420965551687546544631089699420605049666100359985161904539546784047681333027051782522839375942995437124317688093711698450539449330968430296606185969477570270562793527422394788062480648889994937913402635714806163834862604454920878797652890343518543878343146589624861438844367081076411247886209499176097930495283309277957138340000121019645480962438292498607358305232714130415063873670428886110676725044971601006461541698059562620744142533670401977804477528255196286168990061315470302758771978497199694592583876719425180398215320620239360326555392411689345354774395759953624672702880759434631002298086317933155797464093856192960990363372503037101528812946181385076583801314042917534583001484658441050012558624803585309371805385350200450291406815200538190659394834996633650294214595801331390652167634902273953076923984784746573704352956186607317159526207858297396951027922319774374223893901574974564253094261390066161260305565196227321880608995377126528095167974549305352684486930694072511731897221206352171830488718860160293384542153699749570796174432204679728443119904500777000195817113280368035121515174716439169365308971085794845889012538617370085528789886662241170815867895627080007800561484976025329830427340161231988173998558998716394630646387296038412052404996842918979678950367114978830685208712295145404230857366761630335682865719749060238780688108417651290344607176094881417707679445818649522403385525032408461345811384093061779068692500918651584400495836124363438391984923596312389013391022541512091642457426716810727609304201859707145841163596217860722239467189198724867341091998677897727382277073003917273570436158546485336283072186346256887608960609947651317438665261580063907423630745675629408329263417588690901585900955270180673156147882100844834971007842555442407047703594461570441650063021648703395046864909800411611576976745417849378690312315247338149094096885685888871039350023515363347681911636448642463877676583034320692243165865945522278722579756193809421936134958581303093182552256419907397795625525859146982456404981517860244665052326268903404422158141514937426758349501706136604448647234690650063793159483122313499598357726004163916564579398224484244283737976107840553452316677056607844455589058845803583337617407711429498288417304755897239893085762979406641578137511885728558767551148433144738285071288510212359257132662948045258632751454336100477987302437920354299378076498098886939478577951013102593770146606060530766754213186741964474961457636940412781087112628792648102323561418365334689629329769360019858573877511718811701404428459368425128739787716673631348831564865370248638308354589204152114812720946949653912194650738003315885726013823117816041698933335614511675429649477465587869923377782011798190404352180645792217196217334866589459921016346291045292224411845734594652455292400221391282044887100390471442180151601007132999951687693417632035274752418063505775071607038737839383799962582138275155404964954229637110586071451020578613029802963430785890052748161702642860280203727393960937998637680001996726417524766500663736411622676071645190090728785526353825914161112117922353890061949743826380839630414204115731984625865278042952908465147548127803112901308972519798471094785298223791247112901426685177725698823234925383170276338588457055031070418745659073649655917273258682235643937731506821560022534765716917462613032973157469177616834400542728942993417641403804361496836534043700470804953091113449491300092122648821215883934589004526503952646571663427366376670833579506635410997913947507023454296335527143735913836711909176517557457890549637348327173929664114006730371716727758543163176750743169008610016546195392202642574732647247536727238462179671373368864420976065681125482310813506500224443919302206394024009629466460820366114601042439750875504568432480497812404568102209579628147080533889222195900278732303915531439240765573749089273008513769205662029266307015043119708597611436759623526260864630872314542285693046047211842720632695718879376300197924142044040499233870781175961437911023184019423447477466070905058754824570309375491521644188948408534251096112717890172841655472922081023912104638557707413624895218279330204076736076598073499176522162956465078522124299158180000661883712081415293079148968119384868228244738281519122621525223456496025151761971359535672557366404483968131186713793743157639626438349938901930499739161223976473547094805947987602310019091773408771331860264150795945630313256344329014676799479972969959243195789026736763611439303731148453583526740752901319721610668780055455918937692917526054232620543459306463740294367152699695255798563076594238545584662503728845221043235422879378492561275669782223315995994318574365827434393462666176110091087195914882919557096420613907781361930060949406109780575312709782789540174053274914146805121765244046587662262431416116099458351315072031521114054260417999385864465698467144755306699289845776397918046778162268331273636041868419895580586698837903568988899923079360940507920909901627884826769679911263628803274189152639125258098078247552122134952250314398504314036929681262219391628515335457826649071680803698291815587176769241416203171151129034607958463845175686425538289975677430062842766764040029150349949161972712010173024803952943666784912014882143797381181193692364220793547071841889020723092609026578130197426807251384923990875521408397945167345586741060839910019603072065091122120265649361125227571685753498606866985987242531440763741625258726787068641428147948090551363075525985644963442354783853274761204843487252472186609178545607537775561408373638812927575296909082184117134414827658292954330072170921008037934699360288736197276767213400852166660498989672424481889516129271868830085651047042323931888496379589257717735395264147360884814760391470829799155185500843241314369033950421497243032304265203377664752878562112889794736542650213154240616354751040026101659239253646204390241837289128298732902006345207747189352447750568177380374877718561037626686635430550344606521387432394650843229912132766958585081173615639427802013692347553576155768264914133793177583973125131065292105031973554886885544291981600461630751807174274458286289298878452157958643025266815278496721634689274950262200192497229882077638255437687163992762164431569155442407098451905955411495634305736627864345612739190736170807189609212006563818675590480073420377962071948642936602782183804909244590466325347426577080190029826416472958977017032456501093802587958215665662244829232875427408528299679085597134702112904783437103793732482735589635243073693548868953753226619214634819937487096065301697721486801543759787365598931184552961926059423281833517791055761456166135374382769683767331223583727259714268038345947488889575973538464872848919756960300785823755891020141001834792295451776163717659876458301937189116211082908745988321025621185405097972269778456148475693693535227972664891705688995873345727162805106436965016727475507811114262691459583074245794147183991568882167578109824135731204035301001819905183533506051992402730731696319755591115699965138037271485956904695048320517961794050546943808333044451202618864374524508970412444340949874546051799110806631972557027613298487298811673602913120092451536347696034158879733266138444054260687652467556850552911010065675188731909801934809899924792543536926442588927213290921911163969884482279943102741299802185381074559868614395080677547891957930585416325400672742660886101899823817516918662448925505760852496629377099004119668348339286041179552707087916980454203505638471213602979935766969454649087933804106802913378137326562690838959161834669400804689065370594558573818801371147401527217629368866159124826923481547431899420299346771213788564858928123000106173189604188372062773765001880084171717150671725140925222831265303155823996772484805572523539268061140739723892615639315376550764988196708849539550185654147348565174002600919812733104123162208004443274301598832447872065071055392659971120908585336826257488962281981252191581591953797534464683760796526236716200461877627978617809860392057677205509139923144570263848119677026666881277054078135821152736699743866760917110352395054679191744991631386871638587022866960086953684928247858092797103062741388738819399496686814444374160038221607695408988593134785827355494128393369009308510695075778185206015236834508173309663086076391441158545666994682339139268863876294695192534279901776579246071126720735484005904777209760853213353327244530165528137185819756331255640136063744027568337365422615421358462187077663301619848057697617114768940143472585027453648067910780902451596830731532630452560699678986372212902806785629367116314032459370654136583126567573207637142856249559755310353141761213955204075681977705582972301612135283458684052085162732289167481886699057824748665028493759679619370408441352239562082330824268959668241464291115091142893270219903906148529161575465764042398166031336093340624246038815825699621966262978916706319365687341332567726100363892718728366744497935377921741364574540595736633390075722048697312768377890212473488330531767919513583079366321169849518676114260003629784479818554804963808153003591771869097141739219219701049489718539498290148853986489099939098645257536691964600107757530539442345572826993238427776301631975191358477438993615737821683662789032472070471323665150397830841605694336473796604260579062191226420148097764966430428288176523007004950121028372462418630768633993449410234486641908088223820193743281715944691573731425530862281034185888004986650775704850608998480955646035567081695778282712430376382555241557368038933964669653706535339542343587145434253860248013643470850401091645924372847028670837766772949312915789785428739931185028569163353801267853919210157099722615349649226301944434801898688122724997925882796220598301845772044043817361771524105181818205254807911550618133430666800553339175515202771043132387437321531204863989768638511882201207711754001857255213847326269984363462187733872926845013163977552025946179975316005638124147971628926756516016928184449201099828017534372867180874726235923309666882603902936351436601003277410510228709925101308643257255956381613019215396920107192693301647466731330669146267408148783093586952324871503639390472666566284847632920391265616520820142425254978119819212200265776985529244576129686143086440201206082984119734677817544507743007946125521342295546137811762714190800597623929647352159249972955818725827612668446464642499207529508870423342656467922535411039453322071663215050229772016573628463435525085284715488976656049809729861121912833671945013089266530036343757669137881238808684375157457272383175072715348552457718822539156273206010009467678155335821111542745190553389190855676733673176723966842362941220241227553141248415290094521751276372226706184945582160415434206943218627247527542300782014578999744865785375477460705074426902306906563839964516296625058034302621052488973479251463640886362925335638037442960745180756632057506572685861672691129427861357232435466874910270195729932087465253757125801462615245791828789723285636145630511561002807039196202942037679885732735163051486583989095584443821486629656186320280815606670151790279587413961688096706504278470048186357946802442145807266610398069961052117265049400966147899961682077210149941315401911127020462771986252303357638956775398931834677052801011152773000066762262455316726049596754858549067388116898414162918861964206621773860732296229569312907115844323115514284294997998104969558649046721390988490396587783236413028950317825502855778203358250708460658126552089982372766587999975414773333170849758063410010962482931455008244975281810024683329538910435664516869429453160456205369274161635700950087934277962087114132772299860935086757228903332741391888911138446825456727789466867684205149984478300235301948439436470906733029911300197240161889941287308822141872072489888229755471525396470150346485974244032798713849510590849488577745311194650768478310440448003772229048821344938408893777015917175220176998838871260638676685299366891110295473594243801100237139675717216126635542815538906568746616695443708134428661310936786827878649192111268391459576817359118463816809339427255688445598186117913846590240742837051342599814214197836748618362613051050722561821124445703724182838807212328161921375875217750308570595660047763467908259058341270646413920564810782203053667408662514093760275348254785256852963561278660842861688232232512058072837778250490766610204794187464887616054717919552600343464049087533614634293825303354732820244575243534112125944502241494133676726968643405965385705507808979948241557368495828959188774170796728626211100374286622575065264246280268601112089460463470568774295566605264604094349743592969735367287139375190390823240156828251836998840984878826772424284327035600773491446670658310050345410487931335425505863155157573617352632169389271703189181195416274452059784915635014232360979897745208813128010772781461985068701240436458209519396011690044225541417001903211662236120041689637450912874489831058596963272792513344500107179344303573240132535375859002281279937166110932920320577550590788451641201172284781772351268345431864744828652961118261151728497566379822371609938145837102707484854296797538373994652592392975090159969259624992679283538267499924452070884065607366153283431692892974382646216751256271680158045655338595660862255874987826618166558835458401693210574401571046242609388780195196403103389389232111069866943568896982005970354509628709886740917101595747323268915391236879379136647794574155793638270165887804782763927961189167642466964055345606225171420366976668527897369179784618524361523092194567743811952682162209529124505573866426270057602576029670300926153083359073404610290933240905777034065141774852275338877031504908700677136083804583053932842478374450918395876535321536077665983922100065847649750197756240481209866638030436059674315203721107292881997453424205020470205919885389971860567083166367640030365696268810152882755065164292744533936515515338649582628781961965782490813730353932867891701572482830341187707202691153298542751083965966453050382737163624488448827466566408607382037896419224399366341572162954190374250389137434343782915306081916711327380956187268840317367774203920010344822391037674789057974237242422072024865453435225318160265180487958587028893985014414521599314290681765619073313330747633728362039518765955603435077460710973264434131144123845614787968070286673233200084664350258397057566287349774344843210758807356816096706866755562066533010061893421096977728489966169924191124860760913662354326908375856829423989246517829200450334689246529215040749787025193307598048219638980556574394529792599043320856582580510271375418245385382465476214908100752889929996689083179237059544523427471976670420118072529298522274368960719856608861013009423359624468976128311404393186641778914542112725809762272187876052389335647223957236239639309224661664935146925495580941507191652339060839884410942212414125172122060165517419544221756807680423904830964891384977031262825686698349663027176001382328958108872048554806315499755829000889428516610838731373640364713617942047016920318725025656232479621063389060127628150671564954476219912845736713754807296202364652444305018223047010509173414773396087418952424094454520830473304021320301165378079879143708909974057162934964505409845469843939423675814655452501989697626315605460458214965937010616173428411743484631665397044028479089073982596289511746504084246499971630580195969244395171341294312069785443144654290109060279366103970218688865994138347755658431898359014432912093809109444068363544156441226944327648007860295468569719578174168555713695844749388189061659195019854984699173328176614696179532460984132939615311390578260704141263203024393836449691650367125988803006549417996731505538896012780015910384325266552914115655952195064316312053982307184951448341272993908189468419081509400286530824477214657226932841712367754991030444918819438186165845760884192954015317009811080422386931767034009823755002305749417823368654322570649855635326143281985316699519691797267991906070529491501206876319699574138354925619369530450149132283351543868443419246779267060599329218237755779955086995307186218606628524978656367041876568551632054468857299505897745979404563750448953343905336185936791450321694001867109216467164127022250289868673723363737658962098775316805905648487262729353065148722606619917007013487897598738818862146538446187182502990650086721002927611971085565835130716470375108996921499940034292152944927670192093578673308183178262536008515898094078384016031249982780206978989352016252190016791840012748859923027306759225651789371566407077927851712486575586391667486935543434963776595789118976506388235935980459840471020745700162150221590606672800526651766864407399474326865819161444785713354287945257594681913817125804149324071184833157449946458782133725267501360201449859530493800883083778816038888996868651471670431808637690994072473760903140941782367428223144140066923579196782737162100550775378557888499289854243904227155532829431892095974710711313188638551386633988940942770817351521013342115208676031149602667063541121156095951628341893032402929978149092229831943632461809791251092887263670192443666309285487790886728425649270288714926804768225242957864614258673484443072921062132845590575460463206632777032416494789045492948449381420523134991697851616147298080201227664786864716984775221874903219623902509462741948776279497117353838105538718342880012327664547904771119584536701467891767240505628440025213639688265875257658462517569396455239736365526126672323964274525986848274816187621237635634254564282117391738525974326139448941776110781917049387079584738371583381383257924152914879738674255804330510408031801489189645427544974746874508760160248259501593962228755818727112343640979079571894801500768866608526806227442803378955938517195285210213540447652045716047052574534034301027539114253292579355112421639869724806360682983751454905324764244325164355914075064540192462531680246606000338883335427434117654252094003125166741195497177136260957417909302620984468310188649226408915751158031795953076342339874176367434280348156264427123568551504667701391746265573707209923901972089842854143240046869426152320043536491169626280812856384909236159760415934968464275815567112575598067987145777254300623631043724299856090151331830304127665615789506963787984163836332225124535520759864493015024532345422397521419336658293060492486340135576942989822015788867221270659332801906893753990499602201295527886705173102112573640480617980809812375605111492694532651239109996579478364250460648651522535977329015540254801312923770089187836867565188300103929379557285746648394210720206542281934539522756169604161363756264745872104340107831845047376166942334775159076942223375819867273991464533072551137308350609175363833938009983176284486958492877026798468208738218752576877431682582586982442595111306958940093196737455610827809898193039136329648968266143989459881414541792472946036212663302486817711763812923918112444634955241258620867451349609353684595895242466481090791493857758940764140291869446787760790331351485818413808124443894046804736740370866162411676636454835759958659626085496383792243013325467184648850768073848245290136791256582696062989170045353440670257389385512552209459111379100979329108347468651600672098640222930413240338890132992229403123295762364145825589823680020235046499611773805075428388363425257524436865243946556096486448195184036259045744911129259983108236117812234931014477341171027173470633874815659656320113461141198822015334664455144580942592997648877053175313498380419201168194007438591674102400367324931880343825045104686768797364248194009963258579325662520030923317699623139652158669607128419745542515959786258143245093095323838577995480781917240982646892783041030885291841386706591082021846239317625107440869195012587842631712422569553001342763274130795630130265393567146291696264171939734629251618945169292460135344515500594477325568582897901951632397623243007994860602853037921179203137346467028732150436349595686778039643101623455593143837887235785390886819916657734284482681087012721423312240026275198162792525712978156971095924734702242291289225185857600090501924106211525840757963619412050543604144896245174040887269322899952307558993033661757554142100781523364645470512362203735518291177505201471210742427099713220478019924144253088298474035132804022948311203816813979255584838443726115054536579354294635294209206349524792708592354926150472541170457603585601511116926478015073610804753636042483992064270011866200659610807666487584254265968217383379153791033790403572156235869399182003229596645739542276662268934242833494189433864170790130625950867381009028614517939627776486483294611996325935054942721470948389624495269522986599248862197516780352636457029541068371318838455607475832288247131516834425979125307997729883290614222909541692986954463491526227241180498698979819532536834976369412787476773818167665873652430714650537912952808261212292869230538790483146567988915339339209171194884690472929488308214348575633554599177744593395737722635462533716513395063299021274121037136322515199947735412540070470987959129340435891169007874158156729108749902836544252210896244930304481210897716948124852072959557949230852933039412178072038601701330291527798941459732777940609411941236829425960613929936849742263212171103237780943667296193553175709696105979202565761788550450899882112298972326887778350115539878265549335432028363321860356104393132604361884110485344487474153554287094760503112356350927466402579055926764669995664249679919769464036047710521974573523160307451520184055491797545885784269677708806039898284707340287601482067555900182980441739567473186880594193584567842635325726221007295221079789878889967857107923730486737743810241960966632936562848023617346262239155714402090498902611246887181277748461528795450080633775010620122326311599823198386697919345055386728138824784600696645267227590737806513353767166035738721397826898205266525827661781315094160643750953357088780978876682737276552804156190801464723646532816127204095657266381478135648433045008329349226189979906195624322504694247669532091919622050116640336697085589657818096098344254290614667752901752488319241304204947662848123859543362447383528724798634887767555833178053220252272913040357411167582517495426310423624638320238622696284249789500468545270258303071864732143353013083466851799585368474973124854256485670117483973547403408897514592063672008283557103900300167710877150495016554237929909171904615382997998790103075982515476986116385265539094908830500032566493695998837045042341603738885346454981869208577651862119780644246057261809964709715303920971087418568742791926044984085709693378355717057194719909504678846920423892413532158749328744008507638666833831037269208082837080932119844041326196593802184233981555042279414181347449399998738917587189683475188650381571002192039542782251271018124454115554396841674300265365831005706393027141151600416541340168103563539948168200098106509716131145356697342190300895151662394844081649722606898349966319086908740422845190028403234611624956378217937695041788388232166912130540072089233126346477355343090212565095566544055407689950340445589205935345121966869765587496209349404704150021723826748870488880829448631522785531501690068018264680343691412298423163782210694501944145352631204894305262746759055100779326755318028814754568201775894890831138624161941120162991685653196787094105775997645983655932333759687964836495567003916281465407471112850814277270017037490497696398704008479373857699455488668991552999950568606955262451534886139622096935606765066636864708279145235567527065511741120361490958921182798987417886618015540608307975855075220427465054756287249817975647044651573617352558799461434050188806575829820957421373905991760507499259978574504968220582636821979027817890814820351662319517582645443428174090853833134331018950760565790347624387060967258266233685348154930489162128247177057821332544563129004631217783029612683810513552498652674822002771427588699110127629986354892290375703682544124840952315966944715145930332146465281078503230698854610160647578319876827740303703952973227065827055697150030826628321575146005518363054597040100831898007141611929664636537010383169165237301023297754094305636956668851976181610806973327696546190776804694765331065030975245959007349165056264734334667598966211486320601674636047025257154606641299762690734068987430806150247317327589503077514474482478313675005715743525777411862473733110089919737090328123100733296677657443882227438727769920770596692661894152229675848344948816293809887358918296154323484461919760143506856851371677581526317603114130166704026404141431679427389018932316743742566675210832359665086193975538260625595657552932694614515273239309791323730651311920621594634801375844456105617821828241295982754275006752487022628231414542861539540879570071141013262663307180793611513047606801569313598687819941586800038579844607660319576348490307832495967801765182515828337777811765058810178542510506017765011313837720566981532251581068059625970432862542158826940695714839283801869693984127674932185888049559563712288827436116155997544963201115852028858341267306532987323736683289180439280136092017968874308977920552783410899583332227196217055025858538159686720951741679687943672503225864060390266102831077728799873581065765557176274774791644091213987204242656081097660382166282208364148904961267289182049018721050270027600541066485025788640258591128198043458799701009605860709084350091167245052558858007511524904526403158880661395942764184500687487024980626912918834963881958474237001778153045460484629128336387312963208332934253976087410834093823393471380856871566234989884870070145707107026638444793508359655290186372532062283834587066084774630369674863704307324061931567791245939682541890472184914282038885317353241005660556819228096113205672815748231722400227495323833394930201116309090336576097374871030692551295800398020369307302449419209539325024126688278065801214681292176291590390268513205456137943242607828827412452421314707542844201997265492646306027862085142684676509411623709399648763766291314078516546449651788036375074845941392494400743727871422054542077022790820807303962903406906218587457416316299128234998270982947080345479967335262931691995482554480295531219633112777082158495629218806752713667822727665917094629932881063700178004580952205895011252630615801850674281923439894880662632142175264854304477485174187340782118461573007549310208775126415338268726172025883317952402989971261147291201806597288260178671137695976523379120447156300815357098164921330218083052428105587359998825078943694299631026727189515795582344977305645721987219583125624601629075601537865472370448228032667433108966733333470869828823181680247890216336567647400875186921833527917507000160237545047860308192439881731408557086280698114624493676675547536364495601132302254482017762337736162922653009549383076082672882738938803084145584912316110096191238854381567160056422839073804060043710386479207171855445322054486258970173470749197777990197405237451148614484431251864863084010021806779897599248604433079873495713301320973569191200594247969209234186217341102037559808277471709863422286852532234708468521194786495080362680630409825133675353252912462931462404020045611513339518245315726479871901939999954463895426729743291351285852586563384578032862802627988949842660509376339259958453598271597649964457487777946178986357713714825951734025628305953923363157002277824066007597561308910404343568484153087322558232670841689201453612749200533389368124726858611467564687054965632533834243809901801069577840430710138158540562599258316446240050916197950754828365782636943799589989798106649608482705391294942934530406121541412644716548792727919617762853534758181225947487674809128757662065219977252905148130791829611096201504216279354827945688548834051847146417975803781360476243665960921733186729774086567326378842868219222426258660636974435947857446762106629398855097482526115450020256199108721352609459791182588000303455342769071111472017435962622942362578547825957019132080703485410802958963530467502728392284342154608215068949391018969123991626668184541493474904395286556551636672098589520972495157619758753246030329130404991406059247197443643256526000489766131091707279118396545146970725687340530571863656231696893689341903226725659787412532168715356086117506894895137088035365963894536482689852114778384396846322895038984395904943169275938222365424056585186854698381416044405471718978438971780411562764999289442282196889255760269995477890128352849469085875295907114913260103934147763214350738070270126859679587023627907459505816813790740377872124751014314979103639310958852338327195804882683945285848570930542920209541491699199326311666803369490107467243910189556745811179259494624345561538552558390554722391259781385452848069586303339198819140521165703834272249245154236094870804445556217508792645175745813095135206485608274177858098906357129223797712586830431686167580409438828986212748027758874809762457336188398236027509108591018529575103245906383525813527691786620754026698402199007596385668294018641838129572079514833301995627224404953870261979953319417345697438639582248840890131228841741579051798249882078366370432916855029140383139641118259767099726616716324848690898600807959065195287867433447487840853315599247559704368478653945955761981545117604344257407401183699643318276808527919363570456105573753879102562181431553343586902172925359008071399246718363135180107906652862233973190504110840282994567623114006949542634149579580406346744288426523750110874499357202967533787459217385286071852004266995365344040204377405684307353250144690360501780976811399842737937878517744809323299536756997671209199785137180874240100706925033323043089009242450712346055145575400963023620706147107613370103630136374650199229309180579646268087318648341956135252948089839759002192797475199670559566248879393705778316314433860956834500169076871007610937189568030427654417372859875306854261524997514369337776140245751225721496317250252986357033968972402751830533549704146349830587297729413093284460473825404719480113533934029028005366898027854619922354607732911469104390073389816715238499968781779294183886159145689931473345526724697369620371928971668154033779686895346536291872911462513945399502654035657306614667599571439096734973023308132950819548751515134148179002130052028394877206548830596800830255855470493307111123036188973587145591548533607367774147968337029712384918300967820339878939310295886949194995928604680000615606787434460066469697326486233251282992724131018535059508905625549551079968495631481711135968746263033187995462498210292835988214751081399670758149359095755689367189098351895551162823647010349863337780932595618739509020813751098213459363207415818827426190178831237232430388116414054018439653860218357964908590708173928544062335781185995234858486664746491727392828391995271634779845424652957810442240379666734987021496659865615141916784671722944720910930762859266297388024018897429160593957014639122730298466863414276981996393127298926307031620805694792167196240569513390670346301903330360412225541272543489312416332432552360835240932102354357298182251340371285797977817370394459689153787150024858020199756229161961012423736723802369380632836082986177278031762502155832230091873914854599475597412629053195867350329142132939158874900839326301511528612706419934127407560203037554408570915739674789976401640802565858034532926516131460497887779857435095175239202666151507517439751895552252749261732073452150529288809322516523222647335555574411010347490341832534565309445869773157629304527439791665265018237803472362231790342564849522643341585509744550704474838387335581643308096531045881545458654808145010229131544494684878979130948671036411920806589324195108432172466879726356058396834321462333709720812327621159247444003831118000733345109439806935949441688837046815997698932881737985463137152379589613783352416133512766746376550939773533399768065985365927885540966143301851851583992159057371331300404280166948433482373572759168222034456852122448162133844935619171689675013323929096281184225593785644719559007065519770110454228504255139137283453314210392534545133285848057634627063196017611199611952786510551035692292601300046265708231524651501076369203813740901276801851707953073361760792205404232098953605040163298074075100996332841114591972273113817023985287268091997344486391712242221611495547118499004324161697606450871194078769296362215613851406192852697810380355300568067568126124728169162642563095976562433028944423645814453244216774933238483045278990027268216696107220208820098410231254423475805851491637237615235323930129076746462431709299808753006906969828688529662379711947254864917189750733133748755407753054526795754231114157540138805005104655003505339096975334164518069275784795176874008927532685817336776103177191289346144301635316621491844788935507173404514396751572895076070401479990182718819395571353233687653702390815242258805248004184315313760476316741411459833539748838963916996281929126423937106901960308575372216976446115066512005414752408911517464934543841916784334687770720635246690401961943942552114468908004269232976273872225582781984846039973476712207450056108766154830497985229515790503472217628397450756478755633741493539334218120616002455394340942983628720751136866720139686764711729044456459643662765058881092488489634211887581117817998506842643794280620108056292782351527912728933121451320675392179823965466931413111559729234380056694815507463840518770410378257008222377147385623399776685603454443296450385284195285146148647428787088171755186812155523776265074052715174747712012633615368957862009382953504828266350205199449819531492148878018141250645918056669679691827150054830521271799581437603594382758861591964253411263869274976231501621942082662495749788245338031809597173828772085922930595728335585771649831024966932325928644965025611215135429804956582834758539812366309325098319069608640260084982699088548718055458465876244370987834585982820558129924119076751535315802094141982504464713275294896369341076152669056265755238673661520226627793191661019553931595828015664879228045083830466650482478098508206978665537039032952315765308651431730660624123028219059698379154928437042332625336571381894193128402395398437270249369438037974773556860637983592154237660474930252607747793534601978004815723748719440528219456750020094196467825820932142238864274422139030144900964881920193937820229766411757882510925772530351320319946338621579731479742925056607743062852630244962273124425528730631584138809752899040454220701213428358911643625063137915658521176231292716134903071185840735832740301877346586195315798824890977750016646435155904298834463617082483433902818277662543143458678850416056114233527776177404491128983504945955117672817815590816902658102471865150756853502852887033620471008112314684944955173709573417104554663318271192314800827582654435063487346043589869266082396443578230104139916768030146424680757223228352526886543124316533890140622446458649808165080459624123257105810512240620591494572588607930781408312276719545478145814554125127964508121640122576897826119548621481678382483276326141424805061855235467073720935056946000048917173731918824615536478080151903912860677748259422468801784140841966287707579940534824232945907847481886893165800990750774571147734132190290013071310952993693588965606122290094673473346325060645311105136140640195090588649692874641161763550921623312770392691348299561112134039435700969649130184116862908432909680523940737435753003824126599418269211867121855319499941875279143061431196345540966442755440238504922476215914131636640556833725414837433879681172183880924738191374921893249256418165922290965686240755171630279156412970109033426925723434815657514479931554330653581454916851425896934098840783269739770103441445827072527513624507443024415309290018306389973203944448660312333970901540954982208452613584108493933595222807188320440994687251651625091095669101002452026635666475817975320821512550579744065191135238524158032689282005718521912187703477535019560166181178002605251200911568026555402847096275225741936192856820668603829977621722075336756706740717152991034077200887290128158508637671254006769827530575681718703729130426681574990859557196801184908546414074318958231551124612289030808650595228104713638317773861208484520984147991777679850121476014436079150341298549579196995731890022447643637918015061948555748736490804045870492758148011679403962397463325153321477974470067878793945032321971818891676307285788499633850081471676466596160186255966104227203973242932336330645503242442036924415656510026758167679427850872822175677077653618722417138915359821294799804390880933620220578211861984531249654441475673933517777135338246998723151155150467094858439069403511076169869991411256617596588582978861677427999474137039270073486702456931751981901612677923369736451738393311991059200815450519369475073195131750273159669149903135809746175431211556844407663859033028356139735762686098758906171885972035294829467453399287611011726497169076536824105436631370915873833974348389921358365582154818194590791372928050489678915394588251474484643874952478690310328464014238140832469622500491748942065769628567188172054120090854621813506877175937381906304059886303958479524691457612892563919802152275806534981067076833097031205089712242731543146644298781842210038304919180629168463010820564227893998564959192192505150808118753296162855885315613476089897731068304301928135488032831082558194483446566008597625296374403959181763175051075604605382505651617559193551494513019979855713310438767053562729897046194088434652601642928996645401023414813322172346755262206282428203757976013479583260048785531998561501671748411158321875498830900283741320424115560313223935242153999326541336480654603740136838877688438922344350931372689782343322684137128201711223313582482029996380502519125464771582920616153377401291116033971886524127693546189131687815275245482166106983470846730611486103484721699461613671609165446626959969317123496213141899343521434156802814270424384149837893998149972081462772059530310890098910535388772786310341989248334011059189572153566717555549332878998135460157954648011230275384840288314136535648718492900369990894991084104416316423553963077350102234627871939186988388836838499836420902710816936937587061711629402061551838421131754223738787847475668012885419430882913155888289564860138551982271216640749699235065741619095681245216282471563834535731396114667818344864604290791335768338975892625759794501274459659887009139103437443875392199384193835112111617468317057319819730714377149504855497797381195365774494513239534744508836747255967399662430967481109483639085445392430560383311130416868473499035139875423904045297320331310709942768316972329840517701783405122821640176671758622723236918367281908463798718687518232160835245807830851972403551192605171241795691591233094643296501443757174939518139005827118847176046197778813107560143935184487547182922095403484411208453155613476488324056914348930042010031364075731305762469197871019417321025113280108025004980909664046108432104003329452430657952133130273932082558362939188034943832926971598394165232488993683447470111846024640277052939350540045716598633910253866664436426040979031846716168872570382607542258635833446973409048044056150434115532291110536375123062496709155000483202969381330440217174527131476906255737448887650978517863195011979101750075939629513299747953911835753744201481854183694111151388595993407895249271901007712301197027744822605770879319116644300865798749288261504943866411267960949608410599567702689375631433792922094472302214111799982719790884395777270780609519066603760259139965310369749181904432688470794685929127126705432970404379892411982329691368905740239921877080337487647208805017344275865630200125191381190428153411983865496894518212575922610316720954319222344645622297319895385323952608202651420734034433115543392866290101679376008269223054756414324223821008787698184438887383062548583099104806522692498340833794254746833144812471165482529197458013478661263386305143740932713203732752628624346358581670403609578011204492645176445774632074401337112750499893341762548625562879223770645929834991826541220822491940172637155342159866627860727549113375508717961351086468766296540152035450679371221673237015687539045921887266908223094858491822151834243595019068891748325217259735313628727202733442567008805102223535381488388510418834392295890671174029150549297153786307452191907693308072270670878531947351478473490231260498834236677575515827962978150069637033778472711630121251158145843680496061364535479648198684566851580450176473568172702538862735340459877443064734779438450834873279848664170197512312803419275021385287857410466173469898067410816758452746728461604023643892174292844125831333029371424533079006850446070807631936229246372380148818850367368089407634084250118738843600387590170078572549395558196040098545254389110960080486807412189935766931283686552763565392331075674437694274531033253392554411159031611913934771431380557088091221462304474131097252308372262759865824309911785549798272162470512599964506397084612705445278189217079438766773422558787244974532944702646241542756874672418058124090221217387755582547643058895549672926846329511596493900457818715834271732204107989282659018949629329683209790992111985671495490184211181705828422554860971721353253226941007744824321880003266084304156207078756176893438873316275754641274819453266885462045435703586237917840300647364225873962703123474201167620002243983992506050462797770911453171081971245176508464762760347333981883866563569304683014551665356560106113117115262110277031988485670660447538496690392460833090764934730661064587754477631477694349860452324195618940332000078295717236515374274599009612966534633317801025122136446758812794436772022893164257351961351645606083156320165015264293197016138462866517752014714106301725105301480285963717205527928263550926331354369375696360980442481870621160208227013046160522977382495341489937463183418408997653645938140064491007977538056047763392395832200619448933337812733825026194797145466344788708605246262698128410242994114746583298374157507209105569031967508668419273185084115750777153081939807797544439069371712886974583429582856575891172478025359171189324750267233798223258285727251328229916560138085650804504277359938525940919307682608466085830079070147069147409288328332222492987849415289020224964639513979225601410047918917504298319296925949465295365109822570045752083422405760611601548906228580050138995337312324714544236827592399967723650181435140065393512732020068948276639241547184383289765160342927709825213696518071483044080313620836532101823161248157660841879090667653012766249704010633588499870206472136978547279912788133804537809387048125389065740352030222539112583757810933372366173591617930811789955970543467631301268215737542639637650548327721013489777290282876004887321060022895214059273169904578299493119277927487397783289193026377956372279238211119955241749397039993403970430695191074197979264858077681470160961897109324210243333987603530453661147219709903478357504441405513768095867815850502467652967264767054881559889512475306148096546601205970936154798547137897740967875618889091627743719773220491394906312999109401342929769973403139616279264166966900334646917862816475193328154991937156740663918840185597512790929554665093078235765241929372027162294274377528425053056447385713505413161558114435959927272213563199021440563827341481145504698107538408259487558521085626721202008621770541794944888363898481869835868818899678998646832997044907883599026716032937828304226627169795483796540813544406021175295974784751861544270273243106869031778928247589697740196559680008127633244894924802506266938697651668540689955466165617081931858495133310260169468884358368407638924107547849997261683604829169968403403395305156959736320432847596340400766947777293284257063349108686611745844598158623325092453259727380769256547466268279003636497940382768119487031693060045960888292639126312436727060034940910747852474008207779829995180680999480926374112020261014177690040096045259593070924482140324683129279996160951222331311664015307411734638411702754508342145395765772305609222624160941648240304964888535632915452170534343157792181541427210667394682554254855030313303544546069509871832173192830664868796578836169095222714166246403706006550034787268363274943264698263685456588239406055652754400550524333946107631699956715289169485277710935703749650461017491281925050196898347999189194531529150641696885824398855426239937761558174921933784857331580219024214621468552211856173282696282714792159453102090105297391000833305625135523418531190679221716954084817926028112691662455088946810943288503154570554401203032254305331117596309511262671532369024560016213867240641619865862888382638698713929258563412269763451162206373462638143625016420491373137905101764062384354330988564215219592988971637062505469557039108000639187663210951963930882904900295192675245011592920469020645536565985666683524142798374430562711757524397012903245779467075282418341801440640796336757656622913671412972763450910154735657361275954507994687024487282851310196500191956490038070784378660800696616618194746609752327065333173236597952238637071014971119769957570160394414825757631550736548719010021201971104847575426614369474548635850003609970891465215735196707864788060910314164223049923052097941192795960011273347033439380525550541420082387930465895009599733498243197833631573266024762649477453148508316004963232152674444952600475809429631039856053965458658541852695737861350736741700135488528433455987011515463524670510291870018443794311028845982131972351554009414938321552441502581635243626988294368691579370477252247481711168711191377023912752329291226602214338218419462245551592526774074005811514217330335138188391905013624063569613791960064714612441751504251051402609206726165482170333331736218890832178979390140702250901953231197492995294148013483103286786116425073350743412221023447852853113909413409434186660049116111549216781536052470123037375551273528456282048922936367836222555265995665866388358817218345339516001303640563579532968460558784554031514021568227119221058194707938864586363876504644797353027101868732297002849121474051457452428466032986169109124106928655737548468592141619659703186287442061984418730708433541323388595697071626236523298733709335363341740629310700272028338925233831846512599543552253626335512584756432763460877319079111223714232767963521847663982830100631006453896713564792803837389884414026163879251531615821968807366733169129334464744232420493785892583477404060762885510830967653088799669789659612805298237791243729803473823213559463522689528588121310742318688526384342514444116719373254088946648227621221622222861277761102790907707256426978055762822370962320117664241861859385448690923052926066024616657186187579016432470048609830511173676632073785129811771576956191407955949911238599582602830529458734332468188773715772661679021503767301340311951697815145664923429122963983779744410095792950305835673135876843167634637011309693737365383209182483463193711664657547092597548500953727459415000898976599850217177356224013132462671982917137951757382587211568700642861333395243990531200083615699238424277901154243405738871786976363377190774730220597659366778513929729050120946837666232514169256309934007670259317765497988134188026726130249365880150032997626806699143729683212700647662174722751346666063785061146831894463349076599136755619046279561570753029841334584030581543834208205342893080854118063603689045437375579416018103204870614054768404487456739170131514789788661156995208202774690974503860032484042139275350412283364716945332920696333609623140221737499184479243635053872700409486009304345446618638893536094892404169050520391915918201863221640462871740528029815803677643741632298510975695510753208926798774928566981124229687928909575662756434682958943240758066720376435046595241581376843019424282749523826842879406323412745547271749456496767372857215466326521098187369492185031518202936220389732389098197122029119997003768998241498107640835720471572181542496905016404132507436508064878876806035993277339751855978478683001704553217943959543941127691341952963262640825846875679164196414727071077887395870770775368091413449193283862321623862011679161900312678180654528061503225104926684041861151852382816498637071223421574252834533897953477828444105428284624448288895349929572846488573093732730980039134204668846715734813105416522163345891782716354530570029451360149176459862925676797121777520069348622068356924225636953731038992692780332674379400806995912539635006636074709491918222490553974814987185282782679169476047768031270119052050514627573424364589245832881799228238050086376359982376540190736880365525645290894032668504228141657694534212482097777150524592490278972521903563830137055860679703818927519559474692412451206500373105586870395209828801338370998695205731068035043957015507992256991121805818059143302263479916584450591056044225550489344883399106193060255345417996982936068975341470353546662389601151263691176307965907635736909765809189777422729288084093432035083832955574648929461401473636870782879052578708306326986883431181376083774800105162143739178206354947429051957291501673987154841912748040810726877352407826773637032760127724894584334392218939951302955872070967787588634543294089970276314437731488969871426533895285437685966244289470816526638700982688031623063933841055802036685019469854976074832736338272316131565011805487162902374730741722183525441495370186713082431195956227285299002282738679337623477084963919421193201757337162628987362813931681629512354719360032581572511395241402052676463257191936506897644808610560140820658582511465033864313256352102133817313326096619750983693908076066173221743355245634160772226704659952297299795381336764583803205756389502508476717004446329167960753275195670878323289853177689402756075949314241379229475871902343380376739254633035511335147618506567037974627937531408385777409526418525980412956638199688422222865951509343256449801328919359559288147801964646707565739865455995420227957197479948529391578106969012770815120397383616179936943959955960059044710023679797203938189461550219827444679930095831964715175615306734216632429639822057768413193996091849019767930165464900495847891606341826778043845144733085779904689046599704702424574310394553715500787069438281207364615580502312189077693940116509177101168242311820360277781697794809362291108614051066294180166286397738346268657497082244638039482386902229807491086380028883002737044005451883027141278151998687536628787726194056962089260088219064771294541777945802487070626623815687573390328701927431838458444479628052094724803147120777517371517426253780186974682356988334252376230418909421901050622378139997015072281189815142440988495615050283955558019600807220375638060249763308530887438290756643958966253054616700172439703708244121325087830632403545181547830007115708210253582946134707417187925500342161712804365157083214940332855447952464009755521136458433441559569223682561227963349624546378861332959698084582448016711954269335817188258226122625048663607282168935034946594729390668504757568490213405741211144749338352727465816066134201086973977673282733471495118623102010853570968617839694118312702303401684350735628970008725756115051249690156650254113187215762293259184281476675449713499897149937713682017215487454070223016953791186560540944397756595279257244859885045145631028136606572513151175180986043754663389180953934937842143147937801776558520416547365755960461941886902086277708036357900874562844657170883584237668669302940476548875205577631275429073593621679020187820003186914473312543449804702390258746949548045500323448182261767506054617292073602707681404038582720455347157479596839025332346423784831768883073669395094207540633689547217059095879137081661560440554263251126958642735169552012840222163437118642735329970087435451224278334694679227288902904307100637013013836358809368032085508488216937839525154167405894693555900274830614528446297924289268367543678542116728480266101498069748737722330486965815362038747942864867275000021427566625892389128727003009889052345122193543716892982197198266249514056469523367437336063922160514525236512552098622995560325303811517879888443913429183168083304087987702456534603687589772570833291126603970585628377134145032587700982278883365641437156707272241012535156542168823716829272712525407868779606888430215623693225096068284990685218347027162044405150638173777867462937947582296146576183848382112946410162019226611772825709053629792877720567023474625283876063114245750516428139002575360100174870906803738859675111847363452312019697073517017015353703781991491584963854962578114545405938882345726358390318412163055123180667777444404219917256736765101949751162907907185880344835853772949392833527238631300534532036897234216252017907007247016157233911826250045882232321972750293501284752545895954041280355791419726711754155048363826897924659617149265422563644543577533924122678406136696233023368977502502256392823838132192224173501961772005691030833841989152666831876288759616570221558437527761340964491992434765477602252418848324509383675044789719753091315678594134767295140683465667584902439116568337942501694474520911953840098669637857721735277005218663723337360388869103556043193408342301667894540854208222319095877521241372330361895987857128101094224819877166495101289425329959684641652461529497265579553043889477631233025032029146011913121404222607297362192168155794152285613015463314596398272804424134771592633436689215633541776998486523661498284762610940376510213791387938724539436161294343911176961243032839620856166168498532082055435910968043528849452557598999589165865995761981644464601581556343967589111932973758972638335108091802183579314144905898303416793755996985108771584958875491924428084454734453549567428446049173836782916226876073611592249753789913863364627650373118052647961727536473454056727158232372867243889032620073304671889347880681476595246738996350579208509409518201682607033473082532812672862776031549480819076499143565728713685639294410519485437011715715636402657246271510878232063322695607569428254865172037243804489351418309072939464819939309286351203159310426112982442096140295513320628011509006853334659046411592787369497889223934315649718794744746597640594880992679477131551165930935652490136009053113779287997029020634476212246243086463583742346193733762908531829042595410757231941581368069156071321197050375889928474152342089069345778234295436536877606241375884698122965180873571970326839070425516558119165546930377814352412160564577704921063883005937873876078218781887060644721966543419587570863189154265046236556674859312540901586012852443699830989499341292955392224080572622527796594865404612024760265411737535572096751883743961969430217288390438885277955934543839725090492122881724725844008042232036152444402321551684816313587937792711946838213486360962878524068585028713603584381819289077406738394337257180805728347774243243780268670326802716785184031009572613323504605243467620728378060917710168883397992199012847007123624296990073599824005149885934245687179468973319138223125263947419278327448838253804536407316432074813085131406690925958563150782787257792023965064683126937769007168559111947702395995804045005163925993992674001793076642580878846361468912343692881526134639048094824680704512456832400004475800741985750689184388861754563737220724277410262648042677542813166588184652671937512121748919890453612073180592097217169239885996305249170810964794071223937182836010554461392065901221710633345273553458890032054903748914347486785266248587749943953445251241779504162231025611658011668823689678706175559503342696131156293604492989255708648624502453044127086443693222154969190456711373577802349255604669347581624551177197195754990127207529249813444285698175455756892081041334228934423397405502213806137073313343823060071991771778870245122690759237881177999649429837894877469182162402073115923492204668447318719667562559804535728003155910214271260129619547528594668150131140567219206267942939547356559177469365387462772371653235876516468422535189202852310187891400082868882262495515822335415042307117602886465278549286250621952622314908447463524202214476599787182490568523250392733664849406289775078953835074875120680328572076741335945354768083283298283778736081094773100598492381179095700799491913094859721050046466962934914821946849885627141322861454665430601638766275143180237224150956288880414924832799184572995179704056758566508855629737786232579751276789184744891522683664250070364769698628619665867411548866029675691103387556683625829505231506023828098152015263395004114017011080186891351186044719528463068356047648257786352181124537802894946547509076802649094804985314628467636664682200923771034867784108756273110428545919950688679093504614647410742244427333238883853044946197735275698394663642712253414853780410279498856551340992111528590809679876377521782030247998184111991790256938632364251162765556020428240456059998247449307861005223367375102924170023587055460422922518818846562535184343257895002636675822745354146053536982293950334580591146609188536706537623993420980421614310166257247824685682784163903366749735355212660793967426480763719597091440126773900262305978321517047379235642897265895580702281631780653056520584628624857520117753603487327950276036494353579934188753639303636122626620128298079326118125797506721128987348605849786812850085419241129464692748316548289781331250414038057137093234054958463196254007550835363175015017814060577021344433251467578768589710505363236309630822313107156814556380171232451928535329118954200778746409196477017805434508380687830050856639256786526296169393553867269063244582361849899503184085296962040944414965030671703312635783200668964978189514570267114034411996772599595228131376265776291713737742649684190754205487767424436773968516612822826128390532381879910304740585111713840972160921279081096617395546656907406544116690878326217774268433289419905258861629608298608188375272172895772126024715963851005302291801059476004529589735103790854949312387871298383994650357703626588159275969104057960547243744610527580768290551368782010521549139511185147726170579756477000745985903558073303588524780011018547147609556439457203921619628364310124465002173723494950205653632711168911335900546729289321511445559224984945642261406828176399914476427159216225632412876178760418650048894205435822891139420337809611698678099990074596516891843157235284591419757506960456568780281894478907178016874825425644458454886607192734805567556158467715519290961235666622976433383158675183103625862137319535154142589310555943857734805894376114669021841378505874043332212516782875565326617641671930626891219092290466081870273054674427672250274387064284240750769106782330638518468187618270187570577143511566752885211691490177627229473366610103841228534541744452643280964722451582029775171037639022866608233649730741367260889444158737733821922585026777984335372365845001632446099685464169558795301560453535357750342217506428632407736875118259535783648327167467034160038630033754444993304816916080184199133272407920951559996925290808128961576473775676099181344432607085618800898454764634965570468041592198442419089262270136549566555874228179043858659888192947526963137545874297865033686295108545097858747820193431864592561350453104525948198630105311279702820498805103701794770960679299467377557091303974911501103559926225392255065821222871396687894772187508109082147144071428353586939518990947318019316055061835372653113000388947413766801808467925099830172886089861509929877574539991512172874569440232839011579650400721912528866581181492623364726560512062363144338092246792732958671166651565146231458206020136867033099048395719466264661938846481538823525501202785417591321560264130503709185150416051861842722563862193669308314004850646748384605437712950971263064929645706550280555143662193423885841537105822203559177447432813475151767118104740995708513610691883059854544125217202561922211021841740773920977540628489327071379293208900488591382790428420295621722869123292089195813471572752344460655460659092862317440305975527546880724478138290254973401910866682132089408647667433535615299869988041303799963696016107365277870968991862895436425402378157889137033905578638039593569054948079452904854617760307987902337027839368205785226161735094177841725008894173040299684388411871872236980169788662800108612666965646100310715184668749663818303671103839152741173339746781314847351045404946799385495941440460717182527729466899372363165012600055366847825682319894781818766134612111699332321554976727885316450087430985163743254349058199288380586479115855730420165541647607958266730194653973824441943346001596524911761710747526785472833038116052473297215409167329582281613323329028930855744371067598278096180451149167728491935175180969265410254847699569850232120560539837336127482191045773020986015216739388398416133019224869675181139605370042438666846264974967154843561864204532887967093818625480133429541425001939977933816825692817606076954667681522979894615157936987471345532475755638991787155509094185763270656800497107522098656767275937810551282060629246810222363234125049133994001763012566500085287659401279382582059312159016680769129408722306495034605251288038423941343772320250917111493606201707275636006743068266078555825997709046631083514701440473409674340139601467961981307878956842559199643551684458856459853190072858468821989017725018668817962693770170055225665177685063111534998135123091348730045547137612967411231082877875242469061748188779605853901873171897273674964502836633860700037840520665234518542929574115432565962573508067577802375085129050417291298714397793952288374718020389398681568678589812892080516528855751579155988093758915109244746458601440064356983714981970938582163741049098033882696855997037865093832447646351822345679122896329316610258585865556825882495000930905426040159481807297976128723347994343821034553433361602672067634643688149696425474130052553774501174585924824785919584986919839829921405717846653310689809404608198019973453049537802451277303838056789448324374807206608104584441273067959435436290461159879473441131736745620514937063940166566597786573298222368167472934267786521074345824130076894386870767427967883810432889471935070334487940446819215704870871499425863135724039616922191698812907099971228196178096800854273556251570682631057501559097375233858433086874797241176707900291030653653430226721608821285152210565030874321819085640400366457886456998768428516719920622064920425231691947623163090188617690514281535329485416396978189711408177752031792270295888949547111726682816853579120677817544837414237278875554437273241639267562199939621411943445910911308688000856751280966011508727111503029129606470360658630912322092936586917311522601485777725395722093983137848920372814730243619911493208634315861193957686458878502849974263099063218727873737161021738043778525480423322014234904766628957415547761635135401980996443892700802004873297114253815068181960577461355587806678184907965896928477973355886336336855792080991924656288708990735977286618021527689051439901883167594236253760108454600098323907065826454975488983976932179882658608193690532512787907774011854580689092903406066184699613082485580689309493365270258542654177031398022916855198699119396421642874210268731493998716226405082946151859172632629890671321876125747972187285728266234634176730351189586337521565654820487980901552848619897670967240760777528739458757715067580657246928628171099060976662805103931068280800656389415696292352220356236332505517504443133845351110443678129338164212665215330524228977219619743227830309259627740087884997370380573317375144905674493964119296911164593605567074960225448318638117514291676029443923514820301310108840474583472064734867657148651626862396434974957417027407471875183713596890971090211650961583159513950936540340693932441270015805643698193602313157012837136996795246307718656392903550954671081159131872418566604307492727824201158117016118829424487323479221496946990467248971858151074446836994515591253240627995971106631966192273931702380663020595742551468035659121114906862848642368645231906192797839730837056995917220756798228903333364512232695688793922997484193053400812843298426577244843818475290298409557500634276956056196757461773572882596158442637283227858678224925057507981133935215395382491275940425717522948189503638701169745183938423131066672869024681632975495852784396070361217264629961320539711020884284988624759593340417659532514598380167199427847079729413891179092874203874769193896607799686800651720180584423149897154085925677591940876163819965821113724829971442592753815032909192372844372693489069691277856165487424283874444909575516953553693437691708571274406294044878306134092006983634939374371757055474810070335331077499868017952745894293587863275321768443498358768135448057166895091862867752089911059529754916945486785991413059648062499972185480991121779940265705258232823678069318314625139865879750501617630712844068290965370900393731854491782742024635499402706008098179422108167802883132534370974246250404490310048775775831054780979012940062504240616094910893801592755472608280935712278309198606653049689975500974697165722692617967355037771886008463085586947752621750903745943519561343756104540281651507617156887383300052947510716243092346149505352039171766943672891003630164143405039267234768743330049392430667629433406262089357102309153828504386320912020280751588728707971722326432562524769625247872369411696871325701868719373677179580244621887103872508972192823109869079855702211452603379756109420311099789546784971590223301991256641123088069737533656027509038064564320426764638370120629775438567140411445821166258906258412694993943242816973174496792037467768289128027887720778570686235835972191374010246772592311204592955836999065893871570635259422969937459113032760481827073673214716173973187824218986061943192196038996164425724224635588159907096224320803832546388220189714886431068140407414837251462886032330825272460619310247065351886150826333430030029927403184443786289014160868143814527927340566780849959033963265953887608748430554271336789507879046378640397381516677666686871884095267372552082910831586754905680475121416063739686196342199804094095629033649428862006143551256720744651017477752700266986423733355126225877874807784878441820850366625338626522274832404781766398086403865823358040334320940629516332583938556289924233499237201396106116893892828811070103034893037978749399523332870830899559303157986989156971109221118583690801916085458185962235920396952309364333822575316237698812831114337343958710139217017058244983076830752604593829527308343722930553736027670013033943163139759849681495340694579860950951713373116326450293957388706990385782154293507811994935184053528166058448161538487799851142571510754861207590194333295063268125554028710355236422104662588707279075216144350975329320375533679498906839764245642331175083405890637485238873175256096616921265374422661502155778648680177801679664070389706717165402272536476046703607881847366010704055172911178454875042369140302897059168847437114679188558001209565332276062842951262740155353816750055399475609105182460987347449955321200453085445407685825154291359302265849371085549467228760249054764464480641999208433399384781585248798875618403041277547647068526816872905223617756375655004416742060340347841281239563895514605206804901124601344223850025002525928461338649092295163990464323260913033674297379572153867281320124980898522388422685682625766696933428656375997877819853527536786476355457796339957253061633782594465561455251342906173605571603388962886431999726308702611539367322995482871979827387139876424082828549075671234007993980824403878667083141090481050592566121282251879586261261570093445501793540070473063038717594936847980817297245073898886845033874021564238479590419917259609552397262546072911968283023343524480670288500637110074148183894746742905698214357581974365952514183781141010317804834942129573062836868862976437247300535018620211259821903687329170174448852851118398694913636771052266675350553927564156381289924977970625783905973249936383705786075582111556403466790693712292865513004280401228242528676924609037045145602018705511663379587439872766037935254573511711242915539293934337887791113040983009679388057822498796542025745027528633057654447037946067601739959094747277076445621227327543605588445397787133727367862554624803537279713328519464121909530439309448371728404680439622461444544872640463700887440603231252229604639532101107461741523636581537301101165566744001152629654016719711598633886085893774261284106424099738011074304541975779495868098712064656151175429511894513706514220642248321442567205515836983449878010495799615762501217761199742695364069395476830095106388263866837579516324434391864601341147450430556736608063332915266369614190854680249388319867497237680987442508381731131696085117020608884386107572667739382790703226659285567322030136117755305373368512946004004215742149477926207805617838220254252223577824908024616422081494043621667951574961235963274969860179151820440280741059692018111110380387669903696200073619518454678179265393888702231521331539489555629869086436282179119485397426242586073604005105361838615506550862644181358637314058496195929649998880763286911974814648397301298269295180125863112314970267188457400317811407188405150952448563747852899298374522926003687134412766215288369371138225586167966509886654209517719377271418906008048261598438184481695375205238617216226360217238688367942931020033048864908305454845010769072542270059172927494488675021462393054402045879961830281091111969446424626524350698096993256475139188214203590583363439564227155747398630825528903098106598907368693122792699397770254215826331474571242671454993368783140141730699295822095456811484311010392737886951919423833065494752430102854056480873452621655766914503036472681235273677321219902185033091161182218517687834460377433961573193755921966183613128502069530681456923982072904831813671523200482716554240483284943677410661391628812011750069676768584970767320673423665796381048316101571237642616131585455510639264208006048605821290762531447959920656847154255816180942874173070077916019667612949846155780271786934512552736176980335115927110085876021481751961046710098524925961583418723754987362000236925562847367762612107247659685391300316760275990696007351245104279202394091783475102521628693601407863195630851185084644926898481722020558584682457399961082580967043791700266736010317736247159075047042798427606333928193820237030681879474455604200686992339153940448335330345719024939077818810465807258018719994664705475467033129179686821406531227677250326318771053346091960953434332771672634697661382483864768647601290527645365774095999418711884795769549162710498192809649655593501037062861548903489272753740127809257222935100055350544082399512788211733025225494174325986258563462185742446631380208861829101962990308335115891532554221882789617754434456031306520841233934549997649354646549292754363012241486691068311826185255463705851654836225579687739118077479396659804934176171449077735811222475979528518752603054225928572553415474171326144954014863619644639323806487577690707095744104248539775096482123050844765545032664038208471169617884490857856808783649039220571457587046809389371134132010148676221257153228680504002277964702470869721606143130447271409705870258563609294936967887156514927131331518557041041617328895831349959404359357824792961126830399472502998577789405181156177893958031361112357015513043380859233247443293952188129272412220736025349687179288064242542839285314720289313278316591875106584443051296081800378352826851127494393438725243899843600570034640910918553837104137827187690807354577444079256455933102168639499917772319687092892349812575928036775020044075482346400344172967591126922701970538835201927369159973855429231315043567541713813062218345292882123835157366466670699249313653331381055603908125221584605231327150584260261783589207293564089087340539620462718556497746693687330548128562472195071090964190341438534014769057528192349468362862817633208618452764042754896608158462479202289143222188282948620564865239511363768511930738873989057045109907549184928225944767599009833652590099639563512538697072938455146390029078391021364313885429822827480753181929944682245205126035185912065692754906423453110819116222109434892376754056400095569764175497052394708462345142598559026674047613364265951548535092436255060437129312339249596140473869588715811696272710092429822006661677257102842426046836281432551596452654927089552507320013396882515377353733489875428421742665011278910134284354894888879828320035645916119388243373011320493334179388093985080317245061912444408061929840117952044056216921960840185768373882274201462518566614908829834428885514935179765812733477871510288530657113152870717902861719001673768562496900412138490852948855407848535962777490302490639462621237521402667064424011392405839143778211363808666010880048495410182857424926482672541464802046397274069205283294563904403593611171016866059184252740230760995497757852099978388886460634386456509589474820923606764752693719027591641266082362387260591818669710288613660809293581685146044273657519287113198462485686678393614405136832978145901068561524656476240549287427999347852480406753340584874339353973540171219950712384239818891068190907763685206432923669727141069679955269211248952544406911285971596671800213964901525056667095176917146032213315245482291367583010713890711772383922111032242259842588005766853367933499614163997246323127753300937198430786919009229173089375129025543314169115695407514660234466697913416925874673154309122168060164059245631501324443008418856650016266911776116522863836990196737440158413592532162983433322721697992505900635042893553061803042882047431312914996652968959056119446192884378085492890214190697773843693020452842090494248791795249759829097282078756982389387015636025760021239728541635929172081862804176684315643168927714869015666932439216446209968359762289767200328223904037395111252118407140252978572617842213567570701017066838340926197054148192080029938779831618321967645532992136625893409696914308410664441268297383053592312896485853306990979305260292340431514795924512480507430525807517659339826468307087631416770088498580437904710970345623813735303715362598722112287577820738471673434740862890603493820620566293498763360650948538022638336246249072418632112579866851032664346903251290902555534680792512441919401762027260723442082800546242660121805349377811163132763001271330614526427612750840868515970048688306981227744509981305964464369721272478445382089069586433656022164846692106637696244617161222365150009831847441193684259069825785093576097148899375459854116131665816612342570633624324573184531871416101961362732379090592128932810061910139380752554317500736323111304778914027378839412474915339766042359875000730505722773217412541643213684792068813460769714737583810241641720354084596587583574902396514769492914000202183024286251528032867139145701399458834337677282055080144038096773333420794580747931863609416182557262995853082491146803795881606251628088336578085797713320357163837782117251049705310380391198422004458490374208921992333218144395758831222131077764472061221202372761495451507776360887487731294317976097797276434049610462636016175211306156951670985655021805839894860894898943771195265472521377940099773666818353274043393232047006749225952615107486643071532787562991180215853780161061355680127578589242663375671277764406710578067902207293741260000023179932369182778524801955934545814714122459676728503919608582845849334249730328824073713540918324003943357951620098309906417811886817216288201290621350342099832373949655677478992279388155337213341906190299706025177748706481233597548054265874421200237715695122227207615634393981346131944340154898322493262520161162520052320510122708441820667912217478601167104317979324614705844756323557604074013692841271189267709739435779320987792904057437582835464091819421471821665915294940107868050568658604179113204798795571758588494718313031571485945782611020434184334219743334354717153233337211906068238178696455685040042856071763599302565845313412616403392564896740221209768899083842836572520452630311093971800738534808856860400287679700831167534786981380077324677643356228292453565468486346710040571665858575518959529200008964615428705883909597387585391979608927595595857447069579594722464368390664192160968048125992823336367741561195972072089491884535376704242284613126157702718412193440740733729415311783956081529903926622008814705933578183153959505487040945991178313649326274403663879157008823471845083708829574951405843035011723530921023218028029955941974687429780688186052168919767549363203823577834337784379340587165966101620947235433258513852247090437330836145707534315818246146222748969854559006665950961113389627607002259335294528641490843240399445717948165700888207629729105253117805457716439635155561422302137271768329731677239583182605555088181649191370562897536689133785585782400182534608447977212401725541123303324204511538616859611084696428929062430597985148868689119332020572386117827636752323618684510178314391279130220217990097125627411804643345711768470008233363126186874534673435976240576487322344859340180779154170906691314453495890834893632285093276599047247182554130734212832928250672693211718053372188493099532169454329697042760522144801417790120596069570700548021845061246924071797311766674323988077348556777926932663210693892224167892850840127586905086960734724916798001554139179016873589987759144867333788502903003455128649143960903539820947734513391221664971163203426576238283002052171145740902764568739722728634251391375399808856515137511214394572512611005629297229722696184745689875307996296955554568769057227094093632248498151900073386897193306720412903915407052764093547886410492819861890350768600265757988772653502623711143108473440312108334986214275521801366819244223164385550305353821677173633758036409939125917231969046399727823291027963830696304640810390975789945833035234822850711894608766783238015227497822068574468733254947503249327277010096832525931656799695342157539266252190507507137386990594935531367814082460027311183412929444424119025299960878682770641997089819981444796264846821891708612489443076311443914139256665494767203368349117246954833797167810292561741917014129705989180189406937522632878280932263109134522158083916033235446991494832151093625939222754671039349867839250115549862800711344710338451663523793142757011396789701863572926259552534818737573541041316572668876978802580823565792541350602010699198011982144617310711192054030755248262238598170564700504072978215000762824464769055610655008056996480256150058584788432707368757391773500877440716070896473365131333979398807185500152413229933505788014080109212680656657314388083908132611791584568339879848474689987234110841864139281597118936925504559642150378377379737846028538906931292758291797933479573282813762483036000813643804595093225813893414768799668944237987112346799851097810988031199571667350260071079971953256018449871702779194339764343185951291830048512460754309589830577270620239267032890470401279873969448959594360816456687009134657996905666632204641275484930376805229393046159822949280818939773468488147358497209127173507539222811976644986884437103350549934751973087843736649755170304616270537182054682669779018152035181601641899874020048452884983605443834270869227028825008126048115504925485229919620443344746878404451593216340155658305999169661988447864463419462701092476525178427790181650068098955415003200126754145826642644774442321553304426968966911112083935531385741192838686546766910517047827917865946504977981851042319797239820943252319096976608792032795329907579858420430251891352089459469285163987688188853863913885039546830553247058037145562729327066850052453922924803214998156308770996319031771955101383626373166436195527604842378402239453065532478410814039804191599221743562173406211304543111460566009246161476807426153091256130998464034688686775078880856089721165391884130115604527569365076607529847495122200517883215762336295574122950365745275574118331929803722414558657690891403458649924650163638576615454866584316136713520989424790569571126562542062585770267537774100952718017475801666494773724912118242561223705628108867483948285077528877659605571355494391995526416094677497142187643135817634549206627246516000118508905071026703256802570894461149019494931265821107377149153077792219065441694426527125007252975839749424781750818502824469725430604779453048003494423275082631341148311715512694447873260814420830941406352170689399739175638235225369405878780719961033531519589562467853953670851080051535440010227033040698077029105501180152485420267388977661707096642939095828427029096873739720984862805584845120595438000332990176176791497577179849458374243355035140818900933825390445246219824139486602210513465636578864645900189954353118382970835540111674778072928596790078900310570900844552919541979723013590101531422833204343895018291409146377677485015651131333847401131881372511900334943255255224430553926236444114418599946555683167960397928878680244637911028329322220786535052119367717008624229139206735929314420578562324759661466387538094090109654143802408378798973700162527855912170086364185885776943011553583246544321035796841386337158858783135128926384105058662819589876984259767635942294674697605639898210037112069255380976451318974425385886622542998407281384785055311008106111945188330426754204288035029425213855550627370581943417216194849254630163284833865258493136501028897911979258988387901115736991058244610992737910978402706407341590627344138455110869353541273978768771741299498761488741137219753355832069265550182121685107525201019073205336804957905560122379343439211401413550589370632754533184486667518008569686493322576232331323209915139347806433830418955691973642309617595186941062392981486831653012656762071032676244130125985879768915259705308594528693713772096015065941841892290945995147577433765113974182852803426516808227588736576677707450982314643947624820051589601801311461500596697619821546839476783816915494783874823134028491138212992291872316648254281968312243175351221316949130737149586745477192507993797205597591349707651306557831220338885374373289238709902130393017463280279093802706531124817756188142820851143514712626542050854515022235094375189986443633804047069878612219549876691416892139102888629421123065854833477369780925451936475743859305913656394286879922827391355029388322019521820429120818480795526129859024621731735368032088984953728091528173799003306458686229031412448074290534363486600058799541461251096779896590807264992856261338125061955797901010777477827661974047444406667129535778839841668446940693730212501474119301392262571524287681144305930246645657788601743506231859245296518595923244506582699798479544172928830747321673491261372774633321535618877514955177291309924844290928698193226341519521345057584758875922379626921126147985154798969375862504553639783521703107266103985214788717145069386226821532311974217338789142036001943878744778464757056923342328197872226713310827435841772039676335086487730463818940852028744458861637703000561690368698219917841856280410528607500386966842310380009368353979940236982167931812406870434593295131199120141967010700616870686925154624154926222104032142757079184478535123994589829100948485100936910878246960228171230329135269816639981415740648836859057588703652008418444933907154800568150214801998636488554270468463694359475065060333906503672738762375909061922436074612203335040576655561986281150433320953135542978289038229166591687963801033536041303209537677441709065555101994821992725135130644504223295608705027122066993601576624467250770571426353588023237789143398145089340806707229003044527607771874461013575803827768125185759075711271574243011843159605042881281039052805535430669182495955564015625318553043727021317255109287254488087821278830280638582860943050777303744819619282201836926760738331210457439483178347773628376124629493244135644518316455275935628716237785434739454835285223447248218473820095583780269428002067426004710288885492944520714707329016856516943170327673434390115430099324686779100351670581305397400388555651553137595275858652092458001043784880020946902970252814381182107649779987176890775804754427638096208125585215847978085649535029482338851428700419106359731378260655992605120334835766299997653497792753098810079807936086752109809078101906480143732315527229592498828828919354908207327719455010507452982650656614294320607796982323069905158620633647132449286823955656447972748645057835987308619169783741768320179053028898864617791633991666736141553411235842407373848523510747314062754255016301239101929702037080737676059679279362614499488092396107699386184313960063970551950594373010581553111129149329119442068459536820302075637732965143246404692700714058211630851675673694089005341789522707297774635503238474226743263176487429451882996952538149543157458009747924481271601007064672734137011184572116604823910929339510221952425881699668346839271085193321560415926563436694143005414703887218995611154521349707812497511777280022208977487063147604770925099856075538356028502816802393856496911974882320323447182746115570485115355149462904309953217289359303885553853165626684349869624688068648918559775787143644358541378866933145438640369064504344751411769434599579104091076962720541661186835372214037130939719399478756746666475287507965297763667402804582609589278486104598616697291306044597186911005006501393158080469008074278207506521677604201261540972149342029134856574403796893724524766154496368958535262036063730697883926752500398824090933145280374433819403169599975094529043709769042210658724769755582018516364747515879057993537953738948749692173959782325054594697329718923476232502169612710438813490427586365251936618598401684223653960730067059078366229048795431784777497107146784682616233441351489372705326824624979339704474940981100352202050372522199578544463000379971719188929149577935567672610004978405461262387673839088423818387393757365885282290329491600506021949035262228147256526545928761360606960351066299580223004601177767354169316840205264597911644718524177185618350595763642957192030101611468912832998735464804917267584979858369845130948553316327627251897344007156015550666719157826513418836213045107997567781592198504205044515068913567097796884868853885439704164941834116556832015873929156013582470551520979318172975604274032252615001539967892212146402786145698824011917196825202751075512067516870804975022159083170260928648545222702828341529955042899471871467714003529272625929589639179240520350457198001713366242337096776713316104936561694509234168962938836582761102341124757192126688572582128173359280632576020857537306595424951965372265470346502243424740128987162410682914399906002649950866733603965470443105766853593352268803591558685260593695068197466181714724929369371701517480394009008850657297323598653986616938114579446393925441666864280149169212538358310129338247089441009332436671756541003764438677962336879118101932563191960147317235379999906314451259952112119396655041153749227846206383286974291280485521308353532681322471966146974848939713138996749836373587136073366465193491796074132661641885140994549343856276181521727261280866977147618955053389027634632108673722852191872825652375104251909441054601075578419895709858303745868114604438268855687571480766718821121969690520400133239456272084891260590798463737332050006304059996173087885042737699424616380307698206215505590121906206887062172970792347224385796411436378707508509787268517248292152682309096790371492602975644671694709600492807269498950459981483204514377794702756765733992909410166390342614489581690543533363337738031543636381121704001442302581047787943973067683610280901528049526513821313672119773072333482461023804455031455040589607437314176603133597659348559901623954022372781316421146188221155280517024043965291869333352628044755980477271771981797438848667109929000305821043113861883894063552812576382309152035420939108333748736365004815235821104314988621054988292260100334109657931447662439945716400180139148232521340288467245063881072211720131594801689804520755732890774718359925339038028588569390737757000247383167783686823342339792766826250414423418015496782903109141262851541764153570721221247104407766413269574482513148742933474021217084926998237082857071180016721943120530335047726125249843081607146868335994334146728775669670136351075344146437758681512782084754401361932077747094173031409699604855649677162709811199188131581554840964339277514732450806918284564984967968398322649149730040737088293315680075126584730119819943255696641433829187524895128391135971367118867129880478656215696368100666728141575425001936998297751684466822579645347375211532525329929328870798673402857278841971007537527850509093589556240929181408462522018150670840603701313794852421787411572858334276255739273009753430015986701844717474578428137454298209219549002239588537063281241495067964942393182063186673173583308784221846609413723224829665746552423560567332086932303597568710335010577164169444782465270708019757919991045661993332347381747249380793989351655891666454509890701823921975304461501361286318842118155682706349988129961898601198794233450149288199567770838266035392980738472267549286134367439157580042689064390962446774052709005219528643077025020371500037968220653783865651325957661961691821158824395873760971091321287971098227891677394465040469367422952498273233755385652213373205653856373810760135926824209944953825173762902753503376113031174384016179605304559103846526088103739585888867985018539278511150144482097109324440316258961551835182021565824884893896538170197131005842970422399652689001301172967459949370999700531397907937377461988023543401824754662402556556108718052262477736483103899917143451362284025182867959017478907532776635404553942160685603959302470491191708311213946469472449052387225879058877763857844794653726043117066817888078982147265103391654413912961924537641191851734969437368691527946480527569588324516939804180498645533319196315727037144452351652629476730034240508410635854938915110999340159062621862206556254107709819326559295424941066988094489736367951500122431796620525427733589042313636657736134727831673281870194113520722481772211036475481745458615159980516993685683672517850505926379533494058345308717367840635065887226268153462740678117690157536855390522089414008992169540663503648427997727056429060740532151794975408467813872650247822064121615512200016698137570389854537360606409456690255584641722201595976399539422083041420255635399256109280930750199820886504666553760174166111804701955594093588679498696114361337208109542812301445927630289946415603814359723501059667379197303137132029183813532030319642661332788238831868119634930274318252416345025958264145593583265846595028218331306939783464588727935383597301509318030392210560050958743329577279515286605381320563073622798398305573177961023796630507294452915863210417278712657309575075303682589517967899384080916648224973541956986653431037080267562546712553601490626788167433740366281459047955480745214217570629985554618313839612249410453862580777397948642156104047812900302710210054811888849543743506869574244048966051976238402513188097890525359324088570565924153605664520310016830954601143542572835735504216359229111504995383000844435158984927438876712939229964839732286044934993863650504966562371342244258746275171125206263824402727153468583003042699706642188619586489321201029088877097285947262224610432141250769510331917207547389427703052068248209397752926461551588291402711419155579078642706838103951531376163855755630168048398755376365968211865119640856976443279086786561659222089545560092527814447835227861671071979029512148844021057767916329208634469870561092667351590157160095104402657884656014871047194407938903493101087206009176101728327767856007290797560909298112975446648478662733389284676440762134382243732615587954508731276337363378405384189962563572208867511373184758105971100157944582799761030659935378530370731229893662563458913534479533133976663297172357705604561376249288582832649150319992729604434772948626487176572524587992924297655570424461524045362574679857317110349604489864612191790754988705181813965559898131556692357247396990464086935932790055966663514155517037973386039240111878975735179652780159390927693404536795551106018625713140361875296002271492301195604295440880034505386344738044403101000135707316837469576380041101672498750165863989613088304479813301659799255533858718960609879312513827082314653039844065954142024593159064949417926584439201667533318977550336746628154625777418127288364534821408838953241212529354924723013686685643980879380107381820505054669489792998972521634095206773265466612426742123239456862374918174938629384993447730542562429696185400751917579551028051475954543649532809273966475264719598517747524911582357242119029875899627583530107010333762481759320477731858572287745235181738574533551750024374111315367733380610182176746349441302175525763927911111518533480650884367414653757579410324625423860938752264848580207958273817532916661863528201419447437945201002489581477586746870224249658024220744979691030963884806363356789920835826904670816514910152040787335155970030065427907385579556091463824642437576370817979795182332978164413274963353103726571987383003038947337050650738432178383994755128481853868396534280152390035350239249531868888847640798767773139880126933051539249501809689706060124292357827491286910641087819291328957218957642819521906113529203811997182853114388405230121023508839105014595683363978446850502234861218378843955884347496584553708179370348063773256865672081190883354649790211554253486225513923712303190104472483909923229497880110249943316193346969841416648165909359985271116034456988213112315028767966621156373107498117927814896353981591141602526708272047847593029738916530965763570974448584418783101792188245893029839251055338688346261992372514186188721337170027352691965768251534171238725695497903228931672530751796389839563801751923084643287445280822433029807095943581092448395811189009750290611855290443640941737852062580507879142219096437538268462591465856592806391312590346956110174383686498180967645370873750612897304429161690967495495061460631286722982547706084078526706371853714713087072205029682132863979091305997805801163823691139221069403454384243126192454617325414743879054550890120648749695999243642676478629679751620610979895509894593831392664208968266899566024928356066479987035459608772341812245235496368983911809399553855883801613762247179442520352293878620057327279038069938816916343504438554312321736085382641779059386693337116866325695250417125570721957532782462204442185894179626893394289801365098608681249551128746446641554567091979107968388047793575378357435447818032042187869832402993694960386296496501763608390521860981751506253202962148872968034964742457655177638076198180270586638569170055402966063899824597563482283498817322279919649498512701749771287348392458725624018570267962206927288494227798279552289813853949161707361841367943806964468220471016685684335252183523149401323592145421644123929152701238033669425888429518631911089443063901327572685329480870247304013270234553284567657516233966903824269134949224657467092109171270385740181237296346198463832370959237360792536417502902849936228379034199259404593916375364600140074739243787953655283973163256054596795956431156155680928120282111902086293254794052942076181927364953901161540301962411818006491906979827783845997268191040937408551910991599456372601691564168911712114620989617998660522144828054785232331561886945448429691980009297880216903528456207842518595886850256523039945419532395574759330926155392676387265120448366589968718616552114226333316444546049812441427497983768995907988589162658799578081630599994682485902023927466308225669900136769552360387615808881426279277025540300227900450183540078388647636572505862886372445246111570553210369208564871653180962176205709447080834423419273632609494851977067855555472929981018286743856861391241333839692159606272511196572909932864368182259214768436786497807605575113260977452704308231403396077964455938059932510229608093816842087634026155913514979779639885802420835487091281023730846947348593805878895226974057027000247969049643604563087792100062208442260442838616899388604296001211460043955768061037635304423180827407483440354431001901014133493757909962195943883389540530079744145773536247005714257452947338351500622384099808131856937737427668085901865365860517773862669256131620869115656588537924157268439495286174313899309323430950270754688510196588988578622021197934820007916671115245340020305612766876644805343757208238545020680621536207689660232723898351501640524883866779984040028494588686947817104561272512135161361250099248497277196096136623211943287246980891358756113984733671709942327535511626027178828777652894766152372549069374767737648153349222284410948942056422026072055217847853026024465879939846885306796769817272285948479138724737782139288700849605107020611074683604546327006248299731306631097686416915241313625662253395677466119538900117052921573445760594507119537486479577247146124335707767419044876462359737210605813554648591020678657095376735869865717173726497114026312977112282861136017632619869968320464242318522249533280624854075420788181874098703511346169824477176737479860484424468423540959743297008239127033507525545298174486751178955466497417617724119841208242263014569166146481450014952343860963228869798467569039974093333094788030742651713134135513669255855535568697842330155599167304153828326928743582047782861115830751584401358339471181178650746041206497795257461223504693852935890465339408936209118768105168973989388669206897331974908021950988495625747235510722065734699417357938192851187666901814906168233897781494306343227293902256292197202767673301870881642530184143398526619568434343320912073159116928468321462627574806637434808994387891738330080206538417978793307001261548956832892282832019224590778595890921694470867425487393363223273130608420188977034483124335754746287903856578840712912089086422014788732015701225781363369127616511683749789050635405258624706929808833445826476989668007505094288559354717327839287180080645290754814630434991642487324155017447038297307057959045618282892040766111995506286436717724724733148319476884889276547373087902021562954115102242032020190762603547342772911080441157789844548916519570452671154755272744836850094013398935362578971450907831431836311046994548099101227180549288835671331642786074463308734962597801403696340048351571098800909460093625659215650232837590718576998214558113608657370502710567322973048619296703390117972276079949955332861352750223096933479678172740759065323969491965697775530497703106330587064464554476443595684590985156818737158920587550408836712104372582067129036381308012995283542263328926607234357304284668055762603128269443786120231330329402845364373230392775212531293207173825459461922210850242357193782429927471249603618560355907353669276868625641833857327877198008985245535338417236212027779013101438002435257620206062630942748597993707448886736704426888562507107553607320559572254928539026347077464908197279400569409412935946026951847586403388571514520165756797893751363549291800146590062218556193658533921813835745016178598167767846408775562780378945710287851068565757984856313481554526038370530373483040442678378715455975457086853016273082661316648231524874164657604612871709876983323269528320805461389977999980017236643670641092060572754275736705932356168391607593202280448179379674685433030432159422842949421309063862378252883113977577355872915569714394888161869828979840741336084737376368849688052664825548472014181638363150463742798301937790029016619930646519220977935740972823486302917823166061753154587229576145985622941070528055475825704942083909105747585527393197204289852692562781589873468390468905697114468211341718106971622350006749297327812116882396001731821868390591099131617407444850190286129561733962664222451496916046711161745660656657777362911740526380109925914287915527248631452878104419317632014189629419264021771866209752001034591521587624155826727269941963131327870454453300985727673767302700193843072147389377740251603189359144321317413768931738493417206621784149140133298917227766012494039897831943754593550707119486420512791401486737022021980430917604528525837438077649179065034821218470133596716521795460218439199566309747549629655919849191240499889510951772811567094230203762583735940784900729663199664744773090863678515858686692662906565955963731072678636906454979860339634333739216644693901712268701131062196734723785036050062624997839471728151515939453106709436695500989654464174527042468299790532194702101061116338548499515096708160373160049534498484776994615849794192638101273074446351597946914514388957815954763048693242472558193365056694377689750682969049890193240578282390773566401958145140906264960097386875130162500194325448588208649478180790866488586178503396889673917571160450793561615252669796291508814935022864879423915882351066153256408682099814326276462246383737253260692166872826278627775758322009525329849668597956794402463599003763845022055839507199602281839449517310619251466405103073179648180930437084766661850634682504721548219575585956229486068527079115461601177519663976214214091668929202652634429248641417121034983530210056669175651258294844098251811062629654800949783336785464057654105659175091138756200296705588049838398707033190941816124940318823494859853588422040608193422500063378482641413251798416378177732800010547403925525158680013787446498811095284975146460379065322296158913195469353037161901115689603627090338311957956034078810870235451500954108866992250231580945225343174030107872975348965079937694429361679804090573715442553912378164698841267727896152765245158006981562052179009553368298034035358682096805078726930754259215084963501574168445269865394875203565164956994852897057609076385417956134019700253019263856505542403667251587095587566005739856943838255746074030862224910010103738619663144684386354667626218577395907937868886996472563250572287032638870768090221088193139175272799325870814809653558210950086530710683129622863463526275066494193044962036744642819235235650600974736342727188306734778847076835905288491096669153308850912746008194963132360750092895527399661289366059013992065412797323109544093189596588526350129657741638002666444943461635010345373516699765142742832915188832631444964843147496713457612340162075219857536482653866657138502636008905569921581255550295813976435658492393625555510555366698996101891521510661345476260363237915028439450176366122495916711224547066081774789041418785133112159088975344105778049659790687492874107305538741418552715371809733968397076528255022663486169004896747997864493636703647968146735469553883613376052827727826914513852524102527514046766516221396021559798781989272177289946430775967703507994566324076781978854397029356256862231700677289134600340744639207081239707640311299216919915187069561700011573619511552450526469185959206676971847097479544631749777236789155257265277308870786390712883735469463918200920797019177222843619660220493222090355085220456252679033784339897301247246449322409714428779511185581472102213759163139041661780231045277590852973886796190865706980596623504089886888795897484607815828368975699353595889983940533028621052103592658658268352245906783849639604573885775470411312961926648310506617054434520561608426548961738727249864622912599619653826995126833551846557010378325247558016423358474807044572828794970216304844104999400342050411664243434048799215606350051606744347495261188635289732875645890419943906898190191024912193177482178949167699434161799242487432259436557594093295811512100063764753283950238870552284590703076095615885435713745322092708164112170471336869809712447433621552991700595660582421918077053850609251593809086689199293100356085398130184868613236782673043734091287938739440710446903431479718974780813710038623017214959680527359181174615035067713700494632291358459907221416109623532544309408299707952778780552332122810435565841592344082671007107354606380571757496693980837832002778874848870428814690793590885406738628648794352951840059740793078136721106338418289676961665599988295911332322027090208614362335152214092637431495510618944378155235676496120832942735053645916132368473936260846999817877922134752939815822704593359796634111897165023740023354900020277864124266698086455912047245464286005916027862668490816274707356466976932227458269236252090405622658954561402689244130624228152056193203277555206228556877423650505729941493773739779559166120171163616675199362297848959658108001470060445029280302037680351864716960680041518388082103314719352907633276193630962086284497611587336903491665060913914019527106497593976944415356341637672391970555175353323060003075709856707566014537589816370474879303547591877626590898714887933383848463848933825749016644679647553419288451987892666026615274204655424952083766129011251015064162871283766526807464809721711857131756682603621439777607699619392910637244892748517035353804801681406208702179212757941498446935186227763401474607584819837152310316976318281924923598052513945194823242297171956932778039606081938096509709546438083188061647306774355007578175310468150195817641270210390544286049705769699921106227009430492978824311953693969609524697965804121972427219687234649460238058000958938810039703794752386963016939349247083494602647467984403215728961571713859737969039806391130348656888331867817823097754141302744362927556630990323695553831258987321519989655836994009117479713116194421101054564743468802827913140394457444804538183094311427496483153956563883014714255699650953771152383212722665760918008427466669253189265243458199864526802192828155869568940657223098530366149603974613410108755299147534044512860211331659040804491554016794523552565941524883794586101819905414740544390215140315959834075292590045041680640236360516735875252728534703198422792286045272601575940268369746762454008926455742293188862124497656609678428013267284913174938138993711978121770272123413815498074295441715682499972692914424824980271828603649312910645535972829018210995649047103959193431125415371902965330269084343923781964152158857725493185261488594359793787198028645570982764448827154299788039256970330559973584321434179702075734300326715105408876471595857166005126488261811074132587753065610783866641468626460145832895617764861922244898185480251702002264703276584365864573838986019913920202543763232268921658986336535995245486337132583142598981219462435371667709622508835736103835493148539152456480660791462087507269658719758106754723699071951688566488500103210040225508147608808010583787963556626718872948021201076392877066992739427285505489266542351707765749689362976297513246916061414104297934405208730313583956700581239694218681825753421833374159386554972038054055827774844671983830690174805525042982139454704592848669356187266812612529082273219066976990306100516672073900369001134286670691259124218373800984858368656842972943103641465562146457534323753191487274951082483379272629443213235941280414662589934725184563382332039083189010826138800234887692477455304307196758965996429980220438567161470609629948546583638361814655490001098751499708844161184500857032733577827347186667949581148949261277218015952171030520140006994726928772610859916551739335550401770312478697887226328475165838008024079645178760727427109651989252934089306186498900546323642290355302060456714757734925253053131261379599806217035403288804297726443246373706191885459377522290000348444588829234996113495532535537926602439966475088413486315645398247122945995064654146329377197819216856308416223156941245721949657309110162738652659547817050678669628502633577999189652127192737795156879814367061990211446212381525690563409162714086627293682392742815195564743537758801110650506475116583383489923080181889911753912572759970220574998539166981092259031408247424235296576286151219346987754779657374402753673433997541253848335459302791372152752495981974574876597904046938975324079534159384990653155969987589766978410612562374368776909568268631650000191699624555584677835414301127109317631461551136113388504411014932088296026912403735273188686051484737074966563035208220527566274248025179156564324096872679677701686247385464981950632020022620612354719384728002775249422869669483109724810693863025161302605816302976784076084186804531756456275188366854179380976785019668755886306786193516475066952202719423955238542088234286172570358323410363018986696710009160734321927384745938740145007540435558459508601241774588315557869306587154426972455665452746666796515819010415119554413995277028187918204104339849991689455755497051894711539682077858759736593399521885754305411140767435368072743639609290593884355528041098347798229665078371414563204206004398239241351065521408136719786264038099136418998072089366887606706374161440400112266364250772291552301953153392602356568341942945354574848870656580179515390639897344608455978310582727540495320480812057318294661045449291686906382946319019896552156406048687609197393509586528854388819494738399838202611924687713125959853533004031028411652879581759026670135924358743422314226173328357873802918220399165072496041590943446203988382481010102732493723028766556441918156981517496093200539651734296838298169050451712159904913162590909969840117687926858013498071585888312230561474772805216827502758321833267538019915342564494059851511069395684838991056953044957960968769913120830679663621176921851355202951451871358351020024137214142561403635253677247082211260926160828598030838760520525244190943430442038663619836111690794860679690694883778021917984857084358698629071951272451541616436801701001889977785204070695304226216360767807404833892277924896439429099505374547611766104716365018558298562438117662923532205015688070710120816505069748926655649096155307025440467616584172814591799501097752276025378367319101360704441227589410026097584527484228454580484612785561710224426450939469859088988508604865178681852358579275469839249427219467800473717517728824284229168482382552867697796859438685127841627471993545937822421981113424754486716747699777776925571224914033221316456830055852548201676690321559439458599560798061701422849028893238451949691198418777802200953661813523873861529173415887608729046042565810895356984922147278344061747572333961063047919039461461767237988003897454093377365673464446752159392743073131406634385262990847287498667628275316963202561059213991851066539400238217160899224432011745607186482579452985116015609975570149345188502485736392836040244862817419410248665107908321695125403248156301303611584146953409559158283390803924251702443962611333171864082120512112738769320379245277892139046695378414468138570508443322105397167417205111855294321914683465689248694481929106582140817676427891836029164773253863161876538848392132158582249481031776941557771834476431735248537918163699239419839885230590073557345527300890210011325795066888361893868568555471463571049988694627604218642108274011827164637438666126864215017229560766381766296683281132898011231867827572847463220625696165736885697652209138884642395640519286855462558810097179569665394169620412814366044327100805403316729745097131954711138805747625642221840915653323939994445462847886900689137399535641468163565146203193392070666492301540771419088841032212284926680665379616254611887394224821589260647347955437435497533815193784382270546597585338242168354142332680091085735629229846277517740135902492130257236481380814041164004133017183776284850462527836700705670779875584103660873217967046360455862379949268363013516382708940599163001399628288944015164857740281265757055255860648468554998238082507950257851817242415569934108524863507403534807169454865617823103410971540157358347437237991038198761907965826836930351447288547672451436432072235185051401264352031772616854374340317203506597826035752651959163366126556259215908420586072395597077626384250313983837052905403326536737096916800728503518852710498472986791944723518584706134035437898031887653927379572028441007568441998273113234496411805530280682795073198340747867279049273424820341021168091726773768976734863621444385591112995477506557969654577043685386322843712241183748987126910767095780833624294528437556560565572505352403248928166675508097528251448003976018991833326906996810430693572168672961591584470710630725257535945277045982488297849689848812011145816381610146425940961345912444904255854254298243721300538290405224052183271749396680724289019342519567881892817395439293847398919119071870838916543099798167300844709789395216373866791320604029866605195196808781672361740150382025540434132829674685018040638121003912119083947975328337051670447203203124057801829640553985575866367856675123089544879246374443904570887944144749303776346790369673320765592618281715111304867882771772715424834784487843545564729388260365978967390885299212510262631326811941799906750681047850332454557107536911552366760670052782900341086326851812713846434745534450815020130089036663661485801889639166004631175726767151634889487860999502934524519455423288937148804774455397790516983481534126068690132275601688868936913393735123814665100541342818716892872892398121759564502941891840714633476057359504562501610777009230137796959586893988027053732917247760937549805890854137178352518879447637401092930595947068166192782874598108766332139252048474368788920093986597705048588504457758071108027388199767343665104309558171548449816106318174011905277658779382425062712034246827520063612589999215068919337471318402523869361321705295860218036571711425355109017877160276329780900441378040072865798512172643385055023962422619668164377521595316050820305926375804267305893974740122176630702120421685315032068917368147690586950358718835255052821701930392603027144424818615422506919676494820285080744635860511776665543164964548827831521158883498987449828647523763575038728438609146201728785875441348549921736775424792938009722255724736372388784163978997596857776991696878344258619759852854915571294488400653233958018478141393310630607140760134598173109390205511951022121972854956976525766086918563949655512296943161079611764160177892203582045102195125309437233375953192985018328531902367842150886092000977423859052759821245698830782971461900353830681862732469117446283326399176083056123310506896194757583158192026456198046930497892766588753113609392239782514563565013853365836133481825590995234596724080019989508248281377277848450766233451684541469003902645224631027144616789562972559390139416127014450830137824346356033554916093636151428252647375602701532357881376329214059835537139391776077288857790314511386366697515855364537480721566835539234665757138687479340215326045707283601095082242132383441975538820150596275772624261614273612564169401545401389682490641769479966916279495122320714865545618398182225127615725351504450779256400682151704230519004679106724057484198827224199700027834133565866084144846169418086753418884555197974489857654156022739227676318406254007428567163054860465434493320603873197735835322646242713497658031127907778468491267232828107397210672191427174707384573266937988928267747876376977524040107934599110325985852877209297175576641408562792694480332827985994293353141240973286927721720436759300657739754406746909163926539749608319515292384697597219965082962533687254646576309043971537750779117911720445488757291277643713909431449261124919282873186951236188130959823388600804098553101817604831256545657808083695899909836449289588985024148015996518300218676770590106416032460888285083278300767912662957621086170191808534511064408950608019834949164745286196581830358276469118652693538968968005878763204614351757362573483892970168202065820339826393590053680295607444288944872409342152652018753589462450927137107901624598040192696681037953729584716685551792764732681212740657583341753485224910819395292170825353453767535134362532287116727611161221122992200864613610502204035515175588585916079963131676139535079952262478194416345075195643687176260852962678281306687261796392525925792916056508594024339294484744962288162393682444038225923363754237845912679242978740829248415721380975725581698842176693267092484992331971764157061018565578212514675376592774024063278706445087135159099060831898854566007139400829204605432421335795959743406688400000010898129487344219104179272120243650758055638617390122959142519815019768092993640013347130642060505472017971178864538706852369257256934446020285958207024115201829900701073107638912006941055943390683550195093676859875208932183790272410719946865589131238696809763201660112690275831467271916740732004126997603060084445351369664169901257594783780925713779814713144557595693657979827943957575804616615811426580790734181761020631763128826151788503216882939599971929157266767055369808733545888606331238807555419707465483607043709846741245890285346215998329591131812624023710813805536910891944814536797131342678930792266997296708786295353580079276646936783224236034544232949979401539259487346089810465715685111453146233786219085187118774114080605811308794871034569920892063723021698402643518849518480462622324396546110127160056903437214491949226484050759017100120791737578663707039594597187163678257774320521498147794108873613120455538792463977450915282373223733371641222294331851532854588899265655687257887439755850114612418360638952927142944506629978409623175293380968698287025696117273479768599822741713820247441721254811557953286435900143384361294528399383357931875541504673198913233231507951754986106962894807373423319179628377606585885734933654528208035615914842588390001635723864746484159170561170347780580012431344723828925400855705313393212922607977485092241429742158602300062293381057030936133073357184763852170908662320932811694217258157712028065887389559376395614179339582549836760974041918055341371948618666000664259954021035054983719109627169291451121177278111332032258929409393796694690138090230059668109366929008135276805987239264885125356845631228517715226843721220647308851767947529693586338129970763083987883421373063975386597993797501939128337305721564132361836200758329284591914069030769937633565164782709240678361819780515536609760778744256718081247499178571645816388737995352792016522372977978974265383203371120232949518766759399332570909080193706763885447507642246756609888185891207447768844770569133115543834418684140252711234151119195153871758411780769819776046894090189740427710249231663159487525167448021227637610145678569707820605767061249395467582307094978353320271200608382972396623901789267119479070346143800138595527378530776067778526779376890220731145214426175160926725210035040293220095978745679765677709016433557632401079375490440102579996533733864453603732710270441967284271300313432121518440155061991594375108979552425368985596367262024342220054491677155134085728123653180859099391674694593407866987986919264025531672966687395738822398170135346233346263436123703336349885796222571181865735921869278706969108414779295079880088826734661652991745119525569340644020133327768013756840569984318600898316282540147638415254381933262335649610616133235026014811521039052354069366357147315229589298625765642433538347210823560675105512874122359374032761402174216516361531945068761663481240463303827393529591461782045710363193247145463045183705692731791964728293674448735019982259982900600292874884823201084691099347985199424203136786251768425732971743001420712068160177626730333013510923217015428545079275864297848447941725793649141493231222659453963100194200698077603572465894616933320670490973037418152090119415128746735998081805376902911842986355036071274129977381427631261705083791794937609355032165459546249506795865188727265962367672565838614444343838385745233051895143093129466614321752744483806327336925117108319448362669624521366007827233704758729176053016744282383387925043493542271924846076251430493105079346167827598681457761459006346808763755293895849231886750696208679720860302681490193237810360153235259339915626105004986525738185947438428788344683256036338519431677507776919946637590497498410277066009240314889394097952202328252378233866750425676099745251713789475594930614382737381217563099459375918125202167145583367004786826910338849574717013629389032385878036862824686163484334230919827373898047675052985900623574052779815068846744443464932112612599038795938760839578004430077887945492373859982984011071699671627741644427453502278954265549686758750346129976521354026482752316302394005275201287566362632179558952774411895256212986356230671990164802185868275764504553456784409849925038535109579004365202379296444020179842688848422451639989875844982475162855660466078658600063559224054844054115852324683034217617839334083442943427277222632639520495548427130080924530529128368401504158792019456388542926617594865445188332054437667231970061461741185512833923739833925194567642808608310176275888133437299151519608921494241750938218652187051275181649822349216440452192092363665792539468191777525202178932891784155522791489432214089600374343666737740599439795451613744143120995426758997470774718561074850266912096062164050462942851522472649827943990341114573022645518053070380173469435588574787034237447485857021941641052458388522900358742440468379864325206406065819095033116211455221972181703160537607141758655790800959486260779280626922424152522776904529853869922070231653691274467929841206907257459701021514424828221262276975701464528871096769412487302971990857785809860484280777327488232625775302342365867907827172249991473776375399132387637520263074447148420069498420414010997918252911672580445279494846994380576960476475056177090479536641545377616343234981547512374637886775805060656285316031040184765423403554511628070920162703993196338431646565270034673805877263163779879799232495170334173883795771894193416061851923768388013068286900427577951019409723619793744752327740283914191492969376592546294677290568108839176848094868997299120807681834550699155422904489203693079518038527027653544921729816462008788902152113666102320443245439721666089506501393523070864016419966819566273997983571010898217901039890715751594867552925777357697119073374879595786636806595263166976630047738686953520341501325799559304261496398660097784085699316767013944799654823740411532911193908049493454586141820331277109600271749818414902606899261772831134088465203839973449399106765691444240467125039170541381570882726336588024296493964685539458323954857819849856327097153749316969481748913909292963605466083822622653774105230992404242820263023902790646767818742118673857996542948830012513061667172092697628715212121366294667263828676754276796526638227997943645127358909378192468294832781088061106423128996903426845993689471587852303241092176110899874006085697219012566851890595549919146798114466049850829209130195110990975969272707558469174326371817596936089867568181936744256024510384296088311591569020175694928731585279181780224289895471040842463525627215020242720069169047986446101933704522535085727672477805243767340597200745334886705186144494679744842697136394637160054123804806335523889081754988919689577993512169176686505795960089407614428468583788763355362156843547190182488736476860224239044035860983468543376746594055489286803876654120148541521193634929731024087704848478897348986793689298005015233186385099920590377400791641436968701115332612571759100205146003132087289223120474416342818532123136274072653283511466411015691220850828417292031101032609705468776573126262926851869198898396795501132929866154164377441724817384808014531738767217287265036751845160180289874852004236144826761820199353926817488687254745287940822822324025400834080570495369594921648823991850998150228514287297619231302145434897728630425733633530042561203593315580706312422806383935839487793062636640277034958904310828118826053127739338422687175650993647254103749124658411027393555305787179799784790707703236024702059637676241155829633590872908978183002996308199493629339872570110870644181994258480673074848926668910703653613144216232470898856906156544495264179783800856698132188285101900035684447620667805705114830387414558809807780821452780150157452844018341365754232606706034318080509542320737001869145005116413777448352819297196254368165279299420076732068078112515989688860556532424927329158555620431815438796614727436769722341948002390722317838240603442145736080358201231571506016998396018736139936539333445310200918372849161428718397189212303748372301346266829086542179866519069593563914438146927903588749052729059669981925533734730003495319045420606265886006252519237328906312749719439285961767182967492033785162356248148458970303678263288751361383234914510777568469843043465769095706663471203246162815372055885519708671727654255010426530428520626561693279640673320708310701559079535964034366995105052678342325229355600908112992502059088140796412403231273348935799286624599812868280811579978148701913017056119858277254053498874951203093098581582907273091489282970703654115863245405427258165980706037998501319494632135775357969621673593804864350319190983749890243240577184279895070813351152786757952597897957500104998617485354524383718542687194957513432665359990239567180232188627876871145180837395140365808398095060049665210608239753807961185413568172225245382400315472688615739551854019094740761786577777488640491918699316798992489169108182506667718587625606261362573868524894099371767302287916994573797823755579492534484047201742964180213574747222911556066728055773748686304769514721545316758405748492814121006601100036018165588411956981630913076819448493780034126298578896426669798265587755903228423331129520256707700027768148179727677835332988769757750175737256458257283932436389723122954732157099221440679922038027599487889683676388149517787884029447726877493968648308127045995966232078564674591759908304814802952823642697675220039854872517573382024322657165187076007807455881312420167020024163301207659654122501439357923918793624721451537481439503356465190865144247758565284101388754685158320440677942640163564372395964737251518534460366045983348769008344332504419823434607698760717231280735547583729794069335662759147912102395883619772525116328973430804042629848611410779905643522104604508312234335615012344854985529810510777315555783513425116335954192491920526284885381021817488508466792759970807664353477719879712903536327205769171259439913839283392968920723883082693188463738467533665714946288920103240165927274457944956179531463009543581066530902884061757430790979361177775294633740973844237903387442754322698313317440588387872399673894046677101880993870814136028493237548702882810330467229087981102575268000774330869704249216088718164007452162738332145534425386819075233842998102792081381990439411978148457711631913455148274371528246185574047763265751565709574455968530484007004631661197265394966130677040165415101613487386682164239567623478180527528064229918704604711048406312697023838611425088609637746942215296655681548371184115447380035227933946620575760764745905729970100398601252016877167465357718928936769192602371622124750314313182660352992306280811928978511963964172714033697596294012542787446787511201159236824147490926887720876569589417557671640228322582487251434654283747339808185091993418896220787170526662837862015002049186245066218364923126974225086224119423570549228176216440827041135581474704772414426112459066254102074372607797646839484411603221071409562893240642063173960439489557771792423347828254648831403120228657997589623427004111544254041502197437513225083257856264044859553282846304301403735331971323281948601086866996594274362822647649164359293977853625105102998018347026421497455753841527397445435638960259847437927605252859419894732727755296283056762722594283646796033444122434207907125919427458751273092132518282151399809353315854315843728611384941903700368357542966398424963295364124619141263622251513867332283223525463545105133498969968614272755633570271546987265723768081618571806673970302880815388999232954684536896701791808684961678822492863462784953167959831972485697651047625179382499420178969403986118042487741850387412378656030895048558117240548960207984611352642382099132279534979455580246755718933766614608116287617700003057058435477041213190282793795692804040798864669198608848892161783868811858770173104473303129215695560991123936910170020483347103370935858909309031089621869216023217749918927695830518928907884429633195333970437973569594493327869017552287098314480621420525097384537629153823235033808963063696395333012064941807179626289784981190253243313614882461440266848563461125828483435482206435861602211496338103724912527076230396625222786738957200932465845585656547434971040148819002489933770313181052659397311079977493529899316773839627939125303361844037814563717888039975601152459803058194076584668086099646888523348746299623172008457520594063469012139093843780510965101080137001327393850230568439036079250136709807093171063226538460747995986309775563134448604145408466207751448659253235865073108021542633815079797858032401857360498069595720860618224009518990935961006199850521070529314617361384822300514407749623081193468285674749911154453380536296814528796388771032841422731312817278340458276773386173924729165247450420653430968615931857466705850051094053694704958229506168208702552960465277639609648933071913176010568404951652954000564320379484263081629290684894872771167498955895321680448324743456511016725548146011793312073518509878686266641527452779903613481127562862374602797532052228383801728176655674734602646876581635282751792986143566260656020377495751863491254964327731081418889041424992062672884688737392414397838316047254933256626449720760475228140967383474392148725421955956776835197229730820365334982333103300275010010883850764793170907989151326391935729017253008083858022639849917934311723276440894271413856145269889707623776134401607208320655216591689110308252571155686197748818154253252603924989101096455754326464612599014581500306258705160974486034088802222110415607606487991576852841575138333414835896946848778897231527305687145315254459303989898237760701446705317995504537132016850496112499707547076280104238733848393710783667676441948430437756239260382931140144073075755504219982657089273992785681398551261241811967653284687771110429883442837007681068736382226377473183189685170028568789348479520403991335253106703316056493536779986769121597609289628506503737750847902659895758649747921477736604265808917807912275077409191960854856522072283926419062967184098679430299480454952944251791103695324249051481542147093895483400877954441060896090003481490796416319925175144117692222388973297614743437559791591152067251800858798970901938531401794087745577542104190710929563365332745243722667290854682933541017515379796218424859296307938284404024927393962425133950273121655158668117704431393020075006182995836616966374484930581603358973830145606606308057642016730254636432771438292291992505066484695387414948014988516580631580066982880526913635906031316009514454674411914838160005690737101201112271793889456305600413101754723119006265187854164143751336748579811277793923335753443664715200829252727134439858835131023708440003001545714652561937115010043088807988094985534140976080397203882468589536676609292535099688341357601128907970743506915743917910825738061016193495804427707689560471505611622798168245112779343250537099814203230746322235076076276897654125537169434150693555638275335350665975289851222833813520178893294749502945840851144980619368275460899027953650893372552240918129921512195086079206139687965182978411641415527763606146985055908684066129260159892441954300473316315860853790235786526361174546797853799259255076029736975848341088526428453377437389681848796122709139454480103930352388526290383893986463218092994083116926560366011881093061627919852502063085175248640094359449333252906569412118403376304461077206008700857587462690166361269624717468821434795318368528080523981024291410486561211205365496717208039745075643459078567542011554267079917847632299704703764891407670226133867848287358413420111907487548708994569892322798473394944761497517229892928654101193051887269424842381200820587996331465038527413499421959374811198369400278544977750632030985598772546625069947622019901727221694697162618274168079598386321376937675290547497047359597647470609792394810886462131621005139419542986595843357725726390872233732835558448628970797266685120764916717253165061157278157752707769317592073426166610263459707322224331935604185381460923765545110913687055092807484036504699010203804366517382223305599326643301240947299490997191714795124515563955127605507799963710373883621078221671830442886282576607989586695971912678490661431537605289948257427043535585653011675512416669818320176368769957812649691499394322270041306163491455217129768474868059763241702231023035409590123022851926376086125719369495839430895248359316737331236950195651140563092052261165927991368954266312015200366338780728591485316188948003672978809689929290487477948959062475797522382002868207358247079434665731260839663952335021559398139486523291173063451925090728174604205423072050784159197397906347216700768699644643682066826214366526297907055540996228776470095877799655162304555783399293910427474343615758533686872716557623057906522791209735483924682500295245042858625945685506224862422657544736037646666092916459499773530391538560598650295160244129367883591276029333980607060793058480681580946347342337102199055830956950875949364584718059813284456723614148470779072700520215244634698566567951078584717205112389160477761266950912152560863966397334344530366937668667498587147300425321631807874596125650085147357405178468170547034231503287567862287484367806804789577299149721160386003062555510395707236078303769711513931781210173482207244008562103924168718265944143285504230202943586725811575859911168091680027371006677153459450697661019559300440282971424311047962401276156298194018264686672603390527401736609462970077031973140029383169235569863524485672123217324595918319199679722388072025468296272163336886345690901670184502679824704438926876916956073589976571541648666469349860366327304735724166089741462075975536343274562091277999521625989974944438156668904162526064586550745456446484106484508399173651822018392073782585998679982661306754560990136687290301823909617873069105413731645842478618906213727258763766487006490483481940603346588988326180768085987981013837806005717825658435106088894952007290118461087708760749686994771151313362484509576726715925428909111679159747517140217490878387257120167625082900638147519482323806546374064508121396788885135289930789269389036420863547920106580701003060703384539023404346686177081556928738600280230224147290623517321641385412550314085807009040698369123533075993228436871659032318361008649866875630832900726093292860775349728786264682847252175854084897652193952793157580988095529496809348195843098554249658527522266190318511923535372857882559217528434937638785772224610068384738719158349355470519089313556575138068023435053724923237768826603096681425638711928668361566105628507348502190893165531671097774469123955033330217877345599894141699312366340344645706662515571611296048902576105607680275278222305651116649774034603935613719045053755524270091575111953072836192073579684268247599419751014912190443726532660148448881077198975266758959451789630777057657271723106301400205960272784843014866055604832846152204571192116543106336550240181191823578138529447077990873481346585698462958478174390091755494172864589697946219658302175469456419849555502158891131871358236802411005071800631851764424066203172954901154980707468426377774979355493369702920367632786660830100904265961088532184556479936240136409321989472540801735090594166048731743496913322433719499668890676313259211260599275898480338843438376940137271788481690435814941753815731830446507332218680928659690505028377294957834428897417883274914672145830102902111573836952507572929431884600062319059586555421439390035104717062763518121505760657933774548949622329175271248496287364969679481894310450041659972268367098186988458609274270012886173681849532304311129348145255386346158581830649565384032599586967745585758119380046785489542922508273427020439392743451677783908937852308459973057349538692425537924531972355945576524827159814248219361219320003421672611080148250884070253320672829846974003748345058970601442386655332193151750259894372841623493726947073745273212865663449182258655438041748978344356923658729551860919166300714307425767023591339773632938606337905882250568293684966582717553724595456622888245246327815560658479564989381715278953447792871777359020210847061220768114807940799255425890014235448710165352993282185424118586098087960868084674978506383887948166443717820098007694582855369802312765028878411838062656354370495030162353098682560204105872341739136311382621903253701487462102492760573577307611820528399451901529551874049538407667992876221400245910665470155403162538087980476456280659272992461963105662343057922003856997542073279726205686587835701871692031834083476406102412648703348241331227615574820161445029562189905531410322129296624414083608120085463654204981698323575228751402222863219288135776178346513961594197324430001655412967293925386088626084817120185878952313903165905715524088526846375241270822583733425391914977934623464756528760372656608823875451138302008562924075062682116378332411072381579170870194503935590645349864559565400750077523824267754392770991860547100203980174373749307711497110673516189310532321686173245327357839309739872315395795792291297347536837385199612555262076165974959437011435283735050379398148992896966150473067782116580601741668726347497050254381318891355730009029146452726092723433982777025595020763813252217172347727567963832569762140119692098534921168942723821414170796611208617354602925260570878618942828374903621565739768645419503559438842828963743320845052796115668621933914141270530453883328143475231502390472427216208428644472608564777464888775187985930730633616302966202443844066806335333985085051718294117710254403886775821493314061365871531533262325079924873487170002354338388476327364826120187192803832192352242487185716304197172978685209970412274654582412028442943204653431661256999518993541398025632277477258516275704871421236976975454761845841988627882225258697579573388112477728541688857204679315683182289694095447192834033331697448151427270483825606748612199455045138957454410384685881288773333630054438486376785450945124223316362182375406785691329617291014447959781705131409044282032458270160254664779629799556989141391679174932555430363572040785318354331293820381396312723227547924453454195433911381379071361403728761140413889767177371606438007545113095389275295809664003369709581607373081274315725347759234692696108914577185019194501551974747677390505326165885450667745901599943080789367938366756046702783298632929588853475405241554818903693178617307633689549621006707408945252767878606535720669639903679390733406931875238754340795183778781577724439975388229200264151505180611238216622245390785268429305552797269964894964817081177378221133214614124036640376849857671958721127077862417539992449261977923077877377751856705840053292367038741501734263344451774236422078124904079075769589472665834419219654833575737311341845061908423085634397648456784143142443486319726616904661436290250668623020024339357487589362432247128064809892971859307236518172734972562525430622665819051671680063444305670680366900510782124204321435165374505544569239130397744310640197026564605926488996296870883541922737618846405083007023224079222154106009362639304114025868360528751901580636624092644821303304268416179094461693633996614048472144209897849529022938369951254537815263617441233176149434973279126034390238175749635830746608255150429466907569040135710634220553536844150472022122028036060438358387017591441284643738283877547285315531731248061331632527967394509385493690407628699403060100582037323187696820228621511893465627967274163225112432733616271009604512919874011043433139509013667694472499193399171827969929451459581218734322619461691192665070281765645298219224582000009468089133004083930790691111674523623782083764373571651784752137300244124990830768906543836675503513687468320338176441251258393583425461432522983602761152537398092314691648974781285180190033759984124898970257184170034853251148121277434707283448829176879044226313243948646656084357142155053050747854927597700614591387739408898718557168768411559299991172284058437512534774247213962892925271029241867709808061291673654779623753958904795958033995462469516423114113529653478545508446470448483349695282472200425097034417250570314158232298947662685018446599807977459075176741410236588474360126028199642181951206967528555431062147259099325216061661657214974229406316247700184664026476335503862596766285767656076320306609056009091692925768556415015094781799035216111088910250959667475453039561664414660752022023510440521804946067529237644859529638102516587210078445009078619526022698706236251733861139848534497551897426502466182329270910906329191060469308016346374040821531945981005141879720511757245355410115272236286086799290066491463715561946104037018306946319194346969471904371379408414766366597249859228753977419320032164145799487055301428880072024363844797478881169899164978199098306077489103951633022363146334688787284964577986668772309600004300105413671994691785837743448009379674399717748309617641316782199099240869632634649394585187779096569975429444458817349359822966352599334583946180073375597103739262714687017569790704860662578815930763109066346881022641160545232511625098252261131351757708500656661953061330357917072729190367900317424979910943848216890595764117126477261164043291297074774902196061216927414640996044994840179460771890856475877440449202269958319626291947253799588032798333074362052857402994190948645860280387030914883809345686300195721412012320899924712046397313527793216829247721352584685169842506784513661329546062032071444003037609347028182748242235571011467272350429191475418078758248460145766070445661778573205797150410281379336278661455813459625601318465979726354293082932558155500855091716839357850652811890938209161417530022723180365801048534584288456102574179555499102708614075328665516816606269179977499815880775313376012175088429418525492531579043484141036242949015241272227948053950230543298364607947675079101271475707971649876766422444182653521620495941815748943576957051466506148463926172686851565043518453778857227949127362739946843898822421809763421658718839004548362056125455062184609930729932340020982240725167606894102729361190329494340476941590888780389679987198626675004422824973880142135249482863938779206931113471340407644036568829234144232689983064857491058566174075471771917687040390822644631532180932007182616048341601181886559775315067998055595732515999549221929587988941974613646755358226724697150869232326876471903639900376054189971221446704907719916057985397777636298649854749989916306044125514384747851015405458631006972477220483326695366028861647118949872639471292023549422436299221236483849918652542110119213699016546096530550345402038588189594997116200302108532009618026805763489273661842266746832515429011492067561030784607160377069619972937003128953536998777840094932202090635664607814196436598214141474022999083051149398549363641417087034353592740437776000169406064117218697476780095161773506095920798838939099769999888894204391040789152317966578820375993466927115985585518744555487355925621140839543991978495589866995313733660530874423220087364106024791932654315382236638704411875108765194275332374141370609325385493428758259931736235585319973324346603878856845584917615866441227575077286605898579644329431596426054224888260951114806868086251316098958395222878294969204723478032741743592567886027987690549970831789242088733171872865485580653099393785561942399560550473109496436290594681461417493436388114794123002211342679952114545156871800665165979166063693262216281256152893923500829057833562970968047842328822494959955796620645691651444395465787307471344023117580825598172552655615556757722147330850245047454528279885508743437884433563133803666745999032153348478307478801978450380608391469421855623975548350568970486305953525877128901167349545244218439733623508356067017434143313309206937450665032469871485957635318346125324315626799286861477109256951084572738131569053471930591460017454345449259218480942446589096675361042810247759268006534179677194632838099930979758064953128138243771906790274644203305321533785273756661349881088968191133928763299135863773546939452902738807981391801983483235803819637995245935187570886029743077795738715439407004616865860724438227473801102881447277944879846569777126431309269418908721669045635169661651189481593518845843664135093095659669964717619972999796165397990786628767707785535099559003947201744016858970932470494019085435482946358607572222443143093942540412707788524032892284341627792356196417777341733466761252075230132823897655055589989372935400217072434257614366868542626353798611157744722188552553607608674085392159144152150819657021514424450866598462938986335355756444661655898139398921069294930866843786826574574945673967014590205652657703217419265225732616749734037205761655221797263611671559811191788447868242058826363542454529317997277698205091447518886172924419670184176395292816986999387591929615798611555001783847345341406145833442661162420086349761141146214876019579956825948990900972866280619407710209125242540220905232414379530959450078317388770062742979145308765713235883609068476838354176039683396118719129694884450493436419579654932392034667019045535467561022906537847429386189730391448839105975819174799202335429554234483138859886038915184655447951147357640549750719886916563609420752115714395423160784846856595320526902248868657495330447354192250913172855311984522293073515337439725090465917724600151180707423710416777216450846669633350797457388805157729918013516751113711898163619583453842250909879932063083493067162241596191195658958339831390902082051615040003978077571017750913230934270468804022711176035265470437474953626561305877166051575969059565662975219800079112113696562660120801019725344812162606165751151264745852925528419093211155264196401151752846060927805873593453140469327470081113214290869913409719605914576717600649196419590845539027598650166809515145991934782777028153458961179248721944893661925284400670102466078943988466517977716820661691854321946886907702562974074163985980801060942653367350079700786481784907516324265220107234207056218088631232893825220829045391038346675605749541017378762330585859865444412662228771959309244947991580880106197194712593022029322138751583839152995289625994229816643834008829151290210571856275879183517402998515903554527744340473145310792589678794604327680025065905424202116680850137387759257112041419011718785696719740441050511214784418663423144029497626895300173355296575855747877691770360318013085757740416465606009775941366902117460726319212115455196274847440535423856629201400764028378196267655180158097159411123883117250255651151692801864727529537333987875495137700158424701341514973751020060106161669176535684742419523517159036442780293907282569631063649745978136928338784975817946773651513212305920234976609489614743749593366503219082757600594484161395377346785986095612174580445118623186819380543991555458832429109141158358280906948473730339811779263750936987450559919350304820397147552518817554865671783390415857655114784738531699888409720260195206386288203985575193811366046407412114061308512547537750121041314642482035008433611598765685532082974617980549613101741086670776006272905281508529919875878377515541791696964666680024198383033572025005754406909351450945137983453746566673284437214411370817848705361510802747356069709234775830855182837377783449166572571890888664666370494368049049164236916321072553314991361090963490585587528085016084689759116250486285275541898525433335229798550104134416792745428294888537148022703271634090394073067742715580347552682471874399389877927923311096313159259328418871328683540059673466069672928010364766617727424259596690581623475514677863746826174250486255858008056887369715757411889930187951729281159382638095961560862647043831628058689196980396468261240381959032824084894482889161153328380326429774010225100490461117959816448925535525076982805527081557777378139075620814008271500380976941164166087636940751430429980208432720002682883305523279968904979375189665829343556012236776862142822296465744767677142735317792615289457609018901832544720273916835193736320501670833274992613222909867187657450280032340019937697608438612086797546698971857667119525148346314009054450678078953222900115847888743356239003572713867093175139306340503980738033831383013355194404894363136825296146515640738860945188222732635588263389682511590501178900934542705459425787747357775137328290857828659752759683405884577362886837295521089822809654695160934552855279114835312434501393547072223847311286596903707269924836498692292537659516597805733855440560658263414593238939791640974121103456401880477869485005680883789377450155002375153157701515097135038815216717490901832505486486371333312973822461234943287760910611717014669137029441876085918248982607589266010850496459150037222635610128002228932762748633126106066745453072053460245212004680064264834407219793606172812040478221365659332408370564839716476902829380138774830335351384551889025495164956164222036680211883993021971273103087562028249967024753420816002043869809512432096181968625264073005001822795926562762092359439650750468144183827236898377809414382496440063581561423926190199221357722034573047822926317671216144694285715137553221144665474004845906575739933774920100350631049292411786757420825724105109807769913647698918356048984516928607843751811151014275546050349060575530731835041613835814846232973638558401469543303375538454146025303096438166565188207790383291851781887895764745177612712075050614085044214310697202978327327922752986741235066538164539062403906614534760209441315716561224453631259546889158354771241128533998577569108025669319369727419346448734790463798592916890749465996701229069471068157949252846452737305130279555779535356374517496477324411161864481963251937384872392412075200788370865776558291105441353526177366312419037959991494562020153034918379490897081018671364330041188733873378682897532756852227042141480866042024834750452572441162729778252388283775751736533158475217159354903957661345006864331230362520853044544644880093096515632289617741484401576881153631923587170529472987921083087003226099559029042925279996556718433357862100530787229852045122272023228792238093429502533229720587323682188762366838165444512070602921372320953809110638989913669429577708033002951580254824576604968639462253904881528269679245088231380399896917023765008345309379778475625780498757509920766642197775873406177634414007290794287120620230529018418051655932092475404447943930102953910102446528395061737913773406307023653472281215530794010088774442595106103098382128884487589167336376100040095549190022108911153998239859772948163113733240259093943232267790903945352586620431243099116482307672623160898109383273988333073734981327009271674662050068358552504710239448320356201248148720041333244152646723395953603901647118142741240905671027235740595492136958899319964991122817719826948932248419485708056537468657499188457620025633780911389351437813360034880084845590276310389643265394015719454538195365434924034092836420724105644838417272528729596238279726269842107136734165928290436397900658095374277383843136837354257305903053467652920897391806097282071865599553941636018892081139981225595596669138386946154419344996832637236135855887848955613009477849329769557100056567551451809943615539580304076495522209164292574687096565381421876383258439293219828799856606650026803332836472697740371714776246410767090630875548716641928823736348875472930984282632427109070404418634153285565076378846344535802372327286867737064868459565795997793954730085975378734427973799557330357915091685804449271640910791764121880018484080227423527398141651039133594507922074652907898042683484165307775799310881931107077146544134901062753531823823271546598359146769757975028920197454632104006846249059711667841828138775023045799501585780931814782060556245414846334623052988145181284961218065956391618740187672828130703128585239293365328599771035813145238671213097096839221198932881640909134551580441788633432848276343728637923573593169660032170624996318735014806024897171154909180488361194043956735492655829192694198117700941254661602294469841629417518284272882853316227151579423110879246698581147373274682076034084363694759577484324726608704109272708063583644683752668219289794239530712658228573174047742474446133998400499517735368016833714827611922980023948434264832389088458166467645078971413716784424339494868310285962952162423089138995606120828721822242027060611467793282110855540922863219841683750690835078733969118851328547085582527152426828121655103780577109816623577993900152913329698829130937666281606503364790735533801563935320134566649743008605115259027304955015305516777888385781042046354879351487020292798381161979074440102789636033234934449457163231394024386781247595402254304020355410603336772583912866272274971051248945518297914858664180055778938829400106936824790578232189996614416973948728569987753206637107900420126786900711073221922980804404555533876271872734854188296125300148574289786703975649854820728375773375358749374668245696337643162754796700746325541482999353244240160209345441282459431994356824310867037440431564384617232688022129722539724418874587801080649661301399436765817089805790632702242494601496422868977435800585448076815205154171437370054589670543350759744185840513150058845805287455924136920940267667392411528844864290653225435986448668326069994172051421923149749941119034537781635673995219032716366749622145652160090004797662210188593612952774383349132737151291713005447087940620355706460024614515127917253446160364842318314633814130022279148951255227480556222093230613394037886199290348101366830380744279425371403109889903690185591466429790623649991277520754469466574753700404631166974273159869101234925299635462629238328530656249674407558735893666562474846978233146883964058900945047907989845858563331572396447542805504631057583591253520503912428435741971169733417477432764440268873056681264617412934961424721667650432594413308373091549502097807962325605238237752723275304980903423238763853127454379383308648390039271011144366640378666407546025534969924066822503964832275073020001385606564966193795153089608003028182529399935285056879273653838425691936966572169243473513133397065930584728200611541294508423403123494788692770909056339048091339303009367231323108164923542321767537755766661038394780431005633276108764432066184355911223239790996848665194800233599799466857806104320229361965067286037435242478413016540097527449718090302875610615449107439248471942781086576713495510664784343008384285008275271486027258217697898273857342538353942249179087069531815855192876322041073218642517294510677374526592119268592493741513131427860955142784532164549029226255962966070626878097622140436615917587062359605410153520379430381744462894104892501740506553740893843431932601714934102416804349913818536183487477458617093410080959477024388495872543473281260551565632934029835986535342589356312872619755169547155428255331876934172000712233943581611289262285582978818928605271224738488683678782471575074803710619374306456421178688426273039491885750169356004176117632320609564919766331796323982134494983891648110900925930539902429314264768144513714804413704021723038886653974679408204996459998185279609530943393382032800624260560165389680109854018148404272835004636196620507509814518063452031663433432699297908568767046057028136466109666292610480961897300971185046056562137333700477421616677919649388746200532478581781720509952042199037437515239548724737764359162716600521665554062551554225408640608597900747748987119034939829084786167770934577256463487583933318653548659799142078226191513291577126353026786286006458382345246077272459156783484626963070468773431048800801059380328284886910419422561540651001577220187895447660653140505211404547664315586867763271010590117886445003059214942750300264390165520147363989237557709548311449320858672007993239023365033322505461155852413426133762678955896209736580148618690921349103468101488399359922758199831777800530449590324675249932891778283075686849140896192032374933044303065123059669504695848784985243642390223159619029497788194907663509735019784364220168502602484096994842752666506815143538857812073452047650582194345234375628763399859166363134101944714183951641418399003661862539219523794154896551387717874300478923670593461010740827291417401264088676624779485541214073444000383772342203751392027735188273504261783302774472685502256446699458337805951661427184252329646221399466391719745338258544583640718661116497147814775233105924327431650969241371038394702997079397613813459524447394359430641376983151128395206226424474597386051373936601205208936243851842254157122541638892737664187953807286302028982501200642730160810151728022855214734492009757439389122645747301762704998049221512820470728023622621014544959782153007668932819148773960178058357195304844016376169077763229642265473919306389746753387103781616881649401704672639446882980132611718565753148923777269564204098004183876788672402223882067159414257107921003148851504798465372374917416936636515592192020703456067467527357163645582441476484251968275427301362109822361472234789889559893117224591640564900942976820604692106905030328370403912891566910853648329660479420492178755969373883012894043217642771137431938979544678889884724942972122547795067025004655652869084149521113558824459755529643702042321322140140217641949423125285259683852228772526623081559826882253783756448072743134149172887445510945774605786892119411831143108306033357894415950981243797943263844453275925455621732805582375552964484546042887880963932267236573841379031074168452399088936988855157922873267153989509053778963472997164630247934201589410154896177770992824729271807038959027253392604395466307241241765675775597462451639070063034325379922194233093263241922793815808439650418633513522238725310547273868499609809967445043393062334235722009593043181628675839325406147137145388396286497724395920549424190514016838727610818970426003152802644739118780244516116463075392945793403592488006093697575521436772942037514501059828227669682527640658176780814785995437100061575445073444812227164188138191276780227011319635875393128267441093858794768541938177984997898982804182180252834025686646863749252310121439317565734706769912361362574024391564253685205039226821390414998937750296312484234477248125850158324321940454173704313118727674072026018823911235090799563250105677701300011379232663037030331557454205234387346456168208077096955296302092536494977983420433724973339504250376983665554961181679320845497165284101795295400029689659440750237670937838555480734459770115350907513536436377724797269163243928304705335098449919410969881854515388917638812531740242013996072850571437413726006253265598237124655297442662005654112234412877116537810689615460347927400178503899022918767699331995737089426893627565543668931726492572347762938531182874017841651453457712123125006341471192434609340077881253281701446959996169551770654969114048259790338519510653748896506968640465563519624130590194368291262788328571077798146408884988792313944856143751250331961789575408112709388345685655201250013412077801103675950079177416284403765271773660053883689067721072882189181858090143612152526535059812592445790791258248811106809559187392159547475307238461143808847723753078354748074873826876843570056521086825210661555765216875609692344749844359046837911923131595024705159123257132215811387729796036172916239629271420556162815283107926189039335251168008329713502884019137025763452861254052460668397732353055539215211785540439521185242872050281607485634864452426531087325723706946106416000630390028693370069505200299356908760458262167157498817866741867083102923769036058683942231883939132971536211632340930435324807095851070577052963133768574575183809650868376090808515517279895138842795211137968298929608106900421271983136255074986465897974168010660415376254301993879608972786103988306590662755235924212436275758876432791018100569152611317068777143086368603901592954000001296707266049805466095637768505998001855770696779054246995762758235492938768557955417043922618463552483091803078110654296170350352574851732161622532826417007815594137951426593051244675226986906042490414940978840192895371278516772428541934741349181603014462179141866043194961906933856874515441287152612894456249871453285437025162863572833865469619372827423957433223009960971081231999926000186251086992122600699879867275560233034944575940772098325804633505456649592930786269979325371946142082824163933309329625354968375537992429525450674881578476251581022585287771038334935318907227838868111802871434851630815351667924145799115667038744068246928911435769990823606028033716941580607088547515293058502711068826355970225300231497486748830349577335281408601535027783766205140693846463704706723589283686172002549223370321276855690036956251521797836256198158198363895487450948993063404036935280728058638419463966223153136280584901221185276379455139998736108822297286561084865564590852516085324817292340534622151338900228525237937965905088167134064869386434167227546820664372322505902453164294230016229449892225921250494668952139137132545857484942129912021867498319906937138573032533137184492875407482029819670826376788656845011215003918060373931678148755366983160032553177288060239314676572105556804501889870597026189280638726673253985098403435945125305465178791740127780717520314979003819337895967271504425303648489177968496703309880853184781309116068709903186966187135345919815983509763579376691282057482643748336671457234953361324366096376381357349686256819038421458582004184029463872968830274259660396305163828415484383002844644326517010890632934035266216420918995167061734402112991429743050405951134649326014474547110615998829966481095204095718000455241401473325420464083906442075922804098909706939019301479172341721942451494259189405543559079254784919952023715296761289638501785814192817008006394160131254454080912469498249714163556117145546492929701312414589506727593061199839500995125773656546201789238253519475917607061103147467045694498495665194611017687290892246726831451446972888949948262319004387712390297716191510978567676829624755183010516795897769413616189606031319353334568942282140757858187115667174845993722176417045309743351847435427553611463783107019038590598249273342874873527103565895871224366004128764829822312417244663080933224068475021000310080299500123931525938889888506405861225073861955830521080270351276767188127143637341297370577029996727108031120308049070919442370645342160364653431081305557526928963659888643258447097362954774101269771216110546429943954296839405508443966831019224303289945050961434896197765566181371088979330999691426133110624155435326034683719433979012897802321663468465528527484893057818275110506741048849953891124905544790382956772598215443800094692830394700337636958172027855990601865893245194421614699077025909507012320123859556697632512641253710165448864957933431497084658279696396231356015444560619452405025626165807084851022061729699551990712815861424506904874505535323407841830527160103056932736750657577810703773716952828482269922067040085086086886907485972913736856214895351711843579996987217890768563061745102025841028672833727527200047858000797939192386629208883612108093198634943781371612374931029212617830444538514920664889100468991228942604834344511860885552609545677524577621756847739186571401185252086550864478184839833764738326289976483707355786259943999401156240632662953639945508832466531903143389549051273161658854810313238364276501359821521543335485191356715980916260244646954044301792158520038246668025229128765019969900618132710581802732348407403513219531959372761543305334525044722701668663294583006632111455301234256081401207050566687786694728480790223021989241213444681951655898198392531313232657600892188602703524866336470180343680455610482893290923639075497197612843747800722274141019479557276017327959175311207560692190393815329617512806104878447912250244293928167913644184290437693781491265975174249674028505151854170099324149876662137025351854693004637898833902177517775890823948856401084774046255251485214623588847699099314747822994131257651799368452444816218017583318066467670870448409887237820657841954727891293678138819260633901650060203735281601163807834694560543527475000366480881026330439415934039649603377088529868528576212916013658831954679296258438029770565604000936285681139885157095686402018810762500794064689900988896240401720147298189911119032893412951874707740195922441719094155986219367849161585269965416100546557548993087874355149202290143485405530814489800026049560329125764155739194107867889864743569232818763062929829193897110684120845244041064083503579105170736818336689409717226379848852154225158254794190427935462173706943159931304695509922464418602825336050824625963204208186776097660318972146362774345089732890856199383705661540301108893873200135106800217706776493556631684062025771616813444810649804163080174765289071062973965344969214730779006254941826194937490305849346856348216289443577590204586917177230653049237923753666617096373962964439432650963152753062534471677584431745093833381352092621733820358771934303282932388927007005886400358275013657644495730110820295678958378436110271513498632107013113290109370401043037862258457848550118489538266928340122255815353119360550820664764367231128981566385896959124698978109885805611176861819174258408999905353942865178688622870597969187430515208117489746745835776752282297526388987642250846234804915784406349575337943481765190637145243302371868061647576720001487932514884535140071882534793582745629609243598049566025973741341734319034276661563760633711436016429958000560594602676718068260986358240584976934570490772868762533633907536283963544914172155376972136841351825112880606504577105447167217881171797747790266389909304357916072538558089516632894854888055382626515859022112134648829687611841265399776052574706119179012501484980992932692338398560759100680638595699282160012913865155098532186395077269562746313156756872683175089200479474294089386541599045805848663926980492818215034279728982451966225677014295168875587323351373175286244732669102063541811835476726975191748809788057565084150796368467252756054185833229132575863584962227123485369550808968316645404968329845318655587516425423692570225429806840268602459135341192193835903270260710835599741106482337767401909889309647637201672325536943883941157745480934984519784452917627354458066586695598964831154029641544864664025688620639838238921428465599997590592699857930562619678444971880639666870330478797813186293149610250378436797254579195636890642121865991697693548676664169804257721287164658880924226425430784153391412713764173622142969108769690331941367795039755149031612253249775788363489123352964954202924894932431264028218941024717789510967534864335777570268141350115453788845577665085026408091121924672229743425650972953683254978509550902755400821540418887853767492856318272732596772030479423874204127860641847561074760625938373179845451317978921565597702137494386584727755512541761580673553363113434852783019699806339622202049152854901916249425899250355474050440181068923012579602745481200578263955133226705403146522296727666630115425580465777201751336587190400742374300137444894286434887848352037900721845616340477452306168961902882162370340396940188273376700862114101934572247136093217989441084159192146808034562920165967314391055433987833681271099680182394393290682393053635289020765243757808683422090713346290439782795114537544308821156445003967423985427268799844516140748270253668022892536272610848437605559704786136862851492471091289427211164837771385920993784690192409388113776145817377961636147093859933986217303163999831972143600892359722816944285300023358738980511019291962808139686134403517349795226219115998720163723371750073501722265914743750077639503929191559439429458484863633749172689285654430597930252582250115637989999289333911971433552132903758507270624761996517750144640010554686872975507512144463745563354773896982662913276212453267735628690462953288010974972848282393979597402209924285823617138561137314170684573897468747735937759723996854948770454839018446124102917539516615941306072548385477938727681477317328209715338043673614537354562382783025681189768884845401870325559763655903792391715549718686336485231450835548979125512598100728917570055181913255832309313708049485588094394126496532463500046169841474745981416127412961069850021489285721237262567785315080305117623537356835236019708431795784547622832081709439530983672716055410678850206910077663168213342194107707180528437415492788891281678082346835645691092081331114980114817030031668871637161794432304288119464597892074010342196050833291660587980046663651939169612859228788531290983409703830626267423789667659470247360496439992960339580170452510322598062433977466709674305378744491358764687203799017683765784649665096601280409570511796779689389438634084912320591229903089796655668765443663336566453601431246224018005735240305394829919375515862522468972761606502464065234156899983833674954109803625072775792138223869569502367049520807738358836188532242138821631293790974086364452668833744752319707455560455310203124790470438321490759495607677708040513334684816515492926352119371476298741625888704185630813067824829965535191890942222729831015256716253233609762199216152690106947193065635851885098495747375680966941256394296531722388515220698498632315292354697687969173581801549037885437728673015065057788935977842459809315393923326734769572464061502625627086913459197258440283851407184615455099848864383930046297827307316044688944450860748465131486414366857972263850063156343458134647526851034238570247251214035502874325016516648802826292842364927272296774988193398410553591135381582662250363564028097934396316799880685577043915315397921677590068959517955197859218469204869150024369474906607289815263145990235669809748856403065522652164110721022244582724520652393456270787500053076571274200558234267382669126479025783335648489824303977854328539462089450921537469137087163626283589989829490944935801150732564437311087300743297983445967751370600671463438213405199636420013809303759973093808412702392410935520600189169701025539423346332387454062174515913632161659375792286420975167806454212362453451658295298209397617245483120542909610862037769369696617816881157096498007860731723960776517713968010122844194485360248781715842968518019037688705613384713422849255203880845735194921647935866800374349413218264410980154026350609412653929484784940080384594438565955528787489453983486777503782514073589638085986369624661567426332772469930818011606944533753443277668655028879661117836568463700419663733561120661619138786121145256734040103610530425166705112073418554903963315815215641948745428796312241888194803784086045237883545453446046872884383160266431189626093349986925099188330249435227892550997929036312399891789380390396879161661627841825027926480858938963376729089005066020796440451831511508136795125927214894116398204373653100976874305916464987594667332616713556114997724671096651156289128452945583139467763396014260268281121430845196789823151661955644793568828227181959733334025983086383747384328922259418097031857805960966860079209237728449239973968735230782603951148116930422829419712367622350579065548111827459268832618808864292712011974078024627535809329726765971960628529378013509733341889466847469181402877940704265601636173614584674641806528470878776008251331443035379702483822638935652125435146543296517549454900821779943200398888142794014753025800732729260574871833143673727481516261946847706894324703197486695311586790403871036178370593672779679994420069996137477437070911014053048715426779114234591829127598071541083712123127282104249011304157242627052826318677102854896439581433331617728086474498496777253329873258071866190615434757836904345222486868805316107842431036123628691686922544662189128404617238827813252075700555789024518841879398102122808557359586348664578793339400718411259104485747655050610810359055944259408484140437284541292208015772782318235955286067860151661338810075012485382326181767876065723764198165343342571127231851885268207032115816354244253513235856856977230902246365714948927784874079624950497024376983412023780326747810407757983564406259441462328918484837294219859773146815720456007127909455253166881310050987308601972870107109468609769259589589282584615725401632982673559916320986108830570147970615617959571454371615509806529994186567329553585713642445942832391191811319644809974810304140453960661759145411954274702092602187795510812284546997455657239035677610016269528888119409363678179544977953513902966365623646392662071752260594450444241574656298335099517904391359371606871827698871862689084663854455967561995200434021836272607296483392366655286810512134284309617434045354383812662146915966194828003910730563485134800545921084671304485442442615350129681811926378126952584929372496786148353498718483715272722997823498482253705982772751902905161894372262826446241346045856342970118272935748415088925358795220758836637531918373400919888247309353729646690291733252686994387666645026398695363343118689883190048008548109324886847456455868283132122989797392184058643877821800187715163637589061714752924420687172216505410989101032915982135760942502843690184688689978349728476601321325781594605866041217628298727952016734790689805293003007097789636159368318654081007672540975168112043311079678442863965436195052734428708696279484790210254039190422779787373426852832001659867462149053109397852565544059186349987732714391641911747956790496253878787754751948952010964197362767930669542810371224871969037962105939581765198770924966274295897256790045406481395677993151034355696596773312554076365211928040473532863377667685644630615694547320299682197434658651951664469093153536469979591033664880658584617240927175669398201916275564816177121105021651484241245353425695939122556388848671010251751442398811236500624422686835766508221839524986613943025607245696668489351354436272424465181403457876398180876406776391016618839278346500590638905539829957942469924174903453102679221203447038306020902984134853253969796935778087521599557285935964367648752612094096735461777200058748103197642371410152773024715444342819542904668182885824427110918629263051647879967454063399750585211071310063609000046475234917081106023302997101892343552601240532975515264994691151295246285770610174483101413582546738688830935522026291808483705851746346880787194301109952270663507370556452803845076879751144784863853647481049361241521884992090980515991280190922827430463232751431627688183580989983294107497045586436109622860256734710273962271500923728241405150511642691335595834375227643611954297244780276277671018404059986863783723296830780424068470869501846431134503473272928456903845019970146750366746157269396731053317710134309813900040382354214340257315525772202337202053800012279873735863521060397249062340637935717504786759056980038940852031301816514271213540443441210346548027454787324061024761300488241010965482019216535614681824437472048436001910895155488887762744799478385140489167711251444189450448544594308390220309599344491788863252392916429304259792399142952378358430210226370968541094700625926378603916602455055553224140029931606957990230724892186905409969842542576723096849244788490934693264175898656478361183075494634801464443859639912711974124644785851362996902316154387295778687566007717217762835537221129249622850343385057457866021600243051742007386246034077846154633122685009262739436302875127438184627332917109318049182490100495044539964507837362409905514549138650355136162582058492429433047094894279183850528796497307308056672757102321435248588922644378286361561393975411528149062406605585537962642908095741619863342303207695746991230953621049920233718253106667871467054097616421457673773232280119372225557555038831942808064252879258927468147473918801220958643582533047412399187075094770896548973271374291758632625446076883979759493056363861291574636653849649678840602456889816407002737533462273676286901887868540809108034088403108721628249805819754679020725154025908818281215984299644415263262934075645057328478221072696986806168323192471193209428252222290266168167993800307425860927784151792537281698921563316722724321776739083744454995214055085189071147550205420870607682349667853483490751901524113297634004782849267094472203133953882516513821347864728142011734736371349033923330126394446327284691165167524438865217360079685017819513065776659858576760385823837419107617471399979108287306805338390102949458647350787597769388755525706970409891398392634271260024576035097449526241297462532035634091213948379044251659208051456991066377515607658477426430450512678260832568968836241954752047489190936273786587824775538133959121443081439625369348674060742526678430072194293963470779280153131908881681018606558413869804870077208396875974358376833015566022366673201238972627952309741137562464782075333830351220424810168306564113391013309006933556532500076806233187950325125473129299589014477754533527905728527479300298879505109935712745457027401228516876174832813306669277149713208654615251809094174708874384642520170399222707957882780044997581321308615376668029620591256423226470329863754719584231507620354088257421959988438244428855945096044555817894382252654189503859488699906375475326826186812920710952111992133368235281753467272012434516416064322140213257462203178346968219992058009946366683370923925505159749123830491214775677466323996512284962019556734562569691680112276017169086301299136206663562713871048089915537355468332092177082177777923817293160092759179124070732729335833516850908576959187090743801725710035038544448290702341483748528345256219323263891569571418977330670492731403161775841871679413407851116301887767507581182338741938924354950672499920761409111659573622514389869296172814539341661910559812476258245402562218481903049642850816664536557944433457516019480925579595760068807181633030270934056680110893093895276312903956303887331592438342701710716344483600745216440832709953655630216980930085167934986946408744448647081662227406240501584442919531353648450600649539286661222719764140060601500438310804272736942256844016662698195030296107299850358321471637692409275206676928939530106085028716670524502838374885162577609642018088556278843455263916877538576193037780423767829851499112027015583051034657872384411674970836990675301775262462365041608930428549658318004820552579918329749176251237829580446192722107093375627299506808131016378454546738542534258507953065224583968154843703152832203316200493107981270737237150337669303802507468522150351977951213107463430052702939575398562766213713196267692935103793941246788046469191945708002920144434250547838052850500237916753679141753251908993851281213655509331449400930003719803724975441106620402609121049357554745481000900099982739355701994142612409502777405771859832056035790615156378653968214595777654225777390096594314323821466644177919027479915798055078914071754260566539618473787342610952050533551901145011020049903733196588194870363679959221566921229972728813841112334857459937485669537415923574238862841483636039351069012327972154726253858838595440672623251710726718704653928220911130921258279596833394826335549981167033875655387632071034685425771715237469589058077849030469711325550375604745640876251103666327162086876545196075615684990594982793395689042571744677168345817414674981341486793765000783695070849208610374867074383498720587409658791495833635323289281091694974628412231360155436374890589800249103400224059002464757780980888173296009557123032648384689123839786371828209779685839314674907185417783296493074995152564795114378087695664703757374874523379946449803454032103048118604356606507428256921422494387034623951292241299337726445614823764491949070732089943932650747931894389008294752398469842250782506794755721452167516358954398299560605648307993620656399876730410505232784570587530019819767234054029707554334995151023133459535329017788104522300365510877787492549523869477745867427782004900483097469394655575988954444979193858344621921615569930474761074965895169638753062962286863039667689279016535525707414563614362901406316143575694885931478724181312857899005373358058751421640480688333777656063410337438816153478405974371842609458960700754238290780756352248919207499118726876706569993755775018572735784455657962291271627463662471089400540188381609072769984875144696872576453300395658648529649578311620981301412953022337789652369014114030620116879716739546792382748609415576504612503208537294451126106937173526665121734412141451387507687847097915854860535179190215963656622827363421935814390390207512811327729265024870370714860134837515186482754403992583919736391993554199409185638933501315374260821493463403150121194772737649935319954498751903312666249639376203689455166630229431205450535561218233176632141085624804289842499982152665603146092258666465672279442495188534201390970013169692106708069688814046144326461074433753234338650788771166203985602622494833129896889109617529191116119360222355017587265746091453523459618075476565246491887962032312033055993051117668834203403076169822918846318824870995651552249048897905560726372504147756378757854355930370174891592097534346043836865119480924359784095233378932002119215514638364319968072673528959490013428951218231937303343224998570103289265016083273106106230616777144886138735235407905872208630020570366098231268907934397857455614667365903242928099215209617635287661153036524636347733041306310407643759273127367136334555297510155601616167888730620378872880425804921403498925565942194131786814501319210079781835743487908982141334290862490157765143338031574176127135917058232123664047504782318470144397787166951241161505005948981547161069713639126642267809271934776262763932164749021324986712893813546747885331267616555303206181115367652628583190438929122324074690858443503328320624527497670305133907799505020790028764866817568082612870197249812498729500036339201515152485863202528175096001742640515315446042531045091102305275265970264004472256707891829733018414412036593124239348924676635830950750435853571368643782971450051460055792572156662050874706625112572965090476549628660683627801574991171170714117576470776010273245511898476460792954313392225002558951989636798240615698539342223547610491693697950362697719829580654548782960288805612553231598843467721511194482384473452910900745556834711789518082708825078613074657842955634804861319606251042030133929159377091504030951944257064239099699819922391037788545789340977439804268532360666105900460109835493301276922238920409734819996062845522605470951432842106567573697152575910204744317774550135146212674163970948318674278772010189620675845003859397650873680629447943874194345844344712603665765661557649152070842742423683115471611923443869070203418711380938548297112818793698127694198489659563983728147372438974414525151680917933417398259061752648595457797902753628791783345558497793147735407812055096430133675666023489105387163103670762798314843172069899000634588624786116793786478763658149168016971180954005529312155956679534672600637268889955197092104317329235069044031016354990739209803051393307787148396717627317819256541601245304203402673580089719353652337948744085700017030985563078913508867941896490304906802732891604217522229267293691378062706394098470730134216500465324685910176356017652594128239828590048453044001480677019943332564100822502260308709410461925482741109263789675345612314358171093305766220060776370127967142651610568116271084793534137328679648274934715366597322879655738843812146401271566203294953850875819941501178302149437059467659575266174871246978132906228183115393608362325343492153798149142073802509861648091968226651417550596718481468984565985560342853594416085367042478832899744511924981542116336709638728256613754015132954983848235894309276262516930425204231235609327084690017673643260050849416316153930340437367764148587048674203883122207877909130278785406618019963527895201675160380079388734947648567004069150178762248995835552413005151742600410419547746461958602222834927654521286149168078263742269872961072213652884834638685463843818614818900617304763969566527965876715756378592165200327776723396863976736459333925084476355151884853048280252879294278426553985648870857528746888540601866021383123926382428948165691966947170546742745035806105014968280984854649171543304743550258340036993685843611951787815445379773031265798941216992485178238615799449568834412928252042125358955135799850222950469616477303454611778453895436521669119826100809159893722476978867359330742775631160445386639016506072383883316399469493886147675059410187107167729514769735208491029039155601116826828986942924024932253624334966410043889234306910811457368910729905264855621514726347941638529031989012307404323346472268988219162338641749188655613266550085577624060080128612625715155059285220201335254720376600174758568377080822023931823083009305658757962930632244199143567177321637145779102516252973705450013384349244816933299713711336074587157291635683577444362770603324330174577657316156382055294676934959606369053014251784110136367453192349938131915364298546723619187622706716843663753284532583629135674683130514662354069962362702784855010080868013815063100583980900424694621254397255038841330006449446834149934151694255848313235501626685408487751755246140120176668307929080881171369384071945165394184897295020500021485599660652451624193051663250417231062853415959827543440465744705017405655568594264273411775021066908468174752605158638534250820458669382690218687492681434696868948083934803177069747607180259480187678935862815419557012451406210780235770686623918341919542536415937396936347884765637788130115588871140547052990138140291504127855366323695586827520798084727542973358027614273179299669208101358140215844419818016678422685894200079391602917249540156774372916896315366195297460349488996804254689284633610826353917277477337585574485743881814842952712839962246688249273485042675016777061185434910134078684500049775616112087468245674955965880466848562593822944377477879855964631178896709457229232164101073083022318164732021549897635418412879378564491269636078507082347523065627939620514504888760164800669166613977951069188088099536534715182033669768762174886701929024191006313418868462579450109337652444936985654465361829309222748043980809887462982978454142057834856011327108574583413196169544090125828083312400944689299694520329903196227372901479205478292952243307989341545794215066798297391930410511386955929881392002078681543132335584014948855427945511160357373180635024871464533173448114564952034195897122574770139368830294939777468824781811036848573922199389284522639336076255541622031273851763452592192940212071989490622343550935797022440470198428598754497024667925190391526383965329799159834394110902223909348638092549005205656184024297889814534808329343033493882092028510988013082911657759437071725752558407330775772957707987129288908589228987353560082822839442179937060559618026248836861947479362395364569710239864937234552538096424120074173361734549398718997303293558251054297401398292271772256354657093135750668884192732371995737161746199815731555945082707799490213397742558446953948511156128849492076574056721737388033581788440090853555385570920565558795793684970194038156526045471554843797415355305486077638238348732815513081922289807008201050025416155139926093338706681553127524078976737390345193164976687915723874605000844630447253435067537904367432967663938793370336277044858413516630293757118817242926209377088733838486229044133077636058380945099634858211110227149161365465608396045629372828452799338640174382481766843239454424891931970651967854781717938387239685576030619956412862029093108034323110577458462061923564949619678356483028407047187538576415324448711963168547994081174890475434278462869123003719710654484882108043627901064303997671969872763090827427397038468883931779398476458162555950437239521081521291857816026280048971679203153921397034483371211058425931382777937926880819564241887725765228886980419540800200377236247359717057327834697882645247835222650012213609696658567193540745937753054918381491657733339391328370024123123593934453230575958954594181884321867264765239118378628967817941714535861507189042042817406811067638939392982989814323506454762030083987006772698526696838403138350609612804483662316083640957096236691224833438478542078468088586744305789476483299756419755619839010728625240536397658107733746106282111624972676773657274685535617996026134937293788773086957462828213324632650715520995345614115012683867440402853004140601647138557877202485090001764281153848769848337560957373786006831819101067394132951337262654064203082456864631389770989215994383549200749104217534585445466809543649112709846664887595305311987262618285395862762272487008433689579140638690818310249188601251172444911310675239123759006361437095259448196954133462718054395864960050686572298528976199334284673708124041496847420539237688335820824296558296747112964853673663020004269766713492215138906177163631819824530640468836836784731251551598368681684786792649888081277916963638192340478702226362309723340913264017826962796120045295496967829048324073627650107068802177588993496936655457087951396767795383901797875177275727381594222985031385917434989959309681358341358888062555305105965676470643952458382181176556194479687950041204266091846917909779574052556104697629728673014814221969666688202731900747650985593855304914194641656036095733337779636951661051945049712582013191599279341992142115303164806953394211969489483182459047252498740229789168576148770737333790676602682984744572177645729802228634330414708242416108934048429856522482915868865729403882413065561395084953565566435404729695340141489714338524622699659560613586546624495260077965563887685576544582220664641395840265073562888949870763939070533055174130099649795489062015439353466304123729441339123996148119582372573458863477473847067656989354895701139034912977783556805059422056443945456086625338772674598040667079014850965364089086090390552219308638219911231332502041405306769650790843760393379150135089269183469547668022441886337463714569045781937928135530432268827709883559786516206845914340776105758474316392141457068063210456698802226447200499933009915002265451057348714705357257225378863322078392310188188070556623982915509875521983091090742331890309466265388208694388531973676058814083958501332460523262761779739328002353749105699053667377106045401208832797110880407266217348105921542038439354961954995683158651355900299342309964233346624959497362017601726579148963032709136882787515069059825456234832679358245957113131512892079391290821912434444275116299329846148697473538764147020213898767657201578341606154718202440571362781879391002905628074032115506524657790624931886892914994000688401535793499907555268883789053903556987306395159868797208572072659854638319036490595902915724785232116303907604826347371594385937258392043963406028421094643850407457497066279925601261510818046979016163516203742852828836928067162851171918275709025104773665645079825858815014135289751559867217984127819664854265756485785579874264712765373578675718256692633248181172272993834618046062332254383485917153243441125553893619375995139936643623605997024897632639441735438189999390403852789071108983291685278716645938241051102115796403632151464014774766546420183526408331476197035683862271173637016249170080161084270511151952263454147380410254267053136008628405139926289476416557270634706484119331614408852670103063475086792559869988902604127227510117950658625684908026435293014525325911141984265201679483311840869300451814021481576844908314233380885801281081009357074507430164010158899232946472986051387149740578259858638988698722276367215260919970576091862636508874260287569514851489082585814445433505442628497331426088837620886601427566838798205799243840735184347745306505299989096786106373181704556713618823208055784730368333134841232633307479868706770694688843748348928825143357655495149005355450831976262316008507280577706908364855146262073557484792771526393870414060192204250562857347980928337398290769624212453397529655579530914910555894088115910773155541901323252018344776122167392675826902298041212910018199878688695181213937615108893463413595247092839452487295086004351340200592833268374764947884883007892092845030570170585346439474890215991478961812805533884324664391674764914413303827740489230744915451987270735128581637727299434160625577944623674821988006939897793994722291732399384882844179969844335591083431609272578077698287957297142124152285441225099423456066664893836090368397269169218027680925919581567324368764985992389600416168950113667021724706119758103797174832502076986685560940155650691140655271626857663085025930491760122091824061779852067553374301157013413958752864596999641244774129071187545117443333753019545202428026109411947748366420627360219515890625010469922211706854062096531349961647767261897804819390818870609799746872102149439944648248751347736104818360866672504963189488446411592594428989792341131820255371494447835770613408468845191263544936120408333929759351023922628109680727098193610991121028855573273627940748349454376304418977822816267341389196211841642095934808566383928365516545827271815097517522835812776526074492249629251140452782376518890841722109672063126346516132475328330525873205430257492406534221622070337496039264889605809691523399585230429004179349019953496724009380690660790862458874860243883045869466721951301865172054544278310275341693312457810117132181259855356822791151041294462309885249320162644254682243578305649077764474852066828893033525591818673853141125302802931195756171287687498654172620391128488234297593377848536869315450498744772498173312563144305544935515813786068748564190187807778568063923490881972583828928754384713802129831939634332659721923604337796871435798046416858326545767690230054839378776110252262619785483693188691967723241240396074381913692633049188288252911695440845495186831686062698168777819983237936109812001327894392674747797091454979945613575303933020699335694443883763816184385792152681340732357577028431190655689775260682675203852703330846251419679029991593902348682597590422636363010252623485505142195046569286769710902246262503596379180769476708276502123984145711680216574797866979338176273542697401860659915635206831813659286866300269908940808184218801387091559836067391595297957299602045882430846164377667165042419305465383035047716364188992656970749376602784927378412739759933171467506937498276415864631546364882342681548214318045852320812084796753024708766726878278843562820557168512929176040848552368748751267507359455395284177207882569701280132805440858497232326543725658603336182116301674985185773270715158475236798463305574579775393221541174633032226722954138093959666768630354209217060202985458450408203364153742060261290604330571985120817978866197563364964481395532401747610240029959173384971794175825706625530768004121774284128823862442060849501188747759791851149147843480995815743659175566910728742124501759975774318033792659217950165185374647002054608045794240194049023226308259541842262818452549696542089079982249106294032744789793373173980415092936471256935851986682732824042304213332138196601058483203509519102772915407075273347772342554676877075686258745529704307072664601423301891186665892824151080512181450104887842586464922976247862081338313650172505422063682237948849677402748678139895339138938037158342609918732764955245361676697797468975996045508066249989229741770068517066474510129248913346762656695587412512086387592665557624190969926785566887476301413678512844008093844442929439878071240577924739866567330041325897369231123842482278200469378315855507923698359858926720128789846320401492699237888150014613272399407232273966557540054487001459842554344382666424135232465710564526314227876479835081305120474448551100108936920438944985049927048500757550496960242081867768487864285381117792690532447839328126849409811356031303395538095010001503485413899484054590598198865030388517352979933113581365603151423571747186282089184400447767570610570137329122788439489122649363970364434288884510710480626924395096143708519340959397919071728880430304425800721080332727197227090724630157174841698284132833245110865968984578981393506577237525781706830081879318607499007287121058964926063853080954300435498920807209354920309895265534729494223225241361292809050657830719565186469456413053272598707455951379387607347311917728686605369610009160214241378521947651684245950680007762638525311585969128965410514297203140626760654127443552683303781940598827239866608591544982440808140875268771946715011415859225189924621785029564508902909828681552644568736461527759198340804112689424464803286781554753615300429523670943837137232941082196162682987990508924886428466092958440528371803428052501939325726767492084121876937135010143774859674445917885166775330149519050470557839858261644349374192749697619341424572926695408271241838229753608137294032331058711713408295082436310687536254233693882965435471596775770734192252806935972003498106868851289168241343699568530281935596404322378548311999524026989245703160466029910205305343942859816185408907816694701202912441789667368898862630150859752433586817066392651701545092017666145333192945794469163126972941404571544962382506602549219281314864978491095091267729594885941047647347561250072927118469464415868973671554014406534493492772906774028898223952841455118870861378653822811224948348998139772083304294988779177681520799648070494116161784967490044213456928046142422289082474574452415224238717453972992031560067457847305272350008645017460093732642761560494222334800854950587600240651284055062533010959554260385558264082011120654978653869228052781979493983051336553607806192577020095285910488173189834351775706091109387225716433449303920226063023942538766946910835034862360679979149133352337978596689900908405076716294354044185784890417552625657108239496781762175649430858451569800341645096349579345019259690671018999278938305248528130074567431900081551126856798443483158314320484205210607492273133936433964062986651429857240464023916971308348141468848159124582132073034214194965265505535601163601472424161368457334257170607793820106877383665620013764573580166741131203779139235657074799494109999361656432684314143667568070619031284172034811158322995340731058550361296245202085010629166576191703464399185190466034517575841934052099028463392057249404079575683719461750247305511161114651540833887895899237745278441618209404747209811532190947440372313462110796885518922908653055005464542029769647516417097427722872275217818619465540277277736138956137321193258757556011929859126881003702327359669162747896878786906920776361653715821585836100056744457601257385871058751911546230935514582302414054737504837997575401439676059578854225987298630415543225833732926948217051571722928939882201701559092550263398310226179135341340062566467130710344471445414058331327100747296360071007308691090678964404129051355133429929448617390176439322086475615979068623648716226938419329679251378139347537382394258643624743848506338336192094109876558955279205451496290224890639444520534055950137930281252085007707565155561024994478176733060736594390882799868725369204313526959658991262835421395238000752471355472870193809911887180896331406344183246034480938232000645035941846287530416607883019945933472917660684550644501089844977044807252906111330190941090637283824039162266804843413935035311129352206621450496871306610086549369753272518382590340741909225491135561607795647410765559217501391892524248733315400588756390784716790879161286921603037379725335465872461904241288724488261652238005049449455273897568278743716463488986919872305962745063556834421403234915996869159099536108810079108712591336715292374990824443554199183272236691845247781881533862184155585172330371729529301914668888275394718538513226923713417025133011883287228555650891351588543880769020125781373882537624425907317852303620565825961170626437184595495873467992366885140690508518676496232720701202394146277888059556672868236992182791326917480748455486404106934351417298610052366761992174786577449075046435580746393856355210791039000612776017059693837380518677916947839865241629762494490149916086412114971297183666298527134343866908656885587008923317489509886642381092059643840632584023389868275333599813207844756305611247740705692766048577762034452470664972391615150685156220986948276931207238206686944138137943268271498831925231993902952464777377251372972650992752908557581199282752482342936090214750718185252728895946074733170087164745076698125715319830739268973092187437376555518566093182565143698501310227486643865681482507606511342316779905332895630844019179723888426538297850809673645546127455949443588355854389799753773001753711396262669210021233336891146876505923101829236957701013182954292702454341806576381326852966229357159063961516555063021036812323045411396831269308196928879701631661102537371865228881827024019491901706288655859249496090590232612350174789156405794516428000411414392445829005174606255588032069329378319093917326247120797882300253036913901718985759256789514564812707299352574697164576280372171178048326900277115047863026154400974388114506009945674513058602754350230633519994280218068860818945234960733254021287929639120731906382154614435229831361904687042764330633489648259456153106831792064346712849681102710840360060174910413658332380756097867977884487275722064078602321904559988708157631871321809435883578039012647635571027589254655657721418701899688318792200610980492867099262922045659688495892117041184075379181630089782220575506459896580004933059399584600380060698690353076845236240208741422189354481938073377764486778022147423371703309512766343129102565444509229388337480612880901363167830191240828249446372157123870089215206261122114312546386181436213726655723628859628488746304966442747245940939901296834348917170636639879750719197617285419929471122239424122238097228174203716767189797913464716577195378423340950190979140068994555154944821061250221841343104433063945064745415104209851715239535324127492316771648584152744798892717564670388561685378566786572936215662762146973690845285084829103471049284861277060038544186483986524629320090282255177927762153630474616123669067441874328678879088648626204262189468709510963468310610415637359179149690767474100998329389362917793004618894920609859177606039912122644897642073817338120434696449670380900875452356410445094591950971130749581020942460824179451255904786102706963278952859466258873549398556811906250673158088647678440254047554712479567264412495515197990798432473450945861289872309208233812221285640959345031829745356741568537880114784248210846334826830911001697901658121533681489285888379232773036727804790249521332909701296640554775204126251506734772063039200534475120195905625489106950071194066866787367263260743479077634836555114493866705373111475065866836822069903825984737328433695307130393850978281222556374511812530241563279458909231487723164961337069763184955189000077574792685870246014872411830713685384269767396207830903769141940277022032625398180527524106114235875975455416691284724530480618856244187417337902352985202854236076325111487864200546748149695490725100560508152394282908808226823766832798784736982246816452972249249096008263772784978900286657688072433970266077129061942918671249279459558932966264937645619738192061979890653857922931893302050812273012135474453196401179344811558490435874664426243370973986909559256590156790706656240550294157110591859103660328042284864807690542768665128770848945943693666007922263774180908519994760341155892408322253240169386438764571006956237404471021969806038745092506629297984506078651482696944573341729347976364506709214864140227118382081877293122455768756680725646482774200989263820713528614485986744278654426724518806802084976097705100230542246979452529334468406580091493957273439197591484049470645280634299548970954969615332086511127679685564958232931287865652159713251805361968957319639576612313690955957755166498202910737885575321772129403863084901415107735380709687225079314484775678928189379203002678117171993755180977943811757728784523046795521214925941825069400659221288687220995145994484765740788735973716019817864179135538895917962479614700401783474688927366998154562668901545171045572808690819020323953575302596836843432390855588089041340555972989090522166295606309401521853371507641399431103637479271097363981198844064571900946544363664521333480732406236437436527746459389995154786888714936683625207880831602679815225940690674881674074227087520750371323149317781200150219828599900473002980641851299629752989776302642607774363049039312132031760737528697758065574712665660886731992157992624199291082352183286297188214823495308089216240511726530869533697808772128624467655773216859629638179801035494964661628185794358267870633161867740440221997651618796688051589864345868436062160202377712324197907161201356392040178500281218695539271964018359517293202643981346817713146906083854554190210874750866451742176998217052408314347448880269352795159262967000174658629289884725125671761740830271342418232211707856261241338482066840812664150149219838066738060830324136475956330804454116700780972955595775915152786279108447302992575728096917744625335816751798215050946440263358642794758957790529288902894447554432020002649304431228896248835971857906131038755920863525563805838471581111807040006284575717790529996818507621806772025706431614666701649159651629307167400320271340715521556196544089859956922353145131798669234441551358793492564982009486163854266286337837597848930660610490916559760614165520328145625307257400793203334513462193545291246463314445400816123548897194366107459571338262381771673222388459500731697344279691553329523743997377667053844601512213165411257827852032187158306630058017220249219860475117029815105922775697668409013284656287929105967857009455607514404372334312843473819958121300933786290843075264067839467863604070219199560481601979249298367038563307949532312481553026155256103972682299343154807046186148992747278300739901564026429566118281172665644542662444372670301114619903446154367146964740140397627723896819716121129346214110742014285848746249249172851509063408595171223911478442155494807524216564042271354725887550537613949542795397011860958514019540014158407401094759684535028714496699187235968151694115211577305361868812890471503886643334034132719358752207049422305688256077443499148775703925989225999639502821253972446940776624249578359900387991933572682038621035765653131230293116614564692842699084419532058742191510452555466416840263705866602896844750075944081452089585914300252134500341088078960026796523034644803266020463423123334176969910011010349477506561887121710049003895840604360040439937293652989683558573567101369148328725009815737533919767555431278583769668955234320549515332003822628433688242882516405630018258986851265418172839715311125253495683157144236481497281253735225234553886877276771627313796175926193824152955047770003767083327988359398807496217629842993553206965562049156698978636483959637574268814812253325637392312062562364064341844883830534651521779271407027981742598798022793835112418640452746072575962900216150492745193947349805526634725727517317617409542629744428400000456099200124979931937599209458365804541306088532592084541480120849439569160075207505819121741721632793426920654094494114080907575650933215467920956428625063959335377596687873781696005842181151856613670377708336085562446530014848512933672082946048819462132252970560283035698100403886112681521493241844483733737402969708565024871171205701082433848067164658965265849946483248772560586345373536177436256063489810445470030477297327038068552362639424840743353712057357747690672215602635825018436025400764538764308672710051917419211434122710804937177101808585993969555888291714244030354189699427162149439505670919154176760462039935048894850807962515008612658500186680614373118856359402109147481958336826512338705543267224969015621783505954130467135435396135385684269304918726131029843925181083135532723164966935850247090791735808282320823795647569544134078596226272520751460874478983778247409089450929675385311422282745311114747273241461267211286816381253743851560319805317390700512260979723836340566833406623276566946511199435494765144261954691517231756944027835887964742278041507909189381573413767355038104536245739426036443192300018601832851091291134407952225852291974176795535435563701145061249117862833235074177658930063305465808462836477824674158296757968539112245260837613158556161848616688410579258929011491553223351481365686360567076657714966894811020957145309197092588998085280689672968538660594718228685853429666331267172014915273723226292707449497784099130134214903525018121508712583875565153664111975230132222262120120407043258543530932501384338032952269974362486976891062179217227636134782395063600452616628196156781374788207010053754643755706295318902644399103566984986504763655191135675502170901042972014825568739113618988852878317156860266848441660475926057206806843908174003304988318727161337465879839518749705963336695132632397270206532895680611773357495005175025680663831948762338219788797218244480867793878133067144902836329058988773976298477068668050100138973915731344700233579983929365127904167343732693713715132085119718372587087489075985984806499422183097082123201437813452025844407621862162060075935414493631765590481543427054768708950215294975716052029392673049331171017607344604724242615013397810031452023309647887123752777188289079713348497063657252213487864279285140824802263796303204396558672468726306615399642498505930643761882956128275584898998272400452947596125834661008404196430563824571974271188914669405035780560290449632340522694384208806416176478737220019459831658056232849899183009622296913281059239541570837660210644496006069353079951160216222096143733151896269717063206101442406408374681586693971987330950160506585324746854672483109174037481215320780475881902834098581755852296341055797737991911932460517811109621475176616626967831175148543428791812173247005281723975962340059340518251574349520721149793335043526277483596917381710746920913399352470815218588192829623194577733312468132731682157996913726455242570938203891213567738270054567930346278989676054265881727509312071445075891346185964941127180890377030596405761995131456061656709469891626645940072783232560664450835709103712541254071211639191944437226353893094598058552568964198587996556150964927266647749338504654092527916206991809139922226107285401222570591932768779471586939062082619799808120848397886396441766692097553324272394193321220345768448636347716762105979573021777181243912020180871461159153796720449309997055925627664999047396718708209610063734142239694732080573655171200290590246451312154495935510811824627535485768122090413576624850172685052454474078527923154636390826196747202247269044305532934054959941908061695230494247457840639545746810473486514549162632904294702659375966113792365370432767596693305489013906691593659973594153269534282302240299014002058783867675982483441676012363274031745299704427426046643747406596900252837812653366795574187326927380315344411168477630812174934877937212707050747228055301182263857381103356272386122131829143895837356537825917639672837337339397326772889038536668000230000677728645822042279955394771319720452317537079713276222489637117650306814034178590476770744034250155220951344948050313134955521698795354841652681924792945183625562880502881311501553639243779349281405424072779657995581032855722220134107193436272201161930029428815837992973583613860288113787168920756328644155033086713327111908627165567093722232449390703621886431198578058781651176033931338399188545461732900009228071896932515836700249498260139551654343438549063215910222127824680930046883775948871338782646542154858312841452710793097696232610432240269337000364647306002518072513562811226570845144541616926492531480124693592263914234959449274264793428890499692713670593673767405272595764273593026089268378415368668359014196401262415113981062626296964542024082427158408374611120729893612311629891818452295926664750679522826934716280560624999558198110265221254779043521800295773512267719122795629216558506184921688312458369922329398067832113803283009708234716012885385971563190934649192372179360625414137818781423663642334290417597800294882817194520590337337733323533071752921067829656763397012959541239974881926088937558394926185479553193467709576375538086450937401751404723429137422330755589305388998951887568553203262678207875603875034435456165956262312212540082690759486913628368255305038578031522673792878323603329336750514001217400692189720924788266634653000452393170384760567239909429124044032387623561870877043128590017184903486247325140602387762432017270110158418900437225779666766632308569308716221759056639204905067138984674424196982084391529099067993876781732043011299200288483639319695805731502181543360116057672723152925435513621874186427926690455811096798673241417027546376670679878064994719317219083637709740103735721731375832078764407378302852000464450750244067378043126259218254101871457764113484993675928195766647821066663944640953028938258421503826025904607324265599892459697210914178377137699988807617403973254878488480125107174217527773937416080036304118620323143539204890049398961255342343519820702056172100415170194996438818716013992316317553735651698531080586433870769552568400775295015338577081823514619534847113886991806234830304148567045372011658079023345741115353460053797626702798362948966451825553784129406906620181886803494949835734197257551442551551686243528171970990539116717305257050722963448650209527525527589212469439680286307144122252634837158056654770235364888670511700361065702902592174231756356557075630049092568596296357153853217053004335460971273412726156595544030701371051703584024865010539504059720837190807485123032205000520863566364321632015657735246427421369765957846063345840462169194843415587548293556900306937894770436089023249375579608428385625122723624476032964338611997886540330602723254808177969170014081703809990259624983595452366142584427018375577251378768706568880435924036739280914813946712908187476446959182471835040472583948218026257528041410868296236239082044893700765196554176012435255366916248238990423822522028143539786554854190876778503439604332470618005238311081340267667745600790759438489625965919106348269997637239460616940945478524188632027156388228108019604877559555932899962362578275705078581616374556016829051476167342545775384258219238196214807347989622140681170468761051572842226933793477043872918241967927705865053645698126377318328378025666719667618849944944557584001499631256537644199422834611524756971123679227869719649017692510739332711336159587520603730566058550982247429300330728496466110144223487525313661617327376366312072590255006452708580618743149892702126078296552354307915748214718526008750420700891206979847867724116137766289541302945364746969909182303982468884736251674198893477981906916243032177585889373848848525981029465589345711424144638456592095241963596456544677543147610818237287081197756195365515361776221963167799152282560135016915995838072123442888421715236967009625800569653250457806192532097921645760554949810681594039061083062991799860097355249878211672620714059837087741777267232095442218594354868693387352985755534242215727953459700631438336725400590603244888494929737104038561509558355088643563065315140578705867835757431284768669255003681852849701724062913848321688219790448013276441809137819990140515083516686530708407223273830054438841850563275608038322130162995156179497712591745521858007954021814725435414299996340578302393711908583625272789335148373355491876188324787304592555445429577928855298270208715437038438799645550161318895805986516310109634984754763131876073683012190311689667305306695351229861014353087300529273875629680940796207705301922286670218804204945847508472646930493453694843105779442833211081137943974835787399582773930209002652668933070321307595033156680736720747108846111829787208094613014894348093951168894448644728298321782865743110203999957753270171760301261636927485277460861622157667666860103071440762868134961301382760132386135579229888822550921282535603641186824721506733495943484293146473825014244165761468530585485506609441205493760651856627478864225825162117529591179717562819773323259016481490941096725155356060847706401967934830143514720170923154215107130315691363368405510968126562123696929158485175080759815316837161741345809028491839893937570852256382272712105950779614726019430405335918595263157106469733220841879384152828929478315019576132320390553770742584992141559107535365504208532729676059396797297584942929822544663475951424910698669954457091775317640398373167252508640854558175040054788969185073138085013736716029371183539273442968258674498484010653996880530139551205253604490201529796406778329739984732465615706604136538661739388500129848196033436520262766980245953566582913423052105240607757427934376561163471636299784152089549796838088934412205924761617933533421285958087893366724314595078164068361605251866724500111194711238373928019585051034090135789391424642463885921113980147856199701430585908561793304719697850588940327984499152254122063335771459013082700135802972744591297786048009643312556426743272708769664400819270150420901119693469989304288251014718135461678630397174410268171038536533902407928273942520543989947887929505222964921181627709559224867193498516968646141974297357287284224215956333539242195389415938598615765226515059231291270883446977905187200856521985799773307862276730382564000796358631968356616459750156385065426948622126786754579348871340493832079316623700772462592154121945771916070262939578563468901085391172381143220325871482740997423706661847704213568440876322640153195661926665225729552614911029486222954409030047680019573228449243490111838227860859875259178336755140511547481124742944989322405413092043234446608297719663546329342831523890920596569366393882413734619571259320807679433476038883359786684071527785842021237438289932129217505873099595804833834386765647860187677009414008405492199908275579098134648579877798223858932348848450902551778290872049544498759757481746967135607902843041273200282957051315884748866704105420773812869680051344802009097647493708050135032654366657457539729902973275936183546718116999592360173938786688895999254267140277366263753633851055827314919386454839061175958815492196106002828002806000092151622390987829846989835561026136894397695857703849433824601907470914518820477809794368324488996096752164510676465491428525114825304465713095439730846513943144222788487712024103909329031126201869250818442003417892813198679228078087200555604453408341686958653232754331936185519538060336439368294997033486862510432573584548629788346177519216644915734321322124686638946847578023994388591864721971285004342423269875945940957096263764863554295939916119053326099562800136417859801051608101869939273940198711328453254111168510148714883698770008449295109926555018241090760902185452011815024926299637370876379648495195351457164566309908023376045653251850759403086007175788825041296362207509719621732422574279759467566557162919008433320358951399884717976604187734596548329654969299697174264032468466713274474112840093088089297127199825586014107840551651675304507245628851660382636754753710739074015343140425282158291502774023725595077435463639512881944054991820356901805052608128618842169369321110039295503876212682232680850882870670344646523563660272841400793486057095311614805562982866544915877369933078301285537905583096548062621171972202442731095029018468178689317401958894834349541295999907521146696573133071111548722512883783452675837539043452741255519300575088163576811112318507665002827458705494753241454698551003824139483568920705254946281821554665475898751744977638133085244945817558375463310283493414093554084820492941438341336209263647708502997775134057972799157989769117597028659872300514572956185031892265399061858002456302035318555990989089960240728509434823099103035404784619964807016727555205002683667642749225869800230954298993213825429671404171482823418865898186495104615862592624886483716980094303675191417741273862424425887796611557104543784080482610604392294731584519643180098710331148545114160285429780119881901613482426819424476530470613870564409535600030539598871059128518331986872947542507540520855448657702865155338341025066591594166784701493564779530575485894034946366768474650811700483871014401600867629332260235040748703381041926995944012314073325153394904734425721137225866344906848142687296589240674086497683811864796166812903415744381458007191728210872788714332061274037582925655042262230553219983045384597272934447587102106200064104040135447574004880425726565837913854024949753894493504118332194900463609464667007181257620530982532537275913510419303510453699817502980982583624071657118585081134566690897676552994958269624033986556759503907358836467028047956766882407972131558776544896501145950647778878490252477835068621703634442151153523571715962345553215943614592689555783344911285998757972197764568579827332923751645212886332959874655076345537255145692265903881506459490956321928700888700103010411086528878993018488902500607513737725389977841232488860971288884800122579537094665797971807336153494547533408647712672882983571002051992183535290765149527584505724699906159657871578684011783048907502601353519709935728361598631125159594039786864115947653650246896871063846105369159186695346400391753590232387865084935180377155297237059336768741934174233464390505065898761851072220614739283771550931368497436658131587050498773948177343653455401525902929647499138338493695888393731197872158102080603098055283976268713753650862876591982262575508082503324295650756687038385236498322889932608747766678568792886351629492242989448001272270050301300026955884300015769431563366203480660903677017992351065937868806110855609070559700108144458042306725164288482435770929749765936300078269333928604599427309151830894754623677732259092665665513701999873393314572506139515895139808694404485932671099636814365563725626474403129844064393522322115756007712841821902745988547750016014977861072000040755379945988760590969390753431246894287948156841830618005872719243629116432651640095693468328071682448709404549602639037132113151571696465992663543899910868365302021589273765702007977669091348710691082121890123974084847106730665440734391849195234864451566731044039478231506992642512761771093757362024434256847522536850094819470319880476291856771189505281298671127370008216839481584312021020210585897671185259421958450853536642837073020537264306745475297019291888890164059811910441677189412641196211387480633354251399678778270246742572445258131983415820237432891747463796049842482732784216199962731621408249673185727339544345852335890428011830152759628050833496700681886970717944885831716588181131421982155421457743218823917167409880934887052774103771702297781353085208623782185181638131354294220286159427705601533354567575726696322340632950499922200654844517599533941984234762463279665141998408513518216069978118231416848043714036625978214827966411329920709295514967272922745497518564185667662016417044564955346570692138914973550029790744018434324179346011236344204670591936400692636719796005625146304579578497105154505770280662724091688617729551735125761999234550730379778792707371843777063980856474264707722439344999252248805711805001434210939014109506770071810507716857102549582773958288197834000961572518482634275990335076239741948843939335445874925713452865424047351084130468461600947097213395229432675390995089100990859524883373819216843304779071154641479642682840554026347716557143804062882799946329279111427053116443978238528335047787140891007972699452556375186164438890404294589477421930825903033548766741301847820123533413352474861739676673412269203226695751381183590133405411198740782934368676835634934594703841827766349075347421587422619321023825686886439891158752917786780081252076660923435219715063770942891023769353648416276346625080917053872779071959614747497338572049331008087201539747225333390590991119431845371870491305389751041901497588370037150993703613092066523055259049972753323432273935400498716855870758682004471784986320399922794333055690701305319108101875265911925302076958017281961245140393705228391498007619248288687628934516428802562029724740834761425825991452870644248697710876428040856158512187780586436657388753352262142860915788353770216826931769845151403849364054711876444332651673706964765851177879579161538152101308038132840750311867071386500879904102469612984418908556079001338033197807134186401619678377314075842742298983293539082494875909634843785773092166056282316430553455770703378097878605788124820860275865042715210250859916068014636213435914931171162618991980356802388999292458836172133478038954894824722474561742563968307411941183890468546519558458051306600614713048792224323985105408259107103946775708756400352795713410268394213754310211172764485425203138169986116093125650518131832056568424921332686502084345241713198373607795948933512740971204444238211738159296373296502367439649422050281122872041451184304130733719030058342837338804619019461828858444604795355288664991576202308819125277153222182872883859956981608555376185499871865422676743449386982854747368572703455171474691549249049285204188940698681818783054308529289495628543225197550567714995511760796366266779976534358518094435507859365553768329659687316848158991039782137084590353706360740116911833217581458192944940594131657597340923594970532218118208903187104990759962443628163277108367834065880373286315959911042044157062422451695698285812668528480425705647594711127534275003475136967943698817453101916541486080202892174735327187993598308138398449269617716209991675010812621213900331801343065156043618571918391573993703046319226249884560789075604719147143122629008085081346690502916899063584910526830901010270354169422821818261280025395098686893795866467976446666316548468330235313411685583478286749396167723869801819013171702849709622892943775505866814030285810759603363368435436053419879400960980374251773445928924592745194326455003438146888720092196208470697838583746175136175165190786114520076083461160347975551103300707865448707394319577179076420361875031343395214226340881303558115950990130266760111209511514286325379747549552805686608995848801432182188387865325972524885572883107533772297424291979767036567160290200798154443283184682432332825871426331912803476664714747545080973608762292127933580231494653565371372585479077650984010700184173612006863416727211516199811207503008157229614025212625260826590125537165111169700194900105723010318701480654249719399822468128188895407815221898889975622925103118523292279244445412939285434135945927218081452893451802889595341503164345829620514634743615463866629626890022311663915546035620959982312161069777628277383924347896495308677291797099503416052307057691573731189115766986519912136493391276565449376488620905204927328860671038192568451995870236587562224953035109169550461381258635644240558714569255217607752695390701957230630774959663355103420129416980517606481024454695942707267527819058377201734216793160406332622657002813551512351080057302640252286147032391111004440781842668208553240832565555065141580819956388982207504127822745003676592520205381608211051172160113964525050277688325218183942483186345500425480765582288847909542336140526570670827641324402939785542312122370113123137312729742356697302822129645280803078572778736349985130440506034247218560185330033253666541250792542329913423016665215071942460792534098694598222275039027596624312700606161041317205600702113694023270827353562149876008654799850160433738198898537767929584732617932207981798213140993079638154146556670104396899963788555326889835232739327307222649066568256729905860067523276497283639258187603450635219508831388570357945618023760171380908259447633378404858400339655666567447801401042275062425563272006192099312824437930528731309382635403713559977798611220817471880623589689597731797499635297895500193403822488260797772545822053792763819746844997518621834944889058280890237480340189000722971581395575088315091474728713971016660225131480884297180889992957598969087220445925151251450966378596775953903112055205243101604494798987502103603075544505357411253232166428714782432768811004310250665224349720273244488274618604383537104860327498737964351109214056583228074267571586794010568660745732946307142034923571091545276261489034541531627338391110171375265514396014802465293089386490979459227616719872707802689936214523286393770321533511771796313672422603751519983675447409735419934417873809090779413846130239917537967573702603262755722556563812808425176005185340930990752211276907282545623309154965891517604279286473756264812550179317160731867133207346781481695818281794098723197450609058257580304028544537694632336677022157326517412615753879212651285294289545131089438568445351282071431090747051760610380309972763457846239886210159624106667334974675036307129555069272294946535454633250561147885172332500818706685347228459193494575493208616727650175616271182608768104185657854497870088261935859857478710395519139115616423823613915727099086896675888248833138963323986888404242658070815219178757166130700404631224658215465126235688175551978948809019923372975522053837161758210884336097789952365052877460529934174288711302928153371696129051219541449171808536471696763445024362974564877651105281097807307486021020731109532356047740972348686935638366420504814586181552608344441635203124792094525565445080519810249552669234642214805445372126878446399001803677667698011919985632656863562360091764324067796609180482352906795080088882019230981218768760253688422197502608405717391904935214509400706539284388933897576538370863613926865002742073100981932752379161324525947546720459573408905902026359934340966415878118843474379656238649246626685575778234153893210681254068880985082171533074803032561215855220439862158679802031505968984108106052216718706005973735625423775340887315569223013118559797993703936427871576460835777829930417895116958084730754331466257021926221279567086275354337076916791638198531684105196503796158022394247278923686368051859060655193884662672576442109873568925505398779066755112195237297504428401283987582712894114721003703865755184828347472159237011544826292839240015227326184118867157799537467499331837666094418883106720246211228968731918542708256493878508980949897948082030406001969324620397089651898605166597637545856001430815216151223300729630582139655137580833303105559137839760116983005966684086897126167573306210743890952099430336223482259601546854241449240633769770220321410411212446963884240689166897596283184456083862556476198221233181971303991119931772602429299426397520384661949379591430644486370125844036365337019577079748955697504255103127177239619572809229370273241906714698066302284826367508788287941561894562055341019127934934506587693030713966808165947971310776249755617269599251085619499287274290494033181582255745520848086468826249773655859718016466896360113112602431201807082281791356975823647944432238322294972887034701531337057697948207604398623206041760692913252370449353954031593373249681458742167579464351941427119559252228665873431212840881957328759764923619361571072106470180832554780165749428944482486354345390043277533446963366795466298078924278435065243673372389053860536973464133758341561136364812998046972079191683590774184805048743017849686839995016787721709674544854199928967094395343781229116266159668042719858500817213272440214389313772907209295476262714424058781897401587165951272919598132572537734797932897976698391035718544161477973394154798477996448113268077248654802030559120527009314993799844843043402708186427625989119752578914999794282551682143128574712087634724314055975526808429295234635072119270524216521289177680981971652754230855256119971551271719671749728325357734727734761048488355854923574997968916260036380940771388903419087147399876850385030535106669679551443813845077720786062300037198154823195078072424529024290780469427061956906229979630876627118688984561047316028854036759417907161468927405324161337851618078492405818178007253468704719916905479716727111773645066017368055982966709068757669453258791005199811012970977134485261582783801264731159561892461205310998431012124607913024932252878112097563580162568728647982339215870295438393978465647102183752300215845673479285631658502303534697205293006742823043670892371632254610139386215373029370132420215724431180795682526265717509264461123899227210116539988847195316192199390852606005712991056788011499868635833281349865282297703530967916812507872646373710878201003696973836242343243900863852228180378820010669621189891874259064523644575279267142644036133727291661591863097330346382876339046576925431601753072042187959307263418062957434811099674485113614504187988964972224499779187271571738497128604464074472053467116603963670599839707754781171903136666829411580427153874714358029375519358879589122360501535186840694792530557501785749645448406232126827382441183715992156334453253418790528104130605299625612232198066418424278761739646032424616689880952991913059588233123678420919298846858799673618027315692794229425894980034453175048169346301299234008323647815792734442533738158255812695507567308291932706907806720129859914151099675094082462146632287663253732306888223198703191606164918973378140193267395963756177777721199747573903570657020153976633790755629895173134150314434036288317225711668422109075866654856408370005768474957008039853787499930216659915808269733106279406407483108495627030311676313859935279577313509358225803440139871567642874016080224539223933612813512569295485887947548531804501488045298176346294213941790584379377023235281202527186005618399951468278944597728289260566107301470690820248379748614945521370751888017035154937827946494926786773649691047907634615085161043487067453428434746840518911707760322868390390141721667232432889429553756293333125767405278988969843840455581891285535542153411975137617528203894098477714748000929463147459610332276829381306935794499296763620140294853068950063244814708921792861308086877201646632104234856452524498967777197586515903715294940040171540742119157393617702996893777318258680865421058247211366671891937461672461750149508381653723964761949539944070710801031043192893497949684187370562699483094282669246965115380024369240251927341428429679789470242544503685904904706425932493438551828559688122524260758524021371541850536495947035763739705585836952455093130959531098503238792988292236599591309478745853273099388542017034450656900747636355858517115140406306919493198161558751903794442153772118202374859045988592297041284293155579199910485905018340138992890154299448797460994878069626980797287720786271503495838654623875142484491638681932705595959368923613253356839423099041332675757801280719582045327265939206182883133759801303083461118175569704261842299928265910150778337072491398321820509721090295483396694947878829402948591513007819453988526942603105581813507544830944294614416664823927622006396073498156198744039017729341682854181016195473717424172102345988864049544260608359792266480858759071486934452070276942013645783541694316882189717236259934201487427503987636590365819642101197883539749084939063670703999881145519630519351846810300660380632957421872246110466191091771317231070799835949532281659440183306473053024175752820458319976626888716400344534972226769881380658352782774875247282893529463271371461720335078983867903029624906299329291704151971148263438538505609250283153909191675848717732559407319698698416733893961519396503890938648059237397429544310252309544945670636505000969400707952263908251021708859977826828750545623555120302616025958238637382881129813610586970354607744009593292246521787764116043207386540365655951179914346452024571933411379987762956380220275516487590948636002524069759250324730572069577389628967310805730030442179726734032627133863332143795802637224169806962434063931752664694869691431491412699199914483353437105964459062303834073033544940535750030500056838319429132512070090341894423248957414950671788594427705667350252991410782695911561845638285413225123217009736968363953320645871398631615720155808303880603430575272100988393402627343124351996612689693244866831641020162360247071827647964301416182108347083622188184778269523108782113705987884484336259381819276640538639477946835178007395108669738529214603082695918253635968237518995609561052302895933649940036097134538017394985520045814231595976054323176375774675151877722619235552333976535293455296559172473295904810307803746899145984459015088995888131571606166891835547009941145914093091396460991174143369824887793334908719258292218733501054074295881732942150275984480711367871985026874865798012396506473774446526651258966344284700969565552556795919041610443776475371419081709092630920203440547781701921565460539739518914052960294183804904931158577107842266927309353694323714155349263924063602063589039163358530462506087984108108625776337643829950809379401724363354887138563883440801359101795660308558206405606256896872977390779686988871913416678264960422730761331296972561947714245672721616374652415716763243698933746490181446217841838097299687087494365186805096740468534560209827854241596121843156885324829693040420479806332959842758168847597232222127418438420623301289582583983455885732966710943950193275248587952967675837397172363586281474750947832789924333039074897308983313318780187085433021195957693270910205849421951686657639008713288746495070038219391003916905565100271862560918287873125006966201807475686792217018586898755082168597062675890964304775452491152023005526224540877322938316627979771196128561186653494236385637091600064460537549696995741819873982513536475902117526947943862616834808177698010979587259074378632382259407576453573076526823865567356836373220043251827206384839458371950105034928511276226222510252499476053086653081491646565897629466236321041503505447705771419634063324993416768654497223174490953900512489011697458846462430720271178557844353687021667111855622525082678488932115062177641789381961859550156806633964297241682810380697487231083345224394786125031208939930028491584294279300252746193492459191359810456088903928949199303135274731036838803539398175811803198563782730245296616631504243669015405451804107148277107598326211279241948078945789102809947291415185212285344130968909038895407438871125293587436686998601281627877786492953780263240844501658152257306872154982865966979465338172202339233894558005606870727121841641070800436419430795711804833638973371728588842020991067715160016139672617060312938235363163082154177865629056560867927184128817618802690545808193954283537213345546020280919483571492302911089467970631078272063864313338310658451763773339422784408072238685252497851688688819256192874868101655599152391202215210233132835051360522474045042957367042680030682035468000774283689610004017215033696511117955903164104777662784381108485319180812080533678297622303484852699649600578614155127569400732408738011206937927304628271741461237123269769283352609501673883907555588246713134409994450023881869952883259872485845135913201131344468704768092362767720558699144358168139942797255128639568560789168173191203283864660394748728855248021488657943855397796429520653790076061175123507722783556823776883536518582008183869359029754829839269307598784430397921502829653333169335554798175259959568348678896436068807969500503175201060311843661396845616239261237031418139722316318274776188326696660496844641968115574699891570621079007653001418172578947624999493236992377297564007490579201106451603550249171092540251339434063726008442628338563469601025660902039717421809403049563825924371791268268886527430014890484779988007025865969778253518820190095812219697923953132279680189182852026530549036581820543016271469502637649869477335792245706742004813356816907667668363916308122057563713339458293968243191863835246687367463707555683204512354564588289988597754348689600147204153255271625639067726377435801495504291834145349170175511712421160927016071792642447178310010407859621532646035694966018600605815363022048742886712898200231957894677680920765749607079914343432288940075222660408054990775050760623310701490329057253188924233495434832429341140139045107357308791859205338526611021497237534806221076473873601460540866627871882858417337924820909310886307185928116547281617608023199859610405525020643015075728655473861283456991028384562964917558284674462260185751964818728730411847866007954574758588518425028320909049175343930013920427400266899826820360570421861697856033545940932415405415171727766807419304435383872191654569404209480940547624663486912924163340632823209610760232858436126144299977727112323860338414845571855453733678338761107228837791319736500370743853817116759031666859051606094074630693670378858542466495141714152413628430733360952420862745022637643960336873959447831139584657324219208041939149912461203485642980585965450291454161739348542212023110998963502533205198942493986983315081189439751751324179442722399493847558999193482011582994281109296547640863339859477878946013883173260784734047005747582020629669716228590678032420349101033886132411158555485902515647338555852254208190905074629697810879958376370932950677918496797220447562937945548941631722213653676090613189612546292787540128162537660274518457619636703936849735659725213925104690147451615707817830610361954860975554327038438358775065910230093565495294696370209862663918831609709899992172597630328367888568681185554193854260819830409974811438614097583391624726558101517280271608327476851173465643889504044717118341844129840027045339121366054231255016057730522004781506454136242482692475794206819664820601794487106650420650786217463802431856683812341340279646162863286723537787866896464415339937640008791031995761608818050287242156097647771476151470179633990064215010051668314691045829620000184991341527634583817526164647070629001680971723030678410837590306232277537397488347759103457483183368913949005844701031571718763096368641277631463144495579870193223956574679139026943048541862350146868652947353208966630128355777528767617666091353461210085548838393658622153500150381961619048491262154138923553666236533607611410191150299774454996287958638773046827650589415013191912124557354506210524774786720447781082900782767393566382958214935108397872595690698065228300795216840996153168195614955663098724872893670983550846635790112274763717290262739418880211456985082434805906221404219262736582384668198084675146170459374088920386251937439254681181105046071946270620716261049188248379929337189501156875269884627002114434834827277191907550194091469261596553327721407748793467575904448337434673272250901365400554340351085835483652827531897867094435548895552142455262576864016616171653160595013520440587159473459825678000763451983852284894320286019090053877768463763544095159146143923604765640736276575496898979588391934929877025873687457618276189918181289075911733120464463664993414955093698296496958975007585662216367900881756847632336961486910990804032721177042673511688996596604307541053155054700537594302181563933641058736893365682847139373034900469273020112705558631678073477962713771464762795844075190449593362864803104860746680110679741712226088171913664038930000586468969658568017800406789064490217052255005100971189889042188090246777055394923815041788728271131986731300859011315299645886294526599395723528307590097308032406953307216266731454721760155122838888638528442902162440722410642896688340916261606070268891834945699791400321034552946873045288705661506849745016316111135751616231480699313136835582307904306484366417879538689388216075002517909934410471174911019742469623841619839176241896782572501436564611028056420181642659869815154969029063797184659997753139341468769157380530818024108867540447773762474061833626968663163210517418444483379821889825476516551711349953959057620898437292507623627815108952040505569636524601945884936813262930243571173688446520328230876367553008638152422834624748270864731582271228908059963477602991614824047263487497731501553731016105777478321925804514817833616033709826156298981883341436820647176094738097747741298820818556131695986641969867290606560982952226981338758647530912204749787455462801635707186583094493246693052326346189048699941548545788661568473028677047496359978434810320912685435450569252515777331187405738227018998158007545500970361449115530673402708294287808765639632405479669343027186702017394664420096021385171911835308670570920058929529729153896119692888740042923533250281177966769332108011737631419005021886533050786214257979919379506857797813695621248660260884065707404687337469578531079125248401857045708662041637974741641527593587098855287147183799484390975406734472744785680516083639861114249519188324850526711528238542830725883487940859205548721614594508449635599824371397714534902060096223515150870801000684505422233076715110092916233428691141205590923270559708645007079585099269543083285098485842639509640687992978686832579747162618697724216793572996371954509363823577631757346198827538885622138987690924269804861408839969531489778967712541125958894938616334035857695305863711281490188522505377516954823459046789847428069179226345418999371807004844548033153934492015425122231577505343539223106879665023582521571227195085013584206901101296732478879240363222599266629888324435395023785725314611981885884248106113654301762892746761236790423195707494166639787957363698468579636277471472171585503216745322607646568991722222028905601078006172147170539566974165088520760579242447458393806858496658197387833639408524952390322512514124038940325993203055876828048622317027248118564025066030482839658068382331176320791966250696171509835683469370967524064098097317716222011427804702899890605196348068946890008023710316163930268878997115237853900187256355592544549391338497702477666012088000692681105919614089003255011394718310755159705301768965765175484371438863899416704725769740123775480776197416090036959429285332165792568239496227063878292759708147307648942730749230968671826449879994698273170103533276546283638826996890325544023192604292256791958968152586070054814844126630783945383233201547707479475978332746169863284565149976361056564201285250591062950487706604771770734071292215718338912417313405497533000351570187161073924182973289800732473493711190668539308225931523043836955795679952686625816381091375610287307917124694875609075913392979127150296845824111482597645199766038750397046683641985503438344031904241531557055236733581322708434795022213089992650764628273090503409638205053646013960301855562805914471109177095660384110761812787839991681030855379824328164920084196682104261485038133834173004573807005705326808211060085721678360041842273484577288489927488036184171210207572609578381309541787789499056226441492194463050049886440538298123424449022301583298849642760929583507094046391604296328022816127249705725581928185709541703161884620835605883753957702127182663817618783465360375597041064719896663222252394352830114597871216818356770619111918339231454284164093912583642022377402105808221532666512273769072757606110621967642165347370537514259272479270026492513967800101434084779661190022319870120990197509846637122180127152129507562931494038383683316563194525611623152961919946071665700139273970874824980944640908169465275567605583884516239330819751214454833908712324230280315027956287315200953943259591205100632845112849033084974635107789784036671622739586338075985443186119292231272485871432948757458512687738072056227292064842441244544625080985105589357133305144660598374408965625360387628318159516160539235615984777454903864362693260689054373448118402735725211643260698855476754100431804942256395257122016740669064583830006842048958267878087972470501970484084401650074337380505700530525639974479755359122969609589370645895660424340224452596392446556335478206229267073586677483099559857960921830060802791008892646846417864122825292406721682220310713757234536782775058556149719829019068973987709026298077659099910222104179828026662879165790267026360672001698646796351769939643946391155483247713382993813099375086585953194681324984879569590503843140423104449409023202950812966505236214541919154288774453801348266521780578695128288375839168709662854736094630573448197605598700979614599449815690026208633272185247151504628019110531967345731417761926069734881747321659998576497592006780635164947570322032516458330164876071011569254240154304415862888132060227286015025266363808843768339374884347478424217060244430079820454740374185319088727999391121610884539488035507992868685687998443211154403179174475511495632486808181134922611993040344686003374882618243502659872090010580077071357931044050317659738831220765744950616649871895495636910430326162407398011930604889849584592719292163729917603672072347889913806365937028327265425498188111038730734903073025243420248192166386185996443647384245324599589448470244292115255782732136447965725974929576620280332865130696494189758647158773592782701671890173848594619813828374081039076912437229922775132131297579341130163054458613760143226407946891900553298191581064117366998226417234509853061085119820639665463688747273027790951003880368161271590694730376560306025404828404999826786570607390021845100619834622937539407408197413450781562120815420533446003307475899421704294462825786620427530229279452864694862747073191790675659175950292600322338983005269942495308542448236088201753245898833216040372552903384958391401551438015475291970203213817819558785076556203831799341412273145358593741021856031880143847749772143767888978112651479536340582577487743586461738851618760917296866075301246813398134084472349803173508167485598293922719069845411369939425170484479149810732309176751305410971312662363647617201123657604907394834939345684258214240789486771175663873656709596772111251055545760647395457108190386153664410081061013499855478780489518565153635126757596224721702562256453577219471377431409144112511882444762361473678525509307197178553038645056377783168060735572630173569049849978658392151948092056375935128870638035244202827668165646833664983696515637518289124222649134789862192070410712202902592538208707739154672453760920805111385445360455670163099375868395862370432712822704732016515527602573757113292017110572498835808489133342870155305758278687826288982504987236620118197860940329761393868823415025616216305191766062405452583209374555929397642497648687723193192512290296575908448569270476030642013660354061082785689124629938970261763974486008664264872672103465592486808552339593355901837194750361493508718023004345236418191490420052516234583982216251284068255378072833657600253145686868494094128705651341491455226175798171814290332741823298951009730023325432353556175947897186226996390889151441635201879499984661747405489005148749644230201059527595574087042087566672567725016054755397846252907955802527435077390303453233067101189830121775785326176019606216299402552405962853603002956421402297789199780846254127954567485056354711095865797436149064455862370508098860814688307639993196845694667849932227109834103039128064162506507769183659434332350574432804000166137291666819545126056052054368791064464870654455415993512735952480064201070623714033215531520024702356304413611793454301896727814657442424083508270887815823296988039486869135983618640718963336473687066175212395794204905104450507958762960256815084541132228509764183586098053769042047722929071823756613001449760186463276778463989764488098512104143984224036824172663693502260504834698324074850547201320752109434742223280038034017327535314005129039986006361860788123469055975356938447364085999451277352317796649399655730023076434529866934249028026607339529362344076955979869732372301857599553956444182721759540973049951030236906905345661707370771074852039980844288787958229245933082896797672165592881405652872184051318187800441370749739849043119056811279043847183975383093003695660412784030209784755792259651205370489028991007427467111026646853326302398791944119780476873321603309545578325867859098066165363168042391147691370911334846137843866548739704773429719675370870566322233396751088440889619966750176958015009932244357982266683699248249714251655308480967643781190729519166560103128773092898399425934585956068751098641214810367968408514126395729830078326154153781068596849585598115666352456752258109595519650088359285370820077701969546369456842224737707091598055275147914962928164979479840028260044870014305969805324523801395611115708319300266459931767959155069511771151869931275593251285244713967093726339290306974248398483187914491108698580918108817892805473198454863553366449534380224722024059809618425068076152586730672971196208944811655457004727725640893090338423809381261550921954782449501783627394117061247624125233873359978974450002687356446385987063200488811939788257837758951455901980199551991799271199600401107530251003553171764311337439659884965924455607825368637099095605973648483378796225635152460099902994492153615036696949892284609109496928578006741681960754622228533520117498452684299294978522808326772974487265906291727310384610775787281683123313618905692547923953317387167600477942497328847967442845303881283930465928851891185099689964856943644281309147618515875696554892318345793181889618999261747823948375249182715692062554032469734910177444151089323347256158245948364042507326624756368339594316412551633732327700770418932694676189045900202251756369177141068805732186224302773174250107178020402406032014305075673482108734023766435461986914151840802362741809733253752058872562385307667639180537904899786630312885984597883439807645776248544017833670827052762180564235779710391227318530794799431054968579091873502196718047577329652885586198759317652762491342092435891031601989228084677480940654312204780635329228725106528169711562256370653531014353485523992835878591379596237642688971997692245650696581533892264653625936598740176289538449275003059227244012817512174128315977703961725411261538139536554182738465320981779573722219860467021207765623083052349093483165675044672770777201133253100036757152213504028303807951132851604629628796953914142036716177179940002241726180291897493116527946529931307964237193923178913233434583688010017180429199492779490322172216757003186748163002066076236481197267310124393857129949853196169804231463083791823897599244977797764107309283037200451194808613773097109934338796136402687130028315882563788014796078784734104433528442107968064156130557694397676254631319847950851426267944201688625932400870810915794841517031465740042726513931115817852601674950210360917772231764220664942854296954350615929094560070638714865626257176204114761776738441662077423120921296732257506297867324083332718589609777776469876844989088397910722096717211809895792407227903003420795278530759523675566343924197014566371421376221436318497516897978759170508213402654813912444360100301228351003921012119267990564908948910431834610463502526157652245098578820826581182259254362465352601978567232891316451401266199056111201128341643687787132935425060744090796787374659087163920312073112487014106002854367795559648679727090658577787439380127783306344253506281639664381857762392766578350700487239242186427026083597421866868606837585832723758987182796574889302059937157590370457141169835749433204295784698270510969462780498794891637981296504796897076875778351772760082211702868236659977301521718276622984357518552981056689395897786017876827928291413877373772664737924522616198267868192883424573595344384424924608607512141750960214866789344906668878907705515486536886497068460520725950949289514681880578864169051525425467067268284853243375629114268967567916924430320812402678579200920702553867655436466756175269718539077378864525256618239241181239425703377459294480815089145673558729098483460752107505029323894334703170206981778366990699737195109085870608553246373507350152968126560323253452284533281350443275458064771245773170873755962831903733083764826537070286617676604063974130486949098330954062115770402151536771163982794185753835853663196585125121872675237476406456735335070982779441852858786315539697658028861975555662869263248334102522963689074174215316149480236294345851801417281981844368040725133835062485618243579985043280582214645796933849627308383154333688175851656638684569560119257241660490987437078053185532469602106304841911570435430867921962347217869091572086771187004471132463781849497271181032802970631878426004214062856205160359354482479189706603787568116152568213409641716148054842059065083871496535053006188555191590482569479058902551628922437241846740541353235984473391068250406686499823263249624312050829049086505185476604709802720179838043962342121726285272205034881714400511193090174435102916635126103503704979357473484767424100061021116125136621591635665552464390511473057769047025726587785020841792026538095919428544564608736335617300865913722103971001289904077748310949941823364651877716420675690737412439199808107242465914343575836628153458685269306508985817689755452458432719766908656583719088216053984752009603895203281072158166326608000708587732604509092383449335729404554768582477604288042263261474981982054337344692538028737518144359648793371495488947923765601684604242375248493893841627750792156418570317411630905364347442405340808043036252713271309643270121389945477135792199438475082590435186462817256062948627663644836521953362658502303500165039948070040396014410462725755359157885080538906809627185741636506168058617567198002601952933508137025844977493317725681850845523741393603009985643053628842929550191981522670386485330261471536595625842690950811277105114180692338224911181991857929034588954075983381457785208541462258479297718412547822876647232017862799484580029269846813204855934115699588718849404243809372958439380200864723192453447465426225307964606451468066629125953154257050469841207057499704850164315280949206299457375480381661298950759310260890424837388093020597157942532386450739015822992341384411075849115854733733752755225674425599224183049667927029446294170665071115668482068282980413606855411446358527255765144060163728181398978586208133079119868309509860802780831678249118715512351309824152145899979090078513786294012917864278224289906779141520141917150036983218263967074606849715683949263724648828827886775404549669308717644927885964777015942550289734463858563437209151756051317201088755739907131104578640744666951365512361285967436819153107176987806338786766555849362035263419136221387362148952203525516484428003652705827792164914923375264398579269088311114979032577422511533106082543581127432613088959146404754198550811258678128775454399330951337582221979918784696144762090846110788304835972818050028337186450952211489753803966847991612332402103924251345576397325277010140047583869018427334153674144747665596568180879927852410946933415470417741785523318493700378031959557440704091615168980061842136996513240709125531047868067566334025224968722062547168972561716275498441618384737160750005601091529938080877510878181309589062610108176567165462876573404687801877202306780031886182666831599246477011833643629597439877613946871505742353281684616940754184095589926670381464572208768817130467218629879649454187203841967846886411535160177841479203497798168719176278660688182554262757100190244469420939342950865885086958056112706535786276988729014949599887008176468399089641879239358660041419596359772359248563015036900943459759509879697817506666182929416568959262176870994540459435962816406958251625013197240557395262405658604650803655720751929776789107370154713704866916875324304834456146106901371818929503900413698028711407838162138318676567886373603743127169273333008582690535676101408724222727191860843700277928909786256929971411372594145141452459848725096639767169164866020528122266063660247332043874378391758070724032692671693800392342406179591749268464039215358449060193834144304340847417468578732688147703355137465361716027728975502622296923721673107703075375419556037557478603298709865489511015265103432903192985004102103858809815783349174352537426613090343624428973958999608990140586036421366801880373173174939605496602183517970101856738866223327624104744444525459612700178181589849541874625595684542273769328371766054068567651827645641482873779746131000048085595679004956616737269871933761058625834828990458771865404770355361478278148687658972655196528059527914215629677429971427588529245191319612404247742073849506187202562400616095114750720065994403823657034789491346920541884113905356460503965331172538725570568625519739153238662578478029812311350027880889855441234273343300499540027970636053446895106988209923704717254470859591599865914377794640378220224874284081353675840501363150657259396923209055063098810231037081441534827129101989590078908216479815937798319531674908582381744074915969332328576557778960031294202113130090192221577901109089348471365262194413484724794657649329556859228640422345187450960465711909304716715208304021655690256662347310892895443066229311734839812947003006861563863834291295532101222834573309659991321437327199561955386251550122501225296337276580991412558940686924245935575344302029011731820934364086586553768837308756486025660542478820502317771722180426435144651139559904415523530939435496346050885949325063512164783011743806226250471006083050331951488067586065835148334211756408597645879723751240072198800906672641583020787305774307398310847540256482495679228498113480165930885407771189958722060111909773047756325847652545710663282937582946422349632552952393159611384669094571524310241225780825563533693160474936312273278487592290670648077742096331607257756077630403434917684669367743314799039283213392734911295758611279230431073133926179425047932401786666330269011495073599796636042084248542175381651125006580567532036749811478658387611587559652507084774574838598086867327606319298974618688241895530715741172742635090815050977774077954570850865786224346148799036841645960923917135581581569909939957527803215229702122905520466408969681844458147322988524734898446934910544437151710189204015043145574004051143909620014160113319071167950945310521491281996069182492413756269653125298890679257249470562627400251012375117442154683680637882331406632124989670029484000337417707656999609401734894645255347472955560212033859148782093929251042998481160864380006338094496782124674780150532020391121274205127373050038649911042030806209490690287338885357016208744225159621542925356853291464256939760958903143681226699561585973125698611906872121463621429120237470034552594288457033172950740110447010358882705106893141861557314345362265685523588435062173752383330007294093089997895658383550554668716948561013470824357819858923277555806083735128157607863631379880600773136484970027604278496011570397180191193037752750964574372597671648786583766648534036082928978203973459413721542443624116320624054745911172430203029378368939468989534004887451284395940280216778690573024372179137293665760049992601207832961347277538365249322818899427310570177362300237924213032000764071907026616964482427886932279797380387147538358210082661502878963359254842308359267360011974415308922452310428968121844696546459612697619012985414732521705075680545100186984361688492076068323420408849548057213403833941756468067872291361283063507646053986107524854658077690769805420240172282931879836808353257335939874395969997629827102159869123171497227816229580148124890986771657681778651334116380924346092413114151396158015963950643694043174333389670445872733458405357260306409842965639188645227995846134925192608873557573613601553687514622845142850942387368456889115613408789267598029716509460986668285871535594023362526392279865419226123195641766596218395757912444561637730007176590409873422013989642166436703981589175615267651615452581680344387850906952803651204002823121226808888065615791107144190268487807523488755108480903453164662339059975852053785380889918472987690753596376081966977914320049116616891159382954920444960216046214831993432295380548172705416204427403511986887294869436743644930688324477621235146173643014108911429478548065598914537620822484551824637235285225799962976726071052099612910830894349607349985221260176841560106461889838847772951287756695045790034996323581286669749843011977493919286172992256439061107604121695183458325792238086437253525164304978445468741776419443108479342728453439583285817350286689727559650976521017222432096604597637843856660277869746117330960588882095140039912275186585004344735624700298153892381295036285032653500537929195688900334289453513733752101088173195643186281928183814215700747947559785367625870174324533303975096009052728657510542624896760893891071568240347252232749397140941421997432837880876398946207543969574027867336203864612138387745111757055233255503144192419153737202654241000544134916503516736034672722258768488560377809197432692504642955300167552388819542516794853252327503542307442891954411765480416663725078006146788367844214053909585100904594355777610324517230137369987988003711533979602596859833704123640836355528088581657396388070514966884332887396071706251883083783485658073423480989135526471965502650654382108468801815335030498800008407973845491901020732252954516221768133417647851374246802014529603251544666720754340754117973354600982074343200757770965768916545229799661727344414774130490840705093099448443530371448402309189671679366875384459920807324926827667120427965610567200402207249404150021650295946446557249495587757585183365831829618386851867147833844255724294317675203418761764709728924265209563746080695684360035238478600696808618633729077959534462379676122546756809099564983635191843529938576105001994680073301651232164537537406451912488083895598316462070077895100841604058786221743452031001297813214016847877657338320582985691547929945435041571518633719910241006239528783179974618366533891539969644397914586998075929249785410133356131691695838010744822131353872074689812854238547367081979073350237941152683552587510521899288731420932561751161767802519565255476244461007988226754164570445361557186006633843508552143722727597590971096651734932983164885783881235247898062321096132280537812569780828087291320699853395398764241267101248321454550694817497956535864481154816117566340897780059604586449556139420228217131507656979271900783221285409555175673678482583519189307032179125903975062869618953346118468417420999692868368657995802306951090413105195098940199239146190851900931093834132714143247289528913451656481220188538604618933917051236281535105827377799309435213126785340085708792075182223850520858568543834928591241358152776832416471005946384506577349280285405014635210848719506616870665208008535820818911017362949426503253568606184346522116367936708399433282576782422734196267977205286127339743770070427430559350289138060327653669091815017879028451148460610916564374430549848153146669927334157069707695870722473238059814695435928807461648469819797110577060061409144883552807354987604646784727590332345383496612090767912846131946612893512003703980125235302502521929994784932310731743949536328650801514768353186219330470559596847541671785793997407599110506918696046089298726353119945124453428908838097668506455319278354913001695734582646131111357656586416428792376600521337345344167942984257068260159017805869714127032917264542495272099165377201024988804629531624246265227932252221581524167532937520320183777235542175279051148856754727542361360197033490632804652248291117061031441727799457370108643719763815683954373663981234045007980407798391690132043913544782190141249928102749844459658504610712455423799840331086589262406855435606378769302534983733946069267240624614703122560217209255943261545371514571695004942501563137955512775865132218935528523605939131480832444615181097684024135524125831923792803643120111752142440729508040242699619800256527810466287090018241534590662854714765578092770799743314053041554665646607821244158541441296331499028260103952802922950221813882990210880251836453272508311022516614794033611039220898690960909350697226856826783876931716012689777509232066125643886213238027842695279142642212932062554927473386247825378053331517498569457232114041635627147148630080753128926423290530053229208271333161792533477100743658120345303489465066279952764916225569701708762247744033393474973277745903740343450838536747736838751441241743249701542820787250950411032115054770875281441085717252038232741700763547858278669912817136345612763187933261859419922791439371866679496273626978562083625201182444006556912700647763950180024693248248469184894531231177734021344831784937786263254090465904146525102748324629736806452638634977735588381968982416577752923060410623483024207647868346140006473553543190302585873593204291050905510835111953513659017343731458233620686896843288580954541996036620921799058792648757132032252794387852597011529791041326328639527677751316769800149339704269890919434197340255369958309019116209097088787185806017008580356946580740115713115121954266292961535356741491179746069884837886566794212889893495909887600890561946127332342688923503061580442371522712074610112895893057209601149126042053339565080417862800007839342611024124426312593282519007303922980301477692104946018790064328631433607060937196057962927103080725963948794021321233113460092813136529461682902062305616708667951769816946551725337258022243133448563338834258874244636913481162153204059902092405465982820627641768471343671159190280585109636027318040262709685348389633116550722619750517278026471515467982143272612257349625398060487930471866976783824371961379373583029143397768684081819648581025411424007400307015203813470008433943249465605266695077695517551395340666716891068508249562971414898094469522255754417663934960060139724976384314559904478108289584564023503998985687916495620947715947096801404370777170551234892251614715807463344768030857628143210004288525025567168409218326573316343126129043857241096492073827761203722338058264076012651953877760056795674968549371751236898209802685197022964408488684844680284306199857816144076902670487476235988390038236676435807114681217853533243798394086865183068902594044921259904813762919805370346507093506711309177664035596099398252006956914995192241466110225569771955385024738411071672114212887888142175172951325961451017952741700761505763487894474915964015618632505879970837948066624678239106255001566220834772036715996520977736597912698920368057694890147297874960797486762047524209542194256810909955802154515827262284961788749589172517551290275100347764736701330898668382842977977366071752869288732442265533032993337867414557681392698736731388637134059886406568886541006111740272306840704843264376265011267196758228313247491643317123534732833565085162718766502426958855600934979771430493760886360843200817753329122537165141613474149911180538513752257986767819009110042846149254607480905911010466224619430227400396468713605322873261397359425676553189624719442340654196977617727448958445703414492445405421057812851427900968670978161885304681657143070113851855712450209086745486122587840579543090509409459031501990371070142900020048635012291003404231428620867784549964414421271291068911151231681249963203343482581420800927313368222345775199438409935546674264530907525957277078330096433703552480906668166209884299685424487510538907259752853703314931261365658166750322580849197624327929306994730389904937637411347564163259107086236924551378334681428493499854145540485734117630581902496489322673346692896634707042244664820017497541391675381956833619255303900407262536660960794432377122350401671338108238334935688816074310255705759820769482344634857701804670051599997578296005737063955772213878120444568959395378283131687109138027456792228464413269236907513414763091183919873468595980025091334171669248063979215959479363736928707756163945071112577765294080605859868878811805654620282135174591059574226908732641450098169733757434158755487115347453390216976744615988029951817046687784049528401525941229780127285239176271729505785462365434070058248087745539472435394117460500946199583357149716272660854888817975126875950633780479254228728540776481408261420310658661642768144090995778210923033238629416009924371940854246466578440388925364223308223539527447115850864784778324282136392513393833358293056976250619438289801381759623175779330117161278892376969327043309425188099017843270755341784604825053841597172703337640342798265093273576730936796688139140915894480572242630339853323305409550703855930422384971969258468339970109514703319987433020227515620631861532912298805682576839909054086161412486600546433184703294502207845322397971458767346077628116707910690562446451280122072462344045305676910530179891571679450733933361401768394524144779283585955371605029996660388524556137664006173335163520268946641790592863041232191088965862438926020199810824098466999430609228657922393142545280377007553464709750073862211868579250732807193711118680094774837590150198883059199182771017850576867528043506162684746789920996586446412377847423943625399718407809429466638153672227852994712999477214146437387116873532072277288274410052172911900558822093417309539884546508066241900965786453540597726691877326666940410537712870327515531827885583013519611620646670814702440095113946625330782906137912701729807729270263841606726287223812778264279716085931181396463001170808764826974103728945880953940497791931191544882504045999995340716526011720838335947187360730019699902899898287548368587463784070678061778526194672661586213433127801711766641616686907770135854475703536752864166774736714538802599921482202823927382937857365375575694651279917312062099140821361241110663554670306459183112857912128219706684845124365363434542142153934031840304310322968425831796354136861397613074162639167997991174520646588841121514026134936995041306754025077450153989044519543681262047287133266132796134012835834043416196668803584587716389072370011821356913236839510714534470115022040978252807694431365280015475601649909467455225810018301819462317813546744746769793523783631598431940321350405533809254886183165487519925422203125210813645595929155574584021655760017392964456666380832298224858046151204854425514747676202581253001729110535747086111822826958063589016826761639426502582669914092311938273232966013703251163757925240453736520944222196887569470193076484191098813279897072283980438470727668709412303499904258689105879514795971223900896404003334549274297418466949848885837571173086168657371084471265838146682578144285646924766739716300306265587800817872075906270197517009783657566425390862986093021366565782430176479036986320376989344991206569648272579127480664302501514702211671597448626332284567195854021566033204706618968356007112162069677897403729682165286497662025309458048308323980864651650616185285399828032196096579545364021124650353241477894930997644362461596403848575346782001419839019493302140923511005848238450312541910794560315634300039911449015826515524578412738056940431676014393649635124440674733022801872486680976725330583453661914389929492973951178392446747693803925568837930669643507088628407913898653508885506930968309147056988160535675679072646564170783956564315960181379367740697122088199509684643735271321253633407751115530140665589015174142247382626409264160785613652606852277334450427515381421494567544222271841675606358800753960456571895031922391977934283996501058578382263745578870227392609727939878922961328189529769203709993044928430044065648922845536737628797907065112947484591010722723375540172652836117800519983888636383645399113936920431720068230783763518196063113879314068122753628304664001278044089218209593740538112549840598183529405764110210613653659118460393857565390511447397753203789649918095385041489223614991430202547875042708536398832762232739552945779907460565204529713099318395867452633977228953936071167109622574126803265364414218928621974591342178659002551827557993344996524887451148059961576066854379210966916035751001653325903748081762441175035264883118777545353177255552914031894578590011603565934185913354241948805031743515410875377941195780271334578809055390142698806251238185122399363953408818020422107588915248810329674939477871758440050192565254895728950721249011228153079459947226787003461266147231255225306551254920899407634301573404559031338827196159528186126084505484861061087023562150440604378175693122449414772544784529082486429125175086055988984833381101678793907110598680280081345558621021418119393136967624769531119454271148312366953700118203908140781909536531742846209166041158080772975681809196216245509062592548731187498249032355098437484412724270863569034473730833377640075185977700598129344793014732494520408221630941514220419992320737302848362671958028560917446586498745551114694496522091329387454878359004759075821897601720817571148988008617557371224726679935539199690614057710767308983233304903359245170591535498327239217484402043420840033188399015772072232782323506986514960650412038177253096030030935418455303889371130914974533014634800093460857738044730655766487708974088475093374021761996259164200465967840837383447703361383714957376911043447045564039177920802621975227797875621791051141956081161339334450888945957830500295523439978166109971567064095657479642630869018787418507730587493528014417009421508981866570113059510492937082062252277582643355156584072238269729354682342804047725639778527406482703238003676277396738076577351545631814231491910439831200328576822183264606304758783282655461699579587747070267581418876732257896349856111197477485037958410712738544933816845832813308233378294397812433663142809246032951717960427520971942772665192266280121933093836975547871622107665762131203118942478399687993323507432588927656374482027961214046529715971188720091436248619021399600801544114620952251845308199949551471942793824840373543485972264446783943959295413869004464981014947269140513187350133098766034740658857780757855421329615695490674400147452953741714670114855222529731796308966037896342820427560639942447258341687708793744034212119155701896157000227600025043719565528330142529709955427157435130569684092483258577341498573890201340490815739901858111023111541080964232034986343046427161991051370719540811963103609666658153332031256014049330161975874413524689608661578143698170484747028900474453409766707969458590998905081788703050898072034365119642768142236660567623169158589051893271854009441595909510263323073693159995315226017643664111176470938753213381521386660409926470627826775233170274704622344032010212829591018860594477900562742111211580529754756712756822781525019831349640778396250648868507701939743011210206547526474833735194898437684528567695681503438559700277903840742278605906049552517612417889750528673830394005126187104749917423348317220467839935827431454399555832605256461788492164758118381477643561529518532064525974923407044162635562143362960786990793692481162944015805683465972943087177954309857769518703300983900298312180842872793654627829442902591481007537332803596640635565988887157331333854407621926427224770393348497121585531910229308753263564413784986546856559623595089050532447422204766423514461567520266474721915495985078680374926584196991725342101726380728473010268139850748969957999667561561279490607236101868948505652227799764066719330015746180135265930206512833861159330222818586158525531972235986201953294409755892707640976166425628169241262705876724239692880066319741229080092097752830699547238246218254548067127109276531494722513269070803200602011103041752493216158685000100671755079786576108656415549236859298512484717464200626424642525942391602305018387806069697812930423015873384498410512275788936288816301380422397480508248510081784738505025725850692085625352464263670392980280205757029205860406603750727297140365471372990692334986061431818752328265070961973777551271202618645351027400372337978665852843724572190988389326958386384024596965693303486792431974523433609018893888318503953889546117659808455660861984769536002187683599710712986902405577112015184904233333371985451526939643752642333478170156300334646421308343433586499449704319328262287071287544585892995408163867114147527614273647237590775175101237059159727638344606592579769140392871066862704251172323697450752810729377019724084288460127481371147625765194196668303624513612630161497205746678230383887304285185620344281293629961605544312568414383650600811458803538454608971370886839805004766102628538905935659037303551039264052290054588277020271916620087012749990161329021888136680705070307504363210311878658427790774842461485082502750658970037762496650855855711128910170728293425452364547662345176403001261376796092219209210330168562524839352856271177444214200622259811718243735871326726859093193243788489395933770011397749140752077337275547306852718161889108014347801528131045800665180509568761037089566164647262735180943329457271149122948077431305040808522747289260107294722433521045433329130724891317518872127450495242815441427011472711466810005194680362490476179551857173523342779034251516082593517651838393348069553709354820509651300171977763708608908708668295329195644551581748284942273393116012518051619164004514542384714046150625574869437118050816935461361305117259390960314855604966674629734038377127826043147772234183574952696588572628473413414866148832700551528034298536522544295772025368887198794998943883136081599683549181721808898217135856049943089358958824188464074458839354248413495417660879358278255122772444930245102850042431602862477755511874122197476462247362233666427251838685577066090316520473003651024730733517843019202108278994334185792334190527018897113096698930883424236192285141395007262827926704740768049552857996903674373519964717315208772083608752320257235844401341766706117937841600159216912683662218440495429230572747201412108684769952100269100599442452103218519013013789223247774812209738484668009933451797755104106571532788107264024041601728370773905313703216271983256400944237156384235555177075288180556006443486652907559872706727116429181293398030995187144876002565772297922317145012045702032895186822172614002186604057237120612557217964217595870970598813403485349200863020728279291717130527121158390575670057550670873841530759005173032622697322708570210878247172290539393315351456716109395664677269725565062656875685561990621130486379613339275570043390381285792822004243333900154732683637088168562174738960948107131170409735979036091682481698606341456950141386288431938518453555856713402235946395935317982147695675093861254811051475701718118441583425664658454378437503289071838632649779673917290538479915972065407148483928211856391342767241034759070531633047064911835685032445823250235061632600592773693969931519367404651149288817907555741090151049453403593913159721902283708262286126200961416102736669780555532945112654911624429043501684508123259900730230954378515138922806517403278571787528276316440427566784824917088432768081060196373000746051050328838181336031397055021887091438947198515254780055168753685152801072683471735472704261841859722058706457202003531055731446507848431490830503771164757253047359179780814008468154472214221406413714584610032302002657604897115916074017075463562401100044925397684038953537627612155089594413322473306813916521556007773513657087156392683648634519223328824326140461014033978288551505138134944316305377941525862974167285415432596676251587460741747911397271094887471465183749938200526841273219540947835361871519357845556541759162782443462652352865886068166408761401019921996767905684823933961538738739440737931012363660229083257867586274883060465526007488370352624981768081646460427429327822200567286856672304189124485761070279506178635003861730552652079434864210616858320984235260236098393246710711935106468013445023117053464351551584017085421491586786557537144236568969313553235095939669254931116564814016234871041469875623147263737180447296209840872274389254312501686564344813933038745944393142917131755226409898197081525732610453001079851088492329702633204515898445975894777486336518110858754120078624026175122495503704191955291965574040385231370419145197058597003049363007991514408440454795828251255081400670933101491412257629442726133078869633261982990550712847614312034722939173579448273658106671883500937251702413019047733791388372315615178248183981167567736280198806249191644107192194562352968128277542136334786732943016582421127536173609089639042759386421783469527847797364734002989616889398238029549273843323602734002308772106486344176532395550779966474058847216969386836538274584549984354505365642260502355556220060476519094343877353061321496223168392312274143147994747401312764091471628399789716356463828623009278458926336902011560146874077378375198792300061074862715678097755764573042123990299073946927461432114084574167401494390713426519396569707506000128428821684031423685392327525742724288536700545047086390356936153866846911872247919223169379664409007872239232000369810221616463247977109716890204309741700618988913295432936332152207590242501472125613016513282212559243216816563572403358665209985010215303580631802009808842418048187522852703909403929045187929321237039196651003876164756851965850793162316120959953764153046951109059567915977350749793443339454080867036869560023134269002661949918649355802292130023916958742627303763692271470505789099449430484063975504411994826848851398408031131043020697358862332162856776095606742719900135719596219952266700604969041832300002503319006397839855943047539964670546582335112853700882887510573288822632747015193090082465167252285311816292085168941587733230770827633654779501750226115609977483483934358678893321820697747481138685380569585189079338228600154034852551028857243457477113587013550643691953936999422545271395673367321502374412529412405078090917277709443769529859357653145270668492035547771184596047869971097707776376939624073353024724527354763722115584167314226866905919414213574279499979270486712082194175477702612479468970146910273162986811743728738443507359091118161009455277683266035070382664470608340299507446789747402032473091449680313393033195766151287397584828229831769504023948746959063372189189515704692023277023031137902349973101491749991848761342066375064873213023272849519395797658244711244438916021638760373969973982796198474673743547770776991064387344259170031756565776554507758588457403596391049716308842016208532215437422650828893863642012526933658305010577859579773701060673076428264121870295017103996959754682775442879557309408018936436423645583769936320993396814445819505530692325232599633765184352964284543259109037447847783660772784256833331237957180208324577135951945507953846750589755929278502223696111363949430955102368778210774288660493698512146506226783184167249092613287705946650120064086677885651361647189835590371832786049502352134351871128086215697285473155025060523661695679956920445765275723689809066301510673189368121355888683713422549397578748899373110920419274518054746201918719589372853993927128508381173975397744892384630041727332033385993338474453641496460794084140468987403302287810423944448541916368032961706465375950643459458454365839328895282995814173350507559901748313140543163567176135347892234547860917803938650460712531553441227159497148322470151182639451862673876612852665749147801263663999394293517441517479640410436358895762298900268494017380734711172076543258111243392205809182760671655374354318878414409184859824931186869065431463064104873451237661552202475766660699084207324331488518758851542215815101414955656952120137101864636303445034766636851166594452032265199737424534934720533614515069843726644728043218932751287187163198976264645378046750912439654171972875929281411517137799801339566046405775576127909784976373938838502769637496166477432347253546708864659265408480533358597837339239495851122432809762319989423050206565708118712967253473214894875547806100757819908648406418539577999102237100003826943846051987362508844801156427084212662320207465721439520933659481965485684310566536458533472022357022443619876258895335480904904645375639565157127525902085935580923740970253044803060615301494529249328590973852193488134501383983960431860865506494195032055077546392877822592499363918095954809254458626310122188651383571731056990651291915064228182639768537102154749837580605512557681033761113519154832671072891149448878089497764772006557340252458001553908997612666771579904935949705762835295168973225610067978347094368165253052127811743941172737870658625139654013949015802386312014144115130025174818998137773206336326602688420342613752278236636279544022035565444368763159123412372068432640748155905685549179841205004115122532573696514616946406245470017165944986235829014602731123849140955732993094781296955895574309569010475831870721931391016802970038215606538221575268415260851510277968691964526118929305885075133550488470368808684529346620015132728875763091876909847852408249477217341559796147605186703577758209988479611339462852889727366008629656821999535596284506979343274458947560850894152724967171921817424507255447773423316275875214105928383504741659790289622928106745487493680164125557798220129625878951660328825105065888113081453648902300035504769564089821355111547052973977670727611939903972714294679449658848274137296185757681443145287839233462017121916610631470787050574959522894607725888053987235491080630456917716202046674849376081346857188851329376147531681966302489152558014986022302733853267050728689653317049605495470220239993897017446468675961043502600732817279495780265014967190250483787562038600559122397575221024581996407363966160773505905923830621106402919502646371415458153805536759917023503428555500769257813272169685342669303631038127890799656758833566502083319026795058821499064351923141633063929269345592890625857783975525852414957924615971163746046559688524440866103516721579225889011875382800418199996283814138076500508543646376282926981178352101372815114991076601162829142150359046398036505672180866972693040615344345632552119901492420657968642663495159874255261127874418780304977415841512132405853736643334388693206605115145135439277336394796219430544468868752012894649502130078485800703973425712823904141095719427874560388358290069546183145864662422666643745181961723715229968237569405674732362995829365189937056892112298129257168752555793014035640859886954796548569205866650489237334122285587212185553983060398414092777817433281992576075086172762289729448977391282523702367745233987389088457964966457704759276988627338922372855267526840869822808016422589381863173089410260318131100164842565177860513921001912833457713024562934710662547549829978357839527685683993421003422725685813484956055589143466943191726891251651743222783549331333291162340494955526349777218409237688051697800297093483491404859387536981746193282586338506177618047534626637354846119815996415969431164321205825683280688111755583549868156138621989133672694087271544561192637955183493896292318151128097450205015535261296290251991116065376747397788469815050215589782970760998293134431324807543965189043812707566630613025838368038277292086731881488666753689386989779151328943588736375639095767481031389464466101710050748256696336610074740289735700447942456379558679695140027686251417828618405727001082972310674306311294085427084636994445334314384515475237775157761889332810533780700861360200882095205404009413916672126253464306316906212627646606082036733069928487683306464952051819103551663536574442782105167063430619466781331743968252544934666921636491795140180954912384061073793177951003409275307356981654229963838528196772743271771636560272525277142601747712913756453015414710227345178212809870587416789361134130975542677602388261308169953841213137253720007857054680368108576981020726574593622508851655396804383618810553790787060378296539998177734825959516548872689473672296114381397218164513971584171909294930899872606022891099040687406362888542724656047024097031103338739812826076443704636178244205184075542573459817309686742617593852467287707462714780212613380861179283996627315704530660005823486576868849822319264029327557708219261677311303692159969157866848765358743745935928441968657720397021388858873640542745736144989304148283088765687723761508065763482809278153645748971816223685200147171482535031497035970148679885538998183556541635670179946760217237505299610572935829068300675073616117962506482103331071472467118554106156793108395566737471823280883528659911316010074387386154425378333378902855352532276163858098276274122781104207072537855774695151412680583911503461464337598235142422166103923085978773437664527729383832953665051352832856327587739132291810514716659965600271482899958601160817763906587626404567307281566558290236852992730894681522321890240852127584149342228976271129774636694255131411231031602029281027093491112051996986695677497174210884012316355604649130426112405849636961859227031885132373440470730793104725087907870290927303412645869336182452484133039251304111011343383384245638076720020310632057466083756368061626734705824470135506185986857576846312347474156431378871963033899682521924869912671972551312938133446631720928343134267240918741939983911740750901651506315182359538084544899262613050879036530726480816624770270928695819951708521365565546804028345407067722227879942734217032824025581484512106723604405515486158054972572900681518782846878099724201582144016452764862317373648030545627944617313265514435776766500423518550230887833661305117935777386354256521515149218582186996889409622653997874479247149346530982531373416263559012784986647903878607315524688037396140801203413920243412497890218280175601806006742777034284609777735109265456258649999562286578548078513276469953209088274857118406030543851987423130419669558908040034966269576526632336726714622286819042126804787346108154270686067168396855428458021236592478828409700566800125641210850161326562383537359052956549668920803214278259171710556435195961239200563682768360187720650502094824948457992509053754509044338175702998426708271422986848885339273456347041372020433154455672710135018342940933992006932214927932768205651673462882332405559703096785137089227890221740810501193126731826133694175884367175880071873260827481104665201257720639181554679340679378861812320155974059029296611940869619210439033089461318557444274164191446720865743221938640424363528181075971286183598007103258068971083845612990327901443044086885134092160770219757652926739168036834421570259684818561701248000015424864762069941489449335100665215461859509215332560372667136305780329523825676774117802163856490312392649580618161012817857963663860934936923464269684133606960652097765040464739334530057959930193172512219835835458493031457428410456103453400840510407936626009785200721365565286768561443367755838086502807413847008452107817871641173011465540991643466108357345438234031822495738864160178023119646769448408359136550322349138476094171960964004556365689410730730029773362364215710800372419425179612671308359227159840452717813298267074529059906825346494553923123257744026703954898435322472074924895262889453588743697259328035746952053056039555450205242769223950592531152444474329394032494393497034399874305403379967279394638260167017663070338614896000744192761775271032294051317972329828340330211496938910094152666308091599512863710714839862924860655179626282281957914041041039978541821203799700056247449711208212864471288892245098465012541514204468288396013439602276436709142344338131003920835680836418392662723080928586175986491867174425041576979082543015645798744846285013879349323442382343941095843753694075082299672789881801398140876363349735072120266117651801856607103709216519034698657596466882603241946166629480734329606792689109743967222002747558330541006214704270969097968157043528084855183597200071234389662132810962951587067905527182060269378182320977668128399870828378059403795708526198154525588240506803695846462508530570553607332656214784211260316100392629002952344083805676094492211620616171497016461258270108701922484576495096349260221530943839413877574055943500778033099989163604218766670286389576594625830337106993541947558545588928007237441458828663392733892535054505856873554081332456298352136059665252709894606399455667719504339808319420131083999958753264227552121228915169172466690496298467691757113330667870086937146674835360353995734384673035440858642644510752104831312232077692898122970898604116677710333093668458283948488707657167543438034443813445502023262455051828390970773189096387032263779432878039967873810024401743839681603685574203506428989150330175981482938908374445971266751362433528018251848392289274892862054536846237580350543916986016542652084626324823877012145600149602026687000224908677987230323789224359327942488892724218560117633022809233444059981994537352674824482448908787712134328846230319827733630667774502115633716106800469938769515602260841238463925752206645272914589649692126573558867928253127187508255471121768997199710017872327294111957592927142285421752598191016290526374734748049371819729115435075241887914134210023846437892565577563113362909967616775528283276608406021327620164391531719222908747627783872123663066080786755480363538937786042194601749978356257464285530814233926729845547394281382245747822746868434102316533879881838015353811195156546381702565304425101186458070978995262423582314371346077919481036260130313357912322971432554733706969101475829064229615253964589006076264346233177998408039080276979182940071442080438495519630914298209211378441853527841388423477206310192202016122283379764276228282311508569960988572595297616583146539670966491576692248052412488225081201475421358622690884799503628478651874563332033467186397820088369705840704834635046547456987900568474564154660353775343673048713425291286304778799751500625777799078785116416322397252465003857810186533521834670092537660933443340918677610421839327252073969202811801646711623141193279405295104777087129698988289032683197667927263525372112298285618226343292159826977333973452965537232498403484723750683360017381061184611105774534184396207620058652090464867706866010830715260322763639743436563401636886813640804290554957846257886662406660837634015194426393984006794788934802217868498657267474465912196862317960470874234011982654398061906190499785500047140987297545947737250476071700680072332942603455781045460799044585447456529925067346473399080667290012613498985051368195807550965983759476796870039927956527777514246145531789951065338961473519127970721877714393207654158600990308078834048005599257332528755724314571891849137412411808282775717500395540082145347801673091723861783030647299301361280573643544586825604771414921229551600949366126756856352221948084478693642483247771517594234243646262433896651191657643288626449918676481304365666373663193799343920194470269657344216628064163057915831333106717821088576386659990639484726373700669975752447216488373626515294296949133734007222970598790902744525172952108087572321922135645772866727055094664923111202849246763907011954114149072021188995335228551223314914363404022469025880254364295442010186707218665351961601122380200389841746038495157461757424288863217921491939986426709623547877972637163270912819363542047072228215062165944430638161431677451374240257846121337740958084172596494029944328376294736647655770814437491706861058789918787408111431411299591845940944831019796889290206548247696521326116328987715231781295068161316611973793394433171223307693047939335052182540060050200959035978046225296686180821207233270186373119137391560468238364343408410086421390350087051747602553881592613785082159006564509708774933690046000106983358062289999863904439742559076181725779863925949919366365014521728270101389783754322816686414703441143652893147728421178903943790104505939485328643991166948452480570813565776519608656434617833395030756784272409085833406122878608275569408482656970275905099881501837569315009219816412408174111751464331848441318004433058293490419704308181131547075555062122654307996839861712964948549934586100995999578935637018285460220667969583002940186143499892955748972412011639135293272859305565840380707210497049857344844006527605569245872464555376987218476858389324907301339882561825533731924445019804041650058174778235082769421108817404885244456410685287579524290522576192207750432593791612341841316082334204607135521435308020046257432950589439135476078487887483531912626667892751569679213353403765604883999226838890122467414628037288563831493641523227896317917774584538198865487401310641155763675221512941308634547339326323023925172742456106619006857990925281866852245677763441137161195480929508261385663598897670496378365949778606037189730392024082602728832576187874962233878124378582135653811047100894380133843379873784106939185601094429740202871111158718574575904588210520354512100319807768255771601184631174355899658347074376836456962498030146792084686192467551698290988744238565725602717895572157018554296942072893591551942346631421400291367171864447746388255372448182249751628963718679042803800451742406174854150377963137218181856792285974012933670069301525527447791028978354513400182792063253035688157648634885501412285366702154953948836519336400877368004717677590175124511054153014498163581471707508747989087216626927350418538730262240174381447857146472612088997959114756828208418276617858742558463140733465975216468198623010911169459026965339181164103212970058121533815718791549859442857610028595641309602264367907649530197747818856481452395254951280118897364848432735269409082786091797269650392440032856272458156744157841485001724688671526401356680318608366412051657951069704551122924233493545547369828066388188814785537019475318315436225643352105265365910289410468627637483204769035677319861557954178460090337800181748598530217553057619405322012913409334437735108918866604526416448393438600724727095518725014768774678681570827742795047114591008331071332612413145341242662708112557336849494824032086290619823770974207163995159365217151377657442637725665607890775956925039984969567400646347916620884428465167925457358181072575710965596477835677782316694473123901517974434744665913040155831574491733555123944154682490733906109252907722664120463979517807690270263096540925849629659914923673518087977455673033571251881319797453524895700443967198260417048965908898877719175415261263777614572330483501287851604704826748071513574624312864020655026285593569032655554891709882099683843834333387687110055739742786373835288782597926029943542043333303618680283351622303096126374662604247623718119327630130154739106163869275961500811662509850469711042992623748526160987803589080114858205972771373546937474932936367405442774576514478657134388694971624387531632933694004520427189149430889573829450771575560374000517236408965487989101137425105647630874532078952868221565943923890061670310543265643753126903174463882879260776138062616157335304115109487984618707259649189196563987367406041539593574740203318606476277896648097738953495619109741521269818227148560976450002642666541396646523466504810937566474062297342775569757406416052609450843023098525217793730075196389099163617605041806393647756707003847054184281244748342179767356609727055465733518140370522749055804912103308714569897040939575545725558898648650547503231931549674755964908438552864116982728788911332768071485706079291529090169939162578919815989346954229904255539398185185990371451030335643657927347788837227737406800655199833641687994193636479560656704146502844345794976241060935677030338998144225361919270364796432692809630791587824389657330050723571969270083540032040221742664012051691717288056783858820105613926983712985635247130689209202561841303786767067375621251533574140667645856412463787990523555319333837839404773478351216673856515129016951889800241253530725611334776657472744133760393593268381561665636091231582878644225882755288881767536419053981925359355677270195144950265565975022087225548432826426590067081078584493188305998353085620380565908844324194969388560650234950340170965418836825435967724795121853430479057737984152142719240418147279304880930640550908234907964723029888172169066472996508737161438741537035217318516755267415917415141750238907096805065777015147509175730664917954544970311437946747403119136939564350362802445769582752654942903688912373871078029382688871973310301873723462888193824811376824720156646238892588844402137329451093395761044078819735630002265327354067693173890057195096153222581715396587740356060178522394668880022213749696651179738367743732424660066261832594573120224592456807476724265330479693171948337479663014676230198005534537814650943093980457203365491512508349400100420524000794832300727824696618770610689392318036344639446225857925515807608805321501695200481650396517584912264848873520947446167564718092931963595162314277574411139149250601522042380422998954789943616622130749110821634657159760743502969335317871570251360634296169502749924746822860022203469942469225543763463802011645440268579430004797786648905630891946733656886215002613424037122684390989328370410382578774494774058784066115015522183641983396410909137601577830958000610306234397046719876061809538813655969855825632675602696443571699652051983304719982789633728588958397790903249800580972310310862417379967051710939884098062259025545460218161317755276426043339209771006514262923795205885229517757538358185498094280239084610748104224317146424425305253161990492750403384756302790201738908499085735739843480840418098967921745768539861356118163199713668257809830484375865474176798230069574244250223507500949484875091879626534705939463102179759344571503160560960613537940300119682653202545010978187353556773611625568046233613074502395919982922744916124707160184010974505512162933077858302131938065119331870248412309523137402583962904674161899141266651353939484722862741437724657677757513626585931526476275418261889228395025024778072831426021459186046532597864425459861238297963093088226844394804361193150559264738299970434255779951089631627669573556495032869793811117281499591882881314206303056564246557643267863556413207448228376717801866440445130577510659715486296138036621208641508303596231682174846761941420202676765515772713500148785852137882516882429384376405263645107488833244006461694168357224770060315981668354109430048955271252335374862488361677155105030210867729678293022955203277908595641544672464894108461075221245540593112101122861158492539144460894916909253464372197150868697992820947514411466569955145522855782935891664733081434852787636792179794221077543426076399584935652429064503292642062966517122120176066195545863114247712980263638596640451447868605298888091631097492466156150351783622455644618882088209032569557787074489043901777037612291095197967710733383503985463924922230011597727768787650423983715079931628351546819463782660479741505258426150633333799222910478832255388365866880106585310052180528780878355595235595106434431666655155719416855479233480873848192382851284742428772589193411179200290963380211414919891792195206793996438294276994748971855592117487444510896922005981862525778087512146544712740111624210066771582109262290922708870326186757894021459658875269192435625910224680008653592473784561949413603287834794381401668788119611090937555910928918685743374741409083124072916375281986827005712477240427752560528043509010818686810395832080244590103347203203748295191117349736334427127253561985725339022711892780785720393697439417916782612088771396066333063609282976726262643816127432966047529991106939332313673340926566269565155021315323139247531525778191933537413323233773795657200843902851029734030786690521005804751145555027612610374636145574734432506834232995115428964633953437845967699658810532418028850164350557391283088884009875512159120475528595339679789700125731881951493035896185952412742389220265994909343563115188298533523524852293622830441794033465546986834594553358042034721146231710129018375027518817610486353838745242530747604533757475490489514688239913922950061417954563873841552090085466557549969579355356158298709550635610294186010661840475840923970283695945165250171635302742518512672258258359010831659494222615463691945134273021676531923835313081569439776117204392007451960340649384151866723510162670297011342542169778579329213904652965680321077601256209396958290867710841986228901002219273686540084235068559383385664475994046809203945637032999665766655097951749522848170627435640391584960695738833698928422919035135949429091553835121868941090401680798934336240195551578391294507546420478706903065134019061774241032438104911619576448653307269297977766410129448870591363850561033359229037888433570611117317664660234180589533962423289528224434405846140547842614069050697979048673027730295595749872469264148300467352045347636938024366279301319647910566467760127802960370464101396654626009262712519328584447243966106237303084305785960773581327111112790561160815980579177775381785285543762631602885958045879811885275752973144946115900039305003106009576404304373931723638230186125107570588191307971922854337291293487332001065872877117034410555628724755264729532003753908635333383278186111017687266518680940368939824655516272997214545253068119599105991798809415649341314219027809478187082218046721643634319918555821548648215778924877512307940357036890080370823178539135242818579573045624819151751322757901204722343273466777079211558245753103893744005966243088919304852596927838348092560809344482325343077172473463521469283396444912633864926643962817269881801044214741574142967704124551146755621950439635604744863701066848144052212631500577414921514398675003969330945743821869319416304298829913005306491486743454721211932068842761720120439388731966844797136592364418422396682954608180395208659385325609024131725205101885893583322018992618818046292766808623850962233022114733898971373245618608159195959594336315558871139976225449294593663871716672478604196419535825153333980180927096875952435199337456316507184180565545985394722342692628375369289279682301093684722516557487804804076517544600241078090086215991130602178181560500633451787518852509367998530876478467071361322119812678362728865362798364885882682816897507492200452477839089179645647836768517384477293069596824098623443974287440693729476606991565954718820751132576053070999414581896825155493225958990418880990981611409570444376540896608467597723087321144153034234889764817951684286464088878372064338810177737334368373304334609055272471868538354719367886249128368200150226220877166532285237071026452247103394732496832207609843637852915772227705942438635281574930394525708683140006826245725560621358288815809754330984648477318457982836882691665617304137722603336293143613606826938826991498768613436003611517147132651357484572449767737975935149439905428427192451354734386701143409574997304647115414293282108752114170535580270196595778380924275838445655079638940449882848213872685024967738137798557170771069237793666221330459164005913530444284472004523184836862092577934223322406770939286886081417975036712986899480392117421909381488318909091294313756626376974161724682901107115152042308748774964866655399055092071291116621934725489269340684978211245337107237258901057819744817600471204321383269265171240278543645102903151903358158470908960598857273505929742477353474082183784898338655048414251995955147608482633565154139409454138653546893518874714211828076868635159608421899618328314720095674321210231329134132994235902318929762957281803171815247789942938655133715253024018255113234129988617355292850749978477490526027660750274531753522688773889334273432164616293199162732223701525131167022630515710874573516963700820326713209501949783691673687426891967908484526097307723982827435294434134274110584951161613029296641308060298006714140578414003437441104068337769686155703905061840470357161249098706173551394428048935109148020386911986463737230492188871382610278753913725927168676129196553139418112989635448603797809366668382599245016578868928919665372641066790277274229260081541107292887989500742422853821276207820400039784455535441945602000836287955419499386003472759288488119370774468643779819603981073379398058518357874792717935788216545356522818260878516308363912792508208510847172248466870180687137818228166387902789261675953190169775967782106018459583871197984233424911739502672666132574423119208783199994714631160376627247552235567380491994101189951716210977229294807725616024839712897962098765980965453575918736600196105267294165726061141906280563234251077725494816938881971999023765502859602079500457941411046286721839858666164978786394722537874856047383130216342167371853856205229276390351179248075751354374394159862300190435393807091043463775881989777877749758990201165533385671325364770264309782439989148821373864147679412800557317372090707400828174373053170606194204280955168251600862510541402127568645539832037736319951889174341578358967025552392821718581113688906528043888304169405012438258104620758446618538381006423950582847112564915777708869472645980998944732712457890347443769768869955497866965563101466261051554922867512396932494327016003964249945099320680202985794655398299956733431274002726114102435421512968713401560301738967914728562855484120517281927936826370166118805036775798294344636639442877278450088976882485454058615343989783840183693516054688394791995324350582100833532201650687785939796619329122785410483106933978759414611341729563069342679354468266887396977540740393788922771132777696609792992115302864330164536351473686712354123026396323387997054846228498166677230531146899713686720600684133821841903136953136011404839111482852842529947208255963955327261032730715884671046309649204260993735304281702471628269544476664564024710463779071061161256687148713045674878158342475786976100220520835374472050181779229032998827646481149403621340964140973632205630887342127956998138786876940355383004330425165912180073228161857226154575793136899742145074433214242322658227389588298302151689278783756198835852030483618461240853499133848003089717926473021200018033511546087466430870434477815849776487681922247988098645053467377423161821103162777932295496002695795653947961828821754278135570178494715302194597360327083465699938611703857616545736007729382013254623170095322672629985557060060747522780781107395436540953129954826016598883367104409290971722793716079470673154853616324296062811266292204986917118977471172878947087420828749402613011413309907424907459344715207844692092534595934823655011595584539792838570642699060843711822928368149764244726757718786154710986573179738110191351935113435153332766967254084112909725189005209647135239700384979650468147521282179571258820686285115414867192722556298158170474226843999266718059183552520748805548694940468063623158747850768596156433608935217099846624003240528761528290350095817376599237658824930779991932700330511295325169998867592799476983512250571164594536654467143303821226158351321387048619954972576332418130024625276728479656942945955972881316367587929621426486061789278071972973559571380337556322386785792746262861520238681679061205651374437330989803094602804552300618769829929915318333846685772021792682076168595752647762520565539019255468991411706499368428192256949330336209256595338736299609679859063816491247466680335972918960719557138784096707050322420405086518795668262111147286615696329048601427809053555242939551983429502573639003896081292636853039890774013264066310105737098246634853669412152454760678059514126973343070252995375376191269749575397233926924610203649608363231001642670716471518260028551465504174299057492524440217190849317108795960988489018273081027183611025527394756089448070060718079993985179002391229548415662706185496365442628181982225616151585081296755221642581849768314879173356504291212358041834473294918898123579487720974929315725447119805487527574565623534130354677248445346956611817089159858906677270966070179330450685674419106953622585981773763344291737484185562954763029589581697146848879682604352036088088035026878704103937762266803615336726192944518193059026735609818625860771732564509788253079688719663622809793006725268983395951382870719239909861042226351547219256097151577724174925075595410548873300161147131405328333320701898404711615443522177892978525559292596328558130336900027506601125200087478858083905834850282448417120745530597650619858347757725500031724757530895987730546983442101327245825070594027252931903483404534612783601098525736763969653725412196537892786110072818414151699444206052159501463442245738135877795296478855307654410338873248804557836458947034489492037318562075628858627857129154167561843695154332275246228713506481457423947014416014089784648572314174935489918163681624490236525523820999522236028488663881104531419247988318654357314218156557020944901502961722305672810523199458921475242111691144570330193965035578498042555143777073959050820625922786793989165951130216681498074730048191635719142087327617418630532607177292695385020529525012764947359057416313204186114182233781225784318272927763108285326173618965223767946939935934237673921992064010393825475888954272150286704938053989978321881919466853515846969303196087178394942127021135362230799238405812206967420555723420518834143983431555008167201406891322671744068569347109204285017421473301222389167881588458516743757893727545224672239961873821680807415896317278202909571322933595654521758809486189826293304757542030755542864473634718361748578079417251055205754113095337636116213012828304104517594521220434550018077959035405124354363562577806947758157009595543792406223174917042049153091138314943269072428457067348385593534516832350004614835458443381015796036469764135147960769406692155695082773400430524739270701196687480895282316095411601666346930380645137993495663715806343461564168771468883387918516588356561235302776848987523995510221315447247082668481791597538560330851612045974212173217289553239789303415820851340674292558286153417217570158135690478588954802609967301651302368192630283737913646039458455826592000631955079942308964658103218120954884353936601200503609566086691622731330991930817914548595876045204980159598627403336139589771465583085155701990446278504944025054248073825174255250461141947895157095845505064239757449913559423999226722722497010879787618846490922390244134501556445388561411572011016142264175978411851088487472671690979600889543177396061656765372699055755877708753501102249226686099417476415794253219863098484124373605080205258036961992540081560724798034770565151686997365161785739572823285807731872470333785035422083789811914069002938011706433261769786512561348275695267258294840769590722835153670305883912385784550450182100157778646247081826104595674694807589189877275221773061836311146022788439043494641616347040062800506724635618270821402896051965882225514195409076451176868958032706787490771542976092220591402548507058568705476299723226949109796734406172221812123071004877653910459590324069565903665301004815643581665293927734625617751683001689010403173934726493519098711625057940755585488257155727630996692494186924376966656746787872839822632500184874434130911857429061882049386316898996593548012228553749660730890382853896903050205668709162751368092063899463075741993334908849993808895503903142344480802191308057307064040318685233386422144673173100325230659680932429695436787574088832861661605850988593877742597857817258670265881670329388383980406357417429142454642317306907029389331507472400309365612550219831848779040553384148219307981412472188772212178825885933313709115491197855634105987587601464845268525482926905996444194660358965975725877174359826734381214460003253427553070427110503846565828047169820766909212389420921352639589316035217306026089199191285820491966408165415461657534950522840439474364584409236257591518053030478661824314819787468834202106268445221284357568779334123810840357482957271697152128435613939742605911317257041737880673766960823005133090542852540718510881812056880627705064337732687505767877549957239636448488867866939082480819241621562829627791714363960124323750458296497138560576182189735654215664914988511707616475086956387192886912645000355345476462569959986427009701914817333361432643763014817474490677854419530137959758319191489079299771861859770589430718325670981472917378595939553520424330525884228318103857441862220715588337357526907843567635930688038276185820481221900121471562794107524514193185497676745411217792329169120120752378677134073018184243343527678983576347615316119283368382315844686882902610039681990796248416841500909900057329694526675371308501557351225078234228896294900919269419346223672584514313182340601736559463680501767377607151154597282717144663637654084718927178165356219021703942287506805110800036133595514521203327199867254080337967180054022313609612955245149875545675454235029263680933899539940585772538391878335128586429913618888762358564961848367896971762795383949072519836318150235653243519211316105151460988320866244081194260262404484604021150710346113213837634115586228253941538803991063871862392547057250537421635257691378714549007246361073187912715211637439699706550839609715170969820220689205674907466086663727802568455794255296517170591291935328470163102282854836221369630221084947071823290215887039117850629432691346695339045246288911500227854074745049586915357062795943388577532583677538443638263939830883790700880144254589844075385500071339728753876286009428180922236193958674486961494633060527604228512485368858227139543255296613676830814077573702906380654186746513347531951290642715284439390550971614676903042527437551571380199408287992317341291647540195935968652500287710761285322627782494727575891866126779605518254244953911799831452742695783919967133131132714443681809463366199022354836441749177199584453801851514797167742417506709303549728177495343256734729900615890475693000938411627641780041088352269854857414606938294090811765695047052334138773825367852876930545147507892833492320848406793560283201624159876601082837171206295974309411582677367271506352218362056902160952891499389411235708573582683327513267430462006827082228248209994753110566740035851699116779791528869317901657653212185254825159000129172074367612402100429252945157170936717017071331251039383350731448230107327042790608199193286316709587734306578880756951503827173447570434139092888186228257245100082636485499983571686571790222007290325480732031141303541896195310592266218387391048714542189452129987983049094287102743941694591732303472857634422411553993084919829095420000505417781552704242940457793633944331562693255370328334504403964026479171695140014583058461545286955411859923072129597465057088208332556690318810274641544509474800993055650256768982910085829260789424563295906782179056876495587371998907474919366991408775706753280859886135737618864438785849998898963935686355895286188720437638921969874599327963110781829777736358128302760243622078167526563837685736833883219369833845045281475665460353102298593596408701857419964859118862166201315385413206258075060282885526155783838123845508400194453324915454006367179706986028920419813482506254692298996569032781477541750938819068247885371832984070534840543555368727552478269674732279395164413201104054145269942510950076688624520257887315354674761077811849855022522460854057861662872877396872304402484124225687516191755672854353694018154082059767948632517530672115617200180348378183809811082256269786482304418299587205829331303206868394470788491759021033396327495906489033612509371233695245221758127226394512587090812986982507558629472297619566266981254928296724180845222787710126946258991611702202508583989646981178852094371085411473134872323438217194815331788558312641000827455208749718990426659160237276643379822000512674482235141880472314511014022809812293782042579850303360730474402994269357432857024180189877648636369215097798024603818690248808469692926647247588816282254322633996574643711312781730126513465055175801633419760461764249894462683088944265802721379072486805146520611922276884997325804639603690565653810454352271432297425802975474296412345759262294781403323861421567751593173369709037651913212518367343400340275631582051566876794765435907285011004798773814457772684764360986902474228150959201780456865607373249742240390998612927152807143787843425940504962447707454044966163998632522747759443643053255103289580225416897023437048086026359884683262650217965579115431272271248676195500900211489977148033587830036385831555022001272844973635237402296799176597054712445008491910609863089781731955900198991988111727305259418651388583193841112885170459856782726078172809249673391124477742250606420142680348489962454807629348724421976553062154897699383657405312958027544373330862814441606322153300739513946265815809731721159626514120054192973225534861872781911831271144393727085380154155508238797532747452195212505914534479121996571221674667685656216535745830170869374047344078746208708371007538830869524421855192794682801109591436850793207359371880642678740744474994710671257675950953813627531807823893915543883795746171161352700107351839573090095182345937001523044616708899200846270309315688039681832153493052071222427722210536915445170659989289035847475470900734472849357984547077312618553878738128483112687887789159418885813005084916801859688991775602437092640332700060611959666377758739429449029388570099675365811119163948344290675506057031796070248570856897125557946394029172240344645203510861257185523429343709599664025701408285835037797672273557159081233864536267158460800430326602785983353218695022739087732960467796384248446308954013929646790434569733385777175653794173512742763780931822102194533087149426140786854454181568114096477018461913487139848811983019521475453088351639011397534546500222462339409931654462416422400911941330564793475897546635528161060474321883560177378853476050428213721148383099316722552274553199313801297719967704961538880538994459806594136788713847510675641017566683773212397425832501843911682729034428272717062289213112251580101393606983350257496803912399528489955964880149415570459837166129390739549285350381460685355969765992469360726533502202102087993551964027627919586063419656830329410800692923170210343030556294154034662471518339173942367767684685715355860380532946266521910812053539808110328083023291560793351806776145648733827768983422753778659544711211854351598580371301714300728587318680869544957749249678303104822683241711513084360231623982879320009561820813289532090460188843416761295316686926245721449720184211285542193345696223652582650788595129812545970095191464964001692966016692347759117417502797507889563075708060705566942103007751782350161250747531485653844437964769885686226783666859511303291068705455040957886268968342475612224242961869079734735813597449559620833522122108549189012258608322947287308777981538772317289102423268313286021172874165256322069036868831113970388270748764606632978855845939426230920399038672184990025576345275359299604958663721955388071702995476140656936754702229537108717481381441572714195109497054203213603301599769945845719723239211333032698939140975856531223273432704573233084424134130759446728760504270943430264141231006387660223182364848918468913127393272833404506080075699962488923133535857738174860295214377841250464142663532996341817915039614962534268434586944161654378553204277322119336538183333626952045927643197846534681157727050336072511270091480788250611621386100358428237639334408290109421408440413840490494758024119103715155800266992554795469538911329447333709845047762332739190416634424503188057510288141661106417040025958504528620322215878527639190416941011185043970461529722123596440055883488734760560109815511351212109831263093042890813177559227977432613211229604062360723551776732065486877859523764816012917447539277597251621654420798835196840291414280021560981984455754637164596481266360861797170443675806374689644150280467379088050256551159461002521632805788573012589961234182248176207432029373194382039885056879049342096372590235632347901328903027368333772155317361005359621431519408057175856574006299627085549345186901621840373833251259119864066768513382720124704343365211210292611199682876489202272939871854570944405055275084749543531573429731985567714705400937495896330105748750708931033143410201201858651932372809271050831306303823097662925302358371663863166279493477960966762043215056983950354208657843392846013861281938780175934323381355604690098357203926696452981893139956396923041175714334972925445163200482179907541808018947484121653906478747505877602057201611573534637356283473852227288316236464049772452690539813089819292175641143296813184112433546428543396234590124823474975809372708694682262007446860865904785313611151466095170859505427539802399945507187820105327972377635504044207010445284585645461719402824697989465680153992325653305833665733005926540385956679643354517839683123139670577662437842989470170369346421329895631332244026331258516702302187938110529664356947779417803562145887651205041125430761740821893858898959425101926819375536275512182729801956051349066182271828953505187322976115044457389897876554087059810326771476565524634167727686160358595971807822446330190285110111374665495508327029807466037127212177908130599284202128364935645431275866150876466339040065685211287607504156475043091267928332051579676793746483720598111107317651982528760659816472419829947462511252743171350260157271000596810198441425318292787570233354521069900000302273274073216334598524302370355169117090089120883224238327183703098451627051332108559985064636716875061600342718548537403151492796852448339067948239944422670290017316776056612056669131422887072692581553731351793674543477195903724234008988687811374512091269278213690305114287001290816763753789620726338022977472170706527325445051606065029113125579315679283030827678266348455341573591164013479838333052749328246398523881813553810293723732324000226645551558061510745785453105657745661284196307708462269158558971758156019989409540181950520307766252171867017753582411390061386133710021836501923172394251287601164125823371698823573698573482690679446684566885647872915694254239174625682545723789948937287384822561625942794845080747047044986477026641211979186512128961502460596929726786247501843906411429685048595665537869934788876917198290127746406082816280345660833600779937522421271750316484304239162856260829213341388466403002774544636433837343221890289587175863120420715956205270934940391635544901275620087462349030415125741209349748406575377875105791780312762323750203553710333621114812536951913434955225140619551487205297405478201517388226821792261904694120249481246554997367095279378215609545742545666876654784666146640476226756754004525623197787414503562039952004454681723730093290186259209667540741392327297929180044140036550086020361688920696934321511311178262184324363056439071983185705479029354254348207082908679000655775081130318616537113570248073723148100564164886896534483885533473582512769791757318722483539067618846652433803801525403275046434828847254930477917482449563138581939950274721010205548481591281308692849277295456831801001802584368811166351566728675044743274209312161547535642634228508716329500647592545669525250700572580056553694562295981782322392412523384819600899713641359257415282210727389638763774672322699508300485506884857844399424892470004147500890279367227187487643252525952558150066791081460493946688891108131404600255873161963657596806804946914914816508597079707096168803674922726342860875441984029845490921585408737400815814022740505549260253083394732327423171599718151413772139685500708578630926962251062779021575423434393112289715414661014990509998183482762270586479347900317161083880638932698465465654241018605652171040515108359195727408138484847208173925680408842097952817426427221905879842681196580020158325491010652188545763894842804519932730802937144862847666160738016860840213540487247267743839193532074103831375488485172812265951776938456656943598860947976056710058598836514331112765535325585600374265548026014422400740523018063176752920789110114636560969774664617161726380035061453637687010185517001215819795678241059021791892114249788364112027375731552841564586099007521878070613220251872289389405577690684940239287093260948381801790582883627452957786234982347553080672670870921591128966114140920549060024336579521604849045183156043663145823495022455167891910737826387315723251316715350772594799807863678840400820569987931651636341309831895418242945361077115181081235631362858604108264656475559805949708221110679662780950279147268451641969918917285477735618675942811628319917621155054301615714719474057713815681912413640268108074066534741982006122418869691612226330614799486724107691906540976509828179399953204986353082071163415043097329682822809789650089032939980654936857538848151158949566377814426478202433899179559772887575406506735088919560784166240482960118240509283428820409447539623256793175217484189913407559108897826647083325639467967168353326822795237371583559806658661521383301976044280077891583323025443612100853453966450297796212603300568557612179358334971757964153632019486098624037629779990458918229486658000485932855331671120827265290079668739713675179363658093824050032830254312181897505186980640539272429839217557482351212195879029601163466340911867813600465851587345454860026581884012480341672638044685700180612627940000443374400588395459443838348857364620215453931762279514082259114921099990163873159981093300959421915903368127877007717534476014521339704811553379783557081270710542958211054896060483831710327527639047845558419509104274905608156389458199031104184506423072433352709373002107988028788126430132954822898966253100867228680294593105258580233664481242628681712322268645235525864739577255439917299113884063226224095174934604619998138035132812353754829544082759583532532109751867367073427259124386988974409832144469917474347609526311660158130062272587197436598909309836276325570499538636006948724224409860030516076466322512431931206644023435216108352847617967392455564651394827694809810751991343602163223959827632951803884125757377166261901568946522448449528486297248103583302854360636196525635114695137297067899348658804118586807051448759173424056309868381872053881998514784087638556511604662448795671465114330498001600220237077429734904722676041587124449355181416561902761709483935801530919167086272017512671994125413664175104593669938303806183683537418902899835594407920563671534369448078285261360223633219182500430691100057676295990804186091011091556066972988359486690170504361199816401339001383893593666935710819040645961318676965103029528612188294222610034621082059750209166975158453709934590973388760250839290125412270954524598676317204901178209455282775384612621578579089270389523881142007131272860769327484739113210968566305567339910507195073013340806329356805466956220881789835076962253862196247380468674745929816000804106801216900533438147225137498737396376109321984270505984401108317253121560856416320553614245024977687624133259620268996945768858465446430352361488070533850355561849817042440961986987999998771682807149672970853630276191668673520982673084009577743507469608447584776543418350517942911072176358854214120382544330042155541656010268022324034044829274929102160050225400386552729232878696976761869233595511581930548864388803331356189799371074901121036533157599188148165771055583446847489205572322474832851062294833959405450162498248660840597682720594312142036253189984246971906638021265351244101445138347821360846777848576854556446272299667015957953493232562023308780857903257162646811218271623051789773045494578867483256381892485204612071602278091484019496571806155406955980855950925058766399126501240064602910995119679877038203362375544797493755263655114638320195883237808249092609341601850416709892775827099116138156144159326663607261491612546512717298088414838222647238283180635394169176867318460328869388134981488108124628771285908270322470088639215090420044081385934188065233629925203878791446943043032722565774045923883135559164729365205428410345362674916643252380271381153027407334960759619837929764639746253682882315051492968085516395471199511921195936088575080577264241574578645347317891708872943111315944703924327867504230594868361998271921887280301980240110369741738842386915728253575303480664788661747195972846328387854972047170966275418471439181468417664009360440780559152789270941613302124440519294079611186477603302080461856684743491891439879835506637572462219908604422457194758309501161556945357107146933533607848422889333615597373591569368025368169933223705906425577588733692204617922157190778524832967146929486511879935766156508123466451800462402700462251550465252461870973388772163159032684841418837289841606211679420317956127893700303382347875012559443080461030624154772951405045065946800995643723332744920016889880246923014366682830371001357321686012641216288640347591713149646376214697947712510208599018735359134415224339194582660971969604550229001582081765370119678744433467915051847588851074261410058199936774455230907899077233952262698495285020274731752481082272110200033486831117056198832755943763654134071359947123059188904025008162040324077448927765867343040943063715628573180330135981331080650169282528560069188365567338546459651595982232176762964560796979437745719040313233126462582938395430333536523190080274191213874251879521225012392284358756418720624784522294524603522412399765106338274241285579803094220565578481169165829010822110946900538039162061574286303226248386137852153045134966113194447114944405610440977274915943925189601119717903414838627796998517361566282661116295912185524787620228187004843596726090276345274038572920169563441150149250277636890176497087891936183039628820511208006820847934610900993955791511608538513033523445539904185927144847502340776576574517125763423920435450001441452071895597757564608348143775355506447819491469281155625942912241218604229058256206419155530931765817401462528419311879997292899642630774608196444554961621620322812526333791050799522759751951172587007356180262863261906270699110413180997381036768243542766682851088672167197022824740312247594679692640700802071800106870797146905543193723039503407963551204986025495372436969731788948987162291439019270004783048479177386596798524682787660184007787192696845167038765070647594680804475773521494765206443273310142401462879533543662769243615205693528100123740615904441541806466501492659590096739356725157760982301744627327365180632703809207137436974859499770426326684399025160194802457263431019144434542815431366134795097535624866364872742992862648779323773924772440907092030724431750401823448813558869619132075063397732997515192647738366915656570445667690844999922982202634675622098397018284275907700911394988827654080595350144822245230142009892169465885620240098943003976079155018686463046276737893587738183964448201371822743837727431078534138239013357227038054537128410716615075587322431236239509687705689385690228710892821558228643689920438717907043839728363452264713176257657614310825754954141821963063447075717224060894102969416710293974281320180148209680816254083425163374430331600323192620351608733680449790905916278880167126472717723939328635836753923088175618558421258513821998956430595979962983177511660695348072187297472823484968943004653555629884488974958070681610877827879998497324492067464794039630344324472803405086624885249992420257233508999926488220707747247739434082658967277464039845729688505299105892825525990242633560241772124847868603357976157718670167744013913444718944333416112396895917300770816177030971304614273134330538067207102162571218812489850066496381359097539910946488284309386569731867809837417117151882921172766823183650379994020738210103187748532653427180499495795267907479984687718944060610870586438061348913365076088053617822083139442327345897999522443566398676302598511985614154570776609865962814741874420407243636885444158386560837737440430995784573958287742589365213000439782868155870610932275403428858554739523140855013632473773385512217293842579749534620941190822840134267069093344695802316333278796683980578732803800766344979920370078521990272144219079661953021264604427549840244917492957514343912339809529219163227761117404595497080232452075858210222571471889538401525855035158944373979396158471553781212004032812598774762113099218954693036734585380446805487386067767712199081246464780984251284345863145310177510804506301311056611608035653458818918243774920147863371821701423855523165809106706661479862271510570565598090839585738547189771480554630498364026927058152934328253079817554142575763013215383451591514812029932323622228133798359121935737298508616325312678696176145227584999815339169451680416930785365289350032971485455848417750813565297963545598843908341893692541581957385921360155126444761685406922625171304964630704681605946587778824226678811928864019257372716842460642277406517160551931266305279288114814645244331929569554490570269108171205070774948780556502821952839463692039644421313051986552239618254149075054398045848786089914726153276028886090874267120684411515743766975530922348269759903958696179984139714391187118344026854077325380522847434925854395388499986998796539023454525252650873036262478797513852160755981116224936539196811030056983323709776975979314997814673903125902339983744067739224754490073570217057862151249319048423219806121651216003230247074148397909016052387300890574797436438633864748703153290661151755216067841219939513326522059571452864222193098937578775224984742881918460167589652489492370626921398047832131409937460979851685791004045372768763320306669326608175700514747351352596013302001381145137454932676932874026630519770411028171355900352860418771055885276961934364528999310214066762176547113879464024719094796522684595117377065256840077564857651139646335842401624766546713913726061803070631987918340282737441635426632405938764731138152581932231415478103471699211673518350239825903793662526095755604643706272085985640348100331076202853643531173214111394826419385881360605176348735682331850778058605454571522465118494660998629859628306294302514460129032407941802893539166291523128956469116097902083332636808274645517157365920554329922288540272089293373076591849127780690510021397970220064125949999849519132042526518894589744771843642471241079186821561158124550905483477101729693182563191125378800970454075968922713855452003882674022743939620986586110409520662912429488156436141220322698000431082808188819858117363032663342344933999768738701134410629978846451025143527069930057259357421945391039469527179690363056870032765802945205955491445118596303323277153211377443724222185861156955026882712772565500854195998639022663756439467210177903000467890702328433872304475221274326914176057636773508458138156474615401348409065259673927129457596945808235946534487091511040135064705508493501039755221680633165880486298101245598915384437474778720971267325078715419857451819334970436892305581708732562980045955774148677712972121523227446067819943274270112771701507579908430044601136205879339833592219571779114225252873333160620295795393993383890385772908017335166422643699472978313102848433964559337561749888376625119231177424243938953234844474225058483152457694098801274002691942086116601264939528920376861674575527025773111480134455040376715008780540263339975127819820567603556648689703779706449719228884764720311672004017216722393092052541649817992641421414766246625666957730890311273120201680154502966908268529629605927234344160565740157279975229906444286750371298172332397559169658473612350794530943706126403262134190728024879172631829943181971441341587973952490439086355753015350196542922931973828327104298139241521565884558225317181143435952792837910421751702498063937671002217607196542180464012722696758067471021700478714911401920803031790813689057455627757705154654985436161800605165766915746845591536036539228582023780674394560361257837725982184250569452838980855773190253334343338697867593292308936953530075855488618541795538614508559865257514881880214108501154066643762392612195692697011303116217408039688802339562158365184487731527622616077223034615210538162893467200435854930432920616549807024409990509926141095650024698354916791793006199334911352145017986579734140703756400960608048556729569373914382705420799767385085325551062437395651363837480493420829971966692499931051163609416410135854541631744062083698736272985312710353234620979937407032258193622496980764335280826732628848869655747229844647700812954458035332968712163292041105005027781188426526322351575328967831551283644292079386447308883897171470281360892901287350077765971864883520228622526678742211046558611463565842660989659857073774552928482038675510943675823274199687671115810920557728187564055781563429758242424010086979323016885440587516889682643372300117850453450236424228437501357258575186945594153763580302302301948485125656799697444603013623794366885691237998339906094453596947785195372530921184889196369052067624862086847084805838712346339524032558612271986562875048818089220654916607953771430013190991132171255472732535662894325569875423701164185428453022112132687792493154322350206105347683471851060445428711075411942749288227897025198931038507410217290405898561920625878612073812220238975560644705228563396204632859282033826026338871224166235182690467503349257725832951688316505398230865668001635591833727775543530119354621321772904704613907903867907952574531387025161078537815233948079682264412047674564366152276717532314943821866535698511456003251953824781938646738903367666258314069370531325621653722460036017745859994393701565862333042597014011847232924951189017231200303103154673020426797376106330590215286569362377014201558403543379482866013536840626778916630027313515450538011081427635194965379411273462804272306807460773128746720128808070468013258649227031499180121139780664864975390102392805027335640019004008593591057993426747491739292372479060336790777440535086785645712197631315074632655866590498841168779013968718583595018566156482364506236578355057702367999868238094832210933116865615806588186567985797952900474625073159234110804727891164773672998431305279625567804864820813165321146433574133832809022324689124479595245667309588302765231154245368900082550145482424904480495178351565195159294457050648052683788422558218911239409495253311506074530910136535433080569470645006252868406996629932294801680525605048877111987575216215233845704984136303693916220697382417203157722940240702926963545632467559967682973705308481721182862800203467358460947037907974423352557858852314089734956526929902650862959846304208033191651834474595892901618458272344209493253923761484449892145653307697748814915150765713578085962226347648838213291430919075457797850014294946748812336974872677294522364909844907332369739451181585470530235048135966981631434758753050847756128654195972918158832376409067907193910409607612674408730176671483293871272855173997077377274349874452765762574324807722027568927497839123109259174513753972735025589735591448950310424524527681940798213023311522901953005430396865295063150428082620360234243394309005965981700549909028208723962802633501688142362462262077735322822552286481663082588622386803917587149508572541701917344710502646441739235062881862673438172522226322794381302458320875913385619115520422686209954955020737480661784217253087219488037102862018915186748741151737221956136496441338331928662431728662776964441271993085672654679328863404926867390083634270854963590160188234817922545098378298657814094941376923114663347612711611739609258498996574999023885851047022510943231864790779566414873588322989015987675571089678348595913303108769504476789944302827527541588447547414353932076404608451446250624126171764216973004157368152471899428383395234381792991804528378952877006252496514836842117068454912051640088643437209729659190947785732196789717870270453902141592793470321997838064627530842868821365037581299622156306619367973695909767143548175344645521745292329983504820014995067679053494943507956777991172057491564381625105396494691251133729003462924064016886009327196153376434795155229007124219830099231354376914863647022809377925415209986502719701060378766951667649261123894053712970402206859667084632685510636350198754241067949092056180613318023267561365037836135850927377340248727969324415011358802960970649410907939519579756405121087793705943517204384853570350354647577976785475457699761839197144063660499285753626830715402546075425139668927841850871640360876316908677178492665245724113180390957195926533943395856669952326458021307138996763562481391153723010662686990520416051901657845732176992691470932195248686766731715638323874713668952845123513702722178382258533858581965999226941304995872701724130213687087691950481697329610789936973738801447249854925001638499533447893903991774157974049313729632591857072147751156798749153072044704036914845699396757703681380613352667247616141118632543717074577908013586938727219371817925862308970930069105627595827752410930420257765992624650079790445960028069159330288947252590306092839277295501703276923085846602090650941075579182115530508761598259513332673133021632472759552928135118534234862426573432772582625496009246273825264509351908954153205593507863244581679655784517279209034679482354688570181292697527538481983194694236312489244329040890549860196991105976370700361766899222188494738283184056309563399558191851604866571244334374034926756246317832282505382166041604174186654201156913476520156516561954739458090626271981287463578456233342498347837656496819447247869287044599112442107598740680835455125952332588898467094389558847593186177335966685740293935711390947060574774537753368189976329297860365973272976088315205903154095344784142590982453654751093395974554262436424134368789092172373862819890449608303703716358573564604189323565766667854237154504457941473612144793075808334007133187959015462741124170796215610827603019189453770869092693149089490755315536534212974118832904851253079569187507696249994320788106144026923976629610185874703008146182368041337324165822868106637355794794503191136966484372414458820890790253072213805985256539328124673766508408172470900935073353252877048179255784630424849690060900669609638374088636307732472814856724815431785003985573699569156715608600733649275681793486515997804313179137428282722194823526874187271189547555937626103704632474863526962259700557202880438215092066878616122438217238852258975305548341572554126979873638138567691730648730743251950442126484811282159810945131309937582119323589737828126913604006929128551269839368667009269756792503221732198308659946802535956704047611437616659192142248314921003769141393001648270208995331761396313610778853351264227147272328198487305996005380045586324787041937054625122868476961124232081037379803942760596714112235184705253574683269241006545592308264661547675060269845287731525039114609918790137206851045803041483193456625953550458330605966740194117240355789768106535033226874223960006347893527088902588168592245509445024562133706638433730228047044583836802916340361778406557610499583424103844924981372949130177845285036448118411826138682427568830442679156410033228557728069874095234741136754682967253718928688700048456829800378089938591794688002183121986604562376424214180844344093452015634004349041496879616371107200792833970354434594019948054623476963447790494424276651126932207909206465453759442092533862730993467840702696420313900304781274964920692101934734705820622117567967848528512676104786495819030853677874547002596011173527244229201392233055356624721236676950012964953212360940331283371979343542083574041705671647843977190702398942408437272067437972101777007855375398555097049228399584875244030260711829841652040167551503322635419130435597500141555964347458769562128261812312162984013464106610843978609380866064490394175836747642207919297644569053512334117454762459886500286070752978883839599359813195876120605403086954154361946401635111180954685915832361374619820854924483039350668547131569078953245254631061885807257528920021831661382581008414979524336960929163435354060690833285206245327651077432580570923346822200450100279204862134089230036531431821254218789218438213346900335567757123468409736258415390244685944388351041798917252648883772586152760031479030897264203959576822136756182161399476595074297353846334348317244212659344460265190518344117220438962204234036303787244974015343174882412259219392313745401990040908992752932397781267830882014314393240169797584114769947729014286994700577832494822799849921259344247086348466610997416593242126059315860138447834426022286278098176183335955237134544019986053767677231101852336343676501476519606831857497133569377338352531760702465600787241870551522591593615947554590628675017974798429797314045011456607987638242082039650743207331295905702241316110265239232755128423179330426578479483547186448380221533328991339076741890200592875637878338328752966469170947570460697915780010735840638335013860763909494125684554319877002766959758997086347110517361184176765610404848655942318184044296997062172317450437051176586465055142193934096888639353869311088508213247642428057313074506476015620901759569458463744834486970438049173322961464998848664082452232928134522349258780661186258019669849867059676284032304903374634767962013890297819583680021331870215380729411161179673809086854733946524194174777186216196022957751614120006506715178734039091644356033227284839832058386779771574212778879472189724573557328230185378730967061696199620772181957050615214770709528729612712728438708220385683314950787133986099258336128149812302776657481240737633645900037194645773181776400876292723456285619847454780837321266185495820453267364032656092513744174702310534811133770875036242738643682993581569309625745941016368131565225297757430460933630506216911441812317469757548046090366409280510920679719570041816717681508792108962205209687554918648946715021439225115429454575362290250771770382397438362980496772462484510898211275224908945268393800543003640494790402960815321566501631902436335032869824702418224259154960770103537681275985084948799227193181985407759849730869721049721647133817427789956899118306425915587199776582196287411499054073328585908311764970601110640168395651995762427678885124912988178014802494096457627075610896593451928463701439359075753942098144990799797129617641542595125646372847309036998532342567555904523572325691287283409869460652716318204167048228600655907815982403403068605821818976253197203288099975662275729449224196952677522849273735740835668447201057265633201452066148135203006459884062962737765782041248399538964668158404975049965613500810404096369374486397364381965788441233983362632408113211727141074518818716221793713402841641551108681707130237192918846755164090634914319485589560876882302981588288013320494962099065174217750759678839077892686916892998025349853918683935820467533456774359475224274084349959115196221296961644145454515786708423102814578022436010947565091077566476401265948030265079551105908659166743567483407239600166924808176453778670405851680147114814888366179261797773241117913593048730076809280145792227744772546101558484827124031581081241224387570740857873967850810440182726751908603153849866451067230539914436523968455757663903459267466355591328557963367850100212882656872996507922142004916147349687198228021585929364512571158512356509087162784895172779406532742464858355836806888810342809519295847655726462671679119187841578309897158761592092431821595645091036430773424936292265373256245783575441891167849349580322963784323463048023243902384422623518396000530897517336061833288526278507379179974663434232699773383496567344067703798813157631674790859296764814396134293378408466885233139525190758155419322846362680499128085937763170413611955385046831238646411030892754685992615314615633686148259409809242632327827146646061183272891252558703674408898049164689847332541182325729854391589230092241531313244647530131801675565743798183787645615155867383771414391064906536641135358305883256052200640866485870036278948474333046181646017959732390334563382623955243507622428045474154036358958085948627356943970499004165304029363377481618100018444486608091363626379010814420780338359081794912073582305875902063566550878794482254229989028144653349335509995697989639473259969554987168366793076424911359066586929293565769286147240127374696701296659317945397933963332937555331978797636934887215071156338958176549339276521063404133571762761441467361113960047166311040336151083327496046600428387445059560929033558965748058408680729688337234041590944719374515612222002940352302332134257608374201827201113138730437430020114636972201339174838662359536775523736870909910829982159469590142579861539046666060216079723587456031234015204526561547765810891715623299946075710461346109847636926032752502581026321903228699182877117359202948431129723907806981316578397516672666048823296956058817162383355994514876125758534216401721364992160587316261532069894822187291308578617544532874973590138618484100792946898087843831562060539719775909416753563001559655426725676953101592012642189022430698214725064561448106916795160918456562274799261704175439292386096701726870064008687682654673310624014652441679944394390141314425956219924056501759794958956428563235587875250174337893575351001402247735034389923672434868575636839262721485470029387914706792307589759414923552775188747917878589351709414669226642423240727994048002988122784363116202421615391725604185182519427531916868757268678793811997836381396956098559564416148156864698578075992564527519208887503107306975339124395414692380987398217375588914694788159446971050737777289501510943947587798330007032869840342542142357052383748573287853572100842126074646716983349146847090958240253655585161655367267411515458098037006296663815781651001860747680359840483880629081618863399619435779039838393365926960663819713435337048288376060938540754796717931840284264992413404472297672013529077879040918043730293389103201263289015194321664417271192679233018798343859108012998829944998360429034824546000843382904761828287184428732198901518235806777633594853902660259460287680602042238795860959310940010230053257058205794747336441514773353607389986031185253808102571586814477656223296873915917797696962864855055633179517503095223755441243745423763805320388591148743105563192233104228730531665307685036113900496188373627588202794945241956270304434517301396361664729788420138475083020290849147474865742521384761091115268155214799689763526321630537734713690784972626714538288148807672225486824781601073749593962482419422340062870729019853733583936825148946123774338562699144675391173683389434883485555404049120725641595808853128848367768601602366055622433533505337235310125839641734214098091320420548780892628728732321054949019886502774873398855786938149976665040757272179229297361688022193152585367638049514731093737306601326047242926118018302101407674822107430622623386812494769559693991245155839319296980587544332964882149281376884901456284242262154603528593261014164841553435790065110279379039229604921892640793654217166261766418837264097771049339474176866666643624201075378788606095105542224374210191468831073566274914511669564612509729673910541516366672404422172512760730354130647927775253546561764410443004538688613904740286762749120940260007290647059590681079298810036673838708234126235555409311855721986253834332040687294238349631806037474363765917265487015462610919729509629916968253894765307047442605714416171351545997581529585510781560183555262711281483751349599054816997545388416826530590103620127068648486857342454936809625736528238572308111521137782509337361665200759806610017616314491480520173408553452381391563229924918366222787954447088607422348317315454876995893440946267442027235101637061080538419232288375507087955032783641479606714704033698688828732912625615939304716071001067931739634746007860305249599548997399778450389974684127178428643391030203869692708453881651451531544224759320710806049406844135662378652918998759450805644929408752196305801326479343628979318074350068061487410499933717857267001050046451586428947784738881066944419273586424434917462250054369946654793360848115512467585781747783175352130880394149211241813652900227711516878194282800620374887860967574075270680341661543320186634382909532094129302110655661051245199800245198988123589558149620025357194069151231458037179938476262131846866232864171969702236573054623186688938142164305965296034968706758480518383111816242647517465245583085680096671466409020036371103044948814838271214828565047842344563523285538632853665847152056141536400204213372899000543499229244141227100854211833251839239140528115766463516684202791769716594318589049028195336555989217228425860203707356107475545368381045400741060745402590404848897583973633890740147583108661118941919651768131632578907491344291577956583067385948325095659540374333611603252029110328625393499561144172367462737332187987133378984764062988275420208439125939219264962310831627009332113968081942261509731141967112566691939068684752004809423815504347206924163386500922344516855580309399520078096673929704170250787810172101985942711125410528782672531996196775344694522860306805844805514704532818337281857001346723548753410109394985720935680236745664802073911809999226770473676602797982465620884995369500115487589132981426082224654975583779445642651687343009341763917128799250750576752352461945568378040235025746842101695879734884098114407786468266923578889971920924849297371310813728787247666945730986429093674545742432197955448876932339578378692089495453470815762001650436318666931770056458098888148743297451716518134636594430397484773658652693489831331958677275375777829286513940832232259781483688534070981137988888232217350544351277707911043181094956527948154765933283154144605235937254443915841448137570247275777210938257707264003524670997780014884755530851963225914464782624468384910852586176221156421407784756570987529365813479615103669771630795057277731908514786341010017231568729136054888098781859458096580823075653483940235948446865251736224755757447007459384938214730845593300203414134808023735004289750498348263051328839200483111180708418118958000749766923065571773589850736694129390477065563316125464669099133894711364433063933015425988524106301624095227968066479260999707960294682766770550147076567663892055063975295839032049261278109767647177823627002893104441647417813969377703969773669358679917409620818100534614584915474912388502279943198068363570252466080836935367239321547265945689048906622030229178538047457203995644214492963799040561802734711027084339168863644229136397205786420874169708990072925130244893041362602851138177126895936012235215610411577889288601428680792168818936598808963969002891667133571719692148825923461677599388269381902013311885253663788391464743789029203673623681528737938471795015063269642715354752381117304856903350978610363087264133046882853607181578772359840046875745711867174048613174792245351734134862581294905820112642871047788953972286565157882800548847861632076533968210874537513521787036529365529823296396678511319073606133925572107465605268350801025446337457103313089108763832463088202725564068300496083478926052332794365161417180833698986258346191937619870027163093066619715423560685726451311150037820634420049806413596025648128855378368965860994450228739190027089438529042708079635639432684978218475168056202742823846978515255732334030328923451065197118535797018360646842057501433590155351636690553354652466296232087127550723981554073285471124700321581729820468791601771246381799449101105714825547247568482464293136743499100177222271510498788655461854645879359395751829685735474138170511106104088562336258938621945177654965443829760417021499275538539508179679273992946433019428494836057479499689454941600233030058872739556847897060337493241928298922027148958629599069536555194700655897957198324201782533348710590243009467115952633231709460431238014221322435248935034930958285938167028847248545872174688667148762780284154094167645731980904537502055196344099970973377956972273256758290878993926456771204680714468902590018695780164424278109890768912250073732634523148128408404033348705446462697868895571050838553919838360995068355147713680867680421473901617396331224858922958468906925273466378836106835078872881820850649433505877145643417395356207883362198886878676646071096816508243498043167449115797951720417359263730591860015008393552356725789772496263698190613811957523427474239684583440450930103497519559046383007866062324946993699654518047809383100527990864109747784507414070422768787262702970974969641847236549543222897258318403785789154742464976369862247328053812031642884863966227479278746258039833919724641090887969381849315020466255343597115889654152250873177002723087918721812016283324968836569371669817994184103134406112378876686189439511924347542429526438142790306626558232501143142033926096805925692123552087522178433195275466224268379736217150427889730499198061971247203788383334754368739643049972889967537377791770434274550656893173159474932601295271765053266556196500332734470429156425289452414056103142903805709197142377008105432240102089091838142542292625190245515257731484007424571854260600162446735667922555377498516924637143765107891488088469087168141849921096351320591096384641785397810940557669599706736480723830694929660779602964118066462433770381998429172429580396243760315662354770710283550939971529041655475823659052316212262641390256810128427352425984413170386873702472079205433830868579210156372208868278780466965114766186746902444091598408838397197905113718444014436960154561880794055658198535689488324335640191142850736630273627250815446363699845314875873487134130098868450055202278810498381159867828137871512486365308416942817793325284830553162712664454504694280216445756408710570563744959765361880802680117769561967667382918676409279775238236337820089664721540285179212339004373564106356740280783229051105212382466664263477759715670451451938263304572094747415769388082884547824298472519064051678630574171915368670767071988063303693232517601772562462270206137473517323081717200058373065725774932156704509592764990806536073479021879444982189847325919511145784402985785338106936327640095282388846331067859030237966241002709210689837678506897217929329346849503585856833265290798443790681886527548126645717784829349438812448088311318338058650012822246648318152435066527161496951321406904266902918427193940166572890379561450879982511627691879162668676970326883907731969720826488000835198332459667897340372167712215072210325518654084969946536340179114506663525765053748454034734414379033545083667900113182293156318332518016231604892970025741631448546489694662150489451920970376951131316151633940352240922865794303876772991422284468432357214814532856929885815256187695232517932542716762188266179720267771289519975295109333221933218984720647603140763952047479729739480535473881571303836841146160172126098110576989929280875336858835715258820695362397994010349968955077426058156699386470253034796544148335598628622175042650367834743797477489165047318165586971598259537183163363669476406292549180793901040359170015218920590871445872312205333361190640450293186954658498567216379721337347757951689175999093738763494344658947723964956913578489785611701054991067458475062407631721269406075735351650548277951992507200027401377509035923122511799347326266379277464108206696429988177070562511725428303663926669819813187808066452530352635159371764433970905141922148374998996766378276209255540887872256556616925898522888078433541106441156735248546212039104214562372261508872200635058245602109805243337853772728368811372441090432558079788129039577333587225991802374387358927306996299553418046859487044332796688082317961139155190174347548985022651245202498515681419370478083218728592832016066253516226487630612598666741960290069568805422545413580707707295243402128672221546458189780189902736039883358990130384260445418340078481230265907562155679565983932760585760817809692237544814060761261383841477632344507229558750289358627718157526768491010385527905212463437268863859424417433954698016571656136557954541017147253571934423984077153129353941344194027817949820501209562587983916473202577885751164132677543499520248005898058819921058496620956893891311811328617190471404190453197691588325109485221886259581616319217441125308872810552635919182246668343439678383902956131935282711811720168233394014858686507964842292380316590570180357363121689283917439762819189664388094578384573559238266645497069523556947689352047790770627967220631274751863269054365282155762022500915523423401004122920222603770387329851193164906067513452244349458878985069310975772826336573168618052597030877913701788212897487298027236042383416457865515836805641345196635162214980756227241043570625826204526166068404564623802123373919958905180738562581047705824049278108921855176443460785970549934748874176446231778766497097206519179640911736528966413619507721501001651908884108633717913962656330253499468021001627467010090983705429101908577491786108741944869246725924427485363344817064256809048547998163140580735160791411348592031086700601431518491768103737523305724343974361395644304338425384279116922424245842638658827331969580951800519208142144667172334465515543512872497621208491386783542070414919337240913724170159724434657290951866705217493746407091452747356199934568662957698301963527484249430431524577957133765360760609787565857367488600533518507664749699170800922302702227959207616555169476782051732763614666517439823171021692783453811434516988700895871496102144073047359267059068741127034229616597625497480748388366982062289075477816645497839633983342679008473451063781775576200131060525016021216931124221830231979945165828207710547104385513394734168863169682334383912452852837410385087343781716200324352496286315285938902776146073872557413644331303070272216382215394058142116680725059195659812583034297375469902998974960714717954298672339206311701830315402036019990827996335185458778190921204079808077570194018091311534598113692392819503012157570478233843206143159508812000050372238225570969641543157295400062157876633582782304308382939217004516749561262747686041800970473699590723089581806268710135557966672582170672037140640768691594514472001469831242708669100887253701016428287315736889576270539928588659021219817664675652636664461827474928056408106406104035357175526073504908596993944098035132593658544902498683339780181256083644663090076281952616671161943454205248884152660962144865542505917726734174065787659150707410005759787115144626966791194495677491877978395033729736020775735463895821570129110520028850383873015918444849776232467825954436043337010195050357285771198031206016240667119956823891106229682018785403756638902069128331520836878240295230131689434628100867684452318945932705465580042434859140082074550231519791448290154852135157284523153624616967663513488434455260306266359032866470942029541114959141270800965969019824720618890498394089171246503879814523638884109082873779932380719134361715661865635123572011774461693341838523480563053612894610109727750715675608806371358118495624216474658698136282441772712745355439862324388987257766008894028872842400967179959071309816252021740835688846696479088710664665748644868005466107593380236282973514200881079692526433103066775251622883117611006704931100620222042748625609563018141237171052058105481409913516155214702529194234607290551828427268370245854408618212020474935381331016142463901997013900829317180400812272174780578881940776648211173440754143777734359227862554112022132928196120550204880534795663011839283827651177170685564474589495990898059322066375313463275668536740477804273329182929576094487990913142450370118904790241116887327637176910858367500227156505738492741301976303940641791649852012948788204640516040354353198633722294569874947714033353370572434939998792212965157808567618387172985459729776892760065829757401120164767987686198359609208144786948574199190034927530492408990159488593371087742389898754557656228365292461817574486030195051119545610194720082229013644647642807896509125515770466741159655673786029048674823600412764873504386798375349297544188995768972934291129297055731333209646779763264434308356216348753799152182114360391373423037900193409285533367200987453371573723057212057122923396908701942762810527902769694883296140188874614919104410611007541273843989867193353857392267898250814665983727228853261069484595355744580968733006956079911146590748145284138435996798660022260939055658377461457553580185179594574622844111477215743977589831810195291301181480322823956682745517879373869228844132661149767631990873868098343881433227018938367878342914759736446835749069377894488927904997112839627735627176146602236601617288714679104113413865229664902733365018503792630958002305755828878131090237129372271448681512888268637248484432653864811345494840000506347208870761970569599463726119351269651171476795639291999453906128773263092577042057792331751832413082048913860825895859244866567549986591368783719985310379490284211233913826356559283184381458815286699592262821318344636815791930016536171652286323212088568408374158016712179170280791137865657350992483564163319052046385678621182377809346228035116712341065743874515720599537654673248336131321326416375308308628409487228277364271108482696372187816801081104493670481057773907181704113053560524262363890391801330269357105660082070331655438306649881171986888140275703106972595853716876145689050025703178583633031130174795913952198189082054480028501443044525940935990313983406367470964916351298878660423518385212469856572426432928237955403931936064245488865179723266402931767606097506577950054821601092173028811812661664542901098828098459827479509595797803064667956152357800571128328702307898409415590489972866358441217821747005619919450363271652749318609780215410286526709065022679637872940953861088404117971086007060399755078346629227570514081539075392733189755416250873409451107412191161366025987213205778421775721709088537782780282340198626739694920223899791857011413892996425462690007699076297613032595893150700256395157396471258592960172162062725464309377014076542482462308483852374104849569815838873245942997222523132344933590207604413726949681626141874027260699460349899878122146335592063695360830712539685562983841906470186223099028991731487431158042488955519479422528009192673505137417491027110152028545617172123950224625106841779812802695823273062724348240326452170444409945737962324421306951258110241997917519541072006211812444551907552061780632508236623953781632268659742102552791704696233270350936167091482363968604978337196609171482160716150440301626324315485504335898557217510004081788402562017313200110944231950807613495568402593240224155258015016943449119724345921448465624702080813569744243002637364774418127087910652709274733643639765240275920641850608385667606594404050485173208576558201813263642938831088975745385884356093476550197759610629012698676578704216170669943736689630800676361043342100914685464462557992156800091457243401485875415569576744700117804890290438360734012506503693878937620715463001993077974634456839019881434764545411574744566598362134195696330789618789649454365357524308128677067676510696470556083226200664425109843887120208593781721813803509142062904865452853235371981000658824086877925984790511395930880230903834069771715613439984423884589324560453053499753639756426376321683346690941283465211827906978361560196032346858238407067573034383736891955243334641481025960523076765168098303984164954494138576301460287386012709130441108552122167989651516348824702002714271678753921212898220091238911133844859862636706660638594817130624292380624465536293657536123022509614200718296328437871037948941920548911535636429510633907441480510638166716748711136888269097927511275890411979559101482774198654929491822860013319137903674233811714401085968257342026268479455261277218539896712654394572963153289312522655500651780493857203618100654007047683287267985301527183678759402370813325686466295022511961406912992785990183649339945591850449506964488592670339422747363789291330241691749551490774955956522573173084158142507387941899033444667359597411645005944397297510368710918016029829164363488437119468565974838598279813827772766473499637830229815694515072073017501611020268772542126141323250183801900272982393058903290610359070389056357688693393610586059787894989601711983598904920077445420879927226651525624284998642012546812659021939074457342366133239735700970266628868274889515735938111610046715188255227042615938769069461461593584352399945724053416622596774394047128153382042296403110212531276734254078024054757230933308106859869734032750880600106355004338417793032677490454280552557270690017523384685345646494559767880620700158343713583087300396423992279363103903085066659260624697821291160495445676835829537512512286616662215949382459366441043688326827710324511300169026106759614350747517538537583597977317118419057922546841296793344299073701243046671522615017447858534755034413224761904651618212487915859622741143749902939556186901634382422515404107981929645709310221218738469698017375666274183126750386314595675867478308396862155976319337701578527110604572063429953748104761620579092395079171707198858376867440675054012810328782287836065261975238510826707791989512032384459210241299656283299852808152948106213460275517092519281377884087293871930485634253758696331586073099921704197147083685969412729970462460246920415843530464017752571779614777018556448127457309434710860372459553696339317575495451536318752666634644664865676875341664480134550767076708460297399625654693607071291090605845805872475808044028100336338436755701947195286535004236000506345139276269228634119242800416448031955249789560926808088109805577868298248907535842893019246742395681545404753387228953716788938431827039762620157680485634317701420697332282213039005653777828200847050861190678059358110429759769606455464316234272565973365356216962228009726053422836320818525470966671337763235197865577073476682313575900675597405463212116262828746371257779021456255072887786746265252526384834415682709668839656507553510830262901651177405829800580061071813283591825201241053285750804364589016628500385639914293606097946213784302451031060500235902452282812430820349006890774545307748560061178730197706206093489826068169992703489255101235524829981315569269738625460893948973853262156716127543554736989431040161582754045820236843940958590422126359240727004106542090173517755902080542528147714105104744857507608484094996514471661489739075778216480426140388436527815773322546197883518630227799642804249155112363040825681433315635590747117049668440777241476206711711124689022157643381619408244939565936772585690697696826849741760663316599134732670894017627734554426998035170999003458597012127797432552692260499923842919860041850050445679687635983236529095660988876625200048450290346411851885207021783665963852717571296528718101744910505421066389880042285239918912923865137263409272030294570043902625117925097064056859389154994105486013403543858785438543880435680015270962691875376591330124299154162965263304916044080779234068560768631281780569491898528995383854299215981118663032197896789336190008888700215363366970319677129962597261132726918567879333137709489773751322251408067322716152131559526978524232886261604797970234212019969566142346566154304975260047795078198216152763617815634825337952899857184525402470208741729280662454080539516880991123736297039960593935615698060217927785193001607987479018606842784729912569696768249509583994509698939577037357327614531832384774505185237301821302241844029741625895702127951775842723541793440446337917702157629602761941560860999742810246246802894938090322143501831329277814061011355788198809795553865087688914356067521271199984802659168206611820110716875150967825842165793389199142580456651877485129096279512410142653101139777025317606070642561833338352390838046946952146292142453475119938056716305370487847488921406989895005066500706573670266675888996431948583425377675178662028366442491676010632219040487965767614537827665850772967765924091972322945068751953994278707616956084306504639914300535420516859039885039839610142736600374494220124032712557750212858843661971984466780493981425820411090881707820697837160956914238706785734121288356840826942589667925315660078685822418850437947007281431563025418208377901533697514790516172655955502299164330216101660015670886646599022710389394397720020756536488184349759430737413295150452193771393035928151739363205678509985741579501472901740278468411966417667811909553311316029996872568998317267919967113016384948033534515517757682234456272273166222178351041110827020507965376491237258182852324376124617993340148482876096101851676669073336307786463720848010026918220837596886165160772624564770838348680838245984721999324464474968416808172344775786866490838693245533303360672958028813601256599180770032202361978741249310772574382068393365497288918633731609151264318149508790748276260267591311426863224462441148481739435288141266791939087533098407776672259694992187207124491708322636526877211367063018565457139199093278794600617791861871533006524266962183233630968381129871690359854240001370821290204245909707559574585347061856515521023553656621478433630948325129087201734063796843915444374624797355912998070886816481536288353625470958104302813290220426083966408776035588809730366687790123985243369582803343691342629264708768068716622359500299324754103864117546908215203710051446795153490614453851584700740783643391469575549108889528384816004953503559955206611198403758927227661066644173388722300641110450593019172695768073211742463300424390857721132295330668806709215053423259884780072426698657479545760936417459370822753898631482523776325121558308190062701138345371845128996204583854083939206228055387389087038924022842264478028099807721152774825798046297745551274145805857297041410349635247422281706023048307461406754493144679295292335264016509181015204363396960148098316644232511698910708227757172725047049827486420911044710046570943629284828715625594529659582621632727184302035266893710109244628022680250198001358070147723216247405349389244941090194734477125266119539498739901510073166863763696074934531834216801290701771840442748748663113269480830919448823743157799331263710740577467035928767836893190434040831682007471374293087985270140603686715140006536005443478501090131691722338105116653796809104184280393014565037994533662817342713465375455852866473834518843087994972210485011784269675384694701308014530602722533601216515741086313141131350360699234574096382563500903831171410637831361360201594347757104487099394962270477086333668734417018691467164375837123010034152204423858504959407535421281933439977749411092487714356132003223362281959980592124670844754543921180405907426799083707355270479049987048730471610415202462678073531431319901107113162681849306513322919942640381567810387908325818212153445084128722772246909397714545544485730583970910123855319278298645679283258949751689278554530495756843042269375670272864949312020454688480504340875794812755744139707453897946827994112574176352353579641978585529803219232144625591120981288278061373921539617691432079952855712273662177182048658797927217726165706895699967336035867550713009025905180836524759148947472036457663047314156024820460026997693393041319654107611508974301769542668488901409569367764810364758810756915889697184565894457315298143666294125181113631161143636465093411463016224297856008969589286669421139988389738791622157656723322803736769161252239510109424807683408989470863420817727172199366857084686604124194582146040082123475774174719662810907445645219945488531180421483738814515972823125292817224094137279265909437621931660888287120184025036391596137025650837081182370309659677062844412413098275313333070155902240322537229541990867019257890565813547503283035973608649853655828517398916167888114461154759966728613159284928251113507637846419791058287197161505650441323580258240848433990972670689863907706524496062187291231102410728598807097779429485184113649774595862904042809901331924121738215085484290566349384220979892074605263720204041168462273003901517807682378237608718312004854602071011086844011689084239083511782541659418879543061326811480743475808249062733754219259611933806394877242211065717164337759560749932850594253845428552046070160599189091571231407245694676654944021398660520584797255168833206893382314633099951816655658661740248895661363409547971476611260713071578742141424642257168318142856188650441314259547170941241415282246792769523586450245691643369921239822445821699279011034015701198292587867714950420129335447443595253539251607605227457440467961072888582979583560153141580456987341207265742844463812971239255145316864577239024191009587385829663336166244368379116161211475946548874686308922017284694767963905912622418459179764975697842185159226169944980245614508462782363125280517612453556985489631525428563289746229464696166583978387895909361170529010021973836371113782289049945495145420479717321287023467835154414728650469534552445671493670413968585788266207751153641198200402992235824059520708279167001234815525117904170863336706432583615206384523875381125807783015007914010943154226665741368215508351948995402804699013746614690757693915890018688958884569863888848262816423565008142825628141551520075393091432620811373140533547608887868098259639631249163882571743083713189610301286054579225821104390884048596670664596785831979706851571578307276168656670889487374966937446270378203645524237430744276479623989573129202785405439635453157966379679984469238390187391544982608070539751521935120696492982057866602920630675928825057481519556249089428541347745630306387382702423556445594592718509868693509441545735789176298333170758844113977953120154576823437147297148177344570922009389544040661200020308908786533040805600903167003930616919380166843800011581232798925554674258121932470575678987531313975157032402934263503513903651751459031135397890447629134037809100561285147691672732204775073856151856107385781106814316555604637968142645546291415622480889971075804035917912740172286897998772089615006715935411428890209464735479928112823360945646301137435193829647948812906063166467533533640418937534062426741545343049059132835929255102211601335170654970771182439430675445138078806899424263659839005301651023151746407163188367975242445570966122805193738343154273696806804812030344417808448029918004748332902737340553968045096511155540557962445667798677728405987918965038605361652363731977801227493623846873441874886084221383784053052976388489809805526389653176609297873943705346908030826462779900341894674397495682724615014171943344160977899156639164213361404541745098766751117613580506232489199185660085455568908046323356465397373429611577794308991162930079462586994073345605332085973700914866659978468029098273207446946570063580787218533924888626277614815199331287060942638793006633021402848890255672458672531124765533104007512654631903311437745907404808838502922616049568380413621426874475100290299791938448327106938325947029316912221129387382604124993799669260783565084604385789736602558728337519647073942134714087517559686677709372692988035938151892377290341893251114735639052048715075011831558756834528702282945568821976534702684929587886261572177055638760957090890451858292363684586026283462000309931654909071372297065714018800344317946824299250860751014891100609420080657290812399985904816409412932798467477369964270740820680412463718612104714692932828246698611479838312438308128923031118581141835060816764194281858058950139621155043699045362038944376370028627460769033154191200153358044215920784655527971136120156824904901401633424648421139613559072388133047439961371265272697507033212705157890888895656557847624752790223465819681222998020849674608618555428226184985886676413551757696288100073563365612420047714275914168152208446098911492580096483854176931289364058412159042505008481129496882858708020358905916473294592614445440730316284161211818778465050566692943647105773326163104184222172571401589130571659933624066154556930361857546666243799489365275487150893079448044778253946943188223122580611985119099034651781732781269829144590948500670740866093948664859590159384846527570511359864056470535940391678679719755929096765034880640603635180460834038359415857101941812199935429441259665841440352905719576145708459199112844757521187857208973169466398388436374524449350127780149773268049031510729905341775907269360394188228619553145182680450402626065350420297202207990481163333967300238838252003839196672489185328489685278497090722839338781652078768449833726777780798413480688216942773846375512721504675897136804872258791579931322401761273120695723562709160859375012190307901076471604880813518347543382213160478035099086674060742752484423051580241019251239054966312236386438587434326205334108043912684075461657443721913821084812649160953298152645899971050072610985689358505782570623770695307567270192478967135073591673424199957159508923017675947572880906434602494095902638652168612119694494782407067308473186053258235086104792718870820985469043038001146489684568398483296437917268748536121352412671218301477809221277259719090507661662665678641095002071554790087471891570425543147080357012669089240862627341349404903168855662536962095445655828505318334983453516172390474027219660583399479400838128760064103695923489639027774222346451375829983613539060261639928842824357505491331262370483108059662857103518154433230219977277397207025475943448905246806823894769097253348600754052176773334237537871064433361450186777483796464623260349484660590266729467852749564409460411040365216898271641241063077203908734970909780838866735509838955739496363696124933352006931724192455006321612225543323237477014575204286573486884330568702043743900737986540245067702272886053219264586405461032111361120474082303541762296082496331009040407502651158831014186048377520620692459299825401223050962121746263319254753548035964694143474547016774252202237594313067089027261994373172352860389040288845605715233903571351524649556996973432651886229555401734406679174136413862917948013896424598552124734273215211343876116118780892112986720769794713515106289381997341385248628432121574381961151719260689966913071896146629061711886396482181555543671219976105985331912181076394460703569149063335615363529232929148234653400652843625281558061150151936400932766745621474449944301210926262559352278527887595323771816996481186967954489467824258571823006137459404470239939154329193656460496338655439882620320196671810003522801278691645445512675134456222273334336575122112939476200765458434783225485824530331480760304474657228586830488466457147744004411800316265673384724678200560306352612452008056583742357260120788759727195756195082553753094972285190915361425393621938242086464003875942293964128204472565953834994294010458795706339168032850693210453423846821822380570170305714302096475186546528651437976809592391033595148900099439671569392597477171012603733830522056127372554483746483320445919106915227989739314062874678921113934751314132204695882227782036516246101883842045313315069916776181041074703231742055830392761633489627674081431385758221774327628857188810585622689061247427006208746023430932476080119315906473192544183144321456812208859996779621667274266010147730532907477462180139972488524991155962945792007382980907309071486904634835915154240058063568744890592190938790209904663622219022405480703616953880831867640053403005130806481599301513123734995040646825330557838272450781045327636920969908909946486145628328746334349461723387582975983513612823690090838135726674302793731260557468772251298777193339293472210490622291271061060622220592352408801679232873079065788347562779939232538402727731267980631781037780442122702386631155719711382835911136892786847650643990460022648403971313545348515236957440185123763429317299744778008143050353122896542737523051779587591191254895650872586496331825094450512622211470522351221240996919515986435804345158816182867181579396173319907739582001550645737663084925827457245427884564055221252327923946190189916367170789714858711728813169728448456564322268732660624110789423125095161412600440472984740707177127383784537622069971629262343711412064509589801476551601464739194738466412363833769873847207678976666509858094048071803745632640549966313254920956143955965717043534717002775092453576693978805220607043845301394795606035666800540776373535939202199876122069660589831299202760833831136398453066329130620884543184877353876602373058318501875780921185779020000014059903741189576758275622991714121081437318835620491800963957750099424329909496800985229657944519861137361306152421081262888248744193534184171992516511181342597587629272481103963260696958807935163913726632560597764903489084451015137854614011703300417359912462600562666865889377281514810132923385567037980317535219771177216160049524782034064862856934783419769837112676843054729227794831937683566668930468064142349135318393469001491456769499346133923923502346033194181956324554741346749320955339294607692592271336386635209064455319031489827339412662443770565551724484153797376085137536742339069038454256763948495910659294048122903101043619536046427038441184754796191185017653133261942911093564473863308762171564688037265400575074343994311886710262720393615781718778494052739587755475484051077586614917932989833876802799860008918327396943280132439953473136629208586302247949375911287783948039504335763374479053418298180728351810408417097117310496078083461298643198045903813810356885955045975022780945679416872711971660795968704985433311218770220969027868460176604730101831075717749645576699777856405341723267449976388265684379812961642739167023473151270538289116603233388638864592875525765875740506638282031758987221739237830556664749251461255389678046866998859509833121957139260888348482258738684254455403634879332415919725149993538127877066854671183522930926850259444160767796635444600443126696135968878616713838291950653111500519196721311533025123269114824733525686234679306992292085435538516917829189759853846718856198120806262308502211136861264335613533758787558940635663134381048600737311248578688342751679217635299015860605749960814358631408172351643482195556157972826441660014391916431460342933959103318129590957442903556585448503552301793444080957727151386869815731914503168170172195753010534334051533513737622191290780160196113266536224228640410617708494631673641975077772325133644359007435277776045510893266053427360330855700826539494403575818281868658725334471252523686551809380421088749032571309267137080698105710703598705328482298376372420591914065811155245854004120497818622594806631253725537936854383527212596946404849004946466416098031676034979627461394978164360180492570333651373561272539155182239100268508669345486898550322707550313466081603601682460191466547373262097384533821188987443225400355698268258695784151113996970136034598700154902019517688302936765745438928641765518183494162133946588435454767833629014104413875199481587102117377830237600766331199259730166571913486780063904394472900474273429340041623975058882159741804023314333251386158106411339815324454196019079750111125761031271504334261304433122297816915438433361714392527586407252941764005459376518074835426154899768222871760467522770566877562360324642130937848200345629118080975894604135098071641120926701060318068111875280324472038354230522904985267610534568858259291156320546053004574488380142022641560702394808409938850420723640421360420033272450098924763776594256430001574488612615438391637434834582286782100413649305718013168393428928526070331416679582179455494514993626230155827562512301212575316784113568865168470851273351040541576815461041904921788637984373842712533345540984688253750798701309715359516256574909783041430965996266087424977300882199450393966206548559165954400798610472762440035346225570655806913358196300694942351520008582847674831744826100767186124262874614265798404250200024462817736816402599982206293861767836286829045709944525321888303313293100017240142577520171420353516622695449065779762833389476626195362017581363839210299681080824028495119716509254678050325589006164382084342142176778686611116676976929521182583278681772101938418082404698194658703578251593091195039338417601951479458559872480462449512935848543244489754531568070316310978740195696853773596036581218814961795578261016721471852746437958195189387917704050061544983642036249290169524588081111569676030923564207615119590482167880170228091220890449505025705449876030516430816579836189961154173035869918922245671715844800659368189035695070022520740542118388051598069689087023118749357043229924723446031260296239971191421224736760381279173344712576208635826060822927874446192125830614130036073443091199473190304718725677255781628778876236279999365948111117246095124475073293730646560233214017593161009973207491217847075289426513974308061792122382015794228949883413878075417161843379852419899616551084936709627180862862205015021871475004598634900194853516219397727840366091673694223266219565441620492496527443722159112560621882791175563258687835863459482248821876336928419706841941779152913664866203503002031665357442642374223491421427783624544041901370831949238082107153909786446936617925408508903153319948142238977854568274706729680786247223984911549418179989362470551472944419716205129835985410458253102681393054055773917277684173915239941838593544481933975428107552649514401856129959543222981148803147714367624866247566058588645966872390759504134378209690643755637900141487564753926049126995066963884845453074329617747555918422820081937260971564810257656454565677707253196372007394453152388526972912150759616869073640716847736924709418148269923057472678953923233983939534897425438687134480430624920260572305354414032418858253578928396113428898804661559580846868107605673121178958288953450574181098273530574194039132222662948085310577673011902392391817191779890539642619325860949455340660510759435430431121101220758782101944505388567215305714270244967386244315514975776558558683514728093864414980620889045738685841262331148207409514606968523312971133810701861002265702728988537118697841205208292807143441466455273664089921685378307837601273520773927403957522092118974266625108300847521730005947563188952431228272314632945929718616605074532001238961490746556042972473502329168300370498486675852187808051693380230029097885950849295047397837955965436287332223377577817112763982158137190643912068895057964652069843125736353898713460129405635449741649567000552686285345253332769613332390666739870833090322634262887728070959139954191512967707995031539413085037490916217489168353961195659866464661321723447185099880905298952042535618713613199904532683837250349986118762400428363891603470817902603989005754340263606358171332782496826641354893985223088010228952880138484359244600324450490016116873213602261740088093897574949621465768229814018331466543032846945842159884174787463676250833564234771470249703544428435597065513139256788558414500483428287065493276771901281941506535271749039205976196110840256023671043877507054665947116728260995072716954274010408573928098320303193473655979250330113477210984901371628782256287095782400568470418179977703174256274809434152938032304797493559167952529820089230331733157313264471242687612840983559535732053625426969711628023370886834289910923314131348501666711643358950039364586282208872678893239474276168667654269094775179662245520069610869973637219039935686505561350430020094644470267739250363279280089888090620142381003376436684976806076263876586827197177418959813918925784371274703075319237355985903328614382990232384628309881170221883069789588173010723785117440852641319791704424937001809911412086563204227721891094144245321275765035311249890631097758144539551844368166637976918989277352087772538268961154052680111899221233093454038456481617193096575792907935975068674372478341928734998973330766824752125788194126736606188930162381509454732312125469037479011146971927589052097907858876448436766011442658811001857360925996482498861789210823967622690699151378402327915189654192234534254479132268894098077887289422087113123519264543780556435514765490015505982430773455908323640618134040637850920870508616108879379730073337525796971282857740793482708152363594310845554049398793610982839185288091785003029198445163085270265269408452372448005059410300552722722347684220984823824368429291954681198393774223742725728952803283217616440812875506009358863101282858562877119626489529410678431196189027971125188857011694257110186638147188520282349301457335402719985581243357821704196928027810875373908642576283685376485141683867402253967732281938843687303924562269061274363968922426355083798846443719856430852739405753485092536166476865411320250843125634367469983368601833191326191646051891691709043868715796067137819847274481853743244867485195158892286893632581279671038976693452403388328938256245192558137434225284155357476405552036745653215278765546688147157862169137315431012267840673773919709728254457539700442353793122871537465361005271812275738629193925795373537011942424191389448202112630985225895878190948233580236790224058098179695853166030053662879031034194642502509613221115693676229939025052241000936837925041924435655022411618221144716769706820145127803733677443036717832051480558912363473494009407207733638666138571774210920878385703546008000730645497132302310967106229434221905527193948332642354191295431954759924399855715999610002526425466028663754785918015258232521446259109049891298841198858335467135139626550113941158104689852413272095416196705544991971756453122067703974292853527818519985301698040534711168626575823660303023546388902382682567599716834209447229118000065609544749871011582932160680840470073116912357016260622331993861587159490932489840574491192953159954405474192384782582019633059201649827764177475785065090105282189274628031417168588805742670658194268489606095634111132713030555314583586040963978527128548419542538610896883043738994019606677456501481317068119722610900414651113258037402707524098627706966646256404156501424598368896508773295843212074284331516332516015116956501883693747639979412827250917467942365044305626576402674580960270966789902304760095307648760404915749371314810095725592134383125400532820065084602849826602863811217532674231709534090482986363891032452213073800654590830449083865143271116428149242878414320355364958890519333114369978805771461449541438309666110606618455195981811026130472858118176867217512573162351288289593138126312720936395272533199021893448885259029982509705464486955943859591291217781947190281726069436612529301525586011067128687688172288317842716344211888523161512659076196099090090529802561704329980318148697817328712438270961264494619987949694451645722303345832301897422779712717072017925888278993793570947874997006492943059292560484401035999832410221123146022626887693647849059845821848204579695500305840276793844566553252740870734147947390227267551269493950661065350951749344179021903283542728931501443534247914712234761364039196497184416055134179639870330881921144826056441814983119300493341939895000187835230158420832452060324766454110422513162653668401124463311919341324122699674710709881585121654021416428643817503425322441449717886176293621648352673341773570758341203038269474086323547038736826391165212252428085114087055234080118775347691629283504737493776532737843549058650106552075210541046485561996091857676759599757301208047598335533778415199096581156782779999858050196894140168422491485459658224512077086309390669409062194709830938953085530427749564756536458852169672213034773046108120063911448825689937175643007008575270424282200891613935236656583336742720670983603148266256121782085425363717833518386731337870636626215815422327376535932360801538685955145302913464962894999365464838667952145609222034013249618692656588611977230328784031214736029122062604077775675971546870369993453469890186359263396730354123041632728784248163366793797093641536060895394590223653174883599240641458497948533893983816511807347907129389577021598373477760006797220110092805490818223265669207435901902439448011314256386941132603208492620949565127014888450430641970730536070032543190421595949807498250324073758043399071407507053596917453133345552837022564727930061875382573747279106551124115166709130372166484449385851603378125729649509532160672997996179634015311280952579676031396027025019033383535914813921386486800202138876679158321048816949968262221140657087460872439825619151703728447880253694248707085437776020805130936669092672961256089770841364949351913962512032801429405534199223623494465893828460559246817304267821842484557135450938676206849781954070595283268736360921617396778598385301128792131874267315231518180825325868641954869106200651681844640711672954702796989299434483985508254204441725655321542754257399273807030054265665111325695517374982432516516517844485330285307375098095295839197029664468621703783704486466450471839145975713584691931186426166406974261048719645658000851063580548640872966516043418769722059712879069460058284602232395810065507783196426033270053196167765225594553261403613263902776952912605681269552682063221111681200200193604637933812683688320828832847497708378817089582863678855403874344222847075892929199583608134117028883326929537311323982161675456266462245609386857373753795244454195444558757070721982976516822419376256609640932415198852187065634001618328217063422196290192529079237177887093203464193481560687965342480046656431818545601904262502944909425704433645326356097633891582031050164443154233320240119984098239422142574188832631868388639335304456976093012619790168571774353361859878385725709540584731739860065563179577017401119631184721634022715860318186280160710370735018237313306282308038266419206118327621435903599768262793948026992523504879646605996547524505417193293231622985974261415541134332556147704295312162556415301104665692861448465514623041388542186018013386652552582610203838173735738483717313436897317586536603399160240725844330890223509525536943447953217336474771280910278774647181640933562653479710860236432098175550211683959619042356498265082154015361598035147590589843912318401786332929482486778954595816671373557868202247780152715528586962568127237661337810280740763829964981269718781304138254500135214478656473949343998712620973614252718818512515452489392268592909482680852856760647333060739103921515435438127039126556636780573462607473176342991903740803555497664806298437868534881782687328850097150214589332465829699388719872695918947494237611702886448676969556181056584172805277983617197918538867501691184814361172879228797520655828467774336668127111304817787932840596168946771684017874781173390602029600759096708397891187351162509299360078890315607995502922572488209926209251277156432912020254656303412473650263872098185732662304016792554424522901791144761821984436647191259566701366360544797899734541799718101637455280682364040464276713094274768995325254232089695228750409626224383143239934935851940379939640005085663697401999424331556927103741289382701894278365017401137868634689539751073072790098454854366465436747701136355855801382072085007002669202843433633273039391515319448702698467350317383882483175607686523330925460072217833173463631725628085979639477733044680402301571244419201937316397705937340355738063434274525892161719593516669569565085304771920407317366289849645965044644473479147497999888430036196231855080864452378108323427648407258096475155978141976958217142207177925630481217590054280091107054207593957729819628488377653864516995288546889193371536982575297004824262295347220298891583041306346435146548952060648401572388213579339925654600029383668124816364304006752566238554643573045635424673280479036119229196318268934210117713625724606107610507317012697945333328203720105982278641289032775982494311302680786765396717512910032392523270704109295600138408577493277358926914857134250731394343988933303414385427328153561873512140036481630769499049496822407984425701756792766352464876411527154211387883932155489316157087701905516419475868970176322637142577803198307385569051901922363739815197007631018116476834218861116602085034274422557245254512302615498281045470271063145908361784805413207613369230599277334199069609074910470740027986620454581672413808444505873021843910720119964729939183042593360983368650731252083632040873213339213069591805496424335961768485043428588368797094920090309432910359483620837847569299171399294322392663901365803571179249233964785343360276559741753812979741474866165205742030817096789747185646458019272667100522115610151928849970592422077538085017131686190828186920114183525123897682486936357570379494786866365810082691870074664176823247721014491027661201878742490701051975041511142414690155861569969968933097075192694561955477187639191106822576050240721118931949388661984695744038074803433514933554867563771604374092849305678024646338327461460028365346231071703695151464707558224575075023117379700970135123451998511941574078251273785511023070450977026045434693959402126313878743749807348858391755965502250015060277211908128250143190615046043777998010533500388324839631276601501555266613255299210593619776435679934779153183909070791241419428319864119955807906349182889496365873573929595479790193119427876145848909048426830330054622253100097719757058879950844631524603784186289357714279298676903647095455308515377285100326104904868850570870672548071404672152128461553041223657472283914003990794789896242147758396174893094805166002228727356662725608573705754121599255948695320264031983603410363421486029512513959714190565920487525271034727143243254345372572822926323848202196959152896955228968340262195328085714891853804562172175743962418022154346152113632690108689109449425326670110056943707793464065874794945547513597631573463172799633037888899343199341673620897599485553913955406225871137376142830017604662450828709027421788534320760933123155032693039170887903881374417756005348300185686638708181662357699553897367846424396896194279531658475574722383177819404056696485787516240121191403642465937142630394824125887836668306779268097057783186611737287673748371222941125668227102790659997294672437142101044169450944185842538813598137163626991570983081367452493023448770310882770689280246766305552502768776064727759581836081782154831395926248601215803700288798166604795381276093650870033557188305048702929170807707948019498911298964190050701933913582854775023813656705540291429578309784452055920158632092170238815202968425651768154194447440266312646009847629722044868598242507221105912975222787003475515509273991651979001039923385215418847408833030962390351634102802304410672267265006923687185479408609307487656702195292496122816129119812746154901085811940674459744857919335699021819942469856825478475295868066187529072759114438276900304441535678238200986505698956296650333041159285270029896953115787191765398303693793980823597869686477172432191120487023200077144292436925097389947599372532227486072979165841056845824525844404972390294462236606144297731724393172509639588734690445006753386609177426395936004887911893728583363161329077235116041323231955298096511704938361184975875904052696143757573503871137866496785780270888547443398959592663232277248811396837923361802760472963982245050046397330831566423848383365170847953296631508760989943295706883430512144848761089783268510090874566111840877953626103104667072584292762925025455292442681088313858233538008854479778992722663703345151250914987132087892161008530862979675037411488143653915127387884121227214432528734126408117085795420513814855099658297269580744484039283934114305536357000435492726143604712265981638297583952921186488422077884424581930055797641201193452417475347278608535221631083716491638609324131891370218430104631188777083607948850724799342610338456010828815036316782341639164323551750219367182811462393629783534830184570768841272301918423066884123503302266665313161915525735182576003282608154249279002372454996025703333559343711747482783291990827455368845870026846013930393220870650138556914035653241708828703532814469754732335103289252150278531330057714192179686743736291341695225317738746972130639451961350082064164536293245633466739345686036554987422511512072957488967011046635683193387820333384688279775352506916148221983891493200399636959710893966795530189272129840257404445656733738597560042996482449385394940344825337402892111485335926852891075041983489230087787753951518386278270569500082314097368886234989756078761870695967099377982488571600785624066549494917924748450677662687070729172923572804672193038886151549853865750994390824260690806633175325784199528345483543185671749860060625047201270501962190020154992163144620581966356929913530839610216175326382784466315181894503624544052831886096214991875480631561832587742167218728223076324918041426239865231195076831226475675155861614267227360641896893117802801882353992738404579036816845831047854402943178678778899505731154826930683628127967070694183875156575297677879855603959328705618336501169142166128622742417481944312380043593713252954915872057182670990963754077699169801691255435792235720221806403528218266297913017092791751295657468824385497946014693676851879594883502427503023195117890946416915929973309104119127537846283628023596855208775991682149263369385539664035807238786523967398145478100435909611314342150869449008870766858549027479775135884766979621131070734735972777320216105114072592693917619571858740019207880617987414408180616442407168739380390600316771922457588851701219528073980733395077764862263822373617593159680052953464123444689624796446369564408724183403155794214222897915729419332304934714027595680663496092768233070394519733167985273041251111393349174381174528934483784022640866580746290751071436368084718632751473604177543402417381954783779286597767813685430949699782045629972852605228181334567929971529929984932563170370031020155918578463667633664293598849352304227079467518856508732579983367074183102979858316332504740013819038325044431844884784316449983033159975296161800301227173054968499016027105233167371104689568032148239516714043311029936796226977098308960751964295177742134533299193285604572892538894128516226042038215205297841678473665049432175947498937285251320539393362229896853708910322967612992648606111912643918112222419817320657326257214043912913657804609198055705613408958298624548169556736830478825951468637046707392692940738490186252485083463988266174503308766785480824779179818202628100913799438047877557321428937272619552973393471043795628288195637442611158606589562368851058056652785162528060890341374878096975588294397242540671477323575041481237514130565208519623184887827185509651728778342226905787938240538780755155089314136287338592622892832988188591547670990105207378253542991741540867442899888180647731695159581883515131863283219195477837594221726968353581699599291760086160351954674200432315720399939342409430740449286798110036013665542658602141357140567691602802553705199194139367075791179956132414704579008068853890792835166357765571129835604377056713495807835540765401229036460266942925867803363599906832483302524820569549068871002641043626464416472726967788525494445835900403986985904346346259038547888553305108256038917331484800162384752968849403026980622862263691407691533521828548429569474332803895663830710732319399902441738723488295931871845233216571581816566362531731633657145962670378189489788493259169430802839998538112260619241795272163424858365241991264863085249620461374794803361403449224156532285813347916680663160263223831242524131664694084444239798846883209732099634278332737643611201122616040501762682598902141648379289574204854257760005365806774837373418895835664231757748050052325860751362675311776801093306342573140337319383101570957924081083857888396998791276591943028780422007254556320067467489104666430547820015942153620363669145821181483203531490779427883633695153138959970686050004420662198793330238898083100155684052415993377853779207393011677247063875734920493694120385001351654571907698123032680956118809293472108090141900262714152482618280375964915812526053451009627664033901029147859035397018464258203215829505903262432647172659574972500728102247335857297686509722939273820931875298941390279789972026140034006165825175809895816178539716503669172315229765139665624016869384640569437137140973775769293383591019126931171259277140540559233972278735774269973056835901139387212668195718597297090670735219605244509310750048217414464383920028404779833926770770439135755996484370538137896337578981675691909352045999010482471762651932225266645658300025388159275620112599812498848693138837939010993551000846132690094072761643997071242253403686047049141944516943707621057605328534416977377380203159452182360371712446960082643657022932562507465426397104496896534677734016537219232480586297870295459590198415519633143000570568581704788975017598983945530833418171988409184296926318328591283364017545565121616684057423864004257757162766167204034911065655521876454723285081490253659455048538372925501931095881722916686065745642897162517800292589622951513254605176285145356271473011402595685956124309486466797500596318580837687340841164258004125139542684324707594919388983986272204750768107897145418497407324639925463644974101883968223819659891149154005742125482752218216597461818455956266798368640050902234315079738607337546518953116276961961047310229932041635132168307549373957227572508935424235262831233521239327816157315309010281015835436676815069191768093490655479309651701365123434936216350633990630674942941377596477578541315388165616284028107169254678410461330066114934697385486029385942525423276265012276576247368107516849840091495045764057470601947083323545501897122707762785242076232432496991101491853930082167999183915263213689593459879124361214827817704895467752113131682753200283989506289454636992476498366263628355866097429197129001828957215726189120563797483807987855389236936968321376689305501680232974643498036485581986368457887029299727879898116226886602903534102536658346030600500581999722736421096930637458698111275893457784388665001927829971156252684196602486564805474298433937902725286612301207270694972554902082004866401167701725196726283816508762140256719308176609762911982526802978371591458239836073633108399885800094400082906223588078759728929961081142481519511689235281899888019670653305241743061313545926098134566963533904205498556755347369958531368674549819490395106397151251327137243495273806118103363243420226540215939679400739094948682790251692113379740185827594204705897117777959834595536323484987506710420907246924103641151992179628816473379327355505137148275761018130560063913039251653094800544928229383685767877562682018597649283316730653492956335181629878854579124804106579430587081907394569741959964279387812895945532392570225691668685376687275417427943133141455843773429456224817126535744433281028152559740541531093885185788716566933642171456517348698491184551729381100021661995882416714613995400718561596252747053611320396679219590343690393108161003238075509580234498255807105054315130431549981181512704073683857447704486865771144110782999763648487830673967569903659152646074815672243148727148398643855491469260159382212308771509639376384350698305890204177094891606889915445063744383108511691462306118454240522801478021629568694218237290892397798424333945611953810627731036410948884318298767301824122320130213798646565227876890900300459799720226902970004014228627966064532486368852179496372168142903716320212900983292794393005121450848360101475680462976737264296466737897280737314682097528269648956939930878978848954774792525163273903140512339277776216797200385429249586801618211596136224417796304259402584862748587207661959568135884548931232424035576984427683158410706557204977593354410863506903787765256162190222677902045916221860203637239190138754514688491944620247313571983645405886127766849632936792652243486753190006861894184664843132953987419571268648492902672548416254672312466493201441003509072921766925272041692915930405069534624992470512833677903219834161067748185414098250419488444353328247289080947710418927946139174005853531975267455188945728938680011611432341398248017871355383112461943254888232495654231844871581302327469666234186875171565840300735528673064667272115036585712538395626146719978759660408977887975005353298955715196361588176413011720444784701224041543913139077617065576718232811120932431887132094890399122970881762193975847401189146665299128954026133341578189402790036824610326200084599685386721125922611197014891715059600960889962117975410664376929058776478269195449293711279635096168896790047566414223552453967300632349284263877964094165557166759571093092660846250432458492709574886208333351739579486780111945718997440676549528428351637435804087890422437337736145208387298798142819728379391475154404591242577968089650523450290157846464904006738995125289111912558149827801165753823463108561577226591992780648730958392932836612007526293810325296133493076744054771203780934918655668685741738816066629319078929456142256629765950872894804530409521807892500539227612861662928562220710086325474854281483443145138368947469935326031028005391392496345609161282592609267063624319501510650785006656542179324126686149387453825133886974616979869463861737476639339020591913486637081057139516370531412874108078406265622983791348675436728838895513534049940614306584898926556402313637328795990529403578594636693809862607301606292975661169385156595414621690853794854046510360693761086381055688159555742711418437681149207476801294422382061371473785735884054955033724505689142890218381650623317011042583566901933122404172647699353268973912967205434042963238907697784994300446142110470826454645516189421760661838645111031150497009630616303504318439668070484981657696897058621480340921346227817025472702955974439360986418577517393553517129129134093376509321954875962830817922125869819461458262492618527829609701965608157633530296202398811807106924840747634585177602555637442610560153691386073536582547348517128892029023518777456801699018050086901661955230849852882484850369555887595323840324467808575715353585421324046928343890047095895787016763150733670693033009087790360425243787328063252949568026844411101545685898067368526342489538530712623424365735770118168277013098081027568394214238726113648750671390407197621982605878441795058422531916277328459127510342268191597220111777027585127026457070650099316538404695403771104580895662645986026221647664177864126530396616011550323396781910295810609061959005634281821745077088045018004868493254790140807372153623859328727554080346380132083514290751915919859404017316719083156376030662566830308710657712524086578428488383148529783264663425529381077126244986133787213547350826630685806360088624511503153287690464140761042837795890315099945013612078969511435023376262989883081484423506894298964462505791326472525666250524391313825747700701380731950508517003774655374050427633638384884349424528656348158507444256996296286181034507638423135022609008007276872508690397113683386990073344314686047817391611800906031008406335492797007326406024465786637216602134392258811868675188812551022458600320229423889489265648087057177438998033665107118769453561747981185382787221092443293506460812856698732310476822512936733821772425257200466180710175318944662869424414177346178775450836247971305348616323994601950273018019420063985420762898335300324517221266190717694314792671082480757647322983494342650797963126483056620467421345669092377838327470887764887341769590006387427151462734519820101888163218461555669157163820245618629019000260459294633173936086454642285811359076428524604303181054721536820319341587660324924418144543005400245176653986697756147722744734684945413614924346462657396707320213297272731515906975056640316011328995412022923357599429019334649855238687161932927857674339816796968413467199127185848518761813839106493564193614014007288601923557674415631885834515423276439684722795512479550891837928256956737832313596097608643767440264013903486903811680074956137147296802862654160417594440851152503074800086003605903474253353683710459374221871397866986348912661144575362612333612836391634672471175523582075269785733860544880482815190980173865189780156150976307784910870842981251217556541192409984708571705270616821344277557915936482472873861618383096779692032036145556097569100065499734324609325055352939282651191499958874212758384413988714493342389368714951063416134597345162094231390204898816701763632098429740465522884802565919998906579527123046194206467823447046604793508645951801100117294755235578527386675734111472175058263534625346562788041285833548719101259385889586287543369856844165729133071914498532602174990847341616258175904858364409498226234340676358068108149917919336087041253524334187674255262404977961032336417624417203269758348585521124431498675427736471115710745743550176406303347593058312678359708881814875570238236109808029919988503604285571123662629130785303196127470022223535457199695466247032643487426218862364805051348461878652595285441754696752014359042160953888224800642472055947703598933730248473640604398048838803141051979287435075355426925573820958788135010442324602881257079434280556642496582080077650677136878123951096875881514358791252253891293317026457814417943741340526577158026957025879678106927047315971274855221501587144653771122341852985440149426509316216261548310966023200800667785787943284587062547201177451047444429741661557671641059653974061997665966575496090215796444423708179261113961115859451559736072922165840259729448123157987539084570927726899646286475101558615646503981259648701641138332852612703207892034050401219932413544242735179898099779208292032896560220777129325852429364310410773634381267005986058061259857118823218651577044135330538700166275278496340594621454004723686907694835960107417056872727826746744090595823399561806787006159403398598824391043727036025399351600431959177596345624388686938883433118352157255823462980018092260943435788879576408005661595445875323255664961912675638617588135845135573129493904837912847034416993079534636581989672007043399397932594335633169011188704559437853965154088070063129274228133024556810327275297042568624928787336043134462898831534369859055553039736327693305899539416967461651112151423322517040553219516004248834062662298850176041390455005726339921982162592333164003105341015475812041533634564831487062672638546853972001959134638440950422652236581960822417631124901189567407267328899100591738027654380354556824180927625406713049699706852883866587603158790986139233172837074105714497976002170344307100527789499040850809783086984245282704377082950928017595942916240467035343875157590303618015552110903814205609583450156785485026688397827638327804456748123945281055358795995228388468617959953344710591283128355157330501669470783213600440154806546162260782741563828835383900834481609756118652997637061848757429689188814465335929008714659637484841368057624928046195399097367699004116944010181334844555050036199336547696648497045290321134109484112725479748591648131594995366177965928218177055473132312940149944443643851380772870236697042658158794808769420824033175375807709349342015156565849052467855393370092759560449269135635389041677214547058346664362945584821760677366352104105864116133912468374204967133717690256490875806127463020266958687837333810087495288663148876308729134355511575491402226859308447733651750153241585245918533796727770264090067303731529478804686659856250636489724582525925423591730731668981634816461511645260947019013152558621245576635380803506533505858932368117786760572603136685000630982013357832152611095270552297242733820877190158265954296506678958729439009271618317508291644012169549210007520010920360933858949206906174748805220791995729080793710061373022125986705707917877948770378774667300047605426044933922943937101808797325262450275089928105567554690758964351389842042608215164905191673263124859489031393021959829351260116263055246343631136218089501918288425026025914457357148717724514206745217875765366850475413870854579294333051141346025457589440703723974404399772726180395928395230059921821717740454711396339863250492132087903764318700265010944696371191065239583670349614012556770945656435744761654051160561092922098205400110286507171470099028055249335297622797288379003924947350798701624352369154385113346631535169843164928008501913271220589267585888533962029750617162194270917994307695821135809485815006453867447444378498042222935967057954825918337434602554027711312785755697860598809599664049258367214302101634190677797882757980365852699059697042175117268057373869160654382416426612423146040447409710666475595632287777259715759319960059059777409429758614507802888186994739348425917492854904758723968984519970991188849329550204930804589183627573348478401948753916057533112305130537778862051660066265047381241524384939676964750935692973949397815023553006305538030959751157376416970240417611189069663708539188954643463468972885015965832750742735233607932059136098761660500620640760350784767689022204397221678336743484133173326303045804131999582477926151431731243169178742664289574826429452758674313933110826093455206942644668762741077733358875465415363597554648472082155943620687295979432676458245754267877502462976310267299534406394220071688361695658982936352355848771056954559887499068965852143178084499393761772524265409287361231764089701461881788658217684746904845965300579701494628212029498540597635182632731924014885732029422790963876900354087475985249084810768754557247810304782041517760122528946829400141866741167500820606871383699465807868929483371945330855993878910797003965272753482516427561869980170512627353219788771330872063509871596315286466794503978495856241869701997226030757203784205499783075680482732190593783905329807014546716731084886547610029930821302931554753259513015394992895261109833514580969127201954731500107043942590834428522923594864601491721885161914774047637237590306453329327637161705673825673417698096140332481782200300509744134394552299445062888568797036392770209779740822224646694577359899446482244132215140630564926448564850202246562666441286214537488879534449627401251085609363774894508823928878806178479369431328112605308651978363845294248301307634219832341861032869635602742885994809559414293688085628497429145889301710428282437648350037028800570196041538140008941568778466605480945905107130304414772346285546714610328865345171798297579384952970822462566814500226162763322307892637132377488287540544007338815206259267680494885881977442216951210998216702918430420697917368262350446032835667765515950953437966428979137242930212141753222460430628994209455229832587898341003650856017781889001360195105850153062788462670651629089236197033148132868376579895725710006356817564095269575559542487254588255257022674364191493124642482972023182448136860020774588417998008276322105097421771275413519175005285113920332912629808228644915222258452953998829481814159976823758399535891629455492168979385690369290488038190286649540909399379264430073619871192527741331285215119422367577490324801795858683945189290503313407032200966160728754815073643423221088391150114185272092259449453734455893617124170472580133397750836155237778135207790454443057142848902903815932792418699338354148799314614278854549858294849276453340698580931237580083220324912498661131982296967499380046359978152350675440003513908717946888909447609512778370053187457502763659588041935782393882095560528844868787809834051742956992513468242944635861334599309226788112515799257145203388589589366216717078040816192575449831585482970460830270161659469933276047417295889800439747881882926432935760271641942155067874744055419217828077680715663620575081878887204004147131774160847188575715077929189208791980767659316646769614054157538663571882852846060616211900579938847785800357148317950135809656895054806062480597771192435415628195763272048225526405121915069752738041330747622259434931918734695495239167295182986051819353867610311645528454517192035942347473391986179283113816614659736168817641035768824340555952721294966144975502437858597179056489531848154478361493610756909744688775511221808222105324389883191190338515984989229109640141834543680924526153589840454361480709575602364846569083321660967201169135842328210715549770102815691871578863352114437203381131048543289181812415876713339871277648906759146332679945679236427014352003143512293211796921662598430507364221446687775243019211221381748757068971093400709514835819880427925827317433672954365335854874922078350345823419224266270539296446832749356552805273625454833187248386797425923571265683571823783660228995920570015155047034706174297411491396547865933650030656572037523164180845512011052643023355966925646454817719190396066237947648169405640995886490565906685806024829698616075578012760658597117622377850092784611547360338682086102806507882572612122410166492622729331316123227388695477842583103077069080523560052658983631973515876027501437763467348426214097481782317366650357750914717520027525549568641981291255391258294158664832778376756821010053721517032415159612920122319026278224908579357736300858013931772022828023276935481251908611346022391442225399192566406300233104859046747026441546628574591564395016480727830544925959983417980562091704928683954620572391557968955023231246639213160154678999522063531322831044203313937785046205208354506499399380608087281700905795481695357021426853986126061598007752548586583831164286077565034998224582737472244187861997503160825943984221216170347238192488416329804945799530911726424200781372257828189934029893534631704314170190043035114363139376706133385390604859650730136566186495877261460613570626517666530349487991187675722961678184959202697253390550239357071368260941476990347848763646236742834745214918594784762532701567082649996593465406882177931305223875324772764080857929120315215246121968709090034778212660856883626500760710067894708230011366225883232677945339931800877261372635430915491657234147103258821140934780044538247092251153089727510460678332211372505129775669402110178882693885018194949600981080365497740549481467412839217060077449029068159282909572270389433029520714300493963606158423138863265880303873931942539950784601254198979485286137912714243981744193594833560835973058811908275425925707099813899562580035574566978937382578773754173635970013484152532066156738225746791008881960083117741503115675396536324160020748786656885193661531614297346283236608686615100164898358652231810980951598030841372760191011805069027762907087606131137671446698565107729136188006828317441665786917805895121702239188452283665823995031865942861153420711781709755066995285064870186395384212241455793364074326087943319813529991544344179718482428054571080333945931300354512922175172017514485996488289467821548631273815672443332503860468351852858077905336630060789217261917220077636057480313789521687825028859172256524888897208551723410450740834605926058742763914315380190134584722883077619358490481974404580981673203114242038087718097175155636062588665208200485329730711828798364231483989464186332693464823743705854848590798853550695003910556842641957204599666671050210767388742985783248055974827626963017184580962457651791392267791460264554985287964627575191431518418690230608431128043564541579836477892254531444249992730550298369932851420707729761486719155146663212338240777805157417547689112676666624186824520136384999986494439808291417909905560961580878548441505534265528960839967796926809239615981253875213698591556225175427976390271782263744804300833842261158955279962459528125226724749406477314158562836843169387694694819214372242879698782866594571869328236288746598865395077744064187923694885475700080094881600266071780587762647266385590150962107102393606336572324274725939962079317729147880375711074019661925049848430460298408384205278844766159539774873572232215250653996882083262811522303571269413292588961904606670241927338299075966595481296928436082142983549872746207951490125036360163969280981061336302102239851647742484010398397481961981246152826433614049983121744483800331598595336359859708221943415457947533824057745800383489151171350269147711372301979164617253299076101770897937915415212874406516252256324968708192937505471994651325252866208220917355480253702700619354139431457633652700075034043407436779983513027770507941462950945868476943900194938160822992586028739520897484046479751305286325752074422053976234733392031007995321713117237857502163230730368559149003985319635490065275143961603792033919421806590628376138539567163585875332717622447722588698814345954669173660138089948599410709982133387283034454677461754359831858058882195294271608947234532322961724887907352275782292505898191056455887035819356611142776158678932069004724765960773832683154391804043835234987499738768690953064672173547949034371551927171770700858812798859705431577573500778510986174758412016893927912732815035428690988406043826150362236054791534871247501310288384829002719499530545610576140708444838255201702694522299621495909162740643176556735583227768196714833891694111629751743241281218446972810289784270260696133074119282798198413923964009704232065120224254027415181916486729078290929010338717131688169818329736753736249707658263220231020232744551866054279250132139893369083013032427511160673193461494228382686871835339483867286560385465227848629059414138162563728948609913113852633728437509875965001749049130637428315361687864352524896449138377889880648650218815479521556758671671789095316214561173444973070579806857600067512898943417963247663608620667412303275854260646394114777953871279831389083289677585876042289530607513133482980490534172539165121011650175085419833390772173362934922572181365306697845087777622960239828483856796735529419787651686909863000445270108878486125096470992821661269274661627105338438705162124527326288887204830054809334401749826189718867480355230542356883191843415032087266298810007475694017594804137290107984245940583528321813200205827845422228328079663319634394339805378764984669939414520856797100723704226787686850733770049632115733128846921159543934507662283209272110833492059605559352772717343151934425392482061401215170700859362179555093989999963823977144644956227969860802016746234720181904827689547355087443471584187519389190784120902449922465644610025046855863976620774409941572783986593044207088207446024375370960577909779495403600123142063453907270514128421272352558777185292220876345254576123686532993466177350031781385985889504834900977745602794695533393251661555128910330526133992547064111324203871877088228858183183732881474166107859051817257995590362409993634842884838162202536386497702524354124906198598985412478956981657952849730753732533793908971754351002605542586312066075153876098329921164424811503651697600037846847140211413469817092681473242949723573600671313955305415626276061831875825872841941659663317430792144745073782341030793836168026530634288836396115678486760926791803403650758584565880133985851981075240789535430828219725961575435178188569526122265768948086901325138797214999713788265348656110181241606645044657158112207319591779048377742673168195888382978758024882283899796922031847736953372509453789067863080780620083930621831894771014024766776571182383244628015991265277048975942786723540021941577694079313377334980050833723219361579397243139069913050169696239737353360056116332996624631534578553038679882834497070010799655944074348586358678051478490675078594659841310373147140614966708006430338173277477143935792693765756088670024322659935763532747886804599514030993898810399845025494276587331287582417537306108654168217494525522921565079159389752544010323192732168159402214872761482576639477453471188280350643939215665277505539689221153296960545513106424195946972360810919319909620610147749118699257686797027532315789586180064670505952889693101408009991957725138018992896796910271797997675912131320881238493989627885984822956583033226688333066031591174098617816274230706366926816862835080129252641141294040936196249153048153232138451366515209665790565021458335844615611073392212054398988199618231414144357745215037805118746994216406145342667391267310470630375504513561010085884498837048553053214996369295118267874734162128299205349460717470476095383810605923585353243703436159022854545484588507908320674743617479812691259119615635983273791404381261352193421257213779315329889758060736059808743844891956431735987341698776594767250409245703996052422653318600019353279624334887514230748007086634895923256585030068563970536301734778706418182944507634087273614546001544870227802674946043639354795278582504579608169311882841305123490597267465740740625198855606224280431348385906053550927178426292390479005673563710881644013013222636814983319635255083277126625640608197045500567771162519331302040048998806491077488167828612008950491214601217200721294637071901363047279191698596257750692784672465394586651674608309101198412896961931887721885160924986228183752887320810082206256868866178839025916986943057363506641351283081466018797125685140047364014002601700499357970568455346296559186059765269822385514992053069874605345407505229042127419530069894085204692924801834238972479378409284082495766792023118288858482102082619041757246152086879808347131590207475251379731735082562162000917324258901365460215336751261083397834519862724027074407189550393465528013229154072536212307774565500559264006494554909277109464623144677250936659902923795774575632050703886298479349223420659836555191536091925388658162244402761842147758268784472613826689546866601134264116331252381389955188609160009401026357142775057188876764181012994615177874787568972101752343294007318858182292061006002170679838740622268432691405484435535705795340520944321751665233687703536958057744394670389032519711089259095234663048319450186359934970285821411688060672811016815580744363724808526852686552390883103168415932090209123102921617580432668814465996145350525256276941054750702290191591849924825534897223488040488603291631282326766502467229452740439754506872292456814624304316635632726598360835198764302865564273352740442473525543703256596195474713460849862615395458211841192696792814302448891431497078993448798228529320115822642133823934880098814364041708063002835767070662484376807863654495899169433335827289237249028140011255442181282879081407812811701637019657687909086878033051322575241530533823082998071953968212281245133624250371136412210037867864692869888554458048591240417406161667689396697675053014512733605797221478707076779105936155094161446165853668582685527274352382186092389537837357401872466500574875584813872090117808917963770105600201180228483300263842482960457211060589415705370975704792130078245928397009799229830159462653875814469600743131422486158700822176048572572317683848298129995169348218349398873763166313174671937754728928242262385056883133462742947670391337888040244001059983144429051043068882987113004319447276917433239094836132351266202113914494475256738663249522903277581313704301186721121106887784091565553920186568532019695133155570071566655661693442622373374662344517743655308307222542311285232805080915264004813199964222335214436006482862682719755479834100051004588059450118844471162074729116167582454653721714970106745508282305448585646083794848111837017523219401382660871509393903420529140764249617552626946349408902294471203156378884711613053094581142070847986964049870821104787504008351466333401031190786474372863103206618938092532259055033895773708379174826263199884471422333282922789119055655612549555866122408069104465365302462646533135801435123771412810324958071227834555004436383622685342908288447065708389641649970459970424341227298263291907867877553229654676030126942724510650090225276777048612463901996070150802096841661750893870053014549888436606815033695613767163980031369909847246236421835667612204804464861616742649452988677214076083872067949236298718718618156002611967802825623791911429759979120087733416409117428020947575411022808404744335962637480663030724880671660970968553600326560013493022544158800254782590200981051798130647488875651176220138177066755844075609652552663704703448404734625080570787708379181561236147998184454400337579785388464689830739150149087404098790951915209133059448230685251338529038974205261132965150986532452223697164260189995021578991963818890769951333222348266774370543905826620899158866257357295974123206763920724991560507290924210134871830153125400304684148115361574052214187068272517110055217169281019840826545723455227658995592214140568806763437109429209908048919027080561561090732313437583224845193635994351625235493301842888440963826338880812341164799560861453787267397251387505663427321318079692450940608224625877883137047792786321008612135488095998864148462981945769023297660116238474590352290763112954849615996257684672221143866873150239213906308527100433530102956509313850270332477332891252127701679860098515025624291014479372199631375592010950168156971401389419756836898789037699247654457019136684074295312228593411339809804025253935003353948054599951432563464286316109375195794738570133996865882775060704669319951162281156748301752380816477725621227185433911184701104918200053071014539941534438409236921516287854647731319597028285567392900026769204389438045957790132920708422509420019137254912005867395898821368597129415431966921073794694538250867430237969988754763239803206160613627450482969727127882130445608198528854343005336325002146059508044667805368073728502396347648388778982258744655334261249456582616735127441983751567145116902116211382486252350087492215284769557227776358836318356262386573231225672267493560411123564842684290989008778699980917492142886424913547915729827550264990229424546295529408074696046641134496127144991709720851756365141316261871108059916923363198195711485458808173963143073749886482040392862101565228212182869308721554128648288459658871771045406969269899349201675646456296296438003031568154714738100910895703933106458042650875331514652041987931113655269232029858351473843758132002010124963030757263364028166497934688860397297076368352569181160317807121789409669183408681414699391298930136593118456030129561373854413948108364127497827567021508731583127662785400698850741985421462812190473865314971192887325764935619265069617705201537069714215452932231441192641266865260559299305316953724288201577919307284725309044430628491454067341801950705084247253413914797302672805771431843167072428257125902817302365970504432795947800399761828571809777563794780482686486070502752290109406469933978622500433390714944400941554769583218859386812572740181251361576501409794736480304829097290823869712229021015507675745851860709135698375050226153585209669098089073049493813551032925141580260607910830097695834094453396113031429576319348081053836334707284693398430229434152443710643026774115908755283096289696170804280581354196651367632692615406459995481481996751925073854178111536957300809786185288716153756640579097003910844254919416213518756471652829086583867800928301119416043998368206475372161326923408806240031006571617180103922390990743988750355483791186070322269947666439719855303247973177755219719902669433599144892747344247441655766740492945866929472814309361002663878279711129189447463793657542794045041402175945797810985575109680036893417288048282392195602530394041782183915666020293842188956778722651150936406623595747522623185827066496126004785554780147165675528852286544619403307198078553663696537059112355156929470839300204899943103963052883495654157895488898333213081110568291857639731512194418265571894354952840034055562669028629574439440620131185824967577319906902104170919546685492580526401578008708253335419191125223963541730573693069841202367293158272291317924642542053983979189937806878162608346118334219812863554460444282067576414458318388014036228172288828750748445313344948790363939178515337077590350260569657611832211970034912694179810040560143167359386164122062711550852866993901869849214836652246353814482704194642791550140308432264701317436229403642474385061152429043991605409557112211021913146735733950409357825113916332423536200982332737861391486959899120632833410165473680354552799915781442544496922454038285225610244127159361426426556778599842589195092830968763287831754832305244615009624513000577078231639176425668194648453166307770047993769149859808277207710418343628059476571660188293154980225498102607616769551891537549338977080310661331906950474771499932750405978866338625921538078349641915870918842547033403932737149343701392029713934523182751350575462702725136504983792844799785769185431259698838779936568270818796077051960838419136974119084514700073232389253209264508108841680652659635619935050710257278125927440392464168985139677991751641528577627841717309583298083258354738549858392098890377697253735582668001798876010375970010471320203309900651275662050986051349018643649534939030898768688073465298589823797741939185471076280468334235372975864481314714324092942764742525942813496062939233213833733512553727579978300014784210046111156393696853296919181961400218535063695534163937610655940371976812748400554073505797692991308498085742967725021148199260412069350473800606745056917724312594460110632784164404094834408889395680064356756858381899160910211315894912267647111392820900381054559566175688566644110707366934414162859296292725854927586063053442418473669846999247902946666979710408337117520613932231685879492626929783967863112657275812818255416916132937642482198849549005670330325022819264339836219166818680976663149547167019340090594492995819485766536793185839781907142865026595139826874478861704463372032181957435018635860410076452720859709388204748957448269413672209928229166658322539970590570573043903334687070286731291859556961431377470293344847934519484936952624762744453461733805484739643428138362446981489888367656302107027784603953165861589785220707342702543350716881878369467342033886220794966240529014283900276084529886871174313731057353190096756654418885926860752915968288299018524835594470036263886443810196912225231562850721079487838955600566150611455282333477160531245580769758355007542738870050176967460123778104192945350785914839997311708616646509293477143784069306371791371692091144704761389026904817964645286089672786856667621741890149863520575045644986986321432537438986228783741000772735351256446941281188809684091990906680860895249430874793241366726444163361364183017383549872142208628356687939981433731747009148766706690794015467025068222040478189285931136031053214430465777161029149098572186178586672000884128908790773225085335942216931559931693975790277086121822925317738334582468519270048333932754930691869761443906934025172992753918354368534377505304193144953800752013195271200094227960810876213698347358072318295329503979893288286270901695388561622721700168079737154706664910778466163572538680280893496125782046981689778466590464700617668218723788792544957144219981883194668804756956832402262110267548415642449836865159483333529546380520908376671816656696243121117176705424743118787099273968107176780736534639228598331170981612895699876910942904337297858132468327576974786665893143311725872862132365707377601305780804348796844640980531075361217478671219935109144710709940185885530127920487227645846098844555137977934048781785646693717764465980762916523081175874646993220960599937817513710365790326654288555853039774047556117718983169639000697374594966941443070384267272030659670329493884034106332865829010014044544499222721899630557328933440823684635112343435925800943039941830228491951164219056125453073309783638314393918004967482373995672996780312540712998309363263399287599416836495885260272215815174726404437040932672201787689259428406731249895595197505900781194552677603458332085107953544710086706368300161995491708201154136796125989027720558725916468819331969587713333235611103159954571146849726275707771996943332996034130793892381562449182559442256649855122043983529275617323298349598625005884505859654486370209555479515872788681874757169711194403259942921789197070251195238164896033835127862392360360593053183283248803134939982172103187190200354222625924159719263532189062952664586130778353050146589817565322051155857763344824002497382421174268339701305410275396304541734644805855502945517149020568817035848912660188165912806528702553410419870041983788989553809484850224451671816514252884375807257872730463739755545493090339416771315765571528430628794435675538243304407013560180607914635749005183888451275737593599963628393703276923215365635506733737939966228976918144933263539971584789428720487558874567214451744360945590094476761717790973056512472568212532635485830343489734862466874568365681144768781408266807237755163547183952046970622113853553274907657562162273518982121213445184218487598849296214681071267908382723053323977056450488407744944758867765996161409829963157374457312123312615004512353688909721081472244208571922191331234482256636195134966293720097072698317421533865952548070828037577229860103178852514292010468087909909173129212992540958555638044066053613365600864582054285736586277378557404514229108631262942283633121756109395308438599427455201215791073733744176805383791121675959497000730868790896815888539719383015136556220145179254758409117422834477475442503843324814640854171329023458957457559834430302568280277348579870502763577490379367219980807564603496313063277243052231342494875872448351839246738683037365027933272741449652408507249245731608201264568777536555062133642053878690290391387053532528002062958194578963448634932803546629531196048405780172235849259551790039337034116158184091230075567364840680651781751729849057233796796197457095801947719379962447959243613971167019846932182364950786529632175510973857101525123733386733312610634845510837059471563142222228484055724937851816052307963774889953694082914925925270645154660029262604446105736019721225730287917216465737444752275581731372470456859849062155358501304306743375704255151407647946778130077543813363306368853913967105615913912872297121182192324535994020654443089283666188401133009879745799656023348632949152163096623521833925124654417863784610303673212441132202965190615178737148699493432547658994764490682839614566708754222094400207430314631110859984807422389496419789040793296692313713587372409672989429886830948368069276502544679633044181301849009590344069839924311147483949053184269293004139545259707239681630589386433185226423528710954368473923679748058103873692813538661575440955827075390075625930015263950797421287723101727582779857264518369848668141375990783032857438360602572331405299872470273379123907595425874924801742416480319022066145827740383718803921260704957850092117268221832416052258321298513954229010472630165405147716720130574357752359489331985028092374832999246570376146773325832775935206694820090705274067250002607694324684196032993493239866475799842530733047797811881144510533518199410944818311492692796861808640890403302087169671482462776625571083711669662402281868359595521753534536892578988680388753352836390754723400723792092175786347987909301609008793157399724332766915681947670445535804168566770330162463078122648738093903386456923130970722641112540754827591566927037720892893246344990016458990153879901327624312501492569244837897654152448804099422883981998636639065240986193656656372036026633981553420236247363814370855939067952056678852908330141314672106386510018501830223296382111915746269551668233978034962361044369241611338357709511577713742506081931581275607648480702481599338213882411698924989179360895518301183870383106741071648612444073429030027355517009520037339576506355930547587248343897469087797792224799474311358095786364215382114808377553160579417669819917875285956852799297675090331211771359760703384999910612990233215960644497625937714876283705698260754205604367034897370483276150570863637986611602652574057807600626108569254360884252270964245094193199693981038434031895839397031579067385537164097322062963987227187984913222823947611961797427423568802861189077686102949268570666794410749738518793955847089954787783290401249606196423709797032313692658914632894106841197631220249897273944255937668295433841126010825176214632650533073754649319409717382309284644041763332577274634951505015207273387019574150543610804984855605575334799532668898512964266049741406101054072485534495732528803465752322787921304504692403868411767512731037892547685484227462902915660212784043595458521188338903841462134646052518281638975039717783858380343049017174622906152776144770126541261563505653606198204595875842259863097429913770087657446996180457985773496553261465088841474235595085090859929248170587001119701667584641990827040503278182251575818817512980846508902738716872625643145512252609180593633496669837400257311960196102013420573358954916968727024730889531695541918670374423712904800696498501856523402885285150866797419843144027925006271957524273511214283883201351275824692768226167231183573103225058656265232024033938267763318684644525672614982889384591835466559399005363438686326680577644580935866193447105143415815608887206533525053571925443706088429243458567989851954891737335980794408744344640244372359261972160607108608966235685739755390025109825391097223431675143597403996983446113784604712017423595573125234312474005982367267315454613040172367730508014696847915421700347946000062974154557895086215766989180415066911251575278746097321021494791594978807720870099119000962883913397950360865714665521451771655782756357906214856683221109673429146633121632691326299885431562758012064775509406589338859289892564276963933686679081515300976359182426383870288358368900433647249152047904384166656539203539400182450913238467084830663696043342805213616862676015866542323581642580669140582740706034991534848725582978068705950032296123820241852900755772158423762303321198778354795635832894849426615440531030640133607306555928748309621562741698747714515776670537682254706854199524300297767488790269494079011605882633186473374373789127050329834924468379029208964253493314143626608901847385870549124154480645577188875835047624141402603215429572543240024548101208513858812181003034915918643872102442188031002333274956958673744773443238511400518757243887396506618838210476210874067635581810353484391012517260085092852227170205027722019565893996662746209672904533024739641579846356832742129524962739670730786266301684832149040758711716359221388070892011392577601155051900478205165381749730222911670455378305190222676585380848654172870615832725633167521604610715802886335182856437219835081319972060149550980866685756684356580477706581353267941221183785261274734895543054427355321121671541873927010700232048072685590134076059571260083423720098280998129073464457177357403834053736737295753498750051813392396075354982940984358335935428442193064556433127005839386042122847075777422563297519843835220280083063112871147944582774684861225689263626926888703030438479340042695805335692867762238804326259593121656347627816684293526343577432053723820090757906549628108596599306151652746145958953736270011590900547353978917855673943223544866801136253664872310995758741258769056906352967518992541183998319943698351619498399731417352239082243737776085120544391490225287074118718293589084908660430703420922560993288697770708405966124253848098126866564601213752680703462631721919753015632944687146614803646948542234694044832195337079914441845976773948612837505943890633215752904744029614052321850737293965136318070869009042313615205527341169118224248447686662717540593726756467220969017312121900229135801998972869442358721429471462620827596021142384120434386994051577771619012719610688472278029714033813628269403182327181185658133932819093012826424679139822134824478952372255151796813829175308096338307941484535543576385061345604101606438724904399644132478562205952422667113935983924333967912062658925686450099432487109534535465366895289818772392135377980801182391410064369615623190892712304495730576928519815695370873593298976980343913869097906184431954526727739331129117704848921416545611747879827396983671106179125798676581367985799218158513899346681995596792319745821722843898893276467951368716759936318041569028637115909389089428799027412938913328721100470351321826052264998342340252727489725040378978448394485197434331205293257444078532850692250746196261350850249646265554681832622432291196938770577687962321910460832420685365387815232845209088750953416356681692263526003098807094944359268239790096697004003334597996435998393427055038781591375483951375105031558356041248405923806670208297966128203910941768238068816679937170716296527887729210912090289632272672472165082781080963797868533183883453923242629347032335751508405157695885950815427138661141004048294845666832303405765983192311327555102349044174073253475910422995223871590467375913893127696272641150211295591571774277865946467041768688226265379428124146661016145293675861494380747097799508139474801740705828670868270007232277943539754351248977680276262729782424170358615908666909511531637935294998455328840061386510436027109840309437659501856698092213938788878954971654097547683856110356686922935593065897960729651416679810553564333939699475980343923995754721274460133601410049813121304450766124929439818061664748418905445386640439632799313149759127487134384835272371051332463132511483594306914889680296321010233795299838374326105645975445489711725169488874035549480973590317191169338500816377595826558845291154839581254163958663079598124145245679234513517380119925423244395438036822781676570099488610776109303906871253940784211810533509811625900229962680840256064075797790469013250037657380683052231536010979175612845819961465024487500385663667336975162088964091649868431126116196829589835852080221306536214767768520888189638830545188211236101387652669209527146320572288414001059055360117672114931491113599641396444878973464384101229040049979211888928919235412146793188922119978334394277822669843484508401647063639851465967247312101618403570422655678748385962310850234893072647364879017513327859668895329147864667908388702516516494910628830384464375762744869137945001748831622929899289996739366058754293111905897993062273715808168858923846437318690949904741151640636878825592427542555975282206007121158356610996665745686430775803183648234329750199725384353780510830988572380077727835133377133738205687869791453180098863776477035043429262049389577005801312170915109189985935828767629541856432384283353447949535009084231145576167995692052332252319720732645206251966178468159775246547550696787858478317188127924900975697073403117192149721430153664775333708274988334895600657639900830409297405301394734205929114677767895612240115052386653580583534807039541931603455940866861455453849920001612180093215691280291393714848169787829344435344161229989290264516157768404611862695815152980173986010800743221429186454540670208284920583090706380406974003445665817956342164247934113188731642060756982055013382218178443300283550992011557070055484133046410787275007236706904688533691350984655938751130773338349431627033963093282591185817826866989459960637556553947840369065787401240480675889640016032694106442192012404478145521622726943544936796121100636363029756448161285675647348856758423733041009994147038050633042183342378943374486899418591516715218650659711237809211069287496544659891033795884825985052893970748812819146289655582226934613974529506570600931825859264055886379275291710702312174677320194071032023438013268544812854194082509646396315384409014355454324242465121468470654322855067651238076365829125520601061607759814217713118672200989606779252115462972521356841160352307074934176261050354801399441827538345261692217731445198532812738083869359775592690886903274684918710683391699841800541695736131121959171128653700200813194222854160909668246804121759016834014382546362917704127110473999276847619056255774161323272265271431241731758783275506143356854479025733199564566714770574642037643399537036644743736320852231898631827673889989072862917821567111060171330420946311062465198530273914420300482337498001492278335039856214905813730979519322385834537318703137461285931496156739767493836339613476232210163348138864283558739049776061035897662596167533365847920201958076543714006337332881074829101547721253638393475378367100662403521035143045497190273642136075777734271464609960199632022281089000326281134762150141484707676327728699638268368387921288010213828772537489943283985872825773102928606310590104888112884057475432224936598387070583992886449494919368153501852146868324274417547884744274642647641865847853064970953185567308152261862344856189371275528309675486202080515944777947218712098412553730014192852971524105791391429501401409919317945978157066079404069368125669682075144482307097192570910360436376005708775141250803798622440917271163719472349509298423105521771334949552429902861934749449442960393422029369854448502294307251307251682643694507503176411800510364263580594359205798067004296951310754940772112297243316363017702749955250692589816696809658510613120097507936181901986553683169801933976926306271311450219979666253969944321204193413829949768062896877282098150022783442929209400420052241118769430096325940880366955272485192859529675697915278250108652584832942465318874119379346273583325350336873102741333238307378021916637354458774383228843743199064419498037225179636146428090981837356231948865546924409006182480404861259435798404152055651441892125380733162434003770332296946505959981525919383478122517351888622887272103015214957079760143447302111818004911996321311948121443898114365988717370223529328250215374395952306949608531838989196750184518020780918327137003269865608483328731590887402198597969376326295393131134107838763390284152101090071534381069925532822111639647731341158031973101732466537128706286917287888562180479876813324387269828670834336844453957440794392459627934189474817089752352890637404559778076600528083477008703755913389395099390253865306940608819743607913003480078910671589251334110398633578535178036787275506318842482194142094798083005625596463611106498288766960424447141202557623200205651333610450792684660546340541141687848669040189299516921061266138277945798140391860512507249884071431274386052735453772350340974220748842726960380116152096286866016311123184097724049637351841198282570239158345413296580152363342263507810120159336690309072485070335197303148455554785209790205924638481484909518588376143047982426521299252112509755427816844343051486486380520592659707793034237791205183468913863397121126073824903907965735073315370170385570005498382483341493358504842446882330450473626736110049520482396571405707271865356471556746244722538822931027280199732869248581867326975302016868884077195480623549163671958219846247846815943443698032069434266536553367052186172423279107608264320767931897580964799059766877077527056627314334962981875979925773912690654400919641264594135833673097016750159940123909270264583185735544086419262620408423142890473805497047644178931072314227125110698027814385822227986232211197939893773249434281500781549793102526285326233915859172178019405852098533993237124502730744804694865276275040646726229692129139734019160966854501034469943529124521579885233764826176159106946502496846043449943337179230805483050567970060483451053294807261737351493719930845649389997551582615089976420851698746401058802732665362901550077049044918251410758670162726644038413093074514900904093097292278444458754086530427347309450626565219636298820590146667381608073580252173475832598123067792837158807211394505930653420416737014294582732034488162043522596591577043827327608056663747275514302214256514670668435022319037574123994244582471710933254021995648162073651171624218084743331858944479878773933349002891836384017107779583240391602459037693549561508928171666856512654817797241147656389132650812969607690768834848365264120163992122352224432617509235413712213589340342155237642852576217547695007805509913705273567299620831340044722157497133442572809201676701361104018559650333312109105359066574056636321399027782321426057314061474434677769796184907704947159450273821834419089458883121819841041716216688508399432332452239691429297585290124369415707944617827073721702996580993224487910377022075669952545504371623477309469391401133644407294310285750252118752714277639615817013992734882107402335589691760931660219291716244233475362548230942983149595991507685624726032745618550714551488576616731394440859567257044556602500541836404042617899205875385369083595582888988400141152300218041817935339185004841089198316926564329493833041081069780097755707052688825906485032955272754527426660113077222990140468111691727277423096721610155465317173303397675004981372596418764957496109177061474279735535463854627589758946515925598442204835685459903217482816357081192555765543505240377043258206142574974590131611297406271591027872737415968436589298022420830021414380207755513681283529090389934053805957016600770006844088330721690892940996834409185841925302925384892771144660028032902202504322736541168891277737059812923041603593326895590205828979151851624570129464420035234893071802207596165319952069885841981010871288891582411087141937652298521400004045912098074631151325184782396945701178220278986448464856866378313543201370503753512117581108740734356393267230954305328370803536601201534393603755798161739060278912491257564080789937992131406280084145775046283355609686953185306044303945790071845625135272007841426068983984386260357559451485074155253130030349249352042830652810597715577469356115861767073952903902708193988856826344009767354132314448206760504277444095997193223942142851837747629830760197303069815587667745515583908626094522040582033635279582120316481242859535210172139991640822304274563375992496316520768867148519328562410789604811523229627322785965649813334697688534858966701845357002173035787210996826439171413783978170745761477087068172121419011238618772775847347792448581754697406594354281556335850549166245104503941093366767906815820001376164321071693037310644741244193699378688799879265384863337502391853576880267966717653064569534962523998392905149827363987960065366816901807951987821343377298244155034143976288954471187409989263164989262415813989105962841003539398457975933585177069155179213607279165397189450026071454597887761333544321535621721642095117826745172764396478597395520239209908310657060383411635401655319473115604491888273978042245530251567110079962258517462241731459100505652890851367360310574850002025563932384629013823946419333866571209580677697550543296758490966765764399561108018208751452586080710771717417266465767033103675559223290676895463481017356300159018558418317205799568855978679740222562955190404854945677418767881779548238523049910129770255336526784407697339837594650392372242569782020705415023379753714850754477588191884533613371640465555486502006924778156876527647340268583495070572056536825157215384388668251240526753256325041391938704893907293541098800748499184568833600021800700499787491612359344582840216898493223118371855719056019045500403871028517205635720398121292772439166925159509903407637763549297921741063109177320228521275781413913929271642454961933290285562960675681723354335805642713680353624521422036785895638416468928546881660753612590501998568927547767543712181754797987169275133594778166274245479815450639846127629990705805809639370190192999018650681449922940271078544127115243962918836018937300389285988992513502307233748160594322319639041426523690737729972403006004759409726638174748888539178102770650585512524046533287663132990255475822458944223440198440172283687220442301450478390979138907664633518050311159287735000618357920476226650752723940945593366559683403402952816607077543507601901131286092562846553456347372840333662271020850985733548922576028907115788435533860636178936431003580002859508863540624490217884186133438391171210855806542845928222697915920864780394352105076571270354229529336383322425117820034903074330716619750574496262058326263573901428663405920904014777538986058349636257484176536775949291175640837556356164970023158521952006184741153234045297280104236516383689707440118270159510806448603008619119485003837681298584666035430768261522878551331907890297858294812696835201238014201073401528702935996654644203090732886964036356601513467958418114061603136991541992614782663017755877511429274227452295675624515411722580157525040718160789292754424937654845846205722447019193549151421286202923070189837835728327128947374218652764122466642442472350904182675647713349552524099509362901311377986784115907625147011361046714592371864251308863567971270681104544725988910694601764170788966492284907146934348966518956357763048599126033806563674948275357104013045204740366952557678352799239367378498411988238959852359523364182184960085735044244155837535555780576838613497532541795530152515607120509126720719133286046744900829111158448123607324115128774162484322261533498853023000360651089445049381283630903229175314900927474347417888588495356411287349833010572605107732861688116182338251947240823803324037852179370263623083250047584396448990111867589962295691900811936689181726866701373274247524932993290452845511640234129193363834664099688429411557292536119084088761429833268804538127131719136073178096332916263913582161304495911728479990595705027985529040179825512820629513770970748330894180844010139770489680756737937584015801964070652004966480475890061001981142860333746613460182961403350353925739093321360842503066495616481508000638815118297192489632399985942956897989238744030098105227176418592407200973110739786199663176417257127967741049213530980945345517319229455800315542697939613869640334509622127583997031624914653546154159219826121600161996148923170005128295260982617968206011983065529688304326229669036041650049654502996646548038230668370530525944360300857631316895911758178425811524415315641399651373332312711210687138231673267122831084246703357692248210677231143927599059246152202446239864920617996988868063319146673328729429795042982112529441004900345958954544321195074190986247714249200261409067268597035824962609506269138383282234917002354673007609515757265240022876545381414008997421754904245002547549304412505199527018007735271707782379248107939242420744220855016103021196176759063021499878337595232446411456585112911799090050013609285183274594790717652616190161232950317279798339344084630559811981666731694500218803931199169082481396797581398137057491103680241602483589954320500686169971460670218410693511161564785211134887104246728230232304117628282021231540577130885848553028039796665375429043367473385045610768421198851406509754102924691534821669759762225265338251172355711243580704344916352153698339647673882421210872564485216829223195271710003716894407546784583541758354080689538507279660117384226325612594713145149874071758991631118895220866758166788774816146802976679977369566327482482708040078192090208603165281371190793074538431621843864449223067142009649300534429126319739746422247243387567266423532483703230455419029794538720191872619978986599191876103005593952811996176110128388980199829147726261421464343087425162277432459335843117283002075160500195847147352481146169131267838162718726696293525386485016867839154072530075677464395879747790585258699749644135846842662712730342597155329388502746796323912817477838130328469624139636702967331344923351831291180153493086633550670619637390245779155419546271253995537585207565230406586300226565950766342373016011801916103255539541124547958280916570448476197162180331194259483279282091031845154091613420785966082388941966835881136621065604275669826568054723678556562172054987583421020389684208278995111502815605142030579763771163868010978750935310124234276799124680920797429622641200527572434314486684678675109260249262480113536071979358819306358993985831274704174650680636990544730351586280002131682785393203871758264155029334148990291235901430873903767708759468789410083598485477643973228702561521656834811121126796725137490716699345208997143185535216192180812230445622105056969732652736895861389421694140962900296418766657155856517938515887855102282806783071105671045645425959365858227144924483174061492146422643974459107576616596373904318496575894458797508868327579214694751441306032151390702590588654316411371380685371845029722761619947401410437088750848771281939910032296184023290597218873854321350474897795296905650557396015959653526936145097783824130373503652280153475344639542878484412151830683917930628598445591235410902205065970341782839366373778792465893198268836501870920317845677188159254073024619716122265444065424369316943566878084853372289147737403030039531095279680194991718248099096936339170684121223575406009899070191338005740048598053378449408901438834752301008047439946653206704671935277946617596137352509894404853063347522325709186693502506646754495542076366167663664656480904145686084055288709828494155659335752049156745492456884230046982951887952259221995955832595163916626678845551047611855894024103393303825497631073096889203741613999775041219652491526880333384672757294454806897608343845828711764812540747185602466579571636530883195917697486159828690103826196762023173532120852586672125806121463374115945744907615458618544353971496188018838885745927418463164862813226859407894055572950276329193431065970365208096979064156812657943866243040119781037268253791188908170211909476925770143465343866505946321370544628548674325254269796670987152066665356984061296115901294675655130279468689145259678760064270214720256539735190558533857982717126661581214794734710578685546183329131714453840331760095052433593508085554737419285676176482376076851662217880850821559307906990012385837997027562781227690516968103235541223138570530144765150701163200136687711119853569094227516488511465138773644422470836831020419423972749353234980274118990858728639954799253572582535267616528139088541726783238884407955545881018817229540693323743277383472008572216811134359488425002701222636909255312709673006913392131839140722092524514349166682166041521897310253743085354676678166215856963251524139665029571032590200528224791050508127716718407496182031107273266046064762425487042840022371663361997304964507493064293968496868680132130980593882707871749428096139230109272648729995333560259722457832198597713667645281401215533736516937289269270288832426216002979573347126367465926721841790018027817022675025290767414836472417115153842565567399658387664182420077187459493818822529430216790705211838311842896607545950468950147348288398477878547981741169556439955264122796179510625305451694183644431723607438194353843428443358016001277841431214021326201791937838336989335378806200882849079037435286381463400735249723035270933790071382117015405697940179218254633819657242642041781489031950204446525529033490805476893856456878751243459790755058383860652688462065834826765243514474379684513928151563855403316829673396352618981065355525984432634975235365309345194844849921953748101823298602972661092775837787344629323654323840500467908895388863940220269470775645420373689737623498061316239164337981971467108510712066308648713118961208624075195218178755669233408900103926204259692491682702125537479719057550710632403163263061029975334706897164994819123882490438693810938101697035840928156553849956988960264634279018925040271644222383777179559620000403490533581365080859643161082405267109132208897881708359611105031139280334052881988446135406736800403540375110557102977287185034802884756739503483459514485579227533622770624330102582199487685357797395214166858017010849987660786158632255598743350898080721458490811963574131715234071860364693887543861170421641821849909244620175459062146006151343049862801421198092028745818221341182316849068898577133128008852433542940198106918169892798708102204475419842573222112807227812443840505198278748685383329587319994556257291789893591827200180801571558522436014988912476997044280257091525667422866322947501678310208596616623347843543778879357568366551659752543633139017570859833909620544615589941866031467456669971485611743996263355633579762025928659459930244444744977856419831564193274462905073708919495683587062002781401769533906386178136767498324303622341665074085066081663829364443041995271013525625272540337742978229967063735596415009513775034087965076407400102428459109476617245160194319652573114964778953647820665174292504322675901091447358767432114443769563599254153393873035304234838812137548935314737006589285386714109040331018956275945934776178884196590367983914040166748413533607975153763879126449790147875733080835773932837682218464378768493542665084449891623494094798613889987635030611195903088576873893853368654242980559172189872683520440726091497579845322288089420934994871971506178351747660586336803382512857769162037386304568295432315946393201345918569195860981509589013481642078166862337135662234626890745833268282487218122089236962825179030009849567366947441597753032980220192236269602793019318403805916107962672911449916555260963606998255198650843637110340978324076302483772061080813400545981764985770004264375598895021752678803747643310546326143256705733337583300460984252128302821740337495343487859018537810996048546181905350247129671080171913866719806801034745650929011692579297174269841250425571746223561432563032893412528908756550314340580802309406515663340849467984003621484739270090358167617027321684839051537379921268419492304969093429813382583709739836109280719683271155778939314106614053282683028772186131482673702630946155977789263596252557657033226053587982791803978433748061771143342325772501662792305399946731399826225599009760598607528376342173981560878450482387151971964458265081920011010555149064255606742391933981662903575048842842104247383870686792901510375918742383859824402938170839165839797412458018882676824532915530288343328370911814102788198947576355169600454514663755784184524359094041835146222122266189092873184408312925144342683734252423064713896287295611105376134921393320879054697344016516822925549265149922374207333594711481870518878490165776507716912177003396784406943471440599033104041953580938195240449956749872127964492204331943588004762385637745400433600395385646024858308539580354866541510351622940445157419758695958167786109191776867400602582568304500174151000715795288150117166127855718640831667884848466119858927360558740018278364375089804453754500321301004712319711232417678106477188288278043528655589071874096399296094025711556689361659893243834069250909934983389628257968935053803902650462916250972396473698736947571640610769632628174978917293348029293716149920428281090913206319769427962680502304701979340734226305232852826328820536678111044496623463721984923605087167238593279067507664778515386909921532899994886385695643030714370000776388121212772848623886882171501526107591504953893959877502273053275329677693730078127394649498202286087961890784099435067382022228527621583840647446818177480529534782858432237182009333542692234392118739201503529737042837931422733043693070451160128329192248230653532466997758226678763190459463757001907799819678630910054170225245630392241286912359794897917706184094606694939567558499627354226513126197677730830947665012062402617799744834401437894860613812768650360504064128878143130398931228110152309287065014362329838144101403933059280881527257864345562075842227289776235865645886291918144158451915275608984412347122950552386626163514621538940342573194758964941397539612191213601846936069825929325031353766605380967016536193889264577645428091429115736989185726159352471238634110974873101924331086828576611816130052161176008724881210461698340656632738723087971022461799882161994297544559034834139123071713580643564764392302314203456670627889288100847713664956744005038852146178693145722273001042696093674209528959337210037132002005150617711397128174994751829575656426043587620993513192663673697955063624181880346937756814124917210862227286687899466626346530614008999466530453875735679244820917707219838179777945243130241589898642056716132547995919641781157422305689187700053474193461976057244336560521705202353120232832773092122590885025460448061765946227628380417762785429455719077888879343172486088852071156691710053247903283516792873836826288670845590782298207351749509674174482537232557533781365757344987102777333018439505235666182166482425349442334382013841351018610389740330977584444448507171962283857020784847358333764946317248026415433408430086065913770871265108339950830399486087291877908575896375739385774415421658787142695890794696186804394522903198195269324963081759473881308224304033402142915176623979439487023438317990769072772718723086096903748575558671801695196426448642583724789938761360137793150613525044269647175125930933644786686291481134257837013819348335967646344462466159361058751085535956771702341958598648316440634324988065646389640370824375858122359418709416941707192816803104394438631365040022117559998564355950399479369150079788625879912534634274310395839597963174004358650618844308179894172611509909567502492343237173450962025046248745153518997963503064165863214400952687631943734833484424285232731402871420113018883384806341198670628608068180583302923384879648880273493173017205606519646753981662272604799734158914284942268640616101706891327494405407505361622083116643285039598393161571977420024362115727145899692170342412524030074996648647207690234334962631139947252281051950895552733259143013359832551518691539003956493905541762965188907768286079341090515973767986543036170042511407740562609092561333050763999517451137714237800714488950368492449487705454332101325680906577222375275180402070908792564532475719802053293253596765236110691863558954723321705975903547636282584307913772452692709618516027932092113043821270672760563334340872622385650534286275705707193205372548161958616048370170038265444359991290552198118752940896643891623590244948679004674893763805846782016686271431410931923235244578160038372982053441229739525399456735511949966067053148159023084351396182245098274636435355246623746163437506745847956662332307464779625927237352527377805057910560064940239910286843819504583822019304121972567595439018859317848490899958841116977577410202719971158992492703190929811888902922805027354304581275272600912290414458675213438626651265721480038310218152183272116479124507568945405458651126370296758313596711384479378724190246483600304920888725195973390082189857843847848506243789188790998169309899743302145913496039362504348907637334102483261188319920400350692269914910121862076395599464084233758767652000267171977149603625701566172815322468875111333621560891432399843766471550520830169784291173999745704805640854433591963264967273327428866962121509907551440137029441469510422587999940483805991412650687599346417113808197270111739201379403057576617557211833050399927635714406471955166256461676390346644570252634321587633731218005558061246129253189158191641647467974653927900902931210417019841686305823059962147847362178948570384173666607201919226794831273560635175976680445382346812723149999348741654215208380788278306472467621938935728752509401418948825220210553797754558364790832060796394101293575848112943008881983690868570269465667367380762656186806165093332221889030025212716970892370180152831408024068133883809988388803713657306554708727103718938889568546556293542776398195514463675061111506056167373524942275273606299546971184506606989484734579021238105280809292244587418947287926440851787506195429844364441897339605656483952680667619670025988753697011546824467289507366012059601904261016013917070852013596748154044393326131862238741046870862806500778639881961068893743002276894125691259115717217437362198759551934718057066067055907371272240440829886560063323582166268929853058587952832250192188757029136093465615615647718579197807656534423494104303211448572761682679428262391004055007647453029299463491038904288556194891933149607646841818405814301960461209134224037050643144251693272448586165088415417273787014519938304426747033431380503046186806953876500236476306873521183767766106540296382310637336350519920472018462200019602438037206916712659663643470467412623095160972139392991684022681410780888889074551738879823859021785261934292548275626896403594953821043393539797775568960210446471300416074569847822701037604556137257387240521357323080668865482261722292308713968300923825963949139890267854296673260414336038825045939711698811118401569911221473596477353260645063430329235795279034588744296729281280414478780032049808407493959110047092714617571185898205374670252991078247797124753005508478471108617407138467875874679293725268804398047945594551314079142998613097825847729245411639585504955933356284102614302311343149070896296939902053393737637126554735715690062873854458793686439756382990739115536871181227405483018124429758248030751441450980002583398418140767007011582609062557355286399333022261192867396892404517838846476147156263631459572647994589560665937572381108166144824660362494210941265769212265843294731663756129085562086881471037545232887156999339691794608883525931058515632271821907417733300181728589038099448472834161363798807950916818047981560776843480744252465832181565213063617395955071912990309364402229650384764364621497303613507950810070354456338013744659236369564832047584490304370544563418929092945293923585480808655670671771910388622245613083930642090736654820203414441777706404169549326458111941618937875890150659535900491232647025914243966423694437896382994516214507780381384221880437678638166808001201961027992283827949862729368567160051683334825707467589374968801493834960937708204167169280587234224480555328256295342850463328616463291672297786811034744020594555998860028631498071286227474500991567924175790923588963706790283901233174317427780243092774624325295291203182363605731856894963211123477496089798537934127440268645050618814738887368274581392152221192128315407379379364469923475000099155265248102092832762524332526186431141272584957334696145996687744266767661536469812184750435461884024323243382460277816114817544511601160397363775170046512856071786618390736289879852352062342072867142060422776761866026587383532698134739339885473578320461372722866755722741076916405343382836327702503883370186563396031820216631769490382380475072442816595411129730729407321130890976898360148142973365916382681633937001872578490527468274497403461099245078755365982861495357651932643640494770082932820721844609871324036481790117871459914048216097052336861344892315671568613150407114986116122982185862424708538536453435522755278182323881818773362798002014570959599958129510411667893416857689978870289693195598883782933109957906235365270832714455992589147193138862981773656095620419334961719190675346601408029969821310845344666378377861711675062531670360520735084524306489936927263688309315366185710570376584739560535834577834753593242824460795503417996613559572809863927664697132418204620837145836045288175540740561844584642630051697743433811478255762290191060092884232033179926412912385802445845794159175062930987429612101111637862855647051330871637692156471158420019703084885783522659029791688307218001733157978495347227812131846814117805642564293421735366578291679771773312203418514234077107179475472620014026939043599215214769486283461508059589007987780280561761877093096513769432184654023883271577459855984776215886922384398821533985177648756026663624119907085326142995521077304874102761979887347660947857869663683479990324655480931956664573984613459086081049754086476472573375046798289665756517982731402418827195668981519227961467609319235023497092740862131556445442781770156267357384997736819470635591387794439290839316464657825337802209642673927238912138260467981431404915104513376637069145294114175180493668857052098352472509675553778828698215641093476043625813490211124534367895348336020491569516196957599899305085669391307464106168531451659111177482222267535627970682729497045624104773996612486389422241096723581937417436541640103175077248521773822799834819554497679054675765640679604613230267112640910650290040283776173627697083863892325215882375171835362932608109294216166791849044533482462822632328451689422742839662721137095034658530622417351352225508752424742563251717083954502450341185726841994121033976193821456245321108814172466831378393944061746016431095661425244121280364361585618593297499623369657845420265181164564597191049039917149982023963968186603975177516459631996542329849659604569584089620440856664176528551567450000777041233552121246324185444433956928828732290877281272166074483936815728437166872090535822417218832544603730749570055268014769842692496575298965824502542530548196375676953029235906336191138717660668334683329833798547080859243956267154973648160621373574979754913902321823107155889420471413742918748920495740050107762683735005140483561357970975139070249125091103736420220529165401958339626360877235460713634225530317558023428814771579851885911122166149473902681364355794832340501712309155371736883595980005106082594936883010128293688173406074542887430327849043310245498231757596342895290065005720828819038705711892721936136873618469287662689161469001386926685867172591439837166812470848048968548236563285424811667754679456082955377014548974484604990466810599164352181457886506791664899714697663865663362024810113597818823718484908346582315710251302069013206892155551765391584158320648706227553249832391508767024738898125006112026826034857445825838300593572815963547316706203471832088567208851331348328190828073561756790382214005537374917002320916605918263278472562871298729117024816906374595867472494951046220418539719560717861149510476404505618793403608523771848559023350799301748590419817256168611002442382602853505092891293071792000925132566558526264943188276812056089245301392241416780413945668663954340766471964813869928963258612578381125739582678711303899220992471407134801800428602415905398662870743932163728034640450686871672912546844503260619402807176924745981857017616977038951896615206078207720503680767556973421936657378845478807093320036186305825917789652943320413449993091125607894810037702989777494357092756093060745180659844088510233033946552491017227686080087712801965480790409462332015388063070587736840926161971841004533583975101192904245550814783378863607832819735501945176056905342855872673279811896491652188904545529335493183650163968002940889133621924166588131713389916526460862911316474880355220016268343085353627607674468051472759136709676698355842684673757014204167581132842498696557946295937206101453031038544873925993364892138516548020942108393080104157730601803611725425379652094250050375311004639125090388444799461945313284802460738653718582943896100230717088117036955534112804302885240225337859767125684261125974265526220193616456711040065167394132636221788460578976170978799753036199275311814602138570495866067292662916595552275632769397631045916207215791893829875783175813513016172384728024392742666061939021409195952133651659390521818548039783907460958498468534184194564561602143814819613838872637290599328690426909268020605035073370350713159493101657562765136967969543548356377451842228407718413999585967093343248092443151646151119458819204490671449384129880080239894361034347305501322072329399741162090355216800045517677910406676855467627834064091439272873537472072210849665138662483048720971349741469629331391207096588292379407530669784966325501671895556043677623322885792209336516611115440874083666738604742409577863955170469247721214972611125849349067856557371787498651232429616132854939240499059800163203275280418007687813130277697634986642981708881153342919248776780209750326880856022358275566716792713813746399892461627988150871804786853506577916323939429995058286927529872195865522072973526590614646575705362773271494381602768998827629295953225029799171574924414729296399289182979741327026666531967191526928558092492468547786667922466727560372224152533577739164078624941133327968210522607522887536900032736214362725945730554988602707254552575245325959894544330438608620364924533703400350580844479376016090397103899399140293001260902572095190058190225005170872814283611336966777978423946627456529015016625088191052492065813833781121836258065923947251230206919245684866316438936477318978502828844242411180456346274257211853421009465782559780310581433664921815353667629340566805226667596361108181430782626464518317963605075364433997176419226435410718513754969415769115852727915917573679372332601775261381851840501749495225587779146715715536970095720799061419341741864796893084928931625522745427350690120452982163607628028817067089361585787097775501425157359252029679137444890690158381608022355159001458011293952496346892984698126354668842347385151815617394423516245985362716749234467637808822425665220173393671301968565737265647827844260047563767955242058698268074008732406342663073944439828927223632193614538439964937363646702906302765973336332943174974892831017362926553581371815068070558887190962476789962545161574900879765281921469825465656104012707943053471069436397272358561787426602075537611348894780435037049845049815651219851213602517588384232838183105288219161305184214630475824941006666534819978597777903204159153191855180620241865094100408959681941305121867292211012862092382013176463075420578977691962038674333663088085574410835304414291493105779933420882245633728703144896485342021090888148327781853324760513113921922198736990740459854978501426981318607699995543978125115012935230011121810196314853788606641683078997479364701103862188550979794180653635164290950900249046291745152619355186094045118427843508167012248177232535718384573467330628257455810381247442522789591389046248229739421016490231291283811976439080881213719648471223844392886788058103477665719565164292008775002554542090795457528314769526091107525929064203226483625449293114554538006080602493452440474873759158592735457198504420876433789093850738548303160851177985461575600016782217412224696698192345335519515665301767220949393355034259150939267961589667554062846178392398543023566309798456810584722761804726165152679935290422334675657005922147326688926043787400081758847241301142095224993730249297594548110815229588541540269112847306101108263933491425952512445780279249296826851409839434058186391324539247008019032853607447267307298705507649901034760740872660029536612947754774656516267549045028036809681872951301489344215002005295095644234395504458563852600142412576765406007216640372544267897892688855259227829885670218320693825685019868422858579579223554481997250896307075200172642463773809116116013027373348309667551321584397479665077389403035938563349670721695079096115041020324166385135954104354135629939428339325442218679424918827833571740834305675436612039335545262743746674131956472249438724856802312180797925147618419919285957186493526906949682664235124682559619316615940646586526068757275541720334193092814449710380627772682731797260798121725991530897555760851761901268210515545906111815669881993615319468415671295010378522692660431531047731360471162426015337723921257605707767661552544271554756839380027820070275848419203025424320257270753668525439722359330582027237177531368515599719540760605344326631390155435662976691471622315234621774367197138012616636192003171762763931717283457628999941961600296331164699315628934423329209589956852481483670559159726108410109051796708313829990393421892367825797004109220986082609031920773752933356824986907125451178925318326119156553490240879533777616829386915424273628349912180255923037140279139964403116877114238131687937682447865286765870161493067186802901572579614236038838085124772061322685852713176075864055665864476852690522298096332654668556612352016477462829704980960458722111706518370513736581900930165018415026845061295313757290472159578060752073183539060399096750593133041346598093799180822491039689349787456752738836015955438267083118381932474964583387367913967830027410908950181008216367650939958786508214075963328609486838010651889718510791394510691141056316084090888711347120576176117744591296387389542411900740622138003498538484516617842180279885949429483454493649714281746885095820788198287453933316839454989301913385496416964194121634826244661307568665964672087153913247177576152068650342223375309838047890038887806825982809391423373113395553245133095862963736991841133737217309423054732523530775111073254791969163550563009539752101377860727644011612021094815560928402144248861561243683863334230358640303323787966701837385135613198951246359235389981176120736802091382113104307855020733410357513205243983055758625465465177120939569104069838196815549387088162248497834562762365546645380244367473710928414244680627777091734486918099145056259646228576705968690985755887049376196083662735020598899345358354891893648970272007444220102596134584385105963842283200598158899962715313986856854969985094159977957878444002324174577923468500305241015139119592106589495602675984618321726528090162867821641785034826441095127924378435659141360362405341182624250062184447890629563467273405255293807471711349872016918091264045508221536658867148682110776844343989725600856350449085390628894011203286028044154860622853003949253599116939910786230371219221839976209372660186018559702618259237530535890657367748223126940586272462944691485965604265708824958337081469109092155226431514642014288259637727255457222879789804233857024918680792664875967196277332739424960666252745160289207981589420606683316307244990109186069095358900246924677258503449025870151279833618042749668260903176636239870627548501691765278284135535495802656377663222630503597671119693683492353307850008849649087980024159919134880543512231456630557996186667182841357793276218080795559935671350085530468938650775431887648249544998918293631610319770821427019317603396233110672607348756746227177658781835796299883925304804846506187473413470400919963177432857980104601280294401947235874353094823100487990359337059588340438357284186218346050373931180582493058163428975598503581604816675140083819228168775544887157333857479897544069524444788694073095865382375577305588891535931497404888106772499711798742031563711891217803711173844775583611562977301129375086918655333359045797834041920512538638203906381267816951702806556421672087018553892604201131186698508315980990445232073523831073016022096454664693478719896731302312757280702927059023197619431342877043443114555441538702494617093498163024676389916009993522954724553651703536011771529054061628546987097292568433194673025188294037608383554444529544783650980022854986951126555819622657380357890798877773369502343163435581636929207033310845167025920677795226891045717230643279259336605660349038484180840137537696771173609183371281307217440495478958850126086958163154917270015126291973484971529841623425797649459482652731269118910066768949791875443998548675128177864914260856787435909640439529625525919303307720019607927100023298427145010871676682846699615933120151954205880905155381308574297212378624734252180768792730785705536389585878109066392917675812288227819348775232174019350852662987521376642703899485766069471611206840222916309518993670870051347697715262162818103207127086523069449232250564233501079280119774043113934845631324462307741175085688505152904723769744916428621451221105706049047638497686308783428567629255488427107962013642135967800134597333445741086964846007201829973060277173820571410094221423377736389229250489038341315407214882159579505552533642071174802817739763496738758073177791506028580830425264209638100936009569463743308255209145332799710740177492663988882463231620541945763114827054927593852573361396432916556319833491788015465018982769007530403338406528374440625583196283692495537458927755696530912963250783286358718042778076679759603352278443967874450344692930349487887175825093391294545354672085328478561810843583543675602625935483479721289565108523129251065636387904559618847935619533306343932901798943373926503511706024961770057758779455612907603894368595173093198863937199051813821535351731118945135411096563580057319766332622090234882465603453270170525506869638431584904363502767959712575897420069631288579345812624277258245176129918163503361489388146190863083096985975177871166842793200500579988386508001055121315635731047889489011062048673884018565936536165019125870913018965214087549465553275497995591197978384303788020665193774112525685204360725530864617011807953705132944642134966781473888861077032428154780912304672608099984003056167818610473363342831273841336037133105572020002601124572056054391092779534715536959925275023328902710408443412580342922740882327405228055609690624487700744895480089896536608178571901870888522315616972274442810918234170240435691272240247306950194748903147934386010639503362892441960896027545016875539715712314011845454774103727766197851951840638756482065389569853369080275362481689573201731876251063423773276981853877401112984944885280380290669810544566031549791865516734594724841435995189427717495307088862827785636609209265754015395379082163515205627254747912620976538215815407494078284970542436915579423396572872982581893719581983415079465200831686911859705920336657472798146629298218491615740891573622898858612302914921842733464063459999171354595897499152926249464017820980145466257915870787009588126684293997290837371430982636163966096907272007577895003269894084836190327347073984500206885196999564150471523847337085695467449446887972218880515480121223684246312926958850709435758382115553772607324890221592574434854115916590129748150024164472467299773949003705242403374250747256468557026682603509108795006958023160784715135111489139729265180400858331207619048618882767527585813129836774991574058700700565100827042907785991660992100562001992223746305434398043833254414693242262005608791541947374255783423392965551773112555752737502564193838341564857973753337130050595297741826369613722587132082710290607908335960086624446881418016375420991798663410461447759783596858067396121563639672443298144920210929145763985167873762206076189070089160576507402440586456331276433008317469430660649620107106423233745449401805442755076966406542437375819244751263036937084791420731555941417324081118768355106874140098927156424366578651393965877343080358004146617290505212774920601618014227072846649082713342875875909854104781412356755406319551851085144941001385184475804614538016092380251538087893651393013062111025212482660403846947899786386450611021170987876092644027862610180713125288973708917924022341500994336162539903780558724547052056319440471025688272390473336753056416069716308678555006461604632942644822881451682823989827639453001031355921375988194178607608779439177411850578726596897746281501115677535637565209555936185618625029087491872037516995116220255999765158698426205431787170041095761164835324544496757672289771403452860335329442884323639732215130352248567699001639593007962672743853843886508236415289337074205659861608787557849288926383518624930328003483118845159919727216568667795210056275064157481571338199016283312117843318433358390839198369469160448973794078778629718982255681793023422983182595765897631356877798475746029693399427499754729725951637371620208506762007972269463425562260511898332756506716301057256285857805514154433193014854999613961231276995930534740475327537547780037465111877191807856293635822840723163635037629739115681181622875463382736937523030687636793735859595922839189546786350611199483645868835027273637503458743953019151627925025769293341510114717354992887990796747314114739094702225640422990108741213759305199277834992252058493657920737331952574273797233914515925145332784968854796807299065778746778972527325878354179174950440746172864094975809983549965096508866080926847560357195726412682938648650047236900877670423822700342802082868596049933797737812085729711502019180659727008572205688065462845146653287765868280600375541439085062724667082529573317615462756698136755190450565242370275723718892227978841168091807263590835994642914696836160555449309320405282615930921854865487845242520863807008041277612871204248526240552275193364856014794012155342160164321770197587509417701016609818978153264992695725519643669393153167688720805688604074457929979526394397814598627258015059955468211905288770790930974836414347121134854300914736927682574218364689921654648183625085693541203562868552343623031147545657230457826847028544616333132096827671063152191440779553580083352472467169824844387035444819228607143626482318348370209821085144621311082695701110940985651167626835320333895696784063971742280530235060427685267797782394280500852729064817037008331341557236502709375711873447696712568041861515821543136587245744529314011278670144925129832247483792025928085746286495755897956511713670116533631085628272291270706009105410302486137102703953276055727971510114834056570006100436822596898391961229853693707236238221335769026784105780742771080896236903051185326442743076126898479202678586726397031929604518214443259958062548705346816709772760270883473208730012287350154658587405548240348170728972968102089457235946823413573318595846634089525226314810991242993929466106038871286199607817729474134338313751944959211012417182081097078671091071127657969026587500341868932901005390705022705051835974477709498744246884301069947529380493592939322894376171382541213087954152719231455554112546249861493833695380770764251597018965472683294314010868908653713089480369260685967099352993728656917690726107619047318630905970692464815476795967835211855609250496522033135190825169599845793823849480025309883561269131087329598471280248274968412454057983621935584921111313962146946084340797139742521749697871722017226215007858940703353314937503525502884961692939350332766764170867273696635692764742254753654978418288709960551846569591562142282771904584494723591649720096840639393909208178862428283324668284416765580676619011403407418686098212285959105941102606710722467060716427783112856526245434716679564601252715793982968060038698689286573931181451824472921876138767770484284549025679986891360646765491999570105021504606613202899869381878556042696036629868956234719871957729907645588324540135964475875141899883500788791661618462153885706554710540724466664039947676626445641625760297528942474969667633552950147029874881903359141062675358272140332596388757837258025400023268276972425672007064693745898903325379376266555784855947593130400375570582149299599458950063897513502009174555324086781861903356320758220602887698759225104423421752158334477075786326111045914749284575006969016915290315105705809980097642249827948062637314312401043631969515424840288528888516529786509265209817005732346132710891074391980276366842211028839708277785954947433448865656918204951883055225095340441168969053425991604236514196058214815714351530482092921579662799615343746551769295200273923791868772717382591946541227423743804336276060526354715686370594786500666302925975823539194663268154300235440480685464218405905177082323801090467268263285029687413684717268564886960397072418922677248585353524390327389425318595081172335379412939376015775214888331602090054159246912404449219052158578244449272085071294301832412765256231276630477190301651674026862053650487907608711485950798738380747590933465376134180392462840778229447553185528761853184671041050959369382124314099487697807491234384405130059220032414575134250401289594288250835712123482283955059124036214544415012372286783068625932930440458024077728127665745371662011869253694296997536936702958201782198129876293322155263994830383151655491720795569349321511060866359735364826732622935530731649352711093720014412921103843831730923826034695952744938613272085265100374613795042880851413962658422697238984858274726107637052059290669426170156904802933171802926864794238206837320506042141485297009436656036433189039107513976742872025161497366466078988183515236814000705617082018811203031217583303933243727505117497804696192331417694369325428789697121857687930071604041506186636501277296059275436385640964042284055489559594847561557929167628181846987365202309478349681404871081218273138065244864080623026971021961212590178777846796435890370466675492989865738616631076972903876259908368458027637197731198517562091115246124823580170796498087284882504099311863536895785260746324604881642310811023960353634502199741755140269947807085579468379473442760643625565613901106996134270472772909084589017972661286098997547781834741911713768231536042969991786916658267825859965121672588995297170130569570129322754906738772288839437157706052334549861900853225621984956627545160692391424106128138352959877217477864947965078556413279892269034538447788253244134775767045653285092960703621485246942183126909726479007783121280388382975672726282262437749293051039446841219944935574640928712074992604864287487487580169879486870208441331757822329270477395643362814575087218598254126880161909401908389831273103815674164569554179379603092801093590089627944399148151990822363401217793546908129072129296160144185074982539239022798476344533946138742029568280823357465436153307968952975449574488876128551112723169601392557768096955999621323281703496106689409180173248197635194925853875464100284191941507773340211991375379057809632185437685274057121069801319213992081502191908137993495675420562315888081508125408484960256443026342151302627588881654193181399829760696592958529761355359818736437830112891584134044453148484493494847482329221806390234346906393926620120321050629869283625279008679429134974967942343714387111711762057272668389630868417217659461353796740525183749301780969997574651022880364524682811795700601300956336222244362755480524478172657380145401407717025176983877886098095584289672038480725630979985710148686989375930567113506139777246394340854747980875072655900395001691720435736964637304243942626326619605785851503913702040960991899829001811373139688229765326104519721786406593969363349378885451237440632967744158982898818276410688766323784431291254412677699294800099020414468849432630723186463275278419619822485874439899674793427000870887741966580892599255551417986873211354243691968065318165238241941670826559816642576645430866266026421474550394685904173888474472020860718858467502830383807378564523744819479229688829866545904413859538715381484953951962715894051376099924030328756515257612561638242814729584519914807862585088302983653145680072497088475039226356998805292451341616187914013407761532937223934468093897601234626110514276780058272109714178473067372287523557347564245519534807975049467189666880923475981300392988248386227897122204388643994380712503329210032973519616102869437695320995867440989340120586716942315179680857129962234200961721416794525380197378287652135566476511329657912843863624110011270854496736358424980601684227796806953962514455413826467426481704003852627706278091630237817299758574534585476445968604259204180314549716479398503114718303988427002215433253993592073347282947948539011020018532005627130201517686794913101779599030421252517391084341947161242466851666602344032082206873214581831164870156081344088325914881209635983772805242660959050613052239835100537407269643524423523820529456125474065881702744546198357112007644297899967529405808942809518974120801611110711837730677202834302950509969433658346156112500540278757096476484638592752719263824755853311721239140213279085215963671227876973331087170657204820087815708016987693671581311081298702821714343499209259699531668384099192714645091911914875884705588433956636789932580349083739232502097636685608439358410474299547793074513965253437647498553566793976327285361738604584275570375439857291462957536348979067813219431568127737180303768261973466558214808464084952276477503548092595137714213882778012185549522323722688197288118749810455066171398662108307228889788773421557701117031550090142636062487551091830592041055541430536340361443092233223731011780345397116038569111405465275320431056302504670735554077112227483433805527416512721951898046903690328639901227908209402112848228513429452451738690722579675057043014105126487319471807289075662929250063534836459059923544459568996518734649691561835197062301639036433220298377468588132235166565418839307238202819278931135583112509236213479700212857680546566127950372938741272765586956254177730884841101166585648928267394211872012242370650863137313514827625415314097032457383239823106738379714977868220639136744279985873431272606337078051930085797201619794533147461132294322294705320512747739667963312339939503781128847858006430231756015496931220820386507106684858220165387108305117040436682968056408605060005976077222643394833267996427707068905250157246902455166303821526799691990644016434193383725038301300767431135486498452155112019368315816130344455163320861772020694823295155987279242447121860062657399373394701217285811227975177646379190963397826327382615972674519767871250553594746861630740230592602984360531212201590816729138721613587248775446260568959642205092502120022712486880734530756969471147305895205141402059271316258548430275081803705287607950653027933812783308146592918395617966145064651931982573132099044389545608833072411756448894790489355619780258300665625816092070145957081957300818405572698649769356901213093480523725017014806526674609016153357174167826604740121917490741340118664981107399230602534726841263598960536792617389919188762517641739697955013407946729995835805318410277547346690473457109676932191158195905670293331153290301876692525054045177556174707430640315320059249158048285608305746268116922351190645380945944084579493175876912175523321752403607890255349235245518183062930384209922404527794210924068724051490041276992846844973747438312950717631536001889113116224832904420222143548661220202004521855286738704780816023335102457606176581060668094458789809521693914055119320594287651407062242269643305194202208865824304499716172415289737295891887857709297826533425570147288125480839290379889084676067416000353177241548468734327552728383893057087692132729309359395600567445689488087072801900445161335623708304469286592307354327003659355600500372181391598990200093144206317265472868713673305258613986603875985269472997757621530885891914269550159016286805052301640378412423039968328785510503936927503883414357274769210188263966763937262487487318808959340015528219101702193174468554654405449878192086746112837534536318128744638438200976368284582976051841854041444419866352136746550479963023190495636823233395549673771161218110854211733377258235716305545932888817173349617670385207993013791033490009029802765656149248061139051373195278320738669418001066600074429646701919938461277027944077882970972961022226735061151793920975735901771420776047033549592873613828110321583379980057426363129568997618018225149118597935590806248225003533294007882982829132139670217424975004768945421431692622986491593179121284142995226347937034424916413254577159411860206757008713865287899374647231113963446503813904989552016461124679706598805627676691232397006358697388888568113313917477599510151317911214373620158439290300750920589787714819585195057044822698940701156340248366049228441543949393866161037646865148165509514113588593585779551730226993912594365410110267589503223976677094012637436992548821490808342694346403081792018738204774239333837937407696642594392277398860635281269674135008217938894365830521434481789718991393811516717878180002654877076462049558775208866432555850143802508186030291393512297905322352875173000123848868982912542967219348283992687979710958354192994868978143475983569315393824479643342037126056502373035381669691859767293098578126376438265879336766029790119972307358080077373003449200926170168086443981338650394573874790196415718850599229286176958722180010847280379280338497862484917555130403952322435452926515064937173833189025168670179162750030832305893612717190378254551914141059176601015416540113310190447815751481610806407067830977642617358094200940812518370662049910871429945398680657881386436052425984613065534820858061104823482894013958108818014520689247791308212625917253792204526987941274125116010407509452693172672872829005062459595680688895440327810984502987117987173177787712273238981793714541490308306832082797256034210919413151811209410272138632873367069992794821837048985551112627676082201676960524906187653618685825589757265607113668936424301485148413356476434884183992561695550329016305382919308140413566083992206780883482242227828103294821131098599221847177514843447003058589743146524463919984313331671860577420369738739330218942548685869410183974939051977449300507501959765921131451095814424638149195655555091943397737842490789499429139374813226513927923719568398255925024850266354785816305651502796789870656172535469785481634436828897526530516153483465157147621865644820014246577947842350784977252797164763066924072764101224470683769017248883478801879187991421014953049365194432826979623428088747185624601005388824623380584877957225942288262993708364012054923628535276371703362583782903166487433525202649344364433069616363367839877561104277204919678518614541240842128516987959570274484384181799347613186130386207399291993817884505052632766612176688685738733914631771594587714580392666661517859703319202912889804489297939709046178355478614303779281341699449818486343698601820671214529824745135128344761210716505819220424423742644686928660037381382547032734128648518315950593541432029416539751138923103014474115264084941505894970589504358039200477607657450940356944042399990040038268237469854348489854080130568641177319051152719224841845360949296521661540348778511419688229864604426428129457375841103135966453301825575464799546455563680575978966769994860756744713563827697149186859198171191372624596654543896546523636751061362939363866211469389303472334455691895427627326913192924448678587637300676910532134479547954688112966873384652130554320221624639790815565237508983776991174815506711589947878985778288244527018220263924818274163132100876557274370702053457185623711726563701732735992339751807782249669647863837593749809186326787114479537801295473645778754621828259841115431556579723841230094767166395258907519376104160741570176467443043709935599497401645055900601361497080684343443116194093151536267173430523544072524209008702494793550355275073291160828009160255407323178664488142410008673309745606739595658656914823915060138781520938346272456067073872673241934279676534863491000870251873615035174375063033657357230199299250423251233567400550063266733561470480310004941009279458245322813665288230793349459346920375095395203451900765904807469736930792083474779270375759505904442076898161391768900151599119397471578129396560805267552267443303206402746470449561414726413860568852378901775526441326053882829087130590416447615703022047605244284615486673417917190227585232895439281418681342809189971375036353882076852701732632538020697893891302995582791777550041483470853073638366280250367551605553976114008060859333795024055111497406422826351672533868832793284718336144356167015924807521199388588742437866325213132146216510341308188561949194191656908374024388404430025315642882637878399251514558122694635257702755699843511921877274407848115643144343387404655986525820422554711721111499057084680432924098115928919914970138559952526225795202181347700225549429095348827392215861477238676411788001185295171706818159111662800181312305832118417203874934395308068530600408207879541039323420146369693313249872830403229583417136427843079310158829466304236437717646881981015483761741555549912754876336179926160037504239594616358079145863005393670447620304153891390959083565982057296358345518224129338878903936030563087826427395665149955689404003412345457390425188548293922287792245843740545883245936843602069868490226410319773069962333288839875657047608499967479566751767718968732242608659925927789490148981460529274710581730277465620604520329503519448070821552875364958253146161827734812421052710401074795925234171884469076430900467006985571076670300298728964763316354627846902553090629275175219513296293638717259858017554059192584029640684108215516759908302356220262940065364570064625062573349187612004751448346180125006323926447383189348674779250930361685269039578795966248234619587651515746799002086083534209482855773785120028179605379653253045358305879998795234268609912184139703115092052439524961315234297044118771312402727464989474840172403953788807396861170870069756687310806802663476715669585060500037608339481777659265007440539823600193255518794543808535675135652084545579117895275330474742101471816528014833100055267791092357987873663825019258743113040311575531951890623939931380912754185646426876011351613824498513362579326872075620093903580138757096436874816723984774284284334749303798635261115762750275872719439372016870085961691266920540466416744074286628407966569002897788734735064892303859449377259380691913941751248442179012475587452815723256453367184258188262729481927342233612064547689016818570247349461203032779792349789852859871461827207141432742282657252592725272167828325628215793816918276473472976457866923195033160756834192844710187767704315974934831768765692969765737362109007652539265399768955671774326116826101500770856858111486458931548742648195221632316849268592791210137819656129747133095533784047184657318178828327530088096808381539863335386863122468613304743129666770022144774056573604975157316004480343589660945660955327664552121650351667559565605980475679703245581332371882828174774611585173782237259508049434337941414055916083187837213553195051452081549319935125204689264185725788491815096102797381506773248392058297348406345067879055576757475980720438779299413505591580254620230730337474027766465616081220430933072403427100635804377594459997084511210821989275816912044276706208280455451259471622092893292617707375609513396659130863479335836014863272302672870956753926820569527470103576348550797224323197805415276345003187780661838241835775680064384654889083588533031544259610990785538521746829200184898453082974945286145661686092444255712452306365412269846148330540503867184492413016045913539714005274776578249756583630944427940779687981928083437592952699404323751781368182349991031220539239511032560771654152065951655642287551841084877100553203765421092287341670946913185666503302274715372316569582981703426365500307412423377530285169653028656114435772379839036629157072918341173612649780727171386044802114065686297704142682966201548830454919305801105596430584281579410696274271178842003239933119496609195287185821474641859385185788443363775562090165333835333052038219868537515640101342107417488657060990581648399662139693862840314752657931288040129959865443057317972296501038793267135425061225294978887108992015548760546360797427541444297117669005312937103330025379713537723365583403643830690259613429089391571018723124653155885007528359195326668601552279407003496296876215571031862414751162123774089756592108678018937238010278384966833092515631683615706478410275460221841187128730726797494606460964192212376560879883868309400581215527399286570421548516398641971809545205075266970238095772318926968891274295887808644061900414184969835677619623161394338397064440857692198269107890055552869705634957581976621332972043788985040042647879111381893102758164261902880835866394434089352815913559523851699339590756803035816543953893253999365910265912789402867262859045175130274370141433159497366480624303743315816644472364891735936095208215289565554718488300788271410989604523110110325385104643706298288077839623727847330071467799904307774572376174400217603167057785130696728269533587466867011594055227410589288745889405645870324428924025791587587583599780629928406318492647491903358554768070447742862399428068465407766985620926677004978574528730989473099090007868905190750432057933879652708025998218093434855199122139253373898977083134798342088424652144915413232884529623689560249364390867467064637748711550791014238650772706239505568551293893910947681998644330288189777164676957700053933984771386846820885805136070268045951855148577327871462385343374230902397583422892341513693834916489479693634444208785420249505601552169290387801372397936386850361377856299672234716564503714273763406042243959622124070965256853818684981965732155400037886176152227331166285888353958136393233592808982238873024867326080909371098380905097432814894241271361039043884776266417117211739509270523720734471211282312816745872864494801791436507902398669235930333349920789619826273551138702909729950235972087206150632994474399174986989131028269404544728115540047269675529293382325865324731731981606663883451808832810287689053556751317733048877769920606985904999527494239467273692568006220850002965034809809570705999904465768336628135217795386912899858815535612258166238544481127112669018633922567609959284625712678525350605193740901715481801069788013869776181469283607565497854936383510429682472122135848186876920148287971384464848450235138525644911934257203605307742643125371462900775881092533520875613249167497847698710361647975406665306131169072225180948160037685245545417430617295740966105837296319009031908629152043137204720955132775765534476035328201927953315311796137087361961567394955356742721938534506714454803456038586569223923618999539744539718145389893707941285799047268995277915119362020171927608317090206196378435072745622324321401472267643943509271606283185005746682987605468827207196901476030785542872409809465948351543687277348189251065330107061627443736129125748920297386230444288196173047890582029045664212249535773437420877496885287932709384099865583711156536776192655944028172783112075898908979135355052001285434285123115442120840646773222331465653406943855349823831325696458020190848200697705328844477966711082953948023580809537710445880345072506070628841558265442984341075683552268592493846916613479429369615868422659107287345773758466588456807537101241656170987385845351519366897880818254398291777402298701816159708118479862390907778832407108827803738488561885687563866850947771129819911983226783307495731001572758856444791205940805740955101880593051668832774551200112392758316605327667460031737290778547103487598073842211519850555848121235118616545854109506215977443496474588233744188141682312460299592524715588682395356007294080958533321538471403340550696494681632196551982343855992521516758633414181325779143497103447370119994741067073758950484622402035702384757523159984533699457157158021168682776862414080986732863322864336032891703682350279075526664518243988700257025981261769984937106337128389611747764091814133150236182169075077241094929149726109848120030447049649692511861263570194649707175921690900145962144576175831410124635169733542176024635956222601693754178711741105076171008910262421771188537468791752392551347959292705001644447558622339786193541787366549560952130278217210571489739862191093131128510526202638651718717611079821209621937368383380786739152673227131677066067341947274656670711001834746768056512926431465927497879987315119760705699110540903613250744285373182759013535286070024509439340962883924667037732898536753413921942766756114996152700364103439131946341796016633976940862138143849536205477946307963222012554353754126121752739501263745176072861428456663250746284071366785777874683753160509343549872649934386827076189359246537797015112663684804290215989431665897261800162437676295351680536766394537660501834454463592394402402237453012466774500433666704984384794799368589089917051459854432467851758142909412965532929908169133992207411080918035472534721578973815939055724793838849491270587490790454433664529392348755909692763780441878651044283611190329816005965844660533166409057454085901550080369321449955147884351517910569601948696413784094311847421145149431670702235294041943678446493239987093060247099648178580534122030679974113099131161113119212011271459115243891476974213452563353216538956957628368100664903951154972727803217286485766311651616327363873015000930220297295276271791504055420672426955266866443401939551621808132183239061626508256170894662066898155798042589277866920053795050617820405867344286710149473070312301573065621268527561464993862670161504666450465724575197606952448386502258293044852720471080105177883863603739829949803470472466008525731997085498824303295453231154675406622262814168252506271364288490914512748569612069800377441658742661190947605866609000130379563906438140146726001281711450703963264837049910560515820510708433673604876963528335746033660888420732284376204060450124873613461523302578119375555526034536300543427458876751382372205645315119870625700450884595512883732781685435786731667569810282050806705647802124714273954333294338310743645639277052578297878450213360102455562783602503175098047513196359648736320815979523454618017681693100360872138440050710077769481987724480891402661671771738622736312432514507759580108128708165306199938079073588752534825476896532857715635029204409809547192232538531277095699652817986684071629885974892524001794677917550926399330334600887418357129202137712076518092573058504980369775356622944713671559359697373150739723337270936897430473301744526586639030126374258392062716001706360856696315743783851220504694247441425693962680562042194521907085044359414776356226452007872677404911320368222293625108363192712418864386634268895684435309121435481494697446000038444496003220989126157497401744266146322127063222501003189029524363015528498616323642184018973946780742216662379615415444741978377458616552726551750684724943138175330036648892408302840907548277543662511419867167268693400609142605297589812023343182449307957340375480071026913673024244335444805797041505676455843821007132720988611597639318201917496412988114356110441780488118320563145956843490955364377483076317893260254938254512650536838729464901300391860999150522132437619115463544586523692633313158398359177083458462336872276822506456780537977624166180223445177202258541402251334774651191027465360377763104576234106264370476703351881967160101306148570988810112285347675270140448682435130984802860414956661138879138674653109716578355423886895657230981469655300203348825230277809882202147171369358078039863326707743102829948200656121364783110609082493194574159753457867532471898464047280431988352111830891408227103633869975717774855294549411747693389448953266434547721759942287357912520138110841570412382327246309749695335979734268929338114815317062097541678743138338766468669681048264495255388521086118899160206063271728615679294873791469243109953550138970594506737217425741334515515708193935141717764341016766513835597065018564614049481830489074329101832809850591178102344845045029319190622975376370540968081590847037344848183996423964041978524948688915348567567352412455596989018305472389483501245387397630755879104213126835165032412150278320349669342591711413283640643614376729592511525071036992193352922186538153732570319193810543119579852989004963828854381869008779925048196740078284340080194002821301928715310427944470842819124772535469968232614119458687939123272263025664656288324632749198591560429266755240245738001041077634877211527810444969738643486038681014392164840582543438729038194752081126300617706461357319726489085215832573997310726253556681565998593025845744177828431169889259567083968062647320043469661238300253859701783114765343265250901185549404416558590203364049705986571081954676896544819087090148982357986353741955683031829544340680810064848769123057373043895331570792671486303096729574969284711749779439654449628941804164750207727258094650620486446697279780681801211026487408840880176696964301168362142468598805306917171285354555532083601934609574829593439612950367867091111012149659175434941154879416625860439881611078032473496902471487726631007063194274602715694369887370916996556306735940927612085905783051394838175362892583885681328206693972242501520342154174321410928707040826457912152638529609345057992088657343693650517824910172093046635651682460104456653276829495985358480277219106654397506250714879146397927979485041787952992176884530896019567136656244264984455993064999481775566889979863037149408205008480786364841649125361038728088464294667325150189229549544070002277227223331336108724650963507768106738743984246746433781576593565234578987246514760632438739942462465201350989592509673988939301444301186812478216119226562918617216265272430311122997588082667169882162811026349486961386757420566578177257891614423945629634708383757533435749525404575836187991845907861435662324686930178915748432540836522728161345062278247663003654104074906983846532287361780367149332692434630324484545378304321274064369942833346382356983103311245500510757748571403152021645171341870745604943008318819747914464114121944450865578804919059634993747130385217641451228437761475118581696851508519307238577243363792235827507037673035824865956895863006220208496264887539419133771870633870144834645280608320342229698712419407611296598948179096727847672302179523005970418022423483796081527327084344005150811517739850906323372539610046840828091302779528614682809441541188263780722356887915741529380595962613522354405397044079746491585875079892556834082774862617398505033672096394839522392228558406135240560067632465766337212755625140704630740063886052625945154201909541784684666725523526040551916492681892768511696463906273157208403414453442070262728846103892224253952102052213132536754001990078607464024498328536900533237714036022215580518236361282680908459480721800790306534528859214853800317291963902982883061803940259726686160277010019916856116779480321152174272986612460766793694775303269649281500532784840739051452474149777949743212580610652925209819438009227213450226100358858718115675669757049723288534647984225123502655776074667094162650123788842332029649652787827738504719683737384265272872686446747971603278234178524573431859009344872096650507770767333846822599560902170606357677550181099563573132442171465092182260055361318402465904102688898837250334121706374781905627391091374756182638901616218979742064378866712364847378473474630642292815999240668722962575270249608862520657756867210686151243049026263660683671503116292790180230162898997291654963056935924673092554472760082514099498747550360891072009102261730415337195398709550318279491296248453590895709739691682500985514883346537293337354314137145967266556815361510338642127827762432950905051215010715610155916568170143312529683341668398682346511909554476572795031630037066173526838913796796646751541046004251475281411539454763557129993114329487325355803542729828178485624191783510146704822768453443974380188465148147054086808780557895741845070601178715968586048051202229792180234717621594976239397367522209415661557385872376115859319489031354505772754168650528086453550337099083380890717375205827585677506898908135485873979405948769338771819101794649372596216461184426538432446995348960671911405214756329364614787917077500184766267129462073090844014172546561994788009985044530518562751133014897744569101950816502900471674288982547925208804289321961816324717391334709196203268905763449510798968606551313563981791801921943486889118544391244584035433703561244963663494308835820772365896103710939560787078205239016396487947810902902093706890057032973322051523745203835751391792251207899520124823617179910636160431852475600231773193188064283592687438918755557959888650877858733157553822261957305381428380136306723249267706717843601205416586325615629168985370622855605927602897618112703400146237368163229060778610935241482988671319616563728110710630694844920332857408279400722565447331269523577459614575989022625693917757135364204374370794527163624134175186954489426664078988478079091221371290460283182516240252889154078096314198606352195837368773225862589940163111542103471844548868704642467812130030297528989333436991855222610200013470303910231949185658438003354576069529733661307194505250455216821934594637729913685321793633676310165083420511924659500113560249466366298325086598540501996036473451474882460851199425474660200002666534930308903066717384428288983472698792516154417710005697997147687519642305766000572283004214612376725892235266844553217750164462791959540798287927177130715006829197875127724273239606163265236636401853676045005114769293903420810137175649288143855536412948094868205833623086935120020914922152383463605249325718555797006991979193844631238013574897299876657144342436463200852664240705851343739873524647824717942383365964652494938873117453168938967599903736488632707264470508463373628111015214102066068850366226147555232375254448241092311571663342783230790382932834824361053687687625122009034018635847720987582669074751429090201826702187634441335815553568365767103604518408629910323742897530951319504913558281200879027833963249334582850536855075925883686394067477127223424368263698672665586848603547030139663652903235635394007362823768127674453357690473076035378708202429671878086158576107026021900685737354798477654811191196515131581527575732114271542777622715227638547704600416358788158991118383574483167858405814200350337037498523953909384109119768981117012070918309174917755315707760211133773630733343998077034942722175792519666308637363564298009688693219743527609632448777855114919718172374082023704286408558451700842921694978115034528198196429882059971424441261430933172644256250484788425109287071346805938156366872375281192989904349136841679715673435537967451837103782515731950466678201424893916275363353387402912915962307389656496136900388851349775934028590883305492982342552129363035765052784437070138615054752002766706780372061529428974240581312202849204312604551090410858909797070886517144010640588101738893480002764217582788723850790556179969850507672657438090971418924396342666309783957618834486059675126080867537386774223056730601470051309039013287831323501507261410571792831459336546704051408576757586922304464362002128308209522584072620191005362582059764433085733847731639194793118339037895601163705957987358139073721503296476899622819316963631488560852303728700380260367511523287534875127141384960518235717331501541885686153884005284247548163981085761197340958872708829841613859102366772139285726585596744429217320435691867310492600551899281452937941388895336582354172977455606042293194953663357939252519529022717552101496208378174837854382465876683294108009008650218846775835404838035457653740726354422003464261973594850525204872024362020027963871232480482515294992298405802283617693148330515437134310242162940926965949761164960977878399958098437948402208083756162980409973400524811021161297144782015707850925062853585384003196054732533540959051148225400119735126324217909158630161698871801482147511883005420162108966263943134253733644656857106194178620944943931330970260732477363103367270534240794118656453210684136357670804210655162797476021338757611218691192302811719824680477919075241880887421267705951418153263617128146186540808629736234802679283032895115872407812803915412581598088200619053496442088640061885542170321306164878815199861741007849212100932853993265611901620798801612864246511378218144379083695054422426617052641012688350426021072534408931621073495775140331161562141744590920071582288161329992369534285355153135135176206637569441336053085251143822875882151539952844370158267919015167208078491528796622058748870122272858629478651357847340579716106610011131730097108602715324327034137647623816455528188054867547673905871548417535924105377912243048226822399304811606989158487955682661129658533616255473195217056491797970631810012885740883138586030927481244597496556244714568819712598352227881120124250964685958935539378259529583612991812873331216568871229260599626452380314606188143542183603024549170877166018124004279718698202205829130074509182686036759025739393038134171263484524457352410670861890431233746930113131564918023672566023516315252780578642598895270531942698614148480051053038701698501116411031078425803952388298277013826562867582771217777268717063875194223054061541888841552406545149950869900937388572720047069185409684117750759372561734639005067621076327056653319696352180895084483280325801030544189351926823836810982477465669727339489198189410984664717225565720752406845718459229358818253913093956876796769272969998330856193166583772036891461985969387346444186019261921614467057767432456396463000514224423231950918197746338744334408245918721669976712323138318605377869870564303405625884536615247306529001958775952736965218086745555857689247906145375975845041566124289067530396873513849541616304690425433126249954650857382781811477584945865586619597630390147791112738565468071444452407807051846859138422717230759021797871658750282394452791908588881307509509199125380907699638326364078803910036574230441864864108629445977493086977365673925244504367106648797320030901833928427571204484930956046410839353364372801960361306374775660263321930132569732415914823197670965601532107372689474124667618952217530889463437718428456413762017389864531211259070069374826712460059351844732890380604764643563486598788527030756870172365899230519929631255307305715461626100991145424699085896575950563189508079481641102003788659356359430972353096127255945025364655045836815619614268930016204195080663696257434096397367306605466144943716936344097356587575554582335259226591581987571294455381099350579126966736991685004911030282846458765959992161296995943472868936244130760744707419101043446112134054062461387696872135412311222957024718448151792951402828835835819395452536388749903338934941670662147040293549421044950798657412577938698204647531454128014770775690391888462411539998900999380930219325455926782315736301436677066999541392817910207174480444602811479304364878769294295850613245077105369261998947203129080560552095200859761551441518689772656665887999594758510406258813089675501753551344021304480064358506185517709114956563061551489981676650112239346940885827683702771689368301920375512657094844378139389706875291419277069467043600142640824921493869825028777501521065503851448358683026432771819112029093995587250842714051909269224629885911311104094256560068526976332278138973431889742027414366824181501653930559542257065943839019376298677538195879474233963842324811766548888217385510625456569838763926938259546227719446218335415234378800921481028725104032929715209513618789686380214448125102552895659871265602842695341265416513969250927759481724873335603094048205680701810080124461219155792114646303517247667124006121356409256991529559394398802855589453506271634033713117984423951730549262106625351296949375490277661833484881862820599565720568307585697378350067383558817900931132315024671528299987529876349993737304057280802972733646459777488575902397170582467712880086015815868138206130778553615356532963535529304264517448651128514942071845410627935485053522329304146277063886050111423404914205568967715517722513624207298105203700867058550799718443091949496631766378225634078851931829884973512099991616845132214690375909857850564353277759838122946204826197890854558606433645972484716574843549677143187008895449000094887124004262939437524080810312598333850681589804149569011071999381041396198408865865558174736219710848653328955705188258760583708727010335225846674314377043891656315752411398045014065214971165673185691807678623158597542507282717386318966945025238574499958649809161052156121873833001830461942004335461795314826817660045287517035390280309291638549700944888516239747565440748846227987993033148107147412614798326133253171772086719580734313983495644998566685364756065668827976528731409102355709658391685489816398866972865141567672042713730013790186668713017096264132182434059499833000417114732981213051557722889684809597166997945987961220590369066588149921033025716991767558300232253479580670109787688771358216678639498316583078039749105282417930814236276367846466775266547332737734526181902989067440532591943629851945957653748952185686854441804063285692141711508401238382173755434002492120243736357865002350519701379984142782561842028773960157501105470769841147912367597926357474167864176310474901695220913217699711440352475829588173712054115897997762031617881255907462390489138419153022294260889860039760354980845728827021920422689791304252230536038228910527937831384542999573262762571809441534940211610737402857482947561331193250476193349505871142854765009975992038774139407958880036089187394635792176358076267817974013371512851924975107367533690271747386675241950780451602266008684928149873158693783710624653712908452456640584114805208001460693264906710511097253633386819293369045202869003866071431785646073027260246241218989587534305122096329832599904642206905241466600187134137257360901772852285286588587458203400949973185765234020483882711064237259541851307771822672819780996615627065621574354444039486387875618782983099772321611620514991308307347275502234816875917012393459706391641476452170591324798706099846988644514003826223370058213907989407212961164709665858360278471826573412899192875943500368807495090510253359431345703290821251559762210016545574940099834583696285840358047117805557238106525108981682217498718129202355628680338722589223230040421764682350092064010336445469903454829206640912755262777567360961731038580026700110796049525064920570304744237353372228914492310165659686820254745789146222800090884330699120804429537673272526099141407513292184121340805695652900710530721821935431791423221477228647538396388258956910037280920194898059213463000165094886206920094211200467960484866976071525528579835697839485171478531346585935227979062312359285022525414060291421276771836603575551553443569245856212510056704329421230082079430518709051991320229972858012184419608939680653085562652979580545968460397148243480663877923222643714597324202716979107437638242677145267581586364701145114138573936377658204029683749879850680445958949482629501146747100053991333040616642475388788912011734925879841220469028778845899152925117686477750467507992878018200197287798486324019830294367164697283235385998475351468553611196174080765286606955270305453845178845396459202024334675109161225981131397026693520737312224727727441315351310973216448030530893590443721609381722233652552987949275071022772124178750223291994819265981616107092975427232590160421152596463298300393297704236523669145936094601129393498435617233850926224162060141909383658309342918491771282158480511872097508217824508424119358344299871871355193356135995876705848307417488157913376106751355497192826986338794544751835804489323943999415287059014103096751746907186440798957540270040219681279644491345441249379901485148153590038578347923822885598645385625325367632198979782094803064746570495099318241475016377910651211748734273939937538484838901776056578279604175746560300506773463166955921701022091476723125868453748986760667426499495604732697702046483071153270693780437795052603235884036801703931125528937457266028896740673958940245976879581913898783372852403756248213200359730276121621012288699205409633239558227905179944099222455346548946984229918583356658900554736001803947099004436429725379663118171439682699132174410623742251125164139102864148276755353297512450470207434411568274583377533844090178336087543219574633273692060070252857516118943482280645586293065004513638592100090878404804391991994911401049065035534613074721829970778941866816491641595210135827700639561276520659211882305035341388769831150916653097546688572826283757273718777044834601928228740456552126650257035328599560551523240209929789134041302332661059434395919306678071271594353016691116944869063548060510247557350483561189182980430716672232796925242269503572437443416428026278817803369706104246766480005027218925008638058905280381044900044218902935256427582113210034861169703556166665905522937052319106028527780463302084015010789170211095562564330955046551411805116510460283679058337688836591228281929832566917491338860848599398556639398565600613433056187143665779351827704896752471167414082840408778783905911976778244000074303204630751614691787690015903129520192636368551338746651922534392638882042431359115999098359256162584921609370370748938707166412389566440415521482464308852715788741201454670237696295095652097874775945472516474490742513314694979887164259159084859470538601840148146713943831880677353957972877402584177428070819795333315041758791262361239779533963234293589911651228087519410090229283998265909039864711475439586243441693611007138355194475057886904988593729440625681472659926511400508784513325057589001479883219116081737631400892237641260069271433132130547662206468015274959374301866811965439305029500689889696347078070926045077757512704345932505819151567638985704534206440674736089077522584686560504175827110358479340248445569344061311682827844636588539366126994786953137270254720858183470880990929072087244309573968391592120454214908585654742121174223809624911805040346985282278372007946299762445387192049911928246973244559147587230107371231945039039922832754255810300286595628190899443877911868248703948569083160235283339472407434822654905423335919309484481882000790866048932349454223009848912302533822069140975451184989045778688055814980508897949884031271526135868774951823745779360805037551299460600875113503584956336482978457835667335985973116216187271505531110474854618084409953980328684347615669630103472765775741214419057914830457451189696647418966126377702472214933457021558830426201229224347731403196927177843057011816833292553216082019796608686553987943385361391062115432674097760121211377368968452814917420721594779213095516610591223626257884450726837363405604605345815903335369935225642793938968851033919694937044879272540395308479526679774733312384982205988042375969066725956219569702085193594713207090059961406448979893877947075965127076143341525445611161778029731589549522269708913999651541660439190020963214817652600851505318842532101432490666645941420900046617620634683416583005414830213048816027137717138770880239506282150166373821697782889231796442523722244110886200211057870681353304340865637060524564490412707537780389164285410328414919143916370852297602331318625554003200167410052924999144149855328992709190359974008948085006603278905993245376022106216958198558300799877968534853600597974219180509998415689854174050015545495440138014000329816463666556451686808036566493536135208515470998860120250861975960874070525970716097209190893152707154708980946340271237020619476978441780082114686458650437056835292777043425762168546917050117353351428953873330164421885620097847690514803293577306873688335201202516582730052479330864216851999365319668786870168980863872384970115244663082701788230561758708099006920090706176460203152311365951248405336320852775034586940789163793188603618416093825701863401063545560652800215420817321513256383160627585889474204330604949324112870286153268455857607034706729778001984597605680069112957250205309859691077968752169158448831525650955968812854395345638006011256750295848689232094818005339345483608877596090387634507228029515764829064148323696114836354063236088911765432000049510365129386446146576197006382839307674198666295316151270003230698472763623642293888670929796125743711848057747262668670764080108385153285172611765143104781237256282570713669074041232626681175188143962626053116322261914531485599100994399859627425257940185922972111821754643608742729928589339822134585490070438978984068621344340024407124061877563311984984699751168736550453099470511076102661914576023913690490729541303461266705095367743283418306394613463489533593666586244748127139829680668842577027674193518169874401049638051586860869176617622161523867082918513019683977769011486829596562201687952746215189849119938220408028579630511316096216892421371918790041523064374622291721543627391480369977928423821692297607185590680576229913138188288232166517407886295962937064113897464403763746845041488212524318827859421818741082902814748256612947713884109198397837196957049208698400695914627934982464921738961278180141232540779706768116940328858545920399917860627957428054758492336434448094407333170016973614844507855508975506936422789526946959658945056052431217862576467699909019176702472384858431733517270505293295257287353758448448566003895484154878346795283399838535495509363617819657556475138674586414988980278879098708754063540891200090633106481676612018118146857529865584576275220688393502707284300103673336359746384137967959251727347127306643924876348996000468773739711490902127789238382009095124799067371167348147757309038057724117445356412033563988637216105435213371201440936947269514438178023486916381869138000935497449773524377696532477618215099398760525404080611855224687540006897178747704585590053607017844334119544129399928276204074902663653682839177065591868574588013315564636424026063938473257130591094082125046964471976081140484738534170077350392401895110276309752557355856024424172520503252634477973224410471215744500601459108109230001509405340048979647283547960392123975912024864539245149672374984272356562704324800550878334189303483592165864361093481653850857262652513982575927891195223819602711878477125921547911093636741235960247927112782114125475957793252154299122082584884238927891909196264060425088657838175188463343029072497602476067104095012512830742470398644556429289615476842872482823311321243631880160218930252842053710426742974831932116715512313455105213893978522070280713904144297065730244306277888290521577840256768141967171341733628869436052913411510369801167398520134547643968277122980971060417659657112039914687284395706696232024409520640872559881955584193164456579993097936907208002932269614424543472957872399029103235376854735939554066939725383516335439310077974471974427385678039533940173702677329095080186888316888086000065951810632607044013502342977941005974665188407928330452068226432332146207124560428699222882066282812103227030236901008482705265916091628855795996417362109476468496383534079271514760468034164123436487162609167283954690744976936067290256431248094777175185562869300495729051812271233138520267471079334328718956913180473175890295911609383928633834696849494752633845480293533226118393374551653120181010497585002053928851574654222816133073093771235852880269961622817287645016778104966976138748465945186813778121661187956298508174104673117692518710736183574299631020117287167967440296535299999986932790742593221896903285164982405172474397630965121066317380015035485845154962281423383483194078054235026301453232292755742810647624735675378893041916000818768324051350518671759899392116084769525203044203114997291749358749730541842875251296337013018897924792774790292301453156394893325856523053550968318511307737006023727972213083605960176393411974512422605357580017614707161253119865322424711905015437312199552622346695417407694831507898073202038690919567340555258507395319354736379838275290707474482696720897020121911415778617318317977914234872601515774835522365955313578629856383175986840214846700580687538372849850149131744267960099881015317797956629904067113968579834704981983843508567254464646716847594514623619963691275800791739401949126116538962196421023307548280029068887673673053618867906492051996656143816881060006162608002484463039868329670050996761581865978089886071986077795230399024571037879939007583126606804510069232958399888527946227478017458266442000860003890728480489037583565376052737014229128077120753628230456370513216425253852560198991561615473282410481234466654121699177464085437714274268583919762518629084857557061850295481471495972949727379429702425954802461586443567586607651825817744975858197051325722729361710569828760060123617325181841036440440240908952289924717518977145274324221573814476521181700280779966372718068697246862873733624134693814718304113610511054541660739420172274155013072332302643041250380811478190624902044619581229519826913348444895058406756373267635067927411679820725000578019962610851070622239530317042683587655982433367761904255026489407405993679171258657121008434330289447172804253968990664477247289144725581548111407263679501478146988935043053669845702770248553699820628094330672561490407106386037496503625218341594212994694486633860545824873952294458771311809193260078282883039435285834023663034194367911055034738826240557181835233422723194518665520061892587411369948634594347878481848347659487065122421513437649627094986157565442930707214346511084743150886310699984514393257982519257648385358626269954341333272681982241187660874378703795862821068112298451745520412234866983646128855558726680372094233984736568739740530069158182305071480338951774557196020836908701902026095132031809953362498744596500593323678460036021392264528734060293949252889153699270915329425173038352945248284174330951780268262183369482922486104763202181515778337440411505182901220098594556128191048325935188098198298161559812576469981479365921724559877675988644167557602940844770845664384411114592486672111716091275306812733163831495348012739710987212807553802404943748814401257429469034406187502833458846675725419081093214011781176502322212871747674461710168652661870071506544161915306432266747770441866826417569584372040013422807928773537056448294465343411903197483447958627599036052325489944906732795046418917388204468220988596208258699846869394078548096782598381038108084424793627011008316271037513903648896453764893141465925589859554239537440893405141512206930697430021814809156635833698505801490122023454690405409427389695864209885644726873593664899267491411472244795899789257020390091944175460652990518092028320602863259913342607975839700073860273250310202591338694910426141943546768711574418072539533560095837169598908917621020862767424133671744143934461991493334351429808701667899847245460726811824540271444681841469785742957167594513465946924137819811306281991458787744598303295465918525268653545594835455300040854160133319298048118279575642402536203692528099495672049906229806770567145625606759307288937556718412173339874125946965434914354965209553203732026986238542157622158079269153797148467278484481244352892344758396511486818984519373601313315367153548858472200826133937330676686273719796557569263451648470543433062042929564226791795237720641189639190321124181395445837022457428924120634303631131449548999806258318999211504406554363909288683972195125939302229080352894008862774447276713621827241619565803153648167518102633551791331763607817382842671397585446546422744351896177861174679517719450734657472615490321178565724876906686526096128071993934678483848482193961252132617301328719394316625058816090887154745961875886175604128662359133415235078034343975055207498221958134825526957380999823915798583474624593018928716624655573519634884371332326850059302643055356963856616151797344001742819371939610789913125763956046294216667795626473050015150356695259626271553358371957065290507240344385246378972330486167271232832084952645185293409376657525526257489319711015825082092720773413234357957516415435839510849163088207167414127507442107906264285687990646708119455941093468438787792868596530319245876336947056328829526389859511034202173244186767951049101623778232636778326495708275942987186242817865792474624694555701068234810930908137574078901953712463080061032118653683180065204028207082326645266576382334345871088314736220861622359989375618115185179530034939336749519571047135006080719564851884221044457971259688300525969147320912057920171138625927979281903963734487118536745045398965797390424277557632014702607155461734136055309233635578087147176631661766031015786347175106624729598914269396600542074870992873014234548323138786289518815035221003138483599253891182924283431246027766585454745260756642429010150999411556347327174483299068438507991476983893571159253597052361181536683969474623502364585425924303189998800495359830086575315890684566471765028389443229927803224831407586314338691548463360620674409457175606692751243776110313893172889358127266969267536662473618923963619784400561153255709310533840995556079211174124960153574783627199126295081500233250809984010272144157233956627247717185487643980077602165180407276466764928476867193684205906786570737152136179584717880410094199095182003940345839534890280978368045948522159329665876962534189291003492746674733524101863583584352640677478437536194094967291791881453803795828097470969499726452214217862849750619212735760466718863216669749720942760857537535118546377651467792966382973490157768276245243732368854184219981269073934703725119279074249038369116999561327700491359686416785492364435625169272672046790888248523264214841160378680810833735140734982205777823051068069485691137290220056903495442197375741300835726167785415572623153992300052515882587783563279029475286026003271816091537369048275229141835452239267944848638275298569189022648085172197371565592655401537219269639091753958170116481793198308686136544282748089854629779605173551380289227909157735156081217557813232798014750239777288175980332946120560677604888717792797242053966931032589749595015527654390174574486735829532633157664023762300374972402132443936117818949323297192042184651282593861759464980496876055605641973570244779762814537495887670091986875535163993730079897522963247907764374186218260475443360952668336623081714116276838560181075930743023632419769939436160880014292511854764941076166146956337946621524326635178037814928813903248976656596602687503699505429894366419188468678788505369158773963614548748504454337104233379767568176665952528270434483449700518981768707253737182297054946806662446061667548721901573250574541553245446313749452590290188832429402363756309828937192178593125566379960844482271748409871254714706946058482388851327406969392122731328280567880278344979133157042659863721780718961264642563347304883999558620856051125347736143469831678564592659271527741325437152604762972437325277000039790396518142256659931609040817607608175681599485370326764817575157363405754678243895519795382260602301574994356062891310631146773236847815379589376221137944009370239263561995240409300009981279359020016398220008783332133339113488464099525509916024128408509538777325354789863473105737272785660904977718936499041545547118303900652870677725448075139142931063543938789661646301334113013730868169560302355362437779662365377590610146097196740338810048543831996840724933470846085217210472193269327246521458733869559516833066009058779139068259648448253373937414303711291808272853288612490271484040655055750854658713957564987464394292292174584110265862859576165469382231110514002599761843338146066996063103996510941744267731696362229219868193757231397753817406199022602564172516216629933313682223789116161601266804557242712850427589895601695550160949670034503408205116242976082932903632885228424000463730065598587382906444895371822597775212618345011860949364786678762581945252983449103894650884641585454626331402681780011555454641162534576050615363739453437940762279741099120366679383160002306145321123034750222053004609587468592878981661600474324701449920637831638057604060883271103948933610691297775968972728793941700320248219249997081612215664654297756448216495612412777271232160805492983324448325141929709311423463679569265477804403247705691469480681596687671208894844652253347440562160008280012733212009097984211353139416097836191780639000584105923596469575540103877933955512546836604307374319204895065907152702919015696513847668593210540446664396887855877819035314677542209987505374949118507991922207050533420589599358672876662716728047889553471823821607852705665592710367894322483696121851948048968629918036060770330343858952928892263960911882490017029117498440110710254756382992736796464743958148386586847935410776477066307142972716289045496686149139909386445530054790003677187576221286726674077642466638076236114651565910898364345482819876369422004419955195949715585321957360510835849516486281812204054468092183546516709946527978399641772851875565519197001026155373322617295743875034187137847089755180355056740201671761984889881294566203749813565904401223735887117295639031533405692422234477385217459510058231682919997604645066011339394707956128279364123476935008243381290150337262074646919869813841914270275023073375270625198860555212174614299214157179971041114649763026177934331248632016777994371106526881150929964958663919944414102570394001857560538500717934676144590021584176647333658688320664639581009126032021499480224958839033903453652692496755007183623080836623260682095459465606302721640782801405115350390702374279505732138442554385703662483080191502139983166747225980678158503235261468407757288264179509554461481027550155550301204248774467269251538373348552047591466317034002721744432463551688497521468683277015370922214431029895473031294433280883637327588855374473747227462378838796548696553934972201063003287468722773419234628690669681746054569267830262356624662922261866688927519429649238273609327377186985356542621642015072298340372538312475749683134994485919057219307213655207950048051744818857207435325788854249277085699980407030145416874308473376641869551941884411992807845065904228210941915069839799573165352343142186130149119289055479830132005507843098591813334431833443868017908541581576496660127520708414137467069952521041935356380450133370025342506413958210194596823837535128789545114468811247481646073400152338258136528015211446144747889357442870886675080347676589826007964803431822754096600158285605749004893857253458676070709708401128515399279845408126963593434157940833691218534093738805893930564288348069461195322539804369738735764310289285881671652492275279423229677434823396502030502357228889847596594495787031354203820208941339502029011592057737700357756436917359428907248086890122463308458156924817403263445930630318715879702528896411074210690569774237945197211241895722158520057384247019735497826624220884832404867629302346329643402257612542212265103969487650538306481821239289554645292164630178083837038934805663949548760135656130449296226643120177212129238140379036743694559416843449559142854521210096218206949530593644817756070329618573651773374007472276317131023693500553500184232160072235889413950227547852975231882274033330176696370168760190104125854342717035113832953479780797150831042541553941846472322817885650702268937989025993587004006565573193731867860819041932581346472339157745721786907142028727966052591220043787035009938984700070782667929706842918153859832594007058967766491344807485622578682554512220637842128958686648672685008440187538650206024317435750026874489447143859055614224287947573927858126169014391896440363629123589073503269520592045607066538599132037666713112289186695347196669437668765104972558021062415853098085451909112903788979968723422024485508255703792115881475114767885497970327050500566263521621270818555169725638908300120658933309996810521663913368652136974213605872902298780598699306914696165240125233691236809432118591233899045837446365659904079893811210986667495307028901339820036979256005471935455331467086454389332701968979889572793451098948758910176835428709181758358947787108005347019139587827737788863854357123246633458230804957420821896997548115832801215770110616300257729696740389028773705465282818307671163273832328723401561794434408829121422007424925917351836993026724591890610602840862560867300916223225085935431547171088592157669388937113540338583420769372261520003902329354262116735078338489844633413941314272290887143148179238504195712983614918239590722038801656434709978866129670787475697317956834503522423169912693166758218815788156062296218262387106472728536318897226626777715732401968549723526938705294798789445420238271181918387572513659274023466638424584304630981843543738806954655844439344874384373221342095023548263052718147115641392179353285830827034252424353749164894091296757596107940689434275391389976764203063721094705366606016215301426961954519004464207875311366980868577854740753412865994906131718367860125648021438635519879511221996777747444861254618048620236943962982872680343450726743460425486314536175138352160400768763431761300573930330409647791325999404007691326136427487168419260178437553197858539138035549726918050163041660787126671428632900442001797025845028830487003230304696465603930667215320552046436237887546636135381065224469991621649727826400858976469757277219802165646771323317279050014368763942192954388597168567754245997254568347457486421849432232704242539278455597948931584957326711721824533467083915445034038994948426283495835910900524510947101545993681637466567531094005521424902548794645544146232198836572708662044837447918865999441770279492293421568262838482847684743227787779496384385821763342304511356362373524650658134288917921753092595516454165028228038289193383999749704916595940131201178627257207556600499644803169668709940574105400157856599210225715598970481446124307754234959411219211002722681190475051001682609556798585160097839432031874488219932265672935528619158568103951856825819681523499812758179523500156945640382894436781454529739278134065846685988528084346669962501114287837946850474330059205749400748027920890443374585032094835879903668085292030467053025919864566784447532157254184309607619115922368244932265627339469875349849007442642649687936480370327293526960347380665732433494404269754735148292553670354722018268947074687151166997265284971421419231600358842299980154675584744810666652952628210249751266360791794612087601694032184336575877054361339496453571515739321300246220081412553611895094266255315487923509305306538322610547936661284408699578850191495652081071720455252347870404327450027312369754696183087577372391615694600147656562199492078263443131910096742493094836268315509796907479376003644168083766332040109494925329063403212420578544086192193261563152849450184812254479202533258652053851971400298592671085568015913014520913300924468637653400431146137367755078508911013362216429988653024453425747551488422779874962009362792020548231499282317123518701533624229829418676852263107346801816126678633520274691446338100515184270334328447839064047607057481793601207199489265416389059392936441249684970935701023214128957498950440398312273118664773856331790463185163949938386520320303477588029329030063009207852806364792816565530385068498753457892336428498911060481962120005656817582073130048108205343411140432108380448827844751898146185790756865606960756821509127561236135110608336748632632810010194409397159614646667492937095607060198917749962633287730965524702454066355411004964558771905116382174660206862223374448753153913866872742097747157321013655533973111119536094189767844051836329733327886476545316862988146142995704300659350662544873843280174421222515102326856185615695888374769693581743988800090254145362794086174249763737359056970836472148574579238894645102081034157476539209200291626614769491250841080971298825541168375681537190046220984458948281802427026111003945828187142596629795743412500206967210357895593529709143740877172252157560806852220167039819454255499802904874619114868984724753985372148616388019158405315362621043125191003106213633344548249835370481968227384651575213215421248115035193004813316714674495042158495537030548228363826588250311204256937203252448128850800721832804273103627403970091204818853386384163824383830372250500029046592864430430858022100546630858623177585144540109862067565758014697288244201445769079441446784798152203754083005920720787091255344352177502934843090732107776206286652290055848671431050485257358554667039142829597574548868258530700928948868540446782179733977223801129262323391289170533250051837213313100403173690133526835945925765036871582247032004725974318856844717943367723589782422587638676089962453440864103361868624352785533790751605770662900988077296356395486061001606060043847865662787596551123931671394206148004063453397337719980742128756346336664553528142168090384409095449210073546944566365115505327158942294516311246887502890473264309403150154168804550446759446056535642090383339368832893251490154980158024130472989590289183581575964211044015518267924379293652035707769638850416249732387304578289544121900807809675588048294709323589883008631859196484086799870383516212440433980514174676189454043306631553876562928546756844059983831722502256699392357610525969061835287070903378077153534588467869927991080676514459152791221606916201975598471858382789129936554661543675822889696951064490395080997144957918237472995906729566610337857026776371502603341470642118489089299510098913050732063439700205693992430808294142431769062541893232705314960799545652440213608579718660713989275324873512336556552863149507911832322887328523509328550371821183950027902846363293603208924435089213091133302085388156563185147865581205709304378196945593689661014680768297047518789592258317048601174005856214738434485896028391859073267355114764341371624354636631486073434205049785889555214121862615638477677745092767255741174520350412556248116975837248119961830930230661202944086851325134502587076006721183150916461981555223105289580233749745649583879697973103711082601542090142466269132287300223673966655226207446979208083985558824716792275150348589134883484648480975813022343038180920759526200706768644286707399924506080560611277074462721964866701754297201158540236349147103041258948163451777994787992798520947323305693840181212903973295883212550070491624395098064018018658140388863547274684131057679329651157075432186515176023043764412560295260293017958382591143711547277798013571885753690481173914969708096063799778202242689204557054869707105457778924195534685274712653006421747580354009531412714568550820334391034524397736212430221051853882247977775920349050761840838938447165158109441686545925618352944501570081526665722767204607344208505984346026137966505471316447532224200501855353258437690436891819381448306119715120100527736530062295417434605006628429957112415877245705643378723375655430080794117218038603717628230900411660406477946741538061123375258369805956497115942534540126653631780856140681550582550906043851050295297473862580378991901811057952020299610655530342934171869836365954258428663637825717506054914191004787652336142293293040770066349200388370901549280247900508785793126082556570224803032500269452994829591325507174775695686877426352983886448674366834601465955141302277166040648969038085920366717560342465228078855955521991654080656829639983956036572219664097597134626393705902804009124842897835797081817026865443992507591978201766834791078716864292977091091410631139729158480467606417540315022277212418008337340568855872099972267235682292262100795032842693777611035408376065914866376164921829573082705663450276784746770188540157014478113980833109511170466624481049981416670772893431948603816718261894816477976233734943940781517968699248516806562967903348329546122023490163779575262903842987098626520888099771461883010335858172468058240879207252801961029033310351041343321591208177315126898078144690729828907310391463473040179941156908936160936784290108545439091104542962918887078825660078862331774248208607782838379076563596356915990489148658763180077444813152208508738294405522844921490151406430762126318601307257302805247933527140503419803571271966925803526252623046120252556273498437898700752877091360784986215104576998458352411082887236168459461732610474838443584230686438670390929482835743826396963205520500805682302223792385543106465283753481403214885682504036409483768121854685558725400040648831999502578077888379745813518316931059648414132624188369487813261937767565577366727770409740346033049037693733267614772242228531575321112049580735946359848456910834192628835967606761963466618024868128498251677930960064865836390319847814430400532146720348264631300400319871821919417482868319500490142237309745542292012401834966751031690249269768052982976836086047551773459482400937175557551966773866264669468898328957871893282574063038353095199036011523951343863551846353819403613493536782826504285099118196379289725584784374135529000596481537078959103319994788544727167341293041628756823150726214258426264739020272553865601573791623897729559499485252269594012275443807586580092541442931872702533902632549417685577542376980882140561279851252700904621235318918524385665530997837377937281412758645409478028795962440992296627114016728060337476275244168244709722650304513746966985076035643059027905282079059729791340356036398941152760414438738177430875399274081202799536181769566494302932428052986941721941405881345104298166267454627109589613555116443351535094896875105580812417917959917970072317893229347584415449422117178663375676348994561094882083059899577243332819026584550006768559607531421709226265656572160417944192918113470391214164997058549535007543624983628392368365582040742526757680086323502762905888907795814965118088412507466638202893676646840417416704073023601921477953517701774127105607995653996717461846910987022472803396160445946965853771087518336648792183079374817137171833666315579235944280507538077751596414740749230550752445723506530048246445683039975826071403809783194252557295626463008617378953906710035497515942713953945375653975650761117476687465262506448678368807176491741232570506683864348699755465163796179200728898220278631608695652783387817082414738382511738385355378075532924351173902139657992289813292218512830488045006207442089851315958327292248682677015099128302548930413882564267706872567371152699517054686841022025329532221326135080969196580098260570765986885968229116994838416100403830717004011429825001033345840515868504138527301439737346353704350412479548665571051418797351868014241651230321129704991285615761845762159549343427939163002429615161012109029948205101743574649476392881495601688225802456584866731783022602748542636743029110411065283253210862591105248928311816382598931989550185833489770840722723955828800278567808309418604734357929149908597017807084139048629574691668124114838698002521548070620557198762735307696241153280720620160505743085881129663733653079991950875682402904106543729533808920745091146736860707849561048779526680647617935689711576411974319628095302836254583154161837041099209930144988330110063643426977373095802636132169308014340033393777572036942791544987783237106198423685956733792247713759929150671719047741303381090224072461793615747879162195435807015900858172429137945597316150331300337559352179474650331289164123276562593945138691818806284665388427387568471835979017992552230783557710063288784343710737014620972747723123333172414813650225345790871975704272529063170184298558364968691181818268461685512397034688010233356940049978326197211769705676711627647248115586348470257998465940753478051353123158600071012255202198084827178551991056271160161370453030877606974878858452876780238407632118817821607768839192969488410994978417166495276484655684893912791740865954276348829312789999001798454055228873269422878291872018281815818651623433790592909731832708780814505393909064091541804462193824637701640681934007013398198389948821549315233181746789274894291868717987020660407865188030925474526669798009411235586565609392023895398953993253511550071549033664537970489004796631969132577913216193488869365637166996467624489663497796337812432510368269278732021960350573336535929492478542162853985651321350162072907647797241430905425299600283149535818159965607807672594072230919821812320743281711390395348647293556865951934823297381605153964877657547301620365714523426484308601608412647258695562111609915653095563883224425794683335564732875223911874739818574351067500657657435900956917458387096955765014495701479344163715522955613852139197428713037411853831197188063315395603477442677531419060362405400684859646627577915232263507945482111061793195965539113052043718159024438341745951440838409584194549606208365274741890472193499416796439755539084668420932783317012900838286769650020895509252126594447788912572370961771699001453691595391427530729798638591524079296821621591291446193587976679751237695238341194535364469461880790888221251001426495381260802696215472434400970592990619088398785988665806563850884731606901001960949245974000175621530894563406120822491514671758088436634682347330590894508968585450273796452760056932648901345733531198450728139966256265958850796172603875031058565074516648329629272986940410136585231287206032299100303019276933952471884388989364164987655372573590975462239305232065492487735422391563323503873345767278913291343440686221415046939144230611899742931646247025342802085626932775476420776878618183696669686114285331687685774426978761401082787896747044404120787446419189272521948542859140859797574855347928485685946527559449183919468781069604094634147210987817494805481895763519282711320155711090392705531825712563088301234395506690929679391541788048880097109827192023462119983545809371188483782249908982871787019286171875707134068353400105741759049830960721200441544079978076085900188212347672739418652609815139229359929147414768384898975674526872898709570912973867977832772258244524682122096584283749053018798392022518250318691170547564314756567931614921923875343401610145576783690001724442458133815290479602862145152711927211915712622805791243789555604246557066184187356693270533664989146743280311449345170011401390199111148378176927188946379052449146090603897569432675311591032509352240927788411952398178924348415656217580558542107261828275301531371061197879463041856908773388185924976682811640876689260574780759087464038954696899515725149576592213680629747429845608327177810888898851005089357692521217896763491227233389336319327624982473525272661936203057418701446649894139665581605450101646506892529699870941455645112838637221266753581245854000774605541747773818959398959415055781981387468050336993542311593773699720300624488529757299428969719448543903377589294741177186223403182927932525706006776746514978628212315706605577452963210251129204232232632255961585413889086564454037796644390805313633566482097338389129428615351177920647081679436978972320539192917171791769508408829293216849264278255095194509787645299617695045031816946811135286566944647163504254168774866491295168233621349983464531252542760855328066930263751032936139709195664911589612654567618639738490142165394017846184734461198027213270506747209343880229298706037208670694338481504004686691358253807650307058653724637421904417378923452809717072408855840240063163393412703766439693922178624462033493012281249153145157943513298793798732332216669681578036513214316095088598504406494639857570098256434152074385859242496706998421151531064664850533470533158637113901341061261290499306005141297225116778523567581509285914314993384447792093690139420750825471743080984192234735391598528867629208770239789414481090971181263704624723727881433839440017555417735542905653706525101943798242448180148879391904858045029927897283085720561451086416350407725903904402523354773583861288244453210635672333394267054055992604499831908416312047986163205131377884797412565048152482143733517468347802386510708251669391372243740160104547390728824782887344492338589372759231120067179322774692116561266304550853119117698589027913802359892929167519062110065951360939281944221698913448990286861872111261421643273285666483088410801514933819421038064948252208771810945441521871757767101489377417446976345864376067149127425286365473385514218038970083493757111062534501708962892830021166047027924405817362779776350105453265902797138915788821035956793825082931370930341601021808530980982598466288306201250151847613773626164344504914917910084952793560978464842695673317968591237885927445435948585382668246713674817538911879368752737234509672313297823633138987766463831171439512185766682297023949967360390897782068271676657033614154937179324105216064838602630038356556394977168743616140812776800976579095808324781704648496520884103536630794952243861022233083955826626413379245225318873665663766175188559823633970784187743156021929683797710232341592991961641530463202949957532307299135388301062793464544672355880402497681313910284093526826800993234531000876947416882299318604007644609573580195245683437816910374678688248234939036711158145810319879437618419496487008795169849266234906200485784657007749909141274462945190478856000444333283084189522008147444233402553788358279757736951467026374486280375192332708396457454852275898265344929718849649342464045045089301104863143554015037079753453118657716362045949303398280987682125713447728594144560272310152589713166218187249230726826203724160776392947002201898175905353225684465508514626415923478880344134261941470770952123844542548398868873232758481874586140818087233185584015718587819009724021218285627174642320881139988540784855318518528785127608639115891043074406011590837769435425749439011863734209225615290213419508873629026836604141379240900910133730537910763219188912304032213959158966309573609307483769760878433103512685090527350674330879707650567817498191309833117964735022469705007687171667255771399005620173942235528209212462321578654117098504622764020957457522683663905107801512769773245781669493586582334948287176019782284635407247723149559946053786652027660632775005596726513504983167908103328672424797241539628018245653288508113940319371890748890750273404885507224570356388767240508745703010883304319440805082331522096011924886598375480337933522552790822722766170076130377185661307849671564658834688171447977563503170180840559165665462428248445835970821058382721157745008564039683565927911035918209506602777438038363598764803039403684712136796454828099520091878564297051276554782204632523575480863351036533209136828987412440527563037389747547036867440280051185052901575527209721093514710350241658867696545579399463982788704327590698853104519956729628000174170979950678604898566983737110651451363532999179319638580163090304965873391552520522176292791298213248474882764155515247570900883113742114925477052146362152233431361550656882076997085928793400112458620292959089674853759368752692801357525273725121910973097478709331230446834528098937732870488973491413043050914491122710008503868987230997846039940890021917163407041172152988584543409584712057717819583111226596070663392624914800521546872728474606981533175203995497685393729893353503534745669818574649875887931418855568206876462465165295761256016909129547065454858850084598477516643456420556961083633483821654257993637362344903820546764103092673108207890073009830627634268165924140274305561836884015361478676036261583418521017887531440004972360492255128517373623758508653172727065040455433688166059494009806022430075414423224302457855622111680087479659261717434682719259718055012399793206069452783009219185222848567908294099071374741667198267374970749824607672878213721241727299819905524662112359710620739134468401642076527265429124939743581434743733144982702613154907356678013251801483247967006423161403556743713878600508438254244868315987387760359818146912018772134806890433500411428859828711898773820059876342296230562853164591364514280906422254561065163656448988009581060530926353603571473208373208202416241150358917951062244146220735022632654359964671524428623778813029442272299587024505420012045798703000505337381220466434517919869355010790375480198084291611270126073549806976157388172146157629267215392236903129366469721942718858971159647223685724311876583559153185775048129541716647695428306700850740099878174711418608370280294855395054349635696383789887782973469674521093999845960220339389229155882007140026399643922355414146716955490063299750446152029822595342850152224065547128043338437957107411704573655204598328671045090265765304132275752822605516416513078888187811012593821322298996392080585208205979853169785362062414933533056449131493244257511200516684242333701456687592836440640959953457317860520406762868948119641381805027607494397892625898642486818634429267969850009479425413761342043333639990152239949854088742543729122445987391959724686160559815392879935049258723870084871866180785798371302438566446722047125463034623243633060912621179927757978040983771689959092513430498714953069199674862458004364561312524543217041340820749026892491093843538889213880598212274976509347952387473274091277002058323889402750726124840656768016691742438766295802449904016633110582589145050987374854929985712202821468233649225377045882143808599712432073570215148671556586649250656412287410854295782888601362105027916963281171427003866941237859949903505727233252584779311150835571618252645906061547630891162133515792652151347100695965444211359523256967163020570081530024117240176656870793362739282276274697287732650718744994740255664133630110151834363372230663041587311923698775700954301566273832026111163116834914393597734550504474766184048486891378036712189405761285998685272127558050748468195867004231318463473796856824729820123317385380174652649521016609559236939433634660489755199446462843519248877159149409652685096426403873840194272744873782724985745309776239755803094028610184188756140268750695738749321731527839434611189878671189731694737678971470733247311845428959180943648632537326482187622463536922960888578492036300441690358157410188345027868609557119629884834846407656979582384506957932463407010379137795958899811581143947065649279625163111972671243711399416448995979574939490090375602497619646350607245953865629752435251165090352003456066754520664652563466574687751985360648296856705614868187695752528172493023797973691562523672439919077423743770945531717626968774593158753718802930210258826461440499748459484699854233208390582613044221741853236723003215055386352936872815287539758660035950097182863484081268169645543264540153132647688104575352237579594616339940257463946940535911189703189009913387737986377433639283792996676910109357905108010509979818958356371141634819338807986219110590344511714920669314556687684746089713315961148590767740926636641515401543607484732144552655863967280357636167566424270672859309271097086288972449702638739059823471796390187637998665319272377210947542715365592198011969616691347391139806089304327095062904720616202838061549466237663315459672484605635667430448622938173795184495048456550508815665956253675422258313781992836189729814788979906849546892212614214789480721112245764654772172463980905259511778499575920803598747924246844015083087401394666771905191657762813131168730102350513903183954824567878328620364051274960045674254812048226198092399207714729988243616727823147414129774617146240016096100355029446426510390373480837475814169561770034814782607347194213859611228098116142571646369111936180865394835926414511928161259277361413345018557325117010515563889611957605321054889881534885361555633904557527430154208326752490308171401547548815790026514431019395265582856569469924170079104258451502284578407506033449099771390964853544736730372163983736075952255169490635062263070767303889087688992758783930687441710752658801644949852212674188974252646742382829514419549135959100648598933636310569308772796274185963717422699990177035351021080213948652167125921202122652778224540769872451797644526968949623969256017364080710603571578557416505283559307814387257261537462801935260192282386987946225966376594224011637920772367721680140706819793234533891069593695331720116517906807700962215658228126629610215079495399064023779095307924057233157233947352290151393586812356009086330695364740020752280567927906733737144476447085439147874593587674859443444579284072346077374579249818406982695141396474481039337206766067993635864994944831848954032046096686014398935417181968250526758289374614007425808774598146026869437134426903424188558166222590664641022698743062516172422357696738072735359095458802957146429070718486134548930979962498438649020598426683709283951666565384352152418472374051287806276262270828852775554748314829619268866816462365744926011504877909943096030176708976499825414681700264843205813348921964100565945054610060662102141694460387486197535721808300719801722405968443992824409286932860350929358141701469849678080997156578023115193219298881388908219016092128192878420701483162023541333865596447306787746156293780383511728315164601594949562485760446798800249156632572338253639781679060644470345224893443227514737321731063235258063983406865147095740130136302858264566183466071280901671026654404187693386445982042897379378207969533155152494093553125859878874480976619642345084866507143437238070992320861265371762020536604832156025973304496417306636410465837804455309973333511201738996872125330306175541987632261200517703404882095035828629750268992949648910517399183692580493989548326231314485371000037782865368327886024432117976049766269624970904245354285473456707966909815741742988914625001514857204047486184675439540119459599391525226915964091656343787941607649720040780229102732209094703778048270065011988651073215515816277499550022040361482146484430750146098807614035477630439677403763842151006424407161499968066200356006853962597112855428251996807717719911999153104507362814621417773731427442067349190398266994141984840315149791372777083243006898468202226555713227809380556299561207975335680305450200419019236614140251609422372236334322694196393184594960379501809768523726591033413642926985532666017621887899352752550911255234765100446004052932910031327290310037510955558426309860355076730995889385888241990914438086439639710203032466730609513638545099565808252404032006322965154098925935392499889672341085410755834282577411422510685189643983663696824685535595113227241012960950628018149757604558034417251943758883771882744565025591575347378393858368258789570780369504988155038026849304125473820297545081001983862217352959210602159873755146332321622917851909567460563376368040416661442036096477692476445561842105677264857002285921618553973860905089892095132430891787140311575582531602285394463304303975112596324355184469998797166970949289074313155452030532153389249036440213305221675971248677369458937422668506619201579091665487711935115363105948657539356480814845336126197434636483499428008760501502562508055611609793581828774124086168708993845962930120468395347382450403796300157134221326642761464905788841761666272125817372975935203830421482048062598729249173481110109822651067063609763809841112799044724926619918480410814459170244508100801574506508569652019500231046874645055516993035378345634656359146387434378384920081908657507674311262153305253533361642156337166048248975128803143115777321462053583903887018489268353941135719675527527878598247392771663438354565280697711814408858103258964297487336880032849180751137565506741614394655318210839767059782516132873439362025318611631957737032133789176604064504804616595464727542187989060644055370644990585254958328693819825345754088352927554258910591537605630908887644656898801358327309154210793029918490016905841776912084409655869978513727318874476004061462010729080682045123854240041450793030919909899813099596914852635911479963260828529309228145586117445501487951351921155317132994647497303353894909201567884509063417547717442389085333182260072558659369124039802507266486083462253144084483434889208419160464910284760767617455974170296144995443853961521416071449168902230884339909201256189474047909660855222684858029295994493643278909629017638951401905467854642628021608171787955521598831421221448175370817258292620368162716126684038165713229791123581270031117509678485587982790307421313313247330673551056101339688223989945105174893201869882493264448497694421073848624183701438950004292432744555357189835000466241902885946478798681816062285402440298985498769757867801264999925773235200854837506126631261190420636516143806806874147742116340008209687092105716307997902525684894297577128917457660346857738865959868329945778981126506404771451931763861023943058735463169439583225829327461478438084925365267873208661916154553113990459974561495762595346665879218725987331552274187395993314210202901740643211274021556579645672650137035951758540246507376780793492170523199785520666234755957382758709353122004411017340650238997599932880198805625850894461382078135512480672034200891356819765288656579187291959634637898980177773735785548763069593448499464326825028471885931737838762449203079341133816091991656322800141005188594666321809806545802542735839008319907460964979165131263996594478296936180651208491775189013683914415422655576580986441682366675504226756923316270356610906340528497964271221761221459647419282454520122211445541627442177152312873918016014473111534823969416083160676266940915980245840169015887532553771491413903736436934755075050016949349395622923720411843331688474990794868545167115765881729481178707763929319020568769311108265699166324695799006220378463124897172804829263190260373263438304286104580780876455283748528393110390009077991747145836428595315700716749299047192258717619823615501537279126322062324043617845397435156495838724252851315840875494359012983722507319542155131129081556835101434147051860460344707222687619865985559834173392375869972459187250344108950939003907124600504279845164973288869256177727329630383613621787496432128650234356145842579240228336231942663218683800259889640093046452648003088246641768644291993079617002889547174275965744391723314724191390046276862164054570576371517101133459911942165164165752483570152207095344108746477965238599305645659558958123449824623054475918545126343148385512817968595730078395822693839485309348732513231918956131558737712520384930825560762659119877362863347856110972651695443630959591207169376094975983259762219289329634072230287403859990638901701348365541429078867310809404056423094654982187146879753198419124009716453137026305522111471632897370762821451986938145340386228984142882378502533331245045809095874939024695062873404191170305889195227285858837756576194548254100764751379021052426562114767944668482331925461049433865545367677762233021925162320956343417276568993078349688985558322596309659089843158812575923299183962005273521918454257288996379082836410368990603498577609458604202765262921246084074333434049180017051859208982439865814611494391286167518934016442066194337685929215135197285457024967074885711441975338181256219373424877637034741898955343637451153342485763506597733179471644814780509507261412619742300199247524272984360859804274189157609500644278641022688636488577575661423820653626083667675741705152545070481069436013803781158859024318055881738575579256547843906436396059778163332951052957047926553617346464044761420873215685477995547210076321637152120662559338774357757269625492166589876256139239827436833720630878124147631550217039360534828966383042269877693124440517781926220490688160863628662759540175598279301349847903411161848412550511791235289928061581944325372125612329791330300646963453961836051670892817672187064986324525682986799108459917310272658773771064999480399375393235801858086745258579216464669816735459117006268636435287796813388573379107335127405366233465552937867315727988516516941263147781258019592384045288201601785557409964206397538939532065996894103998832686163382059413463752918873938932327424602026719943897268725730937974127821596355927989005122545020015846998325674582628252592720881532441324023041537898323325595227424681927052755375189263195175936139021114905472511883257463755375793296747625411594969244777366236010916907004574169072512531882138506853873404605198061389985604716092916181750099780875902132840467167564360626072586262907860900825263210659453871625018157955639199106901646942781464497100387283863446872773842386813174267519070835474581253326457745010730057194394734626898319131839124553963258534123225494875424436724004008332766486811662473873405289190016164542878358001028403805435098022932412835368483840309542190138254060493314465252470695620422506076562344527373491088684540300212388868856289323492153612234620485362764424960250722722087880681577269396372258654748180015355353888038675391628770027725960386131957966487526820802367060764320507902933408560692608865346646570079450496243013891519893714835379750443659969100105151565011082121783397671056365191099180176258921782379546710522480985034931521055660858332022881159805448191361513620578833583528477729473314591647588443700428228093568801598893122681821030803796229011913922406015336549143044682783808296115185004088419632915152923340354205708973680565111493554398221639227239584709953392134273394275861754432383061349728890489092316298407393397344301527212968610327656073817219467010217036792214396619934130695349894950071771139227268023786163487532453162270806998690263988072814200112709460961843876909760403845677016575196259989970445412090044842281733984546983126035225435523047297548217598675776228219637348350049268500098463958209776512857425356416744765597166333379688754036947723871327016290518110602642995370076859568825638017994094980171945601860890005677239902315326570394416629932818292068650923045391586891326270821309783516990187380381705654765328732950501730988681831366732725950757339955756555703555709390851819630626570561606017421685652021161824466022645858442650838418198616988812498984384649576958794871068789660132959192450799408341986982913282530172706356105475044787037827789036853237046797094320930280333540632951895390993637518773724578760376123446865627629835083746743661927708017136259448028881656812541148066965922187926536848012405402863515687892705558834797989748344561022682069012955882782079811307630645131806401874940190147671539402785217586099720247106711766725428694183893954249148764421095684739009411897721115112993280035785387962572391460314074560444998245996892903329219916646339284069435029720955613655137488915726249071215498249099266071187600843334079647666542095583441673195901037296214900881983438542578686901611262564909300946762312952118159005272644053649025409394976610029747701185990436168660154827982365231516267229157472218336645749744113482476603494832239871086105562113122166545989936336752998819528392187636380435424232480745811353423448939108379216899029354324280461904142965861496363402677989395320743042347740423831978742310079992421353394442973716053987228140184995704099636341301432314054605883841083071429079293322823157432217086210601752577355445349056424924286464867708055071940070047125770083721003423459102242521617245711799447335604099568921265098197246005603353205617814094892734620274723894817435334386029783129981555816095624811224355955243082136677804773282731222872616122125369250494479537612326422806540113478414618720965332692680446835231295265701745968107330783674420249622835220966990332952491980700217634754210492574806397395619348436789204525915153431652263242152579229914643506869547008208464876406702534155178242404037235856108149114077171171133380677201454279036177586329290137744180070489896982111884243175170722623578850952952037981827137603188194387949652678170608909144868021088215333046129377681302217668687721419622374162563786971380104992685897573791239781813331084515979104132130023245988439275325092982218381214364885732327852057785370226816395105913907191356911413921617855858138458660043233565907327588173783765408521252508402923672889393621888124927345225165977652802000084691659067205534617886778803235720445560953107182042174644742830731607702239500946894970067959817043820289298413233022724371130325525322586432299345260803798305514072986990752425788398664237236070678361145922557241203231402450876808828667294826656801432145095992337023177529412632139982468393336665416621643393019539602359430468674933781142824356808158618754841054654852860930499269630390672203492439466127562675522460501123211361403176050363269578181751784178573764067910817534187202656110829390769197877888905330834893379443744085095036925156026318504318378510622408284780511035373521647924867078967138250778870234024679073285650941051270708211841717539402911763908013112362552138960362271647298196353590711043552186043360296197143930145509939500947313850878234041179069350808044817776497655186012830485117770590960309896957350733973112820131845939305434172901952762571436509631448529471287636447422664982815352372625828013759097307565159580876061828804564064982557906862484331389649984868896567504884511841205293008284246912479827679682616791460368643702300130050524251684562550599481391512672856068957835224317530819226392509150894249289933713124546185127090422620554430646464014365131045116482007613675668104573175668500559197426693434869331809322214803410845076258818229871258007629948681739743749645401031222866641278775439474187978523339614138931042876115402262037966715110534107898471317428584826348926441755180560083885301443491196669850713347464105823223434977580471185207288622335989150577221997096327981497887388072927996335348761957665656828805365924391053924931001901106173794445461380590628238919405017318873427426893940073911371253986975317076431649936655849371691351738568000020550297852276496484876781533834850337423690473190449450495515173186567711406025761269877328989579687519260093652738934987308013593275739694010885221087151492491657545864776406314304781356301447730642975519707575729312185043182909214032966972559471408805983312586706275646317494285617005169504245233136608579110672066198379460180216691470415318566897885717169559043608272445221839006277554910503861120637825403530522902702875023823626648223000664627762442966088459455998513135742212500700348160447932364869382058029288854882126401652733226055084156274288403790298187576271363745799436311225859450730111752854298146021926871232046955834047979717912711537019604571393341413889914013066853962401973950032728895309827387332175696953093327310879021263466625439602698001531254747067959196128166688935821355665830371026350108734736777742185125423540867203776019773959354576525359984060344435760818069598141817214163332019930155098036239808595060170343402087691651455837305815869850701677339390942695685686412605605929440444141210070909938497762238789218300567070174043160105104666268231193632610493959239203775376890921652318489579350280958367906942474301758172469196820161836079570666569078984610077578045407682916980266944979412650527670741879828167694775040509050715415331682634114703898902868716055812997283987802158903101508462453691263125221808263762701537881220852513277989585473163343041112360397631582351534801009541783679014359589436631558449463973228477424730929231001568275885564615510081866374356342068035181845303272857750470614528068312085377147854570256855819026561596919819045700994857234016666052029919622596372276391656413667398888951590459952410534855770730920059637166505281951608198757767870364475994120818664116142305675565204574586659480693973325487486031209149805472886068253911982723328122832374932630014118506139610174955078196386850748750912667693560398734324040485597254483737852865472989600588997898246047108779063591466295201518347011363752659542975731430242474152388919262452867359349542119733653272194830795591888158218033904930923185198053274507341361104416463386533649980616775267149584631790331358277710694374270116935156057120087230558479138477291983879094936849127785191030126171405093986241612144707367636373104701731587998307858145548370908215605743165691288055888344640285951421948238156578468776860940762602789325343609362999982380298171262518877355299120452495061429245140759830726511257626974587834403257354816586863886301113288578664164811863805064438342027608552304136381154148961080537346067359153549574297299183785640556048348633779949090651434031912295320802850972717149031404511212772717381597186766530223750900606792865227664308662084902494493130284951778870676428062339678870760087895786957009602086453592640488958720293759981092193310791720755029799632234874358407091822389708691582159625069125396781234387059186520461852481653845577401326584729684794878369406118478705966251483665246671046538586318732840174336926489882600369721026257206161937839388159201976832536292054213169054391503880366892397029175405091272430218189854608623859592593846916735332297534673961765723570043222899270215322427263726108629909591358506426609203703269501332516176534571015546084116143446443951446513245923058464433849503031024692359969519545411230459819656017086115932687126263124455081120049584226876221304151773646613820911031158820130004883598990782450819761888750868786124704294313468046792261444282060406760506049089075801325057358848472024395638248432646641305178303723394449632363498973196977860963748313865750049569104483722975303075859409810552378921887916980977926722053565778526995849306449416073292716988916386836089003802808186845017402435783695701117430438256112156796051009893267375948556035784044493750413035904756983800537895570761599556431657508661033808966692321955459331236256449500230220480014865406273856053373232660576094172008970802768968825952448097326472137313334034510399769002753436086269566971881298194031944838567081039792212297771102907927967324875927935286872512369814510682977046469657609209684418382599497987429563147420616825410773017739883443776802162478855727801952088172363452006404341735107040937044715397028697386245679915890648530209802023562174145976681316317635040617852016242074367506209285932758065533193473467528512827694950078285347617416330345237262586146315457021347137821666763033870296271191131705581481611723586541598545287967626780148799564174417156044241976179731830560096937169049055132280764683845089201000230976237757171735372966572595385873192956483659658629873454257806212386199131223185216760588185301693157529059899627438286108821539560876190564168431965669848393994074832167486994380571509773319947697440773051896565131026413566414608705738587652903038500380462898020910887416459627325266722466541891276999286489762484635643059595920779120787425264666204816307155700342295076908606469582292845350476486323821193981613214416472066075341763343542195571230319242607316490008406023085710119246688963591285330957891070907737840540716251753041415054488328129211162575109316236617221222450284740536019042425555288995522766565177404983957481485690204599716043137865760183914355544633679364395647365937536904782018165861090885103632543287715501490154509357849942272344015508207527529589782640291617959231782685793283442540798428890816254556828542392610494759849025297117576798016081752312299669544502180374265156490840264225392625684442606230053371151876779683450142732448486317086628104581179797516503326182323904588810698190133517674187191136435041061414685163988846888563627906524479132267187811510352051974008811051581045037359419298304724327429186104848850588653622331554845888899029921264076450068200026882692649297674791654590295613973605931302152586781246464765617143758779339653088803008204387604062245447699790693680250940688844503813284601831329987455530821514457068639449876576185308794216128265261550060223656950196782185837302529283371620073784256884106642907337686756290185266118203226968319591809537350687117835930368737385570581137796326882206610761874959269529999849802831440476591718902119607271967953263205882626131815080053593092969085316859711304842565555129988254224890397680521488192256794152425501465771854974312621337435307646577329701700756241880263021989283741218828478231088765889681423239593443036641935005366771405750368764699851801105691256615119152313060818942525854225456054010627865087138175602348235922678485213452727469696871578956002583589535784606374325955765331699371044657929073034561688276638635977179582227010500944843369461928250164508852145564151289395304984715008308212148120224208761358104412487607576484276708186513243810568858866640605423809683439167603041447674315769155337069398345796666747639269885726412938818034493357475233056538626357512694434138526067519524748766013327529171332823337305833222542172030157393250857985751511863845064547714462040428182828924275880263752342939534523761865517502451397265271899426236683617487520053298059316063473211806703862211260529474642400250879324838759186425934206474802733678150201305955763333473981407134592176919149408557988947559482389772274564624789116026507509284079301277011961497213061409973414631675676551301450073540018216719850116035874375630727865842826823604660998717192902472982184946005846542138223165708694127397484454786577878272578928005851037968755149183834829405379303744479034045324901678955623658241158264968212878267121112874509814416055376625304599601204532639897676726942490915632924466424348495038770566934562481173253786419766482865227893135522547978736682943283701711939820825399172978827702403817684230450571320627802037534143468636880551665888123522145093277805524079017104874376194410993885299399173165727721137899594468151418666279229943813109210709305358846141832075270652435745817564606005688354712014006673491688432268936376820694272055323053316049570442278159182869705281348443337010065737919699448074156937100701451174944426636084287167181550086601888425565371582795988327071787825282536320314139477071295973137414038288826850576299229460104355705593049482472658534463913719642116066782596839017856992868057175479590178997821751079013411727471280658519758987362451892493400930997709934819948406767910494958680154464731431414352691536407442070950385167558191049682561115478098786867852580963724407935673743624271609775229017603624749761882940870951356802848527683963231567555629628301510209902903975704787305136097721844725832609579462710461749663819941446497041844521941572693063160984746434499171483551641224690231572543085329544277455652539976708021694612467054048114655767522850663637970007737503168071987338585797282183655764332032649731608631075830385539327237873387404016986413981041557103700990170871834568170228236845156472405691850672920165218641291933122811254519348096825549166579597784759687583619138745202114787620328095810249996611919558606731828207449692998637352655577316057013697528472698945613608825600895102198017391702817020837578206848503967641989616534526284289721173952664742736598015559391660398693729245234271546506572440850903643563831716981156482834053548012650997912576033175756932831214402551941391063174129311576494507753582024752643265024293831412613008641682691312345071737430287499058516511271672216475167639909493563587155412288357450276196023997984087101745103569468465048785843420495996729666329902644547479870411735083492740171817261207126294902661109234057879014621273021628491650238490969347460105639505189348301832000882069027549555823112769824459850384175179329622023715442844773586630243784938811358313492631716189806575040864722624365155757776923204504074272238777511570452344945207689302301005842622920650062519564885814429404870311156968399247658556436666143447834642610584275341786299121167146030992288307763684931902110158637982162067764185650811821373782491447165233664964186294656528565184054050839073445295260318310491449687271642810845718079384727673258130873284232661000013329162173864549303601141866045613660498767192510182855094143846448858868458965623526342788981248756225378347312278602654710054699871269486106865329799781648599395687631760618356098550086030620624585983938729441397520307440379725590219913442106012615204087315157278194312861421680044256958098304733575181712341002258907007917652475000223164123765318442847611421796308121356544986213361688770691712460559724347231507402633644061407504117938344034382669667018143884389691847577332270495509261327472631109792004294561455212559542611487384594208616253776132344323954786360591321278866202146130166449682854964069400211186384602667922803024624929819454177930527865069216613470937995742821164162014794344837494432260108105385879897393375622333325346007735481471955321662470989013940320933194006106837595321162405237995430429578497942933550131185977981015866562131031167036740276999689182322447791376078166367394041640764992438182938244179199565653138086721566405403290353710920044294051483762263391624356754013391566365622542332867204917202815136491428171978602997656861655556153759976163915297588785944195317754082540768544779917146130415462592033178334443358061452427827010858515878361811819307276838879697795117798695503189741045109814840447622813623494438754841935843770484132964930503346774176253401844629597391709732638076541119833099196095874765855186087123502931302874328979013455850235893713392118413470888418352396850908191680326471155454170103306284811634815513251772864246177222337132036775360983314223134384134031078924410709252446635357390156865104750451388519135552529407683478780246378972419426905459204406727264221117615582071781766310360663471445021255669287529167550571589707147892413257061288949687154692950025822397489900438498154673640397333695891498158320370233856139870089540847084274335315746021920091722908861600432577015538330622217013505546771628691326963965616351647421972781539793471818454751763781023470093918637205999922740234085499788061735556089071793356888150383725083683581997459552470599292609130217987303115595444985117444253665312069402195029210836761752868480867903537019198889725521230444444183873000696877488649363679592248127001635521419471639446326620864753759495996446179121251644480664494531487746622627822321091981933194256722341727883563971507952883842160384114365854839367505719504082445542320607280769678621877777363584386678239343115149920820454160481392257960112327245512936883442481989649836645413194378708707392123873064133736271176739644915351044292021973412816459220164276904446413482265546330896682965709877675890989582973720064956016521690967914354966464921458188256448538133947317982699454133132456843828052752038154329010218857198924479686199112953327299414999191615818043572973604663690074125686345165403456472028126617346061955976144902479123997581839106706045677276775754363360314151359247689555911564024747896158025877376381537132006784140567128098694212625099488738986753845371466837844342547319871483008829585161935575084466013773877955117771817233480199625231509307042881417098804762938370982729879024762333378815483032949261216078185964566208449783376148188956027413593688152741998212011731000936122763136154685213786059115386702610880210544244236713077018446897019946559897839898503312091227895399684683458417729617907645520367984391505811741177268619550791509627196727078807505795470885552175811285369382768299600449360460564011758146791586457478635220720170806366451100886063821996404577618432102304633795893807059534728089468243459132107362932099517740298121477453599527375192574743943703547289104150920892552283758452122824842447978091656215301572566417703728462173521612521611764666042760343216621700065400150319613005736422654104926785600705640013297971479122748383065369318266001757521995820581056868939512239420597239166822428436662557219936362512216496318002426160210294835101073132641267068284070209299670410068912601018197739523500834083884978776112693764913788099983883602486095025146813569376265520229270796463128246695840605216798781708554093654825789343741283514537730389105590519643317915297372825834941337494055902909061501487326496318546081483966890343624426904012665792387768312122393204960048083978234971790444143917936508478592703673902532887056780027631345972233951033461147158957242008048287683844235125028990538677944847564416200059501220660566900376413241413445770556241371312517638488466985101066347626364234444294626211285966144069542187418679415374099728836062094339014920198213956838160330135540545765852790336320753471090999632320821577148861364642658690885449206554085196955501905589207342882625841940803832202886340425057719361128671981506205170915425001608584203147828036695344218149007275248637191441475412286526217353638663250789689788737516575667432468945133128565205828827904467767334339133188101677852634812838921420189600698802897614232035457833114251853299351069711204782360226383809211698179229362467202651459638977007308593463279696243405758419097123637022664110492610961929922888000788061354198933577693763439777752955837874190561816506391741933862467477721166326216411107402510909520923274063263576210076359064348254979292919160811076543074091756188455866574373727405400707485443902972337442948729978253742036791809395049422342523684251652169997417298595225727183287822386118795652936594516302089546288553259808038702469598965838578739879480015632448804988281659087098074278398766455276642648044591734037431930682473050087755874244053171385870757938355583370133508892363720492126194981310654133690598044732041781688468082014362541107384104261078682077312693627425602336581040215085193451427772022073477705969403387223877578440353638266389849559881078898810146401725880171553271823421442292159682256651552098955338201733580054012202161940295846432349356319347238500049152282493102574914983867094603058690770345846785515393510331194199820078514385152756742180944805599258381283138882533954763339623351927359948771270259070534910401440252424203345813667938091064572619060122081780368780372130718631001546005753554594679095479415390699480067597959032786508268339309395388702171491119302538538990792234708825367551144295351236314320150438534582493143384417326997376841515002945514014137470333102789409031536854613420919565542920920276452615830627871497154388906838145842178310140349653706736391929255165671194024236392717832942664128075126945999984829013833040336783433682425625852002759810735517103491144481915059497749615591788303329918441444126993390495106520310059825799818453784072866770292171841337844085047929390239567666296017010819232899799691810970502162861502960822981107437158903349621092128136113214226329162758524979161440423840416560725249768425513421931674484748020781564653774133319105191797529109349499904750864095128065877554810027595826459212017270278209339392805081160262048432442693634504209696274776191597437649404735429176815626021965641981147487586822085830525298837956633764774286471426669547959851663626060546553963290094108506740531243477948952694538886019399986748774046846232402736734678492381622892001633084975555433809989296917085005179642395306974771952481353252275462302645110129432793820098521712129115521986269078266384430652887553775382576274768841699573675005561750557723261017745227217946572027193682718353227669025054727660856358617089480172863296257519639078867952881105950541777592035654488286934978600811456735424119265598155183547995462725160094628959282971794172893784672259171186797988605124193355869971273177382812603190881460809735065389600292260909646569175616356691454466884375430447201312104029369802265548567120162454719292536951303169673143211608079197709809417205441616648777950671055748091466561153353432771474011334624130527908148831689443565675658014604174185881731808058453603850475126685267094869104738401056830137115388019193114565542359369968659753711243286797417022807586820375495703690945018949782936684839700160554844435050389039881541207416439637258054151031817268975594395136848091818437006876739508377995770010630325406611011019965849980285833613507006243525583377324331270637019685883201830025251863963418471273950766039955890598089102289341796092902525838745803124527232069063982376414534782674893896110377604638318452472084622588911130750541029574179129744577496031337579147626619027862738839480478587380376080459008534978989666412688749751749619945408320587099564127324579067481022828497842806003767934780506416832459589687295908305059970875725772871479643549283730345583180389838464393678001385470243341925553205483222787726389471127210826113970858278082723748113081977523428021291142983330227107794465687763858310849817002219894381757865497605522417659719868932910518676820519939088877918433824587150612317503208449398999657484270359760382690187340200584922572182850869573169966333367605361990717083276784276711588292514714588683380856277465730885575825269991600521463887046524774660436134954168481103904173937994954332350745333310461658196820538094826616751405649118042426810537137222808317492965743408521651309254920744180862441475947466139215789880810855482421518780851857052545049533699919308499082243990201456069970162419803353292625825790188386986515465832521160513903011254801655736030028551285017939596360348973832468698393979033963336482203591155813188428769040430134507167866242665072379751179495007987145722863597594626251291431222229413530143022717017752939699987122133693213244924924276918071490451531140936133676994603903933557189024308554969681704780758429054157600389105838174457380387954441547799454077356422452266064658685166907234686241039488452791217200499013083316134272914124437521018868532757351397809914753809437431102066586623775200928745722856439391107017136544598640268191696643812626051085656838639617263439765116010656172401829261395413534126502891718440479834979027548824287621415736738961531434365426458925021611768735402837897177119930114726408685274242329229726465900680542676292514891304759870915072692491327313001472699312866741370038536783595587361099146226659546622094747018291916885488945740826731300425932347011538250458769387180605399917713455618775194489900677213688337458606654151771401786727004277078622726578907750085707178946396919016432226755356642841017628721585553101091040356655582224183942118820288712828626900712234565184410436491979749077384273470059559596320168926244039753506985347872821721964733845963694110638806193802533140481278475462886889888404842403102633392530016202515405258563987018589643541939599861382902312900209471806332129868592655462705233170318040915356583120492406972321575897516520126442994499086337035475444662395073321824005779322591599281638124001547836382663037670464390832611166004825178115615107575284025924490794240709039191956090780445392440856350368113714183945585676064230095115455428804747069891129713127595876289182473978026464891948687712159788267034549593910808467533263567250363096655351541840748975549095855990549184873925782120505561785741931639023312327188948125625592738817146478852603781092719273699567442463041806762554673127261462775797377558354518532009407769510642455612614122494972828535273557319046341940461822307095759365730286797501851497889561127235373927928565405686514171328848326878548672189350572084123596628761362189568740713385894257060124312481599738593915099926896334445450959598728578964005459934842441827665875943901180595392498916662862745383933516162321771033645631621720918103815591093100771873132799206913063528062376499392159542271581742030404698670057752335902588900644040853488150816154736239115883531496635375460494515241192984029151477172804529002052977898080653568849497057595617413855481152208507066903793171347589285230513508367654252932272805708286094571388880901150743570041431805816755199992626069104448015435506379487515484565928285460525884934760765993435458256563912650860612944994866446062504098074313345883763409104033477504240532280058156355524674946202101996803061480388950770618248902717852715486299596648592670920837091177269510070383761901749093463977155879428840908274051392875842722132525436079744508616284001746018651221373127682409498462356302936404966290006479014323044067430110388973660835080484107069074067432404502737151005691614914423490905096753592454774863979212084758065138865040646625689131552363374870604314880130042115792195078810097013596714101991935470362346778302056288030249949983732913442580838587926953323662227962504227865308086994845497475561917925672475256756651037989220706413692257213002583532492167698056419600996296826811961589082681719763902903320061963355984747466077416898667613875509859319224221555116898124183294016641689766048760489310662388569214040616300605090345963423498362737356014249607078078326144837182994477633533445556784593491365383122668726380062499273562434465697020264422466166469353580607525709761694376040896111757659651810916570552463733021271855564740297658507040841962094964137790514062777965129674597183958623685033328625267846549134136961448517850916321227368209655242637378621572327227844034716037628016610252080635064677290442950096005829305752528158164760488783297196749264448823945750640625690958915872811632704007240837416224998257263108063840909508247247945122536172345521833852186780947500539873661566188252968061857761027716585094622474507963351010804107705186847163049166540357558650945633567305790804614179540165243302870274425714325912606504609644599525236824504965572227527692139570056645069630721217317442701621001988356476851410444189620782860581639395989345765073037287123227636459846311963339467639711146705788844928338534564007342637019493879612022720986372025127667860247276123927989874210735230651649543378803714156502847351295988640149908078022473545952777773140715901078986036398491974699245929199724263311653328872255535440513252428590605047537738809326393827620152166902167750953869610953847554998163233199503381541676694077773674915112856923057555934999996625844655590900428864591685840847814270213834685444500563262489478153758613596157992962705580138820251831611025853161909751110923770070424957350287098507305725420415417390812589551209494518930755688870696838704924817041356657720931668863346451027882570725022520404887033335427412953991224983387020557452766127822606290056187088439729760318910758277168482809210050968835419083462082707071818921764664257487612825305569885615518186349250495035593643372040930521531523880063542958870455053241139524059568984069727209401852809095169901696931767819158279496764673261336617927345663025255224113467190213037099931526094354740528387363858906098099802351557136254070121075336853529094353724647852530496409260354225795183287814637042465878445881011241923861546364924491675083123881141506709511687685164621006958646188580941499018634076876687385315708881179522917381490393619322499275570101898939284031001771260197122107772466617507265861375543108450989204124425995181774641525648711063234137462698145990296614155712949394480549591544200854278482755860462927637307347254453862628501281988125010097791524263467275272720322572420278343097973892954392663379238810799012655979956904416721663440047293030592222848296688385366841058935263893967144880823067832316893788536850690941879715796627299270629988804700329342469283588038192407435734739250666833721904579356854680789629983262240907031397389190119020185975922314535520873163292942803934600043061967584512092086304688353083387256880986622232505807291489846783215323152190579256734740881374378790092336637106553378965865873467520387631093139784248996096314066327673325295597465069010455101250335521733354746035058075119970941492899621351019435896491238225873576542799176495146968955317103566194798584399041207384259755522586768767197992491630818911109303491357827881021252082781012730611517860128745500596683410784952428926317207597393235634113673467650561709439159699205167230069444111276818226630314993869772846958668759311510944334900972972785646500281016768367533100690442923264112720676296795024834099285978311486876057830021914970661566951863652869100562706971729877106350928526145491013003216849946917389322723961387061054197079732574936118719440498413252262067004184187729935868260708532863988821454260895803904686665934064155853351628433685637687922425503284973633938909460788865297894669430439776398317790811946440124335119495909442885414679169653574394422239385198913383822010343421078150803718136532720666012474727346874430735731722793224748620271947788930817682270047315324869480384014249730370789218855088575410100967665451877710000937213641007307222233775243914165090879627688969172370882478486644799744432041720044600976879776476847263782088700866242810440509482697073424860600104591410464756508260256731285350610039756448395867546640596421118977549693637024582951561271668999283930227936335416485620255206758748923228657499155037904951135700901406671864339164054729772578279252691785453473234036564180744132044258932604578333437869763972160291495568390575543119938672979259201951565015548327358138390047975236374526958754517763845964485800355603195891000350463755285111664300509158707571598589963524097464413549545168910307696103072332538443903865913400144903884588039007643515244697313853370422217047348778235774606535774473098380554525718005921388676699096899766819307970983135720193705456595910984421965465637239944213841324757127931206795692639046372149327822719403821819509289685739973927935540161529148930725414809152199968346646494786824723713151469568848638818277345147321215022863001844538223686049459123839677110554507304448479355434864660476567211556582822225162741419060825132394593603573423305689846956148919062849723833533036215966632253392094988127221545651789925479683527377710279246758657360795873142051164733898700317040104496287884729723386843810758630717263465342138593632169763843194738295704930092326566116818511005508954149152678760347501939586150598417557632838693473306820840780962176319665361479924224003456844095783677661238759097874500148184455497182698306172735099234251019677173386428105548071052815211140405638884139973658350706367208044108766366208384701329137634586115683962498571320071404239628973858178743267387724003126517620387849286025216916243151626033708719663163674144057788299696196867441095232174347551814973290741681713701401648059102077177072168751605054708892765391010803799165128587955556940269575632491678245220291124419720740538263168826427818674566475991952354769959648443395484319840188368153601702895597128299689478823810731013478579345639848701146870705586415731090380364222607520518795519685900355617778667708375436036414727791416468602054186764384947588996996892120696032641121581731471107412442502124346633169285801907392192310840004993895114297369591044063519718083741238932155086406913149798518721548468485139509642934203317109344409985072652301712908629582159401234752294917546816066350712871978261315447747945160221214618120931690413457752391208075530895722127021884192426587529737531291439118756884137422404002737055376918828334099690804212255956255149638281513529888594463313068641278300070607012297608900475631604044557211528970067161632444305701500413577522746873476160786215162373885465207131356960918498336233952207612569303059217281245141243281225257040440436415801734347570511312260773829411935493183188480915775531005378211015419882410389485559622722432647110235835485479482637006019747602566492070614491608375565445892576401231175825887279072206958991190079038098193885970966179588704338078696972693218966946233005422234010274631317438239465141907110485622683976791254186491467280577984386191786398134341962102398163359222662900486312681285331103364765983367913595116515204049027199015149408617066439416796454974280530028737191270038578408310320295050520893379837229679834784149937481255399605181605157678441910096984437573892564905582163679135486636015016619781531750072870788187572884441842204199361438427267036927569740431260778985611021662317730912668730866013018144350868387537539698226295835598534681189710161524423438379544791848357173327359256748964957618498177205724259522073673131213048922487511837193379617124848489887052724825969127467513731152134852768912442679973807609161670007591989093483807478253654462266398518703578337189766373497346920439330107210073188620872605647090718631411040459260074589934169512511003233079584642658277504223941930331362253364455683994117810168858626330140155952010646560965602332622834756854667180803488979325293083044726188349165326518645238636189813227292560799994358952000803330586003003182904426068736236148148285681791277264379865919461570268838320638330481585453551907160830782714362843712295133692581185885658761290328014035899533047824529596594747912900849577371560031416088741502331200858408645095326913491263104567219938285436035204040390816379691165779884633769478823285424736397121267074536263404012972181827221164239802550837291796846807772041983271241426887359011209415141424476719937989168595084512916088282821507893406445102989596289181776756896288716872364748834561633083125350065320638291725465834373905585606268044860510063766732182535519171498671847376785518405205875494151580809140296167363556801353938063289894767890055291876172556457404908312522482877418573912689215858126679296598268212699875655641980994604997598701315759122453891040575318535914530664149643991863614660442085970371117395649770788176769657956209954931305860654651054461465415199365522811834607710856152268060498427630637727055918637669410870307651042755759889743686757433009862486092410888252058423096125962597748306440942828702355213216385858796416915201048570510507572940922848801665799126907152501487626228087527661025255258682578917982621174192939329552078560432302241279769225394053862483380679820933796323376977353618367838078367318509652373368449673022850236477389165420942588220463361560710559005370093137596558318394695231778171602921515485799166954953407706283121232230909290186401231666025957661722975576277298581205670186665774474665525669263318181897010967098560020996414609238217501086602678022007458416336369704003919747171489561821717087298615437892387808129989439576112118790849621423765292124298465853359055022557229069227513378700840605486719112298996344803864845186501452390633306281033984235011295093745820264458701044475286643739295148604749355035368436829925311405687251485475379674633220756897485707834761354102774318099029939045143761571481739715145455266695701920937734686296498431608108889463370203794028170484360802385914261905100134728289734565609253344998821110819314506170196395290392161802254113525575298910061050700168153811651553851282766916053460128140455045456410297620724865912897161639425678790431315813239313473636030623064884185479094409197429005377914786360387704150729995883223708202487192066377422272110724564037014417591578424449967038371819576888191153808137308858244489773107682183201133664214491102058067249553140170600576429499604353891780172767021279898458686385567680540842473896394139020431262668970168358658043575582118354370576573341494829449787420900106578678434062603803218162393264763312214803075926780318767562646111083272899063977390827433924459429439978713133161960117012574398998872633622420743873540214182382509353867645139475936575006503549941913414104232024912130143263765630252767979094183956965384863213826685539539753257014632659590573918424910648637951840446121335729187324306400214047014205239262797004596411065566150658515050591327891009440105972337232583967845250840336673139191818814544896401089047572442043898999130890767378173315800363888766262710974564816038560162997420549720574150655340592318927689632662450589480005452321018127002726768473479355205390386817466511792259289707456451598507007098721510071358155426606941305049401596562188685023397600802498639121890776183315722336757766536887935714346206352118808713188055638298204031745877669815109671326170809278214125047907062959905927958535379914106503007573770966781621367103811654423821988279536766285573123738504739174667997047957226558865603780178996983446319595237739104134766597730665427737782227391476443644909876250986678240072548337248178510816252767509769564364924610979975498189351764362770521241341856867453642277361887507038349032474072608926961379623720314400987931217003284035921648805985048431200020402272706283409949119431408410302130959259567339419370300563764831541420669408402883981617996781644096610791443029928126995170089224517802153474620244428714716946067715411566720146198740989642765277546261704560248866583646652232851489206455924437047112303871023358107852943888438397911635781316850850644782294314944642524806546871495986294954736380949077127209052573263851151224750647075289795349487677203783718309260104706552823908340720902849478627661741194809838235716521415296736323179728482948296906808329965977383490733561870969398350226405320172623959208277335277425627818717707472896045429529744576583307684757545369435001045382418320299660605828441621197964890315537854257460084440022846589125392411014970132590227996181364443681855239411300425304336330006326938008707294737304001340791387058086310595855617043536581503939664813123793067647549449008169117497627899574010797867383471304630491307912966426110031138603275447651926255110957442005376140810009325922929372643622624448386866201285922369079023214825575186236822925803685940303322378627413630740622328863445056297761809103571970109192260388993892952732221179485308138374889436007776510185634642082746307196826069559236947163625775085137893925557368747662012787148814695781238267861816744511287800644867650881220382055667879186107374356297878163489839196117915060604824636537969901072584578314901063633837330601219912725150650744147463082385780756320492120855257480109972529805638777961266013641242165098792792263241825154280690050865004253374305394106234670330482766681079107425343203610819973962668054183409140198103107823834404660547328250927683900987715662855316238332977545097185256780955454849466441913068770260222895338084116801791764060917466390026823092488972457527413881693556503370100508776862962490080990619903848828130883894339023266330466351693013406300862594873016348001354222999622035405641814796486107457205806569649928655289484799925644693340348422376207281500945999881352903063630005939462503555864400958973682619741227232787386552364523520962792808131607137918263853614143197864834152619520682246668930054138451232887870076194767153271372323624729428593489019251170335228891968745227712610109609823969652336910170868082587228741907055885947073879341408448383590514248397391435260084829881754578493397563202724998164873610690079856548240773531270405060423974251237702107637774764825700148707973961410672642908229153472498492361578160261468176646245098500767082753676461835736382962817858498106544811970388905922838451101786126052652664838443515124138485176796183113586502785948394101160214310104164374086906719931781807744107831578919367950516111076553572433803644558962668094664195047060617382422109340718258670655833777043486860597555602233755141659538122994167143049998339141612481594177861695517680590757311243289332362115962412127684115108233449441203794907854954404101851614734400481936725800535965270366453908158810233529320201247666724476821216362779854999710512873291353008227448845791662555451983885407931444972499065185446945711519170422731154087341202386685366582726337724045381292192224813655482562331311744304134416177525128255950196572980993521767084666401644353202831126796351824582049474187051461858030129333704272812244781501801667494589495106821015526374206988428550001702062023396799362318752102519686830984629512352560164708111828016117502695769957983255915102578519070765956115967812035127488055227907790858272924349246387336033930212571944784753362072978633411719620181678875786347027319010073914675900004213754895893882411304631891457048406325230763403540894523164168677494898632295138027475772620943039732615944209372951751907417431534388638796323357774760144369002272213453401470113995707381130550232522548028988546489776008576682474063313406688278079986663479846151009592339807031617537424907711047008263279990119115642996724716279793873408574975578491347697938628319069561814434940732553356607994005143675655902119275191991953636585948043116646895715001499959039889167170378290147696309794282813219935326037839428377233453426306968271495999746980749295609401273060756426127875102150197957412031892769735803467156198031796759616484102735830931151314375480537679234472339323359941509329581841074376174499999256806651040242418709059130372933563550141906886009991807476441851164145949831271415732938521350987010969784645362071161618572825823178909879285586428635272693545745309449380163838868412502834818804423145643494617465204084416123942033814225423440154418111025918936953926249805314501948556136385104103853434754738631757446892732729844640233034464322298247849102884482639102312679845826582200985938150976206217583033270466161907505178926927361631799294891670254567082149740040418848593051420414395390778513075829694974784309792159584652558002223760568202747116579375953471626379570953441458292867728592838209091488163564736615988135387692172442863467574076112217668444090381994954322420712985711320906394993790243798043725058259476993077794888612267814188109631485298056520556070753246792538107313248076067146881435528066433113702231982323291733392441754521162353728135101804174604574089891657643630801097053506868507836036996492456048294444979236887229071535373070661067727104443689135161559140713190966243046143132724273024347747782200878811108916793235898684382676586532471935318380222549979021097689197387662861337912985316153773846622272870775682369748189287869015156801526886545811038327525934915247790691019815049428663713244572181430356324868889049079716339093677734497019870551572305183366983224885236481646351581808887373961357552594568378240363855309381072487936233809999847812115836417089976647140153498484868971959957025838206234512059361836306637069204463803744960782677438912019003894466077010644102572323257522426612347695788929978260797889401134062586572780398712400033516759281048764728426010340213274480854982647440655701403016153043581867800790928239558798653909200169299776330515868383713615123057086590098310233058363849725797463539181234601772286700119377504939132421899390295398589578821315637738845208499914158899760296603666703256297113805401019977492445216035380605225045669936310566632858565195702955950021248208082911041350961986553776751936859488441609567345665362068116274456052751479786089635387154548887636928586654251056903320899207633863092961392139878798397503054657988321781971418985613744397492214881222690560615880849042645156034305403164078566698267373380563667429183059985728764373570665131066821147005753190512586839303195236520627451994180676139075329629372978973376611979997045291758246000007088048367577361148087558765640273827535363720903528159290127398259686799247674060090167968796504789529761554384704947710370086874097733275529751432958528551011407754248334738514124090132192060603417004455195091387833641801264387960692362329493760570319927282228642697509585343357472742564350464621101334236327496108728336279140365085144263622439629643082084656353019518026278273799739550788705110726991268220908870443992874516592119642029519299324498181987292159733014955608303557502859275693821928183655375461403524948126276660111032222834901799254504291520723214442232295429159201689507811986684637151178857211728537374924031751455292444795096399911829328828322376321128590749602918353684942627205169265619756454492306185641141954699594313069322114560884324771019306725411663644247857963264543504016992754529862602704968152677328710785595577024944145381494016090662922307999226287889088915423610879740806631415950772287474360112227889082017596688075823364528729888553663605399582765965453285546453153577839902923113423126275559736750213810132856818227774410845117939116476647258305404340567903743017938973668949629184356750365588480381793803282713532844367764944182650855313883619830233139057325707657343281068053281764599166650623212885754107271110677876789820664162576189979175237774389543096328929933118717496643126039362742477612625652415281739426764469599752794955228057838607851872423685142095363639775516835818208961971977831743102749473724663816979944787189818676061601978181621452483421860638776777877085315238383850604452906403930411718378988505357397855634926597569125561665937070761172329678803477417593712575633932478830158295063154581986966054489863386898432427094782484052615463108617298771760050627192575634561035583831358688064380856219669294745717622047230229422191540915369375412184408341658451322203143532665641399532870718665064735228602236586442028372743884943070146674744754008305161412768709295983359088116180994652812900583664470745490481111297673488235935693834347340351005114935903171320052359244765324423278650979921530039025042049094574204531290339971846964251962836814879003298765585874934776446048417683647986349872485840357594642760083492462452063962577999625534220424657208673657746817046450005230948339173270319891181122766505592033599118691099967093688756343578929768207964145144841085882047132922351064866924707573753006197747879672436209398124355473626035130258842758971879906696361961783778624022356108064447680004762251003011785595319882677263529516647149902346323132763612434772688285257837851987536264061615541958797602596374536177535117834770749273167987877589335030512431746952140994494630531564850602433322477283957921519889387177519580556549274263419951393614914289448269613817312842891863247912024764333584737973442099680419733917813183158688443537970784030499578507463399224927702399898763596122302286983507338440500748024513782062398914749296963579010557278406851769752620485801104850697147172545826295895446304595197054940058076208154765181907282118481588309863938450667168451316511991535289988447467961351060753094979584821472574156164219726401801278510034168499987571701019159609758255829536049997948655993488508829656172869117644290267190331912644850593875545275104306217256595689454410716008397477265919121220821594772363769605528203166610190588918452475286619284654036572216701812249336913580013920514653476578850092069719554638538622762062910530295662109658978239326181293705072023140123216133089772621376403267535015227032393015156325774838079511786486004940269859139407232198926066731842578522235450337158621137880155581666361312613261450026282460095212512331667207751137776175054683747400601097949924682256193667515733756330216967397186412506570670959934188072075605903191110501820772919505614158244850930049307442458810805399165057396414156772844308659455282756177302119571576851208638210625004822413640019174823261233587223201007650816456400621353017721502513091295533644679432020699667602757841715752581973528029609196851141325875995263650364323589274590910923947250541863474050615098445785351509025273453465432717967232529404154213858848330288217328003862731306014203495140701663089585560538919323685423052072005056895535193426687032942297764115866567879155501076074944866997705526108927275022066552657438510802255180490791679669655841272028619126935123487431007056910944692313598718096961506062206243670548227483937161160058488410498283859136090918997429050930860205183782846479812449844917469584789187773763725681588525875654348058034230065041948038766370367928035958326053087263398316313477175811983938568717712909229594565609937301584499922541564198874812391866935088308546945078978070639009223966493172502599874772957053957123660356634122631278577816490507478285266419578154014293221307012577541086574810430245105999453358409655493072351683853930410664812063763794958711180355172774028324073990936601255949972486503161468859372703981998208340928968246965664659776757287610294185028269755357494051033016047447075448319249269511799418172461929196056722324582929180713669094062773595652172628636255322124867026308191496905139632805336767337405638141219198070125329670342104834657545742674660452284721236424492186266535792532711118006171126710137554848985008023464468951298112529933815499203903420179936174395824123641864126046305294110525517894407248862014279604411223165303057751230560750147984851174166485542962211386136634225165824366095463592410877565237422796219231518926359785374885445038935704287854543521844540610314231585113144152838897403645068894874223693519943196571958712750675648316105907301118122749271032437283391309204514439753216852266056840761444081992466886676509384465118808056371817026963062616246658840356902811057093249764034281693947959300808009043737276675103631065106229321188202392097755457645662726997924021451363210118275731377907174845151644238082502922809355713613649456157130361581777143315575293587336891932707492634590530854414876940627887912571586730586888736945475818270416559515261518521209385521128963054456034968921282646822560625744356689539397783710912694906242540293680026682793532869532397191600104473205923403277908817901324687133344162252831348223982275544807823860562377637720076487580634208033884330054882946218929109457111577855947282686988319686061509412447437617230656345385778669828845852483616111065840440042746497476397598554698192971540343817018683670870928167872778884287213135924506090289402139280760923385649566926144836142740608611850702504398247876097124642119912178087321778480296454398015165374538838506794896102849193250178970704581755594339632594885576672050881006710517660188524759517400224182845937119507761335301028091945545967205003311504477774200946223918163283798822023392247299409834012600737177066882445597869824412466704260413525694723174257416372452382692438054693762637078994861380485138376225158333105792529707083875974295907828795464936116102304389267394415728728915087098161571531428240857017606819933844999011372489001731519378706144248976070591671759091569971231655237518097594012468736066639965559262587166204331869096627017373897874594229691566230487820501495483467613199854960294184038428345978535623660323702181330815564217989414326480453563400939039605013640359471378208837663114843897104507273445219880033297557619069429402566682182363522973297170831102879150521478388256994340695687752305957791708976934581554097899939341020300729698012264581246089167283348853614134140869178029086393587623666224058788250324708000159831502445299802175071789898454209706767165001310218995775449419041937366110917734181876877174868194422594534643220690766704977576218356258281989891320240446651472140070565331160499892499093315427309607578757588389797677425604983969065429041094830462369204213185070073557908060887010780837135167991243099309517953800329079732880091829697146565282254222157285513062795751749564137361423359190580973696826583439870772927941863399307647132499037635562915701583028760246857126086618065663779789251128898897793025542445894384236166375402120688382213324537175355984568550176625714764177996948710148227451160460739464546209881234732635206493989148574794950239858140488419599436586250370140849357567423911807718768599949441114047737885903359533524951880651703687141557869465698154827546744477640706873516894017895840479002648301308427652463680983632581267389989830696313756655438275853301557050618332520415744004330028733369284845971251212811328907074288828585002407072249405289705830048092518339385451336584921922612977149600821489380705039735099302836620847808374187029864513821772691501780808936970136488637288889964695061438514826735140569121008772553132645340004657384948149033673983515502801298886932643569688578932111782242716098844596937027488188539538788778261283076480638463441640826045685706925921510355550468895057933484769936960860910714401695451355169486183146682353411939975539299582120786905002181564336495479967180995646180416662645313551457727908425767339674784641037292896834019025690924827126994848949726116935953083702202152393610934088296437404994338055546916405815094743376528481987281991042274088762503551771154819955236961736649847850256186156720338521115677125906958194210219749601998743546365632294083150423931061536528753566661508173023835500306588120732954073420460856241426926394640145739728761266138078084513583283227999909458724475711520381659695358623041679073307403440391953566423575292195306158046557881484620607713124421645950060164678981476788410942981259368803899459586870821800008939578223296911386666407540764117559688858059114277579201216242067214627554668622478568683575981768785026621006748979827403047157558365132645777626809566304730420936707043688874857363608371244402760939448573890437257768451733476872402484224640371816376622974486895552414087809808901321632062310020501728037355042552896867213675121017749267525778208173632521356475578585630612794637509347414263819555774052690410206009897310255598383864067827272189391872388344134765760505799150558382176714479198811562523228206721414352154223173725356120620432287618728065283488166974809812473088899189440786581054700571251847026237819463726907708787815005268514145895115613172325168387168910246317765218282842291147323896795690403665882167891967487881270976715442279357397669577873551330918680827652905336451090997686636091314283266626715577427442336995824743565547448744132606582878711073804160059810578193969785887226137757850461400953061151745773429060674591870928016567316165668368254648064570859364438202108652605482355239571926439114590295831814901226344780702606142763253575555222794760839663213899621217314319055300641127257729610780037576089578034137685058535951342601540708556608353817826421383261974194654823438094516718310547061793936204880778004681911114268030100373439320763103901449129501121742004234134557369570181894022453027589676949084795098907933127490178238905248709469311471863076628145261210538981898346276871084687850790634737044474515983374653040616404710630594797933305231087356126477492624399055344993408759355584447141600278517079819553978571189914330419687223848224692720565651610650352745576996614969863547906819942060533305003120984366081611107107207594197897216129599798389958785478017150705911804500853168082751076708752295796843307432483901450177187633609444797642326737451857873957581557676577206964647492324933881085241699028260859336749442505884515261147168267009862077266382921292333819859341233839682248677241863382682267057509413606261775338081554400801909455877776631034254116906892227488971808140279625272071357988076358721408397847568221384029711408129865069591123366065082554926079935080011042227543718914457780099547586385435253326633349017375397751839889120330937920045903560063102481244024407530722632514347009996349056800581333520984612077788313153099058999604463813790112088026381639414199982015459169652465411760528836647349243003812788662352983847781463425409814584696369425624683789407390094440997460896343624160348600244792333384472743874999318586579275656135420019910504706896038142913292365543968361185071248498253231864740729924790314666438398246091009913498208940750606391484953685220356433461667189425606623306498569590706126396677301101752882250687993710713229109853593918095452047630213833819511989089017025442992879786344628935112244881514073616031224317916338817617899878186591933388630619323240982593949876162783420372508977838715621874679935057388289171927280891741324743436789113582384684829184517378921431569014164467329416890465620228473593885319125510472493820643182647439422297808150686181174386158261960216005210976541008578417133889996080315900720274540712975562072427532868204903378696487357818881115346679525639217814738197354791307485064381182246166382507509625721124023637404286159928819376060760423647690981749212093341820852209034275112741136836366919611163294676645876686452242340335122583310442730643310029884962740517540721532940928435098488715037049271075907563722495096132675786698982440168968879134544192472308330082935499958347742659136506720030319189715349562665119717612947588931693114917017416928310022797863321778023143797696641886692667078885307213673319386742980409576392649617369631930283949029994065083201676812095485349186777721103263168984133263177892783962062728564839517650252425572208394309642255239296692551081288114505718461825070965438337936106766690588748931126397375126324023288604423321180714429371016938112702414440061913697264388477754272241625979071650770023629925867010872687268025333597597962247656340469074151456540201483556987025291834008576866354391910957535106272645255936455990353057814423556186643829306147942188643709987728673039542851262631629919485249665495377793083877096967158690822378080662165152361521129720476877528507622422657070682509542523114217430121286685789192947007488105414639575547084726334893269207757758108458806439811951762514162047591715936452299590888810871593557775673713930218978694486708245958607676327327132284332993747212801462740332543444431543847725889189505446316988378747224214994134270984276477051063113341050910809694285468863829152422273748003747549265146589356814954702462480923059888291005209875138410926224099290763627654615855685867542261779255058092837792220709598198617755360953588622789248306023537293924930138974444097174402115631000622301385338265002302184254803305051288675526881559448857559672621801288840034277318274563973417143949629865430865586518785088797416838098737132442404731135703603351341204686469834202035030601693570373071290527742347395562873312777636610211536318876565070283631370598032992199645338928105627311554828390144641902802695511662137058305035721101729322770252203352148101327971406416061805139370211988341097587994336921379769952687033336783335547032612771318057346183904033821886489826657146308985658713875030913742073471140528817841387955069117562805003918491383126612762333067938592958909306424777038784388807327365315660000354057317456361958217421604684050448130269304592604554492142047271811226178077044083695629959725292050705961291928353177025070419993050270759680470034572495849127546298345435620912215879376005580235881249600799307908616493312970608725709737653896470912005610154002756872878580768796158470284223841392876316135662091629623504955116471953137904359340923691361785301863631221566283786032439881021223152359363628683858255830740558091173780262356789778593683894687678476708651657059306113293078109126189124662880636025973600111388778859350445946218603150279011443882774710339368076127790080684954405280597995203940687855022588990533074115624594881013815206252797263854985148419309951194371323236276058308223364340673016464923680698986656368181365715929957258567118994229983705249919749757511010188192514316461239017765272715417056198808054390646824878340110824349115208917644140282544704282451890906711755311131576664405191717294568310331366823525218175644685974569566681553837695051170662442726908339267730896644365103583041601974871424378715967527260012571389874834360177153262521707131122395698695545064743632914084184892760439433069742743775068590788969988534329065022015616112738192846038671526905281894863407341914870840453482424448119483753792582294105418636286201630385314300672679577813137947913911464592687245732700293418298961600320815173149000161035029477515789044185405516358418793785289038507100929723222289870316473605400767237861983988940255253626767109782104408944751426508225008913152436826116857688469430169075896900311676024751255521769962381537016329678888901158843439867546378399670568165610861040941508069345122834583812913240080855797361249750493525465863579056785608988455874302940135621634895181400433522766077241954611838564547530371539416928634234618167654292277877924763400693071826188257298015115858693313271115984465189757043963170081113363992574483774657153272508252460037098950565731077956811074171233846038160623106077519050613869327837042931047426254337310074149732034242863491314305652014704956812795046014957634469870584114903307373755844644405215422693727401549112905708781618761974481631998281761108378507152314725777799539404484050702472005058111340951499110167284560059193648894549537241054062982045801983742315756643968226302362207392854515620644642127053370384720550872532079842619757827756100531854059095895571995787923564295131762781461311253786758142870833759130491954155198648250877043959214671335055128933481265720957677477162632375012913685288076691094477420098754642567508182309216576453496780320548782296800867263377881490021516095506804201980060116355273518843625374838005318870073680929684390320398640223908472455072695097809525784224056878831617187098098437216510159407824432518285166036737470269544565444620555253505726215345129965813934576177084579510275057691162599261350155695326048106977199468761179526764807634951804997976656143856028920427830940517463671468549516280627393461877416790683928290544297139875657833408095717290961760896592117484808911074207353758043694035148183159216976465029136779013732050919698940676739705738967698812171463843851190281314275972511572463415564110355429375584267379589261704714386811808563702773660747667159255061520296322619680335812978504073847252730623652492106658928219324950823202300072203873215031412654738817085598461679309005469054807669182050425812477782564140683172872387451216112101400723342646676265329776200009901405422020894582801025864400805229888176982660894858276107036963764468506081518517662427452961717683862831934793037541073144467260520704188773266456217022716658359072163414101220150607879106578666646584645467999319106012468809531778532690310702287114072516984443322586768626699501019866923075766713034331523815058663064265828544151572975642099671361340197378657153289430416188232303905830300996596373297796319113422535447552861922364063614991997595390984671871769105561272068289955457710736140093781257137735373838830500056329674926993936640543714555529357189956551582505957730783153725230620609031243692279811034220424957886932291273660292400940687144543236978658871135826620108796871298660428650291248985091559595796147606607128086233804877283125555600858400248117968663394536973397928174147531493274457801797822916547108848461954474718955455043933493723882386395229665767546682313996161492197943491015701073535287960615084879754104742363702083609385332578233724778350779346890535004032821167234157200540354164770417275364984853753553674408064797690729419780099285523006762340035827372031367521035960462605669700865662762284569825268835171598552332652517805155886087923771257085645038646806959683676254627779461553598081260119032761442448533197076880192830565416104603658020635715935755829611946355673353422846851674723739329927102208789012832878178657560392980015659994843482895724676406032668141590533199666215531240697596218334203791752169493894815886458248199182029921035470534349613177521418042025918178923627993375459222719501607429909414155916103701695824933042787897941012995371301157471079162904060988277234778154119417193283010965075350991326974976558823532214831601393250882784715043908678652180395623711253997757743285966738384061434544106160311110053247105138082933126239088254020678747312290508271259764601075657348411183713107130297802669788587365420726949360108134837241672357705189551599046185646796101257611215051095535434511487028078841188841050073035825414362693072247478134939797418201391300623379722338549442749776999092136256251042091262360363307928851405008551555575989099305716722552525343586947816306955324974499064470229583221347569970208300357054482108150734517389299076857560791529905685048385254269667152611456057499466353794725742411865568445957490120710213686897271266976819230783338380913699412576949749275496567633677792417930235325048921180256767420397001176203125916728304819976395994313457465554544682217161898322328900886706636516958183759742924777433628806751800301535773219070130921981987944170220043353636457252253929346589968084340727271005296303506716940873753204309217023893983600253172295790541939119929491196199587179526505059438292945211510794856260038231462471832908126519284218665897690062578333067788221664146717226833298937862546878690956209663041770438388901700447826176970683976286876227770508333065977057852451152055455416189043055179742312686622442265067119094781515505690485152761322793572938079195573555197165986086554705278532186225606037022499898363091758715345773847880963659956771678866398778731305555175223694127040657050197754756496599839885444278062369401494831373957654190680981960281953145682508752324911734010231476566922996852356325528620027952587369844830119963789405999454438418185793183699906701514096292069105201752110898599963135788525313152918230337957249715627121729816729839785098127804089642510807248086670583206657923071977150933792749307865479080882500214385122940930065971492159945844222448360769487194698141505451628755445239406286779908190516228009210614091063179489217361553809457967748560229717920757274186352837879750408822879692673116553196757282986978546141091265950639947866489145346686784259864393666077572756306261541803314361840344835238798407860460226268864694509854700619047184912903962709698373303496138811500360162389239085077134256282523177103244727635504079951264093030282151364807196767307535385776293273310130614011625875946118980753255827506341314442917041010934274819536916407614519546660996215119495992833781502605517991018097048401176709331101921290627164344420410810238990054220939019734313445058624175736110053054325595484053094242670499242238791941860171270475544107385202205422939771132559537994244143576011077191089124520770517733768247741626296101572080113239609391178469238001703550191422656554841884281949503508010528176269183757719696367078380310641255115400177310354577633403654889745297649711637442077898970674738810974392982729178252770587552032629803833749088910190982878700784624160303053506202476856677998018014659211461538192911644218192804843435266076141298078375127025541163292774796789231045387273735869801620443350502959195933106649497025526256968831070531017954537485096441274787203055181909723795151460911747075715510735405092092649413934030501998435964277577759694169672340180622205927841619608073454405455496962734114459129784506158148580467536706283658482514125269301312995624357956047880153430053045184304237304238798427922046795293587290342255749051153836616166902454884969383143581247133807094017324369198225556637415955193165083830572426604588033197749914158740045532848898608731631267349059243076078212002932142661047019474885912032477258145247239265637851654231607871049073687898039919251925720795956489886264466251873203428598589821573339115954669884931610431360747178030848182463882251209990027510190892697903043022294533079861944941098470077682247563131151835994123752277114150249495054023705898427816630783715046697423503077412154562921440691834297332525949798001763683531595396027272269632318015361091297247059567334733383247763336815893672100570853198599877119613232411109898466535893546839945448387910771306749163924581251637281099810931229199845812924507603828196102602233037906104717796410956923107008219758086621968987585973453583353293836419796347909148977195568194049217359654579193824105924724070647641249426459425821046067389758301266767658366557567454162539046114203120248415405736335981752192992267321352598505361786032070758145191798640621961804199345034426442088155256401879911010846548550698528715176248472922822243595657605400775525517647941064894174388441565625228934090190368269793193362254951284857895547600187196680308182468862178457306089167267930782897797409408510583966745564324839433863257110232655929327073861282474357639925677788610047815283738545134005613048960279160961298349441806737743235474148954409265669170950239943926985754066433403393401363674724342040999832293589635246215414763160921178730858311650326685215486298052782410931987240975506880882300394734285154016661984481253750317752000040762929682610105750435618966605541933623840796663794184463537285777416247988872384788743995555795848206145457583793666137452600243282322398739212615125378342826927010349900707942993150354728328996573984817237240701131213823868121766359925711869366290320338017114794789480389870051377313372591956837008916635856913576698094705296878339281399081954962958524158941171809248838834588775842374823577637597031533462680682815298567877536053291400687422772316953578061266521036782004972985025077989695826811863240924219846717626192386187855501915188403008208280277732921457360130628005332510545974193800111929187468170050992198436222347689971752648486005295819441536446395741771620537764179162538472466038485557844505872646615143898371439805765058584643784213963586741386765450165095652613659026920293409274281727722006871885359125130259393697476655931166166043426902937083744716314224157008397828347670038468251941197349195527248162149880230057229012624840174119564800092757216105145617830386411014305792385614579144023436857641154787169305695034834950605450973176032146954194796429041797077226195882536358889786441288753657080433016912676202358021716189087653820260617866535608353248181793823784763659104548447272240876515097385727979672316542492451905421233240760708751634010705822832840940144566886717904104981850054540984106797480408024294217001884812825166702233704461001812961995842441409352571902347920392235256328106598800190788832507952942093010859740155908725308294350539044700912259264145226648312128096275961325660359653589680380342932485892498756126576879560161661538768595085053024024721533028535325932145147573410301561651910114859458692545440088964906690981588415955321686349384602516432919117474201147372055998181566504605021350284423323813774803858021336559195952197425252949947706375280625688694379204572952607745438131324504157610758110199039289827622123962171015629376010223315506169728260090179238786660050631515249296624083818196889690816271482912285830783706742352326399456543833820923549421292917169400783953541947015346882499932369578051126984752246940056138015117095238693864741662518792088670384896658157989683363514482056704963416162775060680992689856940617734725357379579249053842373535991818604836563407606280309440907455419408746164580883855186485734859503082036056261536490727258489496706714411393252627051639236350049159246067669107643307693223959465477244043312386365552703277945689748224997573800686075969454022649190956851328164029491671534915602298849296323351468889199405995639611922728570487978463820455183352136325158498807030567775464333668527748299359401898895112475664640216129102773255354025162834811429768198103696704255335047912279879739259641350093394236724926593518589601519136581867880054515260535652224318698856314778680298257154840622582919903794254268515552659817168595403211470058829442966513937624385990034419235011346296730101361230148363224953837237769169720264110149950881329938437001382549697065336178228076102502326924443767923052477338759004030531547984751434233290003691859772058367242506479504797915004574654393237806380714335241039966764499309213771994918319591072548580353639459201155016649944925448154657188339210055626303209296380291301175356876685092859539059226442979831672138852282059305831117383124272990305290347137961318654316519099101911445564249888234937133766908584962206542559692936531498646756820987836920693864169715734617131842559531988299287862289289309174782930834289308677860764704664259924945369169313493288963223409819357423959137706262280812552367383348684913819880475537283938170906770001569989681116045362841468625140261316668140979226984848336624573543731135713229644355103178921001499197315301771800699340328452611340012242904583680205189957147759899514569164103262606320933726507967406701214035397665361125188681849665760329892496223137357576783650082996889803701785879163660202109881084931015159913932198349818805096152718413643805472684457418389753085897240099192563434995758363943095637607817440009519445877371027103465311783848821302848188331287105111300224741683104806180713302812766621509755439488652298527941064178418566036434528564586076577801050592862168848102871528222101367502400242296234435743422645070148911580608042105946569122468326388153815924343764091840023535523883242172688676156307959278138225165723051864994374991911815517338881121440714007104910762603692624955645239318550118224182873903416545020073626099925290515387731117841067700230417232035216021996593070570156188454104622953522144003594446650731930933797401531572926757372787182175359864529112810416390118093601241367339800629717352011482051838190969368212051535773476459335132149130163493690760432159414068092167115303428208704392369863594517007848361024648346574211040329049060331943863135645533684886816705625856359704746408629354774140194493299359329065789705535768536287773596795186035018360894454774331612429403594693593570657194189784785269791046627330258559824392395007705378454255284542176241148368726910819453136007781761177285499479460294294550653886645273243454267938378558898682893475052546506888400296965135944715233668567689753420339401462897042319896248817474942768738168742208459383107234710779751714947760189134670548562361436199618527520985814741737164333025184109548571513633898978683646660963634146294783981327119132963192243307745989348397149592867865280507731595591045146734906313914935686887050718428177515833460422884303846553935786806035703622952978584904317503729426006745532392765270575109401998731401128638960563998703862300667590739941381107581280493191274121525520231729697872465963725577583823740824992525825272687073108338319199882451210492441730335782730917246889054156604535953654031880312993865285297761827284658811074408066893471536354711834369373621482724792920848858790379871876184180918627298979378835695097972808605741129401901728715062616762290592672719746681395877952446067693953176844187225736293720262114483042641177047270145191662832847238746804279042223824406808755225011425677269170139389738763396525522260217320945734991294020463809314949217631473875066425270174661774307145578378569697314385560016432856802833763849573678192248914113515559189997682493297870340765755168338829207053639854813917864454744533060671181942424367821013749225555667144901202500751040351185492247942378749166626178179776047024677402566146615678058181793624911415593630265369696953913152810560609946013920763030525684812528381145245239682722980443514090021432845082788706943505632507799714857892547029303646002009492726870516927164373321331535685471639648517428411136160980736578577518195021389201626470668136808996797878531635333467965590933682502623547311579553587636568794284970016913567227046783647258436081865395437880347164506027734403607098251950154245612129815042249168576484728002398386934076097178856483267454068216166608542399090947008684519092160884483943789228004733767444599433265138260268332046645469197153672905236951018472660727816040808363734110708986321593744455548219674113114127893024927703293141398883226782695688692876767425818858480467807295587747633648349844535897571024067496557477312396751103112099521689161632093148671402329858491202497600676738259372653123219837544433294640706991434433735075292386986227937445002714157630104430369597345427309301592899423338715762403415588150455882068482288477870809079646990443185610407874285540825537216990961579611216561623502115272717986227801046356742916441300867139347120042432852547928376431626410865166847059698366395053440417551673487207339877462634159124099126064657123326347975583778186630421602775703858694093938914104903340685595198908775482549784103827725037692988257364368736551187287251875858782357407998584615537825059891231040335071798424287652446371454742810942348105861004552821155867224598216110273623814221199655709281085960209563162182493984666054260768836982328102776437566598526499173499325927067707419939572513540300217801520045326333728238591502336781382985984562528204904999325761231246178111238500097489222956101952568614458153333744142370005913088185752887204498711239109449851311653543148168861801939334748335194273424457804624425994693324647437643421620030363892968846163986114469841163351741523001663000273160136187533729534606831503004329311783010193742528568111173092213244635302461088476543863587445314178054912365173071593701052988297306089415763692329229271532659244114186446602402463216909242523632611322714679082396739392149866934595239472048670589043290402448785128484713658408359376507507861692099993708579779262900046095154992566871399056672818645312508462286782102765322608158743352386335668545222650011993071208448308326737351023253245131257915995826701956778372987109316711379604324857908438260859476679003548981337029612442819997566330422367495627184095989948334427568779653550766713424878756232518752372663307294864720424902566354466694917220704876683937487494383652813600175868476508056366087893006707996284790627526507436536058908882024189863486608024868796100373729358817888290203083623170125147395447230746220930664719351540528738427007067579081910800688148754868441123927187399398915580047263949372038303424326582993680259161067676318952656835982314102027961416267204678490307169444850843857882265373761757700886109221016462785011675334198521968144304107292844055476351024633841175924184304298150718312720758655821874028894335430476755573902660922447885358068261896020963471660868304842509659555798513603358126246030509806800421688521761878853903102999001345752735787469192583625065575663746447001252487481495481584105685825236129528265117767580134204346573004250495795748651160338156440982064630799699867266709776629070704894096465229769350812569736518652041711743191142826448611568673413936274471744009448982836685159416605325176072197727478212150684347522823138641393621327602061782652179425020594663139161305808560937737220134599006336119689060984037193207076217833555312834737045184640249838931383764796892027364008958896976138806580352751421317046633691842242655436592931648983453686094981747361914265437837363736892935371299406579343330355785052083708162003276758776086814789789224148210813799185525633767075923354823493097883142391420723436195308432077283139899160727500169427431407614652609683659929678983481299004588151510769852698988284548154532169612793435321774870411026827733459496739495366247581160357514801533499755681647028715062254964984756264251501920659021385208679745613588860971971902987550455926185317685182969999240145823180349032086457624884732779751588299405618916084305531978333109052207517187855285182988244981430932571288358997285391280693617231075911561122693969473332276040207033573455883944909054179193634856564542910203512808310561301086547529132108418165220640776647019337895942910158322997889787579326943279238742053257651408526210363276253633066117607892246350870269482040967094428188002810228096435179096802252787075300510565270715601495277541141210561745712211679632867387279506034660689486365904815378958251648405262355897268698442762388860650729944359389608071252235215006812310955909833962210961880652820289522041477653106682761353327038445648686254670632971810750131635106333080107110375304839818621009604107889661696022950433538470280499100023253771497918645863066270161038349082694101913132795427832380142302366012836980984608453321766116761593661915858312273828614012891079877063989126049302389457010413465131271893607237653390074321098818921911411073445411437084403600703214797566253720351244005342127102887631724515356474559367841453631211540909078688793463606585524585533415946973659669055365435818370235094736034601069477475315312939035193058539733061660597513452034900810007865893514643950917379093505359815308697946478353604616945473398126717694055656596709234209924259190721492091519306258263739453890236680999464377222054243430025411484870917665802779934994840984421453288085782218587660814007752133181633344379802373662987248822626794638577144847356059047742075563684284536862482835986096765177408039284046718135047018881104591738311018389016279304351373190259975297830092276058343881576819621083981194048835530459649238349438280108042519759940669007991208113214659043271070181317793432788745556518937026034089684790150448131724347326911699712948379970661450248417612156745414712121054733723236104073446138799146846810544900613573981103728632738675093747094836376919865799283445205266086950151846868411936444668778692369730504638196542637877270859712385990287765905731941832930412127615101908642484079489379350687205342807126750114645440335810211850287938257840589559119388202757813457792045562988461631325229211872293551887800370598556817135826561569911244783093360135834879582731483115312359904670260938245676932684095951643205675600132331419298107970138423313492266832664282951326307907084615538064797076885063958794467156013774255139898903624642733359974718632192737034470019142846212315833989244170241102288427531585773639390904755900283300545047051465675020860541343089523452097524306937919703587067708600072795522120678875109728022979080282874678959145687570124912791822870258955353080001353878784030002084022634719320776909022893324291767148243610884344562534837607537364179395141431927957333178422276631512758703681450510528619670982364201961224829230954474503542267572934878877522515730640764840719965039170029447832861874224531321516378417094650021092393865287836956366830184562868940589066471754678164579050182659346590426346226537209241074652474053539393538607299299965481010075885359411015531619375075561951055496174267657891935294374609717296894853101436476382254019136205050359557561440659247156703715264481965380770053373673278266256700760218208069714328373329088357084909903053768359730444644911959864316094119635516584403293958680392077041898998831454509326082692388059088649411226448304834293266052945238821764092808515172626815044352082902395779193063094836419081590086762738647068521694360194352256462559277001920704712050519684010186506702803266291170976758280680803068843277269891214395752262087988733399305858040853395942637261482889396505854132919780423914034224462374383194371317448797868807616066896513469925007580201916220305634205176233494796023099848773543939164256536136192697209987198403324538935035433706363162819298400481033341904819756208884283549859328552558371902423103237528198181603039704546002227565656840212355317557982104856717548123607508567580690632154448569050479728764900179765755458906311726321029313395412690331220176535647036180325172019681819327854437950574466691319247407469834984968156983960369230520108682696790705585225475208735956174847325826311192419352202330914918064048425476888585962142872362283761525910121242186459928442003662883994778447323231797415786389979533536089390395911319165420552130543815836543369760554863741798241330384665673254944116627270886930177870807529728083422239276299146590941199113985223164619777606495379847642843484762277676130176055698869541601992051848680522667172377479210221705027602197229414884754685911698117790870152486436470688318200105227283425791588241263542720658333759991768968576938968011354671152723134084508031916165992941320044204979222264101784789223567090104609395970635929428476486938531665223151522750681569044765358043296984126384126881938195893308355955346325326402044279430017906460521228045085148206926649700559208575087833570546597256995764116711896170308222367356671792834487035204533840585248444574423779148635704258698888551612297382000713653085761307453215211382690418765644470638856562174325048851673359693863947324667338352368081527690315053439723599557661464866094180748876648985636640392135721395075451726925181945821711994984990123251146728930330850764217299308817649771081686745723929758525829716918314261299762159459830809388081861913545710529199835218697021909860035864346813557256224370406276698739181652128660610639463612678959588418851591049884652973673045517256331919283905198841700417340759643599313068742180698549401683630933082965472813976860015225140338061055135179793420007456939668925999034655814894831683853404379601115434980607145863751040797977923116883866061601588922666765275597971768347586735211093247129021077055199469377271264867334273312138042028267586716502820464129631965091064315875421146140164611906899716581329248081672577624725884886917391760622378770260840189721057762552320103089598502571203208102991872743298440432028124692061460704059118471224181096118285317635675164343665026744762584262759803856298204982634317101440189752734830526759299688647821249006294290435938109710287124894198135130941919741721115213731783185161507588041824130422452891924382804951756007901875362241746470602344547478573842316808839498290014324954191711317674438456812425598758578854175254462683332461286275905424771318398034611151552556522918948217625431621009222813059711682922486129887918880335953403531653288794573351989413442757004564108665222979939290377735778380424256374077187033776494219538981711604199307041573593451740414186003841061136241133089020210437860454262386782203862193754555376115739025155453981854471439989236516503540259194157680513579518152799498013971750849157269019362255140139491351117553873355062065106549688214321605129272128528003279283019091106517758193385513496258600018648567665363201008915595555130233935052875821328745166008945764033694442470830470627727839999557832849406852724995462121726376991577387014757603133162443923643435473511973464773865979372692112651227534545721634582849590599536790447681945184533422822553866079702695314050898337832901669037072554976554240524602938641093242561332497357061168576827527403010039452848898056948850812795468751191896368215344755650865696968483474050606852968401800385817133954560536594379784443540233835496998918197517299223309596628408026746148463003706135940619794476756334918452768896912935646041517099477147429227520466539822567079130913231436020893297849316589898842287473226876306314046782189366506045368269832453215343114685693396657062595083155914259283998200261035730879773073861422255751812485809405223512708661935379439828112915865641713830234237136452735995693904078576285577074900364281606716532783198997761958440177874965105664446500608694124004408553850309599855889181745629473329458698205885720040566448436491224488265978572757348591980511312184886757499351486032883638565209434513420507967183462057700768880331068295476863785032462738214188391109728984594777027997498811646084843613356869389567028494542489255045952212894352117624723374124918117511104057328413102875323876849102758314020018499647886211602897639064926072864293913457353799096835260997012872203395873547449643778132426980730328312185636357990785274987471134307625345746289601079505314857210962007354812981337760914816213675193212533865725779494704366532994577696450094960041115403083146231143548209861604032642685541841072261119075910158805164662621248320688917034712368151254708389071356959247857232157094840765000937258132104595398123804937550434082767793225592714958768832695935737373590841043107854236872522675925033925654225443425616741420503509291904031189505260939379035204780724094740386061988804152350270655147217118096921914526519905519223538209720647031939180523622334740905288761302737462421923746275057678353777940898886644112657339663213316381544264502245162944481858901215083807729616511178913233882712711003145543489091015187368960429370493902124592598073504794561105522406893552319891216036942821434042877513095117626814606491096550089051775706678051383502895778847002435813267985671881289573745285293523128724422478029377646638749642827532364012179533156979598545348781942658692071619070358612543390225978295820065469252366045678631607101473729923606372851182836853229061492119805737058159396483686823175931779313757923337263866966194801462910848557193154882035908878870311411587851139000134055531366105882019957068318108401978299948312407144701913520057384891302532874204286711127352843538418549570876962088495583000019048920024805669077423749141545887545703600820563050730286481977435777940957670591663602820499882259560756837849430774071405357846489395595305850335425017125342802408178532789674152772160625060154794539388920637045679095306161374830690663266268634297507696511794164116515396443830615123304847297088700943231578152659834112530861789828983695268981838224882305652096815032054534874286839535646813677234928388355898154857787851478413838765912657044784067073968228529280740854997622459493904644397679003043158162380937600736632977568109145126027548872422046501891392197924012334368596607305707967850093539453111797591530239974615413287930013621796552119240104451776502674980143194252268361889884773609006770525866661577469449064016590172415698940249033630939834559904325391076722306262651655142849877203382535900401798716383680729357515915416500754537649756105951867515413577992344078434766100996097041637188672865960189395663411852153647438078825651035383970647025222952458176296293191848531580314666658812017329475748633551230824774948216809158059434828070694170172857009136377239113502583061663215430835986179719949336680882823976674474800212217154940571790436277669088003637829277878191438669566319069814512401079550570125580504779068872000565093967714339702973234431127721330560046802915362090644872114920890348092497171486028189053277085525314119433922808916412835389973533388569109181448387101520728596001563111467744252553000503885765471557631360528889193002943002497236813032127329574242818781799880414447265006411544405279651567437806591712784585651909323729539730869657640568443865520319495945741742685975596585164684496670272610961851584262090779481923618471972953142703607133524795157911615633801617292219533742593150134939448016425834239457046148973677958797878623256860259957297081492790934584833747635564685138541999748233062722264600585045724510363106041719680210381920231268472411103924276504703655684114644630830671052822848350094202231984144261813153248976144519781789851506388558417251981137190468803249654629712935467387156344938107906731488135472379339627890260641312550729381156418410241811027497581064676954451640270117584660782791345353597411159715783675800725740711416481865481050334067686281803328290152599686515122339931522441436187269568720854360512398444714561294229566879697412002927696467838442869978072806691883309549765783967614239574731031668940666557306061426904802134464249794339872764014553275288527616851827255340422410142508827132828439314628100776444157482138535414101160075570762014557734413057767563484645438843760351303692727713732459119831341208567331916362854252085763449704476754381560080038205180555900351442720361951241901153524312773490931040147837916451270566897147113492199458036655913889112785157688118916834367055964355240852146606217692852347712805265238520213323870384527684516674147385152773022646062363682617421995237972364336151020054987535176359065894985964923415518968542191510388229083974577608527460950726509428219473358059942020391886983778063455483558449412319844846887446398235204379825992812187652434527707208595819779413098994202337204763083438154496021138395291406048519961901108477317400001438530085233069254981954972595872997999921122189699008133192547143227830348032372118509630384938072213534293118028016939976474320652606693472774714207876630278635168667193691472544560682180083077831503879405224459851039454133518242595970296610752731735166738232272243823781726721471809054943864555003541541865695690753960894539276425194192307379681401036921844843772476351374939455206682278496796435327100331339199043187247208863123311326648354745720696626739404286488077060480573347220129449007374352133989597271489783117047513218396332966065179452030531568368018200728911814335671051777914757031323517293932566836201627082550102519163642122532210275452022561271982070061799540752785494662474925580052895244756294244868961460262382892502920297065963043017532693440730328740935606739418680248964635977793165551766317387526363620913841251697278273993710601422909902088466140114037618248085039295361904735500412305970839727044233855169697792169013916996366234747101968876524382623090297748250519924506321114073640277821680218892127765579014045266772187075819640726310417882309882110360214435655776151761669612733361450644456757444018260888967540544177894746538759981352335687092636213449289862784597776354539406050259994262960385791859521190776525781146933083679537064347205504912619106846852056538426682936531432963066105865602690514326793890868319360073536690979306904146955068999514832621486863643140786559516434390898139014850719084239826785690428097745421089178496328451164206181732059481518069026416113008175914237240964457351377391669114645474833942853191123561795439266454054802659725205966785577335549693161815381250449379021281190020090407636903900570868176879182098780445006938948610481680114517518472296908001620856223192116965595730631007217461109591940983064967102556623037151693977135851535266493458218619232249270805582447472333156021267944812607284782801596055460130864802666978435825831706708319119817449304302354366702367048246448835909436930190088228088389803160081954987627117112285541035241335693436617747244041767935657972121377634546374970957064461547834635472168933148579902946149572815514911317033633768741190187334477741698732785080168706326368503801414472661184338476567136465014067435425149026238385823115188632302507750900369389740021699893901661314125845031249125771869696241327499349358973285128187321755225720873098978159910655585598959420061898698512792222557034071892428036049099887627678565043596644083840388805289244091117190370295674775302748338469384096425827299364312094106646468735373945496298311594082892688610596712795133530499553148163089866753964514620772977602263652077940726693159921917706839203432144476127261247333769253455748529299416283141966398196237204415055094217244390630669405992630231779399435511186645432989659617680545826670608020104460824029678603537550426207037038765220003897879640248965772639041254697117102695483901165625030871312315991099477404411552783076313610002323481654006141877624117320252190715785127361728481483629742206024286821356700758040307235711309298826675341823569527541851145254711431026174983490181223031988140435335613745295443892929104445855932485654407138343406435520461983699066069813577496741729851926140386029312035133972592392615789409447882988169689821535601934027855856655257456059015368246646224295187901651197717419482053181320298810247015434615014549622969276588894133603060124271046312962142778570616940810811333096892654866502492677289081816202925895243453739417916597819885974375990900143403568195057148965995931988070118676139331185664924419138004776443774844205766184256877807178985237703267316214792462747334198648908190991037654152415360382274627129082126069628013123233154916081161181611402079010833887417515958325564450413456682470482972987562918315070031812922870949607612655100277371312317788636523755174421756445125614367460249451543527735356829867965967969470665714625855600070665833505759056198383167170947927951341671345210835167738739619014727536334402623771597321604860632772972262896290480626672093188213335822264196783698881786962785012845092911765608087291084654453873110649212493790707153157485971282871832392036061634870628412547934462761617949000313104822797721621153991315706966214879193972618321391366179934725842011329976718529376125947187154791293573372325673447786807722095222825584093814785144262113197219257506863609989869828866828929647953763096711725328191112657520957384684843877247667567770286503706557843755214770330150952677353321900222080144252134355474171086781153911755444455765256670448749934548723302012352733804470477830036741447776685261019091026203805089541651728525584214443221547466575309589570274914101234054367983444515312468050975723117368826284288116296632202349282055864058042741317115370900390932409496332905872988204552647677581754518057756736408892794193086043949629504313495941819077788327467545664040408942218574977490267640723844649928584944472364961178233809602516673811449957205084044888902964570150355333022975314836093109769967180736210828916194255376442506756107194918597084445591217701050829489902104245778110272683664127416355050325665672285307541619997034136457109115902647027814166991925891471494811530230378372354377370214746416172897466803795478336344651152342379521873179060834578792748132514128758696545348210179960559483717669912691565716298231321958866121312870169108001602400456336555295352744969722870510520174836946432665750348802418399033715199090637053086979481562609469180948487059369825581253754965560142544485467548987556781582723169420742459616232890046502609892545361035831840381126128003130500268596607794690208735543891747996405931400330021621891687688647203177491313387649250926283103299949322161957847117554917450108157880401882611063408504393124802723770560438187483657017013125102051709008066212443619556224533509556290460399399700963407232673992919654271896990424992651505267497155787640778650893313930961447912478169109568561186870740656666152234318223439588967207960815169810590208118445146180173040727589408365451001248161318815842534669573065059135521988806292439696586091547068207147908681641417595630512591544644682620312205187373419135222267617743303870547324106660823367480301439393050696729544367185347888475847348229231909816771502640866903640887901177504763879934531512920692922339417527785342366800641981661652108447119967832503024627125321653940054226505549418898185803384440387511352795677152632054891501368125759215684465498535515786464338710663144897841325031912275463525353055150133731149199337482210053893219768810466866208492925511938655944274114107542997635680241112847342683599555110242032303057512453578837633066918912483314710908854151872999474530224878114197297909261124585574912124955540135434405594180810848303523826564535654638467366726960486022691938276526721672625313913432140259505250800937637284289793426346243729720791653339591027652731475953443481232182424323939183076030481493264826577230983905523321652723709600518041549232940883201180997495367117814187664253500366601322934487799421930125449512740364113182630348823944538707366395933765518393140976118848530927952341604862664744983895813254978602352472515086818274972010862385880114330025318022693392738802296915045608130754270897175039205213274318224457058937315180221150643013296104303119474612128454973374809681885216455046273293297399481467111804165410094863392609173860948138848125042686127637998584118079751096053020931674424248829961791709061783303807210503597732045431125657965688052829078267325698408166218557510151681448413812946476605123984534815353863272184350935857559188387468417589785241599015150319416794023521525091845472989033414899898943851182399807442054977494657885484785573320390120259185451812170553984384377968426816927340658880702314369853725833511855654623429872177850579055303252869118761437965606377113005581752353445729622775885979930891367668622666264449529788239312126509550571143669162570847977520478331295291602538394953041019654766358656497417908820404586601628549276120135986940489514539524440037480358071679083597688443206195153914954536208174544664137160213678240156562967760904022340338757149611057078300755022045810456526515808536996389313633203345714350239582098169489045202047199565080666261350572846014658401612632452796040066133152818096061974302028478031619331164779782646146592182909059406648221789705844139960502147637210723236431562846679368770308251285889331531547575757386873068706787751663970895231966761305564158149250155557650094817066517545354472640396923674226725917319144943003015527620085476214113327297557988942972219422285515887665133994939057329586371385016993340998562803485354178155858821607252992015359585503298120137011592664557368221063838259769400915457904739071090450380126403294263883283607717051189749567484326710996730843527581396737736245190923428900493811265800547211587371020622535051449942470179870117047566988555993983847227710429546970314976342077316330523769726339868067730840675828837206947327158609501177226193744908199579651177680977126273541830863892900582828333653759431675197871819819440514463125496616052451426710422958932167564193385996253614995969088730003337769237285345512324301695268240402767860542923820520407973873340698470352826497357573527944545920280231638721557177820379247009951977279554235529758975779733710020492342659574741554893301388624256525788010132497719723667088133387985593637513698789948835373402647785573012020272050208773397419904433734685082297183873234323103023925317922610246592243346255874818181852423266179239909378137971169067823510367811038250063980063623430308657951305292364455246163368159681116660440555011217758219945000745152351010949837570323525835664054872984664328039312330062482165100160977090346541654727564749028362210983456256012639841064192336772619057479808817347150890238603985527971498729473480718861924026748180624388626380999196896986222128810740584186792437052475716133074104510802754869574821275953197766448288943888527642675605925432092571751903816538870814590407026895948280936559475814457738378511873624589303270715906285340006134621388516552788592506015390525236035513499468987362378149051854779394500733859418312188781090375060825932417283276334937214444604812331726423714938874599346451081664754302818392507327358287447168186480672820646566818044094496491624907045282636094216772056590687706895458107117401140008901622694283041588350278090390396628607974993902918503275840069894637481141431421301667200573087258346139928389059690641840357681788728103463274726498439417208081704184469735105764448114747863348161896295235963340540917584298452036300761259498863263386118012347629978440298201175265425348985955162250853670032034646093284814012046612508897845730623551692475751361813032719828143656040048425112811738675862590737314489635572307609087682113555631392841885949577608252898119866425390336299625120147369822275342366278103663548866661407838771146507805820419638031411943668624511636343103376923492648555324351976058238453273638767647377339743474141910573871894735455598183235534493775862092467750959924792730899198817956450614926526788201237317982581920092132210651494941284383399596198612085142903431845730802888071412118780214919048838990284776510123601379119925770920177335107712384063296400283722068765964405624005290079160181104531911388970490340171829432844321222042351773234721084000361952068189069977615834226386701709980745437701766354855435707347732179819835115020318331142891248668704691795503580769480191407600156185943477035007958837368484266204156084177405644989252377645368490864730350921290502847736544552975782926786000918031282352470315325611099273983205170824108051796794303430681073207625167350702720766363223236229762549403691727849518866376561871707337123165448241947248446652949213278883852884988735346284015379798243152026756755757349611876572767083086101624795898606764198102291538162082988701486746881250157859916626999509090170264990805768891918929903639788662163386398519187464606839256067890127598820991289961373279936244933878864302508175035698876009796795499148810164433379961844516217902092423658855459955033118043358870501512901228728768686080211254001161478389764979142458726278105986190844590813777932570946776109954647456826571193396269707684729641563745767699994254327188461066397961364319767711299829027494885835640998092566499138011345205950699282610433740939513731166383130322257682957028795765390977500979280685865163322387188341887081493621830040175060688196086749094528299669903988790332775070850367175350720857989180169513235821652845389574924321200369293341080822661625893363459106705846500758120597486939999998410644081472822636782768611966328859730743251095081357067616734188885994358217363794837894921175249914274803444978850748150004217869348259287560680226271693924583535697937405576602463242529007586344035074684496856869448222080215995823317184540098801079968907282461239711705846253403371844802564169962845878988726511304436958243136392260334862387125080204454628092897042353324379646134791105065120442020820584010312884396736004079304560399155270427301011257352383020101686911510893156480674136107355097481317873224452234783555888050141613659624767350130119725311402815053305414993283592076712244566038520279720483985600976469586274472893452361782047999237056872524445987389919628552771732535762613184185573224077583057561388655061616512699939133478525243348508997365877916942981584344378438585100187204993751359257159979025302650077359115090133258937097033966123171693681793234025094980631353094287586820543371340955948281982659766333332382984153171789930718828755801722248365210930056805545131383075767431744873618486761878368654715299782517843087380105313259852852257546720588153645106864050510718414731405767065352456925142386348591437471684112037094745749528214656751383970524099874589557056590952018944244226719026475413556541007320179758934223607209366876413345161791733914151194585392082136788909985638701048587040538233161246633890851088431603611722687556689995399105315486814246701615698922878710009778847564826732833984579848885857865903377627326632399391658568914394547308977121912269386862085573866138547282234255134941821123709508778239645961725154004928404188447241650920104267753360215984643391763765868922888320523722203334426757306830250703177942318671469273686888236619894429737070438889751958228236248541479223564688220523673805400878511185673751830533298577568954745634222292856425810306171359965644643282354728059086058143996029907232540637312052534420383291237790422127929052579352230294529992742398268471346729030352512321826103853245809897522887248285848752042108535943873336945656895634931576369943036005226977985689673408254452127415676760200834173212647802208716317380123018672503639145297043441552940172414636900957889940606846797602079699649411882708834757359331628463793521245026038107589814193333447466037466056685872208858444517358756203354957892430201333013018077303084358704415676906313790104940869186222347517359460837968728106229396537222891440342065676232919844852183135822002525447449243223513325327859951750737210380486791938761169284253218728085387949249853117009455633412253379195754844743686396265938841447402402046384765762455524224619254107447167463399187685191521721446549678891173464903979053459476679341742843329354657123711775341044745506003996966979017433897226877778312703589516047569512510384101987708520132028028211500614694496176668941728530810001181911201207352171867213637027010577904357879981012087901178927861495322097488589882141201146632309680402297475873096523744776216195240535583850170672259221109865958410402454052721573906484735845717528649251069721045231544723545822390771258994088123616849814186954685036979021528845277652215819788449204808606400310118648409572890714235892250039780868226829553507853855075076948142103105166621698839468917235875933007104291443911264299086486371154224475709109651342410415203960339224185283463566886331406508180205387533039592314621673324692919492040794722233686636533161827197345969830519662873347470537518204053687451264845938744750578530965161883997332127293094407926319540052426013278075601379904160575428011528740006164955349141967266240452916559603238734192466606795861380841158981120654016392493035787121095950365266681074208918157888590927114771452396134389041007198666417987415216353045641302437480145591829119749800923266747110399346160193012424660329554695449272858336747518876052844676991628747936191872733773225622405730889524291066560776356313862834033593917894599231417330129821191483422430935170459879068748395247926603501818885158887597595299103392686436781609894500114041435766934251331172039103676969713421976767054406141183173477955290153151682273401172592394553784370143085062645473826111039663646868801155687015918258976422063698187585568463318934261981722328067615871959122418487175404910140769848799246471313631395923209967683307474683669792441895597888319314180742103199408683307277584919727195630609813282245104912026965802570549504651783609518279791150178493841149004651956625561652797129330598613065631680304061887196529815057081454353752933602242639161985574961395729584737219411391788901549018529488314369142809728116092241698286399042697148374636562299516683546242195586683963809438983365801278683128055416774542695949511351819162143198791379761119077016704655794485590536176563393162454667776799087147125681579085348124423137619310840845378014795116113838278944759467553538538636849023526614999428860356116295140185519539984331757341677109212512082680306387173670311701496828036863662977204197686752154193321533496265768227591691094204942105209637976522484854860341575191342785081322099096629878269086311116574829975710554969349328730094042315118805624828070323274151760350792008648853224617156753935116705708554712530766133346468654685064489628958063846009831334030887327738435795311235471825155445606392996137008984463581955147147280138965620882245307532308190688052608457760297222884282711697866242302376214085036026509349355908366467630459753861124069801381483145014294761460889115329545705477625208895471614314019436413924494159476216269919992688993753463821636149368343317160699423015080549117745413270490459539587995473796822959669431788314913269273418088085837295177194128898486688745952202032143123382426482804835743143350815365467906747077966475652993974363958250627560537441589955945798781326055547237597261152518457506156085326041101359776498979650790466250994961463092449092553472139144616399202816014951071058731112209894455109421538173131723302889063103794116678026346327940888493243679878879894315844602500401214017632581981865328449645193839496119969273856181548471737331257564575423948443341013275643298933613736895305528166527367041625007007735404318063808464111786318579393580765124342332863851669989065720628985604449093206934455808006492829042534966860860000921567585844322901418135097563075352070544613380700473655977278728279772359423903545912367950893795942851295240887346887004634707536795712727603665407483363444824657396901348381144925203522377194122608653177135254724457365696694890359215679306890474931798507292853512226643194486641719527538352792682265356158079218825056917279157801233196171570026811976525481791687836211882383761960209860502885666394315420550630063013339190329474841135444849215761444610050145600945241794230901250614378135385848666827829433339662659298336542264736838303650235925752030174928063488229356385650778397166545759103817061751597331186878021020031780635825859700417524897924447337278798052494237269664625227046826929962398121324437441005959515935411721564410510932041593416656980644103186282982915239293380397202531005046171925265259206139251388063019356728362501740171770694131380580182755597275252410388352413790055134826883091093492783666108211942986804532052094635150550199231460550024739021192738220921783957964065688456214485215239810621406972167485357610521942284137553648027416045220822647646779708203255265484193486268020687679998718539161492748010130182443667167112096242527854162737901744767846110734903029610446962376241918634345430439911492005777645081486041872888624587244513366832373209773475041815301509899838562148798831296238776478411741668456128579964295892342990843233239178008961466623769118941587853529367385533906571121306965117368097372311767183980625898275430728472704432926051587454806490253577248208177261267230753687368682395240132339727433811868618198774546282327390949552135718003924207224432148408946844749727277673846997429817043383533345638297147097394556375585792898434608526324369471725865502932785145885282828829098132794600900362093439631135140470771615514863107759270742172414994899004726120078582218466320756764773452223962287611863545346782011607714647968590456264321825899373938184494599411683877157897065581098249252905707270426293451525557315064117238331889755715063512248777560101187286634528508999473389728706365456608095975446696964794329644659505040474210050387151145615283242051056552631507208147865787561646358962111494138100172375750841114569114309426375999224948331216563629682896037961720214359440833932678534704397680747368021360405861310294219329169079926663707543664623263730875342745701807037717678154323244726593389724242514988189399284797107420008952529241657481086612360365691970203803373489804744478594151210639890979791391658191534819546248638139614948324121685413146271827883195369281035768629694394670103171392050159840009105320883390519239603290102165045618622813347315363288043951293172166049369975094733072682214936150609016455572989557503352872817155211886831895995532819525086663888907689129333004255939622862069192723957562088431696856378875105451125479440206011401551700219213953088331493764055990369254533685803438788579437004918382511547059114411749093878007030159564345034414383764662088716249318031971030905525054862398174441445629263181555718736085893293314917480556845720090640287636642850305235479047200547641866827856657627941262774046985156293760825084333491172039215438062257889774202725935728022704773895643546518493190031102234998858138192195044656256163357740622737761075585493782098823344760375660603613988147154704060240356757448162184832125877674464916852455124856655419451376023141515019672509643325410848924892669094527741629683811983626649206994733410281254391754295677672374352207134132062441197901807431677022925247263197538109139176522615240709949406950914974266798932657786722049166713477747928334245564861526405861583670626957485145263389702181486777181871764720122337470194754967176135073495021752908954324497040509343255066833009336833002788700729448595005496190043705753795163442568796656376847431250965605380688634334841969907575363440453992103865214039267391813308733592871768884361245063996924601184829330877498901768640014556598007491742832906443753482650228167764080934505046861434499596046932873726862982864666679389505054425792381720315435274631800038543474678611781167940039914820439655124021071091811346787779437285800554933683962881966314330206445407520180572695644137562909982565596605510517432146322335918479100150074028921144747062178294919208852940608210310680341061344764767231501179729401511008316224823935397242289050832114626620892335893492489355004793326140111924424842235793830718467780680429422408448179793251061882085036640732409618252980782755541144327430352130448349248416667741326153489635388872207551480650179992262750174031533152359302197656831678344565460748594484315531240621771698293594982541014251035994548657130689332702810218554588410655731945157746592489554766126611261985373003534779977548295110592027984039192446313125203669014002840665642464208543914807308362279444348108725297982247644721624695965342007089848490241923845583827778074128482019484355246968032103269706948256509585791072963060483487883424853441386513315809940661375299832859324988054700022999199887742858110800335634783806428804636210766654355855217533660483473930350280252574111931082628255398501687799011619548022021493270489599490351689703962423332690933241883307519644038554317762451371858713835003540256017989407547961944183453308862432118885150110294559970125789145019162198937323227564462512607330650769181597564318614082240666524814467206210650340592849404013965386979448053187506546423490937752557132101175226265285616788217481941350806413118078899128624976462983020297967327325966399136796046043987433185380256658954418279193523589673708693558578801640220467381292059207789154875464407870603509645552194282848450096505239156137125168808793942841544188649305591122191668792516512880369986421086080303796291753833122213782505914623126972991667210923725505475790763815458765635772918197759084291816702264396510211856081550292941914092538549103631930433433667614435702014823059114308513886938112287053060389039685052212751441802783064443943607712283720099513005825993164441688327941842742148538484026464254377169298652004157807816844582646960894900035716133237068970708614466575172313026662865763353408581615104539749949615088244098118141735448418306793977333779141164525052045784867850454049995288477494401991879199863069807602433727802751405216355946394695386672645292973036549489769685412935597014415172307881111650689140604457493555365493574799025684334539507286663099878065559094775618951338583388551611480476419110435698836539641870071338670308214538593390177443625835433276407205306164828803578714214631419785001168309739548116677499586777375628602735140340601390425837045706303247114912262483459633628525432333891551349365218627696224409706694352200420621797146943638264768517983837345789371112368684825286552700985295961563481324778319149983714978771864104881102405775330710111179787972171328024800505382460872787856352292999558834373539067154933431848493481834284902772701046484152505182586246638172633853591466795619646706602340071870732557094420766571987067895975586430684169905739837612641389757749012339400613312026458833898239558473554370272571888305602521538457670018089277735376076910220028771034988631678429377102351580429387785483302226653157741135427409250103605793744101443709851239149592994249842448689848035737363571797888204062110121552914697290912286975716568944000923731496477867036075000028132855868782978535482865442867466450242172880099571119456042594628588183619925484135868242225381025895494094959050262590991693231704544650031706829287953204951002877563334898427207214913731800037060040562217634538494433936638472469739709600468467470228743246331213680634167660504877383853273282413959848714155979159015453404622359678640797167109109267843499178722412707364400072776285823993128436930388543967394754022455225659195350163781183471794220477941909940330260752606142818575793799419473876024971329773637259825873070852574705370952763401032091434988530539600268254000743380948348211925824646849046341616927456274695127817071124736148492745595349792168946496776246805861044720092027982130238247555960774993791751226637087676042162404032958454189188029864216477280589599660117092918242694443904933297855982153796865128120007264309515977697442704315814726794433606293718542237294715872502152261995937798755088493772203406095861781480628094810994413308921748562324989020141895353871859798502102064320695619453119470219100012564138029927245889992215822311037268710531100194780042272747692164467615264380429500305963200882227952989350787859722868614728627018757569429213428896507825173109204308783200923834363990799102621914475125681095359656236479888145827274166943149425549734242740424869495566776600735863158136970409056545784950927834594502119606889146191971317610247583398297033012842419398184736163516976299981388668047568648905727881502866735199168467732142821481667606553768819071017691916745159376459676390370296060944423728646565646409990822806529835887306714381331959696237094678903173591560000728509312813384296190082646318882964852796441530969883522062652216235894835164218072858261234706055642919002385680043588674508133935727592245334077713556643570158434019700360250875724628763205373124221511024294480551793903711444409065246032330293697332770074496807389085795702954451057503500116493561513513929500258014522330759480327974955127806171422627521273031603451613618238580711759587250412888073370748586487618499275474886003755639295490739458550878223383464959077680521863914985393533031249466546282874144445527497175147584979912663973034506240510862832425163200054301613035052697288146560198440489046079885387281057412816405154436016182819800020100906399598207899308895088239407933240203514333466040578396889487445821759333740496864650558671462779234217215286337407146963240777306432040319831046568364788083145901387588462336396266252227119085356226737309432589214161793901402804367742638358271398147554987214158903522701986594483673781719702636851470791409013363843389909503741216168755387289389385385258127718648584666433146888681150475626911622234542620610104888115509993256996519547903140152412500903852736688408945233366264727491075162446873888143551616437291557365754385069367035805076711021571686560569006613232986761822991998021996951428619800173453319334512417726589139865046227409533984937336009421557759968611784741665260973442170517583931310409113144777494782431863957935349395668588314730330902291296935485108906033385306268980310026377067004719335506346281545913750490111751410777623752110015287009263613871944307474860197166357128155817403462765290401114846893583309526342869242004575494746923491195819674738186234389300113727773773281916820472245939403675512316185037750884575657845358210013901506342951103137641299424454976292990570892763660595153661668775649307662337969734289066541331388980875539011183268240297444346666667795146214652137979379578872077068002044356059071355728453826371040659271245265647227409282994073354071063469634834858848922269396048104700830294116151866865027397686461506283784262312924306026497060760530153040417068415650671918381776451186965554843625414381684194238945364214645509379313623498999436081523335174367245758916633790382196840316665231769795541650654254362952659590466535689664145024733346134792012219144476022974475775340299110295283232740066241524164000164124785630939609089337614273755207449757203607211722545859383828297719161011164042413207352127348960300382631833714501422889553276024513232015316439513933052982938076098010906495569964219028668884040649858531395498676640409568181816656640367883530269270473027929505263065684507625932045430492268968507306465296757126655069076290412741111081213261521750732409323772740962820155831011566807920041907164363460760024680552933730950708367878395284084087835744719808672786240668952656967029146828951342789831513182826353144237175330479989419352540914796522032822439597538357335072133158908936685699003758489137002036045683300320086193956790068399829355357114752432941229515714784113740386248564439594481935955166042468163774616112147734949718617734358283450082705632604365056230874697163326608116297325877629466410059670241740559810330196766500535318695849105976283066483015590608787538457768206677767977886045196997154388818302943666136051006523981429604313755176811557733433857995454413072730132476383059674512277701415613435002227863222731559400753055313287374941941353911064247937435007577472329919753517854103939797068108618901550381670712931182126397350682382517520796468319946196926128514517653412759088854702282942769368534278130303650223039351704899533417414380118406230082359098159387110881083037847513871465877322393252741105965296009428697655635183267197999783940285317365713732428895442820491803630640530774146077573703441200985965450406415169063107883502743916663728419520169370852934455958150076056547040050225261870989948479399547173215629979718144446337547019793151265223608545809131878134896799823976936997413337411599804616057902100342886782468919446648435365481018718532970289823840351183929116730502418194741843939094735287703579551356947047771835481045441917175509557311036664805563044842636716819579533853385861788322667466529654699422330400288176986510245751101232068915794287784562226134899198544448147338252652348751262065993057167124376045601802471729875977540616809860681814077052405404078136400114764627305434021173404443352662252548702702041687038259282403046285942510154824020064261351117372015479593021652536089213873972083624895165701999433801536545855557650787650012815459408016602545464283523814503041688445102030726909874799926662708582157238630872817465622912796373302057883693216058116948291287430816706562680164489029456691898471245498861219314437015601754331721530227043989740562752291569484643841317912251317491538212830257695748146025367822200748461411550582847431315204922078693340070944240548267797765629804287762379759444838375950948523617935164316950164894979560469729344017644364747843164195398096798802771466430501237165055229914796447014450317779887951815977693927951289052359122575829813469402125341732740013308171684863555886290231593665603582920578095634813599605424919044335393137650874772967018123353313372899940110420993143821823490076289833563822459739852120452252299345159165501931781700996708443897068035274945339294103488244664205324656957956294970275128245889979440101066684105105234990961854678107782907813431184454079144483610807256085045676257750321730477151671712116613589081629521798489143239148065102865606140544067109117910418773686689283673730857157497172703495096853181173532357973281959592031852934321709793046035249634456974692496771398729021752550638224195876802228430155628866950377454107900373599956287740863515533919847979772721099715166851443325702537342341167269195800560755529202447140422605896979569534255230422467934946488978183284499173622100758735502442984852732568317029100615191923062421875322916647958381431909014011371577385244830086048908859379301590966658157017612405719042630279473193747189682686717168805596457711585054153753681096069412079892001967545199439234358286642850040005676098543686393838205156632738198635838727751678814496030639251347644104870785485063257789346011657464353839224460678920764913950688517221190439214485028742171112523896960518245332478280848724607837503527363807807072422055404056962781621283409321637005557664482683825496746881409625168752726460681883875197666592340693597989868573761170257430504958814475742788232932426109680914411019996982056106418263187514689958293061981098322046468263098730417868017773957994379464755842115680261141193611262625093617007171068499964683679104623946172642268953570529068157652679508984467926732901066822811421672997629077092596664854169552126437236085941829953910256611379208047641540198261767549225457722065673699351014862975091014030942281974553652228191975870032179349593075045472894877705816768491100737692932238023076316465559111289777071380934695983770274779739529665317016510814959202902421206658608035119438045704948947584711702905195231447887861864075764644043100847716993679800217549144696072763233643721538565783304512700079202894214242000298950583905262126115326749513392888838954906824602386566332142854899601405251456439755085202325115677473388078860701957615477168367518879084216451036404362694908039614853079011639653786897059665945038009678863445350383692861041107777382540436634600352573409762312553575161268571325902826876607606431233542955595164547383610922192994580997402472830037949338697859842110189881250031102670359942142148677897009460488414901433631747402408654868748274956819966132491151554483465813378571414663000365409556986179340715113812820303956319947330696445089396054418800785970348216184547522096751832310760377823823232858520623025102138452909812080841768164002912180825064380519985917426123328717374126383961864893651028864904424905436362190658097354571083283935447132341008939702117286450278910857125879603221225635324722163247562869664034725006409649154656874127976865526176049954564051019563319440111334305617825594283266052865785025767048465770717645378041120150157258377520849712463350842143026052254592188407328118297420937117524251404743143676897141045282762835273752014253264227603763702326653905712216255717227883870657546978477468320658808641439380653618344700027403610576752740830050125562684247951935129620263172793900505269076525533605736360232890815718640394899873549266842467903627125584724609617388949907625210789782870236633788569051861985677052631371568362612610365009174601511115846229390292733959641032375393182459834684072166963673461467600546619410940701526601446237989712852888598037751838016312545017101581310179645640147349090507126183946498203820824156157063751814954945898809542197504253077608489405225768912440557571833028539905654837838677868069067593833020157531419801643153124294055714399627173779257763643420474752251901125792101823643236934191651573371707572624652948941040126058550678390593595268635163512570194287492866572910732384097431892929851062548447376042513915875924710552821482434720693062050414110663182597052568813083276869183973938806149421534211945770836992787164027553154821578080650881653932199644928325801772968489525746312256312086105825614535210916748234505070941384419554998615051985272803813202322033597915860776637461414713725033049557557363420215005260232832013124598939786169538124092027797252763052307668715959507948396303383921725408315878353222027804230011200742887866098747376737950883403896935164295206888190776540474518297214890154843109627677238902198364656269507223072942610588987555177328548581936935186994622720758868378767325088577373295959448360235813888047378671668921744305886629951050306918920974091190313935796848093058629218331901726739501905607284244971472779527246123784100503385106187383935300953786183841383051490850947114580678047324669270349543076234618992060151989697575529235927504762433920650061877030240766526535469362193423526504444028692089441570780758160275215933473447918003469876453907422994935098572413203642675828166307704603139566766095737524448743864160986589302677095829094904207783273482611390238303099116231457032220630097566913870976973239008468950636531752568397594906067544019144419440815757487650575852788195907730646431581059545060100071554102104721376263896185984100835519733611720465054637866732623406396959820715631631693456577555751032494065163713158860927694455665648023510385883110473280178778159022187997303480696032110538421223181643754986061139253008251438453279829873081983556940437956135281901100661722153408554154863458622422226834164787220127880109278054180167523841515478329588526363059376960612714530235377515491435869580515998418582817531698039503629655276926633059979760238212480080002279685922411892565380338297390317871348821994164835554640936270677771539532829463908505482673790539420957303851089397678115356183583896285789198674017810322737681946473189774361156511244885815572521946357511081874810604213522125853547178361050571594082021745180383539144676862722666653606798429114525388019665906527753423755081693785953326073941921712893440953396039611705943060700441955340772573052502434771318973436928790960098874701202211767790611633109052176990544629269760099700929869783632872743325255979205093838583559004498058226175852985240740730832753543882081550798798566774880911158733762035225257198319011266484269757569481165870590673917641091461093898020183934765177326324820578933361767286170437004566809598695493342734102896259855541131557212976990040992166882839232069436294770179837182242305849874984760771940655239987574654488643382649657800341492328120275712689805415234865195040007621396409417517573351304561558695101834729321868467573774214252395794467985654561139326549699520299193988066181061134848089301372562737166456655850692189162696293177672592311224721451962772374796507319838560545955670763821440110276463516775152324776275748431387174242507029745475749170274068581733413718880818015860538585834803895316459613683826398724569276406607853172735947973685240831045150610382177095152865571791250725539185916696322512042329268380870589765394899667844480518025793088759690618497743774879035996036407671735222588291661250016436074987713507418476018735492713226608825940173055847789532720398768801958381825488883958325417151994989617265067482666187183280286931596973955391770635054013454047326515129393801070762141045533846801488212821055434371512976037282674739677887881496804107085615692776899731604954844834215602464424264358013515331990858166000271457530303321262884291553039265245002513982061745865573258135432217684341215058889028521217646757270654848926613685020923191459401070422412942890460911191876196091140989946160061974163870304622157935538600449944992023079852312309800938380391323087011244251595932870256807804197419975302797300719709391256225866876100724974219406168344254893568183841049375078721055308378402203554905067398208645529807837525688512458752436590228687288403904642504629208858293265030764839084781275816077608723443548176870027500179989730013322401707115023736581047538089730203999117185403685623173432165066816926332606559297717543486506055967982006999843401929706906898559131721251426018023809863155171340634298408220842891873781753796193262888265893676053257474018392249601975621977540615472624918021907906333771277545653065631098347834578053586500316449990218315415387690043323796428467527425696520647154405068707718604117112919933745787305227181060791515545718025261901672131275574597400180612916278772894310675861327120872254709758028715062065107846137987581298151161391803111371023776751820755527543908909668384128804220413525336702364908395682767860927941892139088895725511473468913014829887769578896290835473185141842000982039146200079193502881840477131570212261380337465702204008576968677345100323487161202004301330774886948059422318898170838174415518125711035616510639746796331746093762107098099979876229953979680289379568774200313853036968357815329538616583082685957974747830110858358781316929963734810284606150242425332898502670266842023245049061321027068017815953555096415082618144089870029216800131192652072053464420380665029690440693239766305832210903462558220729694602876124570712434711457936649330677753453635121806904893299923877886237010847110368267109609985182576101217670729910732399317882604283788125922479021620796254138033731406067370822004784000944282912124462381947352292420390387856187328390566923153608047735873360441750121239146148454937823534734590283605450135452380164679524884176822185826493131071946579813157618228856995569768907878571219692565445974572725497933687606891917951708348572204471033919554062069005884687931051997833843181482621101169967736662292045466159480269355881717925249157939968664307081349207226166877441180085421027808802512013361590605601241427504604200278194794823802449567101422930415917914679934855502366181575603620945114986024064547978146018316334744759779263590556427776580118748043014684034507515891391866482183050141203188532438639945866799754353838374200140690436554551226088959150306602060404700495858919509707685221158497817174900007875934013712305899683077148934383495167068691871223281848334962604690632546595387712207099273964854186092722199657361134278690120679774895195629661061980500126720012288315733369684318472416088733526869229897949511197327943088176227520489913848633868848607136249037214900219056444283065312880438910790018731108025809515136715726184490868085002610025412068720323883242284760438232902809450400400963894351019089661380640016866388799528898847722840819272737290956215072801598467468809291107449028211832147421794064791586294391927817076538992763697646578994475664289536087302448418471980019850591413572945566091103745946474312412005780631640044214474255677657821750855264851365479442741918101775283173526667023910597994149297704048652293327910548804982129182577879721745729944067070526117212927400272929520484222668639575261910450889934953981936366343368815071579834160930541545286505191270802710241132470149366866083466243890622627610766713874640004933172918610711925100139140870728904982793496544971660107298109282610576291365101179283735293107681359623979441227487548819619090641546300089648347194447552055532521043224223636472798750261503418152518381195445999064861143647555062259862579150440183948920867750927503196866192097472864028666613905847868910923422202499120318635523256888249824534615854440823934338573934153363923034245356248820379628624741836292129719431740792778885472547160734363890356804060681594943489393510246124462974797812599163913682501052257657881088339895221339766962053763343919838108692989481665088861482446109259548631595475356525121686869279194786022129380746721915786120713599206361981977140772092719794533458217072400927606141291716532595135450277801947675530912257327286873875041461448483572070559427159185349288414329589501194836050449008856648371050804673501976137620730603806862350532148157150978650163069127574658103266695898191921392138715195316092926725652761508653813797159049015490692442102774078681130379366633550593479707852123251745534913242162425426467607582825030526002587459090873853690425576589870967362979484873381662643213848866842513477997484855399975912495612506310330979080632085235280471503453023877777291034637231058559140734285076424879122251634340160933712815753657093868978370244733039155899039431968886661198480627440254841161905577668491141258189326724667241126331437072513722238946003951077994131025134039361624361200224193822014012917768670492389836851469155796948167692204096232249663508633364153986652718782631015841641932335086903139454944555762004630391792240571797460210656381306500972762830665296650558600472016907656449190854281856086984802666261877914719117784990462682172422040288033210089987737240173725039380611193867395134160639787192122574216325688488926117545401354408798926643753164139056343386129453800983941669599402578499109013015337372789898483179070442632523851546908922566317120235638962439940456226101463613968676603731038592435831793924136800558207202264948931958643087085095185987917571322870434073720099409618504873238863455524717787687670757079573085471441787591145323719217044384127674153028252607737908590542503664485329135379099861057519267329052545187723113462088149861966927130717764081257752421415436337438578243916352948661001262068396732329645565172969933545170317312309675344208449730002640595024066149490995668700218621088067474203510307302701638382225825329193832377153587202700327207467952339536025037062519093113305770958925068214833374479742212099911602972304465789693048712718653603725752913565465359322171044050626985139338151767143247951886296995051367941663282154035734383614347767936451083963415452272884143086810219819086960015555383789766191357176522794576405113534555446636312110836692113147078455920587908091103294759303784007205748152590966683352747151424426151247349240386236071924272014042381570017973061522365989115249199203614214525991661967886381873289369361428076529826730778058438235628817710508249087493404279489731528171262991127180642803513021676555993306914471518510083211177923206880570632791931985935606222232005508353241682342622558007580468750494003696039090721446235151053706760721275425284468105451142073825253928125454232812493455534968807346996221289480415331065163279885132590417374481383590785200025163432545725301254993694640330858159167796316281694996764602768721084462091216373494601289377528099144972499049293847141728540422240435941913451570546464079447265912025340306714072867228616530289102069232865496797425918254713832267807599745540112930286485815213677612345001835874668281042053788659321906577999782268576007689645595505627248229282433936261216558203709434323957867027749231105445649151796520350485509519494287731471841578311960442821505566064730989854524816351977979301853956670213587915372808659736499103457279142475852130940129921997998197000804652292024342616719316776229400276691246120602732360319651776566893248626845011290901389010685265328602716488118729538837710149562549698012900140503174265365638713015004330448011524988122723612358328736545109843758410028702430103469552305440542621371328047093797378450799767134158624204199188211404604938540623366957684514259035724804926102401944273335317263121949282270808920318981115745476357610631659212777493405392418451101975546411361953407518939097627323637067946349692830627836053723362391060384248407049496520786818962662115404543110347903462932334478210976235866632824363307249204870490465478582722088154480157737298537904420337430308470942171930498255049957987665129294651121381262742054901299263205144158524017455532404417785161798897366282957691770778381406297662944859444745485679544133786814316109722313475150535067329959649445591136247151661478310381007255370630162692789202449245555495832650665173606570199078270742858716089791698876169456707309627604329408092989556443914460416250196320150813135943938478539326305794452570322982642268129762042716672426063610088910407426336456127304097539865078833773895696879999651102563985436453347724944608980750395983441433697027828121558328675262025671862788545907661460489821873714333502932036956509135945096599767627275212810433947497965259203570567209504811530324655979509350907438343516555200231543665560677399688493373821885144234130369848598470845097752990565593142668933950499407342168180745182574866447145529756155623134692264848572967486539858611872668440329483701408087278618939152989130830681770872596789793639460430899039622939900199617244688240131491983592686736731366690947136466839883616388958197566562871415361041257712732485716467616853585681089874923911514753434205270617770711054586587448794646478466730203942460152687123757565528012339707244724107941675011993275069333350840085047400257506293783632296852896267148649405403167261397717481715361711349172212358223360649260612319853835132036580684791056234712910262754751378429830218227624091811170463924544074146571604076750051047445343567315382336136332747521911192490535040156317506354438991743519863357882197946905853510861388664161045641186297421194770924405116521748652738279031200664172340589399143239963823166098605861803981934295905797553788907980927444177207983981170986204284401701730397054218595700251220403033645977284551055865027461427432566479069111633678805713417875322165378373439473167310100434538405681524360460935225821661441610476742670517011208048640655071282654567890756399710105193793333619045993586655795570810494736724234897444030612524842125682492962145113924528491370049520808923264598281473459017187306064005715868928460657710853274464978656784092468079917154586417063303862349225429582890045499106761029403145740144890632375242657788042429190635660117062461045002299453740899192535093956563341753862921340716172262176009856179081189935964924970118453132099169753341703109778975271938468144024387104389013167062834355358469498671343544168510736917016115102666398532820987379544777739697649738665466629665461878331807132808045984623207032937606765640245972072934852412415625287273836388728589687818503296437142733163080811199349582628997679222150407184571546283330267720143597773648313189333038540218666890572416466440104830270888603475596077112114610739797445437797086334092006092974470772606518282362305356200887610581674992452895353168936858579989464485070115950277038591297796146505122732589598514096695360891414243217595761995222388434595142100082694418662420826332859296410338665631218282250569857422500519259742305318734866349794084564330767121543833458408532696967831047540138121590814363780761394707231205409467888240797682418633012316475864146264840523633968546808080401209981901090172857352071880566110300641454531938177994758797246937828610402316245027999655028916926587569289739652595469167240366809218733429830941202362635051475029352770109895920159387860119226544498615316063361823632200196400630390519570496362350476002075824598565955397111374958493575228974395405593006187172588659302006798551522275058337126704901489826824461303868251287291841585245146802651416885482074106438068952631742794872885733072626241682613823383677775647402714859957208270107660985565462505378384071383659526177658673209787264329395162803910491122599280984659699562720674808439201236336065940917786906887609390988240652535750451182242951689242502238356088691048460753684100869396938585828556520723464281110459719301285784583242567968221025510284655004940301918871485965125714957305360572637432111690160230864925826840811295642408171557492888868614299798443790436060430556079187313938828529875273362079174087749824285114077155227893415245268043292085582020600793706746845761143440803439785613793851168782438325976914892391893909149116418846871695276022052260349819558255625112387407942231049510476993491120366419003639127797751977525679813201170458504380019493031791259423682979110583400132123096845542303478550031284925048698449713879473336611628065959860239517287541012495039367534859017884106570904802234339402999948590012759585759202914853021816288726611723550271618629524252424036935933883607393783465695027420846661274378536816472282902688688325659396950875659655112402984356056663526255262816391397835480219892276859369920674595090075579299911187550885170504256964709111797529446062222936663304598122614648556638591124160760069897864205184221905159868319098493246357812043519726949952967805253781941211008547943768155244556438592696060455543172599638000094211174770138757766256851879750116555170541415451878432407575134973856484433783016543736249252488236061896960539029861516097189735685125216552388823017225165959241615183166832253317542586200060355670443949549404858150479695801462718515978606132704206077216906912283058308648077102197741526762501459376849677067345887571466288326993829488962095620914718635889702433869628075890751304169968415939858298181455343038408562553395261911086810317149296601454531516793117549664582713116002522891172289993620475535100900964733977048857108769276637397880643484069305988709880453223257946675818270488093909554432329953012643485686190889756063430115324284799827493596615510647276954518671089778785433779164382751380267778583921611670607744428241986516186996701683134376439858362446075766063443476164901034995406678004887488448507384531170479174926443302226378280823118927696067345912586868418377251945465621807138238462876617615719209507244148687099397886498815216039420803624649079442563423636557205106159609591088708816218172229378121748734411238685772768496082366683987584289793485535004836457539648404591419848539671394377552625285066777504630164372764064554391799539248718211254308621034787216169891679938293933388815110742032550829467341185821198844586197486780169849015259057270998131067767756285012663344202335395407461417053047554163334912274075510622489229844067173811294743073576290242230268562892373044393215170669623699326304573436985734669636280982730176625472464095311602780957050922810247912426699080989768282193097904064961864881587517917560040632800793588171906285145907321852896682886466055635375177046347891152382421935077453712154607021430326135966126607062282652703701295524243658952629026492851078574104837916620407257301107125849288275094543705754059165622551018806260030726577925103594397901133244377294050937021348953973166277124370513644452093471467599244173300513128615912682898215640762022993776795888358311328029211839647404430470031324344047665119137322557330781462519187757706708662224653332293235201572658968287928108937700614275036660787537701024106819957161875706947871078234470066323254406663487501628828434966582153978513183066639893645182109190586039901621444441523263170538504988197278042931387651883345312878210540514350392060178942091023992996885619428619701694104364889447998825947207457702756830395920260898773235213027076890867487569820977068255351129444004347248594333583426798815480087150616467146432482046665515591644127587507124048331529570946289486852690383818491895021345122095713400370323656819709747103646538524479474701528711597405532736599345281441250508946889011273978726812298969332787841035897651984489678778139648187445426602756249151671732153185833303293336386106760603958970493468196998804259674383747116034345000660962256531202408707161791331418266258281182533620923186923869253018454938093945417179298569450126509237881642695437661471012338926635408522770283487422225576408277812569365610499012547440481056372361951226958156084481414261417716499390690370708190676438921345202164239860025332793887785164280179693374479046875071993923369510856990829400291362019493299946056703141374005721376313440194918797635513066703477008988737051794727164179632382453511223155333647308993890207060845259368188356484828503358286226934648920307186437176389826825745022940667827146881896700635346705982864191646348752452828402277414970899822004443713875042636511825210654541799220432039425087310491449864039312030492490420089737352312777739396554667680803476306964538350180409328207349169857754641787910705556234722956884777331175526747962084808704064813554034824348039052698168261577171211301542475866722424566941787521856503756051371081998324621610926822435617418878123771745729705522830746461119129004991532425531212296810044249849511145054725346666676117575640606286573907222534276537473429292961186498207223934724741796010552256488548601623302903937181676816227920244814396450951374577111197298201480738810106584713802274304193540223525836390457514797035402553825878206035496781805390841344841700481572622324217229012965073353374561427844425962564646563842684244570586820755579543733833966600121960671707416678443719218566787760125720237545418188534672203080714541491723845077351992519237978547823843312253239839823887243265423927917198799183181271506403968561478225347316761001966410756487509948692247668608135600929539765764664005048192222087188165630252124937690425731223689088265071362546466121779980927904165255641067757455979624281121952293193972860792620535410694152280926313677810044997785876548122264518802980647640361065307592098610081764334452178141054880043232258169002279012825067315124946169461697426501389025613147638341189326817573581681938688445454060094923482303392936812329385834680787565946771909605477034299769436028625975779464444288470220162723195143958337793613061815206581001671812878743469476145351484434586477579762599223026126996619695006729408434132119082448890542538055875108654872980677715062430552213198183263995027094147459912551796259306752800859546208183764503225460555407721477351353385379859892778845486417552359068549781411594035923600975269450826127208948461772753023155962755170647426697113564468187971183290251594609206151361645783920549448273546424636549352462742852703106972151302037656890723051688972216280722574813172070164550920970816824332572315288517497310670846268502404125044059576497145468896035125523366350690375088429540093664332354366740249742781148007350569552938209205803476571966826368695744036642546545098241962037411986397532008502432157931568639865306840671142751811216270993406440323465171597385867769054536542859775861923790691588745653678598372031928389704843985187079879940586584063555020907371877842736323768449949977479547813067499181980328965180918126681157326811954199961132768893873009527308882885476224409099939830892424956446024245418840732280482547878507189995762369132317929547348417274362861313129091173768117936475243353975990645209524007707272537655237099536109399606902786345101686447068404907890103277846632543452967797624517263104725193995469725968643315119792746650706673207955405247794961216756186818331656560963174972518350360132038252290129570362263636280049328716902888996759109140746043030890507908988330402079662387376188000744709409462894417373901342615838501637096752741415269977428012691467357776208238814561095253705848915333988155416292026698117455052210082288220544169910271055334865381987144705440904540410088688951961393895696607165238300388046104778366519546336987057704579006805327075868025564729169779821068286704797481765122751345798012526573755408584016161547231804395766675558847718551632225440097955309645481573697049271793616890879707114547347720621990506975259565142513644400711566266397828587941178296785205777234210319974571670068263922182657179547988516632644788249820026842431470612792780298248786560508148755007552032539053701960448393680741944752823692606010089814445610850522237577585473626785835224250346345734304944582797435960033113506902016977020521388481650716956538244220456034594100158508333093829386295409850123126296348032545951280905811954777514959035986855867951072628366205193573472152467514354727572446392701936366464469686175461355325513281422547273164450312980570610578486592682156340418664807560896045195896049048197045909889498930137499102023798497747812409761026889790042457639176297193998170828104769557725437480767993496794901027728339800826508898653233854045750393570063970071138214866803682330048101820252660847865332489690676003088088314812751687899349756567279208793730055477883556351383594447232175451970822910251411568817109739933536101434918273748316302085116699551144395736165836310013473558696563531370075208011779918286993446225363302290456965273107343295891417150848656820561216742092648040967006916404911763889692640641247901335510147952118853488591886349563399108792323804769182620288832170557588527704005774425408373999238246340305010913682830051386535701510107108732103899138916807699046347714216835479358966801483503621300734872724277317001523185830741197459556252422188977030706441137465831016429220637958287679933023962632850148936098147187073349476814111766039738962426851707897524533138657474165988760133618576245179946819801483088240145138243568953164474789077544754066099574423651126181255195520692429580225755964092566790149193999540224050842131785145988500325393537448181788843719922620868005130832734605830181730233611577661514496173817478710930355228821528656487187077625447447497291610620605332640731639558321469370474539149033807414731645928691206172669301551878541942929713282148765717721115901454102286205700952557399510473293655726400291271753674048317214532344232619052106142035341876096038763275917223018271126398459874666657322484117804095542000724174220929076531747158460436698374652001149027370864218395022637560391022973686083678329771834701542511037048606880740518933882673927169752850155094037334576297104780940374435341450958923443674757641011498133493387559500838306889265260635630574359444198493832249829214624168129748487509107022380463401935832254488804299414294770979096894398772468861528832840886048099239010496256735654382111949658554293728900756443669908128912930310808227504838767496108558750990080875385386110609039900567201733021985804051158348211113212218437454711147611935285758616628198865648689661528618141126912146934883200156619367195034030630314134220211947455179801302505140069730522343616556805170751056375554211487845880229173383068935564492046172737505056170278765325759603971030203247644751947873655312125053062691732778907127129839244583331039022835557693761597610626811563083457489335890329688108127075629864391161088807487859984840879502325492748758672744120621359141589218073302329312743409622303667670650873114910062371678437227224415759527566325048768906987460591337771188487729451465831945433841775817359881665160185226646530465037929291550612362245375086523345507574951770229629113859627193102425221087873631662250472197908454644657030932443813879038805404234881461963727302570552504678945613440476671670048047014010444297106281564848537023021188112658722571755944786802836288913578048501197580584783041047936468579858485911203083142243651900578201572182272802063864544513283449229777627874838724011253467031151421475735864080005365802906690728782643872694900495018800544805596680159224343986874917907092226674113144260631153706552616124344053695847343499754656115740204435403106852204814746393012321909499822793783441651233106906889235868322348882032317057554311169646863361891260232314771600924990290031712493047461334737409008144253863718357271814545334768075151923162603659683992671492744067281966147011674908150336849073577202472953763205150283327860429697830867598262782793335195455451641080847409199417955163172465262403245991536827916380145077340268458495622465601740706884310797532034822540144855389016464027068825418933533981508536674270087487274714466374325025233643596749045625800849533585805615418506250398813362649240704968260099336673056021822815697899279944766771017432625393061594277030095015605996592523424079829868462441972014870821169345932852811039710566212804443132573985608999026948540551862899270965400688429219043723464583366640063288970131020776157598593299297810064268315172107310353571949500588158933846786298547954627769431273518432219278862292598430577812157982938662523304855162967380437168999354757264617775562910147419819800707681767544856190903539221783959185156055873566180719129126316716538700599563890307809561228993794259565220002769706580817172647486130433257385875730927096831803577219897662543778475428995174314118159806538008564773897974496772115714801338687698703741348654260828866221738304884740489868669857934636531333043345158560942776452874237411008514522589925301801216013137887232459059594365882111593099801733858560876735158509247641863369851424899443288705187588178795691362821864440417498523841265814694832334858708804307229050110705917908610917856301086424483299410227603624786345042043242428675508281615357777816289297985764069494561148974734832389923836464241774403056580196694358136685541272975135076543981923687583433466334505348506014670941168394194217546547464316746564665364654122569280802652625813908363874883613054499677285130365845339234886147514645762760018082774772203625177304848631480187935296882568766177046435223943701307228156740896692917573674232720977767977134467636707597735711994874227888299642658733831738439152998611387330108724845044159138024751004480896860831030797161335577856362744513032037711734987077922545781646605990153129514917289326608873773350721779527389167426678539232076488283366735937825297957386947225106825811867193762728765386523829196742920829744706181017683953580811614377864037893232608228935038890863997016213165468900873891070846271331387517461773342839085744617650937193048839369555312278939159108950944789109110105987088498403217808740390068618806798409483661265016211337741789682124942895377294675546720419357578185690600569340065798400556305035718957797800420255030270007851816210379872181003498687255701370242280404515575712499180401554126505257944038897025793520233446913746198969880881092514706525798781020474648449560557385139180637032730245084289279910109942878996240413425702059565806606306850856603118997295331338228193039260585174413624934732710395452559581541270797758616324210292644079203851105484717673261729609695551914789686483722083504269589222844462472636341830721424629410532879142212052561588264285355769132516679620446046983930007051878681805571766043028304121016012283402338369824519136377534282154244672504846422850796169507428598899480860669745204524230506351642508584557561304034174828540389734718338771693769885188148528975001460848853146803033360230890427670854174212359917332029286706963098140254534589009426286959767292512788710023785906902633938903990797377039840003427967563615310151171162160596046053910232579181818525153109845577550359985435973500087303072626769693671731883931141198080833060773553774287360181590573072608038702775230886188802754510071207543733714879629574198960693336438822173203761036835990651549025829962706144731097851925231751223587711787584616349305523529575479037466390562921302361690748192627368061618933182391531849115524455076413259660389356837644799804624890154933275428619503842282063468951567529678634234224375949101197481907311247126234064027122386332157108352549661740801964748071125978891174623406343051541291861146082312360739434016686880054079535364904738325600084365234635387283409055491092194385708634320025192597531243021949546483047822039251425045978197119402827651512848708431482436266364719864618188627857606547173959105047202488370567948959963988697185489169188906839637929636278725860383608643479486967448101974500007986222492435663337308492515913059540927371789032009588665330326022304276753127343117529787989610646843217634927103668324660550489157326678270842565068085230568647597493638834677674883319179798627447722858512855649631950776418269680144241411052291370253171716430399944964977258870828758287469453370259115893304848894556190141622068623788763333314580666222504568089766394821017433836097663669616022767416208336330964320300955147215892071929707423657621732823657540005628897124019774614769237179373696012820481219843695127159169951887912015744462216180704849695464257579502476080493126576198153325898418587186893410060424220579091765261630744016274382327513246526598105927818174281424175404827226495679064148558029534730320861260290391041628223382784386370942009600515641991346847338645763695884707231417075636379100385447118321150000666692535638403653443870802070945057490748626391162735181274076239404072897190688130244969679607078104264153866108416519147842954186584275970259949468373034270811910083153572842711067037269151772148510659169469787991172398430824909495904893002948150023962575991203029217423248439208288733212521243484090552469738822875042071136732107479715592562188807524882646183702594828452402685130322492970039329745902785749183847548326015736500783560325803521413239046568566956009528474148168709043279657339990459125752257786860639236690583487813562682817441017680028832808619444733659344931466321242780129973467960224514135622198045711980259185548560846586007892537980591504253488645980207300672458395848424845023694421002414007503003903236421581757629900580561561353928803403846790943753027734195183029228219452073328644161897957865198605259562678170780331462555842178020029760698139931561794777252402231239806796707300006257493419916422380108107700527564149780665964073735400687301836234144015725366481659167455125948074861328367970195054693538587706304058039943930114335659791676246076729885233124393130414208986185249262040827903502656465990800839515250146429942999198035057875439751736450079006768667769314755521304090072344211937520427939032999063199878995019689064736682673286889990711420731328846031179071937421184578041118274046727177529811624438443850774843062179671119937820202677718258000929594451650620197349928039109144044117782359363902489222067392732760057024599484540620356716548261033234901624569427700626965964851060991250302250950953952225394709560906400259551508070625279824304481122627517406473638420027950379118249935251410987334187632455706450039287800237952144069574813889333773446064916802045769487543492137944181319604296071734145804351253555250919558115749887462325010857916954340416770643101558667050092305610113914159255712872240652679833872714544700156844829351023603022144552288313280014757756683012328936081314587397695862627037737930488614421789433611452235200324514235956403231125123035309746051391347717864764352211921306605984572139911940824043237182649913482248746301314072200868300204413363641145637852125637188909704816586456001803283197477130193812624208380679441680486362351246965808297673543765835576014775499796783028761619539845793430696039529846592442450717719276542372538313669057033911303540671355369442121547218862081002016549884454620040766858359808689078266620358056416617458162281238055710692041587219458320319418609561784814698538971861109313761847161037686712548720636750855413683910772488620333545080067582744914004276032155256799030938114662002369489737685932611394508562805792159974856394443020893800541921196531838505638125004862147885801867534247678764584482473255420663670747467949184194262693656702273151603746025455825961585972413416144357855459174013041418663879725061630112080983337986252232393521753175175944368425074732448614220040430210114644250652668871270240745030949456242386992271894675930649993737714197963051310200955957028311220389986045827920534174163031430096674740605600319743607790755197519445193984053543152970011239138173368954850245189538964523142086476823392001866774100380975163081445755198172759245128976736342538498218403329410921992284167949984907392048474074710566548410535343300348404818872990114032442116614801672339394339547283772623147353589914210079744756895124895645868577415413852605865619549574365837389822295597825667213469051170703008324778574336378962362582487435304061757174500983243731825606878501532576773100769088899731625030899591318524512002044663932777496833305741418849730071234182449451041027198056108037346279001395916635488161834272365965411985038790972564630400691605997310564280752401464906728673142046185975967596250074411935345676287287231857925459259304221771597173939227852257026323277265307658247332360526203517700204488009419727434692340441867601832042052592363299220813281303087044540591769332064213895516940155605378126308730662223528912390689368365290438945761363678417240965143066568223630643552344845318724396263659219232653884597428365095402101000023784908207692996939899186986861392496985220602325288966022408619873510052398009584008558275802296634391688801435113410292977100701695122111736538148736588842746601668721064596582160505072093695091277860427517857977309572972562139138846587864136241665048306125237675683725953255337742034504787871194729395651807531402438788443787413979464247318730460293768961087664450662598279333008906736301251775062342657545984943582560881532219083072928122324185173677996920107844738834580124932605045584111208186603410187244417982777762211542571767326281522605363734900739802391522257123816236545987064291740842330010844860143062674710886309375549790386443380006483530009958257048340021707324796882726850737869261451265781146971586577672780002218628643768052156765193196803378896401794075022505869641796332276648494022599838863325518259161141684970789253255928986526067945080374979582792266365539277019781396360464898856130256599075345475658893005208876173308905735300435940577466298863167340633618122695748479228965037812743017204173336783267435096289435842399703935602186444462465857768482894715771737658710505017601491144545266129415474652034764925618365852262687911491158706075745551835236710587964247039870934638042552928744659872536302322794289576924727592211655253363520724279340230091084685008170721744877624085834832374850187733462333254646083552299753063158572577184511425070763912377945935364501702435548215152733546828389817801703737078488632251568374147246130039403967593894493254366318100499324842255264320698072499113640444866152743565130155638254853892788222269943726999934642150351729723727587409296371109293350734327281859912877977919667692831026697708572463609198946061907266498611073264177623998471618995285296163083285514303212887789101571949167761393937349100824157512964268056349475922105345094693441193927606492735098651043829056669045433432515543394235920092366581650729910213704677649237605819282003458750284439914969603577859448112863542184634811419520512526021823030473254212856049802474022122901489871180462925005518473563717430944871418259590064702601739541764188989978720356488645000967748533101275453623254479500273162458494227830823538407887919052643375716358536840369589725698797448704219454496217292191546592683961966179569394354048710315805569859978484393607287949365398392546744934095132669934011674348701353146527588965740794071938970294133486760675395161037199108930528080655767138490586889118774152452979882991986093710214854236035558952078505010029249498664669809340837332472191772614257962400765171159355119432961122901572902899776635291146599425994356712647448486037920119796174546170619669121779383356656124236005730685803551141123156480861741227871119670047448841814735299830843047921917686296586633378684094561795971730497958337634241383518401767603842654937998746127564461671893073798758419793927117760068828003457023745199222504993638891212314485882027956739456175572128668637833058076850076573542544618514523164719146058398239351896108013006391587767961976189795234409838083003791977634843622521752468922967088277669761939867435586337655249704244758988468528110499788853727618612533321831815003014538523944687334873599238903758074324432186141247046586740327324011303566431464068687238436859277714071946513334779840138988124170505613654836210908375043692217381609140302067611054732612732032041558221009018253186976248405598371596839812326972187721020275809437865632315697232309997884625251998369711094048113612196307153516697994048479485098904837132308327961059373280492872520418846720272425866372016572601388394863050610914450479903949691633292027942267342596879164383615733069680273494558909983888739197280030882085126964409605641800948429035260177486522015890932552830658143104010221911540223612306233085007551688360497712652947453731777276628710112119748071973516363431177755041578170145273620580312353741956557259522814382593823715802156878276792570180394915312614699563852962658746616182661726362313657425397310864311647139119976362247053645672508039870841318376632544305561093853774860961043563420272339922558243009061963109016075899967710544233568416743278141544667323963440171196144042105151678377838793613232864774376421847531723960938649876379941959567313075275295334014357027952686215680607319374703991788873512384345072108053293199251656606471375987908671779660588876647192614325004730102482338751110993779603606842523122784469003144210149221982064525351588980869445033914443498897280099273904353842852128414133112659138743663189007249671049961391055023879864919271061255895514690469462857585527102314486853922607630814614597363343457089552909365667728028308060996324349063308071408156748540930482410575647345105368734530642060184036231749941019308800449956240876096873601101531344533003539394876883907428859884327005474518080732892478141546699227656775158130317466447290756405786242410254827224441301009553294025752388856412854388975138078216334193086322795905015113635748129750423060319420778104305500024505170520644941774789926429702303184037291584864426951830632818033218140081971853411821638374548588244315257885336298680971813861664465195746876415031575474955922887678170052290501823372034257153161581164342682331609690440407592855299149892931016567677557440583736192086126594963571211988952261247725761769392996948402863016147048657016019360053664858521779018674235756735916030096847043653195855797436618292441635204022977527730312171358438190155835101721874843593712695767197227461130821989618555487521713283282731107075142849522550305838745322932786098563532777750650736060352896241317396218916395817870468172513437501560900615404382915965462864108340373126972295248357533895469484364754553610785333155014847516086657547955516243288340052813053730564707615687646630450812629398129630783507322799761814319718131740407744023456274627089303293555159835503812468785842726173636457115047850586364761135386419458336762728136873271722231370509016287859175836009199694592884114241881182375843836581562180269233133111666768700833725281188854642655880963696144511572593111655368214470903525984324461041418207900854852078328082777447414793953896379290292613584049045218080506232015173828709755715116090081218074603862741263974298215594264771143791807959508522828938802484738818145257134867733211564773113993195188917194141632485558296763523405809341776935527343788355596471128248234329650591585994501194771495330622224737385868479090019551522911234665136646363825423104280248703446655085121368153307037499295170862172016568015657660173517574392373149601244681216735178053954991560719955376487289934869157507365171528653406072806165142042467031800470890584306510260992842611861506231490114521020280458662730381241524114092311074679021493320473972648951410220071657802258838847071584759341663907351028387188005366372846049089824322375705730991497573745939466677414716529888183977159080135908142680271662892360855199242359285432170624391273747151780360293110385299932195017452348978438875537962492420167390380707602342352995771091040122829057409418389570356656150302468528021649381708956780197365651867756050720999850275484624941042537983260722915243313780089775335244263777465229994850955349912012960534636217731854424673035153994206669118411011126175111576730225362587043943463767160140877944168132424286789664783952024824070577516895412631858562713086847298829049351056215119660955762766966382227470253643565395261473729632935283163715200809249954633611686109936057971837221899606604116310383379252721984780956560562143041414552602659226412597245889063162300312340231255335399630970363775354553454056001203483626490429605136913544986849450336489074072504728806456696590435844515382499973568826438493362953159929421221858544908959045001324771287151747317333482607438575303169395533557739000834438034789084010226016669763907799673683368229610821379699778439099858539695169348146943023637343152278799938846973591338723782559573822632965541578200189659686757979216359205636447199731371656651638097572105487670372426241183666450880093122044319919467117971145234117906557502764593435166461033399935730294082679786813567942777682174024404592028416354239575150568930375151742883573503028705580274259452280271788577731463496844181763143347654831686678934991420163285930359386230150190795407858723556806902780052778821789907904274561047945054657299503715397378700645507832144329855889164283772203879711373235420151235153646640784530813420020057241811356462269678955902963883247115571732321448439534361435755217432451549750388786643894358404728551344775395229025500324446910203693272497724356150213416069635591417477047012542807363734485280980757681973472292474954630459433504987685462208399822321954774670393425162459998688762693623348777094585343121936336328421245164199955323820220647578746901319362629554722036943087382279787652085379342149371495571654488154834370975664099336141589037386575020066755046723287979289897023816932147250087980138919834681420155647972500052391606358181190085708792240616073593293095558777851225954761651149984200782193628503985649556619403209308524772317419318230234225191279412727896165657425967943638114421435322991087840041873579753193961957525466683159965172935831320856637482182614954435764883911393449918721798199274480493040249336809042582588638086745463741193696092562497560066911976606067401019914686501836256316111526457985844798319864670934006807387076385689107885274915631274560438148583890708172034159562984226792385207329922744227867097762976677524506790357097568491347282804242070882773970664638722941142653341327418116625861761262185463099913591352252654013506358425454444740424021143053240252783986666452927035157820015418432120810037470136411571453498556554419939812183023441119111304085070375428249135922161999573842344036569550230842785378054535807467775782558540570572597693141055675700055214280877000370970487056428693411194857152474864330694813885422675051223916632232646414959872778051612761503553530446277366056555282503076727307477823121104917700768986900976358871422275823250633319822222143780608522448734639981269892765955198581202683703017302402803181831018681801071665769350576876497376566253059438252396196242967523329341515447475509260640467697133500660623108191566803590614098783907601578571051836284295021744934247693751016426575545119943445716589569234748424204687152873267519505479329385306924071452844246054090795677512541348511770159885114578883036693359983549697442417622588530057405385101591814596805845692106099058969750284569988412488162895388388000821037474184090686113265316429167549716546989114174317908342219187763272012995854847320421255891863654442071625416439004961481898121025774918975749823032528356478033881037028985641832151849830203443250791738630450514626749489534481709483343104867944232790983933330620795827695314594575161857895603517653464233358597496659670809019474385470956347148247793940955561990306146114070184407361290595356364879230156129006530019008794555865278848370688219947983949810069506012468224437486707688747804015431454951548920021305619104338202954266188775193842501724968899581203547137760547098928288186283701444682751821840098914394886992362129954620205298337022510484889552820081389992665323209178609754735669218503295399161234610994023599287150332023629493722354446115774992410204616490448415230494067259712811458068913815098183023036246760077937421307581175605566656270651460160255644836794043017381217833595499091274715116761668632090084296907074936743641014244998677166507258895251951379386428601828216392312905279136577661328594890156691310049735794173238899479337700752513502625946160411271780477890952449516796900157717417056454708198174806261407200715621702970603973223207032267400942944537104794481221733507410213414467969619958355780303427421985385938013196218392502545189195945210750671588469208236335008657495393099414480691149566167551937915886011354220157930940062041244677253902186650039471989760879269927539219493228784200563163824688606521143540444187242843144420108636631177856098555713646708973418133923649921212209492002123705608541933694089966179639914172248711776125959555192024892607625717604776926653637089302075141885436304675416067771786931653650188167589213544517463169491703208607313556074313207007537771747409221488274425810697026043669060227035508681361354756774925068901875724765216603561588778835685579406037715206177956168890716741241409282683791819865390107051879482586617936054521726390372023024940468910864622026823645364866032852472105534732501952655417359406173466983688691069063508214456320600845613788510008294288558469349283239164205684889372734525839229093507225478656012091439971720086455617746682223226511662521581526641622511132078171301329457482813401319298384708477093771756858902898916630912785160904551728084562189240557444503779590663724865435381095499697796768187438314926187871095456521603013965859091743888799811650112438894161366277164741681110939992972674549138738421571669419477674337711576267803786802146036011477807636267553968621507654728267659740534531285711591021188574421178516742885302196843605790394762703238434336855031398020537994459042972888796913715856028079929072014755967603711898683719684499559726191732780852491389178611474435066225536366367087624363688949563507400755822895887261787901861836954163080932325172405336366012934950029592026750915707185865504943955148238565763895651678013724195342631418305719850924822763646624645896277440451905333816350540987291132615212224782703010256511581539626842758347667711520855581719966513870118537576520849059132354689452047030741088536484708299424239460700913935438227026060503095124243258646043546164051542259919933673137911559357038582160500637821988431193424613048757050136310149135813687796191416918978524900325646538465663626067576025409158728477201652307115230371728685849776294243535754778984711217663127877861050323227454837631981526572144853670816428661705622491819510218451774690663837168896394796386268228073130093963977898662574191339875520729456655386227860827895874430185737358644821821129423110134378580469257494219353258158974003121081323659404869509051707099554532501517742863201095790837389551038057372390421253493015213972247852843625353811488047920722562703596498690801248240326276756015198773946111684127085350112002723691418435970349671724359332107320043596257749236574727891817943288777360345086857369768061871062551507407498424247131988011517305043420566380501885250799414650057796236167292093171727054202002021780346848768502723197499475244410665654943668243187539941251146784237833099618094813922393537176466730499246798846654079788488912878011570983017285622468799983294362480285012459862333637088010292051604500873042202106474916360308213035922811142347246592992617724558502582258233284851679815535953980069091996884491196320296490260033305489420918224030563617193748752197156606829186264340302329611629951229663412024953573028545518148970079612958404565059294282237171233542227493904368403646288254735000655457630792958001397014765548502977106098399663292718487259440112429659786540422513811071495033088381452644680861684015691475428319258812782136575630637264772349172267094229481818223399142898931063981961279488011718239705006161679965559154832186753135835012172838076071849934543185251863979403161825844062333540394082062702783019783652644197057065436248972630915524855339361131318461306584662487252598590575743790363321938927649175344726525731018368469273489863619193383003245147613525106257539272890872941731357692659949299286654368432009571694160896467050587816709630493485944389830067935554565417006258464957139512649582792221263196300033252737309960681489588219274393784041266987180612225337952479896376569724133648206650573954352414288531429047857043988780828043922574087888323929671956163767238638500233866171212368576535030988115820261404271029259761717376332617199259994179716124226830129194124476786120400133669274146559330264517568198683900459134774694111622745719561855747190195638823643582955234362118604267208178223670739227585340448631898384055818204348614674634502280642817354112397686163441047949140340423374210978767663118111431201003399308332704486825923359554014631417744852867858944356467868773451345616978458841156316412552591190186637847076024412124948336355242457103322925185467276334432390243281163521364349062147698371396120128010182664971062067180516919161975206595268825579860559904490933606872823753237679667789412174359333914013754340600947587617325163193811268531634761162248118602602205480824534083926217253105390153911899541701863760224677415945767825735825602689024846849156717066426058120319411102257159981288078407308850524752173889405298725643899196547418093432622992607415565121492874450640174417732428877891180152942905114196883986724703981552619797029878003765663167858187815437826121000704023745892393779421238963810740974016255569106699572049646278679126288713564643259947258735652530566577034076542479352564229204811711697178151219489698578641719120594328528343948869239033063623501680920346520795200832041066338870675261728369759727010228832068032888756972144746962898906230858160502809191490113596511276645048063092606878952482740001618090264447752389615273700652645297912567793161452198830319546832808527228689860445814479549459941619580216229398719516470002148007435428608283749779069036938521458881560005645878131628405138520859865753023723212056957657825761693739515423148585330906193318632324005610959576391704202237047502651220713072550956957890992076695497155292323177428742335881253146962688626938335766838305524256695436393067866084872005631009209570335527230550085825407506540596355018265095590229100664339218433176863847505853245269872806632390619358413051182703904619122103410785272086654871220573678454350765345458616280106187555020194481987927588144829515772571311187859407811580605169309887053877457928344449873540708890455157768275018462330048464622268219849119286922482397785017476371065190448755865957103595308153141796775467384513965026929710401922204498144902071443761444411594303344468062096591386795222221710133171999715611660435240508363337851046525042291441950339035366899956273844909031942592142548748925239881328630198816581669313634521458141574329778006805431997734457259605381797412666365213357198410845051059439188483533091300195653400276598584736595476191273279650393728037298083820985041934991385474329462748110231152215192627501326741417625395480239120342028099603211160185391151213391408395142185080588660821617069049202683951092459226959488692136079409108600651742393018546166708869246699248468623289617935650323138550248794634951413597851317129485444769966257725109659296049886324608624143238742212219147838807097892368807124959305009114105802584866257210028724517356196142623328271323026584040577127399024763421267959482570080149122451895627175222130660262777893652000371760256409085359236720140914985098034085832416391412798727380523455686163017512417670502655943229937150658857884432046969625876690090099880929196328801930695275740574911454355972598906434121374025347716882308897069439260344535327200871487152250112369739689475191542427912451355188135169077808320460487139193320254243088686410713592335406190262497234765003095101417075266218555872301946849084662142795462662861233264638460722627713759901497902921505776580265406685849441471661431115015071185945892617789623397840289571751243530498041369347149698208555628764386320376296406228941794969402490890067379013959288716388119583456570643397916867175690434419111957256287768048920727203599698582695941263163535044759593780220129958366094892251397564052701111743354478113117843445290861142936433063858258881254028901948336737784598435548187146977408560890836788071284836422843689100764773627817363574778847333504483230137564670474254930013059138010531688455264758385336687334547743475514063599798753421157568709904454303631531212060558414720769819550031300058409791524690066440590054602368032592399488410852268435507214835569111432890816339541958316358257162340511534591087856717159936868384930145246534979611903310604364696037267964801045283088464110120345376051442087460204595271222744413133741345872083268093500743022158405988238787679168775604362516677936087205798404165864120485980439209207849233612652385097489651601082773942206029100360111493602247273744711965072501085330008746583856023835551633675114067093865281047890211195242333701387528729171456204042932212098653627058741710102021122895776558017466512152896815783477317535222787822206847455276820310494949098016889471476424620649352013249240900916749452220683575650667954099017557648442548619746425910675455993278972769845333890934696150898049546056981598884578797873671834785816180447008082687141598795966519737547818827678819159624014588213648350799423360688907268452722025101154618447800938868978974828287631953857751329914721494252866062746210894199145684517692138897487155530331458739856006605627175549604487468107756094542499904021137356382740030770113990296847986792950940608742047476851362172128494076294771651540318783919958609226129935378784996109474771336550049610041922555157703644642410065836587452659619713006643978670295301028481140058216900149654555454154724297271319479549976059492808297185851860496340563279582344702299776913881604867778352447289077034406841156126039815649397396689770217800293204905059259388732659630017650531462194729888084729630867879141083891248034229416301640209741785859528874638778862922105654575121927673819511709605831096562729011798025854370698295319337991232278096714919142841982659910329832346015132601162135452184532184142212545475186467991860855975562712310418493160537408068298137877979251217988940409175965930937066300544073899242102639916987405201817332008990366962957234316288609829918736465626718431566553010270412791617834576305625372199914313833969043515605971163375479156771515951716633191902945292960488150833879617453943083074301343455108780687085359548228301075880314850901655776011816532808059225051063984020463544489743017315604518814738475432190271349078203472280348405924758368116192720220224448332520289521119015264612472305102883291757800344715485128760717726170476228609642190977203694468534230665331383950317917326102691595552274412534936398490176146489253979567237376186488126830958324037895014738275126427580718420207256986239699986249514951899639128249993505088784241399914799747402084816389128890527028750417841069303101407550863542071184537509487781806050765350397662010406578533358429362177976003647854771421900373499418113307922392263623716711200267107148602306983764175393218226157631097029903451357535720975007688513276651045359742269389118013243099685669139848216069827487658134605949805880697154765615985826602303403694126997357036403527980940274400534803173129592876775283243636778293487387409501794310965221253862561048355777571491216465975800097771283282893639935394966911069166418367774890838601336747246499850910490154222315776940067658272195035567473842032587284493050751475106922922671392376338494166966677455474338704149904654118870415374308307560795261498415968522357459696988032889805430394871682310393720525019915647890459041907479176476700451794491650756961785856209890408031824711683504978700819626578862327049192559753485823493283145417320673825019675627397786459000182844946494067541097863930027916354532509180228994880742415033461578420967192058992302374326141903862388493991620029755317985013093035170483251980574080734950443796275836339129266846829667700371636225794066781910442056633124028577748373885714301696452622529426809098283033438977482684857313386651771096009656576842208603042355433847757536259876632670508074024027174721373304614644366202202314442921584909823075188470775033340398834940064325246580121942842226392110891689312321480106234554748722364380357983832501882405696199165482214258598100609523495959962339276347803241605547281470404288473210313217650246271410201864630006783190168190964973822050968011458006359934351115717334459057585044574516344186046032673475729809898777373054125401573191817630155997633168204385190066686532665735954613679648096256078714970764750842287886442206980704014936082877263779036714978630685842071541122923255941737864612304964312578805096001974239377814103595786771689298277136828827311625921347378171638766430855635287578473926890838376952509602452930570812244021768123391647687879215784525170184628101989194818770751737027219133638926617825930869802864093830001664558724258479552395628471145207957749858313323597717776981014765351299724127362915070904096420115640583386245766185184874596571778832145469540350872814038615510660463268590418605840331761079044810418888494142253800641067890055827139580830242928237910911796718869718334363229090133473957079603821612861354817852710070115096465103236561909974479009086567295635934828348366730049489628177717735596337886214593795628513036075995652323045653229470685643365244139286584852913562748130821826315942389649023608986663434397655061124864921227557303650128253656016481571293030460018090369493487850123318365332581929733705056083363074832671358732634427433068825273548258751736155309700521595020245048498275113140304726615080822492212768809399280021893060147828591760695822874217843598380904361268028068309283720931269169319383350815150954345565212793889771269405768690665917356260451609014676170454520178566725347766078839278889239832972901749688619294381010546203043308842131670787071350963848997848448823312306260632217529691133811944997608006476916844470070264247377250956786757405528904500862311655183245262890942059660760552307740936167326516029714162650554358388460248081709073069105273850448464432894911501772897913993608745172695289583779526618776391337416758426141841421186759413900599192306952692955722985574844803757309192034594776441698210520107391103438286365616603398979278342043188449166470066754175499396025044901137276765797293315860024177098507203746877151668742105327640986856311361846295807308287282925844542163291708361693500307968662437060543097645709249653269748774452691218018026256311650488542593398750306254571359553237191491627904395138224290062540155360120423171847915661824179041929110430509156235866015435730324348518985622003266094643838657768411735360265751089624428572521767782128782383525353045140534642176291072478575400310456363066877156473470134117157034628766631689449855281419322924478130760343924420094283284508533538162853114898669053283593150881301912239689387890629160074862855713798144998179375883858540714462619253886786032436064971005422618042708814801629734558626752501915086019316456856045125969251795445300994362706929162801338692867142225662900799193056399417109736889664704293219679685363269992221316776685083517554328717880756707183780171596855936205644001140145233470753730832049729338750327030038188271146821741605399943131618473488125103921170639652038766859739545961509156638936101705981733412250711674350063717312334006080661373806353291632908019272606446258041681873075851816365311652516991511059369385505599158558086480618798727604109290770231506633278486504898559466992823355919735943974746783567340467030635211677548540823950296386155141937893883933708829243845436120225067179192405167263906456050421899427693480823983969133109366229693124860914170393524762820405133349738907390927982688680406961048185218918157948195793899176239510986941471144500605331529310699701346666862122223213878258049537480311441354289759814367386402363011946939663455624861382785331302562653432477362269467198840740870480314440361433119432391083256572753462250685506509554694480881741358655004384289130605345093372383012157382883809766063772514750929413287910061783706272772336002228900865708767452284430106911644334133970324161202911321169876922274564592177518394221084825680186693711385235481777572618254378319176216217790139810318617325908354066876726839149805761641419671033418668083579303296991958334892820473996582138515111453312799597833504560905192117439896512681588844377590634465281766787158791108653503425282413328027271874905230750563058278239014551042739034751629791505522666112518424086895973562407100631641972613157372898105330393898033434207553414964706887731516874713249943015209778037164185687039257149645921395362382766293853815712493417848440935244941934171791904878977934658932147142837703729704389847754881282138715868907141076605742771357915942215373472875125540573234449293461311261447295110950265643668781231893407572245660734298825449577879978132803842722792552126068892714387569083206400996624855027103814519799048501028642066120449525407125934585924515016747117666395204133327899996251813740776995584590483266788417199593350895427946526996534943459329573581435858427026399079496721604908967142321174974986278897228053734453215717559578464521946690907431399094914208712089771090071285126620872255212316254345424606972880577863064457066147309294268169117795755620942415951958876733504438937596676543036885583652527406181125049458024157077897334923071476450874018760234305239495555027110845537018041712816607858604325309669140767667253490889099832662197860150877352991797509443171278856513372479536147714426982930536508601312987268498509646744916013584787257649163861682566190546639480101197551206137696413716521733728461503391422399721152502367415326458267598042092561220098883438901161569326230772076817422950099500279573002754823036726045697031344113141061101179617041750871340278948660883660873895470736528607645064812213741791910437961399975830958849316021645212779724380617948533741327652755641523106367514430366158418480740206546373772315950582857162499370803807503983018999094646229955741801515637831581227181553417512389901349459799164621727616180775742056617254562753111490192356861564371457473712643178815806677500090317499166077925596758277346629444390535027754713412743382899232043285765084176033437475450934251322293567807832067832929443771417468537124778872349082995157638684259880512109062554933496160038108236061713574272524427167310135870125317400390715317421586827381694077610848486811119642807889863792612795020625221944103647084320037134893358236583406988084076854437017365138073991685372476149794410012258134493087029210127774095210065224498831807928108914803727441126863948554741801589572167812764676370219856907160460761349734777246371060608380197852208995262516442779550919055479198898213764633509932208878080632672064765407554484672346516999934255711134977403223427221568546845745776596873880494644958036858517749288496968602181754618318422786896478998972585280796025879909908830283309446862022837461549860060238877451020889397913158427044193103511598130713309357549738791289437361997348446059038966300818404161074060433648582847872894694664263859481136846364548441876268936028162809124980685812827995528983056710468702214773713752026337948764506355603419715486292363028630403380358264769914012803519951335323988329820332576157107494081095572117215011839446826137498320786556843841872852236940512468728398151034119355655822645042388032724763362179870127582072920099644116079569740797949731224021522220413886611809298296331635974747725794455705766990384586344028164033149541323181451141628251881286350400344846333995348654389171411391739508903379789055246604127832664973117719365560313992157964113258653305721001214967661728847338175891043177829787753378257059606738019952355176132244398785510047979382178475779816388012244575899461611224599705194309808230981608215137183238905759591412672882683028128137209237848852796669187470793286406780838725477880871305629323181645671665602311382631769837191148820192966618871195723857428406187865481059989847791611613764549912762374090302661382685168182317081451507215867221419493152582804839502578665915579301151944829789109971761419561193865689686260405967155754242825888471259065948977885593127145087145785729088145409284848113237216586744746542242955957814655451068731283643322195245130225175613278131983678472965356939362969036383323392333601165021294957799304893639351470763000012373221556655983900013958086413488641052341554635425410983357699673269533564067369189658697038958868983362048714680095391855348831770645417600653201005825663964517563090055681433737639404661399902067305750226324187959073399789212431685264255704871987458722955216470159305511508902859682361716222950340591508573582408942619472732723620604882144292484983203646166064897956913785889340611055145199795665579547020030915111199233830391371399490728781947806595294182726815077841588462559870243738971549520870401131261342049047235643918945171728050378626145293711058871377002134261722755368454156832575224807799549497549870942525781759102431765678696539139844447396351917737502448492033291349170357384598396569076973042034776821299198680863966224132245940248242503054476266961614394255102689042302528420838645297616779665084803400714772577491315182569813498938140551011662679732161419880279561412620721717704801401740533500830809110591118237312781536280474921588887713869392636329534315535859918201391272150760931153811935762745003626564294133376368769031780896967815891628115468577813423490490872687595619234053502984559111430285668453112453597334643934654883496014121559332640203392438984793629441589169338243018786255647291425934421571584552476100049659026773726666304041344659351280617654672854101062736793088010640401183829483558267425184759004835118864555429169055908433307455595644323593932911887029151828831870707101113143685919459504178215877567360962521757298820440046278216716098762113960074648246174747986325893997609396098997470305154133030339348653090007200849705743594282966967485160698912746222615601429385683502741930644036106470826834820861632664220584074260874042760620218138119456314664574161180610606247966344093676944963161047082403347242120134849139789605223617798568700221189497677951104856521733565061711941638475324123740259255635534905892010905866281512679250613356694369283732376449617429208252464423490435911264685905455345088983139095051902252631145866049693416344345858352222664628932160706184028570629084330439668244607228121046362754222427626751446839252361258955952737483052783970791146666185663998095780138189500551437738320795277540366828213626485724223948978115890424294917990228050339260698822264832713813864327959407658129099487635963387282953175695455791858274051075241212947980182670077985253665390526301423782532463242337242520002054171106002136732150391640039448458161396736097238726167649720873958411019806461604748540118879037208755748267479234661165544718351663937634417613584257764776346695635625506424234755875354219686920848543353968725543895752240605164964260540875290404811713475712669165894792145740888622977550565265114404331921899939312228323439483926129033298857857493700060038309982677801356542963000432571955932515937156309367407500651400883414030380501225402689326995334675770556422522581347372133222465850748527841868894922165881179567738258339851681240560350983178155478510587931660983330301410395825478249029139133747724359320058821705871257123717067520305364432912459902850069533013319203410516311255902550631594712344381653885968905485044106806609313416826748991603777607547676845362955650940370084208715125411183702179311932291173402188216652666315710679859077998714022602309875950760804636463607407121115322161131028249209780356123721937037857255353287791408149965671981492852572591069872741630190336486067308261403358147532473948713860281030486064235685759017829863084009837221064937096317694606764250853591795583056600944672261273626643997337101960480388625775098962734916146319966482470997060569056526170163145535816659318850311419464086941219931863720932019168916105542507464478354660871215468181967957226068628982027667238304116169425128211928920142473918194203433089211876778074970877280668580950931409027443717540565644345990371657434770239375574379769150379358038756537445371167091173351769876588464704967381906780280267817434990156163731033389475074771841982023264133433776208261987683723408643404223579918674107180760972055351413604476602008747422214498835994976461343153132146468936449549962251376118241773029910351122151400919727930753669944841121664958462573459715243437374060529539212030507866241514120928661475695060123816282593144597222046789008593541675397579641049393465469839381287970664670546005481838353512950661167577992427764556451229002247374919151086434676498938681339879727650514323288268554766484258658412816764255689475653225814835952582328314377179388050174201062379079170176070405712388247188959494049619076608571453170502737873877237327281815320772318980999480025401875864209335940593521931093272957231327082483330624451186985605560580268242302487356353418418080367804103114759858082186090150425213731627801458651340946213005636906738518173082573879805377732486514629203983265852593750930742234908317419220717212363933029232761319520761947322404056685717696908467565573837040990575561933104964193659223337759680472468160574265100449674165950102475488421984126000846582992965533529896160224914899071422448604568800237523160618334337332090972412790519121232677564302884315512847324391627607099254675974127298378634212812684061915359508071146806668485377506332837040055929774745109075195326840717432711551008564750597150682628735907774063263989341725441023410169733228847152163180308177991626871127863446149369615104804246974726475632265286921451452973622228536409972370181775375640485920454519311818510281031155289851189585316498723634247657835761063685511871660836043484424421021915281296015278536060097492323862633720319515850933690511288092841680772662067766503679646850856532067091675539219246096223016006963263416453605014267714016213771849914406866959756720965482922559698929870707415112150273225419843807563563550191148409250498733398649286852470544453392678520781729600269878252663835863277233309154090112057700382820422467360882175649998531547248198890696379024232434070001283846695516820123311003276607193283727481707744774330172595679658311967153844749764767820323583075240424522439195110432779296141905254477136161070658524703950555375145572534533398537731123680739455688373940022079715500105764913526143474227958262802852671874473654032771275926125611773870199384554315461862606422787808516399779172852779556055370177594496492125429669882282620040619409973573598672650910387042325699637488161564426379955412670761714953131756553321708265683210556105628709577647306941036421022747029378648753277467706191203433997665216971040929791408120961509746236773623150547172234471711326071001448168607532918388379748690309094147099012092327553706287025561212148588887192457004159432421882897642255480641909130553033983246257299969359064310100565754277742423237170931379425541118408684641151490890490784601506142082692882120801900165661486614281315473779331856116943902004717193928633785492084136680314676613401417465266284971227221730254102059736817353564664773224430735130471295449978776165762931430304348783953527985620103274553440902958636978248368990126734346135148931876306269923278955001533521849865878757530020071870022238562946152340488276146489030479287218995701348713755710882600688815216812482528499109529848031763002568753226351221983786042570676056196937037508800052089368482798618556142228592547185749676476333203924204901999229924860345542660021009404435191584600765449234560912925292271884463521875096739957974740333736819142428489872882766928629378664615960394722628072238746619852752175070070526216454630468561229738263376778597456495431547450096017376506910095482086680607718787688913439856518755797295371438201112318803278779031597727359774743689339843065650305959022486086744229391838780936034131682067947698300015682141651242286320845089604890451826644469021309695242065931192448088804528737392641507000303412152767731380356300093237994898303548990963579331348783116727571002342313498246206850635184395363033507326202260678756751710222002626252549228723445113335523425992969308841688426081718304018762643890407781556664062645066425973247538291594821362912344503199138351958293068479698437671814540176390348211184593735122258853290314138068862734498756919582226791852120533128019607238617779809590905776303871690942454276525820930559962041956754463624239807547695551196855825576619050854019419564822944424021899280064481667141042314837734412592925118825465238944876134944534687709299054860037661816338259029866089870093150256919282257785193523834100368959606824803816687285788424405172405344219397467572161113576182643479831635761202300500077489492900635847934078444797112182651695556940930666105800738914829836202833348980118616748206455617902800495753482563301921339909019579488761885657832832130820920791551066847015892667227853244167911680933265957548413203689517253836212374785808044742714632780275301975921913931492566595039208270940859690963492933789005278058518121323177596952344255255467880843828843115016531916945926658673818782485169054746783148849401431024057841928382441675102988479510752213523623467430597131465426098998985271191548482223595745101367417636215781322507891301260058308641570130293937466672405855299051795814931206584686841641256728006239564635780536706831384794181622328327539244368227772151225499373147207003744385957767456482592196837841539339021108334521860764367530497430456335947734878393927748076484676985854773363061222138334271218241411556002560692662622026185810236951980575174066737891367186822453839720065314245812802048467725860479442004634180595773115543020149846861365618053023730075752504082497055854687765390242852584575160868711970982044737912908302230094031002928373279353820576978916213259301567987032493872957332301081538282479025276587502724973912246765530736433604656971829657396938969773275260579159600280060783607029387169041287610624082296242543908176423111718344255006559246087272059122139133989533093689477788499321279377923891304172959490505334271238421193511852987754195321314456492867719643394424405644208697260473938803442689138048500132322847599042233480453051041620951453301452203170699722247437678075313943804403497695143420618076156625569769456938177696184237645701894685935406635397585959901779636112044194051466229666643472685502678454740883543667243225674508596714132943238759162946737402570456972161000047688328451580412902436665719086203035113654152966989372153178479596630202677558854800859742328937412863703678906258497773189978794448138757080721054316776251164792571890063067525696705632998117419854119755419966114165320453913184618258540343351494870915244558052518524318302645420833388169281708918836635687380074980083880146678053622469069644062001936569357796262349095790580727511753764551965396732917993767214592005385730475164211346091789988773791050762828364283741812376715402752326388347658047170288550694603371266658226239082001562478472087068855165922273484161663818599734571674706005635114992237548540936161642144807471150424548138921363152791766200988357273843086004909177188795000876918762360392562769826345337835098617196278471855300158560044679766873219627872921375295308415542916292439689025944365733168456465426138999748413496780869418363271448298336718619373393208995370140618534101311494978900582815572269352416874366053407236181157912117882230503569200759987747333862467354457342560584258120180026702531347158836494512859544227538199018367402279184891697417607245240084794433349066350326931254408248502442187258367484854449311902937622801430945139295448309121532029192109474899997702053879645981228643741456884579275589914815934872551126910365052236659200503920030293250116953464215374588028664400593132205903315119467152609976881819644287125849066334201204069092272268746862897074325580140715144780031215674711899759344190556233153618176850400917633320879314116775223738704341438797981756509008010409110857612457631651674339779932762956497864312840320742174993054088583278731020533390078142316960567271696092554903422601934000553820743884262474327463815792635648834877132840220980964980469413181560594257780877557164672518891431485654101507939381929827706290601527165102751111857545675358457971655683447044099694800595009047236970513761945385828599246049840765949231875553094467205640668126162132238462857216735644367393090746104569041626773121334437699687542429099468512423418328406447289511099531079290013301124476980553869873751514376344152022464167925247341915660991579504863729209462562087324112952241493271982874431727413210974545531253214870349767182143650329038018361724282333870878380801087267500475465848550179769617361933340046935094988186195659521934819873345983800456738914553073763067770642083246578857695883730910051070915764926826899643682781488870282225981507565864936154899021908212519747188983748820097901357005482820425434574114237841044138173679783752762069450579572935080321978947637819368607832588515838298019966285535384807775371581315839948631996621931114869967734048151866177677654918034632343050863132756806051845381460405921242213928783422640064079474308811425968279308495938655809468916510651432260677026384311954759850980610546397454482739356777139952317559259943564323782371859502476580545909967322986282442309895547792647727590625694846686349174258181454003907662603609478197872512855594082012116775815883735333642776262267166353899484498266586607206608956767462620429811375776651962640767625791251188185763552096195707967544113267745770606270120285680494755305905015204423740834995382307517494246329027015121100932496179058454750208129126067594650676634003255419391037943160325946040998092064106272402699731197336997171265061177706124621759036213463064662630986046297088473609123590554858567646542689042760714833131373327519983092208665276624250353712758735891759811652567822922463724897028507563089211184532367759878743887191759614952195334568696743142315894891256802010615154394461652441199888704146404785264595119121235692833680306725231741671986000685446138510210819542629742671213308026643397273842105374409741966430280297151710065191693587076015048991666992777130019039119094437122432479226775456541915776511329468537810269366530408562911673557571897443333409171764015706029251637256581730890815750948437691378346498879416863186489748894654679264333529057774612873826660730043834893013683983762336142014419140024186357984624243278416444111255869979019174591111930190464775643403898458894115452736198829680360154671009121767181093111211618669875800045319053859962737715676267096562060176606889651717961537823426636164499792357903107575350857674983079926143259768880365651864439131326260228891887317396105227502910511800053624875151890378906957803157270128093029192334537207364759382015603512866963885096114333479844707587962688910955990037742598868203165766467745848717574870305436306114993661083766021458299410379128873036521311360330274427870513836952241281293253132966107609717481692742997251925890515699969530219560295513574560129596025333473807346738541007217634387353523503261520317607695405311177391785146665106465904145188845198914890649194166909990214822776198154601162867596377177822119820750516815166229093252872384930211007475257430913153152159348033974998407014417264672791418960855833697269843419243492292877777737836943242173959313919652015697821749640639780408226728487877181838950620526445301310193124022948330802505198065656183275787150499503978068249278782837714912764511423601825416917706911695058861389548562352685444383173024135499720053009029019846526178318911951638794560915199642341802948548941203648333883409774346029237894019031429242738215444952889351634951747825488425303664422602005753914095981914844706898756229277691854948819102525780246613191781939399038118154053860848617903826303733680953092069100433898880075391629226714105240103571023100581686398918826381055715939805704738730842282072602981460761733100238569645315987994108499963282798835416099848636808044429469559707054978032961337843775598655587812810797953315734783620055195320398384161015009008208124574442394563651618976826209417951300172297266066490486946858388585907236850420446777437263932942002891802101404252582342911514314369837117206785098031412061126329749197703168363576748940358280022474886813220511274341721984241053433239909840029898368478377816036596679868998670759476988439067765419196985980632621678751726922812531288997686381595173803860714877875776590292019060295887557094111078680268730906593002602466172676299748247986812265199748233798951678025986098082288386539558630732281887506412418594284008334571042363259770198016365160884429313249022418267487197564048771886361813694932481988323874434023659177410442963293667334645834879241080714554097017667983481488384748753753533200693425688219074976438435687089779792071140706177221558720048470026973092326073646032284053941984734695242694766501987116328450218289332638069419316254719300862231068889636926515672757569497082959983750139548545315614173977499526732377183958531576584260364276288947142773891492702242080039754315300381876226951348905013110447892902127728405995529518701989663911555594322500101871520111233332878138901613403570324390059343612218418415715210048899925725220681574754658098278397723819103812356967080705560061372989997380290339033391080282837641392626213633654046179609829886872916764831811551111562121515675966308101963193362930984861858618549484608989580560808468270455013960185341977579227059293577896874968846016521017152198371773203538742023299395596614383421568923116183537718461533097347027096297313702159719139477963982931314692264730134785484402012332043022371406832574566816855962831205756871431872084370781008082061095970906161207532080607114239888269585987476634823278652364768887025641482034604632561713463495848957833324909501626368455217228456201251055752325862490536347336773201512132793702819111147041211094827872910143489932350431155277038462194067350481838511502307892406104687699765024510001324496750205254494226020953148984442927884517663775481938031823779592480100871253403875815917288501740617229819976036229822339535855034499378881989655119953209499558924043738811045068739640190712165938328756346895914532342004562355772890216498912419097799889520075389223516463867631903539859110898832640705690856336834844510799426997881676816383180766309392387035188143889673057026036554884800726950682567383857598286305604728383337228470024426313055091055555158561224274595880711979043882707532335868305173385936865965879291645075798045914228132611872315682697745351164547841041327890528722158220185844405592005530258319879366411652968597642003553457600443150327623912312982247286902446898107291884046146381854882151582247458295562771742305903624539289652599826631207776507620251855042377048970244489615332722274393097334652065560797186787145545973947449626227708787247089266081800202064733698664884400887844181971997932775880982279530692692640317352925999513699422095743094103749768248060522596631380411668730148813007352851916106176507481987709851241205361828803484117519395876072515664974716664746125807407314217853850088602057457789638694464460353683627079327501198414783628946958567124185572235789814389830817781078218837260078893443912769662738408997896891044690617968355460680703052603479454188792345877815874125533087029908062215312518782149799310150487925896976074084972875126804027061025849749200872793105297964793171139850634504773816566781764336025607809921691215419108371790032687980494573499214845734394841419865608659133449849301828247845537147282033490285138457614549302035180874964319790176733356688304494918210097648286275047457044160978681880703591776450014270480464923442458579314144984378767265871583413115710899084816563798836142810578305967608877308858114983253775837672827034647227738531555361164783208615721227460871000201454848161520669214082335239770809179504406815244177862874092920115156033606706632941050903193933213782236687248552661402771251366272651041358698541250918452994708501614814289133561182276410047408368342142441442569657355605226769256148221507469826929736130951025283017610791797020218869982944350752776735492097012276740958275511921226826237832577833566335830416865524803390070948327861991365233995793229247954685854411632171511982952501617318971971233845545545752366401797141102061986993400302699156286949267750079514553310011484767011932699827853557928400106516182932043204731725143426734941234517798402719908979192130017672378251030178319383451209722185124328261505405086086382971088814070286773674778523505291208204312711860807267461954678508457848540745305122995127343928146415655393750074174121100105873476315771978889548795732118631761285177505900226899070649388379767632356855565154997384601555190772952435766694197060689724526351188457222627455935696439391667619120381190795701490311000038113533583435908984950640698196048273633946780967341120789173579121084508663772231692792917004465612849819793922444960474773435999494311295413001882496092529143539451732986900597362211660212719516377398048429271972903766895785776886968560748038648191073230247783399103849410816746375941845239056629198865599471960151281750865199710661057531652697075234127830668773905020168785642695806132447897850172794005196457498152830336376940069753589583991595899173545628890804771214453683456826574424894884783146057693068580796009626017923330395923927316164839251070771910306710327879681697117977086834446739103613643167913387081540493872163592686155563327718220196858309964341346511388963326865983922435140625821870712655455655129181218507020794897478604199177875526911270216548698883380277396459564455899188544747839200165011696279227777412672911144307082323423564436339900226593629167504720875749125833197570845864092090854745373120891280993337138816641617456793732727969351998004448866490255288126791123380793145535643629139143363646473021433874211215691908365275593560593185482414006868224520897166592180227675567544684116867449097452257999544327332201857477225467234353582399056058867321487577042393440185354696959147651762135200213081150193698563940172491351197410268564768533903340431843293801570233361249537926222625998518215273149416290670785045340313941235815951847466849786398314015996828908848205835801890709470974397324426312688277800003021451686505944397160676655145254441221629125115730234217761741187735275294331247234298437791405654336545642768032099353260098426447776997245060247615753732305722942430262238730247343786358636754525028395960893081058929656143452878453588018597148728811051269349921046885487264871101527344536049704590395266636679405944480315588130410413301587323782391758954425277658879956232772811246036948940319443270242570914933305958761422238093010794547682129637159463338756811976434691474198954398151188680886221730099010430615447013550956773156438017877417064816720129949998908751992257616777425670424193512438453913303781497158879432666240216915091959192171416202523352378395456920188383801809187938541097959023972490528295091617029366012701022756832178166601549998195739332247925363049738054976423961792095547774526237530568590759184910566083824593553387501436061368309193023362995183197572630682946304862438346150742018195737241339465356085441690095817604581941399513090130167600040211422693840010475421038431174590698183403524576986901784011231748447408513798520797962833209657427249992378086480409495986318973423308492479977240741904192818421411776420957130180046315767520571555751449812316342329034481544313708615906998885670714961082331830279106774626789024501334196057628698467386300545091293999820659925422290625844751615418815559045935291412825608225316608919067841625048756679036965641406358103318449504545998412472140313900009702382526277132320033498710879601777651703696898660261994567890505005586079850793829687072937299163355732207720500821036012432597056289052220911880954312578026796314963455015999586975571539768623174052205878213096953178742356248880693864289427728368432022334746879076335256044255463756262505883316646611026072511924015863595508077830203997683705069489482447336472736111988082102374446983535795010906170151558492275686290628422491646969400793260673590680933049698401405754908104869251958258776364983687413227527982079963362775800500028621089061729558608682947231012636361551662709953206329615198093839448432844465354430992539007166479123470342172822328593365038872347160754175928792213706905927423373942330852031137060538967324398115708954061665971891711737307629634159410195144854513206106707703072632306712375078284077661667104209385108131328626064386520431367610232824255006459066171003551593870637197852647293560563625151254399194981308272883292695541388965769846751601599622904866861273739159173668097566515078554679012938218268802147664235398739741395842874498405539609549329877717468732880586713324210342637985920509563708102471996231875307198801375321153189818834411505111170782487060844208807393554896851227223038553430394576333421769994959878086253694441220604299149117471417226540087303122224349790855578646614115262961278092461580278196646591081120852035439513950717238067089469987806055978268363841132298794676419165485286304639467443395960581909199457443862986296161027479252839494473021802508228545248025380972498440671279558684404910075830451189118035155632894668401957916502983471207840923804284636886674211344042609552075385698380023010036033126200011630208513068751938815546148069279220466452632107810134834326414216090715650253602679186246982103732382830727287041917145644447032194259557992476216035890423728228714659749859600203187841484851854285587083400517516430496258270542213079621893159685154134451369767237810700917026454747832386448029635281764896353791142454514965291249159492596280856511908980687188798257099757827620720335708222664118426289052312286739644811374096297426433662288737769341949451212819398103941226087330022331229482921770296934211956012504065144056714422246002357227593213032425206912602547874906704991673263964866538888088350813378307974004681410226240895256935604926343857346246884012501861993824117422800355996975321956025373536166556889366952876321195712431257431541164728009695920164461205185321960913652587945258369750167954099675253075458539514075014709714608683195212099727246636920775459841607938914397312756252154987878948386609433646374025020389281091505151260101713639777383356958420620073993214456170552505422429328060332945539637725697265377005254787928729561618958598652373199927145815195639160536320223715309184444376006631027663130705928105962153585020018526488771427603337321160854571870428562746298258597935372398713820973149849644137175857176556417922504509683292566204032470384946231248971213181987548828658289312501893163457548786883046741845589460672478056447233035996793778676460782562572236297165032363336950313100223406915024526822329671640883563526012010815068611200473483520965036736722566004092350379616162327532337144017764845533570005430921009566272835879081237591539520364169320419649571612412279202839116390824192303569776996842466459824251976221851145126297853581419414705356954579324953764646738191579621157396507406664329179968105136138515540124567508853984510715918831383863838501743417503583426095210166310214808858724595741539118645606200622081546524373274459523937774738926866215647955787001886076656411594921485748497164180139441053517516157526623440925502436319010457894199978907151570038627827013635353457385099166888324812467382892579485188822706458495424569567931970725874377100075729294552475525334525220312491033759767745430055107381945447409581696767226641067705899009125145587245888134843399353849346936401594260051156160056525799246735561980052889010281649541817639823197920865161356054426454132923056800141687966502532711921496348664579086756542563881054700558930347800377178742286933429497297277014473898207838382932295712576704152594108016294650879363047965224629166720822458923018127408980650562028724856607578079295974678404021920166762660782882649781986496759225608713549078079517805868098154818505549269037360828838216353029940478779620100505764344846680242326822771767251636623018998309194182083087367316498794300851759080590485480408644337228583247834196038004500881475441462891288862591963104699050363090614105688354807918698522433580860964056456758554681816073664188827225289354569417119311816789485439419820483428405589372145039785981600846719134415742181596280874146723976116838138602694712199249912093865789947461475432971830494664357567718157561092092162219589648371583512268582164240820500543604078105029445814857910813455098628874996157747692589391826017292978214308574747971119477216125482105741022953599017951794599455340358750094040953536028491233904955102300975164029190317621867273279822099868779157549325536933007638310940051419816866307449397465558865585684879813421537335314316409770075466380547190796194994829035534106295936236678242479683635885723563031512931878784033602197088719068582136975197143046763570693433179303323328705179393274642490909275275756498609633853712955001208009203739314319956380398771993842358547383498323087448771070596050023534902035111949173980104223084228418482352398880256048195754012624225487450110217990124310308981250850701271211352040926777322947200658636626994923456532796955295822608244373463599460718241833247671752810878915271901068254375522413108005047626037737526390352189929384444164584661037520571554185623327009191670528723024584083665906680364996140063280920072094687914252339475748027088301426816348284453750918265101300568439943965821186121294126244192814238746946523720170781939173909063270495077728037973783864250420171542617252814450957429786874992197270277850074415314613836926679715466010241094598920422357317967335797494035047096830055812910126864510152259866296330736696539721838091549279268622206829110648270380638956421911521357848503388123212138040692468733300437598880890801505616429712245572283228675070686376278891787056347166072199310921457728398421659855991725034928414816395733519207754912431134070736178000965023965167282910946019765944516492322296696982098489617971383550469532737189573269246770063175612927099498746569747260305532205355061203807935026069414432723093092979420808902750300921240429760663642787612392820966090465651819950074302891580123007588273142078022145145404501565595597200942253395577399203021872466531959782510721760867867902234577661478033363889172742469372570784137146809329151438345231977954007372849227435605969762220162032018609753421516050407896042422760415325682264492392168991553838840894410053884072079352201166646487775187254174849069832011845007764233796147219881608859099133307867636480021444718308251624957801468156354624749034342743993535150051616722531161101350032654214765335267271378828577765715010286187113452605231079846140708367337068316046382510163403153146472844400824793551515812316818720843803916211826722922932383948750866282512092223176374635612567036277552977866657446302111636316183630382650663887891296726167199219827237180803102718894254564965908154449745965287417951025996363383374885290537988143436483145368549101625925082792232505228716911576916239828820339766966882708604626146214991223081593168202818634170858633627194670533788377700237222564004146390001803747188770291725252073092206273977569681906651131948957575034409203968838477365817580927385954342383979920186814184476792163347686205618833455839529132837619704886651990023518475300620244836679638126762585667936635465365958177089891111228836088417774915890218079675856113253522808806794517707745998750845459511626745992165293851704333576121272430811721389098180969745444900016154685688387095319934430798385128779297879392593849566919503636330362463128005832149276711232357909559784336284255345525163015470760447190449731037453859460339094283111390303161616672922810823475343287207929507497283363875367216984664695159305804282991863395805308066135898538852778187076738337636582738513313644979534621872715825280423579659430412185966802414498384998943248498030883567953242071355794332613293709169700871196685303591833292934000740351377658723960246025461190019504450822234773087483237285585128802478931458149563060381373022596912689713965522458635303551006387579651484757670409376189832367884674953546398888270533526100540794365345144937300222679241624356621614866385007658401669443044374854626767941314652802891269581505724733026611478416918346260754060155790425324810883287049660787512944623710286732312136208588016719031929130622779173227145192876744935333247256451881524219560617651292091072703380580690849827948951156952745708818931162771820924529695634995643503447593104900321095750807972617622738351991244217960911010027999587279634614256810547295085841151514376522105630224758020473941213466137973345398752643979247080584652003343648559420512208519543627256082529881951955873265173423875282958327784744852767218855155707851194872955793103583599832138217669534504090714809498824287971845551898804073069534992547245777511392544067741983761928574840388689706802965338985676504188768625224825721966480468335184792901501283071230388841571933216688970393450392273086356009356361381931306330549106367695998784258612346310289163685305769223610177220926985211937995048994392672226708093905675070729335159117871099356712968977696745732084515597913359221070006404053504549737471354667918503362559377683567550035094839037079568114159715589667965316425563591207604728261054786943698868389951879540800261881736245010605647085574258501288397609395697768244891148212021989847884884815444119229010943013819607690639177265014857026988180327879791960072307068143938810086719402777500168201005474860735750728744655936982322560615342072383464530851582856342665014126047603478857885935575574391843689767324618111021882488202949452276265077492074857600121260155047243911856065979719648921881040012765624964457613244810425543384031845131336788525437400669508165761389404975036527514137052856938781190303458080111393711284358435266938076539350576482280637150375544262187569421214030941210863405491137853600635832905276206828269932653604316360550327138456635192631513570185403892611289464038802535280643105646532813352558028826670843437653910398990590683151686137645706693232780371883079109763940023343204211098550312909416164863955139487332626920131322302766567792498395968262561252628204402399617204641418364720853241302795229430635938182097028027641535014114129062475532364560129619319320292907537048585093377869764874215841079227009763620191368942591171589321760134257514657572695528853692734419333165779151458927126683377025105265950320315457462423472315598512382177540060841951707526448776619524678538631792300444151400038273063030536293705477728468517130587619639646445940896646735882797544321799898270771638204358507302038099673656983975944853129694346954608049840051079454391878321852308064638566209434733276142611615120828846922431962517228307618830427715375185087240583119254604768378481704461660393938387434242514397030335271374050650436510503618041785114244283275300051711866451906915314644654172088028016176527421324278865090458251962101528057944671394321141046870335864733226290142950838445734091188049245750705247590596375351917310825278578629475149842558151694982125098150813408340222036782030441873209351410927377527713763040240883742443998254679397397511027551969649778141856840123883823867437026668080194880326952958258747989439333902446423579871660079671726771835582225617423403040893402645079740509778107916671858790829691187053645484915456174754812893610459125053193566406865542106728221035361190702552499852390085132708232137537240588450354986357114885176132688734691106606210028885423185563081641305279333136768319207666530499994849631310053719111611751419258941092180739249960835699984854544425747780811603037667728544060527710811240401986889614951025856921263419655438144874364490324102225541930499613235967000707456661545695706657179934920276283259803881525783843929412428057215252088337220681953979596151681882428449719365657591674151797345224424416617110483667634948131935911913855929727046214587389547188529803957629252612162906817019538129240399966433261418873063302399598262119855791339823629088091750301431146234800849285900647707855678900393683852156119712250935292455460089218631036881374430026207210488105333510265315404591772832829914521679861971921032472097725287362054754532403609683621707659714231056009567777074497166640671642099961382145327184604480650970330522087145935307373378238780351232520753592316837011175757168422155708389631557961051341587409578213911941486115975108422913884618204502491396449919667534700723138282034968099501949903129911665728028204794345939197020604340289284566581875644791403652029232293587428482184570974447309009762922493052164360796757405285360194935287694357552327157848229907165787745345294513031820553939092988412295659364790390007284873762875641595115908561835974398177430877436377475776824589058183532423363079400634205572029664345041760404886027068623374547986851150096013918622910222025081217212974148529504136795397911247486075989716380119897289962882650106428997474932297505418322187377036165481918202495755116047908409163564888252513261670624378114245869061273893302637037460878119364586369988341319232354408540841251281731186688572177341925743559728813058281919979410888974690991293970840454351650407679829233965217908509560207943105679749674349266199613439108637608286155380168980401248090364919817717483046545286190270731659580924189707699116510066748656925180913905529892465751312095691702165978540665240543619273945666779880365956208749955693785509197209745284649848299878246188920080764569564905563723336673769704585633008521122484296532001180754464143240830012584917651126058853261963245017790966502203746531455816180498626429601661674865967883731492221269254051919156830352147437321607877659032990171173798321480022996380197057815970238498207153878132404359786554091337656250580000281272952179309230494106459463740081355998023619010551034330837655947445174992675576038882209585568873319776303588084858832120811526550265231064410227752682708001183071229729320527627658094745115893290318387749547082728651153910686255838615356527163956627297884799285507982019525076970527954380455728408342737378706603973523908487228848904836061206187419229392022308739527469741152962857531998286387530150595024691741261766821680776715479828920818073169339352643993108237487284456890374125140068875523319784655903085276336178662768359387912703664320938166613924966802076438171296631475880995394251857371529874834621551646208177387528640168499757291769713700171092809240697935112044958411351603519081128040835412306828371554240828238164124734427590429351107987063229031726465535213454423626320570039438436370129339910136514125441611605352203473035605652191898732193687729818663292553235626506100237037739932464749724645412344311025845119935617941220472526053518216713076437580878589676856992701484199752994275598219295358482412691441489355792440890531005271591642268082591599954160848299428980144970412356097451324499187160653091860225352043465226575373751722788030819393778601146710365623632428899320363658235783773116054473485475955283070617401116579751594735310438155897301517590902219032768926607197507280630338150714630391694581401023196620711816934050509330026295585732940881498579934844841188413474910910197876923361948043618569582279882703807142928863775455546443073943300639578024008642687363777103110586111128606175537690099600161059157521513393022102805375367265873196315945643046685729245280411238168356326660285491643047360403703906940408032829308016586218989741489997520611186717827235261604575319776810304541189604074103530290990337370637201430677693504259079110555891625624677171486960594030467005953732473884928113316409054198570171477500962610639043434999632832967848342349071062974104536671507155450374195793363985325417904590034676777005734243037646897563332130922700771563100434388704377739199053884383914406907940772086711162596662301238395851993104452683016989416640106573735463099507289345312351684721061230219740007652246202754689104518877590649804978837349526561059289738894196756702580566110924325627518679294233710389344625196595802022929698739861372331175595000328668716201507004448477674036203424166709151195721305896893331662360219801410397956046429446264653800748769043190639438278820890604848283538271273614473267173037202539043343625282772318774868878786617520968919060919193753030718031761690716702717171891844581498520337356474002808251300395640775949737259449717312342892933125434952975447761616733777720841422306608601132395029355980795899893785784284364692824008868248741558058529442068903832736777308911774447123767121596314501277405877767985969971266819953867650330006080313016140962444837197502025700519022078379165092158357571768186550908512943292297672284880216758890712953594464066918619763623802102439507698451026508568188466526642663956375138430781461089428055422711990496272163402132735671321644179278616764713582324703658523568135891683226512479652505610405802569946610289679890541722511262892484172840195171483798307607485137008058746313118423650273313652887717830239136598601199821391519944863501055476642109869378909102095988067843244240626706374745980642910193085515874900918526469528964524397998428740360178537543563822054417957216631470370075498368485308019949401802176596147817898211562570805321751130201357892173659600832184566802743826905390760958448457484151093026114281567277373232056093766084691902794202452567527997883418938283251991393622858039118919725520295684682918310419681162789459241739939657386531523981127283614383541871168450116436727255499543679805450162665559861608323635394810202457696068567031447426358200142187861837582415813119164007798211448282448945617284761137231335573453524101341883418457804530190435936772666504561446138598043481105388670043779180220894829992422661537762659309453148994155136473557968462155849964516063044491920604698941851405712977142198422007129654439522567236252680111903880314721949828244250320537858226906694249428645854705316722675664128471987642243060603991723200306685718052094708126844224744065042985459722441234117328187105304628397171381340147500161287319717840678183385071614994038867214282253389934796334254047081588820302412081425278674388105852639576601255703303630165287557469886338874895556876400895662114196000386550918518450315138070492093219611906586733794257482494695246827954442116169930546765778404753850102614856359742198438353960804465286165057310880859987329223050073879459575208036532110579304229070896463477248407337399830445962163413991568744088181892809649794462252821741563041740731687653473681625788090808822094126022237973953514018131810145375438577454264587094506328849037574693595126185407931744242427612180225541032007023348153880937360024133703994968928093201518358140886761655969799539551675639369837514897143109402439732800820131546763205246915712941973793559885433709315876762268886029874995372143963398418330454026479250972282277540600996290583709764699851356818434791905410516206118669973481127543115988035876459282254834773542901458397036794603080792030100985316818794712364885834666659987857768880553716453677073281934722444767965560894840519743368455554099272135883976317852434096089981724411543935494840936826007284249751584115256436564732037606255384703146207614000899866642683651363706027254331641258566413005846013530536347972759538683586621173946183606915554457340631906239466286964317118708764322714055454848894931156560920637642978215824989208935559401550679836931702637373407845564854762771704225066012056958737308031192599050299359963129289498749138957346254150242953644984496928729114335124895272760914175635685519860951793593497921695062393167907603532263469534946923908578601199704197529736857654483779912152758192143228783479891401671751461597080578400171969587340576779069284376114922503129461611451316252210602046231097737488730157701357603836061840546077324332654747528911489652883090531572547479860433487076178118547046836271891097655376636836301188999844610789909883282310171357071021104539482940660472608043840051051007853622522441336264440082848078353151202571374752346117562719808512138706124288203246948027855271860906734211249788881033829058788939008997355979358178139099465656982140687354526260050863638972842630452740507414326472492529377214125361093168096507864999343234494837835219843316050302919498268530114212539074299613455482693075689614401062869345382942369419778165367105579495796213425895315872062843552449005153823635426469554145480476403688190412019921858424524081114329118318415641592951975516451118720609033291447696640895221662238505022245589629093523021487721504984287700196252801949165789925192967201204734304954534707163446140443937775045058286868757880924089996146687599109786786597303036543611355789898489521433233702383343920484687703041639201060079592624900661393044440993647355842501370039786971091070982832661342154762976889097235002227831129608954316540052712435637891845779689995532169979928986576935286552365275497098394274560641210622391778841045523787766864206712069623971483291840820658590721760864741544925941393710426362700117835143501977111071688540456386798997272668953031378750080994442618521662584747864642372654861490181399432462961747074416857475665261874645272200677647175686703691734093532460406086033984513500598666914780352503517748272235659365925579913663929746024275692528407137835618143117847257876964558609636158431228007673979078248654099597544202893280936910954425437628621386358682690776929367091211526903317735600597006209283305661054372771707704108727835100520463990402319294140986181112610280454121363806866984832904493242059964547848734664098910808772062344554238128863513175744286169484644389802854571795605198789777588173775252032310712412233518638623639514893126916042430878669228223420810658150960968269065491394156748537641007316431918983309975288832368443925038654109127238543740768313070615927607012972643349125692757182487402416301815363212350696050886837620007270139517705166187878559228775932765468196031498646364278000733430552190459320438023140710904761310935794264085987333198467389161981327319599358927882498094766394961570312923774314203538117898370011610152758772099199762400945440553547542011438841627083754775541219643838661614668460164902593119579772350979145588494527192815988102535468559023628137114994623370562745935201401032424308759846620262800885417842435084622255127440700065286768009502767138681911046763058418321785683421017801895834209239145081042844432075449765199977352138737256299850352069599575877432211340680972811786806672421184533379419644680029182351009676212626629422428901180850795824795542543617822354704409776112512667110527601588785558759854868481577978017050236783301081525742175038198148477730187070534085402745101690876517439820312614261073624645751401025743020390970606833668687802410816182443715752937788489149194975276153149554949297701461889829948808258125108711548753655108026609588279563431691050775531424237297242248695424556121698691548417467135223190816564221411361426049254989286791625926484550231656431378100662702701616372866346115004562986986032261020787684612905257395539960497963283137433317480709936383203856265653868682018507340052008058750838011178488659576844861560686312773034524401258815975874832943654579003833831216899651533638361601421129365633650567641030736286481957624937920861067458339868313466471137142437224920773647388854628137154876484611589178182240966057286792622765040924018967465898052882903056871531686024267524554460941656025318872737265724393052408748972005715575091909654277470659327214360958194271242717352439630076872147826822154369135876668187969905358848463836696358395882953448518282324255207538010728832711410522422626291779630105778726540093243142278486240313035570286469008904148548070388666396376873645347416667681545735495776153877462661461112759028371394837450489237683899892416957525353652982963106354126249654334157338019092552263008838686872111109796886314021742270074582337445844596710996018551349170745671012650839411944310203853617282805233043448916319896848249589021763450203201944931848727591319917038683747460749378231092539155292020136439831727838210377342075582412753665404902754306857250393363450469777294747464422549859795020703580117768243751499663634908863202172388605227122795176457126408404936712850804367206377452999479371833560341862793160013978158272923810971889171481395831959594984869940846027120684980806742183817190266018180100331682261926111520249922392412699865176662164742531221051950805422776513585420340577754737077584798283845995016441631454256906174695241709619921529023812669533364982371164389846961639956798297421377512928754931775116068474154939469837227046345167380229122560929673533472033577136649473509722829375106110278847597362526741798403086816874095737630610512622675167516016301606402440188165379548839680214041524625116319526126762702114988720581818345086424438002550551935637813258655377645354355268337864222621285342896703543044660010577725649272584800436728613999156293512444301353201676150431147303368683103991664097276488147427149532937531367867021043183592891932846964191297283071323604841634965140645403134417165801110387290222982492145185614826011991585022465935414220601914351061427048794783100218393572913004664009663329727109229795538094029989590291977838962649453004353735909799520282402529816517291816345451244852516207334013893818071450546608959911167639601227372950170307604549532048052844401001896793295029335430352430042978172878706045325090103627113692704111987453579085768754506909413238185014271498844757822467871073630956071219261613117403854087724640776471102974160047727946396105407890626236259798323299601844565555563539876624778554086814834498195420761579412225339578861715025471373277985278978289824910812306523147671367009474148486435680325579830833722434930737682777535791757779593348376538859238938192990554976974249189331739840031752494257776989071804101161741301587825099772627572581685112707646059111045712982235582045116240769425984517618731375799543273613990007612242810766887288546094594226479266843831727535774241788325971620207633447256245065686772119485998407695948617908122931317976553600404597134701786523397657231455323369995294486488540875291109153816754396074128840236629784045853981461046280019562932835320582860269011330708040144269560318250663512853116865725174811331001556485030430419709229941114238507899958120083499203192507206890339782460604245522221238045009047680656308807296751152608034387425686764634907054466500633849112064453886651278948161594015169037359448003649512831466644031369067764812902471129713889304077961405437447324134037742827630042029025281341173438894087944102687590060542540246948245582577940175875777433963058288582008760708774002506002401015650252181720330732406408871378085967951730368874741503012652549329373953952667317092612329494036711994283638237014601303709893916772514449577310696319445126894253987548846399717437536903064741615499538336835723877645550602501342070693882733427357184161815196026770447456912504228113582933313323447649302789095906272123617658607885437480249380012487928956765647421206435461062150243511288643651139229002182364850354845433426035400530382682511214592424055908640065509965795902571231361408108028991693932057128939467371604025108587313579432052263877472647533473150276424278203649468135922805606463213717758116481036700870556386430907356132176838919203725854908345565211152036534255993950285779708398519714180567165178588776641288363114540328474949420961227267617668657617148006331512931010249902285014176403536228932001110087268528368382425948440471000425613413065393114101776017565620964229525750217982670159654087150634743091704326723606845589430836327117262635893975748365695913667380658849059933182941878059811507336644794714499385922168676430377604756523608328491201558955141870307264033912108516137249843823945853121277125192284680569378067874734507756725423836413617217141001867303166284676763493711706229124186138942252316318428098885238336409055729929223638511248161218173899102338995171933613452781808110066630751926115841163687313119803148218640799140411008442957303119107197480819110227894811115089173588163128363717146649115515583137622717859479399353582950325724406595307499923992842261814229767038112101412421632166867680151063057557397765507313624085655477378899927604449445949542045510574137950520626700487533781753204447009999110914102439100507383103201478860949519135615851093737896705106448268971272344177144025398970305070606228219153291231324761980833206217787404335815458260163278559612510235321705954227220628182258580083955288790595568355838574028684597865446159666041659664920488514818564011282858770320200364346439719000209313968980905750607285892431624787439222492960580662730994827460825876057821026840438303863080962168219903901506893491646355345199171009560664200364678739671981758781858547178513847264794115306256352934791465706293688000011151674163947499534186262308311827103769044276166446377899079208555731442095929666568713797207879917128024876731314828457431324256233446642280330346092528395802070973443869863791937536962188728432818626016170636561331691518648501928935955003432219496621438406120585925038028982829588015211702419330759344171694645643728536259643156096545407017746911266429055485104961129126479088813624395381809980619844185999963557855928927826751034418259167198265256256178537055486211036182105500815658677408729337998058761677956689077611981509805340787606156665570801475195884416360157511947467705395923346727706619744680747289538168939727323330285869739944620314526848948577859570867653653347932595213465735747254856454254824049816814404746652310226777438747076107631790967759213311705653667540611670221226465271451515742945204428595161321301268439412254182996994642200121434661769463278720235019945504077521726098114303101996553918676121047823678095738283494602440925988192069660367216573186157784466693329190879948787344465577426537225155069971802880761019127162377319891193056054490418835725859905507134172257194150610360183846483521161583072118855400714449003436128912477326798688748338671737273430898773343284502508200641353129633842581177180638748547255289701198727759043250645107672791364358007042663651462497179311292577956342751414010919619419272966119012746630183560603865796397411285526569939590180445367858915214464767748808475988986204986248585973091093679694200157558627505786730756518545840593972076323004920909345681867501103704027850046424833238256351694831622452848363297807797009741519846642908903130909071869003196208618002862476472362898443558199519343515670315979142072119941962189914994503100362992585752864179708612899044094301369860938643908470966914305413619798560283516434821300353700034588314248376842136179204561567069344943216055418191565480032426685775535056365764503949922246240975102449861094612554194458301171083811099272442225315273185099357517585269419443940037125619256308656533002412110276525440965878323710404651310341010825489798621991845231710418614943356305721428107407814413269576087784734056896370035806222549100263798288496530877391030947692860399312749819936256184443129954381651203644765395507426610279082404500468518211917697448785643264342826690081293271362635137690976814527930808263644292488854837443521661746968103230025121081329761253264595972268708339516851371920652613099592664589249449986752423817161151362797478498481390982868466411886187136138861919433395742930495912189883800072141583145183746864339786374502611141274645897068339787449699717303409201066201996472991101025810390935856901956820271916259820578854277981395338152402279816432468026203341504539556090098305821957160368439160752294415895020364683850654999379891462906062215272379683766010218157832890933050377041469384857551126313340487034972685716071868580367549551634413872035606197690394989761932164602160668721326774549029524824569940162373107605616215708122566447903750343287269683845889426316985514037883194328481306942330276864339800186507623272248839208842992573666433583544250452654269715829600856612680437263666028823336458816035013828982865948637274632619154200855302294154713868572307482471827465770869816826969979013290114770796611541629297515782315154016402986997094358053526665561258031909563163278415557591306727646133791856580146883337185083940505182877630303486145578251788935619830511969515056377341892875511039689248718482539320008479229207242876457155284097648503118614014419436314107682251280066691124328907730354409324598520879494742161391183265466419849984150106277160544767580530801839540240466038353627625389111542018107307247424846433141521997952998765115152489871206592976295505033702543963434067576648757144041045664509182686771695020738107316734749387157656204092163463112588576890812194236619154573731527312764635905494081732968934755015274712238568897897754022816134522158255445262294727290382581992160199462452229322079255689344197102402037129885952331286633171124678425216935415028155064677149569117709848649286784392228319917208511569640469176452579608063393216770954114203977288020734926640913935754208491437242049767694989295471111871667643898861990727021297455463326131268774344457509818320270996166989015220238461723631811623611539664718635755486325128332055020464462104553581171135330864286212433827812746627093591595798636016856446195712086204709807587973474562319183637848848327536293430619007325227738505846702898453567195202832206444656956184698505833138537127716322693954524129418559887923274378729589459903537643955422377290996779704270351145998974975822459648711902885763256255100960076848682721397379513701117535978905803468174360111475571244755580430221986975397333622304046041752530188971661871741955884417410939164865794408000809219303543904984860869600978169515104573161933903228329377165145146723266662843977429669405732325651285594481970395952280526130118836947512788797517330917988077234969817612324729898787322546381098238045276534029466563359109228761423946223672784743865360443706396194275120491216387851792864449764130974665208170517316640656008679254867103410937443502317496124901138787577864676753846554860943567366618708502935369735713000067668859065613278680365349924192732122121394380860785571110712217267445177139296145392997323998621186128866929394531402946525929007515164681993527324864708082155797109874325514677148450656203839381665590343931416802755549434877386127494431005972312089677878732888802098185866215301902885895087405192156585207548722768476021391504679213763120382130532000887658041813696325300778798361103385299201704790181853981500519738776421167168814700962012513754286603536770846428112358502150510672180121266247656332470217785720693874931282453977309982550300243841350824568111893430268145957838875983441451964063586989760982708718895990636317115306963938762578053699700870267930354487307501595768472331223554777714190692202168894215739253617314483907537293177002102172421476688063822592543942304824886831830826913923200125346136507637234858243911588425229272265495805396580582118539498153978067622639966608340193220085278033701576324531694539154430068367282679130340151909060537338049055282537630573892207549338533691346081271258985471033720625671917481443864587691495736850268267829260724483361020467139416624117972391910461779556813158737572804497934173230790975317233925940333717543770994066341445326861113430123279139427286351339503974456936732712427274366856725051817511444555032790317052380544802088675603145057538227969478026743041432218585207074905127368496570083324688503107003800581234374878661534424167316768156872020776518998105568948306331008324704660643464864629505113582774944636272064962055131778555835174024740334426446182258025035207416056256633145818087124951347053621680796820716463200407590310029416894682881838319037508171594663442054960564555076690767848181556134369378571079641593575248645611168372944798119072351708067071920491078327371779031050189471935528505087541438450023566264062071283159793875071500351548524212751396661317074870777878078643629102337089424697181596042151955750660294578466633378426589727132919919603518886456587036181508696028385526921857665577799920535233361667944840950861120076940062893771597511540359970097658674748261928060811648046213776047749298130046700556607396674779153740032113953655814558652590408537391426350994707473393652207781203331347284001008628257095308744709850492031185531528596173964751848100871148277777566210719985333952972225256314485919774662035782406445468831475106097444163688935953125113847043962769061977199523759597446249600901035489464702548394490244946781494794294019628542379901406734551085064274259378461771628534396148267478022415789410676709579338516508659469352064247519481478177385106881732573139001249832439060102601717961063765131625238436649760475087638155768672518417086217917627973074585367616126216253369463239678710457340604892190795116973752231410752986749003642638379397052894494411686498090656915889452619370620146964314745830506395104152480237264662132859660686469880840320722310708350507642075598831004072852814566691242595918808653466816865449434198608011047100323257826779472002160668484380073395142914246524185945540863859958821484376724722982685442927976972977911473207880121119452797888261758503255215528494296044111869274629024839145392175602425608276281696380027466705818316440337203852809107226709263339230138650351817185980662517726788017176167336514065435152231033110008704714111349869558636823217392629035658783120884459894914011975842427059890583807149183333255206372186130459382874471204143655709736313469504855432992605545920392028649192311354623382785529259923731705688068986677946480350657853277449658940589330655160046338535538526327597851351615702477115060786747099861126513682355266239078188173350887878477103491695643283542196630428920169583589590384817746938458980022516488354371434243857154111696594599939744808070768510256452709083780945255925053373004354451715446586854117878327411948974303627662388355865554579843659211389308258644447967697956232645677585881695859604895758649781894207548685206614945771642652317895805724036743239032014263649924230052883223622762338073626206501406309565471067056943990792702505390946854250893574450131172602906966325153469939613416990636250252135700780529111005276639155901630809887470724460917583513716728223511858625840430727867631745730054404378736142403630344296735501557286030356244132620656130479265932524904056575797563669512515865050253950272948700608781449742085776083740829063161960371692482213943473735389225373900739393823467733144051161514222098423265517735689259308317786629204248622328185797786137595441159442807733877471689433318842993502244979128147633347430100329727508106251356747845950059319133827473811883524567116124435677821051837674316138657226823152840727939167069844426468510034523471036874519189739555452295963329866507926566300671064612736646383510743018170751645626999637033272566679981577705177630131866333805949678183503983049702967485832196023883213418929979678328483338334248681564168176099283806963409674131733475262678998858776619325842116603827844748633939970532992373919458302950330782325080260838645392835523467143504280066823886905776755998746697158362953483696802803626979912756217491846278904867640156883617352229000364836696864370809112300749583755329715236843068975587432332933801284451268394391669923469754652701888143075710644381879121988179823869600115570210384401654299416291259110202337424741890236747964545255595447249306640320711581439424406747010404989179378484573510788319321166931351274050590639235614364616448511426586411445059860293595784261962708703395747306404740237369514636085296454233942369082486247366572128678634800929329055641624396300564523761976695525154891492572618167558681079287206498270694971745461210969783155333354094388081009709072616462179786867500941532046343233275009108272928090348345046688591114181320858561398942192067448294332456938822775675079986063834265054554432624501835451572164642100901357566272602071833442526780338412370466708450853575255695197007478937010042486421030177552226352577013608828493321070447522560281467102503274496036665333306559098628099612875005122417412315397555020752922955594904391625620490532644823928795910849656916746608880504929926870466802874298906609144345177734973440737863380924577103046075891553576736980005752937555594596021378703222087151140532239949788252860355062627937638148751752514874059438781425197203462816409845186332213878279609260778407553017644007331686228827950474661205691622539951613972824144446717120219987386998075099739934775123220364791521999408332399619732846346318205632961839199735870581586762977156975949339571899135398162544484730062493554964890891049222361722635315660902687260917421484296313596376827917928431479143623807419824883772756805056336444678109593947938724862733607465124082360010516453464634246574353811203006836576815509954268731338814064430351944803876136887518083316265956431490723523256297301801215968916227004027385883235492999703496414728481224863139689291493579797822953514716156755871599729465727697872246466558826206632572533024944887964947563507898859806305305689591533257215623643914898924854909712823354428071377608218103720782871499640049188258421314026747810517267463763389217863461821349886631499344697434331546619691134650480617986506941595879670306621273541866657022365946630542883275075601548241180427920269113617586607483153194813690100303014918890547890545289462588962172212996209608960948688229113057620462524258341422694240123615971679857807395881651979276060368253134212656688579966905962462478520369795251110936642578280606902226740963563052398769092296064612678568630185372490816110014910925165167946517055479254115993058378816563907398528662719456176453112620147225462543560141745537007261096536239951964393716467634405534289631102212799791404370202089793288082259188788454642093821992326250814232489093090546210475184714388992005746788699762837697424948488806337718815170218064835311288706238089199870719018203790597834505016155818444244019437419190696850195371680000661050963171916027846672318863130360685058971308950944795458416252434985115768854547973459636290895411583335746794977602874030758417565382473522221691198728275144976226156032035477780356167070427614800982152138075614786573427772099079572913499210520238531672117861447282153298460963580590653130751404367590087833547931662874083138297227435210732314070404040656573780960447554571311253640155605716161471097882556825802047547706407594925570309681255831472573462743327737259266342128990884811365710487392279096763876101180440570988898435253149837162313827188513115098550809293402761747516267036208329276326292747811795664566505273112905682566784936679980122590366004499169399865714439497250274914513114607319586180876416707137322323698584444300581756898313259086740134886024495506275109847164100790708094266989021523351810151766623175602082253605644414323386573080344785499194917607175615392203709427815134472553883582796846402003038577923128911018928991466459456169184935949114315013667381671345861477004569373125833454527047034561362530914511556395979576588418728152000156878191044375397215941596697193055711586350304618021129635424340370880085273699577565748756256768197496500823198651518208222243299591296682604783495432636696731596304738264590743868945724227413042396444509285920864386757156858894732574977904717950138797286253541970355446360510473208580521708456859492666553596423296318244286459547224378292117315525755514710581153787003070186478302340693888156154236780650752189095995408441061799929543252962933143320729146013168430246411020066506152005182691035693473062549262468536624809629439240388270230182913499837134509534265802761699881954552123908557111732005740698943942284103885674833906911818558835793883897556576569679617329691921696394890809371063229455249719989330285975371325126113270541673504405682940954528820764087657325086891367254342048788255683556083355209018649424722864199162859891157971414707335664340297165749342257571822667126188836165310085427019689058010772575149340458376887579177835420823519019362921613378918579783760789155384210255300789679705342629678188564519375363459298629476556089746473338181881469094491131636679923941827947239517427663875228128778666398427344876369721036955683804129056546785681756488190545979484938225105260798015885899996898785818370431156608884528980686211059834688603254188358629653125163013302703125213688175673181333691273087708332316023441772223150297955809429944765688669798227444726571846306282520825513789794893115916230852475714414760779587378662438312883539891765908670820488911233026779377249613468682578325823386433702657654900000269264101882888483437362829608425323033903695786962329926935581420805615126056351900880210471951577499304512364125467205398742471834075356592102169771820129084995679687317389497269933806627752991511329272255392880202039846920117222119376236278927165767042531220073961711698972709429462858225556541567095819187661913850623240781774754223543983274655741999350470738537865878784027870009516273020740480171915791167481538415738425484988253864806716080030121977392333934889735874077657583888239747590141079457407562580246432637798265568308134556939166844769878594482651368774272495693585786730673448862111855850314670902913708037563833552273661516352702263813184472091431574829060129158978511155113150228866011241147330125948390230063168589777073400698416339972477363413796563583907836647514320078043395379222946021050129460084004121142683445588155189047372047380119590652036780167787741780071149826843377564188249248648772093292945591525662194501494765249587818778445154699739429411938170374095573705590084609259028679421940001640268931295096442267901854101146262115582799184804291286123783431045995668512965490884524908472344670382116648464798904313041768905792275137072176331806513922334793256959619355002253056155550722171811493373828648709131556130177479590805637700321945701072348281058327216487127366685264711635145105159164499581858264043735342888455255497245334688933401838598693347743644976157524848280283865170040417945471827475409510798525597000445612290105567224111667324289338449542747651952832923330744495485958322048200256193268897980428031999712225163541931674168416404961189932901380279331985009297696502478059284872558437995763787092074075096526928317128262611929200276143174243791573591672006523311998474855964217738887228697161731135709944438243518551529468664575388363040623921313122479475565404463956457921328567719142224057009818194615092013076803199648759039202051234963279690422071120450619903539424984480801869537103653585292493611960296734917334991007450429341551839078673364213723554987496140489714820875137207371566897950077580084596805910179560327323970507151232924049656707122913818372532515121408326471392558292923922361510098934439545711642008774393691247792397170197611608375595385880038827106496911216219690335023929722919055248080806812230954839787695929261197138039526902580662168390061439080280019536893502612820118126050754653528000331917921330756303702809457912024930901125719167173357326926659471050023511062374436754655436100721880809488354452596041284413923632718174120602385896649414045631167559230515277217988258596953659614785054844686206696647271223598947558097081764883551474636823156683716696345790222372054283337508966128451446362093753383098860909107192569084029884626860463985355971858586265920036360945962067165728318927057782096927636298072435190352641131745833737261641046026846796173811599884430345201820326953029960910041718101770811178894264430230600191139665156169326494204620505288545009769897441906724946707911933505976632879348712350305766440552083677037668614138732277056862728737767254435999500049075202785978089658294395317543713247121336451839989355369470334122559046623169582969148997600279701695770318240698270339219074121602329722011981199263219693739808304831207195391560058613920694566848398174251442200645334908425940475017448850334164232557886962276882854638101447925523135084194327854990898404436864499667099148715689321961207454278895226275563795522455987713026615793385457520581147175252213688555187483886911003185021676681813703120113314439824627811352834102360914290060854390899481803808145691951613757880058942194531493531499249099739137400714148680266162802230258386524730289398402752074360526122484570415647534842665876101511220454128381544778921707249146547575070852443896373126302054627335749638015842466230558103409290189068586804176709255837551142166218953869918925724312871633451150114220019460205024029075665159218369890696615832717960024983527281101255154078622820338178103038482372857533798378622314567735142486314997679949799770001156664606961748948679922631892923068391430437542761773633171112977593666209020219724058336421265014903171179054953712299229897922031452139689653064169199614831318835840113206817327640598651581790503675150690009023046569796593356288587247263702014914692940083972979313843649112856717291687561860465951265322956152595193209720631715406134829485354287859050047278110512796005556699163247525823952650988936598187271693008023780354207580468075900866875236995126836009216628559655335999138180471651805149727727658634314688456123480555719387092482081395190543311464556456428740764028082190537956431275124115496106653510115830328703692876472895902433293785732100335065112168731493106933639700387197935362899934790985485063345478833923983009527874590854923598364337230264029005651605177951971459689917697226026967483409872510888911131948125544611962750471722814924260789006631691483103541886926308613391494561364696530251471283785966852247418218346816645099674606215625319891626033653723322856044815386780508126448301168705368887606242098701068586684840374835659182950701603663240223343541593891593087453783439673917943693373529391758458441326810095494198552590576382976649659407182172615872283036482763781268442498491684323763666195623745382925063367341645046705807787191255881104931959920066307425478209068843330752990129795113653518993660999688500261391449016258928904192631743027182386225154718078918212620482133296903979416668820261733245846115841409904410148405097013000954918156933804018476753399577019101242880354268981979804327086172923247715833596091953698731947290644945108189688734427283945715197351035060927281677104702307324516696363755615433939650263173213670413483103609261153653335643782027902902382682727541801209416413026275869187540155074906754941494659529144594680965910691798266261617248070867134548140358076510032123400092027478429302482645131216896164519844599966527144131530058696130945992169488293860984554093955470636842574076611586874666923086564303169765773350793870885892096854881244911638422388541972435176677659202228377092351056521322346113816065183832643600416202021982808319965195395095151305352222290248148870033679928841101247807115490729957403149775079200664870235723517098680830224491700458835141356337398359184847783145342495279254266465548578486923961423419183795146574725265330737195112230072324593623903345740812294303790138498356353012986289993067643221115414411671344944320985252233575622322286622824212724154350892718160766016354116993535497061677270791448511899637868996324484596634738111698001726462067006981464012709750185690360781930636081386279410161219182762649904938294815575721341826889542692350035963633425689212467636644051958400990096013868078397737973714868688525622986951717066885670963697184558866229772228961670534959647482213533850233271572987055025233608277368280056519904810801063231218606932949119057346950242083220247366059003976190021292514393197711665423734243324965890565291195283341018347278471769303663719318541381002023201804436795864890112498787344118187377426194522378406057293243605067956612461653610135250509852167809960452610964666517421486818614285775953454389654987890554943068591132793995823108914227592800862674053639234358003194007571151056401852810883195891046775454189732283755748910956384126233511458677642830160607850990547186574479966124234938523648427477571288768615125679694406721910028312141295033737381124766483654631149457689726781793288057589932156317245534916655991741983558698759777559280232493555285135452242755028902321505279407191796920553551883575435310008874261184707675345818464795913889260435006388589078738218142572377183798472940372689636898725179495422325392458752965271453984586738828484513296352088445766930478682687365340109510722812744251785518730529636000080787034417509510045120979336501446381739789465221151300234205545765650481157329040578634809132205206854656223183558229599299659494742105046723446147478904697962872752583658173332059829423283837821949905780045747501092420787988662697094894238690303139204496736246005400591422719395545957630724404615720924047844213799800415351006168433359517686408046693138200336025904330985512802740983266768555947445824517948469821957062980607852580604667189662836590088684251107017399572837645326301721925241557229765337533820123139399384363599700641677416282912407652613923894082463119718491466729256086193489148428384208366739213823152818001799520032255574834815189275078361070061269170521526765974276330894581913599823778320417606626047689664332604348369793004222577998376065972903399325959461950888948081978080684451341097172932244037514018914727468439139074900781642690336511576813447974784758536399037191102629302228218049818032095944771869280325996636731052438386104306044564080062140433328712217938621540804894789129746289448658157977749468816926756074993361980272388680430903773613951402017123469141520087503787253626352305007829025387381476174603980865593915150791951593645264850419568462788979018385999117431785659802276422485039506602129378278364942884545627208933533288969652910696861332855319577683701734574328308090721862119021354714249238577809686001668449480787805315439931015181379413494464274739150012511838667666113777818184559948345821188145311903290817738866088897838509324058937774073616893988782241788961724193722038549320524440899324574957608795292028821267689401385838869977296670230768653716653152093531475871060228394153718956301452420202946647947674613975799316354394689827577275998567793862430000494459860355597310582291870327966582857576585447264395135075466497458767251432486880888579767497884533643765669686043816889938423851128569358964355706378356179440459148520554114593929849746705884702879840334680487776825674349973549284197916001181566787970585082811639684756344662278406587528177004551417008226624939274220572260176506857440187725777832069194911381690585002719884734478277345930071681313304460137959963632546765562488260752938645312967505523759554819836755706984063164862755175052980640040000911621384368236131520002340640103373129960975461102284714577318048586241691066197326520531666800751091320649488698704850000786617042533103453988787209268608747277259997381691272799743216624755342071289049611079386315766500199074021844299607983381513612639058630551911028844554830870682447624647544318317683206935050778128643868928645503044620531638817092019349595454238098867313761840246072880190838129272365929783798164343636709837238148305189480976674845710644194553447126419320652011760897392866906853705359285446167453226493985090099060605901914938956926805855589469093569882061581907093212884912307993051831630393311504302241618433065494201367256455219146074367176610060757028644016265276644776416356218718715135109613241220276523718043629048436640016572365340802720736298713607082271160407321110528424217812618699377267954783241861563469951651627566111213476593856433218032802995924649947387789953076003221105161327047833610051285218905087315847551115905179328248885435589736490351015821011996306965702209056944226207437809537959254217672581547652167839078988591327134350909243081108373665459808544209258057858710559026619157773782473732861446875088855305013870492206535384216211980913900813101197317164042260584216066106319867198853706547029998518687882177104187885548943372404253534034970552412399017109127317981836950940660140470265179333171257813223350193598339740383539681234232213432792323667294061260030438987838118828050980105250122792751747611170716713252379959586937247701590457111901774520142085881149231648422546685979772784538421681838863972927173301921638803339607440721066178522239084982896225082214681044428354842964456933276781455017496838452870106591696458608082779439671934965735221177299523860292414845300371934561498567377306285808965615466111230735416068132523210667073060981500058039470376725026044794313378451051556476732316257884368690961682330387668720057929465541852131495349106136853799755999398124091929089460596197811655905786931315439062617838867074648527035989404573235569088997569967493556208789116361882620615594381135874318893540999944884946850238824519166086821093875281392488858307701612601703265843883714851664781709848495921059115256331433837741962926508340427705295979520335209320747468556468286032247025760606107493243012559171748014648934386529500469497512067888328344657554922114591114260037156915445399349601179256823160490328076517953579668356107577561877304462919449315008169341303375754619188018055025517030922932820662843932366378485116290389248948034532679015916444931299564438245747913194120719828614294741541278622400241558761936272527840159351371850109254582231439431751347482043252181060885172812184003167223597352169634254703003196642516977722411041575798163028350165843766233286812281307344378291835451379102758092791744089158429943866225642056192825263926603347642509229005789375871642676298544277735781302971050026497038440603452883011153862540720355866931579567734045350277765884716431209470794703655966481925029573597338186233110403285128642215135139975409470639040807131665380412212539287123588291097822798581399243259922269926761102196984403051647619063121851023738134617555284513434733824885525678130135068962316977585944532496533227475141494248408319886747972223202237704268110845664376157395932286115650332145686919326465394340403376203844032457634528440378758629992417230457490457512298329127875160251941607525910813469084594353501708451586545448912826552654236133760193881317430858116871854501343884712903746177210121414872958423307106598675230502670947368597819848482661318400286603957999420491411299215004769050956780117316975979376546468950546806538411494930785147190793710964535077864859722676258168327043439513548985840058958820127902109526232772796191374566402121790887409257650598033918807246724983493942606153560618846215496259756205117781182604865523838449291225204315163625460477812522736892632003220510519486648342147419379702911676750996048518619266888453088107848646991006945240903438671909074283033525988780215848647347792656187377159615584878901598115952662412853444059172490018902837137460303459772584469718565342878148491497255641881282502497635191675631878817249480384789856134102767095571204630433807276094780091243779136965084389715786817685705513925947750065080884588202085869057327028875804658918011249816896503289611847041204229875164836367525896503618615992977427361029365560507649477604509662523101915724858661689790989753662871990855916751854119417533910704485707708231241320352907774042009445857219543292483735315011046126595060563369777011729806561200189288054712707483085901827504140881521705892407002646629607978154992159873242031003514263498143108316857459925407026566054918379876500635632339697919036808388118395961469786751361666114854004018759327685238311944374231584683408520258253249026265316215801286527218241002585309057167101175507987594119192087417506163617286018497532009920164002550792758907858054457831791903399015749763966346752874636584978011251244002197134371647957675190421143468213848786459927643834521453526623114091699643405223474941528222713287683746299584072806668768719222373167237105107343857961424214977581837893778544180036386838123658607390043460016741239173974650135313316469131947714721642840433189540343529173507374142669136815806208940123045321613354112354397097168325446465498033132375553770510384819081312423868619471591745459999790227171812398928049645875948385332674695394253247597491059128921989946218469802434274689761745395398508670829740622451565299701360883600831350549471690690985980941190022433436242998997513889849510822955809194865178427021437677605863133458147194894958408372119890031333044335622735696768469193459348858477710268017880935573583601810816088259671431647497146947380050634874973304800912633038396299242514613355677532488636063033663640132934289293223510129298779275410351831733796005763072546264880552878983454177667509107830246011981433650051648923397152505869694093160563343114575097722427599343011938682985439598270362541565718208036043735869816482695341382142866449767442714035777080577424860731479338732543302632171682941734461106109985649333476094077218607436785625278661487710871427708247563830932616595978508648585820988246542561130732535948241547398597146779835803734483872285097681754249318367148098935262390930518971451223801376439649989053811096085708426675241598573882528375666958531088111517737642471631335237596679073945161620370506986033874112235433608520833718815613762316820680983352557240891128676976543259608623752523159392674762277186712690662222987209830514971187633740497894177162877022942355695311044469716495706856484079937177146781244480738273140579957370053040854127998164864093822353215708005015380889903163630362454068635231787250948262928054479599133841535057738962359176864136418310560916670025296731631015394355679567103526804183105958052290095438669045008726799713546605913904820426972361591337100278114540071008236877229040675656288052394600152359526894226176441380896055250791273285075865890112736631038305820377576055781772748308688107344342155660319421539142756495266455770082676799772671653852183045416918819330510829388243556522987160940728142066592014154178684086777966328622631786744421788501256314785924300225338188317543419292120265618459101551062537794888005724996114571449955064868257597414946469851965206832732862745639450612896045511296284330107765733876461745410090577582821905593443507700457752853856451740540217515193500027222680923936525575871479301579651393911952947875906392399034781935813385401324178957556816813387773480227251278345778674062699830907779524014648086407259885267043571469580562445761763044775506417819748283487366169101399762197657679873514521567900387653691487491759369003479581165025364810598867371321597666166784651325323161329137820988950572297906924493297655214546791203268803139482777863960828186650176367403435801115295106731906628798006758464634126346963519106526895351211689858773924638356317518948309029836834881664984069617645586342135943770201886150144057299803614404958582970593100747863774083282628322825545797786146460924646673906360791858202998603259131337828948254473283362265557731125640963987612054313286241874516506679427449927844676824248979383316700922350463211110935777620251305654095565036393734297625293282797378865925169741457585455906555395761373506474424867452032728667752172423310219266228293705102243560596189270118739162101765101468469084097759609454636817999884998641645957700692150072174558945873846403943032827888162294071465603542087851554765794209544934089340285087201001385910452111754575883497226531620631328719511482241059754703263255706211498154976507808319124509795899579358261213468068901801370143265722429326818396570639988509839523782978084101231777679674669610727371048897988000908642098994989131377858143307250409536246306281995456899947375173339481828899216133948625676983916541333456020525745739487247639221314522614892982787535242603640251411313190597115259439084244605257175825706750715989512172591689449987780140212857378588686092015932644753465618864712879084433021390042933928916782504057404155752596626585286311313394543972106769451579530584042014068898720224748880467134189564535532121585875311130064888922348379083068465103136668395541683005390937893671684916310317562661634336537555987286965284454428519710684793126006275927016848603739742902292427997434629878468130293901359972505937484699322123297030315907111762669790285091372883785536762802918493363956499473211841709761333387398903352501721394801007612800352419133797048985340762102303116573232950067880903121862842928160441171052381880845454414260777953113865696657995681981976690347173449812271954961792486013190854493111123216202566184513978547808750226404940651594462749715210464261341221750231488349197381046602009485929252551430348961464191157870376976937518797407367792479622481229990979260256908384562397450266785966091428051015532066789005398027240494270643716940772960601542935752875250183001470892628640546785050774520401691255930608360700833553656527817942998855691223741526896378533592462749492701181578399544948357101982725313612297638186799044919469042780151425184841929234528639280500215950470729254090694629277868600120816707139662633350177521191345844251682209412638176619888640500199348599796920193843351711575398063223769886354435937596286766475485929018255523115631498489911726978522868672448812983541306258671160004390525799851912833883932719619283124800935987292579857722623975938942420193782690389510261730473999491269677180263783301118079405901240357676733231072697810476807179159752102582449271624748707006426504104005323352963040698465116843652793289391718290611873545219676735434808053121539188473038658498303890922490299505809049404622914063262547417068936116239176886084194784171718150554782967902879915921141799223143560912962085206465228058261384616877411225675508745976527823337374172627266234002773548248977986514647913490312790949153891665708627235089462661479147536007129509870122795954848787844209591602818576227826153942820612183272875675799432707841301140716776659454773186293910495824457052046028129287709533767368508792070115675907603343134637934986146247748845967033690910328487175255168306086045872059717005654255599575787275308624339605916678232274226537698489497093547298352058805886709139855591955354479263980983209396695534776104281955007688604638018967272045326232244216917355235032205135855288758997047075871813906680070200355544675716261984794635555091137946381395263802647611144684202066336422977483145146921029272003227276216897458688368817372442111066278230121370754782798589587971146535073731393847689340613947153711820325697992887390002825432818836972630443190609483210872434201915038119519398137531720080616631822150999161412233809365791265150703813127792528180703164055941231739982143726861553626600535134274751176957430996839104574898455116317773728758633441882520947494741506947086052086457831661469722753933494704008165867464073593217918944637855870806287709062949528055805617396323078342921773220021617626347454031909528047125429574934359103553228318486332517333118927782175651056390303348703190121298697156971208309804835317512780215039620034375326950380404012138515443656575628375841475093936754363587700246953728272041450596651703649070533660176476198914522855293027434182343036141115032735630550031688712626980723981367347313542031859774647092374538734941471814773622681097959038499298008650834795369169116018050325636237773841793703499407780916059709636353240498586498594831556950009539571348319659144131973247671550116742616592023642858780673347963475175766848892187951850602513115040427089406253546114657668668121042233805037374255785632935314279540502244198274004725406832078832047133071458650158857617341506844878463634099091536341392625043424491441839758165446413488421059619725420485658111259550497398251060092159367898977938474023087069820195608034008901266834986480416831561244221849755217518280317172092216430454637293977576674658400733087453739443248852955439884642906683675717469108849591827090675558647018413177067625291651548911736332540537568236953827944242484228054308210172735354667513272401305853018496036050495741379107935051123066529141700628202670773916513341190075158929486482982755173693788367338820104721288336061853998526089549631430227176425147562442931630286653547997457546262873151781710362165828385188766040618212076234349610880192745337624501869045010394855707298726562920189607794235068767436206265063538963863020356069993876547219635188980422627701427487336514357850348336738780083592917373942321195734295511737253741697874475848524916234719594434998709711988350928682573797281418826876819298899471718858903520889407704417563597123998259266972936435894962394933639097274561724653669633530533022237432610905374031336925763980169091191309195706410404622060446564822356369467248781298840407503281118395806738847840597489354165332122282892604984435742773769660818517564489879678255614902145978969236228757785777606516755948523929353370451534719197285621339616532666957508845292572834923622922600823944452010645176168355259233515305895293623858978175484708798350832509247011380684483390756310602961278091490312366165257602912235359326867036293094250317616289619243874793865465872683593888842821090725824586593804012674318288789759856338555187587621726469379083158068596705673694714053606016147879121703655211701625315124998888438042003015778566412385226437785976479089090734812697448601948146640468285742130042680546044466064955096856631826170133484663647693218826372215026095791864012340895790682907773830920670538810221263758385977885966622605361709501217454430931382811595326397309503991780511685255751538155660100727394372093693118349459946317503696131354856061736090829276323019433585876946168106706337915307670447089986613093443697852233050571869183537442846062285415132563267447705942970572742210055400641903102603805074139626270332563723230955681928640803064498309602137366639366721666224493507811897373354477146593038727010758272336370363839608625877890858102061247933236001395440610915899527046040219708294659471405248325707554776460552174206035103520115759232894313364507243522720518624680837616846417274008855515736810097038735670345197773381484820019504050430603969136310091439693521070204848166641459784616289016552751965337924584663059692338561251621553394975253325283367286991880538513753427944761501629795307865253724564497061789229176173832861680327069731835098072154289582433736376154323364126864879829334334910811978442290910596313015784893121222746954419765200867735307769928271692697698942968660164590131698942763582788648092712047944095062159172342324622817424795335111484041430568150819134928748082342621523035537485925303866029573123486650758248640550929689180753354904537511647511509496746411727107949842872905747641479684813192295973672479796034519873510035939680580379279774463901452426562885488380750131835877196996592769572763099846681606831779901858118365581700252524227184449111730979544830591668096022509052536518561506933334673062607444104170516888012738732087633636747767006346885506369608404968615028024440982347507780461990585869500966207732869207140783379039474152777346368679465502895886735064484498794062194525700807831321796116438179516723585797818339650913799984034178025909359867141820903501376662787892130025218695350432164880912984732452468709284704399750505952667823839964417926742521169337619038138118989166286955150846684719223834611080767594573933819852726073933734821545830327719717363501651750073693702826235011763632532541039712689513639674578676959019837118803893708436454353924552161832105296530987344044898702745572721581551134714271746485029628382326933747977828965363327393056116552963828174374453812480198430810139889541971413412372096117169516159122533619666380146154771824511050947052087235499283759969293064277146570196163043999771459561749821335036228497033538622541503317993774316798547836816856462470038641905706294583239204888906607094994355964720661340636902315907530181212156640342998842475087693300677480843512616926849431659225627519796983218748478849441444031528257909231599499688392703829469295570829452377075435525785421184385145495176966403661205469649538335399320247472806667488421996884597866977401079427704602757438011325577938796932859660827628119048621965099409210649605489876162400505899402574248873683995581176121000116809204902633372962115926249778689868632119755785691977601075462198251068600588158908436739418364918667813880089758158358218242370534403492285541837766596787634667599638172420325681981623215973441875147161564456245487941731505677813255869051628080749996438322778394398422987552769665311610762005425772669705511815854548097891086977382564575686811057762146652797463258138773163888784072374696905243893027443387183278941743525550940717152632066221123278969086299007397294181455079110686870868424053355358286763062424552127307590915881021531808731368161932981712368403880837674763379769087301384260701527086159610423596891306600978676164159582912772625690535740287279235082315693532981341080089347096829441179628293995334351907715768376410184422115885628494043081357507885802148243260884614331024063098677405013573095370065912833830329966246128799880769120824376318615785396957516269534307634204172164250622258936745155898229326538540131948603677483316252401573840894301904463833629461830245397857626254321653861692082232906411851056039227584842269124930664691293931724736627189034101471635981498414075079086640012339028410596798656099348502321605880430995391617129275154261052115735153276881183457189965134569992381608979292040215397642522667039860238602572963208539656021188789269170346198635394542404324760899908902047998139258956586667253989449231258936362008613335580657513026847451262034412202092356640917726452868775461535164290735908289436724321341405366330619209206499052815197473175166493851896047588654953943412567832544938220625683748115814544360525055136857635987713570777638539668924927853837576020130755779577500811304887004821396026692173521429953349665360430577411886319652139455120314301352195338985748976104648552140023159657436811362263061585038130202676804286761557681326252228145661771051273545606165167060084719169984164685082111647280160280067633624113916034999135620910061754887489827366935188833963738447620091641315504476735856369311405216954632299402114907419203610860001290657805750190054888402171407592853322555321406995580971052777936714948795047760252676374946841987356034723444350218924263533974573013107035272809748734266154429565167931319224408302158787968640688967801409154647856509431463370325209982851178866114091805841882824118953081915662103762661488778669674914276499359180282589115451082820762408182493074214471200220187611436765417771650921412380133822376168370561443513060362899916572411879636377869506365997556356553617978627378655871493779847618902449723322456644725165521641657224942721187193767567140682783962168789092791103904640351658254706929415562493303008949650756391921437624860560004099986788372879613151837854961398918597942536325461400682551164016760042151153738115362189508646958658106885790471667076136135718912796815641509219620789326867329750249178022789984513323041915368878635270821561184115297287297659146070038284318525439630271938287642827769767831898538017023402458012137273159895974342950310261091936774078032617732306315599852589062272556568755720706269532109102945117236957699520909711858452598373679894942370497906207220881044500106097899564921700391276998325006891451807433482090915879127529379325198303541908886439369657427017637188729275889533362004517484180890041661354663698722058291735640141636848999529362026140475133982378633316901457726615942790614746055150263653081421362402209215806116230211758075509108992097584310812825447697895371606530823750950867467388565197265347048540225047381199844902978840740388456856361188687263800288600576794049112208111846780147052378933772132326206370276293951043598014767532335374440403395370107256094656377945923761013067351397973216170931417188553093322635468641504680221394384220627169300550794141661044659163231559797284020975386839229798437497006622387717033426859213943249802836144298457353430755482598608504050179017518106477387673422342726427525801710258727675721698143780245468106646156690917252055017558040244220096475645805117683814181333911886952540989448881727084162739738129869083052726668017505521637445322512829628600933484534296593993776385607845764933081044404207058662570203717796068589613517228161264589886623696014974458993380091033030013469967394821716461637540874877527620778589220919400963992725937777513879918435994523730359969255116919493168295575341426675045359391314832648958660519366247293970676198734454761013037052112385661357757592204881324290116202559440445549463421949952359587935659272664130921260430270634902767614927117312305148307379753233752698520398382446994452463401088013151725005087808511111496560521668623683979131327114499676010566821184309280479293613921128309187388832818076432430814179222617400372102165591593187767102866081449903668289458479556769887166605093069866871862996406921235854271827121308775623165309866458933031784711469219266646863091806876385961462925832508263691680245725630952820207410539734501272946699190311756852601551712051266440809133781702687364904227325104166259415973481447579374762571057377668941649066100096773576715003508991675858881087245066022574065588944985774461036661740129419977882326624915360681786133318340054011840481315784582929145402776487703191245223501274755356519386135847668229376303524771091560826044857811555096656953167178335074095421141653862942164887653239226733137911495707439375956756728198066780096146728446995742435724794651137451880621161840571449779215425580935114846549187688993106526188654531840813037981938385016766773995081439454039276494411612798012387657213263914869329575081359871140002312074319554742491799376021329193962625095119560665276930292685558159470176484064397942123125497275626096395645313487063351339735167465805390864359647317636921622090382402423642192553957420045958832412771903820886801846011946533684503355804694912347048995523779663848651297540369312365574797066918384852263886288789859529286774001427770620003909850215255490674707311082102243725912359482103123562054198934441728600220447659848996622467842318366528546943793385543396610692032728902994265901027572977888098231259571240296161361133733876411686656967287242422282227549540903013836253279950991239927586348982014499146608677750487582359671537309762690106654222818677511043972603382933366542386036547145677322513369484410072311601620446946561199074592425650900692109189586533352862369837407730814788188885499688579104391151374990404657373905605910198910606583437294827720850164094347439169858490366469105688536655466429671567007938001513353384405665191171586235831298780330849711097334959329226535689335867839508246390895922810859266189928686485924873741078743807534951692376850762583837452606808506754762181451041981935942580227482765711512053617539407805094125155164281144637786090355375950020157148172803605399501953504771902790882359291137950152714460309406265326765271485600842997927840364033365125763589739809122715072193483334349857202532074309916428006054579282771241436218194695809575183204215438357045419114848733351245337783307662065348361537088120937046375632026926028402442644288232892810304547241724587030420834600289026566940066980173924830521139084900346399466593929521680603781633329333435430731223968687427831570642846873813461697534016454967336979205423429836714298666849145110445244751364975175057053484779957842685844690910532432362583711944594047421843995709785010910833231656975588518568973943561260328671275950728985033968698190105361734886804893964304210815726962790310811298182929577498633652855466497286252356944527529841483872889268181204330215672423799785118596603154262423867853724024713896083863548590912433832795305675936433196980013350660897622002843364849386921455955212684682660110141157141905014139707143529830836917902842285780609686476913169586291619028395893321566685136999729540057250614344323541698741818879830634915904271164550690617635261241951891400831739830604909700175527061377373681373191481697874084064203066569163124551222945823046434954277664205094501155106026183890908260959487196332712137915382866705882895753593825102483251896517651486205056008527750944859247884523504661600275035548859077436884152009322623809907993826820832488130742333911299259331436811933133878286426160139604619155343826531394046700534873755989734957125511066870503083214028282804345919964023124158643578509209720415898654033277578102544448392475242164354579181238181038238019933453226828784189860547494409422747402088744863002573729481454890787647681039256441102334590191631633501380707745458631683918185704154507590471537971917378140130821774931959542067925620454368095940739577992364248242612945212454820426210434090943990189706732052565015061487992982354071200471798042076256809208238099517367943332517600899201295301667066855560870613719479593268671957353790305916856401749648571488156303829430647229904899563017157510264396311121365075975232377114081503281842521255729608879401874616410191232148367329167483612624479006374859541556702503999978688815064017782891443822468715033459805119841863517386134076146220648954331491444564169130386677177907396991062726833538790481669083627305710085996291206405477770072849832136541358929661242988042093743006307598733459409076718891630562862389423122279435635480660720642212190183980181294199636960848400995921972143905731278164392962556789586899017114546565401100978654340975370385637503995011181366296945014282725351599463020130286223660882175146671127074233897997112161006127596135749794158255409887106754747532471573512404494278398810408859944088088485893270276259610374048859607618839459333348971011045880555926884290710466419164756284386939918780984515206011550938529345179531118186063475833103584882328991138404937164356099513639518863555041963738828076251534527753272404077349468253013508252278163118628122462967494121660017034228458008549607976785420799572694386842118627009073801461660087322790647459468966593186042161204023189408756440421055727318283677086932096381207110865007404992421127404113995405377294908743820767727885401086584239599725275259459479414402328271607480991662745274099617116463988546570570836818178920169457119936984589437995972668347140606989527245915043089774516752173696802706905691706096193122001750339452065903213664362925521387242375697169172072246839837510438044406195323456570939317196443811936026019035038530042091398168870672559474421602107251745847390403213112525123527235527860152521152126282624545385337781658128982726356497631797758988652672308180535698143366614047166011902817223996002797729999798754596023239866792535817632313810961304854022921618447563878191027417070691050860368412638853497162876397480601588586801209581357520470604719559757679557884046361299820148375127839281720798903833424026514097938466665996070253425324849948432739629788834242548736207072564124617350325135145539666908727696421793380377403239184341330112671315610412286129643559095648000965952154240119197334153909296613604280063281630443460141094017694118862062894818954626499371125382978068518467792056734511449198008382580093072400747461651901085952768462473883662082761561908236841862235799913652521802972374641854352686779218015695878460838953505856383887501810050294593287132927686143545853395204912998371527408075553222109926778288593381718313460886693866759347150189871819566934082533982983973314428604158232969629708626924841906387634917975594813699187605500796752441951259898654160884294748149411196024406769342141404234245108722746413042856366511889301072832012500301738550217946003699781092066840309294416083914034043631918199363113255557584794046850645031354050836002568027520248533531885028760815316530245438838119007926177240526755201587798525394051479151832997618542868874915972484955675827146988103008858832521966426036953312311054156145287258630291593853585963386805207974558547342627784018732009542599606998828009760484973517632049180839597738116317846075980084416295442763319453633993756523719446607954846621264686322966576458816579241960640576921210320024548072241549646313625845805477399874651003766835648512568570128474416229441582743619889969000649748682548835864217411712192650837922787397739464003006653135689808127732225034133626323648308575897770039637468943795582602144087656465344467211009914855959204628562752792152566640009390347706588637619561104941633086278603091960713209950741331608321005727579152145826745070494597662087466915875824114510776581422346788577015477253566030389999434610082507266185638415924423937545770579958283668059071998383585158282107506636176770769556799201006027817977360333741715475724442908320276824492766455775395140919630553676820275430926158571911218482804504408493189769921213841952753064076496119014916514262085128701012478658592101099882680382618779014686719148959485771448503563522192702990695510501414242002114597200209123559791797058321576645496055753473977910077720587946929299142187414201406549266125965523006627997300399246281785960745290897780469075885545779300984614105333881010652670597703838298668664626139166775729441924191648803686910619112962376512213711308952669258058027915085001441067972769534365071835126074937035327335350998621160683943023326838993095166046196566507017798025398467130908784720219805316403981895742783636725034946432968043771529558657232330326580452561086918313050996786199147039868837359603419109482886253530384936081789521721000920527030745264151583586471166866222691819935040161202044071753728735579915419029047769731462601784408503668552954926422693402641586681994779393336486073316407538682568222697344168084509358082676443775856033423982405933279064567116220708431038127880196741807962345010309134497776943842276127199737424604912081226503904645426682889014616595483666187059161445333824967573405313495288355649473276607227487550015030512166564753401511718179084725885971806213617560220302807678785312761144747345208057454980746668249517837933481515774214404583185956557703539469107891408024518738335491311417980985247029804068541375311812659387416259790707476732060307539817020090243071020306922496601075397495297098700409314776875177386642301687834124745937985645183652708563293539987899815387230788957301140052326382612384974060972200529196681851261651438675458605596914835606826078954063769471896989012960123943082009901585827957185876839609875881649014171240384736962995135682895300423534296885634133414831084518621790242747419327089691779444078043548692017957763458851148165869811684693322067668652905783428037232212416675322765193398029526998822958181845568505276353362635361819193631070698712379322581376456626607799057394656239205362425311328024781870041905542460003640534777450030220762801610977835324503548918171462706980809871589888411167392886448224188241992609858284158306271020396587593469523119354022190803235300209472935446988004802458885782923262528744260713864162985042541891152169132381132883785379597912209230384910721139024713345627613445583060124451069891313295535508029470777126084559056079686275055177764748582449468890394121083228293964734224695919039564683375489026201272456695550446202180809911573306602955554379104137828739939342134520948860822767241474367063748226175815061849552761382736410230651290975206406016637585595017752979789608038783407937183189875669091451726616734136847646154184673110651046211076204321390833187204643857914767122929846492604902430234932623930206429347090562577930921981154257417949894981604590626302231617943452251099951159164864942100141501824846903138875780856751831459662041398549994536846938141624735843583444993860603770629002963765668720673962060115406727091819144164744967628255890356403538763769650844282204914660443807411730995115979307714242792301830857537413465786292522348978228199992922305356890174427460281432006215464035053720937104339616866768997420057118039202726731957510262169608693194984008350446574931869150154635595216493175388023021022967566066854290050353778449997758202189587617853071801301623472657980545880396016327597925005404230355216937643039204929854025489932474230607888576164529094917539812515307025962587793889326933840275186178558863763006381427453390124912813730059969332536612454830349136991116733212391429471754759004679536505101009042131292746261576583612921898875474602861682334527950206599462190247764729991866977127260743246077672445764398579481609057461432953631447865829149505792708643545131900997644846738891286856372375846871994885374595336824747492629709165098954895226244935530748252758017109881386291075564749703573687476605633113256664414862541210588124926804337856261781577270679715157143477455676733706062660643388910804231445411878833707451779651633956167146376777753905406885641777640944661828883005132061837680064857789698757288016060798699837163360011883336086956975262300355793349851706693924904887651883554199282297764106142415948805311319131124129833075106631069814716474729777959605587469172414571904718464511970297445463914690747234869358137178872668143179735134943267873979604148713022460365793724444257793108516410174109547586429119071903946831987082844494792980056644692606469127590032609912871332102352645886414530477571136957555194078063317984387350874832738788854525713146762549871820393629714551864544908754095530367303989014268612532909572767241359818070419282620713591218967656301109661766799071026457543718541022878477756943327623696436024602637309694213605668221301823573041967931774473678400618538224431916513275480762436068368643076812443716176350153064759997895280783305435845547865223804234065379054539270478373610372782016886983230574501189011426931100630998139670848562373448266971268060924708344781116014881163666974672953536553450556875178088183852306121796656888281300315690267706585688240691867593021064628171637622854852301926598008503146163464088564028902659406441505533168087719504333685892568462606972735106960332410389364034083397628698655932828197210355517104393724977986884163183899939756726207753425381734711707030203365868171190812817156433951370520072114517489624286383227530076763044179239044037488019653016085691701740091343116512075677044181897372054177512015303263563138670494549155964536364005618843822287607304418381377102994897749415845724758020186414827613959011465364737766301034593998287649787367279819274319814372939957923552941477102002929197279017647878106247567228097266443799884370258271227854930506804555802589185437971340983841519702197114161045946940686926134745832469731695683084539365964850204880396950304142920123333684821113444442231150225123071207027673129378387787532439217120926716983837062400985772062400989140700879548539236938447674543287131193375626522627905386358564819794473092953212145504966916401844567454030801944020155504731508850741517799489450080406559114856441489272634159858600140309243500636892637894138558070458161825273923101660738773248034901816824372277371847270912073414277505551490844546330131358666508358181257945004005659376066918418745258100195045117800470850456093826412307372071282691692803157642848970349325074895333636212767632209226333336530383867700639368400430927529724963842946523366682591166550376055970766542362544821043863905586472535081554128556439487768704977659933951379838934478739585843659026506008266394992181975444007403576214685063769647272051060585804978946658607483843805416910296107390578692997466301710533498170253673618110656034428663850318171540554105869657105880887565868079886369999510097247572327581917623516317066964799020839303387294111119700163187627971401603993448360846727394635734219176865353323411294469603954156698782391815357203987000361984374327425163185398092876524027994599560314262219041491842718592030705753847369651403713135186485932548624673281266462577905922692104114178822833930065464359318899180602927445858679783003239502826175928110678127073517775517206045460547343991508019496125005445213578077320157341253977451732925419103108154839987644883302980679519027532867342998314679870136509890007536820380995786400078068042842103676476934091642935376752882796413965169693028500964790621163359857491452519228923051220131324705970142442002230872558635308566791689276495568547049495635847247947601619677388052054122601787958850634171937910451822121477777386482714895180773745554166663141766549877244489739834242798869539806993528583921857071678300780928193999147139977258847819838116296305643792376459617031024846417193957312777248892744009296184630772231033136900250194253863161406154372883560188089089974408172200400227723047514217994198931778943404787386920849897399480112494962497664160244179378223785063170767000598529027432033043252022995885924562511170218087535794034632391449010573621367575996465040587453127431466261121278215198258149327112661356262453746477885516465425136415175473457145006426248219856605105534635636542994062068163749531023960536259963628605328962847763664090088293324175074791575550366651610719472179197424266951732791318309141824893857762766954477115560889839970390357308416837913260890237720660630883111670001017801917347460916560535863420624415810300962381869602357292176946084706974945757538830201161323876656706312015709734359638944654494686201814399994423854759410532846418775313004997936904827700156328972095377598599622900137405344407607568135411659234731390524379131379954859973025370605634452094566341353122613297628649069176111532776989895249900400509659026230468817140919473379538009055047023944558012004477954212820023727209478230570266956826313118783934754315993859060421654351633063130376267365073338882223502602092561988598974748535226022938456315740872627720740337375370124694982716978889932094444030635463065280979219872926237727972578980912122641108019265457915451618135707184309038186193631742790358052116870854539253297564122754963058836637392368915712525354403653530010293489550100083135795884466344872597934980282559926873730346204236441772349793323773740380289608968383895255753830589888470065436051288347761840000792604076544369195187188015712612257754692463769136873692246785732071882687305639513381360583014757732062742318341524552936083799273032437788274039352202301625080062568053261806242839299185789522108213483625537893475759082552079531377846329073715878257641705728119973143604031241315972465403552707631376397035083604326018841685235256700786516180235371492272641071252644868347716458521557675115226673582700782805964819952669995435188108293899854548489704810003549212789386524253047602104588956954339876337844467927051218344101885559857439797623313668346947201594944324947377677467120006057829542287186943758671938368106935709204055389346208033397858794289093540243927705354593872561958114627972825894042245748726364153939210176370185927182982770217855960671993933348444844144679740853598045438190686147381746481206805693515832483724934481118218085901952059190882213929459438011921784222226381230219799593430484947553024296723582599658158808015457252468621615348137016380354316240043436231081792899219616992379899565780100145574410219198392480103836751466926206740412105139238086991339326290394131603894810926962882490267392639619395032167637878950092237910798228623291146487860801318196948881196014133278536372559514021104395958276540841445446723208405507377796665143742336280447080911875163304959218152780749464878730451304904141213559412242300001760406543678973655284577987598302163990064871711675520869969976058110278382855125880486600091748616988746684354757535888139399763890069605959000225877529022999567390064109180077242249896838225617641970429479703510573670976506802843839580915170806129720495273766389572629859081832743046857128904695875542502366727191373008063976844864659320354180736066307907677007090050770713016854407175838837198152351500773923426445112169972862494377458406944672392015522000033864919448921267272660982747584837249228839042093413824153539079188882821544045388734538638590088576751349334049870564953435366430112410039349561914087907883990023903482754212113560900343790023173868627871749991794156877009694453540113863763607759859854404052791982392429856717200606406207941662480048620157400325832739482486495471586940393504697155436814216909233021914107307138310373083592049252783131841149275759389091710363050255538152841296269785065251451250429048645478083449253876768569489824040075882416343043095873344941105931335118328339838463632935567559230830329826749833825268827991692150442018079137781933899757478966623380441653857556028522924286075601400567112592303242671570706722307230066199221973005052733208478424033806026845499018366014688217033214521056808881453652283194737692291288589020687828340822803762394833584038668595888190775368468023407611820542935874675053863390230621371562944432641013719431529224060861823091309231056438612860619618817967918366181316525821972339137550529995221396138315161490346478891421405674059675786286447774812244728863892378115484228491573301613672391600127329605392429168718146789619872889918502690431688424312232191644812514163421596915796889120172458209593261801688679120867007658297563500841195088960168727471561965425218434193355822364749054589162556797575168092861390908270770051480028939922575394238949432839152170468517778346640697551473045318359693280629306243675568076383800744597538742527969674589595528330543846320911571964845693781202144282024500583093882274392168631911300087054654217966606355911592344405034529829274987782050855075424295897612356262460317262488415118112999173222095712474894327765398717492970097396381120890176017883891637309873136581037205113015774723471838477716051001339685807535464247912601752112592108400393718044238774288998684941629933952426013559084142867212083487806023687211629537687991230954744726398312142725250384256530116435399503955190280068552008664265588672328639824693141927673016913399170308346344120431402438934847936574690061626774302611790842601031686230097336761640105258638862054667898794770452610818836683292392706253149769208312360635515474303613389591406175479435453291546130274722167878822261072498368732901473361478908000879444199712411111285522989502107268187170986219713274887133714406370469696335163289903828581126977657427040337171744425102430882945417652347114409257267244064273517612318302676409007264679139938480039001413698682082974924957461434891372933453073025230398062738570712098572279477626255619670337296428194243819974814526792668798229310870512607396370553912128627880319935132993783359945730108307847338126359232777539054986908529091184235120082108462943076428491662769842892242774037572964085289516094179727502856200967733660512518742986684875130420051675230354410238492056295341834757685530909549049126374572072105771776217974463404203222250415536944488530810767283525549110097042850329036568529669932855843282656749411346762982166210613180515806684080300908606520617980849755067361832585017990644308630181593760721849142262877279508399008486870722037495117289975861052100469546871122293019404789838681270056509954563936390161714227185333208174274652577411776806051154926326288673173018575516723371417355561300625703490628582557829239779488682592798257132206081106545623735951869531395675750042022122600939724033096457955216052486924845742533672649667074865964415033240883999370922424856485579165952626540505226578108407194270340116931390384674738333084998617429882240038903280834060959881415431073402287315577728283401532833368354396668628488655866620096439800316203176775332031631957706330120381435075768781761040597966234163160361799198169064956657513219182041033954197996613745730616300708914923995701880585364870552515697789140002647593255773663668336071926670757816614221522028724813732332337237386673052177199485702786659407648777490102424865048455213233960357283324254570689060463329873655456835373441396658474930401929948819774352131948724013996310829885205299302850844669124723870573856008335507144938732199533643334694929179281040543683489707223949318217439193352280280844256347365020002804800321279729101482538976378642473579976883098728861322284145027379494593957510284267802448701914950761836621758178856838000071346673981728840351027175611033341612535060946734917992286567260806813568555035368739238057138543211815715844687196493884726545300678365152676228806765211713795060716629417961630820839350449185120596668993058590212739958676885998537322179531857388339042625201370729245996415949194618964298915714754083589050025256840576930329037721785867271198524663922825948787780481945143761564305988370620826045365556047331245342959520926659446008266822229577325557918706226271949476130856308444850077115428648027770690134718112450349501672102597889164882931355241312771544933380977676613623687727302316136231016633136008185680428766363369778980650511224722763038328893238225460956343219291271295212994281921901780302126451966216284662720083134225763103206143765779700077573928905858265028125872793234891460783926380821866338751359233623076741909067756914680154319265056671992163697415694368396153388544142953149721772176750957567629226593273729583378636787192202146257033229299138725459337095271548843368300765543818784387011692810144241662252895675845413890309984468387413826613268033055636844046708413809298930214368370814415591948253115699487817173606712594770641051791470600688025989041825106986781369604213347274729173917223508609461075078355134803517257959193821847276688554200446720146656242294601499559559159116294460395389477607454223530658028788791537899927531939412751796072816964418158516106980314933770363869489208062761196412973195644081396786167558857913955358215419416732084303802268539532292718847462773982976299264424717665470982737190214429305728148066422214444707823323372095233293973008767065011618317330813374739693571521334846236814482203547264473448019628263581753555791208905239730507625479152048275128119264591295791738621649410303062000815271047968208368499864388687613813402366049539480932849302281916709963304951019618750473165183932712963447324831669998963339790341114807953636139447573892348140966933730544641266173449752920513085718913529354321208520649452258383129812725093991612311912991189840421444908940215590543081403830604658317336297467556222902673909451349311467656952621040069549009374284288975301064956259593394903898363147358899546234691762943973084840118981603216019482292290738433691573049605912614822540651260013083975351048742136535940841930887171824249724228299435794927889965566100645499239133888337204022617630183547009475045796080968821418932723139107290660993778178893800623694237003933688742664244707436476378594738481246383326123223899733745458786284276747867534999131365042428566160486188115171870139400070737869669522305740629939175682791845920823379757677946736717685227816081296430437877551687700036338574076667499676946421748164150971685142126208060515789523326882639975450076613424666731164816947109893919760923492297667923673499118448921726707760296116496166246399735555244660932961482391657149660821147313074540818290127177676601336109717575154125753794579327925460652475710386083654169539919779071942254773831136183429665852956030208154130364114843248178734578425648461826253503827776629599040232345074792220936495832797095528634047893560738101376682925473226594047385276103609044311566127153735734455539959882801573191529128808345716225213658878158176349590724036080203066353042061524318367525545823237512447276452678339701085838907698735206610577069636232004924849677312041664419998869088677036782571319736863727705453974900235336025929476604335059038560712227336262574378123106555376721282560539498411121567776035860828627381201859578333070258849566581259950985890424983869575569064992502576195997065046413992550595207222379412770797441591677511625733454931507560655549720399087312926001347776282573230987311195024599867120852017185444494454403268476244183627891979348215953540084929768167840161047456356236894548091297181091438119844562985953597359133382545180601061391821925382155183117376767404743859841556273858988099612630382027540425251890165490638409546173440542481393800875940470377248581647916235801638587485255527165337451029671214593173540619448704946452079145158829400917776717374349813394736143626652257482853420140597801784796473477414539936277099011330664091173885738928028779124548330350042909468377542856694348242766161164180720636940136870222272826215299515127524159666111671059803278366270103558873788844577380449346930741071403288266515102949942582879247805681157142481855538021725165915240368370297646977253998519429956886756222158541938811573095363551017294914071507488924225202975583957698333786141164235189208296341228275009252585256853144760569107086977216314660165814856542901746076918077331751476969810881902521671370727268740141746259706320533549242576259798254513287878280929367678234103555673933773687363454658258454940958899614860987766239850286105585468410185280417351304420988783836192637708051741281743597643499014111567845614546551492720584028981284054180782413497037095164659715663952013292507457368694253134009543444404641173174391165701351209347474715111206964963805180933157991547938018384391490412401295605093524571609642962082835662107342654953177006848123681218513688338141788706335088502031177974027322068717048482439069461263347324717145593883713752096717450638433681207278567338561335599024670925073161206787071014481037980036692351350676301015747195078653162160843304851079528701471559607685945888101830966968575943209417920018064925698698507678442927359135379705389654525964202007489711906646930872079665699137089340935750636635627033315655264820473652608678408067660019621547828488021101989861647517768785351944351120567169022697883537292029089928891087276461458089577254038816884117994809648409281771426321855577558367018592851509733769438751007599163718403535766388715834658340635524895126865290622241179010695223678236595206663294570023856251801957472572455400572551023372844259782617770087265744637643313721294609349851886583360810423807370929476430759149654157791528563183508418116369176316508209721636265675725439873651096738380592896361374267085831702653100847018992963129922535914037000561992212293306373614026617482121678408913943996848046742288979447417315007340826275706139922353671607261345502638518566546388322478637647652611229396548729643853106785050699601494148227645122905704682038597597534283665277010839002625516765722253196354763408487083625531508176209218810700975389687685080637465698214584594901897989890701838351050910817904417566204812378922829240170276549249536178098797849533586028060132829376377309495431953279995432020049361935374945178205809720139762858859940808774500013334020635679439266097034493596342696447697440009333483647427797825091374544025162307722636197678504270992872740483797788570092439209880560969729354756426604357202887213677358433732655293161234698628583176485513398444619996525536225120945374154136394796423067216686135559950289459593955886683623296757558285509477808511259142605382758162863381832054945054091302987077661848225225398415103083296566460988505934968646263941779952937801416502523968290045357367272580473966555725207958496427261113723191049655216351593650538302157229546058578387638113868803342735110380088604252200302489854898357601928626589439532503546099590364621267889324321701138571384026070572455309734101764693829858419362496464473586517397277636621762123306404047972429533046986569304631163920782973431894146124316402545004535359503488116445687678273397865257489290447893529886923430478364730661234597043478410924725374565931738602811046220314934970654248134618708136879713093579026884225424359248875229148134571376536204484135473666400498969792608540710629946066857698964189357627524405312690259424825773597095655829570884654817843092936848083740515904788302268464702658972032662037169630747074422138751340623799946095063594496637416024765994839399802856161361554080358095088102786681162559835642281084729848295533762152605829353648368953997196954365447536842595854284728104999212468793620134659604799857860314414879175644303669823225920878905109684465722686934068762627034280811379052953367505145156654074868220580830830115711130808290071782697270523249698640580159872756239433605099161238987611299551830890992555274267895806853140946307672510370789295448999315313153683920120929798657495065521416214749313842889866209222111415013608296479015113862908660851550342461172880911663269142927835999844968426919314522505984563590280347730139168813850040418943055600834522061868888207919261577481496451207550012070597771320070721145973444206524099300363237487898368458059083206102358343407966465500214666009669009706250092081001578549800953764352556843998482904727500344593627059795198499696900544815531041097644856530862226481225450825909258425249749551212239894736590567824682262091371311514282943579484862179731174617469062718583870300066760748013477839659106255716932396062447050285478136126748523203283913499651979170351139104842244643324910861440024091083062794776456990977097517592314937359226576153761497962416832290459717072942046306890322755918726450623091518480034989810113446445475637353665935764653263664795547068449647062707061661479913068607813765573750084143823875947322957740117819466250734290898361098554781839976645997174731070699000479535846007496625356061457398610065212839364346565932576936140081050018900854125689985594718566059039161564703316380594209502408204860657345196083476429617942438056683302875584811267472911056063681921150658756122059086700170838804700457715127836249075164849619709678406456861608062936096742069056546853460492444657877960895830396516453409399939807294386495740089095510303910071830439211902881509775813669399788993639824933215890245201560643311068745982858750672809942022669615250131370997050515579583330800989270577912053593981423328264155932652739459797731658156337442867302474262741026576659007746549277470268304466303428124610772736597524827598548147462031914477918269356875193029473492581227250518037795411396371025517934631250686531216884932453864890864496368580814622833134306009336786023987501243715099703010865600299676277361369252940154018808187416881042453573848914955467852749993872927753775246662196438805658908791609057734310765046963383312829323878657577820370261180575477376144536166501120770987929249820476905895541968408330546637658391376512769500777425340122229293416575559783361950188579448867584538980124184441000750144588550861744559497196415412666658350557810049799909645239169415653548169267753230612949279234027261498925126051649640490914422068149789568412247266782202302076459482964604227164828842496261979372905861917095103286473300443979542873069596053729684400683017202660366085096506667706204948514860973429867821231511763279811638160017161449496474909778889228816982849712133640286500795031259749652689236736916675473663760393983271632759080783153350870197610051230596841674407562985110162952072747619321192323147454778122604953979370995591224175607940776164487807394207768821060964156477933701897438151765231882830466461410689790711347219562940258962615002418972389730401635120066507329975017386711443959580718639844477511769496038991648535205241486808478806001197684177206288061884936544287226709375197557693338769265703847984455595961041994804464677897661903502495428372811371870213274479620165996885959993196733770227831897478256666198053973152680484944235208956057755736835747659680709052821085103901453372805998087727298323347521151382141446286451740156034423530512261353583651905881723864128703469156489253690861977492326993742959700743666452032751968925752137515829969567246585524072399187439801452281870902373988373873025662681365300434968204621402275638464406282832588914639775692001136412106454847095550217838768180661851713275437824750398863174835806368256679261376702855054997450549890844349518274709992818407397217217966015134260881821646920357820444235437292493278698421535587455262364781125009291096021856824315567141365233386811233218502070593372982677102916981425573357285433648580605942117229947541855783606892741526973321028450258240720225755281239322809730800558278441316169728241887570534547113345828233791501769082043795100022201289312871586147693968229626820747920509657155859489594380840182717349225148540851206210936605440719156007384458178361644402311705237268243356275570869294319591235070755489044557696243275596152543698032393942953482945905003880180649969885393049713264161236188331543435117947281285906846459243447970498680150218460547428620038369367078791149796370776217029314837975993776087964347489674763548794244204241716852310431324150051969443965929830199465330060419983143175791119011686259567921582740834680541491942687628559008349334606650167988782792144959719758863382864096192767315317741233013123807193962402152468921756019572390326007887636101545230272145807561238403264023824874651121294029232137831832815753877889948827822709012921469253342930664405193803365063938964181126198649680670996345599448305659517705335309776858621418325166087961087658453510231863943059393581099411318371625562874881321875865489469964064022856936148045307938526742253768916121492203007497464005054466431213924233688059114377428567316465396119305635643572004709833436315336162482249015476132398073365904373213971417734179947545375228264602552086235928772697985753244629819932102373444096369802482650197470752515608762832416542021375888457016250210397604954150370983437604984402628453116902635100192971111021206521534665065917862912591445859167240470655960965660945718604505808746532321655922416320481911822358456793939901349124206261751676697871360074739190085322822722897134549529245177492823924797794167905366516785951861853003851192414973184547977623177139975558479078454470686850126520704862351724014431346530904231922419361024109183130319000358240369783136884498113421135859663246333852134561000496765165173582811578596883780078989878407606943065838745171409261624020527548650820888066638273627965623673347629099176495965005278465982831000843028455770361425485671744389481956943481550323404989892601960745672423124776818004989720538052377969909478474667854580289399014466504419912038331757357950662141747503943529347693178031610656118075336485442939873704561226185828165060654145636894597823746292957733708733214900275730459260413153626741649488978702324783077254445617175721578246358047119977915281609314932520106785813866778385991716651862542227163228442160547608421454153820248141030001919525541893877983611290963226033367246059956569901006408811793392175990348824983731993559947447026584502711376746054357415040771335537591627766293465872237430365367924837835554081277313366840316347011154247649833724590919669635204015414842983321008402926796330431846013070630343637292255405800394180805072317652702965781855011013601529505298378075042122557868703692555861763177408594429888603255472676153107377845752092375811865478892260542182131380749423995961867819417726387683842675437317970669766120916363064161936697614044704381813353810566068453626263120120972121573503609042748026648130091850792320757884226336233977757622410927301316832055009005914357639711297706434324234806215522021457747692793608523981771861408274241949091939580109881567976547719419953086290151088274161571738308938756190855151372109555641109948634909925738453482560305299400398777733850142766168591353519489994451300169368648370331901056662221500150541018452299871012784712791942645875282094248649650873806528334020512833527637755240566124880781635767301966885272443582081008332438580950012776348740811048056032082451715473798140791608151294930744466250536057222786256855003651624500699788086742956188457509361563289726860768183633953070170462177391694737222038677936866979815807219490721528676622743936250522470666480126340928236251435905240595550347156162949079155453193506844415724892447792870384103268902306361904951832480988798863828709015750093638469420082890929835478262317639460643626181530788467861698077496449644514836551846084870791598641083497406297162035555967872002184456808270565067131324544928849034924659645510738526304424012618195317150944260917515286893645617649389270578898867388415045581797399456775797870809475308249233115314161306316606074636943725327444624441281704312423506457984530383130212970367247278267293644656394040988958081600789516222082174621231240740387514810491423869090355277711678030507562419038471416577080642653324031017903634273757977626158213406290434842747759939209194985339774019497068302545725625941855867463881826356044782156398226170353972563587516764994375171658485596330290883466290088991731105982943404183640294270182178422718036150462561684158485359097795287280797803381195321885836367432863169654286382161569085506855138923567585325677756653572666789784929638958947140013044892230946034641821932836228981999816028513165520761727869768938689325453965692964551777809034801228193501670333807861796608164980133462642363997651983382523684095889842989547289130421041037344214205854415228359596193956529030936645741977494733883775166977080273852429119661904552164748816786037949994669090419222499113292336985654427832841457188672114109649766685146008509365892474969053293581734610597528433838072308789296630876911416259951734777361229786124357899234055601851459592887658730179376260674338032740145700762687748841317156042795122113772558259407669925140944428626468037611971946382568080453619607785439180953576827446722511530046008242553034292521500607704224377609980344002141174089549888052087611138600988193109186377042791861023068793125269569001459009192958684382325951573393417418021701487769932628993443022287252473162663500495011268680222433283814361853820367600187699968499500594847088891453521748443282137825976881401993363172808845940040513630778781217530095686762019067408837719227539303236930686531610559846555662377930655516481639424105912001778150555220448358629988600506865348511500200093519389720037548029893180921055196613688861659927225157609229290136385100516022243657249952771948365572690415394666109752736631689239153680002255240403338984874385651863710206269513843700718502682784653022692133941711743776157198975941228215587728304633681003464200311618642678548769056137448997462270188220984884266725904532921584661053547625145512160401128732004753639113948258513748275004235013870177275734765427650175691655903936235975793704637574775984206782054109987330298074908242370424558897091421415675457147320008904630510759225279133063422812381351938678232719133710664049597707863648588951042396538637613198305044020312107846143301069178610201494546336456785388500627026117842897698355838187436067567858307302893190044023500180270310870508700269182109329492958936615775046398419296285339791563307863820935289850460346825849921710578937486341780997910762656679704089397978434461003354875535727218816674958459266974736245455008858599818897831740058532329480498870444999630992489469073523396438860299728789012010849834778769678329372344392850450113257464892494649956991056460034833097570423820390519289510637035750985657679956100846382211017061670720215146512184261947402930630655399814455239650750197973969117320816054095136518517388103686394556676944637712410068533162846293823204917596862763696810806628657945362334642196732989032725200440210021821298384645325176524734895401370010688074970753637668474534776774245635993358719191571372128001732498673357195250015617446351327458165954288674270541071723950732934607918480404304265778566740088320268943548123546190453948445515037591175916048013613136031920131004279053804699887181956307258247407996879260759113526804425180691652191517727826096261919421889228414832108620625818791682619735944045128195568436552844686712654536902024237522544154747287213382700126374194357834305024695433183049491196464547081430980505674813580992713255520674683120619144549944231632503344715243723151774173897422417867517832757020263466211460871644426216618785126076318898182003092293541461232118230662322103968390025781274827404852996812161217600916281482494007441140083050558848284340536651013988711045734275045608324212180815194496133421427141901546789101043756814051546594879219586269667818476683912668290502877408804747532507228672575495756750594200265047583832095206871223714453882360409542111270328139083750047644371537121576896246600002479826714560300247651934150652387463200883295022065319554859962544019346977343155337712484886493566550824605207178854179301277654656378229558330623042886900320660798919196063663775446131000424166923162413662017747440156344193634126726137850635054062911843809723348490316152870542843435156049181189431256221112204531602976728281800359773846131941596316851776727427086802329885279017575352321212240270339782273253402208025745927025028408576797849255939717531750991116934564565829494620152129764362274807143954072407079834738128664366070793996088089553710655356808074120987834463021611202254741936299633448346736945591337397735508312268158570964902760490785077908797824020121766752434040834541861451194830892442502094948388046428747288061357408368289612795512891649398747902634289196341232820167880304107813504097206436153115027225343877201224323288803625074547446887546635143610347507469816056831132569531590876106121388554733851023556214126104041568284591554522819211211273534733607717152607677373544184396124932904966958510378379462265373857495909692268836790466816567479724344346413570717053384083007100990592137462934959224282949176971698272477862320455399256646446339389512086509194834822869715547499621595642289588774605547189215974099583294177927731103109415205833109501769853442800140599727932891595646827536877417170555592276580094408206681267225374462628290794131727679887515280250547252214838352929139072761208616307654549146402842224834681881463979149972530317091474202513607129682302141981850866464910754751892570540966763151500058408381735876046197870870410675645435237490336519468954181978298349253687475701427120160764501258835914874585172031963072826110633693303157053588141137773083563820779677482567355027030877858681517885567843127112855787134608892232294494018046995088399223731296569852571732625544312457932294047711002094650357428328903327886782055752542286824044690562159634325031607925549084928020314620630155467494036865641291969173099965619770841917346227791954036840216322272235547418828922069957115996875389450238721082349755714162589373608243625665413242288481060426605204030226704640505220435900073289832590131622911353536057170440923400034012718673300198135154915751765713848969727968918720142257123745733418699546518746864562479881156748436664282776575647675472041931421582861856026815901017051366847854969792340466408228329715987837762580767985482028846637813388344324441531083138549904596948468510948655902739916571075028364692723293164074309541423098250635942503745457181565778076588099808107506982106986926764202170897878813864789242920667237486982489354699005101572370703296956218578658020637584946111020049973024319620331898992680846653617368990634175265185010843960013081647581869087091725030905269004557002219012123072366388637373037102863931049062957712389967954289016548848651798970591861040964454164585029963428522026401260019962477798492297893039985796409467495987457153990704816439134379934340332598059361041931015468574328700230426613030793408133436506889952704578139297859968424001653418116986635090459693778611517022633850679421155656754220203640237043131872142802124439789371490164486715761247052770156175004644256874220184806487289339743072776373826115282627522026141078304978669385016724164640855413300615972936317965627183623141066666536928037508668332426245927089270060396647806833979795979019503929053721453680545829702007932657253698030791459035299031801935813531953248817700759003806611012088317084208845767570516351626497126927341561857761341815388292194984883001959267289647408366217241929705541417185115985705561374656200739861464060131593091467691158125581387561283272499523700292387959403946545571808137159709207352864792335196952962793203930411335564835048706219089302057372284274978734062646411424867665204314227586363465055239199092140929563628036714096935439649083807937780777360421946388550023445624839264112492785351922890047863434610841499728505709656169867623317325539244434662988800148716449830109983130953016146759417571086408481552468929865548425157799478818626231078279588851339167879236070835394816233632603525187920795019020035866595098161625767454494172854055291248663637847938713818268523568502012172146499899581653949500273238963121337942224459388584460594229056473761321617224240562755642772104593721250793787966790541831131471533029007548579790359557427067348870416458433605616620297161612845385051061691175719427099717954466076075643590323513294494840414261815098114067910295018809584255456722775218094086589650320833414871195314559264922993896514824355237801649249894642082826201321642671887718437093292595051570665049645997555929438826475082377985990872050714940264369020539797184182740517193909982245701383388795250462387401278873042852165089841171938331840737834668392553322377452560447086855394498917171521000318486804698717338458437854576709251022891824545690551190535181271356685423885270958508100289950216627853860763076918811010599143116539540244947993567607116334465076676505641571471965103411813420846885865350936332943436699298950136154591547974321351625978132708783099136418259757268331906116766258473907702370294425452302626011963942328300734145418976609250728787257748049727933433454900051299573504953460624124832295085395871483502838104549679540039460209217009035170650011895946378783212109405234444202173775425541205213542051935602575535774847389866586049440345301112939871536545646728434445502179881399974623333933230305614374603974651026549472205967975044168584440485408725525881308332817255070756729629324288358396209030178936625896761685361519142469310725868361245460587127328823802206722036766433617818802041184531196210024839068192562235048817392410172610216728778671385002660285761829024863376311433920709296525320195641465238467952744301753655205315774443539285545484867839145582260496166101327414962293635610854139887108792683324700139022800815538137664567727457386379507569859848242871178954161129179136981243224127082808118475500562684935523084007913334311931934645636888248203834073747690439220216069718159178302042034015678872471187807208829040812277588136109612115705158396642770012754718779433263212250958442436089461703257720712571845617329772353660937820304251985402763741501021412772183901233550504172175123489208686287740281383662528654778563275333327598636062349547127638632475984764700176250805094464787457520959521803292557819549377947945882232578739242917750563362194137570390846308111680307220173893582827643702092170065212646975524557535254265791086912483884242535502041149731459583621094283974145781267667177282704401464070947535700741485111658262247600177326698043646186579491814543087178558819518902261219834653561699444441537807049330896142758944918573768057959113674205800321296956572909728797160016860891089224998164034298115100704843726286546999625819384399526668999381845388032985794801259722923804425945888490480927695944273388881846678814422274609541986588779584852130172341017860308284932316355712612937758801245331198938366628703690144753084729938281902229760575338017320235338426545753324767891827295912677314580921854460212104633065909421500754693324476430727874002240039503194779018159872796633491437226261825327505187986127468582639842510249537635645624640701727863780204937562544995375218882006578091769442039247839055101468486855883730258456279071314517116934637971955729232486043319590076495588453916967882238162595591487899548946880016152857765088747891071705709678723811219702223745006253683135109029713281486540012972351765501318121033852400697522116315062000557204167201743356231849403027929404418491893095619492994418820721261754449338099139675614467428788668916032491037153787981269953694922819930666514271708150266957164793540152235554835248609383415058951928312733312303704195866074229094855858389595190497929820013232027580117058046080434821160288296080601037513400373395881713889087097730202057678377063888173661260285188794676910954091388241439729721438180657110348172579725291754460606817168917392384606653559181556755307994879531698770241519312507096491904874537567578268299894249996244380851370908878309376875056474465941948368124894476755083479711957796228448848482322784424321449589737497467801745819899335088126592554569305973718332630430333978622737890666639760954834473009965837824979022101147454564258561055004670491474891030290970845100339765458718936932082710470832440706543992184797696336429431525583771659617000005688473158105050075095182270791781041702648789583257748737494516013833813871848100581153909415655046471488808946714802601919077647464756139462064884647338398863991048185885299624807627000312383321413882840959653071422141750357889045112357780635036906960101893219262102898100863639150775952685817415633343907597403375565138367338512486474278950424870116934042590620604861599590650858459357730180810332292459338854825609841761910345735303186185449306450569483205260646145242556819862889645845715419330183918450809372711949621922334789062706888038134903240524168727880582545195844152974739094923393988594131478148733854105727810987000902030906321736594827849840034479864861431501793414509850114331431744664583292957072857764630286707869248216539757226430386217551409174622261679816524443143855384959359902101103932817140460469531026026885429808781329932193699643045344645234810722215432949044113267978603557782849732721431163428299836962214492426736044854739161284744126580824202868832153766203489418396801352931607231451419332683728114083352243879183043602638512590722828485710072145401575796519614829972337420531522754063256722865330095622728499752718726455515950376069240864140873691963477446566552568018933771878669772896517853986874618868791279036332061373450175493012700878755016573582903098537089548031464095248426778765730847726040571971362770648895284711141707143830773646950882355987462945902445870090354425446222075653779485708561816328752961020754608095473458864599202750879949294744310765534425549509511425285187848733389738980100117090043304822217941885771114175555513598006780181822578652529993262406972659621260226369675897268419566869846831144276939783318210143490516438414103115641205422063334389317153870222544473521518072660648733061083961875511118037562474678345321657404230681730688432746872854861325512323887840529166815901378557890437107629071834536210739784198034039626093262688564275742082837543011030299021136376226027249998540948059171060390874938971979248153043834734749861863852708111979845042396055512609345312844619164661051302303379386414743019924347209840314454439960391425722401115474547241627352351176847896799718370462197229210966933570502907823583536263031550127176783556959267376537638757445504523069557435475125478747319872369914377769904572706675310961669539047232767313121903511712042962226027831796167855874023280005276817953350019076174250700631657124637193100013605482210266816078109727712807080919484367248232517464307553799614425224417629782318089992041416492023878028454968557587515454710391900561124168809608770153725582723168069712546316980883013343762824056042575152661862539885054493189177718044756158588800578777901036397716445418554334527195259867176709420160535579341390036151641941693881262802526614036748336625649623530788410710537262698056192315096743711934251694954342783082588348334357426930960482689962054941272958115844497390972217295561171409874284355265351737506181614418428815779996743287016061680341624414667031927441794457948483307495650970970130964864555371520650380650600697577595832710886403417506324413238882307178503958870972959810159221260075750821987411944272174266117935540079592883636621606073195252549585654699123889306307535557201336263360189251983647116982621108602526107089545380110077033394667266080341139495595689695684628886843346286852769433850026615953262926579550235380508464197632259173156208173911064070109117468352418304450313363478137495563615148162020469540923357093339785938025349760628451090958229220265518210378883395599483837338618420129630709453294596885590987565802113895348848067102053385998920314351260390251783998521295357080033163273882070950567383457062909592449440836379122402781836758362655714797325527525914077642582925630657723119155339507961375618809983158000828371807089839649026249166993114722475478578807197485157160631431419960188599199115840261227640412169020714982148630852252843898859605740870127893174749558261642030879290401676189575855294483807792032586189505144719226827139714481256555272973261200822881475547579332244901440677352881911866380144628120985135595749416047402771796637468836459759175680112469323204994913605424691353091125412255471488496502069710336112845789003969939145669710818225458281582997369487660396821513737043196654172296277224755052714919749278823257219839022790846666413849370741910586486877920311965157293259969636366076024267470059624134324200408258089044939036428761796922049357111030479077771813471988846891191266357276998975579196447631785110626327670912314392299577837009082292198734941903881643700846322851310201190503049524905770518167801789945245724103902258633747927144829661614836090464834417819414044328015258974562507322832938422655567555158229661894016597938896414395514688860684713712144605479797875000679003706782302750985963234724949969535501941600907894400629188276742508985239857556430599876284681971845513465119098953799861678017972087592335099602666405072741753076832344425801295393201613130290533305470323002236194713171881930137431846801162374015832403574908225641189820202978628095274353433344494692547187789688911844802311768540639388955550877612137115418550969344467908609810533235387883725937008468572569391597045237406399220690038276482455784910238116095413574459382364876457259295612409439687755687365861843865923788819591257817207834627130378742222609390680528082572788949401034622306583493969425596321234044278302577666793821569857347977455175459638762773206497439678935430538866015712682975705870605611392459492175525721939949998173877365175471465745235657070918158847450811033793421177217451605108805867938362565089707523512924871716342763620604604488917357114069594605940803196479391315294785536029692535903661223610652072429299653534303853327929676192968941610385872414410102423833291231003572096839666497706528338946209893923664512332508853587837459750490425666208505452625544967160733578804764100459234083542087857897846832431027506910079905394751788562954538873015569068331396685408928259602993101289952639701134870164348908613961493595663672160514455570055255849073912504844197782421156972491528040133757826900339994588676452790372885630955167604690747322910784764193530167245817989725030474137319046942603789675845731242258007516390515833166969525007914352884688918975156882214284633567233544872675264370889230247471011900204364911370173471712281328575188565152586215625374460078311560422837604216759556436166005402324915816766512407102714235796251694510096530430607229319542723045133418998885315379976302694929600528288748210843294890207331275477077376181190129075391850070396216862674782888572849438080665820171746463522575045203621709504079338298209064078504786647366663689952842500732373493535045283814669657172209261852975381847653424646475099774882412228858747985192873506001884902814195655117185126083292099841227720102057884026331617437998502510169606117481044540325868997767432725647168421700763675188564053381703904900284299637956215988931703426767065220847889738178494362327902942702745833910828124388959444569061032881044156374600115077048153405738374876175267699830590939491878775310582046097851499859354615303688800850849234227408136742556398909156593866394868183769400808073635666375192574363974114953073225831196009792518210712854106016292014137881519124460367511078972965414307281948466029781394568884114577713240224059396267813075412362921237200789128740607184208048455293347046426773334112133727361808556926168554183184142728930989381986737836162524532512231480168179371584544596053288676885336367355127114200351326812927146304084976567177315224683779056795488166453234251952951263428365893552321531777026480099909770914432803343641564969349641021099648292419063964714225624553226202013331667771540715787663505420485163226521724646310414509183268405635837500160901198673066649738250083160423025477529549178706584199603885664759124570110789407711101640044721914914765863706455225439240855229210268263418563422349570444075910976168195775289961735465533739087938980874042938018343951001986665894701742861117085437683855653175111673010840214034315904826347665512475257134260084764629295358007208192962836800943423587303456906904557872858976523785637675154835862539026340733410221218525646930639923015901324885794675515780678880735860516920717211368466131789781152577358005242052729007670913113866886512322669177181258192709771038312667095568650969116026116266888944557521067562523222339319366182952511928906199447497678763474881934274350808711808985032020343729638247375478451295578610914288456621566258330766806571140374239727324488235382164284035402808591404753974257860958608118782418550400802794595720224264170475630463419701150442696287938398642877073247047727424747441471411552108383223241460703745770230808922993730378027442760975264261149896386500556207069797496893917491218563890304293826533565839596129223737020331958617773574219506041982028232495366321534365437245424622168743200817979227405281665963528475429855164464359738827609004298746658043460877196820463821023596329189605557034555247298016606550673138746196499468024517085919522901118042346291582155891712962100456954413732248065153487945450120498098071533322527462091888002200761733043683759281698766055575597628499765929598101593957394702455352845227767211398099743409946867521129539999928209150969928208844067000438228620958502839550601271811660754467657106535177449451689055866356624177848280600294966898270264928287388796753259398724858804449249686810673048416352853317018035625386223417333912754292793807500005117016576747652651970473852917181412750073448569708995332317931927610251979905697378585370000956476169021056112932270060628862462186654198380789445737049253034998663202248927487932742039258658346988905552622998531555534119186505277261255663327574474463832114807220171528508967558748589085902352842009865308479777385874111568388398596094284352308053862997543310628192096724300284763903511680681768402062026135757845803849658391552187387347796240813050742960123632454281381903624401962420249540890830159792806120684396361327838345203622236399939131200828421061214045373952358158061274563257610835755983215481747985774807103501139359813562433847065609256865272199325419271065171495066819965562334250665613779153289710269319004392225284242415743720262957390069043461900716118528564591049374108409352912113447921748160247324698314496241942385076973202861467194490776950718346234452533785474252944651949563353347934927452097186745026237886191992442971155493894696942614810708537195781884695743645847320534560149020093143646108056956638242889501993898266177143374079482638685488391982593162034919377956227457840595157643576607304869515497100662469443887444273232163763912635446391562608313065694623850703300423518716772965905004629869906518743239240481893603338384361364938619914278633512383322558125115550080050389132107592401418056277404100923813611237767332277463610704646880739809711050325941658562680703758246377253411654720528937191354892864444865158827175876335131770643914806211981257713545288877181963931161889770480133525794519933725038302592711041756959617558567809724259933710899588939458306956995179692558968229760325763818523796533137547567339460150241392834316713530920275726002785675432182239382987405840667818989797256176633290740472581188331531051023603391946738455820906871753063250968522556035334470234642931680867337789127011802938843873377918575734425918377168867524949147248356352758172120104663288418386988378178358354092390296521340267333305917484977884851074440955014639184774886828383607647212592823740876208498087846373313639896973191039632616576089242145755039581460687194979565882826385590536259549368253633578327432284394299568522836383855411929891784716830556775011581470384534162632275307220707242735215322896998400885309586912015865519602521150409245374882962014766000376442924729721887132910170391536309910721012222777064008957238103576871761552275906029887557101602486599260417431109062890733234170072364851709972511708415578480698037332113946520041272024948534786401170448656412649140967279882221161216606527046222960371537240594538253737710212761136517888703377043259213384140276312421530967547880210334595905374137443606500322187628861118511259190712181858050388970800565469198611587048644901307794023651427263235867239378621768764338158456640446799929529881632967296145088069134201184970750568543397850107953489901634802984944725737676112272232166558329421659285610312732979455809190177162410904815296652241751526102992612419342875442953140588735413773645900941575364064936328560540833966026514530796610557485833149023013667159886151018947097421445288581787104369783324259450467427068349219820603334770657185901121116415894151167880121757289871090088523621647015921164982546503720362436788257972565688147713996761916424531206975083968085866202464163132229582956506567144704687580825296643695622715000568534254439654312579487932757797810920678384148340736218380426522068760757608427119075237153104699489890400561569779218588989481861556262389095105928167065608384691189245521133958955701651138864738831572775010258369556736915341638913332381628351228626742277260905389051223413318043960307361734989017069743142013983169338889062852150700078930529901977301289110856277214919946111733858584251746507704124277522816885433257528802323566504673325250818329937877871599484544711615183720549417622441324445500788031007337302005616406324911267302359547692324413560212351498329854547531857364767092968635998940032425453411554000211255989459924602606561888915399999839227002451751984124764049469156834297583386438483554289097685311246138080002812108240862273858285672812078508510819765247206475437869008623884019332949696644363912378582254906584199362022075168583737964080593630866512061505125618395402841136611646972714548020406991650903804743751449409079465940218642011202843134447072914864193884622474162375864340209247004984157185308058627491493056948608935343472261419199959808409618290637458209431840390823558516050788806311182153389295179145615153321090118371661505124737706124163233982383323922532780777383409324831358670086000891171607296408984855427154476678876373988664441985048945437230419258565928929015740277916980327695964983902444811702342640840788631767528945766418394925393766716417781729008792212045460240200895050745703580977193830112431863992686294284049045789544990897054851542322976850656188223102898718930514613992233132175439431202541768973004204742118747902913625883694880059906369270908954097381360531259661874793046852575885127951491746526773579287570102113681899198488825035994338764165166368257296689936215508672227296579585532386987046977592157019936078438596931922894007501455437653330326565597594833940757221627916046543336851015464868575065501828951096172232085260078578662679686586984691160139531383891764171529355415108905173711178731251359929676598129994606274972959783551129173030048848215244460123832123880041791548266681458625215873645714401528670778001492086086448889089503429888041056081532850721166945613051723521176801095009328768127300911444902806312211224891008628808404045101685524982328947653455044811774303992334805432575247562163493322963741713042372445450022802093532064468186108597619430621559537808360071875421589784697359050003431529024149738565323005637549271467810143537405493371373518499522225513167800924649591508511435490382446315887509275027994011304367412296694608520607575407264764498465956702745798635265434077982859722600883626039621220039296072296833969025095873387191579991582018461720205618912949038515175953194232829898594037556682880978663086100504588437739672215808433243729742233645566350857668186088190781407283575605656318869916923883435573978503036207033981363406021483998429566913768541922319475181860158627126847605993139105217674759120642422957059625088491800213155779926880264431067722344470013345807759989010153197880478326269082173049787846608219730258395458571413781610607404017139337607269640837238221496725168267695089029902309790247421771146819978264325122428146676772438480184494416135567810316733821029859318143805827331702128027630042333427403780787694615255551191833671078863648071912721207959947128996336041919062245947917762004147207678486125640517656215611019367711008953110149578949357549330041029504334773726052713547496152533719807820748321484373202966057111633391786089351634727075923607302039975615269760239382020298638948052248112262626239356397135072025067836231674072335693913441901848762636323141149666157934489400298607540225919904944678125256190090045485292034321286046388495025287103250613123762532496358612904139439115132179020977937043437103324101617782314368059947808777411873344103339207601060651550276219602533669011435642218128344192737883479599775201677175354946179506538918133284794632211715193068878186563253754247189836218811374593549674701357378562813175425633842295987042196846122376537909256751653956249520525287399202607554733134030576325757295210158445246309469077186858126989549242419032725313455416114217480905258006363615979974888156802429859869614830889025058882269079853488358340405346457915019820040848543652208036004915799413737567123466542365283992835535633922313107077244265671124637811600196868821392431215565159284978076377980108559490371987869310737613277293438343646126806510070147075806268354010129076133074822234741823109416388627405103891773589187140801642261354041147508831191018069229880048908605880261921148054958947322722254357934275971456523205630372578155426518025341888076937708977741342572138884110084809362792182544286313942345554170744907728950279082832741911467812043280335495639381630314584816603781283035878531324876070527076566487727313430596697021621491434441616440106825412325931172899743686635682145218506491356011496800625535538573273660299020278414839598858693063354585635670329319012720422748820420705014162831234720061059976191157161822222024504804120288134817385715700529886686741334106342896283599073085038260065284954967296764753724919921346448264137018514642079877867257918066359225741507513881978666421073542577027171903316859622094871186174267361006057453542792463381356249022461555455344980831210548170515698544475111841742892011370804804730324812678535798342047217261608647233887574224776040755078924230952416638908586941166324136509103114074287886394279786870604333469319831489224046254412931026366501355957682792184427883209565875934853485369115864322444133218405603504573839971633284279344146390327009806752181674733620126879072244620743401506691476638986513908925438241765146269647124206863645659816957611839253806597399216510427624638299369041401016174804069331346907190205254057038222918347296170596366014631421316915271228637594269833371617372088551144744819702807389988513684922228223325025866001053809246116109588881258892581214535636942187940714357789975138258693650792696640450315793747305528237955318635593584646899453482901746178658163966607634462274312574679647629612284951779711431506238026348302024756274513489647116576682253917412432471722937019672464206942231478947613374640482436718741789005062394857503954933717495175569356547055264806379196355734350434214302154680658165623180952644595396279316759381242281459714143345410955349384300035321591679547182470656389645114760849642363795602874753985587223845202734165929662096007678514340926933131861875473356908644513604376557041078802853554739998123767522256953062950685053979108714414728585653665068055248362946526240166170344750166567137031423818776759326237649897757971434821770337374580370235714099960309916877185259191212708166621813066499848931910176956681947201369895454133205551016365661054041917952231969277289803996214828953401993121062967123904687773015139815042858092018310351152339722911940970475429165797010495284945921242704528330755480673472637031738520151531989048796518547193251106747102522021180113041113216163503337293971053394350756603393654480653374908458484948529490428088817582897176386157298737404840426164659623681965039374485497477588432549375728232048542755255495893717991105346162368147813023290620566108186851146034542858375814939872120290118455973899377047430844190540076803716638028500798332195973020270389641896816084552380161263351495125087262577549357076481673439396848570564142394303405142902379819862662674300386824838696323009834052024531787846932921182363878974355673967506779058647953781079090984413757906179580871726859353245485406038062445849950235834323603318920049947786108873508108597584027920564214141320683142178959842747174656043186481987234446010284174243911970321255217637065821438788515469088156613458153847006897116669290840653456265993971353818346539894883352859616091021695697410693916028814205379050072050484809610322110884001886149379688072475554190280042942420177090235354448033933652862273778129842528907317494830421712096437624075804097062612579156497871044557521060734307215233182834218205317821793798901915462208479600019114121584912408329618430322984656107783415316925079665520666303544231518769509896716448321826188028123793065334602185572992283233214118290056558460240357930916290628618471279031533928173020888396709847235215909135339250637146332663199842961825507016366039527845323342300937605406808129183836665480497612215392215614492301006694526070714377219872205708936615960129516009657677215789936132390509689394856999388696870665953255449514535745482658013751235856019801160532410136799021796819889973729343329621565330110392701600887811754708464738472901982611854730872299172407119873941437416328541214586911707008618873964691045133832895238899272298906182083430706692329264287237153285759378501026962217401998663852967702384871490075114046918244769586941696721798552261718124456728259917537794621464741864293544881655525887240873223585899032273879445990259232210037346821061388659493935382579825909226413820479632639437602448340442967730497433034088177289889051254156441798027185215617746840067606664102434834074490522825869594375817622332042556077550781616161070142192164755364995715713386895165278561568753516182216673329981836210524465115291157624004595950945045130206738408474456548454734354400247290133944064032300010745137857657881759030089936483395088131632242734115861612685598245750859663068497209878837013675233748582347556708108656759305315571148801574171516027008098507803541045098400265542289307019823377336183684179495837667343994250271636858470944557739345058626387128884609575353124112525185342391234020625148364616596721884337244091429865512216217051575981979912715858361017117627297883460000271645495753228797847924934468550708887401968194998527728932819180493357497123005532458738552728950246099723585912771803601381608404802880070951598664620502932820896389704863700559753766352261124862981597633310409244215205258488791505023716855718253955514937064084007707194550061146956948524291829050728982691389186988804914005575201017494453066099820607897182817143255620738286084206055865141072350275127970462856616393423624877113721090547093960295100193891271636842355989112846010778403278835588211430399644748961472734384532745716377274467022994110962717666901771364922219618134735748701244399423949628668770025627207731270699476377179184214949304959013015901213619675270393063788539951481369901140092499219533951368097822926426226437882508427707388122795043599183546926895311485189105665313667205546487853218562568527242567662174600337354493583510472194940818245318133605990519953692374661224473655401187288318532269404486000559711229857315918465890409267275275504465616476324693864577714152052945623307343792963357527872651528835260628698958103837742345851867995808677464190134851957096805241957291897807860214065634385403718502338369027693465214770380009411729828751890658553962714365898473920143926134417023645813107524473809310252175790975479561417888169322198533378687667741158898249155984537823442494334753435021162192668939597103257486328034977405762793402707840303009830407798561891706754214292924348761719159585583445896991274319389103907799743675322154668097355781932976154332901606232385283085644210303121170431165062679550140552994955684575191640281959108639251619550628214124259973562912916748247417369590479155307250619854130492595139460583856577045986635629822931575366818928926539049012995425827957404066950460890475341152430794707899223228080443220301536743511523462449257289661148385084951430672767195039898203411419668883853218324161077678667291367675438573910938198374814662492111612878286343045538485435760571010838820719597260856161689648476532894383567338224148943717149696744576833719599821524457218453899818080558695537314307039489644104978748932620396975464732917553231424586940704839753424907425303039993975271950180878036776763050201836287484939274033670749165099003114751404115698192886472428499215953680134862249662017740288307855313164801092775412778473538908820630360328125477081854319736367679437861698272883932035394491072150757135014288049326101115115630853316409509968617748321870261689833434282148802496510720374121982554988226805949725438778251646757397200045043404332492571072543743354760035498233382255873166299721081767780221079172572167421590776517105216852661438670738634274598936434493367042359443599867101107675642957258129071634224495592066995323756990992872274207172250863996329492288006294857216638168016930652427262131797404207611620733921439613670809691063184933136540622565542595960478381964513732775322509539532779272079144372673679110743633335517552562710935064492681524280058789819742185118605871269093472054622810763657020472789727604116280848006976305216283455417406184527327278295631823262848446074370457622965305120501357567695765119805972707493067470718057752568995584198449623725867318018452305684466162320614715166357341119437205088556475241692975147641346098996644955921397357878172078755286875332780848071685773579648611975907669572921772177169425367071963035583275071853179464150729159195035353168084920855588589128934777942092621446461929178483854398514768188096465110401848013178497832591902619101142293980776073116831164700778916440100197041231006611353647297868285071119081034677637270182818873322426626036454139969821186385803129022431341239338378131894761786728074467025840528270936099952423371087247995924739181648696094719044967242759439378180813132969553858923190414816915983928690906480073199267490537168327163550925936041139249624388400113968299563062400011346019613106778355658118226007990152312685085852132619643525423551118514638561203680332226404854282220378199135879826526369231464581208106289175460448499763058837652635091636058674687656903555434234307110504377998762791689406822922448302687925410672140657944536057104109966776751983681875114100552264963221741949228476773123733878876002100724998722117476118462789784717649253631029775124307033493359575289398800467982316806110646714269247137503310470453785372494339985307174443497358144794094114138027882776210620156176133114487201238990251137130222310585373260475719430945411225255833362204439568371761482003213241138413204068352474027263283737689026766670400812720937027706381337546333805792587892319677877280351339882861549670251903518820063907710587218388260767942822260030719316257720601455349635501665757007326617545579360260136681590702816533524803424522363909777152397486014653390774180462186295359803432365455511654002685683517853247965420654291761887009234042737817306262416440586533169844968456096037807796889393985307477217693141730136271823322915736827291243630860608901773456441673322281471740355929523843039272143381778369272961212488556089313710483739070848995841412606801128042309311800781563365862260688602354430256892951208433846340966787937900305851828054376327710619742149443527143865203152131274001822801315415343942766550405623555034373466408812922444457087242052764652250014706933846909051693499256286311175879645316374530121903877929880995337612410367681699115548688020839247936778960270325038023430405943624735471493123361578674205026361079292753295712709661897324215145865182747542753631441924979844577614625539683956740858568530998512914610344913520112885146385978782330879036479331933367007585325839368275616430825339717536680213247696747780102351556763871642229776492990378335744748625886583221758537657768514017603282026430914924052453787362264213116479125032275489763667559120976076988005556841719435382017606665353900553765684036231088972979062255604017662703274334269403855358974622867731461097271257141610249295954739722962812598814174729611863951174055731370080454601567446400972944413536538813314819592305002472723306919590457999775273978248367588704858283282435041801137939218128411516649414366542404718800982615116954606396216159099650136827246174999832134590084065204223579187555505098372782603355459446332492075906997837694431265549572798860684603386015295364910581184408289923308748428093388088240658167517296957952863126532429839904029277064712247163977783202062922274221566806613665691396178929605436775353801317842747347902636883713784963595215039292341722597736537643133777581274036315849815993305270021342362645183887059680453484577787307727386275896718895834838697157687430863216414986475838205968235172826665795511307719811248414883530252516147128461615961817631292355844867096158426856069536537324552504580079065206506050909315450148660821061200952187115628885724871182421127708474105806180080080215782734191164353084160368444524108088321335360690643213996525006596613957262423586826697689943057349397735931228979535872606999558247718178603520597067063918723384284986987733973382496629884762832953319197839235486409534473510977570911438827347449418058217434325402150363248474334742294480290300342018814654471749737128703766448802100728990641225729601733047834737545838206148168740807943675197223734022226234814128799519132163230313144808785335496513165142705037117560180525858906085065632025614399685838996979781098716645125928582677056761093406322089460268366181653773671735816357714053926598395120799716264473824120639745774186177488049274624348109342672012831427192553488295803194254161865842087939159566946279290286349106165361085206184696668302111813180848511433151259151054690936290755990215065844881932813740315893610491653608713802842579923947717726784935104889704368722451066803328037981964210507117197738678744091367424614207472187110104153196338370141474153865709677212041082113161431693144225667889220322038702983129059309379254857470917575134220435654566339714197447578631895372367557919006559466635160479418991603736847787763315889582999506319184062178568498177504860419355936888116398899709890269067771567284631820005168469810876369310180129624764160336836395851352786788414766216171863133869770098779132216399993930080136567589487849672485321484655849574891320945162163310745460787620183711167241681442699475253952854875490229517793334188822495190105982600479455650237472897286462779798442596120092375908146170944890395522540342928920999083019847174431728179381410154811723679583052725107279715093903739949266106552969218761791377932506960696616791245925022282638411797918705395734061172380253783375999830379320217469129358215758091546533554755905247905865370567866560599744212731322609254706513210168415996666453699146004500150255045777676585960067933478724061518952772678754150895893944100059310503380964727481666463703559559491658986353957683222818192424162380140475488549846261660900512964599483447993309780978998149412362759879340096346778566462544575410483694118411571782277727288625325534270276297055331874191016772400740975102951086635898674820284275905551967005986308037729394393418997393355245071813845212973843525022803308007500424159333223524151339374761224117593194228211052177859472694198755067978890120347630143387535064631215188647148248438404518876748703820449299197162567206799200688897956301130219251677557655807266125472368362302637974583129615738012498205383016792358364893485711483595110149527782699832449203832139210304183359521974076607462807387167768091457572352979910173624198106772713384940326905681287348798920988585215687240911438120414262040368795411543758028785713034715909627446705597765177913766323248063847770849005354345894123208217200255921079548281883734389126939504834775905826990713555409566653886237549709459919242703753880367900356738582439598617182542785231297618372416749580135150363009878367831417358812026772128299141896938826476680350568638579162243157671784998438036009998320220372924875792215138470542500087167416464184779414341250927169558486774090258156705043757029217512791569896139615232449400328656763575438114877260714932419099421529783512911593990958570201522121021736004219943486330477501363681313955431999698952521028050127802890681519032284787684533969421985947597505051186363517881454135724287608102213860351950801738355021752054916488767816690279721815461195399021676052936705998663763197168530222242722196824952095930048099476113610235520069888265770982541958296880782334752615535821703925035277174183900480403284864544111664196944576947195239801542171190371268524531825607552948455274429766129295286756244057620658395188759790016754311098612158300104728634202646419666768255145211353068673621760019121055711801443788201305639025400791677500025325614195767882595654020068786022822020983254794687467219241792454326106854815140850450301486316704186932658222858963233822709494273044959289076072354162457362337270433392057905242003891774161101954799677470271848673781268879522622751240047887167838395358808227338929471323473396488723874392513633652770175900664556642381419938560267531732071823043128262148754740464251589505263107084753315214208232277278927655190561230740030408490896577545056794116282198769097093162405194257290225247880742883360737333535428741931522017420223434215610090542167054206472365170579497463875641081894042880553335230782789306930125822698446097917251454363206253836239869376189338983174805935655074603485186456566680195051039069346103738519217407967019485256939731775654722070385376873512100613766501695802111413612266026451129594646449153179504107125105079372189844412978645368316976778515455503941039240471080019216204919504411012406296033447323021551425215156483040188567849680569125878316576684264301956589664276485084057167415366027645789574949546851074168380602346802984526261970636724704262959827642606019688126295519986788257247464660920161023678449716508839652404171254618179435265039607404900845959350901225385049690980402597703316504734000799814744684083715091439634335545970168009882658234374281917797646645045186373469685355360021926455186410305952995471783960041478456178420884921426003162555035551631670104382304120441765584953366163658220439734555712045397358036628209863324969405709309221362831899248869027888658804105116436834536207718409435496929462837876344621628781185302268815054973676128607469490066205741608816005073950701533795907120786454835669526398091993026426382804285301977838732886957839641482252483131444678572754556237313792615273668000869152975515804586860130727390667900780557270367270610662649542182844723727446531829921730059057808843536969666647233546424975691767752986697287747744415776375655993069114869285698065014564847093195006747678307320601395018014536542346160771104934364457987832205768165903663369009111376761972808221767880912027575270987558146582599375608142497742997053025369283842004613692608735865958687710411914232219941450044048625410388687214803229447012867242445129091543855405090445853141496206841858898970206946386512115793148960173710498790521766572512258984210564967471042210284816383932764278005238192579685396972288610571492965687785734654221158168065681889146389062216694404930067352053980663441728727845295340869468783233899692865567141374262420969277362807610307277410047805574598995788746898361753999974032365411551045250494971086683250232899029887630938096905868083254669096321467038599957698607459675014148039876727931159396968594410748742061095989241031357964750946352378335491269315387096001920900225827319775042951350506828024933256922771896888811472046222660276399268769676092798905632741045442515356625475698917193574194563975483512823715888676150925163949811135393228859124457484881159126475962757662174593371973421305042587407422492682160738731902885498255486524855139144830570629121576147920309921822069166094333615466910700709515398329878190329240378272859387497431038751601388827066078045569159908372115552991850413578505149767531934771619213747644881325260968945878316410245648534026232037531998909655375635978142258909213872044633885882611582992642531238904755116898742593949552234605486769432559733299752458423925880984615386326930967416528096962763075262487525215370522685715878148999261217589128637237966716950099465584354070967907976383303980993514675651434030126150858219411095403032860536208187677532720348075401347613403753661515064561453636910754667697014685144733000860348773617301709936469209482384408835205014207606512270573237589538499710887012332230179403751752927253006623387093683367924446132896780437245773118420016836644516351014091445758438926094654976630759510457388694411127146266886884962003297159611586532385528910233436527682424211137825457354685155923420972513817637466569459516416571552207418529607109172248373836775605629719477336111418733486583033536634993095072952731443472652243845830340614904719504901370109992903543439362897736650490760762808464511921643320581874494559593364777621427784587473772966731324093518354087892406603576616815553990384274010123160821484684701233348459233052913940086821874350706272525030070843370980770419462120885222363404963763186373874239216693197685271077578345127163218967799873821912638950908750236247325731607158727466194480948776723547667418899666782762111319022347546592703774255487409499150136933966701062487446241939464561800957342781026611873148638531579157803580453638859537322888063557607332145883029818075441850275115148734571727665027293972155826864877097140605419807714501322714429577746183495055569190445564282411859439754780337130676548633851884666377616347277645248315870263310624800444677589772243857217692532372791311663740277270737951132060629200165137733419194660871211783841549581991298012065305982176126089538654691077310569417006654076200146733994822932211928879453855271067590373545467964863208773674741474834577656319798297079405718346139903071378145253717538771859565217154953734872393669152826797513217129375978269230679149449978522021175966635833177865901825077797997413897205473538997049788144473991704962117718270367996728081809307517554943607456534655819427715480253482379028365715560806068118067025174975740595578924188256360207388734805363809018677142328374968127303413661867531137275178657786561080787131147771096027716353148857444771480462306969331119841056275617548882958574215199518767584549135283739465460880127535790828935705698146157123236977269840310456763476971395586005009928322796445544818127850922445821880092645664654401505081085108251887594751407094849793226102977869794842034030995453420321138413461218837630873518592868947344267746965650988311931695390185450430161988810219769131355982557002229677416873192612054033746488986093804812402489592615771916687580056499796625836411506567307018156737785786245368973941806181227720722887731684680471501429795151701623385225105121905395643831721553611583766997027414074411287858548099342127716668226264695329533814109785216235410479400422546111286102081202329055065363937635565030193266794704374615901072411580513857061869314079466389605690315962138947372814822523638849426049673415851294789317714645192691652396693202757600673341854119390636765509075835239902632927847549998130227935889832148573178583589485885735732910842650547204493861334545289010847728461289474151061333810148350346238569387267674579854137527927462081265273535704752215454848144886235136996414458982003379194049488065734362268017436142251606731404937852852718439739753000156400534139462452411698349385888150563083485718280175658052071225875778490589642241966419783958995332128124798572841384199490536192917906446614065456570400743723213039071844173943784006250745674686892532142301869526654587170409487403269568263995272530888546706378362200252503126463371349972443961031949666120964910364210636781683264458059603003092578002794668386764328647055782588673963248356519186084552740475455750823619148542005431650721653459882003108936327555191936653381018385786181101014891256695728020054436406950038435369243026651719918829906748226971072687162307336862362438211166719109956183716622972069625316064034189201465632109788999215892793839177203424087199070552116718295793217639793222585705617261894888603408082081087203737473270398752345461478194799288494975864400063531930278498046098416094776255863472145494449465467202976953493718715938435241939768773144879083795260856826753795807229518104375112127986744739671953565484312407992610088115233606624169965403211329771878431541254420877660734157799084148775748091641289003840864526902920201838914551777785248630928264818849043479795137782210037761539845348873011398515492618301032099278332176613263667614718853277458800332172465687967717490603233270880834974749466349111278133870248397597305364944247412348058168366958400000820927250046350074800447066002037873208122288750596541985631144927855646964372847586796486311717654907420967778172587093384465795421540623482248575503892170915553822245218100164784906736563092407345639980412579684452860619626431155452987047642593534875437491996036536654564555975576996254683602738492227227533418658956664205379639187560365304793193406975287564960939244456983641260189743796677711392897164022125843675558420015091470893439513073007184248423463718587012661106193780445122683484902497255978736166344158803569445477017862985615928895744530117585271212389084345509375976401309824161225005250885324230462284799781252873479299425883986626585909252824692475560062295535333252513903848715954648728969966433741256403406078543739013195164733184027620272289209762178898789498249054220045323015591302926136052678916513786317154275529010295626776390967348189860587417174711041429919865256623328779743743168938403141781741940667649595329236499618999501759473314288566027272408803361127123932591617979467973164287762501122797069549944905031911069110153717299068054659329309909416439817926794170428669487021390425429500864632607877245638052120889294007786992149047491885492654156206214179468728309881066736864273487096110213551679967956831563924356281178745154062226186685154882852058832489794636173281129006079342730418030122157608532168435439618577570637809683162887706441504625627795093479441674614164635364286460625321869201622467795531718781067668204882244300128712608446807591459834934643526417018154626585943552413443199335571154339879860059736714600728128810499512567215874211957026160691659726969965753202614921070441294443239972280897765568891666126166221166670638632708207376982480202374854105864807120351423512915744289972193573180652846260705878942995255192027958839128147433568289669644544109277363951574599886879739701984942037959017129111991283674389781068496578348085572862953737525684449501064972008043471471569857733648083550711384711996485575172443116879015339622326275010198810003080301409568559614905471209522868266486505318898852078236685956678590326196765596653390095816681904849893049316096248580949303753396840711602133976037499667866930067623385027879542810685552217619727131757200466976808235816932134778029878420155385360687539874570667625225390861960732033492795244130220713494537746919733957984078959076407319269784917700706417827842217951438977735091994760005567124008750098070911905289624492417297982812100001969314863563623039682532748176499753353133091992336834419741549616717185047620422348046903449991713163757235363825600876164899622096285691002298708410599811249084098035852930068819787789627859191592188403157035714014960503127721572442361045915205504755925173570355378300903846200198681334497422196361501607535475745923440669327919236828700680603000509837963224292915457923185568216806739207943594614637467608833822835117238829404936506167604534453619595762490547027996304657146461092596698182127078471687998493927109762833838617792047046255520069478800395052865815497798549938637513133518043076924272830201711884414044056699182867215562243664551828342260735926482250994592379258599740039400203553347367270355181234243959888069789985724002530580548060959241212629495642655720143147467708889183659986289989413682619947747971043679966048411443301153222150957855304934677391389878653552706343904786275166227809372463390266811104557921255669617152008551071406064628774259126657813145468182965216001571888707932782117078053392380759709950519478922416496919804925289730670554618270792952961851099646366432675248162567064248314674789299228482190046248604179735210483713938791991217875064786406023366120690249292380551598462355693161543765990168578158599217844226595180551693343175689839684794887338237497285393450609834560685399687209827844794406565558494869600659210495856410750717058877430730542509870823629792372369343690945123684942938034680994384325727036825208515619203623926782747468769584499286053821916228134609671736206792701870172815220079380197814082176004116837974636165160242889927441258443788379754972837994699909621264553340246327182623834222068469447993414084135332012858417060693077373859782252825355201028918353077928814947780924238524259519178566848881794831914157843598224274051816483672858105407670461471438631501519608207556557872675224767795952011491886317468760317894656443469514143835429156377819164149749118745705729042616679180932781680970929317139891744599374997847445503151661311487673571435643500140343888156637920911496115317017767979170690221494622435753184101234149146483893884839253610883944904506744209679494670168490325787631708807006567526566506798853517224521749023388227685365019243417406216064614946912250726046429046440278609324429731309091334556100833033698418049767242133988564004833930933635884232328491271766519424826046803883375038103270826212220065488540363672991890676256217211533009345991406058948551692859285183035676052523510943927834159489426967139913857893686410044546616725668487467429672590681857297919743862177054615756775200872793901112790605828244621250076879947421323185507621531998988266684501784034603345558547280266482561204228887753465902111679703633551465395146683649975916988259678227342167888707935154810911978367640623350629110961579436827463749850990780475125523636437323921201633765175038025120383729021822005181818171979957968137751751863498254159456590641118761521697315985041969441513873228637122155457515631373358000225747116548348529701457906182214638362394872368768446634636775646861771517848726931664346560619062983838659555836234531461009613743620803142207357743700643336800543128490342179747349960207510819369679272676047381446407390680675384562871018930929156742602053494576592117223396745882015696954379191301957161675044320520335916217695252850371363219429028309195931500281837666747643809563593738269217474917696346964897136069440714305761476557947039493492634852761649042039668880223475056982141884663649288388066032827366341203816933258621370623321904899608110460221020283066137200825010774734497325683801501371567145306863610790532773547183638969260910295170985359826040994726471517821173018833703702105009069923991307624684680559722499521817238516098378036890872954575142475484815037962406002335826368439013393854132366650246466547233647022798702883109678971854011420164573231172572907313741261911282605610095288468939733601114605611716426570285600698331402934348080128716790790332221873369522925198314485084225834355910564352750795187617922978508526822174152839739696429596780068842289570628179819210945373856942589885741204114436338697203280332432293726361009031469416589997192795583592152921424687917686312040851720642835277839920107474298058473638894002409550417349424183547867289350249255537727408868531663415469896718898551738924089591343824884646794346080566499586694642667003663653398971942364195181624094294339193429715351518292086761705069838347067165717196345625073275391270238145870996331811143711038517783026382083010162231744125716268090988275428751730890594541178660349939431860973141635916178305082070686763900600312196293291115412470919436831079572614475983391701719603146948241827513886180541560383943804798873884922436228151191785331908000829273459455002381696607448822650135015795375123385966735857349204279556392008312187314768345882169203445563825956433459268365479258473592031539402885540241458146333163807477019969995437283469656350520761705024409038132350841192928229464926508088602998038419222392006193147097657829797959593258012227924980635938496846726525600195956539088258107249931670896525365036629454635007259243859151146872913809388055248974406568382179616097241032498058677337105444506045850320030210185127268033816020512100481293110177695042221304878382862799728752921095469314521058238104150719050675029103663400083729057484028562251832960996333610136409200520471204648571790811484326135588560204506701491748296648424797845936108622726851728939194086094804509829841912800030687104561043812005207907238139193665533053049196225411390394294168434778656171268988640759376361907845386314818508206327304132693081663574137446264790733954977842638377164255709404532965072210772314077277421363394331439951494897798305801227349459565959054853823176769368879653143814254806627440116236615025946912816444788626812847802193077910247035912640499772369206270952908183911902211895152187590676768493376616185180873239966363192773837557773407709090398347905776048092554210556132433842458614147363254656224725814482415544352341399460716128298072047137864440246945178138870893438427569587078077971792298801214812220766838785374328478195166232200527030257069013724723540110726120436545407389610713543227888098674340062619143580754927617080778313116002880649177756644717036939103016218622202258108540496406441915393903628255862971709372824357033742541961699470011221379607986696862953752169567221725717895152678559368629682049515055185151967708213473775624578940796995223624745804613336049961117942127662253639625642894513890311174265318257429243134151602202761573648390402708375123157546201337885771549687661288584319820969569927498296532375949695608268272403846415753414446050689717662086906191121604093639394112779332565125905380060498632517667624676252523988715987946908425126992005497398720116879632953339384658052328584378488039158381269896777969408855501695529241354992173592201295341001358915390377655504464679470483616667644305506247763067742077142414243163144491383579061658974013854180049929332611855478275079578068744705650139542190518292446279358050802086347436970441493109159071155186475153650626464079212671691884337362969785417179319204701788178167568505945300611347402265381086719704823656566805171330088387419192586540874181837291832290191607188797040119058052534562370263058217789197409498395769831875267367962806560247788259430897478588079523868949293709605019399526983496150869789761265998952547968422585210762803484152798174867244896674794491084303943282743816662894591799614381292343166364763598145723748298593033318349940411982935643750332145910626602153247592498893544056951485909489943509789294891901861080968930893585561068177915712462494835198136855525669615795700228525237612938932729412114075116594228954095035247602794159318634456816400819475138776460681417000905906980220245962684111372802139245566450981232491398132326511240339290287952385148705104599281547530287662475227154243556309953882177863764086020042230761250627854441247659269773612311681711517075519189621550605010445667375807458903563785161616671706022227593079722656725241864454295284714778473228340123937466935199034657512492435454516698984246814158412651960223925240973056755881212118705035130797572182355175680173901225828315460113581444213423595208287887804707739538066697288631828104344269307260214743582651408036233103919560576892984360629167188669462760400318579637829814496648212102389399676214659304135688135147393871839641723197851310723019571971496792141361454650846934525369143229733717551385968971500644388733356413116236183855415550964521048630093237773055096163921176893178244535400990329374118527817576622347135814998887035883709988663678549331756904032004686083711389310248542113262822105072607621498798473631915060025422200171081691585382644856707342000095648612689087755734543836712238508571102662602203117242366754081560743876168327891666366925343883242489615984497346133966891489263519961928520203066210550020977762993315051859953706474780504337467281893456440315922962207514306838624165103197741048138063172046113317163772945779124170040924251093352513682224793454728405651124568104485757146702369689209776891465646429682992962371403879846161605674062866199029635966229983301238723795352911812220853101431307574628447337208528753074640531683604258139330158460574606697651640823704766681136494739660273758791770702659206681078712898432111063458859710982988252967217910752584455027916442023106738007705608361052964530994395284006032785767132252795881046860991530874076243293367699414835588796830417261098987862795426840926757806336228112002544925653765895931934122615749568836733594151028074294897111377556522523348414632209192205851857442499936352553019132222326688503649511770125394453884660706781587452655324265104028431576258572546524361694413217419236347374027615184866980572362050421464626457861715925780494771327000339855914860093821143034920276080319418257383170516979619613782934151822624437414266369928018547853811714402137253865286137508431186319989644804720294307389579322063545744728931259895949385789396880192645477831733102750243143911787226613679097446099320521547773539475832849621576912836239969616467551466320590104235676458379040557794105377030601519737250151735359555578713260196607187610453290993655168590112271160876679008696524160546521100492717764781142699011093110692883216376177378027715421971615616843915481666742125812489931241392312930404416749762177582355669955245258855836558375472502191325659964284305373429252000845245061145043816592006072047408610794687547198625322252036514588704798531143650385200713857052558743453855397881057806218708310714320728284391871776763770065678377986810631739972210858446148875498448366309192848943793184742251998607626704305657932852940035919230747402024148097329720626797939450627035637165043636272544766354385484953210507878809610224099147097519503210629107126349091934846482678003822578594242225471779199572208431191921197919285884829983730076810664527730942404232629346668688251222603350816458572402922241314116999135606628501749403226013418655201910463970514656402754165123930141096982194291700309462419477062491225978441874428580340490761738684447720836694402765539083863955944505342594824642304608566994170636518858899582141477588405079416755017796081833295516680919580168299610490304582351963682759132653146090730859717492908281441888121499341314472356863278287352835827331328582861291592449805098405211620886209922402232985015179335597881019896574243678715227222320561232682763524238539690423260248235760470577792383144202714391333847352455173104444084399232221213985904686983548425639329053916355793091134979586601247831805713691518674851973386804005675115085546515660615397005696306747458041391166911759934601490614708650953668689015680905276773034054635987275429127164745642489385430379799334259102941614973065704095349901033567932593824633835197978490085647359954841768070173543946392015365995218646424231135097600958244861372026135355510607986237573653964376285626021119934333723359207614249376260881194228502227179085426229700223253226614822956365719434023318207943385875933424447683931919138517467290191837290877671570978499392836586410436833898364922041011666696539108122025315328176594511362169200799734186859124618764735810141644656664786370565424963634214679737406814779299083104187787702241702006226899580110224832117524614326015530737218559419981308253628610992683202555848676997930071511347665538211790409709758434131699652757654559885894769449524884995716515109915160506961649747140408289174955604716529386148027117128135435984000304495312120021539210517211966532874486767317708919496822682596695156164939628938585757447463256892879939210772655968710735908857064044415943894993963363134157605895336096046108109128059520825894146362222803962666099586582340303029479716765093575165222643795178327670526445522098102160026234641514631277566028219682795930392880816112020873005733613650561385532493796683152087346480640292798414495248669065607862087326360087071850696703777597315526494374378987849998344413962229615550285322368534225558546999981583838952286026914839285995974030159864969175821781395816111065126526037870692827988245887557169248754638897850633722344601415534721062311186720531676405263385718745288636572832760978429155705039074155053101402777363845051435206088865583857255670835467306593108931185235700413500432519175492320809323801829859228337437374542930290733102163441365579512265996637419492849319648283251429222672375057235171440358165655181626139717558756247868577291551037380245914516571744961814002195497730263093818766600379747218230729717594285332805467385031828310832549289634851789704285800832682088225708556109025303655807769098714232900532418099275913828915495652883210949284215107983804347359319094209306981340959538567835929249681660138987505788341927721637814551543518219816393400744331830831816856921131679214207436702179644821898599579657147368042803540415626998259356682822491694637194678653572966348360617893155910281043008272104356870382130975510464761495163263277007918120317618555035165581154876410606120770776131343124907787965939717938328378939385673614734624662723837714456109077744553088629375643602266891688262875858739564553087096071195427053417423678939621767480326219139208084218313788977971934198691966913944725059643302444373062826096402372077317167538616466086792480376629717416603896741832226549876526164787894372099145779601545340286359060105382348481826656871978497728941765905382217907712052888684500139494630934863888922576620773188474305021448959898722228030457366153377764101882755224088403396098688327541767305466419572600535847612696751082279055095492745720341803202085504940896076807912477486267520832478638671544262083455140610297485698764150159353554856542928020117167515528960705381701773541671288544546688333365853677333849379297368563766555605524131428897532625751416023379750241149051847094549260820173058981831353586715811557453588215845759532599403304938705045917209330318216310356846132090975522359443118436433974147168840890400198887549139553107682694533853239602824051175812101441543988913616794237691838529896279837419602464786383850194089969751558532342463988920117737615410057649886326634579280373380658970104935320307575677469334020072460097345419652681466752560687801993236542476629000560495612291244494602849667035504399637187268120954604020082871794857251847829920657036066168884192219344921158073101780943969379185075089266141071503006350134061633426917898191372654584335355296270048322795731396771086670404084276276082880786945846997468098053475465960010022407956357008533832999849455080942483385580112754623438264504086304925709764215397401625087777773398806690686499691489408526970609711208254185638580007444321132772300445891539331771306486662473183255594692010028648260389662928116338533759294489559091580603192371974289667601774566575345717127488641166448358532112516426597509483795945075833824144106106821248117598377504449451717018218518541068045975903382114528003315965060468344157813144383604739930846471302306250820935368648553642740067985280553267479849040658301716057939683678109479729908558102513382640092886931190665374902308171366822740438094288048391002814316237190400039415089435698802982371690976283584485518589334531814241106426823331368421226646062467817304175194468279843324430391073745281942959818212816348547523302682293121131910847642894542857783485493676418677547039159074752910393588142993437609440765572766406850894482853655897949841913787949980534747200697950509761335502614531880064492512535259658778961688644113018965609720605732366814681008044643778301366665133973386158017033443020698889639562274690197137676277920767397830127544735580181415215095162804113110971988925849306635759066243196048057313869015495308574933748229507864741390877334934215547935465495832565187756391140181161749032076509079009977999412265039610375488558433664816891677379913025972065627425635212529624212975606175526154730384123932371242263216488301579226771597263539098075563486270189726226996896608633602365205561693986362490911568818374423973310760326951287206105838094843487455167108572943598090477149464798705330137525238298570232952313714359280366712589214754389233515543516718249582980579545728434987970715518574167856897584157638581894718204284431911439453425454794257588081291933467110162810160102756117892808524444700478816913883758345529453984030783949210097762186632283180474675318554244250072331331038811487750668339284607111716781777598921703941749164951312256535357451016395588682093558581296450416666585863612354036113250964797457433791485821102817041560013654153293289854668295317647642885834390584301807112135505963662212694116559927330129945630599543788201904433725260193857694818130773145612459961204475248305229630972278094867697345538891818465955476284045589201554269816967000849314521153507444836174807124760637284594570317491290140919087695209154476973040663505220193101486973693467497692136205627197835946559411694593024614874768083054267326558833639748685002686303304537914262788662230415830754939480850535239485014893199747679326225427945072244237518496931334036576991429631723928266605844777576965400310512095163760854784120311057178517716155875403783971095893309802473297011605083085582744301638227105604550093713487397650747843111969964989344387499343956665438250199679316874273179970428101023536958088931087508997688302597123320811160628184403744146902064235228987543110860644051498584100129495160036583362107078637017930661236472852839866659757277274312116446252016273588853923454649096012699190710090521755488947583722369552678409042997541527540111665691118480347087376011761436360029745135517516974227130511450278013741377424590530163816788939966435823796185360157609891652867660822446840109479806340188479409652324745408249705817944712738001308337620712725700347485140775330176114633815876810523217731295776595289468563562447367285222860802382173848627875368157429703110830573609880877125716085598581532801112085156809732199895703233415353296845362546165034884731750524790022179329074940391794574694182484256810132671176146180229292174765423817071935523293144445044544197155977145919575075173592465045636171397783978120300012604406739911398035649474142175424040280399453896565801717822241154404779900522903117534189713805118192892902565370524604491501145063454128971247130738543918876214916225444682737721955623962659149189547498525903322161061554818265908396418883571171688058228643655658949151942914418877315244203556197210549320036486741359355818288465739488837056340335461188394080526154387900171082630320313829936061673451985792073620902962873407092307894422484362881519558583041706412765597376214363226934274684419465952062638378221176678482669820371166289853413459685112912689658916638395292637305498168159748684460985983401977879491743072123657334236977500596417113695954708388460493477777591397145025734019048309983382448188893992090884543760091911791057444204989916258325484866282740248462897697643985545784997689167998579109703308227366120321818248869109630854562260657616416962857485410358708081122237284375595905359567338572925434177651981531689104900168137781264608223525351817473917955029794477061463980722725190464314106706250333146057520644929216086449828750377611259372035240334635197690579059605465107508446334720008106251332046382296623459253592555436917184088683209839393242122755833662154027423111098375190192849051338691561060349885560415620171947915358902559426532134870780052583513008292813895782757169639111004494172118654021243345884977371583117364620091294361497281011028643313695517799901514716078649488984648179574369748633936160655828968035087902174221383910726846248261520372840163203776340773210305646348904874932585053285231647291463747788334079348227525350060653451924107782261881438573578695928234573076822309406033509602421148158052104386725765009529340179654279475856883366498722061481748158576740526207120215339181547920104732208574397824547603420154511477128472233176199087249064493703023611093398758115485503993544058734428171530862304477929706547822984961093662950973515295586954347797819270070618036557558651202790866739410710143502730651295309509310983421442525840131110861843972791562113860185139823888493044139701419878549040917889187362977204407416279865476113276651336635513224862377715653348578656084189507944626003280135963067168094520559620088143242257898141131929707945049048835941872275140643235156016068650444330374237377678381432294596787010195061808207171989858423212105999808973684357090954126924317055115815418879001383373492718415514381105620634223620139090943725250204047888881824175810870537256170436395862800933796459412448585542450160222503022562634289114478200384003156665099447388098443369111844442641867360485859103465830973471250898633455607227633678393789651292053932557805866590410783000635166446621926660686852130782792568919276698853073795968139854701075059690977478580001583868034351321008552320927713560584881399187248147746633058162668900693600194536784754545114689334543440426380172232813759087117633906456816710703573131851533485040939778759551773197633147429769701354584496276051523156926492240826877275639593127323005011857719119715313738495175233271364642176731635358354795550408417882379766132535374243684821019677774890741040325006223224697943484377336986113950060263130101073442455636379995689757266326623873332206319368083813849081966191647190296974833936249405166229816731728842669507315734555864149003586996226943252990315663177696689802589635774975663832158339302354531264183702929390120620678616599127951310694952571435538449423382696320457746574979938705701346873703587938061235208754906807310345620629209783517734048997289603032923965188466120973929881427278668754007204701792309881322078102874234895951659839558023358887981080577461139056794588368753884808496481941722688009564903864458367365062373935534806262744464867014999707981480535091497150267088468477376943487312838050177088369665999839961447599474897208264315048202339910927533704894826653119278451221148162633875334891324922352435857642269890378689625009175427995553817162078855295302235722733791534463190998307329854062904081176728144891210223329836048476908058378795575975302885677473063084143466734261167425748011513902859791746869708983120643323435441784631710549857375916249718091497901540561709598889135799807113268275080374143971717928612668251775604835802382938565830534258989844803001197888447544070616813803452552030118642700507317948209781912981504794572946650372745810740586390534634198330681995664542197662870640306840980378915342113274178355391067725120936122843940706795360146394948296815359556045775914881705599809592388056977744620151595830895502894849195008045380413250055660279833231892567158781196929678218679406252038992905532842486594598022577598212565191092958565989442851827077590536575994607135676153343842613236286828551892807227210493213746894556602658810634291803685564808993057403765849817831048899914009695798596343890452631248120865984694547090620888631436972330923220383577736030757335423931266030277538572829280675785437761106356875039203960082516990570112086865348677873610797935839173053064407135049833853754738164943974119276745829043727871431442671696938130161234316493938741825399774384294658437056499946646457058707561059523443312043723006208297645756023367221686737456071981191477284795793995497589809550474104748707725126804213414399388761648606914092532842943269378880630435412194974653869728980329916733444708253839994024196044036186131130998757279578459347833278782204944449096201985931790690052767703606002335494623665886026440734253978317396604531444706497890211463952981396918787661708947876542971000543251767090200683316406807427312618882653498098520391883511175648833224663212692539374874538597827958528967306115676454695983393281772314071405696306860054833251776216828873789718326952966503690037980295250205251461475316976219842321201215125726983163688185454716671184162300316469896653147787753237377756426608850851964405821864637521897072953276936952508555295191734873487793623694717270787408841290558198610596084297994509866600717065971529764780152582174933745996737939826908457843386006815066375281278235234380716770119499801548425327248710991993453921231219006738120718540604387401508884685961837197952391926365989376273119714830265779921668930115037677388212112979785066677262845992762880154538773840285182044391347833567046461189010408522229661831871005961851593263406099191113079925466152042256221788078280688444837359265702152229008875654316326866179949729935099493779659010871225031588571919659315758356442871855346938857810271974480865125287824224430057442275281782794033524471809725175760407666280041846263754923020085074082329166869922702960693706468721241583567315450356528191546561655964541368818716629532440138913443761471242308476218887185325480515947838864081148735878823443325166963362706148028915812117687051037333902887881514006196846447349890556549208196080128009519950825094930166793961769670831070631923530635813596855074171423251666434141731085484573956015597547117106601409811494146947906800170450140861011594805516427138528013460183429857717056936671737274235444160086216413126271658928596925370628116561412174888730872988470949246094034284854180397436501741194489680544332336470774778950109283278156939296991596952445346655257136984287997020067963054725015196185227902776827233068598674937129322114215631935967860750912881100042438296809586779072729689193462765142730760158780809802039191598649480491061977930629985777892367849484647198651896285093078203498154842702119577318717266728472883402535748990978249348460896402990201348986714755086239051328713675494424381398036718994164029866973166096854853926220403941983733302586218366267432686632388453335682383220225844802342632436719541160585609196665012073594089580779230098590401460384437659045259179563862754411779028064870786079784326484355885249866888675636872966605153128069811296643216343209753098760551469913085762350260805529866054330282836988468696574359479927059553543533047438529034340511439034019492413388885536933782562137517238366157720552326817042380677342493372880088675068354902661338516117680950298123498963803289614962811101712341153292346333322013216125785041461705747449171326461004694243581872251854193733609398192426065070323314650692179401959089479141605641772595018882401185701546178091280413174239012704923101426884034976117644615219334549354708583915396720975889634881111861372481089739719267801477977613986422781711207747262928286815985977631660604037987771576193578761471424959457444274624288612482100182668165572383748313270886753281581108406857666136478439811334143275017517273246289490257438838054984820314483895634415402974275447963045790570544972394943035374896775313991207762833868255524340259810247232858134423763521568949157845445391214554154044966648671773958347149498465512275135375567558318261887908689630581298916338471714188902249927869205530493882989024085707667952037583273876994056812429454950942327890357815824753211695004319373798528860993727944902059698148068164653394589084275738543179080010205776800930259216690445604625325728100639896766912641465337217105387209400280288344099297302134380794561152791733256228697134478556387151921485277030971259539773923447429126295451335776251659631817507184497327971791499206508462910386572536642079807397504098724124210759662309182179735503830674100171708114913939327744784071489853461282011935058778643295787200096560093094025646677047298490714792506699707599875853309416394898457659519837374490982549479683248196154521880826395320299216307102907544594162573243264894473292562090083239608500998350435316011801662358803789332644042013977460160207800656608338877796127127062058470100740182706969083885285808286610815542463696769027866447018765199810443082164595130675037047967106838273485519401225127688495946066894501526811829387206770555219213639336328996766494467346915283161777580529389194429328048896984309277856771362321263743736365998127588018212749303903062442148361468841063863883483249788969021572719462012109703495548880899614509074853270637736551876364991579964361449677449118319355795767386966406987486740796030793899993718888431506095399403751011931211745313947033323327024891290686364049745735075520520813137151829082999802309115332500631796950100804912663312843474634740098810272518595399178199466065931178544004941434481580764192104853413735085250715418637319837496073915485011371779876169491020909019991495290019685696261633083639860708787602514497932998811346671064508156515023118303309949113563143700683435541456577763961332678747914822870706191987242132897762199197004989693405488033744980683445732779109651376563528311278430695981507602735149218787281234080353177569397384841978928324739714180884328262411900246064993106244969741863952531798090378529142654059936111912192426067398369508263152447064823976050955865982635624966103624212264534304896253734063232904279596578711027224205119005949891373826803639009572957047455232419738656241450485443518620182036625949246216389530245113216519138796089222851860015953278644144011115376827253142792703727989614711291706298240645465345848409899714002708367930688630266790881179653591330840797900095076107209105838680605005813278314108560603676518593359124677857722087908782228559019841261594931175726509930758670505278743778092851204216512352850589850617919932919409772787790046710673441629348161856133180326425896062467415020139455359821559988269599161882950454953865664616816521088898909400168096205835688648468880127983241292921839154089738267962721971381001115597412381685673500222776564867495640513853295938684852324843011647415757731816525362795547667746004645222716532027340547965061235460032563907652573948754257863154695057235133514292248494659839866836399674804904314373513521449911819602932360409511610944420827139138995508212842660244566329575579123787478811653239879826858091595119159054354179668028401035702174515914613391704733685406033716354050466462812406966238621134388147248188633567481077692817427300425526985971736296379961291666491180216058693222418606039331303313842150653055201184715227972266367745093610813835665271311236715210941816117380701811778129879745226236771336117273628108725051070183667677517873229629449643744950069196912056652792574154410344437154984751035625542553121181482568996578216185232821727543584531639044169779065490090862082534690677994140700382164854504599776245577243909882044087306347779782020565591952975454308051004482770197184358649177407257645579521855526555885940949819476309414881742618322671113543815781652988068286701761988846575597835104312868739045029238378982198112373903111268298602822087231809244293651980287225108252061766950535765390822978197523956435611035579259418714680766945568095444244588332097493501932858122626751915160039443939673760027337584362424286144972757160245339728695972203891027114605696674338775962732884016667232137909283063993780123627586431914974545655120988910413191589111698591396623420122347956540341178978166679357074588358579202910352353095591156279971450612093929330932244874080598725095169043202666315561632648676524077621628440141965104671290682271938283793582608009341892731581719195995578910650689071412758949741539050367164159705551967895670509484330697208303317329863292740767612051195761438733664927059448684396557792736834732533319264891143594114665463195500298722675297875052382369193492182082001691525412918016440380024027781662486220721219153073841781610446954619356196781962963550795974657477050886429410180299698052904460942261894404155033552493943641817011497885570954742171717926156675021627141905969225614412425590429738199198339144743520413332901830311712074236949677612300798317897360978567051140736073322282276347237254080268724921257719901248627564075498156480346578366109713506154412942139683192703649462232459679554503146114137595924391960927899578149805030147235050434602392264965895747414202304418066706557151445591497141479924895972156608261992444713896706752537217929725092879676335846335487529080296062748360101949699266123290871109028243542436511811976820986260270990646157459722473318280191598636517494556391334925358252205892121475895142816610450483850071410033464589177375056946649720140089348455308023897259842312186364224418641841513486771557283515100864737915941788933673180665500049816069584551396375612004521546455331832952919802499659529849307922726739162517288807411231170057678507092067499025655837664904642701460093441186460520797545607677586984837017210928295112525789817700696359413672491471757316819623343327926636765682129163116864611723502046739281201325321007364662106581181872293420680732947566227548060307681242648220201579720142144623724401546232793276377627454860709598526880256350119358549760490934729183847829522173673314507351968130984310379207153765799015794948218264446992507405045554308082907247116338219753063737593728426726903327617149443920422610407634568642551307921441395014401496098392683693964241260941484198530331036735109126737853598423768023646637434418293971650217013462261915796619316259507623068225380743850649179942140158171989665138876290027478987339563796183489254896413191159233383103499213457520935733724015286678824099474961250148676312598590717371552066992067775757687550391779513694377929223291601168411597775016489045916894472902848454721474686379345702564810810333594488498588065362804238575154764676690166499819530655931180055676181682724913464649495968856026830495029220977058641735560880281208579984500207197695835704665860514068817038314608977634402094832315697299323367837995538523319635501889793200687910609162591242634771246126348039679034343833890908802549783088702719025886157268791600911773574029671833827686903563559173818095014197080169105311204294409655780985532293666990608659563144402212267666565115804860222964502220754051003121883083806410234085275867023864343051642463755651956465923022781536027776450159827540465517024693735581209001504582457277241359642608745047837435769212583805865450202031217462673523926854249503224875482829424922410830550582661280233667271461401388860950307505583545371713239476737381830825061382612598060438623326674589659291264052901632962129295510418735720410885343046135152275826129728851629052270024100642956017468652078994295245380342994317599312670972408513201852540660638362488501811820324724628916298373327328897849812090618009978751023688560197324238166560004063071909441555477568996993780334365469033459178938734983206655002545283621288416794131763370545982592603976528112643670248047712362180890340167261862387995790306357169227262521139222231583595075319726509439030247847316957584642419224464897272762646923637320364391385084863229998511652253064837689051949367515327332425566516127213793619996949642651569491510856614009635731381029751279946702897464122149913242886056258833460359881754453299460956711586671076203059475648085843066173509783103376472098258800800883825834293143478059038597937066476751686624173564130019879622594485868420542425405463925371859843467049654740067033360396377113711573725794339900644700947912007617158778278168811524289284656200562814639782464337939299674014943781656848759299131607820248014355524529619596934611964088381541975862316783588487855997431453952197877868070515006216244189515535219443192995984073929575107612294576276620473248939870769768755041543022485600098145034861759514926282792701635970640323240462160234981163180462484285877693607382076895098422119561583846364853475448091383953632214790518731633008223716598343042913779963199033800386081465183670837143062823951671900785585912200218136531356983875687816115871653978903545356397548508650804435510754926049650634645219174648304035949396030114875628074036707022669771428418707401448417620543872179407552743545882743435951842115237915369130491065354992577189699762861219415551352779259164164382525036537259163560226931549455922445069403752698063895682444191841479442480213536879120919175310381049061383277344128397270199214411990065565552087360600322668594938913532811467573170021937917446043740336728105431550684090574768923639234118655526740440857032786693594239677282749634319715187087266206357524677701644418776855474053491691305028869248569829310531871341748744829030421385518435301559780137441832280396801345598083354673002425513859712118303159542654898761971402105609810115966796230784630077249034122489196787093810017049865688795990095359954076909970833314324457545825361853981523174101550494199256417889365375602297615685506693054100019407203576311406417050876144632804274871135086690444319567750417823769435539901878351366763216026500075024001073767848679969986089399074807066676002680482341220100181514961695331190196019699524497577057642286758687040555913179236844829336196967514705624495354825576581798569923706489681801065305602101428851162419698428403533868263640335266593209417727169186470685574929913330626136255716546297668026551164934216570706299942992267674150875598467403375803110928090653316003423087181537663412366881640379490823926423421733855267061421501046172479345971633789164199546125093444724756340249023720936390286714308672057569317051806708092017105517949456022223873136242149006671072286437230225553712372243268562846906351453158511994411368893680763653630906512683994971343404532023210532228741303178538920285496474261447183392287590209989878715668229408993826374821503552733686421935109441299680764840566996724883992479678237081507451947889928344788126055663568543611200463555463937578387288917887772860114462623115561486479535804311607124834710814500130353480703679122365918347008477501392183557734481301336910714188998201426237720923399144350326545954062406092869092339019731114012164685174998344991378794023678059986898921992706460579524143112181175669781928144770215395765005597553042265257152193318653247661195545878409910842708073993844830155946306519487969504077783587434551715215592442076375630116185072239282642700410640861511948633280249470197638205394635040325771939929126734807162716576691894557276815217980889373571434063890433982551900667932630040415603537213735008729101064553701241056168421457471916005951592420653798323373675182187167951060504873018941272705553405698272377811525123617678010611064741352990064694745646782611784173712951486813593590142016447223939606296263296032131687767685561470325865773216522378625384542879900536494525129578663808941983069655339963357738375453818726343087713444785249641429327213403234333688599944628874000466333521012239896920238159086608051778858827483432712788264402123126020653264958916186299666999925458614398632722230598939611633961904345131297013658943860090874553972754615807391220586245827650825936831915608763296792335594653614663696236915484382224363294154591678863898944559317445548107146012120686031863777021843282033159830780290186413252505156427239190734293844973496726113275896006480101212553046082972692168143850978581765105557854389303065304477442209754260275300608215462346907470776535967421692162540708126204122558457412529180866300129179790142905426737886501424845483254512273022934005827374178045120809069554565478738905479120629867991234393825384680802818293825550204757725779500037681966819081662578396293210656369392389897171124267878480058278481282073347147794129184387575309221728804101802388328991205037959211137553365294315910621071652441292725841101101261897274520043432040997093985659817282646988631465320474310710249012602902837046703167956009354326658836054393416006016594295186778236835360211296687784459372925078531310119101519130271501120845116052496590952268796398366188343213691166003433630216037264313850214355591981575087951872602461977564471620681089195448951548556369003820698465107634079829827296113034808529563731974411303546804180574299337992347206278084334785898940294265040297071305384844975910460795149884307735372078162662985655067055138596927879497982003720171214477735679188024752316563234193820542800006656527135911078241457036182403682139700910466967079776301077556629078197932543300385084037837543882368478846068193755550184575106761115203586804323051537902691696748458080300250165024014832860369590264133801861259000794509350130422310998448346669295579936574933668495698264661188507743698076767276203061658606725649684370346817579941256575560739092415110624667725046252166340550198014829476032481546724097387782565219171094052970920060130086403524701631566440055948639291454952107287991638530919382670230514961952362653564327566021658215167433306930648429621411576944500646421509618008041569008928339728613315905020330567944596625543156356109805983262961441876398724229004470556008825483820440669247764786110221080251732387414247524270104157933149467008755474979548270856247041000987357794791992761544915447884867393755185540716658558007798064316796717251117884236410110843715170218471343465844061463364693961061625366222219193490586972531427158523438080652645650159919021177649266434174808442272477160037135897898327468240246969283308309032202811081427354472193410491021732496597198502304906813310899720640232888704565295454764225947208573819069453560568035802633795793797199134125728745365411931729077641566999004917251790765952535317314049416009394569210891254613055663971907998976930585205324231442345057489819782749834040452665157609025837075986810174251123045664183411113433086692370910121521643795674961724819599835145791341265530311339737662364209196598904558851101783349792791346713827529140806576141390098639804721580189351013571169876233736965462435192839513068110688153370503687667604898375481853338490559614847006933802118542055486699690670179953549155704947359595543023685818128415644053128667883803857436972326029522046354154584137872834084937421078623680313752730043474556977204219343562526982712999049633630747210060008003747347705237621714148379483780699990511745395682363240624307700155769986274689928893272006282509169523452205802713527746604757616511472040109397767831985672890540685170276336939959175285623991408429918312812295834256001839104361029754004250110363942086495064842358878834996456191596854620015679154783017622675274880020179673267368214896620273945395824683299494219229245408556701196414499551076273086384559230442492018000875930160988672438896189627745921673857434105179181891361159987526547886343899662979604553121172907927259271225735817194494395589242447353757383684533531227927581711024051124787601146753514482076716994165975177466273997882948304444501351726443786076721430445916708447352586200897601124023642855286043112365803854454839263344083521178003976479221659517317262857477067240700929133070124102477013384288059327597977128561975846598665286329312629267601843195724894207633179906380243858850768023666525766521396037819301123487651659025376112355419157717975781953106451152760701141995730704681523476695206174342713004318430606484172255815315837587095025715972759147436373557229374023496097989098894094029909768489902606592911772926396507784630938339321767332419221587963402153065989938414910863650290951547997175784424429087126189816106830658151552055011356268993310661291583304576565846512507839610018630403089639885541599288838216308306470258164963391369154895907565000971648729825598605073959283412436981580019811331510566085152015295696233536219044614441621717588676197153155090899315961555678467077276527981243419881768948725984383405988064385330456489049747539918438494653007828283444515530255142920593590466937670169246845530461614191116298257261592350619931651716790584343583977718360497212227963860066089712876085303107822438166851846019658095066005824586695601682491209823008954165169067867858601146792242295761049180722309506949307559542363257537072513217895171684081238196569415832201237310930126374531349177288750904402962302799990090294694273691751885655710782568341347929252217241952467699393634005552354704609808757634399436314348065543111026268560473335180177677549396169521537144377262803019709544085232745070795755914885139714691843518529243153077877706474882558941324372409414274951445985780578529164918249344223489381007716133636395456170449798154911356823890136497896755039702054361953072533751494957608318623969432711187028722924272429693151661674717334920240815959410038674938369859633750820103248860187972786303946390186649467132641061602886256942188404648011428089264418461805632547655667664116723477794516969668875665197956071618260250050974262022138164279823790848183545674402493484506303368842850894348394948783245934828000189179745849848812675203468102193665102454888825345192014893328648861183835090014090769534288164450290118392164273308664127470982908326632652893130311226212648267266850627381398596817626171538507366190833714533123879266522518245199741932701833925570817845683725214344383156417358807428093907929118447284747559898843466479596330747268710216381342600928131113060539363292140607156796081670028139854076792057801738558908260725508488574646658193420580898072868953893679763415036166294717955182483602667110556696716982624958717362223674611850307013809420178161599713059905096431476046156572572299121377463942888085428612064715809910545295142071255840763509460662593707284460384985856889294174494000142515395936145897552217786008468738888273062051226794431869132657384892963286636868280605955708021677806682091812475975538213453739596553485514601063122652299983183608358389950708777747767712397955844008625340818720080209474211657178256506359062273627058294505198489282416436382733886169255267770744047752275576390533844122776918220191110354907790440801375790079746198909623922584903235822699831606491261539649495457021320406395486925538211682358325324985426936020719128068444497651024555544997457938704110481216982173984117731392415564266175239231531426557376730910857906232165691768034528739876193894284374385505703279470448034852011586603089617969313478608045512143611952329942014534052283563905995626296125569397234053971864994959434389189435270004374506052809590981320594121405315644311202688205398710738918123787256753978769908756503275120547238237352106406396780227450702865580774422746552346685515925372237063576191841235638448170364166475305245192964038820300443704394175981300659066847263480165564325145924873172326662009651258892652645067451466765627074541160845982062729864980286644086464934034200059530725826378824949971534555981780791174253509352741480186768376056062180972176269288114372523809053091031549901012793100835383169931656390394728070819590895713438391922862831086618566007591703370859945522998432803923879811724305560746874768756460186846602919028700325262975599058489227227205708833946089339413331501887590434167615336380539646692785252031362741506472534845233599399610919768504401256402238887740590891224983030821147250886641836738282692059566293623956792898178610251954891638246193830007728885462669691729561085412434149389953190918105040548043877461331365193251648795564231508439080902810186466264619402577860627855281730004657726513422484648269830369940301013825349627699904008228119164660824935496650754533275532719276085534378650358267726888555133810445640576027875256320627697203850964805558530876351879161764961949471412300000089325062507955983749356876110527930844812162649049687115973753930411455409157740496332857430105478516753678457991014136349558368931055403785269517792611884392916182381754298177375104029425013188503526561098422570670774766252696694119714061623739530960291363655814825254126065658794872398934072891633124688561614635983762674276496045742118141294303537634119712391819840544242030635075027424540309433965882934324904215421906919561645404638043565067306151606478273164782582938494636793560879426484205863448601540950367817090177608985757375305516982033662521273412866319323866075462864719011293562996583294925621813665484448691881973299643786584143970833998893511180451062072365096112275732741534742960794619399600543209146325924281401914841329792370976834569160206722021334233487300849268563578267733291882723237892293784960896461396966322542541305043987338760445749362329521984209786958121200827265818326087984788721189161698237967263355706461227173541687045100030744328238155794947686928153327339884609888248251004028337445182780194785147255615399971379942482193592473016743330580836074241964297854972318403243043772091395656121972915099426177731754049701825232924523205126454159604695452615025504707446065655743510367065185608792498828271388545189614686188894504264411798801268665772678497912785159090306936792206268021690137838981647914382537501224701339356031522501128869848970553307215480516945590046320869591818026315143828037652829000698126065958322357494732783217754339901305883543365595457012319222729672031951206749094220540980067442517894242157633349018874624844537396271035129773315846305036691990650775461792540080456938847409291952750614476138563778105402599707603322763800627401725037877144193070806684365476136168395886757296507483212196819288845470836088789851246176541248735597820522901372953875786698317684642906232419570631650397545550733387732091508304177987240660562194617644387392147299024101667755270868483354242125774585321775219881037203645008189489377378391091941535569231706507483753370785099303055579280675330669878385379515753814632620766724820696640849918742233805027087993527234863799180524068725062932040926263955663069177387649937678092855089100900605130969735821951973856092717043698423408020269175238209532710062937613099130996873339610303602432008388789999950980259477944582130382927868757965074318980299994909355615265834362669944159948760602341563535409394704531202200120558518205453070073965860231658996744885821105236193377455549694036949198535766197557754249518503943300605422436574735537590712107944656556901911178593528511907964027048707954313553122821902377166282962548295157200487009390571507833417360986934639182450261360673335126306835333514574526114465324092391904171454256199383101867958163175140798135520727509241177716937801005682444701098139206977570082552298426334057177624290503835687204028931282762179591947899700214536805573197507824901838007822120153785928643837284697001770935801387011297872473732862064414502021810107986463554927982086523932582187805752960061499138669248355273024578372812083282448024844756048362238583437956202430201250978593611376898573379963129265348574605620313700742599139839843378752241030440935878769349552569966949503456273635813555090938394640556057346156924029207034453851807337723570359541731542998121581152724058664314633892622253074787482008896896928885414403813511903242563091587372843992628702437711596647241603162122593850606107214232351815663934813431347382620162820882979100477223187112384861307228912513318896977396453407061803515277820644481233056471667467628584236579902920475860761697297046754979255236549378200363694883125116056675969285962726975619474616355512190423122502233361603052562124333131157549635750285877415874814686491619332382504702600007682687798167851858366080765496436299291461552102163129473033730723772169734663641461660736312457215850236424823110176324104160261519604220331785781589406411348326122239132630327692659632556580334017001540048549368362767434568303920693581780252185348643154115344263556669812036724161602992754802343410035005406642671839875484344044868988501643961638900479790569806932002535674311513017159827470479090390711857282060760897002008941618851484188783649310073186900537376477985254784929219946325105558877566884555830268136247095707285917103164702083508360860914700953413375011615084218327986325279496356101017362462907063282306391089058866804345914443123155386521285772159138498592956731385066616266589835603489122145895166611849950813499189179544535985954130922619626234841266837397265235848491057361103621114467075770334087256276072488076030438491585121476426624459297274030493876486556138424296696773380679712390519652549149780575209495078155924002500719135796392350138910598725999910166070759862024230577598097654279981409055300875267480293420929917034745668709069031986563296426597101917979115084725482357535620413795638259792437948269739596682981748651217085727467716930435641930631868101461441565072550747810768842153253695149310908348221592810294631409166818701638016061874711788875516858667184708650336729329997414775535363939494826861203989674006323659294924530327352122114248591637312951742832998704481328443617494986962078460754899558359139547205446133716222159331124362085844407209962432242446208514378937961206473823033480297629384814118252297079797949424034741922213616682663352219280397208197760810383419782292256978679222668867807790811961490882815556075394284911027989028736960325294447132661681246258629065671779962973875612227230369872315222722293001433673931884365658729957561568801871773248826375161034181547060298990862748505557447104017163937350180162614765615623230821377789209935265844468503419630896881040118722658557043372231864949301604372848962283039284444941169024115963766668533168122529387170535875739666985690185170304725160482293928157643657658697615141026476540506297074026313580025237879833254011448815993489577514439229917251084337831521145849104047652253950684884153116121007246687058433058663239746686769162007349751562580031288335194421376660479314463598946248931008719840090750860674240483588183365288521062651998035668180146396313049858235548197675307735107046879606921646788680000877807962714396403144220749549675465302909840559713714202569609069618564134792416199859406643659112866032720801774193210660373615550354963602550909999578347233315505129681178057597246067892817060777632735324931212676084620515393622176358738365752638488759972738082221966730979332185587336646532734444934044012649943453361104898928435642133726032078894950204814818834974001667741147394837980178064780473048663928591872002878680215749441848618384928306248166808784854954521260722673291429643239928671182734238979734222959875894738841780141807410738682973748980019262786870876594444323172543863926299513525807956923683141119190265797310036323620396810447650014857677679266103616330420004975290211381869338560076436257201662911171924996905279261427644388087521074695765650684935680490402818784564431478627134087852340885143042846912141571114342172418808830515215371366705069546103130707494847244720468265254542618784111844816837444086783721248541617204491141209187576652669777080946728410866261243709313798407892036364550841343024051827735966015079850630971560126229136393056568030349663254209355463638796365520787388897672643143104569694162707687721237500814409378609973481861215068371067100425221585347387909071762371305131685581863151123047183922623890505528964205244130279004743374735146009604420409247037144868123644539922382543719042350975424950010198171994369703474771272102911265608330952484322807947425321376275474742307989978457544160746396754766751405105952668162270550248329290626220815442263205859256909870299123832692739384766518147344357774968700227314637065531645984618454356314082012482059909885820522987486312524969208157180967198533777605269717790648503918395825480231418124176960165666356742585750396544340324984638648849508090667263630847538020409040803866155496299566887004026241224972637853961643237684144262898669625509872314822965329626168845307611239586166044614119428428710529446986846789701819137148418123493029638565806495073752536720281064413674193993412228856191090612257364747422232340693473108937554026787845982354757989925760668308798871401461143886118429106255238704468045664062582649181762762650945048829121687838221913908907445099590009793910683187306881364555607571609970013158060326092690738779102806777732238501571806894655478214003827738124724872009190832092725982829995182391282430386011920187226312153726888981731678357722296210774717690179870213733080640717515862538258665940895965355709677069230398417161094074745203748797103605383222919656142031178581139976396377600811754531311253219982363813097291949890868026884631289932092393915670010583967373629377173841268291995887825864558518817391365399476038043650470565782909896517878660531736844759281998811432498007587104994778523630910170261129200606068540659341163901641196984175144951750856965549718667350203164065544666207300662298188767161877217478218985570567043247235240352966213047449292393024017375008863270415645573841221928421651300127546267508957288506676345264122884025421845217292060592988892591791779166170165359578058851141046018157259477694792513233815111519489543379165123460788266108827628710630136461529127041333402660176561929092300588301972549282895382467764221895921690517900197716573237449360784484282603887632662513707406731634336853770798140688746939501450169973471529014249971463816417740088802734476323606980372470088977737749384477982481641998045280232885199345298033999017167675135523989263344771649717982710847904065219105649590923662092704881964381929691706839243228210809994852221053395426505881645408461123883042715464507541817492903018740481503145033820659539748609776677850688322633251759768169934901553509060195372933678392169608271252701923012053214978313833157206264613633341492523473995731428390489630237177356678098161916658918965889189415883735295182828274761596006356561326788040627735924893728710284957149069193918132849801052066858340443056281992124802988875656325511100733019358869859705622642887770333081276517727121692910469767895944297904627491683007940869563825924832915082747981474350204985059080628521521355356621294639159633519441656475313331483162476179469919570152255054764019546835486314121033545627163083795519362546702221850264851133548567436164025614693709244941191426197147519801538511384429013149664316272024565578900493586306461469080078159380345352393771779019829469246011375044401170513725450955879819451250011480040118065301280347992212788251742324362937176091891121039495780159302879723510578298130510651044817353140649052264062136900479344327673241660529095315986211674437773467974048122106827560309075238174456520400610332477652249966276066607688335919067743154907277547750838118062284786262456223667516317695952246286636160151787881749924373442741007404706669460434206042204949093405945455254444005114109300382963063623818228822289995292282391640413937056033828233015439478793909573346748950974736941269454355059127790452182423242132287119644857116594670020226659299173910508307254337417097250135246175123601583789921102334958405366954327214310447845223008093332998913447593084662722579835728538034222349571262457110740723353089836195227641758730123177799077964498380528357659155156340273506522815010147638229739576196699485398026379369284643417563840518988220680770386099570039211500799606367116876702483936995959659735786869836998408887048864693609529107296031672271400952034875477084542725159899603048714289617524320998528176507983430255943681804370623509148336375718043535564481176579683469025688899875710754694200869245403634582756085514695789373947381837430838603993706788224809360541165656010364283910266597445420045048312955641523051329446914896649590574794366528713680279179741472845504731004845322308539126535833322729112867434803331977521221313100279022202939260303268432852599854805460405465315117337711903610056254435234251473693398898302112794967240048094694749460667712993277685355664327286246440459289083690037801141565888741990339982495489155250863151688333953468989343403751344802951774147804113660779232904927313475750366891224816476220836874239970587227128868241953895337619627838449706590320540231649866969777394098245546861949780506404140397147081386299771691532068982892860276214590003572995276372925089037661978477220541820661222875759272077572412455943911965117745971507109739732201247934014755670828763190289134224894559640115971749895173977835770887865717119841258201499397514380987332299079011181382158581181167411992897200844972920402737933409855916939502076107875748436231085619446532724618479756359246073132701076452879806765870500832423449238233892142888263335139426906282952335963666742684466133859354082489475810266601515130648798988709817536040086635885589408376653701476088302872679381592738387711126960019393972822467679080384318709386403193589343541829199188781267001160383059746855366193068793652561315306559334355333527493323036947809247543739272612392692346837495230418330295502111834752000214067068406328167490561715507733718220617408156543496672927031137000836524935430749280793667948868147018337446327626998563586097790466996788818944691215329014570070258401030096114760000397211796838948934129525362627785343473531102031256662185473531828539429819715527937209341586326706692816443385337900271739190259546941897702744936477438417246021275327091506275464307439666575926481620387627615534782655637757112326847184708840009039517064108951718040244821744241848509865344083104280785403482103566227693957534233110310764556228461481340607044136058075306724999511469040366177491968609979812458057449728109840458438119859653179235004753350178869787731593342953109437115109752306973249898416339901837771213115852020642257067607153020071597312208845383490292137623258695791313444154010135115958784591993944186050645517316451971011175243475431719673867376199629339118489938732220487663949659640525345470580087347035440860735400113097841578929685449692445735772778689259562434341087359433572169547333570265140520323787707916392360075345092855171993109507635875568550795213212762263577248208076499272903224378133555086551655979333816760729037228150962005413344051029269508542333248129581994255075502635687955817264330781958854642581298916498697253395295047638861003555487096454436204287346584325396427817813454350320093099677183382203067201362273341433241193541863954401193440655255688930435622357199030777386279243513497933446908562211044469406326240504364641569893116988798676889160719290608234066245706172692850521318252936428774354169750297955439675520110935802401948957574541817892524602158844647288357373669239080140500602679816501986848097978528811744542186081701231761981522563280145849925962648153495483612134207956921894150230312341349789508258306665584469076437368654777482075851943260002504182140406637916052770015688458107886249979163761425192551730169368491416501425322199048524607839175416413128020968924094566983133824618730692474110857894193879958095263905165813690650928318742695301049283402263159094129725858595620991516677286833487423701772366210388612257804054742106721740821139544060896031600837468667741719164371822664234052723659532428710518076255603512409884949069037585216920784872811954201249883244258586693492798731293155326576664064260620811103952813262073930592804901525369447467587735275432335751200658592123975257396210893275815561760937895556763619449033101669910524975191613806972344838975835272573467763753194485689951188138455437200701532742145588812215427022423633346702687834329280175675329962815396117964044037861167414321045129081418219687565004530640089733152107751432344875512364738654496014618874733198464101534581926637218894876734320576886341086406705230942115938808713750070572044323915268162936702250973610405563197871848608008920580302900458957562418741680714100791240556500086242932736272553829994527081693559151303318357435954446452758634693612085438474090108046335073321919772100071857435553007435937490144337787309356975817905173354805349041667528383448894854218879343412493009734520965678431295449738431056159411709192038442092546714640844887771716115508239055202589737173739420578396746838166959369962526193469760964929456224696476142139094198403838494149090591052449488110233942132118603084306954566595539725838158191453760831532790173848221574520860342731229734711627200701319021483212925310723127384419037791595611085624254106832016220040196045252265574630129696345138107753940055725431076378345969193235008170810746662791082434542460306005490723891107761583712683511632622921549690673569834853796446976120100094910061837565868179049591263537131655287899002439450901178334668296341110222852283006388533054833749450157668960420038679100319508946400932687661084671298047304439317026392027823361637489543791357296059026421691761926065434264844247866988588674989822003472535456402240529314234445965896015240776966497890344569848988554394135814148340681958777754819747235819138443921946996702816851798442166371209864189125195261343347982713672237075551415722709512047518463770428145252060112511166760711206404192072835592463246856652933457074909581593037814110814650774639771527954328767488405275332630646820457545905059093801412622626558238475895153709467408210368332977358159219942678948878792671547808304556344655505996251755221471980052604432968882111698760933624955857269686328961970275801851159364101565094978626263239281945215788896821987313533057133155008320636231171908715116003927738562616944576809504871884956623531468967583029145825789446533367375454771504839491159151240542677047220888991916847217303119900964785431570937746420211967062961378512228220481519259492527326702503500073618263270660207678735139687519158235922072525792846516159162606187945007938276887979061547837080116186094211806666010451010639945766789456803028761308705540593060842333405278263197250374935740472027174541951167953331942800015373188815584751493520474166264830479381887978007883030770615753429568409703269811109855630830765359028266992989421175823658741496900632280729711819720859014031718726051395471136221759634025697826070895034502309812272385602367243377806690090859318114261457308638575607268405807900955650683650093063369903480738772155864953706871504085567771098266685921933419857956757162485459269748837528104945629691694547128649487042161474043055491332476044139604849711349759498779199335446009811816783727038987345376400207103184812366725673151251676875556070574599572545832041278009299432273639428094784858258890511996420695915377740246677356862801187627838892020899858134677139644711063446451359480276037134589473229061428791579653131803147583172352467860987717931280988065263014226222876033655581297328176676403339332380554407303604596067877589630548394246645038583869642696685960247205750999269944332745107773851859434645393890646963257294201554877632620181276293246214054787889548828681696299102584780831830232742850925191451378499877883315476006471812449041214504267963443664727424413940920878747695697810375252544051314326123112419223200163664539575144748301877911426435086081695200671472717296254215314831989659417274520051066392789898550531801062841022113980055687324355251274526882718385074120142603002605304015015604204116108478278646795125023815575587178133548092734293260030263884836776935117196217890101242841490778750853961371675356885125994654634291541894516522801529189884673510100730214361500635290126636573972309639086432280812306729248295847840227486559282082229279410587528805167418705668069702179506862638398384420368285696061126962385453295931929472754108488596774707129651141057531326485119414961573965755498724444694737206778109204615743605684566549541466893341088286924567881192951849305886531845661402803935091051839835108988063948323373122882532224966331594631780080062490561029763565763583531681226011936675774366827095229976385919809192605030823448892346410994325337617991284003312202349877806363166608102707504231081313628907924038046699670015207670618819851319318650209957281874106737005937609066160294791015625007951357009670021993467762122791761250491169538282666175997956947426599218207884364274020714563847560828397836896010738738492674511038031713427299596682113272309869011732501606761095352690292198242284238034799776807201861423866203657374163127000758435186981456639643686918693675439998910101798518561023854970734342329158169193903896689548379476881437788531670153485352319305940426021172753433768649440324175303861873893791748165781672413385311680527169566241544373429939618570509608379985747739966988965627797140888750278667646018712854753502158727464018974984996915991952614597881144490434455717815622967174282905997417687549234122650885967918906779923841780718428400054364739481871721685523910831921514722793443902490013038496621201430861111047397222142995164193900113553349887720841972730030713897017660837630533102331251678586478582985070872255103125704233913372414964918649043281966789755087948247425663054875200035105582372470845425069712552243145482353389276645163912298223777656304686377005722462728266844966073672204154858433669699495179002023420958127988945093055426617525715202762218151288623814295230069600804068441269932122892381003596783796455012780609212721687673520529705615433179814570456097820511640244278698740836632792287226467623413730147790037196678743399019255295225333839748222614593684029486543166887741331282817420783221770469988731578823573279540456419078603225556179923400653146935499766295359725331714337691268456710559578443963457743190083085445910491832705138244777970306515881731395667360093686732920978739936376423690729576169311228966399192983305239405850435165934730207347571382682198054226417989503893383845701627174655545008750180837628374717570981670529527063520111255279319715373566884824771967412862275446572306158994508397673692430336584283314266807346919013677585859775648736977556056208438539342491718604793460931036591444946280360826286310141667718370360067399694446784522602015300517267908204389507315641773969486648974296863261345511455130850143371762273867560513705728483417419696747019713017003148904951552961765161014187196831474047158993666239996359950604016926894841163208361539639342601492624735545540607624074055324938307435722481104279011890753546194437153347871309617344587098823463521766620614182622302475792202691337837137580107753924134436742168696645651799995532457539804747184779154056914367198856748616938335193910529072257946690724932422102842905946778782729698179409100412915548774971705502765168383072484371944493645574945561988914654894438991865566876096876098430368028382272560780071340543608627334171698175530442449779395990896288478942914163526039843119442802930421337575754470185027784141068116023245320825828926569497736584657736115632846507113318136081534150017731873828549301731268301582902670719419654499155512823741017496923041445872727025005318571668200334187316670191267606856724976758333914134700392470709836317880559330673202294297855751548938057965307234730965895302434969503328846950932210433619099697091755187075892685109442397392473681422424064264689667971023346540171219155833340231265183984634794402324527181353892580329538310972865104717228108484821001516719006135516581291692009391997042634410235482176644776263722270943194850507653023088933341683711644429500065176305716701195343426013978308383514783658807181415712354758377586086046117150947523756863514081383206653452248665847012926055065051271672178748908485794893921299031495646750808510509591972192068767335859719860832836177103878453875452179667107624012946761690934620681909133894704162488272084035281589357200003961280349729904010283293208538308003881112804506679851572031766779610300235121643358456005874903606725444624128541417348199764196583707569682286854133155584731028220428775243437095105300039398723735042812289590957476605069539798270399932668655319090443399020099908174462752926681126094404637420248098986419247357288064430433305897886122353902911759671757212353984266101900782236816533378522448375798525159678935838715831742110798528184303564015041988377584146427671864123544412766997609351280904812365326945519194970606154527141675761177159121326937140319426839128620377119011361837461715793554394411624717432423943441986556223819568245457658407877588881271155156479829608262158856598897394435945750105365707292348527802418965387643527320420065619255727028911999486917532060237909861845766445934478011763169658745790018411029807289585650584572640254249986968043096969507700688689090537026476797472343844903027279771052462875264692996218974942185392976140780111915502277177552196819948306158583305309944527708755422761258586267364756829025946665202037040922674794552559950208479204058691714136204205146047266413619488545789170829015328561810552775194036364644139811263460307464386899295039806120672127423010189832809793738075730553027008632045967295427469685652658777526243691722380186830505866311796052431748076208700067717384550150439394281827571418204446769912578021164529703732418483809113875694778580544589422906275518532017989364996578649695380830334832869249408216628622167494796568281067594943743987030640359617391323800912515572633864671332886521568423123281038073487318279534354463970077352138665163790075209863500224589458051912133228912101740664948599409335303514207465022120608762816869880395808231010592312627635549144174031011132524175272440695112501055536248159966560427211631552015692649318002314489279176711595166188253844677984429373561744120177723759176263689277376842158572802547241207661555972111432549554364711815377843780805406432611982503330762801155623479611284474296931745575921770393295665801323294554851782673801416949331829063233970643905856436737668053270955914069865046641404346072047051150862770921168423100923091238001999613779729737150028454074903302689579332822139477941973934188625031228160816103181981424577613883999313198877557381340610431867245925796980932915392910667304969774021290577032326241446655798948214355157657088407493591552104369355261612145150302865620483717378841388813302389908200277362400065005978413206200032930727574182986506619417379280085912986421843404058862912548175305452013714856869389351462546419369170417668363200362913561884491072777753010448067823707258262491194767995516826719808037377256219947039525988131151103906366371898552652730697028526620538749263368600492717696347609169303768265507075742782987170999609996800349244603782652268658599010595235942943404749141261608196142641128703674864016605484468338925731550569874198487449828631556901065006557329946144519461235555799770649369245610068398523749604066221589996295043638997194457535616791520948996799065287219925711157209803506757106019040386109067060591998364252889831499033521314106228772114050704939405881271848550429300118420359658145949597189323110660209173090080303829362589584944361916971086269949176665611836321284804400877231391719431213744279481170545288008399365681479599629673971649720304389445013038809746615153496005788634420644109564914119249694204791472559955246275942128532384129846121023114770550597837644141198592673017652415932572552536633976775062443794518500803963148982777107411646443120474206951803297246790725250201498194827533052424799982410056433239880565973547988228752199133841796796458328983427442437534096525676344998112389077884196995744347275056058203463585259712600814508650841499348527211494240665462481914342412071615486798847315418217422679858656995963574428803053760228729813942205152908095951695520741488760056687695505484490427895801456297376934231545741747077285670281320014161976440216694104611802538445153972811373920297970011781798443263681247530811611381891434108133832187517707664537554355229303356667781448709247186295829095969364413329887545929368934505151346757142566744877036163873365362765213956257425097540390223535534244839781071171890358377394812300001595788405748581491779588402434101848834756205370973171050406025504279691859736278144548784402641063772501377669399484046947554829617278743784975918396332583270448739219258719124383401284904789742812679050039925983172985255382625893620470228932404872325812930438880297991472232991161984019934721980974591027324283891736510639039651900752857200906422718462973197707629180773154016739703572566891195380956953301790315790492930180402638194561495699515935215678871733734411579934883278788475544481508726846603318292664445363210192857547280415287661075944152793391540793095262878049824671876354512907392020417478527278218138375759401343539332732202485175498141142525599534385182439997976241932805894499906799479352352681545162019635003012076353418177971304296814613909581907803885854635718994585494094116625276023469375950400566564945633746185658478904330647285944685354659575200765406696146450058799716851137445233523234703492810277095402028324794843000434018817326905508208126057732979291765531492223285912831037304323833493213194749255748359927359905647928242080196263833798957528797752725927065473156027157237397825959927260440925672188399099434450457416786368370076228068621299435159597445913688798006111948501089615055754665416607064594167114550188101196147274471836401826953343626927069740580822367087644342642026148576682461085504337638032207333513670741538429578096536339755046252704754239937202198028085574427728707350199042671792983417097502003657206406604116942452542019241754558020187796330539801932954702738789256424290933819346701444411820401725190713601619217995303131616168325167674499353338480988921032377749885759503940541922436300473481043187812348373146994640378035506152532178614919394806036527614772658043864338484527408693081156303901381834208915613967232641641657219624135661149991207766788512838494030154360765720509585213114401950272713628879592463654016050156518918440589304543355077062149193390763065747961438886518832535519843365182150534714262282928278014675887348827269465352894110277804738065941777583340361528058719089465492509394588082511637271750348106960779610544264149772125453386886458640612780056454081635011040492800225744424116307952973159914166285353538624460591156705110360926675607820338321996362319018127865433032497542041317245195853678560847702576989418209477634962834247094228111644392599768109217156678446991167086834799551232787446685527440508790191267302034791858854353733419992106869610898620962365262062110601529667127638195914294676255048787463046543794643302352035203617360449937594508907506917025066681173501805157509157173054899645381290162038501725928747683568563282239237527606595286012572618037639309845453848762347293339238987284188790229411761636941106239450977933366104963341275109993000436870815808933357608907576711957560686754556027535617290114007446074605951924470288040103515060512684209786252020800998046572227990150772393804304719531991083187880868269125337448529963162949599152083721157058818862480323229473540663953181364914138117893079519252176488818330564852651883083713724033029560319519955537400109896806465779348783529539812881083136428577933869648089376191336256106358888194206110779777217987816830899651684520413826139479849924759983855960425483118187905174876836954286165529695759715358528408044214531974700473875249659287422639048512827248435864887713720624407977204841024598639371278292915667734712362510662762770501836429354690286490990248003362081578092362367956128358951601116320183749172975640281333869371988575549540055295606641849477564176889586582476237855301337769373562735971379194497075105803177786034911137553729114887422966416456498254937256774741160370325110158114891326275858924870495464890102980541086764414437428250054457061528467723622706414487923038804088028066466196729189855198933962332010535688277898580320908602826592698912364674156794850160276905825854766234184622327662240493066009586766091868391888743283766598629725812577990418886744056378470209835112914439645272404013264068927232455152843696265045514536007021613112785029385151128700991533278620457625062481686893662952470641852335644836852763424611818559977553306757537227137187163660029047819031710466756715634723437853786277019452523441669425413770478563356040825454024356428020612117195992477993176167214151534786307884929282853958329569837952330066879352997480057480680496289916881478468648742055146701829850636071447520812582770088608828642866246286429207261297596411598951592994692463964958970700203719546149588627352581120310370235990196014309819716371463783741573589747012109362827714319779340078977553789662367349655323673283777142906194021045008956349865143433099557358423381859085864361704837389865743837977443539908567908786369651931426000381205349727983317679408351519083381720977452412688177557031275886650698444384228706969024245446804533101608381165988965443333292962502682386607491942254380532987797732400210456180668335835431655751463070028005504042087369664601672795202176730514451598053847487175230824511902362179411710184457190055843552534971685905643923138976887394063805184149142276063418104410583540881734631518397160297185603048772273420713125199249167436638049961392724218592060754987142262802439229129707555930919135563021960861760989951517756771971356529411840460677156515494872405839017015770401873181339616958040895816954383656853357917149594292878863665967500195993227431100282450489117422243437286818179200316288594000298292383302747620230976135844083516626781575101398345645382768908164688680015030417521398063480187454936798082403704429215364946738837648908733384522092011709254635374668971543147449164285901412543603284881435356760052696005938453960897651468390343251926000543225233892845783023945919978682920048268498217119450911984445965772066299557064056394926324741954366456633475681184494792829092986690657056999965656411781900825179393772425717506993429193567115714544362720259093116238818044289460977474339988614498363277745826372095165284462836050726243841355340020409018716191895371545007134925476136292464511245394683973069677374730292142591362535243211546940357827933712735835299761964500568402196118920444988805686475857344641282629337022148805354838890309000385770361745074323061947374213515038240475050883249480554434063028020382572757606431157941166453274009182950674157012129276529183028584234915532806697942035202811324910265579042716879524008597364310508431974261127799534282999834273970277924408826892584570134502006868201454007259048759742493810700285081772502335076892012728604562352061291383505419381478581812748429473027660885643531588238934075005466954428260357832901849423573978718715877864395032152465606774519859570761438014136472829396047707409566645026733889627769358939231937665889515653291673396022987728072033269363658835936727517357912398893751986416129268537438771432902293677549024913842481209235501770220920428457945365857531791727108420331880414258134809901513669059205383250171755164791917578780334109251672862565757757699083621554393995124208980600745857798514703930690387067054892600498959134712822749835209200881111715047817525336989378333621878779241399445528485887823038825319649469343709109373513539559314791296813760674226671497992848955767916623513409893873788830971252394384642505488198005075763051109516931608687103305757318645542123541671166446443050302098674134790019111570049464676786782002524774105328094301520141661901577934732246199321745824396316044557563250829092702950029751681160702565840054909176208369533322162177517057138945489868986164242007128699729771850291803741425042035460859272748945912428197171404444379696559831975291396495727713760940571001506251532825349198123714662419251619744248412780216557274903898449997441828043933173021163608794475112178832120189975715918456256284688115898981481078308276055101796902807303642802860088698114671310382517494762708878798069214791182121863651240638812525003726817011383741590125761664250292558708496218892962081435725987977733010112247318395160439049058629336374149897318848025965434575910233513786550700652824890283629436311173340589886903244696901543027708709463373073906558147171759058777513198644004667273886893189526720718886188943240682589083732114209560153406516793733888808580271906664261994496877090050793900431205064297426489250879062239079352239222713255991313531874540488668170858589470620662081328708336800033532875602867182301034245588633960871492223189725321951117548482213266698282959208283599194524885129615367177168506931367515078565136384171134831322753485386626096062695683401520517702219995080186336284022973819289297584096680842071537946565374409611505597915892094316933617003982678751100132801608404620517257006789123813256225816112781410094432460484982742396072639284725722790140393405761698326027752904168087502961038980563037841805550453304606811655043707412880579255211074036285244458604324611651641053472274428686826807374777370200660388355581765913850583065493676891016121377474473403277643268602040044706160302714728790123742710931547253592660696206254744971330939380681627695154399836958146507003942844319413599101154399787537000606502981663855300908640149959592482039480011083643924289526252356465983947840559144475085061394860961182704325601908957460792402595917462444890345925579827659811082213393965360631675975057163928469505172458488013130919565624380738998483636387215471992504511162335337597700756032764158061702313977380133341262803864134482005430646437063167760318056419899549558441963245332254621874738309228410769702896284664663873258178286466818968491086183237419569044311292317401377490087102946978960290082994770095593300267825746774912223820068007315686955562305354609556947398852803353621403919513893373727452569283730162254283162712589362626434822701101184877207796938695075709020614340356368561638156105960331920566385077234124478119233587662179273516488878149861260521342796866363732266204491288279568910971615004668680214182802067619148333994399685762068375447350834854942719250812029598804727803147382603057229567103575905812708184827912800600902336814239577957724184853438344109468047628349514251374811679449319998667362790003668385048346965512409495079973475931064402419215951805160529994012415012829197941199922592490335096300673031757744740039861084853906027933460246818905219740774976752653889136732701390406815076271935732356200501192073048654343015247527485628552839351152337020954620481147765923688208584215944397609037918089663590891910134148609610854740137865638447305795542538474818425681499064664535775359172413609247751091877049158809165536404820950049550379964298677273354821619042929011800486453871157866691913615109390329995500133658052770587932579252629321608750472865675766868682319153992919644951374370992878281500009626724836006520787792163657869267514425539916573692411381678927287791313673015170892219730309409421518686330855604100497541917781584212376200931460806941200283633731400378498944773776634269841915017963210997672159352084405606676536744698304543027412912843748772793625218096943688983327847796163750849137088252072796913265505385576725965270358913524242628843369348578782122438516755945013406263642557152637321274946774996776075095137223376020596042088772471101500540690498646292516138852993470637262544005886816103088225492059817673150558864865919471837718006166099921258235535356465502165598632016944252021796146972949074662966460864790394425616540828224203035628756575835336474596440368775323568465090703041624115534655805349272402499701475491063887803588330927806219399078708097284224348696186099309932381449686156004993071277552936667579793502532351937243197512459164673436714672470649055973173776198400744441618803076109424941474894500674032302935260425945956858713892864722262978171575500188580345660505037100390078392620145389468081043349354346449599775827403263921766191495533996567861776975419525258976123414499830799838740629749905562078075358371402385742188870292026718590628306384268970677698241321021990206063712581745255172787921629135016599358761603847867748347988727679567550626815418344279017518858259246912368895947009802768536887100016669090784723390597404047063962193302103513062523347705012678387759104611629554792217840642623957773557267708802990144488872655006292221163157454880715331798042088805300923517930997885170750821384725386251213087555373016989667475645468134833387406051870539283687662679015202435262510436225213077966839030370612388882185296170549999024970989593823112387980622213129332741392584249338977215370773507409087505142201718464864821505260128232047953697404740464606568319410205022320261498646037281602093219241509474360289879928549170870897477663359960214034353548398167857105192730001999944650221825542581880496252770087662157040586009395260074322706573504071145604935784713922288184476176634921943976242263509476453667114788117948489122081844378604002508009895508462065261690212225896468088128845780783843967695012105368503947928544335561297941496209566869839643802377659812854891184783837523204494309335034423760715426412655783616596880533925821117967407816804703783552822273478693385228071925876626594563115605958635045628919562048516763164449025865970602255126654397358074237792704361524310831239850618043276619402658170068677686562267908433922455260650923421048066929160857153439503367492582217764293297648154118544817664599732133425079650049936547363379759205153035573023133325911785720801796968784534156907600821658416272593862808700907507131079243087226062449541547293469076562040914784376182727291099331060072786133926776650209036625409827103662152626456086800352806466739694044831143772120327617399430377915080565891597020846803216037063113798574589395225165510687038209981122915296590188561122537463014045752345558282445044855611092259540849017538999563777169683622101162114037625724854292853024420416509514437205993858762000486654460000495594028217956840171184864281438900833560567244599172328471793263552985689483543373501630620886930552012535376621648058091076129710879705000074571461707076231287764881595871707597569880237285477574615931087387982892751775922647080341835017288732592205256133751110229348053842193738879485144831352651584641329389168935393537053883338737555016177850635079175275756369967840932653620403285984626224516107101488354920652521029326867045922854953074695140899414571592911689948347487167525630012074186249268995286006848166115191979049631730375790918177799448245877076320194890889430658539006669299651123582131519047270206594948793080938084898648262542513595886617287716922082258653044784000190236171293812490515049607679693007439466162268805800332347855552022649714940447520963080875628561433154906996225350539910229496223183206240280143127490342143895260410266952069673004960759818506237740484910627415655485373429512661232783379033357869344946450863593898920273045376687167215979474239375474759329370240190055292560497392811227624207556624064624132399888320663371364499484380821761024412607547553614879360663228163300488080518890421997266368198030603193384667041639942201714576410347248765847106623341428261305441786761795872258740498798948457868637782642273556912456511756327540079634993023377565933009635010936763621421337148681814316694494274566862934216677981405464738441675550256949904628851834507630417658835995698189525592084109777840324312910011461677568274118604488057874616584204149825134643074929173686770094723974623871937554280859407697562772721043322359993602437535875454257684582628657941886070775961573205665011855666308909220187553691216955685878489294351379252172984918677625886255986492207078446441065777642691572358802330845855413454211928118044796079030849139935076801692715883048809340862988236912061818025490968353761175039045614388791875490533834525423031268731061699701067758078158936404313165709770535542253436493657461926109584305994028498046207655871592724388533557169020017384240205307809273371182634661492910836139794185599228009375913169855096238747959822621717508416785786607568744672171874750769360309687110490840455630220081343586812890201703270117808078036555384398205404956796914421094627175893346465281905055013619990148637992091714177930756874395587616188440537641377947476347640023829211025643709628839282784842301562839586238128571024593848716258941450436519682771951708790502678155206656831939741604337526691180792831157039395752001573199550698455768071000460027988694830501745298890580548261721022377911359750050278856663731780393169679833064401153780293971792962588320681344337699115039065642316995359662928123241098088323359040769585816635552093731887406731859914877874917621987158875256435173813571881621084427005450136332525745792766415790962922107901328765777985124892510688080750991098280256385259133897745332557667467756240202382201797173866175956659049628566592275016856656979377653432495669014339587966888961107376965997009357478499387034667998806395790582726467117435923102008374986636909767542802491641403990836243160650001810274132937779457257778920675918074564245720885147481842798230347792342109027462362723548872789220951834399756833446102441544108037205616821611388679915696722179319703304643388056527952820321466422403983978804101177460113150989775888361668662729852410824499321155013908910268128833057678631289915526343596926513722490844608492638519612876060858327728956004426212343689646168167586863105316571481004757263594879734863557567777776960590299365153356259164380626418751983389825786728779200055260337023026078614332747306025870626660117213010097847886108346670068251957145795981454729676474851193376176980432951563162102942263031784857929653060755683272301758577124721644833568133684678898403595471044999618355811681210369427179192933504923298639501098512624800441887368483431252023120308983944882471005239526459298107057729234905804863110118983026001007575895222286580620242650164908871260242487298525757343504472854249906623772478976880239113306916847112420217882933678377227483372296305032798291610599668668772512679051304977755936811704115048028392990351133268883675352288144882681139534608051463491645175333419114489621480539586023161257066811034140518470593448007353593604074738043220587366577859438013570684196900092853495962221719945384379936409584023182585323020637239289543950733597417141857659898285010022567753012564486546538584847246238178101473080709715741714714607489580995204424762800810671830715120820210846048059094140477191318477826984858003852126433702267622539223620322282326405188931657253808385017323440633197047724244175252527749558349707754095313192502437920030140452476898911468948871867305168005435147042978612314397144993932583333719452947578777954765084064770491842635599265957853832959253964996064794426957074156385337034229045960118275995221043890473352697290483284893990323932445005256554991879561483035996213781171558013446227857105966053820558400526932059478283280463984176846716710258774353085522121717183813618102350091559037156530129855913676095752573866524239811352526074967196740661824057051221864886797136255015130278925490113554529910487500292954998800208044194654456638027077255723873561429721429770909228645218447711100353083638840181678864436339837856909007026241245096442822288438806840566950997717893196927193608118434994857142890707085602528512977596087292085115627112239406939865141394851300947197242419093689519316904279117436924820813289996382571578075104764417491019582363284246026133103118083924206255895854244335392627291570937331172566399076218162116275000423960086447357247993376657045834182912566597324332260511723600820001803756563935699762798830599907345441570729713395037828514781528975692756469943926256587673499441961731409380930664204295371319509858188533160255092451959579444209327222483105773184455825438460585055940799315822435676107880007981780717583966751331139763608315383647882840060195310481377614805343296306866173720266247739994396497735782002710087763296108869518819393317946760716744666111155537297938983904174839022493158731087244641318620276004829785836210560714175359486978633655362545593057958280027224997911859386691760844399372208170608514487246516628550996635216931030337009324764547924301716905772668470006397053199338926762495818032661556371512158531351395239326308307004554828759310441074588166948937192571988195005027489856963327487094955305356078426157516892958163463200689258883065284836053766072454357483939956351765049272890720875631029440334428180372433449916764314113376270174619740458532219674881093766611450642199076559311282475358012194249052248988970149512718325850520881742931964961118744343439775677743279330638593314278084249076542826340048408914525442972523370917758885764814625371736614366636958986503476566760112815959242759948565203039492426169601844278773161929146485004257134514727420479737793497279429332529847618411216516168216033635941952175980439384206416962751691754546431185823240687387173945616059017853870559434538354907010533729818565766891410648280815145210458447112306087428058894479977022840862622432588989871084328265401320620740240573296993001457034012726698790336936537316733118912644878744399712482947642429982651326789200597548391496623243702896062321505780460961836896418518292780568842090412819348919070674838469512383153916522208906682375860903727326390859516004331973984768166436282998802968200466409289722170148837273589467181996636815266983513762743278427853995795714082567415723133884975191697580804658612629217630517002689144086236399842203575249841530146353691560627337103906480591207943777624626932947566647910850115586264450288853908703984341779133660366878168562495608320355638147069537393094591967294805831053565071105873119070682102507062043342968540893317303826517532233156374376783677808545919402432869899380012752422719726521523969937439736257115919004851461121536531442283949388729159941282991113058428496534149060952861857488617533820850645991499385758354725268042285456565741381086512841652866957942719799567616908665169858116576117118599601083147951236536269947131179454990027560797740393093665507560903767588952687566827645381119584768963782106855970005594386475607407423829688475391352906804335418337966985778122900032666142828125673125295048523869596169150482484901142896808104783816595639250562615906700601850408063262766496997800955908022843048053684032691904152019007592237096476500317552099980422908673809229905325801427886288145411103938793834343700870895579939909806482565744600948662327445919876463904489539805622064162653360995219950399541218876255889521024705839192099972444200259595393380533178487897832202687501163974129802633567572215640450570193881295226457817620175441437183972301841391192124390372349860918401727581901879944895197417639251079539173801356295113557943506963693706461634218050010499957418773412146243391915821735126530598355061215255673906601145054443384328840945298961984345548694470203414860719160358596949756068494085619005440623840008901609539842949055080741345352893747518855857534320629764930914997494602824331606837838775662031588032793520400252661702325953778040039628309606915342436022432376242051834595195180590852462654204676801963852639952646153568085822362334090771996578083943609357348148531890720967904228329158291477831368579289321598202042780190590644601584036248753066380793569760215521138623322342454388919987491360367981696114031862514987127997045584738590794299361876907275877886326892462969484836397986067496760115066307830832210495192923532825274306351988946867786935181008524696207605809522684872395361748883004571488667456115089245847257829288419117081358349453378520571196295474521759343344309218413286463360006368160522685921208788902202806248222722028608873585445157918577231897003210014090393869787272161641112784505690061207310065754740252538883194082971341080724945079396116158424474462468171930771717872319862043564670220327962171839902599604167431008956897373678103183695235172480897234459618382834999924431904725514942427539077306173061471746011302643175763147767341603940459984821143932302926132834508608170223440249094649802589519480943873644854326988896378590993837211852791884044078378776275506224693803858499180984804661830043242818035838854062399328130573017501897648718889089213479641872814973648565448092391560509385811138947094317866214427706265496705949924182340980050751105969985163465261136613359087380472045471700523256734960881438820265479017502933563249326381435281923470579133748670276915847500695585948725375466354057728872484140407169275897276761265582108111206506829244126823639119385721142325894982668315732319680344241963145725632213225726283035956535812330198562550992630360236041452507105901665403039063911259597034146769897173600935696696765016461595773093276148636372846304492937998622197180052887763770363697651608093144197364980898505909680467032775557369945968408638034767792765376188961027867169219996513073528724194930089990366875644095731397217484940963822447363730286739573361120275812725747866677193576718444595443746628663740736781088917856202730997944196604862538660282729702327876069792265738239343620479306435543381764963366683829930789471495978255009537854931743605315518466641311917643951979938947127945254008742149345121030421024481688943246847953333597514231032441277839309186274762576312117698483785791529512947709544743149172046423655858796952535785975377471651203043740560860516432434578648742362686102763816306216962309761994961193298291077139352712004731672159911908573059631928006825779695921240293679964597599151179057614332152975244999661817962044714289761790680416622135561455873805702341322081856182803853492643374840051269638601310466241914463284010221941260154007477349687499891276822382668480420989130007938502591717859382842530501871113073158570673751575706122355522101261188923982681519301939423298047951565295994175689367423876361059047846865165925495035049376738694501833497539694675192340759196612806020666788720189102515042857011355237302739813058561596081344158276908218067265101377322249288799100155895533049039041455069167818509958578056747845675162412562763880367149531330983695166074910153640228207063893606716003633837114812919690310312803500169845567837730669212662882441375421546184854536691156046977046551671287534667221884310212853438399665568931843032365252492884455629383237774537631549892459346627099728173719533170818159107751431517913848760905243031500784307848595592544053233686095961322223387997103672370609660992092021027656735416184378525159684551435957428014947117739219851268956122857213779363334383076134480938403124679613414626000718202732268766332540738927516958288904125851443910770948486470089651834312762823457785243107937763727620362403332886698905524866579730754795452597982438699228934609476211480602405332309269601552412739242063717585410188244696389554572696425312011735459324978312860015727805936896192783462315581327000340889665891360530301580466662639025459478410172990477071348841759480026259507926086565725528764526271645258284736263341627351790025654465761884206141652441540677932742689062423358176589852870870601459245149138246517478029546690782582066712301796617253436787107062060385886535449295379481604409163023139874622390793572415100385256369221601932007167842171781702662850872840005871869837351224130515211125326142686001638354262131478958867954773739042187173862353724107823704164769823176551658928262777754289390597741127386975984797735228544937397342564697495486922393769236652741892135814818635668723643247526094083123715985811937098905491013003597687119642508569986570392935063390879434962778473558297053100671259500314013499622127741651776688076762786827408215485159472752120438547939476344397565037919955689792857286505285480861555076491146335067464566692502403247299442807309339447129950129924659805678172187190187557273078785441817209465137731593470017142883771860392289692453019459541903169582197998708763147894596719562958462793824949522305333469782525396416821987435285029464298828957402625592051096639959739338678610190658432751456109407344351889170838788449423077688173274187765722516548118549632250204666402610341851273401840281790832279331716957580949241004704586726144668985840490720485679481225489612337994999594379066985144583751274906324585190946299485608259616864822080555457254560565319942915995579125662489655432704173094491174890188302230580215899431443872124766105644031114009349286838111293201041119874079777275721285695171630724578226405667811193416047264752820066685358595621197447018859678653032911732838121454996106088520585830897564194603998001310247149898534408566336092866908952733647746496055650666061484046165747680099109603760217092204620570978470012321804551393026374613318604737825209677623858939779245162981124850522584709257206794701219748792038167324444039668916757574038891817253507830994337155519736768575484401576880621499553421550242031597467008144182685040532314643488386754337334770309030692824984180162149003818790126040865765777458766821482837969006488271215340333883202074484228918334128761708365946543711209355358924618601136861797346938164430862088983161466139334005808061895818468354939625163106974451262414015850788055228154473099894354372354591549671002648662348226978890899794060567335224029392259339549500638091157621054399840955560789859613020955087428113780027058983083780140795499484069011082204842235948639779492305961487339530188408581893138645040658903918068913975827692465049739078714340533214807175573879362015453479745446975910280617504271351752485880238667951513005744915743289268713801227138110857071092797332696911426467462553993732143886750211910455316409066931066522777187985154621439007200837645138098716549010780698340332699000539477536799503987459619466896576981010614149722856994135039139199990700159085570140345765364537055522910687973025124582946616528218050629555923272138621902859598614903740436273355666024710106279023781008412549567999087640347176509120614130910181601450649978112323215911303599936755549341820367180559243954516114554328404579089304076924458938910511752993916046663599449239323036004258324360062706002501045550554320669385552575557849899195206217643891325811374845636074804094372228630891941932210010885456045937970270805578508365200551299283907253390445702067733397211649369299767961818546923534156397768766345109023701253480606050922910052502387525638825578183447685737061672987147754309096432256603719535769359518446730717007268598011359665156123685524186222844855410372052127063485845732275136334537353295093809843338215144431833027349582060348228375919685580879297598863279903854918942305214501288032008952466411574495514710496574014926320966967603639503030406839179031888129226430562640136639210461495080012502588542378977952007301947810067985887324731384925351478693357378472854337843225851882218899900801123671146895460671930654005958866614539901935685806569190607163003805756677548154268136975919062607992084693518075803801075313599112368010233632534319862912254297238289747840084293328411645093694534183173992162157286942358094395989583976367998502974724851274526677200120944841201320254142822649533972183527792119999138811026781728178336534190507404768272600922241897243930870494515522032707760279877772472048359444149316099578796325310170605782132839008396874079839662873177930174130004766115986646425988929244921142415928813146344560693014021782591057015141401793852401032039397183698560052161215961861919924451783598626684149954439961857664011293174836954002098524192211482688738149407076159552477669120729872629126019031998353264848667103819211492053911743209213491935489240847976620149167039299782859166258339960085580594126619522590264115803602056752221970782224561441923608764212787149510552323708127618599719426678033926993157741652207252616666454448977636245188132598886727150173346228572620935061984113296494060646752271657240823585719448273541793982765546599962628480236399602102186670883829562612043593967214275352827474764470801398039118594547364677587246160046680798211011891185595713582231604728753723512343652500086732838590254561892817276534222399630117927466880526923927405322896425245458058532099012387071376906348588475638527204642376910908968642305293017924925975040095787972860167215502738274258424952889043255531564028906493360378651009020757571591304054356907150927893498677159645294926569496967357507638047056283888603694565632770149297783862763544226780404553789170371543792569658588578347683314970727965371351877126198828680036537919520512013004299943224924750952529304377153104351235926177817373663483125091762683573398512893160434300880482334418260310854658780186852449884199716437157876147980507132647167863424930952791302564355432852154393078266691136062299463260630182924537946643350787750709235358407970528486520988436261479816166135920703451803653406420534450979977821741991422798030132189157544173197725636042750681257963966913514759471620551769875164101307301060948875968458220089375160239699849752392081657439734910475432179494162125030528713425340207910507546896704312873283049352317470786126184559896775305013805386497266008939736674856420457573167104878304172690761873270799553979746636118429052469769432274327904950356302616916322474872367597695773768354568070675383104713428334617933117716837065143836604255075198322538791533672607532009926754812234140687038908093579321850707341187169449619130252004463327223316516642701711849470694183472742294123213957601696851040698954109010291845963952875787717400745145556738262142047192867197104756664564786054868975288831502432071808682151332427895069400339845119495939002120293688194023010960157160641809930407152314504508588608885257753910498924375080157583608637224139395357603324009507627078683229373636215944744415792398114896756307732223234605424182530392059593340559780343372908864842469252639891919524987591684524673380227995407710413505159208131061509610327437320365774100486763868768585408236812829634664349415099786977203609438104943480799332074166037653241193514446496176310192771063820504983626458634523970377413653081599466048414476306620810335893382537813984087387299890846044111777467224285212435684851166023146617817272253043093067651980055525026312607251542703469091752867730730565672578819023764021548786842417532557299843719139968748258424821299116584712269546083829389941369237876341878739334234105516187460546427927182365609527293754649926065613268852277724384776342796902887380692733415278784615442288066095781105350133353128642319370898598583036456429350622772180466793851047859442197566070294449229954567540302195085016110181283071881571372226393468848263057560659314532787748489370593418248564430431325378278794481528071897398289948897943776979785719135060631444489367713145855285102372870292814164370901108226898021788237750559933363824423777499782575054296954542268230044235568733294526968398867878018878278469501763547943592547161344141439423481500569008652011595880218305528722331169047877107643141347941594736025328113721452016826606762793357183019702479440013069876188078821772034027096026934071755134424558874869083237076740161702931081961642472466099834843153563576636875409685467553346816249597327517866283145147338519176881158434349485784422495465896115727005501448832431223602060257658153858686231513948925176221923836652276130110290046947474102777679925060061416406039533099909752939984632054583029973427715192772882299409822355768339000364156455443687903673862014798410227087253877871790780140683563574138562807423816489643494114978930260888224534498755292977021016820000606832993269807926818310721235956441168594283516508644481068799835840435796455773600307921503236827357099364347673624935909098269867445985872326248493303108549215434040421850587464590039082193956706762050384770550439972638473693686070302694707862345203153389266082674679344208846053993923917711858181431745222732000558425430495309363570475288005335330805871247904838760178513734858979410703288061085671223279219807340675179975971583547943648985626685146850764582954788010027547791080399604486162398551904829367010275960210368704449299375178137383161601062660647416419198969673363785725390912867995973195875089389785193776395401396964068323334588364279108723945870838835376128890106034503350561538560420358952180017819733234440396662132367745113193357068867533678802105840353496437703553071210703900636902948048693347891758299187448010111231815108515491678542983367652974232618551687314667455317788044141782949326734412525034862088669777315320653307200281753955758975579163775948392813064240148890884960731110975665110922863440637889839323518133167208731888183261819741929978081346152275886217772348365269078794532097454613035849374584437232008386178673031613916275423227320230904462571259549310836053984065252572786917053285016902802953127289718585793384792531616637125995242539994642251182397873967665742164402495178893144166253861824975109135483956985877251300110571434142537447345696174997360907093001579161437238162444165019469404060028291565958737194831856117947841269704921418677888464473182201245172696537780836948541299649519226740935765755303914308205698515105652362886092692950507904283241982896219257225304135637921672591324953817972449634435265389845534080275904083840405344382999825094453423311841692669975920591512789203303852613003063773068020186164533085769820811041096474668302456373724744756585541878413419094598365598027968791708449459790562028216487011192807856096989252158593892956346093464172789961284462890689515469517076313534610654029772921425485211160007445096112918477055164844824578655047638766224366001648825193303269905047086121637698606625785058412246324145485745017567129992091585450384950189112329306762791141488016600476513475102026317498391260568520784399078884101012470969891777886516082541467428928829710308243299782660441269647768765116286301758902098694183075850871537890637908748604869772683471875481392179324125898559770372098953033009598502708686557208828128875657833515327551735975227976973734061957415983048417558878397970920756519771484691135454314042890164520459911448883068960470396990478375779297097321173205500517024745019519930351170418156646868769828994243749569873098597888231447646541116456234696028098083980860061468055905723161591817722011520653221831011388824327465090708309990317353255822357515497233482551198898895158673473698739437509175911971882208037443027538080025032513523418213842597788643588564513861557704568980141418104373363837436158883234611723404805319136897328889157603021219546446093430100084814254473144854525558119197908136291020578983330680465129327683021401532745986509357328818968297068162765368074590642304566735568472798769756676158598974087336138366067835975763949521045117508785061127356433320334760328601148045498346842491382726784924503220495822899333113713208171955164386634558929094492102689589369150426166596197497041521850058392812346933292540435516996205521888589571132377335472906556246392990540397506767604416231705133167395140891045301065573222571863185681887077623310369219608484424525599471506613618915146879594868426697387730168458853598214844157062752997180701162694266895719671713321871356530607431576267782006701145853473975525101167867997541954884473543616701554815957282164506329390399687845282969932560417478476257492507033141462834626389611858952149564059411200918160378773981947607420723513557393766191532640083057775138013342442654096961160454666317941368851723913760969722784195846534069109269331041156494747329028444460841172019536099283497157294487306684749424582073591706167903435123538252144047800775176824955780593323103833109828206451482547102238159368966953214936180149767989190059485626165459501291927304394344612255240774788577990458712820690811718066160921674338791745948465241116202388515877927573016171021329752632577614185949753194009389783222501500961232885595393143798228169734462587741279541255802337246378826732305059057640574217225458735750332949218309691158517354413302113854108489324203529280595746120534066488199765863889987875810397905935087759605622146211065565650777014046589918365572222383970432003399875711924321948920436180132680020690210899928246712187865866387719492552205997316616276057822571840959648290776135133991163996071506445914668010691088586066493766976768377646057756958142072232637155715585025643047760418444402832507923682353747489019156965792438461842825410546383110169519623173573503847451901684753866931017376286855378675482403216796212691219286940808095816507659413040387750525953146526343281267868823777925995553096577978976402270633717239685495342995163179203709162184459980788078102802877150312044840536532342804089422525197502156824396192691962230191160627140603158911415131992027160803809176527806976502589083593599309811740266687475318987262219019989589817396264206748304240342527571623955891575884319192547486261694488625567041036485265350166994197034397750050495737635187418341492356407452883709603886064765704951728067646576378351090034275553823559834576072168015463735273609069485670625615697146591153662598771400428306856395644020263776084106221314787331415023107360947198664902658234709188534475875114099135121217384809277722080167059883245741836187973192296068257724499417063410810626102686733792872362557688798718456344716187460351275521110618719174793643673469727410472264689826378795679934271883015055828043753933069784924077024484040536928056427938756272762691374837363120075912442622165521705783364547997386865869121652114985776429427626503003897028274003143032147542119271839840634494567710903675935250665180021654264897679594185271879903201027057611684725109492604188723960458910372805600567158294573347414471754541523707810393235280405858240668478496184995701603595572020110584000388328177077960660441511894603568630670726518500495172562271772250307301155237943086038312827683057493009712953634313649638187059109696476327196838580355614773795765739386917048703836604626752306227483831329771776089512523959699063789458705256475707977637177057359719576693897917988906566373606747051818293535216186884090909502014412089297719268883116261860523837105788923746854109427239796503504208428644108242872140991414800115790806903693530933024633074955118947805777450630126737375128496402503136013430403030981027557212767900868613015414043234904451439840044766350413392501406924212571998391815700992174698876495654315707161795757973876926440456061015456249816937303653473573701588270969655688737182826031979756847257943929472767444359399881500728574374399219225981505590910219341322279042205620371687947991891161038807206481347960347872545933104558222409846919570693535875392393583361542539708542683836716782072193407390813219745692776937902360599230474024017762150292202930719285535521996368846987252741554613115299824070216004930841066364448830911884740504311638858923390049439194571950158893664675031130058372731578104156983103339581342424910630218781594661555134900708221665542619763585173252875278771713523794297869350304060459519200770419593673934865315670950490424831420132080856724556020843975738182476799507357066105232202013762448242749693656749095530619610531646216929415780373175990624828571768979396205206490660628839377077745443109087621187331274441916778746457283269047493217533254248806552616609338168066698626920363876324570991071786691924296593029330360704654748403581065269841369680978240956874771949851989732059351092995351429519935016264332123157167210106496415949059919893062390132187262583935324498787956572635884375372828704348251994522243568828623814803018754340652966416809265207050713123984768469566832424552642097645433662419934502542280527476772561718188525586044162223939972104599813671391040561104258873794574321926188922582045742721216242782602100683814295265323810072882605783296326318227990582747773060385204520336483322506977919484616979696344014069736302577184533365847845157629372122158771319999309360776780587045423780137091576027595767681228127832013397431803456431042363141742300803959145846859938119125236065204167203208384071645928195683608684426679321417428019264609005229000613875430026062180554532542976523476908123095028112634801490668873447226231501687501356732798623995576718547923891658478004911048978626836907027749848263823463844026652426545784807067645495655722821240989398660345506184562272431147561464296594506980129957757749911891433648611918575220357398260190512110693887566816747921370480445996859085319520102603733176958963162096491734087730738830482240820657976821283168144890870063821338894531498890962667095061691353101143504821663471140339174324785797155634289676269922274474836934728315555441188248770166089388924713054523161015139870156245390668757276663273718417262957565688456222945795380836727274233985073604314269583397263904047554806669551405998034465147570209265609296402215364546641612821815548695900349724876755876080388886283473435511682286172403631593875725673318495795662942094575245369873490244355394781858478850305412387548697793551615247545840650969032763322686217782908626898779456726338496383045553382931968717330982524660717934072954350938363660901861292036293266799406620112709854518471275654429977058398709074826572678886603461592738212915759205652866393077630209393109558128531367223461677707272923044610780615015732103732083186301293042821554467455042171795059038112124179337235255084767077238383001148530455797262354167885594677213045217769898787861691585238767419896320981754519369648159536023020847510822320803641794089445138578858207874447974094202151103665750372202415978056654966239296061457477189312695954206228590852571785971454279784096001735446440490129164411239936306479773608647954065208582569766693024118243039549596848467539958970179473725197008864359618835495434755567240253547300134738521527241932870893340499629778751060312213802020185422994086167062958727875757550300181015976163924610712876553278948977240182776607191547726706473310139414065166810546042814206385791185563944747634888798816418171064553603330699997277440240225487772061607592898937791119685446686076298450995287774307713598244036685318935059334934888605933364762299963460208472903916295822184838058544234019496590749487087977693941747776388354211967772797435462250733458062143377067498546004105451131565798309347624405674373839108997007400140666319460015007330877426824914086540488794656007618774688079554920030005779324428559500508389324645510464835757665290433373805945261104526243554111920316154156873824505498023090428640657275692272559128434022270269804622579602233170562370653816501715130632146598904705339699268406770035471624663263714875022817706727317479185510847301848636326833215109165303859314139553033300836861298705914065520418850223987002380839896224605453524727799384956641831922728073323443174430905904658151664783855942413585398980672274773228920784006431482258059258943495818972771219755437653086623525841866014453665446606543581141058746245345598837099186469040106333312456615262067273966743589493515689410589310825797318783224469439454271607195895843716545471523966415747094643742990790441416849430114381412755223381589379528902781020631917309040695587952204739420958948594535391360445296087095372042979977785627896289442313610961657204131087915040113467388536094984787826436904643871840827836900954860028204405968062768914808577993963105653987685524796744013426946643739551738520277551933046849479839636899139304675212622400502636290739702373998693763454431040787004051966175941816436437561192015773792370131353973464680821414386065168252412985393497830740871378894194222755356883884002870356728554380018826876484181522541965654530716140920560393264984415878176769621095174686999814382921257276700248241254801603354702621223775083991918583422190129597890708005624413842615940997997098002084928040134876105122423654278525592161469928524468116052312009035555458077755390083857747770737548861131467099409940321556397199950186467549425312061302803615883514814138061963012552861463438726474687137979158432217590029403177577178251948678890935374001492505268438824887178379333160016806157910725525174427807746577461884145609430419622518966157245942412894847920712171028447494321033444758200714807041511143986813203837175309918062009063132315686824837121337727723634535839469361585469744582325687393276600211084589132547223204967030163921561328598986103680338413214995449826529320802197574225223896951360281175564554222333460294533469528792711269103956283625122654332653440383124261902821487806952103625100717528494659555289348338027415429642007877549956302843833361790708423508718804788561191438580443912378211825715555719557731378109328016443795997951947017415873595986819578892982097030936752611570591153779088467841734330794312599654404160217140614460411403059975801975635841499131190184184842337777553800582086595109510842056355728657083923294434697827058335253149509049063161082344005662427589765932397508006803291173089637635234224908264416827436122946110630728239859306202743442022819022095703111212753143648185353801209936135634810412491762900761890051167949688758569769929939680916247736000164984422802322109717919383550771148493162462597837079824994308929527411960948380347967970647038181177238971520435058146761452622378747842242398021808030557439606678499033060317372427651716378061544925744644534941028583720082548064933709438780809103313599819861208518317031038999529082028421303858415342320656596191568176220412539319303552745635568997118386260185285015055815814672354063355685938717340788844664842581521285722271582458945147103795424187152289208555157462659109931770968816617252669135947913279206565338417889959111803206411027947187359011529382604007568703504382509695288498417755110204827862647381471232304622496474342053198650343238880444413979130812484228787123438679626472638260724894343516813495393372660166998987595929306086707183411035561917456346455642601835378792235864145097394505074251055053654854889805232982618499804809075349388201254928393539590037266757463711516301633331707774961524358165988641948535849218651202070276094032810430932172765599481514556120774758925385938666217908230660677222822315393160967074516830336006488652856923601024546277382538167338799349372945380490883149861365240409421117870054785333792495605388616299382102642592495954550985438591431602865759456856480283294949450885452512597237541919019432386360215956864843195419819419607284731490734645229904194373039276115714319859422320787463672999601921764738483152633140996069674171097530456002152511767277167732628194776186451662605744618703042754408432754904369236645499396992084408764695604355640288339068376963106104205567415801616296429661151009218561401396833748307243736193882671748323732860079847407014673593372255446905463618636131033621789504630284064363971660799594194718611887290937705397128232824492725488565880748690272740853484084572104110221427162417950276984409061018035025905158357733543295979514953071889159217834125169997803939954003287983738216443933916778453022798285575806316009752696079482684445765861195267676325441363770255224121706113253830961709847355145971656871650730093644985774420516759034935665792110562514081799540269266299956272232682239266061812222745295320247913456865343681025633687245402115621927636524700491563591411535670343675203795839542948860682114521993036815449790489368293720855489964347116694923438798466955845443910564431972278336603689323044146911447309797875559008897850028557308495480211362262834189788705675359623685675957469829000895543681617245541808652985762903068137766377684338536113785278936883284265807850864210275384567854886418856834088417777778004893211041643195439239631579582829230456931472374908776555399440624365457849047932067079103702529529185640141597054523211047095300592643823675275161406042783974397351527210291021689339500716872831032453386395540291966799911786137583264420059960248072788919183727082901759642819145055740913604805919448292715525742377428169595439153928750699049552068819032825479839210693437665885565563139998258593397455822187141406419983780203263462272237888265161914987162286888870412845448786388852523690348627878083789553276368742750091101356307119043812171582018431611908322817132440235031836368621272474610426056955985899271205556090774844177276070767606703174451280534203638747055610725943533756779168722886501649226908312340857924036844169740835133381978591058959292538762941183263888378214795223294022344104429717599483525800428247839454281720746846305921735558228136678959621414027181847413123092083661797344621115736279162767655033396577527170095555833509648072015069742915779701310879662325251271352530219895031980111217136790104844447949170447892474675256509904013585875367043028482210947539179260328956955859177824194318624895445210444971054637834246570908812968536598838917406345034046270760143274737939833886128000367646100895617081500104052571450138975046219355067080692219449124140401274053895453277682000144331586642465050797404511382951134733694957954328873915335957728395646669810531164695504042383685959009852489275226790847773399903359790851603957653235981157131712491218889176860143505974366191509290673539071670069192079973525299355526272522851329496246197766825030055910477123312539360766232677074626671734873305464257038738820333120419448517642044361130700652777026099863212018861325633767530610838099082915525294412407690160149349447985675509271385770576000432346072365594020934256852264418403681950779824527101652525597329502844359219968971476989164320104357691452123434796956318329822407041413983455771613936790836867001489638194883941268366627471198639278619365785923387222330008555870353211389390108680709047361234077801545763377791814287828654562503475331443448009177371833946919332645621029223312365797341936168330342622514881421436766208487582960527338368319917645831707130096684250802572468248292876001265644797343432409437742792474772383156082454596764826186036904071488111137584775229811052878380573017236152722072201996006754749679757101476536226221443309023857588563025497010699514122367010731507343127330484968623885277581541075673296280985931793066327366092092570804860586927463152619585284132643861625219094750255962781652396450586051310974498587468710114133563400729267380569223575289004007824744035308909754906307302216939930160994130805826144216708021761940737908318095458313293164753305321967059429529672097631535468937758280973212654829185561979531857454450413909564744106900731360594499739887648899199949700673761809157484438445811791452445064002807072058906363642024659663911115778086332229087290798895644070920088240296553418155645139353046966805252548561556643676052158858987346301806035501380902862935596476546919411288397404612103665861798724997074795303611955056562029376937591460912662605802892837129944083964575390918723648034910484147432763906081415406674324388568012634413356577564862066230716497198720827117533365280654857410367196611743716260499563555620737387637192912898702682653781106416956485450338550487934959412081952274729414324292528796693305465301473095143681450956529645672041417313295779766239020362720874982520558219067787013095794917728261421085995449408413656039277663052282109789598090712787236134445033788213300011937956275594603952792605347960878602178568739908428633029405588666640986970040933101754280052967651007930590829646061246755654222795323866256317157639819950140125771565022442577725607713409803667594021392942097590543124957225561749770381265141057072355138011484481557292614391172208006479390603996475568815394806744849447708347914758760674714127453305788931438442220768486549881387446877058562622827401731107044513066100367745870018938158229499552513746701694715631894177712698973638051108761908674187082897622309413423058216385674677503135933259665912562335141146932605962129428331853620199147369115148408139796905382616120082725863922856729305971904286264292785347492048593223726992234883766239552502593313854565461648066614505221229996476251443153005708410914001903858777542190719419396685719630015894516365829149102702519173339044041879227187430707683143262038174363483909919281314445647007026594690196908386270899970105309424237796647597264652619485925294077877912019082776064780504416125332136443227194346474194080824882551675019220878248547036493084021642865628564056190825337741961930361503158469481267103662842411742853265561213152285621104792106391530318361035156051581423182716192223503976474527962745076879300376020939465448127879658000548422632013287089516977785289409952726558487103993826282280388898706772868202594446003966954062919398994319113393331473105438868550511225521881038677550366816715468345543023968609757655829205029092862638998727104798314498784551587525107990647382819103531783536687553600047783196480515769461536412592086644933124934302584472582338432393381866628916054423470042601135413577527144587161621906670875484326330432937622463330605277171688543360799303541130502669247003894990392728377298232688254494588542893568196632473613526146359607362557388373759016254119601451046116869177705735652016242496853245740963643347956162029257948741011833057193654329154805005373357470846145761758820334378186398765665399717717538902394938144381111831931141794700967482620844987547883529785841558457138427036437793721722031378249848713242146538170329045789999950648915344729594659397672259089930723557877909382079920000777499422707521689778838170433026914100803973058150955743773287674693938811876730233640558431165079769876546265920910090243312545636254654460297995194352672619562435498140362831132506085298162918676532007454931845606898343481070625101462893908517778486029077741377658248604667726762555141712502722055976572056567118404772355540711559755164071390964664061079539034317624521360090441913404518531490399047346551537745277130946058972482932702825211526398241520407698966150392293635416712266100758031780300811906772630182062196751069934460562944481236676136950198503600228837043704319282132434679357820936000636390071421074348254430121906238638826229124616885475697394528138266032441418210714488903540388188995657551120148406343558772579366972357319055039347500757160003580731870214040409299859671319018461151802335699192847055432891036285235737451267035581856794920990223261610251978669442423690645693937455817986331778380940636446328314187800040604547939889559715899345769037188992223179674109791560136422569880295225774948438917821894510137933648569081645511716541704848799058332829916457932167518746521487399882864891400954268395921892739853774759379108519009671375934834682253134667088880836548165390164634002322159606765374970775245049442937551563999129262786050934201591450413848523370933030946985715332319576401994851703720865026553926123010512577269711954099212566449444347135101612858420231893704668297323193653142311075537057636992421087166659567854368047240816219811881848615100223536306738838086763949691494559624721917265274601775451254261396516371301579735648968757241780566770075479731679360473319086055270132602164955446224193932770017722198746502315472016655999277034122303568041545902295482239964243948326516600718187157263609482606781557593518233665566688343621405928899948304419169444790857442800174784367011292636286454613191030790101792234300494059519303748613235251062777063071882179740059703519261234390696828145518468968400410972770591419332969399147623444974353316859124085796602552586611961473684223889208483929432039447339543527081364243403505745632706973832385096393230122342095717040579753282050834096668743990185428248982643581917950297870924992030583614051003093594280495115394482484800124166242659399240129723006635011666190980715668219129083200852617346617853339673886093560461979680903972900014173506359740331257084301516503418753146615323501198282387088741973670784351844008005662051263056139306862268522215616548714019881935596916872270819721843204837969975285069866145510546694029718875676546020435002434075863672843064324799487162055790943290209743236158112073261187655785673755749337895412428939727423275974840147695251180100066749781679052776346381162053039984432740227629626256906727926940509760969807850955282217615512364105691265704485942813258217608301318623145721866289272750506258775663708732229575420745236909576757347518891502482283763949983742869035597386690831696288191547693487924240964508708601506586562770177626576087983601635086205160437522926040260589502612063826442814876970621359777038310400036184775162851147430475367244063227535182076125581502581179549406192569225666355114696669560150338826863592394705614310119049014664219115817409238237308900692280626451529199027463589213422534675567019181037519767729185913509723177988408148364927204103271523153960895387903053140312049835032062010963355003284162772327547764016751438033846495836734617433920282068972048534557784283524112680171992943164035074645456288667862936653977769070156190569209239919507313398163632571567354699232043600310262163404044658423073412413660549319096161225537240887593456017470103386141746580135056272290842543751027432796466993225521605512498454246974539338631111135511509651911235546329538156064971404867131888618494008931378420207203493876286024453349354337768208052769092898194961008791273310499490039540826974964441704470827692715679348100374226806651127728226034418981773653434412737992407435701834814427186282096182685066649178075127394182416018069462112492595809886149506214695135171356895951004988141219396380246435012321288882944894086927399722185647588496958831846799912231487738570077198649837846379076096230905615394433313307984844395896873174403115501664897570735578154278047538007129126806162173303284472775705784568260998668728808031268536430919282938962341973361804553042172603682314197784981478860020588367284624665234394891407742210096379515365130463565133886767523235600940848997087326784279486909757640173416342723261711326851555413196063575952779661916215186165042091472722674581570350833559993300624664954362257920091151304406896907271490475851201975517118747771089095738765496265723608387858697346094404801793590913733509787219765815748321623984485302658819064111359388445059411928389277246969478864646266698526738079585295740769552829526007383921860123381999284249287475425642561633127072506626510444815903789891499995472490638977487671695406998532487834920649763483915770784769675629135858442066612521949325932260603106694973998130214054632483107593556782901378108287759971446674006788473739523237553459160082182284104279978130929137334181404480743354266570862648305379040109488045606053719478621924607588065482158999698927996604453977333883342295524349228705557137085370394486294989408032898191114776914559259515323698172172908474937740090906983096377802972284219934588503381296898722587993894757912437147583264840365458435286910426910736111622282495365161297401060819703327037280025646198613501747625615717244103873529089221130219318232567653587010196388843599137911653186326789370798211703312977862623833284416138185042514203705503149566964217409026513496590914716480284679478363194629802024806035098003802951086510058885498111267117423010155833493054713152644854174624978560802776454174340138891804362474454223749925050073874018970938631653169395539358041216187254965240072014639922023501075309550431096229370394169057032227917474820087292253234309655646053720056105835194869986541173117833011642342418114734657027846991381135185053650452838621710805179452822910804224741693975459690560150932382993783085590549844125593662639406095773728740902364414703377188650373196905966726614380987085676091251704486768079524431155539384996057845731854090256663732818513967303623481819064149859163883012428799148013266346896717718252432895681467317327257530921945868148164069088103886739827701635996713363598909453640502292028138711797177441856724756103734541586343445266216479904651313600306777189852118018038571934381288776809245375975324247522672844552993035696535626646652721147835854628453425098909744333869179522883916824982891312923113760210345400195270719750425812027521690318439111242080966334232743067495708242532532551315135207921832491291618189174281854882160077602777728393584020261240203820218663874006224041547235307018417702665085846467522688597229137441452275604225872455252149348526018425746163910917200178258077517266173470695272173686729809792652586223269672648003627349020792181581548813335524191595722891512164492970363695233194489613646581762395803533326134075406854084612891941376345249182338816659903889824456962404740527080734143637835327758757502416819745219386442679994098951382691727989549972962645215616472734829359667931698060440289009360698558381526665235505088802172804497836270498226532570822782933813858804648585675059214960087171444013790608273023515642754286518121622636546751910479175279594003786506251430041125708746944145897636862989157974718243917018190509261437276586362466895493695508727332612494267415689261566455008846023007560003257434888358794030272165169039845898035394416705898632888260960937351158500328621314059436747818853336034030474061543390789632274001269012002760282676624478720064400097380690948220622392089997706258328999563842755354129113719493355291120669668226288493980555473246675183574442207517807578157273884187457578665752466574266479314192955813082733405869570901058902543708739756747680517087062930953994785222220693194994133165912980500444508986287770016138953493968151976748333276356710922681679849975873333489515035290994160717706404072333271427459208937937006689149080077794215047755045881086812296190645460712357247877566025065338225035740924732813895343670949385952541202007950716071276242727159924815021272997988342543109761900576023435362584493470422863241328904749944966356137267084092096402213230665103417181735179229540513441797281538773133976714965352624029386587698996495007924465657383962613893721855755291637604206479434483772772491767304019678623934496666164338436198914104498758610056131348240674646856979078531612120005242411529236678690567344746527882329896264390804431249701994337155864266895169241143839168771843673946104811456436254418146400891672422584873278936862294349018634875196623364831016840788103804125223396933569756081751993946181820877211597393863527727785335959526741912873912748135522773700223820313381347883257660945604565053367382308801041128513020652798446121165177196276254449886126929749902516329289647994534877145870574476954362085756950539901826373742309762099206248368895780408178518870256920460866051218638620191132190698316445337097170068723017583481903737345331859297437089091474467772278624420884365049017782682328619653194166665346066737379004867872453509609962211146719710066143160518053898067927569228421751606400498544932892378050722612697474142077472773144534615843415835101026933209912229594000689521563334835950395554843835017253822000550842642177154582374570470442618935783579033495540307451249021813431256071722510484689145241771905585809921945986470401787000389397927484200820438400455935501556059149484603715135167201237263579366492740649435307491089302145611855007128141494033471246519347647713091873518140888210762501965220017272280185228711705616161264911973276786023838874360059577114023516315131008895661686298444007181198043786374671772167849825378904193610375797446506805497175103858292355070431197685822918847635144182815699052525632477587331308266078209022483554827861157879131543151680562451190464129058236620416498507819655652135619532601932536620207051756855733144566264631807676450983803629754698020793205595530329462569987924176573257039482526790756396926180015630568890889219591357220342013548541375320375677165649007525451995333237832907907201700171789274085545093260100750541479268269430460975256917652605391871381397122346110318721793042924610590044544197658731326441756219179397587553570277941463284475867843239739896221751777432908539526647323278603145155046760111050548278444349366697296888237183838890804483067130340404848098370804892612292855219319444689235355382294030700641676862502930488028252970350431895147150123755059561423636916141495576712807296780136973175592282039857001980795069463779580944320617969988790535267798941356653480419720943708216641156193387620624123324818228404639584365714082753100729089845732163099933675330097100171143510554506721438255326346964898618864269787203816121140533713353976277833594732741223160514121587040769541527508883414375348058608611405668035386050738772014851296252230811210243105705986967910518986456907829326075538318068393750501251676444470630719029083695383550995406995250332233623400939210086999096218445410014831408925842240524420989068797078226184139877647826323107477720883549048193291487361085240230903183095307799901666126463211413884590043405198649098759750612919874855362213176320173041173775720198108561217936613305741333054265143562208169420170190904551201083531166072225219938120494799709028442195588025135800042570754602940367413027987784667180868100792508342535438988960580749430713555692351562416212770856438963272261506364664544270900237937042190260632321633685769535850433265080010416080650633606600643086687173834497549799322674283662048753137472827423703889704202268031270094495849415321955829620124833027446196192637742316202498759707421105809116340485665630218555125454581275146760070529076519922486790432690293343497250393812972118164625574098430665329412409730051094742119016391263280833130509682730757669137544531308433524883605826843028441372337382415766882982273385611924405737546300749744725755757730573119737355340171010544535135908423955808954986866982643683084846001250528723301152554605663368665742542812612557292864591973325843430019445414724630137095456351541849583381057209641992420688362660752448798997123291971309937882517713688854492083785446307327003521550644671293445141442235220698588057718435111886717545362238392608310550472256407412487493545003528675400666991528914286953312362956954793657796492189604713531525383059960350337539018614613186285739485398771959588206240421790360805551136049506292579849486957704239488640495745322478268950781771927062778209655677470673948894640185337584272438659920278959979726544795053088902310582238989342153680238127876326637522632015556368153173028484364188320134229423635982099609725111685107600209965723560312050084826807139730133227315046818638419908225961265118648233877951369321929738356869344445659419012885785460749103238549469701433980306376668173204923535019709382703342966418422483265704387637893063068230992685108568432706792916967549241089317407228812599010359281851168684910496374380738213877318994793486302946746571203130695218764099766416655206577919426842537398047139287772163042581526018389874060994347766380090874110931769892280693039250599479294583149554259410424793364566403591039940647647949190259082497824268225495052194237398204161169853647279881954948180936947086970754312020950449309434679391750647416725030889520545452774016157190734288704075987133357858981773928580983294573522050672257516334604295114892398325883646452317772705336316001217693971801736315106233056853573916637966209245705432511821739317865434491959064015000989293034585490421662025420188733337893425361040656787374968082122932822239893590506547701315111399404063028161221883110707547304703923301288891576758097736237758919407773967853522146000716274522204096629225737305703087626690261888871728104842303513703271733571437954253439013898551620598762601403307968298760240906068988345689720177432733037755390983509929723016487149168623834411925287017559741725518582811001867096861457123929358530246311459535567100374417488484499597752983984204379382988488128642156797231087474445787180552520510481854310378337442149128956360509666611592235809809851386699593791385456524363583814993625038315390503294091765772331910984706227231567966364660765181017618970135346720198508637308489244845105952240459462668346159475331800009826333436371209807819478950535320877595152345808169435320495570664421701902765617148047501398399506923706575280457595402227423420153174672637188294870149226452909987682568422847399836243457135803720603575539311009052469752194361288160514415395841162880486239539642658723396515072771439781088680740968166859623413190918343178409847104904107063993553332932915079686313900262019422224639509288627486058635882041135088689237917511810313949500888881778656706078226800321122223948336710657641660832090280807014355551899217559379749852537842775779706291754451335443415630019984066562626110325932375017194855087882111540427555807570810602180921053125884446786155393926388173558104153990664785411830827867811961264370866812310431622325784140776544984074026289517837343212034269993511616295011814508273198445903223861029258623008388894003476394549391443738377981533253945338098605610021711266035841880106687266203838653879765096558732744318905464902315174578046818520657529332212444096677733344837701780167767969446646569417456909016640981900865183881088789224549011697600001320834476422581417917271745134399843032686109825915089216330794004986948665566625513456689939919482044702450795820440450840178643838863751021858451746855985722499508348588473801341824312661444436982529130486163485711426600311817075199663932458123431808597051252877666742302772397166838797681585503668475620461231849807624104306524516315905569575707973259755857683872145746956775587314417046806791363228514523841080753004760105006436873310753232098910804254599416810840919013164798343148323857883279477990906785254638112325803135001722086657152300890762403283498237723236643995860761018495693971194637801483709153281316314801850850829993707606511058012557841939183563248088909029244914137192162946032902764115230487114832638748995517460622728395931272751161416958686835639616689923536996535166191506059567329838339365056129462131789605671151319265300911297790059054294688092294358134661316928280616680656880283468058753265289471695736860209321519040133911065615955535323954018121067171908756508907947768171843036655446842721213989780368859228409356153991319515415090877207033418582287869920565556980067318627496305841692970046963539409200749175284150708996767986773928383383854798879605171526362113686124600714478522527058586724602337619967753181606131093680798762051215108512491634773947455650381602313746690010504979977928164887403094943460661578282557633810466844850125549884766129215037288727163510913579731705533715979358617932859299279686144905336942318748660766930386872618436300428160047073740644126039528114948400439365754307155224102191321018666094579894713675992269886013419167251899854107224331893608474409001302280369149076825028186545985371425261257926440487653637656708682415722684091125058635894210777861628994605780762956220550244667811685244884699180858186463360177553007160941771330144173671732709571257095240156711755021960864233912609347481757644858280980873984469307117996048174850194618996075693607067115477915921952082775716781514523790885300683497928464394627481372619713129901330721714154137161285980606642174652132296671198187296500656862856431510021542702443844904005960561763614498580781630184234027987138138058527468068109131481657565543809437784531005152423036042750647774998001471454375173089845193782246020265185337496313593348007529186943771492414168558843854146423395120309436636452483133358972124799307163016771330641679721032131569027712145104487702683334671132094561667100168564134969372091275807657493992738818577927662978593386316810621530415949326214869317376197793537916596092079793765948580344695582480316792147081772938109489205859195612334366629178486700643070696979799467723635020775994114167065302117337839439289073105823025490695854363651055539771358642990271847834687202083081413626870185650082130256251993545150172099519977018002518689973854491990778914214652628062828772407495893877542945595086492204920042281891971920531536942286224178011181244683237271964933828321334857904978531809317284755566573445238904728316538274992061162106243083075739604483118866071468676163983582354768219997773194077631508743671628041121700101446923726570890649264722675945581759219010252098269059827146281882491140493956759024923832207183546948311571674941259769006439935532413504160927350825553814430241284826084152019089219304076224174225951975916241808828846319106728673299499256193455963744964736116068358543114491388116213895326873738192020228737008176422175632012983145832978452628899569464176829411790458489218769943519497667106793839674503989528803770326377050987197980318085963512827059136625870037786934156126388489607416055354212612906763314500548790118203893140900000149461497916183052417919571166034848444728529283585190371636893177607802612026416880440364329370779559827342720993158884134903203899436477595972614561976171277553608112835042845748624181458184824094727895219572785867300134502570529504058441495555152081153708993042119878841114603132960157223564903483171790095488851016595924004198146146540328087817888456913396703787772240998786881277220120030904842644743403843882406064781728288282436926014859252161659868927680174301095672036788730491887188365357467745065086910431291906630654160497937243022889427024442413273075490877307721807152653309925798552159635689366808131339198252334568100036141196314373637635318639160850510312468126147372687315744575930491113837798576965931596183029707152325886652525534838430677503401130909506344148683092851520783111768597058753244238671637058200121928812624130264919520001610777203039515047642198856440723937244381787710406862617400968135063064865976103422463099362238432255957802069370105811432016579622481749034344333497879215070838015319555245118001917258514135248965897142597405551427290032939464385379984211649867176445660104611845202794171556291105629844862840924105522960796448729404559582979925274631076764701075369542392312877384064895046554574481180822736041408253808294722578712308499748551826168966897227117145754393393948657004796014276586826670860253266286079545232631289263444843176254410348242334403244706634688664430106445118615852439514414690651503756707653100221089821453650266354131694752060642651913009577861845772422553783827037788777168944347308108127812241957541360322736705227350348994450375127979814595585724233738628375246113531458674074363598238833919881099224993254721245541418444354566733285844963157932761421407437607971941980799963440072789264830757355061608449537952735696512745568644655316385533250462364475442216289849195666787228100271528322534280323695711807137163524830789377253676374926322693892217125300042920264397364073915103732613442730964738580066648247010767518476788202025707921762068706074102723807995673357796120596156196962561124611507743880017168567554577221365908465921535975887389077305072305797173545287253452814955255068173509486618546479513378206073532337072542774806184908162263722272178018127964661071559401179284643279075589371365084744981193319679240935423096782313754160809523374662765970935168063533773836964255072582674050661863174742087886277359187244083405685734619844840869711148097174250735465097603752010985354951574742201436102548514941582734606955659852315256111389706890819314071886318477113055975361245623337753188245774947642197974546947467746430291016232211567246614934428400970022334504741435785244433251583015675688276145377106025510728985036528734500929360488914126327564799585900419760686255634922964363457296676992397337320964506642187240040107823847100862942304681504822903678029299314605855908312168414631919057599440808197826887286801033874462588017556243132895703903357703160943439691439368715063773802296838911916683481096521744493198822500051290801199008818767010928367933190059848049699776184680877165852737527233047313463706890511892300580722256602381394971796675476042944776295126793559251550191416253225726794120921459657256499462930935832903100271882818546146767749921187835462566783907913660221749908751352792427428524524289635346442144447782757970315839599530447099250514872265343991014855100546155757107836407291673127718883190650702007164456624329046566173682460535496378157144831033438077533766653316397468754688163803624974764371732360527338205056687442168096138975923519110989888336642061449753688269617499906334666693762475273928676772354935990279203762627072846800991068159942686250559912839078819219883166408587228156419447715340081353908445739134121802710248380425828864219646375630402463100675663750435828525541023005963871205302401045518575226763525344348999098166817184823907904613148844277212412525578388159780362837738943577486173595126132200239423518175257778788049896244573759403669431106864157613498383689114806728672625208150321757270901074425861983584363433927212209293113613733973925144473094255155684631810448839042789068047365588775788844211327053984621250531751769498842757766303495738191853317311362009119801502997266821156749363572326934524910367383633927887346374465311883981244839401731361359846203525335274640324430608373006628245267038528037534009360553471848772572593767607740091674237142732327375954645508778259493096015148844870113424152718477228223373816252769483443762911735379179304026937721575740988050299052343399508364460702769806922877814411270665265535325391631618533963102320925581414537522658039723505374969810381062044452911358742277898584313747678269933618680389788279768852418229616311402250993020924226288588362029593440683282779999035580603412363042754773433219857322579522357270634263754917919595098336003375137128613927607507558532695476986484933560511463803363725244496812180441131945988882482583699251970224526640012007823157646104432091301084728695435982210678420682679470899342324602387370588053734187201070241362649901880959035238727502604795824155421519637650024798544956989951500708450020696824484657738506857914181807866731023757514777314023409977259788602560099587782330600668266100921914908681314225985389851303744336372480176876791260363309697338878245214902075328958110343010658977748634713431382432352713368840342168306553759851224344273878564524789793695276961237187544063167696326428135287433345582504294556128408524574249086725529857608989333945192127926415528300572306070941427732551496252263876647558450048327944635858659251413374881883369138920676701438171560005447006561301285044308084722326701568694555700103155652726154926114591084084662812383260349125433414676028488685440672780491443939769101159618200234347809327997613371259237479112201466656667570808103957955060029718483243990425026481503715655003607944396882854191088677403466833714666013147942661536098586656957325564810843056402850138889995217029165346276060031255438720137382533673410962481870439499754850462580347598175955524135792530874260403702328739970025203968881910413976291830808827922583561203537396020262583803500866745272659454105421317592530290108825325191651196495517818037085451147282825077047438048877394662452250440486767934435118238251887835498827401121475405015910866106802843630766844171541691668485002562999639398045327855597845388282650587634157451860086754044204791511978650000720908627895159291144442663715197338366233446710146888833631438333181179798758146176717536428481223550653325060715221390091256057728757440551466827672585278862626728534552839738772421253839221888869716012028256392469033225703004001040028275832379313806142973388636440416658547486277770055301933957487834732935050453010790677099419057862777188027809077278937653376831765036138734351051021663740536979969145416729805930362075219890237602719797732572360283063650911519753525514832151555719834309765933489768051498130207153839385091650300405806680039307143345107693287211536916209407992675375499010544614238851806952411583839606492275716873641921505755105533471415995172875790085918301932182491969051321480763862525098302667413658867717641658611671398523994530650846357703190654810775385064043171185308096820171805310335276932629884012280647980305674931575115547175565327566690928779217556627117004417327856414744824611061059818713953028890047733954027097479020424156727735571447368799525796460260972574658793417127445011594840368340475999358283258986220571899650436012473944014767521097164338005798170791753583198575898316078417205404598848093015983726622482320854309902262630735650137318485629641656517793838842276305393533782399941606176308786857410808528755678990581646268643767289965517519884570276815481959988833408640665368472803196384589379405185346828141767061190958548528797664365972417694797644844620607916330607023084731839981265410341077603257909223601032148481298649683805333426270140950768321202574965350714603683950830075655701162314649191589893577839989810052428164329105313790828686250326907816357186514670362761077601040527607578087333149010804437250396323436714823831705753004223526321658043685491928972745175436749533346970475819077332544116608882800777979502227566852257112973077127530922383352594953608951176109193909606606352787171735437596385739084933499681543226404251323345315629925092804150717818893055608558153257954646040968226316475911545782311777627338717441203821911208927300180569790167732702743272402660566819038061433592775450076841423100767324386946510041879778947588805055905035773319640700451637214105989237512259755306874785923409701294157333011591803064553211508744699832623514372364411134741195571747758875075666701350786086675464726513777503210242383112521224585975959708136546034582315444709692769164432888416919184304934024937862420550661359773989506764961717367976582700348013639015498996695032746337273040444267224676310101881350370610142239909482882121480212268070934087613231750382192189190180958204427133364851642341838373637515704729676563215020475841998462743490019622248618103352696895198497771939698482219914973861804623230737470137936188793434101681877128158935260710281220762199069329995458050721842899555728957481915567802256967696588397162631156607639668896005542292882042571485482837813542449033089509350073875059432488169249588440906686315844516095214799034486632219585327913639473743884287531332948358263316473375211182374542765975830808146160748393366394771567013864675137375222725808139992266365033596985046585896742908108860255297159786180560450193073362699725999969021036511243707113733009464281871378236614211426826932765074802626318906299697213177796164599381289628908442296379650767974906361240497236979050331347097944662764441882437710581848263633635523659561976151726846081155977966942362386977422550251690157159963462671375877603978530391254895180170959324547810905945402826980987323805300395121066712825477939458045947739685533826387455075806078630845719827357585117143813909348646959991312407642937429689790073286443704361831297541020014382622519747438591279474175414247505739896455166267806828921429732670808208974825774751380882002959225066644720217330233592001252683111280181518908314974283429801575953626397308578649599463217911860820982671728148852760284543120163030344315083469854182872914937492777785615700376905011079189830353699250073311735067466843562766428812231759688208458668064383314820791476015614228215717327365767651404656414555464472818607420106323059250816796471245314366164978958417640358054406863212665543215358811796654950339033726486230298023744863979493247955721598041668025613003342320030952295238784593428351586839972499716908718089830755996824431295775545969011515327240276643635513072436421158275446555063395925059504229124971407387500583857319753134045323841683385977378368648173391452798120900502117159921718107081899204786304882494050184335943608236800166246392175253889476921024695521678915708922940896958564679261934421854186129407890435704620509906201457277428654036404320488731706701317072265746458210947980345352906575154334212879544941909151383805768930976725559141844683341655570187437549075318978404157553374261868426677061998355406669621293112995462437443513656864903151360053224220781983946181468723682579555466536674993694491905612493169977246288361173111281836951920318379557486393098208919164939815264414621011051451918249923529474447095200494059648669647307416046214233713337931094196073656958822757407759705560141626801661669631969022283812712996919972155870299707260615249013359469782747526374396082241183421190831136701336152018892739487059687593953903701237230696774833550109033402041561858872108779638448390990949171181136658258805576260515698188530683570505018093348251744894517580845751551977933468173766217152668370730862030728578085285193373047858334834488702858451784291679025809076253542875996663033882738690851728906258738253308392266459944164693951079348742093957342180101169008278994875623575746905747364884496429945083025166304610845514951227925733024998235103433701978442525857933495056625627992708056502442519483658360579642279754313565634969081822971102073827701168917860364979684432082962499096083043264408265476358549418677435932184369908570417343466910012724017884447131826631464645191775249530262889518645362786490246180890169546911407306290909453691681428868491770006170203841877315280457060911840090365286155599404868803760601582974194259675268723639418525035507208032377483247157223012855023399783095500683936662192516952076895135065241013054037668403897389473508120404940222133661212066717263415098669437048287537870819564951083400879149554689389639309711938054194734856484052559305337357202294613459200154506184932895110967935142114613471980775735720940882450372970836106452918868124652493518749916419162401611256744826150999893398198844998060605709966110349905315308042845004368761196604127454220287872173387848610056022570459849338705005071226771425944062385309198691396888262675609622654297426328976283723198816723603798555680025117041137878188726695885163308764299765956524139639236651699641376746879774577268039733730439770936680026240692926754826168650547207907861831329775343767429465294100489235292680511774841856011632616773715510248283218565086334671117317824551494432531527650109337655738775503540075546871830628647906310913362004988537589160985551235620324150383350963977704575342401189425480749211131293331720086390714532626583634805283272336873509995422972266205034017793543732438597698092292893824161075409094448773478766806684408698006119623081083023466771046432692925690730844238373054798514141828749315449748609421165034973487546646438359905607586221101420631930437481483272273820513661425461708918662111041483736580660911041852358072763434932157253882820015977944483733339900072031138585626145558868675635373207078911908698747760945030658810934014379721716636154744203198612995583676551693647754938885810733465842450381122115094822216543363000228419350130581443212292575533488906760750036254666562473031126751267197625840794196126696459519557948457565636689660527416327714272891827138741372880684448241741045247403604128506830345571094789436476625178888432750687381263181061912843484698092671813691451122569459167052583333325831156683657188964613328167999987098688328623640952126773538117778899224085212300473830680510312831138429507986576969098058424822745881488633122781364686489170307477439018987971776184107861198650471290807810981610086145576213974673102001429231775995343246292833134454325003629013575876586607238232943105857867208970226801198864466647144161489819916615910742217283198592466340429694533646561620893743626471123529073297607751968063919741321683273531935049188173258464099588416171202460745816048984778023765068293404424928385124187021538716249794838228812828144196017641129905561226533518486378824545810233258388027194306993388598408258354758332889301625270083008526220339391042975615275284339368313651668799139664959996659291815898186314273399571235780265523208889179328609549678081099867405265220648731313122977446133040505099858801596710683656864632248048613754494069203783382763399044650466641568039993924259527692330424678536611702889391256553660199176632797231602218183264093910611505477062303942052242694184929941679781460695520572577558707488761424981399327654650834636874923206398512035001763918063154510550592094576719830206002492641571050153265191383188067193034385763290163281744178547962645120333770040719508684582473940589808895724262940229009852831012764815152518607710708358854863972272891807221923417915568027926141917179690931184322999923238910056658424150789627207010439584571590328808151170458516024375097265628641511309430600846675470461622235220304451582720358786577556393179095838478136227812597148661766653320794098955732437504710434478228169662283949124223936647925863425884865140399154566795431298071422618871531582336260676914575953385948325680884967589724554557330762137498869671868913695792065129425717169221778143312896780871176747133033604301677523330335501525545583137673534502558380812707774152184383751222571501090150256851931219772114801296970629815020866705562140249556752721002524418601910528260004003411487656940262490896577768946570061739975153222615015864792037426673046782638789835182381144790833893986915130365163124793097417921571287246052034599219953139361061701098612015727072371035621406711634174665557426902270898052043553945931563398668064829351860572352081063236742965811772550026126677504628552299658440529288973116078510626510425285365652360385204822662543429315404380896254959499312908992975244234721833056350693823453048791052356521687463181398775270833027932400207564225717915010302751889471888299598693845768697520122268673762295338319536321452455109051812963100633839464366137001524872807918734428312320707915122032008876618570468878392561709510741662981578238228673612327927989374060345902160580965768967209402655235569666068372503562172444791386539294367831084998238822597612984251970531713779102422904891692534356697859395177849566527128540129436910865105407312859820111896557753146031407000382653726656103925846342263035093749569864866012886974793417711104913607495951449845407351342456698959425104660200775954452579808762743131039238621630712608347249167442344513001748542876436103749237298179843439454195754610808831601259918456193706050777377576216018699335854999727319626986417480025512852159268854825157417072224715415108956004855237880777686731453269233860411016153497340881397924393996370467077354806288992516195464511797954548472290558674203419775989326280973929581326881967423097594587289882679722973685404162097887484169406808496200866695262197224071697967105033629649240449146485421899747593837852950343029753921008330527708612741225094647632479914075400795159331610257482251634479536748645554079011962811367087407695735808048119041131557627485984374089353391533709028220558120725416715029336682237255609841141782361398692392648871655062487421170764659008004618363583325939116194709023084082084460393152104970479894411082153013705639387211773931330562241453893795021701560035759875637133071239886703169413469485002059589579884630482380416168286010106225668380962321750579657001064315094955137794077873886442411665552979408562166281562667398856223240295547565488902686621751808865823731535438888047913067767229971087836700330892877684855071024004075553102210146372340420301473985103273597271067196507978495021488364490653730050468402871969962956937676557539171237525081915007460088465665394599545993998752874561704535587235319956461075516589761326827759790898205238113229767168761124525427031785326352816163163927930401728331251179004258384072451416720025916875168019251931939460033477422274361333158151080972063114906806305709872611251295249576945309414989429349707926818781218730214240221005296587565551970917681771856299031896628901462530238648057110795257258869154302187809902104608816431529010390053252606172824093285280827789950059989548568521391332005344679041764400645117320813206702507161373026934592554291601313855136776204581968308343629729136178806009654553919338416683545870221521664657995805486169145905842579903268861057372949993339351845608724713845899291928650638956834104630561887620805655390246805333214527050117623151685975706309299623669227903859237566884300641684364828452397386746513672673157441950588035351975035796641274956857754715010884428218190872585963697944884799581212018869793259672260756211136412571672586170603842551775793547432312471403643524845934679722949569021528361393505669509821558649320363267692274867308135713531809681513333173114019086849875025409485844520712377759456490542119462994903945105782750759692071828728919352838955807977859025770353013958689229535600547926320444778001098006905913020192506941383043014955817191232208044558508350536613223105912704010596049010321248113950587654659530141662399863545145881426250395390384088864362069011996976120598167269360814005778633786525795551678316916321458835839466728600153871404439674762389613092286182510818408011898902393403680274641688066893884810309675725153058229699958455016547767109096780696687681560826265648345148420781875432391909289310843345087674092980192861755852960955146152686825643898698355002607913062449015115713814419833395569482883189970024201022955915770430457307508767133913623746440644791566240540447629660588208678555110933645803293585851995778761362968802295821260906559595112710684430282030883099889845387121001134995494625555925817881189591298766002442371357977500717229129974877580015962249318421172002834336402616232495675173832638719583021754751881663345681806957307261169189348652304475284520128978800170701810072679893610214094513692627898214961294383031930517920825779743267814650918555409533639140889918816069970094833001339949986167568538147403429078056411983857893054673094914389012531632621404254005931428320773933766827287789689953559956087371620521392507441188830386411861016870171452543609270614534124206323636123355880505827538359629524885140349973245827806841690276092755889027620777227996276954571418717486699535848120309319726425247777603619884154743985324484112451052252567083613333509887574062530965969490369842962745756096833794019129296535297842208859939339763820368666411864345463065065683026295355461012503297899825309751762575508061031003067588162121181267270804936418893324369663056607977538610239050599003858036176090792324647819769298093023273331342437160124840996501212374739169691702434120598399066050495208738568165974528546533316134519778180112384958091751783789506559675144385389537011194284308752376353338220869750114076534782947015696475033066737486919702759852227525302375733435705615916110398496739546277077154475404523165632279281205460705573663267927013188578611395558756141751287763916345715380115646028477097755592329864855138388938519517056711823531989504104537154147579092469335010540051445231939334633109151111641923325148137228832488735478604882379727776210146868355156788293330866400266729397978102393215637074714867623022692930484159804779376842320432409504582480612758016110441688429026037301793779925022550893822242544897476256764685349137000185835354643499632625029198753844668897888267186304512663391900552866583480644392322625759108326380217097486277447649843664773309761300626575599667891061039629685432676373780765502898312277548849172797409213337339729284352460200085675692764593923277646289420758327840296389696204113810482070205428513593444018909661136500533232117515337410134907925002169102738307658816140936593598628226318014677321007056725949189787987254618978219513242432403981958222798913031619403807856770287696807329079120675342154714134312964205706583083327243598641742727013431926865172908699214661635251265056544117004206691146480918406752546446440683626514597652663845375045411453325288445497971803631688655428543371342864243647526651480144828803738581477636155347986946181667383202057860456350157781572604298837934360748026249190644693455691441068780863113722346473713308129591899119973118110948697372877980771346301481404920314799762990263852397719573786075434630721035088048984136384177333449229732542541148209302272223066185889406445997696020716964730395218721857290122863500593673313190899869385031229177205210096590867401168598242311805025677529062597362810614642572909788942388209354047286477754633902126949988707576207272689996927476647210933826446654501270171381555939954857344296346580720266963237731322419782500048938784738946862377847373695791770965246907681594485313170542491405357257595732960970737499744961067165006304811390409323460140192554071838235866644361002549600022829832025282479473728432238490759849926922677725092213606489125846791968464396079506250570841129422876585805300173704300776559367583570823785693673664052837216471242539370864142037294276925854110320198227964572385500100476028041533460988344735211697806870426229932310468916727995690918561391936133389892370422930116821526706965211697242735341235182615929186389798948529584065448815671002467253172419280687787983223951878841007558050201028998187973968247621604901456133560799016607646207502907939716277265990073747556434688336220239765545000990344322991602560234665437007164644602178664479093973064186971600441931576074614995638802079822853293005586088152435160588442471504710221537088944609655247354667907471197320366618383675474068166765650112900764666028085567526758299189099991623581084880419637457385499624789597788647218068404588447776631606019078193628185550329695578528889677958826424088516202030555558777869499222480032633219910164106411001249250976300631526058778422375439627506399556073504542631107376046876326187172558086531485256466944987862386160489148295170324560162271822020895535262305198421952907199101266501328751862757533973366034251077601388213897665366125686804731083815940673049378511045887092824385510224508631903185807033100701216087775592038082375068510817014928351196587216428414799350390852003318716949358493553002511402627894832152165989839431274082412438148768574288189671120839525979267139960191824739571911428834575984609591390530816170270899392708036443694571594086365520678507769305950014945131503175149307056427824731254305645158545375271158481435407855576072615279229939489758374459018258209587312182082437221910310232634350841961305553736735527017080495019882399471359918916405206420072244276531389614271489914221396665642595684624834483579954695308850617533573826445963569577564364706294103402649671345487996299595777793045784504269438661523581063454220938729086492798380271007878279307221881679017909394605368287759559219243277597396060486770033890528516787686046661014240497451228757149853839829203637972847976931068342686632476338248842132024696411221268339000558246707692087991077117823978796042983266423495529529696164235426775663827973128483103713133106212177911111328811801133156353888679178598405303461696393071310132355462194821196743988944118243848720549469496365936179324658397739628043571475581075585386074257226348448125515032366809410075636648743572340737919338805664936169588316232278534676270740777072161551723628737047090988342775464531202655460609448474122283362645276181800209482797248143305902427826059665896807888167163684138020081576944828660907418534211070942964608630427353782880385889622605779846969685984933989903757128406066362540135384353175098667515306671049070437728850003442353010556052314525136053749860727967430280438496445961217495003749475760342803799404511549652768787348610237512345687607578365729364685501905010392623948461398806095218585635318229167358569481343147074716447316256061241162150815099466599616726911188313248671730899210174990517234734906823411087213038157891197641532907843319258735469074801270416721146545079614534664427637487230786262211917488694203534328229700177725109349107559513731145172087574589423546328608554543616239281774165546655102533068787055773055298742185325547398009313335000016039186621366106886503627095651945312563426318819912688640944805594109617140427951514641030274875911205275611304088275136072163160181405916001463006815805863430868120294710541263613693756806630144480491055878468696331741629473617121032739400364348662263574033624404773398519605397191619535834339066375111589013594165880111353205971256099104207106737809934034652031237904800197225546058433496793721768921084400691513164923279277927634236181693656408211050963436471789199720898069620622117403039598567625504286453928224107048527615992874785776363189017461472829481493716825682312730481733078474734075982300831759727115950710884139112327198355740068003640468457664731005046772722306222987650277654770599579252256265885763992378615983734910841695618780955523580438854746307883678411881447638205579852733041620175531996983595609055732694059901824651273605732209447563168285545566375707681688581417216624728088524772983237421052541196140927718485309891607217982894198853174787667209819658949535620965484943367339810650912626381333757451570593726722870647274172146596069956536197914584468571798649984163203266975336577041734483224115103896018875100695665075013190487013323809949449628690423324788592638702187691501329973282114552817185415201459620237608970221086610520267063564929961700579344331935258870422083102018440508564799506189660551815215782059520450379820750953890822432577472535525378206824224043074312048594114265748820083090848377163446590427143559076864187858869397742300590645997690865436964890833705339060011581906912431986982630986963246981073718082000885739806101103342634084633576021230432966663031854106752741225158233428984019348615413333546741738584667432306967643280610488304450734448215949010109814672585907273297989938978117899402193095877489847966637495807662405498722663000011507368538333610139095679501022736112854279287342789092238890450890355723254133879001480489296579345676489485810155251116007419027535254115004460352987681231360971818579697720288496937717262484494769603717623091578645395522225414824114648960108547304915331322887317866285038847133976285403788627658707301744162258455423364589699785784011575138324557571972605275369792279108326294918470725215349467511616827745191847112705028097226661773614966249929706407025335664524023268874374718397627182362731228251804544090446256174240376365514572945357116255528842576905610931103372775538234279997716714358232313081810402140917189298740577767911596689974319149240601042394201349284472985089965595258089303352625256960488648981750051065194685259057579119604575483336671988341341128765436568203184892837523320951029613226898938320146644619898956906746123167667320626207355048597117956393955377756435246937780118911385928352089230293173615511262757441103927214374236845756033453450358091131407342207100340985473900752664054206289997773834560131777140023998071549994558313947164299546122598035524188739903485592608436350689695900390800873773332557584655168240308917665907164280593706956409954296466074129209750298461043203124090860877070021624927339961326742296038188689464194347122528998257099984346081846607909314478593510469413484850246228262553374916570317605090647604138998472519838191144867904603226077186181051023849962514831460266051250544498705261851693322726021946842173624145674216608564797439357667460281437279733504173263683804248919195870162572429361365361594128165447177856084689957333149727113455471916423378365583091710319147629100428276418701676563983339028809363958634632099128708839204685734819607280882351774342078501454843330949217833056594703956733129504430410561885905772276506096374618552689358098332479516245376182864363041210703382597396577322270084556830523082567258822053025716500714656603019854401656606084443848213658583979930489212179875689884327372304157885498834084256634985225023543679298962694153843146457518850240656348197990732108819207121436729501828019935859089272581032796184896692125144337406668240363550217367048069301029212497348753700736345495878680812788543762159405481107900673176477709789460190846768828999878060878215351962969672359934101753804220164250359596045098243261866598544712260715759841623857696984917390042306624688142374996439147133217416407172786491274867921090601227666383141193683330464421623640681455191765352171413582375628936515319444901804333472724621149135307163786654984275722689049500578454048275506334697190907631035308592283509733713759309602072375352346583420996268705088101932080314658879979169680500548812291019850924931480655123484937139163174368356549489085275702163926609086857947086129141609096619037670741270624643334930054490609905956040306240262071789444112887682488230012877234545059628652833361543652820347520054077642416070755923813664978404757197710170092170296588806230961643855112188209505156311465221577857784069477654215864040973638173508907395012631569302101456864523288887633635063474071230696038765897163386591916735390683955496583727299635535757544023664883229255659554485975149948462916531250471080345021181103616355643579935327301829255319614217114913584147011750140768672113861948764405895099575671410880645664431223191118020297814097449943311392388950491948030553585916312009711898247858663346825656623338547727187676407734216837931869984308230811770473361504545363087910323968767415577864036882753624501825360301433310295935129229269803812139200926718740374563493940327056365025337940149115856152424035658055260181533244558435987259184913206134068976123646683319301770664202737084858104503612780164049522622285348057434293260430132281095266466623872997751834236260949928198806919054887791179093080144012580441063245043226092647325868404057031110628152876662877885968561824487463152037451260413155387429143726046265462965305334453176630323251347788044059331691949619134569637427964566417199481337907355045906688645938934406951070546392879098400632200726735706470429418316983439539156964911723254418641591895353976181603219292319516461675478593318436584333686334938725995727289585518318370229181668482451078862946008903271483895148641510768331298943503466897309163437412691677991587887524897538637406120964170503528391847767115487299409286051333186045334625978013074617112679484567578589932072204617499668053993872611863708006922057711053571416977306015209326262943725910707168165467024908400883729531569043444751604749547696160632225243675058637739659259877563464816135209645185299039776579452591209386922551764480447915724428394419390649790358402567877603130822719347016174721734251582594815923023290032748855339975169547157696496065838055080444946208874806608518565148580298132227562313630182200005516389572415048633497242501115782103065325627030285220464413432310712397722378002539087373608917214624698494073764120141562150364482131810616758352231025732390185888666862454194554418739608095266334293151322871392196311683678763746931313722369878115158448298990200491613247552618157348335777581613770303330933710999506134622812413943083131533516572600004464727837477587529587103393720622583517803990862099137834848321172351228441616596664087532413850793287712594733006335152668981921232179252087586770379731544110353271084947613403365839093414558535935468637985048967668265780763471470289640266481485832787400246177022029755315201138337990601880729337293062341916475394367690593617985675131653173340324342785509744706267112442228910117049888434174195176119968603296045584875138733849693739742134474037350614721841587511512810815618806432295013972895282768278298729208904662338005307142688610775089157152296402147538833785418625093004578472069917110016075907843325816911758234584442139674074719449287013301875297563273571862713003636773242485494535208301453683347444823966213765824342302637597079468317318814261298456077582286290357061398881776761593198099846093943392290766824494336661206516590586832954581202324311857950268202722400045144757387010421414804819776506428636346223310013680198193163568460048465206249204083650542110113919156074608249045319930137937785985517650259259919537758877006579374513262699150282149251528134114094146811567482897060822331309496994421947103448502888626231288942792173192361491815179968802481814136966415928986886397630114848447491348680135970257486124971051153856900017476459084996804541296217474140846026337774217576098235952291683282578468117227961126978005195989489590111650304269841064906406390684104411969553638327804038709444246348249306591734436841212408643551159215319360972531729554840992593248966313779821980336280924631953572031988555493323235015513929528590825383198562442489909044006128499454360309189137764954434392518493291278493581638908160672750042312497918157031067584066427940109836657571759125142698774133137119199471323285078474415970842880538971352868107718387093651854739225925606094817554376416243882486250552913182491074004997471861934695057106013834639090726044305236715953230638855153601394679925925604884160285111952723491738630556963348044492106503896338743977271943790798857867670866618391193199218544571499109892255655083072521125668558965924913660989098568614130381104303629880530555869865918962387508667291846961815125011121341458996082978236678837365525474785389079766941295029623170356642674975986746939375966980184010166483814401969954803435104851333390667270370005874547545082900743558049413681785151143110981527173043902929448905508388017327951707574278829545499810305387668748896280414498737017576989773242253976456044521563345441809851261374290685169623317443785658193319440530374958526405483831539049764000915098935602444809512627035130611077480003548505641217739742972853147471823423714615459886919233553599414456571800202660645370795439942200135270531278734564666976468136198478296086874369194036503246622056447711221581446952612048761738410361943334089284102549533677313229077336349966045123164431595901223869036161537445915357916795256693291117303223823381969546894642520319926480958797538305066275141550309708209762134102237687921283995023129732915929570270283272546764178801630771150312649712564015661973053874151613541767310227056966995084540186090400434138584229294556092141315883628611529960524605466500188643807591331303344771770418552480243324762720987068760923695412694645073798937944047867684994959128234297115991168683495107925287870237077827110001003875505962685496206422147956945028277957620102055620329979909687726249694218179309023242566168574382996163627463662215965464758240696220789615801752667540220582248442992877147075851661281280946471540087055034917966301462208893176917711978751509302448915884393713292983393883120091134290919690316746444933924602750330540057247442219989784726719961785161327058101085833791722188653359161537894915813691490929165689188097258208456515202792922646136269503654266320143133967846626744762752549163207563177496896860098795047400363917287497788854704679759997069093468343382539764796127707429973272254088580029680149242433518702509765416250792433970311454627906818155869158227234969331915146208257030356174108761706826625596902674719276472958651465648004269939000749398371154065929989348060734284788654092694138693229984207541140680573008941915467434096496516463987273712941816814022123347788306129151356645348789107835347696228070073718214660281302775542335821521258803770213032575113881865775187446242804504580360902236652232279016047952837121162728453834669996861880184776598214635241189733277426111184734930743606508663145793990983779319330471888588916838247126011916941654246878582531520197680792998623140154828728238368209104775500824340822668370302688193822145733122646581504412171630956217071367722480341080693041559598708482512349571320311203605671734430576694557662785627724538468538390749221222018688462927940551517752317401730001698607393639474123121844937473077456949260067931367030999580146603949087120357192658928735769282623210718868654389031193659570397779204353672079905222717204027526197282701836974977930633463343174352218892035946102980040210823106152877318581246605241887609789784184422483596214664527438537125792649611022137186331902847931288167636328422725252268751923692070611177964771302898803523907712237603978680159875737904304469257695160888446253893561917589966344574515037431032965886711280435594015100683599991023193193987601563125089108117785683603463323268286476935079862071497006283526097586832742102643643311174391285094568263444196480884159151968781136124763267512382838306110480995013450388802751522583255152836606182014692200810269007593070642104374939295779140531681844774468986369169769657126453647620171492926106282135133272147962730260046102076484576876816602153872780281228922553378829965079348196937626260364986082059884850582167017139680114654528890932589054210470658370183723244664370215669893490898461778205742561463277301753921182034705674328689243005318810592685979962000469260640117158637351399173369326307172500312281013476967555958452005626157195240347126787080531784380221461225484115504620565223780819646252418510891619580333354403247678029800189879955840946855192986262456053078840288979506638760948470299403124906584880755398041763247771900129942200011989688278707544534924627723713557524344344769097253865040559939507180888075308207358985418805208329742043178091896407050469278647099428895768805193150260992972405544487243007099247772216660480547096750292720102435348580106507865387881161959604837554032293602653028928054286397389993727247434787211465609446729844926614342587028873558965692101221551446066921589703176182314117418514213957608924546349652936763513153385667666943191161489790961760604404899165571267901968665115027591107614213636829825143004633212490881613818764719203729359426007045722178728762068607061700042699561368039821319861274896938286267351630074401699709433226519148859888271612706460899991894024184701135315195282173023862655230015017972992733069752301309880247807977212757778868823511592881398721138535748079401016668987663388781118664149408766895935367007290115225443957203671698218305987034487670398231356264013070470833988423029398391657943261134417025369831100476940504680295195427994295068260601508805439638108990222524659054766424549664688075371296775005142509678622018788883358112982825570300710493140812312684731513891731484068492501326948760650045825510951612037996328391190540104615073298343466503593300902642541910044515948381138862596155439584310395621519206850794862456325098843049239100630713830885201027907810215084942479340609025324595983595231663311220594634027322623374589199722022818405984654935277301749207064036277508661952351818870570613225563433202263931689928626748959707714359262459573859666437422884721983251592666164151525086550066682918292754267477290308675652757610712201705482857438652701060971722749634835950377497869328280264184887387171537087724957461175161495351594235569948935313873378981229900636231753362781948825420788239133897054602024015806750998740486725883401866657347846650676776834623525203042645947035187959893108509453204089623590263302272301117454926957884397492556574398329680719779098738024402467702267594032223340116124030932321673227473957657797973796220403117409204674293864971994687611456634190785655977966837186704150166261015246948615359324596522810022068860107214294844205131852127750005182156026307397314159777531926521035238725670306384673758048997796125836928697927681731653286903477800492305014716648303448030424829306209117830887031753747151774763370159618746674855699879321841748809346112973347833410198352515336172270757376653902399020885746974974333261312378408814730210116693210382596294192630882344349428195263161906882610638056785672204402596348984834221273746711060447978604022565487158111079185383189928627682978159489579331005125452266324315336047300900762657153925502129306137829048910779973325440043883997705332128416031251141906494447956564566844276038699674451837630003946716983728082684608108706395237017135933347447365315247384274933051498151720431506690875367862561304482471571321771427257806317717081747919347903832135808357873014402379754566844567824029619382312248363087282892349012483489092381631533450581880974294962975263044901236546295069237215795267048003292204500866708427559422549266560260463982481433484722170146999725879536465117323608809580671725268681805101029441318463691912669704601823539138857962905004850029043303445517318605811152499730226407504259596806721734187317847160863656380281568507265726271614925641118131436602359636359686637909871396278897517831074198633677017558832476173856391642953298179871301944120390480119910688246195391895918091558817222330273262960982033104297303560315552323373678830973475458260004027754179050033928114370451787491082735773183166173422801140507281316399831975242386690500090197035573959829609467903250143928292148487114941648445690576752407734509963041841449519216671425314808917572293870834092506200022360729510087147323470953350287321471126871990736625550094317425719783415290925592560247872651445858840118164771247952421177259056357284286865572298722733254722583874128394033631080140849190147981288180739631657558440979822225507834335806397250226721495990357662589642479499261639837452700118484355309867633656318347609456514813020763456071516717383454288681668192885230309126548197426491118990513550787096516871151087789975194980513505631111629723408252708898985290794930089749536970755926317070672240667715556144676628469315673565344851611924414884439233953366928183811370745287702262826313630015036141472838847213876534432277256583246004360750403336792819193079769644482761411223897197809879532821876371380759594630754485375674955019140330282643238260381330829608493473238834888306460161398014880358831137870842804651814027263379856471621225428403097078941560912649927004360781829026134932397514660467017638325136922396686277651592672884032834581533570489715223345297805883842152731498980970482006532433494927189505327804197168716629566919135888528947891636984818583577873719599488397184484448251655505511322643283901518991962439171998721278282680737206577771935975754257783180726846192146336125138112694989482971124349210621326523149446647871904319114642519592530293941414295590155223049729327642497939360337696620392325199560922371930370179577134766069695855199315885490057859244549314794020412458452389301727644840491239336593538519796322786633220954539830198339469436339511908218087083028700751334201032974184484201335242287847039515052859701620316273397338660289148909019084856625297177679581009883318267207369440639974617002591264015387747949430229991211243264963961379096057945463220642448272456817611501848451103525612815939029178515139493433001283033361052387137110225382347608161353902655576587305212878481375256332669436976586745373678576855376704360964182869279104272665916433506931935120297373080739823114737011447448095015300889770528086148195471569330928394735459349575896282325023916538321723329013948004521567851468355033747428110328815585079661429205025897085987901489141658268887794389847484492927705963941193797177025703887061076496569896498279012815306537248110375972288833357001821175167830406254824979456172379981297591506813563018778720023767166763824174873084077668864229534066777120462669299805548478788921718655193831460992396973081567093299524307250567058677815258310262943640913598886868547760757854085504121851651594410228478376722899459654886901538895904802008233107311245081891573668200781890556742292760238041933437836334733499430533238623304369755172380745277919528107412986051062201136616056026791986090062087971391263651791779282119034701021845733469716845202027100804474568490563383342947279746472054296321550804733174902824968122689805258967273248564098613804516709224462883461620048466309754704368743251303802366612471100801748263884540582535182529363406424882812070014812226569390165994636208170901055669397186314952727799377390929126051144056156218898049256706011316866283126330661627632895773221643104656729728772339625056786491823040439733906841684363305594671922609624056291169842173388900511149846467880398813135242572315907926579663101321307257878497708806291558775918855966174407085870592823695987288763575330267932270548416278190777916020936532949795188883175463880389739368449305469842223656967402010503989955257426536371880857762125358876500186187989415899666008796982910863868986331470230794538457712551561594696571929440020144171346304378875660714978704637455811177044719978899912196945209254835427158827469057062260455249718825503523660909961185544015512896370629602746571405735922108570884883140003378731322905581254361405913369910227210854460708107506071724465744621471906861143369700624179618616819088776321618150906150192827485516880140160138166262606446652595567547651538543580430295402780278189009065491071174357509729354026415196436566670828575491967127846433821904062670030776820716720648928430086606236853455071816608616203924967102164474479691493016941735645781735198242947482192522567616272697446557707158918339006409797512221705661607219346430253834287733457140406486653044254261865753458387708446129563344577430396281860436206756793544094540425640847872934063745388733789054216499527991468990534518159523626273340027495315508960617467127660903280417895140853737000135943563215990963201865177061978710381875875642407299969482862467599415283519577667752385557180822811622968208458425071999086139916117555015214864854518950911900577051856726413487874107599609318828986823143910670717782210659445710908437670153471797959933555030075009407729176319117138006533842415767933120170235106616213102038308036435475969495866883658234902275608382296669512704711336626572868293714472931921125660205266591720896261287917729764568841011331379540283206179926248550973766759504746972850288347072751837652232589028937363659544208521353684811245796941331000140246942857709166180870963850604417816891990058907084145920124891982315920122127071677073058289521380500579536992848266086353731380524964691227775941536411166908414772706836559572935675528360567026983680960131814985599666665713539075246404625025018221796575742935459222258620024277238107846075814948281543993432341677225702783922330378673557316507799809866283377127309087342142069009969857446394752641192326686008766575928467326433124747303710308601435627923298685972457212514131502603113673255926948842170159763984417233363587112806047721819015176840265570674168407840799068750847904449135949806048512575676395672644002450348740512297485221952080482625515998977374332988257787248178540214261527484030755622915765561407934914359882919233227259212267003592644484451102813590523979417199505674734605405058119070207968829112839529094008092383738097854323476358302732788925783798098662397504683647288292442942577975520628771772376121596561874644684425131169926183643911468066314290649192071968514593532652370263110731695349627038602954103418734574717063801707308581642213749197785052911599508748577015684405592532408444197734662589020633267307922668360966205795142243532462621980184829160431395366089014096211857030858892038519387964431591429658294410872550226412946518083626925933980572574597711724439525013382972256201963246822446962447801602496654613887647181932356379475133805770115076722997365052340436217478608695750912720495245357147000170198628328047209177874275075879276129465877072004324777974542343905493594830864952249624779219467033014374925073162614204886799763306624098227982319632851724483614209667651364364532809497785520162217898572332911820633726171176289573927761410013510594483476118066551256015939127635792132660722646889240462444513872002935320178336128693908150791044391625866354703514768075672117154086587712369364751785684540762750941730265532780756121534456693503503813140631100261573126174650005809255752361058283859597326993623583461738494538810749258983367117992703646394364481585860031331682258805195145784143418798518494703593745403592774736239470264871299147311350487886280785917547146559192384901042739569883125983626581773003294256840921729042557054118971713066597812467258692562933313767133348146153100604793975101596241998433807988229421781040105122216293625543706168674328730198214284869552897541747981550261238850593873742663773845593248168629860497832180603181339814619816827961141129255870888124196707024732162622265830140285187559441602151383218309786358641180890663975369303415369261953845551649655273530274082376707213090093005094490345278938519084118047098778671224826491194819411121751779029514416165319909138246438430597798777686708684537207959228234708505203903487191789151505275745143621333945191155191447378568240061258215843345968923299797964467635836649770288781811158343166819290305333056229816669867875161900312191739583476505208230569110215903270840858620012735627329006431764289394386387194839439040471229000896433010984844954887011994347022397225348776287313533309560002026093115416998393429404070240625531884697715515416035691224573697588729257586368735721443185583897227198818909805904978059876003336835291354545085334344290691652033163415194477968956089757607809694177537213218565606277679659169282328819701395410316647606327450283531746167180129992264170293733861515538911994568072618489090179299929280534399401548088512312061488575831257058399864056024192630480419940989032232717235343311525302010056030717953116989877885876777231307994336553608474623915867536258153824961045714513286982221863066760218808773268384941548121997482916167410555612733786990805003799463310716728623829148595088874951044109896872642700325661740274465406275110828305128528953998408046216234914200709111260428869384529589091274513565709550146548155147880084503583535943421889058665616183394142389416635597785343242949971661355166588309128186125225388748854589766181103289250449182087797037405216141787556094964193525740679813141812866347805925808427470843987819877994467143959478015419019964655476367462760230896654113496123897857286060321210053063347550097386499434719932188275946253245886733988735179667280125562830490852051430774980632656561742244719392530650896141338981623753202766812406848510757125817124018248444960305982824674823439602725195224268989008375022306724144961310296951866126735430999038269360787608787623585400754162964736730221767375341242271036452841484473793417522671620011753480525758824766580458369010798103986341834612680590521084192501539302636069011284261022355424188326385398796797855093414871155774932390087866610765365923763548382490436729810319158744653598582556143661365589076825858269455225072813395949859653546510570741681548275032343046772888608049927231527934340373775822492540672733465399735096687223755961754445353104481986288841264460319538998761430142856828937907881850332299881183982363227492028952467417861059138264469647544342715820440092600906924613725093826671628088716271093958526393001599023960909819942965774380175343160427065998398598835097037626096356391003442248614839055448661059797729167229001777319941296392705797826011870003043603950132105043566813208760306380819373718579649447150523546801081676358265654467230029133066757374113348976779758085267063427380856610389440283935516255104355447685724751029681329566777003585645709942537482788737442225324324120958270113178738712411981007310248953961799230016255470050706386710306638503562996280487856137784148876192135934236178596238016908649512095531290236240107175563253251601891824948945296157083856793763595153280316278462913436286970833333125349103853916883262798015233617145490751892036111597602047645260764219083999794629421498595431991183340239645986612511862224249228897426336756430818163298407984732084733059858761210485633906099851615899719758389193092779419335676956125284475815603807222777511342453413228889308241902781982595426556976292399604181607821954199708938067092407361485507971491511491334648614301062849162742441750298425503561980041019880891061431354615181496419899236574050822191852199148397502034307325777825513610207954940466389544279370720315891180632776666162012908884694606402534205043805111016963858063107707099286310906347043747783910400231931167435658268600738822962387177099111093282914410665680286146626559036509731887438215171189689450181455725252504783313318046868948716881071615047077613175208958198978467896300982679439681311097804193045581757064068257368569106391939165494771266951026593246808872348343372950183712500841947648575411355667482600958883222332496987574907655965894226076816736944658760133444857513384070774485001273176691466553409076801352329002053867045139332982392017893364623598066618640986097282080080061419863961333692167717456894861995891600288676118458606845763855186359750870421064693328021926068829476286000723221451662337095642184823574316448700644057942414482584351421731662025495312482613419589162955459456727304214057873993497095815146961764406802426125424807100364044539386837569753107129707238859352998179622798407978207002290371421116335041158400733638091781797911701128602804747619439241005087172149745939598164974179104324545118254450664543531744904664127702198631261217625685603468625469937218103377353790134769376408837457646839192114762528070229710525523775167314483632513517034875208905851262090130577762511027301061144854200954590756002693543392951370221991770303808492573292426898636687896612583639506137064065095003753133641076122056624759468968414168140820570693684240073714889936038374969573030939716269086840080082294392806725612461653473266543621350002801696729989818649504869538984991557068934160821288981182283598222393029400260726944795971945447988122783523658120088097325406791559725967560689619182495724717696136209188344509538754807435335804656099504767016842707810062999082418497264738134490284405523859480728628147081318413205177158043740157096505813933080346645890204193397039980642927123068974514193094514874532812745462023466290383756642837107662627039242134457405167620445588346688637557967812103585758587306805117443299824049299200274036965157520481342079062236843843639022409502120681311949613719859923075972048293587361958976945168280744621486203792484500487334269675097290502068380616841295126255987974345450372482336508386486585855180856977597856179999950030459275367396072682919746641657054553271126303795812010984253607327368689839244605763800462248029668350584645441696542593776452547748864373587486506393399754645157278209865542563123980552600031460316373692204110921477669546573389872314690946308607446968166317137330616469070096836496623561029659580523764027927828992888004496516321365536649171732963404845960718739584238996388496184028315335250803250295500625367613170243429782769857398132399183047019118504952079912145075295088964631916072555348129120452453262509567436275256135652597642911321553279323104658223116121430875778442715222941129472885678411590909230397547519566372805260723201318789690629143593936648006346114584591962779086733200497824951011998321024873287420850009099504607443392520570620842891464837017442304381960976582369554675768852692370851791997564825986029602276896479102333385756114038973034096928949470951536646234732557350283158527339665772417122903301706396302167806081034378780077878551220122530899507120549950675140014833750195690338449662984589102830695272257122121144454274485896692911453590751700688295179172333889945095588221671214283924367559010991049038759443923077995473475323957496995148773305912321421629562823848010350523378109228462266312019145605826560850227431891812938985508343423277576687040056032291259819661951921823091294757502935835123747564296332501515617887784947731189201791854008293370679262333796963104147723156308729102432530246927006306364510795037134315383478928217997823869257279025395429740653911247128272672958490479811704123503887533476369105548702525772892782025869684490424782799809471276696175403131733321887135902972548180334314354546142609672234492255766031208278462604638955654935376813554346104151431220777580231139516398697484168364766436576893259933567562567414005085644418637881219055141122188501963679583009506794830659894489093976382121044829791103160755295671081718369574940218988975088149190491886806716254028067719344259071807967084492598559533115576791320591497805688095311591899345937107124938588325289953326018520530628040188782932462028119142280385793448883936894721520807555092060937411378815008317943520484968066212192948357315893042196037872140196993044047086095856361630944786630810507208198019454496698236422914380718059553647728193886768928313681867880681801518240644675529063690948827951416651592385517183142643299687902023386406262138093776796760396430895067613629467060637890505132905893655737360999501645288234783903307900015541152656403609930738416974750758294936165488143830095269537107762317473786898654629689460933783885813173179527589051171286192237446029986033541846846438816173137400820604439998245571602220129526996071199513460087267976180170223098949404100507497433451737609089042258164987519289668630826687226369886631472921395266096816800751918100405122511196919251951263408109469098180659525684970813054223124734688156370702716422573698929970476174080719994439270088736314858021906345247751645285614276784582997274648136030981417013703970634571993678866872354358500229672785739838924593369532199387450298499955077277961478854858266221991761960131192872044021945020693840606572882313190394188658851662092342728041057946570625299817105114533638417379422164833491282058151902055959268161329164393859488855382181088734617832157576687417665473905403360254325967432001537893017812830596622686369822598155216622118681314088434355037229998079238319086380889757823866274012399141191814479885658724447699500417736821334100909306035189960199791361201537972877836528726237080078495657795760215657350237682041858099001430880355601587322764969915622642948336592268274548897324209467343144463163129870135452517181691924123072803447389109004248650496603795704574589149271746282780078625801021279368019992961740689618547862159420916662791678895497720772962026451004064256548792320540188756541767513114332229046522511063970064646130376162193950676672900929682064240207602883133010556265123989539664637659399711766706548593814883791087544256949870491942479250148771592184556178921984632881834889646448038884285875851552008384805699408486148202020618489642572163305746832289206099310001848073927022103495705513998826224407091913970551587973548129260649253780620706386854942649012310576575551981568555813970125694721649341297286240572349819756113161416447676722087128889299812872956495865744922294484834213299464016503350698309853637450728049928060301867096244713779006337381899484388043760922961388298562502408521545585652539508213486595389389302681144954509088589667107506187305703486424434530436337679890493753525449955946381536395501374358849622286861516440640121795838247079469796428625324379331730696705007048583815294304879768077981667913173688259211235751985456734453332438354244484897885812867048100074203904598865718571622728412389477163866102110186306327676872375681832849811739791222348880862114364124001004661973901705070183992794195767072324960465047371650721357532957776298346112017232075174616118124123587717489788268355848976870229698570733942783023881198302207523455298686555330083288747933181476807057605371094269637609214818402146067061646263230653174892350644937683560090585297745939169559032768194761233955619169599560586816213172321460153199933227448226610865335656157699165241195265477894019607705650590053837729977789953327299156893422800261790089566098695824680986424283444711632520418350777546043652947052725510906459415933964076394384677354771277284290495000658049110832832059725002257751612829871981868203406409437414627744407016664630282821945768217356170812476668258054383610162042619862924563007210876429687271879604949438537039552457185186614639107415752259597165787191582435198070065686611522573667899300946512283264029541654412102062547179773230379929399646361466447048564161323172410346375695580609963474987694399877084581770872475342047076053675185651222300385744105575919296742974136221776648831482823105755448321273047313474848027462883722297647609820329038766235869870167520190408439324341942094688699220974119433438933985019803812709840926780184562917040047381573886708052118508085950128963172550057159199105892866487355445121149441936297606772220607193096460039592405733191855032390343101970921958174499035998751656199356952358085457028782852202970228091836606327640540167290601556440367756856527750850682908195125798064529408392447753336568520701911017368389025140057620948545446469342486290344786694177518011118174189391585814711093494092526503995915907596255891760834011471109761257744662939617459537576138738083841054786439210145379197264429615578867699595271344282499930325356105760060889415149647991068527681489070530519205141631260369837504819453308742761814641601731810262808079061719925933737884031357728433825428429825855694866156253717458018712264553619729129057199952302459451744594706291470552619817445187950319401843394670026224678442402821304716960733308461215309105837367188283262674203088847664780071464898554618146931999977799353998664191731806248341620898272960827425251408087381222424178187514433432181452841769157764483254012471676442481838938502697723203992926944831320087537114462148890570109078712871380759738658716947030471495391645288168089260084846449528594148589719543690203361493936154065440342418916856005886797722721737914808101732717216650079750810762769470487908120670446799624029775866412773705494650245590571939305087154412643489131672719329013292115390067022888724613777890600197546967865698166902998683601845747288704379154507348991978537224651387365552732121368656131159366392283948303628732238114268315191208447015653877567202171677528413871060215920942418049558382147664412138439122558139688595814530823276968634235979311022467494761723524091548116769293436399779074278940972443605011005162353091817484218117208089353284297900903458347034083952671214620117230354868067289040887592800396650303625214390530184637417408263218866189556588412238263861503794403753858488524850311070491363451294165531266948491847512058136924706177561203018666885367008039556012671974658892974608473674688609340915585904812595757093417179542821006299392240254023752059512781127812556792402406637413925244000678881536332702372821984489953516153890226544276879819265292711336476950669366705608899824825549993009383248466261682238316627488568579686925332786630941072420940300543522777866910423484307676994022098488089722180061570557454955263861198586620973911410235561001729007790319614996773187614322559165428755004161644813344549129641921318048096347029584095694310830608660530890720568792325444486274431222506752101053088503443846770371013341411257838813517153917096449269183458916992548049009573494934518236991641562478447274755483259237405297496981628466331323423637276169998329827694251849060717883930880291789394302478998689015637175194480282878888566230936169592806926877926846941429181706090045716974951314063006345758680316823349450508852331717094121978995327873106066794545502810337634824265152371011093888953922306734071618915602388545454425019644855396804436570458459501365457858740331715697726632331386909373532281265457540041570468321550297188006995978282491107114501403675309243567932541434888391428583157397358743540096402869974386793967351398336017944907856389067833212569916700255279588947382240488762639496938564545668693579287133581727462622422646219146594565846068365941878593133071794137602909635230201497234408067681038207631180511530096748834604012636256955617926589743255271331991775271461396731172655620114843988231647143419093880749358430976779531065802419443888999103357879739810934072489979745471274650671233087405546778811794853017257978601529670583569015755474669686602043503178635295900934988276216589186241748338237001421163255884983754505865755227202689766017184686344337103775030189445415713464831676469444761105406848266445799858044799793159598500673208609587352634956786958079077742362776154376787833278787592907298980206313630125059341045964627632852314510643829860576841057380007125341896073418328795349564795426006078781246022956839037147827355108856972598059932397403229375017985470818513733242561965521376680830859375188672555983654374400703306553991001647259778580625619138857323447643536699206956199238372632685019999364540740972229637327327047789000936713128014179229725588475252926780665487772329958096694327992165464330625743591617902911976989224038340118212808149320619944979103959263216664389595857400048387128143410635922597924792528126122780483641911206934307996933083749932440417006766189604371156906362331839733087669476805391627699132936994552614249148292255377547390432150942010221072341838523742603504105343259326368484607009208481079911712765102263269261058328351987429394555948644498355310952195827022020786339131620849036019901645704618603860801169092235230386169582095724336269537953757093970823525823063438412101000228413126618419727271799451988032048461005044280107893612419222076055165961746372175970691128234227236749224318337781927739626988933640631368727219905011494938709388815468156566113527810144496302583687213908616732152614043422416486469777152981602562954258086340321482928562090240524711925278481635531228270014703942061899584811267947954227815572311465949400186410086346229394852718584191254423661885949226632685719328084672536268576640700203817829658715348451114661057011042766741837895292567695390383445289323907715386145028592800388019226424633176151745392692952081970020120947681913194998174860644949535431583632124616029849835899891708474570857296510588369981427554678847135866581244911184357355496940004740847469523230483030837547714933406740455400260094408065041074546583141569373783405878246145087935988556111325744798878936902467065186178879959050177176605691325313084717269005633691362395665713142390874467159435238125172000836172579653991733508831773133202682567407704151433496059598383882542876485676693768114019959492823809405543107492600070506905074240899907848425451331391786961255817933861992199734461493704616686496704020386853631931899124105635372472487076984481958902388094067719526952231919839373017609134807587641921737560570209655466432915027243194498689902062230569306151699089974247711763375292583716803505031115231944057054026108135785412051219095460029372390345892335354157402028670050071527585023063384347428106052062664259270750446847242701636440822160307799255857542420270387699155489563976803675740811201092405838288627875249630903348892675617589068366289450863252542210158822141221380438164430252007548580327589385965671635258682525873837976524622446929968188257502890984545011587284286263081966277002978175065993680695845079297698076467750012741274914857312110273339935164964901344840866739399551254924423368640091034179440991409549860536982556789694308823423409704173379886672089151891970546136670659023914530091751686197735265445218358045476750568873889817493907736757582914890976002668068343653948360060483409706927046118597230084144531175772704839213835182143524439429750022855676384778099498484928724371526930361662322381528137461050404289290666770314555834495497262276136352354353428310155962742671098025883108030774713118240244526903845323877791681126458727698919939704039278569034672519100716808776036861789648994538631611531930026954527749558383520298423350877686820978839608396489726374835847902335024825346116503407937657552147656213953817372215005129872183153310122413442174203974150353887226744487805691000225926430032252280408755606916398266851596008834463520406149285873437239415179479790096239284958912144950961600674632867119374978418084314080424393342651451451936393395753448338399520348694233718607305597840463692262460387580380578586956427751033518405842455992443508240307180349108803309572769088923536737828189707005050489046606714665713077320634852195586052166742028489790231733990967031157989721947599244267794465563118965043789250576727256782662280260302697063176565322250940850246057884874185209669092417185896711293773716274807856676435074992675668867735965648302549093948788584815214675978061603764683256932985698077924326945275619778207548732798694022303313926046794330832904732597697530943081456649247012666716721311414224486847643232476855602564698050632982708703421589119460690203150860724933441266299111626703269136879305198496691656836157740015856795067315091533681296887572419210465116581894402843958132655089307316049038315588104961247520878190305742669478581955737270330039140773476838091675251113320444641201165346252553525899602644193649540913039903540393208714655839113985620982942938483758131091351542429635080513727741874830907525931290750175021239418971125654898919123755236040058289324162233453647903445988605351995027679838348385548619490685339720231627426349496294502388652419714014549785618104476516856797039767835825456185859958912364860658131867568547911544295593775704141429240095674274010511092876882285721371027120437196963871446481276022876525508235931182965496223212869799072481654194994612066856485496134614911103168890739404481290065558108340096202007135507379144846306076860639494164321969204527059731765578245610448974444416545971377787855732722161143334764150803580038842131656438917373142701775428438885231617116484254858057715558168054967993141049731677451318290335649603217559984784341816075881203931187714215067247607674045021624407196968043616474785318466117877520294461118742798973997751796616077786420169643012022008568619544685383973212016904992295361059415802887369637524716660177201587790706632135644890494931356409981303775800555869690145077648933812367667392516747378411373935473955211219214902484285267814922316874112015534955588383651366804287573055808609028003734711451899027284491419598630388147557678219263643525032725649165602893883166853865656467033898290502484370844069244600611445286284999754123462174932400465982284648077645220773580171510918469946301041002334186019081897021739619908002733183920171644264882043724255133117559244812122967839479611721615535974516249744511698093927074723547507860428830299149760013756181917557423699512745909271879888127535728345450916262162975407993519518599229175036813419082590609532780430775454043792927053865523319667775299813417067800314567560621255079206117107117958270007000399228812602490574578606748286597674546945709042138785107206485784498551673614348404286955244217594216559709725667793570251051653459568092531274737578171877063816169646845457748554626003937950502418550178251037430862966514197091564486750661650675678533276212651982663924557903963102004225587517058321551961277555766200337228814482700128070677344092619487213528704453968337242883939237284577223500768953474184210289575746825571534379083781976919140672423674322444302377853424397027816536270200367415727549681627227562146406900788174136980217620464204088473023118992636688515529456369663274624740938342091835735315181469463119595289083562730785373878082736582237840784001868044353560543124467237946062155253063416573014219175520483732622854830477886487037377125405931943914287197298355105920771378284814262973526210302166952581866098361223499392521818952032511863682413543178673631564975076716962545282860932393905287247958870926981729920498020421759581167451591449287447862709613739788156114525931982738623970885534884894921441844778209309634743834104068995401643777015744907610979100746154515356196035060392662716654306345609601052536705895586711590826140657645511239718866366487181645913064308306583929122454276815527522355889320653169697601881700707071194997510744559681526081782909197256912799226507143876073380131706164107419895568200068921862448725964766218602883742217475806312949488484593396624665258724819282720786954900080267381816172509622974040571299485382118212594445989412523521700164940795383537177348505401490228502121343453691295585411580252646206621928752055188779906490709304357858768326632111246008757882867412934552516044064103354508194272539773624749292467446983557918055097392140864395070566463044616068375209765042260952408729063124870790203834045090874819210053600586929350644877578142100422549425309096776039122347689671222400714095827417456177344399037813565855335636668063964599024266997261543310474975576146371323503570227185157492393505550758894621910312082252230367223293552358169405458572980248009317014896635309809381562408537371050916617964858259142092584283313000684048913120540928879509708443787659092682595159681567979660323608563099291241404315103847884478197231596961385358813248052063484468849311521897282529505409321077924182664637749345196149227639559607090593526369330566808869829709908634551863222007557139702682080612217595318495160636955120733266316349839734214662953591097374919614142996049093338846105146207732076799113421162543821532138584454350976647646361403126461352639035147003126628488554076424876099551573170766657769370371460492626649343109748757754538646243208290755671401134782112824050789857317581117992100006314273200105492886471876855086855250065460845306090234973811678793067481422885695460369536771576317325061937153699655888186420812824895735280346875066616806421224281521933655934840444939932248159166000708854022336379955779654598892484851540521170764287609984478993644759923038955795253377234898893914826266373194821182233457975382937757023351645108669856566495840411996709077840357749877721415218039155283062082531221986754431413159500356490898682865016736281149254283009342909933347251023037896050472162899438323348466227908454106796594947463034361139819093432571527412600105282920560005010788793107557825700212185180830408606241811341137928601910310323075612231468413220750668439505595983128747339737333553775910834935184451997994984664003302313993798717381449397436260773629466539218311807680797486637288051833479421878071450157662182185113077794994683130867461157590311625618448479994976276158191450154107041815493986878173514459741112787466097719431643128906871000986933042908318282708603681358061636504669929213359752050305060925087812566844317332192866665900828241731401082608250246052889765452448252637527851920906469749440404964217410550856691158350036054325115135758371611308431035022398417897007503117120660298141864190057852621945718304133361547871526284897388987074694254292883460765685437977123943768697165868567685739161991542020499199390764606009208200468869050110040312571410504123650714069310310514756308303284489775910408494155674061022899306148667366455512672873711589385557867927408421890660298837251383189338287029686510896221990582744016770609300075169755952680752841221097637317999297915498334651981117971497862134201080024315682115013421171836105168587097963189077358282123877174748089880925002560328212974114876734801444448122367094868829033544237414509115446689108007334665595330979973644661679432503911550877396077268144412054515239087018342131511335183598771512443270030477739322202895798240946834630244337859782459782712887240980011194817457412118673248206707453980575756532098478832078348549397961186599957470349489063193823846006286422511623554206586031519621061481034297567503814011633355559303484278174309410492598932879174591358497618705421526946485226587892089651235294542386716525812296606322235956451926271970139217030209025893365533203986984689438133207471643772388824673521938069235562171020760088052849610580311797833729050732591356532253512743956447314965297085725117815622102503234614406300953346019809634064625619653346274396352391497748153552167446917194365542607028856016908759082970584745449110034574839326129014856519086555695184706178977657098987097192859135966839000097056076451625979528419694321069004964031427549898175515122642950501933645949372830999191162488073587610735285164459432012824623631285371440514462314322860090404443605798590405250643038396666805999045663776977915623058943555927984897551324771202912146310012685012011337974661279653348002202610156843445776604873216369080444383685289349445849233180227589005141953408097522011639136398798669375987720325134423840281102237888653691596808749296715809048621470882808160383874672596511617446714794961722489411367226795840026003504339500092129614576889257462913028434109494389425386679607210795719890278280284916355847240792650891281082327479247761031110764916161624111983088793822618149832519908186527096007418408566935532028500234754021474957509532735801738043876409913947033993859676892225823496098384945519165919941574319622990125774745548186258543910705019505665409955117266501635317481360656278786585174044386448636230559461226278410103858436569526917292060028117847660799797116098539127888673158397845385587571643272009041138526070631225959828544622361458701072858421481506272779213171311703815646690350303480136200982275055891685466118214523206875878496622449603597059588666429401295795263836571695295904151489504185307147086163648990888513332466406137202002832730317328725675308446527135255011946970850763942836351664125588867974312388214416800411140773667739722605737227908967376204451976578900679742099801169479164694608413451206463581871840135169363196087183935372067257666978382913340993380470830998983085278264677645941219278879521484445588879622182557355499814597211041764564727038754695509279722297086611806026515943301582294169977229351276059394784030270121852119599763311030620452459479367876233718750818547738880912254307346699939483233117110027103914846430978605768901424011646600540581109559050748129703382701121873322732802257885656250480352148691625245208664842905491302939062504549929992917440488342906594214432954173096612034791761274634884638383785002795443896968042082772889941624264648969750492836846169273168352367238839467724794606936002747817033291768238161432933824436541702526951536525573865505273717709265643060076222228587384937248382281295005185198728127056551870712293455652163120115364798689554503922434237776361559828374701863076824042553224238648378431805408317137337996582246507507124888884350023614794981758872997331194187227756091151609591410559616898131009818639038950765627600202304746890219725780331609710407552677650220987337843328135282414957999260119452422360403451182729417118780581154915558643942994814034850960651251939056923344589272812236334888247971800483339759466222753401565563186208572536502605168423278631250700928435454091008753432794310089004559608264165012025322682800152502084566269960945335767366996876367866108831704611058940822221495548638573086434355517680603643301410388062327395045027834388218676736405055091885899368403442228851642989859907322755885761766337248624474546366439054179200032013689778098218587210721193081607250289993361992547682275959704611911844284729829092068312186713168191249801516860186804467426128437945440140843256234838834187166964783524842882485481498836181959761866131373815452151622843178251751418992986922212825012295833698558269945176930607493900258045661556896653036092503390944922200379958617887420016634479580610372226538933827871629943826147879709002891843486381936992609668070885876399644424091135122573141095312403884059686135461429136861153725703103347707325191090785020473614062922565825887153793109421968948381249961500469451326649294462365501943568727686001539134691636666143119204932968592145120032467089660480345812834040437709189360074013881118321741862667604261697954886401790515177991865798187039086260130920721045266951993555097807630805341654220196233258536508802170460830938729054743195788948837358222985915518067966412470324901333275481533249352973091624522614729457544231874647845398496318665456657001105092713693822627277338883236204575123155920332215136357603123505876709435003786788213449336188816979065117579619051403715044859572253182434183006236871518668476038758654041974256314053698270823713585082475696297942573945446021278579212152603907337650838626151834899922465862058643179496360187055935747981148643032523953668776121427981983651373091483074392922957314015693933048963926900902272880813855102045467419223721094462030180623459130075288911654739457123277517253839166688032466406001500915086650301308652706221142448007257488892518184659490233537193891454932302217829135843339125834936970274614461546181821117653183226402853027223511491535503438751967426560058635409347268016648297059613225388953277938989662826215874447617825267898737721194455030569003714007925876704131302062833166246608133021439380878417068345614449148512736834931500493944899938989803551346633455131778649993338082406970612190675003580612122960903379957237083337664060969804980205430533334823166573769969971639618485474446682641244319936883907442831771479063943520615569841665276453593303386539819232530162482544546187067177335857401019976546045216350019224162202408049185779015024734132130049185106989381895398145903098166952860336390855329990545164727476699105997573009595193156347486656049389469314088032753706655339808219924115824001707200648469123088574714074992589827329590126560200056722727297799722250183511070953427530683705199262552999663900402966461432084459713480376247344173656357951594482637174100602814788352101468837521009706463534338585001193417528016868070593546915162332878816552650372018922490925882465377494414446825435317347898035062062348673179240921693835001802350399895385277942291224595389378214526783119067229018001217302320927533824490549337320139646684911753186365150642108872131249134619533298465121596235422556463713742843593668076882153810294370972558232988674271382949069899517486795287419568951872889380422194201144913434364492291943766135311552354968216509419970634994566106601388942529477672069685395908438041105740913489244554745142104646730395483577201577458289070790612986594007721880226727263056027806223009621377661000202131469396114824011989960502834106328736257514398465055368868170466990833933383083761224439955638172304916464046433638438544088742308840619301091165207261563922416545714466535854462634267757095500905131282319421038394746794976728801985526353548926713588683022553514290553151407131269836363772905686119543009559567507993779265801847222347580818797877678328368270338887105281126756829182603830275413259835001752785809392200692506674927956799990264601432252128142355874836752067854633690343398173532159700964414215660283737889687092301651729096006759161744732170082864409679099803237719349023529509944954270085384311194697817353411160151252852462781085833059597606665780326410918128324499233012412024657132628760408519230036170470114782367969070798014219336792498084740792967431038893410161892809555517393525772744437692600013518853633743215731910822892447456858630389117420665756433819286282236969470786890935121805456826871693681394026839205636472627215654025003979391244918002876281653869721309027024110911438871628169737193727296634577385035939753322869589086013329576038029961538360110387506613464394170388238719437963495388397295100340246299290811529198762906052945927247412619633560285162071080820641497967369458426671329737305319277203160745863938715795262147142768543443523876253307394981419190256419612829309039862995890152365653368906226194974977799102113935672389092972711601044891523374654345971476097486288883275360602764462507032351338871713691661608155546071314268381619487701664012903343008611949525252570692321530372007598692152742139215933231229531459898320688027759063358052032578198213792310550622011348523045484904732694200397520537595065246071548232591301908309399351475716291924962481764977687744875377250343149973101456785214806625660877164728714671161739449893750042339793631811711035152882068904372103165973632948578258893900488443401353820577280680435073692481223870521652394567018172906551341642800801483464030869623754697759031000066272447318016613503313572950234352703735227987875711663049215122347073836160578984971579811301785385229540845277336399289088526777323810400738754642175491141293007031556989928588478859989480094827939151113787886171082723351299563693357132833813296452639697565742364196001760272554132766605394194789271707177256258007030587492699426068767238298726116872929977265398239429638091373963598823615846273440153688691903871753355554143546804000055316347849111664495128207966739396824853022169346013415357987332055458369028334733863467343288888752197816467049453080129270849846949826369683396060265961458236957216338781563822892815724526034576065438192922535663332877144484754594418990691431290308899524878525132703502121115133055838516398942989355573675585372181689749734949338064918055679251653649748298268116900908925593646019772856956279870973029571854192189802929216593717302277815355716843924598976821192738427651882698251373172158610714223869474321678421589491096143347250138525790868235830217621145005132360937855331792652374443176213674663975501081373910749680614047477027861840437898189525310441123058375519265548977424264575943918805934646583659665166815896439954250646302317409074839833618977351462350734015205875604525000130660609231890417401802532190847531445198256288869941278148143887384228440570961827053851563708934323602027986369829661477969388140074716946200074936278993934932221538477878352002463128949532395058321318536775327286633920087914935751872433738091608014414441078749036263382927744944933033355995161550344359445524806095536749442983872282884646243648877028608437745411030118075333315954685971710183724495255881249695782138150787357555223313371256769400991042455763672758285471907012283498606068496009877791930643998627058076545252741426594223987226671389181963117447681017506933559275814786394019302946380557395620045729552622551373845707010525159849331570072567788163045703220209435799460622162620457500136364268001547596955005603616216948529047495847143875812108920273495021480791804414197104047809196071426353051388099659751558170256061383752942535441754741526878342822660924373080501282536811750411790906645624474681973288879083075461198441886129467889324774152602836764737943223502287194152711886835150505199211963018659331976479823572430496898248146955259120588885124960954547817170591711206875564716354162891166294270612683227052204325477887380978245409763993719965511320105262883172084994866659068610070317821344194714160317038313666747198017500944637644717780285808901102988643497820928672610069379752510380670074919407450118272154501124106039401918281151157654595174450888675646960456081300101818272838780141011068057493647647923920421610984685689944789956280177655086257642085653174140175515996722446037690970069349654066412634956638782486419804317487081225104786826646939029716057504657493419246295851291356945094661835779094514673255995904972258899234954402745559202159047731394193433442473132696640368507836253482509626562118911961196022971885681613651184154090826376663342203610065209583700776295905178791017336768298289739839427733341892269510771779743934257900032562147452327219089894769345010472884967142592017757738103820112985070262226326058997644205098122382404444911312581791334011203674513788886940191331109361183644764381758693701160773331235524033549741228362929093336552773982812086878362431854966238822739962777049013797261744070123476237798296179668860680480279594625750402423967508308304329591060834274851030991791294035879901861635786243037991105839300234006645118514163053922923638960247485531197683361854492461202976827169763563656637836909155960989840276502161244539967840247329620744085415782193095579526225389615135444652922574769003565493916691964434562771759648925439783156777245719447436599435425758155173249586667965777692485673322668612131683602382241446308746946487364823177092951463323669265309882555275561370005108450238752474812008073731418813394669552105145667941245551272037178404516671650411740338526320206305465242517916021197830955685246988435777909717398863509211397451738416101487827683497592275329997937391076472218438118819807257036259679746523481287373826326388847325949442825995444895140053064324269330394975283458263906440729019742695858149737315295987617249202536555390572532901960007281799845746017775612267660435285452350514157504006081330067054786247332318292720938970711042550604054506058756085720177739414469602433653362385677353953940865796809305436360525291501799693361306519640640009033299211071798704378021944642082567484847902606991975508831412455803327439182476404211586860523354964204045750861898115333739408788123021383514850943108579983410756475948825384033573910025902974138206208783071164330382859975394466147962968348763203871951841082281023509021132476416230576648391524082469297023152186048141126481218995776142001830677264905887976027088898053014400877275734097867764525820597100371273018696470071325525949021901994272243116988773808002067365585936523847267038512888861547897425554183468384195504967176498034887911692897438156419157827695389077097446190684200105445738928669202247515512721115713437778816365552273424082865864848260919563261200849517559600287285012506321702902266288767962053799776455925206845271627546900754537617403040562927523724599366215086677787434871838303177598793179232850385907053216482785923921331853657733107798220923482679879186581302528937885296051664161291997137913177406108434682344205832103318215518175564541465652523870394000868842302932636803269241152603148809629259194680782916004920749457651328352433350296427614848319831598205836162431473144872940629997706411268668635408816620998253565053781710126208960965559234577438321653086188875633599167038713768572935263509036439212630251817190034084334509663860347233469942702808194787731826700889241755832512605085153745361765646884309898325224193570336716593331423214201733290729323278952471461631761309402133292758906813963438623950721651665149640199905668727631494161067217055225365858312252448177068901208113320370000763214092061950159316002898057595887481389401770347013394328441840306466542282976644961402985262840895971591002311870397372360876163658845877831935766966924475941428944439610984300161406947348440884116467867567857568521501821351916964692749541768381656253280219832702936008587057604025292633900704323339913560334117871726238789802435372221221681422767627382301276381380731763255747593344130132821486126261376857834959946220833593700577368897481681312564213991184351708952957969126373467774297297580586340028755889516452280047568473405303875858564418157097074577066684732128494595473152237395519458683268895533340776732852833669842215360925601467258875465347045141309550008715906250244793571930862090719485066683592562162809143060289997653878696828035419401388496713970942381742980513360651885037502612382831314067927674650257885917558548926708406933871016979809281021473447377139312074059608677925620333572822562606109846079796821208222344425461365068874188577898363453695028288770705781524709336904051521901626356818456155522173678126775160380269577672455059107899371325916462401097081405067005654479731612154514659730658566610121527320594265257051186738570213776605460115122881393268415104358594807468792926464541552617417439396356237551104258668121649724735894846519577530446729128756655021639201968893461037627416313476907683708482836359302506262025863145484166696492613126467106353333560956071108752801918673765267144640095002692506629925240601624368822062469189681344700200697564379861048335675062536479814370507920805168611675219141961423203832884641924028128028704740199374883407988178430261835102003814739482097043056002980893028984809489785065722240580885453875975102504619400600654428519662454581914753673126557307768323508115120753787124514676098997781599398600880632875946925048135470597281418234848614120789807964260810982515137431296111347839661380809582304772369974771146611569419462957989720175818853702474531139881022664454153927615866385591229308035211372458647121698069365443939498509006391683022456356189989318945780838667426224110501134464853815338732938642005778605004414226199685917002860189498534330154571528238642090155527669098141352711104024712961786444121931371541438883577882025896062598675670226183435471915259528255632589851137537532460637894798539677427167339632471944689597379311452263612099048954299112869400758080152226089589208151758697602160073425460662267313527971769514510079572606725596532332253457621052985155770817978832613588772540580782482667951598074673648460815512471495503580284648755872287245351376354600860443917069365170216100567634106415287526174831147878031567068675698038036958614585024638068669528295854003563913832496474162194710748570370954393245442404289955732812522838814655739373697181733938927458593802301170629978217341594625477246217331954751308402823626213351096885610855228380104681410357735387417091844055097144514693443338759367123536522887147785754922650645225562252789347159776326429578126535573848817251620772463500535504706705043602456020449982597785876483214197878770021229994032449372490735559807156696247571993765875943709594483636554326661029589124661066405651586719340751309945773119934294369024912012874155175911748180747098914427604640926138118280687006348349553501506619069397023730283211475716136100078622888456894820833672924670876115484302903090534987882020867919957943668741487371005024716758888723405400786608498546610967673799784502315557431627538374407279747098626305178402661599122413812754345645889235366259427560271473364467298474605401576449116053388329680812436931762542184277820095867601841256363350389884581704145730772192295600983274590499674275386249613129956379554080579554101825377713246737263827002616627557216528718021900434133856155590207431873040894605632792248915169903198867206129794211181943296441716586073284850287652969018821048951024670245478573408014117970514819337927525122968355081501949593847943066495685180456454257365241924382250139767140812427675722047420376861734416390465662805548838569760645403126310635672175259478552881243355762377803524325313504389479647255998334191016923081873097312255656055667649905358815755211131548374314331380205412619347681471153396263196378612572243296157357994895981171267434615487884487728857569741192838984709479039015021223578657522947700760165538463185234595636869119824887065546784367638898362964733222759198902692575591576854099706024404265153318720272156570546157111955966458244977444471945796176267649682291310061078433108279420014443213274694788280875904626716423002700610947001640759440224046806174911009233201805276781761381656618991866302240423510962139828274482452937196778974273680341625569956850572196088206976247353280217993298805814777420395214592185373462414059976811296252948627720173923743842140525805975525414094881611646658267457965958071823669025974981025647469665640769752540578276445312070324780379188867241727341293568695081115851558827461618256235346939603519512494664053438103021674453761331124454496829505939343531709799513751548751422965902008001734652804110446360733505329747887069045272097005850715295972789925349289644705927823421564407955708183481761934295022820417639129808739540538365616759227513048329037481419278831265205833173074838661652540308683954679186147222185368142869781677382194658013380496719716084260275092090232954525055924765231380367927509886864452057981443833754794453853916910078489464941674755165361031419413799724209360059801134473516058474114144446120571212931440437196159941870855892286205266996230229466896893677226167349130595611134198579071217975286124147544791581988997847063497265272570520585433667825505563249143377099777985259148189835725371884838520533555259147494208435072169886421998336246414206044569501855119304981059362626545594226010210465768749606705260419690307235143701508954754842859812464267615423797346064308789416686152878094435631958284709862281983917772978423209531175924865763629037727589727295299747968086490994073692056487409590928559632246940115835209019620336264064126881919869693458743870759064808259139412107518058774405381304497202551373655482634717812869803077119857583234816089441717768011911203960010565287776387749678162627423954371467793705443981653466924304525229408030014389559733426065069811359494163590492042084045028701189055750401887607304602146612734945385236869994287021738029876377605477433727560322331379446898414559164032465202160114039610990324154052184322098434663861643438531394801607271051721048657931103228814025237598138819347386329931321864254688238407791605498588357119261998646530104091142574299391296866274273713722229659778360554707846058582221519587760598157766839613066080289498238500338031440877793148894003265624123450286200701799344210914410869494521966696459621755356248136100999621861544462485537495999115584950610689959486523144885116546904963172724842424469819042871739164669101255613117604072477123421775408836684100522937160508847291908256213519219699411953876661044229318777617206441864032159243758108681685890036479451791176120033395845422489696802174407561067110815341094000244193304978312895387777277883730438736398128052271865412960788614896567273736161024626326578568030268195362971653510774565239960237133793508490000719819988490656267039704409626913340643553755155849833206428854988364022300467335871897527957507704208273358620827269041004302914934108317855324502794556574840129452129968049735423307335902053741404929320603848825902505076876154780482503217770402528327417641060162950337591098362243424182342742011108323037579660106106552623437775699552430500256049485623205466808013567550410900689967857811663764811067183897536510548541102897610285873200497980044138409024736741877583090073935067441251140169946276980972382705833312050514567513907397840650505486490050343538828214683291427022311986507091621736297312864442995447364476223089903193061938357999094759499072661322638639376853465534481498066741335486332886191665061735631567350920763828105127188029560034710771032808889907289082408744638992563349469394668145283982893241407316204515069112549094015332819664164160338560799926952783623745443775064317280841546787143198164111847817573347693866753426283783015554616834701165027471040014863299771556486010938768313101335791282437567437792139033079619298707816428348857870813323896981184839202262490610305267989203884848617154085846885088510078439143635397256800350357502592040245744096230438847264359459508878555206783180998990182429233375211225851087546389348273324937100776569768128210976123071858195887227158564951772807676300684928539639322963811481277101628375134130357597140809928035104353523442124711691012410726883983320243985713898364782925205477691543532061864639158709378382101553027220396274588534362614478011045263424020388250518576814160372623344122107818632702906838548072348524660391070913004442926460222184114327581756616987597491834723288378119563294085006193365466411775090569999360905890187963549661558768094393382034441207276639468937262873726352388802818024659445085183232828929367227077713243488827747141174406067834576523793146914160125112661543055366939158267029512890110279267999875892323887854740121905370799712463309388053358288458731198603368138413850761531302683418537894856843455185178981442036802884570236447613962319256332220464084561103439086866310412438267583880253002564593114455282300025328649313596257251879078505816858467124527389437397869551300008024101171568294881147206562148423877702335055076838133129522024363433666440902338758388250442573707995312882809647401212869512027044437444088320008259913087075010660311292149859587270863202763011276026125761129498116917649032077556247839579348297318965847122139136603212549432113537104733674265288705039692991811879718837521225330294685959993076121690982700007912570223854934761827841065375652626800332021380738981908431703375453981926826481184468756511785068278562978655385644554208914963961985306958614901741597121481972296421811374025820494074305682686533139278385864917810743426520298861425179352955940049763199714915635850511696231675135606459833808359150912651753852960173770590434588182348373924594393926667544413773170361242006994064909887286433480060705332451021786605106705969318661504377229689505816961979407171981001883892626808354235571659828363661625056786480455507859250859756096302994585698457925024919541746672097639809057520707855406772327340015008435929383060008510505721544965636487204855489737950790172986854682204978789307052464339910547530895146964105059988034909400512183864520773724722127255684437720192337358692203710076368873768309221586094175223550320118310240018626551784399949835864048366047102494174867231664039340308667227699981544137782105947605209978488479343240967964771821885782529522130834168147629222865152387489060460491249004947687844703175903718525750806035070779734900970149314170953802088893883844385214061392639423757384101796965052655080048304155253269771943030711849297318315198792132180573941896064854954030950801948781903533427973533834103759518735374350339902317976412424736423332990453457788867593635376431498391066283271770424772539535383741143575277460478823088160431937631672718833879640642464880259753388519814402942014915933094915618813133431567692583087253568211502533062986945201544320914113246319365791043894258723365865627491473684399642592618887135789338359107982091058069270909521949939387352986929349841236433196013097068807442537497434375328514580221208202495305216432775654725303872626387883973585588256410992182749262870624322726520784472545743898682082452722957322424119199469376304645264712560511172595139690370784821112891279816945437851767149725432277266783888540059182381300072510883356742210754305953441571145924827668906090533948226232109805269411137665078378739627639075784282112638437332005401976768876338479805688860086369604311073858811052645570863913001198380884360385618193512637057312611089718894730998082620288168525168165715075503457396336109601637207944137377280700597578195542913750061785104267187058308067518512844781972019518744858496295976665338897992433433812304255700255767822061863729920088285414323513040342865258819520635868997405702405834534420965735281615837373920515333078804138878760364968306119096457485114886463101010575656151825385113287838107053847834082466563276218715206938413386704035240592118216077028601292385594933638482871110314572668817774263466510280113340547228139351910205014232662406342029782223874646035031765450163995442103505212469840479322668437782289879092708879527882603899673278748235299064612648969897578393953787304082503404536667088062450719366391329897955014368206466571996467354587527906039246538953951181678561038276861426682422233819317233918900012965428030790878029627437259261878176997833777480745128235835535146789538693996063577455511011441447920672889811034110498929755907854715365924610132645206163109475329995167550360546304286168972408617145620758667589975884338294120539379786701768493028741376598520262886794127227251344468162428670748843855320063543177925304699150314340042147591268237514753161063840968389045984592677857029915143253634775033313852595601411929848266975938723161707158131790459725883924359940516648236525727557668945713574235982768055511446863885025545311414241345794973559976170628179325549586878496655287523637575892324291791313953622379413577823091819923028294900660622916667027140555116996199866120249671853457566957166654410624696439281872331342920107772500398962429382401074953722104165746260228311210177371226574806247314155252774987104447425634498372334118923035053794398877192648564788260010534701431831379358780648582331832238996279767334794017618782136916283385071238051504692241366209502171556358528304529104792954251005586854671513801134100239266494125980079450779934396222187525982239257784228124124462238688084721237647552167145820807153992117882623559906713903556406116233432706744375537815854604699260553249291090536883386693089646646247342369414410388252802300384986025322541542987470843341365838354919053576554597641123443450155628441182403716387660690338186630132621590061963554091727109711119779890670147661036672928820302270049308845873451211362499327165220027275505196739953134196161780646558109023962692691428006867799034433524131722693841973111229979461245337739757545006785726644099656338214058536077441150572228723463539626022043371814586910999510204500867048180700126012072881714830627056467365628061438460519919748186455848164473274682590486875776859737967861247967216181526263082814480025479808855780721647955206354389175225149842255664421506164540802155046628179303140425586320322894399555535027660155337003032626586884956581014151068031936399715821301077100838438601117180956257695534224255799433352210741018273729271249649283305011541694052920503221086437112960943309314139426127131293483428529609634417862218203502792892227908548753148612597641640871542563411404038383997960946619201108842116358205974862300003388845093765569444610888405028844048113166219046100586261067969122819203629621990670633862529725106089831704830023642201948102741679425046394129284363953925149281990579406413372255623797827560989593048945510591741296356440089905852581241517253286400279481732576481824445633182164949560891707404950355049733050504061198067225866535059739435123936728070596775014844404400564361894242891308555945801126276585475150442955736231731860859985520618537361198603614784741369878404210319660172407818537592145846843866232907852162182040687717390320858285634449131336460163249338907617966274289130351809557592810846725745705596029757682821553930236262019252696971485565856650156427240287411946982380839661380677087620374262374179942531244245569690396046464741369898959636471053786525945088635671099585469367742779438529519651971350287091962479865230585076471782700715456668414635925251226086259780694984295617271571676990345966511321009849945672426355164178002602198477691108729630048576731570274434801706105729053577441998138853216466221981977285193069964442580789079797832066623527766437212274047532853020879160464701521614714816568360023487312656345610855554315693946566787189989932741650459672809464139077479878156116320883597920459766573794964118698972486513892257683860059368630132179946682651955152358344433621332609076463582494826699336811770834007044222974875724353628673635419670281839377550181570733189297286344933994228641438041259274285672916798713455725999135627043712010713701876697731491106282178485814881834984184226724903584124733600060114489178638510754358935187043718016010510579246089888369601493616303836341811774849716676883780737657344295043951801046210511081552835135627119485042553238552847207569010704408724278974124922158847416426370333987910990857312263090679535105871915152777663623497944812111614298028314197075183186473816055016329606218587444884838571321036624717510763329801562389048422102120615591921184013706690076737425897098800005581800828803858404762252773624638234971113688529318488767836990262079837910570805291702488475850937175550417785849942819091577530314349004582635312794683552314863214434431213705083888386500354016143153294495383968886029123126644976638290033734096291298485278369908674398122300297964633553425136243923448086958119997422230681991045267412103270771812891824048853425193308930976304950085614598515944754822110590386017158898066936909759708466431274343002630859774399804668362769123804365374063314035142948184926354238965212702843778798289139179376791318559838555022471907698671281488675637564030317498210175459335471565587877054422688016993320146768210169317780529992963558525684702562420187080510795284914480505891180401452204124691910300192134559826077739373179909889497267667517351585509234346523156235469875160614289371699248877100851407900895660058499136730055004771104671682256508458472522219283378717270062168456521210386908358379149353412848086124695868898304060226722381124941353126701100166449014333542907136204596108095679002882822501564976937623952843251385117878793109435959599963439827349645696442839879857080712315113760001462182171135361645319770018324910615320763881467268567599915409254713819427704194102804131975603578313227242451319328839463726605043683360160948296345577151563196935022294173226764669337200530985478596094468314772436645197223501923341143070373774791188172689848671876070813559101232166562880804474628605216009576554980098200783116188365458128695307730589027199763476866458801291446852735390336398684186207705083743564931909129213474876164166424003239707532524939266029159943134095070756365529512967598299964710481525324773483811681253897775121589579454991203734547187551980621623271018517819564861641335402025721309510208140631475531563520131456101533665165672709677147163547076939375694398874527086114861391228108553842675025546428799904350976059447954262290127152316442366473249855705182638781596604315633713165430737081069596528272207988304226331596689587821512567132266450419406354473966930715373140014004089447746215372734474442142635000554413397553749246009049646270597227376483842923472629147046136642937598095213242408392521822319770278721281665615960549753272867339463668753314977491382045733265976605377265428196926600834002315932521123185452247063348277888085621939023858572633819370131343291672962767946732717221330020715395639753619500657793247596410919587274733238576577389020104515563835467092005424067410817399155506956258272387753007387234515427247967561902663452036746527171516030392794405621641871012727350974355864760674903746182659186628120535302375017800187620285498682775065125661702927862766213670402579431837150136451640142617987745342554988948823742709216139374288283038206368833810182179064331142360525981471158439003513600011919166852574723243959625217061480439092908506156372402877655660102704634138115716803119230086441000806056145071895766681979102887982480958883174829351971641052529692335621303575949217082932223330595399976674524814690183300253879265634683964422129952993839188081525480780278699928240174981520019029114150158233443608793992619301120622801746788209213645303309993398381205837276815029680754291549614871366036331581523170994853141709092576798177012243636661411957286110608098403192873496481255941213126560741021367483984998085289841568877682838697350384330929372539272488746700813326880204629718486137965989522849495889868548241942391350251748700351463825306861181227319308457347437316971270759517543652961490494708476803772516142799356902560953931736700832793082724008782515286172105329313704692497154962300581138244722953628338139511844116785968395050315868081499653187529047231330991088264961585354297135334219023280554514182006536104647812201500875206611596061149587873637261401140437481325797779100714823196519189555854940311271380034728995506464927596467272076721815115454949713700042620802623691833862727287224112928818860299247201494688944013172226321388571159555936172670745636314198243232517925548070227739094866884825821072271599766985557808143809227035706600223936750638555439841553247549965754754773607539678563522926479352051183233562365337266705064152249639121662674484664669949541125489526545597710278649124663809384496012964100649080245261703796307919979428083521997328230962743072442744088938115542901650850627960817826824832347473074010550231569473846747530710999182098891080878808344618666065725405817968465627248503807416673825680340110699909622640950662452978980765751709869965835109047263460048363202981521132795982742879033563351926591692797769726200863555383573377166714642111992364391973079145999176539483130240873896412714331026331632641322188175641698689481232528040776609191008025396480418640255249260739304997668742183801686842074240525992683414721870310549609298534772451092449912731029575028450708612774659974906399995617398943571806211178834938441718412765695204327156167944584759498996638917909951748500420263267651955379051181431060812904159461700849872836623616012074199748515666307324992549478479070779552970822576049224761765891817856318241338273520468904892189750559279948513812530393135693641069966379719444755895072518274919755218204097937375357993499774030061235809269279885041977255997090341860661952941829510937338434780774136261863641567160733095836510138353756304144573595039688784020009365602879582969563379250197576829064797695660506202680660230604393767327847721811199034954944446420537758752087602067193093901067325155329413782827650589596804493349241579769798154297729229993292906370739818573150066156889440055521754982692100575223333895108248100772440234357164141107620603959746830812127285280549062376977338911696894219809049235294671053621253943870723189231679221637118357084047113367482635179752599114352050563387734558181887312799231351613091886359449851748991178705914340246516191312804000723316444681567017513884498930326831666977509149746222012612144832955510127991186039642653977988753978557727355909432299932348358940713331716839433692638768307811820840045202666484920291011479121891159306862595770141521942582427960952009463431466561264923703041860246217554713685513151380725595049806781702720128686494929607204247444664961522538557702687290128874600342513084310607075303484746573272821352860593763141911144933158280495175537213455699509202984210852922262542367563620704509696913976382252292583263789546601215380263521218797566803523650546849092190283641565599548388787804207205056696144485762941342172150690891479422242427519762121548363886383181269099654300590867415197773114002173287491540935734632948309089283885386132996201721619185165727815972707370387316377682568551871134687515228571723371303807249464122127536945565108349544900554338052397379681545120132498306870445108723115044447187615637613840324072567425808976114201702313958856824429100709637101414181000722286391000350707824508374716143082852924739214381049452822122725080577577799232826215828831453780422387340275067680858109330949748225444212295856794627144516564183637085517337621026560708644565162173312506554962486830613356195158792063025039644380310085809575746608823561494936048686078430680350800329954732050128646083502063189135764129554010599356747708433288134924259086722527738364812409586892362720938707921029230945298984526671821244134281257572840792718650560984765781982031081438766624330294778916525176712944870736968565859160925045100545410263447325538548137835114168801055689652275536678863884683577395224769821896617795863400089929408643748008367469200562483301509994938891803834346023960787442782989160173335612695811843873339229048886926069276543206402308077562100013544824089677353233751469303771491062321736121758079900715518270602936602231274362984943829862917476515842790685866539844235222447743696642059956173095598540906652939361141274438869504445114255476451507823040362067854309506176362440497779957666522138360632193909003874935695646075028439592366420742233525508276564924264271045364538729609426204300676037716604033528185680383912810309385601296536883847838659772705506952162124117425090439589628449018291808066665729107606045437595337997055678724048062509339297134701310369890633770349704364003022004911447776361122313953193738083423086114515950046146627524298680240192852426617714810802048487103934590919419214902804143168511905907084596339782534201930498285609354742969627751973199187719879514945231418518355083117143118678918918382173154734974815565078012718648898101145337964039687178338641247538272314424723963149951202585576428451786964989735120918881585587315022936676791771366179248374990469093300180293577171539159708188622771949503252586619995708507742541073603427307041532749000909841784881074628036080019189789648160999783318171160749869748252458186511307576523858788431130073122580959007111460454055706197411642031386625132812832207897193059747265144177927499449904777073371344985521293701228423693311742224382407727039331857997348281788713971381039721743766915382687386635514859289896442450054239710582923569935100306939132836811642768203763442246301073360765523115677773698497743966284682165384236057279020108995612208118766360991464278160876553501944007287544766111020968330614767503352373194107945007815621024159970692283694034670526555899235104241569943103240527195589638982899290365989848735216320299972513301127393927143763447886720991791540646913533802475000122884678744991967177773911701982062634666478823555471262804976918851649294453459512210259402347433938579056535499884276231421579129596668310403482051072295160916869831325476548877492729346520752163436014844234275094248375856458704231420926026480431532456378483056479325915566868437770507328588835214680970603434378506376002626508671780822224491171743558163577756489985888036418464878057031232466311873655236824198015137787922990218727934573342627425602941852364481572472413821774160807184530395959295196504937746949815264514066012256574393774678975865474599954163030831923428322975800125132569137969131873586374735479149825810450491613905869703426157884844623601083405281777593419324052193816754663399626490591883535349669660229051994345426403345945168916388860557898974125314017948196020568994221815557541291328516863452967303626905261024197975818152887520455046094000655529368710543107940280471161263262078198195230413238613066910912532638060162258834989360326238594950607235190608710517790578654795584539857077810384951915927804676398042109939708718244480786636854487816663142735479856093032190706230363869742450699897793960741194214731379253432704024736879717152106533126123960501629028410767707030692612504046152971909483457888664810418782228098105571335259668125090973645832671247289676743791784926431963093373440984794307957155990590183324273996744014200076103335814819517002459816164573524551580992178437465205230600412365780693331408994046654065632199160786593477947104982071682253461906966998050315670981053269086849840848983129517999526183675880856547278098467473015637172569018868788148231291033655372469287607324784945902606053895028795261486846826252968050535556181989989462013149762994853659787353120624199702538674218178261748465391402070342663198666883195817251896120677663104343261206917259294136062152715367434758054465688940157747856620398555768092132516249733412485219497965592619599646926040281675484349951168896284620117483966942004810351482017801816472487157333399314352908671729216983428350161387512353478969350024604914529238792018714226694873240939578597598820309188605271571209950543005459938453080530755940850302531302081570937958062153814599521023516895714249493006028312433421197669357223361042392524705958216606121392095683301432540930115482774885809608745237672425434002909358351568156172630753667972946778851452258267631099079275519340405320424057897271069225938285363406825117086484872397152491907937495938346159553193799425756543639660787659236490088128937496764048283476065472492234816000478445712338826794682702156335677764729237498525850122586412439770165955338336823172310699065490543617240143096804822571884561106011922637219689566324718589273342378665930813905920383913678644236038015967471100996086616001940308833711480674892551658398388840353537127802033238525174461133811477178691399763760609950256515527125891829398662240618408681836634493671693085792536654941996557152713269610970519163883668952081696733381566375807575192188608891818798134750568903921224415005791286249121168104463959344907686187704101121168037361689840587468532185903329628487822965605997358194498707594246096988263100432070764815828730278033347523615798947367736329175691427657071357311067333960536514643967969067263597954385082265213016609794882670891409261563993406736091394541446929428377695034466757485981175874244376467918702763902945078610469679199099203044377558271715789136458225484806557348162749545870377119759553548931635002176175586716830781426346991171900503468966195779509520646050938756937585818493086183145209975799650022618063779966513668040533816376626037090455966292739353299184035720821753555032084129252632996052393644808121842625425509031553051786926768977542454925629747012860416803397028721408378734919770191395957494512119818884416990276104779059681312606605211187612491329078518878585396468320125225872303313744032056932301710172920153799458096666650248323643403651253188085150815776727624672604744979848225289861421704243351629511096242924034398971530796960709688120556845203843237397457151724986913026383496512130305362958092036623866507788606072586666310954914796427189090075304230040169658400700056216887786736992718114103256199333787388232522330501707055930457617275884129294821871467033823036230828902918733187141623038334587997380201144679761841152147127386454339777275664507303709004471631885827833482805961361389754821443839122372984140126918280528974635735878377459311551297202265849974851284406872883137531942018600021471596699498659413145599507946036171446184555097366077891201995792665000946778245722597930063357017930029669853167610277595525547424006845123446751318141011471861871766099698523997435753558093775353458977748971649617369026420657790472214416807159572772071787445282231296269628659786120338170949378979781312451143189687551192013725488912982502861165026721662761576551423162588376618205503106136181197220453097832450764872989471848595392413434010260818589824676403971081326878143994065087569686904054792758383346973832095980462158935743308864302689465338715952539006725879428900432063199497722827630805536587153499643697537068726801065439189837246137938386143273756228275952714894402027765575442161293369187800146566084689344134806391253062498422339204291500144138109243240644531645052237302494729033871480350547923079557242173522742111888652220766107544516898310896867926622192762917174929521151922074030146136129231535398441166978207900458626416255039939724702860928822571405621165634163470321702006855224895162891355437749296102993836639363344867520549163857519734422570020921549703870618749692515773596906407758957982788763293464211257750429012965911600044259750086460440464583475637248928133397513450066273330576144289528414467585164499653475776794467711153250324264068857480224480950804951611881854938351744226089914443396354692330476029448123944125143903377379036021307982121677854927660664629816095742977320383054886944609942733156332159826463752932912413712740231568460668256241715137020095078761079849680184464431606629752919130052785179058556414355166862579641263268299730548593248451905036462013499492636758405211935770405899624405770125485265399791753221526110842411618077407451443192034375148471779863138200658504732844490402326427569509040838446826233762328118401686815290928155243100951648806865663813605398123224749392821781014951898815934374041416776107387054129229578414768676065051559951055259282864263805315528717317577279330316426071008355995809016395664990552307181339346799505486410857832453729321652027970070893556550642142840805392544950512283834077233612617999417816425511096057307014739305792050954052855978347570087658354119539902775690011697391660092632650610193170445940190983836026744411243931672824806044972036581467006916059646764050663740098197908221944594299883678172108821232434581707624802574346013700667411130624478827432594770899216479815348946410258707868932832121952584062656259622393456352665562138009843860611518725876946047923908829784194819876840927070508445794501347987508230271993110519196887059859359957401077102368821555535888212475554210750650033173263233630246630181569105279300137464019292464994074949639680674841224811318913188006192626315284637773675364929899617502584216392997999195426966187856580933925104967053645363123982363035917595015696057337506596140435109913291555472240937204727240343520066149036434825343175695586073059715957429382030211274950290195756353699044706750975149664697558327573877663764717679174894464717119463332266041390597051174960867316031390336861131333819633057646712118334261845769786800692069260617703851356777896629020721969119054334493080195416598744157448932156675688103579146712074126703984138453636142636419842501577191136265379594700429693185276425124578484623273315703120893871163714771213806218355964722633608122130114147212045800346845264073581777424178353441395599695850139296920344473145056899681389379887356349996363247432534401334051800384067227452224977856547996366675887735248084700330733435529441256408768412186877704427105857725165625419875475118907153828138823788573734590004292771432143537312379452497049999645549614081843233947752290476218891525829733490281239403377903927547990434512242425566276441033058624112310650804502578737057463487208983174165186165752986279871184121955742893402711859817132398502959524263978822273702608998248834568701572072015910063478382707186002974897156599369310525556053301807042363745573510340946508532278108710731381958252251545101628553843833045559846427864959734833575913269897610662589249886383234321827527485529737450601158261136777547525029213166900224110842311643835920606991243036609875153420273571272948997109285340678957227911646292847977519870133342956412002428314412583490922723129567279968790635359665943553828451838664659531554278587132600373872513965066387983436400376541203244352807278620427122930636967856060782206672298430079539438344403476967344545824970028666604244074532965688442848943851521523669931009323541361157080188274309858195115719667403103970950217453573357079044211768104103021691454783560856229836581514008014373745166990985886527661259381666430482819957357524480010507366231524955204191246540041256153715745540736054563229673787255162337451136879645823171568132907389815634675460187836549967502478463676596690625067062738282946790504188894263773062060640619270176042949027714903628609815382782548426617718814321726268991350987020801119500648127457299636123451824324186791873103775479517390422229237858435412718086943602867567655692001423967279389842137467401048189181824469973871152343934142163515813106270696754680337425678266215617272539955995180870769895790480287538893166950901994179917034591435836925176688014192576298029862795155587756086768402351237044018153004156020514937205038607679928612276579647673238210937092482233561865974849253478338031366723896797606051057366945219524017045189295599691751754193289651046663033080412966662490668881682741925572282415333792882419745128753547164868468632258142538469840175614338454177797780156857197917531783381537780137612773163386087395260466637499571906540390485800429486168902985889492139187612589392681647911932165438492418094905227459162246380027428928407753986415401468578601726192592497064070289390672796080783838189020188611840458282007455070238478350320410396287509593226507681880871815059162963881630853279937099989182433489802624016165502415037169067783336965469601451686055989666234113448684603458026850154077754957428164469807576538629213836532068155272069444884365417363203425721926990983724380177371984002236398244589797646393308295612091656005780728997274402984504797374818218016307992826265630421895870584067226789522640788908121932760966542045567423429469029303954490262400290250351373354984642129373146704409972050912475433940862618313503564862576907468334993310583676933784050052402677514769080475094720577523374744163193230495949353340583742587131078178303317194619058399379345402871515481534528167776306331842291699768314250721373994851579232484783189396108581258205645911778675513117883153346288309256942915439920185118138833057668102701888903569688921606464827283510432698502423348292144689081710038369174491501724545682152856896169776082952345997513687064231030469657833343490907570564433797670551800107948606301085861566250302217965310334448076737255413214146665750455322284716124390252624052228554379009444376878302297341735903322973483556714015836288580458257941497683672269742912328473928871876293725614121656464990178295652236891470229245691906913326200304547052578048597416267741204078011182849878052578917045383688426506622957294521749822133731999945490072819507483891825069747577096672999676856735624080745549218106675092471162994531559301477526945992472288331295693056067011939582189902884007754195974862886458641079037286088638165600008374017154794808677968550593349272513859948693618322650842706680531434670504686437455129762075989849127025756066230789788505306234363547038131105314367968041178503282197908920625498255913882624361453412021076066811013077307075437148262238091590026331575071301095699627818677532004758398016041623341540532779817049019962239435476913105785030504949090404527760841564179751954245960110954751555258927892457020621406358725678463755755663899565464199248843383475282673285869661512195068719803106957415302308054259225506838491371137562106425471375837754170443494355102766066597130090983293081911049143638357953560048273680303345474975088173244896827117825568736414432259409168561280754836113238635659162441091612523019036709358311009856741865339941037850453519027000691162299655870041084189664555005997967945485321313917446851662638747668929584658039767141919256035544949097727106190672620481478711847512640291880717604432153556924753043708739822778022414454753494920009855371659779054092542044990955872370112713290306478980139828321189340961155775941960135121277303330063928485156787330778443923759791748039596958671882265386495572598464081347748282749560868561929982708882808847390177740648370173686421867090274191934380885481982479054612368091738864944145645673588963344466273644636940294492957605840752135011553817789305591736809749296590169060001674697736870389545399706962168508919327226985180345439413706709259698623783090835646801806075038541601319012309264156327179515051477988157523937044022965052266890885316699657724517359326894442406583640622093098783738566971228445897375640574439546306983439524749709430363790608388993537401379361871921888685622958769747344090411658752177515498463595477355053635243418370483046189043111084377086912821906089239417192864061744486545200584658760864648168289981601394184441211148862075322483607041691589787558923457055571493770605560176313683924831044094318969722351463287967947636450518252754798428088369602431185988512574104844779191311180184355865131961915630296785641293658151574367191847273111926689365947929003867059732974547418456007164967707249079149189318844437183797176970973066908317998249519096035836093089587762825908486855439502062991177034814562424476491548900107756743775595670366430558222277611241296942287937276807394407875543046696115450948080027733560964871349011536682662678730925414534771591509783343132865082603112083726554802646492492959288042600781110245683342972704354381284558240340180602592564095485339315885425215281745527789386395062029123307508715724009126361900267366638668156494717044387325821098865349921389181335413045704292860056290872705935370546307444979219883265587736744048746427080067737413612202672932606008214245426396187815467921835026355372123358957950948732622075843182790591945842725294426093795023760113865311467129664142942903670006780803020543252753727615423768893244958255428959157033099470429555452465522477335404810098055529790009405521918151242047227174657709584685823709433086091152484230215993319232597488972353052590462042189579117365704379624791111646004471301598318362137683924238772917938140159309101868411861493462470517421307898533128509777242866333172392937892740207583549786819852680603941681704878395968647062471573648496747991619999534743877836882687154702702464290387555459335941850326078824411778149562082216090008548657533568815023524521950745693641508068139095152490380172826578551629011797264161806236611444597752216565804746032792456134109769186258838908340784514743776182666545974091559471263916465991582468398444607333711476294512474737387146667542327793832336474552300421707202212560433538613785713758323189925392627930914478101919341454914560826276969773652271073796976538402586795431016810045860275786657760390168320931307085029664508747953300985120772885694214923688221631900778244412928227885636393518740208616582105135317682780828349587097661971230543264652996485226168842862601144607010996006567323900364827889331854142102849101305964537125303739520694272178540004366080797687007147306493362858736780518464110562213819251895287538993540957839269265476115330568730919744004317770174894346909776369645171742953346519317786461926946976333014878202493651614349548207715171514421039053293735719347516488504240483815408209087609552336387421771767456864814268420616219042607940097635183072238291931891194510605707309549450524676342324035247975451416779820473335848201165985810690916186070918585701204899195567791848260862881194910175655435476746278113669778633161851266473836030201598735119255480098308188806517378154109421002115259458904864142488872528261846175451596534919251934599365809525214542107786940395589983063676820957573550377181694303041346323533799901952883423565560366411993999461947316932971336086296298369303021470684869502333965658117826527853218337366528429089169004282127441446048156058701021380850615786221431618398224706992844477128787596502192430855685921830212319519596618082014870079651725151693751804807928951205132212024347367974013124730335750134714182226175628726640185127633628635883368271825655063821652161925154107168777217889416793747001482246849147471234474035404567007301279184873211314435853018054392597047712556197600096280059706810012716819599007299392240773978287263544176796742043451344696723428862732128465336437273147047577625414289089486031793007234073786945640123386616980365635812697677213370545409493378467419505799066198674274440315675750433669396714229890620574923227848847947523806973479304267870993582715935916025621105269987467541198199933900439443601151544337424518401737842988280572956901376997399937136147537518647436328270908967274676283939413532127562425497172754801615716595329247184228306887377151058907116538050401082443962488286351791952847274351748147302718205119243161561873312169930061685656787705635039504048086916461897962201986582891237225502900096553289509638877652397590589648582570379209866042844311112269123799694671844950752030590112051559149651155235617070151752579687700673571256495319790608291865512877336243827593134582795795957778820546986858887248560281642486874414134135335754933454001714512203782099719203115492342602312092912216974693104345998816156058322785646946056949566668849670781423647833587331753886546822396153763459259575868213584304285219029347659788708996409524763182419661386532115778022660108756580994350639846478034342551434472711822968204227835783852666823300467185375989108827931291893935321156120549286219265624056671881849904432184032100155113808468306292053971539990366196618596788761682461896555286574440394118528649248041228100567726128327694151065180014276688796972614221865813530693477914290381976600924977864360035610376029038159773898665582575571736131518049360602656312972155092171513634774259843596536516235901971262995261402568343844510125695328698543104562750194915209845676947689375439103927013460247307464460206418295259264685584112542535343531416438125103509301853532217053605857998880588932818360817299098089724905655596616434111154902731032149346747669050412413546688872214853300445221319119857478191812434596522861250611469154069211842047651641268722322781239848667124608125122551788003583968664675722255670878990806015124157379056722073982896554192991041785446557852847210085478563243768558070499630574139662225456027705280460862966585853707569558618216604662366236527544922119904655450156701265415668529563119866811719679558954981759413839085971616695153454650976254953598381876432849161231261656088090606227509682426257609021967264151863679616077846733903003975660885844591976804141299443202970179284902242614864438539631920812679399634826636803990483608537532581635544385306174564461049111943674261844607649172035160243547037094484525977492429554098905044332733598269986934032806055467221026282291862458416464012688513175574707377570624694604498734393102997970836983217893746312778083326408983320893090510192021838201342539234090702350862314843256301922614042829106887618085865274524089154454362988559536436159987930656046436954573598158603885040529989607492467326134771013752569570862470149357413522920455324035154315788644347166505455819238074747684464494590900701306103612508386751114103962633069822588227101956851178321475016484335493913802153570967596917899703090174013261305118888335044403937081895524727662063574745611863666358853406438840538501695845272892658063209673182321413162758324392613455088205587391322735206546078088344381047892042369412495486666245118091506226436894549252390924076161903001756627706019268071892904781627283719825014229806472270187358465297503800108942679468333059061956242327307313852721288892225843174316268389119227641925294116914644012974758384096911309109730957088474769156091002918038919335449601092269151032277964874337862516083781803711927277792110002028444960760492691638327764759463953895624445413688265512975222682885654841964980439671842260285012626747530637462590985578242066770142567606564920940895429118505079091126491939127794420863041662955466438591033144178421771301768798066706084379472468778515179600498914821111588637380223548675832249678347877672458319283469859431465293033256824874994347604372872225705085013131612038335915855464652475372364693683737680707196707980485684916842149761669214851197016105701455475021625889671263133085743313219764723322495476798762678497186432854185567870293389044717890688823003713628107321587353277247415112544988511836210071992745034023963997605165682414176794097029291020053379458892542077758038262979619622969045101893135913684493426666447833556916814335864392821317305386648963941904144683628460778262978306493615611136369183939095656423069183904481863373820901944336517701934942406953242166939198276358876234195338161565410537099012980665009817252771610584981214989102756946258846851033851307852012837566047375736149886529728730992307908882515638439178206848829362142433235916485242338218049395945408939090092915576687374531358699426320786800092239869535136792857339990710570582800562860742824691611547147441566746606027499524470591214190064053484053192538017391413756821005670077638666026579969616537890594633697756636756644287795843263138438216421835869648190073465681097482902023853547061904510222857569974272499192266573598098880980306786915278850576579706680032350337584860168495561303289070868291625494290858683157491205939044583870621709743928090564084826225355633233975229233297006857471960543255409513893948235458269491006091744170251452555255883806632981408582187439514086300665941893176372701633157763143496342384099234895004272565026387466899542389254873357041563537785116993333899075081232828035640015695979515043497499188735458099803970102571791808690474138918185603486044300986155293293315145409675140836310058822997724446398655156859709946977130417687366066682855376570017734260304498324705990532751483631485149537007225086734099522262684867400785338340334047951996240052646641884086994156690379842189303881583111459973446842037117342379988164749385553372299248539796093567491222931201000784505684369032876933415693519281523809277255869085112044692659096263105814745891960014951845846372108596499951853390829017891093605639071106081441705507486958442571870808721471001638182250367896010327946308819570034348274261142425000855163962916771123539698130264898196816098487625188571603681862473996860247513081172189178458934552365467786457323182269953828257722089151936436212943564603655338326776877370520373954772408466291501770284509390027620901919588909269304590292917171917296810419013784747911654141368218945182249381477699076383014757547885372880796660351487680620309002622238409477700514861199222535262598734767809917187146844051569390241808858242263939445196164150514558249867196933445322009102744392546734944146291485783066399045805808616212891317459118286749677792923502821973806340157210683606148933414097264355822109128134716264761606625174844006961116219989551596315422166300553348531982145658499009916046788246351875896780543910075466731619670457751857896941005859907208466599762530103551976935457629907663067924136789731415871504879162205615239583650390303754799416066018229325870904173221198758888527731259999961872785737807740356289022224453515813405499035731354860750424861371673728650844744951897514617215103347425033478198397763274099667725174166714647419334419010586543512211832708204148110409294873074719542353821241852266531686711080493042397472488767148249458762780310949549052768383716200163683901921825288040267951431477409785119784858756982448599196993080160066127959313363211273525593469993009732367996537033070575262032244794360581182681298166569816399359650309409930451862097442358754048696461251574749486951308893112931126076062320005337193097975184894386298271777517957102514496401451556126016627051315793630327903350654215069427379650788959457787909952198701281142459476859747251634836991203775933185247035508961015385532754583010328443996333976220584851455405627430452736329515676900658496239723417623953137846512379090083441916316141038602716100004319605271456357508687153726220567591809898856922868742846760023675786030384131104306283878893982169996364687004911318625940830938282313780107958761535844476747842264566113732811211023010498561520250663152030263303472383166947234015281925458671906617785697260456135182106624368448369086545446518060753096782829790200969592071730016794264802296572705319536261155529088798886212406840011045276256203198115257858339795247270247121336301898162773454564007059114881563306750365895976518558531188165214694834870979588382985059252105973843598902582503075834778175084781935077251923024239369830460116815941184014210236296591935178652020458410268035298917743245112925217162689770765163181373711680171892571005224001492063341701690915086977022144442826157700580413829884310453271206178050280917360592916225810695311204726756616473055058049542218617556607285846017247604749284569790395269404941224842391707094850337498417625247197639455832341276741743040126698986714287005923539627233299661904158561696836432862720487210188953048623907295497808177703961125604240378197090918950150192170984075379047133513839379630109480304425476773226091976308090608221386201712539641798547032247739774020560990187341664462946208407587815833695631704770313686647397215390682401116914951924622385727501765491352737498044342602726555638964890649507722005654301195842277653817933562290301552599266005172092537528456082886823260715449928968100952961725454368699794623033494166833284945044308070613719174662433852132801927625954700987142530895077144814967354195527772689779109422534199970311033956966493946346500061862302739168521652572709550170529668977299715923333500732730435649064598924520729466172203306444837256421918374612571415210904660945066487258545343247885955361775703958370528557071203768897053186797336696129560831290097837132233267489804523792678628334411352061909224662385074325061993318661540527539365994997692778930511663348291609262975275894323122003742117465548183764828411613944886189608852406596768235421377540719195815147714748617954451746275615592867824069047928403663115227592237372530861436111692026262310507183756652618967805354240233005815280296935200733582663742755389029182925653491947046722914816421607168879860481807476981884575221091720673015016955139603111401419764710228602848267971964065910169444698330032538071475783251505112654057314922435344221068453430991232397975262761138217415404803432717536720373204636613636074450487280241070601981119788886081426090180430063271921278096209488242127089198857144280616430178212789469011903891311784112340751787267869986472460124718453527005430342474582479489526752069368118282647786051112464196331482948841184801638478376565478629782431071100146918072719359686303655813497809938810374168657239111902565098679495040437857938449119530799719486855262414926059067741100257080411915721029385929596772818021640297871116541242846158839491606315517405118100563016510039755250832132648909322902578941414539790386157209338023714269773020458757625950238466041646604557182510153077113321235370095938184013961730144497648997566212122664170847749967014284287914323604251158199401990522178691853956288605085588887014919322611411024332548720711540647255920653514829446932018303989660092530366228022243701027518913575440699989713436660748190301536708544930732035812511179794462544476767557011131716543758621955595228946944595955657910901031924943121196898471016067386809276710127694013221922385702922375589254965586793207937332691728793112661494496559940540771564043690838260190928199070691190404043873031037945645301137364518729253565853875290226425826439705919612832287975710171619157032182219796307181090468791629447946272431578019633818293212989392279352149440513606780211173080210337522545585249515326107581275095455236943988077237484091350819142618828018141160261852290414267225060836608292986818992788342920714043440791876163152764864356788535828450180517959598050690017759679883330865824370754585280466464738754145727820889054448909458135317936898064243880926449750723799341224141513075075559817338034306020818273662379916220568877676873003276649895240388116150994569679387905809120894920845704573898976828977746274547835984076349133680223521850648632442335917988166349729210963988359858567279752458769141088921745213471695391327481244033700999277225252672255543387685408740242028629433774765173133022706719858787896958466335184197170319444081103675264732873417311510007007163278607944849239817308030307989871439866370786360230226100648071167879607171468944888598034492397467848126028938199096976109116758581416866826965297527910015294262538016085285496044874859475454354295398746532222346490567103141830749729543584811070606818234711331841439991514786393025666926884046614559616121079569492833333908983252665241939041399000760695993187441897813390484720912815607053275406336335527308296679927262819257498561283123046892995739753952901119090113458195397007723186701302234761046794192925131491729093991764171319231165673163563210792992859446961639509400034873770565990714096437540070737137896946074526962388016597970135666100047053253257623205054422415971872875247795242923764485960895472699034798205536559301530430648280902295263816631251876313533614188950343376671350689742755878598805268219563487441836569747012065161199228727707758790900082083968695874189337812951785315233373657277687105903056614192624249339329527887360184777472254651699308021518779666534473996187711329354678189912208665174759758550179775020755611768325082026197395439869936060810600455637464238731845401849287835417046199934834695928997096009153851367130652526268214280485458123964083551515309592610345635374309254519314362331838657578908738440054350124881165305591562679928332447957545453833230855897423158047135915863507546896336192824961130901750115737784293279606698070646823496996103851535832202775257095980016753953868943788140158554933622991350147925791012317717537765686747474562946838063958645861629319597574923795146384867683946287701363615680785345175316543881835094512235701511839590888917849756108050006522359346983336854081904689292092840126826295647656498335324639324075592896293650142075610668362957026488777227070621992268906846953161074222952813760671811735698850568815074523821944355623320779030817091297823330363125060118959232472782248477749696028371765611510035661170045970403314883738490204593893829250090702765876714443496914166537761409124479773335148326229506849379810391260391875278964701538610170850916830617060315889685261681936758402146711592765087403981153028005632006560778252611390778549150135512082156215538992298046465623013180706542783941738665745861910386419623113772412312917368903231920513179779253348721077348352630272510197101972904230240441396475839492393240303806432303562697808563570543283562663838527155565082922981413774448788141569635425112621430994264129397071128604019750623571213672381963877240237814727840281308638220552378177799072258948503133255206660755997898024411359757995582969657844714199118474627566033322821550846092312141515508667835994427460213009777955736879260973182232128169398191132980343095950007216754929639501853060770351273280738681495769151571069331909088924362554142604401867827921307733739095307331721549721282185481232027972150867501304188118361702249904757336735018592804335499975389618387954846003888876699744630696991456134578842253435416101355586376420676342182384213608213380447229200347501030896770593271662292907155961265290941690850340877401769580414806605418425526709527026568196509653493926608489785590532824456765896027682682090097411475693417320222976071150458815711200850811788650049864627258987232898055537430339987436260918734456834643874791001943225117510775283310834679278431630956983904114143044587624948147238164129074609781947758595759367191179432932735733559803360552357106653409366941623657232332210413182280145641601711874335812972517592909787644701051721754004913911338466898878853062454963828814768226621179617928468444772101820664741015430749143854273449502473848547748638409300244463130993022695741079403559775558150975289490844969392451535709066810475892044351318107298567250868066936588334373339514006339423953847871546237324694127210916810895536707974305553148319071575468186700930514081330884943569651065220711037161201975573720435583938149391025510099427046984607344906008592321650461770625290316556266140003799565296150050056585905517224816904520378462915201599768777577575329519230703005498859535973598387275099448306993517209042593090999577520738090181688818205296203553808200911072255647201224230100369718259097419990903334428428843665143249634595551143325111904191207834469371952343342349981144228899687306651854799592416229283974578433198633390283330932834039045632130855362247298093193952257979396135511428390075920980986801688737225124150497762100130396301535852648320249520005975698073857998832338864590691868245213440608888647701725518467190707779236358897365634436704180901888215774292903777281115798627442960338407360295361941623549283553145429993348421701305427915266561304676106375759656148708107788897611552724827716563464862261074431160901283805880516038248066882511118574102591051390179533962367921805666271695471773967420372419125540887713042980860226814008153711821929279190807034245310449204578123201821993796291011954481864901764381594913198473866455668428865498326676005596417176376196661421272512286172547017873608673423407186853218912446624938204253336893712417142079575490382101981384543807762327825981058343704556040908599184207355058100585284465707155990679238858725616614126737345988468104305156745310042263765450407646025797330911299964482020878835642294608024176209792325772809842240510571196153277662510865245129313268523699436779679850898673017798243690024922881683252225097596323206782809461121029243991572232704918191762784160195880347857585587951277930026908379795915324951988796501996373582086944313010874624445721990161679452173930911289231508575658848154748555041926082132674286166003549453138062525698680030117929668237473276495474521187236378473067893110414856817317757614231903989330844672714567683903710968402640831356480085255427718797659405243037384787975652800306103503213561777766572164842165720444332985938198879254200385865101181379599587817141738302192318172550720188067590745904128103158935069706353749261287659816599290276712402672002389038723044438330243126749256371844539047062124493145234864440117337768095364367469228061349128626025038710575378058407313385803840464312989232831960298657751733927406538445584266052583914057398898920514515985771934606535836761769602681325277402181731724917819769187003596299699429622934382153357745731741729846722606446256851577690517643051274086751070859557554117273417026784023590613298049984189506039864861024384119014074588069890055864209205436421615091558187827031871584494467633829714469376391938750805049423037260148159681353912889990126509065887723415872197318995811717754642499717716737347138689337063277222736416587332328037912584502161112074910644183502508419803248181749069371216093917163759400253292009309338978359804759463721368709759264161260278883570644825607032099664896705730938742806456479183361890896990614690861094428538850805448809315445360908443267856824031861846006122416856578088497926076609410475811362024506484011469959826771003467840855918962311050001298757593107707282330479646557089467586331761596150284901829560830680323894683440588522802221932447511918985606168002144054826137359077398334687595515035635415486175811806618119775512944817477536260674022443903819458099101414459467120020017775266629465066959797266119255604677021528596319123492594996912862054082145683754682513252950583787356463001863917896372539981065925887600932789104350339253031488649727739096938487328565637571457892599240087550276675789248696952000117756509877551215237971042049118862332758697072227469119819955974401681302616046765224857490698453241587380272388673583314731137577146868408947095210269387801288450838065098664758933769208887919091548295078283807981391341214796906908885809462397656748064523015017132442241402860894766678316056699756772691199033303275347231715861535340378914203602457348988824866416707990920117209503238107865547607954258537870900254700197828438642579225084277258296848430243594112422148129117203594824340655289432978689586382160862593092290480151183230264090092204656463426808584577569209729126082173902402910510721652097003384797129824119521302016976273499374957369631279499168892554741084408991660654124689834699696930627404623762859247815941791194882209333174729427864822139998847719505486827227517850298684212771903705354567755962157375272427813287623544779253246108398268559735979689087905858146041563877008822927571713647321214367505521441045809780136022713217068879546774924781749262682475350567540094101722170395247930912722225812244759832602870982017223858220991575257722369097613412960161338049020172053350994320475425345724301887886783572678208155524131829180081395986566424727529955471480789257199935628161284784873433458278991536355657272262864581879311654313015370205679720876073164592492537265583704890145592424359031620392954762982110199683704939731652481274410123453572561284966765876412938160226668704467539276478391384360438306283507775569598942029335847467858329998956621711020421231457785810976300174266670902382406556736483338884594766937148303664096217899851441599649991696607221719252062971505456323978481974305653433211218853873020908411784892418756872094920879462534476644585533675035025159934648866412875281350838298587884311594327197503070159240740632766154955430688541782390664369079842859219206541613609652032502572213235122201670416204783380631104232284537605582236556910083459709343199085366672117488279640012806287557404420625711953001801783996402183828589493185865871350303671281660337851190656993598222498354472950968746549092528130946625477930079873077217854852995200968352512468091452055082715090640069711874967821671654824926628376281200522944336026264062146820643662381986906920627844422521752914883363305473246454049766984200813190412596338308253325320440402972381568332946420127436073353680333091604596452829342282577901549983378638195252798515383863872588078918730124768173653562191863242506518281266948589473484661389940906869394255697537066818764786650698730742654885667942614869387162005950402281754066937761026428137692774372770750792356124003535189877816690497709225390425357905543306907191418632248526050087583414850465839225571367265653935500325857500038259854694584930300790643435740973348670170913792449510836805005122228581693709994618180728629796238094845113990255050022255990826590088671410053390561915102229153350687082719067816419366206139596044798003101013684656382681765404590103762332933929141405072121414554320121202012933219037833658670905815922613618569949700404540890450371374891700036834123051399463465143655074431889748638858422388531454423858942036866897223594395409051016620181033404686438622333600304812289710134789906159784368488521992880885373596685844820172270659548584872369493166862496466236412161851235139415356681753316947414346226815180191506183396654660860613848502682157342734795307419144858882035850799949928678675164726878674244709919176440788688002344463839718550262454399692052479557486478733374576245856208117108829635060286074553055121012737181137997354533020866135273600325427247551584576948900316247946824507664666488783787993089696625925940574874228436899695746870192118957412790351821760441973951929716386900377014783877953695457421586724376267175315783234583306711799211404094410747080874031999738296515064710270654441008801890919118547208786223169217093420819597079216055804903848805487800777351689886070535193344825457767792771046702267711207266719355231058504118758081885101741238386681041970934220252577413555368311830698947237136865208402779935585278798080954665947039039306123913837174879516595929527389935603054066977099378956761273260856914526868215460980996822999482942805811929947214308373930202729834300355452546862645231830349722813636378535306736714125529196019313505719241623295148149374720958811106442169396030509860602946340253244328222850785559456423792188508161556088526699895513062876547134780555544236484930924666320255378229739563273533383764874672067301964975625148445643248058696718296190421405607615780803569007627957140488163989552651443974723711518320888620372136194728794195277872291934493054757504854647185611580126073459138800024299723678462543578859225615377162228177307875473682028251838782260530791338720910080602378282107406086111549007349229930098600910482567237907182635568652898899073274508828731177866170663613613716464412341983965798735799249261266343705715539813119002711349819550497341344110486970917086029072849235776951970315029351355076807407758478090143178234211883587235764876092798005122610989891691868494156019903907578413544332179580064780898860342750321574691444170864995275121877143311942498606507193271099408634184893541584677789832875660349501812800034685378735214463454979089919518162334041946552294410802559514406177365092557902497318175248509012652922150639544818489520085502347750929297149159498250746235443999433356359299708378967093267611500720321724055130793763416728645945582272274626820587821764400773765584032027616605785314650646869207529619565689859667109288058401388759993891212489159978495106627674172395267236024893186155046005849954154008069517290838894839595904514413236503774550634773054101537018640725518638547605838409832575471247578462171901090996963291095883933588466135160269173419168188707143021147555863706417124106188319644116501605619374703912621446849529334118811562531086724500720073667237632174569852643775465183483057990446718044774581367607970061833656105290198749054461397689001791076941394399614975413339121408387414221941655520098227037322953710949585790850330861832420267352620349115335157453491489417318318511030854363912226847781139757500558216103548709955465971443523037643187531251065369783374484527352509683841297931475091506925889663201050381316084682368564320962877067476376770797803654839694996359310109980275281247699852256832140282511759072384212130783125304691966041899175172116078874638680449341680208639832877936095913617818440820643975639247721552594548950776440205090210823881900693046469281099081339937099856082528504792438878544452148762229932817711116261161555111201800754810070772694604509668139337413691050502811088617973973754064493770809377657765560032049241983195021653582988839235503570380027961828708431060436765477870553281551207006279581422266885872094259022423256839042135693023231677749834378146565562881754520729365027277039497649929312469162419249136039409906616017900580053864873613544019652873101465370168051555319061783707953846095818644324210602561192896433417488080257126513830583913084728117643208367722742922491874503138241039244917644834275500115483580516606569624260096628285402567946566605066670190399639209949768585105324729864958838615558346397071605404247355045633239540069284220921154506884815089151800940372048221736372642987172843013228215035448931744132811058441444973907351061486858297648967726892262912355627831389827253590080476996694279456455121316968728848773484962097839701992329243239785413403107119561160444944497134647495501991326502978554712559585169560005242412747337552765373527433322045951700466248624771105735124264572741019755636610682367803415582391162000493632994791455418882184185717784261809303123161749040519805694576849173525290653682206689989092135706860912328569284843074184041977852969872042194405598453417029095587700770367749780545816684069280355819813068298030265998549963498147196508209437851671399470657921314874918685108891493839912301269987046939499690230278337261101155507738469225357510343047024831855755650335283457894324007983858041264949324869598676356791039793370838566441992790525077514745541708395204182366547990358514784534924730248958286671301624621491210731066115055437327429028806208157338930405216710536554480365345728963088359936532501172479875844738145897497254312391860632282567063285951375932968951740743675245181043654812404035318421477837399650621116724253445152752737116272043176476773741721681812671338003827545484978031468260884375424688931552169519775580171332557700329173172966203249239850236383760976479671417790456686643995883151955504627605440382093402792796684789163816106438822943764128022872018871586257697988447143770141343815799039026069018036629505605759457003746595212800765080749358396409835224447325129634857120153517728719052770192149357231986707804197908789628251268146866825132622459858583329491371148708268556932571135401412895647621931936469936124928785461640382298206356112683458196422497742689733365311067136032809056667653388726354421092137587372085322698433642090406188809475520316019728584882678663761329006334497226955538149635257491012288889318288328244402430189692071404121379071766361758821724126096648042826946071115915093882611628081366668240438751950519875363455127385111773915764993914109454192832147307760620215793588249826848664675962260921308694560716644012756162506514996322677835621207238167782015009294615281501473474696552345615584639017533773799999192447765853371666623201533817100146545306861043184278501302358534464325781824825526071832545939576216888595823704702418245698965161728065729007753587991300191914633547192331711110078493432008809973143308815934679920389500539531909862707444824922724471521968576510951087551740757247886119990929677106080094596414740994622806408867430140820419764734819739135509919913259101895743663573821215315778226628205435104302565934108428978307657056227610179622723639690331385267987249566599138681103999945617954536739903691824925705536399347264401982837963638645178257003855018301224613949388008934857729158631193754184621499547900768853833907751782322975430231476651409708750151907108529624562030419693026089665193813185673811824067255304819797187437375048703409752120819124081580935617110998411181931059242086160340987073106260847850628107146786998152599841857825722435976609162752584936940687023969228240053657936571786404453982164367797604312743440946673378127820244085305795122380636935707576446037925111658366762308882266870086626452635181382206940476247409104657812352413836747169939347401945489475019471240813314138712973003186772878136999805910615689957288457524968493383259033517267892862656427279422931648982192439022282872338031912279486274397915372831404001955445634585325124293755892699524161675080424924131857582151624397070412654693718218898610062592202324464655570519960346884493891387102306175438657005446252616955359280219520905616812423316898708677507266201187859734225075248002344623924677495236418327313251909530086706730100316855304321902099900594577234979981726454247856217148692538123216517046025969859571198299430747786536807132830432046900569160529987725634501751337284783002767478438201254770131752257971580048933503352085343534753215036812375531337467990371354764354649223859044611703311400014418388874804612211175687316513047505475332024172380339065191881752730791498164652854081484395945758277979613492651048049937463293282383955355746609045660085948827809182425237819684175000625364889252179878468817299381301754460652696711746844007207586224816894984105788252897572931878218528125463537573431119672334282558746075200143061627837419065897374761784353509013826354903151971850205640467606999164965221305657432073945004921118577978308772955211927356318746665708353358261479195800365532104807863040920436380128691591417562903595687311888263576405657586347277499840544928560007379091579576881090591045228019167839712568878281276702268654736006666370280834693467782530317207711966627316414598543826962258558590159913619945678212383265936395651244005737711710796143158914399223028221396769265185721291338011638700186000186553997080850413507675787890346538416867055621272193553512251493871487738856689505522078270372262855294154550921291243853754705776921488267181022654717270757841074063702950297792566697889464590591482199350335294129844945272131185425222246766032135363629750141234499252851570267155817885065391715954453642701061848775794782845218145922334550403784949730354219162561433270980310644044452241816161006812397025528274716037612145907727439954960855900220641307025867260798353851666951564917471467621142575894901205490781697336713373879484467532758456681873228723482915879700276324223426808493328608505556004797954423632143451347366757127144337915572134179356023813554168692082316036601727942312533661993626285054133780134195591523787800220996721138755775848006622400287707336681729017477415411558337988723971015127087396008903473703712735343796625295565242740891217090201877391435862074012009414650563986669565233663117449573500019453492191385364838742904331051083539279053007708033781777790983534747953559332674083424657107523221815139949838218296962958164106922359059313442142800710896548330512506401913939205150139978197393973991074018850778188138603611108816234614618702998792465072212442841335888550004984740729353444264361130244457962840979255599943050844158775739659054178390961190396704742254195422888729779224189995826631166484504361052137804415182964627352860700038500419061510140547532487224314586745207317291336030477183944595764593243239859769807953738271755255687616319389543451729272961203868022770995225196907708768761156657336450540245170629418016108129535731569095219230930278184559233374147880435232223141847554837087879030474766291390670357528265533799851540304937781322662826318109050290673003538114661799815479590452498700154146208304950952353726787909130984952778164514885756604696065995706839751474163298778668608004954739583117869009631771428698279358247832476725836990034437695490760404002570035988789209006343774170577190959730805679173039119179116988527813166427961871136157352602438221922698183480012837177196470166243247687544983308261200312564672269815114050447037275096188486645532943743706052543639131939783411243821693584497038684572300945279249651269570542147123367022465726909169201757484924513336173396541311588415445949028203948475328595888893210801673847696753738205503560783007861606560803248087328106263133291485883155001595064436922111264903617303324283170026517238907821902157165963531617882804209364768332978185903581962334708514184256517586339860824062013748951486547341000133267197883435027463174552180380590431192472648252773011716543191720762136055273981645778082903310804369175937336847252354098713795865530511957408927491982511739509267073744813366784810084911310929462032195421650494717158390106778119464741478631736574799759011925308341023832576585104212931283657326348805576510797100988028610992283660285790675929972015657224864212382608320531944501479399959822625639176121580908897689603748612026701943813967061368746632033284435433342546363643778025843912496740461812506892579541520627707680043982330803849758523374356469454466588948260837413362092518003619831595756243892910634113559687692675098821591194543238430688784204576774741085279837609414889080564273139513073379511822538058808007815080930937320492100839584443222105690338616071554650976887860295287822965758686760956551955912827445143226225158989079313646489909023338186364019451433837664059557803637141595346216220538734994619310945675372879303009244081917154731067882610968290692471708785698603610719733218665666873894785361079778953700376609416241833033614725315645285370986308588892642904903590589454786356145926772211818712324171357436182810905890383401035123062426418400633447153303729166960150081511857847235999559887084706575434745720349522303264946429714988825673730269519107354530222734164660761155748659031494055232837244310551270734994865842784134119427242731914670880737910256477928672048388867755030375883176873799526067354342083578821419019349797587007203745663215402612824791197562916030180281145050636061837068162598367752557515680948339252804158749196959864559411770183007576612784830695324641827864815011220240081358333573336008294160216205283490607516529684239171774829066260129186806752185216728229296303497291073804275217795966815530504982219448189099668530759454582651092899668672287631209481427674447147171420026956443027988467213581967429056390825077054638086895268414470863893787637222224585795135053668034067138943987349187616059139157998637799217686270694877935528974187488398154531080691198164520310583895349444270388202882203125927079255137490230913236931286454372865211436202299364161030053891853123458573125748037634282568057614983064309520718928065501739354510385773624767420500262752130118284747966100008998010994818323693692970421877358218140452849701615307205352334712123833483724532566747835141686002397248684017414254709726466968347501376918453875230481005699979601859445280472404364486372713971486485356326962501677309765499839774682058097228139830892825731519793729619075912926097978360810485685271061609305980383824366971354961674957478130201394348462720581445546020848729533607257356910158357917262788338550714461464033348901930333924047095109095514459806398819292907773603603298852156126642064911917290626420520556726202088992944448627350087257220786628409580674862965848127548504882668656386775965375651430473948666208573829659431357101182107126728625852712221459569186064893486739520633026906727114430635096016862086795491263773650196534116794116146762694940289607101193405685183570702141538641301241049541388653142972914304904508392031525290877714126011675287631345524652402220201871672582279149733720369943359216582795735701528254990056299139264724482358811504036354930436969329246381416700320256743586059524951746132714896970202561954859007018553613271838607427923058843307676185026490539241384994493977864108774373953679680413384399274147074997324804076580242629125292378645163355645680856920781700794409078012185455378281010429503550354775282913105260475591128492695683926469989650855855523011625848881582007157113134040830856388476304593460283681819883214726870011228518010566035061788099687114253975094416396557682093637217488639619649217353343883520946178963508988202375201835729049428693272134460318023552373478357911000031944395781035008175532171517821604896498531563435632267467677134726430154061605002873819170805164581846496660547445700427306852161920360489596506608409143921637511840964907925317529248275962389173262323454556415619175718478085048635724952983103924343137624808186836458840929333348065959694059830662584931803298146182467402076442026076784433688514961015048968456315842310546067362230615135733534742560858103112599980737951673514184547067696958556471870805139509864430014182635671844831224458205563201634574733734332421986173666576020208461199542608123441056616722040415777024944456507226891995259473104609056745352168387555861309392293567043204702341073389530941046716581807383818224859656115448581529235304608697125071778616794511695646340242217530151934925898444614910633100641540371849047509569921926295462883125253939307745145010013075644740428672323781672238449043848545068079954103245162079537142821741323040954173753881001883378267129514827381760475357056864728178187276575482285494736320858274880105072440622104306364644344571621820520197087522777231713870346247309489259712538856349901903132661502143229063306624277947418643651992297028691305112994247228589910699667451782651001631788014709816265777544734898123449784709245541790645443431035409295696216543914461469831553615986092877430777348026956628677800215035677481136740321012525568761096458102852122583537414615360037432187208098818996872758645399501572699481243847166237648009724697712949443976195710574589867895676610758893762647566093301058252064153797674274962549014056786527537355845746537399423327575940521443946889150434920733350333549072649887312661702610257871103568544084882257602436943250475991678275494950946033260576131798322643626339417786950404742046902421307109536540694152361287978772331982129359998934179620571844710487098854264025714982589679464042403590100622193454652326572305258501384899546740002501660268875101494935899153036840569936432769033480309085488886138671763117988001268196196198968510300376374799938490508175375653019520817812750797081612777334305417637176913022971547977442960605495343745792129471504364904271710017979657651178136660315648731628269187852915158673776328508040454162855745775970556860038162092081270256891128276981490832929780580437645035773933406742370416155039002461030064995420111200397800182960188448428948900131454038514491085007138860300938004010037515192176607863808137850640748132209795326043553502209550783994001665296427451895175084612287332024708892211504880045571110119319143269991400783786195353826092430709644942741349210461607117515419008280767332560270174488203249813708014717168209469605148309309104269264500876608025916513205696496363600163028779457344563838851385766148312640006097387929209172264688789533886837312333046160318856846290609298807151055400606925935341165915215151226699251274157190172659238459152418220174341948819731654741719378363069788847961766999049883460229464591667374921778847905845980603476851732261262129657552439217626928704961749682614690134926884359477444805162685704022345759349779870740739515046247589447043001128804012454276328723344063931524516109344732680689226965387727793961483570965937625023017348723519380946927828556949651416868568415054412733106140899992897610069817924769404421514791372540451919278873109269796339242959216065250174906551665421780164056919100795213158032332229538007961154055672922137267732311580452549041202970411531416429663478910984736271080306795762243217268976427299979742950669288333688356904413911711897724150952260541026739230514643846420894662571016777182087686586700730843558222632339288901242599006967294374258709226397840724391371993755564515096325145354936124706359113335758910644143002870598074233212262877777933029546426481283263370159386132244774223864791996405641855598534753698673490195744423144843751999388425161080016523499057343178154379907023070346491497206611470394841607803977661989467565989357290205370017114072285181108137081339327374688088191904668208399999452515924256992921113740544986342300323739592331953983886720308346533235474172941672514263790431593865157741000920079999274865722922857642835224591553347725019744987872562058197373081563467370682481126155335274441861350796468192226513348228338537843837490874662596219240814816326456185812412829464723130756611783758408044635394651826381429034490523352244789886660400197493229401776304136429496337628904874572316521705561152095647393081616909333523824001837580569958985439960465272910858588643879042914665052200746699403136683540707665690141526245750664494371530860390304778449443761773640466286877752253170660170875251607311613159373367538664475450847852088262991274494375578529967887580514018397610668128883215848973249134046116276594228858141201751700517241750083817216121263266758972070286104833377321532828857869917999249152427929881519521125121183625342143158125454859941997672069534961327317719590840010721450507036557927177654680234011010130336866550228728347122103787046532899375073320887155420670888767706907962028084320790651214029577564616004997319900620397949754866108694114721905839358377288097872500673547765106853394039422917669617960305628120964057717889679344006583299011285261839695189700185328655311927258761476005654659192299192096524583374817023890405273244972111769029495133481868406113553728449048486003877385954462196291475368519872902127582265942395424219407148261957683090370528368258045783585508589114210838763935678841897651105028530935037201165192836954995630944165188482114754132951036610668683862340725809004311541397611577362574406480756930141625981314600401501225423905530459015842790677291922041983987838945034984568372018516957514129355444624436896153320068936703032375214414783704747662473303013747427422640764927183725660307655586734511057520898075227283375600278075183088125820719380514923834032207800328860242368449148122001313388980996197803110505788819860255925345012687875878482158043916473980682247271225046665788713864545347974672017557367013249206869944620437021413107860082943864582427082394595150133522033189016337000704647227116500250845555945056236993970630747599681064675464134359630472498356891545099160863905216991313556356038461743178535006995639523772184380324138053613257440793107031093275412961954187862920321885149517779237073407521247183597205099847480724487761555442395566293925785754733679891163687652779800247622121821588546908222176772624556451494569936581609879232595508872104667967167781545096132373605908011102009567085981816164117498263850422196626354852812921006228005573329432213298230958265623191546660180022469126416779601867434909412046379485630992312118584960552427995257930739372572120456520783023580437271030122242933928114205878422805475087393031264814760882407534936313139956558463054303606817983332691951884758670985708873299517023089048111814099546287140765466915375684928312284584293807765894655041086464701180007109695150230514212654183920214865783418193544170515498712007802844541201615598653729037287936001639181104497401831881354972454352691623026995787183581304941156412105778514316781038609856313750699324397735152070046416442085955547446225749948495255855761266879725462002775617267241182621289313467040630919555150346375120853033700341473717748851995730724445641072332657121366383525167408480962637877641631501113845695308753589010393757692805953026020248305481416617581189613331427592548759023022963489768701217214391604138321405034732568144176875857211102210966731341964516253699576165523745149493811963477196687149369063981852057732834156085278567469812095878814831415651340243448677519382915713039359899051419374428810217834511706811373783755422621026397088194861285539267563659953950882162830815225036584735906690578422147994827417119034550593115208523111712746315018430186997772420639247379524159774737156439866180119874122282640717401480914569601845364999877567801614402485476871110519676741971612026973841749145083269398691221595759395803489167565359180071492244388212356847392821996339402398453555226212446421604380592650637921386057017789473284632469437698931073519716804198126811005181213705317993286218508225765865404883884726335779779592795928554859875279670454093662348890545080178947133454985358423650113803065069641009409458039531517715931023202521059645123394454184186432599969531998821831706192496176737101082794154814082533411351954353752421955678773301255878019328414232957809396704810577255443431726045514034585773667907993603604992368402392709757358593380009288556811600999966661198437059527849655286522756539666989740748314248543747530252605992506836966236063932077199386414747594945761102598194241124018601563319979153595067850813706985998027031097222028461494451899029379672550842351418211379826948192294765723185140360250421964126559151911697787369197582024496135565941564578117133104362707637541041197354724285577416482215777597640384709814101689600447349470777976055601246321736123788143635504951069257421508266336853798939900247909745494443560533473677775529710577719044824084230624200796056922681207865194818409827499541764595318976231735389107129357789843260350349823091942215346413700540591538651074299208138232345537882650703193983320371852250468672879732418111039802185877301063878314757311559500759070418201002349464621987241005541506763898727989795449127246099727543582645811616495610582161670477401382945378854289620459780410856078757390965031539066691846249987950917621748984123962837257608343872693907463754968840643135842343855175130228686947168325498745706634617458180425977235023543692346790987022046269096708922240271530527650602156741156785479953802963390408816772141524005513952754868982150757829801725003299013382231484179181476197348641381644288948841201751708869146729149217907167845141661082221945692996870911125537646256262743573285893365183009381449030828490265071585889566848744537424895139099684934946453190605692828651017907516774766315629941966663581333252051816049122247951403544327024230006323027325416302370871602149503260220288227405154269291705601511272610759181392360357955162463251962499320227907220455951980690795534507065038171034233656330120878175698796339333177930844391397093398239157867179132363114022688815269432962402235255461468767815955536569843984371388836588926200090678821203767379268237392216355817342116872544755533050546811617591939267431096088422305088007022376475614867485928014153666076809175937010298122923276557464264497618407184981613553201734897858015678727831169803709845994808890128093269754038426478882622461980774254744705844609893618734528188377443583990394212975738697376044829966384739938646979020046903107817219301184889480586809750952245555917733881142763410259863672492434035913264928389612360750187516629058291214593065178539806295237981781659807776067526010212161444121044906933798251723358228196436654241462831810592794269055590344630861764032707041464351615127797162480512275854979171755123862304386196783088984566606207377876414734779261729989323284611975988061215540723040300337991491350385389019439530716843525718121520113239572100200312548502261015679051721899631175557021202688617274875824189589923219221730596553029839417099008424493451464381003879354720472979822657606311220588834328974803401668781151404880978333224606076929079932027014444715900450488127025070678607698599868507723919966627192043241391018536416375737502396504784377943614367333197189318243328086086147370518255465818485279829551217203936217993672622751076219654259606658584146840764161868314702190732668680029470836284663494485212814134142612525704690734318026949544439574975506288532920595792838404861724718002700846124906613576248090926458591212740577795076012848969463193890881033393456820717656856741428656464006281395993140293264511458374427491112620315095247311822077414971059947876994663929318989638513051184295219125451766601485226990790423325368578883857194109924075637149815034039497864134356209706201576667030351246524190505525401478738124147247055930777451065295634807392095027919832939661691583081740490026061130917037051814479638468268598590538674493630750831131384556562884349557392694973145542414340627249986240321719686189976535227114664270160977440589590226401354866888581778252647211254878438602912857120376022469298626885955984887159717968784035235901747123036294933416867175096841386842917481639851208410681965915797615701979885285348106411972919687648751835070945154953308608781227017721633752901433513895585371241958001585268502796310241679967039557793760016841473956890252283898786762604631123280048735919712627748553838320250459020929945976930252420257226909187035826101524399570454174683496040578726823432259310332358947072942274520442312971559200369206166908590967135373882253999102001248999025523421374901254969916855638556981428916004468227012895968977496813920127470068838499029388918752832885703049931522416807144544092740659098750244785782042418882643046346527369544934705910237857563382105486883042671077797675166466984186372509860350658541166219165456037851009713989059428647300265193392230328352881900971003203794163239248497098555152990188696451888942818426273461393857846818546015693294061255081032041056237889527341520824494671565116921860211907239079162337545451382891510628669823155730278154209234015487967696828621696489792042651241226004860831963478678592816494281153834001861764075000460486176257778567175862583528956352517274354234905840780139493433105942525784839542859371498238600745322779019499714914745102109566389119570766550618279293302732772656819426885278340694018643551793493643885945937001421053298471146549741838066485824375326304323602825133974543890857564457689308249633072115577741957401857347963794707579966956823202897407936715729191125889665201329697338844900312545261164553842128286825901177430320783242654106311449540589434818120905690361527244671136283692076739089041957714344644501965787021203247376904285396757558591296345828549010111197398082275429187836133881939350124989171349630495310525214671533243945113238665136351270815375594164256619489602370713365951292399983741902655756125954488535922470947615501149898717632020363533984103397937029699836447129396004224915208869904654553626702952419912378352705763998482943720490160816502306725517172751066892800248719691647523570486965244165684624480219321199864308869689992887869878288804360894657838691013279102469932284189786335032707072808057705030067709809722606723367986944331018085161892613832204632902353646089604954229610806323674592894329083771259180081022375830089635772310216176727214480493587106107523990380329219893270766816304145042904014399580836432580260017858517820543371681611249633935017730236792869722949064977804584089591699331749613046451655027177787698886696903680809656459423553286845776097022701132601992685176509630073722308022797993959866553845751712141092980116793011943231119303806798676570621825602050192692500261394434882226579186066932711233010207030095358087604149918379361423962693596578723317477057594357064851429586564910895721120604157833076416211005455796727206146986705246375402399106925329438665811227451274160117334084303135122593573933297638872484327593646048546614966465739524593395571912379925441147945838818719652909291571649078082572570067278409564765636266231179637345749376970347734669622540347001212290536276532755880480089375968986422705041714542282804292645776118279759155537138029871379584635942014529286232699192689565379833397876439951464976195860531739488418498818583881318327733877433146093535837183956938616322967859218406736315193910038129836160278792499044677655612237950185885419570701607295311703824787029568880080817816648807628855526329039814392515170805557464428311538055222361833582836219490691847504689330988657068936039646383582575083991777412102423009931811815516050379233590123873390258179027704162505601106420136977724775512026447633068478719881093214715525243338553111443843150167280602611995972806223878038390354801961621707224027638938950906983576689725076433717240778960866311384460987508231095566198052764954334754828450766424025470484187460422222858155828019072716580084699626433341833593544507056100448803725919933684541871023715406815361117807005312176354946380261522569732969525666166383527117264624601170044403321018998163501790706779641639485639480420856856280335472813901579675275676453337737330171698222568271244839875962443220030289784675898575771990991826076269382969964608422313446411006479055960205584938842892894130672643046533458661003004638965794506907542140487123895722223681871509192470396397936164643181265453929806757266332384944197292282003728482384780053998567804348039746617074992637367077267113747304210022318554749395403923897336092674006450975807932782098324827831269739509045153120267374191466622410322247251358855839738014377874801099706716436179767319011746544360971171708495668951214204444192226737663641225644532585226767010091074648687818131276135369861366954803829130112274550111109025825945049414704259839669621323734684505308090280036569179694078621232099380253984805941384948995051211391363707556437634000571858392592637424877282342622411376694754729214378015324599981041945886076891605811858489048062562332573038291090782470117196330025127796834983675392215802705924365468746646172125609193234785017328100807841984957329183280037550817832021138553167926303706063258505305341947577011750408223544668118332759488778068699674578472065524535313513120647946586441307935362373315253056670812883676875641059401342488932752530523123308556646645436054228370287272362143994430755125768215638433470513564984314717813529859546738252392708471671590593502722534459173092975126776909431019852889476213533874096037920390827292305332293629492849759497725329467414778342968540797510344052017132082986042399161186784354228034529005945095279249754143675859907944448208566515890266012870792932374593741851122580396880479607857417866010452474704675993352335289019806177306776890733309154376409799595111059895674087806885458381283803833246469839418909545735404826410030905457448930097654200013586592778045576385921013557178531543189631793237252222854115888719810470027611815531452624631466741591371691197701429497220809563846747867653162047638653381843392460799689663120963326779134999786749013883277012259124991363892343548724776997448237731977925785085194518566861770154136023808974411488051061781809609432168165183471700747756757413312043873693268764770573954713852907550322117064587669715588845433459557851167652755779661439184768201827165376135137299330573448654945345136374769069658276972580115838669048546844393170348008004558818507603904476848911905040918969570803188888817391967163619653867496574397945966884603582595523665470388901508696605668855349106635520045906801418930779198057944592596363565012955484235599279612510511385667477067553822232340358111940937185294269932748899866674521555468427169004231102979931245638906158021819775465837614561903714568419455177543936359272684954743465706751426355578162404132490139946823490744639403126999531037250679984800910381688752547640811187520254125655652380611396630207718367850105509982600008719036965709523437319692922004351839547043303462268818194930632885256677133063969064751338741530763159773854131847117579536696038159451500130430476770041471065237430100954981905076866453659889072561327226077383573437758231834552092524991359217992672641536780746529243909741132734572267581264969451613407818981604171144383453249636698733788776972109617862617171753103975044345614417520603206854391784524529972559044530736033069899242049929695385605669283785383893446429658170420842433738044189863033345016321822680487201959097259034885559268757211097339818915790208104296225612252990600926636952592006435942640762313530292357113100034053689192134148195609102160476030377529917182411876352052964615927984076079470468661718904830995454012823922933406443705310692231766890723925470593333565921425992371917534732257498365713845040657023540629541143916407476466152827027981144177317320582838675592658166771734284185925835889770204213359423431394826299475255627268146127190644053672309556480732581980345405279026319870910433760284164876641516014508737096603663103713404139947754045484609218518661333708735730315156749130282546038823404517231526524989193684427824573107481009061571258702798655123459453587235067162384978875035675973922880082274386181023281391247847257221467169040043728632338734434335007938021018415389965437509719316244000316394354890860127054691777361434695517658431020498222474126380367397156424860651872046637697462845368242747494806392005053463784446121697836030153528085987620160875444846362434499436581714519417509753475909969703622568952953558893719021241611325577404503702934562483708757954907692730495045325024322931081916293490352150385897206245943122446204537624523904284466123752391649216572781685286968867866850453325136649145059763868860114869946730278081597464181701655615586307545730689290651384235425721065371583630210010762706634215633935542485456573103776771690183063864872323817656068495759540862687331189944781508880985967934549434925259333811596076871144770131409656500057462031703372497146272517654485141591069727243577522569768385517819483789817527346581792594624760925309042522245611710789181661750784562026838338771588908674746521583532987679077460101132437457364447048172872550278781314631736411505166888483682053411792106242841198107157961832492717722701065434198836448737554332574100191080539494897293246035846661918088526728273657537009674537510993735926002046007512581384760482800086898927978382028697097868612244560274264131681511712626322698324645895281032761751852225296005450911231678345316360521160416361999249526023695781222205166137585218593921695548717802962026403454175444981062056397611885190584931476304561725471077088979097603532850721086008747035014827232200323613509662941799796965536129602870495153516697248076375168344838164488377664470441095700834124649832523107928503349238379405992597783744276898732514618897101477181407232459003576958557643688281067943912274295776369322299075200606120576241607639126177144409189759545286152073944070204467278897460775419096178802509589031149609091710976114981759147347121896889457203300727707226866824339638941560999122973960294804940166069720701714940719592257808776478305451359324433643062771658431778117094959452899180153777270368786148360656381085666545296848982304443880434187478705317352550387600679197410492905287311108619424639702991986300318733076285340370156663991235211205539601571575520320587622229317705663161294517226779110809994750808947093583113920606728311512110861780705542589793716392081209771760717375380058854491632264404473889120757842009852368500846136879858599365839657645370372287107380755766984043248535992529130139329473292075595109849104690396670832115110178097857126612812131782044222245959013617942404702277012885086642507503048966037072191165792450634921134270132466494813096114733099412755206089149023484727820563138755868109328792610359742185366460370937365099612283212733362726796166753430915206283567458996596937403694040800360138381717807912613450221993263709309611377142362417055592821648956814679151323990318389348015626532419387945879485117668581952822987465991131255771890915821977381152309861027059983243694613433625608611236368605921507398903880981426495860114906274230203072865165124480443194665743176513971497272173613213476361061912324250746043961970779268468625804234792506219585547609144728884060154216700767853556176219345169127264416036986098606071050397425133854295572352327959419900690669138769008957593492963309871099168773241808117802126424781958973153257559297424317912734671718109694093113090661564439252581176624995874270136006022157972425271205031328104813346151542857199184446866673380282833605697644551335986905176815949331448732973727379236979211360269969493479073502007647395726241347083741463849423247330103472407898650054805994081225744551711158648275298415001157761828694182140222928245235768709637201392156680077569467822903482941368678301561971846705211237043014859202154221082372042427347591024904105907788004548325839801329588232080809623506688547378036202043803800250820430983648350002538346644303798893429812846798953086520760142682405911214846692235544407432079505176069300151992972093737623899381044664425684802019137736651805194584758428007047526483809785219471577063166090653316680520462705784949852482698562383427776804525399915383519375606481850287124057841584517063816709784010465949990958585712403254927180788551941670938955209585076687969626555891700558765381522522347211350816301334721645461584825466250857155113876727209355551632156822232680646698650780671861550507511767451745882824601919442935577588905737962426870738200364724245404201636709798817962217610657121814489527014460568731829981309365160196199504964332690412068005825143712910354864121795278531173172220133797447489701772234580642241358412236731153425736839329890991360590919708649181735255391633301711804513915635511551868823024485634032895299729941370124506203164000547197138176643018319219861722005845971938050473378329633320326975093701497236849703692598160073598782604101639596633159640305166510709281034387158485741510913140498726951778036275784143603034574924776347463423830210612266725921097833265453657510274645808028985226551434179263373088570940053849979306217706519283718420824299825533826520391227901529568784827553438680829128736294265568514834932979798925212589271131386442705908169053941846842451702036911334395665526401237647582873116669503507569220309944578318379617616239921664946144965473209140500834676484757585566978407730619331755881628511543158170382424826495867380178606615188494485967751336488402861636879655429326992187776795620682500341868134206423572930950909046043773303915863908205793551139069724690297834472053724949983290280069313034378425525953683503496205552076293907094062155714699994138512458256435635393902228089130811044913365634514098584087888380884237116130697468446957330576339277461831521890419469791294088527395775651316522281672025292174217417710822618316700148242202154684140697522933315186387476582941255429936496735562648097705851101015476147373388616854769645169145802788489359977417085991490227449769093777826037969277956518058796976107106919121451349619029677726609458859669812875960591566013884822397317329676213233212184666232782125312346373451952872024523160329225631577934944363664954731862075864743060538734732685915625659769451135941107255347103205185235088117137012422073527875071774341933639255708557637085348964590909007258986736404719643613199308894505811274728082748806195954357238549862721825456325443341212698359750291450080545408982093848987069876353635125572153910848360199727688097891622011120754782673918919645449150670569012104299661523758319103344810986948729209425886121766961082582723857851875123886726905854631228982952995144552873083428877692633287000547608125421779174574229907448775977790097682729153375278907357806443770244082884216464373142078923065712867873079412759796018707519148606890140002603143717338858756194950779352901814666593919073441100853687442690394305070051900722476764279884988655362527391112717351290541848976665710079856537440555603654425008791246894543912934488271023875932666841296857370957372394910508391688355156422090349822425243296941693490194066371303772771054913328664048575972958432414584440070427483450616004072050172677529675091140028056999689634210289599310787678799398209784424172657611514757789238045720028533492641374831981394452631205361866456243050813335718789499123323048052922819718658513782653929415197842430844370418233945729426337104444270349589955756278125029451207285142531450770512269463148439088494073473075449480104746114403287651433667847310147098419232180225987432355521542754912989662357866231216136901262568595624329259793625584696916345959757192957735856474366531632221102277715354917280660704730802896531095713590314204638159618503213380715499286555298732346947323323936582507455017752043296604629731066577917308582136670270437670436802797781186407068707598610884906117667786800388902825221806226876244515262226324959752268434873708374978659811143993434604447283445955000224659159065364288834933135320118208803446835191324221414467853941914998505670878263215972636087901941142205562979272342645417923654931130986046857696214755792061327466871245124603541691771000104539563718152154578407407081619520826806262828586819885958785299383999010787508644970921266458640612130811593676984257715050860081638333686711421146383446451442942628048939386297930583459154959536906097306830404056582326723667653202973216649154832045535169717762636250578347566705545858864602164110113431582374363514354712432375281804416129064689091138203287526863760712851451374016213110341775899382882115254833631493310991027008115390064951107457862852555215448857869595797754684669380613201533432941808121194891012411929374499361702390265932849704212190030663286645268922753859330241782001898105423601371566718395576304814587963270598705636113643528892426861710333972755026810069620624507976228020038626754488544098148578119279677981775316114208223757377861160741970744835944272778933090991345892529795043853937205906994454621345811278179119775599960675537539680353969284749462991450432683184517222075021115221631191069556604232443521423462246810740378248222885205065247593593313406185108511881189574408904044603600719561629131923538932615265340593254272961435700848238485873377946495124907159096045733380980025585192320413408198227959813570595697885941734735273648222064316021465514841803083211925889750807550439439340737377580717631836058425446276876960885366179136495435034817111435794465373628003368324917871366034609855383684364221886211820677209111847215037149410439095321360979949447293781961365439485201642683783979832861412172696270072422049162844897013081655225523457795910689913954490693670243157584083919375017457694561140997346213928326491174717211208490356995338088707157854674379644926912526156297126764595156045425814754368361463332910401843752621548304720852507925084285363038955784784015541224124460254806309066976046305446181837353372243518492234063415969380992053911507340857270426325409566109301185798305283991760989896110221805032432318597601230942664532719081048695317612053474741636262243369863002528847574775377343512719507828867906510051886214851482124031559808046370994891536918178336336165091262814238242096386331212826870062417158654399747391277234634397703544127279408659410670358493161390850854413452669588975143853834293064868269025712370780653670794733105389568382389473388775910345317011465066558722172216696913747965717175823546522888205942533459394548926846500288801667575012173796988487275383996673948231474246530681164428832729678030111975257552843241140046178204966359478250908676772010142472999427020666337393126991890857958870026740448206090463482780419535286290927973221196391778475986766728193624911411658396053130274504417328316105508955998338488706061447100090213653553349808704788936692154479247947629201966205012572552484265837059689337290346559599446272091108785004090266855658783055709500552663028885989899584685480600952621929504859615787491605532906622691902842448088431635157626623328510628088842348774508120371870154558122952107075703437936221502775583861698152830626660258238818587323520426844771938246941796765925612256843212309049421667043037372649140994123550287960615122081432601373505749358581435376277656294613992091495581503506316230338511810589541272271828486182801157610807809239446559979446863845640596386160625798477545874825004498512046297012909531464619155685973209993549349218827928461571246523912369875733920095473012063359039315523955223907476709477841731972553203665549332952849769083033335087064733953417768543136898205058570186496057357603885572673837123277759075920733674925946777224351361839787951530977130312851404230740829489736439617433462086783338549752434305105333315002549759262870409060066448205350227167051536167651553257362235010720347452803658439044662199872858228704986365069180115368109196669514467549429296182226858485916845202996770314321749737792939362589269731911731915242724434009043400112294296718366218256741756113447140067934375255822972371619664671577721084007429701701658973462874816864902624742944066048351251994118005737217418089717340697995625467102067916438655130951136921622942049305187218407744096806626241727937990591232244526788114144581829245097356369753131805722624223701181840353335365236073023758074453811833673825368900404619780052627293926811928106181073249916887589617416961430384491682398693335514068443309884787596304430195854010915282750344620124564146114377261216809002600752011956663778797566762304392425950742995995986404859148995009754968245212275393700305616421756738908662755888974745297318348711541542962341112918005942648553543016383703656898790883034463889942327725469502835212811795466681552130133931196520775510713526483348048045389324206644633816417605409720166731195525260643334035982500834522401193607937694197078605612923537685651278918774513108430051551195323219234555272059950848638265565849071978012648415344046227400339173102008505507239921038226755627084139009791391757643219544255002205980179668612025414424454729308280465831716738039682372751346454151418569498439005564493057166030145907969321174725434144890033769809635582349033878677092921095446176921824772035615434164713200312057691245200418481076552835382056466405180127539985211490398519078737026390653837050450078105085880443534969607706578148877445322506579365485847032332736454704731378214305697601172379042733744490140585317970395113909665424854036801166061433553376454774341239747922166687427902581161256451008460954562972511347054842843058287553756007738044458740067896036404173170403242422192457651867938595053346576515719687182304572933269515036226381215393823279432522397829761069603040309244945553821268256497789344042396989574331847899787952932227385311828679493848305307989712242188248829731286244474253163745927346237080059188074498534343789835937048449968975456688137358084810377676961017481174874173544225261013859856324940640980895844655384519087547379691856027363970554859809780437414502895151185195194511126436177685065058266248993496987064465135951271172030672633237882191404604458471681593302363622252836842679131506724192742468955723099258018672181882631658135974322553618808583456450620099478500676531031266976428925654949119477974397299872941403306870862770706354945506285020942277287629522942270173809722518844157239568138505604614809355176099311645919486684610862789233364797775700813188990510886877158654738751825185132312331564996535146674832549399291974589207251116182646867023421166687587509823942922262607668117420004887834026541903820577979187669089537282965894436708239216411853012657223810155697655343150857727198045448839882387944596249096181440395107346008830729989458523193976221340473491920313354781585877234179250031096616397631601466212991256925784180109934176333638564385729186189128521325267731184595479641737765570440629115922560657418150583304242894628224708153465709345940706298769290849513172647829170185429166191285568874577942186790682523229399596632978965867509952095234894110430569525527738204032221042658513568867041578615424357204856013252483593666160285483924052247683317373874716289578484572757000498773908298642863333793885237263056113389631880417871107950084280221882064320713543372970653024658337449438323004255322799693709703743198878772889154074720305675316660570715409219960400754613321879710669308009932090115134197979021305583432931437196525299180370502743274995620598546789958994929477084813257802053380210873920624525226638586072598360437165810006571821895419526997184329669759331207443819641344277392062870353996469129647366761995459196838673258163473528872899350593963026912955722964227795039314175263635983538656265669856651555774142376537820293130138345021336444375180574429387088847224772813652941809966331291954077081017952751180981615029723921628649095540459548853210202575128648493328272025473709933269465785796345763855280998082756874418799184568803456277540307891992508574227437697303770340056448873479420454827730318917961036649309254966868346767087983593793546011151781256718598767091420592854469991966083191548007976674034201410805995333570498542752701851416758054218046796964678579440472489242801533040046127719159085212553493248223334434578975407707527944434431557887652838739269326153156954838411943776891827608700260038393080154372207684534682369449168392216982561773800074164535149454328618844208768907568664913184558790058651896364547767001481488872244438759767790857227505307301631072426514539795589175441564940460718334483436460063872732646141714060854048538173126882038312988894105559816742874956290803224422307883577067254003922727825663497359681465149400979468612041457775491143098442861491419259451284630144259397361814019473714520200201436771837529953489492133335610049859284142283729364254207843122911585271362458682259199299488975845889173729127919348584085049961880575754802397971648631717566109535651183962207808227898280743454454100752444675169218725956995433365187963334900173832771076117198944755940776508316760370559795326600168961774928900189119723923118792223687329327807789541747756483125675218316136800885390778661861079269913736128708300485948794498977112809395712440387590969156742888965114433172699493350635255105489678300429746370367709051551644374515315158062158950141455718998282483153753274756015956014961861511276148868484807133981913882683838216297505371562083934114831362649198373186266298521934553570824695034188584289991424954392066537614749739968006817871629096705533916032771460925122473759524356177388213948486532479938865548276544076160353454289002217816846245287748523612904781398751610538976593271645813260400724213976889878662972866290106116257371880113812262293325322153453737857584591189569281174573504802426299206468312531112032193336248336091016978100303299640892529886505994916747141146406091327130311039841590235593900454221476720640673950380056503899031775883436145222080507612508186209839583817062910799789761038041843272553786803053854370135430908619474563981909471043907896412911473709184428177613717475444491730541079645743554921376469995034020983004228649533360394601485441946261892691674566639053788150101803953743553769179735304867078871419092902224364720904828536114032672357938196135559867606758465682248776714515767403310348095475455815443564176607837027925323928821238398442004703926762056422536262423590393320502538569848202196351005148683707400244833269957420582377058609925439287702178385525025896358243029656571224365509410267253887296777986048360255094418058760296317900805126948419868122959369835899610648667724795417491708227223972051786713027955104473286706235088171541532539568926754148795492672961276521174116920974107209238799528409369124993410554803660334982688212046270490303629024593100443804156544753115352134164600736296679883298110877341796368485788452607010075476881817408472717905200333612410219797947061391005614592644077014438606055767095149096244111724840112969746329445068919623598634667071695548354284466911144172728833665851074361092838804013950636010359891667243854393654909566826323315379114384932278030997218664314127681507211043302601888499207294494146541249617731857645422666283908177845517947046818994616544422390817711232308844455940444706394047922361105685562050167752981494075763694486365645447544542728352048536321726423318617348535383892778213545315143051235754587003898100172672142783088270420401344022802084916416761612294013316560657136750890448067171301896349229830481565242217214344247853998788864350816912497476730552094265410979467778626392834169118303856354217668745443227378328346820489952319736970296454549633909097925248620268207999742789785154236194648705388764430117479559497404169760488680727733645564408861564948992568857490917206842637902356410751080969876247366065488117415781448638625585168188117414518523185792565804684373541808098556756073051867227777685419003912028204137647952462462686492281953237229159127125232709393499496586159433790026942056408387169310713130203829729482978938477696085530187887639655718287035360212984753739742234875515520170066672300348800048327067083129013337710577956102104518075047204231339851145644884909705623663638682472372167790433531130008768702128998692124405400289894387313414284446847365091403484180458412103531024018811088435968769630881918799008291586690354990117127018593969344747379216341026005657066179217907381233494060349293394643421297223590000585855320251952488106078685326667348718812485266646063189747144449588404172956932767794788266803235669449686300350108520943520665789019342692490867128466133783041959349399387333953207652440779345969998048955673606189764195730997168812845549748090015378678739125700663789396149847669663129489414262584616772837898223252858478320604673713411898766641501996620454808013973939212285159460356378309550907926059737681564749202619571467452268134786966345209996159641255624185442727811627944375186146039455949227708352896296113692663278671121597307197767058338842591044222714707476177129503778701647477639338731442114620706493450089981042380803547342391966739016196544793163572227304317635786755923228696989008760010245324395282254355376391787441889196313971146092989933153039452928236129637154143133590644307843135418650136304175033653590691274569825053127748990898444442271777859246383903974618437370679462650684070974511328841425223813502807383255319661750585743974140704956589994668332803481413302861997495940351870420356884392962953430782085303072259761615480940162900347104241411209204141259474916252937171408184850302328193995709129548935003688325676904815637947062729453887157695415663333994648925228449699522530607972579642839223092470690682848937539799854856065271390162068654706018481415739023272807785944951427793268506184118493550870469052203571419652800402726754561282195077238545390263448896146348141381273757706214061295324166939846402430871437810218638058908254650171833004494092164018147586661469939878400279974291233816015305508506095054706985610750684937304355443582780011828469975456896447605636912007378689144419829577468035282163016952526875322190679359155995370715866571218554357376846871789467578322429195040818794086389623538887169307049274077991102137797138412427533225575510995295401236139768845019492445372124845005586314106479681897061092423312028351347090269256206957810875358975363997009395398058502847951091693164861917538413782768893022288916935701323956404869234353580919945246084226297162824600418186103398776579309604858569811152372078575781591535154102096562033524436695875411196232366920955713839000429490220470374861975678524256121257187224174829091343104179516674591527546502602290525701591109789774584468215305409184672907559905119308596611655364950583416097991351114321212122081696571763093562137579361307985898042645977983911581075721015215257139526161431832016284758580614991923031276677688034328277726132056000954517772433657959860564635888204091449110600450360165651239607386635668130433046626330025218658578999131523225667394822031861915116858099517692948895594580065737434855019718385087594943489813533261507046203492179032917977036918797487738527996161577581755261053830527544020471538830766747622180960242129380657373411778201136775609793123303533721017571478259870688104144100244013788862643449301999539336253785293892338135256759186362858293362310791221541150286271720718459623102725659376168379302089628665278052988129387457289054029606922576224628623786673800473673874774696168801117930927481843789587801121926615321705379639240552957564494581564646822749623519633780777980918306183724672076230312348305130348382717778089055045546369178695543408351404913507981984913737461610095493208249969942684097859284883533594949430384049556412618643735539490060809732380853901450331029992157154799903274058138623086295952512712423710247321116604042087894851532048837402968592509781662467050509257580747086052616122145497902224587168631055089340700881733177876675669965777771361443378742339277492266902028306675480674870733892540230516486106680540044094279258384147753815695565128356819144959611707931716778105395420373736441593708789421500267864232053202292937499591344191455658959649138169140576241068514868839666806131560162879494231615278636190511180427547025876524485047676624984914105555269678240074003316475370088429019315283529713784247739048034590421547293323114198637529643524699893118044601096029932594124913925973781649918718183332970860167894682074136484672485992365748307972700440041543784167610377347149920756979795829849126150111483111103862825241833081292175210050214603069084986932864836241724366038615409917145195955608591124393838890711975241269870864728070004724380120374101829703288512729574368191322429074928032576464695618511966330726616318201815350851737625607998284505808304663506335114671348039807855032555797261679067812221744130202636147014193891071523853930073330864914602492707460771795436764664872147245541525033950053581196252203571800157428525318023914906357981702277905670387150996930523324895545975139252940261516726502278610161942699652321086921226963718849476288779016328690116722841169706498258436940985807957150839490483037735460985329830958438041119434227493351944312182851149047069191823702016067086905528028349070804646310719854075559707614048439313837798185170055561536414151453763686187087567985540996242774907464174620043900578399945453497302796111635850700174106618134746992311903793469782032862443358987648604066145606741264455595982316792736804190804536263787435071771157353780059520463119300603576831308240479194767378949919111339961815236909437616329619041575590598973342025130068377048591860308105081692417217337240759982627697120961719231929191640248240286208279030950660318199214442507494886948513258044352792692621482911715214193468314449857589951315673529966845221193806273556340053807220710569941283396280505375308933734150424007601573619742895676757626331216187632983081465384424924717181103816817638915246826008085415233325652146093998217042425640135749825781804628499981243295190137167954406835722391633022004321647639163103501165654887217983356943759506474623892866888665779076207524090147313274083947921706256522496758895647006292064806796021552946006695222029697562218699042043881249379332768298408683057152048822364613687225069889748272904790365606353926860287152150901711500718444032412597025977936450629838027279247588844174512458714241543554357145084900379324016225512057988852385662478374011892452518464610027457384177629828180591840648528651764007599259045086332607696562442949785515582299075505835074131431685503925581799665967991834574735319941620798471613703064401665123317651128364545990001755011568464662689592779869976373657374892587729304623417590985973250311860040154814953552086429407071272422911606840028756537726241027908522939040302767057499546093575673528427969102208326581781994615940940187689804211505473955674847866067187700981924213381766020490100477975242395616325437093912314443576006765875377347861943210460020542169208746575625446152383575229966554384888494991761234526677581930284064778383236404927280122495313615593762766982522769912522683900632751109018352713690431422281136955346598670350358782246568785461428612901825003182799356519723741485604480682455706314755752329559033737670904656091997412384386941168026969329870408736605953274103707001345597995878765018393825715325380441368366919031537808370491843217187130940550389407042773959962119843922616465358802529950006900549158278070025810071338575628703415742429914781555370959939500647231955564913906783017758431876909641329522960829678575677684877947401983438528967141884953301130543132423661419605028286287295998233703532360295529320874212403040552426575913430308906966797774493392752236050116482858408025247630504327095676383253704136591904166700741040789509862698377966264440577852848438013925261704144604064278522565365999128811967722918885928587283823983415265209552883801167231331284883467912256129635548957110388360538810968617344550317742896194620513740132687533863192273072413665250033798384636253964599732376429090044233510717174428704431508573231529346749712334411854965894860635679158157921359302439629673744622836160124259460139290293663881966065625536080118036982208205809510971391702784808000030965158643744212610586535231541888377889979023007132501020748736498312873748085118205023402283334640423401285509544268077824384842237249075789965532557571623969705416240632672302790781310286894007171634236339445412806322049507284885735800178787409479036994046278739201469569294498730834032252457413470122478828797458102529605455199971839967143964766227156488738831453204918674133374999153890585171267035570919686272987600160519488009807642795178216837028606374783962549722203111713851471804389037100586593363863662382623577037087750931997703019879412218804289642281778182687498517435899181777904823111289300634654804511345602058828680661870460809167544366792856239598700430373711308244654373063903370783672435395387397604174548892121533179383790050832599435956422651065901606760468161982482816975906520343113428079350231531130921566695923801922098995202092600843012283374539861627037041945845657115869489298565044150685044319668383647567036588386023403451076183641860932806081266497290596823630272591893070520649924188727875739986281687291651003594617806433990957395213370794625377373915470875537402457944787104319516930316197006236827320240451451188050347593300340256149340606005289995088989123656342548912475247291699432279739093197308758861195552261497681652210346185397135793394965859685194809944007385170889724148870291507435508714497371659607998918094379059585201065490531862724798704348628560877539220688780626388491755704599845908137336907595167478753532032359757787953664442493329577418993152905770649632866411959150759759752398708826040171887518709604570401385388892563842534266230417273500100579332643173950608541891672724136246464729105662883798371920362147186486556800522011961002170902535777436221913100178055318075457644746221717342281194549381751179709088527516492451819869809260216886426771511753146161794595712055017555177614148537955552922251773363979942263807497175507970189008975377469653526603362202353683399590276432653865583426302168376155375895509600828423747731988859895909766282032291445766310237641919100706347826278761492451541346856983128497767151673047368225048105394626148085495771741220098050497832950816241037823168335184732407813673495454139486825708439020719685485622527570801669619271711146832901399969911079679893897401818669702566819411307505034303658790264732640563122840777954587309304897046330475047075954639481544351077071766878672127955649766200818030906361709633992793247546469637170585986182626765236216206481533414084822881818451438242647377852753433882074813270785070712598167658322212151063725914854638343042953464594916628453129687445633839292856120570856810518039972554119435229790520249218643541988609132378866609642778384940644780354809584419049294305822115674484985362810579918656402973576464825788310171964584880100872809280452101652364013684008730124185915080458302635281786099016595259772059197549662320353899661060969982929469853793976147391350709589877457378168656155230535307683809580130097365329324949642487434632263063526884478088013449297178932032937916872036398351575962227499176541652859239003616609698197834424231676554685455734351586897563018177985716574406563332194204269946042566313347172108287833032117776770579246902821602555090909888761317521259947884959816887655415335197750822808053052164922953601050195297400513088448609186359938830575235293915603815905940313658955124509557396584734187585901467312563232843134196816922292240901864963497154418635092053724665468910931017416517070656884890720215165569950172058544594028136986021222364670771085299654075761653805374808739459976971083334858960343862032953025297119169284115220339871769870188777555112946635903622448115799791476521048921576416835391190205989287091830730866210088494541018191585695818302787928020028143468960722295890091504240646199991999071017049664492100994174658717849670993416431723606258819069382523961656022702615198530635100693514949522980331855919289719888944826412090365623611334725903932161209235188627700439895777126581359276354458206917013645244798361822261429733262310197282664750454415243153043544387631373511074387523480222685958117547892572620277463771304284996826882056065905079303797944744925546641384051165477955953069962843815187020565870634434709953039232476320185900205125996989003086847846782177724957173248104237502270178095806573449013730781405423375459434360927022058177923785060280990875449027462948800032504092100048403269799189057436701489365159430882565696170164611298929628345293129091632604786327587422681643439712225147362869383762149842960525768642712757743886365226084962233385018179561067186471139255423880378465910165324818104625770140769474574030525913138336871687389644293771506204002316492391467888275073240621869211621117998778595131679809971048984500429509573167983299054275314236328858068869765340229725858529931467585140969030121784415412239542214565182915980929865816032305616715344546207377788795681601591587332278626800066320704468780993309144638789887512924123233112324506223001867576821720227008619322704603571335259813737243391315246114295480170287984951889946355144189339165673380288318337894005792471179412374670984777265616546890160408199284579904768994862331855305279204574558954655289965490233341829202811045871583296455620195983720393626690206159305351783244202686720970831918376457231913527577338949704195197240472804694211376421764603939980680370106351852027369411381738082584115747476195701749765159082869614980756577949690698123109565129897008243029338510883731556072881853734527811961754087221055368718015419345434606558593433297122919493078833488656647349126192003515053646652265188837861160990656892393435061952871685225807951293331741013841198055583472227407578926766202814112129929994103125959399512125180427193772588249337031402920083266916907053069460591833520776520965282213854832667084090402147123276890909824386249775989095757496593795590931820811985189184730723496387861226311801240259406290771370625208481718846094888603654656130982334216599326419222356434296304061205262967266065114759768730578185151573479353982047343781014018238985414177766328412165282375252194862312787372227955842671512565692055544987383757042868157440516086051153541597588313760406479534490500971455647006277511785191127210399292619964730669252383315764669140810023880928813516635243106965702317071497288564322304690797525866521137092637284678135926967867813244767539576263416668947687261917640989887262470745514582578941369545161898462576341111547904612420721561781138577816094933696493331244573119380753646505823511564336179749188403718298268009307018138098961458852884391007462474850645253115199392692822340822193699380279848054937067918770792284450686471571692379986778557998517523234560944633129754684862878360059778142383832515180034029079010281529774028850245561616290254512815041035932848539390573446589022747911540383442661564587854600957537992111041286036488842949953523347131732753001809941077576402240241230678248339226134488166103283751671601238600691789510704548339184274689685232702957770618232496042471056680033036823256090996233224802222354369945176934558036447274056120182037217128825281341101891307310429000456598061887027692123900549665119056144621790184451710506806955345561875589482961558738757683445758725204941667942820090744882793741544316353367317627394364955527525025225326312555040963513945308483171050791156036156637557650991091975199661553617501557236430060501788833945318559281781095676542086538400533600815875807380511737412464985938640681074801495137280597980937366463583321178068139436997979486150971091841779852809084590410112258976459505554518743141592412378590632453737070984429858556051661138290651187718030602683734267579833988274620051088173327033194358447256037564587058212014567842891372767345158411572629813692540330498442408519209796328580239241509071507234627421873561142149028334598741680493563029551013504354994385508599066035024193694537793143862817737471419583878807287634194289917818692142501597447946423748642846182335613227576890882463578383432379146907653172189054679679380650725053959891520981310710613464971507003463069569585518925948014189207258361443124727859094127045921783638097070633036699157090838070245493667444869204073744389369021418933212941956294358994553553970984404833249354062296419325470696062722572039690045236232377435830179230785211652877833755370839625696687300767882296891745527531827809219527021291175644393938744274815393890694503462626132577042623225696438592800733730199972466386621584180937716203917707110033394636169109893661237908065312630596953201806992245798776391860343307145139014871703122285054250729897428310912161479701960371866194677524862062149072989554158599883570049427041872273234722659670202237642715172989876152948988736423612114713047288529028971724458296278269468805258026087432896375246901993458388555353244483831203930108817393118068372501878986241139611257621933503530989333013223983019052890922558325732871253806394970611138145810440146069789786719395161468173328473683803032049586442233159285358599323766066356708318699133226518901560438418469278835240974617157957959743038248390060663866960304651927265035765869047218027553268728845961208470685107950756592797891395317996559863253533144023402934109143978960367759192593163115709003582916175918328660978863587472994395079429757286681069880304123423948772888042700011184568329756917583780733393593892317486588095885947956834107656422443291839544016092843799436461749101131047325185408243859329681188839942819981795499734595809608183257856889762075996414987116414157870144328132243290355490476725851617261810999279632858784325070524378719204008958427567556826447453076134633717380618951178064925424002384996648066528718712673875402383898570302417825829354659977151162956012407971726073414213012211649452090154793309871204657460561805711976060778500336951494584333421734488826405027900800759859810012397750760116057819594735819499384512075881997621352289750276075079236534391022322154486515290271825405164118353107706254125483564762145663839242079535947447765314322588673805503433067367228813845196598752863323907628652118349948992317601368794087142207793167528987469322978642738846136618950922572445291261230094094049864171992343156316926579645579325393054134686389787256361572935942602829189866580458066533964679019667690451674353633538776399626292235053450400817875901946757044039237490472761351878757291248214687791712545406168031999853877223808513481186989129281290651913603683107889245883381597399731106220780507142128556019331940453097158772080264825536721288688306198049740056458445990290766496567897749145804612515402013292583210252330951291253715920587168992139826593286707174311824471315152185429524111172160559695648459498018629354690934664856996643103090978918326420858801256112085905186290502308608115719059061507947881465384564080023726757723464979162153640891446020247078829727890627657634326947750525143842678425067996109671847762642142474442133405223148394099237620407639130767040926440764084088031814823922132914387034974377850787316969503509075280918960192379448748668610740718297953308461597084979830084752737506639728793306907578487783711349433640216379577691187380113681816156709713350860737102491146490974397388260357454348293558137629478382159446711757075670921087417693709440819978818673069955420898993748268240085609793757679899968543038261121010636748192756360398669467558118859789767740769365774808235751293234056855069233973080019362448901689095160470050177304650406894138862244676474026268666056063628904121198138473895305675404424224983640420499968686152284614792267342799385343069354907308790953365363973010992037898071071173768942008021182071081308556177254974210999372221382106500476042807504292952835591119386434749738217673836479822282359966777486804442461072505194923770838212741232694090053589985510481235438390484338337649045223507108692233349143468380603380690007654625470916974061273064378595825718472140020552247149306096945573430271586370189772594013153930067011250839918095648723293099984529699384133989483639533098973224428175852352104860684707201955667109253855506764581195660762715623703453708663910983880757516662129146793113506401884986528876221771389075283529134277463570283844295939897463700073655635663695259590145392320253432094487224218777318227293982685252617172302713960064791843233200441747014436709718004017895915982226266574706296645087706575496650660355951942732798059331293308121394416203869487647651255239981096561249552881330008436335499725014545587863703389141250360299765507066495433687669659108597483899094101641129820028420699675656662077539604838518102326096387117610030441270159215104870793982551402105806825656335924494534238975894942401370441638222682800337029852297909616003284006268640620005113727407845904835835875210357586757041253826623679986185199548502473486442700501857354758141903078088171521656225730331399018391708344575559072405971086502685587229985342677039363062201595512601579665249823832309548601968792209352980670421057519956900153113169888576510649261615882578747378322403347324195975633997419840287507111113391322201131051096048786974524879062875861453028392333922443603552915379677164709580036401528878621930642208774910422230468944892116624467738918040582089565653404006552448130308891721982892962786119653665350204420766979166553610743119678198188275909880127604295503608955337847189156164973813880160797603785364405358454578387233999741270382545145303102132254849066465555574741739460869803846635011934959250387482973539547034949780345841759615472000705306974358444914619931257219422322820283405365964929606855710172501181919793102566402852715436741588149198427630269890721321167362862031993482663925728905702818010776729409944469448631107426073844319359756992533999618093719022281077684956601672390736230352490235538249298927124648838545716681268058114160745022699836977738084609593314570703281395668708694392200076953410947777631004165095657426438161885566315649291886596422821379012999007623094967562401711370089104795007412249009535225937107663934152471215749732818801376495602756967972525268986577958155572533457752783879178820983188977637407606983026687590797495409148533565964568172676636176504992139271303466943062050909777371308886714032855652119001036792348723166951436549136056733447985549778290732422398872537091188354820233320101368085744828520328903979349169433408287519958243663739874313467239706153389085562857624124498804380394785053464812681054203439716057692118780794521599337114974115445362252262156663769683849647245940116734361187696858466291820428064284016755480474017353893912090169908283236492648913906968395335116375754359743601609809357637206320375978032649613778657239609867409368088501003711825546902051802497943939359779250922829749106719027701545738562428828721135537149722652129789575432148756858563107010876661247921960633136566345084704540380602870726083850668228211061552717235601677586883672291971808176901690830046340453529679519650098391033281899204214283311774333968257300131164887110268578239124953036254589425054559890322679744493244029047410656769692835224578292439094847504583353672748629781507581406432516745497603390778406424064291484389939917512243815598745410133073582584971053035324863876732702816856436631854745137896107204604885964123039167452465095580067721548706809239358074790038408352702090515368454680854786742435526859424732245610223661943414290725123968320523773934698152312178782243458360065043699087799376423805900931659556177158619110235527745074895042625831394866777771347198629626073611381909115789866644117997366780449026082217270367148927390881859747870426239323198611292285240044663226110915561072453434863926332194857052212102443487137697527344211125753741436561344842468971953531987379630882605535396789046438475055449394889995943296689146720933343000465231259237763734612681482449557688274661067916823834708886719537334584557794867418687272911432516272798331057244247892931600964918515794025024323921235229338003989019535545795162848377937239565934416402969632135535397127357753252815891075107015811620776815749697622392874575176815049699962825712832597559627582300518307356350499050369084087857302566263387817561270312061275301686625763573916025130876057706768709656528658817222948585800015124541598204118598667676797040870470247101694222980986423115093273035854144906083481045822018773844595062109036147010944220398640007676558702715110013082193110086654289045004320458278806985886863686657882153641391800268386327370258537185762908354585549827158337773281780586280668261362001909876732397709801839079623395986476918638322707867247758272966985392009895266383995418067625426801423125752987630601860984856990271676028818616359024021222594109539947753890422265616201051143920234489151494352150743835681019004171470511927624461568085467800124697831853630598950220356528326899384439020048161949448214126058844747269850762411129320340006418982711153088685621805137321693844910607736711646618933955218883037008511784078511470762372716789891664252432534010110699433302492195990626943020734959182402970627105983800232295182285580378655302655781471541812240029857366253439080310020543156151835215282534855587511124344531653798355949832401646100818187720681280946060524165245744744887460345976456257221093394157761505898050045852811821137644411970467796007145066856885232849180459236702194907720243724366407519783707102436881261702253791045565198015005587511432322125675031509035297710560228046872005450053293414304604803149964850713395762576083927673703096604127892054378134075044365593828177445251685133586893943051786362888149127800927391684002231355103291761666936873721761789875998353385609600529620314350155533095832965872241710798072045837030935716642927314152954736586339912730941251913474876654516356527270543040994517610034655569581701072422611653012823305084530388661371820958960332633127964398053691517230412740157082972413808337022564981407325267266382594388307120546654110971814416413257814053236447713346175616689663920072326770488625745377051176129247300014166039154692285674159987051611663306065621693283863312131706136168155096893402293977273987826417609926212730179868324033407924639844085648607850754799017948060292220464985308717638173252082131715650488816156385369542214513479439275070353925341003590269068107670389917893986164855028606934482380573442137441460041801457070890930617225264612516402898073887591636940495509661683702687869406511226020878673542361650722020095061240196571468254397802272151626204905742605568038595832229425005197786045330276984159435807586964213303003797361469009693819301884141072084140840344752918427498509407905751500932968843815944230070802570232597044751471017203856254590690230564779243757009129821340699343098406382869405583498383469836542289381201339749622889839885152018452970392492652931503225534793506946081676184393824959587652508562607114142613447296313823688822141953319966420355040593635356662106093756019123491083022638295635580263302583845031107895544345971338150622823299573729383984824731001387077623532816554970190408179085392273794665458153619882123880869332346271709663173113219669981891666331695362219494084614953349879032033765596030231706772604116241756359825159428293417495113993265443000230486864470511506603021273319057043068114603919924439819523143904052903676549176994917116646206575235391320158011398099230144259984319645689752480383029377434080305905839444558484808524672284738141867812132898208403433328155770419923793163013306089199955847763123197053126183575277454714014148209858189958445895472315265993247361071836188989995795124676940740804579227441660905072613168034726610987330092021303481393459998943516633009379961737889381086122987090903988171547548336783138972804092584330986405996910724732327343674030484045671264500257732623129535140880828967239547132605081683174599804296921389371491361641100024387062001755966412805978980999694136447335901512935555242070167716361984715878931367398404254566036738649095932322798496106840463810288311300533746685287026391466508321608104855103948601476243702063325060149950047638606958186413564603223364485983696665951903895276439131118197618791866720608451842071672841702457136827375618474980714006425446476234358224354016907034793932478147939703548157340674417151451045179790039087976669722744588681333496946297348585780421151087504218237578629081191673936166852647637702383799224396486075752474327855085652075667157781271750580178939211623432225189795631144641521375529618264462347903548826834249821540946368817497622818590694225175736409376186076856580578562395459441366126048085668649236016490299391122065309515170607141469162149922777542508415513994276512169312004172930344752917634632579851637811460207682140386277471773753848168749855104140426248209963143903770797075477489634564948332725590753157635482765341516435906733011679503330376473588218834315485114587498166277184942027378667321643375780030889618770238565709146581639434979047806131791968010942511344040608547444212198185372445143117165426521152796371128192233121731513432365278067117761537994559110688381657347458107303804318715920214920211750157477697206527511779459331339211750118308283162258363189246730019569171504369274885504561226797426524417851165767673481256421290767881636970319725098513076369029614340801489578747042630946359537339442163979103910164743071149128131509088549587366817379250475284100481306029629743160249655019582742351525636548034861194977042342498695689789467617339816103035648498583942986946175435402798153391788148049857323134414933468648882156648022064233501401090820936135625106674621144031120307103525535828079594156613732858629619741751040164700983658924331485568645939131646694369069263964613859915903968128841791686724401846016183562920656624547882907004076504834837159611761582125959296880174438250672891665998813006228577110614590894884740091970974186629961455465331538559979809989056142295034111726125113345034405907149425637643460825491172435201278222773642460418357041069583220913887486773266879046034290961033656240222854039107999099667691268002469464983732280348745833138303125043408912914857998658306770510644150094134960566152362835635510978788223220394705024326722946397448215644762210652680710237147109999531657604884664380125947995472902140914595087749162781877762852782441067121121536401395665618885175908251974329367673975431745357411524815375853053653555788595853798179162709965220105895252380528137547441551326216090121152396577268503082629821453341971510126460664798915301351436556694170478168205211357481132784902129060843331888307134909066764058174830193997309698207190399237043076621597734508586855460340219416876644467615387926790805389303669044804557475590262942826621172659971673446160938450273772957241536873623120594826359222694343444538262477337950643063541516576095580067770754924434400113225058753676237423893884513929185066757913409457406985701430764168767414054402264263379749333857950162409205287302349884958411836232487849869907018300381914197234975319223770493824062105242847355349150442364860139601914877112002616963217846513529986455718341022860985587538259852810665378862867450944718495798284450503904448639162805753362524666459707337550838506280654216772651221035042791953589817355799911879017279346738784356559761750609929727195145168099073844860652244372126779006589771562232231597976223337808000040004743541390177503265564746119829498211590808986410507595413686062140954221694837890312189914272175426386695497278645011098108524294551461594234677786316991055429909935835867086903039408981002426754324174744278644337833509795121555529109183504391129038791761096816296301850383169640002969299055457829240737209310969986615107341063313963314404582810514769002878744410367354810259061163373664597702034331906765130844194040746827827267215566257759318313083822343960380436559782818140377575934018797953290185581549254893014459236152637289989679894949621575335766777013396733321022476794535483861442530401045367591835891512674908097488073925894308136456190700547380042223119926727815416223246450300635298618362917321646256710460635379094033409315235723751641540523702958077142200106480730870136460252883933674798092424623808114126518438161322150404567245856107407419288604004562835541600195324852374400438265422464501602789925049242219133142615005834046621874400026799019032009620391432464675413599259345132196281792030736994777543634391539607879185073858824508916327161851746284092903876033003191623866496728134793957263947751527893637704545061400855459773577668864671896449271905538894186963402487923066904782628346521441521441678201779339488393771682786665415844924956786396897577880001240578715192196465506509685205659750176294261904914070069251116943576490997043020960686857995624432276336757078868326532390773866882465507897496574607349067040566652701185246054739121520087583036345059552509792048994631554101960624308209553652448244536999014866702516902684552857138097295157198297483816572973438006310530087316014778635258188843591156479487665165208269365039541857466746528225111254252999792527723890564749579434863753884856721976205914606643746767478107931653094773505903145456174827719981781036300579148940610770190446919068778054752562451839436666488679075271286509435152535071726956515381981840002704388627157437602462632138355489931455491769092665994927461618020941080492664345349246634894794984545053322289518149992717015365913623178373394126839030013523204544889589158764647682744982334634856367424141176907811643349080050353355332386362562521650387749812437359535012262524181611676153333637207225538958897517272443833072271644166977643179236019227819862198736982305342926446490047415038765825910562114301251137728214320968225043996155249824276057282270130854954440476681596156121039285537038335573068422801016511376750712450405626503318462981471026523862485865123226037589756746302288731360714228716839206796969650419658817893760727695620248792223343676361306663541114182572004570014861456593509027148936218438309813751060159782585734735980147842709244075426580021329996168446791837386683465034362335098454121300830332994942529959339540160409364855838853522921156162838395847700982779165574047047403127857287880800861348114901137444614513256739741104640089616134616909978347851333541499321366218594689432629964091814653399683669868688469928340563888875678206478439112576860281970944606836770524236245255889727393861278721211256640310419615874464103988976503204274851157121330342207021257754923416809705259957863898343260784267450655069739700536243357220932413332987072641683895990773070727584856575934805975514766360238310368808711977566047249646582621157977147782139453404630969450015406356225615378636541226066941549833796946840367284483421610637063094861852873009212488990444222574281536990374729436056980926516872126081698842605547582917336172468018025108889846690751210676925280800456742344414538306178990718498743831708646534481511831801340835735347774221434632414312785473159608864436264236562692590281469137290819862063109054012360635376238795377567080855378844147742210895943410699467446398309682451718957756991788022315187662920193863972382406006465881756035807083249350779413275783363279638659372818198570775831072249857670888682024637258080220633920669858376115475167395239203422937481760828049282639713844953464714626783497278712643194692480476036451117257151578055512754905678294547114665129890178230668148925209129357725213222292699916000939255447801567639302621827768622537812446126191043935397631978062482972003316323056618569092754303933873494170285989218260564295799738935064923693191031552530899795041582746220342757004692882867257560264263947693641033426056721505703155847161994515869431753246168431271969335281508142563972699384992248781822239692830245567895159063307824142585741596650836130130743711003038456561478200501068582080455466211296099681257569120066792483581273950241027696274950984753471642734486719596383114682543388367707187871930847233621739006220952610384549008856031506009418650764589921466851056424077032207027143206454712048788745592806832626737355844800614333970235757343086938159867638628746168348747359089844621125392973095188914514067701064311236564605438767668929122466499542069509666821044324733418634840890852714089118921656779288246316926670090602498796094736929497973642997124063889954128956574190706483513169453933589488999329806077452915269027553417566837334474111689267343809804703098533979765981206120354657763101263805452931872587274731908498670095045395384514557918093615790706019265852942465116634705215706579419320231539362570842728318261604305855935115210199608726375879964978446151020482368656569190489834370400477773724228397889893823798143461452022539637372531606477079982313330919209562352241602216136358332294968942468780850345881142223641925680401243265462354098339130743389844185143565564663809024193522221390889064475901973009478373390190491849117412173451486803952136792452974407952447969937899096296047677659140020310456124097209803831090348738954339569664757154174608601127713550190563487998968023052034405188863060891973189057418824658283541478027296717793967391591541159407800317192113440061311723570994341108084495892420435736728873074971354591009843766648454743401218040413855962321774775663361036427701203983487957492682123328972825770148651308674729716338632291360147628555173767098650318713056540677547708857820718236370507504514075983847065413806116738795241928944853232989307425866110488766217259918596571504587976128493227757887700209658919554858194348645789155182303454340441227907849194916329517102368350052995164708905036127656655256678512277810768187202693086595887412171215980190257140243840929532369876675631326434974786093233086263862852530267846336748503896160939232711730483448482648574424819576725247113857891413287640893516963909404467144064794959647161758127983859826123600576926320937796436823691923312302970556845538443274811642802372222701716710601287724289748953346362263213774179795987912758536022202950212371749360105998533247781294708006487593764147034930636321600689473154068093707557855811578355131903468682691107359178839972257266524087412153410948400219367031092820140970829740606332220821540499728973978764495057735963838366135738365413303580188872109547895724257953994884936590695210834524732213898548308442089319713192922620362822707425345138408219176399001021239185114209802176217553308920100710612589248848965287855071330402282095439279673414998127026990203942936802124725301871923329918784015394935693924475209638694329577758374657319185467190336565179940291712486366719809488582406354967142491396417217552654128461024482280060037600974110144397292169024220645352713955052880555239476269830849115852519203378048021669710770520111110256953499467124856135726881097281283643020417927187580749627557829555421519387797770982913614670470797907106713444084800095373046046294044075482079702416951052506743988374270656555091928760156566080324507878107209247480996040451905892300092234410620882064277728899419284362296984912605638478760028711218835939522995333314654197112070722301314415013530338519433398416702702019230190922772632162547905081976528757032561333829639466530692352155885751344409229434244484689085451660184401655946623554336996840015283051412087089172078424739798585960137119225285850502376127937101129384849054114099567137344519970967902878270756284146411767306996580383895186598678023826948765508346853587242299525683668653696767329796845393462643224610844221085718161236217035089860121087383092628906637113606236661558414372268627535870303296814087064036663955506784303315261313543982309049877518281317001284100743159604475438144180323299191863571408303825477869110273979084058256294530645131696266529646155998053476209942837346000431418178740496805132769411016689217214575243431577795728909145751114178519749165212606883722265463161630849926412069427558256734996060022282247984022417883048777611782504916481557098402329464875707071136582559092426696505274569966141274503039019272696197234077222742794876997806682472463104229253192418663658255506502746876388572147977332047387484445939723925966886146470616057396650439385573649676124207309075868849227615412042362351620127942013881443387339241033586495123131394557564595173668206770818887846083577424135900883282241865193153612458065906898899753935350660749405343107740011880320917763497068211459214027667251413392196644880884902018554408019006185633999818450652786233364494768646983120594731189196823423944758144780844045319852726116902511862637567842167603775837189227533941009679938017996680309916125170381496788227162415401058865538237716581617804026296643064239594107675585544008801989439863961908785727956030534995862982436242588892440617432021887043358874531225417763470228563130619873804359170671324274679452150811714770328632130953008104728656140256952738997371217027635600769873242207522543621837558544987512425221321235865197409216637740435407577606055714411745218889014146344008221582120554124762655999139225486085970498398762846651799349609207992912682271714572675232380555021149486482687504964801901198502003890732245533628975301451427445645567514915858495948498460777142370943247379034359855275747249146812895429792553929865333754311257716277110739632455941233822720655702550850598318963118682527483909649092344826451020559813373892236345828822572940858167579445476195529783886174847694617467447405550864315280012962084737220546009909794119253236954774836547695436442057823545128848337004753824799164957957166924738505356781774712585938347596279627631329174966903853591859300044568784816137856830359029083779211572324395302081497382646463347671586796329818491886719932083132990898262558920308628195183364928208559536176681590065877561449094883253743299503915516422228040194899150559426418922811101534169024932491546108126132186691928279602283645360482239227758934624242979090713380797439164745325472799487320894572523013473162672535240289905150937531118854732043070099471457977825341298509883610183995816355951448330521916668254141534266618285214277331675154276215995007947627266310089131561311598967113045596426833886822896766260286074327343321541128154489309650794489474497864491319250104572696250041222412948237573710735497344958932135428959774287160904108582758992431186707118858473628377441737595781979987017666275553152857638484225191893322544131147373677513194607700516148265107275236845573216993888933028818289832059154997978219151282249767230013868849508097220992338475211009183402815500997449988306978872633691204102531898228018547042259789562184027853488018196669221184148606364384122670836457278033226252631306583549713911766246523683427561584609778625627489601053531055823728244248047031566038760191922643890984485495627072987252611610508147586133392750472219937678186301323882011533834783652989538352785468618531338924901563084334266453459441581165177368836608977911178388822124668197623346155901235910057395759696201335375075702338327508354021684560058082081107676908528836020963654083559089180463651803975026793890785158297556382711092889086656185181975148964140917934995085587366256835885761869021429052876734307986343693276573609998290418386515932345213895293015696869539625053036081278782437665032311425754065401217761244092912544529042664949963993541307726850702217649658561247562064866153319132547012406432077778271808310651675042745606506897425114252610995820101466554104935688358969157641630311648286343207215566393109079201391728188184199660176791033667879322043380977581383133847838840231400420596224613345284799669015571677072483404379819006942890796307203716671686511508359063972642199269254923796644279539785938161174364654738312793896605055868038727516400115186434667514071305032863239398837458279646671683145194134541637676572631395708012548112845092284966855577414523263042160779012686023009358906892902576731094916320843727500178829299751158221065909297075386354693978264057617478204159773954559921699205530428922443902143472680091044724591921927334783342754361422534170867218483103071238367955915036815583531130087140071022761434860478420445353654094395511025458435378221541581869325668396863711458759163931332510038287069866253332268594221427992799635406132963067240401906910414691837979351583228552567871167522002149906084618278026254363011282429122028812452140691865964150722514213893842578708443470444629583683898510290936414981998874901623936975623313868648095961615413281757754209028148168997919995988971597961527505821568741446083966985527623898282937525288155776902206354760602496581890743266415970958198440354989058307473961544066373064031103090992566330169248827863274736408353126751876907588061236537423766539404367092156274262877172085648911042035137434912337981421207775459439343743980049844349035205662439420355085336909846139174596144456661423087483553221408073248068166978868660671167389107533834469417435407330498883079386988112592469041398516985466261569463338394645799147863657564832196956057137402599439728104997992370443183749127109156464273613568832989456223056527935556887781068125170114200535583163871127403919754763646148004963868701944662839762455817032511735969976083684807137693137418719793397932163988777713697293831029526700660505722301612832031258130025517915143027547884814242097583700499942643212524839778378988036501343758355726662216174950057348663185520413920213342402027901167186395260898835383522057162948643598695621252019932764638497143824438584379306223796571424848588036814315067291508562403796567359482561101604474176338993314202640023666560761872439490788227651350349572884044223914305057395587307273920818016737551622442737309175371788946846489430824969556257742628296216652991172692457508950035308496486915048386738288366327361326598451572832926152941224836473373279976299150301205995987073567754500210063432351870479567349548200437483946753603741880986337665312543497850378800326380357699705166624695657770588504432084339101536125179805811128502102945025342422870136601015972247269284232268067532856078939922911788255308762987738857439518268292426448312322723469382458575352530719896740820579983138430931565017843948195688442056191534483774952773712677529969239869456459424263025071419751866295377253959811836136686943818973900896695388642991006168589726479329590370916456241731708200784474716595578036871172604655471982888302857075091515528145176606304440237724854916656704321789175497123828999665379843280472262673410637906325156959482263664354782872382431491522001734647161786018577227902705124937423735234243140607968932504639891262113156680936951420879512369972639038512105725583871663839205139633074806267514620780760400802169703200333539525622718110559569145421134160834132489617962408011251365991893733763157202128372160947562156971280348408927587097915639470016903432985112459425483958246234112543289559869258127039192706831848147469413402558277085749697015953784163534031245970640291926836986277597475972104140772633804276881751521461722085103582746215947814002264470910354636804619215288840185821785319026982211621439209660183566265645371848440561321513733429441774646286711398317470232710874476370598444561567114805596523301631374903247557862858408638715268482673236443154216342444292876479104489296761531885935993046105679022527314578101817558114272848226013329227365876719381215333945129823463043461616753113451674061173906122361022770649513489285398170766299379049381985807684924426220198695644320720838746624335177743279209510467556901221297400410859679028676619075310302767887892088837836414769024157334961789139410286081201916770249510187594095281973523908445223331665103513241853164282220897246102697704383410161824504408074541591813794368972663884838076452448189586416279694294506924762129320929808192262784476781740220450371124435435482849307021613277571565104001794623743760097308376615246967616811391981016159808577636312785833620553012596881235930586069184791008515546602443934759867824953057672249098648224989710115777510153202271411495409490331105166015289741648241997766502747639596805469056357706515420003628042053506937124181408784666563035557947959193191276335395501103723438199309787180622600454715350325577440234886889759929809778673659875750853239871331754511012789096757224835173234462512326711848732419677636156400728046945877816135630534419378377189718723221882454073564958686315225244130033707459526611270955225009875369912701801115803098067486027748916343714320009413449228866455892259963523789284991208861472110131286768371783905136813095766693810107441569032529152584040567106694368575540637645778885959110256364954839510375126219826512179841098145113550021646082786293301277105221941463037587287010443882941721135804322787938337781923181938802651786308943282570784277475411475100726086170022835507406792789496895613504081567915021977351901428662355914051839481808225314943908943011202416984135117228065833093164960060740638461535156116165345936482936561764165078098755909718674923850451054750492010290495881410206550306278800821974420665244723844688804735302768137206959542046080523213493636039684463660569701540705693985180318909235131416594814024262002383664964227453090431131079213754823637913221115056122006988947296751299079200588565277755579308007461630397204138140086020888718548897190145188687174834150911667324878168191151272236314965715998959862790304072011033334698183276959532491131292789400491978927740884394660766239352329626097566266097949494386681873258590110486990127413011635859761353189737562162661325529375190517449299389366122497385924489788703841755898915865104883578782666337204360002635362591356863639772897950268110149815335744931409006925214480631172278290918698968873531167182403373799838847145661661780557159902665929596116715592875393273637318040528393446018465496917920926249143100631353123928178499436844642711740924571532995999470992964570492948519920507148656516762406167048374336079319985171573633135991814838456964185428065141713725497562345921611967433417228023608468506534137821552990379529694481885271553654742823277767940259579878742751626548391594071242632365315915577533237464919798964247873291237047041207769233767869445550015119845114143410449568161627299338402069241907261055559706905086809438206328597587876343572941638950366452074948908570980166805255336317167366414971432452216918406795864825319495907357990150258708015772961734069209243426554679275630695053864274259148563921200140299017307649123002815709643005801781687364434887812951116785370149283002910984925487854732672574271705827993855507538281904643804272469204057688275590292088224288576955497018025744256132290308308078027801723941430327423282469309299375116012525380019577982656644699318385214079057590467978390192204198821420527949335561148715549080365120590302948070366671038744724934031822524217691116782729391931520441709454177332073176866193105292709162291309569333597870328152472353421573681694381711146443911144082860720075430796874951115976092957228233923745029211215178227026991051763154821223402402764972939350419048773932722450535299035779056006313491999873484890273316703639695000254541832094642151955902198459937649198052984910246383587762819119897202161489596569243828893027593042130706270253140855068576141710459841715822412989732471254662389838171056220891443835489242663531146275050133873841120553029829120317099025867044414543899455418443346845974010271421494942424015832607619441341045071332049541638525385748343511372188653121522649297662672018702333096673541485963233938984128440359022548780564372758270425224700010757988577030068199964146710033852383288981095277226198783242272380444460151273618721984333327142309864748596898697772977157144312345307211392728270773600547424114944796725993346084843307695205525519278905243223046346023586848001869843971176611411225147959539287819856576025161764999662063816654740030191733549288484750332144804088646681505534966322538705686945342655392501959596212206666175394544176832416679482330897231839997608223454461246822200722411132539194796793782016504962691456421788066185691501494567553685061323322435997400099505455250708331802072952897735760649888201498686539844999032457575888364778963721339561675329088309878081849924087290567405585540587828326745885212475604025259689763516092184709929105511246656276282205991196691858806896904162434296978146584724506728755269698293139238053248196025235396866403316200802571609688623103625338278122288622814751061440829216333375364406342262594075183858332271167039316974582036669151075128572081029628910303844851506524102047265520640027763896880772192168528864481089461343721059061709322312488112060652695913714713134971213485789837953035178859747143709412497705930904742436690219677614426262182397708315392879131953856295295771582032539726735477518302565702804439299556741095879211846254294796732316472942584441187702474960510524925976221630084253652922125423719858888113305267963281454685082515369339969371213013006540154102188677667204898844642078749894041728125603778725995326097795475051876815302137050963474937797292508303909201948937855416639865491720286301315811064542921242971202595417523893017413349070630671851778690256747348826166225428292741795180356690502371237386387927438336208241272167739919003151614706882551651843475103717299487587585676981632945608971261098310254001596382626735770423298235575375408167411678406996917100911663777105574252697543121735926726298821631405521292704912050622139345468688854469818448928649465041376101280237463766059113372574428225654400373549157112920180857340215955461375228963562017803948915332810826262318520541345109193648909685767219783324272278056800772948160790834254994733970341477366220079907036688759333876381665275780734206552784509443508828437200088464009973648182810162994704851233678420452712981599041525639589978508812230015175635223509104425928125630828974241138039133251122954811285079343159735054568539618744656002404001212281812984048319252067770450512791517701874780028141333948337480618298107313552880937067833570504008150794104988601196268792263343336078369949010186186852060282106536962267470755701585333118298589681848316950805833462209220629861390067539769052865659899754346379948747554015585598572386343600999428504018718226349865803092829197969813109019585689352484777658149827601082027921247277918272416566342114292466191402232906831373510562572892280926144508096973166574912920449696633589378275554834895914671130377436944110692663864939481223631266821338484783465292290248229182528212782747741698822164540391285859040346002445329214324693961207761107354584255052105964054180158917907374695705630874971739571048669302899347690756948192650959381036802583644667455263147232370649738566433899608312746844580864332923235244824731581629716946228165312273515979209995718717251965758804109523366561745716609305574008664057410093092875203046223680386542242673340725692487609879283619161485159090897114453360071031766437552499187660836890028804833931226715096926628785145242524782602191039942177031701818798062577906109685633175157863538847954770963670848960059504035942369918494498362428344330824813386270315713608239881258235780167519341040113502307202360721075849183703005261008772609730382129462692762219139699879119788517864759150723169695789755867160836615682051629051972133055501613692755162459171474207940321890037250989126413032575520598195243341203655762118887013102981720413260165235033204227476441230411510396481968858731924555665952091516217991527879218841196124618307265263888448376166843462519456614595092965182842636935737696406698840844619035834321931950182546866636196958211639873948633405061482740879987690207014167516393575685727225944954771976519567366618556832646620565388303560513616173645625150948015471232666755720543016986365614126319117598721427970425824914982539246909195541130709145903436630300687008431976153573859187970624908804738421650692506544827015199458638727466215508584229202185518522826241707343605413442735964296318667323621323101728615123002601152088269669790133192787577400722806944630217220742079120864928141476679936021542399954998635918390273968152143420258588947565374922224768976536712750376548370903825687498996813637301883688607899835179390240151254177254240252405348766858711792096189872390580993259894294100706806898748347701941144742656023700107831217473694173426071885458634450503685046245824482762813010861623939620931754314693725088728382812678444679925005118963307545846508161030719437226355519399729751791479808865174049770612105525330279695558495500603962308954756373984694501995039297581624707971468362678084862934423210675111796689555389988145684199789414406756869240598925961301907006568251532923999710807844030495758200253881469214923193244435498777904637136582138746075206917331567960784932659982247273956643408181011269718026649476535810312409441679675991363614670833921809355097738557856292511828427933011632637461481741171787044626913033486874271405851485703843250353094369223016480950434695706921182694435945740070086970268132058489996307643297148079467728294447391717504897479553691584654291152291274366020928673003494156760935632122514793506820703141652580888351342657505586426033353036762767098889484445326306646383154726350195862780822272522963315820722766757702974398293847660085031628891225752520232207961442805273517581019896712153199045296400380636554330094707887244960661633120821999552929928875487443419451622375557017399774112195758181672165030527902519454315530075399488671929570478587800320258466766050956163683326098943663407917672909442249222193528240378385871384888240241260015356429852209115940009025269377991317272421454860075487763540408813300813711152162491611679970341809857261527325362365774327780130908528275163665261239418413276032538758095742516677396210144176485349363357410546146750727589139992543777461236885056509505419089178910805003724335285457223061844514693326249010294014343405521241953285866099855795005407433337895673210689523553427714172354072798866048200984264717145079891122029255115860870154216548558624545786386075193458546575416791219743468090503965624818262760808346057942832829216524427148718934870580850151468079322310583709779525900435407994255398180034613674322545246130467483210848063656132752730695951672666144880167577991680801007821060501606544603620691642616755320471738874976821202751107850888773281881751118868719831754786942099076967634465495929909119624096519959561513669338226895208842247473688509482464567766718688225641892370240039853808779925078795617275724441177228031639557043540782955843804767298307460837390495459997683089179901704467481403954685702748288526548066833504202309141754840765437086144445436421973070713542242547149521889265411016175483019303984555890540720958242807757719043054456427277601301390817448028716671926249037911866792164432847260441250231206002315939439184614734357930172344865103345181265409228370204345216254641736524489483946885245336072215395006128744989798021220691748823883018081583169709128440314547451701577483560778308762833575757607802833617936352426971142653889168639149600046998261470664087353091464802143865968746511377470714585791332914679847934844811309425304042301441883901321240581098444001760039038363079167747580144452322406569896976763295055871438242120966968882849524470664923401077862951336240184132099272630539504550599256948616719960082253030624065678075374225192189692382200402105092755240943249347625169964584633417695629213748870747063163571700077912244986875963449632611354286413924647853195171565734051829270347564579637616776766872053605546198657858088193468948728582300404148550613712221736416176727371133816743026202288011397450004299901279129775202422275117963297828870669542768358650396926800970985908813430940133390916771820037481499474461900039409652826301715556188488205428111657405773718563447785840257770722364824105718727994931879100697831281994573158710754125434698458003646177655773999339787532273407492148565232548770845045473500916089728874218897809072863106761365123104409023532232791549069215416783600050946323290117296414101260680232835808053135697876716154750650668732686058765199192826054706480615774837778319453263096756996904283636744656769578831353936785977005225179508250297753216325521427780518758698948468215924496563447985109476995208429368147087797872443583340204746692797770453408195179223141142152510583646226373026921750756523016959301657704554689218078937528782447538722509324384089032920618851988391508961802841219028043128736123806664373910881743865919254236317314809003888465492815926684704383995263807174503804713504810674946231175115577580069782406497203098785005170314784562953677075906066512152716437990203163868304756316215570672799509135694076689264748675317988607611275020000975392344518694580271099050948406775374641148838402671162677561125446630428797871497967169930171598750704059827012421402007942734176652839503147832264959799076238094828013435322011151164927933287023468915976219190296257594793864961845673203868351967636318669037310526935821203072271725132578591229051846295728303863464149842316299363581795392210868534374810457878478026459453886525703591484258572865562345917609004437000479144644490378394245936102017199981520290403849858094476269440806035653485473366995393116117661436452851899782673894764473089191285577861700494836516257788936926954013600236440670688506625015498986088358885588277615157020414733734900876713800254374878840013754172737029758627235408681862737255848115668621525428613763661309845443722635159551338874575854144516245904026652086002884913596632248941910493977833364042660179758897229221308584417574421848891589921351257806209903117771118440000186109658270784591577101993791706211805524864913344207551722581786415246938705611768622816999410902912049896303000028304984062695640086993319711823182298826532516059040223181193810572079281300926126721348213458862044310040818640250976374888143546503652941843666225142191775208133881907720549637282844772901808879128912932241634661332269567490326411831159657713936576013160363026758635115744624369587940884552023745047077867814130703456414086600312101779724898018702953425625075533526889243619709273856855896194809546705825678490797767679218371139987703519632216939183708287361717211991854193670057099659679824190043404685830002110998659581731982458557394333266251016544039115197350041916943766748682066989147504575252086551707487604764281683452583995049924264079161579927478955502910735721059543751087223790033829851631232992388506454104677018324622942692864112685146735511704026308256768505039962246252192263653724030222235224901772873198698596362710628294472065790747431959389113982950838891735885028015727625955098712301760623240238074423426396175986264336184578207495879984128544318437255778382551086322679162931163734729204993129609521642159374688807627164699653795345290985066879694493388783497471423277672643127118720210496094622947355511881666375897420862666790441680406633391016566006307541698383414773261408442246576897679179178655092817867965154460867212779506010678017276653393729001868966489577449321384731752373221949679141186332427213369494309722158837540109064060313761761002352381478917322029193726230287768202478630575594506436183967162303245011232146906430596967496593107666044246662998233750399919923084154218526712092089086776128819210876243463579162936755544888012338597952184645959754312596115977606601232095236587808125184684766305379786920163907142912278910149160373167213570370062384342259455572960221812834835201183104597085307613449865558274968794504374942644187961314028407026941093598962652305139935010694709915976293510959527127535895109387846826726127078416385382333568070411918159489028020293517695449542757879555281979333472473144959036425984591382434030929398259788940458663463748492328626190692339294259931066096454913988656106067121084890804524194525213793933065673267971051164232812598563978128187861796920701340626149480134200235498693071911361579858117148968307658043772893408054911913020465951746807613350192114498404634934122544314969931010361641030423277294018989547813916732608663538410628201767986633502179175796696084927242575387874722845718319884335786083707407258793553314044374296267464631668974679503920564985244116133418150928896185231958771661394325391399437699449719106831380699660883670287236521885244763759394516618675779565170545156291889615958565288415737676337501291712655996438875476637097421827268571592229536798043686959366067158577522378272939671957251616005754176312584745035185471129024545867101004503473832120095853141766293383013002761457738441251443035122219926062358270601503445036092984293998922579538544503245816339079659276776197474314862501137224137043194197018912381070868388123266451717364794501167124076749175200050630697073234380571259431008331323553669759872871915429370830143900759515584565926678644914702150302555346455459103715764123203429675030298335013345306969639865461031797224235687796298651104270030690187093710432121536375922921995768317871020185604387122784159357261153235913247282945477143212793602685279700668824934176112557014817674029412318925351570859930985733040022083759933763200762541038562812069188670943404877731623571138735259675602271790700637596101749912690399315160583598783680986438935155560752795607123682131163511170679476949433920669740346378114847495676044314987814248939382145460329991573367684543065444181583423240136663667663092382647024191462455992067186458304597581726575138491446311427068171459486027078628638164129804439560554085570412167116605801621813736809211684732233898685572706433924554637864814058608185631157733313713667400296290750159678416564007783239571388607957634083764958809599787811378587355708435195132361087662231001902362386955242405113485910916389754252761476707896103066974321732639999421529492056867578760312248974532164450993279103443054348900390907572583576449168248846465627290347939856200809079951822692104130752004783247567246302820094208509039994253388760031570255036234819880924169156535151832995292963930269134170041004890453740214775506031117396351967512528898780516271965033949734823375684157705324497531391228809076087502315662078960418549368166470743233062215479308603546433415300386509748065354030805260300778131127590761801685910674493844913763240876306361803646302932630477038942950725076608142219211891560251805329539696124673469238030122814657657222172403260454905400145382196524154884589619384808916477491278775483793504857701084897715534418488502020218163982612829519205946169057146264318842629207221637521362917235712918817442286586399645789559030855903322456773030227319012285508807762530482411242263744821320958335051420077967412729308826999514619911624891475340609779823253862465024978567976846859184063335885373392748590704369249178453809228671606395623471835018333524241960992073642287520366118890452086007291851064534412405954679699342303380520742750731595866865265500227704617633139848219064897122030891954245065874267725921504936882654547088987030084449613896380408582842428082918489146559762557054644286142297473209376789279765530568908858864848091368731754252999698088613850339773188872821522475929400227890279263724792772471678346328719120171783290274659759024818187220363090051148609990489717244710001863136930612194308021433929587846833376384891343404809151105105781262952760895866117778810891088407619217384783511176588287579457097598012933249895910336471745051890360682430886383525826546754854326877089320445019982413900060650565675969374143062471040072762854221159768707386273132938087962437646078144293080243567759905306899397141256069748005887396620723955639427396897087609005192740896646449682485624157512004136196851020262978819312540556910402804331560408232232630745542057473405551801413932150882544353613148707392851770334734239391117237515183465118900218335682816607619838368211400060749025089034891675675204160948232850160022554157335113467571856507317187360264937254464378626349852510586864741563730462879213883706240059240689957424136944560119300512810289127804323186596387513788691243978973973066617793868414193566815104369075132183390961155271712008888964946898920686551428425150660744013513231739158087934357745098948831293199011569431823952612702669969429426869093303557035773387655929560226449822523752694393757957220517556358587114304499128123435391253367586765786419136274661280208729199414271160887892084627117702255132695695841873805493073204448320771876018480090071997357873473146536809136615586119119788085171722440298155620886437628831841707846391598679259945953960731228251679550581164968819228406107596851297888992035742226799040517747649987681326851229080797074051817331489158853554372140125539103276432289122769528097879733236041678404095989844790234835205518887489115267194597482072963199144202123047972714776399462462957057357496164535581643783887330704345828037312741477550266858647183981180227085245840916523488127546078103827348120655048673735764043199537188859101754162586758667469422940485168171590686893978032683483934892948138902717087587810339455448872785174278175050062147081432537503118786707686157076522829893747268440960562066845025329526353334082201959237495498680187347888326508197153093884704729821934348243215079484944760764627876222789241542249076451542951336111447460699209252657178176839542708035343677796216653661790473043931353729288206314630732861160383132359295629397478927971145319758273058355309574843993014085433527791413434624077559311800601735676609236013725682372647092150669168455692093953413671629557428192444734574066146896917174131837968891374449485973277013162526459187738675223230847851750884186769008134683742346079674442597837536369788817686631950460183295901209153471961981689812718014584993860742719315525842228077071843684764302608008763317384111695746836632705715205373615536886475105253262664129462823583307551264664163283467933290139754848192815217415238028163690784033591534850685902484090977562350988675979924996578173152957319276714190181413545829682554859635860722140095186789759439542454461978420024531447680315956096029460120496261680700174789785655356227576532963303907595358863599012777741777692584899324624802839925085894364137816955148608533946594083614049577004660058340143339307754903310181056871015339928942830778750559770752291624134763765315950289680094139080607171168938628890313079504461996762787270633262360561977630483428417356535902219998342380272503932578465552839220348405240275593787236708510214751868008875672724900919637605456148946462262752299366467383881131055866793470595854805901633727318256871884833763158413470209337583058753657713477737480362755057346306518474098885082030356969045554597533655733126583837509525827135014010281853416615132517283879333020064987733947568321128100814380969169916934281064855491045392505214747771772621240854336717506614855420306454158489783116912185648080926224468640245535979261579714720560475407295337667873854486851670455150707031772367127218235941180701112987139123218218361385026507084199396376425094292883598885951986283117701515828657961974387321662459172084910783155281129714067646195605740747001233804087155316310173574820379307174384614943446259788486075151354543030326045052933441339717637958611918227582532769811956409880081833440653332680412816636043088747293321349039339243852225655727221488154500914649824744989786805687546635050387699479174906672799225845551084694644430017088827046053944660735520129097917308248222170417029932916401228937207292836578299777425873142170891461823898510539334182693853304129992889305538422682963644276265653115692758052556829767784607053885193582923522504018806426567513769964263757119128769396021005747224954635371485589786620111842153168577735942463770553224487888795012233213160138939267341587609711334083338582409537781596519597512116238993503942100597726065000605316253578547611523281416268206456137082582289932837758595907782886081417662878025006193826308923801342262928402083919215821217045635828682605435952222443611919765739186362168796839233171907241122669122373795091819554544147084241619349287016552366062104480206265636555175545451276557706381225060413220420988482586641371722103974494294012576702801115825052183463095219464528052328121672508530994017424775725832318620983841311834363536183178062979605094099900518722130293532314861103433602800515279478553681272288434406306264682792928725779483866497826663047312552168530359159043617394375898006229141565732861661899132294937297063138057483195378500513710853709533913504176593822977321029076056122617700063760886086863629712543773529039401548019203222623950784953508953156975868735664746030330678463256159071267103319008599627727630471233507057026981746000299740181155795386747360677004367611483964254800784713651541165271522328153026174616719901551566983707588924368049148669546030339084599893866978658218552991949110891917086404382298522110620917617894281553320824460527764727065936279410100273416930155992285205141992417788817001174820807189008598198808221197177747201643630320463145983351407621544659627162966672396359488522823437249162023444404675682455268662164999081252876252267967567103698401825134344200556459016463089230142141513251166357318984062665315161181068844605901232250446007523076158143069697365608105046127291902225975015430215481631252439776674479066608850936678707760092830662631555906510682186664610661709150398371973466447448672403455480753727950984074453979127215029605211888042088646701854731452809096671138169056231644975995092419155480346566320853415103545751689222344377748870134185921597932880878205661934007973238813476949280262383289196398574593297526250312921139433410796408264794885810122518705077867993286574126541770379508028740936509851730260541608655203066190564148097932251589602932140708537718192409670561365892976430750051976537309251758260000305587690867197558561086334350731360047549670315294173282528919266137864112726452562948712302765147284098345519420763818092388160171737991656869266390045037780632381766958998273952466856534842196475994978460098096793717848176596724036895164120302773476829854146082711572368694149495510334736535458862328799666714102184413076974250979219756811395336061620419836502338809282370262530831993396606787704132830446115797003238583564504899726475563652372546252296969324229184399446797831993638002814996021896514683695850686084245892056219314699356499365060581858248324882656509411097845057152914421519502786903800922596290320610366297312249340023813379000028839566756327234638056582358085259086735711308278959360165330111337227657102505771248601200773255518307278223692286527638006046310060701243873871711860871922569271788468067411902602347760504892378107402798393235862871290594108923377919918324798619401791348607186421541540015177574562164187062590328352483594476358375912991512325454150230919363691004611270553938425157232271865676883301672223874542627122881397454245050157842288270298049914662247482389767156150320056316058576618828794280161190792734319186618065582365508193466781553442518120633430707229464589294955447628385351300204883010726057727467072954839900148204852510265096377513338601321247971333362827252742252601089229125693943181053170806574574363000992180418917412789943692939336286878901138808162112083953107212876427567492622399966991897363057501432233813755238508189629259482498359927038433450571517642053757795704362311033685102831443923993077712628884317700367661980497569156375083210296808030640208636690831435542976700853746046322601493796665589144055668996224128178916649093778410887259863641729683115574771843917167633995984960911832983718698786662191109134892528653188309683475310039234253684885048910376414662150060781270456282426595326983191756631058422264883346750305914210028998977920712467959482296077755727279296585993012520040609865193200575609922565802514586532709192703025094966896983093608935264540109986848001136902293068581356803496582470872203575357834239317386066909960441799383372067945311542271566929679236894395160028951107063641257560033380224219595939357045746359780989009876030163296992332862612321395634983124950500384233991293480327396473053592705985625457704247023208849392545227885637125111487646855963457236918167531450584533369696079434829412304410972815939520706711091602696655190424029322436039872744045170632908111946182362057467074324269889994505300594828639683009595692413377741794252845636108152243495849691394321858778127290644918027775976133577189128761971883346173695614085570761004031046003528706173799511291074418588618437968258766232590570207511498567316958945800278526974258735068861101021355692045694974102469755181807682235645767241709663523406087208433379590033702479310520862567507198175805917141754057337531631694556941117218320059691346217757901920157767978660867348557548432183440987876635491707502303433080285583507345819306794330649218424930349901371945935745048343625620528742061523904345019452627903253578933627549072767107221486316728871344730753842494181324149205959706849550577633807362138898695548368041957793202006578937800314145400121870776037404868607634296932797343209500625542876590235081329806939221229718817798873089536036366982111207111390425532994592262654529318699281924447707398898248692250620387821346686472364443915697863448162385795548168215466638666190555649599001331158653163830161265314480715117110213144189174076367491710019805706070994626789754086775997064853709979851322345977502901699267990452282902299129724980083026034458702258361229110329066994465853410680772471880837089685154756960941385467659548979306215027307405553944384206988089448281110903707579133893422199462802639943273799273915080240858750472522831820720754936304175864785088248578640327888129837666826632332929659473489179634524533146707030499876314176656787388161780401955531145454686484560366855648299598375659895057990830162127218718917276332443784913457095576979091882640196756961412342574851400925761329309586619210592784090559166458972212276960147332919352387888953433024152607094568080764873872924959136205767540574585991334288958448249784327992830197068075031785259228387978044148842770789719100485441684598946120741744617177732420285713057341106848182446183656136542819941715931281630114546001513921988294350752512575493732038913836524740966779971187036754659024949817755330682711995941689904297749982617480703378758351946490595164099026511284477736429689139649026976494903337555658436095521466083544309911031806693954082368018988556277397998715405113282606313286518386262657267771438849697958281765615048264648886114540711462859618832219918422142913179797985786890646135275829316850113020563132400297974055052012572727610872409594288235067761453409009842817000391477315233641581874001059014953329664439391191611972594471217613809119239017118970593599089336586130479900419730977935296663514413868949298661340066506917491881954230017425351383206549450764924294444573145206969438795263668684826779285038756605685552814683593147360918463057151476629368286998265235808476928740622858776072586716145552894326294600404493849106237986993123774691781069831491331720727477300325049999865100192872137989313087336204597162287122800811127022087498393082976844926801717133098992059097486869541193514814005930889606003734860087063726628951124961343736407663239390235084737242886678429260415704108740885777953545891807769573064617429098268539972262418559887602288010815704889719548607307881916034750891037709804630267091312105755085824608070625677118911929987752213488791787589491129539790478600862723183624073133379932623302743979652918752282167852969513512547604432721556990217662288580710005937211805398490542633938910610377010726817590435981888180927783500877278061155527706906882275732692962132570502740043888333689106166331585630473583293138623182302655341816237269228999826349037074072485351263706439621215197904552063816988632067325456246795846999452525300340618990631125374319056728996611331110089781920358626874669520505931871340455245441424097016243714986945202155041433184845386156247348319586087744473844326348721438877416652518352796664041848163968759075062237848854054587301675619608770979223945847522922618824887336925720722230560702857231096773975848693582795002336400995757089996197075355413842516740533123942616659808567292690907735115709908066232197075991032787692771111640852796325896217757091325223300667621907086900503699010488163490804264391764930999807088971377560773124357222671936104582064839261796966655493175699026502482593915533938068260449158401964463807793254120789151892826841955782644010105173295547021859793230230299685435014427847813524875425671403883795136512418524176912968343318846860851251485621186500015052660569416612696251071776277292178448409784695315735023411360651758329999411870369797480553810326782007710899723612486423008418620608912391758868663707281353308181115774478721483188792894425031905584658358232742296913288212185973168145888010527332643016507745669868004329875216011528544184395936257196292042463623785598944844961498978053427726079687573094774131358238113888019520219783664108459919657108982763278577498166824523298391703812170798678607202641492995484433987545340410329278929980354093032718604674867921522118213534001334694823613811322352883330574795443563346962729731992254013129663499928372905381029178343497088652579468412672372634282768826676756977771432983268763770794712420040368447165183476043916475770505035872684327115119321903086149088704475986516590854608682716147773532078908410078108710299578209418982555758653800198150244262703188898069111016809920556397804164403674587072267010348375805897309673323450708314701538543470873680383619891373685271455898975158152330936560075243144769657116188558766933063923704205285765932629541855954850255722916464703308837848770366232421317760699793907758557259664449837765505959045445303533799413145976378694153131509086743047937207627992961620637738685407183151998720051980793486105789283294766400326379978377811919083786771303922322800326922759444520466997512530930435392307013418190430981789570304663089683681901499564419840425345506028394027326553205796705023875498544111758303512618642024877433444239612366396865309898525944610975019869863988519552054013413545965658051501593289636226791435972742610518417482861716053375757510219867052959087828891362137945855948026497123528067218069979253808662820701758137389302860570147964707069876379383952229794113824204291515164272774446779965684203943919718523645913756102825499233504044226189990122412908759870270186930013517232529344793405500423126902937331691754868270434415234084642712389787312557027816216120634320711097261896947321834049824985892735793584363103939935331505061109206966838728743898449143281539540581110268331444794868412587079010915511240945153362896720545621060688757691482376283876671306319880058409433640886105896716333944939839465217202406093482104052020386326898130965610804802014219504246277058600408636053650639155150532327620235264222494835589353758268876599379717149781584112392176478796801574123712632059225784552583800439038248503354019271709274743823522304770292774726622307532848000900606045660449850835351827225730454360816819387590803525654750871127770507477520334026702921189638527800980660374081521220249874087583588783235764966040960539478072369625377454292579215854994775188318852630421249769451286335760314330775354199315163501802591707510771075510907997744537227839215800867024747084694232426680707070394028351522278935921354767418568922499256009226649600399952412667735307224411179249718959668290344774067375674290031668475469034243483397190335835896982367719758288988947359331105903479853022388170756269636219500527904445657576419477473470057516670787122934348522573321939381260009491855719407194466486204254153628190025394064023227025311192894557879336770663537438626853147603641101094940553594688160777466140604894200090386296078953765144941853448312439181430017200582101587111940524357899327348141159475969384006579137940701318531940475847436150152213917064172457245135543083084160863556624967308448177219584929088172080428612303098152033562461432115591587167751291146466134906742009046262903084835439154743111930490207308776338026203634139006498080777863376738330458370603280350875900099326701573396920725971709711222753814377069337141448810159944882917350090080929918849874690654393010852537343411761728329974725697183401500675557875236676246025595684080226092913944828554795595211323677345582341547130716382848966213922069567362737583032225762553569595022107148640655644517442946545394699068149877431495996506591339280076474210221484879321964499146854505522825824483867546271436784577106438991803978159839189260467770988707940692753764977158068575186846564148984235089232991210497859086376075303792041502578841590395699230884946618247505272763037646273935666942591979682421421314116534628861383310729516099296964301669564919633358735220149384039810017675136733819419630048943406032383037203523046490585346389388446896091053573141065486592047305403753287811684108400469637844516055347117405745313640418654479374728155614435784678574546002348967816835914029123556149368388366554462066454963843146671719638556958881488586286179986789066886069368984903740450730032778597136682533814113989613619246826712911947848442949397210110475115704975726876180799412980744073435550461856914869333589478383143398781820387803051497532139204351102518383200599126153558048906753014348326067568073806144847920334371254319715474991962635005152453722216772681641377287590438455647858613806677173681233272197018345539642143811775965676604450487669334895678561078215329976762249275508623715785863043808554727814632391590505258285862028671457579679231929104091772119514567937553571991115437675721307780427250759293164008785632404694477691474517214929878170017395274332052436409002733515287368400522558068508517120624580689661415705734913694549232124570516776562438201542598069673754739274094330718573419475284952707557202078723436004112269558264390540769381816123772152600126058624182571833985355037301941842396467675091414390154397145336127072120463882728350621816605053455503469709822391809399596224031079714596286205937209652637392539715996619718139969474536101511735278217994783871744437848628370258774132721028198993217846166815770345121857336585673426980815378096446513465515039341542278481593726360830407366785475849843864986577333551982579174799726386977365242653968901399506460179661289398786557208993995789839222513741455131505878893620213225173774003132408557979983999439608550725984989156156598785137131641484979247203166013342571026001768418799654032771378563404007518484914647027480234063268034317753452681456098812306872392251102082477568978360228814729270697675077722675502285656627758956247024822162891812212064756573361398252821257363930943215807563020495611012588605905905422188175435609309501407273989762789535077267254209076344750867726995429428709313333839239768422612609083232592974904409498145334339469262392193921638673399417329890908315066520069088241504952996319742431610942996665924112217074579944232677391751194679608438550093748537203128647669779575272268802982256022967849512005956381283973594450032108254194690894172272703359282550722648958772872061023780646945742180001595599785816611886464029291018671363378588529480833697891364398420327529667704200574875820924400435976860556381776896266515729151594521184988042752591821362630024242737674616923336327011133315362791108176095565582041673099501971926983527598508031344522418354548229368473534342569461613916028891216634473131124137638085592422762351323596477295248727655087399017434473762924402982747466343132858014896791234204052316421725697143924803967590487108197120777023323818586825119173427225718245468287560237820070880075580898137460845238368431516159755543329539359887491349975254018363855751408966661191781920102742403799920211177389820735621002597694578721510822715320980472314774827961030133435648205231257214773227098787446956415201746519733288137894307850473189432642505210827086153329683195760033886051816433043547743911006889895084612142511819416061700972516632878683205468253169611514980109255493052248281541450332021239011727073833674401045088126496789991985119810011282223743880046356333132971864197800561862404820402829321237891280259696400201101194884580998040688869538411054977803456555870071763953033833339612586765917592272110055284486728536915575644313889416953641733776936388054247977681579608218127621855426461892382509524250930497284227766193109326112666328880369625572908835399570394862862160818677333137126934921474049006451616337054794471111605142763139041736728042719616781331047549128058675953023089265968368959167176462671830610139414613441678995109259007843813366221883435637191112882181489093312334229046090066232333913989144609678829435216922384368703367193194880491552252528780584807819189416329677345832370001300741342170812449410946018426769956725409927213490713141179175983096469626434271765354436777746538831451844583107022764321163766253099360002061326310753717107788177069439990239217191731687224952657612191967794223567337091672744935278127838156184711252355697910402079505255526898195978629539428677950007162465712867036662351400125774432576071767678610351600090165953914532107785254498527424846028849400446578720962320547840904349981991340560889757853631383075249318064990493284622631600912383644523124754779524464901518631931657148663716945275472580763431062405824605428237467485031171528644513215663177936333617260082136113826704056688708296507326115984141429586897774287309049326952319031217547296222142084303034278274359124038901797718263014921773456657679762878393128040148263821072050836689533455881760650722982657250543573585179103203801334609819163575815302788965974614217730807993350344178051705622547456391120348034510601033990651732747592209320401618496636825446211725221456828061321556292317020705571350959766324966833605708656467563214226350332938430757522309237557443863825507152764403379811869443429149687767184111682355454080092761835408686472265451472864994724793558722227438762150921143473546668440209104898868314699660533946607061146113604313525199313738614016537435889774037619706684780180044709970208641352907706309295415272983095653739498731617515713087089119882587744751546783960717341118567587435355759012118564857000848592248515367828214684437605460776862362966246490783748131751304844956522258181708276273296495140199931946615482715116871525038265187861999433682026102467828809798022750145821131596473059620347372418733948024049570362048635726192603228014323881289589867515506630556978613641578278084742402999352118302429337382581196573149499552718009099681731742958654292925848658626000638892257823203842989912778604629896806763179257704431056981565017431756259287020825993920111993490779614757784294012757104324937617034913475906420452083180773087643841609728290544753489318464628281350841536042808920787053422255781586066680431308777965332964694113286610345081364357467158945160411580309643567190206524029540629550176153737294985941016233417938473131958922483027848225748733842161498586508257187861296538752726914801192283414412246045436591727793816646204200983082238121693998429938755719441326247817689905257468031936320984690107468074859191973685372347004383981846733344716904388179893772231967743274351749165563631649614192915608916914428290948731945482102774119703093851410557411760862755622905122025109495457279328279772070254350219956211145524097275303198211266471384628316704660620158148120206758068372859400865821191580112723241418571526418794818158527201697047872875265565232366843184190981810242542350885083325059792733910268753103185624904300319798252907944227434472956690037991715803354635878829491808667716312373082223244848388325325393243242855126402580978067335977880041814798679576247411056315962878085832364665562774469095955926064407767159563646437277948523816905488968350275737897780391484214797491426130215472696092099492091665790965428464653218166020699262525298810393183385831184413341132033861815538005969004427536594541382958323034191480234191468851944087732934131333307688034597246079525236623067369158975698419563986541087507211111121685844669253055522172136161102474456376349645854036336380873132804154356819091629164662907659276024545010366272789383021851366988896299141154562325212146704279786135871811610443380410837324057382893586867102243547739162415082307431424486841693985086597064164998043817619339586341608713851718424898837811597506390850421693099766831007496349041762354831029994965076544105312306617847519855588072846105881282161792202034451477135807160210663288408646859397343676183648453339431972739261841580904731372328860979215469077564417459808250527666347156213582532411781738463083917566543608561088726826469909836863394109565358262567642139573161784240231551630934237736901695505696156411379006276301861871524712921002660814000131618408375174524183307398483947966805276776381942999685301937866525980408074054987754462229397092136910757731613000039677533429386829765505493802883173029096027967203804550316384928085206327055897604836690479828167098580680096502409247476233642832064583298143697337133368147146482618605401294360467847476453394729228123763453745955526855208390057833104962233888697895321556403643765038222119788532028440722506669173927864637586072505076958554298004282209610922028158380185521322527540400845292648311852966118886257412616222731331682726750148813491886564682119569379601770035471423754963465587190385183680851481509319993390078551489881826236854894374406856053291037213498579719328693994570197354180905376337009798990534572967740317419534321803367886105980768194299518917257268031264503202990108656652082829685661370328323264408235480018951023242566329460586459114719599214111648730821986016519274341551799873145776797416687371925823267133811912380798219112275959859232876196135345732953717929321937456386885474964518506293022265947927772072591593107538446814906236530101282735661477707927192346366578342966536882234831312764728757395648710030873045426480997128316768692062746729618688933905636202047479434178877036908211922572353253060938588663272036170616395356902684543109330277006991581963799226948554062089252740046643125879600785020205358659523310497435123131313946124409991428466081646868074796163363407719897284524891061223889704505894192216003920682549332289289673623931083663770790772230041940185964046594203950905994013846674427621171138858128136620526291390699649391259564108679027134173722608599601171844147901505488854136551512216205564868571411106249003791895582746379980818346149867296302126950839840098571548884575421987827598423564384303637120327902641932328497549717553120449715784482560763834273744400418309054758785999004829592017338768140044553971597478349833160702789184587045323667557336759035911649524402631992043129909897722088508299549501562106821621822085541121228334265978479874976807258822352239512835120711994781376375745100899182283256928071701462953406992278482375124017628113949736087494003463040576997238082916456670820708211362398594375463270566348858486090525835609559461035462966897175770918312026622452229278994561414927153618241948805929567273527920739728187385598262895432150112839997410233378473316177070713467126271692420283343563225094559637825924300781637686158663811153757241848264241693998264244973770605189487785032843561444156565771005435044976728344645284828706941271767776642309100228641967367568437660940537091243568427861283466000403467518546176879014593211210199466171167358018326171202472356735656134073800680296584822342881788351468042624760219074199585833090787074176235830414902852516862651346854962596889510792773353239694675767727944393963845604445034107563175553927967377147377137145275654519613750231006468199125502767811668355689444819034932256479696473442242800295231854282293170267801461745137358592544391485196278537394339525776172341242109290256649718418079260941316418962222498129297487457133449455664790977120476924783641106169833638048268332072640639083521778064719264642995576707557904792495084015343028771394057283543493738038492441038193122094065314891893903207892040265603749796988776578173080306946634049933580350663817465273595458061294353946938415953391368765586159528286605786211899991580763956628774703335901405544144176319576055013060025913242060450177639943731730564848178382611264584374897537254873573375821472006978300831669780931338105520429879356176695496170337466323860240445222866063907982258455569750592874741472482405139671661313642998262210208482176705590883189169287939532589298025650847342194451468635259774264125461778782706115128332864346194137644223934357937922153917529045844418803580835065619043163099874277360423049293324959604229962404146144361958327332072260966957989948135829689328547955180480950469024448786191677014807346280600438941182206684622063875082141364933384588201891858695616517620193444503613087946267408515565905349121773277757549882290115919210933059262491845916444130497894933403019213324524204878515323069020213019435404469767212544646868594745719250083656631252206641826536205771264795100652289873442744927367652596040577284154892613010564596194546284413822872556546571930340659261426417259379438463823007945780528587422305227416491033533067620001197112220743619897228869587004515984498075446558466121035702856981629264157317004684027148556747701143100130945909234714245201061675767714967360699252202385889920888250437050854123474191447709843703536491279255417294275839769192637790579536822745459310154519414702889971113025479035259421303361747650407384381513195297679432037549319359248429013340519729881467348437635065200476272889838920281622781468161668088135907289528020748376705718948234495915170319133003972615097469891382356779604066417457939776073056127160050855031184290258781356733672768064579004442031446186444041589929788398860239219885917507665725745965645582540905736315281110557836187622597654102612867420281788618924842348307452396681499266545154326824865312851771339787243974864675159868131236005192316048288270869382051572242907655761430015746115964129692504797428447917978312745298642291772060439672224874314764619123338600388121230332537937594050583123507304623113720447649891073782130447013558580437808404628293823472808663344334820745546921615301747784698158237552062612797988263174435153168635513055726965372731537854722984006906115771307584881945459931876282080736154438312159215434179203320483607103827109421787157344212841609653823999562903777147762602672499225167298169599822512111163578909618464492167768223408794311686846749530170449386455953328149169438496656296924950203069406352529727094665681516370786752813197500568903293260929199595128398379208773403893040113991251939411998939697231782004097565476127767672780438133254268147281081013106142239408094496717770869728866137685729337424590268491925803324508865325826800447754534140796912016507348025485079472372952900809639790820044932221219383747961217363611069689412937692890822781856489945443835044808862977013720779907325160537396817914648244674436963958377894849991711297470933265496508256083588045979573310185786904940832060270688681527847961786962656658462414266355929343513282700493463458594399569768053261928376833986071619192364005054584591172054775786088663558779570289188085652471387065590076487213552874348852508139530456855586418355270689613539690174707954502949431185014819634945779876953951934159753296650977080506497484179326750328357000682733743555459202081140628138029937493532951722731094288027072427899529357570884329564863119791465626621836951211516010511611768451500344866288209590358323680836496522393695453482894050581071129462405887678966691839840391898362232153717989911142020068845813771482455049448318602926034561403810995621378042572494778740359416377773285007281888462507895483270085203368965741859286140479591565296595587628065405828633008382615974180110195852914929481812021797148424265326161534437807374693565550958717342088298238836263796830512591358718500138709763107521896527946139807475212464750356715402627305207987948700576469557601392879603999997098235495460599151731447010629859147971888642333190882364313899163301493322309067304994263046407176300892641874828223228339890648297351178860258880296987556570695702517778824270800520089565916240816250277193874218841778671036018487783484410907710122455352739143612410672771712799599946766422633242180650811605868117171394570855040210747212135325425565187001680056140951434853001609496776895621003184758005331670135604844085169794169563779172156492063709228125092039806110100160954029598303424910125852030735116210293171882352418687660622123443274722915273622144981852879799713131163529833108466482714107254394438585296000223879168708911862520034033896386551210471509542543889482134033306573303324762097301308662925236959965411784130879178086268237113004448472878456009941303803136673045275706510344627668291296215906944716342908221735963794849490686148524605585868623209462481688527822012206805654292403657732913466059084357876743153402871772723181342577844738106000048397290862569004484501335199594362898578214380870823318401942012616467594849550750280316337869944170743921540627806384175757644322836050446362226590151118446536639665557361363971334945806307442339434933927901952761040771850309041506948373555638862554534371302113550628478491400756148547759154623473889424670799511332449287043094352276845001872256695989975042804833639205347909896503310822910305823260520646577798831689482829122807544400050413816930285470342009500014485377788656847812981392363317526662190199439277836202404929663483254899138641380782375827083441598212825077571209895670663453283328354363893165677060523553320231345928751025251281042298272458698575296392467247553956110120643649400026017378728355250593605798916140111707199835253144267811902539917349827967012355407976193552646649819822445571228188458888598159191287146153747822772270311623675833268437249277495367315278682035307573784908323381299833283583209977642641835654819445693031728690439156871882821838636844432435350957915250212096208145080848565023661787917023518203248823984124293936194886959283289849301201014992906588321988129587600835593858664771431782315783975881069563056262573594965719703284275715435643809638075311200049623798757710056355351353266247116179813565625638486219468083769004779905191601476887125235625354847157489173847902263082609041760495842184559978249141801689950741823753383306500208083965038898184519146783758431195818022890121161066658745736280145518411684825824605244350391957688843271335606996611068121914503160987515738241112359501146601783184733676442733474163339870670883494144438974574328821856833913629572926091052759060232654279616053659924506465213405321311521437025214482395154130047708991295993309029800798040307986221147986240472392130598106802348397769766230275935671267359531894319474694979149699973875719738966662857046478064735257074796791577339719307834603746258081910014081362473947541045487587958863069625393106287308799372290126186029912365555006906348538173592361889135612802648906256453674351473002703684012309917437409054398865901396488717135619266020847120841483417760129855295727950641072661866676392449143618474001540659079086076712639548041527794784631564727409821379776369315591366631725891020271455672982767434798798810663977405046646227737260182015331703904768877352409618282491054165295066155020081553503339758971779778768570451138821116905855270580694971288010209488086046081672349161557320441916053324828825657450956103953520783932589018236165817740222749731965530854468758883706550815634538066587245737739728327227387007321668479225542222961556173906573786889593700149587584223084515806018495989996379556746818463815485443984020640883557773599025928391159364146399397680284682371496486003896075321187338785326646461017151007884675856195872563119370413898740481022852916422840119692013769536338802078114495353826055718484530404535674349665489185938171224693219351918451454803601897511521500159558308182520267909039784841592313525659884090355423518625598084944084828178296921613200482932775161987612573625612382159220992834056586210314093714948614972574751755923106582326651187842444310726945068170922468460833714335468777675862446179792255406229359973282473352335612227000570943000427510464900586414881779640104714490970364920532168851729420804944591450196481582898304241751526113243755856730049980775304187796215353126624760068572332217756149386562089947830474393271001915640104078599838532180687041997169455684196668299511776548203478402912492865385488543077793016392157432840490901654925139419972297601588438434464776093728072733218005707933616981385979263187111034835399426497191520218163772232641188459630427133126882301969382954165175092971037756916574610319758664874987136309631730922119101833778754833663151572409679981546203272528181775603065355794464011314583920699102242903853963308125717858341574037318028027230607210144851793910158858117387793745722113433550339680995734910158217570834196944509211291941603794424788873878419423001591879635922088195611974114756220352813981073571991116383393147133481390293474259212543556909700368027987636651090138322341725643998150609402212528297792558816656469825134629183587102727307233393722088990289873122308275231702156418269938181239586243265872975067426876877343973608821780991485491049543321393255968857963689463914653251844254438223393092493591843717255054385072767489595443576674655239424661737988127251414098646783349163449948377035716033575383062038840868115413271922422092582382030148483158869953673420322361002909411225998747320704937414314071774941273940686476092559362458774429622401305519898615641367314288746228632368867671917497509575522737918487789343281515054181922949671442939106074997460699137503458513771202228184975929753134814772647164580889863442643074683433081898841837043148235855622789205191585076754923141184328204524900603058551025607770394459411893013530986915511893538984560086900627035424879064128287637127073386713585569145494427681492008613395630328291572586154135721300739651748525630255973523411980160720303257699725105039822719073694124564647248883825448007615827196988254676684994565083934481073395401712693023755867887157892176739522988089367983923364468311714128934752469170559229179463760367784701294529454780351716508766189661832607591647355896807166908682016304243529455422138071931856649462780468615334146365841173044300293243840400128959689173951243966896404610634259619624554808151680637547768697869741661387089896405704882245602482859083045734078316471093343853520972669488180021810586680957111589028555230868704655984645052680817945822579081365443391998994403638225040777544316434761341626669964815152033820586670447135484172791117023396159660337469076798754826236833945739739026416436533309829191027759498116656103142976699527232935719172212634406264763679145279400277328570832563569793567213851866600063599243435724220427548330776999697075741506238721678533849409673581420419300605802344619733642397997321866069045858185526432952337897477288016851500297300097970658836975873033471502328415095344445545325654085302491823480470014636010898680015343984742259096307935668138458703931068570824214763998383162532815939978232467878338372625794734641998107093548078192284260701974812695523941274697128093355972060854595378424131411088309580289697438763117468860476763405311113286404449392202466987998502825432933222014951416595752607108006623089192740654270842656271194447734977964558241981810528048482355269983420346667225163163056865643702672704794772391845278966614914351906039408606112608489632343854334061025923798721528220381528685956353417114408601753410538157935572987250908929287403999478066638790822649309632563388101285199768034964194475637171483185477485325664763402420366770914259403543102713849415156465586325996272628181544485502269802193712578831305293028347241164032799518962716457781123407330313684127573721672924498656604387594270674639202167513554430291470739460911307857223671115757164962137267611677899143241325410637915869294265873830453584842094572026760089866835153984843033291403471578272037719410703955205522278082672801742823069383066577327401389209390539513515911201759173201394527591561238723467855937505411235392879004696247659662213321545572288317283980862974752986863134949258169005792394793649399498595311019181530521159100339931274196240973724723828459177089326372591419883351077234563008076156389436119043622461661620759793933932058802886289909801341084038264131716440841539554257936602111180607898735777827198614772817295011021981517211501625530490701466354552092059690928689451189012052678846578741199367323349039119275530370701507690256535681122500602713063570390666103647844012540330705451180101192675661766641571560668934002383677770226258459170314546081413633047087609371871811679707043283925118680103586693284899493599931195695240496536184297562946161018504322672013084564617208899328572077290856857671972684734766785879050844896428480957237610272181745526601316330388337233249111663657856538992319560476008574033696051818090783521582867565442061091208517679718934780337639089114059777060693088830915244399602616032536062987446789567522855638908949765222714633345287817314442900773661172735852985010633797962885376765666867861378260878081076639823772006554184281375649300406864880374609944214954487171931116724697092562669305941900876852352044873704301308197244329649424450423914921652906051980850344022837114363383482583877043683605489866112902609420833645123273576651269400649091056670373444148398731158453416487236919760433688324061837751866004748278319687051422998658321168259263028242995843401433892090540381528512412482382095888913949200654949205493643883525647149912932999944075611804409437254616328288232238554359082751673144357429540600187300974220498143602130626826103467821055503028768946276240136873114919430310395810904459406355153335639708415488121010269534830427921483084989332757042759471793654466538797212500507951488999615202149694169264128693656528665122611267682919609957223062985820405205975559629331859027522220083826976931073459356327016597279260298707658771838419872164956705078353068981450428882788171663523828644944249775744808895561816845345600853180577320577074582354163144143292553580574071624934530600726160662004430913270871966594796113522245421680632593965841374153028939074183749791163727783021057883379245760140790020402493303727122506457056340265676667351947194438792885236826257355553036555895454163514618924791119425230276409758438547875741480196770310195442796217114640865190529719011070014634224900901409206833571054267389282039862639852798391860539430810603715278458936955518902818469585897207613039737594321258552484882779332366029163915282910483146625325095394912306391676040645074381831682003537684571747350673569086905236338466399756442710810095552541161790971513373262124047210828826263396963211439872001593992238944940574774130995883752585829022522933184917264996113159039424882666672161770028408003755990320360145495226212025089178495689742794051634927652594211920884078760948302569254176254015459997035011669815605484744727493276100965476064551258642339314835576161624738554569492757995992106241286171430937434146633270578289230085419781267977004384077821351106580011245153835623202395166068270393968366740433983183655373433637261072661342836136877626647333603361915415474758690963895092372112243287960502811436426451875267842585909337415779915927121799193224459149812932193256150811735786631800271467372207731041248860758276208342070039493112119974425812450282051027694949375325388093853835067969189723105711781977597100995869858818477308777005809762775283318171116584020082753838315694570906566452751518049233620566799671135538913717460148386669238966186599563836207933953573067073699940956096832687372326875419457895856051922117720046992039232969749804079305228870412765991021070764385790536459859920761977510967019521933355503217858429317215196408184026716225238745903773894048409195405961551958964528437871247895476220193086662920134864182213449450169901391764579717252635171021404139476198076084306422824021302144639942823668021912641020711640271091321894651903153659519396148286215023457851613611726824525721434224227495363288766115095139228555051524670259907367225842377782571600497588867410917504630912854801572519895542398433277040000941732683537894492067378431157519844834091920908254451441476774936254248348223247342441921832137344005725628443748499451337466757016374577451183685262876811721308487109125252594464417528731561803310571043161916515312415513133479036618503857171569770270451711460767559853225305316825084611166786647580741832588339186189333353997468235445156713643601135945494484452288055925426770916235420867905257976058397507526386468588948387850650988097601842271433817951549069214356209779873706986726925209679060245315049035983449232727173617503919019041511397933804588404919423949410723081795593566930412013388446287634325514319851980237362860416316001223330924637252052488558117805314296886142135495157324742147917945402620497371680879345894842986625680635119306814514112526250045143334487921216666163497612214926653299235718454382602927989508816319618582809958505385935088553906765819410622679837597907369048732637870251760538726764081543596676103752150715694645041485860433841582808136506579439240096293647347111793896956547608448947512720951623218127973699778111732852191326241909284798051515100661642924621816155427581066352320498779774939128027741061186745599341349783679103078756788316402066080512522809897127549471019834282062990895749331914769161826837128270912771205628910374941442943537044437148796375524662300753687226858221927679726324852614837518031323303569542771143165081969578103649939298464485152542612168018401976244202448953905429252168583039621907917108835415259975360460462407627801159449988875524147560499387167484456129657370359660910134613798251194367752102886924424948371362102763106540951115231940795689651294484921809188467501983319207873009820996100075461986823952273160514922330248881689555414793535226986802192099215372595017424257408348132375795241547562696021431498729538759099796444939298126381069990915797156313058654178929787082436338945658332284558062831223769194239470670935142364900296126571423134658531835793246359471193136133781615903056921234505043362432678550248750653043821728199681368606907409712894790361579722367821863364494332115388636305333164921184723262375740542864222769594953770553523223240293632260423632542102675369748167384216858595940402454505606876904772290496695972369468419929675031233300461779831514684583418263807836929040850752958213657787658301067019995768623486825836175771906857056381004015402852488709091885108371585843789683159571470574233606192912464780178548521370522600376684010556503030037772131370004325530005157382700407408712106659948991448142751303784470552946921028876598887076926483531670580898470780609094599808370551514590072543397197701158781713879382073180773016930811052265805892357688244350540384633611179067629079395297944291709438377951167520142220216676855289219898673644521565269360409342108599746156853145240710407018826872142009987588718702259904779465523953747040695489417293249769958470702245148416921911303109880282042684415075779236683506522685144240780250878897914263541067481415169200013881163257638090630984217506205192901859702600268196907909111528954336406773203089465984801884358518586858692579273962979191972875511013309381906284960124463774309559411234438413512334938923816048476674786830813673610634910528987414013095398142528840089970295097973844750950163952018012535253982562118471859046462228603028100988417152994067946653925304098673646770639357771487122543415327879147649407010001800628947182860860860422101298937752714662764085106558015219080333472598086576485262280113530266019195649529045620799746169253867967184425244053672226525660709540302002737777130402706410058926576355502914420041268137742841004753918268486499106227128202195349649343289244147105418411362376622882404752810053406655316963391459758002487436676948855847421911320779709512680789962682647451661712756066246968805641620530131869415370999516662919994510016825876307129008552970297966310025093145236338874697211589689289772937752338452991406820820389502484529391927538282742106225550249817036857213783032804356215775216590810071598833441008066683208857953853483885119661084273400948721460315746218867403885480065824928455852745960879624226541920469551855807802728503484189922200651985135316286675705408888882621675272440562834248840064664481814033038834055899443616895820565396222721428710564793093702796169538459632791354777207087087733322445464199029888749115234286370577699544255644612257522288472396685405045129296059131215757661574689032190544660874400317570213761345078200835863991938030632662698766626697791950582009528438544207083352296515019027880578335184164302437213065656907164472614101103539963263486798855283947623356779077848560173374840895595710924409312524457089115094034937620825702283546031955359706706589375818712323115876997441271501731265890303868482925327357976303631095311468362290134142466226627073047846161251036430931535884155031144495576245978905030268535858738506526231251032325084349640322153714991116248260829467548203390860866652384583355503246922345782634725327876833323424862393128989918902504694486203409544847816842374376989801776912827114390124883088750033819906180728401206550856560673285561854194723879379186810306516660999370340246042987116401697612452699690371851624732077050555518836446963793907222787017405135236757733339661557893544283830183566241462881296344796898606078311144115709713449112657011165006132551067463385217909998676774849065155480640885289135955282936026948123516022415399140096888124077537223792236238147989575450359206119997154884147439255907535376198039358475025816846421402225223317683892500305045217765341585483250945596548001359522980660515582607222922829630319502400214327443622141992139825868790915951479422130514842957991412468511585017704661709361721681515025968518589830413294328783411840127502411188349818615589278610355057408254859067342602830671917263753502926726667922306376406705631852275846536644725326546238395788443578144925650873288783935074739871743347490108466394996092368568632855152256538512449857412299681461983872724388907199953379214940007002800182467723746079742909678334418138018712720505954663016192579622774229735797418626208770719664197581366541822874443660044566253635454550067067743467034672479851043352498006739858696322371479261397803036778183223943879464025267505058790840782280872381555346361193391508980338018967198907636525022329033539303121001529979349494911030855374086350764034440173265868321223272440090112387024870760505086539350542037567225945132956642049608212592863831527055958621482976203749943525764404573100171858335571214959597450370220106956223171608290453622314642138453516484768150798202081954302985695965318491357669305275223498709604792851435187954091377787979280484559316627296443791619436371592365159083247313855382657749576561871898387858395937166875839729106643895963893909393949076678700177278136250406382194822957504461041293311670569215964278642170531672964523782806865777986820523378636403980523593056982109374873353017387267338736189447367446561309932416792297142514644016333957664438039790190849366765575760621489724432117006382440192693015240713028791497838019090683378202687369054267144317448097458694432524220311687811896633140424429344946674120147769879898300087617869878745601025848560419014609542333571226016324512107996347605750682084350216646382371741367593978181328134314838764503930592486277205750686961917022819333886453862858955241463535934612393711427746204938308582017710309182150578105361346978246456076680627170013659610006971568349960153630989706659725366147723937500840607071614370922713734292124713347925886485688804525667736598015511256790499743029029523415946427010097957038009760248475016054883319398589958619522733645651610845783363923291901643881752023196099142081230362920480088979011607822142356081392563563072635969553687203018236889911828146576733373367834506290934989929619550220601815584458945568361600360363793114367198900684773863248000638656860842925247002511156114910029084171256144938264900514848755625273269304309449671740906054511858117805901432978658945350033272698629408553424148168623341985005287438498670559191951559017531045559894587117821333432958015114490863028665856429538118989701578932808002097997998532013306524614829720591832373975936191752479071868269192534865723759853697137027638580575256526745804939556610198615123542319587516582942765625489646412249728825307185079456158640189468052018739466395545167490691102788950041013728658027979867957451583068342317545902425587478487365448728368111295706615674318177153787126111343631949829342310526088014828569135246734290389143398384707718133214930400267091438024910830745381474395153755042636215262973657098522975837441917401495316490829626376144662347245805629505150158720488295112371501282493742555600932003559499144106751987635078041405068737562208883452169587219771987054404125484132915492315374417339110828480122310395817345932390310884983722855902196482679128915979993876667605050576089412003811235589909957668386024700848371505980870872057553270297069468296479354067397091158998780106369882988005497616067494603844427486969174614503236497886640258845001174283711430497613987726353030870084941288488647907041419971341996771666704070633972283174136336193312437426974275007969149501164320734198719997396492678510249669882878532228757122122391792848643500623840143103804703026468108368609504715766794043343795386450015631355369374263887235145708455983272972575897060390393654559702496445049230834290046756387599011135240291713143436677443147133620958871554912257959699937536747027696853219753499447870373290146556016776198064305077859452796345576800828447709576562740312913459193307421478382570407575537137269239197022164492117214214124851506064377400305296002106405086532694802660716465754598870699008517141600358437329454465308431995179450173683565068019282793659888259081245503961012955140529139297811968641598208405783386515976759968183483248117025789396738311007669901491373795024272275496448369616568465241335247703874775750916571774748578667286276539845750281940654289659472322557079620331719898423626926528598612610899466708515249992731652547942559090519455347882427088376263432156423136245952150591752362751884066956640816355174132660347920788059803593186388667264765981717967490760895410824180179367035712620015420727178130304903883241135192833083713105102793267424949105873007714288036038976263646905862405246821821252062793651738841003815356604797129168811876471454384758634043916909720215134893531416296897528926963704567334707725195357103988698656916150347691615952304781998428158847811545494228476571934017064413433069972059545157755441145093347999147565046286608548263251681659061666172741883454285496311052646979520264840979214793471383836036438825410943203971702489135824609311624345507444627531871218901376582892880907748144157290217231284194839584348898957433411204285756590568546592649775026913000823502709754329740509404758932001398262108399363217813285778176519846335437033606836562889988801622241096230565200016669068800115949376044209063735504765157746518641057020197831718981383977779946308511755361418486272455376751667336587981944703586739544225167421324952872848977876739230590305178480564277036567123321861032204361634348924910356191620023829049254513970600772330763088535071665567775413722220550371599065546693796826430019411595374409098176315841384533934259591125396865280389275685231547765584898635864939335756693122968571233064638560401171576952283356826799524065530323894790173828355143354431048498111582143136302745863360874746839323520577798512104942937419300804600979048844579909011220628597941419391248316570280062467411894489213585614368999691068819789951574551219983708122561282182801088216891773051133451152531132973461254141036703317003259399714384925671849527128343690578918096236303874234162354604937296365745547736444149219874242586458952838019008215767404100278925929357494332058145819013851765369295128942642757592155786558003700664748007291484314032196999414513976266828970551062145523378593200874163597153047976165399985950898317638706487738454025070187451624577159652386585130195949897367757832781412478623354639769510576359172679923312299855894617890118222945849105676876522249705697643014725796606071411416499969684506879999073685689031977825343048325197397317499417925332746215513471899232745978705746593339001944023062583955846378863429081031926340229866954449318311537294404209066657125212624440105860357388687792639209639795739803395685233534633418750431656053032381836531279427786883453345639259769952248846632867650352909442164998130716797097835171689995279879190702777725075715968601205287755206347787703697620487591222028578183623574259042801348134113545610451202165235458451174723335723238281102988960041570381599387752140463030361889624822761870155306349447761378752457018166234055743238230685978546424833712722236488099767048087673815836426973894326327761702526844071804279639031636067670655247645109803737881790222576364502472757153202560886125555542213573164267175751740449333238110734930861414833029923969245210620577415924942879464110707428443945495328096850379156914376705382874846468967409471194390928856282526630410875516069387870907434595567995225892305437698334470279468450889628980703146729593200321222287575843726090495557563806147160499204148664120254691869625806579013507774890226348845662910497381832386419520918077233843287376802982794613585269481253621692751200464904469489474281934738954974716019309144902056453740206164055485038659542004857842656400586343323039770361948668832926698203739621581162434780204058222372573066230962220896551166693067813155630172576651469302850361355990540133607557119764841858227287570218679924638070082658882272217976595837725913580593944823151024705623688639199290884555952865564132974235922521589971842946653998144821072233402047546648262757911000208525525786952794917543953140111836748653375131809149404782905094839447383617072243632910925784826236012258696348549932271685100892644021089993254923552359599493995896106388443901435385580041435474351363363907095617310484540050612694058435361251918447911355595988333115891193986523817588887847097695571464668686473576501015031632089790605218280201898633377788434749430010243577652684923757877317243622288644446574073387772114012997448891612579794049312651132646069997775900321332656969370953622735000219194050279571296119370306172551506191262068237680318630376586117272931775830312359547847515917188594423543972298136355231660590852073415162484107668303879967452641776526180522453085625786974519036389672916423056693724364266531548746242550951549232874313397976332880253636376141387467266827019192308494256193776803685664963713367749002146705891885990904096674634461450078133222280720935198925193872606993199842660217967306268343182225610252438100950452694379281431380874685613392621759314166841964525300066081537184671536537123137477476176020012485232218784362617208420796564400748446609573206004169182301695458840698029207238101080589456817352450358883361188449657288152902276780744271081406352204458552950369495347871271856541963427279308867461633233958126335793951992375968500699375081567505815944720393776970142299800458071877963480775585328473575694552554912592192155862686414305261745707198555202899010645849926254317181536691086226407649712082795512597527120406736459264886977936145198172627829903902542934867820983388367812986809204692396155823860707876874579778046623699577915687176374727679207307360125252556617808162512543612638283870159880921083440816986052738256077669635573092706013352456800338514820376757238142523519422803748213821058966760588518218470780306377405037635558496024059173109491948682446613840866018487236388355626839832380436643417012492452426757747216687493808513436247161260788530404419856632753316483954156301540524096871493524771926742007483800214741810377747254589116423194267116843230033041231791597058938234409459973065986968236605344348648651461776607403392144293721278192398621723557377527457016509159043482355513090927968561403116366955576268438921735285149348067617342503026034500119601414698049492275795766910818335067581204941206996527886174042806117717740623907005406255054701854347907054036526479004085926699171947931123512229487447958595951082773023663839213286830158896481215629767542356107305734968018079503691144090668372981586468213018279156364678717230666825779901635306586488268600823817059272396241935113111587721527818680370647686987065908324459513472409949006352577529332203432830191880040986429150256708278894020005896256817590612076738957267512426637295596694761969953223613049615518793306917394933945963297114972041457995109528853538721682984714087698296014314185752361928660264521095435740645825059904586771066326988976712105483927379421566126221474786459867314144268072839042690000750115115425873473759086491102771486359838615910064847675145878168312414828336543154689399643669733125702776042270800332556951735347769431528534398115237175142188785833768987407032653461012999503585902284521254126507444470546384956219563570564242082210023982354692113115967260271608272222472007765533591569041526049585174622341275737682471643890014622938173792657233680859732422627187264619238911544835539249663436672831182843587730130148593592020687460032359035694533836047325752807435160770422945043408802374633280676049005891931180014686960207590409241347997658262917164880954050497154975848187797647299889640802562838667137679124440977276848968451047169880792295616812201720174894147536350603625576315586699410853306543230523005609045531661458461283747638608263880484449617292344159984469568557207438753999887969044090184090788957764897931438181266888485065339238353273193697783949566229855504270390709333145201083701126933611638620426812641912305996155428788987078140863947367644169696686240008008514929762775693306436506179092387176991309732012016317279005356295199353479888197546692698142793834061827030310355587515424075359247786438639202527723158187733811891568403303241545886144661642088789878555002588321023275781970672524261925409383987539588698502045666030555293104569665008485765986744202510309425985598368062726825027845787675886356509928257937640111284615829397605318716483516366032329012556946899534212441799315345924917225983356778721042971979809442197532689408651828952062217017013824994688164674478002062981946408580589272364527317263570206561616365072902368046553407097682923282562829133461009889568313045258821002885305227059008218202376903389962508087788773528703823946631291696433130297899938932950115597476921857575094517101837545637463389580262892644524904739242242443000602929883577424117641756830871165753944068148863651683000949343785717333813541308532879170115579973927185382793307208525667362481038661475972221743493296738669381971267314883409713534262289000475589340157065721091138477017591468455544376112178482173189766877479158783180305216957189750671640727259363862901874609389285634470584452135172937255909663739888413816178920098453289420656731110620896924428451223824184496602000180862314372672166211929708975121275912398476988254314997395621839054499555264034709051626645038374729606149510708954412479744486757305020946113613716706993708234418788940767549847148721472793612765980798753042501784643443233129242840876066883392420165311597826780900272247173029936527861076590297164982951008347659307373013497758061323833025669390731758318653189758390359693781843288476346330278575601989347588052953028094366861448952211934956254197508405109145404085034768181961650999591652856829910341705629049116916266292943108672281354619011601395263316887212516747583779303453817260948552609377497563963306113404402472810065426112135237111017789182579952308528321119541398213962338358334858834095556027873953555041775949357621253443266557099319993671619067742491032483403416656117147139343701551627393725738853038627219202012958047473222616060700725015075279633983781311642613460369973215540212131464436814113177723453852198795359392404835626590755374883457776974086570057957635899983804409068108971075345544711881077161593753132376297178515946338592212834904578018416854418629233765180644308994450404588928465349179442662612898576022561303465409878759160552926975519935209493731386047692023559289877570107872004976618371834498132774604603048831173621160223646504940656488894787435339587382362897867730025399099257766572667104979087618246117421359890597853155290500790051566907975090025295906150222878505810558298896876942952034198978675709546767401698643550300664338493830895953194603845745345087529066142032901381411405299261800127618996457765442916710378045171723758655123114703792022385997553243182460262409514234003528859880224163876286019870779978239574516974746902725834981351267172285125824239370612173839928162756243809711467551199730271198081488455037794044219392898986514982766960699037933005229418421692180672892847703578714446309638403093644215315643721328740577252550023004592114507486670725220029360492519655766862904628328489679644790205155267455126681421750678478367815997656887637015893062678245447256649866497637442242944200558090979903565615495641277137045963878651865943711350381662397382644411143783754647456409162647022303278380603314891079398540937071682685916217830626562299346863798550105929468521771964984881866370959483352241829055707607473677236365840866066019497200187832526922702632734825933912285710288253543171277056748565259337927587054306841287903822346382489662919033804001446473953164766553408625256530765526189932281140023533830321545962592184326983008130157003787807838023588193852044614272380389649256460174260660170958953823194494850081223238258733383699374834130994724693093627836949001870450433277637874162924586509162422055092402071502425330733073826982147494607871355214565265215837884550363810869878620840974033062243892342721586860131544166999467871526793315802316561575668651809837633684998053399266847601835714257799259213661728918708767483397206513557549552958863157083981330979816653104126284437702407439964630427496648929423019958951442542246876377638243473321873047726592108142322144644768207251727614550201234685688115452323716990851672281284745531116994473018284364544034800854294397229980737188415496407439093736943771765933634389930296567739240761073056794605118304991901266964553985664294647615558491727554959585381104522272078472065162192743062744372495027843615802257492212602671584364623584356857557950988716818581524482841362861189832734906437176606381347411281402110706021422691246904577324129124844780038794623671542736614470081780471632351912499401744948129845507236464691877932509935068052493359700714407546765887256901785347369853615644499088381802248273777097326600511657070859200301192665005832797937315497272080518246558988478049264768203176285363717488799031567027863451218566853145437323448722750821381993670031050141840174283628081110277202366329901401141369786261024903974978874720737987279417992231414054832417492054952242546756382824041431740985556321408624515642907535050150227412011629808803085315928130356489775159499966647755489754249833157849490221874116145171915381451782619670241410718826693151824523622107210235222909466580941997594725276332561647303773321558471158967710085538114365987887591276106240685137459305028146647426683528800264964797133351172119100268672195298665882149847170478704485655804909968206861942887895229262069887458552735449074483165931589352175065560923397268574102454570545591402500443589285091542325304263665288164163786893700560331753965302724063973061301536845004503675897404360405049486404116162068610879298911593552900560114684773979004087963277446437438072772345844305033512687703590087100100395127793408208069126945056056083551123304846034782930944266375143810321550480169624346519942879137292544369843878431367409317266118246237117765048567815267393145564606349038641480429249936292733366674014981411677404053039724530547529281399137108060319252919435545917880201594045188558530179209788466537859256317350564056826050356243757247166007358143181652381793586335831526938438117513801269284737947593016423252767026864805704917472508198032159245833085882592669619531526321210546104908458364110643108708479963658437452658989059385978751724681418557154063403507888493759903248339976941322504957886907200716766334438871146670637189729209141060328100680975065283955390353532119851040479874993787860986167252982389592414658770376257736440274123149858172185198669939156289756335157070157173185362680408172536782861474874899791327330442673453274793308774609774471634132258599564972223298090088345270118073657603002945882182124307236914617153310681274431074165329907417801770874599443944305282638678761785854635947418259663324643148154080658562429160907748002097172421355638909718952868388096132577836195358561381312179190664732524437194956697716752580599225293101461559727947326697910863461602044027147554842595945017988286606607013129115856923248903941809059472940809688909827144770401289679609606138760634894566291234629254517439337299140175901435076527831128254680908093642029297098832319876200751096341313757114003428331101591178038698476648490931582474690570515916113011926547294721923568386121223312680985988490706339144154799747103923782360850195268646901912774941934506046935439202576055574894836915344393202663755876310022623112262587351312079944098113700140018594682427871302987845828336280335115784550417842678382889722679002043758670933750487030672252336127428515154215134861487017695445653801305579418062588097889865314811702136637784842099475067666288835487543947185665101963332954880268273882390679287064592426537731061607500348685688819491878779856583246962148180356302739877197844234415598920529974136057750071119832156283143145480630400823229309589523100025456480771956303520281751925054252539845537008267387317755918544611044430602272092172460063928809748755690666570216864262481910561643038916669876839965325355478775436995145452456080741281778902251027308521240246704804444105024552054798924623935514325799340591533033823969122915877248049653257670691891108378120683586699149429674784652708893362107522408772091719791381966445814015075230724705170839270589582008005427971835179846058187259575423884529574893528460301665248599321330696095765420731820804937622685030064067558540650868661685133997823248500085881053459391453658512478197479630038019223210564330533789098986427951536779669402294019281267756765290093637129096455780009301344937911636476025126734419812570296255094306887813555581508275486298909569107324000719515259981035441256425924428523761852646494537722029874741758430996603284426741875781638931772465041440936753725652805841672208890619339304545847476231711660189696469730949391695727547528350173004693605262545986005831593704859528484900829773027816934651988822798236635145885768612815001825560057059644099580888343727727330250000278243999734025216909445481807879216021185950571510740744216230706636948161824692082160505880380392169445785388854422596642970407113719175668015232117617790960372496821019560827510081430501991220038365032944223051181953704831642950142569932291860480027011141435034630761104565175852176799348408490849271530445915254080912932602820769136695068754883345000580274232693110561306461834812534936597404553564593678012690748628572629473183896132907699702775535525287667927425371281533269683155847219552973915577212826078795783136461906137268871893522674085294381402506370243388887429239798928500888131852547400922277076297246508687167774114719301779829067634665331295529608344123198907964498093152160677822235431215714745233259445942803090402564887505884761869092792418850660541405215660994430263823840960043517901309406344823556592226736535245296487911878999873361888095620823207512956212084918987210817397574570137279926646456842816222687417848165356449107112188853570622192116666872375502780591253751985569341184671794792589497913453412524330798773051744554614813596977489238006281352205778339023102827006203999620734784813160257669085661841600862495356056984915873476193548025712437902786427960677794068784786886067351671545432860714372796185700247544307383692981534008494954889314584163487754999711617372329274512941467495975929124156197268087520321658511320128394965227032649210376607941821368377646920635340843820003036393972554559650104507799659260501022464374746683692857469606301388686926262628784681838176165769105930386687222562923714342284370333517846026828991324841915947972320049642672744998632830108482713825926206830764106286871282667491795039976302450828940442752438021024478461851532241930177803759792164898896123544554255754080184208612534016948974246354872913254436206832136396463968494275347120562709185997032582015817622067094192721229432603601459476033981879045583587748904686093583546572196002873070198536861722036025508144904674193694280247020392882696772550026147505128757138740565594918946557724576334745823932075398458102509878714992047525816111530200635145278181750749605226307617199894573899047232154712343549835741909408080189808173283023074633193281036409259824138173738525461662094076016295702490792147009238018034003617726701583499879567887016078759383845958383320030864453579150786964266863005775983009789875928238966934505174125128300770945563256009095682715470022429075495645825875583564108114411463145416616212992823086956964091797167252074567225977930204621383906767449500227717509258396349889065741287698967407245274957060052368602778425998054750619343974239183171089134695863747791875227532030749026681198427451922632461209945230570493156831551569422828428610596127147339012582640867551659653889090935265162470203628728940034496969454944747206203647485286142830336609241291742540653687209529978435953580200591410488055934925107201942183075502411731146443472564873750946581149044689658525571146814666694228728167265560812247154157957470445356375895080760099159708838287164052441211340425232284642799232480554484807271792630123246676399059960416717172461715270052744673207325487557807498192523498356098992737952270719445598101482764207925917305595671746396757292398584844876135510875347346505277442975416293095315046720180355216264468001805808770378710231019880491978152561482513031833785423158137421496691747960761359428757016542013921255170889570495585793722136111294706119715341389655502469874392331968787586069678360602444933425644246338317473551061444038430207275197626522214452249072822745955215432383426131051966902525757424680518083910843831895519255471866408401569650178175628457840595641866784690368693708915450631247664638244424497422710412251315015189797705281905852788555083591018446162647890158158215713610108707339005013987675391576193586837699685076711246851190854240519711660781306913204853920748215530162685200602803184219395321713224130039436374711802757959371282495710751756225320066825980615210463142638008274345061246211045102828337925583528311933567890628516418407016190463556539965903386089203280156805223300636848513437332873217008024102669499485988592237531723045404356164742379231215562786717867873719340418681417202047632417516289349182834899832110685291267131607073465022335734646978488280219129960481142734002695616700326675392502644148011822726670350090289289229077629111786059870411389597567743824807687896569499464756681261493085487227695887280561653919934500689529711372357806787136809014715879109451229635046411523399737014732054629739832521761490326504885080459235078791399645829830054588412597337802704635083007949986735831533742134367455256391050557561515760788277306769553470469314213580568188238807634383714773148420139138685408325604684464793738557412134659844295316373848908292091874445812676796890884100093496382626536235308018558053894023223832812877346039190222149884630028201850484483542671564770987149007152501530076274048477094726345508621403045438674520089368889691028560449422350146329301848313088346914854757503321677103327952081011000229282831817146772274493680477504503293713914500641890486334434188343299589144889674994871240661217325444979293491286694603805023660622169943172216953585981159676189473321791326229506521492591562594838977783131414284753606875305554526624286117803370216759189992689749760340238922171163090295483071281599398837482005663625361670963458520328452031412524746781214024521940920343964192407027818380830788938493573227544708399092737382863486657367124108907957705349820642179318003703064483362252423154610994053532046537548815620073154163447972670305825000189906434017428170384615581094012218140505758573311772254803872540403792253261534100445128340471311235530472557660065953366600254062891365276863374714036114088323046994601026170844625243731536710739942830187320766257248352416011542354625442816775361873002742331687120460705194814295638229458521345775395496210590163866988601717996233777739767920030132473768759410600231108810598599978882407801706792943563093524615005892386858367344713534673616577203098124505123621518257062061214870889475212286506220046090984518187985630317575603095925879580558768229416071376718769583102578817007178517595223956380171114090520980947240748592910214412545890730062273182935881723729423720532874040815879865399696767386306868150272374990101187726097628583807562214410042474436638987859857344290318679846558251285358240133859735660983731476352476496145983167360571393070867254927888081772555059231460155795946577347042436001269444067157058537442277284425728631876827014865747788428311783965398627663106440745875956500582929280773921575612722763321294411262704867834779288687976224953161923510369555281535115534286093394818890908705568039770079601149473253926490391388217800932000403750345327823960601512939735294110977831272381775560657634715221986230365991980785019519916173214439965609175221767887589836475071773486390484753963828045845295518945396740362963850438081755351187298259697314282805547943178779208086320975613152723847753868070845831304078200132899564305297799006652675523819144945995196707064422329064252087501570908736709725372678071425903052784030111083288209397540039505242919615110384900116153273279307070314523856327070498248462052622851461291914900361243223302596778091823747978529223223375082142435279997598422239945776429894171979810213734584744494925359066669582612533700381349173403202857883327557349270344046674778074403296900255598493265028834919683514734124177055644736434504001921629730840757005393446266853499775624886049191790155982629301611842119061997985002382891271304761242749308841237140273437358585826977403616877493112879899271596373566444268958978701425463735042977186852914777203851775502319491832882855630630157636187459988163877472522557798024546360544429537133365836527453702673223889796439229771096770041745141818757147355228589530853032708264308378795800659569228765689004608392264473002231217192092228250925279053588701369453675715318064565407571167132324359038761069589120677919557067199620583238550691643990825785792810869667570617428919585241139578447607259869391991166097821864668771913588569563698577717933897750053178578634871427180880995008491385402009201631269697009046407362214783500024081452752801340965259178537020595876348634902778439159137572392110019805547129072970345888981295792742898146831779658510253065751029961591724417127500108919074979137246494127040526293957120821300105030975232846351664998461320563104914875296897380828421149623523066491344007753068012101309281999005173108993684256672155483269556966446101386584798526336385985452549726324235287960990968885792368568645965991789291670035506545242866048691576055007053241115639038054193480250653193159024370333251220605252652305246328510888504728211944366610584459412347765643737332927975173294436381568680943591974512919744198216803195428930003233425980463158443534840415451981761925774926774648017185870720167259013680949845953651047323459654704628668119292677063252582557244782515597236188304060833261252479234476131930658557048038133399932152028882591927036571883954088497158846191414096574662819321810358919381339991178236639077324515505624425800931027443000859336893414454117893819015428918180010712048329721030762331299154207261438168806487630497958103864636531063144245324363715864991639318043482094120495937973847816652002833341545718342742550657657814555344298378835185880552647336638115611577792574200877732436157839439056703752555056958687748719254235202723983782910449015431632525680517123523958819782774057830599423702836987765017530991864917688457711687914687501245350586848738501286880466505778442064759746710319548539052463448283839581775735746423735701361704883043642497364483421355988779537686461780225933132172294307977524633223846381230461906157534119766770115834227141599555019326526350848290726693649781593219093460247486807512820701935352904293063893891981697444738973907820314063351217569480346483209575218793558862227101634228920656993880892049174724406279187281392650457455214935192926560960129988548615756574005894044372598038167130406293004529991696164547605197424557986802027710781673390921732934551561902911361952131042510820208000632819108966353773940643232602886398320550948317022865721219229941677712817608788629305904181258734835963561498558381789850536497626350766091931425439926187027545073579370037336805493489717337734267409902933650223539281239252118164520809062456026995348707109090536196674286190306231469211630889003194981261042420917255398023174071631062017051286861718311144141432838821727984426504142328461901185751813283349912016578373146694139149086488970495662271308036615711321601917194596552510154929795958685052330373668144164528147991381890629939439491229968381385633131933935426474498467966565322725554458209714030307377296309388908338182184149143038940628960918751231706999079222793733124771132632394734468394932566573586442109993779056248776218645858838642139474483236032110008781115791388563767765333960586290211503046580648424868128889554005884253286259987501168417562301162642771230450496509310924940032606548379195885679318612949547186946659996384930744133995668444623478726768944481658890483022548692539001705485705655524291206235459404641132660334240535489682597388072944980989894286452618184561881824176035013785912681329896130907762840432493662974878778275247765260243615001064439569015124541128144343421649093373846854660744287731219893413290880479935280650740167333619042551842896707058525145504870075884270623290384588193713362617228158224965050330670722398064292776689746830553410004899367882720680743235083906484607870981849336025026043127597878042131461617619859483623775418249431971432200705453008921938616959312424461220974463958693878710578501222249255704988216484134779570490008254134639915012085599251844557990810148236600494504225494930053486225909219177942487544481212868200567085584041608500938356296745175329431710474455007284141540211282738880371024231001094699202517553777093114390254902749672963389793696808206922965899796558081578513043999861003317679908196140138139324685388290234552123529693169730265981936347854293904685731078984272270436996260248161641200202772449584800472343276475448423323121748598103226548840962367246486521593128887577513875784026396901151834851632028240355464023734825590118006960085995254277392405102211382584754376075619444981285747321202811297143539928763320266969536713489578049641683688330563183163002343497197415029810229551654378688088733118086559849323148702592954683612456764923966984431259277945532377910811819697219145984041308980585526813384715589702707442863526465838842794657926946563697924961184617203988884356419099055450211649139417218938382373527134949346976241004545849144788936913189294559288517691683081903036336244109152768056224792154571951080362060454444570546975484282160287241933261273064947992968541327183532083782399655256781032681753329266687240253202783998041801035240789546245381868662090252851652021893490669646142691730113531803303631381552226368159717465663531191688723808624483456650434052264684058047704151383178079192491009670510483225596690003550629842838166626836033340768804630809550998263596719150647575899398461585941647990767526702094120558929180642706980283090691032761906604674395088621873637566778479851026918129040282354800906356296495981955792763389075406699440652964826117198348863344665831902337149394524137120050014699857979359368359470329069772245406220446930996166413004471953726665174296516581038121494740953551415293793703027734574110469277502620187341084238096480228504002033990640918853721148295268059968425412248861295276206638119750568602763223570541296403103020444253991310447036112017312707562938222719247398250846504098278123511845230794327288311084547238345329756863175650272867231664826497244545216023403427032005626920715111648137328960112093151836651123146793301263173396265969036515277408300698449806914480941737291813981076493826972839528756458686996734061156547715294329838725549824063550312513652558525866923352233969447547940865745881446985515412241196301522629857882158089675991050847312532615887923223940774053854064840653523404880562369153657926645468968164742874310741881777262517330964296159607408281688950298498655727018247358005249032473416063231883995593529544228338692895673715511431023321484324088869302302628178577831258957472889219037379604377759861788026561751987846294445452401932334800315024803553702500683203524180189011968492615941323539585817523890463702201238442357200520073673857553306488621816447550656126715398115657136239851833056006902147731173932941100199473974456930528525036692079899654356086533352907711438198308774068882464665252828012095187643791462862730790525727694889778532225112311052181055831161818161754441406475950290487735158963175602027904816620520048969188140477437945402007476201680713370541911530704131883539510342528781296913649822417300483108861237780186501410805776340842616457721417706197612963858226077938969939544623587184401558105907760749075504912545360348959788032388685209292825651039661305965941528811463651806193485015998025522704250721581753411228791314342515292824354107192855552521829306165189709402254825234298723235340908546397509808549755232550419455698079821451283571128223593939010066015007111279046043004583383886668406555908365063403250593191045990857438717191989681360538306106925124729508275781984463926403039928161929678766085949484932454744521867584256861240511477074994090733069881394854663493515034647390802386721478181757238398391304788075515708183533484827785109508533210535452909246895222756175851184471245311523291090985823889825351214734334218022454160212861106145834808513594420102861431432007345746091716162209160628495767620747699730276147824128994621494234337826146291268353109932355546021076362236325955930394328345027167707751824734649280547980757467125681217053995931226216597664467499319548647079833999965407340318089180921439471197934568933452252751547501808221356943013524959851951359068374458548009024364747228803746036882509270086724668844369220087183936644444796376739232523903112260530152939238519984577765837785251341940378000840775413883533648498336510329964827163357397529884024285897504254150708083994491624535580139117560110439345670592850808233192249839665415081915667091816977060448300525640499196161553909533496716090936708168281050591296830036904301118352887725520277699039054302313276698203631805726430622365478117491495959202292592823907385326444073404572502268274068424864281525305421532600957576067218496214295908740028212172093545472446894907602584615247324480427986461311609625796268440542990697521390249329189203834482148675935353548199298050241144521831588722463196770499820241737312108217320498265658428780974280747147234792816436796691204632706411518973619078292279269009042453413476764512328701050626527675140861987348074619761846759439465211252435550512817108906330553853703777167239551490599633709764342830933413133116993167789084726652684299367940302164287918949539169774749979807273646546827300537377403416797338482999263452468524704081433777382222646454331169506710163052643765207667851133667144025458740243686876061444699893985556629475171745272888114198697072840292398210752186200688940696111223575311014202022846118839374742326820511455524403482559020268779636757115794959031433985362121896166111798259767873892203474504160490281110105140521406923569221938364774727034935676050893716514872606142606904804789762946794274306686851530593811855476047002916065277943807905159089496321760162290544591944634476962938433607855562059509659248650198924641510180332388570972503010558989159299925167799757620794263312397153989646464563021539913131875888783833827367000302943100936398360376136221788447098172932535085354418749024134639259992096744037206864041239357595098484403132939242458805853330074219386404050445620257250669289365819083309856176119132397041934771858386729520755902613434501391824401476290351352018595933893698389338439477145653827279853156652907904780785378916328676415431879586470478323471719062896384658658128167452654153239850967311004455178274362923194262638724548435568676434421811859914517171482005943245499485418247793959267828031214224222023036512227586467007138924414284960495766959411018594721092041954865268567918373276407053095138350224640948918280369677090687681845271620129606215730944160465994989090039693596939533189057835971797151364095810452001930731381499012148580515895723699020627761542385429332495293815159190021073614469757065095819939790413456334733099975386669237072747848320526174470119593912245059652762131641819434011966734026959496036585264766880542728414112150620797684003973472529066669943069136909267345877603992484142493768600116467349578388814675078457543505343792076826709224688411794841227002064821247513724071155741526932855980232054259682349598344954401165567651585651198621112920083474605235327315149275040851352254273306184438020816063387443321303051357456915830307143219198735087969006416317534860054662605230279727211080131983904150858899107839869422174328305836333855756361531254190979739331443945435121599582645788578238043143513708249687958380755529314180999230062450638446908855507780413523236540073371739541468164653940002329342610184507985240895547400065143515279686402340178245663043624919893973693236076122947940227285204207670850458256354157992844199562442032831584607061798882762817384737181684762919439242399046804372550241867070338916306128999319844956876449942717327358426920392165524279466037135385409349942633243712164743082323817795276154810196730746748081470935902172143383978675369126666095299990442334893693607179915529032258185452754781741328235236961043027718108842230971668870324132283708583527052211915895227604465230022045802089460569900349131489463120011579790522590846694215786074882056352253336723839501267198196386906378947683115210102621916810089408165062895481234111055064584940896480316441106006681854583116898918075675996923085974094557153559215947484141131371527530445284940405058877581180480228798247337632964550740866983251081391294382988719753334372014845825635725826051823135742572609018050070621699482911833158583821465777984153387008560590768453078820782513156417940846673977730134580979642800475227534030798949451901010360666889774698621259379862054210034497085855598560919232053988426433345318600576055711433395059918601218413987147740249590635221862481751587612847396174975748559564039251117758262906854870355473970985819926131102503617049051637318270540903321414014447475617929991962975416799383549479834594529237117983046372566191944862066046248174788897771848610341177307264268279102051205394754935351116414870242823801669831233984889872406466315653790948177336753739913675701997361687601893306101776452400383626506926058630767737447374084681421090990580934274029335233651917714324060589025631928937023649321401566509374641720621861047787287250710562421804045961297869424729005532008252997907941086281689479133388753682562743759824390201376748602154868072070882596675493618935909968704929520121198267085401643200788182836330088125860880115972526268616377463250588055215283186560206710486796602076776046761413283519159635976377054423713198753878455653029651430883699406038430132594127716184908335095893826404142114351034623356349287193124730926624691526477580853780958095820155209886664521356543355320689764679854534527049264341258236692055868865026410017063150525864147823434257568297929998541715894552838095045780845088187008867311389813095487490539478531825461305094845426286658101583119558444616682618643954188977096735566133195746203472131899929145121564747713139799888460599370339417635162083805166182575997956389393296239185666828347264504567295573652092196956857235756930168941226142390365927209918405004879764382787979849898459031156264492032043913010970289234518769716089471798568610452133828417268843963521362515093143547853753412106220793144408074352693814924714480877112072941661199293616824050405562190405351264786390362543029156365646920115331494453503711141578409655252313143907420828558671397972311016965769399059005736099007998474284668361672368369650917570054219862253314115142235921879598399021972358301186660757041864876182084424085058150910672742282508740679752319376048495000467405179807489090934934144949031693793541334409985804212983301909162768803966762398911387565031887068481343406160039170602888338994951173651035954114562195505971696120753041425807175701463234980111491440666272908857723110476541050986038822304157360540118352531627704614527553101932211332162732534565050874918961683663133842690585604621598736885628877159800840285967603668809401490335681175647481636561867603207662050670159979894745948621116568929563553169781897777873430963222387952550254289058323082315037872929114264859367386843582030984694466060946699959231136312966849728946417443201215018731275368632222180556091131807584516673139891514793283784280448536657824553150918794045475441569700048655441024896644400688953707055723490829988868247632368237831338398487507738033120902708300625664113501694166577092609120014426815540088799553937368583275691237547220920892880459818870387269839335631492277477832659802533779255307003834232229523255239224349245880461975121282017806754189754747684172712838950813590468801925756664912930578242231337852302635305567666622033727188663728290522542578830717485515151304172502540603081141731221111169262571956218013535501976166472952258727077638617309940287187180964710261504955129386660140063663288884974704104738016530639419456201948663114829425513306159452793989555550625271054443648997985447536493060466022191077340556664462658028042917816472334015912668040976890507106865303791385140936170769301156926696330331299808349621989749805586314738733010741957307181935614415411802672842167357302188381013502404969575468374683689954050868124688013968219718418404070861363308331183345670536145259239927952307220582097623788843747309446907263939368542581456367056876702929322456735745763533803596631523439260637056133790933850050975110667444455613895567304079975924567271846396241332108501166295705330296310800871340593145025527188980959861315814964875647569545005108785300774117669833334894306415599232710618671880615172593078447118573281404008314391993089159552461995605877906680315022281407922786808747511353603894313707314917175991130155421682937895663989157096014663675659090589862354163151287140493906207789701537858817686542537781748846420287785156032992927190368980501177523674531560314809652909811325328100949939115811973609273575573989952111193948279634115955236132511550783493766620812107717035196961853372063491005072959565747531055745015087769506004806827029121969885248833781618495771866236817127033655006623186614323751920745666306329630836311845502154081878067167813591245081886889928308539378267343173111395421735579906060245049982183610962467761576327740880518482559112661584156579728015026654413425204903030990408219645001012078407608747297392766877633630142154700297503826056403545130409905513267021878605074199686163940326478711576391877691760369867549914154246729131257701694486741591275360548232964881673224289662626512918547050576389192960431124727929184996067270872182122149286908007926331014066719752722662294734425658977608470033415178105861444021094984103385771855310639070615289610474066454627097939943491796644528206076101942486839645020990908623424247567449751585733082653780551236353024344483875356891778828894387563530408990583125125859978233186395908869998327162055793475219158341960212825266673624305308177647748135555944981447936868555114776746793022370657781663441139689260566908786063858889986780898030143071048156122894833835307094306717468614200218773054566949901230726914187872942981706593174735288258775534910900141782390356029610038634621214798626204516120074342346678983299205831961918223686033586506528529448287523917785973707901783952914340396175691717269925083872104465864988379181678703123062101848692080436538232179736245281410686933489500533027920399771546926791808084055409831359145494739654668222507712950405708362283864418193556050447359934896016725817419745587443903769636105742909580589216611588344372572536179182054568226112310336667305911774950921752644387045975583955664685198105527791409799077322307217901170764311228534972392955040025290511797964460361015076446188006032296328374184951352237351246442112677066312356422046838746132077133934883310451563798454997082624391403748041444643199503057434848207640369592230523772910632065464816952168622642335193309114318193907172722301063648772169138104754916678658462555201921172834702038892258682859371598979577878298979587196856711197354320490357897643935978871733051953984010330562952503203279586570938349281000292296711235370235477603352483407802015775663622722999247451938766538091818153411518869058754380612574831401341532580168714735734063559085767206920289166186614910755719955194380525786450304932769922617943392451099451041718720160955363776383475518329772694001106511799210724198556469237080930503987570844519937527971514838964033943760540276634260022588391288719688413556599016788138498861186708624033395930824109216372770265279155954006780425563934103134737509779351747610668621727008253512522837706624396523826785955564241652867861233370612097378625285359318155559921353641577574615022205596755891702447896246056366328465487685508301117611568807803335489459401249131256567021978704344610796311375405898903041517616029934691639838714080766943065790954592437925616182484507157673876076837057820644743700175532468406897818784764870084605895752573121402297953340285993290780265567379268276846402699991624986472898660674713702307129946149637437224591763995673818940582194712671916302447603585888306038010848069490040192825755038378098021964919463018651993520278365118779308231820692265829449109668632212434615307746092320116157067205627712605726949550707957041881501520768521929584357881615096356696327025716722961633361303595177163966025837331459557558788933553448508019887591251011458050068535230479179521584865530842524216176784939921834598715103009489454689279879705169923717153133414485903635980101741097928064159891960564505909778357434798737791929580623213911215724502272032035175786684047931662596016402950061389262534510248061085521853262546002887171478053179316608224683903470820250912464686863707935537142760024816258015615701783700958028261959200396132495164195193600095557821691904284151849270870084429471918348929570195239234468215985838677357382184860261886538422057170255847577488475387726978803650779657863101293265902288018102668928363905111967574022708414802840300681494427170649651554756479070450887002474014677607023199683355055892928861675616540235076434367700881653592263754906326618182769681056285391005127425697605328649235706575987675953281949022653977567947267613264765604062688209505907206727773921326515912364133585121541997345470396249723516579087414737233705942904353488273568812939314022104355977149444119554722608120940028187784015321375446179467082179564989057534586642087372402700538185981739439354103613586289709131879917953678149747049444162051043346619155955404565776505216743377282689709494985069494663613200638515230395578166945726171208809571672475777331629051704411224190166707724267631789099139210380227909544927922279671334754491604353388661803516676694124061175154453644407115498344746008077212331614426211109218397925145087501615944332039783486512722871647773245733947552624643327149807260415718270428643504610973996713182394858362324089949657360058871426980210969581758045118125399293058952068046657432482431821650349540478159114650253365917681901709798007436389530657788340667949349472339988984029238066507927690287533819843425770638288115351379244749149541030557032323272437090385706082301830428076996685196953964548324341941220695383533014370237859663835867630833783721508643963198909474756677709854917259982679848072296414167326973627399750117039760141932871318847166537644470846615163126638061574464606080082446053764050852560865695532908166624566685710571139926248325267753434895839215639201048808115983492816524500492169149817197255238537819674206481258214726918054028849591552068682491917000317873400326425501112673730149482257497147061834696191395888579705843305917138298677615085600601488499411934436198551103025529460033738448392434354538987391817813910015869910977852073437360803450040547925597810711138052257858339502570562988624668300664866214768156078434925037667436457034553172071229074622837549363374458458481494751238883712987531837537094134652659925085715576220744400526267230442958262447719082001260244023370788491591484899604743613648479670100700529080607269564455720121658562869231481909447383342386768605522684402893471972889236358487295492694956002261846920013070632431587201044848936247861755638169497369217583778889285370331001268179716478083690288315199371078149837754887401019791218819524911369581389764740087345594202611377133331430672104434297029991668259123438281455108723101392245479430974034440246093381875800801971071833048512721390461407741320367087155761196891489174910310357690165690549320131190212314520102544855585239370859417600843292882429716790326327953250053656225858213793775528342287439500448904331850025304232679984966694553890698376916087309397737476884957377313944308245465417635747698127400506371301958361387678755878377472146568277411020527704139200440382514293962794614331396389675512857644306301799130280776125037325755360729757315282153858460368308220840070346184495612754124260188153516620032136231930553655409043144885771460339838004742128165321554076084469583849884988733055743485614722708031912103439957354678847269583259219077303476018314992899284233528804737049654060521936373655849896811140481893997943751373063292891101045914466765427727141862851540827420390780441707415421066989155186630637754386272846625588859539542830544352844644058462863477149448620871704251133415983322199123261623479501415903430567422881334054216664181460561980453930926379495294409701469263428319806055932751382522307499805448924405392448645885368370354633993713376694460250831369222678290633250182247146585391303303242276756745668715466466826954794101531538294379662214996281985230742814355720411750361589744394780003130571254408016582034884857936685521099781119043506187962298426938866885888466383639373185388130617056198740533204258063120525664441695494317867885821609195760769839708034449017148582431340522260943755958457694544873916044046043023484630644210690868666479274059442500447825977351771854906360746595010932254707081183290121634640198916296021804836510019174853228103524102998636434039838362624197885150918853703137202692634656875598323624000587321658864145542827787950740434053934358447696354365250770141857881446628408862149200741230831683693028568304627766399655502404736818343027957299695986244308587384924914082645236745101669796619841039326885067123968674561094388099740663054469213681294555562056861565927353295307328138202294900045521302468722108100735326312523920522771740009167294949532103311360039669021345920014955146259857919330683478489667779605005690208971636188068753213109377601019430418127816664408166868606786126885506820328138984390465804828455323510587722302206484473045512035704806223626390523474067127092762272227039395019728304733611106806901911375596432437960852227367802538074392424790210953973008493006381683702693237135490784351731912203321879569664218435167339462294824340060555734434110669585223152917487456327329810921901678906848548378654031351626326784743843034966636563192817704421904701113707524476392603426803352303684741424992908937163686712541600418340653123808314923576660433370243647605430867104273923927211552512920208231924394643889875934504263598122267365850929458999759149558320197044065423975634904072804826416269421967647064426885487574544042421012070384018120272283410683912158510091877504362766860302434181904497553168593334037167868999288301422226581158209444077634570844026818212609777589853354004868250592222069353779588326663063001168736642941328550960034773077565039804403618149703276372829105551456214938642908082238824572305796990408915327030328189960146854766900296888489609308535409699572758636445500159410846910164499288215631477253890371184016689352154436829667414648479797644691000999157394849373040171148632570259902040813374669382493760187058036507706897763645696468464839757922796197761932473684613088032250851430600372814192579733941385456875760514841776953996129216803679113341754793439990757027828542417404752200605052310965419095629165464949308080728043309255508422283837293919871345593204886394433744757955368118263565101292351502805213345894110592853765021741186356232892070275667215925037822123275486236059401409592382362476419176589612850998484421693775509090653760303260050390964028888386124285071965466378915506316708254346557625989016012105864283056235515655605277720549417998768220561917875013643724556761920061898770466926717955471202579170465285858838061756684980701359970610748083088724382460000499855697653375080370595090143089272531962714308869483942069984355346783438254199925893394069478678643454966006191104548092977031968139544969292419890678927990819974721974638356109532059823020512739656852918716076081756654158241658040295308854535657331273346639354448732117387827486641126644854498265460754355488266627650067437538989475133366438830342387985886194844557780392860235279153048538177419791607809839043280827712122346077377128662760984990109196666211165362917599662499434612254878412628664128235635354810356206103445460904869293868337830003011749522170813749181001051255735141469409377784015301917658278398384945251399859398296075825409961037832458180694638635928762198590500699886831425113230374957966376758173199328624585664479028917286764952373421844823553973696271731813024916059923860514680450080445431989096438006584587307864006105783031759625820631223042963449780384274856586925921934175842455447260232620012444868165243998783042992489429153202386735950364177199446215184264503501939125295196075043326464672952768815655166405052441011007408626787820726180861968021191619150692916678705862111117369978121992295085014273500644254109735269707235127913737577310933979907269941927371589159876789181286836515997431640561925698320006983573746701130190068741566022126292482717484940487818792580662016227928800781413033140262890928933709840123677803163401063063147660516631044730011754864307930349292629373295954650488703922670389897653369780733706329125980006370664244422436308151498750874716711628377286905767365914481306865478438460761236565635280800123755896848630742923669878427097866694048919135228187548754421117986448312810521877240347184170774459696837886960071612422109544831729203749630601481669104418491191466292662781136883127326685960515221865101900422563423500626369541603621433429743298257202056255801815160429953720682417700799919450370745856322625591499646980875056347366032983135423706512787864368399958220702059622717604213258482247879868704449896159334271731911422858903152893067315571601716406835469243124118225158331335948463828529012335398129885759085291529848382430518724837112751942917995128856687216345484450099646405511580572763555841486982624310818805088054915288396879907444134959499762272084279301039484763160039621221363869169592534908142399869607217176758135303558484874322702425543517612208020371959685995982493375215317801825065344492995474514927393984203879029279614566979014455091528006142957773411470714026703522829283623265136499361483559665873636407290392540589308632749881484881703861194290594654020574262296290836725855199572092634968242539738093867537924580159018392666426885745134336160995917545146369199546378392979472127557357073961748053639089485926053337505989341927465639133048974884024152921651273352037486756517067670358509924046839725944536778075379247417322194435574398986563521203730196760690995230492780413806623943689696964978136095128092043721709196269298769792271793457860388035249435694231130010432437211355984477233887646353494539934374457902782908943279961824531641555482271157942925248707328905359013582234017601994607656872881696203756786795165603827799445233168068100619466562420560631296151518145902562082963676566944896557320980651076861601560781420046207341168091050832281881399826543318655813762995605841533278899781394221529909227422985653080895091795911825976655159223550538720672905213568554477767284578469945183895115077200105081747223448622992677504645272929482080861518144708330641027442946196237783839778514365407635248013935884715697788846025520204941742565497108236472283634022598078287837595013570214505046689010397100766812263844361829232358079141449452302409511876009615292310544997139742881909560130905976621006112448258501737057995196457330908640466848295650149682246732684158924443161595710117252659467571423593855034650868612744310808895570476493894684056619015313058114390136148855144468191238787407354476143615439146625985194315045541353609679114768295448389526929935366267221196538058833603554810333857984442980667648865393986489609395416449349076706766293220281433392174997437247775828525565622747753756809940313277197471279530272821243865925689685239355466898519848847930591479237069925034407346605390763444834250243035427453096865294237805559765754846878859297266034438900400042359748124553453694566395845538952095462345400688881784788634560167128091808888157910301477700424523978160020157790606887146050785819088923420088873602527276819822744774874676303657917951521256606184052506755906479848542033279754073120597393505153085880679802311600261952432945789522905721039681494492935766906673298747711228658075796804157438005719680426491731075047203083179406178538883468205487308679035853224359231207464013103577380677317418258721048411087786197326492802207236118386344744668362363191770545341266430308014143194563565215977617781361495996130801458647463842969641269570292151779838855704666457953998379134962534431606784185016421158799334092402318284047883417218208821103723702940904752661843556907399186641149148970385154415820666412080901067157533098996297732481641056467268138676183496531236198679749637601214897937943764493411781738396203868043151304385894816871564460776577928935201081128574893318574654738504914291810652990149004934212598383752447490052759929192943953479023388760459464146248569498816900008768870125632356545929464640753051037773717248740814610810193348876857824405806343427119648064702865685509975106076910569691358286952633937246334349402546181566394414607961224575594071089344939608269087062930906598226503086791350880979652897914614366884385624828927192419058246703560764274954667525772030045946858488280331762047391525308580008786720960835405598126516325265138940692881170739596622664265161974088088461267174246878472715726965175676746527324434533578636330921241694807369658490868515281921532503549266927151469564410448917003048832352865900500364194096617873064093859099433143432914086957898651988409627871181419534239982440221404516796378825846613892091845035785008371038075628216766682118367186964033397391684812860447088469298306560195685569227799101011229686273151988174997678273914744596627205157821837666822909406525396966422341848198395036328999166915022216391420150285312114073835806336368521724006668380553210076312263854857724861995436279647626168936128991929083995637890401377906501703248515491717684952707133963859620177258148953468933146498274106183973656355960816926306376149467510386384951671691597524532604252605022549209150569626037175453730676142604309294822849808408219560930298755479925522331343475718158656393308973237236871573988218147673864997602015041016827489581095015067463559442191808110077074833304199523090010755750038336046887409425103356774789447144134180930742015283180953706056998475944712215996895143016539641248021655602620685769258649104012236737114390754584403182580788858761540268732795720813624529381212178899008176767328323231892169202012983158586955585740898053086937178632223542201582701691525858445430359619867736248758301277807988957147764112434876513199259424577925569589759237519304602698303836353189712853953099503257343870852100494548936472303194298674891332325321760062432753546311534904991272533066372706203747197054786753869907658849099899958270736739164779180022622854077960149885030272077451155850557364133998034325987610450011401185458025860432307579001717433521833911635935425936758298415592395343812752987165488513099979394243506397477310000091901281927020897091046963506724672483826292757104711878107745605180493205861711139497488050734460688290891554792739620220752980081393196346369075430150548925034926178725593060328994800126771968876612366801475570484352090708155049604982503391972293978131383017361059582091383940634092476745165763437283599639123334493218462214409316330576892171699583236628589338138464123670560844634103672274492443405665874721393911191147774490575161883377302213586224818292824951322225298227293603617633602315450894796104335020694819503848732767929190652689339667694129157709046926626044889084988605694577967570537892336846982355162627398686210406057478063091994558090162795355828541715212097625693898046138897130050524509975724534183231297096731931431257909881320664304509762326436360365799328956773478886186448238142460597381932291490353219385911146734658920655563554684945248770054836971848676539524191125160754813368769562452511832592646663047267248934092619299617419878828666160561690816137063455366763266172053400014634272130251013276136751747921867063284160319771425171057503650280148603634821690061380337195020793573619976197863334394410922815461232559308664467350439800522740076616014535423608731464671710460313175708487264921776459388044967896967271412240544013252596953804756972619083562689883129896045235335475972552432430742024299354203330995023843601902582213436227744814191227157120053396243783995854933186538364049840002563154397605228749157150820940334725568755874461571157738036330063689504034400577643255624964138885208824236715798422429872205887968968062460119498800817654656578156706269258948330943253529920662160184700535226634491392416149559932907820806270857940855719161288595279370454719983224861471463276205935268491202723454093846771449595053792916561703160069575355741068984590315777793439094956940363854782640876607817895392569241012695924665012759014584711084747500575535722220262989958198383581116194519289256030616729971597878241893248400133468232986945287037303557047053094678100127803099200633526708608619232172764371146434761722416582205711951480444913177934003203199170913464129193516605650307139461754581564731102399580701615203147530230144587739785962617017411114498364319275822054566209973348855343955728366393155126036588862286590618716042290973984917217710119589152388210141720816926690053371684179715379704800809305124112103181627376623318011175988355282280947503021489303657668732658779133736188061994434197586828183159939377488632689683119231420422349718098716777527528568073169735132639515295153487921305955662842085668773727500321058164040363589942496932639144828123851698076302502969209792439026162722855198039778876127105921502907872307276472178681337771893172661482561965122213091820284978798465396198343870226787361963369179847168703341792724983457016141980755600388406652555430956362679724956418577160109146044969334432032781164106241694614448661739387882519446533762351130679785820914495549089492726362558614529064279786986693087604595445627059563323273722367406726357456335409476152289934781927895902597885810113599187487838201414865247321324277886510509554457333381465785724895759916660714761270805456949734442881538401166921826372566679758131453911789025832332540929374547586975489168486597444550507133901980984818249212696062015226358893411252591265605757433053057661050835776790169504297821096026372370300748265042974487155980794321957574321249220275655248232381366926454008569728109543103891602876307671502959350161854625422119174270979300734859497556592753876630482707067493117890485869334453334880770747991943227141835518055049865823519624239023801558342054501825852092899138452651574226267801492372601056370399360100216474455028888751751240217340062844837400193035181054023833781846174814766813096916137465554437463283476269505772266786807977610100180316221111792906404165796043915511946214980859964230039259384379348386547241423834363626956521413697449713019870489074789365243194678684940862496132935932617660722640039876955221397397014214481143264528119977814450277879185561290720559843661710939184882122811878386536237924396983055855791250903808714420961804714856507772247480484311758264664824306943721008550675833310512911183851978410722742803365989690704086147947738672680851366189628574010427966910292875030706779535330910929099791995034877245288152861926246479398551056513551436495603134695185617682614749248377667692373228825317011691607879936035740943127302461734568021209441539008905911412485941044999932395968823528260182673140564925721892386882631432988587891376250671844905850683824676957925829401225150894489102826558943537457613458165933195602647144586439713750131248673432674349874543184839407014343881188588804569254727433095729964602068380018631251042500118024443323137511460766398322526593736052261532165876858329290886013826451506770185231750500076066770966512188456805301838211885403113419664468165554875631832092072352937475064935735606841358878612627634407910475262423028300101370520756053073242183733095167735432163765197306029969241437238900173378667302636626331646814277928116435611542417618969053795996956709140600498675668090749183489007467776155211752934542595483205416915252183729049605769790339105707934679635288168086887093064062532136807596366523998000945500820163346730132784813392607444863637944493149652256439025023714503182076543114736224260874892000102454633931734024099731837272240800393906229996195571109276262042793247755440471638424971979580432550241563741494955688538537507484946028496270173966556374048137631799090967800764064129431132094445056255688674172665325253733061217414686558774494328256631423705085677494685285440149950007817345808313177981194248371219330046597281280750956776676871179468165144948110527244812592503777353699365523679081936490771758087129157773632124891477385918763097018148086341380587584964511932825977306958794281831903169240938209062689870492111379818795235134189115395638743498903218051611867876704492999261109546060850955367378373056396374967868123886039253357256866705850845855430483155006512073971666087690499391801831821243134145001960259249055752956088227094886520840085135858653940061591165732457508745630912830404930763825909710895666491630541350580973049847244597503069807145684241757816919366108666883544111138247839895162791548474015947391919334330869060080234467959351487527888533989622762027380334291799287042088105957295289782108192770512654464901860809827805872169473861951861500203686395502025983851663310306733669497630500797795327880383788626642624422133412901346396859602948881155749377394340826563957078469749617180131145324548951713767555840369216100330367878771366794369122616131783635986799835827382456457491353941447623959253395105066297652668916962150000518283466607821563488305763385296979461733832351904747837114497438533203719916924010916834115877169912535016781726019346844817102659619021257463912665192194419138582576312845156538574407876797834530800191612968581585937486927996698428266604703215264729011395298495765344769822521421910767056833602425803874160041560729021219871963158288200263240111126402259339100491219058354759054467986142660714769324773680122231704625978327826925239261963546661384280231935716221584054135873726633113740532562542303205147821488968982141774464305950468698188134696406258514191697375323225670547749425208714637652236473515031973601703385762076445932163016154101700762067403268686023090759097846300154899898831163928806936150577606800822974545722388544275566309721385364485848502215999547421669064745569871240052774776545799342243811786753066668545655376232114037239017488992313799107580629094298047399240756228265166839275774419768282400506025779609367723338797818300847127719871945830924918609825481229003981726063439914077231282081699859808048036315189609536817608799281688374260541568847512430564677000280383437889201521081603050099823429169023226721749007966581723616081770981479722319896812410484980110635921751031406143145889410063011510482171038189679064813192840500684340606890231400634862695913741790516539477778758398874969985539216433262954102156225657576942219739360017710202646587897393572857896052856103980517062433124449718035483410874453164118356549547949360146202448245400909026703850031328080272991875957394214715845631447988057375292119605619964671326410236996742009734843925497961145193734997212372441422702265281342568065479119781257429956572938236166717084330312082253432408793467041485420436976243815433110618844908694030717674959601037925205477462654220796257257543901485963803761700970014389125743458425268768865189047543697873719876531054976051585808677878334117968386220005212810882749715295243904688270673366107622066288814742307189893780232218150753025240791073789579882447628898033328104214913781716726125899661434770422817807397115968573431368882071990430266336211678029836729903400510300036192322121585771779968765260415274900762859977412472756494781849352742320800106205668927284646977119563894184185709918818571580224519242210493089746408283447416144896192318740579745509142691736128582992397627522512377265518392644970255206333212258561214893876125305383389573392110306526578128733183980789562625758403182834352019944526538096765273569227997835407225843533410876458547009520496076239633121618035259205819093066708323047540819329444633742847834107586492137464960227951267664644987979045425197924310230446314512961797158114692924297749651290893518394777712160170044050751611036767282216212875994926442493895281607392607201710743318386213812164053084094606776666705439250678067380093653109969800500795666115585119412485276012048180100579927375555127652543113633960021681788588958357228482116992444640477481477343337819229590994858699626195173513135450330184329867973312109659748220164000765347607896877959826236272637255440822613858266799797743233748972553125986808638452630159420564226627220130041997821064471293014497866570603926225922883344489660954645803046090930495664772000908185986439171713385224178562882103178799893745477266529947533635876157879488581056846496982982878468192596658495072258764610967670614080484479919120140171447971233451399409479376869958355008700198927150377976090058485326623043210894286069144022622231871114291315008314434188788383341509483466656023849485876589661281384195951183476204449467321056104751571845889001424922535370179321419497018590941885779498502923276847161853505167398304388877022348132333027231942687541349854859955649795610781386574094805635545618536863878005358948393766568439713211081168486329444350281223558435461667354166369832679036878184177071778549131299304274423780504129696105700404728405792557041650408755984905790810508809956160379036519893894207279765175583612122239487732911432883795703850149415943636126553521693663612842505839467246972717237467354461742467769233848251959790448959264528678232413978866029473223480395180097804588094976428992995569791303320811234346754598711915831293065750454663112266096363297443170908875729186053265245593668226419498285106344202375931022522920754255113903823432058431132780241781905577954746296200863947932649592376762336366623739373898780547586099325063780944511084553900874363143540840005727509258275778116963545657809356644831406786439084705100768137747657583230903445324216730760459065294451401298637151374623577253583642538351614948913979879691819435501297724783890350453503206592175258087471980632015698950839317646405757080561664848571696994657874296172235838830545067659385938710456636410305150913733799801619647957959366510190231347072222113749954231110635270433289037370763577162243860814898713069948196228435677408252890649271564051221286582246379553472248593485587330198118306759124659111817323823995604730662329201605157179824652212689360520762986998335888618519529679030893131974173431958732312001208379821928254457749078608463351347022268969310911532070552700467217602494588515268733083335347042646070149446931438594717634884182070504176847608087748477696802858556815544734690585126603834754204533320040279610023747321185680534703595192998942246412806739040666681692737133993326322695609224918799302466063746851356450127270266908517207990842831965402354181234018219119773013096373464285909573520013415688920369625331504777373090439692123280917748102701586437396428500750421650217679634572383318724215666150751039395246146265715983391750403501980643215759076171236206938800018549766218691069947526808416140868634817293095791643636120257505959909251906267800214474673814919027845874674325092192869186329580579484331558828815041044905019935022797510015655593713483556987984240393684979064046612076626420916981089434158564097757992891590479144675209799621942991716534148919386216445960834399844688747197101127040534450827140220567584354445134838736345902266271229986417226475420378644851624875511997355847381640573442620397511233509912568105345901815391977068374625124886336257982991114207392222295434490101557959406764456427083708042411393944288666975643585596981340863542093399317352943942995271018081539498013266141522792317164683516151276733176909022338757448019912702658429551001961603398847599986202226228585044100000862939937867319984340186939978697098471472592701197469594912147491541310020696336410274032618684435515084939967401781990697407210920614230911730330654093170690142908869888247694955855621801407114502037557080497785228282853847631097994254327673331014338087721286072587471341271835671348018102564841475741074995611688277020381252158836342326982767550548249322502732948131399719219438455359421762038107326989641163188014941225577643828739778316529189339317950162882355748585908036051426897598003877452720209854810308805491617608682315156911396677724226033366170862098748507369574984819892882190942374263628986719473596153839633853670166032339369390604945759629439207038224157439308117474687048542582949261224298291283113653100974142089035256839288494332222248782740624175885023803756962735784263425284642344587811588803417313892743318723446896798754321901108770210930741874357740605333439661856887669452521873494037179632908514245067894393650248110527820427914263207337460457261969560030100734102351590159124537983432285087559129206797747579757087233805981715886672052876368648966131634664454392061498669598207648118546157148494532163829983203481372255881417444075628618633838063420842702113939774412682681195667507544887147807718851823752829065295803870871203521930157585599475071814798588181100463076251760926109220923780142690486201706765559862755144076232109590104195732453899822761066249743309093004343077672475305987553656362295204229854063889277379511400874503680493025657579741566661303637937404120391397044307955712225557189505541139857078877351045759959920437113249103784172454442162866500331528537844438653651094871107032565686371035584835042066003031470180534671125673510386265102150770011395205146683614435257177948100864834000166316374295793369849332421744067263406913483010291921263841677300190186180480535164836823773317017999846614934571437950777842160771560547897853586345430975089561567229351344678668172700092777318252526487995869518715689461404063043482281728968595810381825364373233268345996014721101892176979259710762587114355496804881116402132772800041255092407404243196718905523528781729726084769279479688647552967600776442705013212685427347685548829940515403862087363984370319690205344462217466586709203983623790362856647259846689730392344948432718700109333974646247534577263030902271654851526988116313759056947169217161377440223129442164639952275171636215430615740285712549523126584347828623431914240764475083883541145086453016273199395803264067377623962747579179658308802263544437630665233061120857992036284403052521546281478424402392329640076827610904126558863877894053761782193209916128543329131990704119211614654144457536508424055005562211179925017784042799834590830058317280180364160831389078612609463914826312696964455663570461382459751204505912258158636848847815787208477320708729243922286824058788602222561672370717422072617763428584455755204642564323043947872957983243909628181104898072406272477185452578746533297596494296246146305518038821980026451108400449021763226969291857968793462183407943592327671298772523481142530645806255232273374735018566364206699003822553553420894838476157522218972680641691836866437323025342262397950130897944162681770749291648684775214738048061372720877365635535775890247262809089730828879011247234008939945974090557780418852254286533676155880563919737733172379920070167403605572549023503161203090461765327356282805200395690563669084514984925372183100366917292734386632012523570122537001789332433585836401621031747618742363278336011549543378959374030363818569088717501196785549797309117059188415280533021582169786989786434553167322985350460748974295846642023843295982865596565395812102089442016566785834860425968159343138495261148373738247663440571499867261242725130896284074603172447312566684109978059838872053259914215222085418791901727578549696929728337550655387308320238295430104276246165514480457920330266354145513282419514500893647581993627093778637435112423088443097572714494289736901376076431681639040294309434922186464042529961322488630174628260534688733068286900151696629427234438178257343988551883978941847371100482440838877293288461226345176966002724545452050421866036434415425058519821367691180448418145032766697200210527122568554293684785869724137670788556157100502211731393934696908155273253395668213661379070275031458805662456196162178739069445470812815785320809642046471374736550281905940599804365446354065922595612785441080121539533525610011540808649485732007936759441230604109914087384876606577393546960891340057151689279104577356797316966469487758021877222464757066337567117435355912949365575260972867093100335343675755702006934747787322434427556629443818215049082115040431867645450804870288210795987150735271237675762694819780273397995785488476215068000357130249264342759078945642464761003101887636821442515315045686267640726409671121564822619503170528031452141137693677996080334708794480142656903696598027323987211655480979346617097903007933376190778746076588108379133608790139432375337601073197142608736633303504707876012345337363763344173260129685404282617351292898011622608633774566775339343865215642655259028078543647677186491864622370737172644346482822731114191847302287049505631499276900114788648161323864078381183360915952773298318821968587226372447276361505725369556272866330046232137718827144134893609799693270583084197849067262754394894370945732372849338541768319570055249526799531311663603442521310879051744837118889483699614157704266039432207100726134577824494943858977452749410639694347566079131642188425946477160751944088343535377637447560667629726098922870296644848516776250955931215921934365585353279567711789302314849536315174417592089547842051753255128671559880308419246989597519352546531368654015010109486796530152178469076514658071432565945229827490212656357614556066327978846095167440012784589286197067774067528597628871570600849206856060642740175810219730995333547150209547912867883839336927957339297448469803554009559837410413121166308174598752992899308918892021794322216087996457769578984718454925752127379264394524347761637953078196156252437780807673154502643349144145261397836713221924635124940283618949796481961121954473408235676703558494899158927689133336508202127390328511731242990196455796808963975171686672789102227510619889979282882347466526695936797752413942828945283120650988106238369836152381574411190805955822196351317249295689856693806979610370638592451386340019484249172238540268266682231312024925336151218401363029370853925038233390589038991500017782508368036625185437173341191143059857448138553193532547747813635555025801922599076392363684034909134890366862728969558149843101020586999680919046863590298712855140457097495361920749868792880161876203553479816921950652879608197850738700942571567822038215096493573958180532315316268451690492428898012146288594996024918913836044392021989375517194799449387708803407970352074119090706237265611016760501599306538936578683113874721807200026678243481101473474704894894071430609344076241467443011057661713387234908765190053040025237312240359338309418039191677611925242266885225650148145033540558791286009001988038962648388312957321357973765803110756457875124321996123550993628538677469575018892380766645702653160683770509809330003305808064133227385218289123315896275549733678937117543022501919773991505132361250622492792261536967004805055394508129648168559188626427028728098102583411246888538631072078999653742038230736142831765368666086733814350134728520008760733309313717508558146470907573223386370381621812565291009368253973951794952500958626613263484930898580803891557669077715865768202963067075434928390405528062866333097041092525253284452735536192238014255987586534764471029736073112517537732462074352536483866551673651295890392912566157083865966102685916659769689578284050620894455375646882649469675704123656103117449051409291761665152596747983701020462157462105560627770179811403414624326272744374636934996336445811886598754169098737216210851328732767862531920025196887239209915986209102386600581569692550228132064135251039511188961400569407024290592552633982965867658709585982314698606928818297420655046748968881168487073765407271249517592666921015579529307940562459853507331512420292800908664612255628135760209424748613631122433371554124286507513056587310205681034741843930462781134279304933240228352569513814108441233743526026609047418619910909290136331314464711438867468874499411305303750671801130155819938875073347861157268083761132887297837738674103427882109239999747439949430805126305963887471380839428821215304862924132102210894991520393788603992707274331102973485712444354085401159107714561851668282153958572303156839648245432503440782962172184065142114630920048720592397391714842361539822312227185413597250518775612913412756923409668190380551722788441012418187824801611678724685845785385384040709698281463559355359361047747427287951630579493655920678216994403175039187984295552236574468212628500580193201455513117567287276352717978676652250344350459769773679171811725004568490421209673904049153684899676145880548292406853712246666405057734656316654602971871810813000123055108350562627008110350290262392247393932223433945415479349572986624994070533525702386143731619387585282327070752468449040398817624853787180508638835262980188069503788474747461861666223693082547955509309738694662822061892931220989678211766086780238294128825751704398801856287140596303168269107220112096034480071140828093974295919297708596735740921418745219291756605571763851396445400341139279204507415168665563129297170002499527832910764451825625970586100803330325537428618429881870185467112881834195781397722009176214898886206495091199230901298061649330889947255383787779019336025078245192561583983973998116528640832175343435871069616908986697194716054918445865714186758074772343297891380444900026798332248953456581459906384076622812613754052430844491506201680970266057600131411816310780441235738953455161093899382740746157328797905834562186617581870019267167136712777694195173605057817142375731843266225093491974110808395611956304986243014808825216892149086947914550324560185376928020418284154420516773274231871979817593494529982100595939523359136064364290629196987593643187734976515233581227846089994858688178679954941295997992117385634596385995343234751925444753262352300342340393748591851963376881525045112244691563933061669598098867971782477616131075536549417543300173888055217828316218439259099345479330792015409001492887965703806569966474414532362089651890905262295128108111107107700266128837832235628453203005753975991779244125108543778370793101784938151715177780904440062857865598699996850516470433495405298675778086461941669125137920911036738716397518560452137655444975799176900479742780093839691058660166345035715573936626544165690300399345594317010242276561566074133229684097375964884647283569102831503944949646683745206230835271745196414793572830828920554264921240257133252452143033650185486565997286792857934712490840330170137287307081106688932460613420948405823923446639622388981628291944614230607124127373585745373283480071472695673118137946433381911780961059584607913296024161163652347526802114760305933017783910639774516991807769581117935248756190755898093179295687006741926960649172043565845596572603150391374647183066420615870643999535394197224465339753242857489122135496761001198722341356906525000741985085016121467925259631183708601919945654541517329479381366840257608254599561805568533693973855721965177662982939146073296883640096870778065185857248010095615329705405532071209371923022899218359075357242572216486701834023349896862824807539340290256485978263922995937739107075867215708561017892486386194211951615472735395482418486069600428307197767183593345992742997544540747816291556306838911766351545195800132471887869146253408319170894883821746795530402561400137981512571443857540087722459835971887658154890907248073245522490897724196182006754669153554406173761202311062060644214832054861154636389092367743100840824710719612919861714288497451040246894002352488505164414714238716393877186578678663207226175348026420638297865585096846591092563372622112246878146381118513174727781988828260336926097428585397328392271169066544377651225876490691592002921391132998057602385717078116679031359297625019127420816496231575163017980748697962238144778616020491897425097693113164345018227863146194574263254807666782243928809207733839969175352309499253554749367434903471678490813572493180772577890893882886617966726483172171785532595035033586148673343368043025267680737897694923535744083186340533698974556834878482958356940454548358641855501450245201978062789542708057617223150456846067962365084847856828974569914823937295248673310328666576378245089837957381941870741734863357715104732740419078803550399863977424052572645308810654387402324625970506625627720003745286103511709120666763059881107516339003974758112838190920823966351259962472301441011285289419663990972010150406165323040111344904012698731826898221228690073248405135588072760729780530094000999522507804758977272491701211822720048810232851481819068357473943433187591309542578419848419922914601165160379514671782558901491461153682094860792919877960864075991603939676731952440718559018078415560095832020920423761468836006635096337649260721513897850103943839671017372201676000812041980686447941500527640292040504313986953360494944525243666265548276147113473481916616530415574552408667017468598021021649381589393575677935477966265281835555932227058543962052047674492295065077626647370607874770166608302513879317104809528582827680083052683888870733506616727986251237325683396340326913252303459749442119471030912380142191968573930169030640174262582501472558869121488586248264866667241410332767225639408708247624225374065461938863084290563026796230460251519243117170383599289545688506986836318584724038277434546511548523893636227340172391024955082773152009009260063595537673457927695838586508560204822413654975800637549577735636596498672579624543952561330256677838348489256814341962267637430706677576708862125357588906648938893421803060007994560916266207421421000199121537020466658822135674894686612646677958766073528189879578075735268713476985908423276194379051540518061517284524074314849783310758402504442205241345636025325612282741253750684298883598143827014504965554293826659276800445764744047934800086996448130161351813999579303103045051040125727421936486682315885984732733672235717886289244474324462707275478662160970935354061480930541686830651140469446225407605563257431934102362376828309395015091640677634217394008940946854570465060219657920842206684187616832303538195640416195853960591938662041443116207182600011912465396576815446985769264762141993526697759742547578681347085811979241140181634893396853345349839780451339248779225053855912891815192347344698364563516772120216997243723358680818651358283691978064761507375403294061824680269447512058816773996869069207142776167247483881392647368864698649530656734545003030127293594529010161381257781865537136331680698087506498679450513873252223820269433901525063528184694964296470146594030295323232384610504702659626715084311222334256468855813691802419444668270554155669887895201665138788449288448367026425579362682993513357649752736138081160451216096384504807958670829053612434026915435502005079326382783912044666742992611838801026137884773630913349510447622685688272660712064478385227121069640368114324061078795778209914383656491642264114480904793681343800110695909833454381679314440977956976431921083581661556858880875515486779452924388889784952630006404107114168783173261757811939340189588177530274091831783176299821104929296219641279149270619241798671126128361524882264205841996907361743027248605939219326447931512390864533890838134056059536593562090985148883780746753132920028860914717744624504675842382234246756079552855897584445313100157823527560403374923361790117503253893157591118059688548995055408925398794390492309990762238881897141537373747380241373548848148802890353324269197835539885253078373435613514295630486164104931489780076384623793125532686943564682809446211155881142549076628830145350621565756352648434013713868061022042363464233208560220242557583394378568064554023298251821324109926316999042988945557237544349225410783973164968585273292296259820829499459706094731048679928843088719282796522286051406785439823863140529930928804543885122533184804706506300310824885089360421689380277877209051713497677639542772454749785773101176545722137310279841305098956892097735510245619901406563533055983572714425133337604216062587665519761546077384075376752695305591318354147208107496560028927749574676399773928046490330027681081689717287601706789128058905356261495227462669854852743006126474393561961656704187120587207463850140853868222002993033414935027694574474289521522555280531125176000339900285584990347522774094725746565416995211504430789036176197115679251033623241097019879045440080404202560619364189520039954156566894872182743838917221989880362837870525507645182267136840164502866149248377242364048274932357527741704470178801382705460256010571943198412289096080518596655259915077702307354811392918008211082144692884575121029248026939982699443615665407862452430312091457927116317425661792012881526519682590172842321766456940931823206061472674661369637351582918372140718212523607356595242556576736556025331323145705132986220820789997485512655374061132023581658134083814180347045347034142762663669816999996793769190310669045714194053184860192160835592330988342115559787939731992000657870620795515299872547655000177817834702729343975893024168298162138287531489179071904098028450118658592712340124400369467000003746939933896849292343783917104675841558356756683671357700240058115823489292136451181170470005521643500035431490465047580148456783306600421736674839463733381827109215855520377004226624244493187548087624933280382797957167747217740747448568266439935201839862234014097847847549475437912055810714725921104957166395853209053950844796994048238017499893704927050905965685694572514512851117540778159015710746475056901330546371389089923233495775802933410248752657819506120872291933481976703416337282284139300480230639371515518238002737466207199804934535648010966746437774787406873933571256069563639190577296681608622782449078439975433107312753355271830290837096177133230053960086253792484270500575279853667487143861144328891115812072751697402570707750179767888755216926607052316607186071810295418622326061756238629620786588157702582992224812544885134043160726362876266799775820962753898000547738074871782234268970471733300121592041053916047818637913546310686992656403852974772879053191328376536148563670208769444612741100454261003534370142320095530453170066137209786129902557499860354972759482303255981692420543310570811876466157448993107985738823884744509257771941932874238535597741791117237905160150233739969752789133130484221901079824734940862921428887397767346169095005482356162567797529018472112188275676666158264555986861724372292222702462045161984741454583434801158059872001224198925200610211419796321619618750014982597070314349505118042159169113496385460995273881098215679546848818536020717275862343157302828327247273955050784308325643663313471124664306637236795144877837780705652417498419931303540450467054442076011706388771886975840670406564181109834240697984474031847127049398788332826845282913953009167735718097627154602506689628250809651314340175573478578933773949453268467780417656141628793368810623728128437915166857674617309121996874659131583122189130872197274827175828002939686366141356839148356177866546172778123340413549338204525997593103318333784401409235566134650359681670661440574835058456818375503143798036231972975912977939892974031968662997628246966923864119920452922474133147282881338087760586748224978897493223968922255680825919309050501769411764663419827051070997731056789379807659914341291531830618978582450046665004083922333779301802745759028234315183608531420953068540245275237594299290257448163510480261764460656580546244358903971543345294509101296168975209574611224652309949094702030336817522506433964560318751345179122390574048843128043725219159374933670446027652754174655487777056878516659534921625241451084962569074531043190107203808721091774904666242411099345477289314124063251954991267322016205114516940676954443186303625379919948648808949983412294104300342349634415194438827120352712588000561936355837461263210116133117150018688092840751049959010927333441860466759972421051255792124965122958205002743236666139829393473940282471826049464277307492122798331225593601940013565343530684565026099254020504696568010842631773308375388793713439879205188966567334058835990091218063156039630217889305126563899375018568000946863303726179429196561462619171058841419251507346148542252416562910137127524567064769502982819431020388626311164682301664706240424224632760836328361737538702945446488331949786885910412341204136604709261148298409632507865886265094863795718767162558575724896643494898061778816634337193830751128048299709304433812527981382596447493823886418240852801418437793557771197110571271072485305639925298510574890594679190558827372373538828406103213594542280973081500410851788636601388393467769572065301017724118522714953261287385794477636126027275096523140787552857156553909981487679949215827230353811544756409127041871724134626045910405600355690784764346324333239952873076820914532290032726142872691572756965079575490214522847136571753785032457005381942733895532840282052273895955739326222675978500611729552942591827988145957140133570300893992911288885472092153887284450805036120632570067745417365914954034993107004089192735105789170608188386294602139856042629695939696236045916832226437261198005714113232501136264045667030104939824082371611601254903027044711462913525761396738035803268535606763821285098072070256218064671954216702797709498761433238229340742912852038862183399860163430285503981105495488360156301542009920396707380769632393186308797424721974134793917570116459133060304337288538864920423968572007826127746600821952502513575784591657831158248039803931559291237501158274939146417398080126507685444671870850481077489835602278722238424032850282770766987735004072810503004035636282454542731560192562942794383867426702145405775116692594292105953848134463353886976486921583214126564161540099243364214006600199833692347939019518364394073898353686316866091797108164895453060282210069968928228296093042999157847495223510864922687591443655711358098048712246577300099796837449338253879061650769740122442354921789118929126726068809865030911206929385468530783520801930522183537100463238349319010109181994932438765882907463484669142500521480531262185261073084743108156425751971866482223865827471901491597168749905312198435612581324381535545915474116521666770354716439367390584777465439391850974689731928867566134461412888219165051902139294364417879872397180058253877554656863332512295951023368625217233385811826581090392494321432402977942495082895500244473656114800105941038358262474780534867085286621092159063918241794172939409679941184639531010738295139680735826657687325672050614145594930798839304152746812085990997448600594461886376057365372641676912610770286459051656316087706070925634080302429889939610506119903167323240632472980651972402270968677322686258063434181755875572056734278549378091575881454745876129625080161957052359873032775033584075438088415929602548592880108013660923185552963252727468954393523030193708043845956711634014776917602004716394947939299806367581140692150562822192017202927082024228513261138341023016859956801301589471038134804304120148120916899278022041165326708769562522544372950923908395468289523636041324921143437801400557065251749111739333887720034861915696745336677855363899533724153197124709432279835505623132039718293043234875007702507670654065969436654360334251221201836386840669654474211966002720569404498744843659190219824792256442687212531131259406510752176182495399654226432455979127418360566964946993218735650415207375057871046513034676740910464906297670758566619526853302177609473476657306593167872764186775520622733274395902361971191333682941760139191405684558335981023630165587258514062158904264745640564316583278560734592082114227290995037249419918550855266133413160770300324113732645525376445541001149502678325539631020268943358933093559596997216725032155765245443131011034090009920011353425925174868400973842593818850711127034349980751207497102189839172476464647586199504898655315548832676725804332039679200417075779780227710536538077613020989575392631036041110174831767821093033149178431763033237058434245268224518559642776018586231252558293454700703558318801173877169136200526897890470285832833120784487286864522881668641925581095937408940446792825254512948234492206497783046772665716471682944998697184963867616311379838706064497160299442882337043188941948189931646158187918007668716231905055075862396436383474105137871229281259117002865663929469403221306242231229394829420215728366231244666676598563438057491272037876565207141400522328228747584130954328328527162674598322114231505966111627845015483307455899753046419613940499961017443686963460858535452334474642621610782691578978135311592036063608733121203588808154014221131989324139911749809379882788807085308972821798691931186320397663027413259463638275363090148675136558564351148161399400611153606960266364144550505643218541676056426971236746567946622023582081337277658960505699880738536974204970130773122660191965286623065712999096293925790302978369808470420373386769934093718794433293223202265777762108511379103124369560022916866237959953248211016571747839264459328578177867760213147271004794819819102070410207844892536939682852767151933123719922175371644707771209049266271809025408071991898528649241567442966109291293532929868266787747375556895908639201596379996872374201263454932494221162607023725283719268327888394728223738265077903604675386037676811273675587976872191319692787709099710052979498265764350983961888924007325124588776474793630707207536099309709235202426488501243172544397494391552379061716625495107614720304105606050302827434379115258915157141462884851365123638510680768722123658891721845902050895863214142325185614374023813023089044031145966193191865297857669618881931932187262057715364548803204305019830433415316062565849764372376516274317367693511177875783895810506866445835556587289477559580273022053250910663561412575886332783475280648681866285644732004685393497458001407970719717635981235941181703050273443828478141453485527980047972248393952094020332457660059990985053127071337695025576878429192226530103251671600819705693847211494410165817861868981261844339096124802099475753242037715830185189899368540060298610954187576740653832524010581630066986752792054831899621339820303919173243739061489587065537899286327496414971656958091197106027796362161681690072969909624080133344839271537593423063544766328720752320086755680714779526773818237493671050141989664356952681993354768523042714154173990255317067786122559829975993349046703490985929374260948168823230406013159645834912062094148941982873817680364362155009129045424739785518256768306593081579684394791505438793115230940487829791807065492227616886610055781485707974695254562958486408978580170670384509004715503267335991343168579607910139567723044648256297800207108382989906855978427677049501833460560253044843176428390613158393588802953249558553867711480775138419818701433156075860865944655818515760994010591978335862012034149095648211237831139710409958949042053166296677983266575028150743465955093316143648434421382162209004259142207972843321094077076567627134782382415484085499837580843964496831268498735958639917982127214514319590641676135153982804284893555783879465232006578361188359225384745976953262012898291509970853469272429369912400993234501334423991524157154819212566176788836614265983374217194070787959272620452384380339325040510792843505449225138002031354150184010851094246835812216644200782212661301947735332150716481198538214731246632912066439110710088655193620652708867314637159144868312111289483196699641368010473307208836522077267377111858946784309265307191354353667387342092494546858833844205208701293625921342792755515203300243033317064466556198890849016753044570472489918229952535143916016181923475250951703738340706438241684399175092061921564212312022297156597960153785485209713863248774291479250842978072731036076821320098103247150264949651796581489950932645298004721784572636947520998485163523497981005306488052339966129599508956212397807340722170136188196273782925250346674836669120769403170277428852753686434753157338610056180978201147799741458715686013395625611482987123351683298837235348656445152606825196118382394424808680854557782041746072636050093428668426535439943999531648514336583029274525014788012566430539996571088828205995510998311903141689554512131442842639172612899243239775542459785493261328947186612946125441383500111494563684328039775772459134122089920153757576435533410570621288446753014733946870671342367548731361829720353544931664875511814623667411336416460209375191221723930793310580115422344557363179115409790120063860038017191214418798832682169434483906818515807530831618808634424906441493266971250690368541036057719477916928878910286213290246887819787751523715401723347486772325724384050872269946942643215503160403170240266147988075176668442453838794363689938060462897867257578925620691828053005088752329616371996978964400718865552160577074179296550564720769661855318106202080901708031196306691034295581599160206327735417952115450549802222440020256126143772361493754639703716428144667516940050152523176808095330670414980580233134805309521430743745075035672735426313145431066097712696852486474812741996807170269364892692120494276654544359365158573274300009908251893175235763323902345246000035729706242915729909894227565679742408575439221052771442549967085519456398626591476866342959707271942002547893796083007548095950341306820923623645891304913692666421503813199368419820132614022471721184346083828778043758462567775364967837803453075980290464134333305144475949943544730937721736328061941970210031085893183044414759972569434498776117994932442690659816059715778217291745548437196846968121980885600280119355006490524357397158397446976128748649184953743258225358326026904302070787784278734277596241050878493475431828898032516111798370069701860498092233294971683969727078038424371526719326646241721184692737036169732466914682670086508468608572850959776102545134117477572852985796610848319098730732669653212919946674652759566171609686956070532170801210541196614769453902884930405753613220808904238416034644017516570477216165268822112558869167712303421833238525446656106344685596363829879009344838352333601884093432652088348191310037205875619613533558567350050193770907109426815127100060545885937635781278694103432316476850050287967728195984315937488370846116599998940234600171564593146165636151399737470462884413492077533490458393226067090516706915135554311627500280954868206322532471715309192168537353250446039453593320111553939403801350831706435057505528554071618039750881749681056593309636645653085445862416104819772130126211308364133197898610958059226315260196457338161509799159818477170162194054436900038422668413259418938516138304886924278402638367363321346863698204494428592254497690161624492718166932864686791451580999279561581652811017387156187557760580024733819199935189211730151340424879832795957682511907123435309727292751664276589934839962952456169401009499812621916636267966178681042668299280750527330424018596607622481351415101730499365596139881689280414369829651749925291636307373137072412288423128168906859406641047165299087171478737848339512296655507515840238237861059600742432492800819671478859753452661147133066854870740863493025410819653091482645287914047408185539283814922262063736205032439349310222217975476589504024335298295375019508908961760109344995283416235077280397491900169383246699481078430292648815416413864189020595420464935728329828332012969752128286635398465712693116657433717386065136873946467974687650661623127812303025816048620602579844460899211037992653894806618852656686787883255901796426954254536762833196558372777350740799966411046522074199275039361152606938219094969073024997776249090086551106073247694305934385289529546580947955353568224353331684596403921276709775432646726726637730973621432573904390620901493508706585141651231367900894937757913661926196311063923262388169784978202247934687108025581352138294214807702047058779561986193154779898447874976267413988930127176614094009655276086619999474549486231541592896242913493616520709023202683426903452406993718937147885360382402325896962943038490722451232084572835885055340949103086331101463985960925593068618866172663237894628152583217723337208308772949474165519597006850603876000170170257901914962633070095684437909587168431558987953324629590660658638562866571735448324256874842701149420170351259634409963797058715640933716488644092367367727933121506090252943770321485260794375617414605081275776187182253309835760590771955527162852839116111732296448855487847466942351786089277661481379956804816139776468738742626965418711345796845557369208598100712498683906758130519082081635176193056109013862758965740119349944603620093251250506784465831734322795137733177380098992189102002451002295512730363279758308099303498397812513955276127979171386897224474709141921468357893402944051947740630689506892449114820271654662239379629925215601652840096365919428192827900041363877074327630250061777176511564923018319219568517357448022176036398490307712418766026978670030213971512679527588815530726500833264989472099920840474455090484123626039278508401481128544889624726177612163587736715977093998585250385815182600937660296165403630226815256834346106852967513664135050601346200354204889275868546779823635787792633828762712453773212200240186990512638474062297366971984360393599134892590097984359892998146138633962948625509864321486727077436107458888495121139279346828570676617180366888690636203785169302608668959531478925408485765362723356385876528976576476434888353209366336166364776330149181504148228891658568271427135189760315918229327758696454414039498471957260356188359999242070250206902210471571795407838117818898513457687908604378061886571543525532107137737204961343603553698436532012374641245134198290028033154925080977351974548805334959923008547502683291236938449159851782771772088630770511633111134848271218324523341072644094327193880084525558945858196424040018172907175254400243237197026174631403424742850023129766434490535732396386896140023853569245333593802680284719227265782058045361988163645324740342628355095922367381275663836953764756793558249819990696705838180720304621885380308236562145449934856930558094044063606277550053755109967982903336319385075183016245177953982652458595719132957141822626284373789146645358842029324477906139354077353213969857070345258472433754824878894317715886854876221845760183056910185105712994144734003524195821779088872395854359165628587288929551459645461945638554537529948165829737532898405565300081926333957279373006975961989492701709143252608087404986903274064744107438986256994397825706615973637490346858628841429083921842976042343001536021561791348533370327802075080748634235622984433898444416783904678049848949933067997004431436808562986325983398256080852465808483820973378288845557881694978072975524043738804354550015976244606008039371036024931570980997030760923775560090216116070337035438999849091994104566780398222863174473954674810444720586815609681397415752507323396049347282242674163391442064119254174798711991978505452895325222630936279048491283194293427924958290835931801982898203660869922664812502837904031841183638889178500092465350773634874473938460123315342341592881122776899265976466630104773901775716058802817097645060530497038546577203829365303864787021101119320110467321720832945190684343876267495484600706316989371392936382299803628331859936656098072216960638488487733029729053115071811773709900019290446949600158281267323703795378665720990573999052137703737523364510805185382246886512589217873434947395341755529976882216584156760571259537669717178267308853452146092911912239084687733046811497793142004023756227030258449968866108322624704022110650009377705617233331961821384175794566864760532968924771486104355198815997482386857743861025910367825619883897992235932506525225096542818238785850126429454492675933912445640635695698067478506953259556658585444687372589791636881497203661412861585893663729210288881977563662783168245742046047918174389295570357223896954219809646112188162773178313729198177769324961826093488194499292692557575019281901837066244918940891286249112915856087330103760512948402852602152743984843430125679228154289400818330667995744795585859963963274079929757875988331558439177311545870013221401898753175505928581540868763335255460643983156194179633357034829794563062547885337291821953720311775534206289247155977246420994051745163152537087493077261689632079379000183328962149034758522050419896818800473801718073006339783830300870473531541328074515233348443513172011118877301948539024941324450827362301259937080283494332005971329960152863996158763324158919031592234349922709385471977387691853586039329878136955807839885367270929960331811386272916827680185274175221592410909090239896774242244126736906829649834996618251103268759511889829293250597519807717411715096968314645906569116573985135011853624769778548727600333200606697133124713733539217038438423363774100467176023571693992179505478809364448839660900708679750893398598603332938186623889282531654271245264459221352268438243676816494402495647631976625419702853405940262973990490881548163989228956290751361142056494827067357818795830206200042436127003874641924206917422163368887299453148400692664027243199566366009125235752790256329340149632953762520622548172975110668078252573089317710803092486954856838260191207898523062629483894550015384152710726769250869719282846793245672543198244578153362423250531443812663018119648659922723545111367264272854779381520564871270952655287916639033418238532141892533894428011723538284880743331054014808651767306242494291339590236268512701101460734964746433827361674143452669338561513367995243359533614486990831449670017810304574619164931770060228431080776926082032140428654722253202430009809916429998323461125622924414059272831310147060082596225055048372525228837163442497959277178625556317082544509058804549712049816853937843132924123919359914497795603512310242658612734785967392424491321809446579010596315224743908808316361064021882476094616255216868957601981853186173064464954401469533190461976479998472090115498422250021081949073226162177917227007992134499002516457026058410336777328980800028354963234314492522820904968150675240447494205148586764269158862596629788201915086599860732401214196533310523145087656509497921966522597430477010969521104199900054655035457458322220732459257877980893270722481206312059952577751733011274166980862708827182888309465330403452148779304447770604468298635084190367573714537930995984901337376562688976276791701857407825265219840108010818259752323566864125668352096885031196521479999458167967398211520338981683976838370039829221469924455318179312536577245533649112470982837264127020767427519064512568869023955346083901997979475768896594941418137608607040128684821216386799545827943531237211165691515265639453587031629886844089458492025121995109790934023414135185779928038944878368395302948944068562205121240946863402435480104948201461207312220019177501305359247081606401041192474715037132814583908940223457394748839287677474272686403831253311274684941000077324662435784088596826809897447289225866182329121959273779159196676863248910848709429434199094449003510590641706104556452268280250694566849564985946150192869001107500157625406801056123492841855498612113404126816855119416472577955874595195506634967842766717971630576627005796708196192450125693553913886095498700172273164953757431607604065522471869418955265094717398019311701018994244006727978796923645605004126761099068381546703994344719535060632086918977093978047571551937682660306783300281075172770145928686271768348219295277283214300639777897402529624351944928274042602908255341173032402282047848303754356915495604220469868231153458319082993471482020175165360513900668296637971227363582104246928078299759104890073274894023413259441994897328970309212242549831421387063154286680019585411546575035005614853670056257846907022694017501589568721138234927908827562959421144952193248741057690855765114459571097313253664004746287848850274311988158601399647169821991419029884333134882193165875097392927923084391398791328540264741211227456327325892354876183340610033876340503506777655822166472061559639479388109698215878521868272978111560574097091390859112476777057506891238503236663766890180918994551386507439966281756699343999097902331954726965793543637867900786184992800697303972597255012900854674306064169509377909213973103361730789247481843258385625730570165462843122334553494896332301418297054376777983600754090226679343524623010581190846631790007536357459031020761958644866192293186996400070188608687237556674943796246660677695938147178307213683997198355849645122757565711173430245977116490057471623814417092798339017145745533120382850774420622526655008597799726027752784559309630848985642841790527662603565051669412983665551366743741630293114525195983120921644503655784417915379192970308925789140448740468384598694773499569257747190766540893170171851635983508744522449831283693706360985566479053425986429236357457015760488954894221371303619079823641991847485099000269186897323003024546239116944372302135865139257894744355262461828654290320873505261660860779264095528190708946548978539420618106473658149252177718023470165390517394562085223160181965540914440894474583898612586406987435373258439036700447358303619546652420581080209277354153866374295011493629726552226138512818073420336029918924279246422158520313951611107452417533013805667293500602093790027403147227530488068910516686149462609640963780301599199302504934840944782584893912174302850193373068731909931556732683471998878573753466082878381507423001063147942422727264639281475448272123734573961196994663793085866567901655373318911197391353027790515441207405577770357877097528826902968081678397019978527837451422548625720637936698181080611694181145191159437848821412373425127186063086150169735950593804204088921874794324614933765612886839437408215107642851631523376739177189165589192440582708629251696560928177163456885196493422507173799778321875424992058320703799182774895948592318842416184160101403799222603862454517352602488666568919405600522062436576250803264326992210773482711458764180410658980408579957661951613108890152841090394137188891131722947731949702997686895125939536706649707553159270517926437189187736756492341528294165963343774423256613555948824833902298685862858433957370066609404878705564435433303000492132960654560665697334492978719810944623607181977357536045530947179105669603610131135553962464505999258179981609818987421187018977365671552648225421531779876599327573388968134388392282539761548107956448421221847069710967862160716642430851163726574719884539615582987951385710210535583102779184242989506617488815334480045600747371569230485912923397509987586964729219267301453928188269942319150654690446151604328644088098935403628468790559877324921345363422081843005964175389544593768442113052528790122308259836262638989550508116772097846643475004698747563301202856883851413595129713632424038659018301277172462788803772143539295558116587787200366747260983077372880275084862113416535524997106452804352493871468895734435651371127746069595213079893988041998473138389443655522004818963553545185852642551080716016716366369306461275462226297537340144092304385313720368151115785768305797772885647690943195230522894490798231561325541812693156856735536297643757231449122385935647594694039531267524656349808660957977725136473479680658132119115065862900879361081172875101731382819305487711714531456676561128879819042142907606878410735653091360770300523649464754177471660099104045721243046663122021609893288840035254653101710000074737514433645110292487216156624992938837687551404459363082265864073349479519441034830872309235159624599502346166470254575385775710848498579070381839770001181978475150733790206737217645423559586122633907584040822804919760528672048832657827592626041854624276966599609975638996387645981091960501392302386869665164623485785394529082002340885787128816580787751442685036781441136888114034569353346451313898492039960079399562063831253634805313427804678134555723612601210302566412345033891936534730531100629439322545845081076995980087564807942943147322300483916564709357208802325001894845347986777654521692828126167299895460021440437740707677542925487341383985752082918414738338076249231550768488294675972548043552095086309964409681043343945611929781426255113188920119068992102350923401179985666011566381420649484917685549042766537646127431713140399001962115219622011616885803728406305971955322907528502754025621424858522302235702028021282276996218385662701897405810500379419884878688433053786789801706279311834911522306933344324720955229801247257581160505130627279485783644408119642871093375526543732859312663494768818672291250423288628284678066088430531396131267337677130872570759254063364574147278373773894098742300058161765396590986906239394576505207476761210037795400920630035595381164835501540921169924864941337521098537634870171504465917743326097392153722472177838768172628088815245303874689319427365115070705989650965553767390098561419805277452711570394207595073478195520393060565450969086242214994044561885497811876077239448729818802307953876878860156344876786834865392862287865531000617584943404917989351146895306529099855744542220484475239095357254507404362969744501834395498976823520306003031179347210429285614465636364579596397591556903159065790443248484587259133938885961680799838522823730719643162719027626878470394777670786228017893061304080368367895430268014665257276769655399393669416475670832494505078462588255736567695777431371179637145764715299398266505499523848429615765618762339050069366508465769138105443775092022972003346429620391630179569671503297383356050147090106440394590255623607091157635631887768476683412054173765443674068610777471937960206050437665896095434357229754109592879000378123951785615475137145739663891801549375633250222280932615525648839856938938219938768829946034242389907511190143955044401932347809287278777368321423675193954346051727055966381330650346480683615776017730735146939725680998132241313447392727560206601694625043674218607060551478526519128943957588344437399535764801093607737268233358801601693266098067126687498219794085834849072176131177125087823776288321161030038805848037111504979933877625917054553168561184736973219155724438127814508697969435924915674265832384859522576351621450381495060172497618117118648536510238414796790615768360389045747651634541620340732091165959622442092733629602664517051993731168073728012443864920856827917125242281405899457910798019590454884186852328374275603764151840388827442570221708902387717801535654826790645933293801126685927371945039918711004982823503492714666301644120579383658962991548430271051352966312702618820225271940606606728146451484353464307596831191422023602395946589656781096946871400692674924588911718307926880831168059505155092151982079468089784850428417945486699134927371620869127029593622423068129251740897842901337906213079344905710650404356213563486960590269801920415501727430810619386167214209265045373749942681899131480741843055475878651306011987971848098412109168861729203910081174693210000784251177889865545917494766789642505152404479401265645955634418564228798213465001207904394171381379024828149655291318907607102703698559647113700693703172055585210630274432766261451377310432016942234358412822778804857210753726323478439583724072998382505588630479819606016047970373599031610369482339324198226239669419139727031371279150457303389546201986680890483829677390682508003161851505458730608800834588086399557842918625024865530682275124730642090827478658152222007443392990212050040704820549138197289300470960985507806792601206582352353845049622088738213668233516707774222356631562535167431539538672897351152381275293755051665925263653369997383457339331737154927350456885355352755902289550393859284751426214970162239985179914860953039335866094176805901816531405418680979873839841150198184609228033935842971935905485401611654808688505492131632916938979340161162353831914559447661341495826944762643455961012489702443375546022197085152055855095330040531941021039970977234755012130021685376146359960789155390014858258207385374859674050782753407558953149229725313534214264623004132094755582710630538097083939100497037302989326822203180060097031777360652149493309889899468874989273804752537982106658014253144051970741161400941080701070863270669394105989332438049727141044386825856099566509690508380656388629509745874608662751721877512015068672436402021993468584362174553947128505691384173378625829320707249942599256682197265163965753243149852098598746568006372509873715745516829444100519236324683811824501135182719985065570240689503336804267368133857564022808722135425119831477690941297714928799904651218659109765826683281638452803743406958196954268411652510162053299374463842360243320625521653873766591563530865853571731346746334776509873988416113268722885378414028748883586792285881854089623485833670658718368608626220474309417643516931209401582754662242272195703333092357574413614036140227622746460028765820594985634891274491607531592637579552826285754741890810106111644192698333907631992587752557565579224882209115836759055070477910011609956604724709940721337164643885970279710194956762757934519449608849600398679277116689685137979258776008660680883644957576397498120889727216983894307256964223107453599134182298777669743978632814008995251213520226749168448734636736779464980398809062956010445208398642581910966410586253277460767144726654320235799867848072855371442368603573834193326817635121601976132771874890136342277342691241751615968873411352729845518224581491626004624620235140273158856869889736389299143405862620735306851246970458067145671795644392201252887272520528662990768298517586088498911156131536092294124181586496223238261060300226585364945261991419926322884973607393539092881478124308357205058738985550201551251436248552131002149529563476859497723940102989985254057147490754579780757833679438650854472302204731963962719532479575127038876604518425657019668994268517274675391696956454477781962192024981680352470272887705095804046808173160028140073960013801180336687699448640324839612722276177619249015676477317963108193376633374470649853809817870616359985220250450495511310619439013456917238603366546046662517242589500960924145515228385944221671432776569486344718653248644790748886783355138276555178019869320278052987550514080851243894910359495993458438060074228921829906539317610854153812321545547880332760607772924877717045801154600817424908459344367114541917744749915237667030067454848319869020254245366308955762648482142088039638189700738043790541409124271050852838110120123776340008070297688611512678461809798256076801060666885238605067864439461726193301788670061525765223175134695636626535503401979164632566042321770664471392230579739473605448514606791726959380729441933409745616764015028143952998456017206880298240735561376512695129844438297228783124966931957566551927147751712693668516262678560560612450361306203772154860085699246234930998502505531799388641928046757502601885512708892704014110511524777317596277906241750563077932788129216220646391628210467928549140717838601242829640938955209896164272657916757894229201738444849526697324074871776635048722861203160308583172330926690850531672100112484012063906878905057425861680176891971718866657133207285619987220672835460224645919448246869032684418930536524827177298409790385161372100232581667060505506682718878742902047717294320526959064464923184263499402546645632789157576845690730088916314229822746080117050038805685636597109225196990349566680872332386823932329040498581168528487159068563004153635359496994391567158254010824727236060258345861515115031677713490619139793728550136260048638294493990620306064586186455851186219459117593466323326063740358047862784295128139738568116974718142649174803265374212269784306792083441983147220294092397254492091373781646282144966457973664115493695820916622891598968594208959699893154317326162599862771145392615091767528763371149568018003568672882977570378669761143820318729412425431002766604245634395650123975325329369968607396957660077176178772322384273992276414628857627394803252095417062602454259281828130949494865999049666063259312867871389031358090705391400438944544545107623334681195193102021372631157393178706692652974931412492037680091519289563451573814401143948004828915320494574039602015806976580201977643863980292927900181275464741240568678408660318254176313816756279832696214117634130365783635348291397916207409955478124894163498156119987778945035036940185837572505197224705601081870925827966527944094889693329930160238137481031741343966908706160734812385771995284810173624998310247772985974980239105671762098803739886476721133962625060367088515160097804452450865399917828162582416766493557914167098340923751382582579216089547744208793001907636529055012471098792177475118682313143782093303053267725827644715319222772841743131845042563895688586600053514813799851455150647524348166228084397702992870466637624507337833677412169368886512405213041306894945780171843511439620875570204068310371707920892630741441491772263317837727320400370557417221007666811827485478124280576925531403601696297793569281277008180512326590178674322505621944672379199998147971080475237877298419529400724503332742573460447219769541835657225461802689704968592489986739604258505299259877616814263407074020998102201491165119729857542463959662070152508523696499504940757433616502446690687743540050633900670002897675431417120550322272730953087905024828782844772595653082307881102059274306317485540894505333398937033530304086407167937333430484293064310691921999813318206335408713058446472852757001946777968412997221661556601869828941306887159288645566186348632428956234178434523881788313024874989051928910889936938665727180717749877157415954621390409612899045955975312597888939973801888731174553765766785729863406672796601667899924921293876290296087577804434267520254716880513332502849269281874584039870014089980015672726481049609879773705947293794953294603097914008867285290464928866969081490842210917685475422730362824164148644005215398641134122760334616427162626021163585955562656901913346854311062840857220222315065704184738622030185626802537309103268227850265666062712868323224258375698430421509682930878996446435959903386000232729773072079750976925303402417208322308801716700688493157538277845558215107003466973482382519843862752093184229957744380500434911100259711567992206631138416836695255923133824196872521079563439286252623945447613458587151408192101911261377154544639316073441901244413004201804344879019170072701363538621297107866543263052343375477055353366003122467642469406560737866353682586856446988813998808464139086953532328326999359892146334311649627896976588775872281704623891243748970445690696161982252705884428869257242812445767042608878515744582233399189030467616175720641143297646596013415211848245158902233782272831553170029598463140605287140018294595235126632466709505125797403320649239536416431156028434398443798249508353374981920354482236305939260881391566560888978902989945598952705968701703796886611450893898692237386193437838470920087292184884352717435273172659635870108076425487401736614190005499980862110703570640336932760901911079690126909595389759257005151498861923909785324877845808510528923823255789348773534095444090445228297344975460138058195868485441306054175499919400664741778170308066670643989093424255001760679692715706642421914376407390042138586608335680547681748453344303248703772072532201837672450694323417054781213314570019156657794426799383701843821688966622822577464641938096050313010592956260553172898357033580734336934660611541009838289054701458143096806688115864376677573599425405667280780335581861749213973600500751222384809624069853530554040424565660708684334413042790339271366031908101470202794765634005109998171464822921081993722895065735858833901025729867648975522186768439744900372438047188634623936351867635629024975490449291538847594216803722163491164302459289092650271688078614739207756923509785827101464500343773804864747970569513893784308922443209615916261615415816562978806677669710615025955186195882023617486100188078466017311613079620868211826629864575533907904274784588793119689404512585904996796917321698998206488075351250682715121849395284640099156744939530264966575871252013767140365773509069085008781689035387400666073535263193664125239494623071836896221333902161340542679180957781794063352410973637281115033161897952481557257642762216130673539353962278932844436611325945598064853989959952261528598826254529829599246070551991590664792096690615914999659750353452370873318661120593274644154367865605220161625487941155050710610757744908903660677678391910149734988411464542765080536527776745995120071766557497194455684737489802532268327298378403183177645890103625811703581384890480048952112320795453638553808360893675630259581030513128406819334766948729181877452367388598854422984011948315698878253837943850668012607767696945430161541520347238405162323707562309578745995697662163043427600386229649034215076595717767798456330848060524565806580281095862629951904939287182223665480290342525253343130121096058389035177253732105606046897563670568098136408482057264669705602781804258592248379790183710887146987465780141439662147208059700493188216221235963446660167595899332850221833355589891069020753664876766004083662882455775568705413908281781059770668793754168502991051778618999384923629800565918674266347083685484413999865802628951300280062402349715871747492415647279274950240076020342432088490081893819240283342987352585056662062042911968645639867881184170188905212676280907778020118792233848231206036236525147031527933144044043775206045165419493607709694902377944105200817748152116787587856798290869647891343206636172724054820556763913541872110721564116316711113634174147734905364404975434463175140982312197862575563970954162029294015715989562850901454400267373670434794956516972245750501364859931720216668704273222464236392959768381626088662002342895604771337230844255365979327891345432260646561329539538979792800222549954004445627031132624734700807392882241552046942959213007604104084941713077106077085161340166558125010290617596466227070307605478209218900045965782216666628041529910920459050749057270019234460547610967763973531965496641708176337167120810287147110015182082389323394429047241104649746664712630184240231145065824893902916788162589456034605115805146520878814640887476021542319753954103515189685181734797717962259986811549738019158230395842454525916425394254101609495865638793346792104825539464154126672218473374553772419166640459658616735265179902191934154743928777733623734832503039462223588445587874562917114848507433587147580991376233364580776713302483087480125481564417581484827287894190620108891796167147962766820285490073607149267898341951350651497064823794955691500686326740827588998154500957496983735372785274740146234927241722663753460412644061819057140673679611153007892912582254265185940116215944865674900960821110644002972932095193136870471729624027946767676354110595532623638134422215032127913642840292916127304141261628661520072607760297484034861228733620961356857093764490944344453255907201350312334721034006030997179224088233921939191049700424949819579079120320643690780755288936237205256335977230193462688462010070037504918023350561291711000949185240651044784005849499884618122614292312237501921217555212158766637813624999146615527450407701878642805507694228586633314559795842680163970468608843073169165222109762002211254259569035016800776570032950594761694798465043722093065784103194165450012480953086451742739642519287346416095416736232815315718480645842875704112245434241509686100901816947127451862324591841139056795302993854250872545436306087560368965817795039227629574026371063953757753507266586958437368610331953604901042245224292549183010850492376143758050190337675817271543226251545365579422585943115161277552208975319851169351099645447056503353807697109055562451000537399030287191608826983744660678496378733180140801823732043220441134502807366037633759888979465502863898510563655299270228703859411885106043837049767212727728422630771663192531645935389004415870015436612667506603818596873061585148413499225218893349399458552530144372393156413464916858144694042440573444938278471742971358140535655330110385053548364305549313951450276034405118496127792988796827280427987457285107221310555445402959843554125428154444647466655485017309279039155127756782645147764365401556073535622837183485319574039350938713632235204053877400696291910205737975014650457623120697160100171204723270799302046303659906062571205032068672322085702677936831441696559032201059430858924093965389403800333065442059282243161991996384495542974521684373526905597898179853849116451507333634725623723124158578733449164973831727781363281442138453169854343363018455109365554328888760307680535256245461048064203724067208898684016896801922189361859770559033338432070913359338246846221465306255057072028280427628787474001932353551310601937082520432499382195816119334928843883867012528129922767006390139914176790956971368065132700609308775426001313800291227442646993744365887161944932216123111105884901662441697616898201660927115829882257551733715625799402231476652781398530009299214993360898905476745045351651327351137504937313740151569437185315532932505289725195862824241627175262955554113618264563061903304934166539901246724570343601092158414848386655988310789822432133375555252418884461830811324077730607897889050996325854460047813613059808222684435615324201985660020994344510356318786384453449073729575381574333933437544619188435005796639056352975402154549560788277381110644850504998756206903574217901161131639014817402692402089993209593389450521762569810107027759782585522564121904755423320322423910215899172557217541166457081896192928627025988668734146369340399180105313258156165919505579558465785787438871323092580340792814182091628764154616324547724061843214473410395186165518200865994735051792237674647779363442633458020852550401845798632059285737383972305849753088290011408114755516987986568473064838718209454996475515478091713538596978714491770287316218674512358598635828864943236815371058988680880478748923583877785770299083871702754488081498485246940133150657220254947903290078088161619286870762319249810124545846068027447359832779531414890234928494988621728065583668902603478660628145781003271074674579171126158886420342124780071380765300906478208924327627050080565896745211365813671458485570993670853873944035363718937989977341770485112544386852465203545412439719986614028453210474105140237354677674684400263037430972367781656002028774336223558870543534722430933989377702634308638209478658553943296765227490964388796426823927583709405035843498536580099268506967990673833392815955069450662762772142750046655411508596573456028591417954374003746140597232791431458257936327978302146410421290594803827731170956724781289908634702642060207158398443151290056459690643781733779536195124811709294277463845675392424214291758611260642576102372747362605979990475760083800439819881334764542247518930286781426267853243008025322641554412905906592771199341479950292706973105973603483519211067175856129763063028275324293674938372718999947313879937511713665473256997884259689342665268539021737898621968696701377749417689358022722721995647177763827495075355409405816364070767747452614222822739600440746985424116012443294482165933551709479990503887168175218252792121192239446215199637166091732738040485661792020115035938525922255120432797958103442553821667765848171375694897727833650299932087458399657044271409543620740466473734285504149178114252452510478825841908278646162328153782381412929865738380000421075830034753715924926001032314705765398163211316943258381338007506884431941797488356467078880383032294671976622012109435644967857538300957815243835376259119675979706569176228220756935958854613070877738665280755504440632111527982613650373341803672677323657526214566347537397670681583108274768006652769957285617570749004996107919689637616124829549094266251969465832117624484925722074882017525089552849731362043286345134051820496027471981964075949613138485344940100422595837434785583683230129894895228026088170145629615704736674117813339920500551507505713122569803861094581141797904966958231765244946369086466556944445844479697403751925230417876401640628186369158065277725943469102447431298232833164866667759396516086191730156860419195210481684637221021027601591639267110953872068417103488589949674323271245115405173138444818122691915751741420149655187459156966961912409083566215661695560713563472186170478388762116228534358882451593121009403540448937580893425718670445508653075223300658349343789770839389639903988409275481086705815392901395145235116262100224688766241674047744641626690032209012737334140239172334505791003303098791547212754002988017396505335100557007094742783823588152852308790018522336196168734257831156314069981705681026283398234881425157888338626447361454100532729847011113579578784822784741440999923606428796091831950337727029402133712665775099635183848236323328697513337387620670738098862515264740176276048938499884303351605096249285615760263642748322532213726366176801164890922451508638757369837302583622022610758039586736860615674926417591717766428888356217284313693509503970602583082104099744177065600032211018528872978296102577403062707360372442761268829235413268999825519702556420833432287927376763132949971237908880983517485004689546598387916392304659798169603907134326712549580614256523062322110013242604180780642446946222951431091569682513240841267814513953183054362996140349907745717981333908842104324730799764810029425868600769938384604027963956086127575806662903535775678909322748553823385547317526514594363086102272887751582925987050816418231947907955878999828492634479098643807175537709567307596455155321082566832558337238603973462764687715341499986597928999098954521574092532964787377002269210182155292874912429604702856516305348581689346722943696944047864935578704797620056346759385215966085909713467338534881449493235453898411875195599108434645585299040267413475748638712182012348778962499366623806300754615431148869718045582741434579093421939682867398126543905140403826582557249459411697201213531032493443664585063922746724760055121681971586176288791436813465488721063287911528146828123537537339598846917101176738115887138914369454702637630362999910278400588013503809467782410387521718298959947328776174057532538482237695827371805159764532895257898600716066906458593895945289105512404349542624520204524386968369097100497155849872878576037696517497346486963482980066526577558956005023162688438783360200495409451672346711239562717053745129531003275846396077495516431460757515222482146110990095247428269181285743229118025161769970812907052807457153731136815425985921915808700539793318571440668074256379603015585663458876023181434241399838038899243948662424347546842681847198689184280314300302133595929084589292719900433622498558622692491117582272493806381926881489756720491188291827861515506662515542474441758965648495188634113303918072133190358256057530812514741104283166818495371670709296558356383618023284746861741515784005475413436679256603937532740854811456750496680265459470151366401762379505219633251872203011626997599238728831365119186397213189708015171880326977928204319614362265671304283883638489101389500880796494447881754321578198158364919464000227850056409962699402027229667017823416794201303754626442057130213964261005831916339030336670070674564164153424791520828596615408547996273889664681295653872858022929803482970641623063426113716514519054263677702228968321435929438174393031679931016928150266553949713680646888736742389620763536666132025663681229938020422771105138900838516804525767591497085542507297787940222844165814668383957680840714410229315126416059391226810207708333797520612716538970065343061300658364766118383154420331594801733688915419304179017473905432309527503824976945205912060083711803873765435343664146019140612833194496218504439770645752037060640350628161628788157291516738161655282110333478036619402490980811331532752105137635097984482024392352575848311241889901120899387666619222981552533308572875584773313718825225540610749633139796591560161812900357605104449520900024804294039898339443142042502743978919202611328521189256689828984674820411595175702535182455929194411588737467853707185519927148468463852205417377646110575106126842583283341327658750172030802561628346675886558372355779889582519595095075595174733556278517873526955960984795756870883053550972832655738460400041477490438040339554609424600621301974019196562947240534296156808461441332850714337779261962355662379293242597783577279285770941629198260704229495643841920445873600507142259274287019641726702354139643043435547720059885856010552487913051795121985910377540609717769730324809652525210883449927547900957821702466750062616864969086864979955998433245710433353056941405144140120934299600644626013826431505222044787034331574484859554058350774063196398944105353820389865783571906359295510703700444331377935139994283936566099550972505426847824204876475334052037501695494911933920808125128935332913014054705255102805076829554863743066715780791253625812660345080105776695326175561695725014004546452529575989608609543944188378579016009572603916995361589482523890767870088849694535426594723006242690877364782623763629605379689006344884090371409535244857709440188175617135261543988917917517181769386401918980530759274038614853127817646420317263970995892277216223292562436734772732465942815343586313856131475030344474335101180507256560333390758700821173906929966842739578202570115180618488684944644323326405659335045753364117471641648927344653056877352534638027205748578285717727864174718767437182722144905233376390516191866098757488367046416614767025001716997626320141878133500647894471462392932121443498474267654063362134578695863961322872131230947871035656871608630357538241655438822497953724536904912504639008924907208532581519564743128422382686655848702008785628345961681736518782242441634975059780455489721553348673685210021105757929067469099600608098087002041857177982768193248282554909666521960995344043779285329926408371529239842979415284656281439848229072690138039493275427105566939019266231203769212215595559542754328937263698761436874017155420173500573378905482958277971167741051579228287389392602720924826793906388322924878331585145708402246276791805393564106755400866009692218855670782666306272177792979097520336996436819322018618965172587878362794237750046952635910635882752361292378470832137743883544239145714707778202913457305832391219491277305436645785790390390758199558472083968527786609211652154334978854598733403961170827032005116755898479220237117710405299090885328690871361205504244545201364978925447644955968120884624783826147651639146585211703679227620184530134662422616369444787682768789920324378395065607296498437771239818801888997850799525286020674401948240468578941373264028472604741323172299084151247074806908932436121828299055365422362000745838441517899917794891132907640879824915496984633218121899532282520144958776311434445585905848541307845728553980570563581152629727108235152923668392556556427744428424984624619402918066442600570356756602483135140693356332077600107901748509582046631465959330187727424769245873936793416092394674271169581218923266672951761754808643973932228727498699809792903508844544000172015816707387570703022831262450444171343951960446177638449185093819074436603696688005799534000296227904922054911207018693207762965282867378064181530580412891663869273268769490639698768425298704317317441413781744391015894058515594360820599610757729026330510666553460651380881322543351483476122996832816298659180361679619208487078509256566716039214548269437119616398107956245087551499550676674533670917853476291802707363179116654439686537289082703268279680193086193023760522179818343399889797486799499776511078973422037879990400781858036144348986562109382335615853579963482458782391044143061759724606681758287702162590116473775469189022665402914191277121392767580861292544020351271957490145500987429220165738332563333863387027630513318460969509402070879342148675900190052580838056348456450645395353171397694398550521115163003683749202964526940795500044594829487114221691093493218601884528809575547300330244227499835113920815567985484908070218071655090826712287044647160247065084152351012417105696912642029108613037786326110015886675966381295918745014566063055275194936591111938529090494073411474114131139858469939692355217118678892045850933841219302510367271711123004394532099729388060157356007154991581711309061607827830756109683455918202619465253240936729523201613780053942398601241353481429810203320872800218473270354959887545409663387521885497661586315629285919930730959474260624773972488134669968356838081310738600119858632988593214970783963799601297424181659196937805466103060966995123092633813533381769285603436585933100967258375423848493109163161683605126818104469935723396018642784539417506397841426141023796238857154955569129716970489255729345727526889241645474232076881385554407585907620054684493116976608353821810235040911888825260021192418108474780937459990237594958769021135617237186213321744326406509886559144834112397082448857045466005897636548166554704155239279554503582188533213284455333791565382472857205954959720485847485428519560466128686496243446537869347563610091755119340032550990421633430554813715051052903474594218067625308917869038761225793817626197093235771512517181939212957107992255262505276371788966383943338575176726012238616393517187334028464416162082251351986298009696232692823423159212678975802072531121392056802580722550422699317537863705528892682677753333977040253778806520772055695906503469202721235574926690270362889015496306007991363741293615527426122277354780286822536594464177347965616028040824463359752899222180225494235834994666907689237241947487080563777237202651449897238737154163642286262876021133708753819705277058477525730061019916756272524381802348266293207808705868661993714750775318433654839486706492918278702232444452871078499280164880725749581564592321929884877656894221810898789881145092092355442296416051419326059798170557758422810939253650379773892983771492124401000285005699089701284981290035476186703315832403261649058539540211393934504855385655572583460134259666480417204327720132057372192485259222516893497005146454819201853309383189019324576084565960665776828301219715261032195608586096133134706761848904695330805329641691245694121518766800993918797414891879451421313961538223665488914668218819927157872062871304964228456618194575104930488285639759183103715930423569035963636204325588159135051560313218558579304724182019029739178675936770996844248170924377886018286075070775283134703773274354149256735066272226935716720790478247421322578374896444710320664767433502192005353529094247213823922519726530863741701506965687759606529896601598994171473410788626815117236033575205413637609438665038643348121463128724428665065722389966973874784131144093231983067088178006336313433359772980505925785850902733913709291386432435210034148272027482028416405804604498180151038999421565084943281212656707930293703442459533345367265220604731769491984154086649815056013016396634810794714484051614919012589293989548688106429313817880220559129533933623449681025676677210608017434005223518276098208730912659610103483964317685530772461900153900921205011548950719931731891122213859616150321991984923665878368560793097014713785821357538673302442285017479613323007998165743580496801475979622366251152804089858126447948654923549327998225876100719956160577013301836678640361553117453918782952053499772687740987466743779893708056079594235018230000676451389844507176901357660599241524135834363025055309863108914804958354181350271833450274261940099451168662409525342729706643232893104072209983683018954907549948068519096833502703708269999407729915529171633191132247420287199280658498629316183041256468851359045597780736150376960988761089012806971783604827972495524033270798672946074045077042621404542931716087631463926155028823202774671671639658653397564048997064604453878728210441348547666654874687044897567802672241243489991214032353033139033905167026300329661227639107291244478450723078489730636058895640881479039656234716957857823609309571412015617374804738265487984566211983612710826068520008964078838247853744564996502546976549974185853057061009407241486150557962939962592721584337064168213732333270099126823709708280744764121214753678812162155019787322209453809341970536738089700154074934019654356344565996151700876779632905390009038191162959479886825310836833786149757712019764769140164388461910582283896573904929247080664562354878504960932165070652009475582446598392471128469808755318038809748820353481835327568184822759069591613854495695052022538405858241250792742564392237218143533322192031616715849679971246378127607074965764029740030666555547093971693017237584584445398088476632918903461833276996206579580242360454895363540368311442292958780717728215386585981618578906717919980045483629727206059388785423878676108850225141133013221099201661899343989483102364697239159515483926518850652763408497440456014419189589063929160171070060037614083873639228897997356509268700352166829488771754322312032017461196800151507966719916755394263074424682015740169472720583622362527385950071121323978809103040000933997124384368804672698164442686066359494102281920019728391006759861995370331419514893690723244904219362550096507725431852333337514865489223798262936189849482255297790422906253829426131537910228052645595805161027144113272470479150500574604597590804528800604881236357616311254338904580366514692752833926495534381493498619868694877080755120662476450402248338880963010136191845029254147547660113718662031234477430180382711352337630335508750610901564549891801608519457517114121669708289456104943974189160263785920135186294982990795555008812894143229761105034332856087001134083809856214589257620857097309192093246506963131892585650400598161442451719695276884945778499981973018159941936333496658961409793255918298276419916648040894740889017977132483813575520476743610442591804955382797601062476871027538951847702090276225712887453040786451328385293647219064178123638617879499457646193726630402381078362312968899793515703833916125602213758641330483847918000823185012585609575597334702310605710522911477887917615211425406524074639104062832359594735344051494231008712783109563543932174027988558165242060778499391117685982859644999611380678349244105134202239646173038672865159694023834399035196292690263944431319290227152861016376718362935701499397220572884108807203685270048142081279170474089302754673886541168978021765522178049906072085614581673933290922633127120172865826410965457782341208159137935291667896274935616685771390012840124424757917811298057020649181926119124828561406336057622879360851176431879444415465023626782152540790431580711634153997832941808870409447826328470117560523871515601615208530898270192654452124405581032311399614950512388271170479431328087761351929635678933818009489566207629490267514444176933259795415230714832994308541597027461185947094918940636935194657990044787432581893519018922870356451149903256668051356614532933110440735992230638242089099296403123892687834726857709772229331672295417937950479498035297552221956379419334838926829797333199899920360283980396797689832647246669586404060776965938833201061482115121070551309553431812546230188981879725844906255545613345183111735060401891318628915914781544662069796578823147685208599451142700754367416213720888089365514348066582832589978533255805025771781116993327606314904403646430631233683464515994897104925208537618400145597522880649895651187822339983617009226289031871153034657375749608130331911266953882431325026186884806397443071903669411379675170948424422122223306812482045752872352960342181158385241443157325107016473672822006544161318823263970430960140681998569711749829153109341827558534828998649756946286262729654426494004692118636301340310185839601876172959813262656517162655160683623002459383474874144612959385519660131756661416706247921661288688865841111555498279423905010157474187963329127287561727942174203304136485007187997694493149978481250720038409687850926068574423192739336128430117049796225639427690451193105740333654460399764487190574500702991462204898216255767571540602634573387566377033391714719400509261226164572830618993762074015119859067038765721139257032447041633384644172625689763105455894218784768448390956176630497836724663889532240530017210913942598461954213851808667553904864009391731250025578277757733188615913580647933860655746692771161204099479693310130852454310911026636481856595246836674013935016108317814953472544582806151909417989310886263837383647543486097317907370941404269377319902161355820647843498613884528986035051358413993448229984424444585236349671965513989473414115604125880980098629062964985060558264017157678252106720277755693500757752879579160802597524001843584279918036147535537563017912816208825084878116081004294282384835267288397572264721541060883137316747365002440973767635969998502836818925885728271012430384059144159403327459627212898552094604398412333083387673494362838235798005580181186920328804718782992913307375697639884100784363354064896034312545229246489235493574318401904937678732777975990039973222806494618300080526808368546680468726663064127701705740450735283552601602837566196959041785759119913644632211880816549846801171718935794904421728169413199168382711450943949421548865609035924126147955780205179005159735671033719687448916848644778189683625027303962377985063901553221970254579494464480109154876224149074274072634460203257677603169864832470694724965242256698505788466184627269894708657427991720504279218901275452063284843740138493012319701369375847157004670334037531193653716839607372824962405453705016593474408641216077543514974322463390381661521941174648736541089651708120777542705431412096691341393533054059855585957632928177913067095798144961824153893530949627745601326443386614509749159123594195555915603800539902436195759794249206381940482291766841359711267257446274486179207119199222081607289398861078087253490389273932304688922847785869519840551482796036536825518063943344401348410311583811995315639684512031016150796621831382437901637570179875273019906457412604243250200563313019154898732722244108358237262278760366184832370814605402823893695991182466421719437747764951802099814047282606329807721442008806699667502792503463887398650360283672037965955416604186545593054037370171262164774909027421288250408673666724108555991025954452928348321233048955252615018163426313553346933110511622676967554823786198544426349173565325615748703828967739365443947108144005548045546885299435001019184631344371620042498787747761862443327201324728004352679746579566147022424578548260699736193564743881343829448023725922580319377145425226938772194436944885040607301538668152829587735649578202197047477215177973776068492104715272732870067235201184126425533854628603767728905023467828672994631469380491994482713157236015759382457847487101000174893967250884914984964549548392419922805561131745603955430685195542997304968171309731843370016544124580822343289647136154429361873360634606817701513299900112484074323007889557567763823936879374606778897121797746194008144692817449335190553631913139386173799936094995245083017875810936707971308743638207740783484741881038389445550839078835510281685734830180587552069652680940783758466412338875553521041280166637072586979582562148435452249002159441850234926477670671873888218389504232264330621414937602374879760037072906615749455443137343974088000210193598887088782526128163629623424689958271490038396192414389751882426723817211920768307004376427365297417202738491738385332319525460183136021357770824572341623362781623437432652803187358875846151537509109435998905554370102689121456095134795733774808584428173111258272402805956522998876034712209610740018136140970359614371523771945234552978146756289303035202695012123569041056989300443012220317569518012003051899932983536936074619932095160327778188762872095602201960544543208297179529657328413870237379627855679005679074327501159883651504845473058156933922137976384394940470761313748447876379439938985379686679862944143326015521457725015269350425861704527782320792528435569510282950763425866543482456531360017818494957688464638645360070551114283156632989273720128901003084116304773878576513039891674745467464802511668407015567498991021610870890961185616607749243863814070228620719841579554628632314541340768442593345889735144509334020711678375705488024191491783640772461795086532875268508409619657819381568367145176169425414363430252330366973622074945721305821324975402711210015694142094490696238780043334061950215619788458973876411881133093767869322913099401443970991508650560026242099382715295161373443973675002342595160516654114125212424471655701390273493696778408744336714683309843885354134873723533536608783592690005978537802085620660068351577505810788226473331140902778317977177294682460964284964470627631725501021779113290146972905324995214175353312464196299710609514058552000967808635978318341702904092842967030053172128412417527622487346034588642498607704210062408535234367402253759730138583951861960067398713595071434673989226063163832191521425288748259000324470162656252745994349264779870500036567822620420643804004397712394842450090506369434617839883943400806708866535191150885311211003608474278705958614656980584127657602359479987939709235636530708708931566421277200116784441846157890089906711346151596574562809474858096745338480477157416709802142272207123738047959349232054746984346497785897942690039161048237925586257605725043871361410577787954721642223679545961940977075477580347213423147892785691625043053468058103149454068230000719981636825692500825578010563322843679615146433481144885575176707472800047212934711233391938227371663347308155515343868547835487960931185838629918390050426253098404537041147633462347005865794830249632447740396726595259205436455702738488819432441562076859822496423351900347946851825268724486806115832525463779148009329474541690608017403881660862939292708863565218686294211043090266323551583538948125109687668597671853440857158623200134068888295483924480722910881635439589901127752590037936288488905061017004892065062517557240308726151630205011063075725000793758504265521167191066761758166974823968874396635568912034337595108536898057679359807156249791722112468030500052027177893923197288012762413025443394959026577537810856535735563739156074288196564119220689399637225610506390737977889022630317765418023442287706438730717140816613572110115978365758967732831240541642615509537122543852809211135938553945547511511610934671053974526919061743455003241619854478491184310245694606943039743514031501845280311923155453633152538900587321649336109091683517278181475340291647372762999382408106812755700233242393097740629017946294121344237286339946138473505730138842879409879856656020316622260021007185274479183310763932003793178700117272512817580005214448262021304222534779826969762677167247038136740587416064483418710400743535425960406798382500913080619090955677279287925238611924404475571356886215582772056998585739019678791585053410842726450872461254509242150448689160138289492400116762672106423833119151422473295832717102501117848954030459723824142752021873063835857291261170587712061029281063396111318376883846810437376569829422748643194767799307720215233091750626503152937838212084528906355571619147373083409340637741069587691273192151584097139407408511509639668491653084326340999916271592043737733514247761533460287692916466242932992771489859959218815347240982744281890757785544179253893408471412877948772479739376749153601747942044857205083733410816739498295897947985540567436423598951800730968403261064289771522157402377439069680284214351685767678743113241428758123734253762186731717289808989651345567522415605739202751767162674748762809471955232388902610204646735759489156805512878167405160119434644576639782016776117222692055491659422110499806645695220357109846972321532475179650245759862197571067920890228428581668555419307638874010348336964589986741591417362716194736652721124096866534456378064468806346921280863447142381869798106192023378299405915869782199731219502930679129223100322172980328383268911528537894468422621675919608864759994435624165119962579827331828393825693974074581160162244679495568029550855710125135057813274960351513312326401350167630197978774454415739586910482900952406053024542869812050466222060199238595359714265091517809437264015342328630252543609329545961340547752558481454644993488585319228801279792519615552493677262435794183686192629312043234515543563200706484167872081617794787523985289674639496402786550586536517448043757680682500977966989403912986386217965266139359381077953045583745036931758906512177568116847507833784525264997537729280825635463525187625513753318835627863259895975586351346019320730108843161031066298257294548756480776208598028606710695161138044077616340430634156699488806269199605214019709998991143439711243838213381814686491258499191588236859155440413859590616633768038918130086696045495953136088626088653747026530830104830875550779801535756902888463402649070200330839077327232735531118142278481325277587006043938982784478278223775565011171667456712439506716055234624076829678802291546256699669382393670798333088651691667429362067099474344260832475363312375917597539425073625608412384628832819233876859562866384213271738342530157815191779211471932488510077828221564679611301649302247508804975012616293511958498073160318282538968047668210032182322935646433570099220872447713616794063110214805144943702931776874919098370663516695291687975784705433573687796231891830006172704163293174976797877617403445393887353140360726274210507922648778373302756972026968100995201683590180106515144248124950255640847376777236926429833926230673132505469126580198735679142659707913522217439580560557177831495968668676674103417663767452079949765263772939983272996857389805796849639211965674334080953872943627440545736107199819751983009421726511456989264226692858140680289129522244055626038727378439865851625911774064038364327542401819405910622496113218646246415896277429648311565800818210393392192846170069766291126359634117995882894723943101788979985196937385011306720954512947563527167508682907996412436119780442238498173348510993360796289573562115750991825810880182863806923806256880945788067593183493381778386056290995750620726722636801890259305181478109199387373016543081075541012960791178447200296750833629338160803198602163877231629106336036996893775518117576667789571330291276581200094093267465315625439195302673849874331110025808255019904850389186077963296193500253661831913476505962859719961984522980484781960907902229582827360230058514232040371877645278236118849149812840784387329875069753787745493380248890722611417324798133667920291848347984079291474052994452609577327275327230701041744844254144623195361494837152140100394189659063130887281051533043807323906515415580830813273193844792579623025923752260576150861541328158804067260159405334270594834600311167804103932011004088729435515719688282389633292646361898766326161161533049068648043752568355619034225268709387526646125648615944499890276196088376147946843418122975440671034353451527580946997919315219684334488794938248273440286094722631283094840832599106314080133125672034122576236960584876967246712168691571466568288467196214251619797623944101997918217478500519780176196769060701308210237970523130197381630438559278557448083093271527449397447921212833329323758514539356135086312429416216852832473211229532296073467085689438733956278196721230361653117699297521040543413114674607741781728374804851909514802861314365637923742703743534334197037017326444286467792942118196690245311286346836791872637591090001755516425606480741092402857399830202223239562609018639877729869866773926028392862665530294769599394017824844681328676907484710543557878973302431260630660690703951313589919329247527467540551219582697443370412775025540080396700290756444914091040994583287390405277187319473948817199451837424258422567199779769889827467090021074561032196152582532003428090892280966024118757448230623970741531462351202470304623591198439443239876854841916603790137707397686189786927316226873719742200165721578792259862513290167298041617128319822764539359061626065613691125820032475213856737497523856839954884963158781068053383960873288045769516617423086474453888789567433244209401473695086045323078885012801498276735099551132938984322442992646057036426024304307416494908105534148959934555216289614973111530336231241720871502584852505076881865333317261716023467139787611438014706134679596637559028087594469331520818192730507968162520209832131275091860130371952395667464676726420659864584846718867013876247642591149932456063842793014992661829021265735555367280143033278485609957658395753013558101784865216000403978301747956637507037133391836548475771822874211394619803299703016701587282609820122161030608914410358489872543892345398108983373695775584008915620465307248494097312814623990692099162161332053267724600079980700862035381864123583800918526996695390651734552030583142316230668782694513825468463649501778018468373126845925724361712884996627956006225863000165124146616393332472924361147837317513057031901375389206079758740563765096910883415917400650376274854085095510422605537157035382364829774362791711947650733198505187488582147944624425966898211375590695934108090809928631628626255079541858606436864970517269238374812500033149999148309530045336041508447547926113193657324903868496831158280973752046868864850009286559726259821334828098901701225976578664952719551051235476322879634544797281321489346981284632167387610908577544763433137871632234514449776950560266821321621359140942463126193672007323137992212148891047492388479412154737596080230075222687848034821423528581320010836839150002704352572199810643126018112616169537038665813298411161228991849678100813994906475324541329675596740434028544133092009072933080245118494641317144420145580882234853218265150342171590434808212502997951291429563506939088980790369817995277597855788360418490269684358866738262217362730213984354726228557293561164615978903398561955405243051782344651696057781863104302002681197038572827018377368373890371949304330441575798830976233212871798850097741814124248216218392688599485776649318736904661323754636442109680053863643400206723214894581069613259889278128013798674098575484797933864455995564276201531516484067880412127594750667855324699536852391323821131668571527643329145790699073953966126377146416489112191732925066771633473946062156873352132576803191223577714191639064233527514350922906643674339628634691788164631937319653451460509842435420894541997410806202203689908428793716546713858555405804962750069728523909948965356503636202365861670896873462878683183179620169044334294060555425405858265703536096323519072916532185612788684496108664278129508550665669280461430862595742598434005282570433668495632597626724894979313511172710407968470635988215279654691323091522227710344457541984865420893019625472109243657482786956981591598690448100836240051180033525154547775590673259734627310530051702557587104654243246617499424164565672632068547516182973045226395907599411271181173733843005111172851718162816704649254203190074593793790336422001274902115173537905149200779727421667578334397884526115624885183028603133910623446267232421097884013632721312276381862016459369839908537015479143351774622887117546482484179064293217359844306801034847723704868210750494604395977123192159359709735537606267698675619506432425693738784273267185201272567481395937416886271644827071418924966819608193084837788048953157348343688407569970286782588972536907526815307736523302360403585133610892948770973926400263415010963319902796706867536696245675571682438195163290997985745936852862601187570304666416411326823658651463745853306181107715341526324322356270270709609212240235797770028711070943958609170113417837309120826895827322563947706480360354951324516206374486532700288261901578298546663627203477303353611468181128604430315602476466455164851145037105110575509994123905534560470285521712662493371729807963471973009689629426249208419820527514245113731813187526247978987210279661767180215370397497015312817346908105107639217180218536406376068131030835090199870807672575930783327592734957508538938031169555996125275607628395708628111378309969455253542376987772569583952458952634338554301732616515832252878477059571531204096205026206853331999907394566798625514694573997618722406162992118447775020730149148582806697877693112227529917029420648169613695819739435770519800893202993033443767503443075919059399968307570178731569306170837909943497214964488425706451337943093798187000454734408598419481392331951643973227874957783641129414778291663937607267801051025735583297532342712664652372247634762673151638861960128260616098235831390099588254188921976170577651189621077268800679037110334078268763642926510769321454391758389915408685269154151578970751891496441261329768386047521837975402250895876569931250096267126154066169206401997177595591038313191249646460276277802452366038174138468518152452222421564887136378289552621930074538995846983730797092423218330842116516241764831572908295414847215121174210460154291447920199092867502528909559369799370116572536445453223264588463611990520245830846488619778134637557243506157742090421927796533924138617266365342806066884189312832176305875453399154701601661237814039316550087373235134724030373009381136887780748102502937423715046058514935555335145803069812058661775258733556649978855155117553152270416171340013912078934475969370587561321315140921173407695001289068642708687928137875427201985890153156272467459612181928024331060520881615154219946770825768371297038122055750472927540200650764835897632116270970942475624903957582199021619552661383475978733223310692052888053171368710718056585924596457058999256050896554930505872096852080634324063290706174460726972247611399402987580954859419312053159694943468120349131971533872666798453475559789542373177277817675830020118781756312003994531850913177788826314851785673368066385245971460996211223749990182872750608039334981175794732399822204692238450327181509014577787251519589402612359869983325488425896535307499859397303702262459308778142864181222487032523463427284416662624159228266910522680369231114027635476703610383111050646967063189866602048113476004520460121413683836535495957559470787530945387387042392925570713030394394723602257549887723055208581559204602502641812128589246184064906334576762838347623715087040695937486945659672627481373531465066535105861955582763562132938377434830607090416501717684684892315010453437965732099468740900106207518954469585921566183836843241515649984293986799039057559215475199076619499617910563036932639759100724616474531244367779676807884122347040480343013265433098857025422811223464514678246588675188915020630201819213648833729547907304559890955121507277707671409414134065795495250097949975356103973282068203285503704965030587638267515389393340109890635875366236384080209846650086932015087673071728196284014105259601737589265488609968966338409495445459451877418996440769983162644516727791802211995980420589549583065634945972549007548663848117788714124538775516113282650717586040593899112276741741784587726725380651461410605747933662371847255875297662495786984750366323388209135058442485095586824769777671398776780208221862298801777569289695142007886971364315275256530248119987888789163858888735329989686269571429353122129597809537282748110119438120652040078666557166303321453949282966993169082488221637628589083173743925888144555580440838392649921170917649671494469708874627978862753917042356930743676210495278775561527907161078363479855366035894477497140107748814418957019052232289944555868465671188195623713852473401996757277847358869422206428407628940604546929652620304487886438317437033318621426735594815962107105352385505900625053875095499448241267951935391930595007039709060433635022788140116582707902502364395677756119462408815896824352099685173842193796236882110967743239373377094732068051336962442488825203093785676527661577299331007137669723639756793487392332112612953371916874503007934605687920139620027480981246943324793647897326936144929509424542057436765177822464041256013563670655976879849012948299989721332818714894174882039153724528865757786382155241250979418693224190773546053832502824060578313143920619556719672900428424439622847469954130527478787849080214282029523944391070143883284423411170704934409191261528251329299384639315209526694283242464334637145426451952259977228728609033702871086876701079209643668460836328891597249011926395191001801593335226177853981343563968488479074725687377516944617838474502135775049034565687657950835139530810978693536896249589109212142249596817944857749955487358480881267766493436714010811136497364078226727897282691955352220640079476096274119500905674806049370309188790117054415713621300477210910681403105413158941396129240015765120240829057479528425344145575471403833340749402667192108101533030842390477108475769859796228089424409235757684994846973623325275099439658646166237877608916453387416803523867917402319917578180696093465666738940361622085352940982807816583193536246916611700671406880207888529879231900011922352933718902471244913551613772322128836537227253197768660268807677532962742274679279975144128435728632100751973746062835258176376369644059039207349241638423591731736936502965427902520845071393891682299722313649770573045313606635337063395447465352421732559260920276162150712741077752803774825639452173180398783384735029964399722061128219119276432942535525144996627571873586498784005792241385684095329356060972402434126561353400712639416774584892623192629990394532994978600878012020077267216928001456252690392071441093115569854972205767346630424663980431736170850618976413416548933797552481160346499013429740465298159925006489470635935824937175958489992924119235097312067649784211499335738685328529355947528767197854287599025900609473735770487023867824341918458586062734992571341500228075330301025232926591363071088562725096299776073390333647327009470783112250681682087942303646121812842721291774079475964454962513725528187579034270233457604983225138156837013845206341743623739081612474276197439831285066778200476513515533567451407943776736523218461463390729191162108749618204526122359168668272962723005147203739739968236557804194242763378676205670815239145749646542829766256462638134815947452551283273217211606901869916802713892578517918259114816424570025894101903239733025278006990325761332097996522625313090380763785821594065450500400039462928184959536514207428686271557557236250820785310953245357556846688940929211971370213816305828917624463849881256650751685258116678252771096526068800926478602748748462024031272608739578418560296531727365297371183812077376013219735076420515032539937474378023558302801504648612890499239449185790059549391596437038078385172967932351254058310919193519739855991150319057612213726583319836657377884506573824188747431475741817702106600323970281618588597394846599018341498108294392280500205316770775516213823741085564993732281468350013335138848157397234452613303147347109249285215262247598410090417889833556752077318875385589773912797767466630201055530987700394196665656538811321244671526299457197903970043661317426563597413531987274409047908797787896051022514591558677536804173030433792134877030827003955166862820092145093837323259235032245726165968796526179927300876973501176472532098911179318546536080605996352270862084234834707229538731785263814210996527457519249448428377526240180444059864432150805406962119840502927137425303376126857914469900400953221904671050720361174655345542920017162598896280884550834873796940995734135148247897078234980051469343059541700398988877377458428289415295011126524941440052288978529132580775864506944745843341935587870397298083565602117890345727579409038838867807432752446129482743702757859781185070139952409885487593855662342221184814158359775144400738949607881670698058804821638807672506067845675365474055980566103155733890547477675000049288095229001576083962432482973183000545119902905997667997262419700464935089893812007166619383798188947882890696339540700304005069452498801683918099230708447567497742347844434659053823925928619222258434467900073072517355003012437004768833320097709582222415898236673193166461008118478156959399627861276809774893391108348572322126752294035040373562860350099157919462764938623442131174752648363414083905808002598765911653572173446167400661837385787548859956141462379670852597130229164556760503922617352722058012825856932812105450493880385996437325454310203606843290350455679972978946755408776666865560430945342773132906826504880201704692732940015246724917160930796205870710469895129250697567086036876300732450958578275445936792130937770249857057560433325189861127851113300074083491905116411292909920034560080818189650148212243597440331169975455639414202351435199517612681991037631778222515070072005110659280101660725359015335851341345214754367000333377658496072601791552074755342717080364285438841711421775406716884984094988106830489527908995649577915782465082156150843188503805647349767508146309613784196012539999927865461729475169796378872486383835658598378199241553752327865642930162984727109430395032657144243118936041385017095376940057919394076630592162295124411812915980844027461120664411595198640220484752537073175449156827763990509006022165558171463285872716433275931960654478195245969457047750212655296186671890335830626909129999854346393578125602586874119081512446982000128964987233294792276334962168474582451195030888859575487651224749365565868532068161720215314904021109768813909691243544959877440964333293244699462330662230633093952678632020395830136856468377402983184081918367645521036846357076002674070112137082878275916929416425804960175068144699432880387240882172158446846451845591876041000458710000641347342121922961818920791572664208671747756479282231855539179351821115419280950318884384436520726666568628916379178158251655222149363140928087599711989472719235097326957022580182855785143591617534746280151085141028297865259431634394184491736319659176331854846902739381165128151684013132366241546246177249802324972250245631274791329986757172145641873849299045504156947039229456924192754280165457286535131963282218315432302361593485171410916513812915001386080576153641006160642824222470447776918993947428597458492995075833269044433707992639812928569469640038829155615309187390572222233734206051928062650596301336135939653936538021843828430350460626866308623782927225575943993654042052415143832622600643582404921463220024736224959461476742684674372927847208155193524442653041523173807609094238543990393107876494843661518505345470684306366709901351241315917960267314533285259410717644379347356051107404020407648409135628831874046607440048587266237479037469265532791514832116736978214847140022971607738484816157416591919006290165606032346262001177955331511535044781712144283164899359202563512048698060078687396983141597409846937702257821791203745553241434997673469428057097388054638295465092043387721954071067718492842058710661458217378238961015667249646111668084432277791482381221206966362972956847442491885247607093604993181802523133379645084596027901448075964280054388031676860850758006648221631558279631230094550985347500535864386746630662228438326033099028641183746381883822666370520395784507035658235416503480664653232758493379282765892060615771968532000892043863957712916771151250779556853111570529390760104080542813412491747415646490172483243339598743458944475589760476156322578872689255674594185874466151491323201178377815230417993203995104440768972065563020116609958866270727792853465467251465155842995134807313054462138616489437861358922248853316317797747532737936634076339301183471342190487948462918696328551062308001801335874295667848348710243946044584606571562572593829192624243377347193053918198552266153072308552120474989077546359176737932140356345486497225713513766046968017277759614575627484589860860323193617685650146869546981347132514556588128397404030449858047196640028429289511531712691943764946238251449336014799998883910098469666830226456773344536195121876072120238746166691419094178938575425892223295487741446098972882131200672473555337294373949662674760814196038369971717655287509462468448431538359715885858535346351826472787191373625163307604901709901709001387163421302301020682653356789134817593882805227812173280344139426800402770810727803820551126946769196174542987881165909019943413198906863437534445354917468654670521100197227779498243005519664585106671372635428128220516481156957551882734494119008232503732705398903614201624313828524214526285360637891399082689217894045465879327185609084437527231578550098098829470825583559466783130027898023629880837923140235759718727497311029779695890279065205641001865278036278103766113845545431146996575042205235420104260836328707726982281870888764081674257482834069385336911446756525187266518929104790028010010859870111472892281714458245589367191359530281268780636017294433422911344571120856862740613605836386157080198286907503595207616122921273200164664728012981384480080487054643497141784139607464116110217765137194005564503804770329683362276269738815312212624677794460542787115050124171767841554371982758271630785842441631935438262826118972205611717771062931943310010014188829642954806285036829911739550602632864780570238698136850751742183463802859035775223294310479115159367110630966553586516942006731028719651946522130703385860097498972944493376793724822666841282583911759835926802138183685272464043838058785834688426274431838376905122015127959794779294647622210709084708333234616796801887263065210859274031991995583757317405943584412587766833032805336723041016903503043465599338209843205543006752805432974138755566511657916176306435734143601589808793824695150009677153202430370830094940456474408563234533668549828145713236551849491444494319695031852071379062989774001211716711444460569128377355642679167365596326374909796070226594883565303270372239068852081425051007907216641145779753296403970865464923387665514362330275032921355416066030750911666896539492398029080705998994935353215220762123058808433274222921603662261637452169304879319699088804443998819677115440785391496579074586665630399168340114208612763882822405781057447269574657589501333866006392177827820812396813975037025028818846015333902668565371468129630698258745233047446603352325922166990069291867411978736586758236566775546014003492312193764346200052565028347500542815449747224130110389332560598152454063942439792221508818806959537429390739992959954479140137183240036438267833038200224631145674178214649687287274223217488546047030419428008450628738253540271994309934451503413299660650475232332772475598794932937803071484098934758269870720050056964707612917926553025138341391133252507350508568883702007587297098467656953933880987100571353017833752332905296389338945885541152671384594656410795816739258187423504090691302090538896522585792918625104157351067913863753901060192830034612784039330012634306438881340641094589991820953333656256391629544257295240902584971061172819402806457795282388231219283994437569791166256662877448818696790723307085315045219975104982269470818643569531483055632588308102601166448545163724640228881067317729131031780887610281582233189361610531767997126386404382136062204815428704393857409687871300904219780783296263533507190074697110115141531488841246498278798336585661733505480237420356331143218611736888295542074198066653448142260325107864948081472862618450220472158595482471672982007161732756188422889223334533016957655612676657800797227490540965690406609242393647980922011293511213135802572492752432743837616296791018414836834798514866663959334329935148349125055774251121863949010222981931382879895202843448672375917065189172177590964836778959848671578626825555687177255501396326395561655674703877885270217552172111954208636798220413192449032181458399414628948277536728119746213567411747484893936575266916401352724307103247335334110061549447242011127194362056398389589789966199277991377897572833163081951788927142042285919175512513387712831880769001199713809655748759789261696108113277587708177130544264183360867813642035836984859271033390301659115963538550903312247774063387268107006439128487543420176051213699685282936571159714632652171414843282969080262839532486335291290219699489149992088877647473459110863323898517619229678344623580612907860540084924077633028271602444533677250210520267711276044529220570901348863621282673387035452429819653484098882733497924309744318486585732931977640024976824385486351575254224992121710562075837240347087329644773045925092316195116078989240420499173035701249569001235710724284302788023818189933651309455096404381995268338332814260961725351610637105958324903718435130086387018775087578410136344519823952965887155031193125780390940628345402414724975074356719216372619702877141189815499079149527493921798510452801391757972205881062519803756644891099833827346598854015417967373818142943306201164053706454150908940498019296264430635911224606203197916810704293034939116221792090992102046936025693852699768874901228715146667154031049566887655495804326393526968472421888549240712714033659306086474840124009731398224098562504712001907703965743623696602498632523785659236205281689295907528012531700527947547308480292932075696473688953001717514961949204575160840164716277233747785191659068482642400540042653463983811522628906409577501570166265490235446786102794636457935068001483277732413996572005957189761337051928703687842846423729448381518961813924475781844004663596391203564980699026721221221757956783123079207521938059931463874735906591539359084540406641269818732897910882005923676637524748023569341435520957173097388561725882426564982182622043439265542484533113300220281323729802621670685635112509595547291822330493376980790727523200281566729030556257558641179910550715126152791351501719628824281631532413109263569694087847531477671753184135988291955005736611549595992827435309823502714276584596125497941136697592048118405007080964487712553769208078338449706559786506461242732172922422218992084150915238853221156328901506588648997835070804594386866189113002536329359180324240980979901081970361915775082398167653542231570399007203509295481747827608548777099747561801378093218100803805412528787451510576509910018218257182195784942891741995072398003297440332917850738163829197206491223293653908344695160530744306863363740727492984299651167220262335941422794377687088266181187007854872213644944081716827917841958792041873510959948133710567977240514545206655976174934254402111135402909472545524268517691319193362132082094226939981393027730604645491340460987367191848592084704210333225843484341800154540452559395444751727852471791832955300665478747502538427890165671405891913134627589373512716065028072660076849240478690372065154699029280151231271342122221189674166763352500101779452466188129317592728061038301217399851107175813048367265544299123816928345572701779930688193035735357814372204144082132122967164184589035862911886461582058602562156163956774178783481205408726963169452446525284046252522732617133741962153855746135367808182114346629270389780155167895997464808568297288937124680419865351454448766380074424580144713441885103235745161976836385615947712126275187117832079706731101903998354175939300784628023751215628116858478873526485923505085650152694174208631695822402634184461662063964642487328833549030942557654155335328088949762656299828399039594157538581571910412590663480662728846389256113719785230903177439298303971820597084559634072339707885971502227110216667449665021073019822552896894247177158974803782638595410776236944755090449060318802262103414132792938794981619683267888538501543969029360201622632741672258377729554692213548574989855131514054906941994191456934645961621478322058544024461875193764320262821305973587908102728439253213565021650324566539207023272428403339421996146619836965327223357462388380285934946857340764569702342731455320735079296366780903478542839631485985958804322673169483103541154822884015644150069117917786400585095767431649504156966581230327221884308667964720708102782143541346959543665025779373782890235988702231345943549369113693160128901622893515938029400783539146305508441179561372015024536912498208928909975336720670113654844835053831196627539052078870356914852523348444789639156363248024949096578559903106745077996936886654592038829778417887533032269145884177555139703292875835709274032527102497538284939005517093171050649445243993195325460226764100857475650598901905876509687527939857941278613539984609268041662697974486430750198901040348489289276828337492562116197781264501344135222305727333552918586063452288387299723235409686639918901089372195494626309985770401949900151862560962769552732183374359882911764660725866209698313194584385055783798394974739069572926897657915440876612120004307047481582764145629556685982380290392192729890653167723307848174300362324927944751418365810924872372676784306984612030139472086208389636870338503522686047128676427527727338276718124174849915138334285825918619120200992774202037514224724084685115357532185270030646946533972995105159376073473724364805023995223599186923329450945697396857066551308974053536497262846675491481575317886342643126696341411149699508590474399694841234880405373594525556964903309214639884507066441116103333397565055757805605303056047681494294005885044231475699814306305625682510963779014318687531459547816766200346005882049636281236215799016237705043541895987095900678262713693482733061369537043845679957054124560331347572676414405200443593912749779528601268481809556142793487770076537800964561347025790531922629819601900533190469865046055330175203409634969548702447249041892661773998427874209306797060720882652797184452419332903465280225514070600062214836067207756954928060850085950842270186030512240289349967540990111711766610651599146160132712076443768992304105760637394716115985570077722791791751397684131317176980425236130385801469566018894047152886594220665755803428744290856631455479319663542637246673415645019179166086980999673764537607970414577329921255276894721105176117143958100450234350692074020874025453838545425345768833043250062458225257643695120018770547841551893020938675678305927258738364646149120076626737105220071553492766944485692725577179221362464689168747488247366378906353628945996224880409577997519408447746481501460255671680620398253607419264713062157479448642682202457247382583354913825014213027129541292516360294654220801688679847383542001609164934570235339317525041135399374479745708343761054989362936039169097614243803744476835495587087858140429954008498205351376365889643617088147601519782712209284615895000685071771710464562374049426473281582429027892506739306809052239364537768181419040486418107175722561150073804310828796829408282292224260674245686966059297623045874421616264718370680590247856066807770933463221153828331478984750785404632523209059350672764076204606904926480103802301635884889956538146360960114354101460020424893121789735486123368549338152970984927981475507266298303341563305043624821191401029309799535950742688116489100570973925112840263850138144340389262347378631267408684174072114529504092886173433737363270298521386801291996170510788518217923679830338180030035545761046293598541906241968673035782840854985588908199825031413110003020893074802114792507298549724610386571213168997856754170278928963728731228183237652505874116118382823483727349062426758229631954639227495798061843299018184704835313264791011262146469637960777603920043248394860382682311203996841743675635951223057977870139800968893829112440974463242579339334838534325328652069948635151535726399153016945428523845854289113887807405949324669179659962273412177429520048535177570280355091473026390634964647540156443380454999019393344624577056282353176734578609163974060299369150914738014210810342247968839672311780008432453825284489159662776397657158381675230864420171403984250418964009221713267976317878366727870809706863604961230334965170380331255244730498242399535627311654897547295514697176538247142393062042813536816545890204052438877746692212943954160629094511498421812839970141439276582225293603813522053207289131111849101258503995358949338033983312289100876904108026378134919629667185885536974583321570233992712729101542934789167690555387904073726530667714620892911068747258685355657455891347113533829961419179742234493200206114950791091025927913038264925362635973587556824359129509031402851260364872997410306530612678496349315796322648093467197970932168049464425677910670677757255874149477960932445410926596170269264845789828373205565543726230327546490471345724918556691102227221900343531150918215110090453348922910858274133732907511362255252787990720291759609938097900100973939258972445054266779408492303499123325654873827915613630941387552113671067654478579101194909156158455376152738280776292647954848868899358298213869223860088495742264432821040594462663262956806600519446528064167121247074278549651951195099884439322951089445149907374211672983096600959822209914553219589757378016352604305112553005920398434618983164748675390802011665962992465080233985135984351186288344566770885143255441665505947748434846665991460752828362133874412551008921028484712071343482209811644084530810919496591252419697479173808578946936488856673032956256954961945710740204834030467966599654664138726037087150117493183390692964725345254017954832716562154180107008317191893852842600692476700690651936223508229793591483534501421182740712632892559541431544659547187549072283308086880454120826794128405970380393791379900078098552020839363223730617227923229792322062203887558685359036836525852200808799217648763062088506795643782365095413398236561999198648794849076087059816453028048905582865357561469643654162107513711309019265036586895381808880905615687260763124980105112385014242345734760352900032834390943400024114796918663432342627819786453007898595296058337906762186995023559612247967744662911670876608227170601266819171531852324723174212174485543722730892344022923477357025488203098429839900434438750452701673177862233802291898729854867883356647974953986475117975353236199752769054454731578273368676849834459795259443800164080696812886225631346602373339789046569185515449676265011299564288972190610584317705072351529283937317804905510163293733702717410014811156899982651055869762316801287687328938902232039202249717885798961255855328557339330056765012819363888727955865074261114029637482525514529372592365890858510345202985773795226824609117727657690722133972681757476251411321510427643289292389678137192175821970950721965764799072226135932640419731687290211626210759987924479040468394482913920095149106602131991392059843068054589052752756921836208011198040195376118721970082242645484963427487919083735624256230711238789462758267636784918266406951241760066912842789304179393858657201848497606679853193183608923462031783349669963624510771492502733785607597894654774938297673909433984348091213576553846183319398681831761218689051747799458842900379499424921307913175164982774182068552821247388147188059702958855143337139278094296969379884403559054173826354676238786970281685074666615349462809574912291223066762483330994660527199889341616622123354819718579242227311709035563426301102017495927788637897579438195999642126593066322145961566867472142670839126393304853857960501791182695982152826525374495628073340994559754344885906488402067367903042617615890323905830077042820608453623287006367565037283023836036515869743217791679597534973006793585383936060163935283944511825453004337771391306297358749433735546327839237068062698212012093027601840323486247131161708472263810400076239733472142023752550655778660537612322723803874225540646166542073168341331338903309266434413698328439979823824413121914763471158354308957797164673708318043984803156143341530602637016707442679692467097073149026546220242342098044659839686534373268410942037210983132749966128724758334148697426429422451954093223750142613909602366732657896415598559206412911680797406340115996813324576944548689922766895674634610133233693402637768489789710037211485826753016012533121653875625910840100106603848146149842710944557446167177265754329926483087402870631051291347053512535482694087927919309023803118437665217131986996891295076626002288302332983969771359264535787497700876755968190401164629612786784954449710088942377292735800632592757328599093324746300558848434644585265509528121184663877984213425649856011833465549733348306359881563228488550862519423219143807291981883929083853176145490152206465468235585265572568163154567671892626290756644458951431636186562149687324442397631781437181209977310498956729865916377752203553733207066968665117853102890460712101534878471423253601908684535079094369183345309317368158900279684528969164304736791163016105069623363785913649156840175024540078183031270560369995875907168729865636202962012059362546603320733040635258367696410080938327509502188313147066777350884389093545574379204311926468931730013812064767180043041182232035785094581059690775516409512193324437903588273968486164882135459134740369801493293677063443505054180108875222064832699893481278736398296125134098243366321360752094791153236465603972887054586475644300082892084424324117341240908349666809015470675332082682529205187322255982415173100303817855930637220314592107866824692954475082936984569119773796773836407963052480978768252952812869340972001102461846258320628968370430555180442002947885769004654067927729879183658107638978747429947534605729568935058317666408656284900235186281301818109395909992164379713980841105338375747566312664597715069103764922506246812016309694270380064650827123075529078446655337189848110926180533562027815615470576270026128440555220734004415142456173928471406624657794575954188664357380205257363031899207695684145407117309042525559501894547059475900631345121169343679113942747687714624072295055370828595401115155154639898436070753496778805020556603502143151966394864396630440017177754295615286316569050647601613019293747459899900018941294053622878385834837856750901002404235598469949253129514379272494692583690220699936774930450656918369252514114673083755515739292643042867295479139784714319005985880229262998304024566518711311756374925625198002380698242307870327695610673090110285142416344360246046875714455536408396046763192291712682638643188614913312980973302365904096257870983534844935287410315385221914909312315108606653242605835101538317816550854135591704129400181098743764649638666317390785712762103409051859541726348015468386774244322934128434261675767299227609032716110629859513960162046910125579423908075835752839241035410533484009632187483167304158265087156954941672774049646471281158534531500864152156252645822939057529053048197024764266736291160840858477025542835323535203234568103153622847978093265715453505093323697295099291207303063397469688352156981166356534043700866731449855211165760728047652131113137563405459809991147533015242051041698655785860535103304035079786373934316122225287912982457682285348176496070019080479827167996589501864877828171095753468071054357259742481346450519638067180200745074164734074256445047060136103898422486048763062666151022343693279117713158111152202336023835068689332698297454586992472973015767700968795719675944928798313792284848630156843991769610351363382633298378216560658615517812515166995440720627804948276443402014974274989553632164540511957572036201421108429503201274946402476864231390527723932750756277658090216958785590044256730437634235373981272759070024733319429274965417761977062005969751261694935352708025995921915592202955392913421630086358811325161603348787222369261765642814223490420398071726998333132715020882418392076410258986970113792791381385597547787881380635774625561651294620738725110683783289538243619534851263151669466464744529977593811227868280107542999459118266848454632758581329999752539677647651183681312809449642712346515186146232027913286905105960936838346165159300405709016531210416551499828156389916263703090984995130213998656791920931443240947499624122815515913562866399507053629308985476798338434741791535392958452329513379146858227636385412759080637119242836309039694692016108369357101966496343808814996055177753369067454013075450145322397447782543274616100794104450434317621689373575745020057931689360549945840469456060464111687871470217146563136946267098867198222866859546921352114543139304873661992683736421887660253222312840947758503828009998914691466582221556540371234467406763010883941590521283052575630444978072549673268155139820921376595333833882274960106534440217682853093803195495551978476508554261934511591905365984171040796062252290735420527965603210494028812640463007030628259295622577649857841436976544520493731443949971373059356761154650868604516894682670380067105430603205160845207754771379147607376166698767897929557420258543593820154664348092054884566047234172782253718487975951903549379014223590488279070486855125094237390863583033517741572307965583936402613345319282323169392813479243514536672116244959655073104228716991116706745353284891747085261724376908896359414250943578514139805428117752818907702913688899940664875779031247928855187633849907473050133873456945389134625179275459810261038222470357993253576000373727381376676203904766325664899151329673028141201077408890494843410523814492100400166758721234626055034469399539399797244371890277223003411517354725570289748761102820862157630141173916892452527587725287007117595169903809298821899137267183450293871185864380117226856482230378301291323541224255273096811130828664255161211242253497437328045916438180074223298153946375296508323936898187383241098844835323443582122197377801481915276275268175926628989929860064367912668339212250794882030840523590596829125382499876775182902685822988275286893222765929122121676731125041272163942543432226548856734632264724215087717762579034449495064925655735837438389301243860277504573143715591862023066004071492719068913484314239957339817994195097745375486458381953947881351016289439093715969425238693229207715412412279058360331367006926405715856491586240629516334465519270811739635716275795223617046575615229624615812486597105558195962445485048413427069503156303021198092525964693520665543524500093658639816288049575925742834445358469952783651748982270389896477224694282237386194520777563855941825137298195777506110544933083059109380160775313878235545731126415359952052061806200918998379101796507421715713251754652839243876841195574039771983378443079106002923426635484984981905917523741522446791199991950132864872182512539393252600434876202403508978674789064191894394907907920982752055771065435191322540096188600209080583161852481246339825447017981345491217310343435517518757011248386189604874622742316254151130718489298554125369609182304637746620404932234866962979821764702396442514468042981751299042412150060290253365866078033920117892145262848174913860308388775968814763179793418112194051040131209399480840358133497192403235879107079743918900423628270425747624918200037550921274713817549376328058750369251872055475764545921959197209421468232557364278504687935134285308658512435087807165968274658536556733917386111438798767471385659607238551462826142691160251072460047496583502012194689334946647820400191120876002058043092772747944318357126350422954919020163251504671226050172984085564497869287603505133276139199449722984668345124761176405471236205268187502179533443533141881489539970953964622679263001354709432457861220442877407880954766096784849291566747377139036251510365461069517508833771348721159854296222711874070158167894043829845938311953308995132694437555220784624054163416257594941969169250666069835299906160250619450430038288382978960245263060352766004522237394889051302594116539091066796233285477544861596838894887016780406536671861541060060270761049176941792755487716869205023471877420718771701140137240367207934183707845819782670768990128760002864916572237940622114516969392377357019873466450064505627851105944565200760193579729423503113834351600410073605825397635234557998000702725098646982252284624248313177873122961167002305582017010222197184445522921584666739845134979895203865407280660336918731575369136042757998161797777190182657828336617551437675283223561212085014192780106724367557497719319206441773460061649254750767385378312068429509493814052345797837058028913271421537947964164062803257910294657399385470540647584660462709071249505512222435782797506321994791472512587582680353642307714811209162959874786162672847032373812462798261877808753071167389232353569970908912812015840322792743929776150569146793701633666310911043740427004056000473160857633788122939587125926836067898719263662923002176585750192104620241344387107187139897725179569715021609539619657670337391742387781598008707835925126574945993922407435656396468070545082350383950317881341496623694941092252530389335308713475404476179865784541521737329468527660143079614859227681443515621334505181540566964848681252959467414030066755864342313852250683505121523725385866192763294482802224672147762425550595125412434421046848751700982060553212258848037577070067610862911800214605237650763078130674172450277578901970629933827728514115606186068763910481946691033793211100378003792684850014518006165745253753889977957319521637748096390565263011469883161717616449828208092524064135200429771695115776537141643506631543532367043188646692906967870829791663705887795131751132360821170337707464087073526027638428583470049833716454421612629982346313588212041828682613618842428477691522885278725852522636215488842760566445338513030243569018033483846132095111833526405127253270147332108241748822645497941532757178639901633383493569136123827284105397186590102883629814800714209265057634697062511069391443141860538042907394485216382234891054169707987308603361429265178230304966205630821770496170107550938108486630179997005536394395516452039423521840145806061076502347627585910264688995936341595531140213415259639776306665571157336200470446052750727728310611945763967092627137389446421238647206731842532498930832927825861793519229080615856374395720763301105913744311344241955801389253301408831918856334345441139352914402627167589828909966296417777629856018675536667696287225691155563645944433786978814810294624937610156060633991193110412090259848418675404375138369683798176602275745529019891687155733277864999399490095052602906585051677528232547568703764629917497703170118476231957496983146550733557942266926087415297335689595237755976188534040321745676495995739489802525591613141641208520188157552865585148629584429377261323775658486113734337309371811004975638045285658851471425379343882347112815026807335947822279155021402216194069350625038810055263813931184665535179946662393067406123870178841942005773608469724720405438393630926480603399057354191535296072989405948304333912658126750505721556887482935303606874500619239218228656395267214879949565034435062502386262521861159394565430780128278772913697517345339501900398218410497888195301922384863614932504814339705090166294129569812334198744860856982402931389792149246211597354087031652873260672189115837055892643822226912613687981064904100059376782481205338078289562286836613753472816219518090700977719201256519330050825671914624861365043341177474965268847753849553786257131375760063662052710599023509781950633782552413110178604863187466540229542293231431656576129398917455849280907131494922521929217722685826068875025656822362215019803432398218237698328755868994017515354067464566326063358546402919095747670263927718955946048442558659359931788400392420082060820053536701152006726234309760729693187704222212516741966687694181993875835783332680004429961902043095845873830654236868011878021584616288266307789384812300415531174669449982773276310199739187650034836193980358740466815985881896861426196161913518391417763504463015382672095876381635461348586705241066722000548591269615390118096327869808141891459093958024009660383185852701323282533477833535549431815651210338390312970074536586385034642122273883360603707916973470765347065734108105673625299524323542632194610785345253138804786791523827099603657204711093557445588114300556736836057602661875657747588741203519304474540591513965288227519952099960774895120943296390627225812920766350820738655768297635601223656008720871399977360535445000325561209735558514123280227467638682218633471044944927451963652787541689684897883507654978803702362086527932906003583944524729968115658135094951629266639292471325079438543452851888638482713553599864533007474622864515938216460222164378585660492798523007719283895959946419802319395491803412795690384371096319242078271266300552110671435647581224877015793124034517415984404010450443747025156102089882364880061848019214544262802685521210224695401784179195507167419384328587245255196484729057659208248826424130067153609453442048685557017379412007235928146808967795112309923883968942265569784020212223313019542621537080477241221918638804900798978449625496166540692886922714898563786464641174951199640996983337129473464808107370798781728030427119372759969380727318943155851651322714013160454404555042134761601763689454344991657328569961077664129479092222804277261955627752327326466109530105485314923598867680867907635869266284781070554200166263553333554024945724494767809435526051590390280710754522879681325066659856419201150309558143544499466918451525038159074343569928027715531160912672716578545392528957155687287258814618829613936339115273453960816653229891804241741291279583771839228113725671442491588980349510194866872779694177098369217808532649451814181145811239772422648838397504068258792377451106016439224251051065244767823980836272991145427538748929790459378070685593645806941109817661032372373782387590701512109423959226217295314125700451426421168405990956557022601122238284373076661128837627111028148097316866010995668825286661588348641494121687864613511375572293197613435418826463999623482456329182563476515161993895826428465186413513724400214757601421119820908886928346907308114932324521600772364515979958568180428612388091552244470812484501106003558870744790753749790919637809376382954679180764045021914359589934713653683949169598299030674795607073508857485480107989693160443721195534099354142652094210195343558125808764166365830575595171980096732076419010729043291465533367602981589078803594816441147269653227246520196614704110872347868843275544859137958036579720969525113349749587722037629831348382315740243693739514433289818904829081055016512462615483593456484822165018462626145392461647444221853763869571238692117357767755417120060848472276149419911634656161169185491895644209801873160074736583133114765245717675100138208966748599933384803103080317292235429097988410859893622389508084271617445406835904865272177504988251011535713582964117991723529826367409285825800198730795214506531415277677163517658972219598457208601738396675503813645557197278285491794364084277438568742982711298960597373451300432653011294618590629769683549097077205788216290565306446183891079880098267495666132436216822245762678163725776841927377127840309679050383238152988121769096992271151737578068666061972304086949027794091365557370222842273301435150098548660776168882812964249234275737079514742848927568372958412357584898114269178731018804567982671951672344366647288633802713094750858452503399674285476872018909241880707057272033193040736709233590072828039815355233214718689388264060732420155026120377723757505062729583184900953481845115220725714140676628072423078827421450872567756319003284338850597922331718671581342467047335353233990585073045373715171742428708050638518231678127887974083791587179485702417660478871434462071884217212260044318735118681394584817295578082079748035427518109089483046476809920812239193226824791767853212337145231521961837548705826714792563096723048667641417782461545912995044309089602038153690255572114752720104391825018788616214436841768608395880970050656076117948748851025265710704822945331117468048441764280008639656746733930216829561026305997480487034272302611235713825208369552327187599174304588632876824695132214877968202806365109992559233473478310000102045375414452857912953012958382909652978874180177334675197376605673480224017294149852349778947203471283572086930545148105857660059242554580423427411309206946327120293423636968921315050520785571296474556339700452959864932374798583104466128810390229385109239109184765332301693331429692077172405158720873854215730920191283386652503907063855200815730483666486434301218781156093382517230420058838495319829570887807382711885014289622874155285222050151726463999437232937181080631769542783732801074498980831936333939205140297780606929589291536365004557158299035108867292748647188763160375265497940599260322269634181645577050346913341291697052019183586911401906846474320913006636207619661368730461383071977456881393201250478493918102057796615397396255162079797214697915969942578008444192301439483905884285524756287664389109847299449193417862398898738495181827005785072474137563855947639590857370895439559718256812991139931956937358557045036642579654261871823628862175418829128125630234896727910714832965895640710200055507509612985161245807186743345036289695390355786629827459245104834550457004554172733958306096699166058382090613408675803391676486261826046168427798245746933396451695775854156582566549966306943091558733238160960956507581745143916907604035108298826793103633643272375466184584283206201017334157684018985549483047499363244353349100597132165904525795445916599633190412222798164798712632184064795508205049282385405590480067219847767075822729247524409128493387400680569822962849071095317525718805736019602933958793660582509921844728993420589235177607964516164228361220270210922673523600072467319625406109720367950181550779327181593969480402154479484896312731029748487208281910882579967276388441273213322737356502356062845593911523784406111075024503926759941401170095072927862714926261320634658067424807860928772656727649793432919645357749130890435472682543526471400219752658663855150120607578895631304570694177133308345447963103392887455323012988187230013881795221060135595678788443018079300527534165642084522663962188796269421366057326176720512409818126270906068260648634740418418103298712837603815841229786389954592895564750227170424179009573659771810994454145606648717624451212864171637444877026477145754372138113140370699510523081132865734207078034233291682232133978316788837278395115217623056312123432847434725549779451260408543856238282475954224093335883973133053777193103172788312715730258489538692224928387626577880588461204698838647564149239982625374255222188807818551356107038191301649814277040030550639007289178917178401319586010728280616870227587258715530917164403654169072801059856579598081051118506192686220868006764025354800860144330245491235803713562770933711798923405924600357263792885759191518413463464045136800077199063941842312280121327704746389817933626101951267142676073348407308799650303514749521514779883561125785907452543315950679442253469600976420740419030976615086844961715574394907409214539145601937354766280544937362874493998267888833863853269992990144715315099630251582929694421607672182955391685952838385954547376288015375983121938068781913153138647346497634142507923449587726932821236820469497366370633328057585415184032786406222688838469296522109083788606045769469986966015927912971295563950745105095937991472740989309237411238508104272874480492141257188188096036255013908258686608658547320006281195796238522204398073743020283293566413478594302639715773613964690155864093551937206880364345111926342787276851128557645177783799224400440423828276395376519966948810897788851374104935711103456289393880789115437083002841992786278340467540256507647821821151199144289880510892566838026170203610648909441046778240427410012823530704743256145623307621129106942868718800231432892834213226257942989445271439392236877374145915964659642299335256928711933929351871427857251012175823061935374772965289781781943978274583232250348476919599369431723985929669137655255016682212328545232782783414883735888810987240596780708210370148844172443154711862163954719571430995119903950158418771000580784786607591246133521482953688118548801981860363221675355445002022384377809696917029016050108921437795527971578720553020150466324741992516689493838684080571423955961010517000372140302914022913699582760447292333718010933605420478415890571249827285836808790794993834043844784583055850341142747064893854451128816414341420921340911852374633215952910055432765423699167083720372267562483016614812659304463899888213856215566773612702776042439929879244876572321656402223399515845598808776660815067575680089926226245535301939764686856508746188190571704775982954564301079980922514768485439558568235201186472854063574832634345747971180343236964359458805061183889925011458072336117101946601839214906281439796105578276543793901887039084984939703232702405635830142763711162543401701042604041172454575034926958210832846141578616057662231985585942962057824125703693104781299308492591005478964197894501328031918640484449742234087284423624690099666898465350858105776754890911597029941727233769619762926201580075974079395144630419963701136387505021560229135935754732557820842155945578029525747502271306196497720787449661795071517859707516900305827348156207773539285008180192036240746159115829292653109034281477141473091507270474698745375321922404752561265805899189585932510130551004696387388905518100539142943564472329108773463036513225364914789871073944962906799313349916693179296466348596071863268491344771502582505999316821514748744861580088100328670394431023135084631201054390056896029373918438540256332821880684649229982251883904740355676949316751999937213116749395324658339619755296182700736374724352906369565416492151108669821908292386317665279153716900360556923653194209976578752324862962647401575202117380420698446640957148339267615019550539349721906720504571416325819510971784605015731059186651351590335079477459896247186179965936766455974947849995050732719278428297890520360883538115605475997669400243510986022021366980986125188046134780007177419428550773005327972165436636213080733354003694724691653136372389637167994868687144905020059946774753002417207731075307420236575524722322352963062683269458033648538563151994777563746338595988935954479820096265782877593962921233264954211713227109275252020729981668491352822452729132072516825297826845924616921552243638056084898571843411019694164547738939638043833363649589550640789569289805984980275564420182892880265220526891036204348823647852448858971741170095504145338285793457891535579509192591935483208479512347665253588812505124030215970169709149414762429438699871842333555498954243472874864933325759018740568919563432753074903705154810817000730933987813678451554925910005874137365839098066239550436003447171034823361158758454361570915113296000524852865140632575899565513092165879221469478339019176199794406135859369792313100270008464742086049815050220158947552235786874197026191388412220522504035399997774285348441769097525399180148165776827840397177403618825816114689349583507258173531370278920458992932397137448615738474887094928927452251916101607272790141833667451951733650407416291772574562062336309588059037030298771635935387723536728465572450656161521603788071799337117175647337723621195315541497249535199882690007651280639960925960150671148718732292657540463334736850658812000907327371620403519860125920142730287779710445680124057119850528441042934328201885143557056937471258205415755671183151695572710222688337089907837528254667022217830077419414764528497699695073571080825696575723880147717317885022259517082298621193101823775462597221375131410420165760845613001685945311682215160141643382827593842016255946127527955109162148206114339134837937752810691280264656197806857722375666999836752396831229079134589662976820838455434110858061986213844656267444170424943193498338565096645850623378509038503319684794685901792830716509747212753190438035220180347997069716959853752129279694480630992983230870543597317098191942376418512007897360394195156754130694436560973569011890026297115069937566449933405405923952703899987837387900703818690354774421095911034695165570239657387025480072733004334504673379408743958134263013834429936779135745333172053923417644923073355512582967771286972854286389851638054128684823782333642538077433293319905551127289990092796289317052840055272450469258108167671682500317855679010431878426833080987283499024013161253200698861469838716519193840116709832919752781819223863503293101522580332135691332407087655346604453154067077457689787035588638840444825678895986523459430274915304963036416539769490378280786110445131241072139760976797377216984548560738927508993975106032323675305734083888917300201398046382088243031802609400927471440608888837999532552320657011115698812067154367885083361675667199691792837271053340397859908542157301411964970284210880214188865344767124486166261156056437215964516771773116067949881905216759007649814279233250437091461369347365877309607296582964365243640847193889257541258777526365268320626225422285553832145196137549704406358999609682606191570602630893570050826484421686063156123426028292789757251171947819565863882798419546705087741753065825004424121731303413028018994609297899201898477800823609486120860630925858458435404375689566036400549741115086168217302717200922696303167910507850446653588638534552895197133513273754267976754296890950180103070147109837923261603010705974179416068639178439642900985332097111958428600767748818334628110098203282584076956996822328943038383854449219731669838348374321051516949783753473448571716258978479172616816747539803999959266521073967076523643322970361741042285074550929094213399212461515361196383586428117686536894987224452284874898956349381511888852598182468781686325885235856589791757260346693047055338539281471986053642277362805668143419399142526891232123778777607559721557975872998724627422509633679471851981290078854136061807809147571877370707685933568337860740410219966376320296031961297438263120385005932476146509593552416221808699103898845642708072151892522275075255156464840099890031441252555742882021687527300302234308613964531186492853668376476871111053987391205572919997786408190813824614505722517202831099474506730266334445627322883804458380814750258038369236801773418834452582214805313143566902798226617121887667993376208696918564933164174522618444108082646313544060787735685875525201936625290987548372711853556947199492107013917741484687123169108000744467530000155458941251316489398896796410729632324288114365249322755603317795213759311190412874966700937355717420744505793281851827571406319373534107178440037049177548530428002470356963562716022562492102887854891166248455025730713434000983823649151820936426733885716881490577939278358250877367996591499840344052786450575554472941385854507015582305698589228501969310106500702275764149508561954010595259596642761108751294253244580093208204893923467398050220615895950137595476342547789886318764833859662534692520999221446674381566368409454468530992416740930358241878754720706626609366840502546036784557631028821497706708592189069906877729154866616007569326793170619567116136731866533341206238131787820480791702246080528415065457690481153928535239557536381217103725246536786431413516071914778661053741781733559681365920129944278771574937812078765839237390488809292065948009226712849310906637069770037810735226673127552179672775861190634453194732885596974920888950853852113887506349298805079458741841134225198843294601899909070225384392471947902421686482950472470927402440561810882788575832961106394793528088044781392653995261878860755047651897588463340697062131863111742676598104269657645258257762562619042601614495543039641649996565417501925533319729585816280251228901598292391842791832418343627196756408004337920859288229159638124281101824485841088370443488837360305730018859246282625354554718657625219841848184665047222419499876156127209310132634990226811223905495100524717400151956836203538828323160064317648038316101145949883789444398914705395509770927247731806009821402379560668635832072446377672894292292569788207960418702243851765832462057806045543561216287782047974175040364891240874463987260804383050158448204542095641415545225098735775770827381522417898259277986591480273436000414046203794720046498474480839048397366333850271044571116295567173885692967920517155192489297331055661101244871425759822734962288435911884937751182752116023245530117016755536047777340320214713051415006889445433346962235220808688368683739213743045128964229271382605558429760879423566479545514167903916107891792679695044181545988110941509993115797867949776084875936840880062627683760664010335107436672537414357294511490077083682619441795627742817588769588378427446108113534654058807508395250268942767602039836225959809770513197030291566340006093781931952917153755778558056553305442048569869965832307503980505631719655793408452503555917196763679348122343944609590841033443540689336132000483501786435219651486765334659554316292436346954566284981460263448702474897141458562459009329755493134143803554166938548992899407480060907933591663986656540904620675010748314854465694869854354295096200839173296189060054528818661021037659330775393566486909891437842693523619120605831729105561996430393261036552393717593559237464904963947920855169926346763106450709983638518768303392576512323686155348414361470310901917141008975654203295554592482099168894400914054208908338706067906214804063441338005469040786304570357575783706738671498709990172061379869912697441658125470337190875668049378395143590142387609988650336797369493976044165660034479426662468422571145649488896445330200933944320590666755484238560594107764529594767558638367588129626419950739597394588467761722245078654492323503889806417461363977645293528526795976911847704221249585933560546629714868929804794699116189916254764711303782847396251947568655612655170571780147133479791894197184049750298755353673605940042464656087617510083077819816869431882173922291384738382634768943987255485401475816801951578241446648626891795529829220641723953955358965456296392351777805682106130512180660633216373055259647819803946877298214556309184715494192882206426070790777504356434794244115107744119194447110519748783372082275495230786736595693482095048973435047470310930755360225747917965327109150834879774754644040072856225855594816890403895093431586823158830418472283330953944021790229729706021728139530484155395263470725077615088313149781544488483673434885560429393531533459476534998983420256852375022313511151665197245586821320528170603272403383353668581814319103869195755866131613512594623087808834090416598203998191021468748571430886711216494650206521887299767917625995554529349959907123816523788556909433167077724294114683679082566943950153949039949460103655507710213276655058238269504095395124977120295038080301186219649812830605697356634262131303481757596220531934775630425875671731732884258589083318345821843169244339683286563243109890890408135604903393765630233039229672984267840950454923617560860610758734434060927037582307175970286308227638583562991200777664102363730596937665865038339501282919744898627864428617910521055707843851501056179047155994945855370718302769953099958819678850494600179515208850382230970918916981616754512063609683269218298849656385456612632198360631460505632566836106677781692951336193478233566697789536352957652578284777980028207334607825201294686118691313765498017840523529907438671431376429931685385876867210064835649697937962098117363589664299700774479982984860808384869931543593491150915272838696199931442057106872587253559932294125665390947720370361350982056979807745783141233584406396244296240666552623837135287910741482822813792464871709020553799120068699871463961138488590344248403952486186869875284810083938430139101666106504544423139001941634840655249251073345317076901921523966110935981228342964660831988675773221511387864168070535027116101434047665279597400830850843560887168644927205589441215058047872796569171059245609159974095556343446737930491105475962397585084191697701295778479788762993959153937786837115618263841575163727784987664372505187554212974461168276889659195402112693744903552089631231323028966502953189096037370162184951015749831759251573266354820641939979574997031009861366517768281694271456260773607154874292098533749813957363072538921123383084509509959074850173249959608280505166247600263885482934911826402380825754176401622114803971363036161390878073292845000226482329643560673539934463527384931916578820954660443203789470806049879692492737261124429240204287082053741715846634182419493064719865954369546865797943247457889543122747515556577453905955752607877815292280323856059832052280514791216428517805520537818146059136454902388716114637089548838176784614051237805936069728677657711643712343315393679475046457915384130253184257428346884655492351480211873555050890053285771389315948170057511598603631064968791670263877902260230681013939179699222414693658403197461528922688920619203225325562913099044464799888381665050072880310555817394846859158459777524224586727067486970479130536168507500030996097410371869419884165673610999643973708597301148363816118851960297656879135421526093962401900337407090174227215796157639117760536887941147354257873083850038741532601675720357181654838948186791610215305257402616454040871914274985589182328854271244862195000402761770357272068871533470176435461875596779439048888573818286941553684826729013578904985598783669378360415260989302328560946542889581033296874662556947280772883714270902578885609295475605564686378220947432022532312812130322293594514620296325680280651108688621662277084552985131105712273510564984774212276932160651458094608471423014314169410737824349704471132237976737023329838538876506982974851531094834225478411782413451921542207537512673221079128503227492587910012046885332109551180888620465319243815561974608870649614954334153021125875523536862518011708013389078107119274899576192753917680212583834643469149858621212399726313432623581023991797458173238788005131821809976701725551385591973666359119977822089830791002281813942283910881148481745567247166904112272212091505414153945699019276399783651399468718065372912391469146782716359955179577299505400702086873707996680004318830901144112391474256673991130784917569244736689290979848938617687952725977048508166443966092546381631743368895300625997239686847848637778417620833320738463077693378999109841137132163320325829518319151016823854083261642947943537921060215515319992456195778547578782130483759685316500992880940054543442965488272091265157495038644655221060991469632305437619644470157761817072387168180187831870257796037895000749545869541992068383927811651136352829120450021351579047191599263005728831326836950512758584488641214307822553529018686599185215254404253719424908337436687272606847909001379260668973534250881983055150759495296377275440092247720897246052504928006866681869386025802881532027011707979892790210423122002185862441103419669146623292979412415618228737714741016544090826777725663050450039374843268728373695658916821361163877360946955163663066655926799128048428696340323109908400037286920479097601444775737365980342382129412227112928675829980051225822706634677498420079268287198453414693929896037743496315621776598216105031917739180130316764128534369219572172481061216883201447245737059992018014456727698279134599372505579933147546057330475872797753567919903033428578358471202888318516660128861241474771654085233668818441187789963539765548110598589502448837260022595274310105927112226431211295176469722174712057913196905416332814445983515681621934227995112978550701154573480070055507778141106777513318876443320828178735932662693987838546873302413278800570476368845409230364595461405018881863264621477074503144678172475987395464873948397850142313609766656064229019529858249843733971288039049651153480089111080036455881848314063738371419693641990620557959340718676019683074895114532808466552328586535314271725491285657533354051533209890828323607504727592956813470502340740982813125650016507234022554177581914151036520665021729469336095086113357131213785180971598079146413491257010745627703392940317503867199642499554403834259963341709391267721779207629284463711258215070670826094141411452565698491525908194356999423571306760432014302412712391153798350818707860917203596905916360564204581715219642541406065297995684299734010856170478323792282297351346228474900840772455707199791103337142079989175782706477065911947069760171803681518975039448653364745284488604979607930579889154825304059601969985128383225836241743705664981098646484113625904942807044819941093345684543346636989238088537985487794390519722806828508413499679261943131234368851136010705271044443330237968021730603821350358518319299278209846038077139789829664167604740650100447681728710123062758609993751582869692387094805105273506421087245831056145057490726390207923775506334645359483155000511081156371271255091054366641955882312982962852885709912786493876692597328842242514653287118931988086342818755809345210170892801810533623881952110801111111472537830353097376541860107668586229157633649053603089964438304874557443137343168568340500956067875387208793431345084855847339015521288880920998242112264479731214360093409448352001328186323558766238042609591529202237395342958076167828638861537039490462273241271640600505604864487622127063306011579874943520592097162726489547121341213943922542110809802669958068340728525464443031294200558340476862167316721230862355945101569799374202259259802893371644756778149370563962749812305846300330536385740188660674500334471401647246416910162771245013599796311868418138871387079663993007431558674259389597277647976909656479833093741036935514868987913980798501422731441127958289703233158466883083876184596648669212715737891880414371174543631501526572047842359903225975872473297828974712689853118680878278938824160539770654125499039541379045666202635903855746486658735310072704450754184526493606470617551116956397341122567341608568375861198998816484832729817051563791183223257539406388506864063204122547675349982832714124505382382810630943527859524826094555709958596586738065631635845165599202984208388106690400029801424884035696460899592964997957388726049955995166184163902719036941872909640623212314740610618552669893330909346333900007337419211093158243129955743635470479872127771760623045569133867784447855883401077470188894175143131261801022247870082985779522581417783931015754058100638245605338275421493039474443773279417290086168708124517848854303321618529693520829114865085172316714660948082369037947678375600380405188945604596628395390591222059491795001752541565647090072684028038749338308073148423569005207118909618335349613863495827048537326458701244672333113332448069385750102297709954581893890349700830114635677162172515689232392627724219314430232471367799099193677746838602132989167694501876663296469577185198496944290453427632579173736151842589902510702902921443351259913164382046362778138217411264287424571454200807762273742358502243251218518015890484587198239761381920791900979625287938141667244899673778813375279958408490117715718604310988171408943170769235395267690230045006329289578155799132961864889567673309868668888729935993417827438459822057327471173010213392124104717736824620196856821589904431944292207761832940352886184179044590090481638969165488886247012562138084890086444292248019706329290512174480010383072161935664818115964723196973323822457017098012453932565017652484981948725084842054661034428613356185190387997248109162770199475456643236783180082622270684589428521389179191725329536408924504569171342256403039090880379197742055238956750307827128719400902642866992124468785800450878706577892362286539863821626346943851532814687141398771443287304322208088515669140547413381454663620666582717868357926873397489835663621257559726542392630040041689808012388507025928093377053255783746480876262080854018934881771233494533939804298569453020784755810773671287711275442382778823335751872527121916418738407032896481788213518296691679480617005966427868677162641118703114290921152281324374444392743184996006299554079947550311589571398615965072787297440446707495771561208000752256064296859579931513540209655010494405976279588457915630707343800574344184785050018872877250588344167526274854852530675744756956950356380733359623463842269237565955400719123803415741673967481591274687209805729416166511572506360155436406787204185816779255504931401862057131599573167217159846244585972072201176463457622016538585051656615613898627710509548081105152950109419852199677087159800873008141830623164260788822974773410207471924342256446027685809593627764317918535846439954466193634239467981375183120319246310405763708600484445848060295076439432661481324018034850295515838310024069946038586482996586514029754038419995797231434768841762691396010044195782155547291634213999281273899252318820228901616919586575170167832564646950801491045179986018166499323559777415970019629645198294511188731610164234342726544630892353673028646881444410826231935563755337590688929206453254081812493217454892401800009743028865572174329636200752897547195068611240089396961332045539674179379455939530093568505105091879242993699313046944238010998260882303875506577224954728942711420169682017623290763173130820240696773807689329999812915456600841545586175853086825036552968808861706611400636912558586616196681865983836854775018334798591397571266881918582331293369425464593661769553985451357431334772725807722711412399624763928245548394265483793581845985446682577815637263007576743565250401462337599107035725029961792479235439241823951785552623744341352514498064529053013964525182793344822525814429683410052755869637594950209038922981234940188137610021763511821710846836721426015655807664454335667836062943764451218597595895815222220157148156017686980217822013614641554059772876611204681390951198765229670068446265134033675616067321734725241780492040562702045459785443494730135140801668084819306376972302611330525161121291897183149379958403041207097531913393747650649817589734069472265654972444720386942152238034921194082866825419765683709420674193008027363461017075809106510661458741559032427440356334989902702595607717300657064885118849056398561580288314491563931392686653148548915205819416802388728179689298940997429803273902341024008839915853608912411716811922959737068758555504549475159987742609001616568998193722008282858825648330042719851009009366298598299450689110899496995860108333592445000809803135675388480763609145835476419176345847156798670172728085967874957802729615045944111148333529241303816331219440049806310828799284581085865508018835559445869977777752735842743895496249393191855887217987819503437905996937225876540314211384962890425552182741234516018972207314561292085299926962123641648325526869786259448534018246983322329594470733892624319898989713441008395326140407267473929861315383312027942475697258125028062408333957076300046808815566924927519864945688772426492527514942712804832113996747879851038293186746701717966387462902534995998847090963137938619143347760787887150337550432252859642714193669610208417094334338742730689834872922384386152720051644207498615317854727862268374463420819225969404316922875644188958295800481836623731173010756411824829278422160573105784505837846781170477214457896355650880406743942717036112397878474296200352409788938270168380461992021583356648974793895212232119437781296835960153150359325303586459727276803107211215793319938719398263050635573540346422837140443363722026621314327655810479289356144058027447762143531738456057341915779489249368679176728361042190887606713565471491516527038864495457478008222168680238794027692498408392165109288499841625877751638871132168471958807809935140476129908079141073687089911680116880991444250176250754966856495498526069119851167620841571042094051172231940524286435306475789178097234813839908867306902317305421905621552206062689567956223342849078180275364226008908557791610196099711562408502307552702165651760403764429200490971767195995794387821195936128854624247180522864691897486550019962684802281772595417292473377872455939873896290159569718838695028938376875141392535112699784806422908950634662907069725870790565829914818796226309064858585225152194290897549183509571121475244307971172266189198030121528422394031852984498573855938972625512594780184246903902498795806871921158924528669060793993440706301088102330670636824153812150232416318683543971771015197507867760855623547147272443508476762495597062215164634153733544776757140103087230037850063253848174504591172740121032438348357263140627894310147957702328887413192675247757288371073323077447700965463255115861027562719514934894126878442150296482238388045022915870352346968478026418589648251203347702854183781581979410701676595945482310061881592382110151687472703147840189750812426454306338715145568083358566317500758833544528002131102421134607948348409000358186811223011007181087639327797810774900757717306927041611493593779246073615547087539186018153228915738292502858238240583504992359912637130363111129055200444770482269016362429325737777247987265205314480266619258403461624847699174124739752181466316012937006398754908872041880422630259982744828267786058327411492286567730002974358790812828950804607372776709811583482492400228058656982582630052495903771190407115999777531434732347928237554210833156427549517524651471688685545973271309365397426459699763781305747692416766563556074275032571126321823498695830765875374519972152616910313186766618159320291630078712635567526980388919728827737752100114294219778565960004552917840039506543618778249307684862172814461439994066908953529101963182103387370226266172576133829887132508269515851238103800721131720614189390804276281634878095107036545658563216703904513039377186067218007745546507133964080284875056470751650567068360416779146272368393071834002797110722110459186946116456346292839442733935537870364177289747788623671084237515087033469034259696065366261730041072911870467619046492168016517671291975919357923706047551796232468224063122163994250967874025759852588382227163548351036612099810197220682716193618314815875708758551976827810589844648383260451763678681651083715217657770989580206705464035651945332839003798496193267351007736349188181429846417696681928513646487824252901572697751758493470806334429037985179266028849132106819971348987374196938026873946435734890635790989953782061843759796684435326564497093226978807813115162128904654819619997561363726659057992011334871146444962113492801218621954665135029630241585712780194747568139496925792933828949853701171478358512223025417462448242230900134273310776981111230373500194532881825696106199365171081612751744254567487137395517854877205362838635139917133920412738243458744646451317303958864979194625586827087329567353248271296503765125305024870907427010780694756837815124475726081838146886958581202528812922653713782128427998187336863677749108657954405022014851026196406163323835395019034700721369656779506281258726338526788817523894633069782469770865760029954992407502482255903475218364238008022518826538023602115723410943776107741935636080308453321888954460826690139638341207229783893524394263732674464321777328904781320393007574817912006964385573302864563970613203795366702805042805425709168845244664903374506327292842990951509687690428747747683043966563636316338639973820050608719004721492883405997916573479611177327210820326766342821668352625701503297373858011509206414280265827952104426732123113718816822781258438872460507445007109004274356834162177550325257957719318119275347948500876885053653544896186461297991657747421480638413552234006501495179792537088038450277636122067154696344201582020970158645691615520088808862783068458601362940605205075946677020773295736225748019545296924243924725487983732099521310852372145363595595977539020154755324111705347849319230831237670077912272658818165704431075354748879019320248872796075965689137716020337181449379207199462464415795854291460673667608427555123029644129863886503698255743042533161551138465698898815454304027723499216986794065700196342554993971578075537187044999079202581885036642597619066167655988948851836667278150841150147381005986496639298571032756524725819299482757423842821790266751605426839049668911719814162685199183889763264019575937511057724308494364251249265136278540264180689457942161066984427028933820730449015398889776041706179349025719981249635041866243346333673439569360867660671542928108398968460041198622003105123969619746394795906130649356201391925980135879337879108740812390470384899298134956063923646784016333344618791641734674254528611215837509584426295602313194362284757258444658398351710554990870176601150551573115153915061361513659496496229628122062946346450131557226951609185338959998442206644990886797591538486709353475641293543736382151279015024099198862293087232087842119555100115216176154123350383658391729708706209853177022600305951571286462865110210853807807529790647514491783291692528367762970015163423021957415921762223219247666808708230192966283461614886032746091854835810324583406606693525880789864394215586605282953252833179267415451359767773670215082612151069783517087044251725402446199074315043058582075631784952948668073972592833904224911562160196842612592489409081786009206698540897569705224860437501505907763852104474025007808722555319170911067334942293735661302552861191274128412982589727343990299227850179031948679491784148049625001549471579328098412857877119128756807443247732940089586478820313157442932946826197008186000099457482538211720603631328913311033867399547752316936327710950440807363567702094527004373068350273311411723815655980928788924601572376977211652334127277315729185038037385876945885712779002052734278309826143496653700270028896495647372761913628470922138135040473085190139068113481278856440418679518861815060443832940555522984760369440937588720540344457218609487052669924432732727686205659683898157965801982103912206754053374045461242184559632490141584432963757406372423367052163979680131066878567155890528433324833691194344501723650523131881876177231042182186951809653261394412773453257891531908052325402361541785641633981919953465250866843428485516336132680762474710103654334549246710476652017885743869052906515449867342878582546011251537555861290062435358014275170577817151898904696930907677969760366890058533695835907771554745131302302150024966063350430857034000211237943734833091337375511482919021947188657325492376453460522440248535178848370790539125641652260451214696423484724910237130623179656324840766392188497330966210838587503995047631600027697868312532899036268006169619333480171061167614242552504996400680421044301434859013468681268953322871431926087151812472331938523697831265468729970885956724235594705513851776181319427983334730884654112783038945015652192844083182345431198675963927000763238833290422090576160025749755803581720115622268128575342955354606840013756115055600943317953161378308150168590928619389678215306602151283036280651880952566817779020702879621923548441712433644301477892052415692785437724251484906710664062342819744820394210066437616478574715626110757797187723343613202627704534734554195940275635638671714030379568487602327988482011035669473451690911523416414375389049038028729024098419072316257131216376935009840969881119048327335069459215759580099483770006404931777992990895002167921308481329414490811079239439173506526239608116968126372196136904412454292314095390682717242619496080384801669208674899210915489826707001054360659990848387533824872048428423145235920162484532854119649326186966890852418212990828105581403826382360726861784148123969047302990759413759305067230465670572573333860811121248121277115192510480501646669513203974991477632975032352124936275780939719151835132215625851775345515938097364617466128850592642440021297299239337476645475029365072220442757396934939121610423812898637519725152863605811827542059967975645192668901520420582929220291958062522820067850919953730771751267986315381417737869597494458877075631995013683486160878654301441118453366951977845310576803080070898167368237755640125238214461905482488739760692718263674594715137354979185935854442906934413142539125130671045631200617385092932317342354228851323971506025534882103440489082833717953608604897377688403672159328178781823050062045041662499659588283977243890360820364637991213076434889553328327916890002430622984649572539609468000123537881034010477205664458597388905304079348327391398738161291136422958116191462047831172567127765696959495191443882759092281447216583498520095347869756039791244938715652016078617689025863539658294581234794332312504619496249811489020833510520624171083547496802745580138183989515757955425555756579203476640648902897317500196219622962627485127171528146580839296873998799200629764699722831831477475239740335595566317689959942397738469451545926291774832996563886934779932309099270715434318282434926803147949295168861288814964471631928444243618776174440764060652433838922192975615094648190244200212378549359218678030570652159600543146686120478844640863557055025721100640832858564775176941905898451383629316358184895894096101440466133841182361766647888993984119434079158061011112903116434460703710016018561269552408982306739467072763855018654763342582457559870536680716508376842648173704483999868435461524381095663739935377985249831770837555130468352553695248649288398862874907359764960967405996846344673341708521696252784645527060659861846197727187684116881515179024950187347350745998000690914472578235944826882958965790925194354083332649308149034685482988034522261963451882558924120701861862498191576580917314073540506649115141929367886997562600803123251458556053778431778828496864184070205567172079860537333212550852303887211403732375074241195556952141025519420662667443079909153313937867288846985823268866707493525388877523690260257823634907228202356849299111745747630112515576634451065804457971841779629707417620896579702611467220704828532940930268390237492043861336565384671331765319424804415894659161960557281974738153026326366106323949138268467768877200815327061585970209474687676857470458439190147387555090235727599545511992181646843597114306288392548020403888718527829651058760643434174739030364062057822426637469475970983924029341695821623629941976982912901294956688054058674176428634899542658354524744024903765010414226321300865016554518597769284545840261942425188748558107447070581138080729428262647369403821761291240295886589243886658872275229835904516856928109270367464687423551509189958283105616322909523804618740749289186740280109512338737890408973470378531981964757923470427018346895891381779936949525382577531840676001797830086849520069226205178376163906444483003157685728504778401197097755525842110154520342085451291840922842868604643197463120440184593529456741140503093609906324551924434324005603251535638325649670916437931633858293183889484436973961255439037273176716793790402168331602937891921196654024628693531009772620976614090850497090319480049823912589924272623354920194819443489026370147869607470055578137049855802036892484990335514390585029788029744167574333317534104978792122814162734959436506833394440449371455251989624584036820700184897079024645194824029834929898760008598868469934598581811073456471784659017662960242269426410469712419738634720436102163242418349074709487095368655631381769916623616511995915174134722528304041858153508096665254484672159109603780041363709852242300711190812366248459962753711453980536409157392887711112304094901826140860587565539861444453267094625426298022522916945563642785028661073201045924000774404153794666065914216670564735435097515550742495706228691638341164214234626601187257952242675205996941567323643950069075544281513312109337253949651922054561739952879244197051504377245418079588752090749423038953062318044483743957168818626222836701454232569926718404127563677270706839213336511426950240927252893618470866740499164734452081146285704087887840383526163788146655554909697630199047098734862977985671745632542365277317401429402053936832006296084867336038892622101379256457849425204532602157510459518328087909387418690694897824340628960726539404933293250149538800426922850362209619176041855366735261998977612931764715920167560277079723253921289876533172487075851277836700385272063035862606259929805783209274625647099120570923314291526149375912247098607053394418364670306329801501715127761963417405695776837787556014380974630536201716932393270226610544999819208479488509776550436399139199083584283855168288709640740113360898331783585195163479220534145409549653629964118310091323858403490096700360927480747153681730945633756174415635624655627926669219186037284672889927075969260323653534773760475384040367263897380861345508630586962328202606107085228076817612363930133041435163000453065339168816223314798152053622748507182074164563965843503438660702939590283540034108123060432550931790011461170710312217637959585007784414239210536862584845298592174362924649330546032180913183857631927890439822914539522906522990513324041168443283614039564023362088111435651368443197657322725768774824306282115898221475497858311631361947353311040698028492605968169788655007524155612741865451136806850203866764518391624155140999122394647991077999004190186574386664096508467857772613856292780249011065255451452519002621306821322972285797288379737279962205276811900958060050843180088151636106634448360417389707433690870316271002667317652096387619364496898253880512744382848654832866871427321655534138320168318213790515920539537870444158604335874901405748842873028797643002819702672122862741605919604776754934500049569283247598000927338431321167072629865439141572495328163679160890967040599300338503516447827829995982246517425564752104086371731193000933845245096639541913237856308254316524353277405198604115359172909219549109493951725343399664087437965302053714988470657154176195973397784451733317031724708733535762070797211080147330033434182086470797215886586291727064465455337628753511331278510321304594901403775482994287011386548563389050892691821051623733578751560805050804659220884626736731396441531065952810476766780988079369471837974715315636763080878913764885499430600926007720687151863119737141241323154441595252234238717084975003309418106709173968902806660787836351752377887861700660469389872025524014140050716130928379911729599723670323966630123854019688690760067083600918975098440803739986480655977804526765192479031641947555643067664163761073370614315444468869583204884298035380842355031964600256610351178459046238090832800726463570574008510612339745421517849877266600817405264932965696635208207431820415209500156276155351076616534319699149618602107338357296294802193805756730065234635476545544015481348185272632654605359094141476051313518160124597364976569080596239231388609992717453422021758378430198721481921528374887181322439675732532202038467919191956621189519611465742216358369692317620355587157817817943156350415794258966011157745295106668439988888910210878227461756030624370767595304986489830990015126389991243911830071656418088806475753949773572216953590416173174342683261573214740722032870086324505159080642537338919045342374070057537147147308157354419079819359976620892000263830539030361894009830797366795414211842350676972989630654758819820864955932771590121358578270096569703718695653638836755621127931203051346326270227398555007560173100544001411326049766704539689611414620400457358196314877777554719828196368963360391801364017044613895723845891404085704716056093694148913309791321427277427157322511359914564672871871198220220651544179702702395596633178014650937520384483707767015095106803166100266219755047570112519215455706664261326531319919623982531515427721737630064356600625066439856522445994915119549364006453396090883417756331093134885754215481015539663132398459899074041334231454070188321573457260107146176059737646331285186886777944014757108511837919794510226775375983279879890803095360118511635344201090556447910780700923835870245007242488281142618412163513095757946282583628483645637805560015515022582669018994540581432816460743903457137626485957300880026316767711760749225407950827010611264459644953899915660577071522977773815038539797581616911241666785425362346156850956868433593596601921692326081411003223643796955054827321053550593886961625603229149470758865404414732303343011777752187078465993438688684451002528197549215736722715109545460788900007588738182055840148708114397914344482575893902927368236637505046612996823368252189256163375864077511569683764333375968423653790747514188628109445611631665900410869830178117131596769948256087448040853675336495741350121323572172473050764379399168552230792208579372989360879954475457952150340854798410094897745692495142515259426173801120345658943761299971286913769433894849596399075493627670364314004536369054082321348652920245647485612651298267878795828343070784340930156285484019247539105809245538454606217159721990596139430465153803687033647738055337670602384960501696153144903603042200224080668166180849629147946820685668980527563625435472119773671395955751182590801729818161922235568737585603923282207150081736311997240333297846848324401086857386448877449631542600314478470564933525344178511838589166408917873090530540008457538522680177062593836626768725680644787623535566847589660197474344339925019913600084763191796101470720216853870025037778259888135601992844011586597231346823798770463290941479573007757259064609504705325907077953932392749440222971820615032902939943437255477099813825522019526424060140890194356049750115845955553664058465947753284780707772981330046159500660030427545527518719062206971225603000280236048624586994484931333182990038411086161767838059037456775599740474787928329876561442331631830769500424887568258739059455605753839125544082000875055461081079005318829267071346232663557733238391240192564889376868774803578548978143406296156450101357447776117447929829804510611708066167795998355230102064323692641387700862408189994162347475401108170560120167982718666865327148605547391667261178777417718196728840830658270752561752359163379212178952365131090240497549978299664855295542994410884798036456505998464010073577719509290029112769592953397125837974713674824112679461612093240334808335284645504210970198514040091475525075034144129019919907599775109817018860722606612920474078846699929401104924619835001278654272557750813530115301219186987367717546770999798592538165429174054058361354647401017433698153668893490466353874656198450681406240952708788623834273092835317063721457033184301327360226721509866031266916336475596110031114697987364708176939105290450945012860859097965129295956479459683458543879044210008469954269259929651097524347621937789204326734481645047115267544082479047735322714674763844577920200643921494402797033619427060115997799058411978551908028315189175894107477528510464159353663376480159847013109929153337920539183762937896761770994271233644438556277983755715154772876508294631899023954158836040001227403014069705339043684233866421046150588897021774393833307363790876035007475006695646827836829269892329219446934306245015181837261936159800186784613796667250453889851709874970750631002100343370332045946686812434396311371554167508330448698190663677960512855274558580725281251934320867285449962739442038146615605537971613737458642198895438903813781846070891261051298998251210602123514320749150214494689506321553356333731815912434888843103763784228919587748177022600245011524132706257835312149067506765801927681206258874073851745518050422472414063018571467088799959600893252741215895018019757669723907218885294872639176876552663255123075585649078350677172726914535646341475938099616121612475564505665409248561051871459265988662001973357877067269549014373404055120532279743290745737097293786106556425338872467173320404352943547154147057600878050880676994496450814425078888201358839735102764368410768158588856672233577049719143011154194844003580763054158883541154633296656578601250086497485426800949491893743756336433243139121893788169179690387265171365209249794641010475742365211350458919839065052711916098592180347900329437910465902432947749354924175757785027081784726178558146537182747344380891071511697041936120315217772442603763230677101500424918688859079237326748270990074175221597113456378402585627257380172678599508566071748367598466700666225574494987987906544197213266911062535834316485637909711112400443594474558661071582245882006912039163124672960279734078396042839904270267621999971693335438324181446255663183340412803502521454441414019486147352092374611613607921294727364488295413871760674939800736356939307963491390295478780902998359291087340122487240887645840834473059847866547442263585328727688392230312257726531847607685615274999044942800979271287898521380438411426713065787197507924231658580959821279424125867988615775031291080719178628877317493594404972197746502656706761963858146211753304710482657316896166120610564361078598862627099496762176632919107640226234363101868043470113469291276217392872303530245349897185757161111577303167755130562374063462061693714049242723581113347233101888830752631662090667816269370879058522147265858853236868043993260092205677251412030649875711708974417206807489579974278998319009475212452474028915167671321344941647146082241093305566464823966173562663554093292107713091718511995138991596190022024005916873904766703605275390859082008968380689734455074134746994285869483933560769770679055148947569824119941373914464409221401271476629088729402791516498296184924156871015166168954992703849822694909878434968463673012513189219511430772373280704564003226122825115182389756374896942361540824435707588932159620810485631227306744403695727277402088743087922823747252543410875431387378832174609990827960318203510264890644866234976957855137429702798563890012344650084733289040122061411177637604170433863305165632061556882848356807908616724349917177722508431727530173410634842154656587248100936171742913355066522440453737508366027432091881138396028870865843979779334672166130415732470727935236936695358175229227197246145884790584337330925393427525325062823347411811356500314509695651787858124245498259294320681633870532425112771764368712168588046354848438015174069599877735087480133024554419303534901641514556649776952531843419176559185906389020043040901421975176079879507809983878312174007060431076834852167434564356727117068923571815185272042188199023026404059132644197451861362324792057829250489727166922309018762932553090667143163287363883820658507485412044970517775079259339442455016766516403877875983625099982255022229279410196007320603037749874879075578333026569121808485183561879875752348089137251989537860451112908582698758519223799142708133733604792534332654120723686513771764540440477970059811422904046482392878941273285096188212358017855474288743945772538421940672746045482673152760962425285494649542981859290070439532185230673549660129346059352900643703841985860645227474482033113444430927113467100673557684756520038069085517196901646208331634343624822957204725959659993973719211814872667303267103863018427148582349900382996104665751616065235675905898159019946782306644013086394133662192240168578841698845755779261951021645101666047483988553021632043543277823433646182452402827752799451357159085354717019362693938952190983318540620573239152630985986367950069517906215976816691758037358008328635907611371850328086344580302751903814481066890811212326335873960844818904740037561313219960388183033925936702037077708393359602972102704710685835025486460688701297394925677285945863785499332944622042649225740888522426171861472661354177540312533869841177701011675614366984226894155812549114206768284404646250493639948355816463317877120535804481613029993952269400272686367872043678078178115095392504745434802890364675073426684624447191510192006099510195802117003432097848903908729593128772407336579249072983500693556786816856553528038276424518161125009206605272510756574360255303596396711206594470049858580197219002355781845223632129016622099989629360414284446641163393301613083935006771976440978094220844542608772862346462625349591696285766166428208067631536704809903539479862225960201119537233344930366491354786578582265980716420667498063409029891222789977301004106715746186907649250066121177558697894362255363266975766861094139012712677305820555239884313870307494946726452854402799871073652982290669426040427497849385567478244250108713042555978238698911827213211290440386444495459172627248201733964109533386426044714239985299774658023287793429260270880072203343186368983037819453510255837408046390232545361764510776347162368416706347847090998261007203546569772031618411627052610653014143305829183529871533722103260142863878418191834578945283076975657604931841715084340753045785499173574652524837060401299354079020480602457459667131929506250068684990209875949640726344578495508738184452444643362831286464487130320592907571428265892032061958569443252572454697341471669066848689898780755392442184277960294796960930252750121522029152041302618523676686502180342539808204417672143447239173473894638856396535156710518297724280285754315314266765180519620515171797383038370995713395916981210399647205789343839617941616510069440372111558631477627613955979919752973173156593831781548787924833677975935329661502750728317174988170469956088308460625025247844392227837630028891446846934687562657915747168788713941126719128661801094206291252480423386176164547168287373298951687769703767825954551548985147375897857946521398912644615325025368667935087064142535139145618014022411843403635853612612085332895288744153377086942422574617787737531127828288018710933300320346597583752023601776040430578816905191925723468881434805989557109735510278704425843356503889775072586933926983085216442562919067659005602677044343491389785745507970748920070094794073126461668350609083078171846867562498146142146553680230942857831464809196839371645179169971304323835015799002913565904364555527525025440790926401392430278226667269403133562553777632861472195602615078156221952676848184733133629922640522057097182826796180952244147925187100341064768795778609496101450136085644204691373895469005802933614226032237336858764283870791442234386904700705137019709310572668681111167971635374615686523314046785174984235022125656439800652274555258111480971324474754397306432299801789327307073299429657996564087857645627270699500456809477079268984050744827499344448894195400385519342921198625810307726730647177158263685854948269298819717281733735337645663744552356366005767746591054402000805114796373533492400595900468260210111101810045742447669633677445111670016054762565302745471256551790958054725391968706856894834893597122259811497631220382282138062068317049192761867428429810927773300038567010493795652561983342412820028472410728079267093267159196087847522010924397177575300955907789066788498768016676291237540623011393613417483491279344041021687063483899501605825632125911179742239642152094866428698751096624262406700801351768304189219598949096730547985070544894794168661278713531601403201364727915972290479807857602060792978690948382150210738754263716234689026729146899460886333044532082183111785011636301092393952164028958055733693048631197345615829716903651283549698687859559176512935344067977295410103341680242697092703105125009987105560651672920088063071366433011891326449993011686735824501072493140104547096471527885341305090944081694541076350155778405790697201759064207797720025388048695876456236699423048371165880310224250299075031900662121075003444475087663306428095659662719308946443656860752818410029570604524771791735149732851153995008192150168525649484004478234343668540731252157976694280949616786179026054361192478625041694957830364248890085302888517364293943788771181119820536105749178359447290773278424430158880796322988178932654785438136195508726555888018841851328696119906183494293386183340190474120042235364953269868739227364053268598124966395509177606392742349383868216407367595403859167441731859951730161231575226085983820191911420348656436354262476901106489829686020114901872305718594521548739513636481232500917502380227944730362460900486932493297035362707605737892938014835596081877405555411043375277586226021652481367634533386149167704457896874744435639846120262228372476886063710123576240391716278805182353527151435840013778661292205287809292659530768917390875093836317475117756547682484364927632798229144619841884174113272796760569927251806343913187560833235485077725439435720967425682037924165043276508965849958030890650996194070123959294551438130938748539662931463833771825568551833144026269971019593369709087359216584726819256021497678346884157059393346414844732134752938206260142148412165275707443634411232103328402551597491501750505461725919222227081517164266475917169421506157524472594187651479556214389066089689150786141868639335247115842662241698783488134578110659920992194656138255074294380796061573416389301587222271253369480593042340597733146468251356823530054358743375624943851937576107896850971730142075204493113050798480388538195697999213842606496677853618529378586950233449818963026497530659511466092020919373596842418154247705216149083544328858264180080134995108643584753314081346710388123985630247275982729755259931951438521420047712785772959405575578713519899255781319772417660739333029760530259680709844605929104369936275980532821231469767165624506586493508789183620993744707999210866439135642947881580542075176269171543921207656865069812570597538399737524954435938923386572780147316315520174093689224292047027809505046654434084808955069643412797343385376218604367212774303297653102440480999130160924315542203053537488708796729289911648040398472622618854498101725304114196891359463250246090742720316452480799272400970011104682730264401642037877080841071096179060478592504225155018735177308235025561152392543134306351322145432156131012884298615482458756552847689132294400812766140096542276121654347144651614856331032648409418134243654966262813847394360878028790157897320047633411301110305836104892799610810105853921388947896416242391546524356250442384708895691020559007933124047017396807334376140066457326503570404408787005661695531727267930546259480328025381173786139659013533133162797089096585883502817961301801868027644895344278659688128225352034541554270186077403765121658494117591420513121926670214209042643268563210729176141539847740907921129254734437093315401744110006234912342291524753749571217642928730094797986560542562557525226432730019275114097448982483202398727894068212822300837003911331496718640662420530619230200370037492189053190787160152985751282423730866181881583233937594739737983015318798758649374095393700965851669199629228639061513788398264623712241417500399999876537747301068856157761466040655261721004149290951468915891855693441759849667761734362251815794975870435790413544058007683536403367446071269961295043643598958520043502576319120044620510317291699279870344617146164322492801189993988230236722107285945342454659810469130059112164566138545381410685680984188508343948703938740720156407197165473815147804932625595695058354512166428184418344695008266328397125987100270317282892990473428339394803227090278937199227658949659700468606566868530048445933009349342608925929038413341212629283935100602504690682687227706828667933899334090192932945611957387747689527036679018471687299803692354626150034613646608083923447387264159816538806966465759597283402429497837067042739609825980992340199936974172015906348552168316450737445955853665815695392898677677919310234714599592935994897086709260882829557482819783730383471541959785188161375685070737338738851004001311623330492665583877669441090867094375240301316494799073440103781986613996832710172116691065255088085905187958504661618595109409805967536659929476537127489807486531904104982659456465017691298800254501873178424260299701841304861275473004308699350537303534985858488459546849500962303809825703355271451810585987642545270690542035796625225578582814778213870504025883903876947308574146321064849487592375299889523662276347814129174950880882376632037160049819442839567191154507773124453038264121069222004482021143970643313963553050606493610586950887711931731088846605660273284600700394071911708451828796087128323663380142082694890086379258143815628895715305962336509643649613327828579842799335950707013390199691660565855530907661876920102163690090350800037535433434114968417026482376688415822032485799249457653820991733200224222215118840354682922846575105259532514170303387556281957070981875312461425637542009037010660876641064497272151216671174375382636809754856999132803147508028583529396373454143719346776457704975637516910010597248206712098232820706628540015637503460437950602986542351476075721264526424198276824493841184007727739263593817429296607648470428069171025871898355394831773584224490726639375175276640309145966732574311506428128499499830366001916301895273662841274666331889996180182405916524882856820819140585216213191182912301766666945298337303982210304783871724186979779367862418157933197469373074280433840158090869726545506255191223745128255963950561280049512379371707947763528967800922575697924047227510194685393792378139075186758227690791512099931930039829351887310960792927628479960360876527433830809256662659136337483141814637891837182631349365104822699261476304396340154244355000276285368629595395015664364287579223741508215448606557722338303957825790344656808888003311717389056341271423038552537594332553997232807725891696955410596073215910011531613581139322899437074862164811786604371172952737183819827954267906906500492595903057503214460161473479773934614111256730593255451586642815146918857053636952012217341183781552079253761169714050401268135229709974664234200277283449319871796514875946023351982135273083478736757728454963066125523523009948982637563998222965392486670752485344586157109054177515845225541024339805231284245671002801093661634756374947920051830134947579772664711609621579411254995871039560689750732349173933694947532544945296031159355176519005220705288226944461566228472761881419116411864712722409318415255127111308546748658000086691870239219621677030808945615763553223661217601544251451286387457765887052236947219921293151269312142333706595726888524285988866357926478262067252764432497080761094822376082132918962466994367405610037336190040455626289947496396160623378378834677369219186300761661989932624577342095408600684329885736700785825549066673195028770850230999823742095939277213667962002421585024422242227988212229598902902999461205663709035998058967676003770140537584237138285855445153239914571003494917369680793951412834150912430343139838632131891441224333552142581207938040448702219274459039946633409988621152725191510347053457963357657663520745975214288262941566696199799478301391114288961818447279294918107043248576100026214396100095388860605345273428716112772522472204023185189976460358223237825032434704521366436316964598203888326011129538248915219668689120362385628865733506047309351637217803003853123485183635633574047572618998934885681109348177296552870786639142997729526074602139763345225071446778653512965730255625597115230625817948813192096149371625567815417906327096073190297134401530655737611860964763827331217887563713025908591898504985122015774058270514899646579631525757526426199630379021650969624689939950252478205040659123291072438977778102974872454583489040732177832642216346152396879027579770501835842045647422097161055845585327976669599350324605129255577554063020224160398047296007573500962363226687785239253765067438029396268479548988941718765829509252634685303311683519790741284737909012031949705971374213222493072393343191172969582440014097387368162643425568558555995544242893976552231923463150423728960313929578289102429354292773767769735792516146229868899382521127986630605868724327476698136006260350069780053766632472037926089776124755246919883641752401586459975819853161604324529126639203890276330178719676704648909271256025483487718333023949712810666362763788391771494198226725502856649756222289904621454915635174475444212078880885866858518845205665338794097764752804317913557389903605922775232857122712439898763056769436855325073726902920889322895677847931307676092907615377473101004293264423166031430630046796467989227681801704486627082986575615156698742497872300051813189900341994807137531179370685357173544672457720484971666464921220277351561564812832670126076169621490637385797386553597406841199419975585652104545360420667699302298356816769113253470413681687635183332857540855753120673708713359563133817153494041933049953621937076973487112512817161086728041711314263672606588514996730492506482737660153804602603408248940118001131163426743163325116471469424081514152136138067683651950898153959558493893781619630113562758874654105544584130334129321501594917912178099120095478406826226837027131958284182727789724208412615406891212259606422379790427166156750891123506943175482058485657846008030176670548943994962650670482227915622924088396489680228944893721508668756155569157335050587439071132586737770329356709356620446630592154435112122973773728158891287201671663786404337538707368753588145970100576872460414544716899253769136248821173693654552706386671615860774339464337607265415574895937293550643527415058961276152968179770430065512811312992589114829534386102536511286016995406762860201865249199731447089035231515181119207597401711808066658011748112337456961686121627339077353314866239053999193545851365020443523406049435195267103324963690639984258318864535693335242187689490713701632519290147203142628366803288346913121543517425698637466803399631851141889718859485887613267200221475659596038057311926602302122007262001207236873373453395780534397974162538302309047535822536172711669559863750537893004309548979175255544100956015268316219634394151398414182861739795574004149507396915811367812260818445759354054989586390027447767149985393874260407653829993573605688458958481288409520584377734904627684793171085292495798723405620634288762977127361128191999962161998798990890225366040058097574577813049342220101806237032786266057774894687330999253945431046851304392680061926658129584041549120053351726595196008884764738688490795985955050856889450204537963141829143178058690982135265200693951677010866597200632225558201027934618329924281029003098513086567902882819066439157452210965484059228194844580248493730047865687399209651544184422414360488695736119322053714903177484751907880639977409416166610694207074386778215188531144228295960490875558793437985890284128097334598778913122735146498579922751849119640798928791116697544798949788252050445502870076275148600853357726949507871227374159722589241845478700564467168197066277764253807294599412484112655804874268613746386757060419404767439374851573874719548859687079886442516231941957876601960933923791050244648199005204019630006896005037216604419274619822855985306211680694196617837140296096940373487090158087464267355514317612419602767701267630782720390572030049043735051504521187708793211739088851094889883324717292092854473222596459519366063382707540152200664761333113807522331681007942604044637026059236806857845490006028762516531960306406677417683120705611337793995024010356245166633844334082149782902098264965043023764757742135032015067943451026129118891547947656148936255057165737167394919059700386358068017731950484985220298949164442804532495807543356336659020956146291097579547352270246356994524913724958812828815270829437908910188614028631348139191384006669139209359290526456234442942242133901514780726426064581482195989237220545224592493244121067403590812902243343433147281150844644024206042081605007890007700419316458014466956730134804532263040929432913017329342156838500354974324787444395303713447356171885767373252902601844697372576826702282408733013526571125234570430326527488658438764678722234040584117613863098086944444672975761609668052249664776189342528589009740595961941141814057927549069404530999619205044786753161632717641758977227223046782265966808619663397008325564956491606599802092936234859573284040040764773859062837607275650239349476308485873905708545891108211455471270301971910357477059436833799017417425830193195943823955739411537825723129251020382998544173558557074878847965442568700639616818440053110248474554549769632007699199723743197703748797793066125791564659577738553769330222051861115470666967816309866306205313192779980777055699208853200423688446012318286305028415186316552589885252405162444990723048919681869979340892839797610302163315006690035684023772885257896060534112258592102279195411053332260850094701529259494308764907278656529954932572253569376438315948120272421947967568262490806492667902095892164407342150741351212437752985094193465735463198168956008242893705839739423119733830425209003611420746183807064043418025367678327990662310663630281177073395318137849473218810966090581721754903694618564786161905408596944182901914805807150903137615012931136543435795870599847195931317919851923167185916722791312870303772800596725499199082391807894366586674334967593266331477179657572651727795583300110896788563994407876057693126162967253521306381118836701885658591717353554470958959368626626150224363018730079205999870078438536886583049742945208575252466062338167810150589299743733524155151943922255010976143842418700939134838992289764053228221388051893134277048745428555891448409847125429786181754146710938481458896729969833226899983383547023898821512842477611503978497098366016361478723990209297252651303234187983785733045730568635189430911493171531573148120330827902270534911103025826322477427176583342450252417489402260127486406435208056072178466889489701047080723583435227150678183331513828575801990835166294492898117364751322812781535218202194687380818609574843947321220672911588592063290741099146914147779932184012316768784075419597452022974516812245509260561797287919014881308782188633527420643639429934940272256154946024608642095021999596547372341946041932799952752012986567520961857198031319282045303325090318998159012661192307636550874251800372735232556816316715266954186377095330758094600557831836703164740955112464991718360770455046235926907389858607796247101269503172376342191209841919937948468362615462825471115383499642983851024228864926849444769214162387370757330130063384071171502521420475035364318094259110715803352189233603659842852198848541260131656119603449513500861986145965882369863704278359506802733402906928054919202092965975917231584965320365413491322922315480487041771367705403969790917748759415289591393534663055723971516204080181560850939507369015677339074650141859987381425726717922699385374890229507319123044307333275240134303560067321175140955709197298182894418620168470204294617266697371595876898061636127344522380742832971913417418661893071107139541482259264573209906624886560574367951696921844969963514076216082101024400140979695484250555936113088921709797086447837057051231519902862748522581314654127453300911950827860848301557676686486361620510826906306387449979938344082625161459314208720378159909142182856745017696791286122850535521095529128985287655964296598570611479781481460850245632504608649771257070845497947769268757190375762406663318882109315595484331220491157641243800810106392603343872638335070056800704349375658623472397590788228119004425852848001676409679205683466579126126624748801989795539882827310349251268779820443188711061244610696482981144095986024433442599897445910444877751688061648154460128368503770598077784601310871712428365349978940460574090892768732171489909581154082314066415080736148565275038559479195705746964516870824664280437053936756313153408309390427847928330919488432577211496360335390924199462648204256109980527132613380124308756023627856521143884672776313764949883267354392051676507517988699692983941302204493344807209235498368491172939784090799694624898509991556037624964569006685641376559621324787502157552870221844653501064440009527251666241682473186492036087412118543501854565665975601961066989463704536001204823130080539598629211944471219118564088542774207455405642096506309692241290468512048762733879230394091019169586525006979033398114149046440053134912130888271588939313852611205346466959637009503745825311171395785643330984595487228367052323916708112944737536251870304489691679990611274203182498474412150915403124406418699173394236977665567978618560373394015867342082984687227911700542205603987972718328703861049717596637990317433154144106867904713302648069952086552531042758183178526260099478575813160183706462158740616615922263869755161946000077092381382190873430246447364321773503192316947959567898335398739332932461781000847392908106160362327884546704749468371148352770565091481660739054658591807491371138570276002685046148454898974214861483049506798547062242132208663262604002236283368523172726998042157286958651804706699264915677472972249323514133825657845115082835805105053806203434270957729652909548062445494467066473048328370267599750411027294117383695873316366494243017835253055925025108885971943331560620052380651702452410952160076361076099870741767918439894110675708718957867986003317135150502616069161835778691912587783373095803683753312680700822461035521940488637513502057892148091732295802142265109205515486486687423996144234651843180525243700019416804850920735244692869749692887822945294079240706790582496836392481011651600577740471209525660459359706634874401150965865065885920652913068696032847053809259523318172701582326517251643121588032901704354228958244967234915496382356802973336010909156519672434760332054913168786833103737981546433563032753208481884941673019703151468587361513756914578928135816993080969276333269727004969968991055340363091427780580831037773646298918105229791222861878885067765651630355754310041653917792764227699469126341407565363571149766376803306814996247963043152773095119944753327316205628064181126637878575734376099283635382759552403400980657778988355044095992020467304738715282418688574748681486623781750164263647388787201685285210147650367238640004590532619484434006740891099697403062574385053464962780246340616501976172893426222999258705516830617164428989089194543823471236039344314628652029143438024766155587024856707639935083543531957469491169311749984239911989044957593796378336188805984608053394150100769767909691673224296231373243643430774610649244878323375052726507544971899932048147238153160222475583997888059321415466071479516666953548722476088726835296554024168613516231556128513254082640504992248238565968284416246665971798069657485988530258196873266863347448633999546569498582698234344804569725109852899802440562683123037296404430588626422603861146715904915743866293705564981049863615214616343689524370756014351649491830479210722011085711412933319078244310679336450603672244154950968586266310678897873664525708073861231831368970760397311057854319708020312898544353556204333976227470827535996427858391224693030463938416541451802330169521714247871543725120044643794630773917777705533901760742763176039055299707446909798578728715762020251919457351639220889102725675922428354846149475014870032011363975720299505921776078714640326885100906594226491392960883334652899849005029104731034077646632213257096683797906370470332945192291243764277983815691964907031233694221442305408718716219596984885024375205324418329998608286056229823657468169596567795203346265557544387197093875144254014725678114182775604715073760950309321855345931292117401078248786973945625878226688437545554231054886401781923060849257246619217722192906458052149153370714939817887112322262697493339662155525607598941024925982770497285457976660200157102074875114741107499260404237798466934120277785198043002470398570684571738676154090982367912196812821312421528361550418204997048984209032767430784259702399156450976917470761391628835332688329271156220151551462163542754684778073447436796091738613317019094185091772752655918503875442112350374397675281798873455607204188881999475874977644948843666438607338801285362131768424114051533465121492779335213518329858150663181145024502962921645589796486821572555960832334179710763735217088663982528516594375431460829826119574371164797905788222701361742429664144764023969387574098225184244875783546080018206432675928570513909506054269496261231868684578763498612872590283809334708887124506548473675737027216652677498754138420740114452619084013212847965150019250219169374233850165929228301009690873184910128288845850284349788267254241253523524687113969824151634263386617142985779427388685937335154584000053626750671783481458163316452601502072993792528206859831735603463516571495040987845635326787043872810488628359941170626919477358811688897357777186623555896468559433047080754670508902589530484251349243413657626075822000876714973184503970002460883821829069092235407550368432798074886688946093880462161435961851097356210102018240536403294615584854306267332327053208865523697523530134040075506255128654544097579571230984426127628019361423260575140384336536112157893588481092218642036438166105638704670780280990486601239718588216836314308781488810291298295392431249797365931228474065912794838971615552253006766651751937721295178487447672552576162036153397431981031648264366570891413813826170898325794878217883206322051869451215079058721331913214723221191669280783171936832160205711193392946117369573585381219222925437616635261375996356818113355467096730362127652632224885910199818771079184150078966353089530094141707666682324801698645202117179925500620518320962707495009842851024516764781835384079441591053035965620914976022954065964107341593825073982353401822169986053757977337063656822550162335863884781534569127945661156499300919750735914863045363208399947003754911073026151784170097954324356648582414551913806187380851198495317936585335099564246963492976118524952714828640871682365439565588849962161180838080435759095376707551769507936233379241756779689503360550828055346244189670689898811088384895969556678078119242050305387232529791262379660875144520596364486257868041202896768864900924129445151671931965785593908575105453342267127022266698550907229627776214872957419406884347765248669761500289973108803590903946572549479449684846312121714265269104772970925884170693751001209431144566420608272269915464363171293134025754522920058403009181654726076018658584083366399429976623058065766188768085542831587933544145657337862004337704441885561372248219625528284162325651358699767491924692982591635092152830963736655839469764370576599675142263529715730648930572971818563167293661315531877186125422966617010907623489505682756582776103078418190893790620208330297597918360915603090367069188484704217175269452608189744725861483573008188133895387697263777346146090127670586535889332144062860031570906013109981883155232415495093104077172544772668159007923390920385678855857909480623785761445398911825529627874218954221796978906276882639441604464349635236161566377161454975883087264845507443063256122351616485971516009007677436794330443111935118979459954725037978999524634782968096451289634324763731764507638149492821008468340946483964836444132785461533209980499366638692364393239938156933165151038324760090584320283963862908307960447697434435283932933651863609740642291030339521122178081392427794119216630722437970416181412112308933449471230433865419413004874985723034970919626931315162330061146503699204754007694183613587294058073716034741147373773441081442303846931988757669750432406369359631381087046951775830579137743433784649723531610843678440653887788601442867039552485117017320624210456514930107335762594765260072266891600341689234279800067518807529789136898792502264736932056593125122212743335152734344290544930035683792509501664454079273564631951231560226876203074092060369810886757887264694593223426390870997363951683830364986855722491488650396441820562904003788525322470557057141283086544376875113319276671325537071990457978939459887377674578644957418479349556756727633390200427031310384809598671756524985659443190076993978366023068581882082056480538062254438594482430767204826763377501215252484722392901621416922264108001011053587855779680527956605813124791454212041610774713392849502169555231987539074151527545365574210470565873242703613484497935463225190303568740704350790556424315720542887790297087680082562799020519076405840082389981858342333603437793788900448409519356510170975554127731632118135900097766369034154072420502312558317916321572360676745153831253662162232026905257158042922565489923305922824419507353783411531762275237465367522400850886045014041883499729525383790377874208205961350834144921161132951630647914815043534127821224503541510732086566615096191718245034973780177809164209910080588088105910438405878923216447615012993980818454867222860386129903692483385971890360797278838960186558195029581837921195464846613619460001368476331807583478471541102282784881229105361892823198571276390873181746836577091123490089056330724488982203393660589767890120779682036836099493462934940767127032318476795738643805641996491451667092360624312270362698470280722742725253848761938262897711988835978301062768136097009811863640379235401233343490341898772532267087548688662166737234250569476110217413112478801386070908077007656722582574061447224598237497469683146523115143307983968572902285187209829288147475857850485723325932818451960765437647132666059655582618292665628499233068055976816806351347728321608221177539490416354530901140570542206866148897639402806360414278544025044664397907181881560091121955599323181685712870313963248827744771902521766516215507759875876388828871357650804398194926399671766877249661335304532783300450423223223093249661415018897874993277546767638375826985071092500023051543025634288377942885277966156081258171446678600720030450868023857915652440566196597608574197148121396684857238631802598593988048150388096312892547680801594002211029155440690107171445981531905644016668102936773665141440977677725837408370651773207975173381838937269832201474102659410525864154114813934877876408943080341823666585118218879408398861455473517435404408241800104043484977740190518734735696357307953892206862775407167287222394225232638521883257527396561957494361781706713580185497447185134341224472787262370252301123948722129221984387899334053644098161889490985850600812343107934944572703329937615314171043895305112316866745958760815847924048657869950970891925987111636414821145231212341720086215209691719008063213737088392235960461405256051383423029533788429773861126089738841418897420381953574010115087107841919812337656273876006857125421597876478038810134241472567298560279300970767000237702252367377549214919755473410155390782422369914896019447533968322850494216133691042794449799698090945739784623918814971208034430336728138492888001323229831722724514520503739644911534750871508077268527400928372718852607815390241435581261126950321591974159502390390956454959330955108688047044002794283202426623760215045594916531241785703583277648804242342108685418490992040678167622573914326182216786606383436139802927317321224649496368316199174858833651395152566981391757980048180237398727960105943644302745832596582651531586376732646915358014927848436379779889915026156503976902494636480080510288033099979191219750678591086060735990824172798827637723144628627763917470560631619767160684839760863333237074529265762372273372367867854430294426333799646339423031796310920552028004189005799828112982610941421906051821624868107357334106290474740856783844028507176350240323641224442608777249801390213462060069462623545193448315803078199764686173767474520916662566689254269754969108313403291594442021685239216293806573299301930380816461688084344181131794656514116141511747276744638067158365468583566035602237643882060267693854156745336716276605325474235433653222829375047244869205906242419127914671462237577139911268698918374905677231277548955490360155389517388238545835859874670646616924427798736114090073447136394214297187808311012324489114135532278948249433378831041261495492127103699766486061236142707590850706379468073596739439008400445093564748215352817191166164525000409557496195069727168730719096275679534428061811176304543626912724365588896722253455260150945578736750105599131300169979251981170077154220531118464983434099884764533543362163442758167630389858894967644685610702991726804551509079689988030565948387216635946256951253771684888121522507727518071984255746277366832732043826976722629342477841634256703781696298638700468036338917838095342716861764034546428106971507727573399175091334808419114970309660011946464495750411239806602692625935453770937395995076994604366928085795401642632786496818628673772057110347068242219705689373327157746924757377428728543312480617581508952845581511854700451051275210938527342712396166761893555984938529615923679320114609774997525797979191411676007486017946128779279931856022893903897903611580149906736571038351454280327294229428250566598547177187707591537815038120667172807276768772690839867400354042304240587881984310578064031331667351644318482680277822142938242068815197058629175853254732198521756944930945610733778225786591872327520035022832042337832358053987761170730013160660457827722945687118354102699486369755508158552001844188020817586231338155392999910613980223201685741034440335289465101821828827382195415018507179145174594275339556936215053271894361259281785996568835559828763501819097071629786391236423122668903790520773496084916961665435321593033177799697128952107102272069570934844667416863236324745824494019033632784690562423685412978979199517068325058408792442425505846487408335839873073593161860394432198465524632706165870599559781822558267164070791048119389644412543762159389196637666007556745698069747734432877691308981559106391286203412674949607593746351853777309656436540568403969635159800974924291280762881749192014969221593017199715287044744782719547792950761260714269752115304829594481702681173186689088069916943531335974283392584737766955781643983678911716662957790185408917664786049562964538772748802842707821128727958802287119350656787760506231312989994429457970315747433722999378725261073883008886892437624621922958575389828856128143490288498185708942864887458088588325171351940823468962603939746478413845551379620908175570611589362652593510374151079487248187820715609450784310963698030724827599955365023942112498511247481969179908393844100513139231849944899040216014811999057810526552728371730330750892974666099727050446631998793060021336375189106759574017952684740083466459709438866245273100100007425741202613452960300854221328902435624842591781027377860159401621417377272396014429701756360619311921640764874327252420517114630164090119609930103446889343476562687197816710136252087756176861399420498513332422944982998823517139537077827023003599875605695668514294626201044345143439036139398460592648285412322703287885413109313408726108689381720341090311866839795216502321791551748257618047083113108661552644574599212809746634173548248467185854106949217907044267933630782826334352238266903322398798384331089217541402375765299139523641754841299977476480116486071099414174255535675368249520660271269514536636102172270065501758703266633001499206890912875879412784124182013311667382157083893994008073491478027905255984475383673326389735013099768019342994859445178974623016459299261126983548037195529581871681947623164035728763864896986913262383976682386864304945618386199790728916637958374652958102755591689853105440736630613802086977058730043868614534952686953149727800376325643873257824380826174221970320576944953705401628547766389052687563291646883486626750488923835369336744063160911323149517331204652549758958817519837879378846317856204831243896638853396365408212869346032797173218783309021116001214843959787529990755422509758721637872771069285829784182262571754908007314318207934755259471144728182526572273958747369490673231648568490656552824733595149474212054602319104881843622800654741701166122207374104440503866119474668141581506252705341963981396727374487346015680116902215186008335120866033952615178231002295550280752908653545265677354312534361106374632758319397183399312988587788989050501279672272313106588035970147367703480626381375292429420768789772570996084039118605491511410030614394486756943069924653445375892377087213832288239110344717712884588183499765299434295724040691964990492924495445073215185308624614729259947092719121284663624427712718067824813184440056237898228006338988959158099007561937467747415920807867655691037118283827304338380158859001047675858993823888238960471137069757907372389487117452405993839629229145537498330023270489995139536855484982781931924169351715965366461963358420828968699399979885860392873193909157046588347153094645996001532882746398354814492294092482594386709149059199742090405327144998039957255475602661789536670285297491920053058642380594639212268495053723237210268261933393416980777715578703802957534710447318381425638866231174782787284332197542550768562394512590043343803582845542304699267620991227061854516067482821007687076596318188168142365445586089603289518108815196828235463524189703073654474321125660459810506429067222568882892648211142897592536000926715592359843141049485748736564657310395835667121733244143362154796407455316388921775520739762950411593362224239779823650334616293276860344162002161888944019553927796631423735168731670480119804375544051930493704663805524964297059390942562373811411727392665594811432955913263812040316401760802363866294020063961778980887515538925372950454131668008174239670205421475746423459745108437965556409027936263094075404513173393852426389793911741826358236789774454832371022990735794214872135215434771663243075197490143549872069797466677160828060557559595004784552806202798764677339592283546929599649373358945784249758938656680799415096125050136669052860527147706244749914395815175053287322979105141675266139128510030742972265473008350130288228469219201267215516107908981481481842809194971574975017149424888904794451791283203405907613488390814885310565464887876961698077138493751979870212931450321191841360559232277933948099033093113046452703518043302660397139887808540612888112596088369042749259615481057345716879424469701943718918730582921468499900916486268099165402997173027863595325047331261647872703146348757470944243718724403071373423939920721834436690699083703474413585852588697118057620892838380191906143415130032871016688669214979285687603425046763593264751406365288232402064278216276063037951810121361816542206686954213899135474554897291949682753704240197507331306655892618674854795870196429700160303362336476143250194246204253548663170835350141685728019453797590421043746204566776786557225455269634273221569959099685098442639699526903510379045614584032049002921653379471389195904661382107861950395378645605010133258095436373637275660606427270049077423690376170288409350683469501353831812167762256522958664724083073445381646165586125210392350265680652632644588904443171107352577954364936589913120506082523993273569593533718734362392101422941107338543226830386073175905844258921458286952770574264991060681094472040964435249226198388408563813857513141264727656267548119251983893475517981355776739224490189660261530696215009397870287918396365417206303238729970070126956994903668222478185478869322324042924706428466442184321114280268268255657695630658669180641104682675994610815631985450541446269195962295210254423631083216964063921279177466548339279462911138597159459986569622376868807242950801427329321242139211336191867249807815982530017817685864283238849681674806862867455515461075278778827037531805779933106179029732538047660517676984415916732056617792290782191364591133218376110866672607447486249700798493437705727612309183577115847009383910427957037965362629174327628774738080953552718318349964833963180773138695810584920773036079097190696104700234279391197060787326388457261069878144679716178654965792559483056059851163313549345369528813939508594173792691981179334070844980454382905634458923572552352197953489321944048602016174288833290465105264127743823306234661589121584028594444490559780912267428674575789319890482437006999996800663381205063889423492371934037534292468639557630910618388333787734557106268814053352199878502004262176679890851545022382647813652904885881843141387887161515900891723505181115509103400932683274220773691782362176516099965161267149611137145137951471631567234630674810960294605365618574197747609715408664955142389398412344902528041573789226002838104186811537382735131746810173583512651662106524890353854017792268902108828099017437026187895078200278205582046356402388566960940950572079094393246690248872184684770050089701458269765427409882896428090972089738346383945724525999406159780047146594017165412949914899952853651022145579045808349425313170250486045380855288636830952118733329675702505529670541227070579266092289252793290555543515698480393793579706796153363428375921303511826305859115084261279055089949450855195294675845636993464427476307938999315354423605147642124341152852668493572488879098796811266890304952524397766069458675905397090501376108642336116855957814506549585971043088523148556993871053285197484250791057259646146818838704792510992649665840169237990964748885217220514202004213360182999273828178933756222143193645988523249946975497055001075229200193314016548983526696521365823556098873416021041148101863444980794980102318405409139958273714156829672600679033031315144341948702445498298017772523414089957036239726858586436403948914481810110687299611454916268682228844300878751285943307812561974620099491493803127580786576755916355697374748828797076073196099366042838148360956200817187985580818774140448155643510568062681337732701866094499787841093714599539492903709369563404671797973247734770375653430151738797740232881523648493497798835805472002593701309151171415847680409107067895842287047608996515604399486070971148858958915603336521272490394690353597377101721180907071647501790541214226232337264993285690377726068102428861554480825688055061748988194799191712618785065700686956893230339942500772643099431157607794636350784846220312969897668326892806746174132476272395051510589569598356778968525714058543771556056195319651634743281674504136395367286262630179834265368705140956959265110258815887474549342934742973285681215833146029831658832469605731080464918847153289019282206930449678170778675783967314478945689958228273675150532692619066447849683517088407852065158913248685412816995175493873054455314699613355518102417952558735419095264629184902603238969589853045443431283395840828012086102804993470037125174353813214607989563717101443872143353702741624536450963391161598704773831580324106709072503391775638425125099505466988695295058780157428655340703413388215984468898547471362932510152848285906595995756028160888094380936688485721684057707960395588146685549770659797611536524837948836829811321408637817094935176202890934689449979308324858626220850630544907528201716297072850520036773108765451724280800822446162531327966714031333028731650132949046665607077602120659325699661302950010869968030920319536760595142799495983426855232973667959770732851513060041993058925584675770942557987886187324955413989072128659784261163745621193100625030332912841161862565113207476331010723778779513795759799086230099348652078393229199257653702858698119920754042304323190430409376392877017752405353535059504246773909937318138030007038025634941136206780751256021545100123885934252415763932945516867125707881184082237691418365540777627258445595508073516529252259852973090183573442999837169052403730037343735462793808075659113454957065633425871190607916731590182452013387410014583550423946001217439009079624013597976413439206365124599683712947245183804088179969371375944510325212021848904714699906011799399653628804180299425681496271098141167733052722714671009257322573009411803231638974931613098328530698989619540595872739861890363788906854915278832773163183752455268214607651034318496216361879248914722365429551208724929549801553569340486113749380684897104922153988751937917442870600072361136559784549372283140447011053419897420182946909961828077032714659306581030271291024583642795164699867838049808605974637684106866938474016424928268138353313121267062531789981437209415051371849415756288321455727780986812408849221970665891698651039823575631434148257228286038177363950412928167682312752290884085651710717361577890053812453733830289340312386752872418689898072276936176199840003295116706813080170306417566264067281474479230424534684673109654325869648042783609562831081754139910062903725562539013514896095306232414849489470064629159289886109319044144097744530240476921538537739815006277973816823876872565981598701763320538446868824889771240278722022206969692933309642724511619658683512483545276203416649173116180955829070756187024745579646190975720806906892471922396916548148523709791515063254884780803572574653516622135851795490002851767961254006749473055294272728163443553082761259421889444959929221695866338939515508303441664579743878675567324767671842320089357199686293049702201950706855761671551970568112682844813332495308763498542757021375466598583897430986630588297656269446299215516525094242746572203076991637414275472687829354759651873163821086294380824833103792947493969694354274320430463251117712692690576800962604952038498940947025937703399013396800984718182437231583412381884066867117804932041416732795881977061320575390144523076249547404702164103647950571240479276639207582351559012186651143990311128610917396372733123453691533765955996411761503493610618060364263490429513127542691439344790112097719853197325198203645838502738256398652454988672616461113499441148053368920683881321846546543768367655589739250419280322501784643279582316508753239569938842565626159908755165125127274707868791032358639034437008196558415126166558844325996140595049103941227334632237243788567665816014123731578712788165290375432481952896445475863832445016122299784055385092283898872938893214537823463489829309507491357423158495157369921089619113390819245151123076026757615450428963942250284521148863178992151100330974810534609682605040647870260725190878176669080320794678387627568580747207866902021215288681625884984548143155951556330064455438839952572060348051024041646878222637403734250653066655329843161240178805346822730718622742014620065545952887017366426038791567894807267847516173648633540641859024390771925061737645743929402507481744492985039915904725102201627104479688554576344254524549481899729395686635613746138393480734527528036763721934946631527498340419554874611071116633306664421574150399132268295177016029945914913491195548728195522410805517997365731613118868551256091518436543509331153136732084407635305302165211679045645815508944149221816936052581897307485050185835983020864536900921385555389912352059464532473586997075564539756172939214660341307077045523892470523643112327717491802223052293191035061881839103829608910540612757819003490880873001065358375931826261269207215434260341880986133524644051246688898933436783470449793849975395825281192416604154657532428693829394089852388134469020103223835024801917124980531496811938553617808166056554295972955052189025325231111150838126998570249738211504723965938652517586555309833971859483717040839040742857003219942482995526422186722957640181529296835555376695307343451160763874672832719576960579567059194907978341289985929467160009515329339111616005510105287687199179477342026561473287803397608224199765619926420412045421033148549869377866928803099853943253343925503311018982443952904549170258528485416537710283500897882079650502609400266130562348375320663571381734026981599056598095511298869068727760446284627182629985170814878301178078718418057251159933658949753610870866153032138304742488134300167915226714344904908837359292752015725928957933698792954249900247430994118819690115715841739139776655551762991784316240912097776276286384785865238202360630315359195377032508616797084577352550292941592360671962357642483826112097385914007675980366187334348700882066914598542115728043426896999943454368449082594942501965991633236831490579703394729031801104273533434766149883445050460748449554175954404905809498523697909491765708018289266166071889324934892637121481204611916304336624154625474542741860054752361143786457388315740756404787145146751707683085500055604568203863649324072612772127426712355109012000228114611264610420895856818155661058386354330994321645448284108383547051754140195703550491288924838183390491528317635513718202448795502932241245755254502611449352233252409464445193756323882279185534766104840006894828629282959023022010676960243846237406835776860147783707398391428058718774311519087143170819160099498159644186771623791696752116796006303170093564369482711243650200914188370969839077743839363317739104398529170158639636574995820026548509440659828793618121255108550455330250728897100622254204401433829463081166664331269379729774930172248629265072413728748157980510749241238269429132006313010535330627859984194263075023215970287084920317426812121621975381549108139881300264372301210591770008732041306701520155261931292082149342647464422003485883690736910918671743218256969151370491827235136282699831508057746779025489570761560724439471842484237712384702007130523910541211475661225715931820679298639303400838531492394027069695049485023312077779872540465255934633352557827367611266244474021844631143771910582751848587398413499801650725146303603959650762963520616174036290559216780687281048695636914181775199332839349003568292065209847559422201127149349803699257442405125417800535901286525754236948934405362592133100938140340694212001483185985469378269208896051295082579415547998999968754403796151078186806033760243796572878796024731856986903476810426743300606498887236441391683973819407286594898307848409819254129128333749785410692703339877595643102869078818580315082928592845777660828349257967660987223490013560542722298449789482216036993854182784080465413207341094450146955468001653643050893224738547801649471570708902576345128057953605693278132488208524765549419410037723006867294178845485329962547117050107063259075516095752901401961167649364749275403309092564364163632149325293787807091536595939968316221307075163719822552611671533451936411202553742825056604726755960539623450768150375864116195193014393249185421555594861499233178894695574688912412399825661877662598274493780694883313785310412760237893278228803036196516951941524017597209370276765330835240106726576558740807330202370176711530374245681945536956402668519230421096954702611639947456203959752420413830170564170179565867020501742602016341775421735425032130488695920796539960404661473158235523185755326648907556770762678657334179324401923684496236850407872944860809877215836998549212137390070377054383408798879383045627362552615925634374956688326476966633972340524325930526063731907467785006960796929281741657952826383472510306750220551197902633009277759846587569711420029089151275243632626978857441019024835253113043476726741241188941603350724475024547799648987861035972682026548292778564477497583035865004724792447668109454737482549911848619295872811178016609678424398925065042196964790573954829098137900089719561204348578250966046153721695634334176725598957426941361265591198208583905911875108185755506096937800271517280279748887872283702388661064577880839998155987638087915574205034007742248056352180989788988726146675832236058339335828708740469947140366811554093490005241653990997767384805217235901199423170061549263694364151500469764396808572805109087475712707192447193563562677819478125887582613059432634114593759967383362906512224430137638524316778869251914147421989662707124198544917379305039716214461990367754708520608915627688848672492543194877596723608550802802923848506233044714842877552925429051113250384757379110771882069488415731489463175017541364387122656683221479295592467732603471920227616403324126708449506605317068430402748890435278528136905720375823813908585019153797345064615769633307804749770903398767963997613457369276521821258653249667679042578555376387154955539991998992135967127745098195891912968338809147059580134457542249322430361049216267592030314304231209698744929863929059337333955008245321162570270105253954303220363941979397383246593249873054416762497577178855578552182600383074197287588825804534293204850190436213567973733864334329123144351242648318405820283202597794367876949087175491787648854003466351219581539206858794154182062986844343846189811666608716744778508709366773695363639621257338038885309456857831026512785600426273128387819568995146649244394139292731940220007523546212566426020779174865518211800526680053038173974029441243843432046471282712288592364506213329753458385530523717478598325130352849775301637107647179702430029345241357028288996799962524662786274126110006300514194368049405582492027401002610153030610462634385080832569872250574534284640291480394305701513013350546962726433223160158964357328204953334245247115448195757467238954920986494300264549523698977080138122179181977914562403690163236099141092882787854032366011406473402750237453110804146154893126360420864902397512313748304585240203876515520196250173700304409409795480180906233622805709564290854809752509234941915569684236902529846851208445262705775380340178020690769027593557495869726803811031552466889377366873935164610402613927622865255012770732608399027676510865837548503604256203818469256496466316434643146094093729041606571685009232757657575937887660544845645017673571424310940143027962950257331545882742121915935028641941601277492090219718796229087361780175661489071073251631342334671515239261688176807661598284562453411828107996412742912146086919758739335343162071614648227117109698915366766601277430466235058497312700914946382183335904337593792356945186907836736071851164542007454568073469374702294619729508965105252981445593638024010524579779061560751049571399921209831466004649381975783545635768583223855751047331655357333667201842105086270275721755175194118559125060920541671744050653078850785552081312763208170042951018881067521647666857984121380662729384350011209321691240556090892182925844744606243701848725841848885285226512317311302891833705816805100118904976956723840455600646095096057782023625600310211044970041122728301913623951451879778431535399888990976452513823507808615572247223092821275710578902619285907736585952397216074933986176101568349438543368216883011111422388981260467349320373682756652964816135446033253969551620909259698690490125523888500297136619656565156386692781443047050990029947098535925768665347412099275059130088843106118319961384183948926310342798897775332118075017743164208155154150417611279009577110904227224662316641578537747355327971253905857427458964274981201651860567599896620264063757725145824099805121057561659170840164750167123815214581172463390361363794556667856869704914293309489784127017749798632267147016609051220128504801448123905509958570319932181314245836340011003007445434905971241479621690565957965388225558555135016425034549116116308728148976410825375158873983367509767769888394814999322583680354059373127190734036596316082868176110502187092221141259305919676048283581722808479318779135510657264031987443429945120648418020601799413409190087177607210272562801671688845297500619866487514464077290501706157644656254686383065360142364852305089550337882671693210512511888659858793325764022258480185176258097888614229594325608290586100184140102595454370149124649842569353803071063529197360484686999007685520183335526484153729426564652503311934159036791505419705633541077887215176297206179485624698280805724075435581278358721578773806867361415280684289007012099605098164776299679004974412077935747028061113165333218930101205342824543870183489403491725000300635187875983311473556518005894494446396839827774978484380909410708943261059417745634927922553667142138820053710966459269806415477722865636437616879355362482035104681044159242854395709591922348562648060832946810480386116075494854148485222200419820955025886888020313848533296749434436226461632524182561390980014920311717495201484216294380111299233509936679119658431775647635840829222172017057452891106759118669140225313271072533293232148367391896969033950604168183570646639674111064500902747047026805630689471908138908345367249745241888635708778934027057754240462631195674534387349271837201736412170782665635874593865154049296313585445971350644337164381240097999546696244706596732372022437055442014378307812735877978066875985711664613582556905378635125288473653137525736515409108621456811661741943858019197109884349754614517930309054271790883845361675700096493200948132352117077810646657883053941789147915438227488653931248793733416080704054604969491825558184600386430535008513772668138943257264875488208584974035529044347414304749263264671347203448680658684385344217106902699684375862121866979981534508614424510732468503575221071633812525402937133200332648600608565147483356989217219087818175356545474460111273181103633601873040768937351385237835769810584178417060553227025548086405434177828835954795951816588814189251852555996520287288081273825332848661725960773832231608719122790998117446577913421737048268739804767109089831001976836690765764770044209675598746802621662023911894217697188464548047331006738423288772639321131772966250422153215958847930051995269421169970589225223281388895787762865785909168126779395658363122052796183301997806345374460293726356504458147362192186787253924234277854217726103827904143747032076337505413696900112666213859087950271994258959421078946573241196318501222155291803103911503170519317537437481001920635678616113951223218001350190235336410089218271212854455480039822525554838846140090265520765921860879585158435334845723299150132516316582825136474166095483197516406625209705926822647856918565314825468625157621673377770955181518065004357222329516055363902320819613693898928475905336477300700512230844307623336598066135763946216170368462523143955556084066342454031880376431230945460364119921879885849656144487708278289727142388811872098144951344362302702570429329590815989399150029440665954097508328372381018503788346093330197711729399362944329693483462998898037010404240342612438807098075607513433587860987346813824651549769728702915512858549348202365681178338949074184469827938669120973172439656148477352407773075203383559674467078554974048058630696359009169221809829915041567828114283350660584209852458792442788502905805942187734643963449458236859360720716188037120037166094901511373178822085328130166805596668978612969588655417138073571356356553098211119475876048720024577679842832433625734835980544885926103096975239066710535995860341838006955313350413603852970309116466384818008100557222585474326587470751953710509895334013749980936251368046233002971171174915764360011214043946119507509975383018261209639546417608631549734369574768991520073663733881611003843972888733100101587466736582842590242691632879925284577256831782710177583495533801888243993166559284221068922845817084630248963884652067189235012972695404669174777652332662395913636824912843378817027510798503251382243076623047027279582464975243894929792599420759895104500234408099548902661200217398367737025043307359141390488702357606110659847953458331738342189431228956211617642043409202225919576067106185326507177737122373872215155324336076417248722317656595055110620677800474110836582742007126154588484435492536400677667629197286019370421768511169881721797774953619560590237373779354552595028853310492137306640976711220551345524723304205059906920603498641538850687777895513494347203949375489173501186758909184529300616726557441360073806311707940614182460703972253205820256651737040694807309449994562798144315205648270279576091219441251364943077007859314449427093808617444070609161238653809703596401597676000774646220859024206427484689987112304057742415525655354021695215261158925059888252081796347538578688442844477720017339204636688390488069237486695833013635025850778025517569371877669543745373200613171406686489897817149136713090401921101522354040790430895619214421049704734949365235196814675063870285188069376918135786048203016169301439973774305797495371490283871693575034273388544001801688715587997015889965531599380318959313976641625485265604416987327938680909474642197898865245807027846484576883320989122559232013314247688337280775251125249435873756914671865768580647789186506679375176195536684017385794510346741314607757620558915288801026544364230749926703729601999511446228773248555125928323844919704003842667063070926423486823152203261390986258385797714378223318470850356023534539970212851124131367324305383546130704299181069553065520626003938525234432595591219857880635128400573577367979744215791083755228709572463874242024000947120054499117575239111115901661295862192285871724644785269563471183525120300086447514348714976141849320911519836714031133996922815691860142645166655409265244160982466751709932428402030093991172565613035583186070843215207155297362233991438756961425146591044751959620727213631258902741119505407060735195081191974545122980274857806644004762101499161321926555368602099543901955875805353099369272952244570231482757069196841239414968241929346862665179751509270287215206018907186125477429348849803469904215233638247651012015181423361540752992204645549423620565214450108921671069848615612971459310365890874240881389393398309291095105621274122692921950425241697973113163917340780294870672928888937470067022736842835905506438010758441881848279113702269776082447016611616317191654134932384380957169041704647204503357082870733605311538559424819897187184605645856399851792583742764066125176421143805207824339862878685393134844072751452786556558693182429325205310830081376289882512954991903023659658890322193726589318207919826438022944271553645019450115004998511803471979633623161541932216100699016940557230181515410238121010499138325097429969700091002149549450742335706814259061625267240772051074635119737186616438794530110998311305836199899362013379426002517668923809154415760520253312012582267244342593088831902605420114709729082755294170281521346900875708604992479402973286230424458879804999728835155880058781615860061453974747762561832988587319675671709728356358466368720894948255166234255130577576314779529783244787497232834068835112541518365958677297250754480304402007419180737639161891641300869813939461496673647687885725124548680310528226934328119139499521818551605684071144050293478393626152217993485762061367296498458726218548454158977496275138374945075902465520378465165922852389690043212615654659336921404536726381836987209262111764289682248567610442584418311312381571044464432872770758871434741836264525824936208268053051279263917600189096581898745048695931632419908707736437966322744520228964707634969984802376147691772018312686486611334571685962012744730004685068522954870158624870964796485321945223825131034526750554052292020535516048787697177035084948715560899287211254628025156748936075624758587565173071301221296132957774766639318655206706050633143826844341649301368884991274089539711379096776963403795703661776120988445118061447244212069518607638102502171058247535825637807887303140047542183328778791954037710595437007969780557894248536603817449827745350405642206531582297116156719485213526637593181329257912039110614371013102242268679674060650432768085636211258106264742065052625735957302522223252829865896675425652504978628929281055696031835831525854345260903036176103344897389696742295532248406705250467051453706753364260962713035698776602004268311910646791204792008468070584292775981333736463768056335232302905765094463358438629734773195932583931894891874970798977676112888324788656718592551293658533517923999383587570332255409414911263646013465748093147876831764275442429944064874538969595870306809216219407428071859208952085598008848122802178865647542154196314950932727982720171012841018341323252828963044522920978826397728186451837429876175522057568011122977737668277286906454696806672681585209758478370243370792659583221634362333316232603476587234074098495874651491514963754700788006988452827505395949364015237597302396660531428935852270035351980151533043847132529765132793066831709102279541517230893459853669487847202160788311428548861018099783617312552761909675543421544202319457509876642752022320367516321846022912160692284829768243020186781994994061152120327957823410474655562169238674819979003409378573656651226927474037718939691427929005996977766435429828183913846739456575210517761280239112951393367294070978208966992156644960538746406390969700072032971934369334934812637966342981971787153880576813029620442089028320834487441979448333363213723335869720798983155284119470280461320577169098234103739366703993286407625729676895505154357066714661790109969504633598857972682852331513111341123104870094434065277826418119325286334059748268731638118596055332591247004017059821411587470116235274154559653617952409518246520305425678213616339201543545311013490884029445010007114563976003113795140680968333169106696000918230167739942070252554650214895844449777341521447381797646781262785882848092278454241711179739125744932034380319831542690504176241033261091182258132109445901822171303884199761352833317538007241522328354989649176883397742158672952453032341100724991105315978570428807717249364218651257889287286289779020690150484622045870523584184345102629521814145135764708514049540248881093132473312593326886218299050384328474392408046992899937441257633962057679208375640167830415704562084692872127088512582706755728389127677666404711580649377350015880275511714350176888059785385475037897858767833927360580047211896351332070011145883571961544200579321259016805643089780781743020777372164365706823477931807127114922075604164776632930253721097910599472993616690512101583699121723411983730863736386088180501819475816112288414708358413461985813639264474199975911489800271403116440992327080984851637398082382017841947655899525228616715841959878245970005150946896863129794898509000128132783074493855191235161505639596380203974276901409160683957725220166501713005667831824206500864556367957932294547301773393065964655078406820347970933963414834330995373586941765870784953730891134942616893934183834336075466786531128524141717909906269547994895253341332027405468075772165102556815861580698795411651869908782990444392727508319376609645951005393258308097367239345804493872013171452424932437645743696778723755423396285565704024857597036479924991956652973573180082135915188258282739524525919848589533485399063146458956886183486422329572961262953497115411164187605629972879118639715091598854376105446327057966809194700164029248823396058821006973138929241476670365886127244998123142179510170095144900421920974523154326709207062844858806971403846491846045576003247206298751668052344397130181384602745871148077050785546304869654939938369880207039132509438366235606666401478147191357100210621795577242653278160868423584315760197393616556194180775774425402185964770314738637834862298711121245316494869904694945680254318178879833635646384402286179898062555778858214385439512347664842303491148054195140020574160136440471802725785600643688292616146737353014647863123571376833646964794863617032379314350059106002749763997180572726765145031262501692606601095292067897773335551015988136324011150058159330630455401330645653758307241498918402040427189405059197944237711934971557992030670542315139446672995673107274514897462910109414103707212118457181520718607757788519969651021156386158178104229838423689979074219387584676180578027965110475181253675866841191696200100814405958337588986843473832551977570167553022799350719418380313918953976774410533327471853342016472395175565309816768916493905839426073839724405369525564412385376426696015973344253822328336805146855291579115838848363822733975521756943541532514416699715967074978263118424388116176733898337030610349359046268767538695110260822178208098963838133225760722795359826569251100863344246649384785568577641393024053039042347600765286628060122401743620948281566398342792729882892279126081132355606575720758569176430591002539697720748253691745835213359292776365501146296143448234369703001945351744955526277037235862378547054720211403604291343287265832204805866406147540245764396811923735667644014909251558472656478448580176347542697919664447046667100691154567149124120211424720972547069048988972830004706636179729366120950291522816636309524313511722305964751076169960032196534403523459460156946271371912105226912748160295468568578193594292782870273299024193961768457194102927923352368551885154432586221453541479720098813819659075659820174620936527884928918375688656391445938361172107834015398189691618977488158367124135941882878099804406358013968287931187423162557082966121811851608329795113186640160563992804608591746758626171141128861431329654993287002786497076664203321427357946192586287776094611850021371981758830175645449392617994752698730256738020718552681203970613338204022616476634444501879693236783288310143732314291266521629194948621603201410331719512586423589714618036776095476803937267706206230001126916373630374963864366095763056875905548783710540131618624779071078961794964448814313716685387919368031123585399475195250430778281411169759170337802528012617795555169152103318871471870114839813764145417150846655726191775251653094560562777413939550250817284073105626517516535149380550696564627171814425326944842146552818859870930968982804244218982659297723573913209350753662298846841074107163582637168428006980780950253157812663417209571266425508366207332153877342829829754102639481960750592330218466601300146739252595241652464701298712300113005247076799043351875827618034213058020633027376378184505623879826573931962774322744228133535719629331422671501498966559970707253074012764140636361637578969996314411440878545683848736277592485846902239145714796054908954702817619114617479446184394848216381895159604246835144285202475136392399011799855307592704064573498795309667534260449156582025167885919259138396336239244015931895332940802030088558731083187323120089291373156813644277284387616858650249485292889991691670161752279963686683041301655183938549166448033825360938614892676458985716718023102606826738258876204095248610810899386746744535563564634775019497647437448973764593053637770249836284434407733457235790479825347251729834488096634377975056547104165672855856926175865156875824876391733168801151470823005330510576957542442270272154012302880973649844415481751723212981117731114624686762921347748083725584569971273653702767811477019706419028351313641883392687728239281994381844212838937292870889579074597336113121793244901554368641772170369019726918636815546890431678836621342068882960661790637270729594135181638313677583662172439195102868353305256956618111911952370811474974708967519021266067056958977122373146120326361947295898921458472767955321896483767081114751203234837351891398221946137991543901627950459079503939082202058998832901687715078900987530731691604106685966859804222605206377615292485479009717152429697143699803645935306138500979266490242025512463701652965634144263714832706931945601710400706315685422449237596966907027072868505649894953875055276549221331793400739287455912853358192181909516817742900040972692174302071227886927208057793752252930854219439645411742401916557403414354468352004713494517753020790233243685081411161575040741178102009717501937004717081396970996185413059097975470723302269126727229497075685174323264524292642244234872795539860014707002652826753640268480207601783360403646460387293072889175166011114642007746016801156114430267105472524118992193777315350039532751146205272382737101201412424251236750131817018796435951016302131824657725114641578123890559531221912015706574116117556633304871410982992576810665978471232646179889066169844305190714551060499780397893771077556878460312787323246803893088777434279684125360574511177797193942798355554446311302418040624683295979572211643125610143709570252371411467377905610595211325756394830421648953877158065689042881288557941635874608337971592219257545400474987623885473202779390562135631927135400408889286752151323086296836211969782961423481854450985603829711068329674316906764930640401696785632726384185388085369994409076660144293098363474616353353960529525347200785294452028620458436030810970266740682659154827966913850846479849200531096829872895682552517020944484235757106489874385324883025105846116542269653013227317375429118853802745883281954341745281924188301275575040095634048011185683610077685373098267867969490286521457344146870912147417877034025419508380138883923896773708521136438795554621365948605547295886111977412109906932895053626726911544966116352683758977676953427579177719755787908117619559025814563507490330306965938786258965836337396681384622762730799803917944333725944687085239507082039395331268814750728995502385753698537932799339690123635900039470935610925086363430588128084077357181038676713132220310567603090807422698490527895815636694910228604840676648566732447250317113744090242233153574200847021733400229890882305001719608617695129006853192522884650486492491894316915035982905324029169038451903971653665620115183463509573459819527779384023326031525379508310069301578709060117869529062277654187279230943493581337509559466161550777358887954818939240832855130197991284984038080528326244374065930780414784881410131763589926563050164955560037812984811195852078489996049548183655263040363510888174300721694708198957688836908209805241555711587971860169429145949438520846179000394127986438326343518535249597747771268066389805797285835954879408253849166565868437750257135197960145648632082251073834702278571672478718631275682591684840341633929895205500268399142452033212626107656081665888426415991181789212667016340301631358221734269294999821932567661441419086698777119519491937157559028730411199657445346247150244327282340335290540046798253928339559445529606541365102814296427092679395406346952039452240948559043149202067074556085894873755572514530650769806339376437048749057448859778814125367938982315321611892070394764404873760496359749971281769507538890116488253415658153476043470684581191545419004990432511107967239018867555929941861747785723909296800194995037082791111510822698672459082304601832477251666541018760590173395400763289325947586868113609975540829310314643039554322165567921469356872569307928723931447196203716014796817859211630512516934296158714150015196806818551802224173786140632496569691695084155253796526815971306439083719762014121550817123994460795879390363972880828120018666660595253421461865073741258076263946523681564316491821692271599919292785615408349998898794832277461802320014999631108464776207762844800739840989253935113475386988171794574939455492201917841575154640652933131745435006361457107121876267665335237227202462727013287268718571836811388777197887585632034928785856705530998138907757949684349157683127980809124414389319325847576377107981064257706560051309971391109430304271863412967958581487576688821494069866478259589574795825764789312759775388266998646934223687362673281823696354211817034891601817387509312106574314081249917780994299786906231845061228718189542749053569221861015030170057021142984232332498149576491829918273526215570693042851799820678175096369827845259619298937949286133542555297817058415718034658211219497445394086407626805139031401185245829293942138371293523423481177173380081804159453200806737359398265526969632266250027496040314021430521822109549325060263822156533286548636728075842926437667485625192508189742437823005898069817217182040587191131218489639274325575466019615746749603594614412243179722513253571883959921140709439604644397445858012819033660829927866642660283428921598492379505804489286227371512923776178595144090550326430788820386687112993950710917988996264583602634647280548005255347469636185005217973569696539026353163361157302858073464538875575876593017571611780547701268996552547592390074016239357959808914445481586761231581976285923864678957804289413438656108228903216221034473604161754415938554380414451058055023891535699715977686242853589483960157778917357074795951633782023964072255681980507590822819504952691300263214931554350309533401897402572441132383148208317067174379374225416530765332973791165835719050979593840266665659421822683804604941598682833759564244924869811676987948925717989443415161372213090097626064734280954214712556068379303252038706029266215458139675827548757082482624971874921780442592006423306714505489581709701401560132543385830902311497839973036114487150026911821256386993496890525065633424510016531053661294213104596506645772879541252755536563006590421432975774256050961838510970094820259770083377733732738812945100038720635102384354663794678278216578685579247857675604717649602235792229747439786348820065355686335591499330465939106917291411613721300147321686561634557406178165018461046810768293271168467881449513898105767020312045186003833437423475952874465651786145681739952131452335672140308359504714725439063936251812354888095060406012957389439427901966378184727744346852790856860623445175210505391105101390927904224364354184620396206182795338209382683487839142017876764199003150226571196506421573065068700912198215205373983559803198747872681347590765104264666300645259401412470968848093006750680783420394670133733856637708453786848834378485535439838151521976259451378884682131169659540891761491055921432609827467880594853713872949777371351115100611190221177442189876642048208799139457381568951456555059258541126418146208094843509524907320161194041044552453851894925816809181415920701567699606333030049930300894092304718691981137624128313194877904885074872378896535793922305543004640239904810287344536793595102945051652012879572366015798539384829058600332535742826189162023157451661018773674488747255559073993524577885668272000631714541625551230757088771009648837497573669185848965890711139989437064610588993124692507817763604065291523688581519908198236509602556425301090369944996991079702445248721206515087145729643599707309680017810449761483548926062673369273742378354857202063258259937950276228100075557709928265506830588059477722524317871582094137421980852187201027311596085228948262346846736604895779959450113508968219295076454221154655780206121667492793264264341596240363748385072971095489421218712591615497824503602869835974795374451717578195624509283587146624408275094240970407272658819153257179481107973021814034193239176211286168977361574066441299077399609377393439577678800662994225186948938484885051602579524014633573445572109692966900895513937876261594717356877440567258740595351660737499013798244566060048975666116105145098474029588269780010804469141727722785909329886388910489023589533264890830846279167744337838004956545382652178002751149979361870257623957106838072624306645074501465707829671284216953558724935187591615905171438771279904789355911039431733914506735468356716845563605950818865518785700462856809303045605839891187363165060083671927892877436498134911791136270865626373834549704362432672440225746502008873254458812868706214702803380381646596350504309867531395677755317130133215875258095118989349188630509588893565387806889358594585349563017761627448129221813346901283402309768306139666115336240515053964070257476644793340885819671104115253668000625367815437135454793102558550306314196928223668488495833606920995503897735274322962474025531751962810366350689019399559058849196853054368317183631602049899989133572070134848250283085170030510945439072006703442314308688790598828436204151572947111006841055890938516793090619210470689186029679427284910249388340599572848327727936779413994330448746226896586501037539996836135648669582907210814234910764590531890098523049144748196342765365041906973353422026748253102334447793239461991660787167236890519677891886259128274795085165271966063162519285928595539081815993762162906977384126912130931488197393933961333320252334304407669509841369144096733689473887408727129496621445581942214034406779497149698949483224459363361377827829290924998459267051968114218588297897997118441834711251037982238726752620417056098014741777134228577703805751387602865715813041791217685259365178916849770452758867857329616783542775784120864552880139940745847712043711382503174649260496822172579481766770754594053381042426805036212593843569340223115789326645712048306469246364991353065838982032574095827806568944041697333489556198524311461776506258700391850940750248272491168078311721111619333436328778677792665977862640332439304453323522981819753818135905884290082422405141042366654339756855546149535586065942027706039115307419332919062644193962797469758642444468499897464460762103698252787908846154780969325239821178520400279890751562326019639536532905776661652163790194534505650224255353679254525799565266247771580882674421116731160609960546727511506703252094137065433778680922322406904561766870578641351813865173052886648083258931184815300441663142854751163131952830058350579619294543305448032026533314572758225610867175760732514677355060436447379174980026456328601216450951973296187829941539489101696917260705366312901036814244618107007725254903096449791321858021786698189617841857590031936842897728037391459208500381539702128301755450268099224601311223301988605595306021896507430215955217415945565372935587962354845263586339832091516024646030171115789875234455285756714852127918231319117642730386290485194250566363476275397233947036318651730210791464721603394642270684390709086202259193220747012507859847835306174661852426202210873212730000670485128207941586277135792769976781887263658226863544942111374308040198584562130724037871657399745867470525469005078724792103655012267885991038157435983798100462469176338982906799720806572292797724884611109006337723933315506121293046381011109036228654703109424728297348603747332882687625793882402848635244955167353198736997213864331666229522452126159887471094706937529879239885765209205663446549869283255418942572917777805617553384633715396330190603569429425303734344015652998347567369587062868470439377052688320538103079937858265861063070623749849065732648294072281780071546005502000264541875408311859893889474303782651097584576504212550453619516615600910142892762453792999242072310081519373056311906915776965555963577434434752588846858240845765759451327488206860833258079280413713935909694893249580035513914437786021597777142244264741587064758540032683608795985388777185169783943774889368075926848992397355571252216837052200051810703406372526255388669693946904979049222265975048485598873610541665240300886950859012827524080371395570205466078722793920267027055755810138880908868690982606710303435870016792318684838771708255477439414016570767048061202034511063450191536416205841314679180014942467354293695275415533227462646989795729685997842405516567354696517538668321901222042804493950640976463918164129667859772886236145539672617773726968089333513399571974432165306334879101015849110404139418027283355778053174696569082317579090401954458666991855543076557717464684909885249570644221080345216361514285580241063835955024332202442504983067964043526266291098565388018560856725072916537784439814036402466713634701218272375442743759213867227742730643455671801034868278265238851333715205442466283300544199733451904187226132451357849929320387502626550272860569295541496157912515615710869204311472756752788824673294883022439544946020106891510153587207196041990381651861772583911629300840778697483314933845653232931536489981476646455432165915455286195936130894239373084762770346836116034888481950824500027358299370648582857616121448940827799866631620152487383286614839914739729900294805032807079896706647140849505391154567310237754172166941149638360162953731817629072611782967338042890949604064196563729841774337462003629034198282149050872605169421043629661792026786753516513633157537442114608815206311176120320028098091756388484395924302735798403910277076991759648631738623386527521945286410279652814286332920530169720346274849472399763112622142687955858978032298260115467218186799382367326959814286189805627215030460371179011969226693391759394229218411055558515978459332034969858452372778969405390296292747324082469327455449283030959813930270453213507782225552796090967886776804208040365205336525395122614926177534978412594382689735640852696700372582198544577701333651797678175141008110463737998094759891777306902482511914672347058669440330873393487755113308997489987916754141465266402820218431474898174378987994569535348906938276346608877449231198127194454730058718649455240730155888716149862898418840828955745165303495546960758263892504859921886353870701942333642469946977383094389588181137613469835450189844120645347674524869684581225605585278753165060041644436728404128846350278416537840547356951163517861732775146580606706843105685370834820976011331160714481778351092224195521810975353136876530221611244685513396322588458654702597035429961403476535626321552297152943863476413186430455625353025287830188845882077387714997430387619542454433124420347852713510285080900801794836898963709283594521356150398755517146386123000890466660045268379056389259638444521878456740855073674475775893684573483178089499730438062028890326128051872920759110147254157335394108612087185620439203249230182963490279721249779899635966485305109227543867928130089709154694354821016505866285869723035339262566165710832713236006942818188648318394576270718749968616978317764071635724797907065650064759215610703214704333075768427453573925663342054905015606474667035511016118530905836063541783546354608645601511320370829504155124875710111653316871985695636130202514968194315280812751649154461684078002523272505101516601628088674997343139536938918092793511110798261376114434566518929232165251315960848172730151157152478596215612987330591238880858957008474135483267430706434803400840470598713014504960492477560803157528259457761531914970204349257268220490166598241045958182781012600157200747591339749824826780104681163706739920092161771946427087868923088218930244884923714573011060222603412579573187374168769513700817733243903353005937298617785547664152595874589260452598843462352760393597588416990871820162008238526715707547161896692231067504306050610718011096660904453578818230730240234458862042444524225463467095132966697781624000264085395306235629937819270236269277074589771254076039885409387775622401992521634949322182443976556687431686326281588373488749240501671155622013249801160702587287615331699432262333363579809754519460382663709082618292834734710048502256593011255394837030248546224513445806898454427738269263559677322589919539550280506568301192587415076762333040762186682920726634435280514548810504101297961823119312757151515485517958783513210818020672451417505408090636680222137375428823866502694811909794605691211501462483838674390383911544892630429255944549068365583941042783128381612410918409965953822042777949018105102513332596756734651640324455419990201911022119305665348549344091755071382409856014494315030823258896830108109804121424350795895889313654381329985488025369254877391634963468296438184145468840928728295708007411682068145080535003562580272767788837032017170194495731675020727893716274920445829782076982529930464503090282288084474981949310211986273435536824540129829522633364456446680470763037573705692185241796118090586132752348451721686338700228194905872772927681012255632457947959664629034546297845732776551218392313022051211193402042853654922152092061498700261982428185829313342674608857705350714308179990974472401362665834815739725181942980965674262537964167752900913628064190285562250832431131746168783535013085275606614544602097170466627902081370543764700308033124142853346522696470710578071280670747149265409516199164324452053467672870425442104911031309602128724620786903290347627615329980572164650286624859630274368057408311260144909712029876775137977194981998713288817894093190764656264346169053906461155756380639681054274763400526638297170688660137471953820490905189929634059063465724303249521388157292525811104050345966598143066453026851564823485009851627738183179495102865709763791230996941045446372159111578418205831020184296292659329671500665004944216601435748274482152900069143393818390374980379130005116667775748337668505383267059868491908809124281375420750006081846100626012676857218541980790348685561702412205630954620638394156654007418846128449104125118669699782006242623282539200993085643360856006848326192967642442897065538079090295772326169700739828735244637585371192961164622006174804930666776327340952085303069683232996592930633590570845801020882362766390762793880333534003294570383025222732751123703366922191227824094099619163741039711212198650646492624716634098352059422679424167179188864968647843476758856138226836444372047999313668193346561668406743732423761095228294024306455450156185077093810417997308612289748266603221737039077409152876785642259673752305577163016199159453494622888823637668845314308437935260742512274545182526597412001016444032204423178187110657866996214567990832882989830531970252909536809345030574856373186524662135130935242816918391987705578284691003468047463179232745799983171179787812105891748102583817336864762105327825323957950017945964148352263585680124180946450363688478785070251387189091453754095496246703175990378153721856222182220010654041204093382503707659531859648486155724226387761791446796659367576752153366298939844661571603087160007784684160283703032667145245799405849026800341949042266749512695792235477863946397294027735718060064316114638142366891485234590157154549725149162221471423440500463568126640382946566639947914155037563305489300810572436026191598653495805690262879531032335935470751790965233118378054744963637675399264419261830138662921698345189417829212836810629642870085291688383740700242051172489561009469052866483082874230509083191423085694032256234715226678478428292549140688646635173231290251790945570042258616324757784121014111046281550685923161071186886431417208363919271424663507716820291636694017125744664481449399318434242270823521789602076911010549866965289328696709340738325966834434625444420471926803447948925788198043663119135954430400744633888165559062419747804502193466011190154386952023196145817836381288963319798292062893705630877099462170692352005388360929181642539834037062697518254968048095879685844600414326888222365301135859734100297653540889813390304378136610768286066766033463904289887205220687570657391996058773384586678511351634873336261173074047753835069314576250072793365650193994463552212605207804082327761977556724742871353499164237643813801902919540668288528669508484183197377233312247781071534984958175527188054928043039488392065506936301441453377935409064967137625443237878625551686317402011288309615889985113424826828928417616045171603975881544232435910811847146342556199148532309755901200938806002338064568190471688008641116490602355338291517267336439167967108491217635263783215124086919355936443311392955376237351970388761083915940946133594013347871861162843734794234082392555547771132411508292953930507201785988787819580953316119445362255376258634836029922887811805359322903267903761314395606103153520033499665781257586631433841032841318612683432971041049545889764937643022765490300972328693062914757703371647135531819874076480487307570861413925833129370669084693374158135572556783317683750768638346456493932880373171882102879175040455131034978373622703942517810785380245387652378050126101366712497004766903452658543537516333963989764159229136873228372559701434822999539512624393949999975974747818217490590235655422374145656618242071290375360837192879874065051809714760220745440264819142008768825094241338751146467405900453657701662519582143808348410719562799137437655015908322922768064015731499074364434166200013443840375434786251660555076714313301199165174625508941598042615226436089853134163085127096018292867221997275218125058796182251274619203332378020202925397056631407354182140560868116396844553716951260039847556221791034142859155575768018163798543051590377159295732336101900030699732647258816816249529724192591441071080361006607167032918689274745880957287378771230302593555413451617481485214317761338432063093203228234692396090132511477836392897981475568427586830019209114797045477300343719875084372886524390011353057727012969696165367489015939602993444467066726391739683448571223146768895622767266122431237936262162226701557886583114214621000478059623914075994652698726202818023963696030606876514554726631089983465374604757185738141726272063356118588699534308507459929764772001998391553927824079038049116151007602391333977278432183347293747590073038661916092653982242925006207823706316198737561706900267314879572123574924921916218957203499080311099071638893330986329647967904679462588215839239887647585467611821642174702022076395424309069932367439919813997098190705086588473269903850641295181229755996872441440839115363365542425589062341488241879500078173849627888067665280299875526443311047071774950479040279796649252099434083297333516902307985877274128631460574554205063726881202737020972007799140696997932956907432474495541089029537220770819026185783876515467581287077874102782540139933725503626268366425749474467345950047715488143767051499467145825427143802381985408358122215472831499114015109212253622820378726422211579762785334236175023939348299817462523490975720532780008346936548420898104918996211251187605164189798405850379675263159362488213432174773430241674299868260926465449688996448775236925624413623644431761447393915654628694054687313480232012274842105363781270009704750040719919353999447112024349149330927189279051961212034608500555633704970863710675791429897040014675906295221131921068860757250885996353002621653708783464693747517700193456871030704880431081143632511428658214422333135418684095090426659068926739135255816665985225797277942023312566124947977592814384857554099953982334104515193986590829041884430157453602423653703892068334723721607526091065438557204393772735066404989222973952702476064490493929992710647454654106763223329067911340003068480667545877533698049586125640818623250644109529986628988423566626457752808760855796879774525886842069059623067810911432278764128536187185179234495919935979205052539696618782350748545806816711990608201380853208192916592797628939025653502242215035102669352963502808777852240251277676891588742687149098180765556416178869451307963914340261053606589018065993715467389610886190367045783511469892724505854124745699196261217785775456858793669817760887332026394545779712045810619677834023905177164926036738415930564316451058540530518141565969715844205264230786196287578975261689159218438300826160820744689609353187338897137961487204317366130974453658065573128348312735751193726543538275411290813426168407458604237559392896101873794648057124009941427558045136559606513604059289418102737849822995230372796231741359483478882596735211496048990589003085057853533382663470524962939872250093736538822183804560061485897458752240229443313316306251424981320240356707046683315623701369829759830867845778789838926572999321244918838241200426600079456376488969365794603786138289312999689579984028992672126838552280625393348437192405266596764820982122962279731201944020685648642572167371440215512545654913781471856273955609460145436019673490689879262619900935523389436035932304785861375268217624937755889841839370512390000896995674637296328610151678615488961088205153294241904217619756271926331582469407549098144442420881427794017633462271450925053151139670070744131246638425712174357967807092224983316584060172894216557161617519805975907247481058668078673417580288842072872685518967142534737643172075243386864195971683404722050919963219868623277407011712018886757680987923468016427427141787274012966665840553280883257858952699020295257697773254586252996276001382432717484596294435565412707484340415131285538069156025813392259727963054041025763091104547345026257328810864604881587317060850120424294499693743253886458504717192198514114581325214985058347832985646580818072190180385090955470926396477765617644246328784503394009124509322981073215862756289333952779456088004050974445611757561279800198411328393615929823752836519416937194697182244824396203675640499645299707670047485980716192606669235175051789200230309003136487774069100653180932905761942013029415491465897157562694667906954452332084389498639361387175135210418881156828704615628554461029648252252524044055756486136819407279247875525030363541347082337640137258771608496297748564432957304018636331393313650761753051582043301642263904269353413968898259116186157632357110089238356118252252557776219688617911004723750460315603543272871722719655127991734590136822343133418011746142257391253898606207256335827585119977963925860900068641375288529856215067852755267020749759531897949759695683090677091505214380924963675640108121361437571721745834065549398649120524141439679522225737862268607570346910587054600701455256117976589870251409052708949178845995276492069564224243643689251428213634449625216610176615036338921456978386526674018196411808981930172933920125800612544818390794792461541904149768556644804033842687144300752060154615745038479702219666179411069865293309274611269021616678021208706117512939039431619349556935626657674592696259306723684510892321629571465302340224164456297247532052231570148966265894489750328583868388922260290333688198694027646998868848748312011647227088357003631458762496481982263439976789450650868019842228382484489653752798383611187499010824191185313892093933407851698360704582383456397903679275935233540148362336209859835304427946391008474715149894014316658608520756897327178916998194526205582720709195708797589556392678273572581956303821040078851714304467576336665443819778758913640078428784540729374199331198924292089208153256500801652368300503708537591171183233386173720944050623965396293593587294065129990365597167667728788724433407730163109248583619113763511355549664282343940615908450402021175207736231922896383493575011286998888968456033933045597049741234133151074182946244067954376891727639994763562180090102202441947571469049819526156511666945097949878233317881264592257400356156539984112648162596602092216369309241039084117181328482568552491960655880852489267665348684087266104242911647767291113121057195295440453403401560303930089406482620319771931191462597755798914688208459000097500221396429214093811718037929766056857012717561137316479776482331332786851475496281070977132951751136998040925672273250961255770792109895190014462162534612718643646361319602895496763139163767936881669246664256516702431434963163328685272024703467256443453258471519747936086151835470974681342490551033941175375156437348644036381328643480134999387803901172207139788940319368879468790040511877845101699543411502448593424904482326766930589249015294694358483408683983240100093473614184367333339746797479375144973887211626883829458097282178794410529252883828563011815648886671035038735392783165422566641118583622315265248475615614073289418556605329863644502585183356853874541150070820393809733647092232451006805638120771959098470470047170390173528636270316465805541920811972025859520734349217482399883607778426068727419015199683921049981098466899554563825887155631476666268814300881465390048225719617184186542286166558703598695120348100365180619216684924070439918035220513239515374988911793593648588751697163930846286152551333915426834462506430945236863706065406970102717550087276797522550400072681832595530560276735728271831292499553686719662198058726069225962236439733756967724664128187331630451760136636413228753002991509121078202903708053054385950760795571466796157034473978244169699288488150157818821767756414543085216701658307781700589257089457959685262418468796866357902697232897314243619717043562910367092645412867358221585527280248866430520890810419280632141319649662890853537078079375295502423093479268314949953071446073582806471961687381904869767729801279393494498260749300027132227234834708870240425295980192417363947998546017986671839475717301334211836400962390088992617120965019545847567448836296978875912780009689935734286840638271446356806271967091604342340389573444601604743868542546074240349016730295291253614365935856256005603232743275523897767424202779806134189246327450913564346597131767802614118163522933196054231817783256665967159672801209821009937337512952518306334799297606678714041017163808257083335162427631117390954163046704343380091249193129318608781599213631931680592325064661486049158765006611889183393808326607755395724347633898793631241652906970349236459002486900936626225090549366243075613823931140434882413304974876422088270838011688981798753336482081150411604162095020863078475845696681627379104538155222408344287416753184532402883911206731117211601564991010954161451457168239250513972169491621108312159557967457901507310511937494473282434876260168739686714190638474650898717730023946604439257221348873243827879658331433373821910984164693904422891221257456344693172195570914753441892780644600090508969024828151234301820851306898691046969071638173799983918381758044291913440363238254458115774139809646590061287462272173769011109601224776903539729159659704059571372704142346192984761099231648133026679446747518999152350831171501299882208423133702224696325985989880769257796030905453083459906527207554256663500495275487438715296089389152746372467404835666766620869265561656780129693121468518817684305305787564218144203291456437460960980486495675502195853535161724103512985648771827569313520245882200559245007170826888698538788926108980427492212219459550188353673472678897876853100189721222836867530036718133065367996637581271762390107970222431797351261664363393286448465312607267520325430993064216745025992835350702954370938460657069253866708220052735059517332235875129537286882681227902429148646267127139646906359109116009060476615340514792499349748664519200934789496687275986699099450013309359504529412617089435180686390801107136921054131321488767451069550435661964457273394270297033992311366723759670141523793349670590551745000652591858928386245140291141284574660934286277513375268196068469145467097190726997901106877807842499525154228367923578158651813553674549847085876001921216529413282515313217936921674997818894059160395711110840011874694382595553436389267570480252228136763707173721171587737629313983866111781716588273419301647760919456149513780755195188967457748953429673570754686021771055798298284008202231168001395894919106064852569454555589855163392939825347411140461179924915562866435563131261125070969861318546982523142816999870928226151681118212824555198155880770371430432662396337051989072236384744473737251458437335585159959937226794179421437440640091584054599604437490264425025768910976609383858386667824361680265650184565267212386314675163774670592421513746336213534617674354395441459406468018608611364638756459961313384862816311051837975251732860327528135360221906650821911249961720771838107499028160466411274115839892664707410934463942597489564460790401376765591360618130704143058583519860409776666800430076279513662183283807715751352244876210547545925158878487907250297696867692676845705369226754193479944811853748370331204370384250386214143212154769674267556716795821827650099504404019403200428592743229306805846154438474569801622406790522278271550715683675683842637557772060008956057087291048632092583467679270396277299653567618240742855117903229785911214997862025517855675777930139252597783205616338735740379678301672742344117447106955076611085590320762416190910762316269606037254299548798646775019187002095875721696399987062972788052439774849260937033839858968315796265860243927169462600736346092399667612337724128687987996375089138457060174757452075206658385583580778707992454600606865190765374180240364048635369752598125878715367688561109474860407695742902288949562735012179847022153146739148095864910315169372802401884827976103905770266248063087377432606842493545562426504715757225011100510130871540211315957001416930238608639840589016251396015738400771523007386228414763363750849556866386289278572382525024857670635968114321550286116132706719082992987226456356799444386316447123901841344312750588048133186016852206540045373697019890747892014805180681814340924787735285241284638731132658844225200344220356398787658724636121852106369425877938784949212746006316797209653171417200335000278559775045491955391343329147816975552939951291805547164654266249176016554069317840517131083452794197429674731862498118887308264040027436420341740121838064227204542023633158243094561115819406117047722229896144296467896181931831941796966106071819451274810526451755756734346741756336251214324332151354774199089617968803502081912955335198504089381162510317900462093529791118486571221433066192624682299269421360643561698942389116322784476268894107672193399159814179913686369458175770530773453959984860827791139717902580374837403048477094920684103473043892989108436391381145926699602904078089535047612175036277721237478696201024990532727618497977859306335063545125905515128660877804984900342177532440286389516189762551313422577914220406489660834666903872706844656268253806206907187836371170367654975397728576997707348644474506671313210337675610688927865047947314196283371086306247798381616805496872916046538152856492924178802188534864012461713697549716362996817042226470031132143262624978022072407159812353767981937740486755854814010267985407768510284742998512162540344362472747829031456030118580903571201701833605102331746254725999267686916435681536245567515111070112286368341738122409881485375573244507157453166679696462937470102574710863561887460553881576629412940929773042315390538728732763314047441805583994457261826755095575906047306605971049560443007309857907022302296635148069147045887163786158752828152302757904670699729654150212637039204318378495047627029499594425285201865652027588086808146052025947355354998963640991692317152677745419772006028823060965182848805320572423753353303973011505333554531936201174396812878786716333647470981835960681149754579793586293621882348299376265154929931686667776531241749936901969449648509577698451723996312041271490453669985575098998581515330172973544921477344712033451130086230602761775518000642494979105377022268932003229617993426987155362531153869508311791973845964835239477935957760044428145768662311243480589486480141209061432596655638210697616995763864337754066596958553612797959615960310789046588447783230254987921400736511920631906805085845968884375958235187500903973839817905147046251282989803569913192160943885439442585527525944821783369780677336174306737069300530494646354048360119022851068280722129820505511910320229313676707880749299626924986049588062319899370062807200255213001885975678154672144157147247181414778435768513701598586584196140838824510380600397371814246989447023603454230275408452587879463421265007218842313655288265897741457947916498869974972202192813196086086974205378573162104210826256831648323971731159939294153777180262405469968442954942313126181005062125975458165972467648343490054484135787533787812730109343003367106121975361752187798100285740300891359720861720436164960521081948465995173313848918106702768565998368144069123505469164529865876524069813317052734539902599527429919647345261764845041215735650830725823160993680359446432082538296396296843045927411828954716805761456038123114563244064393954803496481272538317621523044854150850612268828758120319139546759355319180935421342201375387139729075212229416646563200230188941093380433404337268245108580257944191578318500454520731509646002794509880544953154319888833045811989056272415014777685344830595097156152898416188586201422846888863028845188774335026906340727468536796474220425286297003852917906231053109438022979235196024797818065758140792563199978093893134488999311817755149970564074076790201465926385212848746660868175161460757011559948360375035875503438412833182292498528696453235283733920460922193548471090809286238280449981082687497591560970495635841601012023000490855600491485399756746856932480964069077746443028235988020338588350463236588384347329487649578733098701842758109551418161547221849749898830814146960840605336077991499824761281773404283118573084307032201527860055553413084969749006601971024926930445132904970196048171341324611258393868914402002050430261245199032182576258777060063734555812718311153066994765136257072157487883562986277691090210879003316886417660393697774999276122560711006122391385833948639042900455496653437949655948053674799821948287414337483065307153701515870108002219343752070184006473759944393580043685106169452480264874702844846052105822843624802789895114779240117371607343425479350176149794134284282220722746162937243014144750879170998987877464705125922449075076183509219909580492309720169468080724079832563956624495909306500945351154942634312074648656292539926843417258426398665502500802182852897903304393741273443453949413631734733890853946356980695317914943817895410284055603146073080837014092650489836348166538947345721251689361886701949420899734034494825237083739471026550996082956542187588525398509982629444333122627579267434108904201112147954200536258766266600796131795245984170602548706598843086985413472223100518484342338323022809427865468672273041427215805223394342210230573041409191116197217745400452400939119366043601477882980376528711040296662513477150969774989255128892162967781460899424439500338765983464584336668337353860619863187930772783278137452828285667120569627036355960073633963990729827708198511811209895167618441004057502818331941938727590807444228876790810738370797004854065641088794590219285301828027693470991671113444235853253715252752397985399936743656219399758990791220505056302321924693918800565089572902387400697384599798108896486276859677952079255374572071473667125474388288136009236020592387360595114850953508674331481039492521921979710633840779688946838139059837491927984973118339083451182249445659799173366585017233533996403206452702559656412937266043326445583628594565851812682302858320567431659641523979397491727500410174807051413334833241810720924075717598274158489184890724454125115153059540616703809308603247195855715394750516649803246254100249805273093648862074189174420578566635761640578355213080661203141865424895122637500269369615315296049626932601186530455829490607830119883350953024257342746371841263118145869894193110391042314485448976746949362994222003911828255250044456629325223844503152066795939461439636096333441888339125305376788726843235566589595622642615918947161957902744705065795712376966644436887117766381228797079177155178863528866882016504257114978995063305521121424253931061983113167826859701539179522267059806616448466602220529401268507849878749792683356478235782841839153689683703775312966951844344415112561080759758620084166088793447974000461355643618484528681968950804411958159057968487618145331150500905819661914502111844935268051460506202145628859591485560509358662271694936910169792221197562600576605800720103243478340192347162082155739132455287887941255573853257324875600588719451953003012769769976940326894327887103849155431783633058692240177214012623838793675464730137919031970412686085153359858194845847987002417598521982764395485770220354977356489557697494513446674196136700905491757960517135037683018021295071610975835797040119692072359348362673590446011336999406716782841192892779325290547480967549558315194114197506844132540259408491639131669401376285636418432763206234152852546490829245543008451569414343619298821647889705048055851720960886175280649226717691065471926480368348216171771877745123343247969180921905147701005716026210796523127136277386689220460523797486491452101501586356638240531750641118784927045775856479512896859097642871675325942896811299297562692250543586983432126038761865869995341177817356249696579238044772184575668171358465898283435917950504573871144980056931919859696260761223348348181494009173019856292632766791137380984958317541229070256814909547645701577250284778423241081132320851473321961500580609953834446013957018597723723041822213493861783014378654970764129805232683361846177045419889949277205228436917624818332834252910181067058435906034812624988620016925626230460389878922563137590021099489733804452698494140075376298457445577821273214289305407845369395009266351013757033998890333305929183729386117890000493480507498696757309863216137571964603402894258124728364257801773513396523033173391872070037382406714342930423592325995949534488674648886102456934371277621489328491242819527162651705036885152383233891787796609596325322114568396846080694603217979938863951185367280997005925072903643183327673600589474903684637495361377457111361725720135856379271978177994926934054263277451539322626725614407119117499872743313550256526427503055254476687759607465165800175613756207988808320496863343088807968179204257641517345583249599460597063902176076164600878360421468582453556088460323055136891053449247070007093516692730579283276499932353727084938952444756781194485521505687948315889825558589405487625626527730721613852554640541698460308452670792531320128946132529420325329687551864530198332585928845299637505920592510413336523732457641734413854711346044482125202064600597520302928885137561372854048308449316613558253114386401501086958206685814374244735709843325874767224989984542063377630096545749162295852863275935958891986269991625094875476699243540083125606098372721030027118683620608957845374352006601743320879965216260373318881623826806472407744063811208089987991036943294293409952879594513122466020895633882724706521944039020818977162738588421610681548592761721394548615321611269077703950860643623509725133218746898769565539112890519408912018310442157794170031199376799362545535919985343913436622165893218057696983561773912323742819280502731720342013698774822614032085120417723890607326780792798725687924582687204351835591045102589250507882354898864862911665480011353971752545963996219584464634251566983195641082314973585535025280739745721832605347325340814852746861264106799476024806664521205666050897541012379328260508192798032062851551112380951636354327569064444931383173264081692706807149332653682582182223820575899394779361016895848505322473952939717543506347615442799366429071770752117517748988524517912307926680814761565975883040747065548001737521673326982650354716816441840153557939421231321758479700355381293438384422865847276907743759948618372918791490095576299017142167330961137517781339228949528893757622544649353586865304192414073644291667626237249299548875561622072620513894064781315491724999968319889129459543258163827518547935547003953937263831441655113887578226371827253373477572081652374961362701055450307828659977872829911516460319379228755982523201469321530232118191025867100819676527425102767385124838311733999554934358014537862925625347414506327410266844991948183044802025113063582819529446881828519640282868294849661048558433386099425370819806978447132571522446924192045076851156119305233830801540543802364099439493606197538162647722288218879437445053056830391789248636949732463929590300809773122611336018555378101018212165731449970053196955824190363892064464882353370454201891645120513221493723893979874775582051773786197243790552715944608789371387569271847723058412102261573817004228856328720523949878011429927514514274927953383359642693560558129094452961528663740186952134665899949444007594361304126037993590108537465088036221953585241247667121045880213568500420631405997700683855036556042476387697525693549368419258315961139379088950770111919978866536286481365420603710330760078519315305684716886354672082626203638883577109589813135379868158272244042503460716342814609964865661479411373491889304266892920915531534604359101237373607920148402901040522952292681885799428910284266001056989716115593542829415798063762393520198148369677297311856044148283826529244817018663460911909628845456783733082639377888761310494514014019071089922196013555990942745157341586770585433966750730698370068253283187490183430257854493381245926588219370213505161574281412234520850476972791480485931923774303260000962248887962910167763940373414207926899521402803512403377529701295886521830815051873175352413867257766521001845056499624169253405527763028508752984206391809805792742687714975972013695889978723613932779115754662593411341161527725200090060303900429024024112034844588573368817047069329099353522452608798197255925273213531436903244028532642564411885506057768645639318895094770347316966382143238675737962776628045251641697559998461084954057099811621061361301178409067969814345278909731667372868922374602208132827805905490602106848205819141409290210439138736990935758769831923861190642232896801957502514821870830903809677613052820828971357501230609611774949721237089052820624341223490651418735067587577860840455276939168628324501381206378825567103633900689411670201422334538140049481513641943470790806104939533461062853089768198773796725020688146701116621997086799154086131518387129602792164003953905949247622753813788077358550514057417409096453842938591806392625454746916375642614535328038216963341403172212855187062781306596613193253039178854867551189578287802797905340203351208931842101834047352503691742363436883098432607619817709361209817940078803489709894165712052703858071210305892905678344082653889047237415839270262879608512426576432138811766743236074320466455428917379510872580900706137933260982350406756225195762582573576787260008402732174107126144772227498992978006545852642495590589443789035626938431355762979423644216644027622578763100323336057761348589970428952434738517326256804694836382447863033989594559857510588533107688750531904720654798741691196326855142075921719032299551024726312750609219287812382765549695376080305935851334707355868632537470212479589180109689415429598478175732446059258119720194974422556945346164571084230934151035786140627564522784055806117179513821712555404693986859262672159914930435735638695283964529218392877463097471306888435046635982514409738723842656196330311016209958179898009309602218115185057219305983431901554490723067649855022173784436741182514294682907356949661659885109648870691951956997917853342151859777726937455823104818451132959957368438506932683804711688241559492186849986377377880155923531222926326705198514299844645242369062408095546522786993926737915344013608385667352247520927196532951005354479317957316746504046804211062869461884522949023637748106535840972721696494407606061556905155465910173368254988987904276238214242039752602701882325740009430119682747076703521277496898357963608926338479184468561575331489293317287280843322900929000676066320513001181279562086382435397686410960706272585838976088515932989791077238956156024733816593021637029098388278989778633885890659776851643267923793230964032032427193405227610902707818359832841806316703954889322864438497311674985969505159623369455065994613479956370359846332951012437022607422940319107960548580117439096000106450077430569400607198268944425612825809671132191728697797514182165570792912015656878008678270412056189229492293308482191957807416242656120123579361016970091500924468069894142940019650650697404287908234300032075884769623229964803646440660940570345607776592481149597455789337081615469444007517144898735731465594956929344149142696000968166686200536762076548594267785830217608202975054487587901439592167206206095841971567528330334063453724996905089586425896938997537907054781686002345174442116193948121516110205875780187466737200359499923912053407767780318964997056287203957284022350883046502010164487949649793232682487570970449867347866785984777521391865258857486137464316920448038980412811913184894071149098701194444274452660579738038702989639838834727307012014373066914706206371526005234392824966846467779700182992804448911827428612517222964553198410693743186380907878581958306883902795276434144565780880158894765753574364677006584962094995753282362515101655047372063975426814859823741176467413899631694616576574044446420781537186109029581836588666344942313833410465038487965220819570910577249966877833565695943334895857186625163181295370199010836920433799812919434817311957104243514850761323287422470484239871898661266456822963857973328447504679551817148739247462834851368480707235326679564598626159401800680240437913182065380172695516067046294538047324737509285593515080229023120272719682745807009008952983234312591687928863434876608868029381470909275201524357353697155916183250150325563668865426482684430744527592359589192867470261565473121370677501762156680533289114138454556737006858357963160345123965489628452300659114449810095171284505789797466425058435215551939860608851425448214906005328081208812963829986621206341994527427970415315994477594457906725527251745840168933441664374145372231849433919358066169023145858412370802673504620782423547914288424864157525245199290487925951591203609487703703308016358517594833800314522819988552826933135845392915375106224245984675514467051895437718708983172544081782190072467700960870421784996959047746595873118159303111715233582730257153009330703092864220887706012238231503157958135779774441227499695243561737915653705094019454345888789902359841949005018035729452804214686914953295147323783193760806054709438416327619673865497146288364780737161789804297570219521044431368381917295238453866644452395859498249590830304623813342565384120435668905757344692130157800236777328045729083990907639855448567778159121449221153916909240082135230576055309437125533129719642906881464728922007065696551049991947399768060826414069180674393839915083224745761452158064942224032125015836275049403908151875949074154087424706376458490001590776210274602393437783382358827859937826131156292746428635393987971699751425121160404387961800610035664246193530375758242668934433189125539864321896757596402891296350167164566952453650286729317289179764343831119901554326743866831563873629684421282248597562253560926459742482565830064339423136004693007129013702395268982294695014814272949172637463465176770203499715414697255162923223342822107173515878964735598445648378790659149074595861873597856312591519819523713349557448062967774211377589921949660315666244914788961024758807749159979285368567345675992582877128447188941628476233557321855831654413389061795921800953197519935423621242851524693273375260566334497215699343405073324767561447046267027749404087345980629559842371570766402139448429677227541415357420165154015273854475068149869142062983067523799822718662624857841147936443190967757236147029027081827615388986311892014989596113691303678210366590498659758473643111568986346565898682179333537198739083514082106989502884358803589621785541365238310655184324405037610371887503203416749667671279675596183650100818768568933798838285998288976270612712231539170047597960417888250179778194834360442940968949558329765306804792704588807475450321694801776917683032103294533748322289252160341299671353294840263179589893982135166338407031553322343848333541206861629081243142966614714369460579233590373497427339583227348983775036079990980020063905977325140588210222058816780006127253001941999110523798425565693562440021156337604359383544892292740218290419764078119986766329485725184440298822132766045550818331153406565933583423606360820985281815817885218388196742554888152360365279924040152971167751529586945459694653739851118605009920875559148067537659686802329941168822043862044338460563594074169538788601143765389091625407092839927130927209825799735347061587128512288481280645088669962351279794709108233768838559314558585045159902079037928145399996928639406138515697831685958217983562940927534431380913888892494970554535801987755796415919565502492401589946924252956655233604894111971076444606331407810369555116276658894343833067392497666687205064788894084195902470666124858958393250904196470106499798070602246052472167453364571071332984077256705943107393538624218686807304118503703629789518363669733806785469533979979371608588321897457722506098542662827097918274771518847994355298735105014366011733092585899448714847351864033039440877767030983924893041410186978815494307337511480535679415129912400967152434064264026537007752835019696184349213026088786982551834575862644867385224080571875840655458658941204200449808262432543389068834457137308469271153627635627556891919250596369281171670795410765666910562164428652121128939863319117194105789198995018451587669896290759760417293278679610193279881152497728316873953792502558354304911158902101637245678235067375564910031536832023199578297605581141134021999289120107305014933318015549273062689247745778784368019159483869098108469556343865194160688164048282360083757982863673388771628201292096760757157071382005537714157987412203445651591597314643653387638896027465076263582923435380098352886224510464366146290313277940114988548772602674719532932499441798478760877572974741133857998134907631884857409839898295046187845060110795857495525429910354046596122723114756266031877276211088407923060155744424816405816438065243200407869420933181354622131957628843662556459602586731206503427686505595884306264752883797281384034321156343838866093648086101145023658840350608710205545873279037489683010194458344172691348182182293159521697461855220216440294476552412370816881109973491111205955888103946894810088278305215878435506738935789363960261701418245871535079988433719920512239775772840819930747579055240736167122364604635934745671252293854947255655506445601352589419703654784074425668824423833938796208602041225580068322177960323192769915749740368446678258749216706857444096704413587397477354753360485625448097639404487779553307970218272895376736110431572810419536416472440273229487535013857726440876404028800939444155763449410853692248758289665684637984473664394346530604145839000386283270788383690442111242379046664671390532748825362760933131245001085415828042480945349324310644532983073527098287133623203174790973044027071383501004172190223319824451273470959144796060022819437319950203002105083380838889726340215779114172371593533741445459679391470980676162857602210374588086592805135530843585379040249556001032478149931995388907899462917001784686091920750324658004863918588036824607014847474740595483445938744145200645197353618911095095746729364139660053795754927536135067650786366978686044787103088654668128453362092967850125398578032142503625496993291970100899748032094647547296798942189188568472524063765094789150030595171691344662874226617978794960399315885118440757802279753586791119388787722493179946335516324637482299806958789246623413478066719672957067215479841510596223676308663494149046317925832350788894696965501691098628682375347133790352500369388095123198632925127384238356301917413756255344354499063791510957214371158210397873885527133036923205271309500840625096910746999583672607685713777734111575869723241447121603395684534650970265904932859899523893165831252857728696304345727030397610427707805646128802795200608814406808095998074583794370040402675714319581302859693004469421732732794641961857718986328825883007569751110202034399272961832149297539775198093915693759129948851790561360315984123157883869170040184997625673807874667513464847671719003010064373306934442590180559496044722624822768264243956038852516669939168554535903597466526237870242984767974001950590285703824513259820304994889703788011095242333600779109592175792725778947917664493439828352563724080616507750511859790241252858800186013775144907585410926765869614551120348597297161281419423560187812407433847197591405360287879936434905739516266660692787089752120058278238920588984504763096159876749781306720641548644476352377800808335060131662930246794923533752619756280210417711206749946252958421622850482191246456840719321542681942675723583447749861354361947127010719864731441636601044745082601781803213823172892082240812392872585781714080309251440531110702426866099900458976187199381717187004244548045793063994682707243133067015760265851986083484637621863361080538649079012532687967386454113510670822204028400096544017660123003800756158041881974598605369073365060345908723741798813060021204426916685310025842490304265142577664662741363840138594473861597234200409486457535345941078744228153951012984956966647839124390752329524582109183157847895557186316719556124319984734488133404790878700183358405608393817562207469341439418155546070481522103791836543162147279665359599491769181450605773691963848756230003782867782638109574358083870919459343906633557702583170821609632596123317299449516914450025417740274090935121538225383648699187335503271402533677407882922534906520879974965132110743393201026478855421973001261863711901968780091150849596817718438810134945717502609701434977520298541037317851992017599268032762047340301313762356723128540696993958981312908098060446943159377934283638257114575094493143101513483610031474955043038808424200928820070210515767621054752962792542651261411494063692189034260998217988172290080570009819596187723736492930695577819043206060508005133788409123019314413865344678003422432322431883996273983638499792391320217864423522253576443992752500560079262768402699634627514331028727641996445506415495634266600868792382035851769983646302020124919259145678665567034143175374120598261024232543870613986172839904892673862798155106070754701481691822031892786255619926457268242391050496336755717288625957969382435455714128467553309488798504109358431659568536687893956689954925826178413083546490922150772074190256768983573003567887247535552827111740816676313284265140500915952469304156599353329356711909383779723430475418455183449288676436489377776732987127620720083052871602121552712402212950927790486841779802538319875834641609236457473993065509795791230705002886046368762761519380333537792370785105970926382531442287388608366338161723195105667135743986744880705797175192053582206811662345358261953245603490979183744346509657152008615107320097916822603078212017548862366045669181915934834816838795057217437356585448602129304719040688569769185085384402582261821717781251204068246416317973604932079068269986672849479804123910302467957189947891491679532720400116161425339486342405394608895722404681514392814482027421753867541301279250269154470384348205202014738907157979674475673717785654518900804575856727704685970821012256283766912100964462304000088519465685879638640652134280437064448785612527166743689074365902315611094572708275743947087119592463139151988198750591659467298257901571695354843306881509701407734966383602346625007774957470577833920648991145505170018592431489323281869506018514150348612440994789256207300100898284154620364516874092246239775491770999927891315452829678193540035846631207198179226632033761081540472145062627017539437020228470822460711241957468220430891477897676924273834094666774018632711503860808918528604133839827892594998519512038189190375860852998446747605664634127315048179401402249181516512739057469501980958494603473765170607589287003652225032490933064424522143162648982670711436254145669841582634052590448252885852810741235833069966786537982230118304561177864630683462960635879182843286276695826745208642708670447545047037122893303997121941379436737662950207443772524691706153330333114900694732201498727641362970703436030929628796831054605386934904120181239331621978148266588624980457099968835765520729266165402768623248204924383265049635309845228690665140366307464773286486484547264837003962243062596031973121285394796245604090031631490879374141382881987789448775319713796728953702642639597723161894472246701308582164143235450352849956495794948063980222195401265564085354621424500387198497921964035598545421197847820126864259406743794910309128264058290507299164190343011559595584011947466330032705665903903170119122336010088676003961937537205913557379639705206426819090226850680659951053591833173756402713912403759844424297587253362786825270297764869691670591461577738173796791557612109883312325604940596900319257342237057266719132299114278238631900355056263924087348193346864354491360109335464879039707396665543917154712033912480752604022675417774018107583983799204079326766733296655043990545318604552995515836458151704145925571185418766114200800321653312846877313026509932937027350729180293744392165234077078156734016048383426357130200280768172495787818674371154420762293538827458081679972617754989134971614550178383540455953883918184615124333847586897375673273317478474955663972449876899313147704297970100336116141314899238835497070228083632160544280580668777969830939979361881128340172956082022389117981539469416161118795793867426519052983958039692546581098369553080070644107226721078021471220292370641670151087638303298105539776507137737954477712725430718419447188830232447172357059339416188519092595537647805193820287655378825907560553007990386112284307999611594886308993436356240574770529784057263203456905860998448923067189111311510686760514203506907242329078119178557434158132664822080151383796467293467523751959321293714108918708833506811474182643152977890443531888297589355189478218276252086819071774549298538865513338576035737363191898703707806201130326018990508287526554677049043787619679035697677684381260157353191287088727316715900839787326751011047841912279043596719089383579069508609156550737344714657328603790032077017735768722236900179352909430204936995454262592666930156293388312374148385751929674334395990737565719978059532234342685971496654978605616416927754500546495919567865563357239330580829609258136987932116958893634068175599182212996363202407584338904123610675037282035467985772179380737902943676252270314029347062029947080438826788655480836235908896731588076142942166683445237603043870349816213987956431186101826324110150368955669615724122643018547777207217169611322727038272922558102238412862014057273698214046304184451583207587684154057280121749765523876880363660866573867877402411869501189512050309342745817223023094698699237743574543997825145315084953114566445665628182145877642051679685110115489932096355440138649744049672599934000777905522999644229899967079189608112882890344825516110534533477840063947251608369934177199690486285904410038452281677573259814154062994896229310281816381025002496773539707872403646440717535746501216410203331152286959510934435516634012614150809180116161942799428181220860701143667264282113921513025527736278039072103351575311010408219266793053855760188035260480911804183805748221459910451383279882402782847084005261455688236234667097644780657281545657104815085163114537421994894556632721079228579233223722051276687232201027876713792078546375524909986164631073913604582533931084562891569487630754200312862171916311816500943565283524684331121193899823232104969126343582777651770563490208098198507246431953899455716225324981183114131516864518918131559307144111352773713609079427828806866391657773598723635146198625709320892311827602652085895063105010713416677547320065905980440036809900831159702607146457490499164740683687208894216772847205623042267121710215644401290042120645718702748813068361159321084239438737808388376337191001950276353808574592326102372960368644387037547775455877150286923656531041109374296667458623764106535496888339894918313659601807982353125985979477510483058164464796407219927196353882372295036806234934728410941522536051829068587651580206437941394222239804651491172948823320581817558684952748123993052618953408161859371484622452034122201492134338247275592953908775682632625819297767528533873538258098636364762336950657341342245613382466376071701176580729239798431176075658938215295490133808378555884971065594603574907608175364311936283301748096726017326410779826383264550669428821289491349612920272606109725082840472211394302550054180065398520118461499652195100952668192053052490812536568386441752589336682963570608716917916409066906675284313151003127918467121153384585054381191320243291796980862002512269447974914178650582709088458686392950361111900837081368414783297416820071470481500475768858121259579354443573655916937043869122509223657310841554274506531058433581778039209429855038952553043114075295757489777493032364463679178148998235436275237683321365538599498708806976558087680296891763686026855458340928062896368624243721594077215717259584936372582226815694841592746009157128259473889770758807956009143823251164782839322988604849186676579919580732487918086391683010459562319495521258345692914794769467453805663745997707360048216451616516736752744889137903981668047444634357995541274908585267649554353135002065107004154089444755803972312544426804488162062845636194246543549348903353409046840619416281888493654129532776181104651890028441026391313905414700947865007260931047401590456891241713289011225742231533261693150788158039915042780622130419944872990862391146819622725579244778117108846387773344073517146762648318905327403401971899711336828582964017600014705915075891073970288904184751317261194410723489307064908583558115096697995322754134720202117327487017546069308562451388342807519722065920548091148206402128487315460831354272476530021768209213647459350463170729003697944315165610896520656144662553662519808561617641182814984583151506831387999404728620251304412054879671627850590192198489458488424383409837826047246329490490784385259732274784724135913333398735705829594527440134781210206827666788255250456547575215968379362085735495865349964102025997535119104106493620236507600287867230006040316724770760299487369014755958804443583256041438859221090367418030536955769009600315331186030826048528699337569263668258640083397028949230382213265460221256387760030935464597763439743830076218593862527214878270311736505172177245583572096840162422631623331624063120708128673173431334697105555727557073654020268967288413911779294884339050700374394460292689644482113810921043020176240544572004064254458920885019917589038780801616343608834123274881816002089710186494893854174256645874389753636958929598358874328220739163082209441718604373715841136416201267455969740343176047240839558192101989834368681273175334535340506493292273765035061377830518963977297866900088148572265262340862010385807134949486704163650592184745342452347584878146866203527186232763941960134112480206061518012282357876967319464820403718603967507120237226983433547884851984297977098533709402940518659520632002999716512888684514459260481953789071417478941212538703699133048460618527073508594322082841241021010864258616607357201855609526843835566124600697662408495264872004414698991204865329978072039345733294123572090671614222351217245798596998778057678955255697613194626674044517030869003450350930123306243978967472902946807274797621554677657959279250563706354008610800855800513138267841884927480063770197334271488318134708323682107403154886375439733175973120440256531028512789923166123114031967164204585988151943403054242186786294285844938324166684189277847779518028099893756457415475415176797526135930098012135998402199983657518639658415480815843673930686929069415190806069390649169003212481448260587753208968144307414905651879362303120617329104680032460954666324668675036375178045708998495898732057547606115006397408708629445451510654768422223295547506361990389443446654475976154102237597070446221487851624942198086091001870305500865047501638091369666771420405385575514981308042456197026362740936700958118597228423895342615016196245223997842035680385489735410621597780465073211184575377325378670467557716556669856050184537724807424121952849014209947811089302481215080206909075422023753801804187275904768177959427803755056367221538964572333538843501648245472273498081029840432223662974602452043629497905943282668947482429104469744670619469214209693169732509655333913840349399599398286009851764824096909393836150033313300364559433738601458274124763633646231483021699025678307358737562123738472664358479932543362237447115891368470949826708533959711119209726164160968414591556546811516644907218105187433771966207482091562616557170774292980806774328430564025907447587316742851304722213418875464546423815754795138154966724585663915543980472957272059572752188055044190763762949182336924631998626284475213330052516940835616839555853123643540831866942583916418864064101585762046299677355423450675275174899155578499975181933348045570592907419977144470237432730285506772852156513031106026818570727896667253375336139103663190204057124899564998927575285329991290692950866757499910604289864122705269037832956979951236614111439567917595053475629611104972261586817096765617252620729049057776189063736960239825907139307921656308575776868684620248364309610130560172711774038676150030279280125243801616242991607741409210112201801348956323326930816301841993188999708092053808004061359986438632642573269696359222801615143930854529897167030513576009912401725153109775281799164587095677040844208438720471769152077640107060933661247568022824342331676452209857149165809939817065327166802873541860425152233096066168527163810967009859049723025493804385572366188088883959679427744500166075162682221866284934646502775248174618182457225659364612131013586257722620409122796116093107947075805145542769676334154458145023467080168810255777207099854220676375972971112602413570225760418350328159813453440850174330705891436810493228488690512130163078528792655777633666569949989041120367160031119906969806358517117721697381772664430466639053496645962706212516458618375687734732316271368171315537234005700220594326047925319725431757320767358432850350760029414169849161285333805297587750204753456287745197921474353511084929462552184789637899050661128224131107939336354465998009768447168085503905678342509691427310482517255437669282314478123721274481918090726297209109108523897441769070471082271796608843294498042456528042701235599314818724045250636406613071379044075426504473016944041079961052008097056966991249243350949108764186072629271588876729871653557110779935942020991131982865396974008657072759781181188321156615850422319539649199973390040908153952004645724517340414024297061534601683391067764379451370750833079271221828573093645349818467471359871580098410859551913337046914507331340004113763435756901210531754589457766835267335778051262660536511250415899382053956117572422183228844750895263855759855730695530640638067036932957189449365584176177507059390777803228020089081382625712524413054762638166039136710658387635905885097644192849611143455250086627406408340659610413797683926910640721793850900326583640964522048939436673473893092026343579251787003409643855641057299599924138494245361143675318985419642640198476347518201367317800793741977133377378323137661440228400675819724264826709067697839874684634624780349923948874868420897742240341281689051029704047971811945581423893463701429058426527732071905068288766131336274775499299231013803730007599751072325134997089195488676923448033899598515899080268618688497567545643630613121953024916031448550177679375406450555090257056045039599367982246979057042894060777707426208112924873461983868663162682117418000168610044861656937744847553134705636750768487803445058294884400773859491450942927606285685906218359888824135077584500853675198436300512432191104113466976251538548043084559792535209565456507060809795776022602336285497949198947005074575970719502655333611479450546486829996224897995675308597032280406997210051631645158346031873084685429664775127539000345031378191101030430779464043312765761436186054372287955382357202467341006042977440371005066330762378745431471678724589974353658203748279585452768321465600377029593660966221221120319373100447052938997441801336101433307397387663903736373860692006824882856060727659809042954300625857987306021487252888416639201144638631256702773929332026061900615871576178027159802292314549801229263601211446502652400652783553045995956519387340078595021697531370746888378241676935267984108039404882316481799761057063137127425319212191781775324231987282852478979066753450358671109538796278642743554924300127892285438800434544530636669092611436570102932711708891235139544174728461869882283605399727178916051451313141485531333226822733501386278910542886446246666403293038646161730875253429672130405592994811436964197421331663796204199475144395441749066140161122270130314031800788319989462814721315080777261254776079841181385547876174627207580713852691029205945637630695441699655609404151634216082018664090343803432419207562489236477393229555418176532296896690979457613609307381095531398313807204523879003344092726292571209074272044260340239297704116338530266380302601689835651925497804667713703996382212540547761846704395660547998448978991039547934524939127168662744609673496609800114421012657645147263171686992392011957204109182962836879566394514123488140022444955077770796739847811985190541939495061624279141280896765083163486807152310222718671259778696258834633049832657682969789780837587914137492964517364085888403960303043208712711397788577272646908276584201638734494498995823364966151323233410750313356513643590896550149125754202465441656453606447518756042153354983933132775199619794016260361920784944309324081135557216390612347967318219673104412113382223424450198141265334397204198634210130308776083997520800747154475962485321496238046574267138704770009478996113015004716489304749099632862499711449450728565045588779206000986628663500517364299646114222698445993721692605152809729895950376316611210426927883496198607079404419784995275712855504583728427285324834512836120947333744138360218824862826549897123292307039138330002646763471715596290093475726976111302961126645539448737148559147879755538047330290115647548746874785083554900030216486812155406287539595585314635876420606920533423724175530754558203204945441331698739305410667163756038671003709488906204494866039139459445246444351147847619733702035954822329721489702319666402806166278051136990401835404724998110808084292435305698481195311675862196270489050986152137872359104940702057694498060071614512672766361671626576106320460840552885875408017295685099366134844171110057549379238847123636078787690767573317984305561383192981061335801593423545039326646892240118631714937885581628057551103775208032922982815691823125808124335574695715813433454337898035054992908078985687849238038947191558822740513590209024632433269116589951415102314012520046083566570253436688827022062336986760963067998985029415614199608443175353260228952341019450245249140007650805390313572526949744226054605044528643132468951155879041024951246784165166943142116379119949203408870832890968398278051952681491485245133907887800226611593749008706904259256876255453530043713860458734145943964578846918652832004412830604539620023899515297156924458605246253829165456441358079232952142927288585041439465477954598270641538424178419716891668551165731295304157393638774149303361398624799529764723140590017097434527525495066080339239457273234477057361150773518090027310018030219698152903023900670826179350516702817434571171437435526946197199317072037232574545720569994557317724812739751905772534915959378327184119552578220070240308133205176948420815654970649603723339179874880131925847599046628474894033076448851048637033032331962675748852611180800074024188614323074081366307918777311078451533581077230944154159425339358070741966265094886194462746359854414260900655089097354565194079778310594515706048270088500567739462352635268619277906111172295228365673292213415180532542292436232642603674507549732287293907197532889844057866459980813897121759916890253045615883904960667022726220973009725990234605265786542050920561643683501150336560773697313985265894387270216574304568352112167945631715102071313185770144139010808500607871469999180588343617765950440574748412449764325718601032413346456717861093806012765994716991806146288761562872374910316723074566499100003307280539277556773406008020704816074165229697722122334558874169882122215095331396576855285255709547469995161504427474980099234337690448374982930065218215474992309914523345879978291231275778876415820820673553453553571612322618987210535426111001598322170653117094157971666957961519588796946666384582137867844209515131993096493050766079565218024089632463339394370164475601107200030394180872913012840985007345888887187516421684907194470054035160685276692264029630120006636476203230254495100347294933069685227654599620585463434528351593538015314842707110684609961071877215691112059856367483788969668022196611512055085084147511568402586482464606669830853613008949166835498576644807524780328980988316763933387747181188166539150306935238176529683796472829763098477441008786025953749934273968975242416424023216916202657458886747233014062888174290821384336822871438855463876576096138628995777243896528661002529264680403401939607657172415304407866844582150019190040944300116725192466966242752121669346250467500905201212027168868706839886671854071779846264588712569935585473311729926432967848352788306565364524365795354161975607680490960944309461928822056906117781827939579383459983567175432830625550230950344927373849059322495113186429743735852097030044350075782520984004109704829214006657936397821102950726861735494037250113221972071692302143917663296765626384764314870464363033304968600793179060613018393254561472559655858594132193354269486406965512242819649202699262036549753821584780880400162555313144472917000285344780205832472527289727087168431263294558516515877276000777484977865938426833828954047642217468470697838673099778814570235156003164551768052102670209703721501627935223866451247863098406399276554632722074028955929480454835740973249550710244618630666981210128071608634125681939498766409304202998542497170049264932530410813157062280325695570661729465441620533394575737274041956533535420702256779738425765144765761023322369340437349686205803541410219251596495230697109402183118506704227667748821368138854692087677845078452161211548305392083254707507961890558027139435537519434108647461137383074117064916879480108688946176611227356911833389831067109712087061634339048317581163420647886061999492986595608761479270627374022560198865332043930095606223050669413327353800488592668413773538857787973098444926470169903400918936890610582685091288280399727162605188815957763659145706989637979594035768098948207621492932739923226821194464779367752964408804212792379571695526666936550184377465879220883813172923598396283217823944132999952645438125429027156406313220998398801173152812563293925044074126096148229876982234272199793723594309694153293194974050747884853467337541824377091698035451686087444211570190267725451317972984453246697315154675522656865680229793577807633707940122616208350332779194215015865514222773329542725500059502969031101716361666185174456302988814742285875284300643940019174708419978770936473544898200740869873445495426686227734553808353292631138991435050935469383492760036543032773118311070874687969411872198327599775226149908082503842804605833979304220352101702543609712077620087088680905172440208695489964042094223117581727827595457139533780738946688842752405975625736870515703284870219880510986168248075949866260923495037955491350456452627517682697445046886682501187224899997145084833905166960759722350716667367680381962025410407300533364013377677998160744970505740071048641489436772056854219020258062071288508492121469887439017324703366044618461691744847214207658969163803291550411002044981437297566985435291512593374439888993120203761649053400475732950029996536996541648824904641718340310979059255541883591420279217038067806155636810788606924373150195178425804723099588318116591831892820489532166471797265390356955591369703741657528461174033545060365413531934952697695937105176111625902683445389734992372584578424082179065953512014550063550198856251208946896203545580136826886129885755627512767128452745869306442564052197853363011308823327062214099508338258672408876074611871131807823726871890442021792242365145277152570090629542788249918911313601756380270998892741288189312318555027427074095905959083044438658447811744736767007273106440770686457060750022093269008496835066701725854651892516101352531544338067220123020124869851903686660005064205907385345744852072490893524230366988212250436512289904631172129228925044339868858833856714125479826234794905329067255142352448345734425713834157268856836732508973301603533740924413053978330616188748223218421654796929993792817391548114711182531613071989455181797793020112770091212264251436278599402276957723290444277217840483085260330631800669157888418328385278437297128148169072885368362776880387017744843734011246612207972080721857030035001826263167581131121428827053305416900330564709667806524828811093327563125241166960896110199583060837026377159822849120981930714763015039813606391579846487549081003413084844035385469493424578409521421581433573423644936490235087353728096691212819933650348279330186156553066673257814952595016681429662627809551526079001582760336356857262777759090587993813451691681917198732301767225333691142833839826253152423298425228107613907687776146542537820989674437196420986749915379062412729805593441540494882420498376088285296957897370377241258635471584204848218724602632903701707031390994272690394035080140880618406044812067416918317737267067236556721215251020680618671299135567122175996372153706464153163922289394683101927488965586023471422759277137791479692057721602134896998073879958464624893446977974026001762297527145388257950564907702563137287075386220349371855817495859245900674316513414712895449484654905652337932274978991976921015824416077289001293450458236558507139826193052335395261751876654399879251236928478874734697105813422136647864067705965983024157893839185787973338105729127543762835162202063062723499876482746556959768259129743387855579214929607018792869508871547435404432208186943552587004351109389182008591366980197534853306702416870286127469038565000867011265477314791043762989436190599513702414206554879283233140567871875895917106383919355336805683918005080799321387352772714921801230530130865082941278764557986574438594503663602281975610726807056177492799880617375282382451553872736429871596065957149554037461393872789754132460556752609077664400661323623798618709529248087588339884521465109716281908910255142438486829237127469319502701354583614179253105690779360214477193544822723097837720019591613031601669221104159820237293504915080701727669861030962241458568710765337744533229852644941165837435003552342580367672132394584694943207152198170183003084534708929996371748657346300775716673513818677060180642532656564945299069227002181562975256129039489715910763497813240991172020657596255461483882161930671159884790862968028688431601172307064797378664162283414865260911478743925373071905047174995656548568263167370338654365121682908403613271593604941876183679659668443857264752850435880270114685958120172468983136467339068436993154460937445458780503435652300054220856512037128941114964100937194999624908069871602981213861471685103746006235529526770057032525385744605773237927916558342946085685168642313230187828562699660576751880298452911608623430427425455036640567788021043995459761436590236214255428057680818949600295167497897739378392536663403641429650991941559691283256025947693247129028592716548801181142789979029554501425363406504881821929050442925401932048555403859636389910274156551983175412365670674133238838679023370149778933848544359120484582068975683327993703529251116075112657625156783142946938896800397712075019122209667430326747576058558284295448477723336186580702098174592050294864118887871034585460521088836790700669770686702071326812707613487567516915989116500348429229975760836963340164784255648773525567504469530750546819053704325780014966559926058115287203672460146743491149958810645501030251873331990358069563737028417142192904516460344767518242850454919728804065233881706026428223943195219840217397125140112801799926831437001478620876315154882844406197078811439830303467191496032329304564966657923455092043302706003359786405543166193390770553577167172505306520799064835814567496035077282988010042951454193370002940457240763231964252773074946469988824338608413508303986349812054516651736749246530781918119948146180874614036446967610141775695359260443873095320102196855441101933223374435543533578744411114031716430879671992040642651833974900408836967268497833711082240799114571003807683005308006224203467667088766132956381166759545532723740079620565037800807319782514056501658294022817060415475993884865167026653329424792023531106846794653038709316103883814096046840133462651712727844244266160241835176716811588258770076527990968210212702346633720549608421105525583684497630209578469317571763866315478661272271960376168807959294530647700742787499822309044362133067796777530101535614257086568031586925235007103481590670153021690839092502718726063685183532978327885292313762481899812158732951972875815499473029401660989214440242617573458365260869834656554946040351196926010413926573944242417395360960815141662498126655036621129934231936902521494869255804393364342197234514091539121727690374098209320869263033057819335786144148968536481730133441456769707793407588552973581767126384521242311282686206901471304363435794242828525139737738604525011182015328872382072569626382405743177375122646112027540164900888972367423594234708976456762099086015207451283989049805096329406322482377510858580236960182078939357427871234654302781216925435584546082109587669326618909278346562945751155376807665836246867589038819243170172600212229212769380306795428847590858489945611290205044362149022464315091523037848411801657720156935319147716477163924078006456950395836590766237980109390987880585514705748210651584139894387600344992960040307270281029069986148445896982195508879380496341397500761570154961216323031254594978330588011824153643742686021816671132462004285673768936054757084674154954276639314251661069871718601548891320273073389091516233865197285464488469032109497351998599144518152514785185790894832993043590125217375452118004052392532853446539053434398095504317036861313791612617836338776524391533918016875967422893980718536061797283505884973511739171430986404172608713658708009460727432621225727427846184610993979797811791663333243969774823913218325297477875538464952534317398028978464329839039885108164575786084086596927722783852252520543444697550041500051176131273688147759323596679711412477136323964922140896135410953494196002439450532416987767596474982016962385377913026919387475555044340820575544988651592465176453541199030844796210170784066651461807996293215749373842112709674813214283429210957995933690579569775912563295811362815847434284654125678626896078729800757028328061567717339747304301714776515315487251535198724594442243798144163178268455300205950786246389383848162561323820553965949340189723113173711259485642352610786066112798985486612306729800996085773808708801317803980970023642326554807670266016915759316282489217318072614603695680708315401613507010007518713801476232765715608561779373435813322978723451167618086734080013976722034762033778385468768343616780721474037846537017404851304692521488139192988024635879514682352490314938444950431287278498199050797350599493097625628602198173909201777831021932670356678855496930094685743491220989797014702448849655628337722218236421423253543252531146808569478826520249266775796453791282801064770372388315855479071553379239660620653542806705442311886842483122181458227409677622742249385684488161245862797902980121551775659601830944806815758019418190340180604213122527794626245700852785769136269648581031122875581029044198032047138921242125559915058239305811540460207920795858734313540197479540334751982617426349591417697418378649650513259542739420839383033927420305694946739150492192478473522822784383193199079974176784559537564492881285925260611497735494254813628745366180512812926008170526893057642985809877727685370293344227721326801480597475858801537226374103898692680936518226056541123174412173874875029421559493301387377923519789606769666269157133398069024572184265681658760443110236321045611287274990252958056583096139625602342674175725647537348037517530983361366927300100286755519595351228122633923317914296624734911364156892294406864679109388093317159496134026182565830540255271426396386589412037012906181934428282790856628679799936322182878240390109303890082712878218633703908204370235728380859374693355619971925342661106316184763849891039024260775854637992988679722910761898288864437362420429340884992319803843092587159963931341966809063660534211093157252400956404630975534040925064221420072934002969290834873320572628575422349048069628584414299624198502810164624105325243318627639075090892796983154264392856939524268026356038951758229884351095692565110928802380433597690435593508535474943063335489268936345162130173644580182026769286666455204254999349757543159477977143297198195447593472707485087587054464110288242400709682693029960797649810742657515677723497038973306281853322809746701608458554206576889454374013696850419271867084554041217666919574465857959695418619964932285112013740987147849044948968996399854234455965980119476980234470296232674047010339028813099184581970159094193062655313042309098173091480424824246126055571894793255350313697278889029347955003686103314072403939630181662874290688587844032000477952087584517002515741781716286540711139038568802384835162610195383120509898694071606697286437840962964199323516949578879296562853231659530051213405316556806990442597841499637727502725269485591114796821751613139921946862496724668902259075504212360127072014304252224017143890989444562405380086567819432666298699483276142398427018906809219625762782922876517464490536901111627699684098333079616993543685803641114841317171517154670259636369338693967575860865574782977286462884701762848455008858823017054321579046830313140785877877174782104777038535694660144244210635043853990055944839778201406616580799604591704820164023607693398654351219438707015298298255142426370880548676768636408531722229081404119342718399024536972536583771503020702251212870236378039543591017589046560948647538385366051157232786455998189181489427597176625907837053436240516748694880680273818856148268412418550884451912703310861267808668338116261891585026431282864774196973680948870933330296356080642984896012340395558492882201206761461691779042679663712646162503841091464441701322729732145304548285773129953105826090346532913878064893148996902394557682131347508725814605806071283298913959805523870856246630845326589049105635213607470940433118723298120653926340677728308937077957531603545646966520887913255867686876260337860945562424832385948506016587320649323777841778394407860844378904696863216690368043257352645441920308337889065709982368625351435186439391004887490925964794643534386111564709092936196334152787908298722555994072570527324084837149118089930949236170084919428488080277635230305928654531824380508507101452945545485020479305057519452099240301745749252317113350696503164094877139155737986359598212856821396183340391255647960176870595119318421504233075904263789804360433445944431594650903210312417936067228988422047452313561911743320750571087759586408142205142809859672445756761060116440001228481086288820379727515580746844495928065849787845110423894066049714712669241217242785131870629867330212653764088500308245006362318994071200812971163074525488671666232487193743704605239236264984836660212581827172560451846213535184656214804157530355429873543512113684784374044268541973643738805262621009082546939628374630403307588496222443782515642610144116924083076286995701228407198467198272795235360375112234372379629647861970915627514868175151943457893324188861984810732578998583927933073650297427370931965722163260384812749964993975115563396383612528712824611509911929494967137095129290463747925058136521481360239699625492795358315586615073284943719442874599481510553630289230238611259711100077089680916298784393499981523909944023755654417097946462072865701772857776757378953464700374960882516750495426592141883906847800471896748463527344202452136464704728917916905469883910151315115987105106664419705909013622505854607545064894907075877530035999404538705706403083820587308893318771033455101644032306382140996039723802212247165580121322505225690562188854255097914743667573497511019542006398130671571964474338314844329344617528224546336698803164669197103764487109860047948026617952882740981487458091988969496518019985331752609968811406423100891489590942859343652728938613361838440267864689266606745016716913311659246202051624423591565101229851867078030214579725106824530767305431619176114312516834297595235213451850143913955188080565748847432533541969740777240493033299386606159187304050210303424744023946501416151135328571133785940440981411312583707978585636289934589639229208919304079866952358624694672899681632515377709139515021495109198514335526826288924956071836791528604766043757671584240883334281570605105774056180145797009488768250754606699695298757048269504267909296753031468152534019436752346968236303161421650395684156023540204367988282887818078542374742315021231730464966431094280286816602173975415260656380417785109144571111074944603309961894101745892184061233038592339678533612923651367839672064263875646862387388233877495465681636850934581724604305085053801320234265869952293035211748591191733226255486497207297516808259597083106991829338923729374835610390002375484238140513102484294309236731052896320383265145773507189227188482444803965869706967028564696611670981265093362088858592684345251952485028309223563127780395961099733089453088977761609410479878293728784338411802267117279622463881282349390723961556970628778056816258918274744539200278603437108134499951097519719293328669441453280743323954860890985426086914595402951786648080792962863084391006801738030274297693177538530675116442360941600194564927850544237723664617989630248525469755991420264415979486337930168592180058745338789919045246471045785673145596662073847996721280588051626551203666055054562681682921997911751829851176208288654627920151244381894889156996985374139291939019692421913714954828229433840956873116398527376201345860971069571645945210593735043746828954483857565864262424301526667189877488662073065529336760900806442351979959875319307163767472605297747130026027285187759301630799135044390847544875571643876158834898385003730210109953367226796601995309295598592759216414483554494312434365508754288782222249219355047399494183531958779310043326831794423097703169702427239245812421664694354492160958000949032384895486118981070968826826121626616830530510741021722106836450551225683837933015092433842643557657706332558287006124538033943208403902039638838596045310678118665537603254599690974803490937629326843328717073361552115957779781812702497781581863415674797580920218579538101190392871266222931500268965811937059907088361917424062216741185599993874699057891308203626066679522170984520981173733054099723821449979987508108095078975882250900159325726889456081652995353425548951786184721117014811339427796363366922455811841163127648389718825149069145519058230466187399685847822840642901790378089143358188122282635072919174148874947248019942569604733323960193001061096124996130471149021244304875391812899561334942856094580908973890637820361020511982716917345005480700192798821882634540594251026020525133935993957511622222179208847341552334862255184561206553560069290439260304051320734772323369706061167669343938323463017972278695806602971508387723827648300502340145864514053616132141060215901530795699442527025839120556786712584902157417905605308550073873221289647767235968395187906054797537439102202762966039184531671256376635606905125464618369302042916028083868018498455639794105388892831118528073181132266397928277658070506248349186316080085068575672303587798979232547489250084269446591975669053906251984292502040384779455605997176803568448428183195142029966152089623670441671021030491622249908205421098014296430066340980041775075008046998412692782566451516587620150476571608035648743094278384398242958779067202223199767769072715776773911585431793714339336063457071349115740584303351092240284995640869000709599723189140778499048045550259622978361900673506217678234849338660648091107149384842285392190396264555132096183283033231007929528067767970588808718947691318874376614952252981181025513147750142219921413958437528671122354881563202367914296628537259831776246236260435101849557000813591563376462635296031006731159152279606804584276745696914250855978884135833903026314209111573044126785293296762349159202584905726692705096594292614539650783834577043762656683319071306284188615538765352754622870301179756894587821359491357544771273169215022304921889809321086390923221727754810098199137263928019236310870707764786390428223347015217913345504764776723492449714748918480762783766611442797478083119942971481915109253247542422903797544003545430181621921407491183885508719313045183207809452159847134677959222109585678811655834839568652324813876941323322635143426251705432678195864663323942669203230939203896435155242175231325475695942504214130628452320664647391801474161595994458497833370933657017024639958862980501001914745215726930410383560648263667700503295423401529733288963774675914377826458831515157642120168188069778883504344852081666891047330088311160469778477260828795171453022512420935624909759641324120172256848599745280895500125378423167451991917035833011444505972621555909761175158685148771113270775251037510260605631731858037374758917507434615810908519420629124593356521620809529003575280858448385914476772948272044277125116151804286318541578339888044154379457805810948732873090666958643114270052670284265814070546139222783634444929109485129473902671404495351746141416117928518520121550128771501649368767336129765828694179309511870417532389226866689801207501018436141995909770327379153737225400036971405062753625114381213461878246578929138342120664981817143019584744211280323062235859079210736402832971998033896905533036721717297589098427910484958002370010940443036290044323405952478771140953006142842209555704749139786396446031946217715988611340931933259354527871577372067723717874185037531209156189337804794281282785119473526890992871244573896903477559645329016776253012074949807724595776938063963276173323515799045154745962932931170070221066842710924257046318260435799156567160175692447757726600240461655611327329418990305530933288918314184093208170878947205852171879005663858710647107516646859485517142825441679753488588623142262222426606331368967317236619570566228682306845831819387307732793673593677315441820845520778460547730128481332689775037021401657127330795881548529999069840930706589106530944118006970353135724481168475803483532639654331679195467877692948195362861167580802980385691863223120677251367511733565793576963590833204526435597420270580109991185826712990342296984850952181607388729590277289302885962305545524098115755174074145020608872123000891631456435569753390909010856064346246768572686353270175259909232170466423824106866757583874331518347313561080178010825960785830293156327470294102975900884430151467169628700916728208023846124357865767992454798150646807335684858539385163893143753116721273043585073678018330709843090872149459402630299845675197408525182745780454620184101974829657957499445804908398972355589661482816818859474022467443569170473163757971328180516221150522662332763096782245140233858424438352751867491016952020011598429613659602023020234254194370901951705616005988689168761435944321617064413528091089172267918748258262798200752088503008715326683473298198490794520621410119368190137131291504069225393688505298827107213427702918244288913717900702251601452653477010464108891107536046391526460452004443891620981710174133496530639413101278726559682710559308097665159945109441850695494370212128055694329297034717432124930138499613670695794419682347426491698915792272811815810307473687090485347345836866281131866175377889251968765123482076081816388251778471923370685043363106803547280656389618923794938189949319552624183318509677499423388842818462390337531069056679250651381414422605652138852355375176031942579605468195058329184692074290098452243924512762816967805083815363731379802214259252414880510085043378613980870929859739960955563605138674445147322432798160022510338025001315805557059933590166481900230045426607181147054035851160355834519760836896271264307836643334862146134884496541745704582524568419538455845404521632887880788182743340507648292205035744138221755076750859168238211454897069667361775611340951338147313242411582930088146556239090083897266684623993801168154900576755425202512196285170181590508833934921021603879582606690288003922992406659670290192539297884114566909017650036006936250990941683022242514847274439232925800714087253070781649253299417395871252979053137726622153952942541447146025486997312799612172144460793078613155678338769460440160290572079573034176601140779210421473666507047573601716782195363086007668945611902367349265565522866579613950358136585011733590489118761527903126199230004063054970998938840188276451292800401719902069561498165780896641082664669917009773751599988951518034828667637540957179861382940205733176010791938305928033357038023267412044528492137287371621996570633776197743213995859194212961692248669102271140684946097183585230919501768108883958999890192869152272918729612520309664973058699092282520054758654110075628107485122082341331877037724165735488197686896260274392386337554041064978362460532497318142460532287109548852980549067805964817470934120317907430458803605065829740365403420244542401775718716472434815705824341285228597164338954090369900943605362528614169862517388230052990151643995374025189267759616038308734983041687208820348443748036097354546648802956777204256684169824860209142330468522043576643257747869572912934228285840782512602634266162590654991908038945838437847921203310821039347262964279354112718076428506507990843243260309092156294540887993988217269467170454651366009572359969665308516045872154927211652452215613864180492436082625094784687430268318823605566484001064527745129430465143928140056839349963292643744906818050591670210639329885546751228754503779931032514132589859003819796532870999179943413852659506595514724139503749060590390701912059461394830380704534276003443758314371015263694546606165874785568993908419506906862773590637421204741903838170457829557022681957935474026148498437152514091963193123591723922828940909668589747426500896140244191353069397870926364004917155715990416051002121942700035281814474890765832808020834633899673894438721630238745003144728433316744812682547642265568432716641074122440658932239479976550504573976615225003502796776492116008408023320012489390206520030976451541864530209736290140400893212719082588476776124611428176907110499546229852715127615300470006349638925724177424341586429692460558707865676657659646022523740805232217581264417985467320439437257669297878741000022603811742196012209967278604080280269988455409855919909069555200428355277478293247504870343334904934633286513284475077849808087301988139976219317565740180748546005578997506392810355614278837531340776953207316321472036936711984783074301474410987569091477442991839933140023080858934758251446218030804706969815103210290132558483953783906465911140526633023245410123861453111365715113446698273071194541533089680825564127211722617865107604833202694666587960807877874713291583456793639677860173398664591644165931117432269538309143379450931300000797648949816860467709490592595735903285035079545277603556467107441717675395838217648676964750355571821923426304037542742014096092395247189831095980476041182766763291848915533220133050051963644997240907780464222025973037664509753977469576690956945387850871154443163092897536452470163851187246076383313005801380910121909132452445945029980516620720373980908716904503566672332008407853008371557109067345429633828197635145276476907594570935520482337709035538835449227107081319471102378467050953183440329281670194900352457563987273237096028074715306158177508239109388188099404183056291354715306623795429726275155684438000475043780590027557938551271868685444905045260702281871013112474524712802011532096217631989081504968231208499380734981013938277093941605341771068216087732004203691650115548499600740430293163038508429759515678983541473968909262529537432462566465471155388176744340387945151830094294680111376345394634658625188593866649011966591716817662818928222678502771894626334993793287303116524712685415560427552458957086926515115626780909235022372822335945073491657183933273754382017990383004821226745539495248111386651427226225547126585605142724587663537617564887428457181059520915613681282916319129424062794071079012051614266639931054318490419607341112341885752836556761291495245425403164677062937026708615345997300351696096919008736739504729165360055253568757630403476985842706181434383748638785977288191978789563458093469018606324156565371000263382970836855255736288932562939084132132382999626498846788453712869794030989969771503433364673540280168123329671027567686423108965276456481635615280728689923922369925008779609593749226995119182403791121349620191612410049675176125515112936208885397389061570008319445108257412654120970282014009292567678498308341217814154444085011446744415032388643771543198069182275669463180586556308327612601357242364137979164766304006155447882714152159149022662464211331970934866360523055944677369988342125957006569599316186356408101740893704120103884618038761871229584461083902581785217035233021726358371809971392809173776463408296789172221090425638280612747301096415665954871425636602177590295004296578716861624049213485690420157434814207685790425695368244984457556925320269123080044711923338495611293761291124695224685904013777497283519422705635776232546608827401704134477065018347176577525042533190522202330376166856455039560615357873480135205765503582094018106092352626493113716200119685841209610029963330127175754339670593378352597045406110488407630488071308915598235981615636688131180799467737445495122878037461994772541089382910142116466667610927588372881546197252313630212185181662403041920772835366201146441529047788379841986413107052875823147276466008411088416839797192500519319163960998498383175793386319721580814366818561522180004626044545953561424466754973976503823673410584781240452818151437420075466104908231580770689610034131564598131430358549929016771419103170442878882690799763750473481260393883777257580527116049034371619088274414237294333554951118391044411997671557780081261241462916678375434814384712689340714055916952283514130002808823065336294322390458477291294396820892783067227665192103530155764673948042820311163172692877064145770163120222045438820716272046727458144813440218347564183476066182459961502239259408877657740729471507364510490359958406544313760437973145110572135416593585213904505899260010612640228408447654042398496878324333715200103515984448822829647799565292650691112198739499905242494930427712293880047454353840483911913528124543259602196096012169442263340351017713419849922540287497848506547609066448949442321804273832882368222528506585812218916738137207592718202374746367335941619826003397818070214524088853244579722149398972029812044360443502008739875032993447355164151387104637024268488557007278586884041565295911508599571925199772544370011726466590026549615441938088481130846665233834394064933870309694356881066077542975098018362332767949184089359609193826094405959960971735527860073719597854511778588122385438397344036300562217973317665434831454828826212745509705277979743840341640725349649314406974023836217928558089009162890383038949251637767942967242301195170571665880718599262575538222325659273241912777682679864071367355152572586607562530558150574975503873831701355266217502882357550968629865417941680693807245990035455688310046488906976103279831091637629416154736029959888478035969336275450441344718100719653360346309919629740365678376441586391397529412927402058073603111859611346258644541275014326771825386575924894579586791427725244726614490024430001147871269811409783944553761177439653489554638274882961615212550181340627430582043199863255206501666997886912148873339421442187523604090756588822695373278813774960104879665424331115275477515229709962695661591838135796468992720805693543925595970429971146059924248783164515514623888475137164801512971088230226651504394438020592970880825825355403541160515493200285723645788465661281088650837364279422896660213494350621503128490550404393938332382701215429132894973533480267383972904914782425059340839340835893434506284570572910277778005516726139591439486351750231089882653840475449809160985046269573266222541050304936519489062628475655726735138948882534340612706789257305554070489922423421621997406642949335770574201531344776502125319409677458564514413491437616951411591692597796624962325651056863154381165221384155244295987087998366370696353431285251714941193828668912608767336173870874112255410297310681767560841020662727378108836459038254535098965107173124877528172490038727313504394972728863843099252784042970102383746052060632762628326883916614369348348252021296383572680238048237605169679310879030629885866007654275814479927963175967516921763133935631231456446838823338618575202775822975653799878020677007450975223881028519931012281986854776846714587511609564540862738582586491695066519186851168140490865711030424784693392390220166236649626690142665399867808980292026767333461192256238909870415464464192726348245065415115114657734406464390743580889280806676236423686318791018813167071698749890382966953103768681844219107453129134010560909688688103401988714282416130459339736344635051702245867553372432229972564445949556708362151667722916349878500675719530059340686417843063317998689448912494158382216651257468187912213846086286490334311115674562563353689159863363345019223568079001385183316480130179795693738371844206989696213934888791183760363964894921197588379212652115136823629220082768590181976759684231866533368691204934750603528917907769660136457999276580638969302072008203834411519373428437209561637667249951505436975765167322421988523775108776230837161272929345183610133725503092559455925824625778740523854783645865784026066586358145295953492514451580760885450285559084244707384006953322534269827081984529051665512718848371871850944744619400336907043462405348961797644321235400511552234032143666016424268244845033109896816097716627852643307300914395521075795702837451254350644685730042978787538476291483780048772490557390058518486161869456848052227591355938999926403024149061480209959531875311937139331701137800213380006187685198508996587692501090849486920285211192087070158291407187565453829658834189278341469597737025287078744249316946494026926579290550438162848656838196817483732959122808385005747931685041128090719390307422234918191762167244111950051727711852992815666714236610248938443168161198088679688326971581317434900335134091733785544961982415328295341611605101316816051290388017801522353606754802749437528248950500418111601465187203555843147346755749495293461890927587892996611986022486008353023352238606014450473811750139757961271770409574771203604967096653056301695374784079048961467615369794417266985944620948197658796987258048573622850664977749407057433140708312613608871077982237454628373613485758264561172514205947605144775915502302993206435526476659097481595029176596291527300294033805024019291576053614624694563253132291832918374825098955984624019266528633264046399243890691472738725272715329235121575489353831574228882241551839878579644062993242869202305663927538166301387744398671992426903527440326751266853518073929597011772997711279299133819604897541489835248459448596014114579560302366120386941754401665297910572999521567130665637623593839630242234593132573225520391238171832542751719870426395022643235661673248725200444932232907769655504709109611726064140760959017919763516026293424675179097294155616845780210097809390296084559998894421128372830086936876493767803446924190489580761074170793002881610156789237344377955343412084186097336637481789905497793216728599871815152981227269141301592710774271813206058011099568468911971551922970752234597758317797405442056870746579219176670395667736210303596188547671028660991497020524675444859497334012719198419639041946723034092414675922576226844841533798431654670655412942618856091217798378197906947180412493417943028278664148427238602279451173815508168315842160439394721902228374838709369496749131890099286583615216782378493148642856305541776794619076808435126666122713948079062070807433234994656654475800499904367708972159454171081686649539956515835456790802289533476095844120391886743270683279716537889830099329865997196289660778381497266940496059687505804009860415652575967092573549532061592491600102521894415178882035025220638596257660952599551828711338840205605914112737190253726659865994879232081112240434702557426048314568750470306574859876911675295925310414618626145903844991171092970737417463327351353579711199452104146161273403227172626229514605294398377640747118565253025492279905233321663946697600112014156355500040977048482219833546010079070364510470477655085161783237620278429561104552596382766921947156130452900111281638930413323904753247157414883553772084323534636721565623461349754433467364641491123945218690721289742368980359970608081959408042429656185747012758485701108124818937190614638289927795329576707309529316133677318720204952344767022762131400774869179158075943113358663607321410612487120421296401189469247102272051945619435516630785299904991419542651833093475184249387573790127770332575851445595018093581790345117486958854585248432493739528542690489377852847987561559486979508218673221003502567140264204999595356970602694864445687375920332566621600135869758937524741103224256947715235624335395032966041300222076272952588897444164093479050810570791679256450830419173639186079875720662590942272847622662195637684055875469925489378867380716806078258829508687778405534866351168488286879682065242542771952764964420501159829704462384981926881548565490469929288141465129357345816065707461600258243168341884518850908951259356543180608987959598376465863013890115778123247360088376925718881736806212313285542005097917564217179368279506292757304521325753874241245761956634342667457496382400332074695452644150079375762287715703716812289280001266827541899461225726580357473831935355326278226311817325418865445786581499194613704396119037538667863566182169731600021428391423789758232604071157574924283903408930104066129791822710813501064035459881951933469386629252363491257395401262665803520797859052789577248709534893681592803067976027997946277932134215261787597052241123168701729873366053136283880798988645465721572079190385744606068587938856774134074228492263996360563424635020697971201066419631375048391050999883786273602775322728402884102180909416795995547103492824384201365086443320815042171351385318323604726497654176896791126435629484169412723359253045707725156692895028173876024619808589822580680202003477164719972720053757410044496649445356318831308213023097471206258881151190304708849086485298054395104698377556803141438135413211496530268015831349144660886638590757534068227029135775509033235512505127246597222819969587167754306406309233738364930095202921050465156988387758507955742652489654212714876166002319105272230466820724579346287858971085969996747825293992410894424016170164889401640207431718032019139848048598770520079771734106994472019529254835599641876405895558482932193684693396229606522656110937985430873451808259819849324553528889247002588404780037819665201797294857001754348609386817512194575419412405944233473325161440716964041771483913755481871753876974039451475459240423318766350328205639447942653287775437618759896219213756750957479938316133075264832584262417355727116072151510207376966509443647446966210285085152646763111044168944257000043383944209445773472218821591276116916401925446428867547220811097368709928165814680167536427956069406709603208284567940205495135434477924128792040493743350766185316333796730953759552897085425499786859582036987673108838933126741212469558946365610575430041538486232681931267646202105638213011410303091101398117744504873097735626280533268278241666416770476640873211456832194141740381917595386335273473467168220003214611052949339997388685865520661127561697334489710369789274134272292309699789192881292428677887502865511892065810026500382712818100253927143699604314729113658422016133062650308968828520104206905090696238762244308619275082565700487486439957078074661827431725372131522033591663572338941352747500568378450575365855169465308444695660814656629681827237452546412292675039748537010463262793171016257481840945033039609403597032731135670611619124488017353306550322765917590320089484452626177906929855768933307836291869564702576816206442992360117802936494534101901261202678344353545751731487931796706300963326173192719391395497553075578983308984738389280489677676234153893217192614476010113242897378629058373478596923108030587853945802938632560063823520155682266946695836212677286976332913677691327283200354558716203263022671406916465193209532405498486114447502650463798614472371850164875759183003978358535440416153736361825475980269556136428711645075300441041461721609781851196944851394707570304814394514176233029495383469482987789061182081822280975047860617890881246249544104338871398705569062826686615018592092774584823444508094797192195045832124254091220747317825540850620895905627434764114444821262647040827223982742035297339884664379812265222980946943900509534969914324154619900395619265413101783404156857712889557710946543671980094924976493686697836440022804370689866153931797293271859952211207674342253782496023088990344352192911443078856994091017256010222073971869933244728485054818468162744581731442589369798346585107040632205333686586635052726228104564876979315015428248115868423346566267863005631199429830471144041162090435853002925228187835093579368597708384990573456933984471201445100441487182979499654937520669082672209977330680575348550447185293102966907449380039875154216894192996466442310518865767604423335677719757695606773812617208861261485133986701135784177031238503464427609657378920393031853388240006643469177442234823814890472350135927995128255345175098081868646082103162996171522945795655241088348376058904538112908601429381290939576684322659326835475850661861053408025331157785742141668706064860183044815690967510665087065121219290259144145032994844755291583626019884528901223472460865387097900045107921254778326455669980828111214474433448075912421723480062222597714244867615881006943992636951193929662091467571391735751524900551111854485316102825854909112620780008859339803413729930951299955256240191055221662899468047510565396559365997226134945464109439569730648727124815470802112648349397861944394694637300043297141932390167540974557770857591940394242929825640397847701284318133430316019570162363344301114024498852286164539771875151533827858289902941898814481873478855293090134170178718765578017614682218156625226995123953040970193019844463895677528620502493473308967025602388036579015214292918434717607183617439284079152097675032881907718333421147114485903897378514745757374452893851713033864765431412203602638249790440196229986732477558019834077424759647816068281964027082021196978507291657010156060696686276031477432042060272707430470820454250064335932139766161954225221085082440072298772354565191528274582216245999540107405756794564551318703624630307740991965176791793920615001350275262863963565342402602045969203245555042905612667438341260999834298957976953428702105922904957663539201008437886705987351328457222192992533820119462269587913236127094185469815249884530335322565571819176489858134229463187691194541200921262913858653062663945819309342591626782025292225563187518999201178155111880097342678044648652490893605944947858371805845464602608195356466676570059737535352138311179376196177712730462588646733601943145986101443933800368983185288654899232581388904042993347907159280686549967214917546692564350445304652435340885814282657686675248617806705795111606903201722174573043826433714144923406346609051373561873553392080710222616607670750729943917715225916395264293753666397248527457683735892271693007133309114110639896232127779068608633148443324457613789677560892708325131395413261739083516210202581593123054072352141111057171692451799487758991261001565057249752876286064315341146353109712487562672987053337756466218538345418319947568789617744864908784836744925518118477443512332683606455169706310922695262588606157185321418184360953703236858211806770955510161966590203212911655006229202785655421982403807646565942486462294565821434075167816654914039018486365353820644814552836852439190977519619368452302425341590828383086153337863813817159888956266566433045858422295236939542930059835556070185520593228729303477258659451422908759749243014413176164078374509370747111210731219346724267460822082263171761799345970018503651855980037677055658275594775826258164430299747990543850666887558712787148571524393117500506450669413719829494892716065791681110817505688588545548522436361388270832225866567593929866839450797549677024526940356926614543461550390942703433729699784381264111397581374554591787371900668608425600202553567326286304604302630058767989938313396553332463092613850948924434103618378111954469079380760431344444415752890732642850910621342775508763850259609039618912840823799165319252479080500744355557727585222753697401147821311194623705731698691570709087011146766745289086519335694427482986019644113287191523175428870959039759613853667496171636458745005805106907115610986181394242451613366774696375870815297418093863159444587621493404862683157506350971771201254812713137177576208990964478646995294444806358761304341460185422352369199933414155275336345531031947904654735828315538158383081513220004246080702407379791994288431702519613661957242555861282647329618427081542011851156389308148053353352728849607086091374702337972447956928434036752917852965710922460043141415214708322348397026671909550542281524182765762268660334114175492409638137376919809138676614395020055273532971384319188826642695313718380061283827154736510652703265597975835077903095734122359901650917980116884679669398074150338724666423454323897037817332665412169256520548212508074703575853340886602332186581356496002106403762961326968596105941595321378906722114008443390409633291539009388959767716076738048714798015261698546227558921176255761448950471934424255028400916808725626891513426110505014549646476553793657770212765799276197479644905345961075621211343450948520517693455804049406713032471215224359027156760109678370119846534825641140677269302584950147622453105243623037154142517117007023751647736683065013702420180766160736048397490580360040252686552223174372403387073283598947416179954044324544613531726138576581789543862214880728656770507819837372065425479831057495542556252681440848803944750833392297192808271168778674391899941880281707004566035606851563028882605437372722103327696963783452549580348735453988394416220363113379597825665237335281216884659720203851485229078200836570250447953299343399459418438392891960192647095606743749367108752989510053536809941469105865678058516586131597595333497390808413470596356526818229842718675982130740159947393497586178855943260196332418726453784005655139161100380246790055643642532491223730281864519225395188434864142720998350766197006645786436379255499991974454044931441719229550288211258622348845775415173814691111851235001142982033177293485802956693797629892202782630524939763279303012956009622718854837185946773977740893622374208143303779895691901993032969961706896293530614585101615370473032452030630647204513675240040912724169174572926077382725604068215431734547333238858055925077495561293317792271904138450862736962578429628518283661911318481936047589123969326741539804022316658788941666386801658777669054237615971852003701032760817997327630181063842200856530677187387522044028895001108359953819271000067718226722844008136896585982541894865411049341412092759301570050169906552203197447489010739091828693403845018043098170452603171135098934738469266164267573124052620057571902853357963370003023491643352314089684147957893960289536010564648287462405484533756354601197872649310047285174970927581359703559053367637065403006967659382822351588875328272006795883326013236751512369496619068154921688701608253045044390752574196964726421109505833023512785584476857335200625417288942958718842310384548187172875387002585375678218573616388583592894733852471071397300855932294114581158243354645952404810020054707118780994361822408935046790449352353108827984285807394967266961710998081166979680365967581176305624849368233317276276897512819752810742201807921526720219303820947024417782673963603849181824345878094283366807351914917213357824882895014483054287904420375910298229125831229814653388343292736277180119380294777639648705521373726584118565360915371854856731169091411661171828720199389983099428891807390127066210416608290903863001828435834793127909683396402005467705409573049147406878092505011381450761718762759836211619093006904654354473905230994690338861208015240194475543495584825807441286594539597770978910213507479203966219575489738663554657158331478366384195771298947431480707580525568347991270796173335847195857733317479001986085790920053906466281135113850286619111277237347978145407869689038739452714730823350377884303109375273075115431423926428725633680377917654418812520297746208139229870184558627823446792563396541987115735258935483186905893307310056888527064616397431634285903836629355338969660299755200396703539872689776135220667286752263512578652601982571579124939280113301217015977935281925226610821989311303249849660038602838419901749510512175867673595491080985010822276460176842053808776140647119410330940358538621338026048234205249907031175983391395687219561294590421450220052342918639558684603779602806298012671125868305649610067014802699981477424625942520130040085569434010025435173162304318436725321102610285075556931392071387049735933730423473288020292019668767910629119378909518888024489959190638795855626313804399169497373287246482287187120699919527849072523686390656097124286298440674535113462023332218390855627444638637198529580688265402944480139838098919856068809450537439834302493057197317576914552606413635959775494232697956167158259175887862814773422791044817841309964139948582902298585410630146275983638810643669116861835478539320534443142170515783188129182144584563937241170731255859281361483783375259148198923967760270033782793290872047883023367688292691322106878599348663737716177742309892510223022901870389848776089532481540903380146107932414436963760057856243214392068383852682066630250212927805857853029463862815167237249956736688266267999311251260312071415363801321716143037156965720999988085654954641194698882361525540650919459612014957837118148983162768240327861006007218072249649819135446072458029772894359170606051014575370112325165067268146468362664162405957472033284429596560547807458708815205703155334307112531508700959755320896041660789284699932720970054916754687658111462901597404373672569094410688264739367184840173729630266570359817922814733130167568736733508747325492548127047162807100286305077429176133060846734875540712700658170732940494748420783790037283745002163960231132171975999659451517612422597397588437202664350058335629821617169981007526386532289521093609544084734568272686314051951817927213280329886506412903743418094905645247513143990912091830064428381873557627091357165298180346890577739533007621264983161526775850346412174861074403170805619415890127566741504702096925976686433809985626742275466861307677640180761897118127651315105174620031675693169880963023974654402603375135157100824117637547093978660863256730368523169497857378238106143649776517037544347535133187970605807584509255161316206969210381602529491153296900146892482008941050701588432495553610183106075448115117620322530623121290897142086340253661362102960426354039824494008459465167949120544096460946396352721217626207854442882601614078920824258345679971147980077161848327081189411535499711836749417694592558930626990594554913583329786429452493617111101202018185043634360912721847111233004568713432660173868622832781221692933929847342725379505891528640070609045167615183484375581144375772444079084452903233332251257744683101296856652689812611686300874054371984805847843957852001094251868046641951642364371682244807972676624600832075460009381084802711712780909459109942183138323766286577624996596625795861404465072506193024680499304953338402045006515408042700935874541582675250572449471627230848492596287395970967861519270432467164226415744007917397006954713490938630332055518864109913383791690556776710144873923105184462458086342756332794341051497549353281206842231063620135938056377786866605191132008143110368355464426249296651264981348067976794361085669668846210627951371938087744968685645315685831828309290722026050683813678104095816793528347353647927852532597634550951528835250258269909649396463442497274826379914409587698856182177648667551561399752497910710077710053893168577759959270048266603579315983060635581611788276736448993352300185658847839646121655470023314219844937573770462734905238315765651087076244304242832706105864774431088679782691004623846193884918554694332822862267318041091714196867334430325977289564923921494425500488455181426115717865556577632100378703323152536662259025097920019672507650884473364609976547658534353245572916097723815118665963682021992078193455164841728151758220136171409431640458176863648390754348689290635981796786205693177927607535779121470208557330088562468178575174830597012554480824487134688130044831395453217821836328480777157656473470578047913657241773285803672589100996423919947233486984179082587379428445135144480006580010908900201634763783925507482723806482085867858179462692351487374128422265139616997750433923313362748256479358017305197851014744432168803639362302312228601604004659486963559076098879979611010115909853469435453048867319469040057674546937609149818464898276196277112130092561491191421774244718580534021597811688240971520374680232019667607715341837034986153232467000862725933042780590800602556785705647645712094377018393241060255474307075104922906099756714126455535212101683982132845391645890369884925913147496814061424058376521280427213346038507125949849099501736268909591499585535840822924688792475607008512384840816905728352532323040284080761712054710119311344079879662446861889525415149590820068290322962166547760701918218234120867531068707908793538024447616016031603486982137668398242051721242280189823971846625938197758292253433547746155380979442761113059141183770492128525683821812252881619381563746657607381798160796251682902949502365439314861537451109693282973234876911876986755047297722825040204996244466569564339642541996070175290653312034371042281061331240813677421073453452583785193483370926733831946185125845099363633177871194297010183895429603959835024097038697050431105273867874319508054545842546674457950606988255021103503459023935169743578217557698179229484255620112782463808813999718935653628053620082507395927690816654192260646934853889891985896560876441350969104667160757311457056135443131596034152104860000387231044707874206995320428563200501612966977240183838635198311848849154369178492124105661380252526921219475538582497895896511354485747741360261665436188223856673620028750193718921471189736437495853123214229648799016692111454015752092879745016271018753012131540734203935344959009761799617543693526255820269847305814963932855964709116185790441618000610721421320675573374178053880651367445574528650545371607898365118200729164621506426713853139508106224484557216289105749574213522807150776737361328968087235431940661768197510717617188899564652709633151743137228643841862965427742728757724505605671998194499700223092780364802398672934503094972868115848944324827310252348158243858836373571326817335335148331566892871187046976938765625206820247036303103357525131824759313082540821365882730963137411190865826577546648605117622399332706812399760313836496082488328082965664410580049972399833259687000445965076182773665770470145195669195491170921299910439720733943375686913645087761487840724451254408518767243508690253198660119238301705016711304543642365602177352231834910885763765138222308548918956728259348533642233004229650503692125756591686006800139303670122173577219151000728776329067134541311640423452190295378399235530613005672837131410197897958704335263775860494045847542584558731761898506997622276920162718997167466583369763798469748017290170677767889094604901032620743126355349040479486770684053116508682742679713111452918574509777494083459175881998064194993490428743276861258502775489895054795679167755935788067782343823906641988507024395734729301330924311951485955919344233532016282475482141926188706660137723688407833008737635151944784812618279677379473829684348684230227358511460758622420249360419207357333352951584459557658014003983514274688995512787731656699374645025419582679429118605941971656181686319833996732943338621785566808273241371457112447400487563877568441477204571358333312164987995188734400018844202713112833218300537489993027772994286481450791046174063270104245970746587737188654417607379715497626476976581093582524505804227326525863483417681169787824280801235474887034073744876136461317866899888632260946975836448846316205693961242970124960485418148365873278591541115351320061209150044425066055152345483365068356820270422304061073201294385726206798248438513665901746734019290773379510261495752272549341393182960565258888153853027971115085701673062778851894203497580278761974217593921998140411749765089189914353948982812269861263229535066440360294828117354063578638305136639229434871186499425332632505683558048477108262968918842277622734139476020861776116629980114297377780400081100723811457164553795116011646417838739021973123086073749284885475213836680973021077540162662409429191981023645542296585709754785518686941519765783130675655546689754781471964268212570237345716074953141584485907207001713414059928204166117249440975792283513571876163006472419903191305721366636193465905041687444836726066462006446809018255051110169093548887998152794203234979882105808080926245346991932410363352052470231664216046249835579928621006827975687907996144683547305850493958458394633937501959037964268221466958250943790810800948159488420301895315362647939553301531472553042242386801331049273645131931618169431712870752269888620583626966173822918664271047609396382291716855233824609702959768780344477970970017812821755178433624771807829685794328875620017068859598499969748423732215957569869290377162972175258536977892748412348694673659579685673731980356132279809959473125185302624862469415568876237731425074406977604563705112704492801143017796857752871783639438931031561389201769391282452589983605011540869827032525459171739382239256658939123764899455624535672630371002761728067444089050749843336011743855526766806983359850017385920023415777424880826655583054894181850598019511163174595226488494673837392164236363359175639176289873358789472131569517104336193682202563123186649204389250105987741922078531521031130333805420321230463503471183282788206884735198665161828376238712822421187931328367138954044945812989817433671782237549618135811732199379382897406198082192904824620119521783663911213156345621081686939054907231641991546099980815872909824421968109707546307279672165548337387371228088923995269605302454470792114885653463511608125874982347040740715158011341427412266497075631002209652739809628075299781616734959776229647425285131136060185724147033655855024084663294373987601255869253618116244233201159023800675817823375505522763783498010618238261530982579281799961643035562035294718587754479093441857051929922345417871674070050814906661029573532683981952228158002699280111437178317077518549179975082367292374673698313380778047631647032840562290835613117769361474082795247995349611872510598366993572074825841662315783532797408162171853205224515039741871606195912296376338236574944746770277450322143798239995881168442459983540070441073788890398372939414912085335421321234421726579879105345291639682920891381724046826741674932036201195091665518026210123970732363891805667918723076163914704781341034059331823375900211286745677225592219723782636612788829428806756956655644920944360709539796117506430670505432545944301164032353459190388024608989252528399708879251649250991939267231826079738802340813089433793706670654956628750373865293294650543557777576989688475351960557209570518729100688847413422624955350378244683946310312433178920182612676934784939704859726570002311379480384980986929736005954564601652077513324315073332307278102056159439311931189597681003685061214592093982125929431429613129196119452843936006415690724831446620625603059879238922229795624135426190520213846221945561952270227533897925453853054030744439357850152662909444693124002040904611175552983595030486788643706867544286040107651297758091852330889629439654547243670570243909206068497501350891826340221482185925442463878136136590192984510624775607409685060988066967732934947390739010539505745560094601547327897864454746990266996940599255033570395651323485284737046007354724880307954497075706917539820279169999367299851837884256812554374612908384690990196760690284078720430144127746077185789052965225487952031772422950648474666883413061876679400814947570314657868845109189864394844296347819821416517254330039658325963382386244140968879358374491683269022958884826095615627294488826290495543543991166737603825890116713821069033969419556008393091470675138450941633989408238084218980683274616359330367951572311491774920476945293878081740678512520291114746544453210643504643451103023379286875474679258620460985171867468353118957893366452768112924831701735824756636339176853477193855560323356874002514097889167046966328098550533840954644826656114284053667370599793424630514346329891746591819138277753391589570505463004460947603485781291477297380833248953239156043921608341466985622032273656350781046618053558052899835737355089922500947226676108128962372033711034212049754715056774060180227380850540096928993062965869529855734141258351164567855326780109980984264420284670428750792516025441521092279026491729923250796781137721846270069913658367662698888227544973649850515433492765214026756060734085978402272521864658510199704281133747874935285237429260578506290918748329572877635262553014703573380484990525118043531817656847199642482084807604830868361523013992770350719976151532735362011644477112740556851913562968913063592392386819807945347107656018546755974575365916700402709190385125834231669790601316745640490571014537826403010415475852811135242581136497049038735873037786565306117049794715784185559752317110137170364860949801032065226304664453359932162474848527349250618804124887801068646315496183348010765077927098408764460102970176795723613740146501142470923519495858692409080293486192725767258634250313309436504626291178305888672156673341176926280352685464496142117140441033527788053202090121027217831653996935970477476545439166669802200316368839895087331365919854595443714898399282946458736476740672218803165606432548766832912113216434247229060803484005779913560862565688820163132035272947615736763205589712681643235185049490852586917779606416268833976248120818131238837237914506719453247239694287265463433544117343467194678698284222628671671940165173612725507139919924377210526449920181882444959363621947839102450769665569997677537700156716829222436721121703182417538601711617610560902635153969693456257120836218815521758319399397333877292499540180670400136337118469733221878799334482392561537770404070918455026104997417219527331464880915536398504464142321087519722661908415028230956879548727258693738947643925359916511548694649539215054482373307333122315538566564812224690965567004075742823035068195543787357388864559942175085012098877464652111140668209968717757498766116661358855025432269711608665506608826434713019615686686640140353046554902893952590008510641122252240210565612727923396521784058834909565782212474669101629310027824313099758729007725699685189575205379411846984812327856622358706251990836316225746328774940194864063175608401228852477894318949626653918893860741492646541858270460943342539634993872872557494539713405014975101834541206800923604372059531822129136320023468408988300714705579349155377778339671406448877266085396805768698524414554264831524723674033546504081158134730940709982681641483405991392231449785851444388749197698205524972975900039023328321723511420186305367846416288573664748089978672013604659923584410355000842140815313962175758114731652890484139304148224836047803274182226975393715545724013824438602725039446573140382526385875804546336156667872724428342527594300072738089882734531974764411205992608990717407420001262353580885326457092515559219031092425966033552054772818239065240021604785116165975876878583995515719182359039110144786461010659539963801598141548304364705335029968474341250750461403991761466845383811832128725403951300007274488385456577387774471079591736487015801363246385023175297356186860390770391660785116417421714874033056620609107934581432630635089769091989395724400299607776506958474988307601656426960302193432770500053331037248249363093868039945812015555796223086269696225920295054937301510410801162482203015857969004130723758945298788764722514721145625002941511613898945769338303476734809618116638192097587920916688922917571880318627816596949395423900642963152559789395777266967834034616733459310298946901140980373038628834467236538084947595162222679744406907283854656624911034326869197211331976653595412813778434970575666394860095533387347562361390532787530719791137127132029942477837113651379097254031538548331697703075265994271266820382407674407971194198229752620398682404509320730825899002611723964662031284026156295483859883592971859078862030231600902606773451897939085972054529401634696083746887083750715292363573860486153158809766709698310276506961905976464708272400843716348968120312826493128627536484598640174970802143092341588389423866161693787449480409710214077377402262325219109856127558318173576174020316798517773075709083168475134792852070863122447880053068492871195738445489568887410782291591004858490530885087523738197019016569928337474648747422598108337543569499635321693188219976562009851166236433964834208529416379372147731157020171693723439092484008251204607065924741445644719900192217484954530320134054934506615871493735455321757235840971916760982020662953737563945825999950116386930648223476053891257294600729913392870111964430822484972034988973288226540717208889514058091755848061040864993113396368392862587699208495677026428960230597479983891686510320250389337923411930665088189340123690580437395639312375574245955558170909952393167253500286357185114800363636097974562267011664933498159616127145090828162281542735955745272289801590234142953548042598348538861429826740044844261436996691593085320761107784968964470088103659196509522784663015313002341000450724789700449639186015799387555345675291971167718483959822226055495545138387509692092293245773350621445583493748666743411534622837213712564524785274385075392016943983548413619188008118804504791966780498826668041122736233005608127433739622908617517607608062259546775195225227210731724018860281810278644217910987176922655408126209559808893908933419701293295830858417810793319070134066536786529299014999657735161186522596319291354647813518652641219412723675024330017213384999330676303417866777171567560134139922414150502268658817163290112241676822749175732674669683293638376447497230758552886989001960906803157004323520693441307462551877324793763823217780879452543284095357509162105079299227313363024853675291416059274956516863513268511055478590875231154939645648671321191730331086642358718372319408061230028078054250950875874516510091026658322037070668579966035936746321318641451830913310818854282042700252041205654024629432531879845466207629818987453471510848960747370850914107327230227989450302397381589001181170574965794917123959043635839517623092147031074675511228326815155968066925164071938407111123597480271555764822951461228937397182403194423274832059789258578520059513875876674859634107550489785859154169361284904415893209905213488217845110088861797523413309164016891512581777222968945321415340642074340895342717743679503051845809078154464898176929647730481467140417711305253543979238172650822071087980025962814285958607179692794254652070674351709533092727655875120876742496239481797394214981187469291322360074642101713960702257607307043811667025835274613158956140998191332197288980348143491759548067776633161055232837587126228232206041482788039077890114188262427845803605822934781841646502197236466830963352291697079816860315948068655899747101256270572092242869180273683678315183093083515080419756230889111256398534952455328363136376501160470396684115915441108360664304002844862612403072552378934583671419641977924081886492577276192318130018314296184049540507672637377200655997404301566767522104420076702402818354080600804031920219230392445483649537030604732790459241121905512183698469160222120059115786361756511498831165016319697536978409923471880724979802999092169107184638976826472154440098090104963698077149653765761119836794800568331158333754078631477380341734331882990956479962689264524335721262169873785394484949473359824740624807544825400482994870854261518722354436265782263813788090091503047742672053354132066983212015341255451727025655868123959633148923731777344781290013581927805949650584874903096961890242582087408224244062690593592110617869337064737800151431011612858616160674025894621259104880851451026983786357131100064628571203886394371863840757675573810269204443722426597022763398919943495957680285620791502899687773051851501271050272017168690800102922052112344882075950708924012582207167221137343723594433538086818904615669054303715470160978879633793060154151554183788732527538627220040492985427199693443661903323579842769938726336706220670437759554838404190492879346238741726663001228579052323077790428667372260558018758321886265145099182955380550174459606607830207909303707261680761063820935868049961835069500484303221572727785826087374822419976128491584662779192102566518467764205510409376357498308317445497031363372136256569095042130762244672253072990309096049778668129852837787553521646775086907126417436856650802551702227829039678446802704433772586722029773783755731109661689990621231186421277081860603125751013460036854008210256341875496190294970169636762201856991187617645917148107882900359485095441506787295288517455411210621748615225312684440659588310688052377898043560678110945760164505325076114144345105954237314580036350544964847224784314744834016538340532070446989086237912537240905048221647848463395146148252990058303424273946549303273234407286949608183478032630063619591313272008146092385320320472553091954766179970175769845579354313204476162939450326138132267407377664722851165659968355089730490523925383331153373524134062149904311803242251583659402370789491705093723767913795237051135974791667974003603136813385880601086862877440617542827332113259080522436863875743601280276825821151928394337746789455513861557629662747391680342442215622655924859669769147231963248318798332444118817353441430455007345887736390562760243459039164858982758934599659393612463003406486996506086236148998246571228882497659704956309177636790084554182887022715742127159153635697783714464649494356259587545529486917488624157386372574845270266949711558183219228669252892342975875499204290127383442829553783852910720578118191765975811256194982095283899114732557820119906140465249988605017557512065478981301635242370829773710069547705155319044879980123215609923989011528483442918887632399904119152187129069311274869564226746714318857532725096604892062446943383407415976213962230084207756449884354715530420675894971648963467240673617903907861213251813623290716149775762193902650091450177107958761089426267523132901200602901061786941386101166535355159987689946134415300629411082062138639990285590147024986348894366174206399723288360703554356592917849254442371815872620268395621119084881117150780068647103602635257577969189355689515172443618728103968958633421762441143952467136950437986085327790951180961708589143214618813986491496305621091750934986949560863061475926821819281324440339990202176092764556975013837673524210948272487705403252550902762431440266934675200675012662396149948284711389339430384459182574188390590099913196086704601551815218899429304536159497774247665524362920466337469218311672252076783269050692414830385257755223036418398180550130827411678809054338202701577901075949451968968842413558071775508174815130758956622942293871109996640463331203658380691168681817927754813269198839739278990048954598431759185684321579470090811020595572747694937692577937258867349507347776271911451834866526646678446916730329812142819140636241022506143458030618546554450172902354234140678259134270518088151177169232543102226578764124720473034671625764142983452555040615577996363550523273235493124724302406361022547247861772636193529419309962934493135656073087992233280331922842377853896517622109219451578235143525869489955253654628464677544116667887038420815643124488529313805360270442212586812408731775265177853408133625800191393944527774023662031840885795485706887271977119208129046090381638380185285098628219742002329445487453647458375388062996637103825581957496264046035089436213715446318998439431675942157884622919068151782574138290194437296409944632135644197470807263288608100969653794827396884029350424609941741094602969590965223226275273179721061004965231452770130945838565890891382879833036327761053607063761559660843067184861477465410846889317589208263053462803193301766004090863872013937918262242496236774021305874133207426039640436020998634204738403310645686596860951151180563294292268141985873597370986730470944308673462298255249304899309424838254461143902315137000910803116085968784204521950298486100225605349312906184789179710396902454700962298953116899188193210299125936266494457315886065981631523659041397516488624889531251585635918755013680274621805433605203025774486105618060078289916905190890847737652115278702609698445131286619203232499736974154272773779384252188569235326308313953541266471347743662402545222145457932531563082810803805998090835320485936129598330756411840703547910676589095692342297198588972569426842516869327064606983878556278881365873517242238093688057287005430762875758838431072672985566821382529283779006913722110860606874970154154803332561158295700441755213288356422565949920519338865654825254586121502847679193164371521354615753448973950154873398178446686318260515300557732132580071515900218128019833269852332402091946075323179366832770140075552153359460863643407864051461526769384443376456256732300768097719144546332242949361525004682689458148056613420015470754760071177581631655168388324931600505544983481419480474017853480003945953481332357235670823493026683674372249160182943463787899774137907992468704523002908749121527639463287881840912766174159867672310938937835208415556559166985776808959036865403435855886488588689866537925985448417611711854121625069463156193167534527582845315817894472050766807522821291981104258285422841478227406177479074679926707105037229974479487012730681225710253315926009427813514109822710947739296243607728877671092256936376364430130977549744752925752147063380462945534112330315467962794831734790650909990379362579368753853079738417941531210625068535587678910681437402926653132891398353873818695818823856876251842767892942293029734442479294269616771118199773670989653199645322078428746430799412371080191134053165242558961070248814474228573936592479603354073147022077350822912027472666212386808862450994742033392847054746006531183023198127520781547971998077771497439264617578431996042120288722913596769692715238601642226892978102091685157781352322002274791729821068130017766438615599664926322889623689464036980262657269028854060570576067601882699518697425289245934587876038270051959850212341499599564735167450257242560109176111731706272483051203295455684350513613839629769523042797323405906853959682744651132357823101310052187688211544397288568159076087275908742216839523633924537765310457471979072992629983038655859646470849117030982558939328826034406413603439735727261074731810557292893491685974209632052632919580949664331681851403817109127472979216327829375260994805671074695098363051466942352129367894017056614496152731037812176025097446129113049649608517915827051601966996033459523354245116217144533360020971517082770682733882814018850754801775362608853218956593507328107086750483269933763097011175079996439985401125740528114207882961688947218575417897488241786210987884030614602815459799660338397973019175043246909118171255569000317848593551636153028678054727913436672528009897087693584016589796840263555778097900663753905760230138960568486993261433650463416556270431405423414019772390643547306112035698429483542678103048107154362292262885080604707183622614030072478620974153656818748597599837051745741818884011668067214584516041671837081488399121348497468219270619508364605699219879044765484225817632864270176541763062156891874735363809637399590562498840399092682088914693893454717698129333016245033369326525319457962984241693578398872029961725221795849283213537400910121359903721674935284468634596406327975675303952117545571526764990256802309073875743934969043017723691876404349791289703321962864305045333299036920196870717464281069748671157938044469976818914489169119386140373042224040574645706633855766080666562267039855655489276111279002712743934724403265581670469004028879373557574347774861899425948091951291794381226844968810480924487064771496010800724237965116866336502501828878862992724453996399191767447612487099752356307714119032030888802384211064482550340380250789165783732465973927357801021348877012554696529524794070525225433815405117406125258027044588572838972979971498230088763917175048318010202112810159500978999884299374326285330144180557208326163258638103173246870312655590592547343297966781208490268607921664377995243847629959888527094504261645306484172747827965147345061176494386055393271182194494366577469070442918600262533280161258533067491107158351379232802792285087159131375131162994854209037158267398480665892154564323379688400818790816799128425248861846647766052666627697247219502568243711878581576466049482609162059796066487583180193347492386815731004341612161180674510183322654454681605610477860240290240818979426325416022498831431357182419090429849941080985682081347781175917918677635602268413440063324090636509507120023344319463937942301196496743558129240794207906901672912688482875567524935394075427149028025599587728897696443062870474126691206996508381270911646157109134343863628900871625414892670843719557344043598649792210417277108174052378169916975171993475622434983617025875282429680040071044063277423175918752830056755875445377242341117031105051432616006271500347968398736407596245309150363378722176840687562749381084011684201900940129841641999856972759354469975869428713820633421057011684271515155104106379810129346228061527264750264367736067568940389237141712116921456324204633530190075304739233105567222602062593177127442217670676071542937028283861507135557889670949418212084330570976940880655866484727329741099021929348653264162939986162171685313010287888899659077827122519811945499318609727559926022496109906051844098637837553387148977375999935390213816722878491126449332012618585120348554710203852188328001686596962329209767431458605470797362351761746546156726715186066677521029920415252022549453318745803102022037959210147962447942041692292903526286579935258367222094652335341141252623904592441971419123254478314842792919130304370718759639201714968890010794852905310848940228396330480124788782100423173795794513148744278423496066550248251276047199375496133676709474670765105346630307555169059219599626101356736140879601950254389626666865615786814993208904491203594731420725722459186717126070925433037771160512750991904557330075737428171682174881834762847942606789025858207261673979612845231026242415699216840487875095942611136480642924391709375681206447791425483252134374353444331206391046223638133557047833592467719857723995011950385002633097011869824861228279342227573595008900785030021316896974950038301373805558858418733645231503056865336316743733852391001115647330139222120329003627594216862419301406567720239340333122126044771157017339310123700545939146117633154026980259645613706382872627473189380626360153817839280407498599660917461028200589162581544056892980642739286058128380338498583601873454003939558761656447588374097312269953826046396621332760945843840550502335485053675844614842875556424670154667292788193801620030337238186891470897652824028280544653040282565843323722813709047336033606769812883953151888524413892937836396950887640444637015959299132513848155317476413696771318191058207797037253895078420385005913551992074760203231301671307727604526736952020465766518717974782014773755947443335142129389046308464123655559344466914065673878315872973258354126735191642146909112660963659600110187227920088889292056022699037502122597390551541398997610453940839742696951729388585894179051795312962358734425519142286360989834151456611919498218066887636747922917695231339255178030337634817511965923658272870244423921344741698364269122329851087401657725007851446156313367913580317106531370035534384498400842055493198012340517902104782138047237684807765387902311966739705073431024017982088079798818436408561878293308996327057227741749904732292457569473112933868971850604523321485829437006638364050575977897217801197393238157016144837845261664382422649602006639548615716279063739232087660742059453219752764974143763149955838231414692413749106643102992850542234284705038186971285421346776018436605662044563265860403607837977245799364309797665345522212393271091804502140487776551767564971376628234925776650128043720014356220330690420871309535826511544245283333532090218144196013916862249081799339611090789854105660618960142193172484022200066432296692643269188610810265463130929148270866221367734026064148767132191172129200391816803685848811435914262690156562160007354640248354471553906504993585429091307893581012276833951950086278175535657265616613755930837795831188582119127935459685681092738426916114317964553384121747265725327721870681366746731994858329451384431198797534760588336151920711963711058688411684108729860551399331634350992355569952917356603974477639859516707244461204491437376997099821576791568371854657278087434398296681966421208000076752970579400003666155777952462341225854734934511284558546548933239773911249368227529690937115260865983259033201336490299008233176296851473660672712131350613352549770630072623844352497541013597290858786383959965614677727752752141564089871728267320344194674817223276951323395418424574269442616051798170277669308225113536021120831227665836515584037299982438875650081398913752729377535038084331501430830703901633949533152075953799771935983927601360142814562627503016574540916967765054429080432756150491565622148185671062733241459573818096684845508681423298572903915285573446801354601926559500535523979221369559166080866056937960686007902973504955541319365449780325727660343646609397172574121776414785114384520795748950195960439283735315151161833176337063886054696706385116796161803168753137090617735803483194297681420270837895879572946822399628841916004532786493122540439840490938862611457285387818250346186663848326577365604776693792083639444341389485506701344199635437684453180322489615843381545742621920512175150148578938586374157728609780434804950225675556406100242507567390836890074613904583700550896023823520833194759218352776645655441578074003451832626646515576806547589802128901463274104112216421202799892890042084635490395897304738530488576051759816798591206702423238099579524093705000654186539547741071361421730966616559553038750036418941762993628169912849563435260299020111734319654459555002616158461992361560152373127974567045001845776186215500917254347887618895652122471367376654347489661568264107899185767880455862075049526812293739586310997895071662680770646147637956739340445860721595496787131327557520163960233105530004044123523983037998056030996454096524367414312725341833295387499972404024532443858841018766887779944423913067395550387896229751402212446201190501729529633602139128785531352081990256521820882203463887252631339061839522239069536001352551651147891284979921635211072119429179638324194956271635354356394803460004207431028645554607234743548565022123583416925276940496357392748961942572812721680429640369544551036225215147727248165427621326972199573557868590471171646588459250728316164003472029144168950969483909576379686596661530749890682739184334265146272223917457498596276182879570446697197870282632025069321337761517986074650117313315571551610705319400620780775054881799458877155533532642958871520815519412756404649378194884707593997048628146523411521423337548751843667964182264670288988221607602938164566400528301728506925465199170268170571958369974305759961534355549445360338329369631462535891981005103086106071516468637401401958380872441143922162774592578724574908776451178166157848020409810307269187091353011242582947777700516602089096583792316397467476761965537703915083607280041309805472110759104317220803182390402866475003116668051667864527107687253127442206231903661486473282424703058736685501838515475253143673769070556312257762199126198567895787805789385551671686389607515708138431853928646205774304264662534192931051060212193070558068613241958625795923745680520956574937653092560809748576257331862227452256146396183209785890261078513056228207890802021940631676928437938024683787216026607370151329768337435839003724519423799287968178596772083916088074700591672054747883278931790697028607419561273491786271872766566811460798489902804700843533138210331063465277867810202023319208245586378207455541786055847275660001640805807552031684709939275691670271880817681004342146083246423113595156113293388438179072558994904305317549004302987925530389354609942128763292546978219246907422615891857476325763275264567434392662178195179549308561679917922452240586750784377861908930259407967858022844686381330920071906862562812835313691061445504177197170750853783657274509931346355093685621980000794095757499336930975851025543276318593941795546345818475334294340276404268551283158251520270798133481958779079356452613688769569863894868510610915364985022123964605194169821457422125235074196225983520897179709512732756624272878047817267749281299019045086213791018823768767091284298004639600558111645098436827930127130091627864619426402825953768316085119913385718204364428837223859154559824970595242375713761362739131687165982853902842569321585742052879695364931243374574722707343434002707870302113352609155541563742347249396214444526847826549357217149862951282213622204168442699860983484713172362168313861193791958241766937302581054132895713221998485762321140352291718227265878735812817729321513582626113942276063002487070547481614652449567862048443011711051663209741235293376010956021355038107335376107935208487265042336115856471645606389764787280926297798882686524278705269786195887692776898437688586913713066378537442602317425929429708245678446901501581062444226592440267000197406880597845411812784156029559479750886761365924449107916300650924642073224755314229351415013354890506103155609021725941200864750121586349628760036981080622851302044073689140180618365238278909308567123895864410260164985236561814666496275237565345475365464211162967828249983539790568728547022743555446675481749918104447141779953297302432201973655151520857404051533007358198850623344518217220641907958450394467892438128557589442261318434004978103737180333077577856276504727621592631392205615747235372485165495167504523935871632005444233808442307101849915924933462117980050412268870721386229503705896699303682553121089128010613163175016077951853163659363058260664760804483585055275812147182465580200553678297207351054258927643872415904489723645850652522517856255755814888771181607586780123648256811708673713171559607573580495726618782398740355215616948389716480100010438210975015095922218955953659976582836855626166482763765619108900588637636112075133050940305082897338294411308332275645908859569786493787896867721929475193027220614948498259862870960554511380769034645613086704623337469989611590238731845964602165413056240554338355622923680144930179486961643688167305030563439043452342353622053046236683381010478510257917426361541217363101359777850599337034399726772064771027013147367013973374214789825170430202689373734453203264091410535093280961826980000299335847900875409089929096514669395245515921056842764193580079618913751546003679827510719416995059536709675660613199867003089338775563249493831450306957543074676040483134934858962969033576635358591105289431358230721334633046615871812879499252670682420328028680002589928382884950083277884865768246623055762213362255547188374299650129876884396777001199352790741162538165228772113941231113999831118974041394103517565396986668586633507147477148983495507492305716634372940725235748572413404379189506502728487191372108268574468130017053979746483992840892153672656167741212398499220088919261236547744245955361924680263847431054030388190195048996432962464449891583726164012457967099526250025442167137845102041986842811759246441813051040513889191230588789662853477180284433961979026668168993323863556776949380179101720079671883345163312152969866959917526606729513409242071004076258958549645844966906437570642100904692174920609928835805673273503868075832022181423220418591302312565466210898061395726881721161823829925048632038479721299582811676050181101085360079694044664514272264238895283641244243887840442242773683104058050149719363944819018569754240829077679450648995328526853960311028129691161768026208501483636375051217175530259617569573083098498432953155874823873488235311271125976125888903984878577367940952852142766909635573235814257331573011916030500319537171443736807016973199061741757721239750267022190975773736809710042880379420099772992243662394355618067517136331652860546255284653818285153209301194542369903882646280656814550903732939269604102284467156228258021723768473305721591089487090733406438681706041327445552060717044770852315694319724856224721825514679587466752319103151512207237812214483921272397414831847450671752934358085938152974194876995623795038637423003227059764630971688594426903836848010897809907567929229258753982148963553266250672110016789795071976333532766123886885566929976017560711685207549122871231655548392701931379952482668325088553358992282000940342047291107951582216189355037023895864663722887285091638078375412380239178721030875173471101539855399918550065047873459399591273353433117252689009311735610917154323216256132338201251910183211081379327174057893794557522310350843760970511797394237310680980722484530212804906121041956850303005256738690523052606326937178403253087997004702455308749368528905443689619784207861710616081257866273437636224660257872043637521945249719456244493022786600896456296370545799657074853355735142938715323980701591895367889909191416292747154043909040406309239067548406006640267065461765496390455396284795585776723979155022862149142932372137708812563101658756724379840157002299266440234545930050056598181755239817835928021059096546127188053301822062204827695447495010129454746261738464523996060847305185129647983256614010098297905100185532106322038962611403732716228497373188699410705564191765184398599431613608097677593586633411838931291022266988765468456854038806461549247545235883825884284789058443908625612088379315186962623967016962191466163169287968298398837162283035773692498119159943989105727142983055727340594690006849112552633937828064925825228949425112528294032201395734251727974512907475851422720551550249883232664435761435960927483023693523154459018769111204059418164470297556865299779388204643530018112153497061198103587623187546917161040710340703424136371828982823440269886238278876435952916859536490781098771604763520647771974387080376650576111450381568323004755259480599188432807708416028761389138636631033587938366326828471143114108054371138595582743114720477936135814544299555311832188715480483843516643537012349462085563463770294932800551021640668149568818129896984899352905898225574302371357536865880341889151910182281663806229763600008424639942432150984128298640825875833709169214478910102274168980035179596396360608130976670306414318689430799671345342498828844520857789411931755836088219058740754892030610716588816628587818488138999246204521089994833562665484863610006711993762094497566519575306428109283766660987626746915422003569826540679378761811969534320765941864864285335534001160406258781614688735420508244840309510117845306937393891617507854481657277182683793402132942035530534542014415301685010792115006533868960881062545697309555398725607934428508213596830344131487343955107937918550203051285289836853663300429911581507853976990252558287856857511828170183296020182446665013165348114269580224321477583805990382715899304660944328317929769718685566662442276678143396659595799102832251771486672763848314133093638757237953523386394625598177959144515539232367479922577465626083054088328464483635697584087072434275706417074553859388754550137784487291222642598016983244293783447160979004506432107928905775147005559644333647992461716758075115146783553311298193020866335777640193196084579523317865854522260355917470519951148354687832467163160084365399860953963624760701019042877780582444741085715508800185275716529249758137935015723610281297541431055290674428980072120818236774308148361944500072419612502391040708571399448949499525484334798428998549397484429842029691172823117922754528724197829862564963418787186445431267520912986705085823650637154166750019240155993257367193237685316047910976836104402183641286885169140381021871425863690737544769752227865014079459883864789908707278402418683415355819067924821559258599667959982631261580609563083034518745877624113293418650132163561140932391243951354972232280181214154601365244264781150979066189970945092463614500746745875023538305966780816998842726471766067317868099582060762549902545097251063796022329275229677942749522717627195977613226018548681207650281255485086911726007646047557054869137458339132790466899759629820899255550864373595336165338827908106843552026401210175135602790460754578217699751050989956861086821469065031538604406257110463516446553466694919524013711784990994214409870882539612247190625506243927722195715303895406195478246662935351398426918634179866701126703441568049308432456054329744446112532622877135062918346848632918765629870935931640986257844971737566954278570331030468130808644249524222990932322944371092522173992519968758687971874921267137067115999459160897594500806644175163462247503572040115057554831657506316817188258175807464706977769285821785311732255221543419944129352617749373904237344205815328797259207584554997021228022623251292776257489160902391322626260443698336271243551602584334571566631673180662591298178246327272857688263992564669803508173028938423470862285021385402300179245552143205185322075670486505161379942789283526202890440426071165751478800545744742245983201317248078263586787367848198150680365571033759709346505806876206068930597897861100259653736269700287957418733706133495985056999382936432804861313160602551890622151215982550707758589473346704607016271846320239827317359166746997121240918703372821883810780952157650479468236691931606732616744366116697292333009339819010240755048499087683058395900153162669359493416904771875280407147744792240970763024442227516173051959451545269320491973768344623198345884939898938731905011657243435225289872118875520646735799033109068855708613730583529250712388730114893141541164407653137816932050976660584708571849995444289036877296677845335188852824752107364912745620397843993620088648474810093990500201525050592055766632284070070161772456659781232373434841365585201502915940756738770978247698695505140195278650227805040595075201807074569492776141185606628710739666984417667680616815886672518444752943942931124277665542286146685273449967135929746582130048967629218860900070005168661614722065422226552492674136544081912875899451854162371177972535089944036036759820423703297860732985552224611687242447332186218550998264690481120823088659020995682256759302272876325900171174495838961221070307542165959643587514741294797223404693879374066412656394300323500594791754841215592831384384274317678174050929048473853621832499602712209216414290841747967176108204009500783357898486655520148835544842782117532904444532118427369794253396275686343320137113181303033699511868050383652802658830487969850259718196453271474597958354892637585400280968565271167390816839773572494393214115634199114607072711394540998728196469971428676538077444551464445733995897666314504624239928976818166531948374651794163119629505032869425731946186446730770368574882986734280191947213928179042926851314414283354525688621271712973371060133997889355213760039379053925055524064597158268316339912971710948264971020783804129258129707091408754628964966518696843464176509212027590687196172724459871831870390790583680693808795104484102628447290642157292362211712654214893860886121463398498465406919976744196692506822846147007014847208662029214405230292699977296344826451915395528840231172273940938911011642999620764379225441491256731905396831659396888340632066564903764555990826113239521108646614923228617146940764264852391191923397172561681473379124233902582304596665679463034589970793354902932580188649358184444450946803550974393450171893079718578322504073320968601023219544368278285730181672460172608489811915711238860191760862652720358694010729045099746901706876331492224437875882288329265985015897741749369963372512699651558474550778708045589437256237233969247360528317662643536145099773885243372339445918656676791799571354357260227599144393835637296787252462668542423248065601803868407462140960908653969740422011698132661524677067411318502254221061241729894376073350628487317061152439261226606228451995890462008884081909366677895234339663313344059836295855017468691496044099939601943742793406865409606152525651337873821184435094354204946274784658780060336646557605434379540023130457360627214508241783540736609651905264911984133203990920955180672510029774682772383049045884516157646427359821716554667178591910889446522309162052114509819981671258364494953563869128833931125573877566307797540822022393578459944168524928131595276643569341322601246840780482684075354041573091833017925847320291526825721387653518686696239473584431986276088608303159732895510998566331200721292004036774626328068112517474017774372397012384297003180084422069731086533376795466987969293932994203082264880801304696557176870582951805380753993113904609339008992778139820325309389598359344627410530181949637329938983767729875426261013330427292680331651514865529671566030352614456437018309432643665078538219181766906107865888104782294319870822863989959410421380145959883554132373531926984683754307005561997884416621551469652479478450379388113466409715882977860931452815107478688401612335023621942766079323739290514743903624423241229540710782777497981357841196683450716841520335949723922262171275788875534827572742863679869143356832171117265953693972309356752624365838366282348997384405893108306880423650586239306421622917023941649047782876741239205715100207370125948001026851634757749304097187758662327798867918144768918648619758815071082058720889912850101975289871141812776899823311294583307483918316163460761800370416544887041831644444016376407404818767802746226429104072676841001278333354871746757265824382856772621854926555021740254901732099489630215759050554853339889075075868001692410852500889409852538098947405614873801382748998548744492469590600438211626703408707046505598985462310777670889788824478093530351045727715290431500166279155909047791010706092396040406418793058382771511307175469291997322032832040348313456285760613850532318421756747602202535541478424890220068122924425796974022509818313347432880913892030859066591295870373853451899885638895740751624520506524350083911342370460550344703993276845635146771038951133140995130757422840130775161301477375887911645377193778240025704618700964740136633995100350019130650062059588496750709689791832855447266981545053380649433584824091472916124764241993525932749187995922215623938116051640527428125897679548516164045794817193962850555460090700509797955559103200136938049418852787479251223264392064871310959879534357617875478338325886627426066215965894352655700419772006875347097788543217476233675396605494133863252142150811037027285833294299678577487464282525970632602626013504339516709546373180941934237002171198367311579657128811315522208458188865731134613618378611933386486151541022621559487061680145484231744800717645745930044888921503247255782575544601885833338618912607386419409495197921133553107397764431854597180212227765610563160619917736109456052932332716296320176047370559805572822093263760972878262718757500360186054570371298567109753744249231312731446707034507030026765454576719285763645255920431511932488169135777255400695678321334424217548546499753090710298602885923839398018217915157365123783016755443688030024377035605211096088111242120764886773107078081401142415637236506674615826669749218070907173560228363471631166155921905697915223987237102348131499888823492888209127758531945123742426505220277850202131725139778101477975482049773020628848118297921702278961213221378745358727670724275506913955571497820750045856690857514967255505434678864615606815249277787294454928784843315123872112746078723724506814268414080296408224908089017479307739900926585501099940211229119007456244842506329540087692385892094022603838304182904588915057020793471315837818129151932989749231390516182878816247672363946545966625300758447624226963407470079979745526247792495194834650743280828851223318728098278367813145128582302367333668762704789499815078762225848810820120790769731118657736392027213556839352867649600399716930931223757204334878583764190987183264192194720774681075966625531478971404997079809541044549235171374209153525172558597765834078459121603997053505854247330679656668225111790288638692148600913129624867815822176672361407618531476377147579454591117372514553376848098718049760230743103775264057679618171482246079582046944977455303841205901982458455888230415107652825203517416545047721293855950402871211953754677265873028509360836841484675338055074063002952377691314614884374419104123475092900471122700788923056795948774615204243528150077701402950953317571724171693382102601462537238424000667952053135668443306106672974635456527639185714350341720669253663339246848128821049670456775290334634121829744563837682314785669699538274770679074457905016527732787725860762263466303530621522684544410682639039745401284509058381608768117400743906350521869724651320805314286074340943119586103328304478687396635529572110755816810799006815378697945344072271474536465547715336052330240549270785132065468604968594471852557870176324744475557059610216147666837850272488611148032978964100581001045046376526087447179305842393883499259408930202424966460309543814467797333969812502187971630269183419484227329502144171581155664379083845142053496711696645927383767007209994049515616976593104801258562208026285192255826214699983073789952119715028365211888888921157332789740311857324292869001835794597225545352074544644976072495313881045719340660965760642030440799224063353667127803139057801332226113918535249867135968147438700400319275278695891289003613486649612159892341141534124018377445076586797179615310643631496333277606012085518428561516122540757569894784418450805044613661360414144250376251055867654639988331389572774574223380621267635937308913991515694110616283660146677212422316840482206605900612895597375810552977812608414087304729611493135454155635353872888129743379028426549942200346808138423830699706831070136709807999657135478487617414366202645498991351612055214340778210702864793858267190195580266294212815110509180592694929287354919409653821633096950641684094584923388717068977031722525089518252930492675131590118340327142075469490062755609156227709001788945317116880540575225550600988881594133142799385171761957166629929037655394988574400648926753724515682890391977498362100244704490642354235485789059725673569151907886976786158234181221091396214378303620096687037095434382016446914235823185247582244907696528248059630265479844466861903341137052039285230053599652057240376998683556347937120750001046273306920905368810143144492251946541316893781911353262811861474620644710341440423100897814702538095472876785795013174657026340180317928706946921693923053800836821246541543168414778110708023324457365935754839257687178819698034711209808085526476063508579273369598705649488851595358091044785394553677247301099416657651409089760893012509036653449073416010823792908421692011381271677959058145902244558656751151553521910255853794040592844932565797392127316395591399125120799557296529551741735283032997361077936611083027570324049509690388834084408779534439987352187527549376232490406402502821176338157194521436130056405259735279327762953470458600540993721348081109448252838574304876811194159584730801613233140651859595285679313421306350284036930116303703145251991507543728468657657949529671122223219558919413152021132068644339358090807676919257644296844383243167761549163464464234893611776329496613137622839095299615856330139027589540386302312043032538121988524296680237561946130923649789998908817451851515786442895867583490604840312638462379127872138440125674727702660683599173333663914988457451595066431961219747837011486864132178632940783899257232745546128541495752401128308568095112052762570759027339563353825950509558866067265474286967300308534665818164614593864689969305444206937790401228479216010861753042335696167481555521256074372967968321387728402875916582618364372802785102817631842306198548359751234228516866250227899915775485598261300433037391109948185374116941664594407853895820672492888593209015280251214119777990459931304946643910855880736307865215997686579679640623210527716005110431370080075949803461105622660716706667625063212088214753933348215000302412754798935389375629676837313859931824511560877412002586331519961170318624967768457138428684239446452600598229908356640324408708163358335263039149566998801512096907190550526261032844744895783755613180234968898469287419865537494131654174527279297595126051732010909022519132268231885513906406076746222207645283248810894267481079446553972386125555780003345289774557972992345785628858100568451190289712032192816733215880772381471278032309168519625254255731298147535871914233594368031905689385411417170179019120495310290585195797518808780529917389754550455916975418842201233808951731312397735554435758331092362852416360636708727402308063249592422967717777443722485052687147743185805370685527444379037377737461062057069445864058142805236689754888247536035606390381284304126555382977126377884726432765158213738281315817194425905792046334520739493229022374199281457362395691478585933531647603827035796177543380106650298348571048982319479002180625657299640701158416686726021535204651700450954185771795703830473005806797616110860170162150912486821317860709923098325332127165644067857077048730207866525655754098527959757027997018521909196883187983943424754175968708932420176279460081393781009600308671259640698808559480864022669093699534613381914971471732470558627074419708790842823052693833937138701867200247497574206222911037403138480370580310393648450700331538585770263463653882066089829729997352235846111770725195308068666656650757701392049581490898888993744159617172694425828634659317578126900667434631348439802832051870718187150327517526630579404793495737082677484161861228549449942021769910258617696967333959473171827404501663664146310545445176855471479061994397420867289490927775794272520598325001742903746886104530147830903876202502653672425403700786074284934925330558201409143946458759974480694615063024762385695231889164713200457285985028404861028219425680930046761110107071147084756579585258159156182517175132286656932361611473985546263542316350437868971446122624538075676124407917607231590061045163172788506428238540608693450146387477811438482513433286280998752173683456128323542919310297240039429889473640834020730001986389636004427730247852332915207558849756810569872388553885176840150048942196647467393897864461200996082946232031143717928392447339931180373525504407529491899985095457567383605980892342735442096286091738138100942113665356834817638135576281395144611228768278677630437980624213322550904377553049428158324810348257651184499766102350778144829298124147129110133740643810926146883186823359886567641002422920743156701531435815842049148543098776642231899428221512163887670505308395044465827683666037038743222043696833288257847554191280670386247610583343751522083203187827913371236920930668260808778993707536171022144703314090341630836167398349751836829530785662580853107275954609992867073520050956139791698861377615209656640678558165794121046480837978878249744923417112099825676526480615111308713102567266680416632581650887962013208239608072810670022514779397100617363850909932018326426407154281430432900229994695515303272053726656221692597164847460713781735738387720364971326874329320212148457542408585404572618555835735750345687462953514675619248977216167083038007001218842418906070665717484596266126965154711251934921916096938183953854119472643326056125972129839129667432895101738974890857165991409154869722740623196265142772392259769521869924814705235196559429903211363102810445775279716951554972622708267350815115113949750866730521131544456445251814693137298425246120305237101017480811510406123574910237509597072119999654343294816905934760812546693894530790881212606018645488049591804279550637439035753047362990229125073770477391939035657495638249527375766762647151106090969529151462501745577318813241568479210680563087655809643711976408360232441435307057036002796082824226870543804103671362414623214490773743862092402838993543392643668159477963008298605710370686976502927296957806611831471937419939341061906295645838504896439097553097280777965810096617945548628719043339202244578764325971832145963370568473393133396906698766441138155477122169847107759999171754685566660049559571658057620499250647435954608523051517503795833332368206415461593926300498161895684576951496278120372455564554850216541417111228443369806159113120154835698450811722063648950138228195616157219589650488901860778707354129039132891959158553717545054802176382877438786775531290179831921281436456743456759115652643975611294272202376843905618134986658703171550833369865293029039676904885254831157821150524538875380472126812597207367362367721766407573860759856035564780633785857212739951624874899334336335509661976705711489833057245016326928499266367179205321000625566237009458960108822692150427338437573041253463920533323864915666335052132098650463316580641837097343097360994886500360396119102361161512870033764709626878410700474239009868728183749604554678320090279015792607021637260416921224995135493788491320329437212683886258965509116797882495744452197232081065585281523399466156594904406528378278019944460384656765464751657749058337989470533918095246880078961771625770805726668187023081909110727558091350115322385142157134401262409986581081097354633965228105352451649174581745330281008585000931158674179968822803109340916826737908940451872958227566721225267107261689216456801709458235793870680795611899986270507756061726336767672089424351302048118414855939742262907911763277821963516884442892838541758843632057516601545629193096522371063745617996031269517756755407789592522724002715923694086202810121051960807225811557742046213878083789174453569502405156642580856384302382650116006256440609395172523020880309198446245918544498955306668980122680555532566157674612593488718619308188095672114693536596990174759660119061363347026404931849980643833050822657038890642772663959725904928957498508016527248853150402921191926157930638027323571385721755331974311782218102656951891768666770305179993792274150271147505051946369850346094203199934177937330466624056906815404647686512043578827264537178141451306160748235462980520289077717948179094208136378470432451525974737666654869488874526703059100048740818751180525560759269359413681939692336693034231807512541521906865892477562818541465129682724972320451482325286392710181036239530908675635747621551229220907402311158414588073365300167307936745253822661578846177849698036998400623232154757014565484411533707510749288376153894200488493226865338038413754333006354408860791255750903435338331546221564013036801947347038163671232312499664415444250732483972366764734088995416191989348305724301611518381380363480959497834618735255467216708667937202010636834100714553255613653563259651253290124200064969947866298909471822844453621884847270532235768065770508872455898547644968809140244814441744959409728600268213767276036499038003585077899802749718106909921850318421645528671355218139098332306366725823795232762156564326320797277004898084455696550429250778873534707200282515781546927851512191649711329730533590532500807377233786846328368616168710284283749088910456928024497733479297125677525430088465572906867519694070172854984254429948126987599187920371588698003446962990426886579953915993137941967347079121673712902578967170603721281968861731437792108173940046122594354248475770791455005380239585323580050130236254774141219164751694712827071912663504249310157751616777027849630013954958175225056769108540270111964924826282490550786250906007189099448974622223019091788108064298610927508049178395744993224326402351146266387309517469277906997743642161174474027693656750866156838072161006988192875263025706406262901475284620479448068529011368033252432173243631906759775940491959106288203503253090114926953014978783485291394678279912770116539417549847377487315330169864668316461119300754541696404531951584697406508133527799929607015263370191492087303975845179890118139979593648856986026531761843927753445024265963813052474542640551314011102292753839755761385776010824404459951354537430031428292491422572469039506239204414524070122009909829960840360145564348248861440603438938410586970829714258530716991135790509951020178571118222585484435333264056562349264525528319668998331811755066572638301596670773126613679401120658433865240608131195173526233319820166997038800034519242009196667160114884634361410346754147128564106415607551556726924204497561224676310677529300915824839963210845561886444566045588635550154495238781967465564414739873957316973354274323004550004529004774635916296414077132411561938291599179893357203286414692096436782621524721539408906883960696899877609412523018034886004410868139349452705684642798204902630420792866084312166699082919167163471352836718803280594214672468214757125711350649960790425807460545455773281791960947421103754275777750793483370008970534373426120137688960377866217975514582964277043231482539497460548715624597082880910357394194495091990345045965330889246501576527272036106689670195019196788169361720865237471156666435543311876999362906771229618931456954561909849954294066347750729209465588385797539593891398973952551809352585429148459592708924303368024921784819631356642638020458253111887652269305847849591578210924593019425096217184359878313958214403786862917418127234602653848925039633341131723254379645131768528320183155004292734413482461165028065820737928086154981785145903174254375407655354096656682077255067736749137112925680776126985896249678253320969843846491578594214795595402427087052974680781494244445760184511978491654003531176618963571323020036251684241137793698063898673197726890944182365765788049968733106247235684861813762568862705093677179919127543943760527455485147973690548899772044209886963579510826539798387392476169642619844792785179348800241807228616222102410702603948892305931706077303180737248462067623536742828835225049154962279219212131987647768297250421691436784070946895344391846181574417001202637998664924808774443649993360791172064481739164667955182443246265767771059692365696138920555509117433827224030596650943104363251907664143188893470839160777078714154396644040242808974946857976460184174368151968840823312075422519057550002593765102378310221277653748237932281327854322208340117299596697944154998765053986778363172819196065508571445268504899227689935717206186553611286919297101738348399559039646585939532362551265461776866983119071682466733153883036717984343840461963367260098809400754139841144029589812299773227886210682336189923801290408556216779084679277594027483676751193902667096696496573100322011631014299284469101170081995604364690029629766005074238622073300786513534428676283107639187736172835022767018460859641053470077300271365638484593772818612402236622633707095905712122935270443118842558722607609486436600351101619140510242202866942050627989601743156538059745311467413353410806050514246538894803349419697370048981891474427560429527473770795057834830834665052233145878114373285488919048108523978970904311549525031112031934170651643383577345613048049830133698201998171506528108326043876966115435074975920392497226827557936630187627014869882535279180501450391440378010529557382390089036475035856557142875975580100205006004016490363232202387214565334757628768247189790556122133063227015074296278003063387730632169100497699408122786168054226819106812287240389087179335635515704175731371418520873996026047201834715542007922068161500910576517779794109474302129817576585762065970142871453213594564093016116733782694766060119155783175028860170146348164940223099373426884942648807853548422601640535568623762368209579576857850456792242581889312633458647909262873147987981934128049851351763749188730415877838291994823139619052046104115207379827732188835784844042260944842208347106086404305422384514519191550392788142606362474112716908672255969387155545194609145758041703435912025734292866698293819348980891778392495901110281244292446331365771508085393403298825039325010979671707865632500693346645266821661414417656021263767794528948788533732925645210811037588598829637779806885388032686247041798820524047018704387289691291895688570425408496256295839707315201376975070369891985854819608575634043773966899469401244322896487630261243582123973038351689234620553830929867604266214794878828546466229190787971780233328550983039020698920069845561213304481414694375694290650395914679481087789897177956988269255192983040996922259548661494384564203896800043011969631561008324305068413613134508382908623826498083220782338923381476918055299734701479177363896662210508322462321843027620132027575205430141037798411482531261778464449408655086310092594167212998424188905763903941276548047826200674256184850779767387534072977062967676486064621433266231751063609501148859708017315465347724875455011849329174205269333818977551492385930633678389892929093417325986387394553177855028824899612184331343442374338029332829231559501772842787383681542076702875428932447200178823496168204320972900308442014489827519763209219035118834711447198881325543430521019877477132392040919735703570021086525209683998070599934740128715525173954685328695245745357297874849666806949598763964570974849244237588191645071092296462447430151162962792465872866306932428333465284104954093924061306848109046633518319222127977071372323089819843252787863996902801021305030373497840154908511759514928375889776893331759623465364367525937402133790747485017065763147736877075848440140164260569511772006546270355863741767636660241887185803460234629074089085922296476580475522565881844923480575868418581431801968833925176493391891190030241471854239344433744155521979936632789843707218498110576085147629210093276427294430814099699534229477608447177838844713917333818762023913891270980745416716203334769935701527956542591772599110240863169071494144192806014244277440174469202179531449456455907945892741650797991851406036717167434058771766285403208585158187197648372742499775243184560909433065126799925447324089056697595970661633100338774374283344292239151749113511117628003587813620451825682130103050829188627780394579450948951854154081458045323218284638642995328936067681820095598345892222538847023959390235717976510780957352213721651242964957670140688579416126167938760377357830266174223608233848467875053103137331923242195532696834531792997641757789975314406864557296397146244693901831917974045704632795714156006598996224606775187737277511993047434212538010449509678615956086865943883490807848683766846597207507878218023316312309332107272815093562870519830090381060028726668303052231562565735324464312350478518494336630210366337651948330261288084075415689064986426632000479489845931078082553152064196343975653338469501507088922330916465268349752289520620112904550055740823665410544530951101141860479280949447720485341873456078799999740516110415831885679235092180991177151818364808892346266312207434285104126211787771393800265519597968967060069232507682599230046466279849382292139142831843378024428668320620834923473803519824786108520664128877145343843233607066472931309592081455757420316305981935360086885363846404823875781194820011239811495194277023786481939812750659999529775678806505323096689553841388448558460668982519229024014821530142393085655948202012443166834919747565000114189337003121079422090040672310724480675117505037646358569378792843619290928692887733331540082809297284193642863174954872536066709172160106598211768724367122577726885814891485180922125254035084876815512377003000841474459809437637827401833738014388638166549829568119787997034615712766913668148041829642228954468127395894806663074412760674290971096830189764548972497585623047477998564622081428140918710544552490578952644897237387015270710094276608158690427271315795298537758368668751720780876725799017640731478942770794020777257606063914609108850011756078348977446281341460805290835375293374170597826891151559902294023906352778007816897175476875054334281999472627943032250633510060112813670718593519513528239999933785635217576641221570004269143428170360706232500995002040986735529852765900923658146965329318109114733437500768904183781061174546673735865853277711674433190042437082947543669552229697332511600974653695846444936512998872194722791713644632646264795211097820434426368921320917410443989615998917522376637120620447402895100509690767324304440705975731864936716283787214991017617662114677268061299680579639682621380104270725682783661493573528251846115468846376958456725553519644997905025255590390793627658402409710100464995180574905179571215045816501891841359818535943136443016907190532535245132388465258160116002529428028680003582366525370626998046315639461787281009856075457509637710698043443725808581706484547718257376376884774503659653069040763420931045098404034533985695174148198561888847835206069788557931870473372006621933558052000750751311028727923879314761049524428077540135963829369159388130286577373097138020454035868023126058535819469222961568494643709157052372290832490320382897914214318791911024599731754455799747056527096566100231219144420189683952496322498864838051097431705580852553598724927160142863007248158304558090129563970046459663426940478664125186872559849520299818884755525790007546352415649844502136962232659738061318464550301595728360887723672398039636418720981455721501189935725052308862372978609978412288902980881802329127003300581141310980669020059796370121527338865559447291276374891773456428505988692850476255721291136400195045786983432028984287141494246062508150292060136527809927521985099170167515348482298294368240369407687244318696381608512822907603775809887664436166206509796637616312568247945161458194184250900238661230989114297272169168887433242347465462195867303794240973806854772832448991703043029535212559863383219751065774763704215989637611766704602692892988112638855171076228777753454766529470899549183352810684221013923088183588977285474602182934710659070262222408400623047802267229061168928722586800616938130723501296206432392377775034191112235146870575305961768252488931593722398646678791434375003621882628875451017546871303950336908999979265783302465076713912203006363085779268430187729683805778386455017248673953987312282818807632452272019489120195845463175757513568401538695136183541361889716084813994110747323477539906513369038264790232080427773072783943292017098977201896702764335773648491715506552972489155868102125251361138482958407441394647400113435733676733858803345547545435154962669335949863229272356536429980514500249262160512475100230544335758090145579226847236086455637459586840710734489817828866087451115211776840279987964728605767695606224946455027752927290828352614527865960820014537331375628894608378329155156823492303653659197473567661318156323431290033771193022295122629945220138324972399617980713178377845742898847201139665552958310235715793899134845780892199568114079376931491002491177122827537504735360000891385233854544842104264442344370363280968988023088852331052584272295175655582531924174814609071321569202272152143352285760608673707004384833098589394942338274703275304498660272321412389720996624340078418736535173739072289332258084807580604782673868896913919788128591270642562709202027361163274763856163084223943431625180899100005411604569030528390907617791508830737837480341377545116589193385260110068845518696225643840110518432873762395431647712766978130258061795703146674628865110857481030699128384611670880088603925855712109864219304086042929446111604700584289778045717588264062327534792767184773913631154589853325123637263743806874817432868456724870600338748867186884859856959440090920888621905427174021568306960852268553294542972075316759336762638869877294468822165950401753938951603736498663325556114272784270723843475341059446794362812169946346045435454918347690242640473043824446493618659398467234895029061201845360378952358706819858485413031863111595048864516335015522731560592379111729310009497238487732647638264400191934402472456635076712251550334687587421520100018671766864458608118515656111989596600893274533023047098578879204955233173084371991302578142818477580047254473224894174101673440958424351147574661389528889430403860529164110380647335161652081403828991831759733600784647164571018705439114874191686792776524369020101354304714003747644164245512480288314249821416760683094452528649303701618465515647332880622456949420974987192126987005366632009478551208684639272488520982140105480764691074534285489267805121058802879637058738304224901263390203896100535215952188342241505646859865383656581764580441647103260761398753835981635748185633645727663670332855872528491149414211409510692453250958390148230834081302600105399356371619211441257212524130975782499841111559872844880300128945812977468405027646758898599179624594294510339077718608748105241271346870646633874712098140028789190972509187489131576356942539623414762337448246677931665599814676674767862467089850361834323838931468747770073597708187686217602963473313869337689442621369184409388028557246008267213036997915869347095432043572783604500752580798471064130643114702368762800327056055199716182957557817720121012463528796415137897686107813262434967873923728702458603548112600208568302904074719973092740853973648405642812655677680602647031451930326708557847493211218211750767275498886827161523848969413369740268407756544672590399835668313119223983443314040482923208127780152752033464418241181809979599382043374144043291500662494700709086830657640689601679390202805495853190794797085433275592646350274746872680825302286505685515772785097666976643979858996034030564352590139044069346772340364490916559135294979458029432678390314438842205902579826286556617388801660427080475109938289943906024461402927628536594426491107283952258319791452977164738289935626585332437076753560015926838018939921490675084406557357651028196300566435255252060510034046494434134071880745005747018972344655933960763842396034680855081295710384121309445458313986331720259452971286635729496239642354073437199831377386617030736450218898977986744190808133446855994436490893494749000383953872038353719004420366512402080088305630272526044379012107717216731399671816750855434054683545422460037926697357663520363121421872592075595163346160778010260672915318462430748624284568149555008725953834324230321392475079882052849952101954474807947775821383945201279005173952231865923896308864303588698587922520689112091474186042271453087412036509233097233805977280329227756748878781292592637864113304490697444739503764329764566726163873060109672408124430020888565631536979441414420300448097585496422794643983830587378797530245704674063432616819325945669041424444002008557976536997727087388947682948147497277705159585307746268188131821936905744506468813529250657643899323848912981224505640163860790323359184929314850496727273423691829099111863002996563230608220871557969104617502252698271007705599208930286910467720421642586811362565277775126923515509462810895486979432544787714852450274658325110155222301172551901669963253252162165305743732176602987201373080059992099443788918079513242571888099293423038137855727666293328861019563475022748673910985884345248084752541238729840350005046731672962204495005842394974708453717182315764297985923284632658615148238235395274600429037003186668629554168823063135429424219128011473387750645884769800884619464434744334036499273657019072248917235841076818921217426687061277657770215052125849252427174209265811138477751830233658440022885648071174385809287376698710510225970447842348656179635584426918430457260737366114295583073835804446617683177254058835332111498008823236234776387624027003264363587127017525006687638973958223312787540250517699515947584302535861451627959375606445146774644276325335722709237341317154430703539026612109368816058291843870289520098306973084210305267436220297903367740877755719822384557151582151092330624188176936301181068838112262024358924193816361034572973781468969585259205969035824042459143174922041754590881707399371517630554452129990694658674258336436186457367997525121923974466840893547165122953947038339200351273745850618001367616684811431224220517664154229194038520743309629012971977134400669437880552720642210577923716759884630919504463734383305222979044041804894916366944674351120739881509388508013758869443506172236911880996161789934195488066995106205949711031603468746579302967410521358442915342554481420342670859695352766453099214528990383941777152222462412835146464841990193474586500649801941007516377414908524059029046264661470413772863529027233285062050772563979581321114808538032407143854961700657336811419103562572482012921244659026388806813274771930616987945792021215993626125842281992590754616575048076738090164911730100609982472117783961345498692480134556128924072700769725664523542293893215254797472898082534924671125662674153111350366636742519341055756056099338578890899215853059189877095542814473415096317009113823993842574699394962877684030200927311546543340668940689055675890549491471461068731854477320678573340222778878232160663561237304586160886586525799087451162032573445885181122317398613187039790284053825735244116416745599654461892789141993535504120494257828361665290490243056556008136191204130172010623361804394401240560018423966336352100325503062277217305444138895907427846380838787727898388221170236965497423200362437901068958442375197600737966656141047783291865649583548239811454736657563145708400476684938190216441637061003250875218903687948584943553491569742410433366281891833757618508814434614614210695028078474094162166555577317985595519379841000486047597086413803116112253683933387564106655446617736737883563314555003655099336964456024005131945354833787538627747490268633966742192970165953612305816340491358384779937995193875352081131983401334915885890030346554854719971151757997021001147442321605928896133548787146629459878580119664517258133884500956647992727381098822383336398985651449152095008284871477009716359294795710035650637268355387079268823343013615095903582339783677653791782170362735453453652825619970802738441988767401299255171472482423351671626227875068550642457982654698780090109208101465393969099078302155497138167821115072328738279186235139177409541582033438625095179674879437387701996348334733817967150308891088985342506388770923402265295292219575266635079789549862007458174914670542362737108042767469282537950043245160836261451925500619120782623089044588077257231253999175395155493837488265442079729980668556989808965714593954457428767708722769560401130177059262773178737775587232430923943119922157154697468008038200316739334153942051986361770336454517956022975430495155656459113345667361252184753413761324747137118038011649360080134982747712829095768179451831471144114038733819746863125948779812126014380910091378224129223465088584402498340038141718274126753809822475048061365780103625552368063611971178004085698404404056449370054654016523407552386313530262151403875478457420090920521166757874473271664448977101238000009857228535343883700255598696147251986711908825140445028270346124050189846807128527187000714662035444141326499849367630366126069700066611424867229319078971730288177156907886041001124356564289045453680064924588701090198488306280893919283538691352998019647894135279244686763079324271138432983494987178378175534648251227874393519155230792725330697261237388777419905703143738468750677598026115134302808874127550269255334214279167276010906789803129100743168610157998444477525419463697346002521800336304776405062511434341679538072097522529412609344034363955393378944800214452827934522458375724053941582802130983821077210005974842222757886108323424987322643420310972589065966000944541254365295908347179366600609076143128181240610156440210463824030531178231825053382317721931107743770737121770385370545075292624527974224510787263228086711537752617065988722226406836495636862357015873372652611194396993925258831426886634010163657823119485358994553161738798511552292626139686737676555236867487773077330167618339603045846866128194729453797318939517166311370800152814556882090255408275260154613465010495108203097806899832868426875637312503302681710726974277053826409195879017589557219867121165659419337400912932824856732170806446659334748272670192156347145217571305264921983374417481965862453114151807552927548054524017622357143441516396785662276598811731632393553337368035723149722030556545990873063931172435180853593676746348165653186924406953160194839642424831122890467525273789427625091633299258001632120299243137326005358737411624321795181119057425669031882916223376317353748517912339767187060890186888853116775567813653786468458282721832807342006787003944591678441849923140608188995006336535837390017039343414176684619638389256558651204871294052733626591290247791536614720717219595938130321323597987740293363885902263867964109056552393114103984430550560019668497216491832340247598174534701470698429286224701892523266769253005254482483015854396845621555566836145496470306674877287995581446428462284428737104184338617649255097248202002822912267139744257783792175045748450856087809316986471165278841250096491831390527583569641216691279425579762124276369080025782123501331601584399030677500958237507193222451280542528344206262188378284823048382762597158191769533535251364443841996954478505889542798433742788912937003870037508350260183518229922499925778725931289152480464485832215657158063755070133652422260226757497029073045342551153449132372218416059057830212738973437307709019197341499731770229123595331279235886045710014049068833956871532277562328044538680348941094738878299794707204654766085800084848079317053769998601316857178359365614834011615887069451298982991100074781927561309758408878862181406239578375356598168205194832264761929566547512128647551370034077330678973590928606355960942756488230633602060968723845219168795241184546165698334088717760558892699532048161284139297738661712649013254072156991966403548311491210275356589071113917902956852446959368428069055546659719004092200053789307856273161741675090835339195841977421431142718107905622182115295618011434603387272260574109993216203165890185025150507848074054135599832477797722413644840268737788882195233260568394477160557929427528642751112682035433812895810990631129814868439458349740854009380204354561474622141471599977417292280313355702410891655719241122482346766855262996139606717782510335892923406579869331126287226623194229107191340891172215440867953787455480562606780261645316470033656692857544561326537371738945595409017695671970961163538073453163157682349095616388844811822383871886122425340465039239185736259421846350220550950732433574666103132455431972644936436461798168060241802794891106039498970333529876317304139755337916701952385267375180029231824764624424654072649522309220290441767153664593575478172468939980616703639397895593101403321318634008730816606420811777716799358589957684321826681049446364296232915419605974489255215557771172544368308147912512795677334098806903319214829742543538578616804865921709339432777939992819475522786659380786770364026319313979503121257471840783606546553785131139418941557167620327521625819434966793812003974976990343840761145327718981193003397655451461853129429888255273115546009244500416721996523220272789881729542722514883437423708132229447297143924162000171514591010329933876386154220019560537143605304609743945871574593836854289375630301738506665727154025896753936051827751761733896431495874968486734623020411924192387616417380139160290591073417271274171902507141464041709384925337689132524651360808293837808937808612207952471720132836809606322130995047239380131938639902753993658527673576488679467745117729602031171839834622665538808838321489831536042231001385478454501746356849553542905629920477590859403537433752633448506323679345573959296202861512173634411990328521856191538221725887901606411775667983758462370954808708693265755091497128031073961849860780527478650488316300002226927376392265912083680619671385410550513135121988869868563901310404206781641169795443616037235537851616892267894471462911445467048922939613767179484194578533918369401273481201619586459295719508425755369944495811418042692297530768658506844718896135896774990763734649097024495134626050849870300065312760516847478841588932839473795919811630168694334912785514069089438875570860760755510538648213054223070409058968130399565542438869907736018591473219785400462284935103934362424483448675743328494210271339301039390691910210768055786452328586132220145767705891464548136999557458221798254820890575786757952857688787360859775404555233458412273460398674649727400352927955339092117425369801623625804113548529921410525511319658038319195738110921381075884018027196926487157710367023724979822253935892064840540589155663570842342804233880165375194952979731486005498207384980260742093612843239200480205497903920642681157010570865552692413158781569383726465964848736734695233214014247315564221737063348656294483749927293120330921400835239159358092865767848649628861751933067214967327797538304947111775793701187829079173101824304662951465145111184569066645184739305426009455577542425824528858582860007184275174982275675477430903296587805232147384570905078332876900293305123661566502817535608987960409506965993709597248188852069816261305100274027951420641012511984044827007003711592272341445878628405089504867485409819445134299013052809687684288851609147963156343562925423197629806112833774337647398377963299058227022364601982668470319563005574768043151185160937668899721468265219250161037568073027168023789365976169212429780862899959563299320924613043803746123185138676431390822912185441239318857681758273348520083529989567698252740906929827924318286154987890090557211585567919429150542609801794516477687357151449924290989092434919606016085329137913139008533063321796718088371753790688528503149626414112199693589337235385502732158830356791213039672444723089717649188244968603720212905701823136786769400710666242315774847962202472176917499806736151236841248450156916531085233367549672438663386104278903613217517975442955610254184620130315510426984698459094316295155027437560089893380787481103801063193148325639515966140969849079024783186598055882512635213806701793463353414519905383240002392990347417501964957479940702977356679463536419802981283993032203683375235667058576269345399284477634103707443643853569636504288798333309654561534576501574669718936739157301468434955089868805571512961955645330460033688311125751354850053631975217421476263736869855478309541760517147542835502164569041788447591277958068664713093680533423460623615524987306949576865799038657125188747909881906027692795564242570759644157910034027016508421438693233035408498730199686517239168519804863136417949447690500688576117345235139835306436454667039793061445603307702966965305091892546526303267319709646690399966157129037514097983868331729179300596575173508552518197621489314686871257636255546665754314594564611243109132122270287350439338996120835005323838102929019522453821430904711252989057488884012520027283596696928971430628407311287170577655676963708198600231089041831973291795409992781310547554119185280359203031060279511848505677885552751828216346896635628061065774019020892400587388834307684096390354145568881925409020016995505148886338243076759745386477849620602565207215846949896531665875885850391074343881642883788142576039915252922994672655453231157717837717362922701545325503319486151483231176723035786883707791925932607895999150014479749950353845627804188662910402710605431129666658655415029085824764929039469690176549308668628096959448809879016976869434614410192395136351380169568170815576236424198581814729882516512631045085379878224007667149159173441235613574526231171660825135975724447869295765626397092487878358611222196865268199567913986638294977241350784121962424421032387866936750413359867979867734289466057207287707962131149137025777881769501833468401547517086587020918109730313686604923522330289444273031096521308451522883925964091148643480354247182580134304570085380171142863883809775202862201476586699674087991835169693418928009139074817401226078505918625180905926322845324580596532814233654731897289375268147620868698799909302881019195324989688652572323877586772709690805103127244626009669823676972491184521172872627974057047872827312591582382455241802706328171385092995613617293700840785505423900782672846783822193195587316567437734856559557182540298612112337870392539438229057571179390038915163651150673150258528901581123186033395538944845340071411073228259350661082146328928927666257600392037817863993872965492823348791411940313055406334198676006496456427935803654636205221897240125403475077623487700546732370299627847939132304661406453607291572922074201469860464018546501878814523866125138099523385275887375903968554307375023650413397041172374550241859336059593033866132962891220126786654615780885379947325557383085564791807356275212773563536602376789594680641857307853001445889214129969155328363479473259363148205124263736261506708723407146504382244274803742024658636762948127570676012688285939164834515553967351214324388258399315221469703740076543866274690485924626953525680013576570800254463789139363822292975572616592573805045384732580522644065885214335435738333609925870157882652412225548898464683599731653272897722680453624413302736483283111881650542009160369913545933694008085617489355586859531231906262132012233881549677184849350340829010350169275667050285486668624112994832603932470612591614919026041861820359266525216405405977122928723717431831678992392890053230333565361401559839625365667413968283448471558723207292914827805152660270681114846338824128822610126306211060272684486445632987735729985880164000109094304392083075715826741993494542456583947828930529331025980447739928746915606305871335438587166226976749265701640075579254357632659013137341389790962725658032854534703026108165209351811835309040287026254834026362618995251638464372278430539646077962966183556965999141601687831304135767053619450487840198816929150313665196185272689206307470503517195822582945710425063738199487247442876192872101797333292768034172209486820512022089277410839032434855974801789444545394849005812345601057437311602706278909979081920707016638969483718559676653472979584570134737876210887998484747518117129296290312742337726573849243182164199320879115067173989865440137406158673525128579995749534004803691273559171604589094393926918631600589071778872912385957837013504482430970584715930585237987853478511709222184927945117668491689652655174406759846538191755266163761606213115496314337993958760619017494846922057181140910664513094762578551181528628426861948894574272704118366962558415000795945868551627128072487900432007888618173021951979361602113110809912995138955666549548610160187902495176407497275448927545651643438707936515696916812579768157676154563309324048386955660147669962820310627556019570249386638407191245486030649915162173714017052598133830347184983836393550270869769771570812160935944000620021387390034580942134960082350440707165380602752880712475118710793967259250327850913589569045295107329732854128934887476784021180105144552155048595671282798982718873425495075451287948313570201536324565650018812960642300380738346177219236380207498604552505418007044994122176735741319764716893325547961890014352851212201044764902235396586651095243657037308576316661903428465878863985037917334081984884931175234128924576772835585440296860275841542069574842841248514052354017322719376896057529059538009962977706383731752136337214140330596704391920545458052179615096831720629892165063970220018622051490626152756588839767951091945368113143624416128086364579220005587451895661963669548948984444961133470815047505859959891737625387048042056363151206572796506885232283868193406417141196039422599306373894090388525408993686213168347037018973202918804599079855256971911432548030561428134232309186228672430336534436204944782498445666683581204239207556077570270281923218004972453296884565975811397035077948764834751049349069862144606532533748588266648458456218661409986846001249608676050736769852216617067148348059898101263040817474992192875536642442050980448173289701283409842072766138952169228473180245870168167629725474514183713242963149390444775821995019716512504182249841346992577252043737481231296731091821106819411909377110880451022831335474169992513531358751277741671053510005099325736639341670375465571897892633444269110149601910714348830218104334202386454267920682278935522891831067593224829529633392853076472222143566721042271869673692643677173841063537751929072318248027082382154835074717251654752957628906164393961727833542956751275466630082397774138873749796945533883379535432808043297421330711270273494728394563230905034146778056987018759650574815619713966959576352206860521698531184625688749246901746503300388248496568314038816619629394016752401900191455457199949545626083422578205290971489411253499549735303078885240570639833552866628604000360050782862667130809362650037480196859389059166615256505556644890634490144613332964753574549918132130516436116357878371333786898736466747485906624196729429768985292610619736499892939883741703336535023327122947833979670877498414900097484444883702597891288259360107580841234048922241503328231266269992306447317500735560577760949273550042863210265215041183394019743417701218665176392009431702395730302844383245682526891004170206048282432265542367579191372043321553284831453145447496976240759113226630780492848951734152905763031164197388869152165843976589368580713074404383516063449453150243822526579721695925657410979103904416626577304594718986269919363720058251403351223543525605788918328039698788760068165409809785108367211610455790044530158120951864833708123273222786909181978892578260600557258547873452359166885363590365660502011464121604395871890108431360152978995999816515517488208262682357883289214196543816070366529052323426142317309459449177444491760146266118602740955839052984467840382882964065391712393729844733445602051099767345763967492562788055617313958995760301863084977189085861184603543737254348877206153513606901908354439203005679341558679077126701644361144671634306282459738492297297263333950647073654101826073750517720757442846678404525502666044580704826767261053772145416009300876061632602806185524857148742358161978649377996825587249157678485613347670743998055654061542198224336855621627350185190096101650147049603534653350931298017857120807375136862997648448847555485044611766766169818279070180765346039284787278908582384959331200719901677900414647527703578287556122429533335310859043030761994916380599061684011584763876057341756664379023424894241288856744802346412997657022999237059956967744706682627552872455283491608344135751873515265154706672843773649374982461081392908098883878618457454678515152708058482204229398855840281192839889507430965887095521878470604468410776145258026464728830124531873401497108509079992798242878693187355273617641503114537779070265096434321831196570187256589896317819806072875935193976914775349594142004599700232213870708045115187576864535952667614531338302699490123314574131482345488519880886845205883736497551894308153135691344104663063587083227831581887548791618322941407312067171588620247671199449510500123477293272893910695305681977724521886734415154316620439657259168757106517285759895625710992673638492758270611468724343135126330931881384194598727789962788677652089717397673711422526552837348449690062819072627788374968215330281067659925095406375882035889975282795020413714871278873543787007571834507812618290616251201455169871005313202575213219898909070546194970164169010146096343091532728053340320241731833351800915504826154106789714802609368829982647589490575349246589101806014801424324626011164697665024485361436582473258528199377053195952096309129232520145105878131209459014485569648590546662765666626984922324789033457848992522761480801748270454829691229525978977491065966938964921855615410642453132988018448414732960293887840002997472782278598878255347738284418876081072173754382569725801045744804045702390442578200494159210499410569501984493297476298400811057745476767574309507139028107566027282024650793645426553459828838170489141999439922263044897999904629480419519150350359576087996061804309585987318579154433744822060354801081538401507723765084511435148707843828200087282841909886758348348868613611939850525663811331670854259511494037156859277359616703767946777645666808443823752091129466969474974718550649222417612830740543696587630482128560739304194941328527544466559720497963000247781643048677659762476731794069166915253257335725907819499761065070589924941965022755280080093769167028740618623431019295943853363733047523090325915632413632122779977186643686286292338141902664019307015361757719503921014261642482871556495523601044030693125076419788238216369211421370995558414252617341747258680578688552269522362986775247915695595137412148971929173791780578463600273574208795971536180082292142379271127465499647011261639639306699441159060909129751179161887165641862902659170934672155858332076109234526926757413193800575913297337080507933125035447911106471673271951508151732755207816323385126939501555337091559701397937695336308538205131228180475666306311540770935385758254990669784601276890751849117672267794069070999865671141121031883083991681369542622327432034733994149264316010211651574436696423057988444190874804730601849546003955726956110168332205404493113760941344485927749041063514291086830781146424386767788607280527997263663983126589058827921959973025126782263765278555733992541587722791657071261566724421855211100968284176545925342629637634336073386669210638738279508662221007397107452349965196665054693766542485825865779562933882279705936604197295780061714619988680673561491419883895822699594623286479900279057326743894723573599018280356547685358004283740361272001467755201215130066069902613851297166208830917058073994197069735620379417777074626251364500568712650713769803453557530791820595385029320291966136859386736488606167803353888720052749269817306908040142982136890673291102608506543461694200664148089028225988501729306413154830036351054843922922112044971329503159683995398064813167148646159814499705412910263379425508783840560501133924024380060657197978391415670908882282128967321804472745306856184201087119063575363146028534921071481222033524367002354131566235007034427726584465811704457722279425261385804301792946847365307568639857920192776448048599303095692638654599523560108543585137226408684884375449334475536704767164663471845093220896646148995328541785839267050065274419057708305804739686606247371228301851103205745200149701170654005379926966427681339512519028025991723630512543865187824340145949621946405606574318000566600102738036286543724899256224858969829090550324828136906449685710205929629410297719991245849522477262877773002509030459838266450898361834551179612253485838043097768554752642582056781773926700663422893529525026888173118952135317842741992122580964697367947921154585644921190683446093010141457407308895179748238948739901592915057590601940485757769589813335125110672704429872647910508643349339100516042765649479875432998866044908545970140825597875786270904520197512581631227456218628184196345917271292286801513732704549788279855371592359988044463568703112559733874773188032885593340130899803263108134620313294824956343919126055018009660239477581937452705129483173840654878468872163130056090239054534312538418742208396137569631552994749929583017196309123994539067881416712693006825921989238267168523934732883764572509067668626502678294563223915120167688353903095134156898696653522073795965042064638886226794038353955255623991071822558432310894359974557583809304121144988678397051349805395464503392281507650858733359382435303541610766071469239780261080707714425496930882610396381249077689743653540371160758246495098296299926162752605738360469745478379508538831647471146880499725046141568049992908062251528553953929498630950729362934947999910974322237977552513963436535956902535955015958042680328802068706889073624887209137967547656844529915512773018173320316444409835542058742057671971404294731537078254972911902611983862324183021147526021097534601324684758032651909966600946563097971663147150376888875713506091113044069811951161394315331841742857137769883449826077147132531239908412887381181114830042463509562398018832606276843742921646002307051871515170876117754497570001531481431215225757002059361845215477419318002690845176545923051720955890498779531035487757826655746595052582973959558720240678246405333820105683493524288105509981967626893979498011642391427546349182545950381215428726964548273913038722905717874494551133215280406513167055668085093126758972429996018408048416262481483428935922876433770919298120870172384261958808871366697040781495373765651320735440688024213320270996317277913212676437761271005014016869074130316776464005282423723069527462480686842023328047489672753294410602347441921855580318455855954839283397943601243127492555418730742816722299310043903129367320513253599480615709878048457043263668787939088263239113987596493827748308993554526597795979327322480301262778358164938782363059110883601957388276131349925337666513893368529187842881968429417280353488254100361251513723691906607514069414471845826598434770702787619124000967373712549101082080150764272650589891264290321330844852213168249907720236234957982823967713432095309412121715700110158125733017212728085271601133097330380186434187369019252171657647177579343424611538318808544174025062018097452425658584371963665499916380183259589549851046921049449883354036174234375073146945907652703214737778694372574681052028102753976796863761542612440949848620118746729867210495813239034684769799021730963929900632539495129923913425741365238001422293850705453951761542250126564230689424567438512642133192959835115484953136571042499270613796559394433666930152502515997800837136722549175322828202361495177640850294220279266200719920656736326177208103562497358101003456707537933111768247985829968151738209183216010417183241330215221007604420408835205222501285829036105432726782953194230894142602678727302869115048975899462260219837436454102426983422352361340977402654439367274466447469850820322567386199959711040981971650117410104826562040107904430649246275313986247709067667682852081379543554167446691315164831778819777754458663961342720521737257605081841365644962443203928049650723469761352246602306525255144976651506987609400911760384906563353005184924153275666323132063644666733658249380663316186550320354145295049218599627729232374849673309373411533434496127141303235957480320374930426604931793417027286529609623073160450878521484261949253406852417969902284050006213011305333842952357804408166927945917881780965401103963946245649506506623094973538269025273785531051559896789249610729108488879640787736056117372356602504412419910427071831436539700635798351705414051730373529761914880969356895929185900661910620152503374313895642903859388332976545967061759754436868276891900197797729881955389887044397047607545046421713572693215302766776030547974804992425163875464247310329259363078412692657405024442533632415457213831864035791734545253033342740495930424005144799582495749403369389418027272927539298418194735593232959942267140381372787803573133769350764447225231674522977047073383272264991015928951512693600068701195479464215925280990231507855458844920099059371063019323891290663886405711507553709703470724459303507697990657480398489364799399601757515558498052522541832491794330400245260576004387965666532828122500494066442429087868215635843695552410036044772500357215906594731161736061387562204051003717004242302736831224678031704379383730820331183239671506356445066934773628415316827860407762975778081575477114055694489555997260672160276426246654654592209048667537314705973941123351925348613354013049285449915079627384501352796642279608633342002717007124041240517882917687912306131031819702728158242825942260714289908726358436208398439321107902091641915495608738684796284568364426843021514495234152345068369618570785750516605328473818638050898960097304052971029725963283917337969764696517093966281307969889923035897149899419001066936360566314684789944471865722450962383525076255101706975433687581282535961063851655812546926420156999263386176803943134268249630804068500906960883955003056307213494582043340475720885260769778994145567982584056820431695414088113491023658745297622634346060616522685972352239450355359194583663879059139543483289917872204362574884725527061600224585770872636988216417933094678687417542975230282219138917236271721493655017828320872041684197295275555501781053746463099188298594312907040551398464272797263099135277872964956825872827489011502213471631109105406431367265439612769900664053011130484863537331665362763823780459960291137971365162830597694427002694608533086944186592878297268160536774557878838452806185195822018181169939779257157502575962540316162621915450886346118856855926434841806255398431915523654960657716032656740469801879131315908321387230802914606404384337737608915484280344941476684637979199969451647540777373456599492615979763545227674786711516374749693906058095468972665341039072321108082426010886807284353044106943256491597069885117392931372055456670310753651764506535804834824468970979847507025123163549086229539086636526018300397864139683076459815778031901118546536477299737279848796134170629664810169128943638197416729862849694057632917461101215418013915948007149890544501858232905157027201045923036752761283538182799886272146528403080601320304280627621716834108294575058227259073685419835441995640032993541663076078352717972986620420378629272495449715910418343944822377773675468811728843668193995659798058534396666944455446607108116160758060501731781821194208086041953476203398131478866097406693953976815231162678387852311913642734905460150291148788478783340039400703849579598366992530824027831648657226027970140525769950244486589175749323892738729659910273727774705219085228534946095771368522176704199445216198296186438261957384520508539619241642634673124702311084915397376529106987305262859491488621603440323504770960783416175433292810452139588025157467419658889713284147771694363234299014237782214141567092464088354995612131693558286184800935118328814628711724888568909978192442698467992109760818808149867319304695907255243856393076679874157759519044512308071273417124758912942192676903375085218003307436452788670846032499422658557393965706075098598064337115060736197657924882879260445892605659822601851111293632807671817416412975527166146807557284348732215549390967007625616605212937741148668449406400607963962737975480159260355941557429140948880823513084144646782248243221405282101871652660350566343689611406218958403157811955686936008329843984614082350717153605480856550301756295120334164180466953177927598816141065775229891358712336932518971809712443400169167641721422936104831184428788923671326992631864203658141053219596619190509609433322549044088725968584883126962422960399086451738129752843012647760050364148935129222657800639237268543378319319214460429116876093453415827099512164580844332034002741699850630568820228071060098432460583205801524742737127152681137693412521499872406720098897852664052965923660221829755697612290764227030630089507234727265477842618654101393587349230289800496773235701903724108920231571002512141555654951979844720642880055811121625020412905695465166219752007062288678478350999084532963694453870701095850221951947872434573456220903434257107684965669013938715869433613542855863025377673778647136506670037726953774611534020923304824142471866426497456575015168917805800965993105814471344038719222720718756263591562193982831573835528690911103357907119347137475800819177013767505942824279420019746460956121957136746327924885657813320275885370284482123047570036721958352162419122800465211877507779367129184496327640831922193929693733913701819222026649000263306283708878969472832919160880823377658673695482190846221726157544728534399841307280357408543469677838266025743461101390101295748127298226239199929899578349053005056366136249669095071830871704036595890136486321834785260712853696780067845822579735552490497205195916345954955150553974470172802842003512830941343759648705758260375114181759800390595515693448326968010511301843963641429981096982725223392608743113310373450525004872190273623298652460880697612194078992150143203223696379124436065828129278802060098041698580803740870189704075986593361248405462148858649020568009033914817878120595927934512513618249687287781875691687902243269029912893427716940633651778962648776994149286174538159706452914913102557150552396891157527317933720572498502061320428859741623050998569703296685893880888416754047860633097197274465340254161752514998754116295189226303187505697564833297292475573304055996769126767542327507533472976119672117968388353496106743295000673381219841335134043937611496579320412146317021044719409437267396526728184553789803693692326847569349411882866858749540885898157926629789912255221186666001343760635140228278137221680386804197517958556796547195042180789587157759410911363064991273371229954976402878379120973409003088734759369095386776002785917801986591018870232351005633822759224039182501855359787370062964912826676862927300541476683335820349761948295482238854109728493269940386564542789185143651667498405867111705692589161466236409279640357102199562074064056693629161810304249485137192176664921276753503739561314299706486009978558036882968524776192838882990895176872944798194283757618441112470782400701892836207186957678105055679129658259041250946065048117397910369216975918589494845526581300289161143670087892916271301615879083984085206731501311285207795417196988559090538697474895593554112379565885783046723471468419789756297333310096436897076727077683170298031333024517023111000468901201476856571430146541200017222570496368644482650748076100496784159929026587885858513201069126951664000828546914600747164975037916755455533762679334006952801292890941109458420048968670395186916747578624094538374376733145087092758256168914677767491625287069190537251425427736738037221490556844004640118382948383798702640035442644145991028116538829834062070965618427838730231908776167125737614425927024679567683014749489233620298587018443349285757384217507154905891087926298632828267115814121312344003340654280314082968912030117610330118676516127635478148388442956146359980368702432436697920330940752317533702870899722829632090751633234380523870803723190711681599416428712399782280401664085061771005989719246157415573299311913179587488617767178779152348767367466593329960968061001547369651247253712028551852457249807449732482374001703158210037217131165447612284371477967908533189606282390689112868067622501255213004901507920317033804903850302993518582390881974471278848061438808805170421632525709035292134957579000311341179233454222572806919543147477539996168084077220118610299158337574695916777800845965485805935594538754445618288243458631183741673816222441730611671930324647722199273686578967803503178949578902650489038859931797983125146015600755247879373070154300483234797627997201713564273705029123126589217852664429661270674769874962517011094599627234054740764197006171472782280694122747380947148746761097687652087473942385888262618298397675419357842276132611853383187427615710906717753247672632811820026727720951387417457261702730717962424049182593642402598968924385441349801820189244400021294950619828159810559249158221470481446222863145689119057446727152257204279019842864456924382013604799184279081067375895525759726439651384766584207928352991365246462279653494854869365842830118536735145575909300521519088330368339428013888672767771992255556119633118891925512693120616638187810225895453549827251176454596952902715885079429360805193231348967712692475627728393267515111969253098267499114185475836207124096994913369331278052620268683169229388798675984893603316487596921315084825886427000241272910330594668912187831413212522138730711326276159013871627074268903735651224908893948881190750011563827580014301249247156133346190443177560005897565110419936079121029536673921271874300424927058920867647817092849931595317975603040071443656627459569936707674358331144516206795741147525002224688024054633047137092839038181788103527368013327929418388802754241549981240354965215164171614018993007159742163541614265117155205307893270337614955941567742766166042809011383619843082031686673060968723652189029348391053883007997692895269202017341535265860281919164033975779130068332243548915890704789617350162704558532829066192263922938736638976848933732758091040443165403595865955971140460146816609179594011343288307377130230311722948131546171864493695274597005707805692243529622087692300013282017133772885809174100545929921732097833205061177244763683397678940180477663923120000246575006170824847072640862851153466939347102621709559865359605140128031213573258696681382075069196474710159007818188767970973648623040511520478095804894745024733134324161293531793457267190288643437252361255860076125807475304969860358306486154791780079170477774524377234434865761611879582350376829974924895064373247674791214024770101224419873384314154067733607162641205966718290686526973325215712546332817122490192095271471491253312398226713916600489526778668706152663017022513629510339261451437535954908190737236745764642567845949023965256963690718670169810075860125899642068572083319913624534696052548206739276717855323817354843346536547579536304485343910178504705298794290310193944516265331307361542469010920477130378355723841633339884961870055674381541622631046904739544483286026345184733738145348025612930795390984372713713848853334896978497807561215123965527918452258893894028236300862047914711354454712622090800747624812948866556066147359750309655038624677173255901040409698182761347850813304195552223208171491143360274745581652813798753848975224505108286932824838884372673007986445884848867109764145037080787305784888283308600389919622908036575065976226842215443999887871160569223632748477524353664357018840930240533395847772914877206843343672502018871092740630328722577440457564513235248628469336103599222868159681116171567743687069800907910729537986568736842825118702765776368564645883471159504550943346394710837996362821703507834308461771741119525194970112705118786925260500561187675945463880964493273140636790934829230909871284989869474837826337301700120954168100198045235196110239090823817086672355620609858391398591549956299728819049016087552641632597911729465667355813385185271413160785011791245451379262512811713950140963901469154800109576753026113731110305947129557220172123378419492566043099536058659924589107457424715004127551236936861850276276890323272796088534535110476861076556878336376826287075953253657661476850498431906727426210686808993821808725203918200255470646231944340054502946273888783884675343678550901678088645499709003186104976841886417613720876770698713423162251315876014734108880575539159604355709313663228607078161979441065755675781452397588980842682228744823482483060227816902197602400845036297327004628745236734361420667593262407228297207878207482849951900049031034021532678561084815592312836916363781425352253601767850210109847233354727323742933756522126898231282202402070971420237221906488943878565136987418905937875840070439002365856562507497261325228698025000893228338026858161769935369714884619003715174621144824279009890307111065600540917075348637361369930519871211378876396067980833092635668356343081327315125741257629723771085250242740814181051111656656990208068786415537603000715388570132560529218899808033640276889449697164017677195972350759428077092325036782810004654742433932617844536842755039072576995841803010579051139135569977549876569721346801309523314627117229492694925071504714776026930165198364518324802539815817089072154126653856955016216568823436156523322489512784472584645003823849259965581083020849646678389209752718276921920301918909677008160557024240863348596218701043699428338194635053554523177275518114584157498973236561446204179483028940651594885123283517249525622415425816650393100280213500112550174592447877380120416160094345847583970205443654285502298186842308872862806226118167615893821378902831093910303691122485162486670277578347309340128240725876882619113970622027094326804956174896023949440769276590126503949854377675101293136240073577122610017548450583484540484204845869983075596713517898458615829126728931687632325915825641086784504141607549607336069125711227836041127457978220890101163669166804542720711960067885458591973367331236692763348731629383059761975834699862662836946911242888939593894692523987491147365415881175657882549651035182840336510843450914085752598500306396336439887912877423800058511800218810845226349023001439552332411165663352839851723142957012667598060243836777870153329051992422332684090017552889603211707985891628552443219345184892210972147468914150002300749792035259914010829102994113042894571265913258205025256597133797521480934386573756135950966860794190757878486936056392993524143376585448616585810001897998243870466498869048421867874636121033567227392553532725398889340687389633700996733995339153070339501601999912068068702146815267183626356965543292731979031732283534331334793107269277924893651780098508577496404942932271542218285216369102719902568170325111031056693847995474738193551390068652483803229051387113006934455320211952465605803703755157279606877082543031327668113230820602233741433758997439878062166718296227045473655424406542935515405550129815287162260064591818094826828992686023159610916416711395293359977441179040654814864132862064672476689084468537259428610439140388183813652204411780516221586514979407121465414468040246449241208681313272828689725555859628042994921760182854791058173479621739337604484800160259763480108541408900927621130859335402965027436918896357323560749624469019116310506232458003269072205636759425228079280853937208823410201585293828213400027127771984248056397340978862145631083466205014046919969625846353876527520272112222275230760171432622918562210543039454382674319266090029265003668171162438103176589027993654484542450359911295079964224675729665463163489050097221987080125192076445998242228957284674339384664228748349662622997832417803728016384938729104054569241605130121107735322546289390483729908976486911453337050876537545912632237742978849442127801153988367446968006950649923541923432940044607466301563708595635664581508964020574068198149767698925888614288051647604424841856438731675201937111683214674412491520949315380696015690851763701383888904834324259497060184136908531662424103541821601231393171156840995502064971319999059573359508683541186346005558663890611682225437304055434811816343849065637162220144992351647366960487247870853486644638047121043402458837219999034687503038845122744577376456874058174459163852099391869880094046797725395405931382249736395093978790829149669897484404552205315800101441491299375563699079039278272208024913699440372079300236803664753747818937114199463130284945767408525129073578409611015588611716804511079944157698610771001078067785950009799181565400645258992719397949281156030775091938817968956167207905489074923055490806517200453346709095579533352773842504280388062524362731943621206838990077644428504988136818276540764829201896803774917328969967482074456771083059424896779119097597229223810956726141783644199417353004270024980525735738674999032527009171015428329408597159415277725554376624977401240896336072405781253254038895021916471973680213706773867523585538865345429702197397825523618374456129202003404923200016932801690707442660193061685828640729766122512304900365167800846569550978523850047673142304065721752148371343922981756434392473863469630395159685404520554144012050090513777349947647799735825800963547277195394280054436028467444921432051598206147263319508288614786776589102422015914249992396279575383187483136143374211961826068557051500210572259942390624219126909617137857343342420026774423682699802580298846226870391465274103111271889788529281435427386735427895566629550906620611677970473462800571326229188223132827595714148210483555442252608767848106624063764566330297237571266815949533657931733114861453153376402697489635516814336060674429622151861413299012068604176874936613507527184367515353331581956924350060852563540154892250533535496384466279847240852698666840330030885756873639451567539160526103744844244935419671261062954919049464944834995434378168051388006488499264883721098621300938090890206514260692465383664511893563262518692643976132287372389624718510897975219734463871620400471396826700665416307190259068797013947693579775236918407602419529216170777736950110727938762758387505538681722396576421677867998854264515930150021566912971349601113447979876471138660168629350952751580629625412277017404186044288164748213054636000875147710477453753314378729443020088373337241538585032405610224842345757520626312022563174024285643611997649612846876255136845798886658050581132444748261492187553177074649693903606812929376341069343135825600646965851314675124092005301401592573452456645466935260333556402553231785521270073075995309545556245595170722164367274438310561145403356595370886968536319375083175748414332723575132893307362767414464031187912469388636588588776188853282391009366176506201700076739499855033307336310792279730701165498296461211784292772614753477968679375008959646426807979990048837009087669009922364915657604609650937336157279332474459855551505182427050548338470953227443283127301243526117196868739394176706188273260470339883114006672204551459271102591894173096508639324210758429228220448899659756379100643492926256962460739198791910507625825890226968489456671671523489955693297154678104364701577571823730501812798064596393634033630367297363771392371434411077982993628882367516775865422383962431267407983606466762669077339988431082449875595739771197142023409082662351884783900426601059407250537527342917165885943757744540320740129843474417400868405625480540844467950895499367938213041658710742917180685720649611641086434335462653286011789452127495486229610360115924734588157686970065687614102033327526132712175109536556017709683548527211764710108067671740425525873870997769659623189708650638261300339595003830052929016183632387407150928429773745294457017223834027802342354179763315663885096001894133631016251777394977199776343120982943710604764174822845219187260117326149114193579880782301650005245116562790071506983784162719736955478555719244089684071487711746081053576472459067845634900439649049847543372717368609636220020040079499494312316721550482049481277238389666915545983026922091585891732370493016386442560856392788641505285287583384254331883086234166901208011713935717122171130678386797093239298761824234935391477665149354072558780560553785086497123329614450948750744838544534718264208107400258732674011677765071616902248803303027314479654309056238742937468662976037489084950960139321082235707567174701531482307758330675420287826028632615382383115349823414201866713121109653109196232394654417682444724699624520060536114516257925327004557999249607106319867271356386550302955629815834568611086189767746480816865503636729683953986240648443105208126351508577461418377117169565440042303233451512150895535552575954080297488253762104878366137642668431624262082305981298395856203953612589219489458159726023209722847363942673090656587850809229205995575285730254867531858988616786685697981558140812399636632348094628196031809498402762355149680662497309291918302774326819428591369389119302849046709449758433775534321570986331051806527832807584811882647976158212483175061629291623267668763359627980315204595333697297408186504718773075817536120326259741841069462381527993037425619385048452182399567685473734980003715425606495190563081926427834159138830450458070412581949254566005096827383238300232731178131177734733125453916590361492030543653654285026568794100907926926961364853919709216111783039125236057861107589871291710549338271109325577067346232666778578957778374805112572707500315590872161537452317097793896969200175920278269456073643456164927254827313268990383544513284218195670081959316651557107358329916767665959759759557877912572267902941040100323912545663754788401390171001808797311767642614755579125136616968016719400747537712385206843107831760355482904882080101330167244179169129905360492605154638683172258593612209681255570459021803392947596344718023930827635867044763656760052883264210393916006722954016979050059800434755127075418547180210085957785348899520920143278846789556073406447870124844541927429660167335012527132864225300036458163886537963212986555534600569371106031884197745011913678727385853949793747604019645025761895775424394572754887132327543244789114007182849220188188464619146185487635136346724263778705385141264594787655750803016054103867699337762046121787393156615537986152671140731690171573132343972870783773574889974501927397023496970954336331666946557125682149406836247041484426661138594337619723415566177382464098807367111116718812624728497423269180673810002005854195590305922969120293734403987210457659730290692535075006451241820599164005411713619251920122142624836926731834941505055276278367761705080634272367364991388914295395368971185752434770240911541549239906856589190992925553819555487029280714666196057746801406030452010686895219138437768103178504559657547440375306230769034468943437977726288617898122406614779696530941996275002105663122487204834443500814742346093051170516980679227058270044780492539828344087865544976447060932554075320234327851414218500063800090923544289624356644524475641123992056139641190478191712750404911577032911705246310503945486267507588112817271039949685092881545604494183306910725967302239556649191365277157234607738262909705758226936170407439110932272909362799287778693123557672158611083164675744202471263789979057251888726796677378828115140985528270461601598798378754722934419829714651464443057080907796358952951580504046018947067895547881265892382291718846937366718319249585011952593548379535496933222576767430161004214913503511318582856930986358326259908779968898636656210713752406593599425805227103176497614143061242827853884020637428566775227890405941351242963116825453084495035325199283911751121503067666767673794833918612353662906195877301396681793760122264470990695369925924492751600760761839282020423503354887940419642440182777700270893880325237819444965609560033246789325110049628428916614053317650180401783921088163625455512787999940872805937584103277951516096790377330232289571890584467219831300101567680580318587244799764106537434463885511038161434198269049203560797791782138478595528499382614597798502794510163925382436845098830973717619198140852534414088451007247720020544459559196520517564393718713689503005064756237584344295675192021697919346593859538534624683660852439394410946241890185893595392473810396229828164427989864881799597204346982306607272356486629645261481529633832548482456023710323453538377519496497551873828618147499892190940631550825436639720240447733995857660884042519820622785040050809403311695099443999273183241529322086243872595457313570596657700083532329303821787582256088287247275328894088465439093025135951732150666677106132906127977084284262864441888780746838174016212696804133821372736407883266587008464512292480436017393974074845841584367886590417734221394456521973146865144081694868115336657998117757986987239399049745982648923306125790182477207847233841187549972801807012083836877535046981911185515268282255351711590579908983844974488506760820437133969172447134216474377968753809569405295529874837232304292458706808152704069559236704107183917936575901207272893702289323826617066864724875039110935284358253822427757297063202628438047985206252474136728792535207391880472077946939275599747307250671271658089074342367025905813531427486992657564466499902199324118326317392825852608357894702047154182999698161839881539781323675734449978166226663252670970044691748826833441099851559458435253717526718060361762048986948138188744895394452844126868540299636176230124402508602961259460759257421223419227343635851875703204551528964949142062290517627519977802383241509726366136006967065656256567507888722610456316047589613779260133425828892985007177054570866953869353538924327577590653420115167398323584207639052058693302707509588789257261621019112812556004234952098156939235706708992331063824822998017807102947086271643542630331104381502179231560141266280964426127690089548034943220198325586570059229238199220055415128145225344132297826570223143624866377094588372572226700177965119208703093553672986114486439412277193039127271208604767572728006160880236962892081459252907871696685080669956874300327954395168966920647350050054258170525908669664614388954129100256054714694406448903814220591708836956632929329642462268161213482806334919714597360063878675399303952940147296746303583406325976672862137160393237850500569642057690396017871966141229392360641450158127778345387679837347820660179905410600056124730113735922092339837599117057591974751367794360630826851740310614009238477840664436532901645450499824859718010766677663036311613049166334258981586208762493203189613280978123027499132631356040349577839688154652974697420990441598544289297350610070328235950122464804850937433167767396772068344624039417772348120095133178644339027116363960992299275195825248814420302346119849533576951300221439951451767604486050580448538868260679481972085186605520472689034688294876954613040392503838657777534585105627577526830205186515355454999851368076663539553544290341215324266775762670246011842704862604173563395883600966864477476691532797938046774556773058527531437974636007323069818386155488525708698449426102718887872599540543892426492726504705561969530237107786428354349155601972931768895016868579052522752740456727904729833305427879485931353517598444370904284606026894388868315353143506933061560390668300939472421660365785856697541543348356884883685539398382765009349999957090470176026820093557249610492321489484147790840670891753784055388668960246480819128532136257513017846518511933445615223449606577674555364985430251526961542130754303536121294113335041832169997529112803353377585746832831635572862439270819584886299167039635355677875848797689375685798777595183376946536124608279114365363540809656569244751441110045627808398429571282044125807040345091985393442920962598415959143190379454203295556230645968737161208460950004982701526774655655342248178211685063367830035350675078716550708196188138684961860793867689151173997668074348961037984999751848568449548083288422081621075660495615899648960509214991909385953759685505250029192167676819745080853628350066465477240094312489238731286114082774815442368421290124442441492134638053975095490515087686768976933509089937685963650178696186270013074656819930564181626042535355552784555307258826444612850850181853555826367618782724063099553696475100295700105094021650328614316032779909987562664295487855436065327129482041411124775523533670142102404055138140896278229469050426636451553898729949524734572841407301625071467265694434846720400136559150871628817131418460963290094836433897109809396722558459675146423199698413781190436102627041375794580247126283336778259898763654524818518667431128577665040987781734477171903681610952338851553243759367615998707498725656233564719759996382224596789766330720299198857379608437288916479919070866480100699157151799422880374622198214787358820102931972608105670290534763979958614148243478166027117533168690765115564007237341341702505204282087555283206139498887771452890279070177258697004902878445976013733614998700188947757633351461557889466289413370362839675238689962004111952334763723926257909604395863537863961542038492351528187538847835164155449875965168797108834456014012545419909415167211040344526070831813756348185095050797587544527616873161128303214114706334465253460580974791241801708653868558561791020360478159409827063047355722385828841127422530927380332664427217672478300303105877146168503626236732749533276325679188199858534344915749293532490902386457777492616363106863012688524423461768904870588684047098645935815342831299040121447335866711180795285303326086551492614843589347150023088097163516863617706064275008309424982511577614399641932594462494980163396725424618822934351160037105007990108276666262192647125344053393301460456086367464655394986859508761207467015498875492078010306262726408258777006053909754168516154063350281727361835231183704745763270174602941764705596499691456825711551969480599447410142756848396146631585716671093470800764316719380914124923609150668638268866394510222780937146022093556680316069786866184283748976725243872232402278039769450362936813212011509911910785918844190303439582095379077194303089174677487188123726016035987475013072859063919445069413478689954785491087626232884741903605332507339351753899794012930703679127472059049994182245525564997754336187961027835496537576262231780641405312998452514367792323354301685422423694908438826370225532389275762382534025906987859134865479648684330753551136154235995841772518085243198365763414442517226330522283224296381611896366318183805055512923806173108374042146088706404948941617524494981297848855852423346870838295114731019215166895888898804828281592884506034119597097532759043133387953753946386496778802282832064484785691456166832277038890846418724272732241527179213835183133738612662577154076100062292319659185074150374749999322798576538040867327702069097682186834242995239967018360674670646161820275249440648436484241295486074904589217791721383642756432770120244242572705442299643093153182679282363352135894017738477187786788870062013912935935707112500528879764171678211486282589991754298954038957590110392910829405547069081042444166701902746192717472058422218138981201964160777829585030496067444444667985086344368720973327486309093079349354492656679040407684378050524107943435112564839539753308536310131863939898722940146586023306995779024373206644733429461991674285519180878813292899660604214587459050531038048021021752238056193848446606508672485153480513828895069527464671322917604781342549078786841529628783176299710993461397917985987250735688722852079201493709265219762110102269245632403462977619685659795277247948544879666736342232903032916123920238143048049993491730567421494596903687069297623291354124260210076964126765455070737706526264593446370186182089354629347520486673031665119352515562764416987063251798673180439127570768243521515987048738437502594690240592083540678934609602479188623988319749069355877151866174843785420112507351402707327174871441710179413074744841421911559484863089325525420069427952482578263453226554928111244844788769909091569842868164814266154969388591831463914442886279719415062750512272638601460397595042513979069891338955476190867537518201844802576559901002298331758750707436100334842513300403952896946200457157569449007951660451361389224666349813489684129253848114816232986175301895681468690533951946673192205988651577491015401761689385224819844931227332329378869707295331210320033299734910931928189130957212493560934162020854517771683024522122059798126819319885412017619592193850979036321160881205011524293813119494659369401283435979617916656565594395309412248428817975124312920314041858172092448484750792566096814695900817799286522496954471534379634838406910477761754692551532242677045915439827956660635049398527776696856196613608507511460080102406050837281358437486140627608434023790173027814296214271177509315708391621165189408443180801311968192550205888883409730764249074954800785250213237646554941730481761674154944126126140971394914518069740449086624919814389000827676617854417839994130161729399934950234907385868284778533175129934447036568664285116339085623953901571521705868102884066290095354901979728653283154061472053988457507315573682865422922886288080455324716510791329794378608441260188961673989231597474353765113039467762857536939079350272862622059996723139700637461483794729329204310300545169759042395812539128238987753321697488365441815718896873024721825963404192483778917419199649415502923496083328977284502375656393017311406954785637943851040525744607860426596420293312819768506769105108233329152640241193808120349764286346800067393861503877929006780624854331702433813661193627040858230533972679274107134723040221816983402249463633241123694332908281133861525379559908355134345276038566971533110808477137188767879677736247440384126307530664413877974642451304178458152401377034029910194276684148234901680389746285515357965586394475121649095242077296030521263262501191792811273556180968646614539508685723834708179020535377398485970053360437964536911026459686136755863707540935742187883317691617556713099532670817896123106027241130007989296947265805088387967996674975247626990695151431160148998259184270302703947923705267916814049389461245529692695017087706556266491095165813965992556407360933114050773478791035846482286667791542223560013014500672477314506513987966570642473317821176306220625985605652221258684546810777559193191448630253456224898150294860803517683974212162104462263548981446763949360440852911494233727535883310409874352120989040033519318582761563447100272332908979298202368728521566260429334615925748753149382710184626684837331302627562190276661335233046463162021065971119097904626533459551992538574457834384900778701997948738686016706493495026120805490805109314253516369105019096420094574464020121955960323021791437020768774650235909544256413403089817223875357274363965648420287250623152629540894196411399676447069067329576519265392951294405763079428826067752747172725186376477883297207799106099131577357553711992477305798938340020633136358568613713393152726458543565253522608316693589841028721092656134727296562548220211387319635958204006660030519536159505468786137277821182651237530471002465531660414031778043911202957352178734121341378548075900168179879950517557867553488164238278091822119268550938127180504630658692461329427867128360343431762959788243784645401695681959657481984842779479826805179305537432728291160182132492589089327847619584572157640407763566949541330063153714753960351182910245998230006929757022543809628730162201203484119656368043580062294543544970953177584080294998200014033251955226453497746639440280110844615652528197248247264145330015904313861647516905543878437842788435637986311576187995037923831795334416556899122692452266795761157537636407514727463339924671012213246761779322995487586671510785286246695455936759719120201055375616806580764370604784728948683769994878672451357696322827550636371261213198927730776015911747256280567189623037593549889163633625377728432418470549708625893163871661183493020716366038512769258186904657588257498129275552102794382552771757681802262175200548320844037624020088162196079555782131572838234768864083749818448339819305112866060499512524469039276288402999632491778370851976383460608285121391200707393655317596000378233041348030567406713755433266277602256842712589800986608786544760351168080702185607876066008728874003176648626299840385012403199656448996121978052166705451519201762103658539143070533724939022567217377158402056440866856054290439841966896291505797960500644773819674422828594874467786465860322866133402099049180113451571844355991659356273892831859236027256142851364556175080766241896174281287417712162225916616525295266256272647299373349092276234178674903192243732039677680182771964771451531227280279533634217901521064877317056952492135981287884330909311016352497532854373557409920477005820523364139003128583086449810217278234982611401213258061221411258363622628940992581475313035019844072969556504409202863018516339324717628720035151991124994459430403867067992078654502881328998786971630677039002607023962314758675786534932391417929703004557126172020067216091550598170227176273193133138739654589583302359575895011059502882295582758734669564632555788070171539247459911837250195813934411172420938504686753279929625619114829662636303032815357343298788876435993025426077250533352382099334383230111979130817231009913782475090279426790000904816480106738580216435358139532772251758219224001781508856239744418902310801486777806133470088664073342660312130148824079207610473304827660861463070388936876735065299999779101141377407446941078415636571717211422192554334864181214476636800548483800668360443005976073854977133658081240567188374376047167494921163677029745446794271037849580555319109416033657686264016677960612145483206568196613057481247812719881253364159280194718604734055150940623231128966477591884049033787543733020451352814364182260632048312523957095591306581793166173398408095345742423834327771461044844016291595357965658689016571681501573292689302084368553586780385174887887296472921138759750356015599512584176158255982064882063640206211462160204934543577398432964292169846798730161892923733506284437656053028799113922047301315593920788478845009738833594455212647119581085510532228166683987869303777937634174200278386464704680234185751502145826924077696848993913470500817154080174141008187317741763856330807977705187815642164264095898278663161996354865412833496744361069011167941015238794317617123416634321562201858678718030942321542104449247345908210266783195310953157503322485263007610902504877615649839471309049093350136774757187493830740528793314689666570429526539477872484375633725387408721320830815794409303811620025402615658028854332339484652576485303579042415328777603103393686543522551949974109082511514043827824312089545932062502731605562352829595353610629043347413193190124751198477937084606567407466450085525350726234680594197029451954515725038677325039926425131068315004602785667191022830047636708786819809130936698779395450209869376974102124679711614470273110786125476712277264864063463771974534327521436204033341491281839067758853657495978387754874066972147676913425509789585827737440876514446079357938348085176224787881305113017997586997857778313392170191407200667504510755556339268397707798729681433439344732518106987687041219768486056554815515679945818609266710597288194709541769441401058242988608974534811392136539120300075805133760823033284808598927698137425930914081104766483992773385028004790113328191356506996967510207149585612991854680335493106912371202493435884526165851027850858955382219842177689501448345907455852165537794343615767500199981900413243589647868100442629893001976292985299930723103243678150537653564228675368495554686082030730679756731967116212805163876235367883592659103792175738391764265828573595858682852617667847126906440076888371914618864892482289356592738998972505432330003912996100542492199637958517792236528628735629215266496281581323695277149480525471502531000857016018459727582639512157966689838634962515232133277143280033450194541394456241477232887308793115901942751909493460118164978082267528569144562673009011629892972671528344458184887356649391156263842282741521121206915599048360247647780792880119921821227787873851929989588808979270406030946382287120632567932584102779976154867153431447782080151905087509464370154625700905905409016239945485946907883612526158957844775830857385955435087496454265286699634457117234159659952492292365236766121954033710986382865905994300410215214438717153792604751153673962363472602777728153327259429572849565070419822171874724883657032830046071793110640792980363521860252136470277370433062336960218536922418433139631369130497939289183165883901064814000692489717070047241668742099999343375383702771637088238927516314174032205972803186434564904429858542080469744212566972121268201093663711938669308570017105226441662687724051137351192412451453590801325051299070536576029319815221288646248173687754959359334585786055308261661580709542922357725252695826533603774572260045373486995037157502525225247403756067318842669772941434625428822232259121166841803333756467612051625627719489886414544546009981419705677876534409100637060725829822609619744607145440641947735778634465978854646290008841895063127854264960381440492575383917766734920215228940355863809367925692196115889807247774742625313584126454340126922608937693285589327857907672013770113262479728139062830134940955632867566543925040234409725750701377140420469697847691790053341673753723652427776099613687401381985286746459670659294341296148731770649559855542587457394944671821229428331290516904871647032692137297534162184430686068248891373764081358604240312065752708228888190530915736599488446880047348580935846801240517200453538491473966594954056480040518464392193343651851358973951203078305774191971794212154198343141843997369758540180899591925503030469320567259341209730540479049588467241292048869565099604786869823518026842822263377265422413018793050750896936655653387372623170779375520832619637597070837706544263769789901223300756638904682053051494830304216928754256257254801223570262040030444347691995329801080612304647461705713491180890085877340522865799977116685291819419864962565374255263031925382164117048018842660022874593044536874932147723148880254779081305527622727122075225340190811657540940619392970874031012047219095969652937344328145689966607992982664581555906129766756608222371222574077441864951436208020943381212403873665683104343597402336437279135585306978244427654768173237929310675112039874974443735504802902279592065647956977723578192837926259039440918620442209857006318223599111804595209426636624977621986176357620447488272425493791600683440361062658194455459998051545974422565045171859126330252966194430180483390941299689404462074308921763315597403049851675567868160105620656753111230559315439809518837447188211459893890202801603117555041690186813457712846388623499016413723254951273554986298328310330980962562762390924031590855719017115275726788193305649546029139502914563579512868976866040233434556216208979220596510318283031231887636389115500695089778307265863561747061831244249350430185276394457501923355964886767287288757233252393365455283341890254702137538678430372364425083527818567331081177644333167292877860656926768327011492825181926022285655949315027532293615204124768274503531863693528915588373732729296935271735204361907849222016176916734148980625594960572094102517169881596777238753779744814580230063677520681845107366606337978258729794893255237457007199012415001936057673047240126781929431077749378239264390189505157438697211845468701616587120154856878946180534203637947630643989999314858023587882024315567711246634863500438308925580303581760814365479285247982240036458789267804846230991974147552980995548772719895085960219208094450114101007356619332663093663448715987596119752100186535852733696162915127021288402326581512943939441590228996389308793292856949860311874863869888252092038445355061295340532643736508343539245397137070059159433956548789227881282364263041022415598138695022256288526699069956329868935934492715981345238082657709340581326845983534205051871031172622053991012981215010575424678112560373273595825434237268675060778641150009872017769183113819238712588323859311061159504104281186875733956340548327937495393093248319926142750683538187559432033153420899690951435081003825406792046100327892333379286365337003668915199115901146112038087386102736739298799122060767641277135054477158914831987621222107139926129781085712831089775046169667390546381655921289517432755176014609629538711017825232208247248566522142194267475941658460569131786094602499912182317095067331503073966605693307155471606440216063913379701278279301386795651725901304374014355504364671443257383117464158471161138673262987353879507404586417136998058562784109132328243359120773626372877671847205195659464132644940600404754468710680480587994486826181196268980255603290939423216624601128366600147396776776833150377100316293663308410327390476546689192843637437786981764449618784506997550449663392906800565284650479478218689239387208614354071851828510449788811465349036902896875216757102607282992038210386602023953478600913049850454330343324655754916305695357895546630126874628417981850696210254829263997507817611209331450228221811680185213820761395215765861365813399585478861728153624329932063670739369818980346995533973531566931825176032795194332186241975380691758880390558864942186352828837184089025739234711856694216253335316283626004529856183340683906452540361280228996247079603042287684841769410365759183812662984780050285756122970826284997878880162656467670631404331443493111570658728033580544592842884624883775827305347462572913688054234309102419459652764050768747273882288165846321376757662271697212237885204452565366094289756619616816504353374454358726377811537846432176910871115877029903026178043237222700398043142032965941373707814989994510782186288919221849024042394932978541766919877824506954731300121796159242855617949345966641450490308081078498242122698338822871985478927312794757510579948479031360355982392055701825531313712543852088521002269483289268808968102874718357505139360809040228170227983984300509561416325993143335429452688123730575042846110470001820021118844060353059283464720159684364523674116683775381119343465830301890148737598855545058082248830612228538155743487640496906707620620301718128995363020559275199101647004457039049374474093296192877409385828480396804574311239387039910614894721175885275379852505798591029703671045279675431725204251638071299159643919187957909344589310579756714092239410447595432223885024372979396927357257037228162672649774078845882345023572514432294161272114657198155413274790640034131767010826289961015916415682783669679522490560341798494305805275154514486520568376181425500125930838773973096344546034701755086803309801303988312541405965769729319702037911287024984958711128507336285679040498022434937757592569681582927652780793276924564813035199463763968735366957173166815897840068650533975354971130131768904561534781799007838178350203783013534269204240693538208852776968799465643633615630732997181762259783439851411921126017703142104390487452025014558041965256065662661384962345217458071360441777660930883937717445088196764847039421532693545860847323398675637923425291349588361544012676729086483379198603299140939985616217222334793381029672210231633210102363960991874845923053993307490592071872652485566694900590213380483550904305887068681018583772531510355039379509538951803473497190565710196979636597749524777277154416117238596650339228289526315868318286686624908543422682430423525046733965864656251519091894361692780957842133800244535531418721121253073856570309392392148068197061082813366928800703687829570641210288267140256305849187248257680966284273636916176637851128154675157259389331062114641020798234229518556770492339968922175924616705958777003630798558897292525660656042903246381651534485557087511182288383934131355170218765126362242707293037629582525955848569325396137697728868978326137779333752814636064825735963296457611233996927477268404267615474775972985440203705034576967310646841323687622906559641240649743225753576950781862637398242283696538295601978072138619963874412020583105999655308815969264712246449973310714375958417923388135622337767710279131413904270954674517051631891058140439792858261401445352774505898531134570522360876975687031266174922919385385066138692645886707367128048438624982826149775620953661774098116588708902056795992229407138595670800946999846569686714700283013802165283050925392651120831666107010263055944392146756776186319722840791629506753153929987322921090199799815365277801487645521910179959970453302782706650473188780418764422276300442274749354897752287137853587160253755733415675079446488566316666420063789531088654120988955672222006146420446161715564194035595628531038142514087623620293043071499366226082634042195752689861088049792160808584304496215078386249098756256148636120061712371525294307707523272421181422352994225480829241636040316089151074167850993672206023677757488724365567005165160864517310756948457089755885254881383078059998402999246885767937234720384154955027319702765648030688924218620728318340103312781318585567660870735062994533961462561843693485295730867373427709902086176352406757265713756429109160608776975981063694969201473764624629059107921064454556205886775293998620955270508923670329029152513046543624516301381442566521161190802318837852550273363532214984983349006432497592205760416620819424086969078811481902776007190626750030030228916871348160915053546311950884686280107835788298016046634497408341355402401830247287438176387813915528194274437844029419875219055793222459832137878045294300956384442926154286640401170541126197180785809266588845035651245479950471879942833207187071826190560561254232014656695283277708380619042705460170310248483294693475895254574606319707329492481406939119733789497623425335517394765052425188339815241726498455839267189444765755995119116008247791727204559433516795974156270544011873860237890325681852715803094895226431808909744329705651682251107262050024930303554976022002062866864696315058834913208753381169855863237287105991258148849791919137899727667111153398174590262635548593350333009955745039836455712421952826138428664316410199716871480543694611305917604878468544477834267892745573754208506725525208382230656508577252835663274584886675717253106432840745115537954901314032280294169857425441806739426786992699612150374435475425252678710202338259483174175788075066935424261633425682000908435352453659724202138931568210154949858910156205696086517034322259411692021648109421692301626453860590513080900371376736357525335996299310473858120768254915526771749617075990606559694512157753045276594412372825537362139326491285925878182956568377760817199456208601504970318101728911320088106799845136932570084492071917282304340615674669241508166750666885027788464160558771264540980653640755837520369210052056917327917245441618397648912012631575487852689947690034465500391611717269129547589461207543758741330210584742907896918475764722467967370495445601123566612450784409328765247502427337983131124015101350457593315923737783094116035571686101276729749042964058841774708638416231736460442672172043015659466806637145850808272658122469644518990392129942889707656119863977273990259584832885856840358163309957534883168531053647680727445787544450108098513113526852812262618560637617679300932059275283836040936209203116926164298073894922475484775698405591101955986729024898267179662739125536875340687864028980280175679585996078490028212595856325145168891196223866574513942071571075030880012828817958703679340115424397685029106499308900968255288172298237463686539713133057092270344615320143743786289034632958972083715274337724893601206014009944155052954489934979274486482346662836605058130626303454609856386118267775376616363706955981062536956961771992797188098397702461428699178609022013634431542087261697137481592307145691963569971869159059525150783499152452215723313185537203040994747171693307518543808649052869324423942672435346733806740202243650900229275776714391342720902101796103617171349305758610584228944127968374978914259703268861304648291397717134153733361046152003608420902490548221425657794729393060794777030571701350095308625035562850687539473522543389163128216045691537529274119748976057632128252948935740227130857454321805577625713001441356720643058430543996111370347764983173339429666474947902426854946658206976343176808596687604272165551517755672835290098063581117791989811612863780677864512844144404147322214486139518525223494612670676909068289211628701031733243096130035832450998354102223084386669522517408302113368277790788647145328578146360174827166051635986835632664527765620082405405817185165852226631079249812350077043404057927796611576945447213385015804524407328041659314018901425755221211150660101383181398850120735074020104454341322509915596838373976965548872424381828565603213185096248903318829945332307981644424273564019699998710267463932766364462797796178471712930102946836437374067351683735144113865360227284070863254010415848427475880256106478479950570485743082131451308531247485848250899896749780492249299266907919051399829844589481341702838966487798300033469096067458076984252298557557343306417038839117979462295339140965878131219269755905182762678664314492284677142857833578323040901544989030413647950728120161488145376664389320524362328672578332603251826536950112180338368433841493034157891623559373446298700972672740249460795950713630335942772713271741110632872081560369435604592566956627782536269134994298952267518836178188684710883734315887688249196758418154044419228800577030292780226216521408283774183104503039167523439446124714368455992547666259098624880148823958064988803995108135212516422851622043562255241629252881239214641364929128261137553884140983089556278386370461740177370418622481042986872683667196771308801145702135660923260927395484360866289574186005687692211166903067742538568853744746232444338392008788801786520062605322732613664660479885222779295416503582878250565363651173994993349123170646898631920505733764252835156304744144341078197275890290318350955906082660346014938381932889311264291899406063354651024121795984181950066042431881273068546636118697248188724750261375360777475601991158304859002455535282879443319063327858769877674323471392878715858991008379889098937974805892455905047304614725248360295565095997248200582004195137700682795338241818543119485354634549663286678812823479694753335988856222077148635238775130573907010827052367107084474164788176967762943628198409645356825939191823529466960594826680329728492437515033129772791945257282565032457882827556582506329946577463731439884415263835065768906291652310593485842292223350410785122235806505604160585534426518867835974612075078867132067773640890662672471220999842231113345966320912860328651763241402999782438012931037563109347161363490335953047207067533394317916258397240409504491075593648375328736409711318482643462868030265607291119197571305436765131842177803354296520436997749237577703422695986916780716034864653225774912228686362845177145072195439723276613691822925008195211659707672497016114573072020158942723300946215715450948392121346167608484655295770181310966934689008217104164764320905974952786327603183855117474509098651917312172934441458211808623811336658478838241322491686772611754345849201894206114976968910458981526940911937831827701356587612042144344058063604565894339298632515438529991548109777518083171172476473543528917938328773211123864619267892967536528947502810667890216284186091558307125447988890829913333421186767411310964087079135683697688264295545121534007738272297243248620638261392993868573894103577340969716079903032548771277251501965238734885700597168190349526387279369690809600541185739815860174523973322327581863546029564431121378738458890033078848540531860885076748664592118936630244736832218931349057657544559492745364679629741194586319070499423939176961992308502239034437810288917967758540859840623301585685604290139868252325183171404090128503980081001372758982222046302671681457746911126689988180706536163852411984423485683094281894223834874736020637851872209398788089072945948348134032302265561877684630893947893018357783883523075296872142147014580918225242971548806833601091869763921654664052995272505122092610767325783723684452445032257796315457889622829927582190513340943743337965426748185175354443218175391811739319686956259759543822629873632139830944693040993096586270772902839470015956140328223174816178245867736013270820407508138113323435256851356918778082485305785738804712643500190209794000900560056762317908347295068968480279776824807045983221343594013485341664838407589557883288438777543142753834463214798258326180827521297713688045700783272851428065131870956230537936296630329979358218111531807482510512099875781984616411908233803489176404776829055469062246384950239708148958674009712014381756893648894413466662463932971204796659392358522452640659621231276550219684732617084307590684105725450333570643080749101422308369963616527050392408697735754290742747052426473644620763197489213982034267073021060029078761469770947409056165553592780021462071340811081094471431296072256585720296562470797091743424348544696714554112146029159334988807994298410096074350577485283308594980934847447780003469335754715933146879947347539564997105964262930730552255323876488294345079198622687719934239116816460777049827427998569710370909892016668185522245847372036610665981804054345318866741362467055197877932012610097344185647185442571216056274056105242507612663695550739938602040342551181066960101547602337612199620156002857683887047528389283089840752856991467452533965266909801639622932808122757674672298233475402303705547254879891008889527923084738941259479067589360332527673548860496308881526482210593716985680961099427405088078159664975214122209037007583257973230790761782948385782513815540723885585897756163828467017027040772143466646970178713495716985400538297433317789791310462764728352544058050940687262292074275323554043509608470418828901579877225155113475158867359121826661693523800424521068144096785633513476128466374303312082756542062881046469061060868290203389182062273472638133432759407606800782792232145682553781544938486825122122511006568328031989685905540169535818975314509852743243654813554004206108965367754514065392908395876223572897895676507102117579154742526148342160646856252267673529179173426201216369137025254298249561905148933173026555122628814323958450556326643803132162611497581323835204686804193075381725167722612233262858799983546650849660755690074346162619245415735714631062038665303635542672692391840545212473499546373673440613495525078041401252276139539892551671218298209000483269717382848349349063089197757795967628574439340531399607070424950823969418498234500521633372734980837944731415092441360926812125157403425251701929565401469753452987271076367865443214718281448605233532622663234356943231795925796958224956450431770078984114223407088293640434497845642092216907682508464651196423457353141331125475465938950208323936681998658036380105892354094170451898090837894006691462067339095735045737198160226706940993065939861397067280412686188722020522505770425136242419364936609647802415373196479712291712402331217106497231821945691536144089543156317137468565041450267231330493874250626518011011176536415355287032635494860839488087363696419992087739982411812534752121187104880622607471775088693116911194428570909551693268684460988688163998157210751577782664545971375323401227100438995408080347313133083901156119612185897683627667994064942619633727980334325950091477786487155106344583966047084649947090998659006615316066948639795278453072943119000629600314975217354267651692139401645288803464969211045596055437115916194227371915870080742892339895764897771188214033446197744919956362330396304026214310089746415102157533133518066744941838731495575386601248658059013801192210184061214387873126813489868284294286630175827626844947082390542225591585172777590023432702242355595235225547008348820141164212097230696170987017646766466555732279620546254281166034939576516663523921141287163862205094828029277494751948921599397107731156325862377518111547576650048039602631469153847341516556560015489805554210283775189486303161559793457278486036946443175910657974981180050448548646221793261183863029311125273994913796714503881582566068093496516730245767421919617774871244969987092012601111872915275320910675065707428087701461936157540760423706131841405013490522454782648179686989407100137717318996123369009454294301896613881431095898335701322688251327765908939666785089158463945167869311901338683530240259986416678917676694512938237818939250925298859394573602987903105637594484045573759983615549777527099539142285098080194948485686326447213899496155135539077929521000065415799519561068955407021766841080994819804358564052620325720125362889384569647334232851669171950801078666237909032331978687051602454286978912178806194956717431151311514180819784168797253494336228235979379697830923922779365172160760417222286521841951166795028435993144264684597031449372822698204002166752802386956378602836518840403641623773211203026847793790131549903601903020355607870767552431409306044953198862562083826444781643599940406188418789194206140653615220757887446913682360012066506655765005013753854741448215282232181329166968904547591795398369388789096940404581487211351098204531202408913625323534484219714302778866397243618523136710356980996117496750126505267063515042392240695487635825770824898073270967955662839268918395926730458442340725797632424212078910569359833714486365080749530017107710575931634304512686131335264441123567631477424788875275672833009038364920733697273362399492460145575098796065800483324490360965250059750469336153393510618742693538267613812280676335993263615245132998825186332189033493659764034273088202492348704096254463920989932120081895401593375436951364675457373459124883140735395580797938876303508888375619057330408681038065803399872963267703439461546750129399131795245505599251511318287470411987173079467675325156374882836701921868076547363615513653456312000302600820676146723428504181459038890432942442631923899100458835765423361470475011513982085733150423260214534517887704510242239525508302023256181538148545460527863795665393720980755813972910494723296681355230059178139657136135989701995350081277270282819687504537333066830041977005123293294243064089138027709124729924574577449571398069616591346303956804880727199656407700361211939826802336472016681112262102681455736077583137283261528975791384095766663435505238272839819043241915705181244870263487868437860390386819974970466204542889632720479823176729999716548655063131932705561259863837751115326224642409547419358582148038823141855375531899442163397551629015540076300530999571886896670404829142608869395088910057138414563603503016952316688171913697210878184278358791948529468122002079904335160521334195909627364556029984256865525280437863390810836948137651992388625295784118281553008395987217219164619739720773025590352566521318232451817525775872117745567905696304397176908292607349134706579883225875624004558019456193447690878230359616058555981957030510846855506101702802607866479070687907594964618914335321690249747090981052773895658467306185194711409605075985768296951903952833096877126396813497401628777183631760176117384140908157259065112180462724739696398142314332986003471103182199407814507703437482358354892124839751569848740886668276105039759149616244617123414196107728216187379910101384762641252993562882573739206054396694373057637653156410349784952784670283362359266222925495080043862582292059643187210712095672139765888070307415465143535308025177746531947216747609086085103269339352363756513816348402050561694735697091140525094902474744919485285997182926865840544581440338769034608265492717634477357583018457303775563893344961453842081303534238774352737324863277621744262201078132183488584565538341689188248993237860424831474146253205731054412089330588657521610329109783284738077910434430763787268484388327730498389865204345546635970480421679219432022664183630943363562494547926426607675383545744668353109059044753754902413194715914107983262541296519518643213091991143932161517098084603257509779858250716944603404275787391950503980597939395653359085697239181850808781331069324703192140203323574909148383806630288337197761353321607912865571358602521505663403404250421432884935386304030115470778604876146577949862787139658667018548966769881185680661009285410408281285715633589568689767461415633305432348237333191152523239814598252571857578060881152539147918527008827229030344369994388789797149164755425974466156932276035302887002546257861373216940949445025087821635094739853175450921901413555580986238715444425785057762790017117421763634106272450229321573534609204539788629076977108819440407334659354111261690202156783536011190665169997050042441498753592514744501255162450859421742125812962746269690528303969638817495012516357661200118217439576285127920292576093964120869896526028718872414668349191983654489932548073328973578988681652745414404176997886111478056144240154300625946826351493432620206072427630146761413876881209288231160090188797013542234489193999985746945742058726648294461302874374780705947575884896571806148537620346796009370851877999006437327522453548609230064884619732410713719439319518435139879806639820777606557859361070061792566187202280810664992441303111204930412568405606031032051863185340751095686384644081462568195233023156008845818623108926638789551518822027001465088988838231516044214060118531113030378407312579914427078334614171373328229573641303650020372537044828828770362876764876622426964045645302739587505085440508696947533018352503460122322209254431557102324777706874201397587501829671845108172260433484526706987058127946168372432336025409376060608370440857010324010776052093033060789009879693460415506463649507463372748955371399174465280368574206191860980122547327052633979285496208678116000035705951886577055093138281551145166793508934029627411878265470241546054155633032677383005594248381888968923298346379745966951487969765272086041037501155258576807363093284011071387899396309259371083671244701828579713541235191569034955815328012714149534327497087805012393715918210127606911941515261156623914353611096729202784073376767642138243812347587555224534318462869159286681441926426282134920731292026907949826917806541176204768639681524004016661733559207308411144507566020820731064304752702844252720678208070971666213734794725586646104393323980628242202611616335113962840218731208419147809022038036557105182684618709036189921625706336284808544111440495184443960991568996087875889341318371622050079490136093292024348238782534619476887991616962920416548919913702474595314606635154470511758405725303857418710530193223606203706507880127958607110544147654523929726960452723359348006854250127929402520226235293450776844182372473104513691429162148578034142483591370878558150108593420126917836570708048980956592390516465154985372660438244093316559104747197174571533152622497811608264288999224570123856073827782595554353281554861107073578893894248213437113073192193978109136189941863555510377487138140404328312660351004563775862713650367102099816227734625292136162873207832955738961713213112264954809605540004568116718383279946683172690597629530564563578716584132336246210633630895727961282325610322665263949276698110966578169981664636827689477224191313784439173974352376780518289743012864233805764378568183828962115313628001408443602084738945218661435028739620517743844491116904541837686343838936147489148841765488566657876746026447598133722239037710947887738952430765726062150454521403791293944115896516385369833981713223940464679272955340597037553677503541856853930258766497232213072297907175914471208568400248265054328342407999500978575694622249128692663091653241111694099716806636402194482647206894769197748528886402365924941102228331439750919061914966959556033629044711345563591220534841079614747716473879479561442190158916115845734446387162814077188774841920414902151395374071664725563680420094505119873705464167827875585283670889339546724796414348250196652013411573433197088787349156841039939710079339881117512227672982118066545768478435094393201366715006772505364006120278488626240819919916557029260439480386715350983992241761515873979785648265287874414271258910142975537571056762153407216082529876305482767461499164157572342180933850335959944016618599151157512528689279931618973100049099723488835618165120970105535496552711006892866250811795205734045761773173480609448162169066371162126541997664996361482397629517079100874709341863672117077076774329624347304595792983286531060185027241953462258284667897693530236972012394658779785669928341194794489979974580859985670039232289411399577430018557576304546842656904360511788443189001860624596466508232426861456462420335743110813279820956533206397220252230912063765918511015137655946334203100920148206128918248206098790735061704042999782384232356856249644843379732009630919875545447390714935377851200875830474651024293630140682255135629655052369014902137614210822786029425670216888365021281031394470973213273421886230191365563692586345835541168226009897983905622211346655950836427117418404940587730174467395788820284371905383229098846832385063141371383932457458337583491126774963381504570003681235628650852560139762406808631452512011131082817233790717915721444105327947080845768874235437196192009513525694484620567390616079576328584794794038721624327920191834876528653314258206562061711789444520983247702394769173753159236207378295262532451185198999952478406084773132184368364644743352376276730948925663351210917544658390058631477039494334110654963624440772750930759643524023476916576519009955751211008452353671550594497849254967033428688556144818745877579919049430182041619413143030193187933088836013331466855167870867588413507376279222856739735878230797042467150070099867068653838102164643678062749161549008524578965545443787843950260621048608559923117804289169547662095963579227712165189691257612521797495153826772437422435723433623048439429363548109718124498383762897123716415767225808470221389625190663489703091383117856843377808325601571141644346930629267676351016624881763493506464931613314352896959837543894447684850176627505875364086705181086020456448681577949131900896609074164492670815736115702934268483327556733437065581218963899834487184698663786254694719283632194994536620810295555917072550499702767073489254963536815128418004752134048943709159811382656704261142481656900211712588681991308594444794359331417732352302790259010129723038647451093286681700444241381179983611961869705190058528166593646903367575993737522459103302779019838922490152422502455832451004854696303551366768633416802422609580319969838944888877253446187126080188667982782127660361126169426038087768755638949021589249045409385836182934615329025490246559467605524309589234852799646514390581395800031146772356320332408344749203899057701687038800270667903120298936958586520363175045573827369990790023513347498774908973794133400719997808317459084710227024591615710826627041921080227049361917414598997054459675851545466157379404235957975984283288695861195656064551734753362732933908259597524413850059913969094052972928718662095437642322828110344686314000729769526554401284387986551394598162901665436492234704848655910441042595828294301094659969201431493618205931072521695189927152848734740955052413212575837159571028386937846277575160704872198575300680727337975335518429016276501234887932036672084665006698583970629153930878467246948988566256271915049466648316313764489551400171415375860801561145485311143252232319103007302591903273229162171924062643635980414808335610120871980919247112563653036745180915576429203675106834884380458553474022622325597342556891131131109577418520625639656621085523530530087133441485341490964390472707395265461524456977158967248344600540343221536366446023595983634283532727392688950655820493057056610646110899508394976228754850964250241099779466340446755417117816962971752376238805213781012130849591852368359864609636329772571300180387841906597595901701721401271859588536505019534258742875413813334687183258861285582105020125118336439671101389951107322656116940679434317357874244814131785183110900016738818404908309674398010325902778864468251756528469097024088972353768379281176323574036818415241932740709247061910139547021248250089679209098153615036671872114457039255090225215670669769874847802146773871668949345320711839631679535164206857411082751963271290279230351920811641301711972763549466521543180211430036709463318194398861626276769135308871188685270157108542952777073949466812509353225176158323347861315795391176715124915705062425221393670192540964064413696873866460109160508002879401198211208108234174230165484840944100550782868043440460422820993042622926763338628766318236747442647094995801573345046428667020161366497452263149089075593025165890754242233864844503016429390812069252178456612217255233346323681706921087973299804664491966404392257085698003648793572297121491947295323530262323871638763520731455489964800814934442610671126990873460473255099209229924964617275020090924329687313166536849782431963310315168069625193965633743303209389266191202490840156928848478899928671570441500385938825617503756222893354852288690122807546897113993029369237713678009998052951314568466264518147559752020804063949421694752100617945870448492932259823527938036252992118436039751175894489420822649353205803920309206840197474798241557170658848798999716251429380475399618114094916419081837398841726856241812068387685743721259902953114232798864666152880273605183058570071692371836039223047779281951484695695503552604335032730530941749092791680517881700698244227522033759952191421110988101276073562112634309120399991863461445449929491315238216927590288520001362280520438820822239172129226535588623541287872470781100401560399989108940549507984657089175272754395668600159971504723552823680226571610039892770645113334281501413098350701892661269651483554970262345395188312517565593403215757484178046534340061329922129857161298851827646198679134840354476403113898443752800560591040809207514070244433677729231443376972174719936802546643165807556855206867546235359945054029827601299017405853190855647900503773941176697518373098333435989774361384570195546389584829877246571587454706930539116786493698216283723815876533336537251753399027893601588844827184193982569526479255668384223315133514161145143653276251782470926494661160682852514371118875454812774962132694538120374117483677432368947783707951150742232183947039925091902675509006566580572812409887809327225936094428023656669961061082738755820950320673212847730326767516702502435193556498155094765788252214792223142112352898886911566227785160622299713798902740086154656887795669981563007103122306571253091612430701856714831523671245918359441328214417835842175983923638099885178218569464942284658479527513551955212906069490372376728030965107328967780157399132175426297257006399160436891195465648422889461457672958841752640863256673797621533267814890528792447319929974633445134794052437011837289026493199768440425000225845396228371559857111153753852906995829332035994642619305614053041148110862869584495228360393209783333981271674768618216144898212253393417704900468386419006159964441416274423877712423649745743986815910832478137948672779551909437197637788934030155699557019807144503035287120431675390121944948699275683238206116513746193035669835973768811090972458854932142286845364981415809097911452568886789999239667132310665890558293108292747090057844373912096476295568288352390148527622523536806607604768639503142183839834474831344488508838032882777819639228104781347675746970521680956282335114846561610740894811391928075683971032725052844425294659141386168694836979366044112876850376753835791256451730177973383085109526661971174000102473776764171496767473085328517569555799555395682906307739475199314584191301779567300176427726297051445414206688796736660614303561079736164308219152600433630164984468080406187347905244878940595068983134033923374235549400255041090367955847338581132219041995673408932049901119606618952979498550659183176763969656974796845072107232256299738583788359794711960761495849263061150070834805258016795971770955740638999155053970141742016857633519280993432549618860017690149253432189470173746369247969291879245429389569737900054870713736185061820840458242666974608481754898903378177790314668719596603820219958997135854489901537829922597152348445541376245855165834859981038486795682919967236806637576740115453919937172926097777739545002557299952991833658059247815288424143617544650132938975593548785200640398140505623478981081733161030985670089265443422965974317408007037275099614094187549769176916716588238944730282481569453828163896990179202446342113447116298331032729597150096460004572846629804143606433857327234698643788014193080987562031106652378022202750111243555743285950449800413687049305713320779613894150585442914931106902698062051529549379854300262051720608034858126940647042167125188409401505745459736163095960531716497895826443149871518547898492276859728976126366039901910402123841212924535253011152430057701430124995428628448656617253433676296627821313138679323049648886946105196112290054202607215800399559611895962599612911649741523322255304529013644412749985448779921183839329909307296174726125527912149875974838751109007890279152378665313130625221401544209196994297082348463412921627993510540716326617831732427527475511128825408354424720617930932774160809553659607759660568625332848463138241701095225229440742042751203559127653563706642702718638657038036387599325280218075878821398619152587265532696219394186525889960411362197360044883435304056809345717102405328527378958139744609203676995757809767262050888668782273369017849816085468883717699980729469190829903156221274113977551676526219256493358417781732554958042283641420795320566950138350812555996317355928572711510928820116700621955615733848876480805894296665811609788839352002755098587748518779850922038388045230462049752480990727019727276330329038469293531097956029159296315132661313231774664832952543894080561182169256992209455004593528042673141863864525082080987247776442732515027302337374858660886133487392836366866850302636272615364341103925952577481865616235907909530168852094310658344211485656878028103029970593063184381205980836661390582632388251350150439994440282214526555400526058343043466694781280072888333111144969774583713397374833472979900254900575661045823444480825419074992186439354436140314418035141894522711101068080689057007304644072884692695099204235979822684198079165383691782817112613724495557924094339590411426313286525582395899880612263625386011345201697282209128026278826988705212611227889401880189324376636057662954316319639524347329457738185429173300054260935063092238892926905057650367912506958835444573274213571257524221745533112482249320871803569921145904146147934288619496734607060681727056390270173969481593165566105894732809049997533438657456232073161947499238378484132705358777386047579532779449730644544523710299036940551741568710051179916173058686351232361751825352299803522900926485717502785929991653363808034046293367737054462125836286091091998524779232420020595431678391429522128840092259789655612474600792551694764709932481614808708633923705028350870029056314755093746282174335254294918516577927768900387041201785460944511647845100267901848593944238745599326957342314108027721553131288361689251382987308411107061724645703988331318586725638506337116542726168962417575923525261780742797782312731940850214121860800981541682213749593633111289710463773627397494936594058120622294822799191115177359036704223175087296750790829748297877910430892821403362464311796990528150380143136958422564704185595968011532727477008832273721361561988225154320296930324252619191834026546859260222230456742089711740042365186369969519966074811279232465472817723510382891486649095523237285812901410323886366110107944427318412286646082824472935603466274385535292864188555402781159307779450079497212146832711122942333069186574963347042442139904155735740462644350316130715406814644173050166224829881256537452611089756989941250582535245636328390929142637128127941053462346564437269422783866489460810507923834240658510747051922878491118076634557771641162455911647215836073677768458006293208338320151317505281463211445145327130126303734686290624272734976428957359579666467786337971470478209197058293289841929933255680539047226719988147385392182802597461812825594221269465978032973552267178188120982431042331519019540627622605352054337725243982424988773862616227330563075760560341687085720417349964567221915742274535988493441950842294259909311858462862326524345998229250085438989541524722214763824712764058752228242077267731089403017885699725745794014618617256998427269697076682990455040123028037950325756564312902958424145750319069488807516546653108309689587595801803884469015834387242755766783505732684291898448995484073178133809277313062527276826248036676906304258903453954483942578938221184156113900658112200196990371357966067313199852180803311148709954689736922006969987795401724133077140284626703284672680993855199094266060042283535381915578970741622304008047735858345375375173354668393829874050722360958551518648604997452547421576556196646564122726482193276264072847821135942928432448912126599660231293906271913855401613484530752351811256629944116470300631762266065389703413026936032083756015205774341576811528409425435000467250652878082162455291381963713732428398323659241560781449517399957181928026798540839051794291780865674083814704675597345795165860770265593063855483131333987480820225339180247136800896033274585313126826704757564147004402040969254630056602290221090908198944003365975946391710642324130568664866357375409729865529680367488399185497215707795100987338251822791021878779158967270877295517500870122211511770686497921258555404690077207854887562887526126101799574073007633573270591064515213053406228311005813718248115030908906502770000673244839323332052643080923958938935384484291159016446416301202342141057096548396400760459291321897719456207310055695429815536120159614554080798916339799129016626890979010441038152711463095748890989196420008540920488778218082677241376541270644842374267261770171243846707861932926463327335026770851033195319290392548963871499614547308942030844031299219947134300389688764836797638416204236652414135162314358881882567622278086118473315889261616654859296070844238115743576338295799732086673415234256037191909246679484234900855735123227043239185297575923083913103364191635420963258795820596898124335424554632630642469792039340000962795950903625449586327147042102759641376960059373573090309777454601452394574845039038498604669080045084261682358119231352173470271400028478756497036923992770534453442289313510253483177321925693891085830591710224461643968837047594179129005727305698013072719541036471157891395276451030799251369098960894143050396712380320262765989380428982880416605800453197257722798550023932181010945749911911361189230157167702628001234704076164185416463077810485293292169615540223245323017873291429780353604731911367207732589847669002449428936578589687095129964588690543644251428180098254563509678909845989025186820352407449711738217341348031726525826013212612602631798738723995067739352401428826537709922162179862080589657977806869415864802000613080793324778262697333995779444780623224969565378277399405510700656279739238047837066330508958040106108150475026950503857780680135142173002779951418830894030679037720905782644662987343889214116450005702378409107599902390019308643777061903708388534655488289099437699793999471008511341008764549177495609565109549801163092460693995099612508053870819187815454217782955124479976644115707770194341195972661270417627850957918993875522115352865174885939418025085048644353213304442354403985767735021307980036256662228642973912491151015341418819743793213064435999733824115269845777286190367532104955599680692733244367721751548676205996553677095047842715398718505217827866512332613959382312929998800669583090420915535258043195413276471102962083227803760057790248569825740221456740938203173347593059659164160128141619954573996314436224453969131180163227430564213052431578592943671299544291208265603353887268680550030127050318086856798641126090089831393112632718041045421634214430776735176202041843333615970585501134202835848316015414997816903768620616607142474777658196806163435582826990332927093518819176068984756898482874781991100880528175462796597587216967940291586333191560139659215395556530333468172156970410681506620790158323148884234093019446182198137253722011873814940872714111205178101649620977857938147087911769369321094898793230166838807806939241653916805104485212438088489426114079977003741865592846103087336176530507129134792603663351264804585947047823054083801708236841287778014007528019699936888444350598263555936817935335469452353566510943743529913564146705090015630925951231334026148995784258562497014552124521654427581381602135744892068935821269599160992327455715338106974165475853461257274191435736174018826978372041958738642441049670409177236712362057355086269347024660460712065477283167330007249305610315570393464355651515921102541407664808428500812004372827039079003586474643559416861838403492935916181181752725174819411371008569709537991799944517045956388253197805108868469018967163504688603587072581567836546373575481630517277713943835318505827206466614941948464599642068087941686664866854190330597203953756067295721813411213226339609047549716604638447453414857681339522169708574315765736533931848399084606361259568983668000358429260151769152987160840831395900574367639794112792414774555423749085339494886431244193397504916556258601830982437558723145509253324140916857688227599435810821570400439695772552812782306365911951398876775586859151235705729519154267570687468102614237481747249439405169876499486079460621755229094476621171554797803022561698765394943337663127660074135752721469201938161821873909646995008846483461832959270491992791671638578170145411774447975722010459573496170971507843245244110871183633272074875903138208449155005979114269726706544527868858115548421069204709462575708338293660363473000280951684991869670893919401832350610525334176132833584249008461813907691662298446394907207035537070099908614383880802599005488925199349090269672558907150383896532083093062041470779553112649548669310204741465341910385287581127650594049127698666861681110046639522127851286795655437690337868470142008797022933839504003968873947820644924138636698989579416811475967224073939475870889783177509508738351236339548824001526808384760070008600917539068181832559101534381885627080466020749174050158324612068918860651488486419988688153503405941129525523695848704641199825949745203182474872802810466803700534025698914955369189614506237772141251907016973527044797436864788694227291574038345747883391917611763619615291336099156882890083712698160660874424915638639497176375465718554631516064190620766747513166711582085742429929990577758640408814505166148072948114595879038059631012748789546345022973833708993837635395142516972505620449296971890761824054102938555217600521942003530847012460017595571594573357794171947162084420495700233952949879428893524897401227072295066327660393672244649277098718057988856963722426044556419620654433627718436626109953573810706364958904856557127983878150396095144784043638716542064529164095901466116494149566443743911920240768596068202969769094873273545991728080571535868502584134832625658683856088503883226228253746613105324012750231297441159850517351957839485577820068330759472468265598604831969505167153564823896462581822932535661577989350669202943539293577177846933145067156752923960686662888502868791088849056834917960648310711858169562903738554662335439749770864803738888380363021984311866647494882053910093553119315274043355767376135710494849798911149393651541140903253935187989961672605316555432349028559905106222253269268173541166551460367015296172023356175571115645483742156631587579267205555143674166055177417359427192433402157133780311432242438701995290329671101436774163220592219727762328651366803175209278049144853153289658353024409500088583895114456383579595450075144937923772902435202560745476815622082554208017974152813150822463856417510125758782891466158162748325413866510527529920568429813313396827649594840815989562077594412125813124785873947346633870567882773200319838572707642415845953550372283455970407672441637548894892782627523678934907620549704351450086954653804622217973741498971849150769151788797194532479164695878703283333600915159362689775205338715366846698380953915169502245282151101316094090402245054567898505780209627011549809987064881058705689615855060231379454847249258574550595948624837877301242836309561162075174565116212035575444451916607686450588776766697530169643878935799644098353767925820296835855606161793852815676337037760994289710866370846778678147882294762188198392356003533981404174946005028706989008950267703310138003136504446217656637068829109998431471359887170525261670035764909696795537402002430826300001832804973689827220463999198592562609581989397277158604040429453523874668489393317132337356176809498425068181690324068355766384316078789428199588886221358420433099912566006006092340305847890412004598036355889583136087140218190477456075357641186271527993248519966756418589446892793331963953862297329391005877874726031685393373443174987745341719193645770991056345812574715554603556349655058821422155618728514868477543463633615732866959774649415453801895179035512185633768885716765889954392927109242269073195976254024272245609900736520550904284766915720079949057595416920514483539468622047025741980283740044989847051670545091872866319144041767220875844062303316385706600814703580351020555383391911696084985565416567742168290039648772329367260336064715271019058017901474577798357262457016802384291586861915184768100521734804841661853312513809882697134315935520408856627036908761890335949100761133595045495360141470532680664319600773333542931861939190760450981503799487466277179565572773736751246272861225116348363389446431549734382650376875311314752464321999687672062556903257652444247277173500497036284912467188069229223333082788249837759783580654366342605099840958848440526675600342227928552115266244804708963435349662897761904425611883664287776537776464250905424003955162695972255051304425111958738987565485641398778329811223054688376792898199724436819328953222745911008554490065603618755892344721547833857705337175851902337440066912727653180211128926317181889638564633168882525644369466501118648278995343773358843661606930082186764673093947499125482368503296291119533701979375690745185006913567572863913337903633795222846177640372689835047384332098673842530397453898250977342035829189241734278047501969710034251586755144927193486853111838590266535233856898219769345011294300395970417587429694383478094523644675804652649815989250132899962361127838184256953116319995710978020202260535887803523033609282548777295448379777829121211991620315009543863328251877620043736377211341962305013885728911343044912265681861581676930630496852335714061666488875564789758920433166086063909052582634596295398814793829774812073820181907678701022157939118092951470213424025248823556219673481649773894289969108943228898403830459194899623928617698916870900262287856763040201340781376098191393372180851335807053965837420429116003092518966837042519350807944616897567266112030029351855672461708992735913926930612375764343488901577931761338854766613637590971008576879486508567972884538368248920488818776843565554761227554388650186331152046582146192303568037796308124336469513380212587850800651193658275804032998553515070263253000764145235588116839851340346079397212546146500257068981411115423851495589255132931335293625352319066700251600800990094495334308691764431490004486797641001213924232667057167011358431703642893481027659998437771914759936895645961253274208160790662843456689646852054704125027300935496906797631652723567736009429245844481051449059175456129852079762347505764845833207313158011401333252285819141773362544208460685582981978423427945766486146824097053497453357082816374957967166235046396007633577885701031453635698320592031459486269948330242880990200758505529387162055160310063130825913791806746591647985063331202275587322270632813525746101696702005630487026851241649398651508263762560944588531278226742014514524207361347734596518048435214910706010028558373667462632161208735569015664575160224212205333551151234079614241062079351260097892265772337474510567274964255667181344769687988569796795848740624667676185730432886476705247758133404374785264674520106489976485023963542630844738278263469285739846755310863858353072056244035440267485608270446812234717338265217022716838216663428153492127017105482168162667433777787321064099643664339595381742666241669621454850008141567938040233979933925038677641677934504942382868973419427844699560101082925071067883563617211528844796023279763406742070386592518265149576189644531402702802281334067125536687739016464144142291087401253781908620798186369365449325929315336996925040710623069783491735960654606080445117307841692880373737886969983906821049688558692583580554432463434927947569088537867888736523952335263738192980877344510933378222276216043532443568344357353777938116077224371514960482127751383333714687608428599004680386685141012795921850155124904641589976218869917599065992935636950613389345108029824577957757828117540744385257761145272458744068264689543777777779037207197049427635563046346880846330141054327487145718898233696324567101161480805438945076891382117663588987656484181423055365465361419784432815520236649974627953223127760828111213110434725236387448018452248202168777828042778366051105187477072168303544821925179399439712968363865904658371676860117655120668559508763716889824937974237621841566320818236381628219329198242089345114957614727057980493927922334954249208864562946206643829284923354896611292763748501178071263970239023010289805808258130006953023378702075648917173713987770053034009336666143822169794654589196031447927768062693962439639204728892372492356640935091876306047476836471469360414918769512725739858770395028596832545663393330640228819634543786953585352312130823558089802210170031831294181395710463118972367937667486089597429368091741722926102933223177555103671082384401474869381641431281364915504940440216517896965618012407017085169714832204062299741051545260913713612067096549452308083084310478299291642669203465100348101434489368636296521216198896739700519668151902514397667154750651414913780090539980845662593310886775422115838202377195019822349658358322312468798336050257592394558649078605615938644667562093076922358192639689864337050910638433131263585521405153129431842181120661229384398573533913262557928570354461047167052723655569829272455986269381684690835682783865322139875777668417236933012983708720952712587773380567212215854805620047144070351836928471053043770933475416981620521721254752425536021120544354522546763972383651390075521750624452465940404036465154112098509019658124053770306779829701265157761563559156715256771628513850515728846465401255049743649060466599089920684175665908435138119796226780224364577646648106832686655287593167118584488377489209308061070771024887176594890225509254296377686255208331978435301070096575768252997265827339351714071438641643996433489377493511434160043188822215441513289913417477087469343988824856721342243796257936749765064205393896181981150241243209994896344695687569219630024770010506969861234387205037262873759934357136571080637908427849658646907710537057514313926451806716986108409921547441249791633585236839039552863658177515623007102005839768653574752824018111380383166159756213085209605942511353179624804677962809340643493605353604729742548731850697563175597718264404208576786514317638013935305598612957688689244643697133982471560332366554044070139850258121922124298973049214249490239245986296938173763912498982560418184951712456417295452800129165051202824930723545407306543652432100446616302942310078877611094781631542203026780815777167806540867678101210187007608016154063120387209258485001797558991074981549323232424731959441883096962292190483794397298000423137704348411744105636235075467949610295365756383518020406751003156471860789260834369514158013592561512216085290715782220976142511719682597592665067868987684973182504738992391040914135045653564569892054994781458173782074045664034773365618523521283855328055929970373469903067733723288847567578247532729998695345187040956015995856705354068062733373736230200792520023571285494730717386735721342500706480627600114025441537283122895766888190543516286740904937295554208225068434267407267044677522691590241430851570737659210090292201445101992488653259668381594328514908820669815387349976989743447786312600304989253074948452404395065702812797885328894508179677366515595850689830730808674117572060123512258218534697011878935195952494340971125522071451842062283482644550637628510635221029803363910693264595178169028578745860476279595808478081538948501233210982050490523425854069808659329552679252214291503916778414960661353810264885141216313305679892646041501253681437578479908360154788067201971740491354847599526205520523615124526041554726936177377865654443410268977193376873446593425771934147488601820830458480723277876435387387202216231812344177908395229410664469443093914665663303097430155199901458064464943680903508609894924168585455801531774134309579244166382887632441660386645894722987604957425255262476563861007451771684135203926555928107166698043225307798413089098255406867180030183942723870073484876990334182209476796258156679897337467010822305284433693214587097461772776706376512980853259780034088862694909755709066988411038463169507530421499452573740716825486657288580178716195752642963597979489750164601829478764618075854984837521234735193543184691922524208435660827169117951699408561457016818614509415061350673737837808737533323708707759082911870747404105699287061044977152563043321934657953384464174923996272795112550090917475190086210798523543691384722918722140676964410376588811497052383875132096527724724340301552633529250999127462829756227327369365547030913115309327736595711196041100337482104926023578049372586307585628653210258090438473211466671622725101096287265556094144075889344353899654711806576898605316337849039363728054093690841350238210759271628038134111379051580509592494902541847293573261488931311882045902716409915276831801668364078676986530977299023164375625927721251850046938094368708816143829940707943393248316775417889946244860911459034025509739210667998638994189389166627692436898333988152470786792807681443624775904305298118997924967603202016560515482059421806819671059354046340494959867571482748404179637228843941893118960021853606254976319373162940744538167207890046706307968001184858273002325142825138565373258850082112028672677073566213311209403403409083814724282370065392375978846160731167074529215412335674147640187101102414271945199749735934942960256952454620681944409927359061007497890313448098158613938110407508336547476071898506088328959141601631771388144361251536475128201613425761983976099638947916331391567125016593694406506021384883648343568792495628231000496019793957030406561024946858162581555428599441108845141653885537482061912469115894179952564405966905522393689793581271078696157829566216364151679250331846181616178128256681457561671211221019481859196366112540310199109366171548715087243977616515013823612756854331200628715796745993847511954439138798368200368742349843699996124712512125857921334010326807423547083762504355671720173015271060967485779598379534613537006571399886802495696452739225558537934521915867829708071230458511451314470399231057592369970644731875595730208220596836429590234061106769643685630559596275645025029663472679333993481044173901007007701926105351422024854657077695938432049185561407805803825305396137413142077843182880045174047075101043967851405543711357598556559712163511721964068178912847106981396454618981755834245097261382386089746953586160422107695301976794820075264560178524396666931801808930822605808360609530390674236512813701068769624392550497243446172270884263104994139166307114877188564186360401459485403470467975282806300023245837708725657667295163663598725306590900579848684313765761475532283933132007469601632286611871875528585235109355103554467835192600692039329188258544212683206318065537714696140607792625028752711354630288985259318566899552762563258462332902242235550510901237363188491970801281513617922489492444989657291586639284889071304134665499455685520021536196279716385024415326696403175304403575241750631191309315470918307683623511547456551701083439839091325660078305627485401868025189326337853073658555008747940990070102398836124972528008672928680145458060319034023413745088169803050264700647099406463112953796212601595728862481765601799188784558977182525064135783244079209592879143190641155440302160776092734445045984395855584765497001316096345510650503908650614145637688076973755818589058011214586462416558189817487940511974721919921954588031470399701130753849924669299874944213476778817934040167770419775261929986416866228596296572989806490566705252859212199174153760529030865780939166258705762878845013035304367349869353037215664428276907032060307247598268749981495589939857469665292463310206312027219852823478069194695923304719289805732833518199155455961323740600992175940905265918525444613903856980018164626207950851524678990222130516555737189136311658530070520726673299461587950429663484875525066105828429143798033023380855183495562506179994040531307543160401436351125958646452429300246277686857865662838553536123053289580716872280382259608090671638994077894367930365254847973199867453506211193310267296646077405805498504224751982832682204586244374611690620270846585620633311538742220101952292004599289798854867430364781513849180476065767090619980000287396501747842396804672793607685284958585923754143812331163396376528760357739684777559139141782183848848834172287722790134549367845897126635792813710925519204868327922556071973001638777306729367684428981715517450619886499901305683509652177661722888029964767947932284841658316198357226148082600762760102302334986057622808653976272343058338872618018360914526500086466101650213978663059646260992124059071453483413767621767777927100474436826719912529337728568271992151279582932575898659640317768148079408135140633890399028701070042804248099709349977320165464762052940302617747989403691358893705694622645979949917782392713897651151062484237341245327729252264892426921395177451945274196101024440781484584722929587784563904144684269506886530446638452644986461904814057213894475526497516344845833630406019122182175935016567130831990213346307919567825429010059526986853855641546753161856259716599095068639122931415371572049070375637089142470608159512135096867975712384472262142585778529686165714230623243248659599425625969616663814605683658350359640678651877559689413598238408164721848812309440518250811318556140115543879271499137809056295252582828554334601338989890924288103582563023886160112598502596683818204721049500734452070604464509249808526477138957512541067998167417567208722134234792557338028179045555017949957045229713834968441550678052166714117116931424267578209600941545814806882786428254113044371896510505305348160247800061269657381140256141956938163316224282218849277063079138471118995230036489295417939513733773682760139558344035884498822082759769242121306362672845056471725063452606498269399677926704534781247095283427869621769422372910410820152551769887178634005324570230447043320299606839728586276594674635060411446258725300309618094357341070774246773668920419099050844684643036826588408009758359172492533552895027284985029304480650634720741771870474308855512375547595475178440224676620713489641743829495042159596499958828507347091975156402675859938710802508942484728309925543546259494499243946098756860075495533256506118449252991371875591276464215121529967749309693775538287482462741773666549908124852205855649847525059569468497302714094791782140626616671578272821051295564687739692058872214439921611321443410370026784619484751344072125831464836358350244191144662217959684005317464636794398052509504095551323968628677074357181420960333331082221280369474947193499196203677570322549767218060589390962856451416739805668298906380815163699256810476069932338783852478351382006697637011707056272830668590686118037906443910169000408192720991334238510679193939493388070526658776135992497536663960912753989771139058674728632034505381863768218547670799599286697149941962062190056888997679665399456166879043016089886097159554922806852036904120082140028397166567140359353427326260254335344532940023463017544443691678764368092487547484949112268247611242358608592198392948304283794043549868453173418761561301498931097044221927722199014745955302014671359552059418560434915088098353120338532445704019233833274744862098246251716353180253880316829651214603573327805249592770209014218410937907327069431152055284685473476309106790568725712402430577385771746305871875742058395121472727921816705313887156692215307328748687186655470925321985414629686753751046390285936607599746822798371488740254594636522708223048425795366921666649041711575983996398290952893083259538405875226165166779837884796314363370094866322685556039203396058225096712350093965520355191230893815929099409528569648436670354304479753870732579854122058654344579879574004416096933655048918592585090248978621626618140848660030332845270215611472579916764741206184496896848592669696245886214384808624634064510908771881608761452204688808217390269649759325551926630837020574977068363871097380970568677046290863181086177135858563086999749395353743178153410068846533484894486026641731521810231248454775872577083764094791245114157517202397842915500435900616090641273934314384188358880691291903485342272170798262962490581960812977966255587763256792891424575014700457958841302857665377915277170492965850224451153966322921070220131418519206484827518014176022331178458999894023526923140473078301346886444483857115460035659536706731482916228816152059816300497804842102991595390885586492382216045065225809510446376590613600894658724413386319565202763302545566228553268238074109296238495971928046100645554629645392401018690032381309434174716175942725514017245295403762490612010084835545356301300194723456137925842293557705222885003636615987585578362876227618055382606857017063820065801230239172344457569414639905939933955006752867188730487644130768519224743796438467077066161532756998598482416938874157054424936216242775389269296576712257192428141964068558736889467677571497238578818344745815692884035596553630855672224143729847857528140024056321074162636844724045122340901233996816531411936716639601684470502013919120396149826736389509704813345646402910555343701311962029511798068470092157385761976798945627947055135760376989075457263265848074055560340300157350323754588543089478688618513013672500520075407758736287559541727139305371926513280263176811586851707830688524221493547559370605285148346763469899889560561882204776202941859953261670393652259156214960189670495870500215716865790182280330653743838034450223063181990731263734111424930217993232688176406121909457732183062147313484734498109590761176430652382372365355761604376772327466772443603109373065148444632678901354965614319104525567170256152072878246448084623638372553799705785332653350730708537587202317924039923858514442167528678938541510090618627346023037448150387979356987649619243698424724332116343360409665423446087959075926135329617359604528034575243918743566288561513094142047704559589130637218624257910763845776773717373712885694694997238944938902223937733196293082818060253466827492825547752654548827809027266510845797687301967705081195817701733371336608747250623638975504343592069367436508999975184545555056939778812073273747363625836766040298008716209266483382114999480698159542522318631605237601101661655688035964140449452273368715316552959807302908711456485762690115511579710159198021853561833799725451481442425057177019214557751953413025003080447025134032979531142001596297138253489881249858116848050695020678975417750621260618539745647794163502869324828331767215551113576861955411851496866392409497255949285891031991673131224814886132392162355785149282009588442016877704414624742139510286158139407271300929215315319426184521768241859168307438837571891703768118593269750718873410236626812511782428221425616582999750789887275816097172754976553497664752073645675646126982087959392808815329833358491301717363491295825024169993801953476825539859053362787363943699443428172350836245288896970112242116928126890699495626895704965179992282268424726238433465526178628498381248574514819694896857299085033534441662280445924361445197642112744451504135574546463097382166907553211709042904672157675029220952624251121193365706452911348561708396506878619601789713364677705319395532126803262628454637265607496656684262660205127135402000841566322291556325667225631942726875660619378018887956100602631958972533150418617740691363618594737158501751984768401779745234635125107862071000646529676182355202369606775055390796604907366375091785865848885157010684877125256318436141274322918763005958304112291646510934453560967266231517286613343921959423860784754169995088557276302227781080859135695889409758509692660273092151196906382370092985238327367182375093721617868439551943607831859361582571646626002278626034027315446797457278771297676730668372446913632422478973081041073723984460494141290757897395266304100040359863833376366194586711318661781743731356430572884030499145690313850209913392207061145379733201049550326083443558902889356937916133635092680121379090223912335966508250817638040221994954689383607356430090827465833430849710712260113791285055240797779940513409133108509817802807290701645372428252770432910315367384564131158989135708964828482836019109346107943651956821298589841486619681253461921397883403537307826780447120278993754553872509572527581431443203429114414966627990285448322613464456273969592622657969007412508660712019086061353985052219661949225752231384933678203292231989499408812751074702639313160806779099357199565586400642131104106911081739888151207706859007813329021487749827480334069098222837804877230574526537488554896597313939695681494078462207144705965832962948447868686662939749542464047070564802739738407341795124355040569914221547488984799792110521138171170921946158887483287396266941757342098893649263249974967452969314582865416350899899088093639798887350070707648229749243231327345546417915624562081128144372714389199149734358718552240597654768955903905694646639142276023476410723403187681739546082498418764137871695539763078296450034528924228881342134951233940771240201477294389108125377525517236631200399354012242163362000339728188976737399917183800068788580867209836145934549982332527733276895864981601670856339169991727308406554823717931630171528829537769882487598719491601991669223877583001461118752273448008435896644747790637349757570319854583862702541952096358500510484623990624986199298006850303307663914314842568410165263935957346401456333476592905945290653966340896544774347864160859414604830614958614271459062851989236132042941513360899079486883234852962616828330103025716716949057076967670545844183708866665901120263430360095204391933942507055798089509412888145156996481950594860716970251900456416698343112112698943558797400433005456137967999714775719408101822317091530243241439035537109124991402522036019501774837714558396279473666195323790157113277576747041639312419658974242660527320920836460187333616467783570618341452558261065184753274108373181389144085097189011472457735830850955462569600295295176579533690296961108959362535004118231530919858274773692425832557841380738590679056892213770182654077765966473193133051955661797994818115952551876145599623346427704587025330878394674022552657405913076828935655637347950706998198417956340752358330747749151272414874381278077609185486381491461258600649008730259810146921228559804526697764585317679687490928527913013616336594310093032150780567057455874117508094652943980598160610785056387900576797296445939441664938152022866800103591616268013527289513372232203723859585407224898183145437213459728771319836272841443486996566261369537953573467843675864974039954719593577869614750786619247617333712034323113614803756392195242642556415767100148333784261558172982241033094839764602746585292092496818591215382177180036658481097634664985280526910615064324454225282700042500908834836685233633650244817981969674883595343795471639083000528828530453194623743925895524169093803170607497223390868273977939568474683715876780432034560168763338861576428684253619270832239043933391461101631514773877307732866279388822585170435634141625152598565172587595517888960605113612890378876778689298121527224901786342260585210117005922128820631710023586811028278818868444411364979779139198257689814869944872213436227590562110980377687351488027753995242358404131201043587501180968901745799582100587027655912073849997234872828634988345341823190096397091320730542359236380113453463935677510256162039482331687312305433542399878832930385746487500035174124050498389795945549346137135802280170214744146312704082585781312845331291793724421423302631625004030338234214455995717613319421402629587315528097163620652403633719251834168780901550125606573598554195583556810729669734908218459483503150084496508133471818497235447966673319272703462881211285773335539369773670529846970979124315795529937723617811243302957265271624368116061269149076830671215173201729581068163202468364472744002746197388616403127438642432067883421616092479527320751593723833506184169836787824395309469697911415906839018246322848435531497048175490120862767704723484571423555377924101633323439622803751681207776018210236427698469016427121960178516348803604985339865143326343451253531561731834111350258491126717283287174935011644706970699911095266585225330069840189260186971308763035849688487014487718832854718902279892276190354628494227868750610385430019998663303007000939348292350090808139002850679691092881241232743454250214263895590035385786663649687334498865293514947261764660851485887744878323164869035129800519953461309950171394180388019545824201893014841386340423053103152588823413118853722025376837472712396014488372415431947011504924977456014644270987748084304632170151227338094695951828808872476259576751201258172176555263637274536417535856335729731512943640624595081023557383236082370788953359374973924306334381462088473254444204937007571035007794267540366016475914166404498307968921951848022532333895083762589514700310762680059318311164112248125171825389269646093429470507431525906102157299611085489302428946968411171673257481780799019520009207418685168129356451784247183374492810846301932000504034274599101197242210546183959217521350493072966950387945929993138595007854107323703436062914376952810694038264609065982789120868505422551490699937090122888595358188531975576961375726636594768227268071005133826580475542377114845767365671151967326775077897563924357578172912755436827571941154179617204450168431694399845491852762258740646766042952875395037054440405918930203074245501221242872831463199946624606705316713473829323367761710088414856136964464309775907202691338671602388597637888475903883552064170897346347787639416047781793639315551641937345848672473391921452912848914490705297297533587841778009474157117475064767635220682546344611761600499328576660190201745714153718833436634221324063684247275934960291459122531394756362518813644529494113678345871521556940154735032702195244157762423651128907438386951285731594320847520626710799398836243379842977255767469101909195949762122045352924925909815316961905080716784754276195983195930942602559821631680404060127086910834454885295256605445630542213191356725425182579250272263255884240101197645871756911739465169863806881863343498346081774023357340960228510079726286759741120508532515553424611041299379106049520125116581914172995254071703207538853743809512814066081244930962716377650463750152441870920078183886753787867554087139385717612616137476272424767847382093687350244457884085224499204677572204594679477392208468419075385700718679486731081191643611255991593553863179786120078821369978902030009962370673771046205493927457824610880323636255308466024325260125873708654763688897469025669594094348925274527422240878447851201237556387523344484723049871783106113534054187005874588302325646567582802648748177533381882874374587440713453912370513369699759398891572104280766001041907501668648862246587526197306875562470898452863251059886038140710042003797612269219489188552887349862524841904407556326975113327111731742583934832946465965029618121856981807006942582387356788900295378977982335630066857561506166984694859217272660360895727543522551675115832695504354912020362124057053975526381637469598945888025922218741082586061267985100308542085710057033476650409351496749113395016094577171670331185190276673196533554704618120665075846450838649079213882704099300233485803006922884454680346730473582968615405727327149627009666440445073876591415105069322988985042441616477319568549631940437163262987340126687478280327620532575088281107389397445297373831489451268449611857978260740460088256474572299821786534113497095537667281017236243465783720385188073292794951301768417495199302852810649937669606071044069725820268729214374386710877301136143922259783363453670199878004300124798383366029900348680672850829287871077099831869875587133495356302216275847403631494023187388989760935667526827111090954513428300705115434859810288374555131075142925259818746081802189056049944148709705615803060851739753418397073296866509967982421573575645438038935495508192357788394188594208090062495022201796917542568122739575373149361443267605276512767825363580751494186814794998522012822557875453456138735418392266983219830732998298097179437373399037871852185109648231913962521338451659771271315613660146740905595432458337925693424055205197697344160330110474825223525644138268111294697000655348151138911942008694727728956677103953843900583860458568143110957902655087073573911688277001307575374583945685998627708263062703510567641455858258419260500177257721947629043133443050905686432167374413550963293230764489611215270343157069834548219889989882251872459191556586571675242211784116732227058708687962494580371114317357585172791193571680955384616676692709931576396520854837253911215211410893756218424755909622844766234797123717893364957348100357656584570453946394680463816260244909680740054814252608998417178848361678249797833065576019933801705438751105937574850710126752300112580034956048446252317663931895420051121874025075843773128705363727961716728016738262992690306641258215196524059133850613061888230447413463417054739264311070584144906031693009742577045524696917297342842189538820538670750363020841408020395478134124442816969559068107933952511103971366671405826452598288170689727669355939340320950019507308636227192498080117688251773444022610217138049563540782393757093688351425215553479434975969867451953622453876289197465781948668939055559423367548824796122029952738980020359383356296212786051799354301300119414291664108814031826088019292326163329370066521971534777492663137135070010674633895942994063711605033074111398638969920556260577757438371722995334947343977506658302196847952992637523348932592372243880087239067082031150613635894342748635899802560302816606831672915501800115914192421660953292795847625031683930006831167672187946693147189109556121009946625398752385252961813710485944948273924826080039911340352568384075005607496696347659591483288375112405816680383599162614950141795351083762791361519355261395707740690285806726661787739944328067783753109684313662214638928072933648764562034003196890206466072082355535279752866725218609636332788339285748039629900829988104479036144043089227004037421570193786949859494297565694610580819166246066238223974027415641052569548994374394002787611741332133556401966082119821708428100473972218638799509433793134619798068993666689645466345706260998428268487851862946664210547384671959249334622152249028620515356789803920177639377158135436929449587673248729122994317082338630212233541417381508481848059008666281382117188209295566291705366999992130125436545956421957775235183473158960017580318011009418250419659410298459629185934607509499855125065084005476216218017111092649300492281534098580192393712234418931143851281058650191749313667636490517749725571830260854302275885097659428927892734921724684496329001603100186838965338243200120908000408061632828158878677211040162110454929551797665473670028969242290173559628252094841149012845546224697133094580550657618773407008269911630427869301266526897486616805634377469241311998575382327401953914330851798056639139617976587614458709955909317928147238665420492180667854614213961309104461243449713759559596123426887102266869027752644690949554712429048929118914587231605161382093656016563393265833367679728258584138910199708484464156434946570422775281626024999688066421870136726836020099208274802443186110304833995972012032487753549108964510610698159401444724419545909524994088890012913606596505436840498138224912334486190468799126864607866260093201026284050234006265531294409579111817820588482176177069240655653978653747487600791905859356823106021799819872649559582790385996644458461836892482649479370301658725565741149718737471333950707862678348249275386707032025942969903289109804721968979708419974355948850793672463811265683386241987044923753370455531510033562494014423552684587734426695260446107398452886310670554379812267987172938835327626831298268786883226307139718200847814928754555435644237648561013237113534097996885814279265300162245587467900195088921039296993319613644483288249616984471295170035991617080429613327062146937191269339079828805992273009455313147914976244566268278584013358737905957251797699703024086202324722482839481571756565332595375872587267333851878429699324409533306012690030049782592759132925755240616304753087432418730306412367219574450715827087952544723130516401024950622064940933349547660437145042756253780747699059710206158471201480646222386434179325779855900771108799566875789221111205395408400971742655662341140717234291666811897744632660796159787029551694289129515074090357534579665280313367783918989191094901337241438030229115949660222440669134180493520491744143935061134092096051409965557081957013554944781526045886636324396768537038987681115414771028179951098942234866419754785182653345372975505376724077396490385997671779261094306760610243248827603824183487342973384179356435203329743153749347029596226648059319941607183893622211858536500556379145756605796409416945309378917246648593111372283168813067287717363304820962767322027449523192837853969993444574088736489488296227312118160214266567794256960045722078938951233410265076909933985168753534056635883620471628485702835991141736631834148864067068886788967760282646940465470693706596678553663477975347888853501653117259212927670844671034452322479532596785678953587095620427936525441133026910929434993495965253400792617091754876826826620048814421769799333017896209452753085066995695343293900105532067429883334071063623773640542375747371168758462483723539300507345521283056955101204317942504369061716933754369987918538974714178988898489343658937398759960491560815162929277615943880902972546075775518201862153242765689623805677854900257390488161288369372059581539263531556718689015278996891555524266599696042965743350387752596607738798702334849676228783930093649459784258232020093071979171555268935936940667525638721723183426044980578380392817376126902376403701075669588201317161204846811132911981498652957256295920597652310732629824701995498911044823607517037595129297160274594097117262277226388064707137173655887270686954188867690102291701006666809772011805219286940518808346828861069249237283032840745485715533389317584789583501486679055525918730430963754628942572728864048742035305057610662017280855293665513179499602585960484102405111689987139583667415237290649293788750742416863956106349047502779163435412814837140188269929707897481167976743762106546135417746511523692852080113405635923913144401242884819498230310981524978663591372868637840277903914024260979504502297981544786066498614006667327181040022916230467541338277684831474498321441990513110525856892602410573221748363651778239567365392683173839415223221988387733250048316211564722640793063580703881663522916254329023184346520511211971145509136146133484786457343751270142063923094623994368537528127132930910012414768234145033331732150500004916030186847190896934198619775022133852959094543648134969464832107387866378973570935042615277341577558986326711962836665488076067384875628707557748778044566482335135202845207314530932681380088408355333205700993187027467526396696791602574040975236142934609874979780663913708424277385701936304334859194536928895636459819041267438894134884913375559509592772222931555330448294068974254049738765292287240480403218106714006750207514870865690455254016884896243642808452720386215730527223385281997727811113055182327474898275451760017699331100205795957170105073850694992848170350325232965626300824544085750473223155623694375033020325193655618448303822103417265235384434661517919601182960402023815840600432046406900784403562009622545847087341980694893275996445938504339863643473737541465249134639997505976859543195708402746517785671572617943745936416225928534727675164557446027143387668843439840129190221708753266496809755050326892152898149625488963646957332046111587227792024888035243348463479467737921807339599449561461208370782985386570697690459919429474007666675339182402248655285076155508035789111072780016779622338811789478821450821430592972181349946398044041710387303773869992100736078026168899508955754364719460013789690820995645370065675218938812860876655018724698993232554679261864302421402464225356087111880328357934940910817363102899197646736918113887177153645378838995291157308220415277135322622233808001643009781228879326051077310701919438809716827463290177625080195833448551341230028422263651512222863304560747584844876109477371742853581357603560310126000117651685834902268775179114508752830936723401936764126826848667243807865876353349329991990329844861017754049587531814272081471440752862627015828396466784442435640035400073178816316296533773615725957042576551913474483472918752439931490383359309344933728771868845635523584213340058420875492099419485050817690393692283801744629955383111183418180579631093892591630568747784601674398129841054601546980115809948087093181642355891424505623624336821167667013175024263510891808122475866996775199499092218411233980341191528463905435541650827662194907542618828978274853068101687142055385728474133247084446121686151471670048481465028498198973355008118353165065883755713290384712181517369243542818984343762416343515249826081545676756960150158803427957679284409297799806201923323322226389018077444258823249229536220128787788398107409917662054655253423486479387270047019386678484056361226731304610325687424450626506168635417526089936920390938609563006928574438266568579866279097686634189407104853631094694121679226806225555074643553994668300795352813743484762041994896466284517442028602824517893263560952655607152947790628072965396037018740025323276969188784368511530295374367090573706340441970897059033532339881413366442257687677512432979898339080208253320621056143064522437258290630318454939127264831952667486347400314515160110218391497642910074266593868857121588794271977665001334661013681922466473075498373578776839453073100280935528053428147105231437073809725892260707306369396683370210168929723240603036196689267239136983214893177838715086381930811193133070300525631153750782099676528694561193204492983436342303611695514769241084348417668558816766867909965124679329027362755510928624115462257200683656371508544163591802281387618542055064314993173720746645955469305620182907345575103785461727604689487544658546348494584227958785182667221666740998993354062507750323149121458665495151661306746257178958184565301423425070875835641391469614286650997968899305251114790919014069181411957838320680274232396904859984792970212965898019168734392669957819186901399863330897917049040933304147568772784244142924603939972510447505841298967230549156883075090946273556789541504931397679636701999738389742392906248201429671789586797525615328620385444394429091259314045291146541837070368772910173440856639098342983145560261321732249024085668044248746094726340788158167009569507220686294184861718628247678747034561664356113137032566150686470479741569327070108856440358408396057226369635093639964608130148480160424652684285873654981843910065858170707685297783359427396144883270361980273423453498704228497405423135412034346222354286692587791751750610990839061503717231113571874141447919733549757251377259720839967732046771733275401257012266442674760150719803609331218701204596679082089578548401135561148175439650301327453916899269915316214759263121932782651366098626928505866064501666711560628224235990481984598637550230969824748303766464523759131834972157348355574954341910126482034050179799626330183703117038699918716251951522701783246432759886895345975202306597427647484720852695065350592607170687899017727650636726126207597680164273335592571376086153206273763223508696921465992124038137790967196924925325824668745889205473520978922783703798266238688317575692077033853649850688110619197088707990842761383036996761835855840924635986655721206083382717587438111374481301791685284929829252509782378799902022864458403759231647503637547930144428197375466693985049033837988276712499314856783310334850333852441500368414876871299089353262255769504814019547217992126632507658954820908014444719806783877520884136402054460365823011047493467173591829399121558840549439103332503669213786802893032088076211432690330021331477173191401631517891337941692956283630204202564843729850731527617505767904004942083782633220447091858594780664366385884134414222354110083682286666041488284750297330694339460573119867365824043311153222130445178193130262262951167408222611836536812582680863883017468130155674692647964770286307401526432821204510248107617433670189315674730609246632531292587497168377264403968554464869126723835945606769276124635341727020276095895544478120219306234761028440377382903804043270353999038492746892225370691711495787327759072103296197947877492763021480447312205440843996120566735205077397827583222918067611206321614170439614897002350608867584187130220134303883639076647835569677313002902677769687039274533006005611580294064511344771646157329070203895458161794139863035394333262594319721844733195005154344793170433203640973974197093251511585480912907614608366685146568862836126831899784781223898372390834510179207759375742446899511168169009115775262076882997543527190810549789511085432568113119220887526773211541727833843542753916790469114172392270810667233855865871701016278420779034852475263796811635351045470342967114714777021311753285843251997735373801056594160191866574118520101808887595147639540231569555544018088231498349343804394093891343612112813356166122798822354141766690182762925244910990582768000313725133806961053344450058530972553875502284373475014408978160565783672630105080115101884374567491986740470110321483853310905145054698940044223778468642521615763329669258175516481358920453097667857988004204596935073498355846814463826901522419289102130506128860747843610728733410787532495671512453556038594882959536035527950164231104836219711981948795032177710468285398718159693167216679737440246789399371621756167755889678785968574207350698535031438754525446054712817840044839619921651464282356484028374223311927419663711873086052867351274560537550679504481855391072497456825736562663574428977054173813164958695571913121363985982571300342187748256851656573717963338936597813636183922586021673351251748023030034526529227509712639383618112052367797788538373759326873622126380426455638460219005459272163649335465334023703600351556410904924357274487949303349423853760304045997921046996017154813239683141393561839655306883225999682133637166897467071004403949722049088011426247023718132458052204947114299721519938935775621933179421576119498094247191105627917529759704494961456775235180389470744719933580130754150673813480308856396181045435682643944672557570383824738012493261103887701925085027245596683296954303528030292699732976976627266366388732677260871118399288377765329104634936214219618819647341211808759662126023359626568852454834350366070183994300904122299041102002726472156633922188645117900391442144217018525332157493513168333186685241526975647530968067470880380885210396776660591662075749593949770731959750542145345862978410739998699217804702789922441277576324509808856795171225531461488551389498349622723786133805420975176006513440189760670803955569719245816414759564275178305655345134070785986226115661804124066750694832637182757229496663945302223757220049223389504886729140742120112689062333991808854509442422930901166462692035912048037813775729387715335015569534169114315593904660466959235891772927426735044968778397047330179257340814401133053434611815960905405174692872526725352263099543970005318556076124727885790603022274579341095441101842183140410239238211653275845620452763316172605767254996874507787674807606557819569176311740811338954739335399160239626339738941162310095317051528517226107286212466575721424049235679087531608658428962441036782978060862999111367632303460167950375217808841875141831740316121519373862274287943642122224714347662138546831365893632312343078314126506644651776088839878336116298683139958380073204013221366676623702063973496918539547412365165895862716600650059022991462892649529895898928842368401804163772927817789796389424763514889561111688751505516245401868479175053131387586527536934594008712779422902373150169334408763636767432814956294725469395775483839955126641821842737560549747364679599564941828518206161825595528220078873603777278655057735769465718348291812133330476032229270066789470830621946981495272633702249313942021802053703827466263995386360154350770359755299255225613784588278706921556674449291281424392295051801245185618520394494665434112880498522815650831169901477578683985598161028691027900355393496233128769294937197943865592215927844768294164754796291851758377083981311636349001543431348721276154831102103292282717890128280880737855046501852200019886647456537161147931112873497103292739380798383203379746316571589549736968924434089308935197692786648673010558612534056336089412734037764929797313427313277467781282516759821065590713804322333821270362354736019164457180198297637567956175876764960306923211238998905372103401389859827721222926735030034276786344933327235870497671625910134655731846426010280910116924419142815481539666582994547738136726084771438428505547055268291414708126693196627647527973641738165378237803827636720089964453408446111037859430810044063843827951004802169462025621420331965211245530866937339561132077975043872264705468457730294824605394582304872033930261381997159618710457702745171941263245297811529225364930663956475540002385940857900815759837383063464315199297993528615659539330274763539836228528236480752713673746709636011927211356231312216595250235429040145202403347698543689312559567237168818533205284232480218765860234483595722850211482481502504418162647540268596840877575593406562767606096108006320391842354400334914091489694891449989968141373582070779366102309359803183415212863813210031325994892991442170628041110126021962997825143449741676266886514736220361649393920783145180072404463593626023527643826979389476740058838959179712955982752326150922079541041589481893564083111828747865655581669544259136569102087499390076423940741667596333967933996772391002292923137904753210395211981908767415734126403066775787474633365879651845547240847795981630075805205013137560100322292443679376848013415407636267028885599659674957484309989958642057704987138444437316283329259747223519655115893442794555580202676822735050754067157246199733657640648281931585162689832408191501634506127382839924675496771769000709278871176675294316337732443693456477917171393077844882487924776168019588607893086092191320487903697063627203437406750111838270670535803448198259752719092801679881681678208115512625871388317604487222302057814391812845682210634329556723215837522772896410545728700605121950426587860601212540166211681169005528906295446410893303042446341459806164736621546782146669942561499505979133389832796596050638667500076269514235503558733591022945614563440435406017167519040273362936305170118900539529783812190058167400518722554845779926352779842019001433765288868883329476691150673122965097175174358437842331626001955140076712118822699005137612171679399441966878514541772784223140396731447705420485890953352142481747188355092917943976060243189188950224710845460809869427579332625082836480659919151653415805756480637572516579855360290893613744540105450084301695892798470900555927174974772156450929352431549861216347724336835863162311979215027624462926110023639733775357537588540792477552191911523217635063313993381477305227843799278849503283899164265953260985527639663375871074061767709643273660143073039827588751237355764945064370540826723523381071029787674200131544948006488985675414605164488177584357373514500149380643666653225493061373920770460252799416854536364043186258650993039226366846029000711247040426837871874587029357982879661665332391854324098931728053172771114805357803418248206911307362328670702465801059976707823862323541178741531907242133154246639310657462131308148182700332842132332683403233809665735799980092431866308300664413169268374781827340241947578448682974057850586104953957874656581140115218879180903586696851064308125507217268024449052480929991038292071892797041471913812961337345542694780289056287011695940311242412818141143231929454459426012023599494947264165004190676881994197878924028403611575873153706999715851451878828077257506683277705989048962369006087687434813863993420545886489770836608095500391933646019394981468204415612065133766677029418303227452816668215860793458956053620992954301173139057184905796270133373160462805364680878923040241005533339630915014686907612736351658359560686478242844386412946637281216839979857453818569057941541992915984421886256900577042038086634100796203895149503398645273599385211382255147685893236197248041854589426098081098145498762896638835972199290224705129812560278761616300731466923456010683848213228568170797703560073751808447641271829970582119785210099174289232131564235190885881033698794160720013855473095463572509116642029847779351308079621457475341708146467335963187749894755073100790402559512616394615965555952439583362215558385138028678141623920995526133205404467078658178721509952468590943056514859213704849400787572104947684837530841300913832721362270684120825408888890401096811227768089135139829885271300328683441204626140567777503644303066763933555617246033477612363575186289067042706584511426420481351226691468423831876357212166309066610141764950337100322476052922755473646890495172114536087283799252290225556609023916389018421640527905179749172579629379076587947682897034117341507895466574873983069872895122928678599131732964520752828010968417336203175491792305475459015779620275519615044153651642387538916207622014225580433019701353571306201966771355153481914211390724946098551946556993848945431824224016984589034867152092805745290776027652175729745548931540461581827335698406523788095487846649281906476392019530686480102997366537914440547996340969564392139756105552997536484014650026404085107490338379421249859909749876150074354574102943395896792822815796185688621852224408344833880131966627840810510328608766861755424411046544264836551496858784411719406616140909341636054617777799432505220047868650543793097427369780347818110649623907614130981589313046102140169136731026119731061032841144496049550780885305819838171697121547913221833296111318175371624613641290669430135017177895231558464218847979436191533276410145051498814153385039806074298135483294480547345231208139481772232656311318433681960371408261977052609851130920484118510724017282728332899749197971479648017511018454172520776000190692078069702903451056629979892061982953036548988111857711181836512612889590246120034379278096649990963769571217439173992792818700340908413055275152421635886869082841136203789606959920647470445629335043708445617351631535105328797845472027136158591269749019996204376166716577802826641626333375705952319240864425660429895068644053159867740917213894725358523347967062749876317144066657168270325522318317087010330209254983529647190715338831815920537994264589865259956597658122660596896967545748136515606289903138258048423446251082562338027896147293233105786259271877209773837387413948976192160497572242624167403672346276619020780727106038355287934436446990904278720989352247571773791928442254564320038203548246567666174241548752472576868572149229050599641389077423608679490657521025352888408846857555621225394353404008373899437913418986026491133635146149057093652521888535051284194851650178997587943492512620632283833603087776520321096597374619259985997948922513171620997314578142444466470525682710041291376112622099962957230989737895458695739884796375522280539218479816943208078565825557252505706508280293692904607182869546413312347824139311167380594113981395563291268791261797862295461807003914830215520921300808036840624868828131121326402889066304418632273480178209099590121372700045189022193047063520425599197742274788378792785233889333943822403316510111452511673027550340007554762058258177575659907660190093755699988639977046030248313398185087246239118506609792684970654782610891560459001597923777816006203394840370486362936732604140289185739778501325947353424733698085311052042445841895022078605060981790620211081944960209281809028463027195870100318561440650309367644538942035379565684931112502511005397996770144802374143475389862260332653594797841567603033700137693270758566601163310149182257152494374735705205254435383423530890506037185892235335055447776667867487850133101078698687962604191470995449652204883179918034355050828365285767410149727791838323142344776483360256045226152191096785142515977003901641595042659663222134856289951819056896263073355576282704781738009813320949166503764088672174539696723485729337360488482317156334636142243815094060070394491568921554122587509831419936876604528735108102190253795006930994812434867925887986733543118138178157682961127450840664443806018708674505293530896032257826293936173083449748065963495592538960288961265811107460447578130473725115333578814960790781473758818083938232115801513715656452018382393387980551481006964115196933538829661522559645358275668542659959729278497940838794779689878116327484902038161343618662585072281160670477041806403250698230772344789333290219858955322443946341331050026538472074921426715747846540379848864687294115470514294008232996117752546537312650994976499194621624402503577061328799423340032380818439248228098971451616651386679857214715301196983367415405041977742980220755899581041492369438971238622192526977615964176592486336150521422416035964888326035572270118971749843127512961783034044472042573798820368031772628362267131357377959318909159062998418971607404349692872105224830105624133083282483513665719727051614575508341751839910729702620120115420108109536471900931380574960293872222995133501125085163351792575820532403368898912363648138323726517949089564298395839517175096037108347119118127978126960987091493064338089771213449186577853073476083926007283133298794378786746628181694299440746702485808286562408062653638454886890784872007868139490593001280465161524902833150970028506386748575589479658898628105466628955898734627347895125622584925873924073089223832038073450226607064211184630081789295407200643962941761191373037489193402374190501157995677797041526420265206579782028217873696636422385341749956682937510491834105785845814695876813237338988813442751450833460318882088417317475817059478977273526011057193304001556057671343637507360142651488075465375058524219364110868674144251858468330655858415645744888722172227959723189221469035497811033749509915772488895422254442774380912116191837317057384021375660587241992034053805037311733170144178750679117766941049306420858992231565657591344950196660334701574437670779024418976901679278309445975733190682436765878119334733798970542455480627018178371258342047068871735016755431326401345280641743171517543468240872287750955963873656581431278314301423678743906115457989608646583038812469208049436354043918994802800687598107721995944367410821983636018723343534592331755588154025553042425404294850521712818685276771715368524510304181914568158074042246461674018710590419235985812999956937863632621056901702063987152676491691529746456349563632520871139310483725957880480109580818454567340067283261892226569524604433741791253902214421976528642482874795235839653206105769852967851698065035357597214539873101535352433643740764017425353747028717715238389781253173867639155520546709417123961658538679932514226520241005476246345831677293895342509168220649734013723894938498039090120401773247211323752788493698797309047903284416228003118945840377609068439614097706488377551738423624925975661775011567884705297253318307472780926053580759889112992412373311768587792287157097783156091007220089809846155095270608505265940066353595607065728030808755965144852916898061752738345707295749518655180606531960121096589898148016193159342232945900562217740279058281691865438393174462788909569508308312486931889795990025251910974100573221250666185873856086873403935262472816640386512631699647028954779001368366789100776794483759990926900892264914699361434834497413475987504031901052852198803329843655490507472378181996738615110634530972890977438795185700967783610499497759447937348267500791522603156476983276003582659604591525650706462502424121926676769882054827662581901375475688881939984512257135891279658979169291770435510190387849591050100093529422842358795641794838526043762022780789574070999948757099597346883460527846046189692149720862311191906850201474234365945214253584059153191751335766131240628842973134196730288485940721109879229654269634871232566893552189032062992334942497821340789685231755038770918856894725647767847630284434383714654503052534963151609921660874598635122863826263111315911321085450587294994455925498476475755037951263490901123037652890995391263356552363668619079815533566562847744963135664371643395615245519105481614104305617888899678448949143601620083697760372364554205673159990228425441611912630415321590799099200838299498975470428936425361625095829708437246147213326330891705974910820196706401640406242203131321667363291884917672620150750887159145931940126186812447859969612081712093192560786142693851779692343084047869225127183223030733125115836512834554103159939076836015238270853504138984498101046604294334865323759769368020523347843584476596189138274064267160454618929021252142407317254487654398840986226794644582324822609711113027907106689058819271403256574586362603080027919725203205953034522340170771472167558989094421842161204083631044321765402748760544533855385741133415559813351434632953205206608839993563832206419724555904314477206184395027611829341998345468661577550587777471420967558921624486781032095924173610480979529786586016102515404137392591455411503126560046170825646477868658345622196263603244758102143686607159240252535394746161823065774782062311146246261656373874970016331337467970920365262310753479715406567238380658505624814791532963379413452990235850259741243127003472943038861927199022827940499281252431020942824030624840142703399061682370608228155061452675110353935312169729415457089776318550676993085365160118194480589489652598992151984765702579880394157570155419765674505407729377038175433017823274581338978498390382054241635387210644245374157944091764820818158701254807974910115292485967657300472746996065257861781404804973591408901456578314592957578759104802213943539123500503305251565890352681151929242692018517767030183617265500172561860992664028648762078448130322227878135023089849032930539532402065475610701533192151262095888832602188720233685464165833535349966269883025099825123180572177999105909434916292686842628532242587609186161263925017570584560477760476659032694285363099434531527157946798091350347950499747092579268734379304109987116401785477266642437653775687875303019256871548250038011297235538223688652629296530877154257783255175018176949717881455632462353535130371364523704130445759980470791389000734184560822963378388645572224288232443480184923331073129237482498653991079777211387306294448873255758300291752879114965692410734333415164785301666485393923040733709878310110052701929830782451238656253548548484028011438934053867938084075639578718889264750901233260326603289586729220453519066842855175671231023787531453672658817782244518215565759712836172168247723703680298397918054461355165673965356300550503270982958688887311545267600763187292467981644563731416042376909491147339689463505279420379547427658451606138223237683143487864801448536812427065764105607388608641252274637492287949947181606870412145469562366799357989241198281176114917839656707061892896977674473306345808561974406181433203272198376537263737823019830255872460644625396537340061596743920473139077881653185077593551369591497510335034111073578455836784707714906807237120318209754654990109736549304514651236704771538886056708646659531453546418003966532437555539497823583753707319780551697669064129167886280830364324410597918153337272899727461064450050659374382702103948564462625725636413735328339556955571691719323799877026344796787819123602902161261288970851281439927662720142545856830856413352891747736071774522844400410565979295575060108700034367775197900173919294174940708961787762093707858603534800276635623814508240359075902601393063301624028807107905254700695614975562738401371238406314009725336884917445553129079155884025463986389218557998439141361520001174142146235435253717706888174846296602114899524912791690906755645617896183969957304918237519367352336456321764163373807485753508605783226995734708270085513511737920500406713228411009771003548791293746000399709745815668152386807875679507261629459909656030379540134403450791160582178845017386174888201860876317801262664560841780224111224117320912256207196863700006006329390897612034737729507589227293957425011966568407339556965965307326582940164803897476541776115012423254203534167997193746296639888092768612420331249472684336654766951661837146311471224644621814443119725978284537189026611903572392857283334514216400074374751467068711488874801105947036647870024988248274178708372721224425480314834884901175315821347558083180260838854900135117871214710168478804467980428381318420315191399904065028638346445425283251865283002411041818474906581152486965095581267491697252311912380229743769063541872840474671429997106793762987342138964996217941138330239529858989222274816537273920047999433904879539435789046654038451278768277857021495997457534197782596027678643511491320880305639991334652099149160627653227610193423935394773113793740100590892923659235303341543182339660346063641616032122103839669504217708014453093633664313432160059352057048631888552251388279396748953226279184956901998524249231529987593181182309592674716797158012417311146755317255359171068681264109356574703798193662139232334917083166950981918517575097166147938647050376755734064925714148522152839901662917363508366365357419933027875249485196615641784838791214754523571155358725620031661794655945024317984384741398542717284812221339928936248778666841063935606119160214716451112488835980421105909687828455458193980506875299414364593488445279163062920735991605500964206763725859022400780378782637564553370257344968269245866196253432372041972882631553756179157560029915014243773433833750210106854533790829377435880161914371979876201331744274672224945424777943125131154845378977155297674025977549787210590019185462010645299965254047382127335690271764592522114276858103044100674341543491008085152930717736749786543468770478437935252570020125684081166419992308523514816672916273077955251269792109596750542349902914496809022656909730254998302951975194018340825125706314656882700094592801326377620700427256997059664015631583255932878546728828245845063625972492230938203752744817578335750521045121906843602417578247892117324559723511536701606868478075296827814370994892672823670297327513317937648677772319059606556920032388331470213448442235068913342419378573825422088770887445008770993723368552965628544118813622986887440675009094923150390190451240038806653949283459960844288883774978761897853984710662305105435803949681538832177186420117456363793194425130359420139647502620147674122611918967054715790128575156653981853745973373430701093299230514601983638390789587230435275225553968006952438060002918735816501496724606016865125772387747920936921669511680284034421138243506056115161687855582134066959465545169436993315505182221581548353939919975328641020021190375494840072835824948374799202487509650500705000776792819272453370674777968369295660020719479956806328438199641020743067579448112681141685821737995920638967056716361267270051424654600301167665433839923940234935924977138926723426185576867190568408344257857538306383525365243028892049584091911333112869089770877795983773503099975055113018523997403325914041885802916305510116023921136837527194140859417133431321446257621584272813665738567304284696180953191151756504857211554586963138548833813279665419963815769039828884223943818495174659616528228695766542851433594387273940049747014374056234423530252350706957311476907188153312546162856401390377555923741478750296837582532874197917229778723797245591732704915912744173319497333925757415739945834518881203984341152527082595649287241259815098030682604367548415680544845576282423465500356604999480552765399295743151823866701380661044354541964641220513523003599773577659355165259122639726895825817052630844908195772590199246999286711181743850788645576715079106959889594981604205335593000264142069681982525522551957964430139273889514588962393318754609348081649067879715050156245957992053661406818564066665219334660492901930615352760615445700293535404303363626502260817120273462792297808549727612172562961148284520955267056792041175939504036835273077952236439229601638124081955293988812812809730827295701874762949450224976129867730341594204127766790044017572249313852887004944140301298428305686548540086341458509483900475649216102130521109613612701413155715047345424505081459492817046849799023359229882345537825398429727853853762875650903840687447308369984325497429074253706152439367048673078850122675597374334858714282243861640369962093368029839906895876309019512434738776145348750607167606619918818405769100764753990320610234519628962860917866782801554869650300622838251895476783513862940005633800985367005167620612416348987217281763681232871258297328615564750889174220514881674622028471988975491038997249582389910645438029501691019132323510458324881337626504098159974212382216879642331991313131364213717354039107919791295046615434902647432118098912741332541937662598155309402436042419290174831535115825088971406570589864613360209793311302004298682148158262350267377552743961008986827675982755645072627573457505761620822838215827089248479313468278711884429227231640133685728894185692324542502379497323337545131746948799827856085897710761046266579503959951468124413863519372462851651203450346075600496704274830174963675405537059656083777459861861308619416180142529009673426989286420351046180550557150772915537022375150081572629252850534248647821579891122948762810274630572479937098142962961108563159333759815392678263184636687500872687769173625582421586678234287911740690480314142002628502441386835401396882984892418864021096366481776584466425199751228908530879623785117337325205279962119491661109163397315003500460343143407839395074836291558303610720511259705055269482442990796740492601361800726147880123114578551662633361353035560418835257355167527178256193361106684202004837852127726634931036608003990695535773206203042396918205857781521437798999385582675739623544038122637759249930417338640947402458272753701406001728921869103955523305663660319855482502433227799821850449185521069684299914909365283335247823996160421887536070604500256110948975855573094719933539194984693650560269422748205066093026887078538846625384323183437463612139020112802798670546516682002589631015133058672692075770305184964437926978155433562587673448335993673470202281096409958330244673450954080927331511713706395192537165578485207807478242318778895940505652281746943234116893106416734580122081371548016379574328240581116048687572794726693118993125322544968491112808248958130050846691904413122303300356250856215779730690853299569376683784456586270613187602331722102006841678292771480927736767257344483708778430423935069503257306659806583297349812200272997399281727976431912918369480176413933829779465913845922556648863302953169532217189483920184909938900562775049283214431115317355940477153368666794790318151882965931818240817864434694913426991891087186159724984682670641894654439503270520341369034383084948560184824928393455764065958833144839656767333907711990302106702587202946945148995099450851914228667986112485223953419621268931457067078427429720913391034637027646686379520420670711571972686313264156540609038444381643809445576727761158785043111177628651497336652552663843732652208560540436769384925553936182428189031083305878890936587346964535392524541986978971937456962171637030825663666549441681206674263548256170430204827239555450851424844619035456625745904973007419228111660459000582114538280957680811714293889710075085585480029244208649277545903245701388307600670621773645872375043174419852075268759499598614262121095331877143954051418356736506298565095045572422133875287280078573707032826697387938135386717684582564891372990563751703050970977723695523838623631411868918791872629355673919924086512590379396234143883126473356449161056176128303911029581845951942177838156394864134406838834638597718590508957522840546878694623354740632604534490436527265219724141118271886922611750467804224429311536531924738521926836537109077024477354913776965448454513599239538487791403439967867178823027036379635509997056990182297606758863038461581082250108181155761627495378784327613486583434250647408616515604421541856776843453583220294667178315200443690927142057868060027977491394677752431217618006091549662606592801066358167092164373176800382019868049668671542127905768753578080196320259978214668012706710487377134959712784828546136602451848995395678095073481065808258217553318774593917106421157034209770173955929853327751940874799344011600959223378629996370714806264662167019749412566760147537971164789604358410563985472352700093154089825626101708489943454107782597121477911780570150938269331804355505963519253271776570938619444253778972223677325742571238460237975016134755167374863762871656078098046074024196965840739738307347937674590378084753412318174512625779394255548488592394449978037557455346598602815485576153272979360033647113374083967769043199511132178204637257616067674968948813001712623660885893692808885130913403609442596213738133389405556099600860119129400331224123626439824687110651753118043619517328255190819652739228044219501938463962217559752684982139773865026901314645004614675936263375217773696513151445451706440272283414116999529885222640092364122237848146961555263283050938237116760026355174173446780003535149374073567694298318334303563160512536335785982231003445432838444112634920691879153893711134080368957911777720974864059302435510227877997361506939685640611807001539147761659218542456875212307459527202271623493000610251043508277552341760506833175065375438971184727013252155077382648766346220527643734897302587653627577390714438619847825084395965021783017699289921634397659463502788603188036293252520273345215524804661379454262104466517792966352344388267094598346527919672337900715635303097774599143239200065354341647563767865460671509901597062920934990373940918414410337256430119335551701752558868647375600569116807698833264672628150851480779403834062437497323450144177401590391654159260995770330775199142420743812370820018945930021767212216410616637049363953576393163837057627251023312745668555779857003392277418012346097030310614308761727150351388143054733176886986143936816145501423103683887738438296390206075299125096436437842584011942836035188819007018169282203420879603418238891357044187561569502087041125819202865395465882238186366884662683120841959658948655556047426044681346938736856780329296493654356560321622106783859821782733784920869819389004081165481632986736875320129108490671703640930937528976878050698441652439544130861560910529023432876930947055634939946293002280608478066144041821317923908830850311535727359755637823232058064809285393255264820546225912643727192107605726390695884988224362034952957421429570481403482473341927788424998322211775329225643729177429020245344396231267392441828644707878129987661963118519982070884283944427697160629031702254991726629667345409903307652070292999043766842070596530606118490270657737393492822214930732549341490572858280066886475090882310329088075943763677065938641794086938649985691665846391012311448105760640170607277323223411613484391483362303528122499337025130700534119822443431810095732775370562410214453190205846834109521633590205937140975085348894638921971989929530523043478113366591355639046834688253796348324864420393770678456176988371569601781889014465790603501755526434067192523562245755801138048606589861537889428942736921049626805736073856960806217882092635409323907161720894002413343212660871968162109809960659716064986453251171077019430623246175758600071900628796107153993162452400699296868086139513181391793145041991309480004977382663378829591723879670373923103443180001243480021410508120845306357286688191616878320284431435569028053785670158181567133317256393222234300911257742108704749175597793521075504979814096301585551576582861039445701238750700337618056259682364281818825192784818294378964351854654642354927222172468008022423401503963670259924769369645539693143478264659148556876008933394555772413493825889952244110185433444927123195705329573950519266432613714229083141618959122866947612379482076485354274330023965384527707886218518072252186481757465220111499619904333187862849740866173549357599609963343455868939851661162022578137442707263478607462319739396576770288863867669298177748131195739855035881880018356215536293301836174643737881302479816464045145778014776875487067126892934769781341773910791525841270430648975036562792250819248649651834398087309328680169799498313688847791329591660659338250153172224676698535482726256920047986469515863256148182507963469421087380770539470971892954674699512845893311189362613434292042205213647637891073885621773104509057856885477788017230121033227056910801949778279295146847998750302149478016136111902729930767312810116332968792644643828454457028864223692238770391507941086252509983188698493961453801545939867244839561211838159457922788819027077004163277714064548590008566361158719288364546466666096975056740797647480038938568661996429988096134788877574112190283746397975415664127426421710585454810409056505940390272091462947836402134768830607805969364701885008293784648456412390272973931826133816917874589555487454157582187394536792287046715501778090411696695594323162348395432083286751061071974650481305527638074982536722075039486800684320360483546899084321689830550038990003103183565408761394643070888799389686006752749546416991308333373783851934285348283853930454912397597298064473612056607064309526003153411585734947518178617424538499753395269443216372963726315515253407114153221701309632628718579400220493462837261485079858160284149759545947845186240698349259259444854074975046078885716685493272780602614937891022004675132344616138015893884415563076881408151364341202878611975352654464741229862288426974167287323005129603996884927793093878179139926333724892939223803842342082774229799110897934429596711359170656754913258844441396997386544467067201389805859317019033995421223779069965063228808215341269379116324171856798453305477120253794093160712044404854735766895553650258225754801086817965427691747075084131446903962887920157210986322903444670612189452142224642550365001714761059694843999545160579787896275490139243366604328174879703900541785806962254649887113948320965513507094851655543136533762940406225021791252215505201683297451052056821549173952297405355274396464623821131344034045178088391825782770857670934968451003342740680158330652621678434592879219601665846132966974595618154854943270400785880800679678304663335285235736510019091225170206981134622264457643134852981405211999914232667745125821374252813306360055832480848429604561786797354381685497026563996576195027905461095559164814863693247100133710228796996043177260587026937994478390918642668892846903437110187027905527607937402502977919493222346802827909240342761162891710804883747819792498723993235336686629149122603722711754556707492072388505593171384089142053697940246580152589248494231421305136721907854197189842017696603215990030263629470828394189339056640397454023150948137864194989003910974373261024606042579438595399873934707624285028912671226362533294082359702627781391129317355734611116336937516986879967025789553970603436734331495107614840182705381336788926908745145101188625468848438652027160603347518928097545643721858549065999659065866596941955283342014204732218629326963850270578815560294295253736028549880688486076618611176914709182818716241829591322267885269804843945095460643093804542172086967905611524912518914614574424610488185563714009988510985686848764323298810811031774551871350249719208578496792194840645795801113146811981868860127777635276970837472142555482041900814915994882374568386890521237204927871119201266181285343841003076990519299839521407672273752727212763638540561148593006952991779467447866444952134931260233169143891565252173331468816365524755676401988395482974426514530966843245193508937471860442885297144515225683628036032506716289937449152106131951282123416153064788373726863184272978733096922178423843821252485445970385759094175965205909914875380785988352278288635593589869044021845104927309886437247220329232103589924466726231913395150792577144722847871816797149639637102778960307768239843760460699265887502770280273780398041747268435866712010328144271213013435692643179229800500424563270183226505745523827501288829208212380472754422170239576454311822507662644786825505419662338875903105673527621140075003627051485228065820125372674620865539706292397036719265664529023541844309789690651147421578875840663846040460485420228302020453634970393411049973153848017558904367517714723474865555771129659422880601809418223320064877211808097777619529347311108397489316831779793617799728409532810477838868977754087708747207194662683449811525747720149633378857828358844616514577854723722060927312211578361479157495004613772601439314898049485381375518866436510968988142627405064913887567748135664926423459421173517394459631135160494249824154233659871547496735019411594257844469305134081206302289118583631362987028846038787383887014716767396084115129548463222892944655272336426113143839289562543909862732143795735981870518168591758142706485643969634793198730956547601342655718575467680868020809289262973180676262684998224372061785643326046366932031579989897677892056350867894686047384285847129389860444478688202107763846652610700545538310986965935765991268041877500681257206204785180510568617647785552958592253065701087631425012833041631875679262792334567193241445499125528861044741828139303632022094360441924149150989665750780887312675211345959954256685031530867899974989909537458270118689203887962439299173302899428452011332919567119202343023828096985594397509045813759176630701367427909692742994761025130287862726261957940456584377178551624475816844766336264791587065835120892588195504885153842845714348121825397424196670601220626784536411564149268221071012598195687914968308625942016893400812704600932665595578333097541440565181821568568596594318855364239150404786323937039222667048147320606157626107148543525519312693476682013077454792285093594023844361962390916507557218797585665351448689446332371257352415716399002748894717653786923954497938402635420234710517092696411142536113079940411731305553765893321033716331218805504035538066850557354975487745442388269992597390889907119154050457269773398678965853415027312356069604081227722831902850779986800974597255622479119860425829891253986952765350618145947795815484128523260464166513844279291602249889601311820029130110296478626132766485876616483120729445742598628563811035281374889182774712332298540233957419910455921552883732629980465098636645926126849069232810021563621113582247084053536423280617916614095177218099729483742568267651993097429054514484601451173286132443618562830835963713941849068053062999171310995275650507774215647076343412829285332492511305373901650575478644456466226049267154332919991133733794682900571527168257094102034815678622052800351435204828493433487283323914030258475992926178509754443759383007102005695194659474534481727962041153292607334341556744161243746167583851529936238821502826534857106262371034996447456055320985824983322035348416708297316976975803940258752088905576666268619274191688677082962843125148716930496152057808955067055204739772677845871231855194667109136297186957076011802348224242745186264182213774106439026527258859821210973361616593565691683569849352469217764247414097852852558905952763851315586989062049018165812634218145328455325347539007763380290671819737726266899142198073385611484317639003876712825874370491684188048304023852240040978779125668646523968171452524908583210928378517177149121245451562000226164939000034995745742725276143727279586253424803193691675746864883610596235335468093568760417615670839406934408563256484889803064809323935572162432786385255258113124182464123573611894238807533025892307872287127186284660297430552762522265018627612480758406757767895043346862955909188316795238063584319689220021686560254613719927524830803768903117318924203853160714222997220661943633804630943491256943316865985376056047479337928098429395091904620843746285189477811751151380139597692901967494991782454103262680679525476631582624646820418338467201598676069888218974493159438849206036656231509467552303719439308749129156661932349862050733417886741165248221278905773463230021462672609699895808156046547887531130484729286532951087317491340922989414452959739012277340043788354764281615369530156095877282968417684713970506708030227468619686473322481254688975070090385131720443331355413638047616920312042672137944666184777249143112647494528612580636783269006044133149813430408184718983444271333536957149089888141798061783259389396067688102880713627147818493347196207498383746286861526303723639590006815661021860257989790732064754444524894970950138240819952444231079510799973494701728228915453263187398089412651398267824752711867096271002063105933416264202870997278152865694576121317666815633408690933357205786783253363710094665976219068170656319057807694376684015834631125117023616397475978844167078785878767589623649967148947857122632228010282604886177445637633934468742725470070921727421611560103899123165972157726690630008378074457405759570827729365366371098436351445075155899182122199977786280047153309029244612091885673856376474283100888547075914751236119746796578803169474171997751781799214981565366985878664796419392478951004060444460031580765090201080504357602285614002237300100608518786139675628012563580984730617214119219780272960146907572588398422263843120074198723957149524036568787168093549265048556346941254958638498671723926602091049623586148784740714944733403897919586447072576843349831552172803648211475913859559566800625963440691549930606357946858529289938058765907987413696655061561200606309058605013129442791084313223155127933027387714138667934288150211206487262807811972147828523720623527413566969769906830514219702377399255058119968549993015909907936393200909362970837336397410820126769776656502857562395589172623748748298326227102311605524879878187550766393718539683745139053877927613819373254823102138133367639107915960623105853073836718950003455293052380186861681433353603873518544100703753747980669623691143728530043804739479051375190640375345572411304109240800707762794975299049211217696273980455517940918715148443746647005979717539677070473632286953936095402433942195104293188875179653297534471937581797490581115857976794258893183194746270823921533213298531870622694712211710927255203103922483507015197773089075861657981882459590749186176758826690094784799201920661062155712015726230198800986767684314940630347721197836784774852767550870984978134847157519369892050280975532172934463018217574037306835238916650493746849034596834053805630131111592948767967465184003161890861942477486584439975858847854454362604160838931952104310262304365279631804504719627756355414476721286920380626103690292957594926164481894664959237810807163085084043663944385513623077091774356241880619085603133936330509866948049694794787908053401162517550341194647259790902669189040272584729554961655120600539748054515605926896774914322034948475416738129739645454723111663597914001314685145950694055131397339170258934723533252593108449668821408834410462240469465094638146389081265929034713218004836578564677143997649730321064404276742066471080210519506560521998402259202717426134406237026198275212911054823398814761488222073161052909339402280068729983897300237495760354252236125812730506637979146981150994001085222091552078566295984448304050420935545128815244745400131075891203511433536701984725502241323678358613272243246260720203145114375722188576170954657234700295509076546872812546721184556515657934162579976685863220669276334713216115033873589761737008869316708061080741091640649352021539595344810281012149625083585626803441054480200885596420491748868904495353001667963780265468421241102142535356608482961960412991426592029495347289109486185123413562892385732581150022649571186816207318233160559245269220605964777172564236981966704121402398710767486576252173496600179047237872945762023725579547128259554457444283056174651743061485897197106909333459463585418442572917013075348588252191212173149905120651090686667225772798818668263983838493677150817869567903661338673639471475431082232715235687293927935757382495899134277261443554498058153633967286418557976430798973265166220863664679795643009403022010677044519735065966526600145241834245474597886122787381693497334692206359427201409077751401652379015366073322188960404189527249073280064578406378304825223088132111078473748536977520282697797090307665707433457385403705130163309453377459551266579581961570056194281005194740804215829262944075340335108074039236283616009431392907420453604820854368501682407591224988126865656102242739940796292967337814128338724826694943252967500216774543594873284948321147468288480531917525953348804624025167156081897551293672158726673754781199635023913046174609882967550537591826460960884605524922330089201307928724209440774977947115088765912220059029981893096073445512223331914018503476608248105306810758351474735823431711382085070333471791181861752064703753208918765729725700557291350071049549472120650891717351369612345866659727818961598993827406128616273216721010440341070871205965965914578992658458319424969563799542772433283421284999114323039620454011626190257598437049830224931630933540997521449889524352156486517352476044955800784798465285020444989663644299429543145000064859890897400780038023717298808638741091038996645432906699335454440774783640892028547771390915835095789700993566711969490198851296266544533194908900706455403322473896030518183869761827453842023191896354135009589449906531229770214289989757527426633831581414817914883430170178800108643574261006017269468400456865573138563375733352024607373991956293612689530235443063349534599696643264130915287990635797580770334382915243498454450069103538141049680210867443720468317374592232865695023180439498326734200853276453469567365152466029112969732864801652892805482631078738619857753815539865813897071728298678406595837322665564430374596505122928401351930635227628227606796821482915938882680031038238852013740545439428191835506725332074294663636821781662872288193316098352623058751348758809469046802718567687470972988423531231610092564454907704490405922299857689968487984780310198936510870612641546537254095067988854477511722438746093112925929046238765190963154030068961784921236588148974331600794184236801855245754503584678417290545054196240264509841611294662133954857760257543832767305048754804979806595419090650226229117000377742092479551941473523359419276855395741485893580091911291286895486622942493749531854747128032328126832845261261861184687846396374283031260190948922193191936810347011617235904049620872281694488520556958544322244434559166327766446262931743133565859508582234201901110151734541184634773594788980623752543476111519115869982336084501140110371260162927113896172431175722398342972854205799691563720478538647287297607518478641512590113998679149235441215641680755835473391625059952378607019920664294155801148658591784668181964671688265881941532748456560522361558419566272382593616390359509364777563913777444037761419562581739449870210120305458370650966920223208006019790221460446256248275063044578060292558539275261310752249484923727752869230899474447983851865394312892931073046136420890938344466934668261131195772534766729219401407424078720942429242257874796232234754550483021382539180516514131680441642115554690334979119298554497102153314197425500715498973928720571083924667316310468617448161158011926755535013374259475172074163605800203057142659400021614387619706513436621947200133572889763011082814572107030411783636813154956468254509909293236391750301591406957519181293812586059020525328910522905492871801456004712892395947011263500555337823930056255226747315554945688855166033366843462681711070900644999655597586931049598823227740268681439158408998662031045656958009396450431060126196159575399644767867753942626820630815763269769549253469101647534989414335095513187574160114535517195811449429632219887907473749284057364650159894444223577637960701982070088050341411827307355751399771689023684886675827089645936367137873646351562353108949897429810419670693195388132998798263918625757947152835738564621391881572703865875279306325142508375277175674721108482863852131757708239461123098391086344423770309911851185304522302746761812494828680662181744911582730046592840396489581222251688845496961439550967468124239430293082488428769129218867146159866958904617732083686274403381283229852006385412574483665207423435988772925654356407328357695579382713764350179025794138849936842764624929996644068705998869179986210658155210362654982765330236075442419754162270327498167743989451751149223885717939257399197161348850086117713347289562958139276413853356873630479482950242442632428418329310944512047195691382307077529968174246399063190133540562682041791571910576181818732109975083771937058382467750354895420016560237289677287011327722491574065668769529136428502399260754944644177396388362489727669652709656851569767665785327272428441256236631258548400200247528490987255871077400506327105932637590629696100607010452587436653240227289613067012103272593868604438657702651969668587997898118211135311727484040826430495391879425904004356443088773784678819617781939008117045806842582975475820375460793904936759843232709814464530675835684999456584729278678196936379230802752591806174525643208356547491990458146663456788471326049238364663407508563208081806190810549692488075142409112736926350310955906062185369021241571741313371654833704613996068404293533677358997128258580491707868429270836698376369490817890069679398433637495632120195755537144479098262723016025542328806207378429456588191231420286418978726015071627594359645936745249698498886985511461269198583233442923161978524806609935791645037971540760277709629187472232668266026492334632721058258468293657105896372799307999070074339186557091401860263521895029806812151657344945074975428946840428504425137106259502715219054959399587890519295522984862650656568473484537406876717774252951517993737326309198341774461374061216290432107289969398214003185847497400943042801147901147535180102483872022096494105754405807832709335023843935859706421618499076945342611150684582508368759019415532685465827054622671339970820072332343998148791203239058780855801314566494102680109573007085202268422342063233161269750439766251350556071041173790860612479196129072651048589287718683410849847384329140133769088687881766275731098493933953158587452133490324499700228441277560257517376566394459234270441549748349043854694026002597348456593216338419525678900620985680346748598800470566383714584265396083790934332505501586359585568913251992501279284167203235827780919099439992307849367117555940079259833855522992577795433882437302786074172227261349581846507156566700869700185754951772491828977187972157860052613005955769535490613141379433212166710786386230659517689732824549995293373801618359912251538117559532856932699854892962778515556902937211984439774765008932975086884182167264739724063771344791065419597992523951135751673335906998589765071405866715592534048139692115510393272553945549124635105978195767306909958083253342130775446127142941129965832003552880412472248258684050851086639488610322784952190389340942841892558630210125274924643267804044396713357483707514017183696052545456673021046838490680455967856234460525122820999996933303934100027639528155448387167517317677665223943577302948053586466102174010421539053701015804490937605640192148274310442810619755413899507301156226724457528921272413707430642492526642045421484293515494067839327347508121044138642998941404451715038783427599042539112417943761080138813586662473248531411232194924809853203910544078896288239619644080422785733049833016650808896786403517678249350986118323419783023953954583657399603616031358072121769325719431561916434333548249063358049581480648807036870435489640894750635988989948670499289782651939876907085558849974620785361767628064065611895504056349082057677951051102762392211387821599115110548264415035382095321817239710838019258697110093429725376812984977252468431813238247551304069929981935088802940487633976026212803967724037108289450734777883727592177363523469969464494398284028148650456822421362217734948609879016317187344678398726176884790283868258601345239089659351947887959039446080081144173576134042134576343198308007333222716948552924600095178391374317465405062813804168852181916784009100254293731601153297953212044941171912024234926710773340971567240984973227758930530174523842391202592333188637843606423551626063220472493775003844631021772315233604549907194768877832992872593154500751862962104313228152320974041835594709503267325459398582536754224942474483660227215266477832461599117646552415472295586037184106240652901460182534851145765126216295632303829249865602255318864395515571596451325072752145757631093238594212554984086054818135844250612919380841504349858486292596429005798575274286224070510837261548079764069123251220616752743714779819199781010714304203244089775545592200106791358833556276454902831466068917795279959741365443665860265166146025998018485800101414354449847034133927858673179121050509936724842950476589158586158884469031453926495498114773634743329429369582624034210051367559227769101569013319633988659766120240710330479272168977470581679260511141232641790900314526919528688373937092809765576133787283535595648165570114520933502610077668005795591956784758729830540139210267218377162949897157776384785433196803033587827398651034283596762678796579270482309932032454735674805944377992181822278646323307254714371934893544383313992177808085999551890900141211556175791357101683043692183913260271842384926374129664353298870517152686370704904545660379776255164449472817564741433320869140971005571725188834598577892706850898764034041772986866834825934486750666681106686627588108023722834229648201788915710006809585821077477206343346781320650456748018055678885784014405805851972392432254563387427000387190129750839595160106679296792984847282674376267542133017752667808310722128813414544699697375770796063871516778975471512979455012795140111313991029258953382492753612222652034321125097644632145511374930573066106105386664475064301317019938833148675036449126996864360213637863562116694334028225677617114066505865354626522556208776947885391491194922201359291074275880451502779899374370457636130484765895810647351461235429878862662291903033325700386271145583875304588559386442309969689372939710487817388959890717159348626168441188098856613356718062486778405910404138002922753454596851428836902865366143954522022216514205655240838987772867388537154789188838141607569159202738579161975089565282974849383035144953104372971650173339825511041175209721026398269786101442138855999426969405788462138269613131767702886075253352631512691575420955800940430804777582709662615530638697135710379538276038646867329890452614643088014834098370793463467103203751929987324303853161231786742773914794155870926156578316975176056499106092768693706967002582438870569740688727601902553301521121047058581764364157315535826458339466199216624514888138634557828630017330304319557317860337199149598807866508696418544286981753907545929970876135987225525857523714190479357135028296699672985521000511037166759318134785517759049213542179636793390803523894599815704476354690830571023381661225412640869516213812368140568775193879811056986082629008318733159694070654412746786552329179566346198416740214375414131968030888368624192677998202204606223841896003160704805536504069885642262612725834823321823630153113223297101032205321505939122550532640813415224956560927779828182654199091360544409859836981817857184243890013049525858744127892219522211242411598508447033934019326906402244881555446504883167079671483333712699460151209087358442551321526376235416119614272724022353491611218280049630485527248534145687038615482041884485280968878653579353846479447680805657214593372042846691186956489328702801101232488459692772140861511591511033287614668947259769747251829045739325638883121638069285412461595991447758178226903155087658221362511803296151704577060785420729027166365178250551779729689464987731348947348036945207447250405184858578586663774306920959700799845996938560728977381293711833755622900275755956732547207539354835066117471317382877008698718477193097655741848800639120069204377438888390556511793873467639359917944643094108423614816358737842890987876154238311971838007224355159492325194973156377627009387565674893795235459573333472448843914843930439181233060212036288896889972042949005195701050260102049602690669875295544361749720131630779775921655203668174901185843543475812801946831900389733981913501040323381442417192362763125028810942226036539137054344713919886920142933271844733607719048576539085215833608654123699776603774793649956692539137545478689138194376511709109879725237507966207924246571222871762730809414335018114678133513040233945014752514923571849293782301782281840180116316196981951465960905225031530289403683435935648128066743023031743435427873229724518622711836676246151514432636149972855942616016476987058644203397545002522589534505797457543747848501312028033981425254326187420295006668064786066064229323685122885915914406605289209080593587468786980283453327827995012019615953548139850209774750410657073837945538835522306234350138751268756439131901135139586492724526006348100516938932545578478381313689567911208575980201718341543645582713033179723073706325468334465096297320407362309974028421138280005038699087907470137168091721933513812466970410661353240531022586714659413191679949005563504401240808006924001444843054147461931545099525910723431204177940564475181966237930114043341609256057999120251049241470383458601151837961915592094492580878187653902259815859378485683101309064039326530885432214364964395329461781026900046028763696568813918305832016159961121189593244434881993244795029290752776242676510258286245497604609077070772331055798843298106619554234441281975800137920602701313561020246630389588354959037456263217538060278464133747970204657912854983736528133071611943578813388697514076934307711733259726398140197675715923915328008626935273742930528228100649199727498703073438867049004985173418073180188150942875879488624051228264894876696437822187578620121438844140325924366869484319304313281906196149273076550854082759202935119174998118774937012304193694550878061633830634162746155413790317659520682244369110092666644097457670809871686542922634964580007455780913810962847944858842212828114198095908476294090129731379297452727827888301921746148444749957392033118264813892023811082404629757960384428535242985952725261266585726886843761061225045920273463486259393378265242560140475039479299003972677046573228943790055239346282806001827181953435549405221590459411190327327439289957882862889112937997793914641348343151129081566723439480927092268540719258894816399293828359881576760305914272517419744297511176063709277325664248457718143033265995279233806693810339281136704323601615500033459833201908000439060022318484212773444080697854799045018300791066639498987757994945461913020440583145849919537894243389979383530512694435152160804897128167846362003769438048834625529166719348367283763376638832618939261518730346390196870504356434998293838778978713365933673468896646707340862553641730798677185146950850665884292217143099046739306869162613564991359297459478164289724109324562351215019608902988270437359559189924993503291820757328932237177697925730095292072000657543297049148763963022951855849380527797761908078441883611516276433425497844610308632256318204292744573359102098471234478569121983269409589974451281943296689261712888837899458832409190933051818114162010383937961505275673681594715218681365967994457280585547512159924589398392778313334304576872849579536477264827254221078136335233782400337219889211937314287162103325576414911073153894964179265139346681092707072645869582168793259182275854173519185315185999311807527521491118899125689375739426281370584232349459320765394694121641493038572624663761872210378711577579358870126416964919287375408471919322079435920626122981912228025719955561332916681170494233544316412904993837612690097216551361334311665685582573209182047240255038357532589072347594127695513243120774311829293899902457796849295175105257981600304761389853685505356569778507398198553968588499112388385679950531357410228855055376830880096108169052482017945041715119473385947360183019861231559198647324779702603152572977342063647574030394322848337795923937228455111899677864398465226065260988985680145982039127400124668080311254674594642581802939839955881381732374472890295558636856894017160418516838225597847463849473431473709118730861547200355109100657962401453198961501467705683792550725154961422298833144899790664453842386700056479699180182379775457455126538660977293956849781364483613117344920476656445441505946373341087407118132168773057331462174548880872997330483374068217032037216067904657983973433338593758893096490916580859882804733903762129324748119078361098213416510375717706007045862708080458505896095556632431699685506749774315386352326621839193691270191629652734794754641987771348732362096023278886031770846437865652215853490005928170716667178435638022522084215427025046812738151675960923093283744392264651994401840138514371927879634061876779867325981486630469085169739536572170106897323425952332609296750136132241432421870626681455768259384306142947081637953058472152706457361661774707162934831725140107090308412469532856869673075672905530936806458687147230292963858476663454402164212133705901443845528829200115782268511595187099893334526112531379868627030552824843122122980379226703191560223035046445208887140777156174315959427162816699008867987378070181097586111924557539438694728314894322611124446839143215986177679509945153604754966859088063191042862801863344995957106111657493535296860084926373714648814259227876317072288680231315626830106771036995471242368935897441427571371108033246032435747365665686602129982542368409630227556590913198261393548749548628893440478692141967683732565051010836361756696906801393299969160203750813569677870325407845299563541155837515716080150828863403384129768969734498641272072998282882912458932805353234844698579197284655666963688338062905078931870229669273199221971551165559230318492760026385541675095434304067070955087564896280201199049042913359648244362626423849476443572561929638858379649752037801891971882370042803386716236298835847045635630421013680654374461788874238808551600619125398429381944622936975178839431246311248941321368938499498915123847433137230694725899619656862473576231170868577046246436952452833680944644418012440147010336487273445561713187574954988323515936852514457165642793927906648208111720670611414303913581544784198606712121368249869474831414944439061721755688320768412515418533302466739574079681046590598071903721064224113037665089560040589913868654407409524760915891877536300460581997136045056047384717374318751075539171894740814516179243312232988693093857263998926223396083634374691765665327217120967266572638369024208462258076483691486228517020852475192492214596698695833590932864758548658868652565264373644264282688937994852791452354354531749630448030657849283826413980759526063980019055244903393698054241644196426977550879419170269852498172993410543874220226466797823996212463788163850996445011491340177132780291862154764969970728578687325223294188568815766463799783502920602098156085136893374991349767813737993793211530247406579517852938257890093280707664480863377753427594983823750489355433743020598807582919331161860635618279399107512888781388424900608127108362140548117342680921139733115359972196360364406724029185073481162849660322902402760658409243918579708758112084514453647665179859059183490700981173431029098492433374678345716090901208300133323031804513123560216039582789990305420342838806735263241345728700154037557613295803003239265573565571463971632720115853474627717593407335236098110829082992720369529978246540914625100353646832113952306560060704852180111246993279424036730095103367224843597474532638519768939011067702436789082452003755002722187169781862831034827224405795436090421682637187410314419179673856440119529485667331424717201638537015178240615918031330897720842424665158781860870984298365979927910358314864808239098246452309892338278150673912455387358590786240578465901851086953351740573599860786749419708051466952951558762092973709968009857657432149098864268982928213800170777987162808147262508278258769196289161015515213638887909674638960799119424032153947104280854371212140828404590903410822984254246051859407645260653292610927858835430429360365303765854263064924461445792813038538168760715472408665460915891355989410310049976824676224780222708604694618174611456930858533723714317133151843264624344423240754150094843448674782132985146055657452998298165400126411706218680436141490341079244384217524717471833460252617828653971995457407640582241342335969361731212218508896725182527341925047631924898839944649608612478221302789717980391682069485812896437792652173546512863815476376969681662970746131392526097793539768763646932277992191025602456216457354443132671805335092542191687670924084504165957602498838690224968866719178409964317043459986090652650712739102575414962818648082555848694246487983707351772753676070999051483872251443669250366112200959076141823357304467895322820689632114137449290250814415428596856917759138131569736776316658739473699696227087348279435215816561791881898880286401575859530614644906831211827556346052528550395277139882759717170968564657680037918153862712644191152096440851208304455925002508656063240318123234482822191405319336712021241161738032267897463890611742192975667536795275131034542532004654366356851095687900867683252962883709858883071541907064017239047293534724834965367956272939587496186691673348022273712598131496754132676557050296247751960784458587305541974861381108721556835293423684366308874508067926144620713026707637344827039138202114542067367610236532990237813053956564661115679395187768426347752962577029581922768697056989918572456226269314458084528901064399400979916760574516720223282177526958819792326260226030614666320714997696259807977092002513525635143261709692400745086403034235335113455065022057404622840143983775803076658217592230782794496382489779314690904848373047282062272409289038865637245649971807901018245822272213095099999184031455884514932730613788684499732943758766743501010727716267715416488685718451012589884950571644607304523397197491026608736549024739734637156735996291312058054469264794606635302094392384505045989322240895875421259968469364001756939546720927306905581470706370359810668447494102142509555292027047043010199692027757073785552323517292070583610224544517678987413053656134445618626286517273535920960446696392819966309719754809497080594154890408317786144065600460013416340159409195118017198244393307413771241059205422701447936777803385908478871947772402531695031572919724297499154803833471312816927614701262025952788437917470943054995115464434071590555224818807366244234199581626163359861638413452663556324152747262155513000041550493876923184967549867219239891332010008122668776119482934070731462337692156447061589940797218207575972881614562000682758776008294267877782909243936116513811052453034825046054059870866125011218576062152455667299971873958348243365587971138752608384917909524687721391436320919791146067142920106910305626790627373412366803287521545762149265888660823393424159812238488905897659226944367708899460099563611678398894126315198027430693560813093426031256510418575066681318394622839399814717302170970045954220981399085281969898783593861717323564423989064528325486132011873683320462533875634760761494325582518045336104960781081710938095439774951482403108404404215891184939389610250192538850796468615876812914429356201430824357534381458719441272535220903647412949749206932816958880668730249757360894277385328273775845798642041247871286435279617020385710133508092950098791062511855322805489283729936632633971080846485582045306258046173270871710035857320113164111287204435881474221733768449791186114586951756824901005598408948650901873912536727242891371573158623890187412873949072275635869370996854167766039046854804542924063774953741139049339232447285693650885231233633933160464052895006958609496095262285169391613293345990929692101108308610146645515644670260550116787570281599067911965799142653434049449978651709814895137971435490890136009705558371176922829142646547115835073722779814951243546732506711263676202297341111506005627082264557340103541865685983333776217499118962633395818721490114410464638690939485067309537184001988432960113326319428947213475252843488943424311247014152979482537625110222142784323503255928280319173024585539885801509910852605013366291535691250276176646955216862347520582484886892626100265050037318836888881351057398040443746472965845296301522230586325387818283098192895397045408213752358219915646770518113800974817061091681530570127008484190428263435197325003469534241077630084819360819035360057670373378085764480372115913546235997493555658783624981851721696875683224818937578509694887159698616686066446371108571154694604857663635627774797673068669336998306254364967502657223422192161805439668052874547480721253129461199981664340320809796827157427533621508306954915048997567162292921782237184044749287765137879133906768225983520172234929137847187207061547435706779081328212751800486860210793709618399977421585695557234432753035917899757780951474932014795989144907762813855072497548985483920563249285885729551859701137753970255947664484727992799984746581182427814456905030246337471126689137301061067037751900693921984869446579452411196876532092375349555117782252391306988504663139219981000871843491749619812516527080715546564712231338360101014579420947804122499516702787978124934545979103716776439757845421330514498587524428044009610326732990607425343801549689130874525665106920734338278791950095711705014094232757641514290500675276412056897660611177141464075928037596580170973611334761061454264084796197837938330354982364304819458612735661984918770082166202360834246445480764664361308473505512234553690509692884146149934144956022828780615239245604247426053689719552593618401261490516032741272891685996975157130752569658765700009353456746223491887005137897912853999637208863934349515684971084055656101586332483087509573687821415941119533221456124328074722946363859821289504064737382530109162475815465717166840279576430441722529265095763230310884607668474044291241170481792049716916766450331164220126576335443761446026776303980079754981844148132943681041283063902051772539228382536630653218493507589265479144563582155099549193111480250023343861230397099514516610527582781477803211753604849101447658448086589003609028763014712363836665814727129583934782467665834492274800178046083777529744774227871015742198035396227502603177974946359136381360559738781764754770112862469843199535340256658143472215697857488952673284928277803197546464111153363083279402159230324752478610182916855660632451098868137124523180747274521549638817550736722942669038199129486351071286938395056298489791807927652848128194652864835993694591412170217067904501415081577326170979980940874529194967994173709140155039030793498824149661888196430291630484014216652498420293213940469263435592244674501287082531540012867643744880311054488621960191498745017719221165256725492850505027837106474730747504696795666851561720449565388554197748505208547509135659789346808395754862967634267906799429760311289234142621952658474571640167544288361785066312930235003618359295014387847666850060002020635709217143459886828318985090266657940600592793943763947803782875362121328500043367384136401801552110544795805009803310075309210649993994759489328419183553982414020699764309688653800896498610258398978581582333108207807870629857520217920125701196553386704745835982807347168770723493098381649537837555642031543354188194390015762839056911399522542723169519535813944388443014119983215742087187917802932431548876061591115095056950131611158176744421967427064571163549010299804229509179923357147976389229527376755401652367093363738540699777995442555052058444563261776581054842192643879935505540929302708375482054299065373432225940130650576145367982677973983154164166531266753898960705881039419884522135264037778268866550173587953190202614703124583198125852483787423697323685776923031764330113513475151207399772444964868851710776216697857604069459292720841236013043411768531411464373878550039401954938368460758548834051236288983271958709882078539615786137248249065536711005805794610471070689537705905373658342642567930584619820181251679340231071450185413338881445721497256137639662927599812101189821403833026767361089396871828164959450086227000263789232199617295999444645552113630997246537396573649669175349699626185278100504159610497993392945288000264387314471029741203083514293727548714717605121197092790795488128748514488489721573100880095675162013883491868148231482719746846340109279522193040939131005650362370027424834636971198518360795852222349686609803165820681672889677985299157939156761977222084069400116600191303916202536088656326001270009461783110599065883847202194554566443931015800865537462603739899285969191374115450821895088889381628573959484154031877071123522402707804631819629842138391752269869394477967693771437023277527008700256312825717143470263027044471375611991115631976275642183629703740268731796705611065203094007647628923749154480658907029582917893668570220256817865536052873698447416256179007451461302211438264940804328059646459395515700876176981878431506017118061998703591697324456818982227812884310453605680322460852248205625247094803903259059050352660583057425424799924634126617078983371493584062503065872084469595482465671833425597875096309941613182947055013993752432932788552545652131758382841921284770910469349071922723127780045773354891430167370510548428174152027364513415803427509689483364385047692882875833807669913978082782469408656283577833758198302861097385518116794912180723035828178770849718176526521746288307256537494048396619372379581274455692453113328596718691794311869006501915376778974784307673423508732980232739611207517072952377075975394057323953992222490231528604827082804363481822444041112209836062799791811676425388964422043198298132068918606487210390436612149034594676617450779907373260864802468701113729622133212376137866665052996643057710403949677082130761685248239009893677704495850036624799487268238407740011591732917196154001506516504570761471106917553116010261273967509090090981060415554436048853516484383500116939188170442951160696585987408501175255524559367886623520033645359415946739717540684563453239049578280495176735075173053056648373546975314085330301516414655331600462089185387622766263952427575119197633031283195906598357593723334237864805521045443225264882017471783558424880993113992712394112670115666741922621902384609485462013779835018469716879416221367455295757998052377141804554441965822903578665248868351611918973364214836082458455895976009507087228318459005533106328217786338768638277535505906003460064585267459654674968339783686816262091617142010440471530012768153722552349504776082024922137516147097062648211197609628648925105501666384100462680472919121450942571969730396086603317363879421846164574689419971789557187613789080604344153567062774909472725842734377890010899447887890718644785439477077875634576307776075654856044089785531140969873049726524697866742751501392604682369954582671938318772568267883526570344603654034009958263398974466940261522030991543599032070273465462985443456963157896036770779930283279076172989758677811145486896322653298554369103174897774237166434736975466409712811621551264595704270921430357401743350334217834020422913380579585730835809334460429055035381361586726287615340648835297191348249521168861623197825069523416997158855675415726745499234233192389308624093224939331702105617778950836274132110930432202494746936551960711084426149148088614571839951389357593802645987664246412830131720476770499692141501547905799305926165190722066731714649533817082976130656627380603035669928601141363162031310567903723972339222689957266064332675860106312543290626409751212622712508147981197526069677429351998399598496518919804133026564092278022273442551012635605420593399537093705074585237225575028839202955390101816096501834007533552034534110652189315574465703810531706686876144062902565509078445371557730393279255890373218876907929943799988670962856093429510023419356192004063705008271543576783186653651131638450666672411711090886776142032860524086256542352464514519317160070718793851743458791502096248725157943656756253968866731498745132218415320525800167342948503372957443362291651783089951828321948934361641661872964296713146201423203028568312985706188894960488223996315038193811208815434733611583838038851855612211650001342972483932721674304684711517822552406677148331392507881637727708580738306451717619871861156014999425011549087588612010978928562314764037641377622707645896167612701148824629966809920309294548413589174172600842907477046680763570125915414684664799273209477647705705506840123899019108981297822991362251898497737852323730752225736473348404688059995720768437723411927999686962494601000355786018294778569869680811896880517146861755214985325923255866341544227201769624684458294251049361619660921481964248471669985071226194286299621662324279351654006642327063488077019207823486507080599881786444399841685195529390075665946560272442884249068104085471973929710805022602214088230307992057826290105130008880616824613275899596813466181941217697467572130761092504144355725346442363492497671528819999505683010554672620351233163761303593173183636515963353543680357154503197303080242426566960067615276673866266548529735751656592737979623920791708457041631478038634902723808745724646163278488089453130032367735424849077402610602640354328918697848425186525716299797597170642604244343268253066222863342006668148419970160560676156053595695971692593260883909727342377713677093146401557375424124030435789640981504333693285327567640534977848263764870279625186591002987497361610582137163728074961757657197200159519567455783858889740936996821036393979656444099329558656241958302297682028427444436530082521631703697528982242493343969739094990594050614379333875826891297830742671161270740588679863801719865532240270790716356976299264634890781742312344219305932764395871287452166343276512860906442403703991174426442585615922712031405544336897699184631864428769749865452741800041934673773089461265512763905024687944182508028576116392621316526306794542746729242419087952957793657703048600028754027958439362454724660738152187613354561708077401887968302634932663071224911158064852939779108824373717191726110619434311498485190541459140654289195118033206516354897434862852835407345894156021557923335342597110858499827236218969105000931546363445111306626589622767556483645723597895592643988930741219736249631412171843219203498332529288114274260380842208313717141067276185014596038559140790440123515413710443315284491177775216647041211824078271632881483890929692165186048947518936428106223407313138844140325826165873496915980503331168862495455195109333966393176879041461712417122141665837704603668236580867475486026937560783919832428697427878344719141984618998673296112509401181682926778166879250901155781479692450666127446295818693950756187218654585166747560229374130274084079853151849559958350414128563785111809092324890982708834697413807292229457594417558781642862626294250413267891132576591634430614230155537823049717245789741783420133482885942677465223349931919070372460751348637310520685336096670121161583902017214921621770305544611461760327970368428942722504159816615122854079086083074285033555455119389421481519518414875207517508414941624617492237311613575690518396770473122648836587022872220378721728702364887538241773110827984705144422337440041621812097070800957813441651504474471892766718538195529783239965301497871912020607267373790207923719517143449461070834194673506505827890768818329693719932308372037383326614610227822637116742409544660594217945775101545072776824794904101675255868446664441060532955206572062920117167729432461275361830924688481125885231332916502560420013512694626756453139420750347591741259034809903360015611258343717664971916556452223670148531316772028187016887683616785700716346820840886157388135825685050335190830379782524466343160921654113606333355790955592434153927704090674315305687277704095338519689763935448116269676447621834974677262298691918100553951627849908146337472172255731841685541036927508290346471843647493526318867846892310665453305683950456580550230305979113322504809842710322691058506550909871614159634265972331915965295024056700481269241821530980190546124095703840959739888195520817856375853044219428722798978312503914137040029435143776654448993522401988318142666823449898156247629546369470287755101281890219226657086823755159292904305808372343263557876043169588765621219758728704084100055785805549947736674109392673171305492666341316787060491182100807085282174191330836664791780570095050657825784243442607690925397700146533337141453609171985245378516301300098375389807717931545782365188819834428859133876491637315388770649151549810393211368174717203086089739263702357394926286177768206355281655889856992334026694484063642858382824135234128506378045598313463722690734348571727029094855555294365329297281175685530140693118813578805726038690447091649837227303425753342738359494635105777332190890926571355509867315449507974220964096423349518835037730353729064755993701494810040131150196823034771067778202003019117162864537138296267600114280176679007895752789453589767058498238026401809570677664662671771441035453088346199707165333189541713147257039529175519544505712744573870389998935714538650734211206730925791288404227450068261405008811371595449552667536013935738164135164848504607505878161011119821979460621732447080011067543007773506033275047728033814177485433857418931905118609129759347384457708951029101461073584284937831184889752033620647063006578562090304581670876544206842908322138384526865283765910606540154882720727691587588515949363759480182814394521318742706052470354668414578272163382862802004083038372271352347848436323292739140380820987141243428785884232271113758937985238802092755429603529107924729612857371961685029551359873795594375319671542268673739564940257828266284650237603313375962387985262511304981729930809587213103660407082825175371998357297255580174034900564724523859122843358029725355553330476694100941610751761102101427212671655994287452010380355759214174340989278236293316857407370177995245921670687663896375033523443860171499461375677732755277602039741102111596249662084241140591702191967121377046155835325377323457777093522001832705192624445198878613678819732229188170365933873023554066059485442541821067323327227395769754561898634065763961842487414802456121196250324767876779335092905738855307068926221064644441846399156140672375504791416998937700976014070182369960440345630081284086179547806726062132544889569218939131471850425615534722071155856168671794892278513752970496757275513786403280593073398776722394732072160787784544020333533755727180899863568175667321279059867338206142926482694002640415989528076272993284264742202679174646145973935800674484481184788784722381668623851141962064179436514353460819920789666001131617315977582735267662117622104829647931632492719134074880220351682561435715498691999063821035713483173237680059894501522768797546442571724293842926618943661522414757397975447050870737046232674844211901557924030564790164345905845121417809136908275709513271354379233325994556149752102706003622827824971121182259529484964954540642757247181461428423926882438252863518868616757634761749674361092871465853892690539843618768915044158599945966484381674864106343782236152084118861278527340512738577228297250308859459195289531579111508169410186833878683539370343180981778668953623635637879025310973309610593836002755324440420199479215984208082234759025333832936962801117838225976814611610272066849890381540347899960608830469610357292923742069816622774879505151182976384099128849893086918618936093890300696240200055110317352565000599198031973202167361001818343726890391732114498103957780127669792133145326149640305925529150893061915327449754981108688076314232345042608713221077598082677224588377661542271584608320768869911780747040525450456787917238970599507772061418786080338516802365175480388297370089865568361395405501141866272035426067380750596622834016747917323590903492141087516021661153975613307015856695431005061124210390552362978110461275353520238739377922806181733866507409308831944623496552258952469978595583045270632865183973802208996422566414124101017374933436863723470287289085393183972110313233098611089483420301190115006894649638877821756212991860041080886851653495031944023342628577988414683934119362859796578805578157460395425884412005886190133116457175412834299847341241671601045448157326247812312042602497009056134138332052959692282906122790069331864355042244305646340666939063452194390562023097849457091449172209349388871406280103313917656526839015350629437754843509509085369787344618777033754973070943293506529351291501854735593546896082118706808845435009577591963838672421967269745650330546106489322219391349581661175765305185390538957468114607553790625147229196459763684213082387714865265655266090439887880061292140645292568633195130304687740403047221779658783875849210780179524298881798917627688262424470563105043094540251582710555403281695843817740797158172747035962448941244307158204161055590105681240322686025541872555209536044139112623230621531796816764779211289038339352247554619359056019153657329012480998705480854638138638663747194312996591827766938940948558881809753712282299447771712780058794728714010118691302486951318916309447578742968475863377663050712955412134002523679256023011620315162867906896463422232534214841597220907751344266989959080254056353070073958474338330507142763561311573343799102144273239589011279655976388292452306503198371875738418167787778011668050033254623585927896921040287965290431885432561237290817482367341826905749208427956202921882152787100084726872427431066113577311970224387855969096404190442116907773532787972173022710953787343487880228776836825883429743357811674658707691790744287909768904932321410075884731121303392836939622595061507503758087775300492344416126702085729799751808625070919303111394090439827186043833625847147448126072065123384787521665499708394101332440457044630744219164518413675009236472113167844632250169115513400435690938133780546164359925704894595056319103310319576485071742143395292306586654082904253067261861275305212828215605288248331938405255331748557307551479183680626017543737483313374878570148826795648720316677218895149790663516777794823088912377734003390575262383584837067340508403103909431902846103302910730697705501551186054974781366197722373839679953971707687492498845509093946220115544628548967472767391721904291222704406512572671501962302633274113925187217204664981280901465635928097602414514698765734252779353034277383151550672782918074253441169766836012546232180972461921909304172494487889360345860836718220938814027145989674849708847023846039384348184918184462585772767382546047092004313323102666851965067927537777441444714140462962628275168871915608755143423107634260993719447494063148659537253179008147902908636871803481587997485523780645304897924363732538126003625852909650723128481052788027790352643632489467603202221730858857452497528877382792190355211609464302252603084575486720808430888944592911788680049679085699459506670748779383573458264899630039533653828022639196764503890122094818987575014590920658036431510928481119985921397712304842313743560973789022048230753935384566413854981555476427168460918081890611636463767626100722069803130394937658168398112663889468426229330788340264995227810399511091056156288637130682317223692976707805772301120020317009613721549270423221811773171231553536344474813594978774921640793634529121016197895853411974582731017203114960980924746325213878811205671142554695348092303501036896476790845717197744952845952678626972093851588508579223983688049879817185783126064116050373871390930076169076691543752563107688644476697064751951981384337043132615005614226131448871675171803810007495545705915667794219638445773067777373655012262229836905081328648497583381840278695851534760082267349731775190867914982198909845983856689816017611709417074925558762449546989071967820851281910586878691845783445799887940951943706547447936229093057240375786680387120564592596682137447524513647336146580293871973263112572713932455853928908558644438330330674913238012860386174121641049037221711550401263700725457554160396079435394592399430215859254054616035017375913470256790890022050625786838288223091076169096058718754266585046579110014711402721540752733673270385630237718760442199007103378696979368547875743151738620812900633674357795342801297808045034182395749046985385174329711227683480432481575211593220223733290680286373504012834559596662518975404339838125859211421672145738150270242500770205005860802056801297555819815030691158202162737127374397323276035620150287182265815871660507277844356737837287346602891606381760289186349411211283935079447176315727959524161806651533391822128764376123201269035454326269984109617814271326287936851777420825466487523939042411303484045069888543914528828473831069881037146220702381490727691125062697931624618316023374000020493364565420722714660829659977841509531125940200588184869384177976211525040128644359190223586267535906491721565555352356194002526385754657631819448058500553726591061831031384071274670980363242615105005077940407583659377759314529843339002717510155251849128238116875931190248873519647513654090349906364862976212204096024934555508576402952514394094369906684717273407887577479563300813521005167623789365681236601223598906660773468587595982784946071506139726681651739831402149254792345170717992426660108765750946039647014209186927046605698949113736421744701479179757820653406501575954626416287457700779317584957540133299838810864697509746230751469668060482406511318336642417301271615892492800545187452241944467024191787263555456441033367479593322194987383712247420117963600104312335574856860573042214654807637960195444566106139664525657354867500869492329211281707340858255799031678552963032714304528631941268801339522717505530916418933795722177330360158529178863218285601534188479384642336943624123479654958335021028911176052272400479721608356595108917073258370911415688970377491869936987573669934391867060359177405516346474764316124988879427827277771593284342537330984039240087468373220925685917816454097579602656944705270328785293384434251341433840247917104864609322893527404242458877250510819439807521871022603430424011277507602454154561342070118213041311077573102881578113301429515387594762155663538670886832481073413503506027810668833399163221088562613384306714792889867196580417878044035482532811923075892731089973482378406741281955213391221942615040601289989611835519625759790945048547910030385457076197487567998237698933791459640272589150368366607786886108294694004112503754494271089283809374269429684216499885927406806905816940683390620949834767856496156877987900559948079599465297777353389050056131118131267850341449210780219974891081275232748164624726897720666218176985976439818519250422197739485534277875436462123581644177143144066383245147116331991316169954183420408895488809718713947788734792445115065046797238500966896522775678323692567843623714298634663241617987834359891543778489926327592959079671432492162491551122549532864880296527348612219629905523193192133045310698887510954094209455965887657133254257858826819514659021336176657643687209936823575127455864426458275064380429879757865706483466250113289896993861739255209644422072214333818366365528222815391799921337585323948133651785774672393850320315921272159962974413078676842604411465802508051484436156483990945910588447111392113923896621256876071520176847370365296384353615532633999583596689446051809386363572041384294695749523913098960200064438094822266129443562423474718698183019867377219399243243040638680054323448460376090606299773257277317592429240799734790405899481336873836246624665107095981688635152350458083620456384771418131577863735918329195269387059086358491368131603610325961634047682899906039617675838224764122589785822727381763096748223633409082156272141325997918305600037528030062744107695662180359222195457579113868759440556170032592018352895176480703004414850595468602962382687986105559901526732331499245545040839636223057115537605965741148017759615391845338282292467891451687737430536222381252157359774166099929862977644883945982090420355171519804150006729141620619526504448855218626831334718117600920160293951156474018500613371423118069864966451466947612353144545069775237180784049313593244837813709213248761000208276827923195986901576779013718176479285284137683871346829223745698274789137860491104567606205385885537280639100533990279847409952256222451097651019018987715107478848957007154847445000190180575155762261798082986713684437025590013807526794143599088998050674659568200358277217846345463054778083480046382356083486989058764991987769713278536467879445682694272278519596457179666849977189348420476832751976054378789797204157489327136995591608256325172037732849137106438946149623161777173596098554940209857399714068085504764399073636888759558027075560459773015297697970827198899943733152073071150973355383720725162024775417946666645113610683902342159176578230354917233245109509197389421254098559026171014215402637145489486133467401400806884909548635188013537271623029345437705622509730146910128000636928930546193170335899598990174358435622252765376520794304091632491319485868933169495656192863973577318414533076219766748555275064218330966993726916511134981033519030208584519473129963240801202356139397331275541183999818916861272591219506965304739095030702779077094034721306149523248965394953674879670993641548487163193337720290954897002006092787620405756581028490786487601298956843603887211434522531773948925608368937270317723007458959912689816730907497258253424863254267470690679724742742180573692450908951917678113322745744985848815587463192082381938032174428369458053646243594403906074615181426805359260298770169928673225105424421435315703366576870790948106290696056745172197285015918738779933426749117433808925191065748180267226510958797220776706910549511165879479256217880535947827359116625253011091232742363304823707330946814957016241109939650676189877664992415135262803661386911551887630036256611546639543214127405134398848498762119106642056568166050610337955665577923342462840903091824704614772907756097259678139190996710704578626736575494722062829008513333685799592703131325196687967524988973194552292750980181441647305679584011343153072631377316245946712766625493378906714138534161746661862851070463909661257264840518401897929283258043597545560842069562853618497505174788822301569497220371796335408742875242104767268172028745730695991044888322771956311923676106886105073434238887357582652023313735798398374507416755761611222681621915278945003435194928038219257126498104108853190220600135402826819097002545876536899123024752686866755746736634401708746066991154150657425990493728996636481490691592470613755119061380191740719772130566627890322465538719685918998300849616420726299092278580945496155436128072021499148478001656997386049378527579061235323248945577583082487865485318421387016998878128509018799376092543432246362952875371821675668594276034414441451642955901148831596143921083441951858028144071647011790997849427331166154813060692584402973153544097570020310557646449097678835097100797056388043896249861866934780399967072670299783052419189406071720480238775406719614220439771512063394272169797070955368952887472555630861842183456513099066171959014253922136222380110307471945221728678635039598908009244564067602164773501233003955369928423499578477572320281929731693628466024974482703072761017731269519450195432867444750375109234673112880456257142026865455848539855110217483476766057567868873591758968472698531276297560446580690236109493201635036842132693993150387909844850919432117920492536784048825055753625405862074465307304859270613992069352627174910480484332320870126996929232536285370536005259646447109578700798945669016986940878701793185913573252811290016772580362845545008887072658282334441327365519193966521269619500820721614593009375738115287353309081340788683882664153474974138205068511006289328156468721702392908731744196005221136567452126314771660160349422258979876453863269277556237429004185452373112295046764159647401491916005441559396076754105005415057452812408681920671771645406545301076514639132231685646871813674967494410517731952139164919308582654610468819740547227694467441322962223564045409466475668412874211649839763330569121227231660646617634915723689671695081551998226731106018641664244908683665953690708725799359288269883698206713164318316796740372505143134876574894834754606413421574433694198503992832704445400917507488641122065060419951061623967524511580574217403806196470083643874826940592042744131823304744651756673538533298096428880484368915573621028811816529352743671883588036026856846759320458802881625212578135649685142073921850362654987837418007448307903534812930263633469374720933426211757090806914016084647999850718061297250323911318520164858713981933213520573370186423743826694611757960893516355378534251217963972608179907053172351404946584778896137348528284473525725437335877746266974216955400799303836555458912107701340566405565033289532435518167889844520597232340614796547583748393749902235915977850333964724534242466447564143193748728789528968347924261037917649343489474238036473546297238211700810542652854448054730753065312256230978657111433441700433339729753585357834844326899964990843590129062542139659312155084296479081765066023842140668681032435612049369929917498541429642850078740034467347184680965791712178552741281385589992706557530669800834878901647351964698502578613145492002825764976521178958981903966075245167385402146951111764928186142837727560922915187732297736321134147907023864816149786098260680143355999328145834297717983933222053594614931273792525385396699042345557463647072251780863941603757859143409922076177863110956566595452395596977145854475219558431638618427244589053139549456425106365369511835371322333546928512205537074304664953963270836886920403271290892449115229357096516223061577170797013838351703223251682356280099728868389707036674011073257903098164373118989064691494851794143392389192709987139119019141868225322963883415807373523674866286973171934111721939335119268848300301963612308400175206661848746908116330094303336664009460412642606254538943749645167974864703928889280816321031089638898554936073604916075797628779671769856334063667626077550183222370024889196565518269276951296446379889824693219927004836580786978053350245473106752637038863981205209051445915947269661610899250426485286003239684556867773715370390254769719735046543540323848263956780782204241586244137377308980004303716097517095225209957176045396743172373773193451407840856132811662326193699963668632954894256536984197840901605967435909731509324795487341661975875812362710668797168126643361766768727141928701198112890227329531879445217573392344704454551478817410209037709954904921557198500062807209949463439780517218304333730421882960397561520924468603488722732937611013723618054208841168703487160221230943689624699702505524455909037534214884978641244055145219412785302777738186996048440825459967138005311905793745747102439223269777858311032255188801486054737979201969508482282310204882526130233367725831325602218442219707674240878379459242845114331983268884916028414463279675462919077968529601080857559802700304726761032560062889162063970045962751166767706522022559438743389199805212079646334967481619465989146550922691721126339328601345429544579035936352379609840354445619803531784387530108099983092296080372372843193434002970163973900506217039550940648713257229751407154839559822606701290846428592808126434849523956296267973445669549400730887367311857147096160928199652639761492175976035358185277041716907966193558745801347926416194025990053456002166108571441161248140938858961284820564344248532264011828358313681979626203142988126962186138025361466524628899900967322872621022065807620256493577354517504628530656051030486083636237724497870010019591257330055079673121187775443620043607604363597412012267314849987094217403425580318806557446604564184104727970232828998003934445233472735367269196335622162857096867381091842728035007186148292685923353518575573447268096037120444926707275371179628942655336341502998035576410342642807537777943978158797321625527290241057043955122269392575531290619273911418815073535477916141305447156228465612331518239160132473161313863156088747374940219001116413709195269930578160267871642076130035785935446273734426261541068463433551006298212863158581913753262946329896282265802023680342046962921160288604672646999016683073518257920120663917146061658152365078292170224011533353909256866105651899960729637170570352231811563168318376525933627076026074928685925199009511950431130867257369081166797741942578257924810593859895746924738999860254632116048709142772673436972240325218172705468727317758022459938827899570825198877859267691407252449551071413907757933970169794357290927666182619929554444991270188888551614319704034877912142647548604811216207233832033828795422119263334443010572275562374710880858115243076421266092530997102135261364682583888969512254055954050845126470256422271737261970389805324520901511682132519352057656189873874469784321056065147985570232514938785909693392914653943808748265227613598619252412441162505227613168231891372575877262633877973726807821466475926138997279190291537763931411004735528568881361948039940831563701729522474626527821326109855700175166595986516754485260709028158656620104890205327006707594777055871526883723416354695069299886974515007983344945026555226577133237153290873091273751677315723853934119899847269846700909177473236127414280693999627876889606135780529899390142133384468779631464845218385861562780465973326133819007730273010260993413424805936387430972748839818684284388362050766093482660003282354729118156996866843024231371618169070106173803271452159488296002981690942468387357485067842146883007651907554983142172358555686547666511791872982442448526299020288140442972905749808549647465417691893963216199544208785017832595504107569207644518553990571137866309083843573996218422982318724113174156222765096572057940051852902662905720103284194680314474047418927288355885265782868796033379914154438858453344229789967028685289142658044469236839516079651845821418958054107845102331513647720692415849467656733531274314788822295431150508549784866029568736806555198282073279025757728749831598920253963772263659446833584335597474128479285732281230834254925785174791088830927907198274896770796988280546573858740160241553366176015102855204303163147395467423449669509571966541441096661424236850346098469031885646014464174178212433237641921459417582743656272895995124413312682227132977165519757432360722464316267409542427443970434023995929002989408130268482978526565835986500358180085836802631085985872376772324970220187480800870880952329047076078056028079697548271360443795777224740631878301963724299172316066622592428576814321432962310583351652188034317606118009795875274073700025787460828122300000441037540814871557691119778066476276862654572492157896962964653749796638019052888890009587678490414385504057305221957876727418502687421107373150770539676357854659410720143657095643937588628124950472670578595889989596436918105300650920268657818905086940060085447375977927667428115713392004097547635696104075314792611321201489824592481374414652024860060152359040230291501629073412036467059423385443346383700001246262088340831651974584977297929164247696789522737391499747859788051290227117835574430831547477990072314602797552446630475827847125798364665777344781274772409170847219699870093620376112210721250390904400650986179668040045886108584902893960120101079474663453889518787890592187465192188099736697690499036675462659190677379881719623475297705532869808616599637262572957956632585947309997741052075387268635499868672380331516821625195631505464764754091681335746466495699120627121896459148813920554820254819120243181891255045309022030436393123994694756542403300601453516167068559708402083796043189628660381538475168664007698447946366598373226376714744223853353108339362561048011950457932725257654287522038710373170836135606888855678998570325224436628615542883424047242382012816920603044048247806757653275238676573653794401964719047833376331880761355063961373811313129354544084956757182689255239714686668353982617515282664819386512145765688265966467055832287643676399738121031802313595484461614266908579002896842272711262193721982673341208696701564308939471859558203903611761273174883507437674377923655527235635511297912511696612942023770548698378302587314505626973341907577139141166335992527214049203477074178267518645781730533144902994287227489989391709831319391031750975418788667511018834081850978021320603972867073769567500355256625419518418131956674967075932824920314590418201249691643443394416601668841080251388688316583180770219619237157471595937563291834645665369091332261315011924145710466973123998451274871443345762481415567322317931790051852057643609149957572639997570727416298313575561772405563089658742586351390283081673437155417289893124631497706504442023274612910558346016445523863964196661233561666744435382893376870295756469829371608788014508867343080891316124486505057113418697791549845698714214203573425113546411554278897679333401938184140575879352438077626226850516045588815049935267161488187184678233696142794226595842496422163325761624322871555658026799298625337132404426426059652699775883172311340336184891257148647084164273943673684609421816906369871574081818526576916421724943188507510849710378897729160072721141019637938339054839585046301482345579640890580393479516581486068414276052417294242427044983512755191678476813470298754692697469370213485029663474034695538981527134605107063157151530295215917852011242699676747844005971412281523986367425096664240253810968984725516584468695588020813723156292110410241621039068725394780735606972079787916596723884885162394291106078230341552939348504110237508867007274191638071533262512044214298662127521259897088282218948131420868084727981284440786004491640526077912828547765400633571166765215871185450820180001771361667589446783576969706028959145286795104924131568469374196366572545250973810221519597450503065683461612289027738880817291255325779862266299475299003022648045195822290723871463184859619730658372276091882753670751375121022055988228021843271916278350302524289846517908436684363648725586479364413848265107756422528690062945669567116776930521322585662403738411543982567360553551680618780249278524354197162765540365099061203011044118070191309408480359923556891048950272510918846473339659199993458286162407809747514946232008559912748282832690218094577926856956170334832353440532999861885840072483813160642473316437661888968107684613397100899781155690910060318848964639184604433779568475131376350469789005832521469633479350379815482412360099637617047303606551496737551233346212659724805295454493734318956744886482281353698358721050757085629024651812412697212650226614313481779601131132766702168757918711829170145606326967457958830626650353047808311980882794439325490931066865166093016080016568971063727196365226494208877584948469061184326399576584301155290765012775002501580523101103414980632834836441513554855798309487403660485387328650616327724040523460469922398913721618534042648043123077160967398873732421405557979806275720524435834184501979157923885650447709863354886242556815780714892419827367830477493188186189367509378835938584429299454970194436650147450317448803309136560247694150167393919334905317216165186820634646376051699442330720216584057097700379700957512955901236943959025177726268653670129247522077596299534489312807972740180775481558243675223318274819088582324948350644818179519593668660310886684032459369909009087952772594074754693184760054626671681767794450028566337685482820601767593299405399782205889611779346808181207097489373303122973781488909618255317272455072064748027847642894690960146565873673641377588631263546413304940057772370958529218357877213228009122403010319371628871026238644165171765747442896998214699187829331970338492489822695625930052573846067645265538906165113177959857608536948131926412810888962504761702844480017463362363909363437910965770170447625663264145077492847269606363357364827024347753197684529698972073905654683562421611225880384518204949586834171795883618621814044794655813247426946330844951093004586497923304789786063007332503391992952725712178749518158584147639993439700209947781394993990241753497228514636035669939740177925502125166602344923539049346411774634580459523401128769829222523085544836927554479436385452788426900852187299808569144627316648557189593904432895778624195847637472855473996356292823202214167817708933767557797495741092987345863450152618311731722168262345242431855374287662310816132774029492745589767340655937524956920238714426011495633517712146915012239631414875939501102842433629968823805785101956476139892496748319389614768007694523670725038656262680802083120552282887729602274646898641721607208700337873788745258351073445912914515295314034196334709253354026584429317345002322708293581264503319191280208312304231563765424611344525964601086190317696037595458176274247795224697828832210403648053368486759576204430741822861016862499991043594263048789737718231680824842038769569297450972754485512220881266045645245918701557784993328708914021492404966935542723435437934840991047557491102528751348183411916246842180430921980235227227701429585470359632557816424388986200369793965635072127891151887062421409269050701959270735738423855810884101285769619331322349962271058281268757334335461323902828955601776697918971120956101787958714308971279687640198957125708314572205851380855699727021448502209001854370802647198376393787544103834834797674601267554225720514871260562075662042413222569443705077601469289611021293935165612525240136538037052188641773352681250024217330750467423126901248876779728275734330519777680688982844300766241144612186470581809209882395774499726836820711104007971339205987178929803193576260101672560072310880724605541299709847126118650996581307810237101242851436584811439734259712403393594032453891982490593769042633512837891593151383875399146204141163761038624915837554824285056170681610869039011645633434856785876658173650837162052365399306084386387194569892676880913804828805423218349044372437235682290003864206397421376098767433647801454784302168586973057498125173565725601763281331663455603133916019538991773494347604372785604102320749903555688373757956435606955471623190316843959991850713677876784470366463320066935360841567713597547143519442791271064872824526434612977021066081050619445539905301841144477699085116614783541694533020891470315531561766476856424983779758692844449094023583112233318696726105181239970897786555343290517384615573342329420029508152563971229482551239074848076085585806527771607083552927087112940312515014460496260653040517295209085816404908173666723646385501110096755223960736680758781369794538534712153004995635616080018023999423822391133374409344743263094475026872122487862736228006814754087656888698021644026700509355517421192658278343883799823650571040318804092855146044342927687205610990114537988034573949646681069786992612976151527478560800749913797616198584409471862529975974552047685230937269391952550171309362677532065332203626916156568257083604693210068269931540379629018834929679913385953522434402839927810551926463891994291818969475770798285605345642933341613783150150111337681494943222374541772473900020180795369250389346671674204590999975750247718855792838837712004555558201521375334527016934875487081820823433007832184843424336649366099572194034869548093598246158466594037251289620957041539472322900858000922199176997863588340587433665369630257668454730742125261112428068483002112772150915881924488545599715696037171960660083163865676708412993367384233110911563822762115398820102961371650827942742247205015058862126921107255925793004856204700974534106785622900834380434202849001597482501808350378912126800551441923979214397748957199224329341692902990468512029641647825149236223216694682326805280943451316900488461669886068797342636118047849160492102038612898363942687209061783402533717105264631184394036282046695925663394458809701575349938410475757458031127898424542462632220273373796702182154078497092821131057613865021681326685364867081574606534315916564282546232389961661326087665168202437098906364277967498202953178493540326587676358160860675108797873033576424676248034150093519861915890605483895654966943606453150009535495472889603916324134839145707185454609143526370928401552524355539407083322275509060593748422620676446275159690007512933731492721323909733619130540193166658570626207649819540484435330572363386917864984930761189267371938975433500799953895447924485996798235175856325443407994707885689984882602768352464531940332381216604165783502373017959432017172900655439846604567581352584652980636186937010219536839176453322410118458582387289568424039217079189700814116145779779389445572726126120776332173381560301580969702720832315392316181961019126822494350284885772436567377713061723035151434854549911787369253188558529929410279626434977094106448371478026113476451689249793142507989410773322634980158321291894177685658954744552680576065652058605853549533873510698651571921016288101643770313519678726939834898909033789443994464303882753516347072740751443534114675093266681127309807448136622600917881329406926656162528973803883285459241911587393928387511611831903218184715740891372282459346862352094934376250983001008393399224131201435484009565070551408797215326967361139069156495110827012976655352426688048667124171649861100129335183809394890195451688784065014316060084764355363038924230067566340457051165373147550635360395988740411763208202773183661792682000149530511633530010246339089279925705526146632158141786374965842443122956781038479910443278789531565400735406337421479710088810842114850004974753164531163868894430853256842956690048303408753536363342282787386403927463232540027900074781056343816663349166421932524149786844420944818095163201321480783080934353131814354493067227181555412301561823690991336933633506757327711183503783158996684655438196762866930710244817269116189683254653265491129307344754454557459671700996972450368233779723095828303964084082104033882184407173228997019330493096497150557873320970113732519747167144523442216509710426694240282437839450310500915483451511342065877203969233170776613235581782778374970791159160605168586461934595342060674870283531688346447995241322606615033510417906587700471403855719918653694500029108560015312202866441476020128688405564988439942984779721468076939206184593332240202772978539320081990914425708973296351575378886858181626793981804652364937600180467576765855125413054806720944882244038654884711919138718122111689854642944040849889795323296690360040807110853480485652703401037554802487211611670997233885523115428151772596735734343100941890289634579899384541146052213284755844486693517452624578143758456763170687491698585553810289825354670976664222402080224224974643932985658389211523489223591061974678782058137779145702616618320631278679446732071033513182780561194118012262928885938878011090121471246342084399307586849863536176375384648486079584353776628597814734141044359419177839626840514202676137778925951883469258163930073464708021146968479962147018106949882757216489408669483426720843815084954808005118056405198244246383978860841560917672733510910510871804178404271647976492511393203581423524908968677951850649783851427281838544321241108862416436752012828520832742228986113644983875159365452595776030417068403000494781211290925133201054909537458748593936353367122095405090432710109570040613700953156340641860230506333374629646322120663842595311309251283897175014958715481610503755466674427901685602207664924925600577325613247913241395491452189576035607473245938843876155435202478750167181847476872305122670514685408280805294478611184943427311965603868683434281132596863961916099233103940570847809535986306667436493538592843686454279883066118582442526601480079203720471158393784299387447290492510960997047300302257606209408944016451434771743352434165359991696122741364998701598264608986438801460767543818860973328332133402070669792843692385931650903850859419932545034836654539246278680827918799162167085138956819747837309090130406972507732576147332469082647632073088530195680514086156206724413251279557649226319376099196778707076567630334136043462598618936693692208561823726368301872335492795771480817654153240193031414861350461096349524270075206028029463541296933817157221428644042258647214483651148267986402149792579937427622246709700740083946781509399026600078413089168585812944705720908460130683285811028198941437818641688425284604008325408703610039093835359493850808381570403809903655994856275610258419305226141632490346106944613898560077904824696631260572235105177595997415252107681329680163390271930304875318123939913186483460369078581386582834088630557088521005175629998750097330984545105385947354590370884911871793096814576029241530071930025243138538921454134395553635906441012450792461791518423144126723853716053598116406654202346885253639270633332943961098777864384768637745051456368991685059016081139073577152186175691258038046550495566659378308362959402673481644449913068533616273859974420052947566020987544367338738416715087208394997323799806808523818937830195163442794787289464748842011602959571041853622049083756245112719756957006027362795665604902145765038646291073153810688693263324224541774871998863103373213469980854656735575439459386151651963180241456197373723731819669995023300406470696523808129863765884318483528227185752063203155188513155123815501201777364714876718739863038189504021373815880811070667515729098501640867492854748131930001347848004829829971135677515776308696326315504621330113331743412277373608351596864345212970646649200912618972712742723721088658829441710178754093340245282348148732962927716161195920470157889439360885789368128388610646474836995383692534505452856122619863097518113480058273150824954372117554630252323033863968598927626289640234451332579576861748953572037049813003853850169920356912114617836766929023575065011726699631763675611613122020587823444226025301558164595541884107636089921202100239712628644495354108939935623053638536545301916636614595517511447685006497295504613698334487730271222660449841774704477519333331782837363724938537634121630669510303877409526346145545967533256066829198807424024453979118834134230375664466376857127798216536664018845622550069522859111356493125721042151746399827406581752696258551612314707995947208522614324440471792342838569606247038524514149880880641070580212148101596039048662674514455930595155196467425817529044292857250287023083793303376954054333733725843340838894265763819779068931622122614023817742077352415244166646910452315761660793813621432449974712642303486221496393522109902737237900386644724051372763496028899862877244679056870273645129992651671454460890694313172011668278748373698221162664518136553631565773356823377189311172892188578353547402927563344244289168339904716173772639731671260288512670863007670180974176467111295304179427420001636018693379889469049244962363572109124346935083668665099064678265280137963483926347714377544614373018841944148941718091239373114968991600780504557737873039233815281307598628540868271989586207322569275257676712719604602639675544372097102796889997769820016500852391976321282578958288280474688225095656929509010142019003331538376343549223736528746921054085130788929723500047891661394382142957625952737473046999446913668999440044138988746887781636466087331246302850903728403974754794117609110398855722549576209553218704075552426683599188627123624759452963120214334010516515899074650789816567379791681475120917852911367441654663539766241740679427534410567072151415885258351235606311380570804845355002789710886129792275335347883819452784322645440360030408401394821815425814282156689566697339824581858229548713647091030774808628568979913846399634776497434941277469980923402216496605458354986376927050306581935317672602437668272289567123125364196931726496567145693366195470777354085906974103072603760212441810607944628665864696818582748767233299540011824974472248724465725814477162859414331893120075764814240358610201788750972958124775301020667817506034643734844699311735781487313812168617899712120378642308990739682934391266806992112786440193923999085754209040597423492213224574316549692019144775942635888911836586429468105940900206871233496730637827835280653089777656807635564117987984704349271553878796993342715734069751054723327957423688809094626274059437838004297810731582877337737553385068480052574755004483789676466481649868455800966338987554802228034559735576850198827825359499916730477553773487821936205132463950852797769295698891393004182671270996544268107900197675437619074364008262636507837204109287080730718148461423219534209561865433449199757715447762636175590876909660371624244420320501131395818138103029811989637852579236412327930651403215013754572073187329384898855177564345816715153741317444691799086071139001634557029715726015026007283029183242984946686949196793719678441417396330594847022458873666558877387117310975382089411122815435005249672734687114587558879351019616595504121610545049655663649614305992352804393553360186129696819671163297189860450095870341926847783484349527676516156380724278677482363775671934691868111990996972158772205120369719580140099533936689793968579862045002764282655446402113092138428943948634403165280231586760251909110794316796160096236147612935580120912913013419694978660394086054134943478005039166513373993158976455202581838876778617879041012828196905987524658480662543274343205313226512620583767285290072036404764994631317234629969580550914310245236460327867579532962656115278827905346771842162409021156570277328775495949751159438302329983407523007642513170759083737684394782848237325675183996331171530775168882123142034943944453691266948356622809123550236158988909517515776474559490326332311817754525287316281385334912321482944704896657279023841957497854518016970829041908389282393305586077900713921843118867958394471614993650915030641155676916410303008148176985453608274132996076673166473763387455798127655883371463570089013543047302966026249799381990865712245661399894478001375055076584736653048848880288171941555653241204704082575203773217708159284975388341833176048509067555514929356286550693279897217023367785572838918320771863587560239926893770011816228615176692505149129277321768186849243414610286659848564538264918789257794721606513803732249621700551187577758824350176730625815021249441620137713548914944265503004364509749929385776358461194880400836640031320039771779815320338478214473436923377363326576744310018461730967093385366691996257308277971212462891922251610308434175865139445086363997447062399969321680155568281920866483578986565799388136933598376222104765061633801169276735379794702018969362948756744047137677368748842493507134709248898212128379235137507291550427572926732886237688538983760972311723084416324170926320025155972735995926409597443399506594132960898166058515990936570786721453273537339538760848383114064619111119491765738856948574969800392301848319552311387536288866004383871017043781127117076586062698128004013041343069612297571040737445799555871058863114555437086878478726370375969292277341569089376389137786031657697356097173793569077811905448001564754458716011522573397530608717419247517479417961909515484438116885230065408773124470766817494339331991285367039239646989734371215847043751396592257630402845457987100265130922691426490643640466652867428546398489180460001646876395473282567205922012958619340479866501280604684975828055761298516432268315472969530065605054128050365337325291795464518830362051228466600722839131391672911581678402964744465818689959972797908812268810096720677967409530739745149910752099401604281194851057909508279409428958273503360258144178297469532040484949483401403190147819861471818472777487056106409503906736773610045888213285365872855827009785033827587231955678452170135172714020527394419308780834423272478395748865789443366787696981549110497654801956215739915105797718404457520330561823176001944827038856352874619192838016918567746600060785479706996265104069948238831186927809393635402466935436526639540416445624432162437687892907536308869775072252138281130249980453524978073117297567643858874286102648894026680379242416043272044255922648428789521451622212760950536026801723947505798860642354738428747164756193685442700018719717343114507507192929702473574693905224401769573293035811432430590538917993788107587823934732544907342054759453303587915836332210124070301355440380615063431650411591137353589242583662723733696406881573010235677037017939017015990357570542435058222302806305619351146260000689173397573200200073893784533426120793721783920030509146182045866922534554775828733148150265517947496498082723319588868608497954876068569778133493717305978981699941876420681461614104169093066448308964972358821696159717726920274120676599358412516531035446941725396160875626811888509655276509595105728587161239472765866061002671402244053521322874353933767709749171659468861895750885122500016510005656358830153386752423161919257176203691239890737469071788718862815993712261025239309809749565994149897942818272552863260060052059130098669516277142642523922592815561485152791429905215644783697576264666234741950902671804118861508087967295719336910978756904886595557536141375000063867667602426598378983391714204944657870025659919932834292807628938669190438849639869362558393104864124106520078984323195574897734519937670984491488925367957890730735816019946511452336152811525296232679161458230624969915970742882683347274700768401234080189433028228595645280247816061630474286973942016069395737495294180000508313521305951427264381644077789906040556871987643052702481015191100255937034187854605547111463935561413382468982859431417095296211564822124021461260808115987146165393679837695777262835819618709259477876726220404523311321329540815785475926638608600864573459987965715877372425741845481823088852229573250282636640300062079828939850527151429251314190330478447070375489442552570182579097216208815544964401976711879637594214074962859850267691729761294652059106910017503720609077635858106990443928392909111462223773367726055031959970130071196982622253000516121603904565080950205773230518501028036752017920408753511020072130435002205874168496734755910252967372027098259555859407923385193425198952532714477637361724166583641748790483197522243357934615375158015366441698802242102305208407523553383347707910505328217980017450330814265993085752531058511592247043739703505591311872020882020440473492983742801200286096270637422693426116701336240390460791786058697565252216687081999560528211986231705691129023372575023592153382830211775833522123939388471478119165801646669583923844321956181211877990256594488777062371813086188596837544484629350041427997192958484317445815072788658567871755938523561440550842495996290733970216236546206417105516522973361801151420733826907725626887937332529093889275873010034563926873661096443486176481935393066632693786864004941140792052092509621171261029463893503491716915156854913198020220388698657597388532013435204981907911036844702841551472190404817465784481119235411258845168971634217110167676416172521820755354854295776703082164905886543025669729708095107315227635890599844834129659087757169501652493187542828737680170670087756387676789978833406608178085365119966415907852915768701299373521166322116982365028563440161895274452341391605122959860171065627797605654916221199918249975138777066081414537640527827565337161675949889026634606101010577281501979599020991654072492738658446753502096639993666880600025722400509930039378655860531796700642773851278485293243584460359208761819876918448177843072687965863613961844805435249944985572482942517720977677531966615506457955006920491211111308514532052233087455717344077092666966987012354439157958889639401129743496661657014042014042500343846274679663223646541976794818702906035602621105687509169484177544784767546543293120134246368315811953152041566436198303105346296611176196986712297847192638005893107003148474606482269623777949573708429364663739544219071322029627637617042763815975371832041282664911148936823826578128058500683510153593747670697370064187529476066847616980536247929709793213947401117424577533071960343023581747649038609841570884829533275231353873674305104579587270628238464762283822717621339218163142936194826493847936237660176619403119563420308553039337683951799202891940623198366772653759173322014661396190666925900871314500401663932922455696983275458926490809796188685532066360933504028720146668158218947712369457113858491791835033522972001162154438582577200144311482116052089472951380915247413059282281803453161320589017451669513130590961587762142617525996100999165749443809761417921134462039825728113827438487859160607467680538687197598756817357116368709736968254864491380902987337596379865313972825767761713767095468804477214973883440054130221217358956816153851284148037765198462709603791827792147186996329505067492954502720167937074529794026063593039061701292535249993689898500287181685666438592303589756607965059878595878242961530996783787352816144726577130726344371191209761869866908776675603888508614586156752790149996327959230074063863935607479029834544372490182893347438553274218648735134070797684686273089636294293497065734321456715670775469671690765202947303418373471913528153714920434709164754016963172781965666483910882428351385735214877812566465818964442972344428444524958637153788473611770688471211577270169717065071429211166964828852396623467272104397959119925981369558599876501240443618148516683328161277583608205902006823855935236902636995224346217734930425499432573441879652021194533740440883419551886013985044748825715552577738704571175078613413273786315488147382506596968908774146000392045348645043251610753859440906532863782979156641050935130485111684787009829441638147453253012103338005594127810632160430595440684483073842035242390530741971603753871127501253781410807669844011363069502877124992043659363119199963269540132780381876852646867162743264709769456712838593524000834361082769255216542113827762215566450836463510847715321808177739611844839112136823267268171171151063146750146402257036925379542247477432477228329628393419071362015623545714246860025905279399234091041951537928287038353682260196291935077230750452514728689201608848411296371006637318230024704857240094003742074186102839639618724121396893484994948522161075631396440854931168797344405993122911595572559671045393378463092926515648351645472288946765896493376718224888902694817070514251174178408178467982253249003498636824825679965889344280128997286900486458171509742238186311051611753163558708299072361123767350362123983491922881438922887162323878436011914718169476368169924489130151738309551697801423191970247988704514714737632203880793609671805821544606991267560632942612916180117884420865037116587537945061720592876065677160888062389428490202323652921001993944900289771426668391632587026474264128227568062737170272581661164399675554748938832214625064374454022816703884499750293281791063322003055080805944573060591810937696325936750055289524384980764464356267952905468005528745864025252180612458930684179506149419589763652300432417785002365218783514081273160422305211490327986449181686332201029633166339141504851414114305039157910918072439232635271273649271183003582702740331974474529518028068375625362220833323114605374487976971899767636170022807588526448557871081872397251517068378124769242416882785452586234169194393101620644730113153372808508812474874320460682300033368000367121546971496889086513273029062822314864456378428306140894493729983133466188105983818211206197513474692400981583455998960278898266479188487848560285215163877589224934985106260932279891011355572900468603169244944271944422196282536053394815581098309935507141789125833143931797186015751448842603210471160206719816395463145172330305301715281076055652777505936616788437756403424722590836335394965799500156336402978264862577550830838493623294981454342417854524772798562834773577521929416883210863161880434590873324313415658985887609295710668938503113251402471870009487975801113237285963694217898303777364959399696177841349848277006202266672887153461855708076264408835884759907886468306432052314072785795156659354837946025030151553413789993890539376261410749712321243753443131122492310907310725191316189322177201858287795458129185495971379604540789351630670312674270339067569482373839922723836851013450339666767864418461640571326217926537353046586310057973613933975818898583708780900698095699401991329859217572103454700128757502177199139699925456684417522483342752423667859045911186960804451551832109769309241921257650052141515885743603722337744715140002935003956843941378019136487051184145051761283198565349625345576650906004193413573542039583972095465773015180895113903239050307102022706810293425852886252215987347310262565671122727036176454408601102361506056607567268964441446379741151748285428634468198180184882275291386448906886804606330849404437019368595461114691674727230202852528887815799047648244096373323867372407028284238015670352332114388543569110787353687475814272078518820576949546741378475449089965757966327363343646796732597370611636424715893508600943480014297225393189161481430225715405246861379699560957465096635397242960037773636879052692527463129422616186995102487164288553145264941033402156544632003264733975860909938518999581422046280429101945127310375557076693086025354052858445464278413695359301029694760465898877164307216759053869621343409094043010537066403059994033350717401872079700879979967081574790439275003177726140102209232214411424318977970870472187933349146274226220707625784746223283207346248318730855580439202340677684994401975675734765186208074855255745291979094525238129642771750313541746903511193819396698478630092487065820645349418469490915423707154728803092226247785295653343578251314651651648879580523622117395713532052987759209911536624637097320383725050675300542146493363561388055594893866946205219119640084819475333533735847236528105193345104725773102307975128170694473409951527928963011703328025076733073784781052015366610840269470268227777305368805316291324319470905798674652169475731730412826477498119154249891075264607465596860534129064194089202520896606960529679414553557168842659849953580513093818152539974817811240147631939459266415107005223944661305961841340646439064825443142244768092550258240829693857114741040012253649786538257295239735175457918320360299531256589045103112517396376395140599600495730387336283352817751181234476462830780512430271084699663552563327163366577259959562697271286604956697747870766368277873683905254460542292258401089684592219916856237161606171437059120931809027454319849158280660152339802363070913490439799409747364237017009808902865255927110755948486869098980732111063278849256261246508468017769455419881161934037722643058980379634903420178504232612182229582554017998430154985555503681137840308153149626037337528733505616914664565813255996703763648313791061854446609837793545683271413640016110618277533305973798322771082901504642475446734307782855337383046647500327632704363845057859867760489880303869605605753577521015585365929485543846035511691416558660835555203067854648755335139807734455858863103383839095120758206018721027376573349688513109251272967117345321710064198295524707601923412960509511631105449400976409055345705554583738657119061254298593807288210878650025083907788839670426740530674670739413580812037993124666227011231938564926367232019639568535594980094770053301070162425366389500987375820627521093937745621424768687861140213608726876053859353751953159187283310426581267061789292569033032072461773231826029081573638357955297758718186540085085571121223153333489483835176697510732345616376572617192484412608631931983387034457525615936461001292221309002838005815162717443405187569307047977541694030883246474398164514180012270938679399058037037718528235961897152529021900193941747381440824588449571084910259798892874613558703038127759219312927475854286597300570976465010479225078142249523630280341683020574382088434867484437115439288067523512817339959334688070967035782181088706762557366921088946070921568837858430744833382149651395851903517671491842635815244410583154809594241070983991284475583413130585317557486592331054616418414527083076762736997188099452611992050205716041093207860878319467680399471995589673516199714595054734679222862562995021697707826314367135946309964968038700970309303877657457830431060538913968526180578634776958963154718564988765979649246557076870943885391178484769793888229149905529033076060127285710558906688279425596243528247180357512034532286907324173798355765413478951836077422611545477229921427132656804966816508649090189100414337332793828149311246956905314280993312793956607001988857767999483612705378208831724010003298524265145519722096377543523405397506467076970978057761287629944718633506202373073840734342683556097420637962812094728797080176850802054962861213921265608975602804960410938751439814317562544702644580578033097936204069085605666034582749264267689967728024209251584078702781372462620329697009253356065689276997650638874345904645866469486335660344580375513492542917297845851865474410878911833715078827971272352139739433593809772395528786713202444079602242219847648099532388570529037772250318159251877621625819399246932632631682326712643171753805613488454032269464984339543038803797400826567110297944076924930497937841844394735633216130137422935525648964434545715679605130441110138417760213220208816530176688419374279179776415278517199892069535774543247303546422659688383568945149397647905251020639555095669351689679280979870641934643776941730318124200508422627220861997989489215842340940343863765562430273199991749659978966281162965522040636410802065325856401076831021978139068617710443348568183845176369171316123574685337040406449179689369166099641904286337743909175962182640706787407292735616270811279671479701720962908662086302284047449959930116368143506162047497510017406119382099055426532745852744257999949496601932775680203218210495101725864741357376592060266894376779163611560109553688027709055731190976600359954084661135068230720336091070912754155974450760732773002318870836874987301641496780409926119042437175643857903234379604745132519364681072845863582342888282175733736075377463332730358554212407999994181539726976244428860050089131434050799545862047298951233478591977828491366440050624130657241433358896280235487997435122172924754895694900459225131219635193890076592464285080761963584212579759219162797273242085787236458368660105657599422473981850852802364746481599685747775914875123660169673650140401913790967632756899761789568802421863702768332345360531948743809355023017009371288938885737771097116787832409876194015648758012351033365990713731946497526833589478839999840858122398642360051316808373219587838056511477862657750511733496225641656357598753946871504122611618871940945527541893410848473193936707492411074114495763539636178890794279805597264701398319346398555569204056263308114551034169397984637510506220971440301207293295704536334749014836214347915783116064716264890037259527234574252143497912276645065114883326285545807190237863220076083438748254723612602676383610008306028107883453051327098499284141406522248074760822489784433845272239354499392703021618073089518095095345678847098391004342752708727380377409592909490370512683626832410888498254096670020084147160658443880055967796071771151737975234829410581421292634366315096012618275443124638197004555212767048124633083897215452177475752248077538113550293450257622219758595523929151426790376916218004614643435521382448779719673364898012873972606967215745302603775189975742021228519228761530055696571305501351971551656061719088127098043968100349957067486999395826419042328970895695018061117003714664065592501235869664442887793191629252076775071843124118827589504017479656922479786421245454534072540468842531810293376450477381652004235142452621112090303457347785210391713724382687888757370305722287286175961573539355986737790468992494016685971450749044256668669814381893375160117797684172160199908455276923290578423677305131933294977787157304962335140286409895753900608629283110706333858085441243872848614112517432957394593385476515733275070931389016741617163391512659508589031263975434916849430339240842220774685909999787890980467629702230608352822620844170544773248469129605856879328305639724436079627402887061211832447283390963922373430952423158667214320712784988772310002808779808976077220208279211472160896938636466048333458855266737096205595767204868475452760382400027169642531920012491884055391987631072543283296840922246718020275576686121932961093810998117064210569529080529334228187831113480827913958416615651143968705134894637369662228845898012060827056522061217225277081773887439536517257160450064436084616741661265064804489629140387483782749511529340327057921474192527911457183826451346081800580225620008891215598794186317787667963530941895028520530724455010369774439405487723171475820299252734003748105416121688255604733537913511861416750336117959172318316573613916303038499651751922128327787298402433163844292262899723809170714067628031039794390729944050035873151152794011970019258573154560001048513701654083506371839257811335916074116913238342042448838993790882826247733297487343104430079534371233662440129944601505965633809483433206565479544438809924047134344172939202782448453255343070570226246256487007256298692120791209172634559584764169555824155217866881506848890080859737309344286686873925294970896587467366285528482655149831332761926919017754233361885452960033488016786243767507467169307553626742211718885030177275477585700328349046724448398798323764402673794847545613361912369289523356743159914454979507075730060971984028494191073193941506846398225968332428189419384690667357695852812802205043247051452503758471861786754494979971044825786174231018793601557172825473892359338333619344077310838071300457532217828036177690616274345041124945329025617590169054252337055259310933751663020614970352018211387482422502605756474675831834335454579572171543842291215643490182698152222191516768443853305126031103385915568202395078213813284624465043188214017510574160479688559729786641134508086196379143882090224247834968184284836933991829224019481517845531964110802089046224868323191953161816130190329143374492374239655551028915961977581401443798620054756452036523891260313326578579084605258954409594456760600111496082995488917901119109268427475183705293247464301720865374550753908108693082137544266118014904852022481185843507341598881843774460891640326631488693382605811301878410322577840091372735094234637013469908699397473768067769493765400877895480704457978389038074738808165950552527463583600554748957187902002911010790766957374803609210672879099301931032785236726880789510361077226781713345510817828647179458502168381360511175697516879335845556251321200540969593164399145741958280165825698948703470591514385136492833733809042654543761553998988747020584072436847816008083986064195529977932297932248996261890878678984125750599490505393535914197834074567336223133187554859369614448757087304640829747358756160371008309185255321845572987012647263790141616048779267384843434114283683281649102569985990196198123545834127104603930972230429729827765369885298549479966985528730273404262376021700244385226971303971515945885269352966384192456330811383775460573224810941487821321213870501425416372260935509559150230807625107035807394953180704221544003977474146524131601310970474417295337226453271630643057386853220268464108560452135113134073766331762106018636675684168886360491214353355392327261352353728755841426951469273756661410820970986003038486611003291566190832415776858212290338024284298038891535111729467753032197586325691642356582126003585428862850427668995415031485724816012565068597047967940077653667696691848050329778192253778784855252829840763464809169289125300102731159982141797236862906650352600463026905469390529761939628385943565820653143340570757257529289878244019502740122909867722321601122102233320511439327984469565151747174143795962755464123628347230116414964238913350169195987510663524836295868806839396922734959420461187804923085174522453872894649615908901562820829243875033221570702770419636710196145262850640357165613133342149936091961342863818939338600338208115594371928678777678579626281521356883348115390515407301255986215912045606641044791421894472129536292056349482932016949481241853525500708728060205453105604509788690642259617813612697252661026395433766207823212028082040860733138068968514447426541388506361115311624552770977365867951342590491825304520195034475288533692891898144546301176757625471689374467563934256865441225195494846229665013981760198530331114546483495241380827530078180205930133255956559798649168082749146007323587853818520690465183821616408458370328472838597312912486361568987908064998226923413402228635420086017351940795996929939787792119446281859165306984460179164426844919438991378952625868541133817809664124459363084628284076141315387448801147488894339780020874400110325751747621718572234227782915324233335612692729357007480836940093386255101288173142958989642237764934650260074950677902676262902110884703193689835925694965847971771914634673589712351238565035191171787495205677589200440050082076329287105570614097618004423261699481268071593244835177561141901292160949779825246673254103589226395867492415077592631786404908726717306823341374180294424659972374921577899874575137297729531347986926698700584680981829687817087490861723731369319826893565028940385721810563242277508958379588503947827147048873915543164797066038077275064610017217087661560433508320154762671206794333703354908764948688228227484876236035447295162619531550660668417440118437987060867283787939949578163594326664300165593306526410010861061770338929406978472365768364777327407299394041002170500393989476260355139486811413659316987684836540808538351115941681416264816210555874189805822583985303109175440436600965498918218913717068807251401562146567380472813835748711573727268648145973336816703759380780315868327223761637815470012845914039720145765275799117052386443509156188266764871820840763540819393895229636213711455033323902001553285740095865776622005754780066725318883952026385856484001812058313068047914250933380573047172306253704982003966617573810580061744508034016041129026897596091312791334425560816916408738654620486503190618574486950524556456011905231969769874577567720001940722293144079148444578823672737474069757807370300162110738608556713618626342465875045785469632388136822274532222372843012312418222874779016622476777988195178139340439386870446696717312198065771952872381857645244084393243961693759028650989362932010165178213549230424822342097326722655901058594880656366309410767520039772152177560610973648186825428550579928772441181794872420733944139221325411687243502959144847026992876501534277507495508688587616310338878786885651841360917478230356625738321389413441059493085414626504592076377978234362828614708825648561523484065412662091770189078074831348750279175670050261929012607637079368470717916105040872376536008834637145513990759684649605108260193546573280572518675851790336945652857480619101771477476726124883605887861995250265878601319377067222093320154940305638316981195677212979789470243906327719150225634902206907291901074258616959124170529515898885957538440393147152851009303354038781192806509499355104712814127309802717894167118814094868719070994822384538942841618024855959201399054409145178087293997720534013661777204955180527951860214618147987205496804921216306973140776817827123768715529605128988090472726539420504598282569822730419675982618120409081014422256531929606291919490243519485561150056518809154098247637915841347210579564678144664822784941775387433705818607633719689731691205076123618262668611234961359945831576797043632376868934855574959930522736938069334799632322897567421334314438439683195206050020549250078063297389824456593941923132131665639658259528090859562497756418852633349931542860497995143306586017378865176615147908664177879133721662419220380820362434349132888392407346320735277284647433508075781841120328455405731250972333155554668210184617707973529111712577517285935843621290070903744339080446222761458875600681399220339143657933401333177557143588072608452742070659045229179107953040142864271518786939703144165398339763755852681106707282400433179901818386724420837400094466115874113795111108135349528727325347213969459260421105403682710011079401703215910928845988893318646276661869784030584552654425346610491826513027284341164662467106153535222595103478172360042821121109843342753813149954567046814911784405914194927512340366013957399941391211342859637638541597968172899768768812963072812091518485228402949209953161734816035845914668856865656818759148145827770203176925500308497275844513154340199775265286840670533920585363000781491251113222762775393052517922747109295984969357501345136487538210705986792973325205380280278343012620748842371397148981108443903455407215249989600528838273538970296325703113619977687156618114789040053687118210639410801727793687001359960656491477156310456308715604371084579238173794722537001360882460352270418234736264070045177196342580749256433121803501939514253018959264234954515423313941018332296707194306472282811472888755158477790270413274794200977475248811558091711829596800460717803829824387926298992492975536565391491728520912481405358596268096217066972195502495721436260068560485530440740382011089158498970013303006478391248675672588733069583406098827126679965306735656637975070918604605549269145562499703791973083958138630824596649997561413793350051099221541666970225052184205200011795687445768438596863137753792412464626756273595171906548617403099647605018967261794719439271327358672029235923099746717020695268159403583794226421844562399786284470598142361465192692653152177090223037155179928858829730554516681639542248086277960182592156827527086115247616921154960204548897957608841511308412633373968343477864553770211573377585494242986218647372360958930054991228043814996651563056658579032035038250609360051870477423787570762507515816510001870481692956757703179403723262098255197320531362822768531405636453432080693094408111282253054548524426208211629690355217245718594155823601648912708119257876417464790293106154193257648084128940869741033120424426614791628294541607157695678859344615015025473346395013300941055001615334598131138986478711532366814005919912498834342945024779833865861730583906677458295632539283466149710510855363775213312451725713281830534591394749738337174869519612375569516237481703836934971843696543473749320684780216775394050967567880461248741882420614499944500501960718783839359463983060762729195125873970299525505700003385655690510110077555075554491713602438865250869301286490125619024600138251971233627841517502088593420161977513751357461755822131183778232167949506789286072353206945480318786860093124218108220846402607582651954104981978727033826891583091841911065343681137024794596715155584203057857121534094313108499523539750332123257732766288852231931556184825394926580841246421087199086540972706055488311901380104973044977108708430689162820477848274686031047030200976591954415751520910670708633150404159189304251512962477370079517598383976409913694672557542513316301928972936049222062258187265384872555034402025852569935030921957648531401830937162522383691596857485007225214285837793795874312947617320130830113311009810939912123552073882564911031526509419722774054897840762115103680369007077831387993083553942191633306000746297096592663290221147050885268742374901722014811558426237908056949550344039077474004449393018446313120296747511894123148645894026968694241645732260437537182693653344269765566035544146224489929837351350253829234202509384284952695682061394323175106417287206053562466920391461144770369653933853682369193078341393091530119268585123851751076820915126057810386024445269296226851280286527425352827810513004149341343685144171926828070720995805460612768710049869724310658649601893583790670611218193812101815187846984228002990063030179588975116202716388389835341361934642688387585508818090360674644497390092870824118224805091893225280931674764192178319420847858035381498730723110292453117938580321802734614171490215786946535586145835861181312317652195464879059751618389962336960816684738342584306458579509100601211164294722957860014826822539174789397897966414819651108570885679800565892704922148184308747625174860961245427197606061613315706291123021341811488076707828344192071916398451538310196858382084189030033662518505419210108617104315298518824162328039781242380895484636673782456176769037076930271221367956478494280652021970700202113477232581583311378351140641194641771231583876427680000475058376483413686508641765062860591833987022071317500377998742050704572089089132217455722167962861822008309167624250999451758907621188681505798245888914651490634694180588696609635744578095523881968510155088410477760002061612969570262019884138988238683032925640897252007093510474997604714762040410289155827308082751079501844981043825275580907996885700197896990301024999201628579172640625064360179459461547137455731430785545070067468221636246910526343519727391356040853149803782194029011935525686741015993572403974078901912815496739302586191186915348035242133596659533303307206682452366134773491310705530996543110938960966999314095897392180507154480181745744541910472834332512176706160443456058249640623676708767286317970839225514593564706329613498590637096794749459282957040487154158509803849971506687239703263399036577431595173843724492540587228923621483156855339255409965968279737579293042679588867519436321598368772031482169499941096213601930532564348297568117203394341398486479194419171464906711433880269600047975106820766600809335414228984609550191765974258832008166145645711046652677662225143181660913124885724706779507353994667516643630547561330391657250729415635485388367247180178828816922378011365235035041028471324277899847256941648906247502794814353788004229969155104185055247856989850868308542080496626508461069163794782601754864815020107602889090220869854311199734760185176710049423391792649355380372142229233633986266758435051567067752870013279301053446119337648039929148898249451455743767243642342564308757128430079194643937586264658691849622165812533209037571791116666419278916118945127495145427301951523066419455165078510977976739465791642859820122111028558999167518377455009569440601127860881199211811437838887454259886080547016925151719464500357751242030116396053159293475768179824663016442191218945837185782661613024998565263819624037791558271727730225805477421770349054850758172760771566798731133204948898836512019588576444300598560514647801082702087529321169647452572150471380144015640665974447496821089046839105608542641903992704886269719062632701948730938081481558631498910361517965660477059832162352936913797377185706475547959565590640260077630235550136115713721638589079665137753880714874885594150306748416671289650603806978113131579888395736260056946452297019996581625627584410063782026176331914020494736560377341968322030393155930396078411998526888252642041373876570141851908338702114687565135266585759733909150098398203922582316758146778117719539941876405385535679915750983395369764904467531036855624463630318151814923468621636277896435380250834767721798979240467477615869179560274516898046999876272277434137299820230306929621305646609702689841764114428398613840794655504907647464252350641684291138193774009980688891984867000731516699978827865767200650502014494818102319865363054875707658902239879251321970996930372227675882507766278194688241888094612996282274257937721371678274940333275357029450114705078499383678306409169216027849225586989729080787009300686663093794529070269670279814591625029363822797780832952456463996686672493033557826436613840391457711261801304644687849739588747231628518199602462596719798432557908626659291934568320285522162226543212405516336181845633948590679106066798778705768035037155774372553898273187793183788533476752991869671726461391755275484928397187192046451755445830678536182837791093272535488316113258882079989607635870745658117007489508271554314774778167123203928475945889619790270539679380774401179689200067837649125980952188328788216399707528294473265243671153179589872129264350382838413114779036581811281266291305590193490971644974273281092416810955506686598484590990493686875063955802418029631184510430242342973681174225639395630382841722618733467994130962995049883261796417643839901520081128785925538013724892261355150185451161949052614417531318285907063769401988882986460780526223126284520270140822589690535302707232358571626551670436114145918530002490759656406677285638364345908319159795808079552268140757054208932392163336786622362342377571193079361409589105232401764862803118947965812210086157802375120687858513405269929233355153738655880294019717743898333931207416078704462052393616491188530875543323437058496119180696200251863939460797029570868670753744013321904718753210996710498304215348144192597083805321273163405227993080469937674974844764618903110894164700212668695507983324342086455313635325482445319752531779539440183087314313122331513991027214664930341816048161418392253713299842443463495569342862825906969345865680770851254821160394429795381847337941778761121487716484313601315114402210483147241755650303753662595224688601379370295762491281411905347159934138427023594121027483549565707835357282418356601953545966378489981665190965720985016140806866963107361779718170825142436463545105435929969670231475973130375172465082154408186043305967743583647564522163740505827409101544869417529321871673190999025918887940734122983094880714004549017810216858189722411259710818833106259997436746937395711692283873744185761374338481975302099508234318547164938079674089548530060203454933186491035787716729894232632166402987037021960079912043380271495135889183135894249819906682810760038035459512049489970834415442321335232263372900032855514973732603433401019380095229519252395734984170161749329146309447650492945449211839991353970775966802299305225500665783449117801181173794746190402890335689272973422025923951361401596103125115774436278947485351502456268656561700351885760260001254907282804303795571620572393339555412247318585338193065509133978032276872895029565802468632676883292522221441971266538880717858331307104958689422963302575272373172952882246479450320610855215725794511926153931039502402578602798586813038040351649326560364217972997286696424952520144468158729550144596453889416387632382591443244175727267195536666161274058914837504211806248964372075653569152970288089893355142052944698641039148599573214790792716069836343903193112950512386941574166249756466335148554966981169988584246718067707415726313140664273745312976765021660056263667966323477072041512627088171789722427395547667192017421590714760588182355103765493308024792210506437710076596786844554902981595879009266287018563840123578619622943267193234266709026555719435853694176039337586949162921025721707708332792793786189439000802219866264574338095291154029187628978927042399575516758812133059655075529473814917300839627885216524676791024580216763002933605846159248411451967808383298264247464978007351726354346361504065884452965067935256347829145341866579226171740185213241035048177297240664150976016616487014718068370903471537530763017200660602301696131361830770109221891792652812908282748473716656491722258636447376479623125981164197461823845406840048667803799482708999918752812059347200876805223483115577837820572392521784514312546513703931146290824662176618823349089525260370717586486806653145241589212288209649018280614094489172233665496696884604232897212445562449803379035083669230204673845471882302618741138562239651572676053771864716319200580360269906823121657375420866761592810250155700831439428526656244509744102801417873356856863757245572826966957754037467317335285516968414001747771708608740079501690233389323720504316665633930862052894060189626083459409935684268832322864170809842882232163695459699809341304479942630008566466073865400490733357754501107982651639969118440243549009736032544791241854062293780378897030722680242428698125083241720062269536717373837770578285219599518247698424690082087847516342786950229950472531037932031465543410188860746687226496267997037318300038598886786259566500165369760609167563555224697118984029064093963674661527912887840341343704990246441535838748539506710781597305757769823101797446544575282545031147191866177427767584644939260682970127289977286772912425423729388592892403131398883385675513025960131025574541143295068680213865557566146065719031313305195246406366257683830891592752820898648520495798406246197519020048710488519353297534246210860731342584291251364774538887087744835870164079653577888249156062600522936472961484423698841766521738577714061269051252318356482602007930487061616955283144321719290842544895268346580923110428410769341850683965051718068348133672858827540832785581133198058820393993516803327568277656483924497690777597117776668076636824941975357910867666065926005464321979860262240523013743421173037368020089412017918452027150371785568550783368255509851256011632115956395586381753990304716153748504317598649610809028695328163584858716919553266206427886159908999015986584674822210868513349399059704083827302135220827705850051297437301493327672550088516965760666378022780928895752572794622823450220917106183267013918515307445325172843846006575105742272234187988382848608967661631422464990337269354495897861421797909352784668357417731279579839421183813913405071074029485044755164904836927657125369988656157038933529972069782389490429030046966865837310193411491008404609084818936691388956030603484264421363614548061551514448981597636457409158193706883346467462434110805692757436671753008335967157401093253451734984553274830229258898445454837307250204143744891869092844129212944766871824337261782840898254320446651372616804683209788819146742657291876414815370553298888718109113755277648776833238789230655816437589574156976758437884016611192973865460999509624946405349509846389546737680456591106939819693125959015977377066548744211709396679074554060266575659647767264892800158510578196205523006929722712541265783877199676756733433237677157917709141180759008910821513008290624242862058616745502813423691968456943760806912741672594259278453400250382112725360022716350217366586144193894141604830763339878412128564686604597330573529917381104361357933546952387421167867078389551505338793977868962173282052184130683905349725725133388564170225695830016691059685053576476538699145521303806680053930813000308575648169075635693262200045308690560604892096752921182575397264022403282066427318417722834487217772891944493374689542255216299375122965678701338544085619483087340407425058844575681858197546501343744301514284884923140695404454110644340446690811291133006664554300321094531490303127533034747084065365508680446146643566285552303592436012267420554540234875722523464796429962555170037348884971579174997475367309440324753401456795576862262749278638416407469484053521250389780896178646881771168687973855486055211994396614595929061760492582290024313105947381513887955292416648072373746009808331833068092468207506069270212647421030102293294342751777416216677671675046744867415022745967993676446879516901346259031245293504241671703916626620575158425608312486572573188733729993185617560419810430455252037871421035518289558512975563829378748499599628879946908029084439283681659261242275475351633618884850516605033687989055031844602665570270780950233359335418591445365207675301950521849177797495205239672782595016322151452000372836416248162076167919073872469349095677236064400988003538681525391239962321474701654237391414763718029339395176456253535764897439212603756814141845804564674745637963287301230926833650207631269442081102981383275428897949810840549166353941320574513250002023280154092172452369845417526268261697023291032183822350273827166612285099750895973234032985264306758046652765060411476904828936041856808489469575888408795987309393015332286257658303102477527293246247250606196205151092885207283206351612631608239046001376735952867494385039232519107690812670000281498347798659524595703441865536488676904690596258416706584904529885152470900365696899635291158602803778233205617422593652245416051200240834721459434742868703992262147988433897799206759498404797436927591227486143778248545333878660274899881364374223910139658198478078851376044611921110754512106597849930499188963290293264858965170039940814964779950574565684748673319341829146628844511988475832976298586440186615236945170823455176406297055396176129868900074600769466290694699801398212944368861644706981103379334160927688622770544487048022990766067545518120028228932391489374573463964998385035571261278221785840501695513228771471996296284040864733787795218091761354800580830847846004043528571563047635702067677788985679096097243639187323218635000113501086782684365022331686613479926878656376841185069859554198771953524326615748440105703947207075985010928506976561161392052487519102398661601153945413292863547008757923531682935287090114042872061429540830353401157277413739988052865765547356918494497128737653287218262917590764264348375436737006525234641392859520039371092858708063479345614892739481393823716390582973154590943076693560544119161671049035558091538198602431362648951623766529550806476713896357287667905727395185252814589743846082486913176929222004839493081258687792325224687326312543807017799632295527210824152175843712396327104475832290289529843589304831844461116560222852135681009520234533047761480223544484775780141128495180266628915282062636280902454405542726031627181191463385169660366054935696782575922459715930147097133870604995438092237751440792791067326024870013028040396850510157327645830185033034077858323938990143671306515240706102782400172177194730563233781324491762293618911029787650515354739553307099808671709938418509435483909358285566108171684130295256308471182354780626615830763820342876595811863066751792968308499323395262865173169905871937666506965845066700547745823040162275263541971520676475753020235362098861411161508501871357389187236132357615135756902236355490846745946670796783336455319548972515086342640578002149656565999501438669028116825830208929100891750182623369518524282113338932431837890669452493503363184334891861665573727320302840380883406848439809655061242024909997036371125234839000539261102809269819371409897331062016070967005834160068882259160234654401536996424615575690238149124623797330254051695767537444719727525118647161091004897377672073478019442183965491731484587331156921146645270553476004641654861079556626417861883923911924275136200992431727324555002874123379227010882365920162512088475395173805304612667449933743330828312907220048770073687761072087508947640292575913827430581086201453465755032440316624618579072930767720567206772541440647303336661513468313012702239461580218695517599678653195983850995789245855220714301563434932952840731355225316603299207124508770306043975017976677661199301654818681285575819515089666087428403872131621578866115694870681493170166971124607820520905910021049254398797625079247514459961468324163295809214167524487907469100403320066137267943049364614082608622847422171771570006925168874918510123688759189545533074023068641886518084301308937086309328319325313005704790000427205802213531914388292027521395363819914347673890449804941553941668533407481278751764926937930780362709108875861032579915869975575450195521639282052516234425753156541371838177942333475044394756073146750236143572993118539586466028465745691034704992094573795199062528954197607457318930878460478549264066719131893631609833033138160951363759307702312666340582374480222096145130293019545501289451790138420612409739819713785371393224276108886511141858374766732850593034794753175023294227900919097000611200364702657714146960073554379609613699706524730505594588936520144551150340107577036190665602686041248721151365347577276982111848814110464604082985116322472160802392518092329824828525129965998420236302186247325187286938026142793750247227020928333913002475068295361527539332323833180010507744547378534502598085488148966358788014769143405596690984707118379605484050929018894937822835210019116138423511264743260501957683982114501591238706674089904856560845050563709030501782441582568906561277923352960368517316052970233255236378239343895727380402051331160606994238405208741306586342362037674558464895853964358750114583556225503899722621111367147032657705066681416336141037684012837315500543187512729940597177830001952003351461812654657878792021581296745686004816025776112937442148763762226074122024159603372145538205110984820248397901031113126498635866908115793380412062370736341132967525472402323700989277209305102052194389151830456917203422737180048503729907017486477015345125232850192513337952563633235510716403414377165252855675457428521246427941247055025957081491297726599103480595507315302613317012622677924877151173965915458320372337646588672047266845284643708538281338426429849413662330997604019616900821907770097560226642149696143487648578298156489636821714413197310113505202490154329623080087209307461039239203204168716003313804136817700779498389520715451701040051551833279554350315001702849672760289947050688664740949698713231994412528745683413978519920512406281760291037283459013136066898418485367406372238165940302599098984443737984632115060594329258527120932351006263933768738332561672957683599128887103618314277263053151138232088886835415583890750021771176547646520845078408627982137349017168383095850899106471116535540096499503866815056106602246299579664168766205687272190126178954924354913782721522989566178204091045950789670066648032060256166629182966129842447746480555078590477455358898510832130931493334810746461789712437656044059608750553028327522246708161209865733760623512521008393922883869949173200008180899799511281473198670932537981726011832966366358954246906313405859380245947651719010317336067823243934480490804686893474389162236944301519310896872135594894381329990663630604458141118855524113398151055515699925644487726293560391179521057359629933678264453833651256442394831788988556760820157534755368652386272379158450865100744885898850634016418930371026621034740993336720085603614397277724855311026189529477082899058486247642887593761756646530572628268199688033143311349712154157856911628153751954874152126283519617136082728324297077654265188016493943505486453054003164951023153191350310566425809736692541184542919085597537153747274711003085370827672070074296157312570319969880979797814930343627750327882366791926389644112586551102099679632844228758434768926384097086014591767945983773329570157944440931130975331770722448239041022775702721355127738565972896087845149747020759928359156370907969585178847921726540750944089775148395604023479685249293904435372283442884346525236633664550263569791861987816137025934342388509768078636636689385209678926928600458790216708442181349984683291926478322309232362540562862088620726542950915644877799428748251377621649571480345023015867060663402802524157591593781295580830243721677150411957446428276628350195546529512175790706344433633095051214168781857027431230027185581792309482619058973024404081164771225176050822493489439583615850585770184567736335560407573983988044564114718705671813446416771839406534044927925918116389820185161007941294220355271978175509321664161289326568836191743916602783083229708987415190272126739963559673105939665332615707626692285718756215090425867596236280331501466833653551558178682555587841604288801325857240379203649768099374205010659847510576194609443462232095727418519724981964974627693391300094737159802834053401554368708502773100587608619869790180887192548756732202122731023301797130714870212703340102414533428599156560078139280813615675414575032477837505208579232243852033073958411784465610333091663789606051718896387108837399805436921129024490291567557261543851234070356101564679113445424924522722408843905988498599964986357948415000215526219366202438376126704017690568264609250096020296029060437191023467114673647244709603599637269721518184960258323475224069369724641357601429623232916765453869648305542488857047366036553215194915130272515890211904433314977007091997354117986590816824508721505872983637130431581332189151618292495140212705766675390125800966937532437272210157919563770233609450037183096667160880873399655815722672807838814575767816641447457737964765753230837548708941061407524751580437117393075651215435105848477865267939545814985710269133718699706699904268023707493483665092883729280093931769088596515886502953506752192143416598404264375181658851871021605948050496578427206660766566512081341559178785223793751034713587337180191799788438356582542774620270476719351147840086675160574240314296585235554481727189015460541088453845634862051997225475835379102372656517440790781995498627683500200397431171286972748790605752227395775213000423284338137033662232651017484940005099993035537585314211287494313108681952245501128856306332858699905008931658807452504017143460393875814825380149790486092912361038806836792211537552583238109514555682333712151096594553712162248085478440003783919306764811953638316553327700471544670439309942701650474121740853498387027274310723272793127098138444007924868130148964251961540393182791712953118635506723277018393911900952986245250160053352471223119706820212772106917962213909366774314797295213689718754717980536498696074141283288277655196127493042785513257603430378919987484467463908605606746112377446940706239866099402957321759927340416112613350545679065366683762959089954238313668295969433182104238250528264297843051757892559807348832307777518552022257944528574720831440956360949914097149297798271905304972208670854512895573792121883931118199377891871413768626455139881415315104141640464930555714578188877147950905134283653309606057462877095968873293239164038388219214309905552470687985333511479046654094766356322989707482633608516310810967578795083623301440592491380691252065301698405574278202453901553956113216336754458889154628240249513612199913235957936309080178971972567269358198596350458776629845102662039109498660545909641059707881295152941049938754038082167722614794144564680809374189177237964983078930682849528599415720075021449346961018637930448329998719646233482512129457611364439461457648508465437173393909933633881408293458802416124888523087548972884957932700554522659819923900017390129053716492794434613050459548222574689284250371626458105688097313910077264063515466889564815170934905932846062820924631908612659573339640009322822037945657093266989426383914927321532742605201804341863367284687848170495272872729972750027731488879636828241225231823503434237618727633337074550628607132157940062842654679707479237819955412196273176804905131768916242922165929297530327230891850411660892630641388921460179770590064398850519776223856266629118321846579560160678803311086651197839156335518967977421558793157448485756709660610219268840044843298424887548087188431227495059185640889016077096408461475322120129355221818240794703147189898972800672327815997898804213523870065471819477307040951038126257319044544258348667976743731241260641640326357143708786869955172601095117468394721304682387043644730887033327987526680448041681055879929878135096814436714304826813499151502115693905934667119127993867002313257335901363355399381211615209823315250030249997578578514710839394140379685665066747972507591774528289995223844394128987875912866119693753135942444017075683900072617128657460656577508022055857692354884261349542164434092464260772086938291331107105685896016236622525989407530694201416769094718760748844609350929076394609913027435426548122871874567145319736205299426402003420349859677605490252932092601642879695102042778160237866801986211940889172792678487618867598526153773914301474662903836709084952911599340046293282814539974737128814054378096201577247694351477514811451887939359820838514771964487253687378439873117041110996194336334961521300045144213584616458062784026342493176023992319374960840461321008574679268316742523183131675281078682488644950836266193035910734956311244673035136279618862241495085593864491433778076536933522047304278322861626245200626059362225644301254655031945832335932374410607290850758233068306526282695174907194407477838733929911983721131083676604213494681729086630061921914055546972371428721470369610442910465437263199990049321861569127349125906529627780321555187248899981777041133807504837030181946420274517401309698972246572408005706695803934937398724503668164439177506054145723311773305531853785525451604137184318967966367911353664902308035801308478799983092372787330681089239811132943239044051810657380391242589234998882206069879603874874990552353640869420441784540305804415243056955602412875180902400695715276179516967081560758856805080852140811984009324546922334781103818600667132455067880709071793718691780419702891487091583913744627694795488937892087171062443245754268705565453878722515329398893609388666596262930127291233980881071563376394491302796134661413869309834152548321228625866249998269679017708143104288938134052877396719765635268618932447703970571606591144241243246315770808100610516819148485160174303278818014169536174355326423680308192776946597564744006018714913088134010546706531005803856310321249510706454197878007707118401506962681881876550386471720898574934788018524501168444726527979683741786193884291601518535074034293195212769935776548333087014971932345654685428121883266099655812288956586409388398577933196364724961979698978087126666968716941143491064903197517973678442597291249661004652388486871999271808307896129450585067587784340197574177966418066086710310433513365575453727939658545182982080243523376043364473869889701998154687423191309555481584761224084200282670534875398987835695285833792686050584441430993566556582135046662969546070874822632641757298004889581402376351534027728920630910784527793206482311916852100186616476859544770837467572128042079040586021265138995825059701585496902140043088068851353398079353381731595690658201567395947847848964652829915233456394286478309636204045976394002704281691311607762071020637765820392266308844276130757556688080335245226738404852555310291759136280906125331200280551853307584761556830996951111741085534696428964197602438260513320861144640624891170387386540516174460261897720432295392145050880762537361906164687521464555253841554270109591853049855821197993404755477725896134240541954388192701864525746712528079163075537473595694406201101342139981729061478157867764562713541873705608426919777989773492535414889054761345833090016994326349815847394198775435645480980269526304954353981033215413084299920579268380373540368788300719102309978397487623819910718193722549347959825816897784090059491670818989802342314287045813429831905461322307515005758610863103085078205010032061921482296282103009089127921956407731456757385415350774464825473978577501490470103011562147899532957355001243776084746128810294367028260367479350526472252117576646838128440747615916602471755954096488803978007409676288739101160694016401105568008915509896259615903009424291593309090980154750322074965496224986594577097411546093704843318304960840358684114550898534029990477623940780939818668253170043816893694324140994123555206010251584092461734403142507746970225860511394225341594263476617783706756351293493351913795965045102045852472423181828785950029550235449006833115061878542392234145194330677297353681864510906577591966370379876371242240740756390255045602495353459780937086547151660225656658494743454471449778259605645762182855729185282054284102944516603395496542770631962991534333127636450313055560342889431366285185554106066884300367922609191968958633128478907445043256325353024789080556642665106958487892565240626458177169774446123354876245831144171449952089733598342807085710623776739718979574530515852128539600178516538865936289337544645820451529475663716601239596311810947512194697512385927595867129985837123552999731358416360355659347514762434419046093927413649457604800892012782202357377512507719681130816733807055920700587931346208470682339643208374830241832344027760701912086361586140162670685920150643555099922457688575379845958860894240057208827132943918576588772586485690526250253743323055581360961376195378011600468283131700540019707954467874994020395420234936315273017451560269135405315274305484579544610580944629631292885762720933133160800322317941950822737916621730164054656916777456030406853720346942869458890527383737804387062036723636526530192588736957545844713832039317152323903091733822986711455187856303206844919550908089855985328833556302108145115546550857279799906276367752824844520433678824235750195290662382853704977031740932497624686794026983281355685858452799559328794007090856108345574812213253423716226778652229825797785219283629777298628654016386353338038123508737280386721682412905745966331356149125136460338940572103728627925652773553770913026707533283401653448398347366954928481133919236763817229447083735186997626494068217442207835359966355568824382772367151736652473093021168772340681887706151588882460325406382583000082566114377399919272248687272040113402529979117636717217725078797931995617263474669333458676743772144351497496961686671282942896041251168667246680835642171498822831291400218422348654524034872851790737592403306168975981650926820519312371639600185261485663443137290868284458784658617607054678235916846646589093609836906028020368839268488733808207061226990747193780686140457849240888826821251870751022355852655844677220840165958576099275973578520277511564183295929489760696234450050019956521851538069847238662832679167813930441509737001455087205905813628869244054950651955613157003898787469482750492918260397419808879011232417367857004234879818424227870644032946517041670831389288301076664180985747863544187611687664812824119871205827746926290659648715579191937576630783961030025669652717488398411626197548556166198394802411173770311483834901095453553934049992648878403765317788955044675417390679805170490138957568088380566691566492955473157717612804269622939828225039438183498268429559355824452019861978168980725432029412464593614085088362403274097827300509607101554524558986827714081711108760316473886686112673115252722113665025359283082677142157827418444637781437750397408242089826186377800228429226099779812919957226245257294335617695026754602552667670763368514190507434412131292734036588361910630991869578273109185677076144154644647174625356415330643909223747082424235374584863011278552401005639307789093120804227975896982086656399105863316408942294414938756049798482689165717301781595815030700192514424347695074570170664520897616417761811581203848531410257408377186714053353659591103804583568726681955030435613608782705985898673758324082864585274523280140614498973680989962911788304822936743114878691734524748138463883508002778956925386858952419772677632112938593359790794242930540057091054264018872948525210918155752269909138325160045606745925477601897455222336102408244121312586189338036588447438323581637596532588601063499069330560623306008417816543833768814133800358595202346643535428727246509715502013905078567157957009398116346593905482328098870597211103964065157187637008634946047887458867913685002435011394992425222094261701116565207302815213162111920217317465577032035405916292916022843815984892654353940250394038305382805472186227209452017823742747335912534017088082378433328922113486874065617055691569295641507991212375309308929551733741844206895718206226595894709504280888866392747495082194438510352812853738067945465385135793285298353436458567354968213876919969706516903534980092579408996896036513401885418545392823349590282375609005153185096973680327250654050995436614101246425992060852033526849253701728408254347320124680129062301398241318855439179155093337515848306915991369725323477769848183880618124176455820972351275077061835728286219349013591323075560420524745129554760577274638789567170256632398254811933638623365903749660396318611107965793998532216833623364767327369443683697340920570430857421375123580266127738333153099729263619058105342075854584610302626128146238631633791977918608521317619079222640030867745885502998138696892448413210553734948033158187931379842535476734023644248562571469925757704356462454375890886525660123508471716386545573043739979615430709887228762464859718584373302973202049057092451959425949600761388655980883520127136054356648801467484712169940558902238038396563416129494830749530086825680031525057892073002966575416722304088172440827833454067924819394160873011537796999618643815262692854477430594052825481636331870864762543525003097951495335635517899504681789331851279264666166301779877189432446689777036418894630917899878345334876073912281132486603757987273219394719350060841574430430167101951177637157540190888429570374744472521135472975683910872986428629570991432000383022684286840510170718392137605695549254918878303886985263572040025793327037931407870429689566056881764647960096929291795593083347069341566834220637021839435335270287464927995945066427821449430381345198668103390485273487847491065664406009017349535050301880641039997867974771578405550434173746498755871455789529124205373832080266148427849010633824988577883839744806101842497315185749248184313776760152117453807833397073754457687776718673052049055072029015664551553180173516737656761294234893123930042452830250970854622126164945773223486932115049985769106747284390905977899749447353364136800928990695881463058314887910068701674046268286897687521009854792214902807164798486499785709337880551794775368420745387246699403781914827415829688401059553219819096795823219317829708210278414697892694769665234620755784297741461656996676795905268531764256749719521298887103763742811145051380663620688524129123204340587862668663549517196243563580611827654167898486586519749822778185669660505227419406375776972088547337236698418473485011591831553023106733654563897724089747538228670586990244985804361643401911600367304804378468013189249635050013863438476933815333587093324984796934121444334335413551324684625575700505810150150060459771304703130063178621736282801922003465474622004316457223747608620380530994656107930262720671727896173253894140272901418035077629943888194900366588531500745652185360722592376378923883236439997507659745607746407217809897442812358447594763955270004738088952810814513123235738896780229167438852795397389028094272117739077762978501735632046381214755523969013388668971510878932784608669639319138119287506702827782144135433972623053736815987820267897063973015423270621604957457914799949209322248957521651347766157934756900151329462855169779484212480710745843309846999381487947620318022960158615771682742335644054036523747818300589839253481717279506268327791537014847739816010724544323306927139166213810793200229172725740252123512953808388333120340420751565270895410865406905626777505283349788336020340524383591672627992709704216889612972288706160641901151358758172619934478139263537919740387121111672217017353786795498577491666549993259720283513964995508276313162591929280237764721694132391988433569629593984739057849666534237881933937693598286613627434491474789936429152432247433420348819858131012315293759147870696014361983873214382110150378568680680706347796754200312348459564211212576086592558824022323405357564218975037620095831831213566086870391823616507710562887617858650497892478675135635351043592245699020042262089261781328858430927042291114003629691479106396891813135289779547207355084164845409916968965913989690639672290094599097669730225224487414066389412714712921996791226810097250447189178175150669047871430410709107289062935737239811491376133433916365128789823839477470918974390587434998416540993964923020791192774919161206561665320725668327792555834495004553923701980727715388292734581424179411374991134656882112505434903842032986138271022466280654341146310380129343376190498062240485426579336415434586058329746557084678452541380343922465128879456890581076429877637443199765063430508611004543545152443166079567520912429852709150207888053369690700012177462748091062904603867216022167506308318201728893146275988660147556952566959704622675405600252787178771591022884280853842842060319931596874176976701609184160422461598052745994954022540179359015823225515077721095301862689303694452554793231042842240770991258130437125043043425884299165603478943908720704263451016583528565188761910792876422637749202886450770336544490433279993764542588483405572525110207301636966873546788633002505733632290215401782204779302536128626184592019781111087804500216988427638311614974499433262332797712311611998931669802655739886020596342794549540653150946440400226821409266344741533439822477094608278920571480939577872411651979233308315365154557061519554819573580335655065672557052650702243268278018572101846905694535781951823500167530182431428294868861342552478611212619899012222184084388918271696305143920044820803497949718466359504868858056425026997208551337286817729793872454310601125833738975676138013022123429734641204570657622722237686612638049836360798625686369295994550067302619190446307265810590602383080443502276395971164661426168910601088012179506304889036392176448004216531204152797383777756061052888842626817521985674199314205554056484125538167749421448352329851309311985131461941906184883208211203566460503276124637957678625153341074484460202921041239999248812417530701968094460393779446446895314192511818294270126602133540059697850371994695097330786332245684593933862584789359642447960374940427309716325403372950490094091404210594757057453787909372334260567244716395741274460660132081620621340590993565363215037361624979348879782390857109356115135921281933677277864505524136587113879723410967985380093375686017547971924526742438973077902333715740780901624941188390588739264897003186461813496909065229206904826401808256840973664622584638361282223524336377566371668935047949261305923145175656271715224818797163860045960784010701349342927670699596923214261184512414798036506547447234674145808123954508800199908521190278735758292948508389419365118864339913506372318719696828532240930151612145211951528266964565264735944826285051485915063628211371267041991614353085058533772456816866442269347896843282886944019712127768009841428723803674767071870317603336007210862262017442449381685437372390340402153889075282250193882261643560371530970929650566609985820612264563358679078550113415439992413768249661457992727566271645159148502547922593914617493508586861920873616729635263399623527504405218947288904959099214505052039405059258440529282537893473290175613210850324808831201206174510679572772141435991636619836403783636009321834835202839672903648146413617276890339989157743816654106531931831997039742712411222150260080900192628989674425115546933594878380084054222068896783976741393318858217484874937946001244874586509001003282368342136972554228499692398937064530548963054421948859013652024008644402916082650591389941009705360117986264438787538577256368968919473492696384100099757476663064850370219603795941474363030458216865852432153900859159137397974752014545111633198655595366988551402294065321370684120217482050203642307510516948405366285518239756052125425528255048650613016128353920483864609938895137360604843519070510228219441902639426759997354450716670331915768203731738899741673346802851623406176521067258588554638985908495784999070696775444228095046745661972557343421923059837772823423908242448706837684739602737119056515779677163608438332129850199641527257010640429439694083137710153933266318203637268377310042100586743320376454681482997923459512899358277484993503009508122450063848769978115313181602983125754318106490181341822174449970331754608085482552509127241521931374827302419762944386533005764511757516063169269473658290950183292010058952125107969031990846221878259004400000135976745410608715564193590955070498492088009054836577476943409203639954609212147195474214900069412038681710313957133774324038061933436438848493350155941025983898770677697774393672578528793765348688836911770958558058595575499007054080972497740876779542450077676186147983594386486461525808697836981541083391963728302864283534730916858777156790733211317035780345114392861276237869112288078716531370215601306616794987803254741589241469480755518486068375475894957418383295042201722295103172707834299120148533236450590867668968070863223976871422578749553968926705031191555610610535479240409085163572882967677606121504161317573147467391087778731224659942997390994454800448861656626675057794221269195522644535969611569680015979628856647867825509442006107068470052469400045887126301790732930103090845896978371167595100047801280912615649950600563316564897664295402586417232158749990535209648735669481537754732860992803529198233786521236375553436438000420160735946735493113015437839581956374963477794273125556785020072635923851143965598590187713527104685769204652123946862139290316030369980179167585514309779712945342245967336985933894179172812763431788675202126965743995462976264164906149700835411039993860325569586539814978846396990010776955486899812566182944440236332704479025641789290083134007889382727586781207811991219006309726487243399821617700888292660716717305392341555809553214876488571619738236184426424711287526028844242888243216273284280918213595807355160671249630459487521436810841334431575614053595857410612440397513030878900903316818550911135235832595668421770860260240629028591516005349306808384424968945459336969247413407425382647430821153103488741970812190539648959426797652272268257540587705293585309208708722753197780094898433742161162030671929196920674878889844097111843502556496465155746593993535819688036341071255075918465366678554203506695299428390006279350650831219675124744868123267738457266987243149932205994305848841198145036227716355282623232433822189855853459146521475121288220618389953650127317170400263661837534594138992151625086687674589912615194293143697792738383016978625484750827419140816085315848811859221211591911801091886052987608802345442391434769172376992883018695915414766688643413168770912061212531998612522003973205461104613103901434361806532487204532382779918476216882725931270704968478988669374720087434179876040844043191741930880736886569664361340424993462224237959267384763220329889813682225301400708887145076190736136455496852993307544199010918783050529454382187809186714169544217629738685166894285052195343972877719834736308187816410219411561243157892929878607956218468796941456601841009781910871761767103882453810884531776779685880173987685761516650283419685481469152983689076213628833566724713178195277260285392905996154749996414852407070791411010507336270569163147859295899881878710830230910478008446726746784652970540515130874407867083976995174159971199120936765758893613216820912388248237911731394505578136601667303637805639180680291214043845944964472595379818632532073787991000995214886548867285118465597932574633697778279622728775272769770541431364816844944238587130929756974273419672090681004433576418085845283455138010661857431486872924896353097823762326335531177211698230760115683675551504345526535253468532200774332191013805868397587524169774747544169410818135601558554398083163182359032320257777165552113217418890843225717451376087769801568749678494281793086775871019291515713634311280118536904182511234443377551450350010677085102071221042978559437479911638211116623903008229759093933632924626232020963101891487823924508759119110361372252122190324333785599444976843107211194340532754075986957398884706444309879165529504943761134122815307230577740447559577634766906490042484995560278974389237142231825956258589623105985659261911434922066368947277478341775567680367319359682561771840974218960673951875794314731084186557772557669051128866606641173565700474354685916965006606571726416016781642142786587432211218934801228521954167374385158097633469461781565640135079091751435637348478509135093670390117152295464992495299211233103021248446082619546832752316926247017995623405837749435909594215867201982499257452979778318128348173478638880471893855094994428979137897396113213345040987077910054014018249652593250428694528659268788042695948291016076404949731166696117553464465710505071403298359013904792699024825029990816985827197321940103607990664958761992190852047901565676847653713274374173330786556751160059547515740989966965216176594228244437750159346130104606464224873359959092134508723011852480263162123303802214278783538448442122726251728142296727224460878982102711314410565136451123588913849463733107394493919928604959192687965495385854793383926781598508604337528791493217557832919295171209083165453614269263170782994860265147767070375449231572448120848493976975945618719851780812915114028828587332331517987940752827850610146684239222709904257607869174994962161996512249059700556042980580799115662447812311140722236699510179544675524145301736628103842065609170018098197030784653129122037988275195009615356321884158244233767651380949001494656590492828141668771784129549972555075759356378715426845253683106432279355067094093177955313757656426561750528777190737840052433773461889138431451436418813639044268872364467517872346710029101808774350770054880684377731806970039546504924374510754329515766574872864247541514999643797357500804134633169404404440143903864269596895805185795769079178836206452835947729613639573642466387891347523419672091389949563472781208087025985987773896314221137183692864012044453002073667665003173158325813929261101040162968176880359216294043935691226795472889748983522396264116660169060003222698665312819098926563470892695602586054406739488472028128765927779684333890306058135325977148983150162672293689734895167696526277455870491426702147104413391661041020030439475559116455159161772328691598626630954042840593891634692222077612374915821742942171193174836896232464742342891412438339066535091992320496944992603337777223121082020591420595192343844419610860060940592746516017437392407194528835055839989265884278446537146305177832060372631323383425006636757583792598742471211903217197691483168894628224078699110105994014250456647363878287652259994673326747455451530031737967087881041068744854648444083753449325297627376332379896647645509359522613689679080776791508814034334401328680432793281700845624798077270317574278004152535392260733378846358765216453044922168387486319881648680886694485780004532826057120317378309310493816445333524792046497670803735012296002208979298920985864082888696872983761119809858664238187838507129613540599398312466713533530121503603443295246147362996326224810091195979392171789196973376340103584590923301811712316793980039027100791995340769267208462456441471015670959689011886330607993644144749340691376906429904881879144571212435962604185656726338095137797092728351775100862120587806296436580196777383476525199052620131362125902666771464107727356395852946987509007319008004229586646098167577560961743863110214008451710772856507011999099014764763166421379326197438986884749588414775469236224593007711822692685234286455098578063703422520673420876075008915683109338734107867314340755039055406789408553717852508820457823664225213239681136712175211191708139856364442516624995248704354528803342680196009540842157857536892235611015369337182130986254089939220823283597939396459939994486431848403840955536683098525952972423021199996333403314616049301676487793011485185782454484376977788479650451761044448630466862570410022658846742811983744388232886876442396935446242451300505148500532521661999359694144841871720556842810361798142541968658595649017758214849117962555496049785411154656075564880740904950140733743675074301676225548456726442183817112693814467639244635749509664308949510523804532581028344171056136846485496375474794035583560632017578981046189107545374101211393655983854261675102514215800974962158925873128762277371947041037017214874534580808857593086044600721790266080108060203318797983896324025045292840631771076538045874174343082413956062032600751539346716936160086937756882906057953082884649445176819085212319039408704183376460310580346279613610746202019119044817178512201727520285539353434168838810053364647818052301086175145681407297312129132699757119482060167034166451110966518370360720780252610652715489483747641468994834588136043065334433092714224561885785422289542737726207692430473968086018416232223285463816937449686153499325984876076058701611070469221940071790576988989157639876901302128010392366799384783390458579498709304345797050722976258709231843200314414548489878293795836347074791197987772529697910146488826324728009341028350837530191372469389999408011047498960172807863404377815795132937172134562465356770298109634464803415228405713368749140581969308077848941976339308094649942781969478809062541319266104687866738648644627524380728376933456002866797741111136254492039226737717127039528405433235636333494886013958961587715083786560473130049764522285920078905952721133244602247310447823681512118941643047670119560277445762675465759809649258908858032165071827698554296146177912115486112456037551755769115088334072363295900354264839086535116662349631705073726599554058172342565354134473242446341586933581028992798607010722038353275909774004160405980315923110237973075281732783436797110805831159820101232002307799120069820820049228871022908797407197886893559759849659077071921283984366334738291571359384163225344615252880505612603893122850263720733496937200570266363141092921212147486733858593908023602079710680398873012267744693758549652169543855593610584826180124363547374848054360071783055308445694650522481769783352845685709970126531034997367007027619111107236413677827451867506515273398299118418425299972879873346190413091429710931421274643408294324554740722375933460541094110811386933245132136220084186545206413183682566588126231814420446641774882517927354354208814465626093776007898352985655347946621832522740643471906018960651074305902212105545391893944709420501147655654368287089126980192322076160846726335177020215802832518083854332108548352372732782854441269051731535592448183994813703750772158003888215932673927616792149797884729509957104339909539139139212760694122044926280354947144461793277773468877459096464030454585843664528293975952061806586925427878377661308026744241710922153562703669629205386217442136829606140746899105771379927373875222860570573306080038351131829052099795825631520836777210218966008455562743056487938582233969734683990254668166341830276840653955558712770601202742187318972732452118652610832208529452429166085611854769996287932922561314128621042792246737897035386638296412208181429211865234761630425146214118053305126557359352730118969426669259676415217380115991310786421734748291846436158290102761685857543397126106185651662801770299515198412985937815024071309495613029650980200308892049846193566834408811164239348644958568457373069588963224713029973342474009169520722183492124336914675993490747503290423843340516125723875103172502128523396408688013501025501092717897790735021059282982439589397531842748558319771459415034283552868107056082016404415696241456878679739793159198347265891026274964524815132529472454060326800520968782363867624386904945852919049244619920954652772692488526422053737070237214798446862034623661900238705492571132977178959942555298775277730074334044042488779647930453934208211195955532160299661764569052480295305533972258206700937809391706222097217179449347761575713756520677928052781247136733564898739819532450589811186009882514207210105180553373081983794094369178254031614596743795263212309561366062882588266050303359416112193146380686802646485099313059566046551558550764005485858869581850955571787354955679921611098383672290015027617459059626731780800137246762079386285032505010315587356177840526924255253954914615006020282334565936763842902666439163503198930971123948837406579754364524810829010476145265413350916469485345557782956672403317735142375478257468387381031340721861378806703732714285024559057931638761135741131754670863281379350180638211023793980950083485630618637174757941859011779822765107444614373309739497842078273700751181395711085492938039731247601571911458863833249632304473293064763107687895144715528098181805928729202328043832926502007268647136898491679951950137382067264673920316560150287860944866699016211171415463222870901924143540293541576945858390452191020379040752313685835706970966835005447433322353212513324587363909266858532065759662208418449761506161836963327289513453893170533676874415119065763883965355313126342203614903684063745308580481375467662180942820750252665345996732926120896282591213884222804242920534875868698172535926550955151526395417664663012543272811255562299563709410776859240058992992642131002565044394694245695905207045429356458668442051192462019679820595298343408464789666453486051119773164480123712697443240835498725054195576394831241908332606340912140950996793539797594989406563869719968270764693526116150373423432838083576567490419770660769532408000392995672890023726816579866229790665503374605255087524359680215762118888566979120744161186611381588030877957149592253636916226154872087617786097101819692946639905740455010810021385887451210569788510213353406708088785133027799495382385635306821257994327033995619744123531792897060708273738167695371972272488985154736325557301389734843274276416388638901578588800687823596435080501173085747879600182773507012091823311544006284080470905552894930437446760713935653200495825711237708087329657008124938764305325846623085266126766425030096000256485203168013677218055249605437915370874709857995794586608483691357788694645317611653360328133833235544523280631560487194746354882335417725701511120057848987914014526312728968865091166647291539314445847897029399917692345756494694918308208299037357939124012166984406331816256033538450249455219940306825819214311439594041292338693040307167611790810849257785115790239950209662538030447849553033083933569018020819443250460819951109369667443145834848507582186568317698285449139336684411326610102144849180344001380462560162573195670324133732721559163477831304989085045362026082567853201921344940898582160323660955030513804050618990572513713894845387088546969282490490928914715821842512255492640504101676587070277138755520054026017387821068620813791141422345991234108585333554349417657820861673966015262468760511954613120604507777483926541221938019274465323264391193546519233354826758186799139504888266072448369680527022879948710211385443182949526766046033243875459352107177415119133206926638403722110990151012235200963887510961426619468131039403869694827116057654375805219918295179158281006598021843512164618058821518421464357128801124999540543027606720879529206037531509928301878748844192033722898191892373256996609185752063249169715946349956603276283663457398912629048709833462619700164301790261407738056086533272298382356313722187042362411726137147377337318498760440663363406774945763801888230477609155001843347251361592491412499419289379504333971384689168516633837786457090101281711442253118476578972326469105004216692825512987639535399117424317971903352528822094444204693697627173728928224100699518158107572770545534430323231935151881209590543162216923101172863788951006476698771847586518842097100287684641034415267771198116157117818948971156179774030525654299744551753600494195036889280406578606578925153221390284926023744701497308980232256497897868567630751248040757626294491646443330434376521827666430186694924929397926253167278708259845539608820993666742320189363611138969140912464272925492864302814390581649121241116947461376378974783849099493615492601338977554447572249175094623017223441165015809081361701253603692988268226582862079628941239630892272668197347544302059717553859157696360232979607083032001261914983019600583982240236300096894019416054873510978256500042782214580138029038531452556446591855117333474680780397560592503948915806465988762582628262191187931344051450102839383642491470757317853846596951754685951596948680583371270440994522824965988752819344206562612472409587165197137478770404642657950953331115951445833229224609265245546993256868094933703893137546332722684767170607476009208662562071562735524531146424994877683660510187804474392772566831162471721454527140058383521434932598911661011451152389285822232678124930465557956630703571178921109891532783750658284616947699537653116024638026283283847037927843967871226932445602917901807025601928444610412476492968533120713809889137201512523280334050321669450674674787724711579537506883317960381031114510976097153566922991827415672534757821946621352611451660696753829482729850058798204987847989813125594104423411337414802148330793215788837549749448250501954562859804731033591088587008484694769323137848867981607731845861761053668710479198308459214831886904636710218926752432879484733190524050463069820918630165064284947918473790669025014273761995988208525338095828368466843973703798822294713078203952694034785638850358655244343303642797530542180928971705035747265267279714722075302905648568263037146925677683682170274219907036685308859566287378135201433040074665046958570232867337786470406403799377821308665057456300725400880053141544057959114255461127276713221851731719997179356015605120150506685444966160681646791306338818541459085364636586743225797283070034908875976775487207333301788810737352628686101789713449196012624859197468406684128459112626110522213566450659886410842104343065525668771719360195198920346298535541955508579234879695332876322266458931509477579249619469446737266869664673396209989824001244622577876651009165018983465827614329695451208293074377233570528700920883822214847661738140633914792477716400301603441519380728865315875740709448355349502773285205447562993919253188397857062280075816707628595574133675192564202443809772991170270681824658357804420002433355100747129425430173842214220195593885094806018201191363385630536749043002995308791147672979199975650505145060907358873515792072390143839547636458892786415942019954296558138128258308790968079214906599906938678260465682548079216644612260067350079846771714972403566875998310337299637922664785685484859475890979876915052134588514094876868132313116573997407042235662619924695718929864289289877341663188592671494359155677583859176926179173315707629209743916322351865417255165337384931128246228206310116270025624012394768598715668785827060545476689687006929235077991785768326892130771829482727616405482986591931100194125260156496664736700439688598899009592714691917864158363211527999868654860406021475059635886504180509835358185694765246430425899918594145589212844188845687286490751694564112633237986041991806117358454813002327829638609503705813145935136446314832220629138636808193162459253030614595890852332876058304861279349017211477705008522809755026710831257964043702434374074463457552501821673289731588014137754778405281443140973920101726311144741867002533083724154689035243559931914296615453535855902946631395783103404660714669387203632362071255479729588148799006052436111964279129140085238245255408714226223839566190729589560573149411638050742108365938088151671664858178255341151803149107918287567778748664641619662636850421261177176008626410843039504081935944263294521447855138929918348648054357203883341013353551501128346493788675804264665040959995160738930878010473570911644962127718218635804882558866769604286568753747091536575410233636620644985325982345703547642814097696115817310879066713419791756209770511671420945720747247235037401039111912050026497384545835703364271590196930879708481473650580862037570515635329237490616224717258599401464876660725185061891580771994960170535650456904644385890384086998978361035361361259513618940114178615842193008299680160051739824982519205901148602158139168684919736242206379883850179395452842890382666075107158497218274787063865876041099397798291195368017913736164526536909304459883905207827848128072207326206929711143584286904095318411465228452278573514724387028016078312040152532037371831602000670332303702698316163240604856139292361849980041595420655522853317368737906035727144050232190068557266480142339805389389280956565295114909728401848746570936534401127088550397073019524246108028822672972585364534911375162826995039161441503411944411078942560612597103428188805647335851171458798713229846551658484305288687717502690341023678639840346469892264705016526096110811107693052295185481022328518908649659446349965486979089174880385182937259748791546806695426715146652700410558364393420021788403490278157517102970306690982476713996827682685258422121992108327741885692231804769079068234288828259123916743641035108832731351544823988397894139734326627962570583043268624520028088910251798327220947964360549062589406770857894011143486073574052516255167767466089290763483180713543586991848634191798241208885108058401000566939634789966258324843322928812605374942103529840447332822029470584358086185563615670153486101759866323772310965140187652952584495200932619520052427505503506304355677205166783691692907901632864121496998135087109282850270578715117280120369670178061302070860755459557984202496909468626224198503729377275002581833854528020652636056065861073133836106316830742825182450525187481182030185574007523584397819686173552135160093679775376719915964741669272461038974775958464080800731310019666324721416225776010716317266421852892171623356105890606876408136143685561214463397694727476315853019357457127161597116645118501134383883847599442745790681158866020681575300432527211154779123030960474899013576794433315813182818100999049899185724222780218805502178924373645619476049912663920760837518261128508150337723153238391415551413197417316172252359985925982344088069363178392516657958679524311974416781412907634279286949033271202037822865719206177369488574752452304813535251657754841376823776376612747245848336704417138168116285804131497985435160065646534330522465284746197940383195385692320838330342836860023947409939674172210815591991532065564873711049100523502281596076937396828710626245700821932022546246010809162703653262989670975024428498868047147855222149748980732125408515896461633241790764042790286404114539961936955647072255196942186745939235683791676763238679275437514375936031253039508432456412677149655039032232506126867234264163826518153048388075504442057949094274254171276997988468411411595332002317428003554033578079892895724608719316337614889049431300149064153179507752403518981154889928747676997592035123729112331002598551445714015160986828406551328186093063554241747090571840367755169163468998648287659043137250196563383797625528698344464471123118280736327908198713229274488016696756530024728351771552107430533672460797027763782930916035186168988322220741022366029155714720673842634125752817765971139587458287967689789555578640975256513433663731099560488608932364565827851886460694819590786639463870427661107105762694907049478346828230623832410933991386791096458085069840884438917245269882489331219432246108909824178795211957594827157121809083491867995390357625269781940787209679587616924156256029445659713927956087407705140061657541803436769576869609347974671496746303486001913918781508159201390603395559226846934593018001503611460441767458279915192079346054761866676275791293412799150171905626615890302978439396487435394698405410647410632054780535391417376107126402723987248517131259768754623511802713252553669593209882980015500843518109335083915378228510742594028912618503443602090054194586517152386182809152215292313574097414993830960061618931269756291838809071237836202711133879427728816671049743299628124563841102119127639558583515620946654833746312173810003110534036337200797880898734320695505685411732727778687304080221490470930175309793621664708677037182220607061153127778998464339858539323987080951433848472791201213700307818326245742380331156367940669921188942358290498816541967837334734254774165103565546585516463561510830623689432351045526165921527831372103907861762021863319029801037377046884949212673686126810267167567882023629218627234306041962709529571623625867683766050996386099063893949894703772739814577589073101020076321268522406060223386490670249256720460976816120145450169656457708204439367239622446306503175041907663643111943193074077052469023452255088486795782227340668124018023593276661694861025886787346431169789551819892253162107601148331326794276634473556618682284963894070608487473553851902814703206106453077270659590000867645051247483546838613036694154596004937223958945239663679273114859462944274086147651765827320706151513226900544729849985221644777984431642147914949396440369488592848052628674031969838759397024707159736705582768263135073983203297671875000431439103670238954911614760911541054145065875242705861425944945681080417771985135866592827621784473304247366496234120901030364403812864528384043499231892647853320634708810364153340452127555656018024626680117444429484417310564469651316034872552144446666802728439987782679333822571914492142364155569634672467134071080900317072842119821932862811053923712725665207825637195264722467757649869581872964008966043789271893591434854756401670852424936720692525280332190075974347753029298296002471583505373230631262391611554468288860642078286449168132767702570756989910797665528764274253993201537069216439491375567400978885635607554989662037973648722380927655673974766446123862809178079470974012969022145168785900274999436270739705460269163176475025624220629598019374756149893359199188741876356362004180660921734217107669618644755399279619686491228999301785087094203705637540017877790676468459368356542408699331659861795197683489303572974424248398859979928184574167100527861842682427382186401116420364611317317493354731195482646780371555668801806297311690261948762430167293201973859484002623483898879579412125217781255678410174014640806576469999068822084446964271085139561931149888408191440199036584833463517231259742397110284154808524454613020594368516579397875516200702296460437140380936403267249987285191913830974564563097596710707926150038030687048164323946280102226755556067716171369980020614415670708835892080378057113151733747851818636968518087349211665025908213739759594796794804327480061123000424630280953964372290183264041675574885424925656969102722503324033418375021313680761126025511871890659977512997510952071169618031631685716335745623667640406563541213450800407468191852919960192677244870083218293251802777471193459448192200237030450301385353881836271116753190884312631233783981451182031356469418816238618458942646262839183644150350879635516233165764427722505608410901779544093070071321007211378134794714567483658247046533647575679735263506050899995522377034900927696460889835772833366021031554310101462205748076982732789365931955428813875863574203739998658408915775478542183950702911604918961399455882337624188635926216867587184918908329259684339800017181921452363228520289293670273924059240984245835971796473506180054703177152967521094660563418941602493450764256801246482062521110265071196448089514056197152362899581335341563611629636377503889412201198373510952909487344667827905009053716778504287726608120381425832882742374291760586681672456006114716452272023783934284461318616397602354095975179408905306886482119897040315292694155736217586939478631468486918955559489966732991027194345798795933989874327445696915743294548854748631819452162770513623100421365728095715274936868802749180831739759220898302799923632019793335565528943023958314388320504101284333189006825119264265217791599021111878501228236877330553323399430256622083570614241282958918889820888551171288398407955989486378956834230034357406118945182371800397958154363398221871322786774813256809961194930788113214568438447078287549822913451143251428917112436140170626949538468112461121506417948050609046183982706706863859663618086467928936456232649939317300220743136560654732530898391805806627883109019115296800351942602762285520439588783260393511615572481701577879716806315716223368957570920556466174571294440504551384942948546508183149973602837971380156836559540305112420463677626524874837411147016714832235910246417484368938835511972971962524830564691083116776973870703817714931471663018912698316482750887536063455017236536626366698864990487207674506948633545525587509252255954096678065273958975742260305035489210859831810182928243488452438896983230028899045297893737290303911948179220800358826348986305664956899090633043715454765931631029945636775830533174292397610951466246530021180124031209261213449946507622006852586966411392069623823380609672266532502116033756527642929942733064949904389191397033541324298093994191247911756282474630979976025687934999539664244631331413733237992474753987295699378555802925727903425409877633422501334825684644900750341115536369712548481316456518131709362733865152732922517403762690641997409153339876487246529418201651336757214956002415087416189026751874007373003213681178028503294506016400453622166851944657059310443069823405926727822892633427804002805830859477216260539952355036461219890885546457936832367816690263976511553003559240650047577967548073590690076151909560786980269484694837843574666825482389659591644110724096602925139123053970602583288121698700722348377907092640153561657466937304410738896428693703084885510517918186885559204979765530071804842650654601727178792347828575181795478746517849817190395401480380635823196621802655120540849741559236832372856344652123991770179903458994931505651175967330412629938687750845489891185903923005047517185769644949002353981879278333432111949741614692148499630645456829728136266755822032603441018710488067930415324772942628905448271459512846708618507075270648820418011619728555134623772194011471123019880409604778980970957387572342251007880150877879567812761398864288446547458471943633536233879405704466156138030064354499049205765785609317846908694804501174147108969589094002511358486587625616380295856850039704715712889944017585866463054758882821486022771432360032890227570458456911860413178545496725931063415306132610353806649306463711263594990816632649376624229501394723750292902360189697881949116722753971107754243774509252280017451580418771858700571802733953496607938684221882912803032702695858548564110255016938352882647814300798902706662753166734730697659880586068682796229556560538296516543962044357271172794460719657305953599444587613995465229019716182678097082905875158556648766542039141229041764998866772688315212256066553893720785311448627951754674476974044593737380268502075754657167067404685176532578874766990901576540583648744303013530852829800211389087871102853236013959772101500032641478547299610469043578581461308223996274367675524009827932542359992138976280631511437060051844279806031371944766256231016132127603793008232626308821465279752074668293176404589678579755324470021045610681416006937698898320112467203312108507162354911497395961607703448802537017859054275262314190280508272043128171914555052888052276530422711825478024083335130391085619747613391940067876745369444548194666940724272402707866369391924564344231530223674001325940570651661866008026799278002986707963197939329524185640119854176939952342857344968713624013855230994770745222008683095704274436004076936881822512461529840911527541748534307756068234353871271345440360354295928311461947831469050606982973557188526472109590950540910283690180244838266410147670669866961098319749525346663233850716035424765393756236952462334242815413166144022100904056252726221241264114344133866350157389193555004629198430118112288913431919365683051361729171952194180209557434658369354100462940049897103946378736824547149756228975338932081022474651681738318198224841568044878956493089044942731272341798776851504083367220081012578236040128818556185409381567386495131306284304419209456089138861892724202592898207216539303486862291195580144237261342761540273119291546038735214413937588838315047550667699424460413132124393639319879536690687093262859727563442123451342970640852505401801276378276926583828978733437825022757164281185722608060593831130724852562225298991832632826474414590749591467003713798918510463556647752108460425940022439975262348177542984788659074768845652880416195134025744820587536178936154024095157967961605703402229856484226764327405213967131247496812129574242681872128274191784286571818022340747378350798763708035587090991755126917155391051842387460532901929992416032891638865809687573774758443927441590011389092191607941150782090362240752429867185750035868474882332380496810940981804340822967263901841839419580646772689014061370327538633123487094726895997627790049160263089862005885542041102415100016317478303172068776620897165530084198186693856212726529352967774340923172876751363749177935132115615682050281463828249158707585678447577153130338683537563634885324643642029405905123058364257593809558367318853683824964369781984983567904690892160102210764695248572319523517490144545904941608619178744823676531005699510512086773546643499304152263125772255537530632128767535157191323352060236926335173639638842024674162102064186293693774014949846186071000120787106707717120777272231664140538342303135660487731786296785057442702609120900606302383598748907727784701062613478737231834480330082759577236563680487342568155246920369580032305645454662955896157869748848595517125921128952317180410693970645261722613087565587256727963664663256793549836134113109953973776732437487665850352886444159806521876605122671918347100970643399876790668958621968571053694771574409475140300096800475838041931084217864980654289044696554566990196631282404249339163226751131999267009491391614076298165989948690498963873276907122972731863124401337045232974281551703981748439004000637267856058765366941880080391088877109680298474265747902196389877549499560041797870741884811531888554613175895791211786357225043319598323030604056599440449740607437873740307392291915162098039885444834245852352342781362661836093998009339250463585409122854152073448160560620580436960190466006349024729479084464127168416619891568701217715299239818469339891116302479259109848848471469386428524107646416048276629180539264991116585033680438809222499653025518392183845630319640547156723558963514696176237191922046997340542902994621057670104852493571646066231050109003153483912674709737812012553728128993668292325104486635165139331245053366458203533730043860714059409759956484992174990751355932449955698663173190956808057984778830118703080486332214934401484245267758397976214094229771824444139985963165250497737398873936888590734953706364636894250873724725381330873538076792133556509010746252825774182265437292435144622408088759456787152858493672046184282137120892802534471642623807074251782779274866160091924487107820238530675815380188191274351315167424464014943162984794827352640578341556346602253413182076436300698593875393835169313859170975962040971958075406588839644668174995866414908438617083018150901575067927439116075063736670898697685509842245501844209241346378645329412226387811468890711632963598608050434552937111946330990802939592801603876509033399687327991990967526673319058035223614360402729447029779287238178487774217583235388427874455899628668448476809426809680352435625509879451983705753781375983683301990678711111926567478299435055869689055129100133391809744417764316317961814795948394933760779512198786400442758882183602924727969944209324194291782137027189477737127324553593339736543864578046932011182599390535129415645486551164369687896314868960051814745210183814278316310442640998437120360393226181014274942277035955117071832901445077328139037988243752005532676803427463308557722800370750826775883795105254894010982039287138358600410638623318974313885925145146797908581411260288009197875849475049907459584489365772515734746685898330823278924883351631915913410797274552695845777855217638618500459896828719211272779458259258568181320337927851570075831488590709444909621464219179857452280304892084714074282801010226465872997904257842779156300615460279803875959142032933053584153859607898774428936564261087424378900611630891750262723894616245330704644710411633048447756969055145360482192653574613404030656113971070756097577424139259412357129612773267976637561409604281550033815785540267391423472084993706349803096494669358194267678196118839878084291889517215109420855714982142626101170036411587383789047131027763393696761469554330336563906650135694370754307738309271338404406377137501891236849803561963102195481715284580816363871294680939285719993339720757886593994711726073459662146988232844542449920667741600673131242490296118367130745352772889714802563235125196161203321547458090943698713814372747573161720232583691368557773761298579969575757459389550588256168146958742078248083672176754422529232403967420805681761023314120017952129235905000782647198464200733845780038892037389915889045396815797365000988740725450384315951935171014301911428632793970486389825316077888098432228423556909249224330391135393988746459905187718887323263430392640973264642887402542553125860011947817728745245190737331988013302807089584764700239902404401428031984235755867846723171804057375391661836309427845426885532598901934115199475660347720411028357961248698112581507467413278229533810079601999991938596168775023928557194029044265261857427625297821889111216826344649388897740414190190285652741282682895392851307348720368536982982074699668723502742048639976262667165630561070180145310880301981539483247888565874251320842872161607972914096456667345600588493069923470194207952532125059581828978315532129332348355664296456600337469998998701613802344735545480428077157265865795307327382469497899072152007115681110451255353263146996072006240568363938214278897144361657527096324222128416274949284342398629444206481611182825387715049727192597914078140810696815856247170071441710875578988080521403438080679356550898254592224914356401224719840892988713606115255518485555652477317503536984129964391160923643844713627592109457763451838095465145446340089896796169596218226379941701310573779063761541691451763271767417136232449313392451361719746961957391561588666268935106250096895494782811672968414233889211715077890528333913689733380188721915583155379809022655717310938012252651097241945800175142942965403952266277599673617480114225194826459109029204775814114605110078645720209538846879198277973859682486508410066750295809920109687889132147761062616322941122429175243242343582252291065206441073417567437043881549717980086908507627257329441177673756940518815540258891164995505776242762932495400882717804368759979941749646787858284171034981881651284030766430045165520419152916931235476302435359217738996538821650042045106525143246912920649386684047024626058523644293196175586580638759375758166644483799749995845452882656708154944813059808223889447490646735637050295123826956629184015344901829054724868389492929765732945811582131870566909874830241218747030456076002212068937547512052813764571013209109110084733384111947870356407901311450146445786473684444995937290987066878902584075776669881306738542522898487455557166454925151491820000147084626958504023334643816279876977900067087461913419682557043859033478820596420180730066511035122426589426957345588662543692358004878845133492752117054813674801025482094638029361888879143662783252747093539615110071916676365610889869974384892749131363269281649889414813029464972944924111108483514476276756956050375926190185728829461368677966363829624821529310931366700075668893643922395931923318772529927158745781660260105892658858773208781887950161052276755578939993388973035876159335484648927094737180456139235219855756866805771722785835401451059584298054989616275170116357679945635900586977951364780590141941045849178781151964623662575968225906003341835592216114172944753593871621070952608511482203610521245444204279202131416025762803270533733587070745502537757276821707190939813378374965963266248784423098893089464918605084669483691870655743495237352846354966841338863431505909464541623029335834534731772412640114796962081940005559254869534261901327987311674043244214308713770804845742866613541901904230384069605885563676536716045492803050656990403042532436641817245224820775319381845173410361355101449114263825493982836718337933898901839316516826832275290379352083601366874762299063028416682627114590148764934926407503773102374011304264056160699483982258014402344566338583781941901264687747889650544027576186587562607758463375629911223756839012540707976744270665556253172795551181481452712419950870072773335404483141525949066758964385896593850265664679709717399648581727725416179060812101804563801543353215696781650053804389084167843476021778470945226477529910086008004426157747567628156880201147296704811885956089537855653255910307594731418939276218056401244248800586726046794559863992280035694810531934148099993316184801432460901405692865699493420749023839289645919420913614461832766832491186740321101855719162964707540576107024538864449149852167711985593059916304191578702624951628205154849022133829447563477707027781340686878257292265463909932842208481442663703975266510629104332320037356244872351031979887929744618695704555864107561891201886665681033693328708940382365355770737863626546808509457226624194853136785142838438491502547210407719984913393445828906911918075370496569069566381760199478228466034115128794497344519124678368497500311179619752046057126459051754723708322225332797645872141960834469322618056790665731893382554898694615151469987583174328391644026480230372735020651097598205379199946190668406707756227146297423307564313037555776177586510506328169445772611215558201472702588814499710912052750416761048365021933946557177304334844983687130214578939057527571173993877365625792276309353535475947654949024189683036312328479191054091418871161926344806404260753304406095804689382805810057476243312134403171688631200740951527865972160762233591352380064620117305706257169640447401306078886419126064769932745056875559910774350414856100678330408503762067477280770629441610741705957235418549098709672587923969787918826786662307112820093436884486305591173382369444868243200113235728303801774709111052330143841850075019638683456126367439253621434184092732898295639107608477078062172472981733310336762675677961682540586429654395610744734000216355498502089307150174631726637354008636961325015380596914864745846063990717136667646968259871255733275142957982243997464798523879967064494479242095262262045955594481892597385794886622187994017352128754236341211599035739718782403503105800967347876071796388049260971963735935731521126660659195652188068809184697004268776242958653051738667109215668928000875621362204554044691190053321228138294385180648869282045476699993960377318246320855452868177556358086950706072311152550476415143044331143205573186031799354046641488727735552411965498867532999772575200879502403775845514832119309740780418613291009352871789570316655161735767486962911271548410129800361466851868362531488671451903257159668346736262805127144829508574675190825053152314361857645749789659180158666682010673418938104334732512636650146974723647303959872534776528227514667412618798373807687761930225666273176680221218565787832807936936333345151130227677138003616103877403939357513858467991189425581164104484600733592202017461126240947442323389730110881674068659020354949682687483757066966323487423087569025423589975007694995279032099775335120577297397265786795586440441857888133925546865436771187383972450939834201969150724127896713192179012174625355529623361366027018871128880962873454103549499046261008714296802921283994651320619280178616720119055379477541752463148183219615717356422559615122551149150969834029930869770037684862819187896567381354994620527798192613393773722075496791780221169534447539817989466801115153816589646899383005138986896765489944306274285250478820065824351559849151567493877604697091235615621835764584007888487978547923938821080861380927213758173678528884565289574932973166124281315690027421756452301330565528882176330033991063024040210183543780087136254691614331543948696422193592478569670796167181787212545981191760943288765641554016672465033674349305757390247282969136173153632153328206561931678402619446617697435247743291022921819923198250620361339904440649022992613745036877822417716105487902147634870950083435984013397376654315215180281271400089017610095628373300654642519493917715960636524034616876939785062762212441750532432062550504995890499971914069529284092011836376749583864278296105544815618983691393188820203609027052093724095894336577941674492156234331607817191240009814438152796868951802282910687748899848096376842518066284663794736728463296357543112676749746103229948466001789825062814954378792608933771932076976617688962570556753959735605151152630873749952452709305991806956485235638209749398795763385051433124781977560946410066411907967265148628614750815761001580317363587920529983887701342116932367823103212058726230307236068341924839539255228464243231462140364661529456037115972578085940901846207710072257811314820334870341297357805053062154151556388123920770969050665811581375873317612673391584830813804930256716918579356293148926801950662470460356246837926394108301195238460493082945770954369435523910232688483627993152774108833293432401265532183710201382654825114860175102633976953283387955675075134306491781986075919739070014392160408108090154838840472901592304154338903765540035035567272371510511734326737463399532755933729478518340625337281510807214421851654318472384202797748378926081556074558329273973572110291739743614724593360798971531827932570737734138742929642684508271916679266629069838776322754076666783966552107243236712731539018039323268195330380897391223101865467166264384614156084530361411149429248409573984048298770894584826317457015738217000555036180373034816671477675573931944383344349297616268059993358473708439662518786405150572000318127778625168566241043929843867217984608447754556847671320996562759574177324725720311028373511146506694643353312315426556101984847206998333434111328233657632969352843355635583852900502952780643525301540253432844517418792821904181587172802754235601740305704380777334972231678766622559854022117577459118475607870781627163324503571721827088896031891222777359216724303949888923975658583553157013305802365068008579782462082386051925882387931202344198729858046565421964685381407500743520583059523366694140789525833136395211630551155952582945668309311484374783699596726657802090437079530947527198038526854842791949192976780920517702090516676770286178671053726471846313039729239303089106421772592230941870358516988734385605960693154628715949971188204417115332885410989293591939127689058773442990725954690958372840983000494039896596399008058873689979673445851296931748786384378999919805180609957885418391921807553051558993107951381584358606622586428757744713378392311395558794651335948520160315805721610694156716075311589547445457075009792548402501567071857470425501719266362869678999008775664089995330575120610790907275959620988560413893062130662631560750658241773734506763272432079401689617920865181101853540412577434984021835319888515803270397166339940339343131495488376092354166476480625270510398358852359596786017137043829814977331761062349484439044397378869415700840938833715738260627875417433778176856731372728554413113054608306480551089505276287609496057987259384990933837162038424094813787946363822972365808741282686846924832219338721378111608799434053079838515957524097571720965828243747396283834798969549908046095502388543591119624039419748951257471988494246703689838210222012320473692726235698907577474007281169970493099209650017827533145334550194514948340389742119135929991386978868278059495307907143958674000863483537103621210870792191873351740895877445948011442179256926377394586607113538082593782839517475012336730363374505256170719855512965966604564242071171569092942843077698615607605950686588494511958330212200949122353792125078081389209580979213480743149437832624976632114833125270271879388366601788138932036881794848005250743475281504301772075662883651282558624676085264888898917723668871659992926165583478799901853897910201370755993567290780490215921225983970912575840551773092818325524432091323817475974703637823744873078347212941522576034594760582995565572047367506578810627667854726571203450396617305759619832190683922392771391271900812799947219787105234757077511138999906321443151448586916263558410345526672045646015295898167915346476065370520644941708763532695486408054774894896328762237860540407033511116996998523858953259763291719038120044655056352074302112089892096141845467748477865939575490182774779108437458283633761544962309429533792433235826627830258093146392671533892123752710137804341707538403486278882430557817344688705104972357120206704378880208227047904646923166062705589272139713445848448879948530469427907323887499274763011915652339113421420915378874234977463402800985532619598264673892053365644447173088371351338850269447853350803430691745161395888532953659884293408225939312706843036667089948521644193925550227706919728946593462705764589148806616403682212122674520921896487337666916628534971842397101579616192733510366930555890513168188004650091325178929979307609426951174473040025397358443816340851500828598594404497665403652110301238740262633516250653681029271357806349209729984649409920300663457033556289876642889340991820542758993908134444494619838722160396684826273305560731628212715533115225963771845823024439498869842534130195455083422945559362753329633142450258646544668748144510237800662392172663471440026949735641477119039966426977717732865298362628291059143517860604326637391538120037889247009918001940108451814756271559095608031066714986526279017369611469142095717660540311894352684316742749953228279168348807540525905982661278144097142226625712958734081989064404371998067746131971284698169752859599990864601235548428439564037835174705306402997264695202858508579065965802952331223455800325557381258057926102478334054449969549333958363783563975405975751637998968655195045059899184196943927137966503943603337919815771759502230021428795951399014241796355600742500873600211570374680234033938891217556371159040569518732319672031910464645987052632269438714022188574992311754154253044885525017666172523896574538109804838078250984732922702642626272413120383146794906297469563242441954507438936848675391813212908867581576220407712430808820829516684981091995183916983493441348554693251354507675824542729932859579777525341971904369403215391424049655264652673295147429877617361408132905069419560038128306835129064755704422599385500421216562021420792464967540292085325224827711804419160092707901230241712353912133621117379179451335458289485367808361216360100474872958490275520375676224313188359420161215371023802704437902288314445205402707135316545253268963234870053868957163195468457629258215377944410018771505254749499722796571596629109952726190822975199709060560533896695322478531463722822768069516022139559824925241319765724039446526634520417739424591009512375164277882696277817482850621826094523727751480786534525267840422839483058322691283704698035183625914914321689754319032214613781952477498330385105522094007205533231276456099219405688611051082287398697308752232565414984713888384498774015199530993221145951605296970983243595262793903204637415511407119703367816892336364452835568173144615240852341495726087050812752952349384385367298422477080342359187863794748282319490988883396149784717033615110092175712633613237613703768063156233145726512827968248614764080631418794470614637429934116018908002973675254732543644889012756133395687399410204754109333602206174833956917420364886488035568499759686309966097374477189336091063101593201637731335083625461713438388289591583738468746409776599030171179205757204974031804659240853194950466743101916390690500785993607875808164352449082497805102875842109585797640459377446819354587883112140004599052414503045505044566802301304878258748584564455470851768236707152614468708740936043076603702324612331991706331835475916518152236320619602945527151505093135150614753786351333894167659793816982451182331913439518846656528365848348173576644342823606985820351071043555076073258028503046135373083796902243977853445318252994906989712482279019815072797710450908869658969684883584002125804067381195367441992049462913446168607427447033801467788934285004913359284465856558725990525546087832363737191338727356056254952386308177019146689406689369255157251855983238035955269408050684768109173219679142992716680219301202745450199584928739810396773260106134382243805328342043836074980117106646893031427372586440014082777613998221464317096312537999452631956903197584408458511792117207514375619644847710884253165525575889872826761902471405994303255656493929439260796216537863983335096914163271455733949681270206548003993784311815515934230506954832373265278536005722166042053829968897296530638360774621174472483112284985792525674358987355891793177949999920992720490030547181769748998603164191086351013548200563230960255674465964990088313711700072419548417327089478094570144510739495957634158319633718209334553683616503558023180686209013156667860641677922819768747568227431711437553925192748717398280804281172536805260988283334267622594615064242053231914665887355708704207717791978735081977156408407809043264263340602874095813838065020226241758344937012921748143041773351803597120784139360928747087892311153150360763364595250148443662391769449090140090286241219245897625597825822222020093904023419682730759543013655545983337965091733720677485603784829651198047980202542790843692928383519369117542037197361968181705509825808167515511561178974643441553469395907985067913660829931651455234304043120949460510430214611609726017625879282642099544202944010311553691085925232919111076778657549025155736795045584013383876697644484800777816754089108612034951588483904460755389271393972105078075565643430785191009725690446309029066062832491593005565050897390659380818845732082228084059544073439446739870131814690523854701585204974643106265263483881073693835724979907807236790866530960202181486061557327223048751853354240957348968258103391258791934560560681572144504215907287986772386723508904926230147945168959625314190841395333825826730298043317767909998653808358496065771139203260422687736192257369498712642256746781785611175417068307819207589579626686181443875444356028830896416947224873372174738693766819502561667436213842271796322976839674957241816364472426127371686526601280751940043918328355240399327549331806749204850992445757551263885158569436739336851575484704422473729593339092892491895958608962585224313378600145007492555945033040503823712110826304384967056483964965812907470183583926141395292590305988636003595846301373310716760774453005181629497815511183093178795378445218380020456232954865806343491147555957552721337020393568972594321076200913494827886793656766526091536958839268325846726543091171051119846704348888240642499815597034748052579047384034754427874769600674494820921299560625883946188818429844048692798909992307226030169512068271860780585465752832681509613639876910298756828843057870835724757555603328095011725930785239322610633309967559279495220388316697031927154832860659120692109718168482593076905970542549581503165151847624225594879942997207764220407302447211329398107674125319153873079320336917793195986450236697449007062430702587243850377762141169180806803789415497113199371013008885426923555762061799396622409286442095328513824964975426836329464984008956582265152564641155738090156561036710081523778106018033598913826357616657969253164952726855584183181940680231738873690522935818392404669917184322080127124964965109991278961442878770848302852886025680791229213258179155636726208821216580424665361978620663223915011139404759023305483195361978923267576160980276112456507100276213041773511170819585655300111717563265059949128151828697483958992977300529395884937815539129395467931178258019146073698793495126311193763263821888577985869507917560170524076495297619165958093486169543388558744413207806726283581389865139029730226265431483015553618004580662833337252163606063024365268648540172873695653408094515374777695587193774043180377462411909690327250508309991357302838534915063908012729296982967928747223660698476031646405554433586476130678369296583600858426338122615414572430767456790523801598870909998429245149440070358054001064137516077393487874460787499730858399753800678628419259736274258403109654681077725750209581257564587058403055510454825191160384315420225211149392721121443787210410996722250683422919488317720376834080781161370162942451416527600656275050152731403658532016759814979851802721922575700728203842054005265401420879093897204687205342717762914656649665614586251681422632684406465370364683317094379615244083931585504306318430240997542959152541392780970907459737208373893970618172697932865448163277986742923401149184947628900273153133619094109080522097449275534486007383944299968870498831002816446564834203546566335288226674537648644758412247389002203549668322746954176109698460923856565588383967472771748655905192419583033052744348551607279630568065614703062822860225503937008445330605265661646730796050818480753783977551836107590908368462624419685387012053360616872554442818737082390928522768597117412439784923093240578170269741590082707489976382319790045315717464206090879541861264692529306440550432824622364827970367437813707940388208896430421260738931735510461892796041501905709502424209229082839426522012646892067996107775262836558439318361988321435886279392232296944524938621641539068462586686231252110540698178770015858436260514028025971996942228414545273132042713800706563047003732358465634500445353558581068879960767905767065717846421446437677489668542586642752333899449494167310788853114390523216116101394339291920458752323270329367335329216868949943494702507099693681279530631015333467650720980628580170691336521375685206821413206814854829318145303084922249611089937786720358735329818154661138634714538845444842678341313979981617354842220379593628487727566200654904745864106210354548631717173380768629946985156428259968512823233089822830836298980065065853793056994404171724301275299811607294459605501131207506437367202075712221924594547184772715026802127514347790503088823620277114360538815268203784893533772551405604508321392629666049382832866844299180227732232971702104420862797934968365087671045755425332825037756046215226146625413701001036355015459572348924285106206572233583311421695221505315472519559245899113811755485592356168571007289192429748250372785816544422038173685806464449700448805453522595651186819142913061809833620481958453066491750005899826502956519873574411526320997415623470648075270209402731805477801640285268713265507944595620753370231568498603149756096423023187769482090252850371791086267550967714764156917979336716380956776601274154831703332892609751844410836765200744586612182537879193661731018559505918559304298709981310312083757105251263112002803475872380658955714804238348400414723918909360072779388336351859212323464668872171866202372822564709812596007704475531648698505990880059681436809531458928145473535960859108863129107831890271944967477866886258788459305746082460641125562383138176831829437929975982276947486234521736945671035853622841550292719762165093588258130444824047383839715785441062481699036777347749902188510117178519797710880861171666475150715789265139498369870617319566814881593619640386333607473409023341568684899641262057521777651428194520571657688452033343958957721184475594383112036809487055127373217806313072321837241897311584260734966157564956196710081577113600674167141269737058240092967623231853070295817968620871140540843410228519075223416265038550572931808933520434160467825964529845449048832936129782966614657972460070114000284702159389705970907388479782520309502470544860859155734977913734766348667466548012483009546489209724557068310045890626387138711222929315126107991733660112400348197489556285844864297032427787431755120582735714611125167486793053627384008541235320148968753065129074155115325277717961420595946215163084295004816317302200167730349901721419808204382916252301647738544320097622545718880201654563840558107784474222091664231608084761406797476066914609164802526133430748954193074715281852251115365608313733278587061673952950199847233175013118718636271495776382583559864016177389980822496331613443950349020696596037897384753135145311651352796923425104984007733569746867390065457889561435081323094827070268053083677483749990240840538740065877136643042826079818654590320657684292689009330367090252185206554491760033021259085214639949063564451228363342594115903358399378871266822199058703034523381662309289888470718665934567225289599504780133246206223639384123721910176222473970047703586856656083247498763788821336085660733818714492560097450963044209341008614669465282579293784042893050800273696233689158033900625063769482365868955047357608792688860393894283237868511903613801836474249152942909639964511927699326171295768955590868891096770045242688370080629431892129396564535726079437510834242167200524121995270836046845395479085464604862661231941242338393535080203332071812265331106278141826675764903336021566843596523919276338355271838947520258735790079535759215181079198595597466168694516523027562806190907023053184679444499889522049544588464044728972921965488438267288237559883236921653247443245298096815564621971915247054655345193396166529719396060483757861128909153736379925086633350399030107838935298594208975065758810226639253128410083429573735619309367470425781594109339662765050523443839152953061883381937700580014755016959562041412641285712921060916024762575960086145859951791371452409366261364144349251169239199415341540095136484147428267762040687835365784016687842669146596678939895724794127945069739420878980248489568686407458513260799277670145126464763789265733217981504572215950183349605846676455489818006114682551143025693580061858931250745183438375815359509029841736553842683981502583169231184733537397038958594029444326737079274961788974099800037796958058355340272305119351810197743333997751907961844472881511403124115206665886338093349679464940609654615145925643848853504167466673744194327541256385839512010307047630072866057075528490682148692167925200680836143555729073191404774193803297831749942801397045044669317637763583015706422935191605945264667349156134460528767056111750172292371497351991646323016319357824609800112055551357411709314023572940580180015337454929935600173659525920133618015212977239497797734812441669759929199843329241429313902011636405678168560400676371556079203034181226332937354882389894213909600386909410148871309453537032051673494055021463041516322034441364347708209098038812629935767315839451883577545319662848029674789868423167571894890847381393880349883429410832351354595939395948918350079529033070938011358899068421903126255525631248844865810042098269192171287008103655934261663520047106689811118703302327711162412418346953901252906061761319901018439866027361909259036672598310395548019325727129492351782436774125585200072247205836040562901614331842933665751976715060373140526156086570170687053245314497704811620414422973927275022058763642845904182804131092549106765635716918005800863633312997573126690469414313990660449470819580260824846490160800660155301348369752223089484053497061561716731312102945997599418247503099711816609516127297009676516507109322767652080130356192176247942156922017286135868530807926029091579566350951866364637947017516785832032444395199893523812077721969025897833643963657731536029497913818208003889119036576936444841101473859596703260736126788365438193209661618057579266528397427716838127474815592525566136687302814105130318787970423805648946489034369058372905476843574932394731202086666043640504227584790315766008875372945414063082328615702146151426908631750350339427821136860985557120015456057274059330293670650231735809809072617871705551408637713950975384395484659802867585216096963828686447398560953848105138512814974767520928141663710518547635430901097389426075568111968958865642252376250640842548252592053008443148529030134555563568228320957679876470369758325508482438834410572915914715340418339812545891366278432847093230142110167008736016456669819050468728278225480250233117428098407433573981853434127833142708534266543443796145340797898063829718281648025985838352524797040509233632575374636025338262676643437138915831148046601559693606457223207780991686895315555148716081245702687349839563004119949282127338194351758291901561099753762716023955225687740725339753896741970450108286908168914367850295921829083573167120655456355415210593700527199249481128074329197464763851423648307051061650380124588468034774929600793679560024719470905956979197513475764404396658855426156166249629007623898357107676862093520961876875686555389897381664470796187151520993370109047988255582627159698899272790823034539527448850303266304170528624100735481950049126888311354788677709745683759793280037174282050115519720422613483994514319666191775691090512984468610264329101153649402409399803624942786735920437563507171095605485475287939662709123287783735292466187653955774758515473975119418620515297668345003783512213361673858584321434763429421604828494603985974680619685447251431612017522406021658257505678474922058854389189526381673971415044680190529258406629518608352710951511434803361520243773951045047931832450350912560501555513809101060713337431629419405147447156461270732738450336302327111330850749252053303173518357840277852235703613027608160664066072711816912486332989249043054111520867218153790545478732977670803906715355598906763498588469880379127521753618019187117556154786227434951603351466110369510187728156352014689519348284213816429474935928804245032331219176108403073352188899906146666485673029433425140684524282724220389303852570061283239691511815107847537817323455640408063596444233682687227028039366058099069067905082008456576284572623523920398434738336013725977364561456426447926926470097046163241629574461725180338475604478774483155048903757039245533466469003897477908203633663174639604503206474887514015021829684610933817304932877113450218488850903914635977507390657769424508622924432151295484979248659889380396966674889921528686213807228293146478792262641294152271962988529870812758306598334566822656982298996449431702771938934060805948503438816817427930267421811862584856203727000749685198845249025278301937346494091048859979383122576480416970997423806110588810542693549261131294113048497048702612527666085643842565476414390350009670496656588209064287406399258418102172245704538035662964405192665768525243092447309576395002696297104089658625960130995722512013575664953320867426292796019725046481637895918269692780560109391023469053380666645485143029305359777851620729984402459729584152122728079673832869991449848208903547326366705305259825691395460809466833972794988118365957230935056768110549486330202847094409093493364887793658812438967447598958457135393521679614031062071028880048315614081614122192636687396792590615837827745995372032058742300775816813152201746239370259701441423109154415059895857471890888231570171844791500775990537156474389000514290877119126619388439138617639794630104242941842256286926126375229718307165086704638269689524356506841483932963335750482452038847748563537486826898137830556320563279897366887991606502650821644812735193423231647632931220988235884172339444930803017355154122090899761864725143849240226842508649480255400487020569804690871562274585480645466837355732330028161709778122808014121542690674899374984495357225984295514164227401029520922042177881760670634010583876814641043918900772212721537099829321461280727905401584372547092569504465096303430343215599222133938454353022573042458953060039185912303968170797397291019784813431788508797015336117104390333000864354099564540606912125113006643057743407677635556966411634731389420556424035246136805477652162138252424409250135362935228943229059097497233527777611377862099600212137127423835030944233477229243016859034543989414893088916670102496125527245608883555646126334251500930123721976281708897791456671638769057187906838232069128797783643441959924327212673185702986301076734887588613779079942948995905840632468278723154748646234721711342513986521277627505469332745090865794328869846613381457964566532102694356668371490563237141312832618697267126267134188284369402873704873402049307858224176251776805087441539305979376821763675744469694687437106494920396309071102570230284366561907817400101229338332807121133689783221662781904781050430138253285622659219187181463289442304556295098464240181878736105520865460385314608680493990662695915545064765558614654076769732774725237397090177877255582405941828439576165026819739912891377556936635304885277804599168826875208475466535580760760257409962759727398169350456478372253211606067219614601941607173814424667823869923561145214409291775699284997342998208173678095766360060142452840351744335263479770261052072664140861059093052493262893690025422409812390681672784812287869333752140475617097898278695391868526735939441508573504258515855169832604508885046174477041091430188095877407047364977331650773699248604580967357365953966015199808465855663796699111353847905230685583377878477041465332242704286127708390451607318712265443585193137480089110411075401031880410232742146692605598855560825690121975081640175383129344550371604346374596049730937340832107526533436871506122229905015516288948812865918812318165541226878102103588503042067971108098164631580388253327690198134087318808420788012698627518179131872370859090141531042071640888825412894505685300836933143114539656020910237089713189256643044477201032075404837512402471211591769869409487689078655230090791417711787120767937412144539752728320493063824045512530838477128093084085313568399001243199406477822896095319954093926177195142970421994364378693567966902596049343712697334245845767720763031709026300182482613040925034092151583284924839513890163090735490367601310630286113834710457334030672933809385549276567999544264321685962623858857033266035798100003697089985090587319054532996759751642957129561405631983485301683624166695018942386474734640841077197277693723297063011383218752970247244714809208391779124774694083932499440557914188873749548513695269512960908847180094873918858793337226100997918538002336016930098349210135792042858725705400853820499164099933765053545463972631446975248079910321365405770623881143450638759047976711215409965079847776722820935861308731893295850921046759447263555195089487038992143681011894806487338843886953506957019436271765558310282824502579856444752120496549193837481502066011441452992976430801166162429187083952006125142383204277590545804632708668039979306392512285988641051829775556150449067382275304563723438529263307087256988529214946543828774294742010906970479828797779454921227688594660364417417957817186991829766702942481014334051344418715300826709324845288608101760807767875794082295848002201242461624020146378517196413678904166171214486748308917821771340290255569039650822022254117332918664730068666251057780797199196326696258050764452164984720010254862268122034134489160895536035100895393965018448748810443658700983464756646979000240197042916664951264655518914207853836506715132005156514058225798648434071495124853372743419975436646890490903319762902775235697948144176411552821953513986229092166441320809564701532868950738666546333757625368156146465152621163675615649706258351916819920678245503459360904946620398950552533703880304706507936295871304800956224477610496563556712747217852657035147295753438039202287707395382192152740396656282206107817939070726576977784784675544077162266696271427181054813157913285881387590283073898732402575242556186103743407112464104140560869328783791671105685908677302144665772878255266749104542816204407404629953704499096661907949439022088001069851758575378651467150813745311542914791479802559743780329280405728570288863973610248628351103365154918091424657272490463987491411005696838207591258916171789539197087673990932537380657573894542094067860267402911754368320850909766482477453778596672058492226238177155285624221798041251678847198904887671024983754971371056708786918459307904423878563103701928731500150027142962212242595215560013021286894713231418538810831159678814039575338482949088474251989890890202523887063942872444523504150044974061245300150572770083195058808932201673425354882442687908474545621092548633145556838123733165278598218550336779978212504769049304949135860159595223001631702257603668954498580233855445295748514035438816758243390480178349384607806864842241068281474464296876038536905277762328504693642040727826782616763837161221494179061905942030568876476341198063328046517826331534204157236113367854708436818270021074570181714149305411631809674601087072845547669471478379800584729977136742863697326385245862223892258961761215955877668404109444915671558739812234303338847817723065865973659784965877005502156721744274095532517295204923813620726039255784560492026526376568535144867193088863488965392262817230506218151629710601509388148695432616085913858683853606030975962932403294073386665829035006561001660151378514030238431099843362079865771268836682973490428341911712200906039055817169766041195143738021244755990154194012894619716264381805326395828510809874561137804053038220089285167087121189684370965527594629458298072004994583054950381249668834889636711561321459277375458669311821092546866505973616151741110982603218377886954640905740492699267470143653441157998885458814379585239018793297815571886162043307880905153086342730908065907715014718271466331641985605005251235295853555543499425498440688651388548977749012774217225689034110638344988309181831607999727076198668838024317018305206350132908833787261709977095794220172444769549375660548897684922490332567537283504093515326313218398658038161822344652095966168601653589294605250210524328301828031638092467098319427668310470747560297161177956054571951799514692374993821306315036939973422535058989463051479259795801132180625243377594804465282806567222213320875190908441794972530676177190714222435746261673323985662622025553114765749326474929564790134947314749608354606600787483964816838333551604194614697122799206466589460827849983174092847304767412328086163875640210064595167588286773208820594813211488436630782431552587652977044759676592927514959644900422078070502739386237823155179015582158250431722440403188015072075818166093526545009636122683082728851144427191362047311289457814521339998704175469011837823337649694723894724014863900179100281862179809589213218483101278208519018340918142923557066405857660294048924560874094472883814829152460670369607790576562103547680000590697712683072644970024745037334780769470753961141879262237001031756586663504336526395302958281820922131769909571013680629329117215796304806980356739644078376979766889307394283707449107307511313340403916381298737324302299452004367865521274614309392351395163969080783516594114080635354357679102229857296447682080103988701642166068303698846366549591752856697293221411700193843393683499988217537831850658693441881446006801518425853386033960972036871555995233058161781801889708275449904875041208392102940837899102163423262016952035569925500171482042118954703512725569934928867980237546220724007076515954140539234790055485901526597174376505077431068523488600287619151069000381236818496621689347700683744322214205934661901728845024435844986304141112711976286259783388733937165392625848338328787015462945674319957211345918416419917152995767250279103726959194790844777088672734546512546026645916416319585545816626838607060111787546992058344960473711929405308645704913112297551925503261507168667638718696828504803025372719643347914595548570263740551744484480475542642926787848650021129187762354074262758687338793998805132303742636158680259482629828929742410609449384488258202625429646249110888512234193006842989936810624128782307961015605841797862065635876120332907688815641067249514234462670992877857149648453016893443841905395587590548959861555860145249958234479942638153081113692794317278798847531283591921181896173964734971835562529584044317235689233143699064354325529831951332403992727412471264226035347510288644883567671486632085207868529553367565167237801764114606637830560814005438231671560971682192980728499468542678026293656287533262039812341645992487156966328560671114390218928981750365471284053887277298835861340066420071555415460276651651340782756029525631570792087751719397725554609774330890181795500283007159408965394107773075518977459960240433216153820157084426113043225779198705576531651854107953440866522792282314814116760793961621855473538176088213101455370822664349991147093851728372247034691281346265129484760914143389244714029437566483844942456178354145329759155055793106166042014706609177244911616379925104899206260610542444668000748117369478447465764453157832843350216525991768629273348384968745084634960699710262511171035855690606425246863663578440601115105243209643896811751946732853966092284600277497747796077292103419630412039072202706570491601581918874369434585159488913614345077337750493511072105721353697490348178279262530886676428162430585396325274401652865356408170132003624334213985345959843585311245690765485955782760305596525733349722744996621827255781290055016154118817681644007951741131126640351578395057445237925237618568362823835489677350589314063208876123374751345249754322483957460732200543550959199463864623267216016014736676705135989244471047667843329854323793560387932359208699403260324866562714502394671951732481581249171326134366950817029395389744541357056829464073070728306005823931030390749350546001397771047475043100828370173679270882179613936762837084615127634571647259548343702824353525861517401319388441666720793510346239195177219298305988499986165679398866654924415412960702133033434593909066388435824379296495566056404499783480159791877848418034927569293608266871650089322859307482276267827244143957282563442171438375855952662833886733105082660818856921240070248117856110581500203640368036304096284510779817249469764360661423591958262078468727320301465294494997866899770772439827998410488642063697112487578173105420351403284805218993852196118695223233301461542281599486935620820876746229520313239586943932710807801368506981413320324619455517764505136392230688987932471064115415822111220600666859913008584831930138680918418255464528840492123537651199221178997768479090136212199976939849916716891338235845950143528687777881655448806152764217544416282315216547070390742765643361316859663680500008874925799146933647684581285834384089634743259662400157222681348224570317394795094969285296073064684580886583608659862061325416169747042768502492962740331018010822616463141187217340676458955804797249635395861465147137483951465930537935207976125874707808703695515654118698519361831881652122147686032881591412946251460529061077639983812061565185259383292869159053417410974657579829781628416115182296087465077917769951067777917684999285532229614273665315090258182800513563916833842242109321253240955950517288733617782529669567346136282051418585256198967883195100451605570948145283696389147318179285372221794099868417182761897931977781616151806654796770693068411856104143492300512768744950365983754061417951882098762842244310398832725680784132672285451971999072685559768528468573029067357313860908165300541314795365056236029418270218462266925344556747703479140355701962496051849867396704039997740169340133101595278173529068318037961362131619384328759057827696399040421794051312977405233968033702823932757600959799340991351134687451491065497013726847427179151142490256232145295532274845539359978793546439520042205360300812297064913234348349890093385733973003628944299079719057890902200931978648974575103433038807977584223148025228516292571849151101136478375417045308785187902727242772805719394229939207753962107817166157781468524799000680391027792405394576718067550017405023530335920189906927095100424466673254329106328864502709124547962837805361456958350081385127497215717342880081847968083911724872020636764942407102863993839218240249400885120738262474406775649748984231747323312841839781325840166793840516107298445001147833575752350213502363606448403511475166051279088419300401860021693000779565606607913237893303879003813558181356549413010842353659850765101690025376726490056616392921958884783792397281065608149767454229560141318593304072009381467831522707149086603604368496057929438197650949915198233088025048627497733882556924555802338953811897023545029050172952080213868616266765911475981473890654329763284460924008636113990555379346850756573792814592022516980871705226829362288998988624656638875235787087269664844402955956822030585452174673913694337709333195379569625179597855957305523084036502930037887103247660501707429289254333428172773713752128142723102784251564350333191455429326390520554154080249106675786727385786005556224243352483598350894116457320631337639802855748649940815863919560763509789466131374929684070624498245915229429817954377224522146165094916346433053381830286515050972411479175077746958702158787539693019200815337646320281720876906884924024823224952358910815630388233910252175492483028334367322926891219905033877905656114703462970208355370657233945551037484262008531373627813439203528293935010819405517644763243494843412152582055432208161818975302342769291632561640465347814074343075603299669161057576793560960814476958434330131323101921038915053795972274002602435660569540751189362967337586461296400596136845661047677217421552969513259047771164133123300063118268184511877519945027458626305637037707468080297966124338799560212305628219926337605882737750006296925892615216506690346644201203230834367039906655641684777430774905981946761369642638779021427995057777915957555595503675666499451579278770193875087188090725071057088854463976222123826836747176547928734390397842229629000628986293682697009984504175872765460538724184387328410873345973699841939557474042537080935685052554781336120485591617242433075421734890586618176701758184147228672093547955473514047978415937322679153526639066477594042482165856331362755615879232784659797275765508424137633509199437536619390398195985169484571476120795130041372994083647965988806902332612597557858475862605567994937382525194503915631697913764060165062892982696545525849038709795531560329279078484719292145627084451492093602918321612869428630956639932062181230428850657720909931312674139351307701161086175942659889103672553116955026752264358525625105673947246010993460705914129211070993727848366004271280847926307623216200957143810408040801162250692895115824296949302271605463314497264476892147772459178438131811589316445138336648811654850586011796202134371181397109116400370073696035570124799960205356296492397862313768110040745410661214051169404692353055538669033716710806805919933625623835275694156155625006508378977958655748838835018208323176519768473940501031874154851052816404212608487100042677417192459326890152475894024899382266806298200920551394517818102323039043197910429055032482696650246908576558787922591179184971937775590863830206690911728913258757666101922395047060278513032039644844623072344859239245803819571797031491772589356137452103913312958584384529510159137994246593567691978175880524776152484180128534398581475711150340463859907423221436509464845011829491325951215667405057274812318553290004062620800237438386214863665811369560105613749423032651951917437875586724982920129460701704740050239557938036107950180963486675431463680533224334269020001042818928753300733384745804032555622718310246872539553391955251881410186858085489847513218127797856043550894049788683807762675350983357409970668151350028178407925716776158199454150981154577064202122968115078344640563239247166847528991766803684050839541666068728293666503364122862198661405239668058433891828815508781495416332224526608624758368906652180030892464231364685099305015908787324699976930975161881583094550053527232829305826755736141131813760915060423932858959158936940982444322500951599221754400905819657008471071646251075868281010707170011958227110006618751551535911926656534801354597256083877908856761528335668410666812490184517020543974422374667368978491676436689330741149562423553777053495199584642756154429727582094544630257659574252659015626558191266326754316403634301044055633949359198335391028599444427996309837783843402494722578052284408831562910606076202879978106736420748385469253227995576817209420749807108211333759047595937114300163833427179066587371237017019991182294187603261182938520936597337097259204219000815499070413216684721663351459373301795882010819962450342963483727928657574180517192098890331664296177313346042749042884959275946158151369631877065807036653063058898654580447158215350828958069040175333440445831803038161869089637445770461593192750430660921948981558349763219987180519055919038724553813144711053298006921870159497691701042529798901397752185423301150937960718329553567468150685176836085974538646331646491047721691486200145049281255228788709890507892837338990533815230942552150457415611766236007314757761626975707658931347786714622282973452148317526923880349551640547101160993749319862560700331448022466579306093125156289340709382242399157821504500557139168953835571059223274110606047590940999930244066399145768741733876448659349134436846839513926649592901045639217051854173530829688318512690552371899451674289314116507555798324853508806992509367760228907548394737640597051351075679017029986766493292082860901870429913942946134282805646165961165151784493911644086557349624139557387611274120311307272881910550433024205349561911702516028677152965507380063956364255041870326357241357654155469513352522391287452468773597784324883482727706646051257825341829101405350119497926681944473253342175703745966786749440475159320078708053564842109986792811321819546389774501396067787664280473312901194055438672521580587655901505098181210899938605442228165168606864804593041266192230967276426527350758146719351377975902889031789106570232958979654058945434403999559156872798093448996566935530875263508924646039152237317148568992915004140969873320982975628503477243416445002469686141346631904227497516435586657353817639368155481291747591264393927752844282453854419349278824761505006097975045515465372362857708605673451486782535923146752020807783477227851415814379342502333348907372869564106109525721310476529795411589188131299217527763611645303975338024184979798095801871444938367535438440972317304816088739988421651645664155115386973390740074843664777445203374385145608031630588146626272332106901683381122428264023284378605764418239413588020075706653572651659632664608344470584192929442189815281254629999195151094178168365509673665718305416818559069745478661308818047390212331746475317201241343238583529958661764864716665161690410156531104317434243130250993186264146652062824307380642006637678409536362963691294765028843203404277044148994698351100261670214000100040429057694108424999398746552223267378697410860654346905248230576608703169300519752051311085453673942504449166386055252172412910858984863202553849927760445191739141671957191388059239917160872286340969795568727442369093367082720087986890243168045198354019533091617469228189891167565298105517949443211631597673063703396104044784736147092281922443666513394510275190525156524946657253175981316957644770548328246127428387460209254019990565666194819270040378892873053371037873663661644013624447963970974028123333891350294949182325517864558805989696379259432968532171346900424335770679562492419931510013813524579139790373628202878645468628896666584220747063526668628916211004211645294424285659771364885842518378567768568870137786383007685831857359045359775818649710760624041984991257437254505090562082797184166244376454913177827150503638127570923049840740627056293828649376175386125987690663419721295001662307117653040103804038131319618192345172250066089425646250203930995530988046857461398517881258120412377483609611060955890705770353255909540073257199397987216738078009167095778558874940475934165037930421457880584281033142582625000664485660446644901693359511430848022651100687839335580021229559157608512188766167353045240954646275718634272731000273804645845546132319611231464832755437686711468133280332457041379589987622055286499135449383864323234159470462227796693349449237009905760138624294866776640415939028219113665017792134555496027532156854527178529012414007194817384720126476149042845117774730815472587003776124232403283795974508091022774139901972568043295476964743587593633770212906037869342332715289863882491014242024880628270563886184417219361222191189735406421489156525943564712311433389636217615220367077212098252156999349563113476554150101629537944659177958325445420851207422859867724034026515840834748284710457368255987934385619491744828352709269296474801421373966793513909239567586746569174177697060220683212482058752597077086096815281744517356616921555462173504334530897935741530152333717088852153222465394027520986225822395735672617181211918028022907722044638082870031590256644166359891737033147857600103011520500584375095503781309169209903553382242211683062806394901512400225295967857866131501014110614379072586264165525525230076407823012994121802623075143882833334724757354824217309282935725454592323517902233189229122837156478928163569162503697375457074949164979184132171227353542346899855181775523945496816730846655738837378383061289038195314786866432187022920286233293962797454239582258100676226207160665071853911195405499718087333997981567610354311517673918911567084264234505422238404213397383952753266952917084725383686161545128619694329440394836491884493369981037290003677461649246636436897462075062390443734419419896164750636382526106539090924575139573854392530094222326217850614480937751702828209017000453843309827414625268681587250691657341243953720692304266246540725465254338796741409493317840462742136707834152252249187035348597030119259973046383621949817402305156063840682026365314994331832569017895804671209454155674445668137384256645522808477045100458311742335342147947124702470957815269780513094342285575568798576705847188313766129050606366426437787581165900329712153923846437795233574201865295543437768450669257284382459087085475253673923317556613612313293862543631254939709273323662213774846799069881061332924171914952684391945421363886457343360522181370104526258769610326445719512113865818282231357075706973105257576975462001640701527476005426084285331227250972965645961466482150012253580506797909457658184834710786612591864737058567723926497104122037183060212883733215847079293639541595258236027350941307566285722315141028343075290291783738358196256928714060875550092149146468269050190455281097802921387212090941835239368007053283976423280472685286577394297315041177057093560877645929434233909693295642551444068123898150836115304918993459214038974885363737886700426778344117464090995634013714210495339387953677881809684925262103438970247805091902454580423916159959840800492039854058061055617246721903754594960020049946939931472926375340554775337786305023714546327368701797618899207167472135974338007231988684585628582395966407057026079054940273057700651202697080792380714802142867670379818173729131207982056657471717487992226155554245000051158477171914778812577263347798691276857338986104142927118907997133042287224002922435043864285412612492691150204659040924469369348955901945683525889564105822154258220782795821667943591193081211577905900460572812565728386146662066254567258391296191527599369444062720842302773077421787082411719828349049801877036689356380266888123109094954459154147286162387267633487662345703915306710790133573600505738003245447848149201678146407367324895379901269793361382927640542562779439841999443683534905072231445910768256255578772213904080068044987131713256350268480149787496034516383278277959144224730313775381179800929512143564053751466981215302733502817276517760267283783505081573602051824258164522211235464699321066964139277153267316682842194162720337003049054071292949316016960654187013334285884193149027844802573333784679424498635338193107991602718884119698189648729808216314578764800949408810417082596421607125712398873633947503945108967760313218080538975802244325387058635322556132391413879415066658263066944747253669481853804719355712026236844531000334285855141785208303878219970946071530921618323844520626312485331684758960060527865857479144372882239754738939949893620446342494359693666840212957700917223539239648005364051008516192879301431769649601787866314122827296788099542288765942258995651202678406925805559177145909372300273774303020310582186910459259213135420153341007413983696293513582541061429053571902663032521388363793271376213219822887329443950296475821617462624088304205047606472555649044948199196514739289886122937812049045895095090386662653313193865248975762119479343199371150685775386170833911217360954612482728574863890336331085730620652412785493072156979733134171862236084547926892257566301753194932979691004166015384967380048243634802426783231335961242949636799981331260189997117730353403591622765625838851698669032490000713204722246781452708640555376047515569904498899145803274732203047290416494270902941049593257965069147903013885813157818443246307908323622849506191178861731210586836503946698008612119516369936793562580300839928272873410795376766948745208090162337659357303703872441535397882205447091598442201314382434215088202587750634573997496367156597217008603541937434264274696577725141257731240448466333720754799354540881012544975316687442681968493593993190558089408921382451880820476254335810889378960799776243351856522232073509154126148868948070538876291384580462913567069804879555712091094391202066364711411762258107974313117196468851063838448908763165243808617149122091125234864633701125030421546934649095159704900175997579777144543208126745451112457718024524851634079470022653902046294867109232434174706389602568921995988501142934830793340853924357969054210199833152143534230854920155705706553301088043465151204533438904558860770418924102159863850653766401757613661871794749045282135622540222349365287421893690245519350397429061825353422638555107914088123061153680318610221571612105579558834698113474962984941022942572010089453897133291288404323317256232727213031773813027313079019680291078197425273262834236946951071431803346707250203089686424514004063002196366151392831539994377407617825125593745334159281810785712841649219326180810960671004569572946064902107378028386210806239044902820501810055508610400013877835207664843510557772995096736618169643627381842001202752393244648341547936893154066000232294709495018494355225996992440706681340276618395520005637689383931459526172317598302331002874498741290937774889510616764291388117270232516196288380394075515452272540718127591645260509984820353602609153869596732201441034583044049143495325259797186140504810759471428336178937189120883090454949262626319362394189571618645441062870803527893766907322239039723261090689460101480148385414610797161208452175830735274916049410152915975661345796444871559194122684905519832913466636274488243208083852492875554892678485557758095098225685494608827208663904266182233212900616811795040663135855972242893348547439354882794613378242613334357992859702273283353600052887318606274112062861742285372001187596414830683376405162088115505652487868320118958042133349267772058084340894962638704448836973654500194449707826897392576908051642666839550735873266714166130095596760708621300299032986627441860716453635948704209803695971294322597695335526695146991588718604459968517275029992313027259018604169531528947340636182017208723936787948361158118946843162304025529781628423535316543343629991723040205664888128945458024826609206681782058425127915488015388691054002944773113986428331114472039395597119314859132270349814755840538644059719081282155867359498339337302419042134693055145214103635277000672844041082901117519686862973263941715247138394519051089275174420156848920804272610950396139220723119208481355698800365862963887125418037598043068275036063758748822520993108876136911770345976003375484571053497201296994806258059465394459484191961534192062904392232039355120695413843644680012726593492965521141768992556557767158939625569578027851046285108867908819768899700078494345925265837182754674986492482126205468945701824324774665421427748057204670599414433686947432099595956073425219863821706696491811136984229427594740290888824650179857030226203756348389542077125609950150547965473053815433704265475080922662841802619058017395886268662311638327725766082963416423354469470051006727947645794781825175418796139036290043363291116099206901349978192789351559416714603603291793229880887726509047414318003048425137732154502555419552916100380985670758908758664252098630268800788247306091871269191979604539378425637180339627759300631002095465755264275207025273899702329618335409751269991191744086859041940930764542240488079835293516247018187149816216747273699120457469583226288042576659281499879118977304353772616254025092311230998185095900132829726670884110496252196498856106142944060355305277578504316917619530548980517836796355102639769087331158387344507148964790129931275773385160555263714230182406243725038638371224055876918733506179754448148150955403103895161767397857679216779955450330678486366502780959182551163820332130332576492009398383370316986714683866911692017589667177325914165539011880075635834136598881965098365160702903165766428810732647625660553146208734007945809900493302897399310106375041168198188853366722537821229628005705224516873085706664037147534024719413472993678612558758655525271174752687760589301704857935008762923103915390153002088801439967162066424761457428829786297056440569015126402596878128337874998443010771556141336895728183136727437896264305252495050384915773943100277740927361887347759392257847400956516146550291276906263260291421199966410344199739062729982159709455272283511731619515580310660652350744827413226888994828549695963983003622929618270212032605347583121897918385020700397305673719919433571044248857522216646184366616145585941583729069336050837565184555845643140482992316845268283778936256632592832710378855172702795930146079825438007092853778915755634707471573598728309276877309044310117065218244033292183178489538976837406102560986532344614458314027420208792706494753023376148981033104398640295174862508083165117570969594562536934870673967551961993428438937410059991600985153893131906736230712145351279471930027303691357317895773941130604009555582177238962706034871948876290514814826258600710097996832807072844662870163558664698604820111727847631343597132441698333374575694291263495352661738869170029845685950714556450207135917073766031540259897929425774813147123112421734091431280408271110368517544540969676641899329151151121290186043718687808369864262951991682710594096938985876784568834863894592134454759413936914651159767412528991493495328160807949033943220188975019646254584146195312011334391984921000397286011746772346828894756729109871690491249525416342872865467016850939953975655609116306074276867127138255445386785142057854518325152166555349405275276181710478242038698488416191489426417501676016780848352065123020815583218002699533928652379907545468629965096668177112071835153189609096681900680887099367180837173033077586282574261197814577970724647587817103946406143545964800623198651634391311802570563752448890991387465703331499867280806396938362737389980441281684299430973670160560020976356994680575613399409260458002126135654238523334834680944158555220764229689998002307630237382200011723737054767127562155950787768541732997111519643998387665951076962261706590820054743103928710573068140943503453621129538019806314556390320185106957722101572332747469850132718275754182620834361554575771432133380017413419300641627767186073227992574990342110057903735268766237556416144741731152994920374461136568272550809053425058041964236572715941948122938729985747586457730905595835540954783973259999963541528283082145589615741655034958525050260695574215019177645142463230565121308867844935032976385739748251732659395845502155568833294190422897938209321211903893812731816645656302798449818675441164519768645070159814896154312732796246494897699601212776758378300616193654852123261152815672636490735022534700251960070657683751926209228025375402816876291525992827030572600286642575568255279395354956586558257176027994306787573170568092146169231478398909929816125880435619657118068827202679972601197376036520707131587015901222153239430167585553592761510533282499039786741256709033178555681795542540274580521934095197267371651606990496225146115615215822521741742250834403916411376930652165980004832908218730995893898917763015156218642806559074865768749735893461562269683074708057219600874527190042486282128671941419492096365951954005820588027901809700280128856138804249224806651475596581595954044566261536747000832112043721236062022363158274040806399716354742889655001237127863701203594919575619626615392116332950913432104790425821810842211271651804959584342031077761132465458116082157049636714166458592653799171003835059946379153360245286774984767407665517111530155733197998452045214889351173423898622576345315799429280522685859640181890641948827902006822014399976797884940802088788234826859214479145476772268624596694872117353286366299115613823259024944344180472083176113295159308111798897041173027591187795313870345056416806880206050010930633203810593960828247838104668825539233824516434494687049382533956185626681621000470326958005696465893660048584521443403140143918234213930734068983036305803249417977994623895573096915098919160407175794018447223985326540796583376085227713200254197676499912233360387262872594392532429157042841533417087107348013129680672675982747853236083490131785957584051935784711004089904164694637994994889377507959101529575213737744187510156697762800586472904079111688023541655533949824001107772900055353367796449273703087686436264572042979188143986008850393376773667481083584724066840505493197874552320205392936717547260710117054409417542787505175395569763534286629865432722832246673565402136874196533260751435735918044643932015174662355152930971325078154918402719986488412393155757656646457894504858981791329573888821582934762148595115379189141674827477340274970601110042744192169421071948543622972344002497925042191239556971080043190022996978429826637323641564364139888827259357113473601622720110253817575578962150706097597149081822821455866799857805797745991781188351226596627773373459401241776562108926567018287811487611189380592421564218189606321786649040326486731217133480828849635380898534984049342464670484754906880070941212171488468010709373563834881457360690545023762106745758281074913699223854795854568233936686163796692886462900940313387067802749966601509516344015842787786638052020177330824392765312333924538203944632320903457195845912404094236407676344722481906830149182683057347269920562110951198041190484349529387346130299429767660814735018150405870054734781995536036591125527245853216038172792931443542646715166974240123729940956119845093532087953153305163273871844316982745938655204141536457880229135113358617267892046869320163953228720501213628944546007508967646003948846191824399794364198732601867465150188183856146207096719399325890891364553059836341778844736322347491357303554972352449052009932375759381907250267441777351164505952313010617784738254371001918547421235391394034981380286505663237921446240301495347653824232947965988630338969057533863848817189628249737501602350191741723864868008137313551236133233428498055359226599715351383643418422034466253596168548528969077392053354180122642298870162665369719170930538414376465620069924965658987326914305265479313919557283445269377364595254517156566363397910547397784428555054800729260511443474858730981152735034780972465404923932182353569926208906968190681042402449031750528997475674100970883860548799438998559235617819361702155781260082529964773856082492233609867280704377572508040225251641802695859989584670508936240064447742328815862299504418844456322187387038127466711126418417668643527355925838068470064184398933934699132289229856223582006952581410027661916784319371333461717094777611506789102593267841056652885811433194134515768704181409225626956103859656361050652286405868838090663090343094937732829652799984649813477015039460665486351204823129236396678650439775338796415374045275197695163518294304036593304314321739612563889975059851442345416851727385498302333884422606024884664751754313367602063163227112769622111022603046358132278371013723658805342328718109380901246791054456816882587135227040633185868033937734698065687363566145357119550900655771838244822376718975393349183395003165789916708436905177637313099143386164003499520736855167376716639266037158236809303349935963000646731527374188711292395011863697874909436793661245472145050334708312797708370719735405267771194911409293676820742871695812240151575081043635935883617476716415429529500786354154751329736640386313143351939510908938291314006257056284217209350871509544276874771218902562726302115964544818363407537674199321713229621709631966847707033835339339098828029480065443523788394905645200333398584843191027572517889327588078871788195355753421230597487510662051955559979292950223134608288932392686140838276737992378758986980408491112527033323499594620099488840193871600067094240922799110131048819949315099576057925348000837149453714016470424508774657616177219538866536345699455190339041602783688491277868239044133939953667352857246517784934355909633163183094722584001116333522819712709466369606640279638333331729891477193757777638999219146002309994309890255770505465692032444617312410930562546125419009368065663122532506715954149965067220803849248115561306615418949880945175521270485595320737919001625738113529024574953726784055765775478694425655752270049927262148926101359251674379298710956242360566033749831820767402194085412375582742353358677693685049042860897743195257692642006306901840500274383088711467020723616127751624817593955422806934522522176916187509155998608941322921218291911235015620290010607836422862759949996107734116491587460463365007929563704840799693210360403467363746141266161355161005301004381910605256584176229676657800786115806168911351051319165188712027087721841792535507599338187661351744707464656466952229035405910830934368565146338841059676019931101770648396864337016730095059475311584172051324128636720398129269226446056718530863929803006596450602274107935523708109729880680866229889761393464567076627257535055944102565009114737145310591417239765602197973110493732552557239582476661912915768983691599023643719418311541991486686750314600040642282544593380252482036662682279127930790188238733148395004389470579725910216034133538412810305552039661448539607552027037809918979370213061344368715637185831604654223080119486953681149632907409754290401863400089495560305539208079357949883097311775090654513728891224256091794913255820046702132072161507337717108150976745259058371781540409898878657077037963087836463829487960870929054556974027670803100883141203584684188911935369133780021033909124524271354038457979157070174778513035104410478712287301604682215435100782545343318758111951548259115602567157891697376516870380278385279325820216503005037022270715032139877136801650463793226935672544256906061982280296634706460687579562028793750031615175722431717341645765667356979392615860555206754862444318958761016583667008524890229205779815126030593627588373204117692158765890304268355859943355128121987139779885827799098984149460166777551745409732898310577691863412235947846835179505980394802421823312454215951853176350358014171442429566696664342873174419417028708123652670429367870700702885133768272590527068930003612000065303725730159687154996710365759539294571516314342059327623036408513441352347053055427688507099783059781549548848346026022689402569723609119920607669398068133401599491499165875094432310815835660863331065946774918332689081755807234102201342016556251741305299175396960145850293377732608044801977014179258263438738627901605234225467327126271701640796504256410298314710654040773736702079357319603916583695827271007545108032703037062720254374592145631910678378670811094641826057834818443413651875032172311247899292616018039478326839807794688681591309819463495709821652809962496126543975123565568485608342277956094186444324488675000680658927285803905710943610434507913472208120670948040533422858248555684050456083084326369497621986549671935235542657068820365836209492745373522139599829288228464745685567211443306946811538220836187900242975518375414110310632483631369831026351547500659776205733616848380356532642907330590127734359825816159483734903192232398947474539013188861213127361446901278014263538304935036324728731599721558191936769367090602356206822951107959524165664320737847951801066903396623982140098691451872606036187374879334102500824410885629521048668965021843650593161428405512281002091339259347042844157755241935189575963792880889485807147646953196882130027831740805530697118212499423328876765678703801458891682870306141348672181597299743009668736879687199162077945233314159321974142678136810541884490294037281741167955697814631196235682274707316656518815662416916165369054866616573310995294808718536309679512907839336365096783796622481498419517792049720520440987828089379769658422871216673863384450191931144662886689857927910523706329970421040380861741568759487485782783040873107576582392287658703919160813026085285569886637389887906985489214326259157144879327248194348947734315446323663881255169998980048184925693957986433423704680993001844948590470111558925748974482930825921500871284415776709449598488891219659479945981724295214902157046145533635651135539911592467462074401736315604588762757239252072867881710964794511780920066192900087465776259496846835556988125487800116512067917717502177885312801584498065826219494213353328742174470324664286096035548931356764420225355243814063984610757501527270802553544711745184372982496713734650007244042384732048004810070186291476954805816216200759510378780158325692010736900106180395162643385666932672350384023942567751668185632753947880339306511960706741744702740102862693057242814901529993820066466118838135300259881867243774276516411509516987875016654795517678769186499653223801553575998496094674068986889135956869482661011325890770829864085054026267552921040830775216395131179805759864995096172548370016051234310156643045313628424391271773202000441321319969114062192895896853377874965546360436224315345718919523206168216384424930606800103496826906343748378694238495468198206572053537447559084270874631170918374184317938345956451572809374543263252776777542862226314073585189890607179965146826015678691235743466945548553048747582371143326578927985447917414610174064845519809782981159827407081009014653060870373429163334837893421788988621131063379491581560861172529627302995521439273762420820320517739231031026148544362827290541390164602012133729074549804463064797610346259607316908868615144171300166891105176948683150655688441393802987110558084387507121442852227031520242340013686142178420934470586204638824202505841710125794133799942159840036303893273504623557792209815796512062975850033149202801563144302892427996894917563022386287572963395409094470231542884243789194459030798961699771893655594107236650458644812338898839316528997421225611834566470068641065409154551023976747544042872624624667919593036851684142112668165866817659245289168467115470270784075796468210117039864081503414715504984754321522480734450413297027428837319179605972554669943983737023801759164838722219353350554503702123328008416096826560215163106783257659824047142986246952323201828027370318974426420900921771345188344874756733474995008048168348510224065865284426658960569068152782399802552499965617855911183832360021547039132214867169862854188243301032210435895994560828884933389546786734700639094951546414366985513916481836247320077947644630146949072225864338262403419496233420868484763975891998975188020321470249396546759687855745410464330244810455574101522300726458213465454347248118661413829499438568128446678854951524964613671782356848970648990684959456286816710844058241264573417615534717806568087763135692097175708212245839410754636265013347217921403264152722883035496473585870282347056405387306868572899812546156505734317899919489615854002377617192441895740765140335248331961619802461391752961938462219649231176360519266977710963379839774631841570324549847797250580862642180356099000980788954990634884086972431037216545595518864085918375112526554255597292967846717867636898924186344041885300381524674293568758411507970239921716115619845692834930121755075086333095892615509492278238981835298483016006347959511855364873333143046368639959224388110865638565786178537778585358473890252525176784106174961412702608384614821136864171702764694505579939739421936335287899494304653965101318130007819000018279719504550557543611674854881769976266499128971513026302169744408717307119252721278983388895270514928176475971431072390835520468125749763900824164548796620778906658911505771966154368593714375130231221043391110633642956907905546278182929541624768356240485555610448217570624391319321906469193841378841247916344740504985971306513197847598522229753666951032626752085215962784165064168085947605349156562434665873669867831847185086994555320007850592007657135621155509910498884596416487797688644256932276862560683692782629264376721940170394040224286754195417988418641015721098566978394926894131993314325481352741905032326476485984924332117887460229989186867822410181948701007558275387846808549894565262651295624059445193382765838849292089718058227416321540526840362454008852904627758223847298917779121583573598123816140380251394884652086902287283337236022183404088049819270240356110820599043161288360387191727306273163553970736678062935213722560556766301745096398240786557974896133501967181554161276981663501189707781346829077111540970129480661435054959810133286846902923656466427274748284495062967342498313780816233667737649574813776703666098007131838081828910082373721086702231303438216164390316716225416804079149976347621968440629080441505054220650632530081389300098285304221918606221854438285668769646750385442328889214752495023578144020771287645397576314811543455995581479445290906652183010547476158564701174850919769191972069633638214226146359657353964905654754598609498838887668015610576930410426522798413311813492161322241198456905367001757222580803142778333521869828872811637386674208402829716148302424231289390939665530963351008490698041499856106492908464244681528645336928634445694966834698276372357263524424876216281680580573014908921651961748572420654323327290466088681918173679670060568939465721207626082727485274395721154149938555809743092448835332833183073745679002836823680813451284998227847355196373380057029570150866669796195713549755716254744234188917281089178090824609205282155110603925803223341738369960734652124920488796664514012233146690658081085115060892460011303756710914422894269748978063185882060258247478691378628561374681152311627739962934180237107569194393769618747718458353425165442855711791246463052910749914134159499105942019079368534381481254489701402710947027461219359234876804235294112834476592541034742633618318341256609189415000672263342826981418687948339862588611145015207533610039836524552849234085329499123674492585863084773934573409025427230123916538424683557913188773847977158096662020938284302837807150486082147845835271002555772000773245133701114146329421881944076170576424201119518139435932705949468868702481451360165813305477622996836042572808922177034490403354811431767606809507447514315382715446618986737408478704125074885938067879501513755591901664573392567552949973955654529784605144209012277132105774343420267147474269502218911265779183617626675186922091517653289427118862821740401105604325212768752321589131662335463788812767441581982044533324010384182224583290362930930005473782812720006571608654745718835878048819157196514094331385523313766180641407922149726320352184919028966718751505598360275349349042871318093242672679573292241659379806883491024077091251346400920588277591570297074362059779967751509615916803822185082718099048812104091633447022222085902234944635637866491789523471206140919116558587593239398608415796679307942379134397611195319773203577753344481592675612000293968536437042966159667494678692579451502927074988213874552897307394874767204710132548036723451000316126454980035042303033475971369712070657208466999962224953628262677775337818864623173761037971830394185596612686253018643969118007677490738357303749748848221595831275620429727153398192020520314311193776949782248527427229471571161327315553758544918694392029304868527887589488364853163880453646426653180781726103083471864945276238803869203002624726968041034163021707333014115699608281664921959595025558682756565440764698875542139301211324106581754502724264977263662969295014686461939768554757125602328312106333568193424506260829391757548648531958686939892928959433009861324005209041445794303991468002341534158100206473978833987490497102246782273596588080198431300038953067480203047451469753631157076284549148008780280527411274743755519984025035504294701891622316041955514639383964814059569301277799774797559067935101325562856005955031492220997389349331805684532178157737286215566054586232356649524477500196186921382810741533674364126310338522869238535714105247295543045703300698216381662019063192755369370910698961102308758558873342974812061708770361130414356555544015051029949193476767658799412702714454393059141590859465529202669876536812660133555116816493775717199864336150339204995134026262950607531905871288690387492881611024107081356246030748274363748412775251003823167362781992083080436221455389320662548748708821429811275682115934102261967826682975557827323721236898203329263036365045086873704316989985366459595514181954715349011679856382546904721053302848453905928886068236918151910851271299181076361972207137618794639543221101272536787786929062564300871088409572417551624106799696945702851231679848657736728563065067349890128790786485166464125230972709429907175050561548971358208966381605776514756256573796071311411889660145901640439251445170591421578620680232349358505523893464312486287079427201002132553752485223421864482140292339968291102971556891261135038564592937248003933932070624221766923884638393725943119458239385206467639176786152083072233844124890756071611918537038764728942874371150922239686921873935036867126376256908276259068263436134648192284358474476862907313129856872047427828937634274560089155300930477302210460354613710284326676993268112879109144048170084815129916919646788859905902711673731864545778684347660032972257044090680828913039232749798640121276077743445927827012551603154622745865326603049042255739346448346021783942727315057254327873511730189671131935899748350221907353071237174881766248351884408227906724121895334580558951800493172680747694986762523199896382959518091679804340187493790858133258748889081478064058127303923754041917087436648322685778369693559649684436780935633621001317358053993143376953011282468727927870335990900666922818893851571557971894518093974171600922486638897490714293769567939136163569372769940767623316147748550984018662517923437529591804228975364379011827420334534290505999755378028831206172737365225996956357047130744733017062051337393236247585127551228271694744543480662820361665641452233736680390666560153738603857868367305776991248772581069116819007212626784029612708698247763416557401729085859284101826439239046595579985736740678928074506918547430761956770152623897481872757124393438929463071826305012400596968941474656412651772134120964450105945916598456729441775632516097425130274072622659623456501529038946150936875174988233306632046691717982976824526104100438464401597206104685404666495890621133839260318359700175259477017953720799581852284187531167853256042947439726810070533750782898558368805701579530463030310149967097378018488854929746377381998857158197579007061227120496521039532603292070931512616141712665174045264260481886850714982991324712672203588124481668684035261002628882011664576267027947193773218921245084646336795054513663834525871607503674557679285681401840569782128452250739612372049547065271102619515026045586918812139544386542835986666819099554678525030207698432481407019082547964870847405239722481801838419232350422623287697094991097245499138862985364995495509073506301350514056359813663366599461836468337548541226332005331278398474556224634023129387767619799860682049811760987685467620499134877239501484638654211990802449075777016287558835671330806067616977703589728001480433114382068951523308969343886595654010848801883192656449156184854152193846292420867025352721027315050404087715322979498805746153514470311144488241811068901697390866951461534703377923846314370489701465917784816028966431315119684708015249237648374304875363830504827477083111659135510893413668373808253823884472527212441980484907515820695774041388956639011189444913657502771924722658213775018131282988780635750954158552986236577674199753979264971090729587279000189720390295773780490602111468724177159817294902400180965892333542662610710052586764793780097027753645975240603986072011549898344390639726294578033733251315813927767159989256198497427287203505658911720911344316850922443406799074059486465888763983112806611054689913800556827854657731152603966263448626277471461243069773739616967846043854366620516439714672143447807377345142438823936333607602901332077535233767814993636544108037265330929590502933054720256251958930194583222480268463147775587586873714795193109012518005379812910450517436858213782540581529232803162586999383164559311938692522546166604452419956873323225709629847396733521041470402790770440566652138060820511240363164454395020390825805938328396808990528128414648555808148232376125397213628010605038436350382420025857735399780917065292204303507190346465470423210428709120982612385255208301422841102725521522483269063100217920682437241409958520786563647482050331752398676620824123547801926567992109109861518201725510072192712572767598102574057383768305086744172653528802219034743653260228190783704118998625638188320935978831117246177123963200080277697652207175761678271086875170059304801458033305625632005241979118797418652760441497404552931373025997871823146214467591325296606976953432558269180490317883952358246092020403951506148938283366383294564193351874610583708170408126511558417410830620211519477896100630008130868472821010730569905227823277430879501416988401974045666893020165650519947673300559497258542452501408421980373299626944892207321270049088494071439548303987754309351686078129977478686966089133045803976735641898415213943476509868313047968832751914718845749638950731639359041748273805074625214181392267792674049915111017596293162549155319783861520324316395256024392208895216841171539697617363118982220956633425602572638484004103241509387487324894956337724011651469835324093061074483932105042680989293254736464223052483732709730674154639824095787700946841451425352642564851131971411261590953231977596068547541152535549194857750923677768703694356836481186135897607554811865776660147206258402381127176821068226289839390102203804265170787067805035986436639166879653985493006861167752223590956101921823919004925207173721315395033203477156526104356495503512845815483097722438465703632816850211841745230757408756294220100600249166941383037314160030594714845077914604993101971354881984151048377309750488938784738873099891310867742614532728094833663777706474498473357891431467847130167778714292178284718923415217115422305023338546136952072616954684463673313397509447714390480364204835922462863034852475632058735038186195416563711635352256810812590782033269001900656294378684681105198875570244944879335984562469079185379730017862164701903528771409899763745419615797550627972434913745230682420454635661266841887210367561721037648009143718272393532730322695977550590649962349380101010453591674687395745121525918633822440903973920241143511451909747371890786721360609034117172102007913321542405283800946865727693090222523194443857112381296316429470484994776568545637783312642936602262164090724959738373450569434646491720064280466452255493717407060225054670626466495305681619450044689370376350186614627524586835744529711163756307009079190291250453693452938698055715985672199125532706294371224272259928730797487211922743073496888022476083730581754961720494837558219802003561967923905715020309463365133273290125863195978689287391616759040565782302336302912609824246007987393756377908205827698532308560496162147264129892128264405965749663829334811189120960833197032782208974570301078540636622521051396046339568916687973791051661982580318075305004463976546246134004878106236114307351781838369652451517281399694415475366594894071116972721849818961681287667782864781700176470489765362756713093445209026602199193941388545299603212880729479806378149624432141339883191327208242199258525599672765164802497871878710727831367601417986179187209347470802480259127314888102688067196988678097365622462153284646547730818995193998724933347357782016612433726679647314039032811691699806420467695368214164257939149417347996828832680140427267232785370633064457549594798731766458282822125329570997197296119078754003152319769399267400625723467925928896401921831649857259188499667964358211083269283473288190272390831782905478180827805956740475587371128883324217351627372230156930720642693178150145995410567813447225926991962616812052889910744447173277782223818237667607073838400241692616852051683772533104937400467900658856666580271832078228018274997985666608511668465650334399138767117749060160916805241221147881567192067126504067559466677485870293222516142417200464974711830833865746850366440100789325004370660235467660538450721295753712308005793380306416305378934889689594732297373299865634459954111529339379349595607099386547903109804367244760838505627190385330028349550237357211462520257748098519221267245334844173804705651437837740912046568884430732153413821708714643862573696287030783448224444297428430863407726311182396631350220195226703244819542388022641161085106725661679222931543293979505570428509841210008910221545013859367971549159577229489377042215433009630075715639449767182399069986984810381385716228908935153239594637028784653941589676526572652431508172572769720020111016807870371016024105925231334212000879058148271366740957180202845198634152996916928416334412755500523196298308845834337821931254219974659826420230827365566375946478243196870929656707993508394252070494864552237109057637481810333009440804028482876651639702761057093252197890024023034065756297454714547790897628464163738144358395706935121943252975105164158263855101657224988576869864910650299245079474847496601771488847643671557520469559764856976915192983104448906105410651610973678963604497435763239477756722482100177599397773209232879401251631343394930692872928332605616298946792986816323939209844195215240738467950188971766326135474863527197134815705045444224953524041440483381030741501305163343605311547942845489396650051224618999366331411995647298506075815404918973665328678287470469881264479295818082697580167390664273890313526779266289783809007848433953922029985397170691078724250516223264848514073771306850740913098050351332412896876388302862709974417218754344251258420225829371837258980985815343890872851152119444452620607231440274878893372193248344337606037917481624246949041364348807481116079258665141730673844343681205791122853847757053549665385971876898693864976582003523240652552669691365111467260749287228699704039130928446449321578612002198747896256167193795789289836832763693002003667451083824096235651626895972445577516166380358493341745935565427421836811049468958666729263126006590286467278691215954334136265789814805094573281663760314159504887929839108873466307977019490162273086320473369528952995632054851744643881156802911203194453240428941859557126004489201406783713802227898195284232160965474437525244305789908395050080469442264833401237779919780792017922682130697552287021885576611413902003318437601421672176798605482375052721238717197176882007651794299319572904423823120579520442140441041428008844093900211861573477433425638558629816282095068894333236480947725200560341546330373199380746268479241710429057096444671057454138108155339393235917784764336173247583141649127078752308927924553732335145136074545101962189545366071192995834320845103118605075379375663846881530521658216379596701683590467326960396684691189523949721521613073724405409353405360007914045145406549688101845353473519023286294646995665050809301512949840963758075413207195176547492176003568245633354447525037419561409937071738508482904099333348977664897313327101121478640764821238324630132810570791344766571798892331733384037706290321853778268268161921303987404615682385627294306125276715881900666215856235956328613648866694874506916968891206887283032656241284730751078863558408531380646674968189258476761018939882081937008725345038805992782333111239610476205915725004304346009258973879520647214453541135179035235721712229529431081482145442088540763435446964625763387574961299677426788556746925316806179609045768217583502616854194183163499531575772117313360853199408026036153069641107970498267540120930240229012206940153197736004666440637548125697366919996140910912156426112541190693591203853474088095608823168987559034843831385040742222255951991020757075285331792300191338503558395141754997307420423370931882926255798919417948667851195527343956873863430544867709444229265254247608144180635193303851514693174855236052696909332581335875497816308120689742259586693327194045030723766455178381641321101025165178278169919573731908329438728271698026164424677674869361540137442667780313171638657180954065145059956204420730895800072321155314012721511044131090869240420208161578335161320285863166913829879087126224055426344080601299178661894834104421406002583983323191702354756241967374861194872156929646917095993853694354415466661837002149637570409087089058814721467060241371297832182595811522583369325375824993128311629301720838043647818377195077692792627619366704081802774564172795469217294339454677485618344449204204505347491697964119573839861310031588185021206986940341991382453294378663880336762542965498144523055499575871782305945937605670326158779998173114675738778895562557401717194048095240681692347622726649868086560060777589838993137360399340992238208125422902168668990587455627657867085988537917243517779879495515066073398285372800173246300555928648598571474670611199735497361431208654311489814675627879402487405708257697047176047090285940398196057748638165192693533850306895978677301935672567737930246730359819724821401314253194031665282153398205071155176848333974042016176707149880368340778730848935791976722693135871560932734528712562200656845772865080425865570559268428218129634072576776256270459496466219228152232852829011058104935212512985671736155882520326458447567027343117262257637088149527577984760331118291380794746884644933524745919893388909132970931325337466895795408842043187150707092365845027160585822705366056949474337067426858091266744552518854078570844494129470267865057349027814434956589324400186911247269338317563196956976412724975931053783827979277990146310376043153317973586290703756993337950974995279504957342745099044586879994100453534797331138934244768562609332305503980540708820517887466928564529279796598021666758679778891787945517142086162101754142412710155589296169540330108696901142538631346376907695827901219280365019782513797557770033718180557233288850493954577473124552821895586931246909521905798926279309571188013540337691833957622438842341254900151448096545422486255529171659877050729671156605068327824654661611055548327650764922776546230317732881518928274033859667423572340785215877550703248463260720250090317420701692947937340404187472866738355410920556194970497138584633335473720143335892558782859287255193198598751660819529879325123891787796304458970521470624667323835497156374941097120231310045108121417399289647776469709138950000787338344816443286006477520775519256476748269275099192298627523324650880288964575593601239225598825480237150583478075826229280794398573421244635420176640446055228831016506957275877322536883030493728672946085407470394673400462810367868509639205358434279489650101214993601207703946260143272068788457902700844715672926057997299728231752786211546113466295252068464636545976768573040310082013278685192765371594867415399822647379192527991486692469276952697318913523287318901206134617043088103658223533339413571713826664895065934924478750884336132075408665028868158488465066473043741119314437720055036870489932558511148536118570782616045243973077651957795062153261538422360111271461519925544539871204672489225881555813720520164680817152396010842502837623222385258330576668916172592427505430319369323296983827877760660089744249907930614670731209562187046117079851344231519153788557541416168651665453373958066831928962299254870502680167016380823419830349532533464301334099359919652975214022088264965249082375510243636546387836157656980242809059724421529607909894459133157066994262290770277004069754427289321168651782305760400638362657160122393060097084117802796874731623450737872597945567986939744925758563430632590264476719521712999119269049117779558152150774348472784478318911254613997304940045932427449163340871314165410037325171457980014396728593551491707879375406582495950926579258164864662586433289157451885958284186060929404527704475776412977568108439062629365616762244936735354547617511547912238866533161440343425601988725019151482173745384685854489713613753262943854453445894943691828230630102356351715932944056089080517918067878013492147994442885410916311509698064452869619948056805714233265150651197447370657452988941259999067059945583386248255332632665366944879365482639324869964381795803548488851743511928818080585793019029473001587597052217346331546565202803201173653470267481145277447800608623146516977487387461765012453515701486761810744197788612680767201080148986938656849088021103711877916617989393430993014264081015147789468052375774016892453182577545693769518510872721888984046074552663863000726969784423202360612325612244023341566073584736427986858034754254699065634996521861444315132520872746158605963827966511462848038233027864747908566424045115839007732239083294153680201483191949011714933953467749095667697240079900808531081564879417827185118410940718161106676840101888222715943947335040181440252505437437385738238802778949609094646138326373821163901427330719798362014739015925153185717760325970689068884325896785806549431187969514048048614450425699837980713447680974254548966994786541975300728579230525414066067246413436995974162910647357603184739171155287688108251022107994633720658463060388179692296976987503151346756391803491211354381062412346435878258486711851427715062587820924773255817761617189083330200702115871119056869503255454390735714292533135204719030251446667805361695719343461111772688821349680999674441409910901138333421038863653549038540537214047925303643455994149210699866423057755079001986902008549735767558267112862025951739075509079518128446255423141622941448422160986305510173398854646415804552421438967243415728410066784622629664573538946415002546975215644855699922424931364629641430312525618010519190705961026398412057969319210508390538231700753504007117952314633489683558009474447318222650923537596068618386427067838474792058689693381308581278092117441661128848971292052968992514148882118360400931053515704037700186828957672300867247888615674791513972457905614813106448235134531068050951308487313336133035617680776131444586921674129839351615898239223671048855896131458507700143233766048005222662749757297347015358709688359684171279572367794529227912071365377430462654294893411548863101947992017282201044537859748576694761883504832770514303244738392505085106648967702538448959567311977694049869644234300519259950005829861390726390867169599897188140536746763967549544176861589681648577421224557210733444160486048706690150011829557840074570866067045556072990113650981296019980122934310386452928919503868222340902034290911307328130634864585155143044742256925169680893381274999179875317503654557630173400707782736326742915640003697371157990057947766144083579015156324092171541945061580783709132708250270416593743609786117055366917778489484977849533916822223474173916315829335610834746167439367756414224648113489106581617240333756132967472195129041096362020988953140684311856551365428048473755812407158404829577505174651452025991269998737938637032798996721501951167960892980043225769918257330708453618739119499977599281153861521725947090106424870531793968215312829166986076121358453878859785272719139793958225257078433556279028821607792682748004040918855177961583608287117804435594483389371645910282052880194973216112664907435463191453216747132473865937815387428681310147562409706748441487600876156431765690337112868547173117110228836645546049374586655367695119955997610610942009527791030989233376294289012362539558629642530520995356052659808161982787557972585436793520480113467870147240655361625260111002667023263932210173889975425287558379566864855063567402529161502651844504210624720048119386020357103528265815279997376991038895972681717513177508302891322533698286272255438008907877019054887345450381274504410781182250035943549016743197089480533262063705656690927208453581192125296680608150503805408695019420029345905031523420599273994763377914418179513739876380324542627808838015224578693308051386761319560061899731644509941557177442672306712892428588686047574075507781431801980360922168933840291244567670446354009110431177070196502646261911749601027797879552870007202316602348579124849933221747835856127254746729027369943880323314017859964805350950634049671780318038522534261793201775477012123408769633367161902114209067836334279664420200865816742036153073835545428394856682824997245287647772076249876497006132462727938368602616479048639540203485088865360834299418413532773011646326086195782546077644694743270015972592530267528230738764546250501221187982668434732486429388812313584603825108443175454952759999055679435286022341321710574615155270333012935179432617767547430892401808164365100616064107943206505288487788905333846380654275904247794413487735939070213150746218892538391180625991652082170470195217105853504548384302425940367812132643959576460334579196281334208549943988699640247838633358824132305273029661146608838733315792615966710194884445264469128430390359765583996431126063105485661090579393848421789688909997056068718458594949768718505119974526513534672012532257549983218692906454286032921060400745341984760641490977511604440403853868775102332469272036710862263531191738447611780631520776678521201256059519817621422300674136962633504526773969501608369003558434724449622617940973958841834050869466646537034293371717597253871903590543528497965283847092462110583520553560350824140964479714920712539101556038572652943204538657531421996698217197104495598844269706883698879919229272429938988136185854491393108013064900492928111373436994474756647173900547387629826157515387952349561968716897938988398457720639053499223742029175090304399059179630117041445217032452989461695806236973473983908245047486530126074188784915131416807960342029016413305920285165732661293779873943020677846758800706049762438039028517581365614760355349353722298796203941818892824165403209583973425658274669931582904250146361008192967247139449087868930471528297181048356366401619928601327136858518897684024548146957334191520163618227521147690760108818893598377075973779934282012005846473031024451768865314941320315552619088144730931230589353390938542797131191269821315425816828707572455632375623021532952677534576424775862395152276093170085769875304982999764058608429654594392130686150518775415393406310101625274410444449177988280887240806235951326820738514726827030878664218158559926631313275923166084673528211950588319642212756658465026449129581757756079651161777408177904656435325118548248479796490365147283689363930156070206190688574377500439997856474936449551115638706776212552228919161951504883186079196148872412268625597020558479732896021823067929968398897390952604969100979616070947401317734071231819677268398749071383571382181131956303713843038500881735473964997285825800529520112572921990191034491176292882644952119979059050039549821401933743474509568048651016629011540136245940740073861852213880441152499607890793346709322009098713225771472328823827763471185824985286191229164882702970740968869730328363375208948168376817425571044419675508378856064804876947167905294233847915739067041904280408327630024319603866691673043497586650133597203292538969113664412928727069691731592858867230436272284801438245468445714834071621797407422006516934175341661685032180315136383130741097038624644667655772703645923227838186671518912443107069538441678920310908097212534579507832347830763231940214221236709995931273173098077551209743007176032997506814395662261821111695235271259031630120880961656288497485103107893351011859426359645762867506417670545893941949896592428594653346771518065025814794208419300731513698890414098909636026180674681643014609665577389148218059025300998041527930370287918323316517651675416207151306886090204521817269786054988549228345314779056930714779916548399312855277665515339000947496426322761823558801782546002907242616162311205489493885879187700608159040587027144305468262549155638340378576052832452584464830290355750328404163418510944069708388294084445815148610331483072561420655840443589053618037819027292044142508793484875414550568387247353912870078938589747142643071213009634286725964880723666932206219998761766776156899649957295404569466994120018692032003986574161759251517426973175306481560660743008313494683806084913094387320380677032441884810916862577327027979049161667511958145528529389740945423298926531233591462595047539903306762280496025382386842153069760794552812394514872109185157152392580296608306866123807557612827365095806529096234432162282540745268702959959724140451415867527769119684223266205068148231888231986122828183896561779509116769701754835714144833664139215549867699616582143012105550480015494759040692246392812051905148982578280864464610417770570718473676940649326372427068249270507465815754395959188658265602079209929741749567321272951602263348977580566982071714760342324116495732164249189277790510125028471109306959171912480672463445296922268043526237595401816665613620493332896082941865779980431573053605509182301581463224148438099733961935450770456273513612224145638764106597529352429914447423495844278669307501601334702102208709559048980360849686326340206515864058733421690516412169441836990976741703324599842278603178706684744681656226145770515847177529318724469032829326439418092356179267138795106226235956566634932539871466163678737813623863006028600293337048742501641128084785728844463385296106211631496888956477705234898211549878432455837802324070246726107571515261898610715530211593253196256688482040198953649525831564241645811990515584107146372854993982280339651352809484726006841592027868616078460617047488818408931164657697332816873235411474995486908982915708488622878198700881932064160451628229807546652837126614127698943284732766536924655040278372988568867534379572280930494145917182045410711745487702355901796450215439396569579811537568822418843095475810358433600142896664505759538492396430049020070951556092907159760296090597545804932598879765011873083965505753916561482252036569788140895542571899635793861482527185583088763276024063034836133194514758789961477127510779793474385521762781598691155759063348943548999615991732049925160064864171360270883334338413267560326756179848131096561231168078736213255564106903967170786021391971030577280073800715947713714470339119047730411480196164296576672086449313687914065709637396563215504621526570330794538773495111044464109191280630115564462913524535969865780501534162182274062707656870010753627791966482577009620295848217542606718131778022994345883653481472129187148462431114555238500515314956554719528748025990138308926512371203636192278224176722749754100468144773098054810762433668613228487610730496208378342142033440791315367806997222391636555248439628050925047512744032681800377118929446380350155322210365526964610946620667057375822308318406961697968404393872200807949081268282787375151160141228080430947864958660689224512625660935643596317789017070477639851554144878276453006855449381648629639425699869927437855381561806537546171924752012500407686741420907166333461871110456683561222018606355688429818381808241013635572372040871671908648758798959881837827744936341556975840779426679849487719888832056795725727843069768896536912024921328281691010431324716925668639338458323247835745356706565665447297245359313328770998062251290691161200660662700211648199920293615004075906606153841298666198379130875273104017666416547345089974657753052897316333851307313709258701155751606847464147409362450875262248587967820937012122496617993200590289980553390071487141250581621889295859610018711003500125168235392991367426940430798500413629756625172456542287335999838548892931384308077524381786093719451331722948073171867295847756167284378061965762905520874910274779947169592047229200994320171976334779083481069810195656626589330704586013123217076570698385792822975316368430060035502969655608485316623794777391901166767643511939061084011612057799660654930341864149367043597267380853203404925902605476236727197018157477190988274344722874563750427834531044820270802644407332494728179592431573083069279374549627878746037761152332513118792852700378072821024831948275641168840071834704664839610149823322315998173211285187991490854675950521399306979945844907651176218546565558373287733554152312242870908770820605817430468773740644169667101375058479726304320968892335629871630088852892141387336452494094294547976156491104900872853706196474003689015935920006695231798351575536945544006702779175128420142145016010124953778281971014009412200673829799452097863427225206399436778437513611037846120553097259543930423413474581136928971275484901498077204781867758543955368328586492278377117323454189679910018773562902856879052560439978099161501594154182735444748874225938065959985787016567577102165033088297498929858373213094778583529942754553257681134183533175914777286362251145420923476417783599885682999513534973914480348305421464921598375975874051859331524810565925411350878121596802638468454942572189786286829641293351719351576544378254367594278400660349317523925456070052936642016716351342519725986637738069705922688249866743571289654129230472449582827904020792031848524739584456795799169920278301020619766901177636151734114644922255629235769298358748132101204496126055797416370059196176781377151146760564406179668138627298288161211444013669334241932283450313736367885791419625306400137819851567338612198388740275072186473464475901336991262268900401193557852035687078548244020337876274599314075181168168113976714412646425724960977308628496022508527378935709075696922925805231965949323894444888718586000951579539341704891700681049044220292987489709802508916087223264406237052776045805279837639999479517455767445849314091544706847246494280007536470116235548580427635628194781495270190374452134303324989773774190781118345628731147937339886591173191488859756723546105200762664118002500746812104407760254569228626199090900726165652507004420191590670437690079404574119708728697648743779441058848523051347288536659886574315658758633976061842477278970173588895751671841379952339002005133221588043853651062079019766961081397267166688368346915233427416994660074674976864469788190200423210251825977166446938923080335689647531500790016799753702774569443907545991050617047562627477472675577102705225674998907944989224666704429671224324564275447932429262189135302732777086598286776699910248573080112499655104280149230605770357923754475489153560843942969527605943202704269655326310575305668358539887044034904811600164742774284645361930977782963768999939378849762849683787095660878926496654831830207896741747435446072974671154514498831633225043955670838383733966353618918696201674836021163026094609282609671965891561683206962182441302403370003145122422123491424245737788382390198125726617704812846361061016924367060640926018678810980679125241260714590315529497867920522924165968662115675122682617308934859405117909664412249510090692773949320598930852916627237476152803990417005354677536460375967448079343306399896178209456082450050352036828592149720137199052706144787295551540930917021364477095074394523502248903717227815940412963950158576417803574719032604481415190820712599530305143957502757320805683279262145882160196959437877238990490143356330081754102996060498838396330737108574284804955529883917183987638477143276449165774944133483457087880214065627976634426032780045936708399503468314631083563817639088685199860590941848176806639738787550981074393616447006682819345282364550617704062638940852594650964729684694160822900877335260679097374187995372359199649190680203271893240604654846714193578661063341007657091804618920645506856867756926261414821811486832006634851020553219485233265848670648176934937561495817546971253796808763679803330770507760916869639060599770341580765028352453625891973551299853634966409608268353082456011982754619582896337333249182679376754956453971105920661810057189422358149244814826730467865913923507278716568072463530668504042786583957938672318150479528389795271800235802843307683396449866059039471534689469355838244600248216325146866108335295418490488957604874057266106929363488054179620130216463411475429263853079641334620041593411247807943788038903479087309825530961688925529252057009082616298253631046687908675833946983468004287797601150466870307382912278651684571629340699352395171590605698637065601229049817148606551486960616969910077011929268398271665763753755491248893030876129302982158341732553427027503283376109162856389638547423210341592031955832049171446975061495198479904640551954217713364464045084603172487048235611369651630792217761362757611779265029333626140608780521827200087434961717121589245148812989957254757846616694485956118078145853245928406755197014261074027581949750304408174793251121127250782333932744200814804708181687428150394302060263796354600777815572573759136362719233352669500459445329988138117727298038161633670642940463768319384028742936758019571662814278380395052439771152390256705072343474740375410991534925918195695381934772710633249994130843196705391444889830136767907871105527467796195502105751181049744187074004651277221425357961325541376173070971192032393287706207193607742986442047592852193805291192901753521908137003839283454705924033070044253661944772855329188335408174853868526936114278654909169090361767517676435273432769976458249061442188302743820231383681601266904296010367892351528296755486306587534326450950049773406382790802619978135826821104509010013228487683553157400894246621763609309615029284019319097893852257314716771165059407431378477525459011646500290626323618334598898267105389310109880186282394868579000862911218105348716797372422390169304057599038103540480592980610512438329744651238011194543143425626379432116993240943969223821652261344402291660928913993340328828243177251094102638415265763376783743119024093224106635275355365427473529163132180777513059105004834040813199265887448633326658451546564233432619453057632216973039254481553645078681915356888790930836657787455076252170351572876822227320850044961036110641353445165831919854506984217087963507852388520150605777967056320754724487848010305217118008939610719584623960744464202352878942114439745997467981797668874940462735858035428161416899658001866288972797768800744221015784201315648081509217208857868171296616019991135038184664061473210615889636326936847660464434603431959622757483802436617257231916312617945986443036874755854742849077750790357159234270932161361979532636017987078607018026576362457675794397045753780360308175522656101461845933043592029437795445454081112562558549539644224791916414543737370109070122634541842135560828286096752388016052924873042100021431015095546202072965865478401729638270953052802590663968028106585403960575414704763616087631618669137652603625446924342936932418976870144017681771242414885115930435829657419646503706409932241184537727322839761825755917248611833545984347819924834712633918618661125781750614482321251606886165140269027421640245354733545570792829109443649277585689331391188301450333570316083228794346360235159509769582023254642637390053623818817313125625453385000492169869816150547597195551373354990293387421269353139575545586933864974651808264172814626812452215687704778502592438239472472182128573458153286808096301419678829086590423888406406010469013870031704394150842005590137885948182933242567879503456070852112480690112410638130183965536190050909723131206548767017827555929740915492554947012133913649605051178885010396412045688087644818420607336696872615343461780542104718783833025530368024021285738424577948995925930069971937832849741531869950015574201248298712249115744565729690210613119476960281567977201490699688335485734845841149620524085830107307947796513306013816450236181493322712514481601748581651694090477673956680745512314203514549143927297072943211055304870236094195342093669977504128579122442066046415118452813998597195984026362238337031068566274860948247923082781699899790931666987392097060672822605511874019913262722920689548187634191651201651915978999875156835299947432366436604050082642745418621091108438637338084025991545867203947184552353475673646272012522003142145691130496167226534655521543181323465968708123181654497202530846136409202815909985710009260610859680265085284085364477722544465718166487289538580095395736455757944962041063334467812835994931589977222789636537358401445928497294366662268080123820110776312716059900988977274274181764573298451405447316931586420574632308890181087121203396841940882287478014487126094280954539335986249528966972026070845820888308661478592748349381799006754108419957091823283121500665267630425229978448983683991983525419913132243344653241690775919342764229680525047438948965947195543482365220025669705249399424554811042768566215710842816971812002128432988770625607631919393350199896092460006339607201202607916904020891531984053207227611693596743233820017841408143178344077560071498485643895715984659745176483186097966371825194109890199305699505275656212127588574774065124695772824077883590923825986067985231576193413832049774403824343962428307281776115796064501374861691559048536082086421947361711236417721307198017092601702213814028556054092372396538103686050670805695603481865624453068243325429437998187944692049554731663129895268837502413240235620283918577415613791976688449359351442857341576338882466268823486464073561545277102557305191476962331467863201630905376397413573377442850367827328821546740151073063455978723359132482911736618054914023497886443358023815506762226220493843567939895597417430276828632654702663382215916901329941251781541437695134867046067932487305765062726412227792346763322284205060429662755039279222693163234746247409824773573726224989982550881950491801919481467787376759717953097470625376222493657302153666258973448003892858856033240721534121468121592209011440475248500095411305605889194322387163625014871969656886434869875434197953223382247276679156431429339223422895811249348116703682063527426305992113284285970629254168531806916494124307499182891427520590889115970714718201095018917040910753679045993610411103806529438753468031975099816463646509081187114763548133980479028582872735859542316847123779384048599540626738596349183404339023176422228815882168371886590951155260961417013676360384141245934986901374958794689922270751329940416794058283668276726519372749226580666458426165208347547017967725381977112156367409521166177449899451568890712328676438932594697542533527528108757090077448120304480767338557354443599833193753200991743169657473486400532455085945069704086087480351713991616923904384903784058245081397604120622835253558939542914208658191105850571103031746698140572519253523431986702738809333116998859743671900439395884590491580101519620582288709945380666348268098039555633861382079075018289780777117159233714791176755027491538971773290121027555958123660288069650731296120882001333726996036484608792272421933649338480924100728834841238967144642744210725149630357046593599466981078141615161806128388955875165450923598202403395140047423242596241069069442211852931918209577180685819891480153623528468350224614400765251064644603589884837974820947270340651749143041198001847234121191022657726000393422642392553264295762786643425253056881207512493467721114023597015782254486026347664884184165576104421081376628453965403205221869747655891780875089340374446799161293701267714851142547994974566946159709407482077756904380927120261638801848105155190821483860186607847447040642971699900275188935858788484102991295085043330855845882768355541179218464803772369386786690272656170800998256202349255523109442439126277499459815571334077711978874278137570709865607400948864129230345846321042908893168324301822055936906777504837880330684850672823289244024534358740001992258530426085441364343823142041298664755930199350450726816486480369994176061563411484963255112934989774874678771992387560565133104606452061509509158939224261858794272190597297148466310663621999023374232968386038766880364737451476270235038312875708184549606436408107881990844159502487027372427471296600423410307300750124341429208709252735547633735013484494339999939821409741122499530451555279493141040805383275612153384429475180547123125084829665380747933849868873662571620364445858091058220640759141888838157242607793777001511775734571055772191325492222566674210981078766409562508006519417402048331177752279521299459736570769934212522476569249403588181919450486999717000156989149367327332379435944134911579117547056148856999566088386190202521402914004485309831404201849323788590281308467774662253488396693058267523988050488568067502443622485075180755025355579037306213569106113006123464847917348942494411201683730335433475366972984083842202555834320922870830907567895726731403583253525666749886197038222194082141386432630775526669883319760776190936803718934150241966554597851294610973690551144381260228373993244013497295554337539783916678298274035349050529745816170499454614355489985867681084743113627327310680695572809082320934999188993997952076082891203111060435598900390652914129009367263862764994654749584292883042267869759000104324897192238473656419886285866865752664016899239828220083824301020575899575356696241440801224218161200043619177142433219263719518238404588853705102036696510178179212509082899755206465209082136518502277102842903118554769505933073648337046940968278106104670933114623896964944894228123406287691862654642084898929728049565444301059170034139011177976445637229590917187843207828461917927570010010659555912070970064331036855565309952946117087700279071896802789403970009581261510238810964209564195623433687720338958118015405387405810816683321192815938576550878512021645125205939652708689645695758981290355275734228041982631319464700291514268309116408766322530884887444112169647472393726319068151473660423173284068814242860030966348368462389869364795911492493307841493113771271705799203868126660636308527718371596315091802803410748494198905463796822057934012984708904877847332289580246395926553722227713452597314694812187509935670067636961501793749260293478594848909588399324816111133254628675869655093006320883035514970468621653086815560476541698745404523103631027790352691335194198742124661124178789602146758314668488040009998895521231125153810101201980555863066354506441298343684737937624023566115106711441962676924701983110697506300216806293842107062367999735857892133329320542631837950403031105062813765296055398482646643091458737000527874703378526706891454800593975836237858580437854668981946676969561673994182763905458675678695662410443487866600463144020571263327944086017609017411156521634631587521605160089102426018242822294906707242310249436685220467508843771817252560188410275497158236073243052035692442605083218009454098786847320490341220378156571144524980690952233384195757623062498625531024328178244399552784160495668986925635300866379179524678994251802149280429588862092891745151407252854144666518390221974875942988725879837537197982881004605879171255934926484429158550012383919870937108610895877273907041158928332682558424408458754197388892802877723022543876377838430745973251869888872734276999135922710432480666855007690543300826195519217248684955238510136787110408627464395543799868922302123296901504015576101767962632769044256932465240058357414024394975577072865399993516414346494076413154803802994984349984050156106681997816398185698771642802212370275180950687996543786082413875325385309088805727632328754745796746395385023223404689970015945714535875991285974711187189957056702760425474618737103967317584683203965739258333974221277219491811534607172677554175083002262240850785407467861095678068479277682451473582635031567656172361598852584127887972225646244228955380429805028573536150855140745994648947500802406990787626732913004144771878242886624851286299541458602436872774854264503967604016693780088571685672192833043730554247205900675686815116328342559938424923147764067032738577609543098536227933320194201561044113561584955231774516876255196717874465134852667027694230476876262041485216582894201100042130855867341318402328838835075605982325478651448009424224864239716077463717466633310876988106394599449500463151528133810913159930996862764332879279283908070742996641308031515547708950224673321835468005197181447923677815836256903189523165096733304114289759736907217406927063269596367551154515377513995657835930932202477972388587644731688686956344280107431616215357548775601837787447633650724213306271157482506565724656255446138928531190648846212380500101208215684091318574566893878623916760998490245415362110032957505313589084333670410815433060978147431694757233959660355992651968402652564313901602294557016107784752038369250527805398634825849432874185834007195871943719788613740425571940727539124701937168472484348114686488958883163271191699603625953503823149263912576440217845987392763705031330246391591745650863726970656926118204423594375937511220521959687162277476526485508474871423951572773835715822781454262288522938788309887597387924063804790858964461190165394746128111831967877638341198357883114555091375688794122512196271373982530159048181481229372408601625937759819235066837568922953070087029879489558185271398186696218028313876094823090596145312473070442924699172538655818199579409797392871837149457732036415435560851272529340844367352457692366272086110368313767487477936726448177746139280618794694966454227986055810994896440379892176147320423826520686072917819766881381087835750845416681085406354607157979411779906861807098519255900291782936166982289045637006565819507726899380912347749535213638185005822503485412993105659723838359863002668062528489162143745039590621342807746840270239468002422960556995262397663311504165387839959628389790728205789747587753125751581700279665048068127701013799029551219896255851218191580730442185569419372167884263289322021359809207543734044431357205513605063986007589817167795990291942482528867958377917478122399296309906044325556956678169263070717814244489476039543408378451784873559347889136371183446245888104270368044467316246390212042746848906702269969901181603185510502073850887956635355869673406417834634013118092351338212690277488917288503369060337245666280116688256460121451594519903714708037245158678426173653123072124069727079060941939115313976061729960964446482331710536400171886121409992068290842316175571730418037733525050343570665995876407282713888241279429888227312491681959461670705483975780808047020454582141603551298328696527739489678294794981448869006524204447388935232765975494083139283699307433368354168266652608994165852648073092432554767686538059987474078903487004051728771751551760109026268968536729704627691158032168530077199444719081591705479791352043594710327036649214023159639529134216043346879844208571292465882776831535989550389051063327317227131916965256935365747903836789365488071189868168896143706037007270256369722282110987211152220250580131280995551619617766761094554810531555365677867117837486889232478620782981700562394153417250314429115056534725525995657666351120558571315770477428295462665776446672358938501333667794955768808357373465382415766661674661751629726640478090496624474397810022013430626868183867043464092461672936543014925599386772202287908897866907159732271256685872912027177558729172720134553014391257728839977124139047467682318794258233245254886615984112448397399965115338809738904843099687988508928162014562295402911164286003766161429347899101209433881486436093425261049793766615926219058053284816763107165062695477719399103409917805849842491562560444036784224687443193577788750289384176476270617863760367672601562881948507117753942479188727055488432843020762767233501867611876356131714643509252503136028322269063986084110512739525921631170239639049256782085122015051839675517768782193188077346391397776003714969137994049431225774727480636805667607130700814748502020784345014108549679563108763163763934598279952970923295975697487037062406136014154853041661915719847041402947998008253155695737196412395715383781203153481133541313596052634512511199203813311500842299626461878336446746858092669630057859073571071715022701837232756216815212378319434880809379509071501456779479607510052002927736291213549911854397264667498108028286561413222273358413174240496540206838495054145917811993913987539919872259702013068193171856811680118869111382426886513296217398115649832390224029492606160548844340143959415210435829241493377837786015866768342856674421413105409541181176666261806063706130789063209449127358654220991563004959855616659711890513361764082764497961304385424288773159701439622599895480559947168848755068637741218009914579195884381468188487019548655824784930209605582329165558346801813236469252573636815368284111656987581538855071576130487314694897872866606364568630122377014296122276331601495877370416658410336766280772542777920670582680500643758254069668785831486557157398097399784829082592384621235058823769140848023389075059436098882956674951035835912148347305808162469839649759663383671685056573453303534358048456362323311257966272344905938343848936381628873676642290086357719290089380800142285148987626335713984488633571460252060580079719275653082584612640410839856766833504628839235464834766425201497366443845795110784192017435647408225380107805428030072891244635547697535439502865997723897894678628641172899599128054422860943904045861276362791533303018268479286351073502360295634114576190196992807747674632570256224545277884081541642818524135560596854643892930242535111569980596078709818850102719242053490083560946498291762581312115833172010993010759133521134240638226355664302829432342651763851701354140338132075200907522228519295846616502400049904095890144293792011528934829566707569414976971124708517098436804750523182444833215586951252122261803280529907917811447377822765575133154945890892094840743585152435466553579286786398883337481611257294949099643012527099146004880879085360200519107247494957929729460414197452601946606238505160740349840830226278940296776185600183226871265355975202426899538563707755106846143869034388888544881231768019415259653935288715130614928980193075899168697225914571199867652698991983363867384869719903815771205681130071910764981244189132270684344329398669019147033138721638613435844087593285831763950905829645376840292129805598008103115678349158798771846668038347095765968600074574338680245384680826998002463182906332258274030953183202922192590520203097293939594827738861939725265978475117951317583638055762541450190308151736023472441130042130548658242375532326446392465090932276764271601809744807878796742011124441689374886470952401255004264293136053632773414617747109382179001982932347636994511558556994222281964334702190276420524375205301825407535829920743445678057373897465231833570083513914573056578501458591137108854809857601061948875953537324916615845242822619856549200155830741790975141813599489834468460572908936544471936157231786474174265588602748840420217159118407787209571012109806475275964938281863137852174651691234963383076305189467198869360386186068014347261638367309862146709835956506947086961469819791956131946038027028809583161186922273776742058848015953247409843959777597132555579150894259308916082671474549552920575703445582692871995669887675005717809419465332982597379845094186730823878581900050763917417509013664184849603250063512593668151139465237128002452207934641234290808104661562572764378081063488703855611604708797471369781065760396531148155643179733721909836773694596985209135141353499679814132878320065525508519688844890780792816874206121081091205772118064320171238898415606063156678587305205504143483665841135736624579454655016046968165990932497122071252114188458552493291874139423040005417194683275414068576299544094598073400771216009268494661644743965434819422687689330190254137857317088181239245069583444642319774904248987458617038792509087609877009201801143675536166359980610084375824595847564812306414227389568026714949915145934683460204227426577416016176809946567355226140395047732319171360845924576749412828887344491423840915535736215381791083342105182805968861601225538996756859047038393999975103737589216251714473168641642599894155114244997373705905650921282399482335189978812335009308592349105303335610705623640520821107896630747278736584506355698571506336132048765566188016665959996678211444793872278889133248238946181074595575107475186249252052830553397413732373952591418370489996719650734988454475851269834428580347538555818120579418865389841917458123812678387262853687300334148840769601944374030133778619878742270220180629179107971661316317621010104381096561710371716589201139815044806928455910092507644675729138278000256627013618037616151594751365470733104712157395041828219855645489346064591565985506108522827127950845216480698696457530060219711287546831544475393702790558904335086567761109387855968985161760955646417946713254283347693265310895099093282197692673665608682685983002379681271078551159485757043012194768642663286448394192606138819577667384972834265332786996962153941670119868565468952007122301755950649270003481899806669338989141065239906982882909988754810631588811717101760937705708394584335513374785226491980889986297805506318753763928894982025653356875639215689396436823945534303118846037951204164211982157050369248712417291549206188521747671879009863690028760610884889296019448919088671192225654891622111078119744901335854800824159761946527703804953066321238792840416862252642768786194580737522627204805224601310445738053439299940353298958043920395831058951248232715127415116329726495577681068204288321056324474600626693495341219529766434313794611412259838677319107268243212193594877112627263418341890784700502564272229680424689189958289086210339345657093856521969886576447236715726115791241632037716203864446386575305382600796000107821152498498154591817969080006610763398104700267225556199157645400590167395927868861814959457280034403868628338604803959726879478748990055687898824655061222319841448401536053554278777033904880408950400960832806146212171179388870367866759954225062447297046999303019536102563231291847847998279077796561986411443546302713354551126917141697340312872476528459539353575542127162698522614332884753735262152803266302857389775373321281261981923927375062878897543064850681047442511109033114088243315304844352986406382333410675721099447099610241599239078876321969016403940608341821695429316607309162923307638252360063337876321772279632857339334642448145745985870327521512346143817760937603464447892955624648111083811513909243416654544566393716356754718654985923633815593552638297246018181536624929596116821407371473468946745478118081854567685820046241991281700283218023622032505023235978422424094204079458228098641840520745978929365132320512858176192561697853105784436872766013325638228666202887173987957030650162941972627739707063875827067754250217615147811627638255246414515927179267646982810189700145033399978288055343118642211292638614611950709367033106437250482836737186627343242299840719966367199349776034802726613664672250444212347603133472947965216373239787751608743051023706491540144309007361796587997768606796709951003291513889955971163936918175644718089773489866096817300645892503762020893507928759292817755419650461384692447377451772790972076468595840713397182767800981535867839657299998417561778598737759168412007616791012477102532421112085465724102054208012047106864006811522628508266340223876755780470030144145735745177453019726756124837144450468394394876372410822861664646770557828878605444903136944494818891904163624320085806186639164138240758812378143428514224647268744293023832693181071436958236641361194596628004211194954364332494161565538682985876281686874588169483384594311028552051042310965797531285796055644795287689118170172160742180221027687808281934693259352828492369021123493321803797030026400345430620763700791266073479423887292029858777734223632486203454471984461666861661558618115722336575866804828618788393934530172259873382585250273292419392434697191205303945927390627937837349265916688876929519019391856410699914661704941136704790175878239357728420969789526119580277999690187022974669924407921597545006577247746280640114210884599794049831981257974201119069421000161287555807325031605601603881387425432606660498695221402913711460622123469887835669585016952265440125647007953211724140404671369140372723652748358955448355993863604411760752472316877068936084339984589300924760513914872755801260713522657086604037157246457222305436827018804781519116451358716952290272897849451133510485795352503267608669139594450404652576542869070158024115020134010574730798659121618536248550893891072562586100876131333351924176373558868607015295689083047309214763455330277210185274254365790100207636186216744032526569977526091728407821690036496954713665545196086958088038162581505602882838594651217849129588464792646666174024802540017929908957119264966104094181527389422383471584847947224117708734288595216735742375454817262561905698878644851990080151705988204308510150856474615512112301961663040943457578299829159871770450385529365955856156106629913244842864072269788704393335613396879397008339395158008972964619154759118068153743590033320120999937771673936097191684640892992937246203827653790768447025627469525695891931164560062144800928024460829289719563571660829513734330704076130829842429619119842231783196909970783564373297685555418524999561304438493420512839649692788689117028664339922072884684641283786665206477809676870658570876852513630681408183076145620360025649775720357145430517490304185894881926420564424250876245770107875254882200043145451631471518407483251523221915620998300091740077512870520955229500724547744289373515333624306226433690821284914959146099311696703432757739236329715182055134063009617061207808505968648381548273286934750374879004952014495527338390484489478071891933963696422703655431189532992637611760182619191410265760827651877395432873510695786172763464524088212506674739083088417818901801836759281268762778624708556540854888373073016061760456351439392085040919533469813438753616945640226256893127747765626492328479456553554993813671323063228109447868695833550494654814179472347310437412580640112314716823979384616649065127878173892464130463655502751219764680065420472229583360894470513598640849441068747181083171232124881407940616486882170367868382213416395923041268932904254658950636729863568424889314578543697984265090760881315119503495657870455455869197272603618651775409423178385336885798178420005155007334234045729110049257308736746262355258080301476612489068136798363291630279661988173112227860377157431017840032515107738359250171715720085147652793489988473347638466843158881694582271644352127055614500487770270741400579733429921799191089381420129457409968449774699351846605724214360037230130894406766124328040581520476620757558100054964632651474027668339154227783290464595755136210322175017350446615967809090504254435250743548407153711132354982836380784569713142745795865370932809755121118098283808846540964080715610272250755830451844991642187487255310832585609955165645288413279440163713056610676757689732225830390860544713515729114170957355544851522344852174699397353263183684872423921570167008266722576303509039927725141392855907679940895918903075655875635735193410872363057542124989649901072091142990585290609794264911550287120888169037270295171742958417844827305474556308704739873792474920248952823617085713504210461034298060258276548693493785877234493997910091834414778065032391149119146379118154087448458604318036153975736508709287051707431333750111530967767710570633214108179727866707148305542992022122023832522947661600084780475620706030442859145063393536426351750339949252245069102497338972457552981434273816866537089397529783309033279702902521526304254467547299134203427262965799180150161313789357820435650606665900899873318402904045126955535343724686686038721715296914994053491655350680338808509253756349407716516162933365823258481696677343288458218014233964768513078912752200828809995819655558918029212719967571381451085654763802856744245996380928628745196867472655377704547940462519321558775021867185870993140849490428735289423456795967299728535999631709903379122071157625985987229155812418571502665497536927860946635402956069682915235393927941613338134817517515955119725161581174335592577739017484779289436772049004336370233589777925280140864255287754766313151252349393732571709320642111305391868259578712462374660101287505837484221008512635401076590829140955358159441103525704007736668585052811126837259085549590026921540753755843516240882877575710243942980140979201626294245561370567500485984157799916364900299532577910235538086579418436891040873126799262989240500041586051890329593681423005515632630240519401413061131875784435666575187229158862306037770396847431174218954485129305473327018573805242316382401990824573179996458502374488022598823996255207683607351414200132704498284139144695517117810723505972242082444096444792948012528427376159368700766795072320259956808075812623948516130126010218406346864247338046989847738155071727747006543785972810206547349546310536956985266812294784058543293970379588184256370458914952805751209611059355443370981448072927478167613112466162637597674754127120642004348056511235789180628308829727471011802955150389076724415515246898582886235361021778607484540985985037257430680175390911959915794646859344617736468445187673224767550287667485474474212220787437579987166344985949048926136661535577760872182738356087816588757846078633325896762877211352855683030432764147911973381900557426595328357656856251079092209238625470143816264460484871411755136376403867748251211963842137303128282722608927954567985887796926117400628789175507479489804344143610153196357789485255344909141971546964602167070956519730922594590308207748874490217388786046800819553660258668982248618369227671639086193826940161035396161599505411098271145409193088799765588022512408683236899998321298433263371300991288839596093243288584641503239850082102025838580477114422067797049809499881393733785158949849482982440198980528351166819728533864762263516438594210150641943724911544611731786825748099047754468106271367946108951453587629923136426125012284608746048207661484048493041590135036578531719584085476829943136181708035639072080791841896429693920082408360650195407119470249887770875930007490109915082540307582358676803424539729855627897147458561602625334924489918220026298669927905635873517164757582118191163978398166528610855703715773015236648817169639672197719830890912671000828637296542851240881312097198815487712575555652537907561430407401173987023143988469672388541646051509250787292841565821828882677452015224829011115073158256181746175235203197658261981320554422162415997977536540027171785592628614688534997813145564534961705913489934583456931465851594488868760823703629823278285520766102370505298466792285304121213125012383201448552328364525582211198610166199180920037582404157873056327914203533153212509493101257837539307515161202298695059558593382757089223667266190466649758142247231715143131487674907104499448748162340702496757688232401560712283701289195341804618656194452441687026068796172037717323497595778944426963259094167184450172897488814146475676708785064512053198634130321737650550490478087931762746827123591959426866715500008790492609823714042559108025079006153724887331952578581633858644619413117766631633270042639670089177780879661523154469473243035293751077622943044545713959462985832156507541392497752903146766005069287960156067014982751120518707563874570335420499290527664406445971712941146100837373954213827633635103098685480007471680268713425854458182439924415705459592936800410904278056405308636748692371819488573000974050940084443335365804527680475361065106982171580155572334852994284745174569781642617660590827802039854538012804984026196052628699303993663907547474600570181612302837995914491080176191947539832424745747573695502368208781000652129461748631978989477443235140678670754295348840662709997775767353510929859792667964580715588816590369745720958731657217593219052863311579070426639664866753422513068453298904832442611948682499844613703152191356115384209104487465833002250280575454160525856048947582207379768100490090764994423617824774163737204588494251895490413911319486604881705399954136821828042647790793597293050643081439087145181228796574243136954920939820540608082774156807846537856906729749389046170285509512437296821734385658710995539962023996726133484490552465626133809952485267663876494874720638215957498787686099631638705939428553893490097542124311948748552170266439774872635862297791488473344904471924978211112003094025293176000454740897039295140730017339342595671423568842776458325052977510691708160926140752041298425218857270831230199788551040731991598296171832828286375193046639803844389367549637245678867216637958249237151506648613800873302256909409083920190165750533954411107572458512780573425670656809283856779427020749505481180302510553551335914048920672331593855667210259951507121204859808381604795317705055152813649932128744356491959392440480465184721850198888074670358811823726136544439913239298449615352369891343720486138628413363103127995721038733961548562853920088494168382878358341765861222484155745939499241224719121461149870885183013967115566431235647298743447168158705857574819094801286988454169811107731092182269101119697480743141611726798153070108069543612304820464950210954887149479043187560497635978589846824927814796180673633346303440771059361508623089948858326496772440023209406992876334225719223497620783290638406097445777917006239247633700611431823435297369947537017960199206777709334700312201691647633181006247073630649611157812829547309153531722819881381687186389205927925642400822686268362844407690382937421538514340138706070237343767464539863803109618104795052236590219779725185680653944373221112009682354219217553872807077742884367812975302132845546535235772546701899200158701001035836034581414852663195711986550161311388725177603625210684005902088104695247737259786155498456111972573539334981520037316982730890124588991146328842527535364006592325513339602359217521467163345064365106659725771688959703354510536926173693199265463187265608211908711445533957630571722808856192657702836606872597653158313862371239907484948117754971350058378704320350796573551710704388105345718390161432244642291705906715749442846611713758381559287065072990861323579468272068678958972897441390546102485847593268572163316866453668004602378042414437944775249343085758365884378176244052913382949483234358985512841870743758521803330870670905538343247452545533908213299427675121786291965553184226337511379990668489473695790716141449237368142226309786817043535664803693397739004252894494143752348457509494805004908682321737082877744752948549431759170110212835093354517996980246829598447249419245743856171784123948637013384680311676828989667476042550021304491931376722654278446258684598250115311564875178107020591089279832927413899679376435793355844429701304094072142378110886092455884441183146690740010437681019057052884652564867014159825443111415051160561114307163305708862595668205174317148666347459917532305102426691673826055426382377645430195778994505422088536961049298494589971897199100226110264314919589318732634450504805633109217290301655769367046514415118143052553855354690636400383812480475205171057531152828066636886231257305304496415872117126392724523440373967398572661066243208585852408162872055912578150664390093833908025004591260847012556426265247742309413551424522415019893861922906048597807737166359107526481055490697017037571388123959836058066476148733369387340978058158270254507349200187993490068268216565785760568162477210078316077645919927516793166451371751812900227876144208220810288728970419265673456554206574773933892164227334078441784140118129219221768984410282365683542699185073011818854197324443498765023665158095282531640199417473111583315455232218809455207948614827576649036806776267781101056748409889148233424766987994728458125474120344034518625835658065459748201200066729554515918518529793874525251272382193204593031349008280827501033283860910650265704882961059109026016722991202821446114775575144996297851492185190009973702572938122693585361069555724765207889033915348491043050626715023346809881792480177251442423286179467014537236543403302886080925331030309288560080222680483058302987488652128492844312556913934412418788036914976694407335381497371037777187381552540325003408432506262781145792551288338395542470534133673515455215056844600031819056545740872738354768579684007206788982447635399667618387247860805285743638151463178663513570325186438121130092207068067298977908030812847015933946340101080202150109650302772944334543214381634628628011972484113245801821607831499452712772080349539930682760804979111107357830562694006439059760312421854921452907230762456431884281335133367703708518039788966591651297695148445564091460260665003578555233242920630451924338837549180998084830509962302047991997409819222792088047032489334179364856514074135961783059199139115625477991479197148849721490830914756907197622746792423871184775927529934361278413102153183126130208089411416026565389454709688830205965774713546380897775833873422306453745912580025450447870446074944722133010411556315987156810465653761934681328560491587978732064049205293895201325537186995524207087048483678616090539233929847679786800107890351018418747152700456121324749136729962201522517645616904096410227561565177408902099421256033060454867969900139840420736663141887906845457981909636603583661948569504676875821913400440134598409617241285162862889021100177892297941066457695272045084646657018829312516704476416435751695707488094442513520254640125857873486515716385496379706712805044532359929277935803040290989995906269335069106667758273887372624519358895928464645165609111398227887023832314893556538396166213163234728849979268260913405469693543918798490216592888546684313769111990242833298677703232971873367943341631500009058556225688053457943490598791560697294779732401246250080861063884094214942263944230348922528035605553212099456268834336446986441601704949140181686228943851955053220836380405049972470091682535770620600119045358986035477912027356835222057510773968243294072806600380616461656155537578886144908830053895744340694371654781770855211280261844152743538541705689411613133352039988927708681997260149275752513797126039150809247899340945680659313660625249794710689984297920420682259873788035665138106123522594832652203821947699696243631643797794951385899859569843337657699379637183421841983961432435648287567507487867168506677691665536533653365158518764787069176007315186311032980761355866512177760969502445435514678714510358715462014306339496540434195595252064891739822810038866280823233062427994897562771893570533645346977371851030420088902221671129382827128802384549316239647873654937175814426747654756909287092928003890438550683587425335069977253734037818146832975300032895487402045839284069552637399498871115358495496655291245559762731727553644171737590047430792919459487254499692975596184949640333881772452201939522693431350366138251766800261859877677809394773557464526535614827663250018677514560359918533437501540317703194154087800686977540513084645126173198202506141684369216733665615167889901863946950226419458042710133180330159551535381431982848325917898892499439399860016589348741059721044140942856908171298035355779547389591975541135134151405201845599935711840872220873918787539119606942094477074889368891550068763629651566525712277421731554692794677171023814093049721078545985048930939447293049163825415351240579735393687810454773536587384028948640138052255431139973177745593660363056933174398329876992164350859748752543824039629523542672254848125867568378034998102129267864366059147980453575483177225772837790879233881353033335121430654526416574249564648570545588000709951929119291802810862387618300010206931685205729517199385121121161244535297317372185386048992917812471407021759994966146189414832578692471033518457887841999685045533060983100181391754483670904297633356732093301750728149668547379385796639230461622201646285554029681740749189774147014998747202423463071590453438685673581874234855153990867698539208161920258188932082217873360116492839896583101732490466304775804024384927147684524579323814267133204680858691017442295446075638899463027166998996668330655154888002230504779763548139809332984878947399225720659993737383860902496649526664810610389837500635163918766876259502813328175905505566684637643828605111086043844331568218343725074445334565228990128281516394680037123819631221648182451785448225969952939883081729785177839037335424032066509111263019828614060300571671624687068545559641860221346024409178264237274733209428876354158691724504963005144616260838364033546836234950492206163817095928496387097541504073796441301464091947011322008832657506935244091866484980729624139772259664302586028260989112269993793871759895678769923816445744371126494641891573604134565351120824956337912726011583757743475383960939878194937368861732104332160166281084446792119292172942160984983703364933490849978804533717959461532003274874254797917447282094929061134286419811417739486067206343229121345036045634743461290118749774910528701955999273622456134032520565908241370075274329507852102781999958923813474432034722754916389090393639667519835856681053112699383982716939037004376466884858549403634007251248815019827731968480138802346625015624269062478225333388417323202465187599878011938366294879688679202611992475924552125328719223058958412811226173582033066349783132342077523259727442909900330618957645835727768589776672943824725919299959881293354270950235572166594473758282550338559557718080166853606336446527765760735695612823170873129794188057423389656954403927570947437206411782040853198605967718487505834476074735518582965874918368526405032660775081890020479020247019351256490291582661054224707743882312847400534949936173458442445289345462876543686475087292270981986187735335849413027389329993831240245289129171298217519791892859770030275660844901972177760945584137591044506095459108739717502639520075174134041788306602505432765349355807475087807026220303799517070389706754044465200394416542111563260780395964982895769071115501369355707101412304316379314640618357982510814975524341176008185742757727636319544885460143544302594650817009309651830596370411380660116013931999751196986362565200745435095265293424480671309171087159184301848078690190248223833507073722021426463978708665806826964703665763109611271433547112642177078968976200203532843329381544965129438914634807487671923206088582883808650051092430871497988365767935331656792274548588628971890904581700052502764468685417819042561639860843115541896423030056501707642198755506967756614917015474865381595488035586484006286204481151414929935517965333441174453740700455388818460722955787981269408339867370833086102198842512272145821146078465304048563216321114569763711466450053492106192975331469068347303310927770635410905717117186803946249330352715351851056890842680711184899406229457762910535501564710398342035974886450436730106933846042025489533394166221285982343461779408297834178426888421650774490946348684583564098394897924862903737135544136389837343118343112070877610680357861902971337343544801250174477559557593013539510966957326171666364902482402867887753858923886040774535333630320595402935616950731638174455476899623484421456896874979908432707632524653278939232163400450869912710753847464050784374412378010235951380838719163873315272036181303893142302614161609549858363032817392016603091411615057172977469236726910979761909759250434284832637743671684385507818984393641166807802130407512315454474670804672249524089140032010019383176231531981517969377940846674596957477476953938083633010622844970699522781852389091236307596154430671893277424690849694331748958129053778271129557063320095572969127292066162193898886328003038628848356458898917077781953676013619564416309384178779647997476225024751203816068955443335848799117192168508364157627932070732391784710367106934125692121783437100172693553808443057499655028403295297273454033095979129622199241000151246407250582368268681308157123387071619427818549453605736014168479742504549421909068974709292867603955987488956261247643018563040182504387797035707882965813228324293292941313604734567229380531783032347155752091812597491268990784332915039897488905478223025756959032218407448433385478777733920124486683477108977990134097702202900903634283802118138539826151378825027869294951922791263478948188112783329317946914505344240518044186966382337200533868479936439886584160036342451903742171138209539520582496589728670418721335501946718474949609636478113592415608972795145189095924675035586682564804488581755971040970413460536466197120892121435238879885467800484766985891281846371114733591254646564988226797114103644133845640524863902045313211673306550906646809004570447212675449446580674755803891864630950728906495066583599866474544758973131084206546635351309610780678246375707012537966046567983385386939464915102234304523122395028761146066618189207607480406062989645395796174781824154568882073288531577090443044026577671691114388146411488704324077826413294075579838870924833361371539353341087496391535618610089268148068743094643843879105904121440267441571236024412978598361716880882487341912344930189670798824232605680406813134367327520559411981614315939701398732780508485921647005932060191711910287665252854142502986631712401127906976650416700230588725407938013366417996980229418901483337028831776790412739767103300212501058050006418696852282513013426309342341920490418849533037519973759341896652277453689619103417718098436901812680198339135303106675285016180353611496104582342950762292818976785075569011458665986855704013645424593840952228466624955259059350239218812605580167589118292575780149255448875928885232705962264615976966145832352074830268577720733850452021410657973516969022609175995154052916046149190079595490410488148376735145004002317988412198744288914269726160293659404268465498714809691044387197079285288537136081897540967985033739168251298698682965196655696634921037010753700847653465810246798762603444318378739046584935612140463605460263042015245315551015679394291064882902950014310253679055616036853042583490259256750222569271583558843063918136595925362391058529954298063389365324655628960411852089558515393295819254337901522806357242509611611657633557288622047643840392226439066850088889642872124718754802983507940264917081699222768945240061706548270748634583816027760242238070032476358791456081894478370208293129972880679401413693249082218649359118232131132956605830615460576298432071485808702338176951194407265431999036192268804311849272215602974881356988586836676909999664544058381476421778918229690899522055041878010625569615161895809106307492760706283903066525034865316056217486329291456741701161390085949308857859561428342458605644893656842908613497741021535440589481267457265110765953447028277454990482501923244647482832418889111345520557627698822836713242920438414471213600595991268400954699638781814863851421916907619135192660520273080020815678304845210741838575752171547827245891468159580029439694747174726504717039179401720267098663281000749780150436154949261029335815248501342096673614377249851284491396580109465133619214135043605309523302305829353800450050145071946605925576100299760024525116695684855669628764743435196683041410331998350603244860782666898953605092452776129744000830519246276177559731965203534406056921682290571993517323812136528067539641834501314607032206677403128526411194819974594664763326338873420466658815568333983169342838212361258536656180553463494272594045220011646833241910427695029470199912280537721334414871859827489917320757235418976706188562554261586147542526469949207457631502773881849573526937802735538619678283524661610690216645269992808428027715213920440981448988027781475359935406504414039105539006495840193718331230034042716390484080898754916375543556296028289589133089365937025292576569099514305691125069223220629260951859238586210160930540019624696422149396670499520837187253032106009606457796676028515401166364543251009691804765234525367083821086071195233078919239460949625818414691127808308811637735311651891717554830323527701668030668339936605805409141230369573428132251803325414696416771684662943393830332866024934847835864918335140291010055091740639415547055429903361398851733599358271393503647553246780577691072036527282895490814773781833911115593607574677105800396672424665535378143960148745223458461913303998169250690093087608832567193652670865622482239581034059108067306959643459627077959198346691401766368061542919127838658208327525366231406234323723928069725803510267250315363721791317176449505821329908585034669462317584105101769471309078290103182911216659932370106988340186936816132369736640129427704351870270135199766664831841591309767124604818446846254027505168790250607497187998452022839045726529546233491128995001146368268122691374802599277753497167429479388137160800049706942647006721991231258890264290861606244242904846578491735617543683806081908275101464222415575493055533660608855569087061846501478400759799710218994716660952510199781221936475017333789970065297130168450205350889118015646513209872876311931264477787472246254347745897643390050310347595380011132611694305516411356650858528505662038914083122128883230512801759541739645806760818251521381771960442760736892017010294519512383410811657397196832100983171462252179514583225704117680955425573999847254518815052239671595574238874051487775132417608966847684743870684584945857441667780086950463332463134113806668655765818927576932669427062905731836477683625861008654084869482664179247803200400734749326367871505467483748877564027330355710861712045827263400900067252152774286032835783845816983548867329890666999118826003455385440056909511059692218706204123781056842583433719854260488037345481347139785706491180748341933951363187539864128171112781287959997076514001402592108304432629778370057466756725571752605454954896125807325902481199248653564979414058522156464856077039317652847424492723898390817022685548739880557741579258061989141909133007636080656620719422213859272938850676302623443645863000659311650884758819738155430316496818268508529589577347238028686028460530180340867082526333142970184120679533142840097629021297618869744938893064072979540196009201173538020263449826434203943412882214193720538694161112295518901472809393135027758456994260521785810041683393428726563822790238703725364557660406950632724732578313028371667460789803034851703409637666212790098128117633666099670329805004221421856379863270432280593697925773837288652518497797346269692378695090662204233129884614903170611920665186094530796557640305623279519210613911996752446407591901306836035177094665909838678249868257843703346415580629226515587322322307524905906357348920147664590672914843928672605282151388288932662748888038098769678762702519699084784031468775652960910493139458428660450270903161589811880360298943489320456319892029001106072415014582623361173955680200084257900583202654120132699804979470702449025184094560833361614935242752831651244422663267609398081416454621180970234575476439372581463603678686630299189416755995269108784695189420399005348904928880921820818011500067941467767103761291045208382021760792415723450008308494990652174739802738818891982452024201685236141119893278931970679680427034532514288795459332728321316482767700617963569285303250134237884120567420099519965018912859942484017441751271187101173324076992419683079613736235898342023729073132922355783099912210443826970678433801063151866437012127441442869331647501642714799251719902643445190261199671980166743834434087732701273606124729352045081076027748043610152770638986229283808241891423877773615734853079229218407167375165064154648527288441909553370325136057303637280179287330629668782981395630831683737350497840867980572475876816699450203165761131709822119637611990840474994044696594856119121212040087137720250064006905944791606232873123142418294012624332028390673915686792870910503066448734048119608765543922804196753287826288375733892881980929518091401766844243487538850534212640832165734526628204759091059204088705215740526411374988504852152314489807368196566695913902744680959840230473213498094522391799300994438007252358253358880202437619400345987474165328493273273557843610238404025680462423238735100868454187765968139238464633406889599529568094872680984728195917577758176441938762856691580124570437360248638618880517027939439737170667996933502002970838314331851776229103556037535058001963548600863683189944917555357972434615755402597642691786993676620750949610290600259675285651519882201325803244292228313646695699459770953979604459567434038017049555972297777829262988917241060794421934588386365885563577097208190974690961860376629654465924452874750026365115541828664584146716674515397307915335574034972908337465118589089060671560072043004635155735017174695455493713316265417780551379024068161758034855432692684479453806117331681936295216092876507212669247590038127078352054420443614651877638394437461604142889271181076153064575216347210907520102649424739774614481633695356759365326471625296651802950694666871756513329884071829688360151554863362806107712644595172757907183102085247431443930720244743662776121592468146979906358642532515609721883988648592737025160168013702700898893620887106641554716970804389163335652249396806933353744479180154612471581371694558656179030291622848999769705171820662400369181485158159985937073436011128067446911067580031743415770617413375259836278922723268886404337477025979709164401177387041293520291472967464999940613272244592230308883403210927218243794908359278078588041037472210216128716388244423235458218202169095130744031615006385381888406992490615427960657405675302479227998396080927109844255869642310313642308978377567734650038811782610468365658379286486510531829258297631871510385237778250443163451189282908815421160660519388878056781104945828421311366926430522334371497115027563654910414687963306144604512081149660596453412339398729599597591033490069565814834569474071121398689190101329160573468909314992692044702563213099839366740104457748607894417848391088410788791153386630188852492868753616784142424782215523810007217746326567336295468592629540881681161366672333671953539164718600565134075079311594646534256409072251980014085734245485442405625534137616975787783602178589391019815467438011822785113313805732122922473293615604922110034251930139951938346303190057230327926548983137551133705131645369172537506586741091616971983110565675175872266673055951078305547215693502977560410878767572700394996220320139235858426019253799528064234939490069903650796121602709265296295219378472655576493150803155477444264434383225076023271710924159334268882737578758818934004024236769412655824151786133358118371089863035760893799941493394014029252414441244500673984861612989623263825319427882149260146712845178177256931998719459132176894976225515283457083912373351647846199742220584231271306341231874128742364976767676081480500438421509388421392794024093840493102966894730170116606794671560540010242923766805739500223521793740082514754890249165878545350554234970767595066366109023439204997893250196929606716391582891232770692912677400300699152767492794495299595676577416208382520234018831470014928694928995673028092933251409305336505685421587275501861036029581546745008187273236871243742010525814710149565361651427103127921210563561859619121431700553585284645363908115091458228190281973876164850063220552694681018284652496342003256453706390293978498527852590410586451011314678790976838065546500970313010416236111840928618996378687490828921181344705155952055548450668659962645341421471702554090081194832637282503146958268817502023476603281552000323968713538813570872584263846719716954648882698120950471938107667261856195978415738788882325598332488359220665893342220038517883315508250096613598908308834447013811656776796354728391801991993858946314576594878660985750552874989268976531669416003218853585044621273426622416288060796676781845976589650708469220584016083446587701061090296220170081983849432099621566496789537570538315083392866396290037373807822216867745496508548256099151524369721149800946500441448047978082989606120687221155686231608900804139542186873085117488583192688648681724882053918589019654251497791781427593792793275828691257445692619508045659243473133040257032942186842243167968703865617073908913628135225903747192183148984270599650748557279404476291595761533823333957158929219278192504046995938266034187839813530666147642459092657949560974748651517886248575660937994994011283120016963568842170807532261072908622407687158022098213797027369071898578593009570668323716080923241522194107096364846986739996165195619334448401954856061115753786498788829493594430090901542754255319015000280667852913049551295504256194171748986287243948321579190028200141446548864211213335687433678612968949170633419484423024538405610586085591107141184107419474288551483922964692841961242521663564244189583711739155296384485741624412463222547193266947040729527690744543786689694771053568356292304608068401545475277051176384980871899170926104037100454254589234466551710680443688844763476994896305910821181926763513215233427953683243170764069009208985000156612653577535687161507721540784102511298320372454620936098659571601391979969021731681277540641569665859072042328511089286181790896951429352913164996925931228653844950295799850757445018879000018054743441629423652039018148284228039131841464803580937732558978101140887842346168806316656730339619961035357546096417153973398235267351665657003958136089370434788366977536840007219804936887053890230038357301268802301578230132559340190068183160536490867089781333292753490462757560326266081347658951685478509826871918424170516025331508506344640232548050725496088766766979407754547604345198055213296260904276633697376310642353212747203994084607326791088356663709576129798001496309429432112690959751815410903609575365409704941284366583715066607384511120997784066882844975570356468605478381337468225073381112462681640254799112978856941906318200426684209837239984080698784984363504645717820984584869179890638920091434279634060057995397693927556374340411660698550915943221244043198978853994861689514592416313615317523303155707905327465720914846661325465890615621545006314593296205992348298384544338349546949123885482366738727091996651111612000147385476091921116527125876701441860029370502019246418446735104137807132423169556273429108983739263921705375703266838604109402032967906081401634344726506636707292072161674595329909286034849867904008411542630273224807842923569478244767267789077255169197467950874218589263181081878946799931586248025973185813824223722117417422555489527768400738833164083740236799240778431834834680980258022084763293183439957335467344313936229998140569167676835835226870837731195334982991315367281555518819574031645059915405300360839558391429688174534244991500103082552054524323887525171078466576613300546233995722119614222595249074957284548924747008285265118029873725197541804291016461668168200578968022762463528472344131362960308218060705719309379185637696006979960836538498589996545510137811186455572673559408293283201830790429039867730883152392607884904217758334117909323224932796358233207417035713290980639781727971800914716407084547135143652646659451179673026461304261625861476966863399837760333897718007037524734965493237061802049883186877121632499779143855214169259849999159256783878620555385440418457655794010186270483630455041457941807883935021326670781186646705744951280392683217118183647572238148507207751654724395512748262491298108509720486239114553072040102203170104957451628957417273947866707456070176182670727198554186063520376121347670376773663573433468195557079915804832846297046627915983962672364010536658150495536798745137910870837161990935823265900889679602321338881797552469037041545189780797150441817389010922373363582411604595449396142543321427270932801909574113757527447332922030756692854291992010850359574758964010575682602263809728970668597528828709092494404474523195288861196380672611279056882386084606436666115305819704735091019113639509387680233807581187006550733539664672624056381623363252630375506930105081400376900133102243746751320025040140890616373203749105004251833705764494111938003136140345263283558107548958709996615614035793920356492426589278523927139534497084341858544098997733790832561339058144868698166067029494267288939279471603166004778387286896955182086446740756024421571150855398336874127301934970121345302397103343229529840524776848654779423651905823708929978958113522876912851768292739886824947105716638790142771591972055449566715062663025196498606712085704453974765793870343745829735328336521190649389384128802824503709169772770127717832676685141999652811592619363027079839761548432081909950552662656638710427452954826530805834588712963529311125094547512984254824328034202456678846094493213608660600025822541173634789130513932441700187812709981055850098760990006643476881396980056822277054220164997982191913420068221993368479985154144062818264396578507643599626040326404601904372859866862553243819726497637864985049374045593624217398963282152267611702745333213965998234687495947748596782503481526516716492148517500568557831257439139207107702910906710161465196026242331358841891419310027472878951724298328686771670362891127219592971117121976278623175341962735397063588387186989680851424981615278218513350946521604913719089729622091582619497848224909182203127673691763428411418493001644426721262883584302070712538930782190842640642994888283577191713415573654553216082777199369020833290773290880202670000387555082568466096366369931338530785354998698049129575073464798719433120649595793656036103867223757011957413930712974494303981214862815718964294057531147760502436757960347444087192736305638109394233778925019239781998444554326567654605793016129742361883341464697293758960478186366544383848588443397041742669446925170612560276689238647498923586940857961892478109432487225451945667709500786978168876849573362002348402409887994350330345615825960795501004375172949580654197622221366804476562505316654278524702501175224762975111584679235817951520932781972251390942496170851859583911765802933230727218359609716291538402992300492443904192818948498620788762617392416551292083411614645458331154927695716710992410602937270268695114905639489362536150763182188878142996531758675606481995733723771496616143824703110601563120577556628047456617664180380641643733380778931114136740062444057295843843592926558566944130811874697089706578127743618187859551780769941790177413628325996884133396374626972785551071659308927877746028065303153664242493053178490405703642480339584113860472312861273485709436023820219093752734747632224854557664613062222503134108255781680715026081338401460248260819990400072560577722950268134070065561828936243251427361758114592897674379929415208831673884100110880568588680993226340954523798332466926113388782490803048602777820536118156582185051580022286977632264960072655979877153059238017732357593301309372529388357794043343614143468085100731760362833938036875225641116090859821265109787240069059948975475889919986347713959298260402214270308980636422799546109420157629584239978296165056900068605403358340797005840610985773075310870036563680752616410887952714489166211527540459756890938820379838147380220384543200075573675298669813311916902422970682602793674177811990556286618805799357493190824377773529259209496952418040957255179439197973882245860060339517834191695911078588150757027145074253591766579376063143275670080467696306665502921648347126046821039581887792251442025017049846246728101876933539511728609290472559551635613740274032603964636605485144371597117686300736601026730797653940870278495750257228378637076227135397469568662193559215388722535365767959982918602232819183707541069077016582169127030312070868713717568411383684713617559245536437018081683401241916931936087866374625645577318653400297754385393551180297056864951205745103139666210588126817837137915821779524030937049709936174552558846356051175735005222222815165377913060376375315020089809053478886795116278148629387447338255601132098984416549813298310205295699650940542256387875589414693193320512183976394285913796804284147909040098052076534714830375006909141700334267755685477578027784015220531044990050242215392491566240678633766895493382430658937080201798079812014904316973134803499183858170600404535831942111617698451275877819924058590786092440202994780142857497333905490885707310665090418440720390305411833138951971328952054895820834997361092805600245189848626289733256731144627748799859518071282347192996283474761540470620987257423592348735287661512625003180170201077466994242346218766822963230013377740996721548150060660874371009803455696880588788475734659079239288011715967910432628624606074834448862455580164909101407173155769010248665888493728681122463842925172673574117147581237898304490414256024990223817560591245808900337654547397810947066136760529002730803504148941970585152221574211945863159626378717299449924650471863368700729710911293937605923540943422361515426936855892367864979379130800028105177966115781272498559673162228913411096621428229368986690799010044176151895679078311136099138363927203974006994386376755547535593559827632609186613427452588916319805397037252618772391177134712805596150687659095748440536273080145877554235683067356714468486986300094602040206152881429190396029194909616507358265003191707120710920295208734407307592202975157470691282494545402439583743807984075628127399551985645252952435555669553265256425831438851993239550770163012386387538950835336152911655347003690965132527388816659119941192685785601060193346686920149908642183150231235575567809916002270539925034660239344607212488371195562387177284668175782486407097938932095487534953933633730923848751580966022004288736181443512286711339406432851848457460234321297673933184814735573461777371124194133578320542167128573688433252662944292174079707107872639395624097892503488509104835273032435915860417007535325113268691727160743152195188233735022342178450059388963700371047413125977161905574375093162374521887852245867726069260519083451702589365137774976603442504856997371347181584255925445951994554315305394622138270299941819752462995274523261933533611921103205063134651562085526381482347496389180711938364702915908180059731771163082094930499082132964139235091242579093288045772958906852308358684058691242515142775588818738045796934295912338604733640802299043307379322769932875281527330811798553671476152284197176588357558528260439485154761486146838236557610119910828927424532787822910772134254505812968165495937124688708566387041081802408143892753395514573220511472698177536572625318362756354857878649347066889796463348187689563700396690584142571876600789287361638995398810756924872255259848484033130780036287970849926586371036984351514086283282570558131519192452123364157979230937822021302159330919197619501158230834830136343589179041027130859467200112788450839019321768965589120953580263221808158680027452915909734383356426390082704729788829056286191543475249296425782857209407625075048857239739331765334364219017983059281925898317734761831817632046413511188931083824648016966854443967255499743131072203448474662010636629688272682075507566496678123570258199105541294884603846427068448882324729277977763781413473117621414648741302864182083996022702160097104624977265224840083633212318069033435581629725869658204607198478123630073752909172561052094808694624284430859421723454077926005340068066712587805325506810395099651093425122358085516078321142157902296093614020737168095388125319804582651509036804758726540675765684965830972289141564104666144101111395867860067431148950358939090609616744834996888730608144936865723636044397421299311303771212018440974058024103117348403102775511357955905284060159730622798814819909360105881658683937905762322817801236684571992994016199930799554114680367395292933975773861368511746945972956360515411213076242223282376066174046215510458182336810758119027368020967512527616252304390031094489252614439186241018603990141205774126559841822476424055269005739505739305923152833136941109052225759241712326066120771300264328231393003772802324607092142749118960171495512618515960686693461473825566379269380869423550097970164310320272063353547030078084597212028241871917447206928717112504571860005085703428881872322739896577377662918313343557533316355596580879067833083981742103895074198320133057296645006236311646390804144688087195524901254902474119351153635194622168452393762448884327146738138337616295039220803596287671211123343917003322409894541644373776432108659888057131576914970081687740845895741504065314500714792774287486896772292018066538346180421232067837252822332739438226194787518597839964431209961366207602473477974278118611662352776405167502815190978144397870494190225904742846294717940013222763014285113871911303084969421645368914597700497762741265182514642250418511284624109285156494456756380214122577533631376765264534132460692081203136643479586597406648333829123506811409692412111674270760112319646101074789483369807053103807018174096789003762713669827419369581357476148612096033333707198888210380949026029823165867595418149764759793664834145875790039082604770332265537982402241507228497619801898547095987693527997593912819934077172499990082839191932282382782481542437954504048600816405017250968296317528972719327140064591009679967166572289996513387360519663214251169422882558057751272455661635519372512631307334458834839319109560905804600430850988004071272944447147596559464636617841594001570210967488628664179664557855427452628190260153246539374876449915134000683597376498722458995198971731016447272833678300344593687419496723620651189921085491973335422393291026943148861201686114492535191328687932137701854753818486429521542676154837545207162627431969659811780419933741520232447736233666445176338252545926970391623476395095014591354051238002706340276235143802788198899127008259256967732738917178531780322719969326701884912311903115260176642132518921731197546828055383214551975457271525054953875620906097190603519513949129455864803422057419232892878086598873296011277517539204886583034366063610698986098696850888624023775775935478417036687846671272805814352381890421716307690903326434429022697139352709108830284289472963987145158026475426463257562602286742420324567521395947701616820346320134515729443447311082167669228046657883147297424437885226443823556753577499703328667509047429014897105241746377520922403813626529502642850024033832966378572476728148784900557383761110164229798170347446583822877330376665528767760435806488362945896831703768530059071089551137415669985640933439437657328570083690287431855165231073778979822123844045082900563324184140942159762524610286148589087262417254839098191402460002238153130620675963342475802281396797429941823246159475190929130766755642804653598973296714350371110538503719153317234609442073587455226723281727055765316482735797873069281556927827156637575886801053254718404180543525633380068858033968568177617246045151250283519845469507821548632903906187146073516903692417986517159432791474128329500616076048964385709085069473232442864522812759451415534534537000505926879472916624548261221051807683465163460690124246907758580917889754678301740461821021686011822788268062244834435573152883426637499738365028711019762330197265812426540551878289369682945168688226882266210315948529005087425924318629110277947893166135893816059117253602191355648994477205852427282936892330265377604011237140268434925060103918490721043718876639889150476395874173615052667547446040618816300818075517791019109616339188644202770193794003809551382897785597648300386841488658596989862858543995061879793935855817814867118467318404418627845522867147752340415099270338032114835159833123067909502089669469902769611278844233983117203126197479178262429130890765534525486374148047086983906687269245476510167922458916397926487250187545152020649437554454023442570133482450188886587864451999425559341488888555195553587577484351114128089053242250919019854943370855154905522286420393486972476223078667090235388686762863593944755891375938031030052459195245786369462685639565894064741143812674172043606740775524574077560334420821681219755331623191822429373190247246913579290888784975096312407859015850227454021448116526551449980593892368187311607007919662484630593124637173476145545218441846993963787252088471725571616148483014046575906075632594052358549255164023803143968200197506376500212563188854525016029124088440488684483801153173691807126045485406328753446813529294506852007633682960245510792292021780858760125410873425693842497303758477332546909714325006986032394500576878667764416180262156126925004622687814470869548655389654798610251836763673392034188723392912169204916791590634885150468788869887021250048615070471326266259165487873633525516498422203953485765003182487650895514997365621519720737689692773732321704763986535289614924443266882895831998887821318451988107251116954305157566862370623582259192482007944491534269640659580870312423373553615050996316257992826793573007143514692205191257442424095608214134369099270008294626930420117672380504784178528904656768280992181245711905311779663463359088230532698357482267174501659399761664245670039704843645378629949429286721506179130965426963529073842651604829983904698320515625773749199376748499585513705088193679252254652673857255644012863676946481886461301378066649694310619785975105313173129020271843813245214347067157976784434944595346958140872481033757223537013579065241811542727720896168300857793342662376322006409000741463028980253828876061533078895855734541649729276023988305132227535453985743750697179966768657064180921554224473590838377252996838011561424855191746153503850345812194422710879765389345605992731158041710575368060797775889270388413919786302056472124880506580557361956156553148395610964492897654143183158323800302518649132036425970097690451087727460321715775781521112414989634198735086383579209375420571748415242691744015933224215003488471783104708824646614480762739339063345130736639742573136401871927804717259436299829698355946101243424362568693189774762853272692415446953760153355294886268349387862251408564339977108277190210321454360632301506731934336983906788468495334615622628254914364713560194726201785358095578505870143208911501125771197437773581020436258949599075286013398358911004446697847289804966037655593409431608082192810858878424163172656037699191744763276903811034477363668882785767923140789858796743108337119336116795034702920868918079000533545519989151912931655113605647454972647970352671147633606852599241060469089706549976459544211711876090194176361207720413971811742326832851508488949343987705344571350284346025367771665592102486087780579843191931566021255491707203544000269749747604991286857045155276578624004685032494592691020317607208253492706917233513627211274605941158685906818926363769549447620729909024098681147990407001429777384910571631644960458941081582434698747500115332829833627193950155746368059283942981350089293836684637706190248999615864616452270278718002840090628439236579222304412359047415462961735580574814511229036320302312781283422117653965060765936332780810735593231292574185414918935180172734462525531647166050553495287343025558104548875310303661276775415982597161094055445378606901935944817083277060446095375449200361645424901244958899140460132592633207044403850654377851546222785249743901380743813775759675654425160874101466014171129011494090206603594621207422285348880665031123575225179609422848309049870666865918787060613925388551023025643670413275309262845112826575589995858499919625602196092181499944863900805115907409377054370854326032831229828459153486172236212795137877013592417137411327507623183300237900446602436211751726146500690549483542284259407921839770933311695770541056326223773503845225262558669910197573350851160811495381962706759520213316369691706798687973251319083182308411940840813112004627380469572132410186353603745846655592100305378314244636395044775731694451747172961517695763596925922006782605529354432932037275667035035812202571707025487870489282655765989684793036817368710768053456402971786063048110614841499867493568365814888966670025008653256392892771789708398032555139488035847651795626192261796921526296843458576679129850691662011438089953228019255653800641658741595908059886377457675373813116033197998934966776153585665964923563451454525958682570018011449079020238006771498312289253748811547017725631942041761861561929761133956987335371806933023953523412992713587914444769234725441278130219701653324207973193311290651681371128582789319902432023871404510318829778602606396078556980200386262270120784458073303412336114818041482451127325128045784004816314186314248903468839962286822791181787094697585964997512399058751366389495707761368753112915872631772193764100060778469902832497678520369580518187899223128397822576612960741021506075799907546936531320514338834187449220641111126897257416628770650935917893918603373885170479424563660753177136543280916899990486592499999766718581063297106119843917270746346981967123760739238866953954343539376628227842218951882872265048497659956706773341580943937147884269155201359590219315479701197187697512778896268099745639315688800942825452617775553773747330288302059670034537785584584060544487412252711438188167261920254844582964608948356543499173733784168108953457511540815850342080323161635901802480226458736893638513998948572380972883416149904673809181780485009143528897292429219598116167351122984646434505480187967280907442781776769830305234281879432921231915742125376421253940049899166848999772813752615818605098952212279767694827557885529819962841181377704844554115275871840403851404766762908344418664805313845776662895304563001886657929312310026865310380152075855632231992349783864979535260867388852866362425327884945333973365716840974409903875964871020763182749928191731947517264749271929636275751863901177346971123829230443180127032892459242768432811768844301406836012460677316128030056383327334920439569042192389843387779001765219728448257251627823022688408338771835898473230003916639945575763719720665640961776539621552243375506364828268349284993637938719460223333073002421713369199509281699062067391447630940240536819119666364968894165221064866621198726730746357556077605635146953514310939276746518638446511432211336912129599433653336741536336164375845006740623717107780003211186085540109181119551030127799602939240912028522989631808735858390256561378602822989661475084704219938349174982845392090342256806990081838584449585908917331465151826767429831169466079776888629537090202277061859031493129188879080448022579845554986656371381728724380392320719057309807124841791499218251971688649334615164511090625974042485530882815073970406286863032783408254801032704304281995009568549055653343727674439901224423935603463780211097041571593071792412758984348924883954631603102822352742697736746487064440979496389177213281304528557046963661883339946634641472950101385422961418182288069179448319246920437622249873514638557503589421384920937284804614596312330707118752497287171946120504108224709803103097121209385043906460901649246735809359182128903025491629706748637844122703136381001912603464682157667546480992711015982213983919745863308093667307099818529701171474039191709201103265727986737786287908272694938869333459607442427344355521721481272964954024222295303704092590356625850860408186485076808645015152033994536040772486058621965905663220024870853227370809168059122502674163394999621278294008043762758085638784869435288648712159043547661315048235414720554187218941884637193418428585495971284729841412693480562321109241510940201024010969715706649514050340047576669821748403799951240857043969071503738904250303709257041330917781750277061180261899273909733437750052494591860913405312927055759228920735914665440956138237123793367288220101057434508645825908366686527351493134936977767595406314669932913267410643667696117460436533606608785467137510820156239773157331861449363705225730132579765400613737672991790873514150747695194002170323931818089188680951862631930020776554866068077883214978116851557770919680426257531144819745290942447031312982879666309788174449532686532901238258655394176216503958982887434345753079058223716025852659845257062052267150370101405817225627301461884183833738769242564420779718815119210003635900874922046987814688659103179922644495971390703954967188341632642053301162238222987042073178509724937668553913665373304247626281304426793425286569376377162429841174437666364395270884607970284414684165315967077714578516534893113578901482180606072552795199080395107071201404966470369872222731807420845278968753604067247611746455935407530426891526012012223554410573490838163459391006269868184697245770885516235220304579212397094553277467832574737825726214947253069557215604670055559924763253309824312883482607323800917907669257114743944301018466563053203106259499223108268337089358275924142552098682143782529453696711671103200694608104867901981298956014907263930491064146020548213796820878165693495376135845838550305668448706653332451884623721527282575027067771706408181941192284745392892031654965391038813727611403489706923803486634862434409739986352768971760660288985495025832181897946535693944218726252278152127541728096056064507234638136461463589818887434887356910797887168340695141133771472516364818180441665563765572893559427233848656204564048640310915265253202301462412407429859584249259611044906969896978021224544039059087541439313917043110790955629775864186758408674391588211274812279712117870328926886743723500277481595789832372687989160368058755316428201081164291758767664479852595979850813637458595944533340811751298918038344719397106820119829052405727048410588632230967993340075826398615859077189238677099399549902980968927121505797069144826892482762913595044826938759037885313733293582699635770756326843147055911194346734541525509029448987221048934348756822494733344859749111660660788822819854422280786470399827938717262479480972287719333090470539013231391693391900827645936195342551717343784824811747961857000649702923214357826788479562505682593105301859919111614039438085631006663445783926792188060981151625082324285121669316651393350890581143995202031646722579141566653978518647454200009587336735248058398296866575584315068478775530569984320665708758266818495313784131858371341978757340110915801889655836169545413083833153330135858469632133128637032336432532421421225968112206691000715423404478116047255416599264279968089995295068261978295690620691329513072894743104212708376761197645452102790967347302804454205886437701686987074368190672951734793491655035330930201138725791775011424632825679634856847252385289342639486725104605049841206380984623777448166445495773532524959268913484826378911278320245175305253102735825311412921902695897952767848488487111785551767664598598289572220735123194393194155061395114559719868867291736346431704927323113964017041595316639906199553388905784944649692416047487607276501107701578976125485384331705487354879313824709528169757013113113704448420031486216665460111381047995112906015533675280695573282730409595984151448904700666125965924174187224242232458164763372702136735787537617435900454991385127204392647807950571972111319616441423133573054347931173298634281977873468789547293745872516611387999963787482563009732456204127176694492665246555480262210563162726646033989873162057807742420498807778129959535974964460637047712322756983324411331597324589509484822000664093653097577961493093596969935954067348074529658748162651729332110997548711421110625618782670989070677046937502855087831728775036609035757496986925173945908853913588958404039468919174672211045392781383245377655503620318066066207421641956510008655531384273420232471944976844290992699682820738483930009573017626654637648293518057739728515165341162470758151508965634677810224041809362009211895961396234880996776369889104408607902154429554136161291257177329938382869057413654783229219211612502174632118124727962700506275662141395197467189918621800530718558577799857364480087788062433139256674651729252323787907553126909189095425703661580476671955058398759049882571432706456949889012448975265261017146941753002712965575033282781704195813164271589661581761544295873329636436929959029946173845380791224645034574239883387844331246214185872239901436842646374664145604292807242902132359036237270091609482250565609005832882817762181327362626664588565588418660560015745875037582281948232734211290141529450612295249287824312769900417556685467048947700648978216006001539235880654269752887144831141359115528419569438693456738222581041724308830927971345488171180609935351739457322421972375783420534968423246240613750743323192444391880197770156740838981750871114083277727064336277790575930198980226845821372594100264611234693370192966087284860412379544471877750484088215058494204799109783373724644748354247604751747942223906355003178930659887533754427267545017760518780262908589519870730524946362992831444433151792869114719305660727036388970669587981218409179102364853027694616961263505129181216918988141382717906189215016374263814741414673189530285359662468378468967456939938958703712721021830080223452290505628020347652940058391387457111689647744043177140751452517199907515479734266768683334095930783601639120303755531785984892219549389167676877284068666427563595634239149715939135384032591717837586489894064464808499935146389406696637424694636751855419550936349980582407146319804418929849107833818878599920683355626912846587879802672622547193605260457216196210491105139024269787020778047480303518853384466258961420128251416926936271436027099899241823280128536488452464604340940403805289561055057813648283657513771815249532618493701593625470671323285457487692375928982078215548844393719539390601701761565771460653541965769136257158785661580480712574326715203442297628840620297680621377377601429408475104758989582994028266773756467545394327176023071401151493954936247306284710414352823441434129248516597845605914887478168326141609454440582905564195521705247857649778462527065607964724096134148600050679466909386688849304838589891492843075236309779147102193873611015699132969938011265648309528016248178957620104686490023008237435481469458819687768891548534801571270816722749970441871660336476257204078734602445086363200064467841369490614976782602911550145507774465681680468483888176056992360593330252298220012842535340372769914669420573916554414015566268818178100728085417795306659215275341719933972084316841506443044816933391244693219020913246937215125202911462239019077657822054023950319069953215010543133587270716000341105102161938627480153484709359526458572613597051764310098411891445391702542415903953763045848846521651373273642052683208327596021704291339697886909129533528914451620312264574558912095017031932358257762016270118728093803585200213069603580395243175613497446358295325991765209102964321616122364803607504574653296930332348116445152239868736465024040052870001583497915606644881959852504792523213972733026421650156082445162222675538878649305827759725743967302031255419503127347192875156877780706458157516018857388115277735273512416867890114225499611936406971930712906298933398220406631932104290579798934323940210802546269359505895182428510315247648350076240980853810983274754293954051393569083579078963019783541139393375528063712177133486986200456276003433356513513658275895387708042643287430268865319961505890176578941224537339040016913823243529508092888568269562019444632033079888358771801317395141588806297370498802395271454004598896186310344142427159753126464030636568176609562127211432893593007471660180057090882341212035232283583427613614243077809207387259420524439285187513615026607077115492766631990707098760643514123683668926754212925842912597438539434036213013847199152876106894697720596299469219512616836008683201016167856462517027708831953614131339476004656674119416365141539047473465019337846922683818446700567877786689038560426858742207918919884923100630145182629843043915326531042863084915840579870799769684917266350443911036432138032982530214309636295938864775738234575688007388122347958557078660939244562311799500672099227167941795075511853038408267304603960495092784614711361657546840643013017529289115326999843071015656241761014954571460183172481906832709946346257829038560831084373685295744506384466457740114019438897229969363534699584289462757594546485493026626661626069221158899882543271181440362531056229386659612232038258901499864462934034365113341548674553808174549207916730305885614800606986610052326226995394296893068084729245014669340217454173195531364411077490024934081038687975105381789874334153320934255070229620877407957238086464637299183081674720372226183907435895517353457357319260647052497900979654422596117325267857167644644902841038524374959871399703786112419918664626645969914319771270465131682011443495392655201418845922464335577598814670858463858529679340231496056032464446354697129700510290893560944520816301073874435482356832154630605731600032276637015053563040848968931102595571303809075617840451097344756853198851643536480235573337555164469542916093941112188911595530402000764250727573730327725026093326214967508717608527478110465799160605065733044562760580298458252279519879100465696802248285555274909396031769344140168925745089825843572371568311970553590466361282624548385641115288039327836901229702185147338619120818803760438303776679548102393691953561431250298271817447993586200077311781635126651948547769454192031315310928192278376212209112641786845892636575670922872231679359730839063708462006513938466176813339796279914565863762937134092448945699156150484509419234010789486193692318522428566169373363462952783632278306500928375783236112627875854568913126354453951621897124106163459177329603661998596078079543438447576095546787580864485887346331984958097954369471694841395814843459382151094271130667532565474683321118054864673791625735618167242853322432220714465810836956972157055809188698532569977147830384692242644959550691464437100008666758974057568124124363294612007625390485694592028962439062800404587474955024273290249961595279041261892556773991614480861684934654229621421314593765076088296993967109650000337699616362758099563784316070229317019141011869194100584710095660063355120156162334785534858765824811391814569075179015887347809320805155370783235453393317015234386662647101793372331856107432588089810492827214460840689144930797398850726126701286579543725986908453904521333317229026582964498149085817114249260837101033503672568100818403433561370851732304011491639333332943954458936161681111146581017899188779838379510281911504248140357754672369031101997517044067820561631497427612806966815672273065158550619281657775092116426918248311274463656344515787544349660810070886941199205669332270208297735904047962764073981921886181999185339143861538150784904432083127212362042294469588498397152150642156076085219213120154279635101715004588204485323421749132687871054409654342216664527852695153045123393095396697171276707569998896660641331189509716683955691876387181373222719153103069515213923541236613725872551418231007886910537277279949044137694229645841256258457862060283999759169694637311494301841022765826440501213132987204998399610443092851517985053956920446147880144826362999775111641314784316085459586148935546675418916316272421941956683446218244873371035162225253768312860978344036213856925893841013346702088057012509085047799269105308764812536189561396131987466058440532060246666990019167848113382147702239199932506872900455346709374139353166905747356552366659999815708237369534811811521084875752419750584287270033116566108954811330233911669593266669209048512269511638159977462828840776065952359995337195714910687208070556122585352435783434175354379065260409913903987458000224146558038619619417119920449581612037428230996436402512246795280710156615920478927108352924178611225315242158942436331524245489977172226308808904864260270369002202542911230217463972895249772524461837195820023474396375927618973865557586291719380493316710097877080591610511657018404414924004275760874420721801099067781022871097132933176332007551501871584056263323716498354327064195108977348599334087830292326411962147645267912947363715890366807369584252480992127130989564052026546585238713057245505393825542568657277332438083915359609181180253538082900900574670331071919761451185392299037368159869830262500884371713477658255333744926099949234302208235963656759295329706899347079261369068468160043839368744479384418122244576405374239441329402723689021000428577573215210393421630408661973916121229412706531048339586355910876020421668972707041134080373996027189943502870775212182645235357768636598645857910398353096002657796516478836206135040943752469111069926435834959590992372336225160094064987022822850422201342290784396264928656481236794781741916092874648732783082900151669394244451030791152603202345425204798409336869489911242550132426838715122416258722098596061588013846701703999795441103240852722870995441143185939240973272151018569658444018278392963079045939048553129838771413310091199421346529894701680080634196662549144746876921936766914033935097576345332014321359436528957488001347341416918888176122919483371681439174391502288073723491143739724979935040242656342976115459651612920623474064785159154139747971054257700949387649077349587679656538790189577519300077611499170307071387018231899442447698705283413225974867046457984245063683957694211058194411762946609268924913069044903603427855965498388119208325193039955894321167576596517468329465835022239529314975939924900533136755502839752874457298782611362480519546126958476110087560283609447741631038953628803065334185334101336409665602846036456816995796581886947095698850028386203425933632977138042154392040303863767260023498541542704852245872622706848011742417584709858061541923136150818517506212608980826455428630390211271598493089842542394728419377267969418519171422049426953991586502108243808782887520823500790784015471246740237788609049435449498383010983694328764696629551275491647810829428514821987194687907530365563587685431144085163357111234548519823428940213942845495705239343545806853267985005168298359928895005408766796916721063845821518065379853157293895306892256107683626195836717934219508822552553439165252098745367085230475184420704261306996980555041055035032252467647114731693785774148708672976946893105118096070994104163220645895828975522611729276795330015467601825906091747835233382083896124909195308517558167710028563726273694395820234509225304009701881524734183655418886894053153407366061033257848996798328043824596793671135249726297312430688365711175918620993303700701545478160405472561833083259490183042094121424427899563265060155427519358811161692673633126985552153244201630973739534367834214385636082725872394978956252484760155570615746823071266318160492591322722603206802935208630473374758980114585433738589112458707229922209722980104503352409000996133772519480567882249166019328502230930773277291351659309862758113786268432809558890374504577729176446582258971043484607170163940303878966875152615238322151741362374142254547563696368888560101283193054073403488143903000965687505546703336449279379330617184513498789057044587737147859275753991883766865846209918389753788549821580503525554998402327241380294456499234833056153066473766807068502709767203145217150249847460814514143150886485524797638945793852659988159682518827933114484640202842542088962395715697312813464805646918641906517193934645815340303096480062541073646078850510984469464411102323418800777352783224088593113485312780114845114583427482273327972881090515742207594840445833207946061467572904393267174195540438748977407581586787430796776001951312248734611440130259978319477278129868823603298888880226903294756882252422020443744594426659715411792729330556893694848033956316502443891463449967705747185521693734947320249072059349820928343201612547080187947970468290656287397827297951490643044875882204026807153724785181374689284249198851370752421222002966359783819688327982952456723748878193348539455812649924597051878422977205658752174765715465385863285772062619760595459990979023016901719778375015201430062034890317157009192538123912712068083726001888870108678361221442694713850462507191591369528332830006445592051825415624197585152293490707593709209024909887487863801570000850393528860884165678957746335804708400701851828096562067036276363092378776520972308687365705139324303062674120182453287428806299075540571431024742148213537049741522869831320833297662724999648005402793442232038434487695403377755793942612498757686416555082731325474644849630390197816218067272095423550129145648623641230882599173544482260279776425397709755795671405844624762574668182517637571612805403600312609144455911330909943248626713275916533778602550918181579148236179975831687978831247577179482867333270421143803142399650679436745884726103851429195276608519804164429082844759352550710907999027366286413599553005260444195466227445401128203931643325709525887047112230532819244590733071547329731031007609893061411701897203101930016836647032605585331343760552709134701652571202638408430125594981149628764850544886742485885165470636999157822036232498015443042863550316284648646785810737759114058531035462606557164038858732410182928613301418258174723075705717663933677717676100585960217191568936046297620038273115137393547760304242797437338531210356041270860953760847958933645843835388738239434362833567852741529650602738226120386009216734580231641891768840049856742865644056045102967946101350222560888025129756651329083075195288152950713473518660273251032516124248172889575257959342316250003974656303338715056735022543370086226934939194093575423325775816759152469481338724922284191496438748510559424543751215916129876239704091141290723568398086755206591688192367865457017081838422342803867909512023075159219856488467391305969724112318411460854843366631112910680260335321255341118818856247794422203346075742628920759493762347359167647656878653996807690697717729518922054340395474080913809707180137442420301836625952912155028248777328666598408131712252942480495108676607567913961666856995454458331478982681855934449552360146142022183225008228278332754815608536785719502739916638025543886478543493662334383688348842927339918890141111605956303436461969347886343259874441088121335011726071958811554879543492226882536907548803389393883410544758982925005893470674433488440879119295956151682674419480767200275470124488474658105001525854970998477981993947753805204668426721883926401585745661656895311922077220604596690384671224862504903850867840451708293669129086109886532830199940178359261932760372116196437042126168034897907944375922934678783389481902899129086891213648983206260286152907661817233275576627466602505206598398924267363061345425780515967460205154492049946848379916531272747232606242913509700121756013729030272867915986118522357620275210917684638702706985979918112340582454755063040600527610316668864647882010996560361737956705622857342176448769463118375263158117423359893777294521982948798301560984146638435400473497495755247309483313323165534116198826488962424374759667357691079543632449138810222586461805655245130719471897389826222612620173373063393227000935827787964904474280602850727122438964303661112902401804146858358259218273334681492120313874903301507277026088291476500043050246838437781160706157312948715011740946746066504680169844185491575595489816410342237730799276445429507666848343089575290746636303057041586821179066435313356173641542136161873223030742660257293472808006188146035362319845699345887801723353329575619034792066240296505334957927832550551455215688414573077139927876321063045559299040697112515971535542316348089685367532127309030052880897683493597164632052296123618275658719996102871639023987800740688475206335820948281588006421581022458214306360274365514883750238879888914384270001952061519041463277457793049078585329175387078542811749034606043407572242600504957002404501264570989525663209256957842145612598430620245847340398818697266253427562832080198508482368440230117928764611177997275039419870616539920002137908035469751451308262838490025520755941217686268861121664206047033046896530705985480059111304928723448368517566157040602683762505234615584118814923511777787521251229413370471923720185667133781638425027718204318234358547302313020466370169829438660727898674235044309495321386627767644914069730782995460533910196738936348452559126816029947494985171872335628940718945691563633027517055149908515524458617510867036009402929192968478558625985023011877733416046327907393255413737312863096502923941059912380068668892610123882639446825366336868592456910185203282816256268642097820745303121166680694035592299294493350469273747249498885324354033981515927545141655632202069276265238847681173741566171420810636808471189003292516105148394329264931142796602990196756076885241034496899872466898322878756281153426412897665931382913090235825860437774454502096229102836846318237475788142655617252314525592179590008486788308316079931586922928583234708489569727289258395523608547051780684145765673957573035615183534924095902492405838699829969969022831491034241913322137765927654332662021676514413699158338058175454917091199426108395547768442154680631000734555497898116733520229889260666780732444063385841284223223368255055558691664870434059367154383061172329704051677639511983454002885381147721457987265428985052136278408516343430499947945027146743020029737950593194265554122123245080976106981388982459831192243574520404541108700489448311998616062127498136103576088153327069398722441792528555764958584114888882652244668684491094647027070841990688932842016895008410320312991606390399208221321420776631402506861369040901261892671330474127380447701261922003403740466991330553206596541776771531268084382007523934254919969001294547783370779695725290929878341325990175031477240513913500472657042959255392797755461238751839951107346442715309928988990519404501024194404095677977394717771103932517921010890166407369102540141365951849216090382911067384018247274393929890377675533856164279232541521473949282585325664853645939003618320971579718358602885004062550453406548113535664908072735927843394876693640787999354373278584095845718865631842559428643167270482478788580259649263149228954955325635561043031749002667969682558367934193917434004921354302745789720530094220193548192037414619391943651359715841124404554287153179445568164666079039197376388111270910395762714166721110454720047749842023837739703194647723262582663696257729373079755926440936696846712552897663570716722818937214666132824562746777267162875771016385383307847570603737505349741183678616960808799169337759900718364929854925531225004699988862093695938866678222435394521730609913975762304808401181625677112008735719577531025868181442755355295977175887637216848152977491052541107190279714795375477115823042828792794846367080028020140681647910091799506113831219572923220560072014690773765275390735909754711668037623636987577337875315596439597862604052550553849750756842196318059896077216488990450437781410428392187288520712344616049537866420314035104745802359730066142591794495374557528609194879702470167337326411494890325447945599158537086584134566780626735528588008630474442070154697790446665601626938979478006915526404823038387690703375965991061350024255113373752061558072419178228759460118457564219581802070893926428082634030804785708992094048746750731239674138226048026494074987917093831831210820062240118116371693086088831110261492648230538642750853179453354968642315607088443010957408515493060777137616324834802597569368060964076306803308611008010808764896511806900883540317039077894910082231575756204234784768174413997426216379636678687296555142971888263352848271826615057818490249071442110792972836541326284054105851685902643115300022979687857679492385837188602119929455742488252468039238421431742404050311251165048792852270477520460111684244685581869256080081320006654961620169221632325607929813116005446992337791286780830016845373246529492888115146892827153985738993076727578587728021943892948455901996074888251803225813648580322592246103833054554375522290552157462299330830121393712137361065505188598926008330067016714957749674281668445122564614159484068795554674580624093627957367256270164872024601836032638440663773394856684245886307459636541101243651937568261088245333726862334192296514075801658935579275390224287702165963265418020772038651186801361897693035718847079186344463297969877089727718355238499067024751207489038021403268771174621467152227646708447580837580738332165128606381612510005284054473052406268244564795492517729738106742510391257177911400498210941507237226623855444611291869110058241441807419268261576997771564711630827265187447369868906258353891714463225411664727101974373828486052387804799966341130141276400213411417478406459894307138583258814925985803872668901252914232048527751116816016001798232589551280210365250084258668033304310293148247153188521231895451014242310001452844065151868224081628993738013592225738151302003634133179755836494428468020469217901535470155860607143108952373235667224368258477724744130386428843141679837705853532326736314796181522486080524453466372210741558628980346809076270893321191773500400609964250986594592890282293542660939285562016602855083267323346060941282886027870152913758124885276297756827891915217069886435349703516350168249284652885093722356131964992508003198619122162410128319195021098396833893333133274737804365616116400838280189792232421387769310736398219314237231176072508766558993802099557672844853700732428434955405704592498794265590884402272804158361971425849925719902725892162711684199619090271280807135035787476502689347959009440215478744934283356285943899237675922239643960567796313512896565524179456764870730767448315187541183137468903310527543419212568900494101677078707941829583227432821387788990170168720947617814868947418361614066705861632238287992133542344964400451774197820844550029188761410834054087105659943198026676842815212729680878992973649655739270550118441020603156902610578599477190212829031043357236646216607043648826278334018698374603778048532227775677051963530392676361304354885820576280245329975702689912358306816528687971021170141081982114389517089986978876954694716669296535070320937191837465677512602753031004975065387326974561500293775931162845103686795749911000779279589374168716864741606660336027988402989938090335320167232400394908045957411189589117916744039962029124469208540732932738453275708306294046425244539376686041136912008902201288654057600658700762147842452004076643991389511690605244757889777148582184877553260998568793212135974747727519799920044723962630247723965821589376229255939542367742779441406071011554719924689860234959614092284712915405973391939598141874193565738370996392797239791755868438503547540880411340632237710241353177174219635614600330732441850546663859757103869178775670576117304204267947156794916981689314138170324040769480074103344833947192820419337154036509927570827532230631792346403746569051069461815298474419761516337016362416268572312281983517730089310360855286106022462649617632671773145242839784052219624712989658125360874922573629615794952635110707936583775001594413442976556426722257305079100316051709682956889606507632147015219052122488192839172290071117717007940709086550808926964638233190179778768209682831425712134379769146680302400323290465573606189759902879090105450495653146284631447903435830076401269259781455628181795057681915311568149043064137023901324943117728295053399368360647123031114094146878140879859804298562050063200140741913748944007550305057627836884069545069664300364456800852658107764220392478613896982718297795506068715249866958368437932508313962473862193062474581943359193184256967450709001949665498511416014119572751727301328879672708206062388839291229029270113959489733915057071812324182232941545277783042488173678018548722163459011683068864848054602959175504028965000006146005113047020581153116787708833007587795384164743152335792714184002220973248121591425611269096706593590964845824451669310287743890610676816315492816801630046503270788143869414680556324667660654123891847133058612927358854544353048489600848291676993469166238802648983216578086191394240591827251447741958306566003410819372374574313791371031896078861098504511431700499147351613060506457616186932507454151683307319675582055027022884016595584277626820835322634783171429619883606685222820560087055863471627664606850854964756370326573430129975748771053864121644280208457397666814821015062194638703406052048427596095631494320864494332273710433322995118885232988142619860223221900486107781944194116234058466429112409893503016267895618264466333261519044704741683598098303989206362645869184386669611703802507276020988700969589745553582815831803797283910134007457441503656970341788913108823867407673506725018620976601026220212436408673247630368424285181040880250237127642049627795517047315078492232717318335165890852549199029659880090816895120222575036177909343899690941639671147785894500667630155236945797536336932138158794568639484697078926061984784070555361890211633098211979062456705661569082750263349509524312421867263184570067490795205897473575236877519658454585814171485789233772783979027877485353323480908399376060366632334294869459032405669071676182957435729263894798911210119172910659705070221951202860323220975325192080378851091990768117809612470491132184359909893146317875771756671285387473399595392541071781093931952663078552770721533006105493293705599558130238993569536239040489163654096642975334470384230558943971473921069801485805140162749590147914923450464777328735157043720305524926583226936874219203472693802982552811913188983833800163027500811105840684177177996558586045800899781170282451353141519601875661766087068112161927208527798362824320662455000040463375414969421306938326271054306769441736905122159996317638949318301003015256089773646387344345407752116831037820340194477929503591828594916690252093730571594286319574959955867523088431954720207170054295141190911440147162757445046325501019189310839847427861325639788948993625786041729965024765139306321675964391464571633794316128407752185718550124383556362827963583860302701367788667216246968929799149933805368456925795478868814806292632571282989408641328381107291850901173774116121931115677784237758248915434747921122973087170083385134794627847226437173874458249734492356329308831907127273274107009129190489899074063359056691745802386124782166718204394453213650867325495899320621812862932594717675592794858530417679926655856648266340561398213716510781343343530859238369543329194920785086369355643808558064438795505231662229168826114614607184665678638328311418280761839621936874608661768108203668237239712799914826337283662190756050405949311257259917333070614409841429690797283315958235769408487295132036845482168781599320859638063666519259143585195393112078392095742646925831514757321700796570115984352616075192492229487852276005585033605829984958982682601022120629843867526837197217181812873598102279076024712706338123538121904895211677200821212921166240893416709927411446153140559569470361031134329183351727393073171187534130696245084390370271128289985850240258000820977827231942210507818812212511522712251352713183915575902074115315974862560522015724140637071891583515584570238362194543264985246784624208175651055822360961320923271561723556235567945010758593699297257617841562757008234293902410636714727292133116745982159160665548601076690026381042738967420957573310613947232894015589317383756909992429590990567125389934725870052722435169860733657340247294999680000389947967328377110915889625417742378806334775472619135871786931833455081588315347938741904228394359393986204222319832531025252854951584588650692831131804076860731231387776563179114783293265672736221712567159014632130954620050051249534015580272240291003078224938974743877300518961455066974341331534966185517348508401869537530915468035303597872842921593622671800965445389236747297283211748079798772716296220500470477054983122254878934758640614030744867577416652348834735617871786399779610189774153800703646141270709281681687947910923559322528254473792056593955625102337669956190738347130485003914870149734806984081344214540729645552902853418757914616182939496782435876668815923193896114436012935921794029038672559542963866934690995632147453938773089529922420604371898740247815384152738854593464585814553474482499498646615307564304473952935725887750091145462586106323356872980286084711662287556491780956830151217170345403872960708659490091374023925449109769036258258203593335945896558899066738281535911311898138231404127755849096104702680493713209186068475775858138744233359051174728019138935340148061304961299213879503454233156680238171282325021079102916539870747689457626198968839541857824893359939532312753594057513701864710769991588611788245165063317660494675665024553312289794406102971391524262238963695823016611468250200158861336668710521708936706927687525148157348409652852893185253079903383653335290378775682391894153882116547615697805592654817373725553472147552139479976840599029513947409303828556293751083739876001817666895864653407128601227520008754585406756466349105679717015388483410329045411408062837806575177034995104494906725983940708211820769960630671200356823370733383319718838957073604433687081217225961050991027840205081597982559518196000919328460225474134862578343778330406548543165224423283096447926898809755694418732782953811791297494128724617764028926617850639061092623388752476989904735711373092357320851320308375548376400444723371191080525654227671993257903568031051691039640453525377223255610863956520978796637200912494150503645293356572680774064551014718945685467688179801102654787629918712689646494468770642113317320751089429693145405404257394695804499165891203266050932222076346215456662682845504718126825926649151500328859797687985247522248008727181808714850593781718184415355565137179302640762769555263507851811783046262903587474889303042021295594471105080391273088258746450161936974910291275682399540923023447706280341983464962974399270881127910107108567698843550683706928082734598278889259110832309823046476134668199224904548496819964840447311035839607404109365233024069601367913916822969019198008038636927463031274556677867565095800970512858630153395393926081315444277781739412373922219710128899244926098045268272449736939941689058355304169942165070905296260152540379943255155331444192082058491589391107118687279769844945713283648021477236938305700488144709884653534424185873608220256381189354939479289571304488393856332308179593333274931254026149560891039112191364897856114563386058940611403202580952053835185106339223083013994160787133793761699140292327011324952446352150172664505218814168353198663622263423352866990801708322803554026199086179493465612897785751894332112891400449233591930676232513223406338541535862595311455725499413695763222410293792387154603189365349796975880301087950365166685311167445000144782786444171027045659634991155720126205694214112424304014373280181432669266450030221436508673225657635772178929232831989661313175781023264352871618474178155751815804375270142024984559113226297786320063103716592522650973807725823333007885001669161438010218801494572131751196288023062709439868364667875479814345678381656922376220674841119058480937244057485859647926876342454910939334085650738247091110547807574615967458934348291058686906209745810088462887131000826747869077098106040409577097955013620003225369190492814253767113613506872666714876289293629894243555613729841820986321866904237821044723916487365779966289381341682205882500023243789819527108445522850070563562675173181018760983382552911145141540529765247556195761143697348442940367763508854436839387075652081222313708657685422732842036085852904079886914878112706229704601138273398159922223979043924617617527927168955722863428859816521972602794187609822899229273883546253697714089757883250220742030259452827742331095994086024696383892068370774033350305274076743456057613922401363965708906847188554079532238846623085633494175957805778876420164631595772238086632977796333163718721996109313509012727422241152674831375056110415502161359396603421983088833712449250595927378068088683474607142752289469714133373678935741333005973403373806385009379230858432394341811095610853454953137336662579486939137929267813541804166723666534274338016101580693871808598796285922119663232865832070962604481019869513072199435150357371822059983304944937107097413892259766939917377839560937839079721482943514633436517724781442287190241638339337987374622632527493784367722548424788551286059300934935745734456403486118923351172554788762539685725138154741487628528615720445050021075343410611166139554378226940778914207093937621071265772881804505585763382375515532759560782075753245487990968830867856794605542967262955044543369426965598126655383199517363287352684577064736611237681092518357583001801667434997957720208957267325422142752217690670073689814179483353591391975156705411378490947738777662790101877000330944728422761824977308225494948459222771397244433824960290827411969120222316206205638523702902994410116261183616906319543640958446459682370431965125817315951046788097952875538505789293340605679618482578444544779580588581236867923048664523478976658217550164233558506891167892683312912209538774289209318093493126268405049202651975435911669521233258770688736093436750967410957178927445558994049352758076511547015687751577893009769589593849784818132926150580422066725294502757539636378807072277363768824330606939602062626176706185004176277486850391005664251365189283963488602461621310815798626446007146425537830399902855386739353069669564670195568621517451525349967216317713008665720089761245024183262045440499073198992589207642097424331807615276613406042276440404791242939414769062192695878625016182522684681945356926610711850379369921864667080720142602678717494415766693368722396906757406691227763813715580363297432721441831728487543038217705824380093208110897371152084422099173974344020573896275581320382339189728258177262499924211930560964036281366412990687660585520336388040806208734433818209052326434632366528251704837114310629881676912704499809198347462121080239906544241143726362300948580337160305402326500999926888804650123292247286372415636491113905048074489827064698065893159874493564385967525188265789137460987929046833674523315103131072622785333523491061630356983842238794333120026278011277437746681408011600629544070456828955911480074410405570754341835947292230780927089400985030709309613172160138457405827763226729720293815184684651654011426373867782105947451882738636066170918596070505100407697758014238073678440483016394468357648487605273352404807823677880985570710848167111983140111398357447772153676014652947602061800574339483539765477747959987446981171889032160553813600336105178079649322358413979984140295103366745519947902742606719883829571126334545439818262898465857382730824892867353638089138246490211439831052840825086490425365217258352210647860113979599189541523634240941463298525237875011291296567728923359143581419835027182225671643787719638641755393742565682981813650841227867283381356803103968769777778143337762473788358718269269039592682469720595104985515833256864002348938653887128093585742440230979122802448636392356352725286579306038243373614371197117200858373300365567168459997921583933096854655076234666391487292665393567692285998530496153831874922879644948919816934763332849188668229274372558175779979493274654528619682655328504568247744147401362791376730052786298302586013353849238175493156368660712299742589483344874275676219683065583033646885705607867655959139833304074471408109950396154186934206313431248595566307590754187817145783390692563938169158444899009994382169933472075102727933496722437347042302689334154420865761065139007243663291574927790901693651372009370887422438836633335783465162081763029831578765681579659438010132763582997977175577964128133300854687977658926385752330229907400073603965790029479231180091754843555720054235755135756960493305907578212700269300411169408580049079566005537547897844740991611647658553145919908595556915863551379003902091636158511487014290871905511817526931262476829134309073235279593686970679275824513015083762160650498827735957965369890467168359664394519335202260986256845562734504072006880766341674895960741672271053862644244165868978493111996537591135401455697265207081805820912651387516267116817683388882433254579668148018173575435839262443531564041102779793847885832730561755394661380059773544753709416865709860882665879539270381834326192718766225556842090558219526098291965809574051898948496831755710489667309416523653184637861949300425645356893214114483883880613692414129853497482638455195128546809091900629419631725750908635707593721099700026270456133225816888794463635174839150832369880082043362195430773634329556377945411709060428107862146368414381645396900997923629831329035752382843606225473180275359690942641815998951340274147661309273177896768765409887289773264977458245426583116570034233594297695856063594111632012983328467258316955122837511075515623110326125467023768252161594014229553708278382760382701784451046705720311691748162516957599898086565102206070446677443949896396415143165634588211033453191382557102421739139581281323855474096814505572807637219983910653998936803758591348549546221240656872179189441206718432358278073124825567920034850619547749298608884157538674905262519913634529577394145402214690000128022704244096400595630117004988259373966651096448274406088772294498314541022619340445540672427992854574075211659288772200411980777113391661122364374855658526740774137626565403030160538875152098009706521466442199703970077836047650232829542082715088077659758705973711852770767228239787484229352364338628979509388415105656949868083283576997749285724303327236975738879998247173446075347267953614388392853257860260897629464357848333911573683397473752794482980102046377778225404389512942223419331146169957701484069113217501725367630232075248460514447369575930975112651246520364864712721565886303549842310747307669355147593359563044637001390048704962982925616864109672706088254834565925974720402401398899463148036327099714576739949454789940895718685687135173977831139475261166407994331405777156406023287648767154170237067436243167780214316015388465795918864076528203854145517171620044848155345477190896094311488491869300523344100997374595503726892578816420451604176561008383007614509652769980502959398675891911796680164964703261945185002028205626530722383844147631590348194039615757193499624112573510529622489117593023036075454174054927095780644718483215659855800043123207903804966245002122043190266227076841359178706323950208279199537080275805174784793141214026259681467464372488229382575525783086304906943734567039570914968536588971409040266368627145757273949884809634540808598939484075005403836615360933673783761830090916919398458858895637946107089324710531433172800369054750361055333784425097932270709139506918557149132709638544961722110192478730666696911519065298428859934813308273098534850587419816865921921739158281956001157694225444708471358221262439691192772853004867519984715305804563292299767565520911821109739706298544457156368570124930541817892101187031602674568328317272233218485687601190818533776887169182999195793776467671660479385529749361665159798029638426014711844454667056046758299864682042270825408267181694953360312031914616059752810924549215240256668903951947068529109296388889834571543051195000587698180959462507725651988442014673963040266741519063754567550059411627474907383110121643191479512227132443310434306057716473169836488909814989063148168418014254348771830782870727735821943233656419878315422106956100547530917758986188885804563332976392171242488276964826333061628933387064810932031164898867682646648455098992501657377396137136326639761581801861923240253477120910355990052408783800911929401750859052260075272956387004669032373825958366458182789803989610488733488173481548918273799779335927266846680771066727919545316022053825819104216268771976585325362021308560225730321680109678608584854316660761108918493270412361027304354925404027541993961638986570219186420829353943774835856266652721232067428874408132210422025528571794669555834653886228996709701277471141217856253471295326789764250335617452517390198261870747163701818987971736480354579202180630760597230077741095626544791638568938876785438036761868170796939158834491085166900118140471271425659773952752147706837288006036916225106960623004193991026180867196913301446562980138810781790368776945033181637580341356563319391303892617955385845123359269059104276498918923043684612050387856336122217281755941659570763996214048889623015993442457194380376032006410178116374760040986430948109154896586710482205078225721792134739309699137341884823820130731646448612801106364004161551919657903804586457181550149874443944194833066657386479579351668215217177422836057372979076207529900949404735689109776135504361860802684384311965510229126406073622146538276235964691899518593416613363007021467835618807291989220926371802102220218795957301783051627060340831403492685049699218461905877214704337795090272949460300708211117874871707064857142373688780087902471290114850905583389674854476251234049192359101627041381625352295328387772898121235614589883011070390151644956031627188172497411016029687681942544930912943486016002939085057295526242386261724981280413325031273186440287388307251265178929264230783812971614160595378598598150196493329460975981000549218967046439495835620440534688668961204081086919108007729022793810229242985428627123439602617826245862335959369715190904734604211040999325439402686557907398675420370052232788510395661077546297638512952956621887569933932089352376172402939732956256440883308281526048575810565428992203691659146496966055240321550133610719312212953008512078671655032118301476605022682045907003882862853959212513067329894303124386718947297316774118800202340174474739950597643534378974464135782136773122250626616390590809317064858315971526652868636893624918796584447550607149807742433305578949000526494530750105806837991001583044649100082851329116434115717868866527653957375883939804943199111808450488278560258737348860641750951980869851357954811381709829821621345479897559925097730034342451008681118973728342599991205886264089430093273211739127397693635748537547134674089841175293271100988871351858924608401882039933258171013627394926969350023920716591226774953223176119903021929718785123262389619167427370609217482395163433286518279779291961329100981894338380303090019284907140126052841585001959429820906584775334923755330010247825806431441980460012249886083201860969888698963872542853724340740659523604119970168674584841357224371747950116459949077613206511750920095930588713954808436882032991964139584233297278622091311152544391279214929230651103781732635791810073287832680596230348552454018846983638142661415289742494974747359773742336737538827836413232562702705130931463167064822612785135821906101393904143607047110464698917413595724418707824074442273601774422026221230539278674445857696611886114934287328203053455517837086368820917805388635647057345367727817125873469043459050952713105806062001292333543284412771423463511707361555198288435153858129695495807267926786380660759124680927407192904149316575521250339978809541518663742700707422620962304732642268387283028872799978541444686349270663646278505197579974082723972429573496394424141312217998025370384818311720810979415246101131954409034266398689392903723529566762593396893006279956763507497804020607958049709449788523724414416311348914445895238750179402340399091322844258550569396861084985190243980550182934258327845714111753485238762292107861193124314147179225137175702884206756217624619297146558632787940397616270562727585619832599747715586604121905657740432508998444305573812950982930284105308749789985462341498358125446203516449525097611230474541601809291009371877655529556684754593821888627789098257575002187152100484424140446511517203248300553347646900364683739032338701180720046915966351788954458579236669550341990319366776279847918180453492385313181531282130775273311676663944981765296127693387259933250646370034867309496204549389714774860544133605398670184360937505121951805343265687169632660415041083516916715797873452229362976942550314604302996721331609570126956688242852905618676928096717507222336791117014375512815853172335185723533487773640503612155752470742220885539761778208824230029147745156982247912595184091065354055389535221490420267004721229749949275597741834842224249383690161025235905840328184233951845678224790197608585903699302114043560196216115911156088624582671054127726130829820266882138093515244897210645035483886387107141086082779569667879416758438245776616913453821656746740894409232223893184044231628066423462855367457376979513034438914109651805299744589711759374866817863997619317032624704610550280574683606246945122290282382008500239508389982233476436744900946170363681036377181497943532124917227946063853010963361054790054832285517634362082483351760014913547289659776777634718805166954148106197943656884389657637473484664219931471908988438734234633261587260635592062017671163367984247386983515107370882984892644918414586973021319178624044050085467268955450196204001604903925417802095375478931265675288579830503986106755882854633448593356504080888778158378412681132682687236482202815346427994710869072190108582971222354170295564583374342279559281793046234480276871794144605975660578811298083256442584099882408684500104605167478800769491201153014152914101739363998784106775648623582305996761696665965168523591830659468578788901390092073296600176052979031517899251460536114679872604425107966004314779045385247387786893775957268048577922757939445200736574683162831381471254513235826642663025775339841673571423368625395194695292790375764823171226215234208012832553689876767318375451613054657241870825210866835275893348093054364171366834312028335032745480909769352214848363448509923173816876380961059129738337133279207002520647935418944706810894857068736531103862542155292200981031881468045086540029079331539590375939310193126669184894189983963330494177297702549780844628628023559115633137501484186057908728161525173593082612914979291754140843529514386184267788541527088410156762412156183531641016954414628259215377529129285457002051237594367236605330809835945602429954515699560093394058468562932442325553948605690062313831900396784601569702910548779315360767999736968194907867412832006450379757459092258308066905010996356315638749268178857121093947714978996959402222121614408563030681946427041361131211875888093371570498033066022954546833951620693520636877280310487193696069459662467284616476892687402294732844734716904358865943995699604791042155729404155927323158870062136124491068024158322104060365822787361075966328177667434715438787894954982932430362507739770634132495927204102134203774426549489330202313135595508925720403497455863820875551265937523106012740384038609066507273293305298859663367675063906355449427941570485107616109032111044116637019466522608798129726216413202782639712483474056715113530262072985510309017483605735657688591867695104444169054239971386485409750306814794315191503210939102158025310568557942608504024514640185141278145758439037273767786941972353948331335646138872821345164837312190097606758381407797012969904265869164194992542405284453610673677641271574163508127965918771410517965900932874024250775593648752164098832325491598922632931226636577617850454898074068683302569775586562524517636231797082154025574734561380648107194363489586051424620730560408714128406236437122468381283522693738718108564686103884322763615418555504700863367501622413389438821968830149718335405294976153838942029413682321542161326837735046209413245501456688678003296607834284507497723340875029393366484966813542098865872914000382409192104553545550736535137830601983330594855574924434884426413279485962484019317614959042515327173615489636122762055481253920486942971465761350999466869055431260886358009627083418292602524569558562424427258860909642113477409386260204520698792454099902906036585109617340752652744639235992106952487787075382872681153702885933894098364116492011232618963013811364211735034323501391465961520897889189322344117103088342289876026396826820219955833073838539134891124421166326694095386575420077247341959465396477043718148500859371476739470561307558207255290106825404197077367928713893239976653760524337008550359011362385676595475488279128273613804023237354403066224645861117076485410386019235999438620348115208741453551486826319677266391663813930824932058168631207504700730236039319934892607959166053306673217932657953430754717744936437637879342747414085749107409056222719116553114815053482381014920271102844013130851506827348607177448784963987370831569376012059823605076561195391320332084718194207224606230114750939979420861600845682428676250687815817797542987226814033838622233745060290173464836794095181894622054569668944115295147291819507425020481141018483223747713010029062660121297662760992410621994760965402517969040114275145900775647054111322015567688482998221352616222255508743035998765711645472305031052622247505162851954881250034693018131763704544677363293765738261205945928019069412940379703371239062102811004141224493149800290881269844090352658351984375351482331655697101967811251702122679286505305591442856414558945479118638958632161427634684232081354263530407707420760055412396573953046756291938363115455725537921793678024883300320384980286371561428842950562596452842701726290451800176345362235499077090217169955991759924587233869543194327361198135861628840155205635264658233205502870361432594316461759347802995908215858607905060907689937930258982699719230142095650592780832000507391402009606349750170499164470054620957426848355418849306884292001113528535194543192490115799812008942470140882311047270406312718935039373286702613333795679748585192485740296889458153611852404505294761599433528822056582182775567060797755036661899569234448834849513810829674998172946440359766259494416346314990516488159766440628439716983103873483261317494680705660591202917388277245694097640172613148452903049035722690184490330033053742430442098652041425569967051040918526241745737444737453718111766075205041164837679423175147061039656944217954504793695478604403215622771704013245183875603811491312947871815420137987005924603367116432349473706010841237618934729249783880846199542131547421349789857217490744681636071184135841982823038537251991126238074248036405064859198162533378913247755745801835291988744526512820355666233703777978143216562953676841181978885787914339301569192266134972612577439289340406801157105937180455232959806443395481633502121899411404831585762081835143411605910064530674757772826449340597509570743968265611622540775341382511309015672198064160961086460310415451970462031505446551017147569305952751316854808425882398876483994586701627309091716823658701133028799832821850097779131607256507620053649653904140159760705289103378853493948462806574568560214777043690200916048128135175360213001781939721976568023505101007146283822619531332219729546015798084093688337038800945692939203028552057291645130403421756722993163049061011049864425109898620863522987441938947941130366144074106844762968164051144693572367353926955580356561935911364262291187853858769394568026335821614468988314649450321501346476026267686629871159852717257861630549538410747951414173434012144036103858081759286945739820154936396428766139832140605104386430048080281586785463307887834002633905674277040830104928288394845124842013209643128490431800293309385577925963077681331839270336834846413711431001693541946639262064527526327781642347885636611264855441551845037147504704935949292509990950876776257937459830246496659784570810708355918481362399451455673236698439457145548739567456478356225865515463133177833292799405081953354720396523277002615104393716263056878822470759053501565312458896978090970691422664720572951713661044084448710295321044305987478815200779962551942369083238216429599636924397243980244967979955319050607301025606194891162873995104689264859941379020133952162395736970968053602276747319659610381345175128167919802205337250879368384066206179318778864715543782634708964124705900138715179222817962039285108445529728162686184744915640710119979967637807171005396903284798548001402125335827508412951941201051180170095464272334015744256926816018669119130302071053374102276569429602146912039779038594102863914150037646983952072436155888744512539406499755668076094874067377961512505165631031746366501219215076014515227879068151962957715184087516006223605605214636826834744342480743937293246968953580499092732829605847739921848853361832175074384519089850472964312645316255981562798922481118908591767483012216227966464538979250759315769617102733065432789944355876625674048819483147078590549022701453679109368862720767633629171602579907818168966659653214033432476847332991012110411515353062693482497477005365867715235254170879368313469694091804598441772137875400751014855544778182044453764230232052977044428503962209037950413971869558712875392297466339170572797079316634796158442695198060918357824648632126028390375474667583209709213144752164143988374367951944302177157998906313734910158261949018126319414354348220100155304536124693361408865382070050245734215559199897748194482075300985397299167758615827419455522164635553072510600944593105734872096040048838474518560734848889604680815463791305830970297895463106443658182253636188482911189928238746711317438044281431691612858868620338720629586538727791047569244962486941894549764548812165254781940707788622259900990781041123135929390689193671631159467547676435216416544576395021800785370173705872620597775730017252069844433697204493195815910586732775436241593459087489483436087932939844277246331741463207347051336571331455708965606491171123177178370481821624282530746304788148680123385473213788111831175391009284351030522696353843965238413657635707975851992918202883498009431766167397736826300373766842910643498223008239537417819967865083523300880670776867711291843345668030716514162540707840217425507799542807708016503604995308795082543293431019675356401398048157502092547078333889485299254446022329418363553359684734839205841559405839484362929001056109813491378411634433071614166106587315145096135221678522400419609130759256359378691518652554779450450975592869284400720265698205906454366581126973044118019094411703159115600033329969240656925108788309710786628962358173704834143506126632824677085495896325934007683851171937052091907212650463681944590984338039580600555520073693882267556719394491120880960529740905584580400086962408799171962034221545254048869615441404027581763106997019303163675101954718861390340622926464447412693293481219246896120276145075947825432339237912233826332458774064998143332585305953324318446152255798284046010317839239103874402198898830524665121906029000416812942075497788009298309475561101735721194894419668049108189779372207442227386477859863245886627264566633850199429253900305843385654364343181018111661224821796958174715319572766966763006239345733839074829862920857896765768224171729908130164357978846703342623717261669851097382869767438400851156809814401615071918285044195350032439216860514933501891510338022744284984731759823024832072253015235326248441331755701925711661546761240194724192987451531552113799159434696024876015935047073050786666071267692420758412146398241091315122131024942565374830266690224668320444413099511647571406835891889058305180206816405385653178311072852942872308606728407450939665728733399689048222488103342765056845858037371065756867719512838706603819113253251032772910073999878552171743660880678075869052209204289331329978758591112559138330030815393773560972802194272820288886133662413149117548349106426855161327163805122994666465210234173797081155170685564747026667366529245761512287599903789588784469987634536161033096507821221169615770669805989075775676631889213079417074684488286966169505785940272119076776048191799890699869137607845149490524423154397199946079929913634197667715570055760901871229345579636297279477827032833036933361690610001949545909234063240125669048073176535139458582366116319296411171770066400556726529906137796593602171287404022133799110894214672292390183745700872530166027284906064060529793926094430855071467117357242098927297015724661752694909697105304912374089453279962792158852697664445919626675973534632293116890862057625819136855390427667170436227057483622729300599431102300529354779256487542472475408591794814842647884504676112890739886445319023239121644419129841737485414549480112015808331059841694010393949027254985407639026773382715762927491145907029394692235242853673008691334827112325740469993443100498392162639917312952273781776700780623365106605497264060187520085669330870748704813021438000527562024464163330134803298307651576078634280899574744615202073939923756258303844641256859328898389105770193533263708994991279382064774178943495948601314217888980208145135093233166190664748920582950237299415716815682750814315728995181379187025292866830318308268708770115372850219917584091534293946570751025265527772721227169231171760794295251008402230955775084756297838155669331006484857820893184442432354248055829543460080452628531473447451081465082310749880508545633564450638437993983529296432703089942337181104833918645759752086982849639540964057559349234050649494023855124786068273973570132290613763640729800915837235962624356122642124577125065744997959228157574517399024556049516934878907542036419547949173307273972466569957996695962270004784264770031110187661505782618199975682890095089703920974855632094564055987312792484455366946264390135112836848764666810578254752286829738972370194832710185979298705571571809274247344318541620461484935653444905722669871155379547952424121603693196709710424004573062865176730717145053342284247229542089345836160807418688701628709015077335762678525506969386357119449759103319452906818350998677180728574064643084065285749917689652652738643676025072597851406812229045846763669224993159413353582733036154419719206323971004151076342463789921292007319449306286692888943929651283203820686831692716651950739902988225349443546810603504295647188319265023308615339262711872582570051304487301177340762909911458771894429011416501757910049953351951135362823742900057078362763233612529281474040332050581488240637045341140415020414629978407751667015674078756147763253611377121405711705575187637697880371476814346338769145503520682043886002647849724866911622130044031953565245900971105136252412057742595281857884554007957788228052764697590326179311780953564305872607274223662478369055981282325025904454206169975817317373912785650460341848703355740433424884904278020392866483769599999397680661369951770456863427701152678633136060421808851974564550683844935871431828412520593866550045257294094068308950226435768759724440891599611476818843602617571025689399862933599346843487179464361074068674988555573195403750948842260255226881358467128081199642637089841581157651517244453942718613923679993663804175816415400068467539754643073016615856565701610793771044327892834765303158290559722284541424470275273310415850898675415047771513434109183197214830132584485645749548576062132197202066426480944492268321499651779003932640870683281249289455604695736591098627705934977882128541345744651419315803378169576848021498623999343812852878392499682142781381980704005645463535904657181750043627765557337101168614362943533143615572421026225845433040781975875776730810376035086304208710861432067076530690214026928810426506801237937751964083097994433754807416089763246034470838429409539349711795544416734548309261331677740639565665493065494460031547636108055351331375352552968959218829793975376377765609106182560293946205320529245458344421795038795414251092923567151557297335284721550762324275103904345552523152121251653441341804869920623333708772264125231879525743147382725515003712890984890913422815817798328893411010668412652267381430459785732911265103748767631223038439744796286964674899659481790753872003340870530645448269173197402363937810574371560332472341708117080704925315078273896715474761109639594649002106475991684979926543504722673541101636316110909555248451065601788126927641347422427385989578815913537149856737164828232602654317788763785025939883009678475830960875553858200318520817025192710260925909321758195667034340314944909716052094150125945299543517748830605870394437174193770596649227260005403675747097419839131370383447383435171528526028342545407319358371233363918413404161461775950279498162779149256063486190548079869542004488450501887915155786394794981705477615457982810821139078662563515409301695899512926606615994397994802115846249827525234379888787482678741543217533765613052309428165615250957542536762694016898784301713405980039995506399420819284717815515066902478080250411601825073646316991534800498306327488594425856431117572574410520211970344647366167077958550883380528557653654957848799975569367696962589499347763306152354734032708198743521277694875962646224385856228116321244249088958264573035343457033133433269411963715454430807547166260705476263051267810893932341334450850951924710299837416539821393235785559770948704144658775822073270101609300896535478551978786289641507930597095934021203786706478577490942539541470640150676386035491073124744351569066836983357970356918374715013831912920709213479842454460992213814625170626642734552895133552072881973703047127237727905738157752722230116047451007667075215951548673981571005755798130732127148841161215500024030880047658873662254484046591001114231164767398340356463439267491845593702847090131056841343933026644565237561198354265527681151873390967832210092100587309174063630798466350492423622884736848880525006208740453956997569536865621308809078274685703939357384895496168309395380543669862041632095792818798141482746028852553612254937380957206844042673153947259254247137956787293869127989395500073505526410871912187933330987664959295748214555931097390625650138922242185953508728607855303776497687338739984300653272474772405356250520250362042236322065984249068969490055869521501588377125133989318521168186313420725426691009993350286721787016996427811930920328015423068964209384044091042433977545979857731444067863672408070691082986288624336871821555510038794917839751420672113171827381740960396160635165441820908888999603898244947066443829645641428797113279209343414964910517072450781099674391461948162631356315828151129222909424857108360754202193276308223899418706639253213166851231605725724096368037367138375486728585663873344730500626450474856802448868385019667801932364691148454754150935266328546925143240465607962756124447262605349235654378979484607202066583415018349933555589237118913149323013063853567087464726835853967317417401349893327631480273845747729688762127784434339052147459815797071018169854004540790053968287157856422693900485808478418779273933665270831574801885367221543507230119889394527677522582227457649800847238596076736420243109019198188367724085847297835802463173228009596792300727992063111729819775657328782333425867005856262893427701037894528493761415327252753869233647072631344787132352867021453726205371235342936438925391309262096688086158435460572207064316121174574568384214104533043410601982489563000096403735650486983874799411722661684797402929938395569925817811165184289432849242040047080109607599154726229330099529304026350711117866753478073554456967708203666203096964946676376569996718339510515799629618934709095588858874654765427410038414264706746654345706553361109816886230904997332341079345975106102120363579055159735562782041718159239875183494099645288463306127521580990994135602520142751939491160773857559941457679602811860668610538703318514136440403994026263832836551977034204971453382564581929951327316145652920344355221277044050712408072499242262189914535562210325126158485947163532671372573494665202400463240415055337155369708191400288309836894521721528161895094669843272446055501046566141032871320708684603315191566277324229889831390317368160316718698210801022171188459271805579221235347123306034033861687072450281605479668665255800951508833808551914036106788373233936829676508799745135599679547495221860003544209731190408394134727587736933684390572132222800905857382727334254069069402672260512340892183786807656121280586820164994032040545171072438622690170907474489616970184227719815430135931397343886750817807155889240945114644084585958812685234169447399143943653609283689265646936668012984165591718366207860132279070364527101608350933778278119514537741186609500486227875174774363689513676403599717845284070460351513004965121652677926706806641672138071998321215034221225626246247598201644805157245801577004777709229153114158189347765376817376125170515684282834854029504050206702850922681565964118542087198648089773254666918608906554081671785216725914352554080246198285183416993700111581787084560513357442060471570115139017362582897924866819908865330766096949197927003994779145356779161569532874066691713603604159331606850490152772151409035505728621075192197456440621986183765151165758903776875631130035299834551678399410624153041109238349985086328250572897856115163988054105875338387946777259184565799868780261722763036355064821428044830598433344280718302278914882836132934754821240196448524578337676046488426216132039568197355692616846017579711634949310759004793116708875580817561070042203579474950231098016111044153540026592815226203639916211275747685158668075687970825076572410945151465999366787727564301049831348848804882075488160649050701211973605720188620588161281477273942275358465464053949855753270701453799138588736722403641020952232033343220208700388759187493600041473178441942976892510342032841834691558767445648536180399886433522573822791752139343279344686074665091352987912532582534810005104712956493985890691302710154966660795713086483167916253799072575008279978979884727758861307594203735122350209990567392706092870299338631385725787973749789720759171298061277593973331253029564826859792545733875418940341090843744306971843766909320872829210482400086740757061776557222195426950103638811710043273947604431655661923864198986754203826918618269476562182985668787684797777970555594540107839861556853065487741447904941114238703711453882313699446676156548486972546724693814517199194307947168837735116686111354177651815908564363609737618258891600384187938547897401981050917547125859008410789341273880312496585988099786224428849012448889653050167927864498699096149291906156501993315014641217923587738416180806643722705040361642277154629290135367677937842579966296708957160476336829356165035255519229078323507578390591029115173413229940351525115719852624430771557182773079985428106604175015300141173283937830959280049813783548706050075869266330545547729611931395040028757585984100966697001847939645008391439344783554958440064784882160724869770541089520439138248406383767708991759102682009376021573917897940261960158155782752370885813712377729543835382863302038184727442060498686649810000299156698521777589717741040391216616774931662109893833260550710141252879053788730571776165612830142257764824608779087932237264865260046221553507914971381428779351609958076033926476909883524680246117666724912041925251502456771801033581089253360137253076987175497121530847817761087422451276416560409098514276032625486540133476738345051521942955382810952914482187117902537569566047905416525486757599951016666060545070199555228688879137030955174563765604093340065278401460206254183886025539759223470597189953390580502363483235776620753853099670553606573082057286329654898820257352869142253738863792737405639043823671565826760682345928942434471091141737496492667467249520445152267772849597897309902289303489203586192670971439076472536484371550769558986758743486774215957580814901309454649408231114172157250439317039856898761209244035608067855211223966624321208835458496594362057067879490166902913805313334283599051317182756653328555756049223755973767739423402101689012770090910235169001113869852103689132550077621259249778629531451965523016131874131732557863718432809100271879505313716737533258687451529410832600734291885406768042248993841657174691881204912170610302689369614453781421917977586208552647139235725271774122788432769480605099679120930046433634210534550430624912385080624733800672067218389829278051228532835238132389590148140833335687986895202455278397874866000742000192210805235831803343041576018506642281338192983343715406365740107883082574958029391212118699072748339342639977928274300665570219547172377990499351977230894282090524196526503908658911759756525819171958601161738379597734191413468526817378369882338939784650053441348663906337227724309397867588020598889244681155456330396777215739596268540035434955451139843535909500709307344929701970966089692262166035675324853226715478586362553151934151552068083605237479251662144397721634199641800376262508557220173781227351088626713644635456639369319434928261614734952093669497671266450039288611722266192413734126173929648984542614114366726303743147927176225744814115554616533424333648153540981170602085836053911462248893361544141954492328333763649650721776455214462166378272118571082068888083930629237714728036123804210801206474502088720294103246302289953309813961057568826647038929523435721779235422249484102690907095902266755698332204090028821267963029738869039320303167750506717275915707477286615735562821914298467768898942106567776068435276182189016482257246516247468887620621677803026849789854166872142512039295940011470918273094033780323170552575830829024374172073165931357036785032758022999708266617540812955264178414782153560301483965803209966247875978137025267322328909945163035589277135039139211204604310064415686381358678081501349851576394398073316301413190869303243099327057550254781689177046936132816480728071354245475764829117328784718145530965860555257218304143576503280503222871901195543857496386712633033301744432664170371220634189812075844975365351225865536937437196267777694602247926260632071016771332720825422002064630251177598857592411407292177383778568959035723247883396899231403985264778024726947597614086558906198309473652600070846776180245842766494693607505952402047883589081010771857351909808632390098267250572039389056670250559852620533906648421132881241025398680360582998392251647418403804414434478281467635336433725489930043286803792731127763466303633994825778427535149026695750997248074370651345049541393512292160724954649341254728410382682261658956128965461908936564268179777979525722584682586383507775183657084187272239881410766592049851786055782056815282910334770365995649112046366896677739855582432932771341797790375182880309672168308325297547004573880127990253530204712800130832261344041312317761714171999015495040027110892067632992054204651065505650766829117112806168759428652206838533989005974603965250605051574177886405391561908071696175549343599790202623976068247046556671572585088343881222437820095453747294859839534769370506113414538263655858261535055103447499070513236367996267772802110433731459770639877470537371766605193764081906710466060333859464266714605368241300044507813401662110496351790925526182407558085491197738212361094846413643465083508811812260113867708882166862447234215811934879609921817212636448294959912512051278846192378474754206816779199276922360791991262810664338316872327374310280602256675990987939256691592925681395508690872053668433789333716611832980710192742924439486917701055208357034353370779442914743920813199146625036113288737565214087883266039932239892678527461637083941299658102491253455724564159927805152123037518759187478186808101400699625722437692143175111613981633061732935140996224154362351890129410555159645709942802573277861802531845029235115319352246070013244619802310062267506346889605279207766349847328452977060431544718583434756473421494231985250290827236260396550498749231566489435468349466951816563479045340951797917660623177778419033874009760044805066494222226702242503802816539963310450728600396880106455650067619297861594610300828090759083882656876492176334273328710355503680524005507344565367242912134230171662900598368902293201720384897283380520840805379573341378220257751332098704580205160805033835731031253805476143163772059488366998560223981427403406251386805919461256395092071301646974846751331484002874375559099866358481830665570129458397391420331209453893911780664867851026375941939900048088918739144957982944783696039182115753179155183757197166360778960328985643645952401036728287694550173319065933701089788891459759856821512279816805284384936664403563691666621612274512999806253968358476565102081481681874348820461178566935704525745090500129832633267435939577565097903086044622712663052410229520877283496645333809906240170088530424177546079678763812972820805292849842166021473577048814691133441001137999087220990448270223881711161830855084973448657114231445862048528723991767497429549931344991109830107383683086519862970287381878672209047448014111047104832593620600531401053181328576027996273752018326186075936251684189146594605687667039801372484849499955416989366741694734295095527517799738156267498015137170919880823062538693737031605671940087043603126520430331911014790409842257169137525666344885327591445825460698126910250387745662955716190835352037898569745012557554826044264185361257717972169462602731659852170812329934611461530673024738475962808118869009095962558910999695065540492513482428221059903600918277158516109530553314363738968610034011653831673492545448829997194385227887042101662522754474522502227235324754244975861211274116741933812200620355595235276568632035557063025843839034168249629059831328348067341164505692760562389334988077761481736912170805975900661658502035466987115197073047954640926231390864434582746257709579302937827418862976170874813030465455369156823939361269007941550586421867844724721160548583223705753100572854019618262187946470924923992822452195854555794963255882795649949397652609889256512847673229674376956485474102501119635991870782622446604369971576325879322961069228852249751012438687026434016208291008505482896791043339051966785696991751855790329595767232343672178402753237337660948412547468550111174951798286046913333603131756075159600469684130290942543803996707287188694850125402700154971193481110521061363951551293247857702340733805028180030632068560593966856982500339673109710839010830900535976298015270103113040348998965451714695298166852092456206496169231028272275538546886105729912048105776650570620216992843457891589092201782126283999609984953096325005983288647102037704505515637676593441968252028144198131929651268641503111570056760062290390792949616615392337490986023664919502042747232989354181414060893984172038424135007326904774561635654635360468766692534314888480420733890288607755069411468060063688682359921704157575295763863868999073847061737483026121896033761618528621347474613685953391479851824943076930390870711064838877666225999330388113261188234239461156968530537787576324893311545346706808304246572199186234215630275962333972380945178210734671782810704639287519162402019005761909812021935203061537020332452108039229753444284565689608058292372317296959339597745427556177730330807579144138338789577337272395339349918915900753296544742258880856043847987514995717081301958999502443793220193168999534345578538863755413543497789191307951874508220911980660010847002251871180139359471592343045124750773513724870261833360673255130734829654861232449061333006397925766179369915474218954026124710447837377333273581996733131207644345698210499990565303836525672228091876592411188520958868559695276079378057788901418672724874407469381930333220372424492615084416887844980225816721277075770307539582554376281017810642306063507452919851980846945425530665225116619203254187124005672260558163466345136284217782057495462398039134234924438658478397700661223908237043106083163711173674041178360882978434493601194766577018251844773888365960366395902652562673496292025631564319850198422606215763806350670709308156998254759673512902266691961022598931367377022658263237585093926044734334669988936755801422324819361477792591031716189379130774422584516248651291632767688215145041664932366660632060244361443152393820078303888655664927360716695732734977596901560528591903862626953134907187629831810277042345413835855635567924698800402063791580780015396881824166716410968437231951667462342155253862392802803263410929100671662437338274099180683360036037253267606935219618875698294553635213087730562920876943051155672699417167706011892077700476541973648118731678015336849077250487964164982150381621201541147314410241754008675440283361552211858641841228896604899991344982293125229187514797980835449080276163395776257205581772869315377679499367562362755355489543969758987270526354766231082199058565077844200689074208081152303814690606070602862663080434097036310530148226457993035812199923909459594396062454436432194554694751166306976796655762136537703145867031234623564603240248637512483010710669134095320816518499854045766094758647740550379201817175490710238815700229784733753362125581829112989780501894655732569874155369507669031407768970955295735058443748107179744207908665425576855691973233056744513546323291013085101371985327908262815141311376014417859743236223992750835664809278746602069713370695662398865632705922327647135928057686958319298246286619632816196843156763895473787593551278483186441387583338331794425418409623221608373056482884473544520344780442486813208983355462629855510000719132696371141746149076823277058224859285284787875822745061187598610740166936866506985546387694294980443488757608741234948836922373081813223077083647898821898837671221667050593547442606861212853788083862498819332736815583008295790873771839656642881101758243118955348963052087165355972370372264762726815998588380784979910818423734459574694384577008363164068794525551890970460025473286039245311386170867848723513613309730206832148778462819334765163883789208885294317955862697928434087871802690770642534534510644892687129773566115750924104111465296124429816263840471279281661711396712812596920171459232171334078813813953277536607777586593442466541409891852713922301571015589529261327828803104928320889390859993303598820243527022401551849602447086897778127830370496646231154274157180024918989344395392845066077020578308563742394622129942310239009655403710497920895246095736969756882265664031364152422548243650610683352964596809211789401696899860425965430088967075008289864770816411704865878941101373844954850443906798807048487377158168460255888913956936797055133647567235069107492651496363416010782373412561504706736516403622353839677347006677582753247125626275341785109952269190263685508446676809556914111486262202352114496331595814789686114808198663406862077301694051244937982148963584214506189959570248141199180801999761599750120536833810335021479417342080104397504054282373402503176410971881597910633969379295453412830526397349386675498847483049523554637958719313681633029251335709643927051826966078865757980279976161037571358295169028641847111957183796320962711716982298978627318404535082245993012347410111490565920750406376079829547261077758240303673592965908895959211829148435709347296259787786836231222154870163536509857971658403554092479299189354114980428137865375158499397004169931145274807373395649012406667724591616006734744248441057426398080339785496630365116791431507369488861293216845365136536408233362486294091999157827610662882852241721408146133549103105161300692439249120819253548690685402867203237367802880507540200177466352704499465932894939845698863360711583998252158463792380710935202376740731301845545642913120683684150492699746578805271398473261342034018004391952169747352843697712877295925956841767871621025528856750954429913756274114815609519108966560034095153896434930119574973208008044150562259240371576365535970280322739305655140896141315305751745819308340574246962697370523620878095641293351807048982408023177831388773631377933529571154347135941988515083621487282252419055348228079121186662321835060766500395675499797828925447115697761324813293975461135374070421321955584834343453967306163156701566592960195775651012452823469941512585765626611270523828036825538768980186618547767510328452810486873743114389579462956500895010463694808001750808503311544022132926992816989363052503169443531612086172767041047812454259339047673830011192653325290725749127762227524252339788083272161991567191292585137092807489761424571455739771608749242226631141329937044262531279077820252827357161163034594608919423536685954649528701139054257211459544507338958713527684882789064840362222631653127775378152028041344201879364778565971573535617087052371131749921068793645259459300222532636691016700523862684658373393414779883235209091092909113203567975429467660822478192387585757281148570509044873098676804393615363188574711023318938176573784586844841795763167753430170112285162407811546616768484285437237465250733959707258870677869642669823167446522948921424184230464549275010899820825134983174144792583623669461837877713105885512237022572059237007488393241883655888411913605901851240207678153180509372928500334559593003847238681717322107898801625371215816654464041635390300257774934310250518580172026033574351842517229685851977632674948193358002069627179766553112512705026320237257781413285812638785718317986388963077487957985819952118548126772375775598303546783768388069615227201544913165205718522032875663236343445993001239527692209661931164864383322222566441189794467113116027254443632774203956943305978087077665616989477457335735915348248012894530697455265297142538150617680947281113146520036425736246365932726876781129390248595967288811034740846815787770373745352255526778155557853139941252408596493890471290560037661226808357032114813227708267012346893900990892104379718380290785765800479512233936940306699963659608627070855937958738633101618873977714682978200135989290952320242339185521670291943429772564261918529545233677560602857779090953950365638483129865393380617495002328182742378190983886557799283482708770033818081547682081525105732700457302699555253861982192883100478535492424260977980933959413273352644177886115739305993620164357027298526665926221121022628177233666254767911416981062527269160064451714941061783807075281490569213350193445921575173414532965660559498489994611030617232716693233150216920853973492337685822250704488770226953418814725550774708527172291101526377092478765928748415912947771190461320570437619600978800769102247017055659325839704689475169401578552171128410092641609083326353660311794123676331176161324739729958652166003229408324656707414247546693127522005656230247764989024580338161319388547653959951329489359967092960649515167928335463131778708699874045477486378170982161299727427462638726015098631661271564927607720558016870211536362853193772469359299837191726019735254667988901837809627649514295332333821814533781459640491553859726628332708457688984027797582724723545500177250920897599785499736817470436543239822617579682812460794543586805896417713500731990259358935056760311858326959553000804124892974652827609087537303920801753164524821651976924444851206389565333468156704586192970510844329694267852080730871218480584287885805091824585602226521732609631038201033436946869930604285975695081454264548514154771924786786670198473218204552461698895115520174175041472618007052051828605692374790001956359343118329807560984591625964259620102220724359334830201445250323128752949508757709012320663217122681092472980252732814012743921770331929010128509973855101070811979258713944971350403975304428248108763596599169668551147099773997036629534103259416205655330619055894546136400290471105936562675093916531310662498006473134149407089572974665055656621551920209237626393525431302812885824418008304772344265217159785784889768905389562250075620084365040340963691445854639382628649504370929860731665074293995296591455134556052489977907210312530258200874221935136671632806279916225451066602923426517750094028124688215816067146676592248667649213145038507895531864015631624808107086244477626267112665555450448430980598124583940645148454517290024656965265023085586417602380151073303748954945623697604037761135909749248772050746500746529862834747504399989975446867783385870392322044723310560503887258577696954641127240671669840958999062252254828104556808959749150660180570941583861792171407232531481142620589389372641658557190762158217902088980630727843128583148654521483611444408900839261704508227249740290279895908597455211907642243311908489524735300094384741154431135830752631176197474413820346088157737933944591281969492975012605425471328538735018038498040001993033073594619691232632414837496021243639728002971877581826315434819942833082585257974808886029286367568479929761394928834341755935399788146938494247265405202252810111708790409927840267445595842252585571291181519049582982511640349084360157681650584841870256481858715127908199659327595487190119729146700209918161768770222465816319259036210027078433277271667477084048577760194627478347320886900703910755513489508013324402476058129943640407626895020446712805954000270672857448268673586953888310562467406475875061111361413847804757290866556100618067711998584506933271990124640729514521453468357198426311362640916215041863551739795505607409098659294610814387131783535066845318853445619158832443247830911900099213790273758589882611973396341903077358737328176745443260487118734946970840562115884520330757894673933659748218497271385023762919991133536328704115846560290271617045831817747627754236589911171801296028854566486600922260657407464879675196651170085762835612618357439693662778307667539426119840184595886651454905181116172241125057236833589742315602175644083987583524503035676722146818342585655253419844085769104580889602651968111003207862096195825568947121483497373407466190636644922871777155075453050026661728948498042758178060770567499989072891495259856386006361934623805610484166517690322193313853447564820379549962570054707760115811282208768538999777497481694897138663144034759820029296985949893869188226032431387375669575667326285691151641971394628982610497281052670185173110889406427310373236783835007414737101305446563922201253956751525881671746764136559083414357465179794573898181877357995790146790850477838054934943487229619615889906852461955259907372104009629804365117859612804138900686853461640950790070973959313649699499912096611047931933728480257336410211291771654090055506247039915938341783581486324683133309488864863728690863827446172155146145114280885295923681391696859494762476145732087215559431747591608585337974493919514487752121316418050387390948207627266129959531336738291711908670621757126831536448823670423025592047530147647676045580894609485492448178393811100926106538046575228094979825932165679547630080136619618400402176314119610976031632287924048156614904728456484668452090975100814170100350309186574151513259819836027024472037301019775599507277419296201823540681606307614080655801629767106203391404793790147714679432227150948295558241862579046235073340032290552498226387969523483330736358208903500146966059860996295722069702071556479322148996229894112393750886072542032216226833490271120925328562582972354750340381017730559266630442470566233497643463849250480359251704743249046087948902416397865005745090175429969045458361682521609553215885045497555262551298247842253462207928640611809238116680470071099846635116084976045630519324127725934021759781975572835647797407999406006796873284800235100549932813215847317872798112409462248150508992235543004334390025722258274677320493264000928603442134019709616843652538433487975036499993717761512485310699381849129167882630137773978393431234873209630196621514575326608002782763420664159474391068688295126646194873970314073781398864750226407629397802309414983538748498940308249453977236613187888107949524211254608158932057094187757896679025130408264169099104694125262585469402563398969073772957142224985102008682632894000782641754957611710237129147451230921574985859832248606345121357547313195887366235432940258508985397258814701612248840189819798025587718550640205024792834541218280730183517021198291961348600492406286377350299433005857582676519133461865060343457778548580217533840528045682283825243095081801155922551222715524227883524933202017335122001095605311899711484750252318275700559524412479249756444612253848436343575182804487016122799814314726221702532917781086060001325063159623996089100157924540414022281102680801497441383469738614022460948920849077885190976744289486754823492784777350291908188190372740365203377262734836458093776447176298057017930774684462148031579147821967046701973771290641498109494503845709422857783367490190965053124265973504060174958971507285948861686382536793309348124859896548569817323238277420166641528455345853070190077181799760220591433670630959263801062519376964992933670057338556293768453460221944251279352524437922054903245644333268064317519277565412477046069291179234805809434663307880081523611640349231145489749281169389362570098995182576668881997084414268496704135550835860345219712142967649561678930125054254536430288568087982730789350947327658790965367496094250009931199567434846073155080911038683978780220926102140266652663867591088686503298884945274144670720321160514796508910789181764437744524424114468236260698363553282388763201940317164203379033123624509670781481178798548982846108504703687407755951514788475863306132039466588879462177374475436443149010176743396656178622031303821173224562051540447369929249777742837998652088587929765557788542024035257259285339095503403770578832075108343627411495849740660824691731991099610231845447582923803039971131290592857093606139675532342624462309052071556286405691711887294513441011366385665406202449955809470275461724326253010426100400299972158515523047171686918063077433490042840689773578412804920041539588329748356769756067047719376204230652040028196347267980667730033904753069357819669226157401603490014454642929825741216778294195524786401476948591874231654770378723470349685650214656619903767843894870258380021978200075380730792958037331064309570869353597127466196014744440777723748019021732226721399797510237693997589046109710434584299640149369567199093546673424676323053090741700346105812537886127312315240661438384778633515866151444547830484683043696121428901811113672478777711587653321696275054588609558158003292718044630410941172141915271425837254246698160032129593210091785641967620149299591719374146125118388876441353410935000807841523146367586399145575646673492865366473384427216813660819172710956944724425744787906874513894618876178296653056400663894761632533447843397295872998490388370926810511371756197617715761134141932587858134605840279933465794613249142029203203821236824400365307431976697326204312385145003414918355127239689759548947860418511374452062984641837262940550693216850520243056793124887697697590715328834946793323603357336575957839528335326276262394798410460591933910746670466019063234549784207601368390102303804474478444179058909942095410433446935863807356712036809151160706251239291062425382900180386596762325587572286921825571026483217067109586742148501540608747043424782565185063883615616724599526945803035192542306845467590840621686459427587494936153641397631490343706356635199978167716493017758731286256133390812571808158904322366763223273986571725575866615765731884534001621494999141045985754431964541860671317122841620075459151816865301635665453465547423292119678851438972046191948937944741796842640827069568173003549835397135788495014761489308234459611616298503524605048816000263319813908813833769161889440370460383835739747499301790533540812011117995843146811381727063657782946210503557365992920997571372792502872963281057905288940644542238373583059705820607686843187022841754591335673371165468958623044833437773827694653301608431822668525494136414736741121295382610261529532294270983276508068471115142937660342325418088422155548087667092181461692540743813592165769042313547713512720427084297469202775306325664941722740174002780285328914878166567383789501706162536914444046746472939887414006331289938443513722838512834742350292149091492234550492360803954196431032585963611353808754947895820130904665102681543699334303838828662316971152112368525110244178898190679005221724401022951739386687017444482579058582990511023199189124397804135446202296902151226264283965759156089816111411634586709364502879163312881049166569612521486140826135826272332417792989705362591769729919586938072462719335887617692904279835195237969230861245852653202045515864991931844385451843460530949453760293810130099729938530827815490263636384443271538621748563199301167068957610876649907426573680001446085453324053913073999445180907185113787649210568930329142548819059407523035323422804997673295391553607030621478592939040069877694624879927871391418955963969843706029169335523581999846878135289554254616938812273085963790973777970954747226217404425104863591570890528736565375418854129676009403355648447740487726180837226941704297001933915876343271706876461031238351113002797614082283447691441005567049821194933108800250902964621290957762178835932945878062495085096026968072946936347363485177587913236929774833269263801095718067874651749829968046518534578284385954405503438645108251282254082367223095343442635017039834061480429237805136037858147508784150673820847303051405299072288831820439875646121992645638308938530851796155289946187208508836299994664892455444889914320752556711570261456673979567845643503989133266080166778364878030696110044710812048909209718524211813647639645408247794135363972043848751015383981497703917128958833620919393298497712267579640883038013487146643622925171937931313746432611765673781772290166754846363350500822093202649330964507971923852187795744422079031672504428915301797367041602187810452142697363106708796869659543776817329709734766067994617599638744601539232811495521203725346810942564589612502948426071116766527711500673767570662311434692766339389693290844185767877544949573062447081010522128501271072717572194152568588101017329798532855973624154935704496062942467979110222057277807228763369080802163045241419437094870629242119595175057911937943945103767223164135882211978380082419069815170157108971192286875607991161733548554989661697375088672182839567087406746296784563852713941807027897686273674971231658122229200103322764392196574301616883351721660083442074407997811204649978920289951011733958738271350938422116670106694105092771928236449194559547180525920032333795370517566000841410352014752450838477435495245016417945894469786613690369417902296539221579936210814139880542184020278053908622509397379949486920468464380160916898533211737767883748248639499421543778879402568262318326626804909976197585771837080811399596011101811292950250955742835603609596328337365788227078211618479757302213121104348377272767057137910509930000716379809521163039105322215150884002769472612160671390491320941748039433901917146954613133723540399333201270906749653663599143285186315805582015399556315359608712916153481249862738666174977964492238933820346965223359602119807524517266203957013982061085976875166584336854576342038129548670995569179811424130276434050893041376132682431425494760098994283751367435351530430040466619490735656314677661101443329837317711127325656008490602292343581961709862675457400825182861207196926243630611796876406592766445781816089786106900460398840631072531899741445052711893400059752084884335096969383990284046697311598679537370433056293284768696782584207991217177740219404067854116133299523451110976252171152489116197609587364908859952205186889579090458078336286447402296166175235332094907932218424622649762227114481562888028592587169816662681605475393174286422645904375435255416386369508182763493114541132950903238270609825652031562025340647512099178945298212499812125112741631485331485127576985140606903912044839049510146858032368358414145965377149076136256355290711928117762059527200899465178077362799732683319184109802114117191814559207662437582344401289918572416775279763071306070750427194384943439342477051728776133928464468189539003010965115624519480707049371265852871597313936039201287415300843837456269583872716716603016717743859046265987392235659700247145291986440472168784798239434309852683432290699569054852341380982939759834721514341740146242383203406412433116741692542579337714124875158976838382828905046379863284586373020269860830752169986590728055022839373711626872160407767485439543964159238464071904642487354701706976004754758855509698447119430216771879898615369022589971458802317414455488228040838999884608480660780827571808477321798821583495011778011101357123512139014754621541537506787567971376493707350344528874683486245143129728864533067031286686761556934458779532125449490008194112692626015608617629452486475538535941513537458033308258540864007267708782494853226319456252541668580212841038591096880838457110355955995926319465906475453833557100476187102239252538764044769280535213186981031981958913713607512525244662908404429539908522202359106713889215780805107502017649214156178006021325389633571809235358663750559111508760936606145502486594209947234756768501205344438100953297094807782880060346930025973221227830220016960264839346294554352275817994964938065065831434397568292345725910981987013429242226658091211048503027534216550207109690496330393691572077151797106365428760465450121293629594111470169368778348967444164349984499912236399210285165371675556873031066723923380245809850308115587700429571573925761403954221778473405349849457568839264900430866984811894191044597138384585297006182779579334107288389576168209986997487234312157784558425765239582358076394640575497971452088716561705249675145604514487897436027889738005810196405896624232921002656074248591217140629419919430458802585475986987803314725355047797589829891447451992444713244387743882431482267916032891854301356233752218123588588324699602178303957210427910051538164137869521897552084416714660615171994096199528444557111160658254762586365659156018806353988627151766186147767652725755405983144411692246493509506748506279614463696856147312656399188696610649993427324624539325575357860567886027695953380757724983519301485075225489899473261981353266474162825802449397003432384803541924413758055063698253213592972444442532958904766266542113016108001636222763529995998799262965648131924430379387645768340668541944762067135960527571655771319019884090823012777509867772458629645099383222801743531386149549583451069437634539952838463636979238101961732832366154146983076339508298038101402557879567081759810538539854821486602556844188353133617785406385249724911219929130026830987957541872857137125734449892646704968480039867362023923683698374078353905112975378605548115217534421463013081102425530244743879442846895719692142604197382105466122437835000201703586987417094852775557124890460355045089947834483405203522861062704128583966211434525122186882975558941020403205113538164633151661246699119968345625179208449715758854539685784611037449883590053487486173279276105887846525184206741554671242389345876105003098029920650959824894871040626969256341897591022074240574648157034165263452797926393337679494082225894748303866930604616274706795305933460995380286263092760108631762209110002451338882887889706027222370926888459913346372507128543463222655935067525137713066610961164256147996660819895278025181195686591398209801453598420441124165291379659926168640387704102691510393749761933689752171313059552860779931419514857410130882059541562691281157901409365080487993710455487999378123226499600551237526566278517975084927155246644180786686112415074534824799470380118598298841024881477340527669641311347445675996177466692366665857779602921959709543843791678056537346885384304784433617402116206296805465141067986487138245043125547041075819572640295678939409548030523743620394362480536253852141875772428569767518579191109468619466967237696773912069261924756687422744285216037386013095055557230045932746189218744291687941822122075666808845789484849716889677739093422341220533783270877451523908915171190331410611281237888307119518676253252824409604769967173959733980887834003573701391623069898925528842311598949668755518730885140842595656381688834370352481955216451595428356228746426883254673337250029870463563165458275743743690288422144625731466521954131070471611569109525102208276324755007356485984729177203855413037810404534127286758108988727543447737469894294013851173165470212717651784709739498849512046406409463801769315820774437657982637607262845021929552679610118578062687610208916757268251878535292962553153115960844146859594360247361225836786716804877991874561946829379072592282519782997670145347898378703650197896491356337836126525104564048418871135057784841112157676937027352367199576309495137247366209532449091570778986791153260117714306667338638931372536033253129772452898912341365261817326025223873119780714572616615657366305175611039533462951115846608906541786076099467545751767970442013620125517790764889221785187560248574531435277096159428908136905370932270225864757792873103490249503985572795864544209757876655103982898825119819938798061219443148797682636889564774342885149520546308671499763004528255395126970711137578245135111226093057236276032805186889513399302738666873591037518732721653594572530235560114060086966284535773922496047748660177489166199886357096244109245287273841136300082615131570601948174764987248507531823401343594681803743358473548220392000274791072770927675071011203391371120238122243185567983328471772736373480909577508784974853536529061948456663590820572413896799835572979348633550387077958102460266237215876269167873726869643976747453670702601220559175229013173973040164397595372283276904347005968735120405559058075891724755203705749878740813146598440441818010680540977838096266775139441593396886528304041690562247069358252673208860812314303822964213867309254655997888186821560990468912951280108103167098728441232285333871318682596439659276798789325865509971444292459029056246352644176289483243095308895598867974675728767739225735869465412284933602241678211519359621914602357254043536342406432009991553929913135343609275718354314852733696698427311193366940350209481054061516888190823754984473501443029978556633960215281610497069984685488057617698955957112939226037412796508043635525755371645013988030822011191548351248980228912542643450516360097797249415134837620334977024198362104640114686735935174916552730442090450959788063824984708628544434217955948068326301192014551107472101426763577271979549536050334220152742554057052938687537155257006421879064667166591324129139635451352279203062613688811343720577689946009846630805428945287580625635213851376492754669308057966850027530082857692411694820797193056515406657186261203066882719589320204275020346060814178341497949640523725038608884520344834009487326695025133572766562527637614333923436368625736729793504046102114608575426872149595956233182557947582611145614811193655198769035151350452213468871288552409188205886324108824825034933034976332232561526495554312113214427006542815934074341520050688146393273471037580632972233128718768005252409105747973442284370811010011813443742107542193624165484646104658140515277224598532522471803238688642972078479762806780802669566192691224908039739137310040898141993143122053123082288569471568058741770547288158735070713889696044627856956951766989705318665666293947054382380241353684375588302257830184801785664835959227088525360612804090085222652638619612159653251991811838844566275839351203158121778119547913479050721119454248185621184155903971198245193113720609501761253448762008032315230952180032391498534098160393363016747317165687556135338903087673462444785519517702167523569607444383733515815573527792604271423622731328365859253525925285148271611283182227024665111402348029655688662028243777191740460134178799847956580389340867381257711824511874856273221379428120482048178056133471825588626872576841226087968808842091653392129875282270054222007931381799495547859992849897740464174016045511371262614511685606579029273262974306322567069835886411933892222497620287554995790437734259869622801845130554529114319227472230241585886106733585575777470059294221523631710237644890972561303416324000657331846746271653254200373747402845389171685612667172646045983145745988281745443472991774569366303050349208906227528446110148958162150661604677370136851999366191933341322783017439748700518348039544357141926827459140031026582088561139299386082903388793783519665886126041625379600860085016371783249931919263744873837595952371217683857735300468550004595877872572065670630998885397402975238398892142692243700718175018598188309190344993054582061057225771818244447538894455714067851178229467215211372563670563757532912705093996155463568585665781095926814126376895214770944618888381536124823782123271105833974448753016042660076684664714115527442606053363280806165434463409319882393634858732409449146347853189539079487749015769843590660534232081458355681732040994909951160665175361270981358856156704822913990499488037003174842142461374093869856287484785210880093239314256118257688800206029698758349963648496513196617020211520517100950978010297085361837930397568283801591410606213621711507979890525855843369587246381043091023959002269950729730506519089701547554114267543303282826040098144573774027391216525714873374591978058336849148109457195718678116729404981758057397446263355008777068907913950509945105524770310931732636887781190307820868556412999932173695191854069948905970278578811340237895157138330436637607021891881397843533758507759034229177178023065424109858210137797578527449068733146148683469515377717710667451815975298338895716185236453908997395726659531410066423595815779036166140776079992778834250641837623638212170738111335985377576565252554517789306973960652032484538559368448256735262000461481949243501337706148324802794752693239806843197125697181131957084520133182171806832748488187016892543576208323351545428314055547439986637354579907226217370459905696098482028217933422507305201259832971461070181676093786785572398655253570856352416424189373902974248220052729509096725689469039386051239682078314494526194633754296544301354633254071504476840852763792681593593185569218980735890210442995100377553126466330020978427199222102857788449728981735558183325005140054064962681045905006695166434451306309143139687913038784019054394476179657285307810272558154041866806560855472428510130016664306270477102872806743094173959981773747817067990721880322747525788728823792001618806507855456532526283659058944412406129770744331129217176830440160966725766658597970527213714421001208811399965011054664348126364599207354799362034994372351834156880062077376015332411032294095390584742864819282398456652654754134913296787687015398167643190586989304214097382458039673800806142293667180867694476299645167819955549138072670443360354127100252502777991981654295053488162216691393307481290657538654591659681105277163681858599791255012423990754672219336784868578657734946274213008575974265801990638706343610971082270169658511548018121340498369346115283811588037966753459725723581546933694399181029768937994947698312314842911856640623778347014888036148517264555588585862636202004314710972658366865881999366287653630403345646202883792460830482864045047547142953707788080798980636326347367329781511345658583644485566580574224339291116414635793175653367186861567514048642264335673470949458833363311573537679220582951770675877533049586562178166103262529785478858831446644981913079589263125626318875558912098253254929730676683925181361465643704674859947285228688054807694926681521162763478170119005430932006188188163929877305875053534435818074160342236788263273499910753272281127871185267556831449660394097894372764591951512361304010416216725724121432107198869877800979909293468228513676162641564376778100503159727667943413909613524170392179697429575588438722689840453566463575806952581516211442259585954373149593714415312523551363333702581188065683474979621631545123570351897924796430655260679835672288160145384846136989744739416679690565337421708366649261430636509753598591527545331354241148873139518693847105117725550036314101568214516858183076979995840418917047510170532484144425950870517046230679110207840170214693975598068838976828374417262310014682584606999713790562520443214515109962831736668571478009552227456169890227237257167451671033649055569218809198726793069903160351324332181240391185775687461039407885674132792538508591930056375950868503197016941371727352471909192790629469572221667033964307381674799625119313862176572718622488724864786985415088436907773191209905726228608034565307004545967079637316424836958751703251801051057543675528750635704998938252307896086806768829688170279340475936931663721000627572767498854215007708550826299241394319417245129274416073948941435099123153201451414164468649893865197584226110422495596708949992930272588454857226661715526547382567196143547799651267554311736006136185993616731592802764577838812125590773673029431632124356651393802821770321999458506077040174617796503360052955068471972371553243591068142731832216728811351083691326540189599909597364643260300913208311682708334152282294678346889070308776015904221183669259380408146712024081644649673645911795373824365969553529028676705028590859109681698372671345011058279262148919284656583128693571058109629636758649698575436832796602116049588568415122498604551564197029786248771505385552918551926748718378558663032140617815049192495825285658717959480565722467298871106147090539888036524992349920662806588530717334726813397032513346160209108614325305413842630460835665352904929882001650122638313682649285171814652440508300978894763579870221711997592865888169993028262581197246135787227340047450436840483537939313186272678246046744201610314287320872398896807728428098846145548838942077422490427171820516818644013647056302294859259199290705500545569007201257414362546288217372065634218402348667994632078796303489042859684496577733651287920757671848177893484182479075137409095635904877541950359720291220471501354821892071812863096095644416770687043436292865372400794401199732285056853696632177428003986628537287644841361898258863788543231753493801116735502324213803853654761583460110906570444396332374526026567360370203861723904225008446086704304229086972658531338086286310694559445807843014581804116769355081424792414072524380917892306211920420625941797573105109924909236810999099755586327763853507770571350196586560260579164843890202257489704041908449834321591612331245673738677639651399104164302610218656495720933561248034754287062859847575542300038748216290006566436858870074703730974499351645495704138680095594781340667075625515735744194469921158392941710604819444684111411032965264237693438963364797002994867516715653465405653769811327967247948039104336076411638678173997835403413577132195807415250587470029592842660517970329437189224110908822966852840400802333742081746300856365788958357980983133745632276869184295777116963153845477696564513060878037154472164159722676192655765251885469458831305465523744821315830895445303790217695665790817263956208589057065165474800072940462752626115102515608254903487021520006172300975978421202776292613942231075100885588341523686623032701274506842727682766988699940766514605091973023699995110262193031515327613030025380098407138113792453933740980134177155387398719833735077807668078406803862158358912902210970741006069552895680242642026235849703579037794379187470004302395405032002875906425056713856414420090947337868581074560342676679882990927709784571251401553561360209997616972642543633218387857605859648784615560569204543677843110293916700360388632328725043041815932172324404534972660337300567006962919319896277150077874475344350963757743963041383078968319049926383056132627521127986604118791073739659973071279346040024954254334166818577913699576710280961324512323058863397474412592877394358107994968249054068040192155120076210486897158002701743452652894295291069394037202841748426796782263659624919954522441968084091477051680773287486781542504698014786759775818973985004579391946135301723729763911518778194079375874500285298576580916859179086925099835523776497378958367762764790322776395267775625224128502856956057929187240259429826705934842541479014930650047858647627101970604204314521406692832338201697232715337709345122531174233465643004733367220085613292717832534890815850745189314414009993814516566693388490870697631033191231960354065385558876485336949648239386894773851368610584122930635800763749083096313558017232717404102740295475692119061794943191857565805048693714671230850191213267102048185845737976982508099992717431745346366650639782444877351246909771633529752636106404963087645782038999412192485092495334594110378999711504050782126807970138615759573518610094260563344190665593047562528161761374844331426200485250108793356461254756664932905217574803342718695024608910199327923985957250313636867666314227888566776920084248458058190177994577878470667454933974436763286989537683552523693680642968827772182275874907648746952388213632875893779520788250137461339030994570353319204889383118411556516569365107516976424391147894028336646794603387602568784106626872834876575221998377586647117527580183243852214139311667147401730480749859810270143380417773067866411745290094429558350152382954479773009827795204107517878399921421018750896737897143325917488902606814925036375730020183466692754635139419603074240612157955209381337529709124624982346237375312327923872418458161029319904982743253415605583302303418850843057188411966440601166442664301109875507370068171019106592423993131973946826594952825030072031266074603884841324190821144371503095405241118547524639388536781509408885364747321794077576762673294153473682556895333465953321165913125792492698563320390348339759346775449856465657497148374295724539095834759804049597885581962358196505793699593468605556898499850650733905774992436673014383308987234557114765764048413593092318350038684093879725289689866406660843582913982783541977009238808471508866777157802308658841954351001053161967028685297750431261055411926725111010116298374564069458543044471739093276675508089038230446673678480073727756052685453747817251470364378136436283971733586814302637636847858919759841825163567123535103180295179226502336179429723902707557356131135417320329210801024386229773211415095009719087459616220129531534046312742047258496729510008040159968254607302066719203011620265095197155488948042207173182899973866613694510691440041330375034937837621652563824626443029537553390122736591306146209459609723074309585229192489867419582725686393597743284823417993704746569888702350601864299121504292616039228867337317793225367755492737686421178285719593056287208692216242859188553469690999364706640870980451047225915974075092998581822665970947738382776599349897597290952078947980224666205627018033941356156515848797294677168905387862982802735870143926562291740693960520190735581053615681215737276622693107001263398029941464027271642385543250702225428388128890803816390180496374048405756885751761761298765983818972321715820275830464205810315742363313289125228007576855468744433558015706673246274256849571461139559208038816829988147926077752603333640869163238476654794888413142987925850747118214179800465200110082995871552500634503475379954218664159805934517510704230689491075592108852646238461349410080643252052359619663857063109107835175100306686415745927385294077965357024031868862576400320647158780332186717114620397062772078430271868348573176132833454233543948422431903207961067090427602565825332845932992293921515380022674219896553791641576643098116049334810582115499492126351887656996416699182945938490952512947229790590690798646296527756626689642862526689883962591529975763105902099853168042552553425018185035358026772571429481051591259700984265440240719013835531787676614927833839246383302172195059449887420258804090215599770591939688956898261932881523934387008260294559757816198116789915664821736620690947561500176098162985636730580904534003261925282266157533049946765363204554468859461514550795980114149338510674959691709966247314605360852022131332915657959954624222431341967582641228534071235946137760364911684713976054175027930028435264942629717514602975226067818556489667514048315597861146999626883974945488628848853485224816258709000230533442215669938369588239573561754230416713019930065751847245499630556487212359643771380126999175576294218419472906739864421722788340331461657166827229075651051979763413181177636672902272253602125708948126952406782584484249848553283721018892376760427587236187623054070849338389100609281197160773164293882119603958204512176472119969532526517412573650369394353840811606905036075953727843948316071752795861657068382745981381468395524786790310189379226659416477314453953453534736266196756636410079666516835009192883580021762551971635510912683492865005404030373911637913144648849043081165459218436637802308416305789166790883047357635404842577923629272274439529175471558774217933648142161548443779296572353491366851744065970715802761879760798801987520168819130706102566865389970234176892550594862084769413408554959207833626138500378772732996524766065674125155946776893802812552822924950389439994171228140303217917868626809043692280023251841630039993668440610526637669313272742789444914032453908057120538357032913151164121263756205638169326838621249234607031423151332219743618035462968390108549442069076577774579078990615765119065578014542205323404072128352375309496794787828248892325797229702802842933956861891449598354939890912917798695668755817907213316820540651953765990897975756792383898621372297254023972348633104954409294755996103428195766412393479172110654813813999475894041817176561376378464075140860993669512907311216665803738824784546750987711596488014277889583334920777840986816487676130197773258999947865553148862731807160809784086135366618696822766147487112389155036860183362185121252354161348776849251981464618224735149457106643965250341340608408956755803130690587112666668927883456345340330179341550689923435468840879670906927520166917828710901905284987211233502096732006224564855682663553986350548863809449443748119687311941734716422355823187193878810246220337492798056924522559553356650278101772405862022716409526913703708431459117794867459803040737965745570394728179063759283915727315354914882812028013395571966690623725715316457437539035137212216843711912170008394955794884218003662496313210859752999592822142414544036803262684397023217844412226241409587906403177078803205279424597606796137000937900207379420619740800225553665066967656548239313853957604822074910344735181428697150477061322199814952707778203422168121276163757396197489763278092504486461335069969989302395853842775013765465350751076159244717332377614840820236895082222376400620066358409635452578818293685782019963284190286397536536772314707883435761974600503439921180738175960064836231267380894515889828218728960013101582478371889029225202991964073208581340639981371434747293210334093969516652663417519597118900095148864931615203116650081551139389239998522221652677912001211351684710022153584739888074756379631672082330821618678516635033694360101982744871959098707512730917894502943669504744883812410115633797106065629747516183322661478081734888245895721144162514241094674268120975501168630495835314398519142666918181817134769896897208382185896050846814997626929154296416998958633685237344202717348500646869645421402029669396913243831186658250682356760470222552436216137850845638401216653719513331703738941641646064882201077944787087790962529088026982685984848930560815752272669664745249421624406958631648348031089633930322052069158451149482908727281967790427803081162864212770962985272018116115968149255257299037317853646695103337371863583359329936506797633502205741811825228112938337756866919924005944945932692553979043673416968817000319332309498205231562422061725383953665623237035277870478951309069957840439824833308701065608088975525683911544692815894029248268734044519814740615374575919859823263478383855185526587187680043708702227068166352872252380026630809310653374985334070007827942667728982915343469533278642916808921685395119590683027863584394268224811198174204644343290637261240075927424289669081902246486781445029240072074556733066924900416525633338510083553603366177076553911460623147483677512725212833217110786375346305191794463503793058175473052454517673574899017825294198432355978062571069571786348190985943841943797983335873309772865395788576175712206124583320158615289054458902169295852667849966051416069431377758101660114198242041239820178730340783404563377362854474630279598494647235744691193388642084468247919994545724086612968581780978089304961418692398288418314296010361312634017405123737008292985989234625473944605943294929971028124394269860764830649081470422747383471876569419417968308580645527877026210136965587371008916912826931594252576352340143306806749794880825016775295090163923380048607761037455735119424967069164992626357956550085532863320739055526577404770868355323241597695194152463629383911315464685831389232550330226161308534780225906160477545314741728588061729466684597709313352724584286957928819690578610076799029994291929320216702452261329146436126947397137985453879028711692654585602653366249920120869275940325595629331797758768267150573497092560711240004980836258904726957201234627673370053828807606551383259598493239298591463015502602110379968370791717173203126787591346936987625420903674734700773909183124606848654385407258857352919899081415815816694718346100748290450963342970424203382976993688899296138936590951873876623542837520609748675781535898141112362934934192592818346093954648112098077939857795431837158556923959603069006150226751832866635677633963853113476213202207863998589757976373110663854155504602155304263228937680161427909971432729050923081308636697493376384706585096555792673182881495134235348962469433565766670100361351481648310502944115469568038008457460895247813711498048623284141439482479973439541441055339975151316993806941148089083753710923873903115651364537978818114357985499823388033428274247160370524065919857460155088779685341812580913601455558720133995184997843741201748338797243012782260749668366530409372651097044040599687173443860180988810288372147798541149497214602656930077186027300166567434086942646510379552018945472950169532375669371874706912779720484382641904591195592666060676058902347023590362149329307631380185991483171928095360724298553833542931135898626189622022968564572650629922290882446218205042744672839798391197043771267872248059427110401821020622363437569184176522844571369650294395298141055528701330459967567187426966664889233287423814355535692183943839326754543907220360088339379110120566871370967895507825240829004989847853422540118943110904322975766738672538365385224925374814283695447612445861273626588441732967109564624693875441852527387498133878844708096570273665664323876566261891914202945868946243823999233077771985596264604002618594121995081085124657842671654333881582641123280713356072654141674740357530120022604722376649477049593254802406939432016288587376451170779343680743679290731892151908738169211471402186598854906608791743495172251898805237841681724786434686343103354476188795777791748564276055176049947812197072345163074619256488307357918057668454912281952749963938140812877116325149896226252862810241541239905872740926389852928093465613015524857539189573176463115659208371266962466288571103296364851254000476379872923078841961086831743744600362213049204697136523248768659411663602885226611474567264933045717619118819884600726036962798431638893147897448373709044101232113035214149015450314103707555412550862425327956624092209491861706266084035408774119984310288891644332874777513060229865689429061598396750294063557023957782003352681874605101549182991410452463868919670725911950281940325444230436681792641974700689679971215564949538634955320333786430956879839794208689133206219608041764311743134828700596476297309365789164559925122256686435752074557975852685166384802195475679258539552053163918201484429045056594568046341432154849696363709526117183207998229249002728544181581987856601560468844243689141602779751343653942674080061193258240206308134330526908262226207195365582394789802578709024658325103069303420862158294667651674900999685673534039733334109996887993035036555853036005650356518196310916304277733840958137100563384791541943735926031222182909771875258869486245181530522679146744659560908834930312620780504935325403252207313805965804595725625905910157889865823122949415199849559209307838206797532441306348099428747202103543904214594188142966504573746923201453819566160572624730417971691679912423267023138869506118426723329121033247179934843760360838274100028458655602075251861972925531016128980251481064764732133592162302555581244127040675285573061654797101010949768062780026021046245735910253984244290528056471529730221728746618027499838391149262232757429104357482421002481894429487404737017163070653548060885599674510736746270075031853889045718346745425787017056604429447101896660047802314253889374268825702288772126372806226960851801724906771719873785228814724153877227889855419844840443216934440895009615555760168092624219392769239996650589043389921342957076578246637516258457466617509529016333240128138054951973555054176550554092113064067639839511598338665165652866898692680234856429348497398680734051343825830938282409440451166476480745452954806129346906722067972929269915577526948592396635530058087875933630754006798093188320669160850616127360697501772099262203763858145797776840775724195428080396159397223711719537892046825680289068475715005318963949190408584850880099269613915795285332257569619825951267151427813749877371403544533736759015371557426531567180826393685397578291925129561082750628995136269007648296018569334764790525840294999254072296552222295887653368958665403029334009980035304053153441761043388923345694931277422356065138170908777263722442728130575677861733241734956797254142945803542544101955691427771207273978236376234883513431014177420865572468902557993474010848295883445802999487614083733944470695200793093985674996085346963184765049423916518642632330180856872296677743754949713509574728254392032175376705089725093790546132358151891544856608962064461058367131325732904721267756199561768640783857626135463199415720998465195694504049623262709162037680228582312290510216955363318471354001582918147800342878491454508441572708790328326070894357355471959340879167249591580391409266283787543478685410101655041844686471871934408720222566132092266268958247155307931371814077990272043616074203085083489291712712681918441679207432952576984405332474305636925905233744663805049421395866661889821026905581084037959921256059187200014406466227161131613736863265197154242951041216662638599231378743144716643657185297373187538972222957855402846403576361008462319883849125079526261286763964504795531588450919697761886113188461462392951379816837438580820432437135796168684608410589800376324968381153585859427654779293650287486956715265459570562684059926431212804661446702600134455453521361562538947032706574124719692522605118477531221075306577887081547752912634046654146991323396518834937996583417017942349413129562253485742451589037764913813868575589965021281866546631588443298090943264990151108283501248229730882196849925682722765525600166639038392880834451359162782824851027772642782977699417111735772439371727520718467898437988602270334716869691785311584892753426371604278644719651998137987141691315059452739014065943684377783422615174287058317320192191724786293035984189586633967523623231866542517137126882903234439539141242299957262226368659795357909230421274243688678303552774796948072496866627520757149857147462349501418250029086651847868153351262906088907464115827343913829788437495445170762694625283109133351670029735095494136810069509294108854610459218013557362223423340749227805313445036750882755635315580370857666029400161793751871925035776167445721749755188150411192866831745492850206390124615454078321490377690588125846093749507539061620376295712846519424797226693050516269684746601875132762964878881795545429184874994076659651765408916355775746875630301620953742029960918524858273520459623496493946460421077092578487854015514863386545145400740227089799808136280400857936468606169909976617658268326920879752977510569704794970190574109780522435097151629034878389654478826929130600258792364222138237363522546171156521077004468917579928491191521898416315396964805960451904159249519923523342002928514203277295958373896281574108117994293163341128082334006196986855775770524493989183802559253795024699498019065123530880141042079141162901994107705168256580798306393679084186667212125013356430727614754958535727479562491408078315229024629706150628596893858376265960842223302179726861472739847976664180640916089687778665631136942049486968462942165660894329354401313584297410593905533880602510603004472784994468840915428825188628994975465105129608913497843774514925913351467897882021482778176245044081655982010054780324593178493368719617603038288761584697236583726022923261773075583534934428188586844214184714035107880327454679353021134625335773469172316405907388049423327344288573985472167162267302776258378432454134819188907599827783344734917443595442727705931468483755416936342183237463199977040746735061318662687498567179613811208341337082804212969085102205518921743058701916862321780039481180282820548040685841965791150257467811217233516584635701340558715505776293359045817175246787978268738973986959101016770608134743052986708555770648580994656251014696852886030163709536130853288139643718941765665931078241368896212549085169168592363927233246569939328321927847181667933014850038834615771705318354543348925283281579695453488699983954498134068972274018348752028788765748560345591929047284567052167331764691274841908769852832815712864198083736855658978050886826403785533784171856434494869822663633062123424816717963599361001048186611446714663166413338696659233188669145118919028351890870681600481397070809613575866337828075420447592625375765002344887463214381291649937111247981770467254137224768687780738306565889433695671801555117548147876340135915752412876236275802200751050886866914963183816887434734703193315163782312684788861225533963263093561270635624987517029672893763710304902647968209169334103284957805311235583843269399799215371020436708798877892939812524790944369999736093269516502648494812851260197191103072393350187591482747091922803534730565610872649896201870644613164889296568978574569496245029965157043600004374474631602881972231687761620755731912050417184796337737693773064436867094820162061818065648907688473302195737151659709664737850283967200650548178901988934562960925363068260587482291525325076156090664425146852203323502854075766294492545022026922347029439060587009172821347565756128792360932368490220281748518561229052309830699354335579044350512672533849820159414576766948780491594995066288608753337805097313366003445309109697265680329536444608397831587685871247089652366667986131171453073977387853872862221822267645223331128445622080099771903464715262551988179601053018683449069661291289219268814400701486788060705957358644018245095765086306638317466542595888577645791276272514308050366882443990009044736147662752758573144919829858627183024870752740289782795356324580502663006549726224555166501557388927515061151814772342774013702908933179366574224666439966068725645817296716905760705851129643139149206057148248444738499881336674850910172655527348326059730242440984100796046212362984220999656977682305878183842127404273358912051377228162968481280803693833974971679367483384374871529684699009415920519658239873982018543508148561775216171504042283104661137399085743825148246573776053231728451919069749052699216462417115624830206996918676075324538383777882012687651883472091458844869296612485678762226972578644401659463400053525021219134861466117299549983350129617316378772338637293959269642708628316671432619397162399541496977532327673011831269831908570616184436195535971212442466278048952315366410187250426648674758541952634613688817438461909667598928912388456757102893329899540537664999288429145117746591373335446261806057487358360819804582197509858645116166622969089341449175343899629227859354205227988587190189167362119734169781737102535582099252950118900569332744629627556603957544842311057317180463732290864778003580907445663891987676084266780078085128154909502413724304378768957159010892745663262376796027952102314769839789973311686536343356149575284759682651411445536557375216093083249590925181849701485609056517985111019149065586322250025723946657992817422164329034074008011154597423317828720560018112252444744345205272477564385885198293169817940835751275766810701570522852537516398510293567830390364005416283101849520267440025752601186885874824210032503888400681827837104870351036610088543705571916161753915498496099786867603372952511203662627890467752958323872928768163741357549132230158097250431362488592056729377582847867606472099171671307809378879691280579517489880305374037278864277936446048103255396201433276448093710095706749426836765772538463591297562882456952509108123432532306966066976092307751499296558040429386578789313983416279347302960705154286744901117290477319273342202590618908962262225178403205537604520319121064574069270485393904332749710244752147890319027218948288796084938617268441401408462569467656734876976464971786574976895896621294380823525343566010798559198981417077557865580838475707674677150831558917040291252652715441907396918428913135433920629143199779131395149062438503806961645507144168120210177939858232251315285721917439350152313405962486771587873567623272728847176736648653897092514480643282028643541179857907028413587064059284848033976545997600641512923094002566544493755062858617710143382126280465924634164943267430602528059376358014346097914466781722730392307086350634723659287368030086357255152243516630137998411349002195145328244714744848093541546854853178780161992930432076274328948784493150242155809120823905403488869135905070714852895264141662206877435090309785611266976090991015505437734225657131977030148832820033185338520228911552446440371419653280186786836511933572275831933739142179692762501141496037587732156548173273666201683483804032243670495769738296276007029452347256280499602059531257085236525993164304985918999663225391160050039582346923376660387914198311310861913587853701931107008932717479136631902903694642457107864526373099033888671864080866492182060452721038346440386649007097427671895416876423075133160191531260100600567193470546384658719940187684056932731042917684838172907896972572493975438369717201195824121503299053861056063944775743581422954961995662798923884408440984243613221635414548081932051679848653084070287624992307316821979551892202442560769056065828418117824043621284142216721953416011006451072520384793512470162541479896285362423550674904972280853656969721064741606775342359095304251837769579122811748094374947402830637776218170968771829454711021416885641331774012844634135186548592037240392840589642811121609447936135976172946571869780260236380156483594431656989913277696483944432533901189953307996989300111758960105136634527089237099962978524850299427725036608387490626499518695444545971210567567361368510807615390416091489355365704676252296440167049374182312687597941608297013904459233441244103779975905598558120667318288003707806377692309612313043018719903372181981212696470072329485274720320569331516762921036862935215140386613718869743043964619233278255469467664452864869757794210433648874552485098955874895885040857059074072766939073435069964193685167498450466653016939934945939485943988275119140944204275455313593478712202457455679737323371384685065856835533191068991484294685122686709147285807546330546812296783541767795523886839308452337755690264434491584695725897850103743807289772892352067041049913250563539980993977466981751137329453522757305361652663724721587938995923123406149997605181283142068746304371413916166513936933745227292488259919412620729685096720594972052904765183763941199977776825545736782959417050928238408806493291595409236354551023922796464944090442476312235500539959392068276882853686775153381117348379596007458440180934042378599774523043431288249014210259932294785921238092666319392117436332142810491084341341866386481654032238173968922910802356878202493554308324179206531716377484648027906249025484135809548717315441670985906284241672172059815449795093053266298837384426609418985800742918734474722689803922976849041574349131378673232412498823473065168491709018017977270611065717569665571282092804490100083592172433848916938710763264518932066455342263808028990055012594850969422955201601144990610217224202782947235640010167312483417404815760001924790409391762310149687106363891860878779312530334375136566752942988268229746177887908214040757700324845176050577399307269704861558934723271299411938485698557321751984577344839290039734240984292074989550590439502421424056059890731953590335090583720981126156786364615674724664887002202085135784307834376385885827895019031653865605774572763148461410213277114727783820752948753102871005882063570432007482614758289461900258988123599406191443651213983729674527148935531252858349660273938228063208542691591583001843734462062504435491655128577617743325729580172172148714115384560909740831368353988432004545204833328214507749490015328447536799967186350716294826167870455017141579425441699937320843589875236759572014462364151020744013462091961010668684071745413271179130476068226024099368320454784256803448809124002854991848367756599887973338775195753035951008529605204452488035753092332902457570564219135810193441620676425288083558863773657195883918540491876490436657867632908667956743911569753985835485226107835162891681185681166549248600624206149233784621571683467397313445474029638981561705270918098923681324804064278358690643953461788177852173392192236464622673584673546195902277165788489382120619379135770258050708047985247778053717782716433194746315575685241741940208464788988388441696751065902780805784320611322127017685252490303453102225572026848626986643796298926316858987077397228610968063386087773744726212262877727266471861764868448923200129428162829721590033692101948919186538473368099067258864624685979763976564507080654577853209650292463148355875831120209052445813036921545824286304408746041238654303775492606278962814498133614967131640034293865945481473420868642090524001708042727598059492486255112012373911881009721944155687396154491152249652780402904119243108482335726931231159077878691350586745291359248288187601200699201243889077301899535334065988856792766617565301245895964710890031586600906442345303654054411769463594058290878702449146334320989933694972733444921750909795487731124729915351887804637642375544674375944268706551077078084054749750237398938975668840693488335311804276877537448811515158647798831474023570884749229389179412062945527896985421927698259582378153414783651822638086690879313322406973118482580580778626661064112805425440891036309123993840143104369112612643365454780530997118197286212736056526985282802946529407160444006225818799090401044783030805662535570082089778375681038557220236318545235099253412743114626671491320068158765725943297177784121580356493067483835421264645340407705012948082742325512566637068001040363343861933378832459617915197253328001018900506873470669405536900194846202215987005395836528354902092154931322745997789019404861531564192399299187468439770102541646953367740289152193212189401756448985223898637725596493546915381673377343516034292355223996276416572726204600494531240267360779606876633548744481360860458753103811386552080777610302122231403577255578320117145204379233235406913587863692368588914221851582509239816787459005798091116494778989723156952881357154783545066964655888329007107561801073167202261484895422473358462533387954661396356747904049371838594249424284824304088227525653679108496023752062670998942562602941237523984553514134232906130756397281322105417123736321561166312917160903113288289396005332687746656174404054908974454948169718954702790339436565290018695859898159432675980200241528245480698767074929731603256060964695549931531187128192799064326222318698508639573503978667077403974493286541469786430586612119625570032396013312301826655413982987456289507713442769627793897572414606246141394373026134681322841036595942534640735954509965311406168655222286447682770218623440196929126521988153428002240608428260036187070807233586535335605880726352552082582093801476199985081594917470500001503192776314365497324185058500315157238795900960727029738540609797193190328407641694912324131071395630790273963308218464465855628461900926556416397967362368970653385310077018618247677004867240915113256451899895780423048210904545910590056145248484289858015966484058222873200596499591575735881882127411744643270533848755558886498999590769775904230306443738462540205747365280377566017041581876953654051306360054388288408835408124508324192721684129389300001083276398125811184954678036340434063272192025558453108336787015592075105524451624947526182443451395766046215316662002170623889581046990929560674302597816031369323700028477569119084204132940200298612382131270023266493297580957786341009750767941934811920720863302236114838671219688404390735083206618527971169048688341144514389301264035244527698017720125052997621844429748496706809945215488751834353877453179678752610825781218535913955486441648546488406699411150996416234570691450395772492446432592749620123868301752722289037444406541792374291435584749709347421491546743845285099868383772156095138022110014777893335529250339642435863248908496358070574696394652278814065566672134907429187676180983061130337744192084516811578182799331900783815551960846679249179328407219240723976198457561137138124570308073034187995345020805434668441781159839227116164175703389371613806216121260180515314686436626624269004331204520127508966415870486035586433272009193362270772505278921995155546127574300438776289653878096159161524767801909062232710486074269967038850417927019431896016619321119318691676120519870936065662133154512950188562967977612617414819440458392252477348391432328096571540028378592932701465904541104442853537128174207277129286709527773445656254014975639138812564310191895088228480487472494995539795765581765336261282080104358700696104365755025436201988905067672308870978570779542824798951803453188934657919766637809788351757590801954368589117935618243816902849169464235886082507198798152016512675655597176520687873926900455851922877226253180165562153089661658068265568015940510015143377221041955429200755245708245916826272526151610499730593337922302539094516032701979461717439547734278188772998035501089559445772934292995481456322511800896715790809216268726134825724627309017677638726328980327503235551966817169998455119173031546125094828941006471276161047741768462691341677784249643559728960584568646849757882798172358587748659522569149309370555675719523806290722580841516448805112383560367138498212408781642659495598713505705341551933319607837994114675418361608538748357139180208856452548973643294215565858682530597844406488175939466983079087759282074916381190845590380957391635638093285141801737544480158740542544676475320786462659779668335484018985026802510259841866184542311423890481487644312485205551360570483122099050228672862287126574803852331649851197114231962462483875720495947481918637521490654793663335378300232261447544903626530466559694006453044990457129166231515464810152647820104367370502083593614389902883483018406292905015712074463315486495607693697868601275995166431482601648122829040990898894662617234557697751047041976031961831161263100569597926552588434396026249208417266615918290279763996437811609697073173770902199226940192581543198357985736702822027718997436335280629801538090671750532491256308201977023785484623280955316141199117390137944167296635127061471146420560664487251314536337071420418421761208101703034226866813593537747829676101512759796868118458852376692320008534000381070608925692341122330187964936555086786311539028383800919358628635399472444710778045733719750975923648961999915167402233890485288933570459002816626490907736197965819505059193690133706881811161517900592372816036385385454253035959034534846954428439295516722231097821827839904836533291361705171414798148673717244857888662940608580281843141947144779136074016412825485460188737683948993725359611783238194905259229466981818437699815939292398283493669168482814034480667848368125294416521566089457586518087115307160718084859190230177736362098072695987783642189596806634625362070791894938307955027533025076493438062042183300244720580884821256309529378634349580159366651530025322843413714384318121202177596244362122282204362247345799646658802096544849651970059554665173711509376746467533526815560103716599077012863458965298568152329001356800311232873313328502590139903472475372876842407495805139213041410694226431666617432310962392017704610055157435537921696306766527221164629952896732282717152272383822336845879496642001005062863631043200411613178029362665685561976349975457714558643114141898370370582548776741750256887863194738750434414402862455213405450530654947867979835855195746266277975323907433487521915320409727392113000281577130683387324516177331101284002302915328181101188021256141861201221734835232607229925029804025102675547450435961194154396810973491564305831640919579086933256211154709640231121955758793278127927621739653653728264874378394213801164827290277811835092815804473597768639112399897446777798371349580189860788273347271290664160343043148562549248944972192632033829061706001623167169807969772360687732254877643316130464874068507531364761808044045163683026354582815145129116373017329959503131540265965901505130994371706396769247458790223298166690799705796723324956595973110099874169609161118956512802503809340316847098313472720563353815531633881601690241452820817426701473035308173862213622990292528484022434896847234964458750643129004071382567240483857769241505352322996078315311179616286112142540089007945086457688147657651940887195403094764436198952294277844478072745021817948146446587597783448923330809329760639324770670144099156699039713546524901126735226678718089733079937133225689122109559014901019381896910187757656454917049574647418958951739541066166684003034820791011891456895454754356703071275313196156408933738585627440518188360197877252228674427029585180996701589208660863411295078162230363636582189858314060302719050446701646211338185613750749107324116662050233878363264339317199376807845568226404220398367893610265187293801167452125624462705964485013036349254516716244435737990730770356195017493117837157456602123061095915317033966615758169303600266130843980081171616697280342645173801880357251120122390128636937557393902300097449627376317940192266512088845064172383766467150795789411476408337567532658432434802076227615693838971444494174419185318300185958909434155486101509448134893269669769085716780449473097027881505400247750274943767337428833216481954719587310846169638807295218681677662362766128801211040670146004076401989914353586003938863178591614660666794900359957924232751007577299826803100325374574588799157492473700878461756460923046375672098807625981840110696298041295106968996146293463744885854801366889349091305672392671178835879663497540222451838440521548592462009344749753784955281353061449373648517822564889179247168266264074401641192387748001046561396900945407125468659334482538663588119487556538068808706817813097982089327589984734946215806655048510213868174838678866160924731277709730591531091673338071441684500614405651145360596834184704749945751307842121684300199049778538403765441143733141944144261916514719019348833317285775742330453974615293689628474564778117827787957404637760714794340515724186290655354767590760297814784334930394192202617405273671351894405169281853883815173751163173075158641003819166861084559234943834196234419574012886349487058889941702636163034812360633125329733788147713364771706546488061331590799566366253591644730986210236197161294999740156228700437083446355297571421318429403931937239042951203437391133703608014642752106896560255050665485194223541122013328728197158381226713531550162792592887736426496358521552560604246480831169296280755614340072938748682450512462194263242352113529221672504285941824361678717008801521731444962794146704910556508384879331975194376639316870901545632125364272881161504737122482530919499294547060099943663690236815154236453078212578096291751699585720860004913061689301031674369901055159473675445397231501645934952093973360934945349810091788783623530358214889482561140411891372798050559873321939458406848486841047439366746576173885644586564228632722926219746452682948818563309531951328146383349805317769289717519926279334944479650728970179401887685503038087220068737240833048609500400456382210524351616109667701779218454505342993572668908861131149513474636827187839468096374149511575867161426293774941607151115981957808945098159492857074652062551188547726977021934965920310803788989279134445025268599168340159380276617736893039886403593614700028674852887884363674775654789462228030342231926778022886926135793637359400082792488197707499478121550093017800084503324147319908497463336991787313348491298788782108098370929739700767085511820982274250614407496716589444455751236638964425819584217080325311931160404652917890048799146538243448053340562761084302873093919224065343872314049834158701598918379850076375580907229782155476888274816633161932395134985608800101692520880230448087164352808662973563631636178717363036003993938310383361532124717710760103877547981087878394266295094852115073777562063332629204530390666969809075652501128331675072673990396266203401654435038028482044352718806773336583099138016641454898942758121555227387961566710386183532707630867833226861761558616348528627874136941218351792707740122393430027427217473167536706356435369759497162969592637505110210066716361243671146696399134782862238596616803410178795095809427384164505196060507807066516299356073540751963713644998233358423983803480017715173604752748769875317258127062177535954182190080884263258766768176624842490609499487083725646474455164964976113217076157161571270224375609291723281793457728830129968604914222867562459557880445293211554722406239616158220223813131853481165760020735089959855420784989154093315611821202107940592255905287317146481797495409881779187660045962877308625314360769308504914723273859400002616795368281178406832534422284964131441543928007560317490703643248019892886106558276532464580080381280998645475597704374766268755749295893168601074498197154202577660692122251597893752540665668923319441930606160546238960075230275898965749390541177664043493247205304914899099515939984806685982552654104291458988951791287227790223855307719848854551180279009437209554079731188483379763436631379988579784823589305298715957051432834551991195874696351647062326122829616364303044445901862742776712443800053425016890518418204311830573595425205407464144351748023189913266288597069898058136550649843512630288730314131472807411130273427498895127682007377547996864880977777494524651344307317670880198553912467037252560920255906700951877541967891915218050152421295948560063406054852950347492735439194567270627457221651164201298769736209912113456778765068700914640594019077798821287847752045255623407015415926288362495800889980535538202570192472224144048270302017533917741111464415791223019294744154347256400655906230360600568548574710702694709206698371496973931278916828036655639938533972040748598722536496825030679409738263286308263573250428700748626453311343470797047450758658708497691408287088588667816865704431220261490531855943368875952452381577328013108381527960943696781421932029541608683702708159467724085656291916939089956769384395555969064907515104175654702299285366709954968174683587600947780353743119717892303395752384691972015749364806186404544689573479703620828117158238665639777058105189085191142680208184721498447712212435283606311259441678186157325406613903289271249638051278950795331694950583669423443526336439186757553970519922791219606309206733543713924426067435829129014933474324156995926096594821636001709888462269678306565061600024763340501263234176047107935414894106536633327100966681621390479389672037275972100806243774247748313578550535515251812704839822814634950204279082861033900179713231291988600369631417199938703040474732148266518779553773925755438698910902066957869732341106025271606614867407357001840911139110531382845396842300272740222204702631573311368892476951765738914089649454483400031610688893020593501442300184665839868951286331669859869417855536808963172448973246111695863152154482111285950526688201872853126473976331455314245129104324873830700293947686744175977132863656962464558944293482731813512355472408630798852796206382904161099269850811801607294987151789591303493954579260842846122455594357087952770721058847035994465845474850514663806921351584671702040477608652012412402999954789944140272459990958386217951349914165909449067812253535067793590940030896743866023370902284376499790808585219670251054364990149326645454483095287630300878616734112182195340438393835889734183758867664100291082538683207248868658714258106323770471047640076490635724984315277059431190978379999929625150890690066740617859540287165319949556903169156134579453925389681238153478023751208715129137412227245073454143271023138276551262614841195853103096325517119143656692270405578718926282311808071950300425403379569881709470705105587766119212207263885598662039048292077295377319833630225540866404205650498776824678255716296968964823386024430440293671751949162823708867443075780256047628006571870342660510244386366727293045062408816466962999002530562681508933170041280104858442485754318691311303847783583962967594374466058752982097029772032893954001103417572817811067192463140377689249068579287909418212695664396585178554024764114024691172078409315227167684957427703303989259762498871683811063376856619149473621468314206327092873178229111790376056172097512218904276041977399845288620195545440851289175483599227745936924812802343843448770716269836688655730897079912936612914893300501039297963680291012610974826003692752429248209573096476366894061280182380131340572078340499893789906424288679817595408317583830480318831495927475979528618119434668258979562053253827177001398227295728615833087015514545249817159821808418247761089014713630078227973563994414565081870180823711552197922001195228852279242945487009975107541388144999347407540918208448381481441544710483920945670598715560415227349477396715186939571248968273106397273779337997124066629706736117711397480160856418373651704075344112624672989753038612817018918317961212760906753502392444949049390565021399599076975272209622159829109286336106368184274638874912798744957777929827000722705799743868587726491127068357272200509751905967234526584738539879649250403400261190109828591876369953487552156463062446996540993277132544130706002104372147858101155040185129851353632319262696613278866529340869212824560362531677226068306983786775175210303309376630750945475024634734006305303743827689848029288355777281622385912990947375561774270945876164954427083356981198711423704016981604453909841247293589978321504712147807342525632314327993069549596875480111161423151654516606900394737167840612234863981464184076474860338041294382783125553310821896060981005660652515693564245519119355149966043096756672698815639549394460062775629273450402755292486443988366121103318947007549671283627709604026585289900659982013593839277137560311775463184973924257807324169757574458757805434619701594322071923935533614931836939021995453813370515882028011522622346726541315807474308974101128488371425267420159994503718105704521945330276427451345603566813575941411814071571712728697118314216455966245252525357154626802701248230353708826109473482180699788050056872509519050743948783975575300387177836995732181862150024512122116971182955567915831297995554653001397272114014069443915425263261656324168080550225602642276830654276861590474378696576620465047177823849456688358904611221202116638232813638438663944274619993996948634676873229502332027526317241995417528619912575262477072924848966087778910961075088158521904086101159428769312335055504602992813688905936941840572326099620990648668466346665878393457215625921619871899825740537577814020791886982314634536031810148258055443384354181859458351459325404683159661268561114281000952522048193718049135207688659135325962809988875025451542295623384752981154953953774050070043840491579312166767680887262491574886290581696246744446113538839808848429111016142996049309142361077655201117346695993691118184411300794883390531822176671936999917980244519367277040688980298445635411273755890106084655938283590278336060218750273373557074139263739563914365383017054757214637139760437034571808016931566475918706831683179907908430088461887868980567444000796637806620058581836517400845900543468224470548508473419937718828829787577840459661670831563367846074392992016022716411806346390977962031350265564335022489822218200863712617037367762044723874229621506876872987489419440669807153806216854919900677147111681038684444823729277727972512762275086370018507093652410418902560020638851832020070997074294114896306195375803375306488141539179427308018248550841792450947514627553905831006879044481882155430474346206675717598522536214414516972746831432940510479462542750937182006428039255072888279607955812340937174911481101088152672345711386120716940322165152195681897112520719108249203097944456140252922775382948411460888709310035799533573974689913529058902955804184189642403860509133673930340746048767963454185357156929532735587333786443353365803059652665125657601913394685643117060005154633420314465109378946870080968843704644151075253030102153595471836182570426966680531015119877073851590775503565961243151054544783371314511008449629544973319768960851330172941443450462358742400017898390669772535905708630027215328419027908925913699132765515400155212221078061624373785035757988571081068211169913758610145593262390307017860710171242774048325099735796347823634728345068872515323158262960836000533284943019772590408258588526757682863407573759349463886424620997785515105665166851487941973108294485997243921942648556305790526006223794958985258112804385538937096639107591520557209441266858205060689282036609845866393548028061979034900671109316878192455595916797832017993315130358457938847653695119844603419905662157282796601054791498589567406445290673949683682484501698294766493444967018694145446680226874810397688524101980846469473336704704932454264699834423297865628351531230521950960745583460085631341761336515504577160378337762345514246948733664095422810403808202768930640426493939335439893402112942257807386227828909779619415111427040310341123503163684848165925452115997635672358916248770304826672627987092268763158817065127492925775673441243907977273363946769796828490190329370261765287702736777859438326889571508518445243619809966033939994346110007230270536363306919353213453752605664429735981294366475785748505704190395113137012995890020107495915594427798429178302035738378914359066415833289568787347602015272659557089188836760770152977667169720132848880411329135078917083068045242590838069680246677513429570000337530469619759944385267874481092030828677052732173594279086555401396049031500251796033817378245062916435919231776220827179148110515001957313482104344611830827100790975093644827020878349465304915265250454069157569049679882153770256864539816589253750388450469572208378822720533082298723929020862160909497302522994121886369202947278902775913530004030805959508136814902540465179067585644026099654082019360156163152758107434950514272644433366942358828885543883495815467229203262981456867276634120124808768137365349712485698875176673372480731672139552448670119883917553221158293270903184378958026194324579784092389519174803170533571200905025634732251452202677298921469424797809599961545340106553271008707055352144966413239500900942515519156017868680799595831711629687423725728975164575907465873314416819507797510784174713815244471387362500064620849699153689539871074618491114923725698145596099000028374032760887977490580603047455633338594319728445070430750942186740111561758736069513111001036819684839839418080959727339564960365098686035351188791603135741571748942082238776657905993908907491026343859467821174976944281906638737235902197356696278254474938815156184855989848656466931677800920537703792110505012893878356007315367558957555031010069367612216289815259049900240837103291912950155464413810339425302538845418565946134464411303449526491207512598759923115555058640685959815357260311043473708154496959818465624338149718749129186512103876305448972536116506709997660784030223196683849858177962772065069157403280135540898076147046983519137914057273028150402483330414246175446362052320269063893699778314317075856810870256210891305274226277576197899741558468294753001246739276837862809408479976766089534825236181180857430583969807092478487424862782481191489256234028553124264456604481394867115816467412698897907252020770319567068046735531851314741330160004341324250110882270136766543475552079421826926674370741397375674591563002401347335624701467427148687232075121621343361658917322523588569807351400211700581646952451073263137045416851283505735600537263907202127630005099710335892524628025866686867886443388532597088024026853383074799553713391642239880775990266140640743336751951087079838120556886955325815106140130365081782460682227460325911332527482050487724998415466383949006388398435555672722959962638598007432534173445899985473422044246794633934185633869696565261515935216390665967300931367578210863199091117925773518328773461510635706928871282232812705773848645635332196218451741893624699402555551737912885725290547268728777459080763149238306622622292373979658885499974752768773929931666117085648049952862252312687423131005644357723152634134382596210163661950254170927912247798528241118258424912967550477189956624565539023408365579984749100549714834756156154521803158545095843590674013093486046132402895559491830132424324528860212295386753727252012448054104311139972981767637617170930966098635899522728064764047416006445275699377060740427446733399660627634006579411304961795463419175844129924232602199515351400556426806922129236399641224143341419995103776238388934581006737467808688592325379878042152377445383027464573968194678098507075093097615741806094642804360641696147340179378063623644965229465095525750435750267561089649415548350479706993228226975591818587708369192645440491488678664003667441407902272105033444893328007292953184876446862598171770846602636365104806108949685612991968151809766940476347962313137739041137782855739298160584194224238825699638089623470914492065726514889058057412108989077368160065399138548587373979545863731051586984840103884396320469548301811132286085635832277747216582942860922907507445771431282916739807120110638762076874460892614016652498461155468354531636048210854279495742584998061634308429319598100423149178795189585751632183020727032847462630493985064345804673459386340547092272728803599621646259000700202805405775849515251527330537070661766452167734135664484721226657692208705029550571937993599385982013602586299308517986648185521985963743616855051751846200176514134600796119012244468779223433191519842026805861432306496356517866048697973715712024809669955363861819945554030657824468574880683393107765953768568497148088488085027399412881784040355528984836636132737706265646332437476042730441953928439462686561078024804462196632683617934129575340400590349428534874642972408897446610019197250108090285041211485715946464499384498339157754157082708626006913402677584814442683831154347222124250036557990544960970319588451306920544178881479146126740607274597632717683921684219451755727136703302119524159064766160037427194995507533312350606304602742497954399924877202362366182707956604908191111787356830112002749409950804799953839774528625990992173992167509142152578986822709734293552947665225367913147966565557198618000741642534164646150687505490709767571513368702090045043059022137682360967937556589691293107677897094160596985933357399073503124212364751936570868201814538570048526674102538800957957837343772086240925720473458079326499192553427405392218689164494902118148205764302017246591724533031391460486061070410657370468885426972170952192754464320505677991093778012773848710340170261902438211945613986495207739514486226694308213464647343341708403448042813050624536220807918738163260921282529394552019607587413844160451487485025290968177496967494804827564386352693883393951704483584162745270243783516821508109022387378568738245987047006791154773235313089509984456006141332389975138712032936731135999480838869449360701022445671483014351984304664703403311241603873905457408769897880076584932979017312238525136007646653544692343761264842341750814296874454697067780455029620895810973404223477993301639380803437908796936996860044681877376761420550539360238002391713225305183179542906432826017129771310697820410715114942469186623135946592611662263900115666116494485158445644505658342441457791536093415452596492353499828133892894485334394038479371770497129220750380969324108616235881571249419206882098535737699064968734679492190953545106577490126951322998139949216129106221623275041222098679402326574342497862239915852994546328025977119374396868607545330674468259840430552949315789806895416890957290606410190354691756532450831237408577219081754964017511757772617154046356882209944216784431621818876999352478453257327946785701071402760482130507661938596203974600972462471630421990420898328912484300650394585336283246979993517955217597655222251559673719900313234297289742587891998036755354776850548612438917454425115373908098734150410219630123414751859846353552251929620363124106914858840746124592723298331099056098163123776027620209911867837309565599910429360243477793772942373244489896619257493886706784407854357484791045510985455428561788606369289709466686500372947391683967840526371798262075524905341777903412111884004551900870581894557957369206501654566979138970067849543812714026948431655776373557093182522663407682500898039798238107020658451930448185922919834622377355911428957997548849092514780220580600799136441010141328408232920610913411079762176043676616744816600340107093159920675946298122641881847429300196902732360302218713320246731822396211679184769632593226402058392325431535647715508052155500023598724915319863000874588066640178530957311914974966407218794509796320888716067638376013088375425590933517228913415327582908553308655873699448302459813028775414720457044752308173319299021629868403312951983049317975172614841773490276125084068124850248871441343874143723864932374027587393145474714247001210664039960082823353767796739414578977108364405725151519532560594930373201501432805680622745406965921124284095085895714550774921864413199676815824423356169412268636847814307535679893623617961135491002287947167054069007526470861736202683492471663547242174214965546376681065282603162886175800097774258626172432741227744467934814339310311579952535176165278345544806336087847111226583716767946450053987546999798872297542415558202216522845438051182950197376407572712586997553179339014122112575478877186256393743105513171705898551860415990147155870869664396633137638551466318005654300707694223503920419126407763689115288471698506478901048812839545444998547499936889595354673191765864354222218351233379891736920874203458564223501946254793060724807124852502654818077571922866594871643367287337081252606479863665072769534084175752759484599292200327695021716362708181970017022204978194007897011059716320469766008481386197401928425901576887062838175529781332222134383435027862511053155558348628667119160902116466678992037930137410219816036983316433397093588294969106679649549147348005894223174634541720154934358935580684410390695940762920023536696001269023638813292238553624950704758341600696044974453727052851987392010816093373138671240092470481910669976738659406048669342619763154288853800021898924273279222535138285159088029890022384519261844745896309209954150388276505581610573475709166908381832051263852734002887278035901012575088455574207571371073106388306915590814393628739156108324558080892889520515997140424027236962781188229493386683063700738943486803482467303402580848579490045749095849429765828253866458667689565726387646692483678431611260002163436826536284643496402204905340177118055683905206905146191707556086478687383724252816629049519561713233784414840119145248019283226891870252127253869991408274511334674355844085215170948879251988636181353600758053445475177217662081272774471658232816155930051661194651564855450979730971256610243339190914803256918383540230160647439556990666387621731993771209589166141947851260217511521238442009339225490856656926622942272905319145100715975030672956440335162129765566399816288515436179232938603423836393182195985814248614804867314666659674087840439307770562105864019876062981362114691213288269624266043595443972153047537799638398194709750898685280006824509477339251970460823536806506466769073657904168028082805664444474571483242727029107102689628864300942306364663334313360642616468783801890698635549674272282433127915146681892412195602498155193170839969003628076230367570151556725428382732523744143461501682569928359635406935329096567463587405073463942943903449106007948780283132849380670176925137016800952890365168709434875708510975239574534686889473132266819215323489313867941365215072983381526096564183753385621937549869002346886793221097194312016973438203246432811583971771656528647708488356564753018174973792494828783005279786937050926284112939362234019175824603156233366702994021746043811901210400546554497498270773418878910914853385730040769097262619335594419594976424125535747443977162957659858804651598144284391832395093270950305381955719977826265278348457904772693073080252553156058743806486895394507123878813213854251432530603593409503698972564422715609388370799139933839054950276778288490323233272406814936056419642270819322508755002294742162410474624972509354691357225884917034998373542613063007311437088628554132120784443055267581447790489796555034041510514587574080051300283215385205956484797448094932645370787839739937704137569641616244639547922043293206822893091717293405571943233090862405367947026313918677388388612524015078251508389510954182294725557193470845052584362131839624523353602442620621770683722728021373399819055178169796427487857194081626902120429783246595035974139069277964929014309720294366725854645557469731320062481891257245517384614651704593635889201640994850392487263191319612963839872981425018224596669417546260006548664833282916270057287258989208115256258454862766001733257569194414553295742737719625104357282174927495526766957948549084418490537387297273676985775289580414514194806520708896837603017665748758229782866398531938030398675639207167493653420132215146599093366573183904040419378783562485547026381144185366199398341806628940440439724090881868160787775235726818014920445950435743732311356501012410510860584477590361700810722510088749855578558046192230946445813720242475933994354407328049820634161119437854196949084317208953828071227406003153636220421690831843156713026047227932007385831917415224482626470147077580435850313899433951429060306681407811028489119406590771306499027101464349257806278445269064488723794215720030508603623046983381023605178179388970126108332480353575872128470435579391352944953574853406651884998651189263976232207285939380532546474663901569993244625633820406858030290637271332323507052371451885334717556248895563900222340492860185066337333601981817019887591947680532827149196328916864325856168991725828301731508233842921813050040315940648646180083916392813106583238769323984348999919877178660212320826628441212222720281300815320991576868276278630235917957367688693254077594397511285158160979080292119880082621310406856288257133060460138302149225611821694278518443559497243876396903756798870262527997641933638767242367401021306735429421727040403577464063381578517397807608808443913218795745710670040662483164903266619692609753409482715781016974552237725872782062382233800559690776811674107514686766720408561316816922622425060474708965880710135168302853436158407325824218331815664899044836301806314627457787632176573171162614215294847655658530696443254261286263903220923391798454707140863075163527481444460206148194466478878192413928560179380065351421956772013380396992339277373666236757390964506234866171244345453519187905459748389269789461481632560150089362728840236837898963690501107958855229832446567478330721213740739332268518347259726840753612159438969496710858993935470492640487424485605245635619710335962384990367259776241989790464648596595197740247973889696033749859075726471468956831727208456536089567884045850187729544385961163837395479758849306650466991193104459767010102211443928538622334137877745848126474397990311045115928871022724984226067697977665686120296887509090961140253189338541396028128197043029273893197430096102349401226943969459826960193283822882443750739713425923162031132806999247462655864285065811207104190781537430377680445911069507150715977319080340886453348335764692585058967435092303030816111057841927902037029206282098607666104733637857753437171772419815234347335576706246567335749958229688633685186975174062192855578942915592117571765788214319379977413103908052714913527890875565989076274475404662383139475025039202088924898503258727867163771547640605667414688913355584101623243104879256825237602759557898733868014877000777928130360357366214841675639897033976892054739675284442900012890906799995154525169992381480365935418305370310489001771372588776693137801246623188390556959333594222415861626198329771616412575063050540928162967423762818453384011103581143882130921227306033660976582583258693444492568039126969075830695324905216134969620888417747653032239177163868930752913596457873370898618382148344740169041570997260843392669118276333578090818173161249870711677106962478894917393576685928219189134931539389162704106650619150091079562388889864270076051427072210908068299104064960328571547709005151692216099635453770680054851253447661404149971546389709273641585835949945361929113876051194951924548588060150341620559238575292227398186903043900428167593504677657449182816833999859138477298170152862905459108627688266714109454232368750589789957019782163798572228564538051782438432743032206520283059081721273045371787165461928720709739672127920444110860100545163931742448245222107100686456305596315608105490405161097218476953940670854638726710565249547581125405674057737319764879312014369154468088191174061853699231212557494833171539216631227709659422090341406209393063303341194706634412191221147896192880073081758656413416288552319043608141740596058203321997032706931545663861235468866711523416843119631959745260717838042141028944274417761991395159769445444687842204385374611425335479318218675631135425304657181486646308306019374329921669700336772789846626789045998057503916330438985975007704598656644858896287613679691794288187553518269341145354727761402405290413746896301897396983260864004966035551738512397442213592361193853259203831919843256426524720759962557286390156199243048566808916369516335732964072970019416738874666630789387673218140453408875845508727138919886232858499594206909412746536188843986390137837641792972932570847102394405055492509057133075323583701838261713455998079475527750901708529002257988942424059859766712941266680618436697867333027592455236063451254083755143470813000206798159598717319318142580102550317827266092006825069981826008638165876181332460796595014434837362246012590510495593485295413109504629343948476419127382865685664343727909090567964530402272795684767997221684599823319522614606910524570641878335260731989042161931384653388988545523210338861502443593336286657028633347098292182430267317396688287825983409818243160278001971273055631943220274191743521372919074880732130040191225322418502446959466058714297180396492456928188764743624592627479887624481558892462312694486520266436866284547946662879687519000571074674011443931933575181869072181704830575085584848971756786666988054582124404142414532834172983206742650859161982720879300284819479360168894206680860313505876126269626613175158683433527797678225983079095622320281910006260103205382414532052060912984517735486601637759923670818040873158356460150113114216332802946059827016131642681377801515788360261374631091432668348564287592903941556883206168271512950405193899769093127766186759634860738681168730128162912243677140292439199801892654636596029794302309134754115019280526793691162951502589999301595687820151445709516903669552894857195331784558029675860585669685684966170081832380562523624369004105454964056982797203338855064434677724743765063902990126809640168825731632614556743438434309975731963933887377237867776077332672397699756085390228903452075198651653903261518810936477072737101939756551715506989035944280395639643114616978243360189924492700127182759124835351084433216749665939726060898817823606811812433517785025677503201075845876279457957039445772382501655395868341992303059528341360493143641849730617051076031611879496086655272202251652937112159767303585725459491363678898990798363988519557135521526002255500951248002454786704288954410935812955490024328932549026473067837471319537358525142869554219086933044067293310549315697204459918448485391199257613308902334524543756804135497808650396916533027707534935955595572554894537443294869383697909773780789441002077651996207734545307025633086287201287190197375127456774670120284869462088658551769488265006659453469670470745477231011777997376830252037634354412897109564854626842903979093688693980540879218972901930281937873650711033297100197700813802686994589300439293494386332352965166530482370177903635384365427640589555893721875834839502232252729919682592535520880101455914760168688658796690992557229028568813301259112167081374643760968928812322965582306975675934606261514827481702743893428143349103483474365760762267667396165015459348812188745306498268293469255248990836485164837254973822517556836796241923615245833855017931777466929348097167492125061249716561643835216388575527944550057851078933128405750082179308499776776817023933108934841200738006505891287936583638121327658093460611955919572518743167591805514954717455453522016723389661225240188063777400443915714995695627843952194018546553317428276458807859999851813510200514302164265493473565063799575869543434386424259703099070377602378234351333979623361444199668495557461958348770827483854118949966847250486973144694278315741517798234770628150725872107621452694730745693121570335796488213420221806901861592342717763872337595437799368156583749965461149710599001917890969150875287257416166551428267136169192615966690851962031505332837572539999103503148493665275628183681009316387562402828817131897964593531122067986284006904288601332266308109121404255057231241927742698840078437724086531229406611967851420333856299298964146851252989322410463049871128699366244202313833995506605567686762697392554909940752906946186821545238116716204410121569724428134339904887829282178023955768178337837727814738150730215811483861616561239626021863199425837446179444177573214657644116723624599637993018808074247447140153010709207092980665225801353635399334990685908879179728590783203021297675543385778980608118112963450072297200049401263539302566750723085178702934395922301143515712182223168951217583829005062355622726008121689001105199102326142568162704521245286201344024576975948619912938426834174911897126167400581455136631144372511372338863001306356971578053432413485378987774535980176820654517636750382570971639596342576968767689174409226247069077508818828449121365279647332384780202882824299431827880247530870540456470146215404896591462434274166146168202214663453742220945777086253890587191386211029106183942511934827350903867832155951029813860935345700028229760995178761976050241443465032907280329774688619409175380642397048140791642769820106259625048127680233758959567451148237869591361828513830658164602559285359013014349577444900926422094988651140257446501802600863261154048779464848852672864921477645280111272163616799901799602485529071980958628909037349516043615724240829757291669157232638620971467110760698204332077240515861348399350948929355041389452354518781103174374635805253560180433267322469386342996481351974585839775147463191059207869072792016454193045708180570581178195114000688190157025935866295471516148871676069188454333455536081735272715272273562617137219799267039682865290555324242847420866288050858727169262542220765062303697766886087126648627361580788212550375276796541965393657255965247347350048878537584438531228609927828833781651366371856559069878045674612723958291333223868242735674626427819189230817824169322841721154904151024530739814405054394664814071582637389164494019642275857043184814064900349531576253172389325677361635952481106483705273279263622098703347036696483569102880393152870540682404992161202841985763170330328566465016926738022656727462820720789299234867828014459054051179787436181103081219096910447487494012611783722458620282881671068011263521572708642161763460857411686243081505430930860341211046411497813411559268251235820702719078154608344257311599294075186720096773865910817029091783244763108494507757154396865757117052801663606224318323814096062133181377716060682009768402208591093575120023703586712182425715635630237472553039408434431453510273605113221651655818312098998491412273592127542841851067424900379338967058858255742201140381035401215141194475610298222325089439905438566244954118926298632032949718497621163123269817967006990181842057810551771989991317077576261274230832453968780787566345607328843792463012456850443474061604723637634805029838606218542716844972633148101952491484063356188378215956523632398587012059948720814300235708602833191873652042903718378842246449098133851663245148781315258069339753900929342289667345326647332552455163381269740171977688466232423002278673014603042616625418734472880022902522652972441737107789189855994502554125467893019015363438484583468339238453503078464601806376717484526914482319256026475118422078678349907231187887542111596698693403706774922610891240914552934519127259373396238481615053319529204145932889626879375066325046010630755009868081067410488850382115790937822426864453871557614608313884190938366080683340275046595745072291211130502509379358321361447139621981618195168184772750230966415704543862677697037684955106737382629733338190329431213260788258022320661494306039042561081020950583790285395508422030590826415474315049076119375629590311858901502868235989363310283431442088942428330915622617924199444986575281807083362807337820652692565681035901806842326820649904695997696908228431949469677040346847879631600936607330617443232507697570797058942178297668473669890261343656532591520436292460584554045077137540399105662030759744214029388565438325898057588460875161036315610174338743213993249656587781965997129599489841505946439222093468966766350795916424040547584315699336507870079140788890692582248048644076824036803885861181462789674474706273807975089220641756366410585924209426605244891302352296438687026791210715159063675096039187094526585726651876813619645364930078752329198682727519352839059378996177042327727172073681919749906559722609144395500238355058082612484459768796785856186120255010039174024960779350044927175876750878353023624820252424689399228119812474771855956736480346743942366628678413269251033921255914999969613718777759733233447440405362674356150518878553234555342094969318467090284320936662716316849527291474904207709018344672975476520180076047461583203001984247062687512268721439542043199960688467091864405330120999566316329511197872711781457154846728222876696941780262426582174419327792941214026973959775602525404143560571679914602979028931244551190838950710190715581828433709838756820751775591455891682392624203496064063508404038121357726770652262553779766334459748290825386756323859109884611140983877512927184487990701561352193610775227690245856940517369880960845085652850542195298784982500931892632074179579090545318439005574334818729663190101351368908966746030327831724156358666785989552239852112919868847782730828135033339400533380208641149554354908214375790137971739470124497409914646125840586634667413420782604485578061074359064266586646486956629635578466628432511708730396067411280942965441884145091074943638250268365949253369357178464195752122691723059416703120301108463870409246674999702892285371185842444612445218130488662681346992401913079739973280025363899028875193345363722497834398130810044260329846332034954995821100071107875002367134643538272293165876255624206473848391636172189928692855373535258111428976230122176833428636305485437995933175534514257401322088106048433185453428077865444357897370339919121143250024899278045243755745735580683536898105977662784871329105773354786525263916908715119492435302886046327692352437146087251846342301276093987124607072788615532631635764056388140017503658997875820715875790931733258082309820246420348973143623452265916946813755528172901476113524012182833596263908942987184223956425667999120369172278144173361908146613367581302358969283388372854402564235345123885743907767834023457740521421541879818600481979607812448270394947385394565750903288242086555695749008543760096137899036719644385082427386723492120813766459662235621089110008395249134082219303036384815867119424997190523039019697422898998883434323276740448888065286978117318001349756960663097065511059567143942601306646204254372484410342302646104329518383875572058385847919916594485367536769373282081252811531817266842613220225174095205417770162765406338373904007092902828697943426496137864152512852851762408786399782790557320142659012096223063267676692987209845678261452365818677660675407336826916416727449240653811890144283187135077371628618481147617496743795923943235069706824316634656535734716480536575892105568299103574250491955790933438888781672831719885892401241400146516375131327197903144385032054016621514162217460640859584990379574239531534945400130793933503144805607961365020008510264323487695493526337367411750658644740195978828546818124684618803760737709333013608635862486009811556391548559245720825959527664485671553484845640480490390023666620233261669631695208604906103420629957141732189784091654185069776751841293920305323688746114416707707537799464500922510449834710344306297841482247083604081375403492340782626932564640439734098302938658631324431088983476899093518424249437811048713622725843499766960209528056603206151820650135811584958063442107728131350079390517241175941903021955653819852674254009692026139990956856952853408488999719143379706616488008713244146046738320002802627481756124610715675067558718603276693473274934010834880451987923252233965732293743681551111008483685112915982558589509827246360828455970314619000402936717140905300568597303210493842770278858193928034652144392123375883723207722226636563871941396029955086885859731839353803270904720948826405530168498534890091708534154960623351486060787400450448384411174351833024234391361825277045977013906151548574915202767798328869705616017966422153794432924073263652689251438946299724353081386206337563944864943615535553665165030463470892444037488459253768568129042997894520215582991615053097951811235532565585094230862006103226604542174869381947908175482100207649149926375999943456364112697636448922235808987619668853673558439444850188010488188060774861150929115422563668076948439472862202676850620411614979766785847755561708220756705043794325304799751122307911572514384309165840404906566026823841999771751846103685060735992497817593904955318527331097782675432681580648998162591911458045887362958223592233336082090284618158944811223737999919718995900137880561815410735823001104204269666690786091785445580031342038581393180763738134609254667770923424858452883929091834358099938068345019348579118512180257422252075969824696172363830903564511267692664020519542013543480040111323579675816794525306075979275828052197728442045162082979691340108175331938274788834379154769009104217349812158433437352094408888323857016374562386213444086326693940248987278065614107593231328856078455945174829819247115099172072374324195359805370422622833174427506608030460469746955749767340438481930969021981187737929955302032306258128657201714407258386172919459598778083609526591265877539090786811609986669558439120498018886653398546474397883974472954534544630922350707577845589810653670718450215098608482326576711123942422422243951253480963805530337914824920494984506071509021622592639935132479349529462714785243021170789914734345985685909286711512615899025351947212334019457124481863913559440731045478061904851079490362249754943228028976168332518896197284219566140096781139649139600381481525059029677371975613014868811454457299628066395449520418922191001050593013717037312355071216016808513132715651246637789653459475110914023087213797189808726820285553641408884560383531534081379293947581187932691147869623065440095672953928800943704868053450122462631894981309287911202455558510165484419720679977818817734621854688911217848107932946054511594867060218387052985028847724563447553943465748822329534623843076498223898841147740579399675571498038451612069530999642558642779180781629088038993576123630523589310979005173882573663392226796441265019781871729722845985308889446730204569639215128266412249382483255116673854771495214058061918931667404657481654757022446870167852547959479061723445551504362217377176974830612842640128773655478940183210753540631276385939979139440895389413885568782069460926713366683531206707007209955811799587314548534821969373408731157645830056088356242619379645557395551533696407103250631442274286645778778505828466214454262319013987323482071728247740133901016171283655785756025883930468420788278129451482111453225627682356451125618664247194713388576946679224659549376493572326699881824929773891368385195721379311780697404088474609331615492275365881513457380698875090609489818366565052544683399356515030518124471894870975325076827568742234816393789589551879865144345903028391473651668905213771362214851215988784433089047476513298547254015712402537939758851285368010290224793116724821879273275571208549847132061240237610742101160927599665376565411245690465398202941342060862805142101453382341201013584793293147392494691492656052036608381295454693036485940968981086329314620286450781244910117641470387129169951429252704142349012764285186232737141782200702669205363126519274900078021850976353683908863565886937498200077832495958061505454411634988441175600263020285765615432153468432714473876077047836086714078728311795124776878713281883099411535916964350359406053541836618601556327591396410974307434336103047182537628071969153621620987630953273793390330059900789435466094075805480678401408920266008192599262479269141457283769518265417896504920511266427863175957169109096332242389130776027600765008619019738283414958317253428366355557427654849860949120080305743971820847168618218612676959133862799983276253984823955311034267381357494340039403272583216344858166813184540200830526398169450411072398748931522219724641351329844022410536709422580557559038728302797702628248486808049921005415566508622809672700637212688040131519276017293559702831369376215418729969291028743311360140185080080291984285541955068411004691511865192034103346987059768845197627841782831674451666194940787846212276756832978373251422094245783420329049333960416315169686501640824610513212083287039786352265324380646780741700557139032571671405298332204025762160832631555602433106756261666648504892612613440212711741412867772984561392201285059518950980428016154173388478023866894174001541827459241319088615735887161501606414753152423379501494217758370049612408284188920711861981401231867712724716524065664875733182684344637481451765977470011723652274360543472039678334536925855045514409738214040683257428580474948705957231616917768362749415817836618962304189567528097442386098995123224297728519945554316608025739053889461707366694131369311879520953215801233909815157988170793106334468846321043767329437044319971403463633906027019597351781220786573929808724550480782914233322525777157255197513257461758346571599591000333708818256787521238092918606896384017361661020088909801811492453363446877261598544146606935568538217442557656159221840712103165903324060131092726643288634220310748403396694788193266654251563697586126473430804223600609716116764197612497130552551261331732447510127160955862716846575313589274281380428634349371480388392320058682987196271435715880417887824989615394363348871607287830171314353602255409716958149209399184835290565299594304826557934901707736761794763813569168006418845032477221009831550433366059112229571787158602999401778165554991020801169888384652356406763789825033730605238151973960620165342656669228335390223226011517335726259093039013404055791029865656517680406652541281804412140633072536011002820462339916462182956318915457413403053071365221114058134089374223338556978647056023131921560685105282512170766940431502987017694265109283322641064444526976389170933594535616270394994041407768818981800254806431010143896185087005135306480885014881424164392357137259106255169166554431082889311022698026772903100189952991059394122746133013312061858549701133956337562135808022833766004948500288321059122332254716796095609624966138085734986002058700550659659934480410281927973658989986611556041687823209000945971117799879094791184256996636992067169287667213165783471064232132126458688128720831791483875769292125738395723867367792245363594531533243496855956624380198795951668041630968876570071957447020347338588555034057827521352039123622108989659657905877702103899601908848392788848136854847003127436788868710088890601498086594470004914971291419129738020913767670766325421214206657475588197020574053793485827117078145197970286405338153145525965247299527929068207556383237678618932853575331331546143128768744406925102785185083415835072671494563278200832543383427258472993115520823004115953507740876506540619223691486996139030909145777576743627105582476867981403506935140239409379147928119308255379932641094534293653819013446867438634378297755962459520265569280802302647014417522666921121954343719267968317573065053637572509574463349268931220950376040446798650656920338758638699809615303999759108169053973094510146749047331120173580064490807893351596824959124433625150609333826329720625409475690046210325385577752675517291914227085548803873715068251292302547968599305358573407544520794551782442253763386068111335999841880774339428086671589134015049460145129382520533451147794187243537124620680169469596439874840151871655882952441728785729426803195609002044898695883622464509516193689243482783317725874425959622759560899460123995830078327247234769286286609955207980162673585251475428613197398059622194365578196532277994160442836849720683275796539850159802430479418870128413422809535992684608554874272635032815742691100986359039371371138546737785864445612008480567263252426936876288051342516958881128815588636718285373263142457335199481813086441620011643711526325660964998249391794162696162949831632855135681846012827047955657408580438330018292474723784484050507046732821236301232407455613848807959109003861686611686260925889567961196592544489377596258326599298810092844271767184546508792982950696857890523959651797395475331313760726294420491599388419055264304403187828892368891862287087691449341258837607935917868742178952353596070651018281255766559346990918533259572597717962123596831186743187374752826748446860472508335125583868807811571111141155850307168870295123905789167099182864292079671442484633152900879307328160349548824151562099006441828219313503353456917732962834667773291673618712883999454947153487634024579282015901106474950545179041873074834061556743460202278844831030824664569464733827125707732748066300116176858744071528384945547482917482574321256036112206616759958250372205550252995813993433688666531276339819609879190021130992477798580797622784295232610873055449102337550383754992884033564822677359311409228575646923791069113931447281996654233179652049885198690026210295708176522460546163533035423765122832711394491019621528670597990398739946721063292763816163799540796601667193482129508827057680234131242565562272957477440600206015180181733934670755442067255830281827969929843332036364528446725980161481541926146058102658893196671867219113573972450409147961874543741239456202537201889636590552309312300272956105725346596863211421472192035780854821584352544327040855730626951247673822308975109037743134108985760334496467388096808027983491743888794492588278679968383224436273892182026096488344064504362974539215148607718891854066532353609696634887280048404753573277285335811200112928911359745827538837599148290914531736836155336220345876463789140538890876803644597977627190019195290808338290736154530864887201876279299670396478681101419191357738866671118831551964549141411198148092232248625492909202641406938305643609034281807262558612270756446577076694857439454086556329950986958846538158782877500480556858545741786241565742524769469789109086016293114545795360497689754273038113879835567773572620811799439875184816530353609381444199464504897285128540176120770372904343277179073010474564728909892648934791650340131989740285328847029662534669198333337903614380040764428764463487180452138760473453616541774217808137427330826378828179071452076978043935976255557391271725947810783864630234805075397257986600213755335592533532388654144420120364839128529068167649876791109440702187253239285342964648510187590198531403728818813076073899190388648471414138107232301953562912211858277486959816011057910598760509557975003791542392151106758739206116630898404445047281911560804704516012785328890788552218277595282969653495310960460881262972371213543091862218009680652023048821303670070414164764980106225066007402412463868868792906838381695900908750751868327105685023299991157228586810934856980189378541953002238034188706980690313686333756049391290838423450078848256878871641253195735642132493152493925383384943090221053658156533104114092394003797732113873305968916157070538472007893934309322206060072045767270352778222801592404521264668453714273270237842213394357226208667193153073313214363430716799322027382551850401034788490657516589394593459830823731314880018085257282301156602668891765484417923317382479686319803874964829894418646506558336925960429486742497292481973822131874171398896143236427118895496002660568400358148206446756057924589747389303671753342466459195231656936484115685518703993655395205471308381315032057835260963291868184895949148187581809401697834558892524839365551326436577693181976171883621269976811695245174974013994133681367002014028248487000201797300153828942115104873592315860946857814193741112607603043959374312096971764262902301474226109717563183400023782098681724203246074636692952442938065534847936225514172672978829251651700133190326823587387035097381857653823939539884519257850045071562716006515457308416867863568891785930250169070322724287464408575467550256921560011282478411215238037536546625542617062698275815645864822287934707995986162519148538906494083403874921732620183862093526899189955988127186821079163450508556676551298999436124769892586896951866199812783623158385467399752540792575768265528542403184228569731448282586360834292803087125821531521637862068023107024891418655323242386625417526406676057807434702963650960561346874181182480846763830777768893903997076778813384032221264398192323157254747438181802262388945384580020504512209288719659959009732256558475216761491656792710256035282437537936516090552886578670571801271874910707866405108568317284768704797511316112851705588801650727913305892642739150662414228509533015876576190540937446589565203919172343185233520046807249087287021475757337367522142758842791107050258036467339931137071829384967243151798990537748572749268686814977041050033561712494708334077500946580970625575092162669779810114065514459883094689818938213994235782556692564595065600680625087261660206400879926150164118126535423560622631313483724594304682529489194681242853163960379432357057297387412666377509949738007006784476515958944208731791030958343285186470485450033512785557923087387623038371249826572224851235337812392423518023911261342866723768826076528434204630125572019549272762744528773123120419638172015902133468623714231577885430404911498061098523638159996510845045336682307720956510856568761932559976430241696524778373057587926990696397284107221616555665422611800188844636079145719401029804187568604602051008042946044955072326211761832044817797042688116628729652672196501928237042634056117552292557537796344905195244226364495362455030228652472763070448887083951562638122046030569247065532229523054985739309105165580050129818792246127786235986094511364291571953812906388631034765011351616059504471863260423517445146976641355173739773577922447574753379108568820063530624158784464770309298867702034907901117208693792513750668815741572543873529115939400921525766169072225234223251557030854708648168712111675824873313363326226699805042635612147573225533505680323111196051495936501556417546403110556011635328022780497800456718027653715624068672838121764702268860157500993345753930400392966164922273638746663457765228386888061895861834789137773896581068937126802729588455269204605142116535744404009867415528719423911327542781863802621249174993400636093433317045875960087289232238381839357933568859338128028991443451397685526142735106620921549179808048555975232281487702611991263572549986274103414219514862099959737988036830031905720304584774989268128067179962447615061893061133753073061730714848083062193750602948506751913322994692509862054919775615434688096073405897565851925919082265567595961356276445432763861068150591907585923488135318014205752582242603662024947006616888372075347780760938405058381374455563867461574997936835110881246399894650487535638031441330010497707065595033551961762371248200077697845394270137749497790992034343784771331492691690177576897403760664531109391871960826727511443724508891274984480270491684585965028032559582820702824212827720220477890027530285547932952858597272365970927828046723269245308685309422739781778409036344038674628602298008874328573661843817863925811859726474960667592397102902086029569221631157412670998681337193727332226144669953453657691665745282638887043550650287778154715995653780177251630560139859253876911147549870388541660024498121734799801909150354597886188158540402575506584330069160204253347695130201913591227071736562045657140897464481440483181583702431418804551601340181593564161988727825930781402039145273815457361658689180758931441005957764201070859969773632798103506801586741515658388902838183010555149437099295378389884369296461648471731951071873245662959541579176341275492189927271094844957447218573285373641178339938637631431937941736753884941256911585245440613462680257841584219072877521448763196354357926110764037050731091402947297012578650365568542530178627516174639523688568147602821439667697007259823588070333028242990699282343556452598389699492156949927374500203984615242708673536918046220811342558262573936356668226056933707657058774018952446863819627604577122232611728489969476313913839771840792708864725398575493444619137438192406306683988571138590701992300640531639483928483768543419788453789143822102861989665232430580025177959805772587572754102686418973234496049710263255334573954590697409671202235519480430098895668410236587402571100734900629389886828769007239696941374762335592424759848778447046039762091408735623158582604033324250308126333090547852658969351161458171824687066053139884578828196882587856766874430542536811416818016083993647586246796849374926575328626964213331402688100683762511196495110858040767917950083657681544624161549478695850630156171812460494057904568318718653670737317121716591428515391094458695168242727465373752033879973666375139255473340887899635292097643673000219268533774438673756218009452600567017203370909713397789753235154655244497531396574439207127782755036458616477313959550185400707180808981133022981258450655318144594105788903174897885000467541504215890273149815112976312350169686437046838726469267932880573428353552266617785338746114562761371813647485119968066662135902286260599956703525735467301433080350075938656890965255613297562254477600778173770077456761783146579952493847991834244891524592306491891546359920600411910377499589199211943566652404495676833006800882980699806199199765523300597978981918034533971702614102150298984383932018584812750351252613670179514874424959800784078955211912827930117235799931612797443025364482745774562789102685417491443201680958169753043130244974796623992803603198542729177219772844369416513447306013429602931022523509615457982439937985477004268555111617789409912616702351293925043428816858419098444957859239282429229223209774215643328233914260095666006513377134591440999778492042936895608567407197901449862119668973165228922678336262853589980925534812602407134349893277881622637255774316998001067793106688014457998001086353190413378863062907962347518048796265241934386702513284118784760612641387331568885572244124088181415672719090012721790904216550150958811965786501738648241393012794389059842401792682534837967437412508859563585712532193515568547010430577211907715941419116640587457900056917109505798886052936796960256787832622804995417229732546595026673605651106176410709740342989462728294670794579664018352735469555871112372148329777514369592758312942407314534725509074676098379312671209407383113823567235196186179471413218973397424403553345149780647556875934789857475274836416911531347580543723262072883371655944416460293446073934737522157022863762076126890722763880939348769484096030090588694671570699051543258211416654551659473655676231934708052038832954240722548508553230742326966981896104740700850445688459489153433699074563396855987901237043063460030443751749590115402965455091984185902738818763270823948115384482186926447527187468171036017001476706173029922073926600673030589482088225503228273494365871264977926879487626733371431355708581315088972383301061934160760115275202444986354909956919038979596263471902855950121272231927768815955717232285626143246020308390973795603069985178706820430399342254035790153999817329513118338585282350599091042292703409672499127638149705771455471070765828179135123954164987900606925139477553549529381271826762122253631929137489337591148913214367657103820899763652401079971160754306872915724448522295170426143270863490913004379127659000161895854087595223849961286599012989700625891146454453613554383091700430851427929477654986278475935222944799833074881650440621307321006401275867203222734139277232349288981870724302398343996882693438448366067599348443622441193083665160196841423476167265321306724713608801039234317202219664004443005595852843405119146931207734927897038060583507442557248659555137688282008739252507863149366321588207693451352924175722317441220889411179033588601839832458216185257097426146921648813425091441476179812724758452037155567963305611869815587856339851462657418648956784518519346963457572952290758910145365797073335675619875435825272219591133089947343049097437373869800850281801314180475065656822777858204304090994504415394417137630945345506604613204485497406658154421043106350776420747103795307937746164366518540581720079168345934079828921413546022411353030259642852387594553240922811146214544740955235268484176488766976651216043749895328320883253703491040437460510083675551738689437269709808001686571014530415866314523676098594886259514533596382387768611880827362544077394688757663271636107574897023051108784522072184441103684293034917897445246311466472745287879713545957372030501469867318797388380837128947894331438224366322150488610120566981392325274657434076095150072900789248364792290286761308359317612690380918510503411417436801078697929521651395119725398057412446174562736328531071677056085181050918032287124879847774283380532690810016143839745218185951162227768170021853334062467187838045382652443395707340947979510302770991742539981897848939151388679255474252262689030491435467706342060006159690437229558552444081030132767532752293083833947686454817546186377867629551762603996766680125296062169260316234937029713513284039443878988838162753240681410611054927102032565162636883134327137836902587537795741480315934638337614586524467012175028752672718221731991771523519990732179680187923408114682987786333695356311453874237185464457932699073524357225162682276252791739260300576111758328289178742676210528838762904640941441088583783789699820348029486823511066798661674217049264735762994952518137992441493624886925334319799781334516159622038148822795647851614921309856547110221828900442952015684768101988069274678733828446429278216385024752427580006214269314750283471925510513364965776688547083523474593531478408357963559633535682595790592577658953251477894586055672793837571313864937047499335399396130602614092824780526562743273632647838599762138639925753129536183585129948320593746656301061222186732579119167181079640976580498379837477855621043582489608194058378375430498375702429313739397265821771216012677544393978140409223497291448692535417152056173950860040064361336786466739056561486714371562292870606783778038775027129268781668070148338806566424280374471760260556056920886098517292707337455732046776541907026174765602856545562846491162649762297705932002430867959590039081346603162573120930837374399875622042120714061965835640043345184906848768867247581617972956771206907724178040940784200581267302303041734008840907108078514190309679450716637526894109983604321450697476683791381789257337917229064420637483290390907693147619526304463721999796810928746290561712272673583157125761927156225667347287846083057976870945316023653033072631359243994918341108399408470963087203091712817812676611202679260575422852618459233691150497827660746312972648068923704932827917852818830103029683389240238285939585767260680091099230522605577380250860993562012839886039654522314518757383084584481494614920812312874834168340229476856503726450697600359621090928875448234425703425827993393401325577112610645298109523388652979183306858838695628832630290269229411060062791981111340430838143556926321568226070411995426605978496167208024707133062845502138604393060142261724150179907924027256863840179495607205845531502936879132392306290483432516270200496506307810366021606974927318160751493747995987080584524413831106070934171915390211457555003658009390591717030393733238953882310753671782053894202144739812622358375138707509384228047501733873867490402356012297956988859872023543903492737769040764850599246278203748262518651183986897868246537466243077708877205961305838524604017705685270795507493555739452976200244371498255872894656113978710935028833317766301094139227205357146050965385745981165421151276087170102617341168684907740070972152722375393249418425709130329817863291215564278156107027934871786819764209720489545225116339529058343654510332610378405975582644326651101234837414800078987103445789591236326862231824188213073852689832003758287496324485780525600938474832425951023817102911951315959140691923941856842809172530301744748978960615893544986150349433364580667293280753655986376212361152633834585484084507313888014162200653502732651146317939744095633259225727319430282922643096744450831986988693329439832671248890152136867662552695498243613905440430147818302165084720198827605846612331016391796010868379297326485032948645419004263567018353590267815938693926733494516801004580813636308996044210921515107826896057346061369365917234140722971790228658026735441356751230200072900858593630295899032439305551667725858495037359747583383957858430154214256010321382578299889149211590245105867534370710138844965945558793495394028345728312979472095054048837856593632695567517184678259399524152406121535653983683943111266289203604221688284300967755447439211503378854225861527029999726350976950000742628381521659280773811172951418646912882653694800635114756041120399448081608733297723334521941695804682308685419005033289157704566337839887526500470786522990417842998123311912632487159321044727250565847873850139086893767672349782750614628194996428912974914857986439750285786074814967349582805129486053972199730145403101675040255727262697457174830332764053120083853386903063990162912626915250304766749979871074999484507836059095145177815375167410673909786328254509614717621938187604882863263403685801696825625668091988342598083834705428764907465877994384013222376478561775742174315992205535909110200101805417253648502521187583625411297504955975554172495524844425377674228310309232619603847404283920607595432878623930021494091523589562060318088906356193325427319762632425490851958468391013357158437125714872258480850415657772202871806971020286003954816398338152143616896035837163113320012706140476145671245413615164907078330260015867615015123005956232120513628417131010876518236540244195392031469997652610446582901769497815194393013030196700114517731709912988553147742726878751707763384181944669255906096982291053814941779882165727064320054557995341034432699944745805153330658991925599738804321387254749067742590681372680385590839393907626928533202586083252883600734401225876840850155678969333903107391734674794602227550943096097326708962238274457951821360195365819649128141048501986740271687812192144947763333408588953018353783366455132222059996099604387835624385218161769188632596950245766986371591012211083793633674700211875602862063706936379188605512788352642878539716965895856403010638440787708783915725532750683049938907910947347901601271326497193965133968347681157698422215190397138848606159473415695325787503677816303408244205066996534968162757553061680671574015199587518247689907157230325697689351633348182391947517452335449396051651822335487667248698835916419129005047293992985332943597883548090829673815898332457980070186708235691402001973423962311189832679105767079907805283208946890928089533021007115592289337467707932708446830872407337352644000933890899421477381782013570163740015066193884756711868505047762073452534777494353915879175622034418968895290882571204679021231332564583301867453352057784677880248357278612597056660064007815948112368902649076056876939930624092142743332153178753132807805251201992965277248981312493317221100143807755777035565680596977324215373339034571320763311485147103038140855324025874721961379010555033150746778547217144708050134443576697743845324747989973934915596612938423789197801865551153964042426838756344647233662057332550461658960623782716576106793588016980433405004873676879476830054574474655811188071829814500103812673268107221662073220962821725149294586425163644214645601384856497708012378907656951186473534810454602865155036818181798021702438446183256570464719874549107044570016844910090629210549501142059086926677615004020452078503033097480974291041432157814269392685566962290054022866538254920142827445637167853430635123902293969158141670163988506816800127888873570392917242903848730925678466854299544764712259554756944907958090948018241534948382257417402504138556284499601939311440749466591817106186960322182750668036489663210064741094096436969465937037211388652880730888119887954535676137677446867431778174288695198149238517353604202974486352442414810022148268061452597346613947679293717753189372759425036664880916545402999971330084105931118823837208651147106287826235100685505096585740395829473037051058199976923257441391455397593645130213978897358839829750071599218630575617473807339977749874965835462769224607632875133053906509006611861506715725874014872106230048898754508450354589855292208194685907932532024865849207633078661808884775510405666148325416852750122845858157029148625416325378658760625713932983830192073590986325042768620320623011999713813259670658529596702560099596143610367795156549483845001537369123274982758936701935584946179163344026166850101739927165594816238927323998776532254173202387454807126523504366782707860015032275305916923115518277636011699109023619996982941863802427900917442194042006644173379321632189775282227339655502127989804612702223267988143397428943581847290316651364433786896358403109056133195497854198239148201464686884293417671409693972531526324816229789050898967190948475204950879504778050162359239720598677076669401526723460492305389647558896416281617794144627956056858086292063400471892188357856938001688356183159646168978083288693761242874560034147342374426859810885981661247815756487752826535317728183398120626946724512726500401681269094282773258915782983450592334705632229547625089110056553554649041422013520989625668553293825814937629898894953541417548348692931119605502905049151627065119203921813636230521541362497087874283119121892125779487089839000481043342769568759878908781246168806107202734932291804777642035084679261649735702708759816119308752837234367850473962540515237046161758880403311157773390285859859865935724200957511304383739537112935577712040881362506215879897029766456709767386142289782124964882955835392623628162586530052088128438640344243013608055286464572953548664189204370581650375038670710543880962767604281919756054259185504070556318557881540980471175005069845608392161153590494756422143727343449447577873631762928253493790457267672112099295840970947467301862556409154341683146759471586603067512325764315536370727883738617996666003934427237443778830159230092220099402557479025033681570714846791766229590239427847810771539914928059291755425415407621634970908501363866778163673351548121492458621571696124483478421843584538239455593013558473624919314001587886659235074525691509614589561895176013240110558550256985444720245595716290256494947776185195425503343229427192439373628579666174309217973216235462169728078394933640906932292730671495193232694743700320357470224990415200148820063986412312422909006792592528554644926147499812840448779542998030343897010607434848745097299621472612589965840209086030350539257053463189053820487678887011066935989145832448658492574805752706423085499788463340147043929153148231313155722027786993999515683367800682310782864212566068868371245128909682516996602351962609867518032039741329722447542435636395423141266375217646529537310243454579582187922140705621504870320346022783589042382067182226063311289725042117760157752088504137781487726613974832698947432319030014350412109887266688015268804401534402403623290316625320539456262116997073351355675438734044625020384196965456284533433584061974991091427023533367918748813602799280425960028433763128436535613306565854311576948072742643085668374623412792830546760603324266291984672679697088925808634633901222760224003374425244323249862898067796164151819606050383282771921502845634166616317260555833605080359284389450232762669173203763998034564459198580379513582918933329592971676393111529582898073357202775903979660076786355609141877819833355894397480477729543232656196510701041917057815290619789913210701095552880910684875816413881402502083847908427118854643302716441437604865473005530969007238221385535502072927686127227490504896755037017538654135945563006337298480340850758051003849071146474597362484412861563637919025201249942051181297490110838861587433504429187438780406286102929972526352149953008278309669748016602011254687357927266469392996144638835813498306613589642366780018167165990086827348778776943354471216942610671453333347783146075399916397250884582954229952746197357953906002572227890871175385810573220788340849874223017759242978179409190680621026518248886062982800060707343765709123159368255871136790966158497216080472396129799668615437324505077782633980973805826865589151864137320497484884701877593054864722617832033362676409684697510584695974059581449988543309584053461280377738783384363955833524073774040790087106195109974346492753247851045904403712301926670482350891678595725739299457753727002987126584682818491156652644132191391944210621889474061531479315076023611269881766901632058455340559816629650229319943892805748645470282941133288474285142940606933378227221018092364787237123704338944079918462889670259132640385705553159073083406198063579502725885897405746506454181455900253460147349956185672972477462849318113525884554255786187477213709728197756018226471248041846330275886099333517298492899844796472507206672078897817392798353538981102464572744403581743314169887333847458444582109246747475907969915542085375862563748256445928526280628758938186474204360144553211839080557813101035874638252654766256707507733607087900712854464489727961962734936350664011999241134471117779886385805419425391806247484874861099215631644337820068187740032838036131611431931751040286390343194504440976946884307751650289943966429696266732005777618856902766933174596151915098215532764926286650616564108422280023577551188899936193345780304364647688439416613031038989420748547853277915241986052525214099316656378739657999411771827849558709435873623891050835231793080500731393338019864875269203538527006654595692301097421922589319279957275696293770546700938743951799356966984309952726524635069615116029178461304307891102406693528103278276313472593265139545691102757875483916854172978094375999962712818981075019858654018439379952186506931822767983070791783685215650359023232911299557928994096943918334837663878020502508900700349903137663333994340207600806052846433791294651644417691446295389680417012290891687398563135846354761859649878949283833487033274590109768055026551077352370354323111827481721965384125823742936954922003769565770198322637421889058624349387259674283864176562189572762715737989538754993627181654054654920494035720925360346978609152747229295015493855443233734159916322574756822904142808195341242731505502447604483281637419935072594114946604297062204204787894514898396070881366421896118565049623716274413938421220282131908315126319314368655750849754813104802492993202348670966930165305086839057818352661359126646590159818441405577883273550574444723860759677198083029641668455211449453801674740600524669942897942903970418292338505520405367762653787670470611775322511678304274804781465981270333596189997509448367527225440613948067192013585117838059151599536670474355434482647639132942334426504751218177003712333195657747003621410796761276121754354428834582578391615773713538418268423780241104910221546413842517806619179238322403500266458490862588560036545748770208598712924002957499341655527118667775636258983369875377233213417077630322648807475006508077896428233481133642541867290867782055378357609100151240473287530907181493862482880393175371078572779125902079692283889399140102434405423179269234783178636722915168589675075187518078288472871551098368973878882258333518800033859741147024500704695363509421539854672143078707056527912778780942135017804783008151645284165450691835562971856453133739194772586911016223683633122385756051071220286486352782405491322707024972450777347969705175926137401798202663446124923459818935016593842899291335244714723456265401757075598572452539058200867646650672599324365060625043791415050262624678983408613825916430086295387776947502382443603834139945693333148529360022353322633662077444289271061156730615795642770807813729102007490674599837090275917497705168648417991703439857317000255427293945375958757291845549910983303456209304140204210449459130501266229433475554445289240060518711433957108479437222007873979376176407525679920647065254598127201504840515947198980558456403324137605894640906686646890483521392083775848069450407329906595611314344147232456578572791333150269560553028230945481128435394441647546835694612748397148926869763111586781975249080548272549899348755183340839581412477715761720908513682296317004745743462770912070561733708446185514478050681546807073940728738162768758728691909033051852221620865611214752512046850280607896983630042709339267617194653879862527782859048924193121517957141747365737653752557632484729747080830036309336860068815258081672268186287880198274374796970488439767803166352827579777688351230996099944781670247631152404960489216278687848940524288461252928989118425127216132427495282707609339300498837605273064067695297789540068405327630197877533704129989195074013804158998037305133976118694168276510093323383778772497843335857743673662211505234990750529146845771341521487431832429532396816562085312081022762339037301672592565447115572792525662203974845605362866018927363761837716209581799883063013153602365850427957985109528398415934197582352424113280018490237764745209148668636160448118438116364580582468490155728946008834706344079128934142632739889091965061000639347057612130105985275288988140702982633569331974156361653123678915433105861369224277847393905623520555530731871490987220008524761632092583732210010553327909735124230678495631061726825584233367006576364516757433481175863769313239138764803440799999209830843408291590274132206738934670844456657072923467161105330804648336277637632610366121600484166661051793098066317453377811015221718202135693134652083062440253510235081865829888865443582734407080445372623079086496131653234725521291051256064602552685827650541466143014308605805387649892880437185567977813070566226117698910545047619358309815840008122774971217767045762002023317049025285192631942563898402198430597671835110228056094001314252016151284971596982239164191650487769630926269151515344397579106316626012454576148569865083159171025218516501610651372389072530307232773108446922791764396093623235684251196711485736755169748387388336325806739792050877612300849775471430124094104332411762520362470279668083043647787935324446116720216452644213943252268947340153684016543725598329992607171800297911942708203220647926401857393387220530325672551823755624466623005868584352265747154404066678012454617048530323282130157407870099571929296371767362566574079049949776080186332182104493847456488900350643056564753978797207741527306809406597390961839343516150389150956464347917738371661760308190182583421407130059528017413182393984015384123695511141328557568123056671284818891933498903225337136471828710567454381728391273049181260994623283869293260083675122888435850748942764010736665307434435295431517628053558792723434903478908471896930092650906756939034913157984485534388073776702788974984987455535017763973261919414637569450715458687312807306200426901784236499364505508159887196024103548622710821112067533702559430269929204506011582104055372980535250059923375246258728322624774549567065519435764013329187670495135221087102506211172591316183216227938371869713177040424801279160205381123706946975046922369097972624666585295275563721816432620647226226859320917727613900466511203386160827367906217333578453584770775090321446943101149700789567088640952303877561991190815495404100261684096499105358763461436349917529430534667140812493305328819793090579506732318154747184100778229506173518525599628954772027898417248988252795148088521818721622224273627448852450662724448947330973894898825844793243033359056745810019024160371426333905841166741498475616522546974005297264447320380628021468876933913698696360935869740402492034020935330662568192171513355996168151019324674259284011416454925370154016502058609112484319873814970193619218628382506203626913745317099096290310843353237778533479435658267880219830211686455289908811107687481831929830346226588863390040381237295368292793518397976260757022306982315392722250689982214943327582015737474697040780887091166234765634607892657060743429461861474802248828059030333876445380321589894286878800336844680271554101542565672179624497296613648024015831214076860295652370712178613481110693374534592391543017920275840262445996304439722917561270626447609026602525051859244726981233307992951129327609257287698728618253692696500056376249420915177446270467856062804884170770047141527368853501423682217826856322065572782900562789499896233986662478167116372063567903120321642657266055839961453692667468744115356971457900754394346953186842715288143767274432392235374294023953082470197291554214562218334210034363367360360093009703927587299380090065264189455686739083973901854164018308894191085496693035320205879576565597199232082041293662797223266957134915789005278130366073798704910845373614135248161738197594592996320256611030684072418224182559963388726387605712680382495059578216752063826926799177059139364773137559535799311583936995609150365285902354961432262603241472292686304292665560132340184954536665326352109135698455313867412043624909995685454275176750113837755839996279538891667181144598784096102175699813701047038374432613812105809929801792650276829318313113092943147286593375625321104380555442235919246475799145558243974758249440940248562625962437539254678812794938567956073941619872011129974798041480074265306443225759669740844225892602671227545988127550912788813112556714938431028583507731603739803963524594636855958936108046892747798628688247416517029273089467143005784857160479114196672302405345361804170800549805438756599662853273550162335481680293936583832378957231631924296857642659902520464372153943228506512107225335502702717468072276051579344102197419101831978812641226183373069976002382032293134095241343331829286045324968995160574765053009823864380956317758026056155017191962590554895140027964773061232209116266072915649919485247662846647413501653252189622262041373020190996152862910565133109190038542617355113469345788106881601130516515144943258718579135680266718620674166993258868580673673388216579857680898535995920032129746943392285593926763858366185048690331477423985709598355645436816697465444882223827078366010738979541297570270265331794762087676963973768948399493565035199446950546276732161708413853490444897859356911210265124188596229999900595742050175161392589994252248890734203974523887816696789434861956006455104147259496215446702902961736795474314463230122130776905458835411927384726537979068715640139079383866125247925785601876236832131684655413119100132511571146956754765205284116366953882057883872096381355277950205057764217146610124225177245761196410860081511432241431633572863139285969840921329955105876434595920315843233116365351648921092585205497012024991536762819683338370018261887186502294563234059011621404289377960390782738832889459105401727469672705471942289962597092141767941114527808432780793970400658786867828719315204080993429241810422835001516585267266884545049948927750117855815113741381969919310476206053750965382778731163302268493307720992445625284452646944397212839891249051263908570433731484785075933099912500851100494813860615417119559054439736721397972913838435044720891607429404889967227066036012451076136215098773369300935507226146527187795543221903701943493785747609636011750670296382146450256838744415157277795652531214969626354949009438571754428253331523064286874038556674899301925234687082660459095618024463157039308787545060634677509500190779888980405160278329164569644724568181927760686330858848903623135720530503078263590754977212606588381707796309676398706533943016800808611892877301472153056875588782767975133807409856498640582450736602919643853126524225120393089396920658350506557534365038870196596754929962546491708058915847860680430590245039862277581746073771300580658638597322321553925616442285313092579744980341295072883875736890897608871563761569466607854069039905997547160213574904542460683272317148271211696696609948526831879342809403596040732958403686261499322141660008744098983718711859815586911183563212472073195573526666996388079554710835273269864657201078624426048421985456999281347858367225150037231917929361398975835512471546396868864565313834521629711425600219211362301388658370447594660908964025558590417558473032207168158717045058451645944097894685015736158244915061294680079589566382125433488198497509315026463359624335086023791414485544564644272481120935319138410080032615917167783682397908811204323854936659920470643217564863173522753219796525464425095135576490948002972744802771630026046912578565208166393844788803517129816383358696189016256027973839410364352691166386811939264596523184494363726527228737244688004986937135198841268922065988048364621075760601783013741837468635642463616928802886670622077150375949827303259161464428848948826844563685937623748570727872794725990166716027080736089861436504962752389446746345047939131210091301555120376976956477431927299810315825492677936422249859701603031584234853177811415981651578729090336897706738723799314013067801867974920262316064398952992349265509176975541207239813507466120923684457198575023159063089058745009507481531032577736029393688016616396677211167013250421330591515287241655998735976029767031335682011271303537996673596595592789738166230029102905489918734694846421983480497877463054636574455217440972444360133749306261081519271606835507639633479001544525029527093062175162656072670435175051324231591625424818023260201027133938184903032738501010947791963766163155915194554686506684198334941155395628105538536810578058323306747122886353231314302857564617345715078046524835408790176755722828129064551995723647790859334735962318848436763990610227242965986606536975567317340229803967629262531266421826828324298165045959382256020347166929007537887295158521047712991513767423399046637077947143397265299841510801101258386912680834271552864016054226680530021008349029622942559773192744389027277075395670862249471204378214981896570786155106509589097339333478889559188666756380912032863992458573027743988413634710806058597129157669345938050022681058046969019848887086239237121580868562277208078578336839077341016173366478998811830468242037868324741351494791635325559588928610287380939029293475658638356782798769871456859182454623203593652382914032776526656180146732056862177327966988127256217878553911740085023500811961403987302857389580006017826432489488446587737573208304185189132317404789832991014449614444188575704982468556865165949535257732924416096258019662826525074287669918415555038732167172695347730416466045785939670065167253444443574251602068045445202824627383710049535839303365553346112500251972268573651163042604280822521039060728993954711323784836984859447709001146100473667254559036609357136628726019852753356308934745154325776833719260773479556527030290463409954859768737463882269097298551202892009791426772340955490343005998589978506087712043179066423559886955331996522888825616593696248872487747975359716815691106143141282278086092409986224311600393265976891168911336965028816570353216008450493786999519228279761069968554415709984501195158499648536439086552010966209960153113844684379408385530279901868509921771760056334626977326821342538809060813799904938038025031191679160014679339571440494259587532064207729394562093395073254365035410749062829426734809911405761943557633646795196396729499850191584799038846676466079877696431604861300630324333441351356950975983757451734306669240196132306888341844937307461914070478576029714013889479872432130979887492639438379776204683215590774545023927940404460043737402193905836745132632551645029155907814765119627738703778814577247569316017199796516051614455787173516668337412704961628633215687868632860227477674969380662164606341526472140436983703196516181478074749981150635244483616374744569140441944530736499675582162147485095427920049759597486923050011586666889781931041139027613975452514568170254868686916263943330374559672529784826573824454225962042936311988848678678882020689610863518538732197254469776790592817394872785796486624117793708637796433811724409146506518028948905166789293006863312169397091518176606205572817625324828253577604210476877864494779771672961458024436026883120854657530582578198965900869605960360234991692914477173198866657490967289102203774491762942421903215899263574679776926895238865690666662111964723431846650451301715137669593951855161896244734291492396303247900055760438946947521919967892251393498510473338105796621758117215450159771560148639269406040119655796351943728653368748402406507824835200848572618780421724910746563418858249368307396845543594060621194816413722922076120015495311864162315801028374046295365278953350303011430608380607778868372090769682456621844000870066412253320742486572709951824994080122376117330686240633071487144536102439828439279493134449141467563895076792753819919356284179875606654852985043215509205953105577090626357849824052785844180942827769595292982217988819690631810351063234321936657773531112048988998774580178270040417059964956254772140558749219878380206308256223157786673730481810867148127382697513611328328702639829787450260481967136557138742206395175074056690095807725253542986308523935437881893467205205025846265947069161642771800256288306268561758940004932406805365882472820139698269858187443516873169889390955322908520138027282257560143209457220153822972377102499864620697792279799502780546540675923991851740984790133543760437151307202836991018727192553932855314320007912624839081000940681305413061175973135411233664562828089261683522261018255784565462794043859564991856628263785276340469555616010872961756135596038757293999597220985758531159516223436056548584374072485706015090880261791234826998077042032029865127733231480564987166722029905022692329479364534056180142976195242282432697133816585995304253654430442191947291819660061303064974313502900839444388952591319897868069747318612584140912394705400956800600365182671454395270253705575646756961380457316779187658288928725873686639552380628901762869653877933443646095581303480950158256125671898710642907444762899188956525384062120085162769018068285713973607894980515842715070434417217763938045255079955584065700658031530774975994115572163005131829953562628350037093800058027033953424661815113906263303633371834457826337456828869935019347847267863059999620784226458265197629974599948834284750359950679863077660963274777260040959257699506634373777236983662710663055951884058556954242514497122692934077345955312483653324466758353245202674798317198065665501100724876432117351959400975935744617716901586457424518100617133765765595234356862389878517010181434840589987037983157934738403735754078789253803090523233994018394203456152485587922229364138737372105859547767603798685616854895361443905951540577776422416185548540405024325482524082904889281972535364581460087839564996144946238578991030044046456990249086017977880869767506350233881577177735076903120908077099962812039630867990488881391839871269405898096598925754418279312761146863462165017391336469571612465576122720358694932089922480327262168876780265646163058629915368440797270645323743268010286132859321392000867461542165377033976435818783655036376443976130978733598368876015174616050954354260809307661032502472207169041907250253159647836626050652350349251825819917875845541221702419598026952043306676251898150220483684262606228245693684037330987458810628292473675079697788217369945377829538684441706635089044372507609680650283410922835266495555747402082257582662943244895156555526483946259453958346843646256831334029853930675059098942790516266214266703679547542954411852271330689411465081574786116223185715403631863490812776696497080931721533945049526797691232845512898278253174640377265909348950133555536717550659979375838643755873991886921404952546965412790914774428345423829771558623074749468868874720482731673332417753778852456147086815806053650188464399712522463742237874176869540825538934014609774793502166029699786223844176430148421848007398275100773253458848297489633253385551906976599620059997444540620631553232941358790416331804865461478060859908814236980286050119224157263336417044199567664956523765427745490875883014386777901444826823463987751807732984539116833986592478114084408220747326172914527234468656600381087098335944984224654943153903707366913360187931388099350459115536381286439605131098283830166873673093629941477634852727967392236447330326718216438740541703982520810203960488571276861872858691579187028484964301650473442703556446854953701397527668997745544309439719755710674145647552728908138438065183184921304227347267987268312604213952698583819193395238613010416240338731336761414859124619848374101903756406132167737514759525624609139176888844449622875212959146127708665508953245561186159120110811833488771571178647142076158547583670890741197314463714958789216299727151908412483504669554526388270608036064681610212168163315430495032848006626168428450992655979324191560896812662725641186038950486579923613807238634048180945199486510222452473880668752180458192128346738924908294786701163485168181994283944186173038212716121074114730234836665862064272764358365949451763146541541083254701099280344500720198726498277657110255387982580559373837164865891223480050453860527114999825926327037873584959097645079687373897256340662345239557185928375440558878738183306503256440179136770974957717018166203434152401904316278419501081247588899981410306871100005566348812479543837587050109852080401256475459240491372216931855092933756673979922125641925873622203017078468198245189613434429821449397179530999700455746281260570634558260992777307749280082978387206038151411177262503177217518201242014859026335768797603422900964277133062259547429074893338824339022792975942475105053559899841438811120530040400038713614575293880834385849227600188996980975957192489829085341445240997658702327788698025963968888554661634466261452717161465737987445640717844843272113541106184083903077124976013252328097091498670148443168235826727584202652321261589829370218586904438359497947795589566708253463384614827778347852214067414232703524220493948723871470224212140136288229830604519174401001276626267927756595393690999110819220754557581340544699789509873532769026079062766708983737356776080795797016529901647159845404364844605371242585447682083908776629219369667441910292884477981377940704511075946317760332503226609354747373026304356547018668907147952784832405645580613279355207192122469750724924292085044385118953603177906838494504872744359504934478392921032805106777010267627845510320138140348063355634747000059825573012946373308976809636011468857981954145540736164083868135509634541338843462102480007084706818897551047174471944954916789886344585045534865240877905648513600694532451969331669696795158142046882498117594400372474415711761650582970093011189669102444255435994788577384716913592773906070176936955003734688704549588028768193183171014864172646192139070959160346388675586178221250662779661135149880845664769179724792234021745219867343339981714432160086988637303059874513708317187475083251225885651702433368169633740659591780622143472388845972580952349023022170920284727162096721164645035937977794825593209768189677511230771114422235104956819890338408026631391174358185835664142279525995933068906577176872289343851755562836020472342287880681115575461478048668107653936262693549593400099786866094935453046105533168363391206894058313539531466499615572979521481230625327030719820316290474224543412166431419004334556219933341870941229028981419131708737056893284261594336623842575599415363443603647787385737430618405007154266155256392322012045465626658911057569889575733366398032414855136298601120602528768994178804882924291067831466730987329928787542396624348295243883559657820085259470056490850033528148950091490242411775117055664393395564927119506748502168819429353482838808182855136839586564972101459486300321486372375410621214292917466237275480959134532330560651574176175282995493962043316479117365321908481807483844073351668153652873327791168851339181512278428050213956785677400208050571689110502794698167900386265893937818233838786973928921763972602174824087213601763685769934038076813486011855678441315019028727756612010730209945115042855305693476875020729917943358593559812982781154305946161518835275309455388521183971943647260871841263642380817184373597801925475826377528510412991511826192527767674618202748369769222216410153747550226113500226495177887792482944576153953281390704534534642635489161561067998116906709680068150428535286070730335260971107540160684363258327446097349112920506141604293197412058109757971745823653851453810037342739125211516171033708552339011685366488298248538144909605401759458299000381135987275611413230864857455650816044826294342204304930103897943539494156676551383609344029036466312669562335447870188539477903426748119570627218208897999150773696072541269526756912336426388504598041083997601979951231322302155999156363707116430685554862595156989916394197833156838042806552037054158366364211455676783230320011998085351449646503407536211291410220532876844108238762453123457749076101226383672478133846491584002886284409938984433640283817821314861643127580885757532328210346344459971186244196758242059583153011520939648485978794454770398468402995434258357009369672235928089906881325453079603258522483515251034951299400640380895210886162982526008099286602998409301845268899563799460701152240412628476241091825547392897279290410684584042443906097060872547622611418373713194958442173112739668543514907093820869605827812872695476482183723642093714451477307018601993535341333022550830566616924450097354145811587940607608755141184500845597627052759155949332297563641128842576121270691444922760994513621449283276130137978030770195819298207356502525267693324912527572626494459475313204369980407813063023029473775380171052867484120148242501839846650290374794540556698444203075833456838824857981313324466943926816914189981589729330543390330972787171685829840243953065394666479913114928964779503010998259910664512700786427670082539007972622254586237933877625045643225549430200351705425885934627483793531559083222477316234587707139965996230944381739182056119321984851138139642192458294106691485010373758963477029652105163588102359110078827859384256869926221300667962810825096304605393583284372906282940810881088654049740338660551941724894438199690635623665888116709406955033641618959022740930892860138299069993426291467123277083230532105657798147686145398509805220191715166704474531515126103701934083280872428339411865538143179204784548211112808560017373589462604701500139147048416838412998858810055108822722245211979671858953864752926127397441205803576462761801874649895559338232469845567526672913309247580804288620781790835794591091893875552769586038735416067301275264458127244328589166552459840692592339004900188651185461525194257933680607642754720400656316003198160910839569777340334142035204096263762532677818201579988397611218686050261661989024671394488257338729769520662495931614328850775753933009798677907060646498458134507931368338005063453570717501059877314676803598642619800747354647770504196933177934923691826293307966886209434844165771902896551130690801451593990558228205367190784354515070999038863077578011675352369762847762748801088043201244370041256477426223080356151700526598033967087501548062456263926938000537385598435796762824035026168552451032395986925731775330233383229634239567385882841682592468624017276485318888785008410632418451838873084997784894379550637764977948368034809841196522774132627655418528328282685119392673088681754181067554190974179628579210937150403523881119195808905647516315191953308146897476958228169157286476806704787092360262078853886759704031116711297665961829328119231427126230513083261778642662644491066231705103185898429408251109541031292690161613144250589524556837098211094277641204219535540024608320192044594892026220079700899463644315362336696987268930990924257350586909885927510354705009700961285230423810338319727306583081529847351118198247136666155593919214461123887922986259494457704313333800881187474732143952179111909591867762447867849783622573452840181649791009009294003803645285372322186974028125001730808006968765705957166973765636801173520348746147039168730858853319110374535671354503363760589889444983853702293181527904877374120091427572966002755488597132919327059239020537049424413921426094016018726670437437967470839045599702998123451566609068557989706041185211657019765987227223327250864270503019056153123089179016520153208189160747414536829927322480975516410292747719292922206492406129940518790447080239937325162054488727260868955707844280502838302355000211166447149696281449062119878271009013568112452099983742499045050165829335560945521014008127001593576869441736983191182222082922518316341783658340491708011000834501691909770013313056683484563256840569600877749918190760755312197425178527333648644369947105316412096500581910672754662607619738084572941362503311832760749246839679875567163294249190697783083102095658253129997382796481974689329690611792249808867313345634247145657339722123869049651122868059868739335958187804844244824696079873879651814991238565225701265825928761919132300405470017710104402821563491529665809401308259154869782400994340851536979032145186831709634636723664457029781547049224486416497789756101272121814995670527113948548360584693565125616741983334359452789086471594385705622861824570339114908642705482617408034185297039171529253471944395177780028288007801681253542319372110181873336822659453518941605300809815801594211305762845239916096481589162438663137968917525401758446503373032925916656503205562452356835749359232776473694149456581384584277537999469000587130053388147414318851947830116152734513594219519461992419346462190296290951166868879988722669565472197878610413250237778812007243635216543418671115778667894797246479140279430588281098250122340336993803626579038749175526149231965723038549168355233101381798354967057427872404959910892196758173698231181682374742647086454385458204974635658529307547102514305463815088771574788679372020936130802122311356219395686753736610697379367796133292378098432270816036419648035445445185042818435924192312455443920853863584043583757030192004844535289787604052410677389241515767843677183179729233652041688687543746299600467349090409704272277121723748573754587708482837903516276008149882316136780737961975442288618674009439423511558500109575580827535788951778854392774493331640871133832793992919107823298273116647591745544695767875999154206252242203100999250791462339981213642140845563421062766306846869820071965587672451999963292023026353584380933308310093866794672562192526075120781001147451557120123122340191809931922442865692180233231821171705696801760631744877676285967291075015928854025537600086599210164028973182740918168005744761746417746871497329500909990640667510734092447329935079080072706369059904062381940310870853458491505361098855736773211266498280290716424228648464654550658657436015548244637983204597959718840152131732305747407753940387575841576511821618941186073208765276221944346269659664447699560461756823313011352827392279654179063995299742619814916079180600878886106183970665376891101086614854031196760586486201518310677053610292454904880409257570119889735324676506074980647531804054579585201352994787519934237662032250372429880914076892557862217571793160235528020593156922641163534282540647817531988814943647997149846047843069999029316043252389902004958951646126813429365262576699100020375202231238327276228332484381119968299411905179523891324434910459360018634051305094762947574643086767887180702152290641304376856050502557700785319601730192796332112954550584103083188078685311432631441242383632303736536930168560261305823970882009042249416805540879493315369957398199130138719226374424737506270950586200685352558647612167685919313053699871770001155750065913093431176836260206245316838007906016019427030798887392059334063060770425769576911370444221406404239201331168888994686274619055397495052052873171356521987439021696541012942119632430430733236714503462228514312509603996050056599846324311130936734288646535752411673992757269812679303145690536201827283983402334422562429681620834892113161666779617580621330698565379015393457194713552344581630163254791306540583960437072073544699614782681044359511309266322861207275934566701210339586932576787208875346315912201111810975841280591971085666324587374841112144529895801985902438857641946244610165573919376194799518168371500844317909016203936134892965730403944209126100045046610175029587809574249973031714042683709564761871910509541283565387208505680803899980797065738833153275190602746742533402933259585321991014013091615618959052133751049526272678431017489551042555054758146096136766407965517197320791407700591096285123938326783088238452198748010449774558578834963360394895556516171494706565680932017797122826855558200330731542588512444804520736663911414010749441730271265202904620813788304886797925120475019577521409861715765934873733565149560997044164212803478157234844514907715881591262009856660408294956999294928089635933559423314513927262742133664334794142903414203949404198101388925649847788426525341946525642178306411106015738130493402080336335910895801555626687169332515685483212720611639417498991881417830893208030594303137055161853810910502195650850303538413621977890538954660849636405409137487270539108431234525117548320961294251323801927822956074186332604170883877478529983508337669997135038470725297034706845079857199832048549817652293201301763708728081264661324583269969351240466737465150108613050524989563988592271572056624431663896625019459714076049152678444616937072927525874435024671632981162353549207139448632575323140271192044734961842404533963053879571345861815984135628669453885331859381164759631236422786917529720244797249507737940246844219080757668661945632629234967876940522936749646768461347247568225812551457783672577462555339805691389872465468675253732416270939500377103729825148303021088839492623758817750360551900298638909621303147061054097625652671458075183601439554882364417974914214209118370399952439418975665476459189763424012284044161520821829091296626507798267458602992903119783750539606386387676953029483068242323410469173367536362617928866817506188654618627194462106086464171601848248545683283325936230132895953547854077549648832843635177100144126501955764578832502957130430486035399226791163562673542578631799925807943889668914728971322124010147331698327343290273912800639368454864421752495116202731845879507693963697181059758999855594953806638507346726484956677689781495109273651939282712087356649971262792439689468196410783949556709423890608348921268122415583697608715332360880929967577291349621843607857009982162611988533639343197874564376519001592011534829744004040240504518561455655557894326837427092080706202249219654592119315822720093511999542565444360025505448322005572707077807900227415296296764392131998274811146317364537527833434201225116142014406078280210232184276826101002045041818571271379436084706494027655503990963967724581021825568393643268166679722638964916594668711215232268746266378145827464253148365877149112849485714255913629985405438126854855248280183883769790306111738662669978800335478112698139381641261083490053543980319591950571313259402040254462006319850280170217587043611982085230633545001539487601558835479259583421576069302375234216271638920525827169549170938285739165590681034410742384741334155903086869072948217909407705199583822835178444579349610337154243385415275836797119071797844553968976430430882598624958029378975074171741786385121350168750157718123089806456134926957104760796140864458651639975980434623759059853430675193807731558076381129328691695750332013182146406946235149948090067585542419107155390838991987359636288518970117313400749213440551615406961078938030021487791066165818692913654924900375780740489653716357950746972970459209171503566203164266342593095177161979331795996402171061153944803445867450063036666577343607129906622747641170089688402118800793440190042309627131579039708162415377928969760703884429600162903488221439293765646797125961193374598291575962923141897406868794902623868675794863436207508930500660393146403792810497128554609994710784321965948489838717455165514321313323237055039144035592578137336582467231180935313585176230582314090932590419403847176576484949399365973695390289690951900379497417423468517381580808845428366013936559868003698992737616921645552540398478288930383323291556905945061468612626251385304994441701951408265627144448097653507782075310694395088866538713589510320246740513599946665958140586453333015055530756949690431406702656481576349155879519963325504753530266752276494344036222877650810272915049321327722847109231776639235931224135936872726969443644370551376443137578655775666869493963430898672678027234916629798046602444718420232723470635076716390205265966003556676967705040962337633253266935313797616999217273393111718089559330473875850388116581122816647987046617959564254626898943974015389754728912086187081726454320162285476900545305597753381103001939402672337977807856675277453954939240447416591523835892487850966624686631506636303513235086576850968399907676459504641655487335078246344934266807182321068266788024062671329991414515062116164139035315125849808121734356535738530088507730403112984208305834089352543968258772193840519626643157072935552063577288725959857788538176785974534803093183209213094025891737827974619533388868007924926578032299626091761653329904431900646198301616014482740776226441782310000684217100442093561797006927068118873573922316445960875304439721601272720010542432898396046228362791227144312343697518699523760284118958963998680892962633819509669136345241469114249447100723030837300904753580224374625409714500426982266434655988343851480752400895756070681639332615471914617840624261978207567956264110862358252481260252819132959223761641224390338337041596978446094058426039945265742599135675718131636195267225227957324662515996234272794234915307693924397274846923185309086505307901101943535600600273564522166350067625789463897954570853352945269505322318261791470497395781781395094715515451299333055195844970712148199940790354069250196264364551361415846871011949541579616644222453957627094751428059063977998673039715369475110588194197582010370971262903115506824321053582053719581542497922712913573841769995759622987305102236276117986439267729697226931098032108343942108552625540054099637693981539060996285759715198856711707133635273617606098322634492905518841863158970631131195523224728125342557087917517573952359117525126873753546791784924436462069733251938968147536388103624997967551977016953914545463035000960203724254380537231732557300158619994361780671941559297728228524231732389153853128102736646979140195530977584582142428874035093977889693678556228025692329257775023016545599559395511147818561889390268313085025379590499307952390135024962662533772707147438987994912360961671764071624486185643487997662594072679467620818627531714240983224356068180671839526182754355299742440337260432293270267197794557998282198081612227230393357785668960943872560564199788643876817454762018481208564339567984998928251526069685899018937188809193788658430776187924724976359161398969943509421218704519900940250756732987972390821459397713693119130518296912054343372066545021355623477835638228135994967407350017446193178007084783452952264851822239338371083066582491861369073629477740633484200158880099747216275074593963453529900857846270894309101983395993768025144627814322765955647371198468043203292159170357432584270055002525194609085793163690822304274834117616567398395227906594256783912568019855248081827405745877675745203343177032730126555512107370261222422318931616574057909486896006085006990931367926500045797088538221033183752546611574546259968171731553797996932162498771123502699889633579148970393950405025379885680932065605362748605733073279213667012624847915688527556255160041947946531306713857072415409252850380832356274280101065950979359688155701968383600256675979432497783994425866817918227815229646007463722018348462221476569866525600768417443411026219227262939505406829519961789481439444998670249284103222701408923698008174456291253581024547661193494780873517729783176484529818426603415632847488107740449221510376773040725803680245392392235929490250431386205116527025872665591470287872086055325924089756044407850609401076451058587257128463893893993237185050211474649041734767484477882871522195293085311387738890461749044027340986215191880458110208139176981206501993729223266973469170878149236993912320539371469223317881417118103065393405847503985269096457911000678041763203380710730607416110968766252553484336864049259081944165143681070700188158202663374468760974330171770406602146557582218945633671897893091654997242942793530806102236592073975046292379570397963463028164613521760567891724369207033286230965799355370267760411666219135283576106936132990920106070191218961632896582853732642419856634392125368464943431771795743689804883874860195954213613226963040049085425048534626162307060625017278622357094415328578409601896310561702623365656427477153056984176193030799142270792420661006423434308216341300699581130100620855784017241603528928004968677071349575557410973815990075275901872328827222406165773201544405807231794379496786450654635377654081003828389104082013489800452047574769151264424405580719112411105611699337655976979502080887673327540981489507032175706482290670544324046338207379402470664014310349396454259614272450541628291024334921519357147639556738652983585126940001409053893312414147656223968268829593096990457804380985241719409951304242076704630978384118327303682566341202927496981010496502281803543580947614223040377169595277808388612931129072554552441434227782643047807602748858176767023211352341023367894409996788541555838979923796553813914097890990919520320547990502303713167826810876444536628951151555871895709844341220768810677630539508030818869085962118498846223351670958967106047416519302578085145989090685338352322725005460137685286659739885378988397262790171154220433351008258115040082662134467870871508217298594751492620859270448016195893693886215174228509718933657026415854529450856123229557775254883329276825983576445575968176015811575119465680754251575807879166054016717833230539235812428112040875998632454998921768487157211427909557640272195547522911142588587618412977322898716867587093547432796443791674556462573443125919572349305161305935006815245100314238655854075241102806765372147132974385245777393225760310533343319493047326150410637586670114294980657290171565694478499546539991396319832594066388285710125927285176112363713888940212571875701112545094547759701994857163885482338874321821974758066874523092934905959720014329375037820779166840586564817130688058472998713684366386518127245158309277895324936189029851844690906103693258143714817860611636482917653477938900770652897233573881691739154315043928779893418677574478830338944369456463076343796627171415299116995865200697982585922102376095538378911578498992297496062679872337676753817836175979018410403021450165363325982658113924438400147230328161689924886133797430035962393316715799270139977722982476121513066425555837697235674651810183702188965487730573720072273876785065159174153341050022760290936293077075657060154878381307059120641111417708389175116076354166307401381725345357090699960385100878990183710686192322973125096606278927466438200696682237959464808536082740092788250731873078400098755955198041743324463180829741324031203458360199662638641031421997931881413869774898163977640489501629401454585908014340630090558490153335737373687114032625088614454662008395231852047353199587744513147584146698214909840460944170412637366987377313799825256610178200154756491480277108044079150775606168646820038089881340916841038365366162115017741442621437172909470565872745248954396272762907584200144884388977135502062679559905990459830249172316029112473802839638734526438551553857727528432999715117397258073081342629163036320452804834309645205851706324347983712046716135011018701446555884541709397515096585647092987317783298969823781761605629354187885550684591459954828493823935231728603445218715094520848243442119765766076223748343195213454566844121676132360894814436021741521859871100261901645104419482808196019606055121061976882816278931933062310241203789743808255465028419855260255153230515233068185054690410921369184694049612860479152347854779338009233973847794531863650701345298046275726697903258814520587924743954616213310222234071363784391864571222326768895167007949114515812452383355440554678199151629682209625051519826596635001424432167530770451400497258952495344799420473824391798815135421700517813805452380324089009078977742646944962500691402569125456955141544919180648910875502466277913475905743802508837839420125263061149959824993869728508491447995768046323178426800125373297095696283133065791051005608710239466962332201140251223704940171789553517697036019829233647376337095409082031805851423942638339073519464883061493380452383241411624958271942310209853861398785672258202443394441151065049090773233536316670957929585614951040709127931769032148532672487415869389259770093497044969818832972125981049587366971698614529646832931083895817033505715653306421031036901446910729385242509226220135903548515261489975479712010144943424892172119202529661101375715914052099205296713534556381214210349173542328111752575015152102786636258380306074282535487171933786749553341418682692696379853329435854036602362045365309310272740622107184921317979144867287087909777437189157548608498761976394549791043774650352588035921390082522889046078399605753339375941086062640668792981886738990665829952821546277630138370688278088719941919713702556723348501404781139926762079242789729986050109570084629466034994006833912530887589098204142744516590769047009469463253501227715770336469467830864112331709359584806859217971274132582372685172937043263896634546329847779967851032636238738569928583496326787388619123425665101975171570471908942461431709886030103479528644574876329779661958097747890569758354194539082253429344751723816431487475306483924149359205786195802133973851427689349087858914774664324285200967820225798978506180674321271943605271106907313850356523976102213991032797446761707151284956080997909079313565950968957999829076867283326913058852266705375476417554805415236081446389027664352911315300621418689653593940106751293541728271942915592315371801955853304486225091196926702127777065233062205456609339625341633954831871259592264614278747601147332158662516932863754901249080716322420149514686677771961307250453550806743082639214181156162230686116656624961933950752834533927926000090439902027642128319846313434847237109108682706776524885085912165316042412027674246015639664544420900511270304955327883211538347775888131087149676306481459631153669969521558668271314298233750180243954248562032603446783946733364721921445667669745815560029568703117910727484225619672585096033447952521663642172885470522840599269876696841344650122313497096744700292145883624451940711271197136912319567975338371297985655329100865595289479060485173812492256761059407494763578810728017061367757948471872130133581245202650451210206741556446899620370704666453752138473714809140497934270560628052945535896569106879203495817972783681823642180430107020167832838274093642963072286263696267605076592068025093212646950406109127962412841578512228716224104431370998576089705347544518511576350352645182791583703377668264941442743704316829475192513178796002310846075993273699243809150895830525200205690767381219089829547509393666307356814447754597690817493579678955920882591375235855484629072581023626521710371675545851355264911348418574416623771301828344038625385757189454185208967344070789561948158380360892584285985155045396881124542611013809671429843177275865014653105235614339982909876587594042857510643235373962310009320701100375872371037948499521955219505359663422273449002649921803256487808565148126565642045270042951834048244408245098634865015335490005332254304618968837387870396604480176654286653820515092068783824787301889110439056312058201875535337784140330783322166671270647717196518818648381083348642811092506053150961124302873322462113935032433668205836082892365604933771633694214124153664583720717343012302654041884878650298687336167591385480548881419173344582455580382313607405212157899725119391050994902828654047074747568791698169159553385144851973172325562043822445085390359582876316432457708585370453693463114792282735874794432040901953675654297763889817671988866587886064543038654230118314453680829916971660961572682901443760741875858013591329799557436616627483835544184473827062083774964409936469727799452649035159836133896480118964876685168211182418034982974492717133591325977350245864432006461626943181291056557205073675160874616817310645044763089130419137658759545660666061764630828082831565221711151851252301571578338779530167847205353005497902904456445956848640591128078579005449057032121301014687068137383418122304827768964131883473508639666923116085881933631963068327002455859686164224428002730765258575807042723072372931557005807804276122723085759596069405130588133306189145894209668903030622577148588558052420542675375179298391770706093700658992189168924917802022564854494771535659250164300035089603708674432805246011965600181517545001237699320878236745936879258003182667028354946697351832061726840674361499308086820298081178227567758931287130914711082495363032035957465494598678506556769365984367453040743454667177563259369212117895468147891579010311862424465903302090415554196884182153411280916976496246686582812441190552613362078770699557102530394379940963741917853563724667639603034169889427516013218380167629705393025249164959836144366438112695679379708650698915577301739733390241859545369887708906465301244901346027743044282367007804720696783768780235441285776976090961613508201497804913540203431177109256813616890007871582150025596068901716808422246102683516989577272625998691331412151377339640058335818006324712657714990777082498361001748285887779891018005987510524066160295044639070195981860516350543702254189087370034114211117116582138421768057123378821607324341183743727662157361263837700836219814702587221925839910437944155209129974984047055458986455527496257831273031168893572390979857691526949716049474958594665302991183620499346389342421653268565992939204434917728264248764853304097099636846087723494626401663706493490028125887536670519525258666888815242060715422287248274617690055550313739874076748005447385733520477338951009605446291355481820632413952774782917238128613800293275018698145334257797351369810579798774812052450894865789784261482274229039970443422272253121114485400598003674890646192504268380742060560018273574660748687308128862532895127976937818562838032201184867963075063609575898756514851425857570871910382630452635010629753254951201594104549189252704607058324840673987584509848334684156492780812182160210337326857369084679674575832975809457961118468324472437542432317827232153453971711061489372391861923852979411706085345269592109447419668748407867879982662444326652029731041455927881558976714648148017040350507861154763873120623103570738470412698398651466363453932236729656015996115973766761187548014285495626815060166219873756925872784073637861265847875245086227205396483103527530143230141518000172951461909663235615940437129306428264460379671918816339348911926718221385835743133465402947089173222991276044314141980815497927231154382080932370315140561604680240122700317236885721448820825085324551415106522938973098227769927495893056264567776460951092490660315228180773873786673736297124315437044425845353893091391938915371876116165065521947057286891327046834133692531817649830783217140031197177725567280572747282738622550271637508244142883537460893006758996742179424497697337960544225847178423959055171651078589781241900024512330608001875278777019672905250299924814043438717277782774903999924994381913328801570708255856874048412248156195363537523406900344387661685372411024431907892244795036357375949932800296140126710731860552753077269610505250004157255259498538897160935706784746911009102031039482329081080378053120786249381105636182279254232216862198524916682026582005010888958922497301635254298921247963310377103944075748581999694082427875855085283638729778735907454037525377953291358023573841206598069801230399309190076149079177616533787480479995797260301849425897055716971790436743291183462206857714182140315349514228238668046047082432791465062989021978893404608535898364944141732927939884426810888288209894899869892891980733138873850633867541009884007094766069324621394674980921662344308435415881007725207315943021808886937189102306185066687912569917238299973150615771067152053222814969628264205861409558551095564394302325215412827816860192838644068167975233166908704345182840323529692343102211800819841619152754034027726318239089912260338625185978325287063610467738554543383942943717583606060865504033895957697441330749616435185486645744542749630574885242304581630410712742436757212082161857937628755914686215914417930727773583109337992534890343432858430208818636785360142523708993723175257328663288326586647659471857956738930326696632204234108566909169579768311013873871649973812076612839870385423726351967590006428760515091006538005957487466868458065987662086238292529745394447815758388425504802232434926841250553560175903540592582685968527974028582094525055942577833236362008222203979848363228985468530853664294381205133167018352413745256954281810583838609855976091631864841296080343181981381159600773275467771059591391438326186181763745693286582113230057890292825018248401786147409836009072194648914800639758709690731419918526444402295583427963517154696023465743279206933244446822909913750047993064335222133088119876559041322086014386098977886296670250744214428925383511793797234039272907301274584668141322543191664983888649831137377184611817808731612671529439970592642217454607628829148534884370306801547494734947467953853773156494592633439620873770197962134828253173743713045305555445205951728028458719879010544183398614512047074120965803839303672899083530867871155851598254722838623653760507795799463681091582061781349842453691470970528355605466759667095214910856676752171754967650096511740608191382741598543119137284988603650983427986949584942721141778210518023100695642557467850912815725169011917222588697296151002687118615474935956253199650349161009704745079040158687567287280002905375948194134173055681334733550105255547980265181634890966084013945339994236969536081250507061317634641326304193345621725183921476891462415143386270466875231520831545749144907857869289414390511070149505205611089695572518347277490100175920723999966743655746936016155275940024567199242589789682034988227417003143382864582803402155681093732364943159694320691919822526813184890500262152590181992631401294432423353777676967359210313807758597126375593318687888044732180573075133394378221731148109421421013641739196651959976647350128224589454984079057269456289512906568839141742952524041540879327812052284566374237052300540421986435443751932457300696991948312294679518879899494725648961864912190839072371659782717167266257396622527302186904394335648702598421135016752147473796751348010502483586288027290125087203835738845858036236981499969654397543993616836048098565386535473575127599108139217231751927551772194010851970366963748031359019128165261507113622929240494150518486547467614405272755547897509879528134074391444211428841793026295537506486044076207004307506957547774711035492955934106904257703999365961513872405398771463476204510138037711634372861683137301315561777508965716325893690657931458776582459004684383812749681633189353312290051770022925887329830012450794341777724943196206223740961732368470159754634531172124577781980173419047370515104524828198316265787303271923158642705089223036024425409665506673968110263929563682752688560909147609854360662189627735036634701956072847035217103271261490973273808211865641298501073175944774417748255387062266831146585408236052177401557426079360178889305497230273862698673271365080848273965060489341611886213887108474507378870821039884056838811878893712083622430539067954582882250136844469454802293521699226966969329574487918460066934894542917917041824170573119604433491826657572998761710950247283639186369278179870550339385021299312005063894362481095824813844535539630211147969098310086237492889482216206138721846087464697990105922869927985836125178595746273434323154639002619651284076994177057736782668954394192137798375641508264069486863906380035620794377009204909656706323346342098853575093753930297660603353220488834782957295706303269283702370820170436022367718491883115525982322637851144723889615685910371935697951471184874176767868983931127717555265914569725036781486209613578873190265941208330959194298503862877669587555192870574193161050699562051311892648633150153862437645282156700429982919568148438739196176558925004508064828530151851425038204029983057390155819151595272859186516477747414475293530758750626439497615354871541178671441949436552251359925863637646432330104113263301717637470049326867722020353331723395570783497760193774984492158705721211872961698352901463382112657152017831876171185517349287460121944608533647478752265824751846261150108520537444338053994681994114835405492373103876047265310446967740002568609906473868797249467132321922524505506673055836230334569617764283838215519131276611728857381555508391364562987294277798323509801717685062967888923646762005821736669632628875613202748899558921697369042311065179142517786298549541793747369419542723640510073158349566151436537871172923541826624865628683033522257835317766118462819533872817927259203507503013471817836730224381628079838754504879296331479029019513371654108510452741769539690184215812060644854625463114737343621633955184110815964649618158198873934666908620837303896537894205378298749049799248805992477552180524295956399004585097441767848578879893154309617165746232881223518221024763506305314408237024288061663700506992768275177114562657483091565544851624416871645953312615022891940838239289695210587320128552795640790682521907198944207784962868867812117053303193321997565064237204866760640171206543443143066103153547429282120221877873605019644750185357081357123216051827450039149421496191044759053591491843493473846925929721641962021940426676270243035851502280899228329543928543999243101669366059046194055520874880361733090034443993025219351344607437160309365307073406828621165181663231124426319022256196504847686686473278779930944716113416886750561826476631029154870650905241472042654555376181346107928575109607627411924596760038915711402588443852066307978602229422955466765624207531652655421001497208152913133629636113621342729115610638260349399841560336257176602754948433615478662382993695323405225321655310325430194993679262954358141968615152089245999641960003573668434993548964115315979895429402411939462210920529338053883846023455312649997663277300258805673088823155672688654840477016542898177162871977448441244311717249600466082410373810844803398466792118304077581778740272743592041775449974166436557937773364788854564252370586656288121450190357940758736051263978766487685055835439393977246093044264778885423040867323417574543603046967337775128161887220471446540841528301538404375449085071485216359683757649596992881377448544129948824497862381004294773517390699053429556718521576624388239803459009575411868304619393087234216142814826622019257609920836940934312988511187365050801735966313655439570892872032619373009547636194360771416692724032403479692093123668740766998670464914734262904451081975270437375015981740741787914809719766577240495003293929954434347477267005693042283299222661346633071981440880508287401200131449204209738261186603330079700515789255815680034143099182475898859610323659067604251926096653981177025862509493947699874117963167902603286833284136516500713370417065289456020211604204950550834562157548568071709328794447101364839954349200673950827492025344855570926934334270894650331151736720467170680473189293543550046888953587795865826942310664994480366870985450654771668649224174438848475482229559793377799396620488659013548578910554408350265903290541779059716048116250056916713007590304106445914959819911809097700358590700233851548954381495463643407587179709538735627131148788664184894863303546133601695539927325513503057490218236349281785217251455448472567936637800814965812880704454371617695826283395850529364087846620948536498219004491041371401547164438569410424256950627619772860600481366211111793494244157783305246710501774201094071051232493421937978002390786677958162822430739238970549530002978378518272986406540415701677312839987851006924108489136078514631510343519407609317749559271536680806196198790966048303200883965173406667013366207462833220923763032799087884724268277320733454477797890873924132186924214796543991158341224468870453082406059260539024275413662687830585666875510589914596955285507551408466259093333060633220321549484877639643351301178250162170306067680374870704716334132906246272893560845638903051982410589622547315967132892517340733476159597381875938096287324994159193528023241879459105244671560288746207199178935321436244677624349345478789361091799119525847593107245029591664431584665522306259554081428972382852599889293077372961604731346584690751971471015467457061100805173269489245094474759350460544202059467618239177226718798953029777841630038718372398368526891790546244420986946248645420906328631345596751503154707232080944251853513242850052097536632096760384258461198337527369360066695172074439420816376593097960796132230588441519546962185144845733723866158253923800951959179985716435106816721054578902271693886942388618151188710160087993993169358106204262168600001792083092505595618666349715255933128788245404460351564637030914844369514216995337626430029318307633822442581545902260750903718004442407350395643371532909234326423911699251345970743485134399093872278606396145499010037717204612110277682410605767992880129480560038202544595013641269787666138352123871121058659353998518800550273328237845560743607875376191112178254319573372272727025522778094705920543364074898452802970567608394534135735470676982603763649283539038227248777277800255294669580262020019393991053836497512453876063188752855023102764816155739989193476329932469082587431100407893049731219628107492972256214951779686426397853144717884491501391827531343751719453287603041877556799060025381014596170673341760682585120221658284562141213329816001320364367787881062327912654697745570935054088727390862326123706680780439923911379899558988045940317559530515333838712467879521906644642994840079275380093464292021221254719838012380237671758098845608838558059711353363183864486159874726105723224354418765632343863542598997169187097596177307375345099340692257613287048929764996403929576298308893824858726996075150734281299541433800808923798473547703007589105418328260184970683235575932169345499703541223815246600891594811089942691672746473026762171792610354557517633092018129501609164021012243517112194186948960725001388701591465485803581686964765816876863925507361315371739106794888261521018265040823133018013150553393573799320726679427714790734169902679977421280530635608000345228368537526370988075281546457745851767885550250653278257014299878910308227625820143145119475989819578322191726241114910638909101046260473771463403364984926136081612004103191269167788076421011007392296720425645175457382564988240388972760253884139960586564742667735832994500235537793291427059840845757455133277126261733294385678765906005627489846707533686886014854227085440674417262110498948038309057878496067922710053336954982822767856020467490739919596364190191053520378146464821626220941511851003425899840866008322451233565791098556115843808894103707839199376882930473737204578092261564685808904221157531109135344200555043580823146123574550829962385576592327621965615923318576924331914037845124515384650106278060551641307469334526542183631799308849115583248798501549768502551310156801447015208264201531842017301833373319194929062553319363672089538317921813614499232768597569850012637932610528988931522152608623128139915270834618786229446886795757697236472549730772333561279052801372195601525976723470290857083618598838981734675869158196098612327876462991579241146025938611157985137477257876705674720570997043772286052184082514449006619346144654767951751013974096923700916925832939853996249419368881805157394089031259184406419968918079455082882909702318158466905144510624351019445355577125876023064869735187437105191490869487100191245482928372359498244603820721386886140294137396230590707459486815781379357530054617487747466061741714126095183507089528593122541495346750463485209716129587915745230195272162506428114783316391725067900424963680621211539991150126097378868556335452630056365899333312818048074455818183569280179993873025642878233110125414616555696511472112846526137558915731370111495255986012415674777306010670278309423561118537437140920318498025263798592919234536839778798427194301584775678855042715408497654780691141951938587562611727087771288271785801174467863340665189015394316604872925302694075102252608202134034411308059132209519055941431977498444591729782607819013504074112661093014388540460393949708900760197963287236263517892792268507807823346370949223308096131986369736935718188738093423067341907574976720351984165369107428254778787426917832545600509182802493758265195244212032173257295838647708690948988420373327115132372850211834755073176447358580770774748903309080884733323795506867715964456216549605653835308658466083756050983965028066567959045706806874313362084449272994424348313948269764015573134993483557787765260147365570926370677847139554339107655770708895446438014754800628655514394392389723416568405529077359012313622431865664315635482400914876905287124096120462520804612920474506594710970595025975736836459480866888628204980672400286716741010384722431668462176483150966265771384272096157465899402664470558720204888136891078561948361552754769695796061157525900075722658927059614562052840481479559967649281248718342486011119288418574386711722950153723420522128844200624407709224856639604891804128139844842696740295900053870468042988099354770049409005972806831796947857770093940557366140922526735292200857900944396815030837947143632698359622520172464361983972371241183591008288761904847735604868126261512840543465356734510508528011021988751437617527936143719549209405266618669754553126357103915839572202771262778733945773509511757679652863640217682707385171217834128813436546571605810729584576590297504956258229932885435663281901380409438336041305663400733202679549071620483011893012549997600972631965987082910401747533041299770535307588338705936321815326488915391212235930955202630319853662819291282861790397182912133455513769522425916792638727386419444315354170875563528722711040786341717601978397107775168877205598873118662564567512425704497914388365118787852465992280617189462255172991643242479932849465105078168136238463929281956394168633552211440273612620714976828804370988741344925397930076319770475824354076438039215318956040844780551579314939631127236438001545968932744482157489473308752194017338847791876867804202193107559201465219147052358334761761195637596648310802534296496065752981513367548628449448634457091545980489532479683102500918241601762563009018808786585382144390209638187502586837195995008621320489194828815095991175305422305238327645270660214296189402107360806515660583945717195007222840002918323231358876101811334995926399262302409349763291530972495864675891492118478538617611045661274502853187432286177085903804243938983397809390796642899520001897336549331019108699819159391732903597442087210699437575947938929321146846572486816952949348139088142795252130149139379478112223527715490040340245363288646411990247863471862892331088401137143108144568637427633402061897454070832888757291994646480332563009907296549454258695799422186594241792095120441071242604614119168647323501979861882320054968687449014788962158067347147922784329713086988756959292665988441874200045486888967225456257056311905323466374344660465565663829756146800154594092918520502929399073715242943144444722244050709355343102079988262547792147426916634018626170906592184931542195099386128623663812117409210596572395267868629000739920108721764062581214000637487611231486982893092528925730684464662401166371173524731332143630688918229667628329058977123995660099491777919837924553077216633915881207722438173348503463326782282165122311913001501609442952164000161890450163062198477728320381172296969259806536707328895904503106431377643975986003804008651997528542574398817370858730191986901997583742313107545359152838101365528607934379680972635354350252047221781451544301547409051496981172236456504025827252402219199753576666991174653504654820227168365097418478134356527749927659429291160435781415860011318719356390316594428650734664465940358058739305114384842289373329028452479659422722846904039336787291853819150069459194246133263503626878211361731565966738818966099622217154342679986467039676655755566162471386333891134601227767184491003295304943559857837526464846822493602280261421906216390672394011703030591135201939132981145577766209860641365851029066586018387664387328724956268142187617335751412862212139452710737674355714784066402751933741733707389575529712259198911765236616517815587940429431612222316779322073146538960891160738603877974721146943360771716408482940512377051714762376735036490462705459520666096566904197587701623549108286905862479684642777137317505482624722455366312300359381733558496966885084817456220401409341408764952305080915338721041948853715182940604051607032850675014507010627412672852791464633074732277497957458010353835456350136241135281268413254589276690687734566519049432194475797556623903718627174673062122971584613828730780485054486222475195827103912287990241540658474511323467211196595294885957580815188174345502213008162632832774117889028623540290033155619070323756552423312963414770968290299943856419115379442876245026157351858329742947436312209038488615749652209083310486379377823083598104502648676134825255709562744212778866386299212249643615481092951865381319870512307474136588327706796132787211497898578054115182361858463874721590795799111665193542010810385047684175638778534088801478145852101602010773701212056814246309799129355065010092612314793546577867949269153431220451121171257226445683998215379531909209325417791473361486277743502672162997900964179638304750043832560347148104094436587399799796157542454301637188851184138730453520685492587607530362160029132352988666162510855228323274916818623988172805126899984262794391384547965015991356595057333953218950230706115938265669161563568064716588224637969708041052450456800989310616543449673036706474715138973218532717601894693850559429515978649397259115607008333195571737730363110754178782369312309161914644054557670835965771116030206258146318982719522506416343530492691603645946369547532146471662434078041661913435319352683524386023728446600917790795709623905876334150625835893661944189329780264730179077145728826178864248868100458474618731848188906269535187187879672572868825223820766592000384514096984227304071277451941462927740047359988487864216568195645558995094004164903724134610608107136515010338750888775114488016571654011853703214325851156674006948823426669099992103181715638004443101656640285925593413969084409840427019598246494484392806800862247176415057339539261020709073577846505873967205592917407756379023439860184437502281674797942096634390421416341251272684647753277983712398749765569336026919210024248914903126390673384866166101759307468192569568070758859501928984430204155194858594001931156448872570544108454600364242015576601860640518545166325373964018961532998970687407816441851420929288401722633976493847183876425432615308122263814073650866511153113488260596922830614315140846455462516322570498265686490904529945585137440651010278497720052844093955729940761196061541970732205987109012346554191845782743442316076591059196198955051015457877228436086355810267774722267069389583215767810328315864357999691098641809901119441173693168419928253248601472532755999915210762809867020533603235036995811465646943349879360010114229655219770402071612430950749854510589778743639081154374865817321138394887082192829379089118086333487592619004400811755323488215180617434015913265388433523189900293385306170250490024548860052958546768883614751689488927260875593526240048776356278241654726201030799461147812755145705448587755787393164904965719938932115302382490369792116351360397373839808034574435061278621724118283050197206998608912088957333551946555489951580685070073937271516324721416654710581025687197746925224738525978632748551283261159944430723246600571848252664099590265788059212227852623245496966116062212844525163837623485223925518805225436276365236963829737411397285445993824507066778321483536645648709337558325585073143315336327447425480033361209814040715343351753875192930885175281417976533647640134302234443934793175271554772306242343121571717439702615787486104143926125346555631100939964725094349386783243242418250974144680967903736656692911663570883075944159910033370450541611889355401972479308085982694674247298166052701036453025068666762265133477411857872549719677115923137511929659918438332298366619762881935222401801438278368059000604407199739137423863443593621626710031273633757345364452303677271316543836941292109350339917810477255201127168519264813243477622160537125708851302522171067396775167015435303347249263904852744788668339383510413649757747208960904798490833467916171381248045865669317510462252703409042201286924716949786692162910132790515264955482720110711552639622300552493287001492498132062015273530884730680317960018123826078449627684446777490671445135082930745564921442806400740838906536745192889904688313003456732829910160504759598374917030923848444947280346227549864077692169705492188606359309217882548407386498643025146740833082167545372190488345346416552430294226547346193874019544313407141197210582541752513900782672830851847943404031331987384717649010430030627296210601862976688122374954364124320552672064931097296241758501947085923130316706838855026295606069604260262107157368872558230212696206317209705491627312318606235773541843478620435767696715129510788140942815290160439580231303495806216659108843743754976860718655631447033893629110121516731770316694171086877237357195928717113369303801189048928650123672908893078592439332156299998179670418862757165882127309467855313907404651013804809672883309410054360811792465546239575305984398984504358342453365148513031156852518376881697141017843613092582670350315074566492861416176885040549036997537804110014102658741654256641719862127225118084020743725664709649567813642060851421971865485822232717923975985058770714998721739940092708553157824495578859157763565199532086404185690808386338465445662068917734679460365105194065094671227649518087507266511949344103740901102825819761094925093341113958609601282687245430021929471454154866544633214256944983164746133052025059652345702203409259025218298530507487428050616269550859266136345038765655634124096049030472731228015674844858822874429250961818630340731723309262581684056187694369373224032656684056821305277849429682678986468219850766187011937637206997454792614685006202493317926326158432797055075662644252698919950021992319535908848140173828522203928611772772418671761638559845445100144866336283434573691216277324824470134933052145051580708290001747276978193985749928004676342365387137774050773391868915219963054754837355941782442230436940432876838553406158264599370021163667310401691286205261379018510942869910599727760903778688509360025660263642024848935800424064137528834701519166488375169609615898906902133996401381941603233762282997814772422026029807100773971170162949388898481409388718351966533397164222871513044257690938721976830403816287636378899409642340897015866813225740052546715909242973269044510557624949982618331203883374545515881088085721743313344530357782113592941670456750158341385972701898274306025583140275119673261702455336265122236940576416915088950277409610734419111619725343951858957095459496535397949490333879545034378963182219438459357551986093117628711616555300606982028901654778500254181370077673824985063834610976833121955680525550516787019825377442218774743033379993665607907933955068074249296098634724677417745730747816087989890777808045802073992471815641223030621850541736450953933505163950998089751480230121346339772203229253451985144699432644517782116941524021283351318205425088949046795153244965168019243768883666856894366136439643906304535940653416008449651955886517280482548679170062739270105452448694712723973410821549913191356752578419100845369898272613184274040556917598265885586343122736058055475801613087140479141260567160270519415088634741159190922780292983257440424969055257432176198884199168810784694813729338986997733597276742668012701819274603338147657284774284704344504417853499235955600570754937775142818569718931558092451989857197372963703168589170737073928655973029039915171017678643253933760969666502571832566033058038454318687943709453242450990823547023241172363758497076273627270813232007123933418553970781846266557187230322281043512743272551951299829470435833363190201966005644412508458093283416279256762855790962156121806066939113746144901860459709673295390563742859871136733096584916263129126023989230559478345007803801261642504535153696319933882724733287559753097089949978183169160481248520436153604401046848423865903171958281852633173111131333517720967089141501019998209060692658461550427754321421255707313213771169191205140960781449218840503241238485856524862719667216773228374691244984998005165478345158617600439342510147645395042822624549051676487180802855158380111642407929859942911514275085660091216464981043769857044419405152342986469292760443717273070409800723067565137548121966043987725279537626682244837501550977347428180385807794703435830484069837428216859437933064681253129309204580859890169362928195452281684371502843312832304881086962881841332507913736066981299933990943558204058551100195380133715055935288140111287320895612646780128161227596496752973729795535751084733527953390940597080724669314386677938090644418948866785927985437407480414593071930111258795344749822090867618832849599051875968495508445649296756972826341516226344430446004021276169758449160069843927195301673331249244147327024261765500327840490402764232030187878893269761493378866450441884487287367234803097705276444425717050697131292319292615809082241050018518395618058410320295170014826351658776464758563229765805818703851781627993853925727519021311986540265668393268951326651597168432708354658970244813544091345051762556652247495510572501932744352456376684594980717348018290452617560796698408170756184089997927163614109879387546730328936683557917237402474274296293516472498132490881835948826884528565302242979162754221480966140746772169360039810383895291889799397414827836545858276572121920325004428961946328800765333932620647438876144866237692875908022559909220072274422585137561493560273203185980451328679370844432983888421609434676120873143014480211336186017073356943475513299979231283720752579110244976047517295529373819988805163389167561896261712372671644582304270141881423690335741139777939246652922994926459621807336802433392458755531891001428584351836027476988654226296575445023490433420376443129725660670730458333610520590013656393722337716571561683332055086323670343417762950267110739162667492861252411937773021931718326170492873658990909431296479383308728818329667559231445219377625948238333782608765654552543550490680907522990366178915202349913333750828804576862410089153366454650225818132977708480801363897413950502523200213010454907159675524593610662080649124624677379378338206494976186299553521598328653477203748917013165425946248817788293151259984137462607122280773810202587915822750653855005761999148575433700567352933362241488632369841278742764642007141018913303276184479826267831925634669760261948406995756279553079391103637579557276122903979580651649805591237569755468079963181972552944401446302391395052377862202777224002820296711552399091739123874350421368631673982423459668744302165386590557404744899212554658622136241098307819337308095598017816581800594023487116137927883192029550070430276725116829836781734397049679498167142227864889352428115416267812834625236998080608950087446912928287139097128091697538596591552990969746750263463556781192934476988896292461921593930123376738395494191996863984657600817315522459316346017284638707413426943615159026583021590655855693143187574600775759713464374615854327615377012933274661390671701321593377109247178650568295754424642340370498394003797956874834601683380195108858803613223794813952420193539373413835606481042031056736188624588523976667564391161992533080338458993411469793056443278630784426869784578711868650031936438903643434792836301461660547678792851298858151598420690351710864276761194614855538044199019861108834079845153925486001844594228835096825573279675273092432327186655582193213701738282161486645520509339473697951352314502487040807358958724435749622260519978730212449531561814992828855549922334695282363057867713039177398606413439010463387394975103719311315397883756105675482405965549886534677234676055510823589209507261683196200543052411400240150127836203928066232793315959459237075079256737109673383627548636188079628318598445574391989953935360645369403930096338854829975685596470357707451961388842522925281738111714727917021367137344599784615421108253454955213249593605290564958857035345901133051168403832027308234077350118334186892349638424448467474794628285915232396982768948188381638451932985170923747248722745712454031106226455735889395654729598676311894166268940290522078962067812031004295366917829477944688852129054031155422419244192086047499178546178204592503693766873980243355820558406193520879204030543638254668438766412622872497959728658727568151424054737536629666446764499737663020893374998673897578373290677350954256297229035762881977477070100532868288892654932665665660718871050020863942577620293326288675948563662293741569490366805613269114954710899981707508908839149983994574478427807647574332471729104909880882525111962893972298657606854613754220955264093794928799117392757302705140604336323179881673706990578342020493297904494380515876441896389454493739258172643364288856959111041025467844033966878185039151496912044216239691109872387161466591361837246375428163517522087418769523961292733372695269599412493717583727116666426537216288091880345146770855804588011960096277602295972154756399225034845165826066486874526930178730734888981810776304636338744706661862435870696462852174448271522762703294289698648683152842759089024824917962569240027952962812217295466701177545950298677524082822144316592601548345964970117462641212375231709581692145721212645242254016733510537981929603875549849396658570611678900697229280336581315777859307969803692612082374703262222022786269339652667122589767268909776890491942313719631020085041314979892913850695195088653194295370518805884698090961251344212681374446676889965458002193425896167673932341546706714703505856013510245196348021954298192656699191155170372622047573496674622653347008376359546217502876977266953060753678464740347083310102199392758644837602515519523228530831713924700840821008848066485632466412323477581279209890079822655770772749251332977753249868707373277479492438207156816744709717021236742893861295618628861051367773857940659194393972440960537434618981786676122451752808437481251530087427424440615610700638144544220851271611449573022537692153145612018345960036304602772321123653189607907360440552038881497072927360408329167426171595233148745522198800721299340863299942603759929246689759437326198468850599182537249978223858230708706860888072333269739792617338645320222744453055899561511162601080618860109967417395772606823880069143214094995858054215038097275098030040433061426470556754247257131532679583364429569083290623347767063230282344331173268770990878500007108766404712018447815670798040439811885557520630447548501402491999186121193392328506077099102189415097838162413664197314902754671185506543042184560970876404239394071337467139153702015544837076619800190694414409088195925725829127630723020176906157655108717390672374797914062130371010708715153872853848107322763274698479640589058915028410218768414739907443559861347845643204719331784904959164048040594532276228396156090438075540071051346985720181767332920848867510041999514751505032025041520840063916752756806061056796745327201696195635068734134678727860981556832157150350580157948472141471751800651411730005450462458258742260717048553099938541203779688914367104203801778189316311194002612620798171374582322356474557145125905826215676371439758961690019713066550402198528157495768950475134089301759570882935997725979137609822324424329949254159525644886080189178447299298531493429894919306325793534251533196542909078914893359825030888780500525797539306491191008746765533026640577248019139932371178824078373190430208161036192723648997156154198387596036116623912462399438184356727248540133221823092586660569979464293016185218003890483437276744249408661179788017794436284672204127551253242131573111000745911706516582519204567738177294288944926331259684406971651926321146783887469587343555914880951070206957863493764108085263882108539849325478035077896895258282631428486831004013580859641081196519363135329048289797438351681618709264192262982526448504007926832955425395878303152624670623741155059087431733605551205119676314994127389677652563828376307384086882422346443122675717741298402005406985152487958839977011858425831101421091277906074418407460712639441911184269260013565551604833353613970113785043509747663105325965717600066221068855163822213865398372553148495962347825969276431607768703501415668985540156987747062475205065817126239532970774773310915302675279601115648837474029754150553827262312506067300790414780065070765483065299202500433574430017585731747795058331875767183225187646189631730212203554314268260249346591077457652951435642797921515865087978788598023736167457568943788888660802233884343088036024004276310114014779054478383637814615757732195757432451864527550030910589089748538712457903422359819032670028670854648955446009687837958910486685792780084002212224299279718862186841371796258963925605342040737463959027669475627276872314176164728310973170928701212820254065266782925347622108251428801766792756021813328816132244503217031589950198280439194908512846977360284932966214853205786729765874423583808328834747659243792139980546388104357925699064629607399625045639073180320909965761256839622454270397897675744034396935017563218768179821901622452173603844339032902090478716706296231551836623887927306988619583823780260811217108739886734466205339774891084445452776355741606063262886418794483189162469376293766478190659562235044334165811756363950445606718642972903099109514966549437972229186823676304019790581308037741553748797186548509087266282551773210261121791252013736906227648108334306582868070042559000247916124069523489085894615851391324598742783307280883126408269061684140605504476150837348131085866824600559653994013623397924573211919894731315262259680097797601274828817813365710903054973161043656357423617069747791937308066718455810725341444265769793365063912918862193865029758557586868269603220257516030553107196961862463034961221842743847836984528209088847307195045701323591753269433210372016502072017612689519171895769632271145841392706552785658203702726181374267655494129301635342644239402663407483835509578542252557295198434749698525969694762053968638242081611448630019006794777737590096302140331049585872510684940948129790034832251320613559386826900993382544736728401549403472422978553160790751631653992042787839488627470588506240616337945902977542283443757813903708382251477801959483834886535245917314506782319954219527938545162218789570011069188208220248276293705543391925287236625104511969661626824305922544751309698426662194958083381885796644977585438900337057433014358588057448470736318242396064224001595141745497008998352233907752584438369300885149569958362784125321840184439428903319178996762761910005881945981727228336196040627989911232843584480885314623111003505431962717698453910154759361265007147154594951223797503430141721148496727643718018539783332517346653648085148090036133654715721709442506426385984340957723248538242186801157353028087762020153409788048667554256233586314186491008108458256671415508058070885989722381064604328514021430861219901797027629749112039153891515174524437138745793977214492130663224352553543638330086266116241103494770639345592696975689392767926152116386046748288050845040037727025216469658346697723067216306954078626700518840171657107780852672261619535890870328791374843447794897609961687728312457117666861133299751615998268946606500490074714448063337071225792165158609933131748234225732610308623913433656074116379344844723032169440085582588583806958681746724795150134966479991638088307536547702826686749053695649702881499638611747055815280334909330719090694515171212780106927852030937117103446994323688680195649431420065591650669653406244347777756165505632934547563586467710566283637913260294671490607875123225035526002589395251637616857789656264062798841289993236631323294763112965834971064026566136401979409344255578529619592801241797144085380480915069223338190553707586991771169893793123642017525846855208171483220120002416254930003674301729273730406026673495914713772080139172539379441665636216534154529950821516427649250152856469621326827784874377774499293519231860281773780598044113036139178315432021637107444005381251744183193189550527839643454746193397406187793877763848806300105302558517082703280430142949705505161938185002079778651099490975461440942655874443299394450901902690618162400162345264791725719476360412185513901938325214751618306817085721920885979340308224490821200140181012029367405145082035570479833817520403214642918182285161878799834930491897947651785761216077851023971259442992794665024283978830778805387339141362401456420964849915830992603600503324011395649175627647710371128654276185530673885925972434231615895927772643479215044142163875881258607283984849972407599865697085504668968945556104335293525755131795650474842829159029688647552043647109940376022456514194546279913950708093523539232493123226558271502375814935409816062859770498316682509187101528231786248503400020353760209152339271535880711285110664906847752154886937238172336012527765300981320181488325784736880817977904741036606325143702598335779666058965974589004180515798450478242470143609049711847146020939340595081346587496592837674623141394012372705811912903649585376035367774682505707384010478437608420595795846090724088255775776410727756246383806162979427129350817647313994979054677065840672514599604600238742240275253633139964233480028042171660504908506568220983409738033313491432460909667079839193256500793181219429574852483799935742636112384700355181301490031419450028955451161532819832886202183754868755882810250798191921734557979605327156655784144819508155451905825949945855499612313216641929312273337751691022010601113003111477395717020774394909654835796832978217533229921446491988476364355744035408520234545903592728988263116292148753965370382741841560286337838741229236473516081258943377489861573551030459252207727625648845348277156755345370872370862468937392190886550100058278427862832338650484395870977757741079427107145278220425984593102242286519678635648914885612774469364267737307963959841162395144381969844273653724379119322135671700752228419641902177241357386742788317999021253954468030695764541681491152813574340002668189311335011329327594778302265121332485908521842904436874730140228475651394808702623161835709450565112835091703417866922179768209256949147022198740612579202269446655692843356397286698305023976191006758123746629406238528357274581370667281687718089147383376532550893105297568848107365367380237176861798839765138808533552276817271168378323059909261987998169708705888398385450103524420091937905581681171521496994493637620600641498822073873108210939060615098764064949884076464995025431442343755128655304801213022308044489958726792701131870824560598445682090175254222680404762698177508227919486234416456702890916971793312676350363046987911283883211539158622269692047682055577556659479465294873871382922178554054123231488994552366400555835237944418512595623017119800458683404870877881228596156973394329187767193479124675195800793426617687838336618741569673292587245902571319630068115080414139192222418614190456589795873900494758841385386584244903129966836227877874215595161375182711759718401266733322019573646006933074270708730650735506351366134075276509687029591933085858250726794759325085898084977234854796160962422017442313967796241559777317202014362340534278354864795278504748034073337408538383881974144391427061984039870270255717689147463661644260516630972513953030052496855055437876949949723653106814814149776150097562440206129700706553223148808347996759742042480409905043775126888368668490351182349039723997936270514659495500069744038127775427769178899729564173272276644540318564556176397367890022695652224237577050840301046608583648209565946044897890767995828623262453608107919706279790525426466898260285838602519532465980133787412953145591507700706514583869798612574120225377717649842829444919293415987663066451950041164905782324373932995103110780999080257553826510662651784482070442932680530398217305101990259403911673301060051335901614921229656100844625070785641079926428299037647778712244646634884473991870662429251533745567051945566252973558650143909826362122254502693622998504574255631575796269596241197593947431443532758416477901912845312370352136284384632364475857285839814754331238006216431243975670804636993142953526042045661007944941900068283255395981963749021033411541042616327779022095595574793359271419135397559883690596942658805531707603711111286181382513117554300584229675333010974179178359624460908187473026000756804773293317436813126819560066705668589197917156465110569561986067677191709536668530997179105253070388902541241258985105099754984039206324866948182586726012406245130291212772072037044778411176438037865702134466773554112322916942581934410674539209541788316668805339958081407123518740970881261103473021921870645121454747312648317370638611157697173938993312825461735710105511482538090081245689081100171732642506902118778332857692698132639770760807111342517882119504012543586125632650325333791538885139101265845603225894644814852682569212114070372577052515827931385887945546909877095067166226447765467689175849561451399899666793133993787804076214710783998445637858900914979407119269123790776745119639296760742298379258755766845987982716764106234501790915679047399081192006334872153843410610289616525479306561839574776063202270357688284277336180046273484149661118600588230663752232449003010480907463881789858149177988380351998607765107782476487769570144352048210196531503913236810206103006138215860367834796948965739163690076969918308043382245411041285963920081553929907483468513239950451462125773211638894841200612732865462193859987955327254237889159622106424487023455669857141301954035965068162625777559829041405378897197098123450242770496403040785571437569880861320912059975126147220000607253169331036744020801520447613139717289886772795975957524047345469874773630785580021783929452538186351698278940491384607940685845837632462187512158346026120725745079228449844995443182577948579107013938095446304305764724308673094152502348781402028235262864461718691007711777138561516565325268841377022810171399375988740877395593317630887808349197824754993759319586485402354902952141082097914465490573680020493736803733660082999244664281940468696290366372892851818082140767554868049880087908585647687958660151582557592112458199883282567707793673138570163985115300445987100090714443777620722582130414996965122032395800354491469995765824581526943644267495438238582716120703055164386354955878417659891763708222507003212622998619743239587332602922085879574730516990303358110325668112957437649810910098374317559171420496869549079019166434391252600185175404989368967327178018773116401190541142592075849856308348749442960474050718419579612190560726992659821130695868200125317715158109947725765962715877760903471700764801203970346044327999561177441632971528938931657910132202425532443722523823780341958889642361700967741978091886090802725648755162133282956649341261594205647098580749749261023522705150646104835561406651828587471124334479564425037624276340229158098973020357263620841187083157320905967313925376753373240514357840826563791678373899043942779739444863977507732100838435110091676513254047217654647514340922299910296325653371791679044081334350462891963364822470578620603609062991674788252068937239503985161454776281572351296642207377012198974440061872537101443878485276881958888994809178641659504335347179942143524795655976866677549583474368527939571172192279260857830974225870410037329981276959486181312448777392170502700008197343536229900504943417312014010690484474941519256075872583969333676793694269467244343332966755962543365549698686710478620021004129502875422585004381279294181150597361594300640725581455061325174732911249631681426978408834481047654921628982493747779027315446480874267658507118005813881941315918822949589559482471403782692318061547028443465342214592855655719390761281828574295214136330148616702784462797999859743464759135654880339263933219946839981228774795502021048188445540736887396100907855548055976037441413443229379593760445195239587860740502753474020801484003604341856204349984279925125555262478125194676822819840651159392300101985432799680998097857249012440663385750487789509493119069195646164629443222390912944950153637980723541074693886383883969159468410072602385040905690251000198934157511743534363254935966033275508774033787740530347732460573250651882991230078464513063185013405119984578339012393834197105365002930810236666673434844759082223363883589440377479062260958571140623354151467858842572326130661221594679609786445221286350814784552964338681019855533982447248112568774832045436541107972935628920910863450820968171785536831540997052259095604702563227409639818091408290153136125009050277261234781602569815980440113229418398482618314721933469970309319033765177584225530255507479375178616547874677309022616048373873498000353366435510661318617282987679514059743385539403364995255918981182522620936856460809940875050236788964082836849057222289630911687494694481783366481271857738515616041862674584828332708751973736346355069247507409842273533371813316055106943627590901515909303868905825636637443403869114764436668638189880825046873758474397194607459057692411497994467835474599351512761925547084573954003925588382628067420353717115920199381800725477963783036571570896236743130022620613269537682539609466044434119113074451792312601000623039871173738667449275797642521204218097325231693347932460119050993231004823548787724385683697814749843541717078881724476886114173412810301093873852055651521532135967372155687494271143520920455787661469372679589873711965162995889269091077307850775781290836994645014635595446523400107170699568996254872528753705524843295522594763293152472612850112617464135465803564415391251584048814330303485755344623241660145429638989312020038665115258995282401642474774271746288944275918914474977446603144618587156693143426474375322552249753693495310527563368680971690432075857193873977476105124095501409025455762361963508756334522460838136942084164777614911502483322511247690808059058721256985939721771276234617201866959261549947498363380893214834918475608674249084515959505671973659681053851888163922038954490938534187884161958514887629238662937864151841864492473656412642209205700273674322368584148202933502143162259599906141324522832368144739831265520361539821184893952848511461177185793605551650840501262592182593382401729720147598550302907302667765130716175066403354235118041829208274580311468209154393725077476420018138328264037125888623341311234673078076200886914732594919199966591722828368626747299212345037838414288083581860219690900090162516289813135437339730327804540513167343735842634670305398432959888949928057731567169894586418941935647849907670201967584172743350479309399991941814763353839607144664872929921931590913329515904350260757045480894588332378494021038895819332374708666502166863986835541461705535160965720546529814284220298818806160079740944419402571992501245545452709460100195933169891894984112822144504894850321844700400009262969525119519768394493319726775132830989057268499416906303855392921706004660105291410652530665125415646177499879623058079044989095032219463666664085704622708367946710359851251341149254800005249574519539751006843382078291362879246425120067848563905969690781126962325339019824810499466681742680224166165943550947050726947235519194077408346082680020910814567518083479802426224739710183784796214990969886147901347792331017613686902950271005915311439440954033721145887033565264038210299802990961862055746636737018775889072961345341509733604149724767635079664027000166765541343689505418657946760550169439304452452270246217229032044631545502650512749859161299324899849725076675874244773464787292040436237198016389752932343100749522781895862764428984504720859281569623085185516357102287147511654638581890450825303586757596167575913553721126513605379717860695781467746923099364286941653012788613033314689155540358069399528823910830770211897233270818228142795546810631349651864940110332617745035968072562241238751057902861137162392413353920933688106361303043232609264587655929851744453951542687854882879393383116663435164364096424431635041382549724678023227909597355910851077719174997214137400955743819881675725148467295077157391268665957324977188065792614169262492355391067319536502256013418436609803710229001356209411096519623058159458984609212886142472120773042718848043081998367809150102203090215791632645810911853506578066444675239003984752810165913105374273312063961561958119018377866925007796292076608553904042144289407756994851782026340676902369470547565117345657434020528274151346436565051413784042215756743463459543412745334793215398573208523686911106040369716855417283945331036028647290589341020171732756545300351872843949991592132502629113977807436804706196949311162549393078794408078216375701572518055655677783878839232994673072197949425869770195548959704044650400570967433399856865517930565312932730104840921108151832379647384575913679360848544929081110612663636859282223975141717360045335932692055005424733814836707249604150236186433345599687413482365597199116700810760097972228055787991613013335816234235684420871906227972048755870130618026684133627142870034186940810122273129031627515211313240062015202684556049438233861501794585319201587802819317771721907480098726460139596121018351192958178105602159646587581690566240450141985218443774578362054597192789315955569066490193279479580275838843517485147607766804627089024553880350308651832663410165505903708363308147332045343628865943571039232296105124031555200438715432096454161172271288456238347689140836226458485151645229224303773133513546453629932679746106502659313274628243443705466912648669753038157980019543983636742305444991423788481792641911922654161233770391428412769745479354850598331671257566135310578316999729943903088642088811084370672125582662208151028072182854624954785241676560441004303481514167739067764605845735181727038577422100450099638057642027005667138293820735111266860182551013947639151965133242083656161348735983818702051593413356867402962376964411125972637055512614820295083202041705455763178214030538107948268533504142391639507964928221453096050868304826445352096517760549712233473514910424634657325802839073825152707014912095682976752831457217150536283138772140224931856348478424058660650000149660304206245199169765718193660791245384344034098256225394745537417194017879917352292850147951704887004685561006887688825825184391163956793853564814073012622234693792597450104660296039962975482296175366135683179324962786209386509418529027401170267396301524535462554097814602523471903816390574433370799065879771570013529349237567905383784837632367788188330363470554957168206125421653230445042893352470486507289811395070617677643681161108773906414115491843657747915899820575515414129572385790194326803523817362022303341951817949254710137928784422620763530089639157613871392437461808219455671016821671373563492181911257977851138148916124965903376499341679855276579677927465973623910606502099145314075085516898493635181305966668892426064820039814144776571524177677083516439367310700119537177721639215948909168887847500601330343482586172283495865869208513650166171950956601729954178679920285446722860442962148730014253873861134561099954527081670394807403435377481168465822943494708359621574703952157110671195924488987520847833352414992113520680268548783762534152386568503425165234598654605798558770373793891849730464210731523414690449615850037749450459251283452327476869373836880538352206022156448459372455325965008733262520953886011271516558080107241636056334369580823624824111634474954744627859258893102367972870283548200690666997427015319760002451587117997542698247311453162842230233999635227650541230647410544553874394945152411429440293628333015863119524441459125149765583123434074711043412790975271225681807110383362559778801951812505146224519593971742921585127079237063384209567691185923526634000581650928355053286731898919559729150062430275491138363286130816906655270089498545593193894985988252099929207630972082989791348011864994432361074174896938083823085099015958832993892926765090496544215150782117179773486651515467097955464963014621579137672953432222773849182584036892965933086877223499552576692663763943091234968981888932141046161251686275462189000601642884125126915581166190273267970481121850684014225908505041695555228343549554324876965571510763193177306129562863755280742676474105003470668369430986923198738441589076420505155591477290621515462672572648791459229905234336849248511576597442530877697860125782464037689808375569295881742447296391785670736833680317745678558323775287869437454814409020434572883397206511603110339923565576932931894627579824912677236720909242397940008976435729878632650237854904558577936458066729966067652909824292274182243930959332087125493087210486668191386759075585373538138680712131295568091019341934489673945558624296272344892217386800979716726786913286848265641201937601579404852901653380356910019567001408660206257588715259518514473134435657172226918730799653557844211693220776541811033134520839397716979097492585207081361351610211986998745751750084505605526145276416095930495939393058731905344731726475154438839128878475742580302937183357862217610765652605674110441299249236213510037441760077195065407516791327039203204294778543621130800551263860182325910191488478893262143188147897799329504514667877503958395801625307869275821954925235508685390657578527999522454588160449064720510962386223067816270327226283656963134451296444730705854756766140987269971153789163940064647225744580924737827487190644041773816337760201046565972419648042320043955085314330182627679143618172150387290288626845073303219251764948551380076318440412784437888705193162620310105468124863055192764556382267458375248453940789857194365851814584077867112649198012275436237297287330737844237962284476064237423914776555455175391778679111023864318675662205044785349863038713921083917398142341902126933795395535854170337371430521411305773089177170304551316799382734945536929820091873044853844951616359891954086740374791535405753580538346593931988959091206041122420012771163650520434003081516537072370658916317437160091588308228512200731816320820116954912046436690038114025030216039285660601429999227307375924668056520177111440509717018397118880405740823097822949462729943088177416840127041046432938891271001263815139632261526593148606468266693895755646223311906700477972634604345628845449444704543632511727364500635258809263796322581887683731123611089045479867060445078067876255648072121633907977866317493282452421361974240652320230548094148491171288681836358880194968182707256241764011980421917398110627749152661552215198152089822774800014084223822215328813507530678652351187790589059025673207261816173772330589753293242097281599585556618399658008213015285691962663103076394985757328056441447201326225068023956252406145897774073151554894820499813046851722284138708900717195633710731777470210980054989550230647057360205233212640711174688580279272054453624694816868828670404313716475956711189429777195200238399749162257640498840917517316828530389473006998904095419829160991675552260150443379219483028991773127999178619746529645688384145325383567024154917829439381314619628618892400597856848225189918906833662932359452540383972545360266228751508222045458457490769442252117723674196190414443641105577236203107338788187168407906924860748896734905828875388518892632137160458277001136395755523211107189739378505024546660367874274281723052055720975929477188282058572277476180767033352793983188049757445781259529449839381572572112039336430239885878566395339825192065889600810805350390987916031007110473293820786208735358965420780043581402582822616944976896060302650792242323149689858242306333992905658889158560724202928508170694838792002891799883978496056409494665009123879167629098834961155648048150593786479098535291694690240095851680238839932636857332789444566707444953119348105597930114334874611971669813430669063451593591401916227561120288011152971382214568115596968536034292001903860173109447058668161156872750215344863720492091266451813276456424568878685921572137978126361028679467842150934997371472897303065266389638398076980086970195512121646744354644975950618223120803174898006338191886979781960988924887967944378191319110069806762535446979362484034187927371693838510319531258313850926011611571401286118878417616018585180943264991475214631637910878561138365496602274456069660325167924535018270735667760785650541731818294146801947391770804811595746648825255763570258078903653659348553451959569955648108012066966081002928272677375268672796501264150171754246316779514514450109090505808167067096162875770007636601752684142470950905917899329278475745443163901327028833305194989903852041144786463021322439225148725291284161081668442409546470451318141981774924449786810454224053481256636798530336945366058855982349809538980929758254635738308115522609438233369926165099908503931926794166690960456741350530325661751906886785909289946980905832642068204680634521840232846039902680897579842841677581666875052421385731572739984600827411338279450260762971513971517489370205153251501976025788279333065304764583117619852987050162078884049700471019106516411490692165864971452577486564226695519290826310350534387551684541647495790151044799653151868273832015690564692885458377353087471877305793591436241384443085390502591357645109600051895754705756483957570715772837971159462700636319665081176346707089744444612324802526022197978036026387342721124687889554944415434649294104268649110696899965073246545925496488692910481589209347196151051906202844626817133235996770607464392500159687792849514772571160087928545827727986756922208978285838370209890710216678780343669260614954631503145625031698510101447691070833160056709785059339715122808316540642301550934300397945995983206951239097176915840359713229065218006582842033732141312327307252363644094837527846245719391475883273906787697261746045294644874738061350268244509290917688188011242880563724683542744052944859372808297349326174375312127946956112785502329321652315040355983761483117003225198814025062486711218024474396476960594194678014876550968934936535732325326432244726656527449992768430536830716017433076158817958270542899834660828939182207282028919237866077895584619379060706701856293084551841800316453664188549964446860576454003550083043943386635143099338495003290123883111456174984421118098002296327039153544336235853936556518564771638618490217787838029062210748904298599207335803472766265505789280875156305007297842894160983645045537977225596412004463552076191333738602690317896541060293108092656585949874677901496413977206936260896013935065112592142652165685698442253465010713639315754004735823624497409779633093252391372447691333867920978998875971590020965932760501685194967167159108379761460840724078903536374454863561866641103821188603118483438229079638406967933948529022104734294386228658774248998863252449674786595984892060557359098016705457420474360186383453222948917730691579424331104762063426403248476311036747706279767789121785490416469115017503432481884016996153693401334161111802778023462797584914903342542514283497123618947394238388415100600658874007317853837997694787959354023041722999810819373226212299785326529064913871937447097116881597903100125659756717848759234464675693900529358845513435466302270497451381080465224003555482421496630086737186945424212522535749681812842388654409771488977429530473245016724037299303801191034163844021905803020759410291095950725379289068069147533246627503034388200230162194299658184932867516558175324748955957935930046584344357194494830068050669816838300945142112327488260341084084884156647220083219359032187800862482268147900123221643192870882959634580881410696705759316269130294256958583929010561592458729801886654932981023620658494296208275727906771036014443379949864310754104346176689121877208412381839329705025807179221566087116128362416463052539617234057014797516595526550505793424260321242642463817827281249840876792442140905842892573376596211893158246862864380178004367336567490906358780735957835823963146786176693062960462481378763341042117347654885442746252604633271357025607915815423039365825898606847844322472604619711591631904090498921613568422389867871063185889179423432017977930125654433873074568674902047248194674270850022820399904844190348527067403057032036960247625110564827377449368413536011183819154935876846952360567197594087598585080420262265125162507319714127629546552045950581106533566811219321941359748234118445017943209172156714008138940530695405745228177897880072308947576988946460932855126475993977896204852231362975427045550079418793336609521444754613331225056869580094138780462243634000101431304174070578746900973856803840312304951792811312044363028678429829499460753307788857417884519727203452186442530045763470524922458494045751683026780630081387588188284549979200438735730358800206539092164916330425318526275891371360218582486336957360635704077773107517228319750549210491388063828097106248648967663067096953083958838590244255250123151023745333381877217644796106418729185989465735041428279345510910166889654284046329063676584928078036836729956101401548545436859768256211894679537435624565809985232586420440167187191789151525221706760689140221032738560789739113458130175284829234985678107442021531700295127623305619840977475430892790845508325590082145025536555346135708513873014926529638673701474004829451622618474797659914152151579314189027803396905712889661243367079148433210864745631904024391759203920956857609777638703203630017119664377966266297783316545537125865323740540499547369509874097903897177221979045043967414202688720572140997742010772163214129656883363741333135425836373246966956821031868333600950768877688405714769849434813100585759597329498514609275879759463878201434170905650453655352166337390517252298268905270337287563527922567612434235007510492418766723573996701654389222552433953130417729520240030440812098899158436331485537221006759498962158132584555539590033532501524765385246391061023142839767876668479756863347564434773363154928414965901907610904796186403596185472405900487759076605568708676547239013755624647461075079935900157444708731286026506280796365081083112764654861549232214196413740673505139574086962108675265388888766002020218935859938912821005670530052863001855416611122136121567919736501339155433578013421855198717909429299502623215278927573522006619741294958942810576228347802514665036065985045501554761862319607642859420071767420218151990224071818733062829145540851603127791753151207553321864230378485529955195999044742117060873104615832078241157916698312963613853759852330658727503128299357983167213328920554039677393938485562408567823514189853331244284430430977806169497362902009239516808062553788548324210116145023468257265217450462336470832545494166735537270295019198324683068790143461165184893685515372900103186653746788149804042533782074446085641179702481623229962140108025140190864396868547067098629913158414996644333834244507509177849886355300837673440777679720914729284083584021571377611638373044069720621896086794392794191030440971338802638061295887838027231655656655747518849018934395856982809222019295720644829249071211941652013695630934930102801294730013866320259047289314586665452834316758267204722184876525751041047220884997594087661509150483183152962078839783507511730672931703013255329759208405986417508249264244568674574431734648796349859198969882075726442257846657937410403948846743049216189756520912640373684429780966805005042867715086266221542395448614579026658519123035921987700845885817268343211163061922589138924945805748546714148027716362837947456415814959805255774981568378672006067118457637828194688522851929355604256744014590912699787626764459866651436891906475237752441338634954900239609272570271038000757339355732702893636175521942991460434440077093637931211566623605950840222657214852929369523064635943547280681612800024374701506227287638155023959594107892927267547307294491893807141639187945630246093089434748805157241519632973862019517400371508311592222834047279074006366264937277810281250711745286654956770204992749053837743036882514611490506039980210832024818967796166922490334839176270549214221587443571500046203371504412325273947740678751220580235889505211578469680761575103392009949563471104786432056570827257217799464889325510356161337771649455370035611911337479538588789345511902298302259566145226347870414267858131422330862011120063290783842852183575011403533679360373711537976368500236510923948399147995298513305682847998662100821637013936586296966336694533725990977251049088427015533216359040640543694392790055190819308096959805224266070017818538747157125906683538461420973025539317270728738480131573636441283623088926523670503713078670998094824984864939332274188575172847671517834262656079688147165044482337054696743346144800747822523392296346302457747853645979908499477030759831145967798226379936640531038055982210048281506613181067430691856755985494635617360394376968245741736806452608302628080897777392567604621376378512106338145822536265475837361115727399765353286187900678621299099640948936651490030978857355665591303616884599595789661391011427011484551601158789541603425564451674948657253667212197046674278242928744729413066813453711833586641582211193538638112417178655032011967907607071540036360202206554634315398354471091193814336896915145008190391286475271563628723573079821445973498740510204724030229422738979235960500441991484879758391494961415456062331363161034466544584081950501032126811109847547210481111984850525517690344597082973470405995711737594197034515276684371584959726201784726336330944704519986755304574692812625285822911429910050593705227714875037232064484044029437956993679143359796222612241532585255049350305629522898338872439139516880335514757766662129022404550023720781273729943341200485206728583042648026821074215233969114870387489809668729078409610998107997235834337113505848826265986391602889656495016852792139319939679567801817982667549371553686068195019107736257394996446305541180584952510963166641196790915901474378977897216602991861055760911503389025766152885211120369029998052636987466699294717390075525161776890390374339617755733856758016816962050409371735472429347435749288341928217924124721037609374153864422176124198486796755088453138003973415319876303645999472099731455733928171547682074170185849749946267614917043882863843383631258876403776504653262982494697650666146211621296320945525099918304059114438172749617910187308697672371126075561808918371061313941943540902454524646213923817094199549899216182671577051396816669725811539751599552783319523224292897262474009221331069171170363214954990291341786718716589008725413419271156575253478644418090211484469166060248047126502143230901498862627948321634531544503708824462456228551859398677976228056185585516094950467983646175601729494947888689174495997396347614699577946176096355498261111731691822807484206154613360114587335881876756560084295417447606070434556834977574605278450528395144931179323230499479331910314115532791853314498061437823289374663566254289210400247298339262771856189126619451799832867673578455034376391110417115822516272069703113802277741349864647104076200491330436546558841884747059756052504209138453434438143269352535311613780773576840972249145530825328851934126641840781776248541882069590218567046264212460904652100318692305240712639566921732932203682632033495418584392794184080163498496546394929596531771564935467491004432355106631072017166092919940475720969949050057939766320949873887307227218838495887644993602421120511074424086127790158867467913226522865035750000540558853935922286598250266088875691772297562940913201385545387882401392743447217352785055307488426552227996554468063093347297230886668017447537966172872591041411048622746174966572906654788673128379868305680750988755161929900629383346757314797318105506077496171749452515240997955697265078856482560920996959228603993592983620598900390986004462690693747554795742708508060027919916849226962603748192981297417572994278566519257611091946907922028558108200596027876337496973896412729742528915506778221296016914437753203662114709562808165763886026569329670617248816541772108341495345575865195937270168485206008364451385176468204106472956817600237627193756788944044677521323096382692582327484087128046294159431807816964426293691111665024121441125644835596040967187357477220896490907139402789373519067287216812969500023426191145012846346213927243422730267593388000999712478074273584636979075039949866090701568087756041769028323424203644286177232997899233220691498567823462088773976884650825019321537057128801858740840433868856361549689734650618518371872202818403894047656118048971968867744888234705380395792251554244336110610363479178424321297517919713751805951413320498367454195233150222724294162448491150744851078112437303936568663670272410114286633799269018047479557856008853051148732642453131874479350861305421554811902152741376104193447945953791750659887474577954993605065244784676618151163945876971568277540568935144185906152240785118279198671468503019790620692817650086180028876498602529572838798154390983917562620907290188118364143450399593440840790457809897660847234231064540073068221842488677240996036919525425863477074845409113872207933786264515268115994484723976796678118190989821346398354102695915549922701577899301713879757028215481480641646221279072283153348762904426061959500722781973565501422659039716682252301395787242996580918864889714722111399563840851941325746981483998975413833273376707418993903128536232724041158692806607895645642115488370712800623438430563589230317665474862389431760216484446752534068969199227093402936242216341833052586994047803540938095828902419452019072532505980312175189098185339201813853716961393364310358001128666496792283252699420294195222492654538420908678644301718174502700496905405565188211780530855825176960911540579088083852200488285703359347154423668596172760250541884026104606908593324062139679676350458796346204871333721676340830490833854251365141328275976253439545926763898135222605948834969593310182559234438545463386080234843167725562793802435328707436263759536023295882562006208051957420228631944463757043409005479089489405846557974604433951550080128696623529735372770521543750377595602590649843508641282567392378826930989435851279674931372237326446774949211605143287940061429345410679348863910357083036772530744234499726931012213668369580283428697712145191501244685160989105790759923825240118788335657091220895318686724399484007094114629265421347758688951469797746900691957908057761308494235670897346137945827679699211821672839996327202783844214372036696873604922889077589826179971216659523429726617346320711122608566665482767870720672807147592835343491459990883859720656139773167485661875257619953092973502094981019943971287793232619542679063470451442735346997147012143930529717602151518112446306803432454329123087823271019499713124081073181535899524138337166355061632199567126920448238546459190414283488179378921301540098504218861817214839504201644201626881220674145665907585787669637616000323227214608780462255876293110928980559243405614534443505743573521475575007537011157708515484796240330953655196114825969836525319417995327315225040663866839139863758556478334782948156853671917890400568972601529278727662508901359502675870616472187385109683591325691383064594363384197839860481785466188384307428131623337076874329056231194448745633813203458076312195242883671772536181651457372237577583673867960120414664590049298446408932680552312475827297695784560476474127924866601951634338008239119694574829357478556237585961513733432536441335801296075763135107980130878579599991913641052588703041450500859860076358676353542718628967929561443493629110837313861252836880586186838098053726716330686037900468593379319439093739791531465644474467504295529366091008582396313140548023460638264928262044030145045187700393138329054743193722077537395476254983422803816085006496859712370715738969231698416570220772563732873048753932316235096161158027454196946660539967691501322415629464106399128210461707669706672507445920345965601235580763110859069123386359127331426155320951613297229765297076087360191486435493743570814023994592892612191410899095421625741408282867165508778007606408562374234387398817393562135705025340290903653447638282462206807525707206899821325303075683657347837461286527938567615298520929456845871184105640443015828012530817523883612923808523019301990114157967906091069757829142195926268226180706700389605133992042431894544161012266689763161931051273592625122751261927129479798653541972025967820290456478699583564328006576558123799684547823664355762630203119440239151506902876208848786560956103533832696385583639432763414701735930652372195860612485117856238738054023223655261900329755310250852332836235840406588428160933172516487809733317821989752700447552704318805989282703233883817003824059808503912466556099486925533951248520159537424345968589531053125953516210825662502804021753531843130032415059132631846031552116797329966236709757096312988681380986709991239971427606572245410883184258362612357075582063544763281992789107154393705786266468956596536352301565640627553403819968446704623941467522298179750447563531171685105738521912462032811932936222754235402508525944851801651352217933419889475441397800145084953067059293604816336271876750023089636898838728749870718290578326335578845945516185385915303636871036088256967361583699749324984507875760935984918494888075909038770876751435123015557735457579645503629397443891844591495386630457255044380370285511769684650771476358540046393642364957802963560843591002821322083633055805053072892042755759299838457901034083990942376994173460360434671805382579305687139809757789530511327326486328236770979889103755752415087107683345636112901265186127695153134229340560615817204092799363617306350224727173011583509293103047582753875142661620037942971962626974854123126732461618215446718878665548838070189220634799774605952497531810680369512225133113315181933885165372309005322442355875370835181714088523553921050390365509833855617797355895896306280203726043829051190426180481610213562523739701097572076315428684089384565642653744299575517845663304517828806702239385583893447577514217615655017312401554584546064293802874206969617190892613402014387719211151614007087228256159142125363642738766429746290944850871020227669347507800378564548124787503079711965748457394308257994914934679602017664078284130347819890178464690192627674622098597354070027784240048804329669881969895399682323360998696234574061654901579240189127199007702463095936971444095191612530864586939215857235666597390956917117564870410517071204740121037495122611488688977574189630177224903466119967596054788486746845048912797070670114693171650906837732408251218565431145200662863416291999784986417567384968071125367770788104263605100763007950314400367335668548506862770931955661538992050244277417081218921664252441750994823316797123281869945176970043793349524757124529636717457630345627238135676310758411494845209819125246601885309233449261796008762209022270913427078686807854991947454949878415187879146806431865492487458541579193290878005162765253426840352394386392810596541732595533613356678820834999321126466772568449126721196838985293709868547861680185946809325744904520756703536264093464839064259514500637347104248951542809907750907806530393669517196863658207788478349870760686717238279473722066793865947810015791363460495190233206390372277135940442038197853429773492866281625331730953228178241547667474408333820363974798762687874104775413875954205559726180917159409937371295275413275416548223170146291256565440771834444826872766085514110811709735255466669527501302286083701160466725421831446565629433067500679485986748713838618192145275158537322685476848092850077562025792962022110298756048367847853673924571373850904072495379872407953255129797690624639966553897946094527378998004330299320558052959550191044357172905478711919651546228926736296564236412109885065301649034021367749657269536145617903376353173901694991680269145405830417932389933735613431165272317598878036459301718893846740812295193357765649667468509861310399100313373999513353071180659028367491207243162871910257963064236450844767596830528874403061274960576537378272216561188884566585351861469446878436899406274859183583525564821037342457611665840888555816019911310483989553033528744014798032258800440957123425788074959233873953439030682336175918075896674724601136240364602061651132560102861996661704836941240908248433966419547729817717724352089574069125081064962941243903847168736338793041616874577685178260959920198815919996753019782300865221549242512784451843740490200289573769341155176449015208961630627059589201011948832385417141790164699325016850670683854305198102337169661664262860580066923827702465897158196923027770698868304710527058954491341983281545052971125479139058948483863675452004940528234620811016629095080835295745301402357591537162431744719276153522519665297920865621801330880269749127655687055224998194409251646337341566293382405300206591973961938127164441106686970812292027566718964388925005351581582300587333362195441475238830549394860083051968098356843057990246954279564611582845946874632358475982966559149261497097386930882549485862367951726207440603235260176657357476710583356201868533787673471403391769721026633703645376241538494504832562211698761836873142426914787491219922337420050500682027798028113684628069507255740772035330273573052036582867353390114392819975096325268929011234088210928112756092062430898337252088991022320380050513631590334385131259100398329048246965965778180812781221192387099327818889251980162867766097510175672902047579916386003469293857286401565589289817371966510068133852725967316640520876075601341360936905648626702596619485097515889382906650042304198241576160196215538434753827129497339893978637994569792417865698398273650088022967445402240576282067492861977037257015225537160360535695796919721570322721971811138575551617188382048014675156079900825217947739830900901612094649679116437175384577879906721527869506503880028700964963624239360656127940676354202332108320180543132785056100037121335797605791641627141842763491114484759403358254949175100108579668180675579919146156437194907875553769683235210431246532426298429508721301667187391000758295689213023880169820028478125297481975630770865939329969826760379288801676300814403403453012541768646892475109953565782400098789665470990858825984465082833463036716868485303921755594485279541839691700520103637609655404530842577958577447020649883465121595567151062434390446647447547048790927298444088350815524621891407410848144004326752488980493530687559249914348326613309341138560266853182251044692832904270644681073929128934306920824552569012073228771732369315412530213256956064228541081063252299819995984345070384142299730623384608349284621033659085985603552334875173657922230171006978158897808441764331548422271657450883188128761504914043467671970599044050068182343844392879531396800820536329597476277207750679988011094009660604508644150398603499214377556632659040573035024410207340916094100572241035368660608834526284608452296564300372303693740975470696238663863710026204693408998377531059424681156665585210358504336325439868016730625642037978046481934588579496031480746629873014194429195246384654474468069016252918812404582635563000704803311020250536603506767390605277520601301084490446622518566669723281103854096199807225061910239698891147049425409685148499913023337496051665356260035120136696860075309941322967150841337672087025229892620383249368464293555371633339871578791553823945712277334632182730253012942076870372856049878372772802961819433442204112465962009925541064969441174529576498181860749029853703680590616376448369273112382305895896761632942121857562975867388219000281021008172991294509887361355925131707541974001877394184594662184787841064761969912953948563145235441760252272715266588038567156061623745619034353097670842414461718134458392174418839158305815247830004732274961437439426169180207558863415558319735091182108851230534475840143076707237506329923619041331445756872261347567834437106467031419387502339012372573299412936219271139424026414215826863685070676394512962864718448380989294875489910952180417592283027252426455302075401250362895133099662528783945390268882436379456649226880668944184716385886347618080812252567698342420236290501934033700703256925130807214249779513694283084641346957224978525867193353432265692484727820234002230447580183711766139666751957421791674560039430583220535661010125798009922639708984464376590834764468981051443755956160085057551001362358096077317320273444979447354673855079854093748827496033825947429168356635884685698018008346444630024879984961180824602241428351610755423415411967598012371058886868248967920777705907769085744229625662452819037493262066915703261412976649566237045969372622179011110530347202339371913926395046209414516083689111811266146457088593507332500485665109116632822353849630718841204311633049666492166399666771898887384268155056943768447082491010379868703811787688679445009226894624319960383528303135019536692514834359388872845480880946257085233737224280158515895134120203214584118590762903737084152518069644646676756483267306055683910508284581405885585236017661279577514415998733855437043031226923322270350558100313822978155470472164383704989523147872354658902842021121980028946592176472676073926100025798536010045042397475651252055926166421561094036789229657875511919729385034020884885606280145367994813914884132334188817443021779980403838607553763666902764641494168551298599741400217926577909645431105167247616464930222854295038052057812601778055687972244340054966319719372124029079941836033934703033635832953352503024843496771216606224274535297767763814806369900719761378982206700438120940590818951129511874862604185568315623119752854425020629616481269223032961508300403673164376413590899646707609143126263429948318698588014012471057225769692096787703361904079021219038652376672646601531790100455367832073578733151126921156700829083094831360545338641634624029544025635219059568794677419249075499847456222227160731379564824642099522556987818506687990177283510566271133035147623379584966920655342832831312666625901074456143522114122719485966086051603271153772991709342433666889264600084312260587236481415146406160123099085799980856996913901556721667042575291088992766802690931102895190087121597717768252551317477801280366873529162946408799002409139490402068764825732493209020868388755251669458943951321980705850726251255969739845757189132300577732142116569649588837333626482503171670218483066886238257860317175704087179456448384775701824404991692375296706182669961765779660771061682103702422433460632482758997668836977518213035056052323967195558797761269744254267382729677184390921571149646383048909413157136630117491526298282175610902914378691601718241565773677553653231884226655683380175527973005561088206489678574817612747885374385602510301544638635928158164085134510056245598892782965810727394368473206690995522499083275961770974723427076039158558539449804412581516799059098180577284680955262220187376916724561064958533914069497445933213991448817248535561549701591610993556609238374435113952022235592990994801693820737447297481634701183355917453845330828825713214563381477866460565568274430788242187702901710531971053307444621473622321882377247207076898336274246953836603670317515089755841188934587543516218994290036569728044436768515926062126855867779339213931643374762166748123600153554206452550564883794530151851816967491761794566041219309067574755290057527551001774703931463740331622727563548455150717558492954343575730481081334020191330892734794113920516285062416736853707382418732556904427657135843789515805912464970613555434239844940135627892383359791719339050192303618949829316612765264444704227889009532303891548090186058223015758995362624054307531831576453533456812255610011089924725727981693557945326011673726306348185583995522967505994153561081774616095257998620046998657364860585677742365570346142580268630316184973804443898236600822833276496969374251412845174254941697611312983816157539912206024367738190699880077080709034137903286377879523768868096586796335324217907978117871685723713498732606050868510833495918372208602495885734260621520667193138549488303276417788706952173973286264746067379182446241936378712056867200695813569643559489203307444906220608504705280540945696319543134456394400778123706997282182604177286780070612293203933015455487415277938077167163077097400064724251629094673813650669969802152633496418131188435278516583441631111933870706662057674283867953049487163967096755434828551944535497606883611976690449938458033351054745514844587076179261828105418462275509955553896987440506016570038461964182475420608512857117247131522983636544137407584084094224259770518883923855464838447471257168540923701642708997013679905305540616929386287713918854174038312679514631245308742833905594443089268885577327339310494216362793614659862686325551145807661034563643798466767212218293521653029700688009346145484081503679633615734752531860565669560562927717853193419559967915543111666145457018864573697804158117360028512711819852726264472722217263802586555141357106225026488978197121031757797177749667098662335132710655598347810366058791094566185687482371036657140877585403086232956813502685416151248996667799424323425141889775679041494374185939114158034684229487371159147177123005925743978985523989588769724505950026447296437231440411891059596231711882300377090729771929355581038679159927623624924787925058032246132370107843945044514012399167928674714441462050273536388981863395045058980634405187458168368235924693944498512921786759268052281245792272831895140524077583976788210802438766450305954501608431890456621258071806812935579254505024344909559253613959045002741994167408893477852297732490508432676198524372253125523631644799706240648096838135742550158026841259917288397686574533704816999628015272422787518113007317257858329662666399134997123595142784644606326999111976120761894419484112078806160362981881099822283852790037910198328634752728030129761370875138157979632555700697297034242397282911932017629228187060883992267883951861633146828128940801449126296041999830213566345735073326756722019343785350209383794584922309476788534795007429681458307125703683209955508837791323334161020628360553868768292913215340027887466182758254107733779929075351072041795417202326203424669321688111544015479926885739971735141212062786918967486780391985561853729045338907830826173460089375962041391769816404300705808123993773964994071248447534129142320028771835187473438714207247709842477984372067683820985326557466454079568765829060514278915011443237555011615873889133999733468532034255859325708378538472452527983607463158165419221848371204222983886390829684500180313044356850849917894256939859931802618446815544374511726831587555986908530419600887954765867828739429997062589341843489585058581232134475644892951947547020876759316292215996451993093876613736770362724278887589733054686744839244441874927408858080991867830064412373566617199071491901492856325271221895984634783477842257566715199661708825263577617665760305873574103733561857590187556216210694972507870986842451320033958472547896099979828420842601413403136204628331726701185937851884317689139860147751902498101815992197188695729328054384384962324660051706843676915648486776828928770696174009830666948723519636398395961473596574807642771853752508445304875819898126754607560590252415281003559285895616357069324788847814226426332097128446160484047151549572423301257090606225124018314365807284450068412406099147721627557745270225353772289166040267352426916021395978685641326920961190867062287924357764089565463520555215641477394922185213279400350164043042705312117376302386787497715077278633405949617823308354865661805903756423069136502813811186083977436167592563075788032171949780595294423818959480761505722268925004624506433486382928534220150379871523929930635592122158217356913882891524114065819470120445544874804115320822604250695197713510479067941838793516701845924272007045291238743391538837010852391068208813622558632638832414223632140734220986339340326205350669402077580227780852189697297601533017985579311642610968712014290840015723061077021859384122264039606473476893914205972873214898787917828860729883569833920619654798568208567760337533850933827158351093904446163324113136697410463178517188736364416491333741558378976386191541873851390125949402421677324090703833276048544011568963148749261666986131504443653828261471099371818479392967170660363504523407348472986930641155696881961921521993897232205763572108718210794253980592416118688900868699204022439356146638145278994465002538851075450924128571690984826852156608440435079332181130607614548473152648382797267021880467696857101919144355619342502898827001491797470124008090442210613612230646138430979693293980906558507630387215012968861302499964317329732055913891474269059438632820204254954641224716066220819239008701439372633263202530971524945565009803013850463202549931327880220897217711328575450924181513443511836419297524704978744384491836589523845339559243242002778703812946212251913535540393271696486561566498937862919914378734886350576656318929120846854713354531765932508028693879785783551842831379217724051078774729582757224929863363221712729936326864176270542073739541685950276048479040173937713488598720363162580996956151391970799240446842361383748446914037757319171300462608117036140271919750451676647584294436868432640050127660855144177094370536634360130782611275695808324312085700735036389098363473187473112016705664465983684580496028449968058290206231621035141872830474901849766575092515603658932247902956808515284916059588578001390995806285243132418088786854508402556815511202509764577384204528171638668445357965833448337746386101702981141337425834659763750581891164999861848722691657649230441856537866295816571231661135254065490326279054026868681703715503186127688597462889340568507087507825650143248001636500923227348749207631419585138432995087776306005769571940015957493098591758806489966967738687880173455930459466790884222859904613700708408591444057433497158302151695674786904654381510965089383201361623173282732306887260079589840510068397142582336320244920355714512586210692372147581478212127193891983887626712589893855483268453004177274134356628708651709724332492521960900950392322270935658254968154057686998628659100515280192143304623702914407524357750065160657691098659584995017449977981902132266205140723064186062703573574367772180480151479473960183796330662526797740429426485847849023849312081248390535500331754892032803468142575000878271829939804347452809882191221808453640232198812857275079728020422326889579259736192926474944932379736203475603544018134447249170232080896063226084650619335901349099607845102929602233679861639104777423973208160837026294628162300938207607714290432254026047616292343676427317749578211392948515243141290346666913653234795692056176411744901268142944558144351824620554407642494734350581580469435585900390643966080170341337100345596840754057660420074833291450068167697497744297380680396523113113643253824649667850968060623120297748431684013226564351676168149687732722799443121144729814119750590834188137298647467581829476027347430447400494127215433581358872291041483587364329723889810892425900833251094722816203648239029367435568729806863933134788346229467780503193364499287260640539634164305805274972446583087533861016812206314660150745691194162374427198632466907957942622780950070636389050605359346139147953960985430234544810241333965170288727903385826773847950994760257135546691259465233661126892918450725961367608161591461765560810945409218350941581574419626368864084910026978041524308388038780852631021438837098208988128001257882370849930444705376067236728856938804830479550474656479717304172511016160187373795717105191627143708406040888881314424652313499190333297696377352793378456283775497256733084205646258292326291059347444711024043906505584571234874472674910095536232251090077948170245469989515029765099813837879198039595215681273506584873546532301194807795059676057497369971838061374541334529659742700612349237851352793470103267832734905391527321188050564189995856142826615174525544374608831239771609181428813808148299383090759006061262734812507798531428857901577952232395870900909377641874622086809833320010227228888120244000314458723203608527273960801883379154547257693462795233698033829257559322178500139934224549123717669334343730476566949603226109312428033692303364513451875688981022854468800573708482247686774621480203774789594205634074912625131857550492344114957650551365222021519452224064441124921042343173051567896751026450509342943134153798867549299717244220678773187138975579152920340799819486275942296539082196823410434749442750528783184144886055326833654409984555499017392440679732728082901569551739225553527240844840735901796228490275094467617894968520505162992651537242813373492491940688722116060947409213958784145178692205162744250695880575125772821996687928932064974873747965373458437212638875467565771918609152674793325271157517523039631120477966635591721858324234406613174277564264517060095894843108774377443774914131368957663831921066809135868084068167065537630012101546995699473095712743906650115306188418404123691404850425239422727392774029499367458554620988789561674250955647253461842530279188409542912408839194924216247999845854035361499272967572823772949726149284002226366672172147642435356757015960137335552241084151554998281568936975363470230318007339727111901128259695339336218575606364873891412742112330455870751750992362943774729143319906744989879950344121026712122372009716256950116785216293253862640866270662203274749017646311548941011292408620262821952809439576444039974546594325703911576133674157134916673258273466420119612832210844144707729188051442696217018501867539397356285901290112673162999258666988307306189843370056021247628263089687020579724683208552709748236105753787004088901340116956246030405565818121529091090187151710862953804305403794170133295503877171082857454198679650083893905808307197382902817870603122844951148043392315337546933950593393262888864847985872037724337465636567299754668760799962859550729652225198558696519499128526290950814173248749312013801545642239980909977472283323105459516123096760779287983607985612835787828007322574631595594956976174248599379050653926467332032307821966029161341088795132317563213726361532147316573950694034410216630691841314690248865014703058579632218983707378319601932022499515144570597262958342216022027779639156151225697671278787733278918454780263433982114693136483614151304010920370327208453304387698985707654333360063305660382938744315039070058058705806637085227293833442508711487969311841536388203506452474361446166399436677799109291574225750083095242092213205607483295571278084858495420610986808952262828436502484238416840701649131129367016246645638265529524815229094787498066788156456922832653133365717873484288925036854356052908781625103485703656387474301888196732985714236457236976456591428616708038240895109496780147621810928734232393804527936174552724774133175441004732524494428295145973840610595677433284998822639522849216386716189921227386260785857022146935891724597773787101023341893156386318999477717323294922408910393998940232494566413951647645930306313507099058575509400387835892595338719768836867842238897840798985203685242857255506174890668926100952523593670954387150639958441164420514975237341406834417895701701841304639702376548197617962508565848553674347203792314060129795737587749470743915983254163440738740507681619849274941703493969426470140738361247468500719387253495549191769933478342353634612023963990238051389470855043931088206297929448576839002465295563786373136953890683789679503610710270338272927249767699791337572281776497805281203138933043659556510654559504294109985891905722093375711368069659980561043957374798102513833054308355837312590014492624166255886597576205377287830402261961225438375428895670702814675283070177874008309205074841266303122312670357394044292026762541098413884946094091972908648755594604561367892741992556111093970124068821715212821347565547546463669206320016864962998361019709562941915977526366631817823884603213263012736167040763333496418179119470145331386660172603866104638707863739450248709941007802722113029304390454581451078758537638866214868854560272994942621696658214953891778089340267156057527354940500894303838451563071370032503595529437745933300154885956246074342846934559364728679234224326935421328434381491497490584960617508188712874964516356833345066954343467000966403525816910119225981883883088821036835574942043016009641831371004869623208454683222465405726582395116686873250066454451517840835153694596316312858317525337110042142090281254417957992129445156564791906437114986477668964129117892764879428979076441709260320095257835347028827783575851212286883589588869185003050910317229861339535870269991521406846849031821799890469483455951811173417243936158255678943654338297187884411011723912329966272003245510876813995355748037969731414413764511132838475551984126022423148231882566451691985154224569478959403007505266987386211632918125693701371656044034974524641125019172874321541495663843391427240740509088152347556701708909182407763223236471005968224942129501167650655388072050230642624776015365475252300361525202297371485209040931711466228954868628059727952928131296493727243155971669074159594685904828590708666116450440500103353231244682263843394089068298376691088256210263071996844590578425235886696361004123656971603366069249054584149635684310822719953911857838508186771087750234244910192866157158465581597271461044172332430735815480161935095435357185819781238582448149002043897547719977980010877498809900731870490356783885164902457503123339111961171951231981615298082986057200070745949349160658308097243073853646699065319563990304269699143254356067693728169060679372677395105948997639510454973499007193430252702508961760214253099232836838892755846515591489316867455084406459887354932409410675166597002748886408469927582206570927460781707322801636854553089844199388415706126736327006781882622972285002886012543697170334588502248875860015303077204254739733864226959513563309042253825607044784522893771026937587042656105059606888759857355205888361362676299897885996260623638110426092326550714925658214265675489538383391550437706347215858976462534887494870353039850506347936981285205681848503779469795680406336388059100991809931226813680217937483330214455106384273942432843283099394975193646823281944724275855652155688195208094091238187057245147544305152279032777948739658109985928533787195465088523341592112506678715674161684103592392667440856647143905206220842225316425487718400266963050733188156356059932252155907596401992196005220549839330810437003252195482904857731852051808206746143928200233437016729904801537290669220761367839970984553868647235640491901666973457924525263843264716380268167050176825446227034543711838657595446396171788272549322490868066246673596180711883333048004003404598788420819357180124557201601332854379137716783310734955850738619162939527716278928301291513640409814603336556502091777006212474107155913847067227077546547748942350167935551329429916602582411210240731625348924722651657903870084731585438476893332029028650488911447555258338268589650777232188094690646426451795694527364128731124633183065998019678381504388245842442083627229947777042555529882275543431988037764850157056829618759406408859207254086084438515909568016119995497657036251039512630889720945958366212377816751209228720239346563853235909736563839277851668018331518807235634304464467112479853777060707212688873131736315899428008078885123638317348300329016468857020350169328340786983984990830209500887147795520086236668850593559146331684698651326354959793203686012264798965850508286563050332850197104276591219239925584783146052547114167099387538514921602385221396471087424826120234538550740301596188957283665764592472620441482387411034854370345750172923806018817335596468005630111917403077130339213504009183917747568112424557035582093978286158340827595036792124209047264687542288413515218063580550973565874824476420929805582520604262528521607064802180417329721598561254352853566132172306565764077139018546884815181826719603991655980072822544833014607160281487031361105592828546742789426121775961054449212292077883672963373776367335489135063569530777508826758461964116542032263581507060815787703244586789756711660747689130802023860773424103497856547058317751407586014731040787899487289546126056894340419045645001672007624893585460363028918727910423958739416118997038385203122139291858005520007322040064883883225183041116900401794272947270850882731896167372304486012155716002618419124214576765950135992552725994281623859082077965581966561524070471796095137387401728711599024351129664658885363971015742660376243014010482761133679861596256737968641880467355332494827083917190233369621426632895339734811344913042626095884985832541889258785227565728910997279984971652534970329376306280134856268365602239803230853472898010578372617184884061523981279967885613529991748641028274385473765111727187610717169502052393914009035786680213006618154687753455470444336029148153064701710454582241900106907143334636079591531518082918250568225769015002282360887491234853859433080782412664913760785902179792524994380264701430239568386286605570212011348617263877771982374112412810984429619625314637941235669482087386642322070559056914274162396663070484825137759175193575642422538628102810995578954830613829065557470417561987272646190195783491972433185227057780148248873801070785286996340552304215455594350363066732028977891691705469619445280633809174687435915327929616038313214986525049207972161116682284736051569563246399138265280290897259398855410269577606247356171699513402686487474810840975908721229378155035183540318942799529773886257447771920764761618803075800302938922751656038953200839972404341639114458142452702480851866034734252876024033198876438187044942554338184392523692383818447818872604374183178517415770214932999134795919943486199799716407811271797661515049777385780546958967735425305639766965008004723654625335737848127869117166212429534525850455229357334033765533944493525880566157423916111201669285077546843387706401586332915480386805123414729950799513412506652732815593231895901943343464950575570167335212593650384065692398612226002965219204461021815195485404503000144009475752510085769688646903339516760015113806876915782890673735907693470565679666212942118011474461668896390793206834736160078486812330994427933214067708859276353173194630325792123286017105291131674200116767799565199713482610992773316966490630983393843687030528440598561240487997861405717077318083360082011734271089450697328043324682164830003128032145155064068277217419555030345311692118519270257519230827107054143021272119247324785744913392592129277203935254897105250910229095709275221119719192651385062933802429485094376457720876511651705225417228401890959853141662143237490641993778521335871914831257949857270692619983383222504702449140916291479003176064938436999400006253563354946934299336016320955298417364876210160290399366818094727722496557718501480006480936093093406916358221811345100953769170788011851240067073892782072741246543276931770057029953920127277817009869415228234020800474030226953335931213873471305141794067061548896767348474254493949178843480946877154497144954337772845755314978858420537693983889033294001263606366793729493630935869850074943202978246603522972135615761896095809206489038251870896218036698363318315356700138534964359238415468370645833911661054901774208336255277145684495631234460565952782750733567249499664401914447514804350859253072971585734804234568822845328366633341035566749168681859018655114726715588933911258328336105054586498656015233055958037357604020802582651983680670501639199990812088587161878807314623381938976288777514557830114201440808255059419807186208822132467421208276969842052149208328531342931942530746235683482018811398540805112294584703644768796649735283410456830260194252187565296162844854166939081370811310600158453653917159295507270876477185012526528514105158332738567042675198185619801135431520014671221522502329163982643368391300854511395880564027710399198783494136986138173252915515217954271628798248679467850151544278968485800581918019921082808699455624358813129674912842946240049791446435369516062624423228731932519799576177404411905288274118457485942260244842598258493692351768015437210389763403924507981295987273375389768945227630928998932664042342466662086477745800315629168419233454306798946078399506463999151428614622578400339480624800517557564423563953149497147405829844500002304248662926238622220521843645215055327481987346650772216434333304748923762982606249452885043327225445848945946827446012809390471021634983781696501111013804611329940242117783566836002627204754236512726217012473678162487255315255955741058028011683909855964185968959305529416657944295202577638788886846005349481998589726736765228646770411406254558791669545413726807029571873336958495737573746747942051864390330335985457442606772316609537030313582894511615671890829713833700459384840912724188492592554171536855143959496999412722123897258652327188408025502330845113650654946009682747661688008362816425114931696202565821367744147713861439197983705300497874696040640245273954569096482448030675942274606743183683044310087211421431850424389979003280551969571306716952554980441539139709517840062433072922260416843093954425464693148362123659209935706766257650950754601469126564971116279371786823554297676578729641446465088380897132019381445757253154070926228053871165098198099984260016302321308395119788391926150223791431542100710593472529315222700994318969418821550789575605765218446364730376590207792548661411000301575209479487772067447242675988072003619741441476095110626306835553298464966317218549515826767734283448860923610281225845820718813023543015003627600393472210303580003875701479184686699433346366863303035593655192432805611146478001615817980051524578280282567906792723927770274850592188535945980551436281624459157042778906661457814893915394795879254112024854713602710726299514738157662775229933728920782518026611995927844334751597792555334403845021398481298175847237102113606625707956095294017221987650556458377877936120777564969855467457882268709162183280654502134344296774769704807302451360618354681324242549914474469565707399352476597636576094619173788022587547300761385856761245818872464973174175450785223498800362968290139353252191320831955975504319905928351943700157426794361936274849293514917070711811622279896345930069339767974855953734520129726120968733176486060755320009536576374353267422092274915097618437228339827588852649167854154234483552151325932789442287175776822587938066990114360477533704369599399694598497657907614640361391253945364673400459821167858691816872120977270638075013263597808014523691255142891446581637945609411886969708285000519048715976160714066516527066699010163401791069915109334893304739710731987039500154847371830407498924051718012853034373936346121014671268604583539929094642625824029617414234111064300537829333292852916579531097547748243882259171241240522510170825029272188903325505229032176183356476299086978282722506942684970167467544985613895688990267422840320718608723908873941911086175986392638014215206359202234546562441019141679430485435184633850688545293898969195789741584319189870315397135775465572743175910861359023586340094878626761693680729073911761118628907786200139053042769563000454360841880858907608623622112978890852287400630692262880612049254376303512379937821809541273642581363213844227318075526428053276425470987977017352199985575664625602316102235180029120856137030597481406585213073838450962091971207400406033749173898419930678415746213915028971419944569450004267073847618582539072426719615275445083678417906966432850595467016313377261719624146757932813097361833709200403350431768787030328914847068376139434548217710032179953038157718564512013376148101197998994055112287278985930808854682855006353059498376983150404809444577892694660963806051419104370088189884640076817972667371500091531534477644597776836015683727060709346487832005070568362150087256898536468499303214148770737376180428860403217582501983956895337242418680479346788987956276519690231994917865525405060169330060037955540832462034692810895565975882692076029098571489881799644711964552229172239246280005875442561483742384497515382102026727057513781068245790135632809035348236534523860856942059269543272048064574398238223660564618343986680355798651909061948178778258004067742935574273766561023807933950166835230040526192876498578007188185951361872527829478891339878301091965959108888777006587014788882603661425509285709204186486754637820375528172387403232283096486537632613155839176955315096999241872327073339908656296937750024483095772288038368935505155178068351879086848694509379614161874817390866648922683688530756272857048989502550382212074795191457605124705281451442181872037031621670440323670482092282884771099367822704403893016598826405179391531777639013155770350510949444305540324076503411401773100125704306326799392193089961806774557198461632123223346596610062589631822407343037655786007813423839223755309847848506798734968497963464296502245503978100623950434660146713946721449306452754213255686602446466097137992783811897157460252884738909026122288687306878138555755211374942320723402756189712658820244176459450819981344567858158427127443489838207220930220025639775284558442914195035866368645432099460882326949074266033072136140780529048634975246957489817392851703078545239511017943114196079067094644705789482801572724046222066082294182833494825889823200158158810279983869102337955463566896027052283017203653617621963308398133128722575531173253051264514459671240406913911942197080478158364366804188964759644071684787044281750566810168988708229279374010261982536826159393004104488796790183160639116829716086956105381528938041551060160332694133115711762723889518127366632930643292034586597579533192064066646859380360697675833699509610172529561021196174645331686096730111825495795149779439870548121900753044767678747036277294724219066927016003375948847617891293653377680968685095324838828186264522040224610723421672869575524931218701933751401629083766892895474757589707603297171582571765916897632951968333840847420262586389426691987467613010272363047157743715808239784715344241269385940991472681313287803686108582741025919995799052980122141720341585947243625745909847621378968651473355175172081409146002794088916453069312063326658689333959669041971623824875547370766810593940818297472614127621347054039971975464700505908431174391869430451470043664653135122655324569583986362159798709858257190579692092221575590946104973108802464731890718689614463542393778391506998521880395945357883813344120084180171279713273498720593541203638744484130684914370944767902241473503107622115387263490387660950381605306263500007054522019266984139661387192068323084431992775182369981637888472197994351135038542423665882797991692114944628371769966228364139614800280902724381386855150272243353506113179057028146493007048630015030437073109277098757642689842487199927432613780590607918743631040956700454019840983281460247994600505715349584363675848510756479906204990063832349470532876656131991696766603205511817981882545970048190553486379573523040282221459451686769771922453584223063770898269052111957076706292004389630797742107111101867149688186988222359321239717296893460645704566350734858819424556650867451205262099157697560223050210005205308304637591005503617765970569579642072794491845549960468918064423149368131637801768147974444254914789804956280238666217516543478975630260300141967128914389451077985889337632324902499619406733274155069512440795591232537832958592639067727964488373280926644905993495956229461335278862299482487786418981644342949012265318678894933744122941888041615104322446044815423509785582903518231276471892561610324095070624805163451398575049472147830645680487914318364684596726157211228682393010355051799808528070520595660012295132810600300246299613453802207908454168347111331167138763324228213336672260348591535757994564333177290625218155076469251685144561295484004930014063364347635823384639428938995652757169245587446680864109252342393517095570646041988255725418704211814061024899709145527814924655531444362541911401667536464005086385055922410555582916532740182994844530810364423877892117342663555582301986542493532772197477842606840506213292644264419062822663584375329570640552874726260945763535601414051003211897842005061484265856028552953124340172950638542201261295593142596703120855081831442834969242133503457689511149989851016281977394633944989055158062379668835459767544261977165694288533587104796199117355234462624168976450721344497441292576983592805244623284500615752140818207287043391759055470535318825162865830081578287793303312975052200528251671269929460481526760117362373160280429657965779319239804418318548823258431450468684600208474067838047892047340301778556248894184656117802720964745370687782925970326329426590235465340910672936869903901217672568929454711264600280364084451586269377051215595518639801089239066278119370402641331501027240343587254194858494976271995978242655975614723634449144339512271509468229959145816703373221880660599304967031882115396940917694390727751396718336748694089368084129625158734050624671818216168237653698250369152637570597089436191517285996070230882359877515624370007014782033931356802460929113465737978990976866547536284380965391260496082136658316871349611085045895305575412239775067721429988654020336656508193354418396287547249661496487481937058070484220250535374104498587100423181939838398149306744205180535122552760758520597519150186606680211358984204854533751106827529546846637988519637346628063920236294408482368518441141664635458112955533591170760983563393734356101779267382683572165182479629657325534564082657866096647355401557306291407162220782299098099911926539648843468793860190039627867995074813669136353459326140388733345952760430298946218538637079638665260710231802657110564249066064832706303326583885440514894017509704945145251038639120804428198244037192642101356544756483723203305309577057789069642239127872224749519930085364029842396705885288411689450904654129986700580496289700132519820099007109151995034884724032250725185541858570024629839890820313720498364626438616352427813550161788634314651016994636697879134900508682687287075823928815362380906506170785095166528040805446853490595926325206566780440450134292982584678656975250662807857326929746524870140672639338149551642115641576482196736192039652425760251930779512386110211304729286387318846155120623575581786700298870207579259562430835048987634077928377028037889107660834877899871347876377332090671592091108521212013368267850639889108951273971315522129709327799011367469865126243952275829066979858099640913361741446940004786759797019591815379769883382903109394551043259601003557218604374677999188975998629681807181543781946786054174613741470124393493644171489997703020261731429395110377650146347897278564147687029725113392123289145509879578793097077361777659708629109789988416976568153625914936818498519803658960294659453464532459834459045176208948606078652095375092723429268577313707557385984426324127706360679133009384423747061346899535102021767687658138493741204563107747399976872237379152578804154177555395851643387704943724369653927532556898089583519695900623010261193015899942103042628754669926148565810083218556071570774731986871843222815873385748845672893597734398117453882857430928767814846312629297728817032892339073806858402002724013093019967712767645792800561981887748022677684601273978783023602499324270212118177445189281195514606559981214447839808267822752857516120865273957790287182141768444996162277470667345989157443090679815390183253331510901314603027656257810697792494756338753194241653418161092972773867320355859737462410333460351353489880430552723580425619946899115075864271062200780067331440508112371790047981695114173953381494981217340507751169928030946449190856263347106421528379975230851673897978710684811658881489833017908012847691265004698705262006043142263330952855186426407434944929361809267819269602443772525853140045699051588551375268533802847633899812979587101951335057283642901529923417338422627815601119212704155895839232544695931040196791989901630293915897470199584415962752372834863961634113899664902840832932455279111826818378181270051519774290674255661930804639361258698519236586623073073065602864300370604843940860545780245592314849938545612896071932467912879970074305614177305162629136333966705264552060986102172010469115065760666065968482847913100360597515591898597683907740422463364993706002857630785068817104311786934533909998570466777354150888948373201258111125804891352083412991189116806744370451808184595552037336019519780044451167284149143534776091221272517144993722134066040081624379872432038019542750855795264330945239821228992035236514635207100646852544173766465704429276949686130633077252037879968444528497011230042478292365032858762236648478808817910171522197979478554973946503079670253267974304972230485611406067415336868056328902841338909308091128894103052870655972361155873544179177543574316209043634405433261597570096784382010290058837742588030407530689854411970706293445765512336450778322579465465021769751364438289956555035474769791883706440764359003648426849154273218417164772862000249239656337015642124251110275902992140611857930737236788910461274176187830564930992114519910263113051681502082266000932632303975925247544165341457460238768363556878852652070630676370973448914785102418363666908846106399805692968923801648980489914437229528231371020538122907166118306382714842421128840671941834481197902314965123836309965600163066255024877427618226394178412216857029766117200703267788679964029413808863163902131651395821516452278785078115744967514084680418894438473791673930336805976897323198903921680135387625774194853916351015104637604913641772849143667278153104565889167599757401873392134079956249381852564198577004938260138956309652811737388409271102840280225992660752117575766114874537212276223154588487942063104512913553785312752555206114909724120059767293077983574657470806836927830482679681629012776244454764711895588048971782611765965626671311110713413091244413478536061730771135383621361710714146494802561760469453755508351320302952188503649210934908739333714540064217783443808361262094178066056262119127176808202820173222119353656980507284791902235179181748616275839365825800855109723876739707340924423202916760456429400577842450225181748087510192070682224668336970459657144657334459555256982177614062861546726128006327372381495260465316392698218761259207522968386219503350580802478068397645337815270527828988503248260203347734519773984862120459285458148943869734501942845044694115023656008935892614093718520822693798425973655709084295391481149238990736050415525794261877176255837937514239819802093437939709441426149605274956610896251585655351911583685417958931257444752196463142336488455886986195457080212928846148507539302548895315752813802130852152247878394450510223654513888350302879512159756900968653229889085113591947586088188402686973133632410294951310610706159311868763072114567827965349719818011606662370396254816193056852539623292150876728457589556233213160516786804465653417748698850907207140567252198602303250788836673030811533336450409904963623979990928471909475289133865300768776302312591374085337725777777550271492707993968824173788855327598192114786878068232781858705476379593337149007453123151208171006630669179236023921852638347406213448501731321817925800707262317385232320405241019081600703591269156741822609531435897968977849210337641269900131044687480915388884015011218595542939559301300330004745387081436409609460221244820835688913166523895639629309262839416498979416588360592384520290073334475253446309965831175414966203616059924168776856654625152966612760078070044802246406476435939814930486126174242674272457111472806725037337268933052365384751776825150703783304661135257177972790172346032944520046923428131138954359639318025548330794315787638841847088933492785094278205937963518169628775655458942473968125926486151288873227810241536704288582498701042804556714660600086089362634064514429325643217424323656824865086694410190834156434232333563500775482159913759650592147848965496167850304219051676996003834294271204191371552647976590544518529644127184078328172006198716879642830114598241182952291758851514782269935086158108564916605732985015983944503415256094867708742592787674942917881431475710246385749805318473578058318724207684225869996834567978285637566492702010539711632692535373844529752842344262326832723975198028739767940110082018103455545902015837638188637748282091679061233784352270809178437412561850664088881495980879570147381832558994255823748690892881048888016987170218837226208789623933151031723067142493706445793220366356025304938906810231883330286584246636632548819966530539281135475949954835408332996445870366118520270174681641721006754283440319875641041339267609649891177435833792862334218453116119990222204593667486229128591818969775539409634793640841451975445949009574189807139304735922961247424415110109658074537038721833449026856694167315469840740658788254671134177915064019744479875770188405754363161137924404596352518743497786623659565931883153900763490855120444582955529281689646744660804655444372220363226776122897020339901972719567548867985958816640658848107354779800027273750050555842234564638466964356215067667546563036741445245985179476249819393594864130118534052082095335210747383757023133600297086103501769857153511345298872087703736376650354177662802212955212669935735948954528411828978958813672945739663944192695153205374319817055588286944614640082021409367665579127007140624622917580696933582296634382868081073384173699244720692824905678831713236200425277753291200624966161334531994547577354268495518484415776456343860139830819184440567271469324300735962299315115591551503999761278951458411385985128003429818778326202517971774584027195515967614642228901441969737417869673987068784541886495502777862134670346610732719745400293405126963863848343941204444315010087797511901854178802218960090266492776643156667639319852181721943193059427684773208340023988054723614216258026692336848920599423828354042802132424650667152165673100270713535852461051290244110307474722118054779608149667281071752204854173489232060255105945056407525485761345696769344870739591077638946982769648038841317384495270473623573328133115258242448992696772986827239000307920242938396014605111572994354208191711375293595211914487522593226004258337788267718278937376928320249512722360678615121676524798967053923092116230426579262506574385653852160627940384567499420290887220561011291062065490890974545608525921200091294591337995580241279861032958924970872786798281935527959173559471093378991728872965886190480121073674550877504875525734205654950493226892329332052534290447815797694181748894628505642024763506011493861026822281402674545255212179335577281300426347780476328014515066072828418758953909854514575815730287651578163340613812098689050863578220476538748511774182402607910574763897520693225408678639359244922607192532231677461297603797783946406768536303958947267235658599991871941593891529766799444783952038432586790161350248005430719139456698001145244426828490065731004040889563622368520562007703710347047276281227688047541378455109990915370218937116880861855633417834629760818791418308151353090495004314456156335438754349298743664877576672384481697797005679258618803097498251592155483756878333397980517459456449604196578768583274732425020348384873036989844485831067076904131288675206772010158309962396105694689874534892408576230592610936531995647681824488174259845728155896424020142317098378864204662574005270368762834986638326935887854868168226731676453721007638575996115946530799645440633551796545676106486773555605068807183552062410849932397540671064931282368589543704950132340360667651359440511116954355081240840851667124628484994638692008566227787657504225853458003617939571466204464259245176312647088281852965660796192115577080075207126564529115158667655123665846111227082304272111753427929788247306745807476549873413147898601322658995976270013120992868216979251264694180005839355064335685045795837356090852214178898460923345624164436759580421948589953382099568055681467897194616379626912495142103958150504705865977750449614135079288004939699842792676035854832381767953479986235090897104921942303219231911027718914256300873115072575834309588793750300216646909059674179240808157128483554587026869217352899714523170073637090916438396705781998070039288353947225272942855139133134886802710341248457615563078724296037152582640426424958598581907561548999923306239531978712595782933922523825113137828856096512724418523606310478188911725074596013228536714782913386134750384641624031014096243560251534618603697051362479442636955242878456272234598214726272795149096031637407034172873840954735345027876453070252281131907803442552716723224780445887123128478562497100427914101321112479864587386429996169117053219365126512410926057226754311442997153882212821881046203127550105057937793575797806477064559372328314000803338472506405196597654736840375716023376091284472502719353860359679952353283851268867498276630943657296548080132151030882330595613351457885916047667756028217144958253563761895462584806266663909474508976705249534348871880712747753512454817891009565955431460250023615819205713261373736807613518637625223045086242437864570303997983258403885791022048521299308228848307606872078892602299861678986374333027354772969159560220533784187015080284812772637833871874810826473134509767762634226884745777008599362851728686454351584008310276656252693677270612942986702413330787237630996239979170671129718712234282983713391840985867897917702593357573330922692834120551428771546871316413945771938814790494386760563838561959025107209576664403110415946706550590774338258552125125697538119547116000780588755837296976487194754062726535812621314589538707818123052178024543818159015367641297468938896051514821822955846181550878845500213118827433725174114928081783111892648059296021655418388224283683272904885713018945594705328424583423477499124745004053410544627272526103203166730319204787183210683189457903833000075884139959582051174334569176172384936182887640598995433357448816615873280657357374351289633454213250647023029158154376646235743731474233881609787426122585677480841276248957258544484531534674888674212766615205570681583924244162890545978873137824033353618446226495906501744209574602419041170874788844223143339383888892578430983395351217125507646027042524037123717095126208851239002679221339632311095543458198521474773327109616406467195910720815504771628505238584042567163366500706026038781442761344671114089329282249943375365809742000696900515024103397845389920256360682046263576992267138454247965454281966227073161296281664490735595179114012303262205719582960867686530950117375976830554618306157218444402780273308168759041610070201999654387560784270207400293943590908739974371268194476851721718617864794251509957336290897839273849171205738501898097782578113227699700835085175129467355062515233814617067840371226219224734431466100696274488940417160088529809886777035503672201920325437098530424074664872345980253303952832101612265378582678515107277055108844816255563703992198941146259233025491362791169253621372885390141697715511531011991571767595405965343756794267327144987163837340075300707919730129871872691970850406345282185735163718674452510851471290923989997166075107026328709578920945099567462983405751245597578001263262056088297481967055853543136246252074324312533041736354718544457954979452180823321055117441529055319520975098228325745985457402700824537130074620911457496899045995660293965588514588349582506803774530641473708332977474280007571236051311289235169767653191123590890609801947226258582129765490802292610102898380853233229398616545079098704878037071839135977509265567961614580717071008076063830135193400646168212735476566423463478343717873231672491183102283535102420121097266415593981355229588739929077348603032726210742233569389697401943251419699907465429923503141208408551507862928790261044060329673758903836591940307320547087956551957730918787644633994942346558639315720565011400942199640597017244792019094926848895659292085060519333794694994285447721983159496915355113277494754027424559592581079494241143950529554755472830453090586743532194607981742409321785636827140832079497276792963392195240192908018794098725031878900896725559842737624816280000229507384920091347725825700343428583880874615908447304319196638678566373144500142564294998910648533548208991314939436086691923784493877811478934904486400237040807457327756381752963371713961697419980052269502850562015904009000417282563517886397149622139001595620925228040963732030062955267571578728252052801260475060340396608469994390166848919184358321706437243520707371496487191941058604108830900394855427431676986270548146206003098176164547450921085289027044368643620292021542333807132913522625242282795064013771842748774236449956247316734751747902564476383185245575243831202538300244092859085800627065361322288373331982772823135031393153924526110520480415320103561541924529879159459677358061117392459030066121899888463343989063505263207919746708591475669307179204304836812703380561173120053402348914711023879394506117522035637826003306291563606035141632310203115058588262627513173679568159320076189575717762604401408080260657574281707643706436280594536343387609658106486299238668228597782785016295048382699196322728007455008861981449521579389412842058118799168079863822626339709085989620252367694428755754080404307391998675270514117959788515424459307705445701926836867803506743657713244115352067673093889971915574099818452514790267087902445741196784999830260110308446055347813843027635609731160240615948353155072275391206891141758563619292591759568172078650353858542971964057000473995747066011416933956207555520470180598193144089252408303269201646244916784855038644504021520353956474337843528805080246349274336575208713956451559728195653388305726741351383638619787020119242374090625623156172648818307869230380702075719367835493830705990005445713795899976446806060589282827363363677177975590383540526068893108088235799040032729485480059274963608434189849792229822871114526444048246285399785223711048706316599048967936086531410147486884757472970976592469005505060249322307602779593309173162714195834391244892961559402126949096047408012782082060472896723431467449719064844393440055978870546678705964280842660375825594223305915469380304994865187520556245990417379251201974661383030244561444225054558216341998911804642336490280035725766451704284838257501136014804429475166205371492912572385380580523861765141244745508125545620200134126331603008803273139559053983163717467151884623413594058879465919923385468312913697640496349896505754550733799448228594121974496290454723154438054901601144689385016171209607185057957016803205717764172147096330749392638063279779958849483910841047020337347788793227828588797142514153556616539774244359324657079522800008418811935884363158641874353631518809015000582337815106200589718606134684343929110694048403528268471265217550711591590550531975325970698231328289493646860821314040226480872513219001437037175543738737315724009872208900138096780272181253723646102661627942183688097803490515129444387227184282074996239362978410751733409323148180982916680294780868969249191029912081055609474543321636611926145277377809765011763615229705661090717993849959513179648718490213466939910472779773346209304417325658222029968000724076247403004516028568063567879489361340480100904951493544789263117820685560017344780924564196297757550464108839824745696788940565792845250243911343951353025221407287100418057709198270060970598485058711073846572994701699211613138534383443766754593514009478149683624480373204892845185616331973790150606169900905198300036157565141472024929694533945839214186626644696170964322078330108392757987940745696815421563212600690379187593061324278096721100235164598485489415961236574554473392683132941367513895601532337341889426350265161928445686129486526589658774023833164939505784553914427405703611112581168981165255727730242028388088784494996393256164776626085151791950057181019144270325832610608907893638521400069991220192325553814883381639056402309944153901392975150654569294325452947943065290539036330792846233265972002037771104020324216292873602210943524096555221151878363810168250745511878299303930917119660967107117913444278165245852910893912983685593168846279901964211260519717489534817511020231143825428109353472851950210138008551912938015743437779266726468116272047780417277280329523224368070706985711043258943393123560925868583668704107384387931925246180647049608224723974599426145111987796638457814323653235680519457264670076061770106997868132147458006935616640394265370200244192597926251281716067242557533188175860901641400456030554045398379616220821828416858116901589498952104496838212432721113239044068591186886854936000384762816934374380123256859103999236038179716875418910399876821569565013283472777412768484640206494060928059583060150052046457043383581663078216243807133199200216924802549495695533699472333201913409457073410505521905322598810770978877153640431830525394056933328756639905463534429388039448859278943200109946852190726834374325216851553619616159064087134688857429842653660322241507726694430075878280536487874481243758275668866913271053076091170858574305359331979699612554582150526835064301530887061456708700420415655032755067588369683120074047944958573157584991342897184427102255648700914682443784482644260992281969369881899158032539589250991197706542013240033568441704659072953851314225109089478669874776361150546238840020156771417867760504867951129358851044016558727139511267932060678309572217956993685891142651294206607985736316685593369174438195425615416024981291139545139833956156122023543669453024907096391758413580161745544773151893405909315961433552838524824987715276164342375023880593522785894493287539024881912652855848588384881737513404445529900061514859035090491420768829720450334979887188821136117711785371638538704396691543356645738372594879333598786209118099259995561496776797191636833654143363471243276884010186603304721928009053489650790147341276741509330534626494365428744232058818791593576793896130615788527062865909814785605799041363300500639997044053057507442406754545193160859641514129498802206437913538979977546827493938714390632833857470807593798424352474685353509308028443518552806964377276736537162002156031887735206224255731535331606633525679873899668599891821854476816415028832169546771512319862842720214371419308146117421106312124016426225176001148075052910248114592220970860328100650583121147237173779442825283100911786593443240128875677979550800849997977372660393134212412913879618124089749738911479931288132753201534583708055614634819746734456648225566097005098817286325099362675063408658491996756924529854264494697725887482788359897491067862897735839549580859392124854839906351219774254591147226662487024421522928562827503850612511808368814786403762029905152820717216562339379159510785077578022102681896022090436989655893733180029814618983890432473036771953072181298341958503367550540845557684601150176238731836551972704060759833382584778528519064364722148180232718534432213928038549885764570418687751384809120073330160804630226744252907232892899396653236546408747843503964438487240443226717253155493750256280329121643979669217730678416189649549738282157217924367705913523014617512637913778563252428399329830815118667899988142461503858326886862087978040232320240976153827511801642330373184781141176050344794209219156036703714627333734756447005330879572584127588946445986900893945021509700861964872163703258578936289684069612595124472128899622987682922442095782307024210668815010371611695864503452351208417836759778900558364628139217429466083225952002900182210491359445405338982161902098537630452938605657047295743768233894501888600201068488925924516844827389065939766264712349126614940009873019911525931354343500120291230391028954030222510446199927155370162738906241134606649742275350331179553906274046136995244787260473851741051113805308392632877408045879280801595557205850753207556142931768502123141083920759042206214257845126284855196364561815543276881377894675571271289943900096252188196995383280587389030415025426352192670194726676286424495145094460928407052910696128064894614098011777518774002207112463121304671430161964125822639606175285732926294833538060353942204414776840301324802854729033162673530898067650045228961390257383103991998788897742518762707319427720311059443899490844730664266114189156726432139900833676149576259514459516354312950405229447703636920156868417867615114498245733605281892433767305455003391190694462042938573506648237700097080779922513472419381773814807177901083342538655856940770061266683622174695469487831663998368331087941850105694840332825419370874601175122544204211478522233651265156769962292204738632701681913843231540079961359647515612770771094082703373227122771314708845292333489122506808866277747879554887047583893693335466377021391211099819424358582874982360196065143599965364172613206525114156413422713231205223731298960794163562817221018985584225397126720145133994725924562728511482538972573977921350241327171818552989868741160826836275005472505890136515476544295542646228366274469448092602159078509873679485850341013609570211156916713351139468769809994332513536547879612680051409849627369517904491990932862137101740573814223915042247172816115912053503981091105619899847381985135589609149206069087337435020938686421625171048925106177557077994967275298325101242390837859059694740599203352965060697321934263794352476345399470709901161741931229286672777095629779840503528383047637857422254084209573462190763723879746933657914037770678267152196426334409473075139664125916655548453989931063331142501825333923521214438714162962982320823221226171973157502243224363234244086713251653555784016209091596121505270220792717067544552924606305861255252691834702430105484648507969652749547157346829237615893987918916007797210499036649445327953354351275954347713285712810026873482817181343312497787322692901440829324416144518595095402771931961248190103300850355691130425581316723059609972155480927051908227084274676933575504351231749817324444652226243644410644437929397256228488173110308951476898083313288090572588490499891120437433854203573441174916627909247200209071858812408646024268884270101594422829409847028941481438568169896050673785899971759964735333761188495200409238768565852557619327404889611802186976970030446367967641511894945231877450419851140086184603313466635989621668433532592662985235871550324948368393216528209284179439471774167869322688581771027017600850574969902250055575251813046638198296477769382528005246773092506319566327557377310447323237144116484058464800598134193915136905934501821086901193412821692889837027229235976135553695573767304461997383214016199194175382428921086907656818604517216397695625641427224693501406948549046370736288900937610829456544620447649038486892065871226385379612513358494935805915622496160269477030238996545524136257271343786179539979368732285296459847848471400619291030592439791073673964164593005774865069354035904705208092309110393826997932053443130169796854584241990438987411673467743570968262279750148206674107526880348295284019807432024665006478425375659791102852716773179724900249208859105354550582881582783102329029674994631899666756720713927328502009080548253440211656841749916801050354516524497715063009527615843542872627083405543995844885530993899007308149240328664154359081984638735906653569131111918378140361527307689621596259271180433471369519572840876481502482322947753235520698649465013135713769664438781550199066711129769181796414681256030266774761508961220790702827230364239121335982182191564656094356652846912738185361609255133654544072251463684573219567216652403687133878992869276073143917321204221266182246837180168559277401859897023536009103763861086986903214085912701093049394562736909908051666375440759213024039779744746984343792921398545857788648533940181526004886232550782593580194068934550887011162945909907380450754441235384773455409410208146454969747008273842436277862734077642124305818017395858460473654295635490063686195188553568334364418901343696130048485985490890164035520279033135944027836558025009076113580545762798297618808020418155237121248993174550778356335744751125413223274490834575798631932170074680216602036126743014437294848259667143541192322004481193097497125146916619433417271917736037016240564701402365034960592149689966516533203889365867534340438619105533062599907489874845242129161091882311062224369541085782249227951413141094165817500320105912794100522297818387141134295866164429648059039536669930536114104717078961230858525638586421119800435156923097687097797617147289899132214732651368752648364063543631782623762999796211185899414535428748042527397253601602283154509611570572521526893955707888487754670452511345947530399904457896087235792718645278691411479917081224833467978229152937558451354880999723129120801549106501670165308224958268760723668357858373637503697579072364434868727946165677472637016584793192238632228701176964570331941303139226521591371873676180216606846098949564099431856478394216152372599459682693386099652814419716688327537027298495487844072094480399331337798549431812403343225189698104692961180439834047055257731378436615266660668170863780533994646781713774874431522077018524717961081291527912106165479546614932786107134960831769514258837295781498744587242152741667473907420703310842838601983979765400514172381337635173315592981111641699849582121894236166625157001658877296175993954073331994652593397137085439510369946471974050823164056366961759032867586461954604612680099863823657539168371734441645279707845424723203001906092830720712591197008544334016751813707516475471812122179530009439486703947221393983357971873762529569134985557506560844209789933984175967927759755699628771220081426809609616838369096648469581666917952821866664686971225834649041922574173530291692774262216791815633288496531975799465701136769891802399797740869177953888370199886342078461850924006082483227979554135436944752266642583856049679417883647330928683495701352939495435581814809442757444110055104515750530031413179555894019760457240085724259408881051921788643574072203721361031186396400095829301223255385895579149042627622668979888662445680369848705460578042931068935952279350740353191859587478206373918296943221076874186529186317155128588352377999053172965379496978472871771750809630503267790058769949769398596402131648827689364709264075092530061878252563412322304584262085085614777939722143732700804297673276950174549628586024923590898066796750545904350123689726670900268470946977528991583498243894693485979068052122758958604626472959557143982118433340024678725037313066540628931397502055823419670273889940021674657049711551062193925953291216181666581990279823697750718475386762941618804360344795315089550723902764417704157335774688086685837367194982936608323854428765886534195381128379502823810666360536413958453460169330262973382953448424802812954165606545159103632530009266753544865891676055415952091845473878834101521012101211348680125763312635614023538541969703458052722985938891767273797062677391468609233717127544293863370435537301821532504687320707713329530144775313247746999089640739531511790955434958578238632573974887410734187019527656422688807461779776489376143904994929185896262662898722335181225504569456597412118476917201479179735825138866316205957037728629838203904581831258799277477100113147061202530441718773927579646028318072899797155137815670345865436723806967837383155966328602130521749865827935884280073945761312692570827103667197819213468741857281420151073039215746720372456405073742003266249196963134635578981143752932749883103849836905340055186445603468011487650306400338201152159491055938489967683313072846378341556182758189892798203187517126181851108845372032894984087015226187672668489002712597188536232312399410790995031204156365434671931642227991314377647662602842072181788072759939801525606582876900633077578984858062141684269879555827965656103832971699549509369441998563494280346137570671488884156865179251483365907615619001005738217080256891074345903424331598012610011960713690653505711154604491234741023306554174861550611071454027021464409782247374275499658731475807646836384651125601274798948113796862201474861983704378055964540312747066729938838911324329425151674678890186487114911757698720756850166510215063862184733924205582676781889323299805531400220868243912408151259014587172415809825165225372798490715858341985532592882386744653205061346912510063093140210854964849027556490424497631180081247216148141823657219626851013554017052417790059200840298195354936344515363743735640602693844753453963159815048982995648701563488422745569383773148207349400910468032304336832081170464482372681247512753868648665831941151733582371005776060658706503713019991689718941553977895450936549224862727692099310062059934135581536241229758175840140971932820245307919373579042310288069135696534956516281897578482117114014387804155300531037705941477006857896732785433998941600051216103186231560778431528000160949122541240954916786625559091355182192013394422093552942907993285434664491304231259659117824077680826933618527376974221681896018336616680443924154829747239646722250787385224332857201941978887674368631505552145979898070870939644808661200872734963614149807022881993202397123353795125753099266536252305144388462738247318591939670182525684278500563319471543094807723430675295828070540786446226366035822865646706111292523772470830896799672811949237801408186466636165249622685400698242672147730434362185516077596838305644695171081711977518752517065968098457024320149787215283398127308745860490081536446696917592854306050566420300032150762418726266641412126900761804133498506718158233713730798436565465415967388940598254707307848500201088127154087000275456048152012651989596878154036994872680024756295126491034069622097267192980765204818477241846709236764194601594782804918320544891948232237419330633229085029220945544077892074914678578740356563803989749963926220094995933293847294376748563411664509935558738000002109769445122875574233852577901831940278846928613500033423472245306400531166698363126221481201115632339431656852378171481277455390809548724960403856704057702791869962804883869796278374717887000552387334741552818699114621881601548185194243030322189453729276528136779685970168064382702063422991269267179457485941375952915351950184933581321684646555880851177217250956301413476385351248264116836349911469061490453415026050884818827400163517431679324922950487950389127676106067857670760069624414639830057867704819527557308955565568238408854756670226698245312902374986798975579678579028472893351953899318006853028526115247844320446194359497013150018968863867843253153041937767850685136809789255288138594780276498162192106065917554121810564282398488988433856837139970889261504163333764614007508347877349911266390387684229440441643442314210804834904491892269452598552602815300066358952445809059888752358416622951920470438852924844571525776991320381024388482570110522960560081965465104880506800855205915745625424271972459077566807368922947702350285923821937691631989028428882887853121334358588457774429443719732925220437712349265435123310551671529126891031584106689076131758809481580790950190332543363908087530771688921752217044956150179967300661263822865502802049239186830258868781163159539667576371249852173132461980908079251585032831324215019926408610037522319929658078846849629481174276486497071415486563302474665389824740517319104566816081756724335330019270102891766831177250886774536999600906897868181321320760545726112292086593640948703180927173388678529669291462784950055390405461279545033178583129148269545979127412094978156263325385134323278249310715999286754870849331651104962696756879883891133786765587629174950244322800251567127242961318421691258678276013542794679438258724481194682546369733346540753169747871785143524640838546161396698819638152527819204022152236977784537276526715628809863181165130895820603924985168982251917097959054246895324136532422606280474288924693953414371406301387755640891823577430494738310296707404419819853373237497127944368543157899402048658184634395600403180022721700186582745432207460972382332146373488099336180650228790067776715861481332652916384477344363579621496943515056118465720784263804294922876960730383486290948236270750467125976769412358102712049326834295049939497779302277430894753874445449690355882456118115179746268868370531618895374154160860842776937023481670295580318667572158727962997612616016611759892248859781310404221695044952901411189336313120837829407343639398266449473690825819291127248117326059433429903259879647358960732541090749030149651651681213695920958211924487477397848256449566109604259114717047826338931630172484679093388980410793120166589833078911013888171073959797572224245275741475823138505337504645141888778892139825589253265937712107371940145060421946539234463344165216208351327137395592132409778772088862584127349405774144005431782789283354588824390947370726988799117573996069703735433241249501828095387625581427912027224951887289583385396555921709325215423288416036574101154099064675830481728495593017267286827799792155869251648466251371808135708476169946798183603525601684715927427766334348602671952784448770976083991895917758921965451353887375861658121510276801385789426528424860839707329772310762541340659089961888080541251875985630150617159390469699221475456159046476753203287023160548910277069962928085233186375180081214760770153283635315090508609142268347422843075199806353282977372144428090057686515379754211369172867800236286174961451678909001220020322593633055894249611573666213932387260057380819797305678324950332934273722832890504913863347017163688757117463828289129490797223361881636470703815934835585850625587981706009229474617191693451692153754950347236960714341273240096109324440332039214293598523580829329436168296495981377272505912956852697812001862889694106186060343550764369429693632708762531424225586734687786331229637502851379030279275678144245708708343925701684724041103173176386936323670679508546242510573331457078788086456109272938469634985884139265882760693767427997579546244475869820910282892798493811459039593739655181366230365464429200249443117557320601615902747828101152426686642891081133220005603016539228543128744656341926594863325589740859346514392424001900430560826752038914082947535041570614630535153299285042446908301868856084488117421109280142780712270802417534747618645664947691157972848099166814577973198048600216415403156434433481173969332752445788988223839674719336283740074587878417993972257221594592450605720293199796598172728231839524550084034264696093043039873612001004681302006490751326870472397604639656052624187035313702670992124535765401775457067218486350903608600051950012916911394026671521825414500219402450227922157219699112455215584050973616960823646275109894244667047535323020688882652177058039797728586034833461108858102408748939666321125321718033253618246819700664185246123921187523319966573651475104533057577239335144534332622117874720328791512849715657626476163793850504958623073820109681994885292127285662114962455434939964743714550146405587375993585451598437257332794869462407898194667113909015329998654634394786834467484429462266086226430380304625189472063760414135483097533667054798006433535870039053803549179190793009171623872227021045701214754094955641615949527592489449661220791019633156611595190701848404694423713927966970077875100194750757791407506539548191533125051682809739974040279177608984373783854438715087291131884907335078491400209150537968614041914177688861719627264930571844163805611415543749410887355310504360385847727236384614502698996651999406535894614435106301127042539756411815720920589871898627549755051692300221317830716651816313144041646155811664750175750311795646061464761607577440724097922756958426066170750328502488526793256084868233555556560772725384932050690325514776463308961170563798471202086222111966849749668285520170760349618244020000392981712386091010723685734729731273561638593827476423956919792922527536140619134440278883126794347977599523555766629511706337354893502978120011791248916270617391333995946197735284403298648332213497254430963307967233492963496545326098441146646927392705440343475841518525146036788833574998461638142859082199693814908166591487857286606880342809237775506653797975815916985706623564991770333255018823634570808698193925006647480653791854919060686144606044684895900547001521923698346778981481357820762312213941493218912244721259531221143654668897186175300582616364743872420277723786075224197338393274179032156007430336673764932358025256838715786645805879599224545792124945649407723814699774158612489272814865704036133469689637749059546094107948241049086554666637653907229576032872276057927657804318035598180978082677271936039567468184823535379186319819489800851458070195017454960053011741347922570221986741721293437385247722450284166735577685281465975251831722177992981184269194076610424388429008331526843454415276992866523593027350740451744038908041993608912829176783549722300902080484204459593679402466350418337144710781064319117902378147048667559819991089502856491994946485887269463987905855813132903917952093034096082950506134297794760272676128138603827654982813095967772987685915788053285524238856639500754109052849943694895491030330940101439789947353012568428544718095402043417323950554770813419097272383198833130128045724350050032982047635693175871112236139040192436387940481192676994400865488184462104371610968580536739480419332134553989539733011696432547746343027190610173407735998289778362250198279499757861359625327628703728030507768350495584117400277274078798626332215137441926219353036039489332294056734364205816365781273629429110041641078727465210165798172839983348942324244030549829532639862028344968534211140986537856781589453588032338917051360901886939005606195809709071257417094659488497671620869978853792596624633724029205954189835652011258993864988298723693433705457909489517531548008224574592941853607202231325028185701048299179470375899559734846377161149677473139858566820743356956663515799631399037497411457630502126168522740668979933388802501149960071381070753211875243136042137813892379082415376883087642850441129538061433310612702159278086800308637314955894468189632757940323220508731005208800931595439403669207794415953864523742696121421283945511595225456100517888812656984533888474277304661493740789437076810382345683946442021311187493148590209053553834797113467663721263042317998462708497062375230394888399368372875874093136771654015490707330260619068889491343054092520542007780689745446321583605822468610378607857486713594386288343225646408265408829164064456847169245415042503637062151148565751615534065650789949781182399483296843971739052594966335692875896481029935718439001973766903340672534685600408374902688363445258440221043033359018293927077973106843519894008873146020409537123298405784800895991267322591731759817845909136438096953631992851829624095501026704017608222109891717365179159097571517654331858645238594589342671641135226554944196123119266948311512301975081024637603503730414147035622646612780403813642107931709785185450617732120686833621322564853318759337079711198751003320134832824833340480239686702435593653711109757770419384062393739867691724494682637688301915169178454715160869915775712164783391053308104871416279983686519163628101722611248198777188278495538495851066631925952883886100213929717357994982059042978736220804851985036505457929172341279947298597679003117963913343772210252996305949005964080267763516656361298627564133843627317166376606814117408093377437454584931722424423951022680073689535723040453007579979925547592236314454563143318270891794281010799042375730304544148560301314889242471734987706301153603272648476175452177541429212075643755722775537849873400875747166857649592018420635300287917432370847490601534337957228899269351963230000003757951840569342585298676226767893729540226105998089478379798541119757586245265739378295897480544836480967421457526253790259848459597854742120167078204877196161902682193786237851331858844976408732698503248044616433390907882723469897754740734150103936119401326990409910769199501273419100551258874971166156707646545513507448964884450193726501555532635307955479195703572372124562432937432286296857914167435838923203146727360373358263469938153583739585684486854348691476866156322697074818614681805044979884901925243075236142212040800991055030791102117080529253216650222888019207446223947955615452493144545177934079867880110447952150173823487031303080780259996657336189760485808587116355464296819253083411022992462419592255919668378914649974943721808410100476032167023587132621490928696647202169849793680492410099489454632577979443811619695447648452428491769806922563519386136301446217601180148490237953172661890439363204332045828351386810813384509039773653516807909681127440116537354167257054641085385579152731530874453750515072892372898879388949212633278936556431982824176873013840795256244996479437802264811312307076618314746826312216248788848988863241502144331856684727642233400707443057522206272229140574418317280975450447132276672025151997750398321789995829311038361613175719161636615755245703233255557183972231252839611135027039069102022294910576793446191341924672504508358527776343917916952106408103840730401775391886848310485410064195034906391732378903854452773871352013137704310868155389953500258184656240904092358882672046943330487799212462901062944642056263377614566347396375169512941144251868133436519333520293093178626394675164724539422917367374527470861384990905313582858127903101505907437007260875526019661863753674299262909835327350481170676788277883237398064352201236370897854550575247260716483877734623442671081267431187944214044794467766615066331047285044799338775573081868709053600995275278459852939733151968925352961651853092708591765524947739543347173784853620864791262200176362467823045457873874720814265369007984324281057266464423886486047038538931239683777098979585844005939007072362912755039727944450191856492700449898908306974010594835433217688136470859506066384574213879148829818818352155015167517981544037129335302273545062277741461077998676201932142667562175525696873108071433516037284596164421641032719874902820186948564583438882777470266501979358786653974986547511494833046562428758335819961954307033048067215051053831879282608556236023230850879746312505125974249900620117737948099453155883880423378282216533391234253366753593695413079213660593177096450563773166528829415387806638990589283453541052919331678750638736459673599467803465410880880487345188334993463041591172682779839504560868530695016551286381608113264114208624363596970452421033578149296452584811371359011477515745739790103481403611940965587765035449479930045928728745728800550581310471110398280058516507149332724889065451558991491018219634886949830776366240014960849469719142688851525079579313434480099918675828302272924372017863177135827701142019957588850890461384471470971585721874412472076643517165629160641707633729123888681819248180694037821746156133946380189619168716988984386676589410756275725075989406000909694545373503226970099472820220847427796019745978616674684167408610902453113114895933279049200749201801162742315102094783060946382766011072256045018341444880602321398857466349431566418604457828107079115556890310056899942857130285875118842262883876354632972140892618370787871876812898538758037957536520833618776579095472721046272497880824471508634963640132596312020520726344626406805953050584814170043033087540543746828401802964501418360266801947745107737109664293025975727729403945648050206287694132477573714301374043119312975422181654615531365152025440685028659478894198784167186205537968596625690827634981292596981575214108748150790490275386958016484063948767552552521648015553730912219973462959002455527689329270940230868973680859198514640918228277205986210516749436890740167141129333604873904618711175824555905818593713240054896685450469916208976473570177996574283144732579686694282281461988100485648559029791614859722302223096254538899558087574051376717942605432853129918198332076151919194604495448694981701769371327305005859817781649810366163258693273497389053332116102489187675200880269524832249823149450884520627795770291010225520102290637210554296511394592369807886069292931272624833955962476016368651229650641432133677658398251339464194241687219990056449311453944368572222180632527588588404533916664637485317344414992934880962698964956675139281231402410111112755102497603941605151880399818510676344634285705019439678885325940190279464474976153337962467639773110268866033934204156435967627869196200842093104885277386617049164365224898281573609182748627088228742403615295196213049268801735817253024539967971034311448654554541683437893285325866724923346296296376725480447591800515592222310516025317011641729599616966996815195682485102202957076179142889188674793668738584514294095220790520680934262770034985436638741681359018433668018958532829231047951371280406231590744916678802876173678076358393681915449277467536104577500498240048269150324435531815690259090201228257769704307283551707943652348345143337059266505334496167699031635425397081278440219035348294827638821637144617866404692393716293362960533354276815530588260662814528661799720748026346792802370749878724736345934469759024451367007465287534857042782205727249838945073928543744915239776847777931999919610057493802181267400832802769633881758521742041223441231103573157671416161366138778620167463606919874297626176739120011245686794697389238740901355273725950511115487190077885153342635393301337850275602351542199475989378267483576123261906415366235702003784355067645774908414767597938166956644032534142192324956782648563436872085721744030921152347151321253905112228480903781870222087727610896128628558248641080230705554896994314304725080283055106152382137654157692290038522468314360342500736716302268481727102130524946440772895882331370586958116807783006728222519641694880633348431087404204485081928814150860875308877962817186024062914246872627075396862003012734329530181183906563589761999413771924322595517203263438666806567966663116665582847653988132952446703620287196702180313218557389560829380815580182220664556548774101520451178587375157664701041766396822430445920160456979155586920119030465464780192701382757137756658876267830626057525631377648029852300933614115143383100714648187617712159830052021336286101236880875014070379123353859578279070718545602196966749141165011945914326294035196898707076653571744661661006586225708674779489885960820377031622758771804152315087443092977818172608201767568659521953951721993853998454556129577057920594262677755318285009481516668205841922871077374046791569470970260387134981101720887030903569847397749668103837717763025071556848044442041914869696869775550060468837762735066469856892901297179105311016864280999240615436079300496614717007503598474424885436726784890463725973536666808162865095340142349856340219255601894338717159301112928849584528946478633704882276358862404533145099683246407308533958462939869729869986419539712566684391049271072561127331908073329890592355788544930114779168929219885974451219781065666790955286460614331063169484788583951340525189197093385614159248479948332809421745469624077333120044451625077607791535764894082937651179387953742200727421501899533842830959067418182961907748190939979740362786199040759386370335206084598716070837538614139333418434954061040817217175980549382770832964310326690037794138831870976848765019063422620836096261560553808747890208760062714514646723207055489945555409314048810011814661347625422412512688160836361999214607217048878994096002852983106895784447032057468638937889473194122580930483140040599563272991447593836099127802310054562328416266803133359623063206104064181255760300179856643551178011831075073583264429511196840733532594227720116597226093348139839251107463816819271357900312597583523570140565721473294053647544983169310014296052875384894586403077528394469904007735491624725664061328784575677669369272489106158862330921309438605732553439008044438634065887961298031332506002301152649918338535294102022486346276471171932484346110449132262701685043386885837322834580754302170976687605926066725015183197472209815187160757540807967855768466085576275964394137920073627510232648407638306840455348169468255285641127357255675594089409836293138277482437138642465065502698989745787397570574951197213905729866955202777132554333294697717007741159686903830489558957499918141104191651974963409649822836385836561770538000981220323756148190725435810287198016005978047038243823981621684828719779201800554469273695897086463913052468608247238262866192962011623547366013567083321993834529705500806538428015378541247444308682875546781496138561337284104082707152451723169143196980020793531879476405902335556474574424015765535803603851446693506540798691679562614185100141443162174426482941891146187859463035056370833082600772247408666017958312880412367830685320649236825703160535220334637544082390731074734448508134439811198823395624261670288564738802226793092188631879969250361996292498077636650165689800123219719330773051123039037624803654357467936377341718185064857723000607703935184287629337716340896164872394637445555582049925470970154635664818679999824259905296747185219059040440407277907648060362218478365315135973999774411513021091988866251981024018291705483172598146870361979426048060229891097691527623538424964775483379850673909384529536240141791117674901679346979380010948689856954326385182003426191093149199604916825353120658189926984971476722667645756169677222835028657058587762613087272620307437071776288646760212691451796435282022929344996900044125859385159461760011570619812341693410930422476930693724818378354044597260791962407835770048196717746360060238361719185354328943296225511572555801364621812106044838560186574337265551472054179011253220744268350655003193911747796791850831806931625176253106651199993891577206146533332354612141843639616874296918397897743768057473426241922811686320367491774905482408424489554573181934939678021395507535463216458783103447097397761039110188992619014341392161326663407954339084250444859561087175583172001920646353258592360208477682980176587261152879595988186162092182494656390315838612129341012407700704330337171034761913023391708111366482544311012328034181208324777176245605444336506511359288888207718154727381379351460861387425440379993629189610070669810156771533748045270247989157636685584842530343754440214432301458921225079086355013178403523204509736000571643485289006438710560952715794294245438063365196919769086557553104007561326904861376570857272340132937082546626281294407454962081080119678118270058745854148959166978645657039886854280913760766326591997695506716441802502770823256948233720542520581754052352312610641817481705423037481670459763628953338124283909868227787637010800974762417390017405624706323558875976985814790340409107856061432747555416483994284123056747955422286985689514546763792440615229817485616879883070236854788544508208162355791043863134849385997025986281500289567973724572754555789793938032517069510799254100331690281820072615655121893200999609497974557940121450236622595234993253729098861190002929368142321281594441856766544677618484328041905308145337456854947456045368022000800167925456943179104107710338995517355789510075413731663662629021398260581955894187800128749248292553699268963354065606218069749421370991369965716227282192705599136083559334023637427644667919107704172617775725462583417987990395605128293744225275275507419715932745596649124017188011343857867378458640085843360844736645945176295140495050507811693893156169798536459038046837712263963483782759992607326972448412337538204899059447546327331061588548733867896779351785334449746698329252992687842422144767603706008579740378346596028510904315169373621411270013613989009781099064627463502506598592754909593219231902069201289594943131020823771350677929130746356185764920091167314948101371270007488149607859105167261744076691590449547901765644425105011914128415538565792262013647039575988673091112546652300889363176876367712533229112075588780335314346791882672639488904893764958512441534303979277025761194514323393898957261478307220258249415893874807056142329688134867967157595732130907659485164408447778464401797282391602345512593424092634636345745703663630625558018231139654449327286430334973294862777074596652342460611352194670426224572976702102690921360327540143561157563865314714978921059735649876115413531996882524485608351197895102934829727787625597321955855455297386021234682068356948808730330740354355998860221803678556729265356114578707462245966396160663368385614788581059173273986913596326710225625470424915548079504041431979589758262459964687619058977757137794304719045619894405391634697074287163215668100320229597355080180307680345923059743622984681594098548948697052734914759673169704677390653608905541674585623194135972131758188285152044829775047503072663330283833992278573266223367795403450118951364751794315809421483269890008969530923764383806791117682713594776168369803799604520640117321213902307598289410977743287525400771737389463277000758533308524958781276672548472718530755843788475228744664652818524770289818356088268284750046798817838933088211670690060446493038374924200597536086320407998231219191595436853690522016920475826796447633750336652310315049861602562628472664462328994212500815758837773215188920761527541369748036072424467333286800945090174897594751671836197575479272017379634079655409680779447502222152980843339296102357746370048850254797771434776471202239432386253640168485475177575772663172844854817334075565857816718453711158059415792478842740238235393344790195583273670298449365706298067939319441744177698108980389824443531083732917503517552051091358848453921467596133075557175889624463322797950757421610605137694632366783528257394373636462202407147803027874965050955249021424018788425242970109756262583496785647494436561067301220384570257504019350379949494042753628512995789999167034703133657577423127775555709214330226075108718558566918416238062754369845344602565438322135377477596529327534899662186948240083733821274990027439940712005718135839269217979115482359215123086365706649461962720608980276468134995508454436888391604289256789946289917752052714462699283988778355461148465625029242850631406178535358053594267029707778838350328827560149689518131499276365576594417432929444577594200527870491240322065165792381649976632641978998360790726764766313823897995318981834728369353046708951977951133711562497803702396789755940870573129585498236583564430979281013098270154768640007188703340630215394102691920699316162435238799155868297675749242475830161376648058837768766376771038630287519252804300317822995665011070322500477407554173783434984392444841474018280375375695290603714358426231892573406298762521479647806436334460974989795761885345196082207904842496055722983991596808085093885658443249708686256830499995869040515944381049771214923027645764005820556257473508268519156583098101019425982939941270609040247573707899185410065649143534596384243655595712663963266903153091749000212878436711923671735348418762133061766308312068010989679182328957376765667789711017677344106318783983649291063252877758424595551668898853905990047936979178896634507901140565031539152011752681976287172301631300638343328981698915667021682205026035880677345572777939928369570953321025999751918736515858741698648375222941323425984182257789133838574474642390790698532858114701009520519691008789060307279286463706794392419283980572657799427448687664292351394353316327261757677795607582539846243790720902573754960020959859073918133167365163008263752067496797619871303652125952045575938303138502687131475868466691242666625506989356815438756690477721202134609540791868173783405167718951377777872176067337654554170731467243726452840784974860966353402345685599891082255601528686509482001620092903397711118903736458181067902928245294113550740428377240429758368650885641781838886528286495068477222990519741105722482761891070125800602716214593029053302714724470145530171909293170285178093602912627698291219193256631708968629687807742167598826421956719487538903021982053117418084447889320988448958038067633004267583634671138679712858199581599352742224924497662242394624388024981484303617508166346976989181612039351753291723099135036127285150939107878158182165719596209321722805292148976577372360649517805277807758219769556102219428342544427171982238288697777389339832488582752620532537459853250585850229879841322172343736105354430719064460324386596767197692579540946027716319159749736342232262957683453513604648571503423720795131458997460259780636175775671764953195113163109052690974906920576365060325018639963798242212088736284960853600409284925730925815488006952507506423278596237000028237932474114565520504552327814860918908629900045475458182696289033966667792145816845700584623276097418814347485072465482881269127247654398444158739384674575396813262571106318080108698993105682124456554390870511425723087956572423938504550048777060299881292051157948325285147798491167754014946233469227384226281228731345275524888988897719002780596358492431422073188877673519383766637466326164237534980405530691838936899609263271903546279148460209235032778302333853978909869795016208770049150213489854126978765839922781956186182028876857584931795463386735575175552564113012379947652931523638367358866350722413360074245039146711329993377396566757712927094207192847236419294080364949252901839317839324758043606585747494700577217658720386502777574742156499627323521205646145594277301918477416077552001783081606032721477859417133343229853932192447313409160818989957220462867631960348016421065389516768900608949997266219845327867071860168923539192008965325308512629584158297941555124450148817277844760351889206355138594696873334404782645617340887540678782929598667411703508971324132447809317726892471870896665084641127153203357855502118556259917220096911965944121590229637352594596890324610938666695392628584258888437384938968787720348577705258617583681350840192587852469637726796503441016839815594318242828689616536355944250807590199310347787324661481061944172905373461490856046829013139719093606788593842460675141903269440845997020854916448688768380594722949625447637748566678713543487782320663534615421999004388913484628675717997971116102252868806436391958511224585506156424621040962217795969181495321093091772088421263127655264166913882598514049579952238403878209768413353815426976728885667600191099431265372344184258475631157647876161651281092070950801527603582420985191633518287202089943792771186635276101498554166927300740411874581414404633216808479884483454252651732716443318426333023413762614359306458239997841925617599495740330215326500161201009346857685383917948445751275903648744022260800613279192646396160678299640862192511110674091877928660990991695741674473528342330207990235565956123455898490806969025240218460527017020897781092748096419219770787318499279154674996704495209108915071988143648083713329719403527187267678935111993848666602328524585826868614221609812987421055442717036746146527921751943516294155443669373431349511714875156031386685919457789908588970268091088747544292738065503522633665382673590162145432016865189660886218451238962620640773027875957638660357453724215932325402944416909357336318402556364088652187990040118487910298617517054221820131386788659922051108609835597125643406355648448806820279392062117866930985542029866864612524390296484524158154768992500137720546855762820783998241198580589660314165991719942823548742215142189810633845791571992284227365869571854850620377245784171232255690944349711798094522911612533167741875401189121303776917130042465318810159006003543691414442031849881667875698114221856942132590969197816006873716437605036197169091567208653661612554028330695770380006704215425182845363485054711215322951091742575888278467222438130319399284419249250209912282189870716439020547465526417827231857953715158280322271012244745681487366791241454573515570601774141995148712461601411150350018989189847421445574475852914531639630667766870749007049153059496799222419366671161941300436532768517836426529349538009289561472888334663287695537433385102652495811245835328198930652617193461748541298282918692223471255473128125869310988311529926188895322683076706130092599318469842286346328272912025724771048586548950424843200915526934062243105483238905338425859578478927672415691424851387047531196253867122100363672094432265719019818353903862419089498532853861268594106652882080070263430950674468986752564257520976210755871006438455420229795981867721693739309060706047157113840351798890758591084227882507847733894256972196798852249655546454608686880268205753727324819664285592249620844519049328824263499324596615620612848731532966298503293190027805562490117433304760774175733951000033173276238618773264520877724324190190419263299545094769630626061974630192280656824988690474552821250789091020187443518469177789231253935488493955341719663392784141350347183144181557901749380130479627290328689101945690249147725271158425975148779869293957791440839099613068838255345352980482714559094817435687377965212631288529894254565547420061571871206102630986348591779546015099329749558332789033127102574445053268446823499431147638071202544573547881499367999266817920791137009634196990144248140278977024744022757537528621827604118044615364175104064661841281996105355484967689541889823451077013613906524229856773745458865219947544157953589701605519686036021923016019770070894583997277103777695422454442129973669742199872787748604567870497473949438885090896087177553496734159274614325179247567601806120737456806615117092341083866910306121303944671744902597046009495006926229833352902141512585467980696207449821162995888624602054511467904911055366285631540020933092027214016755290944980965347758770119042729970567323416133973374318490806281294724017356721688547806018022781601017738167927086813466803786499165801896947274961148095982279412078847541792845175824488547539031914778036120590965767226586014648780472655767460111682155930315740875574801207724678784473429512318439875002432324894729777617998363432978223994488452894616843552107218388153130655032426853663315412956797596495149632857880473554189588433391392090965442292705135255631759938137747873433288131580320227993039579809517844474883765845789873924100370592279875338482969692797467466561587310596929953410273169308407455165389935535759950173163298255819871852191111869640934677910950899204007720554848482433188829170112787761225121846340356413826996362655921859450562754556779517706887669405680627341664801829281866667330448420158857171009017201387692415981805494396171221609967023590622395416580278001977739575297091100286088764559777840072306363832957234560852904764885419210967674561154006166214575847139368994232037501797869780992789282455322154314404525251307145363127332913290463151661755330792192944495461071188817683785822264792844123259029288468684817231649303092101468337634663128592421467864704187041783256733902768909146272705584478498682025789562163164609905378879740821887316992670703843608274573352095617217852403905987585191105010508425341341228990393019587176136440950696852504825397935666901844641935213208664180454486745763155774991903924412243251110098551080330358471328003690319588960583487194360393168194495939392012025994750139826580092328119167715856436724531545336828416481177702119087466935173065082901525781382330346049779004485682025721570083676783744138683517592792070007570433911849643005635776046618721386857846151813491684402478751963845347344161549590926964555432820701131276408139843137550907722090629983767615221663095420947697282669337304862311724070010446849977802724785150641166689930924548472135241471934223993568662935972919085981349947487712336585368070695392196232458146782648593886321367234408672970428595165008285539463026384622403009582820238062258210424557847274913673588297459210648214659114227830715632804500943053050122618198648834259920142965701498996101431352083637653893285497365536477463561577089173158792041238325160717083591097633733476889351175106044718474892445759084660427306223105944183203111315601685490086814462613870544064328245945529190326775779181748552382318494949006168127760045095643471048148098827181480097224325557731592883200016773714690176778105931543831886279953512720175328638187640801947144754303069462542779897682996402445804898548849543596400181763901355501502333521556464018550578569453736342431825192745202248542424072406950703661881673240318593467005863506301819209484323556716920702691855139516703257573104802997886692260649215016235154679156466945856399893808828365800858679482301442167609770973279927397923132223486837135926690846020033175346140640684063710310631010680707356374546283632026987159679392066078589015571863793434581150893768911050847524955248064866989871393141361541577857679848735458634048570164116315705045825567472816383136623250351346810957924862022884875712738582280499252211170063860364477744910138432487130053213295284306296554024184487729086121534339934747505751466823328617335481853003451196068657290165982266250265295048945698892623805517865394359988416768644528446650555393093297357240469531869197734010868657850057072247511498597338597423231849562011608945672268960072664102786019040019271459074563046442736885787028371181701076430546309514499945377068753429255016497142186608916303841551514947936088607128277801292771094810657640906129646219500927774188506954858673908149675197700962455957060572730840703531885947639158866206597877836922004399639712770299994080755549671911363707920226105072260353449638172710125984960917089498905694061621781614491651534620045325956941033689938694810854219364915125691606981281674397078994806864956963839969230030922375019933085921074687227990774644859982501164426300080089193692849226178311525225449089478984299012931751197655619092669900584676058533093755893642369739026554503902933506541038916054907350714065087303439372081103267813198010504644893079861740179574581348201864191640365235498969419167479571499213334031699292978980887398230027559091415235685502458234539544100806077120899357988346131146505070304621919553477342075911258033230012873093031634561599714504597701275931526284397312556586550218855080138190160661789832803809030656989370415162143126751278140421743809873844283659606341691292825441312741520715809217034054895274821253127201786651969727238439530728367753843854259038903861276333801656430239951001116348266001605653325253736110145206466474894463905105494827000939854446210395223535576287788390823725106434396894308707599044614619615137091303064619363589067180292625605570022403733452451953183564093668181875982204321057143321505056414328525261487571578261082582184058700276700842367232803938995506207395157719005966245131747597913760196804259750632388044838636345798665010108272264154578822972623929203916162714179688357746754301841395516166695841798163202774394182106155094467555659037954873663482718442466762612156194540953210883832116117547552552457026404410500502561622505297541264390332043230819144819068973505196054462474987458866688337419547400130190066073949726593338512863625210137546403212826271295457749401337693420000436632081619646488324523227322718048273811176984108957345987498433499436865386767430270593042376881590739581654765706130799837482697444190514905538787890758741358839783214716821995034770361540760502805475321567996662613062475470173678409039650242140011674412577819717569686194926182256558765963336545690392894405319167441913011582208217029797365174816366716985390458633863060533884109713618022225859208422194233165413941618045967452519535291633778885415660096150091463057344585294156874840012756865790642957850037050664846517690381048952915431207488378898864738492377431457479002631589940424391229613140550692579502439015181259307336666682087595945889719714328891821188484507113566162974272152776103625176241698432802379526685635977403680776228628074691143051886943674861268560235584152115630863332498080121319876609113042696808793664383224729519863191064188259748736536856286880102484028266714671376937241392541474351987050131284137858988449491621083295906776430780807766151785456181747038259530016762973170208056417805072983746227608283576660788244637993178398724101879252214783208748442169183623166517601510857623970985713005677868145566274022759269351008355448141773929120745469910025134357248503092369609442018338357916821849787633757953647109320586373787931955676425790568588444006293485533772142910987146542092031311539473345785650695530495236822577217687161672703049302486107248462050509972060237332831016166182533788012683237576211323013109134275712302266420440516360780859040161080756772221189813446919771376518417809512620897434685088962668458788714865185152262994309048067722078925872455951220628689188589847433574905298400513857329104707264665512162709573237915455266935151311202513795885931612727399366995037551014918236511600342361927969005831736413093036414698573131512351575508857734271693130510153830836621876507014655914686401105104630564881968338685115379465547459007534808979493766180107039479671392436933893279400160622181659058077239705747291934159689363880057079939102955822516250726002891378994466185090839674505774465587470675974277030343392641493887839810652732198971464911115120705511411958304970797435381570677053939602134331903437556657294364992755761466664098683087278781508608699014060714900524183798120770715080617988442194039639170281514379265351350639264474093803092617188676735190867460319852598867174084583126112742850644391370187440745948389157882151752367802705519189552547733511245806508527498376159040938495781332159378327071309514926305679122557417770721794081150328491417946920890910174544389033152224923241372450283560225510142241268738722482053189888278495252927501490522211233337111446141768904904310307204009057988679364751152622709909225517684423319022933873276096187665461349994878750492409769840292868423257281065216181504673158664513404152219340821564506916921819677891958231407046108905541964341939598005127509092884411897362485608150552352906693247701230934648720769175053954768003226956232845100560303798662011419545822924286266085946170915983910906488529346656136720323357787393737785656730274977498208705543628695649862795818364971767375369302080798862994293733837370781823200899919820700827995441580129652945503803358510556967632504494157912954505220259101396390829701560914105998979466017936058244482529983967430585800601534165045765054402539425355973572501712599268006538922949621983818357180221822034979132420060885899518490265353467325738107328855220555835216098726566332381823776309288248370025521320891410566495288279727633543429656770757785775065495976211177014444815843663928782662034352718502234288298275383031599371725070068703045246973988677983246879296877670089751808735292652204742557677074051386531900091066588943878724302716124151481305215351694956301360498160723398036532899023912666716844867188128807586548666853506763262906193823226424762371356641529140405008934529336405076048595162800613194622809826904481183014282020845322861805929522769576994203718864987351641216398204998181907157267449280180795868846396196751673246204655078494791049186834180958070055147005545084892940563130931920495298567266466077930517864596385624676965146100479205722693754114984885303876100524643678832606410573724864303022232209125080608645923453804627534595626367651053693777402216768698010730948846484767110577848529332211465577751065078342909999326805529135224752351473247866645516953510748266919246116462953434745702052643508767037166134937713261989424267828738746629796843092628758576590355477780711009062644284018198333837899862616047635912895216639754393743305226561646192896048041424773447933527875340101591708413743259962471425307310898368647092560231026828631592808007856815959457418161843935970593804005213578936319772572864503360157565644162577625051271988072222648366262366871474657137103188954285837492665668858183003026765790611414451351411283413904112809370496219785019092120604789290995641336103976978091684271034883902900703558946578019936659748248311312232150546363704029490300937616598508771624837422715988170411949341110960686010924748803697845001134316845595396237552938931549878220454606710031350109041503873197188515802658976678609935214609626286409704002495419321015247881013646425304952575022139502762036763766045546996672462991042596592943023065794622004770453188913905195540159320779963565442566980482882163288254260423285166384241919561082671524623139229720488185856699544169857232384615719536003343531230116231576558637271940667820272465068529622492128370465305106053072937069328390239441630838363431291184177910147585492154025608892979268983730923852072504764305544681789222534932979972757205904321143960339957580151060411452738114831752712113417751434454976813139815676708824922184238862269657219158804453008832561223315992517589710907587562913402692459664325503481324228170488526211468609079286059544438306616249050468088575271908244404561983454168805178958462003014589659746403806464583327102834306717958209433529027481850541111058007384153980112102838976823211007147509379775080382111385316345735911341044739016309902290107340600437501278051850917767155308699572583487714489249248868913458516957237703674051946603104632409165127253353473602120164142229553477603405750585958154503975481251196051109955304626107292063668518873605502669877451276505956011005254381234268132574834364044253027098301444790512862497196592400228254961594216530972145187996957726280328246229803435113664843462428113991187487256358619728369743237976722555748551877626381522952479276906931314724970891414417283700373058644577463143685439000090191124778652071765120005021416532284618683837237959241899902771795730353631871774733298969648574999521152842861424321084028021066140421507811337367718721311003886426866564365162276146715513405817119136373157744809145233531661118518387095031761341630004259587182412998518721025311600439198318430220284031700880687213061034111594159264284647342785970967298701903126157975412780209246245393898098710431902911385706530642996452785273426274974229983625690339624013050084853286219091967110081695191936590053720698842665725523058489799575196891869261595834973512937360354372016245020204430859790727058674131583770273254504738282802890686392197685667610889333914234085701656541184534454279222014273951633195263752214171897936142657882076963052078290825020638811562169844414204208915975358724725082086882763724936665851220078776245816312645499061386988555517482806061676307810332061432903932759258636136100918562786054375929294512860890946225474796381030408866165724775454575343844781381284959560188090733254132198540577791187155964911679428160981536356434244718771679127580195723703104897593286874384808841217985719306081888131299856656082355586701483494006057777026203062517583714396730576134976875456582311841669828461541434057948022612170790608661783218435409255492204030461596260808823202828855532610311850335599941620273838795923249457757920067956002882934053824388558627424528030191038074351896217820771651467148928878911698248020948754849915713034267735682497879338903853319920560501100596906924706101397010719736656114735024901690755358711231769406306945369879196318900197229186187213581373286593005529304573839226462599650305270121153519517129484418027054665771151882337861083508638996122156767419442432733888344940444249644076210097113783503583643683337849604810967633972076110633154080584748638122628566877036409761047467820945940775601589503921563867860035941287709309626678943800388859261103271240617822270223157591939958885173902651588919821812805548953424165128300153262986618248489895545947896397535868558328382009681838499172505423706449749900948773298032122030129175233986599445853131653712833206351735286576029952565221518299642340862528194070075455158752381764269443696753122939946378693632416117323791277967324568192878314766858929026117795135113636931706268479586853747847516087362820342778820388780228601734458856536365951156047349773257807144226237733899207835401193394181216072130081884301415951455431568949219639083399587489720323098719905234483226047028816923631389294715758102429361591582966756895389386680655614094571425674056690337262812846994871915949961651308234573858927206686067803731370865953053856681753666058192793352300633581728902799965491671741098392545623584739820833950335712299909528866231418468787536595928887461964301810157363262187971227787345922671287034837046025013243200183751185265489242497019133261280885481542751731478844619692420493082516157675018091102283666224817681004312447206297178871923907695874964415334936505671163451154169217353672318805407049557772475494859475536601121224399444026820263123102402496340344983734022014597738247617387583592774916900073240046324964045902735987629142371897429246012520051130753710929291028177849339715590060069960037546472492413182535735193614383169596588757021187012338553395379333755744915984557811354592777456766495219536461818134929476001535873590247359801677964610034976893405086964072279491858166072003447277663630397468335132770809008174397321182520141543158216234857693040665900160878692918896612954230635942514368899312163894979097052337215407485166899327405733809133154355636059259469704951275327349146856245435087856005096437094604486962068003454014292785902539019825230408306505201913115846490489173076865561964403549103033911643318006859633371812044495702085613453158521540012141749047042479397803805823204228129885121928452736404848937198544196354236536548348832169061538326842403558601052923789252101203003307742252854422031887948856003272756881245156123852243519071830253476882925679313407197781455419647772172078349513611110241385595740579948199926537280932605691358541730255001623566438485512630987883450627350056045339456085172032450107133130642156292039140856865481691741261634702134261248060634819173158982259441131764704351807324461491936913674181695963108382962181135711262617861989176589363535157174722420915883461997409966441550496365739051449517068188679227937450618727837659898624449067856627242690575679785503270896608955845653227673207744990230130154297046876159712550987006613363175078623480790052672845497819859016007598099859206711042067922158773667422592201094206202804642432104172423931129271913002116262204164006099722135189938765035369760228342823183115639484381080937148567030004869115186161031403253124685891275338770396840611831208163972841184214599438154743850214141971778606912157130712895126254672072298655613846705860213243092085327242597512851832182647522335635799349816324939124221859234411196829978351398747231155241442294447764784645863209891167013538203151309972558581341541306832700489099580511009935432542639152007628435972280128322827302382527429201422618690526635229740034664510319867446966304717691505172966534424662821591518363864885420950743545590459497802539704982963752830031887351906969163190599935712993372232495293286015917604536696113235619235938676030951396829410516916690483800655713733615827236884493164264949247658233095355622396847514039800514051820547645504241416405677240402823256967948132721099157031867250720808979672120142269319677873708282805380504392339990905841645643131589151035700039114057344291944774957062460327978199687755496406737882755822017404870894923615686362909710864718919116072533182840882925992989278204120959208508699419929502837684371087737910315264864223921931761889071148778103396418435545548778284545098319993076123097036847929222051342818845338790327472365589308111702848254096922818729426404759886890991114772513219958151400063535455196494353820013391220678184519265491865140037047610059311949221752045114881314330786393071055865591090225068469389147109741788525880152012840614555946529061079848285216927171166443791369780429149912592326678613992085366308571459321342947861371001960908386323335732561437639640236716107727210967656723988392138473198751113518601008423111090716317140828799954903350199711249807018163303397249520614888819936559814172704444091352714465057036666686173390434341092541779249589834114825889805152332011910496054356749253143056550808567805535783540768629809196327881863133042126785157058758463168380149938493373712491715796060737947813480921820910751795803569120623082118174096010375331935865019271131863942833907438967291849906378000274430995014477837915575757366085113165239064124987250171775436732378336662536108373118806446512206854802902280579636685519436433998457054348956957798489870262674324345498888285391794261277651650551550205880465247141490526909122704751775219396317395223021462471364532665055253459077860908860655864119583196006920536232100642033891506488927630541610084271112308414408477962608611641202756555692413470284965879453043321700031469088558921398771261287266329869432429637919316728562588443399095590022431058588272604617353207868666434205899867996003919703420712578274781866106651003471892962314297515916429545376308679698136481787682703738549373317092963662949469885246895559831808958952689977092468289411884427722286153396418145285629372742514861915766041745132775019552928836824565146080082388890182072330730629426809880653436385222474853479362587952198579686433710512578165821481018596701099182730067460796731691923907298367990045063085866557377400605117571028175010313108809365368310723337414124356271824923769536569930525926492479715104549421451107171471604110207516677535277492616282238885004641034414279314291576525541243239709975216082848127888009069724897817042946128914051867522942941518869780918532909199986761095313470277562023497829720461703158471773818926330355564634264477776574125228366566624373121020430137729451786983630558049080992292089079231576312366096857200494479755804547898566388713154215559274459935356038766453921508275740892581602956180589146594883168711407820156794031552340624988242102304101537317600128224155446633496483830034409529443181044175737399494666837808555328626342193354181028538569016367131862738885282007803699503096359484124173968304249787845641107066798537878372011761302775092941279458290009493385865241625785106654283450733837177271889376747699309298174344168241735765911680109187766570883221391146181475423549779821830841861809682107574708658249153265534644694082991700514696269446893035364198916988044141847641164328071048556900189051800127603461646559938843581978089976938048132361202982275913414194694089540803629008067052530291486366011133894052307976476298671841114173906598739202107776794529947922150075024243730575212723741985070696657034535871573889435408531860781930666269599792952979292259897004928687713692144961351248696541354041542788676040119541873903835986065701560745872072154352759471075967498931001930057044135970033597685336264023306172365894672066881035300682596127733894204683196934063240143528251968096669265868996098435111987338690235472592210327301484343927181183880586572361362742056958814424211450641571773822966109446933776659692503278085301465077079021364783454207080356000984109328719462530011228068378722294383996074313393153768096601646390378747636647034005888192376257713442504603991147907372867586418799168701419509106702212874632859318891959254049135566861233033229017152289131765918050863399115168586477916817139663573526127372546137093402893610861665325525441214600309263853788553801627793718915163986337386392574066803451301184906601749238126743456049603243902843665791148182631328672107924964150637715387026096975298196020346939708888062779814825847171656870614047569712576505339617218851894604465413813086451841807767736140466905811436021214801404944086014162269261974963145355899983642353016619511993203800676242812515999445507626048873247081185682864219019886748123269253354858539580487866831570389503421150261200172507809831454177677394167969875798748586826682701861298067108770709441866321326843314829228832455630121088048084168813688107990652014193876185104224334219879771705086947375890849487868872958697086473728008713166090569204850611346224575369127995183950506338877166232949121312781575272488188585928444386970759868351139543856954954155800922358483649501706518883401739482291772229272766848889925352326478400082074670912240950807809808689776075118381256759207915507930525794562622282668212830385832737621235336692186103643300543448415480973565083326473367522736748144678799141248056307261291734292438957545972332610646196595103407451728749616771698929561889679715912609396736419364385428581653221511093509879109700328489935796176755652917707622757023256266467720228561271425608264304734407020497240207500431314219173499262289109109147811663718674755983446237387536988983726433602772158244273547623888149032544075676075680838272014595036921048932260212433817686813159367516630869427804270753816382913457591577329261665285899611145209451726683576837987526701988703471353346421146122021419029033796647660645944495228807680782294682611202744114968402177213888412500136069211348191258178657225552836564099258672529803584971049690128370436983405401656542534223023534660363675403625479985194830262527723304447970478897048861086374351407258986179168296214980048263505959141922354146145396560541522353848502851983364179572395678672101552218140782306848554354746687352970639869010003240806778398194877498902798053695431738818155934944298653806006102324546349357866651476288556180535447049444259060955334635244246220525274121487986126087413115782372503340117535625031404619275100403567637456651140919193768701199100640001903710180120329117073847120403004294803181301479290453958226864434341968561456783258180954090986959055786613116248486365634398605333455183475445607779085155385272342103421128766979179509870170189913697989986322326108970453484310512911577146942937314055365787970284027610539900980879833388942065441211756999997227728716114511749619926547542297421296218678827462332293078285965327493873543068219635442756556206097184376591437619851554793176796834603544918759549604154432057201281967980794221242687227192858413163310871692706035611382644210974256533046409558073841772996390139839690124696646140064834462496580654853628818589654108013791420357409505500418105036849573620552073497752164932184430199036724263686662921410878913942843714011774849620045006858639121016348399674512488664666896856357012136972867209700858352823306502087164857759628378188797533724947742140596350646499171585229909713980409914607470302687762905959071078113469613430642250763844073363460097245325873833155065493747228771992354131352621160901111325435753317484158389491075392115415184264658943472612712986375840803098523449178712660489495530669165588838587894689946525965056260571067039181102382059892713041208009150824631611800097156178213890158333749251470193375777788394017584688689962497390030262104975147444147957865148634812659361921851511002323349058352915911474848657285533285762064195644234799028345791702068941344257180468030325930295306740171655637527589207143575375321762354197851641442324845840870253820431951259074261026123502971827940879769593183332818100845499413234431771416977924974452791478863245378406471607036287964963557215900968257544987890881922735374192307722907062719653696197944029494257726591747823706432061070209630370250857536477033788370805367814779461870672071664348198925682627766900515393335101424357434008224849543466782235959077855019026536473041469912433047626326914921658018295660762600638169253356984888171880666561059649337201219554210049130643354365961668641951818503722536689365309806623753688464770823065697803438016267648960263421910114849719644269789809938883247578029908897914778223741922348994571268055869731223919957173287042836936110173435547388511345911767747341605056048815055227391932167411120093349580800582306102690409037757858138983244399925595359064722994924166757252910467006105200777706364157951465729495447128136272545256416634499825624574489088064858393665700577810880307386130863903036922703638704887157497474640763785048096354523624215292231947466453294882617038781441546673147171826267108534544623849149318828859809955923673014187057528137619912289755569150243645929810774118878156135733046651298994548666516848028239693825805513031344523615346149698773322997191028081534230270852810966666687124837889878959976924284136559151004439025601965723588669423575187361207888752426546120362175454863239722591552756421089994992353412915362956051358775128838268693377813742554937181600616714820268354930252696768283966498878376265767223092223286953001524023563108877380283300198364176273417968161298518854642510686528674735397805067022473327251323055114831049841452198512195286038656400441679330628059091886550933199828914297423840637903321280129890046028256488706557035506866253840867236670494940435776133061957709611656778282664668891063587262969301154966625908513416933849906540065508022799270052132246470175388125150927629521719769800153208631460714362245908042012871617755182849383409543621537807200291700055663501407633978471496306948801541590155063475555281341734934019013701329492886133620322018185315688255580801277651388427375145401570846175086811493221943484827249259206308252787956680631202221593575768774135300421913103159443205249509264759251871257564257292427501138828274423505769194879754298249418911944796009223271803612984805729785308674378987370153578359933200886631611482712339035007975349616865224605829350325443739827163623086770442766193651318215059467582509422901364652075892371431121799991308129319602916423671508042748387384652432752916340167834107814888903624070167928014646616868887646361272432887086929932184767775303004939947139623931449487962305818705115121621923918940518500361745784632455254947667097903317757155577775027952356296168196286892703467724696044706726133717968086529190546904824171246430549275396606822630239993714767984254433650095843591697764928629353937941369126536105642268348756756435137956129624397604961780948832958561967475976839938619094596311245277610783705373129528731454190677180051605519806481722148137742982658456003635234069648827805198959216114318571095497501373812935352030734302733380078231015827928537272622312963517292965730242394456178362461375550405174210907176433064428487310330950327309494553973049871449751206905398031859075355443730357758608866610664354722646497908680319116765161896791161201191391349853564979210151613089145554792559433235318280213076837109541066509077896250563705536029024463664939548283280131287359277701758073181929758568606715437257648289155086974662147215699764153770146772076405504419530797956029377642992331813570505878426030026522913937252822782079352112831439632992828136354527929723256015832083564186632765933418826489259095829885723905847618134460196449115912185235020958901248765018102373874099447948140708859347885000992829957769310573227624151951648410114913638701602969131945468075196849630417608463446380247988589486861138193142583674217484314437692141932770741245253474505779517340904426937368572179611162895568684951727840843440786439311245119594228112687599158192121624651298868675639736165644686938610450567429192490711419763364054849159023035103446682308915756469638050927024378438749213041452865995500621745288129268153772923617014554599165514741202997467903591664152941786564884563294251848443310960440226789691003019457358720426862313498347200340651295314811508250013549263065591687489433277803485345446890592484037837380711174125942433779913603358158652216227041644212168250127470826604183994510200180221579804455512125262710202365405928361359171199723914572139457637538502997997185098504052560219326162446856825111234171121219293889797977514697924524038681721703465500900363217842981220313128699924309667372571825492699637631618846250610041432567801304804048534134651662756072337926297903291315782171691352283352056297177661092154139263014302153855380185734244586035819438181636734002843745959347943220372057080646748102916621825322672627556710839689241806489066769723725525207151600896945095297430093281863943251360501092841361747047596478368894492006994592894639416772736443859716297577177087044201051375139122533292711088605424856056889738288891086785452150421511486882841458297728284427649561680920578477562766550126379129344753817246050860960141803368328020594695662874306849048868331814984333231645921293412720335695891744692017546981445681308358381868022467561308439464473214935767244047790257383288644294793163464227746012942020713412476804985137166422115401373739494940810243417283451644084965110266899988397656292162056639550469539571108998220063732816411414628476435364361179061373466936161500941088938854782184250723202241021504969954740200644485141032624670780248024404319252558929723215236502753310294806175587010374255869058012536675340122481784657324250198912670967595261617942359602528467864048554388918000350841789852020051010061456210321391615629604080061410518285933600276046699881317098921175085907573926713682299653123554036837475822716073227777296468758323135311928046008114471200035194763664768359768590369267702047642232634647019410103123263063732182605867195571890047764343920739383701463978375889332418422989210488043345656493600143537365247648718307079594922881572503101551156477750224445211731917856457191694934183080754604512319472088850463055859796449052043604121607637544238007698061909799033116209096866105526961373163707565949164254922375555376473773747818913419584533343457681915497202195596190941782214377156550660613777690751328357084512792252924987234936369732688247817449571915837778487136777952712144206736075289207268081476332595251841865848491442943706439837276256619768409852896875096061730772822071288199554458812893507327410371829346154874733055011877235141810477768956995372764955957022407001297217757883147957137448716461987054531267026123278135854469461199420280089403650343997086910679675260973304743565069928050115381948043022055693027632141121454163598273729687620888615119002282452600811485409854624963947733548620947851334014946293322203851356982965661620466041037262267280495486720838788296691340707501860841509460275956443516555183468139023148563618251279324786665040101174891323456598873845447942212880888598997142628902923922629948959018625120930789460863207595922753788681756188920770665253463910985703008936605442156358571937600583141478337803201646791959305800888554791850975413761366329058002994117623846355543602188025575349668259168733508710288035893488029717186890455179544086998812787093330370228229006807423203490567079547547280674436804069247028075733808329981893779658639885669590537456919708750890437058522747235244468579124478240424239500414418727957761007048411083410433150417336627120566268522198204368641500298932831945685375517426144541002907745463788964605950395810148153023523883989254510682704605815276576888322797733436487067201342772434304026666872915055513522381304929608774026161688678338539759866876923144156639931397566576364231982185970950666865999950289685283302469018214305725149312118067094902884139034956445462939114270442307762087796378910685675696447681653312129131690253189996102825515130355754594916644410359971453091709157935964976289807283661839583401968712559436611340485226096727306968073830915612991170797216756700569965185245010061559111944464795534945882528683297833357280675836017187548551312139167172986186785234049444941308448009530923984276283100151342129948772058803455085011848962150627234093298637184004806792964902150426132208542856926115063607569409490580695108333219210616207100230561335446896228696144850014382596874056530707789752711916936703818464847275907369190880330372286342089848381615939710373477220121907369063377429336390974087800982049048168518960395445336916153701363141120889065513520250888152529951471426917913475091848490268235308014448623648152579472525161427121823730616461201351497682725793949350485011557882813531751431037352536167610046886836987302683572229463344589434051026476823370655617333502808809085631074692831249012040847913857620669382930597854333202865227723262252822874373384714996245127178996524119699283245355972372173444228157960731055552743908832973673980014536029299121194043817623863908390528110463429302990084619473289815770581040243519320077029283931976386863257273402718051778967140569857109750820280043961727155350346025710905681058507253944816323282259963905512715619103535465403869377668161426836939238782270075127658339948541959213876944616692360835075556194664326001241529984303423604661927270683498531701742636069754461635828155867457704754926377082546234455840963300560713619564567351602576589751303298698411128495561491462037981769208568039948311071960071118605543593631186958327167202331243273823637698200186358914204919273348850491639840872903405822006106163196472378040439734893497639429277954409803350362332289622613960658402353082036698440093824125678437360553322917291085600116908434377855636741223989973376359683619365907088666645433521149206795963507241229734325501139264012368688108667505636087575488084350104942512239877700437197856178258349719906882877532440584202311859883658112364615672026568558876247708006663155053996740273197983887189378881401285232345136349379484682993426297051351648371274877067954377934942890165780547190576260987702460491449975949561456947559501214602599696259411875120433843395116560513027459410389348918746297903978539060346791071571657618808357394214110532204501499221993321378456292004028939496187577937671347551022366477896290823970210160979850654499743001933266220742483279921163224312574396284467635952698653126297735604242186764043979576276329439035619636119901177702997171733873010838330061106903174621100547137426469692025519641868633874939670747945804575198380519115046985324088405588256320818509073513373308065245091151547659089156461426186475926077424832422316820470890857829854451621123967680113440282064758193544028644061479060015901409213760253734088519503658922371805849020486175950393859085067661400179676404119110101092048645624840394192331186875397894126473567106119173207989238760576336800181742053190177491571183179923684004292455657441247690648972131501438794562716913765149991978331114707703454235218172271096386597208754198797444666937902433145718716904583389590653992110288820335971422156470219016648712052257841990433407672514721713010710920857186307611773337222660964287537220619486558519516785104786891967842405248169353875223084613294498325204509448622076101526516400762497867432118144425710290266505151225341888770056225651785930100018938440099247950216699640773910277183799129503677459839735661073646371516170828946910628616575205342027137122810254374147946914607030843406729010658100558307486036574977938893623532550179061620861715293548370634128137721970163922793517218108977621928311659812773472200592591170503841155907913435760805900858139248815506833517838888077410054597895235755006733980648049877602102118651369753825311276859481836031444049638916818495436089222755101109328723248185443691441478887837215134190468635910209618472301390111509869448925538491887094369960137638142063048355334207558822978022229547861418895823450394088345064207535772539882391837838260478957410645387277946343453862339464251298922650261380434730464656522329325382523850747111500420742882134972847748142103819191586642881315184916766448733109079868463922757945637742973416639053007347957288663604770978325859494239312157491997022449974409001670085324954403381798612246666789021522633986213574787338934143224307687710719530287932630183341577637289024869056267018078649500315855137147774001494395778425020456596322665869495841089176172070297517025166798426344799276007315459984872444768541392123895556279529080255086761493078301940761252659370287413898342363424910407118664597366114201332011395931678937437905653081555392148310470300007156096674009289589129871788077122484917563236977080425469941132243957879176988161941832597759652759951189733099577993260295207607208632082202356148025718324065825464096972979835651198066538359590881205752022209771624422460617488945640072637300943382975909068212089386968028368723600336325323501854292072299481698023992435540413576909571080213307670145966304149555489377166766213120409860279113986524973976241031136821523679447307134286364744196942172240598487418534393124520541961151312215517646962557639010512234761963786263101311921059447763740201294721457408531211770388059809463964433051932027155049822234088520722995026825529518231942528442207248907179467406607231701189208906513734828069570704029049714207144971350383287847866328505191899268374419675795988452221034169122619631172227363264112247899773862755534900852420750026925943254670449137177494387950327804815576925271905313581696898157649938357494493537918224127337959770277306732136289933845031045352771233451932493008990315287530406160356664523756225577480222074064090056152354630617643374841184717851241485606494117229084412407190118852259927677047918660435497748647681405621864638732058404626813230603956976602478453729212964013872685686260717482222589159884743031122533989900205348609183365945450613351959786577843122155583934039031644017028570589844084401823548082120076621788486874036707912540013767914112780364322955088788985837076913672908882816509823648926570987587102356796695748216750463947340752885320467090485516766373824365299085317360521671124237038798310522553507764194924212786236051637507291741952547807368245850811651927822878029386366028290798745091634274919456604451097559430664182232066648988805981874754042116217794095424413484346529014437373418359467233355591705538793294926046500970273081839313807761832452982981821585093215611846986961989431707480575868246755330834942346673211587499787258090926841623066180630943270776681260474786223024137094678064602541747590546920405572350168243813320737264451905481722531299434823904831302025479976065437856256168597804318173213551277738714076257777152444196874275735621013444006740879641799153150647808898598368620075562614127744760208118668878632569060530664118905281606343025686941647284053701452218960258792946916722109811523264061286158530477511422298701321725784966049124927776038575887860785681594509458644943637692894470076317428235260099184906794352426095664530645460345850152060873619003231520253543981925811690252949794369913002811361177174882622845543019206891648341831927027373244035833674443685104327250317480399500965356481369476227526224804828285074334288858542580429808579861438974772191339142715659175528071176771770957081752732159632503099796687669951359796652253757330987775525614338571763548793100558616473509923203721360155162461216616110889099050082666282691985622828314107468986277574508881730467900758546602496470295251220918162830650233631348829221600109068275177409506456411865175490325935634574051167520917480754963149605269782864203943598311638909818590115026500556384195454053246552860142078620606571294806622050543214129085136443906615553561689890941817876872601006521179836604082377055423665607923969171366035605923276550133118940182300577271960986271073410138651175759313202997688070711847501312248750650252092867434279030183573993796306927926144409956936140902611044262569859162322586678285208688442600068826679446921206138196044895923011973182930548713829972447781306602247307482528954661566931802821354506430674195417082458915852368444475863905074764118566716831637775438517328643311061675017599738034663871174624249173447084109127956108448309532783015684838983012354224599419759551379127451984996945813620952487150207612069609232625208898786778962720414058312135461515335479469320899688417700044509369824800220309907198821164455868651345087336788603002481427117712624039579705492331495974091417292141142118331063397333279732767332826711165104176552390349134022462565408602367964768555970051389017581806765264805938111216063755810873079469758555749287852516369530621663018139558833031186930522556132752709581431776455304767692861096540431655771185134109467549427336322021251078278072530833569533308505215193590111269740992960669863920476886334251283778102945790300768100326728851054511651373645955166775913786742962394137074315244489685709772667192782071347789153699328084046180463847138671613819034097614371467022811396556566430511395755262081217348862771060592549066253747144009197781048967055816017387717837931297297799467283664447853840948220907292796937448771649579396142103060386922164973653597827364563608399078825087561185451842173782370085806403919762504820819793932259182364698661535607210024871598737954461287819900239077319027401725191608416429646607251757752898661116826926406635953082410879713402118765142477013780926141524018745551372116292021166022580618416281129351309985605404528502568131186271459965475365883140570160361714561472358964117473205461926188741526706411953606960880756914919080676779774782924012465973753435076275251955533921325057924988568975582329932748089445385058524180621971754957805339597596921061531581644937063275738765876699460041227856536928596044224628672717001498542368883767086312639188657603626927165778319207137087054260679752653952380699832285675812153773900415846044926160326657916175376325754074445281083090838351575900822542974452915068222545960401353854821787696604891118259310672881000018394603938391783371275755316974329843294757698167992201985682976747465770982236972321041192752513352102771924058667436636371642805130541746681456507991718857971639008236760567707280746230887359450019044248669679116859852293895342314525235758583867746059207821665266926126506433280512438246549419716596696617291748010704657842238985471296698917586821087919925188587226750382941840074932572093483521356042189161661577381709047779894558927994890109531459771689704925671373460593428474831819434319341246428428137111312804718515633870783497388000380580321000877261286325952752205442587871292254954119141334610054162075001035682950902237841322744443693547843802818039974951174202204597222645397154130238697351454698824779174287936183140539614972138310968714534843983876901547949024464126930110715050709052487814362155748606132931172591364999873479232175684548276463152967419871783026876753022583244202514261454369830510557982967679526406052525531655322461480045171138526277337979803708577217861064818807577155798005873554223421153354005158606060054653171362889198301571300243389255442859498297572090331109009682124839104236113606270718497315464962388030748357298766032519450472822948638026283426964269712723522034103858504477277026856345014022571713568295766173343850370508834179493873648303067563905607017423031737879870332772095103887166058310736048079729501175830359169495213580645930859972538943866207835243460697627161255558650360015285674699920352173670897536840864500535751844451441479114667375235533706980213434133100296448772291861698705744279327504541334587773078063475072671162139996373783477113240278201539326433177181167964898028779039215303821631673394615026189876225229915049957555517590995849358249337456214360406792062312999355355536777507868876159687700656303126661199117724173416709566535374269955387100455562698507786204254539090729193790976089213653483038942175703467864182726326898612284059263005376778976501238584515306722658842942157221453034225597974645273071209546421550452192353924099667244959305767046867109713318897806001124338646031759864721595781655817253643326527969369078370153604232382470588006596447007653058599872502183281451171316809050976405543724026545772663127680806813915966380642676884113067177957766340904854371057706497500011733438282218021501532033552123544169314756190469934762954658946479204393821888657570715770566743109957922619232843782226039702102182062706006288941221838695622281865074807772519654434937326524237136618991833511051142118375839691589334500663770514389942554069501380548144719055465725367085393658755385151599809537297178314482247876150909809227400498655572301724593390664589802588432933360748564849816828630690770866791566996885898906014337340545265130053594952436026116883539124679171323329690994763540319622906725492082425011398215898327212103661910819100957817768937876609183514313966805707713051704537718546717669200459764172261388761375383462009311851711749012639929140158231115212961126344484767171687502419276272732553394918194814914653974484890992651825262857668870680649353390510550139006303768858999924341405846541668813259578628241642776449048816567559854147367801749727632044619065082978206295378009506628410418514626086874898959178160116578087702569716384992462611101008411158666180869184398852762182125366064913903444227527312607094008309428798824781769240642429850866802112438883897869960649379344966245960270924262117599984649866124742167352250780309720026631826561198181308859574557818353797748220440429730242547078203583009821649789236387304750922980317871785150302492864364961824333397954032840422349623553214796624618130780537845049569550366308715136415026984590917396394029529470145920681796070786196968065486488989812195761873502931633293153275476793554554578866932730770149287422832373838811107602424505295974487506259111945553408786110198614877829477873027657776179698218722930359330713133576338347488476249223181750999054241747629810068780865754102384840747625561249117832013179255823360861382355203098493643382655974824283851414142224399665386069481220288439962392771847984393038038591086038453285818003190513879915738344350021772612172463239541836708267887804572916524691552032245519015381331357809101716931064231691446065450174405779765551034548885745866208954851762436496660252199463321175531348653310032694431200808173247705587934386043810886337293886947683831161271618093941452394055331778192338143677117897802619485307186970037206154337777952626431007435343630530829485071703338875462736596585766721181403384828427626028695037658890213074257517838466023297461305521014356192158322561690172687263053934400051220789579249925197065477017480351078137231085271635798349007171193109423344228133002105574709654105778943624154457248833808451095119050491298083910951294913719967040381752326526219071242188022268466553697153233621507202984982868923035059472961835761824163787421555346563200545269420875744716056705306610822001788837602701191625173253701003922465954945595528592919071375998043863229160729941770067103838256511088981707185987474830792465281905513330980510115496552656640418024734878559651451425750431984114634574928939024060384250153940319269256652712074011780319562214983386442757891148454765231977430840552002738550603026574458765003835332172178404133982355680109019246008458941879391318150903441311998286605830875095020441260397380434262463637564404531049723431009879953525068559756371190925597286895350956096807024161170769461718810656585636676803275269325602179107793566632950792153907044523469913177042945118712059621095861851490851389582196695338367440858724398502053878263460592234415694253764417507824941563994826147450899399001627241724799739620725022856718023727766152856144110658059147561182838405584913103805401285692039439901366145233492631651046064065731984823413619084195202981309278380512544694770602110747430235739071709606313563698380141651612288859713472236796930934576328170576403210034073108504854121957019592859893559876934001102002137844548387443424489744346442335508376144066867279892121291734172432979089686489010540797212951411348054458083409396274978016117848932322449541172507218574158995523156188207854425799527920573247921739114730388444636622595382944059455465383118976915567954769997275849945077465787446351894037701735287324737580608498317653151717048348627812812516327866289689920987094525371694633321641640238350039023736128074754892564609218931853864907010563570853242991428182308714175413549223479887700869054296866132070302599755777994191849027472337990956031787328864971693769978031812592284164993618380021072279886540430621807986417462537352213652790870629358081037683981370078355902918409002990945221768403299949727969125807263730990364796664400230349010039909625352494000609637343324291312831839555294595228268848245533421287012949823034101650350253588112801734922759295529915833096703193514702671029419548336192874040371862674894726117164520514562942255615060571693616236920320061501639139423301312952688822908344942725981797626168804833855177559511427076240330780454508249361472044955942255660377072619689073416171188876415005934531435708415817893907859768098108910272468135007323022608091013724692847616926197758377832445431048044461568223084064278413240717142670243269643565652438088517138455191111293350211984635011264716415412305397524675897052148277653164069580552035373603299885725724897492582944628382969155237088459490746106461209609581391560335360464445371670383535299681011436757866959980420693747337185164503749176639907003747697017627582852642939630205089870133891531357795381193403634494520340995103898681539369338100365479999035013267035390413942724103912252336869349307117382605380601458368588309766548195947172666424142741023827247688078790049754919119783941269441497842396442529253230896797033013071689028934369370722010701038331547374024598692720692146351081488800559037582521230405165076110646908635347304082865357479573361618808494245100945851460317668283455429374796325821938411807890295055602194703193677234081564266689265363712205922160643579806655217371541331372657689988321181929322347543775022021527397787487413020039187770748755347029826203004644219697619046749293851537510201227109782273763798517582839796335461530811816761313889681961583713268583396981776827686525449873757654467876149282863510717248531824394591768876018250921429279116960721897787653547548813069536344900920176301896062278654035644721769703199049181947398078280651967036044184944897443351227162012204183597005707587782438984026619518936917264732813228170719659972625057436299142440175666604651401289706366147288640747580948254766190033864489459283388784061525358273964242986161078826876522968038846081817389718925030387783660440530462806686739472174083530134904446888644868386370414496867519118682922888213218779684052736540214996425068280360614030731231015956010892773316935370309346104272257031866937519675299370133889061619113194080517746940322636195611186742193806312214854053270087375625796115404379230276486784959213878525174852547074109985857155114664209651253463278985721043065945005339045619302754418643124075412127248084813143357774963460253154186162658074509004853660533673600121823168184781952324173402833768971288652912236384407163661722917554624453417830595118144599504372967607762253011742365070620513668422097566165176464990028996945228299597440408104050669115669528941215850752761665975107659745679833819373731698185324642314307633668168720679650963146921329288384872753555306170693815086474976716705148573856124438180526926098853298021981831885263713818767065745741502796040321235894722077315457052533810945192415020839793235596116810441790873452177144542839209369184934371547486317813364586902371896204481840932493471594145093599975610746716703031219250532729091104050463788463731908749582688874189382120627296734142325057973135890516642048097393277407383923398180655532707990855122240486251969092947872576562198202410684767861686488848408732537373168788435704856716375283409110879861766914514808166517929349355066706077157279881917192811648574891191238633487881093026430192291467095947074276669667184161644892524837491871340352306368395517786870946487178512804655283075623753307095007501609681741275111997241878873327374205716003944471898575694425276964069761123694487491476551494664472871509216366133317378039184757011235036459971061811563743471378304404401539931900529546916666956964468713338657247147508217562716155519650280765930878293310501221734074438845458436580758256567822429948863757617248093827361049301051390020534047710600312383561297728680703527574312317122883901332486129320565203054457083888687734249844199137335442369618940617777623058987470737583870036137401374202678446152367297156732662094647992253449709483957138224986697661363554604188824478861925559308178163071085672105199889845818854960167785170092107922142183079020668695988531791038801591726432075875152576750100237862218113724936694453649663628142746912765984955945299858441359850800871159973825894124254913014487300757117443880025941503147829601822599894974389674364855867164665600890365272283365094931928386021416755141225750807878666392220846619664867976020617790073319151962293364402106345527857684088180622406514813018111292886557600292685173235572871182170821192210910062925880016853685319643937524387035547206374637375641142142509554043775635735718826302635404770663204292800717005194270785756006365212453128604740384162152982024095655300441057528322110383561415250322748132497790609903128365363804288726171929149198623622105371175962642580709351748336403152288666356046865789916114652426904543002811271131149561274438670344056249473169766937453718255289576090084888258386829909409299578875296464193692131379902227398333465292360674072874708697898679015181896783832430417435045245977876192526802288999080609412956111345005405540496362865264753956787274702858005136712292737133094660990945838647040448086954965373108354444931049252910744469682679448896824885419027946453688252101400561285253749557476091002665133181476254396734831639961514307659003265559698156355460428485797341758672404948298200626010256444355771108717486541539505105078531614365622682914263499365597722075207398681271280543612313487542320432766465017567654352164337493439084611420874756049007487699920597369388772661843912198038900777840512984379960486424271393234495908787231609957090017777102597998053359473259324154522563014204620579838274507375669078945177524020329237774186694177670976726729445707425099020165315126751254725745504755838338299201660283453290714689739008138459150620742137790283449752676771718312840566138957964831685569775104796338303264899679898942715490373120822939718970070418848129340308747752102086639085120559862084479143630741000504167159087368407031963092977584674289368983766469922735337208532753068537464096923763958447675194912431129220566704708593864528805911626429275162841943016718524591845720214808172956088810528102000474603607140757372168519023012056990926869230485119581761440797872627852421746306159848517678830240002064651394526124502866454377632402277689796794566676599502103523011552595231776278928374333437575036136798735703265257821595375442612899408999636311422057325123023651915760447273714260517102239318494447672324883401418478183508372234464067996065233357541097096309685243068307875362626848121869654175830979141830717053114899829635918669968487154762787356894300446492777269209385453702250190839359630055781333004666486143220874566554446019937081339749942474089956965150738366538593502698068129583035286408670595046678452192691881741166291275151038249540425267598550185623735141040303988550494538071311412895230612640470066792919086008355871849869717138770938247847314088378231359732744074564940919770539463389001269709346444201386772498705663118015744303095124204181099269259314828084971805822058615891540905583722456776829449342723087865761249194165498584262747260730513848404528287219726025431996619829771826784814081050899670474610114609689129100197753038186886059937391552000932690727170301783648403086277714341289675654243198669542086093789532239602980020537967901800308230958955457830285351898522114043387658458703465951443990039599665491172761892785484685138180216926969044705602220103324170073882399939800228472409115142092710894497574206002754119967708680208831393059111452026242854084537057471198570660315402630515288170024036995643736086539605115604901517155664395630651802413120483446675282772319197839836983784334948424203332892898247916083457071407692520464275901759764566890869427714509435932096301468338109127925883420421475163570268044561459314099050859126883206009099267573225912685906159881340683372774904201032383345549577435306700018458685549779066559298274745127667724880905881393401584791452169115835939561688645203228104274699499101413034423154175149153149300168734843813355236347943187974587719900958269980566837120741567504843875441175897036827545037982134971399694722565683011615311698145337339781660669681187703598992101584817098120182458592364739570590991734134000617113032655766820783204833602097607910124429942899444233830602106360952794915686059832324215251656979288256982152185020540817400393259753875231322593080560621281653360066468261717606735980728576408925395711958758518822219194736888695669812510128152101708107136120874673989550218437459131489186850659067013516506202701329153117961504789560900882371606440815731552442079638390931519267360653850576198863126383371462676469244061790262130507255069273231142987441613903387618099777097031948504666594896493748369293502238246332852069397771118513362193574516481496199861034034059803493189057363554366256759416214462125703175184859724217795471044853679427506026724574326471213328444843515917078806547555626691598144743615055444818115674437180835025147980761402464362103753197549176738161292035832305338337053733442314806101060114666380549198697926892309481246977674373109053523052051008654000894057982825349281939079691056079569046175022146917460897719030906941710375514179694798609178815563947306494204390619297891556891055488179156623878438492715681657117293515799591401479132029691180591199230120024650473478313209167407665415132012570841435086113803914394089539705762936985544258966589226998164215827311010217796190623738364090552385309923610866077082804205083408435780859106879791211872601110835607585741160008323784174383743714940356234048863813577601488416943522491427037571024904470014724817895598217571618158614470635948849835563191683547608286270968747893399219649909774170045423216357168670550769737171051750856679667997969716958828116760521910570423821568101555650509908643589411082644321500944873836021946381774159577353394900459665866901779297969996402788428330713733022608582913033324842906412853518398705089507985613023244696132576858520143710568748210216757869718308328287164215382946572265188730227846076454848324506297382648575289765033942458516828788497445080548415636441426205243096478216809259485969967641540106188940006801191491513801248388635656250340914954114091600226909896301990641633024250983856162976773793578627038542295487335872076131915404953223889504111728965503183275764690071047550815631117774645940784491317854248083186472468076445602176394615578091522692765891222307135665844122529347111949101056088869251336270832589851757661773911071515257155041518160120352515155689922437524833752202972970677477178138087710323647113412748620707116467517611817120183398023576487609349636474378071495797933704184943572366460582611284252755174972063120014167653226961726237736672196778417182982353587202500886985359203015311197797845140325097953956450471018107710217924569475005951518985848967931580223036393296080383947200425380253043646123961726489977423977731564275524205025536684570574264416035984798030666199274987397738419233788148098143916648822590798336111057269396057519897504844943118434585709547625838829813613780367057669950924813524176679517439470970681413051373460400096868444183263514906449287430126631765606947769275810278773692143362893932169589396588265455135973906176957940560476446531648831600650106656025510238437794245702263410707013456119585519612167878629182720667025768153176433557503641147726105537076782021869425563321688626892926328402353736509435602370746310219609661544366182738685906877175487881240207322028331534150391249235214343325916998197082519249442231247498739974814009500840176706930408786766434195032652115218200395681170204513542499423718188581033898631142243086015753150833868687507438889387411321653015441193524910437692526495916710865996655179442484267337222574376991975979589403195895638315947792260097566715299869666587092637126334680688204601743889459310668452762022725409338210661169264351388512668329863139282777187617955138482013622786867387809478184278965655237312373371424501437664753517336220416858522405153305731826453177254864883875870450143553913391940415159917405437016685364232718078278644340785631132480328759356248014367679109114652074273472950852688784686836443544171777238832244136154778462637035932931765492496086943844883308456262010346672056213708343092233621606229353515173309987158023588496195629241955463646156091175867644518969288693496651545796511226211573027228086171929459379574122198349068225044181527213140929917322951771252847027263814147549486762405881087709452937784874708265921247092657283236834683058039675072606770211942464122593062223966712266131754426587522364442082468040221063061198786522543173910274052090407564053665981103517084934268372313005503397671145801647877219013191002293003271644641440236650573311211451664064910076698194770774794117959308445981926114132957742944598757690392364151708909357368110777016154304196853445720953441358499249527357359519103262155375448801539187343788066682867959784770022199916092383674891333439546400925090797122482020178876806219967317586509090670045906480044021270834741731458209526630574289427671582418175608862080060178516780449580118147612383574294366545038904470315361181289293260379284211210396283952825975923386542152783259220762426456766241203976791601759633859864074480942506198723733365795557476686296433123995360189132688465351989942757516386690066579268036222999209810918427987706360137480574081233825183963232506137423850566087834430384970235255899994299906740337287737698798955572865881137879613966406465955514375514191769619765426915679625052661739519280492569822327871007237981514696115189896157716938429000126190975968078891490901615500013347974274929088864142460770574314607587808107139405742042576671065472338863140045625510202528886058066424438418552034925735858702685053556801041308485195807530438745937834827326701652380493915188764884738936301270442635724856571836066468226324056708429538582945399408588850763440701149357829111150399488497222003376832051835800845742171200546832751460622138891715028123810065443218876138961932433322181767233052645397230395596093049808961179083527902064516037921661547746437459623798174647654652503938568652771833518833805878318016401865727009338791882573215427258425307320115441416810162738308720420817304563531530843621213274446092811389955903931607618875324096169876965157944093700362681756823563906235197435259320229144750049824036724395224868700226180244686394108332866034599136147711745278008280427843010519883675524070295861786030243201516841694701252795106794926425060080924366138453343133432922638574634946070523372584255347813952779257192318457437715554396752776866672459911047380019974157751850941163379098426660094977655999712986132846217240616558252606498515811564096169907128352230607063200376397083495178101192344506124556488920080379606018202787645711538645275604663292610130114327109114291714355812730172070057389469282180141538755803677947587933416155433251028189910520408288021439287479160462320677424667883582502728371753727918273190227642730626855451310799350192387272151367984292107847680596733177021402723181041742069481563101987778646315701152632489695047274174623130981684025606504759444333399865895976709002406479185115687044678662768530186338625653552248718280072767181777871785262535655766565050490840681457298400855024539924348815788523583131307614562250569400904206843440597625558259682892324818145290942570606589904936608304421031874558094350228895099812926059877278158077893892960828389672349948176656514592590186036440399098514888395235887756268406875631165652220469313030258272281544972887607731047601414404585943756347257876953900005937028679837893909237011557721324260959043059596645614383209227319801496900900847935001157298114570792538632984825586465525254033831235650276744899703538361951128172380760477184752655228624460026858879649663702246773384291159162437037792026991005095340062453293939467579199833850233571349283067038433212264470580311324317037488867595503804543497348242579765663974677059515765530500493755626681341444575497831882937150567158856041886999482128184056912544685460903714104871906089318787626777001537596932963266787202962456300039983134626116353384680833974585773125544960201029513517112120112890932656365147922492626691360511861007633060362622386483486846561694261025477964894145885238548231718218879007023490042034792737458601707125869620028987546508425459233819518365389150719760899410091371608335765806698000277782654077878741178577250199872526831040005430229465883664596639672849297815515755248642988799428743514391561853403984488640008657589279181648847574796794134966501179947227319262141479418296302250432895248988110387002808450176436834022362717269813086790274733038549616975480105225806702473297347966618717889502982212920537582969567068397827890477797211060504412576753204190232943553338592620013388962661000078382891823262949428027732890206340117037089413859059323251535686554432831638195547850367914263812920813401948115487939850226585611527148681385719373286633885557499465885370083113878076628347684520552423895461624612914837960819639449643712093701682488972215798443575136534666252261595161298073083515751364136127428708712763762279271360788880009683881668895693656228397368598614947872040365548298080614393708449494456124304090850944669343669611994898792126209666773919355062616177635928584543367471400450636123070167531096105166187227960014527328642415599947522271998480994747063241164544972132172771795338735212123803625342288439164900852868278539023644052780430433171163275231668810126181853104493556149178769498560914490236650996678456542594388374532464461218262886039293104455319741361607459837384609268223606837682202837472612150918843443499420112125715804616063916282304719323690411060155695577422673669591079006582117463230840410261793578277388205556431209339681991839929435675254819555063537122974168231636514800428982503674913675813567909492312668801253350253409817699537157990192512466394978594267418560003989529145460637376351233889680244953474839646007351042277028279314432143229683072395475219095837161232351198483676498736046933264273403550685281791283672106045978275028531970869397540523986455771456222894621567105862733392886297218018980925823100326356914579093256266920704273888849538031098194126056390435983245630103377871435568647830484476855728959054090206583203233065713375564513091732522816303559703414659402703227403872956854965603145902377885739248907013317048656790604064747979977766216323485065935476545217266301579159404259145268354113915409531072748768306919866268678870617703104423967490642219926555048583250212454370974060478797249944462307046548859401339557942513290731029694205782820968301389988710025926641914542933903583696170971322728085064582092930661522647529792748607881782570469180792414130303092571051282573528830719951465552745005720942397719171321518942284168195163833165039419571659882459535351953837324013229168136299863648575626577822965725792634092781580288851345285666218114555278613833931037974423905771135992919062302708522449891202649968310467053916484948195120227368477602868418175370430067001496586472090961803450102260716520975157789048050280227463407391169540795641227261268015665987422406467149804448748332603673746574930915952746652810503836580601451098790799661924287647678230590462602921864732354526460258242576347296565972809440613846148188139719896877883953908715222791103288244062972049026664620827334305547870369570921146465257577780147661279907397705162261306160416860070919891128927745272067772792861309497803194093569419562209151681573717470983048986978392868700588175239854650381128149597773547336646872798902977619413040601882765659503045943290042511443160796177492897087658592386954777879953511801740817558334429916961097989461911572160381756144847492372518812228795024644014678453575257072994294916245628669547907196023489764900791152952309308746227103705604594978214062397432257649838579534136272297971357409654722194560300385586862300520979481140314147114376183277262027867410584040298303612296065310750839966678853067011410599483829287619939887253731438674471806632881253814481352058428939755253293852716516815585321938560671544843797707198131228236715687499262290841569940366057324398916333174555902640458663236452322809497628523434834038623872504492483264334747058978855008782816659035096919703593758450796195707531626857932387134574422299921364347031700515861695497543386215411464924007371461157244435356755927791830783003218930888138977392054863133138056522348507467692178346947544274900818596751806954664965500013169515765392838017416198709654466561785397731183852503261115435432947908109078105909053907221583081385986812021067293456997883251949791802484890322404125265318728168192306695745573941996139156350731563780980742933001441584709885857035881072135997798171636355093220504687092415259226570956639660746799325916015840624972031222283938747336770514899910437584291478036273567910117839103590897677093913526487077276886308764305579760096038687535473665038293414079066662723864206956060865959899461389074236872249073044882376987503158550598305680756052398638000536844937077293305477246674522298558268063187548473452500922917277550587758640521434840640621347850620609881760262367062964492479268241077434999561838921622968747376134764019979195482206316821986531039150172002905154981589274836799427224063283676855537031327866804180088400278727300689212608124237465239802987667212726346571729236127047018548865817928390900703987297929622653749419183712404758415486051996097051129337214181925971409418484262122568897050730947273786120894958679981867522462095978936744955889114788819020220881197540017064369082604744738349525106522341216932267344559905803752302566321080258667045266133866151590272725989102025492465623344209646243158490700912522850118191199689703109360082415436066033272635764400184292613794443350937208023503839756361592901908195049254369307999748626145231638697988367907943738789397428184539814923026350533585791100612538879117118278163743744946589261599059138882494617919315746782629117787324855494397121147448755405500777116408811892420909456948098414060936996716599702820097642956451753251927558797638200060420642129513178016953008731343075839040774258199189347172144430468787756849212050943993763118176439781179030372240811762051653713834549160253826995521404691106816365683816008133247374489516832269473189589438316927297700954744411964120354653424660889212765032962063548714015588021983769976518492137462585193093806470879774207432117935712732895292604569161670411920181585516835812761095428965726908609999729236883033982518624835459339220860092298671369588490923612472696130984263971075419142692341175510012293714038775452894834479670494243741734823302576557011580818820587978723707929114202087243501160041279433707684807098773612742091638347208289749684511618244598574458520132630316270337091686892020424405832143590120329300623029455879982656178160252269794956021379253412091584834021231742393274742028982734390131029870915167276289842461787987300831514604036616848732667101615966350646297405546698480957348799212909331516714001010671444745365125647624026214487116469888614124707421871453431360863635757011210802730970858952900506221256803120587694410784822571692130158677453716501005864425769859214186504713847749265104268982200567562556325572765877961793458140008319700306581143583720936818321050117960517960371237752653572942369518111877828489694992959269911523067964640501355761666944896518148719053098058996155946679198295792093430169665266736061115152940643591614237813766978634446965732137765905999418036175205380412252895739136647596373933774789522678994285142774707531666545268511273805583549319346444326177089063476068404984197496762379311030001155028457165684680264497449510836065039252027285981338616589292174856547310249825839248126029870154980812515233280812889485218474502588589122222764368992382850419178454173764574785057458767091005987740680531068952669069934277836660873346282160044307752205408618288381648163376217820628129644975483727645821282045732746626078587227339686684903128189842854173601330502161516117679736196453616212628319645230715359674764628348115684791819244593408558804462084154462972067622668713618363838120990261153041502781927790327414616175240740141582244918142247920313137935007076751434964841155272985887529948899436264094074793507412921361798836872921646158117265861312765265095372151037593946681568730296579447343023691463331734555181574088580266308347949727850146782660446521001691511894981149056009759576425111731453476268648789775320940663607314629659561003700168511936730286236774940262751476765727369140009320813771677206632116355583817418419926161649191724303854324701195038208940940247736697890274836245434979093660565775718715732863861672099917422940022309462237541105388428318107847893109700570440699510653764981278953100559035036746024913165806817621569455008968649549153161874292830780710093708623431744139520632049886669513680654079803823712452492070361714172829069672121177144644726109263971491624976429801152522176000620886569312386002049923123532347458357200778769741230119747608829151566971557349439905008676013103128803452853166526995318140574573570702068845828736278563290718208963253214028850066458696988301573403841879917085185334236099206755703457456099711734311312572153667572412848013384623507336032011709341049271295047843728276428823745050970455787353556623566966096161667562494962162663879129043445883743945493947956679150797255282447995708923325168655691253097157855402441539697076871307656563306159838416957720261948509862935832203820393782358879110236189296240467507961122626277895810323790368210559706404454140376045300201005193449390477080239243117873040611052650022939975366496304215773055217427061875516733463339702380633198306638799112095517975731704509294206578473663652450890260370225574382753176096122188180988664800919853828853054702298046568747418889368213134428473470781687001300618109747144429088427203189430106382730175140554193806293968976226150488598522827005261544065177170417197040466686436780402730593050452651674198861175986310510480580312059717164018201988627008523235730547445716335909712838505268869121778697145271855339722694428384550920179618748133106894792919505530335114773300421065725825596107910329695646481266924960151061600098254108868088302065555583646609439219989900920697116939462221458973825217588318603126891048444141750414645351615558367855064251301949250952783496499606595600534126337018340222872949072129886412119835751139222765081027249265317462378267968916344509781714064544051004880983303671035800453028283647875471178001925602538809889131066356532883617221946701417327752224597138389339680396788133021916550930795658096699891873959952012020744837618824672555872911069761327622421766643071606641771399186343050926048354317794648635457195691724437885027186921005947636417863097391010246037339382585142157236978228288480372821893926092935016383309954494849049550622932266528687515888644697234735112464854067622587723284664104793604620920444066216785911344217296129207684443741924432601976779475098433019053637136621511249221426091762753775881526250104837853325082918842680943335923482367613292589627407992847602679366934634264152700554794843514764705733753007124708995906895267590409082232807470933511367336805373986055157572437291806419338769970462901855021396365922117755242914065233600996648569998839122269269046966560534855622814825207292257039822293315358639181516194133272067149432137339471864902128305298328269280669771538140288694914231518961865600323408738240858149920348082035492678089048798028754728579077447491636890733628165621215169562277935741118266033772448550531782316902038173613600532055679498128987039833725034952312645676535710186599280105034411191997230373059099195122136398876716214259307439826621357541895359030898909170002303202727448768837693156731958311727099437775591912627585292647641242732455227331442682002019336523600043919103194928396199094530902844483908732328101265411107966638106269968684364799037545710243814885328225812580487088718265632107091252897422002071361860922503903219539469231124980357517571658510145649239072505821836537613697868263916074936945046795869304352229299516199912131322333176633034047086009074975752695637891933752608933224447114085990981758785182673989146700281277744550513721394032586893125743273246192635469887698118408531893871741875821136419841301153422358413965097366501117632652304932612230400956738815203856359728999552171122114333005006238790066569744006811595395442497349531136521912939051902815128804841090719038119513472602866993815480756608226415056106125495481205870577602911141643186478163076604214907406087437169214050488043230912716560165177490385353583936637277085740029265670956194736980395934794073601390450544443558552771108433479761707009541894713390464870890179576352026394120460083444885815514963490943356127775709287000816880916609901679223685043710724156683247754506129787843840236512921924207760040495576852576396321023061225227436823491344786214070421544223753558903205078044992469150787872253292409696968526013502590272825315293984755000886858180647519857949330932587341140391622643160588175682947503455712238558845844096698730547505043781119859581488437106132593223278050163537994758975253067972364096518165595700379897964656386004517546654095760328172420184120747296815022901102102105414983965414123558595718505333327581312241880085529860833624877576975927083931971902238009841345303241056389040997643579021597707003593855214194553265236116468904988555535731941632777942352348564881472368729799008529598598359018933652974532589080879860375846321734740599736367105094540412250426047316675548379448912054959522200089579839175010310146376178374128324535422228500736333403124564677084349437348985617966177470954542332723259919400104598152167107952315821181239776709575779502360134044732992552211895465754246603621485479545732160258746945397896837463374064570210204178557203639594817564959212821378867845281832856559505665825835754119925755181056295104961707247950106739197674905090629898695157737263082804919328885575307031651911991203754579418974822243793765850602657598620078392990780806596502983817906831103606478284940830280163453981851572435730117403260252514464840464125721803305769908310133457649763234803490958093553595109765724020741527052521874264124382108397872278694135155763563357511154682561739421979053343839868635504141497505133060808729404173802279610546024454072550004866680239581248622721621863791199236526598688163601493145606380226021547439481448484573219527227434464297230532334977005768180224352212225408581793895635863772992238916472965801856761055368918194546555033684471943500199693654760115033429951732394077330561145583321205804268245916387318401706910011332939685870427406441707490181300633618155003281176069025319063860751184464649370548170222776842491365017636439054409203041181636097594643720168978210511476816383956503899017198388436492316213779394334552596378885596729401813836607036105552696022139200780691707356133486027818027672588437625862391185130057075026709316347872611585653525692692583814465043119761457339411412506435765335957769134131844893930717325116623022421601310784156490294966681812273921512298143767918526688534814722832365144460837785729937984048563150453399292017471057572360142911294055914106416754828530657006035320489004684900154216032248721122703934750127665111632659469689912327254437304775036404261337598134679490108748178944892913235549705163022872791786205356642200763300159734319100743927049265159634812528066584914490056192023931113193595223119192015844707495443925961798844414694180582507081372362959693407434153289417486770216648110923440458789021154589610014833760218088579909071440712683236671660221507183958928445382405133730490015199473858795155303747850967131335524071992206450839746639457782976843056947028654400669160195618022352353796547997456497021414013092367264609845563155585504957406657818470778443386062852887210677648229864305367236998477617010387126191218557149756436437170005273017976079672689438602288068614803485115418018226579038382310280353151808450827771299030909586219027151918191179712442509710634237652886105724213947836103025795627452674570198075079215146596254241833883185719572438110419870744849983208502336545616940117830369720740646827948814759824385479535115862616928124441686790047758576783573014250847763344205407135578383602278138464323176820578384919796214139341235524346745614934733612707477344369576776963225784580592090639613573060179407860691076177369150610814857759597328837911614628236709527200275555848615824486402598966641832789558817532610766041288175046590487737999319848822965956447082811607613396041472326937926218823700015420246333189004976382663130633193643084091724827321399141809638298300310193184181726964820979809999963510548835219554133270031972082632424289688470445332263861418902458773363821069645869600941002326047482088405930313611615507590253455591566369657510715531032747907613405166307156075990479749524505514807545872862354078075734763370361937856124866535301675421481202471148361140265032969806083845622111823762653783988237105968934109928499149115038065656649235098482454611744610697342217700321867368239061542070765144894576546946971253329423789263613726186092760475797196967011084327163915442550074040699876026994270683620613971753836398350186731904147822756442854201646125036090512695508662825151746912409088781317584498669191765646147754678435821675362044250362191865576406361149549616684476525109096981427889285430925840143690429641785520455688442962814310524578042988564496927904446628295960003625887368698242264459358072016681858393403440710710953741702613772419170181076509191226933633501370453439635396874885592951891440664074162536022945787072772195084241425571164770466689451873102629119687503778755830895155365663191147570853932805306523711417682491845708381192403858035080593135654754365870478203736897280759079770077705331326810161543290695388212489534656612142471106073032438792915042384729013630268228961163900842060222713789786395732958838435103635367372443988624954332572155127948516939607980148705917234438604984557812402196369277761123147923104634487853550185079720554836898152390855389727456081481537754924834094549182936674148939710791069624629626186603594702956129259737227112160580403498354600489831268736480896967163503346193313284327999130510250832584618118494165734385015463435660125838155595163895091130475513854872453884903469697718573021685665244865917804197351523990899195657651288223597053538613180592309536226114957359198976621551537781684315514692711141639396196482150243367676453707436976484741069996915625177993182075436379824576353330409142991111147916633483109092049590707416544054397632751575553912724398220142291258949518285175319649189492959990871763026099309840198338313750398257156641128032050019348467100401943047202940020663830323613722014460378368937045076007026071710702895672308665359698394141868165415313830444500602645504525112281995365873713460309062704392870625818122294547291970166649775515886262227129073943708845492772949475434904463481051944006391662477850393459138552422335299066818760565164828144320501184031041359712887791591543057903239299167491901893064759683181037347467885435664202714259722458651536730017736142561063877927928255620199114480754627193589827306187156647155206753546791774636911816981994632575624137217115745659335105693125402524403495077455052886233506565814418527697412667228970897199073895631678076276166007157855361660300894041832218167965578561807499274471021495918513402203948853294043214010134793501244830478174507858776985683921818218828228097581191072214034277972551752617002635751095408455954398924853243507753720250257053899765232057947559093249821693711799806044431973676308501102043586278381684251248293811079144039132645888221532240547273256186886269368049814416655418021101507816441832592767614882029475111023698372904306070226044798378322055240001596648075854439436948521433935302503628851937376189215507945067857204285710655986520786113109483880845956605897883003295223037214010344957666023842245299803567759151876520181475039942021599320655282802569516954258366367041414617755041933249419650734033618784686645811344310151604086279959615301755927619605091688375456961635196660736509108916355282611026447822748494251805261408029774709433933910575984735386809776469209613598552735240539287836555371706085925559113503025394068843266873294865094605651744670598380191330595523751991526484294857654946004665924049272917304027848294213484565704418953393460974279138963731092838727972876919057915433471451511284140503993125702969100986229203245361568987120595675707272942589540717386703624546390688613618283178611368983893505935789789883289874165183200121252510167289655686009092708203103873408233140698017921164569935511681446743452524632831703092663534859202283423230687624858910337584883233605060402797528259194681980726150086852246917444443848938544072067613888606210112614567517266201217434750601487154002496773642136703987055968416056056487960498012913296832986893227739210795570836455932826951196967166163612323472772903651952045249885392533864055387239557252157028205224912696864520197518450335850547955934767453302894810635213870757978346735991286677396192536994717321217689772940562306252435078610833252488810285153126868738229170373991616225945021554922033864792700404883570837294813213471808206414062465070210886386650541566145523577762469925222875222599338697322310544573487738281607472046259864858535279467669083215592072106093546530135602744940472939178096472654023980297935071325417099679753304737092759342610413793531915717427924802351367062695130844986528882019014089259899194220077770440882822821767326630701599162213708726226678100880461246124400754910653479586344782017740428317329732002333261148324148529987946025580736783334697398931005874535582870817673726459394174916106580428265380222386852682625705060775515175571793375757808643989081435529518936095177047729906385009434502336826519846112466347701425312897998441890619237870301366886773067230617131966781341398766436215980458197866500330260179028523633139922952171611646434966451855503260841431911098485777884072319805214547652404499226746031279646975086335290298379386266183796230486360829517801411582965200799067862934892135409243901857257612461719447979331328428464896287406635521216760599707719585521064693441379991623242135938018181017961245589884324271614568440561607105727484663848386028905933533736859420841144352839666444950664203341035516224469773462869613377108281183174123890995214460554401180717839585275327949484116446759672581274671295073794392162094548627224824739610424365812241932851746042801178517873865727354365426327481287955308224170881812162618737904307682965209835078870474453923812257534613257649489182960466887605571408544855991900851865216097500378923713417920006638317510887170740316951915352465002882411921595969280164225040286967761969790220698467367066888797564122333593464270071349061330163199102077974232089460771818837766926201039272815663152679982748429934739524371218320923620787930105553388978494986149594858568182163245836113551559338970503886997200159128113798621310862132705996506313272676071400949318734643273910633623376741435909679932330110990847788943866323258326207916753883055526711651718445033219206608267273618022909735307797874114006339003281829613902153241753302908135561570605679337801907261316584060417044418477345299362101690022316578677226328561894341106629666512304446972013986011326824806025551586587834490660484172987920230211401277018766479370101565181092185455057891312145365159221210623974791031854346087735332825867298282813892123333399933478198291404663006579946890982242218157793193895347703892773660055338797299400315328372479975989979463633030420828731428551113094999814763212119731607403519012211635920151796754911482477227059847948934292661843003609753484292405474853422274449106505833910390739736012997798983097683686518726190349977420393161028724287802594712966791557480124616437847566386315841327489718402297032951764414521999869467616202880207244805679953588084283347431590741803128855441624844406503563271249221575714726287660962905843473104828786453632394970180863270334451262515036365696939285687286302541927761175651194459711524974104192289836571412985748831200319965440853073879777274105804239764138930613500034309433889187382685368492251914776572745749193639542417926544571324023208368102651432386403925706432657176120705062368391381887195602345215247212360644442214740061945981465154682569338612589793465993826743883516818562560996980066625242458217354046303155944655642982131739947709555397117652064219514302418580750061654892883633823150264696539918101104519845620581590422901994004052422061619988788157231189770952865801153410581620365991038599305290657200121194748493558337905509854166187214885293201984683071931293734994763230788272964816038740402724902357792758645181983984299499643331005069952242346754975831295702569595381861799491044528711491228446020096480758771723874779557797595187308248551068187088097903851884678243234778205680301685800079413592902251028134050938905185024228820839119221327504136100812029260732427557095247366643008498307602179759350584579060878128371477647251536341370747318134712742357369823162008501028201343775056907441350115099234416718476779147824455568681407576799468793368535294791878964726418489363503282341554992581908187811872940900511291569131867396843222463199392269503329059267327158044641718170526037124835829689423648118761707071991819330577237131145021070895144987733858262553858034271338651226176100982260271016171558286878154240751746017198471514513703810572688352080968960537351787225423397373546726203406623108886457660131109911615170053329359127529356962839826166091777236197937835787739400198323258420924116039654788723107339466737290463041643949690412921853313529082800301658918120021623095730021386095381525436641643263531856700523751436580867765284684540083650822934510357806143185792137993861947027102139365419893786533911076508757221147544882276707749467728917292101712876977802152930648764110178158495379527337876559645548031075736919313817332760688135481554032470176012933739331354069924389241893180431963839220381258352391535577928364873286986121117299708431056161207163310287654008141753694518665437892601421563104845938237487687722685119622636408120588231252063186848735024412390039742613972821426510819961607398328319622627073456897049964784896185082202824140887773178506282343877033813347297024146995235034367904620788417494406636700872377818641788926181676114481252360082792077260811468434364329886210181538082651100462035059883629318897327596937125032465816634632176144237140336026668535897939343521204410262274016835240522084203095269368034781102339608402650362529737259164853478939599235483161951977161983493794071793420258900846520010773903459466347465573102081892380022824682526976254071818923101881851289248393853686633165805304150741157311635740287797585983516590446825730102716252054348197252954003732041047160073399751171598788495151295370424828977450455417430557210441335409533757462312978566841195988960574977213846594647538019094191846912653966063430923770476955497622817739195400740023719270496406256458256874833748840898321060008006445510697425839048361192500295016455209887707917667885164663230523390533951964717504655359823676521126076189047478089087977912066020614889676152434207500930721244989337401115710893431235267751174044908681553958743948085187463192442906514044336426356361642913715640707160374400996314231710234676728825599607777232109950255273333103060398714659230872328000001985813610868365684327643288984680806205905132001361996461309497177705390144621923961482450508264961995622226357305813958054328184954544643788048057418998661833371271324244186016438361037747434205124771874290070672156961409037091889369121216563271415896910111366892388620864719016980363153725615227312600649774924007017749236678108423445894151424336270010987814710805999188598170254405971407254906131140402511161398277403126021011814198255295057240372900601375065542977735540344181060492405380169411015181587981533216742677353832752020649656663802406476221047539939795631327880120077677013230987054619346633642099761128872715621777942815353476699352884632474362432417823230236288545107280006566845812201867449203040557680395543093648881461369460641982536696305905193742071310603408804867283674737879633433196184010327192817872441358817293921409090327945118352259955245365861046095711158030196999307409098939267267954715837115793150879541630313719365537554658259647689474267150762393718640114222198626502695821388006486806942574385800671476574353806955065880156885017368414405909813397007150561488048147823247795498114178310097140674223896899982802258425553499357863504123969685539734360653068100818176504770909755962214725792052139695632040399217209952348381857286957134105075252179783931515967595045249481736167366866581194750518500985502444084443156776485414126834281976607427209333809617212122487748439237503301591132960574138192809112355347730573344620470058966284504439444852590377285287274548511207975502810963176492464369664688177689879719643266838376984327042826978604563918457872478833245331649464696598386876595867640794708110035744590990776041590803399876546530423930440085827701326010544092006660533289323615631914747776012417606296422475940122170561443630127782382158527629571232063717821458100778442733598066827976814868629769326688167412571544537810903088740802588801136612760876921338463039103813592439654277472807396062980429480324233092264360718073753353605045733315641728018213478746529358728801479335301854831253692914465901654414128811689917762832144757134029367349891583755377694756012965517346293710416532926605934026286032183573977186415679399263556736637691943825461454045875729556048987007528061762341529059882952882484692161024444980025789038955640585314261692782640816622350451224680336345245560096716591226495003258776904600640717167121088618860770428223586144307684332510341365185124604471586530550365323969544807052118612948503015896759492789619725037455730514054698875744602009099824150144959315251304750403815129308189481857283626142730896592539548999395392246736176277771626841809155752953952897033543839439567335871314284144413216800958805235905374466788222372458800447001518183390671175677658827904492802557015444335468325271541253633129657135497559482222834573277063262667585988853327602173391018897756009610772197736530491592058430263018268190558337953646381381453466225334391084608859167071749926910831201265442765035892221892843574005855926276630364216708327032100092700816338371588542742238723471769667563624144992845457480886864346446511710820881531383149697504122633715114117686477146546222493006658286914426053435856803671465949469643998913866540215626629733301963255361438264654790695749838128165025095565790285081615967512775691762642777462380176826101999101171890801431514210172311275083292938053713817860973641731505178344403777770670998530705638392294383375076770285918867187039052674622107513166726403633594056708671927339955865353860509304360326377774151934947303525047401647453675499952396992114176878477411822230350761159998003514967331220733693887416196276367819012017590756728818929522146773153720475423234449677438452141744643801540066540593477944181956321937515661130589256338747901419514314683596147870240844182187191190473681987199781609808587754863008221697505943162186261029048315104130882452897002582096746669187534998855338054873333515819837648244159855367427407716730240139605632992840620835208297392035294153170709770389476437784030555468559057082318034566718317612105149040428379734179687192835497877388905475179598317810694977507122552407096500157333846838515994608841723661009277187575653398221506595739128366101404702983535837776284813189978969641096357760543740341599124547835409287056949245848879900481026570521377663260382114833353434834477598625514261395369950150301250867110151939139319863719878264577082166635618149405317439214847561984865716467509895943127007335688992486424042342805445527946589128864958794679429444475821588798829156795411888198144653886924940932904992635006287541200680993636003087946770049314339177051792233709768181644395332596031461786388599886393458849523169121556258309026289814848080773303868234121490095344651451518235193863166454901438167483411143368005526375045198043756987398055788756457795332768257298157562683543472086420849622991130960473487700266643907127287768656988639764285058241083482300932252239602041665635682708386681026211161072022809986696547228027357001164662580849215647433130111215400231983884014401543243394731046140017492654960169840633626176117915548928675775852250298009739202662642938445633723980192344471108242104374301547915106447481024694565214511838621043726421179590709994446991061886870935509564308115526220624247547357723767934220873413377416133229641496018646254858362172748735406089425526745971088700593692493633130872813269450444563544619543746388577662426474657356765335578360307651797186394502040772870763588165295810497432611551401671372248646161999398426571505845038293664215702345639495893292495598283193932877956806128407050627253649318600895792635046400202284099820289454401718136270682496257348894226954194336772049456214034154728675324498780247734641981206638817822496268356717895131304824801769271837905124877967375701108906205183069504396959809638602231924540363025499896929922819523864205767749702977336061029721139704769363977782689831461930149556978671579738537676083760397031040031193600948366375204626238530888541643897224866852781605902469483151772315884642063175157566808833921129749071034059967663320473045098184978309577299900540608246427873490332708827605894480382575255346535534497045509393455789671987837040308235039656133048856714362293324876791095864130859033333992798863232149532509275256127369738391864607961244595817233017110013402008164326232505061454301377630689719142942206119904999256226695682363957000456350956863924107100263673916554396247608889376663238405610069694694199521185237966570195343561913047764588018548848921369377077111836923939124171049683418640502033614497270345046397939080257585482386632218908123026016907974755159417018943093044075378325673072450648974311341731079406150932987712924093351120985434718899645267201127226820509307864053509316125010467934808974051178891048014551358713228012236464042839031430198247110147430528540855153709382366738853194557347967083568370429910834069546375024812010504608168409318436805808637237928677253864748639322068135532733044103791711379133941871527201402333000069238618473530268010682229596570420262358131886087188446915532555740896547914678528214009208164140379542861323289945237764272062520958371626023667894239047992292557928004659846801451120507967007056072133915408402886259671974360256219813208015790503067816200476674861189530150716161454406174616160048846541849674858445152845668342511880580538972133102683585874485609103839353705567249766559968946316899803926502534684453886514269757109816553849308341597180833109056093203184431895536752596749072339238399989734414976437923389010017015468783315995695112538219174287353786259037857570778411105166416538163130247749763761147451664873249625333509314443903544419975954205981012884715628144226705100298579669265955855167450901717277616906730047734347332694688760082633369353577046238067611799511069112798249839252172609666591847736910905093787615501728874819543577931037848093098346452774936319895393128537058909701643992316196222997217270885924776385312410014697985601524861076896741803148297057093686668704353221843057064245353187021476307051206255790226870948575473859947646956162307641970281159977593090318605938281135217068802136589893995374771182529164050953843794262045156503805668545286747473682935591951388267105900375632052762465672616482434787161268229602123762588428070528044963261652372408608153198024669791819202054920649641089944474800567891749664606231003868501755756896301302083624228800448031367713039388834630752512028450689768323210263840824352777286107849727263060456150294575122291501260854911630512706673664643591538151806646886221333470933302868090619550468108352738803825071021837820289712129471181787009330551921803520223621185524509541702250576946785766498589627678553209923958291027635032213242611926649634335016958570705843718499392229584404589849071365695990962992033421133354183334262834667628566196262820077623481919523434105174124856609963014151032058829667034845226439704549853237551540574512885597453738914942240549453208773346346056159780098468096686836480730740761632243615190461511498358852598909990745123197405831144380489699442069241804853833346255770369140816335424182065464299166746443086170530286934105913134803335809188852080406507264918555207799605881884831981027352409494006947404447051505370072541477265627613525339485472571075598661265186134589869371815596409552819342881367625902531592724972403710784123828316198131545232517316380588274509161184415133020637280580659576131946710989283561982523089152462434436934078051925514349976850010767290760707842382322530260366741414595876251744729269695572813102758133344554807051516747154768724449108747247114330956777346019044902787994265092049354044652431360586179923290476323790445365123555824425857515176873096599069736874040522779645794433992903145860572043601411581342491381454583451624664705266538215007600020802549964108664878364669372618535553984276369640925010445025393854885443501931277715105486980522393836858166938470132296212735279812801543677252000049850743114379596675626217305965494803856157424728800075205568713555005110370875048835104865884002839610839722699300478949549225095605104590599811562508384840391949473557096813373454426352527959016112418562423664272847502886844495856183624345512425471971783058916657670628374040233120357603860009353763625421720665771041641506916063924019513618827021758612518255573061137478438523866759637142306702266415302823249425481253047030918312861278598448288708845919894345360504052979962326695961854876466550304519881806725880533300693026150862518548245584332422927401772072700928504986604743950942740518115302757696750760927830720006571736938217938799492636014434606747648886619307927835111670916473291882707617518872797674736828754203460621930390414351348332781297078945392710712371705678995430346436796415933188312629514473843179370399334273646660078149660326058077400296846452646162727256524922621243895146549482086066805373592386189087393598325739625226240988672465771289829268383335201854615202612301675626331959730430838008361766748576027545753862468535322479183683982566324705002309609838800922126685042789524254088553654673726688347795135438407190119868482764240917502628237450755055451999377223280399421887658314897332106501694190501151545265689529283694415112007011315496934741178518805282028348737096560775196698240740559465975240052227302814259272734583095253334005529416727958116091694678625606150306022155468532124785522398938942231086496753818966942602096670612150614505750954533686333297437227796727942264393141539645031604739204296551908067771198604716063607616237168855904789768723325466138924344003691810276904027528205387549817531393639242174677294711766385365545272883737594337838187555537706503031742771505116687366295864765075652542522805997227413958725896353954218667282116782348681547387461572845993851120952187658971813459054748494060877416646301806676753583055455586989958117545426268269810402878616482527600688422730682252537334149702793131832818695921034833626472068452675077232715465595047007339659462080855208029783009333765852125897079972636452039781733309218658963874426639685502156968634195964072796297971502491467372174087028001581390254926811460736764892339584112650553302531118376322119683702920127775298845483037893334022875603209198857530830619060128231687209745492126790228913483983585767836685745098506331783716781536698014264219329845950445525598482543502391967581883993390337246633752854264694243128932381209677723823977433985933891976158426913662470921768358777410825839932217478634304133420742595757035071974897853057443603822714874013781772077256947621742028844289267559150880003796853208052934778622834936253456491610516176828465918689446207832198369658996567592340426613058534594874927800021449341267696365758502519045734261040908857088081847033160947047686435850090227750153531467185926237670586875704500409705044709849592328553992186719281283587878325721980641014359340540152486949042728626094223558762130541903936312510949448173032248419561034067023753004054910076213581400115824618746623028636845713954314559454036792905455555112571233622310043490939440906675155058254502014355830665566105775040042867680704955541990389670676233650092372945668668778045468934686192893551428712622674327213089788207545037448524641240268028151585903425941060914851326228321599362602903322314965424412378265394387386357343245893272763292543212161023138735950878397828051118336922626950861787964454034450354321594946716964890875376312200448640104741065957180126196624260188261628866587157171233097364678033730999362828346859761061203775797681687743011971740007606610090762152800213581063782510265522946236209907153880495979167408707010891563052819831799144965366936663336661724263846559475628197379615741261361417740374867566065886988806457989066100354207653573493740098664980387626599865885121520362076537016920207927658806949192680825055160083430421264024596164557250900761080580596927500792200849335624648376798344665765594533486042145589038093452520200890856060949364954963750783069258173394484127182825736831266085414093660593334127724305476395432657527560662558273338082057970528597751853722421719086584870443805541528395804224996186633961433955544582607970344239481724009087006578395530159141070758557101706013023429369517634616499891733941919475717424128158216643705092660706543735685367479656489316301448367001798310684284716471129480712539731739349206887458351117714340319272036331808931899647278408244840153837575565213181715140427305693885037653328425330371891138117236040794484483417708971625096786209106120367181419367879085109032728359742137580591785772565646921192537483770959316875293558747429577840723957245565465398475471375461815913970900997612523588265392882992307142485109096371729442373294095865788821518011558164660270189216313929542758374514252854781976872599186034341269782903393397176521180992942001255375373121029951489246032898811678255989398534479036042484495982020706086169713197446426318410630178637259970731538860896056939388554827289338462710291863499627812487372378824069600553281029891974321368604089134298209911986651398497294335837839668574108943339921621715039470048458358633209716976138924114485174951133195533696815033440848025739562361430155876554140553612841843687699239321296438421398404898185021806920173922854379928916608734726079346450309060465625511962699114726712797346357136993729141912572742792338453937948638702933824891611776458575431884304185210276516961964577670828190460413567146337805611402399335990207488036207119262061535829091391057494197868609385280157222980850404132185355591667103862129392353945747004850935271501729750719537013340337479705605389298412372910027714823020104246238219039802328522060692735603205082094467073156446286424811876307305763320419228630384908712806805752640716647118882410772510941265585395763300595688803838289210445327308678096945482427197220717628209131462731959546434334308602825570440130527829906618978261999367463225358532760028467733236635917001559463920576632598148232421936810954743209699820115318066543162223388537130550753358935315520417002212596668861575709497250746618604600312274531509156854227193037492771073765492868630078725336621168934944777514723268021595686931386845368231465837634112452165910461365663821754544927584062291602796214575554589784730937644191490177800828637913185041431906670439132974530461242823737782693301919529148380433748017126838253895684272996415339214340671000056904668083889894258471524632101120705457258672445000785914381828485491607017434365302952585112115017603746221354569436714945461546144048768694686786770651086920172341396071730203695684585767048428065271467646046734159301354144648884159782874359269377187219784914451751274418428242249092447263877311924359254882897220959905618465469249203430147667404804285601643892082684488703853426456560951231403092269873783140723575352113342792752901649677711687426131529173809879882733027851938564685419302084173912521388528489312583580471628385603370191970404503645207424534367134531817466126740229783219478105807440437408882177160606369877046107498293889513248237243306139206529131461256746128887102631436688405035969304666869957500504564074378396559426280324210359832081488703699735815015084051892007179069386766462205825959360957378479613520969004009937659851845924399305147161115854661602735761234378739871359434457616001474746043291721540889348265750459638453998619195795655839920186636266118878711450011437290456691118808251203341986497568196824005262667731872781543932327297647276305386677630385204788765228472356600217936246253367887985024968423384904091326301378482490914909567861585001858111795599212905464121200207791548151037286089332929604315853560450296806461180495708868369967405512912169404461474488152914676374956457269104220822091121894447953020550253496251326121459166040845977391824597958684991529858709568270939821293324886925185090721178868743905275860723473141630274439827537609621146723770492870244255351493727255997594614969675071037559799646211030010711076838149740742315970706780403727402461476942965046704807144759200498809818493331362292221667540721265145060666630810419454038913651607972734002179500235553953023501649837963059157878300172192533350165204512415543819957831317978609004413440444012622944275762919200786289707796919051864655979312866626940555729582429542848014327715990698166010268043658474741640592113074985297244004529640140944212060267294962491486086591834352281032639933458477309441565798058699047683456160728737351854816449090650769918732954689838274818994150548502485214448523037936949362765980374406858390953573709366925572532382103346201384581166233824532895643332380312261133746881951079581823852500188868118938292419755264276549135465530876237600166846992592072434638492493300341526732860262723950799357065463018747470950838263924564533941465097215340316939560072020521334510446255596866787732670968288371616047424348533798694255819113365777417170325561625486886517131858266594096424014810616361047705122318090870566218774342457270024202706647779078321026381880347387859549636175029693606916889065419562594970061884841550338504088847717110059633969443702802906108826641872691263457996070966117667976741897997468392143947886224558120186732632417370880394182866162945032111930460959191436866375169404980396855445205558333621649231717089001904809109811269038554214024440324399148260979570584631714646941453687180098170469008456465346029689742659412792065388927461018829519680651319317269351066050053282856213817363073939438152953792533856244222238144202886052752215741031234544823842895379496490036676841409924590187455990825612042316078590541290547351092092897032993251331154780503958588520180899564702118614542701884788206243475240269909997622723338040687365402150390557374974226890910010978444526984115668456244025494914127863719475667081336354091714793491695594437126899480008843972186105231215497835227134125654228574440477884678174697634151329567312151093837302362023608184804255132550435579694590548347461269041620338153987025453613222313561922413826459637465031300116784881154207757614673001426469690636552998957563568777500145429997262736313926945451124138608253277143015716711747553578413802259563774676430851915954069044330657361468786632724916762909825525822436352481575694892002756848775855953394862783236966596984841656810468267583487842042091908308365738544908768390797084692011731731545002534057452677207766042317629627558822021244289042561066497113529643403720968052855497794538901216838146024232488491301166343526000705091565781951612571494282185176719351264214990155973856600276350367457254071964587551644872493480634485868147813305641769379742602021354206249225909120407571135201090679640811612172416519303474150481273568808934852015599191814545603739738862892482864384238148994896204098482228716572905236280893859612112291009192097009969348973948351644341370601261693031279074322319814777389593233805743785077557966402811970521167187478940980854878525069064447580072368014038158016271332073208343630315469198081978006213893539737754700036649407579485310773126803976245097922259705989895184416476680708553459663167480376860879160727136821380960300316579288471499069011083536252190139296135448023002533772976698383152318471242930442306936712357636367274990719095783075343376589611567494101502905092654970579664158081398005026999245458656417340641508537995177336436851805328139045063009871910211383401143279979717351084616182451694540009959309257848395397085189256205807054030649112211359240720936452426488339550035412802948375940486644651336597119656038187137224396826632648015282809533888169316586525688389911465081152864759387337827153367086565968939150021949687389636555802177960048171137828132818137343754850293829154652106837833543875876098296850018760683288933553314986654912093242758437580391988770381964117973016225807718680349182280191093436866830716002629044662163988654975126376496128378447879806815518112641664407528139816339773907988058690377999266889130908692245602643721586366382134634559657584522883563733018460623471140898486531023078725151325932293035058110299921499327493119906458577457152314837789262446547062253081635889502048379320885355867614077207290593803537359009039079463090992589054821389534680814997331321523565756321770829133545197624677145151156664640098181783364626514273663449139689573378748956244148732943546418381878784042257304579919649020097516473999544599855200657843638079094404448295826310541022457024524942240272552561651550796549621352640907885769775722751493567721537413667327218995754127888811866838882339954598761905943785983589760386878353694550148622675441862554329761108527756335900430609432671117966330082470194297558092857890881000801973530888730580287781543458144724080789478955348629338858591982311771910117756487066060034647931249178906544364642173625124954089584643375685480551077638595843437708290120649158680020756448799946737452707112655575524318727503884360020478453086187237634451269613689194747839830935264765141644254857829156584210869768069156844728196847469376548675567172912319162247005114257026844503473947477107435576766558866599397008713188086333812466273178608425845268919398289292010776853948311732899224998209765392334643287087434932702005594090512657788752266462017930759879711259795313391562725552253349824598679932971924845124477295671510700348370232038054449153383094801848569880502848234380769789086655054244706134379442657844546541937541921219944490551888794791481420728889159735757077558167903276610786781164320790895765862215202100208197450490836321311037826578482194122537702610522059819828287768588843404176891333078047290919297852556291756846308488828882523198818962754139510460111918874699027610052642569056461036453034809741806362049383661670921926722484045642469178154999752156311735694377439482738907293894110288886426657204257016073437771585958336911746046800256744491637862641515085831516115591395183445300177739344572324209918086173155953490206318224439498366738883712410832664212699660354720796320689809662132014424979916880242254437617706094916213751398010113009121599433108349969905972711944092871306313311151938923882634615751434530494037996331107818681160668714820132727734450026630803856564707228316196581351563867197944173854624269902567179849917125533721126208131368689652832012131082853110095525225243867356185348494579579554786980067165922587996214942953111885602502169680329570203966532742908703633230820311549548784090844876019997705978844548712649784979309318375763578233843592955484971922632620597732033651735095885852091684326267631708468091510115756397370915592429860963663051579069621376572299150840384968643431518390249426903774513589577940881369952019072860978750523975616731467090164572074562249344457541083567004746353164899894975661948821149062786743059753991825759541455152520420351443308233786426418246957801760856312996046661580172715425155512198829506116324287335205614585147313198982902820543548819774010214882584170005768898857900293447602773143340297794486312101488532889785025919742136801345939636779142927514171921261856274562671552299909489555684085753443751117386021977938796723696469929954444336144709940864517692866586896769930748452690090863496153547463299553244151704734682195468043395860094896954072880133534363849861990436009898979170711715862093923153603126634952266528705909620234713250636908800904902686842863021109986393957412892222510242086721730562575196842337455698236598977107635022046008439413368693318105217983120213140330671373173493211883021150796850158020909437440852405929113345166095389821212435976033694899938398772964304212985179509551819960089460323946886885209260711014593825626258935921362288666066036497783824308900823069489154803246038471322130715419466419560280643106130828982262489082035501284348277892729747424638436282487005996514111475762171089593242865460977228350204665484219000528012228452671677555301914719269820805879707857594315522402670486897676499516167807772019258200774915645096519118656132590965511500963067672356559893285214354623685815661342423084321949463401818733386640672096807843715250546005337406314170227628958637553845712940932972455308526390773442410979441751488009541991366266348373123204657395232614056297313523403154541397144448329898105642228238655931053348186538075557663480612249949305372638756367728697527026844714777344109547290412965131554025955477182484886235800118343050861672472282286624604352182503378263669645495734389615674021789419171652630033080090143907950446850397752521291890844304380918793556610752034588273919514078290257274497970865029493720289872218088428353547844175716472937943839391578373715800857692807092929715944806577680179181958796004565915164782814803141077277413606202822785977310742207605466553254309935677180614485233228160983892051284002412461351019048440319059434723497261231109482706360094631950144645210039293804718358179053336356884759104776886851987101572228317099481976831510103707160768282701042268592838238638897257799782327061956081011812615346964379842652164825463763632010366198072148800802059699567200462604951902218876922321541270115804715318375577682138568859578664627685841993027215915606818383672116394931106973902373791759777861847228633146778557090056223758505404772097251887076790512505644329017260488156431457505458326140818195307309356237313516331401978285693654518385655829668190135891259588448715397434831293627351053514738481185075764996859899853932775526133615796658714793914112384574026867231971512626375533142266798164665696453044087389951187005917218036230447429101854206782722697943211917550198138334087497998182553843385563525214465374394114795635571809270294155106230931418755410161943058776889552645644592052538352776388265935378622896657218222116772678762802988220453226308203528865408324041373473368044877678852281635356218925204815742989471365725895686270632265542099934180386723791370882387054495837861625212902441265800727406219995519746669101646522130888244260726851585591717703892417870616587065327985184437746660097434372641769080850055001356529923699345843594767323600246400219568682766858382975983382790897562112972241646306396417561397085087024973354681398682187560692528989185232799520723572813538653344795518877903863887380491580962451502407997365244866113057412472297482394766742136630305798670363691927208592959594597415742844516193970589492332345700483252565689733138437247561408222618104971916794522908194008677858716193787539734685669955000941606619905719175471336060829365188454845267261576451101537809667636750279478079296459590705873739404705548258096349804127188677678173971283850152428294653577970548320518181400566525927999679878989628687670554778484609809448029464869491141539301888337007142782598745593243712052411098627721902841912695458220323845541644796475610277497965272304347421552035966636989743750268879929703910830789323855487089519502267862959044056315180077626949307877299317526175765524870164634475413268977709483305057455398556958465870597157335934501967428609954681009897798579709220079036812346881875664465926936016601674864927736267399446199398514199878593153478811833224587825802579194189307132459399578163161266635462486305509524668696320038754989924961100660365923775033324482629950144183226435368502752439467978804906901338395005145685874565791300098793718417656143793390003657811982837065415239519309553793073807356716082058946305374526287206774854552754624105012085938322068573968545913819209213057121750545161851949900130145639865286959627096206940427795205412067228914931339760874917108495637332283955776861544494947167793712725054989670582304473962915174022753305151455187366557266405090760320713425057084213402977758059757321760623096941953268102564217232098059448678298063044244766227835122968505566532936062720780347892571406195919718587272577382088440649473914354214741399903670193608783087073778698780589806474713744438976826212685867934496540901068838126594864481313768814086549739256623664994523980060556443343263169937013148497374104984211153984125505680577406454360955536291257046735330411462228453650141392423329672804578629547221220424712883990727737401646755566216062455009429941003791525279879964349196974350410500022070111516481504016133472929576575568441142496421759648710515913899846161958036520701290436914695961484835473755136158955578862635466860115859064848571696280549167467394969318630268219143924329718370664761477196379238723434890253798749260735435882288445559523363675184158265510539756998476844608250309727371319803817101248976209112042838556892268263205926532217254169285195807607561659403608308752134575620703631957431328711869432545613753203453527055530860552040952364065776697786770786435524378115148657661589688533851582754235023959093628078456133983804596772358603497767620340624867962021701789944858736205693935010962378958378876008724458119980073255263714957671610562335052011597119252239587567825055267075916578924962851064547092920620671265594606109345183730327481163124174650562613454208786922951556086929856711490639117880595963127036150049020882846500360400532895097699219730765784346836767106755395760683907488352420594376661791591043413557212044629297243386008408034704086401496116723232796410272996605357309796746812241359739377652188614919146022250791563354735277956833697080179766463720595495984834869620772843588540759122200960280953539150664513203702806428685684256694650770047747350779669099101617198708720593527544600732187311661841688717344846390768793202179264705072765664103059123915238652688725278530591862224274433638876033580767865758339533340855475082025851848386185021702537859299867971231725606604156520800448461420152451967265619340110836433254976049658799252725304149993431424876887138234001906089781257423374645406198430142858901922698852692690543164004721899579973239880382401700116173004944263655796389657459033641395709731786051427885808848674580187955895951052982498855133915359385640194967844957459043618087468053833942003683017018934111176622305483583979100767081393186043394857181442984854191748622603391950923135453802210890144857582221588216370007520486059780828874076087334615459248704668975312702020268547203745274064325832947872306207696436902107004052951537573306793375846761418176581778603472734735299025730673219572556356585492826242069300812032351814178456941879797321104602218783020778624077018988218683219092183877625124997602479387089280721422836568853451578850110207428973408188723113905714160413831032418186792870984753276573607383026379411564301748554188235990056038770417062153680149171174791929999119653948767788885260439727736804413496001641208383190102971793872844538641340990690443955353181219969651373133266131986465450111282582560148720018044300311110279935585663799887383935890001121882051104882363132563577046894114795475997241256797362777230166346571041262427257436915265300083238946912784055578888554971511431397653441948508008965357233794581209749177980461117605542748171251904390876722667895150343476014546712848597554486250684322199906570111345313938649613878398266277501387594634181586163025940674806357264535494563125416920672925793759867498364264555770208877770361989139190972835579725765099870674148638617881607869106986017587552854602990972363238330362723122884174120951780854333740614416870251534438717378141327099021210811593652907694432306398616980867169060609118791770003664535964914359128364424099185848890939599766947338598980509551404236594790516009231219169321825579437066981584589477184695362291819914689674752753735408251014520441322363055293630287092501751150287100436843670227531634798284380059914146443545026984577301345894713782226615017919052706796715107651286052461056761581650132766508366551462318217307005988826683561215891325513459769438053856286440806577943461330479029374180851897001298691308345024214881413999440982334848744112725886256630370345800492855315723300973473166641354867329355571072626442914891851932820728105492206845289992310309327244023361932553199192592884271763059073956748754428447396993284925152285977105977278815837296766725596743961195457771268932390227360662913356316545519770464803261842378776811640635142339189733549886259940297243032680125568931289125515787262320375133212586832061169835882601082724694852669050214376589206690083375314342091761529020673748233014466017335160922962403525408401876689509701525585408829078960045381288922010545723794899117302451626046979316086562987157592137842591432923798064873317078738279908306385997765994250476143553685366155532758761910934518598703184871081884142885431267982810383049534755829092893309494982779072432075226240631853899962703385556453021134014630961126799679497058315279507148707514031609458771184548991539429912343126610158200486005220531775045564006948381725037275159896933412403733023445150996589028319645998660585754534915044938374222711677871909529840289604157068458219099106850839182747538061573929810761673390931057177573227087792364460360687723660774828094779463007030546131538819008343368414055341204015737028530133786539307136440423439812340710081599764017743578862095938784653641071161568446572269653215841014345295414461771786877618171903692248225561792884831353127965453873361426339563277890331985636211398541425039544552938963324931912727675380212603367009488224982665257726977992871602173989946504744011207078208959029766446872750823518112419220539466704824200924115297419501754311209457549027730860189604752537075260102139970789569270538372416820795419816525919436683738963141928657693870534990277250573785785084373860155992676029928430162353136894813115391351836485801744295840218618505958859467553253908090564363492223146994784596574259231827718986958551730299941999760319807869182772963870025905631368909737813691855574500276277123904209451110822508814127562578679044884934728546294133469511392516180325822988309710060625299843439175367929184447057800145460698406843849660448781954254083394800791737927013948940969859560853055500728135088794733651557189240356793617450423664747781003212897277590193839165556521216976749545993890213110758762686834500183449013954606390055017280150674783684401501088386376210817749422612578108792298246136808670379950658018573635489354228340045085855755483067022087687400008906463318868823159397890583009598997524155261172678215732022769789120341603006553119180542431238973326772898792154189355948954539345941372612160670488074678489732049662913051328120467697446664444260092344608051981853071001057816902594562140408550396275258367988487410037696599275195121333195329339131976838934342693374484496770623044795662708146461619116932666591498497492367622021075313614126421401890762640422135269120887639809835519061235536405719748422031529018354785652663236265846517408639314152228035645493460946581446379913467442038927077486291151490254979636407289605759095737632562169396264837243591539377817165829883947997601774184415482557811865607280279164977748899318442888713496272589162172324647586481540246168168065094339795185808047633366632535693300942037584002571537553961047948564704081524590494816689037224790476432961876211400551164929110749343631123592952186209136893945409310000471689237194693706392031470266564973675003215847774051136052955767308221387154801103312107469286189952712352953897670577518775429277182952742304146764248109808227312398830986261133111163722068317326096056168516261341619895222138319870794878521809874549787861840700489754004914754426163041699272526790282200900583285744565707808272965604481691850368871559547918221603956771663955261975592071837788841515986438913884221340993573538605206398441952757851853486495332466893293519326036268989144297521111656939096351773071102454043835632256014244561277528821999291179720137820039759934996354930217785358652864293982490829507792738030543353054758469389351431398891313206154949496512437607893245628280918856375436465020807142892712857816736682970176448840354784733209838405874000262121344628199021144367258905590187314256726273756702086166555956801952181067781859224354522346545831997685232088853280578452305179114679208826302982078965237358282053954445205014058998634225154497517888196312333692754752860785275911323379341554747479984964949794696476345684242473718390161264637125831873697300514485033838847347045338501442774539175686245865203824062432878893720512605767930787812408520418472667892868012593700783647442969717845873664175719580106479182347092594041747624113073270183318685713112529655628021183102753319126307758607774875683955450870146667227925595576308901479247704866983938605046347191338307039385578480891267600526712353766552542962099193606504040000541175499320560910829697649576222336530440585676655839179151479256856446604962437631619715394062896002375426008391463183026298996928531222441357674085052615419304032999152321998458058217183753324605570252002780900561648490859285568389192770042067338778599984895860170126394643525611107489455456747780164812737449713867241071308074246768128089959616391662871261237039559614965532288458821719805041531850232863090571419119265710401687606218440015061688654054765422561755306443931093235040651135955471169861084113265474516199351459541723902501616306034326039923566036449742207515713066061225143686919485903415765134751043547798895252796493782722906910653591817963374249462220602037021119704321570097171424013450526155799446950417333701978565850254242879343647167220617417673584213015835743860208738360998977592407602786840399536550313449165940777044133617116487830157329133662742685160035153686685301991012312406515197618960075081578285862659078029554787700252704679988447392406302847954196123198476106326820462139263818034010345301955743348251379848002146862085179332224127914156887706911731129295458818118494260898180081427441225588190335831095688127384608389508303607162675598886956774072438828598114653276439938411052600869321106723107902957758111522988626846917191480438977092069468495369145924103265960852767866376672887888600737227016561394503574855083394091760811795285139506313905654228574723979078015875221008183236720547549208460017400381248689844696304996659944814080996691498062955904437670759070098802072068274932055133103268426357564164781516230550404450560721832296030288315797346994014193461716867572565589005456639343465960261444295316137428210281083305939802125006851950082495687668299393500342147782868600633374970142170429631059465451764337982926828334704241833520865898673630361943722799558875170403258817768336536404793205211618928366057655877635464068178669994634277738872058956891540043773062308226800779981218884095391155074194798843514892792134491318047021464553258025712593188479947219851356742775856071997531388994610767150356202870350689368740738237488675625062539244342470528459808092695706151580839039072007297557561352330164846154377788771608328872151486871618511881272119060065432645066363032783882069451551209713596292671112969289649916271402449353216266701833782141280361615698489887905914339283814508954021198873798187166038962850825183404783246139646586398515570972439440676854878429519578020201816770884793524768847740240514895435943748664140223171905729313819897682282720010867152222310352394887249181496679994285599161262592843201939325322093655194400301755547353460388236522207310847183232424979144790037331106311171097080725676712322328712665996118952561199335188119899024089252543824048549891834827474031264113442555183789045825864833056195201060242985577710227932937178051826807863255733688598641987497869514805844926983947685134868253510850967736278031851521621331042445864455343648670904623652047047069788970264750950833451407684458699564647339334343450879227587775887219073590922510009342173319658751509610180932955065136915666744490492630100206046757069420440773183005216825387097895000045977819752852534020454093144961104043139456866915069862844252869699841487078085010238853049928924280134096315015201227236346578002395495990731855472616596495500306920210728427647646450495893070274696616680137475289037193191366915467895745950936106799580112553865280660762644098005325325538364618009752769391368969060256128629330981419431352922467672711690868807013793088074298927014179350655166992567892381120663407464302498747522531344132820625213565161763322752435904893089531655082820571565957938799588426010013160083745387825376175797185360564831217156293707516836129174401140335629813707522831025944106776353711641748217726535047684123644583091374607941621414255566880521583523962036095698187755564644836033683135307672420898375808200431349860920970607166364182267553043809059790244167336438004035526561232740748217910429671546246346756091290037876337906034049052108376388680819829790903559986459844022880888750275022126225434512502614652825191000407784146767650000532522282181926088905762175917710732108282968398559059560956143168592596955540310690267234497725498225627969396560562061974114069879103480275069683155638703548340628772898790027040562476547820288282924471653783953992876153369037873007008964669368455306287572554861887794611604666184091386015978081310522991157958044609600292410016857886148355905649218845646919731607477985287102036722412702067259082575268409886242287855646723600334912783491706650539778281911882850087132785981372182016178878377951165539698199230191035098325520587812344243588442199463164248719851212467450082204259153856948237544636113814825546386851075836308561113218845909491705854641002548251796554977140738560567222969242623138190596274846778374035832069658736310611839226855357907611637591871912574233825905003294518382198551666233009381123605028487333823783659578274301478313138535832508954308216615898572221825522433735712766366583612599054852292002571821265074287740369673177701188426414289051915490251830083811087835579777572261220311749740008161497509174693175891501531818770198352659046703049406739948849152553044858720407338231302063661993823615240831617887658670501647604497824740475741168194667827480522308677616742771978266846152754599986508201228479951360324172114647904352813341347154070686439618943676351995372110993792175161569273814146143832895298742703701399925229298405027737193670786035649028034082277878224094407415500579741469616654615056133255120358974131037377451523412940504513764213818233735562117136116097857658133145034632012676832419305298836785033494194691953414965571096420782999731202221300660315589235894714755338360597245667107640478345594807234118937864215427332230439004686426638044707069017764044194966621928613180036570277840677131253376814638156390214357280128355955589268658764385233151587384448112809624403714925375377795360969099849156896105759129865651579852747746812104147078947027123698124702083557774616697038874358288322744752107655613940754008057588640623908781849848027815510245295520609604825713352902111503086413900442478704003351360106521901568680288219476180479997457364983253601980157221137132996202262966646853007929555072670762639645967652587310542352775483121886854110293836789437953335287820549717358869019323553592449267666302282421899825764588853269262820567709051592625469200685142456874761268387339865932624213478587009428384874715917191804668416620334167853514565056181631724158821633032042609323925369204211045788185774282460196164051200481066319279314408728762194087905133308430017816938631220018264262429564408487081294507744438780643253452131807152444251486048660279941261393778774727569118370396448497256175583922094544894978155305929616078023168958415164559039983635203641372855144717933606484696975367646407069099185851026953818668545134260876208705388695955925286915395903663059840633255664595939863233863443125875690514356948681456469000023129705225113948089506686324928083276778705934304696954531251986684474494048668760052640007499547639202711051252733668329771598654063439973017517129320300329464216078806050038194788333893749082066963066992414058032852890301628612206588248674775534522092368802680827005857278889066002305576804861231481188671882894100997729591000936390369360419782540771355084191602856074189810197779564195955262240215776898205570888250792982228428561166954997061982064573761047744951615001435835151549116168636571929689160340434607144506907208759422437486365642536969673544797317915351204540315588069760650186863762176627279448983718820022309672246012451698502992049900248567074394878211009996166770894528203682980643534751858515482578781260101454369246791097870276134337293392522686127604337928403816746725855884625882689491483575339441281045854386562534051785761956375718595424106942614542712081908486381047957430308107490451148846927665931311539403327403784270049676634909304589238615102386564820477127054968601153933997544863068853207297653293267375014899086745232164478535633441768745295563753053212035017321647886341370211210744384481760766294882612965768583772224450942774179692151528981953555880649129528374987964158513086210545872352018314766278655023069498884891042243165226643586734734961006448888103677972409245845474575009031544929874362941959239568584990291857646890850078874312405718446630533516311708943172352082666765447883450028847169138630541583462575148910989573043290579271610853817754785091699921722836100262822892875046730989121531320906039344108504178115560704574697023955210580483659456874688055199973616737060770050804013491888642273657024646563386852169964617183086782903216790749078183033920885005543522373103122712429003051581860236109156597488096461728572440789086530320618392034085186346455956195214493220421904850707485733636774801092845006540281747444776224459842098805886484549518833296417570176205277398375931945160877034480477723203789122299113681929029968650439659099780325584355768151405327810056592819177175418951620819194616397462237113488489255175090364281359070684923007963704464860730435132482091039268423890506105998456965350552137309481847359628391693848507885644823944428979963868668430497709620653489493270742366543444541830798841979571635386862301488303032952592250315039310835378672411629829895902492550706260097880413967221207450907477482627795039823146481071863585183667692681600350673870029402430065724534208439930935872305993635020414082909151139935918133846928755187633053379256181059779722238950851928984367754380117294085052703368243478407212295869930225458532951125742766575754547546691751823204460775895971686660864496531843754064366436059706247140581681614153903651004491113979375070989599461688242319904297687470325339710676260889886411887830217730448344509813718440713550226611423535678705242997847902084380091223593160526469449694080259227003329803879171712240086113366464395952325231982364310185470109440336708539745138700792543142682655911976973739101871661942245122208524705298507843133529672268885414687188140773504346569935396455945686032419461302316965910684890991809173394345548293806943149406871543043233284082153025362461257811394471936615634513484734550187869931496843692533144263044560775440945876523964092305367479893505408809449561759248874421846394622723498561777724486837034688255370781096858439995746588474725125150809298189950840925895348510900198626589973065137924967996261660554193846249369295921942694598013347218611388413448846431506934522290187464910494843956841092242489277616847084791180299300354310800840666169540894866846916455144018125132243538320928729877869219702180094630557547415224597114869301023406846419320544467066688278812193910510431511241752053189554585896039003463712614830625179066850775291946547053102055384254587029528734665585986849745354447381254277393686083399118911249788776524626815559318703648819797000119547178077960334221108285739264268768681804072260046030065239985674681987539775038122544466424223781093398337318825990226697729150329051703375110914217142345749015882704978863497317652303311473846897844820064432434402013276310378304365436380186363241630989377815731808400909839744958326632886132075806923149447070279798378359920603385296367424079745741742190934989060232214084021120222700743726112708164373908490032901384065480523855235885981492329234981579272437605166148450598446867284146295384167141161254468704676961628130032519058402465190043446554191743673656615733888079280812122399360272601628324512696492336287213396199872227513142678392009359772407727724946732795542102239272829455613130788160491542265217119249618590727824131972091453973817157485645580217571409065665787251605803750250999020580255662662230439251704018735221385608222608553492601491809095371101344917360482101211449326738177799384636885464104525225912317921320588115664673078701339204206016763948192180506641873974750127398773082855311854178909081087484452083923712214946386561468790657459613975205087368212617980433466089436388382418196080145199150027826189889855113276944292512778206743889648801461327528640664483480035428849859056859901274336600493065203369823561321751919911886348361756939692951483049871549740159359065606836767024756153231726836267593613072520484382709964975017683189411877719032909488541562373928309265411688615757141463961444570764059026285200522310091431775674946658545362273005545219968546543737003860614691018979421379571710250882396233533084202663469305203633547499073310071488250179756936416987954421780060751389337769448136242160365845972276389520990603606141983931647057841539878269204565807738844200884065589575617270901982557570849117722043844946290945599439444821511905231878354749578179165837282123255488413021377002831379334240813927586451456890177542200001614818396302662565768599231805803301606353608700630002246720703022753094673741600662802640368075705249839176636637209245595781162099588335238406008873510869979194235844092739488584068685185790442480897833475346569459900267435253842846699231515369333956918519064224578956790445134900812664351633273610951296040372254681944975230007441554855846620692206669804319019988250535072532269611482144345067667689030289766203305579257123287538976312473273668139567484093039191458111762141848168359728516673183849247652863625904530008939152190065506739561216345669648384422590487861420922402738836109649994071309520875292536009502665575542147100742926236814840993529973225390935498283278126411349380288091376923287606774501078676011450526017385413100084983351451409701702765209038910570211038861140603559057201834903870146562982892339924290357806283150359647087165915392771976762396131845454993407710598680360675364830951672254180520499180204277435643571021417326953602204847698017845459849074337749169371435424592262132592597427004433622101945982626415979463772906263457918321683905867598661613208988419653692900763815547990670891131526003306926462950523613544125725840098451680758181920112244749033597612952282392950881849911554483539093116446810205842587026165191899553956848859434912625143273310483469453963609563527406231023958228273503432973806635953711733540664556788678769194565131011041938287264243976513331540557769760274054401057676944622693119111190950286717426968299555897255571295494749955123938984381303221391552829906956374369211718060283639931544860040495200105536303057644833578158661127245355540271210161451808140122804614106098419138679420253078330178582971939621804095169678006740068698461100106096103442734972713682843224887532446541415259604677254624139863164638545053150334433670312229200602252007402768908622869429336442968564730640148605263591607763896892332303950006430920189681056541841888517594359639309471126910675716262258155354975791049986823746995307089169476361401642006890808783144386749319510394380857141121449703722054864878667505216760067399069132518184953636590120883384565872042738784315154766225527828855516941903623652093393489857407554891096838070441634133374457656068881554138363680029430926484253610562667338088415756077993789476449851290055911322179179767214668914180015058881553183957170436825252733196047165244226811799430487143646586368156642013138959065623961453386663215565485792890950908589326383867233286503242316713136262323848285959001916070141609757362935082650097699835387007100934974653834989840449702357005236112549606238574285146037539864504667118467808584955277094370122013117113800490841563218147564340654742379057819770424022414882287636855509722044289823899901444492226447946241355810573324322439918507185211230100276057487027764206809542822791377928224958826658924507285650038166887918222084507453582600765598631137277144028409209404632756119346624721701959307624589208736494898385323140359777036150109259837992689801474252396185182784797649840978595184695363479149427380442349455608321711520066268704281030485669991035334353354272166454161262869940076752463283305597411338771760338898192183934963138226829605973648423452645183533507001794167950541382813093519724917888200785115207884517824018414784704744237265283793204194566658653349355942174942307659418336186792899008300170072327125238499826698832529245508357332572134508697817257874552445629903054995311288618815825929474330250422124742925121140200621054196790447706601390378463839345225498428661167224823742671919690918641700333947916400291336805107600428731665160001853034618868624594270858071229758989766289492620688075425088512312195220064934213334061802904498916545523001134286248487578235092324501442692410938189900737383244816820105502774347608866660048797337513924860473336347290899762960084072346131045955764272150486977029489191667519062468849258117501621375099294674706461588552992302979430506169123929405847323234363211609190431725153693999642999494650679125512793091095496679388539839380816240844663133707645246250927360809771561093522095545880701880269295060873257165254262537569844809877459336020045607060563369090678579332321674836681594484326703379359196325643248948630900963956042538753337797365242846912732778048003537846615360484963836527678253344517809864620841406800831526962955279143257707552244120036592223949131345520388906236393400372839106018184906986036148810897956970962533256757553765566230416122494850233724536489480272684214611983434528213398354078093048468437213462817253176992515553117340328667450879733243820580854029801214663225033204587133239603774515933472471502276894054076893757395820500354877599483496126605745034586138539326984361855582525828471589403279886842781826680845578648723847917637311735574450750249008368996667636433232516510207766431149867532710121400776076319417373876276708850869972106973437895030221078302684081496225355198939495576689178847960847610940673896952626366751451953760539553150996207187469007395532821002457611180084916033507541078319346303498995776310173577673024868323312195770087326732698733783918600893545813019265316654207633309785562630679537990047131355040571834128014793524713823040103783179416643186949141850470165418597780113504504756641428237354821038848176262004659906299870258654053275472278466260961669046372001196600398279077665395188741329006369776277334804608627072494519274833327399847852308006801964634399778722518693171100072032174716642048628453911574560206330962359785265798082244500954914990084357890884959111758129635742516587564969073557387161129320250723556453143427997185383707581425128558989920015435866492734805419261354144357326676651363122007724653843283949410955259495985034362024950206255673392364679778814583725610058977001117729142022831383893327470646212701369600936399321018274838125146179893019223700497886332164654773054435065606841198046215839058135006582159789920569540311571673829664850518411364046171152716845315090643992908069834350303743364518663228650418491711135527106941620252543422544605449462840079398980869631955649174629099026141427380199661684694463819457380049583215212711666276766288778500391825609742447162248340611606213981160788622077524428006427383617391824709174888471406460115454962633112525208081279602754026153416698505604711932421007237749367117432917620810736583337462026809720941748377219134378397434222494348481232511838426528503668544765820585663716624344874286251641289299676556317687020770973860009818314247966328352007847448053607198929381292720083252493150464226039396857214567816274830582627713610954782731223213728337796794015229968018492633114755520914503742176879528256134962164586068753452866345175673187938773282837944063720198827255868768447069631443070757328447499729885500765539979848023498244615574518844139313422358837287869483761939778412405468896148561161069995645321840719754534152792575513114064702274353754781482512786817354424360660080314165146639149207691661103665386295344621265361723892566631015129925433522004205878699553875723232348629786683775275286940114953619994731668866521683307609638335803156480593212843745883570970879091819926022960829690190040873750829095525847858958669584730896524789020469005055263883514635343640940370816272448037996864941945048769683540738339623234243167813342630781870099257485976222622262541470558751506911550882878841103082778066526004473558913615446535243233299991708708987377093634619211582880485987504079701467450761185102419465250826996951712852966577009671242102037110883360364229082917428387615572320589336819000573679594022372642386215393352661011111409106768011427164649689903433027003057392729071340505424102558594573717170412555630993558694047830053473813736134626106956647719200342238290020061052957502316961350631845419666087389828150359653969242413800490555100482696689139477528017522591473398069658397328815413510658504109661960364347511669745823405763456947269777098085006853500140082572083663870318104239325327670631567821283701641437806316205818909588418313129993670389146040328443920239446177486306780311098475176897685425389983119670218345068041778001675564195542857214800742156384763593901416853870756567505202931005718460592528186808048875831550198365726566554065923092056542643334747298229828622636161560464353130804830077150440317376527747677782092387952694372114704617587824193189779092802166657546766786705991172537486216468108967006608567008726036774476955540924970600149617364053178948464220215457689788113185353647381933688905787491360266925013200080000885913518097377711652820031095890518227493612077718092911485893447233539287768696301872447405187748827932959234840843089319556537800698719438537586095711736739135111256546384961746462195405926100583532452583625702715122417496256475946552881226244524496654066282062469235736944494800128833302014849261524442383167589081365760978759955889298051450566013928005271817567871957745309548244779377351930104041422742770001071211858752683632451823120402620375057853587190393670600218558337133907000231096859446259000805814196630525363164637690195909954305348581623865730409813342967081293008678596458959874317503019672227748903582478609858086279183901765299472123729033519648580732873933636335317426252202404091791803394792434428819388170983667539155638896921468602991033228404078996499653660691344048119080877331482536088424079165280635716421976234392872990396990317849598788654998143883158011496408238834097412351560204373622063073388711841726472418777557677313334398566164901413248721323670665526835277240243822799979535415445504651727982236427002706651801450375228705434251821441274835789530379159888392708690697762790930634149451326493032376495398013382434304595662657846471767992404180324262545081218419545310677641148818393747294400852391113949776741957840835280455262798439737727634148624499644224562663361435949767040401080903229106585742030812443534323528549245129458633504324257101232863488805300237698865222859569040419337881263498306336907787984954371683872214756126110850406802958887132806720313950427905464468129854372014310524209764011950169098794192812500880238077952090112990475374936686816222481986764107360012073334484771346235334215807260736023747246838731456521391586924146131761683226674278094647808185408322674387541555455784318821571715399724949564860758885933836761302065572422839362487807050722563795505357007409794424626876247845014685992002996680104702602749347185827757883423919117451863166190919525222886649778366935987085966409279053966562071243888479255329230738758795339762281211473254195056369087149912411971155564903217416078317161145410603938284255980699645940813123760473893300203964568741530803436388360197086659150040301305345611528142067400446727694112890576190020457956263962600272541156603471318468719792636375269823416852790970990814481104482025375436075661886562862408968297606738721272472762777093004894317444923017025103774232343915029401626142263403121007519303499637273749354397612825736003297005277081372079942129883450476271351845354642736638945973147707879871098529184182027368067582846673476890485001966718707617857338072669228082977613834599373547110848461280045421221628615427710000546315683574036702020363395324985930105949471196978600107149690136018571572424771942022479976166671893574216773984255368333866285353825924226626355165261761246760032851658683172487856089475424257831078643866380197573735123389787215978216264355181038579832567419214889058312799572730652552588461720240764757624146681790552024047808127465445702062794861064781579752510536770479620901724578336618092527241751176446461069965924958629043228949388293390145402674647427123160854557951456028015374078249624870705450410296368915834622891016014891343765973540997869430704426060232438262234205857176621858039097946699042975352079156212530112344036283345659744879375266316160024232170849796264418490211228717621195571360952365511192680255931966623373648660437224531967127925376003939379733935183375176356008104474108675857733576824867643133250231703529813401640769812855716869581528703156257196792681495845352499720589735646287551932541092940856834230207605128240730411093072139006301977039500638430803392351851190917705404813489314960418929597600126799405725484624044262126363188739006446223286979940673892139485497885156553080462500003274612342772726237370770685311614433033196398603930637981836518251274326233245605881250233428165791371156305301731605175117025510934975860101638524925010096282803439955841650606992128894403816753515141580925789995809747454539819626858725067029724015906246007028253137607087637363710711208884596280750592414228554967028433420807321933312170384729615795293837459202610573830488639959556648915482311624691600182875309129520115776981078246288984168194471790161535680026135049194239223811163373396090613417402027823203396785253333757396420927045448329680326111481622171843087093853923177289067317434969574065519481188380226463415575947090612955241611264129410663081671058822319861164534655602839760621247545625110998680176731298215541709975496216126364508502320930427103573004517443914777996750281921332904457945785803434027480879897299533271559522674787899806706949829682837306506003218478896003306113803792914471060594238243315539714532904451334877956316274305427505804581126103457741002820017787312442309430354290158129906351533299919239109300195021495532629037608327364729680166849896513141845538828080779475937627855665033064402113200084965182477679077992454164174276524449625075982790210798625979239960212744108207976489243044974875557171210712170345133949055714368780985013120471361004998487373532244113817448474617565396563416413665760621416008113656237008901778852570311628197535456205716374232625622423347548167091231390288701111397509113799714367498283738631433906071725805584393107759694901542917684149333895915889290255513017637582435049702425350390695085682619964195331405147999348307941269763942062038016817352794272824221629667827059761029546126965545342995617466827788135222689229326603768708983338298878441052270898128848446212939125503223237395305148905547084781351742829426618835632515473030853532875401084208119737257476058130989561352645218735777112766648428631900496312103193449576996387202887506795454034657263379033777598129299618371639933746775026475357849813402052057102410695498332710436483181421930123492336886932553579932160435345881562407579105610116124293711496771501578133629215755316879701984728796376288323856127244961096648492391408888125041805041101449475522571233012299630406036605996601744541986829845884437710034711294709721775149921134941795394615198607294630679956673270725247961760076895531054953630715616634646858230580233499369450895299375468921834640654239424219522832229999705662403541682798842614396838941971065146812667359158408468223396198924115651282059746804134396100171630619425688097981736301164062711560569513599259902356459104392255156362733642998229045327970246605006932354837319837749122477355601189481517549174440664507731817519363157780925830817226789517454100240938679478556636308372713489955589499246444508405094260638265758134862213881824817398699627652524707455009417610919908780211870065329066550486579977570671330813563279874265797722650188956691094452603527772409584341055345700463802502267511221439473706555028328309336569722073719176503574982780098623868110681528310294484027615126147664417242347483147881789618017608989791883120442413487797953286534942431343226543973303100065330530231186984176517755073462402863443411963314066448473699563681058538245317957288184447501375562868719581796968563091699033977461640414963354251124150848085397939242406518966516618796143315780972264090130222708865596103337473557433259738986355301528490710434221989001037384781059970029834287372519420868712407727001374471047437257132594699029492590621361233026946439386777251337573534735787059361487608152336170570215336479110442182370181549002828306396452512092168382273525671263159624992316097382397470080929134427158385285472078125767332956343467943423790976458192071894219542680452564396931226874223290643989316179160732946547448361399864510191714302540053518135117898460431026230200929081710734144725966913888108711339753324988598473124528852245020879273887304099269849796184078523000366985904338145165254707697456530451401502800770038777243062087536866757873233420712171636964375264360312464972047307949907353822776649016878146850162991408316307239864292355936631837565540105712718980428203222818672651517420659081071142900123239396988765680359810339626429327161989868151895857774789385749964418614624556113478660547520655047411440138405408040546419127217846812189766381840449800336764474818636933360314410483934394645945641377715839622053979697076811379706856077854170644808509165779338389529162250223450616765426782417726158620116100253069932068796260906368140754697011254740927883700318713793561627799527503943315582582319712626835765093703386008257753002387286681051377759941842363601866394913196781683682517924126535107758765238117926175386484307914495582569315489199527486548066881182000841457222110916014629773544849484371019015714612974700972219154611088124723833548222275055638515188153424751285795493751830765541050110987528720271678875558658667637363647263262395134319233000352168355521846677191181932720639004969078744645430703797854262777269909956139253067062270655272759980222855439085046168479076420906342176976103394645236692495166312075086907849538022106024134247823207605509381151598442229162161834233435936718486311142357049669231290605174355323602749268104227438155088804092756164460460763780558788130877655942811975600512878860184352617601543989772807583433327504606310341146976297361274717466524907879843067320109618872491119621597073684104630416632683434204029792244133477800872007835456186254942377537478449364677872001779853473191677839801586693009239955706739501343534768272070776235135755607371474610018460928148997539522659414473615587654061853257042589619532872102511365052768655275737364325244783021191599537393124798053712738519727932365447545312209781613673331026353523816071887383024937257607545347540771807096246453404584185830640407136792648658706068302285726685291908470583616953449320647435050353931390878680255080892453462750758569449139965389054411776696526461058366086225246958503330843884275515570809991002996091549807837563483419914924389220858455383865669161402304600518269848985967689480146645789645749896247872184409794276231787616976738938204137031722887376666133897378163142917021888681825014566005170108680325833230463025893026152049996772225737067486106871716752824761920289681711405911647025539843469325051611005940491281143274440661063546758564560985765040305395612053017512027132376661520459745163715781866724432343985191388286297492744889884354467333165056190796084978988134166038509045544950813960077374863655735037735261684483106281728738427240223794816210687212287420807886494976238999726821826440271765453593917872202544689075153863718694289254860216320161015741801049553608791076336481971402208997900609314715035682318801545147059651209507164551589297137708618389790274165552893527143838610112322035014072531388315417979039316203089332566724284262458505030693830082038302981741961417199505934120093636204637931690055696607865947248921515121986042643672516019709979314649597188397888502542829524879798789734173002613396064406129458904220516716816188571523528361033413865913737959254652398235505327928068913797041596965221199542381334473767925908299283663387122788600804250032035599392985208318275908081497107954315777596967515898374480195361302878224462662375955838277811440127295688960401076336553917887002191875527918121507951760236944304501258125098254927601636147564740014317368395389838697788024767719924946985944507555032458548780021164640576455767469025964559366805504942721721051544589503719803299766113564690587318828330357037171820186301387052167033222734421798266293455669278532041918853426282863841348974509998236721519279620953524332379555459261930798531482913864688012001981319845699729212614433331891803704350814699799914372638578971406228059555036150838176553278496639280316141570154247616429308401083260065046314994121334931527154841245227968646511065392819601788755786305769299643031087130039390734490151538260145865915372661392246882079045119732110237681560891928328573348838035848609562185269908434774121786446875135332960805849521375932765681878341634557060813579951483277147047209392506720935753789149855072274071616007897348850008572688441760255161250045609189147800687756540246229730573574455489953027917964328855098058708081313264431159257216634347162183524256535183844362693444297781375890409492045358025815209405002554258730646153483151611877959515341918405610803231498378364743204603342330982257768290597530339414518616150747361472638644500894568296083655735673086972465820613107594958419182780951785471636852612444225405790410346257578743857068785395285080064256557320481524476669471289262003080092815206696906233862112317648271966383181216229545436722758401192056073159363747615398932631223540847042429279988268013038778896416390989996969597336266663534313195398530819620172221742739080850722650331240082114874766095650640313145113632757798370080304385734559556985255835174587064763592863466828387960409336436963152805992148245571281336629608481074008767903738740599561950367851900206763964466127412347554192561103762081676733393254418645103356902619864069193282558173065094156438191405691715248140644503602152369107635370783064305392034903708424470772155394680149982427882091092987372119624549227662969427057850789039110669726375772315688106790034223696919412527818226290178354100425783718410469041885849771647540211692748595646810418711274604625842235903642080913974992804642807248322164924355585593316322764828590400595868711086097595613831769469765501958664013363476340690518122919737110383083502411669534685925205822586373882797494445275712242802814850199506149767644025088454505007877269447020860976073477207386244423164620509231224800372252130877406314241838393655517893515307189738777130101426596027409531893272477529408958274219920300794183747113450835373587106616957412440681964846394303792165440922905230088715192018236449377017152951796823962669713738758191876074147624723228851608978820191605623258133386507520385748295275643825393153495634560295256217568047594453185443243121819383458431509037185915485649263488109042613415833411896957428015865579120264264142901289229120196720045515478589188735037347328638314094455121036414843698463527371727412245639237805402242651613224543386130950841456973189851969790456136044308045828705919258375563014394374959375266624358467894410413752786219190187012388333401018509523501914111205498037375300735019383285950980945757132351782725456788652105737617090062667071489519142787694335346772919584579884620581144937423383153367503899264699226734416316989949644906255933760226730654204165559443358841961566536731451009378918069923191080661355445778482881215582207635473029224536778022454827088593827068401803858820801708070273942939351897561009824726081148451683857808430671979966650608342758610545294545533096436415362640585759834576384973470488995214857027676426636956491656472340116811186354393908811998219615604328449605402918874433835985329998578922452762050013104980778583102450852120441160638592262538462827020341531395860677123244323040305504215227403443779702595112737022477421344431993916995172524877327111406303852190181858335130920086016886380868310275271167198484433646280355507104591021101176580412147986080985247433390659831180033963680633675497628419172845927792838406087758017740059045617075531406046232857906007371884203954033756415475111233271419422451837101810894043446539888915688460706895793838186332173696774842111630022370692633471686071406581886479333050345485878214759818607081485144144833944007028329532235605200013609733581250809416179717510454581293122217352841395102100833465855339399646245896967347211317508074625451464586680608525957926675224327883946307679134029775361525289319651235052112020430536793043961582774252654439690272713488043276697677036171803354330640343354986714002499858016347466720234948710764652491889494557636607806267665024285855461384368496931616579905371733360193828713837707768667220574977825367716344242495966136020273480706722211606927360112309260088345756819903203838401000523368479570702976535855313015612270296610608192094272564926353051474769422544386265891356308967674844682600081921200149942580548878073331192891708414517596843041919517028910096450726917384459964579358888171596202752380591884898316649746789351803873522592428038562431999266963574824879862280489247866593108860449074039548866912765132367071155382085750707981123496309702790000596405276466022874716471416527959436282629089530609706029441476443705594336367048384922029121916438117493916432410696061038390983820695839186264843738305867859466936973991062800931589854295821790647367846152406520122388352979908322592233805340919631010343213032184844204548212387822272856296342595221750430085129508107243011701321331135624097991907572169269316080269406812190646832903312562541037765431103937244235582952741570846156803893934668741040203921724428416123392516214869776971372188839514670721871419568360548418212833290309856568707473118527013594543870725819666020650654691812770746303955585570213413724059994183386858991400967083847857106638769552837814884078279129881532613092122346894042874367519409443995740842521660747240585944482531430966766222782125006954958141426535902515299317567920736660062730758377026257116481447422528310165024962730446456941591577494750881367035514471347518613281993828679852206231650835848794204972454704138963607984645059579522063332954019710973286689867900272095348888877768294315387017868229327538739147290801156842241847267531577263097207818332754062889984483549926993564034542966113079664305927980260346099657306709726906851271407454508888618905296895183755124319816856025851834951698645931394858134330297318706067092058257744607475904590873125995962741215460680127771246025761238808520540085834923131060687021614017292779062718107648724723128661831274637379451749446490831854701778847901185755540494724999555341157477197835591550308111293713450117941796048092161064267332682770754096475986629497558787405071244895089086060163310684818460487288166629240071374581031400733936891393397331028355228184920207470817242573246408237447744974992500838627363258796952511783793223926203059242286485900083860593756745617781291082694749581567548928893178853213600387164724102872878830057406944335835596497177393141859792227252839008968678358413813520673706011300873799376957052693393018034697409261144040976813903856807900203498295292176987981177288063045446386227077012603546379365207561575393613248728336590061311456372233358961997811548441816555516338582122527015692577801813234098547894035701447047532825143732132511265194544957530600420939833602259235032319888469713118520525714564472834816705864771825140019314243093961568345878471884598585825704610167002629040176843963095491883908580364600673038305619795904527875999176476733764631018708433260819697055293880429746648956468036396873677486004851075967182690467130749783432044778253361193015200305945285503299188044372498768924366780146469411869014741194505812549325040936296914280106401755301937227611188806314484776453716796799303351296928912380757767734479967836865305046132360069620968706401548301661565539751155862302313424516019642965779291268150622654443945277679443846931987755404338483322259558927022844656854651125133818007316483198306338789281668585785602301954104818379683925902649758223917238858734587788379745370703522454655838030228572252956597754578086000473514898117087746811210446228870283491368497341242394325564038952462284990976945936414697501203929295566906705129653276162931408679196500535968550842451932157924652923576553251949923726199544903073950658774167555854554548962955356846839715391420284066424841935653546900960272936376478666924171640333450642642334175240297362698456005422450312102074653966131427540727676454760910571576294028130624852684473432660291681594629818083916223742830296367490053003040130047426153422751877873610183316362086485906506008475655781144114604379626062505577054925775515549637111326333447256676173509521186910254224366956020058597246452653141114269611099634399328325372831603640462875413289361829965855438353765235115060482706395780741991035599794085546179099890538303986315016056413888764662818747257766201785859071754090297929288716868248091844428088131948807893742214418984681085939171718988006055148390850670778152834726720220630108636662055980006253317738154209558890891299688502469825717384794404764349895411163931549920014090364095733220809538792379117712746062526236671681086365230306750715058390631239683143672759276523102992758520901677401610218407638358665886967529418743148157504190285310106034769255061131942104967884953471516219631775169190447847014375376731456338278283649560039002993924068725547507855281357040840807720084493663860891462650098706534459465017751641618358256075547170969832193992102004233750169239571193337686882585983839195197399570443580944550303992477891729943527519769658749408717954416897688696289311762842819951408908817496262064054026250962201147032989587463638877792156355724136437059547066215106243531374330916964898041994393032432993464312658693534533938303249104508750241247696540912658520177627683363685680939571698686381618662477053370589467763889190952011093592904265010430082425861012969247408358774177895696311524541884267909489025742207397482510550722026228320001171887746135828829265967659041190274568777809393874248798647872877001267368357597998831884193970736532963275756204987356971033575574499915821039434674208999157826704724402005433227552413810849670628045800081340341059467797371657768538919836045836051127965802766796837246120832436170645653990114192120749981154102747897165523969502497629370336984584849835091533903215509002860291649186437928848362004003684812309556303553383138595258703067796817963278343099367056342847010776809538165763639536864412051621092010370481626407227903595384065846634171661450396162534530066902129151386701917417294922774417083491975854710037518436826938642114402176749222832242459493818376593717167775461233660984763319260450442770085278977671346228323819243029600932548997318974420523098662155295897425998075034189257989521340512479497561108770315079445361244722236774090656167102760000143059712554827783199100524751338304781617412309190957015737367770525895862310646355854191932875678568977829495221559411424872934395209160910481381706705690131336138247226137209233871119385591530588563649958355831783636158221455512936641483078304353494297539034357653146175105423098254779746969302212670315311102897950346372648906997773641045003311088765053876407042996854302392842602039494639402107685626335042302289188953196127366319558403692069262634886081672182546867132701729490625760677920001049213540648617073707307011268200523755120541519605207791183384214346897368863909066448204330476072057421337119165831772130582780725298977681690578987484049016044254083111459354016789710156187273878475128717924948907493590437602461464131388372591003177615580545221516249766390397900539653985196896402720381380473171550952500967977173426636084679278300621066968233559535623699426854027237675457421550194931740039087675931223710162265823887764025222241221529173718503258118745183125795444103120690963078109933139470114128790382293259366072675596004501426236348929485866128026499666041075415432490287765558080345495484968744943602882137977913902573759145422051137984759432883986426537012307312439991990516537010809382608307673297715927529462675190415309571481301139830943684811798099835095081417335255252840631863530177571676071678530255112878698236814177085737263154485698708507377717806806049633449596413866097273993105124258086651011146191510480757257378618688357926872516828853533481435719848507709348313158911846417892175500050097205721211476411415792480228150419858822720853455781457822659320523767621254387311220733823904169767441659891690420440724466583733653039609821069897463541079881871039363335207571728601731872798080696066299032717060206426564486751871343056474477194941341407456059396494325767915011786837278667968268802668929147459994404068987203762357235920208273767625471191577687904577724772859252473042692305742191200184443691549259242433540754069021393201373888945604389626919681224985335344797858350725710627598278447085102284597186063413984141849011901053780105628793392982821971737478031851384497601870410169859209690163891023129317125434693623848789163625474783134114519959776771639465781037217288975190297821566889177122869684231764426053285676806277673929092147201479639243595917241753738610635267117392582381045800480166472650064955238643241947817283920245453354379789875138743928252510943177343294193986872307033585477093080366102758002671977854920286825508658565428181231825051949917136612856065131751724955248151739113100378958846124981427753491799022636198193816487965000122701787825449324389422099632395157480435254165750199958030227774707927236501426171098082988968663035026891599514823818869202971606799900032907805388929697350950915812561045575827688078631706330629453190900473811550850184491139173802209176753566341156770821544544153189070506606918486143047024474922087242035725085895455787082205813192280838895360898459206654091948309871866373270820541164901078728518341811480894631108566438494746927953425154605452238761752474862529456474868047661171841049753051282602039811733984060246607053306423241194996176848057722592981202098041742689788538371647680404673553626201983191712373452501589584590954727662514890330118925972881007382647374040217618069720856550690004380646996425248428422328881684379085224775413095880168686650623936325695190588291807385387094115867465105282995853353554079747373642504107142478559659414598630504317042337156611840852675835710347621074951433720967117864885712141968933284575915912785145779003643328689267026840280913605860077367843943670552767903198139818856042784418432479403238659949451859814752478145297597793828407697945057487126169401395733683449615244684437578400133543273113464883112741688067439450079718410594914193153876367917540483070699324933770855825506916556148439961812430755889774110092345931492824161626121671374981732581689310617602604011225535271890346023128626693582064656929003207733172888924255644719839341121534434061457738913226217334720494710706227797974820366740584962917046993425402917586484022395146156110555677430786696716992153060640995765789811384572090423047103334610029549431692364029463771664820017964830489901914348699289391421140590204106489686782002204778497046652451225523334913740633618215476579324722261843520971602232039152076418766948416480559853492640139371888344352188011479277694568593833252400538457302978239336649839969947310597520731084186119704954008437455648693663828099157179897901300169323700589096523861717779908408234493878338974596827237018077746155229072993202388872283084138747948368251235771771234997795435777358316999788717434341344774200061126569981860435646967200941422284009710849436671532914936921312141492073868504334939127357609182829150541743162204162711203346326127728816458625659985694529276186617097469101858765185307034802234428167965699463027344653033072171629728441614616385877641067194880873101064472448186104392521416465894891898441750748063221615540264177522346633188734970295511989715407380939301242564214186841820529486805584466168035496705056830461437978632577814963900948048982031610683142893330276597503115810846132181358423942723494844959245611262923728577668362260895385452106478414830427406947187108527812612574306840942067609479967013655304452742856533028680127683399927063441013148203650638261186215382684852745297312925146542328895620870710192932498651878943423603423311552489528916061409668435239444597994605086247658408808875708741516981700249498021159463349490979923109572890370515196253387562585875373472195667012158000750007308803810264366582788899120991635522597332593972885702939498786156083060099662938891828338230116326078501809506088812750169197234538393100392990758768629751648786149975550388077081409062758883041367238613441899332212468545106339035945649087210061437578629413976789555949172513069216564043659391073888612934738630516014959392434564631968920583287559372472217696378769783487522046636684585095223437621786790363313570962328899942662569858105775884244563767528217344365248407508139025403519417730489904984311787624642375073236222977614975544025187893254935262009819052978525557129149404031567931707551715825371290917666538800791582087999212354463830596090744211315969228021083792964118967815082883250236415603453868108211514680337065633595293329386862806571305625940731921671143096688011536239696147547153275662011737689934485678594782734571245451671793981428882667864694482379389489683939647368621524209626573537773653259396647395392759552889232243600774792648305241032697650545310182942466015893231203861002194287533974012504184730854507945707144687608275329776961198957749486790032705994745508353448863393833383903793563002793302770147911777455861434128032734693681584523764991675053607418018764239060038687571232541528400059593005085770273017636192642640417040364620328407445924350894354848593481845573458038286303888957526685624446039632376013733233451112286119555989733414452026193279471521415905376014220204186492931557609945074008729054551804943460312690140652741535691258450565741518049195109941412634300907870904207166668539327741007236771949721862179158798472297006909080819553098961226214615150965611358221798135715607534737187350689423586828008767566096630291424041512955684339143744788489736229982206576189523263845187379111284810527565744917196196569449470088957259102393383833273600532403100473397499633939441080860585166024902493234974497107495837530646340261930355572652744585054482505175903772840521497686720836156619273840336354586606996665771393610310046694926254919866260764581594576906213000210437051402896410610323284726663110796040392603685575311602174331004159083658683992394115485306610025698186004453613053957487485738282592684942045529736085632081813817550459434897078453710263502629096455711090517013389196645974055986564488126402766772541139649783191241104778996764244538772543711998107842116943057897881365131006364015997043017055304435180140393301925130895243770285602549849785964690951375609282577303933841527086615511538612522460058170316187521482478848468206226548337592926177696356751258633742598423639800407207429899489911686094351385015385587038015184457702094826110314602600445921152479687638659202435363527245888073908427329771998954102331483278474656706572769074873855358849259276521139089030617263466133567911379875866173463353524012580689342928443948077529013733449883951036863772171530401938386393141920721175478870058070191870981653348353529106950720700267875381174181994375500234309426159828237730393640807784345214162833980084445693373032973604949049105113052837471742568452727142005756447500465446955675890216900868601446723488984183256589886891150434869327225237841649965138532780282224308196156557463606285598064200753508528292070431266027508997691261077603757786954147724104473381103332480578251617968069427042346936940333992470918533928359676044794783475335263688318510494860395583906675887627865173466042235139145195637118488563456910380852177514840115219339668283256268220343519743303160359121276361161585062351956003744030987709105962060766739586572557503586022125519654352455581564339713316918533947638312673219580068074388062741203818969191264201807741191210076261796088868132564300528274708891415810396638637811295208776781928169744472776708373491375247602641572230661983654989450684989930027245739271966889446149862676163403530361140331530755460079697068601882807996332837649932440875219761391997525349097806093798656543475323153047227261433539904562654327163648911146390662586087030486495722150443637743857277275962025676687108823237953809094692872193852730575850568851384470065314016166210604480653925078936827147278674747727566428222495490851969779133820658175222604380166680036598661612298505607565042579756946517812173259153916524558351259553790658778947965396666330107374986784704393706650718350971918393254127910556143595501309521108527436290927865768682045300370940732293906423817998869655385551367196705903506620258252622609060584383169892097193654735088246676707035702520019941756842805036070366838018938220182354357914653885616063783622786498533277881147246115135188007917366723898233189260527086214089064987658312928765458309816762677482718469742553866693255572311830719631251092795683111858954031633897029152988155257092588856182416439134090353712510375455456646453957447449366563364414165112959637439545288135798562897726296972910327540222926087441546365745165100195516947266943487436054714968874059506567631292267208105264711987486634023415364922958121440801305285839800225796602116531561076319345589132050185756758018217315026179798432410632210013925014120507897151376030112689601810841887858290681760347006463399874093574819177515856117650165387483863013709544036128145843712286382592546019559042665881637222355761142922965749117685408187429009221896439823615642388019901481714023292961061461103996469475432361808400566751472264880801798317031627958852026426975075611924689762347355530438056119368712082474151880292128193354426900534918436154205557545484484165437112290275450212357191225110782951013118958797945667914627138352078818737829620501313593002996919626921954587450683768073807500395733109148975236038628542369700577632125712694275601700072090649004829910652832742267673606017936128665724397683252431397398416215694279401786350367949405703613491788421886618337565468655403851430833882673209011091147199654366734114174416351020035096102910322583517776630088123307427843888776801674812243072916975275502921195170197187050889128389915793562812885171758708747615618006382454182453533301061719969698482646217545237124449021022184205789532038018994934752672495552483427820451933001633286527038256607615229584971090109500925705186344204447145382621010089110268309389401696081091582417599114207320622349871707003030778509259475030617204521861122469298485355570047727866910637640875730786844176733081886129919919282977395098057841402308200972310633058725589792287899478557471291339007571585897831302844385741001492040235272233329921991037236736140032527584097208895134529362347671260379306622618213257144884444473842536264607029644818913468878061002996882835293988432896393902751840215244269657994927585572744055089019812234538202807747693275038623320607697068563095211934103669078183675638880212358830456477194713366208762330146303114536142612898372566042657855196604969480420110647962327775487736892651636520033884647599547709171067671134942256003540662718614794467837863034692964882343028544531699615672718442154714914353689656715228856080591163694566207826893600462245635418457019589430046838138024748243859835832663160866622923217834055168957494037828940617712700692601899403967780194543890476862126332200528102321106881371711648380759910153212913949750573316426079668795918067292474925909439541440175559667617239286315438037831873184986098102960322425132140247171477991368045872809315073643409275711102824009216274989270409217019761680268965443390986504760117752366826769273564776753594029466816345643296929206702335957283667030439871933962858527672676587453378452986690247315518493048763687315590969799575540783534825038353220794413520256404861517309028485708408067992230161134004555957528743272673562515628643614467622828797430045800181505485190883501431667526249659169459455687727890920659557930757955083135551797623489447747758421596410328239726060459303459979533876552692926610203105148893893293979078247490666883448943045526035289028332858332149847911470229840811185913162475418264445869513368325264537262846157077394235961683866220830365643314601093011751973251032362495157737565390532531516459493455715644536186509451338934614617336767126630638237556793646398635425887918533279164862586245755632662024628701977073351056418732703538170119662350043887239265387663654630901892629749984269876898249867806505553887886528151718002627189900782168327301533191743771336282234969274394402428738837502398844445553409555355285449476084366289122065675695234945382698053378920946342858183884555793612088070413297202140671412276576075348681948058605621984486902729751740559396726242590080285189485086860662220597757117634476315304819677370384729312575033874744878307094669927290486053972485553601423351476543327144655285739475538791806368609459254099310767998030026270393196285719619634478695135460800366250351651681690911366704502364090969791210302435779484019349149222632724316796376988125753723547808272783680344440497119433309164645750168567089854586027785941591316840278898852675356862127494915856431992142557088370401765870226281820858139555703780554661779775822319505334396573414152403754063551840069177137170780524188094861308587128503414778163380125885853330100918074966539078259741297402811149080131765087529322959286763954662206365397467872272902655703378809824424121201497916621761555448741818123579381644699942937214371161696695887205931929656276389015927041499039313964818877262276005289565838061032108387190443345567498246447742496494294824381411498613408806306316398619072908302126492627760393788123440653875378023376117828792132826856516191480225201138931499961186200248456635776821599712304934400338362548452896217497030601770804166954836138314181796105484158746316040615157014186475814866741450048626810742282794663707156986657093039080777547069957309728520511154612163155434927668327210046653570193023972443738060633025510080735580605679877245693075219068135667930017046598706913591867019623527922785876704425984991857238774312705316970382724233431497763811440933139675559197233625083702286558619128729049647445320140978262506197298926818120485924554626435675381275303620668684389492690054659008039258268804156806232833426490627743404599239555146726942541027773594632788646469990040961436496545564014091690181522655482591669569526260540664267599438295226848822507639527264033533341658868093263271561491625599567456349404739140705446405219547576574171394279755585160732057119213296659252328509670569645446451381684465221556448343500528424089882896398108240383256200310128238326520061037157686469763479036729805665608402461230848319684479629989660327856993094916249905723903516233195667538822283239325581372798557312271447753053064238394775396893592378915038055334938980204632520890340997480256712764158765140360907857723850287647719595285619770640313851318973102542668251087214049579723702773336990035922252855215703745705923656687279543467746649407818812311517217361408006916076643081268491701420456616279606620011855250674070841475047668665610360575731569320372352657362096879881280872751565156551427415449664164384980416039128807451496936538029917496390992739765369983673017176482011766741327359988290368543169182835712436813273349351826373635766908376809896183151895837238012462584543160085217710143555666898648523254383403466489931639848156072509124296586556002576192167796384093854456168004268516842571014929614403365117482520176567210967817157151239651958539341903292353473121646161547478119886280682766473256600044269954631796901682048249761306496286091632617906319564578220001660899496796475465481399367684707595027485382959842551188450611277773515583078767942593104935801882134814142571092650297224282684026427972225201527985477459683264146962389272186854687127404347033546605397261492945013259442848391439823620232392545674818906036863619228447014378259362468086962978025444992109955823335164881744864505824609867037514749916267821845194248987052559291680832400457534708653120277351340763045664691229443239538035203954232565375722872109162652555085419877977758174754782830064132870357186297615306336979679260560372685466294151893144926556061002085473944993272338142149184071935338667418196515052165947678064465457481700054032489002532740416707883084347229366642425965112565399572222771847416150726380563727557221015923763268551367122550528460112651744263649471097799865515639393938855752670266455827637805897668261027301502416939637700130888105865224872734140021551471522359028803111285780666866237655257343827094193774512015276373497088286434429814304831908875271698924955038514571625681833555027972815185872341022044822118732515872752291537402410169337437855795245790684018303089866459361888956870699517824600447848039127606154489251057860451594085876074038696747999732287363930792169696531297652624099545328233877185849058403642893566524206572832381289254827951357059653132372151155879123296491019230330937837879549319247138850175157869864320358026732333115432545833544818468087756987171008035989848303181593201781489740889089061138820212133398889677636883740744084089892748637495743087605069923143934983173786680439299920231556437224880375792981532261654821754315961662466416858721067312276979523206690685528006861305927695618458010162872269764878706316706687878763761011043069299258133860837744745988201088219530975309260867336333872488120123035657487928374384035794828462339482821576357018729463510748557050403938968127880767798317386062681493625875692163582158480327806448402228349459990452429741965260585454768794628869559877245767534005385754849971153044264055476819192534787271277497071241301559183259074295659012986025448072819661787383258692320102178317247507481876391749365025577994775086872138135370837401118006298270967037233765846367010317073103889561789990347907713692871433335987367761768261687390689046680078386725956516388802124336895111464467637698671694327530888518944126084021898165131786510855331869637401199102365231246910757841379072973086832817919175615963463855227286625189001412436778113319403493762235719635090817356347110405557202132536568663595401762166909884727302667764152923132351561824348254424523672858087449617849229785737356128412094658367837729975662939801859816002273467066480000642183030676087669778209909718826511654207915404263509769267014537646832045813314574948242003525030967382928076159027620511839325835651249976433180439778610393166739900432020148510934090737515234786216438373163869366976001196350165445193537180043463515334738057406518335297249715641278743279205313210069852156566084914666308520108032734577014433604071287685938499283193007771000730798562414724492157229836103183947291828537073921155873316780275467400768588827786723813103118425810429434095098028355951661541682580367001547557503703538949153244376713895151890492168218805046921937621717770047495391553761397063146793522675485569638167776019156679788984364683712675259011638066346142313872161611173656916037171697508333885150488153751919674374614400262570989212558554834771648447724518478659706836524967848291985430796168686880964877060929128005652604424075612357962823294308932114137584078385473198819396084565401822454295631002502605560297897718837901920941640184466702374362355581915135103563773810013061947185581734829658113092021135729982108908675834304829538171557738914767923828286819771035966139217689303013476077877956304709760606044938699233723257472779809047521737468052849899000361351879873171113859719626255824428431074178714580118380008432965186048238334665245170246623847039086810760444123866011286890469590008630008151350355087672291516408099788764372718642687429777161292217540458079372038230619365792864390200892447562319133158808698571886595221098815597605926515947834866336539432379733373740793708046680898261725898758580997404653180327474866866283317296176298336756332130186950932349492145522632479116800175053765873910128129902295041603610280360101826994902093294332334013045732538925996677360392927168004356250986934461354119534338021014776748128721748488141413932130278871083709875256721688211730455364633166881828134212055181561759439863363037680987171954792330564902234050066287065609543967336439488113809963939087174086979855470000320923723686079509856280067404404636689577565051563430456645751199095818633711171453385110438380284950031155344999305597940084536864491431482509088559167826364695056926027597087404446884122929297498821145900803094716800466331787996565052369384355213382107230493168993272337347227267412234529012548611539682297192770581252003521830588570404345582294903189908825253969197269787766372919840304109816282322277818339757273604468809114098468976380498554927519984938795773966422305287898413854269376507153044630544725171301234331308111100796401413850105332941396282910678016297308492481253739045090789641936199196126373952852417129370322773751198789487045403673924992385372551530007544567244278317892466107541304786578054149830442030161623932205219387824767715230609867086918011150914788363677206147695544552274081882588208809730252035140484221908084550064755525275045744974494810482636022753811868446351257005948789516610206979366310337934115352038101074945588249801829016031997873749632911177111341544572268826415051592346205005545868831526907064559846207210541240150123245312300690221130494397242878006483373216142157410591411196013943833955889134587716088181397079823461200199745975913010567051337684942371818076261083988372794193560301959088820114909326201820080642638057802817928980033253319145212431149624928895857352187613390530504238718195766930043569780806059172902189093968922564333847552017172969263709783638208638642390861192257983174292836824677489147392913783171761126811173974670167073514848146106067738651281491270599339222135074048866969020982423690982530319531110987783640235946538425169279309678301472591760887032312019753304456250427209972650185658746234225329460699444551104264180276424963836397768924631378856012239990060255669155263677359953052364147947894508565878377780148100430188468358035767681915058798711402520998174208447856416326219141870050451716731024599083388143705265406124423239713000823548007797368337154964062632316489239876972319218720975206387239340055195434913378836859832979768032189893120054833008602738519328943477710301057633292499580070721639280343273091859565502194242171441795180767995045647365529281661337052814367433975636736006221059805808791391015880466119772617854756107502086681283716281857733755778215916305014531990099445867774409532076278103327341371813021796619124847079370426426644184414708147595372426717541842452280252407104101630078610295086475501308865668959790065742061108379763442896390636806536323539061980208223195062565966426769922635512103211368324042153781434937662021606924497032945793549498209209277249441266132146013391119489252628157742735222116568009580437172274932440706184273180669637356725987915333193801675146015945347382199439568735958041134504825393383689444442358750323458886576449344323210642565070106269222512056872470290588233283859713014320607504466098060626198341154687005588256142426766323851820210828720316311154416028052490544554962003830037172636720519604571255997920271558572454995040135203584808611077138913709221819539175824698963545758319004562647857775891582969107868612757710031796120642762800001271188652950815366100457632142802371354069632897130769930641044960151431927394512315566606057268473851269723047866100339395674331814366268770762262691694697388431865784281745176078551133599573890680702931415878766673358334920967552945097052873033235055927734154856213616793704850992571315121660662814855159431115025902348488097790434503678187014273615338505285780652417669226803691372535428021240641375084600562238362175748300572052836401477608407320233939645780640303694747490930487080919672758245513111661781699496372497512591982523468631687634068452252257532432097292684781721202247733173216863455039923816864442189843491200864311283404104541101074114724014622602928945348136877809425994508097834006253344537052910787186618794947041748957711634480817697789677329540530488972391133315543036871496088108889236647542760652735570228772551928956008430382228300549769342115261546032170305441766310544594654183521875658343090892304232242840590516753751687931911825141713367358626336334856073214763086653450228729817694564233893700209772141666905044990953978968083130519833453504523429481329511311710140361035347056483743949067188674515249510955068384769108586777916660679846655283530483274894946938973137294711311936520835050321866608004857893931431373604848808162744694162115183762041672871767507207741096621939585291870480661913479303639933864185916279325849171339419594972252187985414293698237048848222981948275939311655248406090232077296404706769744645796376092303221649411328713831636596816295542907347740147981779932470379586751238120246747673197802874072899530335213237437235612124302576176457537575237091790558881406157163891009491180611162149059861187058982338693760632897286961969150533270878365349873199384233919722977455857157213191712413861315142375146904581256827821965649552871073122448123519457284287701675811167338792210631036032877427018227594957346722859793457809577667637421729889184130744248223314697381850793156070417297536183745470152825832924920714514647538459241713014449257700832012826030714551985983176858145690979882519804326323369093275110202031636688878414793107628401828579033944742926716652404400214225990114789112617379598964870211153308717905679250842521149122533601114388866345817791571776263953996632447822911446790827610302803295506844603440508601832937757275233298094828712222675719141658055644963763196340805798919544646570204264276690711811994807856025678249279589811969243475448468976331919215869393587749961312693771962608910706409916832609710012422108917962216988255259349654518279491543957770241529848773361868377621807223451332047868284500760225788633609690680479867509252975622878884267192226653102046089070176079671000410762113224263887248595117510383823699720044197102357857817485574767746387005042869879229850694142551573998508973897621809218567407904218666645969538715242253886770278613206280436976099714775484546468422954854605338366471297327420484197625716072254627522148358308332641787820049588898733994821401053843658272145390081508394812269019767507376968428463021885610835956605207178487523023293743567087258538682121670684573824080242611550068013898428326169906365520615012475466710712690261280406313420245005422775427665663119053437080107369092657769790686363435101373458558822626560748729931961201865130054772769736456420380345266693107203901489186570905932714002596845019123249350460545466547665134410354300629724217047223319942541777252759980064303768540142166176213148497331040833137482909168260463194837496563053729976355698787549828765883480623735006152141458390805981263236404892141077226142373893826794756457897243768820374534096481877135221532898403083575689971924254109510751393032425636291039783129666325760133800101135922363115374500773460122762378784803657162637597299084181735660206056967903145262649170136885670039055123954144190741136401153065880098455937673100186375920469107418705867006752933713073783642620058259415572379097614629935497841296334764972478896644306742818989504591234119985064356909611607930868484135236880428813765728280086629954773225422028919113467655069847435886659353459972039570784092155049857977423573754699113064068521725926359730926158044148792467815701131791586245842572727491856302091664548459913743125818471169681855873790159452973894118626145906751669712858185344519963510537163395383669667124744632911515089439272197049810754158043868230709765157602693487723313931140247170127201264706657624724920873731004645902844963189144222526038020109455607741831655123891075089597612970923127185718284190159527057355677064101236092019421474173754480709616356903489482773189950024544141827509528682594054068489996145239034146450603004236673680135340333570111595927204328886242285570595600025693286785400777051000803193365248458564120491785850667391177765419704004183970938559029681002658240116553681985585201881018858092006451852797514771544666442057444070556301622694025468318355466903176748856779200699266520516137056646663723351481403459651758284350188632551306444938292871576737912352622533717427447581863191506583341833279790289686249261748783455047261693992768567292222660944241084451982522060340804765511331920426507243576620816184411860957913927571025595215462532567640776564639534565640101464022064548350439030374552053266141218040304755452972165273367092687963748725276815713438735630120296316388759738301518257853751470043556019135831890358278944330972646366166278564492303817677864443430068681066718236517008940879340122513092763462602151108802391355371397049347391591380365441105574796907104197892989111914482534205063352624672948006303694075849461877581946402617866636495073892967756206391565370883801300402443211502864453512267181318822665159000031090147512023874070988643785804768774576718704795564894599800843909348978624718573548927125949122330129462579270092861346303093451159357695536411240017274028393528063085153323009223575772375124718039125016665860016283689172383743180296925532159566737373917121877580717636044458556772121412768716349819238080419600947703250732088921173703074762687839761445795461078203952585612970578157439934401131575482153749437160119086565889147732528683056862428324564642124500193935568130586285631801000738296926515232551417796296369594244935167927804292534829705176866712525791610773423474325716114864442650410387025724544833594892732259441093790870295770167642906587454490088010278530498327825853094613213915823168172339752826953775397625586962988350132567233541614089942966071450414085426108025274319594658013940450149852181301434179584085600367862627486536950908949184136689795580095644252810047189244712700738085786831493333985922940573232920585331983785181289918282394351790032239931468460145727674946907026674115805316719728630189614946271652387592233623898946347115924474516725556243720826012571599835794056480713822157881885483663610797037017511027017737687920918974677432520557890806910908565679128981026448744269753827336905650069196990292485480670215350906051904760960267207142292896265807168266257281391245936346432001329537914575059285376746985216544148759567464099243646406397831820840044310675180811964249225677339952040822026956573492210433481048204658711359682742760741924877632541320439000605307280326076503573691912514911292036631519972355653597997741429799905493219526794338726392046681499369203000260129496497216354371633140847886067085164332925649279422485460219568624848848055738633327515832158403736322209208001291593115233016595089673688962872420049479691660807470747501975902787397833960400377606455631035252701793808883703805499112268014849958202102797189798424983166661070898282240515611218548265022477583109539169555605877775803478763182516296158819384705430905088976854096567439194384453158600114569279964691762570934981251681232957366657120818622440968151973544872453649435040457893767274529323987052398260111768395577785029222085861369143809975505251114768956265792289621193955532706334094708982247638070237061247704358923863988672542012656872439424648500790552048723196014087465117434782711390918332986255307770049904445640003257640073210299328036713524286474222788452501000267906508500141933885392196761638418042030850875694575828846086104071129869234788993329195574302872030486377292485607144417592802984690699206396676897891874090282989344874070114370264581234381593933140496958261794288607137160040389351680990439287709302147543954056086335966617686280965239078731929628233282203305139456842768122146341757231442625014408843109797104972535166632102383463937989392590614900687279043706913947349951266115758391943699981913141621493828342049639549710356419089846178480506118936374077668740437721016030529559193064446596466388862358682948695090914830138667922973960377470069714033810276441555693520993127024845051450709849012248988887626382382765245288260690742730154502424974690300882531686275613505846504653416705276129604410412057287183706454200500887373519366816112377350096735350058955182263984373289617661576549868118725134358091843704747764645041200599551059179354975176850093449425739771931959837177263996605488869763747707508537963141166937831436277372249669106021140598611543540300651271538729017317232447137954230671359311655922007901735537535164652498969302024499921163858492394582293484898108118750413218282432161013337580511576229604954515245701291486799980137630205151158456139809805977838893121594282198817868541364544005202058083886465145293040887197099670017009822845107724726805783699837130151580406296729896415025756131896064523208878628585169573688339040403023933068146865990629909123515218360718551511514446756032621395680817481820039345447463628776886092122313209659924367992872105535722988251708042036324415169253432992881532407649145571949664607481385324124098244566452395870993873767191379157059414220768335280185342642412655486765736921447662612971723481485624819622624181458188115818997616704456922900788330543507395058361974261528834980509181030521994421903273571945091390178654438758145829619534000117914509433450814903661764714117889299488216793395586574182298831297024915043196499778535093463901229293300676329997128623589127833161911016818840047113100528193874864880632351723941776769138307489208268922003092772427709787847546280568721582171088077787809162545156160187903363434085101926490287846445791477548655878155866512358163478197452310019928952852818395772806190278129059567508238569179757370391427612795209549889301160225751694058138565112360431078511472284914345952552838894942005140536328627083997148344775208800765806082058314256417575299762921524214934156582739101769990820255345968966276184914193922083103684168457840453930373145808918655596662409526041101866085097062760401420031094378827412136575901758200561169238001258119542663024446846921515525673319486164772717648410228612152524544226565687522215581798051673825100791067765813252281458223598686895820015142550830170463075085338119552392129689786669476655984529065807361324782721482915224683923981701187499648329196688611631552220883155006684605668231676476296701207565459974566513765816409040611847765851365771482486290799285549425700630157032928032228331059146155004086603107799541166093764706475460987112735081001154722307361150690874513319522617796155068995227973012670891394842688370864829983814161373287890452691011386740012486606094763401729990787233039491489670271326489981567168289867716383762624175251337860287783988312706121548829996567359995130290944923573361787198624962251663323560727419070804743675277536612393303900581020774821449488069657181854955914548072061610935227597240275233572254148489821232548670683685424331267361108682956385330330053059770101782531074459006406838933678211047312331485620768939806135847916863935317424524454472958245615030585253999700892948596236045678657478963543775351588801126057571045220162108289605912921363660038084263767320041803196667829672617097288015445059647069081729917692335284161663080191416761157235067752294780326316524643716647605144608203365741933324723896095867854259996448994886680415468771566860169371059109558901308197679846917442319270652137592434806167771614955140849175465437599019390543831788031430599553210453095604940630729041868495009740583743406509600055845327856033406995015211933648482958346070154877434226266351464416624196561697305492666943172745568613223666900775888878412581243497377760987804474689563911098940329987339935140136868460818995128139369368651011920112249604216901713673598458387291337391642019685636882751884397739010475090423051373425693826848470110491258388529661192127613553404150328987054264266285499738526452686052366470621845893985435942990925486117431924338999675666589420880472491224421757978540388846710407931507994772569497380007269182990665232446229980924193068411284902921308489193412275618775116854829007726027520481727391455444886334366142360863888045665134226012337562993585620312886846635435480417528558036116895543641612669803793977246377183360441592924641318440446683680016854171901418841521090878211690803967750493305786853829095009468801210684468540267895897337030456251908972315191931293752208337846663707954670016302346240594436114744121357100823375557794854534930130188120921740679812567879318567572039298477047060231799647411069062304237104947361383184048394485498643793120421585214507874134343176007281736882386136450334886507043945389952178949014855746803067039702143318715986483603796467746651338401961503131228978536190799931668571091207981093180343743305465020764029270773969161052373254792486420065278824989238073617886060942418947834751072120934138359861077725606279630771661949556837514005865482824414008147240753108021374459063972290094715906066742651517064097294662457998379023727362626082959167560772119809164280538644432637097878964702870914907961285654555699462993463848390753630345406218792163697976048729690670607378517473192997326060866812141084184412050467931645412872658919890465211588358533569094387115679456524878126534981506540504843149261004878079445526509342118960148094544475694776216421085006960648469805241987045447167761948133973167080942965333313804390388768549829810653895548341118344546312767451964486266289525637102261388827444820252115858982901319911465866102275554286327745244364285094628157851203475799908346573530378993809036897795433363153356792629204183419741263788934560462516835970208646601355409724627291250159278163006843007152575469036792045530238050466127242219273033923359460083990320821151913622209090139806749396180046313536915075479705362265566545457446403796720201693674668090110537400696001280679470964824185912565270662927482180097837217761426027470485493293566972195693241241457650905681174564961460532098165560552253844111314949992366631533620894244331703666589324949843470414475011568520216535732912991549147081077688919996060998317806893652807297182609365100989930666861087320276837548382104993872870827281091809627638868009709418968186578477482131312576235968404560088713363960128588424232375367399059655217978621015457031765047117489036706450541825378502937484640131766868894802045579499580371035857275203389122561074978011285798461128098621577942374113996562635263997082924802392530615527456335802700236947809660600862926288937001180660839204877848436304800502196489243369041115907992646120994541893922957965009378492918449395904016247432661252862916254268270287315562711768851653607464346304106049329341101357163046863454820732571296039876336398850588089830746052952215838406230384576457511127903857340038947953665319160735071679034588435235592948408639633444300715498650826379718739332091210284967210796933780945843922708760246608503747134068423233363801845675467431156540628072535957961441584042292444585395514871577059134159786211443260649351151126814327844398633478602281366284666689151954465233466486243209768026810903591213279441438273022661633993443802799175954491091031658131564423915688836896476160430336891283538532794386496503418428037068683566777473448724947661491708704276005912751021481777947360777372651423943065275519315873383031729013440970970926945874521721438133018965604093695341376885710014719520839656891369583475370859767705472300883160025107447112381010556387412707969535892311640498473443021069558805173904573204294288927486289128319993271143427364584002675127317672057668851429348647281597216040352918858123787201162734778465394231742880889467247127236402571102527670248692956987322930131211357590388290554656696836442038906000732074277896816874114320879223638973817813389413384930404012887572223071393687916196871698883379214013633885894162693288505182261396668682377555183737744927193941720731442958468063040000751864010829395365378156112314452211800741789229992941303566192946208041468086591326596460591353584126823574433031630744251789360228489843262369312593436889029231970463011020253472602670197068183179354109658979032000136096173063214347582396900942462643568464108671921677101255240014088936156706324539994979764255393557277982620129900763643729916838762015328410748236241252417804520680498788575517909874895531770213713819455839473243949735445243986741374668304887428475476361350775599466032016926108381212583314726377466228694755650855674356571129064392760968700092750405062429893122726815266264851600553148847392295064156981322178878902227355533994836236006306830379528044306109878827089808970659124218555709979530170197392037956304520074782650782760759589062960355832066436606168164637817269753512863751055192012001856487446733547400696717397061920747516164791828400959497155967766925711659721541138174125287629093806700309529931169514009276471999999722602475199125558342565939334171467518479466460296251942708758640963003418973807336999889021334544168107406223262050102463691418174800367290711567832662961319447882389598035539223628009894059903015093302464187477794919720831324836459212283486502219517346991821828346036200379249631306198793850558386087663640502107411045505326635129350811687816233914371614085655689447021219935440232259651573466364572651806760790884744077157347044289853034282282074040699853797086914782634015554145560358271280856274667170064344118904271321849655599363873842288416595247475078148800931964638210082153137691511676460518598400883767395114756310907763363958700756808265488478086132967319172537220497670455308419194344136528526935117050861632075354164473968512695904389381232575190113308750895020442788866941579984840043841981095335569731366440779001405035377564790430069574840072564766623790288813058809247592573740379556505291199813243827644757766172626791814576205704677668591524223427612164997535437509628181220740933841054315936471384824124680557020360953430915697820113202696420556827922766836534970792859958884629156063371845295361154487343648039565726739238529312779672400158447378236236533197046281411404555568217375100951882071155694209098813817299599006999429351116486454976755768942094722119347174451875995391162466691019355818704026954200990968825378436528085734975753335300043306196828667449617307128403141495462681172562830207085235417565996447802073657713300841836282528282181687994491888385263873943749116761715720705929563533054699363528641339892115013843293454056152952255074163205133484159927130665584872667308007577927270074950352766502722427594428671512947291067809029951006403282473829093828364612135629181237762311928990784526554449774333223581777489539664283536860906889932836689215211334834305061233585425620033443632610769858706447738519764489138932042618997281140329925028050733057503520978572141512317912012543774878246099966809867415977470998893524676348556669730150648786399818612748516251422578209693944262363970199996008298521089326512551560078441309704301428871328494740580286243964601918605601892048012813676060238627259615497034089053235626171387122036276446404476265822146375704509536927093413699893134292131342548652205683727626246888093968645916344623320116528749224268441771622588516923548555530695250271494878641049300826006577893451508387242871231546663424259676285998537925896756723535839483282804555947081806442601210199623075184616154329650800158721084401162594977894607168319161712491509630371771150552597073524837222206777723666240870787853938530557911871386613490797980739620060517095341274002407813771490320213195605050162074599759610059960656771384995078518662274377308405945279248788419111464670863468427911300938948187795079632002282283907910382588579000714225170090692303724514513806228176913682734259901289376777735386254657776311707920807107414389815669920002206584602536117254109664364644079069720807268157366057710904598438435779896984124743007128527082144686060681554285426904035497465811922816195528350660345698367454414683117560554185506519365455632584733290664891033468674217707218485954319941493052915075245131607589304820829409130732768135330444859228567239947280532131000493274248256614584562523958181924400873333612068631083087551281141747778915026701644208602322294033883625710946735054059020082549887936852878555867583308393851249398254185547862525509084600905473589027306367203577011883002029712457629231279541297292516333323619382515090973005576192901725686056016046594249044173945035012957540422697472345078301899740124391511937425570004677073651671163568185352796804385325399275841443435407695891450552876423499002827263794785736825143972013167449633874086456269524460099753944078701553664711546429886437633965220400447726134301728537317844414314087296564770632518418275071840843664651931362144593970790330498980103324774836458345435744327288935010006041471579540985794005798937764130286285602709860545388742727699620088675284540127759885465983096268913749687142952663475140256374178473123959198767896896550139040999672130485423495100495225212683654849260196727165434957435669182762026561110978787436271521937351901858360429941353742715849803149413485218773951453989420921974708498868083453835304877635589376190747664589522118126845641038221207587970426649015196848503248888576454097946519210098059105665041937680453216528631930812628753358156992432185038396509621157900580105155514475508327705159256709468706463939072032722065102703753528028794373626501168793515217930972756130013151000469971903188859127239545872830273919988562422160089530069390734965995099270572199465961591598549685961671635373532135321210642909727510042844300461180511576756777812146447831982526796432142401358450216758223900761074412923252474240313205672800263401227933197328837052894281537343818618185167900281654634440041564876896601807578486493270499298861479946522916653432969354701318413495722530209491934131878228587137141357479624619827675725619024308130764285758654878771754049994884810001381958011857503283713591527733273777884935528727003804442353396740095056325647678124835639222920065912538339672543255994565764339998103593149640106554750685224287529812184510596699092255281615986905052062683660317169770759366570374758517137726586922556998968646235050430931848885890325467788755615851584303514051775242495601582724740025424631326192654555629063301108638521028277007712514137837301701540841977623455858285750196050342133558467142357931985993409371107318545756394220408277815513088098328101965655953580795651674794574432292145236080295516783051210113034920468624592964789570407047842356036258688767514136700741925966406259971318659027316029704042781795333334397323322721531448873384656163536598795894443444418072078836552431107859194611438122368417002756620001987892608637509659930053399790950579642143600499874896034564531005222426057582146108383662724869499908746325801748156752378348208752450989409087942795827478534870168070028818203419294081284308502636379479243502534180372127526339831755265735128774842435875224289312733965147564828967935910312331626696694074447833924282627247187781805790807960460916018431063923149371425660601386133589148845397790887806870986945645036128232788945747800725151262526765036875025506197205782532693223600946187670779601814085073105092774266385980964202284534928102670623429490258150708098682222714275662885539418130913956708258246996053420033893472438769943244961089585334195544209959381213537291636006411058645590701828856054554188212850264031214467136406261990001511755648192928335765265412052927996790489211136422215790470700783575200036269152111787853030589329218594513447336938033093185614884418743731302626667055833642603053041486423219905997345084206191647758624609399892647124024265476672516935795737165400241999216883343370079672456512169499061246406063159545396995143257529634331650072136520221415561600946071561998790572369061869090525235025143225498840165886005999810805714296314361290050046613209081212688360989200072236838704398852513783756308197182080351033635054496209591528630207254795194637271714459799385505119669470324390434843556725328631519038891763268555703572648579437466034121925573061686749756722286921522042571750893000438217512225977799270997858157488746478862913931129074414026343639657980529609528094699407715511917302389489743128655389064558466807428712138341746899912804475154178090237945760894543886846550522863386564491271387684263017022175096771957325973687889654330971515195611486651830373502619368282736769741235985499719297418451757582412460388798231907456510508154778517940912597948253210579848841833172490558303176000827325279534093027802589053965804925037932012917242986683992855178745812068376862431726228380322264211306400139918180324289406827345393753707505355323522747686660328424528537409291014377367813797601255970971757841113120721957196216353983397432642481868956050587621606390839569806543999027439164245037876814755563533923787319319224910418848069869257968874929870581128132624215516340995182041400457409461252507973401121749280880294303634018885718195639474410401657566128521150372229466822402621821835956800183695966724233281172866573570406680995905166803714966691389260775989621356257068154422223754536444354944524957795434217174276568902806065552798287334097473566127285769155322348480921957292466608231068500397075802456478170129612234824750886544846887474137781867676218274127571461257486219112039384481542368299073695234926433319293725121589453316497344824235670184728356671362089298653663659574598111031353583818625742565432259637482694759860645809423405537321958197199901113578675648882679676959033152388230408586643075610028956449554147532201652806914902753637627281318811742031300797745822827323873683126335891751477767505299713981723423106438490230686228952040285707863142733493405293072827955499110417748200634238779967061959963161122887782367163788293732696356936982973429999430521098791997234262209974676820531820057372343271290849982479562530522811140699166563523508394508870781696122369310859977243886721868693488902494119356887349900145490456395631785180738057194099086042974008844823412048724470275565439581462244913518356982715810353456798422801626604107679817866941032685343698970308703532112642429861369603548839974536813293181868220259274603295791325845868222266569262106422728215932159346354113384576492783538505570700547162679811353042522747006852733864201513660215516770883952719795950796592028820687332894510393839974997745377802170350754005683057241926570920174630025386273577465931185897171026821567101521402811029245325220291003512615051203717415581685455469307624171978711918576415198236849551382924680310110010309335040966560417039520051767591465604569758338706220795431791728213369347265731896628267905991973313249683847841009639245073629413102178790956513605599907066986762030647532849719849042097057691024114440702343993966111996478903888741905415440896180392645154681772413471965955677331368494959750406351834342723956825718293925771422018256249600012284565791801859011482590055624821915996288444473862801497906770897042031503879249730357550087681862450520587281818625246773374974489351785107690274427116761471390531061376596066906867760359654799134591930444152931140727116220046490920007642289243439969966301103196271537357143321804593626668709683612923601029366752443434729709842381610104248041990572472659179571893048316823180571548153656336212161304623080241479045677386556767620384818816666328122450874587474938252958514418362543647467152145506817362959630598925349337512110328812639892026968567083142312589364887011550411775558370695731702601052112676116280171166130388891053492965898031706704650859743669879987552038537919631665708227126257734925853327334081332976576853548770021468593212988195546713754314834705244987809234734651848155873907992610856069377052290966992506445181382024300690472880597179549824854513834959565031311370170895573733875551074538713518422865252570879484991256423628653683645865477869986730933698724200704399142398648380595392571746201332279930303549988802280070500461395768866337933021563743186539003345039091575997166828712993749773886383303813456285140805151165418746399752753214370471133395485225177845155640905289545078537296031863563504061760924544484161279379031929316474913206726292856456126848654283029357518412891627682781357995839411965967565746084406204100454110693909630682209737106512165611699151285081424377219877884076601713923296629474074729309020232627222313147696372966685046767622837743397299725206393956681677879282179942824843280987523571761371421363102801992931003107548066320907760179145557683540837575013625779742719521904678481820288308569667631430368567816939181412893786212624886207327302366779056620122434076574200954559153206929440712990908847755036595905951362157272647318732288400040350865648676608605666503453771209371735190032934342422370027214063178185362958222002256235271576208772706899135854912377998073239505127407953652405697136885216851143639953384918826884539961725618713802233406052272082188119765918433383077807748134812953384212289491335009655574100102223987272773572861983612578352464865089886277847442568405902694179171692389451634225965478759420162222240638422220961289982606875039804634644437445020943512746405283913238712081737007266859443488861821832142229628729784894034108843668765855895022828830962365232423117779353993271603902796316599019727076543033742199208754828555631878057784278678669046884914012541791572696788876285359390719521702332445156840392145149065030105642972437127043698437065091165597463853083381193976114908359820110532480448912296248008971993405704781047610986024078892560719474973874957907075507872842385886671883798499416751216849182365133950336344804308189827088655390866227586887325099787566361952599386530082875020591584939484407519769141268848939759059670377459540280092701647299925143861150300099734132661424720595493450700445135333485477741457398003803491399507490161596115065297445342554265199858135103241721448156767022571623359820837788421143810009351706230150807924702025039085292544702996923985757539373525931690404778334171678440298942182806378128492892215662550118397712376373404095451670526048608685561847927174802857593626339301965121846235100851501317396220562136412061721832195149883710284522028695801329283553310571295935710281242131583435198951450044794409518385137741125452837865535988095556948125463237137444501566034948908996726036732764389880516685737441823333792872461342835979182360200049507618258194759457108453515271527080045376247538716944655949613245386799103773589832230498231065978181617666140067672450757246829371970202945301243348510738514766856091382565210611291276504705573321404532534166468324218909777988685045783854364309837267286699455251330492439097856406824424804010884465112870127006286984475257794163253204188888370500132704765949396415471553372764109884364926609445962540029598905437414276824856228944498386451358808492508638972730845286061103247301112508750958044633544701875387939035888058587048686784660567448589682752490010572969108134197268445677049650417175757599260941911973910122620411198037508139824293464203866227823079587964092459742740455121342465089887026088668026640828230706635566324496498920958100219856103527778212352334651930884680471296367648729924513670340247736422505289576328439902883987951155903729206431851229129204631814938813387662331195196657858478406044608017380183494718495771189420179293829947860742552594148142214340127852550892617182917396166552110551907919392580897879864781836587360127889740509013194304197295528768050579313948646139642255357424574360143314011290281416551644446190149717018375327157797631873054442976192829671708487051324413186307322221401881462488616324161571637955716142091733116926164504224447030091372763216753688759616212453556438538014704081361588810482792033415191590941823926955330372640427182404757049905504867267052063337091170744230716119063285932926125618591876178201622064826707298225149148915285299780521882446836683096363415319769648916492730158975415454517995518578289466511013350345688885985507190132032731172070972540890493337321324880879515568779162844063296556418170714716213632271492904187341948164906981514624341260355982236767091587195996426448780766744558706426245562762291490788804770948140460392634576136677481435459188937145914365559472265111551948910475139436332597032839388946415158623714438129868987126090532284652473275536356046279250893280718905134884207085573774513039610266239802063020772462582436910913756257087599178389981580603656453279407833951222648299205809120214155510757858230323746859794666104336389532344306629586332233511619481747507540487463743233143124727341046361428883235411587515988544495593357462984355611541288893793719049222922067884545029876283229061597043282817201451252246215696036360779316255457162203147745767848834119869080936540262274781587421206035679930061042823094391194111068704327764001774975321377586541957846750382913586366981821219470184690773995802435101045951406824241942215675912138789221955576726181610963281558669440178335801728793260768329310575244819928222031505698951000123290162293189500181515061189632849002588960929857801340448540747347097481502348200476011177341916585166009137283802227954365334213207290944235775057565160760778134224482845435130243595234198479757721650709338265519384360729496893225206217248821162354257904084936021336289080643655664373817202895989096930413321256784030694747942526728359949150456398678039514234672075341601388321287316714906610292229125313679090589590956644856429313003351643023510849447587455588234919807853249450460239140709154199197197284282823115981731222131922806993140284421349314778380956559004291305661095222552853966156779470877658638150357890218872848423118036726863027766244593183937590697718173452757283562650322140122626854976917537003335837199965666545196176488497344256952892898981654572913959945407344239964864938623341669790052118648756873763683476779351974938694391318491721390057363342682612780378835327706319630805352603008280365147098051703552764698797757140833667343760726096678854234651345191828518909451698713127251774647253332118645458455650174317272131607121462080597671211023877245173595134843358554530686296898800765684405520232094014226921572254099432496533943750175320012196301686533547767549455249487900176777308727613281587942835960856630910614599884303583143058278481350041099620891745019207183831437318078098722885459551220272368625821870900707097566083079236348340637417941168145044063932956403568096766320887615953117298038145819819052803122650950428911617811555827822289619667375224733956735701195545823716650549883289797319417598246284997993120659406289838051244057339502377986409126431732761736998149395322354092370300569913720212408541858028517767085938872911426809842195677183273129470660810142202182549800746891819146324183817313485472146007156499006084925607738898772722317306404040023825384917784658814792139242006667704791784923467048320797400825603815833554443222466739346342760080497270973925146126328227782248935320948913627208668115522625660713450723715866988349308723807887895577714441268251876639385846425889311236192705609764742999264627256494646909697017539694138815067313868525900869799737109009423545500443412917244524819358243127842619817832866775146621105104376190436653437518685954350156737432839523285491625394623543199933235301474434282737043200702085787749809002278449314416731265191296367473510361703923129076318483251832798535600433010246407515037486707072940795948558902160052460641009003494227295210785528082513825427744838060592145447170205719368415411013736433460545522685250656718040574044636480067283306427336741381027699343889139844359080366387858589133294402911285951223082694077561024155502544402870450770302184376330501215772467273890869221601534819759896134098959541721159098732968657267566828359832310286530271345455252658238326465412811729841121032910867918680190373100432483837801971766743447246436752426021246130463567246123756989682770868026708624430781532247036201748749415245596446588663112071150817796405092885004884153626342342099516643143403601506688115342070926927742983349164217662276287838996086452507291824775846663684183873201539085332982278765452941869777272856065805932590262134682898330319523945404755849628637789515014911988612100171323735099039614097534571173380570733525991739131058650879029839302989962379105347987430461018125349342364832568383283016924502651915793626606410378149759203841514423777228278240486071738306404936362359057280483625371118366823659120167969441933142911268459697305963962610425856378316057840282990947143136903302762490132002795086086805985334292979802035199891618463876188257751939061367804121954230904687992649042800145060264330069215216034728749019700890514851786787482041265415351872592202506411992756708987379110823118580143014401355462839147414115054158609803653333826277295237740304325311287473536783984139166896160366875635935701398825419445092202013129539771323158492107758971030443326902636029702968812266736226157415387771840444942014696885853449185907017274777456588337787379506443461922351470403339530512008749760513619366988273475287938350141320296564459543311355628396445855827641341106073071298745793682553154580380756501267791519605196578051671984521325285720037697595826382462338945531365069429397345628943529852893057222760896014312786018849517610933214187626968222573875874230624523919452179456020563060102200626183543239138899941472487716939473290101448679149207985035653739092630783094099716815972520464085923857701052491477000737278780731338805063848360887814947088197387965127279414150559428281830434381971672042900127407902550018855393142253424397039989463834398268179675895481678732582649168556876948949588579685972494493469697264989033214849960809937819382556835513445401055797267258883699317376138865392997404392610313398141743541918867063606276589028449170082104012553714365315211943905453053895874196599793480187181065150481427201544204115672128080958647555255752621699465233478421889125037872599527798189051659460099145723115174627079078009585816245779793867132788266395877296900394872344989468320386974466403455583925128473725066407148714325577702968557656911761681432946640324171113490095915628025454297802912175772783372678828904683246038787340240182227956499858145154373309928830637892389216284766380541469710984043259458919128398562273025128298953713638691497127561904266004516554566491014750055073768695479654956139154976505788311474641637246316951743988598225080058285667595865388940659217980666019129620201819095516847548347379651371124132442189495185173174523494047069007526171874057360402976695720221749022315920879683279319145677235257169933949293389877567656311468829841650650633017657777170234607404811838791512934574735940220964525438021226331247319987719675916488085255430070446269555062957617161602144976894957725141075660137998780672171059617704594440571309000233698091359015139975869054660323228439744442732755017310389972385707713727484439619410608402455730416839602616172136298084113862923957052181795012802403050419733091898955662834907744196926426245236670813801925388470811601772134754815830468750302768843675534535868358785965357214822591811498353568325661127932819133534550546711730591915937733128719748373688999378761221545107674905263680966675335506003171597096467891833320000101326925705559229279056330252733158226727344243804638489501815087391062627484598729135767825911750428192203027064768720585571010387943321680238159973898020202683157946921471578543958291983354674929681224492730725005310390670794293779112013391775876360278143564383954055440570849776366588607723023242090196017100449918958591788914116663176015269494707139082206886898473216724981275984144917632685073574708643564749483646602733100345993553857085286958030292209365442641613753204706105028866575241673548422929505533370411937565764149362590162128408528610864064079023417010495360386898908906457817683873332205036733589311693207875769801869384668710965278232903525512658050193980931261543137403708110866084255739633405118994748689511071390223938628904566878602016953060682274689054279881711152023714136409684012009292717121940834673778631009919980641081552830360974210874046415463856210016611897585276917833119489750739992915263868045350612407982741156062848448442188081880416615541299417226569930084965834320897199917776882641759439912798709292941337894421014973282101407593936832947160846442814372001631951844260426068052212802200132019438658143044671676421322143664746462393033933593043755549536611626457036502473513985908992837878624142921151883847226491970151901454442455542692530430256446365947876693708721645736658656648948733707991567975622597718482768631257863543574526888523849577349828496633262165139350806582259635615986765593618220923407664981354115853355822187438655514227815852422042711101178001408036164494679599986212554179000775179858653168973912420600736749581151060059005494733193331710638732150864358367760239581341908666193208308179829426530427561241095013138204914085825292321921424702865028497802485124606595326928649741033004321488380806037302360010323268699262509225681668437430608102469445530760290166195734233362085211005621228667497547194403725813402958215057732330204611262173657051042705163989121094180126238598911132471662936550924490906336296887265840803844410588688021962052225074991700046019795566854382358031915396255874558454866743487733287564164888913588816020314386715018022192734277089105224665994171853983181050787191858095904066242973304519826993770291215393140771853826770887570085810366707814110949197280311371403235377995488532322725192295824174453320717853422594871247130779807278018350553990075980577892874260224621605309413078555798045671863432753829717067056897366859737512182195214210553454515622844521394829111127361782987310959378479213871809202877196517695006151536737662846341212113709860738331127469132095094029383516045814314868686292418491842479113871393091069276105705985083165412679518356397607254589605918737564076810140120650351469662860714394786547355552017650256850627664643455027919341621589414318519721313379877908709063670834427091862194572273151596126156565416749318122547369943613873751893953818576254730346463734429894943427013863373929896500302231197997859039403867797625555344620233439263791362022547751391443396585036687210986337361353303469574438115450493299559497371396265847895022520575634390932526612085092791933406114492223048542199185774536796165380604612759768495297461827832551431219169953113224914499277431303480000740434666384182471623623707564953969337731661471091334585897622403894387622560191667080213644654186644517036639598462256624866653286677472739508525967809829988321511521413617123745714289049158778602060422615761000199509256109976688260980982949515829064312293444196641378482172597100257753743644733513095269696403177904005332297182417221548727219471162859780019972017969031511463764292555216016017690007216751539594321466810222930977202390365584304962668371111497219176332661479049716048756896400721972231573874510782574841878867869014580928200355867097672136844262162916129401885049505773172306382067881528104415568182805429200772241812171750811469105363899417636779716371751309040659809762744505984299174765012906902576222597728972437681861189556704967730708122187891629500411803780612813804372971005302813071817428042346658537049871495378905440395547044637849949436844546602135214421775028276787065391406349264269306493353221144006803784268918576956868141618967813901010270378758010650491330299331260858562537473769129442392082852772351230990312357830140930902232392459103176832735699494655818274138678273941854872851566785235626439859927965975662179798190798247360835938200157576269264388887565561628407445400515707544976081107664430890826184796581270118179700638402974143220980704699824792310979569086300778899368002802983120629970373222389780374206618321668797686046348090412640281867476418306354809136548057537812159361312120249528082011565061147014710364948611054958178420481804192665051776432837909632016046614692849800311277382779287514791596308699292027890400341234039211409425049127417928705433974910401336040268362999438449986542511421266271785063938793311692707877735959725372548485279557495199056141321588259855440029972347042923837137438134391744924857079190116613690583765926530004447707610183465061327455753964265475066385447035545631035283789761222722502273589345965161287288690993782738079564821696899256904059512207126064826705576695196381880017055488506857822569485999814182050793276316200918055964043256533946387550946271277452288828287710922509177093611893184213835529982134865999479832031930335667297911127735271556863800524354749169028654617791942677517457612253722304566487850391758947254113716369415609715781832936482315707071222808937125360759883140838184066927465379199878954073798535792666534315079578759175492625452400025278806677726140973486132383156731994933985920073079519142910731112281030126265983873940872429345999918269208602845272353088712437268146278943723338323547681115929256386861805137395873314693532820372235446491321791177813716770303567634197002985345375136494851424962685826462411890656939591544613583462436780663667339488994821088945960705609207486669801136386400785981518673737554022683341100945151783135051532351873879875456780777367389477656975984039506292167760938604569411160469281087787597505602876969155345575336971389048481576287907928130305566485686023759362892345400158969091073417054530115898537018573687030875846473178390193889172483880021232081162511476984180964494751721042762006977260372261358572836140908107114227648960301348701889483648400783881768035162701472461022701980217916427327880179751873723486835894325554919167344665411096912417555377935568491405851094760058809120834079384870090350637129970454113148866009954791175243779298724177636569676396070537640943487939436875170795222642843045984701552273594987135189966439549456798609111768256085516140418923611802774115986076671599461726861982777900394303124127348095298269740690295750225568927647808731442706767446067625821096119207229418117597845982761808817427996506944090588026403978509434210079084239391365995940681463186212990753485582239464581272703702605026739468987931954037797954143204882303993802288643499733631199386476155935872119505313792372059805260921523082278653380684988108851996091399966214493190640200914003333284018549470778740037874543671897275240080000572693057906206130772336385322760185389850117076958776025301614102982970600324375412481306991975968109326798336400200685400366880248319871935901691038452052715490344062320321661332435346278158283276095535048005913618996707406023006677606816116820154449708816367636356531954905314840301131118446222368525962745468132717861690371204080729782609637408482031978130738103278316072002418554771613771129246277978477383580419257539801058409668887511869680470255712374122681040454696305934628581051173450691702409067267832058204503589373011027145568088456517695850859386153607597757957621963242460375209824447015495293652500467596108578010396044855976229293411374055179914897810397422020102183378721257724472347340038470284262624977746131047886943877891739456007603354501477085538005559763097153349725195371098695149482612296150674083829391401012168689803582307825726038341090800692732083080180968075084125177603893660066683601925985439879628667524433386596665056882437151449701494381494905869158592999403096084264961876946050941934686774400321122198272911063694518211725010587681481402212640072012909153944967447206468965599713302751795369050872975473538936156477586335116844812391287820065329883604931055886092551182210426519121296206379744985838101775569316159342815726089612321022032909636620087868765332521404277801666053742458151899948195778354448486310281524936580829160694295944131770291611735479470990980585901747171226411716739667239540652316508067418471665664267325542610300691044174377225443431213897555452707665787274177088218877641671848381019114322566703425764935948452099013668563924258266117454004231995510850457926676930304487059851044703990346316739847560555121388920478735977844209106498552186102614079406668958304194073951903313867323362593407785090253869562143837502012219371297365928446810752696316792226977266270106615256653495403038980508459844916340519353121155412960026376001230540653534288945615715830220515238610707987497881606987806078876487555042891929670507192257487379880048022330771123749541935716411418761294897031728655938738187753540213045956430232878956620592051828961136916959753605154299119077708100443794420744803025736571618462229817836557288256167845527425483325043540694492799222676653875326297105641998465389592539367347820456990216528833652985561721972638242058551010005398653803588510716950840335399951868183947082833591820702696333414361044962587095818169352337575667211667812681440375415293571841443250281344232331463385791513689206010741888451051904995400843421648525405823871519813693397539170164830424209725995284627612971572612292841549661195947141249893885172706139649265108758860649316161466153065848704026895801206875412991788538424859410293925081346433750926718554902638119492726539838287008834436951204063220132750560872998634840557787389634234414815718764453587361299242769301708145299990364000701711395209032258757068381455093982088425918697335412100128987694437051214370040195557605194801047153104391804244271591048078741156443918291454608066163417443936695180466003410161665424844021581012178280283891893757381189358733161264555400285692677583281553077272844872828283502529071971110102960500382811625755499881744059525638932145870716986189738122209862482170053865214226604992158530355890374186302485267703167696521337158715628430636474078652478780874537949238184130296157727774632604929989085365897049818404039244032042445795364192118165705710801499047952752314209339604410902575728246336225979163672106805140328054063647532931887226725099874101376059547693757450968331916815248061923661043670827494841178911893507104942002972652519119398267746355481141946862930022369937607917528586132478274774652097061161504272003641866736786508417712478134709259946019573991362877400415425949264910141908216706718142795100419698347018966790433703880969505752473028199890049688191099087511681199374528113885891003829412075134799979053068246049291686504837441117637495951674335184265023406044375663889317608745415934554636576545178696935371697874905015035962508796263686548587230210751008434377823168552860937904074285302884949635605448921966880884920413719739616388105461935628449904536737175892324394263360424546936147134288663729573560115916043945814412087923573269283826691322121765196054558879691170686561012370772957346687161570533958467930357286823232180791053550787399465226550393909550100897358233539533302784104665099488503803830179813683209168851828841984835669561696378286261822312784042803297681877643073168046809969896453486986663945912743990714446464621513244267518263879603456133775736070738287115739039915330980069057928204810195986776806125958134634867368708316125179296738209942320742765553799610848640134922402712567140583492801863301709070889426453532185521973138019027534555822021582105053673139708553081420157221786880219347139865478043649825153092904187798911278791877537674434460715998610915365928133562463970523172820478683515415276336698116848816688394407575392699574794113118513807509507195917788204984501866085840281871984005470047469845750167006223318539854875899481366082403941165512256528207861480358187899288452837871358640902396232434027410278595777282862722016370047302230811378423935722139306376828391036580207460343747124527662423696689992876283692215852563932805355650207499305286071687297738121307057961475786142061598532691440488160589013091255337353822580174800715261139414368197023283884440908770518069244086287172904307607178391974701437832919394566702689210259273900640425860031689151527004085185342188597027692476916652784031799019372455065845643916631785747491499046921279608568665283208920983460433977467045180333370785141097082395509672214246329825512015073796711951204545607594334208953782266645927351343058367972398397778780939098816377972632200776218725603471537089766949691516521842772145738646603426684194557797269211291643932924380336593995673626363379858620599652205760383270055571847240098446667378718233212633906828588176943849408256252241780963457451110356680398460897332522671228808668891545624071362959588944537110662812869440090292150229102688593353140522875976958257417808713145621109537784341568650861836490576893665399107875071278103065819753795971239425152839547371761636990739759476692274416264409686163324116651126139921870519951095637727509616760475817190679425743612604980996473071236389102657613967130329177402642440126909196399190846399112545946580553945764333181260135644669220544360533419556675218867584474174806588548244364667111222265176067590245300351998833417027130272108446447746284717908874386542434401413870282143274898022756516836679339106463859581501365295281668382777798436743526064181405172263750485255583138722596676838556908956169902736314124509829958299536556148922472322488906504670532062765764802075712119467754754886534399659095952997466159784609486097359524204671876580922928901519224915817984154825590519283142987221614525508041108427089763945054772504089634986417515753016185487568519150052795579031083037308657798176859421493714005104378069719283246003298395985320272260104564325856727240909079760026278661431568856865197073034034844674401107883322764289726973146057246002388096429741402887392598399542774106312193715031000869623840236048947449088640825704909030864480169521340302525985588487150770273660369645070255592485382306678015509551934967858047501269248472490436805541573458073131898996176706007437752257804742259510606559721100369326587998226996662109613068136211755199643878131718506599285645389755678081087846262200139000419343714883489373882866773559631293122471451915468888007249190046979174541119588044872490053901309406562326840986465660924363812411473752062177528765046328613252408870259893606145083106874546301977977886318185801389725431476240936448184316985979516214024209667886159687168567797111179946028040601779979781036823228839209899893984097532240937112624882872055501344412456942722487449354303710022618188275042970919363748131531388358316962079051059128324189874315762836489366933360101514777299074701561940737976652136484087066562509796244536655893148161734982711788037777675111120118018778280695931584946969362182700521415624198021290498118271572364912756833630061672331193751400551636693657033389179480596863374198184551304231942945637122143731737967279268036488194518120314283039605159987916987402418423020852378735428297138654115532330882860387810911753956487120927781816589367552651998116833301229653047690943786032085582628144640597932639269762581331103321754573659690884353181449708436495464553398954093940910301181982232094790087464109931072370478006363811104769624456807478787637096524789655271329895311803079628975768496598102420319083609626460757387867630262522300958761302700028903581461113235802816717270881817886366353467903212954991224405163072813576562349233606549623838081529093076743312059674452011345898922212272141278620292479954543976843300410049184389496897637463261749843552392430975807128289217779274881526140403889686579856938174954635528797184556996350117660264748189525315296797388825675740093772334978961068257964717104107735625336121040015511862577944407085537124635631692250480628821590629655405458282184269764444197890341452199555788760084596573496257431861159911922735453734287187274725052895049973150411176556334121633591768314699376857998136354678357218997502722612011591751322245298824140070399176083692092256797991607066694101589479277452594204241621540823915729781004058302087088424624856675691117584530632325924615810885230673168515539440259534938803598616802828914999493094570763900934649820697492053170761566732406192146741907165307970383048797947750163269062656452716922187252508847418746316755295511156342145778081696722293909869204794520227514404699148629881177730991400936818178086145061421845459426205127928239912107096355574891705431023293313670078446722874064839321950769907835424456802367016999075671239881115119657429515779233113098938717720989711061367458296856891818383845016345799017412969416059275124828548306849124975987461180972994552857469635462364797899202928667666780799907642246039142940305432995664778500697291845106176362146505380309716182702794573197216616471486036584816526755176129384192291621873870309650352718904178466826118952063246285651425742294645552480099575242107663549568837997658231223339400428839447722980367803203857702926111465834665553322720133463784611111034748507074797071639672442908173491503926867771199483001608102027691068975573258227477708659196987862310377981299614196552862215685887909398373581883955268564607416138676644469163618299863956326101374132157162684660667056095011836424713753893115387799494757402589543757840433344071330588247179910512265045629538293236662496475145316459405308660417117628652047081752289055942138437781170700831232410267231641800547282103849202268795463341119963814092110636123029725680616765253160358632974607747355634191533131205675763583105710579650853391469542863794480470812670519150926649591418090922817702484240118960656057542538787479653522395817383843024428996993429117558114335523700863350308097911530320905682040732299681833038775455915448687182344494068335008110299754180977109515104085599169301034753832928850953763495467462616348837865318280118134285505209920712817380610185384105368957614986510037180843816254170138271656857383905718687530625634117068968920557547466609900255635757112102860541130620197320246246817223505895551448159791101147558378592635293543496725659008374306042907164330371818207415561321413630273674961939885332948971695407351881073000906538167652867583358061426879201175989357830409840056584382950899489239069340047973628382528907522351832475531064128338467877456794439640150313478214674594594241413345791154189654086899656224849536482144788067146992619900123202659450490881497865539470008066028613617598370501887362730690810091615479766749795431716091641765314665015282580128060351885093398725068688810497446136002984960372024284809125731763469323066809192875636250698039209125346994591953175151492838719463152383813735989986491109980667326012039475276427001955218701268579598688935820775805128116506853740904594066199124751522223667133620241534980187174896238699337142560007130396073171550230528388089969870074322917924540994191867381454301569670484865750037214030319450445159875178928149412309110837073413518430429795772606968943439625918771550704717466808048325660284811714631646556868124701217436710142577388762187475370336759445915893627330041670024254379740398903709584180178750834011110928902559797510561115132682273700025301996039569779675527489139086993486388272430068939469599167881701390705017455374165890906588169376604133515755122561514788141060380598083024314377090731161729373910954063106590082891433710587855622955515719460911989217461672314652502300392275120694429539228358372060818591790159983764365520807997381971923734761715183382669964005937571210587012305713851564953889329679925599056377024504050727394507710406038429795844161111286297705135695285971237547647289898614121135739696384354887541672963734195956935286404357123652381158032379485085348575031852275210244291477725069217403700253059905692596017904652889235819819044909498692927153000865497217161817059797986921548424084467477822200717562337569388329592299972679899838445489239125914598545016048012727819990971380671141409834196728167480455906621663179090550749030133661917110810350638284372610941355482983612941916758116606669748928524281383792239051740064483998509773433207240666792963846087343039411429015106334882318642454456276601080583478938259143628761191887544745563306828920075295503889873142028695195939473062832908751549915221838342153188176367099275458798802861888252979843139746697373382746343675240431555728662624405507942299689615891917626309302265632193053343047320274409898885167697576068898148748991941676468869745062154022533124261317213888532411785931194509436875180331063749463341090847918329782936936074252731452839970045604016065632408836093811649782170366783270447312629962652582406393293562233648464001174955470589557782627964484960793952897300181661246393343988302809943245058726114990545561637100550709539862983522098391059513924653400225494710289150717751253391560839863609131667128248534659671479793349394106034010731485837874034079612034449053363128382439087387240749802456302727514080747910563043343500387224652740060153868569988151961718800922763495485021496739303456397802071855344882148909967398540183818683022253407359620226664533577894841592002520281350197739235301403998214616510231725329363477380471689282946159780514145623974005636232773924692606640317846492035631736837680685976771087387167494300008134008561227024872916998393821472197905957789518020120762030676125124517518432925794568567588017684323838697446992231433393745589113765400527834088289002538486525367114209465341057882066712129434013103101278520442544289012558260143121946864419707408192429498369763452059062194247235484780233194234888288267260217505769130787162424272709991557921201900158691580606698955372352074934958001639495043185185626960215810703157473638514841955780734012119591999888817460532688378636161032578963444934313855376875906570486157160743747692304983968699904644278445840732789696535720545601414221921127339853038083414774218235541742053491246653605459205527670719549726392924552651602841743412563496852342951611967408790226386026362158670822261850948479403029588859596886802407683162060753965625288352003220024515772315542239294271201158094562384782950317138258359211470362750865951180217476016159241453607799241398933910764479745863316549363908435251710919199935837684264370680966552839223651027755733137267685118096903037079977525746169246886196660906212905877298762431198048290413119643977066257146101596399945523036344668056682905722477430902776431064128892966365040039580292204647532849190255889355672840600997164542504093995865940161478966966798577144163724409739180660508782113218043581452143379781091630222728346642913399295386034369475613224997762147903395275112078364358654332920598049514845694302902565520128399063038124065378285354262037747265113770482532316975118505984958664338142928488305298441604271713765246144936887315862589509084249845874048508590547871153099628946169980455706374051421958221546072579771142474067455714341143154554692245679394297012003692870858673863060983477990636498317954827741904738576312586256438113277192187909882802328917096501444210981699852438163171231033712452984268708591677668912047573363813701254406128391055045337633220310817537748202251438617457074579861372721618767970567607414655726803750776886791352750319570624233981506421845181196890126228573004140843567785886596264407660311353408446389299835561168389872247872024221706153334166358725764348669914334734500354358283096680790166992277416220989904889325477156477443278683037054132068179336887968509494006951095893646775158147888942932794690110090512042767797115528614516873944665767991882109465434152817419447851533585704261417176133156519845778155088374957968721747006441713948901773820068835169755108139376298792299289147463317957206166032412130637666369210021403621013387920839920399239089245129483779048063782677196040422054995028746336500776297209639895111488219519712680617780591236386382901024646622965241810238343969214893725734215101581955574157725107579042708027247415519417529023125662003823582356291142386817400969645462606027904632078916884259367605013929566944444619921631556945188219338988083773795035412190013726480505598461306875633312375061644314059240645321212602433751405718088992355304192038031503372148831715224412011532014268653779807466638469161215105413161749028170789294104383352795127305144753105126810248363898237179818378315516356020295128694254578175779860928839389171726214280161776074336058085242955434899706047873934285994550556324936882392525922255019070895377551699528354846687229840335967548662666854758680262661213419866154163942746005496396222685061551556023479585941034224327707096921602205415332687988235816597549494947925285137676621021441389750333762982627546037077689539970452317022238202927607685773360279789955558271922061220763771856491748317516891754921300504870351328529865322108956448124726340662824219393147727355361293310182882319537553724295914506242052943049923896597617974682599149985487812319932628726873353704644826479970504449535253757728938157898886177415826342363554369130575817667456230726060731970132607950567015822809551634979794894753361747592364783318439533890885958168972601804359292415691087337892509679396592956794832725570182354109095264968125001824937467998581558849505113797038665349090909687113221157997785590651852034454453288524414094806425285804590144493577626598662752273976355658782178339355584376812584721874757427688578152188274202052939462822234731800169565685125922611725368089768243507462618019689026453822815664758443482308827083752073949426285480868553913073096355247297768549933309008841686129434792850846254875086198525352884898517250826776371145635695568183372914117725680418231910490870807436796751209955703698598043556810395781052055549255294495532985908100953490996682477085966710632906613359364355125219893752572911476439169865450585063385424156563559944536922790081610753004651020412091502386695920827286980265884054683840279286578650837389496970145934060333171743771906597818788095240326230613068477631737113359029372118123133715614990766461464487223326783781323065433796484147432003501530980047461717949623665587475318001394894337106524030108285913878206275445112572378393623873670983937507577223652775583004561849582990622961384965154592527903731594434500265912183540988058342989280021732372325770846855498721975098258582740548811532268792608697261242767556899151742179922365429296216059174105634241034332116311230077005416935204683005957461225963379916814468761694645963170360307972795731024348933107958835039926622448293924955259953820785520227137859544517308084877485042063827580802337212939732318597421274642999184287043983326097809477548287177160491639890236203729089683649673475071092077311968066856804615956945816278489266245456661141822587023528231433946612874107083635758166129794904672502827590967010789124016347829782297497226809306560627532966244604197941661509309080082939652715211172777082723326222447691677295592596943220299433731840297105234371379792504996145921076147166637331568787700081891985192536796075308725112895642466500381829039968534238768236055186204667011058882805881500639052598053096900536444981852700141887285546258267970705165841480469658256814211392934024250170420762174273391415247584254465849832725315525167830274188968813977484988526811609956772364013636826942537664873183903438733341552971662907927173837652417427036573909615523027335377667982871164458065753968476489525263832073979897937866715987827994084904552665623693373501759934999109404472860312487348650667071149426201609690799200415816494607633531964531607033861710422758728715528447278993362803281948498022470127587231104478634026903381909241080115235429346223253609473956740101439385747585877701538234166998064729029538343585485401940117540014558747392828111332503381625118326393023102145996321685196337651745574502629406944440715267295115876066978882186740576938491947135873915937528815236787747289194150053609571908987710054049294112881887368573761025088164465108458297408350255074386270104049117211108137496429945592867226206607957937952972332958632814360179463982479381581973188612442160674043407784857871690746215692300078308989330477200211463011308562264378222486287865915941384358530944780827592595654852117087436434247212028168046743334259519889105890311069980279686269368281466057852709328237785665027044276492851447204567797235506708923796548794518694899352215651294126995487322509009604712858929396524065400417206313248610027606369387429588957937423908654258117255107010823873980562403693745489379825394473357126890783062988557753938739615813480136911739968746136171617445857568031646747168147137067514588553820213417484076424199476098723185238615307305620780354260634608425397493245845448929861123061967097437293278067657626572714497741327126240747301467942013107981600520107740072078930021397246472286404643131896648615310157651737892109321762465168705332807734421771675276886793599654109950670913805710357342508806990843051546807810081920921949613151751255812912810352409211214873977543575024564891757903349471353424187992019507510302231599993946784216038924350565047521407834494046664995171045440215021234017326712337043314775644625362580940838581327614879827473084868484869887744947291274373471608765201152523704628946393740711689053902625278363779220461443887012194376761765692301347780469965343098619480367806386038980235474721081555832972970710555439147918935859034748406387812487819157988164157284129543721004835911578063307387953066368955466841307788552023260068904269053666750493450792654380732408389494889632501262789784124696331992142602718203756622906527153031031538482526933973201793121901472425076945943788098234887696424162826618800489284744724381857653376738767463559846022160265119887292643445304771956919684214564796493923836154976615054858561435771001633378613150653152590373296804264657596215894408339119521777243948986808627687931412784411160082973331646706717706803834857084393168755407540839474463906157286956886072835294597220665921707553665170288387497852469694823897421085251083558949545844650836838010829858276225558590678191739027324719189460466142357589373802370171195221720916718898830346375850236518588934381238384964471166499344380982462854662502182577650151026290069426147137000395649703605291545852139867102272611291447535667538875876047541717149154944767246614258600795611902679901183255886578320735491061960103474176728374586355219804456784397374057203221077456560565538916503609787905476285380991104310225340143378151118534602708250322828213197432547544151908208483025238824487804909331500519752804154950506129562425950683413316363711899088435059352742760472991084006558418428175734084772027152287531723910488876060892867799130337306158750374187773588602244921022841208214592272165000930637165542837568373278618233844350806749438398162229529153382140090287317843127781732225956558191415353374695988571049830927125355446309233176740440434575172519531460366514170072636395480241532929385970636373532585822834256574878109113892348866506530028685412525062322214544435801470782650506412420672834346831379715403140945352780627553414398075700743554985468068533806588619042539337394780376489437800980962255396335475786556469683358593433943660950603640863670920127078489774879648148668726573850440802952953659444887678992941064306328785247984574686687830326890617474707867930547208175726210129558923981170668376311094502328780810517799588561300306913477997458137581948248861869232982099108227189378349314519691004677173899635096408538901811719662559636613949238013129860747461756270651717557483775778788872297245139594962992518892419726703912488627479003644811574263532226845196665796537421213300003446606280648396868230973449173939245541210952649424164311472999767053010629504916060450386428068647836270115060534700649421118605373115248669853631777075743989155695329205354452986460537928108923893661282009141543372572634582311065294440199800221635265881884302547006109142395387877443124694238786720812820061810009719990753843828052564079500303086794498580894005894504528692193666388096921818460065398717644874777484354532263370794448838357231681100736438871289045867066182814093404732634958358925129719081900632217891493031663608901113600416834314254554051617567408193472905131015553030046737745283054289224127733510353121734268209947126581297289411352197092794598465179331822847729113785983526127652907791207961317936028334047790470545828486533807804946685896821919042843782585306246096658512428416636316256093904910973244909262350830008257440499410088956372015099902569109494078639624225099858527084394852144598719159279231793003851074707135641020239812136332213153549309537471969456907667375624122252209171087574099190859544419180251116525061856317052311134385013992848371552922038615799492713174751306226833765485739963180799626047794845137588244549635406000771176297687903663806242541114396071467621543118571556660267358624526939580053778323333606060163069314991534344010676855868167856843356770339881837797264105047108139181330875955511207655957284963485119112541854111043662289514741527618941004724518239150545302536316777512240082151162062964396866997521685620748815326747828444936352666968937943100687587756794831417544442370166483458206197665792296837215583117305040171473630893285187990369481600444249758443254385711446867004849775792698446012646147523041742679806554035696691770868197411235574674618362822704464295181016588005993104085774529762275827867610102266157148935945792298295792684718756479754736271478551473050540538971180967317663490295595309611665325060174096602333335992617128477447413632263192241016048528843986184494187300947669512307800130456769556977658534606672545336055036724476696832249709715732107593678568540411174419989287162584989142868862373944460550560217644950395991596955948988563519304957543314452710148082035816890331850983808254829090119439668066365346393813166949374688738051008713267094713477826184623865161143570039890715410630595440695667782178709802418240472758676281615627147843941793715075944216726044517575850235766525691107473572470255597941922848304993584721062949987838583197293922815947335358250073786997728995589407032705062799545747236764662389910594103504290453474237303935536688637716851989163129846272248153665085654122500739728122345978327232532702987555961916210143726005929894601216545761356378395404993288714298960414125689615376418295275344577701614548347616632227540617823913585484290518778258241343252436894454117142549091447836077379603427539606335573327237453939158630051045263800994974354223972201636119391662207667213238657926342951404594039500560986446875199050876084389751238681554129679009074348126406932756496436871049407284798090439466587686222037436870688544049760982667905216711714616120082257279984495304684552590155084253817834465956942897177706515205919140664407596106253440194507091068296058295272456339744873194252255276912322196126649838417930745444334890104492582592514677411910335164210522596174426884458421766289012466585253341739513863339974319148801404981986220842837115141761355716033909748288213476862615695849867278042309055779042879480429657756409301926797037408677119188467901280222464430347752560076978624353212098618433462994108632642105533463987871221882915588587649106642658224391233347957512887743430037453394499518113197403209363720365058303844892697349664599831254354852041690800609194537365225424074642100761816086379520039263122382621665913911122203408742643844905053119954368434954024978363335872332465632631190866324055765620111407303649896923249957074337258400444123795310776298515828386133634201644863317102806009985898440483389152946750157456325530779177781502666704046491681291653330843598950355215314486469500311905227898258439945233876127367043438134996453861375979565981967445006231524911933609711447841406363869197710828002422000184716850146143657035111692035983335054165467837233111891612767416543859441192123699963565689651191166280841975745573225757442667892903447356453216580885855199905744013021153557754883270202771162247450653224074084312173702881235046627572512391176752074278665512921960508175225545745058605010435674776575891667914166430141843923649918765629235936450854966093193443975472745872673807730838810208077766122837041051626685672472420333073647353151260219308257320554346823696072760609533249250813987350640968095360687918178837846070083757500284424468994662199439260843167510078365189521475151557978839795860512523944827046362840261759402481127580433813382370750204106554548886580743157079784987972199141484245282567092406954960554468405098019404198032632066918299914216461418479136368036717945494356194373254260191726378962848109098959808254265898629418232935686337691489180180138647659036033749766177548210599273058939648082793834677081407521774115124006704896161983135201732977844306344801786208346023940726641158835203999270434026382436440666512789403289783615075087023681167206374166918841049720974366964779183881527058610209314681172446909773356247035730125949145942180627348666999235952571695450176683425321547005066336007248484422994929504559453778413191967285500024504285618674134074529037087277789691339838746893993275158024272296659781738742122940937530169870044104466780070914098606148591223865094087500430862154325374461611010843914895183403722659267537391554631615513813321798770881958203961798246669177695431371014148784496411722518960292302059112778710830838524350482855553027361524708685013226457225595145430855973432799571042435994832521254615083791692353620957250634802493340432750377086559181511119629775527586889502984102593418174846695194706129016946227139910115320020601024095777067213028772540050243865364222900918426366673434762308336185076877599467499170663671914881512903053237931787926596975349943048084650583563326878399135526668668590446709330152603109429609971330829545276670625897888952879799186886854361371376702623766665491081031554107873353837216040536911326705837612981569561451734232129544729773709951954899662893435427725949286401606055984585388693962104927225160408123087127547921534121786661892719248320315871416117073094687599481029606818978011808674169114134402414819593795479749583410221158456595909955183555146025896122072388034527045957947609006241559802445749138887867660708090897815377009911671654915319290959731876208177868871475891919276575286453415372766755020662161446150847156250177702538379303179596046384528797225399952129485011783847304363616838343297042195850143298662662028336410728472864166058390655855813185002519692830962223297464503907773588570211764217012764046237757475304356952124203700592078301774863691407719423865482075869917785348108239206229709366636310370999394590733254527067513024926559718312426919216079475283470689197417591333391587216729952939009290500951048530444869728549364843613553026552097806949021550618905846543789171451271286322708923701654025200906418066001531260501686680965407814127217548704971447195948376272546696937038154812762999200679487107115276041919629125816480145515843907396500088684533478629268185234509371528946472769434952129080868754319220338109841143316363011441508648124488276041735465717130130182053348833607041683665658243181251076256166242026204688800992820344087868627063133188718029030385940817829943429582834044592307549663333305404852924320924889874239379505593779637483222464304522658288909075396281875590439352860225551584722838845753229468859229450045147295386620619226681931402684699352887159780507551153424394376554050599002645615737851214372915979033292853787656539623378523906091364372508235987078434051068235460690631844750912283523093840022772939522113071514041473810418631339372718864341589499636327543966077478330514286047474970209222926325722518457189928738792046151717517655783878087170587074268118284515784062004472006107011217714182683797803575475405165143262977924946870606252929880497781321792083700464542251368397413370210070497151567395626583223028448907074652129605275955028925563673511517347105502725626344324210174115622573123568997658412872901998541772639299487449888444662217732520448755885269415965167581112462065442364686152738564999028166524819875694340104649010633048644562402816435578983180393342559249494409951093982937251619848359666997224350200869767034534157954144065082105979297869418567861215042294800029925777258629635830467192278988137476570426734972142136096205506892277862710173917975767750849785603570541130234486909780590332349124445302498401955338284319119072444450619557939396913258632584260465304541982747240763410265138382682342852141079219805563025696698606238879925769043184677901470984351838345975062387748986211353849926181461829586021846970422778862871758135044355882374066803572812480002647596446497292064821089336144514240180191718352078045323117007521045331498723464641843833021950231722507369728988985836761197063084144009099683889627914149869994961115302260014789107800356616509837873348523352739837589175156685189686851826359797118387439076847447570601490758428501057127557894482542527393230969069149094327832646653413544088660653191991799123167538283215941659144998357098403811769847908323258694014134623508960229843083866888018275140111953789247217577652317444562639307412778135831960369064455630479351024185543869245029113381566631008897618983434756577316335554934381459980660775032671599856831212424882161659677548691969942895008566071824575009058706139198645349966800114350803024585020547643518566954317114032434725040629615350644665731037372495848213172546386366369526137343987619379779461581907788481725955052569968453766415460380047084797712699634421931472409862612632759385104572103312623044146127562608048252300370098318182915319451304121512636292305802469387520378702048466716139997704963235214185993636637785614568143271859711930526495228252613889113257716829470378693980052326782307647190862182031820848094689491169702425973666080705835857980346405827580455307889294866304142647578733247619828300634742106731502131857501168734446169605207628169651196321421312330345440444300731469942423451067880912541858098894736273478344431619609309339966855053604443320742089862231955830768806658461532253226775697002836607219276841156900564684685183084038311666355542260920616983169117221906149199058582617952700545452688660192337683741303374539212887272675681289380843204465629978763541730890450603315449623836582253134408792065046583910270867761929309092444644983536147160247966790063110276475282580885646115133734955393376724534692187041753564725789544986294125509303612934489219113214468929870887895622944730826000885254719215469995439224832508502310931636281626980674940819807669529242279258247071293579923433617563321132743738356858158084203534459531010335200406474078584067348607242455928060705433076775009585270268693743859728201603220076592465630928178692384832268263666523406864890892346970997584505953328371245409355650126963633205293491928361338819430463716068429204760458898051965484675159626463666850113686056193203234004819917362729702473043335225343068377355413118641561009867714196776053979289775314820048626097900258542436866023777100197177555076292730939573263625054655777086185330122421942827338490027720697845970617835586698274680503143721966526381325189351232814302212534695435296833827723560588800507813433858555998581979700545617920174499916265468948717065932914349031818840939217526043380703383099557209922097398977808335234985372562281743797312150148068249813346848722923111344242371553171874530834587033018300489570530806689778601141925913776692091908932787347383556801309303207213308667346079311405057678609453662991017270443588040680415346333001085994874428608095685157737900939522031054232416502457514548620714596792064273375104170692607779118151492307996577755382788649001345098159152429516724045778757598841774202230975508215665310787746821170010642166246714741753345492206346151464562677307023224492436376311513235255001521192434671853185060365938342464090094354503412128507701613396029209015416687502438589055382448823012951114571023216211276348024241925236884736307529426940758080148383061852298888342757102489977766541579338735691707439879166873801288454348561327248684940156730975582359617030722826002824563649076994895267228594102332490698457414392158791215212842465784509052182730497010437748338533060132767009777150276241148597866824709358438670071771820088393295432155811060885339880797976667046427883690668507882108986648725965087516446459764227424592458176380695797598604378853057663521905434744059540271797218166158360135941359556159064438961175273199359887398999482132323198597711287869859719571535702299906787734423863856456643259699001603276987587780075772713263756981638480301714802464409467592610179651607729849253018977861063299645197097321155643319622361653728763207383349286178856823817534778734805041752448171512769537445641737293205673793560302896659026763689327582402000026367941840490725116039143294022593204269513316119027484218490077874295849586409159866762027155236678583827301345531157556615497612661331080491753046559186836819220514928354979598928249227367808116976675936890630526180513319878391212007336544285767299359015031334264411608889364099305057214673639634940399472013656085735945972750651784285925689141491591469714255780254694532107009202605565616771070260095175383919658576021917991894790261303883948886669713907288760164263767897907042871975652893602836628110758825782078234221831850415496802985861674148227211414828306841782815522863365114026403650426859211393042275553093951221271962871221639850747720346821791946361151243283294815355457599107696584329004163933094659509141634047669612839289829153386381608478448773799580795336034865545367552195130684214319156371694193825307505838095808435088436554361924459606099938069483605330541659923917463805803820642738901707894354271212592150329188316770732925332229699770306041873925130609155650853402146882900391120779111466016450304219663634861005963190060030535348146966285703019239933277109593178267938649181972084372750037531248784995366193803197483273698836763050496176129145486713023856752741056251642101701765316736176839096769908640375344465150079252413492697165388167215308530282798564980140571379787149493865946595559651613159612502470045296252355169800438037152863521423378074571497363219274637778272781864814505773563156050081399438126622722706993886222374551182546372982468829659822009190426043320486752221594114679294422467171116223631215552628242286199815653805302666276272304602075630027436177260779260663380992138202327814645563095155105974945900346330271852783176115653599380652433583602406048316825230268413596206010569616307906372345969545981129006896747854852637841978998247012594461068067974975744580989814426905430651777104722587467470911885679754116253946855454062159572366914285936623551134624345385364314091482156842740332324710667094893659506334114738546794664498460897815477372180177059885336893780100385028166608879327707733568529756315072435747294612139407846481564618485615723312593042822313362969293162710269653229015460494107469000534117896375934058994874919334378351587543583094195698448523736502758837164605258365435512371319386022131923602331465476564178817881125176160530142474595547806411379442037957802519836380039587063960184228169956381287968703633857438884777013068233753937692815736135839192760285908792738275222888655513357640961609597456700889226340289456524313298746606861956256983127491546657108428837146795618544058336026646351723223102896422898489571637196099156329060106696942641455824358881377412823429017892643117123764107975982633782387729629330153273596891505113911307974514978679532335098256368995144272045028812250728100825216165619957591516022538952023060143898257868126431185229946502576677637712394397523673795470442966837028997631148385450039359867009831331266261830069678996714400715596421835866998189672793520126025730110421178511130001108836320569961115976124195838790991457278115907109487053269858034290734223752295908057456653043056457296705509370422227219642753144799831272343672768376783832323989239127021170690921172086992319875876234427493846441699620395658743809132202639229441589360185267546018132991607246082537656069312320827974763126954602894060142453273012724000356956229757917967477666071911700402215723667553613763690229964086642387794479601928878691643641525676976575469773941136690272784995173647386119329102836749899009224178270222064442876945358860183847111530520250666745139233209237501172036342903940750350357979918572999114993568059976014728562642718462737752805783463671768457591801827947740686681469355790479089364561014200766089914396286391721028772690294862058088375321256778287934035718013134143319120223753422041063858058174668915613544376335539928221528277445139228496544150834092668865911391475522226255598119500889536877144525481008960571301624575492493249804239940104979951441944792492985871623239348814651198004533576039260026694372294981355883972861709402132221925770492297934796569994826003551409572919698728498282360624719781020192791269668457008148836598954803642443045246097874097476489105502708676475491782318472348070483435683516625589021880168035809216587895793690504661419027716306023859008575939577500991474403667487060195404979445735321365467212750775940797805277562951342702142673006555226420910868967157306672512246129155438307985227451631029313586594127967097724175498351123339370753136605288004100165507766840537679010287359244552555629907672809805388930323164336616223899342923788879685622716044410702014919797980874852464911669485856472670680275616514188086860079746601331893155096636488307943530910407814758840134112847766485152189348390896225673011673621553066067795436249983174582956545147064749494396001628756692869223079834731495067724655440138631062416260207848586701139194857721269831044425405443584568751537802409525393491308507702045639457073531610073317922394835204422238980264437188378634005773144666134386871984972085256221706299636636138746035171351432091917680294123357089131567961384640436505688349783484263481306725932054186991580074732354451528530568127332760113142063726895761635075389924051419017143077754726048726678369105541652304628837986343432028225015088073834897201227022429147253740238139497233960251957885263015128640464822565674408106198335948130118441318245561372823090419525098907518103290482056727710859801417305184280864397907992736298268860379302889453048748237159976899639798694879242533887547015582389084161642608749955323819824291190666603104332938877315558102902205528627413019955561412246187015256964989974946564591232126411214953986473878402664347818218462088159448779962212413552786948721769292094629132305312313903455043888441050831533775378035389970820145649809007955653317006464423347105071480403207954579203678995970937984014455107032079451368064594042600068060461731859807305508168827400214127725417339581586913299329447938270628986486480574632281239993288261304918688759945742829333879309884424515050771491529334696706056205520357749577134020685315980605606363371894916609682031414800656522741970971189011824849264057357323109390944156238436262742876222466700561231429885869759061826211455453833506000772403643265946211743270282707002279428164328148937685516163801278521280501347579180684734027772770629128075301454683161243228211972384009571310535886713176021407051463090673031602805247074968816794070749389277408022316400269577181873466432503758510758295673480427686945830683322398938028908221246824360414389713782536943396095393428196401261349823422100960561870539774019957869721507726983210677422867241135248603738832703482460624522049360947414820887683073244392517499888805011827829323123911619767659562588861652041775931776665465747681169659923364680218747747198361711298530929400890783443063383968557424633491374790235281333070799374296028282248149515104214402678726353080625597802469101042354461686470896070252626223684574413144219818437498664382175780561657584339822287764059109594969687341902723295765231563675031342697937600452027633166899149221959799172709305764729157536765622665277774171020459640067465154055428816560508284057963583262076013053189429059981548918057187540467578608129644123730695444615141403896880895081293597674215180524964976348021055072913832712939605136327179799739749744319287228256105729443600524263662898569068371329189715201054845226605088725502427924824717859301347759820789485519185838926357690964233473242670763146481319099144206817380883096423227658177079553394441241628000529297137514658711928507899404300068425417805994215782848721197208322142669849407255231953549039529462863712387306691579534731028516194499321402381891116109202531037508913027580964842919868870842592404449733213284564189286857097531497952523061570172692555059687624501721684750453860454442815125132258094915628406462944791544484793897744844548650589363864951744887571318422723833863037753180254089074749924594998614933787788503110868262978900375263400686338348355216638682488925840609903163144693095230644985838678786528659729889391578292060335162874793032108965509097607529680723725242084247416877763889522102446842305727176815086036365478171979047632446253593349468388375828917369949195990369260969053808224157515895067714193648453797977308315799377343516857095297295843624258319034743878184392343968716046174086732842733493640993080111762513247590058731938879028460252962584576992459606729074041748715040820795117621147670037689200622040397949063435727491478856346359970379688115449596550749083567960677345847668253825928019238903008452088419680903868712375024910292165329283897701821741317118212100493654205175753247490440062376187135515660632132439655629231671971467944812869762593355649109228625435768869508852312833420796262272952294220522948184346216210909818566708735281439704110479252323990831225034351685082004230104416526985714830217492455889829621710388759819567336132003798368770233334089423177081918789070764161492580899952164454208137410908390400232548087661065569143568310799481045133596176342651296256262833811301390477332220253616830448409466980877197730934094867269890880129464960472842190853503328564208519611583479420241031652400009686520202403931686608591211086607073209818414130697717284818685916844876474618370887376199090402351014954575350261045315536022463707947887488062374239517664247073585649104274604487773026141872764989280047634725199393771691851359288615257052205758373978457376760898911399758544509666804280054425796333248950465540892008298823038316420527034341708062488558165203524963118374842680023350094846832609961837040520117471989603599230704743943844737846112032603878711703665827925699059605128648956414987524757609397934466580647533242319817573321283537620193278998169503477032715045646914247425542469191481791718489490388641217907181104224174197517851466141724596835934528855978288273879621674238300498097607988453226710407877965636248584604012377808320848872475963941770513196483808118395752717388663813017536681268732930186442949265567443345246982364043556063348524897520417737625827123119403938246917658904928959725973409616396988617370237036909143234971836157345410253165462845439866865614597572345412000954832010026863839938829080216793936288174887485842422324781597885244999728696688889451308411835195649292324688891469939923176566614218112710286149853406722098083055969034200933004614205764623868643937609345644079660580703857457517266509328350306259578392429129853541876270444113240659163386852275551727117531246910485904143261297250467751264946996890113416953117164984442550980298972777268324024459704331061345215463986937928385929721722353313579301536551702299577238586518402288076334375587023950604422631441137784930525811217886061818386877616262048347854931072527526118516604559663318104873115645662993155280273632749192249974648561324118958270508166674940348772574292775549168746758837270727846346096749962607352921809680593111821930498391978224712159880086692831910339184671952457066136683860149817322494899087187213261542402848645991777370052184982485523943391242607211142003313966967838361767707621207663088028411780596071891468306512013345720562645150221531012065088113368242435523256837848338616882336142356213257055158987220164370876380805787013523379226396388530363500175148979696720861435390937401996357289226185701187006465011735513847035363261390913774971197209268911407124215257283193924343607748913012899060858759590128225443601713920574348847006197110081570948423258002106384560593578926447776903621874015951717647019122021753241919270119325299797834171043173704633385057670611931040536865061832110558354014867393133030330237138967730113977989022095861190098893539410999365956433933861372102422121439000382867260648530199835602120009866233670415419291034190327789307571878001692825566995298557521576269887104854756037470956995125264819221322740377983907766605405866283853177671820841798338195867165623091373241919443698632753030053427694093761797820289374659650510079508730991989835075303758326964680666139119647536802499051534622523557240574440944378206144584155882752987025032824837178861505490607138438045449469891620424119657972375673261661428332522000315343985750514930088384247747444868395626579069956644979130774090419994977663094292993709566964908465691874512450592512540882259113367163250189913690749305771524157191767199822141250508945034691363569966104617782974813504271308067592357534768229722139369603495989875284786732135709702007828840862656571419892273029310829134966312159394501541039317154885834645414245971815983114490476651194300633276288322557875409104030632430992317700549123451398667347744880929350604991704824165388573082791334891487302717467815508413075641716009582760813447707461944706803249492872428377055021081167587226041084629344422101763563691374833287759607182229661069114521316774623042045035090277448261862166693170948286973748362561213237678449967632232447239668158375880042853230794702343672063609164155361055441804682759319055857619534360604150633547737424631631305680201283548386558088569926793387499730424549305114949525833101771595907242059844174557374124820394490640830501734486663024472043376652065924928294358920204372497351467425119692203442280576559703250749975621450033838809372345359393556942578024540628736916084360440710242303770787508715720438015163260873763522786790821413142101568282975734724674877109222534419126771443377478778028929110698594467345869999495918472543140399203512931601403309321019740747013966324246584914047069449486293939746232220590257215037937821423725510351030875956998804593990646623177750836329575251443986729321663957107699990129162544795979725780754087359948876979741739779658506472007032991760859518045108170672531051555039609249989874179006896725948655879687016412532047978270672166914253205047060642131430481704204082762102300474483201061801586204570845857440682123253837818571435698642028705325420196996942859949193238318809583925566931047703187817096322111535755762827661017598349681522822735132643787307019759991324692061191463704357547978456198590064375617682364823882741372641182003218120465225489010674697364709177389439069112226712924247841672962892661881854691913185128142383501758067994663333278195210397326834332511711668256543508905645893604310965644861255612060982077284900646947856356914562808051207766413717968502817288058989246190673703906557370065584324769673763618085968251032768997953875431218869109537865908590349934559563514347093274728552622815149957523271847647117811041294759187711195780585791981507877679927766974628298005222224447677887022367779532800528807927937458374611202426735590983395820434644366773932004452991933872715159965241755270322426292922931385653203128138857958958402916953410394219013471308860743564647990840466251846157197453732275664381475401910392940826763198215141424326438060765555258324331038632012055860768858850172060024981058298818280797566636815524086109560542489749829360847192343033607549828488148018842824811107511686195995673135144751233717026087228218576315818848806545752295871027728967992690903898295492310223218510559616370112515355682699577353597253031309714649630530595192404964159689886874814273971483321290522194076128036207651108612466197556738179339271771197235933553377740633676879802454501306201619393505508114023780325694534167946204385227919753121590732733664218498711355376240857923754714489450918968744689266155781773839851819459102057703413575419436559040059577555730545143547370360726924960846933138839765677137519716782922727140971020557175426149011978682566535158723301263197495360362961525609917948492811624677174347886879800646653399140922572460652857417576500778323614070891870567302231745839944466479989156527197631123479897079120951309498644945724603092826705696648049924660228046795517704350098426587934565870171801785988779066213507038966098492530439105729138234420843522247617210696351299051385302510158457407752294103203632495324800029003441236031914139271499024423690317035722583931319731575669467637763402289115041974505961481304781247846778103240202785128447350856913180135996824863634226431385543240462564358581118640251371496061140205608047618396373310680031507876165771927224899626867513449907656261515667473970947893651301403464129046062593934819031305964134453024532261224497327493657900386088370896807809845476357444597210517339584535786276644472973958570658958898376381786063682551952527601232882429219674783083754499546958490601541830471972715530852867770564386039254737024809154052557157119154740391476270592189249731781106439754606677741653587990652505299858183722575938304503922446536823274930889889540367749854160481974899505866752868520228111528073785663992890197524933579062613311486034270661620746679082589667766797493143252574407973311331547945829657826552744476849767275112317547574216229903875455371835298399016401342562939556338376214072702763775320196473333971906538534011010777563101395058377759849237677482806573830601659348518579225407800138723867330519927650031952463726268440898161564398740835957066029444567690695542008606610958917005315337355050265482677146065835585576417086686620942366828742946492870747961587032535291124794324568779190577621860582357473014548484685893274804248643046824999075218924917238750337302432074917728201427510624461404616127785843542651255566148039692837166877675064239302828553270000171061001795874159580223635173358652612876397151249384947549099481266493133234016489306600788640515615475559277403312720038893824738269710386483610580762626128407220171435026908040016380430992408215688267439863918014405056632095501655939556014875303516111139695396139561862826802953715937583204484464393195667774661497042720364379369871350206469773585036552593741381273377497656498484220851120809807849028109128049056075717901863612710761334165718425618041119170370189332500886750396062654613217582168420135657163188151557407112393588308599194093758923306723317350665671562289646858338358352639604226142455478226326452460241782487655840955680861264488611043195606409630585698051842602259430030029201751946122004495279177915165188272541375705773583233172105101573785721190817826626646926952861907249767869812313951643792955740878563688849036162712735043459310924130924035593532104093323291709917595982745129584536469190489795345706643056314764375653365795259523513602978368322359675649555045363353096041282155683917445081333072711066287389721151565653865900310580300452637043123018226370290295703755089396541453479494130588024306299041162166689213564471327806829749946690807096648969194608998820059588798653749738126284254966735692143622155907486669699910760050717456173571560001358460054066828254879363253509134506146258592988998670756488465415782901697807705438167549752993693291080453869130839701966667668666242813711615578505752938301621148120643379194006930574218190638624309341371596953305629450716107865124378848992942306433214351151808145561807900471937074263752858577160668376007993762337982373028306991239747657958476887538917534340293031693385843747679379439760196291026996433860554997085664196796407713871350725405134291382251939366109306082853409019511194373679368580336626082039756966032725231615308067370508482734966782191264195280164040382739675461759751807086066081816931713194497562010103923736124400346493634132404068619202704517404504046895053612974782445696417951500600096471219040043527677288894754745998770360781554770099811470190552602667873026745415349619290037282160958146763012418966043337463705486842271334042818761449750565936976770462266817903458988882112290009583645680693051899877948816026787199025469148008342848167174701621089704080478882773395598250814943710492570914680115755220601397214337791093180229289912160442058808851471727379929171385606623112979618904557342533602799660310950559406305489817279526338636590500895398828618888391254447993137083146946219225451633291666000471106522633538559660127403771885353258657292644772924909650802047841025849731382744372020605832619754399462206775666302129664929084941020340004499909865915110387301850698144084699671353487273709064929363892624826112127999450992640456759720262635945573059644643040300460564644419953317100818632172954833962298346360718774149683510050258802723445369835629816932747114651827328498133552674408769360839659832508111168185751533260616821368190508961365255814377663279246927239359830436414712803820320853263607677832692816012368073861834991710394565457389060559926717669971399649853140124518755178664654557547884658162562337798591296357362887765043056907640022179579178023920567878943921294972423939575274121234457149438588719548191567437799682488691124331104851522582826353812917846924062637795893734960983179596872721047105592800173745396470294075676166393238660898747622219867622327144059805964976345964019375220733233919091553627838561640883993801094570292024303108316509083692895923989333373973815736032165929478024363124019623855899594744226063121337094759396694710399018034793933683382779588363471543529772949220885344954871706498498080189857913155406624103972213698900333245813751835436935176558675377329648395249388721289939001035000720415022027187561876222523654996427184992581216093910606589421954443152717836811824430303607964563384713819419192624279384767151586154710456005450009308403308570190617801993525523592543533544954730058254793830378196202272259824988781212717137533537813601790478196021307119380865988450991766642690889656819207716144354567064506457926352359637175621717839635769872071329898981681949950778951003131116479383728257488237311467247964681760423196547120374110513067735341606494096904990588360211507168586298233102040056877654046238398134481757747647414187507870029872249128997001657503074008314568010798985474034240179055793144431626320182992774861014403927059699249665248281520523278930997027202737697395023975754132507236617961834243005861325815036731241720098295426003100597830058892169684283643630858779157832263517105711428045213245290017026144255703816757538591970267290819573253197470492192088981484236395260258032461468809426245610161077923960500926949412928802093096360869904444108144120197978453073841542295467034623864163775516431133858939157315082694395157934967219921550486655869107258562680203787843234339698329250650096844960151912708783608868802672589126878378755451004113789512775518333769933627461741245120067624514560597636919943593979653579034308376939187208844625874763190317893601760621435453520325094230561265323590266422368402641502731023416010260858983686362520965780956927456514739893321376371904584324267263544744800321504706901659863892748484085465731309858868387395206034363111148348838687863773333288925322744626440160690567381784813499282029594039839181245340806305134574401297534127978369520422017124067320637917385271588991014619963876819836151934651747461889258492497850305108100806439803859529954329745047582695897259437736172911412636835440755126398946112509703301373018621561913814267100958998443459297270148565556330789290973348914735689129062892216020271048595620211131750506790863907932394321322293535205360397416515059082319229811626460260002890908417685806162110628539102933907057496424176723785983522781679606482167234493682656133736336173411786221543258586631581163836761848845822562959460531622297901028204122629085527787072588222172084191785522401082095781190910067881304045970020474264956997771780540447252606762037539031067605266040337865340822731477102826762588004633683391504784816771216731783669528551029793015977141090110688071146453950926240721219604551881273415413394583782960248108782953863195818571279234575904705429180715733686628344910722049409373696003722431810883361304967559286262510643302534266837918434698729839247680835147887907342183317286282630160638877560507553610105586437100302298999684977910007164829293186820363984712981441114076345277455524884663606658021209473712730446012284534344894666836851645922166722310395202208433194870270598356119697993185849741331095232743287861557256092709907870547869739380274926357123038809938734637080686901293778057809073215357940411501524205889776838584577653968155862235939237026437574381113333367689682448447776823241328133657539914986311012860246610118878646475449706611904491936056944683273387496895908722729392077642318729050326853572433642741683523263758232782542751856106647007081347796094943750363666059810784809930865014625971406785146618435045779354394430246515737736981529174309092550973237803448331806454894599997651424019345635905603556785699262200919193323214507097779737536631862458410693230178628497322293784573685769477863698151859931747399550553988758251083855529798011322226965058650190734895927902623453315044241800138029729168265069124838010093279684240634155683665557301478876020504535208036489988355514833891233678351061820339935599276788527996843207200227017798011970877517708205324990400075980886530126847321228910431240735420528929930647475909203388497918527592549509487830346448845679889365521461064804357183958807997924335902334370334598292374877309690764080790806246563482978995171082596440061464838665283476597572680044542090415558925299922373255143048093208177654922818629248767154157120515272461823365786779689103135050938128361083219178383794994236081896977991587346574391565200954494190067502987169944761299292248652679230783225920729877032607700443265035134937105078193707359416008654731727677273553047913375187661651900274286606454505093472527899110678668838798242058138567808570935396338539589105943495015089194847109648758984930520294415689869027347323256274415338623116679067250667065335972006738719198325496634369745620021975528586756915325716697747017719007793767459457769521525241758573026826457003367948053429415077357421097414135563338989297806174016806093700463229251282468372993446553097760851662333677702933863380892175698890901777828570174935160852428388880874784744284556575581922814476182267194471659443472911217064811340390230843934738114927311340394465197686092596086728610664888288423299051939801745207111131205631807013337585322230013939584565969575519181241698270704962241567804415672069874121415150400190841037058369074408854565518667068287874086930003208518279524309280218133248692797747385503353619753955745050775930415480250925990983691296453112808213372187661502422408136245744672847155848671783797869586143828083676984048538798463655826483550620188510069729431643159053685636090202977805565724256834831926390683892358841333325358152007026038763749094275781031322055212387343614838057809588915150460498721316020168190249204284377913350666648393893369372629496370244011248109433139731984936658830982710194823967745544361331603547509213655473310221958077258253398035798893488984869039570485604428144162805275435793539042153580256627252022440636112233036392293891456242684547964748500154847412190625958992057362927608550202354998475567209672766577435713332383619471972447561574662937124604747756692855993719387578844404817327376313967091622026799068060669508903844141072897072708734223789468637892636274289204481345433040808343499948296022116231401808324244057908568873211931964040410432179694310427992186562863144390194124765819501714545994899117357171057078130103057930179374490117056439084527722909885249058334938860830010855380609263373780154954941823142584929280789227702266554040697732419484596894469534483985168463740971513232372993842109360840801526271902455637383201509006525220655711225941470791313623535867233923872411440776181901821932262305837039246392110980412347170828344511894799057871634352220422844803230838336299974199671377811238747084942959939512403755919941750302192925044400663753448442599433303938039213880541821971262751272904431924838577481718014537322709932843589884504092879449110876337663621118115279681369327522224228461409032259907890500644133429531433628035599034319959264407566234138278652437243697326731483589473597006172995300024745779944713590129445665768311044257169781003839551816217739728355176491702763959918168225108108803405997710686115546384725952317513354625347250359501191111736046909249043767309033534493700234615413400992068672668657550593271573549036219080871302964954858407159951578338779480978731435041145073103014322277703474670209480038952270251688136158238138051462717933565441158988580761818446538843101807239307940492575051750558262436311748530118875905999556201753258705757273234964699412807251637845129375881359603446389733471989659525311062982798125945606958384254485091697325834296542227372433675458532838092177225537836766473252048522471733138154667060324657658775493324601626629914037219964533185217732592063834876982635455797247098283351423161803447049994672732049267051881773543912936322566150467075231746559850900900219108601679749266036309955434564079989679022677767731665464063661341278079219667383957379364452151854302012505596427218426626091863776240433588525361722000766958516971683150306630050151834364863933513701484298682595724977535227687144379942026757907317669160883537965565400485821920581441941435933274460210873933236803081903958329446445220045567298817627897950991900383201360283376196321748637002263274471407601344120839911102493520305427483077058940263239091110421452984304832567185131992904734778245518624886012438261769101417805903557241233173295250098520423779780525093068725978524382460720962411320748366289151780603737361649844063914926034199730522288174423014090189569783852255816553745825589555326983600382081504865901149022555418785580880301413077300001296055455237563837417710937789768134533266988092910994075550510970862371975697227903405684606607016743308682853357159313638638415420494277750906663176144399120147799296560847268290790211626831232778115356396373506314939159327235520225890621604941013939946534299729780627536291975191951679293438020702651864079102579744546367805004728942910053168315626900817131052188572856498599919116957449652781530862526364735134663216881658043487525281228268247076245594159671381099426107000340162228213078295090685445557449198578736223844761344423111629394960341903940897014285552027256519374393108520730587981562291455268305321535515103685862310964060854635592320925691413450662191348680308902752359219336937349809966800466994821863855596913545628295461828296293538538330346069754998853299628582475877248521544823479970807911502674743312781363249268530167609591077151029687721650021045473168153775825979712795993887799004782782644971342004214439194563140583594818264438278479007750579013807227039009100623810248653476201368121290886537291506099392528562391677586562931738746947648607658944950584554478368069328164300405692596242877909207937519818162298233378799852930761831218942993284963197809661100164706082859011878199403438084277712130310979450168531722857778491497079497481064244146430356681118538917290033406386041081716818000806736768069830194819867075831112964756360777807008257325959144171718337472446430947493382781686810022709621320042529489455148149593716152106516376805814799343944857922817426621350274783714005971681931711196033408320947902600813514429261390680326419750240836163302410678542377327549584104721065088102662267760495413272244561685241028047267654039162498256015479794903065040852782767547041730392123551386731944810324969014975058341297308580698759262638345253068434388850820846369518230310036414308486139131014056732981173380575705401482314228712171182104051223632827254227729971745012973882715517139117907603027874206628461837458589934207111286451611048530321246694910812056695692783450364468203295399818842262469934404309117720690230653198274000393508713225158517410516047591796604414470121155415424167766628036652018359849476356925684652695267515523791093661669526974596326826486250174319391955735864186972739119659474043661486664565776777269397702441733204352195343159833077383151247418705480439176541117772335288695057103539003144236537697751544365444545910607213172371346854722907779496528641823738424641155062953292127950864721029639578340573773960675699045414184037597562514845126779147340547683110225391712692690294989052420061201732819293725734788360033741088668440526784879119353323802467375844801191242166821649695459120062141529538512163448304737570114273559149735198008307358670127104845042410932811734243172491804980137723033139443962981308595894845995731245015148020803049248429366886020247477283726932262641446204890924951084208451806006991672365528483391251243258488409484443002490582146374687988917251730160032602320672155833460956571338693626014635575916916925585064812574641435958492651441466926073336476213297740087562102805513519806952648095950383621225379288739823508909695469687258959479788899346665129401647081794939952353909010872155707927133993079897343821744288401727976585892447784373384351366124217119042051629033784302818509883893352675591975262768413672267884417120877198790651159153239853134880452848884812231616851341657098862380907064116830409685610049501915478216639322642588804261274518659667020838209700641974721153440552163615360425200697744216228873656650064906652660620114214931204228930372625876024417439158062308561282605205128007818829356304530951412517938424179495068914051882041452833744105422670323024845398894537321533205148351385236806441635398991631855483459664088390704964721904681206771056007174696230568103683945534502946363788275484613387075380872848860291720566173117484006168586141071922626924199582432920336968885789663764816619903974017333048162216972276894655372110022847669162395476021527320815507357406399499784622017380274719724053252765632085128538893706750132441860573504231109542083256301328165207500241515990655837797762674360315793991593727147153680920008118438930767058995783429076033258299224311496574533127064229518481233886002975065504853827853595823484136135375042249124474483814949227678832634450241000369778732539679163421616442676467552816251262969395321107504396537153889283150604007006779995761915199928787986621726420844713445142269805545815303899021539689520259265422399183645005508776455762229387070603761673442922824884297549909098694141064628172496497093330663233507255891887655981624011846916459852641338584788681224318316785428397738500666592551607908906675965849449047666866943718207647778738233607638293162576234067846734517183359221877409100996718268597215943430662725364599086517317638699277355373533045270191383727233482502553336607078925702025341439547079002611637734408274363441607142730510455740959994656192230771320111631888037601594281469965535766989557633773639377448736330958901093636100111885483661854118406031822014152157325791347069257982066476967853660249736169023217582701096383710064075001759209924443828255818376750149522882647404263467358224815251638400017306244738410415792605940165291083544988334148374631282480044628147025855242957692839596270143268398166524754440974930320619373041720447725975967925662847284851104832039724884364267312574575491083969749445795644032766497745744244363964613174871101856156745455360567489353418208941158926041157464417267078759622243724760277349539121737064491854268953638970641089192269530200355645243425871877070531421500367980667988152921041383027083019548750476383731951482171909867524408887712151935411651893646949191051925353932990784372168383038989535482379965148348327470353885705101499593670532061362879163219871091070457576248604636016713207135044514053902589240330278109075202965643731699400926217365398257019699716074590412362887038064604218797291642356348096429670799233668162193224609641609795712741766681825179992764957246864870037769340813260995696911719262974410689595538820343087213633558550270122491061459412071624812057976013232876999418496872870825202266652217446430724140626174039394564755407602866795240806651412007945030031279787449096058104422858610125136795106129987211117121712637209973439601002142123785335933473173646976094202311706388963307289128220818878697331677575992104548885764352414763948641112242195818813881116159928714454676898872564779793309240283748069687990227092607201305372543555134563236809364673606260965142663774466461287104874831681557971774116658992421013845551625200640692115211915439834105432257615247822201481816322512083706587185217949902534716800623443011571786780404443869432566368844531706269857594091054390342471184243689559029715623716216287970385492420948500778615615856785367845631018828325979939246694609107979537841241207135195364209097452563869953647491898234602442107780270948338539653548522003815573522070970860523786873597128884418181720519220424199449232210291288451026625414021955826696074175224321369308907996868040546444685577920018425322600939184037445891522514839164723907964124161937380844071558595086915778249459934744114756207237191330366377830790542778993800919396465794340344044919598803147763959130033350171512865722214653546779504057214693330664438639155352021080742054075320769944338234468377343258746920211481346198352528405970682155297061900469438851626280873713345714331585903593081137664048115532287892611681670360962219112563083398186647063689843353132933437401528709456189191767223036368338088703501087517703449715171232481252326454752755970417052498217590278138826780511097962201042061153847432160632743676925775659921553034764614107634635010080451458837804540236543731057613569849936749979228537936140334860302005893290406068379922077719079778322204552646420607319747949358467484274961593771243629368761728519841687235006479392007152493919099882430873738796824696596775705381541021113014732989987801545636363454109608438672584705044308483497820835704514632724105574658488191207363039386367370882698101615731295766459973238060655919021067991476473786569997810025713835167332319508039743828607369703822169852661619767333036897104522591455588032030305364211853431027422417655869473300808444825437262163386677133620623825860733329722600002069775233567568759271212004211429014416390396358519130716967529737607426883898954111220138339486770155461902128251287901854185520224842307868154365228960001761800092784332276912815127005566916892262141245148207464659748192114783163400746980357747300117442308825935228940337068767179111201766472647969528114241831312823105776298047477857632217255830202923400170536582452841437477324574956513267995465257772787468098495633332458096283772206710279900440550627866777595785956490607633764908073458591858171070833186318966984180422468141120350200638386910489761507757646122185707404032860401729886619980557108012462719922325350770803465949256719615562782186988194648099388656810238245408270512963418053463608229403191617058229857157253186776538498605824613000099253051001253181978244872720567526532279558408228634088617421887271307442656706191962246928966179508198615488351932287441319533091413721469655452100976078583439584498210579948228848295388354524873445858125681235009481569095919957928890631366548074523871668180558767168696384437768597806884571947056870528956155191023330506455969331733555752959358175593769140723679368172883391874794470950764712553520363203972209409353561130538456783269116075480869006617769047920016007044787682985411424319502187745688839823652937310997849237486192422780344924377643300311945992228527684966429498388576203101182329520536187866700406152705054739890811437590071273233760354933407289382622283511163948938737389147729121697523781805382444453514121018123224815800430146288260047014971861738831944475603393725775594574766835946697502783110701109420411860614734644553438370950586567472227548879535355892663304500253343192979405264836179081211160076771001697706348397823672275461386211739252126350346592667382145411771642980741607409622331866645834705387538228768636610147801831174796533056621804160231125280419393799798747096594621565607771942373720079708593753756994383244586331194534150153129402268889825361634099011313540463198864620129262000323529501332093294883101899316071409141129707492983823299452891222931119777840800101911709697368406758587463621995086522104105930798743946160193287351969028690629215787134620740673847488656691481499563779858347295175871939939118478376314964948935941732413351956800073017683148383851080782260773235298049289185476663403988760596790055796389595882773195797745341595514841441173423522730897148992679252234342787101396887389823913125399963634430848449887775319233025992071595766835932830350038945778796842123047201156432343103922920820090590035696972949847574392359522859650673557025285226293641539150666686689837701996510995145180402341599909324697759437196541675273492231104186048072070146068248496101222961294434961691798962506423687797389744014848634181183517304311626982123000616576613142129375121171121733163830170945992406744947932992190638989908281150003070693531939127024331940996333449521020380707679888665594812863046829934703347578544720633682424107376223604113763983159472310228162667217970033787405901744556929470805315583739492162071525213211555643497281683571979738837063217584672115929685729363983604828497376757117182765769816724043337015234867143483465340516166252325643908237115279539780929924136759345167981171302154706516371078838196690823732379602281962450705185938964303508211327523576473256112069073896112191417645958541668312151410708668570123232944656944729709050458612982103626978631676812173094432034451553712128214382111259554960244183557027353345659010116568519483397840615147333839150928440997026854335599756918070115913302055041004355960845487818810618688020294560215425788246487534704433246837634512122782124174071303549132346476104428206865587632122291961326562649245370582717846007076646059592982592701994568599942077588010585396624203475879312937478490061011677517215509503047612585698160883422514581038675413401706371374226695424090835058744930876424492230637474268398332542018313495972775543549546622108320417193651334131392559551237869310773954709369380507259889116634154269806436011568341773456827818223876100603628781063176305818944624649542057496391488501060061847784003644696139235485759495065681217890897069287794089381929941320544751706578222253372006982983736958670397056612546384449326422908202244696781809147832924463326444927539563184359865365870641691334640994652955365874182779112530999511933420176415911580314339373438481923304941363717065845283808813641116112134905929559385522373580646889332533371674293325648299034124927461264698871291632156001031434690406431914986258920091672487833805469242628040667235317434183724564247773884488901103299488434266206120387008074394541636256264684676410508767249331919184744296623887098456019224826460183210679884649102660903211095082460862870388723992999411281767766367602332219924045442051099950983220836528658931048443217698362012859402910368655304587751230028057128419870680057692801109703381132208831931266006061028799821710410418333770492342001424061403223455048283110010987578150600225597739357870738007108402447974251164070741061465818271446719361028286945517332905370466889150550031001028965407774142204683293367481930630493834227884403417085220956044138121096744535079484126451122292690465592776449658620313367340581228339728578171930397422081271658775317786618548224650962939814433507661223419393158444478699297327746656856631070684268746139521302320393026044005489783449853050462344907817259911858671396570820541182911870642817327172566862733234589486343422493285610805585827046231959089937315143591983711574261525266429026131140169015034895620582511468834587300160533411699003797459172246107847818182301429581700021371622799739353542521294243002021314226222254141685358733874914611671459402787044704372617279124207468638476408262103573340135799946510681718877748818901335738557157134165318795502969515639420851991774954272720204304791386320230415240920245602048244319041475402540917363020430619129779384999956959482347930603239135369846252036311843853669363715457957880024807128482755733503272087961952540178292126166170865623728891345665716968979009380960591177199146426512617815867241132510820073407627775615477052058919282066547844205895004847227900838312934774143861320797519106233112982949860823123121165012503099519830052255418836867862401166564439083748649931796259242302212686713673755878235530549502972881937430202780552477271115775394996078941532173393747805333087488757150424080474137009771046775914906654267830205801781815904157623408419830404296945735395739729475633720999483292355150496119130972234921900387691689082751674828285460176230627237934704318053355125311454670805363270842655772765264350335213279599207794102564641384115464359326308249451688455644655828894326382931220239982161934819609769948087029397243373738869969734684386699330542923142564068567363351394705122515004006982132044482835124692209914951404459783103256213959049368236372750696064247135678514407539817655832229435875494602635358005444189473092488171420684940199818387127571579444627250506236680184468887279215285502332247369389040647531438378423760319656532383759302206516585077837155949615476084717007389408650743796598126834272544123636625172566945661287115120564208922727620492117118755592060936160682446865123249675759708503483598331618274020437483826114685028862335970090212110135615872420793752821793782665335709081718164262909090215450349621125362657687546314179089710320433852485648660597114728581940000817068601601165203559273197688817421439908848959053971879388374028592248880774257170183166936617974551880213823585099899073048897032711176904660387586639832674589784399005282953151611565069154836486713297610473809163354029948014372968751497399854135610675270256880278272244584139592730511969802093644606381859834777291064089174422081305181401507335776451809412886089933034560907628245091520849570926569725706174326138390341502280916386691532956872980151286122910412048518343927530547081673686509216347959800617730943585485535659644304860635288781118336848450277544699694171454711483270357822108366791736778989234275253118522867989639434840777526300112686512463621535857835611555374643610370704116536337160316307361521771850035866743834180952247695312100124857402286450887648745344925243906808724374482886101094428512277401774392599168156459366842305940554996512345798678331504090593111947092765454374909294468639716557553639282808706580106714825757198177730482843129927084059305751522205310849014349875224587037289013106153177600718342321019563395426324185198468047873956475167242877958034704267686245297783564895012934587258908776721558505977242868934856625183827764038988431024378996651466020152873042455166750043192532339402779309625998547599900743892272157929045024916167323479334177623347721632205915079075713560313591593063463429395931931407344270044566414181526897646194838447703964426043468686578506596288300829655077050140178146119515105763010548819212333353202895445720472367662302153095605966424863622398433875700721880570044800034945933184086346266462183392610330476690751673808665910179905619037463445652722211835450615005059829692075789140926762468320572075274979985417119195946550433194485366894078224752301308272960888331275760747272705562556468408948752814513525138527456690545817985953299316502467278792573909875741813662686409728435737719914479092274521858370788141158707037995393536734068982049628555289251331234546349829412724692077417710452790280339118965044190323794711597347698370317984525053673060214402871109905161821911818939478394823146844205504554885534735468972595034037250233459650995005039484566141322900483709222154403577240090432296982193252871285678154386498569154845325882544324101987415259196013034995542720993861126273599936076117155095836118166272718220074638945692821550850097345715195124958039181460465465116231168337764301407758945020761175174134440790165247082352022028355462176633998457900824554815401134358535990540259893720150849805714445115275279421888508514652367948319195983074025773961538576108659872812528350836954424289471131988113799723212840692826769414691236695348023343217686043024387224233739268111867050418778113665652033594764317837750160370583349065272349601675707613862808658221428194404008060954432824328801387619957130658597639418582728382343332776840800631731143797228386710002652143344246710676999494569167529212863337283118294448688518436503822775992747566077128172857030764718016838998501674742565007570420726409057130166261939821423811894170233621377101669886357216150729291669443995442759257834316824441273529587367203591645716659353050114082559879241897788416302934428248720542282848225691540287715556506071714009903886623022643433206245089146835677166623730047447886790401845563349239518927534705458177805944223894590455793894270075864408584278229781460840195994553818838598772497842934370176738868505781660048314659270691462287892099042174663476424870132122427009679842473287388268375539387462755245758181641362026558812756054593648739296711523149241721525286485562345864410889130699669259642255277961104193032379631926883083287096276858858335401989455466791476189586073341651520175105926449794143609984848727409562999958815921552950648864360435092408492000784667129349510156083579682198417885066408996659188102897536384134583473201861109804324435526984390892812372063979007653506339159757733389301238133175472648280324781477812897076372959035448321215406636045001201246427046780437879460809987285205981315764862917948422389393648099198470088663575010834048561536841792224991534701897443279536571385948650434669452721733292757755185938234577976910403857790760958118494068267307567260750202861428812054506636644061721737420086295741222044656385493563042154852575767750393232615621275395877270769968283664914483901309934133670177297032487745462085686295389805212320100529431666713799257479239176187670347275205572433455507893133848281319840640291642956004927008029600936581488172414382284905391215698531915406646129354243165421716647363422199576068458662997203653628825604116727510409773915274162932385108638643278987685317626368311385335846026284431104772394494570852897530555373527838899943914262863463927865101609586423596811547934270420133469863565585341441039301210870356049010760555887434444247705167613820612190455459845036217913984202004676833670740923092805426888129781915843522256128720593929463869876938325635245343068543636318104208833593906669529995425384823123923972720696087752275166798985465438873659181808386443359515449350656867013683597534281391598999030684240213206428399291258479678686657395434763778951831551342903827294617897843844810248324812651228178667449872463712640720908077119720866476137920491499630843293087843237012794612862513945944721923618953995233483342402130352412918914360173430103516903478337134989729214833545815983611238373197945160741070640264984251366683218124293791997245922325133354107423129656607776387309621396082635282079149457252822045198373782641146736443551923244042243292095148993036851144971910144947869076571922343004265014823932979747734077561644254834245212112662597910630989259617286131884365843409575047606327336340703235437758774195144061305887270603977814182978548530592603219524841231509406973387971195695086993741816569467449287101608709362126483099905925228875799265698341877998020618256739848585964022422835418855349315827000459659523455103586515453883168221289088661997299626833962455833805535884136775171420503552469039095894065524782319087222751473430517624311237155556446782394077886657184206307806354976044607942210989619438176416163437616910107213048491271739730722336242187997977998933557226464664955855664146441021386094231626945184337630276459484528997400921303721944566266345490735136227244908050102809450644923049542862835860638840539463762324007286610195206683270390688742228820954932761603879270412015089376977474972492294064542910147791741771299266122419550133286506266739693562766397510987856232902700103571305470867254858405164844720093119799995375981337127789167265462196630782752068772139332005969952656302413445220028805700085849604382284844288974336760100407931230194758869700152544150647403602548109430216446877011653612245315771875242907290423744770513761679926888781618715861658807060945886325290574032015425227923570985659555503751903202195695093805913753582450337362410879541463360366258894236918758638855056333700944093746085408218937815037552379375040169687367281440271099190439834386169208961480655325763551653407747789813362645513721248091850220010389645418193832726919451297430562418806525716656893336386157448568308314004055501761036376075830369901883886150963547249001861514565780589304087945933606054090852802900042408335354763992636124257474051397355281828240303236778351444288662169767577929604558206423601886275247394190960547836833016697182983699865437235542862326333927824447484817659440141585035039575835078438325638951928029899340657448031644425625382833797007091465921731328496483221319139208332012447532607274457865701604384872778795594898721898387027470453534501578057327613429988333766372665984951574542591271119855427805058025920953378588535855054707059004307325154224098472092249318650017810990594639271556873219905220047523898862680585228755540824512177262571887804145594183636821425021892405985673635515496293922988826449692962530486458656358658142135617048890007110544841771595033670165570918437093750683081083913381905149343931879066340531338408034417634304403385200151725021816033905880147803569064067895852103978726162787090770266876461661608057500464369648391992237069246488252061237727066233146891448151170590323078042766067574788888947896716796325158670751662588928150545635305362733640046950520601254834235855630010466349317930380962740587077624576283258108112286470072304229284457753385438675858130344543556613595670114017124572152451920626371516165137016439481655688484563486499046159555579181412470938434644578604646794573262102649979289085616204318849375296899450073183643255999302876453212888002082462957679802674590586291583462991494722800777531684083038950293708002702351826960635219777481879083971152112887637544525475699660874777492374490339907690936949552748371924000485789912267059860756735085771646655716487103221458360343380212395627413207190871875033845001785601077924384355318235516879586460330180073310146060336386336641065719380676266925891540132164851659464355686814310139404701500984743914633341667201530379944489991402015917454484785120682912402211065840792891922533337249124072493205638489400591303276692250742371996702436492054118360152256063701777021573731198467224902838068316011557925144160441822527435272928715091615063107382379782687725556621310633384102655014705529705451242859188235980306955024371325057305843318369412382888005971394976472514277439000687113153786460968293002567418086742974498722151711206746057937889834041573776971671920493018522443074225352017419334074173718986939318937576103354851182214755049487828237815619128815615793477694094911151691569060287403762483345201437844032777266974556242044448882610637288516211377351612125939015731603855115181749138878867427770546709372546523612108638733556811453531544316562573880132755876525086536010431506149586275747759820346354536507470371099451837549015677962760574675607209494234226815269095310135526781254627112865502395093864101549011040633973386134863002289958396179448608796741625348180266687430491023554259989733294350639172771900144341190535219958558866651698596786690088821886020951906530557762395372870991512153652142296122904784369850936798106948388098320719413313190935244562203164816112789238693546191849387513528509058960443010638298304432465087127982484259800489050244288275321707375663877233040544287780054915309321617296277745314824242522494985801598574507533111322565625808709526881573297257411451433887637249975443964775030387011816391701878341304308489050017172415418086401244149500147019770488843832609238683177794247483436126195219678360067588451057083445698497248025005074325950270439215440967781582338247040782096517004907652751480819502813749587101784386536392060831516084323949973643277788173400501458365266426103961566352752151353647937412131397153522612342974175904670281546897132989315605520818062583267576571701691632171742573606813930673645704545564146786245295829662265528789897066621841898880540675444612389776274233700301841841640818258148576690352484876117349337618946112831912776296156328627010574572175407875878712159895531578331185127820719836552617415834625041794994714718868951087201830598900446914305399059512344701944802115807266413537561013572742787948817264709834279653354084035401301507981509539977324020868970021757214348381406763221523350828548699341964904927347699466902232086164728260584885872332906753664744394305239285086049351921766203641648993781868218479929723699137439119903959964809418391220862464607794393904181411344413675926046797172117773333744465952985890170636417042709664387381695575793730140847934598821903562474103993173164220552694992600524218469123311986602145729003772665374871235604998046291550463208147081563191361665780711593655044919649490023086478890408143887892637098146360979802183268294740612545999177926190406218360463645339684637778861338957611045874879244494730660402498345419474767538397050333366693272812607876553706541996762359604995085568778143057606084774587720758608384873951259844342636908542357399569459837346799669485221707246393806417726272946852587084601212920086939639473383296661747820012317413647645210136488006929370057977139127771484925595271079492272053626535421035821251389326668716326310324858348242613389419654337730492745482671109668452759309842321686288016397444749276550884398378226449630104729275823670733556294758964523876380956594521626194918606317538900512108750372798061787569660403063040479825894531452446003596405658280192149072303229199890099641391781690900492094194566325191457738047469329111731743691066277227049507386584271950439297953826950024532994238911744103699970555214862163590386062410778462363411116913053722879578827044428876195260390730608379377907568315296991818766992761957225177159147500213157401836771937912637392193167986116771865194404850782598343062140183214252788243237853282352190540269654308995453006113433233939604068423102134892028369196703068336291203773694206324142835454384932967956511663066036721755051315456775087145991189456000488128813882047073531751218647057471682904981778735232019102346624373375269261940199551017606821619809487104976822078063083077916066240272281614379331266088520585575108636556703693074439084777248928179561133934724679532840876145952941533432567460264660079412749786995279349176383843094735003020775444272397391153877646263117915477543786559210807345672935720162744472670002843082348691432052338210657602808536209787973061395681597385723708205356489375611488209196209413585030811679565475488835456371021318495933269684122779681280377034956969063258783341260557523354235904537022029576495250286137218065094334874740606627705733546561762452984570257951467929941432017635272896848808613280074428988816373858038663232659861129731468978690391390753465065532779994765030017199482548269388900074590816800244154039387209841231905089334891345421763055957506692171195276352807564260183583773113619117580427890904179670434528504498091713593126842745507128607846055550712523911810241476376854082272939221816811618134863716509116724677265361571677768602175741543050710456282694137662720945352054162760425600807810983933574449846618734480986394551202238848009835860973881054903718112632885926369308568208565205778855372002710411931391830712256438919705503577075352914544981799048487276907996868398511081824010385754480215319917596436579070442219795176928585140560935445633665740755644696941472070321376753932541787055574964153605813185375645723400090217063174850945513053546719368306214623372878369892745267028023857534504132692247261793034532480086986881528814674492765952343750429449177139412925682400054949386644516918904700652395107124053758492909336329161636402438842092905145860779453339824225612177202873500548911092410501971856095177770256486386626710046938615788452991624386484533756644746075649588132413512315252913700050928706180019112628119355174162894292143905966194225939715209030617028164080383853452311544865394094475236288552162389966303114951619084292652355612569112296141687763690832830100317079517325405239145444052822461248998028689555743484656693590290207446149140934964941728343815002662394871803918008113227802669146198263640774555127039701011179587108865439464152912260730630445221616793778898220678212081399069976895556368075419037336601721501904204036341806494970451044747288852410713282454843692389776309092713447301782323393007360020070208034615459347823474040177496487699775543748335710183993910410622261599364567002512190158076805611065078387537521328143488445263041417725642228153024314764472815230722152789193223991317807161691269694410398997580211942158016082665373288844737076467393567487051310765578486216192805707141876385504392849863987487955076153577610426669438286494311134793418080680760462772074645604964482222531154237089494349019540642469672601329068810986777756903191223256292198818433739661920783072317381954736387038297992406939201951570275971471413864056649326133139441356969904266952248487416619803141488513081789377670436492072608350345550527759663008180281568085289993492971805307928842916208515105414997527583965391309314578121937313061543444256326082633318153920715311468959903527971712700213151138455778517448926244900955423686530464597981237922807056530880329298911212772350981150892593843860845589047850868327191005728343319600731443907246013045906503315916832858557295830415610894040750547962264785454136873823704906792089202662959430784217516594046648277969545434910624033947413229056461227718428860298802481123517334527869367285589302813639918600055476970308717075858706252524609445786470561780549426285602616539098173638761234826769656855050906272664881375512444714562597638905854484624022031403641782218045041994589066670140154447131991108834495412318998688564038089771069998025340153523180159028876163669288761089332207835102325834041625200145367060734453193158824332551215198081713567133860126144932497566099833903419724693977544320069873474622704435676371377983131718844196095219858995183476610106512367461858896383845204317145805173354644660390981244195362135791871494664600463183316331802553093470281841220831865617463519052102715188510861531694627098670630699920089084963476030820598142947192860589836443408987585152105193408033806105676252354623413741004573811739308285517767368111332136865342793327888439811892763282892121580440953010261738997389652161794358942630739712893101253166700157817680657055817188021784486483330862220429083271051767368920096485991076175375977070302342795624369705985004439683872280246091595751650123996442353872473472532518194819171545305106070348304534226350503450956130504613797607294916214544265418276897910723379392515893093417241018527558958713389611319691950593384532808098849123315060415961464649047235307436144731260989008679117694188293105422281922326247113696137339792697239635677901292491810529334108425165835229473963837706895679941508774837015271133142851856743690773877377690363839603439371174636785778345390069402535235280887443913266552300039078837004772671100478776497137843435691318844608582270218930828906493057978340711212435945093496462371110426909393480324896663213800488256258303567070767417897915266425124063928403845431229279453638452022423961133251209622543879753536841833938805794739657678257272917225075365706713020557017755538741734231545455469129807585623793729738919577355540250330089333860152153239746094791775096307856278703125830369365847716160014462010294583951369367777797991069178335898401474680595775714802957327666415176890097823493024700146678421144626820008106249049667768117888074448337446508353436049891197281649677751809583796792754268066502308447079301587421631317258326312464081567212844735634321705414242476722853919882747868982667331063528111000056801021583002567812726381407118013371245569664247433204874813311159502540930144169279565662043581806713069821832421576011204074194303116437984204012485999467436694674792524376304279674135441111998845317561550818624208328311964251266244517054186769535578707427742889382170796387324581122778777812729394766480557131418639529157846277697289059035096030736195229651533056734757838894324169022936882361524813047635308665169117932258388604813022370188638450385341562137949055401643691553298858763380943570457525551396800844917802596785210347276986797165553915808090702020072899780688931662294162826922530640870323908487466598093360089340508712680075219280908175072997989611703510401794425033162999131700799821523654238909831927787236716628513258941488184480460706615281459350046511175954409570077243758807349249250220383982698576877382135216579936922298667104477514054000371908164295980333208245256549359048435347568375534290919083855261129207566822939521783118658780331130564491978326980802833929223405775271220497135771813389367976453980092819049642589698766802414622567051671860309600490068883795626684120040752106402237772866882626311646924775969740278769277939513701068601451673268807658875259669428858725480701216814035692742030279431345593275838250222186339760843491387956795812895002285008968423529298665813777454553255146400692681785779029131383893837216703152835717932520413174941279451860017412816570324633528656059117156135176178056911294692417779504427642867212562102004656712623253835353652276778525609059468278307368880331155495915665270616812550963986303841633932787630242666768576243080248627768707564617130947119212864464899153229181933610083462828362019146913248387585578575925132988453082374095401498520579150887168556375612438387746719579438227480556859037736576363007152877040723508696142812384215711663618744257468424560365161995688966678088348402350178752988308149341575970460716261739689877051449339154780318072389499137374414314439103567024304860946659609214786848260001866056098590708883159154663919323803447656265794505816476985851857979156556322010277689599321195142052450936916558229517294864271741127929936750964536534119997241809565312455175339797165647085332746445512635792146810625800003846061782310506242380096407824667959935065505231263056475013668410071630690257516461738044954044025320111479653569295996097486963519947721322225706750858282393027048587787947857569304343728860228285680425406662964480782110727528713173315021888249382932152877528965054930118647563800964055336318391452046323875834209825846554785296671230967331905597236838886054258978416074437287458313321145269761872793351912221638973489005661730449056348184503109660652296150412909570653389878989780883603605434419758571441721580008583560898710244340733745111806035201449421068403909880335077161138092582948324305027533384125529007225345284165184295710654710380906778947073111265261620554829863841720814564275032684556752515925221067724699705490401069221614960709478408063854312516189616079972166767223652370329056195987240136585373972102283551793668127606307573583728194854527001424786783741954499155306368062827664519826415512689115778728882393406381604990709156677555608939187820662149661094326947298563484318956595024829807581394104051151657666541099703499811199941948393655877676697311270977899767135308245397368801795338078859131590628756372413866730239331972909495109627676240092695330296394850309911099398228926974560683992776125599293050776995544943303479392689527032544575067056077663713092725122876403483678943887536017665932182018563873322579513403168895523283707173547054745175995192214709239411083059615057082976775034490163151590991544331011184728015592671973419084558538234309807414182069991392576621663726147987715822471675938085358704758814770831537284005476316943780940057296016377845751525536795726706788301054337337862356890487871838954570296648309613062171300073877300730300761977996565873279937294136281496475442175587067167585926939578437671190260866162793650496108982678428106632228342628897390876444266708439725313200782420488325743241412587429891713746177313926335469490462173412742984020387702786440987553078484613057302501381261399837996976690919716776480943549040072465921661099432228522263348069117516653165928635577733417399519008989234078700795241921291257181511370443736537375446700388341578206340485948865364831618277415296493724263711364416332293389520920741778258950492482471494417415471731239524828533461260974098487781986046315212523436194484382131280707215553153195230802602922953028459029565213280520151087755913763779259909869175570886952057789952682677667451635603784147142423221207867379109598607533585192375826103405824146981238378530500494544002764352601812800565404449731554432129092407468476172598173315744316545738556011091408335270508307190027573504142259563009466625389056828253233469964465368508298693246061170100703274249970289477050592276979124060137151333726687156173286705934047749713783259911697432943508488188008836893854376173542848228355886396549284977275102870860993554437268263243881628551867060442951880575319050764795844233014242099286779387173957762492553587913928298976053089792867776059998703679709134903556311094541745133910920138656790586518950760024598003287668900103400559954526484231496302544811858046719899107409105490787591954383210662347226732387468565395843036713803780055954226012085742061762499441793181514445500443553871521477556450423265585711511792345814929227661142369691299024519315490033776061162558387119397340059122167524651443171573760120484477485050890478190128559244253053064704307959154802681975221252637220652014956081850045057432255364530429562898260088201196939010830593209198236240553327215530937304481132210133952457159341348001983049557747101613584144899641922647957018741686737914186039234801886677417397156243618653067203926566986629697419529915847107978968272621127891954591687647197858274341296824568218307910299196767962625072322778417825692953659938428133961865305220717296762957618433861681565388702243691743746857808765049136023610195850075264387225065179691589347505087650849984662577313463555204752920893924270411261536944068376932916175803948437342822729213280703692178508168546310929452901172576340433190033407695058282785401844750687504166416151500828842795531302019669273431178147763429421903336746968280900706740132514971087361259548489658687162221774545070916379519877844878671892463853349831758098041794399507669321874490214748717155887414361495507732662495572530603842205141082912375172504111378764652761848159838951002219360736462755485321589524956862200020006252998780031188944174429716768450447328947494669258335012539293554452486783337901582639937018055688010892625138402227819235468932206701154399439057417044042697386691278288632456823427737228031908883389259244482773850296686804375464541822688163060627220088002862122521041866162807886938229635123718040588447891549491038881643863390396278490668519247603108166478015862705038378099370605027514131336959615609491383098122954851873356555906121810757764799205109423211847945488850288508782209585780780001253708474297342341785015616085670514626125308378768811312846720627311983887944799949937997454935886860690420709528052762948894348924429232406070953793574045199648151429320500214962172211290538708038054786685418908565727887734619544663035852536354427345892855007501688233508512339249992728619248041283035446520010473757677000682927330875727223975826241299014924204057376876574645551339280081747037326969894901519386017327853112455026116278743740431702766373138607009512888000906893604623917290395345647663942375140990845331577497635888760552657699815567096363985437636301119386408638962065709361283573442365148647741879823131172946655564580063505042961070183812405736713723446532021221803346094879650550936933884016960418692896106135418622868816641509484876540805401017426654886933183934194367426994086248772095779888883311222369948502061070164744058741058712765462038880559395075329883107530829267245821872762192359130170757031956403135693882802193730278973263901808729494361517146828840684322734105758169676856381389944514057323591168948415183502803839887247259691771382006395801696004314186101685224905682742907325430154952607293278055389203255926808639305112752783637625774327725902740704565180376318345723587532795216959668509897195923501376123838977854062071922642437222000855317164016056511759142786198730351509068004937606517952820968587515128547843162521263186170979797209503003160917836734618338123695737233102727330171279812754095117644508480300149218539052575488234019763752367216187655229528115791718891215945306019888400833995119950170764567777454679475208453850446788783309403247731978599281732799674377283806506050076376279778679173758630560521967984526640646240978402404277679810443327850144979930814643356372688667238401315897863707681191527303650498988991715829953545965396178123100023943286739073910538672670591449338853289096713193788620613582035188398663510652504763939624713526007893931517298655678569897916610882499434562860758271385381496936112629136569018424837548501084358365410289942219011546596679180809498664168632754052750453739558867807779310271173144521780735051679182266527732954752346578384847599869465966162119013748556895918264905288005139667140222038950794655263699952556865145339552724667122959643875507232490375204004395816670353640586685930078723569697670311448972380161018246542417063889446044172718933918866995786904617607586612653781575576116201234268045258429576836225867785206760262823906737853386398637079384728162077661716910011310776572016056825455694857601756412970182368447329146434352426469720377824209951282136148976686660016650427629879343775874062593610244009397255058040658267736273381173124863918445116840762746702379929027413913461482291443389403441881976069241326036749432029899973832518043884337248176451617479559333749248631261083313423524204088612634670220100832681588551779980759020250863631403357274890599035107129279885132289697660767627256088416020883749833353645972284800767308495172081274661892221985861494643109382755566261993204990760940849510774365614046962652862863727270234152490305900552652190328758530579369524807682132473837139955288510721375977287001080845561149921500478440977279067872657867566478478290773523063171911357157243849269814920335988575740296216534825031173845879042249981305081760843375425609947503368138899276893500311410018428413402004492140162372989975294833074458357232597538097696089256997166588890362459201989535709592674023363983518426037504635755287300692554137349765883977513078601165622652502753474260757866454019097443759970723935301047860198831628505807238199776299610059338693516848152337353758981653925786239074604387701801859593391425306223722851090335037939500742515062181745967098515209004532827148155058835002936911609949375269605003164241843389524538197957315898528096977750646141482148613833186640068523974193102613725356631532668047014585811837201167366710028267844879805429367448606483570494083615100640604143591220749245263300866849968342710617036327035521713706729809190136635943968826531170686100541042437718426590285847480923779493108213324679704788927815148501686135478592070210272344196187123974127465664621612656031440597313360719817640476615755706537785843983954891312855557346733381025782365513580747100062883253829167245695599826151092908364988467827604693131427414730068225544770970917051589860318297037811620377577382357468466340082947736235170751430144069469187456778163648964367719559028129990256759148401948463228530729948605316469895663113005239795758072830002194144531487789608164982407738706521092458260102500452872940845273101401461039831134668597655331738324095817103478934517028089645933519954035187769385519245276312733581998642285571485797185835543012123880883318647813258739242856741530875075406494198651679505614146443810790041355663123357960042531631442188839983296825759457325331073153589898991169260800738449339643434431382648783486729414090974950133220286493512626507785714998522299681772850530469351147044795963993667343333920127562403333072615856287940551207399461388346389337097024032111876496911206195841135071111337870249288789732725209200178678928378268093843366984865996614355758518201056355485784141222081514071164701271518768352118571881314264826547395111943302042102175817564764055721217520826481138921527520017514019691480261368782378926147737693023707785872484716142431789356380739300825725823634930594463738917061486300539899182864834279682175223161679886273689073773095867559929752778702945421553173810203545512391741690579502719272171594798847685751632783868373059093044626625934709131464022391876259332844591051536887785646702825118728124057538913497452510824764914640748003601659812321156513861756745028797172545633024137745949490108877758920721047198485290988402949728041405579513339791609813319649094765849704845041333646992225979912593384566477474571672300596770349352879643029072874106253846420374289105158476062995919071265569799884135672295898143675740012004138646119193302699563516279110247902797801827734693782334933352052648334309869085237587089383573330587448500430708419708369977938484670418513253521343379851194149363937078657482940720992935326249102277062961662505920015137647026855411138313714183497073234495728365519292186781374432832965314854318272254986101379038592390018635854774782568771869710543056254412840243792100103513826887421619339327311843272137368181377849173793811841218230007497608674006848107033411758137844493539385282583039998883756561340802732851408281577003742416225651059860080774626363414980572210102163206493637506290878924983333151512984005721649496780812286205221183721578960534028559822556627967400248911492290904209762567265445205316067144206885303685221992874959715947199809954909603154659677123844914781838048753897998194400023173643032427874060347400758758459736705686886403504740800720255329435831568829699510224310446112196943289985856542512190874267220702609228730272155759525127906179590357142374190296716429282630811345254357522175572084386569811051540279223048271617774407301610698373486911717130583648758599439859551135382316845772699268852161320416008646045958256629605994028367242440828923118097613399478794264938359323728833781633267817896214531644990383027956093120147175878424758059204135944191022245088223048627969826382732860703063140662363880425083643090766233043956987052815127510473101294293397429901381203713705700652597614113792019518516527463330854676140786142541753060172487974257475347515223573469242542160334332432920216296782366933313836915635441119162777803974340840189895941682129753211087102475236547576721722386173646355096395867144707113948344561752751083153726830438657573612385232095451592671391466048448037985688098456491959739615413463838321449634356579046655570504752321143152729137513659595810494474291555643776877378319594366709070569874529827015643591325557006166318566274175939153159503633405848318796504965083097580588161923429109489063281810494013244485916866979989510712507272250877234171006480484259995621648563866706864884802609241047622616879829236629984116367614040223483350853683827800737878217558602318067001713063477766162346386295233274015272196211437163249599585357158570138147757641491191426854574937245821345243621726277278019181127575067645181477918906115285272493429036475715964891505829268607048408346804395909868713084025158329267481900113967779746531038739637370563882211727042098481543662509987127775674720727110870451914788666382482635085135171380637373999414441554478260524279479211539364297884519869435096741378329332618160064324468188516860336233684480406142777260173919270254256388901343480294155260060677688684216608653306898508871068688914196544703926860337230879221883138801693329355345577061662184167357104744813640611066888840880403472975528515675843824030026101806422038605178624273727605234397355623231199460774509842639599836543185598041637484610170450440787571396715621620054330404305040636708030208146310709547822118589592245245108815389031550248421141830505498505460274256472033648462069367074559800950769521062356944205072852060474450238898107162878371141325216345802066230885488613367354112556855201213418190366067930887046829511286754458263615368635290784258929262871459536336582568781298109125722342210860259141697444349935895386607422163254455325274820641596138459943567143889897870585443302977992002705437888339051167208385386824936142048090070075341075636681429728398305348269059901837055487070039679287085504936448624563745153481860194288829598857062513257596518068051066291665851984192760754119246098657572520714104726863724225937643585404470243309381502414022884638444735527238874796984244783978833330225750512151822886199487588525764177141492222525407471913519071845487125494205688933491561424161166333650414961295521907762477039386396293772312020625398855309361762988531884668729592812349626962056168351036409835291775665634675419088278832102933585942824818900697362425868744313118940201957956693803558138767367803568106732670814472927623500740210677075019071408470615835847926486431990416449442229334470338969425836619828642353423685177684682874592682904842766497128101401266483809569861697836656828420845119084188120236953817606233431309948272375597817033306484602966586516110921462867860397785436724912757352216462020800475073461495324251679787918794896774002377069652500999849741204250364570361449740780848122956179836168091005929165627567712206708796771720104796518594748552931643495740536056596152951977589687329650145466893666412985533381549678335960623257614908758185848201383697181700607851887982393347952347025696934108667792761219097343638963816593561102195195274832833555883433293368727351001366393710677628598849248384762657093450675544722510726750681884061502880018884593094731010126195046516648081303092634788921036315445945626864439110596593463516536153279189736320767396955391893058728289361482467373700158087233143559777832222746627375344294827609933678396034032551948204469242244074150064444455649337447926944875744210169338736159046180401671865086468557112981706929044993018971997247664220875921813061858772308961439710109375435718811390616203567027131171005065007386769663371145614311600598626001506404861262757143534715847707653135376611029060369160945822752758365655352752884064375107117232611427626586390479721520855852027645667079662002929724038347745184686767307201269706707668294308409689005271012718473710612662840828909283292376468840715505121180911816821368572201031916387288288713489778217498810919096105122251912973566559334921306971220675969584201730829540011810925846785568390083556825461731365790854978177108186185509833597351433483471518823487660545008794583810470352787182179561913043886908601681820493079194729431770421447923463850063646885600379016558086911337382044632026496140240742496288874198423315973338834172100101697252385203298527544391637018696419908004666973934275336144841573767783030571171000781147924065138354348814646694169533898777524782761512762359349592895503453230979522367961961304556331690480701139865513600939598251304205213846986912407868373579280056944969843397783329302651283238520799304135637743493408891159692737272041757349208380014332964458093020378683442992399844716509712259191741889196616738141944666433426928285930671067161562657280222084132713872060381256409942230080532388166792888530796211365611566213945881097142758269812076102377464017364776337865651279769343353792064182016598078554333214894224625242029900010482557482975891843288356538444516715178583486933527726357411029451972601874225816090848063252952262887543104490097753050560375129169029817421027949704686329070016129600577973099539631007426744161579254849312232620291780660787152431644321553783373999800173687510419433754561423541137387697088278630457281873061031392868930136392121861849869412069922597295170718709409415713234102914771795742387688479467590536785859000396775533611609663822775725684539961581551170832572118170067787148590473542553061972362082167201938231160326751129997888390954402817875473610558553400433633456664226079889877634617209185581350211112465979252596300783370914070865875014596486202009945095359070285143919975495409253063245436858923415544078550915670201328698788531190287967356327381084725535889765258555106381095824487029988014569076680189549581245652869428665096067960230525340563744362981577425675834932768435850977236666090329610907357635300756494816524902882935182286355299215398019682810931687268756403901428656935819704601175691768974859988386803988451991806415337083496430803825847747353839932103991213150147224368735210938576968026457374602650402595187194683767580467524609699751934379519602945132810479329599601803584874093405913540011959605037684581717886414385823083890369655160037658541828742775741799143358495518255758365298611117909465703105374684126433361340831288466840359659324889923927730941059508324154893912750684219098074420717630927762447554259655471151100006293383325391058465490029504596567905028169062449300725208215304479418740659176107901986446822999756083909427531151028475155865377085721294217152526465986115723589669133000023058606292707334109774309525794470247649437430963518313539898200060641938653576923875674188214446926056226433219372338906562912527743900899003286968314182957246022478824371204534736706284204988500180975046357265198311674600748592295757522813869135414601936682865087465541549611748644977086639250407406894087576416089076321161178460948822603347253576241807689578331815711954171610098180720830850291292751152898129302511241497449719126540670012353151405722472073828597224742325449086631886906298036339338785141411085121121036573852301989654238103033373438793961438068550992837564932787796937814483685797902148455706274699109464594586064893197691256462059484903611284730612247810356439354879259290256199703853156867241347462937781754312236613887314188429190237702776048230488509078878866351777555756496543163010636933064104703327900544080122439141125232806695610690151733459228797223848818091070414241475574933346474946093858205427126515028340703234505923719278678596710452051506163813982173146915306819264549771603689534119837052758943643309931755979248886250132144365351092746552870033404741218020036457906639883440848098831386092188360041328654434103460979372745406103656308342184061113787856682156155317132007280799933915033709094317167231109386189622186111168343892534649556657960343118585228899955797464948593700264529156842572486155685473645793518651091320573770066102137881604809228390292797063680338948512534829087446584196202028751411456885502050296381182285843838480931681194760998904009186953523477209311340238312708435728069839882440654788803415856910136623285917135412026062367297419408383750605827613564023045742757394713362083370718821036141806416448164650988422875602058043811244189557840009281434288174725978735778510453992718010961130778033176821580487672867944878062499502773563308466362738676397336914475021099180162047131752594315322812012673734785489746346514667379197435583321088089134502120422332043269968312518808274367404815483924038779867727501072622653835883930577029688200409558840892587757956384457257464677160564297940108207544595399938170328522831781465071374578898004462629422631624107948586433725165015754617215576733149833903026508485573918010461629211634700653866184501496697188663337324938274480218141575439266591560458399784037427169182770069937503277306389993808068798029614958914139105763060034296379925663795705202278939968271541825444834442866915451525337927117147961440435807918919013789301416579691145909188126244455854049803486641056599545700165358450284822999298705292940034996695134818192654886237191403530888656767230239715089156228805339054735616296164422458588447693722048865076119712335324630165655381448840228179781204234672692803802583047273424517623090046321841280983876215723052458366068474268237867894332160117265644601407312620532751835123898820422847709224002201912113822570478290710466390540546915234301801374120822622110668650815265286429888185887601159949052782074596315252063573744530002801414456212846994536238705104857697288285363943956426108115303118896498322825718392424892231084808449704992446769407364760621974640179159436157001215941485258009279957966894978894346969053540057199650440856642536756596104747944500009089461091140916745862967511305932527858935287502685164207459632350715922387554517123590993375222676556330882555333796093532599602819651395621040120942262714891289270243287495006963086271086354743750223389327564645904709281333587495983101310926084879750235939552793128175191946295395041311685012783760271310524305564213444840990363013244589862177108692805559170811132577733601746827050471040236037891742412964403000120683035579959472669749364287591424324097635133589651844423812693233136731505957927931143963939336167786829508462282542950013113828776512614997810008814871324583959498968054009331728312234139167976286312846022811360000401478600909525242635217637501403844545623565010993609187611465445313462899129597402486916228982987066227945405461820077101679606174401933818049671350992745923130290742022844406668923511642329968926539056109980616180637734576199151626153142201354610447644454794559285633407636666091410605690446585803509311711485661233060061835081736893503221124407067313188950253642919054915673970107009262470865256220739252973769557352663249203078982090957508830977296956306619714109067143732822322067895956295379816913097863387940600903096692538761622307577173918205592593597198015730081940422739137069587102960716560784908285221956085984805432722258796252996453112910345332521749820738633813695262746779242367754370460441913631943654131124191395652145850283440600615208591444107331194190542351239500525403789666409273385378859063624801804954342994904907445073569908991742456906227813978367679159277193692920140751916490543255867008343575282159643622395484531833733954679259815494644327668561628078912329519715010733837585604123949484178233874913133903585891166438548608561299608264262799216948559653190961847498367085147585720535552362180090740141063694446594375731334683819238461076528031476941467287301355656057346651480947717699939228110543870897193899225075385361647991281694940649792445750078370403149397862003614379215549483053279759676834378503601355024054138136464938667407634729428438643353295866560875464372963695661827727206080970123299135854475495824636271119886307000925710946958402159202277442949215589201093204718212744126723004289958432245123367601770539073311018386760884160101325573584862877452794932210107453035338930484032816747216462540609510634535596786867723299079987551321142791047700503735386164120579336842140463501663288466207056032037008438508534317366778440655890496026142077267178183239091326549078392215230283781037668358501538427201353618640974626136552580924512739126093333165524488738744582204704326816260356648555141070203125350180889569023439275531714447269151696069340504401125594936461147030292012543856713756479385087990261712874392490949546347676365066296526516893344796394997690140704414526691463683157684208504037516478993247472935866744108397383506285663296835472465916999612759950614558319029050534621939953406894256939295701092351597547500612952392313480640212464880795773826904023798258358426605390745882113191833157350030170170198116328927404443376401016125348242123328604898878631865364307005587421492086144185781357709273976547120397305358766697188256933089839080897890162353336345836336908811248938050976180453678889180285247782220109941397929937711016542430383580875394603188655670670654036125799447127271810026308643042736200100604603019859118903872860615240541409218003228913720973059852699615178788969493421003707916627265911626266820325755936943321066531469249370717386407971750985639685798470771483326836099800005507035098805012084937049324956594023707374395008349636499574722467624883468264964897966662957433295147613304371839393379805344527091337474462675918316107646754062724414007545368209939103921809495564711468356346989358706957950466202371456167728571931696965269885059324220061995980236727683496856228563694784220887981862617625902275882704669072725798174357290645296909682884274471404410626172790085831752204547262925561214608290170585556335886048974105149689011232169398222794503460658079128462022691621127568200873889620492269268732418108449716067256909785931685271265181296042357245714101646161872259956860622753673484368523194384204620479044596208612963014794197458732277855059758609902900817756470716976259275755798149254338460385852199267376041913968341121701029988722142731470519182549813326082464560169514331846835787151421756343529546491932596963658620054522294478055291770840048313428768174815899770507219668922698285097880393012776966618657831157827861197051704957160731672325362600845039556892925522902557774687948462032737249100075864288406991236584498264266586932121372098728741603192124691999641472488629763869135707799350476975293262081231079430748948941662382266479438956814508238679909807993546030872359980855056086725251319654724699272490846834252321860773298727415451037190032195318956772279427414561776280060042685046295742055078082717622828624291601384253102064560624743168622984403963937791936797185332762119189490937078604322842876115212364527688614736399032868396920903019340625628170265234415476196332813572386011859017380270214209946043483888696384274135806779230749553503844624153212145376748314759243019885696543927043712392736311953486485892882954979788260138793008364145541486199357800646390878907251038219335836503048194530671221159579225736752987508525885675108953763629798010605450759470203701858312456861258633180213610911157195808666801346834087471796095170532651053443258714285124645686698987783075899779958326218846683845563124678229031648588006932276333551836734857963483158392457580870610908258257273352172936292675386444777703856810543933574135799645755805438526641290770302457839641915355980556440039984626113753265997508561239302402732361288067401215395036070733937609138373387018451464923546176662983739243195216506843456432628322395833220141837624511788698117285482388836557868994143083636140933008279614318001866833505521622292097684350888283750652364896225204758673301837741537618293197793706026306466165157684553615292728028835781135504660194551468352118539717154019460477861739244350561115929250726154386720865004170520451682973734476790573656383944623076189132640192072726003798109869721737977788002832730150999085601815616961397739679466664572607450209408386866018494086768577564435387419564591436756971719323336343051005111017133090569466951599804438871280783206687971798226715778103972311326063870937572148934152923765685646791273987554552478614357613894853887145851914812859747154760406446952604215816026369592161222534854555539981840033405855722848695070657620269778378463037336822618783565168947270405256780659347997451910904892184261492510738070751044599750928832609495537176146880310086423362720055433624957205344116719883830085336083012009621337435449032294990469946855969251405536104608198181301245654584068859954219118847119241663220959143769458560892276510229173692924174975098563860220322889510354959635802857306866046760411222954958302802026656982537159572104855138050503174178521189664092900894529895334680782875389011870291597501920337870100015025440050936413586774680821966718079035252681762587608925261439906348155391296359843617447051805315786448370461250455045397069314740474234981352038993747443818087137265713585459938848253726300629320847835838927361089390769057178678889826558182980062642330353118980827352970849370478566056009604289654204802216662999462103416937742776970882456283935648744673361355253280809956036418524454725880736243042343155328203232800226826043092738339810297747749613359459975548101678859848109173917646693892562896297056217878287872754784823910332349174017626794535994887362072595962169250096380160816109002577866670352907720683842750055618148768701194757898237630916654745722925377044582316600190912337872484947267491215044807645557509213091030518629886230290446557828201838293777513982305820190002963629524661981080893591983399543038437989102861211887105492465342391288713633492844705085122885616919431588181072628051458951184686859404363522512408119051319990545352997892392709699976527033953927460264245013320444808962110845658616195183954974559907525177505313880005360193495126973644532365643929023894400633814298288200337272650302035669108485581641257580802100018144195568239381377331533860848905216212277513395458286998355855088265229036558525998574195214511239752759133537183912208135614085808894020227620978382060595203652675084639798170362309107509995195351944918823687256874869909798173821184331530687163894168174453028972812559858889581553511010514374555878995532207577237664025098568438884721533994481888903355360184057597973246068593512628217226774694404372022500498237757265409033102131121186430127254666139787324067232981953744403670496059717539613633772330869160645647306053938437836326287912510484846308105895276196692751653177101114399040807002588442529040411545241607957691037910166703195425981213840060160648094338544829279902261915797568310458415748230066857110445051212818233000801182545717742453994996247477434580473326643975526987580768734574914913921346108981030429760766217099995855401385560511953501391032469539112945272591452174770306322296402703861916390359343861122830494657819326469008976804664884387055161047260727759201054722723117005834949849890226732786405561642562562341091209481347174062962945273919476608355614710930128367650965001471494600225292305778756821866234566853880357730624708636123160373463999334458139269236303155004274377816778512337441173672594105782032730608248757135319159486867242853034076580512326016519328078709086272744024370345676148134750555669810594491979455007064492454353665368092663273722767426423117198834128065569078615326701768520598201756625276597636066266862701338868967532744738521143465033689200068005398329889301297241012502742342071602622127964699608828699422892578284787977784507064011921919825226960444760264680194373240730063313862227097996938963103004382938246975498178954158320469316895308518516445160675218773184829202501708451581720308739688979163175534659864426882774634936900990328174439825631907901044154770059733804592582022143255164492703081832525252917143232137208641065216619554977631102404190294799813909551858416766075779803157161115103918352970057782948652764787552158582619704873133802994396766384217956499143421937420135099129034139344408616195495785911830213809114388679912580342637883284344387666084496597880390806106143190325565723688756224016269237252641431060941756922097319750848312225562162844192580880049060679983424982352982898764795955040067726253614808863682488398223753469554119891499302106634100395014576574205559365248700341502088620464746321010250548484479121537899319160423977251180585765571139561429162960658604021789355917425661596982963385253888980366752316202146049834891446566668962508607655577683601548184422746297213223526081775402275283430792569916154929659080587891706710076723454552609517047538592796461534542284294774051950330329534475244250879286971156470942673951020022149790669721603205838365213224934943867776745393299219840563971317361423411047247053185248395824082498280575469378265892127062561751705362792252434910418419588454877652188966322414732222152292192132390640682146672023490532226167458842271545791578771337114651791354559827656630633742508809253902105422708032174102849062478184700360277702488557255846438722857974303252527220517014765582339422690648084736365813717231692906564152805856787699854823905579799993286414162374406558221281324942418603824294174007151266961455802241892305106903946260545223355880120914676022332582424241114498361388399789936430852935362212130757759466944534367463727235057354249318590277464023111824615436717158409037899587654357552742327247000783797974247710735124088873427553469622700629506743692829333553860068095760919282944149204937704017592345366268533211524334488081432333401699684359326027320688742502192683465645248849229854528581893850280587699068780716023155721581327043317759172854219315623706995872906724648726359605397688555840282385483763877546306564482056604817534851728474354192123823665399670775915547235643991985761716204909783301200980115016171277875678328875933262891644236078480345946351791409070353583421208292123956552262533413087875903503488345349897739666183216173189235217532819023569046005293046583425123170330469677522044739047564418146061496146007953826393428556140574084706254484087510577936742043490625865621314812607642423027588735238153017573459738301499017567253673092432749401285910788938934017920013876685198125449163252148462527078714438843653710774056281061611683493423534560341340169623557890056818602897412805641668343297251165111155540874976389638699974700711108349700285221474160209257753586068215744556054796832082140938041341706179144067584392299761126544915680565582854177937580424116631181604497709763069460867360977510167172637083598922854280510398403726221668264999811902133846877685594926900667889456794034420203876296861840735579460016255194833165043378904573223692097825698580812126942486312448612846093170718269199045394886945689136172985940941177886498103405611624892377547261534964446930303645963306089905015142803357742805729987063556406762110726110195291096809086551243559918389160142590119838469782287468922349908696282475446019357435193378682186896745998675601965983632482788939761025031046077546441087052402180954484969578788652651245951350798407211008772626404077956179528544115857345437428467303673603623546967267022500270444930985331706888842508774688576910270627769883098302626326706604909089496369876710681652919767148595608475106166444873377729544802182426984671929702368490968888386533193943542481102755391292487359592990067221904343436462584717810320674725075823469405831900404589255381328941092568140887075150425547578680178453611966809220680955567254960007280920874166689380415581622519680468046654569198022012184045647592156567350093602648822918799815692324704499396676197010879743154950099296145358706813528405367367342017733904105986762329218380549895606508108724806404685741654061210657743352185917761372287634534331736981469312280658971396129033411681741877927489568295476928809891366650181132001754099703203108336426087608653215869524148657146844946794742443118847961434947680710757264012881147325939101003070139951099980043863712869444811296149523169034488958487530585252506018380455131979311051311469764504543760700212639670561807365342168011255393179145569426868224085974366251959155548650280520278570310994645382671751860470225321130227829658516616367376605570597296107005851568030871999817689585685991046554679676441018571594905843286956669465054375229205024723143585431076712600783129441948705962726080475439299138048714037174536163548433158550875572967399868922215888023189212807099716205377864252390432792114298070317312115444789699011336222728016191973709303058229691535193306170227222590203498236588568933443195066404865989969024407579122349772192173768718765496721107635406565793496849891833106132286469825219793401931169393095634894255086067717663562262197130453859070181529828168314800667374732206120802065254694395990932094174161949652447913346507559183481864789864587144937989522183035968320304048373251987365155175499384905451697761438135684665963025717243361667280799632211396266870885722786309428689490777092797194984318370359011470212810668498421440946982784785832611081458848205884148006694620535517366385797142086896494990989958298580722231835153618249106290263235064408165337428838299933356792092520645168219279989519835449793537104203103833149651520591877777613056626283012637502108197483366017991400687340620697762362699048057494769894772353210652278175719349309865524673938125167089061565978127719503571742334245359323736511159686798433823659330749907934361755140786822041638217449794757391224945103863455928359874480965456204076093938168112488357641170341199314992278623386400585124350207025957259170949793268192586061896689305561047004822883672109261224401295162124242732972608784397541753995754319824585676911367686788289527592023894794610690308586716690471068055667834751269624651825670142114101902165472476938689952767064436535657723284088309739354993078858297225484237083629707638612766453253932029220752571775354004562354899143889043607909364175587724689254706438204603496498448200798386892921275950768218649120069587262150548785218507650570572198506888584772421902668814285419767555177028287959843897224174153519829621980798907168688829356189916049212367318363232281626495336953403374740265786353889393231667870710399324418970408004395689527037625573645774477567636589032546447008488697031634983330345653398520915263283177002985197596300375298770524538672798774953142952324913878719528764432539849764791012908723215122134926071805536762304654471383426241908976625947017215390720676058593843514686212815580268862101776716605190893200723613220591076798885078582260371676714614220407002799144096143290277785721830441079963835832364322268806720337237042295808132297368900752624399256174844357806678441925059812162719706608090417921862836048795042481603789135978532377839256053994892058578039964981495629919155500659395716574967355120810436530836822339269202580350668981927675134857426024697272636654250995694511376341265686641617053903669612824611310411366402852007177000385198564365313446522463931619736652637414832654196717929730759873994962663863325614499755214121058452875572354030907840074800393556830005949632683282436699756134748925917244516189082571286548580205996182146680576379494124572709716682349997879886460788530539954208238905004000529113460923558495900932547589842179601047219293621595509246350493679168852218611344195678640486761649820505199569562455768110978010876506977036395506540313542208182794586390640799491506734884200015796700909909870447321626288638090912557023826287711348635051995587803137970878072225375989741178184208948064771557853545482663902354124157146608412347354636364072364772205344509617840254875501747217762088000339347710435232842326239766762080030693407246438909139802951468728021139558806488891596390738330465469995769431581624707897555487339575369624114754396875668651260375735999165325459795430248767513055063535406861474942867453203988099902274771337324114897189671728881541102593582788891567055228104844166585006928586305551483114914783553366980516328381759511048135222972941781979567255315600718200354363865147120866584011459696465738596039597663526127581202341707292797542214894491438475662507535575040008281071815686999376026598900041512614710530164478518343364226725307225494243148283966031749306023855420098935706938570325982685569932401245799847056083897216627140586777353259091284807677739156868427398517499935257418668710010661040565963556096406781263408394595415050155554930876629373451905643303011164102683698365143252615129062479760549656805118113966167574856506664010442292500918304479567035903844806747817355515064098549731200243237619076657720993074769186622973281307587435295074660885795849634981520008013704109227144085943547731061409618392760391458867066820816773649087809870350196580206983621421132752238333427104475511664644281827467296352301717640484061450349892224041218198720914042435955704073434522076866298081197577530025824938535964878341213244563110012363032742615551568612729515663400427201294395991469723583245863320320601048468831089351869037509202716213324632251698709965120988169024010877104375122766739731819642493097513252411844242025692901766612084863113065477947239921663684095315435299146470338772102098275754545226404182809367869001999498306715528363430665431936465247150127544356811527882666779576451420675398040899735600600399159762562336085351825013807969812445481951975845529663537729566727454166734058225944748280987114355399043926328841550056302377077972767405242959555283950280074300527705127512552888195066109648890611910481041540565251977076701816293861119264557687075784866387706503369994587078508815517168550464599368433818583360257034013613578820004921842687258383662083037284318382769770673426864575743536831886368435579524959393410690500334058168382284808429610993204178084850844592394144172103911815044020640830526887944947252315607577399323413244687623884480949158651306345454968824490928358941762071936836282832844815292388041932446652969937044478249576256437881778991571880247895255234151465579243328020039182583341042660071843939945895719052613232784523688034830163430062695667405252348510757631890459424480961788586514364503364668237072058406776241189516018303651102481695306482141168033564519774684891597406068067046828310525362918592159024752473155114740428513293485987694750401637452381135202884518356694999701528203073126879295695691258061946534553353698009930826360811239692075973922444502184598822398632100419232706020048938111449511846477341695984685203373930509624953564187764303505355085395882109911088202704921662123373388719388555783754815849678205065288434588722226435498326043748845044723983423725181897162099230748826302425866299409555528217134988168312366677645854706204373949111737425667663787647604855477375332283159913850875288015966502407750929476662133936346948481041929133144895432834425110761123599396448738033270674365877476528445443787781582711474746585058537997444780293173247629239151568927908688438936111157995483636962942501777924135998189926177893860961421873423343169147035458127898311593074882589086466519225397577119466490404919888349559204986031438357342705695252081117829861948609792987158054658295830928566277303772196573686073545521041136690554231432757279970637954450618350857970843028413335518892557861940249892320138973339506538657409671658211326984510488909951886916744608944068907289028802903328815309983607362568766147163542071046469794950406516577320428657574482974658644715600729990181875840917920667503394063928540171028473544215412578217858313081379609314169398408052078843573839145330928477959902504628370261643393169652227479767597188596609686489888521733235971925782725466088073326359424530971189656151946121435618128863656977542907982134852127781515904553687274643612372055214754443440327956341774592901926438392228773408523309206363416770128487596845093309284134046198747479739514323496465781708467730298285851253280881550501089046282853666271511822080446943700568947691315479557641580044136773644361934212797459405455957772210183901604869058937661721039007967431238258901707969828806507834956507883855614043569395098054650585626274862216312663841501993747141636063991744208652987923934296689832691582909861135132199258973609358075502929610377122726172348704003877254657893674518292565136474000656805974057396696926274169949524414074592049466983605793839552439856990472568017529365451123514703182613413649653149614568957994569283038348945256636317115982110600200365409205155827575041512465225399276790943056360692869943717236507047468231279878710298574233767618577718480942444768405184659831477570541666393664799290876439788692719552796477705092860160174762075784985944876836382558695637534168350152718621213131970397082893761341924437654131009731048133438440635421458208801102049357573075860937499507296113089539984531139940666868698919987607698581453388416100833300387925430216127772621572671407634585903831285492768869138128787299244166737559687171800168299262075595719516695972635469846236866601035853582605320724179438311419940452808594870948663260368681720772162676396887239612299899929256580783577590510393025502352830404476603547201532302872183776016997813698397103728755238253740731659715609606525108455500933299301650366476933378695658564678705600593163296059716494529721249220602923793424714894043927977470888625331313743556208930662565597283354912745227947357496080114305236596144002372313478123674458654660005946776748814395391566556945576087595972363797464262669000970026069339126358189774389239708114144602619006707241282773927219412335560627275073662896643937894168245912319634270269625957093160269456108475604935867448917614330312812306892503030145522617215362912607662478428813185692683273897908377744869982590731347122349933501970671916863529149857904596945608354491795962880223625360499905401546219858697158209262501843531816851245784263803061674747822863074311049824777945148858525584155700477855747617463460444198506360272745362610036289939595905589821116073303802328141961131269572279544361195486586929957075529917014884318964698433526874452894039322193428154956204475984841926307845823440906954869127297042697564156912217768466694268288643649824109986530986899007290684380944073892644403274804552813887801404739795463676567440300089167842992394042108073634727934135201031495798642184506420129533993833738400095302004908901078554735923786441506598220475410295901986517520095200877287774000476516900653311859158341684567454876680486849912578169902826786545316182969420567394966267384337590153411633022166533529919531485177961010526996098150752972447530175206011572208365967260730523740487383900565913629843839854879139451906984054865221775305086013744106247868278343488855427023435296300512720160639022365997217042259285456274385569422208566253845425749494506311581459371146686744927044845178444233142092146058773668764502759017056720144861203167227631596879126187851093790759425178467890066727452218631858092291799519499190940763017035217999746756585619984839225215115484677275129239256428235239504191297443939615426421926824484700130610703539961145155335431436414803430368150722981770580933586550295337335459220139489190286044703577908687457905600162464577307749911040784877289574247161951955527971083341413096050252685886814500430370942278147043006868643645090620267311939381691148450770087319489559340391324516509637576093765403225025728903506344315083348943961039746550627828105892487319504107993034962942634118550599042575369713587640024987646884971208583405759986709188853512313686625308374581161529610650361814726461949439169987010259472058071174831786897476392159712933222137011868221707361628225906502603422310862744893043597968903005729204356740418056632619468342571884229842035012823551755126292226446203714123056572531805751509309497561354117013678648911916561450550509503912550185784758024955332650025994988126902763924181386385901382765537589970495264699051723335081004759361255403993691831629067486122731708442687762019649504199908950113862458753483566140608830393395115363959420469704776158346374706487887697524829856872328648143013012716063251312822671588567588881684613428953335332651634070438546234128124882937605688117178053924111034363200263007240760174685631110348231510260647106992042215574229349123737354277859776995570164884357383715480794064694876988335809748833300559260214533052670956971626486190580232770894379798774063070670462108428825702690801771508141245993142734879288852774311362007753213866102703836230991288774768280283623960175539585990080184816140468442115969588637791516104808516847060958781554835197119031677801915346194440667483191688573976408228391188447406514641337733133208190396134027780216342687791954804174471288827712807054381453024755920075572120032508220579029829939243863914962768763253192596021956095857028681726144009856595589317795633042736180064465365820010929137583154190503872978754281359141951141135179322734866894631693964748580178299406148326968065483015244313117889907973989052427640105049120249561744373954746504194451292590140263664500299626210604169772729239408365688128026195048665761000343641997025977278283029975509867798338545819712164520124099818386020016283684691867138821453775266690388619239800060488332547675755417740231842660150909871247822646941778917240534060557286107186435335707735425960953978932926342466927097738335865093346385779224430274883794363680095635564703422320811971596569374714250742225556449257051580083815304208093740295665218040652584830785628665419442183499302658398519262008377895428497060210948723168593694856654483535214351161622621158549528476357582819943671242665223098472600073274796403215588127000451673285687151289563579357569463648435626837976760848340592905503827435907407452299415408792944923003211808353579516464052018360952923893894928219571182359258849114004404197454489223231745317416489321504583801031250390636335951819108033033556564777054600953673292026284454506048044146504165498086887441369629457266267972282285493535861517579294826898694796904453124752310379113131744933474860536815905397705074342944408517112186964233562920877032267474538335271569757227511687251565867024117202603060088292205040570338466558539108805950207040956458369193899760639917741256967697130238048649584571144501076500490481369641869228344754484885924465597426829904616508625726658516312739720280392998498843758185464043398375884531795059528992475149585860857924882886705488993715108934234871718367045354603732311274121016337776574247800948215910799229136646199692314891781828241100231958865232399044173830808603780527350281335938551107202912788078367601349647788211434841794453379996159114936848479363716352422963096115085860760970246031866385094353180338043118196324706332529768844216930661955599091556165572215716105655481269708132884122543501210303449874736412433079075600744072422136908422920872281026113532020729742081795149870786675334103297646692311456411785194172110321645511686973203902476306738781641753287666007241495426634229580786497475526557100668793952926628393841652151234116476521142960587024508022909644338064590353827127182594565849259112886007784634022236392928000157727731802693464824993509414767178315670397160702416991170921329980603359547455921578660767333974914912217619285555769554084306696570377001600362506531791562093495357119762268440684251272359520317984753288414575632960840210793162878648855691091363186464558207588942647022628162794144034891714247396235562654577151576642165081239786014130358694320938939291738816568838068636537688820904051611858101888697174955828166336106787321896181428091391472912963655713776348901313573825562624287584585411537152640097952457403325803826083944458950026426512938100749188369394288289972323338613018036738748302554736837849031111220986553635045867590895937933224182249905788022231379913974731000391734258840611008547237380225068340110751838987330158664252350454317757883486782449310545463959819124351055847001161567603800320490168570747225552138334854755576341433497514763720123887717343471498195514618076120247831862198783981561713308455318855261453442974216695837848511623413543911723866996734241731851987760511924930476963513078180967647634742588494818999886591280210660379208071862982270813805229157758941551244215005771213907495774099069917146320683162745411439906492689432571828664263475016064627058258792856466992711717179327882444840303755664821869600782814825390089387420039545058238892399336869476486220137107017837072315538112676670132646911995242096613216936523125981236200211167162858753866316467368068552123364018352858632671678328096797020588779278975861775042320929757834744604137296443570463093895012078664938658446385634101209708155044152438417591080345770387700392482450486140373515495523150860217997835787327301055585598263861356286981226144728530587839837737744053550458329284766968670748460416487480248626662440561711691738722273104422335696359075668527244301269702719783119420278703611503758073392638363480133194409314324711629007664626987697387654790104440227748317341758477148074419470591802529702665029132786984362207563385126742863003038665656873537480248673639677033391421170662291783951788715420436101687560531961686878266588793307693335144604403390076704139902613296598215140312597121849679274819993411360269940149707538462113723306620137138374664364481444029196793476293139365212178630575129170568152431823541289040323191209560257032234285547999236247441568738828646371156214269939830625384130374916087025006123474314388992499438192171908827425447948338189201514375239763380022326083907034040029442989785083078413663340261115501032076571735087633982550647234043246425767487254759509488877596966263428429733105143145275351476231818937077443498467312148444428401006886367795154816551610257317992522140051265394716216943767317719952274785460336580496217834128194695922704441800515224985658899854801122482135161001056577364786010400707214831490150871538832941359037999624047133877299417297992645287909107346001599712070629159464718866864870040833908879606180346725555648760540413844648468178989683070085435207044060554153320635668671233229012266545228373443528270770333496208103847684868467797803894414496862196250463397651979606481142934192142985682247236104935812008403230569145899667214316813028892260495438754534263828440115084531841379034786933958383785749817013646141847185544088965820123962151573913857405208818551437924642947963872346425032744166640875817002890175600755717874353914671991958604892278923477940661406606690323025408168939682523054445122764131544685873171535525329929888572365461134753127317931770348848294474626196061899634232466864540622633933553993763723890931003102737907946148826303927684088571830539173898473001671341448103372280938670437877513144786233742016560003031719742365897513105563446526870785733412832304533391836753147566058805355830916038254090127737947892713954975087241251904507028045441717149224214973428688602661739087421141796278422758176331074800983530746867406619271757051746294965572869121979406136881562393101997665683900102599374032001144385268329135578465013149659684206973505771472140775442817697142262512725683604896880658954836094828411807715827709437443038765955285086527219546013514478539330113933182356259333806021686734102471465391867725782274577168926456813721669820604493536672562973035690737197831953717878035042581530602668308131709890734759111394912388712061557479774486129336354426605134932212256415737007777734395865716795700187693996291258628527260733438756568126713382134374473227574955841746296841612844484687560124779200263841553941461573841497478185130024438193546983073841919642016094941756221223226450367343277803364151274535626988779726276208692007704415031179774145547676766789963249308413885383091269923512402754474229883239403237867003781890957109155007465155989426537889191328849150131524078506679581908366206412439169629989035727479172524088593883730719454018886754205605476502356140254213816995922473282576167391041394576370701966547751027845494820787605271203527371039051986296239489791061521479512478331747825285906847948321993459098190480634915206195430665524625464771096458994016531008917433685714174589883057114179250765465881202111313237599896047351260707827529986981143774840950371522827199725730565981375287981059218163362120988550391500992542660770707373402383756834666247621120306099995637866031658006730006299671517295984771357969610008522132518325387694388565979569582761991077412450271826188787351728819576559736192303230063435524089522644499819022384510422540622524023704737256185532764204998180397373193497410610615391226599649309725477174872523395900994393847253678990324756689483218662365646870109628992931265004703338461242998171796529547998535933637761358820293985476353175613352365832544489595485176742443663545513193844870898138532246779956622847230859163801712626176327389011327065861322555610544622406479553398224202446826649243823452588121774837935721980742914069850887038697223501901916676018655155269021093915614530116899193678998528862097373263511232556485963615601643644168415021585774515826040079246953733841699221815371756031253422187846258810974727715384287371900694727757553486115201565342421356444541414519043753396158760428228032614041357300119266326848488913740561003120028760860243532178739693789940177803793496464768970079762135148269763378483967728278161421671699570445582263975985627576043032964855799655814157355528640246653857210972312145315949679367251528728453217207626238911514732569336133886443555575523327615493873545851437415876509992774242714801444737570219420801923896787179781238708291179999158670469590827764016903143241455907034163028001610513483536127888135595214708474915537012856745377324200796173239390765021039888868113189343443149066032442360346216209919826341763049259036911198818208943562953968787365101251841003600656618592130986579548321490252922023768402259057185121326698433688364348798717431235511313872163670494788491082623533842482827567996720376918189894343819240062150527187331034426617552299410585800016502558274198450762272467134554134267829215427664389091212602982875472339476080084956169081576718482687219017620111254517709531146121018709377962567531263002953732050153001644949550368063277927918411564744176925532987637182312185639207379794006835304294101819632412422462262246837546182787631332761308342477841704446285684645478129715105414938683178093255042931870597558390903023302753431431070481732078975504383818437023335369935334657431723845345189545162565307582878000927306553638244438602694897765708773825978070524784777909985272322212927300844736268058096916013759125380121274961696604117554809708340315764897668616419796642742671159956242451789828385575234776451090919819134275179444552476280846917568701734090164615905823595858873881835598533920550651282018864857052056467017003756940746397625959835710500536257233020968873216447187563922652732923252904237898438565092551305724999271456899381569049729569697565619340596419833642944426245456341663393828961651265240124040072227926386634882517375727653614925526291608734905081128377216313123534399199127132598823702885850169460616039646583350031029815116811253284628045290579141163366941184078238408927051211414468021924456066559011695754277725408806215372377447323978915481530517571513137837491633724105644520533400412787615464128918651619058933744072459330268544412417765033626289895968378370291886565126737106312203258103352098034484561397646444494754261830481330942979304105002682598123070222332187858246797641980337555662278055320579883107602859579110942662259212006749356311614691928458587711504007510530426985513442265144635912519452636077961636466588644160803459522478459341720047277085003228331287349288375268628838338801753703358963221891622308684783245589994274690601867079266004907752632259358467805271094837091553894582088414164017504511876004098768313574955223035782735454886786388117611813249287187566472430342129994135094020141675158215262609669953144377848244853989910157148196359753013737980759275672607100587866302829337219560281994683598427204981219317802396383828975928194666987666337430442068566796459505552230529507143422659687863562935817120486839981002914635472789530777645178276346123159110254836370801190457202755813267569370505028296106608676525209739365257362906748948205897953128054780502906858005350101509483317929692740712270021432439343945677108981985604899931972888871777301086706019313761327182828064924156946587150763729221425817523905862574551767972670050144462008267249838054735294902976737018023921516964240905140031867628338175133917144598261279026507585964275197537962214080033096509229934830329633246563772166835819030947614215430335853039330353718416894214089002970263055812344948920804148612598915291465436886463161046923071494506986524249839126238741840821829941094058893346217898859999094277901179756574171312502278142436676573931383738768305748244246542275395825509453613905389415813313657326524859224295407047494204857831190604038697331042795236057867386661754123570178086338925426188401066917694335991000313463904830259221379623940414417894351551268358366163069995924991749137619377554202388150158021222898316378197422147650207969781207252848676530263205866601240132871382329753079800837636995944465208397136066441505851847340345045617179216210582400817320383535282276904551264829246557053483008162823301544567397933937293305765304731276457509268690423847485675543080225983599069222038698843087150744992184798641896951102608326722287453647156754911297785442175118551945903733221677366409990620997680685794095944223030601516611713143474137587378618406487483266227265600733630754655341066479756528082564780575032020709126532390656056309276871928578374825530238292978765333720603327721997749556495728758679329634467637971359880770430867975972893837325388555320027114039643198008797800109769098445590435954492581662750338834927660845782311520171202278233035123773075902023404581663601437056134556133078068552072256904123861882452623829345527673020380245291687418367833081357169049075488007037760444527901881160532637446774045339447918548391427274638571265153306253827005150932403768904992788495260580223573198546592459588748597827592302295245775334584949756617743479927720435715351444609874543982167404051891168142443384705861795088129404251592164925821923939717825154585064534106170296378449720535670053622150968795991198577189008307340394367527521607196637972591386976195581261175447729580964395470915529683993351513590141353378009849859529117526947238121385222934008592940168130960506820039911649330281659683911665117258422548567800005853495342241923738793750142884890800013656222649743675234474378270882687869764100522409057543224971793451944550301978039953848608600236739400845210258337500454627111966398126358585000625244681769140131973101827027791406803813604779066840637077273946789872776019161798239289778280697217908265641619513329006090016851721620121616778136435433100492897340440371379887516801267244476254402749337027051814143125995352619157742707733119384159467651700981419859690146230074290223658392046667203060662277752608156170982509228577721278242735662015761427342125133039474664204550023150976363145036453408680096680420946439319018579436466867595881478384680794410670984479767257795558738844158514929416460366916594648821007774790785892034831082652130807252124294509700948361557749335786601444803971045034663501232734955256167928838985722328668763456106960841355607463333903504329031765273499303633488895018043011332620321085480620382013050634987261346651220193105781279698515191017021439548599160728756179116376237653583522020537402007826478923933111207418923813456958238365168352596304688026616582795013691711605757834774043142661014648406623027234689458955225350952018763938263792855511713483800196177187805537265857018431835660613889238064237920081269589065786059267147950114416615426937867027733778591287094421684361679256830772731608008924730676436648756059229486771525458885549346172841893991548479784626205427805519102162030148209750566193407402135730898091615354836473132357865902515629354754523847578640847654935928390224601251517914782830250573767986280387632463725452103233742461676702326740629154308203400926892003915185384802017041356191344828805996406574991227654817024242841450394898206674778345082837209422293761240474337963977768473638556924330483005095938843907470670163471356715167438093111066740159147148474938981978466984587185581452099302320315550440208813992302477478383567104157170010669982817645728548446982385984082698290704308611160026048385644512431753117168872751880637708395647482099962323202187013927526617167555066837932717232626901910333969079296387828309470972431862641709852951545651696682142011971953113473037705974907170524560111874990798908762119105064329107076234368017478084488788665109534443688315705676066356346285287367182731744610586691150468139741379265095447687854067120322152081311639480011561288894964287067385392710098186100926150465388718778275871044468091253773710021313676692678775457438935398322744818395657894400017582921484342040562595640850093458771488218632919279891644534483440092987506957675860933013912886963920303472898827980906456720799506373236267413240818194735159028561188384218951854663717822931844411499293435501864846171801266710049570978968226322441625615947909436391092273743736520610568800073915948690820634370377197040688329078442442585223758115216566692266651635637084026442047927489826658814046652847297571393140601963674310127178252441980494454039708905586348649554285630106628373918713083447283869281231480372457622551275214652599783484149986424544157470025736016867867793827263583532551380513037332853218897445430878611921563348757594642758745377915154536138423526941822386210525020231800710112191399040862439152027296780112629407986845390581093053427663311986604253341909729443320817846532507618141857633125519696458428331480880871107271015922183514375336246010182988275152622154599993544543283545197637702527044398419719330594219536208756546787368963277258739551363823385109643559942114904680854000076995140207119584908232549225242843659060377885475332008856697382521710346252909937717873566432948609002017801080137431438293006957730561058392213812730324791915420537868039597703152165638484965950830018316344034509961986549490331187982341783032289177232032763407800474304145211958532235279938924049417768151650920565578649719537432014064433444921175053896761955657200656865607349833801162043926865452713466868443776766893789903068393422859125606229328601865750958055385377641795893523923664027622815644465254309171767335322778324523839631407809972795991193545195209118879108503010276751325137232054589940263297142285525028440076685365973306702637571959513373908342832842648055758029689290765870449537961132441663035870430991451197152264027699868661208190004657859831167438582481282227568913727401596545243111634923469864929840814214488125137022308885940772814555178555997011557454431826489133219409705208193414362104151429887162495550323958150247825807036523082251315870160773745203114759651145174787417137049280192595467831371558535339293923564221191873938497782197751220980681795769382731615913751810292787192372193327179275923581590549574577204547855840630877173068053430966080051817860983316264836662576938161241801463856884750163712772515924102112332898037739744188648935699553818688870208039736748170465840841914259333901074281838760507589790215952884902709855862922363119306415374603475202931280950469258433085161796074094717544472966479242500011853352040830882126064095897840151693588996273863271178267663452674749008878383863665726118568994023083460970754911491662923352618230984923773270040083659291636612982736462983067513707587179566405192840085943707456167901557643667498290027273272538206632926929270856993485572661719674472354025166188451757163844575862771624734343445328845081131445397864125292551066123018407201407542229078623145221400312163394460827872245608953698622910688987341005175573578398851934951641081068457182640035662621817491784501738925329244153974691982899814342345749185274809647043819211140918557257802010309112663206728965899716661513388491734131602498806335650750833135776627666915153739308141718079802574865500867675552406615861075062540585371966574306132395778543241885559189006277097859053476667339887183498272672346210267653643241999564754682388631081414118053835413244178676038751762525641458416794675763335358725182701623723423902943409899620995346501558188256850158611935897658900312283406930097598405539439269084594410041985533424047310675863910793473314093934535228459230069210658953096921002782301993327016562752560074415202082794198774520276045501164522076689699313392384613160908046794569696805019597273249686821313976110135792799194428237972966839568588481058071931371989175549170656712348035096525108536215438619265924492809495682398798828336275552384323806214971927297366639123843418894233018320353782008987081743233529782431477307592591170369064757712060698850496806259678786119039709860705446257738146803369377891757093961702374256051577410856924926945045718477106918960137431960769871764651535822284752425222564564312151573784992952817125624683844005468784361523757094853311009591119532289335842744644910448630523690679570947342567781767349119064898962272730930162929885614011269419340106366123596294812176560889589717749342221612001880564352195796317704562134154880406600549393414051536816480371452635113695132700638242340518143902754844077949292896149372240704487134689725953562896291880048057762657204918659597124923287742178515108761131740017186782481265286482814421886847636901700687032705020505233839695388657007609108095805172720284836194489182884232361504330778853347343739546260557711566005290377916774565624402274232619530938713680350203931680348859001305144622337533757773052795653322516880262621030930958467898875266645552999020804847118691159974793075720635832577822065241242940121919734804488965386845818808879976713081477546582799680517541645460051213029997671676036519042629168160780531120935656174565737966447030966768050213829436483905685914975293470284763586475683746705439067427917673050758703549929330486169614470190639978930445962292572337930085819083504511290677408814612997530919428749732692871168396402301739609380138976876887638683019825475598869989238607769566181508534074427988065847415667651042390733298330191703198860673314350133523711532202406746741943214101387840424175582542160192905392607958935687850595216358390948931421863557315251999051388400562887618896715591860558805967950425384307468194527082202308490437655745247178254998374738195007130648364716022877052214433975726825628523870496693008106207851543225880661146847543541757522577516677869888566562730933219412511764928456692412229053587612346112835199974204773988986656912887825800682746273606256209974022801692461389623817400731243163825101476675656625595635629542800783653637806007322160796157262478165867045042262789113315012782174341652698576146288968711084273587265799257166804329209814730375387495900169899450469450515885623816958000049976336270901338967512739087106546799168207919010178617700410390170035783399954756589266927177394253281717096118001236120454554104602803017588477847170636189396789005826525268984865457718662433618549360927642286312339872101320204672519054963893683786946730910427890378351048727253629834934564423401468082995926225042609688259306206606675644165573486361117805711598357730392308023522617367088310837180215360429988678851389767104352887805478487096723803059931108877903850099800276371311606094002884046807054115478175505716539903079695064137608420729578825784762474344332724422325422039250752902404032328147370408038823569221674534543686803341218404879611333084383187815091433307643089558282237050791042578624238535257303676744475259600272007866676167829347360721089112968548292303843838274295776273291621060544588948836104670661766267171250742004236102204434109854108290856114683988746391558375440307803283028312612175983367928997980190425896313430715635657171078813797174894884938724275023263063063002143166597834072614400262467098753559962127089702946533616857015667601243282991393717963703405184106198579036064754921132785378451902690702091943404166363233084107934885042767203341694482066995833234709027136307885129248170364084839580093862246880164821526567016962946597699875049156500076868208234157702288837691616864721093619126070189353870425169092199694856335948054201872035491087240331887512618326082151609459915433552414732865432829464692785872067796741811965050582746620777021316227004893114324653058026578929581836913707807215319344585616092407722279129765176012621535809488773745317177367530642095855044107360233168503662831497613271826478729517478080978432803651682687992119668843524128140842584175823887771498857566788072695120070160408823764067416670791017871443752694910125699575959602639404350342781740792888377196807496831464563656147740767407018019232073139933448963962102890215457326167892166964575192797423696902315358287754061849517019175284911796112416612264923448593319046440978066008012521019207276290115537611332457853217513152527915990379601376638119311438151302769979020120345668095498240070504047899003755597006507412502738847291699478901800151532222334207949440142159189193558161088493173993114211689559903766214789432175324655187775466614836389042943092825444114305987859063424000914681001208998081253305248983838133079156606015364757212081409533235899915929376467299249997112331137205143569708406570269300030919944988754105902445750637763289964825018683465397367820622878842929626938098017148356267797047100390445131353893144222748872651305198408988112316192667589368734567037075269138871112919419386265232720153515093150520547743438646378155493610949589798283011732122981703436423702218543566987518475454808719563880705754188677319214864876040905314484770134414811675540650835754023918033932820793625512818560311958058469049184698069363531777789885408722834414119753003498761072498754325548654478319267249326674335198831176802650996935422957028494909839300946874989414853978603093736015011589048564661087575306186009285439802662603597968488798080016866651314915976558497841295560183014648785148520800733918020155410169640841499356925153776152920007602999561783823122337245696487492136860721484064401234992580444428029560111672611971114013577089107454694807964534605749198388913432928280117822330468057324917780565730313138466218676498586744315932142550531197544254068483128754021676381728583741922524720287281492595356224080429197747236562883983433540549753264494335024417337399385112496064254853177422772874032807201528161288459589591399004901538819546359123889160528854191489007351001471731816512051861387664214131089615477841074655002732088765829558604842601059968629206001734396402836755033321895331536786565118704205388857208510429481117942914372274976484255563981308269238532306001096586468880357682544699855015682652875784816140778865024668214213630261307732024941269127090230326560761926386552197264280668229894367944637928587280225556227281436589678004354852633189610839493456075292877396559690013124830152886334080670914741576036818410340224727321829901582696205779624029744675478252143145846494381035305375259760608999378404803193582297322569676651745539265894408975497983340823493628225037475300180670468528375881911674893377634407061104298993852963626321082912907256869087585135713164100817670153785265958111270503980183563229711128633375411226236833997545993033655348558222107820382865495165995378117446705658711339167117996823257270047705833098856763833819180389626691432966876432279469949798901608504361348458704144522431920974712995770912991365808485357021398705764555325449273174077190930128789419213891763564132104168317226415710029785085983627999553122821788599395127688669655711433058896955241707027085041579151098373101725456962587229364511441335924024996279089533428625185243271970191872358233452413346211727248315019576246340772155069583496804598066582012961362161926763355231280501805502210131668697193539886318617257603816007537278089224047005253770379860352147217465224033931844385474041878077540605378952953327116995733667380246533752442312577376047925671894767633253768235888044132040090529801079819566324008053057213976447971658180826866033576197049240701664121173100090749394774268137981496074336518326954823767910822446298492373467022980118370014201169306525788690693303570199698191507483644600364480029417443976395949727565587792628358323628677971030764846389181829386946999195604191473956168040595585844062080445973081058814631024092425965005998999821034639512760552867218658296812078305172066349275888453220821681731299469262542307008528176513876599703843409392118070767045892706129774798337952090961896150438518096911003103510327721823315814209627736955266240466627631790889867146636891970066213231615553501874792182363460454004730925014679352148694093544073016766954365284231175215939980609101040785562240843675565317990439615727065551161756108800052619705679129980624118332161017026925215326944094068820434037528126490557127507893787539952519465409473889801345117686582792296366036859129005974626885382400220197603218736180377930473161227475910663278857268471302015833740378701230495975045731049994493219222441977469883915789051556485268114058334847606628871916392545275648917364596995183313348166939796553693619632282881777090212529701219685112043733990534062364547269347480811613103308969465929871684910654516773261455786336052520473668826753880908009148121560972840546099554412466044900435182113942190577201059395194670425397525493259593032393032689855969672052953269552794518768000682476513950532811894544207709341731244929162337046623639189240164899431237717909508292761315205060920868912616275998445008518326913403529000377527634586601811233226358954085300895980013290030498121062705398399068744797366820801876275484699289887869601492303495682736388574258658833363461265400739312459892682326691166818747347722488403755680500148081561863312329423364357460808341299706814274377299395670956122718711260556551801291505108328327046470697305719702332409314874276422969268349460077995876295659992493781278630563685821122012705498844597297341821878441528950745323268708978865841018370103651127844170822659894100747063153496434337726425878007607263939187368453973147722334573369392270024939627741300933252024312703034562613863364709769331312954268942600108230048811992113523589490795762006596437491042336881489632772127378595821081562748034744988531161683365894009222136942863532318108921715463372564168176560582671073098945068643766385319637509353171393408347736497469580476454644936190300746973614691564209465549522478099350063509371485817892721117202004972003365669313509479590037499836918326745074759961908572322866094836261068666821965390684700007979426665681163716907089694707731247565029131417258659838047650922528013257984541471207206658024097612499238689806018454601551464287001174465711246411858711768689984239660133254006365375155849379543542063924734947885951847764349454037728534235524613695065899171263596369033425694168694241860460439871723565534418782905002558943930549373853868518039998987198281103082908248394038153899739969094257336294917001171191113261496491477397576405825838002867606178812771962707977603488843125227363513198250022768886326528373111320534604600419447189334821670613449104462241918693005035158542473730325591813598951521060362144786639579647908432515018280277324905527563934722831003927623798337836662774888533524654605627852149922510914217650524487449632152161012732081661705033068237818619465628008823448688528172831442239268746686444024023909325948973773905360286751695727269432984354223384392401462906864105151913182455900472445355635863324894260583857304811726091140774556794271900819102230740801212931179987230734139159843040730326072503833442484375601346234986899446112793734766376041288485658242490327604424037727988818088625117165034001273186377754795000447221554093204049393004968752800271002475324639705128792992558450314663038426870921371518795924893788019452464164367710518085090734435648768697324052120189271959582470327251530253135465535906168591449598956021079884604235231296865639139953027337915091283468722510384717934216158592947845259267390819676379109830529625600659494554105635049824190395174304150534817144823061493144235314110633604028078300180751721925459400536323281920596421444180101874127304416798574478879928352413138951495329779496201891106002851681049475403699612108800647104579123191477103306359136340835075912934229361208476135280448993963573818940400206920225088336355145859675965951541985350210556926617012464379186307359472708254178977269370631418392501435346325999330388590936671987267329733688622274083228324453092386452659230287996437773572848318449943901662387989263480650696982367469392533602469081977981312643704336861027995841318562948354537549987986433883505293260996097889775204910416782928711223133652932203152720870426764148692791804256503547217038775565040838116827393122839189037071644567805490795041263019980099980414732029609624407022320711369984360742683925888853837024974224362796221750948767296251819502673232847124493162871731028328448743499485021190547466670515652850613058252930876141770985399287666061647034704756122164141977029304906463326924352829539512740360972610375054915695121222367619573487716227007911854467460750263756826690264047350695904154677636866397768835799339416084313379094162195466276395959126663191511677426921649529092685814698798642555156437778193304639417038486533733243615627680054081686404012578455312644041170101770012232855021042710366223318824663118620550366407675208460619423434709907697725333361949497779310366215658868714201274259757789207124254062052374193995194161057103554445852303880020657018904065487655738930098994879256304972546453994032372103106641067421866697094723793980530318891648080152142686987918020808793990949971307305005774577959638295840505102530532818994640447594093247821125570678727864239339129454000616641951232672635132714913724992285020488827360833034108197468129383828040284323489465440386891211679189573982197465305763379816742499428471490078356877645738831786764224054372416535460758883575023199183937526898652453321261898909605177262029035802340538842762856104374700237936167047388871398577763918193428944185041564450823686744935978004850586447339710613933562763059265521091696131714877187097473373901545902795009448562972488257081306188234296955294646890436649564516366125489041497816772076716993880233765692560967881651981884886577812843893683116843482858668452710080715659009974866899442425247580737195477462792805370404940474282469682330778199628981802815198089475514122133796214980446137170952645686569086421198129655665894052828562280600661478785729084855810502771924856428874817316762515412760336329583894123471444299143539900829594816331572147283762587243037356221143445544625528925577918212196331977283217547230026668605687862743083053438237468929173082753351349357732762087830240966439278872463127959788253249324431214222732370720272107221108696725692182671568800765454075020903006086719293658119430966960237980567610325009073208033190723332303904511065665401362652265729579980391442747580934516736514470908772043115789423679126627084453571597247717445309261460662614994068265337533334268751060290613063790787130096914913134448521727670755236366303595043571263087405079395844402623393285040428498863446432859077001747675892487011287626346126458625588230630416190086636186004827629332463782497934147348791936770562047056379217429384752241748138489043431833279476701746343456140409959860217882788315915624946536849798414526847570645847698260869600314999297157434025343097250156635618203373266282567256103752001141364605773796329474797388182453098265332924534569883130410661120451579208102663842938029577982193068067138989020216540458062673098076014496511305332968780916664192760666385752683184251985597858290289857984425198547600015593045523598759592279624092341334951231694107151491602985749995671996694396959404101545443899393564522130194126563661536605097577082917443247765558690215161962401215450503590771440749842438721234237683411164518196259565836879473166746338924434208747854599167182919809431365563744395861411642818684958210904921363095155933676383945945851360889859808007621962459175624127471896626778265449701239025816744215369513861208577585538068000833394890099810589379973330850981899381473914296048286001622288463338143842975056450494138842483393798079368344742057504382487683158414870355587638553838628786680847533150554454682908391222072108388581971584163203281352259468117621894578106621222024732350287952652806114806194108332264715035070597854268312964788825622703435868916105458137287939831184168556902957520939951384710759686562546337551712954581149848225534737635589357171262600546770567841477056579349255652937453385728194009419654630382580407410591306882887455200647185000845659425979961191489486977246202191453415149737232452066599996297005047765049234270522941996799726972724865186431518714530217086732131377216196309922674999741602525161114546697837218650328380087382336780200843161442299979997816038322159130422039675995774462876236625059489182377486594384270849247561457915126252450029983684815346515181095329528868977792441612178802226720007524861927958228316934057310911400769888237687645260303261516176325590721179524170683229319605201548797976871596933943250161467913228848245901103856151777689789710254249842343038489765728682791480078896574404975184716001659818798406257092563360114157618184232133978621354508340961950020799835627000739085303968271475134364828908619472025667334521661529930013914297760542427941712910496824203933688776174363871671153815356652683916316233734310809937728925849336310549739460571448793897453780883500158883882389925070832915287137802405525572010958450917615006059856232406032421357590642258598542403950134119092405340136609364456452537485133550625558827459472535867811316944014233598011571338471706429209320246566415532166616021166235103401561547367613119551534422163679244030794783354462492197968284046127490072572324625446542999277092553525485023111949346586403914623707328754551214280024579454599891713903922047352874786628919727973146611798504785315152092972708956161123385301117330286452428879874299347840484548844119934443247503370850528643783894950910054160747678267414173556546218993331693933648477336136601064611943417533178072338149899239642083972497923484128208868397453817214483505355135372176534510333326295935338920196364275859575529455287665170316723847011533451007784184034560861244325226684782209476640866925342510079752042017467714882293482015694682069655257513026076649746835819533142599992244288994450393201942720383514542498191540950363371966275077932573826592721671316215276362066655146766959790728077042501215193828485384548179492215181271333633699454409813570582979954411037703440586030257152320187649804083261209960721499623563845781618296206120896469845066512899970240982030066027817842972455759753253106910670433964954147789383265470982480380504981249879377674794703657205560148719239988212855210429331069804700437831776094084664310603298970956312818653067824627820141534030670628176430978761804347064693620988725831486783806480723854390430619987578461577557957651593567734662021782602830946040773751153316879608048936846438118611715811403118646021075886752627000313489941659068622552327431053876962002699904351806092688734329267893359681571145862811860333147387063846763918232200467472062773239735460830572882133205423410825287606013472180949035918563094350623482080112921960315498427142428077551867617697059712647742998226618020585763535966321677073511248990994959347671929058047684692798271729483413612013578561524662178135511429213729163250834799263893637265644571552743589014982802510714400074613456964132129335536833845140770934841111315408680590463594128024729766299831654942310270487411556709323274526271100867929925459176107615149865626575321131688470798154526770781055686381052785132695103516582591191141481345971454544001158648363921404401891429721739944200374396057287709654163225544222832808745296901547507046037166007747805772549654840781116519643786797259094003400412772218819360666825131743087856953845082049394026921086885173046455213979172604030641279992876808876224010483888234304649754989953931307262456349448183948130028188502083731047847994852449644767965058621261161236470112000646060938744159595339669173728279129368748163163569811643194955517018026565475478667440062952229448645517676894377583293892459753584543190578017847096375492076758247548324008482328037418988352015511959990387618082023378470937722697902308166988070787683366091221136499996631290848339443040985772759636394427272773260494124956070562327872220517494429724331444746486254431665582348411587985870638563889128549965818918926604403191468739763652868273180823956484232926436730182893306886561913502204879774417462899716522240185334591125111685655114065891587360618745375529627773112069769190078151938289025950606120379830849327493259764574443328037520353649776215114398661984783781934409646880232535899721487677915344931400189894511874601042678853936009841188783919704101700376860246359469507085775158781119185805537251525783965189962764051483466107183774700071705122932862827302540935472345494062215305321290962598106623389111623064116029828921311769901477897514322048646945502983233478333707045744195666206463066805276638435539424945334169888293080383514975562328665499094691021024903659808148371038221450781133587415925897284780558219464572489807812723571587878300507499360424875687380577965747465074570992277886024512762771402492784963303902949275677078102295528627492086681010792959784746345883757516685246870090516789195269391994447762067734774371143147460597906207613775941691424001819891137329082121304325509646830280632629274704727202922790682599702323626984971828750076875659270954225883106280619236631860824203298293574592836758044523800810906314975254388128509430141420830934188180663882464077700998301025448058836397524940332288190716110096465482539818957220518501115136523396148214435316453433053808659119868403768682766012966640349535259782497683847367934830594293932408891244527262151361985731790042462464645573823664199233281741330639824724125253066459418098951467762676994630665476835713933992317603459904292432888432883371605840158880222965281585687825928788625846452578569258492215586092945988389745461870532832233992958228911997391181768862186676996221870639278013959435928492337387891786370781931639320335987453550762848834972288903806407489052159908462307962744764311143935575298248270398698649297511297514071973053369148089091430200668056633535832346878992596751901569358702864831627787927831595835492734334808880016331997579627721241713848196760486447085893593779801385403756797596065922892834213014374295840021533645642356583770905916845667989057259943607231556122866702630878299776336898515879382707851613144557029022798865607172447783237921114246027378489246010460765745503018864627830787001938798578339349770456210752386547780863686300348055125623374756093373417263761759763153281020264740169616124001116985576816598439869446750449463251385241814295802733088127726123464735029490761109369258181926621648840285336213567241069458281497171547741814038668676817424024777675885307814079479896175421863308772603351928159476218633934143135965694950491352763096359618023649112316131890013097268880579585258434383256068639437888787095268776098040884366229016303542018813930253389518833251283989435436802252702771829439765258232731766757811968389867233548955531294371907062657713873131118320245508090459667604885474956038282658939586242102393229389960078276523732721805939433280433841229576384399327094800648467932837790396121321099795790643123190305704591177138862915280002623259652645607875091993067527627025368655459135656132859946581595385693034835911906382133174784805898151115273450770659406144659173643903843936664871051111835200007737925009885220399577349431901627315256831604656863563786216734628888801272663677472482393683360135008417862130808034694029774824717516916251230316930012298094499594191394704917388046010380512044849983386105227760364160313857641434798005894642600766625855293797637736386258630791600803675647409648858998943028838525038414472496137473098265053397684719436455986692626463611365913337160660931562940582197119526446973632960614244846583062492570946184702539848457209065108299516328489867054231911668383049021181647021306489323818037064738898852465643720247005051367981856849666561310355824385605344921383348231984964475716071275491732079426644767643051121545253952567897572544116116269013764105543550017458670456490833075336926701047299890984898088321979471087084874389307225311239036823306137055124915194090214704309088625754455504420061345815703678173436854199627962362809594903983669782668137919727819511645444621341895327987738875011391405619195631806948661328291075548544060269359117064405744258956333419698344548009942884985987571149642654517533341316791049562470908113235550908276699757990035506921895442705386087011750353105487700832408140683714369278808813451481817793411272122733154320116423980127783340309326864669621997143675455728905607766284099915211754627684461476858827601990374600458077713251795247899613129584364221520473172019768418819521113981718419078065137497351598595527338500435262839776360168848082450154819937517420914086193286454248463600811099397687268190909221535071834643195839697088883821224382999118453486522432518053326899382605071192913267014457664221046922219535687878564240990670681037203537297958484974231884699457851393420516716059625973398943826394165352818348583121255376211681343963792863699523851063684383717062383658426395937737427698276455772521542089940589266776610208346185454697091672171703358619541284254376226493633533537692614102205328501899173414931003005930353613352993766119639212107837189713368077337461471509196078765915726093196700020634036767264198031527337502936046138264225435645987329108620233593631716903290431817794117667957536540635187991772656593207178239888547494670359353161784063432601313351729184788805912427444097882814834331023528586210826211769165196475391223581305058051640183332257287610548183552111931380071796153670872769111852746616993336407125836274491111969789295386471451582293293365322777644171976128059456088196049840606956465340487843541927774892553909879544728991772372288312366682082992917893443627655457924832688411336209325519023123913772161571591077819194942146381969722145197777711269638010903435700185177194254995447535089140639753721195248416573612639865600662357360202479753776184951713960174930135700105099598078943689357525296731058627100865243430346652003878582511998809478648283731743923813052526451601626330289333584882959424410695109573575836919584736000695008401518580608135303993457313688950010693607631922733394737630551337261829060010405262992486409919145615552731376144585952397081472469197807652978099338493664668410327185063723771893403424151534686803780647864047975392812637298457067876915231090813093766463696925903728348187048143285409407382022717881195582168589986778096530148455367955456695691887846129872887577236980212605796597837000152974850765163825697002651457177588298488381256894686917730058428314564769314791836709631381143444429933316288277730135812469632655846728831053033308351637542098530652636676684099468073812915932452255176428251461831820268472733818864889923714692020609462423702432243377826017688843445408956801462722947948329513467477192064363041556541377579202914661136431415226628538461540203158708575587820514781312521260625803272435394464428866498245170709176399077221830324259349212446984358696693872825193441337252020309290593693003035575277917351113390382747973219942329551753330637909320040573196467552767659662950429569489295190863534886902751074992848927027649786941736711189018437496461101219345084615906780843971149208752314086743705190891491522522657806966787994487456669555669632109447757504731925566290650081717223418603548434014192778924403790131536143676426234149580467222711365624862652071462217523680385447399333043668136065456352512855821452560074005389870462573522942812852031424211645468005488697533822860717887769572140755220799932352600428102560857382251816137835452795039447291297257046386233672183294491869768301649016577573729905191349563116582043188896642064792671681456377345485387011281946234086472609706060074311846582286715679045783220061823543446473621610818079992705635958208296925078501209976904427989373356894745813172086182569178541973686696748451754868578342452286946609723395539840980281353992395683846249959718344137654217229619935656429864974573931737449816250032995470292724452683571141022349704209149094211514785098902219620984290186888022972122138466368352450463342101370604461105671875337755290864939877593675031511052400639731236298958669431921296798355675939434325747639993264865916530294941720754825132847792452580438069391849951519591594390231032028134417685602230949748954214780143982838445648100167672628163228287975493274888336801514449503524727486598442268478739654286832803586114263205780610887249651372684868578053888162177517644974889077849615516698704378230027466211630244416351213535899676817416405774600699364830891342847524614437216409687892015408204734727789608629792835725428737653997318050095741515675374983127824182286747462669153828752649616193306812842588384518529540225038552034247602284552055079569873708213026131315856289879845511710057173634766667828500267333242527417864448972627148941196925524844592888891148833974881172689900697200865279607335084983759326667844961568221379742234923589264124202896399544583835700757019893373058787389741636456045775373662901922905705334981629912472515303485921705965506753438883974684281961723763682506342739875999962229709899250484092150067343491311530612279310688616139009263898464813604884981288004987148751053111237027212375810806351010832278945488478013766876523579647002896834847122487433440105426044247395028668097937737160984586024885811443982421729064359269900924388264440153417767368376075033625032317443098190502956204609693716840470050456048735140135146665735864166571118992189547850384063063768621271753718523983413714583681597927478275411310687029092471314593971920807316111388591586314300496006576826151240834349437451736281213809002299617742765065785015018348697120486652004514160923395393516685648628278757119232244615796956325852630260320425014578582976713819257144484897023709374143970183911052565348432585083351360832111081296685485410531221070434980141886396242695441207735951226865337777902810102767572163801638389783999712479127093659316336260257472682210600719604196051203051546636681409693253931443182857464584878736268149478285123740666695165029575499273058296770060284699133293472564927231422675254056665664325433264637812879640028291374941597888380495290549719241493286830863305839225583583543819673539323087558851380230638738946953000476341336560983030956118093525761962670730045277118043156135752172065238381579888599285507352328823168187528863491137778321123879068548479489140701071724699562302521435637129753182800252316411625334308206823079625412295200670419469038625660292742827692246016869871597274467049181291254224478091614480083281846002150363154849724363832328994661668534136826956200919987532319132319147236547632110661904802458760860907915239750079814893800753338790197903977748078185920374727994409606569569184186481751987521279178650481596801534789491669573567275052186193419453382991394587614906487408305555321293349277551585398194409692700963150267936637195326775514034109878611890180848251822791726329621168408110114812238256415562638814333067279627309083934115778939950049367875761762339191754644098599915428327020187581006890224310956254398267820026182972468293974161996731964922617443696951284018386987761736050061183842727433195813372535697679050735533659515764840261600284025843747137339455688102863540652931234885976827494192161944070561736023166095940220756424243712146496178004905647198865060078067731313708429262912442642874801742057302641082863791662301063296819732322408472187479320661481369559531193714727076585561672137680070464152296557317031335043820145410970272678088024300325284685846310208984702975672557393505529155228995258821955211021979129124291216606393278206025138325624561033498195384219508149337654737500905281191193227190936919095526499168441132966639983507613129633092317352474506784408093926861900066032914699634248802612175664726617635632013234423043338636075706662050089859809527661156747791884697446197742227981185610241695605110316722601166371867720306999637636247435158809738575477575199893451838501887103867674360737988688852314552202181690455353426689816885095307446050789946812364342001083403414788375773413270441353708550866616254393727176315322436523701737966222835915875100368182218193271253997591481866528746388662899118465732780733376939290975161862876603280811622350728567634988003848616379550607184022944999075198189801223222019958360114009997620278725394091010501647352263037078447634000486458909181745715759693777671059631031375239657718622571955398827883192778971072965748976431227488815974962557778182242418226154473255954308576347921555769445595453514799071268542117057425747625085086392170983422868098168798777487267138634741418885694214506343354257235186624903776065468092161176848381325829945309034535727707034224407755695153445777317284699074082633112555245271713429815188732502359085666288752126707837962995458238658880936345446331648123893226555834715706281086819400692220235179502053202946382976308830247671633683061236364796023679679550986867654804315777590443041814402890529660913028987228924685886736991926214380163568770052819930861584734948012992068419897550842658401150663177761258871120063426637983518078807190288613499614396721434340492911837822025970592390475511487359069086083004414642212058900456705049526643547739433907243258249156168339359227547184702218027693017815813135346460770500622612446179895871224628897472487941984230934052120296651174734905762098636470654289886051646731775981667163445291542473011220120299498737801570540741012141936310599439583514870911533861678029111045449666022477448640661696412529058329132783898127562558624809292482868253356040677743727624344058725844569341997636645638124175843224736835186627928408928913706715352929432317908047919259649846805462978423388301086118089138674956550360262232761380557015579149915506438481106574112958810341883958816303022255678696031123803062409914327591809200128613237267847130641909402813317145493523552767885022177520265708506389200195721242579785515337137650987418297686169940501652104277439681629540491499045919507362379814738200921149882134387220019326788078158750391443908399593691283281988683910999058095972782236155485240015515920294751280445442112936012336753950394714231845541018768602361626744214733245897590130497066532706200651215330300810688879004019308281688142194675344257953532740550791198060416718227700789046960857069374433286370703346621936694324664372270411039775083903631843872886853982698579289482264113927241332505074987668915042571874675945517748682121375692611633094909991209395866764094091686019067661272882950002644595295941848904069393893794281270220544684380874222261633899470965134267329097434341760220141108332820948046808346359024605680138389792215801245777061649307423538171427488478819556911314573595951047525523813617758530210279882940846731272152209615743457950224907919858016343676523200826868597525810247541013233072773884477384981443809016170565134138684694219242915626553295983075382054760298617380649944765197642279069546191073470820209926050251523250525076525480439145691817630001739347671875619031969428578288878131783326928572688937023529933887029999179274154633411591033079520327405504283547547114558691766576479580955570904450219289050514257650083712614551869735181217456465174895504564154269222413840103180779938052558952088307140397264315736750502361292250598726810735318376047383136018718416380344011477858134413534612821798470059221721576311258141021025143880183206476122882566999694420950554278880800224383338774859514923223047268920452408746282331757430539485442143043271806989289643982729649102012083813642770371540307214130555882401678365944483606140586437781337218678662586026352615785590347015653067502615140896311910914190510539923614370941819758940375083090728058249229946162758349707132883194151811951955785535806445500920322131403707650989907654606707015860433140075458493219538127272229326680418951811265615871111417137025478677235765745895042556124774447289503076472550256649355037658697886418656171906028494484977154880178061474075237662257006494454741838770543792426373737465217652371698348967337465449548557957187212014933024869681404632109097202533961152255112670266498694298242018638706878089589841759290763911856358592633584650727648071604258562119230977654844566139113867980304415781062849387517596343851083572428359403476975282355341292778935258590467986598097509449137207829838579371993917719998190246437283444043781694149125764300447486820375962467754273579085169700501268114968238023332119723191140999777283118960260211116804851855413986335933306597805493795134179375871340991921612760789316921735395133185788563463503089013057492497591347443383426636064146608755316289955968511692103549600590842746557447079950600080573146525596954058064670957577236212839316264480337318891934760201080750925407619335355429217177587404816801394574744429906547253244293982192385664007495719379441283391765879751501853322486231147833191478407726445144307119413810230796007835229220593346616558704672156473673064013211302776581216917157624472500197136679498338701060780091847335927578479391639588168537458712808647341214187046469287751750378132167722011862688074881942827569763143499230940517885590023042951722872252298681880691280427823344226406674492115250360184437032379933718283801919869742765237859174880691708127493655046019045713777151369746130604414083393255969483561096934956158690131195145988072182720107584019130286845959513218114048415471634149443379492762345102848549328127200564628608246264809537098383914445170661509424780609904821626614449021494676933140194333043698273914369780358011484134079325261180844043890127246834929022406266547687104676806264121571939022329848637559878532785727527519665862685102341050009090689631027110046706039108591537289220949144198253382313550094647604905339729273014757077488343983648141323129156483566142010068149252746259884462833414512650243242188328372327720443996271780525057480508475735301560934794115982329719765374916869563943619329818973623578896114129514380220804520274686158615072111597646837431163638618044518744113184869011662432411193060701882886813230768887546772266149941309308171989624991365696608919370379305343970001993928874976439313808530541401843847294056910746055030077297741692980433574959477620485372336117524958136802663475549311089022906101028251813789708626274014338933770367988176322810432284778218163814872374422421390079205352673859758492222172193512299611493371750986600546387640012515349325025797848881891682602780726973767603484054188594636373443869330345152777596867653976117342534307466141952310343954980292086141458791080762490532652360373618521937058382117296330626351593474302071343067968748714161196791264328028781147594154175521061412254885178350761601779570036146758169572513963415991046419577019297738963410425984880003428501461829847594512696670571816191816778885647046827755453409913941998867752155302858774123320706045999604098660233706915464569691594626932826861777791002812767419101332477475777642821372531811037207520707023953832246278745319909403431982442264066842379462157249887570690884856790501775037908786068409161575348983716426264575332482879975452943458963095090350497969918584264589526704382537993989342991325074677803526314350209703897433852790529932630980502079598465827147696882549556409392485321424256240998600477254785787209068969663271878570434177527138177133904052060832724504559040764664357060638861087278735323318900749738102157685259471278060394405492216996936018036197937630424574268548928953476658801611742872523299860913187583454904614023892819936344140860232260354767567236781681188503858260529828437888072401331623376997819819670731637339291060226502207109614941965769095223303258128982417013875126840369224886894015339517751023192549304568363111538369067302632227869833715360081718879595958671796450477484513393878966744305512690286967073735526558369843716890877981857168235234626836364497367196326020961411061881347306481256878144346789607386908525270557023305104283104985072831917524661562411261468674324562565684454391754940668669790329335611683288209331139520912573144717772673449251631345623812903588507388239791060343323917761322903570709012133082884927429276103765967369220400355521921937758161969513762503042183254694243534002183871540983873187260817623345770586409365244681774801639066630321741776851297345032218919782482479696485164122837667223480950020129014306809731535930783854191667475827340742515559556872138041478604442549680743548557195380114596048514033341465455695003606007357550124423782950782748642629662090179062002812546686827097046576258850786036317220277820147845329774960996617829975700954269464100963207754085616037884792404656175685793642138793750905815933349924531301970275119750388156242093431507946580087695472026584297648145883262738928223738469473408924632595018153448126153594016565851065327455891605477314747466184624856777079547835301507034430860678942167338302364563434217620045310795640250542580778400260605867646712946406101770564693250624916228035074663811520518129625566178344613181291854028111836673425585615258962390325627560517851585269179453757717988068245918493051194495644661092362041060464123672289016434663351750366132257403038861765051520847419778610985096947238257225917681408134639504882066932651753896268929376465341830457694963772768034072931193542843917308907655121463364825167063792045686597934436335088816582617719163468135292851059433164000903817233491502748350191024499845402753801720614745478706242892987822168198489479161159515043752079829398625069592698037624698149131448946517430981696078790765680199162624583363920111864752391652557655173316593080452054212933704150808437014419607357618773659937710659871146151382028424131514503515953652699963431858230616687135257556164954631991583926235558929428732776143449981107373371142189438383702219671600249349013401984009183017637390877440543555456195217764477350487765386232624698547742580448512095549655799303805363978117338363451964242149332342956040184106884164253060634805556392180555621142851924558800154905072637266247486834274646446089182415423093981717260374937763210736842420372474811504659051835726629589623826029277197299306751414011990540314435290136498716055058915589075947262859102800213555528362231073789916195742312037610359193629531708398041380864718119293219112847194034017035463830283653055283179974315130194176656805841890509189991159745233267716322819904078247105297781315517976515799474572082715114393255569479452846080229789563163757105414424011367278600591437355198935305514211085879361127577443329360560572991900519134170757343008881674181140674875526595889098394049750976001167145614356182646261313276152629467305282943367169616517238455584856465112717870739401534258533909387867278696565537208459165170587663385006112741545146999993228930623660637612936160958530571013726903580847748224719819591601138577105573974826076422054381417659897542581446709068030092318053078807721654890583354816445661422405662604758952383955562999059642702761808729594431765284685995906912704095436528717529516992836838756743190786383662428160386179465498770395926281152151917170531557368669769533441602895368428705400238965260416274172973869854026836961342443760051507878625730182905780910264858729973170653150157924673030714356539296195010523651758341906592978711274411040814676726065659772423464305441735676691139015761792390923083507815645618320421795806221242699095761463394834007565654049812572108995913187052312672891299009568956432465104063611736130303666205458376996121866379146281175852183462584890667817733026230955753653905711887212325235536745196205698182512703221115262742473414384877142034325059518001126394429277422188089320248659928534272598262061803704165176346884752607672937934415047192631021241319667974439975332576293708448812655508349021346422464426892497315034956390178809328371131157946585182493415551189684734156047901837985857787799184776069204275271352455742717761351535246549987864236885398186546997474681459965690101612591257815304978989910213709238925509932187717558463738952097471905128639966370100049531222802003314917460861780390433013764993338249531909647851230031120502331171370566676830088946732942765790256918233796906765049643082867730240521115420486032067329337588598561022367513967311706511400787333822902458060087461220961884354640393442329952583905036592772589322853295673843135970907563516968743803431800209103060339816061564672712339937974328122212828398111851861323594903709098030242543902763912245112749964461341744952760689897081082085438873509456625294074911192748577624801437526261563623496647263799975659093996971120705300601844084781022946949612916129801228055731475065477986871968946737962167570334929774700169124814745763915732662759781357753313142479183177197691254214388763121100317221732450355156088425956632429779351284771649657713678345468086291918251788174655776145496953935539292074422736059373342111352448317365659961505364835773116092203600217249257717117021181699358641643153476306812574758987686656547554312291286150992007648760602789504589792416064543919352083502071135290723480410303957458119121317810129487266230261653233235673900385045040799127048517071650635429682779824009725764618370185944141208850527304739823722874815363568006521048086286455113058446829739602908144101467602146547228428556531604017751399276407517749102168713256396541306699220360705994285725183654305319760018126215008507096013384232846216857793313667967012798167862203057071635092470640493984113417002763868357056068385579993386686342138759710871896987178288618246640215880637838100403054312309034819545755010389092078444108005614974348248871220227919581063250839041085758609012861947642798665288209137452263279526766240962131241087218076311281498153027098459216869735177963457979998448872943133000413657741298641944849125033329400928954145837982559123607576822053575440169274940286256602446142473632128248994321507168834288743522129667648978077600712925305881291268980609194364244293534127061310634254318662845600867456436517471153634373940397695372623300960757414805185217402126462982403670967123409688493114785524196144208869989491190870034827963347961407677978702573900581460580146058831215116190112096717993042795612146644944228837497328068215322944644769651783040215628313253089787159537137598258993736658862029012338516766017160899108865258374009698803000044210312642754386232648346504874368577023604773962431231646782710232519276663168960145213794029332869923828753510442550225525646847241241093896468850525599388875395393631528937769795028671069096122428590132449243178188367201489169604764159218371704336313113825897737681431755421952593932878376785488371389846850021482009562706861344244808351856624010947888067741123481760973910004494790846548631722055044995939508297119165789088951477364242288296873343732330520651136769072888733342149589478106561891173970687254406000501606685153965052625216567897366882347012558221271226987025020726198380669179948804551020637094320969022879313958392336303806121048152434838938584838552375384253541351538900352345983752941924274370119160846033061434469409352677284295529215622733493065562410305153576970537861555096996425209582376583504392261325560839643979294761035940359221621874274136887821688745639469407371786817550814833018196991899308141779975818352756229955024215385477344988336208584029340247339125232485811796286633082385931420313356161870974561852724410626149600125582837994059586304390276543761141554566517900974110903730956896153698481699558418937360411327815720392271278126662501766576933422385784282675467395977272972390648189876784514239387119771046713583538301917924823287734593109723858959990799442745399959395971320311579686803994592852455379266962461324246778840467163281182033109804292592084113881423347680253370968556207907529717070701204100948807949169898542054825247357565830342179985101426421691724337420030065271508229829315791552160821806037535264367314129610076152668141910798965959180862615400760839207595336913030313234158544471505118738845974635322937253749112696542423622433184857759671307356036548497826475834685972032216077890665804821912125351965087984088597834545719863347640655342897748722506989293094896748961583628073118497935904898849346020526068294894454046518883649514082863213044761805281669831670641722010329871106828453888063339035618508014102118592608418415130590606232027820641723562196373195747191055209758393286863971307147143732523770610198469802417285410756285133388406931837621250006668747164797286194228531513234607436286383782735610903413461215139660597952523944610195411359715123079113877629770085974282020015870841247316420316556099487030132587762826880864922137087452701252529170852893129083065360190236638642089425487738890733487956192010924581713657568662277094408796664599064716580408197276282665699985887447638032728379363022461310570600038575493627482156662408732161055965075966950178409543459435949852010902684614899182068025765194619184847931719984314055810393461403057392478632070841442432020705927294134149781480703053571051097839074971232533575796805458287423714323026080565881574160642817905599438021374242747820475178690266311885767058624485934783759266734684781229283190267260897629954670543851488276435944852923849616351168203021362095305989680189502458269265200057812855355221686301925779024820385990372821808171199637783542159127103052577297719465172215976789286471940487637861695443726098188016047009108279863823546525385698906064227758409961554204570340579688236927524581832681204987214990967561463805094589481480739542704510438727592042777464116292799356531662326882498455114489023159823833137446303894433329582271959729093682369440228369249328495063918570747905337422890185950603806535290085095558588584241736557427819197188704624387488211291062092008746456536010369136827085209314531862134853868557802331656735404266682364920675135513926244447537369270944128456331358365087821509123424812067174079943243000932471062951340927231018665460935379892478681442794920361830182350940069272508398049494299746914046364835946756279881131863097887617622663986107650388340954619752060074249686365572441747385734158218266101287294358596876158430213491719864455332981910190789345103807908774761998039085443605171431189351466166712890586066048043438669648081758857945334016705511593280218843840405270881203669065972415391210218236702550734137622625729898550048583204783194204120822228060610264373091397892974915337028898880942915852991141390087819367538424986414418147645756680688554121211466800663962655876633952390392140419616244817703962297627841252957507251189874437064334832556608373314935906046311023768087265202885539212886794265046377158077561856896711110621927468442469252462573378261806266543935266355769570496697887924220726536610963841426281062550162239202369337972489787100641192431687593650108569861379545027196004125050043604619772167401422288817644337448476836638145513766474780873189146607023789199719806732738585898116846146239855665502460296354160330238403351609562512824790002382484413516491760646893357083062082110946117926759287587825926940610328941556399925364043234355258417285210801990591647065430323647846405237335193034111710471197332533446848787679021492928098183101217612751973960828603180784994076456691545297110642970811755227782851133059959670835626772462307290366051026641509259088070611795351044615435181852104016308410350257763735219428175060865236956120531791329650292922964266322782552822990489309048813349188695844664609892092835569173767551049636626344657406074905731617413922488218627409377220715153432626872645781856600522149248274886745659933362397691983625919308782207176299379752980363886682538193713646448849229271802569240772950920775882166298836376606467975189839449863134912600997255354183402640778452863057813611960924216373086616350591616777842578457966612605401828521559136551128864692063221262751615537297482041414804133975338932168664166466085298681275655968927133189587140188246235414276962883484749288686124894381216242737787193751460198534216884475504065469239371759935103760683886366155819477026249021292281805189638885866313417530139631727716502844945926964242835067014528502275628689059469264416004583680620227187438024990632231484388634843065249338395414453265751168706630760043116274277848834851495239299743848734624561958937514875949771125087904597951691374150344226991067349620717084554411068284857446005639717465641487452672759029110218703762207987652943553067968164446405370799980030540614559983484967511455814834807800828642739711564352526697249798611374298400530795906336661481341449451000558657083360999029010602137179222444937828551756346566038083264010801756155631514144183813192364150951458882167641866547136980846383795560571687173001852925741702662418702592608497888778922686504495527983657578416856206171312932719387749910160924049084123136422613763684102087213940324635922745723746588514838802621665148599220833165947209045293502770253207250741343980895730424721608610157837138329190775432619105140787161055419013524431014736740405029931677632932282294857931278240875541310679375817560337695990598028714215705471834765346557543997815577985475412251230338582391872009823925212592689626580794578120426672097822256294657680931938103421298930988396526303372813480442649090918063794803376363873416677657213165830079016030907338759830060968032460569773753948422047560390956019328628033191228051715232170486013867624204494736781624689485983061609330164534484321202128381560921235586756928257171389369057373784737918942695217321266985672240801449279306054608571142400161163565782424549500325422582374147596992492744057168233011022203168366752361604995129462814330441295044291807528687660304445536225676737907915656582306704863994654603302840266660991667841601858767750534826172681825349260982312199707118418716281414014805993141884820736666789332985395955845987814073552075905826224200666630872198379592115504562350224843183287102517234778805496596537743787771048406907215402616988260486734396799495828674857275901307172533455471500957674933680538315324266540788936194085600997988100438894396146066384754762352147143673936574823031110029294464820437003530163205204586943554189466722460289161237993636615253402156947667715304753293406325206866915599594088484817942271201001493133236124690075137511260725200048216699237549059352043369035440519740430226398746970812255397811294012317260380488531032798293086698478871716202189488020079324993333415047856414191406667244153914441027435195306642855086900721467555124186579800462774821143251733549992529351158300802273587283432893826131612061592198440088615015439003864505441016556778176679056550924615451311870581955681743160483602959843679905144487878758458255298932977882196112420337406988671501174905179689661674162514586075885798968080217760378403535288912612527664401203840317499578428076210436339134663704069464439752751304244833618974208347781382738898682810702791124035828833034545105729388302665205250258437712555217689300123783222681075456168871884660690211128913544585237752780130177431068233340539916065788668425030310494944433121603983039343418184827512693219887567337608625116901034460446663316701967405390960636026941939920378665561967712307578921245674651067071923439267105282192028505912166069713936760631632004140766857830342348337930193624675300844080979714375259018908201071810329955542361480500874947298042955887864595886395762674527292852518235165098118815930922633710301190188077485364043162324462216014811349361301569429176005671865899018153393334589877933659794869955060016798133045838404187510449934164835923228036838086488355789369922833977493647627688353125419690438579316249782330492488766948290971134308029773656368326092871964927200420935374064203501206391384813231317180944881539605775420975000694783943218812385156056803901671031661972598585789388731344097626445543940508689788318762157594168312643971798419704783456403078306193633651540850524940104335055597522329976448050686709575574940721989167689429891097434266677146702492024209466255490289173052525506355474342088256334752498197819391641471214109676215844871120352756000411036394088640990692539158075887059622512576586189947153502389534890311532848116709418233097608675900039119568909826024241920328954706492617886830521723106038001108720861343372281609701344714137388250255280852660414674194597889476131151829657659054550452069492629311446976908803228382120463433701922973814490107931908504118368817828387939717021186405218370265815857636173872762879470779673615162894378781090741436877602051368623886750269488676532461320782871751945212498562234527745376774494910703036326073320817442078437033768393092143582552067643202170770598369363079869122477573301886436328211839006846056963149756410911115000799066121733195415150890564104093189524219703514245111143755874826953291469437599746464685781133422301947562569757742688009534854433418798533424379388998955471132918713362389315517742529139312790495532816704660470797944978311527873500427760309083790385487830459895848999201818557522307651242196541645644565992621049696965161963085859092876689124960626376779910149972360564326981714364694233625005089035710793824959042620412376779133334617224943849997494423619845199513500586205714868518752040198356588520840698416162654627779297108729000206574406706976376049850630558382637135865144802047670052753156463584236447163497719403810087692062235943158503294350743066580299931521624362161524458572579047729568578090325171467050308602359579589713189818356334143218082818248026888675732267384937055179074480395316615934683791925846801718870272175292295502131591339552637688747858515843060406777767791741017617800351358052625512778711779409340634376083123523720373951262878272747349618465568333553225907877687669704376187253683141935748188231165152158746680803656991322616171800545559216368236207408297865410612811060669158340929010656841874381331653406287698190874580693697799836123202987530012821588060251817742474071829092240904030855288380979716375089181075617293183965433181250894977802452256592584209492990635989209561510196511147002112576534587057617710696855876776752450979657939923760629140246505625199660529999173892081911782238208119922456063833943612686368790680623743428370210037499753079392132543374560935843385059188841208972465955433688148222150147034686231712166564184400807880977612015185339119264872675925637387426767398862651206994629464490031786479286041763096726416819939139930280936031206881368944645230905695442581916814878909777558148458982644869275351661535478143954333805776006665208721205160453968634341485792863188956866602798724271118643689594810716407585055955393810953061601270437904915662625647903935387909471601271586932502628392044174298525023910699163323297537080256150297009734349149837823345787765808360530606335068613310731929087528419811842717915172879744249593224572076550466908390727322029172551026329784021058823851300002482473105890334254879848784023434050965176333930944252090066259716114237544770525348207470982797928740756814869083276277086207319179153999881315594983872894598094050038373444263296756504695676919691760049282400994995733499630123896197902485847882651256195751436764934136765478356701873294289288499822579648191235578902378831924942761636570977337126776972021054653626818755689244931298211057481800238233620846252285130152864423332151410991662546377884111514584628012933156607235015335262453494851869724282350115239594133255116375692149916856957558858046414136491492391398906497595544713697803421947623837494806702414847779540759005221301380559189860313692830458757979831076316768402516540851586075813412344278447380340520240180134114451768553761881173921969996094438282681532982936191250620544764351546673741090277991742030031927873335814856706668085844888194633282082242326396656689215652161486272098848606830354623310836656772117872220145950723601121217587241302810036769376509524046485295779388545250243969978273720082629633262284877116055953881955366666277903811481959691514072230937804010748925465147535558767841444834089509983109606877561474421530678144482540781272102759714199536046675484036772180145474188450589906851613776201172685236417296177799685254656230534320206652990350345821092460065518250327203987381739143782443150478696387322460818985055295795070936973209871316565646988258850473368247301989067842640252257276368117760608653794737281431138194235695182362033029120689026062167170988291257173816879024400729540619617571094840101657458741103821386538484029812424805524896686009548335040409938341739022782560167841518746257066398933681342443500693055821910879436764057695915690067133256595244426945460738063129376528779113172022934858272622440942121801335798661599160500477697765948096093081185705623406083752434763253399366453159677095738432293416302801341960212253307069563202969521450575604679235586236434760483500205547486216681571714309079548410350915769943490839606323183184423726862095966740253642055736457520939105677157698424154791640637730879659262069563758897474768910401752172570086776192612334209562375744223827151821583094877261613655136032939536095366440826359368122915169812647407991174602067368103817352078855686913936281978318543347862835654049025077212948439425336214773366527271510323961223507538032440212708399165784469413663177403653250472465430414989273978460323471649533070021910572762599822459855856410196962656836988718686412060415889646939746917009577168538052356338177410872105128406074760170982508814515696746030321074758362696382112248936490070655130196479934625299181202248598097080346555334343670665245518000346993844136264696888712148790814744566555323288243579889738634852539506007441279309002355419200414129822605062034277179730977713872887767325143271679230705629509687437065266398549980563070983182450894362165338757040102096663874141825045428314297973016080512733591526033923328753528951914687469595544620327298761915743952304516459338095005511553251853081050502596126834508221679877613940677899041070366073315120184807966812675329085513906922238196087962042116117085581722550768604852993090590830031790533707864152854643437983895343998036358317794791122584968595292411688868990706734452676131435296704199743600403098335578241708974366522893020608579039800350575270372321539802840920857920552870639375344774458456824322297088499262968807325960915575138611286031186400897334321216232088265487816490224066097928308293563152820135453989748010631244133591777839027932996397351305625248731750371979026519611034954085993955446489461237544580983587554157421194967416260776714467272486533195373529386559155729896303444614248605493475967311630247787721669590962270642324387650736445349094431414750219218359578406377000106434044112805841663761248302016595642650887612038431362416078840186937025958909327788127298278205582275045015137650312395638352528000994438793757460204182529533284162912586204439164445738697683542071291944692731170426352267993717830817615696034898999711810097639533974807769340272965209043761454815625468863287235936497283579801624167243944596692903169430326882081082934265504641778215948017548152496877674004160299327155526175084742995174391877734181454781888409024248696719905581122205506502545901662483427391409779675953072948768542674937074176019726138685928711576522318889109110787153321811833072096196428325681028712967893180649025757222035514042546961199005600749110727234308295830975732625090509203701834295680799465238704792726822573989854588397086691589909536351361543682266743790038734491909621255516662060224228951096851581997564759924415347610644589495412256300354747301745924661089003122672477873503618008874073959972335544982534130552828927619376633160094173827630558648759653209816622127281911809441435325964605022325155345903015095824092152868355212742383646923127826397650372964659297482962656003259352610507687094852663149586784429512355589842093944827164475373652990125345374387973986894122610810433850953902697574646388047535764412801581990539713985359668919581916902874433015354971600842342126317274406093731051290203342869057420057715594139229616583135293822813318009049611732842968270036330460537593904726928007668817274345549023432580223996935972585528916635617371169931389228858191649844326003745442318109952908716740588512113315343111178713232416691692189464718405162997230168898799005076913506799056658878628967618462019615135156972330540496512166675435008753528940711240885329382101152360909668951180239164042234110009143362083387894535219825069116346225973413639932754233803051376333323530538346051110295702800656934793386014400000287996253875563635368157618798479220185998722915303284186775369404782626127520908799226862133787041651417319962784710392571034619091671511103182663025179971990088943772999807960891068733108297022595961810384078018924901485713265615218546947620317742433101055256104557821240336715368251911085809101901501419238760513965652056907959722902148877458237630515954844108633263693904919831809658473039721037929717243171775572406606852411683556126523390615905254880279395533877956161904002463576422364066786725052471800734080959471416477797873802989710169385169839087331293991325405348613373009835238439897729372973558364164956186285549840948847203687203832331332111014480350257430849835678325550928641208971328585455483121158790698038088964237266354950190707588565857383263391595028574021087187636775875230661875468338691496936010825821270749424749694456475788779658438129130216662484996379360229542149959388371731111399714148233412373370579276521175137197770730421392074347604362245278114250560900139771676714525822052075839548349535758455971087887294143268558925372412545980641549169344829191438497884541010142322835415663570869223887392095363025235776997368532998684721916748342519816556565299747308480843478047539964974668781455624727865778541651695497404908471149639632803110635982934949710296667187347947942990545606649673570834988583670687653619245405406245953272851764113997254469908354808652798493717674824817379859348217715023716124586429344016059936762540236680848701307327566048831238504102978059675179415911504300508486634694624897530680216306651349838010987045686465093935705524680685191490200698855111061699230312853786720618922682691292539916629352540253153339246407760121858466398983663392750310475192422452706973127935560740262061323304926192054542516947169932074479235468724535508343542528333479848903999636090644824151570156050866534307225647576285857681929868852876177528212778256091759845821874253856467812287341926203810190462902858256658324221662831255094725969767767384324251647988823837735236424230071850203909434384440988886238382355683936515827100469589963883594336020634888114788114233818109269778782046642369221751845448783905827604175351777434156629361780054501845810213018893942001880381447862546978221661140460146680790457207651941838749391697303666434342840203046825692327391638494062220385203297957636051228362562568490294141541549926881673581815436936654215672716200449225482531237056545050125611355159228970159814409937158108169550574059282030296501856586165790334716851792115676832007516788020570407027045812539093865513926370210375074782032803009554689661876292956007353042544183216609362147585045804422636613758706769074302337628898068255177205638291919487037414842904866099164349003674110245002964516792895450914570072607455162294742149142583524741794648492663958175155528755053206499101131887630438600483266158033347641014300657356132856187421654244811802960238894372890265709242178838384683981030518842798394122336233404820067361309961058735724521944471982185756079563442117256463215768531728526496013353081425258803503455697248187497991700657466210856925628478048814303264249034557647416012258609217582707730391708365835567055403282483757470424387833424581387998511094549673645305214724024236861151255430719613853888915713700207974850556280623126808168565966922842044130031973624169600223543612958210159611930231797960654783266756818015729458222345830746782290374086022765022024887549942968951056824230941402467330059095415107559219664865397509980170439420353062617651298159458845142731873790546335813641277145675090354359347578326000347640722823322013992122968433009593054956197297237159557902082005452189920824298244285054302163772330905977374402394602765805937202059206009874066145311246114934665323273582273417609632365093151598106207564328114573528040069169697628630626533818360649154915058948752630925407602312310325036107222677590614192501673066635944649120265064721473418398032765955031839523959715953701430105688572540691264977790936039019286352518499361859147369764849001194410595722835515767061800282276675703004267256840236815835328647330509476359347368894426658580347372949237873940961748452721617720532243793772668228005913294519061551123549653141416239325898321246177462754197543427923307984718752983166769820111186364626962453633515110509132407981109644634126738791475199069594477542734113674234201015628207291414277903555655107964646325018129409396919616772189071027440166321696859884111627521223759073076065106973979615934956429457730404681083638382674465609753395733032803840647522129473128430974326427791029456115420591697291435953425705625772307458108964476894980986778612833377566820987154175611473648083339219661873659943293983671839558467929539836304795523093396697657630605125258204204922600101336963288989992420833740897404799969704839115642630076098864049276045432246175477741398339263114990074449499581792179812981625262899969569382900940390846263232153883765060412478161100522599265632774281530234891042874714713787672150106277442760232000980415719282693717716328533515909591366961511448304480459111611431597867622853267387424806019589103213251539660610709655269004687989833123455638700663314100101196699078861370377587099710419732903297206902616844845540531329659748635881456009818591812064688145214059591590685877855839593342838007658656839477042389938140733388042694430475347374391222038225102886260372014875940857235067351380216313014095836129265315884668581727523138860687416324152660541431525651117890448439644069293246931469574071345363705604710811411793352476010776088061245615935846724949165617060832161963868291830952680457315649829599031836442864914014124766051213886623398119878580436809265561920025625727790138691541770669822061605004451631878461547631208977948503982046935673816852068449206087488779338259655557209731146943319277376376962726993702918979700726558630726008851386431732981103657487801397798957478259831206347638222568098882461311134440583760691359600326244974338956707448277206849466321892795356404491526494736264644731385720811292144695552740019722177021151038903611485083727859358131167482256278537326331417956487328247536918690433812387516709127092887811580731340566601616215114449511178339065871158449047545717961217460875617442006623875492443593515117550728956532267395843820543612159962506040973939520661402028203419491187369930617971352872100529135216028164824443620346228099287192805536577456414625458021078751387218676059856869445196607432536167717709781650152471262230442631094683043899194499610253789394053999698749355049079111550344352976179301204677456929468499742163720773533111824159795560269515873580952442771645533382115457397405681856155675967285761355066786250071690785012074026092846972996306349526601276954019914055365155175441215609679724325825308526310148505104067824902636183665522095813063410614264432086824742261652805660845159201191110926841827833533652407024071339626237715766470314452404683409100072498850881206428354208241156195979557699160436877212520340996428636603749339591621217659341717897599860289331011176133733464979832810337114332758634151703669622549906163131415746674679459766472175919926397687109512125957385208578397764675440743832707961284020352232535404386896230559607476871043161997405635220249189933112843257330328235507451548397074452940546794709129694845201674694376275039225048767381627060094264927591490151763862349995425576863417141448883901632111340454698118965962277209814602423895441478023896873633840214479364287189165440688092969582403672551564028155603631636985778943790806252998778397026925923145655944937537680577199576955972853452563746054341442746824628095641159576348349517013042325925609928743337538426499524518620240033023493508237614018599225657216234602233130456856731232157914894514516179651622265033449299891652340035853978764340029450371886194799181867358382778624333476891523163290129081818200436760119260748662339196177189294535945723222651813469817058690222395491716029964354285328824043276156486376331293126598792936072683825695284192796973682761457798229279773358293793170958496257760825827361631366828628625284097047985308358379519696124033853561042804392285635912295520827360539211829810551573396840573048783451384068136789802722209458806026399009377942639170645297411881939353294758240321942411843586901352408506986697700758096090697241360525841288057336641406951078064370145392740287195970813825427244360782439881500082445384221775803116263353230714018148607507278367014175359226645951526305915187073940378228607512795536466124220265378078602473576599752315472221238377947643002164599607430632010928053292439851810452746525111402949316314648083478234976250669469403249000987770163723600102082081694718005860304281998947581042041262067853183429392280019535743458663505467645560973628059729224824938680406888128389080537332502165847533198117036076137621014218351680850150339835131244453204898920648768884087533198180308120029469353078878663403981025105508750687367706657998357578163250030285019413439416999068387281605441203214733919054503571956808590727219270875679634948396241193476288764729187556162553659559549647293953969408806756829050088186383618808493349456731221495910592285550144813950113948443714852122185465979461965308117263531210669109571057348814514068813088385490558915624211987289562787888941054013537923407484161926745804142539285480838334126463338998107379703266686453623147062870674823645430469422161891693816248790943199755893104621346042369178712890359290788631610737991179797312896743407086906347751526302219503793666816224645360769961318091623023504533399797766967499231093808294115481924386709516004578062760581046957602253525862580553637659757060134247842069206591198805088703914289126762862320787553090700968979708323851559666691447790777997676921805449414615964846128513233981550621818715859637807573916615016604429295077008872068684429404692602178476026849457948906171290498512410861602812269011435947319245083569332288227257115755092908934592605987116404637309071930557479193592770277621949900011739814827578895510745087124213720781183231198253922903781249907432372304379614109931498702899891063177042320754645393164728704715141080552556866835639813434898970043653560157109206391372631059843691222367489579225545672877942730927087179206983170979300504918885655840538399354261094131184011584634976078705767426825771790898104023578568728194360010199424070301536238995296507569638512574386405193478217649522108889071916796630098856712356911778863068658319542258385498523775948672792906444634933677119124942214689892409048890792547008367261235820971428037669095378766820744053876050450116916450180484434724213895809203176947601469554480789624265910779198956726880804289740296893263669003972883190315607132726627143465093581396632958590682089169717937196227864671911911566569359427868493788418280579569016396256675862275895442030714974899782505772828322239199890917801050280683917674826207949956563363009027782572593698105566493099293757639448554162023677497711106214109170824616478657243667352650727396764482051599531395029818361993916196615004226204195621763602268178737330361285162322366140295052660956514851071312778508501686799542483273420167854498102825603324581744807926184613213653070966375978786811435263151695891236973217499382644891022516328455789252014863483770203040987192541632310183401104619772383578300671234797794491408029458504955144602618500628440988148320404388128575837932619728209830060424419896253385363016944785079487344848452039358602118441958502802343006370706760032821091025490206563160472627974830623871572841329182609203073873609312383082218767438651300676327082590001565116657366416450969756327500489646500464205618412248301328675640236241157620063839724868695043450674416454448123127797672569167087712173461958693183307607886502670523836283433061864822139154920255773590360526940122779158711346640567068674367165477212035219866809682680232475975568255447180554033361908436696282542865000794007986443943614804129968532626149883178465663076869440148242906692183170573962127993692475299686383999278436249556791972557110718100933575791926173835726206908445966515529405900506336463286934587903397796767353839598408485137748048757860357039274970669343552316818274344588105654899255716738036833261665723907678990104298328755753922168373613844684651796573120928594149776343320340868659958601891123027294308555466986923561414696453469924439944373921338748788750508617439167487175450497173538229178163318593688015373420712533687800474098793143224142505643161204132906801087994925447001716477872610470243714810666242298302023419533803369967442821643161323764009599173582290818387676025760714163804422742329760503452182488414156142501127742708475658149821219122803236474167160312012074919204300723539600384947299236946885880287421560535142043419756183132795876840854395430187947870523014517779871484430188634861470607457139294349152941455124004457882561344648667397330993288633117344708603113548776933682269676512889243212957498874603560584544269281487816936188361332649424876696624508651840572267080235767814986409423131735207614147705094802644163094495540375938091551581099043253331259271313448887936604049432087190230795282539283822336028797444170344408949329779422401606733290545795105709101970049037434893500208022328360945450186482091696509520410079151781052467498651811060094103261516377794750995362887596580928697723254237405307727993780195857990844411220570376342135489669648763122863333045998320648502652183623325834037066137778053598675276254131653577986513873817704418126620106721460795613476396842328322107705068543014692527202452462447965934173501427924278422209560755423690327712759913192266305276424391070155113953001938365606264201714223565458632199543851914015746232837018543001273752658876239909402242894419900661468105071040677152132104045908520869135545972279471512789126380069219128465068253247076474442756147777661317265264973116325535705622890877789315336743644167421115519003705921146008679711874293930312043349039425549129049632061717964015735189355476663873200619924797617288392857085410343506038219176631749856209571838200014027066033401261421950075208759932486234272656443040455419468342590395210532404374132021226968449532446475239295217993975394021653516852852041670869241541215667657899546460223247408297907088122130612785202477168061507389138363180521754064633227770255169969743801424757701567646468273323879152347566941838813050271087290350657788826995975596505735258013166239887972322843198586416252328236986745612248786800385247089318756891934340466678462694615555185053980928421565584629378987736678187648439489543974712937918727645051669149299466337920131345311789732618680212675731961508640543927216149324818048327686478701355215104543197393941851626297087675899985509283965554807829695457658159152985181736523551740051798603780595748523012366433231936911199529977132820912750811785089273162305695292857585875314963495759369656756395808248713601554298894324759365222417327882266290177850615038411223783177942559746665560104941687510923399202582719074409254586121696893654698467245863869092433100612095584111118176326357040827499037927681789844763774836615607546834535519820647356282940428624406230267109991495214188906563865882963992632011795278748301698481603261643180359493895201443518215027051238266371593334650191629610746871843746492627508893151142715621142876025207136105859789349439449190395612544738640910618632562798596635794188593274254864584755671574903499974665200367581164082084115820773779482900968238157788593130072440303479669275375524728645574896585935464488724952048719197270700678005654245854325629289360126252010875887320802048483379096029821125273507363474067619635335792619473301268077976406554270713343138065975505875111852079140836575424098409946224469660347149563430617192048372197110631556273190626588717054154179696823547069388513577685715570151969540491785907599756567006947072613210038844862965957849710989511016801095038188148484228820299798531890142672402309963174311732149126736397766841562547801701676455303287818984818437208474605670468266090136942611283769199746651516724412959987321981586726026180928532999432310041076400750150539381819076189431481312726607234774237154506348177238256187327971004248266642769338611904761546893624650089707095886802144314196035547715261802659814195491860349455278127531395429465654585042688431382321833171133035705426415220615922311572254211845813427606087092512571284656136250712744026981809272597949443784212804770066062642254632386246053905398827376505508936503989331685131769368148567952267982530414323347828427665698541386486261916853762667396814837762807295258005931364259591116666090368165471065931239495468100322028731640418531360208716047911863482044403449806465445789679911246079787465894437213434832263745603549918801956268078127252236447713101497866157461299295364332993603690075800434962860924323275934944464607263423794438394674398661592799081869820446661731570059157968504071893518697546245510969033889318105249253279434695968534114507307671766763963289383140342285965750439337334344672969803082089474945823539850054573949717415066128567595589286265447680318991517414087993113467025196944912598274522708179389546733179991261744879282989539638510020681927274323899464390264703953326161350086285769859843151478552156768886214457584287481992359917162313444236823759088859361327386257529968007571456173887897337220875137848966732446261269231356276496536126938037149034727738553774663960546915960637843436802164034878963379155251202374117095633557832857743618752809380865478171195074715735940222317841882899948761840714110052862262959678310640794198132578160723597299936932350536528144029427463978514835001462501350434487641985516034764530608113277021968416657122141779602162140089077940216472260812443836802383876376451327986369495632538785117760128970122689075221929675736866955180206747676732232140187965333002740842365389714953556575930843736265493039056462046419942893536459594021629905165273525450097889173671084165088315340669216634988040650168793876004735296218506289261919821969622870415685666869454685966026644105533344778558044662390357502092769163195583154523339476346034797240876953472184376852336421794074816669242850265269247826293549142289685410651169558019564827272289102921673018815195635325060573172634984285239614739622982220428586459360592513880467071976832683341768556280023625087275979337772086941872536287845916708901906392920891903007598155967286018341552489856725952371419183649245233892809191209551704762414086403408551029466425055354324991403607426964833262666094957957569634712007220015052734428261239235077187266344332361021686847935925847414249098162045673834952694485580664499597309094987908765491208164255535161674271422591628590298542912091745129661628447964899774923448096037937541863482310426829470855230313265223330577890139299745718880348722128491248533748540653654578804661299674635006452107223419730797061948082466841264452143616287793967598612336173195183117535036752840435871036193635301977597289855069675847656473719582816167809274019602174437533285773525890793275940850438157186930784776597651273198459350534560420190527301879705643021146008735864706082411666475298394225451461249745254534839301456627683336366624749404776575171101280653614138973962868909697695740869922505677912124883863150773751875926832870647016941718527979348133537139900277820646062384460637168540016370835302352315902393305100617178553141632321758505850651870338091314165452394447344740661533141746628965022416351948086690632753489533143116620837555268316015442647594642502871472774285087310214733518475017333163960208551024733243511740607440464201308802428534520547408040458188753766033121977021508134760941665441988760986284042252610841898269392987565587775406699802084212636363889392868277415499937276750513130470636241792150724539254455674671114981928275273510118956441017336555379408887743551687182326682980640823216300050137944918895619470929320825149815030631268355780723556362012048448890355542077506239652525841022337773923745452764404890903510466449593920025719616843625131794481189202971272516468272327122814685058162274164802789194874045154469014187589446370780824140123208975236701186821146013437068374305309981075775623668786689776399796040268937033389048654765702675309506586604876717405513305482379982787436139919064269590444414047410730337292765956165381150365766502727810571280813037898713630374640810097996686966484700830593930718478674180734098215459108819857229085650770204075840897455266516470194958899099508817063310643843447722839053162227470918020292105059402346527118324698702444299110719703952641670488347129565753221763241604860028225611093286434025812417340214349940695120461259553322297074807463456671935015067638037312367341300908762724366427399004459414533804185269784906010341443686370236909689975210593896247046864903817479285906181931442659772440537119941608159416513498223645540503185141596922340891707712952066438261531449358633605144482878361828285138593853503170927122151126540836169282005970579031775879233407110670355739037984813555009487205101397011850922456514786704372234098023358237796711079121472371213966000903858939381486066876580498041586835171553829841754827403347189784076165680784976157649021513329863198645923139491300813633764517711980343804010178631298308461722037397909058576486034756221764123850305687063311391646389141544287050930155505572370639737398656859796023600906351988419824526586487595962575672073569332103007995865208318001557562248776643275462113350433642919948590820907884558810699092805706673490980576959928852646798363697915445302710676933614565341327031059121514164430904655775492593294430853005860894229603859128147169858870397370743323449437623665012885297734837208280766325263801795650887712066582789357477795671169140845408387808134768119917926934071080726873641029561324047093039829335145488936009697126863012343625729356736836653948490816798103156494996931937240221619752731667127426778765934102083814440993044388162450984457948590600553470376774354728297129067218489961660376343682103673192664512669829502473559245107164347123197756535326852217600362942291110112602997249325639705261840061572919699642670996049187398091511154505886598079092149158689600285277494578094153268004142609368476729194508410459635756605760761807250391005138241272659275565916054131010778618324078849938692658321587762658761026621007163917220038885200440097238900145997480858827694192820157037613247853371472287718539536811083343651081813795173786522604511749518681373590081771790041034123871937743979737170285435641391927152253783888816832476604085265763805835245153279812438007174972962642651614557801386851606763261334983826267091688212980743443605130488357413466679523258963539715988775992991469741685789834748463391833064771834997071385432237737304304706475843436259909349631187833640606315964731724543909242984990012404596420132620327434705876631341892763996679321672521826992925318462750010613312540602735349101649418003987787266135984939193504887343031362680907915526181939098862490631585373543660966712876838263565388054844004083922341087243092916185143506320271924127932991342945726763710009525660641256989506450839019528884428119327168160705939439427780706673482393134228787469287268594272714925897798679032166999244214010672980615024326705179316548982880747331137331473728609511799692300642000726996841169123476211019728934453938452804961705864259731859483325461693950856676462097257501522447960830655437396496972706158622832084193093728733743496813027608239796890017604341174510423064712780202031748307840176674649346233431085860507867331305230529388927973817821173649684270679732100838368905981322963154814372970499623285588179104333882436535959704424975808163359772786327373797368783469466589609113750681928738883318558990277566910052644501541539042476487929106718675150150561381572198685035896268822925979559629279697087435736718852623111009888210874705317843682356375049646475010226652905842976623201958601185853684952138324536272823693176501075482014048344143709812541087943391295883023690915514713506849779414757664855592623917589224274940108079769477320508606430659550320050842010348312366015546043264487813213284203753466243877700661917663716769225485318376535554073010170119184131151871982079369277256996459041220082277753126874499177002458610236696475297162491568895986244147212453378740115651228932310608738722562199187594171519716390284323564254031357202459232539905725931140606042019300166437979287265028718780293780051035056373381771876809321687542185006668961681782006815945220977583929330024410838577210012537755601059404166629457039509222539086730449559455578592415925462031210773449301705128851679159933320807574528623175409285641796008575245135138713274958397568734129517170756398977075037745020413706558874436599090742089921654923087694810967488493097037456768320494132488888860527764977705296742892797055051026850320961615831830706507562949418854314076377601376237869338224748310566988502262505430760540428311493244929367085790369227007843443489099632303178096411842998672695567429322753616193386396891204925742929369212487350958754029931968284540734502291268742317186414010433535255731099394383332935267489832914626892582815722926035636399207542760026679022662719439937898867334811338952276118911037480408915474574405935560917632256110422268916387669688209765376247649424589300487575960817890800614219331147606020218105864041047746391797396033245882841678019104279079934557476096797004209610935888157781230529200809035331566702355657205484206903073568651160542220257552520377800973136425315378275368712622322996998517558826880254904394937507973106894214615388996941161205896761864034258846585909193996496719401449414297673067330984205523295292566236995183655422295154579432351614611120030523584455202190044234636498083922406188422286381751344388272603616222649828079761855560993362499906291219199072270843976650079335659626880811954808606795919904661726728010609520224947479586389991292788086264298603673826589052061449639682480270806480672305408796616146489967744548979077675976818088468852520985283852449824608137560689019027467101955994298120917829572103698027497947837867770598219714179261741927118845461119544512195357242035038758527459031690742961727639948076260103120102533377053537614408001476908986310214730747853203880629249693494090544458208778898273738682633683923683709913244175984074198755766267262834394864172291923436923089640484321452054030872547286338211482052468554706774491265802971839006665138886055434105206117004290141204624470921253082471160859412903663366293705574004472060502062148477777182847856374209366138069209499343178313829740412534053340212291141412452856133003473791409898074113317789934302959262097935240313955566918063877969111444046509899762703732698793170181761585635969092258215717334087647483185964368075769444497844846313669308136407221164868168720693845923383730933575217521841314035828341437295097746530257052571825967910194574791017354901748182659635792179422651599066003355456967583146237786372594326433171947958632454663996951883938108539265682514645664759430459142370877193623933300623459590283791083990768799289826953122449961641681895738071473132806459231514706543770354808795521833347657585145257982369206608373646250167588074159317143105642768194389965978718162933109057511283285870208552777127681663467512817004210132486275860663713740687381871681142171661054813778644883216154507679777587473490155832603984090646641576687843915723510172403371988480591220598696320109363098552427667819689991006580673823155424913236305919037829284575518194610684887744991695153968553307020318636037531134374622563720571475423606587177902252966627653468013771068448444724966481771621247945071361976299078585215538349076477508625913680778397669193083963060468028634259046137276019209268608463056475895564490467657916878730595020975337212714408432910039143684948761473255358601785053186725974146762135491146866729354239385844985287405150893493669886802173183778450366163697284958491342703470705594849115196115471065096745614531600564401775454958216303838990343794127321481131745306569849974320002521343140323326444615285146561276970070861581625071008464644299910295859852766128387859153653563761224717120940698722727546166469934811339802582212740409899299636263354563857964689863984827708318932463512471808510987806383066441870214680214207332098343767229046860944993652541203899027450902083921428593350695841469341420213615528654757543121627047920534324666073803563255123943670313949380699341212800095651974135903198398852809572967896391736421208244532176179976626170449282207331913759088892556571816855366803379561084271500358648383595370182264206539817005168266440318998961231399479087168654005492990881210067941047713583501707899224715539109213715966742693907239842173780853022722085196632331727374520859965726611946023945915984929410957932378365909852932665573688599754142823607308227226849218475803445206571046465243041406845761518352655442425762282311987676040274355424870796984379690261852898972213426456258510215484967571846027803228862120963784876849180892847773908161321481341433965330266425545242037778327404528793508586234305337726413844422275996122435533373814706394874232803365676905620050790359500305062767690859872054261861775251814159416495425530152866412511843674639060679802022651048913431869232863997758592369401749749668726634913602784956853319596144358886511571738399101735016100713255839513224021825635737277252478946555843049169577375919093983288169181572435247143613507437638923682706199490044797904278545944432455527510606030802729494760905566292803974275225551279905947556677354271622974613590428502367163000853502820826087181338431855336531710591321958884499165207752319377077043366964480193415986738348869871208018383628966786128471765746991365641411774424243714954332179493847037943360807569935019357379329857208031797446461501701969241456025523266940954096006089165215945074175336677449445729558907183998956213741529537735627240263022221006472566006264850047767709311622823352004499366909805342025145054364518265579335243654969902908283592159416962817310901997250719080111773215203665818423535762223573210343746141653729898262629493145521407777637411718274481058290250166226506776586943951073425866286639317660998160727453838801066058584506013255773833929610664042058102157209007953610153405246933418075295356580676899741472182815241895279870368012879616210103531682637372443488322919893266024010098636702928995920949622712884554629915117045142599904665617154899895319646549271849104876175013321093322728924954785532467268738180140148545769359196987307462631874209937771883419390196679112459078803140158894153354607895082562003270723793825685891732074642488971766370352130576713330193712335573486946278193099584759875135692356048674933507142037637383432117708384385356085298881411266628645295803130685440087629514434670780533638883957121363991477042238544937065670833858696110276541899544022330427991153215941566593020125472012911356581725093438463314128558681133071925476411711092080688778942160570685616708129726789725006178721872904899927620230987620390956971663071714533296151649145495781311635028560092177153301386924358703930428644742853065213898645873644213269618574482846969938691871080907261713847547561233731683576135418840942439465420667108292299527914664477758787153966074432655918477222237134518268065937642880433035029697936772870974607892072529508468542488028051165856985306303744580668747953272863910453178818678948521332529525958776331121597465543484036455887191796614271914049921486745213853204080780599800975274569718448125855797465333806521744152032707450590476458067820774651402127556258882337522490438984528527001156590279515418748868646616840404738273062678539459073130181089635709229388356839798095902707218789815332266926498339885664526531619358893383306776958274833931982358118672282072190762057336551453574419613138864860358739845090246968612723070558061704014495266695980714785618004769370109756801908980439741659042119028007912068142041668824641326302126765802780916969146060288275950301206452834842583462578078834250623148571912144049206761254950411625792236166425434618464593889351893685161168659060609059797915740054678120815989927572170731885816855590788999141161796069639985494645573516633601130135386214263396735306560899453436636082813747594696054434838030149923832603712817427489974291309754596036598507550604132522641946278164900586729679669633601930917679807079187411634005168841655704756139638960108128116299871087409058151224659764316383238614799313716135509105427906410669136558956586432594625146719682805021745142913415539851365876267759737619916144461826127141399657634297776659058929044910447987278038885710745893314964028690868590395858836872722515390764190260318089298417505929429933697950015687208966999000527785227408686050883294813304589696037510112639456399481897231484751826494338504222821829025251986386372092959086323225699260446867303767897282956866856931261261793701776702909840659315808543255138501027546583385376675679396402763268506941147882612246759581474144178970325512513790094032726765502302543670753447150939093716626197154303699643765223407287443939536586611249892438029974131873223881392086386298800031884773208800890555248489876712251289416704826987254051881372514380472129724307231905948255111966770722554818139807739610826941378897033532998414545743926732191579424370118502359433375681671059697165718506151703314360499416786762666645998540591613647122067775057882208387414818718473456974119621785549605168390495456503672831336779699093721889250879657046326929530344441159857952011478242754230968063120864007743324125178778930294929882201912480479306857309879177784383770084008779450075853569198629353727349704683673231912281088143557466252641379797948491206171733480823076493368186103727696411657703970706865318629747358799935752321605856111461984792404140685988761263821832007644812077140698053069409245220907881398647488373517563266642137448092829902907951791204245157024042812008409772984192504127048925827883865349031022452589350924351918018413598824534255863325689129977191807500873698915185910032127772705467163002621196327614003693168779239391921744220716705451467515710734507676561674366411454865287309490104780931137111500650022394505240896251920081480305613036821562772125117812889398497299867669765826462998087941714379967492487112430894825251335471723553585127432986364455252132868291865942952939583398586633936074529181696841963040405897178909504580577536883285336356173128315976202479964606291105776137018343416491573510224024114013288598762320489970050747515701886663267503927158781627229804482926779154507638694550185654160761479625429083914390527267102587837824965921983907880883665694977364510010412546735203026770720021062327392232894839259381745045618616869517551985478845912374136515454360228995351656405436767016187039717798745478142302498752574148317226891817182302398569580529921812441793988861248574407291766480924093267588114732878928385040305187239110864705392777138109182632258116995367741396004511431650008718376601111926112238297052393330074229179313098227865095674522895953801156596542936868666107416969625673408814759773639841116164362217741003206528386026028888988037887214465353271604618313192063646943462248776185677232344666735351775072676729199481708573497721773245299749427524970104105320312129535108766964537903508862501702091134321582879812029903713780395177854640684765651808288991682627767170412078976796332130891725281667217829156097817846003798568098607706614316130161660167328431302748350257881300664860464063630471723982455157175902975292305000211854038441106798710966146895117732685488504996802065780734645212957674020584842139879331621796834129908177918498623369423109530493250592853545559078975398056139355743139706046142850557542289460469687739157280284339188329286046417760618625314904836296048316448349536716367347722723213017962218090488884935286730451670260208117587041178988715484422197876275656747479388410216798370480932833686673129039645188495327479375905296369730541988233838113869541331236191714406099891101458790127979438131467908592258188278093920512146226866612234746449331546755267449635833228212570477807123290385695902103665941621247951188798632305703654549981951022703093023017628200217072306323128790730976796135916659755459204523608610217443347374258955767470887103326057157710622173993932927207980309326624734902205351343984023279227968610473945231705379243708456573452106644316577631862700489074044167225260232811600551067828976741396702714695880551478824022884702911846995505316875389658715538830200627405709075210737148099722543856979854392722069900403151251254449863346254593923113494034461943465017929873042479467712641503402433754595615367199991644370031015381520605580889296117414274752467633517849209688479751036363848118286160616244303999810008488345242690817339295355369618505280345703548726661231646921072706874851204811282395946397595991913383053462708021271001426575253250980691666139420980175541153882175906185000566915120372565592217723725816344753434745472173157952829416246755880173343298868589374362121055286160462025131240694933353341585937975193886337209312303620653640640642341337085799229590401022348810735907013219761157992600061144496576232050969938596935912192894888127279581731649914245652719234847903828711056706882465285099240949469647450545282480552198065832677078259274745182166211503830733526000271636025345102377648283995314256984428808164865494725963081868273648655026692859000795955406938354798428227564552545737095231869400890443762421913566669439109426478669718729936651482061483205386076408638404720463696216977846618121887004267056564158368100595941942591082317260261139056191672181869066773899726095063574231270494966634622179214250818673980782961601411221477423013952147162123417659882198604240055688886709206791591515394065866470688405763422192743081000700669558084909703230999369084471885656800589117013264298295083764641453754118165796303171925686081041373478883319166273502818733912989664890419045324721391118277022519070041576778192254730568623077342280166013508745264770173116204800173169345435042309653869822542927796858857909731485554892913247811154688340561711406995060487337396158349465549237630637556748499680982176852139012517036352470691520066168345653031466964951368557203191675580756462392042594894607219468648466065124786680706836995832299430097671209352445689188846522157980879988765050758917288847442113032892516049374310581035551893862291934963953191245739258303450864417340634779712365017712351585056702207978853747260931282223743308822564339634368317684258758909943644624998579482770780151532875204913011804525060548463309502807145743248989257920099109233667014566090923457871728935096058539967436767605016123182110229052359030082059351534002289775193647419330805425712959447858723941094365648548264410035394055986185401647295824895323783893654247316240663090834387306414917101648322336087052293824429767768713979779873433437222805959323043745604612484104990020161469464659562124953067750353527645318339473065012190841704819796491323815444095252035865853136540767824106244108315056396114220148600595082898720259315381042496512376051889207996106502242976041311129248427437206135672373215732004776571896058582665851044829380638441922254672900519366283380395847179989449369123285694821089337869093765723331904419551160698916611631931847035917077158209933979585686639869240876324963637907561199625090126369903491688858243488420032575944649806684052380876882201225267521993039479050003574623678930628201792442037153429624724891278083451614752100382544875897732790018205417870961099606684979014242480881676479263169994327733974392324475734586652489842292189700413671435157065947003885947185725936342569748353537560438105979645989439968826066959309150895391530388599616828007049996461035375454036704625005042669596739314746624313969863009343043408737223056925032204920973648436208992681437724643718811906806324897667645850366467782253919947015032098128339680686584385180290331866317404949094612177842899828132295364694906651503319815929183317402531666807117707831560238645445012442328950012982814903641118285829196609472782429546897121643544211493684840195090133825822537967278532808462362682653129398066353462728074609304189532805694752340299770366307493374999250394924042587034035021391900710293428412717099875410122323752733742173565278504589190225583728672465656651724833784028812923729779971510112653843800561178325307677585088971579182304072842756863893757857078751360719512960294100875242216937908969650066743596603795278977004325173745462430649135480524712838108584051106635992017364083985826323963583931926662574172796298609928246472373397723463109949808896073402812819308883104705121074785803140589021483223714353717032970032756181085479557868425010979985024311703249099695436317748853119259459657459228396271694394971372230636849472677555633728583622518689467886947538595723348401298493294536596201337040000174030102031118462375697512839192959371665040280108499580581897867195590326108583208399691983026776978799764069915838278915616830060175293232309627451460648763530152464888656285914779755077339502004049413646231107296667423104433071825992106848812869680799982222228310009497519371387079319317446352791671151024634416432374110379639695739657924078268919257757601152645396077709559746830296705521695850455481459706560153698810813529137808457748919569767584398837816027883624177664138648043789930456662531405298787426065374851155318718905788335592034817445821994042409999687668795793640710135925783437039422306560100466483448198756169609663969456897589774283910783060905682757713000493372452848338757951382232209043029984969747998939753976725718457078844564193420785565031821280687570802297776976064855609610868344638856112458443413165269762763088792587947264819062233312666490035492161208018844680777120231985935943676645338739350901125368675906652832856809580699383773577840261534887435768205771896549167064641150370126836814727349112751992981624533497561904109976799407243003474407180819420582081210753281372811550596324360608532122641292480960862322141839781637386877957486605397305175664441041969401413452420348735229958893413485532021327484696166079195869983816689198552438264638112542157880878784870152773044086247621988907113636488874685254681739337513054863177759480552552155567039515792427291341290575573863777457867676263576519574125985441748030879095760738274367635725309986225878844124100786530595519320641337769290370384801402149664588216663543596386116018988437232665806029034514981236951097299223209604299342737202586489608584723988209753374811986328401405933683360443976142388227231267078503080627512067453395183456320632407620183634461906790200546085976120942308837128055359735691322179435699868997888587601552045989415971631511818524348236197803660548744650396237870139896789322074106610013884700367411709930298522681981009681660731503332677236366073013980217034597036747059339174122543786644007301827985871485990731390960394414471386807101136271618140930958496810305570784199630692528252552774046294385406771123648201525906817722563716406013214676715223984992392350010361439257053900142313076114096466042791811095150563923920884029960570125019808415436184004640530605770446236276382035608895794865680202776715217379791528615302996228639192160716086256481799863828006106296680745132924091571100400376346935234442140343125728245349227387577518631174465834788006713715319749876915317915698622373053749133654849950760848661422846342567449295613137555350887343640512994548650959197850668195639250896132861171643034485725588885371361935730117905722643982977514991375762052731104349096042186552027874492773716307855787356574100967128751813621386396271442357177723562375392691503370252726413609097938685822289952433839894830063099112284387596973259974773167401433498641523434172936435391902969458241073965857350917310275784404317627968555147452285713398990407308375655054646648827394574823141747131477316480147936302067948200067323380630154194474354149555071232205885468825236281801471961312377351888619674380019748722819092602141448128575934409668605890832831521651043011913206325192150268047853759161354392659320048168742075327009657076234075246619398907999352015949598448956661211022838236549954444676047911777696458250089435370445261643130353532511241915846839320960807534828708849411167504420473688929926774102566055129891484462954669049526902447547017565913184134426565062922667621111143991251481900015523195157488586713588602753918744002458206995718626271113624800010777127006996674307325217479799037463954178600554062026822187199508649213858768954008550922508629205161794972135176061315922314217304348824256282895707340751177439157262663570571974555110622221547100127443148428814609341806308017140198279822384126236034681947679860327992247524400504907212454234823451149948176204523123437832981063527349758579280079227979176411820900761475914256044858861717447460313731691093389813030653004579166490311800880760355900886193816061939401833905342301812991703871763511732865142211509008312904607145756452642991923346475458382628515832306037519905056379490293988676567321193654698884898214161260551624142675626321269802170953139790680449113172982014858183140178408737276346661724676759136298664665408338631549131491807252511194626160220065917713402274851726829123711646320365099869323805099315247682893728167881836348784876846105778482964695246232421259935426331187032886942876206261302408754345893749199649616440109406363136883302135491292976186544828290842264126082691641166967976897823767438600917977802132041785415093096238620289532054024553993353469860073085321731034761153289870373568257587968686316193519239026732880289657115991759718916669613384258665549666075551948320292380720777884829184351522831194634214319284791111375748881230488520896706050063018410731427437437364341481487594924892588258071898715131157440702923192132897323534009925475153608025476618925662243910223831141514834996754032833151025436044033243889846258391387031621377706344232440364867634710076985657839795105942421668078168277814895369750366924617882692244911241121540789627049226690706471414507140184696358433253960718707371776836726259501323001663883016099743916668991145786084334681950305661893942111803748631318120673967932256460519041101382000806192870491391427976576943549081366396830547953001270280785707645500254242572138455983338541252229766593041135588284714543827912092783670567904031157584472806010784958606012194503888157578741409223108249269957992490377710347130243938744872530945622205609481228622544845964838165040008194418341958574222558686290584189948757377300896808436623246484804870469738360318444082177484917352906413421947175079546215974021845765924202283737292111886035996328465482039079042651899846771131070483049783403789527617747728916965227941400745274596267547060720868368478996551893146678354240537727127681983344789146326282359715313081845557669475204191647568648848733916855695110732224017846568408145961865338738697817711958993965924480223002753518293957460085714817605961099517814722896099015870189603652849887479823815917757481529184671991591727806147432576719875007031551843173210139322293926638790426537191704703828014484254047975737625125337870168472930927729749197627141900060136894812923380244743479651888752584182506546415665528779429851103540067385037788147836777399571090013645790087846249381072298678084364601117205715463595846819298191342419894417137115917834879040847628433238083844392156230172697691543405280129320233456423181671992294909185186590587961463877766122681416146016365165142564461365619956297104503748013707812595642562581564819853501422109457164545527714831271252769926006525440561660056108135055474333114720052100190640415163982617865671429084409550577162260139596406431219200890821167994709455822798987670519063914020459644638267457653192217626216779832895870924960979420707188587406127477937095857672673698600475854139985342833798273425956577836476073451203911995662525841068046808075634394858610936017894921349085418203637812578771210809510623755655773461005948102914785125474716913454038849110884124532221843690256887439996171383729951589969635003237309739437250116139694679658770947247318954941572276455220117838813964454695429883434000342726648510934847670526074670534697275591963222114889350371132374143019179520740478272603715255174054884930936462730688981428027161366582945602994225670229671437426857001591344485881903465191910245621263263246559962693089298405489203417014019976044432401639035254043469060431571401211506517177971698173815031404451593657175423858293198042969656418054163931849626247785638007383207204697751927345692132231057091140182612116081615842266269958050550412493511345191186197453158843811888436068860998976868752903737307039559831495460558599483358391958184530491794904862002512078345654245128930243343506390021603166202250225103425656087284633181867137399554719396725947251233191082498823657402476023176711790834384952788530472388736718202423632114871657185345933348250173652713500284006570185385438493492271771471793557470788548104763029859094056322292266349132351487427529727514796102711114352071648771995152443503756809658858993316166114837454776583095209082914914192562552542017560714816142064573893313104103747332793107546143878541276717423950006013928259864428108700515038424395273273157126735237019641613104854505389388936796792734831015082277862697385251014665042556211221721838524544082435886796467477221301394689022021765465538986620516271105666208842312874899685801974334786465715776209208557672903785906233230284516090534801029188890290220986375577529493572555184680660965569389818888691984327679688231792754409988912310837024191224544475405296304181815618503390317239405044886389665253450084056280284645213684204772563386379881911269673376356261635144666361144777619590736500980326643280550422788392047095190432411620226384179441192671515701287529533227409808835405825669052192217274940052949780042926553844520436034066150621372469555487353855599295758159426059411483177624726273611669086467354704872685537154083336606521670529440651682739220634607628548509094888786645785759094039396771913528803478781192621479305601824923413071315575287588995239339204195817635115844029401716663300197025269427204761791210858235781741296754908178825788902553979386336337475239279117252013373945554916989325094959174343677824034859811888796555134386418737263235782329729622257897215771565305431204478159328144497217921693485069881015119880917034721475554009809311039340080647438670443220130863890863242238052447153656561037824863748335507133743791030931391946517636554338596475996923742479166919809725368459633365103237446457727874335733300133779337371085820375863445089449708987249180966554667174657776335443246148773036757102069975492621029423246747948094489282223024072637947063106689995546089918664535935944878328511885940833343007733858312919818863641916721895288776956091835745795699160881072366938827330868802614201707426673714256567024303240755912029642443513284799962310226174984419742308799812953588708465091364633596176250035770902277262325133464693220619891432703521868200066345974738460158102142752614909501846229632041562160227005081368004218590101980336330427861857320174900860347628303478961873851767097808447400826144597254946265210884637891326631483302591369037959596470937762966308684337527642178492152763576565591711829620404172128069337118712722895210296610705110715027558384547457277537354863787552576319106138182417566911395472594035180397155304841691715537736664212217730614790090746804481060878628691708807346223152977606526045579235120940612364907872225610057725111694914102237594718978516738149154757294137430933807348107329783756549177317222387797441135968483978213647065719151169593086333652260108688810315433052350724993054168203771934124915270211480754302699162391642189361693867435293594940902915378445519602024709975106508646515012608338540797159795434492289425609318920675138118073983288066577809083230773758214695080338973023458055060780689610624599847229314373367321557021162693492279244324508902606065564026531660805080499997063261845893064491693781069365889038178801854750312848416962388417195487040311776348151246072301435234499254386138774185969333359633219108824072950352789323291276006515694038515990270693577831061703102775550518044978920520844421325583307004895207469772031813400935951040234322097398099255005972551522085184163669466420458444495938984092699969386317656309728774135211184357677054285753406303876801488516032805711941902400608333003944155864484589297225872871854963801215935756620560226367762314278859685991140013671715102882384097052974415505739144146373978386962473673666404226862327051533505829610184089229232921996310100224813646210903601035792232982126272635894349461341779011862678951462390126488278610500051803285532930345335498709074500842961242909664330212367107308447459820920214254478415384291548085057939217815523979812592071372967944668944383678493942969721968948878034011174165242365424743725658793054299638798459015627606944114863639487553611675523626431648109899501120434948597920333413492047329778261423914756121725142659374482207601572581677216868006281865372657548586102211173732373781927038479669001069767976252020698045758499478585097987142669151023008141542230647372639745396041085881881200860631745062861401179824535142506638953939336709306482058002547645767304867272531000417401979317805995844300232466160115249393332582911384700293461598491930072667156896647677042272030479479227675498741785956512878384516561203283990337985760438358130044301208679927036475984095539514784212428426119793482922744568715846437273098883840043537352873647732500972717195875382624354765766304568505640711706395019818572230483156851623841342006422162192484280428238665739546750314084601431377468605622955536901135552176559434850558178812151050328555776349776401776865280394957393003069418401063684227895901166939430067345312148514288658138769951916054938220879607650963027447747880261902112856943978838400374657883850240521041185181559640311211569736573019770823591154527978383085161447563937975573649387755788885406229786213473102457715338596983800102715747678592751968672754658859645694043043075952146623717126075839677232345474488275831520880883176706753845871879536130948278300700935559337033284958440760155229910311837836527864417281949108576424750832193235033817641605854785906658824222467558744034358838831521679433233102799921991519812868054070591716954148618665796692569375804009381058257496658455956809989274542709305992572996992379693890985010264436851599996507246871958085940200670161866710080113156962620770162448156406335902106963316425430119169358530052585779125554550221128639487582903533412152618076780046254284344177246451838096406536015155635304148259411459364443915977938375906773479647515069832077201278932133709519053485153775333971496198418789020127359782603180696727049401694655274074442375548633222366857664778508190332081893999379882825495169074621566358596939080360982707754119424666402195123473585763054902693983330310279393027196957451321124472433648304044694101213271650570295974752679850524212261826137357135991897943737198102492582512173877733344803648601490626629325678382516870284716086843629816416934788069701879632199836022920850230040506044786218399723192610046013276847844393036997606016261897640074338236784188945741230751055205677977552858578661423321787233729510398918547549372018484182219154325770442090439202341368153567198431422376950337013227198754757206331648164392219071620614655837257543596685969347344375743710281564673580616083695148033792867646664037370228936692369660497775646000032051030735717129773692167916684495175210279105265687167804906143627153296439266708246669035396389751456279498246681239054064831836824113811390116232041228239931849897817142342857228956985385937278068361069806195679197172049989614046981615652175302705111227185370235870137760387452229149665715528541239193134367674595951789876259571291023116722825113809525520269224849644058462378885908020567700068487151451070806482293609359673249466148184670412545542910975738558414651626820722765054223051713066839504245147334241435548502753263041451059329230666276745491180836684932948269646151209186670250631918669951933550672404058304318474441325064359228123400381393639289675572016072291749442473859045294163021265835265209471555694412840715608779806100296138460827548222069237222361560046676919985781716672928145344114124754125260492110528206494120265492888612197258423660547888908271478560244419605335707041871079799983938993048989528731904743421415482028374379309699066780939735641367778343370306189132894135304905789160797202119303533092653149088612076534790917204995409705774415122413167119127673360534062483450765596980244667622671922604106623871235657592420898930563424530961899836749216328096896544455079987218975340271453900181965579281637389594605782946224809204657437692178949669594395178358191897240041007149248885666015414942811150399711650120240255199112068043606249414327298999947872408734800439376981954716726396178268848173423270290656856463072116262783373837198592103883450461229912102703551798824890650676087728901930831097464392428997113322416448372560698055085194484074041870707498744126861679601428266805955468779879952696376211934591972384782570622073430275421506325892277778543177884226242079640478521651293121780392424820968117323869694609388243628426593530306922261615439943039231204575452874949494431966993857821278724455980358000595304537555441235721014962112619086143111337232296264566307745040680316059169299742927322484223459084384872595099982384903551645920110089105938658761810344984547462737890659528433190000151384383481851050613142787846301572602259965374720763398122915785214309515649583783133493848614390091298745994634696128198407262157741489722139571517740263817154206599572758654889788013920659154777931403064066677546886456258678730868611111921942035250942681133874096737145528387001525568011857611856468227693270707175397096378976401585074431300203188116023344430320095097827161737924127189599087081796218759758967541751190968771257714238394525043085214011886659893426856262197604589143946158349970436249296699832970611609347944416906946213564812286193286310152612039782057505225201563068685737834058611095456987749326777505568230950320036567282517466398749833273783728309930295515840226127875596047225737198374079274683545587815031915337367392949859479824125552605147781145343770256848176821064703991011940167547651509063242476340588093759786488653192370548450324208437673344387116333626236029778458299045542638604907969837282597733275184359658279431165322830931993226278135854542454722702073489859908161976396619157305945127075057437882577356873442258674986708183105659732738482541174884213035771137966811165693648478532412810206109416331626987024666962808600836653603948541751074022313490009017303124304680355599798735695733412537630579421161648012073198157088399290672878714261788179798092806807912749716501436783237727857092662912571150845113724804761056868331555971110288076762034864873677250113582728479433367904629436547362357197598182351203890205165148230591387624331074346503322465591891127091937074248641767733267200948016683927136272314965546520597704078652151035804883350502680043496192423966656998189239985329635721979560223150880477606849412366194721925735764954633017285867760076861791559955961352886403088907757029330051808352934393926333897380096158171700942999760361709619048078286766192114443357278528457676960569011646777226910167366204475646091404829892923428945839702591793078204685521306191294684733235241208343629118563238794797630051783738093839542030095125835540806821635390889468021274415818326178136284445281465279324658819723936216302793661633003980894330898149746182379993277291914577363791676261909974911259432151240084400651141788274048555479304287884152200403314882993598034843844622453799808320404055191744912661474438199319120288725403032661196066420115541002765686046036401493712554779957007392750000010100813752153931788517417400787453993669777515628648247536518259068334542336268306535075915899161222891656357400483884013406216960606042337139406695944863747553075186283979329644302553368578825035213538684090739218508699166658808505340242803429746486679450209892719777473655389932248045492175645732466959939024157278553775615471028880230651131250143285797123124303548378569677476696406217271376381348053641533533421899823724997668887392739547027774728529853924965241090197750582510566120529660514365074600675774087724425109729416085308693934130015116427895507275458999938440793962521797384146016471883477934940562852565940522028985774619641521456367530377204022487604277396620664318299935294254724541116133499379591920111127324541545694509986436656295043862666631207835951940133213552570816965811845252925183460407981157828636442382634074339776426300784841672778021995569734857373880964269383776240143657373550862803718149175990892619236274099435824744784062545509293803445830677143122770753631071161010554248965994033150594216716200762090994595510321612553740692601217587651353909421413062221576227955185506683539886037752417678835522887240498810937772858542330925208049800362385212374662091473790616427883620363474672326753117418846420864605055925112142636527763865497889006025254766878277484910868271514017594244024868451863080268209100501878920693842197970362503894626991394338776096715820453515371095022389714384948729496369851146733022284777500628686905660657755489012237784638483466178968170195097031698865591712761595262580311041417064480942245347598794214313352810251370569456463521436797511894457798287902123717778781175399843078850725899267305938849249802777403928457428933784014878928858399474312869109578688029924454589347752324799905400382331475463655971541552004187781618155175134127132977538483761212374737464835639518107867438664504368646328721928882806099778351637342642667068406982359614611502606945026191055405777437596588013512156173614081357025329215214467336152816432871434898567356071758081569456769118011986527172993691882862656016799661785576379941745748197005871344995992737750576447566038447547041585566502543799687501173015590992194880069463724187037427809803433692553715947929855935340519670245413624792405628698247709539132596434913521244731555802564633344397889229517326773085616725157617740336601104609891480765311753632068811513963537892852543571917477431788492983887374688971938210347150231276967014793183441533925934037170688254902543679527415016305802233752376396682980051501642535956580020480880324119921504531721682808649478282856167973478456184991503374458399537236191042844226230397480690715203156655839847845426338434009021421551724550499287244190001280998022473234691529357082158930316821273262712431348646522232121524776901715423075367746054024803951354053344001472717001916502597117003893915996247974505569551574390467257667135168293000438713425493793393407292533579462108919175884727781056516615759302363723539833124106043756840853490435802958185359337313085183729001810232557527964124133218040083437837194346354992978793895466179241396354678289531962157055496488316039937414918969279973508060759784614809908131331359337146955552681871163647530843358727083077890949620609818113481604724540344495192660809825227477072599788402243548894322313462049840633453811247451075242136331265386917836704115567112252574440954096875200016955624617666947654104633051809234733326923395030192399693719132876752854946411598341461499547928532180950244933030122181653519695649090637896221521260622896848150860006152342488910642280268767949947752549246982988671184697147878640855522269484909055153707234759433899958836800411604404486710480050833851818281093056638603720110759199910430335396204295768383809589971260333013467130551351338690558718842998117814417168277022858000202706793991537921745192570933510999500038364112392532432890399051187543416907053192219097044361793334367728278933271930303507985020810403310135810546441765428920339644347089461470356290786001365548423512420317180733494364811413296253969949023381136340430508817365214396913436501322124166430113725651612905515444594234733734498824239503389965938649262544330634409361812121622220154521149888304578755198341741373410100218339060199749083930235528916131702005186510407312363288815427850619246579178101341079813346503487210303943395462458706535898155600671673826525542297878642626277061962691116886213788033384790837787073400881462370090666124698047733505095782862377600178550012558408006023765806376973525578891794996075255133503768636942457926567576032752825126382871227504558412726932219859483936899499550704565438497113512455545567524215410004415208495212590600733104310425981440709605955620023146660029053293453449725217778258643246279658601726576392252586598847189479231858031959646896904663080205897860419696825596881722032269687492001972031231424856759232042552749433809478337053198265653906537792153192225086246866889846993629573741305408742410417565636813033042331711962922624642999123721394844423571911804650208201383876531773592238211225180280927985271458505372333389672083279998427694989648819712190123356842826927077475659175476402733422389789000954715839549564129916523471795151628663057173019724275864369057352703403539138751553847858326898567926827611397610371016650075294776870795001882130464090095369966209920733533486223036833957305097791731670515843088999815572058124628966947799108081855024019778624249155835518961297010191678411676359192068962053460986189481454611705392383657075047044085951889072219986209361464999081433181595618825144436305395783918621777741641787106901994696328949841298616619239502776398290038654879384897038401744141032739273382963597580716984959565132378365974604950486001918479731053319104101266327260054736223727061974883855623128651789037055020268926094413238792240607339881413026351081414343369423088174433522477933136604221362819593426384013647379148448431441386317869837803772569699211955740375513353026130499427743847753060861916857687187152881010020485793711860574200003325324081744325376674162828568092122670859787564387457437395109751894953777180738489707058366656790568710425963533748025936078382522742702929416648604535421804122454998504660150818582340154243303153926787873090140333745294884017564041934075550558612665337549539881742715916451737692471161975671404230552443802856656385944067927787008614052836867761976552172118378178197793331784037855925375310586347520911566394417856173196983126120448092045738765948028501174629196087291735787060507716453384491840787378292818937007165951595653726569562759015417417434454281969511381181971181939858480654710666621831143216700161725831796656465279966132718930323683544791306199840863890767320184017091440538993743989694589123625458538930979281477186508308745500373878404817686401604449518970557665117315335784953535518312339581737461848493050583480641975154084120221008486899155961489951645717359817349383983605832933530498854496714724440921069865446529479506558869065707968780656218033154710771238648124272041273035383556953132668986317668345253109241573479595391744435627239537710597681518814886686381511439793767978356185038162630377618316399609176206831145512141952462260927219381027019387701494643290976404427135824284219317320680928584092974660531382343027921433188326774169337540677634102821084735185176584242975999753507996072656376506098129469845724869993435808271758963442977035527800109662774110255267207951231990308810059230068935318231819227952525160509491602106403014702686563534577726918920264795435479702317208562574065258634988837955878410232580096378479407507637865622785559269199358307870006400510484275597929956389186045469626108587754860074813404069118159126846594188226878227111523606708729266694261502195691386743507884264375889146389011850624421443688162379503443097057102161492926834845545231194760923864003542712122004688884605242132310627365365397754630066873747556983594474449822619412009740890876870877162562873326575988462225223892417933266836757446370684772444482292587250974629676463373345458273634309214609725002328104847221751298119564330100954593105053968682597711534002176665555219576301614045219668177659094067629551741798195731117803908264264863938955613252480305441032608088938486551826843142273920426136717157380356206237121097798302472339838849698793889583720746788618881481089189290596664168250024815717121353641677328401876621777939840894913643005854547829449541188034806568057988035997577989160202124301577875137203012590382647894271722596065789950617596218644517747054638960632995147973750668377170377012652065783385967905225814783054319385558437334661527568700894754482035505786672967962607497762956686869784585456286028230011821076888170944214667143976102380429246111220868710906823254194452594797340877882054856639341265975356539100694026299331139552551341891276376753470266411673447767887329339574920768125477069030657974899578289822163025925295841802808848815687432490817261400973153790253011818093423786632756324734020905814957510031372460823571586171909487198255928573122189695001907360942169327187656398538841071829871602040601448566851802085913675535838338648659247037930437883597875565861660782825387037302374589833253367410944279442536196219505240130558609832014908492349012561046133266639348209140652518764069052627099454840097007832540884272263887622374335484270586308106663796340815820475987614527350398987151798802598565142106144822952585432070158122924949447329714174564816619438825142908848775551287049821410841505321894129769840238264699022310131433837580188318847934246517334429576036493677716654647447119821952751978793983267491816361531601773300576915364253517325838214421710870565111171971630489502998475138804244644199423595944180801686200003771807811651611390444347140149689612827761939255393443066055497724279550587870910285555724865379032509713418073234289169884537060317989304913733724220178303578539311014878924746546968219968339077752580921484715165603701201555341440510202008599372575780726649860860186371986596069228336253423547661327512345494566136069211054769890288909218102298265315878074182009119663598905399976203772435653749615215082253547038006350128679932773389249071866287033140403149630231709017642566851773178020274916163110184027485859636544493683544895247114745282702363017980274596884639177737829613430010937924067484524926188506161938261739807726232279924081935638771942675378420224102809447789316326733121938510626284475707941817765554873350820433156977067994163201800059457607095850953944047639249680423659048305503368992974065667466026477304752303451802898540001928729055331700332280263910446016114737433948842303851061424490063654361329708555165956258379937159107760268141397672846551136149452132234356349353103274698449552510030793094707479021676347896878934642243204928264364263354171361924358610172824163849543754556669520661361783313646149218586348838984229627993106171686429544603179927008111851438239836974148309524818335639506950043702945668782737529386521177922634210551029332340068096376902138493630992311031104159011328809739454185426821053912758047803993481241422709489696920754621546112058497020293993998595703008423958831656102141208544555404060717699248293596959499709492780914154440999802935204524113229854490793625493419752985483809167676714193132662174341062873801727542152074449830903377783229017242564588964066970465730649566714990312840386631811316168428305347015305614082569996635714771540701288479648596106808574787132831307210480026497416110064916619860541985710826396457090696533055260305130062758893538382254163487118781407170552862810140992175008294739367725933046337602173693282656182287736927320619078618024355424884009406700259471507128021005850844642715564381051647373852936311002516289327823396566776086956334234132993424515047073576484812661056639912163067241154489739788214263894735471276739360201161806797989813114338238550751556738538684084664096689504499540476929406644523755232238583037364793664411552386279597967123866486513419824367006838852691247805409161764040914386357481274691524683833710223722223406465006553857884132742681838223196192308086085898580501958365394345542740124361352256646782176048830352882260384223392703601644433288364716686055047567143026810505443493647573375916265345072399654443740379547197464415323345078764928341253228524924810645402083742543758221282502344808448201912148218848740372497691244154606781030323287493927159357130190426401611587894180068874702634355374882668436767285316393521732633923105481582765656746905661018663809448587717019483275874354189146523792774935608298924353344922434769555332638842838682804731027560024717271027173208882230122409114927229060375456630802764418778163986956945227210194053551271549626825908098694165754642552033446031212165033714983695382935932746051430701955479855362142478214901212479281799309967261566354805692634040136567909577157713506771174967627992855526704949198136273477689660675020101753416073556612410966644860580757252683394204067284994010070188699338901125627093718515393700620113154839838198590655329609897791583872269372348942139113633772054540253225890808179530686562578382616727215350863801189017439188557221563008528708455224546802122711615363813309931010168342881917722086660414707114609083510836639627069802155564148978198265080250931636517992335337481021343336803516252914003613993241615548350682246968031326672744282390572105752011224439489789687119460297373045987607619328161922338089009884883207683931810913251787462245118195570942225919360937614184401919733934299420097446017592787490286323772450304578895505509725297683897158903379052491082803124328587923859680725569642497074280096655707262859625496960646310568972090986341374949764699907521311101870358058759431395374330638045918128337993912685965176810161256466146554330061972046247690594891929425721966917196548912477096130239755403153147358194548958751752293913934055037460977783484225919994851265430153948705899783150921314937223031855745112559432192507667705454299407822739224213010908789551308290701307728450083227909152235022627763455916130743689137199835494568231794723144961456962761669103315614594779890385822509657268270723873596829213615049140979088066318701351053595625487955114703513804265291748123477339468876415919219291647677817209265326271385245418301989318815869133400018224268196205461440687091895882188080660662876486105204273140590263045875749435644896798313568559330259487534774830979255859946122261752142293481831473262841447094957743397627979779391558695611958480493445626571700498752183312367366051543146068026307185018341693157577706108843448713268136381267868315090379015136586492631078452995307476551176145104635605286700937486364310989427533482697344035469276748566349159821195168993024248116924448304941538241796651050359521183958187878035053295646177186722469072074769783594452772612228631916905784519471802050232639806988326536221803190689521844262673815366638120255855544947274755563309129687261838885478510746000821421930754248694089361821491432959495821740391025141038186429551715465246699511804563315419523435254616796062586823675605257941197612276569704828002019024094290912320821028954983740638886963214196759891595425260496871114489126486902419121548702831652692478421352380496252501608517354456780475316228204704426072106283214517050678632624845945987353908954023896149013988463797332799729715218006704264599987838491248901389051925269969291074674953219611084875116266429830483350228856952802841096412228362547358969348911665379574942188252924205835027764571932131781907960444227508794014022655616328640587014794975016961810343976956158933032779091541275732925645615301442283575642858851997508603578777345507578370057659265910555701018955300198026988231397129269502965686513597054041454925888062579949517515556596731916227259848750974757067569901939746617130587734520821948631606299449706938303716358805812130283174441577555957960982734792998703260364681673833093728711950473200891832317884400155433574262342271680903585271409885637994611327771898204293382070270075486104421483657170325569367538714305459452915431728172495083098229476246500989967619637248040608896707970325104116939628279720342103600196462438298024475185698540987292081000798643799767305821344628698307852948104801727933561493245439756531019782539417193978192863845005262433284336352801998420410447554198845826483989810679593903125132923839298909393931865374653001751331377682657247695105246152021003428840717492114724425079603790297076292968373026820565375873508231439889605861853667416939230839964463100834429510433800539273412197793680851770778888384816836947918751931832899379331247430036858764745553931861792285698286596507550867367099249386133181622707257479930651241338436014565695232742380774779484934487434475170622150617024750778251276952656594056005280124530911099487870434909987887069778561172512266970400168119688251548460149475148400449969514179110465783452826516677809549052152682173512971319898802946927147561995392414914638495525740211674265188468328176711716959412425514670870523606542114921433221338986119610711187498194127685474582469799129734810161592905009852828829156319666726668883299922702099280214678827038500568321844389634880459685350254334501338178926831159752787777717100775753327211242763724992467781502438654539152239367731148230195375236605577178538013570723455306587909747649140119093367239096671970384771991773981228610823526720328596872038639018144047759469486474613036026945480870842288442501364323509183484883930118207761059093541160834877268336454307838200601710458867850380897973119706595119254544809376434871924825256137575822835245475622474673305150116509716142143450929764523771075931304145970602886523865252829572417379188471790374965536897570950448860638503678982686151862184817169269984746063967912591395658547676551736736341190742332138545670340909739005325331493923328717081132527874644226420875237251299784547104080332840895342390182951048228788447961630217178989723468318678107782712908847869072305012101162399346369894695324662356697890457052272093785752817082901902926098771920698255733124156350131382714448445061621258863260076693928643999877149200476299115187682239971858483995721249071883084247654322146936477858366135961087096254968391489451709435903045272415833777520743364245850315097168499991115186802356421648230086750878382011411227380700520793776156359187252956371164054733889183653536878897585644912626679859957941582066415105422391828463610661009117330240711169482721753691825115778372227445051428097434297005379305498606937812394109459133820941762891075084901319341627920065216845730755494757607615876405280973963275109131529873639267642188421518413242203456422648064009893934671881030509765633618320048605150252711108263319386048995621977354792705754663981996292491282522030827352955437083744195541748117980887524479825912203378277732409803406733921966175415497398899177639082868162577191556762879229579418658696868225132095473782221927398660271554432874808692195844295877843040980956786279651644208074571393368615470333377426768123890313199227891720474657634275729372841541583472495556829014973403174387504666924874900918838908405924430243537293507167649643887817807076545814970025878601211538290632702168137918630573781298968043475119015493764812302504994323813520134634188725039873113936041918468759313595443353330427298603872074792513560704446933867164667190968882186709468840443415488067754800164601062982584760711596971849402551293181223222032518435225902079159643308146625210052347020846162574219107484081937867465324704439602947765754150065284905629005520271523316118608516927412267285559459522365597921993378959266796583477643085962163512278015045464659922974741189923103779018973729579840322192804936841028249988051502298474136522670191763041537818887630715831085892639773595827931296854501293193618157986352672595803447411557399019257440834391166795330503853606236215875125193871465919219397578179613646321436024639323145600954223294034543535724296279391234695705669683231221243775801326695035055725384201176347977521854749147835039161708473414341817008838632808334435546083218176417307655579000552011120321570764817931733057010977378542836533767407771465821182874366816332668679870503121789224492886518473120551681206256496435516306470904725519102664406381676699251994481200114653709777234630735321048812014049853881523046263161850615819766632227258848257990832502498260425258633103993215465034266448749422022383485886284110041044894220055891430678526938529398968469799530810325286337668345766832526670379239501487213484309570466982417930659606012182930531418983318976156045343708517818573949744311872034846669866989299844716872073793225329246714444920807907464595465628162079562973382364305450786656562658546279250723678505852818915403708320786729359050340140431239673277624351317106132966124190560195375255454623535418299089061606509356025240259749813293631260385813428319778095395189683995436275617137938124677201173813638749415452512518268554688729586448219123506250342791912093425789283677670222803045865320097148556823374818121939952397593955529128801708969906392232134241791770813129898299471228141359830580678290637585073470815694119799651239215902321968073162989506240492529878328368536189767658619955538046011060374770746818249426753124901278373375223481048372348654025010409288366390772829862121531916541830315713356977750433590531133170946997070599238579952898575868148394851186268811278348249969856829252998341734929015711574403870622227795351379776554776267944435655168576922510541079906315177897525099886513365108533382266499524055762625352120173619828136514314898782311741283102766073666960805169202753363793072940112164739729050833260266199344053276727061903802351246323698458925037827185315975624934633494553416192032206291619412022178101715154448989574184276559507709033976265266832105672099064326175801467392298606373099870693067717959731379636269726382588469551208594651002994817045788184547120181086087296476151089052967871739471452519224264613706353407664918568324904904893039939273537299781544180775885746016233355068709574045494631109062314929473836874030618666629681282099264772388770611661456854304853643704854942082679202173989122441341357302643898566944766196266969452652487579285723966533376018257394102598101549989083132629243791235872064299031847909615754019372252074006990054484702910961745857292272739938961276313375658517367121129181267868333838953119545108201324570535102055796068020710640975095692053568947899628421663331284342552676683752817214598039655787513447676863551184090809401586938741846990211175908615055570928579124457998187936980975044287159326986059370772462589248909333771624035082543382498530509543724001051851576156394345424844045900110163541804805695270932848570761847764479306960599734314996845947214497257687932187762640513502369863913730334106658531406989676502641380590922617497272948075947817108241596451773885825880334298023280175691454669576621161777571453686346691167953311702370189582726832309222460795173907674014570011023386103331491289114549822661630009152495105110585937404609558435647974951506847555289077219547640385777488968198038797672235193330858114559933395695567664914046630872653186670407713945809752054141603739949137415944745627139339903558564729350793693739625410325566828640854929383536005239895323279592962155330716945298497557368630728781775950058114316216618168669627663405340430966233929870235909753274490661011028218879039868411329911784998742273828424526877255397105692648476234004107641946026080473825333339351047494345383752167862631877589335590735343171030326188545258831973408248954034780201332290702734848175776268332772153544808390297702740071976784479856463399944761008325718064909449978540038274639213762266636716810974765841321487262557768017543161710244213763418575024461573729827311905552156756010695644081402154632820623770496068752864167212552395217607508026502681479540773806471881776047015759026282151760013693016506226070617457448776667303244373038418233814799067599650479023944069745554176794637731367689258489372067705297752596492458402650471757497386506657062224957170164588365601846130441754447329271486028567765456834447869096411382058283407842926563864056139298908386178400238854610620178994099700806158724766936424303251320165840124089821796839331542445492951734141093219338472186993852429619338474067613083203528950590772614736351232342670948263633753285512744264119073728755338079464244673815183916715154405301298736479291643577125898916389034921261372392463279762958360174340308974274239528073870047440159049785957628630712696245321836537205106454421922135806176073633742342891453794257248614608272463953901602230908618838330857118017752841819998012546877799805623365156558284807724142624003145387039661305885872343222809456262260578479980817048310842419825939409964477143192593782326173718974761432095113709010621126447180181889854364903696730085543551432532382333364348633090301251482832423844902395489194041021898246881419954439315738306954331914264907217193240685326993025204233023807419864414533626541701080764413673424944679672226895934845159668429552276655080702995349741305634036644443344081199566340330497922606489149127211378676356048263211237199475083335333624923726379038411579344465525528920459693057901222047810058884585891324810389514644631940404059002505479192286278137125422491235815706232404585171820800995776689295475332206873740061229897613027304949480686913246938977167121808150856381739924667576519484952585551522982800007667684464622775854680017407363447991719681478314159739511477064989836274767246997532780252326648970990145216500411264720607788139935320473104376853383331350980920025197030732135994066481170986686247459411592477002730570360612538053484412131965425203245399280107211411227077561819430561564955382472113332911091131436687670067172981396269796713658758194774826861576880704246990213864556590574957034065454670230154613679031561508702178038082934566729488496330393189603417444329189132206172930698094881236838198867323433659070277510539929705299905017864919450214478968243169051276573989546491660271693773757910466664925297080891987926776251979946155806177437406045920087232395693197454698307241808974608983803951995609306084703324502321474009961134896958103106075081260419688331139094885392805527038899367263965265139000477363835868674852532056405480831626541583077266466442426245800191291201270562596315142257985572114884222908129493446676325723880948555398963239863508192405525859902813291782634238526258677073009548735163479824841278756838117027221287280785346551642391488244305667221037088663415521496767583073046049929508943242411830057599728615402735292953959424848172754924029509419655987643396922082256063860048760613046314198590478871189430896188789342088881578476109831056875170085762181456537730579264680842720903033707565397406311162009711190496905365009120422042267291414145298036951601267386568566317449664587392257480501218611571962782471278998234602551500227762681230553391962783804169973944226012877530671679965123575841220331795095859189885461608332817494428694577044225093137479329670311044136161206176733586641409944710650965516426068315099068860182996734575117734009968485885491175895519779006023308396849847316615319482578050246270626700776043572098652903728715990454936573617466951158324581607864517865155458262246519254946679743669543014403730381663636718168613167603616937955106016577324730843507521494440101157970432014497775763404217613697077791492022006165861226307488510165196221019153685573529032754623520524329042092546410757881033833931863369893168361878097043999323512919249210115454347951272560705002844063507124375877844474039879707326227295340943796141613880272303372701900411890945733515581005712697636272695448819759316127833361008206790753562397386620393979615402805691106912986994766691048714831912927722362506768492623446842984252684427584994402693492621960427495623566487236337691335080476238805264443759899743443627984229336866744024922735192398817335425317457388457099043985526257438831188208483821637160732421593927138707963923857724652134415303763672066693421056081678239991289690850706791794535028851135735431061645173759204289073590674857107284253332729924732911747421160458244659016157947420651004590833931206567338042311193347891807908785777179087923945995206453292953610534023104985901490007401774006861531476378553586611134482843548983499700493853057976333246800688515026202014090192690096952478925959956236566664084426840928852488922541529789747367331022904152610470594350780453906071016262251165349738517626792461294906459388049359277555846230442336768301810625721576508185219984593273245174473819810506600442125229282605769280552802438026009304473660003222594422717595745037426244059276105451054256793949552035085774291905990954950830726921806627573767514554639128664738902736270046350721463342563390469831879707702939687354994569950576936571518495816428977046123270095630529875606590285111419893301871034992566098368227936388735415850175328766326729071320114773440009945634911685295561918012483633702950132466027255629438819525539755854035244349299784947827903480231675166953899874627179854742024291202063006983926081014188841824327058263477056965796770110556708265277439138730051409698121634423440614304961577542826907813246332000242971026483783971046482670935033833460170884292976808029315859823130427077078077424404351000142647775201281352600615140908620172027523670803697943685741913016453453123819051196754802596695293600854313601422974176687812414877839788252016108093186242200257924363901284349531957704378310526252233239157035597895201410535149329785538563631671171460123884905269878213893309079107411808013355971941973674254906519905969992719749599568881151051824851904351965252733531620901003713835959921326456565067347683181976899826140140403718395022047766107836843139211949190598825574753990672952743391718146817875348564442293742513479218909622313990943936368783832128431704640120051646003929938492949818575671785015206648955198371541450993909952288563084331757979654641655147379352897942422722037273989733096196747420205070958181801635066899989929682454053225912649801938845275587994396226674994537291655684662493154546364552763626013416503700366939857131538288427114651741308717743058850287813684928578587043518844455194961970125799432011813372071721110567415152013753639487546588737603864006372269030322590020430525631357120033657818351005631848193452312810560434883630658792503631631264406217595526319347043623005972524145134034659630781452639043806195566023189454931157631737761570610871906361371999336930035523406410482087290085879654017084218263990588637449899838540230734615795957156158708987147138870030650086415088853285250401653757342253024821486897735818917545149664933336615987851967926715896096742978310734169406699591481994344467243393114805668816697690652478982459583452367053075575483124794452852618897415911853814030913644328086205192305850927004751889317222809092738273925980965497135082814018606642735453812727827682134190404744926872681190438438077654582153885207254215693534242990405115266963922099462742177780702327242223849432196745199884049066253254202191672887765994330568964287552489264602434971281677982895420969968755848403908024417192381606899527884765520303898768579202790568777530234884613807964262103048834955470989049884328239365282998807036610554265086972704304914750229056932139927143934160159183388619050212989670846274423948029600922673032633932035811102647105372867589673319209459189935599570354605913604530071482511265096666024675192492415702328244660807429981573689069371986635885996364437494965828320149472982290337473808196271197746778950871514611529998471598411621607464946896003963997057239085685303108446996504444359851896624529040324718582680629177918356753630880194423457238677595839411331209591058477851695479792487879645866323501533802367716479134727130471067128637111952326857174703460748325449607136833235018411073133780780551717827127204899593167557592750711333552244494335867218488087353068290364585654252406708770214458623357559855011583447435808984737037838623725250827828472484789565800606803047631507845069925050457942916181655838308490844003243070538924487385247211942296428051151448465164803073184960245442432136936859140007161030519137607289285150672970273473538528407093439493967818358915755578871148997851211075961992552910533463120053398011983047806842797402931231081594794871866367123868260464237987726075846268518364597903646154261697337762005252460294136235292155455234662909201629408798659788303421744514731795659404626877069050311008883394755874425257685481621446922205123387855064665880176004658081075913272374251505324031723636318588400078153892973494866950788134340392731976964797692270955559124922844550230658773225437744036708664968789960166934263843960014176620017782008745170197570396963935297748336162940876647753984227341085941398943444476533289192395559032008665347726214362733020757874400168126835272565449298272363981094210056086988135312143458641059877667084936584158202690858257993370308417327812548815925901666143626108562091603659306134513673699985593409100671601129111564571894595600751875910613376183446148548699035652873104135023131006458929036259038179246868348692938151416998176725749332678984958417052887416363296712173181137011903098205733818884401375654778004038576468350655252653700608342923982406052190156115503600587698404394574198614298582391811156768769615589262399069075619414396967209484855834076816016620233027940185119196971194110805492543055022095837926909317553838728434766609500898704515693395238385096579214710028754088066632102196627450026300742188804473807592675898558081562099510492780772372592401974580808530136028111135671820454941190865475668173623617999375844016606747155224412292286822967430651551174052534085551833854699647584841936241543221872532575159815174142716093916187722254416170306876578428137559158010960057338452354184791441116699502080928175734126582628149563555671189420788330961767932548831599057508088980454950237325351614181764927839684520048941968410272599139001231606622641473390595459272715295404031934233091019893784919895176877049323968155814291516420205457841054204350753686623920878685611713949271553764914088307202263196930111607669016808215054642153806046316121093705598699968453242090563639135592441657880687916396579986425952592570327355093458919745690135905743147852201123200230786789280211347905947783241631226921286576158937039804628510760589113548697100188819641377114534431244898881909289301958930953545803101920704621170466458171549888002467984706276226177937332616805111057407839550800494915675385162286324563234439162107390900887538140611480903582901855447379089493765535216090963013740136868166763514307635101495841882850914716498208050758030353190514951358009277731057355573683981919987454897053238215373047238945043076921215010726978498005770076289389782034191596678328570872613301991992344546012345324621635995654146435574942881016613040486487365002147215546336436766476158026480385826727491684098835450454309777973681114011803396232392894587287924326004258854812077049483902532461657495089460926895104828759091265365672006929175491750401175211855926975064558669355330286537287037898407678161650705648771270542699026921603447112086214177050221175498192381338690223149783950066046814164953084285872711580620811481547000327466075524617259547559283270665350612203888373567615507230710278717873412822803818783205759031842156789804993702573932777397741299670669826259496289707045915300711570314351650215455615468968437786659742678065474515813412119967015846735157209929767477773443491785445520128920148738584382917216103892672444525178783283119109420063532503135785246644977262604750338447203965306505248647723619567177145065006082563819722771124603157390430661432365916255950316325078018422119046618793148461152310916194782503270145074807844498869554683671334390959365627141321440607529248327035830364593221335761316453139330882752618779346454866919654701281662261070673205260418275879270166312107581854880241260455996367372648705742645511570092854755279065649140763772402768907176536078179828865118163356842724944172207252126487766348832943716489292752411883966425484154175634787284401740202347541589549404066763598246400032935774116437258423195257761766830657024186389281285362795418801852208565770029846341226441028858500420111960949635458341414471188524665112470554301335560633718660326310483586134186910754446331900456944252563996995742873034409810351417251711253394939180714086256031501818694663407771319970925154594161612638985282690226783729241555304095636879706526893210509849741722562658735302289893612588773779040425524747209215626985018573090516817759600673205911701344472648338133820356006294436346861748802014927941217557281686322319572293387005420670421639173979518242486823446670094685191556347873690983095844083461604397989135011501375786528427953844622071755693574182691564618892980791542775817965067070134449841561608140001542448276904175591667732094970691590187180951000385413444332372716628703103500239654578529505728905050067403220371819406473699526874362907282067973870692740671932076028304330503262719298080433648409364968201729311144140348436488855033243817377707623040146682836996909864873313373429072109535016932723857549217635256772999242598274575995853107199181454980696320340497066597453203032024479727755012965840098975424718437999239751799913587768057009366919265694944777321510970697658493152217190373518991722146426978409648923538489647024201337342034677354657465659319128493409359020699866614909919459742552932668288844654273183578395565914980587771704340432152359680607143860669441407399881956553399358332764187929202259831731573886017209977703405920594710806217518494322928224860095807569241909254642734121567386465205079879777874090964303765408998528372441463176342731902655840055360926196411912105692755567607323630995928915601593151811823961725509313089516398423633462049557893095677833200365576603291567307646163435299045943005418716586661361840399704067562037963395777653010891238869316017096784271961260556100425546449358809236914192079346382526078372263164020961534123476798366742874248384921456311784281589375231793159507204635838209635231628054859823361989947983396873352130122353038352555011088845084926289004889303090189439396564637770776083606628487708852382528961882657827445491241442091351972185667689878441204516911793559509108062414399399943087469768826883752585004842541822218045805951198984258330017837168197427621980327629632899121825069175331522262956119421994464507805549937978427536617268204751627043960650157444121133017878228689267925164507705404026554579943873485740404778926125125770109507317665755406674954565197240955465080898515412193318962267778548122242887822217080086107118117723305976540452485636431047145244456786425141971941711660318077420484498730654972576718648810368835027007583575974264440132094737865090591448016139268086623269827856487062828520394110524521961244700374675307255340584794220306900354685541236797148231104696445475444062714076240943553769311076680270087292958829176157927427279730763459652748667585019090169199822225235948308290847488549803139355658369481948742380172401671927379056132791576745678381315348683802625479185325601429217325832541942976546842269211107673994641886004869734856480465534521475514988236307581339111680264613684305091446025664624255217808923430009997949300606069300171475918366342474298223629626182934484292010405206939820830514940789895789133296606988769132173988326497494536150517879123298570873355571960060908583986920429598114150852936345713993237872459381596702916902867697015842272746444635999131947936708463109223135279091060372477277973962499788326250046361084241666216536268907760606807091680919151774046111530606347771002488832354072732299637568832100368050474652321518261955347391216312836495420099933668236978370129571603351674214883744576102854536933266156946759055343994550396222586349749628851374886135323512443345463094350402483446421388798812662980648024766562190294874912122141329245994561103298504359933693792445026334761701706073939130127418126810869477252756485674615804227235315889846420029893593570211320804360018800512467828705017719475336646752776791855936938324909684824353937574310285814878687565337003780556140987952408599494704242333938922710078214215009130401023983280345974879584336244886549635596444311895686021382885372863468217215107105858543748383581139800088842291061111802689691714980233500335417685323186979770735619630465117483528404338491921227967770523734660436909259866554872851841670943224035734766374683105547148451257929891757323336712161074194559451230666954748203576715398077884492389249321803526957282833027464589762301500965083554986546784716633040764053421055926594113632243225103001743104771825026451852622394388117689490718924627246002711016218171533905137174170137660196901962805932673558365627585293841689189519023372787053911827664635990677989864756263892017109953808124891207309190169574663239064063087455288453398263266128921274675490574297131995339092394018010525705772061635099944683009454150994005812376682575948770443345535023483125856734736943150483913305815165340953748797124790062500862540680029069315973384895640966606599764360729799501201513945777227543058297531160903801284083300182051738801189603382456782003093115450109091280428573222110567504765185651134847277344882195374498644388548516899641354033684818967608817499718437921547610599266591778382765405079347683838001982069899127617451637596122717689020412564664590997404747884310699118841217210438272753145069918108658707647340688712402564635471835851409957269407543491478741185418696117958057676624986488942265012494110691840916710454641272505885441985137755403183443372767277872975454505434320662649238746936632933823486967617704392195113413341992771581930578396259840834958284262101109032381739173367103289268471205491666902933961500997679368842589516354714018469287072231902405579244200762058235231219107770814587824176793298306381211023631709603089094311320107084926822964986766005587043316774848954590493291210999990106986819314832240610149949649666247278427791075277007479893030320670835380274263221267694084004704339349128520768873084957002156784067730076831639919397390364651543491427556593957399542721462925745478007547766588598779266263513349140080419453469979357004274642119847876536113964323948007194497945124280786679693053262548541668851218585509843132102873290698617096032664002146210018045888456356421255818563514160335588368699345056869590808496708545699315247754639798341014186152793810037974438091612523915329246235943154199473860500771360131395063502137840909298775742078449239874367090250672255485443110463771213213764430041320049478113404289710322388616920818130714084722169903333393823602942140880504420360128193633844378095992386697254597251250589385633697093172760768157040171078636297706450093087821551197898872294232256850727359753835655004392092665949405428638418803057970416546180847756328793143907857620232824662918026922357923675031421849866379196631471309020057409278493522008929773376155036516738675094465841933451676099667991790342504513760680016540698544405047605523756332265160097303384647628779582979848029241785918275865298978146092997367452771456855553473089852599831252822953571866918709600947225166815251427198102319319207385438456678292594543705516335529261448603168728417822267453302358678107443241249957922518635278527982232121886866951302400917951779521049656786812210449365325162839319119382554274774622490044163486851055550303815237027956761889071592304671218312505470468463737765180396267000938828816855844463409363054303172014134137014841244141330334419212795321517625121856057776048307973678120575830471179122634296003558958285781315804098918063038890757347662250252694233662828342751954336382105026688108983196843616204186185586676727150308071084947864625964430926141178029030197916853003815853862520852701943909142817837361899673618206164641316058128375087240308634995822496933215808280288769248490719702325138096851013207043915322715849279345192661529978008824166316639940899980006922995427505593812203745963550701746746751069667751830606785875289486047331951986436519873940008775491855142012341930117599880308575191474470194842573318352040886384385093105644960296174558764474800057820255036644852974572449015600465377456576107759292823067319785280875709604045607085707637992241037094245443171745266488701054636441115926345075589758318288977623919696230999972943969164195851450426673507729210165162675763248631488825247946955047507313164030417845582002238021614678510429596547002278089169556558683371155306760030130818615173018875220225173042638356322757670312796584436514493768565406214571632704541653276754094793413109700874693121279704464925173602411598147282299529167086192604149853895312892689227891845757724427713749574406797619329905311843396289055261419874777983744296802416151842686953660292347108393712587104331868376189172693635535695676525314103944242947037806242829468526556007088071690613187051149377548114429675360591345633673630278897777599514638665133790706814112290645185575195140243766351576629500127292652567070688245644794438313313718622744687808696055466378754480582622319963806858059385573329099751357772651892245221061496560500889767486940852627221795432489554132030714416239522023306419242269932150167071236185401654972811126388580352697795662909336366583592934959070923654848427541932783683177399660193679728651741970531099160560667254618084392596418939173569948008929213636895641165650393451314818034114474070164260864021527306103648830302124238481389700286190310194388831565964653032458760228933696615766292910869134390865779245625420736205244171499516645528280363850941460259779148502501412825855068049649581055601673215212396115073133482099269652740114832835350468343453313285044888088495592034601511573654972211795729780134132419948102036719947137521690585096993596535850841375852347150853092861093089044132794078650934295794063931591868291962496528272782641924860226055092602073428064232314052520179273280106485650580254803704098972309039532029660280745583002259915310696628962814917162690782031421212206758823020605397296438480149856602686972805732059635044930081231024546382767205663017014473832227873454926959372300477816189577528189656290419148486078558756102673262937450555801597061912929509735525123978621333880723783662906663977855073758529683867808057672318736683946910087705710263234629691116737955766080275474362750710879032871104442887191578531209679106746371478558988792932137891121838481422775081466942991749594286215398004147766784922282707362084709932346849425149628309326210636782701363360230513884068694482241324364922182357819377882378505550269745350290787659387918958931179620630854776817196104769613207500907897341672030774725163760955224892148503346315271803557145675358061845640806886007406458696207901562639082600665292611711397293126990298558679452601540063458939076797947028531605200229002983875389257507187320818959543402151931041337545821425449058631309234619473937806322467599763551955783762177379044533186659132213229268129123704327543408251305884547770898504488775166033092069684958693134758807301152298661728373654320199860614171298172763858668133201325475340024055689507662349328875650780022045753562888577650662122405019002724448720550070188200130925528807021140549441048582019931002868792606848070030503447391762589675933453092764912737159403233995246080132146527512963336726051071825847391912735332686350162573627385155886675389423521217226197911568344450421960105215652714106405129141767827905470920503931353477081655070971116308108394998792513184294220502308765334062434279402529703745748014573630420403066452511526159427265120552047611091852374244121067602030429250510649971130376769520359323751838770626773361576580152361921225719083091130130215659357840770762508770598517356094776143862488118733222987535311156660411772484362136683360542502182977802661212641497497513332961110307065288166123279345490116213720902230809579377101980057145988803324275762317478463163937526360565770178279993210243786841478116120791925685802355121166368258869224203200866473345861245218585473221186290708011358630259925412067627582657725626665288298690226968283903427687607793592049381830272299345295226779161250977809803788148262610837336945255258240887982549656495638774227882931389431516699366638668312880883007837980970988632388534332441012758340347404700064403889800935354591572651274348534732097986348916080891521601675804699825535164034355854209450919630512035401806802992129442085836018367877595082187303432657224510864705528548068054398870084325389174009856432993357016676200417315292239775917534783470905456906653343231622620444924012640896167909244196607794440846787382082263033592124230626767000624951301176935080653907157579507011666249177127583557139306756001829771733531781515495333869101697679183027671917093133953481036261580362033874949778921734204017291370005544621487477958116483084632479970387043166321966478925968340295554932344330632318594310498752716346270606075614946534563440178847423178749094853828006607167616450367206399058495787179563957537571614610230087548253697956028582253528272720087171172695905904331596665141822505952811620345983460619489147869524088311104148058815844514886989257619491473561548963704762371635976083481043619614625693858043167632047189806644503413795625666824092049690911641145356461145007179690172566600226578544091203670688850521968309503147701462833218192715385277153214556903791107211795008268888513436846322532582172684844909840021712865554056067719323968538147262524690574398473437289487754886539848392309984475770552039029378981661983547213705733840936834698280945927695701587184217526725057820646064721441205930739984361514295336605337189322086067565660951406184214943971075763888744671554934976430970934449756769639937793142920004410409843977185612370239154382803369898028569049506140618854999806820555783131466340511820939659460849234098521960859087108664768460972864743161732735456688457080518125965991848658189243812583141199140579734879624908646992930114566175620879057510451978222462031233488652582207298510857147638342342141491306321691391151342881112916800063811976587791659018842138961673969008868515337595271383322612618001829422724458042780448393342426561468880929606107143995942601332568041624027659359701226223880946776342884623297407026585983875040494068268271503171207270902512173487507434071409158740396680042966542747852931331986132778507763807263754335021667357393656300528228437645656874494436796774835591842747534930173489738148225426238212149689605988256329285488210781993700470137624671036942206809393826393660121096304127890578346593982990562313105461060442143943058076240429499958427750536827989149360811524394835893305160224580148614033296821147661790450889151310369302606874851584984130239101220275453557015353294980303989164635587115741859538867561150649984458698359398109550590278193669617180984029458953405759378497524656253405283761204428506352325031207665606626401209815566891764335974015350528255837256896091038735389275777193555108150116460286286037790109390449557238959568130200227287877948996333629938668783785140221420404800598065738127384310046003389715948190040425740784337842375050744619995579200723814113202552178663257207629618792564304687723880176062762020624688389391260952709929322821436870322715202184446878852016137954677323205280743662638339121940648193827765343477266302138801748190514693318032747045171078474768656585905145507228333159479233783124450057276383618207537940885047337414701191673596520081215637424299438122952195483373769455748752925552782624677179544840221834022285563748924111872153276920812134930795188142699177284585445262704004710160628689507874333695314915468342852223813239112751841144536708659365601230691087067367776780315516163861309983127776082474821419415302202107891593192268243930293270735793128846545563849144272236016343336191505281364541337494536207613089179023045503076211827861197779327766284453938745157046285045061742909709336001156958166696348568042184662878229189231958894604079004707236636284635914669952669556513646614326373899998897352090014952224596451238736995919521719480869355322311595366379652700610827841536464630115920155902810197293796292122084299244902056732400391438776021750963697564298198690446739940877147551876826516632771295143932004569519655595872188978650722192459130173976987552381047120781953749446221471985391949132403522634476742344719679380628634141908541802740489726551036364542931572239437169222293260074990302294570089477721480413698745644160630095060977599514486038137111096052208253130949946724068976216714093779030967845273987094043090532904367306618266526726680862164030810877421264115001753796701451008820693621247925874996950251243586794666172701487725070529419735252599003978128518541045504884432369744037357262336068246691292453151921080083177364769907798184552649910703439505432808596304788554001271080744291850147707660198484075644643603295202132111728236409757738023321091136592463311072783810702182636199342906439424268525784291007569656426811954809959139182119247290842932861021121181383010723730407208300116361909851801837818870400783853233743103037305914065934259114212010873872302645748837510080586425390910599982781949424649350499423134485082378375806173208589240456552517825963079142468141044036433350790198908586599431080641873184287957454447995989343063626409025940573652812853676895688106527944103764814350548911658289500966898166240158547132069281459498387400506030487271550980522877368396122531092464095903764237663485475139017937279083017433490780648846497856673988904389887640614146441826858317800199818230703284038319885715201514077151018623037197597865405926338565763245014032023650898087822805673068300276736143754256145390549226335887875778264239859268038305018536771529259751687936040627303965925933752842240374521509658794183802745766435239821856986996501968050296507971872556892434391187732488171733550630784962658261585567441563810224490903830009515899651612747829305866935751762112642406443372052338423067257716779935131522315041031216563976601998169178774995961683651289227877846889412237574787586377522767233198777350862666759450231866940391297739483415402985005110253141831487701557258266715729607363490370890425338467862844218497239568298174375606623691222974975085957445455702585668518418104855017560614022135225777502930141584719502068297822255319880913284686222283349039450020520282257739241872530852309275967617664090629340168198752832746382386433701652340537957929477249244193970166439770807041235019883359795320597387503920308731484938680096960483260947093802513984647284203382207482945053266232220561514578410438008137113543113002072974669357058967202278316046901915094069925420319117936277989145053498332426440176171194352604017104727175952425280332492795999236598812172692578376048792289743997793936570142602361450443161039376735916957620730510534826538252835109257622891938875634612707099451364864635192137357282259690571928396552906558502028552514168789433634661842322723010283913362596108167690900594007021201864493799292051105932592365959731289531806992921877956938926042105088448189202554747707466942647111689730976933010852800859996400143249179437243742531009375416776356385810539266725883098201829433475999560817765319904940410238723927106037419827608718351099217341216582705674252173121692323520521579644976374278787401972679395258027643981771203952497107741150566226630583857661309119176847084785872211480216923921025964177885949610754754489861762024165936615253663706968988253702206389440206585004560225070140358062345224169466979311280016852196479798490473148227504064300252178179086322388404721572297056273424628705677359076054693701821695464000019519281061689285477063154003643663212152125163855091221519047637102823816970184011714962236736720691889756348456760534263910849398105799436828342660395182928843208960785149069991514925192230769840004441639647734711883594363668273419441392580112445684628541859430262288499449660763389442272703285569759785051389383397211502167585097184057731509536791261070080756674417013249061672102179171825812683750374015612384052246815940670777861102356823628669557416907592288685744556972171815425816280823878924525600368903785856275824245676351119267850424166143566075260217863586023874434726039306638150713472333597174045220144385231578795430502738252526501182913665629027503301729208514167247979682717598154301238968120418440750644139937504834820117062972048051401281671665508330424123104304883190554279376945620634069629510146045289780517026451512044662060790011580716405382497960206949341873884994320444672877840708952592232654712157029704407152426737242278155144244721227078075671283840589116585805616795533245197061857850333045263976040578952708840768138821953401855852538635202178781471836123193981881502076599675544282042302960313722102745839673532157797311207286786395939960542690524037174928014118221098682860961996963250368561125305287515471832266812905280516533372128367863379819911560449750020224259638096184891555059469548287597035336469577914915380185633223332514839837760648425160681351680048459325200010651483193489400177477050765800989118972679217021343972741052919643924782727532398188833136582312390016415359724465026172837776775565592492567101391921351476849472140215585044096538335124234917071964028012951800173129281930957523067828928942056089033037657819231254816661914329437516463229206982033558595837198062127441097814617473792856364587220551704127105934211598407774794829977935561611454401688993182413715839802602122699701399998615297958435283450722339832781736054469306755774008649110756520386580608206578614471878319934084983115923602556731434382070955998340007357196508198556715618757154124019125929183391944310593676283214635833114850137213042076507256137661379755023329272930480951038091559594559798695457599642116152381330100701809191606343266618444831301204278211295293611590256083306939115569604036224555942493224456281576986820681728984718998101341333422842053451585915927468349041248156709859645856607870864821765632168172636107664633371939923557462371723582789134771315935665546569749972362196893263293788124192779111994507440882981947823169657908047478447447371484853851481366628890911710326880332239219478049286401694997429143630927415897083002731812749651934022517833147226752523973363964321462855649291767253537634803670460752632547137424139845850902641502516471629631676831002200521366189378755951700215841836781665994501610485105475677917147551001590122238024082049241385657121426998693420098381454792244306107240652426898171005068007163790046090113806678363249135156987570859978375420156872404382581941546575063360030641817957452852700605311169951033590198671586301189246001387964275307837253504249935048090332193963192402445033669952554582402424881866790521576319935156098858678767173613488274519039528671684445916489638284476243786372904081734989927019193746915962177973846182125736340321421196001524430405662959612520204408678122113631312990319640091928424689376031456267519753650388539615881521495765141822680779716375696186027363949344411963090987622279240436086780971835260978870211580802503426535461043477628305917436785003075940348917718615479160058393007275189913132513711784357259946805970693980551938296127410944556142897461153187265082264925632022533560055519880022655657310988509574139458692038625299878880034767191425207775564136859859853672448279505683213164382102166098412934285048073710618899051390428964248715446006881749582987707013186889620777886888284617417889942820513514778508905980157679150102396929240486831836924209979243490513043101481225663859281214054251483907372160576870195271552640162804982791614058549426889766061638861935691184949495691839725689457332107184978743811647859703961745819118714024011968561756358229785311631216110879827571004887756299636910080429605044040533556310140835598329466045566972918071385998130133058426352343668836640422528720989077077693357427231398874853195727788690837956972244528443594496692556982757138691417803662639078904814150227266229009801193393920636951231345116865807646920345545829970229906626879269627599569934111840160288483634613704275479809481411664969295508425680191700338796579487776644934090527207391982436648572893836140372251869170786176238614401877554428959331374824282092903554717377168984153433520727356672796188692770055403956394946074604586442215987584581555582651235644790535170702790772857452442990413497425362606550534633500945582977364150489094246088347320088431903614021875960198555836945650079661066089056285085765600838629778340701667179903841641286947126543019141119374301737071370988109497480156485246535534132039025735196539742840054280076965675194699056976794124039750854978878793437303359518556293755712412892116750059883054255733217030002779291713319846770861644328537254488150855483384052326998794699166569799928804880540366592207925718574663060090933967639744881758018144898961909650324824039967319011573220076139954267652040165932560260299825290449273957340695991446041539123019293188922747345941300771216987107550416235918836966321588507758612721560571477351897276899741901336551144608556427028723704401480474460180329718416271274001860107323888342175572119640554884077610046486018328291404302661439720106224122414442509634320300106112864705514981596720916230265858138474781347985934450211006816270045304688011300418022827980811966462251148752123234784925372976249337632587140354000474296509229840109414338879799213800773461101948011780680785612957676886654949006354526821328540799625721282514594504277622876020935849195384491027708266229757190424443206812160667466900758175678434774982722915771980536520175984196618187246010705188134233378583677316130052305113414459338083026680281807622864177163402533679025302409459682265150872214460798239090076900347434126575311059710793326623625735633775154651069430103722754259435237280903548199203491867527616361802932422183233209832698126470244742814188806372986565758116209500040485388229294502998613147398189337023344099331104066110104295454530549950190183333072315220995885894365974183044016525864109731546593962478155446071663699743971760732940688664418731461361216872932235621102387043503553912582693455388025341250335217218238842749177632434100800538506585146879595138234065102535318226450900296142621023877454862867031267820918857246385630130054027911486717682931102390469138658235746799772550439214124495019568895977038487416476415968786725424777487248288095831219858550658717479613675015672812038527908285948398539476058438462141396355539230438119176719680384551343417524563700433712282165610104965214654167842387955640384123527315196048458915937558102308945208236698684153213227312031859312701366528561486108826887366848037956730308528159294372493149791862565913044119130330086772708940677598886392445878329802261074508473615289760059049969050624219937383403071079113145153717920310360477847062841036108564210146247066193564881743354651489888759104266302982263920991505181466657219253427891529809163502083866448589646463188319507151391910651148330401745500728294147774580067087643085000772566775867497020141753689889224004392930606821942023769372712222662198774658319838464696337613339625857305394863703616393524624578313049728748872447796957206855611354018774502049829754878984552869526782209173194304246231347990496873824509045104581894911585937946860328970059672298410978238833960181174304212750409441421370546597162122490254264525052250943599889605485308280957762588343253504385922992555145685129417389068050197104616125787411777144264969875304504584151323984890513864687880273274054880571142313791189722732572241052420250022003850294158214346734086721999385731228064537955606487910809874702268239881493315043745557240511325010676358490047307092419515805689047764705466102801587614118804337262340215382924437737965286394173434762312084318068517853993661046624766408887161674022019729353254384480852664128002823729469704582711086763488934868979318491810660878224615023673649642544922617008369746254011212329124688857625324819866038668426809716083852124523838878847297214069012889242131382774198410274518666416285876531834307670484802452868074428950961264480502997803793998579136634876621482385745734152961248780387094966583525417654761524971741119126996489225968388867222635638184639301994807096293946273649747507661558532102361723339772283736615382840930799534560693638438303372771699937906148000226247521948004981190412567459605330765387101537595597267114690105085275779694569316675706646421941397161371003761547122546563578884858822115786535877234606715411657419055654529288602334996796083328808012501514923568531985126754082347536914062353438458879905681077913420556581734972273349935601067147463347945676183022721197469874144365356103761660363526589219061434840823167119614336290878549054026463464221925121696428673132108979003774024207418883263365242714082893429164378880299114615695382439674088795200674691798797969029675486516857707195624232225714115070926873219348517510037070165197087223278968384874190632110602095799740898494460070771063284880460864839705105579589282270569065720139891875560278761570249411511492599919546660594528660023510030241678189424463657238398851086111431605925807866299361450059309676582979247353360007835797046147360339972620203301685284374703661515442232025282925593930463547869712837111363939836295748687784745815728892370764229111953996817904013470426345666671362249450490359440833612753401253143535178545632425615943061642259663051741973396369041353052001986119724254994808048734330954362939365504956076948147411346065429094690958087553286687331730892895929291564421510743501641002475735711084031129548634964348177730174942520710360300866674305725902322554272342061319220245269368148744781388050099798420738502444074455398503241746583772291961074826325779285934352342338238298322006602446138988501785830975516782307106774571342155337797000236172780545362790581503996235488822028941578222335636982539852621494174583585706551981210543127893418821057273940936162309608134699612327540316291377869005357542305539341866045900018126779957528395995003209750900660625092963265246802754188932025421083184652866775280288944496743547963816550435353158658099512806360454453202930520045608573860614774833707057630803444759747736346846958360213661702289331595980075930917213182606054585291466445191045632927182712316052505661861651247576047561698734539898098574389075727132736210770728767048013542271546112107897447539573064569770902485341478528015370712189862104945237570226402408652807439422614541717880389897951621471062415855789338613664731134655692937541318466494401880592593511821343652165064832071679228321011873429899873430702539263471510284259203555667224507992529461015390412952525617762053482041041076830212798722760401342465337061828833245149615409512032918739431970645569504750805469667698165110126559310154132486905277918043256166162832099484846629939220260066855960847795084085481664842316233858221755410211095177040219594396219925561149672134607125000994654142239887613057041655715028789906500801800676232097131974064725781922076942946687365022269349266477709601451600888119444307871284330871537414840894883134806651599697795735601515594630757150063355869641628626524487695610659374708038149495432416454073792994916359284841469089340697634059964729903048068154802919391899811350902778159994311222797017596594602192803628713229061937512545917187465472758333005271950439540696829917987599781157166748157573131760896823251881723266601339969777561722642050954896836109015188537619662165349277048329608477868105489310952379519699875272064790817686113201819094671075693008991578812481968329413821135589637007881705267387349010912440957321892700439615270564153341012450049338977394693857063681797102000765447298112593014293332488380594235764499357735312350616694735381837176861844157645761668307388111127358280824368808733104337535648100109235034582776079569108072745572107319101003271067898464200375857478063272774907571576200774569381778642881843548298372224239751439280535074203758520680998019154698759671671180830334885360142546805687563052982921048792850151288876987287466214877098675340564390834367038388854227090602878007418129271123034248906169370170886122364509012847094145573019136909590910437611701785105841661697577630795808872885137811315778687585207173437444928344366055425411046124860373900066271062124790052564385944212285243921481871345611556891339223569743058605009272486681913713212003898377161204281567053213778481062062326754881496998047990656981084809661889490248112797221691565369544286135745982061914969292724303980756718604008639884849856461830925456717957671903907184415246919623596005475967429138261298555137424027672524908403639288814727806651093354700501193769401007414648423364717736766010773346706381897988110407431809458840906596929043250893327378225766283001581027960779523196781265572573015007429536452598575198843998959830146842144631396904140137554860696030286774514569358527411819431980207964673239993893329105184259731015032905515664681412175499156365376381482656505744438398774972832006581825034650879696735128554653294103721119104120407711353355578875342059943400244426209438669739271721458747569760512733371464986439979369892401507554884501699374904318657035655304899060485438237277388587521594878827821372319832455467068514933268753008743964558737534939932941004437606781508434635830120367668244977557886016739239509169218943021906144369470055801702616576211983961440364984110731236006475941728489066346782769277448036167866370550451235106068945470041142955514203159281061565036735293099533203206242650949848607812323323194638287202896020284504578646412994737517079809587593343139413941724583756907069911662159267573395716495910580097727235460549113041761607802860484891960302854610520640685915005588871605512092431973892395333044911475664788074798278566147977246928689190119007178491526740845890795401473237592796608013744933285418767903537898389947088692323114414181611302362808579541383676301680346846482800118380068504025561662751033655578348616464462476161327766668818722895146932050360213413702412649053118949874771235959636978124253738598050307631406879724976962912483879508369542091988860360326786353072975082126235333454029336227303090018677163338767598217457659822148738206642769137090679291519419797935481623086494029130355187811557521344365080281150904508976088680298048884338290329958534504948594583337992033907988436054418076105302633926147232753042616677450975145175481218001711991103953860649271060233963928014923624480362452980471008231955497109637135013619798730990472669011166604572610512729388796481771984790666825986635619841534486470931231747559134539383236880193831787329363269182055844085729999354478060929215049900200090983334068958153432508902733885911337910271424747678665937720412338910166127645340310221371687426936578716955743107070869135875882348236302602095873846622863318003524369184066583611931696218946564539244631155406229765375612675125820584222542145542558475698672497947179494430496270856975721301934127411361986222440956636837406244000892391915636696162966620906300109151832073943288544407023220386657533870680499775018534445125980659727644726595227802841076633016256948852446599086079149585760832293905987996746745803369825815425615061913120188171695616990441626431784143121305694965377622206985344560178766232916980132593534450047891923182628871619578778955560439362257977820507276885632269219513063728109650658503254237590077782526055679248415140708444299327099447590683025079842685729497433473199511970325901197403008061336688905626472926408046672928047870816113536118854754083455521771330325641166638354428442539122575956676262702804610738203842040260125045879136479245842438185582735123221608143778861536644464282347923361240294917819028079079766478829317610794456994075821629580423831464623037045405083169034576515196387229455231208539164118944614963894473312837229896793822681493878320121554351176818233499996865081917130676349579155536621929904966848710245544022455460982040846195491011872591138765214053367238913343586005648441447310820566470850643119214341002716205201337245408302492603436480379349080522656742137216306532027028662292122326397458773471496991957493843746731420167172561008951316151999549201729819152119380176862512392449232398229226401424902469957190360949951875107734598100140444753254286845166143002284572477123623102117360789042637944542827585821741895065692756493841271815028150965147368658049043671798740963136076164486893971986985065762123056504694312506412020296118207299688561741160875711887853649021031699667261528599142038593243783614363738911078757777355535856841900238115687138390993723256862140413927459051001176720016113623951270394420996266838169998693974321430210624473026930940242289541533466936034380063600756541773271837026291475198253673380746356052846082336312331747367099077514340715218060649076953148783592005648207881509739760725963994442484677370681376768330149379744636274516892047114315976798928997053626602012045801114518270442501232480703055644181946097879002405683010122771214987067621337054027944486110476615070376133666232511914372094058520667612402791965926254125982224859153552022831225038022872374061625845686852345383497173827996439510082625139502540919906702696211211657769630790708235406808951518403421884433730455563255193119228044305294125041882573771161612770312838137742833016012307013664098955963815722582194188553645378866825334330034474738455072400644063283783329692212235037037924423141552379802277058890310786785865963591434223623641527886478320790524987970268625382106834358577983922052287729420570314661436104297331589223294626748878171066499396668733551365621763515568772245121637626961271279384124813089062234913070808724751314700532831751984702588823338083416060370543447644807783684226653535700473034872715538550884758938229515630143203741010214937702475247278881537928923630186609388370182576207411388834071987292359867472263195251949696813683549141924390368621111250185783897106589543384398390467862264625680065019883663949874192159894996205130289077351437370464557377423288350559872990230972435802454277994769628923466469422571818778060278579654261862003651274525088385206374157748700356395382675576490154631691310680498064342423749306362169078973196216907470604980741092489553509045858815387419362349565676958226537806676406189777066059856407655423482490207098903397468482539770123632009572984253220112220135214713888661222881245712734576895807932257474094402596771617260908760281872407304027800048343205830515604893211639774330128222333303071975362383658800251949798772338433440785121669487348421294343741350741712876354745084082538039823414670414973380403958143570756113998929011411075236895852172264431871051854045774701215995734614332622452115550269399550322691483046845391131144735388621964204227843006871275684467352467130164779794329590954354255575741158960035976424002751634642643668983059305291225963106899944613368903938967922754842407147047022594304730825215131355012064512925187915651081757213755645218050955488952310450043163249651158580490176173142139043572769043980508260312982314950345222169009931674310135598203154697835311090862299311584336342354823236185701567897739563925102093681282159902312088597097055013074297132374624476122141100705100995464885445116527967566947445838432209680746726983280208036679148340264383782003323814939590753834510977261180366557620505921049969465694591483650467693519006783742616211975038071879510780105355447697096717692702646579523786800827709553975860727979078257630018968937546514680586494531240190771829012889364819772861656869948584787722449139352903080418406790344385273288233011258162468997927385669615720123125950728737808688481493716824221511881817836983974479137002016681438820381149246953546167503573352226613539116604657138418405876287774186890603381136743343128085863323395316548963571744062212809370203229872056752166896773078901131282554009092094444861337277986884612284391904345796737263212213264462239133016204201491023260153527897292402956976646542751210440715962842706759571400843744347526247084512818393961806915972999309172107068579647104599038990865995635197654176106632617768480877788441787317166310191207915730944822656241863803829243767398708542041750152041175547605499084381095939865589239841461839752298383843239534543221736610112105345636416077687560970287582925022896598047624123511441596236784121892509332927957315901006893795663717921685606324459163796251582279055827019349747543685408716264687326084607660875302387344189542797621504390637622824614244003419055255706262808144052386752198129014426809085647127396049147130462117864645142440597147257934360838989099716197858111838952278615449514965763543525891126602430828925578321446182743306055033973288434315644374737894455820342736511125855231249035371214609459553884731967618203419728274608320159185658376404288237115969097072897331069725184619075695908004071250509163811605789328953377040380688445817408762645714611716757548514547504445817538510724813495433411663904676746407592553941489791477029654227006501669753871925840925463044030217189097632985916485490821043222482492375165033150572548388658461871914577351403838227610329647475934430646576196121875460263421004954292752296074190884004015805693222380399496455136073066440068295782117083988856505587803473957414708957277148898250871991904508654076611387851872528889423352283255848979110510535628435354433873006628391654921346119178561596439473919051247010173624089492975343335646122744863254026400926517762620448964150044111214499641947262612719955291769737361298696317969193783561297317648358891720049035843092849742582242604680858367211493851591881433034079047691644523752270303867356861902121325334569967262896154435038353191256423725314622390195496411058663208529310625656692036471840054638222667769783891507662772572158473880643285444429866139104767206245754840240578185678050896427466100370234023253485606237795512329888980788060478783144651040916908803954308325977658380665500057741348248425901034052786931540643458774661783229921139737212602860779269392276294278290217792904509532313365681191173241031969776104351940765681827048773132044010881937342220878362747155201278615718145674055296470633223171611441163342033168303009127051841889874806745486210147571710721217462970475073905575092806257575467195756952567258287407790822058171346309975071749161668045909491722525303500521294772160729979781628252693775371260395340991572279270424527924677109958711090582256557400042806823671094797532091917914836501072982901866995912527180675360297643824203786586283111067488561235510426252685418946419606420474513779514247422975801849978692929937468624109698192634594668274327324351863105129754088149764779214762353774980014667177422326134777970771415275060437458806779764703165920519206059482273460340397696844078724543960670434465183736031669715242870535989726480348262335847449397704511938336424827045695892902212722716789313521475954545374323666676501898866391714548002926899507626054601192369833421319721169567388363871238936169320451640039638631838401072905199850113321404359566445063778192833289012277727033467692041171167815349979480229301061955459280397431000757374951129202929838099490285317431553687802817374799818398563735067244609711839268043493306315842295337408498623700020683098948482528987027424766389138685971382117624308862149134510160158237938630182823806644912934048843810672876566779322490255172382513961333485024169589596841156922779405483412190914270619370941025673517126901906277849464612505227309078318615515670283613341520170107737085162176379874643896354346598548424859314991486568411939653245975735273137011579238898583018663044019048436089979520208494981232833406338633724118044720049692076287201999536554155256605883641713562417857767869354258130413622047339396897396056085278387001417974584733967519842683493139089791847600271769900302609656847429014953170865937821641328413729400276456943136648798871127221478386898259529029001914112915654980275157247187338547963495320749711910474322287259366038455305535556008108708859349262620444017367509084807674394696342782513710369186316336608983925235314313266955368641009872406906638178741745317648435697807402731690492407449995828951322807629258425905349911762554100624035237664646721968644364396571387134205194887954062210096176485310136397832427769821175158579489681676529410420776248669098981101587026234454149562418524465502941133278734655212918552456836578316911222483471871880812838875397143263377471171493852306460092357136071946072823972448642898562048112396618192807597621774420122605777812366628555896732740827617226229899182482997174336406618805061724202764037560047992827977262471093312122665739007182769432584318912033953869589917014377343948011676838450404597035877473307267978653142100476621235329152885146462707615366079521898518374599748795106007923207880503854408034584086787438825562676934410035870091553310643678109507412448477297418103662269936427518708964508406781009421292884024674789203348620885236434209237148279458170828512041324545924612521927847416804132993852010872053955013462264954857840505661396677766620198744960609660269505095332294632725995627466301619356420344537973427756056231235615155289113071081448634886562663029492690384323284490987787122309434998315791779651814465834150584011994865725831363632488494848029498695489529982572609977571571380811891466580360869240301576354096030573148111671931027463358288729632560628189223865969628078816898291136452112395244397389845542615079666178290622804520055435744676459126238445739778616752772679269224110658785819993829967403635387027736119651651582302301142839504894736163700985155540013582200852285143333687378112701838924149565513857431983359456300215313185841685146507019976831087795590095338077757603969339023938087148831785889899010883820471573134975366909159427410977264201913505019474638631669002234508999765496051601480514398682645496729367389875568241697552195230863989314916870460608048516188819695123690565806659399396386638279801041156761697818480250073724829294518744945950030458865904566305612784741497149156612968873518329844317947991032823161232710236105498426912644697925388200103230517525998166207921873880841178752578325877540089214570291868396887918168590629224404921645840571039687720745699774550311016522580176138408215748363473282140011125413206977493012900976783502490001543998452225385609950515942159965738852207403518612310371108520454244251476103333993380137993692370321013175337019320057760762571402911706626160084056938617445051905592752022155369613181355751468203382956347880515239374792412088651392591045022481778552391192285330416910633051775989443572094424094599093300655128067311116626298474283031134243940803664367028314020403115772191388004286980392407971202079908349283795616051899923467877712589400708670269241209549421044181421627720905366318557813516209203818109492714593024846754242456443190613678894858460958821030160883888013156888926601999570773341599220399117029191824880724545069674084879819032967226582841998560415181115139405328375253419036554089850578036232530254524491645508590267293521169189578893033304929255636461159484573616529294933293217476719700203391296148198582853039928146117363750063142358206417011842889553639032622655865358215540047068936508043135623371735479395058928611699082516818864227470691664594088084145935397567704534171791025524869550778814066935851712530699566294159023863829827714406944054506935368612364159011001934250640615498485146274475734797872366124254040487456282581645064538479287392209523742773961298928401387922588894942013047817030363094001098877826813355944768586202191246161125689303893944870952713589983478972213806849294095830743055808373782361732748011784816011460178905181560298811233833789589437462585292709190962994534009379640476354954560590886835561251598504331868612543991886251241445993985380186634221977640771868086276328006870560925580083277296922739372891855138112168536938664835075440106048071415829488238008427825708492346800298396437534251556569806304333808120153142688913296147867080312727937773917161236794102638260405790336931281129000752749996366759988278392376864226196782271595924718368840019119963568239015354479913328083948279616296096010536034120158572802393140454394019389471724236423511273597372249548148118232730496645336949345374713018736878445712579331043102860519101238571314573426935811356954684027699612153314246942738967181167499396722431212479973315704300136294148625710391272871798398520620781139955573391903590412982782306843346569535666327964244185257874346015379175909582345705694161266956663602123179460657449258554452010996436282114530091998790594320875229843959307399483949872681304963389276298857544819082398988758071198712686588646314348022553188265751024551609662080097230275528862856589379533851344134916804501956605610305181074094514759366501649368440788604980171631220778499246255253879048226935925004587151778063059570251319503309590335561935834889573481615847680647398155453942877634904667880920734326202567878276537397020544942662755698501937451248151296733975387869371176529997191586404016231728025308828460182097404215297595202656051200621481415276653680787391732975152040154139315940281889425971851362365281557683673775777274198614572084371654570288598136916239723840486872595882199289593013719620595704882883661543222143277231160010378961435180460882683898760095710658683931883357891296162422623897697089135993755044435420280748251083843169513322137573302588570824065553597535153443701604922924851746678630530681488077951177496848956273562687222000248343275482750543928766321486082502445516398707008426164774286932827924067108605909039061395875984527336936602761758566427820772893636734680629488411895651005930738400973333888084317828423403411578159608314658282558264085184861323904854526229715216541135575998970024636234661677264914577079908921326085507582683506023211154239752082898986901211563949027858259893533120356124110990500007323586857064847718910588111500769147455005152149464865996441959742372646865609113785227680824451676969040706610292899196484494281744603961580086282953625362506974289805207213033080968087673989808664588874614856817311738294318953586494917083004578712789337401133622840406715485458334127907560585329382386566063051335195469450144095143871243372436237218469730024257065404366016457470060202858504165261939714689659586377294746570450154769603668241215022338201025993741460733449552538597141871447847709995664151135177103325598645381213368765607534579862773546526295900709760740341814563037014681691192222315283865811818189935566026602265325978831282308432056757634857803543684896953866647387540858299947629932654445560411327358241164185460549427124583060483250291745568807236465570313019183922572924854211540989542978560651165362261684161306612509977392215043623350483650472771718661673490986556406865394408394548365880952839271280055828837131416052515567563642564182210502313069807325360761030050497879424465505856995493666467521646789754271046625951740587437269966614043073439585415062830542635033026423119204723481980496399998817666678019349385892455549212330611161616572013887707198823462322632048644284378722392979532625451869779937395360691693094232606334993323761157246713289996788420195813538566934461570366091072599494330020446733289400407934796609199028659078238311637880898405085426917888743604396567422552193773481692776774782630778277218535008772458677191643249584515016216968023222152449233979708111449705839075798789758831102138489278123856110154558886944981228185044378616535722251463087874443503893341200091462517191511066347354603966580594636889161117127874710742704550518390220042775429922283707785927965097770310111870020683532204481288714083391363961534972550563661628874736900020686695136168438676332370443925799806897606871924434629301354056039423473443442206909280276700888415976269542522515398824416247318073161721530244169901682764842403178159459508706473630354214838583757321460613792338463474936315921090579361383732304112690587958859563406872165969575959725601920514794567145236607818049201034077183388845039987862032297136600311563027787071427341568179153115693450247549413156874889763619557975065277560792614865986357275082856928601188358374392726075469278675938243803319409048600142049259389146356277228892472425385089012893358213816359019183354726846121238939864542084261709651279792601236870462221706964943455445801486864877288286810733031512606904849917053470170357063013498512207326751284563580898696588723354242731451127638815885255872072611971395541419054687405576545190128860338087526743688825834422852976309176339533613125898825761602430531719054689004671914588790486635102492443046394683711679260785455957218812383890050712728430164639307611588287051529192188200873093549563913302541908355898966440770737653885687494245636511533429675176254095052254251991327565146076798442234564809905634440161093427955798459940163009401674018814099289956174289684464804692170931066997772420029116606897953042171814942593053868721246248735583015400400909765820147447136270916098169623538917153518098876483903039678759344062709477501794851102735782387577977112105540539904669571899979698777238957788542429795831544468731209713798935831937895293257485726334323186152987502274259054844479084486603213426361239422330660931894583786626855096285273428204504919317217811463424698736176286782144574371048175639744240991697250956514597412415205431504519361601378801711161655055382836059910182401765175292129055046177156805728401837410773113061580439657656851969451575661572281015483058594315726562696157731207396743253764105767942768008113811220550601413883879639839868973051824303646232940557863108060690619893098584673705497760927518154496823576519369426370493642356829238251462785661844989611589096401201892678177439265562724365810951742737819533810004548498336643464230122667694428336242244657496747160746725755636986391168384648580446220770564762506580280935689867552257398172469951297067022820389253929224684720853389131240566494757565636680154375141083088547228385236204695547501986979305110238210352451861284957319587892103942184518246636164773404886779829861740225362127124382783050502332081986252602709956555146525491920490294347169108367641446768350623954380466667629162473871130413044977120425416197426696237426759284078157526800626355818773374395867772133344504791041435724357764749151913555957121498635413671335749670289222071281988669374610772069237204392874561961052500624113869345785707172222000720434352213776476124143534932913511183454419083115346136800575341170552287381495226184061813946364137849987852396917735071540808177449247584604626652147717287802933460180135839330566362117842499712737624641406934991076031815761251211490379678867557471409235251868494053347261145001474358618482166187624552048863692008350112762621545961970022505168544022283984091461803069433104465923551082870558229053259708459627214669766795081568834984688179164781689647682143273552229146419290768205023351133099095561522536106327791116820955488919661209717527013103762890572100475843595913628782069359425101885900374050404267503349532424122646551551803305218156174078681156828013919317926434912127488691829845097295518570106801886121256147622050263259985148909459409710352409760586572467370150334835284206885339215569279868337485582878088517379957398016621321432236577118171610205248878738243054512679795882547228802281826667923541994486469582762157127089932439620380024917516704985662174423543351233123504162158764005111213554365768805266530467886524229265247782420349774930262709354831879839628826855520371724424431353099486940238518347001876864949998082072413630355170096423722486214574918419150566148363660604009704302647926907274382910910094984514029907046597813894903637698141089115369389991514987843687454214573414121206460293367760228173695410907826149678357333862347512028570383165954532232516957704222555883922189580359271547301823349470551255737960507354095711683332161579156826153245516715074006804761982264670912565082337676943893035528932789314898431746525356316794973764252568560310506468719344234590826576539213341571502906991348127334893286659119946067037935821007892394014516409946243097504518947346222418527640902569213395463083486681326346263021511698948759246970363554435652896381385510470472504656129100674562157623082704629683362750265203323305220335314396717402714812157617880849905480011387598729292027842577846163557897542807457487594652078369333727526437497557407665941508069179393267204373606282296435995676120095531032857696777932072160895023971344040759388727567519344420421131225374761163853538515190055107919476533417245474518692813806418654132845166648336077443616045179713340249695625985440537597449745402617699081447555503975931579200909006588510142763625048949952149982781608212097263523890521458904280969652788630318861687666769311949941507238602865654578909305276946948562097663075523740533203365810106362058751456422029319456270455715627987788239014651389870886607250201630123434536237402108859570080854379861042732757255714957363617010936015283575609401197391769041068122163114326463744792563053602968852845977944720655261706908696667227526976292693377850422411635868685251418903730049411383011531676429685503210133891818469317812459962348891034362883488541871658608476400210171940292812761415500401007442837857886728624405811779611314170001830907312798966781225818358445336462188748920159666617864988829363992981216038372715802181733179484621032416568978098721752767525208493010749129615670024152697582306925633295435722079654267317442957268071562679146831686242776359329009858802096908608627328770235087330924293139088493660200204989932812820012591414877187117025536544737563672439813161401412349350968527768174126494583778485755573430465989779617677434629523350072468027403623309655981047662851062295308809205774028689951182366646715683855310836423594435396886619686434094395745160810622367641233885125654198693812433046449151719912074652528088440879042409834650921535527697961623498750516453000194430690359920208253304654272221747316804052246751182627106494985419374848969390145892727027911921829666549240624482746700480106844952441706313943508902999726475122869259566288018110644643134837761997679328495194544975046354142492308763698701895786995362591772269371045026910311497655541819820078551217359335102786831965039147549617540908048578614690566071447745413166352008121199547365823259605889305522748123410106561764940691914985423142627336921433353868180753241858054270517185542671037380716891853550665465462758360355656832103773750908376963000378643998914949141958526052658470590156516460227900564639103923776262560869450711978020056231241814841466502794361722397944964068534724103697678217025450472671994564483022612345402917658145434433061499722190379101977390312600795187263069089241057787548008265190700410769494002394063909185796820883487533032782558263722221538950204881073523506198266304180727132449126342004830701285264119505555538625144467875095666186577015849353498354075870534250493554931435997880265075244115002999464514879957126850057059251507339589672888487634468210701374959149447654718530425091743273489203224647305367301033792944728199563635471518724050204588904536499865798251397538422579036570822804408717267870872292660293156477953276271599608719975744964017565742999294863525419645525244675047982629479886918443174118900890873084439500522114924711247175044076207603835036480429404423983684568750957864486445488646475325793678620908152981046311501769961842118732624940909912321934430502414378179203757132735852947295305316571383716557568579515005649732129084820946670621076302080024464813336029509706459819335828282981829819348686261937566744243047522269812350770697470237023052889102280580035707789435132041904607243309452567638767657961502225324184816142220239084698192512600624929995899966837411409792823549615954389124158930757732500553499093065980442174806583166211909542677214508086057217915030536888572124859301881139359986945654137306676923521961747753036386995023559888337134942490579973865054462871966993072161686366243321491706405626576849519015898843342812944789131470495194229650091283380378607076386140565923531638294012077934929869966933464512430198937765753588894866424590018959671282386256849726458532000765058937593531079579827907625253657685901212939817692754340986213184808447335412162682281231302386690159312409031185488586861371807944024742580368753292299349972210252834954094083822724240327765599416382160428882997342399199179294553999623734375113962305195865101103523287161380976450520598491085875023651228175188743994828072804124692372203630194436849918819523429438520746021056241961177601437219871054584288943645563234658065412153879324731679535369952997101350027106340497793956214835125054859233027724151659368548018638562755768804509374487766148226633023216146357871680373175157566668673069140142195764116421561186989621032586185385399999917706581584267816212584767141093465894786299889022808460958294766597813738894781640260659150108692714945681076612852931453323211962134205983409331099762271975517447035261717155849717748057586900030409662329816047803760596732807213315344403064245460676009850142594084024085342823897433336750345023982858465532437182650284508695831227843133435875863918872896690241385730331569037205841576664042767748918144009485308679585726443556947898238758320447952690019742970127657464748682551136690115136427731789112960397277881930039587282960652285543527085995711818424516100477613056815569097771915088948323541875741773347782662084380669462462344776034933665407281917635454532099840819003796106145164478065181627020082046129712016294413646967430111947536682271381426959638489967825116849270632392435593228856262225101989177888585586238217165251945565135144759154503750586592330405070842243088606223654032466933709638068755331508575897019690204442751046157472705015669093907482376325002206833065290256989562556317787037881567384091576509046254091218774438681927447193938784457497638998603879869943515236711860601923696137090835362446072929161102470089952343633196343501040586839994293780652939564972118625606465926347069609089670623287626296085989924903277968003881837370604287840741576908543233430499067453555294983841199352628183817874969862870774568852678037793748168559764690467610998839499836495440389111395484926025591895617963803165380895723688356466916534439245833431247704839818721018899050006373739523691869275958149458509012512573366043047233661957236607014440047328326501037854429281485820414931119506043550400805067728114661370287151434543836854071150654231629341875340837012853890156310559796896927558650404454204237936412481248619624045295708042822483877506590448300909996677714319949409601601393583691369401162614924112059451639877768963681962264049949890493786084699241410168936394775295315050311795480671268856409929456617574749480554834212615449651230482355054042140201747900934608475612264502742998230644930135691381319550836353196194114611319828374518070014560729050792228531107606055234392743789446226432076037845942771441617795390126823644638497984744373515247298990373699141730128279327778812290191502533927885685876631234639660622680541120579114354443465072812098438060759198778497771476387063643976190254549802501643628460763578101607127943415940758699314202025197567885314095072642366071550673847468896301178842522190735072233540263808183459890641852871440569289323366627579825661530830072149306133282148085631750867781905376096081504521487399898134297624496058249419571331014951175880414746430255207244373300181740439629993246119537002566951857709305943705649901767838913184016604198094073027968286812151179215236930046181174124261417284066353748835629990780580856992090296576277643556377885126476969028217690948336443939969878032473291669719027719823620218184543753344632560704275517710652798969312177428147618935961614971542078719661765368550595027415398028890302917330926377852485679131342912969267380290422943791855618041805206476166542027970156704056995973539489134763374419323306394561772831662915101200528483608528443959217512053503664316538651656156791651780887964666168811021213453540019695796423978188972356865877240121997833882107796612299245231561913777177349086421850248446735327408556152021031318184628966350791998225532402349159472749814200952493361876499522986109179247552911509186134090986346989649459135959335791808289889934555532206846691430145840162104216462226757026499394522166618424125211577248687387708972115901336965673108522959585896974484509726731128798217075914366541663337676918884506333320851430051335519526056118860484284240985199384339110585275436712007475735118919986735957238772368386632421710755331490923506401048958330710613463107839327544034363353450480849329527821426579787781565648536702312109254101687094497512084036943041500426100616054373891146514937702132461761079124427726679242569193061838744918695623783225750366493851818226494659422963839056071912772133627706009625468932844698950215053835751958993744240445984543895385245388010486558904423554053772614641690346920155030694388441245483284519191883562421828004105525900004320313089255353694563080443078544894740478588203846909571985079301957701314499813228915495976240636380311040143413507924829689944340990150770216677245120657948714622918369670347466722571326536360729300780673589725080060933655163953155081423143254493952308005547028831062785146554596837816377652946022673762636145875134116723506857840454293925511499533653742685683066241212248693587724753122034254797629703963418751709997351296546960536057315939825086694831109638564136981433817861199316842082820098057510680167180993617225055932318469735548141162256964616268702170218244168397625466375338749033641051693861342889977916817057123236706709860632441096119395280471899279967045943600052425715566557034958829515068614207711483507092079302637430851195607592484989572099007926878522467298571334336232045843799624404611672970112292969288833118789864356322865580871601089122680511177331738662192885683405638402030785507643969997888684944161683056715791587648611470158409524868085876953070663180446683722049211564633906675686632792523392010891846999416457055294320837080347515831107736558670551988030522672402571547927400873547566461368454798813216416314619806426002912232918636134268452856612941393796387584582524246558317690700473624359853209593479386939329242264735520869043518498341556416495459621766380063287065797262491355851802579879637249654347172876773026079853925366522110454115430070162689125723731441446940618465684479709317694486953997965207943321299778124629684374254154571769201638683201976462970924222839975871592468775327692418062933097983293094110843644562398000065278504912239118923516112854124341404808391912405265084317510575914729077566919956061968255440050005787583037111261880069641253083424520711652487147813683111773976737716705592528573465267414126230924314369956968891515658554617621717682914025174958567592285688084719032807946793670561746034250383077218594117901083542525578977158301310534355673977750459596978943492206587407904231619040973641973954962760290617548064961550777192500946608218974384186350617433955124182528402727434386100485258638557330190082633979117064678289735800118396047402255503963478037772209362797599427798356685957517839416179830642576578906683860837901169077076648584340559405384935139088700456747306093246341177190987780122391443897992097473370961826955209804619035657507825000158079731850652466449166093928466062539868083623262001524584450376509281542470360176794605151065570039416980220687228544145112029598966913857409942847438149072528030515754705485239747688482210670192513244181548940921699752212203800052827101939764241409582226608371447510635009443688859649680951361199258493323851722014994975770128750231229510055713388318937846868795363689950560143740061154365352498825915394052107080884502468700962191906435925959101182529512904434076507762931006334008884552566776324341945692890885929430923441449211140722165884832443020408458793545060895100955809583402297550830740065260979235433239541484930237869733817773705404775573425330698332795301096594980890430849778116949868648604044954159419825087737871542135106444144228396851198856844197272821201834523256441145860159494491285743740233007233231436946315248372936520277359843692216931310412455292819662552475797572065539487179848563623934011396741918013778168566171613549919877392308961690880279676009351598710052583199092834972904193870800668327370879185653918584892582619557439437015134135944912417576729641758520557346973474337934694534323050351612569143507301368733600871108740992278490856184037697033696366961552928551680943092092130757421361672912981495832241057887511528364095273685959072670781139956666603998345656827088462502430840932132990367276064131744664791793838129165359160514837741371720744802590154735448491237807935141277050401252198145337346613560373839809346684475186368441264953307306204088728793987266437475883574289961682677706747531864147678124852585217818201370082312893824448778001310498362870272782711692107483064616749003593220105548783159450286375277692959658995725611546009870339515172726775274214498287321814329760645345208029394377528757357789657569762361197354455631139020855361787187842834569876506616567070665731004261057149208508299710999790524093682795246324925594830067094573234763062200543366532939306482226969023846413124632970860639872178412394183294347565488731558493853048743403950977588646523296348700021682530302784180615076124947383736621793068661389514150186970116082238858838854392590759733680664505838657829093513767795777940126558093627843617354192061915742147178419641791911855793244528004959878211816139798596263186376969576078832932716747411292788890521095832822889360340563960593607858241081336042043616663398856392228192534317685816709023718266285664708223957808928999193760220049708630359801802004900341620672551648543236337503516093544942137841004887868398928575125283619303505198831498593987093101483084142858999219624825240559165752862751588162140193259907001949042578642295520381580488711254154605528172308992586348559094729036865578824492943955844795289247919015668616020865100754442588678814502562533648080737184467179412724498203584298142584911000867516633074268437811244269252984595410059453061684273130093029561728029968300258358452191972200019142914140223040337039920173784999262596337568082529656437543018601702185259764134128543455477662749956118436015846972137488955803053607849135816736461203500983521187888338236429636316100291677683540893614250555981832802957680811873142814183217246726296843822373613814988306750726985353455394121708838056974547700362363651623541045863625509137276794810719327673855997100767283246355391632599835177583253532431765725451784667216105841550585592082574166477452051991360203888090544545861777302615880972040701329203588250489555179703108707445123979889064282101932062555340088565324458156461437349080937204954119049509488834132102663776408776083670170130062326544258678864626439862309367926623050936103882470909012176588356230106444308914436175076163872923102643666184123710370890852885507124738802783811382665252159162661544111994115341955501642695281382471727012825769650501526617224148349493936399386665507447864444696017529917755378553974808779225853058774182693791605229111717029389189469471964266865629829359730713717460495602729528319627798242324936051126270062088807439346550659754287494967069941851659595700849840732276694635615927254323988641150185431611572237912758426593158169972940086666674325352442383612793399439233214258595078336448389899596285894398747335852752387567986180774290340289215273428452993939986104375525048625496689008984708801026577977712359483474580506936905465880127945906527786533770171177215366859932675697252611403076036227053316258862767203298205551844577745352437310615425156605401778713243240357551639890636636165799386309796319700214463057769653947940693969294350601271548753748982638092169588692240343754686283986135502186218896474251588715714700136749198116126824179992044840726658370481535897930810306192585538388036098134906240663603874307124115717628860308188156615685039979473857370935222874520849698439904856278713739949578681798784128751949425049518159822547576208236314293145607055587722863684812140706543098702843090922854401988295172375726244992093550127977256872477163331376118162316946616173126698966279017555080936448674862040513343380707946633826949276013473635721491440152971636265040631474368316983381681860495625791914565873635539721621590304835247593804389593287807578391230766890527266583465871203467048760547492754945182457547253432499133352689545036246343012675527279681545420384236178315783184918745722725241279500324286226437899748496858843147682914872108535338658256676378765115262938257481020380818977982654442650846901992551374323844285641501506602425006491432151018759317481382265506642584976947789678855678330128843462185447385354881885766774156611623958988044962720707576396999605073910280109809461805918357819443512403678677709688955924383023779994183883361371916946487325120273002252799247198631897250193213749517938698180629861388603299703535205032847791080919666683837346867983186689614997917989968518196802205743299419179141471382890598025009302541582719148056309318824791817858686654012047025029485264342133788767612834280068098885222341166757657640917751209206553090645209838999408738237619742947788503598719298247990106556940899176555997590917019167680761442413391774850714543757821571120715703111872878378355151963910384728627357212305858653698398591074405512750780936135290023626185899574403726935026587381839942803249784117999139970462022444661422223923231772598267604833915174535832744608845648568152754485067024326124509470844328777970310650347676038827565682872151333715889881327019119256638244931305126193720728143657511475496062718220624053794410336792666289600244462430232569123564921956836972665955571129906812669379350387354525216174484645128474447534068851816526019834691720051221973631679659206514203918677656619994147210213061957876253232449036943847019016705974113840743055409587932228886147730192501457535928064263324978454267437181952193127005744896892254281125955238854674612601800619362106927584238477710158259283176404063149154522360701728633643660742324533028671149563881076531875299533203515682976636352085185468417016029445411274222830275067954269975757673768051878414488363543262254347094640265745771586213218379192361700067780475986313426319688702636858065411514974323295379365493488290258464119305189623907527904197473874435099725718995357346768170254346334903279199943780628770152837947818310418781791910995657192203184382414894441870361687494378986466925388593715263472258048115624423734134461664836209022594606568307677749746958957584289065974502321868301239340025437836752246020716970942684016767002865260513972864969142229877267073444664121344244813135919593732957692516613451537712381330519442031100915604303156695529633518039013330918071967469943434491199501536617609162297123957633002758221917092966303304879351960485236275849279949617399921710571487370110077291091762244256256133291465820668772238248133549326468087525174871579501135539893077855648541525423105588704583334116215085938374384091980405262975262461471339470066114183608730924585211436439636839052847504296437554236729222181739802984374473263059656634460376083294777604185472161161371495875673268021223559742899740758172310428827020791966710278575486759441428342030613367750549541903423457366196778373539885744074846368027407106290963557045344435195649551347960000498653644986306322486678845175403204892057719925333800766613369794048109571442315197120077775984059342191209809587049606274225062866458546181946174774733760991460372348971946148330089379239419582492643710193709565796101142781142236284785203009116721522516662534313926664650288177275330745097104113881934890176210713919077141137178024919594209158272775299487365556364523872423873072317916856340019132144428620331299031853046275787360840328736181000677700194472562035411301629682134625910859893629128213935614823842241192442227394387826749671780865389790289864621574726274751687529342488505465291399374756464402435336901017568631842592989759710505342127625293974610844729296897361814897088060215711357979656261662963398212095634912740392332842661805325153427274149307680824171879407657853624704008189100769793180864291532242214496652476545316534771733324044184098708895131907843380805718502629258781480448727780104945677299251852353673507739185862127388760603778474308529516794907967109874535783428689597467299701953594767596566825614741763116282887289063221555767977413550480093822807998770450569186343500865792572675122300060574342237996592399553446372639236311121509622169356339477529657613698879784262204740642412271757922330622491211976642068694943034412727717128515526077554612830646513239237031132181654754139731804544290226609983022254608232011405541693569400553342773024996709497993873593134848965953953908412874506569858589967345788582847064512134955272277946229261136319141412194402814339348299585791571052905380129222184362837677840147585955754252337741219670959455168338615754043454154447573662984299636845629279482123927794806104206686997443841962236677732407871756271820052803935003394174013807699558081786592056589595380741465837505891695427667256846592074170730808143409617461832928799919086339979365155188535029869472838123195093456515148299822967939231901190059782314078790615392822342723766286206150083449524077334625118865220545430594215602871125819674901694594085828215084709515163289605808864836364147264372502669392790577253687082464824297377065641686729098004720385334478389038365319751221099658245032413094269410132279970623167115680299510089929874461300951721484714884143034265088421149406329728384795518646856706220136039305980006127068641356811247923958558261266189318628954613317769088699515932139353362354660231444630122032646113222947240074217127235785036518295098123069337992992118648210603838412226912705910443852700799861430762474339089917478607828281582468779215547528206269305059841304564645430875016065573560318500972203812402580489857443348553481750095981078706537435623452764826999070441091918386132841266242361733680490870180873143849709079493347536692022367301331167666627392968971979676604632149535602020472440149201505817777886222743300887392649081014295120924525138861209571301716928976173708147714112677820668101255955868813366127061497095234457721567250476203772602271166329681147193285026478675859548332883947644312470903487851052671652521890561010044372903783791111709487522065240165523049522922954264741197437136400429303608277787676655808076862701782401266399653930568829028007974640588691241720616680433894073525434939885957303851358406518245062320341942781508032438004562500965265669697237442712400539883682441782556674583613653850807449391896117572349513541985751033255770817005806639705618022105631401517915493993242156213039890513137505725991342972716454973389949621750651129400459870834056311584294689854141205528111517628339677743079235811515999820825947829920689902333722322714054831269663029558717250856016250769584817221187198177064876364261409449651299027289741432041619403510391170948394916106002620921807807435074479351748836324132077723578099218749851478385640220868078086759335350941759223444718547210856276422945686134598110365916858678948106069386619657057517514847758200464043005751658936608950496799825545592114075547483254051976100383731075661650794195894864970437128855571607883631859394922276771437657497543661634066546867742256102617202620919538468482231022529580062581541143238750919595590725284284125973449937269684857288227024278973071465388575578848572914225800024565439586004702646367524906095446127135374644454071733172801369013134641850271014727023137495262770390241569273918409770117902603006303341184607354623154970688791495079327134525843793796540812266994141414242245407031722314249485945565480234098847230125236451279700550448698501487618383080840799401403324522253982272693347270816525060525246091450325348904881540027571792547852199736649748680755595076335514781002765875233128990713135150188709481261012961150456698478582630006638699520939247934563406069502640635878490212233067660631808199318349620010663798552317539499857298798291481975307873260890538723983255824655520964517343094123732712324798736564472545674798018009732122823360592150400471970747878291825922739600796062283983061557691465048507591904530344637128385496182661554603884654528609652239735957458975505454110634773638459788120255314361618549340560456475714918862703412348616642314925807003146542423787258224882337893594555127750816790166993997356750285891462744998040415390016153313026094086405559816695033497729378733102342842635298245404236912561109246392856473093756802186574774843912636934753690975728369259020348402701351786768397602373520537402883889862874903280838715951418348123652693225867951104308993395562532636267102676999159969743002884289086572839306760377209762492295205335649138933610049993826970258058151669998622616761651491803881804950186250756265851405596215079811852753152971439768470153666138845447295087600612132006693940640716424624518255127586265940618211119726133732292525659695134081984184382188199668006193818028404609346473297110782681790345701096454172374680642852290151785567634794863843493037738799562906837237476516683266666110865692873398258460721442790214110621385176923695563173228514470813220008038531168733892065338123206632237858492392057798459452100152740243633225838664142049702066674525095590582818426631054423009559104384198119005789715247069232391980784201569845576517256972111503642067489664647973452759913988127591639315697761473109843627556246071394861376486571542491032394692391725557704302565858178945254252860216986146356384409927703740399481765150912953573279521299336217952081750867835042092456985327637213522317168638055537705549469769805329469503000974040766842329541795668962594256556916805374260445084970154003941642475444368206256586817053611359519088020301414847244140524558419608743526603013165362887468867373506982847297909399188064405326668312288692664954499212392825992909297147614422255921110645872898899374385397453089730969341977066000813868805159526934919241252317544343457135829015413199174066765097440316483033377266567231982903058931423865483311618882558286040195631063606873280448223119174635600524373966620505879587843689682382805818038032938382573738597011932631144551657119074304968785315251776667571069398612242674985889482827013959156345632179376987709232091102191324410001440368660328356426311385952077224453935245446581968886295831158037047668248527163688427559144018889816130437896961792296461658862699784143209591702298973158755061640121477821938904148379853039811031980656952476162829102133764782496278611612641196970753116041313482948391111181465392269204741653761080222543212353740690572360712429455143497989144375818771290311115350120180133612938234275515809179550347284627744546062305483680626021599971644584502501525514940629681002792091202085985565663435586401567152135227008934147729301113543339224167465364444183668691875710579017990149902340656458794116910820512392809641599694874358066538377539077388545047381527363705246996084004860883350498850952035915890511195118700843354549351309878697160888205350755016749774970355005736847188563401468514482002083508472139055790703118657747146951208615868539472554176356111044137300260656775530831533189753671315889487419021726427730348850079024899340291844704460163918173339879194591011143082855909073605677397053513706470864073352950618942295223373320080691475413440768880631879567835337759495101584121695013230135539831360231941489982882734041545679044705489649595431706184890894615580202545380714771691993567537541197866868829575966986529570080215211014603522228560404412676830888966112112205601318480189825357832365483437352416401541553219202334345742326038274427756217554708274959317763069612566505605204912782151707110741296995387524090570124977561822243208794611747521894359400819558131139542468890133550518148788536404079655833802423635261503177191257417389657191089286473283101771161704990558488318379681618568355379033922238420262426045353330857837079398058283694596235621111838370080646781320670212006420077067530835201156494611600273579358718213025272014455550785943258437378097708169466603988881882484209330817103641320240985715074786111177255858544378067562204895774818715059666176859221747005749574612589377482255375421348553368258611584629117031008494055397557398705135286475410558534977847692827913681081324869404553222461533403394163237237170556051515899072076212982530787225368547095087263179665853233574127832211405871019397323777996866388427247579734159347735531443303626010092281141365898442013744919576598445741800308894760391642273140799724321055725257556920593455567728007865734389599420902845994156737656055992260207078486366251954755230401534711390055804840863931539186333378887644108826470490375744990193618437024970668126348817013305660451561987014885320416035396276674925779194303059190347684375427780929827028286305897411620708956715312261431531407704771493263406257367914615651667372683698425066515420428415250492835988878204675713124703895387595989077280820109067348526139169864918900097295170916024323394869030667675376756872206626041007596890651234749000086764531627643658770513973857762861906428908548979710583731699736962899574301912977683438378685971776635324334365773030821919530086990577836211786729129096432822340449820897488563804261192873868613684098090763975523602439624854777397161295753394162909344678757735055767188555831123167013841619645536143350735207996925879353813457758093651854747582649975093572467733680782971367539806620558280569684330960078030401285517584336910094796862555878410069694985780274620775780044310164413963275378151523021218315838703908698643948843584057776515283878292485497147693234804482817365767432275414032772779191410835500915207582864038986899873156288565280503140960833106913174666486436228884844188157308600910280180872512463073002763856133113762499050728989884982410926579820088603111026667279691251593215614999907903358943597570875444741862066106540215753321240743625639650416018133072769845551928132049757139756028684842127392314893666991308687364340579093772948606283108140816061388052057183784370558383010168569313902453099562338369663621170819725205788959412036193528717496132642942906394311373663507701953929313271480589851091327797812776502849027751620648127185581754599729283262238361460666594006864940452175347313990487127364648771966810606146788916254948987161908324037885204979246612108075669428769321691568113116152193237433566286198538487519736568864060213354800233492478941252688639071199687514110182243069719523739388088090330605885077702403754531266815462169586567778627318752921374985168019729447671555613644385059911759841694464362765635375328816000839412071015476917966936038631338405444540406931975036740817062477672645906260930154240426067934320401511040728679031447940652206552638950672681045778332780375969756495485099568849220519289033242310983609407441201438433435702529101757355982828970992248164362451046706612989470635567388279064487992699348040935643782400252793543171517255101942605177197455183811569791769836464563803050766798453608515714807319028756785903114263369402655997170146473058382633706848502712414732286953911294815774913981176963891201576558867671303749975151959638388400746144879077502102867648941557645337180365868389507517947184252287090847721558031693890526234140144699796529493660985994980719184263007786139083432285121915878477898931627733730993587980010073432957830186424713407681595803299528739904717911315466888027289072007661819543029740776941223483009102626306388291678089075720036904049039177255802078302522627921768127361099645636825206927932834139468186540597475502878795035856427133773458322584678878150600479863558414914983217902102773509554260914998947742145015359512389177669683830753693876692293661504657950708429357184202927564506073424415334950859037842775594332783073767508971473319599517180457265140152089704969632113124013585643094681884438979835106550022996557672005209538396721308053633769551089910319286656846868086593565234739438346061990053733393086321613978465088072898756222648366353413166338849380008668666128627558182959893231624964912812980247197075247804867496950494891358253534084806329322297250051599995268793298020763953922390461778494817969098592421972900705791946635107856005681048735269939057244012522969817306789748511955061038091618202096763806344946843302659455393766420076958012052642720066434790320762664103822749859853143176841323240422977565929854557190059157179869839407229814802238888805357344320566390422106786194628447993759747397368616580528030733479231927730590854641986889210334023708728305571641004390081272802124342052852326033182891638119207425245800884206023690431765961550658305882748557503183433071695581376604901519723094409611572005399271771283659343813222088488436801424104293593312309147829912955068614120361000686616917055144160546910577462786982945920385993707047452566885557077686380271027595822393981284653950841704669582177116639851898756440422858519798437493499386315223257853652281482900470548988940136931051189468028301357066411374889369580213109781821217067601401361239200541943575356791137593895484061394149720718975445451055085685007923143183152161583069908861299054530346415334494121784515993528477936310923018944813103113017269550642155122571230499355348187737991131926132866527702649580758997083555364221008041223376259269561779923560067218602361197887385837388223885993813439974043669578842768265060407547813465644725642503246207596663272937522035385030502879316501670935352926269709009275064459003326123478801168066813420745324782788679594384280570486998579271167318240683933636517887692177852984426047070722315331505805554144756477889967599422167491394877134940204393324122503251108476256225698325198498166460174431410950189687061978385725330459366799471830533509069220740922716432904052538427844467115041446117960769506427067479085449238832582680286252693742567076024968777717221970966346426312606237682148674614454715346819661394648769689172304912607477061323225145536399120989272289541909697788579580429620824056468942837418923211819508877399847017191209908255296677018335523414762993824079385909822791132596305186027163122422168415483400097535522914761363566561225751205776531151496267826788689450524776992416603706254718402726367566419328301746518069714963748321683835032331365825159190758497364622190556566608343930371280599041751426492651383791719493341228631517124032574092412926364396815374423499807474547796844937899877092095175773667362885845903404399744979604944363456576007814367723589483700720337673684407350130165616688447654971817666704160885506172201118902058118763389553169933348998751937243024241107581490782546300191325827273298162208881319424971084478828091860531220381304962584880639380112946749113985628422986251806752962727354186556597352327412632395151867745770159853982922338513517275141366959067997789616147074434166253631682135666924482705082122657353762288910974546199775360603093332349779328584628399855484458097472397028666185173122957126561147395735950790080466943154955219140815707467081606854755436644785773544554904154053244906153679645290537043569185530129199128784741688778502372084535420115356761079113959869389194891712900443772437443138940500755683683425886010371695028311981897260995525793882759358900124571714164451671254987598716183733671350016976528998707532641114809902934527688494723953096673050069642415610170158359016095256617047770055454381806643657636537721419110200202438653332298095558850271923002487893390096213218284490267550242640198798825980133190314619304442585823540545697784491632769304418851714098883880023575228441358378446733444298312783984648962841923186496310616004091912645147143326655808267580159781751381326391515496032875569150042611927497547955206449176427265078509863861461315065852196872915251461297897986720743798278643228191703631814581630035387662712312678378921532851649797368681448464167682315504564061461303393515193395019998764907440977033997519321272085357045009822396586420345936689317969027874968707446454963935099492430311881473337527397305580853379290155967822151411809041174803684379929759702164376857772649746318031472500118750908335331385730745266104580079675189576460063186977373141595796937255326371426364865931901587281303584361395444033120857563379485891750555026371465490844587815131303646504148391073081572499877463339916530108274760872667164876952309502890643337991689601434272828230517185497298926097272537099232070394528556328091705288984689898122864563433079102111391235687403631794612609397907753595728787611844291379682177751097648631443937793524611291536758108086371875474908242395913274856049894543867869224490423822733470762805879128146569402774537767708979464285951781826586905940278008083360646139065536189952316982624263111748880806801697379624656053666664715936875790731098164451048325147445717502767776022682947219398274043125325416232002835820059086303173805133086355282413166697801313225835716927888810139001153571001488323988597709251352398170504820661573994328671282515724585427065257981477869531160452731039403309924949757255988885474093598481039975801236847675291313647849896204346279631196553515613423205078652569309483622776187306749200413418135559502907819062758014524227069724742254294243905700882872148385795919211897022256855740311717711615401769911970211722609920849802381045053352825634927532219457253897886737422380438619822941701606258028402368934317727709961807923675961943515561990104990336650164154485096764278047561255998098217878298173458125075590532642934878191424899319532575494919487383345832882005472245258259279464037350095299529420991542273542342286121318674230602768180269310459256865807646080602530130025545082098458653999271467962363573802783525862278056251636759087412127295118036160710089642031841235001676978069759982854998388851313520871269425925057197853225968559115404744696403585389440957008009539997452425778373610710113046018335781125937201123164592489610064688751479959076269896338815641694533879465303605510448609531510899034218631606640155910522947347071129006518069382915441388460293765863643593756316816797460434095293262813105273938758544218210596927398808475308935754568620166961889580639135482748339325159630732171180074996431747669492926285563308906779839614364477770714388311020058578257741541147323694435645040189872493115421541532760361241302463253571989612793069350478259395123096302738285489501976205412757758416710028400625786917990189148511474944450146450945565915757002540068052123885126224109395243230980717886578679528874188581367964147750918395022926132188623206860038550066281951931055132549652966773502535948078824151017318099265950167899591676058611740355230994617163750045583334199709333932078476905095899214168830258592999627101320038095411515076606421138147821266073594032379704991462757803054584218323751489874526500366431535468338783587020720830135480052684064263425228147766124436710719274236587621827645734802048596774603883047499213878496333350475990988522795785903852633279602347373715789779086443301729780138213983630058461539331009239550258595260222561778552591763831008611234612570519456978647133136383064033237982855318812163232557354727298725401973139234439185526866564960453054141405990369116725859036463215322638000761947511425519868690466191120749354097715973752242044254472524881829649491410488608262980295889985860327694744233491035269428063449254962867128293362088912645760150848058381259692077980302882431972273106438184143250096468345141103278478028580357313943008898877773325663921502959823408991925605721738545679137499735100341745523408229181263115576677739599132210920729659308792545496461080008762182948362115224889938715768743795017398222499095204842341345386454008114974404245237426426797123367648916140170437740043507521562848384875102083544368956138655373293401792370800946466484184185921428084497340622795696011411304050355161667249583506984641978034485392783712092759910146731054212401597788883169718018001388077014298540982327954220155018507336007225586586538214602678679552979752928734986754076881683403333920702354868672984786894363105012279227423243508352239401694168442752269650965623522421158494031174413424572681489778114720964799464816241021082419766050657551070329916295990757918476300530593424346329251416760670872571030149855149744212124977130983551503101840173115119348175675023131491188308216781316397919438265973737797173854628824186132638966454196453010682275873074350251020381799925481582508965059217994447060140782846031696801848726671650307018940311079243186110339515249226254644570580906533558028181571932533523521881002494645034803696684448876907569391175342940591372397055797458609801407684794001173968809624305097910570106311715027871889730939596128383905336696937761434737799418898030387025404813721079449065709439147393922719859747149573381000488282075659835725570241263369197369814926022063324167412921477359750410503444197355529583575809589504938244552944385559135796261727189058911683852393092457875476039829823775175270670982364574063852949222319556463275350945410741104798992235888579993536028431895211798019126364565185575098796570392460401778878453160923964443402626131308192213760029821552904291205654602200744654338292124750602532187844993602953968963700635852233597442190285540895077539211219028192977767665021146284618200468855659243279375701800040488066702902595649160879590345509149319130500322506770293805696920146571729060358314871546079005242899827998601260151111360944801696092673394662092025140726657494052391701545792511627776887960459271477522287506779576186411215260733309764137268266078376373533402195024576539061854911345719950434092257719308617764221871816781158925142668215418247474648754786626509309873632978258827136904885499821604016437602078149541850697187059763086200295824300836529558885844037703238332827777915468290477027962684917615519792923033091345216899181734764894521668197486144137899297379106029369906156587367999295637160612795250773406307044547495722450329333886524522546060698175754215247499055449691859386148191980624869135905095045568927041178216096025008836526412226865766026477439990570403689277385368823948208340564824639771649955396579641609609934008002555383264736420156197503804732282134352216672525200573711649415395235749781811060838602451867978626147229745207479455825789117742826712843991355239652072621874716956891192547038719146056819187176556756649344735219543558150981404603212930578726377459738229049443532530639734817061948514191415715291242642857084176920825729972603797733296383086558599460139324285660125965288613149721238360867390830653326642181089634260351455667424045785905138844245712352370355530518348378013715025684473369899447655019831486874382927770958739056851964194683769962970112013312810989711523093775406759837180412353901356815851934956438356859383287230184623754772552372142459781258926156977810455770437475624172769775859727208723896952840735393705295716578368637962705718891267103722932523746944050674247144232940007975921672832871275955642778890876685748830047010581843959692796647115011799522841775070454115204236436938240710048593855034237786576702476107191320146106527478807301334891872346846864628629752813846944382734868329639278453179800167003221485003803679830607394347190558742551787086275527989076727820552719012982503908682722729056097219748854632879413798886760350077190064170598451373286472037752753199563186834608374164500463260602094826127146524474372244505843427264893116027678671497051729807336229662087139727989936957539828809686973128504285614743446617469596394236369958003819515954721973723055616556602348733002131560850923687313296514255473251484089330693228555128261634686335782245853216624515255846124538247574385633097444762576536830438480058073254023086896127716168701296028867497159529805162336601538580252268813283940062711616587182064890643913570318990148630278883481932509296085879194255739869330889882123154285519155739939575995351176631014543552049816259213531505444215402845469209565540858774753039426319389036123340313154459706513257814059427007316744267233418015854874309374526590580696025429302917222865635587119172776805377644775598627835558357473724702898197721577806081165227339738659537822636540644811718670470670982226977206426628086314460241926198312185072197182935470378523158294336191655550060530753539302711054988181848228242011532537212328942478083536108515952426644597567750275407291605788897910198129144346585071590267244320945719270761054422498894893383571504666816122480668345348139208664662548657652521006645560287270698842289679071050191517962809947476550617970890386695709149189119308228209936583246455762589958990445617462247540285479180554179266259869143814409256100196118902002355847323747889758554622263344635007520105805010114230955706932813587858043127312281341203259369148969103509502857639230953585174755843243271511092136787366517354722614056852621312333426881842716782448665465376845388111023321010353254831755268615343912383271205574137267962277991656222177879379100607794027613863883326938240102781002035064840381835678681202783746030063330023527682086295344286816092176424594701024017034062630016693307888667575765313654233768832447103860828742586688357249557236637403320928251781126406654216553497178231607698499305497165956828876036047223415516456140305983710254135650158247232499261363453416406911481552594007699104184971131940436057163851373296073899378934194610800778132887838040824032560213696155965804266006971920037145384082981765520721215988892665616403210696203841621768693238396806878092897859460146644337532615253632158807632222864631307940021849063842281172184898187952586272412453443621861213259466401105823676684153954168656658515275074244628423798053564285814202446246345274877658663256407915229371610066192448868688988357326362629814464473908345264365224319826127307082176518226171802238823430975712853214290335211195780729811043700612732788971019764308358765835604602792636338381813694212167850105638448296807602103402198663963687553882015445529228776654374589606814156271911895144807264508247835753488464141667439206680213524012111628511295515748645010611612664225806914442256064472831620637299559908390692412135164354040330483062327529892479065297522058817994863346029800881126350530132536225028996621908060354041295613671953720727581297046542519271797812472151341304827535161632787617316920355804376883908667380110439422617811346146259263700996089491836314670042820264514103530691432068872373939347311827348240606469498051619316440922082770545035939633515440993739328030993982228295552058604416791856351197552071969619396897810555868687654679883223348413232539008295818392726284887436087530311071783154960283117967666750119829576916012709366469593161178758149205707301889060138412867063870124907659726637555614468421105765221014058165424175626843214603721887632031159804365920309152796088248117048125670487181384366189495294992350753125363312980313810411483959676985199891367808516010363297228801940270674041637668637772714121570806269155103509143391790923290811032899776133835873978112474772457447366970329356257787483206682189674307216288772079941973765867816931889559058725422281797246515635752443153551615475853168313698689048986549635118708335045943506903690184404581653136139677029386110686591123173308125484726664420582599854863229847568667094658523666934115310070110116189177529280242252090494412855152578205708871608435541675373366022174077342887331098148234259196553563722152993381518746912257715825224571771608743837911400603455925426191727438901147511404767791144177629905646136721259194570915572301533086891037290245465273058797400465884830435336390483812192706850985804956457330169005176391642676558403205491967038547398585040532028539582208184627357196835705804461870972009576861474035861655871721164184821533859867056907184390743918001261414622827809804794296972195110069892703899564227501950963982872074251736118207896136317557116445355156163885118014192662977203450976970642222371720012540827866345214724805701978913643629373589456803640228366372114765577158321322502147877709599035094794452312140353151799560191465360408613807652419532504866933914714851077862554757261728561607985743394852860801992293681058838175440749171872128616221973610462896840149223225665845778110792822128195274746712204585264499813156899837375110277492424076090785875554416971671188528279677079138763369073745783777488633243826516227065382794881640713876172724988459450315427981442565280961559973332993221238395473199055014369023382282751623491225551405653770823671031440859959393707599566672755393086112037097985038673115215247930649045282808667711425509332948129931638193218363607335730708250675216747035570740763625996780319641031366180010827133124622731284643559650901699124930502121649418562152832993676671779568080079990491501358262409139589446314244930958059485308346687431053778898670942783989118763421209562584450080820964321286639364372000447939315018933682912241868523868258180196165355561304756267760466832237054738320282688087964594831281744396289961531715492806127207872821155529746311204431750000135906475861933936236838475901102772335577593459434994799679426896611019339006967079972367040444409576656562734110340427320510728291061939802885770518802043057615307483286720865982881359439886538796540304631143120609561309783924267610114447231915909825976423432346031068459121088581835605338597808431096788911776445426784042289797076370982399926900202384112250555101500094988379132706832077266662123752684085259896589700785419350749277843654165034741999685307980800167294182750808919392187530363379174116922192135575158994310257985571399812055535988656307010772188063298739063507865423602470502438032893046824169554565411346829354046294245022499113307063733487279555507134006322351729953395311172979250203085482546236105780984712285580889364888046686279798971185738504533531323153368483810549874650132423814558690208739392873825128239801552298850743264917261253790855205879299566193248730841131774110248185119544605085596468478475328847472136241501017599987812556822654270109147412694823396114764910163588809622198379154596908356008063569132783625200775549847344442723604576755378919101452374514697826171384585653369194084978144751276567348676089798542209948315592647437526349833793743689959406445776515446403845260388034577668938616430534352069596084723394388391698288704955029023237531935352233164850340545556759010658809158236141043440082037600189000811025958158244885810059361689464410812630416786526442646343857987640871948280734378156347707056192564078467388295410717658564285625142193887548057906685053266108760584282948314487380569630330082049706759777792332011754577504982390697131661824378431173022875024112683105684087138928139961882714449151980292170969513579786521046535502944988175285455650422066777624522741867439732146396319615864153764329756264300295220108977000666602269275692026735867924977372628846340835938142493138126748691981683557229089919416710076113061545179955597608740769423108780599975911647928091160508038784629704766512924681431769791092353121158409099979884459077822738701512109627855708870500259348196818357823971165026693595023686296267108901760796673449760187066963757038563378529942505360673550696917875764855756664423012962329850147553496128166807454528539120319502818861728198274096014205222369853065872408594744046009027604326066016923260014417889271888379390224841241488291458395988469687415645563581681851881343727731268736612746468360204408186966780418689344780656011827153916508200460886996623192468746690820884208588434168628772044484427612496277579985121280811896697982217153260413187596117484126240200105899409392965846112085038462408051132746603666025696900070271392360645581059727835569498573251992396828922848078073673124381428732526599460291113715680190592618456911869308805497006638512780528597141255568705403657223930984137292198060302176623828799616249307343832984536850513040692383791670001490494895720504753756979495316044008087461266096627755499147515254039458265418607909594771822252811114930413440093145153829413864372875080149045516105483847377542910244439223728116945699673317813683192186126571053476831051265812896224383490191928836716192240937054613658759600033963613358252299410956933759978361447159327963379204094182348325678738868806707008703241419215574404899933160917364382329327119938549310051430500380037826411877508844705440690408233007803493198824484335405740671202504432675856772157557740218730888226127395185660442966356832430304684301050100140664855793597461802077762727686723584218290620305831705651666553595978957274564970632159702150090284090651704909773031966786027155016744888905544017880460856291343278224200823455705220232458592138252952322111600107373142522897607732181705455244443045413654999303055246391003229499170086133073475484901673076197020024336793220504429852470710240048679564223243207688131176051491003833103689034923073148129081834953694082937002654774266394075370086092545654181901965919645061351222749806672881479559657713004992604213225600711953998477466300440297730645245442135508937249474367217715393520496490967572526446112190862161157613803220434431505416394886013634713314470755873265645406695967813121601901140550306738130953803571000774683217144810516434930585007282341883893431298379476879397823206412652023819830235117743613760253736935012734582738880428070244715856946682246384348389233406988171230089138619922170618184331046504948658310046425806847644002833108920002920753338054144520159221756833890817765862001265429351135799645010608553390402977629841498990062201494964943216628815976155472945407952834086094737524442383257283928338750122711038558112101201067296551384227959807654732897575048813577668542694927620764110129825009706438313361150753732521733938578562126068567507763243963712755986301250075986139934643218074648682100794601244320380527848043074161675789793343547013106921288099348418421053919539671827421553382601008679378900615759066512647570712058175369006216870975259864544688540872512855260435261184732160473960727371437583488308015204443323156142646345468425687481694088186923998655037215617507177100426624657214217016962499145327187849645516327968769125451907003530357557595231682262275358657585959931631576728802448497996729557383300797540270438533505970756781938051200539889079847975266427620548157597167220023998039249795146620061594981449045769192755298702384019419214953641673645300319977788741221475653652860677391203689904398494083523599396464643636017166124063993298714481729389556184269030081065206570757179857492497421571033011842276325544835755134061523586192798840098328454596916623952252732414671280092941010668624822295736761908363521408471675133862457733506900440822687429278364021041462213659358068687915389071681284027052011930518228363181230056449018701128625513755735330255942922517376580560191322520764505300650398292201364764984168412087792533441339678982460708046406881902115717676198888233171755100209826876275486267479703485623984583103803805707831907458033057648642437848607186668292529965130813591063575169064177134066369670116314226679683774963951588358564645984166690785649336219385685508468865753882351488275376164281958783570500216051544273944834866266253132224510510489897752643113586379999857854886342117687384399921194601474520573165454534062775820293342818808052049309206237841920409730468060242320649218311744318223665767462316381299189243014003580673327522061281009168646557343678106953490268097103862774791672720580037237425540003325489861166905443173596699025163871619503949456348266515007659512162487769039209883356016040433999304414531502606474297551064350734551498446137327341560764827690592340868093461323665135667683630949718554285664011047672554520651370135787524105572681678917501670442598535682866695964962202295283295800649673208869332535537780184274879751488746884619874833837815571618131334628165323446353222856413846920202412557423574449824157306978203593150785379026511328924894538564642345231549000880433800727432824539592161810924556147790540359199440787337438862788724590884132093752734678558119909102473636373573817777945715413899510437856229780890642121996830701900417792076843945329462094710746717520544395193923380619722914111107819439357204083127407576809061503039490857314939893388362884115452052594164951098486769443884494998526784119430428154872329614066203053984931681425424828621159906611168596149660376725579264232829705749751883949428678158176593683389414270774639350814577657035298099497052679232542117765808033174247765120204333131291447020566692640225870512347745251111752277369009713481555299970385382560445091205589495511686098667667889144418735300308368697602387939713271176860864504491162620613159229296584112490688571291286142584449529007480716324578384649612593730347009770034770460189026165328173155819192460060769238364993385801949562428246215848905484388308404418979465486418617763304133403926501801257363991118202333628179602647284274057160956968813980491390582214911536169048733319771703263282570120500921599032236575006229776959046058024693890363628171219770383918162881447943335214264186598455685693642587577981516989842183433430890820053551523350368697411601109904757928460803251352836860643225160969655720583559719930196594780879131301645245810244762291720988800091852294229675474933601328889956235462723035552737527677842898525285922847804993891278633143247543835416996726455069699331293260024949837331635320847253411171303843950932762121716671706164511298140200895769560713620842732962361454104763583783746365711278294854864704321017092058680255380812875316410452435589278838371974620165563517514793258243145699108729215539813409016878815790565076598201492363589420204647890629984401696017408136029379970779849908718606132772499317756855429246176335341826532661448856094413210854826165853609944358402878343590497169975720965357429697655620304768934466892075465899104204261102308478385131249710816116607369015092012683829271953618670240350979392794168786026159579114177784896862480080614311113714109349618576789184754788408325197953578026850856619164768255143789246779945000950653168509920529297054247723511453320881268093238778758596887888473562477850761937155380525554397947922952211280924992271436972548702877586061697537997635830583340906892443702910343571767393616739143207693763144964654383309722580983237890307273177518172609742780986735708064264485382606245144008371868041414799947960360071305373978740931896538894989136964489414741081661283132974556779463732629177007022581524766923120805045188054268683615458379699701875499845613427013886854160793299742169493954054721884795577452969840122375934290275026065726982099028418800366003963388156413047658531359608044558689507920020534419928671116599495687180124720516934859142853571109266411888018216871474195241274327308801457591545126056183408638100152757083489102415428472795813153570150738679744273705240629732645197415793311342171370162528915955968867518315070822868152035975788384354383121088408375405876303157164136263338115600189377208452253803745771335354095108720981246641473157964897982253905798315987941161478076500843620027221835206769610932636852977442088787401062231035761338635489149236663167835184452203232961152467234127787564559491254970826832647594745001365315070835912123769770752014667197769124416074001931542729148393213206696975303774003409433552550070409120744032788104503091552696864875989088374132800181963203118771922334030384325303527976751455988828312021821630423304903132022594031311949654721464828939839810798412889541346391890178302665618694757128574608116143845177394413683916679329737079429548682772399222257143932118171922301057330201877083124852241100434298718865631265018254554716120974093152619552704359554039542002839750816845986488525160478318517646651253522189971431210362670168442905349077193930139187946774446978036845279235904781997014490647753696910256333514886583029137994651192386358988043582412875175902999000289272857870655532793779310089087671642798610072097138666995960051728520697394903241257510884014959144707657943875541533218160202255349566607324976085184541891177413770516520567562907877244380166151193387785724981042019048145916862799558227695927563133838024483135355045010517053613679630597551276865822959227897679835038063648901840365209652162521669811259764014531204273356584585903994052781014320606595697031800373281212364602105758093505718792144782939180073606323140959596142626401256358542204799688189587719829943086451532998972941744419306808133420653387459620920420328514784963834818472562050446227065787974806678976857530091259198624669387057310227625383070512521711661039489926535998148024524498571565227961054568460655930570361764134339724883032725530200203878350923658183134721513124225783330405994272674479352961948608758772306454474325680139002628492735240356755152148204100227744378862006750136019985172318045902395505677522679059525071370234510810940887398013948239230697545350597262134303779088469797484034067319774004531280381912459983161638783147167582142542189889595654274589733439670488855885737088142269739335023515743564004346332855667011495163555849762858349735985821319228864308606343385653364796611130710000539188835763902596967668388110529282447084529880858207788218858706214710292738020516756952994099236892524801341701628615382082173643387797387876379070729955722321528329264311612450515727284629432367050334777368716638616800882304395965082958833399191985680701042579659218329918283733413579826062149277342154419916475428114698214736406790982450897255318709132197744947267787199242963113220220045602591593166542916863490771131151072474684617469299374936101814126444892436050975895688388813389914289936799233453195539662617814275064873034677270115312393818947495870445063336914107532427860344516842178397761599514613379118292206114621063437608498067587189498144094431380540045041760891409540809331829766265479913892644999577140862787498562032868193956891562273858773447984633823660581657211008394842167948143599084775728001221729862684544814276355115025554794572575631744219817678332464377870355110434477402879056492904887449001711718569202610342638852801229465209564263066913626437859904065518133740254865347612660816748437696755814593958134989624578725586820600668091996953919417408640873242171940893119929670917130203035871983090439634171693320088745855688738644663495450876225492475084053033104112769402364814675461964803384701985427521288642510147168566516110580439704937801494126301205927483570759100320050189354428276258193056295906989095639928388507594530901699150855364245878769852928870976683713947728360157485935109396720110965321969839546558995161129890047504218150390620352596889413765491893578864921195334916377172097204685133516514763985572765602676918769306605528523755775312638123147839913856701861746217233658762070253860729954061228292955362592317819499099325712886291236475282060295127839806301240678594336282895524274718695790034863690066117338342501420237742066721394981456454306503768612314124503205995551209272305186792774943104128824742382813955214117432631075766117338985437881339924963325366424318243558085118209368388082832015970971057228618592393173241332443725834915221077300588038162571963967694659664275790289796177599079115609557181924933201201251625359116735675164948403535991206063621071164410397790024086485342857794540868783492014374594178589127416280054943066407380818054054624419148182357193256887099670732064965802960336918049988878862628097353201887919732320115850022141636063815214969983748341713237442798746997241131062552607250489214033524801442383882065823314719205339836347321339007765043689884603299740460812258870417771365032724526659895581736527103952507287352491261603898291594115123123180354059296343955451372422863219323179282562101628107333147832022499971457696654539234535871788093177648735621464439289464784686429333065541819445707089630732749446997868229156716581909677085078314027896870436680143468806502024511802597541617161584264777537275387757074335292170709904504799794985519235700879294536017472366720418204188901835603364994167114822781882729001741908682102301776884514226635713335617824223386885947126377654094411765272482961040710504723669244861623627761113518110995591932897968386256533513550442403610698580949066876187909613092613515712320340233682351846967655288270981113424694578469437303960595466155573958841165150791900475952667326870392217632643837203910298557314338459261502399980825855134755039772167330371774347105072584245866915836656001663073326935479753973555070285586468646387381820137980268514915048750400368361279455085000077594489437517225413977616032961576632491838552087999916495435707265730692871126486896147379665091444201462661491600572516615814191113939977604904088856817897490721111968853782184548349648301965021207139664240489793925482510321484001510537388002360135931741786962798163186374661125462113367693729696991322114821914584090685415095561511944981079201180642671745338962848364762448021448607308365014954877585204020404049253631194932143540913455332703297229160473596761528611518628168214993286899104016609974085639848335966984866600960980174313515688615833033125933014408748894715255805729829639624960751232922521703086625517873467259283525447154496791014977544473345217686577570768908960585955531511370698643734477399634230846553912954988592066120598855492044211233335710176660441847483059564857131390262966110396619915233759167458536769395777491261392926516308174748852570985535579136295483115537888915852028038688650678545495467745782573100163259677417157636304670650867957432433933413983852839103615781307604315319933636673495911986229693381669794149914796333647844002416254264750193340173746575388713601691550464491186739096437950798085950050248608162892462460579157798947215810311035154068196319777250577438012016844861665230551430108190151760722168677148385104844345974315928079283247573146768699427694391207027403963117624056581716379604231197569873609238017025764126451228923640821847857762632720165939695150613969015147401180564285305958215496417371416399754948210787457804375655473977437661240820766404555841665271905014707752016470858182639526341594002678909404099013692135850991519663725982352614979779623801059985023228167790646141928556873019296831128585702946450560568506948338660907116286822243719716432806463670375859195221319598724756345321788118118965528384414688638176248858028118375598997927240904213029105434044374451580706702416775006075526302767468600602625328452116383525594959788034724804212210350183441262389170337812310693867317521222988209283167312512522535060591728719082198791913199677848252818645476865422352719253054069133584830903473958331220769587787956011226249979775169772999743418449682709198330367713023386041324089348594480582568704314723037531372609048729287698782883753773512586650754795632799883802852770680472643964395378006299490819225363679596263262294423984008528126706652846034245955109715679058178791013446460915759263905729768080252659116162601107399698216140527968691095837561004673848481572338526261887152735718449570874519690790660003107428774344836422984106903609266996975799099747314213449486966327294960745740614944659935290055340620587549502995028450183202241817249085203724053738519276717824059050829942620296755807023834163748074138593503976842430229728745035100713497446447026240969920130971934204945948891981096941376737721303885025908775257549751686436433451382556055891758546880209250211017168190286283939663695262820099651024339924192718864656349272777250144272842985376987588233390820966307269676743655473645452152241690885499295192628940212548169095583126549772384096897694930254803736628946186495560203020423692235359892280776774246248246954292150562193394280006086132815198405264102895357547316951026798155509497522856032535248868170211343760862911792049191540670681478234442738531090599532745998062604632354880716041628084302696372693654536684694153238150387948982200761350418670939986608206531831595636157233679047156445294672332006140289974171901987159080564276706100310149729597583854290300935918621956421107808075358616133673122297518603230734217923118649332966851282694039542896971502879103815078434272121724628842802702008474496161542387827559899068009148518658022729951887562739745668981216497213617579523576636266424830172055548576736051912180025040301052566062824693108895074460168295001394420047773487837452050129611215762138002550101106002224406198117151151993733971108195348610849157561757038399480553334898910767875641240880748064524817980509805992663744416169075621488608998858522192592215277562839886818027462005239277198997457947526617306466182658998682585327567164466925293274954441377395753352826907905926694002959441685982119423634808980182764051282146579385408649196341949223980370834783492113858040955091068639297513102099192713215277199003195602347225990802337540998858203339178804324734680422522729872488046559921689770403857333922742504779739675745813360310442213987244039026144161174141166660758967225609795218960458283768757831460238671043787301375290946463009795863150444882046557276718601619368045745186865689542780636406257054613481179128185363033206823266315488662011318048945668270689949555837096502865448207795187888946941710996559226690114034458033157084578328847770104872582554455323667639077906091774653503780743916865835753552847524736054595823580456594437381704010736796817236141365320528952686954601427774650388096010744664276172516242524798010029626404877653948946896337017778677609687672382595482237421570345224508781856410198108092151049261810835032338823031840577558113932473961832836725336939223546964998405114911325288363055456497695995393480882072992317656525599757507556458594278899729607416736709687426326178159155991235810224010312008386095735142537574700944023727468491042940920807571964966188766959249381438441766714451899554676830553909494966106956597741713679810239089755669184077308523940948274666835325794357838576977470021169113385793512868972645613409850051952206704029937503383443086036746781906917191455256251172777595129896151978282377643102752587456632918418464533735070178949226270892781075411920893100718512783434948381607129348379385933994071803455120915998702912510101238110158309566172792739182729579281132883818086783328035158228284884958582153863509297061296980258029453728001767214674743478685576273237776992343049346409964278570641722815182281819501490184009516551702773817110879787873433608841604963849627286556510059239587659528185315755197816605021048898109522070181458154376056420438738982689931122711956322127044431455820086822653003392518550549205043043753524097247881224841953159383424911858244929504227116316365278282660948001674322268170247235864113447547954543392605703439530533268870824228308769214571947760201940779976670741249409545366257109240794566134984915493898933588252012821657042161660938260510384685980604187088271755127837640794452804297227173154322144775466689403873631963739136978022601043080508277391085969475890809125595269040386860821001011063508885267917128835637622238455459714867013646434619248107085513484124047935336544172143173668332206608435050432819465719397856360706332492346319372924212330610895358563598106473391918049175958332667420903656670526672106186636580746999171162652074315465419611080619513271167691084629715482874996530461002048276297744641908994060623741335763603915776373299062189959137702786814059187474088952915508793088203471713573248401914485421967535450862254668843818885307581055861511423646603892698790867725035685651981552764748108510826980896459676975420636460629649714904505173234577122029029600573861129253900502227099710233194814562910264059181691848864728480988410858656891522239954220259733248530971837971439070951542529693148156079283502916505635795978189995071025471746244230666210811563162757417680240469026320586169255544094320258769745086766506440954346521661857130495556242095747871513905548129415261648069899228710673494897250632981311206915585444020838099818625564452463444010672037896956004634869173359706403123873574589950615577734818226672345949707152950429288218980466130476887823731118607768638362227038358803182125519545260221272628382259434835942835627782547415112601384435369223083157851124448853719717204212935286251549986840536641014830832814364395178531889992629494063456643235565389430307362631501707072936533524932748977841321988635074032387024895209103950085106458358697758723432895258109583980528256110989331296678444573833787191484907268434671315624856498530682291323046799146055062336500893846981798163931749972807352181594871532640772404196451514732546966221297411515658938939197516761390659101185711462097050973711206015937367630785371593309686126021163180911941061898508614492611665075209222900883349898333171885554032951451432252169576438050456316468689197888580991626787471564451343096286459831732068686732352158325704975529731123680497251646786210797783461942471284750057254268225909285539762544416148347605212426954056018357848573988241943498474492344274073786530269363897494776642538542815967948193773949914538040129221241805594780581891816255716634712706930685721261846267023998799945569194676679164228367459766910049297449811324581792607362179621937108428414447157767690803944546809729623368977412294519586090171451296964617719197046973488337880262037576106880171066135701006680753898555731716737488788994975073053934606322059235825310489783777790025093720989355914596331326987680993535862855076834567958608250888270176678767075998604483477792946894726603099984189605107843271561820596030569731177619904428678168412030008501583035707307793106869698361608031785661714320506184964561192038551242716538369671566807353833331131021095197784024796387951301887804142053458288876269058738881559898209910575180065593319361911332037712921018745369670880440536787048441648589280634276792488916799416922057098391628322899032342378469031672944263392631577792867938794941336694082230618102960938966902346979699211041627593985989290275556725904462133871752781213799183251187751371827628076397655763875277983835175072917545641980257799288551379959698260340896185662218632898006640421239403346460737022981604425942861526719501386534089049271503642403264191555423440140407958838212898997802600589866613459629650947668291493432768241113259823801014726385305552063846549271639044372935675339912260676237693023233278474531778873667017700780029182601680832566847730619757353265913428151428850654703720953086455330948265629485677540532072800956876327300586046428604062447746871819758417476441382684488013676229388336051980313537815237780622449170874047767225766873714655473511865561500388641962939605341504808248628150374844753280671622459744223711488833133629444351642811000298955968083827465884259114632035946230906407695301093415624035767980976495599312433446286175480223999793216247947105197956698423240638492075091165413918910174059241376407566183950062298404033076879566412107293276617804344785262213426642915751890486335285250759631593477298089614399478998045793062328466313390949312508592044277634426239418722255656908513305277438390925019574228525285510137652084027123051226958400627225137179369005141376779308680024431949439062981281936452147089774221126287043187797240325018998283784105190958989433168251489273330423534164255506361203153604024191906831755405029542011817466578652496484388474750202214046885542000814004727044828917360952711903717116876387842353297207071056053735205959579005104179140415251575784572901740968432049042877145846612293901845187661133169972148483015346560243361984890495594416884497174445802909796206503298568179791490774606889137894564186991424782273955528871100953116678862231052066975049036753756560475826460660629842597329881019458158900136836827904270067402851570694482708526217064126463531241401081601372892007589242291757223376646910059030746006147187138723273340124802380735555344124630527768324601328862836241305387554207158488408032097939486013540995987088238226806962503481522507995367871232669522252893427662491492302201381982936044713039920445657286871676832305009659980171265017792392848639749364294789488781716918135595971372986857745032202560659520853585531605880827992203154151503065602213494119164361542577004577889497173124229924155194438189764121753600405746168357353104663496536820592855325870173416590668799198799091001968142480492629447334380480329810486531173439854942624695075445660027977058647892173165776369045566733015915594530704413555284804943262631848569306838660054557877670257092758996179850392871941725093490532963714210519863443588478662926764555258080941227098432799038014826601758166569753619337283135775034684772740226777747148948969285464944433447408635249235047544165285636486372120924135285976940829153234931769097547821755272517808313353679759432924848802650971931818207603729057646022239926951657941133192490409985280686483437659834071833407893965804993784786183829988273229122350147338841864083563367893107428552397906156983348469543118782168371210365472156478899982586685117440429248628391944095909209794547566854793989957729313584780602251490960383032688604921853764045467398721565028185297907746946963315153373312224998560664900127267484497248144302993703620401988505373106292640421232879515333611183105676604171452664920878584019819224620917392444917496205094165250125002777003963039079297414121775076467959239802517555170081131049981564952193592998251183148588885476004152576424286855909943102058324189354206193088607519422404844118924891971120285836026053276561814232538886047783671184311855412081381984579963543021824140777251843975681892023457366920549877911541974148986610613552197878132427752299336944599034991470714117300395811161636606967067059007636250089776913070350755216519323164601774146291205128320989680237316283503047442477415887121273439434081329341797697306715187570166340091423056360540358717346013782151726020762908816409114111800628694189259139479045839359263361410721048692099341955543847285316269482895882524470026441431313082003752136882220208241372089094643699798732541917272855740495132041021224370069919153114386203425994847334116181497558710283135576428564447065288391927999616355774215926882441770634165707911377741244827809221875095265371104311240057829323437734596403758299760326151711350145895044253429705381745640465873013220385550477388993081372871363983346236366047881412044101501160840299398328581325531332287535825172128605763839412539436270813381845740571848419372557240692970604629519234560306694679720409089113737382263730783039970222878667680296824320659940969240462585878909739504178776958485462551481438395782331159903863107444318814237467231984797412508158926831154553665766101148649104441079234884183258776769672865423103431587396005151891500309623065845992839008302530577024678113761501742256644416641167652563498919079878447008693817101920015943740986470819541386133174429991818107931812982826224509817511408078247665014852591862547862598804603130245162373155646573181085704069293456062675798403700123177759832758811938145420376849930371435836176377277845731117862506198546489633863514706348094068387737206685978399899376117895615801725907091991566187411267160696010564463438586967870373413432535053057025031519262155021372862904757987459091610102487044057479092303509457898324600330150306402008970499362139819819493569566055808659303221377860426977651763904279567274277436610232600297979214661462852974701116912477281862843236258534428616995422160496512193347394682241429179855180149314913143336858164177767066628550136412829725580527553435569119180932657104203132609740259210781610576035103345097404789271843295867575617314687139544713318303303335633394511184639155331920672211203995283240697174204119651415551939977645547059607970889355868547300203033214991683194712684416929624431121691688888989837248992811472230636892549729073952806182401703189050184721885356367334243333746662619095486091212242821574429591153665923387049161919482507816410860517819960642013220250946370027277591095172191174990071813319623714445614237404762011145745632239752547535277727370330390504975614471067341576856314786297369737282173544065462006370947619576981750915856430109829899703915132949616375636847201582240096388128757035287062225668588931139422269558714046324924923661907580704936766439281201177147686543397944100890363612786136509408132416657146187017450824506955936995732664669976663558904333777547127816983421579992626242954917022511157963559093774640808793943606498676680860937690640859468232010321442506852607864608058189989598729280509812500537981510119933237065798197013656920438390184624018418044019649559044794821230850130727433095635352620009541347070875889171601810102880377194485797200925918590165517067077617939685484411161969942159374860288930478194187288017991313061098749274035612005204645577730388667971915229220659943020004018912376551777479503188333786972541403146764989301591425628534268763847629157079003144654983545880724405206277959658655653468843633268810281466277437760420788487353733615003993634175283854764694267236720721714637888511860313782859632904377294863309178517274464524413233130146157422965388611315495223597958518300860331787262715126678703811962797976727391962764798503776379685251989554043827416906267105676347675975477637182800029437318946870336939228267265893352655413563580668440017983359306808138801013774410348703394969557028251879102618692869439147290407397067386562214631868517890274048588802216376454525330077464733517983792924419772643558620092951865007015660822495728846351182126250144879738545616666379361647731190300112886154935584853779332350487883468028109416626938710547406682480679959062272500679216944865454935335972493918961578805391042743625698587871263594445832814533089265541932562098779399163410575214118941892237963206994734269133148253388939476764941738887095199659963154908393300171244076273547676328517719851783090685346750392507318826566139591725861108729937555281585442497634179385294744648567650044226405215415948921427578866808007873828800618093445422556305291905732648508341296369457805996167859570191706409737063670956615354447544498695973768268275353566796962422672266952549596101292718638620300987012893074081084106500574101590556390570901599483835117337317897783701721976296682480034018926134945166955269695115854473754637248615162412217856203293233088912960367225338716577300070868781909730563721129596000201049258928152954947610835225567701311067504769128645920762388948612272502426545282072381317273181191774144912999829636524342001734818114378688731773968266917533223979146217045055673454108615405037155329628055936285685971579532067568170003722839936573414928957216105947845926449939992113407560039726648676427360504731218733981079558007800994341147352454548167181413573977761992732152806130638982942534570241330683282314984158575745792081858269352988105208806324574931524834415738048039889265742023708264781301218258577464581592014570257886364727604018561514343135029086278202761994844941699437477733746562537750555521476948859309853871622757409952706869289811600604560958600593530662275625846752947951486734754562483110586746360359175251026746269178254085024495552913239302960827237132885397274653308140960902406162604284055583005022958897141836018308786486923454678923694246165556138789068851298403459206135771887541957626980583500238270356123624253606360028088396347277703353484053825441992888395277108061331000411899136107674139408633694366308957737953313130374704367865349991388558235606842298470380007275473354575933954648933364178758739404665144802410435632081376209925652691530053833999341596345660028023854694677711956803700668708220343506623403477239372051422570645426740281852153366236277219742889717658907595663490808421341629438696063800415950044896592648932142076917875273022187653278657213814116334133624042694262363355870399214647688819830713720131833344661503600876861004961548670965119505032810263854168917575777203547079447122190791242472939049852209811541943087882792700906736685855433932495409066958252239895019403043346577804813222387909351835575679483938559509731291421106529218640069617285406690892667988322798035757666988424405791099334956300162445709103458536951013938723801444000735603068242972267051714787144813837745386581389374384855638072214652348482947581023338938053732023810798953159124550001590365605381983833320440935216444942372387752758255615281155573560740029285577398970803272538270441606403012369010889184652821229234825260215160910643038456599504187459454632739085023235756895483798564260901520252799889796129797393490665213225472723464460008994743203898939647286769263895035704519505732889713762481092238961422080094714902373196746277001772699809616658303380537440643065214308217580779358889977598332869274964451611024508972617533163794642827241042481442605302672139057593176060040428953544516061822511459360480972604978354714433374775125611486254777791658421656606881726238755039819618612156466136943589310765786980008412222832738049341142138441183769899418337360124410289209265950672089202526578471887980065226510670514050280051179821570623744361267105848211885904190939241817114300667732042011008945192293674699280828880860891005641101766843816524754673867708478697799463873982219997257237108674095508940349671760913404196671384510660678510084767944752334590081881729269006252960871661391338276367239751267995043521029606435525884009771529572800060432301180636306677482466912779640563199769843102242523658220835931125540297727378808167417724064806492075047637163049750817677153026639370508632425881693590006942270766636822269406186919091425170954281493842474482525543533691547300492052803130296231501289531860076148995914505290878002228071350415980157711933242962878661183594506753297661994054715521839092286753063403629948421126522294791497723439039154408555950839592396877450307592736686388473069047065990349959879280520956527250369964044295069506509308308640958266858713793960439290607115506433667829029676406682639274332196915900210491188819007070750465576050220291067168914770401752510877074097810679528538451459370333220270767898943805997094079921755496540642940047614926854752365005710116086914883056849136405095485694670061398141627291312609592467589368475480092673220502232594130628782478783773068564828471005244197690281683297461682861234440367860421809293422763845863478371153074838225836586196556216864373993610708813122254891603048237365070388847015274326981593826393974855667591667316957488431121932236643000072208286466843205802137844625998286090214238336491886341751806906557499241317026513113972246437876213882300494545787069345946631139479459549427837068354578312533848255769369545185361204429229980078826223520046417588998561623745528319301700096050908699193262689921942226259079395210461591057292802350727978271447720366093330387947972040610249295151875717350574744191830719633718555514194650842436406458966482781248458963030803009642994096620941369843668228208684333071874817352930543592137213620217245332505533840647495944414901195630239162709854260057524747930994504191632776375813472242824413550235137681137431149484795333108387043359729574477370004102235026015667784905662319072067813811598957620352437553937489753783124811726135090672152980165322202083345853886591083558876176497099049064721467057697195169765127804002348183324186608755767684741641699880051559618390809366743615176382665241117972243901192131870841938261061750114148479302721890501553748457061751584093071576972846494859190586197304436265710070743479017119168914680723309909888702300143056326186171404013233886600556727493954700519168746081233166512761422462859535619734590110498624909244775353677158693894864029424597975689491764904749018694761736631292623134963918224209512300997246293290745594856536542031592619337944100711204566163868407546806299041220920484338722248637226256493316847254811037352214328920419854055854298980936606712063769279070289696557504779511699974263912617811246329789718304121958900176182347678983099109862884951102065349643234460015449622879751401080104672477658041560636192928732219773935033207627678186771670349100246200034663413299240496744028859856961561159874028675957387870777373411762269282299827780294270400506051901804684222283910714325368591389398588542426933051102655353652101190849957633896747426470274219102384617880425801664748605832688784441074434621941259730747594262094177143953289112125339303202865295813232716714039260932897376616337232142047806380343630262525691057076229918149918469750251981299332283956885272962255831226468927181775702765080301186585240367666475536279526955717246992933905371960290940679921279774552402906206172087362419491884382460816355501904752894453036525326174506632563228312928824572582813520638791877142140844360096710011103566895962225799989864805588648071967444283268853696215236050744931755100765640980169105061681903265045876388139224005025850757401553033326364183079568730653514824527982672998304016931448264010359817705817681037474254737380199042680502279762673780118748778527537948532397483225547588681932940405236175519082081111718561324296362259640889714852686404599097390152793856738328327144997622734458148590051997545231477204657125702712742835757218947929318971711670332272546503133319966741617279170555714297685331590375789949571080405494633892532790629123335420398570135236195665827638918412379597746233177652264386146459883483264576631237193105916445877104147449411754809680798114535936336802791940594856483978166562901644214332236243644765555698664860765269240425310668372540771340428717294390965572037673135803395267536056616066779694290604100244687163599124563832355529383110941342455568681746338143835459852069180295176923485282504915619570937391570560395186048496875297802103405434203866692992084010215796893830250768919267952039183584455315282476262534858643936579679132421581803192379033924777979601216381892351500953030257202853199417045669409963249746826203378008095549119483496963652866287023368313453753125574847977415026158254787574120724009799619017818733382579904777584588031201507197610952158820442724245367420157927246077650270277513952276310102122299784971371950546542828890816464323560458842043660747916660242703064899734601520186539283949422284415778417891518972128507754324622640859496500614230058916851976862070225276285767960615051444837232998837198411787639395347719055266013308611291370203535434820697574857578361727649064132033752431914686589692324541255756304656383877590155389388303493481268479871038503785843314766690622768392967799781682361701698154077768444668052282454607652798113171043885438790627214231873123335756526668999810924627161852176167150422334102398312561341172678312527732662365300355385788163818756308775553474053342622337881459727652670289803463892133938957033847310530608389279883333656869903849964070101408120865382299179745517236717496202565747481799312694257737886280626322717714028546956181344575997836616893756733083446996934529267120293029453854648791269143260833187689565711169754220283041966736762851999670482805885482017492498649810524630897952124728081805679204111776406727726038628503768326237631449289047458181234837731027352121191940287571528079864137841393635126098160081954808230177816605774903640600461469208337086454075151205660240284253556078349305690910478170573614747680591805760769942830780162841263261767754606333471172091347921082172726242136247787040873265747139310349347248543362811657252642525253318540386371075718609523213117853988426741795966234188226134913183867517244568538804796082278755096705764692296548233265851633613256881323482548900729218908524710502031362699432215597421321992612797234877680755750739121084391899790081757890282454162972866999896516736792048236867588744070472416617270832293471240929814801852861411728351754880044836956845845919917550917398599566159195854345386832143074172377561819221970189457713611741011364497200524346821907523643436094037915000150391484192525984942618084407134953725865721138947521560518648449874842104479608661265854490283975849714853488119677491899601420811527451261622368152007143585536295918772347562215125072982946105397870744589609637593071358635390164287144557959117773863064593080013200943944258329593756813553419454666411078666600877171739916793437013835509527745005031619317361104247532537607841914624632679642286178585793437604753206154553615256516068123535001758840847136601851662953270233223056300990755310365369634030038791242001748515406569097581822625312240010765329816733402474660961916087532408143422097045407822224827957001131522373172985875395812232641806589228996719435660706911250522551325038703712009456659625965369611317543796527656354255879756124424108020961586976976187956760618280641120162220662393643861908750377106092402887718599705079507231397462666989702929374331821289132615348675036663738553287423018293351082870445749306836349040318055703594176446711313721574684735933235249633463792465882174405942056899717038305561493584724851075716792437705998181053914599993581054483653930211609217116017323665749944049897849651043950044155474586721939115961436115094197187024040416648583291724797467612253141845143017479298548034612425598999995650588987446384813650456384334211915280188354306307882123566994713695119974951068351883466673828370502920312988489015593739871537043813901564410669271022784887244255314203256969994483139221853870052373782891946806414021895968942901021859525162735946872807268576882323785544799724227716361467251235734319164582653143051304740834908388599826641112735865444886133153673427307582359565799288843907660704167403792630149874859195171429082299600804040328288509955156092230448451737151960840779648428698896626252692475836898680230075778182371214510979900736056165713946861900479376627156683067697333889644812942444647586195024388862306044526162244094664138916954478696077502435841344173692033406440828082008207722509490845765040682921261729449781351236570702493400317383409093137998360768590706033882559016394932399254113892867893120865435301643425994988144174140377425021869479825374512865307257477736474946630933441758356180851648874462572183467935001437740877545180367616126664929910198022453149189978786673249128446177179097993511415237910960719526090411912229486855519943498293627692094374365268180761081098358122352225122992700658301927578455656739408643487526267709608081286621553789927059939513704919562399561268044208689970558173980031865661457705088335669421579234058912724779685681051800254079493689764438777070469976839744479300057535011143981474159961062963274570517360973700494520647478260981045429195456064639646619203005908332607245560767610424951945766843055966844385050612681267579988858286344472401046137192231684633365249692311556213579040460731941640096377235844613607722896252117105461072349785004002807882656690687817190544502987726653401165674344688525019514198805931745946534805100813793064667353299677335214912044690365109739964744056968443189355122920689064022848102158862560169711527804443999755805119154617279809756367779951717646285691484140724624348824468668823670539918190169797882347315600019894612447891964221767176086257275289665351555627107647358953310388577347820583491005707490735386081974382252812336547320162387416987381112907762176769173193823474279492239860432491106164542736547355744187955546786465431750653095069186039075672913447281653140464773448903287820516837251777637668736355005759237167778090411744080142327418462807150593913447770194792983229833264916513270831451952518596440242402834922971145156774500812489232202228453681547183070526963720125381532294237891628605913603092873584264721174449132930856864019295786304131018932315717178952236333700030149864268858681151479348929163854275377510424475248285441497906472506189461671839454857536895820670193994283032029258497550474843322995222606293512662179066242117075153658194656564170483885897088373949352905445899436146617790520583762689993939485800061256072188959975105750239782198224885296711076852994013935784095124639624112983201045441512166194059316079280104709782802950486054818168526380135249865259059668587071348847849377674541454190356039647602823759123075581366200098533226206046636239233587426148756692926709435264788222159938889694202932278265207322543019991242870378506790822419126187434255554161109524440336451462717464579424139270987521928936787984176011530152763295666949605332110140996408608905036177054919804554250447147355666328748537178620218945567209614870278031448560847382685124239621470247827725517953253922177596724937628593784018323066009297965344619361642389223830173434578375300614751371419684961818939608702838520162657386359611696959184908332238160265375297892775199755253832841021800432568939117457293098137316737786478625411543592372509180021073335588062943182805371623282368268766471363063938448284913083646718802098695855370933729791363095294099132273905213031310383363063874493802164862024136224753767667121209287070067903165418023850179526458339845597814182873272330937810378210818609575503915205720997425271243501466085115742219337354671133227129735694123897612952209765951987988561379104910095968014855419187427228424115325024795294915781246521577194075245005834937087645387031665581045728352896081551591456665801131701549217494961950299900439859039463161342466545942937983922222339116968195412773606033008471340822531640617023690498144800448335616548832038731135661753859331959905534944552420064943886437722511153256648851808871530979497235834137740904111638039719589056091735676689464133021825102175342742690013186530267832194198812203799217411499345711375409774011833763767484349900569355515792612166610250444239403144414276947481181305675069374935553317030618238609329689552243435655622106317017453680658962755779725782337030836235843865967835124684042638082084545337240088873374528912066711161332168937702859108680244207525318372448810878052045051169671870402336869901966526327421902266905033344727346169935854089671950961760202066795000133919514457586441539764532531509338293534214751539660702364240485462983439563783414564155167462184203327632032790173393622401943990002285096924510415123389599612099391302866724978606415144642111694524003637065420886524604227593217651047146142549548925732853246683437949318186460884859641668666654810424629612164109384072802502583625529772809725207814703241231644251381709341447154276149496840126066543053199507957052798600668014876060735806885247612411837893891250690795761233311746716604891097495988046788338891663078363996017182626783578494675652305622309712476926486793376982934361287454284304790016198510854396493518109794121639705286252391671334139619305895377825152937495109472663946136296219324963099847988275323358675838050033359127671412900660895539449234243690896868918954953552736548435040177800076493501886638617515870006730466549775252946846277293324010452630696023768029923887894558853026800259494683544005633731645370167189531924015241503323577365151210297324356084505749146220725317706665145829267502943620301511258438419213202887103659049391555917615876752663015119105154925160246070833800938848729537394369013985761097377851537813825144111986407184075198319498042682135564287100345207663436455475230711741238217620546196714884857032252394307739724332911259905470193995208525917283209740501479074171904855724074874321069956493174725483036271474363516763355127485862341855797348387467587407206487166451138877241016138451006746103961289590041096758250085408249841443950240407778192226256948436591396940290380940234601018428879073997323723834951241369869500194349466254380440215990524920797337882688416946031736417978697971727570054223516579044747481645558941839944759733784412773182437324903102081335678331378985227618405893874458870388615531988626780687538518893980796296322620894029562582231810712970131203910420908154705944642867506806575105462600380934971365147561513718965269291758911749605046965747675277942421783646518340960710298435451834300595978360506932245265849764051661531836644798716033877651272084626215482107735547567889454984153014081536109523732353707080106765599672260903305284599427392330568869761158993001901316680063065917495118568744898697340224467829621133305463830846011565116580280252085031554610191072401075098370614357348982812960889071260231917826056682745995658526492447226016761592326512667642865189421556649344597985758366582581481930552900733846284736367912428013002327913852119576204140685048081434362708815474264748033382652047077839780614405484102242372524580344650961282793958097352806641537692215753981389062723980058194849228651433711391081969711345361074611793738659200580779074202909676732795557903493512297885848780615469843524607124862954094888921945739673962347609813783675331825958904343214004146673333990509171448322760788210274172850980731320617254786973986498815821995450662115721912015728053431034290879615737415705140413281233001301206945917555260719100159648115289426545853381072167000327568178534105656412044280181066501902420922579438162571122947231565521946301816771786217397656380651572915267062168368563346739677067427936354878004169479474633384694270289519114319420527776086199375399627311966617551067071979754026414603282092167557566848963353487079113960716144329103134646632553504739569298297435895763057351453871112856414907131378702626940246555526714348933125565729927324961551606619478173107171540670482241895307231287962616012464703848101548936974683233484562294527277302121839609337154523626149736434244325799458040832735345078214303082680081651478989041097325951151854552926383471453790955231877130806410540281530010358503662114390450100578760377736050558030880697864749381973798743464426003742076374321794769432835941176008665436094533733683003352661759482352132600293636525086513228606742423995349659969428509833106361349900647247779933822956780328713478332317661237644269805213568042243432207256619122308526827185844012660294484807182837945006479020300822168888709086038438173757581110488772898475456466214481038254513737405749280236477591337635336154512061791478617842540435214196321520947393906328778104150131368612052882346966309637872536462489439173277300633500387923232512206415022709302555811599143999749395063778410402365161178120960498589796728422458930114228632994864378591491368081120417119899982006259013344522174270228331760982453180324667559670091654243968037012933193584275234580647244631684154275509060000755107861875017551703324212758715508459046068371557254278670276372076009390407105248367194002109902501374587979917394008775287726117682905231342756727420918516342212174999224155408759308890105227944014036574353978254611726286309941093360223191709545775966936919799128582392648132514672449647178220267366581363419880883814265426521467160642384058519521070457372432040412982448810937702858990640759189157999057959317974648585388619800890586405541402237643699150945539898958353771425781591254189836487932891226269271651470225491528170093897606318533546612646812683594922073811769088204023335489027395982931096127539486583143899786927300723280686771449511790486585892210658927970175309910782053915889444755283972263952841871388792290167401409999883979073005506316880504780744160310355022846818631265072596766551593179282921815216311311852902836036906461728091940498482378210643682525445015122814848341314855763990508733493708302582940322421506791610188864079432528523801542717787609432061838157205356822393028853920679188530433999670623579617622704587244243040994836336474120723196803740399128495019309630373731605891166233959077586762521413364633582045964744586443056999063058154300328832001511866483346156913420666117228398251445194560003219992992932971202475483808785616870275057884974783138081678033499099726635547347273644588689869204869736195895216832563912779049734733796964421223135635578066208253853408811628074472759156811286629347601798465499325981159194357882523187825583399135001529067789830426101458707352554228467557471840097387507820945007901270674447940143466561940770661648423954200651833049871574903660491423323768459934973565241701088717931618626902517121549039950308376211638638255859675021841736014579752617807549679935629488599643464965668265081462372557685997179287494313660494532227619779448839074124185676542926870361307481924891192752518358595918819911459067833221284340868616102846150141611167675486636141237469164136740867008915775048065883555542186439455201157189865648985062234452388891803611650102939514922162625643284838022245525658599399786909676282926500036966756461268674584415230388773577441652614180404270459433426033210600683708269349451819588951201530865571849175932458773306996982357599750421724143979169690786745822285056315433068392991624156390902106246257195836329653031761569112038607524740370826375716174392963066690201561483528040391590936561856717608144088056434937394167586027405094985237207856523803121377113872569222768963333784365632713731555707514668356350247225320913921929904457110870487514960703976035968747175575230574649993327007876257457689028202981981368929174596741182601707425344826285612035392672856196744404655056951229044740838394893178519610726441000733406429315396522598781907819827483647934781643119029114463425446673301908553698976747020042006626608650216915289062066731716745179234528435132539112392064338460564434376892281346786290925770372300816150452313068885015747385877779183889190632797243364846316376948091230634419858866159077506831563955256205605561078643136346324707779636057759862555022519557756760926957598780640600848591704308529053950670260058614934864912422324976137779893061975619766845953677863539256819675853131541903898194203558181088832230913833267240426777435514480489489496235508888210837198681653645652779604647955146390844715969530819621980778530865702273932618604045003318745144743141102306012021784907920825919851412880893470627773390905292003900831770913170261381737474719956530114379803176787964442787774708229559947957718633817825406482371871818493612642905321197937626608940670985570889601920001463501375008180388851922079930625850643719883509466829603287239594297674095645061833585575517120029682755609868486412589366975089447186529160732803642385782999037899652046688143709297038712599601487387936518070308947044093840706093769383225647687301753891014685379645582903429927979878571668621147757568112933098373207555173953385930893043113913303310459136403309981988142126131870705283771844165204047466027273258226745493171505317402169824052462051274076649251458984669282120297884766403579535228546500330816023715217788246199354170746632141397342892916737948157245901181038295738631081157851826728658940811334137440056085031239808243711818325742582468351026935723960768958611989921080143147368492607876531122208082212941271111096870929629978733320549773432912800866606116838388169238535891562024765749734494807630091552441148041935541404882133431352795051445076307970984308856645100177480789953289014888329158997759450176680499352204484089538299919617725294756056581205492063300227028543017481967400777627769310267298178844527378750681206974169772915936054318158693848805410308437989355275624830567348997107567262275033153934546937760754924668754603853608297878132227076022576418671337969328119858478138127999442863745005894176544441975639900157146758830602742974832165939085559946843265305101625328264112842732338007667485340678404457302958516349958547392480117241758893862599825502503802231931968023159013590530326578566446214128236105789038727713622421934518353611678401415321437320585868287454256218109215017301058642196495724313795757986422739140208892167816643295822223604850486845946315287406843191707472510972863164044073540174651164002045618498735048177194846354897829398734495656377680110294980042645174357034809153042662548409555368553984700060247614222344236579078521821147872181117720051657507087826167532325377387467153354833410722242484578079324139003260629478469361289601946978076572305178022319936501756909055383491058569842537549644383427206137028915900638648114179450240689623889453516713260422431449741955155370731142196678260417351197669404238101624323074867900196554419960642922544048411152222603413576057811552265089691297739972458654765943065041903543393159320579012641374904343937228216370799076259870700449370479705388523462601051450286234884346232063455541396752582434718295264913591112117941814974943042074255032619269332905381077837424273973597625366715560574246532387777461865927173032147231471528331255564356053521008458925835764563338485182099850099229189809314640716068652843767885051418468345878144000768448684631099600441689510727847068015923383426385483223777567432401821228362323896372984878970462077033074573452145236671854680602175865052865848760317476008881519596526828405278057253983175750013870202414527705840528575580962240205229867606066868219592747252433080404054798859479073930893748096883793012546210551884956910365033160875913152887868250558402968186132174144067676948757763237304723361440259308513055510042789719961781954475761038625216216222818076498612750941618087364712916872581533035616490052412702312310453487135414829973197864381445396556984416643798962259554560951117892258946465214143434685193384647200409160000365534485020849021824942979222954874852023042111269582859578643533105856159254701445027768504077195771408534121869441534681683195286237410578974747644546286453895921744276945876617195642816985669571199822969087782573949542683761056818982500879389779336781255291958030096137325910190114597335072723293747613849424195605380239813677997341773721132383495823337932828221451660938151942401776497887057618778560073800050188819541722687012928296765520115358597656373177581258682902644583475987652810718911723507164176242674745477156097792678690540623937049639608390195119278871177630195466038855708006110479667037226562374729243041934079344254341090019809871458194750485618008523062016746992847675158556614577193128554741738395065581797380767563696902816264396459892451075565740184095931967779659563905015274086271354440704008562630936218622282788757409102953471144977694376789227950339957788114055049241985300683747096411732803881084797906394803551608326324565581188964494741836714016327149224704863939224201279650865064902794025744833751226745613055620488839731843879432693862578741974278887823655815890045765596735546967166597289511727734349861617680569804349883427276364494321101004686186052156410420810665339633324172412730200508053531232201356271457016187869642844630535360697374728168134036091256337092589237343433639473790332205805313661345565869870957897091307977240042864810131603206247368848162939665422959285801527350741571664173133889699062738082657218974823802037617021993157440050863619135071759528155345983597026333641290200276616240249674623564718333056405484731930720088467721686370114345781742764240431754006815510122392985546199420616368993968563950766194485336444467833468663019020519288515820736354884202614698723466770422731463159885149498804081259778254011610891560540234820102331397961626230012958047729043436008112317425187032865526231270977857764227327532816778772604754515649242407843879496169526378032124413885537675625884754204462890697442883663451855973101607221059282859354274157415918713329177202056025903775406909031498420274632067219705736876128912006784156312721774449123508401389280555664971229983654061500274263130075953185727992263207951706215980974536351248134319837357444599047403573150439982552512609588994673088366156770414243804069760730111747313629909758937337666506137601269078122501305206037476510936408727810084143568273645988288787923123452165659975335979995220335275354377115847218680742978245273843562539143041370264556600159020184009465609137765847744736324420513898043071490050259193896774280472343611570005205901323173872413151370692278974075158096662448542326777822381569180444373388626209235303848345501632822091480298126635073196928699367443432409942756612650086995640820870020569804492206132873800154514945209213038203774724298589503075331652930587636278113860488205459235932626443585011454015497914754415808718660892869805984877026023153186552556732210189530669280728691810146886146039934457429180294240728340971997967654746089341901564793772428675398892281456009305067451320126067488175158413931864007131205828898330016853487555051262005930335311715968722197554842447466693817059039873933069044905091468335256685919649121909348524627551134723174224225821373333079440734357155122560327546906725571344063645065473270295155159029054896722070000153970491725082921592378694425204539863264757938913241100807211943999646127778165572926364446330645883060171165745694529392332920969357858204696700489072249011476029341870314071469400189451279454906707466804211421192546949376275778170038982876482072869777137018082347498447685221828638194627652799190577541051869303550530417261938473916189590961872773500591213323372681277317082527827008378672121167991591345879634229069493973587527244986109239616243280279594170557286119132069017552271813331688825306782938053204537032403880388459981340032837850208493729224369157090106352127008244879761980968757419757142848984513788854290131474477452851637395208916098122325069667970215736263913776362858558079825371175459056782280361134083176629002188211132674111659754510619600748785269678279613952016283374068084878787381630893993952976471610549185813676664597356921807154751905374241078274204239789341408565757973646899085781950782755208390541585315745106879612968188216120822851219144337777789855356446458876144710950220835911415156090629691071556314656761800352262859780658899266898970110636383996945644589590152013776371627105131976854034135807610415113390969093950136982080473664329774445891227586758896982722667978522311655077585349600776412847511869100854038496885390825500470108457246175193234393607627797860326399100950405649344525067071872254700056913097036590686555888220248168540456351206182707149036031150111402746522214062098153704546417451271261933384950658374641151461506495060490326035918777661742034432456848039146257676218860590359841042431382242342646678612941658848103347269203682481229460360631438558753371066901958155494512700989481026594206527347264022469147019598105539650049824582793577290094403633167273135499464225837090403596405048942861768152179791327522732399326169722753684841696267253852630786556292492628985794385982933875242880412508539144570472851892700633205826947550016776590163270491009460778189037463670384935457424301262367784378088009379504796972358791891403628621710336447978550784215863177635677506634740212458653946124060311982129609309723582167490897093286745920198566851255392589820907034247487217134246528839091890583379487925776503585938998667557945644115954093895958830279192640443245164866188574538195181096030291032970860107491500262479092479578806172459811956570033525917592634791404120981605059313462007005116110415101048813068565283279263092919426745796300979884222147586058403281333810193047138082355653710135826284177525795633855636602804933504985248346802290632260073386158488053274922634213611999472093200511426346805575705839056519661358776630309255289155868364788331489349043557040387705180851686613392363853630683265281437292886171704206480712828165395526136531421647511833252879285754743779717883171815850973833727893912375737879889690278006758408004814935297692867189797252546859516221465719496851411646020436702479163575392902126650407027749179067611056898992733412911574871434343138605528102829574324444633112570962342383496771144169878128297832454525109608027558649547307627507670409569621623554612029558615884716117503758482171567766472442060404143906273000567858727305525618852552526004661728957768619003186746324042584567519778918106921132777885889988324617842020124607240218499839973944158153972454743070828354895710035251993998241060903895728248280769312589174167854816715760102137796648851088400489205536453930322493981249116510742206722866853479182056540905342691859706716661949486618715572619092639649772498146781755496171393176707436954742984506008434769666783837592592567967938871958127112409408237388324371719200530300418513257442721035188399673812045979673710421893236221747405478104215350845754427483223949110591030912102687388375781612732072432100486543703404699635633101262266782178796967168252200857698262466592739356821624091784254819434843943069772853716105934598492602065670193634303786914989788480470210529577891518351141769534390404049841298352327113785189883184337539252096493218475481946810309098376625651567912556005737515940510914239699533496074939590885899137291421250285260729101325189679034050811879376522899203550566828159936976396551116991298279172030715931945714900366914889755124984325147261780251923747611409088417975355672667111778009841402174433106089567605376477207530727012625428239261980961692658712875746397325834763348910200175224045633249407993596381482606792294629731948060226398173450259179596116865439689349017416328501824799327765142359316711177843928430070076104477232872932109169382996369993440170669109631163304599905393937557575162584366313499750374142534587352591587950777923963939972848947049295877805438376077424838368472228382165081706661640155470542311741685529534716504957416478126307322629554162999324162443839664259845799309585487180634542756075829772347035518128134215542083191736287694940321738313497853764936026181185090483878100964373138554655221747642181385275894192287049072846309349126811528036827202060736779086179438244336184226756158232250112766223210382586441095237343960078840342010508719293089250690271317368732606167489765244949805275996377375978118305661160770350172569240679685390702747932156627212884160892947341000455611347756119580750064110612653857196439175507944259825909742141219084590719229612200902539891908858409960982528237602007675399608743778841357917091956110999519450575285114348909792584880468908311571348361937630165642271249576651848094271940902150258328954493465590681811628069264858877470619738097366042463959243619474765987287670560628448057046393437548437496652559763224978620134871023710338156839865554611652793922680878685507768921046253474250987734711777837633313598978256574425229809856666988323801502045717693573660691158628495193305475902995643908041511259253353800240020737486917453821365892560114974868717998169263724376227173863792932434269309541028164742888181468038162128322810502734927189179230836503554465467554242586702769641302467695678501832437376457465084511994350665276849727289671068317433194353676194740193676419888342929456950536408793522199094662716960049802449478816839933269679809705678195443169730870182188338202901387470293040150912185206121235235612479877058266908872732520935395770758671427597357991768149388762086431820395557500237119154015534900413362512154257949717048823078243973722952954969939751944974935138165303986338991768107718598134404277373089000732531400519676053706328624680962859815775767636472319201148624589975787795474579244542071734075743051995774162193784473529814056215504725679601058712819565831721653699734420075990498543417521542711120137631147600039598236370652122054931600984791330584256931187396809041699723852934093816840834462258071271628135217628358712903322546646138766325937273168639183376867406145509226386525052419887342300894695012205579746563812667409828621188975481158202864576499162965882914586832472791591706969525728032264692693862871662963948362346588567868286726479767094684790274617784246328625752123818511436798733907946499529808958480030805348867519272760351271795216813109297371933310147652763166243088773972191853322019239479213430036227709247258104403484978608837404747035183899002717649259991253833009919972291796073411380353053161924905727595910140046510020679889978485885367116994026083719185608217471580935513920307494842674292639636918317355278056533918656411599496061516541212887625185622553563457379832801995613411889255989878247340669330617869033019673170566315663160116852893947313708471165410386751267537835543269863229647640259512316047590828875290372479452505674880496303921774760486692917401256080605875068868282241650285621182191870360451175408839173849971557510409205921338182637969803972750196213462209050160253677206702545705760418805820905663178988229195983459960618351510768435576909273444524239796766855787860548787695552091621000993370509344655756037446696116410310718915213193995015883492538856443904318564832754783978395484661240015024943337344846552091813607671159091217839786456213425666951019062324321365246139160494380756432904624012944406652580038384963193597957404408372272709110889551305952110230891565791033053681928364819000546485500829896198802009127605991109697985936146866251079066158993682930137960005774171849378382508625567101761478194720132352081334924686293123509956202280243289530473107433735208507126851171388993086407367402748324628867141088220985636060010550834870807154949695345879242867562719198696840904954364256649986567275194370393532311178615626575392603719135045520795655601762772484214309145933427983747478901183475343334598446486215060329895319658394074482342091511556714437256557612809546719111796733765393477341727562661510921462711227034959010662569558676953925831047883221323755258810902750669802239989267283172842575736411868619283758007073672012602506346792718581899528413064802598166238732310479825189357134333495722121211841049089516411848740491516017165357231505187440106784804335557668728826722844104902995481188760524217937516808048060246976186047656437006430362593957917355894849558827605493429717924237303336762663799713263371256187463450798051507587280710077266759546282080989903507935642795066079798478221177688133420446320293465190927267848214755628283605356564538997440739328275583050040055097774125367924370183467544464929659192658166583629158243107465505645441608447978228065250230605756963883667340414815153686229749073510429284407764893172489905604763604898603292020533553926305962835608074839152070115704103547770134496968602312764343341238649953752952753678396297178393161571670998243295036670836851765079718662073874313586376210842878396546913308809132510923225839119996185957334786873700944562354413123089996714628717172240979387553172012385989012856541391719696843671992659208055990976339278903959965976310258471471264636644409663198375987848670717277648073988713501196280669780703084204963379038125219163549648624207114691593259101475128090680642375889938301417061460336208315351036325972648122983035365273673397951829713460157604714655512770511460125179859248021437696692970822036772626989878306710728498575186087711604874297812783592018289051957144805451377847896887208482338690030094887897921792366255207631722298645722960412044611843714995023660578791198751450088572243147524317019748019602077697506150770599964324823600628913036967566884303748611335010580685877438677228940958942910370084271675902262525929122745511638777840886411692399004864186605882070589869439879080331969210035384137153383787228031984301107798351787292617924671880269445911686487998848827876746789199810390579271530064093130079201426878851484622206326420707447693143774821259197261014409734842248692270053975325333696181437609161820088868403617893877410600491518897199062155387829632377954232113811897765640155786324428017237292466578441063663892924534378420691012509180542629967502106596653392904412851886737473633894461972500203217559525632458929750864647146641210800507639869540545545164898352966021162316046500931087050754066486013284389008708700220366320314437897170461309770391338662241853666663293433381004577143315692689269631427408259216453629835663921293457318627274148727780220673933766136379425413462458573406587103842759634011733134549814323886827784551696999050117937265560103520521320494709055018351646298006315808432057578919632819220141511346443129622623430816648041118041991113717463584638181688265486104658222629175674737519232781546533288332531067816489223518368648580397973597746301908247649218857349847036579207035183108778549564907281783581548135382055076591938106644451944374360367776402073896895309959391876535427402036016829371116377023296421554880645648680645888204946936331170480505645652487085953950087841365361373101145282357161389527962973034405381947397528827854751286733228923145243137896965523951845975543160092485330042325038300324822821711154731879015984274349173315612137667804269738302291219783395536419559600059708837392764461142295828330719573074300281130947986066549585584542546586223052030656315773500581247393787439041619871218858034065504173007528859018959907713017228930041859372053480659484760996467927042898622529628026700930010752674827710647144500067216242137923197732891559128273721346298323418904706126164936061156130969317091188330037063823434777910296886476292054133164431748636752329092624747305645487953353356513492061187300712779920223480386622239833893321697564501063400644610405206563504373864694279361663139698994990725422669050068393204202306152564768429061333574904393774585994425657776814727339402721100331590490849517099466617709756055690161264111747045453784809520602153676253697493276518040899241201020355135615505991896284214348409116921785731151297869852969230349267605110094252763741738161630203055552633162286185512005157541307283253498478292979683104397626998095401089771204423759876126440936752614432413509834819767467088546168339007387810984836943330446254003659123099751342456023902439915743320501000564362497521127905820523453026663246199512104453630497590690648356836088420887537303117954535141259191441271476836135921041854741515394464518873175573496471941575953785728500661428651502735408292208018419732451550122721153348679410102336879686754427533066316964651966690659191797964686983472807834445900351925072153957709406855413262541424330807290193709374465577901064583057914378852775075583906739873901520450827523397388616655412162318386989194160742125184987994185441284648634631182057467484765145439903495328730968428815676785188691169530505150915318115332723135273918551593908879814606244286041121908065845780541393760055666261490758160317197295252170336395191462399114793254893660757897896101219177811716041275951551210582909650076114583363728187119903286068383817967824899407472691900191546583225198823682882242741627834799728891430204153965750669860605724647926216170762113004591517213944007849089215406942915692032565183946380783690483807875481104121067395436670969474383156804554546135547063627245616945453146547771864621549981218809590126760482177089132320270028188583834317514972453381852561974541039261103491098963583121379048483754907805255362766888004380406094004806480640777718392018485339217207531031458271255739737530715301406516041774940267663498760175454027263336833236398871338663577944976631573756248740906962884293779149775048743924425556173796401864244225009499404088685739527239746136403800546586175675770282815958680528063249514782324423305934814278150933327833251219434333950860598687042282002660959005677928226693524510558458318020059861910034691707511870242228003668135607435139841815624167487552877823659561546268178413569602160030455212631912036787908552166474996546813192709292050599795914266413843262997979292687004108944570524141128309141461392493602464092713138750923001453484670676330134536981658769325467802331664718750960502572232558475579036583121671422361250360625296410248638932597875394771023601345059543932412833136837688178664826800863199761901237538742443341333271362333295974820411459173039314595710589702118994444535479755644379503216202509659374724799429210805012431485871848208429920857309491624727195831699319507067881231268988749634942163998361028895712743323537733073198313825283835059698304840143496952100108501063890942828988358506047276012888735960354751874260438868609336367179160643615430573328436125178091533083766047567906887360665563096236437609302391265945548869202222453298948967450032122063568325425899164469236347954373727795787477452800501132929285756668428643852826817856042312063211636840809213594940003327744110510100282714133513198493188930493078069421297162377827844370632890685462210211636526049573790412873607879850797199775837967347780809238192583220232268997020315579293842030032874223925033322032022927198370228158065039093735163165649559598232508900891832065506967463563840213797365400703805021337020100157432911548189730876040139489821873857507819992006127964492635818481322277842178276832395382563659406461784522806458699758185889090435201662536692535307698763663489289500657975788074150995079093011923552211160031762462511956900945411495885374631029668816751378577045953601013004744691606794377219415741797777827006419304911918946811326290300327938721322364313668027492719218766252171355404159783317870164554947333354999869885250659971765599391959711412754612162746015275114154322266987928512541897687911258772077655487561831138040290436440199578360143480473237451124737960676090335303484069919788571994013727639903502078363256163997572481841392294175635063865443763612953378781444970763718920245886447668466468938918498239552897040857663261840809117460402046733755012415046098319747362099046116271444183921692581698077796278067641031428095932907560898287979372495859204454448550328003542432736356761147976901208125239710186585795362668605133765752974963506059206259210482680532898917348797880914110372937440840225926478143687470310989903457113650909595489667511869086007047182784714595683187933876833716597507276790105528109519912463094487171314648726270879683672185106129043719015743293553324077030201472487918731812889161678295759448674854812104107437068485495509691404834429009064176995284184713728230311787173560901695468632688510725333415687908221622087161538668644397894257941017190132237425438354806256370376175029023307223334731539365893685907678657499951748770038372169944163308846188472907910832522184277233200380110898977722893957977032007674520436223859702866575088575487046621972281542230341337371461109036508245424671543813419290128915504780751429001961232952736947095596577572976759129971410401574765246335235978563906984981833038715127562299889871557537465327887718317721565905886123791235636316564002308174748104802565308212191338244072389177486171445870139332539459660723879795457959992877752115730871256036935056567724828092054185194177923971231972417238656407628079301584179672450747227466808933678062359467459817939106556825161448315497238419286546456043034019340257635049969770762549817728254412410277523703073028303784927177638854173970300748868363468278241002452145988080806372666130743437357094881335701073701530063588078480418462510253626618158664270929973371576674610748080865882754181812051793639053848700839069362197269400543934043988229412136198450089737893643656572456106552676963832256009362107344614541856016218479353765318739702067836291222402088267149948432105721938492937090454883989400714086743911812628249579223743201758152747421619748649042483489037576503180901960442298884447646423623111383036861324013958754138089704958680096292549582072210012946098697958642892313814900298976608590293228614804724272399076749382861682041144561605021979817265512345864935683103019592417448615234573394313952629081616633206378453365323426327086347408830016686485960070014007718189070473769470908774002119025151220213217555796919870298641537302236404425289392197158576314795346146645738682467035946366884526892015866931833576826415579817102625599414961547955034927100465201626945298387274881900947915670709116539963114563328002018595153445905408501486783325494847678229930934014548108174425175770101336927806961298927065650790958647138294213495720531033652523238168195671591321150534410493884517405271046573001966199558165221994767283740578541924215984741370626333524367702732382288819769607337522904736568922921656952857276587831492139909684247343888484380447279016339663251643134609239768051867673452445585500465006643564904448249671642147648183626882673598370899304139900293271017762131096305712331088247499766203123849530114219012509435476547414094070161023727357380395990416591312361820563786256277888503218738245306263830399388957251901203235798697124697023392455238758501608598509725301001208885626185571081951568897828979739432240367051255565391034442686296441538635978015933997899273612047820523355210873242327120071177378166817798773951365223989258587472816480221641129724364659548710398681582775085922919607648216876828114778247739877312629022536037922717525472432815339560870997639168487630725987933891617055373661895076214366648734637149316524232617705061245004866239213447407022722692085380666221017951830564803760649322638902551926778122169833916483466602666862899632445280780456982803927607360860931245064542705765044540267912042929844896912478883947065056068534418341365612252020997284370771911460291651973091467063996880094508690570637952564560232934207239272107662535675332820907532028108630935728451744331622095456530386366972086876964168593635188350372419235371780833707992473689765211023696470650965733972100843922919354694224038284501225573357253789728181472857724664616734581442437062056642427588532213977891235266606113104128363388853550550507232942421000884082856228391628838246191529807737218455934128569865337750828048152777350536126621600602957964747239561451002488934053208349067449058760434040881142609778755278195543478966309524819538563601029219283831849636131530500686859764348044902788297941893477730404477338931856007643962257749635874763324305282346855920613620273582341269833249514679187862140633583759541695640613943842672570471186582523640732606816579072070177932001311310139611090874519196780210910143663654612869906099957947674781404997590052849971810155182330528718626070421646771730689293615456737754884556796479672065005473526555553135671607882309495824127474081118520876076110317067658277357029757540341371617277806696564465792760249385119471550490774325959116610652433516500923148987380278138215440085256099521914548281399022399484963412959285732909219131413739657905445585517103908643720840717086765432325974808996724053407237949146439240652655211053868726240759929270317478947867822067572217107266940600391142292460727738823010482298938923306145229613465555224540848517583603252307521944672965923449934485009906074639657984521715662215730773925937124270236339209248174978923789247104911619390457120910271619144237763856118435992815864096440023057402277610544896177522163733012458825183146320373166691768000421717321535148941281737006903807269588373268709777424139726185313247558177954573372542807355886385365737113861154526948998016476390670201808936900827968517540660987721967157408415228273553097708916379440653936900207657313709505554162948626344030598598233084727673741691020771964941375691782282675677048510627581738342778855852507094104396631978782755457884056574487550187408250844551051780273092567822639108119429021576243926823365318955802683525866302113077553285220785246212575712961145975082261163460945337984103016850751694580893558520447791494544425534773529600470401875566161584205296569368268966571652312897188458282471268144323278668821116435102370484938991976598084001590598837613801824922566833238395225113415160202630883624286805383015134315061363190674530534036827465244155182355924949272562053115700412913452074197625849506644516684141971002119237458986708197417603246835981536926241493552449819331103803200833804950872408548320323384010561854574215564334886190660197178051083914538686449446766672667554221829997535680395198580107988559970289221143991024608248645279942230132469336207371802873552820252737287767287895806729533755291984435156265761348627132400300533860833070292866898224878998920894608592227736725341988029000359650763653236869085293570909266894125233817396314943183730761017719750326039886433503109088915812544989139070638359938298513577782268357829008122961638956531898772949725895981064418798520426082466701395072404509680422760417066365549527457037205485071511726100062527020671109259743494199688944989560356784010144375739497831139373862364158936595951736071535692692526912800996928940563247076631911414534993052160788942288610397361146149827174599124282593454373920743406066968877701892182394545787014762329840722259630703599467525195543861054765952873162846118831289920616493029078680024633762496727919558741827199145205915017777897612195480791935146564709019202976356397483393421483905746242447553770692741240339573620145356005874943434637447484874787667429808665944615078146305464080870493851362857640578948968626759879857687733126774590234314393293327622319215265450946788429577541172403900646604256242619660319536329853009253680534796790879505681836607807888653563386557587856680535234015065537700317578949392114706489114905925203636303817825344665461340148534942215500811006139396108911387187096659877010438835991352896088076825602136649279556308728092448737136627159320842199623138409815106830562481119421462293134294607546869154045581782160540859242203535042036843775444679972889623795510588173990103695509258128544432618035593561194888554859173371270394332805897564603936180629229458697825573002219781371977521421028261146531865088857611757173049761312774049695547839519944978883925807996554258381235813058677763168363153724518430222635026818800108224460342187164583885561738199522382240443488997044463253687912736196345168783220317785855713212620448644299916201017110160300211007571419560587346662778112299325126745288225710471943435260111250513526861337021155968221087844560027168017075060928723937998011491102952672484902108254620057414425195623254757810345282018391014319610951839673024219517454008052034275871749378518186432452687812484564963412068189727530538874700084063555972031754880204537153584774474948740180342484989725104455361513593844384768896679801685570989731274155560828825558301764184682923507861874865865362756305031737019376941631661706405693295767163186507402365670076414586239564466038285998561871106029514268370943511600003071597465428004051461354842372759608480587719554205712736894333568320216948460931632124292174787925473370989195571434865189333399106742575312967427897384885298243006874250297989406934362099938295939118406297103687491250397732289154292638230272885222322370132300652567023302799299439651956821239223881673995396754110996013503579818000392602455593156740530063392495652606189752524870748401131967262349935093189193801278659540815879750948683833147245935555311113362078529420667701061938320017585112219691033234356579934047933093881558629426479440417228637817570141880212952344662015574969486959972712422574190343662602576326945193525941250155920162029831619297106095200295901875444773336146411503585793486673451163482716545496372734743719427584324243206656637730061728872067516919335164752863355355220802111899364547797906261276750121016393042131017358079027560804938268485325766217956325249343791260197214705907982215726909943437349294644720386859727430303068379296153475526370769307007929060450821428429350214758621972824872392449209126068174223163130933096759270640471264523584565576437232701433354507799698928450127121080983806302915233751311773151225964383285517367845697948735166918046017002959819616802801908927142840364376492794216227747720710921556297053506892062405661304184340538654020190506325261390407136439428502463695015452662302634300681375023954932247075156947759916813602580473352387751315658671658406799827144125754465210163255762597968859088756054602706019660249665716099426065115195716446070537509887200954681826380167564504877963132998163600019188371710138974016801103247102691731323341216768501165963561519397376042639362113240381421043104728839613413945922062698087510878969117112465934518013016288128561248823869550649210118118634266040379019055793386830330544250215311288024872629565069060296083520505431909322515102988712534408651903049341525568096998222268807648394709662183849787506745174314910176503424946433879479443078301698863640712049830778671169431817929047377008185969362016965814044831300141168011587879491511061616666737327512602309421572393531232851021751429266658162454472985771495880573785576337234971389734749619865033648582373209474493754762207332850384600170851281602290365171610343410669733063491318759888692891913217591259388312551649492005392968057056821269062037198506317485552963388978194119643439690104703317325860101283946513507055559433277128189660846655304103214418068314248875512569294705576598811804174508646260005054010392988946429876053461076503693850972071424160710471187197002913883553331511891181719064186260428948213205873444155936027277370717159810871325216602304225474651504459645961045422380600995991633267117502266160973240056556019090199394760484746465188156474940000183340356916179457569583832300453149225223323946725100139676101942168742518802919256332234963811998331413062176240958238807996418584769496058932941633280741843805434199593442198913120213873782184116479238210132542524034103346555261579927492100543504396499961916687126942637853516915890030376856056860482815599282079890929057494934522144066212477284347452691444151917229509520451720382118371622632250066085759787019201954928260396551454839121914010063022803165457756482917182473311358327301995012550620264283765933079375574556461506573588568447746047896749759687285674914248378984423557491401975256488155643426360759859449591606910673308253109184256165669005591838965338497131941479264689153618968027445179371645924139801317690398816627827635873359916221807443119979663105819291096497153336693728324538591270836995638178305646421041402797427448960828571291358514407068605726422873210241727275003225462522490601777262928741715335014864805062275827091527223732822970016081515091529574963015614599599285101332526944752388866315561926955512249186248740726426425439214011732775505867903133237594890092002237207235093475588227536990260243707689624575963476434298752127497624949958081875938751759726489517217053117331629385476395833922438075679767004419277571914166547647883096664777780366420080118638641505739500026081729656774541307155202786461226681719636704748678439382858207937608303990328358807112673279167468675078773379929390588771179932699380220097800676403598021547443996607110017327871337841884869097663070892534637050454279185396336292664697979057740258501113446465682866369671355481723656124024880858056975298780537734400553310735282389228719178952338425004253401436747124833570084568319394610743551219704960522692478756710760062859206050498070125073124428344205300182933678468945630300578036879216579365500714981920942325084851582009090838145242686280094954417392966595177471154213688331577390466203103955069552720450389978293446350357280039802352442321408275922863398405775613864773345647841078696211525069552569382198051455933007755664691298172441885311600035455024214502714836627077012164636597517813809352551923917627307135865230362611272006572376412814847233204743249503948560736780734217885231294263474785981751122536653601421809847934161481867326056046796697377724817886165203459800427588682617179135424514409680033157348765162969597114419138740731246362402530795473618021130022639963968780834714881610316631459060951987445873990347590343217409926524532702982881797223315407656289448803508489424044011450641202260487107193144204026279458653343301345018735230825786800515012823001219524489059353894957817957765093358157423388706800502160202283373286321059420382485445776183059715848846315169388056711376437889757507160744928620592271457999513504496903622976642934816775391800688672423216938158338997209492013477066260839366688986039019716746213474936446408977453186835586295772992715268875994553398955737011840024951895811149925822136177482703210816496157318589581692196481208065023747153509198968106754691837879426913950397013377093375838874672323266151004063787275901228886663367770647492616669132280115518303926503332462552869995387740835300758404226031408848733399379175234228528287444420888246022470425119818468758398570842257311748942695016906890614723978135048599375490390189099811741270361607197348774877053902217590099462928897012332640539321935634035209214317092505620276915419767931889082345464709092607110828865904480823180845360909976330441603296600845567243199032288600438715642410787604615521800613182700768387703196319483961110999337716914973171334340974806340216530511325373831181048745766491113426129403884691157138589811531556887689284684587364770603393580888361768053117391750236747811619864887496941821373794764868075091282302558694752333353454523868669591249688066575797701794426231537023456126000595567858198723008452070415208917646172632952741432463503128085779822572020054006501616357182954780295161657143399708430176474293388342958229512971787041633263177913189325959449570232563586248591820236884570141966496184798044292419283466613419612520221510875976263581797251243372180313956110714667706125940348492017139381007024032410610008365888225100327919750147713622531657006258294904878659168560459912283787538357504070708751205881429944092263667942152190043417769985159386853502849176522349243840996011272526193936298918337479091628393340799311938124192393383552692476063962085502696969530151422032073133160605609734854000834534183950001784906936842081917172333606679035724155884559978985617256673221173319430381846870008973968916222463478504321460163959215151204430547948913117817119622788972540082503077170295101412282493329079021522311583132854008435121197743518675443174958433061453526592777469322504981661286058228923559728492044553201906536683852422267552627551001691822108629702395635766378047282780129665346917735029371175964000004187891397594411288336102321643045250416368521694900462916185073606015168333955835288861181869413917568733175223804692321884258942409351142122272063963599769517634265982741416133293872485618790993152703351899050917727861211529932852866262839572745167314819784824096280726954555260174585440889349612447239094062824115667056788503787920912017516265347122840789075889017411582978177614398026960252853041565559923193263173114487509933976385115412811652100880207173973404637953657367528410527009052636077580654530745761775950506700691355862391330023065237576536519328184156437357018201387219205349539987447854052374486629808171429956140179744034687767432688403210285052658211786787637813192003111499936851941759861501990148184457042740290800152273178711836694077545628235219835499903982698262592642904631362809092957605119276467967427835697262419752840399104350667682577763244346214382511991997242631241787042631383970915264351539830284665587148946106924922783419054210949606942026522970512241970640924231314360720342020236174126014315025996183819700336564430492081220091202614483318762998259579709853330178553358770871981147579790259122136129692643327133172451273441059711980298110154039734457302022872259676894330083566430645047592401757887849624594606570699077999925282771185645466855012727579899463298080663229432829821548425851776856317580347698262451969497055231184228226255819939050109736563742255165149194345633799294323413414198818047045462479383818837852697793272906066182328652494402093753601432421119272181049399199626664295755261230983877361406668216271646476180685152474376559274068086857873160701480875211628944371571108776439729299690378630671539967733847562656447638182955438972203499087325487747646179707912374052510875344150435029260049606805281433837930022778602180919207517306036480875751320494448183996628825827308524059251224037611176648852252809925700465542527468665550020281072390028547202471638385450531786320714537763502451202682881354197911261733903858635290879066656616307034596806953417919916676403715149826522088978652091994024342913598608722218871534165468752020697503804919179988768976677518544866634765260295464577042108150763689163235657368794900045566821397032306654710320683960638482119187987977935732970903414875680115335741332601917617436000338456271859920582868357511146777843953144601464675892282357331615073483876189384858382953309138407611693196993263784780633384458317209290770790548504133779347848744381017057894395423420571909968101069763627160289069745363340552261263443134857849988242177456032551669181511026813287633880655661930747044171051019706877096256435322116002719530553429491443472926957321659957506995239544023628120498863810617151853770923884904270126783576204005350408985010769654262158975657672254341474772638768721876015264548793181941812263453703456212254826090897997315376556419629670006044794657964105715818130992807682525579081936199556113098260443225974126305437589869752368117634748085299074268049095518205736940871371281116245630098389260194186741114096065334459341872117998475228224703212633748236781989631583080231018552750481400972378875189260847990353083796349063618584379449503706527150070626128943446131339367958552847155828324156978065913006651043887043908889495994862086106654890055604442624610792901377489098602289186843829929598116440076124631275235013426276403194368764638211349910800030545157328710210622858313480439320111848291407267730904048636618916636691794643413710726961913296478019713605283951488051353371953457364475617458394520073058055487562986196441760362740207502861533252729378348414652277413767260078168365112212102569200588676463335832675567634300822975537125191265548673673533786030713590941628494490209860858394294672569566150038484150569092784998390653676977735928320527455454299398675785398494806066157853694583477521491371719133015359462075662369397344042238904358402613314608322713757837178046112335792823954153611255422112945336006366853807169572628077445033583156833458044548639290174283385641568554483957268214957979379217658900988374825990046363726129705994614158677851053093646185874181625974195981071756342029833037161126176535783939542488748934072631830949711523203789035969178536779375799879763630090756480474869949885543772420409313834293940980025079798762342168582960767107630736832667999069898667211915444246952232419585414535484047131236479019378679656858221196499911301653760289723878466698220771102787011053992037239814508096618117148333205987233974605284054773751601970042612166622174725006919630469764933005092561948911594878695332293614500458968786378543262283852596578683874005704479651484552041537189516519178923618729239081586617855797702669406383630074905652394902637602749696891214334664414344178342925450085572663071831992622939978080428091314763499165887074275507583107891876605520153697461327915855912528241109741815859020293618796647939614384030777124202022798520828995711155373098876923258015086084644930407736596157179170025659242164797288856836745883536204692999279220664298174735658261056150382554205317659461382514650804834766145836225317809327413741135734572084217944370648821280501142185184240367750608191679740157762224871835155789595563222484166508394628180332741451136607895725692146107192396571238099795709787170052619716918666138880614126446109915340292823974263128740064153037089721044488985901453424508266055150185759520431047000451878391108790063884208647271389867843793531854916476141533585424166929574047203155320739652030182231075632878708016787021829716894099518759309682499371863189057818421411058920243353833477393522153432124217400933391497259884616450492688474316032462524071116362304628469546356921469435829007554297003203486776483400342391676626253007177120762476449395087852786751806417411742113509482397380264072363364070710059278027504370677794306061428596254761188100607037743051796614594203189353964862488123790348333035007543465207022163852130365529646889798418430600339898421399037722587684435404309058036276680091565842109082548938926404408466891058447445824425249040341623403676021235737381737801476278938653022010658558798001772038124810050633994040764339041311854391387006972418693330940304029724795588968991393925744982816343620854589584629442625444516370516450834153229551777780369308167708658041337605810271782032155601180884702375790867277415675579127874756546744071769168382806392214813403000948780738918685704087045840376148002013412941381995212843181434116465455959343227578934277330219388089355304412096769563258458417884514982351880205522616882063219438020653975082449114275865085891937690773571233141681195006130713808959911472196023010685812640263617228684357043862327970059099221531754014403700083384477163736163944660231248370849359548072296838879017421028431628911138208456420831459169509081813871409769203558886030071106244132747491515346766096994387112350512016960285581838081666319515186510119855586793330015282528318567864346286954319668877327805415885675788368587444945281939751349195277686048978775276371722557859040632855488232919643258144976403466115570200374001656081917304483498165201242994860673439857444597835618906079645083867869597229757314459508940896213355817562666011219559662690405342829772610129429222000163401906458417978743125413946029699395949848541180734107039125938568059518623419311003155298672098138116814276538025521548261018288908285479046085844304829819634566203126879564817651407165099450883503279922107899967413629031833798999891151770811892811642377338174403411819952339835553614754397815956845557826766193274628294280785740005805658363750310942183016770122693493748944112051818471310347355978863523314578142361797619734038133646397651513743351603157815456285541183050556175796236947481059023914958336587751815925112890196072766001552671174527400691119981252970230164422990076508759326758746633213681496496155896643761865548443402567791806713742800795151878088517899845344948139980984445130116398373036064334164565330991627729017093273733130293255565192561603854048440722821639173960160078023868259059610708200009167110523862267067940415837585274585507462366310205665155747512982567000288853311216607521757100682760617085582638976841748065936432975189106020278334492307394490272501989067890548069605076396739652863983739717351744411567262948370862037251333838236171415956203088390468835980800580830219355340067500443770531757543696107585177569128069709267779666668275795019260281957733423410269743332207081900964500061988547493459287207250157831917660403026638566503111257601236237259481755190551672161425436899644381405813696532436103406192203091481263101262657583093509616441866973397576766868214325463357444478590682202840268344395921420898506999461411420145861416291224507233325919857150171199492738753347698903371993526778027713546961762690758374222863638806519166873020489706170872557842918952293762930748784284543088533769051127394026852633239980384008179031899406489579098261964708568471932391866090304924317523485147389656453232709619951755076300088226817162588382905181338450696737179335891428274809087987585676263071351320830820644385118914182587429919786949244139644219361210751635213278695432430045494114350075776722252588598975511871832472900509994487632830360363673471826731354056305637017607919527930983922311557820954151398978273138215708354694882429159949040178501743262414690271461163286430932895311246338512361905450929533360635621547000543488269886115182548488334954528934124411148857147787026514396432689005807581965419760739545542267320901051114363076659174879691080942940755895629218738314100127536583559370189924569897382421165213449111393150077147544349765981947478210847368419456047778875414092939449888540231294745394172878816168320920146483300144816657812402204282091941669291013013122795855730477249477506608798256928094173478920849224845873753061193604228031694355955053840115223161516653246949678325666108615741274465793682494024262807115293915081653092113719427433194472453729032380583921695759519780578414998425691705809409383060888114610057185855145838597494923920676395014498578062043218499977676383205965572289180582978582522411488809180999817505741557839829619844822150921845130228469023936229169034467061210127639963056752285802038177629364220575094647509478874356625284897803425663949035397057084106741584174549536056604829214101917291939449969067733450591983241435429948385741372868383455768260931550063871960215139301242099027879895177029683788300483706380416698731051036932779957740390540049396252327579015894070159824724979929493929634653240753992694599639809136335283329412453231148160034416258264432421103784090524610409108616129024401014494968600734457470047155829951586138951826353343537826311025420474671522744850593733188974841560574695463895092936437486438179246186086731196881631593338505791076515506426073100439243958233253659370659478612284632183541718740782690670548612991740284737012679774419150408998551872803851964518122192911357905911154297143879775104289249801510744464935439666388657478966070296449412175029734843943713092775627922531714339089760053474122142837967728529877553934178402051954369352147155863969980863578576263480186203916986017117860465358970572821279392390021216976197551150664775100071644146431451728415764928292023921401067426672346005089313733863253630342950066265610477575075238243047483244530754144297170402904928373452559441383830072310496935152026980674674289577377820170000967122692575165065834924888674889867062717551871077130580352942252551277107972557827993342707143634229556946905462525742801255038312575621667640313075736583451197573238355085015697373630474045502886850772753866453717536944940615675250910097635832890764423827554378519534422084187228869035786844754133709216569077992649580258255498192939218942778047556351655165703931788529078336719744932128864977821272503808574770078586463683612926884259898821964320279115095759253203028914458450179061024560620964007005874481380782625050405183597370644981599739265278729856884183995312241080039054429453807313824160725343539906405640283596316197791884647092832652151431337623877931205552459492649458331530152844887110289409278782848248294152371062137040030964402519252300824756724809131376216328604457897715544910045282246406476281972461714292758373134458771323441175745626117462846700000439870976389718926518295842507222505020539869146397065061895819722213151184833215068514253597027047633745666917797926631798523299169832546504589273945484398496380768269345594677267892736648048399443211586918051759753061193274140969591576658019405056682696900325772719061013813529737003017606743930756248396422443059348241453166167805548731102030379468104211722057886527037684603658074418544362900461561759613851772822031233441508288791559116930771078651328382454462886702691167360852089625996604222205004688231129112529060510396210036189952386279326404619193735655508493238817834148581484375707858582479686593299728214254472474220357923861886921546088226792864662364296729360051367973199318856695320625263212792864691824195063566858385836382012908440649458934259237980866814456625962139133951884709367754165534896529049731279750443196621100588640048760833033062880927802532685281139049277172890474219407144666163695113115580161892917942152558453198817409256281418991396968203172186178561094979463152374523204540679005899939223177384562365000094791741748412990221613796556762690525397285704398590334901570955191672734930101263164957680836250500132592970534191713761959072983181829751493356280938757898051102048790329602124517114984718012767817122245440608176929738795323506493898107456701467237508119351100359212605803122175475042229660808279581307925850416348192113039813221277241108367493959337127221086910009409136385288009522205774985813268533469509375997985821575775010698998450614694668653898284559131841826471553653991156275992351437095277080664217168930100529267808655799471555023235581498663367875818866690213029449905962231889768801471633559836230978755722095833203771011953570397765415855303961768308244853084615940231477731148531967106795976262699923062485385353752499181049870075670683301736017842594555266625685419974529819594023753842043541254682310357736976926734709954700697262205115046804151181809046519750006892890443076258058711548466102103082790762010862503942585360903952896725385976006391539423789349272225537150638521613896295574401684467865350154432923875299902922759941324317244413911463044041320567507440319840037701441790595161021814963819566677221456509127654510673780221055993322372046094936459806194508428085989307551895473207279924107662195611077995921029606855207796112836691229621988032528782690981719259380323854085231835763804981765388843915680582254245234442718575070756137043813275915008403198270711628216547711668493943193978601136319449872137460854063156679387616603301521398578026798578673614041742283012255910159810784223108954000548779638887988950037962518433985095243360725940482965890269218576573017542907990002914419255010934740044788741409307968836714537132049741209991906782319394298237295789100005435738605297158037447655639049593827569296948660485958391480182410958867865103409013461761079885505779967185849007929537614801706021044981318902515241159301973401469657258819982065135726496189355013869158112241893509885693345374778762985086956654811897751841921724367490741895162095297578056005540308687155680529390647416532082851736113326537158692678191611449577163333957108933550685824925658755088967595692039058131146318849524760625692013600282947395083608320065614709111476238827834674832948223578687113704374711321388901402863670113008559494402037103921334228217961443782004793404588573624997469965289371374610576669350723998032239400421786042425793613140719819755915424448810881598398648360468617532970772839324692243703522279567474734481491055783096972225139427675079709128747451803345868947317008630107160889172197669366037949139737960703424845777896189495692542128540777758690636745207171643296301850944724610499600711486383065751611664716971904786853901000390386471814593035414853235386177073880023651088616653370213419445170963088904386440266486757960850884104317599047444690907248311373817258617993325071184598555819818831186194104214514105791913272117485801336509839306079876932164206190471302213807512201417041447354127507987994540102031887103477827879900630498254751353473585751026458528536500429704795009691232388000798438771608576498403029494420509230906359616231552993028591995629349773880296716527368258695972580915441665459684995179118181756049773947439981072287928521247873886608351826248471100866865594895241402832626330691945727071751144550598577204341535304619909843378049366810274462538306333966387398091139913271836922095386692377458109187515734466654529462129104115114230477810053460101762345481371632922935195647860161914625221095251207624660500823052977627393527959682931284230494059790434793166640188475156139587002882796105255072978312176586587524551983409151237163505730117719339494764951455079523674987297959925121599905767356237186278281378756510343152587295473605405290912435997775054493741010443999171825783777534197145483632918942535112910253692408354002406592975158108761053276598715946071274589662616173661255475699001292511909119224907691104537549716608694711661496514514277555275312078720292389588905753810318413942044377223956877792233766095565651395929125584430596558361612367811096408879571378521494554055302646651627812722868780074608713364478659828066258770654839614686370668348639620790057264960164073092121193534670585994797914646509335071709144492974050321341128625928713460821942032003808049047561806181062698083310347268872297620413307443921726258927623917480766272370336283350701784850483164500819948255188371619197934069637738351854655218320816216682546101425095221425151996088304277422765394115441786014804517503763252168682388041381431932928933470435094414376207010579238315951129794975380553618728783122987768264663684323180602655522667727056707738036921834712402746786985979478773701923460822953556399401083902095135281670406977644259310010212928208227419782047957454981762115957124424255665201475193017481089871120495933733329616770045145983950804730840469659089002231883897778245322008702884207102617177605455709325763003714088266228068924066607741948749616356666625722710668449456457259055510885597989203606673456430684217694519092464140060567014790719630503558314247697448008960258987968914149426152708870812383364798525219111985978942871824859270189972849799514530059407033340546976354540044275773458648923420467568936474511507082668149999437544559098239096568685673392409749432478421903546865571309042608792278273623895784129418697219680998953208600758946006977151584014465772900991477610509857822301688089960039064239321710182194041040011118515326676213157655499185076032268870613359230728511254749042688224882196023359904178454932541808074224023725703332741593011386601105946289055677579701349764436413794446351434815059489107796910307072639935679493652637059081013500348798687200396929089350668503741384248584574180041089779304040947044395420075880857035559810970728123965728529067860208688792856689706215238954072728259383423598927584722027600215044858153176176336530081669674142420827429664361078350658225991624118811810082727315820450337882785004890417234740345694994292623089252174401188975293965125557170630998628438873274638581979809206305526434138793344573822364651008765389236721869236685599753740172222942192453379318883593531993250256325853565266261423859495535089482311589648800812480217551139745597787159128172683541365537391999812782601444576043295943326518776154628136019871378329667772069167110847360795242801764830441369866609285745573224407834827224102967654523541214711031774829697533245729983058116855363998679250898383300216304868540782221035514982581866862653377684304897132035812332932580432718697937870806215805030759728074602304009400335750110948216032406169298827644480157906667075407902184604873519589041031349400731401495973169498754859245666982642892561145008027830675378264788626825485661302218504100197796405171705691079556781993760194436354714971085733880979104009710182099439074300814459239073627199291673830685462641110668069775921062598240199821633908426822384233288420854775054843165605145525345871071391515538590097716844866561806607255913559138939975648441057529968082990685174156913598085721181793583711204482335035989840649877265589455544043009586551766551685821024083474090035252477414561875739993376805236156181604321910619028093029210313406406272823634537792658308297177865764958603735997458002730356587826865183520039736908157442763549893044299936934394751353619604760765052748891497213913454316637416012530213703712849258740598843738255046868890882515476663882913895969501452709072642462209223916670242005750772570499150788951747075473980695561371593632882546594122350826233736543402805206331618559658831562490572764560885542078446623529431028034498709937243293254943653115573635343665785153632841546622000383110618107058152132206102783969064813119982540952523594440293638301161129267389393847557827772705912415869704612575675661465675684083964078444877399150751606077033047481365061823328405891239584741384652747760667406976357676401331266436645273395941887921346149958551812804935089037932243914565084690417735322304516612853116701140238724966688642116605134559753261589201105314203935295199403047752112084859554284763823587491223133647945020912276568318144514261894531518796280274787191077333292239177933374088553717910479453619638417263078985074056066598737130165200696245540341582773111613413169989554126742205672724357012049123074657684644705525223999202507987238158639931531440629380734592227749546349179201162115639586820124404590852417348772751562176954768284810308957242172511733251322934136394115783227751844861324195465983289771340201705464231319681912354973787965630109365591232584224759408831721190306639142096343029311734133123936735281989719463837342182210476785194220211543169016748039050519604764713431289493347664485719388132734577527536701915896146532965751373588303146009204723345069548529554885411074443643379618103674290258641682614569981814687421119246409194739390801910512209775201489454656782764967184321016345533192987005318736990259977424354678202173476795379087010543649355987931469498462462462258253355858745644878664235977979061954878627341949136093812546318486302544889190401589458179850077495100936606610223690008444275980558237080888354770000711107362194653909643675825427118211459297938112517059654715079921878459049872609748379166143494553048182996835296440311497752187307020488046889669725441739287209110404101702397366759094769525382471432810021452211999330819728924778282819833997294939719301995498344927691838051156190865053246652244003105645839072645486264283106453461088131920861126922762874139860308156083942331072946474657319449271714384855247632306843903577815395203519171339190059062735405085923159015664288226802796964116968196489954828562288528217617754579556082485506306792143554840509099559539237129476865511484847817223047323695236331376483656512512969329122236352190560397864586168834082880582813812674138402236927922459203248881298889338553258397911254393028243667341564227789305275988957269642015589687444589199224596703234273369714572636479686342316908266008147835816364467601560526749989881550292638594839871539996280336543160733993088430982013180447041610287240550846787691263354184144704010917595417570052999455526898080579806859069429893953514910858238384720165186920053444982778695062986287969490833609636696740977753751316422623098407535616595521183319377475117179833660180357875811572460649569750363138381903235214095130732336617396219140898985026951636111015708922824185339410302616818228193806210951739030950968938776857703792633057992055442457416878955957292758242170009123466423096300601704314336348482554151931981495855407534891594335992335875625777950254854282846963739448703634159633823371606252795422561697862218766524543971321656222567259997578256416258315277928526144800517820451197526904760476274184840269849272015932070866340493753917875007224982397958656052349257086916136807126455181096090232549453568349326944439775544903774782295304472815425604759340368862895258756830132057143241988886315810704033323530187504580925250922051476317171865931927619816299731858022415188820161760687958989275063836002589105780848106833509002476369819155698250546030794539100409321433447509041971872597959271600294809721786231032507713545237743809722794610538768230289168108277935410102579287832229064471243312258098943050704430825278241709081725355289342607617648675728480748126055438793475077438339991682835897728260235057331640753722034624245554481468943186896418813882793683485312189033603669467959807557582431481077453076062736747760682487632113287269940537823287621814917281093766755523262062320658897384811067885063140657420634076390471225795263292546375193279231499994514640561242916083419733902527908076892474418008652142711091293236101016813351263162806066204516928275938803854747995161465055956940909561285009612588177576959179575993321877955393990672329397754650966673159553431321965275931397888108698926471082133285332487687768240214851292980050307134197832439042318337468660870023990437334457075647493183436305586417404745710852905545968787908403848075772292784056009245167263630107110289017581804239967452235421955121498076509051753921838406454079545288193538504108857818066855642573373286193457475037555000194621437636746155433416992669075523185100953393865510073975568523451673873728546099443007873418684768085797977864471554660672352941509672101426419976394699326152830484397261422512354940690715517348770452299410077115968812876783960950977723842643500893582465467175589445128864701049938872609573607130031138568856819315632696549417774162276578884424272620243245648506437988238733970070724578378077347882579309701964663357670646040718750353607009292005941346847258033812094472415019402677448837199895818575988224966931763386287007406151027019506893442997732842459359130601257710335505167855790410018518980495112137062484644426586231764778887496049623352238134421513205113991739142108609250752336188439233714379034558018859896180267731777414453437085137334717291898653722375799012973096760733500759750762975541275551290372503174798371171765307732120551524390687588813473504287448478586274324334265837702795205039612091429042420149742337836870809876294023949961732713111358907118986365587032873355370510136277309116684063438303387137597053172733015121487759939766874781221263071155024060882518489411961146663192459287880996892502662229048592223988372158296231362197494015814284878898224503839318170940880709595435437078190166569369133548341719551136738356063127647805229583670868063233540821669704481969339228834745573856920410831426448800778038635759948250918760981289176359446285238961255382810398642033081768804206423782312833147480325394701056741140925659488140171640140526509412428762103367707114267521005821320979567587582914589670261382801048511493216576946798394676296071317137526278001430417629167332563455840172304976545467564845997455568959526222901963257474084033635879029770275012459738321289255282894297537741376485467168294648510535929870529031333651889697322474903619948275075424512835544926508718722665366563486912188544474834854463422270780686167973326341341951011386699468059829025402463873451800690193531344634881735812659102690463335944904443184402485783972371661378773173631410523697921309183206846917780754906497183265363162998752781231728183144746578330707601340013896447959690768311555733584780035066691324852908016023641805585752711513890291681780816789561254234178439339437611415404051895699667154632498691870167143431003406472205553036956414738248085075980772167664290351805158243352769392519436976370177558518657990306382701625425217796210622569660294726067904207101757121450128640067907683758255149144915534934858453327948054198460930226793198526776444970787268717542964440766755615902301279591871863172833279469325724581379266768804812579446798265529341514183107763448137381535517365719040422135990746449388656749959763946314520537788166337122746793106553835795659177784386598070539382544579739828764545937217570699560593974490248060710727542648083365649439550653588475793708000681093077331526699256508377885833482052056862149274492898014517137265859245263835882394596562267580691245197798627696686278072621068365955930865568446543794787617604971109318627550561612818402156852248510428096680734803761434609974847920829391765248714482222346988481308323169863099317646233494548514159297242317046016868683713158233846787161624504038820877528613791575431814892736970061355367954409927446206376071824903346447339299997649653027786792402194805317968125822630064889097753700296291595425761955447288936309433280758454888266615758266261450179496087352153848611208493627043793753158068770879663191479855844779791519910757744658697639555460714066664024298214161965124990347474086768432418116137738860533433434968883486176303423243681355959463503115690633672382300515644513521232134534041236229926340203382667100061771804560345381193827567361692706801900056715942862072660965080784075798602397981742695075486283571599714050002816020501483151735814533512235465267505842270854292637726704298139533886536930373001232629922921416040593200306591134955253871677537196751273741431102375900836077431263599027047448774293973769359608242796210074469131981571293134068085756384336487311152170972008058142618618730802352035694363944107150085032934853974718945869435622614940762435669560963401229346104673259289461815237481003042882034199080082154246502136737785785734585224499077816851379358047163839095854217391367399449236340164276636636307975374784276342152062649121189732908002545853406858476759328291573391779867461311713355613659493845166169221642556460777473360681312091437974255706438794395325533702560693946839784514477596145380944631270790479899075283299052965159617234104593982962115749603925484603868485245426461773022827836048235289247206716477118278330953403205423633831405591846147904007251023706764691163760876655316372896342080343631653514276210864465518308408719823514156721658557923698009924587445003547601610075838525086979303096982036215976360074584874762518654073486384102741391972773724906006454492889308979503663108559040943556910051647443373491369485611495290029892401477766067356378921727868581130742178481024730635012390804229444889146074428280232144771914063799470402418153511895050680970911599452520180355797860267893355964141228594827668797581708025760229770038891856209669308717561490031387669054860831187912025759197734305928240766157117020336976558368380171299882985191919105326186811010361783243989100267448376982221020689241919456214340799438121097132624711868594435576760136535142391452353143130972551380447004345307586677350303417524690017257256541659141253644766436895636631655841199393661664307682136246158672674016462366694313132727626865464129454124095412483512037207331150859901367819442988491479686716172077896640662119894649340063028184078943107773431747118882420809497400719387528796279118818064889725263092711433972771692319281813115717228024245334414662536318038045134232443291024020142441098361801433221350130083748033814526458126727558563173525672897161470880727242725105947091397886849175606102951481935904516497732400825860649405703221530555625986393439516775405240677120205944603598413878830081879153311327010901243380730520418294949646971196421946391650506839437769485604266840453575228619397848738460112509330245716824310216148014902049745827586636495213158853486962320145261869683636777742578179143599873177533412325895004336403653505821605330292566054743365131146995993841428899922307668674510276621939269003796199525597030804622706759224583002194240432020610048273634879978979846161871579923476797342825180063836284107177329170226298235310894370690733896906305282481315485962059219715657514982080194381138806099788336493605236969131937353555626635418378994262686095627637234183083368438684808363372430737057987259373051411733569362404243326593749199715710028351825620587202623923679499597500914501356325270088118524183671625483416271339211296195044415463402752828551048574696332046401868960799135920715417364986912684445124013808461644017572670196618930189154355180612727539825576165302494385519387025728890220093738828533021847128378382102653163569907979002119610046578463312676318660474100067079649570944419188461350124470691450458379436081762209939332546981987245647378656022835124758582909659926183670975142718386281527928271272150626006427055258001967664221579297643931357560218612615863970310655181636207226488848100359778898457418559304629024609730003419475792915847606623558896098791125363226575529938550400068416684336138316091115481250820293984109048527053618292799816169270975511572994163075673935085271835836889895458724893196147981833518863139918807232229481427879853685328274025114301606098135603647421964796646199321020625649483647757293256952282047213200116890972653933993380603694504230062487750682446492224147586519766033760463817533175493705601379806108747123626907539455998249710648349001034119138625363208198803869472145258832773235845076611219935695109913883075243123781719906022832208417276772564132427581922988797548829848441960805546952574890573235704370888039678626097266143735904157189383585687465834874375314655207479051472257975980750770000089686874367905624332139797373012245834331794329435374926835268721703709608961228681725547991378681767277247577394325308831546241834158466232331364644755322399966754284327655615859991007941457025502166389210234451510384063841305720152024179148102297731259499501992954640172254028273726787092795613306549592125451126065801588250926363518834541770740751501857468211428119901383711675781389050292929699343215457577647232740545987741583030366401867879955900320854575292314982044674734988643497608592105536422678601440109086258490903314389733101208225807340955370265897324118563826188325002049857845649511901296416020563631970809503665425817274836789074009687276357782107563497311282179902117299814824372790815210226152773532899250915234487898485381894305344942479403633323495092415687878515780374700312010883055939603222638074046590407620867657181907806583297569780453186480806223845199448323561296740117097082149650399956424906377396169385581990722549126919904746862482415175894531488310989820850508954000863404581558198034350985758208186465689020673442137622388147188269210372131279920763625641154508941361594739412976157835543075465401746934821252873031928757866170598126272196688755696867037629948697972096468165853498852195039412816278742125575708806546358254070141105636719353560021183806906059918826988339760311386857307000361071673109889677942612872091991439012758597944910334713443395285673116489771634673586011306350453300652128650367628695000304189282161494336894706348420952294589441643182390813497366638543386835902509314583154816139414712984851998539052645260223021946187525247152670515911551299473136842027031810832410002706513226140141230780634482120352776455987861896710105483148213478446491208663542116987001363271070866108476135299783846174783189451342077089062147730982635311300526458056572953603691468559777777254961406215912222226516447002792002383343955207919196200191411254891417805903428337593682140262862163699475527772264672473231951924164794659857732224041470490991444521288443251928363387360667377657194671944839104422075657931834088912713368204173765927121995601284389226818872216659800017445844850014121133887282044200407664592106298562544681582642691870610220977722915482567759080502394927898617232753475227941608634784630382880383507707460004077872447659672320832238896383876177543867177271651038499368778102708412525772748638657879280527556631685779750208955327437628382557424258697291527689980079488783272678960668721002914082574883100121775124397508192458664807689940972118398578636533216309114551292732402628391838200181534124618337811976147527769552892835237694475252732848735684257316105125461735093187850828142455852880813146347506163287372396895326495441918225242221029466613841515882181034485272282483721373905888343987086743430679331821178769299786064149132513865452360853566001717145095557679699389085234174948551934045608320220737963204990441374637708543372527384964758825095821636982824448482271299003489810339777535592076350809235699359585265085780895370838958953402716047150196566981446321065708966746069472172528365194694006930246494612636703564646648291833977757701467329486601593587515185975929573090656716891945834767452463029376213873059084122196163829454176370316580715586879883490221806110619207911871870624391672178100200566540001010325368649817735032708414764692727571451195003110589937106684373255926224584847506018223552927375599893598918243814109325231893520241454437497223558231920576505179001836562301538566249909456009089485318627908491144966234437425953465498274995914166632574196514486860612281197283531003642616245615874675715351703839707470240055674797530873758942467428777438631050384068808870511720521319813199400003106740329921739283731973718617681752583749142463629330862790451588888897297199212955266483602997205902398252085761708701391992806894707637783991851691036621038307259733426780791260499972925240125783123832525461674516696654718284850571878474237860019804424154067903126879219985289265921254995628124936381267314011605946322181762595204328368016348338487307055822687326888343905224838441871715095796787152053839657629868718895846976478474913602668802635425171353828095167963619129378807101919930197474547492419962593247813385621002306625776828999916084270030292794320885511169959958797685548449944429921294311141153171412669127589388318294674003435368391132292059199249941297871268407910087550266839512426359859453577797107722039081814443154112174916633531420854868607773664899218132634540469048163042865107808360758359599061561217312343825119438716370291397349975652857467443729825504589910135825026473339599963092112710330966807253432022028721927142940499137731855886826882780808962736115796351719442591000939831462162644431362572653376181682031529022573798465557038601980579038429621953044645036512096148747976482425709655036012156744647059663777031584529032759884857555106668719501178616513827427437554000716810132032252016821401231085828647534779182305280709741709250751508008403348314037439679414692425811739211675952754179004391559430569576099449611016170838334575123880859541217734043273317318312665766149170722973475121343401734706522826380201338418838068890818378235216448777039457143305947934999142497139350423719983154838886417041079110517533322073915283602431070349029625907502488288934734595924985572936022937973622118069838439429385721215922943118272356290486406494265432457831639425952823854528625162562888020714914371509482617523807706975580502993632957650559208152644315946556454151080555775399489424969255043324571010006769518058943606043928688623085961999531356952343254441217452208556019163344589167187848813327890034828397555490062316572808224786168861937957466242412564117219353917916468582738285460167859208298863803658304576530619547604575054503432780051884675090311984029680886146874121249433860171349041981965110828228181444505900918676776300459397133368353140562324429430408558818768529388290684460741150047532938570820576910783712858745941075737412448855740111357440907706595172314008057881681102058248259701840002668644657380093736883171481595223803567988922819280712894058865367185364560823746031775931552408726242254494887890218971301508601831507857386128403301477443442374327596855591165254901345596947160786268232311260613875248961434994235365612719963757784475045779228671234664106914273384125492101755568991805643990249912667071173507901388050838735141625150449568795916241147064641605038305228932465960265842536632872462634530638974698862504530118425738031507174049313516489003662321819421078370915329922325122061941818398412304616552490872743077671680326047948953616386097844614270831335096945567833885626608566748370783587203229894598272235808891795608700253429692687366081272676204165090599920507590484063414626794626037485289551329116158977917835331648310859675474143793329610886177013145007756875307651538092603488466049950921366673875299857760770702460727194638134527457353552960564680037874192889018556788533692245240278355664405615840983528522572656362764810849831245878501068596779567186354983455451615569653842460576839036896648800063901674094955100457747963614731355363361210554821926951073869906095229353740350573276964156248444121946078910538923653628463240016351885161845928782396770301246218580680196671775736226336812191630950644140702526417052953228323087962384935993171251361665890705957708187921838540262719174391052439809183064990540059320592752295865444264759063385550211858396119755472203943375328908342746925503203611566175922986257087422148730822787037237248892692944252688208300457151882447596109746227125447242425033206197622782744526056013650417478711051121055624459403129965357069439695544083559117674851029098958159086329489856082711548491126664585509805007979037853891145506670060204482400773685228932054202536832161097362153142387117994577242148506276497102073454049620234257423119993211882686804466524694253827879863109978997451157487664647487806031096397742859013493561780869447219129357309875147104631153998843916310553431375553177970209597898873213946021840099553647261482726833996081926751638144122698824733436848014677056112923428431652494683534178916752083864349973830354673650344395101906064117278654867120298796117613244546442361106807884086970111938440477953699129322502861860689477794106053893463369186224550206700134344225631309145193103923625833247958780127101851400148613295466349967481035263828304260147319190107047164715489334829863543559107940187390198414020328482182952710134187832913049752754413081239679763328735756915324814522441798213662993491994653354166195533883597444769968505982893644791844646942372103620925498692296517168837450159402216182856463437315839969140282753997599185132244700981438156939086687644591037295987228166009582417646644099546700426366904071157047480532180522223848294388273257780474526594128337173805595157423824391262967794077174091195017319937582146129233418880885288331737741157830967390835708737799831764715477847857500341248295367197474131745683909834761112734088911435567388327115133559308024145849187820245969629483149237420910038212495159173579060795185271759603172772715213283075993271776139577936469536788791863844516010817873798117579696262724911655374917153296404274383066738854387281100738096475428669959138034126627847923311609595181169100171828607169443896014507724083751876828370484659696470085314113527400879994637860671485016569667103872533116073402226027970008762392237884057547151365276816143015639681545285446333205680722622807914596541759471896581007812080897377310352389985872957996796906495439406019731023466268192436144783468264829560737503903915630066277493873394146209018695217095293810545711484319379051835253871562506972256439122446115914247110261015402520157202226472387986377668749513070202652814166498963127649078810192690379702318514467316459791865227699430752603826875064649348609246180098758528422070429068698341544170704285952536834063822420785034537691783362715457873089299780666295533752325407159604255206480596244061512484084327248480367780553849374198475005616279704374374595690556822593538745054169068943909994279534462403165129162607346447935853408498933940160424201610049555457584709686089193316855728817288130085694934746910990383131204419234806011295171615079048971820934612666815110332193462763492054948535751536910374920829677482924671173609096172492128420856740871732824085817833853217505869658072448806685863384103580607693601181740943475891723170947035363850732977429585766433613921469564052968982011864075458643401373988040729734160625933548483133826097695505110034554589290972296080699727847232249098425758478126496188418144358420064378648990289151480305684244105679704487536706666513958052188247600649381696378546749830202319374589138847972351945761062749291521472788994122928026946590306560000441052564757578285308466346930107318451061143477262092883599415623610507297510951932618628081234016038792215359773880390093134094003938024250019162514444514653293824239367650248302841806183339640025999523716705924716028811257361252679529310036530367266494039094143811771562638574946855499593001924987484458440126387952118705275373955684035996944115287561952028045935902595359836135317924408640251175975332285491231416045715819856401813877682347042696816875294126348112092096554083167082418838492466271929427785692568116162749218850121460402804653547303385867251472175991117310166686622585034966656512462982771702587397219305938126095303295034272481445285830963990325212577693658551815978971932749682679418016347060326971896076957114652273841781541458667918593999474965107850253572151605740284275612705486105802697662010864617020088736825422612175865541746381303642425744429052046252138235419889749540547439180078643133047945045637642768577614864229344545975932694952982110644213240893954554554218443842622694654803746955414232234204148364979733324778079251061514285076848721750518423878850563171894783711547478165153837542892774948521754760499333130319419688092256742149881020232444322650165016227106654930373240004761684079267573538311092622141463870207195278450129838946721700726647157959413832843374795348277809300039742149283541559335372876637828977066445437649860692974483873334291885232446081965416807457576559804596932676718370074411204457185276163508421214935107896414023527107473623285366522175748104970315836826492542890057270504449213206764896974945153932590265311088917206786500308946987594785846662435614528061021573201348127917216388990888433293442620740457398349730891949967153217009026119420016556398918148395024248564963080012432220985154669515457746895190841029414608970391175332688750609033500663000137564461370946938939866821521578770636030596628560927062144331165553398493903591922024376682926082442225249253813508140668265967923543119741624575565238096360931517791278419292908658270907360601315855963509981526083871131740723855377494152725100278078993876434667360566907903809325711147540830056210325920773566595235672744257693295614826502050430042242052107860159967849793579018401413798818225767484574556266709023024390155065772108384808800356595221026935799127770354753460032849867699095199354751185266711109223839109367355226933940798817213316940907964173443587704701952501910914617306906201459070020530849963927736609395421970784569785039246921153181380103748578313870531307763016131961379766196694956311825586759394172479473796299546712461011417172926637138874877594022625063335304664749199696489654946754656666060263654208979858626580689809785795820546279738335950599245042722826374674225448022264273818058937847379570327764774328755454785262264831496441761014425567688648554378100631053264476550316744095369262738094298567008365796146332993942711122625896710576431347639875232247550600566406203793800988036526773469263296702790897126339184735721034607732834294391342118916505193368801280677214580357155231496174202160155377349709264451473933778557799061043518121649250942740301169529886093724953826636831219758449394315425674072681733206646882509961221307816711585351602358676589876595814483180488416660920659759820361518526955744503557941438308119486878643656125541840562165905912904483795732692590463870864330219693769466222575395981608298720707148206182004063038682143546425758459341123668062999986033607695211090867185387954036157407993645494213926050492289655349628157571464585115308448725566541303314310553333549485665394529003466674596626530827835745152058576437583983971228201536877638692238223787664027944358896140941375290320049439379937079989427511303774331812285048177140866697600954650967977557964311090999635331689975163832654861002605090325152045747847683074711503276457893879757582561919451575884404056128412865023133038324781517092577871850953980230618882228701201958592512051183813108991470723478547129938477976272796124933388111852024359627628651221185166128491241626324589284864852911318400734303645267857563048998257591417931648350996742731848754524528366427520853516687091840297754982959999984578663844526162001904126304373687122891100454107918840741366405811149688995688363631984973561014694606219059216681146814505089791756410724337155679504687819754799996562099603726427356990316361478786086977398381954656765206885195280620197906668122841755045342212000171106775313668217174796383207441424539962099434444735365698815856434588201568670117507203879196385347541314652693296578786167097314922280474504254042340287461117968424789581207654018446194776675099293203626590779429549554554037865100502021972021466988848670699713324369828448051123434927340934759764706917134214482308491827863860499001026611373915239932648982808080916725927243611579983592626870501307830841313496755051105682622840129885664668796998431956846889846512598758789356079561000202311464769502686782996070062914156154571167991149171238701958501794711068548653782466864399721858514425055628406290750392400551804041576972106840707878118518173756311833879183013895611696272801213037485379643276112593743524462125143936355497706724960249141535232906914749603590426164607680221290814419093759113511995798865612240814790845819345195956696266209396547430448734133341390557751764222299340468604515385289886300777793138559951036478320218053239701836716042652414331852134805902284041494809581546923838403349669917694800599777005141295774373207102913366298160132800020731130001841352226408097275204019466393176279797003735854200344318304137616891547068752596226896286904756687423927665139999981364210016370173266817359442419453036236897218152586577870036494685874347366994403363280156198198111045663378060269965374641702821195404021685646270977303323315217817056468300826818411871288541965971417521101332990045126147209153064374235206223911849457712430130136905646118869564843541074262969785539321988793199988111544706347301427999736547291491087233234657219332147303870625181999961669237844079578194721438745218071429866815163509969715719499724925569901347234331620026391749542651408588478649077393703995195479352861190489902346144326590514559750614071897138576469647784725588521208660705840003201892847828141731537804619640530221211432913697306740941066890022608759009079834019818824583692840373409027415351682608992888014387853932680761268699621294903625704108116095729831430640117577472826264901789277141121219639962296218446867597227023810363110047319512159331740616790299196241138826827660246747334574758986927341371416199558061297493644450061678073703606812242504188257495372222423698299267239356213767677609826350225093966938237168986448986055785812912221918559897754282946163740076822991330648872707529690060880745853115651993425787970391894034949793948415567789287417741328881046035592016481173700302635260585370986221110874143865897165457963287670490450006475468315637416956861785351950279892342885353104548846486672452308112118961749472449135457316043725784047458151222479969032939085711026608539834432490673795292283748493759981006275966044326321900894639852280104169726246099377123482015884161909837828216855656525220421995000740962904115788749501256516037127998886705288129887355183132539028180471787821478271191017637290359730480952497474886456107674230923856335316347554874009935118707924286869677617373140129235595889521731864163566488769487299030702306954151369826680035040512219325040479328140321528338069973877724220908967193202834349774153202000728296306273037291870565351002001253808417152288691968799680190141009102515898101223079222210693897518994715500490711806376606851749720182753911907766535367129305211142987372516428370279457138139395465664012772966212831015199353052571336882135249587016769228373319321999985356115850311152322238698923208651088750495491758372056586470284520958845413806543469729515030925857630834978281767795358640812787797965427421065590150190850895201961378096803235236732470755361101651871311746544060665398339892420447499455828254709878146632558395550339557058406005354651778640920018721568488036009651273431331163463036226033574490232802087051775030582200436142527697273064876582166816172979633925256453942929506372895088123626015013895287765924959224366689968617358333059161927162923310715590081603979356018476287844650815600047709633302840789881590776666632669471368611247419156399504232564123903811007887731669280870391157067832722607255729455223019505640360352370589821222573695201263530154116583765977113928359023631882514439084943066881357344401316089540665997749649378836989915794078219334557290061428859354188148598387461078517122135515325168558121394058886579869278874498948159188256243145147979432808972609047967785949697703303740852677826268612290018697937447160217353068137471521028210028231869468875202938119719687566041230055895733497546841383976804482908772819196882952752540923418595881145154220586321965870255748518271369708399769513956782491054723920481019298229047916975973271073574884215059087523121379569976831567663714507423394279776821864119761345743684744076397008767883865240001637045908246992781773441306151207790697101529354129086080876849175592535453112529704991096485180506953210843694102938914464430111839610304272772444415665643635867903745786999993305904750520458974520398849206182672643537775422505929650196155168423428020230849136654193272554150357281933816709398732054228761413647820748364341652385376823249884459221380861553720800063021093709591090974894001775463829600090921865515478911806789010801003512664257451424706786088530981786352328632662951339266164511964585863043991608201025756308509296253849311217895150534050845453536684194523595571648483953670067476804008513898593721165382915525670127598202404940271468058746233511054857285480594724413609831852019590755649358176294917497130216034548201407436154194906350780980031879717779618066886259366368922776669585983804852773438578313520408208055371307884634257802139968930295762766346078602935604685289020913531851380773474910645950375462304533464506063664035133450771858273689629605761279121631800156825690073577751957429470700873423431752621744440931562187311381772407622677299269492639661863298770340596834489924250488808656652551263733854710350550160372759897252742281847931566992997898045623192870901978601183793220334185937804941322719551434413079115053046997770115491981037863565395290415410438803372744128364727147818512792721433935692906629080158026899189574253520025125934235720057767955423326193633446013266147607122109397296398770850595694494771732101634217716300976183229627708238821872293972413990819973798437045599166203060316638437210110854188534354233822000112561215933472552590136830608108103386394652231428215894371249298724982725402641481986307059049398431962964634217685898991183331964302471483042582625312341712703715402501606318033342696342027724669606088812008516248581230295749503443591240729215753110486992620945343975147193195119335495719836328627857820738818140305085311863349675981216553308869308253412026133783352768297555431735674651764820784462683903258754233284010353297786556594904227877697812907203860999101363130279691940896770305006536903253208455123930767127793153627993056440892412160686012244052571183082018160558781883035392149946519927850548209175415909950680124684259844827729044053249833407331130516995700909408156924379868241973112692155545958486500687102094760726524209419154014782305170668834546727855680512648088936123199212096856385321826717774332051217124895521350878594837067933587841887472033778984785640329765705197848994031350081021579128138162475365357636881183409271510117147968529778457215327248861251598964189485531845687222239264357424354044338085976802786901313132511405468606902829599134610550869895501805971097684932774959997454014498339775175145025583160743453914305270811274875559273996063936796609094413320554155643534328810821659766917327101109244751452211571951337569899379994727597159862824930691473068314346815356692761067657236862249513418176619482727496176614552818578610298068625530610635811477839400433248634026466860027056703257042259451697179972305485040862977719449726397513609544806356260930149527858396690045590563636508939628599333908166137294694039081212177416611655877255270388709325302478871453493101591797245546300148534958912182726075617365256259786998898157961666899924256112314383549412122205305370890992333445307174542912983076520590872402014754812786982087712566944965269168673761014928861015721572655073763927123931769895706507254118979118736917750846201347466648708254069981294976841905994493113008560086076139056007653433099056124943801311701024400918634576914641851199905018076278948753508945976240174081657951514882201009226414796845946889356356571714033279170152086154305180051100410627247298644195640471687450813617539897165785197886258015615243873976412023013906460100507911436933888503293684436071517648641386389253699875419829241620184829606635394122986397932343800788569953796219643333928305071519564196858721773968040262490464560323909173620274982520468314542159411557281589347542599204583680305721683601180050016585373886798693009587632226754739779817122290610261116059466830549670254646553925006726315277108395948896616949433922085982037389144842765916342399385453089947566437232004859079389965664608923034993725431801723378982549952934646900606348214241585000277994649295600233177800749146072407122776670390666460615930036680083735193591880268076400626001575490778575732981644449713447337193421101343773374060016730047136988238416788280567746433832811273155994124953395823647606132653157540059883864141628755383321330421066166718158113260748200428912441524607998942298080151602306980869944272541319470519620128220171352246757300494174533625048377949759004742477618222221870936949587656207551368820269948591243260148119468651496482681027904325875546175478214236951662450029952083344891408856949380662474450653562047716037534416963292027697951024949738441256022910295373474506892228234834116019650018435954618763535993258463275173829130970885233763709711885120021497086674175153125402246474242559614681796172108614370778689201676926451901450513745582270480765434688993354807549622534488846372157699455073669823168270417213233798138627362414154869214698308854377577583805015251097510862346381133064294814518367180597713524305392288139203975223219727609141521754469043022117416172048512080886933499917029967205489067828321599584248903869026900389977581309512015384685628362912578504926922424718150607226097100798086775791367054025831845235228762200614923198500264939283535877244466504503540862666180751995375593233772157172811410561446813477937092019345949874409122946512424831259617231681878681376972286050771904674915960336456845811263843044229708507802550916785368526438768671128765543440207707644357294053724569320070532203572111969512580801587267187701260794579281659909567885968316369378652411262661661655243314324111815765819355936559337763367180219997709688375759430691768018697436073553122795412400338564473590106399235875801328562619121612167832028077672386252993962901853982033865069489175542895329820635693441448347362398731945826901675449112961496089216480575276832436685434195922376575137356618874495396508349074038116410460579001559909618801175173314389288493861255812272902037456383583091288761879834138770826991555231108461439330904717470154342810322101216990706104124484950520819365625298278808202376416038138249834404774773268656423945861583804772602165860978385501273942741351558705301157719818482982155079187824414902364869909463842116331985004783181225380231760335114362917244003761604218180156825796751092203416350451943873993572488862141240097750461325810763703043824430109474008087267634476652870914335952334161782734080579544391091484964026406213259254796903659071044113984944618050665777395785763759947069579226384641981077123975175608538053218504172592989162342519970850920292084659653875591425909220405453321682241923731349855105726143681981967998935181642604744957879130061722237981324949967224823960389065514465995995350190319367119050576502162494224108572075617673979016104868769245945465470702534303442533259309871793555440317237660365404984197209412279134674075077588828039847942265726702295126398052500588265667750701109326856396295481351743890063560112924945101522898255707747057542224295451932772896176135470669269507458974979886096763868908893439419509407141752011846689647832260476070025916446218170606139749333610064611236689177461392654160191472848311724933018658179150656872642053409293610687623674244699187954426084587256860446361805468812375052143378529346123586269321143210628705032134430802228678855104477252264167097801245784199349220785268500871862482890336794861582035083367635623962560476196997272192456624458230119942121069241145860471472945716067187100131067483084318672920738009754554215956687785817060951266160632756553102288252012471753002143774887797994869404674268831443571758630988506832363439210613999164809748225513250493951120398583368036175107975517435811897316067186535576282777046317578455481268720041037217371597771104673225801487608209269727160847996943730541156328313760155414562559277444902313900444310113983811057686116071417618169963217803821864728795166594515129071345716226518374676889689383597756823948919597726769647281944029944813135242869140295057112955410488504106377353040606950105824973237850843210762904922898757088224197926223998460678424999082349702436053370922739898697355464301897537398163123733974021368300599527959890598561547144644257702811096730055515886010645454330952365958870716983169335156770235055904389121475958276129901812686223611693265155405931664539780992912304004758046151888002585840118870446785841198751593900974605893603507354263828940904456271721224527267282031623282622534383148485470531189362919342927366255188447984147270442757976642393501501144753956794532773227290111747930519409853077685038036658982808188554903322041841419685253522203318912891961788235608829045630453891889370473346148554787720195651270430474065562610867172705181118964005221480387896250164726420788461412296669286070336375316385035911599011974635974399603374254541681496874118875293431237647915247497415136217096397705092077653372776741749225208037583643976921931294793668648325813737266836371434529351699568219061954166211267811450183907490767364584372638653182364497328588683212587980355060237455295262152677049914868202125035026419266316206476000756890257527047306835167724007765074337205666756847692282499111551784905495272452094713113613696367992198843052846736800911775787903384371195906337091243845607248949521527887929719252250076092466801411584975520517361950067270870533454210353415773092794661795634411432173107409862899060966913257770592664127873888907607704143122922043822224702261974981614190104788218602122842804240430319705494414135475818485165855425009822664169074569363710656554694853758515411590409947189983175191096176378542294639745779555233087807197741003995822343950525067347624921910341077419297465523344311342125078712034266183479437733832896944832090958670117336388515764992087629146287695626410068109101947339780431714557040864750989459550029505642986747003966346361069251208940919149885040579494177261842581014206299085349493072283907568806291041360209613303384506056418800738403178337151569790841514929034536709298081392146020184483551741784404705712315668256211675360935977073349668984918178906675535879121657457562269960543257536680077136164875489679052800778648669835298168162287735397919579655855316632008370549871442037122242760726468608107402496069073006232248633043712183121760601967032876016316948232799621740437305158778467235637850618990645603561446797375909945406052956481321314093406636629258496115636611508328642707506981353065357678778865529254625299196499569468630847603347251342384711939498528117641993802535056710999458327786805649026160153576955785706031859541102572767612195787314272521111964672502955558514449852207489821471803497593285866960036299629317354298738907490801869051930763970086870168233566256273625792283254713063781938803046583326636444208602349965777909389876226249838149891930827568001892285224387329902279867928934155609984746262986723681120934184950033738383345948700089337208727090126365964571942713280907873582381269270507039855108868175809846099403849267992020635702240888357933046622308622611519324688491158058525492494945353328920235563069589502732833793295717284101276891080096944853057058956961202380760757772324349103130859560721077601495157406170096275700095704488334826823818883093242055632386321865365953935774952494668882480468518617413802596404086972518532540047219264775410694238127719555605981354465354094342461136337190307101218389407024696441165659285732156797033455273210418880960267404901375841236563607525944120908144585516096043682507520488891192659381155308555024683366081472160481005914380956467464478861089125625055886765317128963856671375706710791142098946171578729053592201833832919732844865090575163840456433428990734956472004844523414020091125190148036280296727318144863548194491965315792788146583151427672424892528399770857425580086326018919803629191870309262811671782012627988693867444118511703010359719351286497536236431927403823118182831454760679111818252498240180098905303745480371717777998409967184800341576717830372220773081447210131668942185395977455042054508889218206003710225100939593817955238836233495554647178535268591712745356921439686861979440237203757997598943077604449918385029602832711410983394517377094701528437697373295102075049830561021073920812928052891315004714161980124079832452327830487910184753421968831512203412731473328624978332475894246647899091650325378010319492875132468758723010498083232823429544914906074548705639352211713406055309008701932676607714668469209221907444487092886799896588321834800159351464783191261778294769773557517022695195983626655829041602806626919415784200495856190567890619210057968417255683405200920353496429690800420044854024710729796294741133656191883024927225580779430290137006941316975256355286944827160589848803939582953499130179231409996970179197694620751082248789274193854386339009099585335782042280476839152652900773246673481474122878631811874387526539098753896529727384544829813342759067626583771953225853960409761765429663578699651505555957796284513531125669853868132672754609699357309491687522754823986668493958520974312468278777668773336845280474902980281670324420977430768824368965342989802735698000673878750643641454156790723813041344067288328281366352506616991594801948091505702510613734548345191438111208664474406736643167464249539077275481802451780024389940925807999461306443475756227728637475570986497306039045592517841339315630584587756428706323708091024429336630333035246294707352111985108225481533426233997254654809503667769015639223231763590751278580951256396095556796991621567639961579376799677163652722830998057338004165063671696298574667307805849137841231751898607085343108352202206392669474390082662274462273563869247300370140050785606662215968400057329615947788668624560257795808018758073855192996392397934754964996988411359355544034562212878275762215351156206703498910796779180062980846508374096725904985858276396724574445803709689868572900749340029371698518756670453801958894395344106993087436192054386471041093926607318230167537731745990204341343462691308022533034096562992807800603457171682547503625063774935129603204321759942523401782402516996614706397745106496336867270754710566063531121012151817505677987999156163565396367453583154108692423983699011459382718570807197270626556896085228256385229432756299707545168984092738544827958040112508417821277261012279835146797395843712659405557052849193858809440465780582190936473931795690542795269737523733891768128244949998952105041861108302584660228244712829795263133811865644453912262948794233251867987415825115446156126412396588616553479805049416964272294341555424705235325788838965972915886292691236785854378075700470985252532178085535056136192018119257878299417712300744721851130015890688230804439189483761708020640870514636902707739064232625908146594356821737223884647232099854848326789759714566981988688117364577433567177001403700884141175768666742785175592761833945185844521656088769445545072568061145985516932272715556659829760406341314519421685885618937601229882834639391631311154426806090636636066428691106758467021770573553361731493387870692066428159160869267580733016366507274409735238743408316306626227171364468137561643001740126667606537034888308309023066231491253097406606314051269793562551525631222283120937473296537506920665966324328552235822593022855602552667726224045869621532647103571122794324099336402875229945176423625108616244694610958547352195206957285996282425829195347140052186326031050958506111439465939366983001382782832086151857639592633690241698096770567782392369452619284397118507348115180410254114590556513121056628976404988599457777739188085493093643914705015948909146049144708890858378440252243628211224903505396733960979730169893893906035991303650046667979688963733265653142886997885967581674924150358916093686399774888008163942599924974905474479437093013638527241333809449420237043600040655130964193163327853484087809722674560154561041784630899260923451740258430835751444688716465224309726381060083669829268193994001225769341988345328505474542133360087695106089883500014388548107828393303305224562985301005174450318775414446495414074516287251528130631906940667924516548570925296121080913635125628784067766717146146416099650702050724441398939670975744628561320941426259049499885355988893214983922402725821133708599412531111819446460624548859726383103149818628171633907675690004713959515195679972792151702506930642050111285949451266049882717660362404949863176831280999994301927850358630527103407299041433638981455514498987215267813425810347997925888024114010441958315880776218052614514695398303306827990172080359685453824362738535843261692434254428849191790986207010709301419102994829603607257275003272185670796189508804455177440787773341243222714850987906111856758126462950942710807491921282658968322954069462154140461207512764745734128213388271794282747375279213689550086305502489365856295363069953712597205995528052875562435892073127052429398550974803190001390790105868341003930710750943094880112878731558336387920799615483137969735298030223143715497565263033445769450127922669600697771795338557476065375025538575064364043591218339853353355989341155008206899902333857043222403063754405492867400130765643563311760369903159043969321511752134295698579825346428919545143493801209550743318304127316969818927618533703155540063858758178181584120970777705389946432561608835814589619175190074179952790485589498816965421487605361644697020521687440291581835407651202203660778960360262216890695994875847360968206171000692859450850674909907776826771845559562570732812425802484521664732287726229603403941527909727423928882112918349599688340365548643681782915657587311813363855724369941890151680629800893237434474046806530119440687155538924974208218332743219049273057687783397891887489060547235146138529915085708625230130490486770582323251374418219984788753635691820074012647102983792145502960161157910133114065367859909039618778235096231408175175026081622331935345606655973473740922692089938849861910879962467293114674522599507649169952553559899014084886992485775885195325869609297441649923301516926178452066453910340736530285201803923044897249912762874500599088998499811288639434409499577582951610161855725252372851483419295941732910615416932690079471149693318658302712667197991134445031659093189646523979919682113012321690717311514033505421847296025568321538656883303017835123740794933402580750334453399706615659774595577248901356761003131877656847686929129742671650820658449177650420623846596913743226737185422505076431776907898236652303982734152647347284483299754473928295991648464305844949396227099628679385564189087215157427906099326465428118178366618456458712347197290170288788476148870648741256354265001534960068211114117218898611788951628837786297595635006022111153396801030101233720191464491484405217006407082512817383701555250114476217997578534731204733212394555965851878797452925644333771429567103203535457769348545898845016585744458742715191984424810779731963210173819887095105890459262535663718992255127558881412090513963613033132191097296645347846004988988876845288354042273394104495059469584279378612005224891453756764912759824430184890855118543424594925798570715622716154795929493724973324058365471661825498763689619704645300261278375799341925219752348257339774502672938671977027940122712648020074533422536150650722243268288198987025907639928541203386762663157172038493325359487475396774249746285254831205548025497205074646377510046493828605779355730138895351158931387197620040079721655912978996973809583632267742963093539669704541183052027620191898091014116884471002979490552844812081894947945939815871152010926418443123053139225682773564185067914553756487765808524670625441338425856610504433166377884913050473243214633160664093051292998309406295070854913506793509130036397570446241385955180025562347645481572493734946906422412686019574141489530993469059894239624849150049837462304854772922882290916319806073816945810476490767394239307377848428244618915867137424435558977313958001386900587337856145249793969761278326810324903345865570542795467425887178185712550326353010319331467889361899176065170450541630853629502788471738494717191730207453369827380288654424269854250184246541607562639473567354379624280133843629808783837936646961821588653581036195513593550226637414073756456232159633775096438723271146950893368668592547839502340979543021343877701484554942906605989233932092460614865909553278347013578175442006454862348055869476374611771179432151968768132660127396718731742532309196041523104173966436234071721437292402730998782664225561134623715978268319506931964657886641194515696273014234121424948038257496451108803735891276391806893449929535541434885072349913673198842002491967996657129558473261778031559958580294757848095857836980134960475973318402066381881919844527464800303752225268578740927263104500792679813730231332003036453540789140711023145765065973333199389151516815252553797415655441008484222605426471776906043955382721312784687928159884608606421087450672488100297566998869574031213600455878392970268949941158163518606007857565320267400543650882851570116879560206080141597578057564144524931568755777630948575865515598657497284921646116240997435635243974260685929254609615077790981806299266898834737606713252237417346403986549595685624505253111666800840712975225618346703707587184771537896641176870450800518065165842749803039268399259872869278537097019720690943454740576425624344920708397745834229977070651980255458099714783927042563642811444561584066202108982798670840724299894821672461751685146239040266999634082636161057962735385512801129962799585368560155716947517354078753085866986983570272867043666533296738322280506721071392442691062807816597441504003267475892115124963777072381822802737266356203390785453258757935362842652605443812887616423680621654619057909067533876782228904248105128130294457161809339691461826697431114846595949754905973652746540032755496352879422965566455457639500331656772789122480071157307351288630671135282681260333537491219786003250644633555500843803617172817148771423426852225913855729100439219327987903376085778429525917300639797184262752740363914888871170789446284930672763460727619277807650988150809513104073983985571454687913426415599370787354494340441396613249751915700966935000212066352367558729653348592095336416389537613495952193361010386296630452159483840858078446304261621086527312461337482660788395905778539145909540146518945689419120689845253537157458598494362588809333456249373894099605918115003079296942369426681642573259420806328989908010872723298539510386193707036704297146835976486684216886249332929096504775167083565860682794533685326198162254598064831922837320375026729661201413581323813398168550403798400497814044712194934051446560275304326961863821071652960406360717892152671767878829791902357128404242604467658381306747927866589346259405094421545837314313136145985940641787870437407517955369211947415132522595744089820949699431495435635180299951971635630593755882509114492769720023337388226079742521704575424864529830423972510456073926765127781099832107370062105483149511950962589752578011350893208386800338196969453479389967715653699561449877430635674135399231810830234898324357191338992539266597894507472362320940679774584457120374142553859848912911895702574983843282639164724409539772973330106011598661275423343604209539822152845771077019357868827651135020055200386999707310631974442630637784190958852055573276101356247849208179496734238474181860454277536143227234062380663501995611707945282705484529200231684195806319828025583623246785631592104672065721857471564300644217729489372494143099488702609360785720920485389124228683173567134337910469588871100546861434072369959965536626506916083692131414130938785858827046715530136948652343422531888183154256413685879906130318400081612019819945257109856545835614188217994875017358870413066496105654589968026695636949433834782499430554421572315518431665439904425242264684851289725202948467176502583211855547062672141119192851915059601277161008969224376979581299392806477328478613732258143551948003675061632633945388367039742112431674900286149287481514920961407121953872026728348378147685306912153691590282638444712575159132154441071857204988054127183504880215690316755784553855094620754076364223210867334696934449379655862612536374018378616748541953585939768313249074659784356358886460290414008682722473506573539581355128461385913274873389920138598885972517723347224909268462141267966531927846259570398990894067976191612129969529654468831678105775678349348661380939682899053127253024998284349171025153863335024404253955576528908987342988473772311936813971165537368073773646534236534270398252995046057789032488652824991186973922515384465432361445854989011030980575678980796199612562912240661416467037494551088095289828044139441415581080397977616216036921790937531575575448819008236241545141418516688456168595406960741038944109246070167937904886577086191405716606708946566257971826739286122765319532890770302793735812077457597075572434945620885726574861367657644133621214935338063242018625305339958067194891437742918463391969836639295354450933915532662306941698472151468881626823068738821835466955888203670450522940782337446609412627571890715193159743519148885802168141989909558211052845144087862657527638681263647303620661837718339772656656879464571599990367884113875194098864139653515280354082942615450263634269218756564073018126396232721682760207343910953464957507769088802359786433812367422795822720945623937371448986691254868850042444072845520497055149362009713615418371018449799036166292545155189653084682197543587810214527564707305186974628515936937034133184543983934611710016157045907750314063738509604940164127396458558642091269009807556859066309711149418865148568892730340613727108093174841336729927862793756816281928349347335789892503703330000157959047395556985514197908634378087116286118868461358201822790441104615965356858840267958693549604548754065050022195559340529609595318564174252378604762846752127354166315643228958981859187837644743886654507173181016213509031957008662060706757788902824927744320813661055701243366772430771086789725493658804856052526329951325809430498090259132129876578088366106333757914574546471061505662925179798656385665513499257817680782521389425547762907595243145625130897367584091806767640496287065640098504577599025176691098886006790851055691724385685759732514181093465408979102121328160521556942128963840954624622895548969149978398281709112752832172444135988389517890122769641596202832960064376586877431375507768906229424657050651684008272788883137197209758386573549790792314463882037000468681479327412919321753184276234552211063116631374714595475326127990361267698312809953789991211480311100522448752449208251675159297224375985484845206129832675685514415700079911290425241146980747769626423154930193030239896003694600154925808415886532677752409194590840995829293329592106366025992390562504755472877419635415078466436888004473029203065462687481638411202917567417515516555763981053603425604866086844111737968676419550045208750495971929669305601643503926354549935167818160889105668843546982439466730117680400183872973662981512361232596770275226603651670959857891094102987017024446600352330275872941412185757101067602098027044815999119161218557576828105772388793828231358037941839470378664807589569248231152349714841717156895576905550445516023493890045292652650210932211471966798998773048692151261082163174330168992001030288145981615601255588136077318229142764185119375150881980868900414180918182475694028047571978636104581224034763714886689853454852563336076206052992184457588733800923829157741771212353705655821185483088916133605061743589215963066019243831181025839393980187929410908747159503683321997980922813186324505809799380306705718891894783625397374531584748933793060742741164989594127150501293287065531117517411215604912941049783641910676775362029715419286591410857666453362242069188416768715551401014542054722409016965072480170082171881544763143562586574426697200879566050801552127057518167396906441168426679603444022529645075402651946798578634308216038940782166952366525451734217674578058842046755782114557487054376362009660921312234339409984391785815664262982356496917096180205958976557788256931225654122163616476559310482525720330783020549547773318301064763837559459207866853621346651739272110351328359138363833086291413942116463652913678562957182943701339905140084289904609893273726010253970026236450051377300991054029811989157807212796977454501557887403753038440909795221248998621123647702559772263993435274230263322974401279689025505473427846570566063943953544476550369830036901213277199079914590077229946214772726106195646667007351280490300810793994814024753607678895399715124243460028650364683814105254001085313913215762098314314536558286724859185763192793291846265882538571877680284852763548745883110537738155386223358278735951338201121371933238547871533482917329577004269643616149501653645840241619423561587337358567332832131599847001078164472441053144053349609260711407541526730891074450344203700629880846723086840168163515925940880236586692029840032017751963635047873515086288310405936132468810591234563516250012899362318979297771096875310589660855323462874121841539240899083849201187495037572044395638851124777315814036613477220096736696715873387295985779459712956052969207782274794080104021057061084605004419745350344925768829845450602943477826003264717134096161483414562783370877920395273009915290405277437030651428954265945124356583295869819586227010459204698871973517711287394030175307674041232785256181395088728070297276037266663590822204719691395531292683223527221022660933473451670346968376527987566705864992226099020882042170924867086106188424477013914012745252144607506450901843277585840966715627476389827580094855156794606798307871631276368071744088565113007551013984472027576060507721827251659514758771255108065126116326309860951284654848220358447926574497076255441814997322470259399615423169653396319757930113856202819106170144450575691387066124640271621723576774785980387113299785610585630659574757612771808480421365065283687246712708212188332042783489000012677128401280966871109265315847245851717182632855624584062431623287758347154794992618858032610511071210633732447272486179785152742786044325336480326317050499289651269736498892266336787901771765630664690907643791929386814196782898057125796883169199620494573751251180364157732121131033224792475352920777540946152763577705290627649110279818554807908650335813351686675122448395126549959102484992461971893168554726843417374621142455804106040223479465939590667762174299206350831621908866357984073163797760721001757998278034567619896225867322234635074355639381065350318993929291755023219114547387882141334231706585828993744685726378573586211990170171428961061392918290681424293635425765561876653216312312481481236092825635915588154565622890609515499910211968013379141030283947176011432678648855161683209917063459434602319169349336782907442724747373612128526098628166996542093052136668044280969733865862139197910335515496899258198535810826077067309578215199755728293110190686675024884988496200773424564749328265031405657612558159597915360116312715025709212820395706665451244350975872022241107918342005930874872585357193964930506080460503125032567639152590130972698140842747256525544148462639249377504888194898923941323952093559128712264732852416635504426272480185042889487654617774964859275633328668091322407199491316782479525551085598042088217733997744733793355709592337365912448354955868548006841788445844154825300430019189427678371356275154617144416704091037792390702559506220185625270497496419788884056559814309574110437314332027659659967202499367566639228017412348931195393312624564201107619830244576191359030997176271192702264011555700471828875576134072816400280802443889275178465831611022554715457890469879457085618314218899124769510228296144928813841791151307483579713114010151002335743086935727905727927541106736481732772468645733643044993392732734135673107648797150222955080809235020993411828020403985443172222640257770477540668650460278023145604574402300276540596384173103313230606387919308751909101469603060334371299855270576002026976333619437514162096368973229505598796809567764478042452712354202527097044505923822255620830293047540744114024841179114431389087769208202182278144186248042299376042289686323061526022361959855400273079146816035665949882067512960842114921872391506471348832356579852981347339457279315904129917753234894844071841077488832748992016888115092449594211465761999579239468001965249146952404617082990712414916215309884091876712241725646626997438664725522094955021789449942970192746561239142383381913888764479640808448500446796364608717827082528007645105143083614438659558968867404116484535757632109045121320639138055173944743221855628496804572847483904379207985808873089360699075093742261615009701783172004313019148875237157774246407943997746532354516370950823397341451348399069137768872851972561068248309850418304472273269204515116859664930628150597577966895364563555064485964523883564547125752816164580400872106428597297245247291231340815163974227199811127749884532979321899639531041096440136506293273794300067911477350675047548561245447316971809496473060684918730129060725696263339226047154837364865676941633688013376868918411156746953276121221212682053076093757958872922497752136953421293062907312415593845980255629146494358700047877707749000904561236843476774565765770601612332205850957767117586116619060737794158549165616589752181509742166235018983331294137687076244710449786885786019018984165182354501522448722938900125834238493518141314611692686828353053762369603617781537293521062592535063741393438561034553484023520665038806237899173734723869537081774294599837772709098434387246365204060379735799147517434354517071121091656910294211228254436002415491701535922531123823280232414477842475986034319161800737374721835349081731654473493598261229042867266103709763966235813344378041610308684659150926677291256136693189265698083050122417045035124542104392888685307876794471282872923032089476287748729252603602141365625538210157324496703410680393441346319348827553294196766265405548553238427199289127241351677078969319616733351714637503583305943527138770117003257714614573630781537650095141573226848122838428537804590978995199566167136224716289591926208491228782948754997250755611334159541398664430047203786666929508182328616925347992849269390176817842583429215121248744824413292305986550051814078431507210090900747463021356605542022120307034522606017823121081166812039276633786014575792284284854296401288066674183720232057946872401354661968600342883596330068948064173542309812107247707214484664942901889983712887228651366864021509669904979762260551476710725216434262123976336482276983525733432815674206646659249173595224200556505565261723211931914193021585482459983463597396296464833871886256528067264504668491958336850285883057644283058231258647620483729551705613789813438258213915884828623229953022499558850597493430240226081182396642247964999108589659854247009064422613726796333886505849972160045460512762522597662825163411754986111364378864953393744754243868508151891297858608188265836631937257587305298954276219216102477214460458150242847770637705839922107047003620570551857458948442489032355651376649323066592234628420568782606272750101765831140329680817279649467459141095959595592508980228162764328867766544689682618304552063122824199123354172837309894399436695700330970885316382670503451366670149888820697927322726471707799337818701106828001485960698872712930633555631072750113092603841921602186910819349346292807579492371302245865700225281138439917088397160571503236181056236484961024122628044660961642760159912267917618113975071639440594637719137778880280314166829925739252276568669902243150311376616309242456750177211502644268865244112136103720412718945109407997459030559473118235007350728637366406309507414727163763396602905210658852806393893131335548005973247924222444516691961486370442201223097751337169010461722800404853038913660731797420651671085811732272235207027128320239286784620745668484358117161806332836149849460622159040557996066937899132135628540181081687010793937508047664972552050330922040236670777483385360083995065961829644128894378808912301356234172501567206042699665569918484098970914600429692779608661204425184654026911920201369389104394735338427541335855986149782976011749924346894821018025310178205689624222523415588229508148117260378751627271843085668546967325592788115027722992313667346515586094105650006009118325937828108733572438598656292498800718467310351843736224185155357306733207390507857460118446416476353023565347797830459615498915270896841413555920108771804177363743497840472851988110555913015754601989020229678130248302332284125528779431425209539605184078432204199255224367903384829072249413650916430737782018349369544149274162380469082953562575586117463610926388506782161652756674334691496965543925259547536335458185173087243990294841504833079657269354074637577251424545843545272726303711453511757589100956034994566381335650031153858503101114561455643533330273960560117999029341582708341279299665232270733802909551861421962350664689716797838761880028425677836173829132530684571361641481780445201405074003102351161305538668244760566844185678736559451077021468278422344864372408329756991853570945710136467040890191307536135368882700217398505272610925889313748583199799353095530122271476459393021393549289564990844950132547435109247462031090498172324300939593635759200772477574503226531233469274150169708740413120550456144250672776772742690237470523023247426782643229956829942085029289521164401899430671487850748885781852154696101271518005608590505948449565538787736017626730124728763397180768760097174274711642647317460601086698433385626781099375079383100491211760421326824813823474574560311641413925896325395779183588077375244267662370077993820539386232338611042475886829643340220513091506460676395044956373016230084694771549947289747913521602324435454500391581328489674681070729755697479401039139513673530485326646329084427517864853742303422904623016145328612925728234959711060241986823003891218684189926228734845505764506569978428126422371700919791484302886388380735550042974906008431547194011507558136295612093901929397392412305880433554780452208127136022417487339593832780704348819697087440354293790841619191964790841858665353014594152444791458665739501729853825436602975596858091408659635159590080419645060772084958927293515698383719647854131630596684464549153727705217950799741652296258562924832724602240242620566794088928957937866379642911692483728069868208479635243482996032851420895101695180947891858857252936411935395427265066272186978198892599286509456312396898097952167236072509664592774594451258809397609714794199215684720203796702452041999131494895166034155806099120198636008950224795403177132562095308748595236741032126157202357903451682987717887471616649640730279392879292081305194039397741654067794543303073411241438096615595928855776078774889205895264010796354282585863849844558760189122348567807237027361919701157070400700710043552566926215820328196098489358120076066510618950868535402645731626762785238446779263620937550333913540115545788044493918802224230995945838316085635240079520084505189111171404329247840127711865659450855106091748772313310561334307551120301617396146626421761353211873159299411338154353746774065721566726840703272129204095992294340497608730808426971119114930795944079721282842249641069972103434456689681609929064227759783177488692083949071032773084659342014255810861398835855858156300434594123059727381103566811742794098302823374472948583432906037765755883478580869545977873721808101785701681714716213660330531818074802331796484933508693354268582348352732704267649939885935601135590841063230968333611780979632984632575041872344160706319473544239135603533763539155966882605900496405773005452794062151988254188944252889192846517814443756109311232913141975628058078028880553768379336642380027654444337998584903707824258140321721707178655036533836976033300417726470857578546966479160500312127355031402816380359361578176319924576831836867684137998960668967435648558084373230780695685697381750575940668907173814742250526492567587689552268121276460828943389424774932651245545142911691022766366727320263102995179315010780062363905135647359853908761486858799941184093011323795369928062991690300827915165898461718574044421735986620801859791224937537136000840148225424169632616201507335001534529605086390891226687996848627110253283659221199523551494095352081388830397672542099875184823000803661737232276468389167994166620781927278705375171239739573974791501809283126393348496760522656139308358066161476581738112226312820315631699621058118679828606384855631424022435543314939696968720513692593533372843503314443851894256680368174854862184278237583719466767535758695171105340956646130946795166818784893847202972441201049225019410619294005985525814833651364735516702220117531661726955935805405928880036370657049952208406669710196629189578257411596337403616356322673486768115220091374474506662147053734669130890258287504401898067484355820719827130359928927222911383618163828311270164204989803937848789102999535837338776238079801333916049847568557607801392352151015975190885109680146518149155714740443838468836840109122446577197790610908198274670370473428319844413306832472244028512141771081044811506196837319895959915297030184552014050264804955204392639690732890621627331994935093881781832591158571276890544815142606706679983946355633691852594967608260053770653495061496966737298038904307856266474803903835255768433761293835562062156347049265957788455107006839674237165642487360171188090890784986908699117966914031215577964080770977896633905610859973872446697049079427570358967627084138877381853770232171211059006166944939039555305448393165263226722082090764367876941552944879948487791711542039491558519255686158058467327491488481572956398781910140688589076836666436722310038463718754135598167158550918769578285771200549206317679117813071994754174277733310327763325800328940938719595662612572661710674759238654424966465361308846772465403972834751007558642042860440087866257250217763743110117843421498753117650777452681878312010493562442550006262609924894289531742379591287979574283483048217859888219210498089318071109252506353466235513082538678447745407818142536045974795196747307677201416615495085802999481599741912061603108353328119626568066211224578463889053440211192938344052475947190663175468536966848856619867251204536655176358727754203023830993821088980845341202933394516063549612359524950928103277968542338039631244566666459390071030166116801500782023011102162789660834059118726674375060063359420646923008841137328740296446522193203643430705701665286789502077692299887111563508890889159618278614623845213315130264232922569083018274213417095883538984366040272644165596504258111383261651068859444872601829288087721957874108227640432811315790080721838742757446166293353419295377221603797545413465531007861674397368924128986521974410256862869737282700047181328355650673831366712631706818773810310984635654323771084678880535292065975298576386062690136138621504145070920767773767569085654441076998902774741664480047859451618153772866836802723963746747933325161429437884831876670867471731387977363921109419207008373050585085820376667213448917354319892331914112456963128881115718497935854870944281707468984793135989143331406853099897023411975984569736782106615283494565477698549526295812444142702029542046358694178884323971795300368103560182518827999730397685651743476167720255642610696790313071342513925792897543133329867585310034042254974193256002602621390739805972562877246963330271608234270756432431219050488503646660705679708080414980045962937916255727982925360582424134661663272986593714760773683391858650150026260483094038816026077204556181065004976639021892235510158256090153069965009035243832614669881379436892179104892379179268371345664771363001598675530567761074057437397159355721682803926449176644805116400601874226976022401647149358490322439521904257984516758084822517414719036280744287195165822266096109522753636584579118705367686534282222793754341805038121484965088481057936281259781120311398832237057510596288445125922174001165304652989741832177495902585710061925849602243901788707788556201964706611626067501326983900966611063216852265828626781585168189088485818393229126018757786411246692399711563771229396704348238400011127702556600540653458350084371662326613794686103717867865180191930220717465669922383948383497177808075104432065543980868524918997434666201160002154958720391444428211987849036344078992386044334003079175017052818286378155442137048013000437571802421868978315513897965664399527095830344372610295635385309793156734013362438220841334077972668676404341713982886312530238504761684333576282072891767334875596772440102404013359458225229728226252198243698025879212963442161536718890692918564330902266219759640787808618748923657326892566114434580511488852260864522194736806188208036398498897070115161192100513685418547938154238373774185538965593423054511764219181512581468354302957735164393953483691753909170599695023232890954702853400614477377176473796369593592728410273875387671194388975330271023526137872521453164704722260253213394911070237870209666768563983511443204055924417482068749725998640147231644507648129959705147991714681350515988232677377755571491960272865405183541632014505220024245021436743430346275588848758616639965031259933781626148831593776053747416962985890938023148847282148824710289967326008147442195254657111533974271336579220879664427021310599764410848388990568813065601116336816065467383544398153324676956891446618540022276714700947587172840208688676110221433192956830857586975082878810767191536397829660090405379470344726984280200686646408051553873171471235586980066123301037330675326946326714056813051384386473906484507176855928395913995072621846645767805401397012509724025100940670708340788128299049609318445351587287852526769465558363579732589039405299201288342248193624446811264014980021696039282337535927294233223506903115730174121591342025378875666956105100345101353403181784671208301434854779213925501327014972549363175243667609971089029901164284400795529519047468959652699889665612932548876387159670440902541377051293795799030006423423852808588561026757975064855735644122540022600302945013667044117162291267176073364272476428523519827226186606154184446944545066239328033198055857470385808385354243476217510379896520080876477361826372907483894746196795985074325201205548305747319344590315565733161157823410545551847992809797062526861728524540331580797983111416455392000182014801948856393819767237613658200662081226005611646293217119484792503410109744451602624059859763501551685673451239235273311163312456554065699993843714708186714953810063804310288134803389988419463597866749679951970336121577493064980595082418137212754324494990509069758505810082175843008915822550942835843122068786218022925173722870722838721789893865074995178014843134804018163990352652714649526694475566341932889618897195732505998439076791590166054378538221715719653202914883479985716128123392459761704703602745033733802693424741963251431344086589105113019588972596690216255072530881138314244618727252371620162934383422725388163824160569656172556951886989795688024177006420297237611501355964617646768239497560379534717916245968626576578029433118709203903746091317592220545557942462999174616236703625370972486538866932780788636722814737054352679770700248473500003795810637885920580846696474091330574087175028432140252339853206006392342182092558425143306385429664063783546691431989010388258614722490694326023021649347694151288373281630799385187331294259024435211354725911390057062095918390052126194623850767261946636717508220667681641034695996683148595320883736607043361222924994555398924508291769787837628232424405462628685926728877269090281222811357494583973068660871251592948219855532264032047659632191591099024596243191911833673772257340880715049878044234274117902634449138142311269477688453153313776821177183241255622347789919697544959366764018755435157310757879585656123729355924610728851542388878631325329728099689482158308804999889847806582463109175496619309026478948402451560656575961505781653474020738318451015909629320779892044836672282127562763954524966054668548163121810637059178572715083134247962365593645203729146254830496640695518257189458481690321048935773019668810866239367751612012073734042046522888129056627324615237375121420737432986278871225665570151802840607998872107336063396693111304615657701909628277690686119342043547244541359382240152332985109127399536859952116634538224513607141404595123753422466886154499618047580838675510474911009116672466854809484929156650870914780742352655175825656472536577461329926807990878211956032355742164419175808260464628810812643911221880950705053626561051237774374083158603196474405121402806169986949280067390855751944332476710707029890677752509329626318851029268665059317332884272959571177157763674853561649339090320378402744465221580628610153071840109401649544137088227670960532083344172449999004535547746708127171219983048360473345581228168525655379288084173689433473236255087277704800013578592993560442284402944402779328391156555933718123515307617755826455177013795155496498657007693235005537528431872889183093878822712878604416221219912567165575020208091539067673495739005467287917521444434539419344428303799705194077976515039115486543448539643249140515615975179542980036033957191143349179603330946655221650242328864519596902215228600970840461392922623146877756221576006148948457867698298104032413813919282169325073008733312123885811490927298031148293796169518671869958121192686034798726392856301542788779426654615373388624967493915957857096569357684007429015153237152516348414200849519851225912401268165070104850456039423224554969986567333654973062282885061800559759873191745036690453741408155133102134280141508985159805853569176195074612758737269829344658666804955938485165407161525973605902867982132041483377077450332534409940721552401523191798710268958414353602829182899866980506750583197493903873300946753540720077054248897457482386561396745564403028620523310494769644024289491658491810168513044972174756611771140568402798588085482884365137399456962656450178463006412429987353736397259979046615629068018781731406984346458272176160264631705564910109340071967364105905087204825359847861726504070785924373037492090092276332658657130166807728426760003749761047413372480279190329658153197925631723379639752644096339555949600671647039714540387225497611727095591058399271148882520155910053272248451007674142782045696322195902958724941017492377468158924429016440611827393244059032654522315873539269366629020400636974075379736367975700022835111241740430840163008956028278949690506913987338824821751063357420810282938541522125896070048781016267805001928065315437875912292252583739812188733470590186598740095479671576636970275934533288511483981819956055537637874881024578752071493892837713644437863571766134817148976938019805477107084963276055231168141429205535589793190412255612799864323490223489741674734572160727461816991610096802114009989301905080218827206376136771537933495809687509757455621374777788639445601496595060261369234056752193045909367542851082654253232014461628327847917339328971789667816547520649380771727327162297219417763753041776501957557697800233021970057653904066398851591764674314382410174267513902288972406729633574084430639228773246887543276713751941199021003238378259317808195880386295295848210630743894086291182241025586450542622401398452631496825447168273537534275481121366983749544681240798070345791624919229166608388984296976440196866159742602056760659023893846989311320432511069802970422297099591042203538493768027501822652415958342227553555830503272436806546933053921896587889508285313037695216786749908686404158090552275501359891245495280301114769208761753685977801079194073565976019479958985222432065372638932482896428350196240406767376965854511815805434665899504118492561846637083280534368378566376001737655484211278362908113207101150657935700523501821983893872375723746106646593530266438641978749254375654085956290690190647428601195969781096152051182000765869127311196476517207030194467237681534584731621898185804549204876891445299229126344398921563144746106876635584950781063214985751209409463497629331597937261658374229450706042148226821705883264068567386205685706940946866208790017724459816791239776285414255042850205321309693166195766480794993619599598806209442707801461697303336801334184891892806183284680054075717247109560152395139203720070787527746737617864566825435299097261428801385229700119527539875678709447561095280009595689241057459713786442464936079540976050963038585958941887226341441861906373246380918093196932703110982823083206876593651886849131309226023294137632082197125023331776933719894529429630710088782881111928652263103924513971734854550337259515696695128714873693000430534384002963004329712406204826618043390310026372922733223993842011841411260294327368082666001686998991480623168266314262338344828623467486540131121350342041084023777319725728529814574056202476497367161306806634872241535768854799500729566411092531235171734629485603308286780299606601010585989976002912866838307878077094584683733690924566222628048163273347876610539286218405228359479250815768374040380031077584099672972828999088650774188753595394992503134277125159740060791358579095383401750947011182285591022432330827865732235996803246712266173529153655658293728563145559272043714680254544861854005334146504945983105447453900042890459050529104246036237070413920659042541693594551512531059845686439329429850548085166357319791448265417679809381898782930809280060063218263722717674837599290364378331653130348115260227760275786466869106443500450928121798977659734044976915798540885399263260845789394814067738634166695822942469696252499012183995649731365601515591641813883985909993254015698492087135986069582785333149854020583109256013083802064847104203943867205106204425644955548768850603898047853412793559485149265841963977262822122115595962282372079288149006904022379845212337372514535629611757300603292244329840855854746032137448618323420544116627276116718785002879018772898267224617938550279783834698425644146749959427592409787586702229436186755627825815530310216258981702793741396142182687953422296769579192555000309367260085166103278177640149877548320175802337386085510333140322789158762508404084338933672136542461174512711028726203485161141010577419470754613002404093725400843467786832896639356736818539202472521548085036795192921682675912059164002952656338865985575200943094802889255233002435964013753101474802976580115273808232289097557557350098792595104321099049150452597276777445851341529066715560918521482604959472008022468210635240481303481365620964347620929967676298726231370528226579265981123060905790374682916200327098764325967726395711408976897356138294055808940315545835315374449361126739409849145531611026361366284250186297751373458620034123104556546016518406775927625488155740198175057969358746421815358887728916074815660451861069914170149262084112124811746154911630086326754595325796063691995346651777800718504584346418899818771376189950816057789835365182018742129387226516965028623065056342350739358915488023218960004219507538298303308443430596335168474523624264278603859252719664302141385725758431104268276580350996230598416341964669898232017691234685545611204659380011241347453089990788881722667030205974175792633157108337397642757713353305947601991769372385266217517654049411511594130266470464352265098702550648088307555735313176751858364427966367600173521066583504460968621212525868550818414898461697957949770354889794457093188440459968132920034766492780552446896377122461637579423010910738330829533280738742484031569213185312026670332625956276161262433531639832569128189957271654602022313612406940352323342280625353528059622846424308757786801339212770979410141277174299150530188573668935570159568577465484574895737554845774250242711215978914748669344386976552586460645759933799843892871526215985265328930207509785694804249182874804682851665743493530353711977882169491557910668976155138906783643369978242166737003877355439423790905474016659730263355610961131039471592141226537548831233341221892806369407122161644230293195797667378494550224723940773671845631319121405906265852410748095916112051015371621098068307672519634165816048564740658505989830724348953878398104462673850189569599804523453401237373284792369833698615105028658162651715564394995892448018654736209365706421926891547908570628072678836931353599550204850339116979662705517413006906194010273738766192427618861043681978016460813469050896959285273399674620444791933246266912688154734907873799922420085036276734509580806221001876296319428558746716868849392525006349907056510142985491435396645545218258019753296044624273178967286961381402950718841815890359480522013833676231054167242300986033623793396590897120261509639068028265392282476468865355049354989170285731413985856281367641468813320617376127116662594024081628964823664449335360870023322246825849239836336980755184872208228612111759474333650266021886711346772431936419942580407939228254723960914722445265399659060733965908394868876527144645542526262397584106544466056039317046500380021246241843891452064742576755869575426037650213046034987954731669727436800786996308801245878485697492229558686357936642082397592516604367148133704781564920708483167989749011553375835179409075377807780134377288983880729289035839979188289694013515789076628673382382896866740118796307838370313358168253442148568104093439329080118690876548265744336806187275929083529118317703358642153125756983360899389346138387636507409738343140449472129170889023329269311991846180880879151628192979816135840064610388156831063370534205348268278913678910043502484070871942375204531993704827005590879794155234616158659692950773200640483085934586788580827739332493022206377942102041933958388484765265839882676149649594618154261338422436009779235613964186508662937910133530036241334670316144753089259840155312779341613011515019863342970434217593897770391285981588447053420550199965875377850788514511570422364400154415297011750433930817430968176582580028201186828867405119282670761896102392376441841195534260562896702859695147493085105386551262114567154251118397075208601505574604441821167635912540408980097593667056324245220832665329126134007868600659448283210597422601450061363912398739197231566020505865716395482757348950836990774531051152442769996158596617536262089325898932132829781502882209418636404655016449516716346018563335642792379377437865097608591830837711548576826324134292492129100455333428445246203563785247418106070606445606512053847742632410558839464070279931718466199607269143813187263551832271869857225666830453785523762455455379876866321399298419749834853840121411977471192035881031789367466714327383718858529154942879526609832175294048178217792532442502081593311635526137826890845951399338502112768141104391374797053501583123344719147044372614512799425326122491120934733593195676946841615691783108963058526906446009406849117925697033609920460417825783806169512397553303518072661516904640262693251447134219026574044567148113716125476279788000926530200821473462200333478245118010539532482310573264923209728565968933313494303232808902433662225454398091268606527057904438688081513201031655764281807910549997802599592612194533834836759100821784713328124098593921741595987065716478339686364621305445559379774979979386889378254875726531148249188776934922825855919958095134954663780431865422970230580477872782951715318581718652989607919787981308810349291758462731756651886169076607746217786511413410215114967447665374140061151828233202929101989027246939571132058439110527840991018643788533978174952347451941887985233718082602828616019996027417731911887608084273174415311730888093245069818024240656788578688330564333820443576571134885491771923892786743388297371355367198235512280781928097700575923383267127707999915679792833190186285943875429509101019794031230843911916682721092570291219598988771979834772982839512904165699543853885435174750604164658904647965793378548598865350509308396566162927059401067326044020801822695755175852155115249536456476125065120687507603688601187018794622576463530547873525745261463430288771969115845240422708999974610793271794337269216199251531660573914899463320799276611448160729603648288175935150849228819454284851624408122313754834503182085301665423006050285383821075728043131685192176236347495447371083445232594405437777055963926587417478866283431894091784616737172401190722052384509561034388958087025670596806312323397368634217579587518473995976014802387058408259359933691059074905206639588056925720452720020852238947349810138027134323203304121285183128470430949699571132460690765495235652704117640665855488754470374982228899096827830497839813999037985317599668130336867221230202238728681953117919830707575405342604906983362482983258608160055339858874286040920476938989488134529184062409285161183123150857377421349511548971050866762695440767574885966833264735822994050971943437367336212889154133753855325920924461030991858766650234260136581761849792738126166726386335057282977012889370703213300310884196839736813159624946703153376608843757930246018519107669867153403327045961296722074284220212957727184639704544359671718104643042645984801455515997637517736423086647145970560966381120902970799170310722361285893031810004583094801480461171432012002276683184234073778408474872109043852331557557799623890445572691985984783926809207704632087224817764453734122035562081851994815751855238875330424385804687576661180506515793931190049294109729533525530641352992606351123949872195155358985371682018002732507900821626158661179650077279888243852015795569245671593972753160600966829464875148840764953906845111585531697251934319105202203005055461537358458735224470517868444397241988339414528337947233628413359484074999790468915937966172564476585701722042706867227631173985757606427467859649996039400379116114752484595442034631810758559271907634480235394009578613209639481733497082497170266491083358242208028518832162103422415183174771483782714610281878918433532618432306467595049792306982647830857544885374178901805604667696161614961801438623420580282647840612604149007769608559179502727467644920431000939653588998481493037726656673198689967002089671856553191869818568605742130372250561278809042109946031960869096799306613712937326917519201072273829389296567723447946967829194794965675285316562418388669789612273299685892835784119532182637570008454384578315297158186188593965712640092272402446959052179469040812275983921380106231525655346685708276137088939283784216603338142176225306753380699969410954314764168400283353276411728315244804513682036064907506820090296512622634815087157271250096659060327383134183494149842439650720831880905293801056768163788849649315607061166390123652041227267067114965984412522541569779336121584369685988860701848312390656887716723418006270649729414448285170597767096026672742197147414250834990574775547264689426913843279807428505813117229575754640767260340407963135172534402902643649973348811151550402464434325213784318213980918702113320499519320157371894347570033425649311431022983636597018488101974070779185408556680174689156790778450165396454900258863551551066668655285799538235865085816735373023122327612955067913779435736951020628806653789458731159605742190057331530083712384518298151299244544187345002711890077609945267936718833051169860864053542093658759078938974378483894160163756993806458743741527411576235037037796084797036947610047669449284093549935661315143912824793403239266153330971193912396087736274880735422236527356933218138706495875685022081887545127744800946423094591839740302626593006091691255575650206331823398789734842142307463727710809283245106011249615639182857865474511841413667104659377833384138627857602181459530533717717201879917387176882971819871589127388580093187575478394066046164242153778961591978810512538077475167592211452918584299215256351226815520014728536084004897214189951427498878054886993330644408284857910296707468520649370851614521214367739121079011554928323403159251165894992265859615136906093917389902985657495343292784974397709285319085003426037997770307518026966676173785044656518358831965272417753803800765547733441964473195613455107995792704510487331868166232566488320293577854132461371278685509149317644835092879008675982188246714027823100322350060273158787572296762587873162601796618727617793912359241731556846513984309025283702649286143482844689870815662727595513264897046025892174256944520678091541303814721849738463705497036584983336050457219071250123514506625544669035392933770928709914765966721984091684273600851253395185722672124582888609606676713580109456563669078842925087961930806104581433567309565645083151979597518425321886790140843926404963479432622816838394495530096245727541717430098582415182356876418332975377603838056846806499355776620740491826734020021815813541114226201979179116789048379932544403431661529105970029265488160032797247691049059976378711771185455805687958413551647337819682433805611853227478368632045970684011506888687774138766431712615130273595928334061878926584791596062881410467563945494015633456950864222685356224584699511600894711555725912639352099039103312044430522899700568835194495033428563038914431284494794487668941981197783215644639397274235183623545533315812552372260600884722191537473553409093515003965109734379782368510482584398633608724232630289513280059475568970067224712081824369079229472289862093733166829195470779844423559545100887970788668751322178720860877678391106491735727775181864740992644044382906936978732129080108571204049437913459208814908780497148862085327228553265361293971800676758621894922770871454545869549020109145360254876462271358394379740900604422273485865797880578331335210538978599116057095716440765468406579084296911429958613508380450347439312645800498855825293507467601863372145434859199806857925173587436166520983363363550116814869624024317931353314511112617665701966072836336713278706610370870197916487575352875673112557117819102293008386797578117213636846677277982719881960894674801902239550686411121641426013848313627598517641534068355918431450816379870279506644003804127989317443427113030594386549545255249567808108141561472869928016097129930002541267136212800862284107524220520871723697519474024719460367507415208547541539212773402386972449947436775877797408356854367278405181476873885596737891057898854877456122819209843150261490018463371608277654262673563624805052815575769552443502469515947032897583162733714240199242874482481403907318431351219151414027383978849539438023184641033527678214444924279372812409934526218811913170222008219614738916873787781831377285232252650154888545462302137979003695515577706316862707233948277718266873070031316756312720119515794907786094502101064310643170430090979335534170961342119322487338987681633987607533743483654093440424043652119448867835425447739313418071718436019600463413993155176144018182203649690077153979572748940754631079181897454891745586915337819183022005462827925673897268170181035037335197220814319364844156738148729243415507348647648740424742877616886199554868545640437854711624565631315900816659703057634772492762983075282809274226367130553321545661789299447839531124938146845055233119781685565371579245231354249598532030623209679829284103922714578184487768172011735520931303514069376332404675155846658089074025452047323554079068562803208509848908214381582029551489957757897825271025095779702796532889952410801351536024220986252191183155710052007230184912174474260287908057646018912626235577702837026279888703844938104700726561086364154657157830264253110025906094118849533737562052743709535294605658209496508177873096483538601323361363482070622518415743431697221916732188206181181194886857743102432701415778580734138124638096701795138726569888120447706924067303097141967075795584242310999169528275927448292837784981890080515503232506744188905441178764983302773816326139862391303750417388903489907366636318142331695166068595764250449857293416033283743874497558513150321120207558342804593655303530893785916329314846427456624894845772543961724161161553684532248308192107765041897694251509249032591240087415326660748942447555451205568437693878725846130986059343633771368900511334273287786373102250300624097058421645816077080541599386702572639844775484304373356706048671605482326612998705035164304712752491826662244209248468543127379831209753115912585692739116269555300337318765121726414044103626938324879309012331696500382526982940685841258102007959425308991695681092605228591438213505867521067485533808154323307611663880868588333092292533707168706718802655645927107639219078971086615645998155256531238726359406020078494936898452637286794470015746116534730143453538834099619386319582674439966951099770887419398655930402796735514142042465545991994627742336894504937632177263248593778358555797751062994302483673446825548659984046932818101477553494841194797608290194114846237030642581023060586106893833762773052798987234104932272796073423647574728012079247368584412517366620574853709343820896933882068809324609323090825597992490954193022469006478211687874866244344489019713414085031604959315067392416315383015776701324467034722162393677116332544393114315548390636145531551753711550337702332122191899401024256549963884438886350823484613509596544441112628669871806193059857077968894231225870074329941476643684529184789921622955586323240073465098806884502927639014730595949874099338566942654823583936673447158893034432816269793869112154736111999153004625721756317464298476485644877723654346872617318378935433218780125529488012350295175379135240182898613625690874656839669666997740965551945418451581821477456560673729892561842036275381081763902121839491269471055731122963202785754424704346989774682455795218913905096348150404042976902967192226628007401289782486810053949315869014579936156264429609180092765292460760565600215815418087643574900931833435136276282396729961655675971535807410282347673054126312223148838818231604192423399139572730291056752465309482417283177850910937577169590304178884851710073764139425107760029663110131812865291515700341458540375060984453059060713060689242109999192598020897578915579424637231735019071346424758676191684876764151534852163813606282650959487480208169158301518626313043913601200253769667679800792165266441153711141988238999216601435999869173626195793408759382317674738276220754725287308190398957398880985178422775485129507609327097323294538964338994943579909085884258142421629173649492874014972287619272850217001363216683509350603343410776469321382208946923240666366270531613031464745685862963762419604386649674488143641615140920296640392649203584888485347594562449685873204361958371880346772125208351500902448358781860404564015290965972197145810648692705420657500204998394137239630071786417376705220644417848780260371266349273324117474707912498040867585785031892181888728605116052390632934104536847346706049370898789274095067600636227702351308448224971019113856573181206732657310826348187133687189733558133124888454123037903561075649568112894208896478116283479028362733340740464921393477056582472529293490962043466694868355528752262072084666903718562198756376458655071840644027908919017235997312146658187936376188478232090838047571510108991825735160364945930478288148731865436907972607253239145771253890430424982631481570016694840076178328795928259713363572395105793878235929237622231540634739823715433763135255335444092154598442432438608090446245590821330034427873599769706413823997680607858799733129070163280582862579770853154061101003402271758693225895894670075259564644202069144749774671967936006363134096321336770002890012469618631488994720992460406336343959680228815459235105458883510674171383411929983711230653893328904572272981144414328910222934822246630498644245084872797187566876827424610563772325592882384801459136629680452388590402579516483807615229647840701762741509927630320545814898220755941103096436706602982000088096576701562198497242476481210407412172477117083300555214484644050586717232510208108672813800032743800170476429972937318868286341772192948587269025638403953006913237255513301060259730498438917332448507295549417959663342108830273357841896930729935353086055064358569995750725267932032359756880085694781134818225921257119459912812614991239047362102574993797082026845349160546261422439787401548285839464710599734629184436045250167803566614918013469926517146606181502701375082837656203558898383763971065912380951474879994780004402186552217935731090851205831692760287948806947535920177558931698304443872429295127347914016350707436921197065329382507892724921789802786797361121630466945410631954559681185336789849020452237163381016542807199355134922826924275229638184908962854586326187040752025620340741648117440563804852918269683852680947552817918548214561921429272044898341690044383097911577368993748907984823602395887826950100430385645376127926580756378657573780371334810811161899011451643806709104810663707090845256379424330128830803895416896535740352190337621194001047451060365257270463492457381244968614967919234573851956207008877822024516145044273152832295498262792438902800940185563109018986623893632840488954842608410173172584632898387035145073229762048313902350788692200895279632533086992471584986790060233738217281404591423767917529496819279661369452380615400638313916436152833354518140170947323838463811694405561594933789787639048991111863854244462101831015021273912388829485933371073073152564407687864256515865336618004569023101802662723940948819490688023221458538815520379375909935867650333130402216226235322085083860804149359079162956058379261133160046385697289232932389041976960147789425490990815023090018157229499705430528805630605899819204886495273699797971768841860283499299232662060646788924609444951178518033032546531231804303326914228656453990372261341981252061760647132611670640290188130740999372361968344563185359069913322343365197433303980588137723988345756565700601059391616460014372679684623566602684179916980844858502706615024578155520433354459708010478639283044221431880529423999984161861592099672520419855538602329518140271315524987123268730470059375112305627090429075460500011419480580466924477356736459433466269209013997239518683737340451509656453962417451306244135484582425075219208874530277623308282735022028336018547869143368299928728396439065656112850599435554056778258623758157782873431542326880714785592012797366275604156709802568655893150021433257599461630837588056285945482225609523753041874701199118277167792762086332907184067146852890359920003645431018637532820175093575736618619050846894357340758890464442499839573934549163255121162043873105286929097746897660921616497539450814541328231958932464048952707864897350496118951586311783322650648092153447046467554794181555178662830013658869421402421697756907465545649894089102819631689715357115088693100703982006549626763972276309971930140126990020762667461676380192006895592755173145172596584520259419184153593104847286768262669554636057208124800493411087978341599563661254400007339202535221692783757398815858461709722915844714670979764315170318633405408680334138021655279772069219904832463861652141410924843887976565925044492792396848405833896443671896731104673646890048816837222691203532377819363938310499969466474202928890790219672744325219130713315449151765574338915498696568341823487792682706331973132875780656645781491911178915249132006459434888771379184822817687197889492105561871726186574763460016079120023927986737685262920510758135859344863631298262270883791266049119510593588614789475479577442064209049654057905994642277299074836560130785711791155358331798051413448378919595612917953781011008810467712129067067522355435194029468106721421424700840906207243687433532308675116059402083610002717982199044622931508722972057737611956578982436549819711262004695081358147138699241782799920960198688884168743998162232503644775999892418322654333289027875782948184696941997067247123346138444468431163042134672133166366837191218319563223690219681577115072877476569775604734994323417920974244742093157253662991409300443413693132428373587739596356270383723753775675669387322678145095162440724890093237593040334849235773330403914135069497949293681426261262671285631737477157439619086714947692465738000087875272027985609860522804395164824246602112172182605796144085199144408495617272381281459208876613116680267299189459344159444350047429406833009683128728623070886890986664933905622999763246074751768753785663764100097978960196567734430928573185425014701095541351118700574950608775262979439398844245980332151651820364111505866497514051060661148168799267979777902806566133628731694280515083181811130466376307847649852768712301433711515172654723839520891473459208189139900445120066705881188811911406987112007347103778419989075361264369263996129692065597758974168007844964790747934410956898727185289642095638958044240167396118641259632256396049109132735147615269205018065883160947831978899324072560869846841713795150872381325824471858638055542900661420782664559428793394563574016276715183598568057772745384174987737050164448981689621367717951135551726576275805285967690944591859982145308302865763261982508180396585853357830381388316702116391372883904000754088969903094288338013676699676812273476672219938960400277895053652661920992519048559377959887456966560090831935491397955698880882640370771697842744810503915768494661756424549270707607654078116176054600936695411370676340309860336855922995691422865145861043189128150572900349548544250693860377644312936058277914539992692758497663541460567037110556125242586266625946999090057969833855100195888357484640321689668548939047401093339587468883488575114152537445386597992301475898629571308716578245200603821201131652962081126400497556628732364759265221505352742965153038469649925216002609784649158352511492634751233424892393861725427490709425061354718771469232928395384307812555269457997112086261574955654737371689244903774927039600560076811499842651251228570046939644241099806919838371325853502165098608595543483784331038189170324509568996147670073128090886100064698180506190470223975949418579074130784979385427413704460981518293548543078761292521561436579802652880808045356048820883278363028499725327334202394367368265137596407970284207990792843203542248914204046637644860810723632926702068347383814704690025831249877673653809144469956728639190496926957412666661739957777118260862375425722182381655933255221260410275769992263513785038419650023958176705055244748650642112157086836485839125445679250109950730373281766863186663768507421260050460086664989227077550806552163903758529484341783818761329898374155932236634765494823243601913599785687872705095359879671327387486507196661206597831411686628063020049546760897241706220963844652975509485661923459228030689460300036741266412450234600155713779306918781674177359596804933806267172884440152976835197972176556735797579443358668082743097929270020796378003237683089750412080658048445454516438710526843457121536298641532800302230170812550854802658503512981590183535606009982715078420834337813052463126715849978273988935645590982577901428225586919888894424762742018393331060635247919600275102381757505208527376107173168307315919682425900663273694775910867271283003136090928832549911959752630215910623278132850507151541876346810436567273724880587385944935526285539142265471665303858603397700731109334048549460940560888165189477579366927629394410340871548114984729780855444774658232619576248848268190624006089874977842196147088204225430055674988853989735266800752106983585002749730927572882426674947836813001783179496621968681933563973065250339344191747091363436260250389928022695599618009952679947968633265649302697869852383197429635002183350409790849330357996768548728037383248757182298894057796809762535065251738201405258920375950475716402322282745685603199655611458428925663746883459845366451554820212734655945345877741087718796348149231432887673534792429931106586168438648602228797576353883970296740737403295467543836323908174159105258800178993489070552984622836475620883481270420160118462914979813319939284018284369250140416820226816011762722919407170242273950501108355836341517472558233115378152075409171350721194817456427953738445160526716691794853190477352473738825528267013636385179123249345394305637020431020673007843083951444840977739572992218506673560567121233040672743323219198845943735177810466231252205022855780720377733444105193234927690039893924613740306150379869180447934556667532804756712053570030192606014714929144884540298127310035910275842076658054028098310094650222889006190169835708979706916506423865035316604015533440935957924542616682257213797770232971121729321830081154500523870080984373817045130623785470673905451755342708118308826393250601879659914994999941076389075582753487235494666558657764445615508774182359257056855725556350711511396994750673626083295338770354264777174067510280473651180356560227693121349447349433650194062084985117962387778002960860473113272962406628059915094276852488324112395257915144012779321968333753386082305112502981699601768738186120285815728819545267282763499329495432347495019590313026166816375017375852921734998376020095372704081488699628172774760001367821683225941047552607213192483229702720932660367598328175325802654218416785969717247382680261979665599672226151415452618376216149445636489296087917033318466976213965303107747173343050986513806298755427115610888603496734822098902014009902935385976065023774442117540236399132359175553200408709825183629905678329164072028918119995114278210677260040306842896959777077136958961399717106855227312738330063546171875558699508415042749239399720152226552175094934029471014855196210723083485959876243729230525353095480162756660551085867102903916723517024690222683868977814462618905270757622716321904529633368545860514978909755833577216015882073054985691861981628581201429396639533694758632778695019352330702803688567542308950269775983012853523280100599956689065281074351411469015070779861415367140785647007825271283473643357635673998567358676964831336651905129202746575036579418574224702020822878715776241578461828560968936295381467495545122132973171705716854851597923861640720782045057291090722063464371626662337208019507316543290388493073696845132198610534681935169954732339163625367136180549320145880917499137740241963592242578668633446997232246306420610579042597618016390150296526489923752574252048699409035107647751707819281163310191590797889844823883790423480989262038298472453783578863414524156030020164225425898288543206821352535760639448524772767768534407012980609991414092205178080349752717350105029823837586511249522007983921292801364676583358418836059035140886556040376733242604961243528421314601938236067159487391832446322580738173681585346036663602861221024356600429912270969555853827332796610164966741893888013848353293847615212496373041900542898104802704076603540410493777500362562796332269560444451194859346390310405944561976172820941733926705291292164313282938792076478764519087137743968705055646045652418003751958333155345369906271412822676068094821069779612029388771887602230640705490222288542675545162054178496554775648438817677087690453277878358563561419263449231355085048262959221530571820749571152240320543566261451327169456205383992571175337076840966048235637622246369288033591178883552781398467389921618189534760563899024839653751068590170935608294399302463247263366247250116654626506338144892219377927223287632858186027567395672281116273632550016806993196705506953393789084409807779032344032448376817749007666659030823545985933903445963764690140526693878062739992444170618738711043369218674522124866185820005777485841540103351140553064534884287598706623238674719109987290311845118026410400818562625912347510385000717655343057191794536676637133854453196666820672996652399900804580298746363565872614561106558605891676222259055887565741716293656816625797743667932260040857857761738000003125400708622586544728673792050515065045250784005446434096530550585628528759287151131935520022201303438778944499244505484549668029741385890617771914384595240071349887594250684722049114278147694975858676519258961207711836488594298087557724561821263176210231277017250176932513913965451339529270002962306473434166220208810168155671989811617228379623849764214560349731801356069843784720321711939862189084704408581779491600814557619213652118085116181999077626404397509080867157552974607176307614422166536008592959431881597268327430761436347752765858494752663085562082193013514058029557444505961291776821105081523013815577359929947668427571080507557856659019727547642775639514271848142171638399096909711602294058042725684406952837937219299329474181853807860084603107771219361370442573520493868535048749785932368179642993640520468568581829223327175000969650422518395605272009407021429480496881935075643251948148241807825345265439537529610431089293540610706534102259514032819600921530389473521011569826168480196448417193884860078826056681062862590133182774231051798769698843080843505587405804050963413158097013465771879163830053183502541217777608336289608269513918898290850040376218248318454527025548124652078385435571617444966085830586831933132405141434827401617158214716212479075400362558422672155594344092026322794304419568119910396581041396326142548936790752491430432840892447000052752985636884646199495167515994925399970598403216938494990860631085583065638294727288067599856815939380112323250824005109857188557607085460420804921575811640646993873203344824860239577959999047974193821216967230955001578634355669038631925815208620384988890141885213772277604935626365518472990944620548092260815729325634919489301342878374741701565595894667070164877975748733169789756351050908543391244368488046795236945468621517279401328529572241078589692741243989841282303837978024157578913800123965176895413818216795384679606483338559212458599481961927741787505547181542720469456313566419180422307667037351746732564062647373442420156760802936516675347449579878149037347979333045455972922650186753682716960386330504458378813032674901567024462612321517366204438892374158632288153000008649558331362069991323327308658495332361396096525790105053840392212408228171071042719450009771129347877114208000123689120930036216341034751523750784106298902278243615246493162804706548994581610914574434393034994640047863854013448624822356999012247646189321753049869776991490268535322394467340480174191161386817211329540443192148429171085152862169096756612886203172453149555830505655504293054453165270494072202640337154894774156108044415075616552896859672073549013095579997045176706854969133989319295248640037228538273113429823044126822488283286240660222102157370974656945556597800819299383342653324569843192795054980986207928631220654213370832865876933698732987816866934762093263488065249560098869400510490230292934928081295754081929239466262434633649582190899787975663882920714379115054462101983743523464995447126077098700675809343065619173932912687987967258623132457458814495879101583214330520153365904835917463802204027059237357539062044022562851177257882888622592658255388598951255067099969740285697466381805364416301360081700077019011358037552470396895006836766741428847133545596164494080000034289870045217695899249252273075641870516816567011025606310653354476701266045007410834845359388486211070592804924463832229679260120620444716796809027968917489010956516405114108865789452353529200772887150264442406287714416790548536511690209504790621089732723674329055350327925170607414206858147203509755784336685810377507575842443954625628480458613213646945603458270453915747688006939705080969937647023517143604587064997627552126269325760754369977971788990152850089858030103144193863053991246728500645553108650988833575646863876904287428181598999353442216730752971162236254966175329813892227034435091021641600706985633811528835441940829849163292128691394002196666306705445157203099014614798738986093450997584402968556832406991203730136040620701172434420079504704009204017363878140118608946125407704826590058515310697397976974115851095214747968819705422344800710112256001199722270315024815752729403116198927004667684890951139955849658453837306294929862822451098901153564432552137118006623960448530213223390902671135812540366730963420173159715191712957370709555841832460689364630668611592254091527663955472516838956991154475360297760456213690463724023069547240736255550321889429487312451072052011954822652834640101308331955559758260940470265864598265942902148859427730910725280061252294295654733251874525701903051090451498052283165554889937942023091197374340488623462784958357407730643336291923531889670385690389151471271176204883190925835870173728652914498174401532401819638873006162220588645202621686271637493507657018383399336140203826339216853226165680687644957336954360829451896586938718437093571149803281862247163530973268684825199869152342783544887119315264905180504918138992713775968835553052072186845792200223200338984377813602269597335166028470158862024451662689268881406921244973824315344706827816869833166501871773684131439897287004388518629990027118818200942936840806535540084397819082111270767827967118248102170374143890617008675113703066694363478246971595334170538159867334415681853335943117466661889610443769150145095666332620798823066689717955556938611001898308559468967012040496543428861843216757726909019221658146535516967785179030017027128866819448845138986099282486828571789220947444764549182389465100214664045616984907973337710831773586312193693142890908128819129606796370976473635496618579897253292357558804057975132756766785748450598439371063381008427405806485070965085312917327946086543737959972517485693727495418377162733793698331640066704733058115289781379230901240190221411025337461631232385703233972668132910715903182737337223248845196082269936816902096329581966955423321269730631997535020510244871841354136572467280827373791948644853302208746522488202950656751563065093280450449775049236527253481179744851093875766674306589668768705150236629574233609518488280369895980754212884040243182581428460804266685074792658362395952959329630064104893264574000516121224699063849532653810746047729940930666464272983872579545052621515741845183131971783917566307881424394266620187568357019395072858969235238583547874677725870448770534792035128056491592995685268531613216242777719805573124588570546194845393965612174970938025193577435628983476961567097119463779308615114669901628908429577261002600216576485603773922128481256985986718253903865350528297391887868708007063247255935275198762187130199449305373998636239674882876407290463502085422089870504467399349784071817015105405081820729371275242260112488658442221900550683445618112545438994822601758369976170722308679742384327726537037450361747535233057139008537522043867573991835236796601344760899188737953440216754782953009524971296515639937549496614526906317474074582338630372025772698942345124644576260975743328368749609554980506894810117691159123931151162929340042967830003184395978904316383602299480178117597561375834691245222437748553381944177966318195164054792904180907699241557200313184334213349151328310110503286633177016761436370362303262139995496721053673160851827793535556127166891215746145702484704198868444880549423689975454561069280824368948101446017325307267266097725986245933370148997958867676912346131281377257773375123774986558505488387947618545242329605944663659834831804985024007126819929000266838227352742073822101508773188571736365224758036433362900223340934213118441347461080390265958882518685261481439005872084368608955007416864933622751828374205070570690345987577641018150012740506645189354579810513328943619928662595736229295018970455146172455176376710969326461068150307956785667927312323397926501442959375458666480726587988201848878105980103815396798425618561162568750442820213123370582648676600003907381138764489672716902638694428448808520911632009196442663754095013299002119175464086840172925669787670830671566831845927925465332975751567159171620890755201367770216513864187415518398048246860507546569665407603900732706852890456670004737466788483834193579893383370583813553714719445726173661228765239161951754270641920894449061403051381539815988309975764151889459172662143541837793272115452643119600188377086106458442111729439812459616412799607150237951237452595341208058120778745017739922432507106439741083338696461001676744404871357042280918811766134898598444966134955539520229096559889029733068301044080778653221081502065285386860578447343917047858222004618986140378491744502078761780864179345929111192587716793673199091452941410245011635809176785566571739876034418962044459344282788416264811786560096905967344023361679382039433819210109361414357517148696514345695356924616451892679187017109443354538445252315698805813124137135290109239248840701746286621871590766670841023158647978327649094553177892528102459293478330258520165855571557357511947257276367823828478216608525652534637366072777698300195850804013872521409142152010309169673942902760148407576931182362216019803601123644781900214738623011946503109696062735764101790672002366132148310696731536795650095511794516621877953879237434840531424581408675820519360354141072221499511429115866399856426774669380443778794999329772962484823354524449464419936195004282877336123692529806238796329056643001701342591848089298717107437251647306931178220640089600475048282518728207567680503190734098321588462130828595207992982297556321733858866483283809675205954517594919080989715466439576881648746969447891494661972426096423276149492301791786417197042651303142661985037208235575071091114883928857091327101590772640657535636041552372321020347701782521165986503394466449606651744286867449043914449131801151482720870077094234336109713511531953905103477794536804893644170476990631124919387403815562918742390806607605565858746332322266056136604350764488789121350557959907478102713293628372375431889505385062282200659966684092734018460195944288742242118406984694244444223267326737597446360341244899005471235948657340239904761859875109641594531218392274854233318772737177339239301945116477435959023610144106579521049709965644087588760790267195811964634587918227073085759467365991145613826286268262917985684506933102890717258548443566087017831319690433660190898902414273827101954028269672456606145473373339156349957140423428350824637633864427246943650037893174401607551567860147607708736955830362214802483978523436321377655914587028324376553688638771199660151766425323562203761713918719802610733933898249084871871049521220267220957506741011269954340105330369322502210489654771608731588758855060108905391714853433137724489635446657642524188485263835323091989270636502185561836994983630333204741197597435566001621648081829127391856229706778985270774365763052048722914220614806557358554468824737629570068264447284378255302883993108961020305890810862546837926317683555731381827215968275560965211273624239906471854018541843206367264529644793775833376104943249267828123740845845174367692833799887323048030229642400932956513990016611792484441100021897665364094588576785454915514693180487386727353304857324547771143047350098352999838519532049215387313956886223653125024883787188362466337978489447956630983505617996644204853957601210967590359917536201145409353057583007362820576281259775039212596605687332181988203501289895088492216508068543478111321110308521757383656847508128169973314037009192113905928252614909882455767396904440767999163427030440542988156875065349747610365104051044565807013284472327509831220451756094246343656928691317203791778552715058329155325982488754030841415525876619887737260652475229844561138507733446859244565056001554012121239644317092943207125809027048359113561161823744436037353187220145857578363824064019787842189480308782981036665233409663907650760940626302354357211418408401679123657275812659786882467265420298489358512748867571352404822681012795679688989269079905357223667165175398576886201458446365637003425066281570070366933020039919687209738460492812299509518218335107209175693614731127281989750853831559567517167201469284986834112257159868843844954040924554242645429508223145210877016164829650454881705483702193006067661648848121633595866105474361507728058091595107917591393487151182486518429171017660718285402771082123722818288798974820383415784415430364665044054876556635325217680067747796227232250732905665491396913683545107417911638930751994502785085538960282496216197370766323080005415788137549721739887852654635953273988266957086648044151438364697833762669755652279491419773729582167637055524087262124596811343588031353222379469178964363358927143642101800438052236242193742870658589732713730779426625168161070092485878804688104639587566643814992771412878281641323514915555527381578141970181863668583724471309178528137325195375380177527282522378791605176179999055645948507180017608320050329053515036095105832348415514154355172530246179881380767498827893623577807514450287866258335262666707282024848141046369262837218494278933444209960411277244435768676108797821000132013992295685237532471801630503833332690146360828769405770453645272754864565522080198953513766263065584354734236985666399953198717063076186790329900511369950601981812706227066401169350377314304340340577566561899329856890217808150993841459078792103895272831093118605868613855837271992274093729601113413560271571080669094558246443023557880624833920418382114295049316017219690378612109519896658612974946071935348132981260608759781844900828905754215858833841458428632471822086709935626136865080925810494283260826751356878363938213820038797709135017564051660343050455905682295447420933654239392561825048274091762648346306771585821632944632044101006428292755073842011108156963933504775649129309930158496812941408517584200266997766638751148467644992890855986984325696032790276525903206638805167606946405644292558081808251564830174778882124486449466279614522365123407632316576718256902811801163351600600457736391223999147937331465152184658274125757496494969057062976115615338936573412009525100876230294636356155152006374808640647651548473378728494639204739394221752806989036428385889047274723253156998033261708854414127670319828532136956275442095514949544264374735659986213769688804054307223691430232695211587238374293686232388509785117162816560813906690761105809661966021497294404334467139998460502528852022678858436182839487776164565460936384301042195087955949155377096249623672540317378366456872909924790937399461268156711814090598109521390192157389784323619537118514512692652243824709377772112524976223227687294643742400326951362912198823243294992467168388486893152937518188670123771702737645598489716460566689885149472082946878544771742580560737215202118603026989669507543235878175685760802175583737199512716354589302585694122772887787077680256603285594177869118422770665342765802870147931664629378308155699531996334875979450150616039931397243604446832165052201134671034331063399711476887230561196774304808770264625883582319347297334265808497227891156624299215041102608566630844841126651530810805158378215591358718735475493187340033044752202290866405426982365258568303550639568265111964565503419624092121905678516839692092320404393701209500600550262647674336898261348862551542659451709139860336498071545140541103726645137272549081150534921514655996617385973604817103701000989530655055578617811315045872774277133702213430047524342710319115075186174935775992864077881475262981837490556249448950711100007321724848748318071515204474825933716768264141838589754512635352570931181239827747396912272637250968858273163961931778915469649884719735360152893679463924629879928599574573770522704495456807700468351986293039927305168046505614952919936921938593802996711699584067766821570415443846048284848263969380488866197759878396641311338467128989478380059290293562592262130607600527138647935812477561197378343013911315270578614157748830100820015967162707637837010579004930714321869393274305264507607813585459861086112798861543152011990722591907894669587468732573640562636270910779380479551794996534151461885420595414139189090644860443295577479688783054947073395609889159943819991067145958761925654497724616196209944671305650597705608725805342786394268566741809805259351616252353021678739019460309025122168476239913999491353752567502767177819314824811837097227019438293012395657215430114086812666729136490930991048559260985941424141686991296900265100603902477323481793544127905351105871937662469413482098550700765519559533043083284209836909655809358268946406921071607873694835009548139599976006404403824721543598182430896662231587247967290088032004693520608780691446307724613131320984469850869923953019159553020414313987133959196378032952277352042355621433520648459182124623245820387471049218938563764315752304952124136490071422579965038674792519906412378224947586880679018891961678339901702613282800850300433939955304374565434847275164054022501381447456093125190024813561084622877389763411608552738072124765077415403155976995191838370751670447314673387250392851366737023522797581924840460015543834748671653301104061259577164638701408025636246750363923796520838125887107457241823482542185600422820730107491879829401123060406279582992307078401969491281715127586386194857753426744045472743390629904106886357800132988443718849953103214880768323088024360140185072992967125534732608911706778904068636991402961298113509413171073690085674026451536100610425740791468052062674231079435829102917693691095691355259045531048701527332168346281568169549948188141718911692795180048896860015954655323605970898586632116282632545084680943926146030338906365013117684588491597936666917267719748139649691421214646080439443585849140455762497240490049861676127031695632092518545113819962367843406539687678956840184203528379367694176090887453456413119417485195527507379018429326016184860886177459439542498399996806161681493205552818131243037698959791140220320430263883897422610815114589387517238925123964354416249522605906180731513514470369161793935255334261964802459174370328392100729319619261290763221546032592291075662669223751276677294828263590426557523099112662818927211343805001252338978113941969205205168141602688704267505161427897940514503544382553391137424111138066731665542293443052412875923898497413210239633487386068023801438099639828123402450207024741019565125810713182940882455234512251112878740388559319580138336851219662915218086484555232921390531688159933895282916902067044836285578651950945672170808005267488355358598669762255056243406324219974859780925163928519860164441155373594988211686560645649187872209514091914726081041164546019402652180786893260640519161765875799957354819279613403026566496600099392036913083922845839278159916673656151122506797888150899045850929740342439651687003099903135865564660295949172225813405171966736889471552967755751438531979816736226769343799007436193378477531642330288240076787597378400149125986997560664869314235157762995839089182621345436366525701520769196881006625734531139602295027388458287542420375799818553979868471527575779891069065847622451590465990648068580236155820227466108659002322585735431051667792009185513391356057575724068930033449092343881602376464188788554383795000248494575177315234388788027105864794458273901279094635452996990173475983810094753075969784919813912187427882472990042603696326528640535261048697620094532578029654119169981099807310954675986218849062320818595366505231595966452605045138617823736951948813760877995886781018923953421246401479213670863641279870979268757344802315441823201167694285881325479429078765418110243488274806869359872157222957753088354243841169811321778571585282919726003259495326033306156796702238379310294838388248278023267546970139349236387478911747272073976161809922216568749332535960751013163115326148233220709371112315379898599697463896821644569644397893765538559901492447355523206402814003627919570946954759472221020305852170864837786880885815653837320890249990302191531358130881761499141573726272103080707721519612686517244479327300743524711806604075029981245223767334515695756504851279956498637337174421435947738823307777149420718453580045929656823535972935132912013135420860387310723281986275523673395296768696823600483602241495086332683058869510612848921032870692656178070848963511835908015080068668418264786556789153373307670136019760760862394989809449756345929997538699185803111685161109505039028912391614530914551575412980005097555866648128816796938080871777014027489634054442487295422055543592566871263759037228706029170586452257942564557615932410915953692821882597052908160219073679310117344785901855811534413273996635084835357379467076763578770715079648496993826443453757612385059879662812124544145721031885384122792705637696535602175568459794433082342773342888984092365717486203689574148271294653282474253095657147584006530104182684971044777385903931874871678024995103035737844699094694744890404265220579324169180623635377349441248623993327446002536346780991939095629793099635357064743603487000136028680389873898611494956403552011411872135735326907736741829407509767692463236012014100125339887030446350263994518189807721530135515628663546998514240640676332441209802419670401854485983696037957370958807369393447839864755847470972895989964371566293468024558748954748091904963360279596564758643774488462726109189097415563566846074131604189167002276214850015812363471821603224995427296065371812742365038694353077153185552223829155041352884933821718968605587885585500720372054378702311511151108051623312926421881063104673452022212127910576461078153423347669033633042280954423790771008574501778481906727808639771711834230369091532684356596938887145994797525915652055319915358204382834473778883565740431476993079186012817887456537477346973203756740227389815935787769119692262680929604377831513029553122006629957549690142705244274093945536303918085186949640019570612594715818833259862784534033238455968545139527872029827898505063049796847551757314322166635912531830813821102782829110866585919475476337890634560995682039971972839058850039811199719497970445193181807777877412465785836115240257898491751360936123014998514752248736289336314033066948093602120904679843791852830803182757430968093969560036309253847048012687780006366170188793873466435553836658289144566751837016475710701368174177617589591797932249898974035694495890737854576841012323155020232819797154930354059888117438103176193065873116689938871247149057207234046054076273101470387889205984487347758840783733267477322045688217520127007311040849164669233006711266180463382815220147161958175318126385767846195512005302001137382760487126388183377980761802330994924583831711090062971513266797450618616859876243468508256109629844624076100985949388344476381735707779444463018567219544123186399567618785985448059462541563420067900506129050674615954325135484338436857190251344934796358972645588649373236143492478368149998033111225800407827945581698751095586200564784064469780132339268882749526568395222687141459761138724515825439852790859314251748263134738760943433356274241606948362015228902177517451981353890636849470546407574338386111422715540511992597244805132420640880632803248414354975371346523069996640762700715258662690903039369400698321001968129601901553696616232817319918553521585760363327825237952304296173276743678727109493336676190364881887279267803005103741953156935094247402234991220784642990247031195287277732047747095292168662432153269857128344240031762683030808031109159245224916406425120407007296353396567032857109207076792060392195213506325002887596708563765383543522113221361512747002914624223057412954717953918495646959318547972399615688331657511416386243850560244747320726387235653209993648513014173025843603595899261934647531372152882133406170795487553837724395528488998243790253696358505343151878060822667383060757914510070739835995541316902542324377498545410964036141391679749390763866125207538694835458888383696270560538375268444021712423760647480680210038912620564735361534990380090071741008053679247386149832927673258208165371197613306942699928397545563512928932025264867066293324532082523383975401897308816129009254421550382012305893529320469408978784641068906095248378824301493188831114350539309790503296121324459538989428318152296952455567510943044631501727177100622274231322965598591341326068300877033491410974280967461287321233379002475063914024508538074399781123260015459016369200207421928592202406026313006222621882053329845112724100068317716462805100265967104065730326388923185383974097499738158167199104732242204739936155813691260744077707455215409799665150090209639362905072953380974594595857606453649256488987520888057664476277666292921259442729139749385687249301138555348094550445629504726989897298770590776062044704853395668273097882976098175173666830818350303694618246223957904038973665577680608105656275550378175221913596359171781677972401630885242943222899705448984193412379040381228766727332219120080408348206562493111534077866567326846959745949044548691789671098377362343737818525609045345811270923684765870505935326097166813501686719844440650568704026066460504273546318746095200735771114770682926082129355907041328544219882987030630636184287593168262992677363955602797927587655083524027686675915210750065929901369101342822052785325261521059960199581350215511064078831141075849311743162828473165033392981388914290097472159018990821951415222908127426381622058474516601725422290332143687029048350867217875023399867974059421393431650141840635335510061218862871605876701844152484613368984150437322301126212816823480144627133950988387360465502739625351883770358772631754285723167695100330086962036984374479218388814204048518056785461508284425689056774079931030124172809727224298143202959344689916072131960076929895071965312981660638355839226220379108865474569039893441998184710249661228672541972235755215722576287776689223648549161118865181761310160222908046507553930818204737331891370739103280462048070446140078051674801395857614967317955590388425247223802964133453777266415670376167762779459394041236253441441542975068064546250792520951267691998054135544723439205103365558203182869514668259381954747568649879136454132126516726202136863406105284563788998062986290229862490190132557629980761019587923994829954436566313367449395609686848391661809097642814082607151614033576532024064088237309930415680518880466617234070864355294456051620236953429497448096682729187159563117771735381850315671264381778241505202088940294034659213390127629839394341405401646180670228538581332457139057465262715918598852481400566119767683586858924291579729935288576081233189123319185458681591562896329769559802062604899075805239856614527790500065896622679765170833671190931480533528672839396777450642812323213894899209485164495454027697807874084617298196719280135213466077710336338623429261486065120388164187026795858400887555761015394707220214255537135105194545047203071037456573524014003340089271398517755779279034515302211501484213285216738119545898216780849835325481738334110880799571750232551614268225814683325785693132861931893741892288197893000794903289008516408777999185345399141350920625823869703026767138243243948922801738249231872372464919473492096912353427512009796037223508039051992035797170838339972024975404859526574188009602614153280867456566492014011840396153241395795234224192768951335501086332442548850211059244759666681626636816547537717147330371016280392067648799105534454897208130398740538971387376189609159005625968310401846682185576822708400125318283029683981059052022577873124562704231772178577448854184346231413659307794909304184925300000699836444890376562822086947578685024694087878957131313827158253906494024326186413545257361177814643964834447357569423017026873633374909587806698532644910903086342582478484245111468381428627441194647943171969523645784696091620315178501171811562886256335273971873900635433106212068465874761871985559328332360961319428515552880584678024565546745762803979310378264219038696481829014164229361451377766737413250082007453072937041033403192521944611305557999948280472681483785520467875832024558842361578729550840916583772701212670637153670134147740607033147457400178296133624655419147881554315913425894699257765140364933283151303397811013899455423507475732894431419326585455250964044958350921598410468814771906621510044283091776010382806022615741963232129720039578710147795922084141518878799299060464988206426361468317379104795563890529938355229666573208354595733768816484133348214818751358678027415588659460606467405568723574061508809324074836756208041064254207102580936097316613413359112259382088664366247158461871025113602450843040963785975315089271384812998762680657924819833872839564602612180864571907320302794378501799065842756236502156738857737413116396824227288245588082958448285493490453193713438910657631971966849518024475621198881512850292475186448754505447294238823384940301751738314744667090449501166733515162595949663020279579909814056384780796823941000765491159518328188119086703556406572415547801050063035085736202783844948181505899898788758900750830964841389436094650915285028684019203793552301149079934284782288049671571830437129427721820446352855369645398799643163911759809645765880379255215451109878277912696529938143595735270303060881975877019882770525223203802302315794522032929871928262720450544399998060477862583545067120060977364183465725882306465417389736462715758211053671746488614498836619104670986306413902674563155817914418222506582027880077971337700250627891535423445236669899174262072360960569700812804642406166079380523313366965889117703939472186295679778790170253706049747381543137631392671141984425608632876483464338501125132590522175406442660397531522281104817235172855241892759917520169510093183499738616335042879216368939672675597990481751263419978456874740783027761798546679483750299679868810282912820326454861039159263074906749997490135609459006994567251166481257900222187574343924173690762210681097754006647098851827942287275564703857752864051739997659187053315395833670130400579091588781622793118841240477052005049655970187322826785691966093001571812889527125858194836882618893859355849390695010448943267665054676242486696058650681609484326255170423636494370929350721899786183764711852294191242963591602720665990845970724942313017263020803139215550185868974265064314008577863769093179972776782449130984250606445182234154917840954083483111969262848990140041027878223039711546476983770311311182659978505773823005045850395758524392260790240935488644717328384686918219970326441751164762028978883719714392596936281411617055099691143335840738797798484860979221827699453565105464351188665600410850273879088534488681427457859774606365000287803002164780692729424346949146310370109701944707384095718715745061317322618850779175645320532513846305459666438744193854304074615018769327534140506204564868433887975634976761598148741734032694715397892633561743202921083019534987519231312964195228432198782011777053603661509252446218744851123245653802794629390175934853175504666170813011719533040235671304265327032919758600916995448555568328920865799066894301007107907111079641354659066736061442459331319527854505937785142618925954560996427511411121149801553321976774722467823647491720166918409358967311686959996547854309305791510012797561834061442546746304180974694634683971622282421471754707400247649473838959118410573905487637222694772807271585072401664789970818666109672374923003116791346198325270608513870199452048090948929986656151399641038055445509791348154043365869449783334656157478171164311842175549941693181706291232718792700676778549820611122003273027975055901115962404785647299564080222839065283831443063949496036734262464095009174892940969953127695648075251887522547863172413965224009184166109208032522221389211127558433757294644304929143417440658773488068500788372161027000814116223504811909248220515552819391415123840149621529676167201283450563029414458003868648388855966473310814321495055930526286905209335795196283514521728685394950257573592746641282487147087749084042929232961987453623908469383382716899278115184080008705105348611646250014039011529525548739954767539163251251190802345351186103387122294647902886428844816375460128351638570575359546709979937174144519432559656691963149924930644970817055608729531110969489657417766460567254117771912034594029472258011807466836098715052643187274573232990390629752406524239357225299076943249776675627446114990482987247918300618741157416205094553020206703589587690415242430268727296243569117486398426308232744455522962390686397707036300807870938279929585956249209460431424131615052908280089635008300227213415395323110167886699556966546727457979398093829959719677329144716569060809699372725895714106445943330386326935363969414250464841007952287852816181502618166879430642166546635894906756410984983847050869456790194890066374554779181377518307852212271461615393539461736820999462780775600887115987908673588910649865947863235166256112777217620717615019527715577060881432812598922682527426336233404082668292690286368859527855328984824906603550008178394966613812201034844965665497558923431518843185398126850436694121711142496459519019062718352091564805455126831114243181495548556067391164861912029717616952410898796151423456204671357194309252546764566234653959033524322009226114626106493676198624620418847715070333332384782294784974419293702141423514763654825272332926967502376294775652617183617485015696942139594462114330330924941771441383076511775386527602492331760167284101887019251661392011331440414103637476487809616863815793297896330738253052174988733509702908574341402243811552621456006944686914468074659087316655856798406897868472091906847064271515421480573363828206874545546082409626991664458921284517778050167033144446493579295648111012535195864833279607137814958472296991668211841717807107683442858925738762969610248381032397453812903491122369280699607120055918364630150872239224272889583570069686986912606289191896975110187810043501359766547028940499402197973021248301596448917965547938858883202954488324429150635409198361611962999102603656077582632306539149442317712927185006714118160051133897982962701216851141395865229617531032094800076488361143423285977871106847958411339508283869073941739408494011229879288373261925622878160978179651979516988372434579616178785621374607886443671745018983290762028214348376037936185031793078939180659212698030627728136084796997394931183531699377146673156458630658033486561332536149881032322176266322042498243851289572451737705505471369344876684696363632467394299172314417607736307040726796534686859916839552457492251933253959403688541498301281851785712301042929902834821877670931559876346725101994596681603108885420829843700921874746903540276230755695193963774013349064595766772365674284293051001184634967744198772699437246146182863712047696160040060310477031722743142402994928907626512386921302297052048314230919569285557043030112293629563352673719307789206714196453594226899184760099775385773349672267916113001488180969338180012523146039177917052719674769799631334658322009406192826326499599887388340249117914413381969546168908653687656510596306120747467282861676897062587123746171410116774788017615748425661478190733005294192196685063699222000239319574305612226305327004773247007230816208652169128355935600268447326731063660230204326282041638104489675604702822407855165561000524181095840216777889811872739987437709831229725868877677015092683152982315644843908043966892999585472431706328960155684163245035947053895445666174176185814932404190696060688682529937263874854301491527525509833127907583290863482494052326310383229932808770853236686567594885344682738096397567657004053199545955154997311694143701392651609415697548673583090236806692472372847341462724621691891605226876669030293658995077034839094304734530253296806981569976616397417401660846889097619318943174913646890043174119609301639970870470305531347422042370046618624369969884357287807631547708767683312312399256432102398404712699307829969353815044393428330538477223511312688484892057497627398251215681401723208995131714601393458782536248992726102842531632994717291007030967611496321522258324337583464403149516219241008946707658492713191124285251737747423710210286665370518302716361603018165101190630453844648170939042762396537336568704106671916451365119119957283765763486480214618592114671953439171204440422275268282749346532034005920522224669064003226049496258372834271744004304144741783796383856017465153187154306177540428123991564110631124596266774134116185687170821455241154022883369761025843865523675531650974897143879590826839619237175870800734687953081807225109478160882496999144735173577647133219639699730418798462248811661761633150544372215581970348948220482558095241946329055189880945805941693307074093490887403467625411884110992460624646246251100182024693490394223357580850243680224518412271572593438245430061436281617836042594412608547229855032028356978392932095668234755408975791031991683947425328717421409085561856635489935169884529838312201301481122996900491768830980737573931998795630899111993612569393517072766522082221736016007240419996307095966092231850881330013202361623244156557279036126588277572894737087058856583895566291320326368769617936563689534955991045388982936236558872982428939027586462533480345406708186297254585811077630759782182698118384926014123677613955118154719025857001025138144756372526685394381020365638024483282096426649679647634111735800365295172338487823085191388312802443279473634161827819014930104368801265143805262178583542952369342745799171114625720030738433949521881121779890864016911578370646400006128906271355095845063467455199831595791484030588610513532939151562668050009549927669163501245994598473072268315831752713499502075082412848983844883311800852278621604640463903750331000062108782981847347656363524039111013048199657562672912469888790064733994339943854125727277783229767283410274519804556941495815273755283822354943550101343859364718677282962239155205605902041635676318871490137025752470363844954800722511539271065793089033580899002018504905966886714605537235267884955426495172959245808376920658856506855031070113805695723140070490229821419646132611414727938975263498172654606225545514123337019375711452827562637496343970722350541364165075622695080222801498454977510703427060137318294021684004981985236807326440372015694270318160951762078805439322585810326031602452181698586521571479366444686655893460497497264705819465249370038888329582661640311523455967291750518372210283546902793301937561814963541786172150926588259558814700921198060416717769967158344458722398405356701628456640703335199256691808314128839734166756627012540442394352915628900084756836764538171289631283136188645166459785643438440981432205167467782637057636962106161612022539080929812773226451465386930127581475836805819053124753990392258417148559499514147695244649472411595175880217625857215244516765848981192022625633896855325676586142745974691522220772912999461577025050283561411236999131829342561576038607737907353460727617770529799784412001777110050912654008590300935468189040369929770203194199183149813517529734699750195117585873466208085244423352298000956576241634393802446857775362149683509171980783037556593750515001490266396494048985495426572035882568570579062482380596176663170080239879083373793736557926558395042630650796960248044737151294289893753055235113847499454251731658705400257287633821373282453561762615529412105036429974497439924689273823414901658656391858781502049746395144793840300840336949441145894884416935291633441350888425127602173949373421377148075141662670326090982116525829614709101992343185555535995491292733155654014243876284200036333214870378411750658501023873271299092661871172836895982846933343038665358730712193424071593155960624218139031331583674352220585844153108643457565179500498212692560810904980483960576401976572791658722216971287628343840568236668449083291666504005517701728052760271763054931129938993862726206757341734820618966702563486921306491162353382678036854984379739965419386496461148684379524650238820687936775951304809719798705591011697371186490947000187185856651710702483713325537944690532600583574916875836999112272238509399969882594802478274400436112368052856754392783967222611470915802203559649483847488244995613195633147462341914927775987903471325696634696404648786224355673336657198711329961660534804139513933159506219003453585046201258591298213088253508449843633387455621578287998987092665085294179935292273817177504139844567619272675836777503210850974780461124081894706170783037237605782785861877647198962271939224077853153208835138127480107309517895586636094925021322927702717017503474753277238036670127236883612939814665071307411114000144546736586234123984547139853608000771738746284010680271511880916031574981821779624954503195709179025003422550965394591054571107471177317212668143247238725686261262190832248667415067157515369566259443753422669555056177475308507609269614317521701433637489686858245509903702638546125978455418407910192439028786888308985254909354631793730087327935261385849901240145558911718297536696056383460267616038059072983741016298471441030094903886858221888497827169372070266537852702691789300925451895606418980100332513403891506862863311774619362548137769299892132312906039471204912967177823992581923206694337495258742735797861826125521675450928437882429706364745571681591215837633364872912524210340768755385038904525014617837754156159537155042867479048279213512894558526135374708713390902896563180038249139977426313893661439117214532566753448302626265893796890248575512094695502629831962868989521002138517984240438171987535819526128201217865792172071647975605145468158303659604358043046255137645770729579171116733962189423875455723360410476630828525864218779077873320945107470691565985159683823570760169982058427198887959364974620417374576433599714736376364116241071988155812262732986091520177437352033201546085472263669563716004978076577483856372348077951960479223377931840040071753356089695692356637629350554981365147681320663511748733032588434832739892339105053394583713216632035402312130922535513000744849605451480846863117255166995036572511922453343027095231154685492907264929041298188229327260044200220900995050915193944586465692914722507308479353320421479124060429485460326048417584311812843920803845126794188400228333550732114360038177962804579642109894182739469941716942263738628665511503473064404769516557331306499572019509490417878195265231840595658756370207487781572509962004515854186172784594788382248974654367380744720306051450503086919170511093337854397272176095353753331126070721951258888418812474853789050065180586380455429615203810786316371414578969580967805346067360401753957723271017046668206301523855326977144379762884505167779863248517730150196758440724592226780781766275139171557020913598053490247054521405579196165394502592725148632388435377085336680368558588146930478312142792640536449548087921953385676012046115049661778689020359754206782919974399795610614581451021508153662171988293332060635432497011015382721231910374007665949289762048754813296892695816131711184306516651140154818966419294396207332438020047799804861292373200234355854796118871467765043911473418207036195110868016981396536346046781415607565138612495048093446989206818572357176462961616269960670752256920249912547047933175655404305897176671570711618072168862330716484591063016738845916153167174965660831505013041719729207149251203263434205644388488114691089145694625283273315544259941284679176245160013331121980653569065910641867599205529983187325115618209821500564840364331303794478585574839354274872684882099757744772564866704604268903519940096430172554011917678508581293212245202078395662452560070697757288461773216455259191595507417947027694222028593009719899217424682477889533825349338721008477681345170303651516563497102162881455380986625181765643515405154331448528497933810155041611949313725267330340562753075134072387498469875888213530078663853148284909675451063921947182190641529530013726916620692427085688052852684636795809591454898174633490863825727991153202361479476861801535105498429694781512137078874462116144045577145384246233031157418063866798428601357153486241483593888608400276499869357300805066669430542532316087304357978344381503265529253566068250421128614770692881051469547694403258265653333029353628254119050839484712208648498559476044436723875066484229914969679010998520796101868642640835135650457557342929120956796374579433084008887413337947267790703554794324458598473969075588339182525619242807929359724819478596569422544515544113837844736804079041445672120353389977373090970641177284151404107832597838115931242270881105425763995667735590833554957463181143155858032847309374270896986593169606130637187615952071593334508009453402402218465295719432097843501623447803488577267015758196628167773787194424723292085564567717181510392378886650600444355412445146506829375572403074792480525179354197215930805033961180941904575731439725885937260566735576511187292290700999119733975889880140357210627132471369841069375911609274730353801321530642352134128989467480387361539493007729572637011981766291277425262877307713681654315142791942060961982131571473568221446227698226298849878632094299904249231011246290820963444853585281009405056036490240457393434128760464113013817946361097810957606137797504930906856924122800400204932890737863410568586612483059418545517214204700785326990460633502980869717676045883911271710784466526211482109621405251500650931022916276802618021472597476229925562524582155684285870416572651901287082134380861475513740598034945633736056958084200284461993333271322533874424936741036692695927480365038326014629665474712883946109302338630918827374603563335981607335228061131064311408119161340183219509544598928790552401324146620259568243120236373761630673988248044709472931335913798395733121042688310656037637638009355952808405868323241569907224966266219129557928102939431078012855873292332596155578629234877036729451167680095234314498846222202432717901556818018744595348426646184783281728960898488760987069366000868917628957827685475275920101493827799139522617045631225046351802663543433478810675961863452884538751097541184255765739066706637416249023258690573664841407855028323866609561254110667524945434395740021189217504420693267419308509009061126675940146250939525793315041922993329119682354089499567569013142489358373361204320250948929170251821008157485059698272484992100239497224621403850669013124956298944177299906065464792295615516819387874148526405045842338111086408163679407112609681441739328482833616311031492600861734821857402171872383302270276595031134921529142133447361516890876075218778657289658025856538938651403315015532391975715691856981941900305276879133942963629546122250306269924933858619158394782103356269954705115523729295045681211704054147949992295112485136762738228067032600867480845119785980090172448983407008570937981168326233687168506467204470821851825428259322822214597225540337241651051919767484540029023834058065312733657885574487726163372705923349015590991704054126480495356176818340631932237909948374911670064982354059636095090023371551294772917510544574579248981802403885818994273928759519937219509187915360898789767166317960260780589922273904794878092720287545378924938123476886588370858347517933015530062260839009365646635169342103110052271967597089682176966491470720492476194929431666892548897080969042351789337829267735958892286573448242648477965293514186221494766846138904132460196751876949400536396354520983474179723434144676637005383938819957997656279223722158607435439210928794820098538399597423348155099772328203214105795789527917112473095796250569722948727798547980813485675009402808860130643215021221433901968288344634966748683992917635925719413590252818363563562619333541494238679613060654583051791666033977794807711241804296504479423171747291637182870986547011287438507290895581589928467102122774862871579539767320977626589411304034712963087993505633194339674570649809530596963749765468715014927349916637703534070713737308115551074582836704394312252422562996581844457029862898633942799626442594637863882168467785173768574559173830183602911785594760516592223475370052242447316187841776178447388364570655289171443085378130053729264399636537789723930511619637772630900612876908530338951175214260618713240262544213484608697115468159896302844692443574127908271707618374650729696796689547434102105215153416581788714493451219705917240864190653921781793771361385124085958936799033972504475402168723709481610148770484242799090078673755052171690041714931723963446652087337707385754168588191513951208364092035041100417296547443556868636242157279912825131544062575590010127809643349887120054697724092350819981547772616852209561378077982498801318050555667451237579665567646675056898845951472716652192028414834523482294917848398284223859521899022270321064645530715585200832323477049098286056994181406086274233629037331511193067814359799792782270892798039618087791754464322529918111391579974102039546993715073495389991700348075410763542232328189294206803186212692865974774471474860441309650831360837887802805164995409571942721160728764662346676630621951126629436618186418068500058360915806618283850628939215158229364462222463055002503267366211604147083230917355615949395384936994740563974138207792786405912151415962168121301784060124365291934390439534157963257972395555843371357220176191875786481066867758922688665544667440140295752139811717496662425547368945435851768641713687712197724838543401315073146402010825287986821353938104326463626633621480391890250170625191718407436399718199658964428579768679012364374190893825871504501882871896199753873111048455917180867898864919877869498749285752060817286985761076655493577194406739140044870274274505122183479748630120629259881271234728967463518077301419010336537351633544091128507431640746979330397238252245091750339134337198394480712574594293662988362605807488851818734567818521535137768738240357141523988033375169736481675372606377563466519353731443004108622562964346924095669633060368137798103446336168216029386076056674322192652797568173771636063451757655088649268486137251678695432438075816873972872695110404986429616731009654108310791550938921816585271824859413981664227070868982391758980815040598407223112121322485174988332935241584655280703255427981968269369658813799973764418713983359232172654287242042153950412782334782391878209895796862815461467515727932965186022963964633563125970553879122905299945063037941665398313972596084283798817864112120055773056954199052507102612740955308786109877577751457322881142552921183031247082867621624224936779965376712222344968749875519104898609745209651456108246811943624495342217487571058594736251801710210537833128127743257195271321078973896862701278077737086656719901164880789494912993830314475249757270046341354583276595346469497743957193543224254870306602401937414221952922647016062810043644835222461593084821216906424969797649606756756785454081071504809264432624824204819843138362673707305093124288275859198609043008934015373947277676728428956875812986197479349816529429471176805737016888946006291254630443710957150020079893273624124603314460449992471343044301132782629372671396329135276386003192520295638401654663413442374398142514939674450740996455991702707693478144674682225064203555225936157358688143853072908417545346989108023263880328896471281157349203032299582188009345130358143948422600391049675530719499686527347787587974515374854919887432726330935369179319424429701761340067620337499726048245851165613116121218722780121896407190591510589542764638671138263839912137902900970146984151165721544914180681602709530137069197922623729409811409576022018173734717159035087372461906668840013344092543722034576100540797593579540004356207570755310561946661773081132592181449656665763433793959058630293479495897221500809568599799389844752669359747094501307650891301086323279214283021748691539606989592857385211287292865476741761507081985408831211194683784765045863320465719706308069738279588634242123718217166008248124428231911154218970864791765718150451097771160483588295677942088242487154929667860752900420092846060453540321398844847731456005674952847895543870175334116488262421956129890929818279103052204073088670679136604308104384174680018636621410663963516646932963786152841297182037155587492403160026836866461683104177070409626892901265071564313998611945347584097368223421001230262926023760893342449470813179994421959989277610346014999848524322319106590871216579059079306448135191041071564913103437537200119558956805204097346469081361133040258886922526628570653493695867644103399447614346893483486108036896640633641740590386946282939113295276115677970157885404085262319327007538920759462772106149219861927576760600498218383874715991424441512589042114550687875976761960871202537018300220278777483806471095341464986792442179507745820007171022394896716926276010452611628137329441917527927919426348456105907808564488299878307285606144224593915541229646228191343897073604467205926838764485232639928071609389710528649245271535589406171154784790800527428231651699611437370041979940653905496164028278544864895627697664579752490292653606685286858834500737858571381587838011555849562256004593879557179840430388696422867702421620749597758052863360002758899160874106207485091141778083213263223701745080430696236465222753333587079193636559106372156294078611560530961900053008870711199776261757625807813494683262181944407203145473951502607408342211801980018785154234373712398273638831291251125791528697056905799061807899911761971766299849595822621327818389380783973060345801243073881065286741085775887703856429220889877832743293008971301731674699731242804797653682008593499329046887473820458529896035591608816410194630880097873536655016264691252070912699948931141468825054311255276974830916685349545741794230657304688517050668721061676225077938931354483538909126566328670730754035615063022927187256563563381975173998921249723786245476513470687683204979880469734488909983044052887092781972340119028274058515346248039193151408186350575681970289020330913501749429886446998079742022436432076238647094344562441728302301757714452711964230849058794024796943805948145026987275572888534822749853483182156537025129226256904606152034512995442805790215983937673838016130007458077811791575415487054239688543316244807808941848587680297508999832057190862187206249805918391095774778601088623339456774533852173221935581590055543483508505843155425088994454550027774827332149268188897448689186337307716238786441668330589364966578770219339102069161694732004423588148389292101606749095464678632404757569383438256420903855663950605186381671081884944713475361278496369200290303601203555243966531088149742513721981552361171797318891962177866451563016844825854811967792170659456684493159348921095363666382789991947678677679735679961513325473573314114324019973766612990868324311801211113075425066503272095958172951003994849605410949366303280341500330277521721024880330893070783111532989070166035803777687298796025192551123281326373445694526699133349164527229582315728383021703292090130231792688465513653454974737479932625478678009947639668027004311604124072229158997435101845865605309355319824076821995214240220850008613120213187911158268615636211884382222016756705530393446475039180948085560168758851424052374043285230475130219577522873936967351962704189179493929643320159929283829844951937526010160624965467756187122376091634043193190548708571417775910082542756272005184907143116434962132194727196103532171589220848259805375249917087225266161528788670355242381528123491833355825034792632991653699097530060383998783535105350538847714852951682723392311101014802047930003813532762691461566635649065994064332626426067369447990012298094201706332902062517643386226243471655418314700278547400972396551462044680908041452101955854871104211200448186880745769865510568250396403080529712834506724624047670345341548621035616158045726362543472511526662979827359331556179425958477801192817795338386295471529755638595185923219178214171830459539773553331650679893103677352853258373081629398411421697912901571975653938859262286307447461242757258147375153871153229361915731662143317083769650620671025798293243455346813072171037589191685515340822477007522803723491146701016323774142362955639599235492101078793808725560413494885734547360554581537247146918563554385975226366851610601097051190511518613126588992166242284572221830839660302231773378247327574132956231604660630864811821536241576614643487507670305091651227346136421645282469651370925726759903157495952739067200825498577532461663704757992781749479627806570397960735431976559472931497099975060652236324662822211293809229893709051882699205167361813806715980961510280472336706992044684680098947445179281115113339683483292046683202802930621179080242408550265714120801343363550014911760221899138674495217143906388478173346484919131232054810180262295057450769260695824247053226762271721720895931444172128925925429899503033648387046558416075325167726587050644619880029381542862349720217517436981283234523357605308490342593929952804528749320271799586522444381926130680370436043377575335549798383782874812135888240348396638645763645179021727205720007136937073380058283318818394861864324725812321818774843685194309020047677910288098306200621418559869518047648359648167560411733859027808628231620511945455598628202259711191447138413127014156756853493386712856252287057445596387523619742905533965549742656539912298778375594837314074340877096036824042484789544177563887259389343554537736966206728044167513972573429607558035669865995500509277635926941458075408346192401097983022358812654338771283658909537803254544589243340052483104613639803604358179489900512444702113983117353433726311235018236166129303143591852891649880004870798747075686438371027998998670045241601142528970528165988836483412113797945210541899038440083579703775195554661326528198609205755094795646864465330131061553618343042674499098652701420917159188347846938730063618544283354224299600848527927819988943568915760116791551136018222756745130075957716694795493047457591193499218949487474430433253695631095382102998836747140180560124538140628672514111743802125085271481348221527756934200886047348439116924048249900326651002313726058520152653249985945933571906272766966766956441391198720266774621887862176089452039427244879852781893134928453496266050945457730597619138398187140396176499987691750508643656281698765399231765711570803324405872118262808934377751998701759563818197365791943678070773240120424597670839638735049225711119418594722074794685944675432892537377796335774615556432847198529603907723943401155066152876959701806703908653921061364329430639533666985809444132505560415910611060603891693361416580614873988428895829839177006205840600854943462884700516719087075565143104105485281752722111547502171533646789101065741738736913574552160279547714424187949464608978916083450338618531510748508081057411050943299143120076677553871210154020822301320115054716087769641637405358724894904101594471545398364005831764602423479072296257704787912691808261229854951346092854086452801768855276951992568243157282292357064020685240805994255395853110834127137761318037696753981447256785446252867144136919919049662402937919792541289029681500412779064124570534052201874423664126095055731372490499305610816795933131668413128629611934123132138070161743078252050034768630595671399107817050520542503260305540482869845122659165088120960978628493455930539232422987538434219390776818254742110056578587281113458769991121102988527924311173159302335941539956082361100720275172761257969311954964361629317690756176127143490128992988078514269013687625646112863260265721634099380204338421272442470037982237220632870682640490026696610890799223235211163876849320552568755945785072675046733624676297791997681470549173838129168055747093083259629483804570231120522978718198707588053126230327216343654773869961460302689602332411154236205713233600462670394332322370386820034313367796571652652082349669848552958376980542368142052998617135383015319981035316802776630729253093387815801643998553296810751600025120659909994958146740319862728754594930567169372076729676277677777200155276706186716269617456765933082946841330715143649006311007976230106744043002055598621910552141610904086624641010962437439486381412632423996452620605002472266344441270247934329312962126127226504358519321692557308508836285836350361805018815255220140105791296237193293467544597245227815559307989883519856065436606869529681150046636532640352227482809562405863530907644595367093403255407946368263178010624812876208557658150595448684806118239962615245394567142716505244069404862650459871076132233750074931899676608159321943114963986636178635406879785396224485919189116239566441095761191239842637267629388174631804999500895729085003728984998603771707610653085036461887830233997677750390077297241260573669781891834223186793047713166804216489091893741822913304428189613781690080020473517144133625633042694300197597118480762157188797913247072305948228905951849131983652456337152884532702418808285513510402540882828171775545027525187083365382963381394474356391092562045070511183475627956976219730683072389740846074436653333318097149608370225310951537360214702154469145627821909644281349427186368220850205418954306512920821375866294333069819900238968675447006488242352248595277488970435236273611895842337363495521988807147678626103305765398903514105452619041209133563906118542308600474753027753406757098493127440499900650475178264257850614746561694736875090463300693043946533971305735692373087042034323182870501241503149080880284038431117408342319426005343265455537341168973470056458183617343165948443911986220215691220735068529467368808141948016158904505278379758102980718068645036542191586383459389946182044722748142603765933274169933612593843383315616438766209001828215631868949154902645750801907442388358779851356627021686393884721531171667533699626083006747099398535174964392260207402945480927888627414434068466296035991762897731386437552561763163687752540577835603085795716365708948716838000918001296273164730670474457490078488209946567888054506870702951406330036567372733981597922246107904595854275524476767062065799502811925213003599651784739067109137612032189623576773194345557424980527563174580651719400460972024729077079379100064688469717875217170535249180259860784891914354085448650241905150860082617861402965824291919788900492108660198988156007132502039985478211320971624468401332684408144528545394506880716780595238351458211016723811124265482230991950571821766047197276674312922211326391218193538410100391368243878523155765843327893355422422723821914770153284319226183318734124926613943819949768563182228238490728475084283823283460282085634352392475468070428461464509998581588048116025488116993241186647453584805920211408203544216843802271441980134850334211396903202801169714595525081254099654568017908594338643570330658412602563317872670632904463638459154008030751374936932733413361631445861442125414731794723861787941167929133029088819439931236842604559077380027865291645195970277081183942033296642093008040520291613893406711406006120042828846441420094888853775673315867982806441470392712769311376873467874909287551525808337036220355957818158772201241797613875051399797391766018560928059462407591395945805471269619505219508822240440881492735779628957220707705803915173408617576060215178075014041447480793590053273089408884962409494426811681986485764031323760480069878386593742592434551928281821853715250656442709595810617742804063688730225181877016391246352151215594316582568313644614093563780705884351918838248090456685712155006557826847089791080933017452969835474102087416473924673090084292289447128940813520503198841061765698972814425354921889750896145789821025782537472378474095427194663580342641407278693927384130560409907418189512080005822622565752739409814009198833282247853934635313742765173573705848115129151046326250642022167331898397253359254043141685384726890071619167411678488157014319721334874450993015732709477883466899151080451720847341298769284735481323109640653061631217459726000096804432852441262090901784288990899564808709394928411921334765924173296526702007702672665263100646108633876311946687125218317473955696360599845020580665830091695224406539961724957571178176635771872189348865147415006003305949410093304107248021121127176227960567794402319873568191400444090739155471042023270953578107066694738775925761843911972999527642946255277216180549404037996297796722996551918226000408850651861131536785096529528565868892970848997225536480492426328110715088640210193198657121646980327442113994772051830436959429137316232943033260901631229782552776768550494610935957381573542431918160717847257600674808240577555737362899883758499199241366276720407297065476160677978726315843756035692396721708746632967113660532038286208031173720529901551022217255534176941025809145707648621993590570214989875471024585321435849406299317046490494863213914846840223394272825772827263605317474237012453401411047176547088095799528947447349846401727797542438062085470206137517698882527942704962919947014906316164403604182069916130208224720755931518739221737069288412219060002042406159729270034694889614249669867570232479559110443606413039082264116510053997881674711570857251994661611698314259733544144010023212152157820750114158832686101325692843788433984775192125517113672719330419779982712167715726067099712685127294547022525483408377936477328974067803452626542600262037074902390276590954936939061411713469814274830435285821376916734585611022883174841194007586844406203483080732799634621999590681368352515298062553433548392621797148255028060189626297824048805273214695694416308994235350066427604838848397366795298590299131787702450815426695385739562232217030913715750146956713326755511964249454221180257792476205759926831750253042339138169314488514898092577627270144140826702269701396298738642558823691850217945753888990642757725435871514005142009382174748355969065378084129234989080135212910056467116033665486821022454401001347757588189462902511500239049253860310087656427768399002534375561027736843494617588742119858759312686952839539360920880028151665389011651523134425093483391968157108264811798087961755787365906507968164594682137330852659542511467082003700438657009343638329204054907590163809167941167008035364969803373668418379030399864414419397976277160314470109448940579240034679424197613894137052417244263467944953059576729200843263933369750982446027779382927126586181525156432326143095372999557690376022751917541470831616798550885991636016170878160994393839765750085186697647635636721618170200035116241166755810916473575726881783291602250237061017560206603341921259734833599492815222932110844580569108049052819206223127729759208214498963514138128684397100237143249838179338981488940694107719845487757877575424131315770367040824768282538198397771119275085430938548131127740569742434611034899525500556523293862460346764097553952520378003270939182193924725689813603002051903973759875955209504492931017878888968608166807212587712115246114969350680295527520439118456856166076853416248939581260077938498990609314189493308233416500467610371853808235426272891549799749784107286558842521063096515494800248092968625253931924177432352991651692770537275756893637366150513453485043923123610512953698216614058090610108544083302569263626168688190752396953937587087499468844024097105252182902889419146880209298042623100423346797710263055519270985782341133262563594495938712071756062247461508824500106119216334058022841711693321988311281660126299514609796073710746666154692624167576650337836836159172735629861237406826113385463907999414763076474986432553237548691515142548018130176539961974611298594685829842849661262442931650635151519040128743565007688818528895073783015290007175608157093208480150460863187172187017576562491563304471069721704844373115725690720030284808684617935473063233407613155434218010561962590944705748981589882812011757858952967372468334535025060887254048456961376639806227017548296870864960681097054357384365981244515089561462690041025930912259430283672782603291759108132663359961179701413071552373262605971552329465590021480417925777794555211361355785310892690569003725347053784051326681572081454275533607904726483237647327937908707489286068999360587603673018331826767190950265716986300047337830590377080545260959382690890018576541445769359152532733179781932492582846006879398422365181307467980161587204149484167630204962249578582724661933826160564231073018683179977643707851478073556257445031316462774726531196925936909852929221270095875434965446061956739288553198792209671763511519184555500283614779491289616159219191057047675335727070619334815185167825122091709547250863366632902358893866790644060932684101006812781485052319897255381216669288513890782119143308273079697903023333358296017348390766696257792732363764451698443425737034725296855525905225918854094096161542027739442016065181401566014094817004676529105690140666777205069739387137354937947813432793346223565456919999604814822236771700845810721660157597187624478690327387909334917764478352732512014570835157749412053370611802771152657164297878798697207311309645625040723725041770128348614992838412464291460677916904401808148993720801519511577720757302082181685978651342247924772592482179071058204998068736178564314423885663074990479397379775635566911000485559594550104594578150391836143464346738667503653876796316493902821166030013116517807787663801999363146422992906920783063056111371840811635010174562531447429860641452440167516222634079626677476648961013367980731870273611854538621139305075577939217688306409695565826493061352418154847750411283332163344502907550768687663755176068393129619525844045816897984870061653814219961738641584115438808367038371775806070853379815551079316495917016039246084069761623107019874705524800353198972727590858387816586958585840063459117814070834873402505349682207053417850100915499089316423352923122039731225242451771112415985343145666555309687913956351282148198355905840755806911130816578481823405462339009404627782261865695580150556106858301766232767004509678218952038939707305185722116163578610225486114832605532122204577046786880960661729375886131790802530597825775052473884453225265805038156552431753594509296167090244923174415829023578824922591594129441130835454185404269766387517957266066630300038705763307759176210012545702781664838985809862753062783100432966064110920478957210040900415485864679738918876414189143368680419459034503766092162426619117596408689605596540002370692413871227767510107490046659928026041999832574587763749952892530450239093817719095471616160194329709181707835695454346122962837164060411399504184359067910657136331955518988937730526971194764416536510885845119975163237822085616100115723623064051991931707875233156932446176922175999773259849727665890405397751219160654095739477487912850114453166467914993402617873522866287584307132272398606363538926804262226806358897827524994047565592594442369884327513988968709920835110518558184830166932573884733400075507614043618628133972179044195028510626375757141478195397290673036586377105902765696342045898233024749121551595516036233562226946536837645454702741765861222307131561062896308115601532675322594549847439535803561320322203228973734267574303352191001575693513859837929026839051204165914887128704238979513258301038258738330041767292055673536732405884352269338049338908412376561403875684497093287850496277947290843123831500624436271139509213113816395186205016299494430729741762485647580652042847549605680292360514207739648523643967602612430067344160908227201134800193677224524512963502804056922766773455914468667223238843796525313692999568996156029704106491267886714145975317620910429284504025457584753707873867633117985360560421955523978439117577022563889996028767011068586230522069841773985261773004111133446752534047431535068863766095680054584758054671484521717568888008610713704584144043995591677534116359708907270299735870679920569262152119183708075178838064821831636115985425760547994056747535134318699840577909820743642162380457091236936380050869499295915596174322189517403880486878984770124311984479810720388309591824317190931176599593303747950181551640135856035579929549490909233397375605199026204103186628886728145370711157388881286775800081538496488922513852190226030405981918676320572450460153473796674710385134809319753953040976845460205703621048466867629722253906408363818035385249222034521531747932915785136504953896567466390516902490086416079626276310103254627571332395017405395049355946663245950612777157580615422870204854722421148161562239834135752593772321524606504719386562495769181056049326156526603539522303076064098144864056089256747134777736995461346442781290534983038435285575376389552828504513043189568717902474757047159005614065790588016986269269230356371581424866433892456379156239916423848248958343516737746865480871631062833010093199310740016731449593221063951585420489888779124301702210014300750233769466721122566248472197167994648519141486460717213722470086172676842214043022424838343159981559534024540179308212668750607280659472833076506975598949834014187651371772403422473669670789146462248171823106563194188202535894356635071456728367005617721819671639696695932182795283683204126729871022362451104428295853065484303341803461374562128812085537480722926355535905807110051309230225635802655739079025876868209417839762753845017796606056948247112155497321306456628854781302796584458371585113440483137120903729413753501430004746517678158849740646944642208350578336875504889975108583468706722287045627233120071719979841996005164364242300710695343054218912135269959137314903147992154508326648773109898297854524706409768331323605713958435656548599097377446629911484599761016259880379555175540261150328760175543936187447775055794472841888597434551889948655397519165005040161303130785335972368906189098574440675716518810768605354520238322623932615618562378366204720911258922104871217977618713458874429257762121333598606575814321520137572257252396144661953428876135730224305582147815784954654755194140106808448720463361236605161271717695759366550022549399384528585762198920334122123076805446580918834404669679435381317508977560362827020393495768916630769137214770570674198792391344799879049458341513004603903601603315952751384335578619907950569129813377764913344542243094986111592694664539005636117685051389322438052354834143986796743726809840228227412977205682545592637372299314249337988901882488824019310776573148368123957943918951484805285093545057837773207677312617278202215522813523177681941099402927570857992755142416586991296742220173729573798131983536239846989076630761944751722172740217507080607794600104715900065595980812535669102962337870149396075583980847875595640911799161336050002321089833679924288841658392247719513641316621388010115585071444709363491800825407931677935212038167514763495217785260713382122578536527242403248880259800993325346541518664676238608619810169313615833268632036852981013487359621656098077831169505939457966762212053022432371081629041033047063117246803283621919423949633416733822997688528907279641552299641077251538059899091622647311549863603645532329608514434647994268410753546921019389680675910622377229223970137620180948576163426882590226701188783930056760240956109091702982495634075506851026724606008488054963540652502540034925879010680006645433538780436179564608848895210981076155409946677713720636661662574293779124854171832122643840400598621164420320529882196939436837757604919889204495407033224877688453947033917403686432531749226360045841695955321541016543970944217859083245972843045848444801790686389210236699616293867358719823757597201133762700983150394784055716360128711441927249770727291906411205622277539439999476440339403168668135469956656126187772883416924825570746503271381068921779110040677919479112680938997122856386308501292241901680261288635412573644849238588401420034541366319954379045662420069043302155846917628599790061532160897672671842027430085698127608957833224070331422304521700271523671840725333016369679683864974868964740493935653272234697151632440406574874588328070068785239601426789734715980083100508052658557505821332490398578815335571640642981189905338282196233883688512511688075448946014268628967132302383924197223229002059567875966241183498229516500282368416413190558045538630557431052362773931691312169765165046947185456944540953338132712360531885849605403789043573063546054136136549568905311416913909032124086137415231342231382157113300774288805612764994731460194758897470771168484504149064291260560689181524078180883657989457085935123972303862584788316170350829363208747188674326580727883447209963876715702466618818787159939340133570814310178014585953384756614112585646239838947462058011429255787758367510207852111932369091394153213786325684489847310088244245882310704364377251737605466018849496509620660199804291356657523961754110930917183641784531311310657625159024333328959138737043944495961521285332428663183185600192243999619743425387334305261608164678719499151600799516983802657814520882614377095800695082658196038248965326954876157460978157953034471113567989617766248834491230852110166622331008315654277013095055626938258798477770484863036336612394303238288328969663236096051812548200256126136155417328033955139229268325221049133876793173538323713344777254498234606316374570594930298569093702804616177034547944588707336640737226444136455904489989455049886716233987595138881075694396045525114178194006481133299013906240870857318610137186883128326459476147207002293968102486839303359534997243577692153915141001313158088966378956131838610011277833365778110533369930843064177040241868060276095818450422874501818246001889368600616251853485256049933379775706243399462014585586615807374646857583553784362371591662422467935039046406090512287180570534232375317872468729142715111044306144522224957832440034239402256179666186985813199238894839561805602674620822005087408892190193849348535401931989809777135046999631594155532513659687338836306938799223440719942619992766049376869310592685857072101288378871004493864612732370733059748014076401246438887447694309545663682775243774544876790355944443438148912474245160756004444874031260997758743809406323445078629937239224228277404224570116901606513702444885414355932571549777103854310061499837723666646020580686347909934995379591480693769577374338138144836047810935156725904152644001647413194549304668869750740497130368522163234009373832015907399508109363788407120809202323135433803671914790098281714872457698620131894991872531393244813569342774019413293568263999215510630145030916571270654616028619671087040506682176108708721271809595817788021160446247057742376083237045637341483007078871099359686705865069099488775900695224489894579680777748920098961827803144355969181175952653891262652050032863747161264614010924055181181313009997653055371496734481800911592895583115383081239028781737595325447164882090358363768707189812539489584952817968211079661281134344199418217790052130536716836414011402456094302017806573052444369224784432254132643499616265638369463628674236067052508391110475424659553845702556666234698616678768732417337888112650332942985360271860003216643359307805223074036007057564676786017373375252720393154630780199902105319955710063668017391154478807750037099252750266961475102460414374215342302669693107373022341433158392672470972933828951249035941058760127477149201742540175319754039124415369722372875203173138353789374741716115400169928363524247566772663675375611110808487768003415810202679385945306033047155241014562754979708378261562280232776670507132491810078630779560929580218937453330656846570786602088079398864517589355907574123489882088323010370751738734289361623871280175980209912731625660807065515252669172074175589149005501094896328962777978342840044625357402871034583757103378511882685237810533640379361093106253361295679404970031867603297564807655986193793985964433029026007848727821413643677784526331895070362194963774817055302618993582837447245844806653758650818907735979077069168415292387280003284071380409197077879474091611482072077097351786094089961867358088336866082336569682575062922966107752815192511107838768363802830717727076594406173048771109263026696649429707047868781288110962327125553541236797858872896907707556350298973768268391563815099264974236848238916875448564437889949820590692456897690014722462352306704026282565627209791006903420402313685935411528061243547618303446492243994233927335225504624761203436739513569670942736591402654943422494357409618398304009743382298464657524600485584284757797452314655413531393135527807489157016150934443918590760657483024874344813789476532055794399012590925326464975024241172469228861414934564830963628253275728922806914290683409683591349151819029030860428211654751763751603460427064666912343600796237828844084797667449673568915203031192253001602517936539736977517496501295279014128809559349162250898876166470662177901148629417103976747994506592088608191251135661243146149082348115876150336216572599848461392994020329703824735084231438901465869492698045338468930649464661326461901161545282546757673471553155045911603626301400516084715953445023632557615122955707699393307861283519908009648966338779970648378853560523585666496811476351973591781305308394876960495428117215704133446680507370862988362306954595467750752448217022706439598212919123225476346486853477628122994190688892270455974536598844798413301751302711530019706581970927071885963000711498110610609832101320773326990826246750999088426978479132857794739159728923816301982959386673143978622832476146674177707706733152601959262129081442984436235625564559049533481451092719759171187328825474242388756587452416506094814757846031087736374444019817073041084120168142409765570945642265088164185663871890984939002711021644618887770012227499919351744330178337192718122401317676690508497564725099403710989539573084642340165634287787203820217859885749995339544811498581813365572982536915128403906107569105774986263447651774922026667542165204012873603247463997922284253721310165717294780770304355556238146667319190187554042142700817448580524696726832310801168836802668607819426011070969336620837197214658117427138532683462584601706669921333602372015577838036369657752350313673187348673051216736925068420633377362061572136249612801970958657722936159341868647393990057897668758720304398128374532327630377916707810834302768922713312509758090124088040588800091937214964408334271357102153862705742668571755123075135775332230275555003867883474089805294969570002468292530177816479537209464581034739097801763182110638661869435956006623664986567298044570782987050550568837182276356875207349381859049427943591889138717222313490908798119399016776945898343842607173307162265016606851862845177242135884047688133960293601239565666648859167386873851628302171887521546289890863596307482885593843890720430882316529709715985270457264737468619796314955833601178667317252114080250934600290539873975472720778664915238809018400777832968684246334719066875616350705037351336457719571696447728270416334893392250479600215333314118084273631240087055889647095906426995049001966617599468450337016206902069143786663082385503222747996381802455025911523254180691706879750019153149051017746076881858301859782030158498601534076613119118758463641537186841618018321025855581392701008569067383262590806789835409037697353789645747073702136152573617930680780208606804338460205631447787825251528209083270978628284860174847939983747915065389345324921861186228667031800559175759364039415085783862527061039783408323929433384477473406957431282849282430747325175717272531893571932165773741088683918842201785348667397961204842973610480652893152879065690219527620905394234073643267660572113977596877646811877520097530148213728787739371397363827493110443113984490103301903601324497125579890038058880406634903094088591195411153576703982036037076183917423340834502189841743692272309317994598748805402178000859195412915335513078275064241448428833873891875608586254111570143254238578667824389819511594717620274950336827999210750801198644205476078014870334774536815181715052748446481369447565830496130323364467653683667644443493264368857104656706953131442168417415868471652857305000452891452202387355519409495537893343112669861764649621988462468830522306026707889442418126786660470640961101685360382022457717757954802291853989697611320138529282591351057242968705817759072181859294453829583571187759142216207825405230656118088042380645825209250034653461364761949775097975287087912823074079100519217186541277332328901154485412957667822348922741020440165451500410996678479719044571410289626111867353749022158651691982401084572224433441681729523120253815667909098526522452542649387528602766003620240191332740639804288697552542064281046029694772498929798471429055033639453506672183690534095317368015496551821354245838854628407770071279649619881358378533566161249654415467277428021725157824080399145979093616075552279609270613561303680125005034021243651985348461975387532982239417262366287722210605124306719641735783986868494186692063953958634898768847449829851587300527859504129198516203518929526969599181025036002369591664875729619067907063167907404048419332084639347848874879437005860666235455898873925139005107431940744038027796921826253569033600559160900286160493266665383373749345744820139756392058833708707466477264648948992843105747062913897826895621445141740159074986901172707471530544773250000401642402283302833706884806519811206788332095169377934184530082932962152089080535469636999510271579209998953502944936148280762496019314478096502137768689371699176387292255060316454455930031043364884395237505375825301262714332574552998357826487758010911648745315050938687303298555276370006180542489700947705847111201094737798093611870201009265321913285463310232045908674147777435459393646549230359973497374517704546465908299329296342308915060180868531269991511901766159828864350598404893115748296194441641094949264150320417238942818257946586495639652655734832083806498227031236288105109015037196393194057896495311485810626895680325397972006434867171472339608064112425273640577140896198672357922365978000747275378397786090349930007776255274964522506601893675503978383982962514690769180119688948597254021429770991794285643418330750022262367595207448069222886296892031308938212371882011964569632320799199939391230662803380666274112464757804078997132266151301378835569840948599640540055645391574289402296969447219440760833031579549385157044061102988523048636638525073064128108091052725842714911161720218998355506239470460579053333106666089586479242853877956019709158909714337910596413125147891795355323349040186939537142224539637834675271648758076190019202944139151968040117026097163876496144267809612386076551390536978822127868002442268237250854138106587027052456139930949110603009677203240701241878468208766799284305071215401312711997709586113081340365216360361538261518160841588201697083767721945082886903123293493510368800914771358400236827819230622730719449389653643355689835126902013944352759261719037204617703064700900116789984206394065973436838869593482513031053378340693845701310966451040589929388572907733178980686712965320337620973614407070821103453025264267833382839597423411577745149498349094635273742696818959986041050197795671602449447658495651282415496217330038904976457404565272426205740308210789556362077353881206151946271928025079733201163016981339768885498519849066432719074518413612138159593216913952068803860088479665427383368589226861970159345188394182106323390207954910106267423604096476511452358655235649667183558066090223768811606116383395690521405252238204626301469927763771917345134282081890446335452116676957370956282186857796144078503310151041860369868481604172322662990220036189700150548876712157430691696199146888487837231125410243938607255511459561006700144355125781772704031150405910798935549635406380622110496154107082434462522143215784117958664157763317619486729329750063400990176917161498247545786893897528652548589958989008510340918571062086747009546699974824166981112676670632956992770418465825642726769183005542697235237994500330719808230899301176300526514537776784313569214264311035090622553672512942615370057847966189465525329624109150163230445729897923377053723624242286955425845084358937637575627883433057863483596231907937444227275057647160706135048282746653022905709811457426844202506964056599878556485913379245803652636881531784539733367714155601863280539402113585710796476005468257927741291272279760196922171534373842617319291024335613287028316303718335452324385016181658089719991177730533244328238690379399450037107681052632004720208007448700110899992565511160526711734112687729447200208242965636395544470898843248809586092940942038474394796303263343528500193567532583059087354929137765477872716004439464696797502765750256480944819677814414714030691231911511263448311052468730583778135844164044316852202282279053030347422825236984816763262992166333013898766530670624949483431827259466453954030788818901831132231785730615484921445721418465116882850954832659081128562013077413541809747814891366442917095815280304742933456481044814206450455886513818186811651307581536419055509681161508415743509271721432461609383948450385710611657527030674419192600933237469122545224365602064402417467374461960080619368049823985569294328709984583097006114608269624591116648617343155067778588728442458036595867427689209409527843078519429195770606058866825764960312827048964915279554513247460628837246679003961134876952148393208862793350721800211347994704878215433753190344845996095425032145233927296191509746077370686376117168522423894737053654471491642501375396758655089450514706691218013820747422502218568382307627447304693401002073906832705716258687798118778361536359938283960814079297509677837125677659294258420647610310845330821475237498854336192381272717548726299955758905880097022014363780482891696553486613647693664181079674723799624100368279636790623196657155093082232982601966106508059982438299903682029518844666266804837407990388859526307133007897083849030323178024957561488543685379708246415224680204894620657352457288849678137307531128233554281630910338888045604821645236824105919004120890657529463439507502396510932561450253813562262096184774216028641605129784418816824123519752934410915595328149782056690003677160682996924181547711471655697134471557673665253317872290786707842070585923242634553186220900820936016098523578990596041460534057832742421682984515454741787609179023804664542615266105276730841863160373501516394824144667200010853385924195669408662013043531592244072927987996394153671931196439341238543077918733000662611732414512286256685228963360094264923077053721462505103603519050053825486664444978448369505410773109207642502268956241582675428448204234022982167055221998452544907754178726886838762671808179161094745419390854877693848401349503421550994448360837718189320744367979590067920419303365161056580170804446787175697474494173795493328254010678992652558804298533420578169760287827867591685046094710956961258816955980637950831079172609361455647920831542047183709162906273982041809708223824759019142922514601601102014904875724306535684163846557114229732978944141558644617090037439098230759898363967807415895146866287101704007723727820043042117615853439943123672586610530393770007368204549818457752865114847382096589090602443608504513373703224368748762280764693134469547121802007135798281937709435528206139445343879911924795699510878590431167717013741619658175540094534067846602234990513510944302643465367559876518667595273314415746679175149264588590950462755573398149657211985166000954507737568228438593095091943648806166758142995644089405022040190756426482306794288878868015812741432303876881992884038456253261519337001592895482627846205547441456872239420804139605084950045788584747718292827478882691095647165084066098604433732136859986818941002447169088681901016531300866873756730608688219218424509381377617062695117555408631296923213841365646149955910029360768823855026941777449919005884597762127927609067138723439374193530105380552088938750329174504255393778982584592729876632298102583054698917983442284523095349696387090103960500556705739793107259295711152632585328633105705246801150461825778087897744691852590044003289370807077470429949052760777108829967196997533874818911250432099376058739797596521360376800361621896157805944978121693150668587356714885521786300081125969756229223370839590452655187373633509735546345139020164125983514683144321603659867827746531797975521747740590494128528074085351544200803801650209269861384250823888916407967707875952994709471849597834118846010533382721758102284997424848963094655575645343265922797309373964307692184956578886408148791235604903687270001327892371653900768244942105919859957651382299647543644764082956844400546487974953170239560678329211202048411040559968048279534683899838862596188799916725661831527711726614677746939801775155501024004454470847323550684122468416226458289514100207528676506915930160226197196414518794683780415587821249167214935926741167127716808559992062083013539052433456657465341496053169421912319336649574817954137378619233974824779009322123371552330749857325668732036124538342955017212278311260515546153817160116381821257426788911783904604593754400455216902373177382257007936098813914617999351413431019498811448836910896173698769309026211005544958912082214532050808522952268885155618406310082471698521438210925049159940176822299248643310824505345348564288030739208323298043654462940332020720130916984989279383044917515327342861918827763494501774265573084244129177666966146055400528096316485502252011548700661057774597365123180076526725176426928171694451129347224769742006235508392628300546822826699265133334038856779936829933700868404177998835798676386449448457377139523938426092712669851359297366085463960950168164729523727487019207404630416664739208177655113636578541018502924329216838462757717804336960675530364498834515546162112885161079795568485491129153076773952764693483643666918927648490154660425994570628954071962209886957496385259508007630750813044793926795555346026229876723483003070212411916064568021327247241407045164337124422714565483504197747999870171089595091970994035899418831897165368597959430494768563241126184444929091303678144979722686961827007469135150346877402352072197754028796767571128728647855612589451399282221720358144169730892611901488415690689524708568734948842724567784881398590005611207891725231701699645137848703032359063314957742910451461801331414723417651930998456892021652297951535016263617860866605601407507610131994365533271246133618077628870657229006001952370374588375515278350283873165937033035670579719899720574973268303087886546261799421960539686922318655584331522015396511478640759190688860480968270794714502069837643396893866325360188030732119881812575306122843295860746009181966345999595587966654752508935671999865995780601541381174656109886507027311759155294197315528760658953160994245643852974918646162207845625878914094907537249997125832028437114953793674708063584211206713921796477658271961371382691309673252478590147234794524076384724001159311003259569731093568586049905191383588574252271134602153442636278600516512801285991214799564246615446178779865645724633126539988696030806441272930359405375282289923241874836884377551769305750020270831036504756223068684671335751650799163982166872830712554165713488886378275441325593517347796569913818923042565879959766436790859500189511023873573100471956047140077159127773557493568958271084910402083344250153627658354404183410041862779439658115333443267958188731517979095621166083175486318523194078372573835911119617125505484158969383161409874928432969493996843424070297580147171577064630635256825858792476723088000602079339895990458880313840044378557365069668664232960237977314848158109882452082637110326357534752399180220844511968461081324189681302444171202948076797556109298328455856684084283051251468258902290756379811758707665170122072745692175730582342797261005706243497093192637481368760979250086364033888383642506873015932018195308327648717996011591770722200094525994156359243542708879222590914581814722308444193146669202289114036333389840828204564038619269051791791733296890293798843688142831678738213301918678552709240891447522117326770415570206167097361395917431370633642992427616633317176829906003907069622025435164360110203519216905633939310251262008944328096625611130457511599019832252294200008223974522321273385675757850935653065194546438118572441303483799423461025020683824369077968858609389545516002377950401580920518289663315214021183901158152291949801760869780961816808037194373024781039601917832086475224369951462539679212823154521840741475828355827238126988905525923733999128257278398710519876247546990435691633165755355027571311567980053188963884162224113833612598095210103015032361737964386313504049067579800876070828556667846080182892610593024809106816257590620827136488198646672444872604753004291635131317443738017584607446960850195542769033036178554059461870149223976811728061147696460749609580841168873078896071143121196134121607553610353278937557117525418153360301430229022344508194468904445015789688831618355889714617257156049213254874499305757554306400821850089574348086474040731556901727543725109766211685997844162862084351686184162989496651434054804907033596009058553805283478568263615252009527540014210650069521500511211273474430432954808648121055225710998882745673050652605667000582554257619998960629726069667372703068527224279138020712990834677908254783101067531772956091678475758265765030931288110505006643572472475829601030401229684482613631067468498892074982932395688687898067184871178169973779788182367727377144719215673446057811307808125509493586758256556248944340023726979983010017337896093099742834113876121232610224102968848006943840153269283971874935576328516276280405096629576221618827532138126727780872909690455706672136195194468210574140825169496484706552276179533323576490695683612620935594391185070933999645954900349260440487033989185650361310157789481852067903607913358024139070364734995151464827946743047545845426531953944062082415196481739765123576140050630289066210772453840493157845189548642717401524744813686060844986541432015509419077861507891029507168903574006808994034104277385654826272570493377507185269012336109639459568146725452663013541446181659743573416969760787324219372935793047651944958080894159698513872475895854899826233358151144691509530343757633838394228363840157676312059143078276787587261826922346105866011389943152021471498368306587017787575072106428902045262770475183915742056261934820210744931314745331774697330433780129196609111114021988387675621738393294629897183398841183670356243809012451617934763372506121752011305092527173593742792245156692625051889765080704196353669184147295491219663719810114209880219636253206041572744972423581888598290284628416726982711501407240841318722305513304653597204856592347153670400567622730204685428425554117211086183183743221096762480333668722981075608993471615335885113035093911421532353393319031793134366905791269372745876560443298424981556012472348851211619461055887137951420351129157515276401695013597673073164125489255624876989923741775043940832074947769506155110039378333335606977398644618258412387802730579353633129178767185417548136441297864296893518310226581084283651542904364445258443513900272878392225263006685073709698412666746626914763865430924538029880399062507508783350878375394796886233277309143682901017940858572900408479603232942011325649817911850353559300605670717930102802887730898581879855112335598169530940755180230387177255228841090391933466698639711695939343399360977092805666811268465065306567530840575532306973145486278247400015253932607564588528218303413662989435526800051756316852192913182102537930597687230931863730522066683479794532880924456753442432310880306668806755625715526279694803623531991619698051808178989779614830310373064369830791765577497134112097469541624764981881107829575830123771498544071034418001229471281811003654506204339311023677575254854185822532413122001789899414912530677952896335047003926111898956727168162785189205214943327944943910476858774117188488032340651539508023764372509039340843804104926710495544716587714671374658235325607030520879884829083304439190283611732771811506714004322731650672315595534447633301567952314225372546299624912869720686192737395251795720954568941864352688066687407589726598958661358388496753892705689000844790746804567198847391258989146473594681488975659936546322413125813625368709234632831539831903925398005551361322014411551537338178107169080198469099314336384039647559719281701544419473988632557944360345671157461245609295667961010963553603319751157722018411587362730226569246407712513128577419055863253064319620902314038954990634053281540659959537902807297864855639140328483332884677313905369085530167654467642165901694800167166709470802420171785538701521003023602028989081614003387976225309512401799724745927368162350119228453015899633789111728008628072071857750946644681085031021672459058675938049340529173645747800547162368440313817509610456664254680969042061727233423451361848393831961820763017285846105800047530797876955328979448298540795986537667851741840057549251721898421835060243362381332241208061134482945192417124866758935209538320733729282894978839335845170421888143560690773010482174855308620914213985370498719974580882329872989189199339960066096667847795324009288920152416622993371484546648923913781472344994110716811907088814405279697460931636632708716325555497601854694105773832855346532445951080561736020101953102786960054489690183706071201643354842809305216112469988831406709077617660678744332791604289712378753369009088504437819787202083728633220924937862632086815797078133642883815382352068578888403060297277395981301380953872974563892265251288058252697686675945348321671673011860799736081218858615110974224710993070869946960124255597544878007966680637238265375376956090755796798736963690125078897902528564398095258896536327636354230803918703069399656669625841898778487666869496978512951246915135722172282053789512856713622016691961070347684635898502348042582620427251380700008682404897465267287959588384637780603328733967278256867377552067333653980024868764037420531416619485520928456235499223082784395530812507777892686329254900227685983928301110347118730653735164968432163253632556010991365634102802029041843567806057186143930977804703024952511756144907905363302873396671164582175107152211284244001039235859628799605498324660860463801301475163970260594557246701357500822829140507296515079686355546014961223267272356716435466786279383013905292970286116901157538679047580350677430766255905937338232383145165088891930990295204948974719613290976575035869846642830957204541738808729800879398981407539252248451096089069118920906687585700444009693273922653564943337805481529170552555127332839462962541039881308420815001601235954927437600032547884768898613445363975462345402596336748417040411237546853165129644731942759041138015316371723295130912990250992256470184516631793912904736120471770528179508067382029733529760174831474770854871403874018125397027670886461737226579236935135797807293902760095621068332065667432979417263158219717646713541914744859281174080694843598457524487541209234950436203645997315881193661221231585962676476303010522588639165748190553430446677969181993489296084119385086728554987249054446042056640889469934742126570224480164371163489206741893261758387005505232787048802278872519880407256077748137905765106089590445317949310179955699923040521373293260717050595340921945751908905206560178354351077392599949060280153737347919011828041316677612692884065007075465038629421149816690476938789845273876723517589399968199177048310341715878731838641152051619386174946402541306130825588387990876575474257810846009523097806655513021366377011306721150153558126384691792600012918466107317926351409595719657283170961220577961320626808372876666043688825942970123887966268770919810175254342354946688989248946397018086164788497565221464023839814113875875300931864198577811772365398566994045220931685491374033144374810283830743389476173337881674820195236512850546693468272072571602573757581534657103834093209004447409213237915869251722914427155449533815173199266871994410749284646848909987926704481128575073544923475889074541638116520445070259747630986379860978867048244811546726546935077417518401006471698771580121002176241089818631026941952805267499529402077278068203552678368837575998426994187955052634144191522589423063167603297063787981833242774760094646297888192655601151587629800967320083677588355643969988638097486211272881594725570522528620046387785541286778641785817248249225656747603832096006244585218398383926493125783134658188339203599970373354961077690251905800520982438396594919679255681546738377037106601068250136424475954032220911754163578891612730544741100120097109691065392186957593807227148955430336372712798183272614764993326758403498428278281762967450510896622002595225011008750548573589084395181595883173755787089947938083048025270653576427875320146558760068408816509232313084079359764161189898138834329289486760756452896981855529062646496939973222058306948265975049875106634890557719252526878853988460182878497866152453311698340429556821271971561102680258163174956252901610059165501811302980592562773392809008220155570700042459897282488784703125279966972053352829063864977180134678997181163208547277681355202165409893315339207852676113419203804632007726686402127966233789784689991632906298981289788435641112521464080568374338615203544481066536495936701492736867801371617993404395798878470378051800305514803181568591033009880363424123183503442731808299451382980974998012860058743025047054008546809109825100116781562540982385149699342780018424038052722926413805832648367594228488536683444692662640709295190640898451441684583352089351136151605686406110665301361110516789986972425140529248820474761932811211280413880077404675768007114771958330315708800214471039878613109394254446572790997556615074357789296561232639033618964758693977924008094190327304474670741365063865711051946807259467966035424825974623441275093310640760734956545387183346474135327817158650292144560017841671070158340431231312201351083972255966766687547632245016025043006594740960514791715373206452858033052654673312134979691653077970644215738568609176196607036164059812597318240639729796254468706441988103678429733287416000432018697506461355241456746705483784925626491165898696003842135801190550158991331501841383396108332196243383735295039710726915810037246635402052644952712792401611453390258988192752407906466766370148986477387308628805481716345504052575286057758041025917199511600360920162235592178727567537534321883341668999357887903597212331312434661243291652572971728051456797984142405566347651044813357585728420022448336239870440287405270884157421490432922167994969320748135537532154486715215604805005623402421725079289397014954784014950539134075083756180384129259607758248305703962409359670180748412781640480817994484982862751638586639809168938052302714344412836595573162345858436897413940393741362349949051814923753208426697436776780497029830431656930531958531668669637492610623336814619764541801948300548578928513500265082679513468930276671524939947873917594400829806326062991321252736445097997625479424957198588558766348086057625484556025951504949773508801476738527873353343373076348735985880561997178957032136418052792255878999096164850033173823908509623816276768183108645802650154411581811959552570250795945031128138532445268082588319901999894537137040411875979845401117958777779723304424314356716791284412442335994542677517839906211194904244116072748515504699945745449940972011820598600578712791711733989513792306354850092696767910541406502272990712688381760920136257024595435052891025058936759567986043839829299534793090631301579776346740259380969968856603598276595361462657153950886401127417785096407987744737884932940343071082386236582054287175544848985025418079367217652621781919145340075615395277544457165154420522018862789399727466490068852774686576823935478427732254801335870641964317676683068053877659543793478314718150749451161410381699071850605294697902954330187237271842623347370227592288845534271857169661301818676052001789656798236164114294609331825476916641162639378091259727561486032283131350199160998574586923567612501073790721114012806727280511878573358957744741544923645825334802807349962250994767775537834888344643759074506133840346187410621618387331094836817570759110625241180227053748319207095204925051035590066337300331859104572895143391461501765831921291211012843573677844659562048603401842756285297221444762058184562423847867258770274330099798882455367744276860379888082445757545130878961692572708681900608156009198027050684866040032157571147783738375358070654614923677896778158526803291859649401145714732881221346622064534316095598052991996172025124966030784467210109602723131615927630581228313648381653708509988028168866959323323177477073743789387474684270320480236678168879887932026568712236763485605780093193814422027814193810753481960711755646804868772485931849880567399447553964678967088921350183063964709279479865938304323001397028314886384538231292576186361052695244372231594036143456308429040140681497248031457364552244577397138351860245435305440080476242293580980892675964633240379725670896086962919584695675246918122958970919693472736162571227159343662399450907636869190380684730499090712043847290259601581281975728737289949909442980957218971774603135755507205686985528117486503163147214616287825765409233948344031486113404093418602970332355946421443041536149820899768810303738630827405749190128579808936437061075303459808609122492306409544001301309169836210521985164023707157681720098950685080615972143610467097092589270165291262912020875039716514703437577981100312189698396238044664622372752578850639520230161592299724548678503891833796878219608608740325111260739889540415318305486658990815881701755852500737531554026739232298423201430631660381803364023768576740576082116950139660463765205709977743720604352073708086398616900327693013475857666382524772756766473537516040179298381755667783691865748791874376963140364116160223029462306350433501284903605187437917456412044853521431816816811422155625519975549366415810725846128716385848947192778806392643411698741876707952929289096446511007043288585709930256173877740992491424047430662743076179542205984560759500925484550749653870941678915644214855974444064604396099387505727919642427848346369156552978119664443307911586991400749529378021429243744657661677358084639194123853590061675542578354565181968816801520105435678364450300581826490171465213163794831145223954784200963929186838714771866593354353609708874646893699895325373621774375967695277283784496800719806617083045831123560570050654398400751672633755773247919088438773590780406982389324359720310130156239672579563032051121922770939565360527410409407964320251377021488882365550927650874203622040991389702456467201848306313449954796673222230317841542849108968269079105961633022282869292302135640613184244784558268906962076102315390429487092689963081091571825352444427532523439931972607975841209046567233922301243775970797416046041320884010289599278428023738471901804204028959251827012694037328239944028409822714107363137801475718395728269252654331014655259479688876239878427855435939464744754765708667655625834978418867008846639957790819479001812130660548008118491246150377324577404713367039028822683279296619143731557285590049904532456049180375729778108293224249526451620156555040640044793646053969244545343807565405082560449024358476988444863242864701289145805710224394419894252621267744901147775909833914802888890225869303586604600771095223361364301405636089100505967879852267549377217405040391942275962027668831100868970440882043513801622504523267296196139598611252081850812371184540024104805384847971859956554597424484879284153230869644569344838381685350019006757009048979199307912081895886701065392748761187505012980119563579144302040562776957763775987231540081634117078532715250871351833054094473169222028735016164178585234166549065376747839488526393989905176867343843149981294307361456601196159683802071088540563263066853100507933008103493430942352362256659735042389250380481345705176217288066594213048425404517615635339050028039359348382834402175453887058162065957290881768532338714260875199673941263711916309163025271025462550502737144299915822406783921051608863513349489913170764083173987092083169194978634037948733256542638240589809168381852092116550527446895144055687076899394880596363104802470759663807126660298765940164637337894625763196428929401403058294970550567474270607267290186011589623462173752744958576506640379617990028261478263252955987493509761087720309922216801450125935089968972537875217451973501574174694013168794856572324851279005878945728833164281846027300004492205170201039738157088885412854214871938541659310243171042645869675650364839994669138470566243414301748367080130764781959831158486956464209146958470394175485609652364767734467467603180374656484718344510535353158143428913795830153817639466630478397438831605400452571880758761505199414355136966446211165718894932040145848804328617831500239948061249421944614600133361502813090691178482020887151991807880350684213448405827538881628398592918102786753464986562955938699514610154381504793909116163520925635839795392519476070834650452265836078277357570550779486445287287398187184929481183068913383557574428742198705069198681657222883541562387408024833433898715034356196157807325061315833316704141647480360453301653579164868058773551406968702869603091990467472186829537117696974008964000394106303689373954186114506135293625034269565326851199073395373051201332589682848661055986028294644164225406814610157990127996768573312308501482710906559988983395391839917074132814037187253485229489374283052223658652720216727668357281238305161887858701001845111185538520112304125288734702302122370974120923890475155389449063982559228377889892898530870613050160602162575299904971793531565914091690450943371409290147343552499453293313609967583850424420425867044254743928955773319705627319449421697986751033032329604914964906790186073196698846019078903850889384872605054573507691314614886448533833325673455420894787641304369127247023656953847997434170788904005684254911196065590080027378364790806698291978494118367899555308318651709911022411864840580843534675053502318419339787908035646383312749468901374615934798562117180535422611138853049597601655587425884916252633820427273071844261199601145364641673791123512111494574075566557172159023899272723754351959162637102654232145090465688954864727260631559182660843924089323245678317995026973613465429799425168869824922982063715289335454982884923182357823143192140146763459676207121241447564033683564433235627864215646832556041041476491233418597089747351702674135342371934113519584725672788516379785890861649682159384675830873550079429896425112150659904866314565312624022267610035493780247878265982597448128633397751696251882211716321153933286288490196679673339120107266292334052648441303270443685365332236312369432840897415010156440861850615398556425422577506328762522255370315513231980055029006659413517698005226329861419147184040012386409365194065874325484789748381171047340154260612293705264470881811662599200919568817299767944600251094932261766456778624514908180532518784687258504022939183919585680431887788494621623026063015219398868962109981025328387531344681124907082570933408156249617105903700924003611608893591497885922743061220397630486692233606762199024276718661575523381845971658528372999656079826614593396256906478183231356068556626880001763932974744952298636518548957741595385235324121201916611671425864411019936402135206049078067130451769426228191486641051204349895851319477737788490717307569905901378528204516906462500231513823124718208309607314110792723830538484621677304475140884525269854865303992114243905514737617523356811617828582985875191756025849474426827561141502595051141534429210081972258464876803121100633811427367565916781415156009036582109763133800029739836476761607510090244854976295755690069363393756576949598248689489161864171724404556087364418302767300598112278657507377500973606594933050221647882429087919814392297283856529576972377949105954218901425254317155031128908941613256619383637752112082200826492569221625109006982010698760582409778174829696704377248651595974699483537858439370903302473312165649952432656138815009112491337740754674453742115738037403835680519308080754330876241988948895528694632902517509186917955999835658852446694889504026363957065442666734455721096517271179076030750585435984976571203317332491116138000947773434893674517141413256894928373344928157607270863469517601916564123450839590459691334780928360608746505310432156680421870523747608521297841446303761137850785229385809813129378110883528809541242288646995060784252505865086942986230970321163675022688683964213216304673521956734021099520586339022063640912095911511834773076569456964858709634642991834850557522517490521293523229929803117721149043388429040326820616721041774951891191578571693089447225103933877915058653184471358004382616116927727164015617740976272394562442040458656774663578303679035853914978480770350008909295929889661452569862981604158180135095105628157171911289239562854706184937065105662237022942021787810035812543616489818032845641022964281852490397843598946271526128300895809378618119609263747728105225031905030377912216753558990667308469265898102139836082128610872842862672611692459982468664706253344487014146824637582165816462030042745509537223218442579926871834947554698382771174087021397948784895986613189001539032097452719734160948209096288467032704684252507636025885011714121360404575673794304343308294933667001462783835135301965292168818648313390407064718514589881921163254614765804179256250414838319638132533548790978585563880188573772075401569767250347053560758118431220488967556744895396348713428319924779062517263799811305903968999812278949143648812365268446792625768786805572578093043785118626637663318286878609590613203689156332877074936038005980429563696762725734341618257415701499077043937011345705599866468860788633137333765022672248609160266251841788064606044781490106292949405493629494808930293576912384127768821951023030956704915393778658269544611798303972362221975525171644110377959045692208034821973329579179935743700357636413434250518645225971095055684513737163010548588891678697997656890409428796438698246263611287653617491804101646208068906356339640828498097865773337154568006208517150259481970285571072918822555521641481219458689678758786999849802798069365749564109332938686641894939356525718983291584714484796992305586280846249238255452448291736388543769533697846528659611811742031955731379054101080271379635206937743678717919663536449501548441829081204638597093898170030137031387172483195048137495999684111678984559683272226082357124133772165801864695841632188290590220514466336500557811130283723109780842518738804085656965469687302121234651494792588390780535707612231150810075108433269691328994221192095971731650855987603521653631108423366908650431994228231732298306581167225530283566206839070094600964125376724871510212299115558457233497146035663892225437310303816179536240540304814842207796412415042779933115212372292314007992672994181669798458395756059197172638547360342517074182016891102553926838794922070791927743666475301783099679882605306572638000628971351968672950520629953805232864970432761998368922367708554174731180586600910782245816546098598274346243203333777307130882464011853355630367768113894571914962175316703758243439934520289248282436409949063504690411963272820959600282318561065916638905154644120837191168682754207010617094691193660223782413119389095930439103378522883327406607525359187822693301555364761235268033477955271537564368899370916813069132391524971306145028971233561103928327519378340397265559658900506300225214379382648512322481504828257310304113015993763559735356049210553623052256629014668270721269883743232835838387782397932536404316004609756036878113667131393410189284867960584552821195258804365747798391709292488766025000970381798602386465158023202381646466361177649170188708930773735237967968966499536523407803487263574896659528427287395018620045850977774077147440429660434491731679107480139080662177150251067290355380921124923815729442470243144636909040825683427456612727122347098988417942799738809880808645203289434503767629195193879238077082840308134171893443515237680360062576184407967524383746851977871562682987768264466096115163212020007150091286773157725629642652246407077726751765117858094793643358123010760061670863821701088673180679937337395913201523510848254685355477594585832628465683650017353060270569900172048065419002797194698610896193738867337726291430820730554320416893707433618622601230019391090101240912191369214316390931657484322123299117287512014490238959009913869820840866133611971025777562073372675116420147097514136044798915268334461646795400362576145714547576343187289045984764868098405067460654388699345661953399289947692106018577291441025160790276661268327111804042846905388160343591922480244707254720126667155526034882490542430527931631731494267783863830435741859699520229538286729467937664375503028201943006966660297902628732909735670854949602615638313728199868366245738478079567331105071038138287756127639959502897343957640897542623061877404282894185252454795508833197071853451883852570297605758557121410945620395388528873281302125601135420087132298702772929761673203425339887447893515477635066620928841357305797214654317258135846484200112371658882523439880746896746209254299165161558977421202970359441672662515018335573891990031852754273879819012948293074970870945291291847828738839253835248291273159851771898192532258030838111974795352815816278324310212873768171109472863821569389489336128822618336068160518630974421827762908147879981380186274931304101842539700494439025650218929235763267720394904803208878772279257877714889575857317187697290657172774711464133316522966149448189443843749138069364205504375562094560563119917028222007298959250959784535717970284557990087909120812629358823633045298876203381054374984448108351626238881668680757023389529477330932205442917629535943597421746483021831733693998344928766413541372952874115393102010652292508813622116633908693105980113416982004871397349442790271949051178915963273023175977871274175035452091242718953880504473628719940328591684099059782329973720229852819385659893491707363016269158410357153941992980129534663244970461526590914889875596878048863465443561019157249691036663295675719985468566305998378659415416513084240152056616849125632161848246680123635325024262527870887073222748737151695728234813313878623925546253407254919675636566163966750790318404219922300209869157783956168951880306926220812263304326383848662733756513042322663544780015014231796126424633309199152338363899189983662637462801271246814435568405770208721945122720620796440242229384758466160657635717858319846031954435889009415644938559932172712710127603402916917382810573288722227863691202643877615198343000101161920309260216066754156684327435674383286474774519334583591677700661102590419361383603836878635715507145266761139454553952693015045327922298357244992408388500160529878742452486663456444687055228706594502059998082958577142994563786578166169219911078167451534794905367401367847934223178089404021230809760094580555285300046259651432550449938648102755644061040934569414595133665407624932596969152630165049715056032277980776909127660754625078106343770334559033150413104740865504901615613702680482326459721976930311651750617966937983774560363359258323429697260977082488627218926783452298728549975531155195384413147563256561472086292494790015951046191519524199149749615875015835374608315226202429705358640817456661959879796194884379258685974145464804367377761050450000910869763340026923628418408370776427090806584196497881176796069336882056563053950853167478436124621531533289492918768514588024399355240614667702816762853298525037365471106979983253595522088883058459009866022092643094053388925049725613619428382193563619875104963837433502020338890595952296111751561298132276754474743922475001899611953888013369055484600205785489742347047072264746365450176516010570165306859194677356765649663939333217989616354429427189778585549267668318945369774842151057780626517780719207881405656940971863656636883148423178588307688125296358935684009150014429298104487505386088190411791456473190037271209452675701677250532185654678289352256913951875405138324380113158967730410681648054811715845829998512082273964578874937646721588731704227734467318917308255299630559677914603127712341419995455217013550607001448446256954419901791222605903477516070035275979656090927725490382989775247471387753196848574797272518126186939726997610160470640543877465290928897388325452817624274443378974303037098602173932641355259436948362517093144326538057320776647904253981544249849480401957735424172596414907662959754747191708851200663943846929606784347541294658715004150957556787588561674262761789321523942527204822930570253368919841803768812858992121271459940269012271419299131218227319175323251537357931293249146382489742219593260515578656177348795872892469712327406590220391858150827637439494942713263417406739023694679514898421987972361502707389946991946666085330219012880764621224459449842080112731438881862992021634935041766461396767129645673876850809841191869098796224633093096446758027604269736290370744520900498681686087156869414459279101001328605727033639961779412469352998537621734154913429284631582821667180793099988010284836899566716422009312054852339756057261706032245599864411617114879479979726526482306489789709434158630809538444760231147166016516366479665490379804801923361308507623153371068293520867635517397410904521471991103885574513078066181225923509697903736976152372408811917051327332477246823597556020346533373279086945382138892568478506406988026180192148806585346833997907746320171342632831284583460680913482115868822004393644783610752792146972802803199435551786413121108015614369138361041508059897271923315789490726116767124182215613999410406773839892696935630104301091131681065347731304946050971810959259077703479508045733388454720015091749689157560623192633748740485420075887700210390703602888441267966947008514362883967049345646118638911196665682413307048314291629622412519993204924370829232090812806358086273651473959729587998488770754443435711977863021519161662022042786252639612950168351844835218883639664854561488001818502362817047263074957214388628430729019339525202969909154158249860279192636654346956960676987326175761220403948586078952416871566325602257795227895429592729601875239053238205369693676584219073374717462680416241646516515984270989932122278253942001493394065944796497191897635373054485972300676002335842917280891805065651782226264906631061516220521561490916473864696562433980050538083448195009626239754822493877737416974505900345864086032864511767891765326423027213662221802718091036483634224463662177899411699171232122251439067562297895220361336170642014706660108112176722844779616134218377262158267547182954253332731348189686926194877051012410083206730788801828017627945036653780855822773036498010427692817789708921002855368289775715384874563357968313433957273151706634785552038896644387176399877216472999003044818932679038425764419432657997968112846266593621831150524157805486256271452469978260909886165222667983506157490366123366541015001833605975653757335719028223232214325704899087253173586726416133600905276312229143852521334822574755149770279011253145912899513597569397022459670713787491179108265939186324577793256223831027903165496385542669004384897258206597547513729766910219351531233297446125464365976669384724335533629768339393392017175647887549970040684151414548947374108586399525698372875854649392676411801017638059276138211779773169267032125961826784754868214765753109702152450260611828592546536517673666110322209653569067285278994245857183197782105899201195338365146790694742396867268454975602762370178783075759166649035630038937569160363822331175655646875239618424580948100830480092245966540444730404082196815039327121024054796985421368341630650630105849741793241098504919879611624750873648469245383937845192430843585603513597195142043771404128912149022051933181471009731663839585575792582667091905854945354960504515389321520409501459904407035960855223419554644226836490580800589167663357323955657171677241241344855994247455991914309048289235702715022553972354892611128910323521746324001398221262839405465044168175288818366758015803656504063054035322903500971622124467381057693553621875920705056755234462010038429896890349248653956689068590196307598309951445503719069850704638379727655049907980144835811308727288945077874671527643940150109109211525943249695924368546785665757893619281540499966576678375904127303335960864211680585106503182841496493515644401600892138933889475690280339221100105198562137986393777071459755903047142598516870605775407982022359035432811886319396559190606471293263282995333314535495723609027395021503520972308681875497889002825429500758410478137607131033867407518804900002623376622223193433170520847984326892187245352836785051108515604450796015530323904017449022053988175224585583715400270054521588253193215592660451977094414947624322847655274514426491254738076101484889518217060246068649780832809323930967751611728587560036522909743053791513783788475199370681902268440612160819641436606663509132972907349159471951542579581492656814573734254858687259421604012308602293731564565379560783105953973717372409071520632561305000172741203942346803593929185931921980049112576071780153520087463873442592383368352918338324558332494118513161659216608605408615941874889847867263856296531123295167172077502501554611250308180173922935526031874082920742613535970890543463327845235698852159205043684621668344900237113201008905004271200065922177395317053450320868438493144643179944961441646329587359034480505856046995995573153719960033076372429689340709209165859151885886175524738558542078225058760548932186653029735028172129891443242010030254302597695335516925369915405544261596264664007439913760465548576492566529026099485943656837782571357439828838429680737346349431533534839928130395430325535669760763941347270825939402985744596508209734029121267399948831975265832855945641971432999835776649114648595127117555617793646180277866883273476084109635213869933532090871496059355719234957130694085462900431614335957763574673681748377311294114790270346902371194152598802944813630000549674652748311719171907538882791428515432164609417963315797075093498096654748503363550044029799523225978944017924581114950117078456591893096481893445766983088055281889491259313093465583475465458560071780065556151869862790126891597867281126501741965464331357684622700917332710188698792123734606660721236814865578744815383799179414901710813301471003349485150084823987045055371113611995498360508956510049847151438215048074269336763345248468144169293284560570030932092323804466520919371823018041367441724250028047243650889446093236583655863232506307305224266806538925468602752075572869157785359978443315474882882026876773139168582879308517050469795158387874519787364209517340808734120735101130664292475888773102187804993723863526818594450855446784765681473278338811707752328502374161910916206821236436426118467135335389938715787334314534513240357068046290912051353025138155266056184240163905916821390540268078517077009610523896733960134479850424133977724804993636988858414506122978796255139121612590002734339275188118357123653234710303987380850226985543571366387123213126443776164425377620427448332444007509819896224972449549893664995895303010695607726077287533249751530750811870580713533593018531709863720474757476591155361794338184949368859848972523801547685587736775121822704285905035228392522070664780943935639452986367883973880319485045121849140716671042209976670456725358164858881964033140368224384403523707100916468513542159757360225864265469486827632375683106484395385611083424064308301429523894069709203712451901619689940212735750473520567084968615817771417585494799828177893725927837768291075102802649939002659878317217302051089730799017422738247831877094952501983571926640226562158828321526321336715681309865082067125672466589113102612093357877290429645905401432093976033481307579756006632182595559203887788548750357790578651186722699521018848185047766510184771874151661418740475799368872666908614655846229641319195616316419366682593167858123068682724655136113371146315348693387762884585914025896796472201188077183290126748247337411566581006925273841291993955388618228156771007199968228955686164617041252694236093993490204532695695894583482082692784244339017010900526205390542119004796019435492365697692550924470959943685074232380551814090965003076385683451936050553390922856867164031908021897131652858632561276480899295007505554003581251350184944989471842347247322064677872042648945194680363360199838530391294642802539463209199129911742842720987895050835982538836558272178626304030704034025978468467433136968061024883137135894092600668497509443874143464363015149417870868268384992092464445951469993656588684652510636856274945071640188357612762108572151172111747802881176245650562814746132125308467274311876667029064163650892159668350589990893066959925675294535347408352877770159743891026471132623917655318104262686886105905898402052267997860652377981919934306556708518513667400111338514116662445350573585418914052629383980168676807443233569988996646364055960000043010499723409429394551314705243973965906478070152941961845517819615471469656599346128608960111424785718878488189765906649030345525217607950113494227819478117265839925814324517415199021212537298087383989901838121453803400550716524113290206815125348997498383921983619290631497977230012930485006316021565037755404581658753130129457085851108951977549503715383017312188490147874006334731203290574593465361437000024420775034025360766352905295977102068142852161729221861108297274766627061834106760497539124335985615656179899148655121699383785731725615912060129534619582063366175241617372504171300972066509685203917320534758655834923881646527794666660063435246223305893925435547169301291600293027116209041804391290397665050464535008484943457324408396821196027375400335946600872247828863414734315734093240601705460618135843355673661810101482057686633893961574073709264917764032329356367094742921228535000172380614183107632191812116526326048311454692153523557692296877101627739677689917933420051633441432065488543287776189269576630023195497942938687188798974816611816955320744741939689452621310111776618832334175969386339463009073322927773888692858627865142697606744268449361727597346688919834900621312005113018335538771013218944918228868402893990598101067307596212454036143065667509075129764077219772510095734024713637355830482317124724063572877766774408998357547169866898723229097429715508436552349032253386547133649658828467762947260032130376931202731115142535892411588950099647505625017914495050800161590703940389644627356368562488009298920922172847148457112622614298774053956196281625033309184166168577749442118973767159062320197533600362548415259437669439345831879448279970165666938563852488669187704858385122621264858779359021181993447892367902235070606555333712379976326988463496905336093014218385604786434231254340216124641831657179999660950068139963205577726180760398517648621050174109263830917229615830905177032925102296324520356328062694911396098759281428971483002622286608604423473144987900007036464222718575564526453984532863821014711044835544717075280448573826669329762490852298481509367840908193999012805773553513669630695642078521196178119517382748515350266452503490556731507989528708309331519434840652938469154353176260288864213693190858702739004249113576518873804446873981979356295995813259708318278025934189339503334326761398130894651423374202503159640280271528223408589148475196396675756625154870480560593716197368340354776095815076747974298191702630171023531720404002131671191028881686808090848754681521550835323760802235237799833276944904870071979251093512468940640285700129210006979613919252580388032733004382539943556113862830037139414193118631052514875251095344416269115226918265528136932191011768774174686345290549197807995512732500676253862530468282752537041222543806117535742524327600305880760835166277130161225588627923451481024512763006647606175549817561327162261418674918136623861472330234408910772689318833854642021042837682137105862698450807249313729231520773455503825448088737615836156790168917594558833293658164545222302777934092278982941684482018445861050024791131189443036261595389264548267456111468383543321862116650948120464430337982148875262025173843510462933754220914095123371222667049240666104113792007687628904699117479703802921314072440981600795673645681707411394615001930311285818349190535281350786154827122110074345356371950981815143581922890376300089496125168457937339001555502306552310691208234751465790447900189750796389916797303313285231068726631519139532415117284872927718271397223411997368283333154599193666216152715544116745711776881522101663668782843390546459856904284783513941261142335535296824665940344802720249559620260636808871416573544436663016141405139265459317873696164205435667375539001347668310871716618247114697731713188806172137124374921013031280663880258115499761233991600881804498964456044642732882187645163041091464114795091093026806489623675255626418722274608956112385228849257257734557478153773313945481628949785291565642124706263262831798759230735522823687903950286882857014251225118046435967261155513542605745849782045404413351482915965878177965147884298521268709218403384978178801636994195401669861029634877173562967776757938289085177952488533824668082281348860888893647203170654234231532561970579923819578820364567611237021928074295988331633216569401228426867778898444370885618759277460012502784578879755491173162861152692503702177060977998084255946291951586392223632176586388269780214760055359312056925358104943131777768821785292712063969667668502485740720614113253650707161191509562057142036567278078058554221086805290482836930087675809057950740406433858125959775902709814814084370013384292885325906181817255360468962156180736495116049070405319933602193958378096430978770027634541495526902665743700215226645123830802047955165572498178702823578422640083083344918905563677420895994798923956540663835076510447262379804533566105585382625915677340111198521463262083959736047183059189144230705869231194134340505577250432482503174977995849919875902773573819143518255636746740086538312834583280226952391313672545219648816635283657960895266229815740478445361268946996919021576078272406754518282587433067722272206659285817977529653765552669351616894382036940677455410813385742034321063898978367872874505073089597142720202123429896278457907904665296049890075834083745360147802373479383812413518143968014433576302305346676647915158061804116596526507953184112752521294371366613702595998244149487892864662015873893582286047830739153129547201857931384365798653133309816590263457188238677796978584874511220552725797379973274206624954192991096287602840585959564821433254978303715945460344193853664927391789136532349619761031876326826453711517881093818844764257689657464936902195982783357015795406377367567337930896692787142150780530266998044072880029331575730371659324074632102141528193293801088548815614255098776172846856054784575966928449020712010794731699713555507239329381697269418905052413644592766806371548631482318955038681757098630937799945654918979138729395066778338478145507625433282700541720170131447860661776135455661780616261970292793835851283528364478814403003904471244019172007555943631984384025925303755219125942195099129106105477450674752511451644466096721248640964981331379685338473948303335175206691178712745515773744402968912231135596324769685751948232348077408960257215472782067229898760775137339811944295718159040577629203942323627848293278421414948739436340294935336692054326064015977413389982129152935437241140262372271356823983872341549592980107927885239811723651038349375914617354452564479746135973707192541656703423576875479866904126879763828672502527842476582026216672662552699005509716526553186127601919326652853324611972757777534594475137027423786179553707594897490895604367403864180079373767482215088144788358932984268328605905890380395790957832879845597921851773533777581070123648877220459761613176232972794571945187828695830888531395090191578837145159822705945126921330331281760819822267022906674636399051698022366936781995603057975802477662827645315172461027305942558923438442859136548935570130468192478466387632212209608062998901080135227681920476337557881575200050147089927639525036798790990896492591904165221179938178555012520283070295380571122792659505579812868110229779930240618749532479924562023348544552258831212586634146776026189144512362364735985081641730945610670728658234028196244190718202379411190205801302348951495024108580485830235252412499058929739724138054117531417371440265535462289721111324908146215661469335666256121159446214973532427066679114506592304404484756852547274012160690946873250062228348957649476137943212201289739597766532914519035819878232533315068325888477699875633027191187268040334673186375307435767089182137682784775927710016903745730236079154815933693544868298322304796886658745769091653554321618765749621484217653651302790855653912721341559681108679572463647130478332870110445060127165249072782408171425793881245404272963083270371009921316865939122184720184727249050707758223667472862437770901039136849483844228121073633173583240882418266904413211059509000183183955101153417613081200671789863264943096432151813489773072626855679808175949842702529002623747916075267702158869030326187150656083834600190473101873207812058511922796153169691829605061950249320645161721624381382413189253949578960580942802710526937229683263464482588747334131452251000399414370793380956345543562463240926636529322649993887440358175434854113247100086852018233590848060454966288299128448842182735049134967881888265464357810495997263109890547292192857018327080839868286156308718211823170756244749629309320302516310528374296275727701547311090304557781380965729579837726818710631840666051088123408644523921228787543935915432874156869730670200280084881059648345488717401584922838646031934537022517892732475741912213516561758122448021184132538941899635544823086146935557648014050704536643075482978701047252402773924275042524220094524143785945775136686404038294038243970776046811305251088809104953213912495750875617019446302888880180399151037640204946061927871524394199636516187376524285765737740872230429704297751448995458276955176144150893683426600473171764136382517620361098489586167805927626643310478179865601167640145912762552981491766098479604756239810468230264174577341164125404603695036623217128367223563587863592530176198010335861512008203976623499801733566216610317735601395825367890972797013025479743187282780153827046760972877339706877710356934415754333158354416075478855688320524117148744933386289238095486903385906067150387769199765724289172012977181398376285230081270962332330140893252209928353910390387125560194269968892900059150631998247993372688971726469171583867975327589788258995960591176708321012599995205882452102365947786861422558051381591449312360788093400435703155658465553681774349721343028097967395948012953147332939528012666550927407898139826265558701072272482893595024899170437090564332561765194913632661638685620318174706233206890854939814641557969427322307377011501339955571643228177366952707281151277371666627726344096402876592366642470151924714460560430251265270834266776517865882661299871084391895797210898480009236809565594763247834156998956941453947301524417815314608338045174828212132119047188196026284500995194342043145132799142247858934944788025107623555407869516067119654480429185277092186948407310170816483400189475156612882317724909482842772803864499500002857801933812742583668230776007063951240486556174609333171658531235582315138705707515052527003798636383501741400535448239700494529596674560565955352392303058789807015634620349123124806840240966156677498185443349515378565969208444731824741541602131856718728826091084975875765942919495356300221507759817180421739608871486512499245998315921487713728907981424770571007465280486842653794144864092029110472031852755155138639301315740130257845788965183750670293578297301209302756502947396025459472074371293498864828254672979965244412163521897615753942661030427025764825185177273501276559546334798384982375861604107252477180700489711558705540045585826730187042772284139267934702427824367760014573885961312898255227038271178365587107964156161226874692671497733433464335840271971042036245607292501269697625199571732027826379583566733719052132442559742596196887667978932494324518404261961568198998927220623233832655516617474845015182224933914902992166867068784404784745966413023175210661877016941338846070073991537116069384380661140057801122347970688349545622342158001693984307243166942788287023009809486570116794854576245946572803264263612978298606681439999543772447362262444117816324358728600942799474862312117407236185929664528724373601331878830617886903940453869908772370433354100861788811352065167013865659727218126097682064732685725409926650577228924379814008648917275948461915659452400062639597967919275386877576395285274053266641741361693972986365982036489807684148237728610549594057158292429811621649507398970443969633572392566943232765658860790617161900237014837296183666678280638605929431789190243263076058564295347907860903843457770482254273112572280598332484383833649156942456182405044441150017527407348653385218223790124403087345984692219572096991694442279287470569311928045612540638415623487148573613520156682322642669357445949809071272066902073169594421720803942385907651428621786083587275366066513758649636085003618758724279319549754402788768735065541101882038696088110903057359297646825152533469379194480126458196953829158064992918231184033416600156181082091123496288461278275520008219514959077770617212432454649446187965273821388434434129351414318210626200040748900049478263513007424778772892953637840303952229466215929741445724121002941616561851936611396612982838160203581449383952644693341646550044490580083348173703559131459528478195701861948422146659572546558517785634154117716653052053114087449526729730184883576107652961317973369049060306477723991193090724252855101493639425970870841434138677685614158512695617445584071917591029143391162187352629441663218041105709287888888923933588501522598957340934833039502068113327405980233915278250745899484110110613517562308914064095380724302766801322980013731337888504382798164222646062707927030832841855718881830736612154926861786078424153785854460737121825223178707727620115594861475129240160508715380326564306285207405205465305684065637294944491247725650834900439263611764298811917373186101424671451217732464565689893168966799553018583141092599083686743559747567027798542995476080842841989099722472547007667998506275112909808441453181192852898649556245670311801095148105650447512486386226789471143852252292027006133709831499473476235365355955768248180189894329348450100759554398561167035306600160089257254423761443232146029934740337269228003753943970671629933069816478539120878234636470431224830685865068871467180850289527475456964051463915101508030472183908781898590035626822245512252042322877778922588297004468576995481306491163378662012144729763757043486586219024465939817680078640762617178537314172018135123621115552376572439348088552969789271912509036381313742578981305200615482016112188498068219564616349557058021846503309415515766032390298127938193678453508284003554593815507423419161397639719614535475602738494603556890054354582077209845055012729220141820703193150430959173166764789235592261822704663542539353527515665658905480658168124781228975529520152555288160753418898506266025348137208654550004533838460620829291123308993603494888444700406275906525751583362525017930118171090565278082293537085480339147024287762080171978709937647815511694031140370116576284637800664089539594171906569840074358000235150790525718303835500254565608504837907432213484396434474005744663218342804393884011752328459926460125284840178687183074384159546377876422983525305313677662529622191775607372772742276255605853173917830960247731727919273954833727280295018908232246219268231841298414811725123266597538240764302643026200344973606582422719454235683200706149176330559092273874103253341222303801770160231757283341014969289603062400190185723235027815284006330783195246592683004693293228282806820746138016833318249765142350999770094373075450374851592307970028801643280211457090532351041627639597140133324798800809324844107538254671645519479746209910528369474598304574010275582257472252425843113705744495410250274201661293244787524757353982472213773869784092704383142475229137928169330989287492739805455217891469537230293547834046006076061001441791587079536049798980843610137441175768159590215385299512279093949287217464822937509737849216644935726070183891808032928950536490878786785546872067185503000164584006737695076134022018753334740536367934734949677821737957293346449268947726284221532430821725974495704016594615909370512868609209835193715779606202047271705648674772464089679525571428345331102505490871156997900836442003713866572405752231941884169147889848333287275509050842714334251050713638492652015533031887527878585347868908272944793128826133255501676560880965443965715274082424610943125532968075894265332708590600421219742571337308296977627136936424360663379574721042343008088193086717169394510474134445034559969431796592828638493823133322275184226969735725496397891476634355596133907267847563830722670131448843371994851932530653659652864276833237133145551709143214298128485771917658156366650181937913455255093917886962769569472341706742968483920914181456150926094056632781229756642523006259514544407467214760537310560137648473971134491706060599000107358103850449152969040530431993718936746311917137646926702697126097756519946945951273366011158661686360004951510704154236058004426834962254296492068658858020383077672677178808553664198665939601199001095756621454285752197553286186469657958295008163791519546666881625019976961885315491397745913347316066418541085549954323518890657679442384277015564509416638071179135531174661630296186684828875198529932045896121403915218788406513294024592732433236019232361339177146540937571490052211333495291567414461952154770757203609814571834047281231775684279063055124827613628098241361179904460798351561331551330754649375529655964300571880112074844788433214692970982170237908409900244566326461370325257093955417017051736506255208334330459517333969989586682480009747804221794538241371196397195460477101181424681685614116558889064706874901214277716062403747243386516994300395878217095121284064782377870364703427766937132409396859279533556283539328037084867983036391925665423939771898125493555155351102456277338578152726143329565320889015983878921098663425995543264747812888237923296232223840565427011927154504496389363546765588137373047942277396958091689441731845246497584659382571178396220512615299424271370330838715815486144572933124797763356100891628228216341800585766928911160278950886916125619388158606027494144162995387100524545993588828027387582755470000707456273924808488978187751219311256240295930752851547141119637314413539396149967394504595607735328046446860311817119324632245196517403665026173232977915876031472140536604726058039024207432253504271763302124276386433888155508713782491386558898901182800294183142521223575349069412889665685797964326239213221718048097148608992769135968712052089214845142212182304459182732006411853012266494274263189047052665142919864053622859719537222395826671964049438995638857109450704584008885969718256706040451795291962167624950373991746017702597102207371029562900869998478981308417236083341294300102062196141893447530040841157693822359194674003081906246820024573490896526720937749002804031266687833214877255679248555621584682564973029196444112890152538217465917290670300111544539229097323689949469098559959065633695162690633720488158692966397299689809657622073656907322220823866709942254636130846532988617939631507702226627721708535919950552701273993997378575242678253694509751067780157717748967978745863344140410376553327045632575884696411271661585218619799789676950908135436339166484059592622029748018660408894015752065133800531312612394914556571947059526094076947670890499266862206795435667710305989991027423719262152262866863065744582385574377810968059224717266299957856062288114129218860894105842005411225680494620889245191084096277078812472078855180758530233929329421181973035277828766343086948623389069480389417692079631590566219389581252152550417187127643898800607032060139959968302074766618237451937731462209187416149448861708011642178034415315957783492664490018094026019581065346255583255728487934678475111396035051049379306607065557883330470731027145686118054272969898590439994650527891789705995853611951943029763279739380493091711412871185938582394482168609188971938317607624791691627803990538914150084931409607436445408225559098238901847768879833229651209386778523801925265691371933083451166923891614826314969857242040671479242502649704254712865424164068029862647128062031068369974865344952999882576803552572380950981827938795283341876061209684250509555375576287771909309514842257744009133218145955705077294881235372299074420740419345478974974504850154650660889568469771149561322759624836750484324568424509130837233977760532675243822536089749210471860651824240346383220382764915403331075478446001040592896187989268223954272036421968332691524086136782594374990909165195694611347173704482072061531008986469544850256824702088047951486889997402875776455445605448490888389490084297881529449764236817877165805908785897206315562303259133656355721918204405480521819357018168096961954977128851092597059103200649345373926397613363143621044976612570546240535723962195524467696455515085081749127730705793066322820052805696282173281313504861997278960913327057177646110763360853401284958313716577212208889931988502869668894949145696400834588469569839704016948667374955949490940229637426194356221550363573804438810348696117697868689812784365757863114973312046263644714559812919125463201856806251267740637874131139624297987887450697669758830898351458983933859675364755261556234600583669049733809231750615924702339063499087202168495926351825857845411263980226683963614687325195858690327276766478571836989040144596980740020234648568182148571044854999379253916323308015421722611359936552979801957474210985315026204305516678436389679738286834172619576865501621551275325309198830128132192935584502615363836527771969406774902500294572306041602540280412253330048534709246835970528950801598450922706968066855002864252855154737610694579852111934573095610341978437222942730460366672831416622614284722969706076605656958705279413360188281436668182344993927018351920197795123686431360335757718360425885562711052467831473775297857927146951112899254811161425233611274693868979691170253942336834602449164367862179770185350723013557585600307207927215610296960335776575575863855233948479790701032743774562584680033410298073379548534084833461715513683766957719185578033617823314486480589384228738198596102885001545561167094506590874110013004205839968565308670330827296287359007455958257109205218416917815297197358186839615165735681929095613556749919447465676981837939133830896830118889716718699227288728749677637767234003008428072248153153652767751177728013001508966201753824212183347755665575983417863620808438754007293649653077757600135312491855906182118431123508280123297600296055999617905947151955125657602212623076278417744210774956287864560983731771258380299469392649345784215112635452869366265307088942554473495299384448181108314226908690935843293660606713553133859336450949585375757125528981103315224723087937081539305854082042566905648201220044172683577969369503626083515670386464234484444780881681856842224618432501166642125348204856684841800735178705465018576544867366787457953406457655755646017117611072577021493950340707132698640526431214968827735647674697948353481310768008096528447772937487810189302072534966784855227824638078000978643433205148457269058392646216868266354607120132856685067612888445889960091132091301103633929853061601452775772964328004321118831990728321728642306853002850267808947555486197062888963476984270768939261256164706787439273495133786800751093768571438568683252135480173781389026508800946571503039339741313084625814437050523220941937008672617300497365758290538885514989359128164860108392787284936119609176444556937403064552836437570251587974775872801681413722388215278143868988074468656294258018226343527700486523966743875961051285698031496360655251386412595406954961161187600242394213782281345744395000019381597046259257296110545887193079207640233874249609927598516859400297532965199220288153916180364521409905419570448547485539544809809834460312076006264231236087972296095937659095388734759775840545944342528473403340147790212684912799816079788590560868087097580105951535851424978376130672080161290829127701243894728192180358485692276545779640716784081249558091351984179799466804663541671147311230191106746947851916970856441618501353910519566728444807849302806951342102922605589401916095264464968488235421951677724679274968532848443532699626299747179277664637517863075190847000192728156321895001107281495703504272223835501361602829768487113236558273976959876144089321683890372609053020710299954895168728286163559950777990613725879095908998296778814005739776445833263346700603083053257963590378319749951793389297604939639169979450869276684418463271804867006834885821993718198423720939760067872974689588966042746835015801040583738140692504228174700788071337858611854381033745692290140296304272911753690939728852478183197206391073831862336240593356273934700356631447890042449730285545980668655936030527607515913035248102280221663088277769778329442495762299376229084008893601036891680195089927347948346957025795538291951560105038581433299602885198874496369879936456388136187479042972559166979337585763671875593282735899578555697652362590977139595445132253645675321149503963455687986695045270667711138136291796954698012797601776979971921700136925053537306286484427759512443776546820742637191895067029531371203237992045109399894274516069865223788010008252936985850045148616047867412458702840438216635282219884086279781342110685096562404025937189793644286491517506357406666618270167471481714533606146146528883272876800151452625070535249063185002024387043393186328333949087811998180817668343323275064688703233990335441695572565824583530508070639694238794561429487475556483958345513862386247119203076007382226572610202265265601696894204453845703105437274545551277997536258648951988878591867953456839694861355754568856375661902722893857716171896994608585475823691809003333858374550146209455884596499469464155876444674108133808432642135404737648051429873504181906010843138755407912558172492945262593663491382181235177899595351693021781178355676968902818395601580741733409673481553939565909545505965573717421084503633133092609775778045459974389327062345664685615245607733662689543321612775976868439722067281145777621421599389948913611824493526163770882245336561603722338008134244617008861484417709854424194323311310955726803688899663794953146808989838032104545698913579252363225485040304766399269665318062503633558040839448709426338287632098931568821339724358672167889219988463064608700558064507187710418282707897686061770864486389500743603909599621934419703600444348819318779414986745454856187335462506495201575876218313910335751822929188449685916518662035910737040643507266999369266152607166911105130646363907539431580491202512086885444968294063193381653777851264329121114674283693258084814611017380681591454844577506393225477724882934726125301936912495823730900753478107494533458627167103214119830273482997472745541165295530468910321150335681769422015334551417565452070494904501493244232532729036541696624783345958848552804904967744186886298333695639890328470441867831520783047423638272787323598650462192132898889610720369237100030181825709063026323691122544674571964055267091621241203942831269644373752109176522112639574960270121538680394358373530042095645200861603590558105558880651132480209295835472184179668244363059352849518381193094761937720182556073910675998051642470495401405414272497558068517077289594736932337397493240261073180782062493415292830844837493347556126550260364537139381201111280062511357989846546080831866305247831891011503173191550642550031383784423811354483022074464724460152368044886016212908505383253286639844505120330281853867015482964789802426897782708499341313926549820795564911678167712995948218842858016538283683747246773427608178066377377287099814454106537243101651523051363061606463258722064247284400860037634336985672532877546338499339114404179496358884112072357538826172651420909344240966015802182001951458893838983522902876447756795851597696862457588798968117376036315694401660705367881970746258479379333951379655591519823221211152307862057558222554527140501234106427483146368944310494361667119337497610928455023456120423529105790117020064256146911131140671028884822120504936210406523396440305835484579140718178601243466942302209053563833187020150154857611288497411035336752356065342185737370812902992943150861707730989530901152567594972549540949022817218979942810438084194506050744696155620284913999686583643547247846114146560987141764372294082223939594008525337153000371918389899997068153902064700209310391350102731507598341863893575745886262970870010042609993602777512763687520195277931387433916795117729286941114257627126135800587700349745563351553544313322431690465999759681042966661453618348200051816232947281080949720376374300202589469758167007027675847987869059656312104232092580635659024562128794051072218271266930470387907281074274368336111776307662145080830173918546193452880917119811248012971656757052386171557777290232808368486371401114271201017165260742023755891197969997368790245429940954340062322903289978135998013222349321738475354560280022249360441259555411487818138231153052315495168482294090134872198256140062277888154879075727770551633686364625116138740787029012963884348290614726353588006328222786412592340903769787745636540480076698710542715382680942657036531698908305975475542622165442577837563473408557784276011554448420765672639217599805727016303811001567462175473072343733752080937463012161243250439360078164719359957431549894537153181278610194907264578859555305430820761910362295388555979118547366521827146233697032427793584879517057175005945065768925837589985649197964443009502330807021381979200648660819606941200570700147963264220605725260109112300728681970716486357334823616608521568885052838508331547898623594197428097582781307309376852496880571870383886047518485636489848433441415149169550519154568171477487488816793919984908017335745280389410897933368527008414411271236378370914859909598682508362902205586016959229665660653811364289619210583677131537016732196837757706225705361980122917917903440916452076116001360823091756694811566498973405286845553678014863391156008998891911921341753256837987010651813961490128437115883677758917387311362445614342324633335004393044384228327916806541479240090678033060620246050815278134431457136987322505141404312288710919871316365854138069903684811420055905462596249182224733025934632955670869025100583125102859023706855782149576628809028866345409219290942688713900985687982508233371478207991733569475775796776778355755792257819013817852334149890885816178468105832687084935863868751783487204972234223864212033451261250626003737570374501943557764423695029124446730774236186417653273649679151847933241576947110701477660810843712899005566152893940515522874380069163419127804185001861853622885439569169963836297971989165572004935750534673950444586194680107560676884959472109340811323917178525308843307534108558528379451212318672957101196370987107219845371455617142594268978842630568319658233530058483540273505345384769891753665665671542864638814334618562823311739696774130961991747987904344254295852178509135360792552182316377476900546158926040103740541631624555579466203514334688497582613208218183844734678677202131356033655516587826316922480300823160634829894726395261440393180590268350128727748616610839242897008474909634139132784324195373524473760519381875022504960396903309167218528470864605449702673975145118576835161678900414290622723707979271346133688595691786779606526417937526031314618860788354289636808555807192383316057146760437448237116342593752801185857711255973427875411034537234424543945437689729761858692184773328367979952762582133484317634113660563940462081441659805626858477128282041155191237185554241359525515047177433125846317553770570541428684972042651964471898871002941577366327273408812251894302581913356581305286655279281476657786667243997631132911694351060903596816637232662805191567481973973058433370977238609471798538992289649961086464871270572569213409054820654163390471471145640224169901022920687177140851971999569602008966707871093616964671076044607634452396652583448773724909335377280860193226184518433735667288140052214257739058783757543637317263437754415979943029822223541044483681563276435958785005250411518811460044579638826717389239040337071434325097779359532582455841010239540792286167331776762468793583871227545998909944407178681992547829235023534762390508663293994647715726772013918360937697610203548475874985994905493334217933158631223147847400399930730038083121452417830369724318316277922784618069031862788432191252499728998182770081579325927120801542168521225116231080450671869850840783580503936804699984278337686112371835297565436239524746277285407405277892729128134294730188299941367962846036036650332721731052409852486928095988778337079728209072993207250007973675797775236416488773940791097208479075044944857803821112058342615670354089206992692530134521240240110214454131949513761680513979649609447987274629484683425598140176233172880233093715472978280317853753385630129044749995189330894778221281003956032445824799702445206131137683289134771575340603651225970830846449133472550958510801235743105831804602836652850434096138988594452552492764968672035895007090199082456412011069387018080979061457484704727818087034325844257787693324479773889861198412906384972625377771922284475122653967112539229723884427388939967569553195724988268243623540909577419892100411051531066836568961061591289210002616902369966574847908591295223225546945031806445843688834486082594201134216680732773507106105444256213457712136890113558299965331807672932742667932593633531273647514448827727491908780748792420953576159569713359859929669356477358215323880272919118551410837020952357760687972643540167896923899931377959940605684908538664829106866349197655362125122659352155783436430696601203470607791705967502990100367337646100153988890207871795342624340543233349360723156454027448214266902728410333316832383501299902806107886101517294736861287785418092139596568535458215365117306480153870017640869682672904518171806398502302422284547644718586033702444481998207940354583951367426919232447396628725954422375082380725367663861244927165100638975976039211988453168620259349542089010931038907807803428090136581835029109783760254870556739615196073168444480789630059591433929262865230312160369539670575539765706870160533705887453891667214627168664359413597287291873552497591447332100523860804465382296907013388495308197874339586516545901136625095299962384328739496001020515251838436466048525410855397814236222175213367807255951442003343865136052978804297803641865450034690444544930022430419704668832316610096872969889744115809498265981318236370358016450390867709410126358730692228180992691805651999584812223447001030785896133343324035473215996579495001040001923314506861180754998189981254156816329251097262406851002714052648049049260576023039073295802649963079359626733582542091926231205930026626334567428757575529354965248051739276478564713373982097792784054935575671330035473107753830932768841575638350627338614305190224158319849473036319009348117418728448420823611122471331703989722994632754681653215278172516897161171134486425824394450371844561657042397212444882922020617087056982631188453148483977288217354547118086238523266594785870991767748553987089703293505019323224015022610166629177449383610264576338546679084748978550815744166454119054185450509742187560292837441763957523343546890567955803376963969338769987986765004084162425994880203489007608791947479000023120333565004842311340922604082549905932230658108328993695534544110599773339720265177643447409250409271018951449810356695654445324853373024505987589840408642435098077748632629119362618152391375400209209266794385695024962808527709956878667493366467087849690833676143172938881018710681087346962162113004763379203671663596602951732386453131329806343446745431412368147429476344872640772959031285769952826767993493930406153854748921113033937241489463609191630573414359710465112465376385333349060837068919872283314328403190492806271088478959663775884340666832085339013601293151247825684913360753585568108630191002628176221826235615698370523581972007490415626503876154680627114019367737381085783075809425254264315100361378943968521772074457035730369236156010289866538038598601841586363044552431108386524819556426147441572364265649802975680606489161996795121612328889510964928208360446609205521132559950208743551508050215512244957921658600659893911906670620609177926473463810883979561769277453676467398097115258063277350366859389755105915550690555067015685951795399847885731701548712323579763637391786150910810939948245489409836913272226689435702412217698260643196375125222300651506812378095002273154430414026520540704173004424934368927835560213016782400645597469447038777385737046802530417298774607243994083103534260773930748016830704364023690336786128796070142339196825368415268131686150292985660326114371567426020547335316126257402814266447991850803425978949294988933889737985402399834801317845038909915451901288338124973963439902351196428100434183270497495267455992737203092030840973830480336377186512351243029379516021619696641534471902684970255214464622610343291953590527580573172973927527958898528891283271222058330847307142365251126670011355405743939056667856067200893766154806710959773553173087949993656689777805112215671760942880894554703467759578874396437013453970632701004323113517097932141199905322865672739632784356781018257050303554458218954963206726263843449137281681828940450982750094809402246749029666961765142718715644498973730867452874291965505083504895402131193321135014027020688678352717640378750186332625640314948599061436993137689224239190554011158941889099093989867523198357984322298354459984444143845851514794830660508634259372937741463600456524871583874618467959292729561341206423534899721865369845503723537231950253894343781546736065394518550428709329792196952457601992880471887326163218742369468828894465678164198892472564059647497714429327667773294450196341953778919160713184786017553679212705700308217452612707400463038795133953450742859020141718763441234900049863661273471341152514834978073693943070787502102358581790159168538531159777280535553597454855660856563912749416649912474103994803925990140264364901730116073977209421941618259647755274273940633905737747734476058637466665515199167954949323494775927445275806884431171727850318879179444250785221847095928341516462794517770416716475810737197506327217800673977941619122248997474313708324915183395436304075006856466837266995775733976517048299799893601262171526818405916261117618987615097480830997848031980253696545617653735103212378773563613345490901525246818831636460692617222639421551243396603328342218353629931544226587925961080406187229923008150293592574327258259129531934787975328702069616593504577248238899497971488462090505465961146586740364934437649506188529568355395523721956214168237663318351295268651061207209678669446846489917293369807567901499211689124333991687047424756015983495330776418528656584878837905556849650731808517969111578534897376971004074770884213442471024047130755366554260916899073243483379572205946498199431975958362728060084219334478477675771304734996589933516673998652179406471088619706910594749233601592064609560844710962179828972011102617401234799321207283534512386225952387954995651058824927211787172490612311852759013014114285394415465431693942495957529958478850588542133656923914408426982843332908328077428140210700199768536352718601506960227245346942215145587646749474631300025303047834647754584382996035327472814598844013072361330539572682769109403661840851473664353587273796617929062169586247153232002536212006886717121475867175565961146456540938800719391107132189840835431379903370431660184919999861019574949697221782869338242656369043073612530153656009720583147189469067323759468930614887147289890438523182926851684138091169354318872825757097242346006431630159221230288939685964084428281257448647943442550790068348422179356313079150759303521627741823046071365036896089061117946629025437207139903856087890440073248581525154461481603320111074398919634778325783933625759513130949702385253717029334219826359450930310617642261169260864719666673021951920504192236587074495836377017351411967884676320374962379340534320487963445402843630988795026724674953473670708412329369189101392570438018361445202726437171602251381958735790141854732717712050031265139067348052734253285162944116546574986933264193134376379135298245077779064000597543719858245318765841346530099646906184465716377795961823744479955486387126745522943260354730694353831926367938447108308646812100406349924061691034878260931623158705059705965419713217637598764609315194379807886152432252475697497236750131168677102522152446005795239485238863479224546239452723866907818988423716722885868869747809606969996818065551389432842561246187822507932446704045084471595024011265993139589218190456394682008754932839802815840989147236418051848542605254327951625886185198167586186490126795070517118016464309894636552489227490098033088437794721460204468256390930012548002367880476673275571079248185814333924538870375444846872644313748695309184414581124582632634429119573900144194400378504701344926012057957701018066614362274479673675900796705638357385004364232587884249302623093419539781844073568692340328229208595714717195525194683670412153608874227935353569008746133695643043469351632246241808405606457909363923693263310680496795276106091685381202801687856916908486878835105962674353430861729556146663252478641738538171470008206004441639657130939612256543476638866493319812250008063393658871333034774891539604853486453578320577356681525187537380490215942496443348155727511734969636270731780351705661600445963253741324429511490220838182918405464738215935511807766325585489885670546882871469446748784606578296831016981917099870950646967425317761938179308538978936363923633758677313317507961468043536077133557682079071387885693888952955764670212960358410177599197636340666309686614921281811898403731071209348279412593860681619488206744844237047193286569587748230881948200699388888500274455240627130270513693851681164473709446954030101496066493702778923815008407751689178636735826327331416304699306093572664400515718632014147156577661167497854786604891571269086818076584550278388895587257171986822394464578780500847349379246507149801699010202914130827689036987378826189306556165955209414798394383316307917289796188442156305550871124761093004947768859478306965727973439790217613492626809351190710104885518116966152128710961997382826435963143325545276227903235739066599504497564174560284885294034741036555931814063528849680084316979350193615482214375510768109246122196831933655431578687581040164139508046149564828952529066175108785117858389212665064649846960821838266800121990812565832448579555328725640978725631955885364842690132427629529050837396728971835682846325098761590666246102871467202198151227456360370952509666724901195226854617389584891463342835398750624486106035926249613415210931626472568159336286205244693735416736778231918083429163804420024271931783014140418496921013482058855512449521947630411691010703454738227335685091248635160006851364339848642338257058134351939151964886266938087919402004529395778236538467837570210021562352408680438777387485216759824353591178782616033249556312484070855556046549585336516428816442586517707263201853815321178843901921467223821272855348369177419677871281541817259839076803496346325659680105814576602113467687759955588843780374073958020885046116851994702323118952722910828799354543981472134199984446304664024385773325048596493305592386367020863469819620548010382527393525588776366977456029149118347259546919941050575356278850758596797840779918417351063286402346956230424114136857530377982249010605122667839707652597886234724764699550485091216195460122195644211099877291134917588962895054642584771357071191973451330428861472566322638928745394006737134397219441356843212394027989401118725216522774424716152193970601584105267764007317682693511113391497083690620960023984393347370807075391388643402470432736780794578649818552591012255021723533140613565640862167738118541001098591331517039112854522939498121776822041515014903602377177076773370230174111340394033059224443254625716720108907668550108053674230062918532875890196295460520449425889173220056262202547895069263134105214339372098065540593995928819570017307857580296446863843118963642451121646160365147548684828224893925158400700752046631834955449437216535442341547583974374882733104134172590282818802788063181927586638262336329908758285854115708079006221826356788128516645458830884408822937628360153478048632988872624829448637794570886853290199645415350080512172171049211768780173988576175674690492196032386636677140855191877928657571672585593081058044144005500190361837957494976463422807585707095253748218374984748405480078145248613144978403136531803670834977912652167121849687896374029198138565497049245035242009275344697843666931392751960681422726917432030568483247609580677157109906390779048745077175756165522174444938284722959829019989896989905275454528690693169941712300126488322183010063718508775729962125895108464097141075521257331569049852113217889283676120245910492669138813248474028478188505793526976364322801393930857450591151131121625177572505587474187838593470470707828622348876545688257125190886943249203458352848857433086182028559869660981550327207329656784234009257004790388476000449169566009388748291646914859148461279323432402055494837702067247110963927007831169909697547547288352878218955354288839995818534734515335576170007039644792311380973033004376124986073900208438533224131410596403853363480451600690344031472099185934121294980261720021444316844541974849566574985274921446998787560640913567931748467627656585367305357088802100258149385775042443830966651985140613903254593424075975427214067604782486933329547044218621490281358093298302698043978155433014225305267140740628469977403923203202583951927817220108651573510814037229064719361551532942709230830428235802498039450759239634185891221024677016473045317941245618756319245468566458953278632972705248985208682773689746679124234333928410182502111034526070888221762691462461198980801933144580620991713014467475601684172348749132766239153571109856694512006866042539246437705078843721611861628383025828899448790601827787920530350776952066473059529229119414356360152194126113738467840176821958203768606104373395436914993383674232483560845438774407644724510480207778777773483749092324885714892419433742976642543934362698361864739981496192596506318016519137777964115227411523797925641692395007300405886687792547173453512929447398337652789849238956376621942437015055121153696231985273267261477475847003782772078731031083906475934443674075164915583142108645701464893718061211403109471729077322986974885774528447551338875107175180829934232934262779022385948380969828348418889389012596527015583453368613998357297483779720774841419378018624586824046414318029631284609213918418325141820019547403833337747404048488147826712754573175751359490292426172991203959605471607082231518353926509719995683760372708529201573100283115959963237144216683962970164788559889703091391419297954522011576183589560888983347188390546789727857158535140793847225016315934637069503599933848691872618133026855607823085917828721567679895946799510107059551172332812626257680910773267059400056735993566749839882146223928418138632866270009770442922652589235744017886042300295284929295737624837739701270024709692957118971656541341726874913833428181646679560945731668334668734859415986711481075945014764800544967724016414513719247411451540192000160097930856065055795315066108775256279667828522619125858969415620581457337397162473022076257892467584118781465349691072697559371471228224129263319848762025596503968651823984340021204498317443427396012319251145690530926702242760469346726287658857082732364611392355508649959840788642189672645005833072811559774686573822779870499010550823056867807693547235092488629990013553518899197378264706581952769313041882540434082804370114804611359448295579779420584500470410938134717263088189976287943874074773755048346083465642333194726561610146736359316106871927210054600277095659258976987994032786545396640744741356958885554366965057708085428792239589128608644260400401441220315532717597253226289920290966697072687928603619481422071530710445975384205935830572949759665345233250949519754603000282748150426694306944677966071004191960200011750656922684557936611578190013203486318202897519246658887406027356895279399615538380616854980863805030992410662927093949564981045076585188862719356498253646361314321376413234882725217560264388022559605731628917827721111030476392096181019764922784348712623786011003530680678026133333101052245868030267567678208230223176875671770838745908890338557322264544183279220432136326557207003993688483104442402478331136459602359287309795082822623829130365197920272734927697682857083008196363126893910735093430244086765241855371292059509486511444381799555961850613309040785250553670654741221036963626910243736158847864322697896780526265756142306285919136169523041367701752312928724745802265990423920462383466274720221809398795788159382350987537621990598915545702891459419871027508695496517778136437497704824809490232769135189608025089876018471255289721287419545135000575178767892115806498523576322191618668406845704893872770319574967992509569088671482798482892356765641590569554672467859363973424772600326199742848617843877157717123867755770130612415517499544365180016470199213830909179236942971580997786425289048002030079723858832287898075751278307365433389548299592216030469718415171657785104591625662115066014793183185277314410832022123475021873442852043265479451399788186482543462462400487261281061385991377151936642657448781722409114830540712236979252136136146540670663993486248223421050740637953287812011040351810966578440667930979073506912321876703547329855158481068027532909469237378670603409761737384342582215705455328743623219080257377935648771775157788077327657226212037389493582982384024772637752709423732799723547408246604495387847934227039397961360078486713460353170879464523496820465834684540998465914786595095571609116110851645089114223266572368501503412333199930185104820556646365973383380686493204834811977571946568655307666023441896752997034427522987243466009414625843350657251925830818261720581680297965056270282949824495611428337133179809131195786343989181484221557784891431724904483341240933120715281842957247530812012508073944590406389069798783166163500995466384152827581228640663723087022264099792472505260666420332518472497916609092046542423860322427772610881163960273735082778734265179467899651279522910219512663280535509646688627491432038388965796857589903325669790431466943882244533618364272351828183848604534136882604513173479551063984127567735879548839781957935267458794572481661712028520092940111783826319809275143873278580645557164831926130608931538282408746284746034023911681097193216679938338429281577436685424144984439894373395691241767414306100967084306905701543320443490725734727923166725907777322999542266183667496920799589126604956950107329550267470500149468984586899069498181703134899813703692149470539621655632112885331127533171512121480962227584084722372505270566623885147245090596347059963513193289001485501842121485464057863641178450974581809021318231661171837568211749181677019074210096825210256255969709005771205728654092430078748283641792812716863332425619071859729347262925283207345657043893925794005538148871099967834412887945573005675751153495697690439470536355640861687153657345311055184457896087859484508741788067294401733171732387180491217828640408019374045926830452494390715495388488383710235580523088717246929739397022115676514023174360924091125301197211376562312079299907737564632094788545787945259698132080833947207288017965515845316239156618272663139391919770546504951518614483995153392389040174321115634452410852358586742314783621098825057984630496902333480835305537124048176271316093926682736152186783385191584977612311435586965590420290082451988923111215337847518202690948083597078828307317765026240626502570555615612561424149762886703376022215008217790163831901081958181170368330061248199894817251943879876488203781983273761538642093451568429619335563734441993219537220558438717526923342506971959106594801861548262760493915286256477689741233633970651342689485689052369017167150117627685855152539462285002519601359897374558886368142878518999978113312375752662091907446224701375499776731042671688628326172687800066118289154497472604499016550040348715134092486699438770291586120811997507718997161937022870702721466222806933485737369982447020778221767287741627302111926889890288748104788375309437106069663583657511122983366726638958140420639394326478897657890806516459216833254062635008544147149043058311868982827517149490970316175034226469813034759639215844748006137649558508709839172750974293731587997172491130908559872617461543761301450905262253975488085356954248403823231879019474022663015333795148162697780145401502317706033663276680033690832071291925544709925221789607191740251436793147563446108793912827844707643673245297772421363787678095519877624173501449137294035468762791684739503353816615092663271003960940754579999138494048476903965247841564018844096109849450438545618292801908644678881933797268503328426113154612149929808184673371711642046801804097034823997057466680711650369844846383455102351022790132551213276995714856424373610787867769999717526554265619901768115303596309915361125252993368244905170672869807191439210083782575446466062712968108893818131280638381217235081454889954030100471078671200219203810691078709669105295093297778339876044470215298430309813119161826199650208976152541736074883406419313879930544756968563199542196189324274939438491705579575853439377512833855251378626938723139958215532833520919160977432342397534201073402918243867787556576769978739885001800554298917940392108830757741495468266689694594948772531707821365668443609748852586871218023717291419962865622988602048216201363019550485978884031090113749674834644526236710842108413126201472192857927557363325391162102818915054850735086469798661089618958387305219591743866318643571559845958621564359456461889322401586166757519224167048759473951675367799899249964650312857941650434411734737188828989438344953031151088945226576829397874826754233776561044594672318291808954524056991985812137027912964239194772409744212652129829973020689701535014937035006719692177363569956488003950938709325904218768014469696669783239528022983766579294658141704347863254997870919922833280371733988093436734926804242482296671994011908015412824268127164591598983196578186729186611677049486533592959621622490773695937539487584398034203702618514882471611220916685067052453575686571500573956521730649372403292055782692293251800865348633974697094488599355936747873637572619911072771855052077778984174626754230113386888493208540103735991946528660666362600705656464233329591556808508192571016396132286699873182086368160442943931804738765874403985144449977502317213098295191043048353912039867985988779087935905777904045529384821388770253089225372589154896612397445916462621436557734650975456663519134000617480968023011321430766064762497133866634162757420608625594413432528897136475018711971646598347665198795869860886118145383727708347661217498799323107181683574571683263356648606561351335418514531282242488057959656419619705504065074758303087782927384649539670571830161904829655574988191484280517840368743537354945026813681308163250733501932132528799507607787104508010790322792382905005825257772975608829865858784707122903156189468745321566652700050764652645794487299961774172625566150381458047136165242169068668388077921537855372132270953479024148052168001852286530131757238285660852005091626044384548789898186616578964015568278844146517641302306440050896188500887181841161887591785737734317166009496354223260018688891461470005382639246630334584161182767502058723311171839322418469734163924104650057483765060217027907381921755013021589879010075227011422190740515642159279196482095004903814148103586730061504849115484283499097119156180908525880045426923293753900904650494281085167837793857410554798439577208621919101451022060062927261968061097760988370987396343952056496030882753371850130482267068552484928403595113542298595037806292799964024712693838385474413409191842215994760482030508302294737183431063731117483056014397744792507405457320428032707129115858466309468160506618100319824313228315833969864408314386883418093357704991220279818348554880078416321402613555404522601089662691401412034970365609710661221496398316873908100725503497828658729985507256386601473372175122166485848563152872541486231479641265928011802104346398203365682863889333830614510439471423833402797284376098334882285230213711466756808879984711853298368518680648573911303063808948079022555053708673246903633026581946160864304243679457118204955558063375572522184968206510897080978699353593378275564097062219058568088101560383536214705371645949576342891267693304931998823783401769239921042367649508251741041253573100275678361372278619677843952302704592870203638276902350976228101666885719292895851410177591913264546646660782924647693260824980881572531495819885628719715448400988393494019294003179934559691433462136822024233900530254638991435044308826016802648471985559822245396418559860043609370405361756806768382707758015710912330395879104199936791249807266819097177369498224138892606156958368929701241424982441148074947468795629612985748850271612977060741433206582375045733321004015217811825448654894169984697057417009050508714091475774199881892122336326942374275706271984177800169424289928330562126227952601721281674776085735138729931162432765443191474639824108470806898170672789504470567270542782242245227856321992469384580607839648329540077579064298069860705978626619543404275920413287377076720064770200247194206443776254859715887825398801509535247917574506907141210199884771091527693051447547544592248135547757485352003274428742977989513112969190763481221750570705943539997381031458958363781694299236518118683893340238977895372999498827356264094438995990053529571524443981901954977995787686805318364464653358082299320081354038799702816730171497908135512490614978053563574068419452285210395875473664062765394102241057422946276821296180182115358460555141744224110981840960754291581825198761394331368776323309099104513532511333240044999610103235669072829576455103829738913268717412564967072946079381992687089973475666779404352596069746670441491448262330302474095334031718924936006813677450901313925232951614989884813861003484039028036455693197987832119679789656478719670372731179417898313216824485815213812947053183853238401780840373275813310467578726915451654231333522429968806458287133030638763599674877409033840510177882922959872390102314062698842146550702445827383016568859628819797234568726400940559380926227487743579517254107657769027607862629497074307570024908356124221978515760325330190496808984306432358278999767482667702864460954222225069748369311111832242888336736479192417862354739448609177262648819572532514748166854291031677684882686686339572754941923359802243144133949613339001078261691937343038521666307455041475885576041675881655861172328921696059871229744686005256385516963909678124208422002561480853122494929801292979212463664388574064619985579317965506121687833020791561590182452287010377993093227047905038237420885144275822869493600912861623872336348585477218923976779849101191935659441996654339295732297770862455701823112878816014603080420075021867784014799049795970062050932332526941389168006396956350360360828653488564756062826440355033016114210823719133058182246858260365895903485800523038726727430887650263456863569133804158005943721548179221624690481473652873215983971989935888507193979881544750739675108855087613463946380883672906950592310816557489613577525937638482624928781079144019333875402967868643952862522017236337995107681973902030438875431169883172719043283816452164818219017065010415288009042414345289382074885332658865797730259370858660599211121955774361468528162989831348678945584577052829998279420953437148275334601573828644253826212166204081980472063023714353317292695655691200841740071027573950344217085999925915118992007473928387537279486745550831772071469819402772772570399323621658679335285951960768510788814521018657112536048807199254436659386866625971079437062832832660706165922682863125268294207056168212372809878404588896261850346695586020292580692632769770621444954065260630503151667890025384362526657950522907376643113893245410487570418247693148725251870784478311833036917696318451771876604580006804116621663232104952414419080945183545034452402400277772498730800641370287411294186477206032613972576145536759462742070363705535551535952797681136895622329481230116222095677612525272138124937777506211146181930302795182545933781284439693402458244482420628272878386517913477943169100311101448983130067169040415838200635135588802747258565431022011417962627312538143242461290347706584800206343496594491216445456455402611873679512331836694238401869656873372996491585258162841934634687824666653459974154670900560772285359298450572200606024393650582917000355915688705801681779048175376209869593041732711511080854102406949509808004519143448986080387910847254334508363187206917651504211054523224064222103074489428670978448993721038751497760484948255009742695395107117182939378458522802033708362488547142079495971267060059141405958856850214696114032438866320003605983244147918733517614214423587090141355903845011608456023428989432145660043540300228835869231148813717870110916604914595815215552446958504268469576331212110005866714161225475358411504446433255252915017043344175041788168401307531239978315372443959457781453184017661940936403746375813494193988808316386462482032530029265044317011245027000317940346949142067079339452533083659446842878924176080935034286905433397825315916343971775765926555522149529094841892673000196154665864953680750756440066018856243652721885734285558377827475739179314723695845481813000530269439164174357202714582634525297979387976080102946622417206467682957484113840768333174245232909054887800684433899509301798831682287670159183819455106488171984190037188913776027324267608344422053527049054767760396293653856064908285360778724200316145832449329535983310871071944048866507607991162722876320022637624484102315753249522287282657669858259058789454853327296489738204176286608461285880478272081284290344798655155969452424630463806496794805176586054159353696619090054829617594726151283799044200102554609090247009666874713524730993246533228275559302937361838457753996847727918225521644797983582021946503782185410090466536916110017293390453082989761256915197471111133288429329392678842274448796274660381264712013122264577253917071942545932056281935594768943882874995209147846237386034314948411941814047879322948847089031251014760801149920873274301350250901597449503765227479619820708654011087655922737036892594272876078756765376477094478150148205531902962481197647141933516218328491017287632124031636355322571500613903009503226098025825426657075557863899909949019428707027984936039799950511721627807620827302878100025303589869636854646819459920323926637128673490520733739950614528849943988376225376341975171337462329016374261989607482095862279970387737888014096201879362255859405044180485004727378439947729637141122112569317728389482969191206251065176107048680997772994407339820424235721467101170849362975774858051293759107837637744282161010967624097892940473539066328775520641650992221012820673270832484458585277154361247109572694940058836958286059468754538398103499400040246401773832751908881576774226190724407176264178995158347933800931579427131824033157135648430445395805762906027130920979367517009964104926279886616657388715009051092711633520046385033135955163116022188101248806042183912604130248094739922835777234014136542720383963380389595395186223220520272927198186839081812729570810411318213565954183598310897315723729368036941588273252856221876218335112187561225594560591362268393487717522925384083212058127936113770888983622697023511764614580697121697178763182844553358921871476701852641733018763035684400486834010934626520707466261974258677670357048300914574796615243985641447533325265134210977634576256813561039388186588510774825904552143540101613995981513682910878194997348676172193216673059230998813549010648894947634871518267229159225141647384636063571883764131478797872254145095584504635985987886016045955476072113139972205270631424899629230680073155309645165963640390250217274664068820563111372830125748199595489625868619119387732741347602312370506206532837929720976143237100827172254615243426008266515699164489384263576064677702734517268478575242270087972066621074104183086393756285633288570983884274876050859451862252982062452331440250874515242843418801614398472483369707168619409889407137921478744809236005995732587266218211522032776613751683570931218080357033311544247254843106022842529325662789611442841000289850982218931129588518270633218529720068281006167471629148034389131459750213229842985502482374145622625632953446559484166260262309446243463177471281401771047804032234532574020748747857619567146525545683701893627238839979763887337100301709343025775099531007445424829816208902513386283787864036954098409604817427408783819962362622579455631964775010443501720421555750582512335995589068292534071308330927483998428896165004672950726196913184497842822480344008845006849868662105640126661392432573181144203421600140219396231241077951097093344215150338835564615650745258114726672140425027975196019930702419827056169142826726639446402727841180243593072118819021523592981629489858102262401819242996528750072168781381832949236380457362712049439991447574324950469206426523511920714166758032910940471947233307900519515784028870854131938915700956321587877329280353322517014314828061405459305723617463205715460509867878973482431674793870951498018081005305837299741958090236594236539161509172281386460593417691058985811104969006639302882653847363774878105885381005059769663604172494435680716793401762674735488528663269312891206407395961293295848024966250342188092423823457585736652444211727983824582539351461061829509713741034993989510935265534904942177372111330600397288730878202033299717032143393818936023686234970370339695772127340109325135741635081682608573872516970278090959469418719320037751921141897754653429814638919253781724116008132916294350209572837662493916714029916183412965639339862861035634466610122670857088092938659304376770808517300952607934486975759422207849484334467253172527457578167884881234810307919007696215130220037443800856965301394934816244287807529974216251027370272651274415080354694143490291582994930676271326567869881364848466034544573472910452137013049989455080239135781232105682833583775696185776340747073773972677838270684058253960923636532273992109123096257770202569934828563689430663277988249906494819951138423362164517969538227983373179372280865653061162922698091468535213248089440987554045896151912784108059105537278262827957695887133000470087171559448705462306947346161476430050160227700421429680926625052328979587310362178073714756610954328502474715329841004997026859636356718890763588522062770358925838831477413689708696392464190142027790779630249115486633889169422344827902270879735019435937672235557131602604491816001219626220047048874482612980210715857116469846941407755243632972012889877003329760862686563468917301919638992118214003888084042253763339256177358072383676727384334544539606519005193020503196926799177116020644495901056760011059701933952369196049030275953120711802540825345744860889065869362669619488299278533887009635105857796213228800781640095603058061492797263857326975466167160672203133413613362920390149128310559429582177602128909100704925243762211434883146201488109608187679608841916266914329546573435076711183048342122396744342805147775695744911364236705530593533807470497020759100334521739928071604689505345495857686133713288805439825206588355617634820178263851186451480872848634070660945862159679287792235448058302415244457945329130095559092992437381962830195759928688334033538967598188728545852958298763671652894420656705198988112080277065645770234679812080852663457052416961229855210397677172439911990171230971984883860360439935943836260788302912662896328767399379185897925787952183590583276986152242550846596286177983794804820766979357000046012155782424667457723547762111325219228235942058758917070665987388589434128174380950189574222660421761501440066100259360032302389859910192241882827768523228268342546583645357713351236429538113458530580053776764946072089902398317198165605433742357673641602513573461050220405635612347691004047521889800268102464820767316524610179602492225947392178445238088530825476440112877305003428085165499046609047072156033932740162121334426510904879103191963349937220406544075863927353527637282338077789489310880143777305114834832459284104837073047004620404092328662859868396545208616874886166293437993151637983251135732378575307095885799262108865181900356057174656979778348437039636839775087482927863546160691138235400979145791583120780037499133992380728629841384805588079654894278196586105868865085961016858030226671773409540734673943887987176417261650444664335051489609140018329489792282984861265218802930382907469037785178233383469722492175759850375719071986043159812283016725492662441431089539564438722712267879002909280650822275103289780962625628490194510985551699251136019666271632925071333454741211881230485696975807514105944329345620232850114950519823541819498549164699542601550297102675339420413998595871874620691154875414830365157492724820835789521952761443476786884269156077402560140687449441760024605915977264625579166978093845507137515299147318076473476722861307644888030256985486686690128581989208241480992649721204154254981792943357934128200275099706133360130685560133375134044725996121241928797749019960439683109911948345310009136356535630802254880253367543736589504443966633173460899208159665559740277651285064704134753135217281397192882796198068163900934415791729241638590086452909202825198812124124444457723912267119683149503676155750536009876058750537900402186228614315865121163011291531498914998246546333773640513373911878686374694812552812140812648620758914601480906881143201641349142749289890203868457800469381038878812803829229917531652539803267788437130761582997259662285850647690383759364660283060776214835050784412265650794077506375797346799366385377070895094442593412540696630741547779513436999567556478525658353759940674844031476538684597071617938770282238389509442125577790874230447368840938413506284226977061158327300907181998007055393312038999840778301426036638211773735293786293839829199128774830424250136533155992043304623670238058474326099772886765052410529627347028284199952211475602760163534290457291044273182324393093808285408237644494980012742480474180439089163167437152223676332374427883284668893219217329292565249303267614162009572859175330832222879923660245399970857113272155882638087481125256319744304689547292357736211128889722827296651838356067496141207708253004252695634129564864709643576646606344689087371482904442010991671246645252524335327376005636479012115215889739157820714358987543314616998879908113516456230576255851743616740478980652366787425176539614883764452754604124510724792477947584869885777619992438778016520661270754316756552096004914006051511765266827637380083534823043376389268119301665881860144424127220575851703335625753671817763067440853254918656371720468102994224920502096469618962155049756086040368045787050976809546147743429532303732425636238177133612162169407998750827063647091311863418855956809993852050689721152449179593939552679367558376048723296820336304739674375504412601349813128266275134894484440583645181652149883204969453065608459406076469003157056819430484640715464087194358349725005029189277140679538985503241422926935139226398540695859475212369339467654732739272876529231072917866540118321668648269753516495523101579603341074551609871021210252013959700466256509673534046221278935531739531081794236959002092536885501886807788080465838075127171356858763226904909798806695192936399998411422723088355689333965106656814108188823786812324695691707296111921675979379008895188985248893712999028124276266564556400032040344596452768392937774446303923455229380078091491602317059973580494922655976278657529932841081316461139090188413992239171201747655513032538135308029566731177118293398948737775410502267989148701871325230212809420471867094581458656531603482715309706845153202067831975118034315622093793344651448689279461277097271738623196198504193720845041010928106934452321008254136751253040491463117374378878662551703203648005774776524661091183754762848004002179635130236158659917216226299829998269436300474177866524766377224617595556818385745553447825873765033903647851288481505895286196192376040872502531857179714365531111645789741401353682030627739807768295526723710285201300243221418127998080527503021648557236385264809342283652105234102218574316355495973333804932916284831073588169919213613015536797295439391433837342615182606236889471433421148009883366319962503616778247713267256858296899011178019105415766852157329942097922718735071278263003814292643275535495965823645432774888456277994914760337668308915022185125737993355310451202588492319718701171205564738207639671327562176146222171896827089772417919683378026654673529984592219382303194702510728590305473768755428075369518678528901446048972913591506495725621989081079642909584149574343017944273615425816829245800504981260174029506303489553136077012064126929567734399330099883898760964934789745284989593243433237933693443506487475273090735677510426125484707165619182456843096439405752637308894588792025605480032533610960038220807219050414040462528384518449007401550612936368039264042873034379116041613843007016631773367656167128150269366522677170462943614824746407707059908061728610047482464728979384248505366447833693218601533545380555974498260157989090512482874863772731963262455873733000093414844567225023283250172345119135639448362298671165986221874450702417766325905120080822564684265031232593832032625507168663263607223069595739182491392783453220850413551789760611086916761608435584304945346227173423751416701475972496362142152039884529593348947599871009230385238934941415306384846457495005928941300184984159365987309169404318725410655308622596377984499877473328222867199284431847455075741805115450727637334786732095240439453320141041525135673165136918161144313283570636658819779196196717773604681119514904618379896262965238954183493267802161954078285760874023995580598933357109664013122739217099329994903518635376524669530015287950915337455341516152301621574715427898804884502120144640695215793897613682113916576065666658305046984497218020625464388991284311656482599020168711741405738430262026297926592736000539845313361742979195057143414869186515364122428997017130955274687009349851765602802424947221720308841828875886666274309219167172459725722770574017437023202692432763627277725732050536967437913760532365592837878885259481800757552293130672917882045214238110748298571035137050194097968612039228918178111991031514072501486206145494133920933456204926874500335705235373261938135595255445857852091687920911364570781734082392223940739061673907803417779532889355301528375031496041969861023717451058891170381933571898919767101197200676158167587351512267696388666521491399300755361816261837571789876069393253936265023986681796885192900413154790888510334207807817336546175862875552147871016571212137727563780249180320521344449642329389732063200587903143807546293442452237412733708109425339665336808220036094950738358441849132385093731115823232647126170846676778435214156858687745193933804685713358960550163379994885604728779525395759888319708355870942454202543604209649856794192383376713111851632748016734775034180021108979676103342002097841816466826906773100651867122700889246317890984729106090382220705345501424742401046675813139816859997084569656592419769941626244973450046939190856303728351459516305195610205965306182220019073955811807575302026566295252419066248506279096907242734395832739797450081776398430279006631671096267313161228236966938885492098574170239164699323599378812246914411111246335146649951790901242014228000594005692921724988799967359643845273497561517832696134563683635321578247764251848752895561128277761606650324656094035055371435874246204912463264380128637483154272650257057804647948565065040969989391422046836645415383461070886884749037104892860451057577550275313033741396201926472806573125678114080828959696063883367457633427587763940286834996850098629247050687392277647378600121495918320467269989392480361084600532925037512055050621106476098067148400379382991752043165591552049490214448150888838789084937303000275268635212691220124910010265195853148066222560515665455507869947652371424399515590573730461651119368301976922677972697231962719890547464229576833998341157552805659967397011426939446459803219847742654143139738737851469434883608577065609669509500807529054072104742794952192949366765661793855850724231386743697801940137207280504218078583401378272953338533848482075339231995282105582277352327500913713387826788197776889612284419400316452857345202935848523324720842118920938817441767484243225718936573344190920031281166667870127444754102909012536172422906783396631967330760347086832977325956019074953238933796818296589892962205180535850002202882331612207161157926319566639752505069615203456806685784672907967534380215047030562493850138245144560450670443218696549957846384232754925162001473023006969986648643960589114586571988805671994785808412686478132133249760485386800491904308354847277159226412351903880554898187143930718384793064356044230254083089622248946366160249654537792076527914552472102778096273768954328536695644717818750071400421884657221412528561101986746033561497306229384304803344721350784569429798979870203791008590021928688297535189745938885411933070194958629190157061645948820762422697662165471506508708005736149892175163301687298247278877322509996105955850111546914390055506533863509678428876899133982490754682931508259844960231164097064999983782607743227800781179074450212306223351100009947720159906022223993194406212154611661139764380881024820357075199626197257226625550079763765457605823940149604208756530796594068253821416256257184623206147619860468812460659546071483362697994322576961655921864534578246268197705987406221775671859152262216789833019221237192854292468409570059532269144835591493868034203300706325499173303326194654281343320955741656015981376904040967558658999013833194787507855821078309185174644015956207660833446541612802925399614065522460242233601857911740144371376619201848568131119269258448675938355207269138887858751136673860552211115130304024737114870182406128334763653703762926724326525034895875215771160904210218096818234376843056761100218833292900873818735210471134603361938817451118354729660555037685198802079513751172323214179620602385065680553655621324896200310196994298492946426148727249422577234930656441528313114397173679177143050973318111572981925893207029473768038588152864587058422818492797594648895868410995001194253702774508162512630993220035116463594888723690285828087309833013035621934938804336350320673679798517240453950944177510279283687570770602861096704740344639584655050233163739043688670820316072113643327397959879724715592674839336421529917994288606675890841311263439580865221488876229372797039649557123545541397887449919743799785298102673638660548845143059666277165115585544613012759237986007246453094070821107434608124528757480155583132726887908984517673194076054998257158690789311878334379527693176172286438844155839073801157618910639536227132596547995719789621565910015540556666583819943498981121338217582036619401936081499470025610023658009168583356261430310724426323227781248488777179653350226465546188355167602410587933641842213143420513675539062976442131761484132981021701457364098901858047618172166781444697084910239213543895366007014480699894258313984356152450173127718129395355711625282320392397231557513506368084650355412740328852067423475038862464170030013701850546690645264325314480739282332549149097357801174939838062937060537974272253615106082221558431671775012265597618837599571957231270057583413638435473612399812826978021798370670334758476470812495031144856373329007658043033153971581554818641580048568157443864993663083064543742302256441117559072563334651782551037636921392631874491313515688764916340236380200730312559161000779010947520019973060358692448353533500278508313161114390370078659035832822638784432100283224402540353901361682237101393468281107675654360767621771997703959014267669278641787897998120028647760981987681555856242140755527000726823871530723279238250488889400799019972317503642454672844705307205002494861499621079617668049494150887391929575795121291661216807731685352725789737636205539527904452434012926540440591536877895318707500122717161109567946322895148010826997924365537925519576812255969548340958489356432571763330668164956031041804451039975617920825417544914689072495096125128899302947695488591463468948118774195944462134759183640918687609553757630191257349526585682032003019594458537335277342860939967152369775398416495450803849364404600880535199070419784399766361353973595872670730427211102020384721702280152430654403656699593007354337285217902115707897613351827997826420217280359543731174008937815012035156409900789825948073933286643305716155994565227641635542195059690565424158793375325748555049052642074030690790841684514887420325597932167117241844336841851920895759866830027949966919216599290281215349845162912470838523581637502996648388031966961807406299310340308184612876359601133062177610731001341941581709192013446208033256579276818398213216414922370752394094274896366311797829403903174251826440854415734162159420313522771584634577337524184615673060591574419965746887625772160757196918543701059296596650067750391876272875060158097034759032031550677335307916965270068033865322506781116046950451700253449530469945066092145717259285604581122809361332279019864885991745149529864976462449521913431796462843346769121066488293306441405846742036452657048286850812715635385586863238394071933307456353925760955709376613582779834344700293091055634736765919783648253726346704536473621847344415682637848373218957203997982798279178252093955104858602750584355156881813038365971138979887938704826305393614939554563426724237898730170423230302147201220800790331353473673102765193219704702079462214584999096522697801508717711352899003150886124576921239488420996196173574012115978573014012442962613565414612874991135573087721293284102187072939736974222420477639502095561045424109314370378517247450874357383143871632210044035962849279942404189505901773079232830225613331657041700759500646540398511884968072385979496798557669362731136281408352369356295571787560028722505364488083895999696962169707268966685743764581949732959096620049059459189792690372043256209488229606673427238700879641842637494184943867187114454669169902922241350266007899772242796891834953539290193605927203893059893967242562822084795080449768988091135185693067198260702990973862235233329426774009215124575969507601750238778450306229394958712092102771409496548700350928501936972567990175515648911077322888835111177741606637402301965342135753126879927386933722250770166959723225819555125294368043040782087763375394988893765798969542803492519815690997601646434417878908559168595622547021244933057787102723939450405262840286844992317574660076960110092770396964536348519776242603758692777691974544526086793467813449871938854881886664706986603157243472497092495363172072223047197230215043963321360227121586863613057852787799922635988708419442614729240735609219755641182027596011016008633942159713575167995000098998670976642145778386055012458149940166692978179196412335974302681587492287948656544385489775746681910151881523837761561651353446967499756108568647230401094102283499415650424335649596251724582135796546788473663781411515140078021226381095321682071252692139198909928909890660362662133850491937365874963434775357269688016278950298587667003761386623843406564965369427367001530868074851234928584203014036778242108731754924904549336008979704068865081583689649032438036553503819476565085300018813296286407773588078434846763461110956334040005624553064622473452082900175258335158539134328577833973576533458578948468609051444719671716608985689290341864880311215099725131416201568474469304520999716174447685097066054600204492217778601780407521620142502206114367394136459066212042734512336678195498811971482628309886050495205863702594459321701444544454411869934216793861607400774533867190318953616418601020132352987824129517923739694533934895042710715885772662358709776846781409145150155498737239266693063877243579841235768524909247787217935113438600606143871434948371152086405421708646407635169109842191324102820788830476471689406245816948056268222443977355323734131158055023982281472990227852717021912985285425247551348779229744405806704348485138652475231072734659469036501616575580827439710525611108610963790229021494053907200465808851393537622259438886689635702213693390855694481106775488327435046814847517193738659492018495567836162280768095512862451619459515736359267339907989891839791482550770266752878351188538352021502974699853689768163492751303021138742850137542934171921793882354227042470163844766925090782990023997852849677636321395476022291857879901417260564770446344914080732582880148259138440946943914174258288126217971379986128165604169843835625213282818799531303401529897277325662052658097082562892440331783915595447002747418032874181381322811452323330600413455549172618862188428412689644920846834711669711920571198342615206233669651472954164007963829053617060440190967697537642330781990866852175938871860937324153625218340631166358171942928890888317472369346593410736357438134925321542360536328705248436600586196756686119725795944908790238381155517750864054129819947833499105849942994478041006384092421415533691887473977807561389640143014931751440495083239487511531606581031965026034228858358767126009200564192860822318749256795481937397091300085755549646420431367231440085219299805960763493288529582975268234766517284801608108954436829881465307042127687958941065283253510009037438250886851551322806391177230650259742375769650642180855836174653168874352665664489304507699825231679636998481226168379921871077857024955229710690704344772895255203564477717244668917821432492047558377289598006967790884048643884796632804706551934224101371468690439333534222839330826042262202826321122107389564332804162886910655909699244880220730013438510238552347708123910750974403842296188444486524896150578174905058184002052223607739129661960353804587502973901802508769423113556757509161849314139184428699692369474877099717004238156006774164494356159908585488386982070868029888089025027649753683757579603466519327065214053108319848054958643817464353805445455844808784153384520323791348751345872222830593449318213280889769014777901408875875918687987133988805454978038783009152189125628921540862994759269824915456700567794654705217951637177110549887176578625581766229027633776121157883637958799922660551583693729713877627141892657240280937000629887565478532985315531479130149674390772690904930474336205891735858146004591295718877682717455777523370932692313779181752754220715491787301582708354291357159413663612178049604529272946387971197775789679762346906758585218314536808906969675469366421595774101119526149534667245883132625738165163252864526878630313301914022911890452319756607859947487761165099782971529082410187694191704973499961200784718349360961310774192530434960792198401928001283796311345429325817959937211340679242673420215369481818335001765725397048122750587934931655989745035578490612292109615001057501015197834551475624403578109633663460239972914803991782546713431294016021321944061273729806122413229437884137924999908611187723480238327778464295558083582170903356822893761951395014283270846744560840162929178168362889056768688364138488819422916493636124749747111151494801325441089513951398315996927987393773169318187012308724859441316415024612517560959675043105473573828892610602796945382628562730034709597167246297180120777442855513857598342341812873152622832356659663932447418879524310498050028465502950563708087234087273823060656657922090584945953178967440339585257554865743904348216055412200328422480674793138297753613825134904323422391101903104341521812267816038681659053084881518184540138239491100005234147030749049413431993192867075234755924314417622402434994993768708433590217480720284519894237193039265867449443364742100688514573224581916816954313933620494444076428077714002314063481093997344676739908225822070494484913738034206094566169103159193253735718002560464691208975306610135543782340686220853526980982375168965943895710698352265595459321883762022332976933872894333861158080877464445830829441284669180526966214254332832962993357147685189469903627897991681414457397013782461597654655392482188961090992736219927892804093137467288580673966360123894177153884707567317963368407964519675888238492605305095803440826385417934567216791856509222418526248701810096401506100222698382988719329442843985043589981306556573449138734309317518356509871037753897798544125917581961251096438519069298786091969554561098640131571309907204021668666086148451515509591610679539415680894728378027807454354582149954450910669399846434894322341113217978549898468733682365979273860301524086831266752004702578508166097593062468627393561203165545250758981629614465051503487000841047173741036625614392665790617142406879106275950908181206612730163511963835168581866439670763611962585460448956829167083279318459925066171508927169401858967046845825401799049707668995775495851639602796477157642604498934446081534729261347395287891704579503779154396866044592928219677442960282478026311314913108212210355063158482942196397486017745070754644654144874177954203658699979266064954482972449842090473644212836520186677145714899127453405243932062838904290702837085169519579340815036595586534067196423542986253303289397045119277614301658262909669599493664731601286546553101478121674992168027903114471739764992458628347354142874077378009206402574981351959027866621650504382057538842196286169639457761425528846375814666782762637292127351924975453655203938733725004358865250050892909581054426861949763197218536053978026816137910299240811734376784386911675520176133859514547050596510127866050278133372536808131187981296512725943998713773945559112962456215972197571957528940113037670634270464900588377627099407129133477976201589832954116632939748468515694978414790776408323944635881010613795893971471429682873496208375103527618762572698706736397019758420981525296210144654236997493220520617436106822412380412216050361092496493361925292322787674821371129466592537674903046096676492037777385169343288994562196537445163271648019225946398965927401544288712267548919793948370401994928535844666429624465875227016098064938401160639755172760404780897802529438091714760393210251831746952955326635583930637039666490996918586082988804505722753230756151387616081718688192052002135049622019002109716108189815975541068935906120560007675668761535684804560943344374511735496157978662562510101170225113273795243656451837347791286556208075164244911893891453872276345411844891131947788740642413796912359386366060070260639140629649325195349455213355797773380406558789657134033684063673651854441201984009661055076817943318809260117325599568529930042790672938846515283329022617980028075891220956211641361885536132735866842197209489686845320981157593196511908805476802529138734136431664657545045698696282368842905700915094008313790878179028509062344754585340781101089580033070778363582064018644885005192729848653898013592491985009149326819568129180647318107283203127612480110075021993613973235044222704516460789371649627604210835077940948564664867218266918966022776953301154556375908332629690010637228177026970672769219622537245213749000823416232269660061348712278810476987119767219296073125650186976164964922825911107677113826674484484615053115183804906493838828690051061216662425010596692369476218943117679948076191563029360474057869302371911341057460552556541375418822841345862934112635469956236380573224166139420858172421529791616728454984960421235948654299969792061417148498150499627275841914945370011417602769274286135855330837711113362831168232939880663487017002492622976306302802834113065196195063559400625416225894822182398180719486338589994963810361832642291041291364031739002134534911247170256144417354852211673154646781957422191726039347138519471157713543609763255622508813150162166414116949434904304430296723377998687257694261017928681447857872529761988284840921467259223870792023488868529667412908728440258927191689091649937789739063785614851947176003095257517300641029994970263615440891552418698038371334687386054250493079372048679326593683365889660604663563227456547679405964430333674329459400877412696763296048441061808929543418035601028138794547206720766137087578124716495993307510764559339845092978807150987343448800692840080226065836665565345395145055078066436075286656424807769473233039625800609290860252859677732575239468765466139999233678621188429444975709141478985815718724568717895865804223912159584180369514843590284243982879372073360634828469317232780253477807002353779045733088305110204429302419640198814824506956356439767542134163104581314510722977838498466116557685744887629475682171587921163332482733883801183178988246026454875620004765533242316140416289722279411406448782305607965422303214226066098819998659428799228177705012019752377347648503160921312413904890664015979128671511622636522493867779523029520125236030885258928204949977609586231867377042879939918073470579568364157166358731870574880301538779462080862031179257171791351731402182942522881043498316085869716517526720126741749999838014639801236901330707098334475241739573745089615378091747018927486759674964407439879978427669674434592957042477371577882983052191347186283579677098751333950202561237427331640067797051490497646058487251635354734260792938293037048451753177082945067447154984201677738659932260495031797270766052758908623461894530249303919666776950501055870012207493006637587755693732039060685665052689760191596688099605300917729819549078182329675348222170653952693794612238805300853922795564696463337688452873581537784269300797214931638997174029607017035681313757628187135193998732718989138119929943023645744361178964298249648640170995117522209121460649573692150340478011663399868320462203691743493034587184583170596984737924122458362749749737923653824488341939351280418390033202646234695043021160284918318418099735968211313573574496313757007040382522865813089965684452991507841419525033020902209362404604307651993771745037433907919356223643800396610134124435274231979905407145913729028049972745616649869147039196099559847145539082671248301297538590063572784329187962867401551155918047441862531012259416908041051161639141399122082338579955850557478256259958651441263019059895846224183682076476422289376291610365448163467015133611078567393020134886585994419771416424362551343399337349077110506778353308692468084410277462739039689458979884724395052265979348115979533148045931394665705999042346224804462421907114933306935162434151766505522254054284428771693818261891976303827673481821502899861120650439067904374658655037057187816099564305521023778664552799439762274744878927393320828656838243619140763681357084110949966434806176283577820666518688010477631173649302486991383794185303414012140011580191731991147745289081443140905789672609969956567302120685951072951404995994639871052974124972210817725648969581576614389750962921595412449000889975955901037384657409126723420696155336339256339182345099077576915397019273480591700415606045586500743148759842319044122326274795382191250253685780998904366267639192773051948956937346763799985070742852894790214924710174661998907090739060185958822033418955531145669893731695174875360466651160971978843605418244063531619420952673321276425238492882367255765254198738302928480614515765357729825349275536823238590601235056574652024951735937536879917097679544170363150682235956301231146177935520279828082588590524402012877675292607789545228648945208028043712521198421592688803235395683419905310437110856987866944802557532269044749515886568638071394506326880194010441282181701149484471150087939274716063773247320871380945991850017885722567367159200753744558406847993363453110804765552763211782997089509529055403487183878636320656081979086448063740825023372656431269089835825334721583943223650738269197549440537474045444472357459708922759862413030410546598532322177746600070989837936529411101275084386831460739771831624738741275817707132381255456812259598600633486233476948376385316074556869102675823979313592854226889886839105905512639174437583624498141619878068866096608143774188763180829775021947952992678412975632600347968860494681275100232612828872498912385424502829376885817395978270985570105009079675898330193033653186986629350447364887840970122686925587119487404258142476246077083502406178241096907124210670305784413862065253079807564984710788371184754523244544072086611615652272061134426980728446914846862710574183031216129192085356275591175286471636151652886418833787448340234069363191993297687817088091342397828702521929418494088803008856891794674693312199491317595451938828462706661311542720562999281216927279408515704988259911254473297831787450619544800008778962980100782955083539361757708565578718461901439089672683018214574634087865520296761426986326566224460316522131958220317281688346394884177499828692438001484954024544487359913830381954988930640673255479741028781593833714730847677016184390384372964303192634954674565173283284546531544316516374085400901411043875613711386997479489825829290898751308398184089646257702531681217296898109114860784954062827940215887519431289719247913560345288915196636647977028604830260944614113523490851152151468520287421383738466677321350777834847691668361558842269143435275519616437553013712521289029061065211255213643354263345240633899247577620545559962738038091208495225511406336581565917606914053874194386568869277753962809210439192357073387316613542310714203977196355738214067548316836258643092554568864678756334620524371215260346269173972475608089754635211785441789195826079301630587523087339057265527508583635339343127615492995076302066505515616423801666243114983691741165312234991165995420879134914294970041440318161805011672326521302423152460973534573569158599433988933957945068088000440496281378973952970204401879056331467036641601843728207039457615496531800615524316382140253907532274971807926219030522846223854083673771242849227664282020743106995395022214846893903203464407312213385617610941485210883771202831707379635301955130937207128205492368994748769939996964181438619756489061987879262021278767270062627087568601046107367596676536796820418583454950072578513252521922564600805742103295753670575083922779878428408216290751348930488215509422902089601467476776679170969525769001637530697555468782898658308954003757521030072354825787695541038595070939815092449049822840270618108492031100346538205425737921956010406016144133918938543293763801465499855417316590061634009574638563940902701800131315746431232986158766163408459412978879818873486522104270353161752703928127884072645575428421065758465249005337256512034086328103671889310475976457954155691617195387071723106839585519188159142447582132352677028364871507592104470398245712292593328028755566897919215730625361300844072899355321833625281724480696090305320627882297936599287728656324642658161388341468489913643618397270451334792627935644117812707561687372656375629488926550591253379207080838778912601914580090978511478955574597960343175866276929965938823371753022079915407852503335340804865155326671312709592467263103782457525806312710353965290289453353029817984476552410454568178354921101146347318250141663159076617286902960709134766792601416850144505653760992555874045907739050452259041205817201698907756080554981107011744040187464457582674542276387297391075150681629624021605168262545891392231390040647044712908399001465783935121611080358842742753541878543309967540822917649492452903537033587343881560714967999044733494632224424683719251583959950293749125784068138728676539660777583586459644614119666589862469663744777343460716319613452362518172777383139557573596820102640810139930539128643884668441168391947803820361828079519783883018331959852432362859317803425323205369442993080325047124325057824529822599050477671534574711003364092129073133670865990958099780912439903729528001671830244530790388805780090156057419663165843834840944248755822603283623715218312248618465643566271481859030382184012678403066611580504001831304895351901304580599189148369036730875514406223965870621171319187555689316937560692473602262227674799353482234960227446948899550556622585100523602693489377036368846724099130507735291198548956777359307013866824010165630156815997397283189543648334718496707281012185735456049539533434237816385415669892313730069562531404135718725018205576185889947409125698924174171732977662190769692201784246938271830248696788874763352957278669432088446317698253039605381216538462090054674209639361260074654093926997734472157039139963156220186232394788936555619661032150717881400765118587160210294518788123138222219087299032878751112595593316593877647690394239707808077607815931585568413967306507233248433703441061680774434795041834787887332352156196026035639808957283943055833081292799885698318862887616849355947768720395545720123694282392850587175418919400639396693823733055269775540482249307023625808669809203310382650552314696652307854135819352632831020940924865499092313879188295378730006832561522425616679615144403626491288754086338577445981561763329064943314974452300839798975528971866206428283193639638451643769694006413884904614474336767270490931253013993971289732141817310144900133938089738539767616644476800437837054655065799367310377720348922474305673145725407466308872411684085014006553425957027950839248945250092814708441330082451467090539944456050191675265135225924008146007836978757364231601614378025959818659588720516447141893402741044182142130501664825008381759728237497927203428418698783601302160787548222264954810579928029699145623977716691870875060481452444223143283699332500850034114973136789165350665404858842572528919644039293927521001513058572039563226179764028823884997706687164275805299142421295058177234676120737368239964840104195175044213958793956092406111878572626357141837784031303132021752677927595793684068224427328228440508367522274423196352773088950290722057629479325088122543682252131883826508052386779863555777009565117148527611628304403709791837880646955677162531307237864897418089247557936419848301202048647771939071476116514174690385031524888067306315596532293653453272706933286152976663679063552815924549078485573361273648782844471657361825269216144777269890412998633311712144838738108282479957027794722540023326572078311257002723028229541611162433622912129369544921303198484324353015486224215707593923673637760895973815020613809496106725590814253390496427186442317026902858627092580882200573824638578816286193070977017771935711119373810962353662010799899110004510307741448350750593602191484530829897310878389553328875738022494078795547929877654130542623408433926889952933817189497827394071239849465912421782497986731095817262712087785694985370399737164109562881196145698390798903816504675796309731336003569278785776435990549448322858659702900703507375650639785061718524112295401267777320283782438335404927689224535569684250679742419848171070217477954006394562602842523996888320501859343985364037231567579284647765110900101607448914640940246629042112786503862517562289345081839832790745003929253930916666104733112608638867996389361480533597992490767377321324078144335233756120102621242543952490776115795023074069621201058689275774828322512833202757421644113094136405194158464195975884067012683819802443156984597455754325636503848544007267405896345256864522162978308807249884444391561969573648685804208986695512262565348099574840925477534232470217783028028622092439117242436976849803303867969231901968592101635082370091827671947685163839854049774794667116702030752453490019659778317485487824984750594034808955951795258293387126461766661448451138864492138965490863408225898752903649119575315793639890694494292564306185618491442249858079250833674871036317229952836309315024392612768565518586343471768866498640837444841873757035948344808875293878694770419650465851166086769126409441199547508741942698752352245565519071759372901753551106362087713967880289015663175179748366858878422055282678972764333015895004816867270661432122792054657096543092190066988185154793472493391411753590326994223811698202152648326884162958702067471142200377496204527034439668900496713734956552930454249177969403661219248952312268342910556492004008508119971505705020241872545546614669314970432959778270191949698211754478000806169324131193554084705609849751114505884970881868016318736482774239938632005144699739298878129857409229537259368508837959701413108110127935981657674280612076872606365138472887252550832000010341769844156800243269528399716870467449173470927723456636994229346790087383463472702762299211642316396372546814933120690183511276679691930382155929912298553577186996863943442051840766879794249262566932245593120466356985404337267623812297235988313307291300866126970377795023393344981339528899536042737999258950078555064294683894608697776890886792549367687146492162894312673560454641375631122729812729990618526940238219934847798601145220720007797988531519058267144851996805133016264170167390963274618643538239735298273569625209275355096143239834762041459577045055836902190428583360177277473755190112250400052189205944961879999873782148439308689686294167454600999165250835963441885136307975590284212539202586803110667881063743589322393398049545537203416445123756050263141621546745175981704219242045224224281872276402832208431685509911673368912336651809235326996565519957813035656986509619244723451242474079338050720382275682535558369272410489407474797200883391177821046774661501114796995039570975925909713322192483285940330735974436513202419401628733111587640994213596246777694134958056707559783704584438308539225948054277618088071978838870463057393983041487380007870439871592221067922547095548174946241468766701322263430432802457335785995587084668205763073358746694040414000504581254332801972249810851875837765124028277685221253409512192183494638298249438054585487191677950850375749436440223945224885071877633950485211232578608308867612381639916708207339545790188203628722177141146769064796418314459230752181865606268565541181924305431276849212576535738904485901029211613399542316159957077613755119537756334657551974580841352417199952180340440529819837531238662992939759375012116575759817174111441006792066724883508871683180177037434448399518225737844217360494642196204721729285500036888900266637046867751385671058125597722599215707646913765049373744249150927797640632872501354008784825947755269498294159703269301263249006304324043371615066013979058106076042341844127505242007743248688991800336147272217413486290460597831823010698945411933723402284356056905657065377397028465765104987781548398810328947866258114397000649569800996612379037312037027726455200337271876381034337603781395230529183026049094506671914724411050216030395167270409829787048405188294861979063969388713337212971239607365138475189995268486769432378238648860633143714627768492716773584149522538401708677447592584442207637133030027238323497935412749478882762329735087387510004334312264266401212708449055317019098862706213299428819953771848241229726761130934019899535233850048050277227822125098817643873678090671204787574664007091264645666164824050434280505348682285463328943638799158351046620191505426691010339203172713131912225847903531412186529003968162109595167913337883501287326163027175235894565488522215884863028929881211099738375677934504739854295483282263241485476305361154743783106871708327535132038541614556451997828276365150383968649278992098001269324748305125710174753774226301136824538882315939945191809632499858858087848379115258051647535011207419829720423330180766223531932325917645562872411046961674084652896226005821957224985842784451966284121308914354156328436325131623507890077184179986241947105665071832755552597608502711300987558524075141071484976843558870516472521333566419117244719876195678134229162915738721062720182933393641333719962310109224619390647543905207923000697306059889486213531409859718462861381409080487997348451718599400664822879651074726151735390059544090347000817783885023835851362597353879984227071732134988872517035708903456365344227385055135087748364323396392178035806465611973756475961679805892340547154070300113594676073950601315452249540761372463657121338620972226594936054544415105391994873561051188614501153935237022319519818438987224146653778493426497321507573802573281165061031909728207489243386908292110160542514817600162869754666620395416270796092437316757053317187278933419760030389332369612840305786778887163631549043393075269193227707219102562351272810615269993413304710416794203910744380286854176264969424072211464134884665072965715846899753409464476241110625342945823628666182684786546227043742779320709800601715557533515179095896498274456695699669128872001136836312562058984712614306763297418702829860514130622898088708739842774410020468582458566129461258932477687857587931262727996029116306418187225547630979749432117495019939748352146264732985253799179300247430480116845073883731450448265951891697603718997462411446378421337662908447165417555846617234820282261209168228143752603716418924504356338128530884010393852569458365083946072911092395772073904475493344370037938244975682553563121834465240962082030394858456421598945982548585960043086655725566334218179133623249572257992712371730685627216609794856679367330819035458588314822297858272575279773602394368023609569806787348939177113287700347110026066810083909621726111492191195190126671574761516165754518738403299688701757343268270328459491970450306520553887512132776744153453620396513169411011846498598096637817455925742832747987765452344782394655705400659344184976876433302127476792181554855956463949435184943211940677704142541342002245617707389309805895864774065331047199325562179903884392674273802720056679244101410436600417763632375532779901472524973230188623940041222792328641676513119338421109216002516611270404061701596329282943101274888925875300665563485401529765241679574420896879763942694118490115712990543281273355985695199316219018718254340323401157151748153032967190230681808067267370614561084774340274652952336080645190948285383762637245650365414902750573267677506500106199148495806572460193290918815764223212010647556420231141250491490563956540269155751374600088636688730140062630358517603732485468882348353865379909146700610657457420735106345620159218788868875924011600682637133332368003487414444713737702322287792323944386364272583641601255199389418447002897494367850448046216186150971360873647051355061475805252789417755616142573826197834674121132258587385571184443961937152491351750543768911303391785185742892885311128726732105400270977674590475378482551616536674735344692198663796174139775725666104413137266317919935564297671505511459765458077295030153011002873429366689421265617410226022779603061347242396098106397549819157556680781122237745281550962642575483041859241670982796652697157930232233547613291891228200846902589709517171826248969614569793841817053113063362288690067788023243661467598434505545425430728055665259693375571028371547264995500722510705829664367688325745867829519309293846617570158169963048309001497221318996305384833718775118015315292594050486320494338602516184127870468174799896493936273313728903114037919956075259463922176826427875119853866314077444629071914136498955895083494099991120065145777173459245677847320588041748844091059284750937692888957010683241236364554894566580634686252798503983086659006915929436661864177638376188565089792776064105484778623713201731702402720816039641847929379480192008901907976929360539971208427525655605821083171703273994245530428226459714289610812765515881591543905725938170531968969707114573750231359761721613296828727840715471121480710905197065736043038505466441177709469038643387860462451697288663666687994396321067807105805015649442464227159938927579065437537356157707882960604154228798967977791146770899305396192688525390710055385716705802826503583808654219071360035423387132761392229775625934808204391063683437770408844691705309614903297455046164426487223101152459556179016440860744018348966875189504493697668808092319048885809094781151575849655720854601040257947063260224200052728982818108758428350633863571322563139625454694185120576408803381309569332092517087818410152955050342219562891998230575035584909456362043018689443994428491317208000519102113239247689242707996547042634808022225642938549109273457515323486133568525639078200143355606673842497596216445085439455379178144191017373531886016378539843385564861305417391757653811896845043152057256603119974787552776736116250317383016156613815411813222034080211966351970705898806624153150074290964192361887630110928825137812791561892045705600407162203088144374055060384304219920594537597252464346371401848332469278102373178394567617807804060001062960375821092417362611598609866909060267704873884056972435407944879358470768680149314494120554814957216591979962889153352746361174269861953794133676480744905165664675202910798052353320672983535904197127241076927327741967261527829798771565562812454031805572373990057571557235978164494241886655390142173082180651774807730692162299816916727752067375089298456160426816797215518329435667209140271566396526885379095414849203496341671480690611622199958871768837745647190751929339753698390993922757632664803147940065977931113410873287460087054049469326617101840770341642217677152418035010768473321393511520065180185882312278834948813886343071498834455935000904246016828916496797082235210172528527829665667013496783914336550931885142092027326553841744437759218268501088737878537129030427200923266594118986255408322191699116648184280167486395969746330787268631536928732106826816775425248909751544227264990702559424003830554654474500073536535865288735095608268141629628593495532872644403929548527311905163444989164502609488099511530161992137319029263030814300875804943091324276931387354374263100992512891414544767745800041927121658889941421417110293907981003118775307156573211075173338998254592439185772289072050016931740386660326403956532423288441961704428117837204455707547178485222324637554657935783651727807358538865539344572864842234063791455075887354132705792161386878563088807771215522428551860634902839007066376714922287814640108259712386062161335094071839557925761977578770522288388613573313078509306001278376383419813345730166415837390170903607554262209673889703196987343577353909440066646308142788774092541181277493014056170735843344372479948416038012437676086728392105255622736742352712472663848755900731641696944224542996157891200336351778825511861408741037520343972638048921174431036801399736526684651219499116559041281182791764579120457088003364608075468165771034813178134963478890468306365016263358729709639081595635974870268586335193883707067567194021230389148764468253884236226126339928162079305350386803290397990448231258883116870000859948192017546521841238523595597974157356582383823297888328384435031289743992873555654062497957918849882159922206322556354708216533672949874680864759604097015262788003588534099450626601994809505532902344714916383107100767880369732977156809002876063789828506915796075395053549370787960047262037522056064635215610830842215745398619683273098743610538151468780427135548457109175117718688559122184989356832114521562827155443514788115981810692610116251062672275876325535866591210547238085927214378616497772646039372892839012872753591153248726663542785658401046945175737451799633491886336959772128922326045384929809874753704309102974427691152638592562824529400585991244985312882747711851375240333909558082434850239328964426039282214488324754215365468289161623840073353597921298379146666484674400625548584810406694497984737953085602654336688144302542875949348715621959817899879498557188806004322690662162464788342328308262339805757647859070507298946616931285720869862077852363007261773048038946539498096653252400067963961836725683108170823333796125208573707150765028610544034919955421953493209127970722543199389328395854143287884387558444651297541127562301991003915649307668375276800123097689711661700408511212487469856411882914965878407846143977226752361900906309944023715858460384587184822512192832986965707312713514758682620941400519666162654171063538610229674393623469919930241020505708342621459702975890042403098052596676182580580400795257883905045901359985863979479924158547693373852028832920268534016483458023590427299911112969239202185296923877320968967033628092552937617663828981004752464108017310267522872285078205439919987218365452923874806799541803764030341694265109338507638763646791597537156271729778512699807144504635008373792179939049442178001779518272232866037284253222858545098393493673625870424559150070291458981432469453358886698758726364319154143053609402154236029811233492822257661644697251483454851931397258432412599141278749271402402178529335894692823959552685358427921901370597085116947735048631322949707829673881943011886721251399496664897054575137349884850426515916463750173332658589252746790776228207018209168524906707173314428085290746523172694363379447811538893639599352674195311096659867142553206264911930808283146320794517169074131746410101238808831665298490590385955880147528843608186663659595963725506265360155056444954795231925674492681507364068649540403343012983933853772918284984048942074096874524199068633814112902192605378511882187724904742568949767192925148432972216675476806076483063076488299200311557668119938969366684876894310213131394643044081135237145795546754050271894299205431645170484705314586239303459802169621028789696262651503133606383257198082625464446671533724940825534985404276805114353555660708801021597526805572381493673686254394254956539518904453438152282008000385344900035803993896423574639590806611219496982101103466183184159415780042949074126203644859634991829725954006229135533203094251944849244060773143464993138294317775240094198593819086274682810861293558376997878426193495120263130887745672116419674982449010828727320378464498117228256577950491522519649487963592051748066453536893160204723510030513456914674231337465623022927914333365926257376333447095829920590539476291998466349092308900589167786715010797075475434736284802893980695829031903175096642206364914148991632894508236519861438644331580359085706016390054650252942933815256523666103141495845866480717555757324872002682737434908382847143438647337428219107041591448828050771242295108800340686936404928757103972671666892079638179050538129063222890371112020686106113949300618094327734753116429308187233863760226934459551425253136637652705102045524818568323601455185698852506182092549086104756664064236074301169060265353200343508069244233654513185727166763986466940943999281280240691500612925730805656781578807562775810776268998840086449621389010980289054288744598861731416031273261292981919542193415614068105563572463290802714692311639979469405090358914354475960055261048259615546626839673926482923023605367608733428196262328331357057511584231765104263667375309867686379984458985934523524638866800164449093304963634110537837914562002907954668669371508410603149537596959742976436898461315671256036309930746327438953348960738692449528117079175105810598460186681356009859644388354075169790252953315995051062475677221368919202246398400957003443160653774234069559050009729553253467824609992112805992204467740320552217887290284950053407396487439411158039170413539931555589596145476232196337089994045805329371624128430992373171946935722890670638270831912165350610522187576704145958230264933127556522626705681718583029707151901486004882235246614804350601481897973769519600338407054834918327754644261138900618136295661177861925330313243349329778686132592262047798874533561334546447575182181530738431766400950946981228734235819942328062326742295867536374211994614111310373228786219413666555151220913679460966841206062259846756023641826765023329929644946009282950074490530918337515449104123248357736905680961087124462608905521825656832352646173682623740499766074356011163236237120848555115014708267222271207892768198569495780900984528362469950594120181184129213041470187368748612841827319441230881935801347192136564687445217091174212453892331852827489785113129386895520359937657372712006873397946240621907199627830259689166903392117947305149245794769705761631427116403321391774733464324244555646797343405002591570790277229789677275146219871155218957782129416880799031975313449283137496626284461578560214819129957360253194615869685810483814995860498266048686219050072585834140036732071770666189117818236408398630123794425700453132498138186664676425340010060853253981657809914799955413225078568447046912144723548399501409910490673635167446572063801009627839023758249976402827463440065681377469726702013459446436466746665139814134851717784194370667091390266255906268152704798138771918924926743769637590232671456292033327781914655162415130263509522727723545855343004215275318868440159204598542843565072104982918339765664225756516412145316720050399305688159056035680507173089025360758682695435782375215379620618442393911614764633474993688145163471488295471598477905407524181044001696412607498797230075720718713283106519277133297191357845324250364852294312996961293779861155430484260246745935097964799729477053098089248640545181600813648610766500583414085450395928110328529749292065030421500546696658597083545419312521363824741357790662008914655689133709229398939874946565002570664735710891627332854442202181288866783218754436652594566230297645170720686008546062932582911550397793160866072241235384867332172346795024359792066535841798610866908241876498267832895743360975335860857864120797078841324367680210434728273320384595491393823443541852466138512070971443172114786340156955787418343681450786052537864017821315277707434416287364444073782556245741931735698877895010057548610261124765895898710370039378870348095626967268296705221912171429277221424256187373003549509369600395442964124142728104910435843196724934443961184093128381875624305703862073146194387023510518226059460390766530850121319312936697302515995607091138178410017823163202327166302165000289640395333765659491732225697685939724861364426834890888631943120740749265924362006293885169389379679395368420479260021864802319724994931983909834605912593707811581685971651793375474752569993297083151621867811136516637164070927104012764262747161957340760229373248662467880928640776956464813940694401065075525162365564082526746500193936833523673835101711094565987276255824183283851777469872199356171099490724645028690032972861724226160801503328395800468160844261350927629958012889815880000798206719261273417392478204745357878740483827959270404273785674020941582102418527987191999731597685358591928348515200291331548534206868419092705216757270735062683307377951286787555219888017024525692099561060546782186070191169165374482589380290256976966830239434400070825875854413345540071466785885533540709867825127455456360830519380711156544660629587026213970419080437568930823807555464124851791916729593454435198364165224224748899998123671088881390313695109325780071619863518082001248432119277077144575216806766721270281925371032740555858059591313335291807523723271464625353137201239391752978895972536972680670336779598886656586893313244911353010451927925320319504679187320802240526739255554865551567094769444010821448044316082774524426652469461195029732057067154790586623312755253979825029683304427960130609406862008788135716160038699550345421098112854401771412537030757331910215119820424754646880779934630844190347346549862244838751331672048849390099255987479400557138503512276691315251857792906219363036660427663248229372981071089358184790992730894900397111673999701515905750276650613790256960497620851282383870053336867794532812430979060046362544910308086500763165421154637584523988481766394429764062961811990878890136286991165040009778143251138460896275519001716664671636931789919376776196916545191916711745595958861773556312714418432563214970016360275878080303494738662575517520625215838051375345957067627089866785280925886257603189056514158406288488705123217475737223412272207120436450019187860977565050662228808169598938030950759201792694411771503355035903451023825112189109622903026411893987061072943137873271038785070017314887412312179338870240330063643910380740947092354562332285812321076391812278218707517465412166710159104484594735308816645240888535030373314439112053756768536910962593392897647407615007604522927438809855885100882944528916075662710761873471600611350497130299766696469034550783160687621040834122154668041777956988341527850739884153464693649439261333837442367699415704323214474907776667845199429504690841913908608491730643426183462592019569430297511278384345290764528626003974057217062295292433921797770265632809694566502671191416301767987696524811414362251459425154053638305030901399837362653530730426770066963958822381159590380984980104418450143669260658706384102461809338256673224177685966862436440603851046726901775745008323714500137686403836274793279199238161804586782129773751089177632012793374854072424255823779141920300075562407386360036075403494550212992083175972882450588397272273104022095863685605464795281956277625051917974323094794359616826390727405599558379115377329020082240143286984956414848065921730879047848525508162314896780842309764864925710137597102348309472205144977769257376460497415246480595792840983626134639039732885104374582935039522778315851844571117547699875955431943627378974105704221520256440120616734051734878466571761069582622417455639272733334354648890778927020160170920413928941934107428810307154238695957187338935077917641604100797787065975393543998730196731029882210593623087508764989951864656580043639336441817355934700044047251708522364001818676668171512945474135934334474106549672633462817801958542778981943107692648693917191424798848686378775479143918438415358675467304911922901531964397229214493300018590292457110177919033505248395743333170599273526872858612657023710152873425674239107993669083162142914985708208021715404056217769265519018981259499114850408183605993737476191484212167385201893139559476376475035939354979685083754293157507028826091393907091776813654467147507489218934707039196813480156357228392767730862677037399813273185673561686109657673852099890688128090243950751177760928552379201694849425414655756934632687073618027117383773394941142935707967830393749245163734984623580762005917861302682268650279109545103269204323156292326677453843143737349172146350141550862450320505314999081634789590672100160270455077036218296226726328501852153055751348614599190166429294336675784587477249007112095353234114685615746817851889234424591329231328872678464706299623450369824255253724686783115010079824472801188715673365698616340398980670838652671332214974941172687722368157630074503383775683253702542765663427907265509621111451249229489925007211263239063020958908884302643008058733236339055179527850028240476727071877598414158097782879486402406642619421875083693628603353434182952750853512638624127206248609542238612798425797829428417764964326158618135948348516634418409033344280378652711668748545124217518111673199901530876842361848870298391463513893641770151457694082529052345505320369463133177186412250928066375180759007716676981945466144205693043348402265991479119166575333189027946220129686006911023021346357092948713922720483022355003001519940047675216273846265885311138344668207455783148331784650059225295249791206608182648716057544089599230839637122471212872619034020529234671874337102424845108377920111455425203508219901418008711949268978157157915385356383905444383717936523422656357939650702314945277418972831908564748514288516485529832208620163288917214502799172703739842070121806902160580141922753711286193765530843102688383616561123657522407639396270262727809723010091553126964166443013086382998709745355707136571983150121652382329102404786744150054389752020096012150123006167199395411357358633171714039204708803201685351855816370415107607923141621933090457996845985410696742676389106970670307639065253992250965140268051325090794988235474021833242861057290175097252002611996089219001118046562903914463751289188497446653136978750863250902593940305389427059029505196180874457195553989164903429494743846237079114216703752642975484233420634345355236462905236993776317590190728840805924876143471492144024098017382134427228914941183150197899764145819332335893899120055267582754992547047593502425585453504420858853284557758970105176465735239315852499996026828239212734343430119530231107986700036610432608514911805730188870948519962971997391707238989653447204255133298683154181518860699966034848891279852794261206446712494441054073858201562519082670018003311160457252029777314764043905223843522829723892411097099764376887669838153637009662596775990937337896094024832795077398640539848775706898745186787970731819036484099688363610152364234834964761791626582879371580446405298161080120113075614465923402741052352142377051595972922482700802443652601422120353515576182217837889513785318445253973393432836076476783805082260261723886088057339255461192237190798174298232214781615435167755484897080948242290648584761331490971690068526918251982500781355542289411834240337633853547673805997468689920541149119082292631928178839038145209188401303821210672883008454806227745301874714721865849041708245822972375841430432023995567449991175659364881196537963331828708061633100753180454063800928394660053268982936735062377060008971311268570327488013897645233194667141387035331920267232429982687363425243581454614120162710948206493940231344657833769566909091040772110748780418787387161514550133435541301897256291518946813085678798578603544239156784705364377664156162068310603943650952756736237592690207050639146637130529503329047557380202547362316991685411164626419861352060390621417310312401236149053916040638253872732254858801837447785246509596311563990466624780594604870387441943267659672010249946001967224909229787878834769474267424645653635696875380344825383898495971315745413540912969723701234630461228877662201522884839864397714395696174406605308135879299499541127082958430880241990319441328155705672561606542439897218758896316106220295817017530422867400709187597960649323542308123596040263838474069278851656981711071812423894015363163739069993601767279388535301741378363459176530064755608531683524386602478277948963716409661930012260897913466016420580957577291590631466497703444938983725318799863299650049008208046961010453504145248038048862002360591865536856015554588639214073086303638324784646693004486800058123928945663544685688788080423128007548687730352523845101208301871406642437658511753871442655634756577367077961090774774642432890546047542709348697942726359368188264462029578999712133065881651476897356287045300192195566009734049702528285005257743682036569391221690802802846517640006421021822278025953674700839396557821141496496802079757424011098094907185180013193978196657905212947552361632175085982579626327698573800452417666395547243684198178423588249733208609356160045224075625842956349180446649848578071271074063389457086123672798059435613549181749557272124504468165043479803847878207607362955051616926409941561818268153102856337242446363921919497756742642390461005196405521677797748885514025296303383836487383569287728061895661898093315323822023445467069048830948888874070563304661950883348456225734662739097531205303372489920785901380077565258824291798623239419667685066996637070557812437250990351174984705735890863156404863548180749434949500490149372823356283150166445906341149403673274985573063901008544413223032288222977260229562062619992849967277231427960377402502104201381647043023027771225536699376537356130552921074715907734865490384075869624982010688249869551067204472195346754239905975601195378829449236953351662583397399939404338120482299876211439509998511609533426503797249634819549229652374184959973583685782058050341330429426833961908956057090449115079445453895950510296957743902089414947179122786068968610896186642339427602881644266841146311571899022884177788755967962686620782138174692797710021226310820608392124836178941328887214632554256082051251637894892622785163212982096995007725150280170073930630105585270081262151028232506539151399783748837877125778569720860054975091435071498204877085178289982731491248594735724778967986415239158681989385680108805790865231476556952628384731583209797163446890904870988943516799446526882797072373093704850577889293712350081306457800473711204915289740512627861870936189777923559889929016152013895232958539181616613048597647512627612643600648043096250033075198646567067052838855876919341917772846760136632800498665182229707068124439856129951979900314407613652009324679131964255203007996918001807979168433434041172404909794548932955384413767231213240534819272028033181688001865659941585146741543732382708301761359352420126784508909711496741023130151949464042825529661179741146927120027277778663139084443932585267970295588594408021225754780015625163732181083418157555248970290021775424387501231539001104956019072474403625855463765168275131613001397818614244819833135928402778439280965109805396722821517565591625139676235964070301735418086790202307766358458834344240476557175056755927583936486326166610264269619565362711887615746937711605637232571753297962442866684216209393750810743190097144790872611000918554778606168573467602253911337275845198985538464371608349167407913178796266819540980703498941352568367420502931260145779577806246008267736769844382951795440934885971446883355838169174047740357779344375244428194966036497868273331122946703097984363021764985104083868602374596369404886246259616983343702676163538683402318889591885463353250673849858660468180067276380274851503833766320590123118797575473071197501301372319846509137781996909560489010356586901633571580107159225862035143267415630447760114985891064708833511874163942377850493323151783756799812296489252331024617635147383211152761344213585708909797950093597838249979639038811741062629375235104403850401368552888376988181453542333768578398985798116605947641378481075091496318448041611952213249404454196126864014507895969472893967601040628189830953421870222311020102669886100755180726210826648495571094454469584089606685029618132240155219445439245151048416772310861983284289372562552255849380830701902943337390361523133381078589587546365053050039608452532798105872364873851682499772698433917192906206481179540329318903712539576342356794966141246006406056354700716534451746681711426771780693418276198381398680654484565809009737979369229473948801291090309695188390144155814731354340317009904642097801465064589294975022097210727484966498155024341814793200735650042079443917902444657642270916000464246340866433302289622621525264345500853538331527825834872270844036057973851993091744029507836084617307480671902479252813109796134481850345169042482399489724069904322428410370705872710505502614730261907898924327047333983947005444700268180343096309884036501685489345534048502923755238267176284271557936273461597105645715988110411215535132014311164443659112045938002592554962564300768296365834898533167627058091228159505099531879766787716057063190108111376630122451137477500248861290836307624038740441036338309291400461010345177232570653461490046237974047286222796809264014399869428912816563482102613426655847493120568050315003074116418079429447310198600555656533752378406793231095313177686169111772125361712641056600301219694718896039338413372168503058798086790990921181359702964425158461477433274535480945949268189018137648212768770472730984754749629908680977234875799329446747103340649542517800865021403209016963964713525234687454413435786000551174523605913494613645349886275299227287430538007455204066017615231279866395104545685884378725517466414184186903346059173065758137366740660672440103335015502247338489521059420370108170268835271344222457880023686898370605200651285970353094162700710221457285137337581587992814352760975424392114466041053757209859786689384886243975243865124861842078281557050162350650786486048156623222168250411521922273101394145070150081286694556441988016452808478780492095190694257778594066864898581944584792400383099250697242565626362797504353656852390617167034663366156572387643108857541818201313726122660054324357216811431262561154109067137675340218737365057922642837373386695206775823210036847029199798426746010770204448791545783857533456195587792490013567157023664283450665720160462749162870791516788397609218961505407490732778909968434537714492032996863670517230129585122032505352319010835667124177202196634783310607246183809712605110836486892600039328604784486925355898771030616288996558832576184881504175000610307044876260764575204095365819716425912680943598841441751318741590133987379685611630909256498924632316861184797625195880087791508716681360718454237552258185838519871244231609368263878829419393392815158135494839701174334733102210860606344197252061562683272900119964537604113731662054242530245280807930397605545984447064165831556246773157741876318149981311189179163219158457983884700703264924356320724422872718780356827972566488985719468297754324534376372979478296008728803795609591812983360849448548667736008462349944617746521216348429943821227957270745279954041945923771160182150117000556004000948885254034598277060867158334636522888596326838840161515015815224396391284965326290630748311931950634342246376206823810628857586616258816682728234781887335385009005119395989648293498744399536820686063809546263335471237700281038152875747610146925806854343470264869135781389800487898782879495211321889321678337597341783997541179444907735868152007407877081152864389237254628250801346845052192700414298065501771489834277444800784691942877166630944756306951814779367930398767285206107659537072070994320337645487268530058804657273972961245253155763837510722930685747065236434906796546032638382827914091035129353115464737850730550094461823054254640042060923621606768097579462284695171356677556580636953353819040209817970238684449329599223614744661211515004629043785088235254751422499739753519508406281455321320936682207095267851791047922489172820790882700830237570432827373898633347001832419568255749238446016366187916513263796807481926918179261605815299282911203017563416634758606788070601884628290224072186908924643111687927896551626269557308593191011084174461116405808686789735569649628640685531784505016891092875476740534135076271618037564285412704756883302173228643369163772556492885661341344133717387481509149000475714181843098768849340097219498506918324373049532896361333469620906949645057057518264139427691973285816170552235904851748013350676163746090348013482532102129362509994830857379993717870066298524447377850968196519293896699440855308425698415907339773558983628937509644911168057468075162351830855706337314575880391311667383029042991980498713257980543763173931531151728675785317351800773490671210301130239905338700730794285319268039979561303841493701496301642244725683008042562176586063773761994081554363414406715273042795880269073562646151621935385564550414774932529129685811869356833374478296319689400341293106429599872009239275629723145037640502065313726454281696105519701222203195428002933229552212982316756783377364132984769978604699128864660463704146595216722180601018558561484184442987347694816297821248699057070327832555643934224727580482837896662286611920184052823812260536988340853666045735842891097352122110582549775659062307864104872657884903159406615506469894558654202778406037009430631779600337360714858067252512764309216500594347261546359525329397053911530242526328382705739899224861712246417481016412564221088316049045283372735112393302892094878504617672312134508644894983803197816489149826835914922489823716229239875468985796050021847934313976016217320658332750917591928427677348363794934428156826422164518347479403594641310108018969681210872354517259645785435573624403332684461448237883108034241857189139717717460876147715790802139184638866260463088348818187500450447148274003702217287123456364090853678469380948356928369342538557892899377423523602601185042754343583516655242800534332465334104646417025676267486660827715838717966718924932654010743094430306704541096190011522090899077458248745984062488671812971809906688912571412039737160269132080425028792903349424405246429101795325302453794924115348914161378440408850595010717584698311680923037059882848888160460665121654419154878492444239443911397283041093056243828201997650462312386793701656508435436638893054617340034706892052999059076057513305224247337905011287358602276824849974754935045790649633191615869658187105821112931418640551740899795430302612928888769854241626612573333395711101390222289188780325327048136891298420821650331636582125995686469028024420593520226225189049609131644223070340456969135337725410980010417969625163980944837425710579976401846871075570504579000002819172555089370064004170542886818610143225044066867224833368293808219818621427553733502282786437922607653047279875949647365682185517084974164592258227363103539801701895563777307322426740184710838189755868407983482689425667345977609914551103531983870453832861835116530755705389669956670795304898183802911544932014310447205067894483378979916230043335609821887727577512533861364422847134228789111759624165462876901670539894251983137371016501813842802172669015542410158483753946868922692908131291636126238402376883488328130693793119218363703046741491000124151321280473713860854073468406889186099538612380457963577981652977000354604727219665169198826184835938614523183000846918776606568501337265181891616957630370804875380671624050919012605097717591673236621014689644136536034421337489755510564138506171867145340981075010578390714817807928812649383260867895269689116911488392928431061099346703680852237592821416979366551078513247991741754608556714189925104657516417529185940008109218204728819706443655826908536694029057725621908814795843967184010469512925834134910978225896222739756919614720020155513459987376027015944539492629467849169322679741557715776218497157058062672874819715533365557151256895258848909003059351106751430113199792868161694807773145793763087534796169504646565437573841063026955075618231427471200673623195381736162398938821234247719115800534742330644150730908203167652713786956866211610508634718159944601203593121763584186946318273209306896989129697394763827847866150369887582466443121880608446340388526030612723085030916514458416128782870477639951531458350608330547136065227480957107420001794976067085699183502481375660498918526836017533659202995886049635691305567368363940637268874730722660661084365340664465236861242417198529693747616366783560017344134068679009759418033362143820660369200835713067553564045195500994752278615892728384371776912028627400602430623962220527397028525970817865552180744484549342116143846618459255987827976142573809490465344834114487115182350997274456369225937438647251903397970235982377495505873889142325186189222081230163570353522680742309086478647691679259833568149011444388493704000149019953561777419934261156292469516323793866850956606428363562298046943871330176702331266079584353664586359797226801656360181108918466992732887552455759670534794491279913758275088375445438206019152181933699349887309622419084571689683219562010659049382011784228144348137730243696567293553891472782368816045440613801037904099069617447924037967321134134283499609026798084527628519551916901620685426329095970922075755033541619810904380911808793160464165378045090239533433861602780235879451743945037767413984546660511672956344517430480417591597590115963353925077249815434421021342717870409442772552306802509835640087071663722862755402018914144631243275377377771833503593718919327378760999532617209926727761870903100881582180384819075385298518341351140083726603340535993010420834578161913638402044176737975745987639791060161350250101788886444993899862588664145147119923113280228838447054286112996878828202748081280699718444656472437869793408511155590543454969985663082665532352055533593673146518145701851050065540309189941521324359995651713259427778494456736597456888970082355679024632457405728890207815078705576127734582089124304739867866557649853196649086245883810502305166228527366139922336649377727740288765724971232385114022209744600508550996810706930521332296601641819641707681413338151102897581310829694959794898721741229093220074558570293836050114692515978222347398914561468215892253852442960276014556868214744555204066057076625707146522521339296393081765975724041702780264861173259925354761485374236430856623753846569057731374296238745332150596003918858198414989066566008166228290467637169927867069066879168116791179064944112302495574368084553216227754209728735322081493181715061826675845012429574919906124344682759759884700850166612787915180808512594953310226044759173863948970672905075944182690391520243884495579312702004386770531776683058069269663175357185102333162722906424581689245006537507015519934511678588247411302199960563189198853610094387613368838616843846771864201810272916370058136622036826869488249669599330605334743543389174191429134693847633853498270342129300016679811809629314162642197943517436770641847047001229393079512552448459065428536897399216077721836602589346947361918214067415522335115663257042626349961608030784770472373640749976375747132620376819302632227777300749608146611400585128138851714679511121977375806624106977803237349295286103409208266701133774092834825914226319500086046547343859678908618595612851561886973980954145673137848925317894129066322108910306435003099537529087763584850240320166738877707997882048008148196999319854805927561823826326481080055163324341769782042352677218108781713569554646595430127473884205751168683040521057282204404659567728023815646803685425826249902481339389938585983780148212846165319789566720434102953862031462261814431149347459070256673991220734037555897759300366186294890539974043644351906738207868039163040953936470212543977216676077683820069454072349886499290894352748058077524187082489517817134043481245990038033101384991232281685015938404787212571806498301328777421973989336944557580959501319023653936107754548988101579767857128375940948484027588462590135884286683090680792533736183461236610804507805589978818567158489837969501637656016002078292607031405832278805999696609063675271500008388199354997540741302753958447657734789332408170856280369910954245765160832395294163323425450509154070048963222085728964017713809572789891600018307351216889612513379479765491281828941598993806763880881359125592708722360442421421617846613845947739127037346313146440571990833778389023020761402584096441621750281285491504585641009699940469186076312197483686290476500313332732575976292744788089523588740366599206035364686249268528797220379611106621361036620182053021587632125870969083681134830300633116401113163004708222687932941244951612599444706115533569821850450223498993959427862411122933033433994086658465155658459728558920875600760550031918122178519232184050469177861670329283388983611016606864858969402954836370113306585906355757328563860191828974454247774691415085846824493717256366046739738853695336146481723300495564481360370311125511428799095058193162722166845835422244801319302607434309346337830673083699797259720094441708412659622419329037968935693914604412509910446593825610023860302450207322508595567254469917617433314535236774158631749915000675945752668413396156445323623211936659119076781603921753295031123556552364727963656442212779711378284559623924447627944906810830950463931646989659860464136139813895740004340459500910369579103174734274908462342519461255273188364035129895771615502667161358089502714811212633273388757211149637218931302312667531968128495743393757134304236914603638110701898829817725863149739797711590748592288622413407896429597914099313813892897237392362287169271248273251962708480311448880414569074207239722182860401290448766523518872970094327879740300603648028137662307263595325675139987755556205217544408147408603858085426503146564626039357881730505634253511852148158369203192783988628761801633890258512052600618436852080628229231077599735408780375758247784247341343111059144938665007899359031753435432788282138327166197893019498499305037758704816009880659604243269473667346928735347580363898822593259341018487415957704546731284672774849529437767042964478270170274401274799223286867637699652074018055397340816566429937066380896263492517059667552922036085580107720270832386594746039554995879534804597144223868833269713788022933520990129417709242326369695471018956299527782157027739820654038569701079794090367356004118953397911219194366337227152758902591765390871785784670751032359856784134882647962209828483667978495748914663460513724096078145842443513558069379088335481173076900917870319083681522439200879239092347049567649166460364090762816844598231570207394195122325439688854471901454348773397147263515954556884068570053819629892086439002809887935115205669648259104169246403032338588585252587179115033537545639895500035150917450594461390038291984087688696410355986294959333844729184842541903140592938588097725370271057813134040582947274473575477054125371032964371244813870403682038556291560499569956424054745866669479307095475937555840443422877289345222522327144856263717472615412401860033025414740690657545764512068157081113650632337224698700558479972784358800640446199268912333639703253257517011948404352088039651553397678004966253786446895763160280348504818938723308674926023541342918282531767677726723992128656311132927259059813247003522669526055706075537959374812023755302872106667602396391202456930398895052216099575131488074054981168918426404417410016713743084352993829297043847304718148238667732324276403741832224193263389536787737593382872388956180622388948831738839265354697643735060753148280615334674571542076520810481857339422859905785710886250202031986563118955801528845124141928048989303126813544775089822565227370849966939812152008936735872611467052961272885488833158782101612646210279835152246234316148232711427135795609794441951931879200693440468332475676413150912484199190917577784672043817052601273824749956491583153821729420174104158633332790628279695989813994086775167250017252814198612468860244263427016344086833946184139531154163406167971890648469914814886066648070084135122244842931687649994964772987320168471732094184588722389109712860100476075994271259962348264128849248742597252765090848646900380780473708081610605073288755550452989409333561772520217283509275075000892874323411608725266565725281404235667016821666142681512966674183105372328444259352929572386067244661268913934524675292096343309982123849155830103598388847622786802930845989063528144833664854534113132405301301640404990894277970944273345785314828792095416467992468227414395071625431863869330121849630448610637487970377296911817608562190935166276852878045456638533779518323224170910478477456915212118367666095854981311242577689531311666524246653888587478800146315572698168100295866084375475044556109831420994472221539352557510380559563072777082784212239395491958101616820525864832790448430667179451063611092956262124919317957837152100886330226485225290084379073234972722697628542511292339217822744302912271891058127493299329767033886320213542114143117384992570955504792505995253817600888281953106449162682623630042467852045422559259102675166172764730967327620910731512274975835158808968817362369241313961881510300640146956586899301055226196513536342633185577865306027141168353306783645378456912057971313452548246044372847784933438670140184642797152698683172869917382911847936484403967807492737277315163820362895594842128622053611912213070988981903917498790866707305935302453387313176774457660090112210926894735765450880200959496568764316811432336714454271013592983729884024837982261143724266467378873950024893332253976113490855289412461476512283226837033108286016491718203209976439457449445490287986852053217333157469570124168056228024579940767531130836673663530916442729107335018753345989015752022527834624972856870735100695095002066945560676522853732442259240303606030868975946498554358487254398265440747327120931326485087106545104387439887519011245123712604171873785183805210318918496855512313790055847279058452404456554102584841606559466796377333882051063169994583291801901818918418931095386257807534560570521968715480692547496845124089742004297233728812525215196551896371975837544169876829754695427008125688268876682061207049135264075639786918282040014832478166265639683050147731928679350718142333259884585606791841798163702888781379184341369667799666315546579298301946233417558924470117729437335405623333790986973269624814814821169165011102040149601677459890546214491924629224573100340472366147322053252412804934245552758410514871439183134097412336286762528267670967424604492750517109887762422008412870287185717498370433216990933926737329327770552520910608154918304356421489690427071669362317395127273361880304490441561071204610702020070434207576175343051165407582653617959696409118476921502653778553545555305435274004934351047887620194934693686036475514318202218379649509562173454068047936722640082690236615571169372447760788322978537643542154723761353622489873651358246849665565388257926326753048969443216442257182651206250851620102130831355713452967023676124873040148004279948296948962320194971164253361383591861647367697263148298758760403621199386734602079497605640200070028153352994561175225566238058138903110012195219524678490527335116600279225970837712509656081911597534719391129341396525653992978268871417322239077900011189901798910539694547231096444012460615591927867056093136613296574756945794459786718790869072370919587587921898343081901645855178165177527799600854849374169730517725472010899708355140302456476707073612447334718113419298749297367175303442659891328638810546825058756836333389468150195614307648848651836585118486858763468773498948016431124851699123002091940593809050429915288854157922841481266323991216020549243743519662365828056701479124563483260779356583377457120085572696877121544042443923893458043842140759413637029207457656949641937533651542436450436629896245987628997644580304791492500026218468093204075522651232848619667818313209996105995841308392295099212887660280612246727876195821040244558642294397211241969128227406672214252232302127804604776319475178096613406357405837296228451916348757194273034651729812043087142650066139766891289571234446991232373034749590123752515168473747470504322117371502270763389714119673824987329496889243292769145391955333376293712502517724606682955179452458398512139298717331769027927325949385723322922429827762208083394574296507638822005256277055816126590235688134990500389220266319197870202470732701698207056619350930525643758728897222620366619590679546921732449325969338484331112494214353936841227152045383882108195917887020071310283814311722171450794566768766821564122095656079035554019527478940853695954122438763370033091908277073559495086088213569970942397713890965146128794259048398999091477013040658334841135349205912673000573716953933086955492624930425784847418307004677851967658883834064845988856385834135579118369008715674252209383455049387451934410101709318779448511309371631837874507491462358499610634668099735105667796503878205869270211887332670377064295982772830138363389270186078766165057116477608532561329783532089969359470130591333669038218783801524190912293405534281022694027432968349259373931689689880778801911844095556606493707564475523800006581802943926231996814047945833520274891234163909359523652465718498141709723470304358751853818278544721365919892128557840614063912095331830957067051142851807077301010896303388118572687693173067480439319298018767550934424731126057779495223728071861121974866533163700770021321167143286435701200608875962888355791237425301233718453273657708481299114795075316781933891974489156481856187758175079412287293230726575344014137249694623267442157023048976488867453391459536133878919138089100108457706402646434247969608789565062732272493986525519095822002176528108124417297286299194615880197253395890380044657106115121453633186424411409446813014047842541331179816871868625967036627940554187954876412874848076563016097484516893884226674227159913659952369553128973042287758199681020941315075289890531303099762842113824177581057352707408080365236613952693519028295471940928512545269460250697313962184300114140307864033831313911044100509661379255642910527560696668909961462486888713516915029844110514737588776051233443879060463270164638043140467170386083802169559399083249721854624918264155017799162419745526207327553667283143175506572868645360884553893017504502548246871239478685035028786111910426076501178096226041055914640453136731813013692313190486589270395137234434276720663736633465897475546501159392930834458638432572125581863744009600318607474249712298890987784435295819510703538194624928202509414613776087364488875144785764815664409803073671770024323304695181734007074805528036292448390261647583506455363183459717374214172169727082483423767496911598986711300248235431057100878961111239596619063732436735377248752325590400648605290951798786687417738258024349663722316217273886805903993113436323076578734592195512886185815917454470016800808735367829854152306006095781273784631245189074664750101363010402847110754067439315841012888993614775615193693257110049466311926677897595410378643905122709006725090078035880787518162350765648561327509204451146819011110320574226774823969469464725960926690263082701372718276964041496674649232680420991206180709192951082064117791636333624728743414160140440082064113129984511402710123906140897287584762266255179479292106318995117012655803221163461692342945520644018069932291341510484821198721171272779614698623931252074601999841777767189731968206400167378784660391744478612226087181268207964910278838513411969102798283295552811034825201071226300976437722843479819319677968354868708258577574097433262056608649484423875145190277821744076861711793506169773036684144305417368839059978249354951036535175852519240879146131369910229795310960742035586097192420004123853791499654929234612063834621072198496541005611438793126728341484369091272761270220520269113437077543244057955919383858088042528697539044557453544669082641476925496764142529067973635459404382059889343714117681877601692233648109409577373731301120839056362790172055595454577200247426269558680654084840724775433264788998785241679094135690940411309386784777039872448019101092785274219064596183874052600096692380838846107172037790990506591851571227167277769412760612441950421971610743846215242907139475242142888457272944779625694105324084575046048274341896146722372837364115868746906556575956046109611402375791737450601617701059205821833196601438993212171346046860218253032133250672750539412645462491937011784229935284065479720203001049291302935390126445509502807981358075288952363820675816701450075815318515008642269701808108470903905572636330966523673257841236069950857829656529038346620127371159869004417719986386110074441688358179371328132938137579970720353526840970565415611636081001426745786434072042097882072259069230701704032260541898140695845783741138101027584308656584686753633476998754666662203490134158032513582259625026574082363272423054090132447685898939199789844398713503693389528642442787870311761794411314897839116645299066178551893988403051808007710579491064624872947166649799583507894812249871448261444897364954541137897807989107771537213303411713095679292489807238298626963526596304084358744107023034003196099621209616466477060928141640640186138504796847385104112623463313174124169179967521598139805441961896656027906024696798303455101156667587458747494206338239327086181510338106936705219679167725708229404593282989282410537655667364052102627001330914726233287527749069886739032588531383520933984728159861062818603102615546906977779143419670973655730203711505937458045898585500849576887365460360582291377111823065354862903626230411518384581669094269534242690737863997732849449425583721879701483240167004454880962492621729233933176753763944120199453014709178522803173878663774741441162265430385273325133485871846009942852449284711195961843545114524576993759223595193654626400171246733349837912134514323181860052160827864137764760320960787222863038445978973381767611949592409313002419987522107999511996051384857203474655340691531519929296251232037477305815410698006849785812016087376874006779055504421862640743407682843354907054291150886041186566699567844656949696173358061932305445572826844771769223980182669424632886488073920588622064017050875715434323314714719549805145915320894180069265126967429954977894035912886116825751975426201765202912618400356715933446726561424219846321787331597392042239199739058454390590935514286669750339884567664621771054736438969428475607729340018293229426546026329634610659764756510657026674938130807408316523691815048846908292131674451838442874002960112062631774151822554088780517277630014092626220077513517448524401780309823189982254119061037395280348439897827237210831368810746120476047345486420086329877774267749470317546917326823422983027088832496469001523943851347508313421643880321818217078260773364216034423286536322308729369796187857379589996464919130294944275872217322189788734606556213627650988607542309675302559636271150948375828870499363294273241149818317663312454419598418867853293951245443165330399403915100581929275232697574301361463583232682312545452176192726677202374128530323544422400958950941964503060149597870879841697921777212187847392964938787577591406480445643927714796155272847573230897547148352606853080542819967657904007214143497938941159090291645282966001423151667299428919708474590803160367363482592990171946618750884221944746983818806057459066657218143561045388940522511533184493506461743177313416572588954495249474069766040112139741143288876665012717523446543764250996863365185409556488513590216586419858473638337726327236865331374019567505398492815882627185129348234478856497537827027977043704476677120025684684943315990348149585036158329966399271085599592191002458332452754438474402405361766202524816825498241596080110815881907228030311237901777974347278072536773083000267142761698812297495558033324623882912834321489594276413017945303600379333480606150992075553676791081976872674502223712577289713372768673579061571531748551326174851334631976940806713922359146736553187400612807508396091283122579651831180347751889900411477470258692459230530628720555396099662177727602149181594150345953838004081547294169824164879394227117471868657986279149891225817571215084162502939890821922590771332150420238339904499424837840882215949124526674137339221996309513479534753037823188946522996434877825196058156766328761670643652717029577778141576577013973606729420896662398019173399920134796478924764057164091548050323190818031859360905440028924924199902042733215799394529449756845809454624147172890838588668701179364114310182633897339967748214427761678609378193717358168117501798373626123375252136016132369450510451013420085159608826156977646944005407910479626935086137383403570779571640822686852206870473575159884999207934555470093326546801123516227981384036452219713535359758251496975719972664410675659208836758744741269957904525661050147765271184543441962073055463120291725484306774596160187541090110134805572596752952541893856174285068474426528161905289509828091883386508458581311889667803396917580779067800444995719916224182973728240441506532813181033578429024571934495788651781478223759566819938861787587831754431771946238008445106964083520886350632637736180100146838370591954355124030951894972584741168718661686272744656912680279790451800764254163283070470653101209360075844598624636206392852578028893164059495511287158802337476703380399276748151801207243491746055947737279143774798667997968952433306796619673434511340156964042848785729845383570545585163370615925571853853018344022509363025211972628229839739667404436230921196244137498220093667741756396038262165395385545716296276537661424827659261599492942656736383762229187061008300815852136278936151936059046755493468771701575272895942112868337496769750682485672579566662786175190985093361096467858415092666464390539870376547695622963118441702709970791868766465885658655809803175554381538505657305243970269432049167458376192243902386072783504545344533393785805011424406477900005188713164789608976198267020693111265791207295362176459034234829410929820910273344839999600394929731282415640672082218821420301419816282790486792145243700563343084067964217154566242705996165703748172891152959683964402016755402056591425411270778956944265417943613613412034551866652170494683571562478575410278888286635686798696826944980992987937288691448548515694828711322080089885039836676743327658445076042172341232200125553922303547510013601566721268853813704779452902623370604272298438516072222860834515333858829149100352436635534945354743134125112772507808230901885526283954152348536671541674217631184589808065441156628018790189607346407071814147682057308572602378799403953763351871760752197498332755548199798269562268715497914869410343777056688432156432718375716066640594953356298415610743467197100523884938260187933725117635273221351096108363058554619872679991186935004413602689690105763714949707633887029957661842456876215469579139672424746119802267994769104439383012295404714267297436647513685335747425464651186537636385078043561533351943651714937057343935584638632054080960676665870466551145677345642400593716213418585438222219265518503077959309549684342455670117998211353332682960796203645951885969874652876709382362247371150755216850296907789033598583057336988971307588118531743431266684296829614929471725680625043580704214736641610535653571031865405565213566532655664868790808232142874950442028735633279856411227504414170783863917218475151466322587204601413871449760382033018000168831723266090972214836321565167722479685135970633507621031274599944668640806260056160354540736064928275639748116286527028885192462584580019006402059297928028857813339202894180226386848895747733830985579282740887304394752234515574687676860670822926804109149037025282719808649106642426377582139242898749494940929553694580310129479655099714477733038001427729995920030808764944231544412476790296708510227720222404974559255308464124820990714742591175490700857076421451122562344072785477669431073768165637335526865302563246588741151088016518269227301755685730647903985984040840759509482130086242873019481680622660861691483904697352459111352932094368729655796591108067416834025696145803498609374716169509795425804094033872954940149664742430797139255735094747293623289947001083957786904697335012352436145656822717752366277810148405294323225412706668135519982564749591443949130853049312041629080397975638595381023511895796224199667531596095478616777327032984043870078904307614599306704167421674952484782717222402936891928545746236559098114321651788917683367676809616168564746881760594507481042983268434275041507755798936507687618869705282695301527140764793684032985082153294663935089713564145171336530412582482726613284355995442273453584490745044872788816465957107755805188073107045581376987089624004903431656393027221211561942526312334380815318243596555910491006096570330359632245724148789867940308467236820269655781665133273781662272584464458489213278118492501509982927727496667589999636760561526943580063755483929756234425744611356511779825042739351260566387699230153242431151760959920658350879780768086424245427006587147095152415423884827444381334378832308332745652062118381766468170647036523825792219881498145683123688023457490738657702603307486864492789950036189977614720022997602014130893398583476712893914925967105621438014851467523276484231991237832562934140606652639738586802957572698560939316411488693241502279668141852284286391681332034128060015661703888848361104024264193710880364812578569850529963320816311791207424879235926235990183026689056325951386216646417249479465450843187337019758102583277772174274231876699251839227090107851175680553718216478591207741602133413343397456419120394257519394220563132159891926515872283188150068795601010147539254896373850597391761220440752428602979048069988280125851952839641683923449788145805533677833582245199429062492418602939631318531221342906966471410049542674744728029373718411544515515318450910505675683088457778882150649865863285920846460560262347419038746129509354878766042750575361021506031082003037848781518808632592916638455341571000241684379813195424791743728752229833220538823524638129132404543448254110577176584922269361714173788179991123523765821354846763795857320034892378160992413934314114723465489787931995087765770076101794992907627325752805140915723839628437374391512380109038911627896921759891964135566342922883539590924631519598340189922019219406858983686750361111800887474208420046999020631898843377726057890419286646845733008770744036920840896353648413673721559295652015149595781204552295736590675419732579336211191480922284893741042775273560587952000953204074876846968885735524200939446031892894950767497581805183263601437704943578561859572763847815678648563895529515394567079510101204347352555478659465730526880737256484869716401611224246502045266032704311043118924891341941031503725126916942277252033986209455689757033156632564221065888044002459141067569221904046451036919532317488391389980356997214177088759313201989929233129268712062243943905243749957769420743694734141859143129657685903937360301041390067817928508435760654710336108932342619101515670661037598366755814012724451750746287081565544074896423884018768727270101905678036073045058607899537509830841831525552890298795499128764010790319679038834176437857648286025605813544414290293282460676740546755370266416545581870602077934336416255931963055062622918748521196348501808925604349640056080144376721493627590999657656519966445406977576070203432368408497374725995950560090129263531855877075700175962169734285954412088159080536621291964924080542466086819638785656468493480518796632335949152978672380333702887381858286871177025567728204405396384156562556722056241345116170399133587134659246294872411108881825342378698585045221714633154803741111937170887133150998714556220114962964737745161509255495514590733918299195129111217562666679573716065847717799865425312266829105094997403183480300034093674482400693851648321292269708581176532832994800777934488986946311395177233684276080344905809558279312758470369506322481561413472536490836679271204747771276301096954311250393705462569294515708612803267588119211089812602468502634577303080921484928351590483908413833014997465020140669517106255890645153165287846653286269574305375439965681686845776817990996903438876999716455390478748475752411463840634111569370605463424812200279949647709216765491018834616434666710612106748690225315943738647091735426184400317442613927941110326727625231485558298423030533819320483732722517787377548944139302145646171453403144950310167246402733625607715712685425295157699514172517191976096000725170460423549818749285806828918422993332851735212043083275237343309061487038704218540278626169456700695449533675429096936832400307001095871167022428806883595498479058056981906046518659151100664501325510273254219534420983042942511090486328331595314826148768902121122033158337047595144003902567775689050471671916974313086716775155539441874663892730895489953399418189584308553284191459171847695454050297041687011293633334830029729963557254410832119639905505945168688929998017283895031827397864364756466470248840802423606815206198215215763899445597917584381973004028790379442424590814072633940581904808329008291396204710744471035767556339692956627156724838244060215076390266042627493833329833422044931381952930218931903241090226532975578770176114921758726026094615896792687728147196497471970536723815901753550636661250154537965842298856976007889140336401593610179134605822217941001375794911927187071447959311511682757957851991329054858431953675520227417307560843212070154919543777025339788951861259765866214129769789916303271802569840287353755917972437146124920186098190881663965219906253460374730418095325442512205757685518548126090677970321875335008636307265479716842993547701292769647373023967615674439304346005136450841437912337382467892865906252084838133186035520493989295834728093739916101673395038041997896410073375075899172584235751661549716316920903861856363973468750401878751088293298510612787133897726648904219409426761664484589904063008030969054140154838330111105413696861754717860311350609548699157446107121580651467285541378984286683857401256515410794929667026463238207778650107735231580626886910928550592422535131314909437028438605022706376125844360151664023512894512178630104623573095607309988415736659035500221194816962794306910942112432230553874640766471604901315855673043807510251925983428087778780231213575715652962175314356320832395043843003829365101968762433030172535427765499876794102779197288450492366912300328970967217132412881887185215036004180262316772814977292721481340845957473801726915769323797384225228195730691526374807644594616031157768204627233326825281935342211604114110038832793353597554264954772292291629039675968675900957685735194517384911371257932035966607349703493023448904459083622663435926799191262400009008510378803294148632488037423802306824868314335622429300205413132128409677069795914811016381556880166099559867596216881594248603664774733877204435168386754960421609247424523782016790425935247964020958850368813616550597401619922939998425232948692675286031743599757337671101532216279491983416452580801025103406476972448551512842804909582126574261154867224496331113343439112370433538173280570105578953642874261890422290650330756659751862234526279595003849972012786122687625105583202219543206629202726111535951190855051652443479658826537553973282219606186111764721258024904462609408697087001960938030141836908643353042240608665550596118463247088445577204510505679857016302460964477581194327021801222238131194468529604468692327363451226642201217417404613744917533629398284060547444899442372935962643874413904240410143832133743521281207259641550327668539456533372506882726209623087419561720288495864001845634877216844134604558855736167952232044407180268389485971262989137032260528511273531320609283514581243355989745301408425364631716576694005434012229516128565233762062342830846574315876752303943621019701774512422288239368148410373265830059564899137295534445440802771586631560099228039874956784212065586792096278805887947892209335854785238160807119078485010366651219983217047743704170880274988362095707743048160069248911986650489100383271017431187559224386590504731640986668498385920738715008812102352114156599435194400175996033635052689702802512513615373788095590453938286235369038850300114992423857303132948695381298256586988069258895916255992399281345968424933955365123795902094438237996542400555705657285014391003368970514798579508388396852525071575259724946817232889763461130328736702432889634780249665301256948987388203262318488099861794602714104085122130558335971233117793555971808849608261721499226926134960665564240060662082663349606817630611407306540736514396823827706209991186802727269207240707273534523056642583728853661435977349590546906172884802866018044805800767035329119618584007338095697750836666133821977580536125718048505369770513075357558184552605228177340955498318722638402097459479495228680222674626496029921510557812813898157922159680480675338306251855119489990459607989903422554501311525103583692476883373340891494727237192910872706923452828104735139875020258446970567404257482825560169274535220414350645755995642628267124149586770861816385355881607233640052789393706803265247193367171800495910613998813221741207071816965174853738540102936071298472503445609105793311402302804228959727510557329975334165026398688341063201091429610865993190314484338447530418894816551637229386000321571365143634653115615002042907775571717929965185671580233085673209133761851360602803394491313996144979116439751626820434171932974342377722786087316132765356975386014677771366145380944986263661210384207783706401493410289552575575024523038513092775425307563405831437723335906734410910521430206252614176019888761354169246507931933607226890827013537669249374603825011312075402838701017001411456229621760737701091959458157602892666629067226151934453702235651218998209800691086627530425507436156975165903563093393072660644658908808298091563450723436194352287320904129900736338011040911430697839830017691679100590398983334495024679484265319336749082258152223045812004234553036392764173206487395385901236470189827098199040707769586154453578814531268173579845121775274351362140608475373897457035728944916534530288941651031071242586051359878914129707660357622573579654256457527567525949466285242442327106153818870801139038363470152139884776365628958682600699801109355615372760438123231356881622638057698634324226271130654937640445019933587650984158030041550931021403046770389693108772323917286345792511372872050327337531539785727870179292075367352623563615407760089140557590217056256462729754498968359294412066301627452490342290804373527002028251495297705466905764298223918162538512125354189891963538226851941806567718693773829872531584446415579030104699175848130959638544288834678781216310771163968872546468855560375340991878084074312640253755137993122405329680775625751404793175942898879807955909084213421049621426637730126336747166693142801874719391423452041244906056051875780759310806462730572164236618413576493312341084042285027572048310538658004252715723217052728259947035765312050804169404981404712226867956312037236603761548092300659207805534743552028502159725623289441156009483217150641161887989752835174047984748264063147206041258652149879858575006318220776763293521784761186077919080110846160298746838579410592004816855105420586578866355856505530300250783644217054727543621435130184607645565297650528010295616010755780911230884364663246360477876319280361383055587906618125459796062641893672944023258679539390283031498372269839448952910451012817613411838667817507828782561907387591364743068208121525167837189744977069543484086805777073047597615917274196845641686301085795648314307323958360047768414957248336104227295233462870242730250418259717694934692243111182357164039496185485109567948692415778928325350072404734772277995603516717562285363122701821259592675219630677656124846817336620876708484944299478312692861898654521659844896167786308272924358262581395787503083137329477703556297037614019479793854964866227030826639055569843592348877584209830479264113424309612939716139049772119100832601592307896691656251155853412349258077512607905660343061570336418800427085004151179016638998914124680651152618966412270226140910976662768110702601459230187424563040652100485346845143898746607617845905286916928021398436841162728171173505768494659688365949937807754210740412941256709367203491728647675819461402449702498286866506203750793708662325777910293351572830367380182192354324938835972354693280771474591075115147152340655264591874389021174676631983566690820058030793124533184322405752026306937880123112483517158709415259432634665418788784687539556762654040632580403625787589703107199584276849345774487460048127408510439219368643978718616904702601423517998417155921530329293431266772194811847353754867568185337464924081231558458358378132139430603224985711197821814678479742850401774720969804075867211707608971835270748695865928292870895935270822174825399637363614512091746044720335279582175312748158968882109827657019936783053503711278558253133152805133218996473662462346972803506027396096276644827575336068862336316085968444345335175236164641092429442435982168042299429042633385214114813377176606304666337090861592245483552437259863161977564793356188988577424499483158174401810259413417759631973289003923832481910097816382380282606827389810172345654544165599746596441801515052208289983786418560753477317625182573024217859782291553264708546886597641981121075347544912846082498564212294362144072528575545803497528993811853789842476975305956173035676430439117404287420545265969835235065180431654780616697920871946792923384433182687119403087877335447379126288555940595829453749843436256490784205568046460901235114705888129239161378757983383672102499333959573962773237374961012707173669981104103304043386352439515323794295557238646623413690001335799774280525894655161536229415264755202015848206155004317251914211019449698764984769235544757236090971721704079600901070096102646815731711465435709681228067178612378749226303008328654373467545290654695021465489334049184754341553979479556407211763836563578628898952767053203649033092444291055488712943653511849945821199837750610192978500044770112599203704800509815830098604483110517599601444483984674293164232015447202644865625863332187228052318668338156624918989127527174104893377870444151775380331169324834269198954824040951827549871861124095536927090083417722171850704540186953585084049486454415009916067774402355603210182343354512459051730384847362600405708587001298922779279903241816460724134277430674287924648171440392559288632198718661929770191064578283496667470860607582573733790339456612306540825104556355211351644704956432269136311935504720043539411857972433986765676985470717945774848059223448443593100242642572582919250490272314384434006595170518085160565298563265442303159918582940340939554293677275636267255888439632258898419495200666815913033634281064464620843689791041222459352975988521247615543598417247755625777240969468134937204139339363768977255141106444016254757753059004501390224027165253801072809424944921444366126988187512251233081054555158786635551326278635382478606522271031688607603191586671152982596816936895230581043664970905448296274114537465489504733925560571437230500482371735322308557349160936980189060580452379916359600693127569472913236439020588641087222505040942182552961540469057813898029155642533936066702350226505852489340460869004974453696743995123294960753194526554137671076989176798085182649173066157854338748726335942332129893997987555553409251197585012011971051861006033525558346237379339592422381509903575613577804462675205724486169208605324978608759265363840475265219680368997324509697376018039726742107642942702126785274546252211121637428487774951632727000509367401836053177539904625251628789985078097109626433127217146215548385745647870914512925210551860730762986012910326297709589492042915770914144273397276701394914490249393229322532110316029049256385673065150689059202544291020338801873329382832821650606485103350178734521986074620290840264226798304365876223404307629578275559086479590933808903315587995837652840304218064879558708809784714515724821728735086935845784195420191342128398938006277033140309328899606223233944882505308327561504663835443563840705682192938437231221728344778685017876081178119923341963751842756348838462402774868375393035485003211385421132843572598467622240896439882127816889367256542609065666343388004460820881566032775458296470485723556999378966598692505779193041671288704601941414596060377843050500881220154150466213513357551882967504009144143973181740038939169137734279924151159287474598406907078165440040798773985029668296557003247118811369309169083760758838367878972215935228688868403404248585084073377085405869367773349094254097760122218515543031331762087083850964559581384651836946286333116069168259831400013259985404416999469630759274378671049341430219449939575317605580927024138726589519402676599433152362193583574808180285183712185272351046614501464636448739226532222064175980974065354011094821176608714767151908111521542280516910374618888818536750326863025519275968920112156422215333837771969180563707993295610775733546361455240758840799916430188970260100033802229402853522631498501947551621757207207882529963192815125088795360203548538589271734996762793664194791307856511815570384043723428014325788038915467592407970452384365858497765643547628862006329367940741949180647113561579973710836159603823592692869258157400006473150049706804880171439888102334752232650918184496239816168937567344524396707445592313419204183020618692665761880012832713988184385628208897000388285612013537392702844424663557040264907560242636552838653400737834080318785568681422708785381851429336463091950477396448026208671988206906770750525454399890888798314585124898595382053905740875552087979396494105416117388598019239011062656072399401712843706687193062673510497425464928324367489523350890496943590418573810308687809948503479771767036762327595651771303628270235829587716320091926674216547116501527577962973005153812715012959485405443240435313799889290797121489130892010176730980703003844424658096698651376092375687819249139264168418190688731001531611729238826706300956603707662396235775341965261697031962950989046092968286634144869743245773134341269535002644597185453158255815341419067240951781694996623656778795537753710675979598751621857104297646346351126525187477508948473859290749517982478433641495771820031313567607170825277113201514993662789636284830980400834001834433036016454177766809403761542820899239188794991520921658069382759297464637288478066614728860324261327591601766648309409371327083591937129446254420207816409567886015291999621695066033554332935840120057843181433541642711604104684026106123293886679767958433785243189109145751356207348875900101437498862502333856187536093328860185964977900270423656785919917517046863004679934203502097300359448654354549293246855187047481831343636442457094484353103246934080257404405583848415596496624005647493855463973711509867101537158801536807257731029825177254676500360376287143789377249113491429554062100648374379793851580576099145910194409957502985885779304873475071681703210067341197669636745750872517516919115568171786089867468553292970670482038772084523865157599528239896991045040366365902687757995913580717792265756796426851079818772336863021884595857261891974913967915868629437194517132570645804529482178633965701828112468133902535779802196768174982157982416027030645340452708603106085506292801448300370720555742838788390340972872144477976286046229425471409425250797802695787795747719352265313060302001240188985574193426936416550459290385377200493386242010246461325049612131456363909339254540865251839571130799932443002621668127261032871519308093491837636984820146117749450857703130356763833944466012276861544090432536205037096012127503212723021643397065133685071776778033677656756412040695768467309802874503016166443942202152935265071396978479995710002277696678237153192973697912664364055455599582075048031914067759001069390494098420283509006627593915321092847311586749842624297007300575963918471150115631747588572319349641497411501818691272418215423406874243814735032034350596873021796436744845940852419403109008603195010982207693324206929534051003358285063247866724990862178470982502691929575937574462305824800667544204801479264745015821547505077933838279211641406011045032694915209456545311572975912805096788963535639526352983103015153019872146576682238764909641479618477939018731015489990106168867566319040781096997509334526587271057878451866348863218622566473028441248546522342731685546169304050338821015320416271394235544801839025165107868268542208848575990719138122613004261673512853166349250261405608579755173143782869490044314930622357081042924901454985281020750024915993559512303505329252507225142858079836934423834144255549397697404078708439434683638638434594411812695016923943039161127041807931069783715145523490379629560450345295106757814321288317848988141976471730695993005158678352832873272386812218225373168904710697378514205079555952390943968338265170382176105993114809233067734795473769159106667294130456910421728461536165750541751079815143924090735196441491259869611610015822556537899570412781790682200040660314924744274901404861191631286873605478850586285040657602514552989444843244225791385855177624221256187973250755372408208135191767554932511781826040151854516525771863691196347661752411392301955620738992121625307135847798241823203975132755406607659489705340944038839800833155160811932754530181747011753630537593996485707419478098238160708706257313093879719667431414931775815924813741483920123227413266083242194288965331274247592346194067979502615062860641740614786582189072093983915526479188296884338709825525900142131617896462714633317205370354594116509612749528141174264283735325062244275361669541844485571256605078900116860668785371939473877065217801098982459807452888837425953517050590293175106960677642939832602162591134786264836593318638409626728889042049341988131545161100345376108127128296713582625249762862367015462658762938505317251815359848942092479897327894817070754296383183061607137447698252691359654278063164899572800801142110493868392717903514811600430766291569124251687390065986086762167286066265785480355502959316395635573129245632634350730420561266141192210254542032153697671870685243230133939538832140718777873055568296227743619863882701632988181541604879827143574814076158906124208967566625584927291228193026149676137569479616395808898547560505960005209227651334178646672243540504120594291152387502916457951451207794750144293173752704650684341268379886653672647907196179103163244972903183815017111117206839707762648692012483890844157258522406564632447801466770838141577359974774936968169071627461283356917838813236487384927922813263804190908231130223961161647387975011319712458649272866232597883519994670541026932068803871749188180622241460923216561722696185188603067245586740154491948544755921662405140382526958546329010570902988098521978177468725950018837561710045556010973827474231936516615624747943581278797788316700063869873990249706529298882880868114829442502600392025091566974644211693614699020333107761938298830611700917590848855262470619812322189991710788651768254054319588613598097386329217064705298284672135003870980526778366505083698994118924382808504895293627514866118058660081014100183132420105143753102319528377497422349011958811203115254533272249695311672188882741499145892702615161848189224219759576407828710549589733748834763199135512188754072704087201637010033235987227662534854546910457870782798233764046794456601865959188905026192271217131079256680307379226698613734419538508338248550260745309670110119040597276904105393814038697625564959807407585187893493289808689633062197442420360071858143576360404143716544969794551357220825142653529985287072359220203283849749077974009645961298291287092823434775751732320438960312415249200303324877120682614039404573479191325985719665328295516820283158105689583069053937286766496162773656245334462596055373234177721043531934655214646297269377403634686241747707827337742616823290397294997624054630384107286963263390162042258346523856833460466585648041494463510223555331176759348095846562254981970048403128626432626348452442420312912710718825339273654190789662055632944431951393879530180179281974751090357191129393540541163323354821735425999506726881974586713745740261399217839005235473822763393434005503629247056900831237671646279063571372297874239221849887063657953232644601639726009276005401311138919619073875513779851738472771501617673002573561231561134992925013638275967184149656149792360238393793848081545265915331183007203939545716755996446521827555796815106446597752956920546003331042679305387732947655731367974083279089033904771040723808445711373163785272390865415026757967716026689636912906444319392281002435661225235055354468423041728963194510392128065845069309455710658172531675238949877836438650180326145542194098604598986895938350271368898593532397317062877222838028270465182710532000529290123047731890535131652630591874302817251345559296294140136551311903350124893458396037968873297671299934028557154408946889045117683722548795488458694341302051540150751639724210178641084671492213764092406700546812547692480011885345806422020019415028411263738407715644837471348648406996720179799372994137666999621714535470309367736908571233470316714038787603016272203571716139015732827824338260978633005871972065640855785132653396162227324138639656013793558229769518174629018999180827793769306567557702708461839014634936577314409434426896140223182103815385278786169846433687075505006263051701782641965723039666372037457941181017484133533105655107087288957839045041321114138751164260679587612768643052285029977575136245573237552940300100911734261335250529101017948142373111124346182599075759978281886460829678290490238992904553598794756976613090094158879513794247409618935738585086434658342208928290521402331427681753885639914071759023594815370063666201389886972168609543686446605645442337408491691535993564971280412196296781527397745626805331418680545932229896053334339165919236612470982772803359770031493965063734304584076319528372776306557698768898351566216708993345488751736744813484921851577241956597248328359216755164456209583818300476813641740560914311333142189587571740557855648922389779900131822018770264115926989475724276643252327455872579902838371704350092302846359110573593300469135016094203694060647236345347606143156407214827170005668784456491136059503786526779121235068583189287287098350475127784128783702529814143035836897705249512577720040607254840792869446160500453209019576557127717500840155848596059033492834924802894971968911920796025234019520527404098918601024643456547108744197406942467748937854018693681634152922817623204035077260875155215313036460402274532823536000128156123502495192355066135353239080137375395737376482656009176431814434386730003134792175137265925949871954757537803899539939563508264091823991725166203927512380594752656280784945726792895074418419498262018123277762255140627826240280254765801554161684328334935367586041435145671164053217147516829091628868031851348485218704631682876956912447639795299807871843273380332772975258666483340250400085145092902141349425415946872658303227771753852450271315850117749434714304146920313040351279405120434721868141503370634400519223570709814250102140127945147676284246812275814107118639646514704050125105186296631396836968837062273227691773050286419092963296004441544063176254170415825264272303284738341026848331311948907448036991433106799756274310633153063374189037821802556967547071066575852496264151262611031163400824879253922225219465778452231801176035547759050865723200878266428251658262952075040232176785510453886249588383727353581496143201597518502742779045884432478182163943951405086859352480144618896327611064717918350398719749164604108130448989751001358199742378486879917300442361079271225058391748040728437103989660777206791730936707359682342617764195682964818923528576946841871695592189143446029689533590219889300888818968289216892406757499641857657639625416248381244245167963899471530228997183332379528156400423055545524618393391595640869261896636237242749886081503399833129835928527404226474674633444254322521570869195657824383622368609321661974447813796761798139296491787119386209231771228177195314701917769104586736325233545023420002100141086946965369009309807661004724646743212815489935566707356128655413440438250126934570149144944159303159724240216331519481381779508412338146250447608874878559530299553066124500583655832781666223539892915485054868554262371648440936375746302214451925465451950202121090120225262906457156642764957929227366302303150184231444614367972909471688870117857106201585128776524544382518595093576015072909934599825042748385034103049617320207226922405874485491611713498651631908027424240911447803635064773062868140873066661628344973114365685652367853908399286084988329905350826426803089578554270118157119043925599118153658023852178824276458766102014772600088076097270954810268649159769732615117964959807717590578144778411800140624911484475779261952392818555830039339970995587969055807868094428950601736521787601235460486555354347327682145693418450431967096402029365308494766497892307887411662061719397519368536513825015758081033193331035226722818948775781909539604489675867232481698983903482120108081675053434585761080241945509788691230596731327401766612023463996786340485979012735659024822488879802206563272821090892713832582769756193793419200726933931300357078901084486507654497791736981647829650185976305331789570242989469689646280256458234960594511129934180086265830440648855420907472330048042490728966047165079838595775458540641519670426752023440899657380129107372153249818559321054446261329768925936426027775167720699455849498826378183195130694475084383184628458445095853073060050076472845627819618374595347844652352859675515912988589258922509957316069543385464039237860783995116235559747465071654308279377820890099986800614172907349070399761733093657873447482268136300995841923208640463114445031506161839568405994607821935402691686375466252131721091349952568635910947177566839641180174765278443644277361191070278722253633244819122070042848613503250701373888430241720693533627442517212087532752533618731175144036596331817720132657122201150836195766583026289988357956352529033482936385167012313943989821759233600550223376650270000545270671852965858583457174603150963237766859041189490146854740073401148046316964941820920287396736143184674363949558197029108934166157349304254620236356085146021587369518001645299973029898265754575982416126530945753226127961427065576502524590855923326279328696284379522097072862153902928435440927317650919324661754000123887104730475306048117065647122569769663831932184160505489120731611453460953579903401760109565051049805409143158868371973299024459544804988551475868637966747253295579321518446842481009108462433357254886768950861549741226585510033646202506325920435712890991513461850385904068078917933737294912599251512538880021678308894344819815721633284385605325018223194289504915808704452544802970048549344375055950902745449058669250265145054695290297901091247489287949723968718664717854178564765338140445798165699365196228674577808361791802036906440953921384524853102294442881050892911152278489737490157133703324017955232137256984784277221882302225259480832397843625490157310620389207181019606633338126573817023475600344406932134820921571726016088122132908121235983145444357707838227611338775243894624697321403452841459108642170661787118228540187900542835432701682157529275127318793652736535743190206187299634714041296638641975021850178606544954335798032307576981882595133570699444963062210986816615913980217661552764354291586505306836877846637579403056111011772648939989120947777214939284570854603365466300308206770114379514537584984744305978443738312512809894008634421792707438679220577411224510022158252401463718057315773515083471695233838068290846293999045925825011719965146912473029569956050739580424347725026942161529792592826145278363737941848895353301003709898597974041571454980232560890187006991718096157210128199997938640536157714399871019160371419550293625445935284094607611352317028269818034809073528022076023535444137622615573099600976614470628182184712006082430537933265361915155109421682855600469932381906276084503007954326428828364166894475743876114616678960969546403841860946861650036923629681817885762117751598454892641078318504948875321464723929606524749168030948641188501810686468636000139819845325137059350142326220993561581319845984190441971966503685206211217057206752356434748448419718507969501448597366738999815323608040586676469202777682233590504401987052538877851830972553726400315773705769712674456637758231318455055487142847551277977096535075000257396223993889115877938456953521157554720950829418685347900087984534332999104449711518016732080568304189723508625332321697021417401644709574468014843656493767429470718101454322698948968277857267299159484780529039505105125504747126888294956810412857060400901218903230158911966416260138081409984215685005100894837619341280799652060228387192331055586196703772727972656081313131152888917097697258838012589744965397168730076713672564325933734997648070875901295259234885354066652848202321403140109729198181585459082081953667095898358413475936102882424092677020688036086332523806395614658226198420461949035975281620241693713649019858378400178141309650930389538348770328259618180546083630150565085918598064820530002951390943427984170975162301155366938784053257160705290996874123806003448274235115035639085893294512416388142170566613629059414397339670827976075194852732984498259632605882921882420813411209920064627964148596005258901928083612837276408953036241055573027912245965347362597732499102671942812465127337828338172185159902192239335203779377326401379956122447233224381578681923231300422206739294350807734646388637599005079445910096939930455165199184473531031949707825900145895053167096587978291556303890910004347436514897995089309729083256934206872747129375238911313675273249500795765099934138299833895122954693800894751286635173691014173281124707901449398802505060834454697210258393961832101805689660112457389307808194041772949757727438212591613516308827775619323019942487079003982056892238558020504297619057140328760907627464648815468241629923938062661522796085749103498180871957509782098872823897700756007691919459923744590747457206857469159629341059874631515611639173271415123094880796130039937014494879628082894523327475518268621220390977925745007922125307700142305263139997879478876338108553055268415496530158824786297735060283544376253884620653700203646783732347556955729691351398799773988848876105786904456277927995453966316514482329121703956183649369305710014837485706999337533580852075055585401891938743514032603354510813661778278033728699430531292027189841941312300301803353668713102325612224730179891726837613972190299258773469029798033347537649171451934672807719504614917829125860580772274073262498499502174692137646562842960968619135224651591151108657564743696665248682855791412410937501125196035407837911824961987880892853178135573210791290550849421768897878910472370447330882516744599231170166988546307105696715141566441458749580917918080908525687200839798027861996664164269587761186829375600214668316912230599062653394812581173344430409689253776554327920241309714068925118008942604541856315502404666642832489979753252570423781286508744899291149169672518217300809026234584841865905800670451419441550068579468046317957543005153814256892708652266484997955934154702618898832263915094495662191788297248349165261864248213136229178629689685039231429980740142402081721295969326166962496792492599822272500204743084542939572960931743840865722373969437608057716123752280208520301989940005066626216109208166864165652947605332281971477138116631480684997236927961932746687285705171062591839175092419028700303230055170022224648448103995051068662453992215293526546139056280370312466293895791452967751266394396899048445000380871355210334605794363527996059488125352832046047272743552641022583929654348412085524571227446979696512387922369550362591216089005664832183206544255060184312773779508068486683547069100464486782183951147767972125523272574992767748104205335015955989047022755802135522296924840330906227098763121230055780368050282084398104791944528586706628429158633458964022158372081478135971995426300973551603187472891449987180620551190729764672265190535361907203618905996315060084379680425627454775610680722758592927598994549411788091846855435294732119651215599784726887453100459703590866346938005139424959312250975946198652409738666756309696043359887369802678018767369388248485553591157509273281957357962988252185290838525177021074251714842294256679572756896958408343936171061326813760461683863785730481737294765634205649482917107797127148091578392541286471254622879422363115043864107008484579899301268339229770644207498225453317524937158837979737534543650415031911888968878599809597085426009395976933759100821474565671610516101212014225082602264928302031629472736009493197311212017890408255888732294272816109466014060958224388049421647390103050322157227656290187350059325955631513125039228800225484275690052284870607026640966524955188035637888516153645934509331954679109597591201163686212374975854660264624194165953304956004820986892725318797793837300861953595454415515159542444792252746740651780448193268392414467847646300202066356494668069283993926918930113671190126249713049784677879755975876629483450526488803542617611037294037903571913670554583232445902319335564178480604953670101223684119137804233511635193780770827264756655266731290702037383954142926248376445027766066558960396215068622004400704610384672727229386831606776334373519766243015024998081160270496492703188836356126032663188044964260120436013124962619986460327961795489955031469660668499293849630417059081158136169723795852609729511108492597876061785291320661093215297911077609681918020622596374890223008539317055603708495035509995216959590480791225867896512550618830413445429447140192757405426987762654768088069679926164339448135005448130339691332072266418660165592009637713487652325701373894474962744354338506920332219810980049932921034268610588655208673980673891982267353146025786854684824433440603291408267288242593273760052460910274309182967969544909490123352080605398758304195100441688110346440601580169033569657437918310844125737531650124598277788726343066741431512302248897305138653451603012653060936439634535329628804282468988774906718285866217515931879582439529036680154030309735450708070330003591374542297629436289927742088810425279204512556100504012603301092855411265673186876989923727868816583684540260493535176512976350692027878173174878720464016880272752926061987383944134288750405196380841292948712601586793082730835200299783839503759843599627588005615209605692770998018424420906077035841701702105182421287591142580669583577597724312341580494911433657824478642861061146880451542118528037697648233571094591522213684110693879080906313579824944691183592995678184572197526100688008841382765862163413934196031389120917844997341114713395052200887066880976572622234736679543771525910475498348300607660250047364279547374462836157200015811168518795349261743292312737908352990912184147948369529047104209128231142202580459817137178101751221526981183769893046785147717463915028507554920279128817365806264861460484741855547033132792336085751220419778368769278531174914954632931796048247273147012907460927231867734110452318632648532399149124786833451859696207200207882599305834596964544267021121244463516741680117118303110897453948387755297965097889447818814358493919199251477582574963769866703588192342950659327127787412617378093422390780456877622527444113393680433198218464787968849844542786429986950303516647269931073162657623709628896672066361427924081767557538234564736892218689535741171905040541131697188696432544471734254849638413755033963035004754131929426834789823437435438187910225834297803129269304485410102920061481752036751667646542155554203082015686710757084014352237803548038780998881588882891229608969887660272713914225513436275927129401258928978543899464657929471127444538961765329310251789584256486617354386825873556860806270471990302073664210070318608444273893476046316319010330131300203174051102395863607543685743832380234728776788209011408897197910190013597354349409995799336333616030362748860230243847045071987304391445214008784147379183526144001623526801134188421121266791806442865872932689187933115627633941434541557013075375510764883868123946474138064422829179391968044427342036388464794343228154740193405060005122096886093978195149167325198328654160596294253793962930955926074162821580113561179390249348115755640530436613548858437090511400058229580338694662657754193347408517919744092241076260883075233337062191698274504523725365371735675717011480335077189916642809635299913319340474693719271431167143043197884927521717892263793547908038642362292706192632638876654352835225485205499562621243357219767992519145030937690966699681418833728140530323180019532499129320837975420083739225666857305854395502401725399114313425877745801347803333190400257851157053704032470074422669714607791099317102813839233754854254588521592802079380229504379848594679524877703607780108998782138938501977938879793815387814130632740557115227271200484322576553663262234599783098576919576476304491031858891822783982855152491637589787716855316468391668457712206263087833802984434743292820889840733171634841853834314608112486705685273589216984506871050112622691095079412453368538693014781484050562363766262766274461086119487701260808695968450605435542418087836807825979646645730232478158224769112932885890415003555963879094082869454688931604411801892926667520972100515173741078138533623892808367496102957006750015166501893544841138385742181738713249599306938097451530537500407458190725701254413380687454402948604539337965044491363548730717680664268825106148909753735547565572118516514463390341693638397111155786910993236718313294560350995739576348980656771556131057800368609307499323100768614260396594428826044935922292274313864562314982956720837195070900335535028321955857688232710526714239400562958094795400709085105260058545462730637328481954525477805705330018459733193359231246086744665007872133680251472570105773949157880893162774461287864064201504162083635407729724429419523161565334814486207964370418239578498221084433112645928027602094037611103124618292999800033160431753326213550208370595309029391511101257819812601938176874878637324765328157624738689021250783776566785348464204616727526454621450198138004548302543972745344630012637827049840158636543466224087386693620641285468963511979580114966841455473278286055763352527973654638532639645078830271987960230617193354362063479153428242043084798448536820601069089485533346979101371480888039372071222488545725935802001307547084608592630360572046633439691401787791373049908277109846725317928872157535986297012166626265638881568661227083511722403940094595079040714438938782422909033708178692850246852870100786475442594867307481660560404619651698631820517391353521383690651483017240852190123367827712889544370144510097369100071915846537774670549451329337921873027407337963697534750100034568699309317636439684087063826838771319047942420191196180838997880048637747126511518654968253680915573075029743530775651977341148462498266077194327299195874992400914553846264532682779408255388835577346776857318915359835962644045324258420194925865388168509676400862007484467489396650407250405136830462453821854635058052631590842379552013248101815760078758065005989699536713239318740822299308168617452012800202607669811886137052912206746873808038534859556200664497278234868509787407571082137057774173781053978195664614106029598516319579958983409170617018327514005828989045642723764596380065234872003119320468652698304210839721271214870597973561110132441651037943843762592647291892414521887615948025965441939091844945008915528745798896867368550920137362881658162677404973273470731000587471374656320726591225993471552276233463125487831528863455832054108684979305515699345613409045557274548204966632287584647531560483551887211927433606245791362339488858773654535974956690703947391990743010009868253107649200456035942672269766389505671101141073661197535713634852528573401944027998515975981728724267635301276603178872736627264384057865239960942352661081323932661472070528905513061218480502470637925098757875262088440542817411489631742143937730725775093721475823528571498468932986739314925466795519986120441063072373570814718140610758932362835765496505099784626564727179711095040603954934045792649480559272763478074205070628596284506136843532772034200467616390251105035283340689256754849451458392684646822701930813545720395141112708294202147976133402849603434095881443445327213162689213451001597549460857354951872236327181857643807376808592693333326614848615495928812374480502676387348371327123202495497324910663041614764378313202415011458112298522791531352281321943432430063182881775950453737460876472088336935363665398285532215389406821407069988978496435463355802988203795964164857711083831598804947707666624393898701412460878593326812260124342902120622360399844105002520429864685659152389581215072946075482001159072794979931873465195317948374332722069082950553417406118961932370353795230129074266832284453871591757488833496992477409194754968261629627239091240869634751614792361611319073262285557301279228803414069339504215785583772302317542774424170159852123633681056711800618579251861043713850342037121644394958470929342350705546188452668051334353171245179775243930324366503888854517773118538629447714133203330317506752688376723356934643342915954754152752735008276733673969644608181347180270876594305786731187048352589381943852082594909134351275216615524857502158909333696244046651401620618331975313977863517625008972143089393931547005402340296257630601599672532596985821101190129003548692738597306633456236740681673068439867099665161139238263195663230628085929357040838258017849489596837350047214214148841709594433779819075996633409666539749489033915163482988587657938536752596326547820065049496836457620170921633319171943169654587361905377907704672274140429793862841680452582202827384763876885615746939044636155704280321134497545018969661857388803675769047280726779885532839154918255559226844559115684968013310682251867345262009222448498920258095546621498877101775694569306826001373441051628619900601030421790590466380416620180312979756116785640624191398908395891111982111593965494305076608924216870080700252070441463180519985235724008086582973059541293971994868685374334834854194335612957365055574639638750962524112653647682281910724067648338026035640325746729774090308256613319616597097860789900005726540186414845921653777548903491509164246655557897069717959977050471146844321714910703144748920549397274895463989819169029074357595491112989213017193886410325726949571323246040042612487861127483003842960803750787502580644267492254325025805347963064195430267767302101508830424285680418977787340867181846733803686010026200823991225616261529076974948775976889280154320695372684821274051210622022704062807815039506612589515181065743716625817572497222959579323207352856351523904922233857826798715803893976668985072695048507370312604221820817923321334349512791063853888938299839949744240803210917750504958821684775734841929520778458922786931990765240832201561734132700727461781867526724544527204740291210631319183019199844850455405980463825271140014305600046981190235004885206999131991155703960165111532013432730672376329363425085625877546363231084854213797564061165861073056391303157322721181500220458646644315544106224265502372029879811263888544827599576888234862766817992660705127879257434291894871247686324104907144042556774101562697350333718198002646026925348964263308134574867323795082854301812876964987766788076284238613053221706228957368532188587895302221932593674941666182749439916836931321105899353756360814029826701533499179838634342330457496661317696596359811974443829931800015792738459061404030952232067014787362720040373133685022259304794357216911820578782946347334096417710857705337129725963206769175129270657622794878632095120525635609450944300130819744122076145620748149567759657551761393967813704426274228842404148862466333720032956236804861789434062706493995332899235260801246795029634738285481089659460811522302333799437970083178246407649820831737968433675072930741464630700883116991850635193457342244496843717355766838828874806118349074745273522284191275966063214018144720051187050355815999345402115074719501723891008538214077032365543438679641893132736042235737669778671424453025538490553837208100936850557482043435251955377146542382059505836065950501271648776918355074399797375846000940148593406683755984041876176890858126520732127929472874404955386742108013427118459638883473967197728224935124035961138597496596241638852647293967660096596443626719246185061519142512200533704970280825214692899879065440748062768640566027100907645082704082641621363556107443697903193181847739499869250285180043803716595290036461319746045782369574529591625398546101152756008538687667519966764965032690170000198379164520575248898294837086657570217033877839191828566809623438699360861874716308686004265691232219703976450511653109605526837180880029634480613047733213283700614200232447379465735040428967263992198025007601812974681338626917727348672489901148074372317704095488045511928099806574460173202233566299174510217488735116081074688222915737033467307023693598241372847643249288538480934086957470511736995494816367270626721610014628036532493065586482556849253310328435911596359316733662248282976725785733362321818424969801921747408529749111381607868808169184468079689346460464009634580640352104170874591246092052847290831637418552990177671355954470141471046519669161830313917301682123999791128712830754980705851064383548226348649674993426233977829754640731111452309033524095401204863680766398074880297289103370839223244689761318332482611333341847386990967040168678964955879674564564564852196162638565171161344330903866833551462270374315998431104466446952989152215711083624910287926135727595176842200565358172454940497075715253524235154279914060230914901624089723188680715824199966399901075610175208480748654569898054685491535767126121656672333420043003014480767893649050962501940087894987460415721117311393986809573381034619261176357407432258797929987538921866242976323915557772881118378496585859511318355007526126858337582413301814275420173283434920631831784387254154191006099461803413925432226955167920326375124495109973847272809044548731581115114807465263552637569484099960978029154225923621009100764786737717783287990111604458463815977386429409327648386657743269602343429363310850303183936950862131032347832435468943962723995550146562042803448774369886165353028400220675659085918319930119296370994647089850821694353458661478393488188348367639786234804207841327677051204323752264916759416388358868384865781849055892148648827008267800812099862180908873416704572754872843638033365371164536107325172349125371619174517511938281053893013228322458438389505013837032548896993127637019731320474412775926797696366352171511715910356293402384409699532815390559385766806454153671013483349803389712205310611670103814754643734702820327107922091147822677397642215589034250662048669655685985668604366881656491823806122430657081090528302366832325443150813782859972258764025210865767671112598464030447353298673361559152323899326982144765788934730596507919718689110455086508444573038513530647367065858431684986547465906558811637471355364477248525300897564202950490545340404922576265446698576205152785131825001154636096183876733642565465878254862000220159005316189405392162003900109682531216081265478283943772882346553183512367890054517839779010404038619227894998281713379618661133503257820390116341788311236827762999847911013035465839928054615000553870555093606304402920779940414135272693617926701035582655288684982072075590693500533194215577901135533673260554375236173715623390610625939931529614791339612050481458699849580677670506260026823850726175099469932418112668640493097254452159067448879000730373320627590097256680653492676187045037918577503555357662148395809128117836190852003220752817596797478274258051989866433824175732275566008013002899447729179847807224897571326666513354273207093247696962250693997208419082109126033356997063080968125697069877159091936033711385152377012629879696896796772381257984516951741547960853983323485992986953554736760735200512242057823639643878767439685463431730130196683189859339814940129759115356028295828717433967529497194178385918736615990846090889922023381315844030802917350583934904300834938371750073322183781320544433561445958097331964641506545091619848347745606587341708657881629214630381735992031309220326676320914562081102354315379583175096207761208729967691277111240461405504597378940901269331131589467483009548270904933962562532316788250623934484151704764200097565343738519900546549568357511871995018113745893511176053420923745662875562851276676096952259162938725522899054003079178056223471532222743013189998878617227729574246828367423934412827708610526167236211507403960273840425919664064921959856137215688734120933261501725740894785559007804482072531705911306874882356920503764863458902830423497667852042105133602508607418776070917640701717574866938229130520401562086406514593750540478206428400387219775448265127957606736398528147386527570075708474393898812965043751513449113723906710773664927531150053114450768291802248483286035406241952228931010066817376872065805229336832935241992615922933028555370662922621040968358985339214075277518026527103618845499621888909053095208284759571518166133277966458332986808696523423663242414186954880885304880586479085593761098495456524468634714480285962565916242682629720149102813970695785900683514492869925280588348279037783306808878521938021104117032603045190292418956767527754027445743160046831193037643102866642149611540740661357066384082977800543637849853401570682171196746482971781245704604486166372092444839192655249934941455033725584020467807907102868009272199844909572417526449692633101591115790719775653287693695095918012088644171455019788614104823996002475750513095843931794024152082852481503171192672177127330763577191545128695759814077830611781133633746536620109946962951528688421061842482066106583617053495192022749790443247952957853017848761436288403140328169630610170451145020463418591742445032470854578964201171693532104021528370683294166646363142711599803272179563687251192230418148441356098266307965913279669401061710593306959338828722660637193406450942287819147667599283530308931934166216804744945759695195705469961020586318345461286822531867977241058272826334374053714376533032610658946745855030341224486294786430293772783148673768145305854451536914088579363296622980403454053086146194782075322328325727713262526217405349634997276072218352986721346185271361301720655932077839510874154362410994159034762728381623875338391283122421303369220239534567181115307024565720611362956446375756492640619765147987544048218807050167422512082396409305787589249665471233000532153322360348983029010361934743778998150437369643468383556826107882143488895946294195731914473837252676516483390695854572998758032594678802961667806562670804486925210189531578767186025146831681860701211170634105534608468365983377016647827265094449923070616197095870049361037483170022556993634747107798012288931735806892714748386312887643202025186874961717303826963038759523242014375001854868990180970352696210827489683223846600542033404492117713115667891636358226759865007304783549489252513484454727348691174622936899920505194356758492587342440899859938174144359104938583140807781461587536750545349516119405649640835672637299582589728425139416030531006360053579319194183926421215075127812402119919161643212644718159099585819818756786037047959891463580172202149123986385136369326761761111602061787054190638922649276110871711686593609059933782935403801911478756725828057878030422855289551815942052035139748540707107355512524875869272437407043958927763396885338652954885360935180162273710559642097052318651092459609142685809432446231596108467296555750060604204981677834389718071289890277639622841901281267752884856362945887051662060492598107089008135295876297213082676942736821804324604304516529823105437427701281468079932520144124466391108614208721505725867537111451329104883132023327902927284496574098079137233104322710951137444971994498941419729578555903302735381433357299353805879124852627251145709686703585253071341930100122315230568127422869732681067870305361931493740725352428359748981850372688393192835158248215095226238141037946558114012654253506834189058666431257642552398503820799845201982801205267555435170601605267705349314152823544731052559384270317179010600553550761335964899254703779049009675333904300948607181934372346009964356953965403085159390962007058572330744275175393877061786981065987582381294099217896887140899878318165029764732050202667379147447524555244345738133478122440563191442202025607319610162502540625752077094910833959467757013448742609245494000310690858056939506967429503846092272042793679327558638807779514752619861995786997642826593734506703692584798541293183617549572767000454686762244438278975425583370692824931266404983188097774388383984928134692244441243298113725181985047762071276427453588870113350266259304609007362377783156087427488467339546802305580813983089731471582166111923021213416001631871686435100931301070737404259019713982025230365645540182359513760753751826205623554343319388067339510151212003221197159551744028010620083639680090237966831195986314918437841507405225845793119592446106646962164710754189194462458413289460553399503931056085327397675040360670966464913377649730243028930857276782866239924739163397120759491342550477858849564239033054427357949467501611004893539721720307810221389497524517017728939436632908886808650022779667844207534477968554228351385781458216964353811782158210010543054851540591251779954762207301766506287227516524353231361825566257590549641959454328173880373610022227796073450902789898594852793671317100353331025076185086928896613785909297829168243977914160981125594179986355882841881625996107730677435813480213472810854190488773779647343958055612556051862912680259278000128254010511313277951124223520681697824574229412959577803886550493507134045986891807577169928184363568187333293879138893699080664210332648974890584402013708734467488348903128772117959704105724461310047329494309653134632626299826878025584089814648722807255268335018716919884505948994001190067599029967232080428281697074155142916644535453191095379924444287988072407891235247349025484970237370857341698972770411309153806501466050173866029413349766305077656409474181347237185059407555371677236846423720505354795646488038403714791182334348212449550184325727396689019315826571890355471886291628499473492928029890154440630725091636473149387348995904707775434197442686050672176375590342164353381507951157494822768239023784840646857637109601644065049453151982048762879003715419635270506859099187024081864243374831104102601453194361099363282802313019970454593086845175875790719470431831479427801654332215095084699470902851832134775418952207848719729168891739270712113825836197330176762383666095911861349789774231950422909497843447674882812231683024618045738621961519299395017351107266163452332657660902451431450242581157542792162657494871643827618646488633600786668077769901710596832132121199337274485014309227409287230937626682707222340340061479127813901235047248749117524069558231657422214516492180741744010070440379970171544643728091661168246697368470546059571877894710309335019634776508363202067591170298551690413015678025875562210351581206985194094153515522679648359934448153120947915408089068878790481731434046604891279000735407380832825630377142485953985287197068497180876847051089710571828989198269533319907476191244494622478600819366835057753671124083246204574472358563251845465917317379027690944504278939899841010205396421767198240475210915807585549524394174017714241067944396235989812160608849769353243651408262362437816750543216059219783374803999130028525339699854229942437370069778261869232294187910824087861064138553913074368912183991244339278757907608122424432447221077352586578458515166945568209774366452210589529097632671829496822314900297070326086690957407120845950953591103678664720296642962878083404259668059674577930980397722759663585108294614862140603804091008384808930821971588972400222490131826522922609462421317005005812041118045315217010711664665266030597709047335422411635893168195075820593292162943218558743701869225285743305794997015219622542522088989677622209217193279083537564065180859447521915265751326786126080863345505878723471857988218015351786033842442757021720690830942528647123139086171217152286240188599065828472817969681303900774907961882226351013200462691682006831316229990287765248987718509280538931958190662341173159538800179514979248251769615826974136207171019374640114532042908395280665921284714134838202870733984754515530881590755265198132261556541030806859471634883717530644536629566923375705782558852839563822633907891965093541693899121831367527954644388336013534217093695725001142006328850141518020434301722856035249652463630772507584888898162634498788378773785633290397302952908892839422234270135312471158625532204726099588841233021109110217347838955839509770289860428836901195856925504946221838491029783675170081884340375434138047541014939964222242513041850580003666082924808541654254556565562528310304361743065205992794424555000471046680140234875031621417772668229499552134449283555938356307146763489136674049415899679007307965250577181871132957212584655386480679857018885998662558144104345397114266285621048794385620802660137713852476909226867554251544737049556397169938420708538636564975500777114203510393421465039617787610748370263888306914392164126047847382515020232325900599064005233456397074949231440433422683762756814790323801712316522046621640278892399093335496418067763783704220090389080205612161314154338457121060673750628192965828694693637634675352833995794917870604937516974253672967761883603566775484613056526958019273455950748545900265409626667323342085712284683116266157735076792351583904588386191658646799988752676579654349441337586488075461736398585232690653194682783456183286140292544615958991715668484043419774375356391165371420342570742164787028331537322390464735570676557785680386564388962318513804174746724476339346163191151286550061232259120578545622907666647800658034811967586814351296547577786990347489660694110429574068629398502839983097512075062238122678639391801742776175436401021035709568132823698226379315862247618104655539066660210623809098622028005745301843816331752618582123615387052268022605575690162850898324468760896174742828418119117848133234727343658101388508851497709756556232144157820666246676180444794917913633602705651378729856714699764072533437180610629474684323739969897729030991915222702812878646985860140623424928064650445161234823850968012355755290782051665349678460313512632542417963238638871030582162231118789156566676773673847342898514533301101316311380614534818887883401269093156161130408862535328623084562480898099776850772431148166397504932927467808474593368032411740452744642274008314245383015668852002846334787738209740020733153646990291767911676097102763474095067949680978908738032776981011353132677510549836224685274288701959071896665816379388617336569683723388708590267847572646823480059466093083367737866835274875441186838294030262055083574311096829098390999291721100024961029689737829264265347009487344473574232691546949246056173734090439705931323711976609475344930806857061757825055909083457009751319929043787135649750122597492348045962839731433501430048255547796885664404806140193155469137190717838348171399048101585316956524714708093419073225773769011314039547833048071142093284297257853636548279295535773772055325892523468652129254462985972307012888271043311600708971904909812758226556957460598813279833717255869991149270915837170159126261343639200466420481745294524575757643290691789162585308948335654429148131221142529252981882238246634014129635282885403558319760632490414465607668237508831626692059946125577956952580173209541030384873901965270715845305701949058680104442398684843376333226569616268408335914770698017639074848026043707225117693081170226835235570055016844544297697355027789180321632104408924265145835419876618132181734774617190458337298191713366269437036857134899975295386701048247425372145909298673679825662359630892176859660465032241032291893028805501783583817486480889453024530583727988237452396051784152289433110432879565457307239213626024304401570819822168995309816233232600814625743481101995045698709447619017037350011991350550354007831640438053141778891399038415512864459033492666257842397750002390704055147454092590337399340507061529316529669151194433063979729028285205854736379685534130050154733349411596759407914854184180702424178329321658349340525981834005466194354065587011206291573771765229910764494951213916245422882936909586515926714148631316662347470280790677023824729220679880517724297120460326171557475887502541567882428469403062078376322430453051661827771428498728892129423642164130070406696051709683695767795476554988046009741654740467660742502847526786105750945295095425833708358761241631363635619805092570308098260874224050974252224147373318805460791039038645207224795098693103394911378177338582904513124620085093163336113930054625805029967502725981328773883197845220045990465347170130017524926254894544089922243354009803043387989912071819488893197710535005988310624836572946742172494355820097453912369764546575508999062606457348166177728311556761097956017245631353590245251265922364995566536557463937054849639061941728246056108375760028810689062624082687482826840101094935475311994667429725505709187974053940999437494609552814103085536097065368374498588133407439501429147694831580623558735609032878710206459055795543394406059751303176604835968189378142742351637284069378184110421073406370332068134582437861701331925132756261255458087684739864393060025287477798825699691560645358490789720126641747840551390707560272366806093522029915234099832585310703789910100724045806198110141296137646559246263412357077384083280225332651549938744292950980713343813412341044846765321521438802308205494178247759847112130047342762430427470225968691664790911332090983843893171110009446324392934728287580606628757389298030975087184680818745619720666373654461913399436869996791132471901194513758565742686664702960875888909310753551392850654016801743906823996982099332925231260279354088775024419617782309583334997624133852979159780915788327102417358242945173980299132148214402265529369029361307301087218935034074585331187651136778070029992431029164867222527088782798033082116141996749083548685523428599614807590312756522908940464949765831753877367179119335378918291493474334943016367656233403775828260926287906964973633932705648979195838753009698237507305083758651738758171201759879217290092028869373425591284846116401828691590913884143831518420046817007304490689075799825125877487220289563318206186329206743542790986818786218574679337587651250171099638262350081222173614443930359313733099694590814596404754816811629994000118286006561460977736252951312499980524691272991504511075439312446048538777170309298618336435408327870456645579752719447433311813099719165914962641446743202564917792679871397966743271933372069354364467490585585770148908783848128244099321630496893363154312834246128511983332707604597966908362029311078666110132068018164670260871437426546314812804289393175906979892094545911028831005869605816204257387007458541686435636783076390255535485622897425155599438339342811518316388463933135122767686794582001039481736900418596295196701676066337317342162391150101081758923055219301054158980334983253756989580665173332933612847949420057759213249131375632911731732584146968345429435742951047660987765010279001933883776735205182838895726254060298735609286638918020407786141623594118743499318950540688784316984838025006965121913071650450785188091215517245835653081782130849118867753539341327407121818746034330067821244706333931583501689553249470873492833375929298367680278976100350461367997765369475769097256093591469781436402063728215658523309120264745244508193544022849219199640166527285779812543931950696404907213294627640013959948049320186436529439032205854744730676852606508652093647230504041350913402746528923669159059609251494646659316384511620539113314763459722146974695185512953319208493337847942569320115940913753442681587469542573533838876164220785264616332857559796023749224763631641698991285310442015288816684419409057133520381204699893755301262060290112224931825519097429274877462383560670855304006141816635901459432301006879839532945252039634486733336303421784105989628927064477849025304184612596301280897927400619451004920074855802243432664863283415960735517404531585764172015248258386835281823497896757845415772151401649929711290083391151170858415937512832454704794066420840821544746793426147962338235925237312058975262178512882061750655271729611688540005699983694784776388820977083574011361677076379048334721305139956512849847161839312045629802941323444268911158560029412477214137855145582475714081331030523941717641544007533663110210842583514935175051368714203703533107565212395412941622503127319982293334644947941441880327441720494319595298445544051934848040642057758076235178608134235309610966304013217999232242148842564921287893342978677553440784141038848090196606441365053430132717688597135574036049097374568371040829471716628944406200883306747658987466597694327833405770949786677950534316428761229231128431854306954457712387247299202186081480838652575662164026588210501978689350964744580444246683651041262313626788088047633652675975630922729715692396952992868229166297954174912861813904528094059707986321151177195719627382055441065025995569266391706821177887812813751102960905655421343937597019496699146721639077501145722986086996843103598278458576745579742149092753932257892889253066566168219054367931684930252837510626465207230034973184689231741508215666186323560212709613101478728076681496165354021202295283376049467149162892044277065695338668959676092773843602768094453007003630875694101291721737716941833084400507591337123632368826495956326790577595083913216504121896255953519197133845908504189244608101981738504285343186064577825933940672104963215086905497852002161145750229385705026051347252203702320844062372344099010060683815733068820800365104366427866749918004546406169950615094358618076051269874458905466042958352407744616346495449736214016518875173658039661501710592737224903288479922529047115406896147122432776188358539889324526603911532614369562157409035012168584352529530048054174583822084831103052811447657134518821097145123886045412109464358779407645028059791135663316246719786195323382115699755226601526202867849486467284517331445337668195881412383792783302895224949767791302909026332257943372001005205008348860827377379378862980508119082372682036044507659643370653193719075069293586839757590339733211833222905333549620494588295743336173228887875737668082311157841016924577215467224190771645316065074601524783747457228327190078274673627653047716224898650563371122940870169003416796177371239275528567761262371304612053538790368036590800318914932109342283423758694288885315228396024269305299185579883552249196868335051584963192371809097959530689022266864459910429351096376806312602420243358130171587175285332472653900484271594550920136357959540385632261134213674763229051856975754124762542353532448243880082500170161042933877886200569135134557424788705903062150744737334623766769956157235922402803533351358979282605929935268335121669094537245085750151851236363249361743991785871028737041958213054289816130105810102521608307009172014849946184955055602154267616763743026988109794133183179031979889760705598778095669211878286405176907045967233328162470558702502192270314113842716427523704649425521308446610833313686334544916593748064254351793402774757032886986573314338157566553876513140723216868565816559402079315744116181607526198203106286266936243063932389222146764273753319103849710887604431287716069034425587680711559755851581637226188772336175878152766574752639969972796060554975004945375514538912657983055991999617908407239556900744410215351949885768615060911541593006870606835065280824880168325060590595085311776737885703095072859352006567334341323164818458094244119464557808518201395055597943021757101474414037263219103193118501360933862957259308384168216392023889284823467164118412213353608428188574311221926477785612103914795057478229817306387464784846675680370112156934297995258783638735280156102222531676128980249792105416806091234358268962235659102306252801015958817121978741059354554474665691518594652809135032475720303016511310076259426179307653297918859314342704269610418224472022356095353335172186649869311400138313585126031080745387082490516910588333546798502226703473913616291825553342895899275589161689144012538384668844501303505847668246526532604142626679334076289468428770152674219378057505922072851329288119321744043499373711683555384513184922359068069140948464800194392277144542227672029373653312666250096144934075885877134740796891875216839053308347444952275520676535678272391104875645045565828498050303437246883030336519218587308149500496898089945197268871486797486720995646202530535217469051760885606441954411030943083149897281340376560041267743734834161975610766907846079015637911964004121580069546103574914010299330704213833780816393352078620316840215163736588430918782555961785623680610019956783167628992518789475851232387376070805296687560738794396727277899908617961694452532656598234880370292560555033220524321276373520113398907557477265591158706757090001055158993530413428795745282004456478867577116189368936339829039645785387747771572277600694206105722136489236685056621455739784417387004414517119885880531896063172800117802700091533191388039990811739236449901644175795265552476408482742184254255578835860409983962153780436700824730693788385260252845236248169599110885897631099137603119117543445466651594125410427031555124879839024311732266271122670941297538928851464383330092107693208243571124994351163477700884136634270153974129008075905993939515707809575160400305530193293903666274098438885836087934779030987477896390125407833474579542273919702889203102598477634820584736711934771929827825768775288174966933143551011496129176045275000561382501689979983132606585987585913148264065578580973139047160647673710337534664260851291779489882684037403337145198012868702270036263069539162087863060010288581239104663888226523941792685571261170708858947014393045219513318891927459236622017361380063416586846154534922303950024114645258460960462151937504728380478736439850979339611976210711062650527637108211101863150665995792392181583527303573899139108166324222021417960537690013627768767166755956341526979463742014491378621334181107970802452953332615515029625896455930046304806293310419278766334657479194261818647070291964987783395489429867329142044637441710526179383522524932950735388413692561002650196019826809925567668380844981479205418903937557177736046696260902322754724933053031103530133048243692038841581696664382245287521740843004340961079937734845192350769362458818370726502991402017537968212576066548847110587188825197819625464695656206689092044417852916327352864137812184720925885516785301126284210300853615933003631642808554626475452023146440172515032951131950199010701742632872127802554445689771959461830639046728997335033842225798143135349309911704893915267649811510379830233111186080128485043797392950934432244516671317020149192435129001862245168838730677976424138593968953216611831226976133423143952858190859592989551602284848007742834580088398220525718893319660064717640694280140561933199589323104891494634345696140914239948814776855201821877703719160357739133629951359294662210738463030696531654592778108616272907744069160596326670074993089511124311213821212949626812962558562633796522910451979539604261371683429567193750805390006449073085248675447982183171748158020575978462506447913725529061506163308982417179012098480300331289357266698514594048003341875431155597185809280543811280367624007431758751400835591510816563126524854785015889033162659381983226625048105615607809965495803301430432896803353980297836461292327804027429136629160314630705054728627842470269492849935963186440342509083039927737306124491208468325273473073740353377492996568736921533876585587395313397946967262247165311114337837789132898267061589430249041505663608054073545989926529178766539339393896820177016983270108850341640348118192768220992248707411327457241717035247701359677997924654275010794427330125699929288570579218127507255805862341025968411681003256214776516267327356913360969027065698473173114029679453809700034840796333029272343746430847695390863407489309601917644846538152217961421607922894001691021470439258227375583347411439598930902897108237515893309691877859464393437550469550488561942491428157638945662031369809095555861820951493468805547188835383066396259577185682238330995464674972393798005641336619211478885938318935358845627754926285691340897171166270171907808288721258731128360404360120435883091743345141918217636169914719769888651438145295089278181892446125245297078546246285615604894651601560045543453978649773543127678140642295922280604826318982406022790544217332675731311205638427879778664160015500091859031895630071141223469061510351758178369643437849684095378535554826227312545555428789602818803561807878796594310107132284676165359478325128730540526717526754581637067708060408527387708368453249683689101213697803087976496951894017986509921344269017244517445447968373648965337393003170154379549841649200896538706277661005707517664339803315767633953881966420482895172043428234667664185091751421434593342020829162908256050822665698475304047335897151293691846436654585378660134258667293389488913209068873236194649675057633780314751367182292119678840863616817223445228321063835062349168370470759950932134276699251258128273480820274823388350860578063313930007255125356057350456511009305330863674175516451723641294011941907708952404502880537042180512879641785706178832518594326747794637787765800080237660855771178744751517129518992688872117885578228449982629535332462873090493320454274341424928586016396542716680758988132249310978881075184276082561883687085757607248296843105108661818699122043438644219891106876922166068994562694177102030099213807604644331028922131264622494365281959613378997054835057037099835087217534311791475544393711377183442127702105437904563946427476274663358529956837165423945117367531198986104924164569032416433320454372321495563378146680619637820189986949392940440680614834999822001706265947224860701322464417509134672987801424935226625023887339731323964326035334043076794512634287743737304717729391816915671938613060998148501151301253746625095175544035322030524309374220784929186400640530778730032337478775777692954589762215735848521021867546629426583351903517150520996543468017124778781159663037855516252016254323556597127930217685195080199788615246143011693155535147416914631619459834251503222143719659194648916715843767824031005080111464203817017618279208239460192837258549396292423540257464129912188655792649520122304158699523814659875190625255103219095861974589272237984630998936399787754410576884075038567032941349844143699559731392151632939067133172214107364694429790410417707139366300334922039788786253137001167323732249255904463576091336310584813083968891405887856737626050944672220186505738120950205663918659768870031504152412535400522958244848111494950135139959556146587760518089171022750264559202561980585208036546118337348386897397022088187463448209903350557385041641047276756725890142115722544307903138020294246874014234915328669480553125038905170182476381236436288674710504667566797214325270011370051959602305765865421310927168229357689799886889184346871574619095582821173801238069109086399014852704286296669817515423637008845749610685932380150843186294972813316246405151032887820785495931723261100533523467379896592296301986276509402010211162450700210459034697305836220813166259434819162787054088791891238405601048724106939334490085496386820651512317044418867761429539938465553550077614209725917823472139102791947420521169011287463873097002323030685716078422815819781177393839018400165567019245295208883872639536077315133994403988965639188275481520041757503159363540863911513200343107821919571823538203051394251227054856786256701280080940673957396792628427944101989639212170590006166190322221591205287295308314466814829204596931730192832726477162770282515963294183387872098036097090463261266762062896930480578946703309229798226854892830488386751141654523724376152195513994671692018483823259958052722516056235343825861174545884582308740929138779589048441505590322061384659230201324074935459839431520643406983689632380298823830763868830326899752207678536562160600017506084404419479038849705531138111115967246870492530541479238029263334113577946093712317203363066493381612672449184952310341190074169013022520215551953944874010669227031365531858632084323968083733962025077770458519298612790810354477113327269110843291618801209212526075103153447885302119659940456898417066679470513367841618038318356427967629209294103718847689697263813563756577876146657738915278793039514690967010095739871149503079891415980649775775740865440444336864655004981328726638961937844959757336646549690629450959869937964944729142192665476426686223871551759651189552560853747536379831933510314827412097887521028155721876212750071261739288603287397974677616640918202632144649553160004522734246547310450309070826891563118385259540974006111783832823281841090313127857624531729416880803020422706140375606743138390288249049737580766698738268925857393267639217811095866227015365756404641258986116860625944116588553020649959946557317239450791338063605654769307442352324632211319665691996090118093820566989624038656520421657047016418527638650046982245493111654526654031881081916404729481692433566860255866247915552176002431708879240720223929656072061886831511037661689050288280151208552445192211717620723212832769682668825076180356934127477470411291165577862765610836251420913401757080501261682879536938151036143346176319007453436577435687269632307363017317010798879702817266715746955350174869242390662482657202791961269991984447103504618624311078901840501199204184097281789345636909640927347889978357498134241021012615831051583867971243168259733689697283638211101669482974056686253046213821813237701145939951632500027755178825209191950248790502083097687981790653880485859480627782929992883745691128840021366705262629233293928439882480648353334578808556971073153601794591721064474651316256998982683519275301360575380466529589768346746192214021121861197093966293926112763237761716052917841789896706832416949158063185525798318526733832237486190005328323566434346526475932237576148219720585529172775851072809199850080472953708128566945406602628656321163045824101161883306733185559582576169893310254700226856915588860351265066918466690420951253381370986652050024954086829877781381330757858099440200526373566442648222328847490671357430105695405737535819511278377987623756887532977473221994528161140396941030590665757706959125477800734517726726983495489098814395931968383532946810137901392157120275857731144692807272397427376722707650554284684725905356695881661639449941634276318505731669601629757366122007478424720437908131941581664464747413228783296514948269499082225053459037469494393563504617065382410265186876279571528198028999251296024829593238709422291191998475967786861983727149728627469686637578512463192705313494183008923390856967687285300560419777721740108118218456399466808249808568365696872151444955833177903565583053739872265443278549738314772161087406045290255908544346793510132932259873058031758764916477313459987386973383933215975600462891564477352164814704042997515620898451225483849315087566095364967411245727694898568714578084195553864954610317283193832203752544879938017125969080048528194010952113455705670859283119128117770780340231909561534212836655466047215642832891586387076237052698084166559909656156235748591831879224184630534220464286591115464320760163889430421070619170003172136435474437984812054450795318733504284565313214539322738743252628639369910504406885742484814156428283261309281168161257914970665283541700418945587241304425418353302979531184591004634433431821587547861172500424297415929818383185310482107933203364900279267327725410812816163845759053595405509258713953649455303072915713135095678213922331239640810466382171497473428105468977147707051136128788108178710356266174812539599791114371115554567665628771874724006090116970173814683330719791380730145425807579937174066442671914001247743064346408636712130565239631635737796022752778131577585799847799444311913953774114523940653822866145238986519267678416095899351583363062704327805649202155065199042399490713691243635339572940327939813663389485120205743164713667564555699876112978130049340085375782139867017039942668813451233893817609761909277271095935675054169766252497686966754985603096035232067033922856888070326991747132200628304011506847355188387243685369644655663528386800313383796431824018495650128033370451222793509809763398994314960523527862754117138781719865853478943966732292166764348401721055036936828469912055127965299629765894577484986962353380027359803028232261985270537250845133209588335839526617033042825208243626472815094025964615348043967265829695567944976335102810961053266060368254269076492676526994345533929697595414231448274957813909063139860282195812690772638978169349472524421222432610058901199973644292331655462384123458594627708757152921129787415884668609345950075710621825041014404492475015649164895911020173634047849276904503729159129609401146002225976581534453955857233174219359608016717725301663330238816204006584440390690440931182076233697844363307414401832352593646360962131242299382423806861003356855197977710138605439308406702723145072469317087085750137961540742984299740049973209253929274745980395235717198564040870157272407220584234445897616384095305336743174653445082076174286919222510914336839810363075332098503382937410781903393315004146163702335056079239159361210706216938125208782024233056634874021695560143736882827594468602728453502271721001886632486664033307801926826863541835147683858386294406288086595753428407172560704439306973573716735575611270420972288403828389982127093759408351025485845581809648065966527124498637607694665789481496319811698194806938043750537782519509482906508661905468508507599087123724358832819808641257584458871052716068534893562481668559235212725963579545990215297790351086117750503095993194216823937897837127252226576825700524901479183444140825300597652318068875733403299285317717945017526836718073839553394824345270067863949445490593203213270221002980511444130429783682177639399312039357157995488867586254068275836591018985167447448605343275975002356163235538144451553010789146275180789653869559193596033523660413622624848997460372568694233218817571716401428800341940788736264765191128914267399964532620434973398744532546235563325537953180747689115762246113066445667366874615823384077857644768227364337541038035587941182781493443077221243201466916714153832361151276767445935906142624441824751967064414596497983945128934781426040942443139394195257908211873552256190119234633250930721285734610659420310677682964848665845219904149929918404939312692474073753509520688222562125367818357700292974905180606439215992326936052738078820922377220164897780319335276296989176868747361026837877834615265677845181179802284376749073332340432654574104134550854971336868357855038043021305393284425944068244853841412291254127590580904433299299740657335775748496319853926216108945868864558859397481183099924973121080564776525897383154208676298700918687935218010172240133926980403958357532744915460160405989699414577536547032424945524736252602332293102140862540329493934617693317668873840448625667330953332229915426349667295876250992836411303608261280251179332810346351348889153222398865695409766290011212475319983628946315727606265063886413356219185310301172087311541932347769515901952552144818605500291896804946134563518307148415536112081496177103394693157089258021428898413105564762704931322782798373545604884272232642331598988809855275901880644293983967355675837901521007791692915146648304279253754414413358828047563035918615990725724805539078870054602391512926902643605844731356379227223709961212890957010427425565792980238562925380700124546064078270824065751741268735554795431135885874097152939654055502936785015047063557733708813732534796810976027077144193985602620493546329597009189458781578096963559869070922449889751463550135896997035147820826728111591337875788396951075249921110967604711626171208142754701633453456435475553120761404316942081786150206599111890712698251925813347913710244562635579658119446013389400982443188902466104780366522819387255994491988477292812127014411110888363013040257736174202209599680425762032694251411815846961188548698203564421721279932968971822484586344669452671773470780404824597922966036376967544232283592471010270211515172680498910437553265658975956798565009541260122220880609604223787950198325764835380012483018935173272234362946532797093231000818770861214454806581357209900821425082381738317832285511949700953333118082832876831737685431697208524675522787219844829846751256003200869838806956787444062479321490559020688428905015517962004668778527900619456715952633172929321890796158233245127397503451097249518154295721299316065536670254039186977254737071595046923617165092496153963221626666949993467340005192605649545489044609123106075507998771773478460186232365794597893215779966345168587486462740946623906146612907216888902370537795661983824081142812772422805735999651990472330442742230860421767486675958291919649990113554387368209737097361008970660533034315597749546213055894322653164225754872945093427638823559437139441895831788313333081165150166451271521451080203060551250603218537334140124646660393644574484940347789683934794500616941126373201183586809006147950195041944970711466867677774688455154896924570398651731396736956584486009115969074951408184585559624324732943106214324507732594073228324433162487523013038639708213609447688565702286386752743210916189556168024856422056267619541596112713858999135437573773689890504342344534928587645248755254281411319173384871174714394381247931398058470538381249551218046927767341809510280647267150776697363914648055472594895127938976355565013235590160539986686904602675254109894060760507626954080108643029693260515741692863317728184720716384868646042377776382714173962047607830642859619477207303811925100438305129741874020884025213647141886725599707612658165926670479156042114644191089144516716984925647148165170843821040987969042110992047409104948718078224361614731037316164808055335359859826160677465671540693753558209571139695604666576785763679749117407465518037816266811352239107719020655559072909547377143694098860303138162108396009204934222945173512644321567575962486356543518871346127651767548181807867531181046783313465409125597602960091090897788828821935201494724849212806232139675613937397996528362528205283384292520903804945234612966105008363996875882638775219476675499487244168365375714092266109652823727738771355345571742961401740014961717144433108166634884549834690430678591593424103592004476595884781458373597117131913149077587325217990772182067483922148997489580611748064722291524341043795777869606843172281331366371584369184226193161218281357974513225523858320740642962077968717895694713018804242926798538046497378443894959094144049743096005564517581563546408340751165243616205672002318528331360239602288722402193312780335467795227640325547138841123650197825370898067083612587578383228527478092933381226630633908012410895888332907560681148267144526413050988429234351759370529735181274382519679680524665742362138212080261329130734637751247613619638908156585466329119540633327134808638989255265090300122813983758858503106964046511091358441658069581092562790312724327263302750763832801787186841384623693125280981427481053180324832252396469619830356707854981291395291400084553757168000510137917063894773445511765325089342148633758109105850915138332367601091060094839149069517655126038884223463285258935469127022747258935376910926228012280081346331155365314279870256860765308650040702002575590881279660296396293422616219732894837137948768683411029573342852141036262141982029482673267177624760760145098068209100632866630421186509121565417840423846297815064997967551659462993656284552248995155400552918453209904142522330582068201018087800122503570797183460731880978417027561753190201229833313921679106158770874904047627560637095266215617549583475993840248997155395842138985497404892950291606704239372790830273115898396729836072150030234268226681131773315261054633315740376489774724735398794678780761217001936667883193214771334635300172664595773212651706716494685736783604471211856045198933529253352673673920265584087903280767916510657632117235465028023521316276050473104105272318600541161604981008568369791029300622399119752020742453264187185883887951284720835394613441016412208532024264433787347580679285036720307304916154950595307898758918424544020758936378915859556333780873569863450837722782297564517778479482392056884543500148954800018465736666785642960435728983906468432871275215913929767452439077582144351700557948175188392073462287857538651332792307051085882416816845843562119708233597831285752507885751070400556609220575980865924313862247272608933296743061249888549752435212046653788792447536338271624154424224757508692858851733023312822955161817790216418850212994943028269977393583626441026951187992153588230801179800857791289907974646159561127568168744534738243135280061281701515956161893055744744537153336059552414108398492337512931972321011147572513595408666743650844240511249945963815352797832300338046848605024194877111197348741130724954698815834908856780114719077631153463517229764042347200647420767833408284220799582076747572019330436504610462076314430257585817275010351246353490350005542988452556871833827619844052295805308753882772194408628337799229331431345215601379412202330567626995506980292188680946120041018271830434566955803105319861493216602020245686924604842857968957285298562703202721585580323416000355248768524192339230371920207194214696818668321412897204861264174961645573450529684863816784075530214196831679618842541814132299736365048298784328900780755042666919754673299323487728840045248990432912049423415405291395676462376206930308322884595885669224380771320498902033641006015813055821717353044160469579151250614953416734423582997052342008136506286056822328062370147441601402539436078886095097491465886851274207928212131058933089580990184092919546671906005289476101273599150517355286696905888796348120594684192907399031661850604057268418717103855349839453770628427260315442036276682813688120273731302101004341196570523604458566368654743872640201079607890050787335269255667466356871203564195189960897834661155797332863149908673263616076522787546440587150439858668557197839495107276557916616842929661093912305044131615061579341338358048747042444001978880263761176266193476057071035966455468902161274936023785154316426633928239577271176275354448932843737919782243086076983194270571194105953794214928742934579998804032362711458885420889769807971052760352543430906167746490535981571424570004396525963787865108952498130210426795819617806024017399008875986936084801491576983752532116874055463988862057041017339687742524179147982650592825601456307832040054888507229398752948952663937500533233699808461278356010625606376947290142671852031230973848937364232783347390816147510949601603922209109608492074918955864226365795917918239374841665719505487138634981734519206748597073995734506561436539671900008951371585581554001714447649095587832886467544090724183092981137777417394680836623357112212553802967960941111837607216935079229122396991409049628939278360373302646561942658356214461503321878748125302168907700017809481719152740823171855940768903578044916558538558598487996545139523375624517862140073791038057716127067860681055733507799450784919234144349683085415068090301635035618231438429789011748358909675468578766159257554437921120743320034838369315604453849409236921658406562519769198180458358058345314335700084772296346554590234765884229424680639649394430293557031745175417155471704881084234271898992927747940611766153739195585401636343398726888078364204970113593029440338526309034067016524461142002664967643700687672911649157387796473303254187575716209333584864013571388062732319688323391829161051427849143657069958340590542121493796668688828486896335985887029407229507750945960622243574590837174795812055670072923455113200008784819674660466597481233572664284245692431102762756944917877670022276554994509784220956121041647749630833703577550525941514650040820218958454955629496533146002838180754910830226883843787325576637261918620231025961378263938780812260858106959811407708287889531173465138495209543680429261692823922195391514380474575881173888510919561226319277993936557926659214622659471474688217520297223535078279008500704292192407101139675183209995359598806687288609534009767209434785540025273969008661519690967140213865896972235829711210038253003937899891770867938511129922875912386540155395253225141792087253170569663115556193216530508609646833824774659328113170387057686640046574272464430627624556249274206399088286415987382100117500649228575616204788091288836902626888087449833964406359409603033197775065650595042625995264335403798149240955181707026026415637082033969425437839845382606775688264846109653877070762062616158630363595264242430146622205770989951432117275427583708230756656024746035710181471219256102757745517573074127912069972327787027518523328224716951868386436051660725538362453180146065530374411899280202261757663164835288567527494934981674553695935680217133335474778703467359575046343409786684046211494133160905833638019518168535592270043308934374729501389412256145344173079963278593522158532500979844464273199243307717786676803435612867718219710173736088332176878025293076928910946277031710140751741238107706442539810512883221030108580680537753817897621276014677186404870208477419398720966984170576722131296856044349060458623529957171400906183180149518109946845153542437632302762472269061853327591360264241782566309177989767662327260597807362902052131831700775163562029671738478481370388352124867736549165021193347175114475414631620630575401228092012040580864908017113960134709487200296180560714794839457137355786941276425528334071480796512853513536193964245967943384242195876879325784338970640357351443984499657078237837969976955829758020993356384684769797334807138701750900254444614585014017122129650463008781564727339840008968072169316602740911634812189406582375209832628960059782350677519463375554386151869878335271219970849375738556314280396853336045381082884928776973823559521521997193051076278334607331967201304052299724875339526706705655017477503701560308663638676496429554068300412511472917328729675697399894122510223929126047368304730178430978913730679396664258163993714166466187634992070701154447100843674836534472615029498608535442517939015109831427409508988673792802138651438772821948467594937110067498754491890242453382343040213601583575111268161350860299411681463554492980073027690264430805652178137185733906590114937644420704254008017850798946070270753607152398475978582208364213594145529755824511818656407161896424005200380795379711360458279087803450829712610842404117964686279945367730133440766259677721346601403495053837743277078951380544340073609755765956520791080441212870168791953755140700901425658188808608937610886738105739157677758839057458059068021603410543730243319536992302562455005067044281556997097171857414675069727896476135215135312194340406589339058704624362688193434803279811017655490598052029386295746399468996822205255888898932557034714800361920422510556910292857604542635593887260610378476736782252963926323061850527857496362821022309913093624989229842939660552274902382701872349727042080397336635587338020521919504518372108182761966095761191847534905851297747623562616416149785416373365217960182724894584069431797925223581436299517383461156680149278961998352053173918567176596553193146060672131283881028771622490433106876498633338369853151211595250635101547176755878569202704848897096629143842852670579041525675862733644104746557039675374540530128728694509541939428411852770458505358509713817927805238079141204204949958499166492432310643776116980617625230005589130131158540510077761980902985565172815670284709334070774834844982403990156616757833788075095759506650070148016008745306568372572176245126678939713355279067055584267769049782726265161094235459074526836773884321773918731702271886047146345973547395937504102270182895136643834033180748608562005444415469082613982309165164015772173303215906174058806366820673933756857286291018545823302834487950124668740554650955225903874708857545345237165074814719781631364348271308275630896861568157510569493419210125458742666196061820812826814647843971601967497180576486602391709108132215762206184347250610174206617489980504770335189754427356855811231574425354355374165529828508698153846360248305827682151930774638521030196940228912081683260706523451755455228623158725262236415849575897501660178112877645233855704198597090558730650415135294271472855626617434428925190085104530642470257361024110599368178977583871596826361726112919480214367885880948770346743417560889363256923729906790460030965406939664420441144310742940182683966988570308827655682931760585876893377801253304303148074499550906946368708405108226961439082324798487371246909082915062832332375844826003784235032027655546070079575797297088625134787584361489214282023219030506465688977376976608871364789095152091864512664510554201240989326535863836756983294176309445208218264341821731748695449826794728419380153498995285918767290802501295708621410969180429706576673215122883645814296733250054771616504656034037425384351941122354877179615007423341053794231415788076233839006929475432243050386081614698933685803429371349587081353599781911623319637671240958720408584715539531919458119352323659305709409620821160569093907660762666104879392634409506851408663558142306857899814731364420825231143291371509406426621096113042525293517030508958860994899045327831814055306088345235561905520966202947615125457822716811281313156464926626754513118164277028317705106913102671207249885209198799852272511124786253655644307013856470428492993545729785943923489292717711970632650428080833242285025063148515108750408268445369052475306680805543917210016013624224252233273116453799256881525793954639121267288977051302604709164598957843726566750435171967367922509074354041835575876778925585298294524634863567265474073723895683581596167181029951831108421618659702380642699472558490093052783856622966100866489220626646242805856001861710593531992288680308725771950004250279923758556943631244315463401091838488118290828429964646101530696346125834675951370113378545581617892859495662182901181262436795576351874870423465967912296673208966352942076322659998547276096119918759515236711219782516708806427976669760421738043239589616240970672306033804229483086119713375153210882311365778328044144336374268261852503239317519384471153996812064548664630789077489944255299013445404513359198431371063441626053912052489440608589678721265171814484262672063105882198317162863149403074318502977326195646532041092908946926100241934517617540272641304713295655519793673506360314943709666039757077549040786889892928591501059305604666059351984977132848292797150794672444452107751616222221044770521371462319211167295983389125641619534532989851761594360884814390739215546808561423962329014875259996513331584695325477077406350437561957068266765704083650269773226401525436292807864584256367223738696922787749032569621227284018964313326245595547421692462271015610151170120100207841432018620695543660581555538689981812871094396244307282168398839580500427330859729462565335555419912013712434210933916922950530772476576750264710153139399271510007198361925592134612130343342686411433733413376320570283073680064384722236399848378619674144847512673275234264262634463580709866395128042829042749547143292695680105771034271598384679173121856671107572758412071472788728601634618061688150367788041404497496081938691966255178572482439167129377448515638374185669452683348612424128725562934974847443713475299787163296015335124960350400305108303171981951694258253654737320821695421178991410916010211382258830665273780895269327208511493257316857404774304524365498537482559003901106013292087257707767924414381927016269748029044579038014981385983710057267394300056741196398817954363866668526148928755365748312539153860687696215633168277911609669829479877527220321302042834017645677864662365178621772421034204429168888309678743307745969044610800222931824452553183643536212561247170319604748811751757116263231917052858766395854102835734525200405166947086438759977536085429084531352208637072000121902707734840594541248110590071870224076326608846958173381036387023837750548963636534713886735802426336478876280657698053667672437952051976162393319344063393179283054717445328675755940397388931477344943854874680984722562793380243763969653482414734979355422341922032670150969743096262338817184444733638923463691020396646165143380218636042732401054396679629748449816224379478494007653415130472564670150000838259099972038320103531829810569276428517695046394993816020645710154552359536222973972411769078746791758503142993251608526213596103650906757271481617870890586855933501798679847840924600276045038464987837470591437206174535497711921946474604895721212119744334449360051474820180075140078125603128272509479882130895682856721493792231254264595145961390180658980834994990631972233338037005477053984512923051156897400872392852486792050673400814402667501260598906404152691260662742471002822653550008525439133289076381701312289517369145212351874609128055217874581431621907912551342124977034839144429659482955518662521104816250668696805322530785402068851247158370839345138974253038213671136698310953285532981948359653422952344132018321729336378819509317328265415874350905995363252095742653466474789105392911355094515429314176191325788555635063870010386718425535567187462681892092488677000357008634423790763091816445059951920994193168101138890544552736710220389731533953658511000527765745739754882064951130018421731101672741320936530382146225617828852886233450863372374961786709780221860989641412964489305054980868250194914407341793940306723641540314407301561103245770646877206533242563685721585753588116784842170999794175316641521821121523214151602885252828630822643531814300157472596288636025967755293441148958964150190266387205275898091041689556133925936531100255818762340902891810209393990875086925972270976432448970361069564489147068622538793464752895187975710232076558509988264241808873938654289708323289248053791302137045508416870247565042982904756017490348924521590858759988781469237762298507795501143477814883347402102233344839757772934638308183047093775826725154568950110141376590692838088542472379073833990283733210440298697256140078328659821245767774859478626876655553758960295196751308682472477074686208197128291991381605398763168772171693520860604773230446284618496190579809428938158989544450421220449625819645993212124551388772195273190667140252737485471885688811756053822078667742007892806680583141191348041242520236293338517570246066871587133405066892779374252342819196352783707011544968658695815502202178201088007092959799960539451833935152768390785490942663234712802781417116001935815162815452854663745935850792940919854117191930280695971615750784654464448325801197134296321355508294452112997424662287146572126207458389449984283018982237748450226394950350449494664603599629269107645121900570542740103014548446554088116471522277050608849478670896264514555378745462356847888404026869194481925413146476411383622647226022277652889023186378973473399106126635428857899095023223953886374798768413864871982474632886484769001244200164918490707859903714087496367264184516814205028861180969607824609369358013766428808724375597083670262774329958866488004152031594159040474672801722306632685934238440563749095047057205409009929331939169569904990834378327729733229243212167893312266637008675751169855635788714282027603608275399220043840257287753074936299255906094534229182077350278537691956022239604836517341601766313173419677302369490712193743024626943817182373560180999064597201938265801378136696269931101436300523828854496350639296387544680630100561054904409902458988997536979012043745369487482540996266878281339044906565460253560507628877783092179640825962353544648524903703143781085052334211059508925424526825927635272990937478423109178985924708397569356486468734746500488182026623251287333037614175571444121591276358648122353864086078972391204450645451725431111604623936690622061190440442570847256586258431530483370796299050959258965214468472884018028292927852589723590855629308132769380132999746700684834820145731569488345059987652879018315221620053775378612004394205658890885727224341111478226382842107146093277290126376002827127946307805393231302700617205830354030016454357318116901650577363141456682711021731673829318738028525822974018071945275172464577396046737982725487704020347106417000030640195252830278608052720766077554706876705034653764470996089891908311548559468743756992979781587906739950551242279415376698257743408151511333016386412199382205302504186963536893253001098053388592154899201028899105100513336064078939801488951613237538739319633371362473180558239708262538533469305472640568491435186841116767048207294933254146926257395323150899759464583070152106214348356163936559302349351829463615353132881225556421542093021560588715394008550017957303797769640232643683231270963027139012684642563561511307635690717678180091620895421483914471757200584792859963334319869958704231051295417659644893684322026326311196504323898335063945451221571589953615748276082957325232089702132422970803173323624250693268921264811749429694109116977785456709168198483312964000490732174651171367303955942607637181494001427619909547710793751582605857751928748744256398168201984955276457215181632951204439350570385548682525348828945473812341017339459439181563026526049624294498383237288295467714778288072856604212639434600605403603360857083105941617098965602516062591134922734448381857476152895340158353785739269330214540689259875995224592778084549981722620937185397426857031911970776538924547566939175375934450488043030216632062442934842490617801641921308533716466893721302416949273201872219754418297025580042495959199505867425795260056562736892612602358546762440664444746666952085976898124629549397151630060094139222177673905222259394594726264809613882036644446184178698001480746435412149552547189344732245914573454274899934105623190315569252705426940413110953092764098557461522609912765630814627121082527219028288685069456437088695134613664598831130783549443105389091364724900192458060493280904685622217295404362190828424860507023091230241439089212043506971615585327415796074069975388599914764988344269763434433380911143289924669917844334540285019357253186569551705803159260975650106758806628526055624410933208815801389125659999709579746932174333312214856964144587817373089835497407897105458211541680587366132531824890428175178281423240620932837000880414815355664124467729107460421409252743520678814636187247196629542780741180659672339865362690464418769595981625552041553420600020727620147963559008548229022481317302644121216435822139169006899877147713612979983008848460053750769825395422451021037023580078565974257234511393945476751267239638846447735996571720299623482058067589280416888511932578694769288194237449909983495515691103234582027547520455451332881801153831918713590672440158567205916387000053258650623563782990097739548015918583928157571840876411748211906873151883479640078413740217461901626462241136982516927185046188861773519261122167808750171033910028877828917703358054229453965851767950145545231977999309739225141811396376515689177233980812066406197841135738442477329453902841004194910079360815434555167615612270349308342506603294874284323834422764822318443987677357133107143384726556226444979721551561166541289681398244115776091983518380022958400313857268313296166826043696567080270917172316097407899569225534724471186938896396137446156126393826077531617492528003991762978939366057150680818752969774154061786492883690928973353925577451060191153289042983348878971740391616490671757982169360760976866768825837278354421377818388473814183925953280882162718920527764068730090425770369584978365081958407118822963638962762753509113679815140189840253386830407535038867753699333298392779474205570274843348351643220491152726926790384810407366272691505640689706866038478419841308536934607149171646739160866526666663756966065921975217508381301341844790128645693092248053502638151092999103825217220517852564809456389252791964701839777783161101181095077980857599064953470539619842256833261339567078264121010076429132234034501157378734688974139124356137061423148214359439382791280651137141904194658740097484785327108861110742594398602374762478184333615668301048398981653488828005602184560343309616137325782275923127523038127219728000083378567253078498976441391568809687421334824872078953735485779361358664714773278175256329330009851953962451549198266440145939278300933412625516326990784660862793397314882006393223865015831773264975400826716740775751405529660945871564535422288256791157484064660026119919027012709237968899344869846441465738924683268823774683882012843109627204197843778531160291144901615410557293860260177255806984117326308546149716150961087044046865699549529775934742296242568545069518713580667882929102666602409731535227948881025916295317672683966852014540252328965647083125369903422992455263035783437128053545669590902921119350334370508148795174351482542580962907059774752282285161029376399912810962313727560022275571126051615411379663960438349402534557982192442252683679202365309430541173907947011725027407107338025923545532863024283129721263516238383401122100234934365964775583913094715327307295031470119834889799503841730525892244275145205577572929574874259746596579173908373456101250993250229662956102027334496863454512888964012997448173734908976833103854337733897733307075916774726250616898205302808551880005584389449609945199908965449007936204991832385553457294467155765513912225363098321579165361003867899894751838225119841664802991039525441028480354627911140115026470948654283935873196761172277930483881297947267308310462279194644648894532856831248896944425345981950804083483081978874481650227920005474419966451334314892787213790509224823730737239095959686398075776725751531790919694793419385981554640822781899702963536396360389113408768227725527174460492371947088634911335685510301925483541034235466577181281358763556046141601110911323507970733502851005085926697951610419476048050394447743248759983859845359018950363310142680358567408198788058933350800297796039280803309960839061823837444925980972183261845813100876287745415702573835392255547970968220334528193468762394660540121405509353803654413029153709670258871840560728639444754661509801713301161304174257877821694932132137340943732064439942084387017622363703645322370503981235431986950635844842811805714167633505659669874376003809791717489747818711601802544303996668101100882086620013713930119552905741812642582936149340314517273631100988998333131139895282570670326874127472945169736085447409929317124139034026637399267228267681153787450050995584790271109706875504029498971012637405646250681328613442409023519322758686936020318363093761532487704348428392389679411047021463482933072943011580958630213024545295641523384577119869832339218349845347649417033716606853527971282899808396471934231607729497606835559371200090804762416894406187318408415594874602177978055317453917068198593682722493795758616408234924574272611847431855037388363825801438933294847126505650304994239277179147383432672746486120888198157305036764962285416720641595671608642505112668669131747621392373508143951133645040421879655402512656410131732326805631710026274367272717335497797956528610881851574299906494717430646429055215269655477797911772332472210000070363123357955206701378119656663526293059944560098718724808276182613154937610675952656144902795455849524449386852121856775627267113286410670362308631016362059618618800786341149184404346730455327814241357392940962239598255048676607443210556075912270565196122315909991058874871481392785375390988759602686502213362581093690404588237949307312674361413551977844880348097954945160857808094768209014115340597102084109748412044015589653313784204083631302751382821929774314080120547279451432136585489285705909825092803929671230401404635695054504590654029600520989237023668470985728104813137334953015257746671172915693658428564205313253793836502146032538065497368504044583787717871196136203896000491946444833721252601051280910993400400485727127313806390450290456626408614385251740999045781870208616322838797465725210582501701700928871416824531383189158467368610648576691893658117233797181378128534290702377472630706332414547558631766493218877170190420477396663186038560604618509538757741448541625848246144420859611015447090879613079381234456205337661380726759208394217661735187726010706217938607895263379285164682718400090360141230180517141881269938409911658648089827602824504014761934784985112419013758329060050869042218913377816857456926800387756713457104165977487331445345577270225484177988174359927894465273501819040474291010109521014324284233539852768508445321124554233183644572173588013959562611313066026439128939861626265111949906040262411836470744636279273203363887226556620591057851661496898786951505964239207971755857039509989043166198336347512967626613887720775734192173575035454137425710234258554159601450592742262279104891864896211844320794325145408763517733373565308451844965536714747291941078076133860379325636750227888575235504298475705922149988641335669363650340798588620692402986918266662435500158493710679285878218432457705174297650429989741479920441296198768153768084983453523646441779213044247185570233412957690905766861218610350308773225329438432686145121438553007969084042583607255971338316393634371943223016902347795527565888402820703135801174388497366860772182619723753862873337190772053446932597963318497091870578026803411729606656865757834077210286135761459632930530361900510927233894253266339859948949724073597798233269763538872398392878961492991215040616402165798303891894407657867773872643327033476662450834174561817231822141328625273635387476163833847776259594837340277232518253502508082474689786832388000956645711657558550736736769525936856781868591267251951778259061138403163957296779962522948988456599190543005270019174411358642064136857189940918422909572250310945008906807224257084303739721586337122359237537651782273189483789506054447745083380368997344769007136223899719526918105665248390907629697601852353781961865660588871138765122469577031204005422935016861550484776623255089456868698808732994231143384100800644344262611099584100413260467153094727378316675769994884882712573288276816036483313638985094103487592745159194128222356082053987488613388451477766034181702332423516006865441991678445296070059270316972881240711819644446603852906671289693457562456789133783800367690847930440147817586581383156207796637269638341889938866644554749738054422747589133685098611800473096698069878352260195446734422178356561306985378864110832790302790102908506855778291923828747616307391737818315250655636459856266278154199088550412710401570040501076894044240188927201912080939369654470737557656108424278115912036912922313941046601017187011514443717630634530939706561402402416580469546010709172904306997698168336188811456567501000294499774866778918948205926465209585783996039868489573807854538006943522639794439354504924152140157236861578457967795268287256026718042794124720636420516313765781114101730815445929518534396776043358370601706204689612392153290339208022543505077149064454057287064482163155683311583127499493259444676086645646482580457440815794177239865580046599180894386862355057974153776198682741636831641812245448259727589244854274624097281875635212767706047025676269682662554688947967355691075736333775387280893138278664193115854751862167903919263439673118298874360898056522656682378341849799631565219031464148421858806407312630637325582708782479008125601150314347127968282163614159513557149301655325539478794677194727133063355193148521601821678788355781579464333935757054045730998931396268761247151981740078758885149158487825880000904204137784451422570549066722332822831735498999519089440347889185934757593624143433791905747747580685370140589305742425729631706024617762537168064696522424670884141482970945681340218593307671885703062087485878235053678940814286398047655677490122747698597949207114493779246039492072572436098287416708506183491911755222321867647477734412917942751245661040335365275326693841885619784686601971324203591556725481790182427512531972483290875444424269077482312659010216752251174052399839263388798364000374159335296418516456517162454141055286700824959695542718392497331834033996753297493188559426679484324304733605281064668646959372660326663693971007121836561734723598172399489765025250617382685461299631589323895719094874287370995470602052190669069518221216769400702224032496390446934799339449230142210258951455871801227087725368762798367038163131664575093280966205909463780971344472542358615281486744661925933602384697991942329422750149864675255523976641003216748944428964429723976300120022488865808218599816286004566422114710209778662887400475702132889691535552958607987062311007481903264357648683691455631831591539644772228462950585235331819048757529210707211581789008088025480562388456788840069047995685868702320069505796724233909371739062456357773148462010871136762875335034253746297525577284941985646820661459676501963998604682481442656754966846423176576375900353312100010324166305152780926994016116326927586537277275317895529790306582304365775016320049452454840839759056739654892422345119186936131222013857701775153850083900098032599930061047439262891714793196493764263853394068652403570232063634926192369322293750233824651009548009402524871558860879515137603438840319102983421545701632393615149889961830107299110972059027198191453512572947738177918218010664050102844336724932126664263636541666440526346853265246037054177380313111299736693839876144638036725668788084185474675855415935030084822471385862032389813429267890520516729380862245241576067331710914217670476289455347080058681627595284030165156554414372326493635425282893236146466880358680493292157968654610765851279589020099102923474074062794998411481154629596915850561730197470898923194518005968453557680433197540098753017464793931557679205076160156374324266361449255363209288071920146383169531351250897057835995424702383313508946085794461005470784056698933695407986177469001626732849198061123371408221647639410249888351957810972995835511627472815583408060845016582352081932410465268170044536243293713759311986652297641245113040707456883421145847553521526630471773320669951290915676467916557670570538463304236625598755971180066792034429813675885019483137988999477364985338089821660668614793198802162968542767020988045988683586354294278166399078711189380310329453770397623750877328154874055535450374352386715567602523859845699216607138024790523387625178236602301839373484511098259449283860715236228282103575581257928259299322864338899842897318037498677981947623574119649118415367120620678261707702752772145259863972153281931993850890475128425253299339217787829210361579700467150028462775144538111037218980229741101654640190192406442844146687528023465491730946360159616734487967197529060999798427400649298455407947012705300070074814121014516140546572141935447352935503111840766633919294341520446048426278043637804171394183335138399301850053004303255114374068723756021465498529226683127937703434177813372200387237540753267537468892313332328019749672799169731177165106308904527255448387707796960277850904461695095314677652956194175833596631513661149685110755051364830106295503761478651840077006933781335458980640438007677439486929359271729963638513404581379147146445493238723247865479342441378786006599618857659619675227734727304549029430589853434007965322878150449233566957517802103931214706841460639661629892905327542075477199530398485452071562025868329649935171109461846361863437517908066443198982401702390702432799372335071097384050190035025292662924833181764398084598241421929238478894573857117140971980605911689864997685404505388525117212035094514936398244375802767603135504256266446756293148516064303488880172547421509793913557198508754164693946576092271333343570126286000216643634157621545055094396470860237788023345894118154437146085514485087132473040707252913508567070557801486837562166489714972644356546726865113105121653474081440479238792143381829449856115837941117778995743620599773266211520581437042873160836388898575677100393152678853314815740846974978837222235855465913922167332782568628156168690630123031397626124394265577656869950742204499515964967399359909723427153844517205337117242683303259313427833977742102534497463725833317948285570211586923647201115864173189826668536857067346182813710647429890966625245343063798292481739140660147120188596844731079384994354581790248021923321513913338316290027447230754664710174257136525741854563348487879596952452130229450344694836273865715184560450450631554562080713324858536491082159409255638157355852291906535795863440947328488347955357372605181050142648379402402570879661650569054613605986432041717251562465633865723150721631891523857860187927104574456174660704567427111757845052733716152130950331815441877917168214966345716295979275630936069009813271709430224277224231372781329341397760263685257335879895464828514153539339584894705021238160736849512169105728224799691244912652144543686542342654313632898202402840962428375147757421845943555617177024574365821899006332919809638530763202767601872784319730805583029404745998556037467833629060181909219730363139733586004508299404256697506754318260904495965073461451748729798891946874296069653228591220358527775013305917291903739697556641306198923086906278444817850583420417255301887528599148810088276234771411784636364559997903967692853706171210549260201717672715298325977248543383270813481188888487982662204772037783503800553799954503606738197761845188312559972802998684990707085419440344271225336363216389447440044661389931187779623553696751500093756139836627138504136571466833513907610844590506539062120168685805490226326293849360115785536195260400428662673331048298342067378922804995218723300541770653345542378202191314746058044241812618513401603797029910554822957041217102645233830262308935941026707159227810531922025055751294970877495822143932542498780121046642110320113519234802119975080173965830978360309197726189696382138077550207662420280242708178388691480489612189713631781145444564912999605609831187617574668154886257987052144340961921368708291095411293581551703922097757084312079348202722928106347088736583711214471732195124432192406745031886888027301636255853840206057963231963753565234222077978165088614530479941576588475534353648667111016699082434340648101690912756899106043015663104328798041922374660998195898125470221754121290113872608853990625531409868230836916784836360257879790536485211881397786675684028159409665793812680661795772895189721743444896976376319456015222666128964875947198609561067943844412904576312271502367211597495310361704273956173789638824947543019685093449379548166869384385484415952502580248073571725850814639896534677886093867222283515740849394500691975143898782679574113405850911338750350703255572561634986154767795822888293092339380950349809912473742758585101074723695394838676572820822126246280698568753347686008486799001599691516026291174035577616194524218577738524735199658377094946377462115297181925907253571838429500923225957917796773918242539161121752910174744441130880868761384983970728917748064135289772111465304293924016749831953557044057311891229339047311615943329478030732707708485834939894527318853956874611987174025140023481684641948678009948059680510437673839560705151325146429501449980397299665890593973249249374430271959517218794566431131204851011660709818391495594182940244840939894919516782043167805055738985729186715214768634846135856293690886798483897025472906501975858334203143211526082933480800024868184073239233278414634784980264179414615363127741178775201098434505516227103736315178602628931706424598963401968651201077803791053052528380785275766201440667582442357014486418887008781514359237021538557811299246581223371979963364762248754558851608835805856657941597544082855222558542720238190683863690705119382621797208084662578100304567585056925667041400304960598808061217511709802335887015945066971894610914228749211539466360022583792736961797029552197386997057975180107282122818312057332732962125192130659595106378746956136596727563247725927858093608742849223762177199947601986912529533818401489618871793194339177878155328648917493926149843023414923629497073036403123158088697839017132078104054533019019524229080534953337303980772626920928850196146517041279703432116660047883549989476591101084660489454421096465535312162332130287691713041857589182834804235599855433211407634152236815849433039991071170984834652943840890466434477101565722858959048509171361705072057006977764021102346991371156715000008222323881363610492634437481985498383167307896077550543170907051461830913749324853312328730519608231218159901799656231037958993885972568758255062098929115199497306316202589445189416144054366795406203285608678781251524782540309079712988091420081168505729976021385737164341626191534807390863499827295000779074143697167776059617934492846231188904298517291457362344000233832873702037780073150077855318575314452515261519087708267441061004918113149110863046051705750405440884260370783026091570358641299386613724943990749764178997321443556557348351821297520311306707156409284961735641174325763017412711213104002673830998734180054307238923090809869602954576048718847994544516582569267507872782212503278300830498016411024304102539639593718831325763408033604146060821975044102707988834107351448048477527841892200006089963954532359968667401706247866653970259346403259020777773690317125206350543439596425873222987395133354678254541552986643020424297840627266494716949054773182633302980030482550200826427263458086219714106027386254897175317150793067106308988768181113567840823885535787574483696540291436128714142067616841849840491390721769935153972206408514105524907118831884418833228399531894727019371059807232179247826736971110464087691939117477631168785057871548525841598095455478858634795649584067751292579941049429534652191333567748899225342690034610117727447379403082255245322425861899934292465160657863502825961459874723080011627874045208209006465520773577304542254776873990915799161415598640162918190478044047814653248059416699137865155933474598897805118416794153017287343920774421395235286600214374152770523210270355996807898956582434994524779752197025905609140450357239719365187551066615085020809321531914752405022284720554105237744335781815247311428928327138231095017850749525503546286958811102278011551595285473688678214763212459949885190263737247832531426178365628208882792108733154773457338802039406997082825612838521357265445102841449033472598424841052560276266365735292862139097956752884294958170451350981403277985132797403166443191801418029653573964416596370689964605289552263344146343042292838524654849348115162551445143054367989092810671564417578551064152595538093736430118682542706249483685265473449015268809748370978417018552179668958937883818038421058019789843341225768718946613094374020674062187971623349481375063681972415525868864677374174848249578474942447843520120317478418274010054839284950027413499381842394416383671950982664962449445850976070287263577742672142874506875644419307300880192863340162566540745532495389162468807676379468102410607503149014724826802000096423103322333670355606315094874026294360828030856141076226426580773262035194643900726753523522710637245650054202822743786212505780317233510562535066692486989213244556371170194659652791056454248439925493252346650906168044710351892960242018794497059328750311568569403766965300157621788477146258005962565527041686360209345982326129237812964877637786809987771566601535770569342862115719302546729133395764536492684739445361533260642028154945496222507246434130260992082170191461805759789957604624543040158670396888859710397436094427432297058189691468543658712104347870208615160184518935266146219229582926721316404502868545333988625743689455565302670119695584299072563084026423615433686430145207198296174289009187982679646950131353398449596320569396287584647980752835005609562514130018487991247236573628261467106983993157704606186220227419108412526167000010275289132899191089257059211218528065040321939302770406384676171527515382425090097312690472997598612907233260104731002923994014261570346965159787754016177095629018714605985840589048886400076116527842668379477549067404137255875955104111206856098442804866233838176788106050276905462954644702470863240916512281875392975131796903642560016788870815734494490278430422528869317679235798098052586642959853733659411067352664422885773856815333623282015077424056037381876204959871419414843587676675401303900273849771421991908022213341355729354105098855264179210404625596059119980371925712587127594359256680880398848227460784939533165856396444314455779731780100581188830815309352228814126186095061206756971047084732472603185469991039627982895530831820572129471616477971746374101429998628402529465167531618004136207857030613879891786798279595786939846529458608697601698933200981801445330435006094928992995300415696643829963116575669664206342049231118054176244946326060062740485442241675670164374191384880477355748948155442146764458325771581876592908607323128313631118564740087341091554810173709455756527213714756640125961096084787510970465994666285563130977090665304838895494871804271495364187536184014824038874465813783440729958760209078454826909111633520377297765016313494704868818188801731396438465979953030871059330266333037686699009712741792500485307315729821149407169058596600957676288044465194773646145878551230289806391807016203703191220964107224652272526027563443388161658052461873589337534549629641123275101209194024104540377093088826806088757936416060172415742581789345064268901996558625278365872803153968222133674886706889136499788649887353717683123476794146669695058539737975733347322521102629534992100850749181762791872533135965785970723747138797991489965983507945528276274385854945762141011434761723531247825671618486118568076239145644899120012810582269170100955710357060670551489769161875578071057229306057395575444976300304715081268168959572892693398765241831690520468376388256888101613727891466318170888055704084804664066718213955237034950540711403583002420773408303329606243212374690292171654545977553083205263043022761395486924437039333026058117026053981516575623727870348783621739730828377714448295848427262990980058402948109122911580570028467102038760531601267056484824078171092817741498028903543269387610957303123509077921084910744516765046128971103492487825380393144533781074462417662539571811848706591134105417118398510770167050393809037841455799891953203327462905893389130005136129818619511958607838946069592092118110602941215636502410179773142084967705445414814899675298522045453820132257710649745839960347388784449648305651995790938843329352431585933299563432290880799968647431561261248191152572272438538502960530021451696586732762618862662430792541269266286673820920887816866471362499524039441384861480644355358941389241628732368419402203192092703277127604964534192093333365668162770488710663560229725847856290033673516488858277666915791568662261662924544963216100560545812542587300117039277011041212150173179114817640500783389248719475571873942636189390949092912978994504918350105956201594136504591794521687310901232202949714100149465973449449374316742506598021202442727695808551216495845222752428029230183493135088257681335492457122772612087176867109909549209388384961471584162111682628042373558531995877030854620454874132086377678004857112170429957629309707371245378543490657151227747512750135508141546957381772807832689290218796650504147614099425980931762366975428480227640518614776273522295240279296272333436529431836614002649378209864762515417386053077542812609644412204102673504314207199326578842895018191528685632467426568592423250106588634758259658361453682099652675220946439263906822280151468027794255344936909077280452291417652993345044491042536407709359376653712905960336048201468725953826316582097558906102193593337833126595929300619398964657018158927764143001002124786864479970202279682696583351854477942125641728246137220216464306791341639238893634260037508396147726539380513761106040124013875209146917862902044848003640843166585940731439940252999348332906557171861083409384656379632390302592775746470453515964024151700735802494453527115733564649667416601130669020556077095681146173892803048635760193219650203638220674260705249891698178405471397149360790659281712601510644562356773840819118675954360219734463153647323022085615615132448096713536747415650927381483963408472918109050228756003519909574718388887421663456859795366656270589822134425681502917340201729168694126869419935234278595680006541269631330423829876693547553949373370893861344353825595609322073836343547663884565326879564368635879327692825819886707920507582133103436434351931872193463876836198698197693916095052406569644001556718076663359857336427843124380985618663864593709983923367365752788590019894380416941840610633469509107326424273157954832957599807008222576589857480387124154320172286808449307476500226210433462814377810530367040145488655203156693242406206524083661378745926313274282701630949578694239435787925367384722552712571379195960239000267699803929842630200020842679900915990113324905595734199253183124226821389323900428735874444458729540334482092139306302722179265931441104765833793832605827079422154797862190501286784987999481507038650071559353425308911281331807370656820715647214949160258598779259361623324227527604911794104300458186243467808120834381773160289255478905082201215972269014003230246878404406500972969671450302942721294548025525155410312981090291277011697329964661289052777686522054086994584415880380021565143950158067857260929747907584010789866900452653218759846880645440445467609582524550690329926152259406205344145069513826940723028385084757756090741271473503925133531571903009495351688429811159948459279636340650138948372820387601650282636535698150731688395995414243797753494878821606062089395347201563827446239297622057214929048056227903365080205867032481802505826876500883872650983905049295657200313983863036109991617888616840034800346400233115041887894197819970988934799349663264894575345451062292178702281550505069651887838453144369225142569369882048955854408498746661777295804280609657372506501077344061116829249655535600205672356804819118509464356880833335555447657078064468837813335260903966140237023873421896045356059801320234424321895143605538533164718592237794198195775839267162160790184299633611710692874610567477085374677040730349692653551115566196111680355631263457751270434959515507204262120955477924106406537460563626747228317885294450542358258325917831380971767713933102238501999088905893723891931276710093096711810798491165480420425489946761516981336749401794909925168921878463330473150926016308372002802179668966110451704252462174463404582041852263586980680915463193470474252124987833685100597101078296056769948068650895545998853738575668248687301035327019995578542763832784521710602190992636965264712264090097056671956757519446966739056449848355819674232647995370223718718570082158129888267535717415228887360605107236489599653462467581026044351531898027719297067279927414624383391424720834342903744708519282352732323668627898033203068756148340132814427983399877192502600887051996894774404304035090999859638739012467801729455609886909409194738776017695207079884279518556045956723285372429320024121780945149021222271536793123201460138291434395960543152896342328376726467342713567643971625649861816153976895943687988699760013806882307079342774966112522090430481965098210382350189648443754165058085325424625200059405294761898420282279305223022788048907374837052875504915274106760437333239576155094856968972318206412837800701040735007444876350295027944512760051053002674726212280474612493360006403371535007073700109776084464056747108340530839489685990362077590740989154062166162331842909270220818020237073376388846453601237019114866394039502662008934656337994182828710910181267465087282086002574011354089265598669484608274551508692452918474233819757020722537779065616301329301483462801011378229601070819049618988222629620569374735240876064027695271804343775860658900987396656438330874015161482950912483898683521192908506271487960192470682008322298442124801710155237765165661857194814635922804319485722120990463937161349454180175446309358617613163443466811039034724787502305080950046398638070108628593191626779582204772823329194546970561861741346950670904433565917050574880677080405209317305156062877684562174862077850101674931201171519629378114993276438651552888737421241615720128873132262009682724403878790492163766644688900893547374902420849408629504937743338082826250174023551537978947659430939600290449389582929884971144146444403856057116610482055381797566532899641440447481743830192839954161446309628243865376663649967343779251647871413974853698808999966738794920811522532760822642217222981925814504775818242732355573206776718745027839905422436246646888672304389812409226529599873990856719367849161805535152157387275572510591449133230630413179779376742453838644218500820806944447989530117707620586643836925701406032404905391744199732630321313624130393443154054250744459333040959967369500527275743716022772392863138010799086358993489665379518522965261001701842517949794184037474682818230524700936690191514831854877895049537680703392798238326812102735700316814391778228631542612390740341747678956564530244533749383648271718470423320104357288350872288687057732280523433609442586550209070225481398148627067277339872205736704063582158948772337746336736391949115649165136140494349175960734675204240563030547961826336953152086902323738715396901815980241229642400604117430680131694963721265441045949688708360101771072206955224675245336348055078917081157049093548470680455887384460625798978381258310925634278079979974285059937793647000428047908138034718905283123004101307546949790810127662185478415298120976839719694629237425697757291235638955745670438140353819693132739466065274690759929898301966771061006097595562805240002938762478104235923371295520302288538675163876671380075180149962093593252458608875117053117403519158383751114031867157397960856287738269586703987612135711986839062885425885101202852044449419588872239303535616886306555223306200974705884350371241707666751135317739016047002072856989614412084993115986756482091696888444812997362980036181006985155099938835430388224939025159116378174864178754211621415437596463444445175352239431773834706933089980849197051707160643624122865201890556931263792679705585303574631130023034394724243163408965072970893499873841111946715687834178169913072447271376506764128574657059533205641314659537463405677795515647538312500082814968045708580525909597157589722835501937996395080025574440224681252022731021591792153919417742341209556767805344646745619045190997887822522992336324580747515441975949185606395244514759007037569185161486336177589741571352828954700805077069363091554761071247429700540128247352150771051306917440918043265089391247583415024509398962136261685178364092209616870171530504211346516972105914585023929089586675307869931575419903876442942505343422717249538040454843910735875183585485240295459739521518448405659081139191897920436992643849657394525250079819487848967695847739876639225633770118540403483393797745619885669148144386760270007592143284731324493884244535637228626995753471244158204079898515763937808854317088604021487265083467070739243393779906259866492821093914030685835083979494619988174563954387783140183670435643574023902927583254877850197559754456664347251085150899829694799205940912265127558561890112979176274800491557472290088018565973190432348953279528162973813037129461745519094742395461761773299168165659441991754659053686227780654641982384205691787764809318262900007951704194517497592385358417523444916429842806786410487470953001698757670191637735748030040476491546821997854864545714263075857180021842545114093139996833683627552115114093573048992622035877286245510020046831252860418464261734530663704664072369967603491524518509249201962013722050635856711183546750803234567211456577781285462402127125975611589148679867325237539642301413579476677728419313231491491286183904450914614392866454674821469846148222333521272522678468278758937494796908229804275115319180770449368193862493846610893783906574685209349997852463376743977244616462124783673486626914749319962156287422155485153552077667823901893195689805008330943256163323169131067338392238396181011582785075890058994011885720168954891932578241680098819673569620382437172932389637838692567881100030348332526035400399984506289452065730510967437260033407873589507088231424620711882139298593326066415713376733437357058978116009064488640160960829460054393290946737804164140884887426319589332727752643771914379112069125890270145514570937097564526811158320107399815821820118237080906995951646233643096258618497086503645865034213800953342504810863124148100575929595243140513985047758543184564493711869828194964488902081602463162110050672464750807440737167742800074122586664006976189033234720991441239730078904639204634977574654376564406318837318950321680023128411758845959844615533516385397611692063722366642537747070557819747022073773300621124784264660037275669291834392707571817468124412464889188429957480009743080614941244819780697384034651309640111709872221578081661767252997912863277092527895259380873874466756099200310744864866354416958922117270765082887665244092420655891959041816806668859756251076346545173922836544974915774184084077491815445761563848234100620340207339598220613092806876425002735542235532293078051763397699939982776979853941468887053475000456755442025695745467946756742509641461644235914884963296404246191479181744365464291561849453972665172584196682530949696756333388433368973432433230114132378881889487485586304185593296083751897933741023431865450483768015337787630986019825711760134098609629027509670602636920508824785217114462783337199077425693634231303985325593810705519328038999868359091426785083575160156271442972956584124869182729063759172656188986476187347827472753027836043168372141718549443858873415729070554706385101243141081238797141608879197744840040609915741251299485566220754112181551604412899707795904561022008737336804302285678440893537819167878506675941425222716601299467802810364984989750126968864382350898862943330075088788211995897217381145749229357561091337111402175266252163930702576108798837867359584890589392835511844030960032875647259414896190937989717239778378524635913850310666417673686389246267194893390674257307924818979631318274232579496913784984395586282788101026558353191372098320902476396800580392608500044745481420368952131574245042690377159977769639159705428026648861025953481848645101286764594137204546407143738265913087742812990793576082317101799571336082417053202342279114767775713114449094282562147251665567679722274974971510476061988167077661841464004649071082067913765431320685317686248669739132821976409876367574446841165538900262787583906628365302514745225095506351745581313210466869707421542103975106675886495139493988006601477028852783706294028076018014854015545434672342837397644198535976025609873055326116408944638045878935221465268267527342638165193476058677365090018095004585403112006287496017308334915312718035164640225292492834988549415687276253688328885298053086544607630210250160491539200847654429558687104524906862403618485804759771811947194404214463196908125921378019108550665611874895388950286438540495904043106805982726039862100689338798120532823544019918475520099283656738234019513547890176188174022095243801396712505111181622673396760627613754074619957394340398406274883748768254646148894844169643497509682868941127841577812546731824951604449935989902273749419671977347018187101605426712953471632356295710543175791041671812279145655238191806569312152316951907878085405319618331368152480222143166036391930718199984159343554000583747610455475847550904155455865508668277029995418164118111201242581042581851293203850958298694719291348242141990960313644641091064641115020538953613923116321465537832339775413717689936384199682696522430556486839352865470831854948218229788400179970705893590732131357042572671372960044009326229130761514918177607885303882043372644151785104717458625675655052364409392846039529265078887112779837791122395540694993463521777144229206950293539859783579964597058162904402898989061251352102589223375902365815536482499924762823516204215725762781890701843920627459426112473577791763347521871436378602427526858160770756093270964833156075993814573799942129675886388059247422207488096525409647018788031240790010420909954929387116908254598827690186194846692251760258386040339521201786037892804578501184098938378754577259221137257965285180060701178006266167994896305966414485825650224196536765225996348815142462124103844549317556553633058832923992336479831866707160330569079311200012573063975095622242061071325998784572548227785608818934501995870389183276687769740675614839038674711636886608312848371989074971102540066872071281708034715266187197627029973042958759374107628995325861003801388931388307151620884725577762059460759805534206557698378799496593793879671211096562422301840444824641501643402583561655066880506682621108567427766123877118063786154186538263530931891902948734884660843866983654831779503496976722858354379977213780231804286248864206840777878952146688752327530811347443551962693794825673165563695766153324136440960314947862134867704427795046027199101963038166299250842536800251620841467678596285532206572810755051902960758307252751148994092221303661993663731005692790540398764779466348948579677977573517916906303341487793419674623606024462672947994106480349890184367991654917290799279659795644290315830732505965891899383301656807932366867774114309831957663096256897498640477251186677384280241627421620425317401278736790961916542213946186974970375392639493635520813636064002246814081400156909436095179784604030783164678388015249908848642568962452636089464298348003378266677189321789574653821765064407841587363305459370296184674820760442969197296739460441755560344891972862683297621551980070649013769308570452017394583853336056476625831640277774535071712997639225688061642073854744984271272323200712781192656698803731962266302452106766346498775092826768840077339860446823093106160470515771061253169558226552406440416979032005777438353830902459047922577413323967220039776291561558192336171787415650250424508721986589055370517027662257862988853897286548147237649648368060578250585774521938366664015003783593705425666587114440995011123435878138955424567876000847559604107526247706681112828640195669250743015870047131343169184131549602075074257799828136370481265188403471297112388101118792606437624273527484308155336943857352401936776776139870475750262189779423623512695995265895036582939056854428642839027701600039279941545119464044512999041773564217945135802818149153982366724021318007149679378758402202663308114004140062866899200721179020334081755060851763429503352016966122397951386022706436674798044137429569964825150313313758007377729416099911289565391827676394664323523705657799102313099190643515098941274483626651987659866955191918838504068473987573736287844798603617922486997481802969194139371769378251733696030793947490544649664677997663262673680453458401603482470896386864467197368455163549193282676384898510322556174235319962217694797867814042393552321144904200140960351562581695675849350320596261760566976954434711006139894414864354951245498267966051608850624592548839888462658395484975734504762551034857187818028311451363733658832723417764395267793806616827371173572757100586627779212155485558277177276762418670813391597416353581651198412312587316862392334943800445337781347707332879406483270334968651867472246486538473408459963558172747764704942504467045976089081136297446600044781545342951442827561845742351943132921408812022944657787174962317684119898248553891744553053302347321119036616082328004461876879561490756736821550062073724815120968246385797675227262856849394426977405798581149891718624134801030856868743470845638849193208988356668298033296187673455383320809648642768052247545063317490471863588998047841763958878922193692648554502234532280345910860361299381984719725935445276327475130159928073257103528587760191550969976330152617484167801239746132100109555295981024859125231134665505704237166573634949605265073890733706952488505068058314762399918335811171283544379947065778887523741752052254774761445862752228372338163764795802209352003838258004976845094688332208710726855565916849775471178403408584162932600129012169345643197851653318615137319052912326323769488309560907078220159766623164446647641901633866695751159051924031979639379241305522083725540761739567562620612091976301625685982131019367662077443973789693808526502680501283533626128576010129546004733915781317917974615661451152578597384346587289289876915704041247706182495768251453426597832013863519690050494451337181878405555539604393758170458609182453117742991535365067824944548561495231854007352720103387253799940174664696513472467222016859311598531595757308576313038189466987139952467091299323504504155008355455875308882882553455899437331434211563259084708037054457786423823415770867264515554160736810681052468133143547307515102264159546814957753743079801455082908831857702427082961453369592817792978250963787524004992401912772697524178035886648286886483084265704430305726361953022175751424250908918691730716700191304099788848727487705545714045838796144585871313419727342244847818317400970479107572000225826436762732778202293517802576902815478238395426943319399891959128745780126617761090336944117595602696435428901474293473155811332663866177300243349958096337761192034903671226606093120681807364561279501309243264982545402786751434813514456590282758305130178955189202813077423488453983960018544538838147355845883735771474239252210645852520907774005095175034518783599101715233123774377001155581135424157951007575219077802853649771935563772170830352747211742974386694612947977049814125398331914897364363503232974931508126416226814561981174890913040393721008184758143765180140035956358604816496440187821137825420954841007898720101323238981515510058243330387968121586583779088218317663383306993257798485330467083530184501118330415550357053874211826852038913809627383356177456078693900411545780377772869585832822111044544068261048959800665258902714890978838681178101292843976838164277823324338895579616356135147500610002828058328369861141555582563071629987171994291402084708815167085075731145279810853932909233990514316363016122037928960646709265089434800619203534545168079831057628034192695997537358535321607918439567684982723687792300800803844553601626812706026099497155099951307101293640411141756392596249096579875715976939702548134042306834553466351343084160484711153034004995331272336716592970921253424133481446278708525150982434752764371170417330230062045767824766108694195086259789820665699606520374204554023225167186131552180379939946295597423524968002049773223478734382212188392831175674681486330579330385976988385433987932709386346432484632141706557047541567519065862255181555515405969162065868454229773396266455901903315272811573600122845585298240574752078457416623287941234920858196788563078606217107095110199075231799647956884483930158276806171717570080259067195514227379095573165287071793540019982010730840965903470385489758511840227468841164223094595225535700900474527053538812905952723640631882284019734837217640221878468622342870969241713794224713494129538504465219224659254432255670769827896998728280337002261858080949152274446830082163213732810665063868219401241912596059903500442850266940497265422233886897726802738198105816750797508113651237332239258997343983802973242927337488264570654939877948513140161483717172050001664152511940864370892659718440051163572331415613176501233771669416930299139143946032637428054679304480221192578786464892126216222449578704325188144221677248516199109140861227969039223841798413300527828205991617143228575278026644061148234755123795117022408599733523898143409011822973931170443419778111940094163147284637940016009835222186490840150766938016620266536896205397266135273974821749500202635262610824504807199980118295820493026320181676513395545933099902992379151874451252560066290512810780068187899711671577632606903635470824017354004548256491788370772459088087098707557181295910437184735990184613156080211882055937124074708266595136805114741187816973216634460855708140412924429461575626424404951757158568872341861955316038886077285654913061791321946631714481136091744645354274653430794358636513261774155901061939738042468813868212637148204003373066653646566021884841667814423223490273485186800383831733390770450534098851098669253227289798387643604761172372281569219492213648027338524699922640384378655998027525762573287350049090841499876625846584486307668502442214686408962953631844052303328489470448115679794779189040784494461777008378225301128243060664474035944125312558099626546900250894082202284379297129758136135956733547039851800624166993893555256016429149859216269181568145376001272985530873881878590758782183346691204620437814054540990763447794463807338093359383856218543257831197285248146494649852875951917290736296443787803703346129492227323623146116110328958423256409701339876865041647346058219435503184490317216302297974169968910781608523603183821890685263408470248840985755727819920718819930300297395681736617279606760138519335440548448627735653084937916634976404190193379841153237698028749831248418102279934384607312631964902584089364047047314836490284793274580340772676940030083286380960471585008744975035824113905060089955917767374992459938098265012495629205885400262553753208031884607667019061520840409489224290685139594028273009404480987042384435412682340458821276312689736510033640968204939191018263206820083395720592974363703039802019477448656580096256547747854999125125833628617513237382784641476950154423152924343055680001688148356153871282907308425907763364950467120974746632584642575734732485865217909246154354072448582023006279629105611322819316193928971972875894087314824877702146618045753431896089640299719928847421225226832545344165705098552157180368730764710080135381371445445135635803965319815489598836643313136467926605266765321308316416721885836408899110716937447448388125363267509420707032263430202344277493809501605231111537761463019515741576578312579975839678987870739632173711756658275118225828679453474454444251293045717307505129779267727076839582212448336804594864107348663080786160971986021740191528372773882363690705531157678238608860715202007454504768122245403763663744942450856465240313537522405580119544401801366391149489574060398147766154018693908801847531364261472605447991567217631090599284291294308403080156191101860586858857367380502587343435881690652322714185315675857913354355666961684129722887260564832391085145560148230231065085362413565019615985223170080769207188211543086264079176375350171656465974868168743740653435660481012859036430535702339994784068143381354207718681415633060559600286172058922389778087287577465152583311788265413279990146531884920300245130726461238789901819828077165405783050217824287161060065900768746657007033852280401875325071311070602867947014838071865260919742850268735067520061910832400766576954671588308540867303141934990773008202887718320828331897630930300314010920313264843614603792672193082119692975814805997641901193891105326150622995469408148131378134211958504439569173505355055019602339033648556549340248960636414302846784625940750493986952832181387418255779615129209718832437860165642037006384016491238728477876251826169591281777912085875385620133872120490978410902176009089093608455131328949227953233241467307901912547107034770013792532332109849503876090688763681376392304216077080805006089678497494348877224120384295881546589279575877134344249156468301431068056471239917769220636851468609376001761900292400010724934273443386090217567918899266801792588428774036979666361753660311712034224723567690965680999218092448155291001587229670014597705243703068486961384372016139466180734747596683463417730228150136308674418720480341812164921310747581234553998493250839989898832563058504725996578231088628951402357920461941234885440613676177511005891945300894746686173287433856978607319357913807250357593594477934548051733366773930843685032426391584922293219482796195041790176384282449042280947171750742138166959525324726779823211498231601190348525961299913660993079709346817841573953500017124951901597628985473478956486013913572280317528129390699046852390510572923199055472207644243852244572048242637494534565377766822405013265964067997408192091469863248238312216066047248133978821387959652100523244013980573124829249085547391703107568943995265548426205319882179772407469355893192271425736562202160060558360214923670143236045267457295347617394729949996761600495575059394008167078047781611431113827574280048420503244464198184141679318339310607062017966957983271856917309378211748156767484936088368273721429574795510415208185787234528049556753467128627763322482222909865086698650434320287885983766534976872784202560453078380055300267321051862313340489546757526421754547791109442716914215283405043337674212128534629911597438241319138906242813046812204001739535044818647846400290135893367728971954426001753743306648587972978133671396529604830803271467368557337296483236089317481182217918027393013053464121789593490955803428451089567997211509702507288477921407696796882180427685428256214019154536357711322054461300076163848198814568185223263387494211756605434715500791554161506986920706951358181439335556294046199505780585217667143294462314531783735760154077050763999922602069544865688903050673837435499818137407090112161312361576616752791384528558875456004349985655172418191194640499769876148970580097715531701205424384258540916660016389331951883984185630302445347867542676125922956715626114235363581175455617723588986068348084936966349378935423010852140244495461721904869300353456408735412894502423739700431800660946075652371667718983155488257760100467742138174465849036298576578614450358083272013222372093871256530076116013513289102330324730100989163561977830480755788803236080497875104038559843214981944037540963793004887840073174593357549844408078203125439488191669265488976159096918675341119835005129994493184792796736664722966895318973967038390925449807275978120716336473608200903317086099328656954209110940351647037610781133594421516616060708480166399916621055626186616051287028551502140948030627507897704103082243037041162841189769734141698391386555689331759956490620780646752328254230985275731551952477772781196453625265832644251602830910042093224494945012640377963197170327051880345278641328966888781057502880745558137859081182822338120666062678299837845231418063822382343655400106036813559979005600200363572119767403237559607406645171056338268603752561678183592032267289774038774924605005785836383816283535071041740619647825436849381011246095672125354883327021951909160164919128793412661321031428730365249403426544837619550314184473639986095201985411439194317267391331214096266814664781139630104737799653236276898912715645658783712051909232827023373754448493778297175309108800844935498105991175747143724486557443269961197577751947202320780091036355412199439224705388153532979334971814780808716186164157602520610586013265718299872195168293738784636486064808842235148832759807809824411719395753782380282528632473707399493605451214427193647375322654657139361588976377174044953600872520878405927716793877806932766021850987046425482997048182368272445118752789418458856554911130660027955063988611423235318813306282160394346500040041367380301063415686776223181205221983948179970700574479684899401039229285103923485876727338520054012558592386179267600021296481152302915572537006047135450295819367547016681537222017671099246044827560464361474079242999873265314239030582343465128073036445894301098347670221359205244409881382046432906915864151249190445093163305439759563782944389790741194113164621020845305281896245158994997062906768850327478631976696764980672174110138549150201353802321022945564035948408282715277395550467271552014173518380993983938288196538185979985083581730896527321482152683705077144655192547815856917358305181502988611743244605537936465969811469418350980552752692411390400287622178397609860095778005219841603303649824829239543560115504801977124629992091547143806197212362806062712661724181013132376945694047219546901179219942375777154470944898228289208199248721682486947504569632880547784823583852213260980996891734114786198222943423990306742008946186632008147709098879901309184726176948660680097359941801630630592048076253041636082692012532183920555638003922508576598539140002464584060705221589329845248554374290994039196367161940151136610605183626819974113197861077689076049187464975562906452738045801436979561376509848237586878604839175967390060976760736867752892998485078012117124259775300474056342503352470101814694193413129200639481381452212087779589084389899026438266322673181901936863763739796719077566988841375249898431124344099084700290242565475509345359443968788298881782841046468711200982612529411618972795013521275184900368493982608234907389959034185106197160524363223073930490195642672951092473936886597755618863350677665134426826143482487658952094879134207125867236536218522219449223515737199951995015731821731354131908543267709889903112101036212319076782484129339728976639218039490316650970564605440735668981037362937374723315728092147675058958346732780996263151616358789099181103269714437504761295554908880512768010124128656889621320097528140669214245181959845326561744819098537568617260737814170762348774931964517655776233276054922129415577129777149663096937303857364289514805286832708751039692329327433231560081262347945301429685890901810200248477641990538257153006389456316789017084634682127296365497930139129498801409013752944884194220165334583879978494923559187942544195344567488891665375318897258202843580531963555122039612385227913432410126636962448154041488221224195744201181131174984569301411239845566892445828519558412910143321238805488760137637131137107424897760392987983965237565392598628310058458134895818775795924743796882863516003996774440039804332143223344818201306533399927912803731437431926012099189096409273190213430439037915164078255191580940357696426150605074317149070581916817312981035672372087752267428058134110978022804084748291020326949643301810478568761840475240497301301025426556021837137025396727955036068923491929478982795479488962667298791208957259613644399897335818088035250812105792167144954492846460348766499565873935638806634608304305458713390553014396494235553925651529716122877238899586716278735940139028180363032070152908349905494044333304181570235803415998599559474253900306232422401211122383978208539222086803253262747840932116559922085965845268039351390939051103510694236058243208814711499141385074094435796364261452199499969764858204567021640970184761174264209850111093912746907378272060698460612643801321679052489573732269063859334380071146243125130226499429907114546045483085046067606352299730252852197186041290093671932433600447520468114292294198644190809891670743267179751710437595385580457722497538176483213886010090785222888654399153604688164614723143965251030796966013083875522957921332764401735590458089994868271886558477941068239935465269643283796767675144184166038508733353946445307946650084482121514890104792593384012542588839810837516908784968915695111011142402268899459228830625135243065229679101516441729954570294042945301522538851658154020453607633646822555816528658404698867028162056918268693741561506748405647158154179811631478778031376036874880249234650213719529832592627175604704407787415311209942903173850304924519180726904503116882764606099747624567504965380361421538132587505445113840104913285425808125709112058802401689191994019753914953970772804633615354473021497550886011104660101413643557825448708170477224702933804501765099005768518760703285789805817151468472857261294302385212652376213317425399954478439535241559705914919002230823469433623969559439292959220756017634458292321589329100845597709243165075075452745777382635088742349156122963232449789376277969938624372366212374824739346212087938426085280142334258585491424930558646019274380958935575046118800210615206408951838983079207668066470641434958426826086253365690748335515401163425347815499486907037349805411023846743935295035468542101228499304331054977424502791215001552935337445592284457814278362811188807945303440330917661035780616963823283288064858651174234159164033118023246977806566146767030218012205721999261732434426070727677374022091397226152322803660965738459630476354597651721963433452943400018915686686837450355558887190649066101774244866317887235002894636205266097085301543073753034129418804879223714610477807185520641729938791380342267457416963797014590185412247077178320091364157452941619438191958868346046817394877468449476988954026622911505830065707281602376253858832191194577036773612664669527546321818471551123594266981992609597791268804540533652916815461750651548988367272324874065435464621431679196654755694657133714565426423148372543820487066603768989590493513716729188442456677645564378678786203016721948983191686362885128021820230867014208910427582611767101530038168741160285094524650806948847895815633783003403837338131707892054144773612912032143822814003525580267659400622567034466036594330636904230254076500191823946862152152585862090611702738538438848055180132913973036376089581910045392180274196398702742948589104226622811198167413736475290472399191352421233949572251465483140657390489352517868692037069899568033456403383153302938754149419767702762640672678097043996891252390601738884700508244428442058285362468160987472835336745664124508824372270879885595891291029397532197610016441698890625072665388344138296878173595425746694183104213394177825377946021994457013062241228955995198033074465056545990164505926264053611875635174319245007302172867543725656789640864139023267977688227419925136134766512320765352580914383099243097318473719018084341530409717951564042318204166588552247182782606901715631749065255983611463766959465245955854501578889666830263340644542309517221548450071400878258817796831429286416433752696802479042586757271024954928331541828520905884773722421403996676998166683539246472182694968221998595066327767825796233856240522849221050232644077558085842571182022966469264090851920474966746627995194991710009481957306530553569543285287824413218744396158679643794429307404282165889945100415070817690208283153596200290575483228687057445378188341374155169792953458315236138782437910641106028893315666059273637741116028174098631635727238003368477874185534008415907391625614277565970829566251083023260017819631160729974023808541759521175500924412032023019003358698505064837779131510565898814036541849612386094670904598115370316007525635492304693009425677262827677234010410870633112368589226633827510294516490398162460509824857945649213057020626623897809428110135907470478295457022205865287543181735263031700782028697802841033876683076702198683488146936646564281991279977801744765323761962282770748547345304756996395564015838385066249311944517990472101257082852655143927427233868406935639717209671255606633122374687113947216142398285480305739037247885083966447116422328559346846740808624236740676842256297946452605340604603079063403874201069637684420265428625754158731069716113916850478191900795649367400008857437451071772730105910518826862819929468739907351385864854163646357271968075094515692230167783596867583134254664479358761236684743945868743792887284571548061485202554105356692865331228571860830406064590334733293581210508546230620682429153901890287242591234610985826510717163196040372086216970331179212367678579674526613423383521714830897574774501109940390716572919129624973878377215527992789009680435377321806659315989996829553909210049321683668587031206800813323751613893129025825173099759654852123783750745893301044193439067504747007600741067064875028839812041348456457832434629653776133342029287997706411208364886664112897972078217785779087877559538960018651317725198577163245029473538287922268908988206843386443361064059655631908144039730660993968533380946033248074399492562205484059760626007540549669414603175004237520037296747168458173766299149979001041870578500344492335375260680602905160269174245773337174964801606290814335119297013093238023848522008313156261304189246168484547167985588298853116920689256065094550148627409477875302232647081955806954091688016379521007242785808023471002969886568551923434656537420376442003600874444277565851198609603067263626740925007005180178572867973463032857542834693640118938619334005025137372509099983501132813556804917604032534963386664757057927341418370004965763355300744021805722484470430701765196397979767420033975972864225244757190267231506039276181690297793011706652935428008308003568492804407224165768992611806210994081796154751314619107701744885896007473393173004954466531989164595969605914334934090927781229792974331612077139323090863065212933587830964068856805537397744060845517859155132425241991099123240298439766355089370197653891726674681314456771959877993267391790956622559798010660735322391584350116721875193848287002428970730353229796184332037384964237727862039032118515419437192664968675686360414556409871275506963284549478569164484238783399649541640496117359758369384357785195307736710203541889858533409233198504219626657748528536233577639682343617150649098041959838731958319962537879265860669458615744659261297760497422505114504443595402356105254378373672147830530616096457526358191101284212175656218663319708989597933754919600753073742950328930491704342210232232412467536103507620444673298123921495460283148981274650511621238651977441706324716252760119058116566489401875142234681027184067008575163854239335683804465846421784430646598138653189645822085233016256054436030909967770518503477152805444734240564232334577650178967100719149790718716542663422995112110159876334309980724091969605658204150716972645464439978725699644368014298075438521747489633188003977710486945847112702740354242786056626771419434023958552190713594953865854843213603361150784575032750606400316961929970841688934575076280614258382272146298575183564030616314156498848705101029670513075447395866023641980245677405267998960341053907241316691792893124640568102753756836379559309134826621582614073881898789269785465429924350117332856584810584952368220129784604847116706464633926511109007469392249107324048935117986617943552156369594587687503505731152098182171824279567413335442464994186308551125572718729475752537639369360530482011421348541040788599705292645192554219424639462283137211367988682822104172297539666904620039379431967249064180289783707981813728619024140872622188910402978148033107579266895493568134046362700867908443265860594001882057999811285936230150773818317732407495447853023494620218918386505154432425954983817603319510951852436333323344891480019103942855897789692154911131711539725100942093636282653382930337596083656353617052125648312467209593661101846024807662296637499963754204986627155642646066529647474710988653871206352994517596506071114875349306338814841449727659222733201576138318023550625434976704528890493087861119684114276596293848042857282265308690751528735195490707225117544324615494176065350888465521869896895456718157743902726037313025383550203543821738808092352810520902420238559795602192664559917375466137157768801140541301387995084789660488659976339120497447872827308954444585687518228894014634056624645042664287065934807917556144881965443328314458010147063821394195183643991829385054056398125212107346836296008382277476865026208048777541903458988966831471977597364157466889847923769692930903613764394912791209074939562682095873888185411065711767617362095714061370288318679451960431007763694009981763052965614153547938286091068619268503663019216875181034271610535274863011688057722822217246918757444783340309669913040314895646843996379918873551932645897020697827909415484926495273333896232693422166378949095825071453565017721121206214755020999882297825223813686434620188415253969996932940700486473530763596562399129715565897865657068045235464996583654622008956768192662147469610052571742425278661244189128613456451598386722193733831932685866348383119779002910891565005008422597897938333629239346532825308336606682769094966335053356939272774327345863431585183648831670008047604627330170479813861730094413919550787834724922595778014457620037305201164948765218633138262250739827524133242690352589973982114301720315526588998544657154938197162525168081302614775485789540937100687744387913987272910967818094400829421061207936886180431676939864916035227237584051542919520299562223546405109576108881521576099713814894338630896203968247324906729734662873864035161718436758153312764631498615061836425661176651580818825697656968173821798272263230962494145232208819921303659300766342540104378239248615779651015882689577871402453372122905005692027255058018281218393736482431440311394697448239879391328931608007012098850358081425510527200144133913145242201290053423266701339996923371380664547276904683660207654197820855195372084496543916065742142135653493073211539640357679702081587649442158559185576835737188908196139995619214979476783758747555818488178904834934795123263225298414789235460330973224239662535263766488667028189078213279994176249633430255520359883930128979974378972892821649741323789858349569970704792020634626086206980083922144833113813405827730112308433769989956763466732238185200501523553655480285232436824068059728082465113032365508013816021637211449450757025147615112470374294376601112315885886905891162430269097067174619495920438095609644950874661352091308833782674630766329876396921059363673584668738214224321287480371978817858777700363291186224985736318768273034376060266617612572731678093199900802654919741462037809540336143665943268163366376445151888745557049630993968731583855802491665649679055043248255037760301712019973138949152665053823775050258673551107645266172970428087935476320652379735911995353254703263119549036641717479037162877217644528535310839694010022529653797069909713250224076884677103586571829480557051797058693046811696951860812988485809213894684812765683959246838314872205796350832910431563440506967601096564250083611219341478463571255331281495318695763997899086565245714103284450107084307608270006293641325602116650001105350294353335404551856600051584171027903640829475366837764148393525674643635528454565999853885960949495457906752956974915950539450111463302384802198246102194008210448574284808996537409819048159619565036525875899714289312133639818885399949750910092814005446421075033692291903555324461340890392805598081612882370936781341429305701855082317607478388432916008813902507624772066413798319003705491714733431726283301833980698958231145870419708242888884458981724292044227592583056848886266277107063569513900397526533058929047775271170014844158450597619790854594615989786981024553499066958188238843934749953656518027866523081530930819407592025878206847763443684092711916914206206402908348874940174604417589982500929876645012146320733773494159165339506647775185079471913909498985588510968760832430883276498774833699567147358041490571077264952448498787893110905262511287790507635971742410265373936658314023749860178672999175373907209196494498691077700626694616031465862511463557771979194077024990400031869080076191621438223487771117999820908701920625906853925746437867810729825178073895185715910106700517592241691317033914535235039817264982305409467754369473654548732621142618738771179795815809053561751644400782121099876546006602344266877287027737763764132113234015997900941623814322642370190458629754344484770004905354570145690901051366233948927192650420714387950155422496070921127690742573470097538385836916897985841801013662697805029102443282332610056312833762731309886521226837570870827094367717165182556938561325028886365449977648812397374542200848650499363708063044069137351933365231371856232110807709522348647503913917686931879834788238478857174203948323260119926814884188341067123265727620387851145252888993103276453036385929463423522220812331138915334175731581006582247835076724762207230811187410622268371978978863476777824195430780017779817072439450000955926451219041307296362041016994797519161128122100523122020952200434619465307184350917514677177819251905430608147529051952998398493007080511101728943120656664423246588517630147679890033976861834566621830572937911080751813921190757542274873081668888095326194127838710281606382655674960794944370253178146933894635061470115480039912481992901789993572785294750275838413916505624995111129888312493854691279782155731170530956194562352761487360161716634712279360158848203537733092985554436033694877680414545174130704501420425836457005292899440752993227962752939337980294216688635694667499992832673376938737283987843395070562418938229710467474958391220332192654363955595268489379279530229282408533350311396703593521192166093173950308512634525393004416346675196813902680697768707306076509452535943554874492533442462368133287405555131334975328138776026794217490128247454230302466131475570499503253943630779311770685566891849181563368313125077548363057304692726614133189886101164016446073571270931637891755523971960505885548073612211736397399228544350740544352252003810362078256328732117080752936028712633198801374698230888852229037658497804221889998081350502026303750271667992458590492876638078863658221370367900222192629075654685124304331209818160611347133383747372792958677544183265876344499533664160497756454828363028807604042143635031280710909658212223262073620634421925865907124839372795125140465893819524778067264687288241441585971171638417823870608150279844050960596725818803669133884619913808017190877283741510074016135378238343128188421726572274325332514461066217670449917080516357555613246387195967206480355173503930488745699269286842771453360160452289972397438792005654361017062790744747204709089342963305629519237505675627413164695054234419337883323765855164947935087020093670623672172591368788214681649344236541653980547267886666973965919792991205527739732894610912638427420628881430915486351880820465379769580335445380836868898294807462982391310051832440573250260545450466102507604686100150498703935690440711363194509270719325875464474793731057211548218905178314133128083334698119798779515999859165045755712419903995093991586080751378159300234926358596498683020963364408939823246645611684282573333543836683711480197245409948544337433632312810036850213613973678319784970014921386686946830284947241141302904407521062097465557706268081713342133428680600630254198501130831007149075287948451814669353453822377150960586724309964328195520893197149201465262352487620962036968559504857445193493973893517453378602310933195337558703262554982436261739292132574022680418418267736460549278557870827833164294159671215642649288331982030996733084078609598129695991196923728849411779581630366139704248844959013539032065762647590199684946108002703073656127361259878908644631772163782458256154654560225638868083387553000448524698759728042685731964089445563576628783073254506952535652126864395957639381149030880671384019157123221787039040403622097005373421197115199414629606811634106090879701918385324448607794490170942658760389818279604648630150248493762652398098940789642955721727800604262026277968622190296141680361992276382082934847274280883988205582514192376946051677513070810084972215440680052431937769825416798586853636853293420892461910170886580130541849836797754395651919601424034327740855187136404889874205503424801535895681840088240672068811611394673325797245077237500787442766670002845862454966046580059593785302866848422471234843880606140343673055671478808092545113532860618282544994520079263565868451835569098614397406849689389998444168785705775850798977536736908468714130602077806650420814783697349072588803987578843653452552803806993164106267552130601825630992016502866331802792597396372618305213151059194072723520020869294108411698817915134321836179737049931272782791274331266307033790772188020851528197582115652524130552346401320253571026599261740062159661755976651848015174168323099035664948124991865487526451920400250819387933090997802454340985537172279420299615091137913156568350071583921040204352553088523375476153625778832825058287626890172584977224221445677259825548731138952319670475237520071298494875305440456573626617563253180218182577856270204966715623648980265829076246011961617459649956198783092703387537663916053759878211162995001462264730244574293372846617618017548160945433351414172823800494852447123796446751798149151261668916914609877536785676417140689050471796449975573844837952249005518106292482655096706158201171163616276426979144669452996477526190818980424357015331303443789173747378224662666977977101169583102449516865210134406020471733644530923722143876064289342707334606249987275255946684305529653458383488793825458161686104808364607179269452134446310202454527176159055036651881365911241532434446377562758221247392443526891158763208974854377854404343692469853812939601957359851540895667018043551609724839765533853464205733747508228489877788991300292111526419401919525355705531178049185084596110541856168907310541012356353497546689858917185102676415770498359230105431651306447733803679896971362183361806527219564477722727285972150442349757620311842360111252008072265422937910726021060005650591354811647295156107438554399557556434724333950719043562783034558840752086124059024401861010914827635728548678391497376465160535746314620266022586258858938043895769729138147027855590818410713277741663660864655211123275704322415235634598162353898245548831301478678249209882837828091623979101337491868974909924328927201751894773553593933345257469679441448106147049068945673756865074726929258742042288972935146552147382689353268059452682166683629368016611255244285074185475998636420928001128472882484118642287900702367703806426376541961426052331235082427623970398957642351558025650959853752771639783288735496811443149205246105258878776699436263155582725859500737967932347955529473785385127384863260263197850196204800440181718797521271666146708109630387120204052508872572760757246065572461781461295868732463137701501151587038496730218385227791093000323307022073794460842356812204599453666959892991597157860301643093851262071035463165599904542224881431087153842165382481308954661607155997758973664529414839435623893663179976348061314079733656723445439167385453730670673468733881776578558633569674541994197468236326457889548199176688554210599468646584540719016133218819530395874643861177996954809865117765790278719721952555448762121254337621940165970043136680463207815894416695934666830639685687815161660870296827194178756944420275003000588728376561142319673296563934131455332159308605642921529586282877852919666608003260626913499560892044865484853960713792032812639880741732181330077550487689513366338049744326205468046134270184445118074765682704588878316464000853842301231829805443530482933812471237004311760596777725262002305919604629243832505290900044400255562198870624831496142762896229015142944836255342593216030547358173886173113535898984422510841842164121817212015018810903659306078470733509658680075230045952336020408977254145398589237800325362327270038632688575918067415609751624943690883127548825248367690365518326483607027438723877946070444481922047260812477093207483041175653938911209253662191969660992921805947729267159249984135627008703090657965087370751518542382024511873618603004099433517919092717526191458441246732099633607186072741274844112426658053563845845229324693972632013839744350843553679058774732557054536640361258418884608757113848910330856142843477505882089959351417971576442819688461264323026084066956173126050260350163896534358386925385536533016971304356419829267665613206033367788847649124026441755474072962321670269693171936471035061143656890235996490299414643764114238591314310537786458433894693800875053963398061109634643847793642425037563875308414788677531462441763229644616901040324401463226684246689523944253845188778849064427567775414911998081880133407603504456800707164345787049972336605485237693632013908403575240841157522619932187854154561652368065593994504298507804330470403708981137430869041655305565839774768143916890604497028520585410014398443375673427431068402726677877677199836942823471081504277901504776125391697022166813717565495979950134615790759409721993588151472527314235611407298552148769323258949092556731578782615816461382003318892740628695699632616423429198224946751680686874497502191248158524672710835313782875021391536160148476681089831100862289412054916588918140208939039817625759999315933834754757937722050993696818389801363681364935103737663504146355964318166415194296627400558802834445596679351736123137036857156936108723557070719861163770895027054340954844556500229476506273804740693571572334757698942266656021533157046932484344455066049934737229258417866634998422425240056616239964299774198541978296801244283845057060116474994015247225163349966340292159615063397294106110948518649194828968726914848679207243140787289458050033366304155297712815887534869049805185938885973100035783370952147043019096155567863272119655377752163854016609188348066809584940158635200532148333604224009870997385375764612462633634154696666356692580420628864575097350995163398756726577772469365277562881143719738422669545412921074137978767575418365820344607803668189272888846374338331678052683327285644324909922501197625183029350718411153365640018606095168579431113245475237912178894758726094530698018833686492967362944694293935735323924366042693380797655280656954987024478400712362567139686819723358919445363239416082036708618583954963531978962221003016965743124438343180471865798283812203963824719028757065649199496672873848899065670789012382035457537281205194207101406902694299499714002565374984508840675713195739742238283644289836426152810990095516923817433879119343494058321799281186581048021363260349275921776565910466800522740295948158091554406945505797636703686273129666566483541718233224375198943128148649850745463311283889646141804109019207637498372331037145465777057745639217284308685264366086805538951878832218572953791516005161925596216487361912932304875260382505843367315561425985502965018942041865516555731710131572435482683616627329965744750145186024216946412808017485742683154256293085600856532266404771286636737972797092901403754726995803530061874870313530425644472854748405310229478413023372327927157433753177412121162842418135959500288875761711603419480988555801209472705970217559632162887015707829502958185829561512541579834736564339097083037968015434230895658518967738595837396711453248344065497042303049622101199262681819245141832882155527578869891139754864434049218101578846241153530059137581496073777260206636864887612957284833903099747883278443722754011589762675040520808163230863194791606536588358279820350205780635140220126730245982352156995088556286555446675952699165074408380514203519769558985279056006442473946123900799938239099108032487018020167353259889579271649824991231224842668963760645177228563707455787290296286853191622041687188086383951968415252975863404019706299665770810008143241651903146077616523173104606721483067885442528368028298425625648175356354777870351619107862520111439904214547471237473257656159409162893906368274072878704172839608900224200054385275190606165424105811399969519935813528000148836886050704192345547254527648560577009650108016589510575520044676167934717103748629003489740749975331461494497791470837744637525633973781085545564219695218869716601166610524407650261848102815668342069760480621518928275930376033669538833951710227974397283593767738123446795846294858750809971851537923333545585731034709429657281142451666507975358695782618312379510984473690762633584723871967827251670196699522860366757285288542919874872493147271468889305812439960935051133822025602116174295202317105414009688609153216070167131974738721116927531663519843400039507312271424456572515188350805494766976137831889541120397614787433929896726722360735472747281624257154387196699427143827981165655002473090713768786117512442219255694190057500076944294832681660023342657721567525823440756493504396880861791068425847569018949896649185768133768773698790121536452258355033761591534881272617265470801909140072463246932962956908479491765619989486701253924804747289929089642064802175888485113286910957375268725344124611081983546948617858414827942119200454552154949530779338163450470311308969136202741190999593867383786071023914240595996371235805107689720164507981171027297646970936312087673128946955471739431138162670290853671683125044185043893920293766336563555951762181595933718930446893268637130175910105939116443305379232638650103945560275202697498226861157113278377697479042227314641000395551344258293521140869884897030033130329740875750893067438305915097203746692804476188343941164115715410985662272336993058336026916292765587000104269446611428997399921097401474388922052221252099892977906846190985949430815934944113370585130666272055049779089854950058054300004673532777672968039282179253991619531160805059839387959153684081088253516466310279835865708751872358467934842296878485297214787484877760662374574651402358090019287925432237022543377726763033827802561897664790521977828373116355457291311654680702261330499456901214670260062732408883900544904637832193438246969164116016945364134459148148214198409572033680306930342148799325197822700786272321685412813228518335159854069824261439597746598736587372533805994927345091063027446908495819649319517865695641136215816097049058241682653000674159334409981062676637986530305960954483149775238209835140188796853416717718852420752922756214592395755796835485947213129841979468402717848439184473509440283668617353613128542970678868140278665659572701466224093123194552638421252990506653564986762932644051409552968892041088665551929497186279382964922536360327720993332294643961858554940617281966093711652924890973447547906631568391690286494005921120247184378649901608263169461939302583451571018028615108039434296055963793867757874120146257940929771198139417522753511473131670446924864821468446804719967864578195231600287337713269850106297256857851668789502842950252027268657207297889632104700113619541527300842855034680232757446202815785821735315875392042627861787111128441923548151889130144522580945165582243419144394873952931377419846382083228698880055237443176566024056785570505633756820714646597652825999945386400909731320846725056745621352698615896994370593818801091297555079403102180548785363280153905038690073907128175205012021018209325137242090497516375657290491183383048079413883528282203248520527399198627895271053998573402069457262959718467628615899830137954964876445079174199078172874083227390809860489630435469683161922933792018327535384631117087781993872962362709748379892319625070155272073927637071886096010436282048207581606374299213373629027304843644824907767780223901874146539964091533025509801751254018235235224485482791001066894041395806116908844194648306979011111576744400889093557230649811638400749184699901191598809308957268497184235266689770937509160548941298859443164762178883743278295465111910147451221914391949980027721966563310025111837848145279882342110293850213359930316150892333029787576311794566191593494784616133694188940506090676857549403966023194099408698418415050033249093044135668610077481912894279107497509973490239077936350497548205576411253846927113838343827000681788433617721639112277711220797795404117089885584707472578466670030256286581430635063906876954816830742956632348187044592592325745697801579995660890507756327674678654621541114184903714702179315374260562071223099243266291510625446912922355421770666646399379440850517016881643727388872295609150775846487195438430006481150618512478007747492233195860289020333292513816623565750666782448363872771187400004531499454093958773343116522068519645084166878339189892569932225309018437213563498386003548603456625186012328482577966228929779671305025003899401661311835650540986428074842040973089599242436458928919635130758601429859543851305571106195030607907947623485651286640907855230608657332443497620179998817479557489343770193285526091153860837142606358755312160247521280390114922846452924643624747851154552608167160344614726056932604957986302338887811091118793977981971356551536429300204802853780899475537310784724146860574807772303565190506010352322480127207038433135395075141985672227931903178081299675510291096064419945795090531677491685310220201062505252664995541917627158520144770622182484609384414992266143758602427802765875582942661062686180082774085106925438834754430356824555809512574358141637388736262790710679940021053569491338743700862334641924050319336199907015389767644950130840297821950581475998339143436727870093908116547996536504109701619473468084960112315531190957177966122589890129464432913401641372852779238187534847825011959913512576099281516533439213622295888069192401749176769010529356381287251232958373401298322332757138815924037553523747014595451187996853560208673544721389377348252719492685114991421346042820406924292284564374587765070687546889111947151626585344471643688909588488108970290859996994834472978073976090306993869530152099719930545978875689105001251234384207343952083759998681626035592509158057587476648344172425505555064520711773872495151289798409793773124946676155271476613677687595924267731211113528904681261836623954629915436763384224000458678398329599438295039927928389546042090436038946736413181785062103091289971515474371042354636220707314754607123327725808765992918413104642152550650652648313437235894731412302114712391682247112579021921869579769646783998625503413995533758639251486667708570383933547497052418025079445544367901936919016024406485860968754553022598202646989114780705635485399669821618272300840657165546932349054950280223942243533996248247577367917113541315073654309956761002276908452622342210291753669736298307988845198237256075890017522056313381051834671156242367948626897646324322673893302809686738451066399770261951247060690924076955441412467751462335753325359133096277253147016730534557727564635469528580723199820544110266686497915932456407185882240329274660088900507015779051160919776861403101293466421996650477471545817341184754383451338810239932225885878189297729742798635521873769334023374550883466076601438914006706261698677814378704909899313551848588008697747132482535839387791770479143417377311358113109209586598902389324522626093377323807225383027319761923859019699491274188926861436998332544086382787130945216805981345575430180193752502110649973277461881395542269765043261380274670318734376894524145480037482555904243248381531429021977548056813811904183296132504806072761247004526305439160429093908878099095141676240679702689191903187139979061673895334265215273376091536812981943142505926853466791722808882280802984162223782677627128915495903413094078515118307305403460533134206672962353305748262430722815430095813025178602455073940784817455259519279869886465256584623022634077845368353038390764391885289992183068336834974094711053362162355594490668036406971021573680394324349078370274752533443391960862902933576918918164969765888113882393087550976705926318458290833394172740142253827956293873031366236722084697130356646403724835950182731890456659054428547479287042071124920224695498430050257715069958855896831087320041182185322235805357662537663508231100171966414631673287613701007067140648216651543335472244557342282091842325214429893472499134226117418070937556083086384653059762894804770018965064677491620960719325555804746985110469748081338382719541887440884439749878468375773894289150103485625600711832727112307149976365688351584546202113312985069067341595554362111878823249429502524886944493421336663145224149053388242112537264190734773591473117298356056667478912822787863571203386409489795746070532750916952182684554036185882787366077928284223157255513091683184429032524059526350299252331736684011028524383515907341981655098637262644778082549050052264253636968219544391800592748355576163234677202315756808418589619300964818111581026330631487865083002961471838925070775777455769059293989435146235494916154173266845067429974944748172743883640296155264043519733494639793225994952032694549654655083975527588137583296006698334760541894815776887791689034114132938930060653312261662374982665746026226644698755944798079210755050449070837404785230950078103243996199379124568235956995876693859943879828723395011034705752336424744393472523371453111651824925598948868267276555401375728626635630457364480368861332457316325210885290158735876829090341053845992164654997983051974787260520318390735367565643506744648185408325247587160784108464364028762580512491392185871982185142708194528964154387793659889499271095844712828755467239918294603925466895764281229290464626844537865840072121458465667739536070320192379060069518371011895911515170955083975361150050688026049961686842540028648423720303665557024333971038267369154138731611444914209401906233806021280298701580763964434210996794499357028086114277986497680937231181940308210845995030703638542553970618461604877013907164404406451645932832110797369016148422652557670125813523961111629514885898915312625146832496682405343044296117194205709823471101393915340367972445788244944258699628346297779080540080204161341389082895984423121162449441725162635575908646249620870654497484318880637056697542698330064017472417828660189262456968768853451097599956846660072855723432540699873061517990485847271217300965410202890919392480315388995648165665178549519046042598524872864064608869917276834236422049677759475069649092140623394872220136684026570361573474802117720783228161329582437244023043090172680444813492230945706515230494834498730312695959421615915301424042142149903228528182219532232661588875033938393246660882980882529824697038233174497060364801981618375551922607815084493195446085760788814081124754498531354034128721456421161382208399104789917207198692058044891948436369173985922749572318377333513953950518311052216017948197479844932044011009742840410172082746342587635342275929726931384773756377953924451393526319405158180597246054432747689927609441604629517497967859654999906084789424543502082597544075314436785876200608711781432885996745139572533406765905578959940891345422513725232089223603599143712715610607207557229069235686014530941657224219225186128258176588913598205316109879907781846106531096299611332540844383388107302774213234374859728576007260848583189550068539221485155859467536240232652642625505890217881574452802411219975646263158642524773524142798423449910350387907970675038403131873777190495686072744466818222959735255354758170494562097115698027153754254007958116403823129799244357369415618638825474569796231860914072287732474985864196697592300645896822435473688344378791126403744372397933257199162558308769852920581255352657977202398546334480428373323779411566967927950050873167124867514620000073027691838885870797639851236892102604553716953499332407803450833531009499482288906475149438676469517696240016077421775633858481043713812526242183246439901513978447658460071074990142846938704153550430010726061796138854816112547487361502781200299077045374004307308977448263886349618449619740594849472208476048347120580172369457620768014369397872050554332256493201758590179391078253397541133445766814011779330149325240411772707509022270901103704260637811089405076207165497788198329715544544301902578810667080606587755449305708144558404785658688919289204547220330065472221407623627106541423904590068266317102263217851481350806549153880516925128876798394781824817896077160000316367234378540876856877833650858427563353400366347962350656042524181214192363645590882458161056958990516140921260106729723555447789356313705003689945252750456596714242439468365082632607588345588544723059552931529817560937639579460688065775870836436888902757726055341850687613184774147373168326603520421078419239927765670307922273522619491733251350465918944834947935037525239452921773445371564714703678379826260133361278032606221541371802208470685012703801256379132503812408959675120783162898950519438110743536375828575563614082672931070282639335086033466639353777422525710472383535777741602553061523376208907346855054991737063617058578531427276794757449862009096011774707713845534007038203300882411678501253588423104518665483259673706530734455788339350862700862369178613570126282026786993465578390008375542909062687677912668420134874071143365138986605723679918359867682272927956170702027014220965980445371810474548464541235022852174138376014621539955574909455835616812442705329014247156525061313708809394735111773418299622370565381271761394351516548411780405483912638857372468654437125097403922095006021606154253186444716525197993041997429645603305336188201907183267846015138545098154323915372307212244478143879830245314390880972683864961755582362062440373358546321646176990716013030925492801281307694631871572217104291025112615388740140182903504820510573317756367246108443452981702362583228175247668239580061092755085464248237339616788792338340226098823018560939966955041848324480491173420410856375164864563009325493714768414284893299870011007152367898034553593695098114085096373920701325611894926657286115419223215957478237452419900482784293642902162111364986653981989718892912510337815855809814446344618430307468483671605034197538118097711747784768310180961552533058764988290978022538176421702858691342118120102108675057918841918003731040587992792850633126900050541332498779056953811129660740718379135841194096821000636882257717826454595148429050001853817870810033813597851865441297437228155669554956016855445245939652503380596249267596962869697138905129252209909537165922939614744190086983055780807643243448016040896696621290290765426933768933602437128647713869877175304764376191510790773851738874818803202402696638161626381479487273174693915196894799935536545706640375851769084464579505501903414525005832869717450194451715481994215822064769245085421232045813328597209615344122035836172952413781543252543285642804466030181755667425384241473611567225439093101034539347464964362027373881588548405651002135242242317717750974499133066861231226483634909210230276791226786593349001422918137871800989376922320123740531802550408200550716339863165098408131354655931404115488168888861932227174430595327464177681646469147940014134345570369946117802401906753167110830007464664146906167550630477019484863698787244298131987338653775625038622827873915965992314685575165510136793991990039694709465998026556866685450735301695886708830072286919255919397336366307714352302762907329831226528590895625024190359956630058885563278516769614010737451164459510287570577423828500986736911568699240108774998661376136689194658684748721488897678018193722469737049709628928092275749915082050884834649782929792987715953330126814068178784769780446225521434221265889601480781385203390684141401475846800347279901367710823793410440019124017824785364321689045507046411336361484458073723585258128324495824808035166960491804793463963823723415637874090000996689784677213784902015939159403522499205739029526081069693015973033592817981073403158884767687272508848616113423186329763781769604578720605916218041590292345997212521853571398115497484762874002165990667004470806885698694651027012990573443740787211341522849015526203045129405763755815618528444851851046104580801360398899136799102528674267963718465730232770670080601143128261684451315947004586317303764054479790436897245586323143154708940156119910105317969329310217950555820385354451736743836602141567222422246056532188680059211666962128282964364088629038347974028013538323369056072413445350885807726789398049603797156717013182699543998635496050282726892309257960499912013146384424907472263145182583649130896447707741391155842797909727199325048628144434908625127486885189780949691253904138691007179193278804604676926330435940274582650232641236366235922679303587298067892946093803645073461253661456095394039941397978980708582354580626287105782472106107218902837378592442705474544657025434626579591323010481168712856647533053497810039807213646684664869958511800087126551968193958120735444832218266003046833166319035373436853657375654910788474630675055909696715977090890275689880968166078285026943790430980173921312249431749261295233732670749327939868385128145839545570099076542383662810874226346561046419283342619353418921088768244289782102493041902746186221287055208881255053338530325481758149507108538317576812130323030461045887286034059765152003674880893106383355137791198697634020474184643282807705103292040519993883932269044590126294436270965088809596369348054347788263507802923294439133793755884294968056525553349001912018945043028088729768289243269136550675193962363275190632359940423576848703651514705590988904428936326883031032508971567385643229788270848662607592956105832617447532089858718848204522312446572796699637942284520665527276305626143560130977879874332609089520173088964462274707836374027613137650023793253399149610748715387402006051430339677007453186562468386928459621467418207016194226484029235336651454183881873223569196762470651921222179100609515890319290358085476496680249061725595486437121313647602349636832110319307936637104307018347761209431142507765115508360974257414528496064609171522742050750415547041905156589981749267480282843628498231072765492118814203755797955989008638207307869181336134660108363382293086140127024699785845241023282782230956127874092523328611812292326316083276143262629535553520020530891165138369042768820188559263750305855749911509578124225435778539869258389488632754748114190463876802079956442376331841898221945777506508046025579081756627992231894824624394876528002861197943049420372483273271826638387015149108684994405610599003108969186054952388368925200106661621710957731031585602356330121242593460623399887291084478147054363194629248257187985954391814127121942754171862115545876562156706583603810700548226298534884199879254994554982174507062663748969136282158789297093960564851261962612689730909118121880550845640988609016116886605605792649693074203145791250350641204792822559053107518646688121623770583570976240929698359645336789230634683076464267960077525596307544837436885551557033151845613461296240517845982622589582419445380751171415600397241519249477275344057938907296824238460118932143993287223242055271192500165688098619546992005393087205546078923290101836351150879308211075530048392993151540161916369116546118894273380375219488867625744961541992412577814280846275345797620459118722263634513918197388824922884584978733719911908412733266492308196545817972704302212615043436923406905587204834054832917957895203667662460144395269221906087456765135672179636323523374182124342050351766036086174220317809032354478583383756672755471699661571622521963266972561267344631466454619066666138790441362315075984433157263755355833380991319186400960918054607232334212490067084627465133325072613508142910758280948786749122535952392456386858933717856747452261390551708833334024470830151034139039949789770723251857447524437735247598926116900400217214236296999066927892560824048082843927577481077882531300179979096424838556595760563857506689576508612208312376958221366236294182461303201935813715634110148105130485260541399689757097844970477687192482258807758081538709284656049826787830742807400286928254604732516222834764765941471177328054220000210725998505738157235402962299822012484196581607243468818788547506909226976451932738728843811974693326085433192487490087294985400004109473906882181131680570087073654964541911994845910934662087171972815361461965336105654251485061310115175863365349119011527157978013487653243819171540821783429826860148276350905175493110671563400625886683478544033367105421953060615485788748000001122058239030590590478447031753771042792306313502793101089775768971231248086402112625630756051076500668233535211876068023325770120070751149239668554766195115828351840734278272205909214893294106135958950863624780768075498516564660166466615913140409723581357454531135250859741123367064927031162666818903019426196415319061351203406685802722142321692077591138192519442794911879275390431906063621405672297558658962442424491664152257346765562337352350470885946730625673553577988847995054519542312285607454691018825817483896254772827320525205816229542843039990592956356759637363774490010317901650693975624483046152386522713483648830410789587446469031918827166734226063635925596183770821928278994391696541818461421006371665114735802630180288945729601922437428028091549746873679932828144869026288397340545899349722624482920168664063912107510483504350821063000357076706063164260855285318523889718583639140646736757254005081787277201764098703057579880478557212473521692199123660979388896379539962889514526844249357327857232771694350936159337340047503679381499352252226238607368383601074769849170334018552573860124413465954234802293725722894069592520978406708337014893442215547813326922283447340789371732476815824531143712982413467595734691247826094070349645121073173272691879755324616878636349765376410682399003025458142251381025473854054563890487294436154410056723375796606677174021771436327257383067796211090248385718103307936569041277953498108709553152778065300048557890188055221447940857954023066903399774777705073764635683199114247253746927663119238500622673430441035744505685552259065862025887027306999302386937708855333051257651669300371577474206579897163307690892723250096258809326545726776969695602396715724580440560284604573320385212737485138896595270299214656816388367550593710550375912209236404580837760682767135130426164254694861355227968655115288820112518201682148668012960014726936974861124667605617808558355790235051196612223597315450728167226847152923221676300377847184309033480655864261011410209700006069887100740187964516342127317153506236167158326568691452934514378100203376609419595673216750222675458101222918725096709537391365656984034090554568846657259759109845457902930043994765171192772439337653678725302337738550200401436507661189840993986226275669571864601897715446064528122079025361033838159916667909101913474896133875292258752631608886890609655933487689453462258122587683709375056733823239980263037518398504425601144472892054052153337883834419970484326810486424741662252187707700700113730862420643634421653676928107143494444084360677185899800651469381530948933789208991004075750613191733058219084729161084604811920161794617852708108286236965954056593374135045233705210391808040425941481282553035320625984534805356965935543826195255259484926625205946995794229769292605234295045263971529092856120929030560775380669300508148494817362757540889626615684737073870005254085674149113043492378500281389480051766757870428151517005244130254557595864390044850816695187730794769290805806534595524467963289944196990797890496904916525684639539737962317393621425437249312235693953306611764477374625668378380063659318245891277971929073975331937436623089168115828895587504412748252775938937388495156112895933091997665786500370958631946497562566854769107611546467101104543508423190466665183002856851540013208241303729482631408561544300676567902828054150895612318234043874004148112841995255258098138816112394030059898626633822971481817073470362142831848011618069212167111985828262254991455415426665145304210319642431359066360908480991814029862936778157127752662571905174820767293832793777717721213314412463313098734544710333498019748877944598070918414466334882676251903621524498750265875045736125782505300994393933412683566928423898643381463768124786791256848550838358947740726642027691498552957067865507991542675296205075706372048162600295984966175281884510845250438696895420590744646194888837504952863874400504289449916654486809072547134206768111540660418155720461211558195551171546719906754192232966691202794777008537519757718929841257115770969870382752044449672509274468634327391170571269666087976120972114097854615424358572225486334776455148380409062607002975480805221433148674156107205608483321668792984981089358510548051854746563305350359043541137374812970306958410656840493555105552873827569351999002404463578176868763485762509693756489359606512022116368491231938221158834483229101911679190492817250062360052574901628710746582250677185506329167902831885767254559105380212000932478021940564475367412635100032972024939478547195108689725464680455215245235265210754711175930117984258037370156109701667732506099547491777315718036403277119115756209095455641857393574565067313457129308818644404262604277364461806377708719320092848129317212737850134162394814763855865735318381648907860443189006069844669424473334513327817189589831300603776520369721922338536915129851542974645578826663457148807892129388487533824244880926649124256360737657423789713094284822809636517518881640784863613035279865044911300527550188140688859410486650662210842754566992481584461008337185038291844174238161640922935219692994284217527399059304730069177879767473410530337673459700088647781908883324035481994027415354438985843384839545554051228491761507713006814157059732189563721249897088022612126606083885069187214561182002408434900054095589423616319407051524889072986776135073899296270204151616119245537733470346599808030288606516907711359583569061653520238492558187488145844556270099130900167683446427773658946944202348308141498572791433904010277946030051786316784730436435651600326488292574049423636672363235152364750420176792448067543691856398139942587609111175061260963877098633351296152283446488610421534127797392858446696336891470263783248708088397555728241795506494902614873555759775011994234923787122231595795735687929343122925208378640424195943646201768925479842388714135371763643281190425157787859853039559826934629283569073758282503599599212909097473239106013732273469513467210031511236039037565552281622212178040892607113887545393987967647749997319234294861099083983518328581636831236474911083925120197803918865306582667701291739375006595063327601076313838522034954484719037308258046336296380719877405358326054020907921726037514831924479363019199008824572481930477927294544293205463285327097432144401731334303040555507156465336715413422039482723316323595460567859509144120735261503437943859455409912886521207292286375702390875009800026703718454289549833822553967979022989895610721122428132446451977668334764601130058686047306012761058324855980076738508033394463650621958633330417955924289312230770137288424928559546201055958622913056017636749880418376198125612325030937166229885746184261228117921818956587015880668507887238441544344036911446732056471193903247808413119327445179386274363120008893123989518735953313613311031829244544224729049871912846351048887520396020660939730230796808792453853578307080295725567716647145561786234049520845228311962407427264061197733829264454690051305724345767200047816758584436571641731903726319953768104591056362634568338263766945923295892273133391963240327191410095794534294625410163856785119814193613048354379323633682532035947591836063363516690503414580139899564530925560397536491096967411671346972741436296846138024381483361643504213116510240869749359017908056332661779886760368774031693176668974832467452548739206591636375863543144805245599821202364522244569859964590498912149258505847428493899828945539177200278033069359417179287285298170195041416236545947902162747302238739508690058328142476832496214912467817130174328913520936185694748733763040494877951576756920734850527337114957512058487274702240005882417865544215060820224942651995205645420984402914344442532048562570250427139354552452107519142932417433435492685185290463610391204274644093450667031821625115215672484659214290204636539704489298924577343648267936839581062468947500196814092007974146836616916185605472922193574677794416019377491711948559320656013424804755715427184105733457382933785586583513761561545665681956056127160647800906221356955934086277946806960253234439922798862222993213070201889607276262480265515599033625736547468491293974237862350082486884292035214173168181679152378476897101850320510461673126850510008582413206576583775418825468110451800623207931660758689810848889117619874841713257472543189026101197721723293526371340438682310867265879845167712570193730941576725988195159696219438933873241207426145036590801742165938185571284954362213463121006273198254883217690279144688337589938011042446903797120910053579599966127631180996219605091284742719074570074880842203992364676643134529559715275545689535075293945265305623494873236064907106862509614984134939493103668348384068802026207048235493920377836839732857826042898343244777484113676540295434892467904255838589937443960459554175977271246684971504649238006695292641170794082716657501306285396385510028038765889137655956388644481640688022686356382887221600237960422180908191557143453932500969725086077575585155391214116859720921810129750730023905722185810127400754570393679715384971172982044365710885066521100792744310024388208771396818605147717914898571794399256725321047732168574101092761982827846539486076368128998171518959084530169941229259212282374836675603985854654513960364002138559612617805903907700595066434939129428748867015132797422571175617002366780420175408775195561079408331235688969387400615278391880436247544028629875873913612446574203355097025123049073121759553428692194544567781475254444835674015938638436267476077599937241611981419036343154326905135694492558887449612617491134506974132415672687050765869715805100383101431616878047476955505539656846873193024976714399796757199808935245685097848105209167283080541495308857458034087921527803816599512155151134011253894927935881245122554819373349261497837094744894689643531609057828571532603241523298792976469484921044468738049245940812480216435315019120019781622855369489725477514889041950525411173489183273284199810493055889158825837316399182411802399399583523768977700897499430835695671588750190695945125785925635367108252372260658802426824080903273823249424841108122787772458380886368619070632234407548377515016986812301764178519018825118939801159321034398007021971627653229009041521729074191291603430930645594964545879336480349563675475361267249426245080523152695621406870532888359076041708863843677662614215091165646419617327637216085964187673393132612404264344273257987673357944364980294973679671332847673141194719982600728607788772282569368969983545679440450546322145002626955187364406034738557867702310677526967183301910747159350181233238652244744740805072731980353437611762351061775509239608937215347867784571237640118718586737662973365739945278880915286173676576447374585166366723019469517037021845780701046109453520677372572701333725102905202663082433147112423511997661364445149418079997159312523536341424408299102516032090414803909825713956557611588318787011216570729437865904227628068851117284902103333558945338817965402794410273101144068264020735158112363831308153713525430140290906780060712618876173593288308382819898253542912426981084833322434355662647668245111799282368004698347641665060775251372963064015279148356625267026967674747232622051782080094427014394600827676181755657078770285087771437435463746665411505666337213825919809688449343196018730716088911700917210303551677439010607588308678967559532520253535524454076242770509790569830303942681564043680035860566976067322908900454030009756229467569879555692544205748458470654054235948615464980080497147834023886371626778205244115099703220497429017317646897579285752369080904236366787318252077456688414155203876739281145293290281035277451356029764759746337388981000521195000198971932057276659678971265608999060449398935856094728440256726605417830965427520754028473324597288690164987608640781239578392935150489753510269652930011925917336562244944885341731909494565470403368712612447152434998731204794873055649446628129884040003748462872394078617927344440147574740412690945379853500378290696714496366895896970179760618265737443372329846588129146715969151831769564048188759305424305312370809506373158197178423640733468867679818450179513797992257001376921962149030418709511726805575295480385044046562943423512722094466792261730372809640307325144837103665909937119775804245372318432291479149064777216634688604733580364931011592005068459753526116167130642428385958971321393260549182633545468975923762589174466110483310462134769579177086051692642754557946524005819031156616184479218736964198135203071525163172801058263839216605631431833495840470240261617020236063657070743313580030784772355675869125936483799799900028449099454463188762415504756582716745908998138168835239416464813853783197525965888298748317433806086312216234320152947634016789240941154021765942571943699487306238554062809108388027296341137730257760446548241170053515442926606532383603381708322303740965641681921106726370575867473819911059883208116979150756086250120634115283633171928869816614975064578161876635575597326182139928313904512511436390607971908688551382434224351395489336657946481678923628370156229477795468432244331373186495308687570335185259276786716895216476537260073736393319014501641772075777691525360116588374781241427560084738857439086189884454211780220939272151364234782084661792457044329527765179052798758695435451486009158237322806635569842773754216267191252000295052834167417993885524365336835847599792697178047037307085791241527051422907148422110067168493722118897679210156872726696722517786929252712133911997880728252337120617970386266710254600156170553873830542676667577866416507989099045019639837660157350172139165492674042103365307074770361542958284603989135745197768755119823867934924437749466039880374317014407491721137129895296880922865027092676494289142277197332075202713471799954417460675066024494044202177416975040347648782172825537594888683620740583779083511972098254682355763604204838847195060108278097297030241548574754864573449601735495266840850215951539133570564888831711456552875141581210882934899991926124064541875273601810495914699521507605963839389637975535351911799182779741519100814000345126336002455899856550206338425057329380102982400531209926920732415469565335313472951610175235992711953133416795825878228779328554210946280705622600983623968163956734455214815502664646906806300213358927170806318262311665885063492189529415965071807307302523321353977771451161739195338078160385087940389061850307048249758736232662796270795883881879208405264247015000506526221943244370528535913738494373980609445000161376768746441630662974902714092266304769521132448485431508429126965337425737614067271698592487650280632158665296617722586065451391382350756542115275008144916630535504134277745186651394617421563831602257782768928290041390856392800238087478169728119258560693219223775560341594578387541477990237301139735234943300327812137836421055819459420527950413846990037083745328829945196663018991512678341237999150404220850088308777031885802407399654766332812966027933442300947161075491161269301841367850570910538514274224398076248299423610748906747278421819599593136312122430607437454659586656648215202549074225653143526582392176019036091352518063932726654729661635806726694082412526478593793130545630258410345899753509689193118577773300945254263689953985049674472133605777289655089799234772008790962649113419515054949708031303022811790995546483200556373426609324961421614195266041831319574135798919954190419330416931688155412635090066467350846486777763702893807137306212859517718155712301486190552337474673899400229832253771431170776684888535093493734577806982818744152078530961372410073124321010448532151744372104477835350294802709159510786412681421946998856824406265011290757524825987561250636411369072354522045318892149918608411540497046866626118829869765086087080424976375180545536888037350820009824137647451684878202845699866280840410413762968671197940265588061672446402802352150948109806801957299122844718567327644801010953906439615335259916007473456434503612688081613288253777519627257719646437908573320391286599644093143430830045509236736313308356119622872228422553932441599386343900872715513724941518556780139348077803218781602554408774342250027544939357568548304409328573560820722807618821185387391726395335426392370358524988212693432665383947687882286058230822221786468446302302848008004695688817837408044077739696972237860218625079999317011179367697908660909149590948146553622304389967429416116788718713980796803455911964989831324817090890453906726196304143277979939872494490727602749894332087985642040752782765804000170991078024518231648647525523817923516519092030795773461363829804956861041219407097967708648842721802524181397708658520447045378241031696532179178062578955704987309147173744853608932322890065881947648188926679265670235162442656751740821381787388450926366858661999221265087841666303120533668799899094279849037365682309828187504569523501207636460233999036548198162109291857173736290243337465708502783746876689063401647236692495865393866441496208990347894186655673073981704385314834872080262305547760800862967415280633806098415386620292208275148123045972707030615397647202991883945431495170163402804076137862354499631046285951648755957053371426563993981018612930987644304051746122837869126265782943356536084312743248385232136857894988331967356352727970724598934429452645202218992141835599512852744700162446531682703589813737949627447594041528782690073373722553335558650911452214354221945835460639809336693671893366780760132521313363024471740260169885121372107917424710484920297891530896122134743474576040956352703649512318696914706476483796095153782563942173553126725439209513009924653275643613024357156597933497579889003795817524769726307852795671884101129103911457339182420573907929891643244546803292864903247815604349362010971068386466310741752470823824477627482288978234412638686365800690527265851772924354586053205666997643805441416556886400100255262395578017850540750977074956578694767145219444369606074107197472053389031025921812911407219250438242906847722459422741386380133296659336612983894853033823136680058397411209140887989944834504525629292225546997046971130790593381500391296499761036837218116000495085705307885309678728048189464337413123832518794367287370121931716903517742959701946705112677604853162395243484819839236440920129899023429043996740850807208828421064454242439920088364876638329635231500323067254342899711176950378952421868692452826196140691318765890243360024205641341271118519240630988729962788522459129027190016809286025362971025288629291202381515099830563006272482798632925733748906696537470560767401641792194079664537638596504636165189580265321140761532686008532262962443110040981058931594867963653966632090513130365232231195815441181898309771899746451679222951986667717342138222000365694194651200471517718775943814628800566725603099084726611456523768497824478668226515078075968294975083625075845707043418074246455343917799153678437951125660461278442844957029252365419590638484293962588407057174485027086439077414308777804994928825089207134022829721387028737075501379948732381293790376158082644227768694216361717239056135189665537682245033558248939002752141357563703624453757150533398615163675095716097267782903879117258212995546463461542233591494626626174123796396512878885114284096085742685715441301434737379952247503739692998555426603797876912449568655836882378080649119972087075381952559954320798334661488845992414962599014173786207758569331776357961535884265415268856508067040092028848376303850841860313029802803544634152044674016823885425421743976152998516096045689279754373411439294927874035581567366247514582611946072115458819561215426236397530316887525402366875566991795712281470901518529501937513140606080591499502663639045242563413024918506319653200041552070116402361544704958273985664370407853151948160194587001030768995496806110827696770037163608956546767679904607075357530896608029202710523968017786815091530959345049278484859895956521153570831450884739988931092854492602619328452378243016025295442100186890965643903136562571211613076827297393564948552831446449851571337468002166399022117607667183102541320881721127075517393212879534437713921491278111692006950262073490909636029306647659589589175310549753909592633724611908547903684110794667013496760863426386421631938971355242341637988143198186134344336636391920786026648600651682672153222222431677958114639468931973969154246014391928127038045511660282139985189055382440988376236648828681353715480010847702016353985269436310227381187532158204774699386154112051175882929801299602296552053883982877877729358157085088634216353034139692388253474446943056052739415557040652230094878957527195918410422056945191545697293931770729004561457174247033089425731606973080955629187729278088664525467827641805295583156181653378095260834480485260679951481282425940297226456805475827409348902894114505438022591447802624949878850266539720656951372322117992507217747017524866820441130596250231430377769650140380143356355299775008942444669553207895001551884828701524744982730515118119124344024227512885307527426710540312853376073298337869659830877382138767643948781268018273654554804550101037688612012928336541856299158937881250866694285193079425784923757792053042207502750055252854645122635591379419283141323526967350362787282338793585992026602243397252955602315622869923610517518931881912893405688149136973308093151963303959671179918128246515850473851212013412407371804023284381204165393097182398855979187201784186769510624558009964545929032583281822368507287877004013034870007634396963713160697212710430783078738649115827450455908069964301501196681163850767892149253800867507628488114205473142759638949036411139585182212065836578030770617849628020245843462882516383844454844687003413735753112853619701400122728288307046033386021159141455338452907367553594712913820721741420754015301082245638607848880188975253818025198037777178146611955272246927321882722050611136991293794122577528383352175303113145216213524495710571624926446221717872437326509411881268304733034650628015578768902110341142511241752124645846631945373212115894692189390690907716935330617576225981222021871160761777355055613365625388966715269948735298283355261103000420558625773364443681897832940841420808029475181030599061875922372947877561472325726864523973300197264083860538147189488099812901589620141227593917104609317323346162545240635277888802092740117881364882497831782394729702944815252959176949510703672634500145425073274443843604753514539511302904970453919310061882162575721014837488578592290032086352609712499727369480761008502113685214547324340727068086111661150821828172179376920832616436656798845994016387861635634567614051329181032962312640295103088738720765787212653257795223988385252684624869085640280240788730851381868918770046096033305353073289800473914869667454017343460241279204775621100933197978654748432987932297209477375598409931164570591484205831427319757219875492233057946827561501239830398326151722351931348120897031531759005110759150733590303078281801884665522707664657420465276700440877712897494692334641568924313639953328357059022118553534185196318998855296607801081078289730646254635611470153451938015947047908480059010093794580233482634164597953897656434732419310039923638947428339271134461046234132025795187855137358772344474147299913297776622011484578215190749964294251720523847824481288352337532393181579868808522203463997552719926907914176472795293639200765248594611534598497597853983554283163727586952745586231793646923497428683738732271755518432911152143697804345524881328555792133626565612069511847471172247698411490389702997582066462397010734884952659328825095481452668518271256780516965265089201789944808668096264300580580765247973178112990319893869649342664065211872705409668463588905253443959354939290163268962054890801544929358588181065807368212653530024293909961249110155014335653396074657822004835019051345157236737375995629017641407462648717112877667272181268569474479667775549857502364329215461935475454576095309241464563596013787909367348670616353863387707411636002763879912128946818600082230413368071217325224257078817251709742333499733244328171277295936230893627109038510616198630911774558368106109540615122956007252433689655771014549440097333901205047754179730917870151738613155701756226158628598735604093271990800463853349116737353127862007555631348194362426236684223224704112069556770730576608128174021653241973700010663552885445896287727652436096356597483616784206740704253890210336106756171554538972197265808349472496402141836210569771325244632453816592423536365089201439938036405310906472456416843850364959809082821200746452022329180658356647336388488499133443202602067037522408136474975662178241774884153274572726204189258709181824439809696381077577951862391257281067387740505264631437573835824874004185394862452500926977306284926074659078064587146678005400575185931005676215138736038583804037040239249189712834459818411622372030543460544738283735566207001891740697295338501205210410871407174161141940445212017070158886158282090701938824792679283574250065966068218177383326048720752505932255553274503343839400982987037132852204811571295555472176381084547805374775744081753301440615135369298764433439000879266818681731730668839676622961534434406303368060962639886469417078239820631376457271879581037234628990942375685001422935039443709391862799340384769210311548491448007608606506323445043924694976889632988062393851796729642071355799517832030450236912875997668495068101487876284486258989882471529211707178991176239902340887232491166637310386293853112775052007641091219674355534416103432156567139593752321305605656494655759707894669224687212816590185466377889640998124494532231436764296563219480962697207970579111210258387036087832721935446413738070801604425200121310294943999357221753266746293331709167692242756606745815419098151590377527009629412469810578423237596307678662617944056822679191975482970833343184763252189259460832271155730871124185780441450826675873032896896380043418352571286082466238675571731391710594953086102743032934252908462712431601259753549133026272287045721671650351277138293423158562885025221037852359313871378827257659371767959317149076173628286580265181320835412571750005798083742393316143864537681585599525087959557338129794617900883717921544892179080929103916226876130633963839641610697255712052198732898420590227189009121043247390437634406428564148605522386710237091365910887387376834234512664176837551237684808173607388879555028080640578895058849263884736940763684970403726630259313546283262791859568326515546710350971630190448266145054713390329722342106615149491182824152441950582357095096560042866200299653463733250750125971787220421552856521860930781373451140066545998575285415014192258713409627065008401651969719417396205997017107293636048131308084976689642294244402598463892868266404273686202098843232794154066244157697608278282271801992046164321338919097494206555215891432046527435441970876600092016585027200182948007770709293950183361007319816374800271220560232111649791436587900975340098324712531018480254948725218501342553489303426894706146776505874922600214836047877364029203602266178981871370130118064945706815318536452647312786990156885591667605718215988336833957680500171146571282330247082455801500383455939686007268142988417686196169031432598750865876114152846168659295533804983826125303554208108284749870091390780483184362496929413616156062650394195199466264191091767819636914858872441164376202565206284354380606231185613945229711593139587846043135926697461149907000860077196832004749624319229577124305499529893045128580326249344731451963052755629433721992537189946625950615192151333779826868453064145153052263853094139191047298445665021360096967420389237492933225851027855600393200854779220808368081410833788283306949955409164676782750758320425164061087992296465786936658324418506221203446155513821644591178685206555258697907721143741145612822147024509300303936682992272851930381670161179179654573391945776140661231791016039782450655780318046070535732662674936305128717288313665664765538132505481302852565140707212018134760739714413955429874349496109195960733936789493689241880750720920172579015438269277935175109323221585060327711058762364110957606014887183173109971259344724440444815094989654280380278672154706075786692774040523790458008709774743798572067827307715422471300688209655338722021118471193869385783120326933298638337092700536561845257114205350545746419480691064389327516685376989002368067033933940590651402117673220186783865798639530455670309480586536778332571857971153055316378485058694141414799470437763885682312775823367521301174275933661970613414161186510595532952030115188492375039895682625724376008833087327839434244294253285816663164884741213798193111768626382542718212908945574582030842031156498150862636941138854605601750702586417943454061680983522930025147786001716278529834512318507142093498072862741393371176280816996384077615610143422240493407031450388565766870017874774442255037059034760534455448465046772782410052586467611018091784590959666797967392249130157980387303284707974000456508382898744249514898854982902611143850075963050466646200817414228868946158498317799987588882241502988379152515862823940686290107228406110977858679896641651886499874851707401235310418873669338931662142380919560865047853257375771156210469293819944239517506208621359151539036789379489593278162251532468404495911882895259503296771707698078890426589265528958230440061504826181778129538381454157174469450663008526109131660227323888459785686773210121834592143237621535912193904889994492016938924314140078021029889678596508657737433018748119462291374275118650510198499673825571379121500541489779616251925885682418326576836553596965918991978146161857910021427624190736336014154331050542482031142849810425405616414770256893381570719065698215084449637319569333215906610513895403953054445918167673573852467300970035525017328862378323613470228808575410273131238709007230490396373484156811394827829196678033018754464363478866104204714808521463769615872760762290635500525936071358517766910821838762587991444749241991193697288858995705941178803154397196849138924855996148071042620675203667309749376396523205593498753074580813303408743653482777426688460171110719642986566609405292446100459962797668917366808672568463242800187480853859244448845982610031128825113096567204142678475490784709893630325349232095801156613007572875899599974312184332142097263782206753979314753334608668966241236949936252949627049701819570253286965635520160727096502819669821736112549988339156208666487530088121634459012752261613102844704666008371538105580609933582422212444356044108718416052784818435392693415334354415353101321879878863564698895823019812345061561666827347636617589887261652590690193316544403156508555898469119982369221761417970112666788109477060214645304976389938470279364508614217156286096699485744086224220734809240368860657628564136066386073581137289560408747917046590556174179722052026122834206626520561588351570093875969115981297051752953026071982136976974308974503721419047620611845751476870988751426101397231418481493085387224778691803377878889059309282337801158760158735106616927930961518157863657320935751837820113571813143361554408753909851102382756526238319629001376891229133475415828159733270643535410097044541680536569353418558779298407868663237529738049079603070654739643268905010001985338092459440571741806218015997221800054186534511177061310046805327846647835801904618095419234783084704222761962694096565341264588992611245745314517201464886125175025104429226696780647953923750221512890971259796183378406557743566839372873091626206477683104567973924612879703473116905240728784460958864296586338800926302207599248478780986066227242280575475098490503730142729124788192691390242651114172707720777563025464452415208115934102581279663668893508936557982482142652330057416023955965920626440474565297499946648807455130793326409821221011689001142601939426688087892327478750313714618510524377205887976030066540081996453986969242625443850602483979946171020346601674685485910405520718867742168415908009427266651115329447693820290385767701060810431587633581322672725356735276749823725320576062845883139487504860081008249168209660008047349331202276930023986320552502532060981092732685644538186534559645478054261088757047530042278624185362585851735921630758392418366536152484972648390618055889312253227669689852384237026233967893934411139221097325974787584422975871227507984420263400375408037565500275612195650569598802911282374294721387370525212984586512356549701456909282520130396681038311983015486635070831207065105669119984803439215678703058723047077679301180072193130007644777108935962681164489956462437050915664719894550311483210692442689867148514724968519190363602923486615418810195919048420465380017730904321466554944757535388783223944028684945534201168936980770111530383322723611509197702143848585238045076919271517333179121667688126145116417894518707844267149982376623222071843390662616230387084704116590825695527223062349417683090723329776721625669672664115589022137473271636143693601989962595680332291703119656067021610667218235967400620447848689097791850726297603922123402704476113443574664155600654530976509470043933525812979512757099062465262592756563402011619286842174144058025646142723042644058874242070234516824461864883682971301958951993653883160254062557378141728877587191866831262076555701942048795941895237958838093785689654388759926810426278791361725067105326802342340669302168100919293326971088149312956364672034530524560891518831590814865434970514784524244190766634875136061599338953753260805527769221896969433825102552250726642592591011424154476572359207340192608364559695242786161700125132992933124183795511124803859235020522398184988860845669434589021339732065847020491214769754577337578107039408471192068139433003455659346668951900321855682736127552033139259599392779695239108358712784703125085400681392048240795723208207416203659979470071180948615306570525097205976919950173221494971874877650662428956212047611334091867109791560301295838066933928571286529008966200651199992044894277735128170508737085162884224684157847598809522296249500804884454703014937786949371526349241237169888887814406134553497134105084802403788629740849615152135864052609707834143694251010428293891098225403089021184831414189316669420547518408504014850590005435604116684786128793835305334905219516153477653904265291088015117989175757360218087486812977981413726338596660919837985410023013211771015881840348422524740399311457158693477209764654767583338335093214271415467372661459448853597571918689354813322962353412113766267854741944732553059778567801011451398470702398805579146880709724000864164243019044360124391816447912833560511317770629989396162327365560573701238714225093910617515392954667674108533294277012476263199383707909717971466639619972162094977082964715556743925545021418269966681075411785797748292142317234103337487286243025343326370474323175348709444295577588994225769568249370589857661937214087560680256207098105602946523755085572670975297092705717402307116815558651513197401071719789940378282484917096049969348946213284768379360111001294703446397297564922865838454238226097283387382641928005902351885098673443283088964298983890490928607807646531092518621697340167761065287710256255432195083313521440943103445163950940293890645493181667767507803036035295430680560661390427366163463338569166896073575487125656943027341244396418531568126121609791036346336199370269270376055875629185631181191817666998284489924729177101850564855900806293899480490650637241217133046409561561509531066681518152667992679413948312279235215534815746082753082831480447357491406854711584327744236187966812096282448699086179585413849907736475941284933524951081684940346853953137548948092445221008022063196444911559092817894809474574669893811575955716239588662955303465308090461668811940177664524443965203668857169032339312477533942691876290345655069629764868797306272451994605004150441198089935766753416448973270374216958125466374901950984896163728411504916935032484664187310739417114067831315947186028570290278660574390796419253400802128421885610671245982184513722573406555340764815967776972228540267501131373835426641982628060908511469451612808919615731839786218500284731227922708358039444006936848877977761068828438778044422303430287282942057206631134193311605964155460208051059108485424123017184844646542130529850318971940416277727775265974277180923995086302518021598545541609989078268011679593972372723938818639596333807542265156786820071517480240428067131549648625092127509317394898824776165860939402259985784053499354543929952852352990067355381659516112209415925163558831973106793410347707391717733958157766994014157594540771197088101634824361736277292266989031450197411525562844463722581859531483614405120766793641773071618833735832184730129115780016820569579232918919627746085581358924970602643894259635133158035645599567075161232433738477277566933024039681617971019600891810644836847361341555074101465189558206284748144345019813923945918267672026768380915951104858355782526724164715501681073737460040478001021212460029585434764737250349677506762618803457405215265147225906373208661443931501909801820011273520609502840517957817836970869372073366952003663048355199468446653640380481473286689299083235481423591442125403640996794044644034135196461607036651983813694756160553205542150302920129177988560315565753744808377015905134295663186011302343150815619286967688096790634257995271084867614435393520005205213834720017152390870280114524084388433963250213833384516819247258489403574477925559673380590931992618326904294491004582361546492167292713825648622826632774187962122605704207435661267123744408012198110989365320741925142746796596756806474702910585158525973177188439316674625149107750637959987743181704417372381869860056906205702895712822165269301106477238815988728187006050405863407197223042464912768777388646516220567056227696799661494621845026359494486619394276586583159553585590670911550272635770036135973231013106173105482290017349461562885672294267233488325345059740143532119232189326225866048958214311597091673412673279852296734862462839378038767319173910206300252714428417606722747213475711702028044775685490839547104153051539589187477521294348592337504952263557915406112467680521601789881478031708220620699687318843624822197819468527583724477550469236354255188394897498523222246933636536696096821344422317612619884154250821975454157689466971118042960171643466261956591634855878934781522577428350931171378368176383949829354951207590356340009085510292434622207103082445431140204697459537643391293667782819500131954736157300079629361632181143887313760558047869172621186687783027588780110558389673519984410993739050948789718502047129014867250418062570549956090471583307333927099235849654674229989957142156110261917209169740011141996433668712073579901134307602070349768680579555388982898472538197489813968987998377356667011210583048866708042078773997044256332692976395861954688540979172353544604506987295256761969599908445778306714141222241655418939100888873232379405842172627187975073822375195897277534949006263162477643474504657193298475424159726854472353721044128659811559398388969174530296988103475166156361535418015389672766034347082818450847776946262967653224356952889028959011481431038711114841751064143870271293297410785815047648039148454175019532090556288632732013844054155891884357631649254910023378792217149891153621879320604294398835537791588242557875404454558515827545848645559050891443679841383503810662211121967827524748913017186753950797121578812483343775196971052634753374018082855693997875798308367339416381907504020341781855705677318148065929605465881917651839219908666368270310663951129649454588894712904761348636116773559155286502629349084361486501403475676548982260231443689003726217493269576012192116080456929868304430723590018672443228942980276639870938222284506171261048985229464411574193332106511492360463330296000894296877201583231214520446249747826613370476337740346324745577775442141578209249987945905388857051396059326099890335643028294938322539063866079376928171551594842068568968404165104525731726190875494034112443376033817182640656502624192644809310360575829403698467442687191600939259345936877130634194176060599098414433317965689169272126562443603352697738221297788835646667032747116407988230285693717397521384362511838201493290118367865943330755573310650230231452572900531037409010328332771095090208004760668819154372476115539930537850887291274215325011335947784583159810548642261226037691041961969127715746762507767036814689154929512952908426401023323092365725956978799990840788752174917385229154557826285260723169633433111309720039135077136282704028860578308978537591760228261366114884983693916701333431604653987755374208464496162535163756440660135027723499875103317922780439783737440319884032902788823454814671040507437250171047479211652049752651042547099344299219702172851876201939403952043757267460791434920056419451809890850834558120081567663972665191231739744028460723563669685380652207003905974232514187938495446497999755534748661618238221190665186479049006152662650916997457626271621142062132923153366098604932266409919257989074029719819155529253897714225162533859237795542117269363131894036155134176475980733302861175571705040256736629477889727774592954303565347331080756631329861598016912410059175175698139372623508531414621133861398968346402504714853632993136423995956751123259794276820105886142944942137447732937531164933019852616878388238001231962930209429443393404906039361873251056371190133094955269051561946342313139325175433548743427883808569409658120757048447227457762333371036613065445883407307601623861483658388998979533907454219809010916201447065808463367158356424457311278102916540296648187319806643512111133460886138401840939805198153629759600588164639282994263623531172408050414840221471854220051340390860871866690679247902160523604047160828150048192862938309811575693622001582324165307382204410545753855128044501927112224496519056728392222851873980510275207508718471587675834428704060201726299737331995110176523623552400515380836070577047205665731749925240846138401985829618537162718008380355555967111745757730704623142715874972905574704181568533061202062404403067836093682250209570260684330723059243709189019363067957800461600842841935999792057516666669930000662918261414139322182865017428193161330800385588687435226988969722719930397057268204727626096628709372216320806253782324421009861245130801147025709690726468071026408189846947476411849150436612487746216691119414774013686602247322842653833862180036546338394657135084750906120034905175587350050296006860548143467007799163519439965826844135524208741435270048240216840751740459089679152701992330657622073216786611117671451228543116707932745962819052143116866417818018556819538272201800461417985709686835648458644202285327393440916565148304715156974698764653268174398455236290870828867194472994874520066314542927201416947073968480498040876649613240810014935478818443219131488869844538620984735973521885644013814594457848146433970021464066311579405379147433985822078861143808761708958505366875994503353392272843185558338653469943562755008693704336109426575287578399197377685780689446254604855280919586994095341048092428373858781349671214847451938173912701337452652678176775027918240023007589779352000589156068985244555709968035871366166322201038383111923989199201558640251800029480813811014432768592517046556831469318557726829260399322304419871407757330473068493383351694084873775137196687421995415219847079177824964077265286689153560811780660510665066117725027559867363124610740602184567935812462235416454693121778035229743921061064942458953700559753107678825533468394623252414108539062400237150583517970830955413201273902920922639773556854981365652079610552904510980334176607352959312830722547593841522863229047866527227537379023044895082813214089137327874945528041246780204975753871336999391224363942331149546947446086409697924357191241285080447035889628193250832542108643929925255539273816341483713353175678703100685067484230134906165852220061501530437559098805112523748573516687014354389557305864748080944138231098608351445037752559512593506325360907062850990777869594820531071119773138080325212594339074613735669573539870686034746315258004262012358578258613628127524940439438916935867076568302567153921895819985803148727002766503613708872545023420537573030665418652636608800343504156549019781724048356173815311455415178092300052908349339363410175981786556382388212726679745576966475109636055594312449808912096748972669213214726403386169294354567185297750581540636857131927688185421975019381491309796076311163910247188597169192858070981485524362249532220961932560749290755977945081500233398534339281140881483661213138734637913420036774220822480134207602107621594367797937069713069254688927553287745279000324975168602150982434288669309986596789300985229815840823112808261987181688279756830541712775237688245949803024881311927288747563590147713554407779016265423052431906908485691611602693750111319991580874806198302209008577178793709265122376424007133667758528926686694253315658261738490210263758446628183272638246379512230403055538664183057413424753053879786414637930771542847675138396382620308672193449730624558697962730773830514355203640204892396993535167076460615197316875265948183971597370790986491464270782275779944547860655644931170284002243715393379318408649621026315695273285760042711304693548537797224478756922698372711219367394397049421794599423533917707063775227936435973206347159365828508888395223341040167779248344282023484532261912122635593366176521607883255083334468224924553084253189601881142659262659327608107376215304533522079551800221364475400232469908922962180418531039597215386670907725892475122968728810717694205555009143788013032461634057744722317809118870969491298198844183698930358116602536482546815867461361154170111059696920947901282920205981533841878496183624432323248763395747755455851082733601293475936444700762194073887607507836936716165849493799233484747806944597163652146770639325158664655439488889236018959726632181404338803642198173951612251777985967168384803888629788272351834228286663280225265489644751779260270599697933481449451516012973150954295080319308525805256668502616216208453758322922805089881457527824779987068503438954614903660519366330568067110277436578304813361532327103437457832137191878943018235964147991537902376487775435426598249446622034015133494064040226630604942567637129826325164164393949822365702779523232672385055290664191175320746160185616377883598621539197109992523584310507778881294985229565926404348918271011882910737890315056220612174390767696078658742293589693044203414269261482391291191544643888773959219941819665922428714359516832834206188085277325706773137895801612592363614090015728306417289512913766923529927692502917418506273895843876340417388286482582463866387792080215856438609837927895428331115438265218945946487862156662260227084794271254970688556588292507687218264090317411368589407806721153911575974910547051380700799567439804472763262967851783733559084047049897278288435136382056572413284286372398339682631796984521220084033996382822669579943577817677985358976475739644618447321022784712486955996975241553133994892494084671020504573035711381545882298043902207292130577904668838554941736667107104581720713582949623293458713335901211238203184252229445828759366789379514989902873940526236250091260245052787698128814101034800495292190573980327018341217311360777156343399703603569991071825902052496157467676489727382576429122054510339258018581610477183722449418951499778165695989504239197610297181934525563610286881991412628053144716884765882216812734912375125886228985587118116903359494829600194642677334857974781738580893459011002996320910374972869523247731976637179704805143604817410776726671221053990793691788612400002236245014252313588425658375889520110551791455852541907171499752880141656169235010454520639481258346155528906976829306577275919072920237105916977890192593684524825740467836743305270779384072696279582475564150679747254542528096809049827900736124789810948249375479154349970346758154426296908060307080403553350282062515328107223456855261396496504580650898484416012928434087462662448486162350728459236362528187415795072894757963916525217334459144981852090983824545575889062297027875177979087655600280432404620059102460387590571813813934449068684819819569483200847505309570767798292889090367716294798537821851595460148388147605352343194800396147003381623742123282906959432723130006048835067021718073587134073165330298403705795181884529691580315046333034689511000734376790243200081521504256404988582951371469031837301215690296584976554870777670158639685594911168068195335693212811834587236685704032099664750001694360854625080151125327984410537017001889025792043136876091007166226471815212006856968554020938783888418421584706598265047723054649885152939353308179250929093177065808477433265281467790043858818963853113190206353059456835501878714448075570725284933724807518851074230541225467081497915981788291068442252125847812764297619732870515817044771866391150925973809883626096296932200371705971665950728594948772301302524817650731562343948934479284053414930811636577652525000032144949681429199130507265933245602851338123948798443022528376722659895525150303013793646117951634909853862009258763664792675809443556736370697349864360529851931445959972883596601783370424703898200771401560228476276347922760422783686477134870224384976881472371794433821660620072610986310286461588083930715572752149637883779610783112840328521729927450537504975897962799720107650675093467009243858803252816072501575977845220510565895143032911574922286801250910933014864437389330983331446712997198651055008435197287523301242587226361081828013188050864882476121836947632531398296136415903640939065078721037166687292675551806024878519499560816722310544186565293289502321092821720113345612671693375917415978243173517868259100167384170210661837263474005490802088067294327674367302857608841130705607870827523001332669631195946050670153264772672875883287701063281449224643366071186802263602026006529595189756896926325078720773246688989593657362919793421895076340703233313882502403440203095303873789176504201805254436614131999230950933837224663286118275573018245876125452934162912980871886194483540572835087101018231675825486526975442896927656102528765956972561648720031640588802014939293118341940863137342385419075425560373661813818240202738974956292414981929936245201993491608216414634015768435805932616361241382969881718545835272377139301468285033451358832725311849124566670542580557817283485520328699213419924355282359108473118813774138440917447946898750031220011026844233660773159297667085112806735267052132270059575704796236439706802736525405433109518568928249605216946232253342626497287084040279377888488054255589063802754146235253446143015002701437726719183979814658650005003178078059723697351763573276166690930483902028736691405237234070142414668529339705404936556019306980986378851913795830347439587176213121507658912933457684127415188046741989925606830723258515196480215596930764360970993821074146762556836130555831568554197974592118631429852283646950526203880993818876608467959606469124529163442112997979537840537487940962489914538100992011447862292272799049731896354012246746045669139803796729587915054232242839939999437981931595196871761689125372649524556329478760308302392990731574674378671415814669125659890438889330519200137237239206015973304687739908870856258159145233828011593477864633433016230164423310361450022152298854608340709312446403688436115976827181044301153697662110287648572407181515811075675275335976332735089699021751392640389874145420906242257450313584305274698150563548746976649008720036353421767606294543124949519120447189696962792238494800760404375571558009852833909973025804624234152383255974236098209663191320339683734823698457872576666209196173694624836670605806935693589278031941015317266299756696024161104151196670054505293699173704372836392129463112928625620596978662906260630183639480621883547302972381303811041503302825668219433195567341718244638338035658604455959047632012121287965350345987746406316712126594946266650667128498696466891522406924015120791872524982536533111817609528846522760638465279468851421504514428857454707326962155512067602470925810576402170763985312160047639217212302080065802307092747956998645299157419437399969498465962315218739276556373305598805888701454683246047242998002876602933203443161355744949255357334807168977475395633634181084186108815507542922673387520108177086483779378008929248594694079487185134891798745972435082090197208066187782429783076534883927440183703793032912178092696951419983957310992268990300637723834438423803127788509201359622885363659512564103115863854757246416626816970278403816668643586482155414099840928689234961534468425768744323541723478822042884072750746105263292796838161718216121845617883747883207668168079941867565198013434725947544530526379377995275503385579877506672710929880579456434494470796043653720524559237198387501211944105617031591106796338472465592311807738361821389728812965535080072213505970330683608799433909434218309404063625483210880233560793783636796725256115204921939295949531136441115400625274239243499862322736846159018763648360113166703270234162157738027031174526531093861706298368803494570222076151209950917160666560394706170476797042316449180245385115981839017980672838022889240305893264176307474982603775824416828482081414017354988435307811794810116771515856948353774009171027224624024512502599823308954238956857095953982313998137985375286574337457992739406581603213335399063121084372231922506531715002983984419080263148323131763754176345385683844814740539303203124996174757953090278147765045887095798760152694200923543116104581642362183852542572841356948585892780412704225275918765581490640381673707101241056159527727617027308006565307951668209253732579699619734216534166516299184261819536960697632502298821634454279593196427018395560625949356157682524562326169605539391829279349196236282491867869297047201017708913883579332465117667665455754477222728615881236451267100969125794726747822856443359877813909506401380149407227064217550564712945058806091597949374671889654488264894676027199883700131459728426731627967126828259029082854895449733096457876332741605401211774679133459981642992708476613472551905415018038953186871007247072778817148536158152553743253762699714251412881020951711680194724701467615329806478710464121659637992931418071068340541438195630060737046323573519105713792788118030304846112336521677044843449168242792689870691863079847266019743375073545594172067552303004250915629439519521106568825601240551204367690929327677655286566071493147943062401532463300405249007853839107488096725968550987609187366965753605154551455347191234260935576450350903907611233614181457683541847643777092596013692107824180058257839125743715860554474493388420592266454766810403408704285367758480295493323607665216693398591853028102875083098080122900650127562606519892590513289527218948819579336550197185268328558780846250366591729203800042398368049916952398648326939171754366763255547032254596541926607628825319828266411027783663629500686640451639899141910821865588787607664659335312641819285247576891595045373094236771526317898952608288850570167841364494114536865115633896063587556943286714627516568632981018340498173784558455565202174506452112525715517106640461783548680126806620306613674576700204182840204647788560248248870329261186726368859249441990947014090386384666709498758134336305701633212686034875833621724523510724775465122625476081391546394518860559142114169875551987073987899457199620487882126963405509720458133220657225270942618463049771886774969843960118507906143156055524608055440537567576777181045101506670757733575374460478866811137913343638252960937178109854793622540282107185066877743535982896633719978961048365221464378537579211854124400719604941354961676341852150348041866874780980627436258175066411136994351870299662643864171968482477007550684719079181050860641921467326898487255106579981916010454717057781767584802720635286984359292688912297871986655511450484813773571945324343144752890130849712637725276281653833995798645912873577748625996016039653847434105428170937127151428632911749752874062655442395476462306203576254206733684550685106865628419522944087621849929482268723423120331377101749919670905797609075957107821761346122425994011365826316427406204410746067587322690667306270185434305799674430016705870408092524861963899500303810300277688971690641925279604725203684608388441153620000441065924677900562327194952169172222167898892361649413030197442667481365281607194860460174681940078827459571334760010064328937169015071170879439490227794688933931923246062592823703384537232362007245838626499923007137704809427451264042584207898215474396252261368863971548353427192211258814186699769006234297967483141378896578785000139061215729319526037015100836097348456147884406251434165941205599240788491949568194156326909523461091359821007328020173960058625195048903414307497675607635640606581678006969211240916385138909956691214326836118857195118136679199215944628232502564447235265423017700376558453112113653199980665162820775699551007157809126068186777226223386147670822532290577631936195101092300763290979528108967713263414958332594209209900985617231456606767530863203345666423050653427248131641611333369337708391240092824487047328117165694108831311309441778630657326733341879422157736831308044347340283019003001798005530028209984426720979453463371774040745468981717975943048459714588365877225263827960955574847155714215396707994981802970405117145142568137877540002194743861850371862537259304599377185162828649695187462707828056249712124147377376801518764893101814901099856060447158705182350470580120862092255583375031281743311813936468137597968640107375318272317878662515634675854983541423160578665954208416194316097276331426005267297267162216808665075402462690197617990842916699089138945982205464974844146962341105114956034594418502391399230201999526560836731294863964044461812033291637196018855720116552985855660769105139003176771233965952032731635040052346770809174318692659133494093515800045184722608528712956739907661685616995765089401110379919928389815063720273273884054141530358013281174960832107401891005284652913839792524395089263702895421802797056963258851732602807932623165468450609304248393342274491987278975265934824732044755751598818740762295779322433733806616105706330565565844765005346627802722809023763798044756572467974428535626445744155760390958717338624222036330759022895204704108936117154515917109209809436662454820641187152933531599690511319687068478019726517847350353720282878893574252484872774428910952517339643336861428347632959960419882279241638843403613613839938330958930770362174457041166094019331656308579187766154716891862714604289908356839992199524141797139641242194089356130664681070476236426577210781152344098699072509765067295860710204292494349927659661559521060569038890154391327767729305725595065950333568251839861799391479567552069417279590326429149444602905725124267965148437797904817353824869446547103241101215484265618316702523999649026743617020472032072148632532927915363781865103714334650988542682967950484533996165125266141135015892511058951089644554178079813578585099919899228522217273255497671428134826901423172829823821869817392171728400831308345727426304507436477655929517717315121054818157540016354834864764896305272576413697713418153922374246028254805559074710325417591534866977866403482164174418005333184869223949252712893602959341057990741229063532340211260617594891702639019400992205908739403751620724897546790467977776149941235969871757325823910371189813186285105783654443708163808397277401438752899398565743931766893802755166164442161061848306804788497180950371014797546557142896893089731303166211376671155613391345488347788297366038557971596060235968018475091302373442617026945028481390115577627166229232252666475882879162675024211897184726948273051608618402872232523242068232145966768898437054742035081244723515134939459205270824787482652881718693449973292141902693237236979761105069060860324273634016530513349341502648182295880981106995544439057508511987953169324995833832915046023669912259734208232827995944385349805141110890011400599988484698298599951309367033833408138283916418577460348474636957466967300843869141438790633615183697192571392415613436465924254611342768761703485339976927387473664293460200866662055231617441766247497990985041147339862309207814137597061940266761567379488298993041637687561302094327299126441576711548500970412693693839794532125667504077231070753482390158110308942647845364878114207796597062387632036986316710559391233755334363605255844849142984918044711564019560828658534410487245989623639573653918637286626492932974410387181797128577929460891911573165922755819671834452707503707521222012979642893818061043835708190753895405221301265714734331559430023240596643427485382318225749700417666257632971773977600018809018797385354986109595536729596102394585670432214341482090027228507059538143573386531307727465663313129826477085007184464817074910326959314553242765464101402781915306391725648173543698584201679395453031616078772211032188531888207358926583874663290030409598040534543301575003933873109852571735077027525712322918639368755429896521280488064470774621137972746141837158879075167909698233645023749995746923598775934994848906987821465101693008509773426179592453172120248504799310812123109356551772926657842330158279270865867886392600981986962882767459056375479012665820303763380228370970173538136739374278107015566977738002354034715448142228689025727497008481672470684236513488442315380855843216983250644610598043721991684828443281412730734134959733250151425520791125531508734547505201938918532195649377022380221711524936560829397173605185388336002904887905168748721684248413628487268017878753571077385013319445442643315491701901591209092314376573600126518077005456095072696351744798348446883858928138196792471644447183028605987382361582927246156507546561099442378619623068441775192533091042291716585773464006142744355381120868113293487365368906700407610957866655740987058884232961566171897884244288120763700640758190088084585643241662847285972798165751997964824700975720321078979916431158111271417684703633733485037273614272233766168586798796885779912887717236160424699211128910266637786056252934049907611015784375309172709739510377883182599492415062394581211528194410565840601048027091643786716560307414656361963610979163140539427968043610104070352372352573002781508275550621434604479738152153428578252039673997225063818084596781807945355636048501300859595937736434406145377390115802626688728451469342879990192355476728766255928634813007510009912119247143246369641011659614134661060701289168571279382482730576795960000705094967025333875084082987644358775165852927615468895097671992995875311862510535154301828763210421474746411342540104339632957678820696059521355702457525948151854519287503733913581443056670460174634852732800096006224316023043009022267477091639931719523559281056972903546936264647379097271292022763213864040320245995552578308640275913853427005660681888500667475164453106014412963909920218825148193457291330356407880946915024447022623340993128102625116536898326737965646381368118460861487691328669481050184199381837519793314513349924971931486389572244257300007518100901913174741111453409859172107720541880790336367233237056715858870583405741186935961659323223699568147253426897294832269110820254929001062243409125288138186123115360749495106687798265603894356774221163515403913428595955635756983654858875602273335941506232101373174433784585640340083287127283088062635523821529202604472098295329883890422221595984320138573306008002316149917358945322292550980825433252977650546148344962080144121984817361200979172128384739083164921744893314608013083566573769118699113368890141668355167310391578718996105806791114378490438245123460717936670545713742077181789859414926830584026570980332456844411473883709784500671983790566890342391820533481580510586023853915143062718043572220951107191125365933898395892707428428234609775059801720996151441587493307328379238744476957003341555445795193473274153700705550481363483533507866791109040215794134633030841711890621548049893992454184885596228940100484834396418802536329293768129062463803389152989971798632744068643040732386741716052523634068453464586943162330491421853635338931208573342090802670135413853627408454196060152627734289312916713293062281277237293755485305522103542952024578280688505253337888331213952944618297695526651774869617226066449874558055738719868811208100416409199362693571346491582858815680503769680045973557730073627388578938277349860801948822529728618666807507486372886454547599321130292807190961199324839986910582107655879583734887215467477109877871995716184888832862496348309363501081639784538330090380325452216690470634682212551776989331681711113885710371171085609581342425445941293085064735054585158330414717004095249014289594134779792056349982491714487022539703510556335041794790035722599861591038886084362870568551337584212543211289169486115338654325214119334246685473226052157595991670622785012298626319453962324908809027552815446797343852277792862390108273894070951668638523707081895396974410037641485228953644323079089035943084689608956680210739205601388084172466263052190593833988746756430860940343133442027260032124384997776660528194224421703926261999164770677766508157478178066484713400245711145418239817466629773256124459440518659467768569890513959117130167943562696147108258538403680450482729703844341664520006911558760359703531874647409698005517117638509851790637884279149630268146722976559868057287219071616999090211972648377985679391935299666515234110391640819033539215526858580384374663251888182925101372788816068832424625907107958031094762330919438030067725331920786791647041102374879289579448818341565434408257213317717008371756410450999960772968630490836781010071573022860490609317619818687509008990412252871585989093341252702112415019281455876503151895265954720247786803851216531438766504245186323867870753579920746566459046592154596616110441548405924011299716255955442536542980010537045150269609322120074500180837861190076255325323228253399065834605742980270518282643434044802358500024246921531143007480038520267659024512112629922516875271623307798313287237665763153702528917949515129867151750826993040133299727814088658889559634754136139952007067847324901947893335532325164789134802891241580163957421680254771882386922026381716972483890783111119418840881377028100951841452947960882554245758835931510337200932397662010041420546674628742764694845448725399698413477192269717539264114968769395856202077101461928710148208594970676542084397794602349446798587742010995929525693268350476392095092188063741730162846532418317371432256827533654914819927649230932847362097236717027710403038652373375360264500641578338925996386433601579044882171950910509910158092007561111545252097202231205354792651907295586215907086331026888999587214981486494870788790543557612356782514473118391398489356943623171231981525422753539110117184315440126571137779273356436206281716039658457673863636180734842324940313632901216705018973954047526422336251403817009819071423095139278378498662398791505473907952886697643811837347911737806705577544754754025591705948827295805621549797651131871743776087186661913986990031637427897933189918608367084332994267846419126973725160127351502296758039029939739122795158729227567774676848404361460137896518495010600208519853770837513062172007804579284280056906985969370139178928831193972831749176135123571236458278391871552948975056070444870176505185371175672463245536879555853581342301133278287389467197020794989501210301908737551702812178981588305673491381519957132384924435071594641279279508622649263592037212609816899005487309155372267239031247819112700200048863832151297475175230696335915867634582504876571643785743037619507300048255767524055217980183413282425815069394950743074947025409591207494789492938872730719319424440937794262379400095979130344258498961772967230240605037011296461758501417432652580302017607106192776918377431363865726768226651597206342235524848037518387369986770519866369301316588034369237793991254609157850929204486640805206390370454981880879601375776929912269421323679269990084409410108212733713565254790448464778645677298617196574064150587700284512258661048932001793081083445783429232159498613666336954775042348181738788059158556331264484899148624650832909093477615928424133821911968509821620757557058208060064308750509683675471580374802200010191688900998279075433852104112783698238086928478940123309345581293861151619477653947127568282806890970133071320384414532345678954649658839565977563967982512285979241945468075432712198652512224497116011868910362207398536811385095319996909691461160461388088468902918227931058145277033924638168427011048514765210577614120011888855175932816580313149890663840068524632606327056122045044656817860458718845596079107589070422046234971530836839664864285109875236815045095988460532804260686760148504887220596427491130522625812441238567936991080754725653725107051920837765659244277095349284862953834965881244348311958864948415784542062934122376727802885023047747799236926920228535406150466807420606761070694408037080224626269360858068706500887957452352306494000410779441463529751776329145986281982076141467769390682258589299714712901060022362147511644236614173212160119648953163110442918592943152702495370406376233870689669694588673063007249050747828325011414392585392853830485393674544694087950231833309759945543898740964645494029651466872938441350907046287292028021468264863650108764861102724554534929188323472542919082068138435302783189834836314762690797892360934441576618237714761615861481291759694689604889152215949942833896632032699000559240702457738125823550218380869681830484370804422625811172781300217249917965450192467486968513418473963341901176665170844013332769866273748752886957956336979255563421988322216346413274266952876096848254054817708173690439354722059105731784284702830552930649022520762873520066633309589188996017158745513388421921020196396261977189804173993243665937119206014757620605595616418025625650883412613637403055584164955636557178033857444225271050640901694725163555809901653854309189325669791520090243866658947789459540177827615277745188036723576748090184622949135606804203930294270190241006049097853364129780442073004785053975644233922228184963920961030279142469997807879848839557153974903238472299049438617396200109568990264969599664571293093800027590374236242562776598030216477308290413932924213828687774517176110941584064702345510105251211777457061008484586027589386019989059473071864272124510975013192193707851808322494711286059160037953451864060577586002611560993100631430328297921595586509861923903401252663488584491448907912480756993023414740430045396272350956035140303285678154926426857110133806542071197507726778836869762838547469866149656376181439376117679029672810965181454876645815968834221497018947492104640941750066758778569881231653877585726441209126342581393030888701356163365617055945245333664421307643140311257809950444250546132095600096319687431968312486694950437665062500320241835377700275881582379530529271663879705411635254672003674162688883442951773548744005695602789160518954227007669674403364339307817688543020765954156038040117038273930964178362406127704459983492250002543821987907690650510450748553405340310622946422169087288319709404688027284556079513126006058077536120215812327778105093245835736316703219103927118772141469334748789430053684297227983898122788079023401880469475296220938585328338112612297232116341772254506392710606391388229557289387574944706598196699049749869407420187695379427334781663678477019132523728045610776508972732131057338959524184844285351175226431795585045689403773426049948968850871062130317297601308101784168820624647745124538608307962792859109927462291225307323842357490506754897147926724891892012995835055458174422031134782207252077927198445598971586114430382010749525002473622260210701349161822549325941951622039052062449649872235343468909667932899926487618031109230467243972067716052542275118980482009479142297933531487792767025515116903646478596820023375151786929979506782839217195073048741713222881507010126842131071028829469309134345722959745450554925549266771034248411464008588211951597614845186590107028291807084900070212457488673979443004869554717581387402887517108261116241397443720506722801865731943291996711999229197546929547054165685859479517626774249669525309781088003054571530298962341370629644641043464602339673300176237348532522987761469215962772655026379949879303907967731936647063196532731254415073030855228410746883760712443640480229301601947745858537797628990777364711661836433071633950714011552107950384770834486684241067552027550901072682214486665262709383765703514391408146117447738108774837559377618344828252904405106642814151730173870951285841421937068996957400633641136219274153612841837609750989779547457944110795890410530548388255599629065455038793678180831870330942621128130535363065546873398407789112068834036999500166072836400662180021278882167515516331287340943436515539993268398407881621359677233362711224954762458818638044867085424680161555160185636929660351395018685448307228083446178094695369212967557213279775433166812088802913116407626901420322510574191613985682594440047843159498093240014255395810285476892921369999961792946317034385836583697409777614650172724458466474770792018319988436495077394500985266977459293898966980598599034989044895050189185066945492008945874106553457014387057513873077004330050507633522676545570448289107528544407729411917876696266871234399327033014694746406945544910032544083909452310798196679540397892550516678104575077525339327996384748368204723439243273476227872593087512755073376512067325056636436983790112972310564611424008976819574757011486618068649088345642065946563396328108993640500828512023622058040035459662478321467983216673707907575208487785552214659849803761553375732750240256508579781192592828039694928602293013074536802950895762349047505736407913623074887326249415662912983520835676427564618729986255269461117337714892257989436066384041104388719009138567844971192605239760848823868875047844297586592557246987152434688841991896358460888261588138259103222522797093889494649045630270339936775232088568008672402264372878544008771571769329145521879188319859391774062147092568375439316271902473002682712290442746293547726360128842647544181680918522708571713802508071141773975885522228924545212184282893886368132423671575318867262588825896301143325306481041111321926078357835915014914105067112790656902109676578672657880101686617883858605863358946991044837593865376130049675861893659669835549037238722594030427178730507901281490579429478563481531593149912921452269548405562063421637228726499514339243814987141934894672074589002269832462735767213482362206814975090989814141674254971752547484331507190126538601539056356336202170914337393689146507450476617251532702239042707875477629110918603216811055356932731408272660674955798385980759594415611923844712165264545812126950607200425351408175101138953546728146399363752069386210877690960022403395406131410219854073460329971743749161352804490638094732162973617439072659033234692604559751356057232654212981245302950020273990012145137706007546180858385931640748382365953942725896348301222711550952183648316554891616351362007509074919624448858779934593515027136521104262793998387968864471886960083800069276640891208931843989308346308218741875832419764282793285978344367139551239042052280459107259449696888421144391600765465728094521972300579086043079021779119936004157352953084508434480506535243918744886907436031829558605115935602358411687887068128791223069315549711154003605533964013289181201153535760045243913718371464619045519865818981514519802448461507149446425135164594001931787305210669030771748855893732277319046717523466484302625909664455149575276935572173803666054645834045252757999202661337997034950052337525562087340992988325634836656743636353914558228386264353989809932941106291829720702058780487362908185254270050478546661526612484766434730832009408373595801275762490488208758630671420744550698175864328886527491819805160699687715577181098013440764061307878943601732502082577253293557090770088750780290023286529872577616391413340411972730730671110688861619815387619437443597887393584473966643304296712470426306898510827719135372797763757750274314798695536320127528084594587628894130278946948974991814473289738401518873053230793283354586775601654027013410267439203131838875387753177379580900830021138834598672185550450882511836096262309745811262625163939861867774803555111208601912197208511243854548316618715267733882767009151357198516638926005403550080354689292546141364205583060669247022813495520769242600188280113394577534632486589267959561916496135978335936609448855803977612423131225621288907406103391031010345049988037370360676213430824640710302899192965005858443380010616021410221419619986594061837224507004109476191585261146472588218820350366207302062915505771730316895312145905572429506476751214736196526827129085771952040886409640488274939074465168829817086207674988811278040105216382611608323385916989427077095620951324940127252035105434743273219564556386043044528647228879187330600166482951816290713494746695408333165199993404346839536894162601080273574095196897030239848992452719605396987508325899300775688104305161744907579528472254886907449600961477525060905278819671491900287251315975100101438695102291960281997311360166484394072169109482066564893239145863002373383044854650296010302651874382546319695109400391574775913983501736658371713351565369793385141026934907481980812962009336462783817778445171424087559613643723460743800792517414301331958395151550992752274449359914737613790674921284851953508165397364639103539182134522003607281267864555723866781603223230264925124243077827146653527145856406051739706061489179639897863227872751909259516077454126166718199075627423371210814807187077461911484936882604696106633249318916714095063484168848525444645155658164227564486343231545305274086742085849020082834963607341739822687396299452306454944426429046545358414426460443925011899433206354245896404754217325722677737549960467648845374419244489613043307577792242295837709354590349899702771104378760856309149214672816433807026094291373192085472615096723442938472743135445981438007145351725331289908640730133844977046645058081981363169713410472090210359305102815332425965558846258943177261721139050450092023612322360078728240074332272830352903118488457666887321992821513776961044117940833366345876120910086789692957433652918523032719175140271582113681207252708299568080153299808938913173759116308175084322809338863908739822865927415448435378114281082450004632967458490873424125699341383596510447528531041024142392991924801619541608997159543667467707708319743533123413181830773872479922146226266660142338138137830496429304394202373076477106288088395729040238832276805860057111293227177706775687924319163205716080193975091253984288160744240191144083446793747394930818699080139144458057936849352412177898946579833437244379571228056427453939530399430138387361360089867376693457556446874332530325529059427753950528112883898960303494681094074563111524946572447896265938565379123079447019759514682322683515621486091117001740282421069646409666609951202301925763643021741834679818776098199908955756014940798178836111895905658046633265582926955227653997966197553849616085433088648367526699363337514019345003187676677862348446491412338201976926344603407550819569784554614188194538926728353755738786614585652814031386353663959436169714784191966818536438898264370705829185523650337637428750140141878894702961876854446114514272249946641869272564068536740059805615502514971015005866239641182148571722254298805463917753260759767403569145099826051651231697477096836662606854293514677863992613960499483478266042309439811422523003910997178412831959422115749498718655448232750396761189095130425029170236123504923363808227281571558397607535279667222331941248538898397693095515457506919645174165309935342649443927274285610845449303693247441849018685604272771635928126772320824823213282418597613052130299854712073831245469749027845540650172399557998625382536906635511597793421875371994608109430446974982108757608944543186842459167816535831662327836700433126573333419448278027049634348915389807152242036340389997094096887739111005032677640390524878768843530449576051431979298084094881227908002255737544316376337230003131872383366979571298471782671526882510748215926766499715279088654342315260767299950408902445585999931265851105524807905765746990612941656698630144279358944845924611589222958555204154376053488728346837049513078781529510187509086056186436374904322770475226048199892947597659387539161683952583710199805119241797239623772042206068825803186033185007245902177474502847228085584867711158080171311301298759031493206671070233028149047208491846617785718110557841199412338660167614461582238117059795241469975900516716214314085103903895745685838143605174652600763015960982983470033719949681299481289998534656637082695277719207386047717629060588405333963774387839056820074173423185219263150835489028908629392043241240730022456353684311492965853113349506748573114932090459631176049366775107568893071129683908121858289173798560631381269017867146503102488641891303983383744659881581584333536059197341907814809705195436459258018050581129889771871547040840825502331514730091662692605303031869660858274097003806966376347841608078962973259363898637308564510991061789384618098600199634049188767811577400054777894397412633311671563956766526065072458226344479208335577847419338426477922157224317944543725586894656966589352971721551381682740813093620023026020870945412188741547711361897348459200678419084191526904890840820868976134158843176905440708643832222126322211336198755270732575310522177396122301137156742224916949264323382126340762105958861819301285931141421708744649341980188649916185221149358281221928262465914099827889424452461043470540543700535319624313601545566360917251693924169950065527195810126760387103602215266900891027877028174087668259317305714476740210713060436741357087175717936846582635537576192313731173415694062341754373495203526090932195330812457334624384002588558464731448904532314162239941869369774219295712575701673479438050887011092770024201657400591680842049837476204172775844897510938649119754075574011003937410513370336461724364558809928199871477945185492861495345278928438526718415402404870671744464268884803182439659664084171419568724822831526872523425926210031716697484174946167430067940215703015111030979302759366413727010841871174725764748521480296449546149229289485254427054454466799031496844051895060626133279912398184985584103581447078927223359792978028909630069642304438194431788108225214997418987913323794774317609275153591267405489555914804746348046015113242791133480724113046603825790991908133406375868620755587441382265794130641692587635896452352705479213460265508748130695808273196860191602629433379519746142709345658198382504928410812022788919217842614103487646508079998622462890385567394971397028755350669846795535125785683042263205887026123718870592928387060747263100086305077995542333185167810138915565402956771408851881028477063369077034576965411731957601205632490542908552238497393201456328989938403628408137927469814550462465846101625616882122184725074863611948911039232779593267488158223628536660414501102584314922848717051028049126054781445639820329590117064345154452033913247325112604199160795448626239710540168445508991912036567851113252181463744794566665359687671357316782269056664569806941028412208629767046770657920499998891074145247503008473978134205542115358733260605138145772690812475628847375836447515772434368910214108567560249946018595017197975128086809768878123823661692312418280546892207755395995065980326008436456472090222488112641691606283742206658887784967150666573561123743623521791982943015525189082661154292573473223335347588818974145024525968505584255207740057872517159159321796132480270464423785359232285064884451174594428818118626341437725316436464816576120155434852835443023089755070177805178814078410180582432878046791480880854685854314570668343842301461861477598234744292863417501504464783222265988729919988168233088982386890541008051005459849377590353104592263679998197762676408988404172160649715311691111877135908686630806961085528221725268335863601042902732377929960481778501436159829874707909574218910468403542847831300548094462928190352420256720898084311319309272618618383945789610405495322819068877006463001461632302771509697958407239243750221229241951898804670418880769271194770222866302977548792993700988929060854193231022229143900857025285824321334786417785519934804722465102533783196460167175917885853451074504365442150442675861808566798794330176278739013374811146181546544057662265166717463119068568541779937898216698687794116660462440836336666858920328185780755451951168036632450873199438983743703872704899100539978927013408627253602008143101911175172783128611038290785036328567795092100858537160092183918410203502389698222471291309147455040507563236024653802221103319891725982462243350158414558152788267804343758419961265905667116107847329542072551589290599645005859151468668447659709054462184532262182310547362366141138919240496564821030084749760289563517688775268942132152021466739004127052581093815538325115355634028370308707177604553836356818302789291212705463915205240937633179576225630584365642215731665528313924144108746269503892650589302685726939124735484314196668541908797345507433841859813379312411858185376734340874200214983627300581048072101235582109766603847932647009400255574579744653878599964027720569447033178036651916417606580776894032664482036007369851941679842018725657225371309629291672468645035368603632683372557440350250160072923704934285767533854836955692816425006807808144705603691163070587811464841038854705469256865720431389209066697796022384853335059878771050022623718228307305823536502253962709501906673472486760353197486698272085606497595283951790718193194828860534995160666348751292329493650642869498778203566975695870867585952526988128984888558006332108216478075176765023753408040181152240146215298248958445393814392177287913136824108650994803590342087429344458151387953729975264508513086009179902734769886986274119157108946713776314880752225683300873149316354170571721351164311957240018017469021650639714903068262771341652160836698660313902722143241641353975655979075102417936605667745723331550301879905116249908432146144024376208197804744084201636314652768050571448998035280965198055068415334579393395144788488273570112317843073725465652150191998035202910708539601140613522001931479406361188208824891815432154394523235268510435749501968332835487065465313489857271018364888849518651160296143432973585168042539133769564549065949119952288124212953603113286900412587707272591264096485923505003551234335040759919011624501762307188959354779369002876269871036055803380831150152954721604239028214659263738604918750665905653550990941170503786745936256386188498746208081579765956501661838444126947345894761731333004720608520481561195295042797965956092911848380986800087667684765002639445244520060898876171678349712323158133188013511716703335017694521185004626699471512342701138365683385058551024035379163777584381610755158636549739720906290038421914744927276051249702638519780656075901650106561285661963643430666377021287799589689105396360797501607109573736196380645526546103526389550932283024141754892190498218156354400600598621489447107098552183233951241392346103045827609080484049273521146623222266623923804833580489690779444831939253742541098220996942901073569354083056871367323568603552095066306284844681275634367360233757603820013889397467868226447606448130022759165373647262726792177604927382671421149959670438446300138369356834043175804987388976162057165805010129935091014511134003429050951043278884854854121441342547467482976848479731188498800363816419060741770571928831847763017621737418820934623949467112770307716236545092797947270650312619127799707171518968413647738816897932786128924460693219035067255668957782969252997915166044625957337456286984377166752750897154641568256440010331811101046868715012059872240284573685639676761949487277986356631775441395568321861187424938095769918454811240914876445157122690252877571776401402613912117021573176612608135638782703252155040934614264532354391491351697668316353804605180825133806331166021340935871337016706005668022018728052284985085749017377975022799131404971051722781925492647842601564279323791125549399351186013438883084509029159171200368031964620250192615379498764624716662388527782998301462172138785319621162470607349917361994048022065042959094038622238135308100255030295034479778573311270735574037758371728329847456164021747302077613296777296997494034895479060608460446285423247711818105055961159529351216682840670514853241008741754787955412004747000195428025394828699371063416485389207839170326250540795088696632905686917612306873444581052260378800621303669767830907246039512682737863569230638707836190157347381947029058735660047131426091480419106205261828419942474939296279510591254101783458095385943147237006730140537180382296406659607528796656696044556391882085139365330307831545500132643495276563930371973011820282057064416993680616516295630877216505650923433470972226544514313141867019979699285309307025717030255121134529059753528772294393737544116810713971904001171184752587260237560902511096057925323267650622281956420789544045911087304927466006110051702814470809299075235960868346284045728857117438438348149896355028486352324852239224237585700878911231572996685463363327247350066617902937444877428856086894549959559485446287851628276069549453688973066756764887976826953226411007856164105917541747611741108135339065648994139042241376238676875617484471104553868318155580314832613621748281918210579567483904281826921504037532028385836380087314671650392818592795126111856902399091026712948738239116797081366660266736307690218981035683175104288148557469159146720101185927471004305382204300481115714048671658728984488313263426653390337942551127934939277715332235687663535755744198102765439960534188964653871163957257893496455740937282231534999976696333890753789106550453666335943402597293566027364009048809622415525481520333988061890595532921683901655864082361307998146130346823033085168881310256943488610958199015965748028507833095450854056355518299912615554321018891519861453012612402866465013564148724855618799726907880059690320908155121747040646320726992962776281073871989493255415680073248869229613427834542111272369527167023932955419222344150709214608155653449909958413080823572211593956804023140208608251385584664702091345048212178244937787384660590015229698006616987970325177095555268418307884713034359055296972313484156644808173703195382631902707918013780984716288676443282639708393370524171244223721598164537969742687158692807545901945025834752189650779595445006620669288174300947931482396317392004052014026886234814999224196868136499383654979954415532957433311759413316906875323620437849945511068087778648609044717493547298041499889364376182377931305727017504332639520213283355015726804456220438622140572490942326006014654682196122674484907840006301659995986820555850379581162476249071679712832360105388094358328374987634330568008590625163699268855007192906870270782297367321489341577417312044465059019573427812097266010651716450901253468147243444107382447812600947395328938243519720945731326429351629549778755273562152847671570492492954629989752577109123032043351582520723759016202496045922649758327883903351858537671414783502332893542953511055897841942073158591657315875532280415858281181613098522517995229335033980284481319192648945227319551595244086704198878460262446678022185493941282965543063141158234850959306305064017113491829442017145558244453178087540120393626285616858833656883441122024625372828836258001270901689495207689792174889045486020873393838317943742898687457927614076794472899993188824639671257676645796686066425749614534968886138412403928959748629737087478965475086267862111731014680819064483270206332835342131444498126917285813108963826585872308268091506906251103021841329596664582190081647436856140266653688969901273512247017476527541859746800521787270247161261923367340734945600110875664789418198605596611228782836371008666437358851508181673035483798183656512485345804908935150305992814407155171845857766315628668039716428383687110973250248217363665042995711389764123560787069203493131844247053409618089412471945999944617383006313755192307120914399486513891740226218717679410719843736720582401497100665725712537871781768228560249865244032144639678790294220928406132076116900016254929231543507505041186883435875364422650701408300543085947156381112901149924523280192060879451065419731289707971468098126675433981833861270972758201060624993477013424227435074839137404673065245114041878041919149717521373955804242709496831077647443699178622955324223711665002889619712974285706715755828238905053158849892569937830311496323957832182306186261545811079426642636561527345130423501422319538699158078675941661826285218815292968638683148676224244425834120062820526254448985298019801356219164569968418737114235314242213659851023002280827359825853112185871659411842648490469037412682548169082782992174111579710575481091433308160563159181851323055014311280834771065255442139518719529313045303184615501056359496555780730618407488844738179813006008223505513321625259373878195280495114847160111932764763037485949735226975897959725950169073992851434736523554244013002234460327733402373789302729732030364842391832070255652428695941545142209519437090506520018249185314716804812958917044834690607671941079315758920542474261955335909356666424412382518426169312667155824606740389168115092033271200747691857854693090108340773554876541630810279077686088074412277637569783215016667820452769704096093364567074281925312607087087549751911137256790167603907982877083045781986351424322464441659025815410060914215802291203106723305460743586733956499571647197371174299747779277429085518073917043037546153813715686328674281749193040328176635400525178147718418014701303921440080013125198915565935055953279993822254680374401193538182695814411073789530391356095998154395200222374080212328455621237637362133000353449953165294056940674706341319698114800672512933946264144111676704304879544128129946409569518996031823140803079974198218424498677026109222674665606331204936079187319103593766434557528164308934675843020839874661186921763560921841572321019914843126201710630341007376985396464430048367074182254194750443110809213389613263732382651833114322094036781849633487468887933003212473855671049968308095377421146354790665952383103043106504885547963319563805308051894795751205707555651624998465895312401553673036268590434406896604691437458758160878686931242859321820715032524062524951366534595706885922274115445721839365250496838539433392174438028863433411830369794300721867998766706576866087376675300325359292300374405193463933859279954058862105620513392737993191742158083407153390819384622877442541512510568505600938951665327593314261476427666929811220414167344455251107829542540014180995129346293018118021538134769035321842227087669995773873936254273528074888522613221107505473326384247546633714002051774418360376269675475623903481934970050648959604277079909398168245728683612137941114347707438647237825657191704843017139328521138847784057557841158637818503768842362655877909450542280984909537116981787291287893630549566728813437515157812880330846409291435258900952201896867671468898950955703016960861036967091782531755148295963104017587988049409152652066846603582649088124092606203937109586817147839016163049147294377135111108397830368316155963801165924365336645699721914709618445403897908446844023250651274312153892840574849020951916237943268360724537189140432938982665226677154052672495178241500562894181331121375463551550087680266619084641418422632401160328250799624581159692084623982625907273145720760441728470349210004793688000010628845936644508868456617272322402965305905057628818948037902555620865312620407520551153423664089523332728956769593397362397923679926251351085249350873731924369222540530162588950900737338217178126336719973799549670083120109114051948813078093128383471147407691584253227967827864849149086384539789302735935384282826802485599787398584211749018259200774124540496087647465660531098747837069592119241486820645737846731047111601992698106285891674898417544910462257328252701120209640217689662948642202320779205454747312613296062011715788030025552327001357987923827060483256908530541462895239762706512735854586809131979731680257016235352082447560796033761777454218215719603403495452116558299242601570564673598052946277244262168998213649972060343778681330618139621595022318500122732674019088242176994060192891089452243810493555425175816377639303270431799609168239683722506967927020590084793764681930083252237182926272477428292627612137109732196826427901782996542536735476993207923575326732449951433769649599614540186348866293112025044230037502590510744420056787584529130568100792224902606244396578289146237481468694085307167233122873750319959980182840109147725627261302329445273327737137904297562287653282255792622064295190592451379653746424120003482697355986622318120504021512824655850056730737357961179128616742914835494905705872062140147942994232508405503704992085902592901009527398143580433708506134913019848938542795600934902784943734964217661622951009378458990662210763876053410223920210154742374791293566345453988761672846252298532615467230589242850003859660849070556861063026240600666899089112546576825260538844751491561055405093621346172765731250426339884128787090771185938833399298116707832024751600741640210726034009846586574215721358665547810719383147338275731710869599759414292959446070860491303542052635438013155664859309673418938442805287712615330904928220554260944452428836580014155937803740481026364719540440995620311818886747838881347371205058015288071733955763667103979436964121460219543393716588140095559789463211429276593804582411681682493212411306735836208080631074874132454579150136728783946216843038397162293503805917190953216082503385583076477630189996596525451758386826150158354298730736802922017960187815486435840943283173060142838090262180629115401311950845494271792308642001160830195467008449976767420486759431775039448159005111008110859979400875147232581208877876608734417668424183388909681476535942393840478780450734402861183141551590523562872934826766023247644779114976163130545735875486138840088762063048157329903793126138402876142270425024254119496075099046994594497141908721559217462127881306690728113086855072413661454809355259214561656126675028027658686665859780627400543346245034334870086693576835553093800937490687441333593302941458805027373650017899204250762396074330089996226910321059693197993975871529224580027155006195452880184493397319482815661435124294123606765086320447309053987934840674995303458266972503526581344440391495447770316521668218241407230620636873870792316154336780398408303632465803911634333246534560590522294040564940440251576633839983307211364497103613450557786913758716523338002823784093565877220641210475982404845931207056245668066914005067839986827733375817597346443799800511032450494889629708113187542538502039069373767391045373233272267535186971814967639117744651754951611518580819826047102564726477730177174807720753547866892747984071566018493730805130828612268094761918636203260470697105255244442536755936502718655185167048513441010454534933301632602568740816249913255665155730723156482820987414001860149340881588250133195864271878123608865451577026360518550892558655912986275989145511418285026228063442753847601828467593857697704110967374270382021788391199573353313859304819115350023253587386178347017926265887944761928672257364136697947343660209070026333566214628452724613090705264715278168212118608813747518120017076459216850262423405450152763720847981643767785101213766743716980651668288531670307471821791285294681151439753756688929342690649929161972336196754028721992369320290816118911684941939146694070664654401689044608140031671787524673466775504776528210537097896588381167960520062948628542325578998704663713715010952843053665809813058733682258966216008696220616564057207051491971992303406360038877017317825505363057077685926262545213435673652674537225804363196488031099205178914769468244951306708710128140840787883595102782580265163091006106525782314476879092314535076207169395812786685594012050362313100033686087797532002136028481959822959306608578874059981567050223153614872040333500322373235579827728744434454296397240271085103288317978833675688549995265633934495938021414046059501685050055542517483295819643364008981839952039942106406781799268584175998151165642772492887876433457880198288465603239550378912844565485741905510550590507575124388972382002529179093336273603259022117947836598323477604685249361525515906885784181126309951891252648697419311749644637805332187200711153935979685955849433053479439429518043774395233270301597447037792684481176612018771048628739938733142611774790288670427077744079345869606716693445974776499507921578266780116577307369862894432684389893459873938296881911181295063737308010453893371174892575220060495840555824513948559895386353847342240451571441380503795556130038115661217516311826508016553901515697281850125307885825415118894081541696512731610023151592728991760814268162155086900305639472799391900325222480570240850324958728240026008824596753007390396162634740559012055427939496333922934842794290723335717538146338059080331725193431489065487223206424684826465151690782064606516328354675691647908249626929883876995551718070223756841547427453508862781632059532792925002675764693034978414252247439924626368798056967730477863668359429200456292431629014782808478008012280407482498199084114873338936962828216436352698823925111392557959686117391519141179415841813430027941716333414156547609761117286326017931488475691551804961396319483567189727654764625612553454270040645084293911173645751052052601507654533805194944956210322536957532987727831895106180107332010741059638537446309320663886044202947967834670133560297859347166543873298982875904510339879554053044201039619640316080044583595831214581484258525349469044273402234261274316205693994903456824590497025569450835457429168249117579065160334519409664483136621098779263683100101193103748731514492476917949367758065102646191922550273963054799725245755840883339133020075946308591550581108209961145072287667417997337730231973583199154814356263302024398990884156734259596275408573549831138508256131346853664895807272497737443863370452841213437762361917257101515027058542307380483917230381248985715605072457722263955691631631042486703087657054948872222947796379234559674131413281883251211978595304019733237496494349221756472723052307668994525700412140513084038168997412754661010426671436701238659139122990976897032249341963234922055203634304666758350336532039019067559850391310192595183280947038750148063737096835758659376050513301742505977494267830962607545446992089237320444020209151468950746870907960982783379143413071177324619259711245993940994676915765240956752130577724651983634220033045872177223273207101160715614632262843730610877163803270058316900258186411559517856282919500119394240624024450612239156470068536442004937444313820034695506419884151930475308722496160796456203172635909588215065498703844891376979773852165358984800697415041099981343949109078798418647365518335282542899618329784702832956191877169704123399478298697510120852531576757949006823638978603551613985352682022945672606362859037460329856761056030495907225955180603958888777825374880200647471762566984412379205746704292525674238345076427876015794679479938332781145974360235894505371781847367755705192460566250782838895813911067508462788330557973394361373838893815788635885932217267803055506167932698530546450721187566597258688782386554731935145799136416810556648105738286587287319959792764037441552699112542291900457828015608347244871295554695837237968487531700588515951470569616413733565023623328251600393413221214061897794676488728088857199862210456200767837123943304243558377721605435214295719958071609996663676148655931010139768847768161132338372148594217356393638729771815859756197025463262493741899955229224983402728312382954127676503616983601681620006906557852241602525593278637199978517512218066613837563441252797441543804239773655417801527926592799706458488363039208251847258461992710712252583509366194312552812894331455615055528954951920317367936907984810068725447032957176366716095242326179374737753982057846212060958736549300980404631740410034499739968589469723677733229713777537308521488215760162360131054627026683731056701936425050785800347834692687485770534245498660337071406647136227636755771670009837203114107160645910961487482577298919737674828064277821249675507739073021280597635616430277667040448851299411809651062585519230020822280951754012464076890792041130470692041264700897245889150662103184900919708636386688890321400574521007113066451814338490567679595096667616426777973333502164883954902048955915770924426566103805974678335303803440931456372832619951535114208770435881134379621839754214440953626189141402975753538197469270639058241879418106833821182832071188923403936147307179367925001791218437526436126193661546512584471211440700243814227398999719574473214381273463145523816943945991937875264469608037056945117052627804314320613476115525495681148558608650046165273182488853116401381595619221794865893378053317339157554632306118207356368690111678599260015424753723230328363256885709004504368506401284397468403375525705863666867653931547387389454866828225698591492788167017511169138111697687586873762585118328265628078678352676706459199455329719560612118770021107735332511380928832379803100815086010147021811857349024786762907830509530918089540502712903022868284305720896793977390304242704288453333254290399586123891388301992635972134350755259424348952205517447374910914186381551412877300330202036565418843700920859598515736080847537974635213823572610512642355655329727033068313283825272239952908679470654025599537325050752132254059927834305419229532676903066305210774768631186820301610031347451098138952382135586680202106528988472908829481857361682858156120947293991314138704906963299886515016461872906259875371522823980720144050695843691923424154877733238685924582723680195457037128001904350649396786004279663793784899294451141435702608799003633669649450535623603582140376766175733751709933785477273047602766412385145967649375790729647546851364135586987399322587715475274407728931203103359354613035217940122573645672722338183394084486800436664430886794870086026985341173165445162032474530291321053641822158002686194838322838436195416900268646470396058989179466716042566803923061617079648370850023573408578702656386055055556646768154576879592577822113230219878910934363457231465379318635965318224094305099378963538528274879973098814567504828622329903994008530007662251438463043965451589546519583564111737074695472758782059381348511265255460929583661657753160962894860500508222276979634308124287752727826057128824106730123708319354746828883333727133309560054158972377755144576164226752719147918738544503841433602250634155022681591937457439787421190188710361527555427604555245547115638139814214131726737646990002921984327581387556195162768927132275779245944880238580023428628549500306052500269164203548929158472654287775310772895963053629463210891004904527206057352786814672597456790213429468951319080518145349228579373971974883536702771799449671629183522342309433658301093078408877218483823668758104758022613929517781977330837197592035279386508899278935176426905897473843075057108611807366656394435808337981217758135954618199201417101514112753972971657696326596060969826500170855322288240321343848775397056427942041617620258446171336888477836700066905464090490272159363147148329911091337900110334753073160984567325289888163987038049307600904719021473422772252722659653556894076024394653456719608370709848852102777633074615663287802562873392705861616510132595758824961894602222634695409609700849924092813242961748293152479500880723681375174064968733411731287992256032395077346030897780803015884072835923406354823882187196162450299882821473211116854737621730615333285154334772355577289315252577669908382823933907056783815590409467280050776157267734957674835050816213027872504788601078142401061191856039350971159225927013896327374219635314397995459961691064525363450960366516351365019647370810071069104511448375201975457550329064900206821086951883238439958791482427566447432802656082172637066115254808500839858117993837062572624205005318720892036741725629625888588975552138383267182289265578257485739439019040852605991085542522015374648833273107887970471071883267159842875121135722434516917143969221091066704844208601833830474125919634907614039416396856564769153941743203823120199372101777963991320763345597965670438431554007983616903513252980160624744398106794400967095140012243942223297911431132452307212878322474852645877935217275504324572283370988821463925138985902845867875546511038785331432851035720917754415477964862629413800075564603956754421845694654305174595693585329171331408460063805334004959121567366289573561970486891398940017760164027325816478505576356518533979169162623801005542988596490381222860490792365579498503758359633087756463761814622640864918115207914046198791917739385750637946216295011122392866357346187944302367362189519862392543799857416349027684662528919660777531649773407804843258078490518068703246699999262347738395912434527765408858897697743360513069170183215514792070853256796326699446444990961769268255945136869929664055458710152484670304517288104157251938503759091197030898138700448542742328471073305894298771272641563519018407205672819654612311399773844507602295332219734537841872803326979039050214146183926501832198589336744455497405516590511234737994032297461902511082778029796191224651443277796377879278111310146178463728751734628892154725023235790607944206310237347911462776436271873778779076488833803587520774323332993452432775300948751196574030565165444857115722637111614102828697848064183667817741399758805184608100683481711295633572156427323113036363031715978069631165053705371022788097663412489984632381248647261475445042693830930883645849570523732064831260479526488943909161715349545018686608190224612809212272908684201512863264307458370470377216002139357131625984836123779420006116586323579638806781882765800692008693803019770149969970112652577661623852729461846452460792920869295137797534404672019700220900081765523129795786409717189082293670117646860401949060545873565380454493779263536049011815773986699323319216487989809009404230541309145348695562256164825714827934096240283825284820393080270292327251648689964093630234571155190461797755470947178352771657331244024348657570440769107586482771222662989485159397895664663621016486134123108698194002810405143090856953135061050613427561573942341015067341200043083060779085661332768590709976035011189907048024456524510320665135969256019728075025451438799006316728941694418239177493931037615850889225356340950397546915613186280167927680311325461950298568761986551160063448116809113528142154453001433512225735180954157372962207526682559458836066296224026172620006546125144791253515954246500616606760334154992386060574787614654855689366713911790782902057819632668196658799786510808288918583065228460707716305662680995705198475272568162911134170430333436065071669105386524270756581952258700111610493662283626053632471189961487627592356164303764165763347855632985872310824390511860428618270390721809642066438444036652955972796697049701871861951811684269286379991488184584519667590677201221580187740805616229950616400887059282891585936151972903538134226600110505131344493210153894059133602419115647404705922530673243800381134479000953785435191708180289701940159776451475756036470610615630884176293318940713190752905955310686890757498538015144465939816042935048950708735492282531176616364087677190200002516931568717004912750261374193362636982157738980147611865051101497826500365264257678942775234918472041699789789264963697269038177269758056749375429188515542829429474084744628941541276885987094741816733833124236820003118687965876300666734976678400968884258473804140299589502554315192987530959234742656734111605161653140176593751939905219183993430335064112554584745450419305718053915928855630716639228050020728761802801369135385493361967437934265595410923632245122725682782345530851153391840395957639342884016071147755857047821043267759236981249974947872517711918353606817170361305848460066727712353585203865888135289949731062035780537672459211433115562157277238690024040835473793529830542265015949956395518269875540932979222386452179108117476850587531818466500381881443001849324983873327345099833541650015808413277996039549249046968710318020291623973019466156871425722668338782264013254254236970195991206934372676959395653886400871703346929173084833415755042426771391478361269885753157357101596632386103911973860142588377597153894550371641553712550235110676965320762491759001632430264116444445396623003208270698609253282232208270636264322577596145444849646931582838734222712094303328387133707644807739385024588767590779619598966737037841915404362730258835861309065291539228074832238036879674281680080549850014653029902336220599552139685320854758680362628539095726489684189610506706050786050803970278429451722915639160625709739220990830708471736776922701126074084257757282367280732329033835819083712801884830760073610850845294666752051075098773717092596268036387955737294748182400590307981579457233982876008734023859179465523178955269501371427207338129575960179528247792071560073152116973770776265564260648802163310230421591541392862452995288754077426846894902511009455978584963780339494374241526547830962838278042291973948654634526700447251538234326369959740624024053352039583315925336319670136692559928176834146752583998484340009677618887310414513035173948735026945534818625462931750484874215740437290051256543241302003285357688888108984786546652746044877183172894360404489264679186746261032957139870366733656645592783974446130077668709646550591591449832178489310497897366153509998535428014129601790198011441742008272993580499084811424364162838117309991451790470244929948802459694707810876743622210323906367600120142435014826376447764730600794295191566779148808950523807952969550287558292526445559769658924855221965287037696816744827488203598744198598451843659708914671872164506216609370568929072327980951769661621422463856986943401331708659003630690152182277528127969792429326928537052512820928139554461331550392373479876466196188122417566935372969652825361142100907443327027381568418850137316469180039458912489733138279596966476334356629795253452079211451570181644779328044357130063678039602612872407988955735380874990593493904762631546943540669440019103552399350803147283455371136654361073894689644503801580187321999678309443821322028538793726478520649833151418743248215434099833174996980637609022272408917053236329560300483125678618512712061319919741550199538843502027635321087144061668607599805572809714660965444383996449072354823518444421671553501268212532880298057637366540434383969571692977353219661525473105174777434031558860333966432395500716854727704903217058625735601078113124881528793927527982079406529810196083570200428947721965680247219115808512637086479498180513749278184705220517955502323631477372845203085306787346204535895105276526711640075962370252393459204628961207681514574068679437116428708095654989835367331263653931401401349480241842268113639484300570289464887048376193326017453458459817400155078434589701564571333553045897364585979338688292642244620841695717865382818433833809773859813520775167394471938155889038578185625702897246902218090611692598124053746873141208827923089337611753510152382533104732667060626372921763964433363474214251687639393109890048407361746251089597235101318648662829952693013736519360994064258293052582312380535461118468529228921214055629047072003305148229511509323656986715736936287113828977268647027171760221261888791728991619163044406181118019077691821179764491211503165834550298341721183569231718813943240064714320396612975829306625367435308783630653370130881285490910912121813445617953150363497354449935933859242685268876958555181079153293283955911257015975846210364920524272915387204893405944448116586750761003375131019868810209530913357556000223148149871673392655998391995024722983898769643722348215605019444468984410273307754818619080757469756499070645005399534343056734611217322441882283791678727497070468824670988119757631409256509007881510361688066544627799104687986128105210330574299504845293769743809855399165509360621232070444047680110903022113900345117934614908903523933384431486547122661260274342020879371141326853022429449550784977069267546099761814177040013850858413840973661344295081473775632438214669893827586623103174647104573073169681430855040896139248193794105868413209095769674933533176343849313186360513228271780785148359139444752524746167017564257841187358165181594872006823486539516678194592385804850079265522234871362794233016019062159463594189823384567929824617107547009051164078123615177070460186035643791666915564225804509839108369679079336631144888896528740214959720654545830271337688830390864407077982135622875216741515966265368314962735093017869725038912323700694531769734127860839085994639208989188828819972190170953614654350085792454294802132197571655428685726473290166359600287541220799448587290190540160994414677484810155901683430657965455220445563247242455868302987530546577365920170073735353083341190519173843508830492861907757813820721032713145073238654493565056956654209296963997661605613702967013631038011788977959493974522320263091770897188668533180618268787711075573501832535780272209077671887060966472006324652442507715845067448999236428167613588733813270411263728365119499454744710516220517456791110881352288165343861209992006803253048744508124582975056328746417379969315278234673781196370768268630279326511209369548529445500364494531434185238034761668003668733206888435435089004421583870612898052418333923461196841921055553576686653593665188945073355573418784323879712661581223418337475167244501605379469317536253014339927624531118292288221132146175436039720117925122916747339265311927776281999270946608341609973717209243575044492536329669455224335673099998496649151019688155698405497619186883323703174089874204861073279196076695099927805870967559356460259843187185342245265022334656656040864877656925943919797268170213476657383946703565587925288913016553115886108603349479256214463929291193632324773955520204250866387430436317644283126714005439755150471536516624889828701816570676510262963221344312880437365311328497659783562686153268440300519408601702226587482131906276248327302308186531293883642580159116300420496507669563611562863006186039555574874334238881770531095708780757521451268399266140181643384221818505564454865392882155700732943862329730074741772591891865227853399555757645393303311558843305400873273788984092240873459262105928426754970531027418219397543422767236620657257760640088661090363855609393494476706106893806785993594991132282283206961600598754669032068437934932125099205655161637714044664560664990558387810404407941700597247427717492294626407867150918410815381830344846647293715869243077168550930297957052767222664803264011939852286542019347127003791313598941910808430511004902486236530435038919880046524278131487603509403005041508655529690085595250617354296087018727736028210207748122135344979102423032723322385732668995284082911188020191743648841954025585187039256945979659936282356152143492756535810154558432545540201612118518033179376840879736622190957866030874565431241356529890316377880653442005580887950016033435197615579978565798307155349313559329781434756785661523384792379275989803022540013187693963622432673539230917685532067861590527486333872448584681002159169400986507786430029199675078237591673422000698784689899853785158617889449892351565121151402973119913441123018790789653606174467289513643487057821781205958530786568406111167754092215081674328893639102193642765128374354142779167802497908390900137686886001824241118824924436171626934741161432540445974309427597922901066603207592849363960634392574396287579056382477652497655896137238289185003398889629204818782769638892024377095984891800103140527585577999244368424733371243013172899665921944371345294917448502801298500359748501487837781849081419408008206331096368251833537045652345609739402204658898762172294491946959658791495560410401771111046175359742838024875734841337434758004774911255323254129844747417934592502781361065928454364390321858977555154575917415812211321188163715966237674283270500604668473568174929653436345454374292448729860521900561135827356207541307362880369901515049490434591776535938954828142002584839394710206417102949879550843401717508297737927059734532375915884465552423856416858902954850768491868216810149955927691343242925728559600947527244300199012166458334919208329176670143717259852375333377753521715364458470084407586530479741889388842466665278884805953480535451182157950305551565138167966554829552137188967755619966132718033572166821542473525658346039557948140994927122972426136448947470260475780003898635705300963538235585584851130740797189063055282496007529431647549610691039862179465937707058966345410465407064352829068321853627199198074920858527144047060767299924200733132418908625979089037111373076119085104183289022951622528178385349220819706163555984210120387356483643808819014894253832893547986646721961543076681297362070214027334042271224812032263001222588630046441860002683633047743128003254493230970633736644289326425909790498646233031807953910344453050885432710775582457669004154307058509146694015907372261378684124192224587530967909351020895979609383544878928372538156136172728498319670861585264031474153204467717595656004782317288083677206898585870185275279115642151595283777587626256452018731134248794718169392299421874667546988690114301606374460103795378918244558635428222976997274156892180970077842022071007132938366642603639552293543181264247665469614069420281837929687043991493394704324985158626084541971023183448792835540844495167069232638479211460958339491977099977773106708146042214571558361551389238120668391011659961781550908740267667936972456540923833305861912127771257709503304253094689655648058207801978006143104717986297963186854944861416517785253729875642449778933018976049322572495560272144161933835745799088902488313028326050940084740978670231411137849199698292508897946325275820302161917967740178968147553558317070385487655974555406647500151838059094966753335333534451467700829493515633063160388366174752562530705555088695584311271972838357116581249838103030799513108140936023808788144421072165915935243607730813382545519297620641297653218656908748752001357071971173701293189400915153177476626684600024496430871732147262619252964095263473428083292535088025617772374513657654592500861025308576973102817680689004050250455630432596610632591901170689773304032953943740368345302147112738346011593975747805706088957853333150489008717742570669902845394632000904323445672288846714826435383653396922241080684173228557854817704521431956996330605864873919129199440618752723263024294447411273739345939234922032414698181868897927283835266392080500160795473476603722648949815138199767222383412950583366628123059763094599816182444517822397731185744044997123792561136551147474074397918496228022846120766369237006713165978409383667626555586907292373517440690616128325918779546348261265021877761436583009606135415694649289594418169293870497283646241549367883661195690246796673994987642890073437458266047924598515591264321928007356824790868170479172069795664567168691473804886503230380590207012647786938760469074092606902004672532727432335780476312316023313405191640860692450502179943092882909151912174957314094427688551178019852399067152824680751356053674006706420755608310711666431707081872681186124205748703894807420965066412456164868263568999375067066765175997861336867774235882198084854212884657666330535070006838141125805310536460512293854346281230130906289457980694731541770235261060651664420160308944146670551603397634186033595556230799819690336403815465007101387030609937728735198525827191066979374339316455764615060023998158515501189684748348288760890280828027088378858070833843168604356649613915106036792841439484621940008797419317895523533231752665214926564207149765598800555557032678646792012750236157818346093727237124505608560178183900045023418799245883733680782080208775760545837905175089635989985063612142718157294518021080535451321178971618268668227189721173497219073330041880978766219834777210452768750369825328753286944321783812469423222301737498816351704506412798952902078718231774452268260060329841043514834358403324230544028341229800376997814261405366733874259058800460849872527185833729869371623340397672653173692188606898673048825697937400521272714627316968608555392647630002054404999818712090995267483637993241453339201190571987825182335044274850193185728994324586851130969773101194767828224463250664989979871953431495390076107583774413229099164696274429472533808394080967560529626512291021750948720331286815797195697244328096229828798133990334304305161800282494891279016079559176199436790227740365755569359105176371501325143679539617333595769595639560643619267842551208767794044523560041883647869201807094149726977099381577505529610131737921699462104028990047605621896659607170624669785097128992927907823196115627073910259442499476657033661286395555383128322657634036689887915888385464936457452352190741531530014485908635518391228224173109734704601899900076811419556033012066978508649398871446973447322376540477645365705406576954863175464574807117435565901461999727638053075774105509244719181075489494877506809601526728919481291737158364233464963828386925876437997705928708666959524250548789210007644590263804139903946536137251663082253511919704017949918380477577046986604300755275639390297354661432169925165294331065836656415118809392945880882627623111179078537384323921019558613862707989006403883158252126110834574765808916401126547984172080988419289624287440598050974513698376879948619401482233684690419792782736943916536209047333102496027827397225548792172255539218725086251704504677841202462356034847262166994212496190604260164997406743818349662775193777662171872675996393572389015394403659560198111953181394025195613677281063645038838415068610877368991088581407923657500197854575717264985288329638651690161236543048021001906327424806841739084457820258584693089684570483636763725295887413346995723461894027974187546147896627096997720962412807240529424710103073906240814464623995246293439046701540016014248850635641532020142979414519776079526227999338401551613319929403765618298722082562183849472856200261986659372212577408314487877491858375177888422123948819240771622667403014176920410890790547164679262135380534210180092361463069924081272177434045073221982431767653911973649721653224254378597367001174272133309753314684540006094753802468914367217122835829594796133933922218350481845982718765056374742049500211445350157923892655278659648024891969202836616629644057996704722925945256145290216344245474560134113569476024242177804660163756419659719425709231954816544197148567611467697818181848727653892392218356763434732904941047026277457427596026026578902651591114303444954796933747870135944284598914434112189343004627190581910585332342726014520027350464485923640133442287295391887500044416618472810941591903236489760551092558149041355183588380388514439943592149676802408001186597490631272618712193430565983128048228346817272533636625259460815303038176102022576044846321437102714028351255117234479201740906532797111796231050677062326601484159815346703288483627748372494599563400341286697344045233434433630129875258838264020844088873904253740630683865631960705147077759513482027334538885521968996295876642255973777396623672213182191395786887715049734634220950522753464262981752318085200014361458240835693507752591556222360309369417111394996638397334728936866392624914818951948464006638209781889280914317908888332854889993392895069587149262496719577240510674117286525612691675701852390140038692616012115223684163277373816823595943048849192813984002044644931413642796055819281249742676274468334009220514721826298278843020986933149088614813108761594193499293880100230658405505859187711214096931250436968524899245361349875307107576363199768590584739987825961222803826031946670247437029857637070251491573568921032306094158078012074801132457046702673014293997105130140071039674640418066594743040385997351641222799811576951309237467410494845125908956105761244143820808086590739230583776482762463405760782706865366824221426306283946014216943221159328225613111024114071992088038744104291014569286723032661542079798814441128082636334871450770458957855280415863484174040199835303321106024996253339416497853436794581016322980046624829070848011561786685933886769982970269707173013063463303537601821131033407627264244005812382733021942091741113445562893969349645723202677584958768378755952421525231459768151405883235346936365148010760491095837725042580237289997276497018715603029526137978939444251546598103460545378029893673111965159025830491987143787663927569166592362738532322808450359554760127530295689627238312372954249986782448901807878429505379265784464976979505919158184010139370279474156785796766612814945631987308899264476681143385480479146561135113796524908065797201250796515948381551510868805532596939798104630124305608747867608596107159394760543323826172738390073083418009763529561757824183504089469148223704970287293018786163642291331267897315519788954418900490650034243826914773498303592392256864677510802222996270199608957608895853919637031903864654942369557633722384808859080804518094653689277163066123980558841820229321495993170577043707990279981001763742959426606455673590493580620390863013676576859309497294002473272475334649310371702529610843171446335818169764031567817257122808641753576134109580440124584215019390080878226489523246853792432330922091059445137696314804989998289502548432153970544488052320357734041982997700286650298019022032865462931496093707733792226795074271966554138850224802110825043304708206931767741963391021200325306275799071611246681787388328139660412900642585624143330916038807394881815108806535900022214060899569402216734814665090792036467417511683771269930072215490858895309280146661135625279906366057058951993706200709964791128770915760722223792143244388688911426619978371117170123100778686405800458792950965863405506655994679665567434269157874767957141470827283924275086274457816362859556589062605200482824700387987027277175544680227655327428062814643175790286489815253111291963506593882785300783625735445172879689003230601800291304876178289324488783796538794887809554081808904809272537849469881843587864570195519883005381302063730504460844238274361136038998832412452666020195575699747865935035831986982483609025585746556736135056862762718835549410275131754775555782131045030613111643036528016061584183708252330196338815428519840056237573985963389140421319549171132913645334378891613978530465492597912241560828809789031097554961268777946150717201910862826316370421256363902198113716498650987577026918170808419729982848270890086891195353101337692586286055983185645519658548685430987653322695044778518688407828376734705770570824711453991589674921469118474578051838940461328734498235062829839827762280805786905299176586212566905117691947977412664643091414942979216934893929563976001617707623244891417265989047676252419418124560417591319149690169822669052525645977750856874557356761812968367660090365679191167843541102951595004263968779288626312777819181080887638629476107134737915912771848232140995852112920330149780166266185596617911231900287968870645393232492465648396981753183929688918443597062143528365565282386718891388921661330448739188451574579227435876256595744868466590020343832127349248421474197779476954313102699280077980104021423809022981812836146717726764700260155111656604707494819763677748795693705965621756548002203359430703655709806452222982432163213092699821008926433571127766072549660172999602062709379913329378104686258915722701973524589945720886674429142291296194987582311136403164087307891863636030756330127848179386960860271545462197878341075163406191562636880353765002439361842238793627053962529308136300157625855851221639295912936719935679708149693233233088951887227436716064665417798570077587247959742150475767052066688073308098569515590145174791165170893596188125264104509193084619782041921895532308580253160912094551398846239647453793624006536391940655826761149599147359035615115953049499256457683577633559279645673516871231961811019268786324132305849629395675029185532413731907677808799662760483068823502218035978347973967667179578410634048129256366773036186973438081736316713111845427156429449759472520589397936791158860921812236918526896977154751657387995764854060797209527321906365545565427574063666619376649723372195565773250228366970105311076844520686810632621849063521134196191352984849628081141130761512738579910654462633427149637000478682358210603785991420946298616084993876048654529386726592340291674843290919503846667169257130519831514822330964003755314673253812498461606745164927088364415549959463143554037550278981000033562924110482003188830567927561047024283934348233155507727697378818208488737986139347222139704042968107658495582852836583794527864643178068366452620017782229783711886994616659951021816534519504124369569919829924522012267931146394306985746929438876726448600833978504095135297964356795492720181654080177019771628401980697689781813612282903689130856480000279312906961977467462536672133045936210836673476005183171997477872646739002750671935298804537367745805809974047481522672662534134851090635040075060777251294447034844212678085042036703645824788492734950487793595868817643368388167330564154008826851512171068505071293110619431720845516783957664535073507977043462236776222678366218106216477965831363292929066359398964330632000453281220495070517430403135390027389126625431704275756492115110641529017307746191486980042220784434585862931680192311227507419047785672084123170967263801053399002394634217422800409569303988514168429201908001093236849006886700665284608910506903897200757127983924659362497048704994156469892330974762995569098447007010257646200681534285449961731546095194792909220434493357252647876573615340729188211963463092973099411984599528032407297470284407771806746875195297097733498444174183855055765256998845149372261047446071377384261089642592976908543162155974062931143379867146641719672851786630357915712538949287277469085275944136364796591794987183038483215237699566926627473117430744167496383365791763414132294784992997195950557818730043679313618766043371914520289683424081187171063313349342764073431346410924278949730841133839989868711327738318741851834777357545123898674940741027385707469054094434099228622240588034770215148149007445495382065407267449872362896091902803135708973267879193992617759288042542115105391204099629486724835918352356862539521162799075771015975165806997215594183361818543151722461932004818952811968778933911059013115711116027127720809505376206151454826175091261279049131404544247093159656556091309144955223884927571034046794848956054787213878963287342893800358822899372245610143001231164750052078484529887516256982005247141510916219845644639455507081926164924557179493531625443236103975283040515924579849805632376330288200469062871449943591240170245387103818442706192066938430563722855247169166618989567324215948042734887215661762441580008070531026790790110857892718383899172876325548473368482902393360101105875274828651147802782960558836937475135086458431266272144135470369879031684312083493751882761613471869558597248678988592293931095963340920261209690064253333799183713600681259888653053422746429359345652048655485681714473207956973291069684910144937855017581864421299345790739054347261412290004765386782459596476280876939749037491266516932083372522496486126026481132599274538992184177762253062072785350947096024440229106464612888568734268795283292676469269787824304857015623512636225307354565635674157372709775551696155723264683047307057612540906669080760663058129715851541248422768316634732611383653281168878141478652021007265655426528152144178849261223837808518496873049813811320734457262472008813350222222003161631819555440978231569753846016283079129657212214926709021406033632232849613674589742859181935518291381871032993605133786990626097437111299818457194274686461100174087052578639014861395295832933860093288163289045789386195189949852467965192883418041671734530080807445805824074146582652859404546306811022457634601551409682068027446838484891008039328623847204462460443680043885317629229968365078589233902201205771064565743252461423537861551607025027490637929609080396790855603872468114186341562682453833966586955433442088837327490111734858315483101996917828883005658762026461162879819157584321824960572632356863590169872791501929987877929799857814089049764213303351200823144952294959733530717561993601212446572889004177535005053272888713334725704105192359674839434349924625229285552937574870711235914909740358803548299657741514784744137760067053288363043885136350021856103245725241225940334077866059352742960542913431641442596158666894282367694793581100436153567430652880628835839258932559892859745340018745881754502636743497749752866412291908263881786016837012927238167453428768750511935479642759643392946759210793818907555485145901460767818071127177093013067523561150029928787018700932104377536591920321600565138475693723441537026659063171733025490240226249882873510789024878703479786332726329921670523781517737799537157557204109776590947579387703492477189227445567870642491365108412923678363918369609979757945054772347042572788411702123246587250516663043001578281488841855268157582739474101625364740608088422790805828058696347298904322312751424944553748583449848371685322447857607339957747870735886845239858639394931343435824056582375986827464614164627772187844592441244933722292102299927116580733727071514357419636129260994298153506848104621201929830276982391961488071020496231395904407284954519681369216346852311139669290726336209976921949847032510909910885293265710570445824176066810437357600148995765183742490462586430330134235238439792647795003410232256292740814853403121658282710188864226032309707638930636016558269263795059015102846543175540276090611866590739076309188638648334070910306864271838144265971934536094878974626201750075022073092322740206772261353091606175636172022285991423619265653441435455549647087529288240991574257939822387225663443918310787250193438488758938753894212167827465883742285524210880308561362972995816499349997353879808571554188904508796036126666215950193132715081600904034850358538835140388443883854961535645548092177618771180652282313548885998955613316292138240271405248973685920711557017402507995290197249224385610316398777152990736528218639654825753917078723873029147656680859415161116021667146911950558601074881632876505174583626721955186006442203075179490875679243411675654810999866525033347837441989217282372694724701315280479997188839475023265553486115769953751303797843837583143793084260129138805464705977801881427273265873635555216625767592146433414572490008901035294929144570353503440245096377315743483406814851474933382051476775447706285681347791756957567938173812671141925738068083567710960784543294098119570940547230100739584831746002075704504785935965452870741677018062802314011511933358323477530494457438339775196677320470235754889474463955643470101148625508785361071862975772949779472064603491535031612209284185882431317039709926396452299704346656812403874156709669046607203892153407228987188223911726486268445887225120399156607576762430072275429328394620670347517473468506233781275813695505149012072318033628656463616314968627383325867228627850146800429899840290124201212419189177232480446973704280171906438047283455506047866132453459800757425866224451698277946228959920476310730540169393474563838442256624324684682201165284325133675482166144155723589626383733211830954022532828484887630682472356395728474321159821574037224048169629269302742351100121409608966608619101602083724767410936497887316360278712927722161896146146596192870794931736478316829419862472616379906713922850355015162894878476111218896830061706176456615094177332793790509124980736991103162771231423554898296590718161739461251027704037481913994422551031999234541616348931726811895276603420825676858586460855498212931953396406016492386319870803037366985636525149349348712159819832217470217509253638896864631593009380111855153462524796205746041146983872724668288284871241558615501882470089041485800736887031864898162053840432325108786415129446595019660651296038263726539216989960051962896757786411145720409908792775567472596729993453344513177037154457456882163017076134517242987608034515460311642554169435520860586377968174008603601710029410678973318165954638554245219210753822736222297252870540118677744271437065817044925178892670698208382149993760290498558756185475574328522853645461420382671078656210458707561796883078510125570615340272408660621647436017419930566735973446622335301731703654803025654969018037437914532795339330612092828377008572826523046056194649505753123058988738096050241438168761680871695640181022567428191395619974461253568494399942951623311800977608144688407536000546204644490888648080573682073309887362933146488987247604916669688223800154501339700529837793730302232267485096034899468922525655843686568197201329283241310898501050704113112570974323542778177057981302452249830635423907283941918939988260649297118240862666295242481715402973589907123147409192716527103784298382542533390188432846012416681233215102534907222761221707735277275829645658111580612646838619147208447670324352168292311270886864515058976672768205209464788867765307311022398789900797490626576969725699887229503801292477778884963159497224053145132942146102905609067075117373303351429009123876561666099291015978639489931923714353607842581473798699926190749256283212715234370783627637009157830947714284538256310108301414456272439845609334319762372005907822812852454569711572937508636672076346030139627528414722900840092098873746308794840341235934618998209580218947545480702000866423143466413218721982477298475092660534329878035011962058837939055463984188365535411981461917715477314593376011144011659598885568155040260888220918364499603489807795385308804361252615802489438826089305239521241307663309565220758528387216121018527990858716955111645932250032800055541150905864305081824434344304619801758698865335616595596167758538426188744816126349932179291462271664350612365390817965761521391888035779797895841303362484324484119353982428997925658092012004552270164178914157751627921723691947749250430366376302262698102721309261377850087709938143599865837824301016847117339294703883229672714050884627382738943625987754096293991124480502874664576282444300042041172034754262439430629944078640165309558841084675656463083222115361031928892397617305231016294678814952090116687947259882456490026349573356062424323781090888679668208886358209188942123140698136688892412647007858430165699595143358409776720028114010512703581126717552342530966485246736552080160995860385111679181139655757930466692511453909527247829337224336588241171116336318500865807934328800985029724700851972375494042739188603646915641694316357305683220379315940263073715500761520109483804747273159319091347543436660893353797631669765844118442368262807537034838559062207075917525980240730684511564966943719843599490450263223975644196949135293431453144316204414310802852658707502494685100081719984717380885635492676483503495934178696822315380598524002214121177896464186697298942522968866750764523723545186393567896773641058158615736182561762277686558431798361689080649293652338813734882129045702250753888959736288928499976149543562662061051427966546098242193990356744099940122721617715855194196985542284361321757709905205715564441042071846627581432655636691962154107806645102694281369164850993016790058298140809937521063858181494141661103722699080855602234299014005956561224037161255580474132073745335186489299873814472683303418236563410779935223887991907765087560105989831440303914549642955132083148469634926249422565881046622427133681649143189157969630558633703102634961258909600136771734765113280928125268328672784471560115634572235629560507825426086212979172945052365015033924956468500618340684374081705060467492609665857587351631486445770509720339271935516598767393299468555998337257246402982171312549852305789988597931293282920360269041493523176881658525058280758141051512408202697494543290427057974221248953265755473038359493940606004519917590937756095617397885686900692858126886274213433511690936717778526610127397810865163762211571834112530807061621065468503153948858088796686186569038089508371755842367830305674724105787370957710272772916380318941183175457059723180734264830116095428206911748943898390284408827543414419967833248632407679646434573638221842179329884165727285579023016085945780256665376533553904789507613363498904285446207773908380110329591764598830485271115815534150309457607392491852793908835902026518112891810580669360056251885697428953961280512896986118740414309173792173660931706400042298095345427247259401274761009173960303303121597176027725477547736108540106064265802312118149855472219510571014031199304814758741665513079459497315592029907823124949394889273304535641825926625040059765577424092955518156131260785972672410274000426808552921527511565158363208942049289892267858199253937276163161852486763432535863488826329249589657981443227299929295016487431883956754674097748664622820681970065200466471066783778717087086102631363479856751080981702246206995377998014859366981150823746571677725579788569390032924970848910052639359333894859779991177090903579141819332789280820166253152455318131361875237508002654259911177169165187320148433569559970202187769942370121060518698833399735107043898546914270215345973142373979096594045632329630807330464388192219124923087359617789933090556269079894854155141388219953435557515920954034140857954109085483748322163766133165105029703815978635811675708067651259096134665187909971018780847146765990376849765229025735050194867937583515575786708594575978742530925713348989228712180278916000873632351702419986066919331465897832743656822846379547779463615815040013844961734070216556062772950044291892205355929145075663663168588991712695190373011556946290066416239985657959034228998990523410590037406600301846607954959979431349707482250642664406857904497897687168047945630507837491217529439347844300779060154673072816565542240440247033841362089984985746440857878787911246746160639766061548277369200303902835030367750188459882045044618383910995041690722945423385360791207265770663056190425069282470851215373898747472968535903212297495838628700393484158077255394137083374739643519475486876800062808542273023273075182994406280778248819200636566894941489954955390928669264737588981595279526315211801685054393472292555185325709483569214294009693718756856203033630426491371567794112886567355210605411351574332674752537310682460040908169463272318525528351746970901897030482889692809777775975315539342382146888187327071364529705924887397086337732846625282738866830531261141460045587649601456579176824247380929352667116861296273514011754059698510488796160315110520473144632848476713397270019825293632744626603320644890128938130651355213163960761585685499842620547395989436631936433685955937400968188655454541614401456785383755758653630777911225673022482465376876864829747332513330350862616988753221993100844836242453189820104541091109459866232568755454142667696092311829146351984163579794551958643622359148996248405106548188650128634932394584631414889011931090646009504099822444672560093088721015970162197991606300310046439468705898094966442749176527633198303577144482548497880577178935751437000445361370584433974116265369934232361715531859880167843440887117591320332304913644227305178920680975183780614613214749541149062712474417436985536310105077340199162584724064654167263125453494746307386652186177501084090325325548514303155580753255265552196112680646300088438401130394414458302344770321949151305169615789057897402210326828723040393579476507677551266796649510641244488925485815369975250956610335579163703722699269817288665788646687719635361610619015828089217015935973476739975554982894059648166635255280086254815427446194359006042010899762125676330085226913701433994525979502666353148573125458715764236722159717079682546742743615273331648178624119956691099096598179346823541194934755996793231586887716193943902775649547396562754589419169771906794284512471906635204871977756081358261738010081658076788619611331592796422359938001106718516381218033885639611794551880270616713856557805304029184437269157109625260021510865917426995340730070817961209776287562537037638034330462381948495156019585889226011615980297909223134212898251876401444065353674453687305372444452521386766927231381088989672668079969010768502243449977959550228583278344880661868469897289126641980676898250423902930891452957792196394539927692831446978949567264568119377967174808776385485383114527645978810462176618994602250404108613941864321308440491063925946606087738994499034574511816441824138893465186601756698209059821603690197382183480323491926931609931376954370005976338551963809432429304566278977914944181532004397171031801061615196013296736300592013921446310565779011966362118119690810413364867537422398007436500222125289594497461534413272757482558842360466566894555476477256779413420270437721698500494758432095112616545433780678039968055182981938036441129694000361539447586573666295785124120350191082369312979169985977349000679549216550703452069812812453668830748258833874859903750304564175299513851985763202933186114617447785093067979350538846684708321858036543571034140410953633011233470504482729779510944063107212983410837293990885024483670620378720810868498410943673659149096355756536774152186669133200432058526234693539367133289725315603896193204971639537592341150721499711360631829638818417348565209861327089765033591338907580797968093209318023619390602161078548139510344058862044987230336937740291178905625380515956739469729709022257083221876340140302425724077933792356095044158410953383310623651884283268949040815866667246162803167277496504753322719606162494071696557733872717111451668703277344816596469228526502178725880892895717933268839578685385528867159624073333941416848366927614409984400025540061538225234324605626410344202753704877208617965126222038505865935992999432996467903338301734209461952422159937857307312394157322255538686341564833919420451347117555224821267547601213633856808215547473313293006704824843681573969365871880313094370474919706889786691829099230093550214241651753662203012505922183668503887131894790819881311405203224467078717264734337206947317370741547256642220643347822592698827200737764429091473134007309712490965263617357621342031496066746349214878281877409230733423573479518247502960482747659663271910946402276849656746311643313497077990584758690887066653847910002621061744804007777561121927244404881083847464204292546385785255699864036166143130171290659851442726933165678057627489348031899231613165618968587162567068571570780068217351962214678392001448615597620547486857738352049981251726055973848128817396467585609056846020967408181740151072603133760440731711489170591673614553481376526073577605456519263398264162669026119123771091852973710520401286948981224250009765671893445908728185697154625069841092893960707089726920591139034866608392093827901119787772993469881734596669742162438390995795723571583646984785129367556646181554740971257074148733797649439805247844300222232490434212827111019615971129535845996673637259761483380758126223084121964394413995607406702701610785643011744328135754185265568278744944849663900622986744540402818258902921764609709869553627717747337563037371137087633391231992039113901729158696556478038341133021036147728048011665448937813895086014165977862560358872415597525650810587879217236618857506819242615116040968911553499079797136008463664103630472448548227583274948237772262016932114269851780375498434158582425692129033195559474882114775436124048793850466282469203399105215552569729647335672691236478405283000827897218705148556477241228071499733292674205226663570290110179631171990982964572782100970643332967265956810628659841278422320302469358083814771726747687473174698468097456002477733467423400027971249746710980591558640848379093345368616675082463353977509747996734392443903143799947322612928537612017734883224126726757548424609075863688187144553193684375486069422505128017666147796113222304121250719297561422018234048837284165469651743725763390392576147061055204756714513151127624910722525424669140272568066288312592565864153032923281262853667314072700724338438735003999949267412678681967993406074217760966902763583585329883389196235146524623744970092210790014883459040554344300525247027502159931592960023796284162763923981673539170141224095790918247679744577857647965200988799183351797318226960924900901749747096124232517748269064381832596599680124443163666361068054070285516563369879751620886241615418740984989729607987900447281050759620516395039493682867204819219664584567380723378876639908640574039413113333049853688979907579755512964229122319318508116086614389825293067782786891882359895401052850677879860267786773905767931234823934114236584173781129069277972351364120469171734924656593346070095371609299827154782913759219402751935210518003597058196474613559372127288452089165971905264562814343125186757754285084898307180135870741509403529600578584743749933618014574965710734101341399406546655876351111238695779972075741739869265452547402602826572997927696856334538297670261633042748502546360127343380490471450194733123404153844326679311807013268366676469443319098078410832697465439901636292713242076941512153469897762702988112128472405101308838033325182972018864251827207443542208714721270821247841430252513098010939177589883347448587740248262662748593626563819884652686268812457561543922038578367044947465113051838703512316206075712213959636811856446967371752608847289703074648838040842429939417484839713710495450806506411203885725423607856839807006764278801771206235405925432110053155861547751962929398270302682263905786504283129812725830005046879392019254794599630501512317117175249556507244238695747820876222479674221331190208747116344396449389151945499393798800753300835111733602101256561437640975599522130963320494171660141078419403218741862108106722029229643378797936085326046472523839251006882744969780692012012232492070339316644406607212163083353347886026420481056918589246409642519821650727210632587149735068735335979055507059761393860231018025664364566162101340808921752003108137506514972070378088837430905572862353127235123781230072196495469535413283666992780124282091162163737497319733471724154053262440352836179281993985597548545465047020266168534520139636718532037779975286811772808712323521784544255128629639229290606877974150641493669134223186181116923952361714166904415191596450404873395808193789978886052686063543002440320350501375394998676403454639757920659820456751660868550339487397389743394520298462177281162606706102038825476339922664795259093010975482385552578709100085834264315273662249534860725178841316455683515438973140448023556839095600336095758371794591153378005062551600597936691452367301282686922670759679772677647613906786186479296017375653673598816071366114008119003572606522830983972974142320614954039647952379664818055660759025534480302336361501727964226881980219352389002989909763680824225337236510329052231204124828798554685889921100007444546912385854842704121690684889188745043960469100590737263108747669273097889581987142110980724594520099831315265799997888105613895046041542066265319202329935684349961837968127497297302120431296998902803346411486452055340629280550268248000892534835158921082636059993275508413664926120213576602436494281396953329008155281302136705181641082601979887261000088525594928951293480047575202308238214644683632624739154478065632604131680061144528086591290372339517064913178337498141784513998219246536436995968413814488109179389519905949124090437439788247062844017119789856371739104092587721258073132609685647715411315074616522115873651058052161901551249135244881026154526164387218810453149344361915868476909796973425855196163066323724343676968539283083842838725427069232871715134790926137193311794157621620134030826382874173334103538148490058092856366383586569703418665365409690506425592616325892875032141916599125336079850144145975334747426078283159173772615356850422202291374098580590900557210375617699886824751543218142227672735452977238282693592872582025309746888126003627175850165861627964365635816876752735986539332967753882273344578629230197895482720627982335995494599641815113210575158584548806182758933949523620323722353871720185813602542881628225643226299503927026482618757135608047475905183911491484173836733492888965465956015553463521378459438654215544536587069347388886026731896024364694991287483647842132212908778101047395173671360885071479322621178378909727257723335149742840142952382149540221460736238778216143779999806951006455968428499591582608457788707442459925910303829493351302900100851771756322203881704075795513685440195545035260502940166245225641677575900481508009670655480577112637825980859986191318296865306789312439947595787776440804727438826414591352384898722992855820556874084548389560139609785880309539733442235071836312019737171356099065778208073689259078591642023552994741286511154735387892180474193471305908430411737451654140875107039237718237189835481381073716903514035947032718831269823901555565005500891419563401242656627030130367627086942830866456850839917832548933213346641077277168470040623646439082943519853794272170955525140802411927588785566715486109021433629994049420242697775091123108947689031559340670362545389868585184270457561949521363633874727059069464814006809341041773946838363843710326472882223108502811920943409689741962918759860656983900076449721930737293961471800326694882887662698481633594600921465068062265788807652804349557079308248878164099331792476019985251441879630486962331345794053811178966501014593678577907146102732272668501794417193424371563289229728307395278070518768101625142744124948997157172780703224401866232571511012085808701856681301220479072698604465533828969102336777692700911708643038257082164277105583944919262541370492842840325735806461839051530423233808447600046914421425193763504102727622006831017261954232287312956211314777672814920315058361575801325102201968676979502801653754608783682270880176836694806443701025618780587864145101815382437482123381301572515173772750110969263652739702793910341900750031064949469792009259480699722253325305318766507602123032429699506847966720746189491076344134726426709932069165717009317619170571574783060030183793143982906798939213361957067095699850383204964367230399293771914283057315254657685971339480079491931170753176510913500322617758528158895827682553507567043778699982976447264380419926897599849059808748213143023342129386164146206826933998481914831295822960961944782390778837040243057646121828470999884409597156525343943559211647653015715812736631134018340930735290328067619604349026603039119730291679321766411102012697204035141437214323881166496982168269063528912948526681679006026947713501900165708591339811942635383081186551668509009377049419636619150046040063933194534889490012154753550698205282347676197844448219406036699972831163890117486839842932974771841133164889129360253070444163212956234563694733403804559072628329975825382635632456148012932098714490632253569915920755745284443498875580222798545761183688442288689247342773291763202575342565086233949930355950715201755643033335300906347848073553610544474420574484230302208966652294604285548443868251622367151446987229793609464696025914103075638913742120187375221043006279238062199273267957149244512611409546317361263888964150864978947361977946038150491818714922666757886057315427862135830416831421925683420656940419078928602537358517070827616889140731405051934869507821504998978877190625695046479303577899655354929016568543599618786605645273210937865955483936478830566155935051442899677478225326525077675722810039911127813480458099050576105006493345160170218353504002452974821999614139078695565302397371187562084620354100605578296191255923661641288366357040466461356375037294913819089766737563124561946585879834900624390605513961579787956078708124669275817789374371421527443078425310618827320762720178681228277432168334804489921257552250799880737068013072068390026119464641695520448924629757590094255363617669368767760810725926510531656827147314822496759103124957603722236684431363643860532066881176707487103571196817459546058803669331753276746569908932320319197720790465580364031745532492506366843491596766229358597875986147145322317117186729945041511369066654998802195177834198429741068541225479964605930660116429293493744768006275500646666840347010327471607596445823787047155675548668946171402709079873284776231253805914615238245414582016107565928097570346279435665503246878625165941568430686225978680579644481451311245005001027120409374083183917629516292291160608844209265032140926780354849729004491977523998588378684359860089717826140472570222485998025434374044885028626426505726731505640104357314891297790260984168027015415151222848666050263643175721303099717223785221921110289092918695796247740395799893340214945697884451445564501927218835030286632749812260598472152127611639538770012221292033546321128373820702190777175911079756311432798633150710381309042770132929788741430880523764445817379219490451576580908350178827756823449073984983383950400196032623478883275518238963640300226968953143854719061188201424533914468814962495989525009630114416352231488048338237985713440375398856867350239248175465485885972486325603441362418675681303612081677845492934039962356073536853880616687838781052610560927448350837675604900321884215873394986854559904704162334178090454329064858307558792489149663432891323872249446815433008815994575968384948375770273164365312528767379415366659877479061950901550509263881681075161444182670474228153529185302953885439100336043047330676288309507406810658349890493454078820929657301500038967058332578053419179188584138529519923607402302467177627752029598794599719992060501529531351678400125676591921312432565347797998141690193626658522767086847099211020435865610468764701307205530959325486542805840213286807514454799847793715470658291550408076540277810919674191569291882952346791503054815757296620070432294141671186162662036859834640664520915026895156179672301509677352525408253865234970144150574077999109638810895484187992830337711226319583310906827300906265254548508027813172436524252442595942854658361102559201429311365024318007730984461947715553920614953391040601034269335663714279277879346266112475264112116387815258147230483722791914712764414522001427428943810827646776044771881780526660717007785345154120785630412005379152208873210812309967624461670957184536558048692426163108884739465299705482761693214690090228746821167707984812751976538877756050043733039816984626334826940032700074478782020209437206272937104207163081481146244993765619917588225348445199876052462592036763760063109874256978466173951197489862030956411837839012274274990442102413902116876746672168667993494580261585337845508015887872753229483676009545818540913760008740229859839883415380511518610733049650898940715837127278606207149441467744904961322531399040719244312373034577227271137240090897970722029450175334328568483744371394954144639255065434581667675022003701701962874668111595000472309138086760515744614959952607415296147573689769636415179923429784389808687571957432148205978553891215625960807897142423668226542411905922200914190889457321998945887759368147652128717422295757215458247910244234373550461837466766418188923526328184352203858420163328033316216357004016748049496956722048521691941578077514316932772650797754934370243092500159421112436500927202254281560368824961970500505349389049179627251965418233814231718247941872629937572066600593760972667097532937430032678109094195103092422269697737601940452240706252661300004308024755508130259536090096925683906606807935849313907947078488736803782955060334691413578760206119645599085609528630326334574237068316615364193652770755183202408901553768224890695694781278105921494652850522807210095067903450421692330854382644007304489082123492379314115934540014836934069120680513747899364550604016264454964266700990846304885141032625108239927469359407679705177429886592894802296734711437451765399970593870744873941038675995983024967986263645447417754616503384362796777619672100470811610916967351998250629928065971386857147992906298124508665220503153901979455717559642155262356713203316112539738694714088483463455098456493262193003976547238883686719978709121520794514118751014101318337653290475803806804364728440962661383386073573535352067972638180903790583441936099877132349690300246514605567774863003287548651726990350008783904666970553675946074333539323255447469601554512358842308635039737659258168037559234989927678462012957367666087747589195233415388358138547651859202158012486004131703342401993823783433670834216025243547237710812016685572149378390233479814731019770548934894224000464585030752792831867810442667176283693552864323728085414122570634850358652984185818108534981197568728228812178341378961111224404559288092751643914278810040400226762188855634245585524463555818217785426137106812528283956453795797355190560130201609148229607475713454168755343022008791950812504462926478601587347728226401714702015087783813671802043191564423509646885861761049262937470496139788604824266599192067789718450965940091191123064504307190137778212608487222077997295750841045479315893411627146526185481867977054751527726768839987491437281555513296701255333262432023472591135749659131129573748958743923824437014663703296069024760903127318251561320901744954331340980400332909440029020744686494146791098244346120778727363238908412580773480104633986198622350866836413062694423190041549586698808239629626189212773278576790317052153174622789370185990205758890366174887133601231625909959068766340977661385715422475622866972338499902886402487305349487790142477365676845083416925106670970111480149624666751442488113518739216057138308772316300703246756570278551445566617405222844349535288953234854736651868928468470827180969220751232713412295574746702048891971347647734967933389732041217242108670915438097383400617182458218603239142406519754204538511670428626004123937768760030043015595799086079950456966720202191570360494312381045606508653041533993641949567180075757659279881922155448248537950953636185202036665395231621712103693873970767563298296100680012006732232289603279851199355852905898713434983523958726768429641169993004572310342206577143762228218292376586086580996185683136627450517969206806096216170343738492807800343423604999408225655874395128993281875516822286350429343545699658593736406643201898257888576064580079970098551347138432816305509878311276503494732945957302977397114187680370513429374241996414892666157193318982421008625485951873458992292573875780063483674064048232985616206459406212838770757083155004888047383216560407171142488791419935999644135634887525631153024084337405418169553954210137888981900995868012789439966041420656966938505187288588221490767825840971463513216975817760296365303339378115587815790587484715495219996096489447330484406344886854359260994475957922505802438330864854084987114378674828253669902237811308960353957544195010391894487298651956894004071524793090362756744784669594247026403967768758096449666807511406405474284077496999309231201351161403132518623708530973266439125511191091334207441490930217798178406963474342364201445721683983635823295457019186512494739937083840378931950068399616822515585200324657051763103003159180608845836500020542987172148667682182759726518730938842789180505578092370858707605321781981661153390948549069363574162950378365305051576712743499059167279152889693539452170810776558722526881962324135788222237025358599086394925110830379149373706614026989334826664350513923689287263595279901406152151520560337704889938827779289214320565762768686240231167152123060398486384525150671485337731693302539653978746702890598935108895603862206267375459396961428351446023779507636069348244391770550112503997714362306953293913476133744222081285958961821830682371302548246683366414457592021531056982127904484534247096476179230833461499712292439383325090391585807712720218896235223401151599474874838765923544574680132075306230355169369436583195785084270784270908228521060421705173860997465399859010602701872515102012403061838014780398018571149708263637337051991081339412137470532309911380348423289244441885414267432889576523524033293465448166936925198843012793340350237326095238273303676638442332951071565427396884617015576037186257332183312793178230389015579428800862298534300648981574413064341214904692374094279995819440533430915780580317191791347636140433841452643095268125787723622528112680908385712597042908259951468210449445105101474796806318628233490389488710890878490097711983864900458430157732882523822567248362385462715931651434580618382894292207138083619535152439669729458045209039811795664093155798005503290278481174406807718179951943954753010660294508961880544262587619530790866297471945448365462694382388974729565199642857995142490440614868654490571256580724819055779492583108460733643508286239424264619988824640023968389080224033984465602609358999371264946881463181217641838850955957270018192319347696190861704250248634213950119087597159882493351955602438984832933892517392668726325008976008450901355034583719201488209900038680296132930201506664477100790065118628592549857797458069230982782224011399722238560782529692232062337916729696571384827978728525929737348592505717170367440178667542433309680850283675769883139604011458542728934554709519054811003584298144240671414263685248359970289588378735371896643658029874590686842982069669041128968635689962192715658204236385373724144446677892959416876739957558334235949233221395415509965527514076679499505797733178940298696640756671058431385513948061344604129930772261612485574000975617673996648854454806866514653346198833502897898873334483995870890127384396196945757141757415235147205543647666301886512231847659246117513127879305668113163263521567753155986559799859127676453829445459763427251812487810998949290771510299010540853460898921411939213535138620423238777483602366252926265942905570801549255273272050869132667131309039993911917467329914252161455010351829036454436125034717411780911795633099106185895438306786872771514192871199922112899506285187703755448592862004970683698692158811231223086301973989584492002049158358650280685918820305432242377649586271000142583730438068167262519547198234078249120703209055258045035027436846289883258100100617256943130853454819228476042949461140193389042088745297362797089217523254267519302676143968415439496916713470541715454486534466123571055690708390900522805711838633862923945637952083784698885779546278491966532659235891043470436028228904054747219661369588189555900112910487742944360717475064548462546953288924795214507866332292571069912804920570496930852659781096130917674233028663761493433300012675794855684411889993275753774236975279558091960966166576511623715755517506092139362562446634329638087632956952290412288767777026034359741703365148127222545848411219626180379819528321580009470647197523130286966122679111998223520511218128095209190477344150416081362562673994472378712370389222032962777732850078191487634269301262763682618405483778290947373049897915930378213340300652725619119649075662914043661558641752621447950556581412567955802218158841358255116976704350475868349673264652430940073525351545107938927313686723584341070634615443328140074784380255979049151667183792633994302336737555860880153314540325198047764586772719703268314690116695616720472746058141633144571085010911051510061754186408718241736884626128624779472602263786536622957621103332818020781916094423340813723053192717415668155154319061795383921333986348408798580445942791591378144436819940726067026483979847646286733372476997173849908414116336324021090150728019114602724400849364800997163407503405126099672844782508781471511387442772136123403389979168389192875631937054145294944734401171154239291974545483593925084694387548802593055761179360600790579649725707674535308783792454974572603256829299812984057462203799683810044191665630057315757628013666515354432571400848272913028087692900128102280730660605553186470630609646403919584139587000396288264587021911171013279205600681500160841131728812808241076928671769551511575377251398995949293838768387655894640251039080236182447228422586895596892039260715415662696476059826201734996659166050238251442264976625573356569805943714327644123177533096654984947656695109440453480486585068867917889364736215746860212961389996910512008153446169335631020264618294563145622695330879215921225127368315225442644352043218982545641580043864469126792993842657982688609798226350121033582948647867519420716688334754448022898544040083045855563671031710896699436056376210188815642796625128897734934000395861607793160480224918419442591234029063672355911564037135156708328354867221165421874590341173185745044811429756998709454092624984777880724698645470899540006254208810850567720800370689840286991874988147579203034960640490828748712646668481282835214297156949054664439231000537303015950000123940269964993548522041275096978056918720721321385403388257847660037980185057546118694502964383351750894415426216515946268503399712273374116035601904580618029647733038469429765354489158672278314429163093752382420977785694649499867934966214234499658028803773175284329295782608459996279510533369251318073884611366953827720254461072695459044677216556561551761757255373673665184700330782666328552456313714578179817011005689602656464636956191970410723716373650483028874457492262535062927688459013042553927694140133248612818695625660444789231017493621121363121129724603892718930428457404446040617242254292404212519558749021429746691009483303941762027490911924096958561443821745635855266960170693031632157477806745150312763043132793982603582169525630209294434154570644543374467104105061488374902785953969610025166039578530915338400546010634909545905057704194713686901091668786968387247848269795098461037696027133090490508785517307051456410086772035819474409747344100142376918319292195221521067871629121360368742526263850404135169962797207632165414289506795666383632838963301979014052363179795358544496769025594998396425208829950503378766210616952527146954341341196995624727233273027836409960292372742283691082022116077507919679390730914964523011394321696533346131210074195940675014817067790397242093623639531620424064661020897417601675260033578278414803624703035673328200932275629650212116768470253095881381823957932603049898515784955404856921406185895828083741184921040939877759573957553074379932384663020861771438446390874962415622857716531185115015515759330592226771779113076408319314851577437699378262986390329277263379122345473435732616442985518559364181420098431685679400236053747949539057971194447385714437134571742697607471085073943251577723019448379810154229777590698545862727041764519675799960504203628160847708172195210384906232578145353545301569596416738190424785489350965687611538391126153212630996071073581568517734673795959762143559222511060848173993268022759504797980318158061507903754732505821061139610121553815568293566209009029440893229841143008340056188320054836649824041417941543732755789416163110255417425305149566799286020232272946877274331813904642304922486411894163537264909086619128370447848553471780586441979591262457343320176952508674664849815464995532149944400691844319674567819902284563385742828379427971860590435770439357177814656587288495930874171236820376740498440093646338867976856750623786969424791811455360720435641602910241481662360881087619572609888698497678427859711231961226835218528419319905113917373404208581712657834210486567243715451630742839325086493622183628704794831344293359804125080543314478574183247658423616226135812127489521619227411001885038542933495171935553623144019804162842692951980792011466928482559350707767440710262731803055150774777870809237662111955341245197135723074439902260522057787016687004344127043929456426326419451247904898561724782039984927798651150300218508833689622255264192649402935110753225993855965147248074470579091534496243520498395380774076313875181708357938919619790088073840319489593013766828953497305857420622758395047290096607764075891564630438700490289915214178383315132740460649588826436045103177615697538543814101173950156055817326834379210198389909290339349665948655144239986682522411888672941134432228323151107498210396198839402206299371746495269763925036168928986890548706394725965711684008696241544848664513321222805832652656808575121353543140283613597313104868465942930577712623531543712391744670349701892680472243955262988057188530820077667433103445204475107832461383998474057802662826218966433677899082556857836423598530773544437450002002207606397384123295607357961994439027336906094645100246800473108998569228491982875820847425096533616509062571366775630319551795150775424976607452375283954998133653288983572227516306334468323516426138352514936985798078986569843654644699850904081995716394045274341706047848018151362254722473823595586502850064341360034852093342491503667285919245269608707048715665690666729792915147722722562872266511526144470261532120404862542659566264836736077522405643502112663737601880950266467188958435963311062627724116200906579533456060962696366534329059539009464481845878489502151584373491025404406261927221603715554957158584215915534532091284317627940888338461568796511472369722733491788724101245617499482033307007383548022620161143117713214231983310534720033276074332447139965749552114729673749195979574399486989103178450735380172353087175701362182012286348699638295013965695879727860725942295189457295072050324192166556452104818060967879498976237250276408275145821579114662866071531842957122980219503572836607038185670432092454679827008564189215386707671147561162864785271169933347156765939517291024581088107474585206421323524050002559487338856718826011547519865681246527919580797735724773245671929228830794535796892335220990242785631533972929759019100204734408242926689420470340081855494034483339807021930702242614129678076284093196075531673759688557892019932830680153404239495356109128913393315822944831145684579352219621094983556752497177153152182769287694367593403525647549239319188519834813351295087308897614686706054481857473412079609498608850641347717403211155384769258953081308220250826502432128301273947202415182261887499083367741050307535766486006667013208702930001818932769659099578093850443512921939035956684944389587303637953698145719947572887136808829618469333547531117031562115324938852170883763565378470919211429159209416077257337898430834111379447167434389297534419254417846396398413927682038396742052315725998973972147584527625610726653634465765899746798711753403798991488544304928643205709921315894660427659453406105505916349799567550371145290628887121069615160094011712300678075591424553023855067421764925717876191107061538828605126552385831782261872484357331512840073847766442900186730539740254807975077865748415945068566143801954787221203543988600106389613293004417426467710755217743131965178798701261043168031564196398909441100295561189042128280115602780913456707200650330091726396117769074652656382234608941868334068223687442490718285988063185921477825169572178688709622021939800658106129520087404622843317828067615324598643938403859388311538210119007043457647811650775955310204369497626714429473034561189700537227292847887910214140386456332614444487004973259807997655870444026964206339912624543887011443330057781833008003974697754178416066134643387784436800122630216367257224145136656700551061168489309318710538110535016805094169193269641431222937956575237792254295897134043802437365336861564754245849776969075327267548029507533616413059129737609654746428235570131649847475706423387502822884096165253216959703016508054715238939807744550032093471084261658767240102963529619203510572978407940012081659757130617181953806486346997904159461655733139734352662904261223611482863416664395762470107303585284439829318459214036547377133274960498444897327513783506871424329236862897188909872282262346951757923045704462292123367115696507094547563111576709930131939383584112531794305852022132323399291239938987191526338143570278113382959492874679796765084066629465829467257316479600332251648837393586838895534564960787439902831426576140492904060203926241614392673475930370205720499749511671338596580541982568624260932541392878785034138756969521372856442476318525395553316138551893875080446653784157826234004903769817822531737424141395008742810287739791349537675772640664647528301555551160360636403427284254337567515610102811241151689880806221054745091179626563691568416628822396600508469544867493046186383227999188647923471784941976539545781306909493936521496879168984538230444612405867701209753834181719928609257917928976027291587436335929762944982453039487957573192740383303234819564687309809436765990956600449759876785206968009940059613905771140742884795891343542888729002319196131755799997787508487697533059940012522539592517539265370353196683980872667205310223750744169841877176901363915894356282802803984566252176330919115636171475428742067144429815836190134355165617442383036985811112317520502694886077014689509654744280100948495534655465720467491590432766179124923539712491274256965575698444974119792435867020332689395002751398715472147670013461913988923209286109256304109224483796860731666596287931941752109425106191458598005644511981910027389277805371623117787704087542096204115990883684574687587327678795348590528448354186753226041651693536746472792764514995952437606123104718864996402948636403805244501220017815870565124132522225994601331989903618921460776764400139775852900429182443059035128569879373595182932357431495766259019712128346167317024925277616880304406752074139151801792723665783934173522168919924721502498750354535634765493387360793243374835746270479012351390443291300695768828884289614174056942428360886846421020419112169904989535940304808466451229030988812313044920873231482969546941491192870072834016964728052030064282754014333896569853766721805748948641261649686785608779191701419627637623222322567975534097601473170343837999564539318962126072027316494092073244434695962551797030967995551223346277079092165432803284141239617194882956159009393376692677456174956930188499547247272354375227284062998496196465993894167356197198698083823820451176289401584011400138373150208903912398523328991582896700625696292920615860923631325477881146482991505563131488084889893145968183284174458194541390291611862159223004242834992298206456211882056087579215023266730812860378676156946518899343696458677379277044169709995275600057469929036925484629136201102822586885872953640420749063109829642581832745889415740862673121051780135681791077701622706122599948060485903630533495871178692644688549688471291368614121622167468465409876792943713064501342877400910461487999033898688292210382448497798331402977667595680753314530863713441598068155595299161361081502634871699727045027784281002369930626236624225755215106499768925899020153087832370626626375737579353867699454317822123252106836807984009352621289833619496847427031775770886267185171842008212755041601930155865842498832634310183740419643551413375782990192703067516332319072995046547700434102704264637700504711352523867761378440103695457166293530562990061419842813110211464918752144978134706442858000725057797915450585238799899937531137471716513844378654908827148996351354713194497216290124812183355719819028195591333033348756221369635196504314061263739820203622407386733008185194671315910529718645953646307109638000021478040157733639870956550482331720141601423813087648032964447879208569377355700787266445025200858089163173036583930704261737521051406839061507597023078280940116290713373251609486425758463721588006654253571401777527723449396979419747080994013399863829048427771693155371634058941504007576074285140862701737135289804247379424234801842976704913304419111737801286190901399137020879050294515632592441658842300476259492144307583071516716483016237250827930389707995649675994788713876709759553664376609424704337329315724381240110251672460658087428313870852635397965389765028744988169215437299755589914270589719656167206052656815388319158912828244625730809443234469549577446232419094205256086940078957770002128370155968541514268399262175003949924835878479403321018859214370014997906643606585825900029474437481070234017928031152868162435534602624096232068086214587217150149604984806856083115425131705662124524369215073704560098155332397607788502662159306574935931915347572150878742711726377225134681021954295340790796497888066868150151401355276321455218559406599040165489742133411254839209478194529751649502312529279285249522685067978742589186877304070560831382846930591125393474016691259094036811164138645494470842177024111707150395523906042323482662556192176507959930364557979223072794726066846098107124089275883407337557596505488834665292414504133986461168881720388367560481969456558728412598167490321377645893325894002409241019578600611666218746781901951782315482856308778232660840524854607419438519801544244234534999785924682149801939213795740565063528642058159803209317335381558932650063399533147328471551996847399656471599792302702380445658387074594997022116695632162124810899173638036568980979845500145721271453386713255558345608519875865806232152688466576308413990613738664201294693819743805937388748854826529953045079971782572534867670478365337781284734350458697050089258363059430009496269189933117846286844024961499969596166772613937331583697042407183528556033000345324213200731536093175190363835820131128453639880336028549353127197702553695871689363466759349096010538927707146376766079991776200149689646716213500589483697657302894758200184707837991750954467389747964227555973070490163479900499132324160307096944385644102212845978114879946285725796898035217598372622956083186450914077939713311840122830477588466077068228402698257024511403764062906115954058739258339815405442131256054096492132115731562479253194191449143533759736915505359235606646876314564857901388398981132588193313113013353208910716072105927106193968388333556026195830025254217968522161132235912541314394099991421232213238194621782006652396480982149259774030984924062546536771164353457215486784717042041983151264535382671626844413981194223872475671124862789419096477456668478731914046392616829509096290323397533246958381528969847861308606497054912504219354285982304475278601101033119530351165848508238137691638162801412681065050660393265568024843578985360459085209331786264772469733912593206115890478151024359326181134803673694010850412183129937666972644356216436644332580308326031015104728110341317290475267841951443173498716480056836587610956957175926387911617948558129479148089931291356345672370666132621558254756527953113484067239376478430948463323216879474039955234214829210535045096262285486468559740897751306214622165408522446917306735449919737007679664708899801906286989723606126140447606463268492073388519876279477048254311359282202399902589434869421125849276692066447268954362423444352306075264850649996502047239154478427164462823076445858365000322146322036658666957564047285592220228944623943609126037385101112472348799420953585181149071526861451981321878969902226008027867454015346255919971956598096859369678102763161702570365006740165732809681217922940266983536073722072034891345911949998858484911501875486082778003155408908775258708535633627835495875270101814249334042274293233990887613017391707025576603143121004855403229330886293938859631528876587003579670342035867445307649183916180854065571656114546345053410594829496376466837725562839439961531709244992708704758660103589512886277283942596150040468028227087517140260788665965644124815030244525733578137095460802890814913892116063691098169151981486420290715313354905818929529131115160427979687021711374999652986661656576915109628619971597983778765842769369387556633783029232312451172089964770006304807633584381601911677041354444650395719784525011754413131622320661193428121900456062611644763693877913121336720311211055401628270565166389314711090620218319766170520501066848964444986223834169428823148366475396078026392142214879169481570510817055580447090457293573877221657478198431620360848545989238886428509168393311202400161877640669403612278624428105871903227357048570936391748203667319652919372730796059967176400651838063473357810290226425069720860900988853386830034550078953585721215122052528021214303281834246847851919523418781873086323321030275862429968969654270458104677393113489270513054572677766261443855438137774103673771059566582042831388505520979156303158071409004020941985526123013565382688657391210769986299874268277814874243429284479077541076780159424149832843417581855535206186535634844443999145081134486200117657432132539781999479674071905147385959199297071783266986123326236676898662213593287126078531833485156918850339135872168332414970834179402915612882800679192712309709158736935187741516851144366381049498048407813876308450318103757780268557522906483947296394410536442647465322389343801848564477223267530790043950844933687238282324597780291361810123727882487507640856367463228311561385103545745570015554503249159964791764718365554038828593771948610525890745295106610801180952976901769634946408407711693868493073242782527286092117246125999537107900145022491496932976027131347861037950514834278940540760168627369727710776402134337956880198101708053228518656161786066402114658150529748815603192319889530117191663286699781239498122005701071304258728593390250733269407758219800122777494717082998690754218547250057944512147897417443756678323492540041137639054254620356052052920005087659863101836259599036893062190659372465074137621310667414498943488147749518569198001837638571336136574113053967857382683843961156092334885058291863030852502421114638129877446570963691691180663236185722330973288800482345652013414438990511924134356859009886216988151142104054662031226598400416841703538611541995287889673570791423105384494038250104205567876477794186411613169765106314174265552259705754210300449618667619467852661200792130738333465681048365488219359470995017161110294103415410777636373577317962307723476142184007967861484258807987785305206677684046138854657428405008585744878016751831905997068524984153114013580714654202498954481111118017387568210186927745245370611139510410383345463718504437475661759065831990971223780643303131970015770044472593091450023660738581132145666986097498109254786912509989087994177825532744456060532260421667844521656667178417904007858056079836664110265655593928733412862773144926609912900501856797571375790234615106828672015861062477977546169207065586228690625931893913103196449801271342865163386379055862542306864804711906735562784840223876824941987305348101439070176879960809442023166648499712903757958168209910435677987200081459615795663653071472201835702505188944064223055829026030589931400488987518487319381771201879538070402766025841328061401524348058176793715381646574246611315388352253050690409258182224075140669708966495273119959724958496037820885663187083289126959592524804772308866689414981532968607472630810236500883381141351449391038703988159413225117480503530944185144596466801667019713909235538093439642058796844023235022279272340549604208223193637072807972108695322769637454376087126560663373056946548524080315943688712096375814594449095769014026004494198623412318757139908378320833961403053816834489025627573554412630345830603079718795348201083333022214077560067434275436614700549355422973540130727815067287862627855387791796454633250717167993569820977811521597446639659258456239533514351416603744127664549966228040010508483160676552501052699816361610882979910284381961332049952501947170514529197752322684674930445802025721769089451405363070180693520911135281572002283858542730315131538690633720561211550723609079513191711315007619939831156553151690923429632494095883151333383386770645539953746585363155188408893110827724003715277899511498513279521754993674830544208379375213406422574978304155651000916166213326024111444878962635736848774495939072349680453884848912958305604801401376985737675848814079386327390314624821848432159502640740409268679545669256488655703869126048372039528417877559611255999371828232657470772581031214314006152370505131677497558030286998864135299095445355177472516918615338677641514655092957242187739886862492687738165559094823533095618537632842564159378198593215019281112427744761509965206312478203201297290641311564611783412060087321397139599968868365089439396158859476851306867356427778021716234609557233045328645075329085520165481833418984206181597209512695656555484837501788026086985543098649389966758816136859935595316103815767898241467117279085517493610833454891543896930677164435879088337699878541862715595996935605325373822831427670407697730397498636414989644727684951184732776157775747854449577989080399180943834908655636089629202693979879582380340918154324358113345170757501872958531811534138287937929050807149053272833614682169782954312577386995376903116390097091706585943823625494282216913734457993251825024090769920980895804394728209016332228824048310421586581647525426376849843498022492807386062389887987172206253871042578014739714478875805814801228679219126769045149091365784190717482515694038225103692099283234295767669095664747097532804124564888601268037326554001486085874944790452738560304654892000313769087981890189366799781647073438721272986059991720688697642057269676084180647892389397751184079832216867019490599264672685166565606410438995510479422390547261788298182918811556873611302735906804677787159522410031936714656644253940503191497829614852305199464976528221261611019449383670316682225528720072761997320014131405156821079445599287021153741801666193708943966531257381576856313128780727106744678442921860611541706842833286411875480653700861930266207039011910796704598278578203378223035429298776906197544021611311596444783652716787532664412806840961054886398110112030070667350832692447089377015448772226638606105805261451536905196944078154812926891334990480525427439198016113183158063683834896738486230567819124525687891508431259311611553808746452311797956932565887903682703109085623178708154298972396007880261299963353341137791827265095959147912662044206203770233464207430023278791107695579425963967528698150525778755492683254177334301008618986729997738798406993875978215991632698948033125377733075447698592034552160247207824774990381685735844544235211581149403925658086676888780728393633693507877194022309698167256793135789239988082423156554226132776551739155972862588300537089835926874954704332723259632573943345505697933868716303433963782522763398285881553994428366647216524653351335474605588535410616420520200631222124368736544279880290800302699250445181157742899618166775483194954637080886820771803386540083033405252328556074576462170190291030492425972357335440800434152003701048900058961501348927512680117855361183071799018658096845323472178396692920735693996853092776374169007767685275701800878221429462570629955459377130042455722647999335870341905396575194250142608672304231539297659115610815835367800216089288029511751988133090685870624125161722503368128436061640518063815692234537174644440432431725378871040511466257508050708953831505381087307920437135967985046409395008495400671546101814453864880434875608830562837370609004563379358676311578212800876737711494178553754779910188626786165583125827038695237147747510219924739747338786562691427288952020961877254954377807988395915189455794321574232233069348735257336069407818735543584246184909303801528648352283997310700536916014324682964361948142813827780685265322291698827326431407635910394400793267850977710746450235858802216884473316110100487563533455221347645167805639107132119698991592224836676047581594521134334826149314305647830711592314118946878813959562689609919254657957201991965511375215681330177730685726361322888820330214457818027839282291796562991393602992926772772794246612107890065419815843249803623409220073275275738996844108556851685894036678604737162488041926743901917487795592424776665389059401706550244935597738915882767207485545449196687598153795938016208745951007835929572986441947646319539910134896546945862017184825737692191297369356547639395203688572291269748681465095506203483368550109533637432579803205505362759404288471721049066874948043587997399642546545752660105601215482145510387524110842594132866617913431913824096295149220227261312206048447986586509228598190528128703794228120856745282317685580405241056029722817004687097556268453949481737296761201882510814616731288026657584251703125565649431675489862200154562783033984502203377045251999452595379833942470628565943701281228273268360802558535583305087575041731744051948684748057569871672165459353501113055452326516587946525688884835134214831859753208570648924500702798280646919710322978980181415304464467456228370935627563098424589119969043652611930667877476223162322364936791489462278449795613393563086259394389546797951830648742934960293759110540776111156602108041947117783917105435236111794235296350465151823702949991188834319533685726356825080172140279724141770342573364263059114522214413795054324670444520653469765810561081587546399452893593562265212420395297625789262232158611823961747616597245196512770203050870691406148054564472172082510801409367370640321676414213846925409892503253012523437812147828384595529160956135417835482679348645767873582901241149099976570163276632584894541396915520904928806153565210825909327193689099097444651866211924898822751641999411208759355450823819906593310520613505157914169683491466345697272348425344021116947506477692210817610042581431861591382736482088433284688236646238194498396369579600052899344557132419091531982353993738024744926029874754507564091919573346603612120760557321983134977989233770515573329856364372296543737800699868113615269196016483375904708091727226842590977028468814820013645201149965277412516363381492042239201334588502259314649169938330036744751462895816488774543126826955245033814006977084330974707556422891890614156340185624968599973645616409490588320345575678991484685376039255607214956847235196806615244976468538937515989667573703465944304885607082242139599391048486721088101551084805835339264819876899230194465995696212370914275419654730912059629552959192422603005472341642518564852827133684180906150081156668758183031862051566432170902686588016648756856875544043414861928045702527491861370922882830770272726000012535322415468757759616208894320636805139321107108508307350228069771199500996797343764606763033454193933851109381879899354572547189188485608958976269011496977921370145854618041669129317681456501850044424179051103249397743466650915800953098961503710875766923471259681771323249734798384359401361176189858776793012232624194250230897425723932831024846803189299311449638916939870559062798752078326256306958753775125602189504271318510652270059866344024488751727996654639160967065576300490625788760634868668113091529402473206250315877136013048845651570862750187088830960388835799133492706127145707083121240666997496208023744087452137417864545173822983217440852793697652942465625127657252588401118928585296370633370435753179934956746024075923390766356187649195582197483107225067728338487373428464686558898260634994871225954591910672757142283947496862226479157690606527119672793878594148069634487808235367841667571460564309543196842714117306748613930778490147258392088837917738794464081098741805330049315840167419414165646950023824738554292450012516537146544622181349170725532383469572606626592649820300077066761814370570878595369779188969390417677381468267938547450372277569163432149503592622256055328858967295535704287119364996399841301587119288262036039965027961064168049111368374938040740689610481187966467740969492178513067866342592529333756278804555379608711659136108405536636131348954090626355192288769373566716960476594270876713145160644254607853957705039367498164063708032062344789382962174082366145141326181211370163771716095333791816153145807322082389592901379138824164204121819858284387926308113664148696491044649674459284005354811653206289619984952682760586083221927629764558687228874285558369126731181909754354726203771264326732822418527449708986041912875414651880775061676459322698992573337318123128492894439675429884280148855290521127826061167127293106875877620488394819844458843187216097786265839282368087001125785307352646881503668445938834950005712914006931866416637634123951712256451360803430440500203134473943015785902915821265689940949554079975610884999023409398859230363383143853658968934975551513611783867933203356348971943497193319803809304923324669550124674918900588006546823084303864863165629100947872989245362102485500379174830623634920106388068098741500489360878351378506283870519171181318867406307937736763953282105335773293650950075324014962172135096949594300758667068997494092334653799671813877597635875562138002969729013144642010327326695998764377444319855890108349555872132672487209446643034735852624834451537148624235819710667794292370373700306374178627671692721161471220907133233468208707910161860963632594501042310702896449431129776284698741123584928586554333985580599572680828849326208588247809269965151196752520504397464621055815392081843747852817255310202364114440244166781539547867781326000987770509677121886740625665891657756571248390471581845905698308352511815396254325723186294833675833985060111980385253553651938239543870624685071478829638762547646554350187539273867481110812851681440659078367168132167533252433883046556828378976620255128806884685918539422178953994409336893791519104876002375989070362752666855897554636173650721533034413789490625277072588612502505184299869353847727720087322562685474751686411166660618725404815314026555233127633447419243586197134874126352650103343911415681616152808223216788010424092892589357108958580949146799044273036100533470633036577559837811642787484494470860368711747642935127255889318164022822304883916291253396911678482088210244789450546136196903837552192981485996545768149774400492533314247611406407252460541118202895104728062046653273909225574509559776560914811783207584219044229250616759285948741967383271021541956781166727513625933738471897019533495404460006189745673026736683376356707448854666055782161848583564242027795310190363808519020257196331988228462262352659299597582841837058636264854353170094229477511398681740725569598593696185876180469356051330352762952903253397395326685914616059403882721038208893537029719105257783797903935695212265031563129035053594473015028938709091086380426926865175620927191704446548834901010741667469251407782448172045986264586139995907640060893708103880322630666646033589817632765675182021116647763284674271943959529311145339966343552665666011266416566403587182357009345430605100904209319338914592627256282447398721592670699156849872170889237244042768474188138141005992905282844093946801396626192199288708744637674880034926685849994670677752610952556784843286567177294491357332694773700378355938806766825879294000559016812561113392910146933014284626517198068266614361890306783584730938564596285983149683982845478025282896208985534032081186735975416252675069586267655097294085018557189537797633706885139975240606421462789241889942223657129887743594599615015088821050016724987258531550614954868657798935759518238277429735441470942282219492831523622249378832100449052584330136161661060081896869296558492245471772068768634678258197666049007036194183479458138147115879433821673522868014385466619510508367421887859368724638516662582595738875161570477315331870206976960266556557460373807643602658870519849279417314632638999060230677306354456411269778153452119341962271833365652036857540310160535195012961982394707918364424767871360588611175628676471659730823205544505423381329771782203562735667803387800039487584246789752505425887016445440717764460177561638925648375048387118506652535071967461119942237493516600432257477342048884919442370737788596959768581727054662204689299179371524342435054455199597262637034958646145443869215612901089264023544304418083762057710331458103172563251606237274202492161606742451702628315918203819669471735195431172363504370457934973063773780614218123438468024652611627179398487335159057469486091983820281531297853996152545620398154486648399876724060253439339165451633685813626605795586601951819990164676115096022725086817344562660248683538611115774817528006236093248175330923026394828231989445739536318826119460829726924144237792800504586314550377630823561826571566615828062831483031789417211490719599381837750855775301366530810295410263397528047744523224391237780404137867080832316748337416453758704950200004203112122305894562255376451479358138401452061330944991880896072913743722696280650147849504204626949651893580266969035415273505917167769722342174118210784733875955745075736064968427859722090358929248735159740625036079950890361230140712115715525950497666654612928486167605153409798178179988751578616367568821325980880027120577040354621820169756620648545760752263986823167956633764130104843961518225934814855984663499229891253267457939185039361346744401309812168638354168406769266330852816530757349079297448359716347591148108344550742764741279196571106106941146128847655230904080473085899083267730371549264162606994363743638969478944825048531029111659865199022030082233226227100579876949812166608384521752749905415900002515952727388943797113477863685023216022400177642692800176592381832184221464446615461882017769630115444009317297999385757035957830593279159076585617619594944030443701447709422320311966811800807198947251115442029820729195079908426201318120704719604730926215594974135139580606354860380363536326803326616558071835395112637840862108070401380895577050417559990715707122274398090960689097924722480365022397489110667173229676356807477512989694322744303869465511853896790385048197893840330724768475931476491387650138167256115854467488085676745100963001210254740161959820930201411736145598533303428928581695578208985529716257364844753331284874741749039811979054459329934641907055090480540961437546305131866261549545559485655776405126118478881265357226936288867026140640729390204710987537456071064314188933275637092056189347820225200653451111551539369253565685634778290087238422339525956394813384217991767308886746118979062356396275970450930892896510851760312428315692847897897451546761137010609323454523586979690748204030792733868900711896488058384447997376409473091817788468015967989797182792586245216718885052080146390588193003556900152166956205545239657384373137601007654207656687551879902815934763469797221984755202955210309145490260831360677913255271183414924912218675080889548784632353391054115215548965433280661502604577938162156163852688063273876164285312681330288200708262915012036391816779867400111661309896915359432956253784699774587584350929939469357045133112377159934492385923142904195900943711235296384167894178098762245906109381023500146956652344278573818174725184147593079902591161303862457590732557215611775641895157069778537815070673802309436749375913444575986521165944741568784881571804415372845845885497361032312969761086438512501255926172646071598764075944526607649052904544399599089249249159720891580945277214286875644806013864176926771415344319672107638091125826924190437824076174236461551178426565048258662377111167430081896870735541082520127118020182028961885416286209934507075536159437993894135053580377370655193308782716614744930705618739081491274013917440941976980162068938256336372888026934583879649308181013128423535714049413107273031477209456543189928793800833716493729967853986350128942480195420038683302845447350121220121948599686243332523039438019977989509552879365576437358223849976586040057921153082653859087541859500896436152590088330521212341594675625948398226249737356633919391329697956159666511202419715122150024938952219048732300288610800094032548031857983818772865367320040780846402443423922125113320647783421535976183204421309541576270700835065535041572139435711510374336767359620653263593078415967948697582662682137241411500334449561903502656121189095731733682171649527325444342673400066774803951864066630973024478653795851368501734225066896436299006293497826413046585110806526150556552993130139956434617214878853598507644498819475346990199033609000079016526642937303504518173640687162912579070034408558587119131451067102455408776023844944859751958379209925052180987023910253091275035981554385237162203807121088798572895086937545596655385349480172229131970929989941557267311034072032363736596843398005961890026211466551551678188503178720813283311541453408521837259176564408124327813765879913245602293647890941817604355616653734752233011838349743193617005517785061913883316707677202512003217177273910358469967172664091248959343785860908311891483420138035661543116425894622704487058619971962771738187866661401551863505022117460532833826479793577250622544668525865583836442463902559960131911031688641355726576836625998633570816830774469424430362085948922656462035795517779730783490247873031164584303317669379846707928985193031185736099147440463277595527387185169938564710220804838221839714714933267708797868840711263315943926113698288933797616122319811372056000976994037778680428826667625394229253245753414340263824847365642071336373611268084598886535335033932857249048234192684426217167771800959843471720924569294437429254640819538394477619050225772939129306914425512168670024138739851423438111890870773110405468274958204517718302657991957546176822836450432781496005805692828641956244847957689428786633920969582142415452196808197640420303125437767147759568802470397900477838628160719736691535610334831583435511546708305022293825310671335757080057093559367755511294379960473757290800944086404551535077019199089529976785413097722041428837119724646694943854365356197774466234327807580043661892089558427133281194500600623093661282413722164196953506460098060240728839933945767934349625912534656218111879941644735218908680541092743791486673163435896230623289240884548862051632527853597031164862369867507211526034888082113433135217269387739935184886752268061130769264792866338268970435630248892160876837503499223613488526425775808804678850642343238835790498345767340565620319272026719754069855228843841251959624596044301137106845115332143578518609428829642951994728938732193709312027876874049547836542577400544478170440604544791999082679033659246314681534156796606289197389210714714614913633992802643453056506126990551472738039739380823599734500487111245017677976145887193488536085651251923983593389633165226961396904375473555454156703641502513134452220291710718441323080178153059617618232654303283008654302921928145238746061688163353818942338153430942153981844743003352122252004424858055041828083764951257093679875926329551829825809932221795646676511050819004637282628896743626065465269695324662004367830210436934308976510505767020303686039946887147307703479889899557595892306957166150962270328694748424403395883096771055083928042093980994584875438406812055191236204008257831668766344335748134485343915115347007243391689328708452955898864049757204645607775793037787321355527378658156535576912918489993176402680370453611704104211264316568002074808688772835467752132745041769048239228862695371558849258847711267707097274190912733656358738426561539447090419075172270240473937490068795493535605444814261980280473863828496591597914012317782540259632984679022877476969006203960563153842167758053193514701760316218100296125823505515304320317541539648860812834696660237864944087829580206509208479805176110580318020441278477404372659244745653242383458325073610442573839109158856971032064433479263052287368319786217161180186039815522705208486261699956075798180576260591820137942182643288608804486407925416365207944614955972126440696972223045779256889286775603858664132556007499340372060937595219605840136626618693481210272220335348770392003074920878604611427513003901246740124291629158416395919731465100655692053159825275365966534483559810036454685517027082324292092764512118593213069128995819305120026461176815030338151483550679823791208756788214510974218626950252336963436764003217322737098262727252594336996997069179036565453596363260024426088347296349785804934445583338536491094149390387396982432095067564688257953589676690110371773444346343781870078214261839027283402800212039507000119270065880433388702974946013109220420014563252751018564304772299537333462800589096887132753579534005460762614455784854905536744834357525162451727327820340587390245327879460313004956312589594495960118802608209563032007302774888557025595927059994878554854206871399047998358016924321666861976668010861053973661842876104352841907705189975673748919211512521392378556808333134089675853618177825384145142682852409645215698430946652183149446767857709131743587427444991669979335136889713987729483015400671685891722198350434885997469841920857952371205562463789840576821052207452580519596201856089224523722992121315553258414829403308004366708585421485484594428714298787130246614611954117385671410678372824466074244764790839867980229559719196697993584116118349259577267257472954598305670568809163081558695637994163675564783829218790663544252554477731230660902875688968852213198809313503609617297048597568659994111924712189779771380437632982415957440697023362117565011454900138486967329719206610621820273928083408079870272300407051581008517905267070953772989767994737357106804833845651544255174707075347216972827140062796462821339203734808065485524100609114196483080733094767028716832574150925806375246119257518965300022770309095223597810494364367714808993373993559136445590061444994533812413704896768149810407127521767860424224459252725209922777239659697206149070642314819319126070755216804565657755921149337069563757294801713166766563701704597231121359267817681468731609413363203446272052167190579018709493580010331376974490213218902751245716937604676300787757574347348500199533273315001707927280277398485959222951328202895310097448921841636948203772887167472102614550080759530706334668215914500396411139299533342820969299617949726473459692634188538927194330636798965418605030725896979149719317878903852872966887514922522761058782048696304730373954208912506505360409046871772517068747111300236292193664400085940209306921285096283398566764486938182719273217407086024282515221854466579652834054022337426191073586886339843464174747595352696467569241630060339273696517451553182441526429909727687938014337064738706224584576386034917127479961741455352628614963267768753740096759620636969454076858828056461658371080273437355608071343917873566124470493341381770339475041332503188303349341808305435446523768261786382838670915242411960530002777346104352949993441825292526288951832832384709006257507733943526066305723090795603199512002368882851842172964435056301300851785473812627669730251651702358012005855217487379772320923402640713811642904815492588996651504903445990006219798417295344864572419996652526752653424030044039115254031168030622458917183242181111723024439217481215522737186809473157563792516232025732482149329628372365897949414483872227223917459102398482286739791818629819701639257349897980120322704968557701242649728101691229414971317930129411989904079020537291496951026004329289106668018935880401112612880278442330255678511628443866492010878774067513882723622600338696325516334162554988811433524217150962307128594721507944921607031494160360451773420435212112092265344903343442564844560002420988192567539672399378664491836319097609694614439536534572613395228940565850804905152142429522483983651058544716318702785122080913290210634170212931838324382158876089713693726035747336025924493281350301028668703367983068123753963426479908811948575134902079288028946195483377313345176989561485918856409580318384742365453723144013221955564951269631377557468422462764935617928211295915968129883723699475209666391171488138260290847938258333436163144875502680920706408400801349543178164322597889856416960432676363299224523903916043435761610179414485652013867665173129500325573651974555250976933263224907040264503116744848230996704695362068560340574222577790687611560395818806882485728797337713348176657824923529005104462898123393438979509751034017850416308812943440013037027909258390734954743914761713852828431848864881960407093870242787363766499323289449234287403589675864122320548273843076177519348868780841060584353811936134684280938450038350583836946706860528013126522101369877013811575314225272379572404411231309059756648981451933836303866484027286731674691264866624442435379168965919191054912133995120719215454472080163474007726374011349988644638167322597490240501524064443852878065809759605275778843153870214879160695285504353675629871960132222256208167993082217375657811215484138337206546423833924986510067029123292643406751368648040689197382775710735173957813675172843249705860155442813437837654482348530908191473519128469261439359538962874205311215923909357400921739007934436936213309397714400124995462721247440153576348504229767600385058006875562265082828292201800909349067842896941017655268731689930974918710480072535698151111927989508237227397530112310328461519527424824506838466337954477137161225097730525008152122476527136705219376789740172242074290858616881252781870939425866487672787371320741080774132537991584230219725995164543675095618030117084690624352198114994270390401250544530709823807750625768147073175901832080330005355817472031942824069839894259376893826051316189885712607335561513196432944141740312582082736284355762562196902864904816598681328292166120822627480894990305286282894625802200734126409122742501037651747490569773896870779050621595106424363749469744779700491489881615568149303013645394388816245256513795654201917066604372872911331090121422305294186869582876380577924563215915960683353123297671174139788831938933848894007949949277437692762132798205398714532595644249823794195481700761871278176938571194372268074709078722610370269694885944804839211864746345977571640270188931719273063678694879017656056294757572710003656533003701335069409383050548759982287569457609793595792121560928227160317395923941309331697125167746467903132436482726286531911422675775017452465308273191405725027752130757131041293833093763146272066171953595002145026878463247365092439683342253818690235030314014986274212278196674360715992674541877280626956483598206313544990223756209454263060289676728866435433569660605863818798217965722488811085589658686476381703548894541900891475242517886176559211129818996612377087998408341319607016079720516886959409786135534926566647423469121381464311738665286780451455560196106825559041385028016847870510408035008306063991302576506331375126717673187162883765998374268172566994741238177304461949414389530494308193068727952254997710597442483499946980403075200565697327842758609449866732148109115976957775442332644937609329192971509084817259314012986697557347024625316633792156219786511351074462158927761924570250020604065103057557469129565722939651241196191111252951320824600332970157981582268366876162106894412157531478833654844416133889527133728475929314137523395983334400068815728019783571092184763265618157707382510054666054089151694688051006405215668313278906863084101633403343997036797244364325628659213409393314881886264919008264063076299404182725120720104942967550353538604440377196694637069618637286199873215717317643103598331472663878329032803899156358532094366746124402232160889384834676233808442226584708408826751415834068324406837900110877736172139810002983025579517872974770155772486563864592799926806631152911792493837600043681252630879193880923090960933473137321236295886484793202303675590120133407780412180804600856017631213359788912084433514737757330527960074243305791704820388719763251628352760825716896199991072714055660874036911954981737955223428658774459004317387760496877791197045434662437464541902598528673185997810661527120291888201728885587775644563386496427330439718941755009492203920784634129159820219367708423832215195576774694514269967799265953397337159673822448089061403642187571346768517142997210531490272619732763753656239807100000220883375839524374646009911220445389520798798586979865195399047388690873177035398076825956732093176599545606622012132477089761763283397733366902700323448752197856121828191804773369475419320937227301941810743686927277390877414102208169913241527992289092281178097974447164570677131165428897577321446173941195094268417839192289411031505519002565113351704450924396877732093173523565832506090032999111090351808736749599936742717571903828283064925500428594709072713240909068912041775399995389712096236891393671685036648312757704027076974054793023863911691968199681020853999445227005764642536656868289565651247285856576107787003922239685049644638483830404490607327949402014272084693923451333463817234246199169065547785259595473170967216676258212268815479136627383469226039936626880158248421740066224940415735899135698518654320569865963284554539063874341328428655917053151863126713575050621870134655103211554037046234187877025737918540544107185253965474559192976132973047999884853226465767836393464335083404475595505032317847126043470804633959196748919915246270462925755887103004727776787184992963884837362504199961602647180503605753558082209526248142663434258457838265208637576299194140178550455425664909609114668215624635607189581152291360554340251798426338941383105097776286677735221385928345092964365084217411311174749821692624763910480827284435790717861574421155251280480895057053779733301450826450096367978244999485363606831456106061629659884377574766550723314482528446466636399338860379341200711894484973471733172460256601606134054632150395880648937672352027963178708769701077049693743164207136813171066301752089177837390965846929356535320283824461481886903477017014755954320242834653864935351983414846586549956022625356880128703131147566637906915573076377880947370549956359909427921775890395958462034558342614637431237126600888870873328624972619662633587305623547822290656943893649612857550088200230257764715997846388187978309884039840818039685719571173943313083358275029392469590688800169501145053702943076245987563874805653078369824813847839157241664436114266302862698833768012154124316345505357909414889361283572117904370591992646911005965012618651835897270429488502724916073207402814973898746046239361014747867354334490041901113524933539140126964541775175340708723659598966964855322215763125371918670757789677844388065378378576857823360740356903448625734307093191653872676235485380259373249310519115256572229804569641171409981164901657611909995865590509418054343029697124632988996929180729079930114462786461355570996516168000897217734893071351075910073572705405507729162182439171006740853980756769981561617222809242842575528988101688573484199990792210305138543770720345723639873559240671360050021198702757239331003211908793994093187949152897346108119578646547057659677565196361457743281877179515970513814090992946284263170479271512814739488759320584169881915389560763023493711364628468480029424743405095062984003374630106143349527736420928839504199915918635234205894005292097837729847213956707371600041193998102362031864134729070456092242645608634258212745439891677410034980626440972967638109443760162947906531897402280953937959266663222000877984590594148722036299760373196745682172229487991202586696161439099405177411604288064461690797008289874900262034533536932340498458484690767379078378255100815726061781169710188358130168926565566048629251847631035933707409015469401843871353587719349747422761292507995347842721176656119450647357736268550880844841136715451507746008199069897375110314759542940284983729619475780683971638507599623095635043704397421755380712892212001938049839077425462011249044860445988108981625670377953743708781364136760021206278830126784631590196051144077261210518167931867815000053049908959372967667893689651032073445375654026970859807838848943191566129911479214746764582952488138713063010456770688825229174880198857623266576337111242308099078335027024289062293656809968661621903619705447418339841024733907185631542508677157285116921146940288391630529266558077072833580115462915653543325592353979682439327539656859363842762347996073895029798057705445335865906300544868929396017987325838700473363874839211576151800047215412909920397795665959839895267121719145594913319897506197630032279136163825032330520800148983922849206957929657640112151584644624647176621060023768130553194062832705531656302724885689861904572626262946989318707062991157397600548038178266262439759547272777208318507736482081447442804984842888682446981056635147218077321066988073822743375933202032739836414288204151822328090920796805575450909472882749457557727166503166655944247451273936661085186658639501223806946545800259029770189996267993034185693868675806246867172559806720279120473472250333843561292886296379432442326165446968655746857136124074205460686507897106691945206096040815089376932899097405960650292598149260762370727904964136517244603171212401960135005600770876199932526559910149620459257703812480775581228821534219950090698980916254299883391323387680416694516161629249685088678036273796805311171000158135544765326962205861170654855939551862460808579428916490074247584426487854982954733265968492880391327096392448824765658089358245446438856904563280004168560143733587416834575718392185120842840692692331680909177638825576632744963593974825670580391353752734456027179991529333280694651292431146578098929270494714121825281973142516916270489766440088507738692724986335169214359115646808532861950278892631375013648149479038241043840840743563718484747041593063158530314309928912850415896700043988764297987791669856097025574674922244980352364909293080768186248509262237264161519864033099068597658944595461690349433813350129201594898983054589224070784147207918381819320731026684395740143891727826424741212708446421350636528737562900942676641856190646907827625121500318319332394709143977066996160501340051131932548734125885231061506103267457652330744813501996627925347526790471289393015549498848261286854428923548087389386054926036284078328729493641950997744353730764257876781206093228640673192595682254957879650662724051366115640681044852737288433645951801513370360312012090105050545948420966674581072773334584188169974585234373664176357900043682528439798553705370058561734592565202374573805629715787256889990156044656999098384383152027853454153099285637210245873910021267694069652362262255280185017203696452108979898688031209416113309563991654598822117959178412385576333387395313046888267619151239697185365268235862350127254020654242129225734018441648285581738824079799431485223048432895227538599307285312309923042283572775700075537586832251683161354436713194405969329261202855612295776266971867306379087311022201739839226420317043829104221364575655348840826592361160721245863209360113110686361890498553580019298926201447887828584279878559580529198194001410701836378867971434895641655603317531600138034167939129690080399842445217513512399897579852200051883526206236895220119569474358818682336817111933356754325875689765133824142554807345663177724796245152549737403600996642773483270622437582638905292543252022238293145239190919041136520380101636857159425819906667079096931185960275130541581786319424827839623045877028602004283601898931764621349830910111014491812806034384737589463175719915662766310096996634635304446547654275286851843432292347411048588679297912409135955179203269337079935033993567159376276393878742755578553462906309421769562682959091052923440341905115153763474793006947390275635227189462300764869602750066330547106692525990086541832704093393872921237269852694157233298751728792322105068486663871719069351724891555367967493311802976955560302670964391455156374835168354598591683827568300214568794999386347104103616048944544819729031825192961365271135716518628007430429353757685831893520720665312794172357362910820277480042387493118364920772330585460514757345963949974394372234421431166569746029977772971512223184312318597981399297592413077862830401955713255981405406138959363324096240767371233915498660693686034648622891664586951176776875840636293395369426335068549875205623711419323219622175510576377357544839540036086529722211160050051198153411023354643266303944721770355673301396097191367105014670274753431771059043210237123465770302357473093604592789831716939282873103832952407887143363252501376612687065145893095208132639633387139438373901041633518584813333039108634999228612802157648951375539962940655464370656728471139263442563845754976379418344622227671354976822069662483736214014654478463948276298532059571051357974045050035755321168805173329042097144091376975889516901922616856481872797682875815826485869914329767461704600476868192028465336481548984716821049058580291730372136225488213641797516393682594125750173734603301796860868092983607086047327059429551723952655365812259952023058004608916259488210681071690140829190806682680488366647917720689614755647475412076604653520414850413513591308603398388320299276664120732057168445832692154355127813292575330051280307475407063824350084341208103556750561624017466503682528561420190275748124276745495533209428538169550750775353575433959473854706951128658580341349944952435612010186073254277282158861810099750036909058996071149587463600668345307304744635523420083510529263416604016041092237676659234875334198652141440635487909447950971178987560753154570883334927988500163011507151192388856252220088642319405198130841523919169382693745508691793729807171106488230800514101648691439435175430313114947265837697732302917500210480021523264797533446340535266132572138669538222252841988350162290874701983162517096615143588981175858057430066148507202910829456879076276932217262680726983161243195891861162771778515982835487358042215708988786748772450015601742504151499146954691679479822438541731569726012827987072793577890592012362106061343689115007928473349039096556199818865283035294018702933322373555771118406537228879160044801551784727314990917603243731971053644045739255822177693457365640737093101811791575147116488711767168829855665987965288540187259056727205984835399907723987970295342351225956532043189659071079301769510655328817853275216769107616443213308337181782658664286636859918822651015413407167125381616415033041884805345541969292171274897050388993218545521405493065782527360558217197474530300359707403035101850839867390871387735692882102594617592325461120839442503491716115216292889042464762922574767381853541644280462298996950560433783747553708958849572896792774036048170883511815622372455583791695037965879342317726063544253483928969766850080233527746086937933181886026811998323834815465845304724467493826443710246937746761431807193206584071406873267030064940047466631583675532942901128098334892779286548690800922486504868924788416035934740027505183640018595477875049312757899211145863452843943370793437309652924282748537646246071830063198112633110190779183234633480080392873895196610614106482283254025591338039648933275875802591879075317834820438155076315352848902923016097116398255664955508616456145893954140298966881017959170672566369372442284749225951702396879791590488560972799001456263115276887552510180714247739323621277691767534698304092283156736737804686277096090481149726206303223824199114521321034107993748026602349719611147692738615930609986529342415842867574065646694699665844535169629866904229921829208190219874489593932943397345985978894538705777875699876799062599347267595957636056013969091009997922707253513548982998530081019339635315424612896866142666397100871045398159686740674475542022617288774496024345673108160408588362718741949769308503182065446949308022713632497688429173023415085644171606349896418473711619021218815498849894090848599752115705770795483112225192299240800271915200477530973539408301684568261103974083847781343662452767019340056517392786434974110357549183876851799511817347086412446016408250945665034385759733175983248936013252683456701037471704009535554194425948808686441423146617967856874551473710652132505309154943763280361949746706919229419193623554181964434663077038076757302928700748038874083475305024473292958477391744980177279164354865578089824205895773409896998248646565952738147438859954666663248270129954495783353711036574912923872784053013962467080030407798480578471403697147807521284398633309912469652329373415438607703199727655178495081303195913300089872472268457013850606191784497848796329544823311942680100204719158070930648945865981591471963077364714807326433493950283905661716580428441274639882990634041594456721430583603843036290591389364128108391710653288521346562600220982054801937885698110270053376543361005560618376114917462335301376192292501907829757773959694863305371520055725422905401329906003833561901042185501339623456597260662230663759553986652992938315340222053862906018329636941351228777922909923825417312757499317124492814449057972595256738541256576456597242899427266680621168571425196368456289831316755046085402408637288287890645622647121043921217728265001692339073981923211886941025137960457470644397871034386137606278250549399211523981784836540445808114000654417695979145539868975462039802150412091398141902980878781003185411718718515952212970712129163638465810322195489816099302952407748877917391793428320278355621734739002306501614217292349394069668332925332134330399566605862909513346471854083529092737563200901923149688782226599863653490158502558745874296641490815652769797080112767828459559579745273150509568863683480697899719037197321139101030057562767931090713127133407658062384989455319979449206333477595160074281554300148439034898284883247186662297058617806757806219249959307221067759002851476281177646662235974748639748030525210213540255766861400869324410988201780791160979200934070817263131596729896053640550623400480377981938068459923394159878649061809345950035329564046521078081890719439811189409889155111535029568978768215787166183068438634018618156375470628134648859408485433685544346932116549337838549896992626766188897737846063872062517159099590874613261111292600989526313661929034154631589055879986888898143309989111326401060613334631828951797385046570774871618557591085235811890888514232873913322449074861659460436688911000275651441409893622570095977914049917037800330057880286462383768490977345375272214038586221695991074458639921509252385735150531497245399094069965513188945726697655464663453198939028927229769913613229603582849396740322531508103180246238452093785534276640782206680151590100358113557617389177590108889774330591487234207086272170082405587678667447032637650092829728210844158713082707780551075266524256450892597148803532751841526627315341149815878559260135906364062441861069108904069877929840298745709576144098049016572760865612355765395825996632977073230202265631738077635860350752407078483398530970157718967829500030283934459165311433491670796219351258110220279377730311555893630013485276886923622460122110496883938358398447115838799118816804333364389829016394880467691508388613437354827403991354234198632698071414995753966244429732080586802591513888216480854219866860033662097232037227953484141107289533566264397695641929030755836659310680471991778625956414101256559126893948940566761864569061095729227092166583514613891541732095270380896402657406514364867889701776428439871533421569655920439824443509649310956921462039620041523054283711353630505213862767774643182403558218701705430165709399327153142570851006435114499038484150008335958317592123453002789561628455406971648099329661610130039427452100664646613898743281992441363868868593828044430379234796767028058647096970101179752060462071384077908547435273867901901689929143797167165851976849754439063087009731667800443793579056815291319379786526843464440524863912455751884571313990256667834417811024814549771482227952304369798972959574830698535624652562886074893286388576439827806974829609238454800419803726341558224577142182714192575120722651847293606258053056939385467477125051575591065977883451452390294270031355152630073450645522453801953407685214443687703395434318139045687360713623754032560133936635443666410034446109535656969490772637865811087211334343517392020818008740164772892261181346059759068958370624953427019792560298477901131268073633176951773857566866574194569324847325369727825638431623914519404397282648089951898672852112215335540219869078659479639174599689540630414770945344413631603800646743289503965851866271005749614736836409016127900172553870323732002196064838741671496782431641937208752205203987728143382692098873882632142349776560914776337568417303720153216995640083995945917731006079067477352541251699524406172952327829361898784692063304980022245383406030076467500947978409896146756369960673187623689777714451298089525312021402570371136605233366614064318705381585512145289433400856854698581889883267725974278101651160271742260739192774164371009432562800504907907513152542763011555749213019182018180088953476790541551343597778754508808338015916140576735902473163607644610385537297912396953723197534153788877793220589434446261043719554034956438552326212830338362359974574787940277672660204404741927534667699908764677537755135997826480947884623771348163268512067841797537862392495236746083426254341369426729236814814262311547468223248149676873616452588091964573955528573823116279015434916522199440842693459687241638234659251207645764497789831172017863423511326873745461943895740009993383826444403691857388674531911534804703583910431598514774125220673294805652311709592976359781959893425824653127393101096130577798517080077156762639571060738510458668417374634847389145313960008734939010964478728908431954923047015512190469344547950541476219018777219481358824480252785623312627314303889437256124548365845661089971218726799975579770522560542707483793313852179934290632755213628627945234704245158465809358687644168510209575147440933672606318194249395291927865787678359498400336241700083847304886710698420259446691662205497765533621282219668407551676273791131838089698765410703783001369889912009790446396008248003495821831854532402624414398055473756278389071765231006307820466842781219200111835950418253844606207920237192879516049871523095929194679494958500132350352571675691215294791296403626777505404591933336911515211481935844915172398986530121491466093488419429252245553971838936184272457868849782847907491858143692761495420275171132341735697439371915842085141786834523777362362138896586712990421173112630686322450695921589106114146681570593120544209611419770983907427544221945041931655817678617195754745697323007194195721030897758094103200372894772103085247334652586835202052327034388790098628281843225264356280345474017203329404162278585092470483160420746132967676591179149873572696935973238092885902372633801705026258463427669170593792790976653162731514607942996219728188589821707928532654279255612150911156290439587618508138185427124413993383992377875655015603607993263257218058978639450969548592751373353313385188352487264837051038320258592757527074360438775519449831436416199047905687512253094930011444758185501163335019285661626643769143932378543639633352098420342600782416304463216176398600305790017732885265073349828539536445122634982896123059439609843347029759087929628327149269698711904433829659996129782446636215742879474663708933084031974113439088822164520842633782948571453597263731707875405023331662903233009314818513889007886620176144238520602339242915509858371276223713780471162173022889893457743421450750606106157492456395865273691228685922222200230271612298681487793087016076397866732043543140706330861341343979902358387608019437278047652955640991165264178120651811206765223724601051004373260120006113794054963314579144590846942817286410261555539049867692978323510351268735142438797561862044455704431245115779767310991131030194995268884018449975737593106922204607821832641483700726642210995038910453345004318028771718884844215425771156885747784869708376270368082644536481944247825678293079381846101516776938773858225227138196310098676877827290113893712479355704249591622482478702276879467557136011222933090246122295451132850412567732885519556674549657084574574565877757719557018354452495808182556872770471720533267479013968305115888592292072781514840840723529669644359371134575455340877021908656994494638584700345602536851113759490189711199963670607303025403260101607331054699251954834662505985836087796518478541220484043572344739405304278912764598090282135721823594721948399770398832487377897061685102356050617525935072551173755317335000238523869847391509378180014602926853186971178231933437141039129003190476387546849685497563637880903798490340878322796943382705065949670561889623779553009429197107056006752238652700621213679556693510873207693666783841518816650371780117223000397101266042534313678713731321267077775932137025266409970723471852145838666212599235944127111968008561455059886940483988896734548266883788430129589612721516331545231598385907267737964343328891251292477944374801826267958415638840867885735060148114430717724170008183846218303058368681666906980527206561913712832964341613327701613973246961384412397943979673161769173421125672321078063852371194395847482614190666671768785875847607248504702613722192656009832839513587837906955904454017850240416650940616007729016122469905525845756525103780587572876118996659678592583253268982891987058988127283899531693495859207675548932018350185426238590049047467976969065726645340835110503795285070272844737934780576442568111567482986801768678852916760557636303279405896474795033016673109366659518883377675925386687075210470423028950453804684638215056836207485462029536293326806732943665372267830853096671331412016964570391550924952833098883380443079191427039690184727906162412741097620242122886703967964587503136671975281070583246297239042142598585231395003002484534839270884755558127338646887477760197808740048765722678497424338695380161022672692383545167646296599690951996035965423198435114176575728716072944478280408941640063915149485196398575953125058102099275662860151508695358334067952909520068827974918582836995577849802194375211340754578984881239576689738558451278499558618192411108714987563356183255380073211875214170667550897311231503633348645385571483945857085700659676562165593600992510199466161149652474885688417791677059799707479893077618711368460788625073118258956214916880603760842255176200266830533936592188693645535330750743289165417877557289685424896320328330568441674594144439091340804467520993314291581599062959437489484992634190045114990093832380057006231718773956594417461964313424261501633060016130102289347412773315144550562814643797588775060559472078377741039763048017318450642412543209227415993727999918599474934786054565718538201903748493776616870247900065382486446418228596680587281566869860421817315214187209650523501388286576783018977896998243031631212574563003473901896965308794953410259810233705794706437494261541119635981328119888845050885649906853985783906650507319181847062750442794368932365497085779671988991387177630141049472196580512678659801296321577935790967684959444121642193658989668554587140518195915895519005724081191213881598955510166157498986426431876255438118191931202643927979435285789501095909261603683551563483472942361225579076331862701475345586863582169303351830911562160773245103746962544138716989205666593907101984003026841264424052455184599595871631873733551776669021408205737490149631821964287393471302188910977332208651885675692748952739393570323506670349914104132204376122096270823297222049000806482560679767179102902786360215125162196251222620032829400964396782030935123601954432146895997531078628356232194849588102411323195015847514214206210394518038945019733028972651099081623936614282058351701879060622320190068742664042767529213338115564475266160606302983263809886594282872840141726554108080665258339397648702008846864963853490498546220652228125189123848468751261945815157588981874526946002559513431874930621099837367837007071325334971845700191402260029798270100407118423040301878206669656624266752988032852002492296021373365710186229717527197764905504758651152690030061318220154735145546415004383264055117867841537108290693799316581004892965394708165043594862549420121694043693826150109623881886286398783767692913047462876366385978881828229054258511284256376182220925571090530999230508682841556086103926197577575649329680791062966530647590977150878225611819587139685454622606993322967470101568580856437758824032544390138227691797218856414561151788667802419125361878845234709328555671684276560936113262830314729142457097042643767085377184057918537717573107372612182264304980538434983193245512462200861882551272879365040058233577042792783375858091135797977843957770313743857784576348366482536103918060861192174227057920628916947741843747281220152319802056382637184343283561151363444506562389588646846505753352821697464753207382375562593964398539067791549691562549468938534480358760774671592216155113829354949637359672645464850052842404241153785285120714819364230201577802790479950445530601969394490456884613028261935971645161322525185679937572883586022696892889635750017302382274491040729736646230808517102163941148260140231328466207734196611923496857855302614549989372687570664469370836366058270778373336327193159012996723355170524576755181604564075364708788240401793927152842576474483254173536612595447042469423753251179064424509207749225241127033359775175467707509327662072005560340586739923781936078269911092669704899956991238436739760975537833745821599878675574795946922817769304809565407020860935590306104692711098524163019160461723924564755182898007452312616941677095219713481317282557150306501694545113200378386565574583532952919633356448419410037973670202863106284628992187506770950893692328609218244849657463199981278552129731494164807273263322528412201339116038337682139732482013726258575653406811617273786987443139715765351906812930941597071654686107238794560992548792286076621249814985168989966584466085604973576919834032574999147318166835311948272737033821567845509339164275267231616914258183547341301575146877375103529943444442487285617289137771567836399824693850842779589284185044275934618289516056602935914685511320983313706826163474947426846182934016225944549267284110469022143822622337449355402451831792053937077069730723032039118919453798954735862373482058604621196025723765835859521571603107400516328060779254777354211137213684778732356829968663331624667035764235467982862846462204224341098949895658862003814298483898683870078662083372112580225106280297398972658204310737664616076965366884093069723616958997878557350757489727323842211473669981667943345819740558834085025159554863566076753309354589986589314932303095769000637830341790311626129489858721843070179959906595683806192355231755129474490970670643200751005194350351909038005878603704952020348349271049530250592177069288286551848656805993086687923941751590045413308037749616338484234103610027232606570436017555167173161058802952876361038238243899408281118305112239743023942221456379927934390437413803914741426477241564123571831276484589271844833967985485954856869256575680208448173784998574412371426890465841501340298785417312687601488827286330075100759284115144716799950167808362062733747658258614143303512123689687889009207256223378429376407496582298723039588447108676465032171642809922041288097856345900797786821638209438367938805891152267196317806805261004129990116255803806773819831381717437589666461921346407861079106649710187923451268738411485909315206945377939141803207304535337091373151465558593591557286854813829635583278223387766036431744815052569822302252059302938374471122728111840719840383381311433764385037727274585791281347414174006277074107288458358388235301264399892401115934308259997139057689992743042632521385793472451500244779026307422646060593628782895942172268594918832827285203785641625359002720356435689914078418537341725690326969290247991422102347454409876237876782915873065888169897008631603719206150631118137862472267505118978577969046074530721048602517776550536490618178966698505106495908462365637045597276313322146818240001806076286393388770815674071383079000079799785293918097734761755081867741339227766560531754365105602247752396995745269790662949234996593163664838893282371832998858798845781282223087926460719002754278076582693276067584965721698892879325578827552956756937379647016912654440329794220333435776498650755312919872188270482910495080297040661777130016761659267562660392563293976128343049890957640166719317914020096304172324794132301810075209449528438332236812621573539339805910964494169842604611771648635945879086468293481321543892431097882607533144287782057622172261446378856394172340487427761873415050731554250987870690321336468981583942836853876331772286581992065353730893062406927658563660881110935757009687937570808373827227537389568292524869779868007497162972938079328739863810416427025607040751154530692288781596737150124294457335587082884074633504410407159408992986746900236699458226489745690346731884243429410191990074617319240599997589591230872098749386099112913343481053748634270414234837250418971136034776664988732143262192099694402594728976385441474210937015735766813072820692952474863839917186644962081630770175325308350121895214268108379636001553731108878110708564895837046903789899004737912690556246047130336249755629791244520676458730779658062307578708240177965333838624819480321435791450230642172699342853726371207965878028104715530781396234455866187738790584536475579896791536484540386806719239036299627676569030932691616832949661291256152005726398914091078571430096234713801925109397737638546987940508064295149819889268873024801514514642911708123735933083838351561279591018835975377634980364366972810506436145445744122328966868075118121204510478068744750370665553590126488515001948823779005008261698256251811190590919121328441025299790658480966869964990619927246643196602933523489026951785864653618448711656474287553276114817377141542783547369686262071100440309253047998566984676318049464432682783438918403522115771069946068261735624265122287113559610142257583476430435970097643661659559128909377248265630413565465044751768798859006263516162152873262085349505960812383405629244436414726691548556742989816490876674219021394689362753821640348915631297647545502613741579836219498996021743123921398835996361110200945971855220150843669967418790398639347310404668767902689294809587028203960762392742499413749903046207012066796593568001513774717792756264493632658004565046069664226881064572245761940254815286413658539757187407353157969320587907157043303147784813984883269792606632907852946072607429743861176882676470512389003715093519876599735397089004893172172699210566242015289095151170429473138335175114124185300975417673832203792531866805183707581173748394786975375714170875822623461425787235234771992851935390582989797636249924253702302589466007255043730658822654914960803864686914259862649350907206605057581398917092198310659223554078924884741386725815900671102065967868279835222980422758929792184471109848015942984915538346894063559320535791490108841705133648052416420351071602537949361172121122703456554789497891161975484511047435625673912748958283877135322884692266945179190288779661060308221740678285966053203519566608215004019827145021233814471928550998806651423308933958378336582321983160731653906959905169434229913772509015956567917149514393362020064523773420602245667222039547665754102902830971796306597734416375889487941290745373653366599125064917238290185272486022704137550049990348328084880514787473406475398581795709286210659452516062277542653389256075832992488596110634784980201751194717699197385620452641877166406387054456686747625790719238248775977861503730425526611164648340303418310438662545051426406195464141739042322733897229465861450823208546148945765505909065716472703442893053423220848895971112399971288449392169640211783861079689842016475926646424277937949608862081033690057603917065075816132205026379380285389542131188102275651735571725186461034651938331794903585075492071647486983444196159651824595939316372457541603742753441261648512992153234439560474947300740407681533076991090540601060381909079496167114213778218921593326625205836127721839674768726388186967497917499416364924377731575104702267231682458547973551491102951295753069492748942988832154062750376112532664322327058934203794547776250115806938093540416586880473279041490699952530395747887232869654713082059722045807025453368511528164039609283058098919903421878538891270146377009426015250313437583534096521402489700338739062351229434460377091114874029283222418493717403673743811367190304310297372781633577790640261901585208056048296907539480816443272213330340114835104491796590384175688997937113540608612932465191044741211200118448454484461570576559226222675308371193522942666640773456380820813782823885190041301568650020228384422147856746455528922862701959599013317348169817269245888683883299092370227005979668171813623354744655236504592735549679045371861100995978537122592496023343333105708874708486027336209582522147143963831751578953535746744883093888902475605162789753875321825055745197099544062798357537114004991862721396997438995898155896507773453686730780048583399228368668251696488389160640601782559960375660315557782527204672645782157595395373919418073983373853018866196891994915482998557220745355866566379581090882292494891282564244047370713083717847396180113557790120713207299558513059039701968393339347351634086076096474769629602531501202034330085872982380384959219524447410499427060628498246161734246603810428110153231813960338467462736477514175238822723369640292927095737926807420327253991415926730248043073149268901670159399732448720957834688625562080423203075485642298555747857838341889997280569373083436099599629466914068598840249432762834409180107756483275014393048169393961488841017113349308336903621117879128477516194421579652454944975328139099189321179988090894084669161966001433418312734013335694852805393072753364047743676297067004359092761588305632802106816192163428912263281601020797891992473137383189069863360495934166591704164593951470809965789165731395060937242318562020655454092796740191743047036549809821849543477694940291130992472997322442975673629397768880175933725188264440952821564381752015409902640239613059612719072436371088282741319403839686793306396364955806782630039361868595831877139059135461445785727524862932009508627270375691050342390103305373095158867799188342923367544503880569913251442576000199655053479487824639273601643659841385414385878925624060105453751332962546921420222492565061805281809996005768599509027748415537800137163278202190726730727497248955809684054153035901345489080846983657945016125036753068962278945104392390134691775437098663114280449979437251662388841491648495642070760799764703809803816777151100504892094972732442740334278882738389892640827814749074567143007770952342169783341778029611440719026785299129967296868929053607589862046200917614941715675737449458475873668075651113037172562653776152399143090008256022669095825221279308813028330243688140084597495944803372039484017735763793454315835308361075189304533565667498161124354498238316595260484838300682910617180572563829067833411085716163776738781341604807766885818891876984204865453395131933838866527891682956390786955997320193545910296008768556862266199773224692014515404859422830906078037258193051648519787130543447456479389128064473863230351142759801491066042735178914589445918559139591645069818805557438599221063438899458780025704717122189622241471745534520011669440206179368035581476663526647614399069993825093242263705172744886361627785834663435671618407430199377750971200567497112099240706235550535029465931641263953076992885085501659620652868447012545645405976579022007795435529917623510136876909164610334401857318095386682055307534663107765168166558422973927158345326900589811024265224019150313806948598534043452641737488996136734850613438027059442769516945215339797915932364271483099411647400475200404507140550000989182825704516065373874064523313889844440680607084483154188176958805713321810204349690443090711250032022438852531558861290925628324181447229073858840446702957931327590895226094414306638853397919981927159167188938004860903277879702225151688737104348175471068634252233490118027475631564582264739370320962360611716838538199195311091842450804522834908688017364565025222730755533286672700245559392754805558802906348474899579867602088996767299418666480617081970036264803040911725964205199892647126228674333698805127334592781592221966215865853894326810786035879514338724174586208966809296351480014333537430003836438068509896197879510553438710708628902422687231560566032285465387566160581559358209468868706173643474259994044044650910307133993401435364859042048574868408844385635988564878336676277561265480562943951420091357965328121929264813938334904109670978783988143894054246671776395980487108126769097948932542551368208799123797357399294959558340335666701700576026360697524899493053447322826878412597637026953635031643175892226471274990150916433788232333289498723786746984125408856237353952876716350688157364502546951364292597186825323671306998463240150685193705791055441278265339458390083841811772845501004212933150312629880895039034743231801602315809264126189244906271051870764591507709609413736059787621712822355688827863835210881187423480049728357004864474106111311525259812823261809787524141610422482612666437816237518356432283613652186295078526551874608982663090585457836284630623361784927254435262335526679455629267995326460310478321496628090558548451630546181209700859424921982308338545691383435913433584089312188533515855911410114245327963967134322631900535420691523134510708752845523425692686159545568441931370156041155707985776887622768972192789061897904312329807951389303426762039307936295614942687372981475109871669647676250575074683373128089794247920781654399550153715586002318757168338331422649734431322483232416867673908439295362750656920483948777764165143483164136437059201501276050249511955304408064030923228708396098437656441858967929025647936593773290578650035080321229786389774437529113617267177645797151148395997279020457343401466394380650953864994860766332324112807986844937894520093272129376994128475868331913860537110559527347491322924651068976128265475405086809609283037957399880369248043150556974436980048185383975712227265053899171163299215240895290386416781930396919198221146149533400497366816710076942259539317843765333912055543380418544640199662369457357078528732951892498230604888024873142549897702521165998319404234413367238302841640976328498275086505140687631005739318976606900190550770367802981062916868409391444179750474363711984194861989776614431173802208139907872982548643047976239180437339434377680173555121751030220151929373280038503662442806160150228980724363531804456012913523729032550358224721186217140008736327218659110856258610400529011299012620362039029594732219951394915297107384229596691181469366382363187606385626630376733449850243345645719950835696849505805693315459199379196043395238721034632154064852137566451166540089288188224100147664875091501739262669629768117796797274372936711101696458008257387126256389964769152609125634745093712101285055866511773273985300771929540235219420713873319006092527939032454742894614178388991314065766690870514265742409526808957529016825888946595079149595184600152125125503080765509848470244519293880120654309273232578228419218770327040946560954113290947329117370141004939415873912005685067378787520579581311863014662067344074083363833689475095064740238853880153824183100224033110009284493781871210577918976156167263868992837879458366467286008647150481660668189846800886180374870552112701356358414829461902422267038035423123898350380353053414663835902814991044646041628868781440019055877178770686274861607014762824096051471677763682795213925483349942400642789811159363775555092985063021772000759701236038995077009127941381749436313340912057436666621903118224378235700752314936000570174525331300354022884429825921415758821431946388153819662949350715176084710013749470427832990499910683098532302377227781054567067475083644237758451161248308707374149573826423295357167027041992117937036167970922423230127267889257867089496750251014592192979171422554975912520634150793323440831110687200457152957917737597990213512949924796745031215187055075097526052355222390113961230679069180686664942584363949223224853679568166089465298301852277732153518333674111357490073542423432717063530029551193730477363045516226125055754243231418359786138676709057867098811876488642407169340529607838803456234004133573760247868777950476495417374818872909409797623988545691019235634225143473776165076491815796063435271623819651155939093168065351381166700325627878119887227687765059590599215265564586750539418407157480112665259074774656573412361096379774592888162979435193667768298026591224949214208394910799647192468370053772318420117898447689317713683770187995032653708728378665612053329526583534266680992653249617179486429150066663314373467331832784473898049894129584348731821822828222159333842803852553140463860373409386750638910712234781080320115167821990763310382202276828511078884797535095341206250729640792742359767262519009110330775484943724871063388314544453190020413701783152841815337380937669637199561358697412333993520214118346660702367078238414280607778245651432117523122594107014974038909736663057882207314766470803350907414671359801977742335481823468919220969942113729098774625212346302478547985220149179654500718462433830214035778262412090170342583000856524151770161382959077258199611604316690883777536634778119468011113244459667675818298048875283499849853833220696078809189506871039734439559754920986161120991892653129441398899870602927460809406928550143501139062600527011898863500975312245532089480145100393149652806413028171351750734125480916544000868131282469880516934484855668685949462423124192726534961298175227722178348436319101851174956498626699207534413624558949116377038225126167978663637231136149965980737434432665290782194838044952581564181628061321011211886363125308861309022809478312910103781487770445957608130737245130310378968500131879390393535997728952317410355501166120635652868269819096214386898107745567893117613292867923962552644659196798496773849116432809233178948329625507848855630855203299321060624605107753196161813875098575836861557975108102841617779188238587298971786721125575558419763925843573941159261727592459620861500111898870024301182493437352889906174732898756305405765855157177282851056066480088819289269206156171364320941786508761859248569185262423701198306389845446242338788273031258323010062967264759207405900895377541558936527262263314531483401441948822056754453903282811796203463666902112990014229089951644866967479568194166043833716480132970125320643300190647939205817767240777541285043685022379368338942560495259501146190538793370455670186271054818411066738586468582006110171427674913043136054469549861546855194517140327292064661765381244754255588232339678726995719186614738855979590416383888981889293947870783541615419906340076903568746835887207708990840232387447978572638920327300378693119421278938110457606648353696200275776274740123179557796831504353329864901483585102716308605587956480651921128541023161359671781975140939319821342039051233922804578921736875507480075913757633854952642772710432922854232049650964569367627560121327124105660856461385455277390723858362455720406181296080631754264755385753482643174012217212052291446009497249703340595718714225205319435329608691457050248039615615614207039526953203373403837078297208450137203882922540693085812077040599335537294697984587153462327480202259445147075559677312969617352354653107567339329964748191887196124738814008425505337956556085881528550100716149058210319680341394595522480906574787797695037363596316771021745716499397295694882668055083690829182291406322221000233850770334051105588023025130306600494975584533895307079580946183084342218913484194693739997867332165364091334624303718425701612769150302735014351616119706352782325707884516297730927444750573512012042916241943660989142369378118640602715923120539532579384803339284842864086491368611881113331119532691612145441746879080754564836573507920480466260222491692312801068380792203662598888734062935541120229644131861953443549918496138030940491093256677661271413730298957034572004558047326393327433045065850255708541762704628350755783594958094548178162078322484971012858813299924055514251627708255785555564258932061436968919814884805964763447168224725358432001434987447248202235646144486294202576699158891193080089820886765064416711798922838486345502664413646384748809762214808733801283238097388892638325706474692179957527449964080239982781417164554855463150506818963817687501360729068301425478235431036756628981955278311558706411103241967019534181069938387708418836617598547219723841349415308215277153303878775174416488407361743803262691011120021340723615258933622317596704247117337599730587521756007346835219393516724162618686934778642271368729201914520155913763661997454771222807932172506635517941321119933769240772983863026542832457109216135223100526737357415309431407277547286228607537484340098198275158565967357555630226635886796746899151100689004079449683416165676370080068564522865056877432149313512637469228919691322812323596639411516626812529311181209178508242501864684815011978783508756391982762652221776282562686462967292812331131137168932138493759604905003257012744326943665954792323137435242913718434531579387153680601456280214714014079099108196061375982117471675971892767372220625243687894465305949408693921041384981216061108829021894805076751128672333635688156366114359286443589218474338539373262677432920884551047059749763077874116883083057432800583493369458699998542791905854070403093777656159319393658893509341668433654396797014769664399089838980621550792046344832484895451270099992800977090138790473834223142943898718054363909096611449377951762312635828704062122277824969677042273461239151166950262994862997559185124388415996369624365723495353784062375968544546375709115486929601579276095745645788046726319232431176071192252796291824974379540739315599823486989501357906137279667671502625046874567253935208619729809930657819722653530367175455210573412703445593318938374596160335019117262817290648295784654170322172162805782831696640046607683199589820473163688689885543648789609856338916130618737516724434975952090184390850592581229285229158229363910976695206128066191772334456153515703379999925200411094207688411527525308233163351775129665547807635649653605793226608382662895145263646822877521872899476117122205900685470813112420945420745414183341850463251720666081579802557633081599552949911947647252760536786167204274813656205981753736921751630267512891082757386832364582624926805213438285961558026043016455336077437813556285871574509505442448928741299913173345022565508005259490622789032886326575125192565564743069476407981729545746075959952314645646571523874850366038594683264488555335542695597000171761086268690717383238440558364038150159912745271458140790686903796217104831027835286552064692332708969808635135712924734578530907462508353723293982609044461412982445379135563191178383429975435687977895978252205586297061398096648690471403931489454021367528377659645775937652822479734074358346287568337503437581790974424840181714978909309359017503857923563230997449874630814565630106798239708170009884584338590059253714932583317296264063604760905631711103336073692062230770179253237412241837528488101263116674238141039609597525685520594726850192814941219269241071713910740291171637207785635167308415507468847274735053110359801099382606884283353813780933246038469795648197289016505056869394928316614969908610007381737206497774478865162261664027560653108987461773818977036435382934809025984836451452953865705664771748825322513595579620968189525567497853444483286261175247796926996731350828005911075594125835306983048707516661648091625017842893410484245137564186225955242624470873233524275963728537633306829220675235579760084474503575387016886392363549344332661736139185049806851313658934694843087027399861331836118517892049667881950601909346185289272608218489841292357821637856617627479368025814717248588635071217039217427697978816562977083993718826369359861353657110551695714902986649199780770858437883651410070808477990631596796742253199719108409043246515713742237386755546681389932762266732375566645068497939767764509467951164127687585143151688148170326517743459325864091589958615808173566261486151657190980396473211343037339360184967405935673494105820958159643164921703933552790940134141488931706863033996366504864894985312209854990488393612398271164826017319714711636274388824760402917526457523080148180794729278463737202183831155799513560606262824724490064918578804850539528659279550934957534989089596728477316360584540874483640916477792050816172109939453269712212829909362787646386690348662501777935668612237036837062382737450474034465575450488794915775496677106343412977055065773071966218298539748690355517671604897539935216144497669002366154148788797926237261212256895622761952604216158074307650684417809059714963199160372626812115279860592266792801183704035128038957307351376682166711214786316853416364599929429990822634820510838278180617396238674376553725524541685418698262647276727175815234468011048477332636522674492123201664893885608790828206475744460109898793625148224936480905516004868191108174180140043949660581154783200793144281726498648419308528797930687974800580415458722578495034979900143237874216211705445374362089954779651847247278970785408471468532926254826036126327789947979076809594450007890515806366332608055121135051702156807693278904967117703358737092784881158458612077955375690556777006551488305347614679897901924750299578353536227144136902804716808317817580240354416509395737466201333504761701757265649861473885545449200478001805644225991013703570069820329739262406893889357400594984611129022623832132146045027252892351579859675075152280559623190648244491155949634264535672997019987792443936864290743401367497427603590981937502395552125066723525265171045421275072346993735894613909799337166177234429179952463885624177391709445390300139977002085307700723517924869918189496822884161930456085270865144577375543654031249461841489443392932090900693668999865243790143047748156098884032703612451190059647045452919395832191878483541922071520716206992030434830187961196508684817503966848828540292218514324672232582370490189699969921536008808744638864095375244671470932947585840508948236648391390630575458276166293208922619135335517167453959138429627731310694370338313235638384522484823755787688475391439024867515640290384231227396609431701450757556101940540818149703813911859669911445095852332046548630021323219839628955940191680267223930007939777440417323657871054393100974359883951709073607039765595960664276951130012690607200001552246420481824276898204628554054241313421946786908764429796573858295176396301314056912339258325126863818137672922779952763518036611500799662776785374324338291803485142237473099269640729225105459072387256780504737830954949654698377803463838719331581973329258641529398794856016035443766873558242922924289984268887949739585938124711165461280349957098397367495146323590268198883690087144465070850272727165237374142815151348187873881613239017146042382234211072039840358612151780259940968012023527274574193625367297981187059913664932204694670781043813147211202832787827655854945703499263174566090662228059910421371418538864929630375085357800185872456223566151713847125637173522992700648484849606757578242574208543950358180474651246253291223597808233124489898962481473077082097010021928138858494136560780870314881031993608302616406080642738624472286628877432132563090801370232788813827955695388234900159243981212817067500394407106325830917712482050996828506264692576080739310992219847059357116971151710427434977226774764546300643163604165096629189763961039031528126365143519023003620458825892715948152978768793197512829626190340893146707604964698018457422011925113181766506025139953147090323055182964062290265663138239974849514812964944669363949610321632174600244584144333936424840201293716491785589711344340850262249744621975616450535904673015975559003874696150748948205386003841617508873024722742092220887239241010049283014820989716412441373389133348978204887740912769560955713894050839594075795910569487572452668660337732079363146697147260812373233591347105265073002591975478384885723271075628864502668870679690950416773215546505334920067353957095719825306481087692151842087777109407747659542665697534947400728441669660941306673936708933665879556979407233615623026981668199045575520869505111003228067828025243490931334181261906172148284059743549971220188907461214227973786292560230304154490329081220335484260419429746610463123689727709127449523307790435886638075395082267881236431357076255730140866548582647407922392644589779962595187275456436926415583645117360291333719208511848838090701513302469499142499292841896421372836967238774127727985357657096201203186062261515273066127837705381307032741412161152391582631601967872212449342532367858973775592412617857204078204002135575970380428210687054024976550893222717121445210826400074329251208365769266226167629733529741723539154918946710299372607719046613899173465124416981407765785835243707246928884071316093368640366104025530109393363305395666113466087064956723926998744836739780461096664772114677634412192109328365037694762696981753217500178226355311596926999161410290775596056683981439433827075806501734524336244542432732927504627827491883325136403416535086020048479583824999503808055743039266220892583622115936833585471056454586975560410767479896686389562499395834098579314814532535489983622120604906254829916703936774494677073525898707418135119003473944740848960953916602577205865207037157709865050881526178747785215629741376108133343940262677554883415516633475193740958714246352632830779783336635083433361086151102294986782876204654568027875466844294580260852962493260878850412858181989441532128521480890459551955957454328215216848253701669681053003014081162321015712804610604277065638324469708030763744991972892448242625124880695895015193343804292197096318254218737751613102557146405767437122970851021713201519017352689320967807910685272526240555025198164269332721688176574164889834832329007985336793244917552794381827309433138774655127504032351329779797184730513585812868397549672125480967627199450964488506487849362677539925821493871217708645199336639237952187347820425245997980552611420569546441422889189286198754220614833162517266851044436287183284338179519209512101272529319527229714331044766595441264433715910199431204024751163199905565175435510930605405466805809882814774608174066349925627959289926333083754297412715289479915906143505453792787738260944603611914181524944409806869411344986159964824437572714632008851386137804897634564277271168739976922297983640760035589039278567851157768329663912963003874452672695671821498701586729501842684089867590422578478014470821530978458223762934042302186944720543608225183383975000244381193155068565191525245000727344264398392011011186413315817382529410931287976868237938791817162649639391083113509559878044273018640017564067816729788106027905392856313402718668914601031057192649599098162201943208647791451047495397826448195987951931161744119566145197883278648798135846906331097758357983970865389834825238777825188965149237682696383952798402145882736609301829757346920559758540991148205258928604645120435024281009732601703948720962742831486062212362571623264078670129169583156554647611803181522120829390274490647286915060337747412482609021045091243956214922315199437358977619770705608251449092604073913488709923457549058773385013324805147446673550210879852652028677846872591075431914778309465119044650165910789238797314757895096579503665843882256836360521782866894252867778733997818315872249687582198837844855825892159963335688561983569031837733838162282782574586263149358797901474025000385322788525699551260457462372696296575274254553967226473421060745007667534803421948383968858484556993302009796231665463973240491056610908963120326814676843256403528674260365206213135748486109729226222972224257371537949944832235840819168720852907671034669631779517004289511734540725738166513316564268580618692512982270410626979590861901645636329994704475915000532224848053396159647959785839642990183092505001353667519692806733158620103411875011146631736240721085737999594704892718511704410371666180475917095485336903977321747464376691561853887925371944351826610951142516349204093546459018266706684820856163151457264712439644455971714962645865214467665256970627792461418716035465822180150272571735661143620208822508846079634596233654719309516087420207681208950362604049602666910390479840724457837544943530542220724008173121507558301299382684405714376362191519407917201479197666866749535048076602115114834378470730039678782114316888964616270631754552364872409733699438699614660741285020674656456793005776050597029002090031856082906355337299290581106940686470664845121043041828534782618812952006582789760665903984903329110073201671092805111610499425213127576479138486670010902428137925664036155771557785549633335662442999819180995923584038129183489914624905793240215462509775317373448381591084826756966456443198554662503402533670370406345818869642875039719141934892982195631347179936653192592717649156604046185371677618796080052249774770654948209132400874154054772916762367440673294249595284865569153012076330430200038121551213945582120945242296580438292889272581520710954322652143472161701221973020045830343498968111742009438933085864261182445162030692226213718953563245908029949775746203982171345537142924928284811741555409186461787173517526665663173801625341599087284625703574416861344457815036838678594745870487370933644860286703000989217857961354236659478560520622781929170733326677425727387612891564795045019875836693830452385750047979283245592859416603263051912990860763599751665439488055772074069808843381344336371457413840237505086983466289385100236996265321875704073059723706580088757862100825171161231237781314339862077840928315177878923390683838620138063634458003394715000940300440857406399382328999085091039555161940051920761351744446325771389654715217798561335397480113201332158185788075195568141895637565035458841921715851373718924531082089879692539023345593916270134300743729794349766860666493884278798010351573139941637325072965529298417230290869722426116090016701800637898250343448997579744865974607720426752614878582843876159730113471903632846273246273905752839304763473817621682190197577161168588210449473214224742357197492653705136851668701184023004342100574859705748167898132787650984538860482136102542428693389977795083196125099623950657146197188318385601192968774841725645415087990791776772859151593591135155403450425441654493808555904183170873798158087312985846704559837042254393717647214515516966349412917400929874350364747721452692262764246710266124944088480432329308855492503126545248515929500225394896344739104152716130153316179297170917417704526206683637502954609251452884913026990316983547722238166572316647436298737822404300818008565669201864230718477139230180928999703413168335139205891729023833245452605855346119068854288458678393350366628497533617514464606003404173897782315146733078591709836800367837852458283698465445045194736840178342991113224423677904016146131860886001189286861854603380274175686582901470727966514444696238591788231064536337210575914073400679450779975320128000292890529959354011987877616265503908852295480176155735620026270459444955077923168464790873808671276800696173175566015995681400999569174755733232721039572927185519921272350612899206777902627263337658748425641429819042350565318377826926324508505267439866644308663019793519396744187259014623767520055369491281061885281260463485913056588396228961305532017013147880239924162780413249655091712949192995045976147914874750611949465917911906876095788567820408860954968992036810399657004258299123831885866833073406978973014504050871562105748960099611612430513878576761263611126552904989402855706467855127430216576839637305314925095684733247612070007965671050359088978042340860337317206106194869756537497027677531226384630338977251394755011911353450080606319442130138079906833762730405332942157438166114130154987343552018209985939418718257881828230567818553259569606103773815638982852224169283412766465801072064011406695502595441539952732023675356973555286973915708056147434972033388366860331772786447080005356486013247172416251952868807829819140911928329222764865419711577457275760757704573495462759746920290431278698127245974449421112652719036044089415428930155391412633681660327478110637434455739502038869324796109143129450137057470040651825789496847688745402012866388061384827825491239185644847948159289124966756884648880121593070669668166872224816753175706405754219336262061786389324506383385308728825476628802771524355384848199614613227329557639058577008003595458666768328729108575382255662783145801808144421828107470643643504230471625165910896776968115546332399985452963745363149161793631785212259874730218803549153316615174848562288116543438774651534357735951419964962886312663163819675399451996896690296081708046766686008226800395206275735036035571694369867853940387040994547643527642924894907936207593388017231749052328488103926044373449167834019930880131894757525463261136916787898117645986391265577865339519438815849563944601539403709109475525905878733034185328644904861393987028295406470835192774992057847233493891300726382031001975696746669646073139208365065419162317453443451165933535884444519115665304551076034827502757685699548791637935096133999665383111718461325743664091809311254659612214086353463347376033188756710646358413008557390592950067439282663415969102855362077375499558649574211180975142933976543447967987235898468774405813953904165975301491916263078339903940973395772173590537594225680383780598916182012603385492006677093415186330147281272659287560861002963160721824596470093356836538116106804578548214105068433220662226421647081837147583684103118082601455009994808616396783537220948050661049070370676490060751662969394470414109669016003673928769382643977208004835716912913179387043298606589637780290121217993908460353693676524441864815696292277528922441552283911771029629021924436553678053357761144077891813534753639018320214903474277946561195731375791964217909733752902625896087108162108689456362253542251981119859636484945617497397461564197621173817301129341209606024581402709121627240351506468239727683543571699931832311109068046450781628568027574147096919872931160285536400865132939359782235738059254346276994118596341037332776088364250131688848231539809168669719366818246767826353661841328750724915054959850499055025663066107049845438825714293694847153917852062450632467973934282359594503161778334582982504873766909122250453340079196961816335117636019008854992913311769168226078629078607255488518452085757318581386733098103726439375978637952671440946836487949430014085854472417401229111077383993431988810621206541380893516420442008721693839115254808378998903655986244059455306597828247317268062079771442982971640266870112635156609375026555108952486682275487076578706421070494763230773737025930342231211641711820449730304172990704601815776427460886898613756218350402673796754435628263170781060579413178534982364272738914314678486542875464585054208214337350230868939070801185398791095646280523575945853489282180496231100274672520228071715459989881046295451989660029041632827054319496208140714360752972265123283648206727726355193538777865599634789593675652860137259051660821411643697196972730660321328838881724487596447129484945421271307148010509494454472978745297770469706753229271126372499475500938553097889511304684485503733840842521638540176051727854478916548434799940020413418600076494072295864337759169852568710821896939393327548335774884982008978270383248285739068704811417740727997291332689704348359502719844184504941724933931895676266795831880440151749825907652057032525062824905687684679370735693422042239823794307245358276367486494433767214127464684445365209179082469189079607918973692266172452057164911699404263968138276073830843559921615674961165933430166894220451936251522482194974183468610807027632542355355712916854136422231583398445567157706684106567913464412273828192446280751612212720572453892050623647678186381988906981565067957804943187031783389147045575482275964277392583397209988835266421157963624020639243644374540902569440545500916962032313141908374553941216221946735590983445024554713060096368575729762127194099074987081858793050751957879100204096515900284921249468121717852926851288213512946029263649071994698272771745934588747037394558937212320033371120420487331130340217737189414269737865667055436042960711564588252800795820812925478585306618906539138051954432050027992554490862417191956648035122447907728802274336551172423686696445242131137201579958607518391526979948474722723801646200119860864616026477167062487004643272515527411119125979417425402945121852056703815106791798872477594958396000060272720489276756374048178887552736869601001434099690778738987804663864629322770509272249273575576430575089526466744120867448794726242791373665210988880680174695928647901612342300195690738227117322167904439170257324116556257911675438000715527283878724775890005537370885637642955475259620977092758312036775550684856970418231620491653305096582400550580908761912272542733599983600005852760761153295770113904444227154259889201340085003777883278952719603899197373190560876875440941782009649160548307570864820498993391932801599087733026232414287766447753358785229789973389537166206707239744405780594875008049564565381003276429267612467028690700544458166805434607246518580855127455337951386586827534873630387586965209901348002120639657081384443738747080580672954142025522381528979491688798794132915840510347153409473101526627452010995976546808975810544254283006204239666714680641926418825376081645170287395459185274111284583553677716879954294670376378008650689726971438375278718844458330357456903088444999786857775905038147538675853585361371036747982791787236575139950752140635285569571142011174355992990975245208656266307483562486943905500841946036768082876992155576428240767417186854322116010985855256693362937655572646959514545456244170360860712208027064950023364642599061416829290545525845470873014711402928289933839588389638746519070179801203068135048494347310111258493502130930496604474766687865091119718497224414830214993983073493665366060806013572553910287992771262364662708578482586973139143514144953865748955594836221654894207825486470605727127732532026854170548092853703198739482246570856488461177221184360534130563264961558932624208199883397287040167267230876844453411689915064833272663255969246321030441179969419207691303427207498331591005995069101069018098715961399958641174940698735583411977219367689823929960321364491987616322355192908708930762875360787273191644630039319326484474894763626012890179267150354888200977875853958425860919451676814661236358729106639503472041665922539843492511557132322531858239425911232264393828582742596489205811596943371547699727973554871475618931478078983382857970916403833451130018288255086652171420668170347653169838386523604700594923828658491671955020141295879261565833284174118635067737715305271918078500616663385949035181964251927859722496857277044653067572945977803109330458706010300244453785309241946564444686359326083383880793531142151613686843538175054115152990951823164788668011117094521310801859834154559579440693010624167223124814145902795941964323598930631884721399720801944379525778013389618949546691403232830831658088232891785357910495982714277168100880736818448852450195002856572195954773799401383225212686501709884226911341062842035875714186966700060242395722174980793677121849485326795602275442250591643277993386752109169306135549539126764328507104719457504668125110182367866734316356087184135953086147809057728787611610070782395241413991731370728508488007199656396613333967098264987595013167588978291562505584441740494715937341762171013849067901286531754691402471611758816416021854991891938736409525709098663581489292711204186918153778039792101784097080369690091376216679014462492995378701321183730114808978937460261699838021698935287287628510127496343245013147613457776848552554796487078338555785165506324915388700015657583097997862606832349563295730585704526600232481619337399920946194808076621185184513957192098182106807946573356420628134815722978327272112259598637268146186640722775712290362788029067963507184033968586301244672494966622692591601562029793233908859016600007879779756540311789090065484208345659634194045124151533057315456751368788928944351001273363588285538073950567513352810334520660277953529532589426344668956814386372879347128945519832550859742134532666076332220975049862469891996144764220127453622093124166651312017976606900302025242442678275182373187095201158738992608221725682322467529739577770524536646080324015248039260047713907612133114450657041246225747254593117364833717831210364802828628263730845317101948663653080844585944090708971771724134334950515863212951723683909684437112083941952929761623299715842347017053005678984138975386416843956407898527405616664142524356778147094159107083717571193675991088911639630190257764061426180528934320326790672010484867891029027233774686698949218622827422526712888854956423198541215017413108078552649470569879199457327230947748812309491954290888405597065964988781298345326933500770664747204493718564633222866527351837116349490518287221141351169133106809028130325201073711798915655505555036286990950779320598297268043286025658766678559479033146739857543350942866594778822716562210024823517395463643460030260763195409158574869810183987717585623894140131190389766583373316424636222320473484172569017788852484658380017484487728449799437295363595007970352100819199605496840480085116079077308306250885662122657501191986105682113294616440194192960640149532192797295668410589462638001036090920938152860319859643037706900091907900166084681597986309988309583251835265818238935312267742414767401287818462737430265895327160730956629334558116141257946609396293345023594634117943100582340705259836495732271679424171964547500398077727433616951676272971193367848217279396037789493682684708846540932780012898024892784593691687563117632158285071031098402232257952989370724175405503208047126996490645706228893322720059249112183004109314478926876482438462256277255303618768921682588415277222468213772494842875935698855965704387374466053226406224500949121099139154528136283226638198874278872957058164255806294912321761292581386993804766232382834868836404584336156952368807799448001886935513453296664030308270756072055446658512744933449521948719709672973882987070301034019519424789623962586479265000330191031572882243332112242914953240335700012911146000941806111628014815635790169335234332260469953422464815871526084285788691291616654333574199380781576578201261146496810680862916558308629705831011466315724066746036106093219177603777025600561451896037097765980388483483008525046014179399799942590833680775154115785314580803574800656677110360374142224716199739552425442421888445405911529930501407260815558547645058332606321715119996309830723153647921677491553912884697628794890187352307271726347364915953390210469827406569520376798893329003603099811087278051330401088296669695277632535168277886675006866741520295964826872977674822095981701250376407128510457659301709108152198783120930317666139451957176654927747536592906482867816614166928831465451157969344309830001142155435785408895209613077044348992497098525079019374183704462380865086348544800648923687570346363610557001982287310073768966335575277640157163949240072544283214589628622195411649686437963488245346730248889691846878348216951999519631829250209154871229047142310483047762198544654313600216350137713971466970925134580759766015901760661499017660992262176404448925014659233018124566281840437860651691362476310207777227242232674259224077497037451094262378977279706942291285541311953340455970209029505660256212385310164558002297488751882501914139588867014587250399431462282926261137314811350439956602119420113418964411565610659144848116935740674160090208026481049988916213584605071928870056255734376117725129216064448045426378767693405135114141007756827993157900465235648305322622097025128430693481891611997990480976981677449553358196922160606835298672944477167694493690752777111037656051625307940421355883901266398935259097476367363522944956996238785942554514369871072847631600640913917283715363666516747240895427206650156901617260120817630438408608598296088279900878998155523825322197137572089757800546259699418085915145405560305824944879160858349136520084463980177706453409092290494282840193249433339471106127323426093819926979151619608831315677867130807288733227526187679715017925160044303199502184636375618442792345684402621757385738040015355291194801089948551216194214476213631581980139085537877389074768545001436948736235389636227210835177782792446722420148482590711492668701997420342890612058175748738277337437558054410093889599526664234527055445327285921130749756426523621643849106002533979666454421846063410150396866659604613784420719704070121856184232344611098659799510408389182683418094101548839453352119188797136443101743728874107737944941979781978486960494771576777793916482577557538826509738944305995047514756837738935220242956509927814637264670440608674996186385625038482148851257679869933474122108994076737434069225851158962543164651164877526748540213220308480347317433910101069417555113378041773498194518311435552106541547154679463616098007303124951371480258437934371029326393763420704889222972950231013511990173762430100738416183679112618927121293168159113157773803934985045357415840332258968062188617336952907006647758213271538392414913466454897264080989961182148528905974934561171624881079214530800808369004145262743049888668276895036734562308195959113150831221090730465494487106849277601756178324021070519657120088504758454177326633120173438505249969352649941771907758303754493959414666761559792439657077899576903839941562174332063969954469501921363788173142695063744366704252347415480193373229651004620959258531845856391829636044902088908520602739984671252082111453671350040695697916479208395802927405174574679800103724622260352292847563773461369587555271873914717976555718745539043428926145473486585727853963330358127464299833172128590406639654047764685724957053859861753451114653540284635939055271849654779042491274708402025351392104408387527496554248499876571377854690816691625541945391875113980781727674398957715815200877879834687268820033377078955941372376479816773399745730383471923709655843645071747159496529183718847527301335177472305762089349422897333951000357950007782395457885241206146846887431832498252564479534869243098541900050247755772180296388806375619800043916274736940520136549652217453330318550422805757096273218623395887553081828554608099153785434918655234704642011654307431682119220248032622767516933844517682724884231340821642437305456850398256840222744386173795690480860154312746824969426033896637062042817344950536476339823669594429306246843095671613003087030063871874436175451760571694749407011677781342638463590934601579477751323956148439896647093228021668046228291769001918598915466401654498160490035457715574035722084709830059918679897599306879200192422862568247927757695415086682301370786533171984627630600215513085496316412698130493289479121269823711795917448931657544816740720482118140225966360421618487476988720208665381768572453921599627859323054179890263630351724149371170282424119307045325078665558501408873276606767289149680928608343723259902970076554953651285389688476128119232732846767206743283173304557244930373328765344528378246430593484328859336869542771463060010957158301099622418953761175017715154874572980574518401114629610625972555793619808730741542606541318061531287696364602237977125178657306441997317354892645784898841056856186942669719782337000585627229659208387522130291815630941886966639471699677110551290988414863572179660555539755107407992045858866470388223182488989697782988628165482286244599462898697541490627521831716741370556679054579991500736615260700229914092563614024027022979471847316160080964733274170626900864622605036305053584546162940854166273024354063883015772530818181171553241886947571436882391666448943533892576619434055987362235975908017369670630393965780259006391908602089063190200002799026463359892179500720957975668234971510463147904247321428615471246228820756335349936179896431862800761542675288236724188723586459038319784273749562384189586488405107175086585820804465179635757301220756895261134165024385880092011999399402673289279731125428521514074562864582354660130686269148677488069227742200627093721128686323627209698696669423057491504727353622102044164719357431573099441648069688738323867454972414331231080833524422117138766533924253690996599406844906352598073701965450937243127240050457805910914764721043035779184695021045400871274122498358010107901838978906196346392627988385781156768261850701878648977816360697017044158883300386819671313290987323022674806537213197821967671468055589838531625988971925335105720996747327833718723477599816441737146964888383766264182656341880007475285350108257204420141626962283060839246790362892990803215236828447001492951339857329020238146501979159118419495781589900131683380483467665916248788378406160083645656307156794964484476434671304087499842515935188764769698406209642711816706091705893340949760051356068500664720744938640536470973477864698351035985413320488201345901326211958473645069392595583118161493367629486741534650980155809617846235411874199685503051076559761461037529901421108831534302822385180765417759333001746694035569235141525597500333179246197359516633320009264728308087504124325012278090269888832869662960081250835208429847051215965154396923468462026528564966826257855625017651198939668633902213958810559361475165958864305331975122124115326158899277473310789806286597624594413637007410635858077315280722852130043149291231708611095449637266462083108472675854862916476200510334884269372194430740869902095458456089825569410667661965679003243832966786094459974008623574329689313082550750738953640863980718029803520508196118845958098426477544015585265294482242621893733116708706465499521963603853062391574187527809283134890633154855899790362117622469996189769789868419859960950141410008103259609826678994126643709072679537272346459234258242327653012988868878632649741103586425338957441043706742394953439974817520836965496004043422481095411656098603335862054264600286836060954865180686009332016944488636560768767667255332285817135389513748953912569721430623032775003139006694549448852494096422714494164971953355826205805717121721286708924382631796521243023800911012409195315856062492449070872945437357118329139727558597322267912958653083273842813024407146605839197876456114103352111008966736061524766649772201594847909313141733639102799943344860830070434979628591512513119801499313079452999674707123693096823942677811782015527989047612573968281351888867393043216337112099425234209037143462590462489448365650494041371583091301776511813270500809302169362406294792905486926259690591241073777322335005902835652926066470434636827367692817750743344760915501680407172430510808534252633780758610528958336024197195024703197555726574919832642829447587444058806132025818756908642106772893160602644622457930639836754105572456923561638144107521088442704635464090770635668817202482727958581758887820439166510821519739932001993078025726673337345783476136666413622276168823787120708466476301226841152468842276290666745222732632438970297559091041436635965913104973583634149480000548875898067054094498839618102762762855117216804115547349358912230358697757970438736045171741380883568695631276613396971018684489919810082673156661126406790290718775156008284185298211071221061093311927512680936027645944041940761049460340924004627843720108083587987690576278634190658413965475528508968414793317635440851301056575647196942440343283055600608273492075398889889618760460045606813914574513043499801001530943964500561970815765199985505345341891707402447416169448630440032030966661940012171983298208141350637809477351393791098635841059950121431523962337101505199417805045031278363114528973168220590907468991508035807322907323179908256328801918244620570581430586596238313343830737680959162301021135147514176419963780941750876608283463656415760002171763869478824352073911821997234487799805416205334713352312620650153956136915452178117664567351178409402762900487955090144729415399452902500189776500885923021341091923391709065284363646332397296406526772622894230982288332252857540470018536367787251439634300798640394021218021454650098797782332816523360270271971237412531931421200748962564471124578334863371159446135265449157747933086937016464113574789093456084619422517774026297030889163687969240747080620551103205703974885615742326427059664632759945554826209214995280301819659499074825009417862491045767665214609461001891706998236270576043784325132039165160699322008923649495306276044909648914582873098334472191797002811784996854954670569326150168734282229576531558959296910757284381968140194835651316889118164243647307445023238864157759655230295407516489126453668803622040063898049510166419528086936725112150252055245139209696905250716600760318154781185422865436927224786318428732330553003023352948496017651120526424122721772005834016303194863192551024604106440944111551271443635430665695822661610530939986120038602376168078650305717738583003555609959653411907264441105930416907267414849156616433201302633610286428827059313741839738694110635833638568147376523465046171212218824452919846518914441122297962687640803991076672669207886674330827514000983713748839906582375062528424128975956573284246498277294914419892647152960528366101144786153279364102480327095354028082533890253411257259835694916624657673039606558931501797055383376319255745893027598016665475913208227218095948872986579646465299355980846297092272586349245456694638254355074587854278674012625048876473020813496407979228150794949625238212241161188580069487700367067274025675454115607998620429552239946533308831087977330746036791360106616154235451803477948098514296611909146759477666667663164880041585349361403998227573579107306821601299619610808443300649400632615787585496286106273780921140514734652627344287940857103649827344821958552276427537939616483995702289325177765321967832275009922565654300181100196646077309491780500325886548633754185131961279183834484012235179714069158436486956105600255480704144807812636375822834283813396105340134848675278357402305665825225994236479439711282221758869055305064250175640739995790435482464597994404419373575527675372646507282642378004851423128134051120857955215060438944096699210755002410465511410476053048405372472144720270219707096608828204283513908455223352812191173301790841785881614299012774712451072458037717649313372709357721422831793605292505328491601799568971469432953901548895895386404331672946615158535392655637257108074229529023809586765436074087238183186128520541713954122216757554033554707125025833678411930513781261380193670204835929111737053724310826323684638833039760600583459118319337882017254197482567243546303042449935349086772597131069932425757899688258700987495569239029060517885073369030254188562113458184549772321576326394495498037389763336827490251065023715866760566161728457768510646843472039115557325729464541007975658242255993828358709425659768519019479284803174710786282625449009640530783550922885824266436596885443036844701223286370827650148284735536239190213545560844171639506160544200101965370418386839121522609678131223785262323060096552702538379026034570129966111388391347424818003075996795389810717846080602251277780866139950049389062988109525255991652309836852927332191102981058301981924480981105194252285298789248951454137081704400278183724896288773104058627288647999180735057668480854386028836516935620003588602240771385528033535958514425603237213599733536459193343183665855515518474624145973502632213281775585490182841222771359479557197906625456782778836058715399309994891571678437099014731341074518873408424383300149286885970161647445966836861644584390148781263901820818056051742547055439803305871275037999340960921138761150436027168463374887852990856753111669764407598694609980125612158890940396533523045183032092207252231133769064306893071639109719034016242280365013523467616229747278222345642509645833406625843142078296987317969332896215706961133873221774756594913221596263112943152066001363319401532381695887966451072041352086131821474113798281948547649576885367997128665483787472263821348598816638660365408869590499175190917065328464726464971533720681904870661829758109226780137421195844386304272841394561544081914392778830893822626242589910037158322809266464058481940324397143863311376301393297123351709013353116303495129715021675948515079268769612742806643676422344188434176026271997551800800165181416897146130052054144349458212528208788496977510405292549715918972390755643586856956184897173863820338511923457939085782191028928149926127196835467337186259986674193168036410675198495058186313577371140370169433817942402545801273125518665869925068546346792540217130206002250115549761429666139171037645770901088855031857360555858389287566665041779560828335641450383701972311726430719659472572321205779597006254940146347992735614888927269671949236340903909763762809684686316451200462201792903065012686323969903657179591171738243549203649133544293398914972290746079657562749896824878397978971807661213597301296051802431620448115028766839039105833641926537009113991758110360181479833000027876311793286898156720723708198760033950203090429795342817896434260229543865200212700723937594359278641479740798946067510856128448931635695304901340864347779074755882710586852938122958859730470348791796942915645936115777497206332882976276368832119380910670132774927613959111678840043831608365987403252938157829032870691511946283784142299157450848770342643829289023904888323959709852933944576810357914394242948461126235731401990379742564801524193866094929075752082266444662652551990824553780982074865966788506127157892646500320084321983188864214607444441932673724785152759706864934853243962838903768443692485582845439055684620799102489744858495654319264767668712570750970229666449634005861330570722474774239301041946657796366956093008402724213787926919510640470238553781287293471355608334066315723483293750988031345927256736416346912018102927334777983054830621573860458932627717169724777987061492468343945484912515939669972978280582192941292533190609970116515223674506789436636394299926658374541358690498833702486246879222804164720004913449726463720953801685222190977603101799960584256601932568008353055233238324562252850568735737767514321253857117861654547497270241463839032046698859242335700961270238329220261828213652419405443559130737784411914071672764000989760332916863530871823467852608927963273484979068231580133203904614658840471482166651885089550557920209310328976784904000985766068858053141508972479774694153394381405355086013568754463584084473018251357760714740200482979418212974812447165895756865557809794288024092123645734253149783013446408932052043929920982417740106500155177746253818743903430935351273898863065878078651376252142381743460342189076121500422729998826194065030448985336175773628749461408711249064595589530084481636542807740197370681924170511124344391602237165427924184430084874253363611440723034271545661148573125707794616659776979445324992871429616218299336359495056710150789403566548486872135861970040142178948020621817474446044357138319794901795454018511620259077451940372845517396446600447967352606756792317619780184154281248242787057979069531597519887299868808072603292958875265804661118843973043636341722395768028238093529353539062774016032988921134159142350630740120886376412636728986928134897762368943542689605011662355249008813328599430754012609548339647377492587019663336090997796185490595396197630081448136395465837989253692626332772352503283735486783249949102183424567916693389208436552608575237855192949443094509353928606035169613649022095794756498478437952051957617741562172915662764627704365374556685072714039339969271521148513992173155302728320477820114629194255902275269670573552129521566054186607441505909090621324000230255691339087423892809692052442977288782659076865465110025092756429631216765395741438346086980732008741049475417007695295103057819343305447796895499603350994328921708041270780356800591283933255241602589509375260035332694848961228470869991141902381865796259288404090903323522730238329953119322074496947046247025346887449016315975873283982219468081044539931742162927067165254498384646626524348365193375690886679178568577406985720967714931092961144658139213044348529740214958746571709151011323715072981216583063014433561528557679315321110829370467431685247196792549406212377310911342633997075084292704905462055385334517476076556487430106920639386788462048906939150327374914867342303456680897866139117253573769059382468840332510939733028338247821901170974391842393705493398109959635643150651144212885205093246387665902827131809618558710601523357208016238822662070175878583409610575441689580524863912696867205696027863533945858888613224813774798381403642922139183763841146093179304475084897574070267656875068379724192212352315208544811464732432469280425693594655817164006037470067021626765205729183046840697389956445443724131877281047033668965942017265095439276232707417531602856481906820884679663317912097155984127731740302798077427111566198875697874586460324816357288278797364917159423681548354631814283927312671882228940519006854580163477401409790214676613366080601724001921308482007761820433765381853931217170400041034834411886691016683417303466677752384328898715407012527550556943453351806021404466152413177904238267051276046900052257584866821106783138365248374555850707742073245510479026590769908111725780574780177202390540574288598453815797265635571714395808563698686765841939758230503825626093404378091847580604107719080161794474084890095368417801380904149650512024767093991729858480048205615677408527837000592101755266454579210645675667893809507154925465025545339033954086076909783236334655844456861049944675785904862726795077246777979777050402579363846929781168020473200300379106995100703284028553515490911373566934527054499613882925976932093911658551512126551971341011055454184963014973792271779785842092586231007885541776068645700156131108455108842181614811945673503742119505883482171694270661463114674434027168231166722372672651245495484828223688750517046116749874110987010106448651391416189350422466274234861570956005703960539417285949608705059522002966350367647134308953920295702045318020949392598624052298129485079376991343273149856699621656113473084801610065297263156666942380079446362771378400038546404563733889629656904102782534717553748365281612986483201455108116997297544917603829560324522271052629575123595770344876184486209848726371447335412892083348481980698761725230026341555478458496305518144677197405805306279864607474113522117048233902858032899282278626694548984309738326061731298774127207525776568813671360797901968653643772906103627737173679169622555307970303648590565336569523023608122140392250691069237499750014810958067128103539033157536508265314915298816694215811428766888360725597643694076778613320001887947575129854789439359726150251439024344638425386253276124388409735537920717518263561047299152997886482909255329363635867285075906242253381189143464732901580534838363468613797702243636627463241265217630247149694675733404996389044645523405896378600312094618964535097613213655469436400227034715360375011098518510363445917456883219379192877148297525984393328014693136801257906720412532227366126652447810344896721563537962145495480166502595831232574630171177277372250076722034592959121130332496007851136973228194560808001419023509955440929575049435341629093713795752053349946607534214554465286255542429340774107074997764978986674207507519154795512620105228324519146725659111607135015984462122979437857389644722521496761362720038822559251323879209291124284528959071659531060936353099033866037074157034445955488294457054336018744421863202432717661494586643977412085492713387086121568094848586252079142784417866759521318851162662259501681380396283313966767669276849187444841284231205649541639483331108369879348835173866664877830114368769678944820520861713442995368960337649486366892295439061250342769340128708460326065140765298908220311169502018314842217586341495064378422777571212219633878889199996173447922436874605545724964999060406681048771920382550216683416049726403844731318577313411297082582301309172989027916486032282654697482943294319462285500437026747540448268568535922442107748009293787863388817204167898215767227043886777517527680878595348301930514799500891601258325218411726566059340303803512548014961318060865603156978905606102200885604985468813660606766189475668591052422479601368342445710276546667805270806424579025027636481563226893992972687748893538916695923060913549622186507249299835901061793963322578224403432559586096643762192608951517594931959047276781819354609935274177644940997253587702606928993830533522647637639022451237658149074961395465841297830086317030159364636477985915717741334263356727996992011788451706543691949774728200104015057109372202735851427422834964146253482438605708818143836720038246684517047668197541982996595670401871002723883973255098146936879183463922671937101342610505689736114659289390927617784722759080907899029183204258355315118707600797657445906131505529857198407934871681307423915057060371159857702028084180239028894632128918921299823802645313058620764144185929713051245540398641246870347895388250364779451302912177615591092875963183103874754163385808252151930326239344287243782426999627210793421708367265028715552608685999479088774554544438356043008756162072047710775017242028386778159268765673332634946854330224805809885486102746783104452136224910003417333342616565156093665253946287607950749053310803638247460587314307964079146188976635483987766458100128065312670916744906474423978928634956000258916518803486250380856043090856486385797059767732153270835253073820418106874997286543567991571521224898144755759579087865337427413920830142765940363247875132221314016139707589608743157258757429933225892858864073306025350885517008363957772446549686125875664925354821076912796999835825439272010242740548690921779386710522725152068440181324317787533865467482487928458997307235080231899473137929720735069976634790076911487711295429936681639119216519878155374295256604759777349554416711949750571523524095193070771573236824110484650044728941162677038224121551336156655337154550783119937151413782524564986344809983661072836845393351187380956335880650254805189258359592302845995398726519705785228091240792134703384619587895578805104088195858895712561289271668228408246205502251708350263766281371695404952823389838954376091829657748810511168454517248485517357869251847630743881408617729122586708336149222494639216360338544551008609618354534132148291118098324222111838658643557221374749283920061638186181967235733577833282039302980042314640816679227613236706100454882775982652819349032796476691902085203678656828309684144776119566961320265650311427720240118583746056640937348629339375667716341219028137257643208307268381607710439640906545571129182775843433902879466980424962386287145324563447242103054312614975996609973207176165985517460692483540148139329030616412188119283086108213729952994518286171687803537907554900276544791925578141845777662002327784737074229352157078799143429990962227639120199689277961813443384669762682499065854216849124807818139601768152684393058517974844002197334901467646943944067062264381842943236672780395340501718252758872190086701336567559573435367287235540476168903757017094395442883495205512689150060724980197231385530667912447870075341621215005852825767094653361119933559606194903670740255863552053730664202777482832300983593259146061441807798592843226693698195956837800352895712762358025681464924238977940941783068949920508836300121106585091988431066356680762216177346511754428421220623385980872652933638127052945170733120810616312386951790289902994363171879499971744394765695622359303454441876203913092441757741749106074063818378455198378784655785701197172492044976555306353333824311645106598464364848993712547416574195389617888351305789709840258209765699460369673641550008711711901096992290311860558577382004316715593071169985982681676636414989699230810052696587216113147858561800967521223022427077048786082158487394405455566489369870562862909199736055788827566814953850884104025938621005261681096449315640438614866759825874711512202706507175859659183877032673837498828206542555726312709661890506292582856371734467129575804453703903730488106389896746633474958863035903459242801307623194934933940536634696220602075390403919115915636876121527227600030272275287916169058749111908646860321165380839869175738531779984899026714947507763242847616532890669857661642582114796401604418384615973265018065592994284889921042052454498799557662527222447494924507732297125553228655098914523443094666129988504015198673697171935227210557405514259770638590431317166185352743123214207656293741529124565881761668995387458679731354343652004701079026673849840668096829423928532434717729121235013477368542687674796604829301761104955536629636825367452270183583330715284246425123213977998541174850708042426071833067137734579639878411427815256806541912337161500064372358699088876048857059641594981179221359695642295157064173157044836917800967294045735993012754783915684196783095363946574507803096933834413345035753528343843582944300078596211420145410035436090768181450561529086486029801188603321726768510616917554877438185001939771746356762281674069735589935329047175356304931787563302087200107676700331548283731226394522172987858883604260778487480458697585621786157705132513749003096964248327494094981451868562124347606883961826811148530086772153218001445715317241755530530587577977652570216652213772721688959504773240753127930299605253888500678712375120074886331803262563164581708097851935441328578976368401920564700628484101722265498969596799811743961149028535191122030075924879022264848633731094833662225660609237119945450752276379473101184893448070599499666946050293206951820607098495435578980376486567849964608939021376996914459718810336927841599153601827489384372034398398819602311079201796999242689376168574167776790108237252518491030418752505678914474724532759070604405331132807412423875708941426851159456150406238861454714274928483553443223697367696740680905161615676175369268228234524330363428721586702196357393721565203784366229666245017205428679132934651338218562470960124839621956442785599616378266217932077144390356151563991356138066083816649683554430442151228931237560020655659703533372154058008876093493932268740473437500315831913034266414806445832478880984296356603789209276166515910983466039340184543606871831655802527344246382395841587517762093142816037162421638716792681941083389933423504552922074660905329953511579599852102139626303618961094829664292369842574872213155856994316382438319892437664952120884981034948791506215258817253116599223687304906958862889740080306767618597933618847804812944147216791784925464203597704700375725179822106171463551462795483093587316208009930872184693024516109209350084561103795029369478901380687969999166388954430240159815263911149935837818796745163970043267997129484814914525199474484240657446563790217033842662621982804839164055930527627341912689934752404050575894559752681600060231143439975239884008880165747407391148730562992058092244378989956160682725878458923640681712990696529960139066696455527349222257563062314362769846138210514035840870891377359667678116315047137851434715918455053799768906898912150923885631413016880937292588289858005928811522273358556228585729340060198587343644746536602563500027006599292526664233046933302918055368648050535001523684136101690623464516886616424686610901330592871362383648162946474841524246873866234660511419321897831077991481444787827003134420359392530102644897593813622173304704123391097686561754361758923685235706694447566156768835114961087280755699136032044123795034896116147079422974103606274333131424582313927436402891717208255057060919955653541741254848875807886495231847847895099180709920119981577449256697328859460907220100175016065096180654485877095364325112683240125002013160062130696813598140271518848219658616672326734406098890589112639936413877854991097652286686994282262432919928686769304804050661686012019385198823647148805200873147996245377677057780092992126678202407537017189380293615955747612074031837379502943486319385228789277701623656781507799315627988704526838841714597332915131468094153613902405180218278022222999114030740128423825172362069849099417691401464315930581812639674629326000640900991802412036233870160716391744930698648445357188266866281546032738772055947816319137680958098913095202914889963083955918227514973772804559270005174419100550499937609410366125175927416230167130803475131378441969574765419304958928153162670819188809325147128886894193081886615622319685295999001345391337374829829846950633173070692373259152262056924983573091957818122495689905443378074678020250723956394903492133033950830733937617683535936515467887960828581298815974825579132529168228961944238808435962763483704900436734263214709224488754227848831227715341952699091362906322337595497726538368808111250310412154785399670168758073986596018106372236262405865988195821568953253644404437482711154194512080989643991080931701120894499265100629853976304647288002814284911417378188419143039178909158026323039648499056495726751406507224199237498237272773952304781696407307058592435739580316283811579094408523090294692830862614458175736856687138446982738642777811674230102211733704341147871151561330873465326373062882803131536266682234594109148673077925466146210322217166295718224739241622345462593900004937224555940979204004728727799487290874251689294245040147775205430731798148502827457895309957175220766680100172005059043417984182583876789361836869958281273498283768870486076563296857036221935497649408309403509287240226806429346695052998474611065427335204331210386771322184417965894875758651290211500770526543068525962987101835413268516644246513983088487498837724842579166446039263414698236608942794068023146027310412962095646034739784806955704141928767996265507581082414368044790350941209515099121002810063747236192025863250202408375039790361130893948745988713344971284836924620037892015604209185676130411950893970848461942803816984221376742156857401525912253348845693939530087261817033203429713776562933038685841132414879423060446225616443415781036794865360520985468636542001904014308255642243155029095763313264424142003747933078452239443120756857168748871319362076677167702315239167337856840338482673950201614974778033085546575984971622499569015796225033892209180696773850711827102061325603293252228181656948424531916761090416771276149552702224561654891363717335937400287246767308525814461921674591137552320189724110937759854053129860165506266738514113100469230660340810558639074520035604442124637545653821553273605346566269080297264555272866633944495488935719438248063590162608318803852342786804083889223472274375597984203585862237187881002557399556329783022785906761215692543993545464181015406815784990985642437947000145260783225798639251779480712627389070799906831323812472373257969020257336554798535091694549140459933898669152336726310791618450807057564956474890489401743434186676471846852116706402632348896960542647205081581229616930006929727193295962038912987783421204404908869253224244755431514357370552865995250598902227973375717662641264459690515318269053743358445466106800693139413284949509437793936706577281989330023147681691190366534858231146097109079790095188712430778010159252910971320800867959756281038480197965796869058137914862858381005101821467421916344773000880977775421000035008824528974070210364160403567427284216250082006531784560502147016180122277962190865768966702169999496355706077830067283345297436552292075359393396031881769541594816144567522550524704964512917933520329908118426044684569800195775581745801763815026337116750546307360799099958303262022469956973027538976677838398172242840124406912147097045952113605018482195566846843212233162076821493197158388820337432060935942102816338418052724201234719549560615115655777334454820583453054285903226834805028458533466937399335954712526858087581642837411466697557570819718386575357324251873136506783064409151847728196777061590224162761406029281701824002793215151679622969026468407530853218577046784749966193111142807195036767325469264876793378642083875233372069686351306614977694655954776559741908383936544732817736208188318411946056879076052939373798380486409178571236564224515536819482791243737006032763263335836741929142474221827676579767315009229475145474120771160355227298019429947054977296728939959300701789133524631776067248687998181167519210872861363172943858842805288800745792081509235639475902885672857536332295953307447456317806533682328162119267544352071958415780736914356515123023697075955622254440189123544447658532823914729034993691115156665827382447292261488303648009486276789719125274549405762472158780815963888250141809391922542540408375692018439890039524558348379938052307902190012728445880651592123502540902046358557502746149699362961092545976282739612671296686127122939856236183714762745326561731982311340459685367183594622802030961793252697027493343859075718622194297074499719988067011602735189340723709108111729547875111814631721053209058022575344086457924684147548341233887964879094540318454050498291559280578245879017943334212878496853253912258998810571176890178908878824543103052146439631496621013445760912280073401515393203632265992128517955681831379901729130001622789905704027486468193629125529477519760291662957968186824774206954921813350117030936166217513585956032360931717497298201812071728461528240196396511591390647148678433809164538006473156747846861035135408062961511286261836917117336676366499044865009389472821430748205646694158583207900445345422619397281692111268085484695969812335642937220952296062766957744151545037633798387903916887291552889647577579264747225235170635289541729872155097996462991360292921966181103652639887873792955490330002563026607863547614942691185155667913190895506806056068979951800423308433358156598385539495266339355712759292595355132031516182552380479199288513768699521921904039718280603964608660961721819855106852871631299942954047516468911694653068621072518792560269152217573770258290492561966368541799938085360355632064083548697628600900639629664064797210882979748831807362434303489254288846301645631310467045553763499347279102503095448224155906162602816626838242785350092598784973579566022588563143290747835399047639692904697158178698924647287511525060043799584546616869503845738503524166305575600303560133257406451739429051013907444167594536531975347792567958396162774901936366488345603014106953560941424743831158517841873916845646081604980904858413079625291323272453770915407203746266381210779617954851998881515466668561546122003133520771012870374073293975165612989607599151755770880134516901422736279279646613812674911058220875657531417150424569227629762020228811995888475965338311533435891916816327757893654779384472619867540509279029432319745636184120521172968294836141526837884962274423659515494438498291255296299856479837925664922101353931367665479518821846582602705280516842231235728757900737016352824361332368562621034893706503713087611437900628894936759769206908353217924701933689353640036281059323768880937917526313923388337396439123874568618169654165689010555802071105537549238494385930876869008510892889479254019075638959317170272467157010605969146114376040537210290688389080019025631960445701809214707044351474476204157119006076891053499096175192783461947043927012823766887340203562646560123965342521304629538622888557972605827524093418284065938124247478685364164270414507162164466693713672143955044538449792386633113799688580332581299259230843694155718547377188697243835718925321733618026021237502254020229445271114173188186782783047597856074328133601771213548356408555759803384377407417342720353098745567258734013325219879058310584808020931918366803693011986251736005426326950674453667210554553619187687696002134028952334294925405472030962902920637151090601426427594036428790677397473844303473097065975560625274320764093866108967034770515269341418526461062354355674868869697629890575984160122734223943056500955888652136754913556633959348050829851840609695341493588241288212464303365328592050474627818477208864442452978722090643481646988081347793708668364903767300027889890866572647011654798910488050422949634899838490878460609530589273844497317766233507716018696143410812722454258791429229905430704719792244150337491832104383300476684774975559922668928993059102415901938932873163136216754134545938194830713447858849329979003218777839503257848779667051806406002919196674139800123286089227060398925823398429001688171061907769837846642034796365954198081308285802181222397710560393919490110061681320760752166022981407878383541124519818773532095368254715325651208089679470072148894339998895332145492771503636181057971529742052777713769105336129882068499705734528972282798823300811834291773487555536590445626395784287682897558786148727362003435749199435246974958170598065214656422395849787525976089032648298202200173011410522053897441327931499644331041307857303143674230934103793979744857692432767202282252215271301144746563781004140611884106916521332985332355246574575369129371413802562999956129249779201028463442715762509912245873356147039581706057820009611728111795902928993027250129608616936214253747512371274053954433056466403869703052081538112903060653635568327484046430130429093829615584868201091648110306697652952391799916802996102167897813093280138347576308498927918405235739937788199019523039736173238082526463591330763457436989564214167183491464132384374715971036708682293844900907486301537861932780689913239025895122518524841323108926738301311978023711058058060268974615440396839212794786328985735158475179825088306081106456917947617452178579069552628673803994071855525758208346163930871883152742592693636701559527455757875589375699501370003507071145020998436638877384191379296282281803321746851843121074824026532272697944024989460477592842937196000284607097937925224663364330912809937623899695867965254845931314767967670962066442951344432686203517934596430135240483676304623930096773464107238237756250772142337214402176039656517934827521063677878895638591398608861400456624430083792929665224788203468470100168653749531222105710154609446257371978750466430415490970430031776249233717297422037283477441734231640631240429077553016938375079676217913162879422091984301863147410872212260711738032823454410552699125154790763672336711714658867025800285240403697371483439653934880038265025536059597893457756656689770833620705371530653003174933350441076364702337498390621677742280197121677463906451149797286921647545458327474521478145083322537962508909774214923664832666340477217912532085938341481031442140158649116457538442704373369697905110071680653154866353355136948589321413387297156689273366139193076435765502461876326177159813136647752256847767496922453324148079288154286477206143295392076408606282034838648834086077821920999978440856799625493064097231721940474211912259271331561178675543755984771910144530485595211121870385685582700764932607975601208324633290965714744640910225035992144133647872714994455335815544292234125567620925116807075258072949158031679877623588139049730431444007860585185954293475554155171864520118230245465013753709889443059792644973970062702966952264250473311229838100684490591499170094594164627857588969894112946314738885242322403353757163855347432248323159493771155657666771653172711071220246594964675341614551146365155339169019338974269980077129904957356630919230768982494619650500195284814836417705921849493793934788242965808959867783594191709927937499971983358722286632516846851731238606178116801218391797168418241480479067343194581082963823219398377947546931442391002545997319652423591880778132452186296928303247257085354004078135360990888544359959975228861265066685277371020214490933517407021144549246724790262645518051523696060889715084019395998485477813687721203537905070029321084469529134970227593599751415366364861203584320084399994277605525850381919447964602745877245732779231343466750745491426385812698459152115277558344424351666855081243303884682209543974999290480447559384164362588602087662478077710945203198033352548332632646933286325235218932128135346797742015419409436380557076277938140157116444018275184407656527128169605725844037640602546254208861944771182350161010932599043028942536448352274104585592074803886652670933382110976698441987208801422537916783837652251430013747039649527989983683976438561208262529354014235754537579242473679667967634705749480564380658433011268866776108716916367181672314358953975452223878511639016719062480902048633059960060080362971561130859272159250012964668865077181658073889475165307139484562780407475087437405149497894371716129261308246104037719200060122762956025521009146577607964136389724654816360963156026380356515604925143267505460433617840518795298154252640292969916946082298990281068435241857224780385228860538362109717027283941226533910936861264541565859232084235152234903957280334060551436481746648945638695285546446144943248391991803839240782496815141262960730729409998750599395788087768179511222215451792534534713332664067906073143059264394207509761688191684640676337474266713135409294456932418532982967629613154900640225834863442940681909655868663594666113815959580613321333092019030213313829092629736822775755323699328810902597352534720418194919046568968249195365997474786012752896743430833502382400476433144603232778913669907536365868422937356600254026289319286252821978408821212433086089508968921030615679390901697681393519580970252143594277789615793362761507476811629734903820085606058372980478505449044905932290768332256422836426410383069678993319239278495768442002688245038508531872317636732679581287827301341348532025230280392265626984161937065244877263990228968321033012849774421567307252608208224970267587027687034147030983662331414082648335481739210971353613072151485689036931352023122102810987066315113791666041984027720035039342781077129483102315669488036189276077126539871863416676235409240523560918144273234200524758960183545643170955331516523058172880197226508992922077080994886585678587603761082973538367617290269283475408443716856604433503480581519071560136843581667475818555926315462077392876824448218398862746116043216382094567721955261566598429269178275240743700911890895024611208104263429037338402427176837420488311236196751058657994045731738817160988150108970178569145593290114281888488937059223469110253412248450841746759162472488501617774079219755495190606386975903024959632490963435533615329924129213621744316501297511844849627048579730105403073287063661544641803416445550417240695781199783120091034801449978843713910242851418337429762991273655351098141669572498240607855095414665153079887899653952110696142161617750396822820702990030446188133423564946177003252064460656963028291086679488044020286368235600736866360181134542971011249895775564597812090006151413424098385431613221291638939347168092797287037684074099825223618274381737212089370392560931441465502798286698916504156867292003692131745409245985063212542034027064604961609596631817067546641861534212849760419051555112855989514805456451033596025225378420392938089833852192778989400530189392783104518971870630316119175040055694676761082891451406738090259742024636978007732649160740743033244225899660837022708573046710829702476233610199051006012247775296368850338211966981272028919736226128735774031602798963799313701148926064052196989069330393137660658150511485587868311809577662323130733065936966001076150348493338691377634714173143714608734866728687114003637960856432991792184661809157387190986465999903214001174589309833557327619330057613751092306997160118281292542882100911628424225878693627942758767898554171950663560745639928868853819077962922594426542991903849140006591694032420008723364915354504579151615467482520865550387931220182186978609069594595235604143225444619749383407913407512358652522280448689268750748153417506042671091759641891715694924227865490485523119990433366607963515127278015300508263534613216429151440901446747548077560743057139190669648895762105635691861275059661591750570381978432348371394935080864565332001617247355644464589552075004154985268245067351083142372249887304967066311281934490494950041703435076323290639255735444085170353346025075162271278202844185723311168957488367139250998894913613237604082952968464801816986352713431066823081420498085107557408112792384804574411159945399979596247594921671868151505984079738677123522709658841369528856420135432743747730242803146369444461254732881180697044822626283016369602126056316317365010787223759606395829755702162280843749832239090054683085342412926057979388452376774885156285946551390507262371247008533465664487934131070663529533204705099019774738107955519585960398297387931885980495451756381198625735081045137529408254142952826141036214048702024011454569434024427587044194047380937460210676132198876806522162419163769428653641165644504114479951260457841669570951673907803297377011336362430814489029319270402510252069022958097841538997099666156094409114361854553724918949966662987040293829276876900240066526542271800107272666142446686715350024822800741858685445138721733131894112693432002732398024900331153272891193748383300659641153333896564958649693725536243444444788694995366124047113297756790733521736394278747303808531835643301436669387032880555880559844298419161134434349970237880255357325146887091131883405714192666050886092861457124511457141530447760354017060248378352586209650082502965039697630732082273214421251227289437934030330889326372455021783015080451171338241077131839854850338225782194358735594608841848769327831343808994265415419024550011812797755462087227099656369255023783032172502880509082780995416784702856098474028114176074934897355566515576888151060576907552714131434586408832074341579074620983786389877943984368664651667999668961728707417332386185447324024357956666201146063392711695305566639784077278625785356831553741169503553348871003606665908211100619637654164839087875291924475369392269323146395316942041802502471132090331478633426808570702793019153446914540411483025454733048495376094370949744042106234453739513584288827912260811216589311129330830325382550083287064083878309167596661262312459847997170131750640328741671813734802787141365611798137554720460630424443366043213322147541184105705519300298146163172513170144082596033662176566902592349751766860155141257422309784532654048848927554626718054826160712178185670637590052321756836993482343828891277889080270841133163088507190182851172910863056263532891875656244309032971887593014780766316778679731873165776034011875002855498595653455918688157038915653521716450811499698312432490680646012725522292990506955427403943145366622280907787505636975394719006291036626621598234952492005525205332267215924052383361637205089027865462714192702030278101117636337423805198654425539658066706070704738828228221379266169648204728124771224942505367240320485911053905796688988301262395996766073688984163484798922342629645141925599413873473529777506332198313721065536128610448728335509932021604764568310740936167374717471687801495932734611589224751460511899147470395904825610432377913153927121251730333330524029901369813569206056370541565013355336182990123361450667260574775315411409443961481681070459665831018534814522072692461478156719451667925024997887753093723771703261450132621855031276148182200528734950721105027344886209263717258606889856494833357954070307580628387679024820012597145617275712079584989029616365462480432429832477099068279146182114642110175499150403588974907721660996773343068550426280087645145127415099277916109766715215586532018964493410236679471732239778695920612913850956210570813403249258772069548803302888400926179758239327083730523055150556856278734189222585444178866403440263660876815328027912397350327520971369140727885731923339192775918879925505562666706550332915940437053827345581883049141849423348433953734982879081637195016163956001372350365622898747365182864996629726245815546553081298369023684818944899215389291436491403980032626705801009896397909824787646606003433289801018913116573364584377799085533378808049711728133832634640291806581771471677789806737767616433024371371327949397955669153312826573447596333596472033624885996175718589293556123280379076289944624553629135915232576456597950027317304730221494838541312471475410636207450593563924974455140738314613943285135702967316075815186487186261531352385942781738454546822391264567425109569631749750636089527022094273065876933182967095953029924943752188465226567361096831055018462177184241002943248633951679966738962536780106444638332244115820104095551779198733128567646202585803991765645680073432082766963976038036600528307671025705481764998730263444711559531822333977617361648404317845224665096919516338646159628490781206142902130689848328526018016473678144980137641867954368770727043773552260994442579962048281285387575312322271825587966254561043674742052688517913227776032247159059831579774787486493620065395449425480739432402260141718825041567538884508147423110331928499758934985613037777700847894427729735660572230655144300220337932766354670993496124397793488576209899389030464719214501209645361535485633993044024970903331745124978202272436482632040275123388612831257825386956425739792363496162570728666253559026316150213567831767867827635400610515289912066515247823202441939217215689101490764968426437014836856061764207323127387884455579434211062136552002336247097057907443719964274486380986792372936670531320009037390825482094082084271849222610066979508654748136133190290728597330694856165834691617676263765178213509461748485393100686771976772991885243511533138554766746119377997772799349697661815754570064660210927166080680626837979099406995631168993329339765236852371878827050087714685227974427116956137883371590079676095067354735605591724106713529434300573508328601139111814586059675954980311711676128655350328780394543791854599886702799301859821941376983749625390460915645132850825461122179970158377330440146005833047767740886540420711317849838099380137153622695907194425157002572552103813370718193438642695370494751414630866470249172510697818519225031303351611947198010563754503094925818261590914809295989386549607369695959124959941314776757826447734924659277350049379484781746184135973375826448718924018766324037161002056505930066295307944190806545225364302608169246742127512496221675182362633382646017810799299678414613658942953596423650835058652792585671401983807362144518861580156130283695016952430020125292118593845197910705524975100821586666507490104951644958775639792091737850666724090347322576913634757847928966541492899807576959529969363516167613638950513293371351603900665055735422814069800494640257181064761888290167888275429444267801436216153033447083226586105336550700398065898462115072950274065430173244043012316095668062372590443991023968604317343444158415826927414753891899749961632074140933971688181663656304964849244499671510050624688666534597816992528988258380191061241075083172423885086065564320111653533089579550560826798847564373027112384122750471478341021108453979281168857306148350585714627529923335174459851569422669670913390938681459774847902525040843990468303614095252989172456378584258441133167479348030422779114937687183500928680687615867561559782153755022366462021229681402725204976264815599239788566199340890309803095588484387622032085587180624277731192761210042830150211234224828510036371698918243273039130279632363245710733659192573416597238703848404337239176457017922718553108179251935030921288928665053237141240121321185215570642432600996450597421380870417353467628263001026051492538847478263960858419044783811554017052165322905640819774682483322332887210962389932600319182145850146688951893010396874206511715507360301639759787336727519745860606935947092706737790444438340245250782804106885200828662857144210278820522244960115684746896650832876367092208765931402241761171464588390478703950061897130245436794566483537311118079686888404669690193222142339072602898237922395498627070012428710071840640408906624848809107351273448621560413202236007042332702922722989001102829084870291044466722525917777544514341930386487992444691236514831797696620784515617932747814982062109116809452633032554917735844316649620907074905193177709493514193286400224232765945186109202426132304120017771255044053776119192443830493786396272584270397918797659007167825074793058017344746971204420132389501047941678618378325521737954726523143253832663500286707594738722380401397498815219693969665341794465068837404438921121164958504750561620783956352893905968466433592494493736026663629094134881750825871365843651325969922338039351962564939360082873263879979788860820701557576812698858022086921710736622593047235972714072165136777136163459392544494794466746046799444355279045421360496014843127085071595403881441902453818462625179299607786426336126043443812975992218214121610163208027848320952084463673734964279196442938642611651725487586684194929772373981344956109376862493400389446544434332016072193188009473407448575186034002269456998477923431029718202199971497179558771954216635286144956733225561116828502303724620860760665930211975661658456246035706699922635884465768474663477269312435966589049255100157703202035785316997240774414653931593913002946785217775950898646627816252865339801778983406015736020775765766997299086632742850678004684874484830532286150887160241961239094049947294839193640894144781405351198652961013559977227664372373158314395973239494887498899336344523785594818648385230552037699589933599257918456302530083068479435741025070656528626989977201414931527356337498429465563234084996393369534782523573590820966195767066320732638165333952644256712759036184839910814552901186443626767558280198318713532972924697767258015689504594159264564880627205325651083736539940661111328501741877690840988827190262513981863867748265861573141276565847707677292548350739032343670253194350785548967383298512717178300970517249907644613857196816512876067576762305081193289182119260847372643931854366146084255185391272267093814089088210810052061305699793662014820187189132607118478160924232164683749179223624933253188993720478522654154062215356601243515614842808286434288065610420675088802666564245096242622346141507292838700278512136613588329654062625967813845431266008099429439473279999027321818724357130573794300456852431346918234562274993213979779762017906763453930143853031931082465529679420792874925273802283810911423373222395531715411333312819177800001324438272255144159798283711667944544495152296665537070538677860301830114522895251141970729877770965062805055182565003258176399282724438313005340922505552310885639776153952449923173399459612533319855364039326768824447518090492011821134315896988147558253430971216263924535267321194163376007254627977296377441317450423192006313103873301260346246868809674569912486563346986377509789353543644472967861183181035766402048590606093567147954974057231713749775880037081118339807365522441576169313690369315743032194514865919907572224233192351385663202361081725910643062192530360484255193950889717490354959193840786643211729397482695883124060044668086851614737408775240502509976249653203164904055133245368634003427654680078064845297094268317688983750197007308381815466973932413859111373133937595219204167951694519454040033096411650359770300685393547865645020851930999840298975837489778698606131593232632982231235544563663972951421256161744659354730047417152485890483000689177017767172418201532339507828782613295419199152973320888700086347752476444727513679024003337046157664153194387382739996856423590824211863246940619019977729166284086579820388924002675860889905890470688326441651453520947661055435080851782090822548082419761104385821224661022320099340230627719452034920177688530806627996148376688041442822561010938650108299760639480465234688561610213830623331479691747208707226896868385059847861071506205435840519940099553720363814623476922402978264175399554163223170927815887446723705982908980744601355355892671242561155903904338507245666068253746898517641227932960184838887882811280081811789620401405457999183553441483567218929127184511388734641346408878666435206373048307649142465340190701905588918920560428341228706375570786280047394974544156613696169077642559624487846497201467078840353629527906249635533350554510308827302792204665662531028814025469874260326678938700125917837971266681115129269804714325366846281911450750358164178433468655456304333110986475327951031075219689086005214646808869198237444621683494251088219862679877954164680422873613931552627227813399544887451446143752058089729446586744622499958460324675260251603659106137194216684456225785235069432797994234471430826784302746621734381635166130075717103212966183300227440889033604732658361986068438092071384563544888275785120681578632738821261492282078423677570010273459924382817039135826548042368211399365989724013160908264629443024410421763517180967537282510653328841335967192720178521589801586360509601451250862709918733026781854075674891333731597681409192256209540096754918938653219167836254616488956541767750239285734458491924693645334586290393980115967207860749801105507171304284812853528012684615642093302663854772831322506634813253981383126732954123410319177185715111556604893737807438449128291910372913199039191531281803928475648229414983748830396220380635718541936348195295119226195634537831193139330103875855479605835777918399695901769168013871690924158904710860033167709157118088007379986831076833790770328690893708153074955010857747161298798144612394057979529440665453113065671570679535792580688172480279368825148959300572337342143713491120477878432116006339923435937382993611603065974590712594013094988481480288411787465983298304292409432018856909001514155064925342936393347375836727520269656427443360674884343183966736782292780321751257418346731451634058515240254895012468745168531192217769094341605315231561873275666551705074374047667132923788873529818795899554198580832863253430724895101703915967648211835100250329244868745639635954862719985345078222670152836902857623004980749765956108264339493254330664038150639446607188788883925677289684218510886193271237833667535976381496272704444341175247913402207598549734968232841240091451807878831753208128834151436502237088424558960741276234264438347269898376788011487243759737444812236546473964931306736568973054827679865075527069031437540182904172078944382657201225685135907777329589693452135673408887844735336466784748505374078418974476052835566365397764470676352425784239302833836354840227756419633461567296175087620819356419961308296116243225577712258115140169609247009432545372216795480168450193662787042548347815984248808429981550991394624010339998300555213986125537132230022397826572892043043802000422540404204342604161406806383764573794872890579678684671213474367325347887811552958775111965502117962189898715813516734766157014171647211637075215551837501365659492286587487822901026990191476051801289582552259073118278213355431194132558645042652213455332024738351888899633475404228452697168085668271967367469781572104763437453999007327560259846893566637818261347926197350359923741477697109696166554031894860995643631934310097563783358711440925962693009301187027566473974508641217666918431467920922897703423860016053368212287751402928791489131797784008652297407461590998651731779598611982404424463909202822570549925820424962928469493923108595685937449094970923424339156811146407633579925010064424889640530157298782083643304193312653957035604493493537835641472853839420020134738118028872179464439376185676383441766054109141165380965206862658273216522644923832033413819669833028248308437028291690827459216569574129582628079261668834408743778059262505883500026307733121166440427129234770415689023088469044546151068488685302908906779340506719113190635248838484279470077774065092726937840966807126297001276252473666364169082778790789180045459610478187897123445236517868239857087222777674680626830126880278078852076087704944015542655133001543467350353619778119319161287586530655224373698741207416884482219720018583079682668083477743151817968719433296531951787000150641691847268693822647729475454659832080848203199309069021561446502451701663357732275817725201030644068209584905888642251379454717948105988880170415720730434796531662543172216959397470431106024060256419739486215068741793671930055211505212378005137632881882267585579308361847848645523871802147070329161711437580028931074890172830165552206196995037063695259499089557820941522930761907047073845401965141257060117906871364322390640874512353643543169423440676986400102074716824112651290644132987191669012563999528865210405109603594908486184937163798108069469941361212035665770102211974000250283320084141756091028755088794616261892548366711318381468932976457597881950013150168045635689527967553241022678671011095018391491187821269767907278531564446946085161981427456321617575603875854539135977058652445352401692798663400576986394985764178147111666165403415724212745293000098203922889348583435251775687430906013838951763277972289180082049727859500571951350702144232754550536058418397028722883029850319386919089356412501057167157770019794602539633714699762980388923390654255905243285013743402926039313966239694585319808446564391128377343505388071569546063814246324575202847600669786020768066618759502112409883008627522158287046914826478756110119046846304496571802346102581307681269886796196433650553990108023771066432880720540431050739681665618432363228253701504018593294421838561144893598036173777532937730168548001659714040988068350719331757836750195992515011282124539222970880714881768100589786988097527711186149021573401906391366623631108505782830411203107122061297053411373907268790300251231136286321812759032289246337881738178846280910025582256631908074379976919979910970783970738412051045887789664787298058880490685312453765027140302360540512025336109943690436453023083225059777122640764860599991980068873537719462110514814953322941381671267072373083337053072181968530312080936395229473520017157404418476214889284031530330863493403867556568223102356606398726017286815765010269070830107383330060479669208804544090650001501558800793738900905871950061501755694238143182799298170069195471861780020480538968573864747533908852851605644972489146033835421306208429624397529891314160014585149573965488993447776934820627843034233489804969426825491634013370217390986921230050520955645020402284178374899054501905865966872616660950810558133622093705625738309285051710171064009402982819171980811259209838264765883988742621945187109104836684592918504027867575422003041081627927359723981625974022371967985913120409146806701923545897914899321280563282955501089159421894929115134056677186380098051821592424853216573223550092711296087254179296526300646431788289995425281301004096485576752661600073055468745423406744114076628549591452948919024538336138005200572723691997738511495245788698407381269374853278337412646273244499814576997740103276333973507127203222651965901043161999253150858096542371161567985127191898826713583695722290303668192514176246239642263227047535561749083934406777570259316377889108060540019427464090574118366596086445939228444189547072747994252794442256156631952435758565608881491174143024533747474356248552631240100632157176370916707726311387211192184534906303011100382232548985621801957039876055430730703140272262152296062584835367978666109281952807983194229412681852679229078036876056538642981554181666682939927454653091034747989753922901378087910042443512359609735157276889568241130355806350671142052502664186076957200049333864799566087053248214961685437960355055329112828744371769054893463881731475718483203392928862457839215196906903458218201349832095738910972646640340853541473252401651498563483296047363544012801969021568969260065576420938062915110010413090302819665331586541732767263348194502681506044695540999151121730660644126736403019014657972429331910685562756403388620796336919963097590498505769412272309370126478592453250191540165607040625918549364857633073784818261498888517247983630480342765602219583685831003563567581335038548228252126579802667369539958112543522352913788750396150183111370601090329025473072680627884217949818490954637116728506628628768697898478497819557554805744214819056542328007917385187670368864315601931724222779315079413909995468606002490300430620475208795648897584644108195073939091372693272694766048905810376203012728705079675994150257646825385445664076049837508878790123178324883273068771011571947052822991155509706259547744985044967110950973338063927861632859808582856026978491991829065601594179846382338979362527444626725765305841561064316797299293009782685377669224004285348342984611776187162010778593187163718183188232582390647971367304251193830503539810095525986319547889068433159132569120336598519530225977516003298358054505720756586231461391244843619968263332808903482797023421707485470714448601028291596987665391572707466627983028058608386070693227694852238779550075338161158258245660732861699440096925969992175664536655431668292420482560459897158063180667717190150779646846251317481196516153530769662154204230361973732474019592738018049452880010084351138000986710282890265387049837249266900615100058961238892263490832494725828122093548212764609847140134409042127016324639294448998950081855149005224563046969610266846003022811934819450698320615727425215647121885206998657629029983242315725369261620228997832254426353594545697458250504134868046824071798071629539000602784306156194222252122414688892326033412401692438016201168161099710650212133215204977955593785537108855912876732582567787174858159728348362738205826843766151833982789792105868524831175069700596038451751821604370425126696020258906389822126119230708361792581566370964340950358163981679004230296217504176574356042938036774800898730976016095800079340683847662673017243553173417431736611129487153141016472335188506575990165191982152068344264405536545755882293458714696471233588544051853600092266287462710330968147278542283295891632471469942288150079857206554160797576751278893131551728039453015558847311043301346305881521856967820180419287157014495427186531980402589469974170373819376572398558328791147417228649226495301503571277465718070073004051661092646267452984513557297237158301579000173858565262076128363906738763492789338907246287952983326298330416387128665519394433187026049968671727608019270301110532078919816409153166658530217188474217320084400915282788763915113811504663792309547550832846484017664900342054771817246093961424622202853031201717602514326504692338841743048962182579990765353341581852888069955770913155299998179548313983829069015037888177871213210719092623085583306051399300625698080681165144462590006243354237306773476076184105793428175777763094114383959719194737081447020707891904685928769156933161321351953997527094069195040197142852401723673319638892571668789424434375331934806421761785389806720273268840169787432827056269701328950546546854409308599771420122963418535306122895346054595222053333091399423618115869634373818536123660046593046575971135032753464412842215419052628560048813682052900399355763540222126447144129288889471120421617026598762869365206582791185198500478342733677651441337134734598202731879991359663006913907159693132532992232347291009648294390775009672135208205570433959287349690159464232255658523674223068082154142175980480224433427940805556115050970961450530255884467299638420796655634890026578725302818879684011611872454522538165805109935830490708620495594670248006579883375367568221820713568479304877164863946058667967504851798652889091333374116977567684040122427466364842068787135418901200755442269216872338978179650292405680596838806623161522860661941619155688548911943117017065798120182803655263804886730169508075506068550897271419295379824462486034457854654996268802066142510087316342461858968639523307860872967704188523762866212307288593747731334528295058725209396068031679471733414343797582135823309430736218454504033949263997733710622530274946279902616364509110999181484250873088355911746034237349412217857903321278467149161289701949941339185322135693306423924645026846957968141394050358333588942194973956397954634720556839469093633883044379706723490792895276128062031524927662785348104701415133302562224178745990976992351954467982759854683923218472016342952405218320984121026001652245855744173559180125552281697217596542047750909456161176613733659775807283236931726679611249073856633255147623005691559642330670945355552473283816206637616815294303154204927311407390320551966033525500748091023679738755012724476403136147937221312713402525221297008482696680385314545802710318661865736575310652773899227644668179610240291661763170681657575549537253390628163908988794435405170327999231342806040724924908731984685407172941937633042020097666495565566802565567293479219185062281274179524769141782578688370949372211487385027918872244172648187931912213001838077161045716112918113491804096221017884301126079636666292498939758508161546773890095962895302929556171969249630765962782443274532425457140865058398393986559755693840565540752829236115214889593170202814000673636903890155914875603144910697883313408896036814106927145945641176237142538074164380842100854668558063437887236905380081123187835775295320170445453497468485348427250624257241767074674639194035565257207949018094787479840753245458436940021957893719262539623128919964724895608416113955477485277076876448031228024600374070780390011879774368962215445030557490976857202296259624476950847499138538139722317538086428744822523063042240877542486555983355673477355046673030071673557282262157804261820151005946358501798608165092221307435268876403015543333799322565567134091711713844324414268891678114005927129528173266438975667029245293261965031058519244308770108777256363288650164587955144958994335311686823114495916075235143523109940803303315761625130330314498281555093867663977532880172388341423098083388457913554883219079159678181865817678134472819983349269359605051542918435166704191141033756599818401769559508708290633374819013445901106030269552504130947465929383186040610835170107268887589901563795901043247730459505217332387954632045015527697453182578223718548242455735486965953568215135669859073444637004419417498308873366626077353179160212320136395315472951009673157280318271516250927176638934550574871535948838942251836057052734613695203820956929216337349247681150523464485406922521238928818746467389352278746506898106093503284452609203619606724630372059562393044691673540394964547857877741677344825343613176125803245834368761854235217931781817363026595608775942843720309563184019466053675124329793279056270607308189971566723169948542769808850927725066546292289269077457429990700456790690189847484082522394996690901593993042155397929850374718530818675975654617344916699910912797221694257057004905789835210011782522747992170756076593605984648323718317585191869865523582984452554625397528670799436919472073674991529660981404003643840264203235991706432191628549385004714821754869097509607797496756927762373843478490707959912711432798381068250480545511023270905582801513934213178591336408613333650892160579178723617554138629890852695726219634846634066562639457150347242168093286511984351373472455188290717644246721356071765630150598773743754137848425690505380754986923335774104331071007158574363589022096564642724464890372724305878550217739920019269982871146590224994065852833743620568174181800182670948058227986316789350080331745617947555865548365107929753097855454377796091592853932045980687173193262352526314098757454339007709414563050078317535103670215313656140616174634075289174980964870170616653984911774004593517898719824001047134063950013580375691613110677293674492853103894996904978608829513508829715820285540593717952145969374306353922434087704529147219867124065308844027074422365064520269819070278628141124110878996294210465761223160534817041533605500065410416032834190769290813816581064152440490487819316151416867057536481480179653986599074756511460704395028989867393526302111733688346457432831954931157068664574835104450447073825920915600003709131157603048377744709508603844650411938602154061576294218438658184488016529607655931133137162186308591848069192227825649199792075451502267269734330746964641479733485439597536300717292873013368911610575025065309301498971583261957787000215872002508663023345297120308223843398470333008266816305712524149891181195848851953343339904294799733114745191452878403979854875787657741992176485691328460646189981081433091060260833585595684746547379693703564993945054986368125936870131565609904066833113365208784011706873516342635318990920537037761490377036819178856373912149638541206604604161295236041445902361966362077870508327705961382570493647016947836528531875120732244901742178656716253313651424750184268692153996835030647927672948162686279026021441291998265938232716043856133447240076856326393637330391647092250056036251515441364795126248881506520776878888296948937731745957740504085485145967353016524069425532036643905142123864241447908394884859776459809862081804518308614319657586906616939084464934486949777434676290828241078144382350449889064186640455711223335093937112722487952377049911559825556929120836036485275860552328890819488447867508550319258939882724778717471298260692438955278511543409478673379956744732236439165839671388301913084714982352960232541986632189592874753551197332991852466590469981573309135194197843299495006814797127225537915729634968884421034576014796034265672887122999619533153338932504859866721737083354642589854411397961292273965807162447979902197050261621620567908783935846117858000040810474546396526934915437041771428645321793283995098209021051176161563394495249940587052649712288661690730399214757005989828246030728801776441887943672729191338999700717494483087015846752473372756310481507981026873676006350718808655231615608681303399573472037741547933785967748348531568586408236125744881164861569499872392505161094322322457790498816940472409591467720423885987802384612622280573966503470737535615745154184971643968182621894630480195927691290824119073363695935038616080049630226134046493008450925016255943386633771792416448044523024668797005102386367509729399789634384832342332470830278241621645768788850612369840236515813904792594818937261448522620755428136483824055826016390520032910611539450441105938686467588807022851791467435521298516858874785214905599319769073164156360486374828901365550378521113214323559389569774191643685853374317745445430800203362567562816941986357870467181156311837260386867777745427191761712864721904815029081725970926732974213969527637714515210906462192819639112640725891210631389789451423145745669227760983609464922795474762340245338866329991009883291044896128576306848904797394584122253685963989632011745835968791582546055346628515836228631524339759826423601893721297886134449983431396418769785646269586994471222652940390102421933708609616245861026058409407404801788070373479331626399353592228644387583596464236016036914807038380699531034872858802547850928565944826038442259529948654036158978542094530186599929204608569141743396423147397654857602921829952709751568078643520134567772538179301541467297649896579724443593469792529195573741681258387350604572377066970165288555974236038750721805913754974072222669198871312644438176257450600532426489614957757676177446675184556122636858345968233020159642606007283441412996659102913545319852923977791865938370750276766507118681954661454247775466306506392009609175784903742838373950041611536211501985654973768891589777910783204191722124607437999696930331731616597154652994820201042068738695152153099981990395085514059894643387564579699127413695159187020012553641319231778943299928645835554724436975367733051060684818739515147760630682619340792027011804556859753483947159888476078404059979578339870148703489915583308362603245338236971446120663587819018555952006753859458882249550247747320674875163553473802399244100961382251139504270001046571519966937175789172148901072903949130095260373733704023684311284804662924841753288801238888194367853131476439087370699016775601851590280616216879772421259093583202116051325312297956189909867963700984315602364942914721648752603491632759181076123757069528730832458236895272805722101607128255941788205079742759468469436532751610253186229906140598098269679720084860730309546020479506848528419184823449461395247546007140084634293681245304174013914164716697039078016308523231566759710793709251676623442549399062744942047636206766053702760491822335668583351640366609379902455492888630376868459608773820684477148119464109069440706248662754306827812462949092058733054710509914322673319637230968738399010932896416249879361413228328927760629742458745630538833125037779540766513110806346656972571814406841788290119489264091100303074881939278501724439286038075503661667432952959299804946768818341997910670582814975540797751813211037772195174656307369192651478638906728572991046497716870614801715113558858462547028331350490384585632584209489883005443351613234063319940461340679850717493592335911111336048780764917692357120796501537741645037493096928226182975855648085693367245651867283522019916584824846439137877091447472697028927173670676702676403595220577600437409740703154418853701218129155611748774034503524061354782427139462797421501084742390008622236281222607320329788927572516193762838491411606332834126561497897628394075050468846192681889070166685493491451301699703707089727941095003276880360359927598488549796341821076680926351489281915844368264487166763944762152778404813984434011285735630319676864563006359342747915352359397783568463940981078858539307643751199473940308616744895039178683546012562687816188058953960114136186064144639155209032475707867500652821855662912717506686922751859482658036456554885180418056185952364716483141860910808160088531218651714661470274406957921680542365025096490453445935273959201740846551381048125772883224900245838497017541894881701193421761921289472085847004511704980753891185033546651815225376106568315510003624939561059157060209968168189980887881072018563494533714446392255117386667556484611319331461346342419566252266474299593916435726696640632120556554344763190096164606741939015620171390123748146522837129479803976130798753922322374499698632545943745029020710430211047156947829183796292118027824818894565600647441665758461605563422653956317745491616456342978549942415725234091584375544903029437566543386675407137298830850187340711222708427821513740836756965635933321596920731670707697302754561710234957104495038291190444999105705431320900269537989781250805057153153951159154437823865677371478710626831380150441352787953050972436435558559042336654661742631595015249892878364123046006229054190971820469576713716111413899034780084231407043005688685735536446697217135647424372432618058563888306839718039016145475196629623882322685209531812719267382592763325314609944454562040322476087223898213476864111963764742196603241780322401554873940726379561144376848474435586943173547224007633519064329865603009742630575213776558851447654498111922688114639824916800840841885973770782201705898767387718266934613176036874552816523318893975407334628645914066967228226963905196745130045772467299701606168742034296350976678370346648275841435614539349096980220228312313336779876441835358126455296334976054829965745135651941498494312517854557235940174157915483333583287141355003450258430484345786306802104167851184432588631948291415556801703135058253159577905869744137522950884570981546841043921712410126170003001379133604614062957928753924567129601324273005239250365568519847956698653301435339571374764961649786154977240491985059921927810573753753380631938385706553725099026133631275315314290323981734576992429735983370773644708848240520060646878519873844177995188125068666862578340247809491788730033922137324060466983927929908587966231377966223637634198529689174315248989743963214030035977895138821203517899439454538721245430055542888164441802432184903976495000852118661323237074144758528452619685251925328752512985687076091911107891380433591531968925807195490642121662554841223496304934734045705858858281728063720725931813901154088010177597960315384899590201037099989422292360175853050535379289207972121362236681994231065030776452583234806822437030217155337625640391062650305165628656313135236539356807515481788249061395307935487957127582825740988692731028684080264852562574070542707849194075906092834460838546271563764701678314777036782690981064037870219037368996567575924060688888409094416033794313042026248286874773684041397437623999009745306123976100250187615843326963339968463277714751950688666672233122210037403311564445994935088458662594093420049077426910840548696079944993523603832159827825797648949656475437992284949478678645984736209818015458375434050482354214803857087660388764283276798910009377584982124834795484789325471309857782034911666829658327373976561178703692853964702581239079726094226375988819129781668383803558087919716075429103961135708990347866591185370665542772540868984278063565819939960809643991318661925585865394988200013111599680038278908876730952405286183831036131828293294127634996857551047565694589320545490826930339411496336550544382518211277562854328222526925416013693593057722700811106319391459860751976679145983507038776003824863492903357328545098062940270593578129244677561913661795394902528675209900930996693047156978209078906629532067777035915690625839232591994459240859605363111676858265106914446056227178975017946405833821284277656336343002954027446780058344433413470593344201842810827622586339334372155795477324692828948942993550350924828214314224161653085250528847704924410518863036377907051171765576230669047123149933254048594289809417734778356154415848229387772982839551563683303338371991943352457456064340417588240572403816205486604507569347581775062226779349030743753363686153957009595788167002130319760407411379332959225070656805564926910346214969073166993018328432793624789837921456910238612677984371558122466291918455902368639998754823058209017017036915189477031241595640833799121027520346773676177422054076967853148480565220312067727488809872837794075130009492898339850062596287812634035373653598213832537673201041675375639558502001561508123582433483234710893426437134459371343950881046782797053782110813899577615239439073645085049003747393863311808751703942786806572210615539844202246357298795660942368210268902835039214191583942811381664196074879693304263968514218303508338156025664100437311469529053807791649354639490809960222188132777842243014794944890336635837969508071452588713743518520122186266752631202777331163262039552473265436752237921908044161209274121813569786598259030950858684825551062144877425475618774349920305393840073842778171827532651954297351476945579811901485804359674142680917394389635795205568243219359556054124588596520950536358424661455172669305783622475300559565752448921639837789400913040167741509767097072869015153546139673301076227941134187082386349795069258579586043029096551455913317152437164216006818401676339387492486580173018342251703984958258398357219066603590313802525830267894027558031393728443336744498641462244039251997289880668091334149522044950557633357236046134764397210764619170552863488436944829560303796275231091878096923223639270980011093072343007516953034964132097381127280709654314799048458377167719542923468985862371993583292945607623807520942680509642006128076522067485293539765399005190351505340180106554189638862350930954254412896574868088122852271177048956603098065186533877225690863539833915116178625590619863318341342172915841021751651117499219783074477549294306776463653957411482526358833386796666613203852268150578873535127813006519389266378995865047770333978239843366651190131342036452276780637157718551867974944702775069340124040112760213187834191594039511585865023289746103835919062281102570635458734712601560353697833155119073650272194883989566994563407969935531056564568981475917786385009660533170171292283741590680611627057148450226555564876849606928443795639718823951108201864174673376083291846946427687234237111471585830431026725487119337816232102633759825715539578592659981239075801325419134531949845709770484544407115768985341794431326655284950866753080385701761282405806963374851243567289715399041198654215879234741542922330161109960089463048490251891365781991844313797468611238587817062258153509424547187066847678096132639364881001012237161997183832187496368153623329334499338706740044783126844311083623527661620696534616574708110347964214941661160783640896413102343735413606357402758862510025697459090194355491566363851824542989311862579027328785176729687946305814732996697618636161002620360025224189132362689575132632799653718833399226331585363245509944614153001119989973118462829947332741624004181670798084700555245507225225325965433334697645998708196362219770474644906468527686494423889312895373004012129915182004799471908718813389043390173958959375952286759212999222664760225405531914539361399835495985567786234247612710757369676035823753797988549656982287438752751448087862933887970219407592267292130431645364212432636636969534841081603847381580573882325310760629580928941139573309014378974892972628174699903667428923145756800080884680032709944592463924558369391012280142644565088870944770290328086459539993517324203708527804776661161514551771133172181551587115104159717261162554230123385255891958529829986976037307531063727621906617151890409561276149015408742655358142232257726427410316223276821032768034738236241773824212709532883922910519791824415613693876964976917885285991295976864415356520537670851406843660758518374799408174650006576027127684831127427106391580056415515980316800022596995992176244425341901375092224457346441077198693954343230018173098595814990198653131626943449867733434185044691527334322177607643559771080428221052429294037630661415612504660277419800262874987097835244243364474049882484720413048568322601416590256520682513748499301229255977251534358111826127559364892489942760805191319981481074024826218698022005667209986549724732545530719722161780189265918757328590883485127272479247821590111739007409929811374592447708316630037960039719154181344224473649407828272751285886201627461454747837557394050418436392908782765624214192221567086375130995082312622141289508470476553732055680561545896059735529482985731599265375261894401632472784127279196848737565618148851028899626958444358309723411665793730544401647619806671639681351007508979536612489258621912036892579547125744668658543295287986100895244420143719196440348082449594110125659175624751479882407489120667090524012168551045275372871312186016807490345294974933618168567587488778854374769836553031717898811508966212326159052317221947555605451842759669800683026954359512063023861667116201468123518264757006372064538901998852085747236593773560317491434316590955670685548956534052321113828415613515156969484357141948869580400987508709375546362085046936542223573534637089873511769021721024261038611747876790080761780082443099291517235263145912785115610072041766757556867405235768226518740294684491591580136258116273529890926353715503434895785212204986785835268007299013214253212216024690348088173641987759390185139388578933313187713836080042857900246946866932676404186543787816296026025920322751680278824921259481342304630970767436866242306509676398020129205942675674972474133110385091303071285656907523812313348293586685579612918954693076471373593621134970617315067097184372768302789337762304899626895808031191146252026040331931800477249949156497299729744472277204804374370801641403025081488227416569517896756701932349153363955307252606735781596055142835607316172645520629773788722170969490782873266629456149350002803500532969466276271441174381978270265197529936454063858244833606116087489744657378641221811715852110829055040194219544247895399708009231110307916414586616596531044173827904503346804227321087750813866266778941961343891112124860206677806489229757664632630526655049755909171386414770534083674788262633219103252408455620028673921414774092726544056025096311461232083513891729675089561181126695910998778850434182289245285738476347849662984492975504998573163027327585761218586190502273788248010463148334462450104960581714973528335030262229367074741308125234460902678193820787923393150685667442255566932313721741695295413829993904839886069761974848224652159547458586764788083964021744227452355715824911984208765858035884534134298875987066438433204900717215841729262404024661312550944875238337107583564610839885404771523661521266095947218068421221766214974769199349782861229041779847663782398463293309168390507156877654262329336756155813558263806485669196764049873194379502354546976569471076442306271520581649729990637098745350917477993184317252836987204298848567399530721013538917064979370206773612914190508694895405463048072404855335919991361356900756975652497819731909265100924526857601468016173666193340517399168093924718594177490838943672956294286941778316646925660149562304872090660451551690705519848363395892260533182889104804162991694287303477535910287591020696653707830431123784467547975028540907161736407365483577736685083107872896453759812447786261764002412046319563413179061335746412449241782028751833704725781983513919943910110197079209020011979463601424134697241221384255878446138612371630175360064320527950890988669886947531423590254470267520155608279721362413339036690742303477255325624958786544048102983079698241447800195892923028128714961477326824455211250665762302592986955063350731131158886602502638638264578518396435284974696278305739374646020497640804558444345232961364719960321375526128174776034060452965582572123206170219658089310683030569139343544312987195970339936744750307724603206456737128150690478049826385146331007431034261329842174956865343104485387751573988177061876893752415935440486247555144186281444776334861610694208429389312513724880603060473769233970218718082389927141494392359686443254018919600120690133731999076288309318172296379897784462173897590084066316675315580507181367685593716737564300926269869396138837217975806874715970836617313346173469128773561452038762011962599667013420825372404820113286741231792884698945606110955203506962783209133060863248946940076568259488018416774458149968080475276618525385966072622116702707440748911599108020467657449858568337577340984080607839719795126980477125898832093157333505578814338844274436980067888186418117752302539423789187076921756235797070728852512091118463468730772297853018885160549500525855093629296834037281140829501574720350563489597323447016392647531228021130092429045299567396817593844582442867283495452293250601169338772149612043306700674140339939529946434231951706665788611926390559548895232725437859944678117446619792313370324651958380841994597946649721853279455703241320395801533711570446207811834161765147755728779519201458008571652738828707033448559428993071806469228563677222455734269892245774491052627247649145348407087481730559910801363716561045299271011066429502390510067333530301174142260663880443543988464282503495344238951902276931462915101021024910206656400851895187290034369785001107293813310845601457013018581629729861391427768714497037211027007858473740658739720015279572158957973777947678368321143206710808030526139667769774885253586072930239132279715760691504605475801152060546408340420459491891867999956341601060636235782255679613428536642220768116082408604104642734538029903130517906672665645154438872644251333234393398466460425599503153450280978447006323034476410572631573952910087718459530883511298028990564438910576126821222806757323643668403071165343159806917957073797630527464648563045898205647380099318313724504335612066113200087273812217748299512360246389375970277388738368111494281945237850991783237737678865460156212935725527304418443078826104860242417903187618821003045488627392179919425909121992303382145226471359013561235504432878867001806511904962495187877007110074156617580739304624737176750079814584841777592743031421975146062538611580276087652956843232138584303739918316609307446658115706351888678730225392643569466422079227057899246404499318811678069175743626367313924869343227227108486950774899032888115545157772573919946062074400061069406932023920009211074000565244873782700755114989452319495786524039125766705562802249756003096471588387796680554113886558491493319446141630836136881563765827260954387113484955601255165817999202924239421311884344367918191663093519359931471337007350619850630153179281857762453947220997701309133113544313466137975500965235023429959613166660873715684342114045336987280029858998518000775182705502644847077808733172076847210684325945381529712160394073815718202945020015323308036495852313060256953973081599417849953542282259261865917338297659472693497851296638062146426954625508478065797377720641757959805897607293779003255788166775783971419393526041489110738081891363189456593453097882353922431713462306256431739481743692074547209060808234781414560696682414314205832726138065870077311397099160137141497840139032300975356413907876074229549392519229197663774740852813488106946763012826829423598022250226485408877828680412812930466103349234573631849638837339651956420619386173763910241464011117349900462236856514285461248246670634080091243630001326806950192972527220321630184351162637708400117079359700917597915190120130955270182068333257867829719869992438462155702243986881786436005490188281790632592312453412889623103549265368966476906063774299774475050345782788954640026019400582857184759536489278340626619008276194336147651291971720410611012704554932533097287709425536756492987557887368776687543831599663973322307413424291961960065334407831666057419452640700856294530882957135172783626998748632827084060664294353191944179327644859366664428353000886381325196492730538299082888145833806590500631207529278824598472727612087397178043454780835399835663632316680616036687486875500470458684656112657901015019519125245765289581452345103545169807449097141819662787030766081595945011709139167517353336637339139370747995248830223082017569823257188656627101535626165548658119454033469525269342503105235657982765683778560373908967536032814781365965169504071770445158637233022901410515823342224851114308635431137328992842011075665437436642657498304116858657867676147044511043503828260365590817580463164556544916478705511464071837810705601530544104987041353921729939230678940263525094897530860132037537253053556733893676533462493409947988370001496798840489529229159706265233547720922368227079837981526541525409235560520797800517389083292987331966678127569452847022588301386757514628482695356236461725113268058236757556688739110450034196465735043626585663782777163451328336019898217688619060851209439762470473871227148785676125457179061270668770017456117258624894704285787349381222094807554541571142731394938725629384258613243975467468246112938164568788905327082109888871544892541811712113786740321408035012830931007812507633856059954139101371532641742115201651860758440529878767136726436257018621979152412807086910219972419754586815821862506616157021262306385075903885144239748011605812928478730710819202981983180722381903168887636288476137397675721576305277524168923159014504237069607926601612560024103534016217901001225218815870334604303262236788015641514910995649173972885043398908614614790191973552236650128375662474846107581966582024815747402308042877200183355696732408128206817997998232170252734070879259681133099753471146997113249278358628418479517464213800416411170505356982814608243901085295186560250019486009555473244154208393209628115937563694909236507065996875138967500350610642206993225392941376167943634817765445529167982172153091218944161088653158099142973544857802232599140196752089417553357811945110619249283821148361564662012515904575276600857736125653811945758745464804480276304857963936808392585697315632139940055205943611971944171054069775949966543429512980212217285665327393427356266160722741665083699610803344164523317412568903335156721780016469974063554364770696933755987334345849123994522740553351133506120327828055113702930313059112075987372651059208926419588694975622168629139921474636114837428918297144159165106071543853289270338139439655737462976962512968465251126409721570784300516743489837990823746900544887481431676422282491597500648460003815727159572077518294514129630576454393533346190247102114148100895856854055600084141196912957191343925393711051432960979456773425072845510243568339165122572043923681971556453889033445117221358689917117665261182811005396861267496699888814255813504472060138997538586621124321437148799761449635979070493774931141505218865300096223191386371602572598006438183751429830842837189326889204580600531613274955374318316059066356588173173366191950997582019067235322058020432775172575632605401813774569694245847406640762475651528590772257250324480145812095137772694098813156494269894816057911194336176138123736393956580664062141344358320147129553639952560818407465148706369015480326264848655528645597411629114534167612757780306083890414020611869191629344951359577811919361567419937122350328563087205580098385392114467207744453135949941118684355233381118173586724663141886221582271696080672595710525628737337523955030109995477023770738079089559112722295539082921267723653660949642579548297926813147662409396611750623696406776903201804911298753094117824746377285667398539826645724561053938073070115558415404678402003930442505509742299576307940641874705798533490436632730830886371658324655489844672090272098455707898845269585034767788277469844917004895811097245986725583025309698046520534989322890703888786563105076211502330794402217636644874065459162059791669307920286330930325982368671598866370376978290345445280313045544215866452823529686625893875781580442894709456672829290236312620264865171405069432596526400062089654499920924281407519209380816174414723897589559476755309281686947046759338248902216572759430284088903242101248881440033838344815220020243564211417213883564148959674719918700352842690515540395419857237610401608698838493087506493159139671959335372124709784421898151486829729760618880430457655801432831189886874149413907353944412688320678111744920482168093414500372616007558488524613300598515004736174752154132574177231062666533127290155085213946308787508048450317426466998198450281263073056195458452431912729371593412861887938951898698165600874898928784177398585895327009932927907194339816153133595795407087655392406027539495984611976625823217771530090259884018174153105313886054449791226287932767249958693243353077103342758667766869939566841202994798333748691911850666193044222203733625843925121917944222741254129985214142837479364766675361450947244013164248737807451915212440477651186994850872826123923663626088549171143956851326163372516729028076132094381114071999366181924523478490031681555490220669985486521059402107700790273355244035059970242309071025067413891380245144450822444019056837439062046597222329985731211853471868736437751163666818565827632803633326326615658831373857346368860774020198549562586974527659376120574222514626939254782258583535245163725457510757286278785825243838024458299741367707384436204031629948223919245313579310872066924868433007592102628993138792812267660065717067078157435806446076976522013074811741413362138674127849670004229585973334199295688669555618130998596282366362406561846635190827879529075443347607451402168651433895452418949037235120804802093189758206153056915947043545229180416450057606851331119757742665142793191843659406847611265407066504465079765533622034204144777517079464580207942105828754008369510153924504566715316781946671702499060360253435916234047389324117142946806628280479196500676767836527382181863803935584055645943038974010822086843557190196763416043385784481778492345991153274409311357296507174831638253816565518296336788769459288889624319932966373175118378178402453349160716355725505947539134027179657526902960240655119457000958460548507547683418065336396966319466806795755956111589772068441005413849189017527594585894037654780174011338259715996035091932878692346255769063828436325495068092754006238492446448195731373738328574822880116181113195143060876571695655539699100039259684017580300464077556381128337046972133258881470114446010738587432541449599564118652572984385072238573326473174783147876088742272913229679609547025384433019956158296822594911054777656391216475782474158422885533548574017311019963623668963730889684366459353265768570649303961647640706340500663249498671745476161427346904399610395754121798186599133227514788516552957068399653526201942058714434826060994597270754404298900361209951039398253097486167635213387332235900014161901662181491874957925886514548331985645665001551967100102749350370984357132647913128081627552862611339569541424293507832431036535035312261365882447027932557343092583287647761377526480864900499102931520407590553502298268652589511580093333098821823895634053583173355873941065279625462696994992684022865868645561382218682581351412839162166527703852088883509878950666986950672785273790374753876371055591085839668450108687814075611704981334354655019354863883770169074101750205293220934726451650989569866233724507910570094254515748722477565107891890662377870100779713257783686400463704726073555984759031869441919312415658969622559853442365095891780491784147680119553708591815522573282420943198381315755239440436643726674584074570036259010631466035389861496184176875755801371808186697757140878127026351749759586314993536503699006595617399281300814527154972443785386236807217440996653343376567305176570635213434055660655061350709013269307515798231220617925676797572636355698325341817443127427467478115974316378720156174794649604127370100697440709213538510443932050487592677801519208640624618513047091758867519502691216522028103438533646247970361062321516229729770467542267200403823683136251311439358697299650394556985431008224261787078521942060353720310161252289405828240386436180936901443593485907034235356123346632860957257138806252182910382203747819413763500319486684449059759724723509418924094999602736470187570142033107804331090068101084415490669638666451799264850881130053527795334095232105012654781847843098396608609424323146717559862666413958723140824782042731199092090993301706289399131347850184812386997802180443866119059139666725556576057121157551748315289369919201972010051956114167078549875161666181750509233908310143107301721035191310071271293731464946373795992324783782491951112511730941238482040316591580051579219830596099602268130463639625086436783894495727477698978170464757124624889150740713672714482010547989603575591752971428235078057541811531996298166608010465655139506791055307990778980389511770772453282468432944601072126472589776116752344600255332809474035701589684427090502635051765232169618350075858739305970585559109042859753167125928380136906688746265772594394416369089669092609952899846267360666376048356661621212476416867848139977980509803536307190833482231525659897858311368330193140556752405170650682582265586458449741516904047877660688970591707600344069620416780993491141667331605586309864785021006286915098664491465521804130189069027907263181046999972932779416075740729524108101645279468632565426598050502324164363159382253689240630750563387490302252592119308407022134980325843592271431583184912815562463965300142861338056447342293481281731535110097245344307836705126488355248469856848138252709394711201372981469050101521701657914528669980440017340573416110257572326043217693709274896790986523273585377551682631059877702750610781038149380210263002450609427253440799531417497443568574445044345583545049901058257183673331570127651403498277642374285574792334860751952735078901182441798779356120424113323204597386969383579110109003987190242073781471543753719190995929644667840978523103942944817101284617406029676449415576465544838156994063991840657842300810442243586369815392344417740691080314367759393993012679967718351289675624345097769285266531323157593109452820125078896169604904590196592999368583499551280322047677203365665567008947851016790652896756793910425709590632930988176176019169486706145089271118022744048088195844572926509694169335368259335733147803432960571291157410299669062383994658261118297271061756183542072664166330240067587104106494041498953524517162569962383259478114889177058095899202356850882464455925728731849895162042760030059032675094027527546049867053310311207344303890263409804841180353734176929308219457236697950742537836183927546401254453780732036385909795317837368786796442396981983746690403092561763619169297335672560344248242274609789649790265229925606160746676230054904317650555931110954248275168143162511319876342824490518155850488818518000608191659034417214262691015382040933256561438256677732145325521983546373197618870475320882098640316114757021575791219298797770117290509437366324816915954744459523416905656525824501457137359618396106192540773725213106937363625650278398842366931512566176220161047935988943487268736160145491330927865267391457471780075856893282008891158741199921626411357749243037298450511761249007700244363088121320129018599286309475348325680476217866123803944075535758968284488301999773252444798973289623699641562864850916206579609495588302472350172031117537443906876888861386411101501622573996907803552648012188994136715125668797597556706194380436963620176841367247167032930107418099888175563599980900793020392308936620086020880708381735871118679489618662233260175438863780584372488739552258824609302130425946838830275567665464155249322752330991665893040652384996652288738862596437889243784718323222263906835567463313645001338130175030573477754949514194053937623895475646187106672134314925000665101452879331370137737776608742923995853633198945294969877474305020808107829487205739270440450009459333107826761769844527664116610086334776330033360394487412950792519777387488216174711562678241953986228396909094747091583005539459610796658739175904055563495569590705033665953196843276060857053920231786989741523861142849842612991779463650522816708888181688707901516659232919395874905211687012665379144603291304292347728337993703527185861192814639430503642785033164817168189274261468064571858828365727148132585814489773079655298006962362427757091884163265738708115479884554640440697540648527066080101013620023555394741081050575818255999580435154650608668062524266371796245812157350739586463810315928566499396737091368198661773240158097990198608450217960065973950123358564877199929269635870772210655859766428650983819421343999054261434078381734872820611193612954321645217028212083601301320324035433934258521177879256873287224429667269184348027715523489046454738220406987812382069447682039227709643757351186240960533025177018375166651008235470008310631890865783033162428395429001422766940698205401330094242220105174501192471879934874565057495658319096241974096782400023337375024975317190050675457839869853860532153589780558025366806221586488575058853531504304727874733090265605926011487850039674431700532980391837500326065067537965267333767490345583418624147611672244274691687119312112473815035285200518493013861533653824183987581072050698210289863484227240592039475387967872395630604054158693801687910340991917236856652985712881006263071938233044273670361185330620571896396958389989502192257155267490239648894394552430810034715241667120797516320725964358884186989314079169785074522046420206604922676439167984515969266795806756397215887422189873643321073104300105635055669171135815278532089174839110184429059285693789889507835457804187895243225156810881615766566111098368782426984346042460377899903630859501929049620512747044483394303786847667588285396051988490627355062137995123779863459855281538271087164567186623325624668656238052007256809637754961035186878649895531545556502571201013271114967438523047697095471643359968038464948138733751668118965181497518409681801720387630514033583169968468531933266312248500415675172436638513458798446793040455186971060449962701749994364946076950450724715512932221643316459854563860702005430573289792845748314898276101456200386196529268189409066160287085052307436579192235108728297097004922947103129436672305381665689683261526838678102404753539912939842741829575014381776883056522960092679114020380592070251082947179628807618020229397893818661083200319009968979787388538409981387223540860108526874987635125206175311948375120010896254337681960283184573542364500979943894313997082321191420458045572309274032062849209437966429269304399537765561089106004560556143082350893512975456945090554250992950867245658324624417680538642087074731297133295209918314362223410773136829839944655666758527421423361980809599299871858863626488179961707021034969116127666538321480651835791159112304235471634538406184190158731873212821055215110501900831746764208826410839976615505941699951095341035035376815749249922697496519242504658893062054019051834240371265668244925520640650612971631881796679655740944216841144076227129348169007293306240047873421784963110869954742356221382657999972181573846646928026337078108767845530806092142831384000924004534662163759637314354846426382347224597436998214545512767896010077885610765918931778110989647297112392287677655768031536569231555401177329982670324003199278433305263250640557911277676579853515675595257018384673573733479731816997864584423264173964252962608251816346712674968036925162678070266758522433239170013367797828657261932762743212187527432416148182933770741229479768791842644472222440083416137598589782311117815999576822667417572634638628953845270027996220360890606681202903953352265351751842072616824305014195245454942318627228231962472554914971409038442785372603250715631621096579543284248506453427487208497861190131014430259196723771089681637332926757361555185352497865914438022605251419851612833857833175375046071786872533631279282104070180184197568787823705194340198635569617553035658311182767508158242499903089014357479550618052211172367548062032330201473741070232933711211542664786026212180194826638268421998635292647962302043967706365022503753180834510267462554861683718964291393196246163849380478453254938133633454718901241136814690628497953359638921738005497833575193835748173217457893728633240308616870772788338794550989351556369973437348314382946835045104673515571068979351848544017592798417054649896567050658521693642925667541426196494020121049473779237451494182447521973485201991012548567418408956177685364750532251975331843799665131820694255530680581960050483030271037049329719785646553054049432254120702287900888226745015314412447245005362337319358103493220576820136311923727934159785617621404782786534938572502992592210808721240617160524493890941916690220254348949749469314427090220949012001976565444124106302388061157210475335294601857780757293446014598534888987636915145590667448706152629265313694293585783783970832922538930341758992849566762647462425738025680092699314121829100038138665050095071819330508880135909386651513235280454322958848613830474274854045641009433192843639392844056644130702362970668867782175401515667176299968127432188310166527584263747555109354667394885789886569493605189238359301629878044396960552692903836826571850189234876239466612669190498132177936124756702652588356159611414553600876620683598653053893214616632202221536012906225843746921453151595389695240898182283121441345012446601666068138736661842620013444315512183784637157965300632082386721128708471914788784261364286309302534495929146577570885811898200510576856619282403067198296966815518060419580946777715602536061495519196320077372294135793943970863981461542376463629660593435563269027162105767982489055702734770516542001209585112202030800724025878570040377058515440938209283369587590490788609074898198828767782833721266847410264943915526917101154470530398694104014934683358962405838343639335174070402309534803890305650523050396449422951438732465155059603664112252163950508605780621779876566715833515935352067491917676215208047417677098683405863085188754354672934580455796404625203846815762250444160391921276369701911667622092663690123794986874422278337845849553404362495004489635236077005438845446307576528007799711039551721539705084721767959115843769956232140046437150395507108266569631612321819405907983707570180848012371340908736964110085765202629850694044981190938382018341119238505739880979347927327414775996571908711232115919086176677639427591741554235368987213892239764671910303759811453981595442338575746003013426216891167361819262433530783478152259415664963313400797588921462221545970694789557364736570176217124567157181823110135627694802475643626220275177235882506046528069363804604395595319458998438749113910255895642844172398218032677655689412389759705791560363279019068557665954706353816977062504859305255923211476255549205609698203966803871272712258670144360336682437365049182577090229013791319143738849313626134630881057150021194216132319695702206771157324460722010452537399118109662688556180520306734672765831224438195434011899697576651065509100853153771055013489419522096033207231976392851669093785263937516280421171042665892389240869260756404429365563168250718285755327284002627131776295421379700744100121854145527423505334596860456365038625949327083279700708678203260003206427331542473559910028483081587986248784505797981836220876017305703153885769450611258985011727656941454399413936595728495460342261128951940203587822717552104199852237355209446571767790200420363217761009289595866214203205272458541575560000635239047470317048684775824334165267498242516741789237801518494167883784869546601878484764815683186350791773246344433647473125583888955897506689233392332258757277328466800163714035195811009772933473663294684573938856233737648467182498896235962960417906063973876418444639815407479966511241957121795887604145842147140685259578631927373016255481782102707411108350006247205823566308617020135009562618520996802118285455764866584901693962990522522744198296524721533761069976679563539647686764213340316172768374402660047977980967732398202043769045757455776512476794537570137138964514738692440504531697771976701580935825136095735836084641479669850656826559001851589413181589750872558630351434824915413709795874129389741551137000134952585019117981896186279478580704639659051692981981706988314636867327351026477644929888441961966608133350940003072714097587537675306620295782805473670141865309902199577658496682863219476839422078251054638097624396872830512476660658734389189770222843538245427235300451131162414933490193939255057826359389138552602504874072165890676446476057673473476653041873296255685669656145049923567044571288432371786918660426820936282199212658579428391450214613095698591396618044688570614232791464409271146111921354470239164147840264529402560427120732869723058821785535218501378311603942202254891819895955463749060418297645948323344425617185150096220110045253092095063997541197237528562819363830084766077965884609614532428526694195045533039858409930228655215835367690196928359840940164371570332668302386555789773258528128323220977410829546310391224269017284288587122938780821326327635236499025469921784750281897335586480934415036179755880580891582644656435829568289529154638339949411557627500317455893403998683799894195539312543461083527722231248698875416340615878320994029916411226500802613919429479888401696939564547583026487604847141607662414159494227784417458929555328091579075575065555236771173831842803404755881611896357336450794220059508748261199513501824776068731753721140215653854694357765593994500659575593781082230916545238443006695195397568093465598890631346392941783982821369246050305820241994784903000630260977520296615584921127579141821400112065969166920792038707962294213852344376370323944710503223853544383966728235397921252898872873266002417559530207058475606391799582211142423606429740162640035596697439475942422072257435614462967224546184227197237635895000860690389634680244888232015876295971724982244329127338987075256729236488075933089446024663126178464418977217681241115741481149495882454694531376758530338677234037645372953783318589162112159645714040938922121624668238321304892436422810445257879176077558475755540486891515836575515743232437703294043972122163921335023349760239395447278497856270185664587891619137590447666528864944704222518100335887968986273344291186363704348809923526439770290969784340946793124775413418050934672415405431848334774864709017111678572489130412109528477048160888503406734716946464928559242530041947159681741991043924679449006450523344455094204148276467898185172293261216469237647122964425797742641559148226099576459270974602156905874236820560258810206438021479719489295150937637167489743524830917814549144254615283351948815175966631866440590706336660492959761224460643779327861994503424288065344459067527150072002109517522093532159834944912741874625021328959258306794719417206652010161413753464508811059420672476755545210135800744402807572803011647366548854795285793946820516039595251529964210820616716940086956208487017624118964584708533811899028863431346220673408066345844850240931651105858673075852156048170827494514420564072057236633294536680899349217176153193288932424070648091088774998952148147163809202654920085428813021989312657912188905535759131877359519592738275387035347086488473580585400298434474783163550610170311007408564329173160573826499987159996570873628388899972866177668349414764998745927836126701182391998935874810359299287337894776776503371582902128261846461664370905725432470645093496605655666891331669666224994227503356364593575118438099076522209530430294065107805009030091854514708377507152513393478175754526108803566807522277916344805040559874098078303980417778096363339734912113478320938791796776287326101288658465016622712377196822573174739841628245624821026736236218099842816267108899517269060072320449776967568543297632469782156743983550814620805507461826290778882334782744944732269559519767815549861129728237398283420370949589675443407956519519361944912065478898117616437218531756669175941335065680551112397132874087667733392127585056126298185697766144721303414847141185848854624836440457815419489444066163283048427872701292603219019290631463514542213272485925701432248216170763751888713696881450299274716144571003649026260863581809909663543299573716337585730884706117849478607824191547914281034478634874488844552673786573801311824432762461503124336059343601289196573330443768443119665548997075040760880429449272292943211519998952629603413117879524891752425301455086899281225794506757238424931144440426535111853193625554915905398465697165735275614921496574798260851856262393829814547368771975459013449860605713238162474171735522524143321406196589882562681431915869153028747628689390071863553563211233605785590727905356351428505869544592446797490773021708028426434484771049521894502770544674524611608217232119344479862613646914876294091166453903887809787808549972204118115301196278555927333282602069696864047731274666079739244614503537414264562269909725961250649518776639843507871803541097969377494063264956321269716033657257991968620785341720788508715790267216491787764700342047275341130799963056042724793583924075475207681759612511932799609664406730074756883345211761791078901284024863908514638300711161201883097395886746959170913000728730714962553750782266412102571077836248196333817328436121406248062416607150165322487072691921866800431108760357619810285312669311577276470111790243350583896807179755895367105989920694610807540107486373935597250750796010838243047120190318718907296085846440650702333741116929333863903861651293048993515455516997061910390598769903890534457018096838789933754578911143189208758914559476732840490483598010961009845207770484765573164865269526405617076086922080868842040305328154058110705435010768117694124096375955655181928628220367338194873422312146384031032177097132102914558027926528673145527982749830958856987375543777968956001641178749716882202040151852656760846780503987968883395784040664451168787161589646891910201923779137986997430241698536678797807025049169005575504713488381228702725419516884806992217775760980621675660960083382941223590013190921861173187960868225940891011990355244378890614792716411803003260162059928315865611872147951215216558193695026379272930250535745554749271417015976636464445154158242493558574111755545517365873073648563946342577182878945186331278296963142192191478217311076799723494788902046069305617719002958977440813040484038959314059497150259538742252116851617639506726970938754365228796467220812762356321847310975581750439213175915678330947458384511551306571910760421763806195339140862731059198517493183354129254525365020584096380380806186769272887560266585530935557073838396028519989086768867286050126909237681198306981514645340228858808207850429799482105877183827738546193905722627366834936435699805287201999266675761290279955788100782881791869126942555696651805693633574693275681365535142016949590067260925315294002075000270253664849359132741947630867599872555978695427952370535135016259423044865562799911906376006772033761723775504208375507125433574373059590763562898502090214436268305313495279547673648977565458430626502217787361453164865989598898449500381527390964104864707458507353314092632149380504015434069527664410811110210637081837479435953470173549176024792471478007585869460572528864108519647894385946893712432559120569960558695828796138251273916650466004200950133031874682152356933426410194380610203454951193987822409716384014539191857866884472519524411863060534990315329758360952090018718514421865855124125677128160345429492994057474884285862671787414774457535019815262481842594668736699675691979902817205321916719770763007806741015850917477037399283792689799277594139935471902270418024116113403121978343403973671039936535909720196205524519363157879430787602341003955684334176986612641715036260593698832924851066290053113327424174388777094770860792385676573001794284294989318749852874383694545278230488686049687229459433574028353777740357194999086472569498828022479760323216587115966611040896378468815308075923448216284341479465312708666583251127505138171056762075963891877533389301050077371867026633564997174030709677662875821522210097506276395874446754124692215818868482277441942830725415186620345624490380218618911323068356185053243575315798388958430524357111054309220816816287486162532344799248367130151650238332935629032594132061963845246251218556349714393659747920209565416919467844731622849882734735853491779531011169735876755470058647646292457229114882178324952331885192632540792453284256411522287985987610570317277347391286853663366597923364001114967866881481826171855847388755277153604681723809675606365221485067042553231375698478667740405848211813781595446331275069742692298913063062892634593698380609520650821777184742044697069064795749894213549244754586445705199857015906473287029832003436915468615795391257719254893221912728173708648430998155239163871726011904253080655327787208985662948701631961702868523305173227083406449698279018441939217899992615112642812599605247777495016305544934567488612798756123206962120738646788076158457372066940062559285970796818029390716814475742247651164200259527669349739599606896168065758783740468411973233895895207436270719916658563719140824512092160518385467540321005563908970010891251104754796922704809474868941395309177976241781691153267108161602341787488363602692779426489101693834125063991432997903245644550288157147911646964025949322932427707648725552289279195609629314086484711427084614869229670488004152530541398156651673167557892067107654608392858629062974410128087783946286505962208962743940036353648176844557895079167755674419628158844109698986033374220734719349365758127437707801461408033328520418227866206399218100812196260991337790320019943227702990328296842773471148230803250789201462579458568461678760535689070628905684661069296112270796591412897335314989475271154897127151932156656788509430674052060248594503350026632217828153671200542978558888942363452689090457527278385659063742963000731457108232469084767905911793519500659199145468633775538054507221060351811512139655304062285392032507581655375166235311065625034465001352816654679192773965189151657697964862132397232433130709494621224888326242442428029497877410687445988129849408738701793163576537745572602964508549090390990191401629001395984208664970439085515227207278324555328625553215240157333193739378434493362706509716734264712964676588537637545377229504646217999250410816630723714134211018105964144423267940090834291338857122959701470395011111804810110568513535298527294204194389183736757087189218496663454294383039528095117315882449438234091681616471810414120665335771977075476275041856885222683335804881898388758160990013436534708741144713995211302470786431259950964537062498280781017021685519937003857503364591551085770055398854543911385435631803820056374437318047649598875321868574512626935528467647856238909399131303114452171254011672514802649658700023083009089581613056947690068929071188820036866670488053944230584280185162789435301410436451597271158362766463879186872486955889138236020663127230513589015352393140058933580545550870607014958870253109875679830606350484727215830544293809566936985912208465741795077385974187534145338793852416507048791025932254623242068750490536256568663117025196922457117008493219877224030923767572521831126228531476738400441808989890252263470913023293204239657805528013058927545430492303476594432223578168925851955012848702037218747016408038645455801070375989338729655698200887594238737916096550599384226360562437178342613380797573718582053698038143303752060165414168574436348165130879546905689353732326989480841707562659005432073233468532913592502512237381611553018287976275423655765430703552405668027321084887896413099018368065735617102181025347548554562170139841944644507083799325073330149564291144769112769013895898630086588971664742418140158269880546648853968609105655562905530835562491969158538854608266243114303668835058963686217833665311438900721631907669410623001930283864113663446987796411847702903947060649236257486171913229314635330173044615040830075709354408408850319716347043479564377090084470181640711499889213361568972069554690181419320529397918837469177589725205919993449412878111382457466271790480242011051492573765518700021516032720561138269093419785252239852973396725797249638092029979030143799327403695232685230081988994963669694654576536217650144350003126802614534317373702795761054830103337762964899316584572474823620425430163296339867560232174117941510884322607428604007171701291008449799239095978134862452994967773034671445315052466235805997719095726990268638278358003149146328309345649713503460573648586306993652605309552976454911529301583642133678429047902504611904159670065032754054278672411387152529363036244583672835520985640954201263454079889485639381151768194993989296981157483180582254454391778632420502607956052686852113230220192636062104859105148395975095790009250600028785064751708854807512862030445158817621691598775980404244306356781188812939816859145054385830576874256722742641396881132121475654535110340948532369554669545660353018797373103916876928808778746086006593481837506903426923745918545819112549768643411710002694149112682035405513808675898817349168094093331978683468259507832181593275913132606636714306123858845638345036562828941898580459338929984108081872363318657089402310746727344687704482476042960083834771784121217323390737349403919185199696636707834337853000366710826756320806423461436563192952583056904503912279043889407236861468324833157737963304787225503738967125664960719625990681260412837305615583113305430217543262972342975819179868227728057909475800977968377127236950050183545684114774392906069810438237033076120953929884462839629169649197653596872474472790377933199918598598139560256643241734581778296080606547086493941014952386419264083316450849156832800160277966760645895358374517938923048335899211488317135692746649729426015275099687411175796206661438555174241813798756449710275237786910085807383909630537411804730881963344850987146293131853083304250158134640346328076824457398774502919137898365614489612700972617715830431303698782042048315972195402817170511368441386098785500845642361591946026592498271146220598394445660445157318901680973202656687092123546501804512396512452466274696755292787253475439106156047048419977834691752502478806149824002581516285656910147439111777980967384565514745116213015664374293314443382581933875041329034765466511121356787703537350541802221725065216793428470774700774380290449664632722174466238325850956323995853912427785635677110945862621981697817568306187293857545911383296236151026572981411851858482723545859560939173837255661011467556998754059385859053083647214428440280785875922212025807529589997241567111503468927294758820135564871534868059425780447229994003276273259744055529116624150131809208317068685225613809570093834396423371469567023385860407260233777141960431449882800665062657480050626419856369925428627264750869206586364833957902681612093887550827825598157749122243469244634084155008489231086519738974815829494203042111264756027123590287076132754886364738603045255542456351147730400785340176714010589282692246486761855450535959204365719287260354352334399589440995494624091817528794947190136082896199638524980212822879010968408470145980925913457929095544295046246721031552445074247342943482592035023905487137940959396546851855607041393401240295052224460069038928399690757392019350240420148395577250489217020405607482329881167433585139748121280873123184031363937728176296201830759612257776779357713506597314521917226960769298118302406890252453187048472872769944287160479722078117246196512585465742832282661433433256524375804325579142176602563114370295015557008354077233609333152681771733357707392004298814960860317054008800053436987212613743179672073312809318898138795698837496627868486333075776315435879487923853669269463211605256470503819933555998759124234165292479561988479574429748835664934050133555692374266744115265241101954278649909093236776851480536460699306181736656509997749968392087776600236243486942288132700168387407720072681535904392793664679455221198440683325381931327040752377902494034409722685763045890948597449154071033771620132162848510938275396562481584566639722678469349846575922405817456105122337422186046991099012485829006391058665613743141955334226329875559613433758872288105074706550505363949596150937629733009674181397117998375716357369197853473028021607450017732694680420426716953600260769869223364754495693317923396578268550966093770630771805228731513806464417258029031975898064191075777992141202594230308702396791185079670049054067870108433301684844447471544750285371699343788473643830520501702773960781563114805067170701826438632136905271483357904540968203932358924853270423983319824504764906599637198991517380396876495859661016436856588701790220401546927740711410404456898745060167150876464316134544494512273303480805022336180296797522671265463737996430982602088364113799412411551267980436856899460932259010216915295636188068719101859158329075233839190163919905456434724082162005456636104370697813485398212570307156081327909087221990924176315953243990957387021274233872072220653250334107938122326299985987898497471615520423196614368536502638986634121839771824339176816823328005371806106960943735977815567069168234344443986367589969220442933926481522965865438335617223604481200620229102355876915015388568353872930988440489924029034659934463616532737385077206065364597950013180453878696801729939672307515379007907733558662184540764370291459886274514814473561715237904314831532762366589533692545850775151051347685253474425652559016170111860858452148964882868010165965793892477479299730047601808229727847457945325945807885795261632142709113662309072426789003751955616906413535457965757502984251437945706359058327722971226133205970245973263610971996703852896952454258181183422501105516827803583673033950282942422793655738417148120593088237769139114686765948360694194043490956802752967193260444883298746841609072903237064558656132913462574210253541552418295801177435954183173480151620259311904132827694174559274583429142463918964061972142724313199389111477769598743603946793415293576170885838674684225120392938773432529511898170530010995020697886895917986553353132179212832062981689373823281095908654027551131093977967408193957789712168007310792323922836379322141956429524131203397122344496327923428804054988937855749157082275861617539496566583593970775835762066112792360069341324902561350186173504169965940056907979325706347626263453548045615470059621434325500213055401585003802549758036898689660010732683831545136874838829498375260890365138146545017072052782572116095748578266255512132157135074681567702256139577074601546348236461242397055041425860697667739343318382202390749963735233191772614454078804682649713289380774403353674789743871206122080577032827403924508909237497229915224325307905071284745692271321812260278688555641156347814504789709100412657896467983930689742950680637047442698962934748203474775019105034059086966711421391844299065659661853629305780135718340738072020186336624840984668631305177438161959842415316946837436624695704432394913822772218113511368110601347457646469113884271497977832109118899926426639660813960212514722242976753944510550294310725688147875198791121646203579786674634432465077880223246949668348481970004032036812007605365027686642384835695835298277965595546097440038013652501134649557330131537726499232262985398141873797909755627610562404445007010467658602815007939803256409219773206856892444647270554162324115891531490943350750900296206919216770264614991734636336846199134456813236843711785546071403074236482472315203990087827395838394461463873353850161582968815440674809216477157182172952354840915079655936024045698803520379245496609799987391601384052753706088574946595408689293225850992955774156988199750056381522167159526313550344319356478970149576847666301231086096872976098004214285360798756837528699270262614431735924983105277347577328047909611917102528460540935083497729075402419044483904665869639670869902388579476039863195428260189376776742150985263211018908206989945963303944537513210735189967178540198805200248987861954456306834852687137352910206127660265504082835406006047187828834787951083236557424765498251245629884380355183037248364484865042921314091442975202698185965803811104068110686329038529710185982327801458210848518391135783304281238515198733974255119442251645445919505777723524452297704500561347259589739661380655616879400352076771122893920194891239667776425379074244840350458970274331164028406871844318169425495164411983515013252801360099893007183055739809705440985998714028237879358917828056936541600533567275755742901977787256320264900890566444510274272026441011404940663921960637051744152782444122809889746276890845268507638892191935826925072019551953784503385361195443534769942623923397045834272587170089951626788708481233436897382427522320452666983222519724721906791229576835858333072686407282267557286535650060290806153483399857673235728547562528144860903704042097178116237073511992421255880361665740183056998555758172446503015224145627489942066290453272736035441288344681010006886874881285667678963877654118482451656081590831414567961996073722044415107566131573951873620076978455104771869888791968501965235384624476981404108428469978291246536070577349368558247546699367197919530497254494642072420918727827908905220724693506188995669082553637676914762566831889735552640888540627423474702053360646202390387265845999472284672277239702077621654290973471261828828206077430353888901036786582442140422737580214684708042789556920195234085328633296096524082329964227769166086896168115229494029364823906389056762884396305364013849716518885681008454110440026304572605826733677906238713299502278386420421706495794931598770124417529927722946804743704863246456654343325423671704576537454195232125759838083232706067219853034147669068678254909678022427608058400674039859556317223960020567614184602534563737633815544949828658701587503571076268833735669588361470340356755545951030646648317913024162517915446265453120790671088946889963640463421492722088170806315207613788154667911416160145197147481312842688851239264142520871985491819255898245914930932554942415580818042159393611892173469188418151859925522928466231169057265010404494362478420250766602440487120175483177100228621764232329327400874982688905011172630950100963673853404497673078741647267637191734067794001136281435402609433252512867986442209701348897846388775882395548070612554555816098155060095188579877694971877980840407425133255795378971400903414854172238958151133116039797419060014261113344907198450649658034969890868595645287747715882155985303221929701536879965608725052714693607466672562169425516427319464929077260113551618028638342339287442809329246480059566802142381456962314977798164790695289335708798147388254095807812658416228612380856677904838816415656204217836283965748359988167523570979297685124018990467382410261565029880467539584117559585933510845442300650777203496336618484312731176896246672689750178266413774809338275296710672914515780289702438538446858359316914930233148610610937741867102478655647869682983140809968905321104054390335958598018955404004947169279818509026942223727857553535641030790165592362507070433845862150519735006002139744306877127909218379835256508239710124730900476982266612199995945424551911042716406121820282258405775192202051655325754447155078787219045418166501909733134869209183665214605875431876635933285553428556823342970998911543640270819236253716434446965359302915821567278952416882136155136095721863474301265602948204763664746612949183146810140721585786977888946507589765879752378875277083685253869702588996280303373239114631460611623244442488918838085364536972389541831403283558328890568230036395920433809262587286862219731200072769755717027485699570742666401599285920719194976927126630693323150958872544366735599986739893455614201070615964756542273605170458459424551936698687447789471837006496242722433558819484404920276150000385784069468492608029539838803988903563602826380880953090293795665937593854199437450753089991836776352455502706178318933903547119273347767397737172321954172899685440190650730532097976087000753266885606232983726827146531730665849486664530387651852645275841276015529839137587136590082232732513772160296695579214328411446147216963819067490562104688432138520304437891773205387457031419713561968988703567060533179423131290115684717464399908890767106947918355701306138737251560992968808013082784732719818348984485735050439712578124730512394004782189231681997762289823142222417366752570493513509075923627067371552416360649961225971203057227584717731999979008244293974894026393141050700862870431331391254045335854268701682732087091374233186986231881529035752028917828494729182204625731864689946282461398144910910729550959808388182425988797553647017565040479763877442350991778605296041303717129105143151432789742548085798842930193990182518334637544451288689305539143405038565167965006888662960179448604947194469633832150287345779442901932398490472113786500601440389876779408643101578420093339060959544303010799781174228940804426790330755699360750682657962538381650361150908051514636520730531479406719432933579022362750470346770440931311896987295647371956429839162860087436064634829788935758288366553131761094347185481595512048850220989255038517053433261812188265222045488708867267871548671208363094571219264582430487810237655469693526925575634911107762686409000590171829896430608281141538981196582698869936320583478643117712696047190066002035373534196549870065717135496126766999406439800017991891100066417413273398272535729139202074949853974013190629303812862737170197920442386424300494740431074620311094588700560381216475675494196713600345707738777977715001263535210275227095370864682176919302296353643436613982419919681105431326563881297312819441806502962756727986593541540171484071546635430743303981296089224025075804452442889144018006955274641868769190979270055328098144605613122319019935566568198507058417195834757824103128383306007075087344197708392969215753925575085804714905678807557729187725337397971465027766771172907354235356610305910711128490914560646828496547837122356645080595456836269180880697368160084147842110318003619420760252140554333154248399300007798508732680617280612067082909634315665350126782175000295059945940961548410924736405086812268295217222324973036469889136848120118487524069291869959785045600646917450035480874703758060480948107916678306780189572684712663614926171808633625280128325310773963034958888738163705809437406223888156415570097202566841546581304832622684523977297739532690607018229472610538640016194304193558237757295520191695153628786514753858403983164429208001522001970969412658218741380739388215864365041726769063556458332565495714756216538262258500100596353526381562035614052080998349475385662199769231395310028309286624659407954716231417355220317386242998655311538996663295999227877044663739258882014452524744946396249942751559759128401273328944212889176968720889564002439701999955511123821248456403880220002404818120430522901081557158189972368499263685172123855385809280228045298165774619703965727444895679058405839962092902338699917812085147211386427977289100839617818204182978691285092545272707962386341587415156123120164141681735915624035518463871198141380723545420845096518628966001287592659910471946076576932532026243658093327394946169722131329481557244146939799900389315250909363048781263306611802786994543422073178806674018284694450784552195446604176372123207892257054925838399073008334996912685686252366353165550585395640617665780994359921957992707837489112230855371348404019889746662598883926015090066537301937103855557530882524659672552522588695569838822556267111741463506961194409467072913218220458374921372414970898220809285215719591117739717324546713833439455470131323108898128440901510080078224285540491393358310462139233469070382469360595464334555727618273989445854037827060103285058272091682644922164933503710999159766400278594475437199555232178003539467587046951434336671426030957359066413134481450215036239426297353748297392113559506659039808923428542752372398703811960360779332729992835518487856770178862411472783868321282319078644703015985331344104392645748116068978075935675659859401228229660420537203278559036059833310005594170985216990590216399852324013814958895422581195115384672314221868204153006548130194761975099328625769395927408070687562815562881626318637684374082801956885257203035199541777222220901749711642215504259123199017944057395002158870140638236885302328336016698064401839833973721861313714509406419656491879997181156511837260517086374050725749334300797839436977187655032737863164974041975773862917763198900180430151471439247520911620339613885353547848972692518838734579635784826964946168080868319816017410241068195287161444596081406196805723922921914486355545320101667004902542233143329299496300585748915149197509760710457973463137170070935480160506001973659669518482663470140777426996588111756495081052735576807877073980211123027722270910860697816502685364739319577665784650827544964335499366032462631973527192803165179281091825719770573630180203064542988037593199389897782607630751583638630483864850020186941209469432562167938617935923002750971268700673476275952575776620663905330787227842146854023609605097778163010445148300737629745420988908724752324731353060059315094023355763260969017998591277769865218180235958477781277717422577760429252601906834002640541264872416610353972263251034018082426195741525695906627339209453448982320407138104520451446755030947507333491292166258081337428814889969237603519348971706068470144168357465758812610647878171322654658843282466483437437713817296165007726156329404567339392788365368199833282049114165712358312342374520579947231526793375000196147345256247153917287130464519618738242564812651844770561668971610532539049731171357834339726069872381099928197126909259937013569778797978849009549898839628802420839009481193129520853349610248359194085546747558743331453294817714871099037678167311607235651599142419969271603305746116748139302923333674658673287349758729628981085539598665541646915519378340478575340232278851488407952501557482423128948525053440358875034821901579657132363548053210150184449955893744629052270513923286750073327021664085278683110381656170396808402998736028014455313629518947767983278857675161206298264012793384193763739117912941517059470819748272557077273837491124693186870817610533860649289757635836738805560922207851839640496644180157254175035697734808455900595274070811356558618204547055065607745482258302762821010241894310099462576517389414238054135765112643913510126815918655535775838326175789228493290828848141857080383715587427639779592945896067234824481713080436088912463100147494839405774452628615303498250990121661412551343839436237950291973134441802170093796311942582176999528752910106437133803643074145638907438613304138756136125359957295476629037932231781490551513675492006305251266239034789974205453659135143155929409572784823702893057884989413931962386135466501658304846703007567368455137765476232361237528000875564984560168629166308855672142449325452634724238470766378538736837888155001224236129981953891293253737203282393955243191359734736473804689403457552535147558483961420756119450815950131141131712922598943449299802577260640966694362497072823651507129401740964155674769960615659856733652591903721555824768189197258458601915121391285008694489128332079409448941538598436793037601921731051433181145850368972421841010469603229236269265117286656924020125027100641842112985051083520687387116466911822947523048668238265196544184264497561278939825800479217794734111645716439817778760813823443115127721597511273251139905256761109071089011530125945301893850917653894250901423992541404496078605277221780759677305353649543317378719489832811555396799969683033691886559874442530112658895993117723253349911989809555320562089851760060942100282441493925375406202373521173686382095774766263644640248740422116520459688713948185091974795512571214948448483686012727042546398078585197607964071378722386779181387427830915875900817089900501831695705776614715812051547268597780209272224661351749169570631472831030643989122726504131909354113887589440817428434359787396747144547840170420725697325418212066842103112235970767246027564570269664881504141163474342722801934439079302482449828001167733419454013753294667935550649494001235843747168462434499824869085148754937558013957473948198715482079946872657299883036682406239842261710684423468353644514053010274615496794027012736738092908302814240486151393657678306084580491900732419507360600278888866522073532239868017228900957703952856223919828867423138049102533539617502092272989777890061389585569875753107585804941891051199624455143690183291102915507576544733213896212874896479574391949977553480089661280686211544891366018059218955217132639445833228989608506196264541533526831267962459187077931866921707856949211445423449008879689029892692029516025144730837446656408384131132112386222023086257615298971222862925703454641925164144788192287515742757537924676409652838692618506466154403086418011515700250205575281940365739581139476419243919761063672162621663847332902256776776298325632699502071966584164236432416243640177072360713912821939794479986865177354742280336611548624262688261734039622174756991821947343088773443931039856940027843937008999660120738861741662667045236409060817768760830677439818345436657620269578908220245759881537693755941377765461531254553420706507481413420036195550276292660728593213995714534831017605872921228407757962136259815434513265632033547178024852206550540858075548148655306769288055892593417151413662272091145455738438137015926874000213105928211008284246401698100911283623363398571744265668281220509013382946580534016388636801597877381468026710856143394809695699688492399716936188607239753712861325399145028067341033846662638322871963692488700152545403603009410703715707910552628846970923019018600644935598396063998530443521833449511147212490478898568831843933547710302178599259408201149958480597757419432134342551002615384084124089881641600461944339412929393629101179485261245191742761834470917526432240464355871737116220382350202326065302459491488039182595129603444541488365053811608311098857431744968380211359018189957014613548873093606017062210479120013592344127321694405532999860534885125024904237893973112456010369067837897572315238389729809093522340737037111370732473559706807317394092242465922572784202878955597021698454766113816616044768691113632552516054225204796698691644430229259819162443944217549252200879138836122409603857642246220539707306279131376888542635251009721006966670396581213858548531407308020157655688636027036651329870915236500478515844061135489096470724668942844862847323755513649465152469379760421491973379266576965259191117770834961658635767951487465259842294753941266953711889494511929694275044311585980262403854583398490813817880726514219860824045256912148272314475559218616555333918924186223635947425768588544604301053540173313302689042650033903081126448988601835851387779497451626892970178779343684032368824678424577393940570502960444235331153770785571894313964877216774692596869348011757415800906438860379026249612461170853185497272071100572814034616648983248300918087805245191669199609645717937964395864055658681583854494726091674181015530699325355463944740097740603598215555602229758641669528763259836572079458098159487443783236123792244958649155301778962139181397651654926320188299129490026780012052825915376854261473887860361343638432895861599620313953885522126268837759862253484828613859798888649876455343770182902207534489453261938531569937730126615505724032901337170820109674577780504901833629313710037932252400001987376952126865478972081762634250704617704708598727757253203686545470003537645202587423303377739574065044796454658976695127118046095542923473312952904076396721761197292742462797394716696950206753151261881600356565972011967762844511171006478561063009991423743177680652084923481593768023905427886401255439778859396427067019698823487532250031191820440465063237999347858566806621827614166577277483176841828354789018342624370092284270776038773544535186070633380290511281421088294647893660269898086618478237376987439204361900273071886405085784472411580747066996315996831711308708830849505479093927588400604759559746770339623761478666707721787279652325553825965274991030736515480687329501046575920906454434528701422792405838912672184491149321399576948929997841804048110368665008545583629317365833328259113433695376368473906847818275115089967351771207369940179229956290819764542605554872932868213373743954228582073889399348228977158231542982676883642150911765758548950866346625834112765234630018212672008774505879618120607463968782952040667911191881394321428871494589154995168560658742810771447502382209752765256309490009335909697259334505757467326704446489039012745112413477142104651855106416203375662879164529932868119426500154929524992021823030194151738413530615308086583461262862084321873922490236413597616576932852278595735591953684015139186539422661406456957528496018254631950931274280446792643546771982763472696391466566934922312327235670950066086144813434581736627680957868586260038410692419573142995688879119060406836332567538204967941406305746588454356177008761209192896803213022790002027514957284229326940212742758429671320310440085233487446965785978799146792302108860950382163709268064672501389857151783020858590251195347638993878256360478586169228489537304914749079318870033708554254021647549259179075557667031943480705161685661349174695608422637670678419113692087132296187116591959837232726643225103941583219040573269087351081509315709910672909259556012633837920011945186832454511439753058094890763822994595343172119795050252004365863328647377722787618450409011717201625738003529821645249840157743984268417169936257638562855549991834343401002674023260146510252983589557770702501753542696237822079896425787180706184153005079955365023265870954232990617255730074986350989889336480616489498196538579290305954881025426137857179426574954436998059144771635179874475837563660482743852615911478938151579511835641896843960739080618968828050007636058903092354083932599580593149155620565319538841096467738550425870181307617677492983430191536996853091904244961864390680676055540371739095266135525786945352350695727667733163566989422344056269630397655182988830151903513540658318230510512162846348448302810563435730508636515327710151001838483885565650968743683289289956627889132455018449918659384638895822972153849437830025410091184289317887559737780253438773828719679071412311120534101924129317348949845036269261497356149464412877570841088115888308793685960859726182045914463334186418832998395319108710251520694184505135550173732849745921501447447718366495881404107414631405748727157373983901644480407514185276062027415563971560574140488000258464431098637204303387784664295862587436524040399062453212395373989652845271578778369739138860896941302645224161683716353172684646888465588671078533813183244279642368047850662668676618187204972485793059063294614963950825990665221300047745890917584990187338882086080606273704207021822832335324470948399115093629859364206967873238334887499407366736611033390943288877805028428364036103306840780764845900219362293722705220443583759705391514680701178664129077177826573238837422713155229603727705734889841586045477195801243407568341433683637256228008854227576539706636428655098374812788979998055001263777808438530584457042829063266733249092854636580075223733214389117094945006423891558154454569669333700487743064277185321844835104953318792637991560593365670315972787893662821896363055743607905011235738435222724913370440660237521554895521496964800361188455339761746397925885306389346801824736257150885309543823195630556412436643402858368368349615990753520139713701985804210479283294081042819229916674193365692116180075045764547450335349317728010753316669836196460521395391102300849599125725424431638797889247540936327673865657500747719461898696084881058078119579412993677965175802209651492716350288821515296517177954942250116113542377801932306608903528792356449031283762928413069900837694971547550714356024392759701424938568443173567533054228928053082547633730731529046976231062654950050035089540912325709441743981822421891029889402290456177887133538165910936210397788900561881076573905454352973710670115214675473445878733711056059304901358460773177319237473704514313639859118040810923979459916147256494524366623818021832370039015495119578139473494015841014888800447393513557030136904074013203901205424384857609858562022171018867296925955755243955898400426601418525105650193555311523366699218351058135768253039606108987729083601951932939021805430573098353763736856635786698696939611702576121478649033466910453978663666557582837558960283823557807577134511663431134392482422295442333706529214675889313762416417162728017549825071552272241004355793805643690204825588971937340386591736127645112676511444835810618152250052730513674876426836933044554601865436520969500004337436255310462586492743625414050238163325942271286715976007886429856959744573700341025784107936962389610907135750344780377500743556776313510170258062199617165049200346031128864858449950480815131775917490308595497260716704241576959242780642954296196626292198479161270433791435804977466599196319313648104405108841064885633992221728774778103019869917623821965401258326702938208205309503454537667460273023753490767663701737746656845349735047074525442875321497563603648240037881136804821751914956199890234213637217891076744238971353955019492716188745798501425894531226760319248771101122662888060462646393908448962795823605496322468008520444865451354239902949891671793823829777661803835646391034114625508414807558613126767025297521936488969477525093251712808811893222225908237310849261619551197253369284562896956342905052941492057644342223194105644451979595828421576847199906295125319336099882154209322230786996620430836113820676667632326660253445053815680129020988746675133642714861796437068734729053850111373376802543982114319136084649380123318382949885584609821773454040202752890798766340367931595359760072668441265238712522434579663442627081736910881117491304944168955634439180713092255137585557772553774657162890418534584316963806523170040814324104193397485036505152583910155493087760783926967165916525479411894654034697357538180253329403119521758954579601954036682498600755831228528938702387832695903586522210395350541733712256950541666983048002252429019149631139286758921495377499299109851807576341480208254345723942634881853561518047691957483700153155940769256959021384307708416983782919670463875442574044055165112509257746058505590090468069622525445641304100323018651520914023790842409170035683342664027831332748334353338583139812030463017833159653609626677029215905359190695949139525629569215565906461049803873680273602789454474365701309862881716081398841396377126715079343352198904833837554721062002897487844895505106515814285615928755282318020109556111086072525421976124033439951653766017836697454638684324860395653808636469113959400213271590623189538474551068812087759834722827160756746655294422094040441939904493098793381804984488021336374409951485806799591129277836853508137758111911143616233090448834441007295727792070052072167338892844355097683345764784074524817474798799345034709770265155785273790825134013091731986313266886939271654547515853013427563647015059793290924595956053609252400810873698786379860173061842894108089081096200331409796460064166555586656095809192759076496726050978259884091894297415388415556073649280351775617623480611237664491777478306308544177322025419758919558854656324052623155853291039652301443168579909260938608315332396110768757010004950315592049361310372503242043872082083651231903288428692810488314061707582531733752634520308527770088961163986805973653526357389007932565552521900565722839978001685209805821684050200405896790751777541128830734499473425470964669605905572584864334188857068511978807655233162717453396719884613739746885709466781567941672721612866945172779308964564105008344359118095070340583698268941847960337944177460367848702353816315093536617454381244803410453031803805026067858287467923630644911307858905002549682180225773719588621794357867407787888207470012760802884298406062111258107164805818790105557083468237868723803782315648252300494683350616572523647989240783043377828310744111556378371738111977809261228864627659125681634698809787218193876864090460488605036760497831169856837345016541619490216775708453795269668590147272024559831034752831772862634709563407886471899183720812908923458449228580144403722687214214700841806473955220960879395542752721535922154321508527982189346421217682166048770441776899538755593239788513098591761782138472822839758373848754718397859538611033528971836962731703009803720267804556757740804241456533739143747705121537666862293406654214054286645662615213315427935091681922119067997856216516324004106214741079310798211602466655393184948989174366132218533052012020553097920943006112399964990313723456921387216788457400569601767181628954819323887071820940385220854463907246709969180606363228793725185213128229365239676100505330530411809706600122813393938817103868436611924194846892146354583828734945634850552831993828079653135192715961132840434225065667969616235721987372323944313809855027293343559565516728307063779797011242584590323089021286933791867464757480591902932051873604852550528118202525066916897434669858490699390158269400073262892216984388262310701363715587277863862044144411229561268588712113642456334093321354038276081563915039086876931273384312840492830995424785652524835805001315828974131625652795708433094599940654049369600906567631960280997332200648876914189650120344326571832112848535495199910830848479109920658361019684667784867893424944281920493717175208519518694182585935908601399641058395298708524732909975477569469636787145664983386543886068241282828941589366759045304154936502772066911764714247450790333515200539778484951083015469907562746422927273928863390406120974915469069513636712364912017793170813620491279572504880286431966876572238417674487292519921799921597086952698968134386157648875810901310695286425983503510357518081797866446915609798521685891006141286123273490650882032331175656976316398974640637096246809915963968535033168282691549212001501289276899500168759356534480408805273162004207785410385893065035309324404083376587365295679749540073711692717579614383898884123302989231147710618558705100659658911527859244159340489443887643247846099679683972282237515771090023414640234277519422834480271934074938838512973117242337442412445787643109471570122066090240682567070986510930913033161597300081943546638178719307071827110598709845107470060735690818240883399576529606448941442441245563614756200086825825717373910093275676958356736818258197104326664853552877291702399593906034851811469768968446252116555183912724627235335128595212021942907970759571835411349996607584826041649656371834258711961269966828723614182041566253116504460157490111659832697046593578541756807877850076939311099805410524929033897113441161548524784486564667691686022800495497504203194211521135802226111337997124379109617253211580384461114417097677185887448551928787965563283020357836947170125159604803650220470220283644709314922768520966100117128400482776209915347754332393776305479676557657544001446264671876477179546407996251123431213929652483106007127635200617026894499426683432955928962649468962850556626359911643220280494278616671479625560624396954338848657148176682232421133166685574125005306935938400227506374014997834204245706784360438347262156746339042844262087758351025961993325546041734305795169900426844021901762605546421982985269444408418398256098528083333111279806210847128492764526181280463512588858372770969594213307611689620691067795388045082435151485126590367751774991793122273771806406926759249123953355958736086126338736213984995271820597064128647738740525701544148591700305889383329841959404479961549566935739465230353504722161435506680323369644375275366516310720339569322970785172376764358942061980862467403105704642824411368705186397448763715046893380437461675583116549235473119593392569816633134379171537884326808174801541639780358954855932660532772446593857159936116007259068596526810039233131191286115736967175518100976850979278817537334506528130018558075897618095594893253728529152844002899412188997988992868689568989458546726691842994330950961462661342799804477623967613319785104186071952710672038077516100675815565969345693119366093540540526959354839360769733386133813706285566935498805191048483806124686735942895023861268750746982348993281582184819791116598342066106731718610663316357885189454391181772040417018296845770167303850184569513412975153981935549291365097784171188131441642901459207787000035649076229756726293862020905076073823968501990293439352580842109300633338393139835126040660143839956872217424369153598719039188260389515652391849913550577455117435773780605417612071528921404811016447218213537887502411002856675605514849766339708184192947286491977310747361374747212924800786828293020257643635312570540229733645715195757726298179723158192280733312401431238781235259437815583576577387670097250610020918638685555607976144293564508595012090721434816987173011519770810217153667651931595763132815910972564536512473673627864706985837486968266150917805690245906068014107629695477863984164906553773437363137222377506602788474410143721866920929467697975579517017271346131084502019612916288429748309899621768270299521016833578987502654757810929008132349166662929420988313207743402350803054384678270679506103349248279685039565952121866018596284350145622758349460041035203990597449989968348468912290102140293287591484392147915279906613795966638149341686529157959621196033695172006677298713983049441874583441087368981619914038318470185526143946659792840189646807976543061584405837566894460921783429436819203850678235494914383042136093743563626515495809664074913772233790012665049003177533451314219387486234622101934512023825634696305876739648650238631792197910352822439371631515486022580715290893388701739026935231502662498821140433653377040646899575225465663259281269749939833948279111790612476150472575047664799201333865858184344543912982507802985949220082924375745916107374932186945115149290683546617979006026966898467412460499391077977798461742762117598125826631357037488544959566755900455093893079165053379720956116810214477015978856669746937115313811822384348830769438644691902174376258123202769603228840234809171474813318920690510731290097817005077143452033091646454819271188931963531718652328765944113705926465251742740583303764354814552661340342507040699019837012192565179997169482120024056207006516297376526255174523580543585884611172288240586621557252192465138205584648886879348333724106524274647458326289122923588766693366480258511970024477451507964139911698758008464503762599612891793496709160578175593332496632507284487601569349850859442994873050671034297242038714250809710927205297207712400457863494215076806013830055843744265387148731034617520612434761491664651292925051820397761506458119213094055423479545592764031512777268633497599037625716413039631909854675581803511966568611623399172312099604225371689138375523895519956871413482429640661893664899793567350919094546660785125825333513649385520384685841967908342858512310741260507779214384064914906659634606992394871767783742040702578463522770895885826299236766217236826367497037738124949680495302467833731669756248319542126936136026333165778971021000446885228152641084044169340010829641750801199906726216934598685317623199432386912732783666956529311264107786271099770252773095079491354303796639825210398019694926037531219298998962034529040073151542883453318506327986508221638186136241148706616782730320193327316425645722321503886239695392664377681675269747908897834381334470873043677423825231033293269980760837778305273341415623153939302940569017720334039686290463341880744024186019502734313145774070499687930194375340289425409583153869972812953694384371477107226134331333920204538541475449739777739212131260116235736933734126564425453618359784543623839221250009943189273296257068161059598450577604780913918936840434493754387460237300728662298757026187104113210961367655940188177515253741281635405248760272304433675679788893298983895770231975971807754211087599938090774910481077269291509112350714875457235722472237697366275993583863942871350378307441972062160028956968827333443537955984027040145834182699272523788108754352859026736076986561420527914000003604852954486817566069609156302938798866255681150934624657704245029586210803816335637707401718240146407157195753254299791669047220972566734289341913193409186465587721476173842246903506426608375910128882063829544125000360432027809783769237308161146698302580155725769070878574929022139525843151021786083058847992422382705264733226373958512709201771005405479921228139292177176902294246050509215160063576648052716706307798323141059798647426396829206328152876431722485054698743981525035555069108666145760270237835586282543877418536151843767815276347925288931366296027099294576564714713480767907344328394041069887472690478012756278124989948411366731695806653213988233010649742313909661250269575603476541982814999025253298713988039450225579991659388294215017779609700963673570862896015063922014128701720635547657941584216230337057122041670188709385321319041847284623675385985988194030900817493784747126707288524528631412512817163718372090647075639332147218486835276149169030060385391844254482805598910591707093336111130900089740842653599923626575415074666045228333619013009945657852672629133519076300855332702376850515338694869295345124143475416060658544056869770724403085505757246944632104074791591553045378848920664337160773370800739625126039344255161185982394108150683064333914144848778023665221276756892178644101554602863412485128012400553192398706552580105656834066302827063132329759909011542449686583994121011994318093780140392866412545279790911788504959657677232416679091933516778810147002163507080780493598448073220801848896403454641058557377803285339963502476902985735019356182154133541870890336453536795601657187890627111252375585172617593599814419012059021042754724081774718744038331986613544395824045378102815915201685963170001366877112793613917279057497253957918193662084627653544116958546417170754977271369956797986340848892381414270400075573206140928855826112867548081561298197238593412166528726057161990514929626488506182136945721534667188631957174569777944626928071669489208940166416418165986136685727409895722140534113825166531872139144742026458950554462578394350243209046085735060523918646361368590721777306185305102901606291100531622826451741151163579495517588377877240662676371097402248963490237798528912808903647556927694833880030804176753599713361181983214662325489987080234730845818219161315071986956505430911696139114945324284469051386603823433765749738618913627695678541750925366400576851791090733624785668304855691824462092036743994101846200796745427318524271478480833939159327543985065405860782793535066337401105096527905939859197959484889661881019957068489748299722131905005327692227467191997616040994175885747566734228806766034188207043342829376732584770747116053406766291844917196892847039911954581727426365979767828826370867341782589883821392801979210839989585951031075085533027079950931316403411380303472951704989169919105765796944273672063908657725986264797576573812135531230048835799332674686067637677073317274879644618730713950431252117902516030031684184443986629607621402740435881560206490239699630406937575709215249064272932852591240003827742824407739698778402567008932036568422213811782634246142099345927068140155410573940111845138341924861059147849175721786947250708017519927596340015241435844125895029208740796225628466631347203931589807395489526326213212937921293538535416600617029107464492873367831348414778325359641869581716002897180023280328797199405087448066741812257441612306465560810362744014668948106806765556654389401189453710598297573325053006853424047313478775796529166823275301395421000030432245588524991791615784146415245532288069910845146981349575881403614154458188872346480862610577373260843304727557505799385316507880942366224400445292416554865661838935298721961323654124831722537669006186795687433023300377144092477605919012887566029644446953342517733320925052135844370826043764183744984887622638413353775850251907798640364681157215472885455128102098467626256252610921478334404265981597569672601991879343095307621311482157549958451592710985489795974542739961259944766770412791430557628153507619399231139438384775906557066805620665462834952606000757775346727798030227338220963122323169279039006590568989126926714855912948049662458005505217597940394601737848530271603168401567220981442922636310112584491204437464562382495123780908091000698495644862147780891579043827956223380720954313073314316257366092235922550632701468913158734535865671788344559117584731547837417229421635242719568471990975933991092610102104873490981850155029662892977426733125159505284234553051536552491168884716081462563125829296476588840660451617642122492926259818257659285420011718796828351981930924132835135997656210269925260577409376807410131815597246682202569024532455616480215429327757898128663449209678688076666524942559223649132167035732486470702207106469850243637418314126221037593740726408467532254892117158953744606826109013461654561789623216071327195612966721878750207591405341215047619387062397074379470874978797953606009490182980254302381121765131082539101486609698184546488646996590325869052843087469841185525912724031883641109355038035195307263273765829035042853912927295025929633074091408806366342947090079259932809548626345067962640975876065955409919706985602635557768276774194562843008895542805775016265063485940340342495168199932585148424562336267362397144936385047990379188766788452393258738610113898512498723764691359884614511298578594977570083605987018912353714781768151934959811864332231842583496674092921234543196603213876723598305284377183391881233313387001274623148048421752600606746398466177692266977114101051908427263243903964548676824113800354601804008529679379380450214790399783435693020814232912059624869122435826184656138910806416958324459052618315664732080484401383561482955515853609914264555207698784105423903504382825381666444663851859430874809952405299663662167722969623642279352200216932215724011233160436050524350754841030406282489874357120393665307241507143541581441625167725793883827629512540058566975004091644778628140622554505872104268851593672698276429114556651466161454223324674508933182839071638064107009619118588366566520011603584349453101031001623700693868519274404025895950583496377413417244175009310941693805893318529250844124145820897537137361781211897343845702456192473384009964628219536284141987185529790590109552152518112273864988529468433569339871317105213409072527854021699914356819167244247335150221477753089813840702139573600102017003051040718923997570650998735137979521982858944613932401438879098420150639304250477040648645667559938707917937142330400478005529381227544152282512379378939415020731823583461250308998142721235018735210129496062525492488817211927842042492234815166805440410059212000067258092372704012534992791206070498182017206853941351431498965018320039851128530420511095365954704308570508632887263887709131738452040934892566416870415535653620782428356455639102570879747499077707654498062005848327784062175274829795907230453299357655552396133203636612604931871524089290034068972633918465172379371391310602647262245138173397488772701681261952318435390962258653204294668999107129173000213653878724494887027208021807830667612017364852851594224335392171596559280491010564841439983473406583059315252860038547944446491140190967187722313441178291894980558902248416822547593726009817596599597825783233208573666273251106159221960180431406658583686210970264417418224290407042440844669586834057700647145817862567456625873413943109347014756320824262025000781698222640396064507588781119407317383766608641446975880067994956882803822705490072981037859125751906242737933331713862114684302577844589932016214425419488708687478120805026875323233065949939658450968530485036939469721106641641333089649156534267970999750724319842853675534725897178144026996247046639140025113608231712882594198828973139739026488417760994321159045006351489051815618164052516652512466778675453522480288796077354229132331760779904503611490605837040539679644751346382198681580340721302669501253376038138126498064715191050329306466265959977152151881961898980771206361589815752311395615675432362934819806140194454616373953150757819458403841226009666702340004168239901203678281681076882550688974779170190404504923759996732895656034846391880038018181092545112338048489814204236966735389595795472307959963267788999791140811022660821806504226242560219028995294217576225779153797533031979274393092907434585443487947700378464512732283556590403311841015912274471467333536273728891780030198203092124653961322534523443468836509976098417052105615873873390468610476580723881232314145786072317587914216947284066254836954479394500603595440668249794732826825763385890848578346068972915860867487269426848942979192998752865206020779564217554557795477479002016712423422275504605457236734229771375043166770094059135842267908320853241618816188374794480538164096367661928357652351116443479739292643592232089577983660499211171807573001372985202278173153348430543235955053747249780320929375309870025723486874400259470118976525480675742281881818974953720807741665043997656954204981297435409409662672648834261284196019424580981531931043525514313941061895707795828808104405232505649298990868814838173641668889574563377799179574271180136308270053274263089458234681132509872333901535662093852559382483206859550968180557922402627875998913234863218792104086477896302564987218635456095169861941741772878536746207170417291135019159785180571038232696147169826469373736039942246665035626974491861164566154593675734433582638983739230736158782755541552514398357635227326256456841751900061228382364903633578138515100525405740255323208147187119384167915960564513238532586277979353611436527853444236729759641275004461202778021742534532406863964683684463998142031987026564773570740321833107796597083977569614920268548515365953353622245296170534589776852911383377446505661398844500511511478960238910193071992740334501681782443442786083388173050740420568034351551973582702415133077079631174848164662080403207590960559765764738019549416783623697398731744683323439027241529189031332337096452656921618696752950949312386051971534996891320084479440518428453972880679203803839726638522237552886382693082584360638109255523078662427734316087146877119713480642265899158485742156823123481438551250553190771607889661466999035059490657103554408175828308708852340966418490655714452222421745964488607744888411196831280748631400917575824962455445126256539829565005373547840906841241143439362203391929747477298406311920573652704974538016361745609235251887572087919721625351825759273051783743236513327145591768460187020039886878322624332458021480238829837441998614906669517830305240910678614394374036228084735190681073503804700109916334449399338493965518530631075613924168770033932506246960763120378599579173835049352348874475507305283130512230347358032434382456096229492932661116669110652564567406045473942378820738344886077303428990308608049667316441441750928456285920171377009890320885518365080519774264011936889652127716933393773914933155958057414962879084821362852813756138182159265470759061322435389596470918007929341339551643771675659808556962172113516218771500986442307985007408231305675595791386475191201958572717375703987758860649758599305581295146065066826745010870674255322462129061431067369688429547975647841733078537661075546778635142147396894156434075679636080952861694203224627330999809912688934811833370451105073905519097235504389718273127948661156913386513465001978555487267265407908404815919181620771792131153318208198440598494214032016509947709017196222812808762345072499031115510131369673354288662546686598355975076127797783668216752263284429220152812971660132920212857891060931728597664533832254303497447630029638392161947401496179959592989678897197127115174432537277443908927787653670608452200661344541320971346315266808857565791697163752329712941724903759470501177052182052584501501222071482099200686608983472604595289820969567188297393479586803106067551321969054839929148463772288401067777473810744422769673327218775501628992259382069084926343462514625737125109176023608881962716608547839863472549496921797272984625076740474744063595528135754190400718894972400137528423045860136759511947248396901319349313930889213283505772256630898791599835686928432354835539238711873085093001780797953931309282685763671806099594653632453694115530098401996733213906185726918280733483319135988488002054836665984987827836096813059834187187295439853413954651918253520546648775078237790996471490315345301469798453770128965531689385085026026726148034355395632341565483558149837882677658583284651575511655768423585628965611521593284406178908103785108932824497733047660269202046912388303355093101392065514019307873886751568550159418935662913225911608634125623656822491032539049154788710849037167950501102928704566329590707113729228709847710674323341323700838954538849363744924209575817453182045611836200322329470032831352290244596758309928409496884916860498129385818625068293890191629943914980680463052502956999264965903827664572357518649112776131036944722683926169349048656162239527472703986729503736126365819989277638572130403721381366443411285230618478883306234952169885268708930879557900878650391619303190666758487632139642665036055403581649886221000168717730254993213010215909623041856885408158878971106197000380741350691151823448637652370249120157492131074025088536631007205556573256584758399469263090335073124930075104544913682120903195451609600123662812165915884329911129092464845828905505169889775635922572465799442943893697374842101642407953429268142423041104508374963934379045736674360987837724267999960320736258793599984712964024219046943720073623963179477612097441674573909075981185870229283986090343601830541657434441231835807374709857180337066636923096265152889119845624013348458386891326217604543800319839352589227675511564925918183201985207159788872118949590023837589455524866055153620073258429570395982553490497616806792700661070717395449268574037022473488788751335014494580157423999290593730310432549634152592384804356394380626032517533831151465807576530749449539214922872025521324157829406937629354378771692640028652811026805568591766693904608273365725271117107707456126370500758636550829517424253655826698838027434918109690600737514147444769908733181928393533819775257166582462223143890448263583720120226502394193596345523161857811370210182427936057097289142231325545019533987535525550034256134206111204358053943954929146384716988540878653538766629998287606875710157948472183183816160814269345483146529175913146579291454355246743998342387954732418109405533578468642727540656984533031152709872732505361161151723721684141286868079556990753959997337734088198805572893593027554352829824971675008771377423895640386226862229270123936986061508689163373650205588732659525437203636100722929788272249089473883334428239222638428411927178130892131164000148752669942606857614134132669144399483666923500480165647191297361216330307366322356262214277575164658720785526325031278871085821732751759325686439046262515712945777086522122863187575225300320596440153823248925814905174906159295109920385270659540872873412976928646084164221505262934792890230619932122726300387513603326274668267966715409637743698981023308140118945674132721652210022975098490994364345734842672074430798568938821233591982440718166769978509260543131445873588319093529650520030860757182687887719186614656827201507187461813095969376787221134262338441549321228620005520392344963557176503973575308693963441010871266023491502335653386750266116322283718402174204151337051403606736351352185602953132758227628484270289270469088196576378557055635500681847836865306011059998924299299777939889035688118392393276390433049894890026715317659116162595956792601003494541906371923899402640765883126731780716950137854949391537252283309008932271923899007111785012565901444088922385538613140217340302977166219990026990184232559904315693780352115504317523294487231610400748184894329156307263342854478544863771634416228792394995759817656186328359332136477996754021991033919564694041760263159489054552101247751519545537959045542852480630510903226165930124974239462802981278013179230980823178669907988130474726590068563618138755574084157586519261791100337579480928231751721394103992584197734552054728897757036690096258726222138783414679413863114424439553193322814382544946484515891981660422584035900852427597654468287501991500602553516120614167993260778409925271506703053494759529591678091296840196793826415364390163408036890688521520875808250710697551412479689372261693550394409236082197946066597916093574713523289489237338316780519692573495321116496516421567870985428491369096786573379113289051509468075833461605789654204108924892604492540313703874311845013077424033726900048907998198392972857982818195220282128259926418428595522862878049227746416091214430325344948478439965745270307295426024871502585347087344234663275452078035435379464135642630696216637887679936638246308757633282971458881504781101540781529521252237640329287453459480803344246748542942031504613873062678770191283973671141545486304280962253339846920345569975534515492601379699442005118351206045634656907013476803448792801541104767359544670466056065756903371840267283196447741115548978749559627170134296634117722480013659979007157033871957790125446353972283031733378096433405277694076204045231845065881114755973616535609574275571883827247020673806246264538136230976316740160858900398758332774538515549912426985254942888115291620262443645874519503197022645154497334263468206810085731363344718236682933885420071638778959622332550312403748298070826915365885462431051130748534270011874618764631888451426899766505473013542297037851656095590474323775902233114806289551775933317762885573453828175348291069731721472907028055121417735043318092319197495658823616907328771677167582254685009664577918908141730485432072183796758827780089440497815446999163426388049171701549050587393327030540898805959844668163070516614417525138411262481580249561222462354705099564415345519750627820797240326296139637800369478470671895952283602895746124103818914187636458280889122875495803598240800841580503798659531572118710515807164113847362186855479062835411181895726583909892055792830574299639944082038400999571226081999216557021367167606528114357228697340575068142708259458233611483158226339309396183497257573909703715590012419133040605723807796047268996367115176079058180819006943020633580953109932547436939814402527614791675622246801057849335928418330504946018606746351717681309934639882260024682988004368614210628789683415251591738050210439502652407809260496833276843418022586379891216468690447895556506467187127142627164274942021073200556406326865808096386004751025003365522246755070709845060597177106669911967943213372228198257488039188673211445234088219994677592232369280307808864056367908140793108171236629850602892450310417793450809247389380728614948834747054254550835539962912773728484214170282299169432755161743138345956710459467478028962302227534347616994694611218881742682890579166786231112217428090104356720013492258410680450457636182522584658181173263696177497922102084388161618072911217980567157446133192109814899918582732914981145383531785645833797067735818403195061023126790721612987479341681574068627610197203971427907214264442406891234107316925582601800222162788556670162020818137832464043130156981037727795302077359236993471183014747262442817498198331143440222392726797090418999543917051574274870801333982511074372218379867724065364876874660115879066990786723345417745069021761780505226811941514032604887718118552856938546387655461767599479192679267279028455123200486555896495185361873649682774165894299394107578533856230584296975289666733053566250357736207134151546790348025521309567493804600478243984411196258601864308122834163442806014039406666703086950364172743539824521564352945199154345998647807874466216526431415708131582533220339341560754696706795622681122632820925378610816050216690295014905066001172600616228883136362897540666394918087691013883058459429833580335871689503503606622767013605421970961589844970904100240298016232721464104820645226158691357563147979153716247423805436331394871380062372640960164716297041326649904509107832257772473081798371817183842419957121675063014811584114070086845156192820470100698651473300341325257361518066488301829100006421297365617356186834044273988720500149379376241626317128435923175643282037838153040506196699579222063668824185001575966322476127969376837244315335676927231839957576720406780486372086212619738641241279723393218494992793903465701765955328103853967822466185743657548217573603465392175083709696583957680284330788688572416326349530430268819630694973498311317903290862867850533997980524263662801543121035879645502115876734593459555644740357010981496014617319521472764888353876840709211402704714322934582254833124928616269828232903768675551022111335226608271877314320334592244345867060873112083278243754174561572910701006387792107225286555842450243096452393468474903445184243303972931045424424389005205679828662535539610095250733080606542343955944546953620333114097465184753981952671296014906163545397691986024697411264006397953295309797361304190830924799465062044843577229770323612447897500212482818178284905564142040725452945742525493787428781277600295052548380253801314190474048457031647547851094071368914505183173898040008657960216936877334642015412917751240422481178053058717930802526725708790308151052011794572444398105548468323164696009585872560547459710949392417561463509814362029332177706545622349131137343676845110034835417623274787031615525685540348239549000295568515148561504782811759363497409570287074762890069801570440757134269826387893903880365983663280810327004255811349557991335813640105252054140505853244868184573756582888066693646860106125368705232092490034832997035137744064817990141978708919949777978366966064093984431732437925536353119909853450453577632086268840907726650322286784871390662260499061810057938677167237763416600092657471924526882677269648372459941899418231369350052616081878117751547284747085564487701769272839766899490981661095904626384464373952395873490402791529466747234607129257956217572471493875268828074061517233612644186942280722978965701974527396282481638321740615173721258407551400704516554680329526378159842297018556286648054458888789805318509579275214035794987176078414539558555458297680724307025706808088337191750789518431901080551007026106610035616733844979557177778959396203149641618223879198523936116244634900660293196529141127728236163960264805302158950122616300790367164999586115142088174471034216971369232752988062057048565332904769370756330027257746088319584977989624809090966296342555803523052989417548230589845825792528125010827383119590103189872679458074364251698180125285152329738068100242545424561276635364973465407057052822134490682334284231869011774710993038361809800026984611607238058582718696331192249045201255973221315839250664667188022363376032049449386858630503198738163826642550987439371931334496892006335870505607335174564861502612159901300686999675007014974199344688252047329990854324155903427353510624620430878863155596335042157484531237141760120902932082848751084840597162592211928095695781447912975897806676913614625625179891703341414575750304044458473043059125477005666726764795396078475309935103734562714499885535037125927156376843182953463801808277876998984105723286064052317387892929847507748536380473142450737873249664944994842104415746255248529512808764878805630362691319211931674363718101545627090964905069868097406094342767571755293754477096882727909391805008293227012561864805697285086718710857538147604331060861854780364306268857514139725790715154342253727185441236281144057205046332976806715279935414274664395652496927049512199043427401559884342337001539095206288439706443486701347252020031787420525627457116647285809657414311317566930260301388358859505902268126928973666633540467946408518292870462721136882034209755452624778737528837866473079928872419653374455589614171220420308579619044429267544393307193828529009457471814879400027418391742246337727309888819213484068112412055737056911063620332467846947208084839619498503209828195910750039369680746355202263316935108624417298260873948509645544911853085251677095975297446891257518487864216038487477181949907192472723950166496366609807962773679246229984380803653709960351478228789111309493327363939988025378514934075128201225081435766397530507335793040437327243335146328686389281110602061935369836633914901371156529560935919763775562933877930327045733215199181341191985328341459116121064088962453171473540768714136252921423271997544336413942257944808638966539243322459838025073791117903046668151443641141692219716087850181158562426676836504501371154630014842825546379209270550718806133123168196524295455191515077414843911378787270050008258952440121658258848014370701733828051614355008341768339539308029644688611801459690671885767614212505309894156170478721659499906079329004558147410157785604292734929977612952121360837646247659103655758820679950113591403695753205504385590516999991570648861427755733891705130610429414590392801037103315294991387857502503306065997447092714153929865095797195036766999204314645346057266830807148012387868485145886998290721444151212278871343620172331146967498438259511121641417690957269603125838694947437466228555330637401918824274043286789240332079553866648927577032190935834133826018690214462454343997715976153292859446336841126138726612485351289328487490490731048487039421580588228647447933835791825553919649954969019670354995234185286068225591646300696478786183869522157360949359469137743979032696388814700725040657857129887447490469062631722606733287885983823339108552237613199351569885060434778017335777342462652745042733784721939304707588346831005852510927007578951948942737411469458130906086142381323059198790764566759589062790018510307478299805388133992051205538913643210175982259651989437118008930516506067803712340120734882355050185534298140656396015986975722650780834683185630028764439225043729712366215033659282050804547260736705617785986495359001131135450034640452105188117105910268993801916068910850847772672130993157899960260523253034836161039549385183154022403047088758606084961596433286151893030094711949988738233345530045966130480061589055304208586008257188596505026263080292630892731638157168878359550925593483474925535472395402254909908740952858601773896392943584416924503504308527248892402719903777315966824482678744745409647505157041406190711166246378708452148854146033923864218626998159597414659660841101855538969532970021388423114310232433782178552236814932913794906854558324639036675174326113760514471057593572551892767379846670871877063368990913306429780342931614494252771261661988952148319384177286562744458340959822488091690124801863382868366034961665421246438632671883542727564479723058817809345815055297402175477108039304201868398024701114383782529256282792781282479104611097557736032508513880299893242778469419996077709278779075267982926310906155079340425159052880352062647484177460256634712922291779612958072766432265432766197680393659093180061041540095405578440219846074890394405293630872131368220256640510267097757846327247236565189790632543494603899913889177845933133243537854401981344195946714515609143661865487818163900018739599948139144972723719852626543534877615298569914498457797549991589380457865483859049537677846864685989412546557339166014559730553615460234956030555012614404686876231477226586356346541562373240327782582545240064688081795371786918004733710850958825017016610095203581194944348729547833989149838234878117306968954102507661561338537230154360075701641895401256920197013845852604095966912783051225251922769890861684194220109330198308565439094058817500398677586459967553434818881961139139700517641402077400988095924574255006191383103443295158885894281260900046993768344275615011178212594429314453867798924010026894735160641847246317997262109722341411748073909550270844172521835551152008492457612464974538465121370665942391793796615828861132817156495008950345677641200680500861085047090313567017411215576282882703785260493835874650435436880208523933485082869104883719559073897534653975621189973320196160084224451358735760415266426524521342472195748134124820920354973237838468423815253713068377330170126175837441223202501203631501408085404945749127848106976172346753483679018892233323235557932507039736433618242856488157613242086643050537711498476323292796601994212695526199348079992519349421633809006396045289312305764225096824104046343420928324090030612530506389067910094741436323281638930308527445224255001912489201508368469334784958494516376666268851059014220785685728287929288028578243812841000771271649140044416236480073867373719266163333684116656834993118369398311655727612852060477565507943451973745443014679455202702043209644929987697811002709916565019218436330023185678821881313070653180757481906646534556390710283677641850469419159376104890278581150089279020897837621973203009606651456622876646482657393966974422180976435166397409906558127806288310718096783451508801345364769085751300245774792595114023913791284959947828194397024664293987517519924116067090766526606902823942390557677924619609181845425917241622290446866527991414434645842210581149871760125235937913863538629943539441111190444365585267965664930235010252173849794781438295153375397444434860946808133732847724022838541055714703869296819661938858981356453346501593877911236910888742431539361388079492536594427452831982228250739079092137367845580211262832413482599840034740640416390423262393259140045410267960194683159125696586327776814358425005923466947972758806504485795879386276069677230539973621488150740921637023403960725873394994643010134555043960442696127112962787164587935018803336953352840408733825775625410832668124105818743325215822535435247887192089565589024932110546583999837477078111794800705662789142818968040017817855815911041439384423320332810443338582431342130662866475635849514457879316914885673690664791179842385347435553520851938987440376026043080265345638119721463746065306159405634759845708601688898716527008310960851895699262995750476365544342108807937918823305191073116217305551574105129342173640067730535576914522189280385701512241354208346297444433551509627552502073013664111222386281776356847436448662115774448745975126248804235331103013402137348526843836819738587637544947727549593292122273755866502763186186874338778250945580066087635702259067010479053289239156731893070782052457541302726484939567747859700166639325887334365137556860147754196421103672475427532497970802574217147215418059358285296778020656659827675180105854515692522800641920183627502712354311648713096658084811107243706113665455048582829171198445483779181934233223301432468334726237323661016696421947127258800520294917491962876320457909324673309385071644229152783162440038231854666374461672650197042686736813110396419951601437649856629475220840287161776365696361288501082505316052436496502177666083431599778180638136551056962386023349263875422747960913570597253413823141579623537657782327827546205827540416523023433598430690919209216440909917308888789092778051305659414828551397788989439923712969478231770519217458744368642558270300765114793634334589509896377476579187001275746669241438913106640649317381466521620436208737805416085419788590624724334525660916853007199140061269107398710810376279261096448251501979369683213671159712861698285698490623911695708845048150859663442010733314966461093904138174902089392886371236286103929156356895830652523777095938106526735335867974086805569436582199083916072236766669075055373838928636304829061038841557852234389963886697949104636763428407862151511870846304405094153013882329069350065230931390932966043754984486455900689031169822633637561552549747171739496463304384052639372452873397652590529543560070358190388135955515359821756936059384375505960765418646751470021582791385042954322124063251413063029031073404887621933842222060623344230804590450336134927349323466876256453437383916275300221081710213326137519473257026005515463939867468646548903335562691468839544060756993920834776485171051631447654716350376583306565983440835502345216034213493456257797402597844437476395975615784578586947883110521523546588424866178024002278322561753863755397668211531935534055448009837522459558988108617866450974124623131328544965130666492204817569922727619806762360557743730992888833336765614135440386257244235659073848956074191742599906638588245841293861249532638149986906010059756290879325615320236413283039837593380445368946631972922701796815641972205544180038013106958775573422223506392285525585361092944325328765307655782099140773629233966861187147256846961120426548724170192494442477336828130003098254456563496338055583662646359211559583202033784617141658160223935213037089821217112133921227969007382980442419129710015426685924110004447716339016529835481338651285297802682914307777064082426269466155938802624060111828838139930688909333179695970430746518494759806253042751982209680109138744763568358808824565520696143715562599954227739975173473514247274317147962049314384985861001814260125483145544445526531929785648190646981982154699567109007022016694470917475193334202928557122255898382953829574448083645504060595886210704471521883969286193994195122867627699021451134082767552896174981642268369689923217165858674558608868696772968348702964607459821055311300029799167116272078829800961170755883708623083809268809472678949139638731913445074840797258850896554301709057508876899981169395194870903062103090397836701112386651321222834816118518610175867404453673994864428402386183632970188084522946807231092129049428984688718827018644094489029052022622392182858831323067513496722405551098044829488834820426363965679284648766327577857141033505265549870828133589241080256548301551921001973782408157818025616945197011836209587973266918417222747334113208620691032482714182433809151227060770247048637362007407030476832763196368410610833081507029915988140727289593783142669940430304759547069654478865172297847817639521456789737101809975936545686529667489691492693517275158533591793802942689810481943171855338762168959140797415428987459181652078270235167923131457837686348735646736838436637809377483726321841438462694342790559924289534893182537677496228763023999681648396303733233816978151070192508339289413106027182929069870444121646293388883366224451440520895959935484327439573748083720090819628415681266417962579008215155277046293365448856866955633177162071543826822282811727908326884934628353736875856186015052379931520470109323746883275540099012340309327068663662724539068899799653898419129402818027240791494413724028277067940441955283639239156820112670113128767575060311355693751023381242736870677007115727273029882077087330601782075064486030522283934139810813895366848509758411001990825866732453853835634746618073452178933186757324738151319477948043058979297578874581502183181604524511624748692966912853695866678308608257551837364258955923957227821607862037391299389038848248596959189766680419152644821673083174597883384507240662775456683548861862450370529741866590357809396505196591891226445981569811272611361325237961830702740135858726744544840111575085913773304236008640132472213437412537193578838645278892810912584889354009397438957823948792765632824852764181308462542066443982655472788534142666260152027879812930848657173860618364806419011909416676101314488829142070469309234443128010945722710264468459582233742075220065897393040689660617623165352855055580034090896104299480233934471377331867256180029799070631167276390407054703539132442695099897424412527141009639688173981305330737116491509581987872306519274482049737887401233805080477041411412156913139028936944168780530902251467549586732993159537344053147415882415758540225053083453988136635832477080737720355641929686768886184471485864955134453208837902212240514295884995930643719084493237465055515742768425911859345011981059195897123716160409775121429841285813340701464877780306951959620168117497580298763397828863758193077141499158343585804073995853814695440607109731872930590006757527117520605299559186586561893429744375696025172480632080817141629302462312017388335918710894552317135837452923844874530123295119691638453042894778000582452233884920028591114231661581178570949401134005489999800013929446926076948043932383411525620233069660173602550707445911699870332047783514479739789371077865170633478680253314637048977809207950148284293265884527378667958979689557886247598973365039745878797002277719055337055293032600647521225709265927494265162367264454044070977127986764058309294910765799596349906484417969423487817155232737913448647284047408987327999583963942206924238845118658538120636936889626778510291748316015441091102835648852570813204076625459537344953928255553284859367527493091122434731252248774663499981872971254122394075682480567049366263273418454184443053979496321855092659915353649429301017416945318153150623579348830776824126303124995941761030427955715852101527863918126191202193643457058982901134548007382162564939714642969406984859024074491976594693998324903812405552690811991008339047232083612286004420403621378543008742956355968365378902332629192253918091824719330086221784822277013466732616577473963509435399788188589552002270813408805897128002179493733003323413045297304674890984387263926968409295235558701568337126114419028416595292566676903045574044099896976089655394910379295781198130326773964961891187117295388271718889980972280393514681711464230452373604879128739197006707727404049981727917095051066621220666928217995269569778970347016553510656123619009822388896167059893573945845095347214084890538386686172427055285294027547406110121221815469607462090999072341130170461505119016199008336109563136658286603147236926000594356227147413989187311526324691631971364149309696465609027366057150649660758955987608155580240912192588537402624680649906857973755161927172695381882474140944472462831050132250496064641061901490667716467684598100758759404567107991610997474270464209834456280749978420593008308701207308640919090633200715476478309649460857637997763237273189117625793161787817308820780332114531381309144139015773898879566857111471275806774759961429538028306437216558730755670244257365399485957128833422112018036514562721864887480146928448486348904275439370561097147224293520521363113811978111289932787877967550625793728435901452520160137149268552997045911713740181048805320918819176334035303948242664884069705671844583734453903445901297775586065628625445556896673927546090747436823286094443794009209829863849834750988081399450899572174020933360329746506915745013805586502130658704707483364014796422726197037974792665396835062850485973094092892060431244214217217129954592983035907666462425564898522782584922575274013059381172250123215194593768818485108884624628965079220919082890912842532612877026197796039979285786690391311572514558733736519025496767480313242164696058764979959339428984454963840438681023655174009871387081897848900128487258379128118553611521280539581520305902633711832496127909556159779664572600130869948867428908322811042141289469544004871990390551088105232344276865965560671473409290379616625337533569340534889557887365675438335948255204886526798709331924619553397779163590308330177868116732074277458578593389958684115600175692865913407086782830069378548109667639059236680888255257918330815933203615343675040682510252386986625133480376576197751782427349722305354890992528106227764438648466449059321736883564646008935225747950703398592352006161768990579919768974975966411434934983300490623625721894170680562501155788226046909547300466082730195305307292900808709614023521137340874360331182584464814494123573335368667852835015597778026553443024696238595790324276533968407255055919503667079178797077958226121216057027372821053957317405607284130708327162507823952426784748835080225248877677055584896173052919132826049151860798683939833192807453719851532006867060661127535239295196055343711774772591752057280015740752522105163318766363972384233355742103130845375801677805086184973244742320245392312079907470123387215285521957572963110178715205777337518123781306159133791644221459402984497930913893326576665096329580428579139599693788034840183430504886837298559018122824196393570109920854829611827661904780380333593842317706367409058585995433751105721628896980060349643376099988375020862521464860041140160347647546138813075094923036534077733786665956710610994825265185963018598727883935489439085280811332482008042859172972464262712594766834672226213290337647873140659983814271444744314562593425080087556708309194255894264605740956241908812381584033149046880614594848880965587225032472795293416313199719392976569198447349887877091182961759112815499275325112464414912284522431152794423917387953993705844909597815880722926447386215168157820228039289628443312898251854427594407530109617765579167194580706481682491900138069701889169083102703500647000110876821586613902531342803997816136756312052542086028299509978908313788790160006801199495206121148189486577507429920887984794238367537619400945771494138209826281960032571058093844984411761724772782269111955156566803630990799829991703935169467595657926489933793171860615302104079558712028746208883743427181056504016954568978522305503521303465037146485019591607239190812088663781885699367197427127317268344474426540724402796083994340486967834001385222536414486026116302557600193843837469443166565144339096240220276810020459728623987684595559873889051208083697351872133559964802439111929485120230904828701375862604288555224484555437849853938947408020670851750598822750330650345725970989492011484082929650138412613303680664790827414342508432776498814763274647858142230694898688018223594433708977432056238618427857441480779793961204380599687986336076454145644670330662394892848254394032078657488912036055697757518048787572570377820905116304145800273895923499921308580910334957882014630958062562281338927065583068821460139622560237604743620796829539429656953371535821803410528313548518722923439305415783711735581265696333922527247744350598326991974038655481203827745801952770427865529807369889876403950876323346490488406172357510240298560630934178432950955612955648394844297437826059168435201140232519691395825553831346558793618707437159356334776976486168488659056210704833412015231633446545671680914403870149930983295773802706748179880443121819909665211685378421537408260233567385482496732871422089915600137914672886720138601739042226730009966177998410427305271353119800995879943870718951332728975458742731177677713090895193037053525369721669808456550147917963668419362002920334770565565993639568497958012018334115487871371814809786580451743601161792025850173370950357778147201226401363127551660963127038298386837431537355152554543293927053300745560837199576794812242524021854118108009811387504861907963954387171013935270573042737032921519285901785515847132262859687755694704525398374901352347026779372696236287257483402237288627439928742250429180241498546729588754467941228438705685108456487776752352693166980096888460203422922339927134735263413141943183611332303785886286067680776487204374595867080719686432957202835330649745918257300689604935505317064936785465614971724628947691526367082276276658727077316811740976898172395237189083469214986711510653134066393476938072482441622413107653806722514839191350567547598621219917756012808658820655261842215317459347486464899907383488549127366943295562279370196176220779347462356744576961656471869010700440409383638845429974069272795281284377330244065370742978600425040087487436812310929354984282956212926651109503164815273529261271632341773297458622271920583999550419696619040406917845314986795991664354367952739661908555851182839219603569709915239519913411611432697993071990473611169076128117806572988160260200270553824903652419371362379610254539591782662584118562106163742164968768167578392435578824861515001538303221815471002339813576516298659517263664198267594930678611306511362803430563967336583750082757219988753540562411947896620394623205875741642037934273832051408786582508622547398474468429796017970147706243323197521166840023357888468027635886055746860615612458796573075113003701940743655891511440006988400862079808760828193849203776675165587167593733715593020642685668353024412201055559989240550228687040266446221931459937743221214305086309782451611487038411410624112099391559369034370484330551199921976093192161771579209285755828465524905126190761894820377184742886039140935655659565019107955695799802068471824318983239308278390297109324161593279567365963842146264889632604883160406891262035478745385790076291517202405499137063421970399978247344192504690591985420353003441425691640062276923904475033889925809493145117579500221831298824823189342347639094037827847657845765245947909303830446923764285102240845364495412456636770453979111839949167940188839624505981719485074603880898215881929165431992264549326924820922114360871711823355910803189281692691052408288507799023674633652318532988368676440408991708934324714107437135080500797932771734600794000882177978864562245122377888478219088703136497616320134186065641605098164277336026986366850784050288908910439452662039907696664695929224961520360288178913760828078999102348769415575820588224112280178164633190014248413456195686788644618455140319403975298117676389507156186399705943555262671988024188607618714429716733791578122962360957832152998349573371672048223273598284247079990146246632527535325133400380382720048935683009705441116447659687126799076348861633714531023557263913002157636762709916747101185104945358932689557801822871288617499655806669458349736570390885801275229678217058484137346001964587100705199762054413102793612151299050119975378851695307281531192680954282254289017298581491024412260905978296114447244808437194278982261530013058398418487038000631199899587090291446384773023096529111152977873399234565279857708052615542453533243946887800817905514043073257004547472339618870935018301254108786563152560077548049328343509826118232332345760493707138085836040520215251299138721091141175962217306384313730149566475959166419121400377435772632830382819288870569199112094636536908647478416729468945457293443439777830842842053787761342848525393964687806325693275731382752716749450053964437785088746218592120589513483879149961028546200511539197647662912978108465159804037464384408754576593964447864819468569170072602597238365723309277250878699261616901387694833542919439774327390547425980748880510159380981075260595981325041022926413801945860611101558211018661286067827169879819107224434718783884870539198401204399639404117691484387000666521979944031392854528194639979563719963617819986870581629440947655422225677402526106038665985062971815045005236144451609455824930249346301636676989901801115418208469403697928823936214364070550815683908512495148224193982549565055130136800671905848716645544512056336806760312077966530171988060819105763244640427622272159808941539118528492761594385086829652933006467678771653840463713137681145381307489735758041300374880419640932355940730345354706498236699666140743950418200351485444154019444152556948690154014509531871786894604761697437259078061640434809757053693513123568969427569634323694728747278368047192491718379467401126834323071650530365021962676105625507869962869243104295730572780626628345193140579557437182145613730161841417608755468980535667680098071704371311888788862132392627857451552761778137808242026018101945048122214767596355026154141586290220485481560944274730562082698551015470033678379404133001192759039942641822311456168739940336293243956308994779063910249670458387504169390982846038922808614425406547039279852509861280743448989924926690299704418834793603664872517421023335716486221777270030882826559573221384176589314312984004602962249561189123662564797853347991535603507072244847284242799434514195109369386091964858128607253445251134924976914588719154789343203587052943751462578482123293952908658213087875529899912574383825601524420238072392172564807710952038067120741129683610787180100975852768911589775268072106347387179979840929914615997557941210628741068560237724659488754973188184607548843435275500865950639924597303988203014494359970899645560138772402630535695664588136619575237761701902230363496131394233008317100107201774868709297333110755500205810476415407693766994673050502897666588885189697746873396588388117369062361714270432970946611845282562726720857240308903165555380706039756515869597507915494665880497496751322182697313227477186313941373886742943009584652144464521151779228789188137502800895249206486169373401459090613421576637850653520635155576544878305469431993964886631864733492963351459682310589505836340324478569403822207714756504060935064163600974821281701438282184718605473493238068282378191773403515121492741374019339977225856573252632612378432045764993230977901607351571320900565489361193574868104863414202233908232344018425794057626238791271376806391939116881517455040454201837888862274595082548360805581156969291315144054501869502659141290758006763096680535978373544569853272100903200758412583722113704669254612494214912728085182894231487597557628956715290888185597634603113422676448831223338785472202077406921530261489733816245726837533032817469207094191363623086879800353028458107503783614933371200130794776397441851777887066871191257009997110064945992546983920296374240917200534919244948948426957645321212327322228380567290808399782629266148380289318798807303022069335257984975591016668922181657154754152573913432146178485980866338395064765509432751576724481000350967166358996738248736760911096016283536224160584945343246995495816379644695418823765849734038753544966956083451935670563955254558567555038987708828747618473057964148050370297525796977967903793747026673126152502426557674635440072796794807881307198400550007097168969146115144637862427564030830451647382518917763974645993844305519410296355935710574114539837191214769980262111750112774709430404895695264176882026181708225219907865855943956847655329003807606424425806429860960217484653731768564367449078846617809263145351144883489999469286942453088009412351926552202445007630382866830285027046138743712334153976002298941211099259410307242232409932599023276213845368253424696781448457702213902469843053603651552660791910781588708860683920130719749105142417753050070484745509952711291589228278185423773948119754661127840306189947091329701694301982613182955758574954684207631609911944707924940930151437253270977373688548489083953934901508015705430910270706230815849897730645659545702498159138789763270591238271929217563546401132675203199380087556081916512439992693750842038702162222678495672647459144612784913822349465840217015461563743824798293438490164455216028290566414083996882520894691594835744240427222636041061658596414369280019810650060998318858539646126578316913763967135062878211352535185320950829423539119353378166208163011683782241651149028813209396981622098314450446082871552884463013106339489843036700725207324653202335562263816949474142960940647104683267872708874968492122069333313971320964380538508375526580542419428198421957758050142509122536464836754515603256170468452149681892022742343328483445668358047604068446362404341396901321273050546966595974162857395873640527936428550216606759008314650963700014436006562138227700234200915479022454020671611670694596533392453488347721332031577360496107229239893742768056982490465364438019213446107580627931546633301189364470825655449369462684939165694740115630727731970880511973030342915644788673074681273139659676562097855393948376452167607863530567845433354331894927292319104092869396126092361757011471942971057926449344278780119412270500049096040989431645766582380775872758756928584955383795056271143099177714261447258932894674483344405896990813682389044325447476421118184232410644006889276340259437707281334504694328014503436302828800237874832931439637211738752313284857873698473634732487487942477501200639925170697262336915094441795360532203158529002913417204568035418798248411306111343158690244133346840095486216992946394100426235099100046467166589678840798473871982400664744377351228878912592017433841458414164292507076873970748297516590430489468572564042496302067056342161909028764009889445409428072321161353454566488314548742585314516937943843816311003601523289561687591469812379636903058872122540446646114641862630173184778850830190136257789082450917476346643814128656950572267774470218741421214429440063623996695777339259815301657919470679865167650136736343130900359195375902338887262428220172665754217909243916908571564670423340225075937291031852145691535808950937694630162760061606494226131262806185137634322182726539605009099714981958629545211901365057969963042067709788122978178701543684191334350766677073346299949350642460101492164197398487042690082435040404890114721916841265863529400531280683962534766328272852440491440469404510140859018108794329071313054604974743207519335408616468853799882332688070772373457534903057297528112716423784140965381110920352644644271205590048350511902781278901246845905347077767914366349067658752096048911156536591661211633921697264256529740040284811761327583920899752377376076411043026903709123234548896925581626652031946867351478651101383033917299738063595349957839962124703986218886961279545744810404057529570251274047238973877128757106090789709242145643723541382188145695812880651653782841520581841832649321704356798748824518978075762746179339409567174576394815538398003007738877647027777730786495809727332182522706332883051792874625489525326151334658282271309210228507257188350730756510148297773197905357843721626180722838040788821036620057921733640219291466961787127880972684004915464584029245294388586944511479358228604173116359337705902558509418209134161153099773460434897430389636470512617312703219900243915741817861931568937144824634591495542237735623494721016651182161774487971719365342118422829111755694423889462608033762472376654001405854300863122470062789652783779576964289158199263685993659861209689760776381511439375066127742761254088501195187770911415985554189057355267394306317402915036709483920578746316394531251952204570963203549647939375391415933527245671857425961864057341721612407657634929130471318312960351993424695291375700950620352356793810170368195398236323293609943477450256456024378012324106812730341288227257965880171986839163363411781551957150493546178473523201774392143817499242278761013164050185694141240022471253163256184775377705777102741766258992870464772410611701311733508970820469794752748511108765679061929928670618778817272731793585953879875960958135384554960387382086463142993549333020240734702852700185476221721900908404085323928923577332540219177954451827010661704455905327829532162099458023424380029010682781713008152952891565021029799836599471679051181829137053124222336681291649083524381485487663460766195090186976822752514493827006936396225218106554999475826879153035568633336837171997379395296058905700848426445143876791494203375174878312902252722082901400305778498565207362570599776233588371176697632072515190869478052403950608656201696000790457361017648720410496482052015996839041506875465162110584637920130256556042622334589206248134443330331755773690619023218594736756436904964773032570717192415725343433781635648616561358539814720286459497869503253481622740070646405419453988013197821077221206781936878381817791497902715218669974567302919329050762175175306479545778424138022355137993142195778033130765474083999165440209705311997914745040221641366783159648046853547358133254658705310616835702431378332689360891697625941118650821384473288433816589234260665696730080754398218578875478581080187479041114484876965306021692748567395057010031794934763790957965140612631536094523785582766724813215427995784521645496321813898558690561410053436729194068426292965458012799570069622230132367972015412899387293091550210004700250078449258512590897997277482136295087011862261016657685121121345594956799498199489127272508530420988305631783700224511391749433392999324710985156993043800202863261898435074841901195406777355503814409524463322761600517947222528572719799507130648120794557630132093570878474578945509153023270014943543335763583067840096432675313887349487024898062615044674713543906565007857598767544364402204455369425963107775088025038186543832274650925890286478490324475349176502841715613846907259059116960079218546611208547560173288443255357629443585177331521703005245410860055753585382982873520305085975340583168273739005870510814432653175456851334943909386517744823338464573758872787813420877625191552242791369065548093458915109032247936037484231476845753403188979352956772550688517214317205568024414893803132577072576665925238075600684555457041305490628909447601778435172797877852914350534964799060401052745345818384392143468946600653445605471133926420616247576992168749382632049643620189222145602142837938861388893155108911270741061116776675307542288369280652047425994437949642491864653777999801378530740359544163041708412846618442163005750143185804011996906342215509913986464715433541593073634224271127289573756823993049755113956603770752891404094324946517384808924865031054856512485539338351406546160439860674018490702380513813330604306213363384755911436940456524995144173669096320715771253182360295481256871060267575231619764423521915434443688731883978737873900484619657661211041069294185804316037715330251340292543535650606376488393480104278206073819501644612977618813850691865084814064596484703000253987463509988761890456309487319201722388347502683076690460417169161197404115286981711768831710411899769430678973655344497512101097505762641482673785760312335763456604322626096533430915557114470633628816836551996261019722617723227585803253380211021778663795460982211961157539286227831627787535091890981370982198477382726270283285510080631801411143095020143608912982929219747809464304779824135619275569745557498584529904995723471714613612799060095405689522060621797738067635794706967858556589977259806724936307307019246398944622403322377676342591880097276001920250444527649149835428152717859930218268823592689294883984400368754707695894064791970099311219693494892506669610546658482037486379588746161702024797623384938192708098929971741815194883889154633280147900289035043137885012336132658765029109603368365596449085905392065567090696384393658604559653611483742575764742199883328682750595708519488691338986222985831047525071470770919749476466492484090227407773952634046592524452738477025309679600610546630723656049531427772608054806953335705268680587638485528628498285046995122109598375967460758238478342071331207783162424129754903444745457950178725489808331921995108612316203261290889140840753705302281520161700016909775939905373757182185210289966023515207725779985282998130839576837623683591807409569486456329874768706596606205370719291706726370030403085739364672778383960228599937268260612151150916345512528488881925107158892092206493912797935883531803897946436884539558021798265236451323248892884761922473465483749066088014624407707696066782142984522040061536083144483667032206332573948258203357854376847358503758275213238288797106851345681745961979543273788243161831656227887687735723646974888050022210673114142486646781071484540251760646795577501829095234359460512779264752108234204416441590937859075773843891694333834986604167255439425467737455790095422421997213402136602775685846716755956965574093138281775257400690723667230313879292592097128820970071333167420266350091108581801219358661594585824477217943784424063116957902264116450868548926367370213483145514617768924143636935999124864366698825832961687318535877894157428699868874973958623904447128203246461736153705049699472351877604004016159090045325041197451705456730513231132341876690186187425181479345703515303487486535630755771924449263011464397422951219578316566795392961887574451347264874239758601420446336307359800406527959293808424186399292571107270433463579153685374469479059956183647731773648481245478037105222703437076919521973684892124203835708200935356376575897244670299693162005568123762803537230554191395263003028368922474706657135381243695558968500550601146754643210645358843622209864422787476333851392212299315711789501553477621147135740666146742148939845714256158585053599152042525617242086596642178946607077748675790348605380050742316902384865945046306576897664282516353658898063399452994009851671650863430264520654191923033609826299770971879546228470509137614675379433112025787257437215641113113875610352566990010255022593186718198707360474440030632441660315811012009438984000487071637631657353338117449436215187234596844406876215743738357700990714828339551327662757379851065697448287638063077908164260310416470551228249713856216593965785072720881806531575911656667435175253660012334177225497218222221636578233642575954586982675725779612630018295593254304327117619535387147080285361417543435192954731665169798323207717366031570397696024943321859174576885741619330515303885385417513070725646120903136347430050558133580908057229726017383132959957606804787247363294642080155696906330354669479227436331948093412403666351749691148020659042899128038744458853004004754790163484355593218710531623242769256669217576904322820355180515606454380388487412270519607315356318011204647393466836431375503473142231137605670366502723891581372315187523761925422800244213988085367346915709369852655916308253579357402476766296339357825175610701202133267185033566927539079938781541415569451325053295139435980209412642024672175712325603342060251995910120912955047125256492123124185526512187666549567677226572556559451049509772354204350379644050380373657351947640938917863707513787702487513087813428131846323509777358691031259550367546237191607126931661013468404305237808187052444088375594319473947203568731523447651356504108860318933124872656325529139851979096088768393607038328080298200358395936598092400877370502662609481624817983528888982977620012685726654116115762407248368515763105668543453068514409510074270316299140967201436694651915869482816897656284879960155948319070833058283999295096661949689018625399592853898321925185780856938009443775104047581763232670877126850727174240197551269509677271793635648033559096190692768399214177042021444482118898507567778344901489512640588672036725874918377396968785000786782925088862265408807733430543058854663916948092223500959783575993466723474335677307840196946282543966577913052401265053073919523320072972097049998029152440742118429239633985066731398590548447927585720261573307366303940235137903945017803273306099341855687359234733114270415229085330460563801105372659025646587538082763290977677750788407953881420079599625196912266567367427575450420041539434664908781107531035186213066116433114323695246245313366282658364647799321222715873414419678443526317342758833515086413107184622041225009541808046740564576913341865791187439438701187913046777833167413289258494577214825893413097410442793437398099923781237209460264842270021680361845512431760636060169719828085802351476988608457706606866722394705877918185353502616213805434895946900716423749598727338151372285272338528988204216850452518339670391155680689607216799836335342769484034413823150004901880491568329691361537110518265649278775688091589476036979127911546688532765767338966308162880488472000846667860753904320386519045074351158545905641146558792594493854323122678436633486872938628490523837207822483356856102581903697481381343477551462737173410682249822000748224779906860487665461632336846598978532835858024866768373516861515955965206039404336505383034597349325329618558108939828784734577471595858204028788577378685724595516395039399498773199743958129638777552599743563038028293290580380629890237128459432172096705967442812485574027220786495283373544672679075324280410804988475113843814146860731772801923914654600509527822632565986910274871934084153724763911510405063604672972013328813073458697906337748880945000707348044413014546123242303623108267410127819530592439986704092290055394427009596522017361338800468855894823257771282986961186652506861649164580817549616585513391359865847383195681963601278885324499204275225516025594506305424343102165303493565482928180686174478469486313782200846355239850194934205750952929817289609058352584471773000978379835047307822434833682937114219453131452013911247353601258058584837423675439825756534328681565767103947912293781189671857151604895790193448894408063633532144842161201713960955754239495412856269061614478799998104283916186255027798683000121421707051101112643126514785263632193687166796782477816955243748973723354155727053230437517072345295597380177094652986387946963552805583574935721247952109646760117118172930200221448012403057106820784066127279160854061665848962192764259925998647235472573382654465726007096150574681368855674370804780940458618670511644419745179483282616794376315989497468388320730811184982877258719310826140979373191233992561916409382516222996451491506341570083106015252623086307673907666804989715315535642305786187909542860902211701563424853936671628518395304371660461851580565623923237840664528439863912892376997594991585452494861660921275634510126860071056130980297799611598617147104641042815381344429558431649997894614144872606507047965491672179303429212419999751627228347654275554290981548460138980766960287104455812464879631461023725054434732546526731888995720633543996073758125117535527137733585063408398945133498018712185483780448712802150830529543189666146939380183655339805915178721931206195692602047209761139384978242137618838428263302265221745951794069331419543583192283516216492348177924465143381459460277104845406842081270074047449985220158944266059519264723147841007490009885596410565068834437292151092883652828876678546922781701238950752887255906823473489956765787790117056334850409183217384236509157186380710450548231505807415493393178953866318548149000425657339264801957298501510938245043816530915075246071615384054570445422916417690608210102221176108505911640772953032883860612690511697582076201894749271724243806116676579187443290842022442407134434602212555624737333149141752673078795033788508725184631353173157949293402422799716199042828079618089692051156472374820109330797821638401026321198987797241578445008060359912011777357910519334140836806426584012881057815482576656067286807170988154313332230441437100288446338576772376227940219290606865176103241161101764497018180026891837083053424991924718624094627740258782357082740171457197048007086863940157549766329809180774494128868988347793481621886068073056912272918841728283350498401614823102028837705044776078777799363702033595549453487247083304007763887754005680813626797778625958877870559482862180298265619225644671032890182471758789112122183979656623598196987881705023073400768015045405803449237550506665086870777668003661692426328623221976151317078489024031809759786623232414079510224423212401787917923648175980917003193379731261038938266691207877729323887070957412929200673141298278165073624343759989933474357118986578930162214406513965578050377753505059748568716929765862795988759591732084625287001835670240783993092092158464922609865750243546195456299632780657882467355591656109457595221640192066060186235366816821530658067314445097888716504884054036322233011599079055200765360779971486505176072469166998984274206879271452017186085698026281109861252654528791526132439893810442497467765016057312604400879703381150731041744501575802443294125103579366242627457267867640580560264758910118593754666669890652597789880413330840976799063432109252761526538138300086034336126269000436744216641669258930444513618217625183715128206715674478707511721832956286976887261199613875712740295144239583569611593535944775364577431127500893311838654156210257595000791385416459490251099241834374064635657087734238002284407365592472849487763380041942302410379616540723224544514981578130606673628339918179462585308413160683830914327644790307076884953361344650463439649129901219044180302584624034815694479507433804852526796224456467809802270897326108980954007295826307664678586433846594857413940629397703893027796565871782812856002034390054978733987672080963970834842501894790320375510507954904065090105953936768084567013129041856442287901767620730886551766565918644112750209492391797053037045505212969038560420481681815066634098486515887655775845358914964325334839779425916726751294286357543770862129160527735642303611387031674963913126828609922764529679906258603296505085352536240535781262203088650384077617804088702401017988336972441935478111856734639214859376236325205902965693240042463069073941828405619412704952714761586356012259367468194571979426884863779822908668794485397018118236175689791427259855472762587517987152492772375582882888627058394987404922681851488670855696773459766357108822565918185673285012000985066209435490590941596265295819545110145280270626010362981258077694085967206160047675751334993577764983197045938492734844680746467721212109238273008856152040629586748998070371792612517934190119774928225352395698715718470721717428861442778750165616899990076951929823028666284666612861766911585550093527997428968656808911800945459173643969930583595726620121423637892847800061573768679284623482270194577025826195376394523676429956029611360190391591461989005709106192672499724576717273581207425552756187493133336875585218307742791722132103473694940093725057106766921118747008045356578626520669754842273141972082510622802263134683599420937197599764404480694290543224396892732029133842650698702453195641306027200376322984939622353068336944052825928237961810357455689317119399252331274729664315974890591188395992362692325771036692608127133043998864789063014582659493888371424172179161390380162784684555310217509190235042436821700855340022063218347813079698430043121228084229409891096538622981259138508318620089178782861001435741227958334221116856127236077402842013209057462295474775149624822317103401258389055211512032422539246038527418124054999929416741793006953993097344367302797524713562883356378001344588144116738627798398844958121210020506836009338286326484014289416806111179483202532992564435722103172014007126022135481329697858793649659123170024221942405805508810920967097433767405057530025992442376012260324693872620171124899179487294960263561715213436328730552981935165826671639819317503422593202683210397000642326246651378474629981666009954904051003416358728590083211245895994978762789040705107112060688418673006408891214593824068706324838646203192427164722518894723019692562522852972164650195233618212531609983591065262237675304745593999703598803673500308712444988413767698548814029848294256821264229219428183296145278257823769007194682235246570492781795056880536017428301854756512250706854011227966878518710921176376275110523184131280241148020978252155288877652173154949709042867688605377092386916304998119133018417066491744397621932413786162391746071476063242465973556505392237972629349458325641601798061169120218941103441936214231196958684245421888548272927723231241306419942190963044771521341537741919708898222346219389999472571933520707600752203884340181742777316986253047790978805066251770362627174379308426488891585115929521502348075225502833657477046197571369552229054330685019528813511276419212513534141826555833103943711608064358910809404646496577884402143847664571195752558771699567146019226906779748872119142757423215838828964671114173772020933189807214284049245196467433925353284182302418856512306749351172281424216095681878240215248577257854050493388801845541551447918167931956814479839309463047625204302988458071764142945049033819012134827832250536044077119710994659658643365345975139324212581935637628455352408401439415302557403111238837395382744239229066022304532753998224855928161807921384075596276808528033561679571490472426885171998251920554712341567651479018750163166874920022860781295700166963283471433467278724938545738852939030508644429349639554692570039051071681937398635829970102891478537008425906640624181931880447762912352202167204251946867271617003962912101694157635171805998770889005714658743096179338512877294702688692537713236834857101840904598984720825116522889407353257590090876187952923232593248788375015367903470362777496703549763564917781594493437585652175638969855200936388268355352981069013187195159082072104048970488084577678929824266364440836269805599217479421697840639609076923956173241741407881193372057293723623198403296458802846829611257960263426470683184108372436858053703580767986118369570757144068345029298833236577288157379951675749719409140773322224666244234461448762252990928776500679186294753875532508688036474507426459283772064104903570432405730303641123037206463588071624525797491788492028902990188187632806002193177921131924554922997483134489248128964589597067462579346984678838302607367509279156327665314597646964950885725029185518397289251381534104983386077741251858477439413935119722505375645187419402113230554294675791013522915963013734298412821671392559284740531777371743243435144066310889859874583352660415314778392921166053137001939607494049104785413472494107614507067604510330804264873671810283376504713479300208140578617041085950195074586051721303740686246069632872320750875300468874731329908470525884835851416881952127086176048298703390143167046557686767015396855276797468130887904568832071386475893626653228592037325153720098400712467687914767753051415486534351718208186786688953127869627317086371864679042301760238320387290226363247129963783684030290194064097528495320714001253329269829658595600572598857865999064943372571105139557083790696070629940330473807631001693510459092214913209433403362127947740399307152519101552289571969775026326428785530044140152613156518408224909224432734985551641509446829570908791839768308058422415011978217359251612758759222186041271727848356113775893508675476461163123635975588912471132148557931237323669596258724621506002283864955891857439396226781552066372348281357824282822113512655655490553881500022205051767776573507606767833734750090023769845022531160052886877757683296913653902298017419510531132053561548404045571549537974479114345772832646744534346465649580211325316417225085089916903637437917268899260459391630154045775434118269484704261034613713758895960787322181379777307629046969266192154981062176599193835797419855158707874549311080007823247866757764523630589833228614035434841222003448308553063805733254575296600128589031171671104318919489638490869339358401198073774876967001264664630229722262163111406676196122772823964179447681197162378963423424379953739947197488294817731805773323206368391948315368960522911272302189432760471508624745836916430271094811763583487084999542907490830736683799228015784362838166532441617907135332101456178138967814355429593320687028718263741069189981415442323217319283570300226622690936023220635040389123771175985942868950114624262239518468425226772252864122314256586795658793364343142038042719216877920792141658440204570730835436368637253593283161493323650271910023094296523306012368046026665044979581253074955718805197139652700391591384368363295473491765216557167854274959610089479347130240823554991218768275778673155670135015442800451856897994350516812685082774341678355183056871741661246194004084028426480123980689705046855469155565357209152832515446496234121060528256038851591484632338799124657722890230969880428849659202293613498101777535966960431783791190419289331379576757173465163847984527796106877509276007544051701286255145017588272383451734628142501383218884577912886078619980999200786680217886032238825298190588255940817967537686747417653639299879281268654333277534671641765476135858920578630055464420291457228319604073705397802387990996211487157574696913217825246027471813910946233978494507837481477466986751334383604150351386335729527006755462337814108408020898058449296644847154903416697303688494663311997222688655671930610653186816767618402153718523052523767071705760140816326213416051163808658054794863807214805787704287964688865788657461813543852827844323730387611478541744750468581544288349784982971979064966588716821131078533034126613693024544773534028223684053127807027163695746921906250045110379329755892495576175898708978020914115021762838023986588019309650904413166337783956592384234723017723632497530358365413812937531896115537742130275804845528305642235983657175528663979139171833577191846890921165899491502136336624112796023117922445239617258672868370930896262362287235490227197579116614279339325955406287138383004254753456240932089712900603684148062014206107844720845226939210982069763872989565407004325896626086747354278082667968948554071522983485167345553095352043276227663510280319675891118508546452215320036394725830352559171032244514797617147045710056978893190941389440825116153813641465275384349365490722919391718062593698237795787162090502817883486974128110200051520025011069270734931653630019029985604559781747613284492160257754641317444441689914532271327908504436387456276450861726435623349140603200789660229187705828712389562313987275280639192562153239328557940385104869151297763254994816099894237989466478154380807408316518652520316795121395548247618791042853128646689127569038588996837013735560856326638715679254638322428584853148381100500740831030614538370073090459353837716934945548248845994783988758996047702022263569382841428901208040423164353288905076126947413840658061684395567853414831143465612375792037756198634784068406335184714483182753125530023508472094124604053929008810160079117949259927083087286866909990946328431448871238950640941772185618315859887358795858572252894762720657062130441631742881363332148566165507635448888130505541492668969303594598479378670050982582157534245980333826203525493391292369405961732465923615371564301339281405305722156177359590688530769165034177801298773746598451556833500919080390192337420153465245187607960249052264526470365715369677230159554524526600859395107105816490751081055089236911469879883232791648848770203332218749679588285517960087231856481258158404098936042239222240218167469426958803343898753467310592259920350343601674348636733575806934431324608514460369503014401889722102816120535021355852983401706012491494031164880989188890559281028745775459283206439452883804639837372956636972218205386939518107690853512454903956586581144552502373860593501943403224737717145511530942824812165924200642487137189027312274917731620874896264539223056488047666592575475444106029041621242087817953409041553949433188266718619912889737362841764605169518420616791161621157415629149542051732992931229812832591625247282917337176551495239872324163988250452898361489501092942470666825853283995087678157358752088524135824403098816770527568924049788573948422571890431187076528487569435660801609587731977402697058123534696621491190359732829562548124263764930087978678327922916197885817584176475700555422331516754328371753044066480645955237911429947934636711910777221281451242919778069532212734564299761982657844655776468749714317515788931492357323561949257036369917673537876075509990373975274037687604126337199249466536298418989431913642105730872389414454404913945550377283492130959185503104658878868804795313195759555047231233956003276986859629733350987943499939308059860008523507879141784447296513474141025754660588213192249192895105490438454635577447779033095389144966647515608438409922966825942482971396228150033885815614955576497439883133372447017254619570074671578204903973753505945352607545762704390022376364189062826874167079427318662886972804672398849333715531058981963163254613639199289444819099170321021801686266863494019860865948159129440039344485273791048756582645294827970205610798988823391244596301369284598936674254176824686730884141660856870020870094386763841516405876721710595563020470886099919376906994343639932194884234436591518526443570171153595744045806915967351051305065647115538568153955452252523428410001940460801173991931976109403340189883355195581143464687024012639076971223083169184025323660138915856691125526574291333590978645398254405581278603202176661662909944841373159622838578036562347350019057995808017771243981154883328042206283746452639047557878560258500341076700908690587327506971615687395886283127209762882181187399710910237383350141614808675082126784195795121811406033865380013192167249107013343125947862976308671382187877725150902809610984503008838381108381335110582051161383517951119996400728920555399511868042955369619582255630837665171002271386420093432993585410861355891481531972604635874687867813687238693459420708802595296087023985468563949954590892474064460309756597684586905459831014637834690400676954706498214961814992440943051469500265655554696954794743524757285293662946975448940899835844766549852018548228480788975518615552985634774491247860358505544828963172835325767457332024735840313530166668858153947349919648615804906053874190728875764989467036721313800976383092191660558252470121077302835163973325452440020211606117816714423268245068099749547304758032933479696016351789017396498907946182128715329141844552595127592048911717058055316416217578744101042145093860499233444957671048958592614440477735620141798668028577286885194489144022616871134643674837444530821903464243863956923773429954949842238273796916125346263451999345265473811960499207203612147870594553432840253196887999326088225527423203806125385482924541498562508486070544551223868764507442561593705686482925060421817669029836116406781273703861750419508904013625727914850505810314726526633792424877310104917859605036461764955755410631698733430738297088054525020330472458089448981477026298900383764866625514084625416512019174376579011450865921566833828941995433653270209130600328010693550850264720095819734183813358445356551362486002048260497881742516896883094476508436288511909928613264006892942808383912725888169161594578984858866051799134276581550838454817475672867865934813782143286227620444055974739266756957904998736217874675600580077076523457847970263524519860501354024122388271684347281212049444414410236726005897207133941480075266664221756586204817314677985371797806108422339058726113569303717882700321689337622706393495945189731908094871880008149268268208115448892441704658740487138720179365609608604805037592204058692551610930449459620039936373442863594012612180039125409606979188437974923151996975837390275553713752556614174827705137752402957476045264014467746574558283987141835648296628070601870899178459869669358739979644310537288448313411398669190386585151780541087036210671442372781848409448727389815249181921723118083295175006603681303043748107104128917293195876046396671502538206644074434741312306905728009346395706677936549543125890585003792597557226013505610167801262439271024458590930941087101871779086456433846062298340568010686570173975861138857304053777079225206281672658268623946209639216083123585519085027282484104690635863744877520210478150310857991033479163102170275891110105165297173892660990327020244266440774727474671300143969305373064101055808399448889059207769408805279370617013999997377038395472449025608038988028259744874087063801198556668681157294894908832175801175892528136643332255650757149760243968277965298467300423164037691899854511405387746277358464814619614864200109040592402651406847446269058743447991737015828271793524765025688043436720509169528780835547732442314126550772409104216868963328923715216600862864954462130576317317293563417339701862414329661906256402986291509034534270305120714282183857964176701345312115404583058598435372249286180720219498653656683628710069157468422966093064472437002032807653499948878165150142311518066001590721243319837309986192905494619491271867883380809159658999427795048216216089726982545488236279256560680495502761378762294178546870837050280835527969967537061539255908932455450678609847173879814864726725178115065287231460881512617674206327975290559167191532746678681253477080782787481966787385278077462349494011116809115724704816658473379698549510447847820755859888938481756870539664747397970528196631512839605877524625127586797525613476473053226283062931188930109585405316517822809130360889419317382822759422712902697173669312461364634369381957325501455216472829157684875786851410294483548571874620959080776019290110251575951261608606247517080875026856365459883895227558025030811924840375216255942457098554063328064514514103576605109949737575921241469275025200521670232879708118322534120356776310618309919113545632968141453457166552269882016208363048179103872023059791030401851823544325401465169280589225210428608072882530127640110850131612123853503221544966006659059418688911893444559532251960924470411254184933726681029915040751690156915013210522742285250472439228213150789418821212102802482478409492562850026403506018242068912255028924599229640341646148713500741612799793924966639479871305934542191770509568800370063756089729460231447154108880324599677970940751734048731063897447009768025830350641597895448124483341812220910617571901808539720643960709142548948824313066640731887308388716868837259787267477709870721762453331761656313088903033995481759315539021872752853551121238647634348069378177873156283976217137775398274441955985295301325977390365465796711351958237801585952720062629814189019064507224401483182724577979772573078858240915415900596717966288858457465832676338679128128218832301835998484540862546245814923680203252078693573570050691933244260881012109214833246107995614859415206467682582696817287701086639991077747142893043160930565700448834711643366024745724108618857883118443947287443153388177258234106998781289576972269040843814570168947551209891062261391465820157602513356982596519025347889415821396447287531129443368625825194983902408999515479268491709349725797394607628770605516240658137666639688340209914792878262689750665093777427699622704987868698861430172698574547846521105453246322855319433745840350799236888559426137748261593158021472209882386796956999235983721539865258723947122102446102614362114626169823154661067555357611928279409617673498651732063738267361834945803764497483777533134245442479344564880743153035611507465821405505868157810958190538857751624724861059839254355648581018251389118815385046732775420869712346117431136869074269429326409598632571683423855795431303881205388993227269763698437941667175845002665079992483176835365185598042214781564643811271645023052776213458687314084851429179475618010372159015980754415019305473103956044477034349113886786884193657171253306713662159733150480059554119479393107385515055899169421660427281273959389692766736803344471689946801672651373583374087497143680201065183850214408741740587995165033213230419386350548465242517742486528844813458390341931627133599707793408928249285887031417650897656355038867412720668368154316905624829731971551513458997001534975907702624667444341109939725026262587255569112613452929409798769368533154863429587293103281562951349619380845750629806010381280233991149305056218874595331047262410429711337074558845735939999025594191740302607602556565420030619533625580464226528657535909292632983269508618741873586050408946835394248801001250847390148278148930114513366690237780218939954773108094151467540583653348332872691855806175646043173437843666770180387998666382474140922930792974529838158138432010174061802868020040920289341735923104944617781747387888896067139288602395352331133683640016563353710337703550018160587822969407198327157738561993129707997371034805520781792192166932768414639105239383415515122409119572239312610410151540272848566270096843314215883071569415885292021713727896869990305202295024388966722736687609708161589079799379112269975562591108582466210065584725871857418533996715542949858141949619376753452725285471400023601997558172252873381274888407960723406014061949299444359383559701117115970011958483547620720863636265484792042070868032944669895183418528695943024732519324845143248056869511652124674412170905445158768818429505396999897465182604369496957882575265229485098961030299850556500440176694142092177741000252972325515533935573966284745417115747346791859846343016721310780596064802915330398395872696781666260474240343261933784281849136328532792604154731866502043594290699475171021002205734070855473716607270259184473557483535500577749157710934491943665433388736529264760513940899068919280742260786241629234549525931134984816273983435442920535255514679293118074441598942309378880442238745543338061077667378122961419108714411335609919571230721949326478282976170154931282741443372475295946484980559752209006855282189794789971649671902968327826389710590993688435542084079842144950654189198486009669278817904182241429673133290541284484628031676063626092041192653692630979454780489689600013731499486803970390633374091367428400957503579528351624925632726264447674084156379988505836326010931765271414575478309656154503920778015169492008396170254723175666699944490930179049565096893436339128167975262709429519217377266806801885033787221658314615171628345405808310580507584142027154658372725018576267435650565113829834759588289810297241035927910642632958662003619752434935899839261170257100150598697338253228800578651753292404114143010483031409644683349747401087338964115756099442399268157809721671594892787044005187799007451419418027910050262716842453777326812769928172089601754828818642783874665817806610676351872036091910040176392777450840886598431753452442904450415779079401255369808478917719613511182817930049233674691180952715180617398389257208233538006542177393790249495074441708654950686130481083348207324278523049413311463221150965222602978514964518092586996993366177945192832447089502306927564256946481601083005411153725460514848372473161897178805750166223154675860720670243359421385405771488326172856564020527065189667873177529972972499154276859839856862083823672091259995589718790260249807064494583063698484714513749131175817863085892387549240673528641559090744296950939568508199419792809038012710481156808247059754026394230412828765107610797106346767275947681087100249207113424912705560480346473352370209985055449873580859280455575105783678945687153333182243674134222643949243279957742681655991394738361298134892189011389206960386790740135206752452803922075913769743314532580047889582283075803048926159678053142957968211177361064154908380845633219979165991019025656247183634990491409605918207669273782017781131508340794322452269976958410497380605494254864733830268280795044414674471199913736752163405788765036749289798275692240667890025012205270103815702587532118206829520094339122661200287535401256446076610536295836135434778087304885411040222179562143072736033071498787710610233600826386755340245712677263725976945278256160067829835096521588422356288623747419500081195444180643731443970161110390455162651450033239721790561012820655987479576671849444430817215774917592814956231688032874223256888134657576073061653123027516762619975388931402679862426664866922781502587604021991215435479431340442677037750791322779435536384761013914192251371938085080009074703924624465833394932532070289322878001560167021860105278162557245029263439909279467116140246508804964522269094116209434955078948588787538501185600624039156769496940316752977267200943799492165195205582179002724457227798700170445399409662522625667910570060696924339646411812385945060635779332912507850906250022122466096410943489211167806847005975902700725059829936340396606793318966106250681023578766257010889941329227685956078335690357480330324338212605316347983694326802244818230185115516951314635457233034557897733913314514427344540673101072962834480547284457667702853380530064965735563619494404144105331518851107908429201531906243558184981763827528847910761274419220735291901134471570621299959847016899942597137075795013618460073289058712524689400116564963963562973827023389459657151690739785570841329852749150247080160607077025150381184656373991872769090620349819490316276881460092216160679541194990744996201272997152173749511818050416103542833333623269490776453359186291751191534716363196037251270758760934748737668602421128746444415903630997135004599033858824357593359361395997497736139520782785645281622947849581943680182674370716902209157029261139659215666548069582806099935652205563155677255771907990198626486415984472178743564803637784272284901133416515259928542585409914804478507954802991062567425505725692153100943223201452202139696508339893567108061954512577105021718061595579425055044840643879200257030244018967489742248827008691590800344550566556301964783626628283159599167704720947770502914304787320135030362188918055498638944994518222039817250971085094272622218025631456729288445805098071807801395314481781418674831468680473275149158363963511087189051749253810479755504243380197789185504848886878655143999926856858700226016692652053009652992103488755581009652088715324775286177435350642336314132508570116447488844428204428190411093691434652835195433577388568529843744841749348781459944373255955239488226095484030276250097208865333877029451303833669280338528589542800846974624186928134617244482299813702987231078919334532209418520631606232786089531249454895601278365763411014467763337955906214829211893734892989799477928815436361854401539756208608075164912343056250199063659506676455467210212929566675269851857821235762433056830653249826554843273262223010012637431257617693011737654024775550450059781181764255757854762868377759783281287471992037811932080193722904930077965804319355288306895841933450844723648731474865251293001635067556926870518768839920228895050797614825183743912644929486885707765276433332773623320105888895137489030622442293156174182560868935177767498034771589862824075996278551314745111848551742056458515903267331498727488063713370644285720514722897856199795698470076589435678866233253609409597535238028514127578000690589914485443510449636675612134159032300131720555631392622175978401075051200232130502214898569077817852193649262276586238255938888346700615161868199556548207787954429052377570597423596842621750802458763834494379608785500405557192922697757926517614176970229428002849616141496270964043716446061286634057226243258706146626526580814189254159069675902048609727554861295873686977188688449784211513553644995593669024895708147558445493899939840800923533894785499116741047916494678204381313116138358281723187506648936487236968174336440794141606559156064474319849747947239042425536299154973758193798514507202711952086120079071596253945074889766748298121761925058286902249337473213772866152050336344826815015849073980896883363080145048894110157807267255857676391365826435561538892134136262710397287359508715437017944902834440881740720393877282988441934491476624028120270673764404803413636402710287676209619826998521320866455733746318145347691472684532377950749545008873464112728170911118251283973891762175769510470546456618597770197908954899301745758866910675361395376343393444540247386765121152304293178809816144898297718700129960899730906857474206743382651432363657123725770320037749465539025089958347605717940949705566267567343623202095284248876941438506801619194541871489031880763788103578982629276572418301989450330618755521928924492416010436337767292217344789667587338483739760150754256594888193342276100148717680035031655574928804018027701186201903293150041675164046250310819326302670659007895989618157846981782341314968128562999347065846736737405786341109711837056603339655026620630034239622201502760491650610034129464094415510401833580226351740963377655569691549560582671868658178526648599011587264263491455439905188632031260056213963587563219689652869909415030595030393557359342902908100029418711138518799520432003986162180059249702174218544415302752096972231772745926284555600912122014266174352831434440406150063070142945115512698105055334505362069498554186359482883135189391383343074698156102986229968379828217826911352619837258858773226783380827224521912970732322927228213869472669771313965587906789845894995841394647925231352016872858830238445509524305457283676572887252190733085196698023352684017066220015330995705732817365183264558390369885937044280507497601364807874817921480859350100540150141609033718879879956583818423151168808770559927375832413601539598593018766584583659047249429752730242238358563420258865232626279155996420050702308633581394372130032259287727120993300108009999911073737349725653781414554826761117454786525290483744117651656515201706109835786367974016477186244945697958111673947343100430231616467534850157470051804047222972006198663513220184677413866414233758519778364458036523638247056977361536182787726360436760597802767184262791575626384519532231925403065055353489491139449300776765267864181034668121116948227493419537926069181426352535804473179950304329109702244287935692038672020350721131735819926877705416308906314615984111131388098045211607946900183916048139095601989389340412296697971028210688868083061116325813966390804601934374677393495712263453897792885734203834941700066821732264193084524923227470131932215396894684567794376958145199870376464532985600718728693599234000742733207487787289717110281004924085838372269836016891708447274415362417532940926385810291127125404296319455548353027869894650756311249725228123238408927377164334819441382954662414275572233293872804068252711510515438750452343718503631402653625784018990859720828668922300218876323684799826725785750158951393125368326568013877294685352571052603669865153104792876662407226421272676725959090162558999191225310685308175702157155490304506459248024080296740675442757621276462828057469113497436619867082866889618282309922685407207614461155088079645142830930893113448094348489652308673465104923115203390010690571487519195260651010089623981717853097854817903360390660026119471834986686421155726108985598979604063000838998057231126698981340087780719643594213614343115450955353869499348791217894245969985705756438921710952289849664100113655548030925653989033335321819323947621182665388826081830507676575461770236308612757282792511202486711808413938257685795214822485241932120510489553874197602100340234810649529867657543528286226694615404511025940110514120017292065067606067814727177229348070599131133494938054315155608861486782702828913082104372948973291653120043916168790810530550261883682217352062347872832666397399068020253874141245020393259616415767414898295868627735248176552767092145764156548223399457093327172573403117475240054632609081718761574825684231374382125442729844227891769898742475591754700045221411118819758165193551448784851413770289891553750982540610230210036175379642053407488094364020395889848355486419770694768974788059091005409692457702392924315570271989148933133355371685200184923954044891386838597710073062407192173248912616351836323865991863011752587540003480977852303829775284298107589525521680363768802121995156041055609184372468796729949388581329697158403465526063948820528351617069332143221255329929523955516401928466771742049201281752752698418956456135975829960267941075298186641916577961461139911034218084814569431790652377309305927409395964491671899688613879540865118776492399039579885729450558851649019121957951325969746141183209980121781432174055867343547556727407146610851081407482262269244215095188394204738712969163311285696382257209831130556743274908526474446020927344190439110702032234874563891812908080662240571135209820241509280464243100740765655976455249309789446881929320868839080134245720548515395403665293555824149953768182347744622295290100590172523229955043041886934447070636141841632359853677586106661666320916498408145792911106662909953939296356781704391462055947620624052857382161742323223856863846922965904112640815019480512951302968606787283454155962363436457781770946447546129820703176849297463543677748483748792954211231049543203030747109668590690198159657163628156620273052676384847222369778812742094218828561177777249176859173247892643898908972795982990784883322475614658552949779698260988567509728014693852184138288004840828045944715835095611639202576983025406607402327591089741121672725046083755244297449771571718496591490249802781800002048650315628787925864709490808083877178811851560557510538713139437915510251600997440592665568251932242229371944606612357390222110337804361488513253629051030414458446240140220097415602543543209453900978249380778202516653934256391257163496664882037331881012396042653693928850979690055255522891840571914685181454874768441892550689966598933710213785116408419159844406120535422783118407844100363664007181391418089577673689413640270209911728223027282393069453512395930151913226257699450715085749901312410249252081628971860028157142425161282548553053971788911506118177273586461442235309260323479724357950334197050006064476267851357719413255265161089032572459096191571161259519777164579947544957762261914278956625109829087277151537848522338409905218468521589181691145484068784414906138855582807734441314434293508111429329123544425727579280405369829814043121140496637468254564072012415285812957737080779502407908080997368872533810018931896366594788000944717014275738373151475104136553129097167113439389474938159023021647061854927928091605668502744693258689963505217503601703342529805286863572654560172549805733927130696213847570733184267248195811561246219302630863724013418549830022148766797653884423760276645705553581910215004617492560080999883528620963969555817639087111294226040299871778761933862852684471837097650683699940205553317184319767914637682959762193066189133650214918975794621503952234078302920347288937827576853935966515544062981927961737707946685422579059755841677048253313544558533647936043080008248499088139502927889873599232793545898528280974897845696436328592172502960072723069052941573023586282876447589621935466758448169247533685572488147433007822169840975406834674079043204748470930240571198023979531107991154291354204377746026580591780509121947568228298637462041004883128544493318998450855714562961371878146735772759172585015881419848412896199978487152500358702069692719665041902904318153007846743877070274290197842604556509849781129446618409670441607289172113272659392503329396307145465151981513372606797219966602637733077446961814406462663872356369641743563013356420864621774757839457781318145820107186058201369921821980444228400815545877440582512526932497454767111776526514415300004525325647048264087365020081189810833455208346893853400920633539743431976287740677949377812718583586589433561433194992244030846962347526225979969133243983080299355702613150374657114555947005712563774203730731418673206313185719243242392101027914910799142912432668796024947706589851807267970616860338387306582041199289860436960622462442691613777674256898368621731756016113029453356611191606738870335000487778563859800836138179497318793603070808109558347759114947724005439256482135805975434096397634825708157017042116114724272539101836363974788697362048794779908420005727202672238697303530786728736595505573203535001446483704177549056254056645639797150654820357289074072588111523210943727436690239303495983067570872201434081997346878036949765293114543039766930699963840336001196580422759443768586356120342900230128858352786285219609852558459274146378460431157147802510953250576384600166192051142257824836167414680306524449555057959843002895323627140832085613978324795004272231748958950905393527999097155256394583672641519168824295406063691615008479416887484593447280780343989048885285416445391320579065077022222527472289651594310794276787293211520163995145961998750048036286774864060082585477672938553006522733688449397829730976338727902641554798633798751159922828478043005570382900209128355765903099481073823967377838289722196041735673266816308295140679548463631051027680415153578208560155154774215784360869083850862191700691097146296418684957768793386302533158462942934132691196680106431045739263277970271307799559766716899824614810488739786767943356115924806952456535875433358230232430939792798353901445840359224131813888218487534714247038394385744577659620068500998527034456097939618697539522290469069999624153045118599578367396262278269408809633096950565823784920235093803462827564454014543138001157251073653803256993041816583185994678732197207010630698007379714440612614805100953033206598855603284506002890377430785795330167681003439767467571272734067774906302857072050379808065049480339358714679598474925030467485798600987791489317913175031479863049043657137206908418174264560493902176051931971912023801430667447426228298444577595595467238450626435864710993931132329594114759223058497717658521387029150784677041785502993996305033223317060028133238452721255989553858593563810475992865548474110187020139543732487707764756225943797264695823424962098999868235345614065798199757588383764603276913457719815061184625915981889823093295857377955623849610457238976110192538901389563843666736228316433130757882581940943324122970269005838191950691309209480097495482572438610708339965687149515035237110623370701006805180687605335909646868142531653112156873064367860492891091754396843306905459190607245986101014457283401633682532353265786491089403819376086622522275496488131786067942884143332753414419622712774636226725866543390167189725933905395183586400411474701805796269299495707042291772366969286997288837796708588918389139472434001562252280840751551835953776912874249746226978281409292138221058762981234288208690211133055060718094407238997267077970054948247854400097795220741875351500577892675042094592741509414719429468007779605611649679514338787334783542136691465201485210484800306595097517618512464709105764846681991050336426818343700716400939416984735103944564371358474297461400808669156222016277172857402180456243135600027596959070095097706734279342144164662232877499097685396204586543333853376962750386968306211447651962689624701400015432100769124684213783680662291103953763932024698845589702171823764721400164842054558819143376101344403780534521722300825659653493861361693824495849141647211506309331018406215968411602398193622658176428006560563962601807368761820874990134683686455752012617266537041416831570095620351702495567673908977083387136261717407807056928369022275783446847976954902540706794316575719543154125812667402616856682374037364450631887607122955721886298454900245644721943817594848288425356767536198433506335067741065471968684153115310404345699502953255150662905625007795348568590558968519291467624588386164174832154661791265976718281213316683999822824541380124671860099973205515012022940415579618342344927613351417120379158740904388158505871073211254764947835419760017822254392518104778056457990725522619533771850425227197065839027864133868988890111939541352370354593786889422839157240221559518421215416352136552569801226654780785335229355755363904980379724308019663190565161753763933918314220547887363030779107832308821368494415323259981499593774691458611603473162418214314561751277188922789349372238942433155875245377131302604246092816745181072019236910385889278297421678894859856637451331097498755628508469982471574096858989089152134890794395268474989820287022208568100885257346840603898679762899742098097501896516816708814641055382321909110494401683831292031418257973345886027215276979341874130231587621220169886895928607913041253051670648333911721937290876147910580113659027149153172306055101153010888979677074959651461416184883234864037276651318465274240741403924810481843123783241116262592248482086059543993906846239321462032724964925194515195664026268504892583794007624876615858863669386583801980966868732722914445521338906798458884125646617411705808307146203687480686107185870295152164257240145876118732236589710772245513993004868375968404359910017796093886000969896393922874157804547761868379544003050043378045661862344953519225021238365103949213122187107526625899072707481885276976502874568376948371751118511468959646672297373729328397974387290239672530678860160322697946224571248562992612763037430590702802804571362005199794921303191952447664819321658762190774597934355808994132392216238060138146615839065953587247427499575592084102764937335347794158959222563053663657772370261613633529059692325355778159271485258603120027415746933357852108984018411911881909037951079858614077923921940886412706904391550477845081722557936653085715795978973104588138345778888924029404344406065768289302516512613210205909297870853390873102679398872689781933262629228965262487457049408901060153183624554501147127743185726620658532707330471873801769655399282674775427591992805931277538576353342047199623477993979487376253731420013952156352890978245999029549902143593838326312333105812028907419701828575623940216114770932610425199556456652434895277809153969018814394549988277696630179819904105335788656512643208404588866712179260346348358355409377548356578759803499309326522557046512610441160517407865909086276623152736599140014682905505769929797245459849882092249399746595852589255286622953791388068303251352852435244204765624179995565620996509527432764478663119018535294287041407448971131733272794332869207854328157699025044639821131859937598934157273387771234693878878965003674068281246933286964427222438800915212829942908948474667302790285805981876318306973895283095309985931130088323563901244877810501179075290020770215515915466813376469033722857019308620380479280491366452553597531291752985488196217676081037253030017165625709914276076572096000256347724578935263951667802514794409282532457557931551601713462155980671343744091812323320242122984022496999294732151371119659101466264410998405271953906622839992984407864734362299055178243149434408487913658355383184696672845581585988348315491268943226764893578352735963213011485865125413873610849044373240918832788879483302412830842310297843664039694214899813862089993520670533799498240613492724065974836787881490482582257752984050135611379066015793391239748160352830978123793947507643377016533534242158052157200752502517352534829051460604435858582788702657662562960004749043005890669904599101274216711862705897076803100195819498779190139955278939315335654734904630739934617759570223958722543573149360943487659478283092968666209891017174254112461865896958866316325789791373089680599067912898560521788478316248870867390012755044543964270735093070298966700396494127180318425838448168606871880434635718214808386844648420294026289371641265805306029904331195021592464715479398360664179523239176021890043444353991689047986228440044669924959143717805652182799670648033494101908086263581088544896461032005944596035103209919429416419259144046272917584000531367059271367284076913150762063774605734522395699302942193000070672018386646427166594826183676676299603586128197423971711972159088798244536614010620883951608009263481705747415463681768998062581740647212219559757580102326442580867854732577611745218566138222420986723380978055893753847098081233949369849600370661986033427496027421506611636359745966522597187964898122510407134240684031188359901348083188065579154877096620292918807351966448056838330047393856753731403646673576347850989759634269861603035336113443258396777532519235749090022346689337647851787690720745142769720593663138390104331989899577892401469596191000969924272584271221875904515705029876455178881180716269161853866372634560042133932581393270889209655518855613983906289151013130274556973025971111576988609274368539043913686517733178485866186567799167933759220090806239431422316392897042627358379103508370289314324424808238031038252458909040208318797415133908564514880724352723635116711346937906200685005661020437946702193034843478408854467714372593102974539085685833068439125296261172074144344462812831916997568661547500600360757598084450108118135966622062174660498007834614894016951823809615768477949541128648882533523268913445787078999031559125371516294971659293129915019047774336266221276768386637633046443241740154170479108788300613221463361622059615342567475645084219960162140886536208053913789717468763086543895821187751125815692910181636425957869952271484552482568386018377054898329914650925224955694997181217273451649424326212329071218659925357685656993901098758235602622438271780432095934233429663796380108208035823848346549751730193061081521677591264667157314543796270739709168159459083288501436685139171331932911984445438651742047135562737752502101634628227263849524719469498574545670347610547531846705538762077887224761887631538199757797156970368369356849894744065910180232331232001654841107670246725776448862080023102686692100613864775622135615645050776398394985391048492235664617240077651894960066796039328970212882090258983511606263044750156934117267219489241063640662272054448758667559474560609722813717737775998217545332885763667391773251604507535996211634392295993165293423574975074135258498953719878707801885172159950166731033497463566983575449924675215169798803813596446951331382884550964989939126669572968599380740131140330115104686243151121142048603126329895059003046190795791744226420043962233121562088968255142020899302333966730838560180641351582826643632227966300313988700678750346468330314118977564740610549527642020806397130125033512667081994326713841397009054301804836120932380010610916375480403419171507628784924676585211133209552252952318320800811241750977996060871898167333819834902683646018607918644839338908886534675291702594834068896760243635036577502145999016168494645616703747014246516199550863914713809515978857250165975103314873589870190554276432172111429612745670808897982467493899135339287963224102596031177232222167746015549608251009339737398341497864162237111577556356030596272692349996364789572776512553579933943941487478178721517662697145749953835693633570356792094032336750874235579737529927098613446832029014718702623769261354995160495479382435977829348431724776426163389910601172090603119543553811249706122761542659548290256106999628377091243357835970636772570160485606259998019510961243579507396470872102197297615833035046782378118513849785401421877955711316157006441857074908218324973007949862737191298300687245037070893618189613566881937136494213464206197278323285378721060429388106756723178191651944808909824355579089249072188559184217861815326190665324854000513319340239414837575163884451978119665726394975459043371977366222718409153546244147907016890068466308303048904176819060970369689525304020597012279770142295114886222114088092806492788798734108521248299376463671768272446087551301780053341606725723824677111458209508842859585326971343410165276829383368158192793506981562021899478446769187519637256033452695497586059204904419737238077360114074815971456886532138737068071423060294418507095756472741282732217908573061849543935600090609335651599730951523549091732961848298599016535779147141359514443182709318577255419799146867209906366998727776616218786672015006290999954253844984976184040285573493182650326858813479402565020641363906520102737368230941609570432606946867847675973957914951022426943028310195538983616877535800696195533978919713795650190702940209491917264509301932204042382573191980970605079197116170298301322111354789926291727975933544003290023471717022968951361758380411433835452408034612640186672133498054868780080941569770281888438047603017256855224368359701238008742674127017264449626195428940585227562475942529677666806480241225387276756633434066160929618616341533712449117234842900508290999364228967959606926944769570854716219060251195278480259943792888048001824475260836370773264902449106719091288408753226696353143522041584572944712410828726810002760056941428881832748861796925618766637616752504504309324570303784856827727742710629332378204248599771196376706454793829115416330623637654141555892353306454360104815063859204090140573878942460456051313750658054222092387815105234344951301540378846021156967509980105947181162508776768395433621450900594100333160610546844244305634487872281571659533415032157670146782359039253631202895472515640925405097734373710699151211943693548160632717054288903211136092328039860434271587221005721869443021171734243384085581919064748119807397765554633931020603327889823132661350536316084752724960752113446312915714179450652908157015805692239906424330535498989408346148218414350890797526618429061566132797560768808737863714323283089856125244904795916767804699723272075861385376579664689127388495510202791254311796333116224549602364682983271350904175863988521195603611710962713794966359165044495333855860377085609855248448354331355460230974781008889806812060259495401611741655963372279119894546170060344366686152615773766398253460294115531876335726724338907224409634203807212240447023994088818402535742409022426612001359630960210888956101572532002960841111608204581266599076415482312670878240787617530496233734090996353281783239872660054318834246674558366943474834272124216157045803902181744856709006928601092789762693150492147439509646385533826478765879061487823112709787809928981537924604388273709742152927111621010151996252279289842347800154814519334510380245004345964721719503262891466974106822487754267892580987713503356788050233074994014131449475635531422786433364319571030695317080617689833304689769525287861517524751059791668373733363825420751516244170600965231562064873632140574401396308908029332188481769527924200319511769754105257811154586597107521380843075492437990114463406528926819827951132237756816585207460587824043367481015177023590346163103626123352998235353075053044195785071433931539526062313239148593120466054544695184165367915093019275647055499273336001038937506088924928341836805845977371295759882322497948740136980326617490899164219860205658620577806549932011694815649256770898160180991806108234373128544048356348570284675649854486810025535607597375448692519547961281597234705727146084357424670019327962929826630590644115899941916628688855949092785442194956254255284906687061158898208056752969685001312081210122506500613989629243201453820743274678295218365368636469840009593209221602001689448789459423989775138105544676033105608511241933787250823210663527684963023132884864523720468863640079532126512621841086567449650646645538139567009040758631808353370359499673688570912908832902655597527882468706841428679918587458395331071051059696120682784153285006037494031181022777154674312778491318090142920553633799540265636893761242295116793611595177173534208996331202571733129139831806862967638707921054622137517936762957103596118687187788429153156966187408323022184618801704855219061770601954740055923266907598830031920631603049606021066130886946748255159576332116134518900657388121360548886057465029002082111440192453141102525774157777710536035754774839856285104844311577052128342915868445240758341584907018705089628667912136161348166527082260991409395407430091288634077197536460414373361702201352184564821259336236122336110408799942163408581634070707006860276878322829134151869343554364793907190976042456288180613492495297065122761305640852686647743263477057462701915139168206363173262037113000095205835725518655576872898958256760339494435516085844673932182104907787582774372078983384579018156739285985773398718799595433024290152703732760164187273939709645660744928549972207436784109774777917888098793510733638854318275705792013393247610994665405748680430387289447736596112145534460248590033823756001179248774345895808992021636970847340187867728070093563117224127005168894707305335586201076086915934734507731105095596750609358743310894341336317601265660612087354616017886340690460269747731169619660839099180332136558794388835246743789884121283519088981542685894752862643152530613495452483053552935588435669489997185215429905927982927192339667775070958962810550156690237132106039610092434017196932018072653193555475199501793315978165564505919071246150964645772999834688011733173224441506492197481775389687797870299236518471118116637234598887543442419893975114294650523152977322565489818308142195171632296781030512863479624587966359005573625375167298362999542817734084820428657672162674371695546893365260965925660965991463287319639065473404972113049051976440355156289662961181953785817467227624999562386822140812702081483510026180922001307020218856148926444869988264011992536646825433342178281305257874569844034589683472595021856062274515643994626966104517642407909322631832916903770612724084570977395397998035104835276652919008700564089366444911771837434290197489781279406876450378377361799671279380990341574971453758541902724658059961770139502694649861524089153205771460460182419165349126268097433652355455098349852852485398698919541568457879428134339966100285010306156009782877526369773372017323211341992081609735778611506090772880092650193028636853949178354185297647987142298430383466030299143835139934073828456371306308616662400144187841314736406250307901641920811349870500681895861457695060045435137778349991557878989401370936906592024118950152860768802211827435063054698666136885147535521521040215633949103040771622171170403160980643755045577740361858308910897000449490279614905910293356399359141885416129097313890095164084453174391717663795810686883526787728765088574030130021782172595964548310493208531870153533120331334583137726793857812869270081700822054099272860515662023196795380047031642786407318059937081415981871248775527192154333760579677320225159782791833505900629165343858970333381462399186648695026666676936480050420657516063526856634039701793787422883089785612158270854119303565275639233985844507985898325350703368634257244533838891530036655893425972019478261123468307818568524201578085564471040412644614337706290660931889336280316503539852579010569182512578245685423882055195327143289844190748939250147227375722254030029258836982609573956816050492880765405269148700561981399548114425026771029440897397586847227342877618178310470966856690054482707726355940317909159209398632138691037065665721058893406332490972625651902888351791209250153185516611037360818256444691930974286275882068170783153226532152209382756676441443424301752404017275184047810248663240133251259335404359262057928272734084386553660163411649124759272651644829119810117308306213774613551725438583327990100795240621326503390297245405055825801999421896575660156392026188402785506695850268645014174475071445500332707574997593574888488224049187821114944462678783252814931846562027000101887402700395299129604932210409784149126890954832153283809865496706684468720982179289852634443195275325489928148594933265177375124260114474433620674557591644031639784106481591059591127670116577665906249418766573036139806962735174454744304140630611170248171787695756545024117954931588630012069626731579149514627726658279693208489350595599945483958005460263941182158794908269107250524845096972781475600962097118839095916522650068911191685530797098678403472362733273061003561984176683815402317348275902639021385374145051589120316726004301172559261737269976434009402053024289033318042103805504659446970911113137118995082252162273117301339988340475250993847353963508050351530247642742845632711871786286118344244770071796296137861857380989666532994331898511583255874148845063631338073454902057384236426824015611732103415435798044772901542676622553602053923191098843015700905072656415476898263265299942616889748135422296253887375740285566792991199925228515283921993570135672850697062836677890043300479420950422599278768486683390671825290574221420547551837524188129360779799836509846370577426410890799079484555330878366019299434578319859624218579635232739986103370155547902016487426315594346335777846410894863171052545432501150625708109044694668879032627141943871070292863795829262773976192293938749930829743038393920171677976752579837028970762561226350245788669134170047030524131208204860206472975843697072912551259179160878248827683920382543147744813553188605772789029253903464643604002527425600660904150768343627622120441848111311253496771212007998065215175076189261066957483175447943086838273417258157348374963733286064377722243488986414338209168385848973274459670549603878225475690547806732114541364956283781359507434269568138281626203728351752821152147971882860342769673432125692228900989854571437122735531055245583416065419107991308967689428576372348223761835120720229132039181959397535638010110245308750444659555146621961914803731426945797590051652757528446062285469191713720351423988725369461404606312011691497326195671487039382210447024992055362298950250353705466382693957294617600474079996974408293682945757447475747157227609557878309680288470126652396100566403360726281196962332643030314908245688502082547274043092144044236667285325984655776412034531787563017311091919781934204994837154099773184025263491765226159557276811883527531310839355526891945159258056085982315103096380880122371162327139615020915153015486592714279158419334055747233499941684477500154772299114427001150435019008504704302866424606958383736030285653708064309006603209089871385847511043326407610604468875101391954500682345592666450321741659030613613358984435851224338996620731758124177316600636843353749355307909009566325404232889622230371266450064248729419408885920637258136908614219106640314795911409893467107172582056683184510271326586472054297843870172195598411583379746989840530766473136594453468783670916512192244624812168428650655386904869707171346565691706689940027499754386769006953029899971149521949810483135129433011050270600808293045035569293464262449751020001097693071312327616307024496419650925382908314947343291517854457483368286628886402400330878809558764617630987420158737431400974394488221509386059572251451068146200565902956014169365731658859643151402527459405742695479272668881385246862384462730642177633545293403108558322789008205352122276281473215537670139595484056799419940377707549486042934154583613604513543792989355503176655737942726532529781302312221203928045911945739205436919453886127810231170388000361115057993128456473450705290961809467856165688017684684818277527167287584286656300359373421403040743248969327385551331384729520577176928054690744328340611296139853611267677824301628828988033617139752246196673139386695614956672030743603731552334676567523276907418355321343774077307263550326797111923064370421761120820150269590953216299163822648228344749834599402960855744113434058444720509234680864323245960079928803211091832129506709158112426952562875586372614393167086886266242483244559845830786401618249938647041134171697212534672028553068790503035708893075317216358281009989300280980118504991904441203815768160434363131182489915841147538275422565173301444444374771526451945801787161050621970082923274818610071127376850130347846156778914543400949885817384983514513076784682661161458308526164603824980140426775004142217795976115559420527106579920733942829579555563602417298864157255643463864110134736291310825217986586562768832055948638182422884284413742305949176504426188619163530542419864692385681706706268181363726290889540313023905135974345762123521259403925912284259950847460475863804415364577130411307491560826392088901158829899705347984635470438063240587486977084468110035546433446129642867662814876805927874779324254533267314714941865979757334785804519938862832653914945885433154115386711921636305001965893195281997579447574659030007834654734011535113751579579888030913707381139014117023630875894073217201738731079567938284130051093426705080974608386307163182480025110085934683686850329016112373288998065453931824041808753761333085093571641575422494052697968325613753781391832878559201429279225022583585784793993704366834462333340106742006846127571614548656754725022057582555963677468142803020189787399087412210700089207762331380361338375150828361282736174553852453436528526007687574671361246928203606915941367850729876644257012378098430677614664024395653155137610330473109500824827942691208459074647988517238045345402900063506907673113245052449109126973275937054788335419258713118095761657745620451005389172783204954446532145675291921155066281387307227340861762648179719959540591080513972446166392226148253375353167124443061764047330376206882367027042642879741739520556964752884129780883001845199538534961303599320633359301814606777605718270448345208345253172465403958149270425303681893364522911121353374033261488909250236978472059869227253924340929035237369947767846488321110609643030111943411876921676726980311195593856914506912756554163970850646331306006464929867111267063746209498991346318782790092032255844535772617054168085064098604060389437125670180875787181101214720382746589018001267066289438173100008838236338935821912700560143308261013320927189338328468412803111274205463126185843755239123232068153085232252430044662230095030320306925946192175292450104403861343879102869931255494762239899646297570764603409981832692345372667502585630379837887122694523095846565011035879189101390527143030283923177294433563857962674586965347916451575418464196968333492062634440475991187969536907133136685189583777463807973416880013417787659860285349310073908777371786400853647851047071260066399647538175732921321913130259944073189587124424400359740527848612174610411247196805613316260814577618418497340895672295133546205811515468927512690253241536388875986321179141332611964263234907334476321639521788231935032855521443682311366432689078479650818846685047399126883820827205880904013129533641977438461092800833643914221679053010694343184791407470435556806452922980675003625948908735199958525215256176067944165253043027343389676795206735207236955539966756051788505642979513496882387138025984885459982050667607565715203230689466606003110470138957043694643897190812184564814414599837124196956701130316373815067888835728918462239534773248501244651394129918821327231244955075250277072240489767000442558980945165585749326782558754674851680769186769473064246770804874324931767022325831114542071164272068291811500208392962789512315499638309474141014073561961750778103676728781183899984636283296246725494624435920655527323805468451101712378348871352127399877019958061496603724522673008692081257875348378526128477568879166561570070119825550879036238491191617261638484983506471630321614204784324158327964397964635340156620006629076596098369375263209700145400067988374264205108413833615665709684602018107215435177666407810411268535256930647938532507205093441708465339922746519815072754571060432346324987245818775343251682474330204528073119907130175446345556518859293653208310507061620692629792017089852554350422376493941171983759295576535589539267086557284578431612879460552658255491140383739302794673796500661005701387901638936584210523151661640487049735205209501561029504589849081273073210991517412151635744744572168941600049982981081643860381247936935411491228253128576180531129084264245608707215969989136700532596559095976402341119779760767102190546461540969821853243645449818528380680489933495062963533674297109587479044215942465377365959619176948852221985950082864171998424930094933227446726374634553129746847389514011402284343233802849271458147252724029299588977609900061968879412402072727561212907056457354690626649792835069483542522021192856069969413029272246686598705234586754661464343136875297643507291977400203636019335332687181990548197433062318769998850639669991914307279192852606568052751526976041009541778690810715786582430165361394445049616031233674638466339580453951289464681087293880498048051565539111034344369066804696209573465551280634325002180017002641425376081573840179718290125723770056637463963924535511395973189088232398947771082261947677529835918599859660666549430884292473978011262874435382231721908434026330659332263153848478141415240493740258725882298311235626117453838026674099382091119776013036443600373688880981386030052484230844697638896990433247408466830661443781101550842133962898607528430456452367554653946916990184344722621027591404909309722586118742708370352334355809806667541798696189978190599274666316374166461378248455254822341846791604629281979892770648557811880476761584481784182282500450824650246457470878776467134754433389825430817593948473400943893446354886336536504129297120289103808101454481245328487707693660905940269354367770201881984043567874170998159530604008199419756440949113075628573905782501676374025965162799658758754969572833696380913793349497407349834015983904825216030121322686094803648439443652597170989860444725145640962295978004344857938284261318810947062912213399075053728407213925708874425940978343308073335452538276999471652102175628928966075129717958040634758845545712208550911524886282996429352041808571237845605257896708948884927597442596692148017304743890311232964928239668887125561283219445923250245525118209568835734222796401873983640505108699183781714746199676597437339108657186096530423432882147704352430208806685805867909125898974019605041537388019851158714240262152786669190713321049842772427224948947926603973169322444768638085043846827633179839976358932265362093922589399776047075847895565861173378524383804470310552871720322271702046122200522696331279880779938130209367174362188987005236510468229247203349146191037557782967840337502999241633264841147669750082174700333799249592402402646569432109536306480160307589607960508317575345426815354445012421777358791062189609005915004250073699501712045386198472108865175155928097620932858556271679708966771328858945719766769519991183476226343509334425952713314358210042015715709952573489478428295363468975129343989671627184413655499334680355216966275783872342422765064610946709154097779673424525584871018823190420762502853169765429209368222271286313401246145255655389737961976260321012337890990611559712331143848400709297281949957817685774711199469530249605722536978688821360583672241234711884750304474560315327285595294605354420242730047052078979487603835897359398473030465060315458015244975443676275705911681908678509194146233375628625364806752683128597726343567432296802283178992166825339280912595543323535079479024039849369839188742647169538492912986771151065644557094163217943977629934064035854049245125987472091935680378704747867416582611802110074886812437728703640814858476224283608794013508020513899398006289285170956660576863433868941413151716451027291053766406842584455250715995665379108785437781084522515635091367791197567673576660752973873682841959823219848367086822818886863921387212166485602675931156976491448198802050930593145942362456164634045539039073239786790731961645450119874025314921371186329634120984433741506021005184904579329430255672704124557971741610790651621737571372164018848933053143596135691939736774642663771031760618367271622592203706046028770771317900512779214408880363414151401372058669287615078499336891614456112007210571771958368698184896531721721877245776104728704839457410377433623905658608322286070794862540345502545697341781447627185441812975967424104048362872765033878992391485464959024966980999135689564522860052931093133121139769827271549664569483370412489464383722038714156350379980093226185927559328524405025498558035962890658349702082053344887155978513530559683167163113649726608505859750539191998356754425012861919116955227342453452822458897166538295443059322722896087010575225518362745961858264081478508509041025007557128870640920197684158162659723298358267363777094968197918026327509600873289630392843162786715462979332297375785917176289771593978641178283106208973867499893154765284627622978761149761908638260765398414750048681106040795132083477536919541636897557035547748761403567265381080316561707338706694055987731638473852625505834338380213281302188575249069466486522143057614818164731269106084641353775505171552684755380681863581149502609749408222882179568011048236072640305137993050855356444648347609253402286355696457243251686611300228938519228431557744612186752027342013744164039878314450518161382649809729887395262943928585957078925002311189363148066449233545724145012470635731213416347153677996849427826603792809208760660127927951690771813002238202307224934065927395450968420780692691127516014470478695930434827996444054694442295699194492743362821869702006952964398081637205320832968347845094966634697495048337951395569686555516387693161497789884235905235541938354027428615162473649059803468148803013661739814894208603545554160745460299289696407473183034560814206674392088832182282679520571175411095730760184906221616092123337782940713975331102874179636117928897383762510606812385287584853298897857303872920160730703262062267391960276011665072033827582019823434207491109686746034758452683425400451704004404926621900498734204091617318334027149896495743251195733743527761387583298752468440300163916278242829807063741477902642838427165175818015384330061481302161712728136500225842955095315060881705695620349345937807201384074313557811383910057887846757161366699682622338011054666599263188918343172195297377810395076085789622762495732898350701485950241471687780341089693843867000450221270469933435531396661360024345224864556101008028732481624696386191976018059412105332418957830890159820559668993255038310060234618467769786884635298225769658563358276557506313923635808045765498878593617677003600416066048861178603712228825136232663802927005334288973216301781410776150767377248475755767797110130628602237237346136146494153968926811022922314469742867314419524645608542005043859096210478997275028557470871962518599699708106157982619822306264254058764243158880638696586550929384793454835590414527762781638535183631926919046608751895196891046639982428554836396468588975182171307693609754377920196304273633868087019255966791933729415965263367517424973396896942891690301749372656393275967085570412544443322517653121071291260889274431266800642106220664772441080349817756539336101571099905558829777892013185204935570800210806846235900198038177364195504910498841921695918929599982572548492472738008035338957327156326025941667685161778992551201609948155035151290641926670616421931687785484950331487786659809930776694552298730288061913437035289297742865007652779535354521908112358186513352595270699234567778781251467525506704475330385997766983254600365756585494674251534577535640442563637551872343438365765965091226822120093856571090120560359517151750825396795759252137450971046856874278461533156562667247839641799881986058418382454737638346910988160207702165003165633893767668045759546960057736252706956329625557761224445413256343169877050117914090557626065275784503528145472097812516148929732128591000238902724447673488396541413017423580465194430975532477749062811520495776303701318598374204342676965559773563643341477888254199212791455271779084196556904270473387132658376509106166727783040893047054147578767050980494231458893552000735978598575477864858629417643413275781914477098480975897225994598632733156456933204246163455914296788120293458344036385914745941696460999596010706234842562779641143822106650594397490883492167268885438616049421835790326146802137122267495956500150956001356255116018080552210919350849280591465825259009101126562303089171770671680019892885662975528967961459933780532585980519687983796867657694591951714265001676225835986201376399466482203246274176838031857174487028009118427715551616209169094368310222000319682436474768591103594432923807523943117718972311358900871127742326336340039790669815378380361718620930362407197302032544311087131234305661722374812181856828708179815813343497266727899435203924890457921659542721422195772499759628190327336690270825026234904003575142628174335900821452733533929689877476412586638633822853922357533060416386526920909207599425491240836188807775355076594156881761217801742103251662642062135671534880236697917714879840038975917988923964210838773025268237053450537311257033942370880846477517325126458832407178836878754105708862659893749551327350392269950967610985469221183864927937080084389570056543823903761527466909088470080247240349290692769427389464950764399827926630590410565447255981436183807489150633979577170922103529954942027933662719389104529142754885442295679482480014416865205859051966196589302278009151754452021598196338526839215412215661539069318779049534772338620079056140603205284269785943106133148807572017301836673045377356665850251322901147003619457389678683401937905845997200741083879066271446255843219242388589822030330177081313884769515226554922748334200574470844056289298183138982754842321476142794844140740468184083863489328921459148155083384071402703919110391542948135434895082529126121013404841814360053736365545471269838605228933466687309489538434677742273486310315442514684273462944105731407134605551373816966009529580335556438374862549054009130139486689284651145124996061475594000072118188336269475286998257256514732789372480903408754358673600047092751745254211534190421252040320212020343930010764935564603806212340980093478350868861146203510187976877080700701109548519700660981881186777003696275417533044208254264653967138821712228479145095281771021730865964610280851038914168409921231333462234174372070683811769660073963158465231059190667888802330826514487501120444623380287727916842910835985192820068717115890432593279454138934063782618409264153927073499797874443322469718524405854908896481338245687140048689633430513021165286428876508333366664018134140348800878786912716247997499478549447661561359233131004012419499039762809290691378104318176305961038529759067472242757511500636892051261305292576742631263034083078271131852146651788862352380514250031240881242409231252807988657052540959496854138423071334353498619939088016158994194288918702179954909774013964496909204824489558476424276132365939328522048593630005581459249201748126013508036983779603277238460832230140199594733242599084382979972667994116435744876549765447713249552430540680831505052835233569462969793214198765469088264713962754317559038770154055210764542204799509764652356937064173753403984663128095857737154150502556276888691356691236007881215350809761120556151506386861213500200665695765360774818640144824487145746269588567393732395756558125231869362495447616352333195971690721351937924776883876156402639230869443039682141250844459716678399497920517027327869710149603438631281331021865303360923507123796010835706219695144993760602204253618871386802564713810152821401381338580091674066303960558715428439582922921657221148071493549358088629659965748619050715916642210463323770576214653195431818339533555097076275695843810638180527864696158798393870251981387896243480418277065536674605686262705007656001434017277715521174993828219314562326032268136352597131595802721713688716319364301157774048975315672065449674926570216270080485497128552433091191173600132545524772577667056320937980270916612501566265416942280775549452768942468395932655886699090431921789255076183148886887702116687554516093535577776307380287705192177883171238624485105429184015355473002101262481682065438826700383843390346424622676125419601627795768577827848951962038033291491363830719971826494037298879179682310218607811423128387821878340433639820140555221393737404368351494042720163799891412360371142803386690878513332114918598503486728180402563676150361375782071199256048053752341023542413323964767870666653109956185026073340128852698393615943362582544642351464817499722462279285803270678275474250267525444648784471704419206264456640148726898343133872536248677679362337191316233471751447835408317917860792940513972155090152330819702965067496162207703029907461304231664085405350276012389835108955846380300895450579747109637489790424657621463169108198951748217355662418798043599225215539750498564649085770759977699368322646771959305376093941128403170614762995757859320912708136220011431433075662202600570964811712159302553098670779333849294546138996610468457570744214720108851643011265193296411074887877445267352746779652440682343800541820007622972467468447631528509091798802978603614951503566324840608081764617857525963615523230231615782726178094940844298956826594135081049777254803524433380901695473605766663982099856827838037451735130546900051188349109868345698738196969604194578635730439924503274802689321355236291197453229787329546096271309215902923731936186628594941178481567243537593278593157295222622116575051745865750275296466838081889868399191290764588662139171289225050517790248097633466379580127471272463145212087031835328231578430088545953734980541488016019652257459278069429161373862898086202836732769794937935744322995298919179152067928902203512010917834908223782239300295313113769045305964919633732301810902327682302711846989645689377952647272145075686199934077911239146808929593987079053439058369099426467185249815919114486309203502270773276932599835078730661327805279045836034272004108815803676815377385193714475996417553994430310107863553033312602164452159925365652719185333827729407011169790090251912233219384303143553544552832172614402357426637554586481919136170025143645492263942218607659881189643193126321413750325985378256861252276316838879948209812697125584109221089502763096540503868268421218100882368710673309123091833591131620503378611797160600679551889754418266168159740866330137280015677673980790033849557079229072377206776729341701994638498128789174390230851899776324939718162054091437753116251162966446225510407664450529644515001586910738625061130891693420675734811116619263135420169253788972493326502026199927544022381111449363115659371281085350299245696123359533328021525227574361676878361896163310461390570888834750779821828288743690157228405154101390741474023985125119908035503460982759090860928379712660926160320319680416284395058330059086520532230383181045638614123236789393827881924955487742808643992782026270319968585743620061051349494877893850858015564778132865899043729184588039926288948993277711926773078658238228342741588497897398368228849072215523064368813166805240348137929017826534687410986260977804920907379072408224784333940467920374134996553111437874768546185415217418570166934170942667938683019930344368220292990514415585823973621639820768079734398787679499131879714083183067149818735145343454500692500281018368805361856417299732561118065412953004495464987954039148977868481101369543258442752140552180551892905875358787472151345309086474810921999173835368729901812354721319592352886470755631222943712588398420889559163799768943717891051605875726281623848151800980325480667171204611425023159994135600787691926315677263929341782595866033348448700585771339881969651486347383799286943542198434598040324668233530031904036220553724707938737361930173209324027057941512251904395879202814743450554510664244772411418052985718724431200653764103960541068581175617143965100937378751121339411791422406179632267507424050747036730893487029861989940129897654509589573069704990335669118056581001493111490447406373210510500398925692422387311433043287146158118094264812906336696626691904103004881174149775508321008170220248006421627808636612262427760038244042968324124760122888060511527186463260201609281419658793057412580969973817076506915713779478054451626269215368732452364241032537658502350888235417757302198431754403044964335548305796920621141707776047638249549358560738925970844117526485283513309776582391323880406506909396333551015267920637040412410994676026320254600313673650732513117140525955888995000502615026325126415830828357397420224178019200345986552585186289741526765330731934409561312360723167315343209788123487068570020140378577399732302610966895180882863825994762500350159918408555231407017205788473455087004526047527485091938374048046251945707067624472991441350138514123031880039165001101847522807880363769282200524285428887529793552442936531150878610378515872712788491717600949454593034447186636190253876162186682981164893598587081486536915582995857241597043400893376002641147925034772169229240756342285880401696454931302281379189512349020792102688460881537624676408710030646923433786208646024800071364742165280800371022880128595416221249208227698589571309798046249995888465529273755769590678675054357245828288800874252744243361206033989158118524667057537395914420930889230617425688187209096915250512335547008621915092535326232968502790211344945169659767924590823450372507558424360564228084909446460082918844035681398426668022768963862487187126333755885310982970535417354216368119767682361174972365731654709632075732228851610021702949396513304623045968562699396697363634372764269173914257623266130345148785733164989560535819273264970410759021581990669254596541884225883255648198849185870153886930382149590361373686796161723957488987209240689239125016502181774635303363997756410622612924837669168215694189459244005626114172019292216996728093183218610858201013774092485135549139327714918193288095020980980420252567008319683560286159707145333181551071603276223936817702528198490301385745997672665780691253388935906039650083409728822104841430805837645182188432080136991772137327846873045115712738358122464339662151902619966923440042639030194959365355345117933367605489796888927481599112429940630096074080165525410684264164368820814141548342904567279626825071647161599718237116501408087097388686193011048996122777208786846535624502460971940856822426971869251561906942354353369019657663024679518531808278123868902309511710375358697768072762962351627494448808014372586600718834382391469807421750839448713199302124852306921411681485739876463947915610379928990078277793553217698191619331813367508972647201995644852609915135728787166028394459624931040847643376509697108074666270646979145609029669398523735410090496403202351393311992401510331749049093077713211505368795196555628431653070861813791381137637094568345150769201349796031801233360078208944223035051797633377675428183042171548279488764246892700571794260675436983758998574064475201239415735365799420303912748691426887638565017102614701270259662110954227284007982487298445875825110585447138358944107313385507873498179993573136501428877167362279647966054723200488223384999678733229684157383186974850979349322352381216040614646197979987164756138113930845044787862724791237457775701351841515031879343977818789772104468844806050238842488028880540891829247519489244828987765906346356585016586943953996695360950076134742312266103270803794692871691630404806567077795410650965017592713129540617554054293838568468850424489515036102288109101126166216242151422045022383433984047083619902264280023377675288173227259492684830586325971956003181231636260063709818570139765147097474646245813607270275403477592373322198636979424415256679437717303424374129468890362263241392237606198654242106256343863192678291633603943691741482011444910650992488529143433150468949020234582285185154132116466455636523416662427500414909153879424409110748384533828233586466413253064213959392729486240925469987727965574209390671690563679872862424419073455867859895253424409976188399643696063643259538005163434587760878624302818462422533616710795704896504219118068169661648602832468570189762089341258344771709128210201855809164340203509448496831951879384269366775880484967634978790402230566440681794729406854408864545793258756937095647607488847077105111667922635869213630572083404434173639193881656252518609934428313395260128591091719296163274322752347891619399370963213557464886299029023989411726281345187237244745687843501580126269249363216991686994767665177012186010415811975093224667760402150597079273601719486351204897887653645447492581000332000533893290842322354268856425446361127245872325514280090745367977377570665170476131020546104989007695885953548780446969631660016962520862544093665401459299584154451363173212949274795975915659554585560870303374411635227182145318501213415021137015002768682813697272382302739866306658203945742674005621517525608936336870685738114414143613494989336433944484181590224414167438492249076395492235715461542001078654300006616673437544039083430328891623170390851376011906228764244359096104580731956747363759101032599816957879703763552747407008041203789223485647970450732782770689784824317543075584904140223214642962438990178979766906011379218372664886609954310382406672208353926333686486078969668664799138299732996803140043480112232739153884887669685691804883573503425206219962564324423115047534245255320740941248277606997312135894985578875196814930875043753271923054576850963694326665464572941567400995261966165080198337440318592565818728279175290616707515519549923360883031813693118618205393369213116497562905264044827556558853612490178459584824220758563311736665047153296227696777521543523778877346541063264164659618598648148475957240770279996157728781863810081919877184513895180228795627732687929258845534374464077061978172459207492754725000059925359465041999557607112460388714330227477738957833119030775282873305077903321480659184367878541251012406380171035878517092792837499609349453916756516008864912552810740545644259008366013426501881515189223010653852650633343134315464637561362444419667599767025387282528714238988879781516487427615294212213195457364499546953859742977425697372389857208357251016002291206486128365581722130809491398891294597338737449879772460843834344631799303403619474749000709418693939102053733009942507803649318961792739783404570099807631579013768395931473639798768399110847687646731272679922231293461254900711459485089379414801537506680169737862029753221511706121893813335761187968805151343843250908419340528584437445890909646623262358204508074016331300727769035633221571513831960809236188553275577965952196900974087711105769632422144451724060727869028548894731814598599193567073182706239940156548952582702428881209475127540081943106174731929197743648690541667471978042467010085045721836614625444874857931291009459965950240604336873203710189269314046761781731639666071958004218954021835669607080059496980508038634311823995093974889825905978814055432241381516301275616207856242729535764963737291504814524164437088117883739640870271816048902685102603997784778849038040802721274997427026990911078201327254449658138959626556766955916622043298130174506671160018176550491388986513140874792549085067985539360068316000302053291268885833620359127861979909270671134035642314752368955826610025741632493896491350956514825755324323560210855937799589090095857985528557212835654893223469114873562603848133818785631408294964966241101207188725432079241972494867464867945384016119291720952156942258950465873364290469421445885151436696053366109889307260453566498966212442599418093882118099487231194943716127703002180969323321700477064713101720880944346495674418699012324505957928455899166284475024193254086888702088146903576914323423993425298730912764790414488063117667613983544252245412966667205057401141858480381665108881463879375482112060429018390429833901397634271055742428481435436551060102903294910018477967098619620211965587120625594728245225349998620829222974606443635394622103242235302545413474202438251087145730070092692060723673160971506019940310198676281632221970257197660278360037560943361779460142806634894460832097263225943226229019476162446261538182889393545012240891414433960762945450434644456488340134323930435228695909999529678551295375180389882146578507225822405122389894910649890483271782779961736981728214362593935681857948043079805774888324301213733267418449594047578166849421645150257439791703791370567011563340996480755120335509598424608640474575376805858749540074103123863841745225541136813374823105534955386559801048687789553344189414925949685835295788620829593250409527224252043760495191690660648308859471713923628002528979248097369148759606701955985694286334601594502410444869275614849836238736528847357612454708970784029298557206547852978985868216671429623459831698098407596000639736741801290259305975484094455446017168130720930255047356445021509491437363510120742112802590978713604330146218552439413416149734776711253696995724063637428180708612583528138977017202121730451233011163040918405905294762454627862527722937585099758066165961367642707997008331832281961271216680332197066109363088373750903700367785105973670921711173226997887495307155344840671685622128180002621743108140242000628905929950658008774261849848706554729015185062186351230568881183599888262796865998224155880501856215286394081853728139216301115027127989074695298142803642442502889362586152825778226094280634413535616649007450936165213203566901966313514571856507251618320900579831823550297865359008479259125779925247764013815163455295089389981650120556621473515662590093973586229801764255558395556372877816872208631863666613109396321701407687591693199880910156391497022580194785671853898861723632323326190185710567783568631867806036869629143155979050600039482113948448550207443277476871102989319174237974601197916203359288229642481178366471010613138511190518688640433023050067832020188059905567113139800251219065632321254095204898364124432479417990484847565729849660860188360224069667909746622322222127390197880573904825084009539659225129472067560642068359733065684271350457636864066728495110076997682540483651635270753486114009700808641392249653476050308648719177332427171132264116201085265385856448555433495909954868594746364117641489359564559625399366999905268368870896349055381727313618185791554962575966844256266470614900201428764230819778965328404416547940241882848724863284741444885607451651667371525993220853903899937430515540108848994439324893784323861019154716069528094046143862660332833879180852698668580671639543428110765127133341175886764463832372996367176720052860600683211361565276580710787799465312183379388105360245010008600814552541758892190947125484571951796265137554230520510556258059612405012593060060837478987727886106587354716875094003926200735414209825201906450725187691003315207947795798556124181079165013722739907179275353201585481145765417657333633396324610652364856692444334646521107110476495533956764132348448944966540337581469578156479858274585211938100933530010866203576502560015891569670162050159956896987908521686594701606774514392440068077747793282866222306765611546592991383104172273572163195722232052008929008728765284709920995577887826834779332857729803604706321840051874507490545753894863586458599553062725419782079738174511644496741166119845019438362264684606303953134560902654172335768870200560439296050601936829259963010605068766681670118230969360777918467903130086263402015300368641248624788465314160932661499737022588930338948338191950197731418714627768648751375342896249103935279104880873670254424307194487286783171019633549205100804953219668204956478140506942447400727562349637832836033897907179160239361637964890569147620172580408951853653196598661041078483192499521744621441275319283514897438748817706702905964625529922703793586801519993351333452753713458989843861671089157627897498644265712453919790549873194402280913575517500764052947846772924377195035980292885179535023498229934266133700382767785439462792181563288754926714876096509658523874721669868009223278455080408239376834495963061912392066659530452021087549869247859993504100998393991157783449605330011597453690635179292149424752303477762750202893278688574721983504728812995867299712796470223119206870049433431479341098964169970646560315808220083853806427107440269955571939618736406768765850984411762811006928574350768406533303132190995188540877057409343333526517360892371652541884743796855652806251923199052501039628969966649066933620316101023671000232207538997163989814448938552548538916084393458236821706982458058555859557400770118997675361614224933841730692323623561676034808521982472332467357697545914174303878578845925124890531766912659966569728789551423985668325471795622711875221518090994290005480830753782960490251342992067526228142697758573655219580493971371782546630496542558504164079023938711596028783654196289837384978165202582043291777573264571297159667675336533105515577859403795515091185337770706836856516958885434440612438645346893427572435153310037123176655226141706175050292112253306521226084526186379823861623442646440199604181220005008075359352882047132559344738584058905271150653431807956012236425157059702472210864265912565609587179317724117408953005496378291845394140195118716304808549672249625823215389647719762395660310009748025775070779760545091523458407192907783823957173093188786223657087796357167129449708406859694395566520357580579083483645819022986548956196916241439751069016542145232879288111082410976469033736759185226664502988737716190891767657360383540985764462616846714780566001246402731837096962703136180021294363537716169438219723750976797610699091444280420823532991125697064428096642289663120582196947058246294239236427826259078861970388285525209952441178613041376313887129189065016754932479001647146345835718927192677140341587481096921151444366999961801368870504510537727962504515661066992448692119438162295499028837700987265329929435794170142731317268641324516195608070723329441611535174516913478398912768908364834182180412247892035564313070826354124126875178107767833892277456424547912880385453077968536413485671788044373339699375983785245002114737141062556325234451998707656283619374043827345582761055550202620017306469197812990887980429126033390313476657850547479276790358309281618892933080511874116315944000613587742240537306049985153281848088143810192431657851804202462865748814310706473457143967903121995139150928346943550831575243763353610981960305058372351559686072850188319622714144040611815275412383819102375811877940799658726419269406193400617021431761396841775830946562355095248181487889199355554580097984089925154280560342952390590498028808343116749305549232369181366692965495874651897084083822959293272179806531714914404011901476610662845406073119742688597142020162696913805192781633334178086773123958224414168053143025579751273414362582845733247464037049538478666582069696524378179311244222631343649120078320634470686109158365758676688135762814088128378688790005951342548092769280320929095199143007543211166210854200094552025853880681650200947526383518594627340980278610073052901998467363932680360387820568793181146072116172872366792832228588614801756431165228704454525988422282445305228116820499587940576227341874835001797585511527286925881686609401116937280713600134857146008266405468292402239347378366254759669879566060882830446564909526587186363088069363130933908429881177810777348840556299290277669253831105990850435181896077413660673559983868951767252449107240262358320545419986945481202716162469248493435368429201912732211231175511104063467004285623698905317882372385945557200303957418699498351779113293010821217528056052971876049867197013897702537659635584684223350813764127614651271720255593532977586955788199380972860845212450236876441426418827362178665460269485013518762363822841914916917402526639081304487459725917181223849348655160269435935520621444299201163395458970013873636577325840593582738012446547650602511689952436427394379011837123938312636913988996294702517586370424398641414130096211159162038766792890406766257249469000992376940404449128212144534267852317998958449969465332904124644474380852542899139044358469247855751228963480614570454459740401698475168498859518250413137581920369643712171740232051026425982339944439683527305918294436247202219090541504400890209312528841032299874567296623649603843249454360812043716844061704313959576512789617825398234560004693682200252442094640786453094148982443763520687012395092899771953007940056154078221471138698597966884683433970109533971601700605670873167302143087203264719215687944279624598788678069819802357217098437073210811557760379217144018753774077958691618559347463783468735522055729142460765013431742122391427025409252602697396723453091688606327406049347014376246515656197086100477717236120214933249206865446054712107160643393933584115377166461009367698878666342346527574167695150808603042037021275415425747188074451756264944535419184725871565855009166399931360537937199064941661181339503000848443164407079063519096984804463726173649527063443499899096455883243116553139809411946898855339719517592574560140759050662841637936706496069545884989103458893652466881391779308153006614552492433877258743911739214232534652949808179783072926508677486412467150613568590680463990086291804815945432743832371465269208954500188561177052605519053009136877796871755697275795850661918774697850092606411133932506748821806580102004404507234949956454943457193803541316417578883322997342671434343578603033291770641719260965087668327203619937424691567503884857130366314143619261375938371705170008062431675115600004488264692859965247129440998804106145017939011240321413671922416515440458724319980343301459734133398257236215403909893488035881378629196703009808652134743378983965716105465150180339100150132566045353584944902244126814308298160991607516969296541541705585163519702131114140961195382729019672844061441470270365145760798391534359115838790366640774880526967885489333984300543001236828707977563991933653172779526429757036321613585068750565065886119104944913008323076416756867533017877119833861244353684720847256609161661473969949729206287568661654470824849991716698607952091438297972155740709706599051540384753839959226871537655858569470876189931495491154025267072149806141216893404563879187314711673340512511134878234193500515995671264917828083439381173305334913414745012613285412229874193076763178301616634927421051406284455833215589732261267290196270326273013410370381063367270775691235801613581793439264760202915541476772959386021965359778905279407594839930514955053062031004904952747918034567142526025940897288600997802162709511531391251653100687944865767628728032774555213954621265953851837216071542290702150511529282914666824779023290642098040974183495525544451975003978084299891075511631311928154938092708749844598155919238084163940786668466035826513310182141910681380512722991410337768856120651040505652004410181263883909787618763295866230693586364965609164241152387852626969251742459665289410346401188645935721652889600968527405598687031365230784775844975435280766664370135793860037190357793527656264091687700331181087174505248726620230441518817850268496449030926107792237395222510851150758476380924028484301212844756739249727095097577989565061599687749121508768292528560524150916558231585591433465611883939994809686410654634061666118938430845697705921030579332702439861208129536302913759005769388961421593822066285742553827452029300295927383354311448350029921555102031095149211392698737737977724478413372136480128746658466363961825161923476742727917847765496183259825087229283412722470037554591658000323771010748305334263193718413881732765932721378884377716843505434024409976970842084470658154249108536800793724369628416958336827900908001026553216184525910134977749889853402378688630426417436138484641178949506269110856831409028329878527082285323727977275222508426857894683582245827753430296781034972597404436091655247687484259668941458665975009561554620431447114883659755740300803447522349665342534109448692456947772689066590204333388784782187714799033324587915197941324099718385200724612322690132439795560189265163051924663770590839815557442095513806642870137348855066548887986921581455494161527541658373739132257932452302294280300154824762452564339244690263256639967364599104740499610280443869131770343765119986593974848453779230000618962383023266709087966127235055378129009097884374505597360753046891561509002702837547727052885818613772113263553590381068559906857235685949732888335014712970481777752346967398415953072275162074648256901365690984750137601605915332477449596609949154124508688060552884021350374943792860449996690591245552427781069834245925772900049205678693235703725292149940296182101705650656948506200104785832385968455789320974903278933247731173138493691817166953858356025857142770964666557122145217724672626596878634315640509042108793258643211197292677279558703418995884308145826966568907314004800261095226354058522886025366101918260601783098926967335659618898872404676461787645874802113935015065335885995495124881799279695987190354857595722025387926823677427768394315843481133197631268698261317673473691308819406756487101558912563322672127523521264743845063354115095146306465342452154124687535488425144240751028409303512348813774094492619714686534562717708031667313212247396474179181467952584072672707231693360766867787130291747034045263982105048409661607471258358938457096798952345333804161389213175282176569718524144029160474081486433621299996103925780814241129730979801423129468667707985383866566820908444728020158770028483518782945300065600610609384844089127725200151708638299431157922346115633097697438665082840086341036211535647171997016731802290238601340569253879059327191222469395023059062035475056972498506392997145344883440917435497329241310300779210231634909111283669790573969330547962759261838233881088154103955435001570159426506234683873067543712849187863061610388664384095617353318956273986523955829594277893502174829156050208487060345947004627963625504884810919017740226444306093180621615427832852637643608716317606572670278300793063059689408904823247516508627664758973533873656700648067849419627388843547922939417497013060389040675114109214724960169020282259223044136686709976951744508063624039479047920586555637075531302262526164181972775171629542826345116475334955040822664825392668315953662356359238702832905992561263980949899632753560466256401629053978356491191347794832253818493128707555764787587755483326056330765420791338097501359083420826387657237038284811669449812008341901545180657287540066925879301757841104691738536156165256913212408988005057689270965145337481048709075113694680664087775505932565740518337376295437985455851870181620013187257950599059331029581323375637139757266446593039775204524571216670708999278558752365418383565452278937653292939208734958044916576861863445884032773037020475922899142485169516577393096061486253965204190165303239450137609466484762019866234116415277641255362279673576889746028585121705901393613325378073329735969651085224657029874077655408287623437193350486437708945940347044287882982978704977998856241116170310784637875530567750159470670861731082420829191727953749032426009908407642963924785743617236900742332425929168453599559873419862588693528183528080876963610838718429873448818940716771853072081735224758834033418740834647692077441808271644817867582211524265863054137085059487310308209575158009532435880848510912812360105077946560993529795603988861187936044000236255337481375750573147143672072161855071295916783788986758748070989564644978732749705711069180348506809092459524177314301375364506630409647466617593832634902784995148254230257383897441960135296863661480296716843376402186948913361667886731269695412009773467940807093030981916200838113782546896688587533476062234524651516341342637250074597777942002677287550624756287817580441129424060572252950817203440076494392521398671190602072402625201019053796806258013241775331372250833041893877203050141371983024562410697927480449879568246537004348418845502855386606732871329299546540027965224105203740491290558783807478912740165931340886052905678416457842023293682003259926234330223228821113838132401185740312848633813260671720209782280237049804488203261959300356422768860230763039373244540067127424062937833784512789992440030426821140630541310897565637656868042203640508921074368452468724228377324717342050258383312610109901016847329765339710939434425592130398017711053390372102449119216668307991583555241110123307119378307213375204081014381231172903866401774123000789714413735724543594101848165344068163358961153631530001054666696921639818276004937904061945962238767528941286473101691027611056649244554849392636903785756524816677311158973372471222790924501419474378425202300431353601513844748143877312050209614094403862280609523330193176417022823649228684905939639841244309530449807656855533837668017512246694396640640623576749971775922596612284153340501619459101162860311251856723778951507500326625623160880714242777431782672197904777854880475010074130327059863731021765146185642319669022708641701838081755868656758924360602117109471476841529290086826914670116247699567394913909788025249667602559865349125469677773739424671648543355536004879214394674522211250597888520168127600339911330957250268703852652725152171565308205818209799468802580141162075148665112524138718381419780533433201358203405136872710320614206259730745192807447801158700699404741007692163264910936320704678102990759852434300399550588084780225648930716858906227695063541546468260156767642156909074911915663781246011632238444900515737438275140501263145334770414143740012961973754805649741411838459629440824502238686008703306041329852020469701176296936603006310536815053411722301767959862562337530748347816958899063993357262575668343601684388068783466566419151582412845927920201081172225334645920079962301307038535408162291065016405777305351036722053780852559840356788865120437853508110432478886429731772251498119805558761877970095737278131207085838281162715868271005711164662561320557883983124896699198621730924984299993287384609126985800720849379313323030464926087073174490393280044551683329636391640634912024292612908183065835513124080643145792500603756362728422724151341765634107098899380866127829385129497949490723214525274185739944299361194168786674621399761675951319794812910536849181153163453438263006184630778506407702245521511126814949420780518807032179467939091797521014338600027856069521165584559872067616278268933329797915159983114626802124380636051605824477123478012070167490233100156018413468054693637040183424380644840769684036478680534146746990330841931776714563215128397527489660227832778762208968956656559351868200481584025690642778271673683959186626449541205111285515239183247580087071100093149269566656997943547211716187633174064625754382606498636313842613665650282462753941717786557417387199962292030983710707368460653230601058359149794611344770499701400393080253819742191528324694005632006809811272638685630032116086827875599748541243343425301821382034506421257926361204631610912765766817975324787258115560459379761214509273517106266852607909619212518040866768055193856574962860264345797519016549922316957286317695968568400573167933647206984300093005420209560506998269231951590373031071032079476597861527726095032298470841827506240478377447472128349158428413589012257921960160476306550296315500927454953754909447106462201286005264536541724141335049263452084123387799396363956761003967416642127442028023197183078906099760276147270544559372616304287456965875615451911043438841623298009565843528329944206841678669308452067589896764420413699120855548263334253454708480108237337510078511176000537683807186062791490982016574384993067409078837339432736253672066865778375095688941706952738282125492776654556703400941514685518547824258955442149665103512622118829602634589603656794499254006393176352880740913105460988793144178327275156328445017907951388925208016844395130099973135461567478351428399961515939942233462153492499650972138256957740146537136366748390191848062879827925729037371057321922186593313425679252413183181440586277873777640688145074502087240204127820139104733556914563950572265524232221728353903531081518980039330109380312539238716920776670692944290808087160471500317918241133799491010949473840573336144349382720178644396910156411745700826650672886072805084048882596769391446127134170553951394868402060458277117084806365418225257389192135540662005617451429607566519064337555239875468135721035168246477551692253127315627492440220483513387073375150006950378944007082056006158500188737084470728452681732687707160679445489213841649454750851092996957274692387232635466052441800267173786336969379318203666194784181579961803823879657592718132314588953680878506776859082617502500978705632243742384038856875730046238167676381487824981183624051253345166653445487513083424665943226026918938469531366632239882648393863325586560511736327842883900303169846875553739109490724407260177403333770774673131001180630605041623162409274481606907788084025095494784839838335161946148091789518799958370524714385923868516999148474863074594848491399045878070476779289153941371573774946713900778919901058020038394819540222345585374685603391635937183673961425938233134413995281755452405595000312160416349725450157293061159442574049618279647689198712215953268995848590073473520290180309274613602115575082711201241924945694403002340724261224561526401883266317863416436394324812690381891878146044486316127914869326845063744103655843882550078868564974824437095957304757203019545803334113454973784313181948038617667038268917490766842667130934667174781585651019992844721211161664080561799870107654359045893520947016725952573691826215498711897687986754512060295756934634523994595382736400547936092391801591382382334778462591734278327215028902055106795073758658119159942996600467449038152347164681196803483934124418156998274506150745475841673031588162977948898894432240281448360191219699080506404810666293528665401740153089071829645889679013045145794859319291549883907723976600985354635051095512299214328549518415166704291034790210507841283696826871360708659532657843312121039978147918116626089042341453881799279732206684511692895209837840355506903455230549063999632805826870115433644567619354595149865259654754919380153457220413415379769141671511161800315593381804700583383187509150203636255273438474300511290551501368020922640180368856026206065446318060802442283073129668240992415002869216724693721334855641358458579336928769415327950820708746033791050295231099882495714438930072377260063868819613105627877479588275548748036383210939789708543915870540289895293086747514057832575200797550748026892859555933830229752982897463069076890707031275281613703271714663706903448770058037282263954356103420329480504483597235547678597892887720288648474752679290373014338174987755103818007205451660728480595315010832897635016568705970487376776584407988128209116222696097770057911819101878333784249225138351428838205235070224094070039930118877566550585553662129698068021557697019068245633682476394587604160777107020226658117022787540044551007658717812475621389774897648873901445607824121093521754476897920730084361585990701856636408898757665369027560583973173279375496181121493183462011285015386133887918155996418853066161652387809542159020173636020739285741704963312089168092434254032431148192667662652019794066143071171364023379414543984674644428052551463187764017503222627694557452979741311146125132782273125856747369715400625652177670728830048239747322498863441639459478672035205806927829297253321631035926811630110828742369681078526322981338116434310560499464409413251674500313018947924662102216595451284838301654076920779961816722821527425347314571826560585411776894707536340708081182471898402310917116791872156750966590119365186071424039554412272243761692517193810391781857651295907359403367623663915597177712544946157964987787389869679013150768988476645252990062403021018946618340216824867380545104269717065177953017360829483260047356758491596188185354826150138148427417979968379543796367406819008582682971266331528299316835608869651599105472440565227027419428013534395985802395945222242815761258805222546868538619996246647691348566121586381145739509817364931608146508902864025626696471109149619085841564966525530546880147484512301092807842873637165508018043869794815172820669295333809735243976172656715285433160663035976098449866438322224123968545064191476854816640875485686914236594973778399794138943773771068155755408477044335281412993753186467498051207687925592317130101030221175902945801643767452602519475801000631739378477073042675187283595692992363261540436519445322848037673956192235810811403196865027957553238523825573781668402043721545228561772748246585049055967006420802564812717162113918782814091783157234581095591903656631003875201636353613400572892800155760908158133019185761526025582725788098473507116345062994258755754952968354307109835904057097463975422492383799726428058643133430606383471270427114237801806088451245711955510320083525106972573093079897043510539558237151770474121650500520495582180617338996449234081878323107437949619031148370905216718703021580341152860635098667895871141146165398097759849783158136435109104297599113578012806991487239870912090211872142891871348126406801126371029383481576080820655094013841020569112719164552501874999799584624504341396966843649687621897522014610486107113148599105332055095199561393554767936133971320358540113896719313371744863689570192049314237607891415227263847844341215447312708393503060424807621965348724444422290412978049234501581928594840333860964441678636001556655722340136337104719489056441780196906079322752722089145142176662661169769509073423304765079834095608456532622655788059595581268348021508100803620880043249952779020014115009479618685961092271820285030069088759214272974435986132200343322489071703970306616827272985709525477297916753679291260768923677380148176503724278154827743489108839146052626787708344605509214235582969543935302713250062859884124829413006819461731789967445940042091174464557856817155716574397400441872471058211562952227092113797705484631238343769932520102295094778719289378609909360733468875732334931222166619281081431017994032908504066779880508419139752634362581366726477899710886522528752449830940026235766026610753608075762058309223366704916291140381323659139029812233364963067574739121859600861842117634470566387867511263895230870104002725173696584514483297010265679088134192302326493762381716703850213070174033248785497100332342816663624114621257467312547591634516722960974779834741279968999731575109632412313429744665412788399227450748715885962136731501256548040323061004006787745282011398375374976102236163683041557602081838467198653112845397617186573167562851144942882700148190919042838346080671953194480245350667141251611866280662650826439775476645513333248543315654893615585523767024072601668955413416651028492542705266544207308746772558194222850231813584374172410957582562533000095851698512044700052821773316178912465557076480797685143482140440682044985105750422816099103232761525436860630441924130441154289895690351223677327601757533922240293564391693282754102883836196484974080062432498067526711160739727957659580930134656482550120297593049452940407355877234177804923836072982428494595158362376547208178326600958530964987873822251176800434400804497307046787039212313696011766856007621079885354280333168818663978625452296222861284781479428271721398427870856373190903855182921991236120804344828493121431264165231766826905410377299773078056906841720121481341102598433633703837188259820393027156251547726392301707761006468403160250841454989420200465987563541260524996168889110312919871592752395400216950568187934333593055700283513246163183525166251083722118962817160197003343179020761854256783522195006806708057599831483220475634478072555723262735481229603948136431001602065430498410448860946620081552913302663766317354783642055081212127856909693915069339588583605812456552835882086965918491441341290122280341673751812719451913789895858877754510298655730678925908748616471384737590368896868467410786196142296573727906417271253240445171593538006790602751116362832148388845879914078101038248980942734091590268314758366230468062883493326895515072514756657584514101695183487217653230023192047262700851935475242638816746209293751306741990784604308015519054362706183164834697508246615292369345376104675121014383789051545498633360992301474273504258786144516170674280139146451521196157666296280977752912989177049783870349137317036676061551442407419011939422286721242735206429537790957042775591516919461981263190695944601673612507998923202410875386837807695634667769007169590187387162937821644045558522488053594807529510056097104169278971639375335622225269530263260014232069696638849631242572027585673415871507470889952839783833092722147534616927463121399633315919637543573956208297255885593513006717559815134706244372689634682858270513555877372848808489816905230708682660185229478592014121587468600533481899964811326889509700010525078865350287732605841635550405613031469654398573130055622837724636482673282385219068027072289949065609917738176617176342838610415283685888381352503068050713370090104651351921756427702837511711599120337825566550350092320507097680720473972556629198984727761412836461534089230409775140782339545622033458582930174159998775382984727493385935813972811219286085157793516630279637961791487323470317355984291513870763495600252567474075466014962117349292024228826637026863986798622200770018615136571802415461376814619034712458337161310821115158731707902576638275643424899072782089189352939066725875876375937175264903322342923925290654492085631636620527992409541526572412664345344494204876789854691231400038416589784984002072231667911967170321194445199751009216972621204682300592018692933452083137020095439338673860113658795624311780305849582274056631084179890301998460290600131797013576979966930054143860849594293491838948744785868523335035287117190669737158514387032283261916617868316679874867528774641093015186674398378034295782493466243208444801302797560777295516003197506006918690149084075278298775893971961941256736584135127632977763104859209637147874144992039338758777854824978175801458198197422306272204121888275708003878559797262040870697148216330175176437059106275481578870981166360318947777529047947972901844981579705999241439946774535289604050632845293915494595970290860837830978264572993801327177425937910600063527907974859507146931479409221392833325014682721755185839210460163628347919491828775045540001544103369094257024712729999816287986502888060356650640500183298453416110491503542413838043986019755476487103871038813797074991181896618861881040485642455471537106579039980799538757842598726251087351854982212523124123864827330458259549964377163731680100716377339629554321614622902933613380935593106230530497022856208085027106961981313272262097231462701327765120042300263768050294286360213946325622191909698044982945738007010605606356842333174838143692733449153513635715356997650114831934760345590094315029454722907258264334805918667567670121169983886224074185895645564609943099785812547846231834191587431429513385418935734714757418052513919631769340522212635899525888619113987624248697593851161637612161503358815208927705713125892290613938024258817414645835840945852215340466467718112107809769997722039265003596306783142330657813509319450660855638338751348115794496652201751395175326796209456927757521482208896547529008318731270327946393819330901734905118278871502838349074066003471923464773097113648453301820551947642341494546976054998469402839834422586987121956395360651133099667778815283831742028564909170104001002019842211191810901207977176354615804573360432586838322552362187895748070296310970638647993888705567917166270353474710256064153725301029369051029130433854630097533925574134739951132779828921056351440520228438309822588678559019835545239239022301193928109712019072073839911034045880951079032502667978706897095854505817462971352411735068440644099557692284920532992142359710803798909956747710262251360049768798364135521344417861456060632000675413613830223206954241616997426794443616157995157761372720587784275906600899124074448739283077409720160452531125453785045699923290416897894883484016933767551520406361447987134301398425565893034917856899389204081760575637588423759567214852820084156416088033696976145643817474576540093784285844426684884581270271343842988823145246106348841738550970264946761112999793647966604146372344777519444084870629607089448374145002325153470563123333028441147821033172004907328709357309961552575962672231766206685874111130856759638858838665296259569541346823724731074795327531196681307467827843086386230215052053129459078619293828560149954971030415776010953636682249510539651652212164757333448700105403214788587175132437384682799100790949370915084674433223756391623318669135094754133829572344756003991469489753638359968725969332223367016073536674745617202897059699597528568227336531675634147132120053558888527583287724526000481514127086374056957270066655776887611355077396856985022094986578675903452960464047828456325157831232201615029348353326985565146238009013010022326919633023863955196633186614760289876810998055060348833066661074195080232671811675070800668001592337289836341895829860676973101041027880072267315430363128032696733823537482202414743061388308077110006059433290135743875200094707134918163558574372182913384669508270165437857943423566728593999620394049036055515800670050294838924323461211207397024431956898641949247906758701618318790113898472031002191916362664629739731017853049906652870927550622931454459067539180577990690150021238107204651762121182673660412539151130911757334654644928544601654788277219217534015819316600632975896735145082644167871600235372204266874843733189989060343481169095664435673934856852108618517416011543794010170019273652535412906199983138404483268308156970616111913532822573124563218150939880352147439768729233869265687752891366922251189104893355047593512183690105735605735719835724750464044028707127474177347077998004852117081907534356520094483115124056189256389085971991254872499955640945607245722428306767858319968896744287746032590030680800073004520655765001558302645407503476847411840626640462435988942506502516215911574076085173630166753767248688838502872738464337558626129692932657393902438460383936724440341775507824019745115178211334602197572612932912595429829008467988417241953461639026615983392563628564509831770788109148920118675484982985356266254149003529398847449217274729179437024417778772818290086456678872335661961011971958341308318225174276559759131353565000988567805986788643846031206658265326899195781402458779135831212382075179161059698703616105283442637951753679155080515296876562611897315510555863441907198036278343781425938753513543184621937347495151296671573179181840857295009467677042311388127149503573096076253124136512516332955223113240113739924132595999626535523011668858050469931124965463712682801747014862700789447186004359388229727632400029315952306198654100600099612153093311158720551227182017131876390270727112562268073794458815815475024696316421691322073363173715017051066126522585943584143271137584608506634324375916911859944024138385602788518601630285610211676233965162911382814828301036200967075255570489210395531530826437442160426450949484379803302740149479182610033802263333129652431176571678348805358138193807874554794205293377287447988589850749469640922920236766165177066979583670111359593843890072422004425428499828360527175362537589179110223313665102982780254388319424273527566075730676249406621083782581915759316335496162925139178720245258359563489677221985804132986098888340399831880212973647568711776941334321512371452587878223691468383618234296628978823817813788098602182869734421383842727250272719289684685309132942209447707877041497352968350567112563488349110792184162905803873640544673646786753545909070825591956838465619260002707577639924641497975124469007766542536716483565910709595496824992357454088957365146080045011286904957649364235654320134462640121678586086409546756305282893290855384326276874669867080007035509780352354617159138308851645223859115649766783218748038888359128959283714233646597733114604501842127426671555752678512225686094056720996636886814656934066329287134714085004431911481892729280188675535823396958666734600937101208807546245692446556491408457409399645241539233441142927558528311479406633860766359462310599988479165995360731994377378337527686028473061364466409894484482077044588344450710260933731739778219135066255223752327844238088284570911225026628243555565847212866565364709799459096668877445290482678358480167069089855816934214892377226466692022231637360989536219424131975024404694863759544469355076703158171214282073304737750807622586065882861781360177997602386440843121449271576868581682069579876310340410237239593789381876610597983169487977347064670923666530975977736840936082884313483778267726986848657440630473984490204856790225511617304358473508973301002422351733087904648552105795644811683742836125616821000728120001898127635092393378717804285353016589918708815054176321929660659743696563636769549238364167953673225617732892363262493537195148115487966990415929448193468828915740230424196588168339938345720744312074632345712762176283761804925366193528199357345037313571585959263373157903963789489261480433674808687247219674538702970220081261150641594927875197396071186323842333778124925766932725797998268403227756567774845755293006431471512593968800761393852207135436141415151596703106725465775225387292964967884816751187376521859453581560828674020102006717460108895990347565549264117515189420869528005043463970604735879217696024512245938572852458888647731791434024983290254445960326826656898144368901163775257417327252499689884733672387536674277107506490980269990659595476491433793494427509651989799299520024673382456171213888343023659223210606972370317035318768529337651880082178798327825173658215638126682188717525224345920310902581398532250262666272413218508321849203679978252432893743908334812156934107262122175301707449522302592143812482733999454389673156111552655582008985304054708945549086541056777168852938592688676274454502890338798911800132553494427475256310876670513203658831530846407607154432256355196560908967537247068422964096291919228977598715674121402517463378075042955365521655949771465502602919176241020990411873930093542169541416362305248910532504715862810937823431742498083159688064789594611302198570192831849077780741768323275115091505405439704237717713564419996861584991796142416095334682453996524690382097840861248803586539919374747049547860731753641865663003754576191731547642333938462480593844382132838464295022582887439119088804734907498500056950551824334711009227582903344462950771631129512525657009698121389707523017861430114424463597768928837775458151895795390654751971271735832441884924248949765902163353270505204748160671795489110432661456279560935456650225254267736543592474681233888701181077577669310437332164681127045402816883432351957100501876278593425449536558652935575386022190140580812348926083594519963108808081655928825555109465004354071012833799455023502929136374677544247710502010493655340801203618239414331035218141095454880721043154431443219107849890317113689612209877567826045265388375693868538530504780893045079262037011730211608133838252604600781649940912155324246730285630305021765555538669878190103706278384992389614015687742380890926406710194063428205530344266504909547732004511972468446930118639777960608890866617102628173789655630746781868364509251138787716922763811097222147311963783001066107232543516041502873362501552794623693227954253637737427614299232486231832791886842562697312011897765963243346441146473788239653644736554942351897349775629213860150765229152093573128076724978435333540831657256724806628428771015077968714000078333242870257162193701863232603381894142302201476096689014695101325266429486304973867273985220828044911460249632887615028865958120205716669908401036644040246981433828614949883179648883524207011875984947175067550785629143665555952622340761729899006286749950160304343788923529358666226101857192941556325507444673021078943649971503907746486737604512644972721175971414001220854084560016013957255355064826859105597762518292820518873831394227567456082230688817825015447270189067684526372694904475206481502093881525969132654509442983931946395623793006620705118820450691772242019348951361886258826653499953143807995876530716159140654094860893845879988522314682635403901412675994883715372870377758730042594200489611901709963306384199681280730435195582429895962541393270045265503945557122460243413141478313448203379048030440371853038544566576550451031137862536894221275822985892071929686711637009223833806952058914980151810197078406036615707233332350053398343089556049578989960482639948527144356668571512761155445965121576033807504907893122098976885282023727046678975737222142777803817072923214445820706873792185321113962198303551402400792052267301600393317834029905576425826192228440877802279195797899499657053023094972318075064790259608967112669594417648813239143708910646364717564490433646297208689399628496282747450882058230541624516909459345652075942671617122352626337933498979880774481735046748127565241052073881207537441078302888003267358630761739994931545455603091436568402420060234219043122351832187982591358620828505199024028568117679083842246590776200283183007885645534812143239585052918034247287456168360063812469761449713116750364998801790106272473431283383754221585876703902067637741849029543242621355676862441915710555839560266746007225958302677734092157212626867095321421207714869814223996662985364279307319987425986514129276331041352999142360098056376393037974056431280053191326606857148676595015840029386297776105856454862391192765477324785061232382478424729065010026736573812189293831691300683113592665178465169521518683483859438134176320557062560939811489879726518935646092774905115051255116659255272195685300029550625630142906623134233119207616096052035763664944918854676533472712700859656381945537715395735652182030351775331532532814578779302613943421267417498058452151521359536567611499324838198045900358244611638036114641288276666547197705152957793518761500382546950330912068657346756005850810805999113306706298252756442543009399678093854667543963377464979039929548256838168832048532016776613499163851379477728364539675358011230286440531689864420553774515707381672545824009776844937190236954501596735745153927561800186592791297313946796915338063600712215772251202644111914919307665533189719094448613385310825005855573035552389696871775205539982217692445732721190428305689386329793861749930491211749730840868337296937668033288831046924403648776456979454676256168862908098068651490240412493288089292024723591065501854684526258918356852834343132782728052872205677916655570895107973630263989123707077202072681773402976527842775171199483061063394361170359640056349952397841127411575627288429639737684485340339789271070495031817152271471189897849047605641011888472174501146247217244572351357272195601885118779777655644693146591453465793503594141187555700892518976479352162277856581365804734338777687514961214588003763413901139102522271563038289824565540990051087155068817463015542271658813524185231792759619190043925001258855413823502558339448931748911121232593775362039019404127018849821758021722569335047286110449696163840473889940095796437587223883246314530031977842109814353438585098852687853318977119531477569775426355781285579271971910000987766031526829214079936295628080613958384193678540524142275068168433090760624184301001713806028040179466483926740946441363855004584555935516033434425462934887990421631224487687664306692971916313370674392764029457351734239538418249132881744268713456572670988244383326242013294614393164062555417245640313771237154967532780873027091771496425735506869064306082448387276704145970982364988278224093496851642012375694324943437083210697368380475192335854205305158184904732146480264287053452372419258446470039321879493538517938732626751821457821170782627378336094393979684306314997892340778537871891265980247994163869919825911059963085276995474962730686361413819239511327829634711897997424966352105049543173177332405204522696966128405684578737366139093885941047475526534556986580030356456119661033088374758005898318731752217837669624440659642707789418360230029288775021713157655037790749004138756631036192229478851411324106336210075625282312876272778986558832303101718863243106155983113115707639384557640374101760194704808315379175317464559978668969928049688925612410427843350107161009975223550810840306351390565073961699023162010632909278676076712822241905331764101845869232168916228328149368313908906208406012275439876342393284248049007691860298310929330826326030007458545439522738073576012147739187275576269209955133983752278415420623284807114145540105326947204039038648609124607696854036580585355255624374431512438278267521156242581863632287112496713837230099240456038342312986797288003396896663485703555492386549872051712461138291499712495342075177617439447399045542761862980337700032043740622893369004934301142756992901314956186456178994838851890326165056526748674963210242569118944106414600205600879650104189400878938255955775452248105065980816508349342390693268806964523824843306392496636698762332541344027429660345678518942249938362831447107303590899093534760272069527499720268616574646578747708599900026875781849970971737086845684327414636267822875751844312148575829180143903307135733144329461231547279032209620021387831778436557612480477705704722575846208043486477045208957412106519870595697382380083742317020304837559957143624088639172530387614189212155336653114419661233130265108912179169423052584843892370513499475186837534610463023265198202043808396548214729646133720725022369916396993913549210849132690194423209450115877933461002754916666774546833582997515797561130522450654657415259344698862708953445092440818316372677699582401525382222707389267851782470443373754021431622233326618353627548623277495369179709770961331366325058971532759510589736870259291105948844274647426912688812165676624148087630109367545882292772689489022986420123382614530899685488348367755392192666481690271085415167423798653135453942178356294666834638778314071158020446167356994976381273206634365268762172575261033149956544529476952419395867662638709936472230758336986933632984779579031623597743846948055914352559734732220514402548277342615475729259839038674701325582724446804589174516115366695389647990740174742949619737650285004393025237001127421481319802004038020989276378651024437194486082791625421074542449361081361808133273613413721463539521013178358420305328202785869857934241664846009167024640048531695347205730433275422431256523181364643211964032929610279687871922634786514628229309313492698010912511653466334291473601520157610955211892762098844510369637656199525915022722831966483684808901605588779946918840727423734810540096768849387737088472168888402497667649586006544087021018873326794589458280656173325184114458457321833523194759618789395486286446907801574283653625413485293779377165024106007164729626679998273045497726612529152464139534818677928289400937088005339251016084206753242959527957000587754621326137319852871995422977580253401030390790579372460829787162413529740638001840525062884488297837065193992635341092716930541809020187670466284291976610545851354709935885025640141612356430050064967810239990723697846187536566092152952849638540160163278047440458011058584559760123086087371439302373491236597756078288652707579231638893659513513708475553819921378307035629269325184779320008349620194826452893883896645573753841968319977498307707367567629847052085166421513002509766609783249403194742723621655021752645970206510479173406378016992918460134648171709944745052369793955572787342102346384049730725135987330582147968618689667516407948225017933043364550032129121690400459034747429925469417994449750390057181704020805326408899402507683414875628749300385627578211425441806295980510155111227783481617589033109645882531960756841230225071898246492963351638977845329872592610665991720312145312969609720006474101854776421580159316090721408220990257149872544886443669593870350376535155858578188612975495274363060520158167924797119516344581908767523351977762046620269052654873495639306202584232514633897105585699276743013589594189124904182419048905855380253162654413300352900037353803452479123374012177027861966683044006059060522679231256696170309737713634912866755275859240365091514597823707302881146909633099393886238643215642902217863294647370196444188153421044474572818202640777716771046445721018157137352624490248178532170184388685040243650113646505928234783478994445696021783323356662615858753950785605275787396451238492500962072228824440095282949834863882004637285852800198416791402462942399448688860634849815697540866426629316595866171700640017092945923783198493759344983718139332919215696027404409487707253300492201408845905929998563443179216878443910976085957026604742894730922905326287688199248097985373293733151693486622112764507226117056366505175338621401934807821214705360222468186004151814386776163086923717140144205091278934575209101739582261556120973094269737207448390110719244087016407696751406516747723071132472422709962812901693942238767048898124220639655444863059989619972662669532980545704739755237542691297759319519551647881840051782891240226331643483615095678697791345023384184870353952288606250668580234780773344010807000196969882135860312515942492443104411599563331143199530991583151925166491288906328068809423635579888096464992394730433915056091001659170681141091027691876074077801705877900056731517906604971166671548366866728113875649727895071576308570362543133877116731620344594928801828104866743627762434314447068244742969237516493345625552735454495933115744165901473538373268576455158650134310893355528030489609716157656657067858308856945731124696262363145640418715048187395611005531402657814954275861533021706168529622319022960909059406789799215023969933267801215373187891198129338916656496788153532823285206937707630257269379311307166136096259146261223927871994713488596090947906502470744543771025166753818114727589935614890755658259917104318553659310685147138798992350783113734508942448433576202241415897790477730436612593526630025491489849410357750588025625302120075146682104580997827212587775886601270980469090688587390739511140279498328789048973492750389263505625728420905399156023920220356299911852875051593892858121803170181026935329367096638486701527506671285819191152908680861502723842055578446770477576702670727090841225214062160626882145692180110693488589809982200257136385798110617926286199174956250902006126923767885648661380747918108213858517600032573692338509507219613777573660809826851312094007647476713022468934715243257213226384065808157364532934691637714521656750431586354646861274242096039763673836309414928523089860109394227262552946516698379167917138202838265571133580049885200809138309040849830831743294663423029422811944368770831043084595797883732027383098809638435463944228116507787657607896434318001727414776391461950450604893887716445857287796932984488115566373951530140639273881309140474684311675310985091503776092044082620543378954631590016730230886618313256255936583567554066950685724258885537160304814262984339169598380737689077700134714271725985825671616565461174799492849908188453764708509413659668461653840699125360111097927377250326030264102419504860207479760947512666423379369399270356050582073341451208097457306977034545115625232851070184772854238544429353345689967712755938728069943440853118534859481361216480754976161699367876201674691068956103346972508763865944794811359357616366307427038748271899775774138020057864245305440619805637875919731150051137537173671523351587589569120421429777597959601480452422155037584561331157877561545547707811284541789061417963084271284278268626246171895811884376416355815941423163448737406469084603349308851586682912854992266445396066413247546188718025773558693051586063509130871039905883713571821097625079990342490941319900150679517696976762607044061330723891646586103701087927554210398971020913887426163051089049524621631622931592463641111576790904304928394529828240732196864186205327232998136040176313817939861385534762875946116265095192421381509559998296994736352168722885357699787107124099693334059972542990027093646267170322244474077027907167333141131683336017684118270057472927190032540014853565252377270276169591323171516296390660977487166305298075029073115270164563752025247174563811686036672726567077510825010943352268120215101633074856985618923247015969397466962489815331206166075093500096459479690573332754877836559245804432919588702532264018011216712403931629436449028996407527829331753546745255661159939353903516893144903381011171237552578170947894739486411634425418324646771178116108032561075028912405149466053798996005612643349311378586157304777447414778876549510089856496643413718033459809117629254738229650729514922034762641858188998764050375009638423105325148318162981992293460297977329765544644733979458055605421498727531278294634474161420740627632002226311705347878718184792869718547118460638141197305543071641457258637463332030370776047604614633566661991335364940076084723038473445028794418599319375835712404753343346707667106797420997695348355555452925446508236034782670564049443171565502070507341864276177834793812056099397179969537748564055708728801414516181277162135340222346925313483742402193777564730138900472893986980619081725910503878485089993929526302677977385234498871122109770626171960847394371403991409572039353992868956865645919178769394422445070191108935041064271749941091382992668095046567265906232315107605875998012008278191290124833596243642324156081842325699070228666459154238845019092744567565092545622191332147681335213921985186724757481841285920195460744629033442214534632654965264904479208231317896505910404261236628269454590023332407719928669076263795183432743539776423955992856931585963469950106718446812708829165679471233530052785649896836014920217223802182644691810487398653778702566500769004171679866885073487094801355451596503756861840559855782079148991385612346202612429972647042709849987163026041275255228030283651535107584576540115716510266753515213454454720146686505101244809489851707223933680216522779009741569450062097063862747934235093031869866222029178092379706587860331777297875183723212764978583255713562580558223610629453745732179865923482727990763412820574392899740542899554372821553811149665672141439839989039231720618553559879538534677468071303430722968006049058980636259749075444118383350721882141494455457948454717309812181977902741754431676599478940635102920534508087146683142711088575941120718262829502088000256545526834650236701629962234965271248671750257752267502382369740058904988879315156061613116129308705511540137546908072440216089778743208264236224412284650737520218010211180349074276912004537562370067544225014304469171931123347794530757993049059736258532499197311856671486625780563809387927021829998675761983285894784366313770293231657350151107007978995869123340095329252382917840731091372602982468703706570200450077245929296240857456817021041855886119537519401053483558863667396454725945527881312062137066240533102385984629889917670444324471977412108299120826127879646582719891555128995363345359851358917899706575605839764267131776570021122016542723812834746925876026016232071013710305233217879028944987416102628322751439309609765951668207560096072280465506818153280397954842076518570900636096320200885651511696862234008944139080105180749540722677836611453126940965519426188286600202198209901604999211973566494191058111147540140206347768817811320239670664923429268100695791437687507658832970948941472260372480008389815824839246667747543175845607811400198779746097334191900801863896992552485895776965214847262859621794970840987962601898150343472297623006435392945668860356107269199795793498201453462326778361718334319288045832574882856919917590603946837229804242974350917724683457966924078857239053077898306126737069550170972280979190019251299886723309826492000754061247037363610128964208342976698016694248002205226581932392229139133497636714194429668084248612954471536116004382680859803919580830908954557196173709774533404127328938252314455527883029429864565496850350973941641531515219929142208366324641611994411550012554890974736601154120158867022944052690058991078568022143621456272480275185527994209170297312870443200796393716903643511546821294996141394353358467389752048370458495344504235909888789909500438118354291653902417356089903071814633815741902648697683402331339435552478169317965137699895911101442821970597462011300568050870926231666292349104263306795693368118983610134678381320591267442351039784975873386996787840682142729533176812185418944576119671440185822974030826693596226794339681821955336274029509379758168444850289201956394522982611572076236884031305565133395989608383144762461820256133682130021652042268072435356680156888628262739901989604767051199592646668422193995464403367753840907611520322383069773005306924192179296016474030413459878395499931495714860925196317502405424063029023258277249718638720326627137972511037391334024764748607565563128539909823392100821036038267302877681194223951966855163472348381882391088613669135940656898911695171357792121886880119502891183056492696195306207262249070326899816655610039796587139214785169232258820927292307729113020503093706351881674638722448150598961830450785702048183989182840587732580146881215497075154545416790068108072011210252774728832812578588985325663567621578680148618648468432773455834656089394483711147758993345843472658688320542471226573791481464065089048615440956622101300611826164461816939368794228310973153344719263854705686385879985631808098385204886947897706231281886131758181833959696731788714649895366497480653277378024993160548662768981437950774510208950366449025677249335090966458683378772561674850128717748825721628489025831390342680377346164845759567788874131446236571411771427111343828095755554563079623170196222449860778864635781765002684203827757023164633835864321820212224037233297446628889966214291834685560829110418832785096822325147569994253051492005629941683783169404790099385000139140285126701332869515564670140713149670792575752327883500976286773119141160696621985436217449788851414219626230104582206087795264457021798101097495647704326707860470255389228942244577857789808122853340527008437262426775142781992099566494839656824824208862631315726807700309341028130183915578736014142976351642913667643111930043689619159888770727991635127187697750937842247734720695771276615857856969178959755211631565680152953440985336657018989731670256577064342960594775813704641016462960558030076100856133986792869365819784208293647194111683575350271277377832904699680480758155213755652760717267949379482095885895476777262686626015794555133019413118220377077347700822625096306627668489648626215995973688952301136906228144885045244031339853954570593574100281840108986573880849353584907197768878249189257904408112818169533897153943494917123029038458328419545493241131108750774832481179857103157006164073497325577899600278846111279770917085763373506074243797725713925110593855220676654810634013671285159402904151052066345327606139223175164527695988878402139044789377022790603689217599013518349818029859201807507205268035678501497147519691943964490997694228836631977215819821620119589457307576077209071578838771679814884677372586239818118394558350247173315088023598470069193120087912340715712622165453912930118023268514054772451297875423425557180597119629611973015307802556052141708006254607871748338908161980741860570520248475905232677854809362498633280156137644552583961577128860299517087381028191647202824619889033856011004342767027620214018536350237674710479089507498009286236738221849460435077436449827404346068806575447656694990664998187987371861653420777557340166391488077421814519067865991119271763901577284140804136796262322119071439695783502136999907034757037247753116151910042271872780661404200435598593805365535418628528406118438071400889887801861008512736668479493023792977876489929694379073688125409399038933788890173862852260677239514729054213907479328907444885827439879103644077775773506556780082236560739487603532745830681829376356722429098965858664156441658383879444027773954798893672604360467284820458268853279967282219328795891820582959723013742969552747450167270812203002915652090336068899877108601418647828782591654771094676407642576460050579327271885816910466711381928073563700633404167205816387712899115590566356489453875583168185592175638332391092420490119570792422583553342870082241555172268678441403205938123763730616359881708920982562289009538124649073776925291112099299663137738286392439515376365005186441579674611437622942634208772312477846206260157496012480037600280083828963566164086834292761463261756697658452910163319328382049034753804524134781400055347067429091830919011767660598862140299600719803297631513180855622897094377064853496199785488947308909916957273990744521737483003724120960393658267081218762353032752910672029085963194091872391457301724386874875293959519782165909722842435884869284686108909788644173695634987341447472993375754450092682581323616956123096824914213575092719671178662271012794819274889221219376031803412676594067429762067986126790135172863107231963954839160454675352000881345340829492674131608150926923592268653960914228969147685444426176467028976787025589584987856288473898937660180713188869606241981945398299956479392624339259094166420133841615775280559553217218762605992435905526435557876194151162285419065543926756041476479653744259644789597507703018891158907968949966140556583091744323990710882349713479106808832366446508821801644154036132017543232070159347971038661519678529291173460211039557338185463022894447145578462465260079322846928216702875740336106442226938613811957369862546420008722065209307779253231130207756961951642623589959897629184493569646994090262448537671670792238055411903117490095656093579299717847590471141372602801736274224058482061456663175135339961108590039482983630044197155722443870320709793487266568182886873685196892891760010187290861712544242564069059784605562442589476924171322242477664830973026146159966196076819822093954639265500604776797368954059208155276940259039061694481203557622269345570218414631792897314580442429029089228314639737271275627111599507810270669609051950834003888120808762314603903249351586157347337729693191465607824344474918808321919840990969548100952257360938317766538662696653013101249688318965937673403547877182149495889669299592836842694420511608614738453782535078185746890099208969081659882570451324247002461726613776884758671892618111094209452784317102094003344913319694401426204030519718964898299119520972107514400304248974974317978672770002466286975395576515183657223944731930986539758057478356656214864153190178497731401203040260454726886134647265785795342159060329224938352300770042160559438270558554866526940907864724164506758738089115183050399098904125148244833479858275173665590464359918514956367018887813576389839053902695365563071743758126780873075347364666781814012538806393128548117915183916560806115098778937910612259989375559510067897833791531384871623613484685217854971879285867016211391165754819595651537378851510478748017623160733903062540509995739021046243248800889591381369056395220349784986299958863969376987614836122069026805473743060220167572877781457386097984713494858587183823256626869437145531740244799785164962902083805259547983269019694573842481268341029829109117077001318834768276452139617187903287478281266897448072241031878403551476256146882858876566759480400447008131926009364195735856133777647667354971661604862668484170129450485727230401739559619339662655622842216644705985773215093395540288151169041990349966502410175171485164337461988080099393593428381593863404634873161531868345915394941936840122745733271598258618019720428752313366592921882882303717752942661165105053035264382332021350537081652722966924838931971212843820302415278551619465475616469992447991336720246640538001202029363382627471409743733896323284710918573611220343609632573957427062323673293982722173106964568617653864482319564018479499814786630513238562577644429067934567898987526117224785096805507917118381221425336451377350537860246719506412295653152145749787446388419604709202593452656004996422467554288469412318150198928065430872218348567826033456527464555799124132791481151881075460436349527060333898607079628810441010441497937252378442563109823457857875576797572883376834710236360328489982227640845885120789004244588311609329770110213110202178396859247870637775462444518908423194654018540734489583128272517162828231057062522075809407207496670804211640392205768101156527690038783153744489028602805372775997302810240867948598133627230806453384974951728642585618912975116674884103046925288760117970403369309096766791215981310830863078335712521106947426812824460299481707987712949674901908612337491906954837916612973112470616663172993462676229940887416746573914692116492833213248727493833836511111088203503791748258637289342268165967497434284275874550910228263227444073065791542022550876246497296611819821367513187079172216235447877513437680223700123841995278909939086952458456781587333693518927204166925504176186581757075952950666007676503638776904115829596836725442121128429658225988464468458041031223230079122617366484991568206410157971129829648290029997790731244372467445353215793300292475139582825940622179965745706214842525742148897784790882323827293147984120316855950034106201380277992057875338819851826680068755165201022090236381028836476838735839821910569427940613408077554205810018276252081169954362047099243281725826588517707277119391628571957324315452520250112500764245005422294177090336720939597135385393899641222802807168816210318921585165866363748071309031599754146286186341941808210838369376598283386705332138994898308820397445563272790413160708535900495694434913663334370419654282457997911292760364528245013147409874443576806438132626680280725290193883587323007221043906310134949837736077691545948740508743691338049670847328596436981813502843150635913179897796639397396251589699432871669977650208330806569776505428556855411965930338273791690314274588851523614906174986653419154657742669649449725524187307745071654481616676654212212905850704995258073140391507541941172307645827411266848504781776585352490941323803557672613609294201903850850886037887187961363997021323669519836655630218432770762542842352776013466794610114708604411380261805651178224136163990975322150336337987773062091173863436735947691836658536897762296003216300222093752983898352035841164664269520136305150731888412350385034013705225040378122773043015538169600129332960482374821346586702523406426273120408682550559148492017942006290946724877365263798506393318362362578687982861663596049621889371044448798573904555105667392364827200756662133781613403904784164680553987983185341489310695453337937348363832923433521134234051765308285810157483163009371183436665762037328058639342995151837902163108145080726285328884380263979769431613303624954964256086402587003386225633630169399229239159432541552320208215157418262254628801462053218507072162542265181725626562275030594094272328864269283324302053126545065434985664086899755541080156605396855541152711087268713269687130426278466689554677947598316739552621917215960204494517559093505635729413366099347899906880278564690895990049769622543611315135925376946890330191749304610869178469197062889537954810930416801958292462961303253102644808919626916737912801362766409489456159233046936789498409318749010344747617901180001790501243924420234850086255327879237488449732615521443364053408773480799682636845829940285767872654290661056008184624529350273819201661666536858717564934339649383763882099722232762764650482513604668985790417837083680265261249060076683649192272079793253192082430856999274181054064780158317855987748206875937292252298931450091171418873761875755532605817844298714372376352706323072856463436925427184981645561946614938585625531933682853007049929973706108869795742440614639908679867326640878602781123245917006108457343622792081247517759034203023193165648650476152527262114892664769286453471495562516762638097762029120410758182310337720268943813597518730388104483050339637982188976023838048153805573870263234937402648655414964590104506020159425127196283741881021136393075856367986542679533547968473887544699974189889628262994188747158564626777646839843921902697100956295801759379263189645028498570868660938933466835346635732382077871457036540070651661379880095497211844553634546335660860494527851343324826479837008433921032503004618605194464416026886471799500849527980220108003185946142642114173862561767299788476602571166004434186979469466911781027918477882313793568701529558862902205697172684303055724283587184642985684144733288081865247972633325100053770227867446882020116491303935787470327323840478042784959679587245035252665484577472628326420167014524343856296870430825476966508617529887905336001827977993293375926837063482423109191603741467056276712083683948907288430847500423423166751238990337116462139133961449596102750236909365807778079445126630700933243269858516299389593866868786161740346890352170849321790844026781399107484953450698812218865750885298466300439287607229739848919209938101222550081310882114553190175159839149536276692533043462372903053892181845131649388946213671400388087469704978704819421675234111387562645863224926800456136017092169470092306577850207909595707679311436649465509898875838470075060239446322294737813354487416079460390136941548703533818907224187428315265417887498346057562903348284913195584903724865261311783397097693371768554517507220229765883965393822827851421387684521069380406328848978743240927453531916212837586041853942388340645696522285341561094537094613731485483113148626273292837531994427299299164814308969336901082644199852366745348715830069674722973075784981519252934861026416756313286552375283493849692781627933181579962074243040082522605336968504167520250179120083510259497008785262724110717883027816183157090653675861958710079208315795374869087446418002588308790110398921594111683839183864677411823237161168257065710186233953667718377929294164464637402338857134765224978737584136020264229989014932919884280963850543898745682045971520872254438004472731468970030593907739064630921422718921083313760715390742131210299758515026673548376724030336093514682013095861403856333263969137894355055078092640414320827556934494199573233502659119693429439023056384094881672028606813655479428851587794789525483860693526028595165819848751313166187624499707582324159493214866213565971454080044349874192595942395603531172166302108956978085753881292610633906212910300992509936760020196299739065690186341879447479113103863594334410803375124751088211943864281205424956435747531530345443357244441498296856782721807286391629248272456367141080583126909192721366835574263089046931094768909163683590011283439584368650997451452995417155310484126010572099247474141192242808935517025368294732107261476663910037848941610822011327128414806444580408994800373043310339662569350821928850571803031532310228873028935532625831855574650658036607180820175020197643455629683423058068696653340636440702521287450619216804249575644136474523285900704761153497533183769553199999647239818749533319897521450760409147144701641744225862482937346214714805117776891190072304504074560296825499033846914419081742595185013534820566385942277432794900195370836917614679915564199037045868669419968450912220401396350330957632212268296418791077337192853944649684505625641224686110715341452370810052613741912948050407977623355971273133164613815445817909705774209003627233278302755141621783383257179544835772449233463225306696350033743362564785527458076760486032118069224798674062766314007568667410900434656373119001956974789717966454248731930467983434516001900546774942247471572570168783780706074285153524380390685702752626233837985434987161183837820170029247014976055679103987632714873030462086813750878206900358823797663973147919752385966638699922481968994036794181042150880765707324457191119432285895400207111300916649446174544779008362134247295691603735166100433474525053432940000615220530862339657019829351609051153807423303948776903084667543256792921884342675020107784557538461060869412472367733896962192378255904154829988577444792241299377858096374044520057847004734297377461770093612218192112938163667774861758860312259955552803548742817477429744631005913314670812055797539686041439604859526636235171654036585827224368708040124903054475794527322143590112870554702210805323776819962204959285258534153601847843873658464434100168552627426276955409682227295928729142882975004826230294885105258717177456296641245961859827301813873909025465478202558943821474008416409966048776529407128807334808000752416550773600517079408411663999843270196698442916454049825639468803789702261246682418428771079521144608226606375416639243096706194529359948852930936432425855250252950039373662569634324519166514350081646660779350028341132973732152622011813510141384423217645862168730744535484321924152264839045549422324111667648707247044405301047963066649862074127877194501757924520777644128319050201479008186223630205026212965237395818742762150354367478184078277690555070209946125505622620893427770476550867627837037245940296951512971652085346456105949191776515538518660666377608715821262117067017519674615109816621126371102986653495170334220990835266024231616223018048341406270844466044940566692262655915477003681685323499594859312397696068608378590533881563497794234703217573802315374151548433068592611078192745310880887236220543653076024746200046757015596345881251140063733753819250942702839236922013557494147895153667476000400798828600628361452680748797857333248201922463295549819891159901885739933912432352370601642824550609925939026871558944463057699918122193790214951894708310037737058353565671702808255219819567505729074252077696350084662701843180404284225448987626040249933264608402895328050390753904110239052201016930397939064997878863274213726908268838183991315955445037847222172125939035107869468616342432227702176029074687281973529669077779355578091128368187944522867655036600643544875335252147271540470765583956156680422086726799024828211174246697272833341547124508350606974367142948485689322766048833020448169787951183317428261640552535116272370995592992884175831952533901002235566648934682319785305949222449195144272034426748241809555463378490053029395895883957138138345964211105344615454671831884956490481642220782643202060676592060501000799378056798040201293576950384838437092898091389662183382374199749389954718154110197566883952593911259319539260653022765123115751310800047089557803647511558357997316960955355621370410612667992425490535160414542815970900946779911737715030384575816528765870421601025737986116107312860287242206755194914983241440583251196283438712331273891667002601978360073680328338348007439138635944577753722766832297596982586430919751275394943723578143961086456157482154121903982394592331348075054908214980208245305987643421327940835514710701960432851431617994488013318333623796461889242042355220315711100402787733331202306535663552715899503995395269444096239685294209450334437852315163786020044911935603739116666983696006948501843276057837231723217528942027111816681089187163602196285087692719292321272234358006593831204303012030110013575122910584895946703106277418449022199723972122739031374713347463138741266927480135340082650650153359381121859465023150037176589432045718257621404481414377700108792191334731506626191629491343974662322459697277011065835144108684099344098333116911462519461843313235373207835327674957756540797959716740320766101205218535198183575790775733769162591175122482075578531127949617211706097105702588763466268175757814233829316056326219261220627563861134742065524982590316136588699029457549163918008990253231590699366333972532990670686334582098701838718105590047356538920005388187001397912694835580507239202769056248820129907399524204350357765188303996915623928125984448829190876485606920206482306847423043294412292644113269088162482708445659616226471632046139327675958624514837445005061141764354381198049876638571427478923007986435968844433808637332708054519873399604083480891900437570183664128069523974366887135615775463525373424799126028635393897656319928391765800373908407709641229791608694034747262768546116032707764183244804873147532193043383722936606993822905747660120355181934522345825487144213386540038240514324264350680876500183154920829177256404060858095227965972369836816358281655198819569807455484994871592646508689813356361822957262281673891636409859407813720095503721072203195425489502011372645999136823984538384128348678569538781864616481503479017127181209970880798463525449394047499456105599836333003380925464584919208819771261566471655910902564231173332547530138618990828606931077480330674668584374049458211453605961477350490560495460012927755791118714694221238544657629047071099196343117271393301473495505781217386913224393927740763962134061859505131383134553875862981197289762090653918149694191849209113206295997337155939698728112624476375412965183319774504042845812457537821200663424974062319013655497641949962242381527760170354404816722235193074758701661387588977495951009264666886811300971943566099284579418984016509180884182772951432963350044193461954508259475076504809147420140145248829359670840802523570435451916490726607928288985543193671155725269668647954152970288094988065657841988261173799101274987505637854777950608398087179227558552838856956032903847707619860709126324351627514829429989477644646386048387383173581643097881468619886923875399147968876690234563895025086608544131136273100057765435379871590647698765124899312252964792055670089924802235933944058518719084526762792768769102111401145539668012471152475494684740529067712115268920763936211603815133491013513713111530331364986144869249054417521514255857186256916962298164166367421078950009897433386725433023879812975660714551067787750283513615581755770588343510658130372928953094892098299601313273765290301164843703934218641606837298182501039102635392696248911568218182070609199622561764869943824037554811229826445034998438396738441307281405048133549444402691014972223153546506539969376880504499814546772808803644395948375428996211045270205416612877109535501742427247376635921945620699612118299232884565198234942777936716961291363220999467262068349083099698185847406537281529013201521836996391273196361922335137547982106867146626315200163422619071041822889552228265522217745408558391693694221365798992982661239979790815124280971623377448288946691701754712986622806787283348372332251951764518661574239985604166494484950965056887656776731571300058541144001336745112981644446715083251226305375976542205814511268544797502136253490406976949922875857256566349286894798818407785502012094538261802872214349403848706857832139285361318954554074797054335743483498479007015043415839788957000158499875474239514496153563795478621441092388317550628880560376465480119845076874989388970486924098393627295987646495318927688742016242632957358789110850577989493590312659400046585629455483542169056204204721075797706983625195544384572928951096724253312051517151503066242436639808012384746005608861072970507509053339202720525379215366651191423886896150060359152696451626747205073668050232357082243593277567545612543650677180248514242342279710736981717070831484440348970603263249818551451771173968607332294684714230586035709986018678089273228498613803641440641765014098731750971121404102475696461047951486549949315684520106308158500106393634990657991413671943185929354065798219395251733272206569802536118824443460855625701760175736067061274999093637934454220641431784758281799974714575896474954114367546584903740058564826842636464425100363484764511104525151486180794166407083187440670486311357556144002471748647100111042355174065181814567007069128545713753981506905207024505309251269524320739404048960953692741336409171427742586459979271890411758096824617980675297010496355585971451340728667141126099207250702068410979813012691025690216388400589461072455042080689750576799574655186962344237798992175164206599852792014626177179641324115574383109696932892948881517858872600696999406941816788682639392048484770010878331550871006105824770969021023804877193146627061808120313467850082583560630929336383911438007280567808079013382008707648035062543008998229648097145787874265713762515226265910436121608457872753364970124601928112917265019114809854958800872221653822885538407776060157491979683537761956447179674937611247659206351134822277165367735911727523124655117499107122546037990004957990905525606444396007182467091425150274519306095461319059004454127633034495688765051684063226505843588476710764174556376082577349249483890790506809476511152378926217490118810052470769702707447939515633256256593019737033857961749307903568912702650372938182824949228588426930601970490886186598855192845025442972485637799560724018452504973051626178585632617928814369585237056107530083786528628146284716672475989984928074491903985839970740238612699255744957521072875982623825037035260896608776539471728392009514714758506946438056837658254036468157832007150100482347189759914510044391254874657993941526072500300715346606661651746836896388046907892857804819991089454387248991468820513488997257756518501897025260478273963616521419721183541948679017243527787662554226732885406762067229426094504679469095201505563492402408067323819831485204217432242085914913610562837417146118610261836695234564825522351633031908654656938431403833892176920219527034386349997743125901540114281419583585438881594779459992092514191222097896951613567093508971591012184281150051537348424725687759678363486033277353514493500130488655084131525827013190041573083890818734984133769484290758585962651763005225417006301548608005779099653958988450204806579600581855027799656303103884669928497853091155371245689075216478127924336033546115717568042557162305762955285299606441151855003888369601096592724331202529443179163105368965060203407615015153635418798715724340312794366826256683784311194422164742273027368543164027465615658184323781915495552262360776169715326864660212839358791071741519675846479670336861901024266633314063018261792580586877694315741290413122886002475946239715406465322227753823729473865573919679549623303583926984843283192181658262412563436460587417939551986963194371017178840811719885159423428255405052599246347723723289399013562124407679474042999103646220299062524183785197355300989685721442906667870187268008276363653986048683832289039983495453501456669724133674291045512938804487586733839909073187769931958070610535550394063515876121670833140428434976334792147200151706176382455389850744270529113533473449714523730867801617211166055053878060123612822478243485772774662828187986250830290951507732808823867449557469189225332169153019124223421790731479950582186715272635136686049154734948685574043164226385937981761052971655210999073136366456993877761851407945437955654181430058005194198346431131712312744057044806844667128215161647915608982315019659493538140707203291931471182592242938565508734961136958643014821343258952498160726083406056989885963596485756243723281636682334108936604163309418536859551298374004848450412462731139471089272190090444774686466453655921551887852239668508339159171352201643774013245046488326965886692632425870508365559635700195100835788741954884706766458590772319985049966347234571621781302214333152944874174507864162928560501976397252365074826313685287505235570514528633464131859043929228598375267409393243840896322972392838765566648606129998840435699529726539414304992894729691614442926297835117877095934636559883324111686620195102030771253017457506649525916207472082989041912597655224468841313304233870449429101873168252292765406929187587331687974487382764982739856021222460817527107786560461600440657829093956737159822683789240780941939933067576025330632277194829170634818802296319328483947766347061510857468251755882961763268220623909582187601060886743624232938180157776360542727165553364970739304409639010508026988319921526206488867270332275665123243405379872771698794600043054060872743174449972564123844420699311645209362354299753259730509377956043464319968693578370260448875108259528451228898307859251261381386372990604866761771693094264678766402693106972576053698551074383323805931514580552626260262838847720636053969929045743887104475836938825086222780059415730238727388701547274256761639897106524801728238327793113946807331215252570501485170104107747112118175657633959166085623828022571692365910276712761980737753613111693384122943454390448787501164261443499825779471976790788351253035539922180975256732594284018325443499983521434546350255213330980542073249242311397449554949586060078216938123079842258562087944791477859614701040867904360022793886034861701441265382659665283865916431692511045495237748508607460010825585524950232466495710558818031177766237732745775463119358920152462508667330385654861241078705524883718250136203853075877790189536679857784273331749742387568038811234423177705839166149307028802390077238427977445807165958645559170006888258503298475882250618909629492164046074060439407146077769386482059052905763035014066218012214158765210283557785761990920807351236433349549533506247573996588373754726807166783062022928497269517544763344603669535184270759132871865808877751348449219613827832100244048733525423102308253213236856429078883575458288231758485962137812227591402340373195489419500135727283900864395313798986814191098426636647062389464948839828556537637120803225815558204975680243576933294141741110559708199192568926394961528562691522711804979140100576823008506164403766144416674047510540351175274002188730364525320145303637693678030302927111356722414717623114803132644197615750522537771081275108807196047199297051800237278505793232237060637446867513806411942589903093545183162080099541195669544669780685390911426461506852599557903628319894729529463209496378890758645213449552670398478898300575154628243732577111462392238725045010721904349415375846953753652203319008661402175888813643518180644642873517070893241617295329027350021301873953485371386676026944809932193600635608940628692820609705456023563775969881930693146531414003194343652663680505956834081376954284652635730117266214368009648235637203540757489518183000172450205362880981136005230468049862764946407974142868261285840585677195097049237328951137934924130160687079477603947344501177614136556307729714691984336817738438487424053217333128811105896810496850212475788826816508186093383217125051985375963097611391177345941166388490178462297568417832346079008961075260339999992993429806424569135389335013601056676844414991964505740615261229960380536404254053277559625832481204561966335945644717767101460790212122521182674933298566129855953355742698014828627674902776385174765580532602409711712024909500034643861328749117350205040197712505790740111918590932491847717344974353253947939843384973288353723190496890826334588397247385019122576066154193985071248005505810183704705737083873125023103283192607947417865238288654802429374404735773466961306014838149366251388136097188255328936974103931757212147048807130375042366292039183580774774902784561703329550044499322626630785113194353938337080956305263647918166902980223117415257339692757731521003912956975544235323056206060359948810028037651797351839585345170395273632758741970113973374944912270198058307924431903136170816706341800793819611213884410105341232345675424942877292232957604708007005880182338209274861557490691870682816100629540785815783327345060373468981311987260786174260185111509417141099325035977595595275718794151064474129144648228513927315386613230627608270831333787016159986621824827545436655112144281327364808123539050600894224966590710512358855572028012631119429544102019657003844136976049480557403579539280361882325908657407216918560486983163275211908284492790864516226090917115466325377088459954820073759697817063040664103678660323046614593953199081692399808444518768963385257835722682205488398242039599657777629155615819832788305257291538918301920897571890939713273250762716691530015563911512381928278710250971662335401101909969615096267162450608311877789630317485725333807060939532534451994238616519968652021421559118586003582651573601270320052162399851161495562620163734015814074647394584531244701691984449439759758036852050501981807451397156983371280727507309096831044081278893628833012866369916962563510768146107742252406679096567560324566498776007231814748665220990419134828117431411655736252713905604827111115180502736455890236425731345651329702700719202504649212818754606077937180821447363501497408960841193094135655529010851128911104178838922607651390066023349496451508666221605392813790097414976920156676237338986915188988546247271510085849291051379816660571361548072153709816520074291471674341355007846617565220411222732179241129378264874375269202133705865263886572412637950581481554124129484663869255222775049897311234643354322335148083508852078405606203541286647535077615338152742134885965482517865603072350179502115738167024918185219345760322054474742873612758504404537026030281693970257922723705491928692083901600841910448332806338843904434748459552757464281805219722420268044472287262262545411410182229301629105455244816870363339325860679195166931343674345080223541187907321956914507432302823455957450703751178498258365271244694472284790842640348931342993844454906963856111375493469735798670626137627630095010645703829349702051236395448178262336318756973065354210249712337337909732394663667489170304328239959991458918535781020496570942231366091648998122653794019411202418331215339043165666357923568736365661064720609252572737561073799599094488985984804233682098357794906328511005964087105618895618931517032373498282585003895502240512976200049240276696809187917246230426019819709427081434073859346901318352571190260979116626602388949756110670044798569499070732880559793553014944001084541265183542459773990824567113322427247186357495095992923919475741395987358229517059201042179057284233070447788601297692127908007314583267817235310736663547689136068509274536836591764861841674343763730687216404968639337518970144461287228499486292307188803286085170268834390603490587953254729669290036743227640824419250632396235823080936064146539713593601775173251233694611950316222371100467474361400268329649395961326504201090299511442013467904163929203014531028280850910846264653995438830668724264539628201440823280786577854991351450722476509284703814999883189221097555618102196115686709089634491359590220308855039166728752798693489462026522725029282597987200688067433380796359611470838757218369973086833085678295047733466157436042767918428951865631168854011114840136921280008504399440467039167824176909818172001005108849643353978299797332397150002705369491078898070318012342618667276579652704249596469845396591208332624166341957646640136837214341645187117497931224564174984077538786906009935655171193599160468646876366987189212928288983873448910730908666603047319862466714098547001880324651979940332764512620073028636738435169409491268345338453290503251928290525060447332682222764610027452581186528094807887284475634667534358805879774771747165931504694530345784477400337874141487599025487924822253639690622276911386971206459534611347693347077577086697091762718614993867764761727416248974616909390535594288917010329074201645717998712375357550596342053438712252029056515211829056532100848087106955593808517046451794376058426276867068171419146574830714694847866976463211117700915987718001543721122536192057821600987467068550304924250099973688554082741919177063944019529095048594216114995436839978726541474575063104840304694755720234975805549264041342359570843025807366209461553838160665627700431141528303145894376793006254662983324874361280620898281998022310747484016940724875749573793267940944115423653262214775690613383544842349709095955622504252548774295372089733333299095272807057791048465485193023592164761076311808696252118666016375812643053918598879009639933574436196519692808950140981348891783687460684094533810201936323518868381069622228237766790320672539587620435700175565343752494075026676428042834020888898287092475939697003273945669635670400957957706482198432486704608050429943776427467834645125645301693192959876953374246046764514437798986816963006849054367992973720580596614005335821221460741018907103852210333013377270299227656275430095571486455560598649706270607085306132208212339622537132953374205631152037660725234519038601385880499102531103068647082103789421657833640024275958789243006420158098982536668342325269405025638642043684450890341017072908678768082789514564977980638525698643826492599783303154869807417659002913708246687176284648212098899690542509444557369466558024277328025681738715553395725067860839429916557244412513600643344987079332713379903275042309084792108667841227431315817092742226532416689156053907527804076007722707519273456937799908350434962703054573222841984210207928258029254631637261016127349684809536357019988026421791325564295236519289640345791556618444526671836418074771233263795399565406656980777662710256389757886396755897964561711314621367616941976030469237350476489171343000387514925280971258518691033612487745125042374047567453233186729306639334642412286851236992628965766089039879053919295195778770688502633302939763888268424619654539380202929346873596911037737920105129594950459144457208503817847987594469765281442983838545830648204503229832498098537976064102754833409961700109527416440440460995173345984411774877204046235746968181996187298698642585418162897833083967305806215901989049668749727091991990221040088579563344185153229561883045963001673153574118031748683162407510776723760963534977612716363941297490272972186829084588364531909009117203721953637588039706910992280995270419938823928032408890885736869008043437460762704743062050502045796293140085784269282384367088002263223640659531967885006833310515697492680083139345125236719799222900722523108749356450491188947494871677779776718655841444564721333262091664236343686932494447466374164096299411211492912089719493802299309416439620565501101030075703252191566706073304604910529591035295374578551145154473003076964282684065800658165022384132222212985825916028903076290422726056954742502225283174462986747821740460651040254851639362245883455635828044098996490218029590653953278228217750301955100812695767288509932413338346366474379895391986176281048422628789465372951178294601052674628079520550052143759148437357141161887097929662474222752984604084315599973327815794531895759151778202684128848173068246406653696267228912487790033153813667920186175092500117141421773404313612418075359989962252959663507166617119090611268079931240147865696712731198389947968411616307748278043908938384953716655289552091314542271204094042867367842543129452590376411830495215468824648018379580218547506340170823215840377694456334883197334061301138892414800644628420768907722550303394131515250083793523237081104461871085482394203199124818403135444042715567173417613218113295493803204265637472179654824866717641971186981584711049934416165131396400008695709676601560167744756215357008320774211665236431389110817124303460432551975247966139987202366600562312215857569264188771383366347759042297582122069153657840786344860268046144250294647409862461419511575661065165743435802084686894754352592238801230985867221662593023413319114931055170449739225154633968960825221292360727593836578669088267793353288023111178826236573784447941186204347418581915293832950654892016207776751977022719545946948302750525214152620062783428482106260188786425130202249399548255882527303953624411384867661306625517143848658374408833834206866453346055188079909369817433109919214651073536789924973212509594998173951858394758847746983569103647530520230135176314822662987601064303692281314056906930275849083552247192209044851313328383052635360780245294565871529557252225875544547593446437259839502269907991146526314873997848264959270520138611452745535367935451990911203842190099257136015309722991305858011003239740221448273187698331813555755991109831174543517597265546602753336578032603260846908878488663297114115711466337532437296343166212672918884193413004696259807059903123689111836007877848906706216338509679151193597237038930252982967443483933310287486276425504507764868675749475400351629239412368919595290775139982676197577752413655419103826979930673078487421438552186266701640887956573820376229336322018729617787477809627271300811576722462840389822999698356768992239420686993971085220720956615417929851968158027158771847075450374994898813976617967788212975367989655262281051826554301134530508474131919501663314002697132057016116322558426158723536913749246726447664391774961113924589031586341669994714263619347377105029587689268650337762308499809211527025924501656325857359999912667001126409991073452319419308256319439290132918018754461005587888925112116006936186021982017593402147588856386940220008321134326697063403188740786999796523184302571167066325222878317270099506948301565333528058330852738477178065104605615950864970373290614190328308537010533500447254526528626630276216176621322339911689296098256980362487170147456089582459670524284934108238218730840527350620350421358226266281447114989755384175989280523059412430834639255722600398395685420190207278241223994179200428295607892338549070170779052587428139473430369357521911256006693401379333873037175594472742217570265594685790804085904050590467491098115072788071378336951111036708949259975445541945348336459292902441609065766348953990402620319848190452705108297980877886276695476272420076576348406223889230247208024397855695367417301423848497999114793196604898817034410510624312015103451241910558402855149323172624646112836237257908023678167939446398492251264563677615551253602664169885630306486208586971830222999439353713308281897196642658988562527887012118309469452739686486040755082102765007985225921147930709406686003008322077618150732696744090162348349851166919635961980250882798603585490283458188831882457914769792552409970939954163998836031154397719920713730889360255273437548485071059865768489344766516508063817791739382452076859875750904679808588331182576270777297392914145253191236650383902053043978322725355809719852919360976639948508105910122371636558468974669894288033111709231222165931558003637158869410507618034852796326541324140189805372779577843624216239215488473662052943398356732632343353664320522397289798725943353871352696865482054862303930628945160194535940552971662922600404767034857992332782906991572196034414265089598421725767887513791380585575330881211975430693505050139422832726987801101873427244749945982197184400286929682472285306943819279130044381265096816662423232734692580740535888028719602702649408836885561190678394343673817295957316888681894722719332547196359461684989008000232097438140825073237090374258041059415438145979833245060830401739486694765086068986425102123258563297256145055664861537256286606258942359890940143364883272239474587150994140496534090176608478076717149675285847099759705299522596258359901038195378131698381359667185638251947538288946569239052898957650163296521360321172762725100190077525680060942310143686501950470432590387902791677606027478951158589104356521197923139253982377268867268576310906088372465670308559670968848323881074160226935327078055520311251810520230281130043643369166545108790554309459951374817439220146069867827698383957276420181453527544801927909103637250520015366578354880769103181920523905387409310775892732008511350986449778679149330530061736229704377303685815772567990552458625547874369051867476591818203187751245953364671535593483653832752452180531404087345604423543285042152668557472897474116406994060855606472299340604593334322617469703860649504909569587544505548685843163909644753969922254225989364230301894366304139752671317532940840047319088417747004863624829030503607975067075805778115309610770020223411170254701826784316808195990933497454711250016361661931098828681098533898440086890169922398931431066054371157969986782767577407068684562076705947817975801355519445614418420615575812177474204923884129795430374131319596222781416145152720694470306921612016511738625275545324755747745253582319833136553766388205758788091534128023380442933128837966111164205637572789653364824862232514752120504576176017724602777227147061750016708151091198303592572831153080188289230023132521600990909714160945718134407093479890732797733991142577779994242731270604572881860065377404544480451851694878640225887209708763716232015121692618636285869394921464348818046839136939824893470054789040049699109356139664151156895972728673632264813918161697530783695205789679928879251730911752792584400859796793444808135725094749633401966129015316511870775618963551395932778858761080118864195844245412724722906600038856367037620622452816225568846734201719517682756904246514190665675349246118181640279029991971352497806005110279383458346846462522941532189905104492809389040618587503064676819816144178027996370979648376652117746722632955268693095217791011623544163253329906297336540690913225650469405876860673581025804287996889573807784078911954863174429115672956184421358343893033881023645122108007129173520613098043793695274860898990761673177618067550305028113695487527535648112171835661601859366202540975525075764370063793880462723277455498708553850522918855824039137239670296150545180502593755378056872788020135755599482213766700434515984851398084345955782460109712895742080187173434027604474015257915077069631165760857749398461044756300482331896316053085041072147648049322863697015103222751817698166709038115237664309598573734065105922943685034002624638426104033254431037661511211048925633175918777627612720581097195156863921613274415650163331050838746916053131505521509504585764465169261188280073347810173812063871852760421658076959780178733472751595627883966511184809034422706759203860734951020882923386208326239334626239958826990633910986249798282370782609673270365335748971647361537289871902598623141767292488149065356930316192028173375209876593250379320149434611620554938129683721066258672675486028416591310812973626494696643329235206711498096307748775941447129727845699847008228906742056017678500798838125301944630050842610609325044139094600531378137652253379324317316811972939565193323890266974877257865126998490450547564320897026634966217613178427924553381329329469051296562657556975279957101425383846288243355583568001811735309600716623891391629960125413502379049962893823005847932572101360221358467888150633179647057664008653472664073449378276148754904671272536771494118353414455506352893376021987919943330549872111729483329381879411064459413389653441513163596501559330739808478277415253654950288506891698372866608768028439790847063928718618687445173945026843951060692052890072844519956361810254757066459654664650764769742331642771266957032887925238487199652806436991141765018625671464107665838931946415660654224691288018690125739873193005391811250059762560090230711550937400025863615329571257992113190728630016440310081938697537037123586176911145377999695941360135823100213954646651051414777751568794322913916425792737733862737649497086149890102363843627017363800854952028188287987508767520979865810446016315874882940072554823947149722928712015991556078905716362057181017277741870690539463088670596846049390467458033952858105628032670439849222941312339965868832592061935981875354978758151028547513708565434172282163178049511289620168448998461506859552713757744803575371205364488586235449438128299775857852117972945386750122188501585373749159099468280201876935996230672339325909922622586155601438185272452825824087872138093574898348712712727463482202170919043143007977330492688743309150239536624969920860389284453860726065404373006891771332492934057800657006864490836836394869373337565190508745427863731507582969841335927993625049820509145416532151453117079172176852856575618381381036948463367246970221779079673800043369680538405786702737103487412870091152523082084450840461754573625036292276525902706837408623279285289929811449654758443174067800543053539342233209027238731116191974179287828735694804226981994359661375721105921687200437371392538395519405537074676992716735845181537444329480904503720457580254317756918226156315727566077593043698629904478366759792699331577140272939994279164375237224509888045611690729710173189145914482437852097408778614971009342480934847296541523141829971037413850846043194830918094644791327643753403865884784949438913127008092588020596579927848547601747015311240352632292905811916272051449038258250103454640356272344630134885250393221434261846837318140483008642753349601308639233364190447118807106826614790069914282931251739024124037665039703046950937156402416160949958941294444509078389684797315302035520858808771277040757738702001769412365702480284604097387085388250853791410528369799264657195580801094947560540515884407571294006469747298497298754275237697282887741582949871601060689280913447626988323295478144359490373176326501964016753040079693120675395289920738114957185841529953008391123444799023234490937621716776691943071424668580358633591730530300829911911115473528835136999500379399739044891146002539477147580592876376044034660840553548235587310935111137920801499104912175441556312548603431092691872616014851327496714171652394167160245325669159128460590208986369328401827219788919155872813471146421418148692087667782526113968893881166361462232798299378155820332042484089440158637690497422090340729716691501380149147010691248206814515339082161768735138395387961821965115249672876851257680347909197783102624923992768735667385123575105203377145672139390155409229216650161372770555500050752074348689010810928529559044494280896477129662170979082421731164137093582761038146155805828177614853727587168433424090841243511900651600504021675149355023074334494038182704624894747907727325901583918940768860638157843396864255613090031118117535168126645409132179350451322835050265175993300601108410766826256544813153282281652316817561703220297765007756293697591904023183848842460366266121430949594685964817407816413468681555851214344223571350318051966125639105917768229340952130980459410180781142936677030546202428530688416807704099593382990661329235550703743188141730740352757074383164623584229216411506250297876434902986906051077345721093965125761689852249345495736207567893584397805736241142288669046510261524732951485540374857596744866662715958613461764777486352287134892995131837137842229001652816613382887307465136022003531979986715945673420347543987172864520886181961788020329981488398823943046112934776878262799477165161350703224989801306111005968185598954593320614589508314164150138046757415153170956550648868133037666076554911842038223326190599275764811040120517150024260156605023723322885091248556401873958415581861100579239388048994944321311720980994631932113960844116991211818055912746076417422280522305334485130092624392632337393546960002292744326585276716795927217159510411836137536813834646947325339220462337934570973678010578657701779878280336444443449421767061191313951067969009629640516938796585667324620482347208973446276316930368766474162934112998139992236973659124151964294842700316323837652449375993613853942692231846953211423315546693637903185539011542107890739657517536611678660268378882348853409984963299727266636549736541784870004939496491913979815829227022906443429934359230306304453364475769308419836498105637224940201969489541935177362989951057831521903658830933859830508521081148716503869200477471557620666348464203037266177773050711395195914332518791184332369301220825619464408982588107630281204996313273967776293258997272495910196692504773563239303015506135156760042452324904069552973751078504294248205389885589997406921414143959612373162126810413153360452345813343487985841456225643352352552980029415959665735223870799739022575061613013158798617870259777263511245776457494523111968804191662437713328141144846059187294697461436009102973735627021087863809057352809312813923021575095504655543567848141642284463654922170751775753645549376731354580424458879426101412354860534349203346707440490902595011789520985536045417453453857434545838842615869106804938085115344313845157822296433246341067965615347120063819999570372747523147083007414018939813512240701787249658295909343373859848491591434953158427598892843872908581559269370867911134762680709544171617686402477477317310909771509099692800941583583740373933725880108639973680632536950898570362256061250525659802996695908997433167631113631379458310994631134482645956403973259826417770552603229658610563921512958850610574947115475027964519887393201655864733467307191390111189140331068940245385670262098281207511156420499284870018156313877955697886075195879637113485943557383393157318392451832517722928099419853474766242570569496794675906606916864793067612376468485170102083750549642489568073380798971157249112342334415780031740607666602288038751176442112875737047539994462780148051238248047828454009890943747671984686980548855589102986690660333480168639212700283819372396641479266410349042530433703492875218770676608094434164115471609981790082385143448219015172014852651903999261378903299105151622999770442260525347166311172929514407897309095112717446161798694408183891658259201732113762998293588277232975095268528974411963273280426092282818906326529975971923534832829094595519231164927575233319382193630974158669013701214587766187320204104844891219056044023627404397418308992221026431737485227025730764830591444337230839515995964464214178008138132154050891521825908497892303098584031559410906526764039234778968120085702136931429979700587906576333181386408732489850815387786025942256117109655043346711167946444780434899703812416055253422214755968784989858580742756763556572041418240078264886184589144903794742911017728558714988902280806460988237496018986854822217280253738648082969089847540654771593616157208367119183946775874492012590724468063438632406668583746789375240081221119122584409466096062979574065957247592646703926511007343447609956221087449848941924902414631596084228407222265164883471965758035437989341346417564782794146288003449708829240506126812116789266482704924554237131686328258621660235140598385969028438991756282792412226166586286043173925668109298494095761546109996938017427040633482384245436239472098544274291705307307710440928970530341983193033152715505441508390591938827323492306377032630455581412528656302681594277214777281735074227362510528702296193602132528239354441888698394999049753486767400836289987319915708742048669936334829620822431723545130607863621616066668602281270463630170454170237769782522297109745849390991567771057158449238297154070809773900328955626952821987011222692226773200062575737250173175558321999180415670669639084105392192049796200701255484525172117514413955361166684119202944554398889895702660237446378224182234394397973913056272253618053643235580932293408935998003607689002623341970757080704433677549364798322676840466139098583577053708469390582726007532059251165023960387999995345694751296651553135406440516032519380421690242109548389669556170605350618444569708122066380315698144007075828083693622131390698594814574621311016131562087520897398403813069276224061790512924809996538806547544866176024993318698629808031762940509185055232015283612232733963999698613435507277624099437851914819601964069109823461606719575826566309019190639036920004296136498395237373243607049577533426576543289896371879760762048612153822231391122525914326951453245912466157400725599886807087398921370592075426695775327983488333088928248411752429104729301834974703821349539613793181844755001424593349595008147049252169785746814101064724835677669981012633991707129017726722796337561598495439853697541607796528144351433989946441487518320050738390591999881802817864778858549752760205962129685721232440956962273721038589587635896041065569653785714707112201397578156587680480785130488677319842217013127270002144994010606431532193123116319634750017012587751482556262326342622448289374588260270514695132285309144985654499397704385210059087944404133929477014311189544152767517326943655596390188149347653049029138254725037711665373041624128263296708037651554059708028989660171196249743909147083576050110421668729759522743421551844066465698801966378110916416094784638627272512504833445848730069382882977076914990159797945986197354694684064742882405629921580636298851576391525238284346538529859099787607977500147395997711891195132378249913422160499787433992581276616242436916322618130721968294737397942608570146492257723419500882278388687315946186062669173575744192809641051420679129172054671509331655467848761445930807303536808670885639888174886072862919376992756920041673217100270365715139845915028960980645013954462009938928976846054769658560584733317846116901043125192305349293016385964179018136272148638291276604573484327335439726912695804453757864270963967745599557327563294905562527874818476149349352436028749779967145412230508604899080898221288637363833157591042060470458511606734765190035953615290842943726850530687308750107460793991719234448167371176262923133802025791457750024612237330467137039708919289235202789553734556587823038744916442638619729198138621742348600991984807084286567894618774817736806113921785065629951474725272311725638606455162119083377981675550185908049460629819106100879730170700997510313892949651089494727913311500601079593617409471486302043486929494555422261108810481018672841392536923572687564449998186922788113436765081774524657160239936942408910107704017914362460689737485626833100339154920112567094298927288681663978617753448743155945379325535358485689108602195586379211990687071305579965756187252111973008074310010909450069366687803410571507088439270455636584707919699542803209213512673875940375791544077735431270908899321169663641575820732018645364414166552137417084417023051777845402281792664053145692307707731593838459860692466279477969522000460611712533770826003994312875546133719420120140535532441573425006741968306727182766353622762192539299672405972072842572021672876445643828329754749261605275027163283741580937480931496081318104737508445274302993453711527540896608494341558774904379184603376165175435909884159589083835048606649489715480539122870340108034837149125613144183888096836268111496431182352398160475156811654913721593995876448065093990586854685221228271417272170918919547264288490138686073751520930922956565619255224286932927781789904389453278441915769612870709179944324639143818234437908211995942720990513348991107367428070896803524602798411433429654578447576178201192811213906945039801816554813443340335539746088544333862389210163400722298187955254329856142013147898541550967718411884473535977713351598617615396099851631140629288953908640605927191954563907205104727782732258845888644991192018159320210555466961098381435765016850075303356563371472178948062249038870524277734842240823954800125856702974110931395058852054456100830581060763341065691825667666583675193576537997961639928462570248984991542343311335446589383224709845313814751727893178777946796513185841804329513622384640875577656430316338250532179635689608812146153637576883524787321862455677699794561195900531835329540825010143987863114494655360307436617781131724897602428082189140356136459597046260500702240516955786498232230213808848031343982416688121490170097138371563355970008718889934199665416935483488511702426101372114968942848043061384232366598908479019050197868420043160382305154186561467311952913513164112696100554649654246462012974685760480526427268279003064953064899233689971831526730100777713270981144780145214916425063924054375667704689902796120770723039537122029930595324118044896312491734451880930738624619772383334439376879390924127385681614795801376103183798742993894105953269395395050755373404059994579820259116630809791682979652066157857211669537250442949018213818534513824238908653350781034241499637720067727406962743595248304911868319927426960189716782943618774921863266270952252591457385388706110580815111133043166952352730415734836211195831944208607133414902694457081428670152582468727419008074788320723113336334082961244912673764490282705461806258151027953180324499134179327630313540394302494685761907772486900781918552824178100127378640179809669083105121629169375746736989031878946676227902832682480423394623246493828227210241052121775366090863295035986219538625676900618907745079987113641807228279574803083897626909297946333007822368131942457798684873464071566811215550265180567375308166287891580507281115398510743724849609850115487962873556749402900767443948436552788133067349829416848526033673062210583338107038672789776947388465502527926580054484472918891724789332924238217411488790540631715179410181439297582749047118732111813313363616898143387731169329518441581616933312652973381966557268472451843750099604310739687590171969958914353750695703221988685642373420173084982659291436437171886603626353904219998741387645321520148277856926909821852152500560108051482518805185957185135076710244422510188155604084490722413329901585120999753648625255812472376467400073437692618772586476471892243426876435988765516502042887484543429421901003288770081968225278315265943054905761441075565877281110627974614229725767635720065068131478202844403430070256267170918971794153116552344467273563927538018173888289056236694683637781555971651118382449319476392004856020274652696767317698070095260236104203080387599988676391550295997086272942952258432892353660786001785829021365860250196130614818187049950408971360221413021695904018364585682639399123487920635979417351820025700529759563784053910954778159252113370563243765069072465915342801263549941932580454998601922803599695893990098565443711753437576536857167048557016686222763895724358401560530731070818191443462782077809921286357030409867313397489841708669582703131886411891342949457050718249711483844100264679280666828449126233404152713103498769281535450901381678337414393603491507585724816612648541088579360027856157158362740833550738824697756333095474725369517111282968117376283320922631581961633074873736449938170855581254440041015615609501924736130547569978887901297622605512904548134110791983736125335837705088425890075342645189580219469849658673415266613926755495366275096243198799006752477027374873045151081468867656589849909498671448040604882014612462683629807691174741645461952041372615781538514059730547868899504396379072777540807353780582164631282097379821709475258911283786141773270751523408846685412845962617369247766131142045466802359795304271089169705321702472715430660487491187091493217543519051072689672705802855427623974476378177400301772098861462183979248653519389335742489830711944751878372389858436699121286741165412735060639038542699099706365343960206226913605767186199299540172287334361450121527014180680295121993526213695554125875640335918439869415650839795679324511723716544532577988969546917055521453794060413638050675464039123279859177254395858794864413458823417758780714991450988011541229836885387454828743949318416886601483655849571138433537873213198870128096480961147002099080157427998209348208203016225814932457107283607544040025531824953547702140516553717847445183322546164439962958115728464028604682026877431126047483717714858486157133764506157685651178298965389451941207676483443950601387309144802954037587270168651701044914431498043359514513239830534259757640798018316813688298284484455391107230906430389761274636019638229866370109855352295807618451963080617328400822438387873989343681383409366537793810458635590197998338726674253247677974986778035362926266500644957077277238731000287772414208018570384806622264319913731359996263384351239757915414713786268350248218877029281997340190589742761945506649584477952709080973487062819864974382109915149594917916986874447675039096992107087533019192029473428434634398959657850822679295657397385803716940515144721118520619379995202827887441830889331942033440007317526053095219885633231581374169920517161910205645823159871373895764519213163809391779017701710757931114376198240795069063731239501161789816201753774474954355673639901094650073012448090478965971417336534565855864014701708035094624419599320308137812909845791525693625353371466983285281092625051646151012384247640170184193227575043058690110730106727969749793813676698337659105292066270808689910467750897719865646529449357702196811718033885421116360070023382895478777438892780405349049768580299191908302413923886870072011804938974634748690641858092300460992086949292532789246745295627461031911684175291968539797936105757406750634745221960016229686421869190453810820554388928134616252591238481743773718028701252725466316959916119205809177320693184244749952204080941748707693441102571675221418515481597344403727251236560217575663251324905939746260196459702913685253616653555698302066582863427195740151581542912570836557771762157087595698007042543581683843011138932102781736046988315201486837141006721493081174766595072138656965811739624913680270305821806030074865168123289424281853630656751631259902638271291323185497899695422588537014582044604848377891239248589286470481742320466716089536642565300847127036741665496922606928649521593926488110712824987406064437813495519871811134501946481292169090055890983399880496848814006603501678321991091499609533703465912867046130698617544765048250580502348049541739663122881945895176447895425898082050911888257541170281174524915725374288550233243034879795438996510208701936487631527002098177919515592098880431396363959301196282404099643496668185379071448575394395315398198222982154546291052184761225049967576488291150655861974047107201321334543154132773678233366439927584302626914050883796662648652668569311799571795127868124731518232254590744843368543528183092834521752541836410255576494285815965692062752081089177331330407292487952742088382567669413505039132980353837287466347511945166294522027643016190160218041790285703932177400489560260552180901913639119777784948613609899032974728386298986465637222694950827079110782458316343866906420465470636294789604874608862169543935778378897825448387964763620522198704038738162630447576601801498033445388255203104133433108398597650620713013040607335160561548637816652733367150144786660673702989911251363360222504466082500154997395821120662564173057215743823927105300759459101565186565902807787937660226318209880477413383197431952857364954008361167806087099922959001244233411452771748500175954844728074868085211183476994526780783195472179157557744251347077260591424739312775431185468157907634194715367060819882687448671174038638473644518364794051224151637344263783271241805947107792005271628617903052059847483607835285309538037307433125506546709758420292981511130410787975462802140152582600399955564544205923005907639321073127299182012233994902844378553502883504745413234346983269198304672759337706715523714223659400456406903428448398818592830985471768142661919380699864331986549221406103017905613417602362448346339388175084229210806874748864434659768579623496643760520052696020482564521085740248634492534604655236685282895467995497194931859434245949103942916444675549620846597552176121097104087684955766423067599580134906309334113814504841889338184951811416629164428067448183834466868122121415512818012540798265172610193674127719510697508647318762289798014483121424142334914370700602943382897298693288599312483650534643664427409628268942135456907305831997391624512038376118157044412927488407115600243582030381078042544409232297278525692348854947718412361500507960712489802819112080938749462860061062839233952073931648097598179936843659118517194305325568144293426122189159530903772600402134628079600549694143542492443818169349606287998373926994894398293100024461500770481784291099063322031368858974249135045449046799997521975544715049799938438975176752229541401197391460232421102986187175513114334937479804155292756770965269318627480901095745806509836105919403993516153800425941650643854772615618011636420510661066853785269039063311973678161367400666466093111002377391806671627119939428952434764701191084811735652302342474268020324668980888138113076795289540668632691029951570421822733310112258785497583831562450800512322748799619161395540050533229643700823902185328926700037196903914925209607936836854533338633929298069957797363189627375223652168971482729860358753208978502986210542687615510479103173510109102206729629710658966193897812040079737531955083762535528046552635272474916715066467947971442312218614626649474953058573029168846333196526722081191035431285394581442363736842345556143340602387472801821900077683990629183679597818115895457915292044317466300296741379573411968007426820870846025856899057105944152933801264818577136906936964993924458073323881031008179101192342168157925050995481709678901305627863250378705959455585643007876544856745244752632531864755988909623150103425665074150861153410172193793717220817927424841216694623141008237394426444135707078406228087416821818214191122582349667207376369152060325072731369784011142087506534564254765474119569053269904031358434193368496451351551112446464794165441453395780468087206028289155874582483647790323162743242756137386012915608994732941716102852865734584772724692355879459225970094121988282172737909396692807042415446917250301025582807655107733891619052889134265261945803913067843678231848178026572942388758038241346061797787707259487051736775874087733354420537769869177524278946496648851622767328847657946534279523066436290691506180944803810306202420415591957415657242639877663808308139013766942641362689618411476300115475508295042600261992603025381375362031061954699496706153206858189802262155162257266429512236414345595440537717165857865416415642668904731948528033649704651095225572386296434194290025382318828507001154891621866541211889078408456120420099249215666404481704155486951073908279191710859650045218186011921084039716978011404451616158659838543496460347604921758217869762042659275675347521943351037724805469932109518906340651104294983721003105031659740464312466676286883768589919538462806802631098048244968848022846777915208568534126472215638282293703878240354717426351449084264533284793382457053496885953539346731471739350858460687563850327740018238097243419336068734878576517182316016338206581711662010087719158709567051824006857655445826102484999203338712418522339643880783609000376472839712042224439658245833188302896932439168616030769988937446630428806392866949772793654608657001474332667969252548557176845177426686869509527748650227758173320642249908018351039481225399312931218698588014734292616314951668449927585763420527525486853855013261801643914398100258998589851562838757117709252990193676835038656268692723933326015584388748059194168191623844239384156014140450139880988767889286157304517537110148220300981660137610391987207587168172106110610093823618773827889342215557910256853008263168824045407635834985667225890995799733555052825134947171536915442438640229350753549210253933002057871369305047895131704190914374416525493556337427073772065072482041483305427737227836514361075198294949698887688597359133109543684593784536956901172073303486370863937539390573848604661010171512350787500899018097952920867415537084067575654595784546743311454440810382295454563860106159870073006529179012694133981932883759376133974443443867809511926378730061315692554435851908304310507460796317248839315584250501452367091517096343901542442423142734246541784965115057054212838833121865905141319897284872847389225979561450663840047714974633269804199867091975210661877006971998507719169175243027841855719320000651059777673809829839934581770472639869206611166011091329411820440918996236008959871862322489718077690980369265336830701289493306155429386937625815568597465186564329549680103561936508261635862550363170547275240639353302799560391717907156477053106740597593627447714206004326080881135697236557772348962653731283189579297881686541626984889719586577321071571134137896860929368746989477127532442985842225083027539292078682309769592937893003421767024454694818153539525133402293963855030833912779493540348419504993873396441670684504817600714556093676336865174223888313357378572900065996906997009978657959132466444445536821294236589215010931049734771516555971966254104623665610966421769182311274518252868422673031079291248714656901531337518004779394672438155310295022467724968384074334736150490211907735544306885823945744468180546154507344247761709954440693569064883080378503186675654613931230356115100379983478853701743741448485881308786203024750612145614307336287212041672316260589364817855751595683460409739744104492618870693873814888335338646388642142794336796621478176135947283080150131427164858896052726682977516319224202883727870715964396254849912839019914666290003029285613286246264164873665260568893536851543476870690035753152128986262724653155320125321842583001395337726947060331128793773738044155710588715561979626130661958746469875544801132748579474224262694995477114192250316489040817627796067598592361086497985127681653253322263285175372914736143825593662643282105838762087511935620531842983277717151435622524527754676328267399179199769030576790851970859743608298754651761544133449033750796572596937788081690307347201011303195836390980987614601687846349382103192125360447989381914742204363710581639823264375189045348130405247528654169377835412979518223830710568981950561574806556635148128542642659351896881567851733668126151761358239493575318206270854301102376171969349253284197336617681128195837369900363460740732477999645199716833692086987592658474249101732072732346427134201644947181526697174400365049996474371852969099008030321946441925271618715887334220993072922931262021589588320968081683876145235823178219413306271440139572351736128583270514202077148000077090127209914401918864863750743920234109706238918357909942610399038702957831858886639674316746157257670328599044501192051696481903666162735499486015531199006800655996601464272133755842604954637919576583299901027629428875493891952021704748799254546283792787458243401047470577784949543216360829008301320483300294342653568057093703496419308557563588432047881650203753490704838080969705816997045309941265744895239398634619228102665955109630950652165101371193595144668732588743754345265812306698222040709393384899541045960396404314618445882404902843069810077060501799228491167574057106328943588012199184368558906755360488638620711774007972537139687664510326968205166223131194402606677672903482262983088808330305630478522125558797526783350362191170851067663383056707879462899969204897484881812369350256425930976076230127641910567313646254861470452860836816933286426778481495609403961445384871306640088747933674779931670984056044346354105355746367622663306106652523232438579884064512527555679118980213793584255416018114547852320026944249728296166597492318373181245753649476652368553783731032125319316665440214294217525606695537291077797640612351699049494506877078708856995182931349228884001215688971958571886868677212930438002897586465506341975672894441499413039462182583998235252048126952861557805340851076149811892707066546030907200577893869258602781707663714186036065944889349375232953868309393753573217962167418033662055186561020857127619939759455393228383015849778417733826801547253765834590834188156315495976671483654425262959984166908279702166234874248237113601138408070647703523275734985789382515626787110513435474731423757601480916135904459206880640122656637915274818748646827618946838872855752409923419948270099428440924253213051290257499405586337578884831922187094909836212476143288739535117128284243638494396174240386643526513563300508852809364459748322743743230101974877728374706909479335402612971160084244590793310759144277704468175670067215561882005126098288034959062358143554029864084871539237175786653629540897397879283735571393329865609806259400639359322640223357989156858339182083561477210435480171115809311191123980369876416330150390087634554259702094051002089934338878947109632081539736415497080532874704494215939045401805205507121839277811831132098393935182312791935174646717441410393919341918400574662955139897106182987342738885225176713582266242685775524520178331478434257606123299271781487856847592868664403747328738587189720385221611881088853606171365170713804183148461115293183475410385541115895023189643412798240251053092518451005224667771960527371609351568333175119298600233143923254382666453035883675017547776921222191758225238887678381689250481539985763769962155011772434238958635230186886305570741626043488300162806142250129420419313932294689028519320801562064031755365770178520390512603153521927620970226978186668479583944235989445681380207599483718197203799089767966876732463743411812595836858764050734974074920529803389274448809725461610890188946227881014755660573683150738890803075362207079692936026485525468864647028932498622710035237774816919378744513406645677993913636481663079377119818050673116117035082573710084361434663352952025328128998629236025602515082417226031818816475145319524891893846881801713400681391850919713509117587277671210691712423762353830017486539058990646680310992123290814301925319714602449369372934399940268583356807050905746313132070438523352401974248964888073310909104696939752458441012211684244104417190312184571956052781741519307061146120635676363469710251542411454227558191795722254314319418807153891515288690880254865600478847445902677787824620969201912315788025550744981936985188614323686450841319926276158899111960225309589903546106075480037338941804600273852272801620272639431924700091109294856102635337982597523238273076147348521731313911348908833518577734510161222310460406439183882191884619392934500789884207328641024885414036943411034156110059870199397006880066583306354477564629617693643988419141348919676911857450262590082898796595091545492746620625517538041352028023015490744369646462829464132100074566579462679513606864034488337422129309824214671233471577756970411629505950352973867669659546259821019297285306253925028316396546826818636775978949073199355132516659431356207009285860040328318874790846688773385755447600542113134086123547602083932206029410007213084828222400836375248584978952531377420642823400121954578223373126806694369468380936674635786295645280758760426475517825441284731620399745416955893240896833666215799302156765850544328475079646787182193838377288584517997729554276358723040457470301376028624948392252363169391021611135677460836759314761332635357253787522724311430185633703014174799523963490693440894749114523062293574412519363370014965492419197990214086774472991093682147369398068655191822882088722357862278537976850591349824823928318158955170559968653991219965560658220726224076497495236623599700593707513828460255829350737172253705413301874396697275819149641994721664399622714120131937046903964193919753877441010453083327897031752714466011539106674948022254751125458275002544631769276346500747693162103306702906875545478117538251179208151061535881809059463146769672371107336315951198563180970334783283813305577872655080564031062136451877647955138969861467384103369403306044336898362320841105841359760183243528476490754087980050408224592183405109731752727498960738245998869207386939974114738788877402774262621613428684782538167295366343421911094992589579676755981619982840543364356451502995382223347793992978434231763672687180503122951253361793263720347294230420038723525354409874389835660924806600580246551443026608397200294965367565262701831008048310979170226805977765816168744045843568676761595510980675480947652389792739593239599114129575278472616890144214866654118872424388173562716035879124160364972121578048322091547996402353828657631734300362976718665288901039084617208987566159394150128732682713550456953145541881089089365646372123848023272517564602052783858883256257615987569329839726838618098863042134827924957014526400727132588148755558200232039233295463413097884522373497545668675557559554859593851889250853693584286343283761299396581049064133593056097065466756036324487869579586389547518350574822636267571716257028671532256718936523844062826335646135170770027433524837378988383195314194548986431154270878683923415109782274470224897096041070198338990750193220890095040863568845246858711817129786849743349065878130393072933872694274268685269818167395609997674314237512948045372373738745802237909677552846130838601881609257668985754919669603131071898175217652118621991378484383049305346597446928935364226974072759372932012817255699096553079754328664919948504130549664693959556424529451999523299007664122293166405228712495023476373608752778723476467533443048795145457254653173673478253175711063071141343883133219358932095289260281427852975767987691276752966906235073350459099323487829854734755600445618150119198986067734616901679450090154819449119759281652293437278206372911753910855525554553005637328364569291440202355152418812811135458887985034023771648073719681947486957087101898534854228578195899979886637561864512574278517365961264910915372502252841493117163824393335308393662999604827929866222570981422474116479953376555823664858241677086175223716178477955559542604961848954117578150229112475467810526116778439777980006914201163910942954333710661682600535617937165251581890633064389556703259441020102391006972410232775788577947553093397028412581662668839460150686315055149356791850697462678664083829594102388457790376768312409875124368715667952250491169249747024384636604237052897079361524152885814449983962192779769903999464592387648353110967907097382304800477898950086645830930213778097352069434855990702915518979773971878767984261691558448801230912885981390261414699091696805936116146888324457694415568231765796315980235950640490508372795766527812266442162932612195855090117216839743353690993785646877180613682921379127608269975325153065329835650040162991564660900991374684600481990688648220637448836618906881288422477891196866919582897467895086046330908126698875363203124263401004509819485610538748921855380945589095254067401949005777790792941369768916400193217310001187464062245130714045133759628777906202594322037923167136923321028989407889852605291128707301555039546874745841670081963133158538772353533626787589959064352793240775281132773625913806614038797540248195612674457155521249767359943031382836366605948615303570960199318448284157081262439633894635298914668558675547341364032218081911818814071465046839893970823521622293889439883601439823994602807324863908273275505575526468750527067782458006833289683644454101069463401148054880900828390926695753638722780094967058285315924998623070067791357650166483665110985536007721202515021905506583238280048170972532338119893341138457899368406802601247013410299994393488808718163483093082998806882812243927302791582225647600318721335507803918068191617731215463026735740924215511306900799623704318972588904771180688078055953143680090739131747031367516431019899223539642046987302997576351762942636599214137863677945402832068059776347441833018571993239532512754426903256679768041765562673580223609110377672079797047925554783697983698507124733476116807704832615338223670922683825801772609157444361841130213970238456824180813190300978693768481442492833839659760403551945388870779249910514405728134555327608118601456719909858879848220904441304841062089075804429917860443846094325848154314841212665817052326340383447935123331658490570111943164502016415241847895960976935143685695465712405416397458810965948443253947454869915835289066823974595348094164361298067592376389903126606944224170762995317598674764902005737850861580504946010186557041529327399094439235169111845050866131151262492485106121868634698896234814806391909275621479971529140745496035737180129195473650096466867956830013016324698181177947376813767743040190196351805791007666275821858887795296960882059098110930932405341494842738407933148783888418699504015297129977049979268130170846211409382706765705848604897787454708550048977497882966839289545170629947930355400965043735318243029147834384462734910079697538479584891196936242312568351094059107610103517842493887094513007828215060408583640837217240863763225886398165652286252892392760545427251117634705482552158115154570157779509433764157067631045866829917813560777110423148846078562340802882863603085341940430125640849751728410667006171625954069198612389375379568917297964333261247698801416419464695761953911471166239599463520611543681940604659870202981466057452323451894431838380968546295288021316164590469051182007095558928709969353896466952242477171986941117659869222558689695230637885457525862531787109021103870978573300195342485310414065218815853850103776206519596215702902382932814491137650122736548443092000313921438528162323741462364250188152594154033737034870832156079276664875479767025191922873207891835403996475075146716770918840181166403132691028404267253646575419968269673906816066676843138712845386215959283469766544843729076066571768855482512609167992766132138796883271658019881045492712720248038656362048195715041481478077540905720796044896542877873595993306576179307978346584838699693571937213420923951647678744791905729340885523773499113925146412577647819361694635233453300766654871789455805326122391585065519832853279468686680390904424674470633890559392750295465840450629554352478910764973885081113011601200963111736489644041877322376570681090832293500058909072579054531400715234570382190938454151234941488609017416916305492928460454040766364895390125604207490025448331988623401649739369637472332819598476219071122808590297954909147194660807094163530935412904536028516229597166724422833295074501584073354537714769764362775669969508395625111241801255371459501032077322353897746277107491518226126931769558522531118066584958376457853781623513907398388216955057982089247406640957802246015691322690281786117060650925247534048803729063371331817243125816386217379460568969862929362845749056249556979936456921174485180415833976461386226854629075208050548265004024963356707318735029723964551034290513004768245439809910857779302885619874042626128289812434133020558229648465788464342861844854976031586592007802277237992326895675199334085361844003387670480231912469005306829244068638059027278829563962534648520386008918911014241863410917175337847504371235102764762953864589139992647748249505954334062658790862776868674016972771371774294762871692724814769553318658496169976361511430674281746256475025508512528163625491318338041191961009805960478696344213886556036975366853495146472297434192538729974547198187788540512380543625559063309508383606459517558426406036787924353936076163115040859000241639938533459436680368641148161239635111569978018627106792917829799146632591461676020527959254485733059449796958106769287061422620164727757460976800150705090905160914082270160486559594824773301801401797913502041866375304856719569504691823862075844817347495308623332225468917330640764212426876512460249736983967515691845550027688527655233753511304515796782458334523118031513815685382572591823264904176287664669740809276440819502685196584555835006299879044411580187577824722119420499073075701205324381097804093261346232695318150804526903231520339015785480285119360137885671011794259657730927253771168894881781806334100063272407744650506657010306485897643808626836999944915030268284285204424874639370921179471436338229786241441061728950968927205080299208622008478411285338658100503993829689901574828352864697069143071410628205499602138870813191275558668805603334848651847920876925748733947571322908700981780818184330938467439477831030208093545445485585791659351151142057267119888872376798215084355838803706535992124819027155114860317763771613826020291066567277884041044572033111756312819925752630450478672718996333635849334009034848447089140891523525517774053487223826484523266275893754445972600215533783244801203071214234967062106742196703399422554333416877096537875043482556612637799232340289868002955146741414069123648954591920902934543132861122223063750363913217307776712243390394330744077892706160641209467808687801559347959481514579979216513009821867014378906474573753817243945378874597275807181530131238908766091250589959046045641572714833705641791689802896810797457473242082810841574603877440488359765774201202853562125163056673842940822171901670159797467781153711582894529385547059171827509774096713854454938719133404501064075790363643854730105683424870583204147886470039518394419789391148052457510261476527332186017565571565542474996066606882916554112509218689771732474991329907575941808875843546573866284352729261359456384314692895444537943731826828982679002138554532556713631196503042819825452613867434733574261607800617306142534479911531156262861572944243193322355829440780310061604352301704817233486236423020796335249722891937564678083916247253028690037484831276709634925697840183668116971250895063961574158605917218808197574570995498897267152469759918894071059739301820261047970816168010784239674022755231110592649752006361232897938406743906104827594829974883855750431788985846678496294097512431635455212056203600859013125264833262357400464704184128365472447883927681749395167722285221856466602910564366442685279362175680369188025986575374659420688442131037849819286183790870220881317690619902144261883884345088456111012949664572325938620594746437692093637260924396307630289894990207114524264942639960054071536879486453650148675482051483048073201244862617572558999012066423190010591169053062303827301340234299172675605914080718663884615935411267306447831824867035496469848111726446803797317771131736310212979006179368535053792226785888808512015143943301353925144753076106899013328728366831958956062584781221138982902395827081565580001886061575355805318017808134683081946860361777511119313834787949483809013620136707636351123727534159106092590638168880357553867816573580391047774369389594599070646861150543241495404614115712993200602922329097024064561796747544284837265791547354069727627197657266350627404477418907912927482310632156622409193421964892470277327544819148283630249999427583033912920156118498540024356078224882807352860111869444533283879043942173685336615049947655098187668131323427408406416868129520375920177788197653403397820858447780539905567218159137029417220964558620079751606207864634923662615156785401796802089599805039473044207111774620724708564708299899452689201253287684491505752323480219793745453852137045550745302593724318650772631418290480598155826511845985786054236090819912982521278537331873877029175185029759546100558915478024299840260683904247343330213920644791509122885614566158160451981328506077630869961429553341860780828013820372287308460916819551104797208900765608373429374794115991335947453470116992343916099923832709080034892390473303497007584728098295631950964596998957062968048098997208011856680139332073694706445778862793389161103428073809274194311729103036809766679093312565361283355589611649176748599839930185105888903349858558797350992965585687725724887707018377263867398737205459762715541957949248544842450018693511781313916421192816796474141086971405727155721966587181855286724985743808231638760344785591788061540051151941845446858752561499367978572618288248104752745784377131164490498520247199020231894427132616208520372051188261768754919873539559114316588922329371797158489488666963895312547606544950246271432765194231103740918264437844970044659418619494338643418005074511876327263935791767038941305359705492530789728534612397179925198335899431767827838802268279747117043402404226883491271106580256449746312263711889715533938550022947942459274256832969353738384749221514967215751451274897208786841495627417062542639590826427034883949366199812125734020832782208943358864475789274303206170396153373937276575628711220658968565881976961415603738434182517048268775764440543304216347578886191788169928393609452363508467242904385476080001176531792872605353957271975783508023065426550172799015994645117111799966014596439206401131251959984679150283802817779322362919658778204663396892262441204037588938752136999720010111773912953035686741592233951826553400599287692243989509403075816785782419692788858218583511877981906097231280251884351636189753763166274933256730541376755153926177681100006412239269669978666491806192622850094806448385463225002127250776959367523400324498937148275269135804131914601692289582653114597171114317229859293235698441432592971996981056826131177037105594372774733714473307605462735179800495958538550228233330956814907788466021036217220817132923878938346881560042659182940631588343296537907266781280765464901745517500068449038710216861433863750274744033453114964438072293583513836757922670458972518338581129120710249599059894773970170400058572373453587275097130650886756169297058577304415927541945878478508802868507348674231410895527783888042138957081896782495086632001631671156257087078639033175923776996049335438155391343237904119226857287095043683746800011192876751851369008597251130468998739033561558652237004209020709456154417033633745180080929854699861848034883318288624526436541974323420208879512615797578952470065758748497501589249670561196851111037762837145576517064433169903528466171884061268905379332258445732747035485236990282125145269089867375084431814615479945194033619819957642791256626024960307435449398859954372964905857103790557095037690217173264101080675823185255729858427789521401711333689462796007864840222918141695761603484812805632953187216200835811543706603151892148686095306467818474628755831453506104877706825519355329882191384313061513300166865126384394501161829858088521755481593663146032474851305546025372707898734097673888138810106112728536879417834503947097603135095265183370100691935382048613802711244613297970967521995120433178449810637783201177735878154236165168987575833212606965396427886321128183261499158987154530694604909504225122782319885474443910933362011462340758849352402225403668285631719753437289541442051613173185301876617499832852454023838120522681031503279851914257213770109926393737447450124899277616230478273385306697869612490051256127798296989207380002026315804590346799023568992053632619110507068106209022654723199245241783767338546612849066070061136708348718141614673334493448632983310894678415866024222109169792086217755865043258429703857278939519580009282456605953613856548397547242349038620309060503359340353916328186572270674599648372273505713142722039219610680329724093673609409043059557502535150906256963377714024310976888483008469755242763190331158892046073788630001628804144563006787037793336763052754719100633234097573309169336333389186300342993327086690864054666951150478641517821804931037582126952069661525500010831834645616119650702960666672249562065006865087930345481920171376735580045306123138028143329286287149315400237665812177665468465598729712343365270790308705907519038209085119829965281131224795117198220450813938823066974761424191628823141218484314889113673210404096520868303219634366943783550986715210408387941346031899771970526672239547092975805473639257472036598761262033181959492048325540482152140115858326562725276773181284709646619623156857252867818038260099011484526669425938361848937528383195371434835405202605965824599254502885780187436106480862135931528342939724322745075843663712904727319536586599332303473268701104279692982028926048770798497278911368869608606814972987823422250676145561595953263202255001926958602179386347980662778957356865076206966417985035333334743081651585351011246794184706198921803121418872672814394268412238937910700905271069919110100042946570986650934258294473211080801575085445295037361333408802221077397454812346613121069809214687323114024183122197098519786452850192068733425531505889245772555684922809615652747307584834653922945235771202556546894445379003251689780785474336045438065551342189408124094116849031716136472180223954518387226557652307216551767467713009267621699515973109618709525474395151218477999757026646313201709802312208821815330597685386945836392722102653322938261419165767036681391824730839133104773043753805580978786943568740663709016354177887138642510006855095323827768137630434940642256910610528507738331351126926677713249919319438770350026768516266108928743532321831300321299413389857487344613277151685651042304199190238433729516956518878311663258895897957042874308515984595720098517888823566782599229644850282064596610748731816456886368385825010656217535387325548264983710144403671136687378506543652716475873877401774936321217069019777261200419025117766028610540411485113649281097975769503590089197110207873823625075983643551723041444544733158990869253864540081302927069830749247036101975047513901060997885407437269296600524436946273879825529146677158940341278568917061871720674928616368555992866811396441406838132352098930270497084306262763132747307032250013196960458944170347030493001823585341650370438679966318302732257733153359701318048699625850298924803245195280717830340034619052791792139488654308422746363283020728899371885132400696005202334255834464039929391554255225836545901296462992846942382923367632358254767083442828870883333192293953004504545487456623526284964244416331725615152949701644728419730480116340136562859552007396044819297421539551674367269806919077758279079171997297008057096092509004655577486007477905928751764224326072219043796871436701517750046488723107436329073562524145628012656647270039940830480705289737929244655995579652639147402477008630947639967861523821464611423578998715612359651830842852103284608540622108653854600643005766960168106072447459310221456181248027546060667999966482395730227992075032834083117925717604756911160016078879397207229686163230651307994325792519400041409046512668549570850957970634799369002431667830653423752854060571000781356683698322542027084261375045846866583546623827917116479171639781184183923663937772871138688121286964063277374302474491483839336734328862770471611443024486895699861412212925780547212348530533283272600485113720401425867188395204721609343611587570986391865981149359455388638054989094438603707081981111918071296942443644270685091163363719820561776776654976611785286000353499296302328780858429927763388209379251676551859488127180351090886042172079797350913356930990405170849873693879558428150263811597581615682826494215248314314620770490534996156552287434272973734562217273752385532065022311239588561529947072319280386945294966156249476223618271299203045830835342539630676987552547825097509384424189368889337434367275843751231170166195982582459039712357061200743470203178073745522623820827566739947937844964454253783622102676352876736569812472286438164918050507487750640005311406412744600847478490338063121393360469198734956102329423712950873307433199541304194281972795628537925472843130729618723946819426881667311297844972241540111823942279270005646176008541292931025478323150195801056028079841436337380217535606226441785444632870102930865776833584603860814825808049717939022470639544460785050759996076275414793988425891798423747467573550890176862688155633713352876954414010498298307223073420071129059304145827399745970844955200722604169824964782488110178401709241834996153410725870311804527702929349556367441347366544616642639767579409434798526911426464173445107889618003770791792137458264027502214395434470442729136361548668832159213025254315066124746421017829460088651712090375753111477819913092982096960504051951862343506374940045428007743847193591863263809544096186120397622265814762520152490263310093931111160163069644206724864170667812326541080135662193474585072875011916376007552888787796335271832375254875358398784139610432963323651154240293114815888048690466049065826653302553253774136885944439275537563471730572674647796356886038824854207812684802720353335405307232873753599680785358345179036313028808091633889900132534968639977699689014656932081187854792603627582288920681127183475175284722056307679911585234136827439004375644701456560598824715814987079385803166931515359694209798928697393812556369158154878241109011089583026617676649424570512723658533325674675013174984327668312011034262959906327220100143551540444005131721842670787354145919628001416964166155623240232987423004802076789951888645705520142030810587924773438338529006220820052065658326487769063119896997383294329150923812698224636713085142206174022971725098873736390590153034917350398824774831357450584526067333310995444311857163517257043526228351302506593202606479849528271062212761586449912098449279262828107914429028067597253255692514168981107332453619052021675342070392809112102063453800269657844400144246061968338572282510136864492598025199148241644491382356919352048473692667973840564612685465997512551555554679074796786863778727766393271739242194685072897599432159223253165873498812005310227294151018936805923690938928300516186063316017311717118889460755348568391186737086891120702053551622288365564584429826423770083854498533014721341195807313538288893366282834001954101977898585672668263293297688280317205970211451743825380994534729081198082788783895212104440251533998985079444622995914006386413501571457042576451379636671779731199225618858685856264026525572486039146022136226196486688731324013439330402580947206168983330115942799894197368033459034745538854940894232032397328725103753384546747774295866284363362234277293242846911819481286497693702137015370118346113643811421788460966499502464151211167576059360441111441972747995941290079783456540044551872462267262817452587208203862118123754958044101009448024196814832265916746610619806681292449160092569793841411841691270471884029636129696491683219536295982631375001794950889614969556326262535347713738035546478038677757507904302959761085708009188858035087543619245024274443443120380697252485694593470789069886916195218886864169984718729266899320623320804401830423406930112874152511793795160196528508834740748648465601161513889511916603376470750405130548985885183311429631039682234046647113532537833648311518786346314327891643969387372554240128684484913101952248544461441909388610978835171617322236191280234714130573181510707696091670169702732504939958010478031862232095867867434266686197963895820575542673785634787129756779745104001667807061832745237257399577998277561300015896962521839790454738933418699933475057687281766024613892043375364111050064445848351103218108223807668340181551352196538711286224095283063757707846802033188114667465240970157917230704015939764342987191728847829528128827219500277682767189100400879178599471722268191436252803214114212760440316302145132541672160382672490479591694472562549512711947493705014117171390669072165539408892872468360108401342966492633408583280026662259738702227934271779978097955173922416319082140998728586546185758223009276548794824846223880506114558908913743855941658044657220377354875602409808592492889808973721022279400408236572878562894335770814617081032432137988442848742015501292063965353672684817304810503282296689135809763574661821123700913778087877424957276549580832046162609593812695520807110955188931442466191027000546674585918929287728943303257580575371474536850386445720449278324286713607343738974786624801103842677694958255762454166152309525854715661250549262977320783174658474956923609441489523686455339849332062216012484132002965476472250245541084010988994530585979383660907850383832579409240286291757095311183164492528394580854168186030878410340818695119346401926860248369172762221265815204534721528774269367434334443894258518493923786151964918281618679621286279240670397172926858834866494849685717685435254526094020072473441058026271915056739974342371043505638250501004714561956114472696223730138006875071956964116232676620523295373168679345500934278195839223383538910249132877088036277081650726525975590058879789233126312253500498783641971064738058706339575979259529478537409802465087518098401065910871387383928695282779396625145643626626772901642735115427214965925315822573909896339513440474090249567675531755619632147794004503673382933261035902601059268368796508473482489310632843714405652045540705365629156967164553245419036022313971786357140453799425794455728854831459399705604140065915124616075191592549342380519076533424526772528256495538273216308121198664362825203211035606833184346611516075349061926632646826788923419281657431820665286892207125305546501473315799366410342623333925011352913029594122809442317932050307018000185491355288597201221627332385687914838381565130195833030751197235640376716417202449510779281231744075401313680993830697305208506529361991708821678612211397533879663922020144598903036206820846313207623117097670941377775422313705878297280401388257911031867020910318939818552749825066031077214140217175202765730071859025496920937612901564571481172090161372337791870345609892370260878286977883193658253111465083833035830226206823648083718332247317020316698140075809295893808960074744498205800676511779187863697304644798974962475473603152974473383817213375767569430968143899224341042642534131815288967187174145060683869575213560414222656884933758850711890548090051043397121378449026502148549945064222192005925154671006448079459639336417031912217729100967301649969672527317434618824086951795945994744915056188070228840728966945176889097378909632559722769169850717211197155592220268706807548976872373538373782197682060148969412837001354359433613664790623224838658683408397853940927653954086559805214632129687872860422872890983820714884500150632984459324381636628085639432910272374933559897137830687199964332113850709278128527566295649755501534034704901106074720377644714003668005748409122777370216073348290159018535783627272348029642178641157501599532484467026403790079434572385995794261251340155893145879489489005044109020172576576151296246063726825974497651811756653777720528928672983441227999208293547991074838976688828140431547170193241630241834639159198090765411546827742125408490154918693986990205205390819376055581899938486298046629967732655054228906130779061826294760589930951291240208470480382486121866141128775060578628830367796953338853235599301971910082073904114159634415711641937218833096307904567784709345493580459184463672317315184214052134399466905586106611216717146932818016261690517962802938391038989764926502646920198968777085594650118605288317718992837989615945427366609244186034243722847224583667501226785162004571207385611952101227426293854339240079491161104066646253271603173686704222153454447848766858713001088441535993148582783228248592822328305587840341315329763584854691727236620005100421684730071382278722592912299207920780049299701678088356224736462534306167062465135668313313955215023315624235305419663643788832384440039258529368463276819255351268356308268363177045493968927839288589820635115925009671988537233745589284999881652579201836320069728696728042613778818919948217723297119634555183207727411498174097590570639393114251818407236112241837858961159905509624328342062725561148397697758391222327700517438662887144114013900736913674962853257291052261568170542324921295884381106230545603637115094376879631224136868147634604003159206127911195155629447869186897409656298509376091871633450852811239079136265317032267376290586602767023572746849990965912310336241841112703875283940341380200677963724750611257630704378127415275867382326264140603831708470213930209203206293026731777618087240995076586145227780661696537710620357184565944933629367590897659119565641374229891497487482334251545612953856885822623905314250648579191059089356650625155520417480193298595656975542409699393501055449620622548244286767143727194669675030997206634463629242476668840982132205395318369066921598402183303347824754794419239916162371331930253682868513235141560576484029788866469668511484236186223487344834418073432794055860843628079195743468583539925928099299142241498908706337158666495849843401645054667332677214325521676727794339790225352806867623250959481832578551040108522872878404889592826869293748709521576781301757000857393566328269434965361103573614920352130278785153178139913604677798572140693460342899506146618289843375617837640623922874866512909591284982799836696099872696818124457515943042794868800730121039133027875116709027480523442756949543754527878199155579424420997473103969522268986590000620797181548212495634781403685761721786651411233955675556851226772670465367321251200818032567138616372371848495099585812048417394955133313569892214191280814860001028958645609966821950589818815508878434063954254454444782674803718756566743048036681714218790424934521972633092744396966638195472682112736156965822953827768948236598125946268531646393544126854583378394565764608283901709266337430090472152567077169224932448263532522191634987997545597380277348705833349080613237248244513150237042635850996427105108029792136990773394535526055700693844354244101030874954990213408149123928223613565730059389529173765878765552969146408911848952820813501813915265570960839876265458515358386128913549962456642083842656129286530967756790643172346907626814074268523083412861491671246720648166932607708898648764404942761221786785240659414411835958757218283184352284203659842621604512012796128453895772333450908734674026768707208921793968514521453027508539721683313218551196473715444870862217768475855541450183528826256395599112062250571291904711874733895542448303173175345789476751698912844508914075636612685698710680801815485260948437083587506404974533363744674644411680109867751655841989492627388867896824753904160089758335845062499213189032151234741406885188391196569797193623856989209598970157208087490867603817430884213381196448973725029513700880163416837281708846119785947969644798675414188332992822117678942359628639340310549545741063322415698099348464350376134509550370227678698931450081219165021679245086333121881647601646228110152426066205323053864225081749538452843337324058869719955408839821399225061424098373872633329917355626835023341112054691287303243697452093306472417884157242301601096234821098930379606769185460302351688098949811093253483485511891212883474871074627800353109602752707576865301854108934195222215358467011371751491674016682878824653778621953046057934036589562554083730950333738342833255115615524674963663876451358649840764473869816716974150913629406298541466992123933165934698540349123002102027074665115877766180183827488356077699109856040942292373218979371053442475551763839082297881500207939604400295098643234338760944059645720872840094498510014602830751328214180427222210331698171013103630024703800069756657613098151544281940466114481304166492330885752021366281843470801332117935336263299382022620774975972418672464440051479498208529347484245775556030359142004244396060809308583206476472612364598111875951910935049735533260012969988253296985815030705528629008776593850246063533012476699371401702228206618884226038510178113013509252310377710286167079565483323349928775138384182654260254443417482470080339899059586787831157407311158162217611924185873324837027797369014396945749316617208319039109292653161411607897522946891693834291748101389803319337727009024764280584345934303762434643611553236885857844796440832060690635184936549376152211833849942370107503589788641559192029484855455285349759167400475967297082371662746922750725212360517353405122137575073595421306795676145011189020592990684870131000208751070790593271307437995174035922212248214873039870965240192345041710808867046154863316459975541764895708744389390968688021369291901069814620671673155656659387337918332287329563578123398636096602573466374670710684318062214193409798967474632062296901353427172359211018386220268140832856937288858433081833575990230287233976183333984178130827682710277378886028890146467771850725305338287434895686134901173254520313344637575121099482151832019767060799558311680476380557584943088115390431479439630564823616896572259812416632085766775904893603706353362457851034406461248543196829426535107846438857813684908195450885944980406560041581063569795206350617694752865939080933579372695137034819857246395488072109110555139995586407393805875076896356512436636939479948419127405653600485443440983199965586146584380870870544579132605851489109507162687562022772935225913448889596454292851405443226032269479451053224057075407937502480497331568003623776027632547348334199596655872005122024426949724591947236484765284943145522565921197999567423911660940009960889624824277115298342937040141108158095281991371146107376610175201046500906395499832160520582538925889739517932151729242789938942309662211807400473173748609982794923433348828175132162501284044536379364131289557987011950417201257071117491903347332614029066780019578628616413564225975536786781500655846169935109866169811194794481714453154158471409803797091851162979604837523260244613022155006059354849285003801361503756577294674503824479873450754108996361851255500344122105005801496432670679355165738650128856023917192315665069727712918030710971462633133656557011675632139498479963227512204356524316152780048766320857203629219910345038965392697492889832606858648133684813582260128818551520453951159685108009518064587791232498009682105271172449054091730009450705940087626129780715082153110785668453060060433864303917911470420697441907359407428240720519682522654221207152831869297318860347572308468336816675067457682402463340362641793213569296788273379913810764443879285291117245116410512632401389175362557248644417688813047860587011830927560871185750158869160485665999454846020232965818630260914801227086994289696250839604518966380187666481648255951287905043328391859402607176047061922716460953779874871879852201007508777500597142732030488764759464169607143984244106639799486570734380881728116864909261059464690729229363179041454188903853987746658757475757640057664455030339917153083004549263734878846086394542214701933005837115531850868262084043587530142700962652525039764698735477467031255751097743238900542921642049337531505244582952907030473680004507519017326599800538264239626382898797326862320212290612512452758908156149176235703477156074723317096530795537425932979086389446706625341525803471238350437530348415241868242335655695006855101842070805756390417228108533810128782894679510809578515925616384660358798618532207639115785109529626634712368853071181539510606852877078009305514421548570158281452187719752129973288195687458422821620058061199618824038364809196605457230597466585111850425021350897147920527115550442087629830646896192272618613311859855297532459962908784796781271501910952237122467686443026231891071372493194803806188823468034227556953386237755118356634849842686825231557248686611797297170379995121734956276279137826560690627435377210508866636221796170782354990091209980791347999986927342902363471317605851416858065803584093466085263397343620849426977957342676749666184545245775078644206923032384449568736834702179044784239743258822928909755251208271720412778341678408031521000469749138286952368778431728786048031427022325910156072173230295979553529559066965403213815510102357313264420464169466375174340214447070759085180731718520588456215367394880244699747991799663778298639089180124454551979759122979072449504676560597549125787557206331633241095552779085113224016927715367479729616881593620529885383010543497864142722993346498454411518390968681755731477429978155626593547465399693581609949190961686679352708516608241310898532596418867253700606186599002393135646621221139583368475464283357755906832783260822898715679162305376484020520269297687760706876899469473079699862340414277970224805000552222283398889901569956800437736621177951759903055015476430152109375348022020277576020011113209331751027278229742626663063305284980683168266680399689398232010013838817908297151426228734594497361684069331765374612891491999033667081556683889240364853821014193662630125859452396896226187281645866798424487478966486833596984778204002062129241572340451725566092737969603248088922953971274203232094239709877444623397033083559107777614343208966273496220584662376461974196754876654727934810407651539249860724009685864205245535204731627650261833600430278659513546583066631821150261536390929713068850167318662368135366041577081059830448348834765464240620771565447618766299561475311788474106541741660145513310470925192860455193425460047454923199115543234279623876392513107046423334220425152816773646391335194459428162554698475788975474498726105933346217328120987067677014917359237027509070803384122178530608442976425636540173089479082010116568453663219941480243336184049146310609948827311160790383391249587117837792116492214025260544206964535108199284921918667607931961146911114437519120990216277310297840994098446074140534543342445464607945830856422199540050713331797291853841622856529954708842762423108429155343414723707021910601957562379112363757296211081305839445745634311015400790819887842733949216519884334588233464290420557965934073328228183166295154376652740578044668295869687140131289714704894124794858596666160749367790895288562919278775182282060113925439299773860120480734494920214543563860133894687272723819818031405968819602003518582982636009505331165443491369288995387972309157159867049225676645485384944014126770833824254855603844076679393745923663712231701497185728527755256730091320666499757823659215884948884154962695286532996436967876467984736679721225951565742409294997232887961237483795234482090527360869930621242338283786646258075585079960035514986807051920919815387781827655428998653546545350450143473006249941417560343414047628377408124729978721193773214331767628039385797732039735116162112295312258879641234368224591032893447949412773697570520700778613919546845477863229955238700054178141955897540860360195023483928618694048106311176994708123463151448228862856819215587240346322073615152947244413856079421405895083384922448485114405417989457189628314494056955590006321964444552649019005211500053156564734629377782340599260424635971968263274666669308974173585515794652100549406218318083674676273702241360663903232806824823575912707704239190146705593116745345511548865707036877211869348553382492481065373300293069104829546877131539382895731758700979243392909470534381410445868749901376573240710599520725720968419680612521068529425525644256449398909219793067907564707646319969177441449089834688494342153112259199175872048769361954455448901022691604864464580097579763735656596024260456228836500738390377363559361468198266876378890425152207884285888602974180929523357973566095094454204116769340157968531248712590371985066696954140887101939669952782532781089613618123618065133684633486868999648222609864273430191501354705335101184726056552876426433989155012957125445974524111806292716386922840370619205924360082075647581737786056722287004148537303994471963480351425049424119012111731504873757979312641793073735613887393385346267863920192073359026869370061413033983915114536809151816093154403518613311266827867393402673769900917750692867512444613158093241270673760196378463590303502356003835047258905089624991232452534573655688687834275029345796140215091918911018792063489503892147418709481080717455913698721077693438269559480516528579219119890935244347517967144454927771598137540810842977156607998824668058606459984663973491278756005985272581997551762642911769532742867362544204471048811086148016501369336609590848733889006833801010668772196846867233000065217582796861133053050383828292341515659977997496452863360503744969757873557993472846211677514595126523551672345905293490966196785790414246076504697161604696879044276460442122701923640822963607060358027905524046644392948970667859638731714250797452335124137828907123650382576297340816797519483665522451912659904542702203905170653766789790149660970293449450940369448233659320043298812320570258715544405671232814381706883287572503918882414414619385712103999923581692722443684114537548275303974866518036267543369651007631261115959041477131097128382664792977439689339172600331073983570885950912737937831272817860547676103005849736213861219253627653633812065141517927933646589043308859423141636686716318352394455652254039760618086135424212972661618862286464710635560331444021637158127061426720849832652456252016194918221564752238497629441672029340919594849053711239022845623960032922508028736260284496153496856867214370978961805083840423413376457945707188155892572289649927767562743945296658999102075686182334517034353278236753795995396806912925522118172328725663549642820065154631739797386717648936747170685729574723742569702117184535142876353863881761995893426784196006944283092594359851807139581084575311363195013497288847882554439770030268393378442453587766005412414964670646171736589739826456089360893985331494578068648580462586842885404646707850342469336592706072540806150797490858888490606081470112257517630460239709642066316439056585395400557720655326456060386905536040664867277858598082655435659457340802835584062309890457333205967703980760540990980605855364901670504076697815457441703202968157213827039328134091985421226605487038108232659157582048646037598689223856466919630988807189020799010538120918435705913364286272958710776673055488452050603870964910838422037649931598774296101389335984147991727679346866037420077298823998839081474443533208632919098415129860514770334811389179314425853110892212249985862455262590057513073181619426773959079586708373252946235798949812039181365854752193896411736478804101385975330355780118706485134812615007456850827725383329011321220700499384539826727812309807483320910966378694883773331464272753681447354269639730676930202760243653422865857212721481900797715456919793697243888698447078421948122492336171853408785884903097153302530931697439882963255782266473063644430148798380384125940417283864757816406193673697989641770276483165369386704715640854284480635222719411753518655745874374933629722484152760194129440688931757316252517949619874213320612488433023232977964506175537849149514028806335422196274676775157424011879395998030555286962224058109116131971666162843607735424675227919540587680934598875703279280815285388136370005121318442071263925444608775316557242727319163761389553624865670997688617232175415966174322287272695032422526227963192408452129610703803929038449355596912965202352795457889306056939405263546430168851603844612123905451595639309534333116671502612600008867854460699961011554778429682175625570354377906248569120075329896136626298885258400261758088963693527874353705546391268020438221129756408554497996828926165873042765015741021288220548198303468359282840484802696736533749139265431014253132342144652771242550628214302676219062421539004227151410507887943130749443796798329916354982270680443611265319347742003741537264999712796256179863967097014690939224642961280279965513162411069675826153663152113268397644401389325072606007289577501739102276005304215535471832606516975651777709241590595700527751863726002900174315820649785103351722171200361930460064119780207445799665270599092448295911300939058167048158983559756862587340573468839211584855955498056276165575334441081600350695364960509176037500162183206372590046194887346143481872664151104318558940946545465936099160173800311727374934641942484886570558502256937388420127476539590660589886856489254603077229562323228351645868413465595742165734498456902916802948569811313407489849477890988759855735392675472061333304712633993942434899018502343131802380919677682640070975373849601175166213681821641642532103797016453808675972767595832770860187335806394944839942132840444167162465167715286969994846044402324938176648920818778303180244502288681771467598449566503952870760195382038854899789151862333130697128012748545653551925635162704531006540473845633665147001619651497802962506392733714898996373799697233615500212761745822732928367966607936060483652213498153378781776443472322743135263413894531516530382931556651196805544510751780229675911871833907316492755394018812044493089669956641608154020083773922390226342525951505012348331418359926166525573004430078024260483359815824754154502737748828992818443642614742590262125179522066857012156303178228136167718307084930476278094557745748434924021260158909690966749815653678853865611037246088595405671316829335169248001265644321502131570940899271610272483857790747843144216163704302878890436920922969293583207846965663552253502749646680924524516283123074074799254460842376842413137644243440331632589378859965188472242063708195814844745167117091517230164609184211181588114997459854966809577235531273323615691910786301189888034093671284618983818623775574355654078079322365056078535978191535043751002217670067825959265791791781419378973509317599463189404237519927963012634195641182120387819133185445781084310782592528810284498279925427542483942702840075011793412652510434934743459281846221054272630252640355134046192874808750355654511575955238092867542308234268500244418027057165639349078356704078190689212304798905124670555155085246160350359752663645798970462033204111003294644317903023597455779869771241631268772869095597603085790386226334397950283296097520528293052380423679338558011553955067967137386667385119631920532079292974179732906686505828360936686477935700339721829503085089635729096464039732553962508579785435277145742293473264590460271127364845857056407941800166918088980277019680449939378972874614447926131326294759751431387599797422059486849763821890191181743593223168323879991447899689303222495288977212527054823422400473022614846848910858916592922592158561307304670000346197922458975642671626784327904331528211160749063910140307438307153578678891539401071603336627938413191883753889928236757076684244789971945318751690305533957311075805912860363798485863833283759803260856746335672680665662607263105984345879976553711666042990259099513219907831808458828694245892574491781482607565330631254634874857306444373712805663904077134683298181150748996374539747126454653573189269749566600047532246707464142791517373016071568894337894741275213056310016026416640266378900155769862088547753404110695749417017425852178044980151192766874641614955998235971986631523222868011049310856077915653352449230679894573931612353788916827148873728755315367727278621283455179506580821162526913730663073857826474170799976819490961230658710129188274498257639647243510984794636477939342378377942826395522361081613595315109670611880693255803995394989990261362972712521808098491008108456159688136274305994059949071250434788781174152525260049859235563854629998822685918703060689132323047886177680990015511024249067026030317523388142010255616727081576438143573136911247181564077277721192068038907061190555893894621992083482331469809135343903739691615138413220797634315303041280223002068961720710100633600077777296827651788937207086752590509319226151930146457986116011481327452485646708965957655790992344667276147050265628731981678200223262937571180768719748209027476500883315948879556736345561003395963660077796388522782273845007558087254501087623192268906407044715369436440731562720058287249768381389519959657026933819463659416340252358306372931772538123702827858407207282054537659307681401938866924439234033243487563241388436958511508463485694622438392407310985018218458195230391598805426462425776519173708141595593305060376330204301261638695763142421733556169292152235449288587304936467183848419051415086099165416059909400267971005052988288424028713041222622012772283909982133704263105872504468255457359366794676939601101998083779791713595375764842828874821997241331521226850177170040028254877427816632211645617027026713505936413185675384572891314105651525556884529109917607578037215493994358612417344550543906817465275184119730167009980591670180742848954789002502619748323845306587605098976514496885169730733238868419682446209198935280353250019491303748246165106977888340227434011180718395567707623478175658970278765669915445831996114283662994756274441465423561979258086622057184983516499623025087390216966296648016130532520908459493321779171352304355802457021858367537206161454001280312887086866780571526758270816100707924301030216101829497909279152877732154133506494519265998007053894749541782735600447603271583267002115159711038499319819686649851167533376166963235472435259676639682535571398374825773897599801406321128569809278050795636334871446319628464706871480927335461018851452459989242016423585550800347620374989688253794137979428668880255819673852128044948763578582829088442240737101925065413677371476603061090376792745998781936785628062486945386238283355154133645255673048804463594748825801695314905238322197393865813171714590461155213589850537508788489346268176093968309910544741406970253951774275953104850238249444461423093235490809393666342249781375279922509384800621556705210068526861273893800434790431284197922682785535337146628497609585870479748765694046276627987282112847587030045789916394313060828993652035364557297456258414707226512055760366027540039933821347609621530514970431471512460485079007272854294683666963128027862339761227268798095906147414800247214072228761925745178254980655527909931551255742698368512737598338467465178210637788883740170773216130244203147480829169950340568373462253587794179104318641501800884534338895298210003882320119779373444280877394384390756125362481687390219273260627149830857887855486601845967826482753367031585872517605080629695486019072134177940157001089646286959902173186450095367579790259006028311928402578587047333912845813023033925007349464330454776149900100827634279529393901753865345164457285199826956867152747009752978932516188994066317384533596615365907305105471175629905034565405014311256203518743172641301636155484850808395882279026158588116092029294712744487327406038482151010110132725551959799776077924530133142199862850407290596657570020494862747166469143250463626837352476434303901436117058638958325979433939484595230817370674217638981050615302828403454665381880575593356435671496677241130489890281004030799231155753574333952146626704784754074748304818904327541565504282632690034983349569721709818295548869605019146135989447896620322149767413442206380734043023276122447482109944423973358486224302551183330313269110468393919413308942260484071635823372418678968722065779477694366381721726864852056481763816087576019346650012012814302981925086724976135612075080107353987441237568472789826287505253885755785716993250219298387560783456148663828274364376846537758244312996713015234759852429096048967762366520091213617498974295955493210205235466566155121681782538135973168388056661919348357288376582482794133159561945372177804735480873082835434932462198461185867856444803060540121499321967238661517739316831762369656109905007885145571119603351140868673713828665807840872902513836996915397566997218999606924860289807053866316572830264207403014366017540291382340778060075115577903723020008157477942525515269704564975511696440150206514094762030222098679305798768066045922678106125182259661326898365629093029779044262736301288482354823286455818312132551578515160858106794000081543844969841463816503323464031529704936300000459780215861706472344894994479627512650271701922214404071261484115487876800950003327460034219966215379608804138399432700531942390612477967395118227086624119105905843052635967748101946554077145980921664364397849796726806907891818186102047982642013440946784464022231524308226884517748813386346355393829172839986503122278390811638609076039821114538606578917704385822663716324681312178438287599886329782071116351113757487744588261402163808172326988196694516759105315899815328856744536776183022002620030344466635876402613278531659153024788033588279739486764155864732820189715646473455524123298715231772248072294455517840033726065100327262765059433010267713260459893113226042005943851456753092190851491420033513224128476493407370547438353240157339492892882148812752443874190922149315684909151124862330554740493783436114307175059196707522485402209778312761401121920490163488004461748981041900618936834643080664623832761053636702701240224269363441737367644511520275428745614460226754703273017546255777953045152012568884125091064459850729127622750100452635503652375726162824742679954893167543601643650544701317625217769793168415901870585686754438814752023902887925722063644924336702521977120368136549566186232630613580851996592736910873817016574203412168658492024301503299026769314179054966731899404568649232842916417159014092566857330783968049022773941562373382604684103792405549837734680397983699798039017267944849186582995287628709024662835232596665697143379864808149137118662963979905921014561526848563229495858679991247909924029698782175425947385099316613382227048247060225964529899048586810172510919313279083140934861194746251224286975571801564598139307433214919960577856430844427413594978438529140395422976668843214717513964902712804016319387516593002558401392328675473241238040274919837183992816898947583526147560441903507995349246987046311214847991783436111850919773873407453527057147791303030230144208854364926433628012251634682969713507749660450053196632077836264527486504554949884662973378474761641283041423768627516387096741375729886621857494363100121001822993891864711696427934004084760657036658795086628220936133965270782683647886009690953522951485704091882234607041583456538233596238442198987154241890204142828336656609678576869824311804358816822339105553889120118423446555880201428316071255584149414790359327895809273004853594683913240129824714030457485213561817348475956534067545125964076575587963196492710030579796166161006647916957462500283423562137728543686643831193132567764454080696480624610146794600387504795699036387485074545549632696848450180628892579008222726935908395078674452106575807098770918516770314537695600604543638038735595000826538739444720752262939747240129115520114887703089192353945705754282938982027294804163519431698706874969628259387538899266534650044328167822602936973244981667905903646304269064143604363939922513480664421408562651347640312070951814420561594421172216161779598813529034284117168362770804904338437887280239639377666731457702901701344282526028510285384957864953425907400064764748470905443496036673568465221594451537896803744103490258251013521869060716964556328914135874686477517645749388757536895683406236036893346048058547473736244353895280287874311858755464324153018035476069510071791938612332795005294442772976368521311307977325422329200135786548326462505740787357941937481613387662734417396824118820358230506252805646395214395618676762392183553226756817522618871722009749536232516931761884807926727199206512122863133831371195774780306575434220998534341193011825227921435983795845178988958502071204125339637226198682909985163122949222122605929396686044009090322551489384939553325386467220025814408984807382335672727676548991549288052421655592456814563491923897636466090519547772504697943283381266216735037462398699213527990510171282280974696420766479921909294863868092753443926176673941873588847291605828840778269362827635435807803607411274965156007014637634707930998504724832865132275466122597947722126591245363640381720342714499787868026398751092908362433976488025235842133407259208377820686728228012880580913289382161678263862594298164499104163263884537079186022025609335566128825927166191374554087208866977187462317936708327284402725408572018279298517863644560152921685191951435872951120688651470377541695274028357142447895483458208233806788386994752663682491802528514868409172670652817315963907924085606986028063867222201422507753603370914875199568119235931506434316626629889294736697887156621362575290837825294066025380169500738435141547744986103111650686437249266952879967265578367896263320663896263955851432418904125860280473421384184820024945866399106458483290305991231293486954171746415156921381181138428557338391363933982879096331355526564360524075919131075795219261908591061858838432383578210611867122240977950548188851488466499772974272677186686311196365652637557434047805997230819822982957726712732831967007017746369547317519763187258334123042610472727800013269822630300299556474580983685925041204224058237474699250403450026143900766867438147712702555099886755028984713200207330274528907492095871592513397363443721842828259589555192813123880267023621000660451222935894561729765540528283096814514704020654333305790576711022232391573024309942289964387086294782755729606531426393968729389589161840205517617841281908961039376215077967676456228818250339283634846481255006210774804426966878341484062960187895317057828543297086690702656989596629020483633236070139306000694282440766199492825060936956187316700872373946549150776670965024585738495300574662415562123524517819602916946950403614289540510977879093811823290336906036061987121448576241619037352860003141459301321092526248137366205687574739763384622945644317499345533309550260664628443379220917740123027297852035633878897557856702957545372827478609937308851274613503931709088084080267060982410889469219475083517454050186600820010037198418632532681005626427468993510920768899765843375788120653840668683953789330279369478146033695929275217826772842964229998443286887225035947794737941089979210430275583973685174837631444278905128435618579234163383182117828057575401233515918377917159926719278057501997504573763876301329501321793097821803452096424808409570216226120081920246322790404262563380437127612805450735082529144924440784614500492357631713670321408298660668850928467990434049983818279114479995165458143875335300037194856928147006968421007785901620391405820819898630713596809104387720066882234870071543886025677314944269270069553410381222367671315180176298278528255025776743264412505059905116871749929599374728599912452689928634788824920877228173955300671273460092054324855603634596436106113152488391150202903709170072151707750800064891441428456412246147411648099609701609344358027611162802524096760890659985503503560338893932932766864198837657377071734185097930886118093130756916370412689285520110215732512236021337097765253033888131360185245063672357907341599275236445837006126788756042075843552339886645915267849876204548107665936177297386182938496871017205996432808542173187393788450041468167851576392153148641148467186743719459122195808139662989243972502377200916471225826848127392872070299180369649219224963572328299770068689076017837130853693043205976427261401698956417194358026701716021252504455758608142544106875479676767241916248299226602586026529948156072204809688692687120044358104785695219867262030497420492196426265769370227583998067372454923670505877490754775505952901995550546623020924706511350034383674816168745705222857132014511360213533501687878863520201930260329722010827675691187626161627982699362252451058737914709235305253675979029641178580871363935687326793529686094503892824977932855499736298014166284940263988083888129723719209089373620681597476967337816930906876170984058309435528748683886707708411728162679991074883158679469345503849732789837391972697487087551114114590590171785031859147517898778909284393306569329917580192594537528371721800546642217436140839948187070162503288548075839510712682032185869197859604814092966719574207624033330042155393816759823079733945750905980474208292295728528068585531920692966967974730064404188946649915861453613214103509880814194392890862311482648824099803914788768451453992054638199430259899745057731575909646360919112334974394303518755897472963935789639430354508941397400367088746117356398715787396115161222215494498217254754105425100968740018754333805581156689813366309013047300119854301614445713374638825496571211539592735035527602507809148201052643868769205826871753641709164549668507597418098109883557896250505714895973903191605323677070612984696462488260966624239480044167175570017304870690994959280864913295287767337092620094093318538104987869303118928834495469667802843362301185379137956610077106560542030594902046142053229139781420301398398419441405470302161195673703472632927026800649844003342193158057891958013270726222982951128780572440584572867003800597152959108303401318850221674228436649574515957344796362705543505340631980743526195650101888599866616839606222734800352847201469452318887044852503496443556437862033106597707392789528997948837461193022678534275445552001932210275525021564877291902291416578351983053029276339445910451287666636589675105773340877195221438695266550084441110398670441798545699643847493209358576280502523519550283673024574770363612034248924509406060058462813412446394768284224298700490301623413814610485134616597149689769984422976044241607785478906908695254990904750407688288511058322691228542981200218724895434504898299298527730095002909607577947452907656004958848903111984127697488882223950703171650437798914297904713083932999642912153067711144328374782310901660893000677674651409735820000922816166424313927225232288116373856730102153438436636653288479279826259956591514698292095473886207258819820572306491972439304359212191553395872932867575965563162337241272697461831004168431520213337677464477025274555196984966631817184980234625291190231669790146700379389380999589366653157866390092050760135240925297892990744363510089871832623821845594339237945741385799659087200324775668676263587551818933986035077926056958139421702838818549718810302479795409429384150785686412057064122476893397990239253927342793970031481097844891590027471307287065044305852434772114237352366303558039606799181601826300527111244057630989079948785544547339883295536764951412878997828552420659927315474992423652786251759634528349396289666683250720078425893013186087700533239254612446308842583007502537198502335895196864330374778397833395688903627594708956280758603437834428326112536506664018778048224716298519225537779249868531814115567071796114324388932056943516078996031873417593934776685855350710767587408475754032333546526081258531210237045670301760294332492120356690420221916461742809857022793367625077035559868132170619995849409864038473173438140532448816963725790083627346648159437535008713663025694991292822559524994949975758441216156224845322443070159068542249648156189583489490394648933621739959695690961370607757415776942026915120010201054076125943054442094127131149304943713411417661766769886880573107068120669193741916407354921936532348083739788536499172709679795432987564351324359838216171607718334165244404814870461077921650730551591905707531085167135967604505312950239716683706433249444184375387016867821104986628648241893496679901210343108890874239885907185012732788689278781458767162421958549978870924249218769041131179393828644593917695654517011874083254588264940306202129694234570516284527326721113814368595988456167336780262877778446416758914301424491547042507457887897194417124402659696825170128725500682453055057692277230927260559139560278923433384895722852691087984109414010581403718606657088992197901889186633578042477240412501694353217228645272563083405675808432629394796864027515182796573266954906978545914509907830817184407776517742765605051540127253606406807484149411787972085226024418635545485442346139291947868877741705778579849236814039044367481731636529920278149306032336344178616369762791466948159824873873790107450716207840035846735417615552994812325769770020797178550509233383997944841775454286458309554461480136637807252328788400600133089093705343417248297981297395394869740197181059437330506468801552968512025204085248574027072154999634905688846902091294648493474887369565316496423640377995135593049081233501876931363356933753885763687758393898292416191813028423026350263598774273065040297275198483186227803878461988576294816857717319187957011774031131450616497045903623807341514684728106191724270082056818956715564809443652544147034078234729428741806962982291931700216248964053093602228337102520737964598886218604735386117028836877291484227224221306604183432524581072719783847332206014898645932036541324517890447599897627207929989446170634271918693504974591516360581054124451264054839278826248330484199591273548138963410188574438185268473780116970793849172884676102650834632958165035264338089329631693779876176411820966998413573944135850875751950223835655915308065173960632261749966769479384427272134927832440834156738912278919000438102180275604835933247379705235244209660674097678670602090555635901608983864778396773574643209557185245390886972385639846775638615031058478577391328380695606577771219477281863227602125757991562489122551240236897880053437067782560748289043330753938132908674287650934319564946603822237231479182115371546101134462686856388075552099613356654852218346004455269666411106037944516586028600660168329729236450034736966414062410358156495603977683643586746836125760803298567469501077167868674746527094305859331958338628085032870881372512360276090708203038163809942052130016216564399893366678342491522837205977397269079474580306430692626753382840206719224113374261830737837508291184813645220292362755808642849053388559309114251248758385917893378240464711517281479828301366771907442110897250658094647166588584185378088510507817030243348663218653073658520572013410765054825573066972938746336899361038812216216991787925987554270402980910721658992959814745113318238166622500810064399508599451121626592862069009206367395252238395289668942677241457937048760975289939556086168335969636668217477699273367001614192589875972344701063580172548420604939938352315056492128360014722376313032661099356252640782096931687825293687880740821176382970806058563241886160991729873765951422653362016499681194583287633475070856406420522670088926940856713832788484096230708796798938504950474456869755605783522233919773688248768889700039067247562928137010492006625851258480907967929395216654493029772749945523397463876241278926757026655524780621956404872699620059592474383606699200347640793342891896209592593462260003485113247922301947755828125980381532353851292176735319561656172360386569907326989883265310075092008700607571285608034692317816548738167435563460702525054910200618266048412266028902164123080310080881277455472846803389809503607534657509400794318712206798021941778100793662597452084412140324192392746308275283892069331099100581497143031747244395675320051992880426030323466271536909404940656144116911322564348976563687103261486971209517380911218884349202964720386392898628737082443108443662279136143252845567904657131673657549914370181386383819811904160104588245402116233136155098747752421559543261749119466099708472065659698959385051872371866766581270221290628379817298479667375408188183886309291252528606877106405212108468134173135200867824202578457062607221422443085758170558704999066043837002238370767955930560080380374681705361003124554122361705441104892133435900197072502658359377697380248225828423614759752218434696078739334445277503549044426752958928312711145678400912793696308246817716270466079938125627716741483573953696012976866529834522429108138711289814583476815783842275154044908658943093362757616368352416111669049617443668533216956901104712965576804111729000280421844146070456336472674293097867542322225455133659430248587614821033575763254296444426334277988026076806249023428642724534060149059198391610874580141302203949878929114686902997256380551896209597453250859578757285680608876132968002253239063260608093463984870775539704919998560802415155252840668361767023006685779074917517988456969800781493482724718054056538009728453143891890888084588238470127360230472567674933199341592702991386414680372081152064556214486100769982728813070120135107700002214919866171118441523807322381806983553234684422263217276841414459253694179753500443796654403366248554417941035805666922439795815129113494668042715848194958221544850024183008686039565696879359896657737379267651386765255578396292506421778552529179046649278547034943990269730054725538809144177376287839322792200214205513005352358829810526435592353071718575540647324820577974888302967394729958136999431211005218427732259725029361643985995415407955868996597418934209505881478887922663844789282239527405125550705586190459746523582519287862162307881114233158823330096764318402468352682563492484185965136257517496898912361560810726044957173167746607575603800661018534396526423260127155853102809948619360442650011602371644916751426625505349330373172987423139757761161371302466113820591134460420646135954115224215719045556282742957279774045371343843901713485167468242653527262030368696925118588941730964310158731265629234042920632678223128983745774310042903339141047814893280815237796086224687642321889431309684316684109241135561990352304865644389080402710446219347885472543702484155923529240846336029244974154717686505866173886812701489300195808837988699074385460688084913520513644786117964540721217567325628206877157550865395391515289661652764273202096354959481411012935328153663745827047287188663057232021316294955479280578088172730919061746521633599167205289760865572572171967270667193198892607330636634809316939894179712984827985647549017225436913039252483460503518957924577307591782565514900013350396845671329838415966100514121006754292079555368247903494393271283898049278017550155692467825594541139633212216356385335167569877648682207502503473227339972889626616285676551711478990947156114490280965638389550312689354425153751426594396175357640326204647793558082370468870624279326145573138566433066066963136035598752109272229264849810898782410062220237792692807207798102648375226089533575556155179261950314623896062829965810948715526080097025772761038386611304870160099234748377994826647727426737362902957430683738202869951912049415877384182644411341730931280325543265582204474900916825126179956241719111762899306536778710020159050365311481685384869720443397169591675685016412951950617850400905778521145664074665611083787973471202231716270857324279223151670163688350912655638539828470431225510092813016106535779653542684238557140445908010857036250091688201466961961618156754280752717267826061002626821037769606359088898880449210437582199183487370329093457305308973953925271824122870000955502657547815057824333408481094538870436276907162563901367052245254243302818604176645999875338678410461296112314731672105612887028526534052074333540164162330863719012509063373352751947361022611654837233488664809972237098823352671111772255489312243036939260563374449495658023335504776649007302880916768040050598897106645815203788880974850291147381098433765668511436138480285357798777520767377833890395193742591901010348567024180463352698238355766572612386815708016637779915771184914309524451148177458032699707024351073417705240016155854095338609625014939707124839769699405925971209559717486627459247339121850001223950564904687638903092911963108258411475064584039079809931491864119132841520720676742474844887905166837292620993288745570306875469028091604312977444682220710192169403880146483983032828830913360036835930231680748177988884164223201567141875012209196852285483719326720067257118484530995396364367953830587359657330923889430373882170594762583217398035524291881136674376196101856988131555369257348352111473545515206668441213182581131980551423910610593396448313663483969596494993620455498105393834880315255689337102994623745656948996557679043257867526126765162177034802545866151618018090715194119994484657637947723449492982070627369952120098642142599563570867068232635338243136840945032342322939333620119830087668797009811531582924327550718960852697825294966702961749176480691961890859390692195189531866511795772745380189734061884048079760781410093826570384642995143541787687086259734904028682450588650610361748137304459804865368587188192164097573882133736875820749761953739953490325783857241495824975231203664317388388627763658104221014683066766157626372795766239063030807186850721603522484976814910439993983093983602953241020995168040606340269761171444038169562150580920954211334971365202406710380787887713790230599447721250725165864139916611099712527807092873653468329693744216085695869522321279841419803733447540680547198394526504820223005302414711950836932151169215716099496435671377607031822811547361376244846675070369232407170640022806556283008722113156875202597973031414827586591152359253340157577722460594647629842017248072626038439994938893633588364609249774792824982038139775060267260792790226824504507424411077660843169967472163974712320381443065335504824653766107880631716023683641187666791852741614394585847696444033042512289033849948862799261022745494485853504753795819879680351132200293309690397627566866598840735807639037730688643038970335207915597673403997413256415655105569098460572258323118691343567254775563744892892699326921549722201778714898741886471303348485839379109667921649034770221561887191329085510426806033394696753230107083743515631117835875156347992050138717767730674210978873082631424882585418909182187559742288235346483548110932006765848735036252651937491005563695578182938913198095931188707331946788145952214934772437231912340836535029774494115088086109964099712282305563381479231525246180970479793659671846181026745052654961464563368558916091789407970880344937168836851423237837905957614425153000144611788086566300463578755321024436314124626675609204464056018671322514809648066299625341927620745179629020279039174562652496669727621527053753266477303256592407402099914946830767674307255279590390742834136222303440479537467766567608045502663129900766042372594163678688795316907023437062543560597180490051321636791681601456538015482391948587875326945531028251730468105367327141106151396625651998928914564834952782555754119086390258183980931850195361150845026108035293350820827555681290975459823392709918143474442316347876609468267507222012836434609440992888591384691358520996504058938092909824856723858568061234874494984058647647511365680382038636602021158677608814838978681885199408153696989259290714876466666608068045223746077765854884316604350575498914897616378739042025556808208453929028366837644383797547601843739501684887049422243574410392887825914278889628674906947213687359043021436392987803064352414477935821653766833949401638900241832503562265867025830194617977241826642814248051082095012498289129196796909906737894525445972684600163475862908079759971334638977719354433941350487929850519606216679787832340666069489879346364929662013516067064633547312950763371812896196118783172624923431655565277719070855622563352843503602198320429818571658827594400766076514312657723571327895047782794387485021581154470100232007742368772166664506293674366206796799013165972216806274523276341763894335352656656212473766375097129938360877008774962923029123019048942695679463036816498721358287068964384910664650238450697536532455351768803732001166117211415860610066415315219893875391865320282348840699999438914786868109382397476676388067547488137209135694156313389023254530365453449372076269519518328326009908532927515609588137151632168380370235068858263297367601059616706713326824661171669292361624397247154047367565040744467115722479465225057822789501548994089663451823475673752926467296661668543718069380942475231605489603260219621877294920528657202330822272366779195852707685777942254421435345138612047469840361196507153502199053932022115190919138506399771069240533653125042443646937757055193883396425113412673107513627921076879891644730498923029285736972673575976003809780541307976330909592036160671427782984385356568633923506035754506675446532243990375377852862385262414345700824410266583323992014296233128051439993967042642708923218489006266644763445198456650904175262766809045515831753712414248037153142405899952444938128047422951476549001170233225836637475117371637957619497517951849341565657273050908243351388748817064851336347797275498502583941425287265906388750622462043720673223373035360953276278980473392829116491300544051010532376048694259457559087412599594583936526001819666561744036534263223164309237271034351816806477193993010596924589206288398678247684751321937885794569525805911539460224068450693655682980271286190824981453957655026226682904528805904678944150280012898012097664061098653203977010877290773395389562411484294058467893054343495502276457966096736651132136304651264912217381766675735163969266530478828100067672125254138205515007902593670120306911398828895150440017656903397506918143439371665269287317594296491412798243689327256686947281740970187991444618531084907853087524697695530393346768922017042406625889353486643399053965125319585822268771061411089385206393828759747251900932958105411582900601888664368672895407715623072197185120454276229929682933527798411339187613814061188355972478437120039121277685943250222194092588367337405053093710483850097090894461321342395707396786282327095913506695791110561834495865276501648489992340520242429166928744704104507837879708579231365414814810488667985873166322203389403099520504400037360372053145468276042288630816941002823146658432430957673674170970901100029494787522184677359289785883749162797758588142064991914037852950129461024104651374664085203989416351188978096625671058775143163399424793392605134570167762175330804640824367521866159953233592762208798994632411731947563932774722470924750233384888997755770332856963598145879850413693312024170881799692480738028524994827113466062504452754608022191819530175342389680863966612060219555356378838038300673477015991448517045454284773237294842858376145444177132346606646161958190760592793795191080639982779361243666915701387349741380969099124763508633764688171091392368142608181559830271429112085786648288032982537158259738301624399557592972614649576233617386766738000250604211163807356977472773519074978472233305150020990113637921474439751971396214277933460526890839802787463338338163082288171543871043956483164422644521247864671354364263457691211598072990065776737705150910333384839351825128708156446465882962935491460693815044189696380361861211907367298925987189128784059773044653090679293331094919575814535771692270912373883412028085202076574350490694217025600804954525478885618068561794885423540113879370601730913235805575668368524412067087564498745695808705487987817496429074269294472829847822036624138727988060700268428792362058655679952856893453635657182892377331679607428693528104606032682960899981701487405567196286586456233206137093544398650269324275571167123721314052951438754777606740764222161869081234776854912031475018402733291803413187161271897743325502408761986536708335682772445485574743514110363948516002529551480024654030835549511233156390328348042180662510133944108600925760136120823481057969797063176818547795272278869212225761647202856501016645953072993363480298207748202322381302279591735895006086385040617567146427953726428254211170834773266650823304950625045753988674224194020387685915858175152534100414332504016528517106171278572957640480369472264739029667951402521022777854842120803142631386408415079368294717247447338837817936415897695144189834505500883786758350621390471616738665576206234387208893205397522836207882614716103510213123479079713454051333442038958886030921810555273025134946950752907438780865840109776915995356498850525251051102245555411277913944512796439752389568244442087974278646094223396284783211247847882426571515450775451019672442019176193132380830372690462697459809482126502796104606910937868613841478487109898648828316993019203948077854051968593166422963491203184945030474079204549768005583973699876146637830245907263709859726553074620789656830463759290987161035304958822078166331030473123628206968709517095435642618406361935770070848130015229185962740533529997638782261879871200344754405251926272793853752356906829226410519737671354172292270458297745743784150207450760927540279795786443105377263081843960377595966651820027063052118089647026604707489810798061850144009451352706524389718687450776005471730044774482795509715977078092731448016993173637730481187614451954937024347241835336806981423256470131065969896031135127335386781695450631430302460970437475100917342416230730468992204060367362452283954738178659175514295054121672223324333129864890591718070478899164006259216972878444621692548366680589337545146937568056463920249197677606120589741601213160325236609856704579642549509482747650396176949585886154639321115484278901113209873506057993393444313333899069665972092008134714471433146563985574076590815537993604527098558528424175810188696791808627780355873264676044184359660778678977976888224395149990277604101768203492589568425380784370470553676001059558220719712523735746373169435292591862703717073555465199732074847371046915993813128441218599032316591713217741109413542093612394003553821721027477767878008797044952091039814487441155254803906203271910589381895213396502570423464102032028652967613623197335050488165092711090665086784729548512511529087041704906320523086918611149731749103922590260084164032905715164022230023293385985551652936910104641165981245499471183969263766181169643118130106093152972077315822308382850839793662716481673687392172697840849098912536773897815646403857987100648504163412754394825229705845371588884450220118518915847508448033521831790292082196892663788344834599403247157723587898413138232265819608675299477108856290647809965562110931296252104153380591517559635718006507002931886542675353726607665069381762496027686100859987539897806102838634549173975958232432214107192475942013323448560335367818201152916080943448973063098937357241779594222483797543110526084661405389224942275564963781026577037645883198980114166525570778432518062714030486055569793151075746570547605271464334261996119591943724754294348331385038034744633431704440984103209572379557444446569865497035529454344354674422710653443126256071162665557736883531137898356721770033079061825227056766783930884085914556907366863695780161478825883995540465843907134173850944794035254979023301332020697451440523651040444661630258541175140256840347716248429143061287582456726770772594034788323170833693873664614155561858210984240040886010131496040328156684372100011492492176576605946025703960926803373949699512993747940244201265198684922826025758505783426304809866931348801888799118674902946904889897054435963652505656497818543104866234957690153590267790690582984312600180721602160839034858020843715298761035262687580128273875531982035234165637902775621781644649673426563299394497085212300478875153037037038074429278800288388109189542396930428870366691323975790192444994323638037231492828098102588886858750771967777451015008040227622456010363374095731225143902958574371143190930716845365583337618465729354023446586869267283020227550856450221074659422647664248568534896284884073001122670760440078659864622137040402147336176252028215340175525745994236279360181684515288698083728658263164090107627530217731441977898875252471651204886872277885320926999892370886933536511762148125993871356601053774397025202332842639980200535953859178923038992302911108271284904583642062707708611396525627195174160874128619724923799813244107037833145495879400120342746699077592072162549615076280618661854867846298160184237814964590165093724998316241303943089002762985001670649906916718934591931220745548948062527533030387305720031342234563379946116101374774740266494076513242155469650691904865201434518929375262062310517498097770406692616151518150249648652451504577149659988678001167609974288646288252551438560258491366885584897007255457488513354612477913173694591655092428434789476921936560545234501686951090540904394552788720757523237247849724567928434729047251957405058842982495959465123379643136203954985601253956654834294887520499729600571943921766286812908437240290565828231568259523114799282747078843953660105438222996743621264221803889305906505586020960048723564626270331308604687872669512644721053078461432250327055586638640541273587798338573328999642377066979938713796956014091804883363172639547573175735672740897352442224352494052361500756039450418132824527044984750894835527063483763415712888985752978058117515090281933214015384918767227685970141116613052948620420026399290250369290873469919056557836271939499471989978613505564300081967789383538978391632465623833220629218767060612797454937385320980392481270756904071550009157258918783820022605793243148420922021901869167825377516680644531726482217049545300164129836490856511642857506411634798485703319670830703747125463533067826215211596491066180684142116201141590134231646129583138251375614389420111265896969491786660280389501050520041057480123296127918731384722989719503194352197011395923914563975149082832033554164043432447360983659353387202106774436471376243037489316357124817168631019212280576572312430199506602264157558465196390909621537735717047358520274372808175917787799933815197536147473628463133211242233040871242650010849500429905751505610054978197252031920443965075687676091074928241633552577293392181617730625545703719732830420188381056400565586052513811207433274254305266498154530652856611155847990982537879258421794859920196416053255664998950405498770420314220283408980139141276227751749840792112230312896763024447350266624835713967118134448842326331736371735553566982593522940314043457926883395331267110116234120729850619195608932743145200659583547782891923155670131328933012398598088559312966059181344888725376098254154801833644058866682815502473395746438782431542055384605503422491570360640674078062424753120128046412136291906948870102947607470050274815015117888846728738145542338009091549688292774942042976193114297037690240221240018017026256564147982719220170987308825224330397372418241658252253518184275530526264889105746511051507044294709692528250055808817687837031658599718652069989031761691299049387034179261349786247187583038715327317287867058625982311128339290085706845643616761460548247590180853570234038176016108104017943296790984323635354607243700024466040294352277886918642712545233928727084839138436769118744162314797781095168231547397195540519050042858851234680868831097079130001728257405890539342950678144199814513724631580114255873837613176572723779027130405829791353402627039128220486049498782568410180149933452757219757009934340247677569218451281508650038595457026952588887999834856197098875438880477575868684982261585556606199833883219578682550913526406292743980236574787572149348370427408789290297463158976971556634408632539269262657805868479580113173720454737298924674997570601422930458557427993617889672378968723399552344977365354061852686139590100016166230666559686701323260712063267529524994888106036909877524120596011726613010602273563222160493328542889398890804837954814235063769615888477492173084481736189556056947674012466759613748093588798128949107215896912475499267380015472501936933968166598511179317618586109225227720247099826878806514668501586732357250105990045147435832457544045943312241784309546343031134216694167061279472911330170806217336753325340143350419946538796248631598116089478082852266713684123169489523898972151754310530002161737606076449896452258295442786238689138451905844738898349728018118843963360575311298080020513769332934618219589347220393835980716129449380676139250827865779994011783939284949232635529834891217809334834851722172585624601722173417045735635286590997259384468004155807286065757624493750113505350432501368249561182287161237799768748352400819116561102053626656373044065489634715963535406771105832491434796536958035743410327324637998681057393466804220413573995352419956603935790947500673368763589191029870087381531134200963395295513466736201747205842387394987136391130197798314468333811766354396208435630389227138803593099162535720061620021819035159271465140727943267288435858227101226890294977302425136777601329194172402971354658196643492001200330568261439284325749584450028423746599237630370647191950589803063339267423314460091673225638160538434832839098907013288470221050863556422744509204337591428132238872254521391797464524079650155525604940625867739027116792456169422123804703702299574302405630421706712539164307690337100978865783315692420453152269614791657943539331040375553131602804412597844970431931729544530005323629436329659888955254509944219408156868677568126366285975141547842713569832410743217687918135567575844189145506054791976307163920018473985482809543650565895374097370750150667814301157968456286808158832342492712771340125918289279197780896394193403227957093039195565739878345479020015282447049746727665557596485285126455259015461463026292884215192300773455414900879300171657157124723608002607189811596139892346842900663484938616645752968351535522256091993505156182699973663819696338926580700964672932262919214491915493576689433564734399211235248285929004012674135983697207677450205272303845784536093016496705646577029484190986330004624072043707842245161374869827068401837061606129568025804229811771659329622482856652721280906342460722564737183411925005090706489201752910472805848006593679248519668542269276161037362449589690554914614255582005196481885349684016200280071797583806971829709877443120116154281272679251910335548395361167724428967569981632137674924354367835820038554234040139250650261446578470721632245107996707025552106348416043974205237396541124951434727018165983660831002209444580610633969112022167379968004405717494501819333987393842665178963458993770687380044940448266088595021425170458350445803674754685667833123233201063376761470048540615591917903343898119638046752961442519427071836819705694832103880829469534992887081240451242281634560291456197037431707117589570260479670175097347637195379190843743909427578743018959985033896043305459051753193431317413238211564877202536861944048204784800597151737555310859921282508573294053579728640116091487523178706393886171969902710822083072439206145307365667270032586116320628694249812709566799503867138888033815855140421002909344399682039910724496143153323614387849933972374055557063977181484032106750514527746348098268962437207675342424923689311373471810732276957316456225885593415127427724922854746045170577837805876172991914939535228047989579847703713011456819412661479790781404653138890376392410870378709831854182045231335701665475286239805575652565466014873188678340814488614614546238903167764764565316610435456875010944326780593993283372906836926264523485784802015015408626353009467853264089962382429242967022736630163265848167341060785120066728887447849921868773170947823032604884568623491078302434099226170265042842519142586402356601323052439623966964123403094601644531790548808790234280517764396057669078241032586515096844055413388738011701054063057623431317268584791018880763373320700069304419595060068325471314736804785454505609579183718656642588895426890602426042399912561555394057756880976346777348222228894928474196027798133682522886717708449532442928973134993690697779191603011879759717499856567899268623605717452298110353396746723782642730566546197619616249532477165867074544684644621789719007344867292998737393552933888028428482603292985426550427908491473130089199191575849130011918609298226809432956848791477069443992655855092024092091842544301286164042677136335375893880220855788770764753818143061467222668510188912901426908417190308212079099684609135917530993018321587078664446199448594100447713015791994832723674476776510834034821700296718882853357455038154123806297813088951252962942186279039572176075546901478369102977935481365696519019572966705727829760842493446078549907993256769213528398761803226889711461668184009496489250134439736217914840490952024733769128719473423041782325705038109396453962335577089372494018329013351144745071173061171677687591390224083923947315428257076893342166354520167055240532481161688553810504304329530132737120962818056992592857913159069392865556808892847265822876801160782421855639656273894228994413486862177520586664075333321324127115402453937883007677848689854599966025310211486480255330169816525374754988166905941095576245326431489270787872639854985069501749311315526679824473149078330592470086439937082323890550780405709010935291547385504123141372628424661211491057825384080372602733720168769872686511849126847322701109453661714276216274053996126735240214598132827533086150466179544105345865254748211255719453472635781345088661251819843761851944083219437341910510519705505557663754554127321383964348413959145581694957748745429118092585480315295580724150947845361384939966736935783097558137226166692509649806574405925953957013884824411418987985206805444170695048416010784619081074716104124064931280063930861575944061013155799836231416260244228203973572372245564404424941117297230781198522118743361202296611579647226074830469504130592729864166306028597453987575695541605746472297410307866868440537024406000398264461435243008220014637878820924061281040134488853756574189123896224746903780835655063920558219917328986060110720925634122265400935109755707175556612034974184427399568224401044205120784206444781073606753934861390071954043145920567317127442279270184964446409148174061168637002719262454864653487778957275508636773587219383871520536087246381958397521825322474066330443659960578142369190195800890019465170078967139159505845540122549552570555008150791493685461973500113863404110973622852504282459013511676162140322521255309833979620023529601305764549587622536371313517849878595936494804240898549133661143460401831757599434845673443212360464251368104418174621174388270826223713321102033052302291135471121393031031658472265356879479654346233326236591078745835910964576810525371231656495331619280424639347661420964857032404411144410953030414792186882092731930078173309361829933983690764691409302529568973030889652686756322724223022186611665455540140114097171021880485833144849334968359011615726474361810488753142704978114444311355914305353459434336202399396192385433657927300350990061528182034632044218441124670267221497780947765787538265818817572044928188390965566103587302798388198579847421875758743119252549066942130881632319556666950927444745759251386600021791584249078612739609242798199457880546498369273205229511829099838573901617462565490954407922920355195024620758804250479301641472746945306206604225568002642787508445976421035826499204169718007180735305251832840284244694601766618582635220500835526239721263917396694907799020470197597293142899796920032193943898091644785267467147942031775436518455641135400054842659361845756142339708316674986772261416954783064778079578531575349151426333714572831695333996726432576115074179213030138205735304387413428297859159330821989963551309575486148300509864398220058533209168776249001544949206296087303485805329410318990458479893769729021765478725303916770472632636410589380423801030133634795252639105351068765502022952303578705625962302073072089773963775039429770707284762587934109694911544493683690000423676117528566538346479032731962138234964408861767522098460505632961955113155120058714686246857661691799146667115607906121044326778640456413816522991259052949164347493574382872615192253202004949437595835563026041974869860646769441334245347930368059367871296202016416264190939518143649165975545365357991395360992932870701867469028177502917193571258371587877256091339010603930778471489514278947231176495795243843326282422295419608340805592881945716978722903150505343834476779206280812363363097899447918536318886636395626293174962578844046796579296596373163032594258016280963006382689396113139703703203838881802554498670125762250407920232622002637074466933775483375143325150176492579300994198424689193903762430357401431776220653252011123396904620909866557967209595826099649104948531624310508198129528006126006576718931169725341066608757138046263903515781598805204809365305280937100309971541176785131184779769550095009973784724341642999764654581301919748566767967595988870037242345122763743614514271827654143566599792288077053180569727930917892348311973394862908019651956993927669964896806904670597506895490624481293033932087400113012266935184483822793179609071426426645461332144923666540825080254589836164766883951315644901311786232614105639761748001286998461912892822254021327805288947485720198686859534660610177824181598308463139679352288493039952945397800333919325336225261440705730020104851315955902575351121413296504914700484734340855481786794638704081164415728283572212386861536419145236621723373238480744336219065327563604361509427639222412363396515048261253939385185539755536433379051703695197313750215278945666943204107320816218193653542010550634879985578099099442247049798079569863493983554334879744632279974303687050969530913666678391323694005867838352598082501263316908684204884931465700998209456402737682680956588863300226620599714830832804574510918623458599197286354432845105674883751606760973300895472903903524717635121313543518862353304239507331553210825038160686993939346861876143977232285117465069747542663733151860612928864705642771886440717125669597299104518050494876697550320714142487364621731870195077334059692770196325296688676312604695465840613320263394661960125186889188892014551936585288829025298342078838069555023069221314055427965211212775007799151230404233233301040560662151863589171859227757179619472643453000439446084768659506557158840673968755926406093715382725659523076106961965453829952218208069878773556189682486148013203479939581591171851497910426045471765625390287821975571389819977053539804300852104565935514138730024379831828175511971555817388620024491460668707463828842363629166813295106014697244139790283968414952766143957571296701160368726269725843545378955870493473636545662743783292486586484714093213424223866195170054622910866982066164840672494103776509135044399791861667906066455742570540145596386001804458282053956820606784142521238020901254694619518863860328011579092998395069991283105280414787540160568152511364918246230650850530616419769182975928218263392827690013724732477965179714517375769041275211000179246987863040869292022644758774655311725482628310810038839282941721938295314910560010020233535986920973733619291847052712496007213946893985799887822193450449467375599345870765135291567088227045514653607621999140317255807918484396594009344877639086398181722515739464605237835414158253377874458727915259805829206252216759925852344706913269062971593590076833028462270362543215951797421468416631624348873228175273980267474796719157262870187422534411912447038673191720551739960160637394416162486224880958342556472304853842940348091280287422988343264853387897159663552524011199861465972050308483173360471721854261346595273937886973765949316355292766690177117207967058408006053031248896271752592817676766690751965937292093056559723916807787761375786096620706257927872243164916722337003454214259751144566391668883689635766017159298009951580340972781976382619311571413178988914862242121833557337761777083969840305524461798570906694364265117794936401640943895075943886988842324481444904446749569021097396867895692466822834404871584616051284914334280217700919147240141427107420093773629292774873190804677692263096402336323498935876062883861866853325415035443488584990046534901822506134335709106493226228792134790611467350630268648590544245146407956232549884387867326247141824898157514735331707429531447969571834157518115480547820049527172332879364201732882094535091949960998302135323431229311307855073277563673459320113297994726736366909106869488679066624539946622306121126698906317696347868281191446494584870147038281564660849187669273569712743940408584751187385082656792495864436458264899004554473884254221056070967204288222251864891060209129183465585921881511995647757340475948098559906117980813845212861862503238661683743939080734222658500601614823339476935324418440309747066211443197922973776035312031503178971702984282074201759543618587990757981549664624708596055171137428900564563268321872029977320468908302900645584863022550676719325366422951518934405449836582670007791299129931181760001641319458090792105960673521284144054140790955433910087817403829272682709079354468591421640439153431694162686038455875293237987705316864882976135130282051447477901410344760476465917190995886890404656031129764439536102118768676997444388651358795202008804450241321254056724755413369413624205347175763327142418102336524645191641423184954741883376188948971902355404514255901207375962149482686465368410597281354388461277269849639810879546047620175260697242071072875615297144165730788852246033566536201667544720844697560435018453285284151778098036198851270448434830869265004754784153201579213398932093377569664270183345751698842525744934714885308303223273580042136358566144144989992433191460133798776652785668447650128162545517346377742290886084929362881319010283370312373173353870604118886162332928458564351999503593653502714681743238549432336239716016423245856972341424387182967686708984594216983831010288377832077269262314852342055475486948525194565107639494248017129080162552092076500990452884541490675983513505150065152630147260842428710102754874103385575516776334017906445068219213344088066525399352979095085129018276964360410435972157886958363131703830803417745661156890936710466237359247306181788650745936891131787069141908288236603751798587396050619211004502295237625208202695771456634307723204189652765014386362872884230940943767071745672051559757559959669576020286481589449974527454007341496790962469144297127764552454606175374514093495660401939945742794136518015658723436922510691035004327740320252106097379842226972528773542749750378747204423909059144531135794173914073809055244957157753525970204111323155397342869854075984056627051339677780811141909297402022524640160889689575843115470549179518696498930837891920655404906029617619035236606822406858580733657309014613566162238649308041593094922764422106726931699097237427340197759778547076529353621042232593358721451064818601173003393647831401810104119645531001735562388766434407271293307662834461782632880467799383763604765169287392666157423311231814075518014337698924240037820811248076164205396904759574950415393856579450372121801316024976660752279283312423375248895587135983501050647825382716621218010861740054530363077994150500997780464883991388516081831753515651471332844469547469407738301868266992322251955156482307838828002862946024145685541093115415653360187710923117851033743161140782883569670650918198244273682927807989645533146024070551613953910391937322602128124935320648019595415866022909227113887499014697047784392604781828730298828072299109518975649259572228809200707052367354768142056288632558297174073042602603379972679380041432594259976055831788206375711423023364322325182980430003226812030986240930415738599407424543140818997713706470563953552237254351827159003602262290781890479320996668993598924122093296581850466999049168006320392979339699775268962055501572030836429909090765529532744241978783668098928573758281969869970604163813283669530488669051582320422051667258783765866006538788980942452871269505799931449692591498479434782195018960591691955541074069125616159537546186553609174972415402796486455248753557916911760358931770569591226151382422843993336688439388979198756643625623075828664276709272811042176837815857215299564094976989624282609744489000356316851452301049258042046109283854116861045585502460830292660564215048188277985168224357281621941402275020453557454032539639716696024556508673789298472391575059899354640698590475676661463722292612369453547696049990797954632150535936070336044498619347849641446181461418305491656513621850016992323187142218006199743148369582631680174960278984775701825676172603273319234936234826447461583529453983084748028368913985651613795059838262032502615432733427850855274579827273102438345206726007715139286705715564895749903740226513432052872947033469126240812283900867404851957804606348753574784112473953023020383599043938996038882952998716273267596498588489155766983388267076032652657879584546188749384837658962671729002680820994676721933193084822824737652999389665537428904581475316760947868566779801733701946820623455032998603720023886211103707686953344905021731483976678788017749649063563003779789534826539467103036196853509522618714324816804936415607411523690221422862721834400924378170492438051873240769603428389463057119309824305147801692433652376714487504789380773555494335898194679029636769281684978445621851016009564450797568548816564529909445390938237131067034857956100764015532061640790802149849692098231393222687369049000643483200413130818381625353244712650107459516720722717400155999328129088835052707269897462368371395488898654691284368787198534583903475243476263765498217189460787944744773193012290994518588383649913651255079903810637913779620764232399203282885123776767083237838514682101440240293627531086758649852381525623338491937327140123620663515224629406573904927597230740577305206238575590512993012527051158959981727469754782089884106660804174145862569685924002167406845107866338787295620198783029061408210417549367743922548170494403209953567051736201739709519644896230184447741234855078545627081400726341911448922295757043459204015083268141916572162339136255430750418947307860948095841270134294152991034202794688977605238001111968938822729702951076958453735364622599400362769119956651082163698218924924719647798667257587524512869875771059881064892250120888215907770881780023939375906989638698930121069195165210760184726203471902487037316774441363403119670739724866177245466585747745727471555041081833475361543569097191696042220455968693437932553308454000043984812363018308223988834122453122357287479877812339319899462128084433893584685511178775076314830155724832225090051439914495628069738573831096432039691482433547135613745537510262894775628390382606067817186099861938314854916067387415046270886491394800989212687694163679044795857798780997612361496311415034477511425758973251764868096696090112125850475958993579306912548486513450743921557850667885746640885582688898474883223660577099218541007944284530146343135176522757494970010287353614097901466277413588210450075420472945067525298309257356835375583863933288945841217168478781412047149540011455800012855650315671492153486840085328550281585868184565261271752788997168745512007865898934307725689220634030485696412979199205148097609056654120518382298512221642987990190791994728223260815963036058060003231305715902716783979991933995615815873770878376352170008525072586379189238765812091213314833878290128705669623010035698411777919121406361708447309081131384233135322485830654352438643617588990455366141665435902468772912644036840466003295026579667853224767100479943940761469802374945269900040241092392118525201358582520095556957570557479260216702974113153677677174390643095732278730487029262284861475031007179881975608271302815671002509389843457975566560229357106545441704385758799369369590912684579526203288215842109952947040396604585423647376322247718493314533505138632886847114445845812616682125882900958151932178046682233483204918839566680415969007315162931401398782091721908146343402081192397905502787641873962633036844278200605389004099568588704208229544671019030488073261353105075767806744723559057068849424677880455111722825428355254489963707422779586562173123683768052351613017396357416248715773994462124640738018208440572384056802400215077476391785754628722490423421694586919640357045867498363810026243098752322360883009383900788172997441973723227923301854788091482509637543290213140567575377826334218943825889740381814077360781945575321791312453506052736109851587828892317228147321676168543778129822146938200505275063609284523766241522830112910521268823497646979050513875324860074006846328185916040997404264914535329110861245449847977504194222712034198760303353611838446738735793377864294152526686320070090014561240907735087792484132791189981224193281711296438732435373135992088544651442859186982691233329175812231929320477608487346901831247118671193343513799978524766365237407693681122031671492597096360216016962652794372137220072174425942259959025138897532258347607288473467991443138047390203623469138191287546357169014417988633707728638639700746674321896199162257772945354957581859620611132703863334951495203346251312772255277339635731612372665465375341232808117133677788034226695674613336474743177920740068990244784398968229055603294111079929346124400222456555164803098367011332019989392686364384374152354376985691731761947110085462829671745769027017058169944148338389565328638900270907856507475336541692813931590136053094256762464906785482975427172380964738828942113708019168429011590294140113995232597902058119111582569116334937902723812414875861848353350996371534662060170178466273942945665202577199796888813416614452684433077698104335479951087972466055505203148533267648161042000742291626244634663182297854917673126171498393492612433474553194132619317408577652807325616647125480590043452936154017026603457225757811069411223640453180133126303834625512628100268242831844140446703355628504652902273606540048220621033808529163331802637770834135092294101202344620764156405512584626043095834749591123307298584478395261514860909472108807898456080281523085476835664850878057654066221669634959807370658033528906396827540872635914713415336041761952644951881550711963378881323942985765703001947931100670455950750508799045857797819263162393441466678171390061532583678265220732000585565802640243714655325881309096541622317180731845577720133342875776375897588343182927568662205345097061872242207523639403037471031020944187312021685790154528917845384046652543518366448374860415367204233217123178648959567885370098430278702316223176800324039591557075463235397809571156522013909530775258556339913356604933579461488442407419973664025812692804645601178092798418574413517706255142966998707866579072181692629859222903719286116492612774657906672807829255760599289245950876605354992604346095445384285251208596450854879077755857953792496452115989859072454174843755267627488217851695122269720554941062714762696011075117830562411600463888427454006391710715394968997091881321950186816837535195631632477010790586137887229500985391786039053159796094870650763870418365659505342182631140179026529041562022096364119562078230022403851851622977986861147321577917540514807649089410268308733083457012064601983412640081330621322804770586712509267847862990224297966100808620425171099213802168942356251766299158869576224797630651931970750156317335748004938905765614598158672353223854673031399192946530177836061408027802571073625224666931573654444154076857573453489749889132768373163402293285700314715395961141236913039858810161389198987886079945351070028995810489971484352063831434934734435978431844665893256574905936180368431335546961761353453741012701692259549788395790004433896102185794279898104710504185276289325049523114707274907669338210362585744110274036308895700309631271944561256517084291453852739658429386165038967220887414136047951448519378293896923777336294883565607380335693890018702840876562547762760929481989900277047181289718509765679973652056501921327445364992090445050883643908888606161194176037746617024481895222359251720966864803641332762668131806354537570650297924684451604071622142528922437298877474594108826407280305764097009360209787442235962848858084961561508301578052115345361398294889736245950837794719726882367279878843015797831495600944889592279612912254039929293125332686490351107100887631311860933383793035870744170034278114087177621409004310132118840102837323309129108463583273815370836028951057200037634955471096963410961801315082561898409525224231374545279035231264985417959375417283430230499099564505814601209356215598073599119120375988578491664545614080044907289907164008220048677312711409338767090895460932054494525231599354274384280192686281928556240350787499691212871286821357791826137229230057399819736068150269481771710803354248148139440749168700368367829307313418923261528641445757577268758651618059600983378092136330532395859656413905295945449812471780322792436416354301287883123970837821671766824493346807224195770181552953401945808476629004899012814117999352320893295254124121684471757682863110547654771567476083904238243907123406195980209690745082617791872163809647185016477313989892843876053570925069817166471134721592608838022035595748009734050530694951621870087819539699457191767948227197918430583403564665810043260143949790233683181839607215569839344236591077358833720463561622113210638827418869966190514826846220177394012579983289775283277626293175394898316931955652025253700411348458015024068733585539017495613002235629176496122843811754519940098039762102414411874333283964951271248945190177280780812996266550508765228647334137051625178304440385582006244445498715304741963095606902655561125477623247471267662158051697441218709740553740470630102035834554982600465866231062149446281928920108687548121819642654819424336396752926952924602370552303865523960344011795188604595024102837794431967346535602765244220666718594043623146989766758553382351412441686530264373530453675385581833366633647192884566458253059374368529328388237354553966467846188417265947087203866335651280587217200934124722079733510520429245754871954671019483538560887312496858019194378915495108833037519952789057028584519179059369941112328093680775690330553377568118841232661184823322177245588112378715566955723048692083980219602132352889372702474509278671563708055359385494602110796282605906785807309886630656371323354290328882583005624190379902191441504137839563041126622294673512050430273580364258850807305957425910373586150625109358424499683953323659513916796021286677356564527408105122014333954775196801784615635453317433558439786812344278027958500510576684575420154567544707916711452326476447024395878498346925619850702917813383894541063643512630026438099960221179050634666701891865213091495701992019648543899158081204167210728042224245743443748823450527346182728624941566812285580570671601201316314589777987759492880652684959578261302386079898426440624685949718875156573937648159279585893994194878850532689841834451459622771732290293500452385941741344830197814876928205086343454406637587447873487243767867074994189427814672780950859125511787342026100044567682103211985742135733927242257217682529023152467752625041076511139790626597556752885294270358591659519885106296391795946010071613543185453143528885963834239499416534637171603021610239948403669467691168812416675260854924079483600765196073224622183730361969122575019391776265831215501628396915465367450689949019996661981902609447862055985361587225892754150120616568548374035582335147944564758767684054532781185639308824585382648248117549032080358235293382556946162158304183653431727101794674965540370607224656499946896475095755756341416180223028260536002620326902560514782406558927681429354114163982044491080358749254379805797032513475816669613802185748568059130809969980251410064999624327059012456145822243415576345529942042704489644717583029020168727636199031971717825950587780319384917160927834175431573958996998342005297121110151124012093489534843071288266406424468865293964399378077838219627671495669528280380353046533192006531547185970773085500600692894916308912003157874799790621738075026802337751302394245514842920809597058628703269948493382688497863315412332745140167947247389474665972752761102815228661704390833968846343145813124697460283805085180295631595978012602902632961010048245775592101666821530360687073344068489556547644874964818260862465212031627594913898958904293967680939066139913393353015535161836327998688979362640804023983065672677005503830045988031203099683283887880274849053757372454437166722704947344647827039938782113171972446381084706138881424826581673688058915532249511045758838624204606926150936756413519610333716167972579560746689324252646265703874941907875186066634650588882584925146064277435749973843305518352022916445619911495357017042044087086915118313641403121907005890625616904600597646957870803768725209652503685494630773677983205101628487007187120361214668739178871391639444060829738076399315081402739174374385936368750787649943530733280522335986776691035976378864163568331177049428561554431667296334164126363691687894686320146158836409495337309185897866864581671179774684463703741316606492323211409704588665727927503322020019898377529138244375929756919634285204867191220790881722210344073444648189016754691839630581935793229090489238503442354808061364820505230523451317658140824844188045209385845204789497806978739974459753678428930700367602457994212913797024932252640085752878760183853257063402151399032849663086557692807661750071918003529174180852024451644214528890233718840000518889422701877741270106658345013488235530490823892819019179530576591720684414411193565605586154492586511066876373043670743288416114030395090559170164742108809395859470703360560261758372663643128336584772952654598268578184352700229150719355238085697855649779212676232015590061908003558243337332059155475660386730631310307720786123582224781999755943806355353104942570390180789428008815969898144763352099642255905894657289442778139320220662238548875405542120395371722468207204717237465409394611464385876472064275633869857268488052767735941775180341855757672102287293935615315309838223776357398102129147168196895240090079520065147051781469994054884704924290365982547837434789922307873301283957090108545461746319074051076155551392529643165723944303030709046698870682993961181706041990823790202514587451166267013272514923742070672784089465381482882692246174332564075564570351860361542903176730960393841104090808398621425584960595099588322531196490347610703607147064299363506596136968822109551234805615774111878298766411246145563333761051267225498078312697965086423136008896602898595824092229968418952638429927526756154230322711364532275998815097474682126408850097596264335814374147198653131226711131802194138959778340343634280174174785995064010280957568595085344400804995069635422380227746200451071038104613629045362617990190051116558649377366277268808829796569635690584122631249609926929281577089122512073280820978957578710181841322120517881943224603637232634465111008121244591316974060589266227666206784813546258169684366439982046165654327512489933180980184273626196074824168277540247877924925653751805083498357513211886999025676165440623808486407820993854588328505672485283458775983388747747951060830499966646987080431588812617454532895333862516267179889385877893835061505376247253702028786647820359965105341191677353144909681043176948621634782151818074657690643515242948407496890908241440151567048411840348683617718866778032514997843736127288460306548024265004139778734239807693268064362179277564717863129265472224885340233022542730582134437698717656783975725229152597424744518513441534332456886490806539966521459867741790405502107808115606263791848477983673580579136999082477506146574179551722648149523163857594499449804902990510863892857906499033692656891684552844460247376954491979239484287617184811133986248926940262575782809703847118301444817876412531525690046094991461483045334531342398748615803240480204337424009017764710246273966537295172406017426841357597934460150718902653661195766568074482365074851361006949148681986087807867100637757089962607721052684132293991328483236263646906034578138221651570622443770281341346575069027014601228933438679856147935286374127707088859740028801123250492376391736339478849098028922498882160521363654030074208670461159928527934455018616390987809810166649391745371268002009948838960982743431477754620529315554658107953426243250978783313302440524800685773008838822233518302004559199715423770971719023388774491044114293278564842826270191023951938126347819341858287847483545853110223862576461167977377125542938529897697595785220351132401027021226479684536261114931108954915534864259197170788749653507854932284779276899637502054717863329834109739086508604547723466805000499817722462663867654969766341821659382848012181129053193479757341473848452932027751870515160571832432889222884377697125463492420827990236292772718302523592279772802460790107769435109098758964751680887858243477349661919387251520422664554740135126030928184158055938751712754633651196083106223881038722780490145940929188467793189613971878802088237645416840883494804394053222892017520428284340241647211443657895953759473530505824398505887542555768610311299087325499988284179552224086286883465833601635591317428284430982563860537645508951552916535530872291681930671911286095970884000868206044088665388691624315515017835228314961558206833489686075631735655250386387453139674192445884177708893605764674864235602998147541927155253949332866275101807283893234338701919418764157568427031246698959288993011788985023324664518950514580899786938767682718372593949683546652432803597682407298488552831518103557595181094275741081520573939866473537026649895801420174772798473190782683887950464630145529853695234378433749417280645106265403240096753568683672581467864140191731588764964424310431140143462783037200059834164946225969161489606282725556869036692161258150167455398268769345747811503472772338511538946933374653848439955522044795672581461363752777552997570322690994033497650381112843861008587066285838340672750244289694005054253722366317949179762455986485958477879424972770549744769030906173345710664245728248009855299642958714451927732780595646548099769125780859386956313527911242957743367751138427561000081275977959406135791965022111948440693084769816931250202002692022121371557782412522669441329834617103456052356000220203977210532666611116858225088461404122993486698866257999088923054962556745221192539868325038279966606410447166213155091918038731351779320799618373783396926890601323420947948716703869389568174382410883401940615095703271079392348269653223776480333375048301420693729705906818630984100515090398364498459232043582946652350248441484740104434337794046876277767066636637664661867268916370514143664627660552705060288975739250735921319809656700346361297854915494939046984900460308643782577624206181051491656901501062129395058072304938791411132767829285343089120823961998142551048265682642493764118957806736320826815963305250357043522163006910526327821926910524613286791534372002719312595676480960144357090402994896677264074082390285547143215950348007743217886020258540798409169988422818440711870795837539333480049201036683060556009489822201209890170332528989707303953514345282673746540629735698838112070076582201586550217400830517388492167804275487279698172383159640817479111376641767926615208396175506801845868761526459854737488339781111732034260329517926108346974483957103423000437514192243669049848651143747972691745703001550796945080157635756056651407578851598342804385412863382902697637075701581400920896134381543095860808110184816201271742133398758811048799326254216148089986793622449516498780933388699993438602183111143858317980776848835589213979272661434546091171211227526138617616805853457707572095633302499038364815427725598330617940372534343771416168688736558039881743305802393136026801942803438288885483173215276016023806756749913418385792301583934889295861945487230468322106038297620276595185775197721307282671124779436832668384141144347956171344187382910675997194393105764736550481172765158926128751580620036077542041399827589350961651954731912297985523192326407642682986741942957585445489137736919807342606028743773007907250518012118832762734866117456707867439644856383836883699747668069956692524465808476304726852211793157510837525661753267643135086346749564606255535732775110275929331503163060311719014417960133374063667338225487280453105445238826391305020399008141895675407054974798909794620649316054007956368338310937366600764984065531123065344314480739810035123256059723255613572919020967378676591868534293059381778596208169213507703657078985955561844422098941637869900279063956434693336991199086064476716931931650268609270517267776406308681705499720611690091162447013832046052245454197696300932881453730102996696315860841052359030619444645928322761423896128163150485866640659018712008140264867139491916274622244844204547703235595939739083490756983808571994174395387253503092484252667657059250099083490344262923469877489906569197035695275816979804344036777750310168288958708536117056176560763394636865798124796563525660550307925077185945943213864841607466132668197503062970800745354067757419047879161926257326250486959722053578214621578947885072340438857865377019552966749307213312543462668277074966268650803868333219223087929430205375566023671414234739601247865381684061078989996702421545708026576537750466423196800883476327356381083651018112344764293032708572543538050132707612248286039617259737470237603978211196238315916420603888743513731479683428443394984660288863222369027062192647469101264897047890012872745422535414521254263643394597769125102037165552245905171671593916919971775004463554418743190510937932283618034504781743249898519258403784512951330436138399540305238242145633406101341496814578418459198568879981490660565083525901332821540677354985674212807080450821680570519837103309524943818845580897565235135328741904706962737040666228464015102000421604645420510174797781146649091330095683532611163699975656789072121655684754216999895241403372315535814296218617854462753229459345817552648689091144563853583981328559931351296030459880391008296240941261129400625827592826220433708422866227652170092748356754578768304050752519116834067692256655166171754830590945887447768418839531107597389983954442778718302478337331797661898011402954341122233982621829340499559762192289542834498382514489694050615551417990490990476221844955887679274648855971725020747343920761042759191493140597839275224947656443548519380586136185477748190387599339120062070953469937675707751333330906851132276482061889169535867697494592896120193612699921396375232323398483726075611346975446340226852643679668354900628752035244811796159230803507799158591721674604365887341304962919582346838188830696051446172069687573711876229243894088165917357329762930945051112556992749279530390130604800862721503632401011498663074793880136457514666773287935326976218417163438916482034207155918955043699964393451996238942533664255320769008025246270358556921629801633601608326312426100522025863771290152693463556003985333943704085626831886603937286617666038543401366137309606677473413425215457114325346683648540501770562483364983290197203277019444954093673337607611911804922566674718763229994061605756038057961767373647135704571808086751525824729417898224996187237370219971389065766370236046682410511995706111810836740764758871547703016472921481183408679976230501143372451458767995157131981508477886653082527067217579001463495796395114942112352435089311688724419302916578140451775020095112351283734565084680573658779048641331368851060503956508095906892605029578749724338616254857785482062708943680635320908987363798218614239763898827619033253884474684180934501950824779020192207832394522565449980993334295206878337166599722075749374327667520988317631546579165586618180302908988361567817508778645304509960012210755908490938373157405027726289000859490883878761437555456199515272142137857434042290754944315878974369705660056166665658262952020369173495336926011106182354944870059451390216424892668863631550380276522221191470809789358264454135829223949812745654884472554656765486423467551975138483190982366958182281122585704254420056543180327801921342032040988190689482361680391173710435557098269751803953258574172495568461153364198517383633942138420652312583676251118516152599187801531567314572402799034446781206568136163827703350017430759683913219758339679600645652979993323267535447121989849996340147861961416070163349476990303347459249883130311343182454766773933419744543798461555373998796782977843827509350413410042214262655674959984621320097714795231714224197125789867501673333351712189433983205236128907527351879263567499677432464615028782735712053656693673403173379923104791083803091199112411028144511311655914568046970007763798691249785354369572612803343709835517066201929807357249163805798675167519707676439278925555342947819698797007741257421597046471155211834332428963304558504627941947285479831899296401522162581013992552108353585279377600081078395956680224187129942209675597133226265856376702430454245693320439171078842861363657890873277712134055279491395216343063278649963001881140513783520116682990458848302217813149010700606478380241711617625826185737872251464252920493906459453102712492643689089731306192998513616468615860894597979825871985554513204164371316099162309720658618471675827994124162748612319578364193614569755834980383211686676419649696028190679861744847689555821714158881548791003286935215205573122641137004865144079032812027047497124752144020447309145030246100495147220746448814682168299719525154917822622758113236310151401166116970388804413224221293459076776218717412456990962455583547098844171045849157807522707405871108170515456699014125715752639373895226364067277884203857238840399146586343063245348236126747767370599616786703978077132529598004218673503843835861191576098593580445998738420837629996591092778291520587177674441492709868609637393149429868178777538168309507033949607696878163684580154651956931127087096530058776038364476057903147852197074422936140863834402746619357559633726491690450741777185872891177791672928450596036008834842958502949151646736583628921600662505694755921975521661324523948036757876566808203063307445518313572370524088934320397256436082824005608292885743747139799483904130625054484025848776319901543723499580093857583367558640316065157493534931306026779908438170787931687106375174859225607909170990200553531603526068158201148137948405777134311083956843478435779501794795999497584901050592450472764458465737331014515029656154043307780660752851956354670987404513486924529044053205416406112022100342878237262937393081827767776937588414555009945639783006254569631479972298145388784878549420610590959779250820017113772005754124978300323106844475409288249748787500399869237366250425876342257599693267338393559242506481465149613615135113318481556208164571882405271531248226076331896311789501173950377481806185626859942892040653762511489541868681510382268434277683391972040499527225412825248089286662160717835878568223356815446448688522058470119528303432565209828880868379973766080864625128727011470441674343117779508875981037467918122644427024456446341408360477678029675932801420619700647612448033486598056143844678233326910087483074264742946344783592341183823148492529860691322087679111593879394695666956448579576717413602935210734751691120945049440889638745703724593529471071090105947376756074252024752630172417278605754900553010885579711275880095379975446803460331532628697316665002832465439642381762598144458988617600039784705389052016120609104941305324017200264773886552116036514854233126159965073042360433503738190808507381384683439167598048659621126942372531272038671758338034760973749443875395132941422585977974391048783973615572017512695096612646811980700946898482088743652139898621074307221994356801855235548396743716120247356752600651982748029013823405423293948185212014993400141201415108574883216390484686861939878013686598514348202875499860269272540852082834571842030940625676526695767103613180691457779574996065880605533629645218594331575639233841838491553668936129980444573277597571192920177254525362163242453318888981122874133878776706511107697360656586226375183136270538519832716010386698988518974838192297419278248367811721981605671980013342331099218581226768352694116619763221351566303308551515279986105017108235462025336620938943420941079459138017328034749644598502838720500776465888279263844613002732331714170491232688755551444449422124708613852717558358141544417692154069445888953982150043933169529369398573820370441597615921752329129230529083507425503895666357416721344770007857243825342548847156080530333515433003202870739482189646783038780837420053792229638173214687187246368072544679561368448510749682955031883913709026305816497687232744434878393029727089252674388578117764383929666787726137145805402941299403398366050737781646863165393864579843871409026905995064899148361956477649957418928009142676674497771859647644144887677035453386770751951434949611793588107883558594583036281600653355825142664656059613037677112107024629540220119630438597158305526351248639032354205148188534475491319048752605569380099430788421250979630513254739252980682969585301611445672728417884738925805964716159542396367699667550001384236136569452056005833079515153226214027117173643864923518176668770657914631723594258712455489603784328329493584702809214832117971456607433320247179266461431945487693420387605024068463760586304765701044038226645996096855530864458628792475388778773391937069228889914009274750624404503385710795752079869017861070917031852392698707803644302826454851948998475004211214280584483640411966913472910179613496870680190665761207120235426710736310458740598751801217946127390101021737598081516874147940081955813427864116662755991854856976484279000038287897048077492931535390986830835770851628606563550165684501172246910187396274926524203814872043244060981807021244810158568962731988013072061494954023593489434164574284653215233862074950519020019726878456070395070274686257828798153377853989547495047705222552825093296582499475193875308225737878598048463725251940648855784165003538807076731364488850765588378503117263058000076400319839954057420531365696938510565072028529642266726211704612023313600049194943023111620621793884666020581530456616212801774007222018775984226003692105044838581955908625287855252451194899396772828696741753367379380540305455597215174618380713682760257346085126532309270424155402611394238459680170163134227102205652440282072966112872810541314090420030981921272096621899856242657374378202703608217823144745758417160842310057801191540545100210103403806790765236127151856950943795837778963115692659827682187078372324026816561410380641471190771718620638208159228540825898669745261793419333282463343096543302625455072743513731903324581085376756443666227409174895701031886094398196496577723993215738644218854507142946729919134636868547390457624868056248639930586294384632013393923130532272768335250994059308587250430873344398880362402154192204030036834957024038260840513131343140785943715862358652889221789384929330242153586237933038224011089672561725220549256475366080525236954442912529236206043663192141022789083471444628591169643451473508948226036392709069585289118303739721268736644965778272937805956578683194124694536894013751820988971332805042154820733086194895597041495660606969923096461172672978312842796627666016592827548044382632014440920649504851904966497565200344072613075116641827772342693093205703586742868189010658709052313911843513711858489090502969609848697903037803176587634522860591702665049955527189163991576647271057291604345027612053968076680724332222948968597202600643765932248692507580977962433233336139561677417054011386228108010887251471119149723964341198723900988932872657132581904060976663013993798627437208065439434811708142262401310366487494061110709293917533969924044171604693853877092620593394577201117158791729178099602939558126397654003750097406951560723455364681460128024338662323594883962864264275228871145471424839700473467020342760309234261520290406957378122210960900938166340782984473662732183004153983885569672892392094116789164611730783504256852411957126319785937218555711044399297510824476110401418094670620735976893655998206731056147936836637130827976608818930776571772183075650756279593997285225008556460427887893718739810149617642207524858407783252223228124328461052053632337827326895916592506816560881937524024914901367641732188599883829810171298377120913446846062815572430261466068256732615845008157954102792119034166261420220700177870443839679525355221111655367306403666312165196901640753808953962715120354240719144565010165560586467083528604422772445918768499230591579604231616657694365833177831809839219194712299014883008577011429732263405541069010154508341317394862979667123028947168542143511748153384660247646051900520310033769695617953438343575783801544765956734743302207050898275430299918387866882353674016503514820116419848428010767121281660855539572300909609796761465899021621913736261781560357488346902577814207521835196597416021524955193517019352526867570757263270344255330577528153970663848069232298875061832909159633001436916082839115665649413973430723602675826200601868923853118915332795425627831588818000187001409723545283825051683240129415921864663514042724675129545064242480047376811333210479814130422932627171627878124383109092749174481820170805301281476505182900125914129652580922101431786301264426570982460384008435738814197534087888185004136699484237222801877461958134344702152119391545377206715343876546140504111503276307649595796935580796924088904364707465713166407159437588360972770195185562884015857999532217377221507255205347140580395827355997863551315748824163537010482834427265166097160655435058598660314032647931509700791308619647352158525448586672349763389301112047691559898890272350827188920145505183747243272623056406601979752628143791844897382414198157920937673847424872310344319955597732906552562453143286626845155356546885626868443503651852980450292561878632771974104261139905189703117646858557870906574968506919648520478297617588748054296738514300134283563061811841885553490565389314951591813443283623655307688738857080638961401497752146241414225145273359385948451209073920626053091354048695457694359405778814477452694711724204164627450207577400913226930470726443447582288628395431856746539132934442426496654071522480159240298410205904120913947866644566100003997404313080053814352897213903348741273970746758485629233626679136364956545405167902629482514904058945706672375783961711280845501994108060786213698094727836153738115719553420345617031916008976942139758683886702150791107018279397855391095225983966456551368348559485053501924332074342930962126630733806405693634294609748410802990316996719158781172632943662430598486194603044133421992245032016705057821087522290480718809626409057263737486631701481645773358390973976738919195281405484955126238833717521397410765849395308548800766517472291789912716878530713494299787890957577840513922079512048440656574692021029041268473305534892330805434846707953562423013933322850797332753694732414735678242777274914794398427018204900801930556045263790300779845047607835971165749108962862285345004408708512024462790914348293549776066697553129034029938567651652216622313506007298949683553523651862281306164748708558699396419812561440366937680891243263118125749592296085179146428923495008462325873113429525796401571368547742961388473251503708215888845404475903388507357054080913338932876011093841174642548811629618106394162516605435805758691491695580694175008485062811608700580947211191961117914710733459946782470316039813535973890151454378960761044691158964080867734346377338175572502937326161661748570469359648711242655989047660436281064423715929881962487805854275927734511775053080728246683823412006877669867822876305130024972619992904220169683281552481315936696701429804895841470453663991098868193608606400976697203786323162755198913395444779085748140294861383012676921695924191918563027609987109380784078795953991485973876718062359037807970652073085192429798290112383203867132275530241852068774792326773242832309760069503075199421474754548505962991435238632332186395818618691209877147104130004664801653709028461685303664701340364715073107386462360829177956672945702576722781328463247911723450947260314523303471400493235165263476569644010252333700709974326261815194584980695387306862698160069148914355322077872931607995749098727742597530580045893772422812420142006021839785119980483408002190468273432008839486776613487470858606443371334445506465657619336074068171662539472989927953627624600389740834647605202558268380291279459628305597385373751622808135866877614121857599313737274272580334101670821685479617115453786218374440581274132273464609684294165843897577605538403879048447740678916091758608578477221560878794238247631677418337763937828274652240207377781673177464067809984322340425457530526495590136632928867366091094416325302727178357248000278635992513271998770229047661090802560160362414905031034695048755061009736882659102266582960487951962572450837404050639044626793064122440214516450831972700165241689941043992007416832781190150616767327116817761494338918359120589079127605261100672836425560740748039279260245604719188546560068341177971880167998587957276161260234293067191531753396618094450767321531246322841983968496141590124464326437928958377966885129717063164143465993287654291437728405712872041878871909889345863807509314010871781502015575878412587686382054481601207585985629644669075065069760604770204440323109429399416138695783091776474730289779884604068444903131848410916727766872208222051171110084052849655594514700489940496673156200357394509443192191061116728961265516448678334982385332108992548346535653141082708502916781443336911351149479804830685114661573063699164379906960085897031645407464905816265055831231523414913530672075636351606076278870814032895416644228095746963014546673556971236117950534559158233398915619132791740334665568609448724010246732549770781845482433180910402820299144465499195696627788462436110494939002309492101635816373997138111556112993805933160420772669172205859225077993176195151038704556229877680364640782496704552268453158406395711283321072362894684136580700542672830870436490041657759547781552394287226144003520504687847225385715486609178274923535536778668657917696911684589278901709513566432310777365154392520411467311902510231015903622332962638090816606738564385524339527948310551825386836722627930720027546277443498994484439262798111270975820253391480877873829471218325991536378234993790791558671207169153808857782174238817967490984843431456010084365506498094676505546951453276189026231427407751824959132653165335842819017474033088937258506703987833529966602447973342318361909702680529816374473903623397301787869593079476061424027885438024253957873571636763821821428411487659053075135297208720141504657760971956118183137774780942896060613382584909990407870790736143386611993726048707709510721615576335695733341661357495730675137464538025911882464912362054218127166918611056597893624959679275524390966959812906891473139184206760642916388958172411976119018488648521765415709598199912091229071124210972506503460574518265021469053990178043307645775723964676774583141025522347013195940370487831742372988214614417392049233270108374292008118892900741476982914440929180097740376406560255516015590836825717958009359484185333533255470089832469953326558177601208898305100421547807461714214858403773327753559595452721454328203434350849674533896899374717662277020750044478704098057985958249938431356561055184623734339783520290308504231503538452758521358536340351450403464333246750339468949395757322494430437283322378586727766315115171312377225088860288430697356134351716043672730564914702418670748679475125665752594888023489478665517989558586043559097082814325470597519432600417196435118811145057352865852680917921853718288097722894682453841319474847331470613560346394836868269047920481414326429853683531909490182955558472781635181059132047180233622671455404875066942579511458139314011178230244781580401128992812111870417578293248977796609252537889354512376940324531557211124712297924818014768802108612095136838126314976948950300171341281641696911842843051030227418909773705489218398710264501472129163217268831515973420572447092508423346656543296534208944389866249555904049822095102911899808742593429920398471635109201942251634687249767697663592376896774477366212311361596447732930724134299919785433678583119086999974944934296030317243980767430518034429437314659785489423349156475225979631890073068611296906239279008861849277149325941856765324027874061866437546817712454016191136601472817500595664223762257938915455185595823522158683623116485770596340201002177162426576879549526724758953490666076556613382375069167842171339934586924931968412761102800457110718005881001768138815979014823350517285210936902257731308154023460883730929805907099177848730472628543685550384809852203395797786067318255483577334318062405106871178297152712628071220629275119178601174795310776221228576296949265254303958548895768362899304663936704280211441882809427424116167318965000933919377259240946691954616759844750161484001014534296087505461902152213612185157123138366532299963272623773014009248064682375296139440303770886046726454108385448220485346307546650776008903668704951248360793309095143317527716948052142111786951414583756695881964878321468681379342514886123969330534691254005555068180435744782773277703571868197269985333844679475906872919953995794925674214261617189674641609263188433223450174729838821457905118329739674143212640359546383353946795248632337879231330161493733653159892418456261988871102201706126372210235384897258182636002262904512148486613530932349177141470245324813332558070163886063592467594933398210627700685331714293475537200057196860977624598935901148882894857980810787401002214960584605095277031668627752067078631400179828085022166018708770157104753439009413887432431677001926304164999923434846911705781371045450972957014154934656317664693390139843488001152757371694406690911702081930763064994371617477300795208983095429578204016210394961599393121500919257573958340618935937802246595711448504397103899355578610064741280026109359928511754160615212203431528719760658805736131524920926178740858089120117279191560173121369335684136897340860268778486761450501222642828849348890893223109881525595368082519645838383522515649240346974730746073457093116639683378466005851555453575438849724511634624931357656736378768524959900683803963734421764800610371736595717640494143720631545214316515884615244073218040992416708733090371128099495550885238871320247715347305676726243450344946826890735981874813481567861330336345850391385310799539349266157898367319271559650511166171572972868842307377893378499423986269567539066079759146949441632731239751938300864227615601536705547650020450839357235699030232395664394929456655013834361409493759614182869708264492307033692582916786934034462815791944298871567427699586551905452657295421972395444729277865966045792422885028836876093054553404374612362341684205142427892689023394474634425629371794063709520757319904939433370014704195933674977420189060266223241395592076671237185065847832221055021072668230192517736300625627576084174799225892069111272923238527934141708307960063210130927721366225110400017680269624961481080138596566636895844635638749765481414657625892287439100043685769625996269002551453889907187200120017643060791448259255315894946280439739131318724254427142078995455956620934101290249122640819144828101537759791178614122935333588598939432696157561526680036654095753183953867455457265775331595396128504451748099634446523749068316459233872052090514302105405415272386453267442590151449973849096291272412122228374907934660660459239417718618624854848929652540726722068603582612357683624835724759011623890216399745872830090699293525663631141026430531591762237415484984775869108689830426493073904457961118026609739408535772249455949881652597467077807835983211030817240048680013289261249719849723179515901967202681076372586838901674631278816657361586755791221341097986077379041833423384616828255034810382368819981460208954591753667446430657644298315680303097669964513397686855023678422462494329757446249135246236210283117225059950082958238349178312681575238747787818621786162310942386250948982290145084416814100766161793616282386345943935361869924662895509193472951101521439243199212345497582291109422684392140458010220893588624428201974363388128236816003863874865174514227623034780372605560682092040940824602291864324051018350548065727066509331566512453354307190477860614894665942515992332759563515582589861793896100263229989211876400204139479420604989522955289222592720588350598097254923803330402639739653925180616650935551043574539851414829806000589187849796447986952772745929869908948461019193677150930535077346879104230106542985065747408963972088865990622525484169216154309977345486072743626291299305197259770872710432590501143766917021702486636346591372922890683422966309215202267662007591837274668200243756565694934735999222044996004727023865537582889405474268321297205303824353854810931221826396223785892240012332034114447646646213911722229824566437726827089954649263263980454670137337926693470430347024514235525220909470427448099184606461232255375182386206264371717185949081439922065859815905973543544330240567405512323981537297300435130971370041968928053085814665493288330713686778018068635682479001715764133312982637290389455286793330504589838732349385987848997741144614805371436666138315951282721133467118488046749739083569572278338134581120367798280326402866037134128323609487339119665609572689954067910271788951435006484696978530721520918554037572676266072579193730495529307459903920292542014408830302284196308143719932775208114419546882930821106126154220810442445001143963275817739264456584168971815966349371411217213180391464007716391589415606712191039033394121651233145557354530950339281479561701757875221991146234892668933080958597363404330739843246715800407980019314495622789604265623685984412552718844752470169053706300809810643708241578311140891702326566378093560089886088620210680790682709581785283998108649833115518530518484727009736525263527826767100850375801439804920017372737952326403072647859275072151770693819759877431761202785048077620355342779232210513938623024404163729482560333196910020678333718532396439059718385910028172424527798039334419023162928438443936022371845090771377346824624588079694369360311724462235709617060916219910764593934022326867695144238215954388989729298969869208766455041566810169571981470994951583259924260310372277230674764388753979446417701767800200721161604895692087598979394184599382317888527897551017538496531887034561808114302681299530449554819468868272149644285961721494581148154183658056037689209869139236616562291634531031665424371227699767914357305262201633595126243623034548688255215097921653717905739236478486823837646596798068757842840584374621981289391208857261924244066008336175990121558981793124470612955767924595812675328819596840136776122348952103355253341706199527609565184586355082217738845560901757208928177445324434617982657569041493811868382540101860793960921470195531090341889613994430237249288940719813143387605629342574576880925338706959138630706560539629442788204061003220484654814527127445105812826974409070971402534819880686900721794765691515302145107860333979242833714966751629065930175132403888615444192617138002138071953413924100965219652980818413801555722474478403094791376219296617601942236436858576198451599378117091696062032185254951695563074750637048816156382938974937597936921097275429607261008077004513614870049977338191392572060647545752730307189017023061856050875879181366732418958624564372322445886766753699492768940195036893589574064069347651487672698546603730197060577629452238296255566938968888466373035349654542094226266231864560660684467252800750267327339013053511520461070163184399617914423234862823791989206176008664730877306083091161616544356360628229462392842263462723543844704243451243367807012874706917874401104058031853782171762793368896899979579074690738638705062388405082533477227845164441842883450913875578174539067971396372022794997843353299653826626716496035748171175607476305073606637069139295204609764070391957507995191885778484184354856003025614803091816178584165450468103138362696997296579290695995163787406900081622548511023213528589286695796005953462068295551374754238045328949865850521240254936148103366925792497795685558355191938525076981512090395215872444608615852912509733579707511912717568055940868456315123332241214465635132275848208618259977124099513817800271011217803937093300433321764767333427460517114489819745272144832302662286311046035354517727766894905654079834904455879433573110741914991363974946956192633477454883964343212363537973229576946915523708171736347538580482940380249125822789436764861968109426855686848837753311505067631101558613027731720828679078786867830365856839772375310975969826531840856666239739817203488758740028417255512537239757886903988230132462894137654559020297598325381113744801667185170789793722071363806995102114998601464156976427310657841416634978518932665905045274585898784030128222752367621017911850172847009484146881204196997641662094396069064924864189487838907016177924511607871961653801018992457526446689355576117686472520921852349294791035707807416863355077741977889532206809953597616330195964424853778867435982258197450869557893062757573801365910089385301232076979709491046692621958883346399448524817377463839507855237914769078042363201104961944655125665537002131494834699171638705649093114635875944562556078130328588951055502859003702065931238643952700699909595969534685706456556242449594732045775746605164271200293623761074598211402079578027469893880457867439729377644464969169922315077647513651403214974587235711674998977554798983264463046011188109051060434485346009832004168542114676359330099013515678528767400983625600402244933079487412081674389950497420476685802538593638317130843656257742620440247156150384212913559961678447009725952124902981526160782930560950935868620207948896719530849412856432152582471207198672811633872450300136263978729523872402626551824233269064127345639088877913225073797087298906540896352678745849357673717116963715136787319790870472037742294347011554343243719290796787306187664032592252801354516556503576928690818853719336303580177456273713432845362222820676957940269596895978651120842335390698585080732140420731623835257622625115312927203154941565633793564528759650585340576406514731097823321867249620213049938532777808918361834043934806989477594484102655853431378828709896609614967202901820116643815528411698943674461538522516379756258737161230413017939359106036807974284374021355682880471108895221186698334485818298690982503352710919691939649964020054581959351490085205557613071297297874587616994821157865821377759077357260379374471529972180380921544759844945175171757889280810296122541037398704038045409184560556505268954775052123872035363552104646438312029771003318739240205084640981094857487742446833080995187609659864687623749310768531930504141172231353387488050096744127254584021019536219830473061017135198407852440510543989161555153389436498338082370583116116730312115769875032347169798348488093110082688270255031985655781345013279513009933540389222116786433765291603024342866466468688601852493663206488337518520328165385400509188193101302257466302144389776873501381037670249352064959965286931535598785071755656248510687085379055555591601054467971162902264262952122297829099735568266095515438931238301622368995075435863902701435022132724254585899304481877985360930839384550458500324175164265946884301361145211562239502453886235546500462073449630033242314886072413990899498805823500676916186717469087699392699538147593036892707445193159799402454808160583844894452877184371764087312632831202012768505527883481308415097557664070317911847028780285127843755664717251803043723458519657262611511596970939082943733636814695357033632473411419211980817675106211957227199966270438285906313540704692972651376145178482874658913305044625452644270848655630882193471183613743279142916429969137504397542045210427661368567441806277438291910173331084358811216049988377904319840381724103664739356314607078670250015086851477595176000594121724261835802111514538265132752606043087358202500569476768206144880934063088629015700716227049056396625380803445048439716839200139289574508214696975700514596628988410616640192258108792572768333148301983092508917024309921576839231481135998688776143905982299460789818694563394385911979693431458783658461692638138746489893896165520537714517740969625636211480493706997102426857892228081951115118451043007171847270086081105492882796840497477360117582164033048799637112266645769716460205215242271989800298562668794202372457205812015919271234739044373147988960955855030960481625695199951656802024422666330792659657320664100107325357475237605853111530174162786409329798680281180399918118471058404168486026931529336704920376236806597122977659637037311134414276486052827163029589731983758822629225722882031404921566013358233667967891626222508952425260916866901907406831803750752632636490081749547667501541391366448859317012215127784286047734621670263536215922560995138738495651954660020634634015388497205872939738365030846543722584990964844476914998069855912280746843684054674043834404441766129381431725264604828745842709644080457802430748015723009142357621625204684976225099018313935091457364341288520289564104449223894070226481329503136099886424528205023100960167873923773664859237238147120660606420585176738911851704126874120204999873996927543586671304523008127601664522987623996008164593590732943644026005065351861225398018141594410278058128959664799665077877101379296050177226819925207757438193110589853921766859684923340054701486098074067723845875932987064436435753909097470574609617994866765189792227784359920908501408682169409670895462136216411141211848068345132998042577568679965142423685658087206431386569363372067504029172162322377195411174130882060184286597116562676207314961022044275674779035639503280586089932430591389668445307348438170303346042339167359046452024788033156707732151599011400842584717684971451384328257116536745538485511600021392375419397612375705170491796976174392412433442274977917208076834687074608448568593203440462007150936664162179399526830763883917363268089008080593274058487784962631367424812341835070224340902654854195836998582270425877795422732922797820810811110183953109152026598480860280452649389297417139322574283652764660932118425933810442501696305432131165493652693233499221250317012887846124429297423680162059273695684789367058053839726633568396069700431956910524369518563619933905551680782136835555460144243183408827799501634399190200776873223312671041820827177325033010359749386909964262700433264725786708430998055864543553470080606925260042617330051892031317466782422508931411318613802016901736413667821893833289757366399304590064851654825115177376361828787513576527554056624412627461311416459985643742544241072754315337450365488105566122399089237342534561062512640578485896392758844629475883110005434862157919782195429512587301461852190623958027710135265625343300934581406842435612738620877231756045816709111654807671088777009546295602598484963354932244627176225415311804011053976964476763036683046163670931639244606235963304187152165514443214081883095517648111322352734666643857146426599011363229810470915179971977354992544817538381338966570958346676059556521229139195911924204517541740001814562395669787709764026291668213768269623331085357912818510369609191887894458576383186437715341073082669605354045044328683862734924566944161606913149753635416910148204387648795270805607716698089841669986266625527940881549494601509821731520792075086577071193559107790365437351484517024913843536236079029032834502802142346162384544897273736251197849281181225095084008022449409618962801787600044144599597588645932750653066116774229757971956630835484487859610454603641718206271552475329784119542212840702087664511309250913620531828609767838191263761128567261508802566916551477581802967039599897438922638443451637236677479511170120015819074761520409975530246162527049069069083507012858619433362260994816509324510370720671954145366787890519237136183792238675561551129313800301458614006995802025481812360471810688932084633147521279873600535459936064011066609693170034110272261503707310992175038043512113732682794975651054075073990009864610036796179472853452565085752952971924080418921247650867408455721750924564972484069861783352339470648491570330523008139330072211038909744416760035400817932324241568008959134481900127815902164094655141939002887325982316616594684766533627334557363364006510943045627995819186900680499828004140845534908789531830399096199488238641047912711250274781450241928837051345899952304615583264697363090665977557219376916622828030261248305322669560997949896032710278123667682089999282919192025509451759909907435247326793023115007855447646424903196937896943887589621417592982516794235499092319910288495426183028446559746394719785739226130111581849890419253429993861161962960767579177393679284526862211254529923790849396734124682308059196730706612531616879658080696689576470976038785797643073672757026745225649310685922153694203311895081140093315722273657021114398086197718786895060674463871403421517944027217508334142731351699065756126235612533207289600058045768031725417432921302904272588689792956087363844238280818951231456484175304135869985493830762932936563660990961323212013377621700339228770553689467458370996784306968127288243533016172649464348233877671075201985434590209323372084345616353244026071027746036414300622673828316953634988420512290888260283425362874728375726966371961565942901762934473163773499439092759011251225899590502411744811716216162412562272579149602782070145624288692374407562384042861617082395442217960893286064073630658254677980136711447190826177726144554942601319970803266693283548545155642907317319038815702948927873394300118309238246090800520604579361851892988588931670487708295842389735066736258052719774141993782916135692450790992011779940013166620576963605800079108096623778399176754449637493107575323112992014213901692119528907672558643048197410772181244535026329453913777766507021057610576016468462347990120609609143588916352438450806344147637346287674500896303426748714544050238754939918492874405760005759329108744398632356223716853603374437402552875314887196471904386053783266102347231137254295900440413643474422903996708795721235931872231285809874585907409394224100829155815719223587139897377919421640033056516163868009905233811648938020316708965072387247459848103828442426857471114931755562267289192215167568875221503515277398318332891059304680350798337161373464439968503933158017960170510332422555774171901574141424988473917059791728436931681893396822264854669606974828007167360048396394536802060668021267522204594351178428527433661990056469800715207434813009523686324863999193073454540982072016818363833230670819879335320893227090383227789366718240860219864637734499296594280703723191905611647182274172481414833715020082286166757490838991439319849369997837824223121539531198330018789426405181904334630944569564992680444316419670033841991858877340829056212063951129469638991154848027072411934403679020454968061711382414556382535768708737832328146710647058170268253312078464563458650397422284560715822571531572258448538572933605670205492190464887668995021313977648993967511225995905412407377776095331430370792148530401306894009524089812971095776336362759407114222338456319608297784240137140711321676186640946917955217317312940939504289164084133003280811404275115689013947449363485609755222857392778019921151331117859838045078782503031110953678418844359249899970354419139556287354289443471790558974477716533503395859549801751942402489493651114407164000929324008232362117099057600970814799769211011744747979832649598641311020179298744665854090526430247183412334144751446025606633806282241665460834246564531764715529937620042999965600525219829616089916586508203307706666924782003982602074273172706141820705475339622857243062148942732859923044677162365213620451114370192686374800394674786909177761920666486553104792393836557874535713197396449038919474541138426258072063841339423774125201788067123803981049850566319412369022883969344099404144742914294719965441766087929470692805181404997588795951982167538456574205319569779596724670635693155146028480422631733032385537089290631669479938942425839943272102638894832742643172598203607673271328337661205848691526174645723998320998941287060243718727625947333996358657567434460222601979030690579364350060476545355456644001022027046794291015955983827507284662882734380632258408854095262180863639529917285840199431626683787450257642197322414274245543723673230002319448595258922078766076248742140783373666313612044594371803564296124995190953293748409502880233698191490623939443268483187607491860320479464533529997197550601918105195025066984317421201836280533619164975843074191642245117624726692346585183014266570722829974792129131220253805186673090499069800904319143949053195742491908576054090237367161334281303442397479100242351431789421175989233905745302175636324692701424469710693666158322007243965716367595004956573757392772381966515055803917112744632294094106510512643113466976346632510830047426914077367889444834659490769355530726132350053201961272876181450676394472738473892432001661436462478012612923343581620062720965131887346329033181531599246188050395370281815406435225917490826006552402892924706088671818272839363258550382047873183496386805669385270188332993672545294237239442963573358975225420668323220468887151798674800515809774213401142152439647475966707364885588254410140801181601737443502310973268069027669622692619253445180678800869059124542939053779529655586991730008224257416979053408656229670926859189850773388942050676851509828407974793150065408004679329344448719443019456707002494686309601637866618802831760265440331227763950721786389455419568532489576433984636029494421797491374304111570692673166249735568949810883631843480154742346310386213036070180591090659192526380766623679455277434564671072357247171948849086863137362975740670313298508757696337464206815389004090733757931042890838506274799676873160978878260141873985309276230087474765839867495483229986571880042554363641432834982283057518382990744152819548125068752915849908579538601979127956857872826501845924402323447546538261062264444141691614389639179960290763837854721266631326578293900666331976387020654073818397734806240391217565929614134179455050410315830017234368362710176916584615803924617106920476406073473933569783141139668531189329325480997779810988872327837884836210682852595162356841345681664427591308776548461411742594375292693344432507345255274565087723408331288990098357401369409575060350810163094625642408997460201037267977773541935837513142934748717527485089385425959809261990338634827960167673585972421637443363278550074786456018809545947087470683274125108786456292319085996421048009297756238340711198739697285479686151308706369355469511538450358125788131627417080240929516295320857365110965657318400904564212758261340357758698360847493964012188175244731010491872247584135391864157967534418060385068125336396970655135050122167508979212975104303324278005980598468319802107686649823945622711059492243329400524599509000094111308203850194608072389458403289753048004084356542192444070907891125154277862121619388664100767173710352628479708403026565448369168746823374358342677135244348559713900396951509963980914208457720955677955932102036647454270656020689586546267314328924500377359917348574925199007451453762595215040105406991559770770963693364964512527790124539567842793106341451639727367931306182813797455007151965384891348886384128019134741560400132433223190695479171698122912874122938399223168099592647207806192101129275624570388932228356765625812248111794382670440469919744688457630061294931160758301650971689814054116548513091293423943566637086548189119629858725500257890943663162577758596728199305211986728374919406857620827704549194968318107902564366266841921297185101307099913514345339416955230700392367760733739343060379932933343804678545094911034047949718353569703584406330224276715242238041758911909175043157030758687459431129657620775274032738439026364330141959135022695664105820595603365504961125566170711920236385947115632073279747126682049796457694942695171157622371852693346679774187853260035575588798792497718817448977024838043629946764989907648387751406482814540381525306821201361812630517419361743621332880996677628941975995744540628117423510311554955942596367954953590591955550439225357814276361391117309986469620843877623001575499194296625449599820690519720992763451929974002959241307472501565155384473611656253188571376658816268352473026741888976173415768157601415559651240307136206753642683351091755307173222371775881456749872822014570015196023019190944369254400904446086411538613906567599419469478619689491249295644401581348973217191984206120629627906729843446958399669063018006019957767484788595208879964633818151519612966049670857095489490629663340386148950216938952806381189328995007503003431886635168289500966685890920307812293880056824564072460007921464596683839440157748920284946869291330939917779226666841180906129090322325146474073322249775232142008864412774564392150395604276757429416935900168285375247712255347229859071767432825226263529819213786820140431874388630505781735401751086638756446291610439611766915068119240204428338277108190224741865695167380227775952362797494468939006513655197204681452984044089731021097475856691641818915201168282546374895226037292349391563510998859077156539266124401115270598008400489015264744608232656459324059975704149985500021971247081411457838259502395409035546979043318198410371624532930237030354163767249950418952411986129449295307039186627719450714305957087740515210623585873030674600187450728606190205492465918521063056894617451399457329835286633462713306425766054737604922340774970758356535194955211945080248900277276407256422176998889673753424393061825706355274327838183303278442659427020571150718019208120319319788637358883993452201392387570988305163898538720138557779714388749085644019824145659262145035940704787642075329310888094756042740519609234105059343902823072002326830054540027712889968548836860504295494207596505940236401980704412174200785945639492915208859336035981781573711255776862433723334442361412711100907257462844969392197702746108970534175965341561192347502755808591227219687208781955221217069708070159747806993443992711321543152452922365869249815156994315063125072611530106020661371990678651122819941437084196064040498345007199837400536999582936393021840766150902909978464579585801940291359177925213434843438551598741189154289327750644462210106533186408636706870234258760458491142624011554057204231779077112648064355517899438946294178116869208272761192685806688565484127230788039660495135325469846254563371201391383787811312720730249802427593266937357785247405824202646870075817792135386059344378383555139230449986991133772723308083303060081195154908816580679503849630016321859094425337351442302626772843852670349173554019067632481890582271013245378889090789516587829183952041362599305601843060820038459520494065334096332538395450317155202143185746752291376168561690113340733634586161647363444119675017468978071792928032966643405944673538142605490634407568886692150414779658235819029454487266589063195949054639251266976854427761011479922430865646226324515714487766857788727620326387163544609317519305206679702505505288841049884509389340356835850801626351743433932566518651520843988772545939222082190370004114737994491846766007073212613356317153225876071304271155120156244375527543626223675623478498169332960052083241608567408266500064179168098422061252913182404294645148712977882718760374762616475987246510956160616699558671158546267084294067386890081826535236214679908426154176397632307703479450295485795104567444035855710552981156143481663346870838324883421654733371229655580965628973684022118552636628174877805087614833004907609998634045982261913565248580485285475403855005700087307867238821187599845570818307191295997516651704099879174879196737776785863243017907665803972308930473879924412135151599142124811012178547823441596777415451699172158503550364892350496565544952546549971894391633083360743270882943502184537309658190608903778467204589530058875004347228679517962655103382691702850286022288199255012148976846369054162014407932560920340385871960404307904719080759120397469525343383289841928654287369702040671162173806981685159447324546522843114839965579704030449253434355018943239010869478609574595760280183720772648057572132766728358678013725254320991772982530825987808584084081411262242676707196364718537594460080229466243538717274885501049520765935299750596835255784266614885153476803518938359526946380243186987454438813893065817503322147158211246333547241373784577723471315502660230239693778688505426966399288711994650151179162236557803226058276459629780789977468787715097592084626020654465365277968835792222401733933916439918786832714775477785923462906394316943953605532022190457725458650592378189037119680331531041930394418387773900274804237350213469657759643382355340512177736845563420199078105179111616609376998948099775956900040749179402510412823217716273582947079683064988069509355980727317562141739760621366990801765296620042843975307761216149643611756792536751253778199153888983745093829564543280262995787681822673504400029857942825126009316084449832828786882133081251952932898687834147825150477272377401472325608621393647339062933507158059090414454667839928687627634284195225554990998606563150627391837169310227692112010571008789450018650221222273373010133757164258963453834564560914822180689088214599622675507452858164112031531213664799392642590700007111431914304249644571156966655364243912047984729141813354006701268465680556197799196458912043244290985311072344333499840070132494154488692061501548736641042712830306976002850541744089352498675263097520971024142402534445997318562966252907959954463868773674785909233405312860717421519906016131479920135341840959776545137731988230720707914179109932958193472207911380424684775095430674057351733488971473879940262146585460905801018937529801639329992172487413636694960471091212932415613533465190434440295591776020924593575887300401985242807979107076757991948386654745512958470284743321330123316063030749584147469600815186170975061629687747001968970280227978018074236962725304811291954366313775831412179202004256497870913324365102215141968422413975555162029150308607462148456722562473985805856951798935668579825662673420706497677947738308225702584863943699810579142446506695091369149332914703940846829766407847833878665517787158075437809169236490823582166913216601784271304659688848729087316488131878483974046014898324762375972981619173623285639902388898500403350149461183586692908895278023855653862861415174806645129943330259152515337091125292090113000512783274531016655335091530370582371582010410801836252115158336907756840874191561415212761560895485913657376952496035323144634234862235761757591524924706583645408922980710807075320706882605145306161046934395991383191859400512586790835975671928590368392770057595844470661357856057346893921338481622004231429448544098561689393594931148047174449374606990016594828827567509090005814394431041811205188297104135001040067878728373394375877723505531390728122136484818600473846450050249351049937078379649326768506620166158084982832478218110929569675723157791874188167694721548164780889990678523539444892185334851544143144851979308633000547639997879506995372887412177570784488027688255149896209122132677679091881634114910689314750925585179823475906017423111979922349769390036846283980310959548499690971257724496412423803233938100517552375920938289137431882725955659411513708131017644824801533111754448394608067195250410680438157239198874884280453916458706306013009611757344051059535286235418243254975344107752102702601135294588464814905603024836942035401979178486705931724658862322116356094598658025454050652170753500507200598817946600421821283930454053656146430634146446088366663072740063684949824592156064687187145806621216540509629009398899254585179028020382212228323043184554803881077937521917744744090868736999804328973976702322793360165714771068034399092685994046498455789319745361095024338166096723064396310758769546660293184151346118501736192713447140813336589165978467655733162879092508459482354367832178538123082313975365048524737771326659502005317668736467860120767847531296306718078209983837360298944100875094853135674185691305609737463504248060232344319757838112390981182719192832463035507957301043510149658652191088508903837043830963639061049964997148433487524257468792606851779557747891753129883940275489732787435612446421515763096820448137128038899911116811154385103594513836578444812247078432946393024354268787944708232860548600780608614421302839029090096841792815698248062310177464765445650827707115974265359502502836007387192247298373911619472667179076262497893021830223184386003382186876751651655836036482041599869666149079626856953134491724104659117798003388279152913084542551677794207377273517657741260051312671197202327211376700689838914377628892204629206521867837943386362917547193833454793594191151909256653264922956241210367546936761862606139140722790832359906317759025376818416524274440566323347340024577816239043313986095558429741554002601861257828520565438337137411328370547533828167540448287805347177996590213051026942910212320337778806124615917401088455649682479760150419238161004098224136831802782032520834987752172478212581239433544279410882632161322619481838846262581088940178791372521540273967779094761428360700115874270182123928265559449693075544952514303745918269489595724410299532991192297441681042016430926159441422704809823736181523532853879118699698203083127989212825890832802048449919690329669783531360374060278778844927940405850471542975703418048561184579778100196564630667204001557659551715956295697020250835456606309044415934875183198104888290035666549945305481695867742123200893527660170683811152905939136637674497897067098367761542302704969202588272264696365909870447440214378199830391669257295989057953783321710139269538356690972321232012484993550993872168291707271721475339154926027554915572076806358166222032850883452395163236823179663325127349728346105069277156278667184561530650423047014761182138916546140721099367118457700454862948183612397965919756396033076556032033509781430235765442394685784272432774877139032853289738782284561386059040502786888452374669379875399099667754368936597640900298885963833695838418275237220415294063963944061320625058518651741689271317212210000248148814366356054210868829242809880082539369535895817287682346167731905133667632061632590626764193062809361536893600258656072016481806598494227363040608100482431397147435576324263489822946328404572503022123466775753343284775575810663729310179589953806713711882292342839433169321969546443468124799781379987512727100633169354989129664420155683134112820111172524243352797690137895840287870784350354292320070123797609292704915438133762553584127037787373537754192142996405270745008337161869410822646820653054127159568399996380567587343410530179667049941186536143895057668745296100859299827572291644495900686681653254924111503221268614715117602017522219174857992705934960685167224500518728478652287502514638786492856890948980963801040536744655774308496187272683725696692005930195960488835921568985643369416464445273576200116624982772592215446652567779155516131209571807454621313902035877355714759559402197081712461310533721764291007621049610019465412060013542272901945217928912642529573205080368679111940368479937222046199385073943779071499207699158083059395764964443691547304203478340587408201764232197417061955955823434410852373394599010520531106775704159889041764889607815607514825147869458201003378208017190217424908390074989271277277627177293119924251871737972521607615666035571891256835476056769970691879657213768383942318968285068535524352694370914137372120050009663071293506827172855079323101708351170609204201225778250982504503828389088067671473329671879285198263422994101655482129508025213809129388514820501881764857033946901566466875705480476313702338467442295444031940302723719785985950907643407956224546824416573867199682483642092532609363198718783743671553005600908905776110017245057284513021965272193764723882400183020210898957401165367212102038991391296004058533316929034332526943858635061255745192356695905327426115876719411512931225992036931163942539929855564489317821775190927466080430677076427449652146814791426413815560731532326164315210680229595422590152997136641807121805624028745131113290465302407425114999956368369013719411190537820933984548970615468145911308958478055422287342597810321082849377034261352761696409159878737590488051995892898498471326117630508345311958237634316194594885939590608419660234447489412391871579545648584653042784661130212259701186236776080727899275394529042089033338021798884426662799370428076663236065827989331652616237931902384037040392498729733591355278406560329605142066009148262143869164666840629864157586466891352241924686590211788596154574591345453477912128588641258379517656732129800925387894493476462227783728997683280719640987579910843062807423186622984663330330344520091938284268670550828761130727327434475157466500318447735496427140453127987507672212526672095872904109633145358300565665564992133099718303086512459147885245489401795091700545648109605326919521433333862210801907604593207010440535678911930284067739281041201386440843752966935055551192982589595078048880039970741482305108372655073602799396926745793361497354316903773000159715909187821327115022675014988646815958893677518996059244939612714040355950800478706635223883613294386207277604176524705596343162441124449041710946157706912915813818877915352800271335581767991828205677600759446452494104946598657537733116259146326135119549162819574486007665460395127167313968881719174876922160915410646219464122528318985591735583964368593373613040295093984630130883086144190351763277296495728962646487888470907929446341526607264195674154753116737283327046627471481757083716676200250867056670289519247776863534048877004442728786700015266408497015145088657521691262101055496629036381372412445463843366201980399406267646754609810713420124149038560171653793718659191785062845391703906702724972949342074329714815611134449024141278326258037567612833543956335639871573737901640272810097511997561800061576276645426199088631062864886370543540061615275322794913785496303508604134024070964048895916909502009676648393223341600939084729140949513002196514078996636276919856171991349482129016649549281649919139632694916450963562720561776005492534641379955875260994652399001503085185323779471459635138572964603938525200807337468286102369870953261848273554831541536324613651368615375172994428151747008179141956594325031726640762958344788857341888844714704218659625737317799975594810499861388069757492001068807153337137628313717500833816465896404253860554858500824940389116186566545675987848885467151322823406896971228794488893874713827336825381306493187613918552024937297446722523232033132843708442274742796342534188269201682660425610727649746816016757879880882380517586093238109725569350430928984982947664293903149663248038303482660052247375426942980315827995857342429166793962073120908809601884399901900486333700334171821682628037581200798631317782054034385468060194032337795485633132191457691774861931688205439344976100380949811889344756210537698626872609051827113334194258343690765368977838359597090604425233701901940377527312656738297445590602806667601505863554823175147042785817393451825144980276471205875308860450569246574251637157751349436522720409918902155952572700693987504093772405980710928282412447503583736052985567396808983069045823293780106312216666747054019265863904756901278824104522360514268684182575510589868048895722254892831112727996858206175157939491800402952444805688253502114489720609052465118309475695886312841224995034940561978771317465929421186470432549211552530693554872286423099723325527810527033752076494201509283524738880380974697803799761230968512484096149450576993780476756772005849784444022629340765684782851640279239063792146890341186106895011937258674804471849603970848039604658745295162662004709123971719125474064319850945837591960366512825111008917020534296084448862162606919231915300074346965869165836668911761959902809111141660979175007138523736940678488233844515427443350185453172078679472110862133249618591345115759582092038471005311931940994537401565498089452349407080919358810864435202314783081668580893806172221174736922138649047341341714758514844461123164487908343881037698193772251360705608441710209879607036371186697685873036533982197318078052815805275588254258916762972897276595339630647473430066080546428883333271218499402775090730992482385532088372582073801528703192808018826451797058147965366493866527764393148708103304254185602790082533699867165557425819881469769323748091814109725495847743122572933297739640573986571126541477294241028877970827922243340046079633397750430203697606635438211563698920086709570688463036430436264993813421908491258297850587972105463511843562200575859587453595044233177018503086178298487567635687441394818165324339098027626153179771996308350884331391463663797686223223521302674499434742662452817836528018952437527586037064087911777183454347404286846671656781870482572481689671425169310549675635827313359984619345989228352572762785873101930362382095928528435775398882879691344169691685923628505097431545630508917015580168828874323010768733918781299356137271331342460988268906341359872554800167151463252558473347472070857853094781151218583757802276958866515006997157681187975897318287365640290823517952361217664666331170549616939530423298799157039189322595109516414088214808957958590146070667020224365110700005161835223370118505519358316806873234364845011769389984915559076559734406931475479349356118014169496232149585088248098417844964265762223899418194355185626876666517271487965220645787130132794359875552750602452498629582712348646169030820414744794716381469884844475633137445852115622297648021233025277231359870279611735798984998703134168622489087369853121354612982798060288582006022532921486190997249331182827581783615849392654952476001746020117908600212749356565371943513601616412112136732589302709524825028081163703981991202685301200398606889307114781398266954921706802655468905944168277475765784675012315075238767580774076637246076565481859098600369647141823555749595562615206705750110866599740079608909822674126102146272996641213497496110526682784045204646428111080760920329595019502304056618341788675416220352570193974086624926265382840873030837859953136613986955837826294989233482892959833913533524012825048099397337238828864744082941486299263647628130643761917336524981464289336113270481861069016411727396403733264771671956470600676701639502828708566572762633310156261189013290625324946118464630703130804165313455823139826527994981226401699044549203849052342936486614841643125435532420974039635015524021633088930779592212361183973127236349397653460788691035108039254444119836612580342787806678948137494958422946500582556795715414331281461502165618249975538718127490616583413456690038947461683611522290860980962876451308830504349717712711896648084965193028666567413295074355362945458294760501130187871987875668282753380972680121725871746676683337433032490306111798912863429995997866058059887948647807212455859002326766392164901008096544292373335657230874875915720701502324721895883360227351754901375221536759407110356136111820849598119485956941133352538322677780461197080423491373764012823654510957410468862349045175342426634724775598334710105691090933863462868480504685447237250256580664657850476232483920565522835606855073615628711149311202044088633380411779270642726222769501391141224231793690000288153854187646325719043602762843250914783752369735467485935186750535445612906984278988976734081340895611263027952103243080766537617963314831899827446077975568445948413648859652888153073180346087736574226841964168933314061562196027819940519028380981542975617181975670031564294966397028585215631632616297000671223990024642445394076242329387275315073472165078538127337747820055647069395952753970599069207501372181896478039863325664998219766341633427986856944886836564115166316128065027751767892619899011700504887455909571590278052410693263965138149922209220331646215194909060204631877602329715262518438628443354077394864518194631483622349706966800233866214714695502221752395240150303284200272396372699156807049380452216370140794170829136622728528575760450215599549711072324616002209603523922801084010835158375119228408989086286020748172201157566996069875929850140379142150525909685987455703567384595693858047146747435988208801793169730622375629354789625040360020690960872276446791185142676353369644805421980991492539269968730902520025618337948920078107431247706563615826799462156882255043992018364210167224217599564080249842748634571197099093186602902422963860213419822687070647498429037851918266953381676163718556660467917838951220544200106980099062822874885950454347162855354781722698604000214958278417417821651328293540991496667668277091589871643955465992589855170134367694442442785424013166231353808028968972932810491503024653384213711973086266788802823421820826329244245566922915151474286815379511856993698345350851019714013953234985591312139105000411758394996160888748444979292392663945985559885387653832567605251915207304469758604340282425232821070712059084426204752112244228877860070915925564190238988258259305355936427325731588834016752674729219136316047566031983167453260215473091732281173264589476670069596285091091687226346040128081688121399182479470937615236271732914730241117719310479076548835129683771711897952753143880466574473277171314617515261745473170969041238101262137879317580975213487825054019685693006002252592276009747285263994221128782863440475980945992451551318767501159036979930279198507787681854630956585399349784089405364278949526287441045245765325625007572283274839467730484181328184361636474222658910950044038214026119191469100099807537890644690480131124243501434183439505446733404396265525580372941055146580136154447244123553017702667426358855210823799609639158893441619553017930872365467886353062287492878818582938894353345417503321334867819776580006566310389040396908633869425362446182696546842492868277437746530874938735441995277586744844359219763554466299527881143507078066816834296262873549675307007226627340375666596716179376009126285353428929091862791195074517797803921437261900202128990292170833106582881421825892570089924222810624290482480378668535441443426576350450763220754478941210544591757701673435642705060046511606878125476979602930588774977140010525481183225854989660375971147264781204722536991810984312720913351365829649314279040810251693677064507217485744762348156237645912422938835870025596813733762464302470199715026775509914459997866977209087977093245599606051815195162145550722369967846618029794136004425149046628712547375904031244582951232702557006693432014349700176400271578834619922358362792853743710062712996178845236493435409536226558439221029153654455711131380501239802853103167630571548055351577486309318093153488484829092998570131010763916945869410256475720631566335895358711467770300962985253237446814394180995683223316051543186923028122298611891224658372039832932298999774266765894336839725141083380441872397992062602946515607746281393643588063198540381992300264736038367007336203654125947578502821505933954769955941534095896947965339672890966900827095854344070476189046321788442902674203198287829926920817511420795063525881414114022807793952165757772143457223241164478072900595031051948484438633075533061790236389354115303631151700670777064605539272118416424379377996897360797477384652123504738424705746125480053743331579926393479808337990974367804321509582244662481009512577678879762259126011397687195970398720262032977416553829594061773454286321681755457756781879640793018345856383245189615899499326552282800621234108654470021998851353923737379462660107385565690138858745446465583682101035894246862547256684126993713069905434828906521883497836224520813534688267042941114306065900485784041246253776361901757746233053583777988174959704381067686183143557824229285685683935949125853114134355658416978229591790151563976691397226462602476976758015012931259097123131183741557142605905938214307443315299644386703432084465266002170871504250252479024707619300223908421269225075636931265477864865181211312669417012150258590486001275307988648258019317035732527663937618808880680559668999470481237583890459378583678299096458833554530908187249139012020685440598555825778024280476011620901497306822045605782845013397981152099401988946153751597200702816195083378019563722714019968710884542362483470111085789642529015066645104958908071972424715662763118448047605017245778049537112121599455943151747950295741887144699243943978392693458691327330263536189714961971885828555495955156627021488761344648661547221981803315095835337641389548697878152301180310213654270171226389370656895364005852484892859881545584862011443149113616054745288937124132915063167216998592028256361846369197968199700408879854413845935435599475979622281088669436673936716561744118723129200518723082250755278942200715230483115514260823679818547463807484312364043330406530972471415632611240911372919437845869739639266687072413135820336518405167216064125584770733585071427065542881289198667375255899700204064450510618872344060286015655668991392085831658451570170218401104512085789931809413584024467791000894390967439225577395215327353578512292444398086561022060598232947408791416010570423773756815006515423395651487214345355186494024819929010440175443719347324801303338229617475117417530484375461105411490937764958806061675260918090733308331042418699456527034935161383712458698076502986561947191437801590558219594695147960801360645322079999500208470121081663134043023652666662371440493736799425349788475224929151149915996108312523136233823734398496873850706012978112999591766150041220375139722687929852669572159214774290263876451768412992076313835384106698238451940780514293033271524209791889221239238253173614620866794736484221068525856462594369521106086831959238048800685294365225232413143279480922595381890326023789414263017311185048264466376041779960876585853599812537497253380749590419936248789009931559141369307209973579565505211483105643354256468781324276442024482216783272269331937284094320555064620842815210230578400072545497816889691930909207692590761333935871680599972636641238483171516353925469943065072266015834557902768247060855755609680964022311689424552607673253539755313268809674756545057277243285227084844449454029630115516998127975924462909460671025199780557123909013559993886903938145399459446776963227161440751936624086566346809727866687721983113643070276461890689223147017381101198438926635452146831177432034566226859186078628138457596369514179282341433690299589182075560582991664694456785859711132703989465831401541201616797818979099116347933538085818661424465585275205342326811067349911674705846330476110746592147431198580144272235339845240439749676311749229940617193690456575572636824272113628561951764707801272315713119701295965379605516569226512596259264685928634358210176655823557615240673428907955916145693545633363000854557645357824938966286104990428313175292968933190429128324096909187573806061927605041468871342201073518742972744332079856141580385400275903849624728658311458903890047813376339905336240699848028110802300165203099464514393874860984595901127256875191826319171192883215238878721219172903738688410024852868930715266599404481668501055642422529629645865081147370414500315620961889341729748305757946587187322160318948520923477079306373501442668825379529613471623241087092529897043964032502478425070665102445071958614411381873770310367903236697850225861868558825381940381613327708341059012809915045653953102078192404418477570058902990615507948841149544270974462664826866814540762635032550055793533368174240245181385690301985319355400222513701287117597397228198749339841871926359485914000866727146386282126965169020864296779205958754379270522279577732043107928489402504371089927965473566785610901997174841610057836865613068901475145755728024811426958497893167811439638776799973044910514513264285655048888651020168047151877386244094992999092315335681880468577401096985353230984859667146183301488895646658211120248700995684192231498182965277314513033441590676118343774692832362593021946603462416638397274085931883246108052038373059092689511209418585010415057323573158545061614129895257349467543352538196820333030972082450154388395763898641518485142292525063054603275468543445998406839780864530520336713924844849552632958759427952766619554976304138985695807018246591971125030854383068932346822830571863978391746153848807820679094199433452339133640578448520402760392950000996251894819502250232297855703939270840441117134127888747388667897735386189660780245793214442511603738564684522212971048809332809076569079668883971173987466064616206846984875090253227426507713179259549581380029843974339463766834950200016773568516243027379195093870296330718084966123715689077444032351149365802437056812227456893145596113997490640599251590281714659271027524425391616402637911046703293525480773075062209985459115475919626060017010834841548248681157173187317544206404186379502636413365170382308601371577546075363980884037124937593407354231627533773310859024769381239429712220717561935068581327798166951439389865334384113247010398084815964616268578289735960006146276932819319365930715238956547722152995888098916095407941320828697607860445095670702403230775509128075600910859073068877772082807260506376274137627113103210797523298332527347393740490569303622739253116828521418375644328319096834250322877855561005742733257869752667473672186348123508305834613360749207479277523233921536753734356141565428623410952750950295198669399662651801368686128113712329443420679431093382400585037898818514235825356991698924877646051374579285802611541075290925227349485570349276018520996086661655591399046111257152379736327064094497423433454933089656941540963331688920634261325417132218822926233305164563307867123522910174691413985863821141493176657806382924278174189110518313516331168750306442388532846062049000457206689738320617140110095992357971995932695959453844594129204136568215149095604763335542985364011385420122511516618120147505921889167514485445447009651931517537171743126289743902566583111996523654823321520093413591709513456426234555450970626585673090272425766522908401669505993589659558611432783118788140488095743815593657324938744354131940048206017822490369429926395314799553417270211106644212538200348458975874440583208575507509558486378453419366841394671335185707229909904102507472163527657989557980876182791744393260315020467527622317595652918917956818007169991335263390495829202757113091711702094772170698719963311995719851939678513239200450364588656568238177498841841428848737687197713912454355891851725563604323496653572065442885575457380369984332557478734553070120538605776656539233099142189800138417901519059668620140520273111886681351376751676848791858295686994833804448626665292876449421562988939134620652006694819655499939002185479686966791491826887113285209673342661911716867925789592925009220300085106194295900682080127289521479400009201305348914960673728913949846223745805938842621908319855476796416372933810245913263110632128242588485295891626610188326490406056754268290545598237451978619520634001988101267944727521278227811742891684114394507968687537428620500566240581996976784026345072189528587509634275965833242057080241652140536852051842596512765964918331938182373698491430034398149540468869257610299293143201889135819671519472038955090866822588009747777679371213683592002521735525360212350087172254979812649813394744212461782420521992775594879421600055190488296777754714219657476265212599743603407106928678431628608757011683692405508274948435732472798249467529092044843095870153489673062237035085908114054322834579411315027905285035589903003057251640038517382198142013010351345126830855307313895485633435873901426265675010508489771154585932986952656656137239258261083764558571934398051156082460827830322515344620058095093275869184048795119612743999668978878205193663687568793188206409478357234690248360116420059751287819871711611075531839115515095748472215961579517204153122463327771916594413769064304638297664014373395013732961512786995473077145250287932772827758348626416509768681261841489379118800320888242922280756038691371278423035421002582393459564598165521730896423759163541206051619372879772690921024962410981454749224835431802070298320723040298108743657816172551582967845125774062539324767766076738465816729460453038713686085027015465948664434524905713966691431505346770737821906973475928502990520143610190579742949732245689548084716019112465384219784383551372224381319956686112689403591812698326405698035156581709747670266423311613591518794483360184624832666438041364964560659981417838897340909451896043439798123636787778569295467877156677738849149544909959232404009950676579088308524151859102213041923700688853792776494879598557997678487546845312648944189026697428950436923848498785805964985787885319363216580206242903644407248389917377716665917077281917581853092296988134004892911202110080227638848479085699104944069005865757680370505481084432991186958448496462407753689161957369134863604345996322310613369511154961152243748819720720068772389934444344969578207997300715511709537212946008654819504559756339288155152381575463659355783061840763137592868292659017203227371405527894430711248016867803360375809346213098101479415010545873711305882195329736040591538662121300510624156287751493836309439821769706778562687493827087260504208491575690166790822383916701054417757430614880011704735602901845062615072090774953746336034124602799793966837953359215908036046459611398342026218470326620515729868171030374152286784377534230216018824460621999183831547665493049623555001898431552097725682879956330327486919540926717941133318863203059088191697487956969217403971419386104213709368717988757830285231875991297532701782483607342916412912776945605674359655194156385502585450905675582460489835916671390950651524210412849188908086713346343467556047784281444635525019719860163730303683704300136237232114689958515536061207765947792639622089172792068295027720022974767387604058356594497298419541638193874009136393503857834996416046481673266538780046881533723764745337787436213190071735370042725378140379328711991534599431937769043636362780837452909164778550883525465176330619247547674892188827602154406283458549872164667285952722008003261514158849272214329828318553145822370094971910502822654526928549607986107727214719579829891128998400906479631105524986625489807893935903317363860011935945672945219584017002520921158219617146170776844822903261564097018347594346688464535672178192982863148400090406034492464383743431781981776626763102878609290839470288291958936131879284544649640032329845007767323998814477134375671120052523529922582310182497414675843909721454521802015153769595631406869537024002610357090901896243478095347855284892597213164636516694506027910018469031033786115889681133350435022726467124709984864891541880867685308165431371504498384476500941240128122303483974678034949702288252420535860595350850514073224988715188875564595563850719259801144567138865472015319506751390608736459873191043068236318908327193614930654990547282209426143918946824957385307082306354888614887919049918048313599523964021188506711114827894474252207229311914282240671715672981911052869196269612919304159616329624122111488800194015113908605193002057929238182945781335654256101631468407549633178279556744926381936917503244781557755681873634228528266265449049046355166003164140439946516910472923514959287078341258877938458638042936855367011129920882920105804294549720805137936799838731422208375206784478502254396361000258374886581425133959466866306956507473781474157877411704949288368721928020443454038660588484631575767922406685213352306448889617071226559316895682360736799105190923565116487725166666177530177961813675684410251674312138833990047316721820309086919054875610738524650636964830164038234566201359108675216050697384034066663855058838377775148281895090805762287298597849308029755566003059937696333567156543152801361204463664902931942198433836028319499008161086211917788953525994771271777404949954518176281791286316667297906149240653272548985036082890232891236548919855855721876606586827247516849744896343549894367883306955008682028971479467597608907478339265706056522889151280759161716362477242313944165126055679493412601722874302217883440591421384962638335638877514392845288472286713363083150399378284838940278001181136061208747504012995723237710588017594157458581402340582903516869476059796804802797033699874312894587040628274247124944120866027213454475277769124880266787230331892211443024003614958389781348864584872673893798220485977804168042901445464446634398773588684708327307785981715106157022788932835776889115225336821081427065899762431290906721714266895148386510981199299415452079028814685401843972004627919780384817527392343069557018937358884485590492695769172524572751933967345527460357216209571075840851704663068674521333064634085205677898736503166033248382042108139190858602300654622041373316791528492880678127738343239926858937432834327782894084349180426217706901001684653468056928349083582465034025991983111974909774363103815089672609520260097029025808120695832311586725090551075016377755567197882813602861176735577357058069065269191786239264778448439463823648273339361074643940519057029226579541282492318864474699176317737718146872130842751469926797693975409658505370419612421136587689599770903902321964689412983744587958669306867889946670380160566211404554008894266066331536541899035155021295520162123423884010170914332738459761828146583022362025096447152389627685378305801162922793439299660668468798134128518685626065502933546131023932080359538611886637487081631241968306759133695693058169517677142726717485158119662916319566642272853229302409771800788409716085861366173852319464111159576025443286948960175421780498139830642810450584552445490158923480582214659890646943506395541909181927106266232278595756010639051444332724201965323282502606443031769599094412442547238355253046121932722188794725184684017115498527315348604731786040012152864809647905458662332829947504573824467489488193703692881976380142356185148453033593288223939445424909595744655633431921053637694350395860034348022103731297804150454329667342854357581590765765501520815692494229773129934924615207338262426155344800820363598292894628066909609558142883410984027603606135218592837341979295844559907391344739392216725469928004051963159304063117889410883607757265839025378358438673415394547184297076408734247903239757632524979231764952468367726223553939942258439369326047087900815176077464648811951210139504637637263792390936096544763292123129161248015414812118317931936000216686266098755074819699798296629977575141171463105289365848230411249187402743849859193865431631867174010130719507081337624711238165325108165395251940872536844522870623428327335631481382035391945258044506095358245014016998164325848711117061112339040446264849695050693360798333889607648741492961439219188291601450167808663204093699902520877140594770805220877124268705374679146329994262311951413264617756740041537787089395140944873213527216332250177367908403937104622430332395301249510439153569459389268532003867751631902765054625285551802489486229369590013911641876909200425185849937187491449017243504674178867134571770465645175058235016337257579290188508159376002447083694625769806563267672883578669200849218615551626065138644206289833228583506609888957683290949706485136828458521050587514207207063784729103017452012723624436286221160533406423457175738373594887651559542712185219490106618804524448757317764385017368012096775911589511270116710895036390714692236466712486858635868728868742188146377581915626162178469885527672111603246877018465592727194527621061077242540213631038828746792778385391414516230375060932410461350426437765405033890076581172355060621119965454312702308106062705240547503135585777532452420490293416250552948354304556713199806665700905151349157769563551228366067918582610474505054725946117109697323999573215066663119227159648479042428597911068056245406541067660293707175989218143581822981267679452208449353250467165775422891588001833690450917001130873155831562892221599765477922428139873734701423350437996081159860587746837011955897584712198607353224381820653027701093890065754175957914684381323114922920246296383729123288414870813556761911700424642432215518131518018077391996019792598257689885037595841394101652600197318680656499351269829176205409373791381421017067891157083590991913391684887318977660903994643159922600856175053754832455572341323335793722486557325960599193976103082165360488771674766992439726363100175403054422580994373350928838397346595897074802217249156112869152566583312860550302948724283182760861590853596732409969356036311383574923559838754570677626350598522527314987611110891102876649133802612850727724520623104956307413598868252896406976189692054953628750622975363636514961393188588547686962025272449094409236384650148129357502364934632809981827031487759117372846283246990758430873687574499245810815643065416901231392939645253291195674821135298691364098876985711795727871680078771970049596241422364172812899492557947336220234738216304923983798866940567451046546433675973603010884580330323546563042778145860290972012595451072714411491235406750687403767520624466645199048861859465868502489180749254425834164787911902135888499986999473527444578605430897075746748497158370082605717302398674879657260806334085713784300354026453615329617464070455468258078696564414433165041351444656554310555154613437059475315948953656980323636660412854275647384034875672290428991502441624020315491157334435481413028315955099784592497518006576651629312660052128848242742541555166715607815394675889391141735751154692318179986893484216435836133973011775892268383400311234930762187904685085754599866783379081517660183200426633860218243642449681666333111960926889529697253259205211327896147547176819483038394083836532174007580900532843643266540217150283200903127105221859150782630051154546939521179095674976351431321930986579330662938364867189156990206965910975682983018182047606209349308394515461579384049864022272478375040520350095963655735979890826189021616160151463720896533087456674430359566935162966069922600515513450824353123703502352975058302910504988469948237489470884045963780030198056253753225713529860797154759552551930165734835393731531419322563771401170184328980693629255906045833838252945833957358300196777303115819886453428750100811751559033076204863966800277794406100950832373911256137415138133799608428229602733533352015464685401273669532581876577983607826493862719131844805242116871216032672880729297401968729432714971745004628113772839627895889906002711716247289611882962062330491228479869890387743770523688939646058042941995766686316814293756858775120604402424518786707469107472498527288491507228700415385343290996971258491462337790415789651817142470527080037824521858717326758724536966011939205335047360449685190717088520765837906007972855185916065387875882842994324640187084472788867574230948844930400703009302506586741005190457796277100634963585588752816882591751774496670188897923081878970372662354031409313480845470385902486518471332692458769592282761497514737928606464168043118845536853637493211706110875862343753431220460169474498984724573244369104962294296402769362992147383007651540675241275356117884288972372782212710596573751832338161707938419526899211276017728748301424075368426827616183310161910207313053557216294618727263887596915967103760286282400112025112527234758920527424007443474956568746285360901239953792729719887644860137990108512813583696851264876272346278078430169913295466207743872010933396720697022485817338157465232267580516468668929443351167705062855630532131100731416208181861282569815016232199752512330286276182484785655716875763221707362890226590009277666646832139547034109937127933191877145067902710462461862275989408064497756392354007270495805654649399826066047222776547169080258192886405848529745880069572703911352730596283928148137915101359963413745181356043215736934178269194639514743484470222869358356117497853818962542583409331832062893078767122637311415737770925909573715208692687443156392053415143490867563334638480969736890031058271014340663191713097421852818737405031249693814678491126686572642139604729020540607653390599164213830603856263907143848624134603378389204537537849425713400598260664601450882053744129413646744472992185399364589587940461856079709436122486279850540669517239848160396461347584957145721566498491716333810343995927727759709227703438310189540517293444700925901263626683798509677339257934391426254179424781605465199755953970646652292243763613685749315614943685645212965798262842539682332702341841363893368727802759982939628244714122814585028752183958188306941201946737278601756100493800014460018114061967892308713981987967671323463646135981422455674504922943233140082952354478391907582070199716657130378596250525376165424810369677726841957226589737404519202915974703005835404748738923155526676027296554608296094470472165386115519250954681033092943226222840633705336949171122637858778821401557059651402044135871164640375452246133001543610005232411631526127231690044365852542012794499116297478248494941638766012338544143373093393618820704736133140927642480071617115268170182092860100080389879280081509688670822943647733266753458183832504810998525298264933169226650940289202888817795970938725037621718208207544072743336417164573199420601962754273367072770455932401424339286175958499554712930875885093771544710939462923853561872858534497363159826615328969944975752759167380193811967176647235258407799404404496213653615822157435870279711429509212481386340319547308279302645424016493737559702952307061435187070772069893673933092726684180612634283708382445353472338227465065901761121166397423070339427236453888399412071030245137768826096654152872705528434045402564117719718493870690165179400714536638811603843237214630781033338767767796951083417441834611788367968532258000293669737448630177154993013197741610723371638028902840228008152323142855234158895760839424576181869466633847422758821060196179909836904569739864814814342580193025959051140178177727405600241170940444562425594677414704660924251691799530664875293324021570822344320917897440378058462872113454373112951423152160959011907594701537938135864827501597855572336987497775867613359044268046106749715708928476466055560851006343001622096698988487538137502606885881574636394587486008459833207268967918746598372227962269429646994364491623751393387779393669722037655133764695814533196206285288383110539715843541364942928689969891743692410383990405199216017539205756526247536804529090152077509522933718457125604705398599525704490253322274064646951704947645159246591592904405779742795354711605744171716264426420836842098943850904016874896199287649592314857059967770896220241803746541573377078238319848382121577066765857001321020127798473511562412769521529505915820540341371140552359007720167833323155832233792881643333755680497318042642633374735060419667452184050659019799734482920731387491814532147038093659714558802346869144032564537930696391923184689060070441905148569925537417846660561294637902488942517920254642793681979223229477132434513138021884608249979390313435543986776758578494090889194662039812654657189172982663143105223372796252890301883222711845580554113244334515490719602820286338330274886457120509413951149714115816739560828846641790566860309452239776820052821694318334215711362544728128154320690310801060982494422645143084482548612133286307655113194281922322174056558462159612110457241422596160680205337944451998810362234894182452507594812851224665069475342355084473611796061728640814206937278051831999230148835181666417329752683804008878846858246077822765975148586536835705965475468045547023331810733326740734079885535962175249656796684552249011774257821765236182863106313915537978426209548008992786341490420087509439250474183818976489201240920752340592590708540278116581339672168103729342369958259519868182460345742388460561008788528243914201415839561472830513563459470131814717333179896242049787626678300303720129656335674918411485203227423098395122421511547120864556722131372632683429267546871167798995167302094853520020277934829334124554504947035149323587688238489247257756144404825539097112913415033282359760429136838213257467602535367500882118608373782078301118067515523261553628014501522272627475703558490074650941149107850628110159618099886335095256615494448654105738974347584806825394336958990950559347507609696219191026995428060800688265537598087621714238157664719638561480151861812829690480640793958478712708434408112051963553314253390980606507393549935193743736793332532892539385433735960593037715726690798446065475800615523504781401462236490953208383889911495431129813697632612776664507844249209612326423409729341702194116600956235648563081602695778906468350177767926630667004766512742879158576681563421839744508628848788776792164350078478225367945838676528191408791175119424530663913528313356479473074614041942200034202140671686316743000832523124524595619644095632242294666404040103841481877065350289526941703017182318542819109382801908853818261203825446338933014963527132102442379317517999870829122679006192298819151137141512154640126264596588795648377540463869925655149894860625927054808043482003530942076036873242141255416613354038865324674959905295881290953812268746536187490266022730333726232732971300426221457876048039201538033464394225046583933216981413839419450326871098291388706718527604406644722391059829326032423459305475078055229343713332146864022492218180409885981687429702297517106367631020697486298559964504866427120546240203316698866159035446591890348022821246883965388320317255922778507271337354330709406185680660238809571649983804485991326219676502841475598422034199399150434455249313735963162124511075604254302831481730042138825507593167710091236518877787374803050096028138197779757279532311819800453871306689473566307188136518099340285906643441903138997976765680428385244774760265893537741902970159079614257013905982945533388747788220684109340536804026309931805165033781634572693186591994672149356369964745370743677731408887748889500152092274562926332208387572535579942338360148259157933813859889263287968049034619425667313689891635756873230400247132367706790287197105626934271052672952297192096167212837008096765445737369027152949279633233801086820384052124606379894471664571656331917992714915238796129261345879066553622207576912616115611283024912764349224872811754188271766275389722672020557009066752090685419386237170040183969783907269150697923263451031445000962789688603405805981490299387565224660977221101178738032647922101193319088838798410576579767583480643318092321788234268751782804389776773463068292370819548767346355835696907409104167493695340732741264548097945379452751382590185726574776121450338984593863265559932985778063778948605950857366852657573053181463423890298535864714127293956697776250936013463555902196428330176053334889496581783586858955084479780707344076243766630298757317697459606233093270526118389450148298707286994733853852832392239184499426436579802214692565764124866348820738554300779852661159000603472424419751375478905773830952397373046902876083874012183062032749939500886390846783001883214377300794785428052583475892463833556156260979691396333964736925412595637411271294410459700463212681593971541482149885556663288637174093757893290537051849267215692150735045654568036818829434095281448153159690782853397674753776555714313227904405682767693351144250302250135213126676000995782774753581626610341261848148721829115632968084160625259196091828364206174184099953166258702828463786627071112100974283165720938949119382069441007231051220076092032047219355425227287604291633686473045811217754626793494992690220962134638855999320005527759733008653740590705796965930013403127748185691889078366049810208305644151705998479944517131251259925395535718343633318101337528051702405178910001824274989847314321256825046744284326121785811656719428362393584293245758594660896203280591963728813671185878694233599058705531783067016592368669798335941165100674785606705643966708893905234332770968301099893157106710855598585238528579319436777503032114560683634565759758423517149693668683450172596786858857319583328251531032831911748774292236994950179939814475010605964265579558005535773539055123379268567879083908479271567798903905171618342630760473747787707887101404950497330409310673120176076925468118940772581145101833067898289584088025320194741289281943648949335198556596761236794674393398917912725317925150797973382388953295485038987946972290839953525328570647762276509073431823451877413850332084345003381916590751961379266474329812830688529268584746858975265310071993016282288857574477601481810835608351665145680726750318659957206941057814983502730978673816220338925856908439905263533186419183495500508970240903513767858866522952747764700885505346340304654660610118372392032893965310650670779940060975934018195524231950929612889897666924130594024573310812016504137573404978826670006855305831184688294276106062633036185356342582697277880440921153925990361956338630349612771090696566573331569123097317909617552751474878718877859025626361247592532635422115301861862355561520351445896346222796469377522897890699173709020180373012943534443056709483715614782773219100899450468503844924355472924655751553554475711047451475588684054138931038073213539640663703352808085898201823554625364265294153500530511039380758038283492013980754668803806632368601309994583285710550178329712925014779137226123286290720026646278675311393307357077708947267934021895853429086228642155733297155677461729392960691605888650253506825212037935736783360791170410754727957772865054649819036764038803169466769166306238893788062182215844227501700709185502361360136948089285413290704095122193274455934854679808944378111824051360225216891076725423617816488579715635695878145815167322736078976303986026010365830393688883834114765099837623198240806102691315801634284694285965808233330548443815747269759785481923021095393244028993625624042802140704606319339955228497897014984263610000363475593904637945325287337697411407302659610017110778907807884954622705673552651865308364475208459425102252122376282311031543812938052883661277945564332189759465298771910298001505544801828144404985363324700371458350275338039513182805730362534977121773907522188699630252178324615193170437136398279883935157699979777492808945187507108437844497247959316112045318626237546524337445760537732075141982299119376928670411232971602103677246264882561604807899416654750859898654118594696735649494500137188607500039848896721835349606448311563861091035898700855119129902924022276096638487691156136562593945896437082869040813738552049244566861280068024978626193030700887062950763164222186903765273033632187265746681984874333862932089058027236763174524731378295146369965342813192346281351776090806959310561803448507792765589809469991282970851120073069769026217941962771372762704783233294057739331020725758617045873574697268705747491086240949156596432367233701045770301129670533409473835262461446274536453895338091168240489070091389040665993460351214421339286665228068331532509926965266138531766420314677849538433804795063110719550745492398365460889348805955390763776930225580228575435252969929902349150999175684417920787306714093497257751040815680823171386317437543240838628380738277965780930678543595719349804064009200406216869680091419166524919894021266815564899217654388484101208747476697707608008210146606071474311741624045533601689915222064262331937127434484205341238707592057480757650026997618794058229431759977278376262465298013081305864085791894210085202456037942721254237658441864629737214597266315999460032306857777625170580593358720138239177619318955794038083170288010650683304144108703218257924838313445987899313367969675145867752545745412476417959658904034603486113457706113711914879514322760516382713256579496207382124119872772489091602933870167265133724623824682033912947407108654785388505724135945243890693065125184707256478416766798674262265972642311086078441905785837605398653864202267827692717925356631447997351595751541041580794138017826433443420643077408612326472393381865684533891375368644330551608384901206676247686186530340315015474897636804170778585519112652616483029723208456503401171974367860302410145271033912861187574740113408666166460103469309514353018978024270206061942499260093231692117632414684972948562023437815759748047144983473345784067523763089420357531648630608684947812953853181692659426645706509742697922870623843132357898453705526772397654510118768861989906493284348368805661473772195588589390694538219036029571926859164419142997248211806729929413661316996182649256085238124898935941249887391436728622088541710523265383790533862552858165670402080326305021292899417978944804870788257868461800482980184741965855652754867912562846378026140162277534097048727934433758033742440545363573097611674436764758987645199145446695933726939395589894336157793110116687695418851442567646102656351697089305016835946520092375599217270008502030040285448601400990045272276724086379365648253569470810142423058236950465981818412044382781908871218483502779913712261007890563470205568548243690459266108518090754171985853786382167508349086594484706161915072311685861400758506022679515335078097083569605726760512697215333984461033091359776673708882655531889822303933360428476794182194082931324961259587139427454872388707936708014000535681631752642612319625664177111398940958339005700097859043853263299381390670460706466236970707272610957912664565145015369350256266445814634148847478010929138414761712493608077768844785296192424185681900103218500159841573908448513811078252436809985057073607901729370459499719860933993521758867245969349280662391285013315136712001712869182805004647557665111305155663622519697971652785330274953939400667288235594492524274772603993071100530970920268572084696024812236614761777535703291972820616870956219101048004485275145548161874114749705018116461182448335795545321737975264761147575295267358720913814178567852293311499351440750016547520901185069601610573881263297047196787172332120315996821023474690401663620981226690380066062325510351357341073693743610364378299557454196381267765457106044746188903663428705628439417950251681697627593532301016753525937845021384188696802444801821729384086530433353607113441970828253753742728145133782630477930498552864599741754228478113170725968109063944653175913450052626423548659039868602915487703858631300801040728038474627128110790114062736153724764141582547394573846316314760748006183988409084280126269532103578359917491212319467412265289173792931085748077219661039496098209498774788206057802589471766580512495250933744873435291030435840500554837430708290598180878605168142562534978272479989398254645183706197832597945132419909296058984427354401192924547959116513189251847192338466825106405791625061917395496181069537857248989876214339115189430462392973652323296244805783252367325459294977502423879778765005528794804775296330436860786905554900824478289172626841608936701905489124214247394057851212352854357871672775089617466086377767392972357260064181199326338911975490101277848919127124032979316344987689307411342063376480049817532500135704544738283872903470879524577738596254110911420802216903343836842677254786234267751500654209876849053793589811539168033534342609970110082396508658545473684542519870502874965511822921219306145619005883566850323896455757259576197408998639310824899988942924112561407733902378644426720925381058252076664228102155650031362119118575383570171394398932352374902890370258030351900715799094820526432496516178191912093070292713469884232877902141847111391224301235457655404674468547723523873714584902560765577944881676464289596168168203766089360001969677277662931996307455795076850273108520329978830834015414841650257043102850862972090804241731820831273328802210435060680141948044579108034999973861606613169891457137743083186696328060837587380045399677892320668452441013544746723383015910017216561265670899216524043683523445540012786539703936212350778536581219451769683644501464791625567282940390059880527485189558348534071475531522741538833428608966593807037352954165697430340250702214882432424927431703528020512106593910223506919558094325983788945652547298742278921372324322531319444343179721377681842188581195481785339522114549762899847741273308709690258886360084096134172536436008439435513410852016043279247189205404116539499098236616242456595005436121462758658649864071815304722820636162047166655521088518451840966018148822813906217276176879614542442331186471190960656721986437711666751614053532052725571142146685958530907304901467812841596190415976252193769074353631304148186541251950574999860229981601062826888545505863645254623187351274086568794690718238346053031835949766175098620037546459802291383682197671799038036288424610614837706356883417837603211928208295080823054929844764259395199143810788855175141160512484813389366692519374655311251106556783723860357643630687126968276771066341635733873219188150456816844032976008268930723944563500918465567185588689383756236630823825374028073116205401694898082046693595168251631704606840661387817302125071545236495680263369042948431775524262817789645562389135958830868984905583385549789858704567356392590734423618640626501781165945012839338201886432738129031167406099430436744369511221067382900102167950402269861722461525305165440434346245070774380172341028416956770921771218306371807641015468035914209819713633035124950826050233423873296670272732832660228018141465780573603497748463899972452855106941039285748640045121333298444231160908752018890800044887990664165305270331288687023038220972719863815399011881752399392289003712080837501549722244632173909373050497219750299450164232357103116117591566920734221690749446340725617970784017537292164961524614201161599374346591277509821862055655366460349601705625994454464408340492350070093799420640121775425780681028707872886325284545974262882155388432532359507312003991529772772689643804800517029104236650162183012799460777487185703887075879205054134493157515613866167897711890832253165587966513854866473342412582782936010244089294007388232269058823225812714457101086507435391980813182187102750703015733989505080275615851691127200240429193487560050118529045835097705666050136883279739839685762873475208272406934149646914218500104056086689393025712542226449589723392593438071170299756506070915830206935670300375154106916924175045522159749224542555108516462123107915749234938826681521413323893597759177689191819955941789679576066981107527356064702069007783982803712048521882182935776836074908244196996329381815570395002637046666072150430804319675107327026246175965408526030905627266769159575862932033449372185139527138604063915198682672826304613457261048723105193217036550761310980243188939397870264097793209156171590148541779123604224216184047775894824235462853670547147462024407240738918569012537300239477430724815428601592222841508791349706906405556083247100925430969136359846316354334914166953600561011615535369071820734776504302693726325948777005097313927237245524266070222776795440966312352791592737302605871120927405451811287909418210934955346952990917957255052262401586671497383912858427078458925999474828459361473974397013865015121177820945699204623898416366744970349599963395227290482999122720323478128307489191648558158556125383905924828197442062213312203029497824827450924111240814336073101647973290607650637294798078499375241099518727882733602721781745342307591816672599692361367379145633716694140343056359836613280731609640173878925103701098530951117080212843435389716710067977318693785794539435214122910223591562618917961078904961180941875788590735615976105121511344481341431755881433973408992698851692060107782028388328145604937555626559850917450907914261778007886688421686355562574320977831010348301066887115223683818587391084422103417491137617198187474688213073517373627102810172009303500184484140245595642277462164622974293702935072933868949195441309498007448900100233309630905432821417914567390082458848001918878413038778216414839317977910902018585596896745675984792894017695046778194757704726819167199508098721704613541343221137891790170866230934843532754423684870371463895545608915539424344154021566330366865506693148832964820024373865884961134047929046232187071854685055032968658804601773445672759308419599287089583469552273005970913045421881680943431540316940224986169439607146610802271206936931310902074634857617613040421733321505114064619604311503595562930341556415482071685488822779694000647418187576313481815815556400868421354169339669557017357962857847283622113036469849202648625804178403679440488244689158806102845345883901110108581948836295944224471015783413298628688124839408653464890944992807102864177128932423626985349210038961334782103613646934259701188557593567583385500695352677348273491166059643051812521064880638991670605963471478770520195305303199355510465404811762144364287174607887677237699639057954881647575472028342095847123345383140428991299596068377685422602166050536060352603763232950600651296658988486177930620669519159788197838197803415206504681142861839076543668692358508217020309609204946860462035249692284687218675389825438730419831120755382461845557646325410316323309478701903752200977455362697199420129781954661367705678380712344050799456774752540956108869463445374509398491801165991609343661312356508451870795696872830254452207339605969212627854624007225416950590843877152196521577598353921668755268657658176380330204055735643812009960375716918916285557542036297112679964083905753954250129063605956312895344736139460716345652242033787255012858700115645187301394789022889539625295157632792140277001885147004454104740443625058985417400248135863442559291456402999470918216828549592676352952750591183986185127895827571804235420272661991527909644428022276961438171903824914887940991005033384571008971682502260053410695317363683928348920381071161085527668178556736739542582449291577443583858059098334487943606198292641799485920712461303580419701937256509284623969120868228360725877649858059140241484744666350858122012446734777199108117722430478319907017886385080302413607331559658191434303475915481147266746415537387180059144187755451998764699574588184368196812094892759747725182599022287183064213524005400812408717489122748910688598976411706177364406125999413517259996916637698362167681605485234867775910257374710518125416938361939070383518369563676545020910974638013183496833834657185734771271530140807974061347253994549612002519953871295606234393880012513321992550661707427805828783672151766787090348902680145946809556439216086086245696009967585308123190707780776629714530842630981491616944385336210963070601539720737989567505062245827046777441597256057295908505093731841065493707573548959306666668698196741397427444719383372817495270291271381258587985887077551936684941569470983878513697409819451076111695732616273931775956366133339392236024447320371151193495372922838885919782550635435001932819528993528318359379399648298286199931127079395559534264090278949743795725103884187135615338006844900196851774443171143721218698633625423242789743007385747404548109327700300255875864685270652630001979342047126950592940526292886316512254876754499538783174604242457396886901151440061849163255613107353493522929605681995374083229957252161274331719146421418244424584744114434817824961839455535837755376969156329336978214788921347726288768415177151983830862791653296261273723443634746837742514201790424848170150975664853390221966639557355898251226211142965742335406434379368147153802967445077103291268723369435134179549389675157973212156394312919660145712344036801545215071377894229490734378742947231653180182777984184465092483265807695356636734828557526700438253813789646316056947060865352377213320139126521721628743454714662193720035907617214796624058148234267766259454227197471877399381419990014947337767118593675633106032174440069808169552791113539486755278586974737769166567478449956648571709816354437226856741695153214436931460342935536283317514674547645954715317069169835322671651143340516898224372557018904900436507346609423150920298899584172313517525192463367423155052456734183833743270118486416625341941759712648932147696369969735219877899727872257144863514652238111615842243537174962557393235889936826689836081731407850738629135749675698521285761530729642351413691640420685492289986876807629547616497791705340950310620818138347390038597302130991985304868576988867277347936424407058427711145174741081566516830074303811526992353994154310015121454816369157925311632332800406531671597730436927960272654690315887964871665170867307159054047639923607320589722094995305783832313503035428288414112818421578571238053802030124039031728599417318702749733138207721367508629020140788143082441689907924106860321843408241851056525398837820332068855448592111036002588815364749390552819722031850494858695243455260821541168870389042795540347338268583425096344428175385879846021762776263297666144240984547445119037808206791382265135750110624677278128307945181580611569745038108614344754987381626126489900328564590385105250186497129829924181707680467390881575724096004866235181756389754498147126662422721372527408091934781386021364629052628855890938760077089744458377904651986033516420363836408340376147264913033097218470255866877020223468621629252756479462102945279942660294796047823303238254639120267742899775853125848044700364981934827749977952209110858315255575837734642404224322225273142740334862514225215659655454958478866788951506052255588263507551061235647936104135092981811460213156483184550181575114976199635029516039480940777626007958226457021747097678630771118187162920383846982571537657239609874629475888110189809239288346358463366293275222642115528151844829107866344337352528427347719502248228225406567212114324861302735250694489261186395103484072376984856208676183328357610260865222414805185803980939057525408580687897999376321999419508193851930165846649568638815109453489165236299912014638151310750269782630123620643455611365371239403438300255840360080842181411064413892805532930214014126499676391916731266874258408507350774946016358424163531080785949453434492362377207620717460744951965728093338211622458683611390052113999052465548632964030569524436169822775683510767107025619634586826802202234843153257021423602285724816936882356217664045913437905158391183939207397478243642757456603034226565821185409471539529900706124533517450771252148111610823922679854113984051893148267044152809984450954005180845888013443599129002573380155458376815397341675936012815547722661393346359018115377546674390393792160642911185243677362473812433880921698765630720300879741995604790415830330786974434105440258662548355129248478246689319757444934747258631514532840579290581630609261884194672563780723237476558538994580282587971598500933507493572585891513699396844211259104997740623307105893787216661621111724319418069370926474947156605465525991770781441310932597605394278223293026614784649576276512878712068018802993164300937904884645689616235861218186870104728247737169611440240874503242876247885909265453799470945335435152563879512263826834233023228151141354349381236333636631341642564651625730169350189181224281729616539555842564334830351289665674261728299114794900971258347939688864548476391022180082332647347455800080880446823299023902936820654983725458303071368830948998595236081421902447180647588162092866301881237464783432604473598887484508595834694426224691248592232395424562319779566069895365253594065649151188105320665619308402848421286160740942612199985700061928860210125790458768082642173222031554698760902562940821775405264640546464934683079029182537203716377686768717592038735699121509019326057151656090615546168993750956660463458359890936082362631197342598271511428940387832538777908366505259378506318929924033327772537423126355131033646250658565317437798737452620738268901159634667996314057305007610820661948563670880598199643765357049772543547007612875354279040200018721916412429319610344168662795561893738835814305763572520727216178452826244776810296487730941638942192237335715524431372393544530565677636031142523310358427309717655625838076456975625573092284684064968845114450027684848749961492670612887890024404000277092148086757698160483817204453203242056797724314712242384822995378807221969766065666787512534752256227560658775840379225533350621158649083346380347187418822866588921526083951495648875415755010159925165034300489659974996064091001613564245235983113465782312367397269119166023897368204419160097509313956303020103157395566512956804273709707743501679735018276355407706969522779253430063153738698989126321075013734215265648154912078187305933619484123030353823766320952867561997748569570992745380921803366205067507126014149022964677883129043786734283988150629407596494292781740747284326079362589750407783622769925239668067721724902568444594634577752326592510933111227937433405601920464657655861555788077255899479643592357830144112763669246717755805639091852208786954435664949721354142944480686340735582685247701535369526416570397821526982567134226799951352908687154440922645787343409131970334269979900130797846276984386903584696657271885741765258836670046403412681004448436105259948876419998475056031741035766181987497223473232200280066493511686198123647506930899736175803120605397622505058146637624825738944751980939997777869630438270885239654035389579029707335526889380771532473670207963237312948862145872167830133283729975813085557807411854271411752192749381394218066871311516781367081340343705821406546424109432808646681170249674425580226289022989978276844409305416943502015914424315888066723863003404059888960109135405939147330768786601542402916050915437312803410502529856830076051899124844579874052845549199959433725053328447160324270901744975322688920142766437864691185903106062116728305615377391438552882857152955678687715837871315954175249433979971125851560022441998524933396512989388899650892884383492707141532598109620008352004027286842256397467017150993409581880889890792053887764859664824854937564120479243726919214091052026781666558808976814015587619928132755219543227566064647500037132214360587343465738312422762492230242146829395964902576025399111294097529941767633426421572093921492640434618992992302839337066478494725132956178708918204919795302027054904235468324989838980769694271179869946526620187608980716651605696294933822947655696077114362754182375863883963466273489621409564675795824451222824416175956285455166720059083988084132720354432756565301435711927740958367309261207303118993726325612126797925971609963504232061550700912848738098769746502196753348574586875006176834561676843275183504073600487214220610952684760193503837176264016069731891996116953541098486067360489793150959810739413089366849465393147861517419921442503733426089699480713958104776450268594170626614825982556762019428752475496799186067991541241737398135896848613502408939400517417146066333671493080404078863493031322115140305310189921159605924009408869772840009269359035665676593626167669086269137454121581734905804186197035589980862965902108853630779545360763429621973043432315009707407243462345891986283073978297836463686925422385262680871160415688823998617537755693366955740125903013307292202194418337623180753277818898393159559002810193436260943115230083704755723341380976362882577308726456136652816377435171172372664526229773100366263390446443963519914099727444855619643951550237103838296864045146996261823888502295226723016372247012793844426459887093825015120221346535272701465011419354448124249771084322841441896750648621112621008600555195083789280000403382786363432292853784003197693764695524746151617961182270383038083480028756535669040174322419073655724532826284923354858569318413138785021838709768628557057781252947890021162135779479341851307467145714635333295983581561617653397669158579324268654551969296312317152918444276023086461307729660307230073647931987360959498844116455043142168739060056369469951557054626447369499770610103594076823345544857909838540575108040910357401948346588601165285025083611468199881703536064501194046145003113088919679359050347096406743637462672154198431687797374005897260315047746123722819519831404753810214769643239433043784974082447126058161339792247995793111813523464854328777991420718770852831127060775509964770140107001753133660674859072684262342495579217273510781003198456602152393114717752118385258962242414189060940051042892027815512097532424049454249917492511708094882008516194071895181233207075349102714400764817828597844494587493924164923861397217886976694410933640869156408164716621287131243146653534464518159655379114669864015494540914281330008002485469737856980742391359754392305956602009710412535955902654158126203718325795160733114163653725111475078583870695115684169060242944884026465548719238428474361792010452819400390194558442440876288071667190921201942339746105805179746568801792053974122235534512159140207730973649719373594715240627570004788413168884499709799859531323072419030753721146870282181021048799105029609325776916107370864048146870730368064498558097977071102702437678038977117145538169115622564687084419414848378821986911747410765908358100171505047335044414370556570519130615049509104153339777470834162768546354421953728682163617201921030013495560011578352653968047267370587337217900718438836563034170404353405809794080596262029644605042773999053793491739764084102599733047003686818437087358898111550639363898334760053756107393608485830889250646716553826039916351718118607733551236166583730496468444339513513062312787341656315259013895918852454679373828446301839197472476043355836576996890554886476672983212417638766137342030039270110957866805615738679813878745825783631484456382607249861124870645375904873503308416030590659949893230909088893386143612956324292778743361856642167987273002274014134060456318736943054561854981406808558326961507039092689124704376262270096423442461944344645551514052179710574784833619226684702537448442266886480887057147055257058368295398523741774042343322515166873661090031525754640536037734265391980470442479355245381774796357935059471301140676226429851943932722773698353572035232183892659294239979605880605208239978188354070583661458402373682648669015232118303555390531077260986676329212492463235328035738138518495544568075672850367719965220804884427740838806100097262897346390861638751845445943907412714047119229170254481411910200739790600207781866531924321613094833140266325908943950563381118987928143775178080144391285663410317364293610157979561810355811511248423738733508176522848535226807275052040290834368406782963956619203507333337933231928560405825911698506564237654487804495364129054039765221469108329220773938742661849476345752744373735270520517154446283313435380125124804911850159635082959824824371442342544507932215346579200251350782780532120874153823666092897783987432826121508525704700434505375033749108431436226413061552168128232143614683647759816488135094779236098888626768750958624320459600833174613467118719654395680379199143549775501339789427407899209494018240327825701524927657272530841318055272684295295318286626796102644785843610343192253839512096402312024805103795244014513499895759647418293144212130465575880874820773141811971312575423063182538522088716575796440466461020163006108486812361515842571868613923173917889932363059676310477153649671132351965834805680045150246878059403987991489231276249973151353780072293457832707681277236995363464264319151050405853392439883546446869714850549569039052502320359634392435147085446289353853746051897902599481040580577224269914751767590766572947894430957138950240001670950558205637513488919703513421301149239557979171839552008946531925272206514538475080172117811485632325894728556810883306790875521876334947270859152393414379117018821434083607278338855680284829500235158295428345708134280037088935011227096775960503579383707753470066700280699480061046280476095796348142095362429618206212107430289891763940649478547933040253506555212022256798040358405692843475136211139889066624050287726348426015928489454930705591713473160012868567715423844205589289282797082378859181090813459587105133817104963559792748926517488440788459231740655495807855281996562396017579829166190067791757459594856548476303039745101964704620104579075787239902057239578378582668058612059577362944545110815362093908003720486555265062571049089884510260104190479643687865347133357488062306000076022531173517022846524166517281601078551269444381136212140909429458600947661779428336867660418850631619334397550055091739455943538008954579994573829490749081432180507557906817664616004695501764377018293257018996559253353814620446083690190328820843979440245675724532943432718067241638296979098043661963821628102370843576197429233284852858024874988150736129948902408306752543976548705261288753122228714764915310668559142068744633029681863378036312061988701477868356850074419552098889702217469494596570159808625750274815832229386041408811766533454187081627827179252396863482973943877820833606655079600116474269173103136890317891334472701913976275680552028408445985525867052366357540524617079558566158663351737868111034053013037671840129704606127186102796019115739432765195939449162624324858630913490115464050568810013635838859184377096247987376625888519110207138547421490226761905567901174674530048194387230467410577080766184041894995573349131420371817959459102684782185324775253602149108835350805156910873992792512766207361813390749088167771633340318366667439475900277237963582773960766960032892168528285830915364489277377961096910247314465496828531455258655510281516639201294729222883372650571052270325377354076063019299072278339362026780146987882487052435119734672771450267279255587677095542157461445262188096626018179858257775282235233917527204946648822798104749657790194288279166348634765190569639907941051751145081417602194800394494136859036416386479231976535556876381660324227368920114407518024591727651201625732666309416964515072198919718485601251812087594813320727511912211874963087014775224397855690902983474932104489873148879465639959420915084720212174173332412421239811662170435107640456168137623517396313153975049341721105332357096602595233036308118235261292828297185790423255907265138736559506887976755624428564625618914612234682536755337281121497402611807262150775414413093418505221465063187173070468642365827167795257827352011967517055466505783796306676578046110199427252958073783195420276116970504637752866564687825710078195005374294344791831978992879353297718771840098414333331836022527840165144999019388095745359273551590838245554175826071213793394023087795916573897451082467608514863963819837763705182500576439575737483901404297691895868366875512925186311057715620160755376986265093925474576968490592383265525765858100545287591381575978073381493545568465893115806535317838444087478740142428931663727983836673028688270324448601010712675690451577206500929560089484579695265139224380372267693216599931128306215965271783425765855718111340516598547939943930380785543263555568085502061096287697279758747966990872895939800418073329495618598115152944043791394427265828312665548288483503701783723665781248188966696885107140782990528046640393939300868005350256044282261924941653559918924718211470444262450796745710389698215009777895158324681914958863882935397601958811508690293922241834721920633745692091792593210889580072332017427636332206304885605095272183674989010544480134973376320881225003835782702075365684229133719820227458445905131768366279726812468812229023111826131481336034977352981681282893875867596981769498714640176955500320307428478401093362651065399939676566741204510844592049470589721857461270860617819691089734682570580850547973936139157361704162873361516398322360874582891750950558349593595801636042619279864507738864794590232174801990744138924419802065421756891072497394200281837493152867799253044820172553717933639696766679039230678792271449649961174129450709363378714171435829713452512177136680117804337713015330550636735485235259613508237672312483366085298077811012717662941936328573976754940842895417751913686954715321981584162006732041250153522284477467466466547829497818231510855768367590139585705031141148308533026913571257648728361193600760820526897862684603673865680573720237688236146213058102774586501617507618319285247067084801010155735713949640014056379946517094954546870982933695722308519843280471219904065214066632948855214794516408059849738335383593653104425998834533937746022645948769529911056758278370007924446625240352255944981226171906008269708983048829411473052475181670020519723295175486716542583527718043286138369387481306803933454624244310935015428603372074549891687637669949584213575446429426654454086988452569484483267126195483292601598174070919963696502165888464326771452907999455634903555646914292400361734819854728652409612224343285244425769338116938128614713816726438888975999369463680157788823637118801469016060818334737758704949862962133126125105540467196726349545971283251166745208468630802058788097977156867633954351436473836050783464169997941642952689251032916159459027947566771867297508430623186326955257301230039214367615747482795790911372598768742570020587854269543005947997114028669454631183215249612730893553838409296203267913948387323776276958382770223198949615585256520492152491903570963442507777568920787450457385407163871120753500959828333152839181268045356682620003882559845749117873408473016693082004128322005973686842163662654961428757184129023918594840649408247623149352553376518904715189416982703482921215037019583015080428015391435466934816693452323359705378264601444807236482567352835694372180165132524630814491071734663947423074628561130218473890721471051002499824551391777678778797521952041239987365807240855631536258737380583901465270886644341386316148439337949680472802194029460680179929089680323046600410777977473843992480932805039191516649451796316915485297179170252075891884713890763347205299819487197690265408459970089773268742387422497181416748556583946644934877625135328470346186332031321445001876460993285534900261580189838542385413134041742297189288237170047232063218522250038416094214261818086245004937551730386545822548273410345713969060959646604058966499656134267132404098316913006271972440277393584960081273411221762172593801906454255766756782137386086458401478858860334004172973240386429802418373770919631855520693391951486527609205047237724560222896308940978612333759307231768274535094077115520453200250838934086218110367549621684950832432698572544643581317779566526183032011385641737153440013775249650975061942209504593425142390644931619671623826832209069218305509179261703333507105172126762597200435135911427293172617859962962015635375474733519519951544971759249241913978994835478703024876625886551286124656826285991229110106158030685605370110879742003718752415360545753588754527051204245876411223172142168870804173668286673519899209894150507122047211824510043438329848453142668181473392175543299907218056924928571553501184170593487650749367652626308419965542647245516358139447284914466188908394145107074128757860145707402760854113349157172182340765660752095918581651121288230489037588235357160225956662617087588459678086512406639991207723029326577620004732552463581578293827345602631054666349848863229766286600526950570099618310502864407711229884039780826808576544427729640799673898399566361312799242932525499235830696514302623115334666297552307623401319237964853830276969922014520757508063356096011182011376245891914727462990340099885600416727634517981556014707651197275633775577073719321824541840993429681894693838688285152296212816286699593993674505606318965138319499456855078281770644128378972273982292884636942480931877126728867273138502156017316626200846247274012852821372685661689242465014689217951134187982385874177619594850015652488151643167784600024879065984627820326268418453955663304843276294234576256059001966709444795536172002396012643830425320560625829115793379705322238716345838985217035300017977582570336063399577438266143126538115027438673443030211908118398847247545520678505707861977325480916057933326819279609062830583172937314878390942327761374145541638245589313672985562279916917417362318575773152769210732070168698744040617034830742608445437844203290514525388522815998702687100455901094411078972502148590125334343722145972467361111642845241115815453527732898519428745321482378532470456278258120980064140593969507121976409288360644824885044101652792375101433192235210957994715769010238789294550631573966215277043800198015663911782863129022006175817330189645789132815683966017450021369772801835314593698961307514899981476870418708659275406725051754946304402253709696034150869078013765840883815627740514516698137778205075513727387998047884477900107997097881949799057990246785409730037305597995546943468452088697235025161390465650167394567294297113009285889677270567114495994460029129393771190228441082216042391787891838049707933916795066527450247587749126627222369318024714303194432711880727878163665994255697064787359836072238932605072679700377442113903500734319203197433436117004335266299690138551475164902560502198017724743227697896637992657986738840832088129924096282250774720945845287931003952554778279707904988259830059763130444820034819101831192454721680229472319728877139515083430316879102389970253117702737825765440298837701826331315217106824605850561713688829872683615418030260529668640499335440677961144463248671163967912883418926423247825765996408849738891262176664209102775462882805679597993369804733423105634809653466914510212340816711770741058065329686022175723996233708532065959223128715660869785983208047447697295758061688889219373616484880841352647110067422111259087380653662095553415031255652925263841716387492237231048182126110958877347093281393578645056357207769831390971629777573367391970158978190573612099611367174513157262456862151063801425105040795645723327365632252196581610235600336039640768855778756360103375181822818666137403686154874360636962907417685607861133305598564874876853612157519134678051386334703502695301703967106217903692266110456168572894356181353849881761214869621875716842565900741955653697779814738476227019254459990798769376917850000596451154130758204072141983702185315253181490606629145587716252327573330339059648223695116374158911275703122447843555657073200124467238720378486124275249101749103909733062467082968103587565650050133128726854007629308130190251623068124334551458116081495973061826344044825249315893507321269221893101936597445807286697500914404561613473392587206146904616895348217288209810216996898958103605980357025592904237929909499155037861284146139636747361914882651566351077601065828111881336416706635457288891600626844475009754579995649416532291494951758865957201548982795293210598216636661698685232423477243798590323862195372078161650358273232525341817218939058979756474628652867011737746923599950085699182428549853912864096722392989580590086181190385431031563958782430158391463870183547094324577860819126558643126617817453231255016335454558456332909731095460503211323252534027879223180965137455048898714758709041539241809616048665254858274043414904170812487759046396177084339083144625089946560045667639850186059827378343196552107360714445437119971456318056728199972702782709534611847239166294945355483396046825560723471698441891297231049596095669399939355781481186484102469199797306551423975980634744096826940679023997320981529270359937452562873188958625011085658957117517154218578930407326279312976908745441790315632849256769413232117045640745984860941164738049366416419624345967888778379101690342090845311869725693471451969528765171166626786481236314872210420639760606324772123456872762200207030178444605115898173286724955607275150023331985779367768777276565281604128454792142836576374817180459348450350550060527379301689309560701341352639056491722425341868097221937059468900407576028906844234743060544745805258861810413737526378027496468330048894409314965147825652233807425262436557826867570669276666214515897918595860061576101453733292651645885011319358961106221025992273188228803651001962411052227952025070791302494332380078133941621403621133925346339843864650301630552067711494289972271891664566013840661280153308708108425678310891864167082726357408374823669336180952357018612171719940034371908829241770140963675761489133937524197250362023556382525078226133313344756552531990446088576031171557721967711787331807933626878469288751579545699015795240696255626085545610511112634306364223661724231981268546870094182963971187736846289364255617520754104984421775019181100627194413747569756849271736821423202590315659846530228709559835549927744676914392716009694451588173044217476603657833531924980002015739757537785549891841776142369219165298462537122214868724759173037716122042100690677541393602885213266744721827108846716889830374244923787472936160529274373454029083681426886603627999134183697780279146750363822162487417556590116285389085170365199121969639197957203926884811191353405027358940878982161952648429374471484755776651435868959878684992708891697059774787008540430370707427191094659027714690652918248177989126461633081568840047930798257398720230220967714226750846926884404809388506610557037252429691560500195953187466884223990347774599776174428234574687523376452033154435542076390120693645420599385061405814637852250770504324676943583360332369517596196414833386603811166937366191734445740925478548869068124109362484523631065947089676528524825170135680772714199860711862223122893262988746541727443421837439998825282992804726927669389681737209568623134378816129217690246930213778099589012941380541078122334029909853361731353378685277009650953090006092149264777037235025095912876107371103051663751722526741379672614887165175672220413360356243949175587353435909709004479854023185254560363587734111308354115283345020729358839661856326483411194845026872561017784960125948627753032756209281068435811424010131425871536781689949883255566930995047328465163294440102360389405811852879788541126683504680411752589509003963659905803364321751402131976347026677081203304104401354315089225756619968832606519455687966353106617059690278184258247988024163513539996458436490332370695253940906723241202645085205960735834074723926006978583571951102574226741662604713805217225118109898339349221008359566231232152209648818918052957847977612478802476939019507337675236831716548261885668963731322487925369500830177627085065346144069202478358668114673334875827549510002757922656330541652786208511808149208428333549807270876790277703008096012313675205688292036943985338938439485333408358538278081282555759411320094602568697045794264850890750210413862978369296676679865423896549146697015185796671360872734917627940033335853414359342364591412470634359443621795519726681727617230664806815164154319555986511215092102259650236662643148185868714134366985103244705112822370559499948621493525571274256893458525408768276680563558007547308801770125152247703020341124951953595723081210393999297781544900600875820438852275399421175018237944563174200588085098117773809547634740010592869555591174936866303847870961478151972233184123250652827440948321742210119243860552586859025335201155773518758633837033580805296743292307444641676178457338689353945382013161426701663951745035910189083782915470393213870318282377109419821687544824048700442612314355465317476173303658024545247202588628867713913655215195193224095504093181152781079517067748452321174371449965224685900248686775624429255411653417806390620197066294627183252198735491035196212077464769207474965504198462968471253967852368613747298644688029422782460250056866372617850556080030824470104669762239271999629667871938043081843524915811580364670770237627207902478505365180324306896831404205740271776876661991577190137283624522087473684425538028627452551825781901790403766967790890801207423409541426063646105479395097106122229379134422604733509443442519093942152331319946758939470417243332092581920588269087028588038603686559643893430315266167308140643643218418205952737712726264532555470969024078425756619221692330098738696132473570745092102358396469302628744265131312763562533250011097218187743547885575270292452133833492461671904319871883304879978720433947379819720669498671980814413818815814141641687913528233236401620944583115842892181510256441276700661101496311869091956989609538552227224240439858637394933507295898201545455895558750418615627223479215725297535538911718611654477975575018261694067189043335821946365388279605985051963936571873020050074287843316806555970034085661550300564423170798765644058032366246165762590591358136660289319454003159170752491416570833922119576014119345081711503094673221225970853707578229373503844315197915346099419225450992825050819546692086903107330369170903968399941591049056090650409466758354549799791194686622600061163726101803413742822914479632005430862865629235748636876172268446267090367821363234210246183611863852257776427390825332219332455595331490123877835695491084851930343168120619322366939165761509259679440814732909011602224919178016884504483736044389592255261117227739226928890916060339997889363518762496613313035794518938122216781955130868660335108143528168575531153096431409586649644413907051023180434872870873805374548305852810257019549647550875734364103065765799785352085144521985463574841595393732357178813990167604978417848673277432103941142920120070271391775199634226653937435598042250289648730557540193727951764908441254530752982372602388942977427539646408036552597230632532586763122119026577223609345093949316288697670469865135798904399682340102736193947449493663726127532141761303715591672708670282977877661797028420789813775623212879702273129470840595511871660894902795425298105223521132066954839290783483776478928973366269879566530532193243197106329925434202116217620890705327541788884972374998457825436835657936115497271458744636836753652481594162246236492956858267255265192277171376988832312784051877091934704880682812836037989624080918295271377632476057807709487642274838319660565254056407583238349958080132126567265704234245430497680379855967952462408850203584015186684418002184352806725017580910987435724174375203842095109824937168230227472670659228551579449307556992508556764334743263045812661274916823304181585408774720609725916070136027853697942002817089159515292757321799520725540977751592289565238232048578436296740475847738577647175339858092317055186138156030431539596895761247593942188265979790052558836217983130409709608544931529215711181939544111709355872263957540057652744427397557225462601404477380082373771960987052672766729314441734610275634557396551081942264730800981322540110098023546762488132302619330461865640243455535967793958980590145024488705394027390891084720635779748515447191788520869263114084374878312884096336966118877617536928020179723919547631734493488442395086820363803800448741602414018262461800214862970571255752048563989604894361710635276675512613620495726202378328337322577241635328922660605003887505468899855475223535083365607709991240477350394367004055172025553412756572860395178870737583299806122089181525238860902208838939164905018803837000119496069442928821889046706957788281278239436123518482685660887083422625029944205156963511888954289171700067783766540174195890834421181482432367296368876530519671671538925863778578638998989250967314370448764322105106965919424196977936800723956784391828860210669920435121040306504396423808157414300876165337078708385453597138221021835208965170417752199990061503919187193362910590099045480318011228734339487640382190951120062210115983616598501016099811321041021215003248138245503390121641179981584246811686225765461243377669704605187283772531537083253620921672576211903941924148901801754854989687984913223499378638832225774541642024879948890306786711296042962191602793072372748375115904160608175587330475186671952847829763350713251287769685907618549818216869725270974126784220033080015921138176852803219727466940488826169858737201583953320371327555074882895960505523810565137715312058530690257106102704037343050318815448345348978669013269583970470530144794845688069822444384035005844323252490783473616069651073602186818575137543792139234755133125552363542259997673839514439256136383823667296331365536496186619781027764894751355598605801696616646276966758640312183887239263553294038572892601328281688721180076592598543358685921819466817528493801407911443415346896793198431957149264948601505607343081122286811527732450120199684843667766568378496216564113936330727833757313175988218137557554087417330658728230960028345906394544338586433207650539229028378914560808670361547190040891844035707585358134657407307670204369266352729261491572626918669328151763636709811531177775319635935030944213939634805601428292564219261755985098233232264628432522738935639653118328276007185787706093459573146329257079156403799856726150225689599143026633492899178169072943210702564552932470802860652595248005201051099703760605271726549807986594938953245553034288517004970946417972770410346732470775348497136316997216969063276899831889739712040528960599621180694676412585148854723618409749530317354263826057389021457931975833592219778170067248094100969532109458096999747881819228038916448602630170992092430366931310059859647742058061887387982646224095934892820257192265702502392510267865161484434882625941031155228548993251435003222134458826381121407952631838151872843681031671495361151582790180565538992482666793342058003409191684265521573138017256627973340422263634084773495575113222116658951550018925997373717133027151930872575154534006768828516560138300116304195410104013254000920827026369312679560708719352330671143907516803797805025803893527029851971280309532244405206021362742413796333414112295313064839329752079270073690802680717213829367010362058496329197514374053980214713562620647258751205650641606044121337857039709396141765312152706243035394781057242749587498185990363126360758365899464387868892795656843404061273999233674417323513276758972093697853326334320240282381602547387945876897503543468107108223541168305754847074901307528127232630217771697401291951528402617720757461335312014517920030342362221695570058375757040254393680281436091706578793075944397441721901982060282151256596280440108509942465981150652529834653660011205221382837106397261253221794605886353235888713385148057803486662512919096972674784402540626064935801943023244184003289177755044065434685139505992556705049087247696799295517339063012699517726239194088167040815325886613906145371755266010326659517377935328811264986944803168839832390384824785139678399993362879063791266730557825847696288286943401295980504205069844583056563527817228407933230062359430790332470829144438294878095432992616987088342542743243536187482137001608939910256596707616774639172790924725623017443214544340600189241874930278839899265599347851946098939061975815727999287863191260492157692619466391152525333070051204134204356579243629521072891317847905002723514863146365405365862854961873531433627849705303029800807731253946101544778819034115894485540769002153790089199404784152758061629860461618788240592144629188469757655923908038102486430371058934969898325280755221293768953655745955366838376389531407730167142191694021218347917225200005864956038306436156388983521562552194972348236498227227840450088329833549597831021829743395441701252609625435638099162486981814727062765961964721413571534529487942175774066294123656962294349456076032304967550733572357992469411260579037725996597035292648351544704872192588547137225789698129901377751022547839193097018881775679974155909864111174705710080022981530646179020106993548339781080097318987941586432399215100898172414173775030245516626247288553686754961813420219801747692536474719398921732788538126212812055146652705648762327217215608839861897828152325751903462432482397180666912185955785386623555134199031276398883905124426725950049785116608810197779325265995753284715493817316992021836050114679599952675108449518960666624180059918697856698207659760663942481561650108185835424837362875379466824962506986656395251612934939202726159057261138037967947069573345881062211046300381660747144672469300445614587684269054037690848313300810923791943347360188620651790082885709840635822196791858964991376080534510479044202049122227364177823682186941357508772657158727459543632063735819064421640225810899578900548109043760218866099677384999526749837361035655502590031596431277404006949645374422529099955026796372883434793804670166264738870395958675938091627446467666233969533265810780146381385157556405337313489911873208479143212254649147908761209752031015515584103758855595294678026581486975133313545848678324486537721321623844981972061481841892911835693472789371105385769702804412353357297722114695062876519936677520206719901325947719098969954549199087447048011922176556532221379063680524488912510188173125929859459224269430945274924501053097836031139389777628875113903699688222589588633935086310290946783950140696625912979511560809294141520764173342393768395520760541867526155182246406962296964201510121639814515569909398622314029323065578014557672458006451611282979228668599119447318996628870816403502742631131284771392861292179617382639490150226901964544321525917362215976987291308316833407461439423034599919404664259081331381052847899902777236353610345542617939808276287710935271212403316832828676792187842793689622998618091068808109714877726763791527362786440076328358004869347228544817030204307832852181795173369407283081449651639065557257523454564804778280505309011182483916047943951422379835871493184784124979349387559300432499137025794992743428994283567261980740509181195733694182271998568408254882012377720585952625036533236378307881210266541621971848869031354361547813069919509435300846878148823915964125560132946625268009250513073920098646056363453794295464459567251831345776406472675131457103840081253757855633266831996558834675059237785649254175314031194731291492685043575508057820195104167731243798216818196094373117266114094557776992868646932076627360335518851518123482105170620409835732158125232159481737613425602937099638990146440830351353341324200171743283167549500659474465468196144627889679752052559818693457263646412800167509159541908135352728051108378603443216809978624457000957341351350571305404360917606938568830209192831085785119641786824602595756402494178841642926945526791538461284814897721482770517671758789666510033055477811323668642304808880653439023879243126378822319680765960658761390330981868912871090843217283095660584122531518412109571450319838712325987678490125858188403820313537277129346495135936848162697011180356603535454873422829777145164365160402391736116980844516001217830686105604818751174656175929928193896611413343911418949520748771094299231855455576690525502861833288698701895249119542393304047721628585453730609400652901774337284888349503483293664677539643413052282524960195553534613669016896197449013922740183086005614947423793829461510243741268518694401146941516935119413220550773764183197280219586510677480766117889976882367661451390485414207209088078314987061679078193480630162741558655382106889943012081246170923457522900831626801027248515438518175291601579573766618403463364983108876687688738451310694469487618148527253296582303913147814957174220375897091305619971162032101644850411012371300884647534611114103095033613081976059804587015421193800621365322041153412858093707721286143613039918764484986556117525541261698228132045434475585744752038135952316935387700355183977881673162223363140909508714050850759182486537718196698482959794921943467207831274300685465372037777825640665758939060189904192205265185282038012584454690923432475313479867604131125781050396642594491051200563142820931438095718874515599999318782420971274890750565674764583083262463607417376157263542167242187345456136885862024403916838452914707443219042164347408994766847116605854048658071336827927606106888780958630718886512891705447213880465708901523690142497911728222580752405844733737560714951860336174197917390173733775089960775951328481445776078020078115566205649821283808569572818562491345158481206774651688263389175539145234663531045944714217019583904495090800194512213602080028109182798369407308676865104290898166598002280377515899969087351662620790679869585012944966099586637778730651746268004825983630904442624065345327274298524044186088502078802324743813173895449360209652034031616259324425755329669325443748099247794164213554826371135127179790498854514967074767874122767851244395737276559453620590083980590437612191250940724992509390200493483890766223158697297518983371356554749524812136552859351533035162980423132132184560323887070560973372675156944269110282266233790404522768056704158723109890864790872519470855925602728093516461269700691963601452195956800778251029739819904617446231141151634600166106351004067058989384638428069806165067029444081957933081967231561891353597879906530007502572213631687868956629020702960457070498580709584238880077834478054655774615627726386619257094968802632513816681352191591138687829701412371208498598960943368649893383420968961518590527223218658206199557639954297775876362453609985965492820158097893841838359181762239576348243747642385747739239821664508336413457670873726113090651781682101825701198735721341796177978272264077810516018286745026490029764987648863881582882934872464920559092337306602379773317448482443651288980620141903344204139266533242052842433272332661570108443448340733993290568644665664282180253288087634623076272728355417441375537647933852586399710381505072134182752423050808009309899222458065465410776802224014861642999132711782359809504947925438302513521986530893232460925778081851312544654058410078190269739981100354578126241718914860914275071080300319683228817739184232038474656556389302510334207082608368653699534504294049412715496686697286931083171869361245995932398440833336724758422720586543176281232788602613402381513001590914652355660081467707766423310955365566218992853605067012651611691626852787667159340244287751655758564638908404285436593816233290585963394617908647426187717330701178534786158242940794231387767907558568178693559770122560019774839136557846319244156479813122920858584872434850292380701135789024291367698249988039032827730080724259851013078950632464428644823768723001752042232164461793781619838996612575346968781870679418237705312755707173751813449008087432634619698888221412587988021679316219335146726860104531475842705998712506076998597512385956299222473839896916322666683688931925682312068982290441235155017768278432861451502477055080031392713462664982844549075978591754170943604700966503475960959328625578163424833810047713405821972048977039394790392540467775100834490935387362604986107402417491542460972162946321913111699039237145347129244657525214594073954802185592916502060080824427404453101850115856485894795532697814560539167974066892621205802122680754696372710015760746743647632071396297043389955940234324602152956388295065274093974240430113249408052847184602388686396954516700137961612234025036774475970291157387995841726311994941343862102346549921435977073199366635522004146906864346583969061515218648565012085747495791260453798499977944600427001067952428470997608207155047497738669159974297328334525172343928913022053210636127394242819018758752976579821688666351092475213885854165899245203237244629019001867044971980436375759026538717155801510323527387452488944025050446727718679931022139804050412847057732319953703577271539728443870163444043212455117860827670137534629847078981589730677363880278639155570903246872137088834645052417512375786703631114378717435795962572431086468730778326605472406050226033307500419594202379924870594016998943111371616803948098085491051968438254234777921085860705492024318066609293266405103843453076965116306065080048432366288352346336697901554479795775230550884561774203602649794166743187164772418531845413198824184716294418287516083236906960414825099376073837288123296765452484018055186328406830302035297482521786186741917700430359028282003563480791120355363657397087192003413556344963081826545222646789418871071645397148762448818484004527972383248006788213832278811333463934097156852244383039702701774512956571600571331097305705401642068622342660639897483824321386968631377497726959620250026094876986207718090614365275612134556953131331732253483044633529757316340884830967827281699581476214791877952484813490213780034036523913300562476456383733218750191107476090679966711222056598825610644427107987764443072872859387293465968905868872835440097781821514765903980086512158821101699817078233139619616823138525783557301235327899347683129645441689646679113850621012279954603510948435904813295873065179544151743860096389303222512482742583966467974925508852991907940172476024706772113723381730070075578717605968618926025180953345517894203811421278805653879274315249776463664919196614930944453611630404858029453775831859478766617081984407491655936703022183341991304096095537856064116085067271031455750879851083233211046966301840204278763634926753724236173229581500663845547238799519714125045390441904660256481107943484308470537524011483810982440948526402915275785314306782292528850356835792875856929307865438443109425445383482117114178821518294005364300809119623426842186068393385667021894079847726483599451296261392721293452044272614225564577746638595696995554109453714354251666081607248877812935967561737354050710305197317745343679953952232401779164542976842908931862800200524963380863656435155777578665991272468924408417061644234119847171326231311012353387082017862040072070039411997357438184551846795308572049696369913016851239693085340895139549368140628208914429919538199726767268532726792993032172464370918006774046669534702921429896149548653726465465189466683565423725844141191634373927541606171895017018873340223132054807877184203931215673306641325882258186537070801104109027182094423539610928925059487767986605109514630233578019792663435020219099004308473787785038137730522381495335774960466356252819877465256703395496279142405678594450646986714457385322695742195557906862183880428991228740027090542584231404011845236441516633992036202685966861228412164689829533282000953729343657987796339186852965922795151784693709680574459229428448375886193977850755807104455665796719896112925505572671147393741763030129366519687763233102058901203808314741488043714695509784304712617751860471936635142853451238863215080860331069249147187528976280198190596900236745260399895961896668511547074138438354874307531093699519267877570894047716191339608582894831523142405091656734461711179955843720804230182717383908137063529749735338515106323884115390670562737794861841924207460015707450695975299119240412936829122826895083893394170307402016713948383557465899194465705604159287507608646209119349122532550103211867433898502627382793949303907848725554435427368587956166345836803060554476511893074656285977866676140161344323822726777479762444178555997174193676930657892073399119732027623427805312228807597261279070183488340424384986105200706935154985289942595667711117730663354251199083411110008703629505419086196418977069439374905103271906229525801100903611730280324963768968614454796254522666554967174212521468125774206009633789078541462577489764066826480802989806996727060738067385844697406018555715781885432640131023319946975985648854694643923988002893850053241436230380548742363372202184390903741832020088408249730006838931274686140018856418076473171024731765270434472912717335665183103588068315836267782966920125557406994018297483836506936235918125921586911441284753080417264161440522173341528212411910677746618271285865499530176885509534321457138316410700884289128000074331555226309877710709528935070645066729777473393438220401143151769902045651259427037714625706600925403992791765632418633973633084127119880662196604700556669278094559934307129888240716877680888901346819505752908459817895118290028711745353387406206772171014919655611333477079428482495204554055318333703911361627321357409572262318311163147032807349511648911872524217380041765391616594926106151889729491538642866956837611382711575513392338014618972118347581803807000991530871398819106594716141673621031393361040185050979793226886080898993514142514335610402718291253262528680960014359569661187040648830797686478232848377293526132289126502484422832503905656811707600192192898016830101278077512740839656661296110200710585811374917663193587764726078645190027687536639836568249711154840641127132441744705267408235729776834298252673255923271826822215021231040906113540764090192702560979139929912325498206596533482828552418724797141121807660718437087104741981726208264823824534995451339202444622637459153609154705771724452507652149668117371851984888700837151229856681839412502181870563346574409097785441996418417571042280554618913221251232494113833780217729706327549172894708695915893149041607469749884727434020127488535011688599568975100166169253531455596349388354380052330040965116212889390391531168008645163514000337178109587992865522489819519470433326454375075146965621549855841976693081379494191115171794129061452484237015663653406171459629181661364116319943536594848327026843360348178141518639515015389743783672105969787492567603397363648828049681430591647305207416057687937358638306511788885214876188601928870814268706336022174270723043431009078211984310424864104575625357385868463392247212486451143300725847977822153181380497648773182834081209758852253317256280166490144388397759749888565336608067079960607653915222983333718910749336148528439785066341350185910769223249773947883516830200867627088215756616415910875896837861545278237708482102525791220262960246198023812373237113552710620661319847702359732840089311406174803306513833273285469200743871050168214512552127017735912547795812900138220198097399881929827023671716470800088817362732943322454883347130345628888462857993381859761106691096412302038413169123735673831837880560700337033949216352043009012953077854428526782733920510048993739126593484331094894019869258414878728717135177167043905858657628174269243393466942481871137090830393987068339579959968279734000327164613347215225652169305845983214188267114336812515401902318641956681016635115378372981472170220833687154694448661717974088498359108571290402368704509771373213365055233374197114201863554749636937925252131131908592465633686913890512218698907447149203875632536681728535913194240589036852064061778666006732946470017653224541716204681470542701869980085376290815793505435492546450660381629554108174398160567696792737094519890831815063984775800452545268769114333434865982576246461542872888122824405499984901351037139064179275735913716107363167653535841444259203899063674233810968026526221227981807219520777610932019396886394885840582816215450054719143716525378051832249153543972298522620241858647880697393992301117759964357439562138719872245086554969566669774305586846659524523959195804440708391296724629404464874676906363866760286358126749971560864702635553959700719662573732427869396843379707725373979903630389011348152629347163848572036664154481185385307598024817117083521878075522691041909872449163118106084462709823041649697851964412258944601772238695140382161784261604900738596991239626386506657900607873047325590409976235168453894414261086538773491609927806760364929199361323793789470381250930174339544867847249587269535010893590134332925573161716063600444628888928142901492527431060290407418728531346035057017354217100999690991699178912093437830568562616850305281138825541874316003864329495408452311031912587452482815789746684330777534806621675152468437000895312683034310886535815159325062264363890222215389818774124683546872662571105684956066978235666743951290537444683214704814781251167825330085837525893537002432694654154969250085602629200097065257834765566168665018576091252029041630760153081532932202366996632168447833180501202067312790992885105947052044818338962419387141832222247675571319863722036043299788991964690677805302081136124180474178441612905380362094400541115555782635890394545728097270019951341199922414785423069707463338368141568106028512955803212209464593434427211895626910040208618301409152728258462771956113570061748607945353967731359160704141860328740808747809138500949598674220313199185887367896030439013209064642653566951732934229522107405000507288294952649378171881539399851893515736904952306423273800947730455220640113825014943084067185355578650029208723554039389644602315568182587196602896937486859298199844306751470062416092725785932430366132074885975912464478112573754209900701872624154226084061346775016293874914343163596652754331548100108282369085345403663564561708883378791067750475301475489617008032000931844459984470016720943950831416159336627253603218586016736344471735774873718701488115825600527620120979215706623450044331980772113149838301924357260633936657386332549948890016292877505263571679614633843873388733789175521881342898601700575934345241601356254246342889820311516125000638679869626081265122700072265336463514777681401507590951298079626061262337350912717136425167449923750782780754255520671677511980190827194283450086756929811241621080568225816727432420520029836075118030042758870341283736405188729440151880429575645580754916097180892558854335784276264420063042815196269414509209075853464954828991090884945554582451184725899838892318295261436243685140243823756927190079605913085942235042998427012561559151373430175734673406372650707467100581393176847032168535400094520850053753732851172330924552591085439175954557685441578347318042547109698852342512951020808771814793460405623162879644826138566309722650957151421854147353618160868606101980424345304304830730237443402007129855038678448451930312293297398017119486083940975190268667277125183063135018883817457503441165067850061175540318160240967199603521710292162313233510802595989566707450094504086203556449301721729762840683923858613871477379324779162060921597958123115705507574858992358326300749160546178883477796462274301927149701436390993883847647912923869325744001304747089358319678359918185350314876057260154138639075258483768062362062484981997627170073084001353418812564524736764550533301210944029207654234690401226655169550136624363511327983131374431155582685798000744784686644434249317653633058889134949488774070205096539764955594742583882655087790453064034307552832249141337792430195769486283724051445192141835361750189982614163772958690239943249256228282550658798877126585586482789535568985184065631000790445481450233095219180896240360165922417384442199616552638017575949386321481020472545717573420055206688708250554005069192208829780714846559111134493741935547332943836307292576232729866431387472692025417070386382708083662769583472591069775307144408100393889402862487774638542500905109159404685537501401495457417565229221768852712221328643309472750870043467828678179089642888788914528066065724894935120625815356506468098880888319810633765214375712640369587212743870684404673791828002451597235051538857852609977925795888620826094892235197289662543709988981503006361915424945497176093304139541996389162382816758220869090291203931021970834382630220547330639752240683514466542229089194160656280858279683194385895389028229892222324584142785058429180608007099723145184894358310295615984488256421178031606860753618076679678867765166928893415810332521277651406806535629059929720515567378662767049071336299539600322242541855440747676173448360146082847045377537935990973691846735171789015581907064926743079846306598465759818793428150722646934066095553985632593127277869393871713777768061991774338872811108645708254237707730886994197451955908660657462753521513972099904621313532331349967742712185884610442558817618107012875020645532834746217491857040039930387100550738195942339664141311570920684177476237936761117089987704854653343167738631437307341341098619295741484612835774776929064722839151737220325038070134332875614712871612663197862785576489313517245413110301031980022583096108561444226461933326095687809766509214580298882978368818207739987968296101058639810004834797405267893516775323193061768722790835405043145886817519401623982678674911148003008126776306227776436975635243261007320270591999524138792573044029238969067101129934346493167747973565019892078942291521537585082028489643956951871353424295812508542071060399366723917675087903807994068126578928676473173225094007759239178538233448893999629812408631593680298334543699428330463349162360986425481525083472093231872626718383002469468451661220128993718931899384259849215649443828603442050147837491857404262265040345789591528509931370693089638424081030381017661277675963401897055511792472782791920745804068053993672873764457091851579880766986415518014009135067206056781813090470230487885232715860795699169806516587896040462726879875659104190073425343146123093689934881453040804617110966344565316936723406064443392195623590416899819909951069790434799552453420152996421935785674024721847548811712703228446697059202295737352443260355901091243408754020098935229863514622924290326677893626182752777309892968900916390126485163597464313121703720043465628630997176280436772645077282691271326060454405072859816596122563017500964647481864340115437380902570953347002496655761426914719275548528335027869120001914032738998784306259538255285294462290471725716105618956087965171739500437628431954476586946568292865032518388239603201531133339325961641024793046937963596257034215062115944831087183643106118272969155821011470010534317048756090875667853619251626585259732592446269718462980066443751106349582242151270343248324877181983028280651317241701959462936158424482059929629954483370730433482522390698808960539488834485443083628895007790751578485427497495098023444442703140051871819247946109125907222250720887149832702840223211498056192973506948586987314082617514227556448686825935145267860688927512787697061457074182122613061457738856333136926151173691633163990152823367426520122956349165644959911165892188914604662343276246864993161233154219384281636653409420247412708570866702168947224622324975956498482339984062796762433900529585072628842401613463283231280664523046763156400642662104510246381794866824192521309076896671077169412621709076696297831064339141149833222545349247969514935131006650264574366241621500503237642113428259783978077663624079485513543827787306154966104696100859069300069717109490241633783473500395633076728658747451878367528053673780366992413553416778893431582453592467474596852559166096865591099430105230742543610915361374162865699510547184306630540438731763826253156516394577439037260770606078803711549367036737408331261817407333252042885937455388511469171546197254077560230265622177436974882289630710954849475898090387449074869341477185857644108481790466066507875919189695832982953657778569321320619889324039602173808913225530566200027586262502808319071628086167725576801782568956474779676165722350574300235063607323970461629240239503434575192238040590959429874660822104731831269631346677761365657486810629982806003661855099937560884235559543506445896163086293838845192083648635218477334002991937792838910282193084397523929739449916248739264134966028083496071919321420921619162532290424650283355495416447313892461099938893183770295817288364989068256640940105870638964834499937743473106021365328742912651501918735938536535339989062801814466422381362446678617543725785158919195459548440963719380911819039007483321923734472104370071050078666336578339676345268217132271377765763957352504924171966105122051042580298193749504207662701523884262165713179448881408999618412447471029465420047406302250040113088491788676076398416697784629105624267233937439676174728804016899734566095016723654115841285818803656243416231699029692399168434164695321581391350674157200620361371225022225015090372434141003151413103435482085577963305321873135371322370413245509248438086198391640065754910911255052520070926198676282568384641034304904832292968986835607834334980129289066551572774600942541835057055103565418456723052037033727249652120191728892003655393893632363932232140876965825525761882637804393184662276009781351452545345696557244014615911115182209794225574515416631819787751691386497377679978019643076971432173427503093929287678282680341292741508132181595495179441310036192194847918031932968516807779501198385128156110987832524532966831267506097227426734256059356801521876038367173475024453115494286290125618606488085269372549620168611603318947687526147071802288893130116530701113047463548708038108180000631676037507493948334072139578174763137898944930719455172601846882891469388048855776065574541622822646884932665247490540678832833489489803361116416814169819159339198895639076922550933906547394264179216900480293773742591261811348072840071938600300541409617501255742315051693067174219027511566594197373713220531988012070094408866736959929910456494600697095808038719984252274513960960355080532001422035904956040940603172552175475190086621961785607544299058245655829055920311620736587863178054640652674993128012248019997432804085870729342634086629025522336526245525167234768836653012538182356899160068864111292899404222001645732170304850322565919743959722700241277110384694923664607597929413676071143605760908260580885492060828657928191821524055320089311452414764268226242909797110489513872193624488241119124487821735745861683163777276848860303657019013884153212046231398229540946304079482824587710118837047160476767854898673753497689579523943701422697074825550495706873582867535670405963915632186899899599952418863590872975359216552407433881298557920245485811625273936350500761885284886094190545032408700484264219077387401519969274935965033463740303446486505872737269090880798880487797960036126825303370970278098356196862039471987120188187238440354801808824153220905810663155764904627196700095429871165576757692521233702192259777627210460401874231472388121716392425593864037265887022780727393020206795742123585064381545013639462559543633974396007278210077657439223432748204424352028496274460701466370944508544145005333235623117241486243498127500579591714860703327494234150738986006323895655763638655281805602613658497433774958284415068791055860847627301711513810313092829545836085897892305590432232528211854976458891459014127418448751471873953091926594287131093758726407385519128307859064881208436834422594043387475093570236765622940657228923861632605400269563716474962701809440788218511538488317465964944012368411871212923275526308386928882754471372524853326255322642364019881579056629916715811501526511818981488596922256624998264500776975834648178070763431976049304940622342397877020568765724439117339146156131896099748738239712335037779198858829547913693869291583924277250610565023587012816950078025010390022595834086235133687794046339466179985780805778368630220758571149523783759917475447650163984256522426396467764024028234280126838086785340194099429950979202507033752598730646717435788233488712537318586695124081894444539953635476683615439548749032758735823706096074851353322700908728406177828091123216746757331911304594010056328404413345596600659404765564698100059984359017397031988794211998704622297659300123117702477999167441859649229198419636595085520092428100307802575145475775971875462317508126797981291063642808275752862057294649626941538990488042434188260037268396683829403247395920519632574735660044247349913190491910948683865791764278147981653825371614877159519361809571724970843612783821337481209295455931038868322162050336572630863483137444124793673256436509821423534141494994430942509656013910618720743527459558418323814344089589888172430477365265401216228824755103257781995887981403375975204602074349863068041216735233568894193012822961652676701291803440192487293244604696744851917127831408618927290676720184673266777152133186679827127375024746942993260417317524704415277082914488655790615763324270220588851754672467871059020767339447300249280869745142615163916961148649568485583179078996596328698359837082587981625501321209225514939487529856467486075381362738787897761463489104774159221179306384878958995472799206379105450029543412209560954226408127165912314201976007892029033539271208972543452919917949940501905471581910608690763829211312622948598436774500816724513831969310248389671097421372650591686365468111423482762493456628254854064614257405304711375513707496465422130574937976294890443299136316508974865730759809454029099968431460612269867568766267406344638385173067392221666526195043498745141006326927271179891458426520159619753943425101758504801868621748051780968294851918686260499321483650059624341091554247123100878445757813083898938726137443363643331348342849032017531285686177154188068777021550970891227072088703881537810591302111641148054563729174178508677529058884717099972077918431554831769133521322243063659451911526309870223316187770191773706485897064742655167039717449402619027245259283999919446852395461125132677974508041542937226483941690746223612320659363711983870926225403862770934896524363960163660052757304736235035087568519250930781717650773554337775143767183826893278524437186912084563736406473240131532080741795032125501112106275165025418136389610647638362885996496393745964223288898558823676922386235619293809339409195505164815284709490041739894447293558288407354042106852326545911866991347326322353247547889925356148327563796056298031797610901659199243873053172419553066056986522537803966930508801637354432191010109915331452802758510298108686358136013401731715802004755338268435915279861803467648566220376244706108571814083504225750657658800642806516156216710607303513677721388183398497188808813220750059676148198637436151222057694942977855703038689479057257306886095846065424909207329465835853128381098810626765189026573699642478463484157383693525673285240010690836050267945945609141210505682608306812517779245067096190198600432635145574676801053974150612687853085759457947654671056552639353117580111526211214952211014147119051758260702540778235790730824947064268814632721347597818970662515010201455356523276542115854384063376761139622023984765254698790067517227165774923277941043497900685120291249593353882268520275225397492790896609583046273835238330551373876416676138513838653053444342418254396759904502461820107377308437402122984539438420586363179482691348840580150233760425022527516957518687655657265419501811643411819015014189284871698636759964123776112911260665063895596183169697627803667786196685335015836812777971448001588543681055241224942677427495229963860276692176885108335513279375205782482820893698329070788564295402014715896643327460670498916622807864947237603307056088667481640837314607704018739088674479705293796498232940106727405984199831454915754516160191824643670983707357009358886412096317199445608583157125928683960877987311379556629293904747764657076351444086871118938250616111774398515239132116264852945798159066714990052500106576984041325746508653297136444076577237501695003891058970640985212493631181925681169424602542556706260369023332992879748196127680415786524610033372748905007405584706361102888447531498840396320019061207797678118241350695725784719828204716343482371206547460313018205193777340274096432874561504926616818530839369423566330651964896072769730025295952238369590978148831226649591594263362622555778161064936362019809276129700632625202331285551726665664077909448452585323121446606888038797886994617020545502131691517648680486283651174864832701848382414350375053263435103638564603861345278278560216563674604036149015834546339587581275647557636487595899825839316190971550908858787251970734760389445635093790552606728844566106266090267977561469265517424679096305701248641446918661487370166922082294296260661410849007481409427873806081166336689751743404112801280433304078146188080439383112025214496503578995874250024221039341470285694145083986600494591494272116695492688921150837454421515076284634005376567961112665562296157121565165815782820423203508224375731679985287358482666091847270626915146785508559996925527490770215161617362874308012146338436427845085116690409746700856785016663439995458902678198251791492377039144562884051547717861432781113384930329921671542283906842855700012282872364513410946651203411666844287111274909415511827795906518009715623686617764407453534706887621574744078096295250233638259322383724583920711301564819387125087696491392547083038910759806859131161708727603866482333514046707150743199083591046555175821838777451429466913721385941009046757675536783405834497289360300405452219728450836092882188485740699063711983700908876875172282668951453547892743835825961374609427147159651016585454428482211800048725159428258426986425134062374124138470207584066512491225199795814538035233596606333754474399549058763629477268344364294765197223413630371719458344489207320972435906442296002203097653329124582239208276931558481953954280431221276282070499384372923286897548654202138567374189237958929569630422947960783190902339176989882271034756688207579639469113329098748193735077697194643977557710347600407665966386560204173181463145997940892808825814939851539860185178656334483375391952459831749366577288406604148641198770726305877344626338509876482894781923617406927907266270642328949786027450006103382333236739870988618155436822488804129135776457734721116566372539185500949267304507856336045011893972862125236954466901817437859364733684355577115563777210711753115216162436743603277231497606097569930305817593040701599310966663051343840307406350830755516360238252952516224497831430605000230198581068583466381759727699829470262018231558053822142417474755065030551370612517898333511243945657166946598299353489306142282663321515640835184912606477381101555275802044021110126935819859903906423789083040442069114883036742724143288861106569983043408369101383561017596165419461742210431841690879992887366669354979045706026449047323031529928286574517334985938888416460545334038951359414000698431402133309809378101309621663926848121844173802047476656012011592082061861664488923893289157409061168336786857718567137178801030947180506763770963613135976725522274777727081560631898798846387263826673551721656494112532388173951370406396565105776533966747221775632923352489302269203591126143067431694514485636542089805220854585814819474431869412262760211501047841615446519327156150964698049602748549309905327254738852866797410276903363714303768276292966859766673885335570775605996041837594063975977835738949370697506860263053735391501519361059462772660579457273961206945108100762624040532059641272026047949831519362876314358775625112467745529698363523780689239055313664169393351308562332634405526850505411569349603631134822229714525195363264507231648686818278017308759995400396141588727486139655143623127923385335321686868828007425731168120884781654278457131150490015807267688687170244487673760577668661675638752423190176734640766550414749929982879195293910976470256391723092665870232572655126262163211351785077627663215203777071465477571192160989092079269269141301280969732004046327058428277626674395834754293142298544973576282912925003786489017168957549830783695842270684264312015519521996202524044134200820022214205413899941828073134124818961754968171766416019114171490712816826164301699869231811783516804331542020586458832690931819270541779045368108301721936157322046696131958363260028426230120225393289967602825469038225584646640748859338980022233920982278496567341158708843266276013061526144447675719237226183410069153845564124310906270401395395766211807840734723431741857250816710162950476196117569395983047196293134263111434945608636695500270854692320694021623516591792616694203664213222544907955767166542795027982162996783668990514758437760514295893341045306289661416237271282724554059855647817899045384708939698292921917453036964831357884491228448344443082349390547747614141722904384581770240325533294978954501415315200652310848080237122290066720123172938639729721986007950975792789333032190334953678223125507040246357409292060759742406136486700978673687439709062244697543145192732184322242068096576555661400175655247179235051685421030531757227099458888426860145245176499100357274251422449922590048826445783275436752039264419393465308835249881426989476083917048780751129280830473282237649087395915372826847757348864819285369493241823152142148520373940508342572417871287798852214493233873300832777565209017666279389425802628891067104879685339218687352355675832959862779949251343165893990780881780958348816967733631497427339743553350178311273426231705577699144217163003451621399233711015153910749248622040179637179719565588129851408603217714060425398548813542604927066245833287662714935358707077414741771314334495883628948797859769541251670122787623000573835558779217970143146933707369714179662453788553325758866632643510978397719196979404370686619937547621751750406377960327247732026329920284492423377391927056163157567564073490077378603769209709582198316024932429018528538536226647613479640877667026925048996903600992271602524106055713725423948262590756637829494951906323694894542244390746524385439170936752826420393307794681238224424335338682150162472311022076142032249559134593997569415943816258663533117427991286506909534838974455997686608132876824468739062899753370614045049607333250186709708876660159372475666888871580128578330729874344909153448786111893575718614823882108646907319092319454366723994763930122111402065523448583178744616928087835055168858501827039866924253825421578076906457462374935167759130554513593131958970670421684672298557960498170118527403836161758752782131539973522453266948351546981244307801979013098095823954561400044912152493986466929167162439683058813190988335250500214412928741323795263291288639324535622614633769356162195524005757294470824953707926024329448870032176657721170472139105347628733181180115265946935990354206790810482167500770786017020794486651775713213600720866193563819110348537839217235090123409627085722183167515211496917687129271112629824820235780973828358569788042770926865503389159570619211002449512216996490505291133445771980563447303633298003578243252509022726655789892196897014027237926322472145857756381868682880063582556379847445898041280547241836814754607070885265552650262261452448028381889129239644670302237152211115691583352993725339481060112804273237506364223545920984790381231918615480329854619616274472135948897782331620710607855879595824878023323534664716985993416457101938076457180942253849415739177433674276872580368572336116501017502810041931978816892844248883261242392511971049510618640665353327572539803711621835895605643932440562497970272555983975293512823590434929944645819096305654793461276268250981925971332865703627078256719941783509889172894349282087965955520647475055559294410420533353216997849272878939178149572679176619502721872935118020815781829697500341421436575612819774814655488058700024798407695986087601491971895292515224931221156099190186178143288479189613391323719736423725244713773185208930897058565711726571859618344447559661953204294933849377159306637326421829309685675642264799170349283789599078682848915382092325876011696189003266497586517260812729997828084041208231148301976780666964997405775881491609814798754784213744122840849845345957218829443778385811608798474246067807527900911678765877834098947795995324786401541174809759735694396770841620894322412404372632064332898303472601847278870446064858939512585267468707866658124167203663718400867364946010522919768815562669687783380676039561073023707391358195699394944682384141276508838118563733860675460730021249864216884269990000910853915809939433713671222224183646675230728500206733965113990529772028799087415865830097664512190189469018355068608694798208493661464926226853862580253619572009250229226367923176424079544203000743063975700986407831910142585416114422029197704839268272296901204143487057884192070347150191188068876475814157474552617543039573784877105840041856668466911247237267832775813023052740791505174468460534487054020205636679515581107984690338370945132821098869224413912284899272561329431047284211527460414955032757885195572278200977272279852494011784715222409831704149648178240575494654120431884954414801516068960280590578203120253020650664909939377127215897329793572763264995905158503377161655831196156378440048875651464787040388252462883331851061139060486772716609776515268668634464172965956199700638204992961494681550288674326052267927877362473689435518460101021492679044478454496834336003147948140932302584449403478875870609901730499941363397892741525670977451699435539377674684770828831005113911681079185817898022900531606029873149417829816706273702982149820506181863865893228009129362836413958734954419523701610735826206049943787475458389467844576829187613226469590908477613879130938265876915506558448252688065120348216150092355009421129354839566638905055137631631608621009793991361063523459426924486403334149647001288484429685655292741708427095783972066727200601970490329955664496508204981785377809450918549460166411182505932443050975036638163452081181509549947068047235393645845458695982871378103938377529161372393580936463139542795140660749324627161892264694473865820920344757106979408290922727819025360684067710078716174950727153236310983407948351428632326479780660124645770926303934651435111425336195420572044361337168633487561444011475519120485099434797922562146443143881359502337057641252827324520970421517111102859463614528725781634454456888464048709712340386786401165458819764359942085468406876963468393185837886675899019579806321827779848413556228434325209176391270610487574969701322838975818492356332643275033329929316173441399116220632751978972107109336149808176493497871141838475828315951204593744998467812271798890792299192323600412729728209677104798029374122010693383464672580134669812709503603149230547684041990046353234998560498360229234340197824624269167646257577575852973969635039158593543255355866893584752186789574730712429632338930206868461559427987754249516500141032707305869469359285954005116589631836294597298534765369549638822312107020259681310241183528743086651964240420999250387763385336455523324652218455195926750104365924786935954503329237736444180464264380662669611243763738305652311311625240180250868520382290084058471010358962963597168354291442780935275162742446141140115369664821412941168829666296462888273007199884968269602302738560500536200832598065033418829976721022512182606215656570596102184135607439441598904344048635295605333796162969925726109158530323183370354944848031520560821311306149429470608830048060013882401444615676263311078811636694587735948097817916809069820347601933609827700085115813722210107465062849597352496030222732166761900393302474624730796740079554076043343946432171444668238860228933907102456336415384987865580894074501005536480765497720413642736888374264862322393068516861713082359703152130977795734309062483133250318301260573229443270803917374418780724634604148569500910686092129627681856931840580343056768462411604114966577527996346506087213921584579790512664543074435553264129769811023553467685730088898754500690282478270635756327524689841793014476125525226445777235904508611940826070541947624052688235849860768561849095067636791918176600419357473329849066975582429912630970830185558232727374085757199096291492914603936817641507445829336514811101364361467622996090498898089472201845571803934340038551880219587364952417303795132093537842236084179417071733085949415065737851290376546218677765852268710945925638175603735533151038232053138400905309891394353802281549799115461712521283052035574669586515767202492828012127947736025564298116571640472892397470193630596747977127825758957235283164956475548166209823429099608238890281986307665779635763932099574367092707371326686129974032540048731113549956132954581225139968108546999804487784712267695832293622409345393069977038131496477352398360720889984026853178274771259513934669136718560384789413592357936231967127404265001390390790394205380474270605875846207551185428581664381418799751896788445433428273005140774255469022515249861479129826806586849847011291848707515876438003459891841464587082763437188633627531209402463894453040404890428273550562644034233845315742483251810617925447202738030353803761694463343472164441367630529353106840700447086566693337169998677999205378796479715298420063445627615105205576353433375678355708095603646014722763478819376590479224648361734716761734450398611162997863609847702508281516170263974797037981798006759789663399194558743861847639709733261449337391105412922536626966598823727262532646676901524456409500657125903823069020599221680459893741190833721889210751742944197362658367179403486533503018272484724189556698754143850427445254730551126163195281525485895181701325534147882406109985586815981082374560187519883068131170784243835226266515068120006866115895443778946808258834727059318668288056624001496795461546869459089859715348070354709209630770599979127027143723708948750619127522782406044599922931516315644190627911995966120456553932754831527920819609747888781058574347973707963592328763856916577167334966972522242294610183319689263974396698426838836807054334959502674924769533511433298432616768510464921879486842872364375081629437200583021269544967676259158100527536881145634405127923889183329853056502252613925446530995323154102411622990371957897181436970865403191093473719770036575852889764619449388986497357576542759373544159860450772916486581758185595678463676705209477647493695236864137980631366029522679215676561386235573939769427490612438861284449148412719000513094542067412583963577240758224954528246516371924427710876635555781636584343232499535720082658403126673188152567877635852634796975971893985947971274562425055410237910235180876463797534370862441138611486671765608631329858029589135213384098225299599479571364533241220333084230987416763624474618070828086407953068835882486015392376211716529777206112734478146982806726685379451064567472543086251837804475851537733408499766414757215425103644573194496952688542866293044199891749440138801936877147100752210394241825375273350772727969207929373982268694939645126476736324521738931879299631710947947373301011601149076344813550018286239596860914934271501488936693890788461540392702615037236901642364269963433717404751397347837274373523628301293691421952636887185999083054575146442200637854249391632646215498696992732713293281961207368518797223598432589678760512956800973523096903501800158412426233285362440515976516351626781818199836569727780429229588996702357932937302792114315040700147960227294640834620740928716430594375928309824937129344903243208167943273932171303981467250123712202218411540170644116555600161653712499952230983819177421026052744035368654427870730630472171999137490938790952732947543852135947354733840015838786677485352961537602613102159735172689162677204894697982008917912628642308830418453767874547803443548973892745882366191835507082224261230308263519897756140101771041738180562369211559951639217205204225512661304446538466436603528869924887784088837527217795281480384427499835807204198104474751474072246963024447903024818767732346462387893866477646681016968362549146587037907400960123254845912733995637085865551767090151168364742008774287115770317564757580929081331618844993579772306596916011051091152445936848044909743462428218371235421339856666263166689143907942041162510236761321608374901319307281680037592355830537763243844868871543956496637782564275550357730444615305363522469273055058653270811389082742658998315576909238506228458708871379820956993966540150414606971778398360878931364850568639311303480450389472534960514025162269557204694951520419500176449690465064063379171256183342214858489304306332125460426441442637369801030609551827335168242997613746360292593456758602342736330626729192461519062507746228306262829423939818506605990091315624512523955089775357103254926645642134365625019015088234941839499355804584389478782809520252421835827795112238481737822638443283903247393118640501691249615059096643518425025526128723624824942596536808049889705145881553596654962590455678989706489583146604527542046327792281339623798043791493791110300978650489195450738010494454357794903980308402309185205747392298822961757703455456738284351147243071654625290249983982878616303724128339573750863862026785391866471483102322997112768658328788477678645264570691170935520537336837010870068933938980260405359162209174319633588466208283643500641792023666488354619476656571376445498470189760125968907350228766078586149306245221933802926757876878731406928164224784247156407857750882074234372063974701541377346781908395572766109543437533121286971784229158670236999657855975132338494535576246223418424069434210595778180570094540806490123133550527762506391340371620949984146921102757602260548265263915652028691731084844823319227771061966161706762178743987654929795139402121837377019576108059908125622057868062185761232448687855444777041984019103851784050739537745872372402740725931940273227115673832649955813182064465429649942905030539872584486917717727798966798416023364878366846259764550377007249764738967802966729160738973788915287738453932726107639902953972987315889231311370766153072930758708267136968456821699172336195797579943540972934450273949198376993063657136949720382104461283778536399318142540507063137245611885445817825103394668334126442756532084413716844629673808667425314955990727962078867188873891374100275433037034782277307212471593150805222804503300379601454393365471050231929837641918116745303946957668413109929576652939436422828169350309591094228058074840671065972558860387120563838464084568126413234142355012820821803723794243079342415105494311448493118403375065205591971770987170767236172136576248263058566735743368393863354836012768663735589605149454357428634178059374278443156935961856751167882555674228115996707829111441092137567861108137565555203937079743825091028250086730895511058158684252738134077388623212897306888912320366795022338507569999744008796335757343737888251921641076117189985390984987956734909816554733300628997534619418801970760343570784006313600320956221483468513789903795603916484013623874615014792686932227505991096848670535592528667741061898709990566990351817054784014333331359513877458357132764899057274127017190709761628747483951814900203068192164635220568676697959291428846467047834780679914883589191942366015566172119950714223581718553989101678874917047669187468384576891935988807450097781403036109720248337942833993930552066754212023168743105114213401484953109790137947169803817610222553222683191798085357301631436068438591252751343225673292886348607222090203423136039840019316234895882289417101281784490439802006863018560531190146422413254153875154698547954127497137787292720514895508102789194014063097685060841615397147025268385658787913069540748814692860265508387562771963228718997512138727828713935019080099656709318705999271568902236501942015535845189979347614836983123722009096011231235846278041043403527877895448889943737124761212093682048196132525697479788135021060650881541597757186056543789063833035332188857248143934111745614925319975705290442101981861568050592472356327160269937751898432920407180391432706750330804293272991631875851790624311194143476666984870676016832061522630708942411696297109921467547406008194349792329931183370212788344794938144046593191139908059362749402712791329622282850106995506446224665752408753112261907149120859089009462640513827402898651889850539535370482938587728661692369766676949093423885004649532723311829404378203195563302588845492182516984331049345651428594334047483011344124124896465190426224383601464246950142956669713128888920873307395747084480422853562233298695594196072313715434318581262301679726930325784842506670540947059901761266451327456952785178145933038375846546017677993123101713876719198291955523830395095630140646027921298678239232669889873560553001838397084424052440364831567132896064512550009117227147996309108412382656844515378738832236208224736387922059954201586276799919497925951725418409854965426624099205272386308943656211266960821903738406576812988533316779118411778241890259535227628947479239521851692140685226514093216347220053024773846384523917610724637186885258719150579120141872117026128743276663795712930794518597621618013748874530304546182850300880473675494158712714510567606518042980032512636736928637013960162399620030733724893487044386667938756993766208560552161362630258394393820434113823214827714637496185969572756518121594244922568104299155048671300855720313857079375866778334564660998491954406587873368897088052255456152885788524961855333104596145191689912821975134543946566025150394694344816861315170942887104474285089753196943590987339097473258015298452108786474694276682122622795686037277090678163858822817170860903320786618076409428464543862760690442142880146846567024191258874195309895239230341126790049603355455936474999444534686035992897357660972434430002879076769227319441611092581517921489870161358569625642926869172149037821659907975672866917487898931842598879261859218939122233743410206133342411746609789215890140509359219838563663177567498804399695925551192600168540522812537529812097558799198058149249817896544941269790444096416585261026713343174401169466225236293665557307665874732637205247956364878031916423033375063859985909190084193313103191960672408905780264805359689546053915849280694048246673918253298174601044537304313341397152896903159818182970579678506176524864277324018852268677565430097795291095764014579380919714288078187717093569015663886789189322039234580237068169813265066819617730768221345757140369979949943983817742746473813714536802576713500080212387784409130270251088316721855725967155942937551724226034726499351532707722697695298069933424084699576393533649377229403044320697848526728484026065557443356391696672219215038014487530476720741188752611664059486710707886423330458724919282543693668016729715146726154395213245713750541136047348237402120091119706982537423904621359419642717920734752935408896950783472121665353407854632062298843650626414005945504927162467920073977035226456645485405865683048898883830674785698002573666291358819487839568035335070596925379695519929099986554480506475322908054687560871780892546226270065439484524313418135511888208287209977270868685816058826663541480790401281518177096670153124544327444436227238521038668958369074767228201566897728448264752387533227622622943184461161316782935851844187924549320731781784179667242047408251207025500410401949566336396448373008071840079532686700100164878778280135730351046722549108079665358893325529513954066157988619442687563198198113122914721586945950505785026982670364110831381150869868428928063593901853646033369538065547302880561164594760432903027768009909123497759476586840219178561223136177232001932817500536564665057354908512788043159129189417880740538884205924006381272930099986623248220372723486781651325055820885465193242205400535671137609430972154679335325934005246070549163628250358807390186108424447127501771467667311228272229532899927406765017081970511965664221839581778681452528071606085183023165754964091088564291166925303477282661879073944678445295428555483862580302098813284713170395938892593955206434152931969075640631520320625011242197812460524998770025686917675813966365506455858927948204250753652675147843178107011361577729547466846097320398989773792952078693320275182685620901066110624013262410259938901358404897882688332274927726260125048180790935143137088896578117265141095760082248352593121335010073100285516738625193000048200036692054706810706207998380377616459297970289107787423805376801208907450625489549801702456396562337896616113914700849859952309709674490349966579697559351176600315291364254804644686348648654747829837673192004006952325495316759482575869236602955027088966113276871068324711937719770956932858868577829167049689122933488665269131091376990296267129875436665696785327418040244671483358612983866297132681667702912605065745919767187277720774824250313502963804888494422291032521167943057390086810268773414947818541137825260250882981789929328172755744189159855737342163985224637192663463107250881487248087874672441853427356967562393497681440924639027203389809920900699505930816010081003880281838603866827224708856926959629736118061262300689618847914994614731853890619339364614066690873092031471224575738744094912849502675753149775816397336345934564726547511878398032134660052986022625336553996711118156248694699123438687097247711147939775439557793682092982002209522883957699720357775794524042027448142833526287181204931870844185212906506871798473155027069186648883737368799849591724592002232672623811936579573500081002430083793654981737223537810793225269634263631914124604251517711797927591085111155454330373163445958473257704272929952936862055496630438498300834465973643391189073932799976465844670633794163749313948629119226292794294952642936982016411615890429751930940544000553020080755869170873727964418672759760822577732359245995367115042675970336517423454467514446383256377904088822620439087076970095291243980161250574120346753938564125183286315496474648484559605974107000127163192346083895721667703982360485736490636827914976178154578597929375931630775846333984810765925832647450864309333383844696701465089703837361474416687415597298937188106922194045114680544834243180518423986042521958601469318397182089475669109637328862908226043979364760498774513686951346556434726997609538830669718676070234904423451164350925759907912901716039661962124671633078320630134103478601449588480174369015639734166316956593365449783185955194828146037887516511600691974572145964807690621788832055470605745219465032141368193195306599226747322558348095314099801331504964450940443706915020513998387711797353954018371470694749383006837035041547310361167383936313981936241965609287071567780403099785119070733696896159938620121106753513783222549572781692701547307073722057264486522420619892257665282398511068741161814829641362179925362314870470827956276125575731511284974631825375193044692687678641683677262980715366097507875829456373630022727995126402114441528693469503343371970530572147314676637775892020357265729721908500510083411883384971895174906422834522904505247972320126981110224185218424170270123567505511075303504095463662645917924517602236034287585308355728987920105167061448565992779263748483706283313729722385433392080239541290784987193406522919315810526143335903294451165796966976414971239763976259879493018652137678726361057672094070789895164006790989795101451147482453020605474102253583621831643880536261260051324728304165485851502282662055061116608609590938709991244679963318322897635067071825366477649934130268455375853601775891423551267023678265060543814740405230853241405313083484149911667309370248123799710287145112804967605062916613025791327199848530552983401177835447731949205662003595852585308545124477323095756172523317012526772008008857004369569731408491377432729272178940456735744849917227619464295926693570591678576166373135721132327083429771987942642412978363937485243624943383751109916011892281126170999465474199232814786503521287851928382169316661573018834066567316850314602653273869555708664705501833700690899537789397339036894675051189700997200270758676124069025594440251471740264794240757785234976928713491165964250807848167575925177360785464891300264605814796075540546410958203576293124126341561214675492021427333599571967248451616672199530179216749278649737546438907106890152952453773473047658423355408993023288293601880489225871330579425616810383325955425942501625742651668226496441638002741025278892805023142379099231004770960795097860869817205890949598805388182428413054519423668521002816218269766663896173244831833027350358117286073603877762657284549551603728531379292704866026251953416791881498606768118030319578385540557949149401385745866191544227470399996995629696546718015801216450621755111189756070011107249445697618265914178111237078071409424001053067681851917621535397456243271850172184301533569529943989453556592334610847832882606698361898567885802200827467470220448035701011328799760903613726870219242481978402441739993409477356932006918586852145165015086396236214057225080020641045025942177802368052439175165055336945730738822148459799712036341439905424440350258433593823486892731711870634083247835546453813096965069423100710893783857394873055764460554525620453662298119877919475418734825581550159660866173689266761627239411027362474266071917623278272826163910811047773008593664488533853979046974915596926427863443754428092933587601495617778885420194327177936543577436778279495504525134974765332349765684251371045080651281416091470554072248653695138547347326242500944965173233321070248432623373669323813139130947382455865747785820782436196230648743302678382031388823522529391597289282554459283225332383457380389380965035070007973732524180473335185060557651627470499167436017677380238242312907499665967875351539361756253224676454738923027511137445664965263715990105842177375321569376072109504562155184427641632521140442427236821648265563908284559115919256116755727591075982645302356261192563513187674447921105417185551203835816135278646544612613351302857428382715399374597130072668174608197637491875133718041726613735138147769965045563867232658466848942141678149941965067493759916939228581431609293171509671798607374844054288396472448853126349907625473573579162913196758783947143075673827553913319056793397482148724751442570589357180377675146018013809609368094252637546241364936237906739676764180658987694959812325252360263316043720069878532897282803442615578398064076645881034248755526980465548125189514634667402510042590052810910123106102205407004044103295165425765897020352386939615036012824390677556616812324217048989914814530632164861184942982620383503516706907152209519861240480885720769652674519529277922753727841485907509564685635862007232948275550957893531378363749346511878072762274225236737309883856263423999446780156435755913861311018297710042326080589677964250629226127418048288205890915063763042637908599892373240422822836312201320632075085046091935084747617205248548222714667000145980534898571494458606907855754232007369445414265549609703898748375093696176658889315216389071594873914260814002391047743531270904531938255542439528999803491796817453365468126569746625176429030813861627411650509627028587848025380608932584120550503152882035199778448776147759127279272302879404426506924159659792058615211034742325638192956855047342138404512092602970702087984390992984102395447175558015623083975641309465877281401209858372260057266832944075240519866825972363877947570567685493391408893881988008677072165497993742808700700511311840917620582029770000020903087622811966743535344379472193449299731938485312647081080316244305221738537268442059533539888527737484773650609108665714945196075036942957401954667459373479237841203250970524016897838913822063683515760366803354879768996183454151874159641710517957407273733595058447657510046848522263429285145499576546416343964971627898739422552092150230414067362765033350165746771956965625097060538355345389404961063358899573623704267987115295532634629775716446040037702716625701456653802801605723352162382010168998870448668817649953450593698645370920108771680132866253743099825445102621554765489258603718230956771614646832939757445073120691477106957110431314385323538325846924687823403677104838167352823002842954874476560228106236759133917108272740530227619367485357384661735007924866172052583821492642369108511890225917760409751600796829005609394451714834181531914464166614381617576223900655796406394828158918129639887444354144768859477630542958904023859975595468008289001858576719831451705813753715986367925454980128590449974504351895490639037654893149416707547459046311292577276783844125091963767513931511725752453402122790370454723871023528392120362358991899423434011581820184004363728490424116574188544357895254219598094288658949070719012460920692592114539430723007255290580499652796251021852746660662121407901852858846291989520749731675326475583148927548394570192744956687310466628357718545406366103525127354874315427598691854069042672241730484403087005328847062984643399109768897690687936272702637500858105421562444373255361447152915266550744576551803871886391401251774312094789334140231401080181196862538450092534931165404203238520045820865429249440200790098444373090602171718157499318444665544264594527727685740587968919348267081157693941808542098435557358709931918185124321574166725314831645528515030684549984344414301541535232856389584617984425273705662269576290168532068458485028231890400770562303490225338474531682981325149915553436822762439173032812583536343153951380973329770078067268284045134056366617504377902092975872880212829282150476221434320279575783675896629105919796430947817364722117944014867439727800652928481897934320409915757186139239886563014980179377441459270490925453102373806059297900831519019953946996708018800168683939656683453306142293264658776816309949840369360981111138359204413340702327401946209260625803887474449625364270053402189989566053993461184096354701607339293116384600241246287923640993826974633055538990330976910420735286517910669465636739305041758025801944069887176256466693663036363002615168550390730953314738052938869337532988590173977191707303092540893497692667077556870541078097687452691000642895902265957200167110130389841668131595197611238569334734936605102273802006759660305513211113796862101119021563883487126026757359457044547187755706033868795829918646162900733893980714748618745272618578933519102103557333470797697748782612025118157276893203487955244476621066845663735660218316475088156437384659953661729421567231063089289049820819307366093208212306970783587027214139115556060604056525120178901011745152126736451018497490757016302765344287734427596384193994986483368749473722314470243982799848599926554055346760201241184158529803848527548210284982561823278075520593470528345116933843738175667899770733779658401204964418747410338879026815514710380137789509750149721327321031698129707982402167125586126744325943623131377976905369232194863349597947009925376866840287942606373078998680298251491163146515058502880877283690432732041815217485317044760961649449835612610024253353096929551415724841789973118176411465150341920150326117664983578639660921233735777724533310332045177953179679317141219538606026524932381365219895922772550971544473191012812117655517447988802367093071830262494008530182956217686048229905103693125212500119657436034627998605467566221801278400383860395816211574806675965248339152182134040941737192067009381189662812901754275752493475485250817940384297342526686507399988328431143604878084432889999470409543270529458231116892278109576660573045980745074640668556537495115697659376742894665636485558996241330586250310004578219789275252940141444149554226273232895634238042988937345369487203769322942542348512314022452580494825487994910052971215456471119037525868470121865463403293593963428143565058365567749352009977181485369964454912525001218655448342843495972832742591253612031730747722348187070707814673317159835235203660784644306362226607929914780793079759206253374519229979308921889916440915235892990553615673477347252221155260212923644283069211911718640226554207415794630055668933694985466631778053179964438922309471752671843335836740173416476798667211306683325614795580508546533633786073307899366214734923312977403585225066809019982877042506029270351901000481275261816067577206087173883159280062344182510945088373917505605804597866999302337522812034020411403349277457619982712151896480723996735541192475521544800180464607214192313539566150572637230742122341676132534965950777188466521785618965708073849790589452852714880062756139679640585970920022813544838161125351644356176662803681095699794478020349467376111229650339066770674108577463692388373163449562459396171993204152165638240448235740029785787342370557391954997054805790423144427612750576913599862435056855681651220453429804233482511799128720149932963602722912303791958992845585993595131067766885276067360299603789268872373811876472852075167946901408966881125614510335305005637077263668217693598360393327766154827581602017152769629054048664927216936173912984267409844270173562729982652449419633597413739495837419235009608311707088707862996476537795701163725691440905773671242207989410572549252423094791147372197069359678454771032663406079048101232093661683658543845196337938404491381822818832979105056743507897004039093914644861600541565399777134932340801850349619401315437713828976591019812639959706861915135241331548643790349765473432048677117889573745910223650373742094429507810186885447705227022627277024572510199721438550961399238767187781546787351779805593338334953423638717545819917651046812725470528192031029274632488269664328766696897661588942367228634244871127229306511409224110399276387102205155668830192153110912444173982958452542056824874724039827724135607886450597693596118999764811610775657006492184278600282118946439175540381912498544086259181201968889025029291457618905250521799031082987584418288098793891755464325289171001899417657571074653076262585766089986738990324956003435074663602317339608086328677070780501239262007521948703449381787923073462864918830436579585879893402611223852127055485146464417530296677469765721751608302884577963160001287777736662458157495276486226363060610392485004669139172394926373413240678606534535962651688362988641578035785515563336019156213374082329505383039434561772481523810453061580111245981573588334906521581586894885347792054827004847803641307055936292692273827518279193334640421457559613079379623887574034866436644932514395060380906010587764495988234351211636016207974709077892602588662843602627867033512118254983110072535372620357578882815267489604531423561371223849941921670966747225356332117553439691695196084085958930990122145083543019870974312198501210509727004444942599382510776560465043180155314498778738573201843978499157287680386903412906385558551626163769041085673385354193372832426634581859120494952235745258227547044924815376706781143648677131247398967736394132642845032486947140598804404893538809303221828210748183094507955856101345967636626709064953013977052741132449621630678125878250844524597559074758338813291599311249431582855714298130211744106718183349406392930182081483347731133862013378029851562325213569942929083604569478722694928446938179438082437864153617769314914644922294112581807177923805258217124296113101424629587562763355590677549154038971061210523574383395522735916264863370092073268838521609404458525516393950033664853108095483600372590828885674292430541378216817408089847957302174930278834016294902315684346703030418811590854563751741612958375118004885137692641662029506604857903010696978842317100305616224454319148504535234280891001130285884048187658083544957608046014360962578248565052615862597092704726104972629630463595060360064758921742402578986808557402608210478810122433131640995481437121049102345015078635542915041076490047743335956514780251942706559645943693855009651884119961754526389865557084818728277414740636413410272443424072823296478592313558825716273912188555197190225128060303874064318583705143636606404999753728744416813190899009907279485068764385820341518970376324261470592597944039323077290729559770775307371190800290630642211425604239975230523318644587453687747257583937673168791679682179735383691090422032593898027996696093570962853169326389641940616966271098323456345026679523782576096998574355501504010016443893606386580986409102274668825820669907004438794205745227949436613500858323803039951301636707413318848028766498723508192692731223757443182741970555004351775366282466368150102924387348680843806508156138005589658771014876285190909982886913298995475835398879698097804823062521213831821274540309721780375783131882966718281357904245174445684612846028675938979459568188223193823553556343376352485879178535706600172183476936725976690850550946379081763032389361210284286054950188179714220592833748072032311121122593162490711859537959325420928590591273376297686205228074066928357542014467730391821849659184516448631864706251557988857031308029624077173675457390147749676855874909471438023138576085122520747279686848989609089942056867546268855274630796494217291774223084042437972756931950584352537005155363270932811012321774118428664247919946454038280836561798424633015072838514478659937467361089015952453077110110968763863234209492106898944297246212382885534267042475122958803515466502525438278408851130709468382702938572639253163459182165562976880061064262638085122451300502652810382807015216402321382028259044226656957189616548811261950742051267161745116648835317054613259467467847080733549961170542274653385973382707695432865247442639007995046767937072283030612909107492133889790749571646282823462773799465785127858130759781504349991627584948050817184321568385230671697129143571741126020129158455127149019430422288578575403742533383153166758691979249244448523238301720975970943567764588963113713535484972339706103953387052005062631737325461076518013188341725707809275115381799897430303049246404927908368779188656818273802334558520379073599278273544825980546051541634697041670411307893966484232989957919348692416254759149693725434626167536572250810923287037405365185618739351103143392634440537970978809001869528602294552859884883739915571833614121002035058060425050561145684410588506174497213936166988860967947720922435120369130368481152970314862381471106670336484153389721830508713757535545589367582517843221531535754556883839328154081669554879514149405088801198787640668794851125105391019588355447688142933047654579985620854037501283261008235652505072060448666261410504167351761097113427474764750188289406770564111776938446606894200052047491835415846307181563783334171317933878224198458124930192690340827394456618969063479586813042506760882264225009716960495808440449676295610439394610118841584795648238801377846587464874728731517750967749230841682701498338986866442820937788696112074133289629668841457387835076629714734080595926958219982259682216822453431849982211049943488916634389503729571425592119132924087800825893192085264954859229333283449200849197695826973369358700724507999781868708011650623216608196464284234386348498162920118209068209934618573423588114453272656981887763589327192844602349865096716958934000839113535690917199099836010619274533232083741618779860670774432187552108493411226309704520978216641375665771484189235691377888844159010479777787982431446385893144589284357436976356139949972307402386980983053475918602903894793406020636835636261834715404472545994686551168124471129758392819008929968890464761582384160927293613736375459497058829409855430665563015013002076044333251596861471085787493094581185587327069041158055279845028247382816747739848100385126047246566681850037927868801990652555719715420687289888319968201580433022413231946562010061763832641501521675616170699724928418374943683470095225282365970134138825124349492665458618013970523871665687449004258744055469861506063553725413427634626544200732956233743362212304050017501390866457787020802167383267826105194222746759997477284322082519146968950140646015159093071077348007980996263402746532744044669976420499184859165966219205172969789791483646412502561113002233627994158397634419641967519213425581207566316973669919250289195295700288015490503636282611207585285464990902041341575140385164793090619480730068001606791992477116592497196733910314404733546591710621763478697856086068302740953010421970281421665551203366724560189406885357334604931016344671203449189129213779108839529160170729131633723079010652408420147781386454556388317855886456538439254500238329136269514049560476816692735166327305571622695897630933898032304408109912694715423818638344760313423172499074139011549873438392504566168820413409136275973065493887868207089573835520565565846271747617785904225167859537465875087362843486699407510251879599453680804755492331211914562547715512349011713249374882261253007786550213819399428662889557207044595182874046455097010060612215085644752532175691098800458225807272148094958754810583210888467557272043308110861726458259151170994856679636139473133745593513216859545314231278441317444311415764013132587513751633771979912916226847911200522497575323089479255092849984189333944104515818337148424498676820269003855059109402017487122025784839861530665486013104979071066232902323541972555745694582728669536502689241477898700310607091763981999094250668635920919283854867614513700687408766311759688784763484827501963976230534969981953904839855932340631011475792932234641756884146530676465200124143869750161355975727518834897001784935417458951243382986915206181330980389140413550724099254751564833501869050485063875896186862547446992507682863533920003661454627589469786413812385278552191759688846198111313358421017847358811083748522511508433818622439078980530807831147951382469255167993761986820412392135483944966169270034728021040429081842430259184188125945028821026395857508149042812627330217758759971352124514005271529269851015064926901776391613258114269360881703592359623124980876923554719418180131464150071636482644629666430131780145469521289359041915898164901492173555972079119684902953236153553762205260492315795404666566419052336453121707073086530007149141772692103938916664970120608551573364150580157825352049803682234302496947169350727008545717480978077104050043842032218566197217086692955737595710272913634033691029570387321884217459512895908049534123455265386262822696818033788339169951658518971191135303576666534743805740729899452365666368162705353615988890059796728729248708974796805120718534136198230368970092365813703373727113392109363407804612444478907282715686715511944122497634946779339442113749195569586727197481448353949561391496317155231430243800680214512141414010841717213216405767064547801958135833394342566529966799284290602690069105194060852557447811851676793106967128228339923539614796824253360177856394841024006342760689230536365001739917914002291249319571376781693044079299931310391201320941263747707225623131171951716350946785716271279502395586541857721058487853106088604945599275260304878169906012548555340275330809446232069458519858891614200671080628283221927606032260626361179804887311298692252947957105792434045396868664799903715803310953439784639179805562587554308970835748366237596346021285772698901021328362183271280488496575874302271711569467152785809401827502668247156362080543274164338329171929114713354765959792978335591239330965797934434080429639631289532178142577403308275832974656872285237703268713653760303659550543984478435149491773052155378623033373475457985259563908909382340005524459850156293079615033533673915546371491297637025460456031187180211811360207424953988321013295632758377493850981579649168799983705936020369312876830886537507797319094881633733667727549743553941178323214998138118365583423312632127013880387449461395523671377526631435770243693661678970149646629941068859467507909278561496954999098314350911996992914601713115242540700426601501173477388320654430069164755336071726066708630145105914171264314787330533059945387141389522625633649914333440122355761911791075974145024936662290631277821006193362286807323651401636080413970337089297764004720422746223264995771477246377261545395649939347900753659589441053754820892826384814101205106426420651551991240730605020027362227373597018458085037243604124916026387542910935975199384325403980517006841877378977441904514715006226201271017745890658277992894883403782876620940571478884865368149181047833471671302838746139973571140648753265168109033065353645036107297790955888521000351557429256444992747009841181045719850295306781599105102415608267283054875272136331726937519958879873440421493910429372424144834986017519979255976268147253991403599829903407413097810131139650983517077145440128148937504348983678589736556789795511436945906869995304763740904750745589238560041362823429185127393432770977641985534552531962585092975222915639099355056529490731615708573223921940260727080685327045642355981423244889313755990145152968816243970480891169681956500780494248909285310831967162527200752366174826012975917008865859258237675978694480298242489503589583143855711712600467990252578929316319466994827776271193431314521132474726473515445459034362219839570318484862384537875935700948042342826351164471738617725006573219870573664010505830374848668142791592274253983950135214963606863801835835436662504186791557846003183750237671026667461812539320751066141258069985825882192612898505030285314113369810408048930358965495298647586869568756740579558919695824712441864211325728721105966673011570547024494138790021907314391858869271857964924663351527172122661498198110256837565643456138976233684296851906869401861720188318360917822276557282982726389039286555183393856478533411064218398524969111761482704698287192936243057506943885667950600678119540901393410923088510871264939040013096640808090497825280238063950065683271879583281481933865859617256912569527027410118391280605691330286998499491488607309367845282984668223987447257533616535984320163100544317244373708504177226247736735170802549059432381765013094104547866260002802335228357983187750089792546714697175348460757170628907983407315308519691616621034922011948398884094695477933974555055113972856624791093874442854146274557994488947157868056172616040518867535806586915892203003169647112702419978081130132186351768122703364273843161542172681742578922353152664023247458622874787192683143815604863959422696155400281488121264080132499512462664571371935862328870793618561942270141726243773467891855671869747679852685040893018823050100948122943302111284499020461686476435540215884233650634540547798834158175275429026864187319756883973459219362701883588103219395095748841127037718383311628106401271206226605363923634693429132760473456832594186410106343185480503689368652015127730093925174023670280830669478898975118975884009415385977637365009075555639417090277103974688911730967419687230046191168527953756650681548168586482329700642444756493337570580149849832525306803676760641220211246749674104238538935709799574723542627385502563309897999268050694031865899028955282830902368871648053429759122245896253492657748273629331327875676256482224079479949354123395199141656102703566430585317041370031513682143190706571191714133587075594109214523896914900662521399095822327519103036270862127858221863723179995499322312710503186454378668440814677434204962961706609828350406385598241348748983260887573218096877064329406353021172499873831020340829329120764060335898184784070425528235198048152615453877861322458344302607570057429837451442852562954164125726054046021597672004461291384755276221867606911224747481036282421535556800340034540641307634004486736277891023999178237254001394039565316888733521111003309718015285572472307801138472440798884961842255679404843276313458607144969729957356464182364612973779395819547660142886152294842205118785415328320716995164845729871004884761012698344174142713027090036644603071250875756060454692269004063658073469276350341406000669284638541562628753282103244538739518899847837594162399609719753371410922507557183654003083169201848640166562532050163189581890280840083937454105955419003948824592221534293362195231063722676488743103252623784661711008893870250757604113059772922069110675698498347532998118220795422996532516758577042378814400670643057162086409055075722179080259709422075836139433397003730267574047497611095686783898191635281068452085607270713520053463762317719069606406890457612116978703717152738199800215377493663526286732612942186085335742830895814752708152824746769322679656412413061062913249509272557508433422112496528067237603404909277902527583788004703442079336265168018689265876005211547129246768899124466399597972817254923908913786526182953127597705830267810943761528879793814943230908143357935812874549433652986479872081594711540195662876086084449632231610814729849612751616771556547516008374488097314553249845167263343230428914671074654004017379517994517430054280477721503903671617332582928698731479988662020149054071192953095713777724864947964227773216728365593484293204863325487898044452697520249698696572735720601025462805184984741443791311752323325123196647689682125989935869686885582130708968071085519785756713918720326406934983765235027457348438850150953680974012371502738548172429887806616534915580806019637876241575241093495147684378169040530174952077069580003957694735764964244592785340964085085851615044530314673621004523007460669736339358155679200718391626421871324875120465292610250355236381635780587130813547165373171548576285113907563556023363822726205960838248587993145882400977270632155205633185777651252939951885134744541545899017452012617120810949815300953654140220847494518781909172674035732993270449604024440252972112626028650853864313533322682556184865649254973807368656621880102498143667907432592991804584964782472298146296203737060867549701192513327721470575873319970950797172760992619234850283183091114270076888648574716059716739955490163749225985380833362338023681760761308019610852966523315375436952468502473030621427219729191768197870696280654771760357671337999029613279756162587985847535087934976907965088280206572147781997214750995974746455713980403837301298518335951152498601816355599762583407069062154259834321000908710981677726595564548329339575382928153499463187595613363543693975510662867067074031152686289888217221817417223461123458099325529267570369937599972492069833111305570490168540486943139929272968612485633174954399333304380932700727890114973841220536365389482126627678158395127922884413822629025349456854415074113485911354455448256945433551736824558200299673258398924514130692578330259479979985080531443552645729385929030032783584345835884215162220560721424904987200244638970841053092539465329606912901977433652225748716363911141728315444997750873756300904872405156497453259961051627003009608800419154082752363714959299688253242686026051955097736974317327125304336458054505119971957769619318253061354432083982186525650087729882840333986683957085378193455017291849256410958406029342778646655702665596956417716378692610266459967260577208242669966537921179982430106306193831846910787364888806405343838388400646892274410904372661629427226511488320855256019510852690879703964504067735913495268203151724137232881732572310279013384384929628641683087506747447872060374819633679453505089758433427198499612158087078447183524299399131164729640698651653413254705382690417258135671517588918029019416683434473141498955514815672107581973188754611785290817668645114688256224975277342712888901792420919514673281002772357884152238639959776791955642987817095543872385530595342393314986862714712851904361756181584962661991159607040871232085153540686546471703332814839270488032935446832482762056339643076774245763059799429096395986491262103221780811565490099081492136119464077180334997336224745948709897774625632695703721683687999395195230657420081387572019101497091917514378344246986461935279384974130364125824415797259697157799394366515810954915135330870733638378545840142490934316948653962173235902878589045985685888881493109349416099583758525571760186550406134175899222379269971018931029651814305466280378291241893254607203348493402386595163792344804616002871637266903992649097769780432518821761431199062442087994424700238157860750381020177810309133009492614523819158628757717107050948087616986074773874190353827739461953872192339523000110970182259843028049353412474130034506201868001009421670058155028426024317432178554885558516762492857522581156235910154747118087213972749793246293949577242365942422766678415430668584626442022672315219478704117764453559449443839291411345291520704747157278036430554181484011033227688367782217564443854986895022229566826258720417427713476324146452235116613832354191883845195578181686193502435340331730569552737139493757443020831111695404563400061837098003561536836476489646506877077711883503988645240228818020412449871262619951996397427210917221655537255602812664886152688039208099802011217694686582413918407373461359387725458934946322397293556664235589673420248457017022343671602056685398711277055396021739286400780878265797374455338073793165609281459158722752772202013929393599461248330989149468027663926306593973756950920151276659698354155934439228894335180601088585492133018229819526629634924757242539430861552592274832758548759692533249706096477110795436433453626121871616671059267503444706773241580148219964836872315376428219608332134400615949155779001429374332421681951680660134987324897153110636433365330295018194684203043767298462276612084542671839599267102854098509112521560847896661167574472287163044050088767830357507488514761807228940770380646121217392781911157882182842876168322870138074572578496518290622037316123343451245054096935328666331239356954265026376769329295169500967822315111260766175943864720609387099372942079804227820126854173992580287440384503908261978658223013802411903730671403604531988969696837527364580625379737462941589843815763468021401446417494179489651174918195093015452103217297808259923322023428327327010106395959550799952385910689549936287100332092726917473077159303378965642715923687409337767741183315587785718924265077629845298643072153361133215191286288411190968357663171089669069808438490198321113620496980408199858162888860366761385724652384475319233674793321194537575221493637587331202598983157580567187863998508280642848845962960278258246143411995826110630980194949610072864227114629599852101606585204783510816087427589567925487304224309949307827579812261497451557939350949654137135619920811303985305648994180746923500775538849474004508654472056468195387405970267966748907628741673577811327529514520679388469743597938424475600987424658876898707632709255330997979003177905685173101478564827511527404154236767501092244730743309151814407588469786629775031730084949865682044335783872886816283597981859005259689109826374042376690487770420365127359668301649056924627814212321861323129533427077301547196670503683979763512084448444591880375140469071834185721361091550503809072430126201404277904458859797858257035194797889062954878764269207207937633788707468957777923023597441342919600253377458032672138589817268270576142150847887194970431613796451358822080245041484436854181503394901234975156916540417462294176220825819814809377182293010196940288960303568452478442488615314894912390251735970224360164103176118360264875365239831135503553322125542668503358707126123146217229250892334570443012236341321998606268474883407217345451155760062160592819395705249545805687651649442999062413004909157076227271767955874433999805557722455458955671898791167348884529942063258980678980244473017450984608160421266711496619829340503659880660597827351820844448074454401852988008892318862055975967275992407188720062720602066430370857802835965005127823976731615127461233062982986037620580232864963523420044531550768214305330855445013851500436043156857738477395817208397750967726391027789805022218395060149748966362059831970875397588052916486431009323505237806769849850506124623008182088316013070644709801955742176993797541893961629266400145991282467409564607946864102194222761115478148750550629067933641388423600459239076929984286917978903846783355752620153660506587889260951148092189337203600387307578006421968747503066418722107492687127651851456150665059138950681935495012023853678318158677445149444272448244864421045193869224261174722541527581295691657437554351651746534334545312329132303665391352701002092357038540295032775639346160646068252102085192696112276656491532367818625279676172382850025216815753519873482909187626736960011705888489405307920143004134570371183315826625439192309264954248616352420826310676371421697761573931745957613612990294829349808865171529349613199127858934698037638711745425743825771145554551962529168658173976827102556645251154129256329862819666208449343360396538508482855523394116256680430990844422625916516014720527989045286695106876202623376677373712605499394584239220985868379769292965761701035305292640427965144630555332141367487313628340196743556341769593276676419590390746365112929981550227970968298247396650994115104227979700129582029340172847982651301407025951618396763898906634576746514841591025624012048753228314249898014526258019912301674164600374754177402947924741182359577172829387021040901473056575704954055682304000116237634477515392141553983649721825217072237636123388720445719977707809013292826793195213527945056447936948227338125363547063525550324516485185623200851953153578416749952931763465342997404152813138971622593645386202056739976187469482257163739713986240624518843590716366400814763768934441394628648968905393355896379449945462423942817954208887670926340328441188049603385833524386516374353054400574288094495750262126906559511790878807664108407575530434439372522183662016754681821364457467820593513198130923010567407386613005845124589139184489012944549616820554336412241838014140239554832429685530262976502839152281808625429023716980241732067922390797427990378395492559020195798940386301851771496322463510453414973831606149575155666848082322286991975611802136725240270617371237136981520261611039125225202846424899044626028137065584703170514223463001213923127338959889670485615699186931357861855597399385773410939720278958224757479083309994577572608355968008044544273456593346966246341462417232820333154534711977535153404480953922666382408638077456201745895250492139109891319639434228112780455816183786365180118940775244518950162204603380461958965961424877510616601289130156847326068925712882607053237106188713767118876083992386014578455123538698354878779608328633311386867619005517480880856685182540750878253317050381263261749233044950296056607376722613278660886907104338671925023504670442696831718509468541720825929636907450255571583694844287987751515653043273789057267686275526790095343885988404982755995128499345445091379393868782689560868553134345880778184587744818827899664773076167699151511647522709701661038776338519243383418411753382023244997901815961670508901420318964203489197957337285013640356063395072841117797322572566675802364501830142800224871159951055606852573996746171746160013123254178034365818380212767910046767766876795079442791610036473301675473756864447107345873653858194356236097140798909120968091062668358154190616723050390758036849915797690083384353849481251286483050203922551648329377803364458695210055523148416814133393663184801851501353887390798335744783001883067192505548430855413245318695108218376802460221834870738820879233093530000027883700959871117555515127934018101465861606160282658061337797585291577829056632456876211669260683526682739205472975932417358356727434747482386876602300261795102673270903852785829474310887278573996133078331176614239499842767892148178256780814387267987687041178741262534467936705893771668440068217320529722437064515161378904331901106146668364129884428814549110475216211110281045874355076879247722958203104991967150334683111449566234615554794724916570134650221729279005062148819762203641935604939525678671666894738448281946003503280288215278727042547306016931921770670561952716070324603769047369408482427311313680887372783956867702505153752166543372161730880906138132286017264086843583766342042377455355211925833225046633766943107656223642176309070709114760437552139542953580881013382077014533797410445332640666676280624387666803448809825965065314913730362175573007066041387888351905037232448121004356533317017705743176260760040405137700485135073040872531216913426120890280499758364218745830722843666788260818899104592213446837676241613577412395422237732598640160372915019703968656551721288339308752141847998205123626701435821320497774331696330320666197120606516541415978065608447704560265241593967145787077838000283496976469374142990888768705854386790916081716660851660358398652926087797204243043965782031772077023361741937064726919512418342639249665282943813815257341534354465296646788691054202286403283295683507998525995011978631852465383555840417935784608836827012477838925056047374609330794425194551177163157499895693077374939262309605997996233216951110166854334545573137249877288466701412241230605704715346705025307185802095488746137547501494412781384468949769591480856037321828222396294181450184444996605798183479218710247660738173574479462206105366456888443337779303049105645182318695125153944845993096814066392441447345743029305478667754819524565541489983137219569002907820339145769074475796340272064906503972618489994796672124960908472247907158431632202448359609162594406734119965145258195063216054027409684380303617239426558205712241199853553494135603918290388124946286126107871068190694194346246935435927021777484446101683227200661198744369110188679586701348658731538280095359927366769416943839555666510033337234382150855582772014502447069183655752270503435903005253997277628631872173078051679741721747204167624008875266010653203363162437476379349564085450559148503284707272372871286995305869774376614385390812507358755062490764293832888507888673119301147236201454732634620273574051405185134687158809069852049491382434745771467421548583360662117015957091762267136027819618896883933360481619132663548915226296201194665346741100509803558928486550479015034763189364091502754420030644211471594681986385548836176972183152615027559956594488914513750045833591485410507170882927695527142184867810586243095020576325982880282231078980723504267660066445447162976800138446848834961998106509507693415431031878297409079929105790628193633908587314945651406207620481589614643967004784068778346408958226792372466493741124285137004772933546456139066331710887430183152133580233095242501117494857217872634126400786137477812642457286725295350744337374676503661610341905675627033686140731165785745587161515080665536621115757076474073594957066832027098707913092197950037511067782749884841117471395910083122595559252107606746243955667073053039939539643180326952561779057000120557549313931872929533000554114378319214160152245245515512936802866156136681438264496123209552013506567966628434546316222544600968075457786552148848562348117135362975874674214436622958864684594403677464930666503298825117367000230406575876371330461005592899856018025144500441202230013849352802048498381761506136100267930865317974113202522550335016183380590905546619879218910908979686958418845945304988749537537965800198326124299169523907053272094630682638265660572365899614959801382079322120149704777999837964779703845159159542958852232933639077773965927819107258708517637677849895567684188741715622023654101341908529646049242253251598479436640332267767348098924797983117774861793474146954065057792790968490342438226055230957863081207399515863006716250901794017075272224401297720261923855382754505556697660504402029795925626547627813364731243383196903702137198029531374063801214124080443458504389253370092406686681349651955438308855230607020029699322278816956015420811498348490179462624916512206126898487282260857073250955547480833243396484930623836431487095565385546177151547738183402840483329149185973013531770253125657353738614488555222676780865644778312210317538765530845977284502091641164168516015273083457338285126734081929795643328490863248450838327129210501638523691790958169090737150171570297713440033262627502447269541137690028857437374564801161231443029952645621661929155475092029921551523298081871057575591001066361723388978418163492525280278899466053015679733449055046494046770772100398835669929183165594388157947661243271804223550720144274008684674400861906540121604357490815607582318185833316464612855844710742567274915466879580504206143170573283978354724965289581611398352577031336021503688125086683180337817336833767932563613119992704613464754883316066706818653527416053850276577945778573710607809561777857858587068167782535700903320240019306501970252175888746219725465789061157711103509711774904583742143218326070797575795814471220440450560548974146975961324952724704669665074927283734929048013311485033889084138812988563702617088894517138749396858912374538774873602535295920035004797584986246437201291527684402283269844258589863407763926271779207937555160351380826613250945116619302911553676771484197835672839143013079653403325428589760314913467235556628649015887547673526655045932795547435844156635378711650453167522114862153324516532763097041098038292535365198150153897173769928654529887660905218319980320835222578453073002510439090550608016555143920405826029366976873710433061160068723761473815150901470094940852213233862411595795286168685597795430127497114012544487232877467383830521450886826921638679180429787773704287881503099865929692108916001258365380876054166317400541909355552823167639527787926409518040976669268023330966018918771387784178150811233609731403117895021566249493218153653405374060566026602817570026584914351052059238654049486087664293658724178309880965931377804256561370619252023398628364419941691297055282744915463933676072908184714874868158066361554119366979760467910177496150149418452552034160396548908804798786635889196368925424099100943682148927172928542298829581538495151618102979239372814769417938599785388945260468289821106006263476744158282549638025255627212147079940059453714326613896184485896455870765171386642284664805902767035229595704926803420539009739055012992377625803284532643796267611010206102198082885871278263211821587150961641722385597241655548813871365655976794031418023952042719989242697670778371019255416921155291806300128313666250118552042929813449249541468827682179715645640269877074736581825708335478130128096000821715019215619639468775662978717826312452179889020312745883397443123780874883660983079996229382255247694116936538958655575627371306533346752065210387260912423925026695485686190619178418801221243609290643209248144350718069160316157851164370677940392095873669029212688528782092655362755102511764152865237696656773634854992702901038669982884575693197702552926261043239858079388556267710511092849509372691647057329008744262752715243036995536165348945324751429701756684910012646648495625520082557953847930649947306568619077441579900951756633487987719086116171667130062373960031554310920655738124187145680780802485980909483365948125369843690137010562797652786939615505271868788070526813136155390773783442905458984549803380762905052942914386333686342815777973268182819548975649827302444045031417856087506376536632114058331259011377284126743853435203793110653456898032493054079155965828007910230177277666742637852027093986470789498062843355259788361397367139705635928206840040917991224645518069622094662564296439441214826729500531798896180935964154477692050803065032994603932441895706930988693718936305954942125637084648650962750720781043315699519450490079215110049257714425167151639347906509913084666006634417174527452716487066880205497897048897311565533915782585010769378373000078233298626656098377490213179103229194191088539076386195564517223412673336302271736161364938450872651889799286079998991632706784966715070505031480738892744775118780016224883093319630384357407853143601276511064808149056651895860511789337800030457001721897942091974409901404934131585471432836355120945447154461060258799046463081339504657567128349906409593820134284053793117249272505146763688336523712835389627170284532530766325497375205330525388118772821749877943180660496349309148579601740870841135415060546224000995125701587865788559183863948797632426954378032872733009304431115167567937598758800532501413857727446577098199010848031024561424525710423207954226834575553896818101789659062247629930769104455529986918145902966978414274396226128853964897380837443679654224318726153833407183948589491447922916312822334826289865368168702950797849977415359071971593111433537754026952595117668455522116531539257148474006474154827477722264811209228882977009049618050573721652096748633816378098663647040774595237441667633486467654098611810173703198882954189751587173680509480383777850585856415547449879360752332661798767480423834419570286229800099829031929008775559358028333306804632825541704407319774451578259665245510329799430194627453295768729663647945057506309112590352560916897498712918471799922425185504732980769305634468987971718936329748595481012889869320024570109835675435045363886837347156299503020800147344368084066061740559967170586024932944581801183460207234880598110537053156464012938238284565058096930117029607378466916942070015986470443456211822102910904471452424834974422638619038903010773621167917704870033046966059361207809386496728640856887546431232813660724455368968550364141385905074975890748359253344109138209152758164121943497482481937413248194151650144549658474008107603900300166800293321058880159229013676476794844395150656181215767726464240517443886195545986429231800807146442509358519869893500518606394038413241675723900170017383795762279041983705635195217994745025634751800500587168939256726384570613421536232212445063688247384292477427367408470115374695630521699950884459029046308552452366881692061314707895679213049007996538422760835840013321100842356545617604062022179945726887306980323695593072762412743066600871793370938049233482892743033341087548254768379003424372545588589004881474912931894870747224058125397309633722326215635107996341758373565441968989620176824027693620234726298762556436840204283338750103174524779152377081566138888798207070069530035018734354032978879071244370100448901169274206787405325144789774765093683275543522582665166096497694751073175144303043487360462933352548887349766007147805388160585103803780108048679210374357813603371995197877677290316914234752870950106522820940804773206253631963798835425434610318679121702618345960683303276969904310592428954682526005206106150434735876970648971571252288462981835230706242009897503107354307133478490752465500927418282379314595733631684912093938579367423372997904093737003958879806649642120252812875218678579362606231271812376798480216667960768829125869347194992139714636838865554861687704925170151634305209078463643777188277218999490293736267326976397987963044639582848589348014604633765665645357987207533792868475440779498395513507223305925844703685286100275131716781319722810979936905247833713271785481818875705064584787713064145039750128635827092173342644740607360845155739889819310547949738746318863670235921356503433547613312295356219933413281001991082633233451550054725804997223329408626252990166794961647846569331434448167127655275981860013406048938190010225559622672817093933143509552397875272658696705612369330056502155445520396128269004780340902873223598200585463294157189028730802524457740433119130154743983893336361379021309084099589670467982376416222093692808100076863347851733896485684872862068718154644244844288192365956787172265739175007328016395152068959928302408155757917584167970853243185442732428146471037825907958807406395875424323521722119264124754990817030203441975267996431399720499554536782970310189372107625206006765787604356694520321815417433681759473995264760864012323179145689713297507112879255373303863577361449291496140383145582565895311119137044142010376898344041448129939881921219238207675543249545818793593038525797124869375590109053168136375486685521134449375744918020231868888292950621306159121802618353722397036898447550863578115844666130140222516573253273616877205145280902439571184196150958953686257055548044167020382210956872720706554398482383496742715438010097538961644038333270454393759646463846557408051587224699619988844287308418369757225306285346692501526533223354157027031472676980785615803363607995724385922262988167916236919499367759235732993506371154981296694817703069982838922124600837504427054003310086008403393334473374676566568659843918506659353528557008759761308786393196970685824449281786696728167334614541711801196832233069681504294002767207104910976437815145690488377128533007302604775783672787218550408880368549539082348296462717576923860059926230748219112831670289088270565616457446868435813981106287398311010196112284886172636348260405256952622720518213574758022493701172967662945123162722332966430889448071399859734308332788740709872384628147167561988015284157945713497708885860698000039503119748964010413191762586864180832172929823285492490118633679722717063089343171724698756122088719992538055529392318660897065654397498878649567525468881856271495825556778018231822936675134622527230304718899452692100083701416328687936079553997821520750497033008893117810653473321357848662048589818526515353459456169003721927200791697294681020854577778292059286620204320460934727611060762662651709035764437180857511526320763871684627849171832229716587696745321782067504264024896959766979157974990335002945848639010547632166500000241336165731816039188888689414027507790236401763893858549098992251611667740141770852997664952492963293611132584072213383529494126748881431950816828886349122300614399104087363602709359271735049154876567241242301087244508379475633379302220092005619110114766010287737084103026729761091943376742509670698698445896155283018861090765594850159933601704301609356060225198387053799220743383249267067847523227443951178867001265357519912365076252171299563554426137832073741299296871521069881694484594744726333171379106616689421536538763164766510812387010724955591057191572891789046871319954795078348628831738386699843348237903012676156337361613981206266368132161908597967749547189935216507506818302901026605619234735446540884130772463794581362468597902041365561731423905017098495918361928654771727684628373408254003118157800583164192352123019489975866838282459548327805718353708781590944360459734879392525343709623868000860000867297614444629858470548415575873751653295639403937849366385031904202733430364109847589468765284455155163417971844070658418999960460519705055794614208017398822915868066277285011740775646145768901103925756268889085340809490712945778739651444579558678098517044210308071126181755695868742390475310785107266183677229509082266239380052661002701750453900928136130856911803251595228286799172239575824281669832878800063483979519883375333365605403806272558755810627228522081218182048595585985762064197365744913263595072574236607916519104198473346053609842868274731205700805266300350630964257717615523188494657311625215313788541387476450005996927027812126817678114738315936191563477047846333318645720425795508850419037032721712447978007429694770806844007959470341409154206359698502286798541528461056965384106877416831103229668283562840091836922219601918866620755442230040824130184272302032631182449002624923474546503222236869569638806825983325190755174050779971129650520786576552184266228107897141148420626274628974806344033481699504937859862246753285621498476904115604235556480735816144968065715739546929745285394026349181693964334520694897877360478034772294345599244784514787211826808379520387755448911910940084140873169175641438710261578269501136872451239769277536169933824087357956545043258780152984170440005343219169647720086329006887284659812324929051645239638621498637358359151106847906876336587925028157642983213560622911018529484605242476873093477852480265885656499633997667720681480646905566665185137565781464488899319569850667362057644694014448247224156332923762506890982273974429458562268506557620707716348682910865079929355611341184841636191241912491119049737840468694227738598914848685875560900870999716507583320784981806684955028637320138344170038694646763407845014039003324763208728450412016568353270767042083807227636310986336349424196223938791227901496267802966679855791835051229260730546779992529849718210822032111336199343310699255360269220255497696219820122538351780209485361907916224517670382669788210357756037090521832083849503331195350347198914654152932456973857680198775749861164134916695975395706937674192559266515117991767554863600620374805822030628945448927936057121062291844095432874739052864387584376910845507345965052142259837786666699141961433661720455943310945016553799737592783959889146822754377768592797441690265313319326307486662307223905626705411956702825996383604119035817304174855053092481093006087279376567663195511066147003494103866995404608996682399338127950520749941685286341099730744685316197509578953147526832277792203722254143895952415123919180246710113371068723994161464083488494806655790906082713450395388471134514529063548468181951910620525670769136224768201676466723103557939869214926879824122786504268342121301410229735953719493977643241667990569453639114780257822318720013314989051278290097031500876095932876354361904521994811747272180456296744262959375250280855427631467831300051334812983955627410862901441884657912682636010023121644992559452689357006144064057922536328913004302482022479449354690352829101999781804940757318226287589600444111241514000936059809410367158526969504996945701795321270493375044091718868578224232471668211620046110195560938938933821993909554076403318128128654123147465824889719083235424956580469517817880878745402363767761832885916233664350440254568630525326210551406256653952751539470840919107500291202072198133037460102325061970135411486507731461086836852352216331901532403385289138855081388755299829698329410415765227145054032746564626222250808936210350025332602308444217099106146155475241780659425255632585294304548637680128669708994854193935252937787004865638224429198668165490328024910320660925833693525834132217619267680972988193873144553647909671595733423493695591321589257192851110374748701822313226692781631075128107965494085486633207419780160356178890929259941460720666643818393131558302979075726915064452646430541767513285984122954813708870208671755873871944371978358562762777524162468842704357320555092311235329464751150313233362974623158032662222383320908176166449768200610303326589824949380339800783515995005882086465354406051274133111153411284574752071519754366376406558539628070629702201020696113814299325381986450061951348418437320636107726389660239001423041072814475109230672522448325003632241387699313458356830120602634465510048607036617740453276483106963580079737521339983422018819420789557109017722883161942222246251883969971066418022984908059131698723562506707639582720578856560699709508720919170226719012001115217690217932798432770279575323673098159455527488512615458623896616914706087131851165298249342875254083833101212856446677173475332536737863035213405062478269962230165081644296338588496923864129167437227033313946890662557432183650433729169730600074720862171628451819529830240903990562866571425484921602879007192585682114973704013545544602646914467283647565154899318222901020000357410261820462207571218407191313549090867605483426921513330855099856862188100790872139585105111670709865264924511330015168700809195835897422351462193514294034269100951909130041205290699595035347327034072024186844041584753164492228980141133529629182301455739481000818065048667974244224756331726830864217750442238910072421517760112209484673955169893818425607961782207100145524033405569638582580769915829900270610038210512312546881080335515656507266487894284258900049327698498722420262809207822185824506743810983536791094702736150972991439356558687032339924191997022770155913678803364947729662808517859093554425891014276828119290794786572512512607462928003202865871632124580034136754564750470439525971280079023011736669773103736322218097935890098016701683851989189246830094993615870158199885264310118025946767953393349006194161367378538191935996689791971616028440300455898846552211652489240417129607886779112068717485895868566366998610783886183887119834029421115670968490852199309944467902545274727405717295647259968861203874773059480695684109274589909506761360576598845257208430809973070486606766575951322947936614115796323560063861798931434118102875797653361969974805950051532395139513471111545178109139918512424554084220410708957517923479517002544028408512026142691677193040514819915243504795029093334407653497305731981044926271706189266044905341784781783614843674817526214267652596771906444311838799754816210299839804933120496256561483697720993634124908284786737129455497042231684593940802655585524204801153523864076780933897797095210644412864259229475224697967964211337638273395804050569698171830908356987015574747006100381290915789135871205495993587442521262901271118805493606335074996734525651224980534653545316668726689260047178746049073560099416210814889130518223112126959822020219961454910602219401647192866652673815689602271499356061756347121121453340702544022405628693992321996271643173165761831217937498157421485662000450599648211164811902742657262915630979089772730519496758196718819302966456312389252006360919659397648914281354061067661990803432593195449128498999324231773107401547457486479705141244155454133671663290845491119713821179238319463003173404543940206837257473931795877268597283978842420175972863444664908933851918010766840407794856880993870832811770660772265759346314260689917429495106533251845187408520990708317888346171311751528535988650431509572155812803452751640887339910832585567437395706783689236183960558091436894905803332793563452422003758390503428925325874947251265816838927906378925376163810708701246988482212166279714847824595478333162042374584085464872561863819167570751116683220958629456195391280597420793075376589505114313793250166123312646967761242786004208643683663141265230510763679046263493780447132287782463624035000852898152876141253229574267276761526595918778803810152756715848901564045363411456962009317766735069920616115260052585330729552817445897350251238585913991433187999896820419744266381500421576349978453067737259465789438033673600126492856752596100564875775386179879602780515129113332830523861611091362473931579598327008135117071800091630201292189145517177518914536820041535493120941392635515594496361607322031480437976084279546907915946842464055146798470826774879419633896667669990232235389132252900037746673645297546020492126545238195355352442786772711155649454226803425468049539478368467649594430108866578101445360810048100262265618363232370162655096041759285644841561161393669929703200686415979952083124565218766142464541362542443020694458761763177044921074348514844075113911475226804391381603263125208253140903118538990499418719193454163915824020170135398226216280605216657513885283192549674825792589951070617149876961779347123839206389509929030055375157127236003348281892265648846910804383485961501228412727098620059307240416714883588777981606963168542989670133906551934943170768557489418839080862236746644008946711704789390962457177041259854815398578679304750676017345909422457247591623814469380413551299283098581018657018686050760713454464451267948406215455197875198474874707742940245843602290252647710197167677823314116337056793045914214463489678299670340089134010497217451608706433655198586717286127599602595980133087135415722385176154552458081230492231549269680878280151835846882181079913456105897102629505472339997584595162492919545629666388739318388804366440070701570682978376543334578153899342722960038433065301484501422679796377235950464741194760003369167518573792823259357671930197489405589570268887446812425691310841989921209196799990224665997219107817677205677102629326584436132025895028232283585570049627001111559032058350142877563956931417316363025280872421191898720905772152538879864019166183685609355679834909396577992540329177593098691547185521271569953209198154788758978066420391555572907866306661215692619680530128066530464648474566061414733851546712696180969455011722976879806642386031226102589419934544406091394211867734318790944709625844487231067369690561524613344984437283590184584552710964655820961550168226543256805442364915519155210683681579977412710492764240980093889688058403919901027646181425713513769245717150115224916723612410120616375190448758112993489412281911119106975650639104699272981617108400003985001108753847091031153972520541663323602206178056401802273944648701394305122893461908404002026106119112898352804393219203443190178606446060502309275492368578496351627580374264551778546900925309316452526312811455005872773297800646875699542384234387804468168029364829389253366684618223256764397935332967055701111958756252806071609985677374848733032482142443665693725080929623690693608025376346948842448991726126164754792341525998202467334053278231872984360284190606566151138245405664104698429691162931803411543041154498166984435766059744980500101993826141186590290625051481940155067640000336293049516040795641460064962335767055088434996130718941403090088646235343678211343087675561868880904761309847017071479448417536617516897199658339630476844203159616725302825559280449935356234971714823054393633496765728923313656272911959357902934266514632463146969640333891625439104271374188408999085736739514303973061906178159288704999650924599749048202445933132143571537761851620153163284829076918896778459278079979442370008712920270785135509316631570499813237996936496304868105280929540669166949674839335449198183390269543514788004675826604084899241150927815044585299082453980074874171746842447280368201901991097343610089491484778037406860939209942931421158259244450149394097101288072721630367403271974497399761129420304389381537427129396028175012184040851533034757047445022870890356058008025767154308738070322827745555337862839648973496885251511358097610447771442621866196205749384978356947067424384218519162351987194540150444884213368628186217782204499538610267603202609469365546555880215512219108812942899089982896520746362623820074011456693910767424918443671244328636117987138589217198074389145144322530077209986492807477407737084449480079964483852236543600375509948228672037770486183166208718831158101173998832102990918247857582262642084868399003889244852935238470474418414609069411916038766987354679700345189211257443255548252877879114872489364156516955936715693483947201146564957007824005929727099057449003300741004639009968450015200679481742825541631771806466619417450237554036536846270170903765868140838955230174238030013463366863796322643869167257514598065281219318991532167168211045871160986081385271387101881499467835185204702876626518655939280940684882234128276898338857026120386839721113838660703930764876632900371505488044023320197760672076482202939592881760306699664886929691322559399283080577191614621904466334998929918950784470805100290280820040058508008312037006559630302144758715205923865086005758934211348097473517548282420132901396285005057691893700977444720404637860352289905702873487539181608612514304324163558311636017010873211271451752229182671289595114163630700254652269312166467018559268560805027847154626982785870000221989934978650641464076380936379152350849004559280957249998459046036759646888367672441609328008386587345056070545166339356378390823326652864901092555973765191728596896843086476613296629810798881746446448779534410013868888915903089865164500553137822252262856687279508457846394763459532812307808259649078664724452622951542641352462385971809165342941798027477451731963272496546846987539488349340417608315591750550375428920990106401458420338711050525575789191988067245348734093807190213312777478633604114969242145854151282656614824240576868453553088319121301290596110744253588766702214979552927682314690012901374947970146655695785901235916909127903969044717265724180495285134288083944734731433532637215139443803766497602182617425170436039840050190551645473510484380409074601650437860418677082919637867125142113053367962442269695894935029030023565762629199116441933624378042232737944254093066614046264389863032557454826673164619762075365779374613567838996790681241828025239990733387196152780522842285543314534182978230494898198302291183148214081813858851874286280094188028029240511745782286646304754465098512389966228304274616075483814410061815242518232078881100916887186442568066433728141096479787293864082671309700666424463248223798602491347962517643110798796107250192797901862932098924819803277852832103615568224069954698489237244099643008282558516202559521371250141402121915305184483751888156612521801429885815645331096620815220853702371975233583860888521519195165263040375695947807994384954799175228159208337583377315875639572013723112281330385406026511492169442974505728559141408841799324680294760779735315318063892738869248812703225179866852209393310868011326728090677719217892621144278026114277855891677462150780721584871811886578573868987530726917810989411704384498168886243849006597996865847140179558464911553484327501739230371047653746100948702577577230011361785720528659650705073020602211785286435807257263838803002594705910629556867703104932052328383955237539343428699042384750692439571688453326106801215921931921605951959492642484344278829197422672525942890287114384304216029050602406440568269487717872827844332017928776745339300532022855970796273466031243784051947531418562817412292444580261830586848669666394834058677069091702024709910230720291557846787791027031918915446323545346885390020491063608985117826218795138336412200961019830865758839431011559081219379534242993775981124260884540424601796978094162821422922646066818175438456706991685672372053720722797284451754428360345631141125461774022700237452900749142000341660822084979032198943329919986532588965670372765747348897425872818643139413615209487375732906250942257466305860726468260739145931918956791756786446734971840627132947406110373298109367170120440720983946909936132298365636020890077207829272456379143674327462071604847993703298499885634755340058821840547930654600250514222487138273034561947733298760565802267018482099214196764547763375295077155746582122374637884502050419060418420046980865555653138264260794723782827303760669033433483364129528805958965362893259305474069156138210062132941224579224566868423706636471324096935572318898638345032072772315033551392015415755008129606790891549358660284350389398566661542276999736514040253790823624130254353411043406269794148392240241312273617550561444595743048035348036254379296404028115479323398072248608106183188343350952921093821234493536564896806924482838570012174023060824306405381804611648909983373099439953676283520965087862542640708152180753130142145057264221642453610349081184339635328827758658310682136772516643548139626786932722556143711691974757981608785874953078435657633535110247965729387324459043649233248976189926519756612548161255458964270370623454358583987335118470381613899311647644242468206726665106712890562106151159690816248623940434761160189504030635069544151080982932169632631005976910835550153580218397294618569916583344485450901922234072922561041328257689965707085713355726505990734504785678361531871932918982521271264319446301368284560046039534148362256673374321875562559396882752081226717920659052520040763700130831461256741725912617142722138407348600012726099681961825038989893829556336147707982614989281973165294413166136247912424297073994655195860972524027577210456004612772853440126283327626712140347004939357738799161649108500293012243793007033506565899953538813570333704263104220229578514091979209188510088824916124933389762348713030485875684055110378659165935316107650298798837526864218601957337957566498923114138997179430426062400374647395704247526016061762173782645414544922702006914137410308547188353122522218717406794941966157155089095572851577756645204611293722351781490156263889809142682445302475606323654751224973748047571346161354089117879562059750842463556094019995197980602984769854103396284201641366150846930549056275912411666099688386041312461834682926134926564996057987943229318041560668806820975864426732410527743868059695943917544166675986096388368364354935137113813018579020230472945812852732421419503838497512396754868148237254865235428963825285694370004458734884721418631062498118335092524122921640953567283344120156311586513475317477886939455684276703536393698719301916109527305893805658968110994462539613922234085189004094034779990996720658769444436485166131574055092862573725984300282896832568487013985484069048003773295024956508255059477078681155527557446831942090817030848657146247816610046070587928298154937670151680181637088661482665940035927303244046001816915329589886762003988192372802490943896313893922980514223653560855444637506235815863469230969926227509501234440349933956542214437590489294688971859826442214590470497881516307637472573943228966480690355679990647443340986507743212743274868425032287199852450075568506868492264909240453593119081322391384598892276769908711742085324231969166268303227668227629703678663615809980812083623992138171492523301900583112530822221154974041154777358107940603081468791925929891982977960401488440021760938490579866431189065610519076726523309756670211639964291116063348235872127370758097047340253269702325344881879217769820923025596159539471323704996983666331250458631769848175329201200960525816357468290530308091408155066837027559501355444318231308487006831495729519946622100689415458735739466494984788147157933502079235539232094894453793164352501548161202336887474385049687929400581817432928283288513691998427708604626166561942806211414766598440334713582896915869355049900543294795285858420855668617942389493851482267517988605897551046226293796308273659341280402374010645072383933472394136105050811856427940724631457595029826560184440540376481073693213653006466106932852971958034609339065478773753338006940339099419802413856989636275206269004777325607303590399153236969614971942180241040049215938831996498783412673865503018730654031720932565763315754692665289657784435630232537321361883496962449294211220240493605055870700855858734404209669091301195559162353392778308436547229395361978983641046285614003313976963937393057621259676955162254427950058739448678226636580901928839955772329649717197356254740609854751233069151786045741418513384240568436377466084356818616817515313536305377501019675294552533339082964139114098314150839388046044186836312739187293837527850540678919663869519020682454376912377634287303946298141135112104159963945435738959401783935604531542925357266552018986954531637962787520399526764351643872847677245125127334947309067798983779207957786824535910575950590227157380073155135551020101250301052130445899442934831939846432417053048836351047651064024953200350970104512095653752867433047553370962934581246305653472938397004692356617275986743096711760606958499378094146617650317196116577396505179856213472236798271470497286171240897702253692130015984547300502474108919451780915573991693537133473312464655054537751997138184083304457411873663818723418584526134332907278912159772138713963310156717629066611429100903394882334384696121316571003423856934973311440321706272187400622862093402636612108515897061059363320902958769028889240702982067852126739042531588629021456783349848366264316375873345304122037844362774135514510447247626606559363612391759154987198806097994017725369675769390358088904063179706349461489806858673544538009242696894539736952383402132136740212060951058952417005585234484333139245778984616690312479966402283468142395143227240115376791305076818353890597586922286012348801685280444695170155029663256033490195152470747919687332609039028454425016860557375399580773404289604956505726395096755795490147852558645054867872033713015517928007709416131062271333589881348541723138975290714726000192875653765094682531180578038345557434881699672743989047924078234442265010740976888775653136632492077685823555350767804170694662304101225696302385850621784459089317270224474306529933514338273634786551074557466857572605092684565801133153214260892165550425925258422613488975412439006333714654458262808202730525108389196687890006878305971103259172121386486784092173326791300917452083532207677642018929424205662227308610650905013533854379505993250367794543819384173130533040618911532235172188340309045142016800590269931051402683460999861067733150010620848324353097992854355987874438062915604487032724143066718929985979872437333849872202930058890780224968482688195455069529891240139515556147935584242574876926356640647247610813952723238816631600065719070985966990374311126611829242102446746304716759150465740474024491919229009394526428160046978150374362020662375220695184928290770080224712422464606949164390326876275762503006283936501590776121002185419598579463618935614634357441389676061197371461419445953093151566372020150202920190630540124242204608477227891147912379758768295809716002574888215403809937897723768557956581016189361954429175534754365908063902100396795668917658899371230854011945892341460387265492715461359466159534311610024006833584128825879539072373063453323179100105474713035565493754479512471609750238416217897290551571168718576731000452098516784919284693305556662097501987898633106224325206712355704476984325665363024090939550340614057414974438499215124668034401387939920160026767480915878872382498484931782124750173595068947554336206010427661023382277444689709688471498323024989041241221261485923236239498725143254067200410130111568305011546887995800609729229324002081603163628762999988757500506329467462099495859472228878623768921166249349361265889920104677328496582132125155476119488624651639542172959442600679540105854638260309000829834230939681533976655824581832320985623185935950585615821356131128041137586651854823008562264116835678354633144458192700006597204999300981081268772170829672490596823488568661710323958037609980870167894157893749336135396088778354437705334427974350638586842613573470344833111493347741839651230906406043896725102597817828697712867645084452975670974834846115014254152849271803360063217227625552391456502887010863270715209223751292699816905671784928018285076971320016763423583697954760281171675930950219755609695838834001612254571880877485558082079226943664120322092383662232805466895870418509160288910914185243955268359815198461179363101808266328712539374909895819990059894695501914535181345995550574520136759027872960282487217694767409358824207301004930816114199134600320623363787686093698419682403518821737757032073038854575186752347885127599025264739601483356495846903223556448714267683086603825354768269807289503388323520217971212885458645611113866301627643447201617770282033491688542544206153306164133250767913802945579729849383413213931148370602250219052823335939412540152457676417317300132178523934990722820409030029064307934204665193875403658255317254117536242434636653618324584008742434142753878717986860479964007111559113716694761652192437660275666249585393751804223399107703487718353070483093062589198180733670337994277727554328247711773501233870698275793984356000507344523693956362831849278511872979173460364760899893187678809354002417860812616294143885567248984896257842647418952168629403211606149170556078599580618237898787779510679071874774137990808893695423846120685888343653814815585979949157127301483926186489346016843223496315588110916093510936767796026112609594988880707206621091389870109549638103882246019738018915425267886718984878282050074864865453099699585216757546301405794042236757308903826607965230007578916640065949968062501078261879944286673171123069399098500087882089415571212365852701416325409962224642622534610724151155578803078932720290145103509661205467478105742393900126536482845209158848345217454201724959428131537172768787597036279892855104209858769184678436746263823955635964028176867196886473901256113564875555537214984585395449533030069763578999859288153109133702037802995505448485653962610758831055167792516441187859071128417499059310315667483279796650787022292438540212563708603831107894722155776622681357633925893983565111456773924121681905752382714861457877575129735518630947893120642245391117561961900113572467461740528768736333782786800254203828876102443774001413870762714603814224590384156579756040991133458974845836137339801169702505142955517335070487464775968858711617239285474480121565267758457893840554156617721406789737218267720489618725667941373848869081186268658169528702528577103876558513549972921767917659725528078980465150607078387524290416081142380162744481028656717193888238236693193571133951955858505771072196834465726244350513699872544607037117559141072117958499529428659872058006126635771184430460551418257522293713408288155399560145994233245142255897185064178009994005613017259866890513778916135831059856178140307582775010655511122585624096783025966899263559481873375386917155745380336903013528388011436695917235993098476028520106624565152778686953553207638962838349123867796677174724753483937288363278654956377126797504608433300397361327401776112368743581096621868830025187470218955767730678948682656859852378971340213857432119003525192219305678013502689439129734123681026507956610395478632641567444245861691637611904462238895682154090296144922294767813540062938958859382155370791609295654811353556255928101753750921520579002280062396185884311446835389444562139997376779201729345323018328142187141633823768555712573749115765540823005696118695607634784911703002592777426505975625800339707763097946440945397148264157426000880367890311042260568604373786746910831890678710112218844058174424786999615989955386659660187111856233865623227687097368238323598777614986002419554709095311194441488550412059813842112221044004682006981234183944988804717852053856790243492397648180735096756441445552649625809749959546468345640390113433004446239406961600174295579865443138282587637510534226387787057664190923520585954078497681329900684040047334725176060700012798207504995383422285157618903545922075015462066390633762940855667479313674239661226059157148128377937191605928625022992427059072531663259881844010857120473353409827467709310113987208064844586479657133566754023109464113454784881876282094426273338806351757270413152476506140077837076204068166770582375147321908138869570383129260143581889052038184418437624851754027222385412099656138993456865510708085806051293477197327833544409658154970698929215409462456347558310681353959473494538784912753156265401602035175545015320903440420082029012508468806371609093245634164140402190486048076308515420796413367144664465534485639691369160053422166864830897625926255076324883030750344242393096744177594521268858134651113499351821455844174261096878572940200399920853659589606739177270032671709205640626100792664214863318602079677041934374780477914926844177943532489564806061693713499247410856742455941591035660316888176898258282658090742372844669847046023216273273833723255831744224108423977939931564800217588900306708200468032857468659319047016516283703406205826444756513029927198184898493949227334074803428170412958274485466575007980189298114539659014669028937673771015998707718095379508323892259662970966298480042645274516189145795442294087207932737422932771676606812728897065881646031041078414903052831360404763871755638953114966602588325878097427220948012231654890353140033241983172569613067041549456189083861587308686561519838196386967775223818966416084408293976122967576966369819072096832350967242136416596826286257390026055110781619252460749565348606704153534391808079881116843380341230552959501206143485261036621866817724944099082583484923025473947667027572746878505235060991709341534262682500625045057579265870824740446982529021769085422259569557245684793429485210148220502519114505657086518841292828234194743778978517615882654432834410983217967795311333019061984452970819470033483940573786623933538319023042366746533059079429151608487839951831788403647313356202980460841723516824931975991640910628187647402789543276893075055076942028637988849976631480201539951681570147266216086654217595686309167814196358513034629083683467901930813484684795091394443654174827958244420226312393802085167491429248780036674700650691013909730499949807662890834595673288611366038772706391217113932051401166010055971791322514149735768476806465337138380527542781366817609906084150197488781930682881129960304372472876415991976779146701273309070577532327396654337755024304250152987930819700042057166548058779307696989506367458565547207535799290614948367017923740283120342455513995207126491480949947942829423082606554132857705172332343296812223246969036290492311676847117548702371972496814206934611297391757318247236310459511569888987592961447651586655713743712604358559427834460544826586036703170365277972895308860941741255167056606783238481375073274185924385429495945506097047287239488865842408117633119132523457009669848062523533631283986877785394944036045096449667743535316126324417682601309922018317082719630595763964697173829082578811207037765996868308137512605950125438511631692936079714387161993852724292273615183508819021791202914913466264528455507436881571864009799567876074958170308670612869931632140444043250175121177305205903418851947952083772087337398658468439251909601799202874717483076809780663345022782753782978405442741022691166026706578784922837052105276542719989285433327946060153048041370803617282150071377777920163297354345393420788103504454109830834144172084192032327356405689972876941934485784229325159707879036787942742789577414830347699826057824940479431241616337198703687427280325852007139354125393835939837686077936824103822086726164482760276255657233556214178106372663928676107368804219717815151470210009552501298348651727358454949369291722682633633332578321364049488639607321284235996862438893317359669338613998310340840680392959819610507476887798483906478479738196475070699343763453785790613598987030487941346641276220400885150623291469842917548288795656261813062753168715795613474616742076869419221817102526563299146685373560630336107952229814654965395270650495193927558871220430895625578761617736119339192094135341560246934682315324502776587966658174143663520359446390881552366120183982547793777486235911411534759776697784839160649036677833947896050402323040221773299279204347399505137723839044136618386103803356898271188119181871255402669162250782463381269975920057837867524111230617911421384807438620985893472833331874082261562690749751739551336887664181500441252800354505442374479321797633244790725469793389196317953459730366930430583223623347321959905021612239518514687055908838081323802812037452741525380065562445278539624472902272666168998905886697156237599332481907156726199375115647111632498553168519390926969873832224195936088064804780846203182990787333476470775206323459934558677353429883243852951453448383858013562661149134884206155225246796235609930441800506311834280585970314696962027428203770624348584111104430617261122573667754284658239303275582981920212851813699127453804626790655011240724777502938665565378590454845669672688953755641835812942305507343002972669677999042218472303001161499786124170789071858246602653376912613488760815729394475413366628644274077094804010714745841240621099450060808275869475182303176331422264028620375839878424879908943829413170291412864445795929640066764790034340986265083932030847487134850269369398157824993029718002081472124199338985915315485456220448826153300799262505156437008590694686407938701448598109782892635845850601427673921530507452906589941020135764650343256054204399240390091899537057091444627782831213192569137283203080815609517679489381869851667776717262220887870497929986400815632122218438867005369486254414539376546294911610316538163272981014404332099545406382056653176712674725333406610746905539354454712380526077814300060353418679864312012399216589239074204481855367117359576071435282517961797292994296357408593460581326912008762841814938929495958480760894184993714872192910219423681084097043592761206244179422192495516010616390638069790927475112017715018421520460887719340652763902037962942543182793166461413244299074258965556438032472063978370957557675684896046761040566918271109241686581311896317588488001374764029486345432004086153025522003090203071191762945204393063654044662397440043262747103872014782276195270545383981857184676471791772796461357905501333383333294289989715418090780943253071577382095969605080628207731836827779268213935307999112190736020033798377905821245339013725033437604755251781033893409296201705717187604216875557526237956412407477536009251256694521863893128032453264644512609555000909802864406933318373216436247969761757904832326558478589021802995915679323504142369689454829607512732838188585009261109144401449911944520924996653345708940593068863028155671902892795498809156941356477056842633195076850345700814770855161520520330364762774271805029190125186485504133315670497565597787676283762023718332323705581381177396969671456359291597665740341283841582398635839337243988763908148395878677758725645468329490728285716609021255565981024242528516571257280527290333550554996233789453714138580519716652015914621501144722260979344224124244808036786302044344286342253349812901631110357881070741601218796715993122271553771082061631679200549370673114934037925018202237101467264150912519143181821905017229359840756932649420597411531952802346434330022425611262793901216027778034372208443872920801276062215813507960141325567360789036528371779195779349449451220144156321872038513933942682312547036996289941840258964190563698170356055586551563225449379280560812189427665613428500641106073961552222855170591172374967712572440201509644735352865648358129856047662364540582015159644078204181798880963739238738159804118384883109848824596220402016925385216876855583397897077366664581297031310286261330253074485377541824079966400939904759340861328609542140040422280631090346735464990378695125082467566409729564586779967562458648855748240536921652996413781341441371113883086737431797269676501358761751202616865649528148693430137950648732348920937566961354288061379518168719713736200082068459359345456385270016086106705842229431113954562564083719144186346041619607221764912912908604318394109111331328110004784410026115017865531263332000886179906752567573815805157129096758358480880379681225483401889464625290592450640964668677433889894468814844666506481199640440013677334973990102893399410911072703322380107934970254038232425170799427525345755562348699267054962986119344983820166475241473095967725480455175092485037428723927556041480229007827649496198393022748453400381767265362177873138368740593814482289362388221634545531545026971347142102200083051972809519098391813228646805307834897916003998544502574604537014828582493263109000187681638247219726679039373949544778823155507577178719284940463669181791569953042740314571474361231655047637967996121926908806896198680794876227404418205660369544849773538498931884739466367408893808018208509869838688155183465882217005235400567723732765404722688844901346809279641952176060988122112054743100208391355955616912640931211220610892800901320799449291537725988948107670837011081260109154838941852172830608672029246142131604538778298138001801142161180440424761720472197876327231195169276378252252523226767117116677534654222890526208368695521488171473427752241159620062776514348403198474526063782110119961671650278846640214478770054053647002677521276955412151734729180799572825505012630380103115057209172125629665281711224639082376715799838591693497046111261252864428529607616655342060349145772503230861140729793245722818151200254282311264703659520044163375728392659607408752307319911733580751144780574632137664260645386994497337867739393164084638898325740943758969667815744275075947888144746567699265066776805107995274516206534955564717457420778792381051135271854273735453943756823871741758881618414768406114092895813648508714381776739326231207580409733537952206832507071000461736320391130711164524449257387967156161562926839906050960067423945429623444372895864323920010120792615307050060923091790985243216562867992123385297358906566668147121429292121379065405051831784117534966531163219774242594112370664932572331463428100136676322094586313259903742221397847986209706032754565233798407582714734895519651015161437842730438733061085134570072270058560978152278958212461974955804445552357680310821821561549659285309007759295899419619031449912427592097423721257758464213162975910257546857767696366388077000426290595786458594781434664307591733475729751338594841391498097673792615311541045653735130445817586319151571034379733630925851423131239903631428322085072945453910181131541976839238437856192419631742688499872550202951491726998125094262173146104678479057106793704016375781652306926937630572712568386963039822370624707712603944190429222505736929706352564850589551150078524627056387188104061679393305335984625189280334262740470535116577373033315788434289510506775935190507909474191461025489708459383891184174025916062393857407171223497210523241911296574071452266676099207732849016347834276221962786066040870418052366963296025704368139372234568961588264039502437162346908094155366390187335835264479021861315877429701031322434139367983159988564069175859351857448943193165312072485615482243012527626085403543434923111537470888239388113844845394635864532819980768903434710903098265385672549609784352960453062351988029418680686120493311971451936377801218020092265623060019799816950711171776536372442459447549626129715033995781081446517030377200872918429502956300889886378193391841361034781287914758318884275709368952914492640583933939246195415734029303514431312460579826898534413754730612391918183631412654747014053956414196659742229133528543219273856235675219243562389679536866139386219907906360621449243435813673734194749942349972260059797214996508324065231591723164356890217161341198070997577088428518607635462124883274622551172815562621149484963296150706431313845428107371741233651404741841072716072463232622256094439139959596278934332593862307176073725459311182378657844024042272835439017060459691420562517392404762796503470407561240439512810544813954085772602500950610877340057161572061305131249194239919183868697524457909100557720545973285365893539108684046706878792515382082968662782011952970686638087191788540285136722549182671912007488794327330924703623674659439059596103349073351116846554559076262864422865727550953081604354154041060565257015745859520126638585202705009471612005764985423082920183901244016916923766574086660926081594890190540891883130314676472442027616788937961985826611534305543749654306478153230130758837159288856834996914243823502669229927421765496976672754989375141285423605008938810667250864247227983765361152853657479162612725661900493670916671191064051669331619800210751193079664514034306428210640267678269364599341557290645168917853765590939332858697862626317411205355102843843770195667272043408627958093907918261899999631783536025134184875153959548438247467742617983669110574927733404675847011638566382118223185145718546197796882114581236054990829319789928976694678915977965088361947311839260660833793291510435485083230187699696581750190912588570040133248111948754598431925344842816655637197482134261380849014418814227204612236514395329262324956942713566699738068452187860353838567302983501565305076996692288786401058103778651658124030619625379768768282140606229259456262635200660453573604430887086884495372887643913587414680019394153958603206892220947174627767336256163505603964438666751719505649507072065205341608170592194780241615333299513322526629287963661082570461760593298379531023995739372550028981371674982901153687184229688572422843176114778211290288154652103939536259034384299517926017471105424039492454697525723430862112303907803387512568454983915066880641237908167404916252105947285439655987644681606174020036064425024876157333591472058468504217347966487244358479551389028495561214065065849178447680494151402028744089335681487498786908752386736009661415713673115843681541378679052947233112283602198955430528664968469291779418218581723626777846311207258142329653153373263381039808307727961180241131041863638888968407828558568381155600751450633837039970855002938820957221872271753729161395749315374550131270149418217650529628985675173107384588660822039720718738563748709241927561356865895181968425402284380977138128029543528683935364664537360317798734453258567047245726929429997085344273785675932201746580824416092373542957620562640903828038140792269469744575666341198047961997492030211802303129359082111998694216678321749501457923371874495441907258351372609811248095977854744304242902800031972202704589230275584933138931969116656610224686424969787782964417670277374212374221833160173826235698397441369942813009569037069522660258574644857747666306142494770687577965143370693200731906254638306281645781000965857457155401577062060479955488126818417391293320759102446265424899938264675569807135964023803559249413801955102854431620050085209359392625482164490326713067106358363092983412257924545817148958897634422812461263092091778426247143245953590593527563172639493314380196947378936055176761577212234585329453404759560493824745895485039814970228019850017202412656036489886335109680164314650518694096222342814651725432597398925862415060854876432241554097830926101618880641576646530694171355376879611848848171172922926254211028138443950437276699821893818882507562980554578058156380469499789682291112034210008338162126081637616193335159749597554625572053195647137558792852662423919014405764990822243714651413922385006431827077768674319596143929733134141065113059244137890319088218460411404014690595749480726844049493267928467778112668088586712868528382559467575453485213172587680244742137555926562275407609251241443836749985390346456869405787606312062699578424167967830707821697312126359848044009236162888679190076743732316280967705818709832348804433999255166870888647097060706558280904547850812489521027651168025937845649029497652892814068277908134690140311619330188986121828199574324695261761421416331910133740552014968820130399248242039551531607703545434114036221931680836426652300002028846836611594129501878144186980014295466160261526410653082694661817160464889722871790691552715525726958522555189984325973280641047499455149957351223174692429931962986859574737426190879626785967250891206608262741458757867651006885259427931762720340894968128030129716012971591508479596366837141441717549425469161073715890385774144857255696308752146638254434711648803790461347040421995918154592805107727119121840272253667344685781034257338850114019318925758576558980423556687270610543140549519199575712540317520176839494734133982661925618247286651074438576073153449037032179225405825568885852417360765672178011533464150665728830625202477301794471358459273984955420044056109982794401754549654636302649268420914951546640846758650324473459131764488859470649539704490453113177921093757414923784415533232336997491042476929291079091426998942762919586166848702590287597753928563490725177962857022980566978697354608013840771255809608637909209986512045484385588855703728571465460453194216221649038930938184411101256286331346035918262744486922888189354462703067031365026844909582671776382840047036954745967892746951249947955688810953630458523624476944472101944474156642876265721514333730598073694164885358844957547655743977156553684870393401718173448071717386563350323043715588813019548105462017481736803377446431695988422752076597323896514650631449868443201013557841723748862881841511101570008550737308061538581198122854813811157759560824290373510522003769444457380603009293643574993283204621539354557981802922390752606914662490112797317834941714939974187677256074015163882150247402010924274191988632924645981029216843403787429063178937890651391770605012302534635486184603936983850938374948731125612768865074372952970450461807960014246649399548013564685930092267074790744076033230877368624086419788358932714682627116218785037581627705450124030579551397659325157361654985039913704112938936021472482503926219716355241445862697795562457439542630628946269799643142278818500409362928370687502329118734730354825747400674845951941767847367051378731219231991302249110560446508319899659633688651371902150440870386740624874759339836164277539727644753487517107325039011546670194262922977545598239948866432778654837782242579667795252518184145124241714845346711185161203416164547069138731454170284188106319144977849139747097693276596735226705967393264387522430558745197284464309135065859128641699544616548904952964446471956618571617569001909209143866068329626490360988963406324711681601226558784464304736983362395089427530899463923818768356813042259597477389564822377047294951896828031458907960301417838212573104249984335312163387769176726476452388270053497368930990454037227182361371374022973401306178044069744978208558777480737295208647526067956222983545785450973642234340007276777778724435258319487690066201677350967217533684999647134999822413569919822298159534336033084316152689300198088913135716527322390703449303606745016883004909267376319269527864887310220421885828035224374774863174761171828220519200093233852227607812349938843189898389488963945120310318214665122402574278226247298252490596346532287881592518982290592465384515990226808897918259263446525408568478923179876981902209266661853756059558374319705707396971982276415714958100289562825771340156773705735955193043948309581332416795704429574140168961529512249265239650617967080825934379558767939046771031772608200326466750075639096991393132668293703991918223916435583941102046018116735816816418953470172854918435938090191556888590530089348836053811920223318300000114933153851521843533017464886175533717131095406108260016358474131253809507755390816205801422589738681850760239934723550980056208413356132439576979802833522683041656234053725365750762981573067052748003810867470306837137036894332973964944765122958233149055575320549706288936030436748307240015624497057318262803245330213818139938125771296913469335491047405055420270076316068960646293466121163992693267008015891364750135796456562602478777468747243498631770469733993226803428448682400431352785709789108579961169641498298800523785157821834062433958686391425027766439926697273668620441680126748829219975720124124091363686954604623829400454894148175388484290105496232570212363736241217515926445919725256641352140652752237087944983975374983954881858966934772237652280026442388279743482697989613105010758190264482851621347708862531688794408113354037555290276924435054812046802346344492498492129386326382165780460964009531694540615263614167404269538985074590415314294562358198927064220928948075315564084646263309593697070200860562711705090393967677400931623408652875239600514803433513481888444700652869878677824438235337974291423316799229435422749542172879771081272907739728900124911185006128037105075499594800249591669560688342785758095292129361707303713693430768435709556178578959181731943068159098944277232119989017028476466079668755750605886182146411076179014517371498154545916069216826261509698191811482724576024994077813739366857312670237179660174939002932909159268799253710345628400488166181456511297693465832119845519623572561212619239554662480436261100479574788436941151053704362200221799013681829504961733748858182171663090809450249400247812446844633315432441989986740143459964158564291833419662659381805551319080219127293040381080709806291744078186728539291034899459786836055931617285462677958436807721379172637234051146896686063682758428436217151727412651885969828651585176455752740415662897299318696471592803654359275780069178078756242235760443889758314526150574518391736829155484159330664600205558337909490767344697788953051967834599727964820404968207664568407207174542014864670339189880569895920439348834332134060028422588775543810738349558285558569300618634192070584906052229071057925587250596791532583369426515958339945978387404742909886573461345199319704541031335325215061798548458908594422779141925705013031613187279810243513451132067433882475434384240659716093543500270213675724082126126824197274784274668039763680524416546466871620643316869219845443456179120840814596265965439522497971404631142912992993901577726192896920838377377881211240833384637111329139614422723833425437661451895963656680835591983672103802699458110857652543527296009002535936375545910838646326994652783272970673396688916805613077142685253662922271849260985882621682756078784306903170745332346753991686688358189816536186851844652396118145557528601865904852001728352765055864541047653277503186617466475647966921975826051902416953046579588236313778593350435514865921022175704087513656294144373813971966145234474083938943322343853383425646372935323573540615580999544017345148422235130891723023113473036691832694964651808131986605686642770415038205124943684460957395137812810649165424417093091509752283048799661707071862282095835141103797332625392358155237619890439633217470862026506073273446856645122114595189989583794993007227863678052479948057881854195615766941911573460053333169181265533416039814517550007413211085939698371039708435065006472036794282974972763189957832554839898824260407517522966208952453401324612175213122927923888138134171544249397363991882221831837971395761828952481307382381470792723657689738024464753017528444475032777631970189854238113573642729964947607294599144263847253203980505812781808065596367598030541961371419054550324216132308919459154873145909481912999325429529016138531975661915649460224992580553349274606343529234559923811919541849652232809615823104610714195594332499863243617973369480086796779769266355862993351655053724592975247130741286755958281239219788806593546796074413052640776665828581443870176139408725568682036629655537543936441294859681454769878180273982526762437364343654525379543467743530351120507618785067165921444906081282866711298756826988766623803465296118429933042393024066622385621496716589952634640002020598863973089879169036538070732779798022418728681159094578933856560001154571465928517030314896474202080285119645487964054422720494692414824161427570657945165427147896940933771599862876243793976017797786452279468028971740914294191212006020436555976339914267560742227450580083920986114933825269872524578496498592801005609478788813540197987229086463919893674978402879888851254199783271536487629043843763825251485018547811509635587782973923814182629166451005212396949068414865623998563563362836650068075617829347495536448803976084671644474445225975262904494615328638904462729686549234623888576596471512128317095267217934029890749870544226246690223241987873812113164059836394229896370248569389169391049209930754697395978285737604292459917506894108134685360617921082870448594347256772208317762189711689105584888017746674837834421263302397295401854773902813281858807682564458230871236816713109095169876813921121217795123517754728692871751519991082577496723427069287163661075185739392165514551848393031449037518820326908847618233415296726538230202443750596051162017874123743364358009821468244836527440846708634544451404847813085564892138036058591411302808780435277365205681380885198340229133510966355864868324913003078829375742481317823733691066948482632794635073899813624893752091713899705441125909743862278861229955605627982926245859447901546092359021126185751069972472769906810996895057192231805670359892887074879144229575835873827805648342828940989600530394131318621991569404200529314588412282227356733598550493491852462675367631994760709811470338739306468704740154090510198379709397244265923979940704088004470824278217056633676029088909649225957633851178800230056279291771723442607196840179086123740408626088674701693227468691423872226307289168917419618429913239780641254871838649923139762989663995374374908267020531012256684533561805841296550713752449301744677452472364944414360401740020456488408976611243773817900505944246546818530566804823535052139674696936290896165398771350582220230951154568821301320757760891757196104662083840394871539690559213592519996301646767358547376715341299423906762337326509159119812282369411527749430036740584434199914578341212874819450100964106381586419341865259696275342126489577010339237941467566578344294635501518779414075095240921779928058647702485223931226547172834792155096693063634259214875816375777623940779724481459321887264660086703387353685490713684777292452322502101857960237766841600362516990511558787882325507568562284110317588159144126058672503773919917139085506331265650615142885832873405425542726286405450410956409821276430113939235486598183090215215278284738097250293512635173261014681516889174000417579119611521725943334653975259866019644040933642218610764540145044917762289371392004290001156640820556464057736277648519573769663153732666976792902494610488237109282783447536429626252421661078645760429172294977693860362042421970364500451394825305814056980483199080079375676595024209239386756657305523407776220468628706690739444743053857398590419222105634819836812951419018020552280920859038968807343869964435563047543442677811700623494865366030924014029449991336587494680393803755426540423419072013652415233962271518721275760606108343115636936349541326402045688698752647767594583399041659693851965555990608010830041390178568896742689919212918424146834306838662544223900536255338447991706870415766421924540241655050084266372967808751503575688401711851186906765676026783111694632790255350794405263702363175460639752862056422406189829769198778555797741738192747406722885704027101065534412349513171069724250456430257850334525421759959191520655207122011973413749814405612776208708158003236161648214970534858955356516401338448384199563193430452143222789968439580425601612447294554652720372318720188076224571545520598858231153499461952196041817945799257204373742606442901315914812164425880537779394978983282851269518036916798334813518660184582844617239726081399436107265439204848233927124257160700544586252463136573931731834714365220413051057926579566458371757776988078108872227220824733366276059306853633496424084965632884932893802594823965892036193226434275132046616679399689247610370164757913702591132745440080159628682004664457664446405275577325462259836664525743980614865559473579716704335183740929355585194864926603008696808898161988868115448879432286053970861528763887069369003559710723264970205376887770124142183268284705826525215726133221533826796894849511583339927134078112850851317913689187378720062712295387092121367564534982493967125264014117114375910313990334072762029070652447177903630453371519600880262334682426305163143893508577264889898614285184204719791032558019853184818593824016231441515190820281130657461619912001768426392240862797638963721497745537032270574634126417046467050784028877018489912279297620382773334173390134708586895426070552522925838685290001586818557454920997754200687062540088710228142602214483592146807766248608534155928281788985013754730218983956429905452733828158605123120208118945317243285963103634843483786529414890277850208394040072648191924638425002209832001550812971447209693857389488113819629856394071967269003685602186395626847457304843900100336760498501845946281025865823258126909364852816276125313732623257447677566445060814614698200015909286247246073736398255447998127148810706220540052486505756992310578509477706468781697845399894030796648636962779591380422731815916356776111612982495594927941954917283998674319586731831691483847043295522507253414705051511530618727423651264631820747645829476676061695691696823575330790013633326899868673674207414627449181310660762933278246198215505712769728193771448880366135726989481471047959270588130068628044788747549544836317329530789518389717592381658952532491526220584847107714051486108639727513517477036586178726560598449901068862252407877312476529711255930005859992953253844162086520123797894893640678990856203196343543596059925001890698942549728113112529522564620290315031236438796547701907772640001187378666384031935905692874297892985592362996859956030028868579540657774997948452097979260867836459457273868032100221136277648437869182341964292812879795562096376873856407670652853138258348600103747294370582062763529896188449832539537701400066095195455916214477410642706280367316432488447933265515585451621444581844539222136844047216254214803067922496469754450910901918363999897062126429689344929308041313077808176041752190819789717522336358668408140490372821684061939583649383931618104563363145613406895901354594505879787698776669590058444788071863619371198113180011026266108311567581075537190374876373349856112683908508367331714963104634306629561055557918487742059143243978022373713854268921126058726993622037180793431169022284746105785978986258038586245996315944201339886500952891159264963854229937165905025414749975306915798785571334896282435833820577466435096668498623120018374976855542705045029492223567423314258482072704575769921850533877718906629057240141402409421549663126825038773649795547634167566120812174572660371246744460719561860797792034790323545332787696875313870787122195551250218327692024080224268951929392267020115655335100869418085748917000776727082352492830798446183055254325625825157069458279570217784015824288817737048624449431095952314411548849090412750311043805151934191754569474162680421665130219257496768920792833131481795085040957337363370484166532879438759980741909804043162799907228273147827340265247836214091411360850345101618368717761007267410961277313015060586994621391809876837794952074341656327289523058608933556554712542378544272328739916994615499997737990160390736383551643794423445644299419552323915835831283199006375969633807880103466920969765806541441693766325152440268637296633737552959814627907242494402418390654565514964557356070145099712670450441803962538347855672027121616943548824529990214942727447282934795218340885756619007351220250379272815249742668959937259663237742237522402729863777329139176909580876009867386246900696062665853637064699455664425626637043449369713175008503297764692578425357689443593960075768794944355151434632116753765108199521453388747781594055932868165555316098598324163372581663139067411711498410351244845725560264448544515782106758939211092736143994188578920372843937071318744886691533191880517461828542744874409064871928100093956044981141706726033905878847073653873599272558763075012499515920387284253721295654039571216690553251300931537946103433095116862854878030312722251064515587100966465379975788769989136091827342828650258632071535974611469499569830329371077398450926550305643911804703940426297922812889440430669573032446045009441238153180543863903650151473576101474899423384052879636574266706022343971376658938380636882443427924622338247532039303454941573773244654064727634798029231567913152396868720834557471899502677456297601709663747069118814361231963160155184079102329319146734422072680778483618134472397152329785296834733186321655853741889741230954119625461143243293601340441647919304527418991851784389231455979885621014797693046076037582033666062586482415111467644494815121873307394121487929722099330243209972864798927546948620802007689753792122262140507979669679289619811165323970066917353241418198285137602320989070322055301992358218776928409371781541605772359893405208799435701408145953134944619512997915615209738797969164181637451323390622938313236472572293554987668340871075138412896454917567723614775895172205719398200777056783131195585211644982704195459101293380601858698467342968745177770992598587557010391772972998725651762060479041811685687030054907309866153480870768751847988443434565919803415613798603000601808967195153374562706425314449165126699197904079119275486593143306811182970327445255082840419019949235373627447994385851692548083665169056013213025759417085085390029124300711892882643340263665901482393326186518838643350616055344976242414966838910373917042147607596310337460589210030150401356221009976163784200416825837128256294642931981087989618726373165178284680194978249807812865366646574580584888011895507272262024261371199032588131102432936499600252049922878834534145179016447001969222552163569101859603635667089702944530816753905429592100435832887186743267657344099790872400174020620711292963574927251995983240956877312582857155520237552264899391546913809151538889289872783820501177462865263418933831741159994919627009222488768722038827354369596438181953983392250659616461697179295168273553251995476309862998981270882821574474897828997079535202565828335083453434519568168533099632961881404892679780671286088889634869902146775228152845146367281352172603334724533133641447460055043216038602643889002692493183561310638435945088773382078101002184389205597496185896595302743025254265846722842535212134376322102551875155257783386122342421953228794523070549039532005010076359172019104034813144406629763044405190226956579935711621635164404025555217983525367489689713541748308921126658812666594904334074279178001161061490896687481224910713454868145581898771246355436769540462713715105655510341621549480923471822568260980153641873149234562813890973988020443271404300908143924817942160480282581463941680670237293918755358780121939566590305441894629489686443778702023921787175912830929800232212798792182377395768325480986064547121924769050638789613748548577529995794023688122940023434322018680772952645075739407876976872309943756075935087095877571322823790988456519826585557732330014323183592965445008626912622973012660811514859051463056187189828267313680741952089659282941771568215403762259512514096781216091170618831928976047512972806463165872586006788508247080666513752484640970779625724206595208836521769354229870108259061576637432382015050287187603250541305798182933284474296444590883493374003344586000554213254819122849391877218306622894737664063390304344950049257815780263794551499700485417700391906688260857740754694122669350264503946407951602808534705687560753582229549465080152426997088075469931946047332001080730793784240999567196034162298777152171807916125278871353331768306759607081626878406841997930668290101914897348611496145942501899863755952666382571752701483267980374144944824176304219029212885179478461336669060509277951378720961708626822002066183603737282283759728361767522994650714514103710146753922815566440723591797868213531616795029726091631859517244880251435487803410742272129831537180486178883638387246886010451910886306037426603857039187312206957521295335397139814917254733245676385579029087670296309251617134998876674129180023693815193070170488951660874064928615026018071736356701008419818476964243166398183560330512315761859994013201827435948519422713790388237854171404579433597752373434749649131500333485225320705287281401334376745425925194573450008024750416462230663613346995564482034890305329031148029377054754829717787756660313129949899955986873624416713744533686614870201310359089517586709133458556611762639781956701894478964076849395002761485794730166662767539104588051206202910693077514340085216505570514336580213992698138925680023785663165988909242753611039350818258303897577041174813178792651946185000856782408111541074752278982181797689599582672088184823649255822115498058292973333187503558304475264539813048762004942517425646414008801567901506780610573222739266991577678565435842905762994127909378562406483642513017317342590940640674438845187411494614198749221151590588831838018173666668974600877670707238453709192018848629860657440158578580395190833700340025535870827095481525969616268010745584640565222800407806591917984236938124156410748875893206158953160850008502833541742192656453246967542756475350168037630649462627883675150366576289193230288970969616265908439806794682593130609309344717844067797329938020957363335904683273557711648958738411580924287592800561365835641392901241766064890224328424542921924750273335288801502521538471291244235044430311809394469907742774605407306111063883698021150353072142743378185424845262565317042936674241729097099814247557817904974387101078272409202031864419020180770555028892445044398360659944469095382505923212866552264349928459596247113750063293628548843698957242480291929372546500888565394306236718639428322389617781631680996302069253568401331422480437783940321511988201940586306062209302046900250576879231632574402914146041126855978323150561094337979278945139789749034773431984556655761163800473172461008543279456413121789960715460090917291421844981283349660261121223001704842599912605588107455494206653378802963954035257258558133414699138168350777945499679847092335082699603221869497765274668000461397657186836952443497201180636099564026723437384339312037886424240751979243633314997110427948612612041532846282873281790385358559490774081253181839526046270693534608683904893186068008503687279590650904854978905500623254682247883422014873369289012924813882452196539783397434955221463839285326948086443702186583446452163529627085367240842773013676471979780265313515540906295243650194256976238707074566874842718666057669750714881809875352572952749342436474245550123063918554124770829698110685335541313925771738715074124498184701648770409047029603832055843991314644811932187720930191581685379942059737763605527655963956335411285406495942178048251079906357237901845636041151155973522203301670925624449904675996356518505349680831959081838019877226037341583411007176665668705486364374097824038545035685612466526117320927091131525304960351420452969074172693642251836688210476312231086177919634360506068227167313975005753285323809442509188953361818726255463775573599748221887875054121478047068185695871387429966791007188269253932225819309841692515796135549890576239271957334700356623293895668315863846751637286090562562732651625235882677316632152194170746496953444082847876577305331981932098226007089416643760588829651547598702265226044501301849641859217784250369428641153289073179045991999342027106377854839117353080014606378437091472979048188957572280638587074642769802640519238944226954736995212896436678052434535003501393288630170905122495364857817331553892628069549517884178199114253723086096893858719054629985224804954490666239658388901087812081928255240169697993032086605376009067947024764140520449574809244317031491763028558160083862505954432325935667946795321813963980659195217624422060384323377789284538102611429690709727348047714674708559946484669091666155021178789480761578096861480523574612688014330064415109301638644108183281446495187789628346468735142830194370795801977766134418227320102275924576357841758707418798332821624809744515480054000489705329962386869339404665330993956615644376573648458796084368901931072135441125742958279549855029880320791752713764310080066575701705687937774563779762911726677644108378020782635692310479295770162460527043863476764153284955758365695020719472675158053788638210981790087554501048336004047156619098066234727720932603221161048047170799581947252457113449403552071252426894271097642579375315749084935378463243995855830771901609847788988676914614859180634445234869785444916678636255186972425692992778198193410333261325739230079404822072232694082380699198770292973981180318530831773934883450316723858806997723931498587950266527669402091843014423602661750925191664615306344444702534467744404969371474119555148525558718622864805778492350553725038511727370137549508149494720483977289023697317528046333577795242771532264671187084444184377135329791222418858297757743351501920443879486163429796784301438862200942864668543694001106400766343788244621509121382190368601917522711765355716518701590282281032847454018055738127637858807806456951851579695006114070562518275546260178136480321949253065214419352513411988861364530872756860592758190267321880836215447662689932516424056723929173136802515469792879284962922951377024540613227062831965228064763156371652211312761562959034500812286769206670042761934435087716495232582843627976844001698907591742934289765168783053444448727095064250769575785365008536687821053322691565363014183045320401612828025990095158598068022833870444502699266956570825983510940626135019615345972495230317389866208364986273150813767674425825790139220276311571271352047896980902277054826271544627607577177232944932055217213775808451653863943551631872141501032621776444400258162852932054990296804153075004624128787764457657594059861398389215303970129995402145747579232938803170547637672654271426060646123073615507359973733760583066668064318679352962121255018375288713896572606251552089852052043569425948056050963570523123515940235958444924447826419781288943024648957006528067122116739311497732190022274298090820467334169240576803917623036826182220552822950703787907194475785509446902336578328770962610606607963559320896736327926892291263709736285865816348112853330376471890703676844215454145273910231440020190787968607224424455384052121108884981396464654940222407325915830697930409953239936552514108485681878894398917075871329103496405237194950581419989651128653963936189713423523383340178428307955615999884702524500340211259353116873509778595733243692195010623976669862622633335977071621701662654684716406904949771283649002697063433716951890825619509609165094618877979088517258580952537452791223159580869806981689478529367536616086355916418019554005857838962151491501466900770626525921042288006537694255520308899801986256131450831621356153550955265244154869327304883505623774955304295405993193930296914225120302311180999621205370751591238645167568180437286731753783460640293778529081147883512267484115001621451451916533594452880271539392890465668805888352614533499982980069722018980355027765557275822981306256081254338296798426033386384373121369126046611816950283916411372109320908775340174289418648264696396400112459443066439849927216571203838618489340279021918304639767208637478840268507488157902290053230817660839529590302729267169119218891081949735616972953301694645848125450113779394058866907975971673273572335106456413282535608401898405180189380811043920506433933063937666772012944047006788937932156605845880437501411633191993204910602607926327904505143247027532970311337352822060241499966581857564401234132216864709483961245752056420136055918660392529847170727663805561239038333144873832763664074625856471642385005041203146858968394603850730555461000157572926176463951207639434807796038750512718567667622757131706963169436919493447288820139612066653428849389009142965789183072207880673419236660235160576812479762854005226269453933579527918066148581433844591974046241634798442606926786280430761466013544281219273004908899926525973897174287911172576652040922437632684334060556691986642112521670912920078471536830970641207874411803935452241843547556519040632885306176401804888781453737501383747673708505614724091875493491972526359860742122418925061172156611554127595897378214697033594828050840392189289511666905631254682585497335578600464822046471103759671479747354952550714620620875299726821326733864235637266888384046715736688608127845929402982197260512847398467917767385605773362211088457947922118620563982299670559711163551437433737227802648709078298674201289511103922528672937640998740818802361455794703924861584853304742183398414932634659336107472266885015123646716550120922515044310643134943414116391711135777734553988263080282680038057005766232057842276697323014853327554725475797294573776947552506491823231502733811313631594130157550636401193648401903668956856748773882397911347393735653085028463318290171256444634807584291655923077742997544740309720704740924222844464269254681696415644534781965314121650449295774512513612627938083509399476821991224977486719433164087952502758882284516417720665082203975111949620782405286236637696707761035700071433685671364489453430367487246349872512471349575155832477829502361963492101328463403306985451923411133346996906022622077172439902670203694015518889701956366446065415404266031964392263863385865811256773528030115332902959815734028340926744251081745888493223577302241087668861824292350826725970979689182965977358097678688000674208828350964029650371860395137264710269567221232427840727786770525535114649631747350119228923581137879791247436163506190543800265190714082104499934299927039767384087891370975708866299639138936761772851435468824946480219998960827834323613706601941034969569525841449192771436137376299327077450859398426554364463992772409849791570654850266070952029867576467994544464410944657716870272096246627054464085446372292447716320064930793418615089610509884393052060404344656264887959350271804293811826438525940403939746930938519640074403552845637941929281973071982845898879456806223548713410677996586083999827123100872379224424640260548095460795689809010781116312711692635961481769132678778254905969547910726382618805505771642694307008705300111657126636810715648945486115770544458290255482308176411566240248606236186670155488149986618223858526122589393321784337475498722562031030650151174887719598113522094950521149557559835965288261375094466659832884414698690759319470982065960542981507314775623732790997760873667179582749983051829731936911236723728459832270342513247148364789384028933934597030835071978045307187345642080168418779705676279519573276511703912838645351410070621012623978865207841795537184528403212192386216880266661436109850427315028772440652046597533680107409859545316196360126628620876594019729092794928919484498514017072691234885366139006833961011592821133811073693050569348302527007000895023325898331917121077083835453967719313900722234582468364333367980715117032966752314680014930859484417593873070916365188578457639269469261625361194687033213095977487799609607014375385706740180785732887893499487162480228490389495697624429312622159465900743593241905216185810871532729729816625167969712072441288245644867139493708221276620238941296045944383640225201585288653395039621436896020617243859181298600503646134233882352186292555768694231740075980298075414209134831968781187581007157516233377760983765349021712832272016094675608448804315415207973045435225052132970290127324368501464893412228492361645814134002255614243868567671193690870302301221013672919984278774639395127983347218236897205868440544507276943167041633490955665552967939388036747003432459634101325707235589972952456301978286496746770233133136795806224193148128926023979915309411143573173951419333096696163553465070418477670929828057947964722683916250132660243800970968308101778295601779084921506875908249575370950856393982357718713727673361443785290869574140137412632679696744759949223346141538924886521777868341541298749324523329730408937043851463939529789782806456989975326990675874288864120867094377173725621654571291730388202118586442697991083628823279477478938664427090625365703197170677539597750417819852136760941055486386588875480867729388942669113876747642151956961214694364836286519263763048561027653565347092510431868584133981642121877603397789420279659085716136226738450637705573137592286080742549427072515455136401664542656907998412252290386812953012926299156956000153359803058344295925777378411866732612151200967681159627490639801077625958720324202246652360687850811303400237967468135261960150173289993492618289669321428668245615107737681336327990375513832826313843138004110798873817890003878535813177967498101076064113183465065702120323068347434636842638637919536046344952249370551526735063743500154360204140743970640646545667210259434424102629783549947664863753461409758621913371737271960083230367919375869877601254439807176148936966127368920497423528528340266012976995410871466765776108042399684508715693336696826490140901730183575110690414027021113637079854980582079881045350530233342823680598656600308083706092006607606487481448374596561066217776494126571235563885533446715786985998433651193300020867135169953365520464256312774023540694673581484353005017037188331147779451017111689195772709877118182113672132571056247012584618251889757143311920694316351992762827025466388755288359386673933116012226570307932978493722574536005825282788347493323913555613146061207606319850723933086551246043023206826222073711049553158838197362695670107462640578546315036147128899714000499499674348049692135912818297406429549287537034025001492457078159446395635147837841666160309887934623069885675678224426985968120482669330505294523946650826273668494016886431530606304198158922270752434205917737881107246483757044019921876472789737116614308116890591222829566829639195332140740222898732590583909110960379397321067253075690152757539667176036490814665578922039940337174744549446434790520957392775829794518567622637264597419603465547140956573808260547566009342084686806807591326616696590945167893217054594257823911748905333025944111704249440721435470609036199863144728447332187058275579530861290604836639295766824891419045415743655268031883590649017875097510748511772213262148356305306799868182645979673796847956069531937713161188891583054158058809505020131633066509662944824384435421825298381425806526972405230546586304216274465338594998770846795031127040280352794679572482436531681725994901048199037008296084328008716123254783418800346695155156346908817099289958505236684281914834400197782746459127080707309817699133779636942920904503307132353717101741049000253571424492862795967143580110870298067219390329547039003093825658331319844683309267144742567622904570959332336829866920757075168352771856534175344030512020012374389421302151518432126500465521473910733189637707282570627102191171894707519199171721561992529570014016174041678239780782291699492394171462542619042188030013551774612293245925586553979796448729575962838914634926764588262019096104396698117561756534138960488705899921381319636422868461469628375197387363481574639734185286996945078652462212889871032970086845983565573761250145611247709242754936764814377041828827188959492194066427986329527303514311943645377540674480953498486027030709387279196800471525735085404749660477352826340137904371912306355397532110860323437534869689119184573676780233002685159426550441273255058247646641544258141450030103409905646010213838302995771107902951717418750915845329685779662481206404914093290702323905932711388643555250719821901116095246396298971705490859216919556735269474751615311974637988079315948187594851325165949234520805553282466675821533862058730624115507467521772232072451177851937618260266849289886694360482113001885012429679199453216416541420406925119169496100159024318359107423798559930686842674747095236809747940067168188116722789508056603387715508955880135193657695154656331742344076470649450663167417727060083911207692038742618730199840142382418133225836820517131740308549574918829524219122899610719311457277685014263183385742229577023433102747381036977294127666338138296739554670647139846913395522517018500861431082696150113666918099933771037859313255522152866432414511717636473937979385737797452726183138307183761143422486085115890222203433142841790989460060172987919550656063189164976982769191075495163130355411173666636875192809339290943404938392810217455238838758634652917611096354938091381627161824581750772866425410340282271237311414408181995429497703317594973225630714863013624050341747292111584573021459642171869865070602029848193326284521699093803018979166912848704452454479840926345708027879072488844688940193840717047618200527633900748650671720559542349596558375782172657928831260977562184412622124394176675980739716878605907212979141001328729184288037887304261448603091913294137885056014710620046608475873985358876584424032570499927780448835913689082520291981997945162590968899504435031669979841292920821422408482005263326025016264308227187267595379765887831999823207427473533102756378132443087718549802957670364907440661440979057017500117462302246077128957939472335911481213017071755671240926593910203087387463052667787838351293951782821835396497104091132510212466113451906434415636568838578945214782509036211861754660644861971745298934421438121333924028328529738871304575264426714107470722108657841598933629704746859927499588681504911733296938522372165591730726343094140629202620786030444459618128140931530741775693151752558291883178580445553478504203620721127014995991806407981159714223314546893929137659517002833694366959408292373174020947169310786025387389580449306361283213071011931724697663957790494498023894427180965171094558448640749412861553665044826343031094606980733030748801620350357059209622015657270531119729949534636840888677503177880555708505139374545075993269263544937284492639846890160606681127356947214459778792245158704334821377130497083027133957945137817181693876947317266050699218418154787113547178346216273278746789176724628672811363518111371267169260480329187420252347627094624353277741947026268755748994123867736120249232174198903138655141300663948997844762808475986165928728810928453652679720343372995064892363212109420953234335262091778684024507537216502357095954081267209490070476179413223918847570767004210807562293035201500037914679785001753773497831121979917219048886796780587949216255875668931826012370311757354524277378464315105736563996152113386146657367053006721547925899627981005731288359593976546008416530732003669231914029708759252334835712602387418738925797987874312861742201970773669005562294603336719805538711830132626876546680038422127267339328579861630987653173836941807228753837157469780888445514913623393076725740025634335305945186798552847383250041653168660787112986882044398724677663256295857886781241293766176974391615444917370408989999329234138209269451614869093149927478117270394596274401708350414090024654987522773319431193484959909818646360545361009636719956647928871411599699065956186179154522832200711763334532718126004951846137368654060517802230330565243026261911090881755805191415662549098425463919675967433200341882236160030749134766961970506635782025824282322290333880737086067486924622024318394551713957898247521612483040538984268269111603917799955474871677089680114604179902739638910455736553085136108841032789771808063726353602562830680268227895176481668996159655791736114486716655063327199948296570526931429845266942310190013246931815287399019924234655483579881459728209980670249016093832840089797255793427692820999528455367777513888835354110381533037937878381187020559019907774035958822257993062945397312976446072192010975059583908966074303484598073225705916241619747325946886891147663513981953500066667718885797971486154704099416375086693591733846473924590556572293665563703125788288402816806498506598248491069506384291681032852013341502767272413822661726230856123868537931373740550189676042752521719907758934914396725190539964296118507358674012112680845119346125642457062490417747151298658550135839432719467162158961110454130418175114075155323020171424095174991194714881136964016650891415890622287473004932287090481503376698920262209577473758721318821024075766604384529157280519616308505761455296674656857959698031264343394247664491837613016580231050643494355785516414284977337922507073434459044287309714968293591275946020775724771129576324817973392735324370105350575583712149066972930490772844723334494670755136229820945964568165636361454188243006369954134390555351254369133565976946681098233726163738052778001457740951148568516283847907104017493741825824157669520306318620119949787475979860634289497701540241916133839976164436829107478674259395847940390887191764302763597291223197786764998082688204255708099432787097606388503486936389016801479692263066858739028537479629412920965466457363592623928243279868106876213915592890865061690939404498619273220580709800227758563468667263885270527406950073206536957138714323638853269706305692182685591427651709423139315722154591617952092906602003951164660369895742834680147776544270292514912945076715639809534970151331292419613818259714282073101666269243151569700598136367908795632023630006178513056932312592644634611030969034202160785274965372069770762251321472230085569899879926269158560813305323489410280555446731096335283055880056167780586030665377525194823783212922641536173015227800975186326534903273104091260714771041240584399574176701739640282110719699885568594630248339267862332779341640954228713904451503635219089010917246150418659877555573985707021455284185589414593386136891620648718383261300811357405611585257602205571120152031469452194298354766166430252057115841208114300774678346334235476393132558229082658127820292451336621513475217424411914194021618716090819417742165211431240276319065367708593775208184917024998380428133051152495113308664950164909544222473874914788788943722821992565325098058603353362105372304073886968024040117240760054942838834007874710091176279496186875468652401358796334450398451828430543555679565372884931874783395118708803976054398121598967175484485636434601007019254109525734791048789244951410123339759871400884911406272844706151104249034625006653857676914188563723617673403648945391915544971413108831941866492628607628642708519443133503415537959266747866786571501755486483474696559607153643311773682582954374278561457911836845489786617473798144080961174552122371860348870861049079453783407496842965017991711855436208944808096354677130775140792646646294651264501990153307639527232735783467111835366591764907341265651583274038104869736160702881862342971390467532772679420894808998691874919556878922531209443246371005457700702088244510241750411051709498705202295745592743277082783040247557370327146831361536527123036643748191692624846950133418914185190965779281395103153282726429770833669537149181077254484541695132901105033807830631549154675837255141897473241611472954363238840075445980907545890990808804849056113579398814564166724539669256448746460563239921947340136874772142040980508386439214306330309630506307267196027575852784814026672323188765138998306703406101414903191796100758855738275488207483453888027680039277370943766817852776411913121944359500147664729047022360682509143411469472621656112601102553883785159430259616833164720775675089882165382223906440813023777510207411872565199138118036621577639818831864993843426980211421741791362333796188652602229271423586725880680255709898439024956064910271202074120212107016541657744291924342958147342014276943542214385132106695535923431582046769419794074130681746401028975735593853621576979982842979422874650456778698351518186585795829467123383325176852428174515750991169599149727478776010025747836683216917669263438851634718998021597210328192929015289891946400084452650427367362638937199842564466354252930200754292214395843209268349225411235758907618753102016848198134017710355764051635077857539699654096836011902119723164661390119159658394397201961318753728428443890198616876853853190641313990538091048888907735163294253269777031803575846985087450465657897428820015635322992697748330642423339708505286510021416247567862123985172190973004499577050410770010813740396276902805601110258982202825853195605151248277992657769467634380969930962902502313734356685463149108806032394813001548589527670173445404319810912575208743768775573241331061622153878493184523150454845472705432412236813831417147775558633044464892917979942925278067338153181017098050083736470170321727978266605720907112699386727780468846893609316071434718329001090005547482930862880568231767402744804529456592987102916261521883079828081168664730337697249673426149742336764606689734681871964450671679909958001607144199694534741710657969944251177655466985407296873031916639815325672610966241579078541181775112358176360137465895482523502687112561291373406076928075020189917669995931417897717683383508855375685483073656284520311473148645015944264599708822509221677855885233151239088347938102676196130182744567823443816206443479762856069029056772838704271739192047763792252249510064466014557312493270629073466826669290686426810932822619755569492424871176356641325116985382870193494127709789033049160131414512567653507099112349661188547405483390253053352775348559243214724748258740022154902972189940038011000463813075898149468000681031159547561095349799554900718180708383028620546528190352408291287383397977558695694279683015134191526808599437464743331327613642861715795877290057033628339192418748527217606854469308161915592233543730178018572229955474072040406938511850837058662384040178291138307075124499739356919326053393193761444653635024608774295257493509713154519456941771744197143431643971401147797271973741643791694385189196431449671739137158896078638861490838500015956853027966230745592682492766149515473561152763015508562015388727144707583758692877327842964560611194368640820817612898537480382157049677285294401533162767211000251881647560573370011970752361007963247540077748268414227166904652130681954896393750987609848409198777733214466479924841669483432103747900897814900981993562623901444558437538053179595124914179334001058659238595352778582672822018419204156120765885749324385009063026005784837616219360687517815452613602514342049714005268138839549666407532779261441562363576354638733571403991023765594487636236890338815192452649202175021015469703424957109603445350552489172947543860961802021149665038662258500369137517397144501818105070062512586199973461635487601276552238852770162847855634355450638167787699706060401139469364287305501045027730977143225889484797080543737053527572037561783615363682596160982193498358822135268198038304098706176201799349894127782755339114513842126345383320752729020138782757398753804036073936494874775842770226138765629399556408535719373918326592672786985913705964157079938383829915518235346195439249192872525654456613865912217345766256916619855281900863173718357118869538996265889039721147758592273339702294118198621690214015777393474431371197490434902881281450129259702764659810394222628484368206698508464599467091691339522120290420051302475785384168572612148845046336958185199440024930883364431693648230139359515402904794496338337447957513686165191702664833191664732303810540180438196545087578092248767862181724134185978530312535083513480484211192162491108142993366925689083480294277007628274324232140770634658238746217022317365237324034112526165590705618267210560372882637843279251125592100864084846481315732948910281820844811405053077708722926096048843289324644563336055524198638909910830832175640878805261207063443578531089587515127217332223357174601122464741552587426310990490648596457269293901533185347858010504846196848442698499649250911511624704140725455529509456183293652704190541416419272132717156323337608287070625653455647764022923159703318397179378414467986679249479653799953402612091181707741939908122098284052912717043479824239405350114801330229664297659416275250708178324539619228572436812041290516784173486794805200470764249928113878720523581806904948429404630961584390985428183879430299019358746096710528635010939182923849785496891113670677899666964503228330396495329681639501734734916251672820055316938080937767877183041693084050328916692597028341666952110845787532738009610469426156499916235447952134589271532412689921178178355414208408354320464083850459167422725226459118142481155236772280530877644245951068006796060061853984079848169791375404627591371140847893528100874350854764706382050849242585493456516600908715735091399192161693644035769009388264182784917987656290617330607338215387435149207199155336549896622640719963060302847464397963374716361943234001159241533776790150219600282679205015988735419881083653979385190762067952478392572383035277795724667391978148418958847853609310414291370762352615555540124565609868501197496733334254248003040679142275499093987463383262075118101566124842170269979350104962117638031438623764610591266298722721773248223958349859929522003244762361951404468479122505218276650857843165784596274580024137876823115409997125923276164057659228848756593715691515248115128021070252384367945976200452981844360500348201467926550999966772136877583026514211256836562444684791055819919950954046988904756555374674914230146642612256484700601908561233965271082506883771928310726128778988942334505435268044687956627337301153173635065303153446341184370825998160441174037398840576828640734339080116880668999872137095627477584156408688075368760531431286620109821560940868509644136324445933157534730730449666901578899279033303232653973400732902021695032526665109773994810746715220462358778671646812787965684262854527099927554697751899754444249070366208732859355866454326098621650958612526411050730469947613748682215345744638145590628819051350604559839738985079512168500159275721977082070216416042337861354261229277857288550552050835480886857402521485551727923112053095579259257600350017182944805818548528067739419646980224259342111905147314451252738177985473089313525771962037725586653442056213508510100803421011396660330990646388124330023708768037580822429940877967371422219583870789833646432982982952899802365743246673797518220437024455685752148541417088619852835482637105549169700238694875715247170241393449018041515281097559271874278138701911294152862612958124696683965662447365751409415717099437570969533565607970278451638337567699903874438534843877868122855410565714429669454317795425442948519145054668162573240335100473451927209740344976219132250890196317562963620224446986749108973683813104923855521349168776171649743057456539798228261384378051183206077809794878943011240657153841918730933108951657701811406217975047678002768289366680346898307534754577161440151928025354965854565140610310089743117626056395736416322193372286579020201328966878740961341335303940616666080954518521284598515291986729450299898988693052990653213315338410217607314811222775402419050176726007967522008189617692766369771668328391029832095511442765070100287653415097224047555991564343166464473399226457723938207726616327787847194367480631459539894881831702051691190533430135824264166789671141852116944480912617606589204963206338264409212751560334514313293513204711865699679740482380130669012633384956789783484182388425008376011701284702505248229500814344166192161145277244273262470122153895320125577919204054219028816317231334025986630414896365399314201118639284176479493586243384423135907230210476166533418755958248235497929005700989923687954985372579166001769145855656696638865890799795228454394229395504778527628934953973938454242032527937282871921761868325484654770124652562473661243937416008970933168413473280108240197214804130667373724855125041457880128762768936180721034707547446826548442845476337537304898058309967949761633611856625335184900558635614363812110101757793829124751364805048806811677958153519431341233741318814307156691822003523286177909868288428670915463126394574042309693146819360906522240135701937556294797194731741439508314418372945829725458677068210713047234203495147367700748542558178987567777117169005175814439322998329625097504195055360818829452473556470401324056095154114802372751430699816319741072637622374853730885342952936792704659934399169722748310479357982413226918170888007824072251944531606974251534526234906245809784273039804164745825200874411077241843576234285881109193790788751581743739378877348774172390736633866752931090029817681436087618645795184678503807810359631744134289238655176709713754693299161545680636837062791450592553276210000222823852570089870884814369063605515019067831945887507786395988917275222594913514343074500144413453606244145429515587023129421385870849124532963417060384670253047668678535243853831216501734941366904676111228714790812061193976966658825661041393693675127661162754527417325237753552233426223070076228141527155126833246800251438831648671396050556149592376007315156568351875165740056511392685267131318964839828266750175887390719487809489307673656598426035330111200510326466380508413716691578539072546481459635028657977791082314858398708602348997230927871646561381104235891455902439021491820416640995341576510770498781346018370464753926850040851461641962546600523959169947153766065521424114934270859014610776587060455147582324313643765722675513733673617541614326364560037333135552731555260383153206156693292264262499085704164697550586850775121894580002547029020277981435214188523337159439498813559582297264422355585483595548808529100006909160497506659646149356106798603149146067371574312229529996025706165768829357496664853115443135215249958727082973521116389537875119794780588992998415143829052385832661797258560055419623072871355357752997021334549180727353095493124740627604258739303098314269339984200121987073475082346274244870537890938922267636811633695115208589892066228634724558852619625714678619380039829960778632777759422351941369500664519184076183080287054879121285049058956692323119202733084255303377246040809964429913480559420833521318673786396442060770945453697137503737202764903513706408604364386130644498377287560477663280459077115560476178825917456549018678869381843541705285178701922241310883814489250947766073569835957397987378342372080952115208838776363530099712559421065430727350950076328390131121741887257532928686440527460630862133437321378708059262763702406087558662949775029657712020992729931873362313490955631350523211026900497262695682464476741710035353080710644526164105624961933102995213167998328685611619942972498784574446790614934571459960381545327071882970256011492488377109101480294011896955028568418365599906409418013367975610153232599259768945568636354806817170681180279663148335239839570609179868864881231409791114131609885289988714948330776070132848759175782935678048192627840908499614837831522876548592616528761547982027543283894864571355116142798590558752714206680383703678166880813906297593471390005213549461178461239536931497520192811058710821360157065938046777853477714263643563057252612462910987622802005614915685590495503704470822583338194115606339073691834957086326818149463234611115919102677930445294333361813449825629677108607229902016367229207604103109987955358613628893909878324218403231246692092273289321872455852618800412799625295069135954304266310952933891818667868136361406931045766003209084024260452440872847174573820523923473188828719427020897692288119737812745744749122849548128484952223188453048641528936425512889761474763742188150940974557781757147026988328468108064179403719787334924956743064627685193948138570948739818040956670252075006247758033743108793735044646319025328160668089756387814480167467045279736492007888840573477846780121979693493062684076864584480679155589441807888718006390796069276681361002921259759671888911180242072517322264187251156323036748743705357502583764997863070467800151048383155312996118990111960966633836535954030813802967265102650576541582782915444862607936752100781934273874799142553688794715057375873180990651585113341297152293734848359742689709792739567501708396582036075548502908274738253349470498168546561041631142114601833751597246196693208461585674859534722864966554488863707399129641159010631640962313842409240636085126851402080112680683385301854604546652570670599880663126343080397440941045892096979959646498718957613512919525220459977432799872013126006043502459676290715274993195535633034044712624388811109348548858314496210298529094678401434383149656219175734303673298061275637673893833636196333975085435767969388941336138643991756220914122032947474281719886056981640857171573573279166620069007644947589166562212093931212642274764889498358733217706440558011976695151299347587929472004098921544180592448728388124183216170055901952500553487237854457982438469968526577091686841436043279808218233425265096426598723277649374997505419988878374152165950348286160329847945612490198964088269947743563268215493702182286529810845627003180538460772808480998196309983074082628654439731168697036431432392712676651784618131285491640063541243370467348990831216071287885719257629189666573775434307665175439330476815026833011886993748109507681079867272198517728775973032123566658028739205729444045958250385864182650954672612076930064558940178313510794270738583758532496579421040965000398707613260915024480242580972608318430222134040894332591322290682802792477038645391705499590346748959588959543176355203551662099966571652313487503645035404693965180857731045339751801133008244348047302401550054738412270300480901351270552723072471443845752309790862802449298341211592757259233119512075667306515544730590443155919167291970313133654091190118847760874952595181618099862923186482766739545999606309626353252454572799032216722656047845199509682020784431719171118102560787074638458805959156144323780905515921283043299528032542026941166293958810280045569797421557196108513125473954211879394646465386424300176234232773284394756434100650819232040523945041722203720062945619840693009885029502956283500499597087212715945185343072894262532367090857323863864588940288248561858544775403348725138332494344834332472872280073321930523447114422052223642524331925000441255704512139968301497138581737174507044834133216139362548420353866886016748926409114321204680191188675865674598710196340191746063370937579611742389763592385298950630046838364694667414213975197249708808140316003618410553638607206415651943681505307105069902651599358681737924352548824273077356826851622840357525552513715527858585297286022874331394454638303210346778648423022548314259013194286890212496114663484813574181782255973494120456386757745346386962320997053154235239164307562669445017228594925438437511186038703698670475178198906033085636409306585319668531842560082743509130696721551213099411325436369120184822978160091510288332881867382338110943379330586218034110136398462268000400033345057621527009755785683827688427502120041304447846647538317860863808749874874342164120680086919961020184743514107198553949538109056435936186066557950945603226035585200673436404686275316556195637718106013082160616819456173601059489115593970457075348841727202074709786743115531915661797904159572122663787088164890962924380431914303845622399913717450324642484374117081505711620521881727409198579621740976750311891601292952193543247688907199125650774806926496350938162686714323562846826515900279055427522287718789839301596068039034706517964387565703648049521289667208833837056085596031147870228175538403432290193376805589260724415833552627976474089078878753606661159112768318657564812548564531828568221392360650198660791410135367064851496869971228174930098490059873847150421670552449935528373543605583098901376867999137531307135185962818037877307690832253130057793355503731702825332303514149286398941549495699203515898444061768400686114304171095667321541151617908976772529638922079892473527678014593777385784164253056066586468065483206336796735615368603198321545207277734963397119230251498320792805169371093347705240898705247091137513657128710358468301364874561586086577920771933348071636123743480849104533778028078534618345146081096582647474771260931046688865026023643931464792540644195242173066118269874441229079899246516016617374165873943191127573054477558063432254574790256271344301149062898965033704056212898745643221425565714968159920767845916843221042776255549953990471248533212057258409822382828641233167880486989939544883985230201740126088933189534186882848235177042040297141026902368582050410866946224035159345344120940858439384948633375659818135193851615279784464788081762994156119625400284421325336549429972561359143262055852096021564895345347796588202152250886748377310516626114711630479483512151151989062346581137144473301576263315709136800004963624356828980444513258300394260854377856613654773398145661301944016883738071342601733250189666141039591717305036089446616554725226355367839271389620467107763050351565528135426582910531374252605834806431274444300169356572065439220120205309287025455500194760638646393616324327918766429837629051569416618143932087046059489824354769409350537691734299079835285293951775099591867812954568939569410702691357945496989805586893739030504675483391007678498120937648629430293342529417764312213996130998565710189992364953865934576329734807252486833385195119356474108703828642986200273492533382747011705429885421978828262701524222136227351644913208548899443128737759079011632033962503263881759439129417076954764865794999333376572673870394301830037505456611430037079352283087419963583826859513065053490532414955454897023712100676714578673473212387711459878773812052143237807183878851679076626750394948662516359528838778808226302568929368020780872791430997322956016117900654440881493976418962892099050274925349434136209278257136822658204931036883863179707448104541822729411728994596290242359770787306657755757685172844117704038031565853407458902137400125344654476094049148661544124672508783347928064890297623181119388941586584166873987587890182941249945666983442293362329481137609309259611004521749850841770119853928857845144437266365716169029631457639652017498921773953450002140641058212189212423454908462507275392658536317659613035800172551240331822723389474233103373535935819465298369686529252857531131124054808355394451778834873004985793009734046012959129317178215218085471219262297403541646378787401350877205579591980163773857180060990305901310712924187474482685856028270676825143726130039207322816676430187149733230022316237105985798882230918371188181155973703956289487355217578667496462050022329708970997124591403275544145138346773064472522508315946364509636727240965454192918405569364982410639880359911973682080041265471344932252171683452150368001958076529964565606398458650955083897942594021814855408601200190932960141260751384474659796329994206174046536720931547012248033861778914564708346292188782944548766026103453243701059857575334660301020215082334365476188476975825729570390821992477239629982609040941503111173377576276547735048066297199176759424574140397596768605983308053175144469303937307238056602632002720819594593360868001178137620024802194418702416922614726177328501010056039396891794664311846994307104740177803080664040753158138407356161126808586942689713116535694687765725996246461350918579095845942542518484208661217206433108959928464987265597422273010554463467251398742580902096930310783133088457130773511318713770014068014886255012621220350716693327315679357325388389519996362906265965522924310563887222815864225379080563051559391418568373066684788645769210524361867774469462057461099489309797499591452509086688773705647362652870669195055746181837675086002083781056400123025009224303569014121152007022683286982172234676106238395835608909663638057692744955892752289877926590380775801410630486102481370028591569524523647551819135110988027170609486492931016950507793650100311783241079675680754881251154128824572995208764052272668754077568208064439873457524955235655325577063468120299979248316583163523142554761541104503089945894334274242360103789988844967913232878123954087461428684063120654308508856224995645948213915252538903234434786737385751514508948906416716701712780269546238749137582162738812952499048772202077313110406844706391345083151366070579502951048825245498152330483833062425942539151696094874007559859027716689783767022724276113174236693561283775892454566730289617229797802574184861204870938261618381673624488392895362150915505865370145692885849138108720843866222494270893445473510705599142776236262225977649161723084534253185629220500667137210579899749477090040614538768147370913978528612507492773683728873960798966790717518741238662275524836718117938911374109702295713428961972604755781481763195339129986874554503518839014672565690247370073717345393245054251993171408783913433896596357826423415278878176787169349419331699480997690727365473401554154209255165463749322799802521813504180269632717528299665350861592162067391340684290096282183471609152336403174786836527429437509632090550586334253623679249774780073364983465501479482432200721262943800538895251897141664034054661594448658448947885994793652497137939960186394062385651258143278885256246503891244015928445741967752081397183761597986253694890050684086156468052486527663612121407043879736025966117814716304946315044021356914837575843359046631439543273472286001466449844080575933369161741116977674127174599691475539896866422734842972887134838037515652909945608977812522130338860148549629510992616234379270239962134726651564634793617881027898627534413303711639967001266403957332679549235586311784733480271868051672685473105578592710978017611629953769046858808454406179754079256980236574104049945341682636083571811816393038278910663402153470258205633680970885918253035410145565702473069661490148507294404023902208139184140690564667952960338148846751846322902548061876800198835534437849150948860552892802001131443320172571505036762900315421132022955362583650561925663353797895539574587704911705594787717785539323401637921433396953684648804067576822633144041607364473361144766932769340004785572672768048656987347682742694225196148303683389718605352487896817139786264646516472996042180642468056062536002098844241696589010690851210933025578600551856474293432378776242953763745320275213036219294548336432753015374388123343823194388307073162070377865252505344013790759501977623175283676035094729126185451543542501318973649952417013302976358896797258147862224411386362310648049281633426309232033102064355889025867083386447643291730748201403517602961093637974689769352004772041230188034469641256778438829659060730455181116198233831553957114093247907945961529079195677559083942600337308569115879990865761996992173257508159686302605443283499871407417073900868008592441166508625329419972312423151262626295850971030853538001041473768166529207496940158895290044583164342336183398405261808841596333648242300064483670810956637121409641580073684971530252167414855086390712064605213888110047830900706025848250444766998993134156040386686679809029648144341247623477299431393294816073661411923908536929976778222801546202122099868417019037791711207159890784038030781580812114270823307052369557198522212258843593315040896211439657573941168914004839261620848765428955233366702031801232959532447363537899261654833603829547209157026542185018698821111746719960906479546069161910436250612690650634166121899686298235450096324711196437083160120717227927000177213813725530999998472602601604202327030926352956726965704370024051652272336736943612649273434310702388667394316769469943924130813235078205644165757251870092984673994080257368731379395893327861123813001602860228933305354721380348131663783195453027198446401923690356729993774262828238987302958265991235744895033760768677846535835987589799414273879660490162331317944157634184104742600324268333408710066293526857730818584379722266199229048819945405852649149518936737124290919337429043542210700606992812797085867407605455925461043419419674273713551749889813105003487102221801426713654046724047919432038704620597972298939425001186032397651406942834070848367401754927990478949919021333324032174655278300928818833623223175460578313465046106093727915739385776195152841886526148142706887485286272825666237098619991569905992013040643936742845624961827469288843408752288271694234785560072507076000618523125773288397845232480422019777447164036322103958571112861331411066628619661186707733458555653059737549029911766590844836433135867428470857901782697866499472706871599713395080453287165586377429173571587414452498951824801763089226546333191841382229432421951552978634231159585554181754404759554812860715361158141702731195568272043697581898035063319918420450552746010499872668015911598752824280434866419174126822226720830758448992033428787625771105499733765296081296141442355027878705964687941942157021923799157353868549393005229366688761088054823274527518585864879026673260712452991354156335357446074313440544818207008760549108225661588282313829997203515038322339872613478908947555487638689155839637811654236880390685374013976006690849078365546411289338986669457813439778644496554213836496830767937414189103221132225885366040462802088973162476177523331218203000584750717852880948866931713613189407164934370278560469586168700379024161973897477149698194954889481948633430286498897539344698550136328172363998997218489614879850744268074705953338114854485244730979660812193546287673933806437616575026086122069930910255343126243367317303222193850977818033926772118041292722969323253835823666859090225275602968390597359436616978705126512859827725191977055308862000999101499514917248003235626950926520165006846894875276015390715914804155309269650871295838641205851565994495800743616089211855742663510755576423122199736839195026612538968866408284489324639117972546703096556880484246185227211358174086693229551496065724223502141142498821785556481052887573066998406554623431633903162146693572645233596911494493149554141536292828558093193322869818595136551462521392961949453130862005108012431993219818878000957915495254292284133845836981777398792334226389501480719711918656471424000829129845382891385845771768990474836541650078134668650857683227189188436094796675311194854524757435043517601470686703732664667904039952280288013430583250394634208613662710673890032043039123521453057462375369292959021794202425406088654805660680393660868898659632966056861927024454206615438908895226342650170358415417398709435977348862108902550811312401169715540844888730083029752465404439090231167552068019465200140031551324003571038047641358162808483401956131858776914621611447155743129496127860061198820380447598519460816595025105849094398980649545316420265994926670415586746807813203464116731143296996460498557044923205718305170344951463425225135433487805519531144196308929693428807388809182194233743141694484830038699842713771350870503301088515893520119196311032693359630957955913751265717571766155891474330262474490804750234242033959543099947574555729039192401234962459980988242181908748542480501837569798746856257451366725320919802588429788295869165364701631522146467685629598172799347578946632863829445267267056847262584410737565479985089815305564851263475984523526068876663152351708785498997617272180897728009505993657939535216987758431197140702394861582360250120996791946952527616107049480728379599470500984118548122394366918022591105956436788716213063298411628330415322289528189851677452636218773462868898405289613555086457822231564639462768228782983806061305263865234585801864927305330296953214565077132039832187888783584435138098248605292096447948956081836829087316988073000925868968296140562196113389574511182223034469527758686874783216950784814144525206042816324633663377679814054233473297205171584509160640574229128616833045546750622420262839078756763551511125227440925877773817710848032638632144042425404561376787339140843174647891599622296884915551385609099414378276654256900144788037298095108450881589390488115784450810756885373052774583599095923098083430374715201377880518720282812312320017004645015070754377522000966449742587326910872212130181490302328630707405063750512663967768704666707869499053827437884144305382842291357811668548065014210336834012570025712960197568451092182816320858952352475801310612234383184792423341889877242054027335637436421060993247126205786125102615241076035133370324553604842158780201208976251413686255442378108587239040286449680987653395892697916735917177822654806239294538884263537264869715151582432563827516099350700490966487965700816497579813227200719269829338558888844356219098018060374010612786963842972904704961274140615625221988506341968130303538117943539648599210678585654232380829027690109347467368413777226947173522384623867139351181903080751776658628237547742895824217205913847043603300565513041847719337726000497132805253307046559931799368950540902440921570839646756583306987937701727382980946504601830239770130911017142145750669128503001006342059952233556075611042444944485916433476981297229562984493337963669907965898149650355365466543610732221463274902995660940546296071770066809508201705566336666825244659944890366175119698041377166254802825905299980494655144820834142427637494364695437446296657688198787532246245831538009262655184760930116725497906622155366230818940756767816251315556959507505489547147913817165883220477826008723113030649323524339708817660665459019608750014564047085202536680860948674241294725363946951781210310032473585902645462084403790851109660299000220224031842150540504554060795711841865523083734163814365060208536682795415689973120597110547772673628911238434085631849441645691886439858450895572276135191227612373532674314243979096660349471277616912860526703107448178226538546049991995362105483599535281567936910632884783216175005082312024505106314340870438915055201924261492716933123355505682174204186120518030649117999313836150116719189265611101513100727177407494801332724284239292289806547881415250582688721900361641024074308389982875056513531528417954658126883068994323282615920506037244986011531589314753116928344647432610072925299335945157108333452167144404224371330162324281115217378121113532653220986814185727509235222847826093853369788606796121415435064816581872374994890705717741638506542322187325911691117974466701341382944585039070490547115793980728845305048313188155911676777385831947065912452179111700520121603160392448778186285260270022921290423367769475970904296923086581929819815917736882785330168433876776983966962835711475006435075292629441926680684212490921509097997306229927850978768344913346508795314545254907123166071341702680223327726568051840486938440082452122418622204698402254993239658866676109873436524074561394900361196292163627213129742399365194827965703169329627524057074496940335227821734124683049495311859844937621330375676920597566179336286914337403724034740100124828096483659838566232144722590921552396487344271511848219772404913665554628662587827574165722138650108624013248356314252156670389133213316586235470774309667718325627633868807982054896958386798867020992681486873568960535326658513582081132888279818404960420690838672463489924625916664301061803120254335926887778014997557153132830954710174577231936523579628459783439589802500426174856699483437251335309249851622178771816653582318226043808543135743919350991918306431676975060224130513123957643223126917354119637642139795789504547488021617260983690273682152172796653021876707053276611789032054740775485369151519051312039430716234749945265105177921103512047797086716194874780646423598957587757709822147228035816060324186510675928435635935607534591878014593039896727977309983022777482235503828722862957276528152483105231516943360091857305975980692743064891253922601657460082926973806815774849206402552805670754188343341222480708478453261770184497752458899202602704025209925732138997854701076214046882340084053322591482875158981080665104463244888966112555783393826265251831235416525153093961523552025317782067518975701692567283619139719345701224165468115535209442253071451644219399087474079842677048075401128380001282438817464412471385569427578884761277365227397541962210999975242827640232237399053091860168625258051462139911993554176119671932314308415518962080413382398783883195662409992242936155546350612638801795320098481049650384089596033926733884777954100666803577951541701389757469706868224039207384158414593555887247291528057899193153025994965329073422774305451867834566987456396570187830163053576115810946982981101972083109866990759661959674024041276863635670005542683621760947415570210749100294460889194609170764142157225768051576058200224278429052483791230189692185904759147007851612694982024745026432821531156245198205496796094582472174963998881315488228873631874347677363482454430535173471601753275633076964214006046235250648949946558036214712085994074542164950117380737773463174300217502590618227522288715368845767669301087550318978902727071553342717583103663125081500993282842200155496712604127789047781804196497772752957396977194418210446711127683835177420593234899019772746283156409986201650557941818055052911172115588411807153223775386300489304039008924064283841756589905674273329625637399845934920604263600867793088125888694542519493611545259753907363167788000278782996478465691643553881889760337707971711836540142020497543651065692835040280948113258279172306467823362048029563411814394882749262892259068891949693517045198626844293833937428292874593146822404451597670703674351864049220461358764803800738136081272484657077927541912477844889949204726428787022562809941108300607020988611373749252547613722732170650731348790882268536242825807154305138720005716084575077862787428633425781919565729653100261782233345614502141431712085568458182247916540483562055553194605761162392225278707793868105151082635125173131132782292486812175121941835003864440996689830460856338068798922943810977486796694040036637377964692488135882663362117764838293919850426060080356340628405848736864700911676862022641053659013703802139316497132968582606023539781977506432037804927739994917161226544091036159408715855606441574249532736969098588247140170397414488072911979090625076712790542917305835190220764976548176300219975297385955727403699846524788167218263881654980835879273604851372569105481968922664061728388250162604285253938508721155467396044066101364808483630033937417105860253801475993521808115227421238845400634519096857797906942658951906726738293677745143386059799690455588269991755480472861988149292289449465374869147250054494935812273527953051829480597507316799241630288164324445339289914807971746063634296702415804674849018007615256271601064468308270098868135215184020984034749815989435777076221862121304040406211631378959948587243398261857628304380582846676699091278011509467191186787030125518567593394097773239970819297406351556062044096478628878407237817112934419716699812993882580045833529502425904338451461039006213011298486693243296387808533724047966752427751387262866964195633828407579199121497143829160421519149033285649673134550944665679332766583504097262037089197409138091338876124082854443110887278959901642129617041267047136828126087438885995960386557213110953686198329022411060733000928799717739342970884185249675992447715641652516795037732113681426206333855516546822408686094474939395193582640484545902614715054904123503269577109164654832806147478209470451798482608012735738905280808298872834255149678296564603032073630866335037915718564204097593817391696022868139027610828577312022800255917960599151927679469452288659084566814597440968572125559476761005636811495211479981271846685335816339645697643414302158790828524429211240428944236509135084021857762388774748103712560097494466752190770292348656571847242695218528493561228089402004269279567992914011023458606210337727673560198119675686052845623818510606220189799185827688862452885143660968302321698414463311641691920169707830928668635830611926609417094052008864283713811927867927479430028038860802999364974665202882488285848339861744694977317035513571166184070650196399157776108315366987659984100042602783834997450992872713045202016778313955478058184013578534474752631936576393613186133198371768091341545147094768717527674471182434531893506674665512486805390734312124041189282110040642953561236737340992166985350572947314848323525950309113276546706713759811628311817038846933965277436915249088719351334947598077214418426009454280712845033261518824205092897140448591226871841475807978437590954127773354592449065156290701980021982302321291687615834930260957749818829498463008161865381187187210863465725676582628636386496427905767046681946672841509138966175598199561749884266382023786860243178401760018576948845239474140354746013079539917330382077757326004672474614696540735908924898534249913063883140366318958382315401445231502489074050072839526953777946756340407487564015021704480548152667123994020340634215998565194656107308152800289525215177702538370335930650191877095847519166585686928962962963820259912289739925138805522529347721363838082705234123093120201388022778030909596887892448585169736193113869073962337411712978022203849334996258399393497357466781266083788353786364654327608445848525605596191273022239863947310046107028277580830005554428307360750310992027976785114779493516557602051291526293050228177984351894564728241119050973287304357437372898573069719093102167340401156413359772117775180490819294566844935397433161525421982182881230018989496898581565626599852051883966855417335979057084420978808849540863387641231013677784720852644535784199424182863535723742433186077080202798480109144254507732343725268540148950833712747512641185982940481759098643755512360247567286101901765368861464313009638948947031894524559263502792056834989075873801478080429465712217042284207745694809635343249225539152625861109988767569515328844075311408311013350163967075165929868011843246184140639328488983921131726365475926916709422985094958007943881946497615042794030064868147218619180755339886931163242296585987073118312427882387143439864029208084889933994320114552482795816894513635802378726463668425631055391438908484582074447602447030400322122013919153064366052548734853195524894436342405958109189448351044380637280226881813355407141461053257409939580561129332524015405845926493913100882657658864827550273525743374929271414120846586446794799183948458786121240449512130148386594265933886782667709286992628521569626196572128679177991927365253528467695484656898664723396245631722356447591049165050245794447162407998488262484562308956445943878197650598326384136956317559699319351292490968726279513768802854555514847302178775420290279369707084970144525836164205682915698874592966811094494636262571822056674038828914753848842671831327447784217790585714958365078139767783973390053223475358333473916867148828390998692738166708021229967542052476927702387747805448854966209372235787941047223558530761535020322121495810108185152706470239220007012771133122803376524285113057542198615516012452992297489410847077569345333833276020489653510138509806360865462630512429732796543520038988493059078048318627290981006556742300766527147626171358392279137902748643281077412299543485093944195608823425751150762888872970465839716815517757494979031005438549089452202380977171351222633522880767295203887740165941445673958683320722061434902908794654640234361969322857796411586872932361328487849754484701688756158998990911370113070521330671096936302623568337839406333645571152576952878194927614000673571772347669768596686344404069028453764467628955248185913242684535796265497957677100807501926786667448021216610292715420653482859592933216945446377942365968723726155647908555680685961543872716806461029099497779345921857783122464433258668036801694807780577454862100512515056692721734690128400083183742122225341496518393076929994487301546413833407158900737566219973515998846638335135840354012766203112189245652596576506103881104623400446993452743278242208648925872512627047219049350259528377335582413539319983509929351395752814551295660026175378839879917818596287211397110112365295564524978330987691475407956603406961750419843325949512547119948273269264878898258625792415515240027667967170813045456595521803624082662019958248970947459157535201929230139037450331866959389187804769018039609947699803431048796648345326622211822888408189480103492262676113183890519003709098965606293320426346257383627620637180806200421607983920125058129103857895671553614280493798538644352869917271684932503300550816934243880422472423961421441332970385987974761843068395403446212438991058023450996053656775579941673864332089027444788794800140545931457458701677912843170870715101796703487706986405903389779492771037204063005285911316846910671267904604670588050092677754496168162708480133294794432714427874404851561771355697364623447973232671347004295615685784942739732691948790201174552032897988107354012987429892045424396526530541288264518686532787776881007099382272240846619053883575836223498354547811287261378175401557875959875847843507881938732437481597009342007228125217755369366858186040796274469925449276297680501632235834670083322662170821998650359846388162608695508002288084798891049494867541833098227915254804410779198392933849198919650481664209799184484673683737632652066947538065678191009016754475963767328194387166717558618286870905924486176130128044208049403290519724093390240250590975079668402832930157928870437703494011559707999819697550774757569402997379048409047238163222889753916083107219350888557149372929692549434303969327573872740888317652899551290254814884062924850957385382060497218884962136896672130269794863941554667913387495987452796676524586909362799248177855790305384476352201705632576140961518025206106355634071601875612898144951389999667889711898129767251638923572399857577022914400523001043214312402026456369014178367773176630759333368523763050528839041372998655700881276962809913559443335548057053632622542984270752650528405660953404791012429100198170850373502233531434430812161575336256955698635917994171651925125705921094820490504855753783201959909577042960075716170348640845134792510652809043612309707062616548768620577989441240055138994959804120157834429187539107472902192823964190686406332149355894702877696828263527004851063918065743581012881937141574323076778126948700667960179700468656098010557393106459600435522517399086384515359229483424840007820551249785825713422351011946302932727049739981662591089612128197479736171354386915058798509004570850412970382211208001191945704337176632256902511402623105841925002988002569775757208213496642368876089036656057963740802627754869200633724569448369006205780028796895276293153197208982594385165825655105902625744722887155984814505016403284027196787117064836516632068453510758588137889616335277021445826458339294609890037901729150152060927450098300928775796497120552250054249154302582885672669703607815046055703231079050741654009857009206576045841628807629082150475309542811569347823208227204820989095389618838080098790756922216044074665690163419023676716632992704661937728153701115476097331648181499377808316682355236203608276656061366878446976769873811322913977583589132465986156274928081561028086616681151227004324307235190537626530273925212126413183752512015655915645408008193987105542819838123684968372321594851078469976123352133625849957457993293570953983470922905206666321748590400033896602869037053508361508828169369701296625070787603446036981438396235914192858211331310707428191044750392941952067632787427816940290794001840406082452371973727740070914726950805261489195674007462199922913579205335336174015270602425861478772757683165119713527091677840349262787567524967823898371709788232930620696119517184313361803073284784164411430155126023303714982185471898669340052109937573760915578272329209446029454185443342690428818385953483590776474373565971746361078511600039563241405936088583029830052679335476077660585193223805476089783845892773913144884376128033495457687290413356561394728064055529043335999657368511968295737395372964096755482336906315068386753569410853872426017339814659525198140579425741176121747477167600389582857161652761146240840260868809636707033144069221630831629956932799878457875918505840046135904514565986598332241648457653264975379099821804542575167148778454050579037882190680141863625539606071670002812243623100137640937150971261930578329486952568434155417718358928242430425065311051828106015965827586175587882465007664675860470387189997803674466739678519315507075626617180454016143277459106718448067509850295325517668841533584199658733077649088474215377812110011178689741074879310015044529475231576670003002917493800314676568596652313226451047188278323267073700810628127656100923964833478882916568181625454241793450858849684389955049276405579934560782764769098327573092802234027432874246809498004875565257083218062640484951921662202327301534285624650880503171980875150838721084887438134278828288918729379534666220029748891288233466943936713815305194049038031926827713491667482194127850700195900616794531246375585840760947433469634546069521877299146844499359777076787000869760094000995153770415725717449384496780924335832961843446244200075255574139207814286476904198284998715426303149452007019474971971660609721362948212606455940370290634167196915921008849447574646506224417143552939556242249868059237124421905644430105330360270687942717254995356386399438039643661614925237034650594396163823495075348589592912842902498130901858628743683103900040680362055255422075457632100272810660594498852019221071318215538041345777369953904242245748951959281428232749251177743424950856542557967232916932400973058796216174069805682088445912789406087777599683067379632468705899426815405407013745020893180631307414551859509288104438266496219154149510332847865852785024509373912201896401567410831073211793275487666102125744409417127775510043962819625646408208610743999167667784157742078167066122959780821463568554125713233667841596639069961072572489241099861843650439755190443902916849224696544760344103292343289070538919374325835739656321835423750140073538270413450295728394929037794549186330538849729383909649067538466831150245299801941598351991192385849744536707981185379725542285228955632366943186453190332188582871467166110325807298729122013919220744494207785660242585238956784938146780670798076322124597293481915332890655752828976488522450957409145299719833799228160842131054827200832920561295941389542160519414378347522096901236647519660001561078764546050769093425806507082109957472040644703172890498112995402870734619630010252695187299387016867521040171247988548803706926876575155138944054178628316142462187291547878159192455934168845809539031630989807646128361862848659558964025561865602540706246688284779053882117083672642881834776244644713376854353126351321563540085683572923929372997850742757388208530171103237748235162233727881632671009952782132284227595436372680461734829855475949517008493603899931539511821013157716359478337114676070311020794619546069949190580929515941623309617306304030895134066901369757120318561603461728717880141683791266172964400943672918575339787551594770172745384004640076726918402832126724846445236723980030656353097246889030853751820874425532850822438197553249731527876015403831199369076543392024250833045873366427044981133676933661192120528999407497184680639067605527002665397765701090490536186605909409930900661423755539872625928129582881093750792470089672023641887858430425247985270079721166375522370433750329265354165505729743076952728570404310782966579651543544650824381385275663734064721116311445157790982939151413927586579690625733626709390086488406978235935162481161481406491958542745812631565587697225470516418750790563641733652440002076013569646839602968575083386606755308919602105935345060496141135753476957938656693521492682639004436159317325602334832491938063405819809431608097447580779248661749449067168874952845153883141006946509424051452080108373240262863798832887497155441824414985016752015630232603274304868470947142506657168165410434581446274080550770517847270231422963124169954125776315273638381964885716035653465891589100033695939700465664227305870349653928410819971080210492090227228653907181286704082186660382298355793116988287787939491855978848298635489407777078747593655094777680573016046920570492323368296949530957716396810068420176488974428158610970227059603923982002787605129643963507117200055054749915681866125916794558066272636074700416034336826385107658702098337872298169791782245591805392655848706614149182296618988824292538837615809066599557609311808178886850288979052583778624134572615262681433985288101124596258620399842933403153990860863420870010791145008160412024835972973087401100287186673540943904659084141189910107739004007285496862125676565004362802916161719806587662576544079781387280103798606130726429041349031742408857302201840418987658959395204767553819624836987738799212280438202703358467643313796936947222686839123774511357813262766714604275182138218483090203254881552579606090934090708099776225148114147777493575842770980764902382976023455706424979666944209887013359436182836682700771559761813354521916097633741202112345040762228179781725564738788175134375392483520259569910464520408273847726667158709528923000393080071979687867829981357842453727785743823165428683216818568591277819205706146905474537196968319580461085771873452441136996360279744103262122476727413540141696354014518766163417157046217666288848342824790447890286321740734999317514182003917419702298833323282431807332265673792716820615269361723800423946756940279879348957940699602450092270921307978691084962914661998983827380226505828443874213726969974442099347860001310135189613318645441843888295360325131048359964069501635373206229401194279346022184734406474842678356107475891764994216938069521896276748132812130901719667825497474040605872304425823618146466385154226765094544251296841816739374538354427943081648187512295822863678122913446250545481706988353300333456396084174157474276104702497504778992242584877092100656375772057154184360320787620821312259762113169880093011164736128153593444970074767242250733449686789205166351975919994091690918096846092898397454675313435995519943589992844438387745546864806639103782797316566830868638696366444309846966129170689586380769815271141246831313014532186226574412507739305701821548203647082613688933208365505184393048610240620045326485311325658716531767995411886332158800201047911511819047611234471630053231374151125126190344598408925553694794398367550579908814230083310572654857013980105026971172383690861377759196854259286879340477756201762890678279116068357176812761846031097123779510843478095899481150247410154674523540326854929957131621264450583577198266383061131018148709973447169649727196459344223309851732352859364406955730027237133262133672870396581419245700893952582893792870578096338172341757224470002947681279666599434707391624891638532556038120797803423919111366962324671793767661800202636395168027474381683404283573432321160208743457383955196880343561715883248482515067264185820465440257847781346250637517353114752921409639526410524040133929583386232648486022300278533593575437127909348592609539663401471681897869114332608426148338826562447123390410145017880365760025039129331825603475945701766975636566198971910592331277580315657633108148072433923763410399104975843271984068891892513846615511376927476143285575629329119254647243524852766227891161253633054522456596397182704391590509337462042486407706360386286224135242982051008148213722952059972097881906732844971972654378765980656837703418738153869621607698884785817862615420637920725877794363935915642731330888452736583390131081537077115951029879762524568960941308790235809752070695270790007206370411373355050063306252385154278643544072100742244691491708008503166922225017790714451292993122056867265355164247584353877373600344114017140915388318050238727725196811092149542299474345893397222842004677701309186808393150970704999440564065572546796906957121099041744127103822822457895375657643625202352680358418792910814867957242682152219307782564581217730813180474090195165987905386481901345665149840918224374059080500589698071104993835569467743706645829560731717374927038819018272459156926063923139213071447496409835109372067690475409813592734355883390003487152136404908359219994480489891104698292148734972685787157670654543306475510626805847158111982127452039401200598272843789034616901979902733791664800969921729089933199961998811571368647355182028186023540698229981612112381525001080911713034916329083196491587584167937890830572970549643373357812914722688143758349261016307244800445541038638105039641195206487925616112531905761453303970450741443173836343374293504502841029975990867259140371174468741630363684053726568712075619926491411799514429939940630384476088005365043797845066299292006276259827996731008983153710907417207267418832812936301476620001558903253105874004776808503639072439277449799592769655946035346637258472417689656810291320414415678362249362777677729820884397555898723642009567096864677469686700419302126110379148087345979432320611278490479553560207860114635358839277510391260900757427701935172238056844522460354627330451228933161405278764773216814066192015098386801198402523476199949057605648598708857795454155764329835490085880695023486019662561119294745879104226647570901380403553280683206641239740230011458618179740314693708503279045288095554144749328928509419756389576248320882693799413266600691311735323905855818357378840829141825854013273503883917383119482054051016955374772975385051362484465725827794712804597055831565412887153325066594980592070138152770471351002123848559310460163984389924730054717547093774277229465227888337338401656244376559307379176987686980048351613883566448324207467830173280514404314663921326349807298392539224058219153276469029896456044281602948339474663074245060328596993220360995493884994201123969097494735954878025773482756452533879751136958520230034326354753325409301530088909454414428377515213122548691104165057248721390486315160653279647510935057013050974084428858208753855334701410183701542214600012218318767103475536988398240920573603261673149774046616865326091622252338633788014245056010066705714927688799741795462694416668413463034598306880855285626909246235771554040803363156489337627923010144242430453329142437248172771725847470405392069760458050597140982584819747832096915316832809305718047639237578228857261544620016273197146388237920431955621480558353916843728334410530638855266510861975589146681633127763283844288791152543076555938639821068392875308062169745415018995479928329429316156180919909974104693201380706644023074398408668780939650367351596157895783856945578894172413372904814586460313358402481079319285972134320052521197789744950410200518437611063651839356268591190290713538844473886661590953244763455854607904889149283217543181024940052313820304923011630129801779911628621981258550873499317296904349447439752109544864525978097050924280887661827367359157351492186187534273531459657230605540203513502961994289865999744801074509186755390206979894452834893904645478888431389327463372818855089215891645356817664624856594214624067928687264867442982596274579086454268356957709823797774199660737647124604029334819252659213109524488708917829263379180953483820687823546465276020993154199980436353977051847400058549293966105082726287719671906987805616355495909824272988218549569954956718499469365312798516234316419798749241303190043466811941159602151756042298607702576125824298034745923678717109600562495456002405051911018902740786606694180220359979304166977092306702552027202418059950496444769118800879388518456533048995095612967891724959855775855671339529846618932418227450216079382427344971055969114384698580123870451856714515427725371399683383082520829412968121404154049146095105144104834924710716553342540978000551117361194345144331395867697961913861312260846944265222298575777273506165016449682444543138904541907389067960137198279089181963837230455565682104308839892106966159316490614856455166216912703915887733627560333811838073745233167572221403033439514458878496225963906663080565120537697099220833444081593387810501921212540701817084527103812002735786998437053924188618608496056443493957072451408142547418442079591605142411494665047431059054982476868238109515383857429937302924555893489185579839397677974425801486619391281948986611483929988435688417893354982329264509448237425469414520187280534563545483544977113323597419611992012724657363995644630191226541178574529947571286083360018777366708548198747986551961866811106315280513886664559498828547560528193797330082822357603466519096099252835482815186852107390080955870479597947576849184679043956848950723436213343187660212922350902695075069821860478963824702768084485997497400357009758318761703826593353269923623254639928280966550701072744590772584800259482536345575587811804503990019131056118548390279976880915132063554446518583692189552870836013297271086282023671595882801057780293147368819816636793250132579624681737223998561711542509426829023024968431279617695375309196711876463236957818462668788815747932553493242396510629749395839050366533500512941259434844135552521052266221263748141390761308633164729725131589901040411887272461651561247351315181993393265121612312302773975308592335427216457064968953083805822160489571917015738470078930698840176923493954014054951978039675666843284377198634741318503193680947712008326925702088633524705765544099314991385014653688716534826692935131872010654671227829557567114668146511689079937641992669164077337709033455844513040394026232643490965820990277977498576005052904993210243079054940565186293341442380424721310863160250960415657789037144376652714606783219832566746455303536629493214707544893499078228046510780992347981699414374966746645189642209365412874656613436516932892670192080977521131826304148136320844026721986640888081680448153666622364932144960528990269858602173932907368881071733920159189187919501608363774298805184773388656468657566756533516914751977438991193440214530512578467311811580590779086825295536051472567335550894537329261083398447654974815179154840109483889289271467769991645336221681418317696114181058828970343443088952714146561904643310179122447975321061204409858115950379462813291613095968358485135854713226727992163016410037601666736813414552027625210376909274789008386823848515001046426617492512588658984434849708796290474651821092008494293582423233472332519341867495777122433677781416911423241038636818708383821304492425703639864445061064035375174935976241358715397560771596421483665047960883309703866449334236022315330022641253746587142802652897424519746713996607156162914151331110978280723269214887620359160664046226560176162671699448140102857918009235108293384209320473889565919843980886765045234679624704619158047653483278956837893900160559137008673435868708762816256413584234436711056860366589681096926984849297891831928185998669088196339682636968945829079562726628190986170910135617407727290030872894713618316674691274891145722498330509011292291027990147549031476052243780654415037551241046425237880141317508765752726546548319105940617778366232217608795990233361740516769239447850956806629204517288609256179568600122824055237577843622230300682019941812051996665527328757490856366734459139355971620646310673548254776229850820672250567286934699042235973827151378890956423451756868458209171502744308754142150902030285091543846995235833036006440081963415163767149761819329000412295050619255156144847153733503088532840739372019719901997143799944375613442685461816309427862746679902796432257332290249229425846593775261923863968687686968770557435628012179672515526808682756372685652371789562554921629254836296650128003074380408143143998803350608921358635122647157231952144803166707323768743483576784608230372843075435447019268045723573957608403461184204397943337929797163199261940400575062360532936096943956890687898074450375794014933320441662648829851380771409746542014960828330084412555031235601180919006593864376610993285452029405300941861808643581878973839016004345523042701695863980449842452504185089760060726718576176724941186263551478675692207314843644769472698313593312839354334633466964642717758337119390408380594712632553196644438610546590176081612706179324146540238902754173642265369982462804558577670543867427333067935814785557631069208764504982910569188910166344091448034415044067753434918539184970838545657775787038594333053173508918126641179772159767601978349810999083866565849625713919729880712637833254867589298092698237821446116741522840208063427741398662844523504212102249399468574137111076236803660703431383558356440930609490228650548943450848186792528274785135036179743944898253305126126927451852344621640500117296162392085583455489517924266134840289709696996771238528826084389523234416424721800929960572657317805993779187715219857165684920949428900410213663741513836980454897761524199715413812536573211490605458179580610780068167754439212239164793778228075977429392531073538189097641735351880819925983370344664529698131461990306046683818768265614855769834758056220945232121167776648618349468232777481419333716574294250727481295154253231015117423892037572324600036237435206269226444902485284237397304101582842992995318833365382562143443278230268457251480463759727744105298104092913183980643246274237608178338110161173580164206309235590023732465118217883298320184888206543487381029644975332336282661770741918957900521471207383192251854566916269848812949114213946841280437356286847685015976350486958447767974156032591443099128729213218746569453316699326057658197690830564303640885391708303383045042894375579230644173834771137319187994760381816264052435814261100513760474597084495109100791661510994090162224194245558015695074019599105530781473174635934948574965787869927561559882895931844871338274135856732276750837472219774272652908985860213192326111695574989438587331094978522459247789327570211575837464235446740590180728919579900310913871534461451929304242636201439183059918502101346675795899312272120717545749827365837465905036972804353653560855510469291060426562259243822990537881906389185590081048092047233506530972321382578463444296256101381882644689727535707284699877082446157927169875627342479153793921051850212834129954264221858954223266342147256762851713564142778358940474569345739562954539213373090609487408150978365890357495537540148347810518732371446824719043105426213977780417183283152441141517118713519532132523471469183174480089589399642836651649570296611466868691525975861061945253232739762674309499682732911528736582793260488891851958445636490533036989300734649451039022058741343203355419863296624727775246230092241394498641248015314840943496393542037962863253677411033726079629410444378369044648628793406051630212745538674215566740434330336216599644584843822000796327249187473105401934512872382661996481960046948728144151089400032144253276805338347484271037166654050193472398564150756896574805183212319903185978948407083805360300413687761279838181035651462242393516448628313956068382314230217391007572628124908540559663410398717575302213860010872807282079509765516966006102863640119446557561147811913730676361719364475586129016006705917573881020259068985406060673109264300790717510179774456519366743616060386283255755989358897361614785886415222668045823665283263237788885106169177594295265266278661333494039592138190245233632107191579311421589392817210545831846087425737383713265945385465547966231126670217140231991927532978200066790995191161375654818212107324658078317454462763057533114895836898839247872226226912538673916187434561591021257976989948020825069442188800883880791713338904279175722527062355537522935480812904937483169577598616659685895435758050250802996754158064879295524052680689364703675302717880997397812919007123675163472932453414379776986234159681326932395636831818474051050249418080245846732717858663934765457778976762338008208310438833308329103056436711879062302512339178505747593829182265279482391557724280705406084246855853172686996933031934449195391281781332440228644893111793169687389414174764345995758630962802853373684220153955288834009946082837532723732111131545883756203224428873312824425424025119534445806944882139665577712583684380578300692448318400434033457844518574911865794139476618411162636822549108330622800122175336879034744318502357907968612840334902658633689522228665285766991293562178926014406953410437536570599032671098885477103637102377002478597286692016707559450862205987371757304974113937928307827110489459471050313531469146441971201883613078335968561279060922127557275436473905765780078633562006494050636400489038645912360658192028165117953173272178862463513440574898636039493332825326353763195711027029665269478970248623636372061990554017635079958734111181600058572131496352428747553661010390091452367986458623080105249066284512285363963917138062252377035216680199705663943304767748083107632553406059217393754237701025872634531380749842261536719807653085363203702957140926950259877536524169679381735909050043894190919078112736239766403034565494686134734393044391194773982783050034763515370628442469178214511471802635647070319520528220540010419203270786744113345648418234385088069494304468398842629459629396977316193372382038654473906060159016281197480118653673548083726596379488013744287553700238244823904186225999316401304459179987890979236819374448365761044816801009332447313827702368810211722717993817363380324627365433199305443727583006709998403133352721330204794859838247409516474458985007908805033267983316481891973955722715795345039500417105913004259923099530892687728665802583870613455799006558184816977075025503852384641697372934905077004262316408544936570243631049333670159142705968804968968091949354322767055370398413205288334306460427174762828359454967260069117880157331750637569948708479838324272462724233367724788812726276047914446492161057501710900620892280676494125471803507936918732971531140821293929126663843193192743733273369034184827982514193300937069634477755641956625468068021225235399486837447869087219402975413834893818768023750146340000892876196619448190887656739491517025245848439942766261607955758111050243394348902192658577534247357923867594461266884898600453784070112617133967459370788681143192174624557629510196595143598232052485993459382039935770241133166239580431219792018007184602011190420959208010653744919181047652084909218398293810252253028986655427781549901142751661490803658321118062721463210550938663594195747155607377849453157817340526385124404019823347042926877351843504510755080638004734774741498139851678239282314077312401854784965770405251503732788425404605599225453744261891401599460310372933733064308097642094100124529581714748458085722547874813898820768444615633503740015539727481434209375085982145716326626190316810364574548941561216130233400924271834679608286531891850108975987987002405391589050478892002729443583505670186330285719124029134876849130764872417328326805008332512628761177909367295212879780316111013143544438686646814811141599575970397815302513542161616118516493250127734459950156270814943417137230496590527223168358921940909687989897306683115370196854619750173132083666388521204442373020074619512554648135640694694649032068573735640242050809704573594981665643661102392307146537167004566528781757519217693898645652104897460109258184211616554145499178180899023799950971711683940718650843079303092711748762178202267069526891538248581378445252326177384053853163337313814684035252843528556434437249635140262316798716167131836216423993390596824419350925097658208884953682066596912130174052269841130404218359928022999833742223725326939371737644524854754761544754675595230872908107489384381504154612113806584969285839119516638284199234541087584290622904205959506077996574840525295005151085845203278342665745757030920765701807081385615372688271569200435569523143320090700984511504386039862375402144872909984101903627637185390772909842847323630414179050182623170387096247958852967363840626913891017032736832682746970304842098504125558736582582248235178307391654212104140063488334674417682670655947820428560678409877753606659957635473002382606814755946164185153439186692620064502139787576036604295554447707421067070887948264783099311368236991447298515343999113323737881802375519762157819030908439489638354596552986329349590601182996972131060259953140044609276884697555620437755322011396610075868604333581830049956511914399652325079415095559227904191971918170159267028842524930433807732100957744812733595692020541224094037178606261214631707121281327696551214173317648326339574981335867573774343862552792627838790975064505589638080979675518693298951615052904830715426654830633149844337937266973231965253023882548884258226530617388401806474752110491672357976746109827435746245735792961438544501995833163161862613058783983106680431968638710620413226778488243108790057811326853258053113410230956022227319944588150127926368393203444070092551921241875463843990127685073600336165693064817765974007849530131189327980918814196799300103225367829824070418112830272789304797817913217368143006106774314693187055217831443464841035596369984228422757005657996961194761860634280305913970948074090866089096078249052479976988276618556001626411320063820347526277203154207973455578190923572530904420630086936024872038848186011385279564924387110136416132777016389833188432743925034694146701618186908112843087133507915219275026940938671864564743179469358770050552344760031925347664892627918318825387091579693259513263709448631087744561040772112286971463184251995267137364845467969874560207855474246160348809175991670905522407259384114464433891696799659544669717021413656381684937014805595095349973425597362030450414916480269524140049063207062672810754144620029327348907757202605670799678379086145412472966712088553358404440988571113772253720953125645115740311037460901711373518362076019153748371049243870499655906960686402208450924066699539535669418508520568300707001262465033151933408976358260039881425463727185322870236829369326988057898146694711909478052723028889748150182563288207703051863776318022313344423848761836607921314936946209991539206063277472037485371144271511442151241487223408861802430418905108112563707396186725984220792337559158311286083993638713896534937560360204406453474381026315094179729628199927227400652673351262652911475754691259120866706448799742483326192029212525513556412020655345968000492193773376550818642635446160578357465237940058011874838323918428398064118394136179019187649403493616857283197128928953863097171748946688332525687092007026802419346343603830768052397504670693217894916971051448678335889513521858559495420979838594919508094034801059573771525643426794049027772934087306872338676314740612500674389517689264385391363780573513871464791153735180890255173476046397801045747879328838491024884072435349425799605239307486556595052999034866847024902604755380589554242955090037805603615916238861975968812296757891191830786182591489482374292938835131920015153811560861950771248796370579462801055594089767211673305359245323265367425037888056478915061530511733122943197607902486722634610432306181597356733103792932356577931246924289278255190097085535240289559124499546907889874635068815409763944706087535282575488942624965179993369283882719933117544331699291325648143735472616767071952373775560735298988926601145199424148113506596213191483780783380401748070193672632936651029808615915421714444644636227392677505049224559811765221505083946168034921274964972122622784608410423908852282873691929926598703833350009528622584786923321578679252718991706791549012076877136200559200846501773325958295750974578909383236169330281122273401608018644930692581298826637418817944647561081103804103888067144932181409901817331927130488643075205714700366332296005193610436540173686251962489003308488404481235292940010010592303761501126825255889061118752796192383208548891327128819848692226006585941114563905266424449100905887146457587879237175263293014329201798846755272685734271019807684460542612907905820634756223155996894252804118432936549730261299038382663822350085023740551380224094833293356660359146244736286042365073471902369587708438229491834213695990235403664258066858736459153874684805529067291555101596513801574292573052971431795633335127029611392762974231307076652179299943779666762907898445680813354551732516061684360349475623887674940214687954811550682405672846536769119633390250301769667713750381268618568236608856102199754257929277147910202099088938912546218865478764931122332103753029733791300622685845673101124853814462842246131971676011426461696315176124213569894745748158211193354366235404591589056050638012769204146357825602190897760832318454642119342293101593461983779399368597588774805958791896163096321861458701497935643566581586029618949431747549697533293096551908073713217386799594574884262631316602686447746905349664378145604295332716356101935482967740199974026893979296496336179137464427101934519260370648582669614702878952488259902173521396333475012526304986873163305259039902582892933546832119620695128390319048121205180580696424324060597785316184469083401835335456459924585714290890461291418551779183525590529315380835499671604362695496325345273888839873363913880937355272056816921657753661686745669981639566829625584501611009222972261203988639277005991737206395887481016019597281241305944458416973964436219499503003347579080163785358127912693696571538797824761893551101793604695761166464050114578658457371636524263421553495872598173362752020417746606132586592054252081147545751870959003269381274952363063218370318278472655232640141194787190174157621105360734813783713333832828401344519396327187526862112004646718898180953253450232744881855433362146471235276171279451289845205012510160360080403741947772528789147071330908573945297129245052287956843785537074256612675511129953962998632770562558018067591518910879846513243952109516652794234910359292019123218134925476635216039856122670846173194680132885107447644212396823610474716952717113614320240426792108483668720038856646884887613873034476942405478606772904775699831968688140259783028433477856371624610409053876589422396706359623654833813235057491336238647741779160276040865027573467862508114550119504813312733806750020631538283335647113231598127434078071977443734887175003256314611708472169650380515651656114291833143807153996074734534225774095997321966489026751524872621772687592594578795847462292665346026927700484035813060514134378170294235072991594844155843595624880611407429444791582767284941943458130997384184921378330829848446377310210634517645005913375065203295753944006168800464397141817240884800169613496547738725618615000204702295930891154406886690866197104241744333621837778072902183233114233706901329709377186995759496720716007833029978101629232626564377978989651059243363922352933597572302022262318710370044342215169330588074579342308489603056335467066705166872179542402673405322875403152762300208492613766983714602412420492568872846860355905538337947058051612646246806771162608349978105744805732670582019564506572603023655833604602977396499243589646410152838387113081875619496914747600101543575031883361815734357348925677547925112800242713036416255809998351801801330865011442694761384662613258251714303738092070704440566265308563559458586838323731047132632971446063748405291882775923753554148077446389787888938717453015707376263686038738953958698044041769848634741458470676615572830353833557724046629631651794363234594445659799053469721516836963130539919614446347325105736169392143548366291136952994036029166627275030086001951607901219752336592132047114641931651179482562909138282100471791201120720150682584111919604193792218082540879565216533842732406868100722603869283363391067386326909133206948713267292444485776584923944844974556872805435231621446353890294392878167738672640508903596052217151893036451983620286962968120979051187529450531897060898238240463447942998114620617660249168529848408775292595681290422424726098881227492076429101262968766935118311250945231463947140709506458639195961229535186174382849073149423384919780757548075848675952984892313442216811698872925520383895007342245919597423099011637610141889179237968093959019344566076021722161825424150847682619201094511136532403125167107841004322716506719953161139531475653577890667290936296413607269817850058414380831356593092061396081380654598797531399592174318208923618428597805125930995135586374730959051494178495249934451796186137355776041709211664456389175415051008466363937100960478868298937102665443192416504860577953292760459502583855920390276950369226647216750630428859059410204804335476618806837229626313072849690598317481375598531335375324916624357520837792247689405838930579629649940915010920099748807922668743321643319437512544622940215525357282189704334443935309746079044402533040726997848928261750741200373142594852066466059696791661758001503434842276348894810853810541343136785503156427308055739659552837822321536709256189208780923052744959969762988448213308282906405398565173956613165028218305406858003711844335886689060065743738914894489450674426670126497494611168085562728553524879873523587279861752811571403523477754500799391482388000653066820165166069896051888603997187837291708474825190641855851791814551654104702509282965184838895788062085497644425605505026868384664080487052605106614479628277540081735638257797294445770487171663352525497619780196005635320820696814836942573916724437201854175908276574768687234505782404340800580815066123298533200742371794305617227341766334093400115026191985806588429791708567547212301908983847992988242410439191661625794320024265264171950021835853060993098473469159576881599965334341044450841723234073057763071858830790113054205557851664219463647015238447902755345721156972627919220655070441688617976733569594799640364396813443697870043371294930975914229316020520491422429311671604495858887875558385580915537639934684889281353569377171655146874917563666257530252711188458553292564216820190111769174814484113839960730972960699302508005385205907919475514329258550372289830014356158675786738699355624552119385804817679504565944712845851426289002029603817385736230874793301118437157414252683616431384719896388165810313705906641286758101271866887193341957382907188869167388772155221243122136587593350603723600354096930146675906986320983188741032408439751840131401379961929757407097139090280708660867496325627346351118467512239218476185481481226432100904706836030853113008587028913878224328347457081294801711153696921212295565114466278661241486564598965642359978679098233988863879206985437727780387716384551571996266284199058491970569971099324732668216219282405546967617673731907846091857052001949568647756773459568727487174871153641215075854883429897953426697276957608060728582351349862215108321570377896696645876416091690183046630603449876970277778092499826188757729487068984321350517754635759932788140465725372259764395963435158734559221661427021819123219370723923270608916502644215960534271315533559725291390123194347747609255440002834330933488658295933427138281687026571135435326554917971728679258575362802744784126051007598087088117093231719105389693598620723311986301685777633546556575475847595859440858595008614942337353803722118046609209769477879120312255835374524927484428526762209492556763511421513757881248243273043560155509509463426761884473057220805292534075500899722235085359662909863460602292104089344970213733697648837529756615148000749618875745838030837603075881388303922831333189113019671797040585996118390944357433971022904410968404591258657512415721791238197698892636843350353889956853778320900628700869829662107522431658577841818508486119697652731895561293442813426063546484173291278203396910365506651128565014623218063554010805263500515680971771271946983719090088468454364847407737445136326274869380751059093472584804686978329646046969610041743848548719969561203987167592293826263688952352335399563803550114290293375692770674084905391945569846009378676469889872149033865904399356389884393423176468809523650500748377280159300646807802963344449175624523947690532034456127031776721732593102367823127413215357136165632116019271758803603289968404954539984106622873539841733387750190478673619291711464432500983180586560587409736608480782928294193790495948654080175387755465953904584516385336918581836255323065626849847693328471930240181562354047658861192601954674483242720150376432835029702411631559264756023106372164710343878237688831624282491717187145020015562675175797538769985908441596737637217519728086270409220162174986559118596843484919121347511938078807675777599513181577879191935174690048816545386810686319820870982414269308217064624383378854332259353688742560603310697493065011820190877941021482900468074156339260485126770709896366803374017737926851836684683825381465547244434271512175175911054487864211901004828128547974671727950393399293631391188052696779949377835147343043665441042945774234089302903940168394707709102693454302081731774254103748140162848121070823993842187075676470253481961303393299506003824425579211800050151261535748388937657577218834464927099878415025855597285637587046314174282813240360628217626625923092259499094695869819888436873373514422576808217855341864277140749895142484158781507933509658437614159133272821141832294774364376268962075267784844231960136716931640886336870922752645571997304820708482985108310031709200703526156018862743512680628816647103925436683651424830744419769528367697656447194515006553170292926948355431167193859603979279053762686370512568757324042105763643662436714525251545907764940626759175173828155519628708943614956919354853853328157147094209388236572142236758614188262208788303839520041044746274153906588755590044130321312819097911150824224307631944128079105163324628412596603982428936642931770294742853875159894205254816320513470235892194049191620883911012248940005438382454017361101678133059446067726956898247663428993031016404934740249265193442485601692794351209219335938140232174974199305579595366228952516767380383783282705664422932141223239021202906775253699765574423203062895125009751737412021743989989486301225657488190776366210774744023155649009803139020548847340678533245645986044561021614811787360836154707187462300838338095005444223148873995508476828540493353380916895751194620563139196305031601877683614559437309819505322773300355285635197135643613610605450662282088427431799094126206562414609108263370833423202288386981441407831481927005997051208484259203318942678673842698236670692872134555894323948684511248273781707442975065620164021859660012979913846845431330764988851042252249987954170843689123726503012715879209265666390758843997999525274645609288950387100004641505539545855976300240834347810968738712140528816426048512950161652910912532377552454912618763639067984570990685062228363030253102697561936668025436749338060217075057649670172956007287810098870772998051510188897853001969869128429940392625069913056923468484136934306505092901243660598733597013220454310871619977368155910515640797984135654842035873133184527407032086167969310924855937536705278179126108394376488235999417281127956154913789801297844184144383445440665900504862113810850643714524543429735432522670109624134191738445091366316919955597905611836783920444948575340781502780154652706334456918389423635971989589609386238058601139300313326823917086287206044721346239869973676332168101475316426799978590352621402976155671358793462043188522824184399940292436259202760132515656936510467708949022407935579143058491894723271244530307808490789213272736686000024768502623269159196285927204800039314628257136563849337261266902498501738756251453481431277372998979013474127749015932315335992302811687816957194612363942149491104688022842209489748844972445657655719942941154749174901339156376364254489573110060413945305326216347005917821764508216344561682993127476191934288552670471160183571842615072089505693653383034023554256122389336073325278940360106996978000700798683870237300911166202497319573939696941510584401868754408156368633031932196292097675458886075614578623124363467017614642518949240737555437596534659906239366723646549347197843135026061084761461044100828100967424852227871847413220621402206441896692930617980046827480948465870436377223462524543492011325488705312541605871722767110118060458713935001771708971231253562931768425222271346942097329295738490149637443045940995618365223094255682533536495798383138440466436330489131819202100158839271429076522308884259155181995089840739473056511773719913966954630251057237208105838755523227355347118164034222892139162624777223093972631736866801114642592040847541442249979233672783714661559261659216554850464715938912175691136390035524591500257813320646773629276955053584170508153501691341879036953132264029796035087404567533466126105345001413203587891610629735814924186125394091572769383440343086899994238681893837606684583673493585923551922623891141498114545000842354112451587970176765255199491478954517741749297818642119887018582447986266365853022607069683652459620682693539749286431732671987567717227298514426998421867485789344328222548987137934896297597859674165181326713102967562705775699672621953079112039977438640641987294181690278235733854527159095048841626979328287631861972288278235428343371241586877237608467284501440697419149130002056225830199099389544574175801796290086800048984474953098865224053464012265561368746704068404396407857930901203051670255706255344136193189426132169626628222396508811152532429225113532780493592763755874166076765252401165940359681564371548553502288217138745747725464966928404329680986178428000057597043556449586405734274330044146291577759825371925832933544159788305307024352215421172073303544079182255908008626851933813672377349379890991039503920511610043714800327432958323223927737513066615350298563030028549461521885781980634116132226988364477021524716623172819762081333506847312289054540996302274555164679649231952948639682107114574443815158487803463351886875384912171975498264523524924759838997738566724730811447378043806641707211973502594725962337470434187660575197233669707507038578875088732215239360678684462348861770338196766462712695992626674060390863400635673352230462644218457893403938348736786774385300588091906624571658218051669854613119299014069083345905188491109773797724894150853248323045778488332665346713931605043687175433249936668941187359242675685594585436897410500584738331558391268751452494703791619759129584565197192162722075231551682748668389372967443368659279467564359599356915390523875143832990103714035967864557302369914247197176953206004766069957942434123354177307220153612505992435670626690615060956967259090434500625614139680215394021237068574923871276385390902821308342118849353371082637624963886916603438025321195581845963181651091563904900697727979183441451787756810768034405945395442103903025167890606168587814265374756609389071705727014629065594877105188334840095396474831575361509922278680428983476526275866205961139960770159796731637086730433866784359943147342647364056473836365814044945211515606942979629661548244384733140606330779738140994482635117878340341621924189105888775946040657985679955180925571041480640103268539232946814294366112643414976022108261857358430122219887547450644987111690716899992324205020454812293081999442804842382063195645793421569657036396844716736367871835093996231016126424520201055493231731866230053958067100841203374872341536269360552614057553750077524509559275136043216030747803024159984010010151213661961723648878479763533791254860449395715953513473759873718332440927263722008459509418193688649358975299941896926010211092006550878955915026690594360939922798564559908080551648723148902214048454835977613768702188705289186722185338653222789149161911493376932538892565920799145862120422888623441149305409917777968429359963551973359969082655172974769061025943376134188080184548915787747424387233699135064397000093908341744350364715793162690484048649997567079095574264040599000426987506155510521555893568010710540787302144996026403158212274572079135846722861162766625634303891238919905900532495223384916835723699552859815705960337635681808438674495204733495642602435204885356537869153251401010132308506762890286090677293608414389521605408250821780624748642582284681480172461984573009124004681312851700744361042742617379552639356275660401625019311462177736729126481424343068439361183082903995584922492309034575009911191802959412990398286803928427151699217813456224767247929550541887430024685174813265532420504826520272680583460375753916241456386609594740104437898972621522231817412807308686243491478456930397327764380525952597466229491843928498463313454506056005430158164431470258415714909024558839549556906988303125111725653050226216479181765706013964643146553272775583027134521684532283498721117618483957233140601042513969779155369701035080580395438569440382206373714401748981491935712243941531141148792026975018522433400816531219469452781949739934291789964817635821642722666805382960497050512028202700903859223635998105920681392591146812575399756070904393726446641144689837368506488964058317371418277008562280896762988965405446869612171159497619123123891118859472464255817106604652557870129377364382501409404351396775558356180636419123133863752777414967462999210527867494973628725408662499912244564722450156143326754450861903820618829447157348538456387264491927230174503525057245612038271837651769932124458455439400475181682961275240832716022955119329178554097631453171674314074480390543600890116261884705741598353604066109695492175938265790493320643076121521660817832259512183565373720131241587247610257221761846438738792185972558874268403395114658415228324581451586475563702320786147002184524748491182421007107563712730227023204455113147138488694569134626852947929336820049312726324627477694745027228076360739689313928731288838478569315182715912825157713800350208675110056290920133015177298799160544296149106714471887654225750645796160092008280014942956872695236589037101550549954950759156349546126854961578779181230628395223434991386183399621124535936785169730720032413342654426541355913521599872727034878890092327105506077244086721073696343547641268605457083109008470785058810426499592520242817193793525467316001851098432577179724976930653376323654404050231666333109248269858638823449355105294975097102138589616186462128259457431184181707856942494383477119626419799973970579010196338909668640020155262354175802323405204987054185300464739862062222895244638317434223474949173647136141328886184544584648084604522604248981271757033729609764447946481451291048458293090057864643327124124156399765802404786169633899638077358473000498873775622465451007902374248836619261627018892447881431816190858700588437093359380668811685312458822006143568968333505252749499968861540034362362106129690971995740684984334337420791236824031778943585917713978124124285153744494180602258348543911093685889227859360789364302101788343203058504271763342963987824515588470113674868014082145545430062492353254469062595462887907636760643386931252837088334672978429033247600243171847463037719953601546289512593743032031825022142569007198445490362834737429241018728427337447655174448363957766897167871378312333718518538933967937060271361357792313707453609197088296613887610477812476121955267297783340860263010128727965816697430892369104533026893791006741407518290949186613650621195957482353689650155785783316203611052692703263761514588939275615418008915966128761801053136948492492887483616740350859263077749580402080559982286052444174852990998624631779643594475488412624209397061115941186572711813030396884211073007942794357050861039095922715886339383490819250084342270185421399473248126032340681755013319537851303751696590607337194040354060976015360972654439629926791364964295771786997746403184967984368924441598745938213883771607150017754894614059902099387473096512100594783655987965153003069650778265541722865789100977467377140016274448872937919731185429407911178598241025919178698808348131317483332811797127423351858365920634296243404452361622457832214027666478648315604329395266822577685888715953653028622142630561035959842558338604101508791905520398364439676261072691043793272557340218676084253412818474837396803035804030711199283939639574323942468873079880648078755817243762652359073874206607071772038352578917871376746100171935346592503944337965236889054498593844057489464658929064905696547611758180357315398143974834669531229980950260829475378137616611312882930477404171038995009280006573136751610160467309164038478114328102305239522021601585431942002608742148949356035699035205101713892445237835436348745887379546333863662701488977265434395585020854386285336694279291351223646120165912203474178806662172524251380853051024231063027329813031888482446356731282564548994421931321926623679714353846099756303138383387266297522726876956117667972641465176494959174449300404532193302450135544699543375670032742188836691208740097087845385708207335291401498043293158088050276661240035121448595838461249316355238347330247574721246176153172251106166568655181658355452583956879132231003410105497588674966916463936359932762549966563888528196653564885508821828546710376779350534509700748429827625431059649171083377248289813259029073625310990838648308739673486946298142116464732410018430145832392016126010773178286417455686174779861776054509610264359390219167442962247462139318319872292698655157519206837002995053933084987331103775600575897596588143955060970060470094535910229215732138549860878278976061744717130484462662780601178957293433468665151273143541815299831333293364854980605273967712492610479827140047231632523215097934533397275721731171668038095237907846021573407661246492777915469606053701738984391334104583110866858313743747094956299188637576767729804506184562460640971103836834958597376097980719412895374942200253946282926832023427764485843613588105616345117411707210386420018431393580152362164858257298380252104848582908758247102753820818150888693796279936572220522955558566843327870561488979691978014594573992743755718166387567633643545683286352394979465256259837487180258554423052986085382266852477027385441410394719146903068599044501463426241279004623290931609226520681937394812018046263079782472871744912410043864202455804241742844003669213713708916765569035577668128425387195730713082270828548519776422679799197725128677988889521127444626351589340263651835184129974668457730979586537496044995598890460710574256446254447851298056157894364624705994629299629297984635015490774465564299985574398621510832294412298119241940267784015153493916795134640032254736905046427738236462275464798182872892461735901978881549000087384160395869909282677049402697793428651085606773329459386471740069611184388675257398557809240685206338360778408278516241928124783937573711716884437360505705370046973363182122326044003354977722749656533717624567245802843964527144126017152632331549278682985925255068784689650304264557973028887849157208306980887286866593950883153308031063016070613872975464343125174927867504441632256636528138327048733045348845101289988505968380138352956256722690608963683495551159424793507284598718087208801952146976450658751258416333582375913055120964274375699569908627909197652254040152768712330733677979618781919847164362798700690937938450325276706284771923977061329791369541083337095756468558409916982351227262276268276708211011053749021268900759053714464438056206984478066079317818106842686027895332333424956257675646009614351002593996426046953425381627714412111542206963787179952497627886624437089589299466762972456641631191966032706322403201199817622796644102489828082436413053016758009555210392172807701228603307991479118773249128559643181099397859072191584516404881160827619446550917576617028880278361521977899539225751308136070196998594411549296962256059321344640887972954400619308065453030770358017344756897365841187617887118784851957567200167286418928601431802901670273446773689249403321550536533539443111654540048400168677274405489681424063243204752977347287720947499674614607787904876975812246865261902833418631894111762857677420891394284665685559342796113944018553160213817011806851810069450246487342321661516227631836066123862027499474981362895268190375841762237242387630720175718594323590263312827556518514507401818016994917830750923441957898994038732442076160667862065403277372858039761683075912629909765310003980615009898315919994462408728721670378654834757232574255450493792044793182752367389697686485956702274239774695110663221045511300080597927097263414605549239183130614193325411862084689880081937195801076142384614152967043573770555596968398202861639036831639089789230937547877907682314894078167174453963404843683460597581964731908152882054077666218311316530803663949582212393208913400511923149561575622194122177224645104085537020687545614415498484772081278268235534927467484500171318428101721286160624248174212157796881541879200165450832599015372877623826107611644384790117557004980070158742088233229444482719065554925820684580035114507226957787412638819988547899561546405263205193824892144166150698279368213418001959932320324028123211612863889612789953823032337303419747350207397058638541197468964965662445769482296223806333262772829890373696397110237544162918498881303473535932316425773536672427617773537642086714769827459678072838798883858522226639580901389030039467790081430568451007352263251942013246962323429861469444209768090128469321307461241132645082266048995483372121448716736037793588730985774050099188700940291835252799059489345422033951200907966633049746299155017100741445877618899404011152390374839560701716196222225804128336828994508573192104507546343526898570307438896363551150681177345758830439760368153930776776936945746887622080886060655201995885346853201482849252115114664952068882234893392125213896033308818003369476458177093078371108660689533061120077667575645826744505441226043724876316161558573074983297181920783260016546669675506405774768141293307152605094981685623328844592715837332797747309202925024122955565603587752613618344722688832909273389306725357293864640894932429414081270055166314485671387895204579991797008465411184266135091646863866548017450515742362119273085325664935777846795862223348796262574935373201054519710715307520313709423849763836803368469589515425154809327900083016739041196806862002799522059744901230895273052225690577579910748922520708270965526355584362621382318319903241020805037048602927627905265282759842101549381084988622460187656055842646591562680129354716055148681365910114923687497363145243280629158319799676134743460221020414801590434301806829148922062891477934437576135331064608761023669635743135836876879138016913750217259342546225215479127516100935211716280548229584174903875904609853591640837936623877926047363789906821543938849361203457098767759093659640023471254236365376425253460495380946966632563091595648994389962994825628749402890306887587072658835026509902459772464965610655193659935528847002860282617642328192121940811733902253640695279076205672667199546580895537415013113049658011956530574005632674153012907620027167884957171123214946708106559389808763459591062897175064754000554447335020817138674387088975595657075206119738051214030292409059896670470939951437591192499399285463118079581917879587619564713664903414196008800764654952476797056665252159934407010115512120390537350677214150354032595445457624311375352899876938717749847479672111673762718353997754424053290681013700143799620251750183568061681901083507846382883545566865265746567512916728466446102595513674360610640559812277454545850242644317916374672205762572060408965493348176341992053895833379407443543911412701484853051426392069376073601125883077231249983965863053605421864467160543837280474598910949195755645401075954359659197774288542730586051648320193283796545734655545160455081984262417781559908094844751111462650595630180441113781202899420721805705622887375869834229134818773601936539403747347000511545934456076924981350828432829845727375491663143397779070802088819580873542509398896092133935531327307137580465080977180420772322516765664188415341683695421164744229156283617321186382726197202579318564338824565955899197717186474450594194390865920833091855347161331678322619287195092446966784550827388799627954848104993169513066876496543323896887164280579569265909480986384178406366039081233960778223891773311004573675849387121199515909002589926742271145857801092444174736318584842795448728874267321803021151116374199845259205940073568300505146182506698001028152061997216886456825433671215561916907261719864612629311665809069791871708194859329580557741615801022265918634897725906735474447844647497401575791905415906131153285706203904360625152957442503800605096318235049344394147168262738750073830596468746886399232272885625443438241675838521831421943252311102857672169423751601194933704184860657194985365615799908921250069777182442699694580127151716035263989792750844562017996251587158372711520668288041970295205037120084762308555023438659638470607280792984684930647955034874122637567502067976029559943486151768015269170598902296102813592938334536647631585869528366576659112249494003564672890199837526436980246782919278760337678836593809221277529559586860799635992148864144984819103234769447521573121495050778641269338039484566331316605578478897906465144494550394918262563486494674945981189721980590963904468950201057411935843365846947267358070296696507711709942937049554542720511807732142179500570202568800820350846292214129560151855385980820426132263638847335403822226591814194707348742843117479325896971562076921715605546700121653817605708692663232007713451066511269752369039295905524094896162743672508396884484858204202264518029398210896589342231226497567294405002941698489512415801933978352371846019927344295116989347777623991658859615647606141546141747319931219539540300078554581498912232871508123121226200735424280212755873465375621584914146473195725971382427913398183669745379506599443760908039298170292255630955096343174967027445925319265245177533625272546179326452070731856530309656366718577074522118342844435608731763402457073166083959155295492499840798059605369734476504116041262781453760516463638230452727567394934444148152704870987826805687656981009582512292627528277242588003381725634036173752035025355273087134906800336507936047492949973699178958649232392495879220142733273366829759839770508402412111348299283204065670271005619565045246457264951070111643256715873817727687043860866563677308864572229232954532173235233847035948311231692757595717641768924320833984458598719056040204136024310889468947626845437426601858082811458487028501042967136610806747533216717685094243755218467890862118265722051238779406346609544996669486485211188280911601490800556618543456066306011375676838529518522197976756444958544738669325099608520633035371848220571563968897329010416207421891593673267096794805032540543315707013624200588757359189614248299951895129464100467065295599615916448880319162837023277280736156792134157393160498007865669713506703128899388741182586383718891196052619521211893711487094804275481115416710913773519066983836015643361656653492225340964316987445853420051680832506792949827381521927387681176314809624774575555701540986291345654770957274925331499154181024404888580783597536550382319756252635710999044310218763214126345036207752228394423649616376213002935102816140412385901516792854318906602532580474632172586564618959016318775604407085314566198757211493369255486176768733762838582419686371337877384253478006052934763389627313115150622879479830687461656837079623742905267487757044874188817817486383793421037733907221381169963353523106734205319202783063237369400659256006893066405161631876021832636994267074293235903330479042811062790531631753409679527752091559757970710075391867938377574948340709479417999191942304251931178839675622995209695595965561989982685444104344254890853521335050603990808208950103005727546935207572275981556627709620593911371441254840963514506673767468307188519625928721280865479081250105591338875251994800623409529050268400566377827391953957444216690693687037781854042166021705594753313262371386444735073837822385046141039266316324461408532999428404499999588198070986183141662163526089382248492885227936246836155328633251445025039425064608244173213211550023543871817610700628872192957302044871104108148010909511111854202534304908376060841188960501715505667037046601010828327960571396728383800355131169520487984578604243741087865782905105312351735802845787259830831754486579462163469795053438892892903967701687117509906096755656789506380496540653414563918751640017721017860973818261004632030356740408212078990329254678721646911308595317760942435957384233248801245864527614254470196978179430122497883873905631786257429518699980142052516805864588670082923286141250237605765786106171626004589852123212980333257004500024935195832822895397782743972933698243707551166381503744628957134065897686302316885165549465423634874521536948141519335723536886292873763391373814586119548179076646260201307905154287205556838264954960174792968334528716919500757426538476168201851741662172253771068183819890975752291620682545949176660225896928712240876251550802046332721804437387072687640195831193229256636873459010120475206381186705552162379328147630339809388063545083985800695218475778573395796272974107636343858407677576270883026667385321102885141861328502277985861669839536118507597586118352149593117743967656463407058291576913700158680163132221063455031500485660921972019497728672068858184079496738204592313063377157025163282377831482576820011728006333696205745491976764357406359965142065858654224170143821906255064780299810645814472461161272318144313081409605737905041439470798454368965502154940211890841616216756865761138202374899233287319582099824943252071743755713271920698535330085795698635369073806976709712057530576272655955516629197591543218949504585195999513224680142195531575886889370908750570503385851958428655496344648923797111895218702524359665300112413167433587326864319754237502578205683591155542146597847352648617247749161422990641148755479465317251731621366657044272723711389910702331162391039324169293387036688616027026553727735620187334246340631879167961238777603074689368105845561400278834333361951057252250214540031912041018809381693889185700110249613256937189000949428506964136792876172391920265791131267789769488013253601903015444539804875615668042436444296642809712692825115115362096072969278285786104857748225107403420763322533023460494932158502925046250682412478950767913950101973443067172501887260941219645042425755205912580110616856995237378410552102167957148251500562653720788302508280809632613456144578977892666967660157114167711952921758235572752815454429803109694954059984770808393584156732467249032512997889559682807228734988582279959594012807708303815518590409749945105960196042380264951453128398704765983662593363423575346373299416575958961180149558663084915988835108239676406239536417848296259128231731317488825956476103888636974885515431498195111035449368873039654510732470905792041712484147791429733499887553342824835106551254409450286757121934454874537698692130236220619798211029700148082507814331790842814677321204692168648786441051479879041299137351907336970388690894005163524389064361541254554487288536455119930043587690952720377494956426751185754128397515502639978433115327781951369967015726902211254417064691283699898207634911486743418803175016466697587995924206336986222916586023874879250845042870002630427751629460611871263367993329185917227781059158618715933498202953546391046441491528496630935334574917526533982815644842979577568528600556012201947307286593347670297011962828028211765716700540529196111588997989315010661748189882851367350583966576127077195041736766215296308439936039967464751066182841674870729910950102035130418090266800680749561848910220721606603712412164883062270045343706763326844602748900289814778162401894659980965522477158735314987631334436410111660330295499112724667130109531530488448054439517513357832526828712050389495695670374306854272076010574813248194507035892006201348393579269159017149431959081347037343097961791446980545854979090397943930569952651975971161059707390811317394686030997265814282152039911561454506144436062491362651333126464446523700622159491781592748199549476744560708181610803398965264818881872766168488011842677871465824554199721958958305129575384246611585568157382261309038372328937298572894174520760606536748368984794835168375112678309316994293909784330652791253839325517200828983425904022275799242768701775702356870881048918139377084129822883252465347463886508565477009312223031026884795953620865222086575820190292929412485266839676531583010949293585134124813792142813469369133990892968964909490540892904030554486837785712360793285378564153555989016667150098097070863297486622838114023866218917506776260042245393417462881966354755776328030964323136033738848357943769643981727472986344870502129127838038640850335360914097839315462579126947764514338576730066553889913073850483487780472450810891512397269304188727499429552614738136762930095773066416468177400454809171169797348510888132386659582360307458630405247847687808369065868336691056338066277761185076247712966935913002316127184578624870938603685449395491053387752796003367121306521774412191199365574032340748872558084037807677409464839300919298448462436053546205528476786543999092971478989579935266727403027069920568132713571287795615195427618272422466142361525924442842936340571611632428224808051206198641335973834952547136399267332783852551199035535693560427379371201988227959418825752904077448062909529237783369082915714072589625737051828845315341639315231512248303233543386283345273399654924362824044207839212939146882399423585390590061340441781268259562910222482578075862725426595858093344055301509854651900105969856619544135239038531721982821327075218527874296345061775397081786244195491175801710264392336000976810280133027362516376027904906291647490462749609159069022214725715650188474509167427597935903656003284071576307927318681465135669369216646326833094170240773855146929441581147270651269159556593175527070569662745636083838164549846117218120840145391928115582960400138686478282632779726313757444366556061041308435998821813953892216317014030040859413800478441968461095020730560506845571993064793007451505204964098877802249220817335190426513225996573133510404219303554007833801004330183215331483823418734468343356321997808258904743025565192561287249392970051885453097063075997236596732782102380783246370072733462974062571079372594196268132534362762714581664636396804284546546069887066699700235212969747801995727398640583422494292205675196727667873679352169910886777505819913928836187061164190114925878669452313723647924521026178200617480736381225542342293096453992528020847727098825411489728233433234362210848917167464903897190413963951919980219189149953929501361803087710995807875772952001684515032189289387053802600225715700751953770365298976826353658874472602647465037411361509080622490281341537982287227838424221834501335928375336977860486594093837704904127856044209591065536417856064166142720420329030822444469754806458481685993903185731387681948526875164169214110540076739393559212920579119343108780665057044937562441780988307544014549647990561945742431956029820921453759586598967396680676532561758698057045530604801354604006783000248518091866329135801036530071404964797764609778847330194701983348090596736521109128578103671468628370652396837495247640755461657076533248329964702786846976667233006076179996638834086947829750059640138398037179065121746282673326246231750781850421213714746577247051956224073217678736884575919712593412761440318011795927599390400383084647835188681909896511123625553867612825755182462874716878530843231563206153463604335549839040083744148546403826441360715871682360675024914928009922225971453349313294246130385029546415435321429236980767096536060750906480983628668948977743074067716039529730830610763351935789926946397171796437439685300638598483214149436747888386512428567137614003452974649968192694910965510042275621163964925230830485477544401979868036517938051242538363429821679418687737452048638653061833623412693606738342360515497669558685169186213646435233141205161780580539112892946792848992855027816770122696472181185654847700357849710353163548702025400708403663380359777524684853661530737124585706011264828202682612345239388593858048558628987275928750080191612639074856658545274440573278887851328547656976853467627669371626610862627667303998250703281642018443753615253190372931360367157311263494432557755545386361600254064154747778202388746109917910992337205108607133445233636989583922570157050406313101890661442506629345704424748998795815738619728759881148588762408565443983779268032727523489965843395390891492329038894463642887339689409493196811297124854595650381892009706520387560287790390016326539163383324788642314916419649977897880023243660392540278362310789245964515303115851278460019127382248927126820418363568472621396653805655946147170664688809596076372528088420239027580321006775052942721842120535673242334388312140545236445375136835729199462804338536980421144395518160566145152220379528402357039852922862293856091882711612410714522310833891048276353221503158808292562131464124080589098245888592153935442198431762381887171444499201653099963785389303535038547755264217223280213794233353918978910883836597182016545537659526990972905149511181145216753030311583450690730248468903901603018930682430378996162617664278568071081140085731549337015666193359634716927868527464569251612604909261037587418766212497392444705017717762775266866926571111555574428910530623707969889677902744062259512527718791729264758939548146306395638559435580481115971448246445463694803986048586130767046162099032225974058344585790502414954818908181017829603917687813672305957427321631165474577061703805678857941920285795048041784668097575052720300943029496620266006374889027907235947427807330028888954819933434596665420174946089611371267019762500576264417306643292009830227262527640080258294038110573591444466231473605325887682367476897807008941400881017628802489716632362062100220191556266435205899976921554760077323433827708369252014769509319747584048091030429130975124931716744234208471376357216795276761453900490315596973130807168943375849487457496704255712573216374114423586206363103058689857845014056469951883352397807776561485675514082392360706366109705148366008689367772785454466176775119554364698800129995396665322897255425448049899215068995536202125134178169248993310254920387891014534386995807737425670933968814485998637699615498367541130737129081389481135018418207632277561426373984243961302309923035079720114222402376683433334119538558661411120505882419809906566177175557449513614313992214921067511561973772248718053416218943465051970148709761309119779383184260268433672619293999712791699391209506677866804822850060979368379266497447282825641584228348605277382701731906851285302583878692256707409943897209471985909753175844594327794219352728941702765566416332982861152446831321254762451120324981365195499991243926283745019384695226299720084797256625826364831633813942489491730159907191714441895684389468059712891845478925665308413799649945789782764620287756768634573424700049545639417937361402494759587857573501956306801105275487440752157458581658112296237423392376879676233665207555533293343521240299494945233776128258525958723844739602164150537624253393913004874785687179216726330453092053982431932445000591629588302364846968257968540490028519315487925622650743123890404112584839925091796684874660101265816884482621242594153111953526442435466165736173652979000488850335968275719891033342167562475771503698689839029857504707647733847701772420037044662979685604052211941606861815347381546816419660372055106876560722594963994395148348836092295231272028291276829412123710374735111975203977140925910730549545354929228517724974898254600072391185308664725123437734677226657794101576945851133585639083889967152757172042773706311071816082044884894556902617082855541436375603238387649928329460821423391581778222178651510225686652200459750205232269825378321780540167635648076777733045679503468856141588588662116733640646839181339993776909276507079321111767323206927494656148173948194162087687119129031507247816106153422448582147460870755347672612731650353391944850793959324906719112071880324678601940153048913106657236198030841388148667326417187101709496530270042885079976881115227745157496347057826081243995533899825159006222764181207951411666340188147147859315052045495358883702979082112758448040420321611330057016576378258701653943743037103502097746028941409417624763287162496551589365998813575351332950379148180450750329900337584283819961443614348403382843513966089303850853987865488556246537565863213823041527284096075197991434332976780926353692805292845596147297464579485885087817001222257934473333724930741413945933246018044607863743417690707914652079830031309479199867606740952490163617503615060392096335672450967257339527805205111389691092967591273294807821784649517746676792844205630373222170668699218247875215932903501538506073549878675907993661616029503796636849265639297079283410666492994270431186091495362691073918098006614389770446238295235993460842448267746534111263854169485974081342505010134681639213065152114675170488736119606520751994159829115302352136903328702943052744035963844675214352025099992441092255788238832190198411505050057176377953845497979937517484452541073783706387429833991606035769978567435019090363428735253463266189222658407499751866313261598376450917127255740299071194977112809079439651624685618031903893955817720611998116983078812748359568110151443852739460055685172541770186736233402446453658807313802930471980231953461266371011568640126364385243195931822346521895457752383282029996885183044243099689040678989682267969189774391615557359577692233379395693460694495111108397190778398750506132668248974951782373321633118483505423209433703918028626651427173910594265876871194617753303758045827018502167135671553280196722655410557592564951904285560848229070477729818841040029499032143726589949860076528340766729388215668976400381010516987063981519441189841472323085321918305137815832540972690231713941189117067419525900914841363907027996298409359198815599204062098466792444370299997975351517189873278895495604197396125271421091912879619634502233024266749487087999792550144945346837632627908246674455752180229136685862528387050915189092066127566089337827728223009495675168504151952908908317897668061395522388953225998086907781000993866492270860525731848799205608491633900811894294649739896619232481628542882163559363409736167945920829229342276227244797488022343623730209865177521206857896684254344957877601132045545515121804995131940674070272340476625376887081994058723429138424991396197573184489661088113370481262054598159065287749065183859926490988997567147395216461717140786913006238300936141331434267374229180841021487403684664891877040777320624328158295208483323557123017807067531688097122515743924099916351060042125108691747510642965300736694564323365393094665240264358030402431529713954032616563736813781440021583105241235827324988984343841942840406198700420343775309554701104009318092176785373493435380194765642555969414813599400905512814428568110802830993457944276842589948246267286487032485705935114816748330301717412961454914991524006133954258644183276986465917568166731800254792062156446840453108867481610209769456073109875976902688468905993992661742171311442691287824362804265802510024577991225230201693267044011528454071224698664884725557130677924257416972839168592804612987150765667355484484227371201227064807340375905781974442532733233773991715300470262936428991926351562228332370912656968900906623278415473436558081838681298738994459572022871664118114111798493804097899004474499326058058928032131572993704446872507105537519056943578587280733780868402138182184862616837193698628707426647083331768218480614932786247573966804046933906207394051301996715550329199388001364284157222282280211364025870907050789985874472754329202360022436038854072733735183280845553221473568841756844564610507876941250470083001533977877986746986953500216275278768218931330076458297988825667798009072179883450341773178511253305539165842509160145707439719384352210993358656387436432486088706946194697866178382333011232375194442559852249603363734784767641866305433615415242463224912076012645087517045055008951186577118244357918993311474401517835579356991489202022115334544116999875741170793419936269580971406298285269998416483509295802329768902430634100292220140448126513008561501256987438038536532816741738743147947029702971733149574211196466226890508431048802584179423599597105032778970082567375487714732699584829139570160072338245589376548241578604183366295095351526802935527188433210736940196470656460686525197245490896175126417891282404575232561189819993145950901650453153254053759544798014177307475689737165411962779888433879171770278892653263568017996542048443472617974660066999643653255885318562228163950535772297339032753908111319415663379261256930575974142093092090047218568621543581969223444571784091489429308023502216290514035857518935710297708488850406410634433580444781405951123113093852796732961919760101626763524064300143354303914301124882516017453876472338373732522403027337393168574044078132433366035372188238022482753183800153513474824219841967954602160459300899045428619111159116445838854422406813807261731416032800942573539731859650458095792149648338002792571095247309537155921903903278676926739436937239292681485054141832253028078064380280283196517541874245530425306955165717294867253099383913728790841594050507161194127917422418795439199656063454730518003912557655097885370099251919801130470182562408165352380670469135646778378207322371828619494771910274058475965063806048592761429836409777265742420199888602451491331739762115596766086199760822082801595984346262585750059990003669364547455314003899487323196633483037547812617057989451388698769418695446676551650544414083468771893355109937350240673119551684623596121059188298017682117209337387171923576341024372225263795559826669890498064092680080455798956610541417505375291120364213978277267418486578760731945607750342602624112114120074669960586754037584258264141193398471275037219207084555972918154174398101033915870048568190973323651570271674682985966010430925209700343312558355449512057518008914462260727991184284549367412206217189569571900196658760459166366011629937298675587890463245654850012608722398074187944108207627974636721208281095851649982314189425607356389512832070648266957739217645450912782735971925041718181504671067118029741174797146899884975475623792296685249977695258864620600244845239960898015188744901408006600983242233502716916882826188921140574141101815899813079342251021188525725907160135874731982378342561175699587536155169288237549539645443261472091609930368790014168810814886664941850218012796053865042141273895768534568254004133671265564140289235197793727581606856271214268098433849371228061818541909345341736297849127419022268558659457039071042141754644394036678346774327418779731729079969840595824494653679396897952134181079559306460629632761616759613114584173626120759169874950999782749888097570799922041063410212665837275497252583491686034006688937386299236295228390000980464330855028771356071088479120075479274001835882784313427235082021639242148043161875323127427586845996295791919771232045418502295137637153126512211808004599105583847628642683283116875804071548510679571203881995623054590231183135431862966821534625235674486418648714898410196793971759233551982564959532845978596435677898686834398571330959814061203278376101569798589793389337959349522766568843520654486191357858629244032166523693312776080719271389461331400879534280233719417432325458423386230133666898238107988855183358504204734253929101246531584190416045565000889139949008249821554647545232031489748549537571696704579804074874454411915723223701459876447737702570257500598724482045336280696282216931965542870954181254774246308690436710877567826211479607830310364568779913885036911669917331593509128216556628615945747547055303295562136492972511966076741377981346413944130231531401030016627672492899708047671738007166472504960503068982791115420108740989517239576820342172627326472237649395854098393427758931518465176612967584358553737983182484913763891443469380390004908000303727568782636503376700794261603242094097851823715405060687607447975529989087313639269165633680490720077827623541686081612395828699492567198439858901423548414878976034515169336963159946149095247561547041436333227270889237457716873868048333532103129562303208306186499292771046156670957069738436938978415802478592443430139996558610198908033946204682431691555415397133069579959207620023096406351457601808777987434603010554559675697414810840427360804863262241523254198140924403832785489766110775732974595538178723123121312854171995702179448796666342331178957054355778444955301303290891525805250914833375782723870527742899809961109518766827294870902449168330284014194523537655195200381557744591707867243741053955149386678819789719615005148068396682141475040748369893503937753111908945673480995607212407228361846978276160191511300914732295031018899695106420506698726855999383757182663446089805756650607213114047709885709376352519172183242405017617973527898071357621596524546467279367120776124349503205297827555323488823111776252288950666918968824328708096943883494987335712488596147272415180603000375792526856124065216124734806629196912168153975114739472295259856089235024506081735714600386861713605082955027619695894830713814233356972120008033343564391646323553295132119012180493498757431692809335737205276391214716501883934382272310315132145664875973025291603176873100637069178469760099865096459912011906483993662047864199528738506243600451104104667414188243627098746453433682566058824369519344259724575107493284080876926780132474873204799130827258081476732028303215690943382740332527557697265240757518930983706667182285669505441911546297747400287288595557174716663656934768406891340797630001229599378922151343059899800255147343728000636445563201219842652638694889199867313909229682081800498176727555656804056100986861567382899000456959309067039770444726387324524659375783022218355816477063860971343602777888954784676167443252534803744599599334124706959597926838273874920237775735547703645255243350711725167733345174225144651113878862771933086045711382160808428487257164928102914100697006829217538506418183105882270112279847272882967978852916066649477447969005568238932723307664900161691437350723926468488956248994473243041540079853547792601566410765881337549878388464161944204366681978296743228377867278172893254558941142097373612076584071020499890164375125635329128229543291554576915610510209866750528764850111152913250024269001604821538470781016304932771064996988650034000212923127467652321399153118128535103352738480178813381841570327735490716024483505940600176964581832330461668213863223019189976797962123602633119643048527643151670288265768445774137162380958942071149153985659446096960698968668696979486589558186510853848318169569020828089583063477309669814639350632700423284829898785236801419003863777181152622752591967939456563907885954709968491464437416950534102374910676537720715962606526764452289632744717112032295916091166519781541151736081072059017600071403138699542470494520926807050928927714856358745945298951790408225490965158583131256215522714280751703073933206532111358923638805830562161880908238895715853541488049820417178785365740477825336195532932123862152458974626721716424272440466028644908840705043757242847527052181636035602862326614391794920335889294177983945327616263853448089317006724760478065254824596161971469600367467554500074176531020351131270901153352714014269188610735322395135195857758464208340229264301199100555294788729412466856163636872809708390542059603645667188603070841161108952530628673399913869119426385745665907780957549549357145961196614863468417849112072400934346722820959355650283482886057982641681778996294533891665806714353732471717959977298706202927673561791893867715553910470099739064842577412876794505774337412798326395592155123000919550970550030994461219000947326569854237143628902832126691660870775072760774415984530033680065316730748002860939857425440786701355507309828263369299967780263214152042834918129590876937147613662184704929180932117257730758223399740524626176469501370452579821466514791650864061133136967852918463529125950382254596571179940918894239909297621430991469460370009817227500132472130876390543908024039425958270196713622229899115452646045139940588914804168273956348262554426791562861566297318853474736464612953507922630227318024045105565341524608321964281996636598935289081470706768292545268073349247315604162048713718785619326568261373677495452400837007697612857437943786394289523690861813255812050760855176087217809990825802458008768048145706674129637775472390076738212558815606026089645722861501698651061017857590045757553063722499530969408357489175496140830744174840436692496691423303088496484033145183124902974331634636733783507706368253365614906247816138347505255059065904879944498587934104615373492529070104435862058225535480325811624005798368540957677081853580719131996629285690744851565154467256610239916951158915762863271857394762396718758374923788278957427650545599727960004518219434692210019504394245481997644467882903474379437988050643522841781831354638743260668588656318032195127918820611120151606141238123825065537765218246563801914407830315459180676999404802717270751424590743223383175248333804321552832230427383766207313980993689419901594849394197861879674752147133610982283557764474599587191953415193500889589190488060781870437400433815579499913044197694717676041419809463889075283149555252594140329187346180512344047806374992705398962143629670647093051327192678527419697217017205073935103710701927477076804682360370136948036695961799743700186319739564023205984076252740358388385695262425170257284405329903691028480572342864648683348114402205753413632642985963948417048353165235110325798153793995578485642077154888977400103085569616321569898977236635820230848012727905934205262245671823556426185896078478989635511020846393296493594324565705605937545575719673542697872447219148029563801138375199885768155481394529656619315472347112257350104888088477043394267808141184710902596336941090782635899446902392170807231142536379072491994405941885643692485321826356182734139940144206553293106217987196841882767870798688446382975110626223796509428466347101320837978687319970573885256044234395122184219604730779291059551966795346355794794705531777088526480007392520342868524891874662888417262584432288569818513199967394807666957821062892031254192509803924583016721039578515732072547335089443238644533085023920606148225092272521250101549758498595950652040022105753546688445940447639000402314417646599473378654439415343753574568016153325436080438998678513199142749370345567441121297115839993529093900850104716250809365908281173516195471081460197551099112582150998563669949905974324525324749815701104104524172289796194596310111030252321581478639706297291990677204499312433521161320401853835797162308690777752226573982087896703525155575256814376580167493186874099179108342826601452673089717833183763132263931527225003120077390575176643562929553425915270768019016876265537403406354665675150481305251483688852295585824646342506940668404127873936598548541256546634273006713917471870879475458986729301305506855985334981627109556163713505228772276234114863797288233928872819912267667649801683610827913864091899263599991853945326959168122399389390721425529999870138331896532662171213427390763383735952018789179410793569987385248727007191778964888279144294502530156815566142594701050609169795219429753886877876624031855932359628762003356133950790947253087511075213017270869908893334871654817014353094854685892417077072295548926033543106041316249468237353643500126443091157996537733337372120531080515423612887840176394363115608898579993899336078860525963742733209677949817909256335962303646114724707787827934968029563050749978727805706963342432206419700821517427637082386005599203142967616084409902144510028195387802727960470841011440054309437538717297949799222438070166639272069847120066810517691181865602149743466354897212110310760489901139051193706430266639998758158531809955316331621629358134274803197993739397924376851836931378897096885246739542235957922646117960227228334227267775161960120150161417947901514602784438562510167776787275195114135534090745635189883168289638188757274804058710897949186105852270622833154944406133689713310818721739173836578097988328081937577217348215228078650339498420668532414278224845860119930144643663079421606846032720063499155905353123700522691036608411445443154554016553734587328342284419366462174709787438674469355805022948967719883103974114038520923691093422336632867621138532480691574836129740805962019662685864608928269293945765450464818381835997513092190091259604881207256116926087128059349038188358895007680890427867580351094238434621004177509421445007379933672778538819498596261447893390908508996876349769944080815240252703794944304999145404207678158472275197892888152864981274971953510376335477725431603099196012848110196553911459107913262179771733240926765249445045091164013215560523821204210779874502735738633304891687479551316662290957894398478454838116709523751546624083447184686182916391810986773524309962045313950094081637538003122914624210545101692968213906492594284365480091083361716847335337032955017486707550040152184569456159342679260541472602019225478428496254409197104066727544485269707231677531446499825025348326636371005153880212914508278790779929255238139405400391045472355097439363854870228704432921387332744972859696240613096795993398695796990833093737202821932151552495057080525924282970841957663431641897302188738816697616576444415515016526513911168351608761101910670545183082618886797234362919430146373489767069479243142764792283280875202031212091313459158127924585507261870522259872975899801347363933875992021469271521078056092274251244056461676053286185305997081719534264462980285698053328761898732818377282599054597470878694453630342857425672367259193558430459295431192547806554593606041113496898309705334681293832393541585845092404868922420335694865810311994682417788493074659562784276434845208752397965041704337457436581637475214585074099577997004369311759165994978325528836674868700121513637593203689782686497764446431138927543658251970293951456151237191574531966863304223309219512756043609496542719170108552033941562894241564107259339555739935609789840235384898279823679937733933984373155572792384297554262149704251842814668997863316039025956083765881810500191877659828172076217895347160194130706492830060036698695299033118632249225853044040163107611188248562389450832348521692795584501500726552081692799522585999971778818687713092638276881383359503595509787507762464762467966219689278891956755878669352884198240749770535471494154596095310255347914752442730044752829782396490943424239759739867534117161201902965812134207578796299993503138962977041139780426653323262889702623162815830101013601711715508755827995410352476678979801920969134400065983400618142984037867008592520862404918285582625275650767150303074882645942623127077151900931596772449453032311079577304173517040965755239803634267360044364814999808029363190155473632555869723776585933962708570087225949032972209392028021480940384970901155872298465844705046366362224915373522693215680332018930218033534264477783581020871702348050011361498212587174242587722889047934682427491826715248927927976277819668238152202145584486676053679889460279268462530772980849866958760700485449969781014558050939378310223309977927027879695113905131661497564713966452367326958738289024646590382902401095458479739813634989445202845394783233272175299572157617885966404987893731592425114942529878458441383238864100141246848899848953086097881132624731289131113452529034434569404725147191020114458254146316585151727648186932324022293009672567760343218271623871320371898100546366056314486929389729370264567868105356677689354272807954795310153900728162130129342457698966067991187364370960481984263648212792170930038876288419730166959653243842975846509507154170572391955242210223710872388788930005029410372645697803101660358721646276094160364641415973894644896931761258580289664077190513424701429695091961556030274727233915150629687458874092051380624317685135263393715337850337497111755260330008903646601516730981877598042711200304431820910637317879941543598659318090243269194747603798211469789144524147116849452429687729296401114098245712239181789565714282739200957358667819846409608593380194792926035580198788496122382779495312401009864108171801820299187315668931628092238750715904877498896359639114777427772309494784780046562925745691150569142580001438188719680440513354624504437433856868062305074990637750384117014322673454530487802232069772646354948845029202558516652731590418785421679025702082107045733437956337338070786173362656578910176334457334236802323305443350136035124082614088850394560380768190696489167572196017306715970906730492343029537551022207068549248928157289987670464565369898416886250265758750802201190105545699649923425054569471248650277641474106709566623207778586442568215289538936297310734695022338482957816694671085496286844977652805516041841816723413252351314743623461699968027979346765329233401757467401339041872626442270269690794725057651941076873210750552037234456798924982378899723940419815141577568841603883733994913531289003684561399810257947482560164445626163077684984955794963993799475243515072581485655601527735185764415175104510767023416433856156726878516029744490550027186883580034103396376474089404572845895874885801077740604254651972302502185743795424684125218695825317721288428061373310127942839991285023984801688430229018111683136495773348823830691737831855276965350728550423383706099513724243932839893921926095136098420292726028113775476298961933812424005603685875735211146023185928857118670621623656749385699782354421160813643013700538688453607586168734504941037464566040083217489130707617593350449154928628585828949554630902376473194907471435839579484334543182625060877047828355777717644960917468440769147196023701896115385195428666282404145448494300486489904410960284679482200363900096227891417061661652055028274419066544816100101159708018878581045855262352740571431897514151111995379784566391064891665694494806795472668134885481711360671403607682887788974716543164405416239010275990515374763102191795653453685003832324669542374103842724088940493806627210354442341908271350106868915898389592151390017370309260799330006206774933571395524669804737457004800351751509908435840041091358719628765707642083282038668545499795546185862487211947910549963831329146519505738468049682633990902120634613137573496151580028291902997248888601572502512730795133035138108157872051012648977768185647627954882274907392749988444323474919401012577728299869651321880941011752198193362618365945970479347674710551230519340975988071755606173130475768343478784651248517914951874219483111342929500567408848029621038083806484768449919340783041600357186882957907772513018269645470839682815061037593559465135979665152250384231696763518617700108034782226974182084620162274767681279765554600473942653972442306506219390749216000837558025442512294541366738420952237105711273968379861445179685951392597976860453172134511331858070782662400106356090621067514430255468050155259473823080165221721766605788191055330671648823396786219877382520075189076783021425178456768475575840870320790572699995276676673507470087740442309619523295244186933453853806452967275828925220097471758702469063210299797245509249761946751516216069865162637315285492378188988421057847442990751904930221272165419956602717242185531341059425979128182982519716049886386816535308613846653637117534687850179536010917913098504153560974095573978852741520736164769319886098105725045080070376851397642489574229211292856734883610824620748800392335295421231428735425177815345360053554052541243790231861936543418278760667794483267506937529931796614132696228199873239853006667524336619023964848570478801080797594050450250071521344767433543024097095964283495032464537953930182675151874030987476225051045541986905987060549566359095211132975441149488609903838262526044023702385587458500548272673117340339214393823291711304482984753331229830965667398990025313283803850546790628312078971283513531194016376691544701817781814035389686981057491932820287407385411381458816970637028661582473951262569086632046512680598732614324616714584267764971199010835263130702683797775391725993352207958070695828214408490173454643165924498466403942362902032702944935623151097874368135014100879389307218654564919170620639793506192901472784889950837244902190494408333366441362941228022530761831125307523709448729637818081952300649314281003393651852449290351164663045863211190518374012059888613144984560205632520466693679598993614209295585626558441215976366132904398722841198853230818324627213829433863750294712693752141781629157663727867460007818143471376792413899412914903458375910446913955931689571090086304421318347182463681428231201141629788734146016304528414028085862278947504351384467131699760359692769497711557095590076662429681278744298827250654548835402093844490758545402123386032072856775404027450900036524494736608519165542328375375074385290184569816973498621986535720035881355465747474232571111069641449613622423802417383637174124229886853630267479267494239326915238395437395092077684122904633492238100993925275776671826761338610231566743908216864512154210416428842321141469039721882118391219934066358067332931675314983704706803703689619751674966968984890809814010357310038454944711217082586280671906253446513603770487526963149816596036508202758609503564667209722574229318972758466720846870122882082348804828121299823038345280149055623721048972891021889312784077029374557356107848331694727210495422121465892336213711901878293832865188716331399758154296805660484386055970288974170124727096299651225816559667391951566856253197393424955243659979629759115861025442134041776762869682367705787639719474036070276849419469906434968897636278405985716922676080094857338249680114450759138447352435308005016479595356894538839574158845897456242765219949303789732936134629925584004178549963257664414676152685887620685843057721574101712103810680332373082415320380617350209806590726633680092203904582734872509808015933104714377160790207913672228961271972067709530141871142046107024919459133693820989178777966648591434514446981759401440495049765138849489638326274653042002330878675402437234428354133147532434712900670203001602450404457916712480956485017213818098088991029276905971438140838415960680385092375177169745076045898494715578854064394999192387701776952984372424531725122318512369416600921874128175884685605855326530131109394691904619947218069662440175889337339351640741549931381926947411638620924471506215439093531651033768379196394774025717038441695482413737140084528284988312538892183891789455468778897089528860574946573653677080985362869779778914671195963235611814797372874128153068534891340692845361318841326809873807655247165058463267572321493727783643107958713326925996778846139413282833230245345765237788275037371700834724702231660668414770043793623492932724142980842642034793770789825574112475966342796885230462977183618984905115067344781130080159016649184516819215965948502492139101890569655639073264492965489376858584852931645371136391120650495297435140663614123152176813516100358696364407985404707689931070116649473685784768754843046687107076243427889571600262679460192775444288416785218124555500814286486763842211383714323409299514527310060765245237769390292703960404355410329911578111639069309900799203986224737620888962068892482819553898434228510112992193148309554841387095071460482814388534492645618373257087460130831901836074954204520353817206717218570873719106368260372738369884047743403513438132032543917431935031012821102917496894137914674081811159565479998920481076152529726474448023722080822700768619209131462136833275878019737552665747748759461748823809562439154880318245803033163198427334971757856418531012514457916012955694947839196371837105401791519381909982551623270174894622645071045860097331801861163055154614264372756660043654134047201211935931548234413404557014904056004313470127391997114063373167474237652684222974952503165860320403259986248218652758503457013062353367541025123642825428075234839033754640917880191378863213213234159384200881994741648397212901140091535669712287016077010789890984773474779044772282906860670646131822742193079000434991897978219789392276753619578083869035115771766675648684426653670050177020170422708122520424529404294330465959594147191072956086423372129033187961970577884540120889982712680910794219362938717379683482948378702050348749814336934927310258542109387540537835006269217196190751742126357130316800583194622577489086803542938085022196597759039549106278919033015651178633822902619531884545229348486812723195322859667561337508344606791215591148137990162794130424726213782819114390081674175796127843063277866471928353147332483791126564422224147874122807609316938370088752220688559473117230472874713171136917318882438532833501694420970832752598519044760669069330413887148189703707205762903168918097795891833354037655332421689737571140718558629558270748561605714457132579574688715026650574366781469894762542485448940994938599747304437891903357334394909382084439042198728083844414646690095839621692167762191376332468492774793220322910304377920396542658567273477754320074339047371742035233312935962276940974626434258848815624189613965198546805639936222362849660377465168102941597625852098460986473282598738870773917694397945966715088494250499406373039788659817591361445227636821732061090931048875800378310422612212303769833649612395679959562263458778770944912952067610884029729812117369780763678383698393806878107509613433208439884848655273286642043215403916757113704369309893107260637450901882478926375957579922081963843695703948501216943563181449422491597840219804546537794098259383132311888547722287283519250192487808522982404997593951900129817600438503691239149760422293508579182789810356428260541168758181531134715517116956107645359959598139754595741474085623139986684221784420057158246226964761909782655488647014954171267351922133938535445453319703110932754362017247445355387469332416325322318565642938992886203615445476639684512384960292502161788603159799389526908032028751176836620339778882826563785306453358905059241555271922259671984182778223555931481209367494440788247378742254027329085172662020526612799586497184264358227837095248670201296952605906412145803766455063064537096919291901759483518962901174853063047738093033573103787779854336501047775632272956941134187310371802019353748823023490301557527530125336404229960301461022959323009301106820957317061460381162086381798015017400476428946498591150502202184515910360672857896511454059131295757053843061362682848296983121333732895269503974314628533722483949898500669618373578794600142357182331675916960174683089895700047385880246847648506151360842050221116652991708440088041841237308900963100920817176661078717038757903180532824926033042299521166387971099575857057384735222097389235428167183399175563763831242061770579029683146572360562919764562922025820685926345225209025436046464670395369481634141890900258519291548564007661294016397887331361630725851679209134366392796700601163927429912020106662169461170776469737770078075680251688981889592373948896056133530172499736001076622386406360055018738373740560941890462213575145438365307871499006351131172110786109833611714617965327075392839905379062153576343872028303858738047185541625092585050280441491329710984525494095598388085830276369696783634688469178360713161987868305543103101309352586075744864874002559519459455030175359757303400390075100321336870858136909562721974582034021920625020720328058164515797014677910582613314960817185305910374040686156119411696902599832878844702784419995661059111388834013050806727030993511726045624550652009100985047196351787844953096378704090799652649336374533918857857521785354892815291744668022024023198919853125198184123129454348594929078806065062827495022351107953148074691527480993782742395605846797535436492342863806492341601600504149853531297865307347655754477562213476371025447088550997925519817525549153721664952593361777374792164581712397124333606187180049722244277428810301548218519971695970414934989524745477675320084768032876631017916578784871938699217702094933576367845637500711421978777813438451766069347666385275692040248857150989805580407969381548723893060634857293696200175442056985242207274234158233551307735698181051935722450954518582082102469692139624222015982320749880944268980544435076835385381467749375939621760959942437371915299367839099248675815763692092025049652419448054088227446473689467198225479951686780156328114763954953156711526319525511153635293280252272779538974734341201634930754064070846872608747805064299261862600353496341264171422847056068620638840849233907590712144422936093441651705013047927625149270904280468841148943094791240511199080255930757077494877589306144861669012517274981599102483395212344172616751225971879481339788642466660759153973267776962901845848215746642191714434553305064556472030995841890488024442983777103395252037813585460638056759203856949678881965540342285949960390868741314910572447791895235327552781800457209807274348593247786783045590235992663327100655112958580038037905387448651089385846391181004843253786813941377711555403633828167892860205433328499747141814081918478628437401494892087047410499862787530230750878552782063198939051481463776128578627335833372838389387255937583502994866499945047933826170509180502560656345792370808591153801955582007091857026703329351611864072375143883994545632857429223139883999279190556769980858680019250128605767351262928383675647423487175253690155851627083551264263867059249268650345527389360734234263666607305081752231909824432583408726137982781993791698176853501358851828191260497577991201171759391785005329777370485776996021777176031158012161683746105479289027264367442872176486589274494435303865055981529514241133518178236739943012199158412904641799995334318651417058494322326667814014866911073254516395120890769140669201918012033330259376650836717636548663744410821463947828502070527077270076636669256241064311122660904993714856317330859139029664338114082106539273479433830556930893079265170553225942772930214208018918650832463097494883723457922814907128142450648238473183181087416486971865999189723091139047309234933157799332098640464666592364278876272735530926004344380370291071835505923331350093676216374220280786436115007758131209013806917677787032831366674220094547145740682787898966945183505588854020979967192857462300870845005978896532107413803081372419098510996993224963157102418305526727268116287869352426327778368755369043733815319477380353675241146197299392865720845785154657275997383923338177020562844559180309292087573840944359928758039068602312253928973528458229254379539828787348951042111796012863128007096698225520727845013127802077118441215548517970618796952522008580494361516226539339587958342194840843831998928994324998172220808264375046991100047944836548487270601371596982110287050550821795875345823774912583070596864661882280369874831630248746065070730569514036012409169725227611725718058508106184374724673477837913823125809670628852917273878147368252010526780049186914877672163814319938437667586333462182641878117761245710605581417173519789063201691690385222653432819134800671049528972619028464087363188093455665099388915112286203031336274816830639346155734630023927836229874566051480414748226344905982909818333378657728707494731387250812334785085061963996090817598402867509435621482329908849557861529179502654113048873412654867966790735416138588233151883187127938799692469125200520489152634400561209267828018541313846453802876792665416105425187687297033310640751511531340137400601562035818490002392302387617054561386810764668179846160133539637273150767354556942578046075812088319571271041380274525340696755327537505413122711785211013751817597120606218054261334380963962565068372343103630398352551117364592347848014973310673871986373246849418773483196298554084047211713868788155377669922153022561689348933780519940435991413471896530478044888148384293411129502833960720427532512708665261763539284415912302732914747345446034491589687176931443403856344597211148033138451219738127973048347601316581544480487475688495572551018374151157835594427942677528274072831690590718139817821660028652321004286419512124654414859838482543106470602090306601139644770075216272232575992049574534837917881783770841461501165088929748255038807752024778830051664539582986958007737501078253259997002173816729279090673671683776821807809237533814611152581395960815853538869741605640431860652848035951367838970587442506401942094106540320014259827189410753613522317316381147889522945769806042807278905050991616138918305530129439050027796952763317666740852874346090611290503170414418875091746566467906772645559859399890397350868203046123292323342627464046224630535117389917527087826076527037567863426531719514600382825929916879373346281076985816195906709394057660765526588746379293806211391856089280257569331357674539903452985775022344089468008490097408521012451404256317785807410478145860922242856439276679073744726259002023472840750545907637803789366657455361275981803515648283180933312272281624991113926689530779196233010491427052625949304281097210010050168319732219074588140497392141125719288938088340286331502134072921612332707650862514602124164310508528423230509967423371745527176637367233790176225154349216334150160807994291617838792213744326797217371117749086456246635430731841946562544693726375815878012592857200046888838305278991103685272822663560556206991890810612098085707711662695380241465448995344661357421235450701983547793654028076422303723243654419575824084274425253614115532104310525957767637303240112991657116911275563390649702729693561449261658306940229015239945649858978071457249726069105766513183807752834493767171357412514172830902381822532402078841090165261605193750396757136469313878642786426411771786055277420594568734058552342252824680400255059593304729506566577324948516422202413318287225731281332680981842609982771273563612593122511236451996298505726638103810557256918556952850452013323640968246264175085121408678430639704838988186540417612043955655018805366533038785557223211200585788034112216255724238983604598242325837736519117550023530036994011748650605918349629267299507969464236399467556901179449649307151904851054971026074642502099138952450566785924414407782804263973346089356011407305015856891202184979701580984397520077110082306229506069772116957671672267348164574774730755935989132379903720658120852458685653629856255867502705463292550925411182471573835897067886646368933369197765644393329222700461764146577072343174246852377184540667306811044868853956687854348964701301068811306570771276190518752756207623994312682096697905860318720057813956076540915725185656486413704890832027961381648808456492783291298494697090476668455398861958307153998066875351314425341580499041977473089321776684581554616137046432043940875480723704249262239578666430977403852193227159476152570565658480251855820951045838554333587657541600355946145851256330901703891973329114142203228110947859676109893308310106133089727826977600739041401881270012653854763539144473807797339956731298644229065714332658085662352429296136298028485884742614507937578358795308203071630682420221770686553862912942139740965514009615710995286861439048696029777922775454823584281201519007438522309894376184474834940979745388678219736210215368561302689244611628358724172013808060316789341285397196476436824420905666783999763667734230318696048446491249565085431784841358993193342437991052556144373400897937665627630142022460922480057607282249129535343776784619615223757740780067621891612931300208094737351449132682586623370803355328470913456635385825682608346248588048114939607915091401215225523367651984523721123368314385243606891711195713196872642930599648967287138216438576469568001378324934550485396373887157197584220011089444301719195990266027688378616526014923095456603419249829824059719307172335624419712673556727476273392193866044503367027962959656274269775709138380671538253543110237681746306992661776693927084701201329583204127546960214656663036999718423155811840290241226120977006301303601258219685151824233947811650429283859503788530062511508912403399349609959650368990301327203712551630756309104576638864386900954027948573844036273295310738992660639399350757075864523794231612258029559714939858280938956555540288237342389433294517314676316997360599393755630286513400755023741754129362521298994027742121161720660158983639305263054707008447344910013001929755631798360180397305446395235174414847725469313745278383880892587002926822509232208780566195074143283692055982086360219780974326418552392167605150960562095625026959193411566620732356730241756914342678344793006206712485840859371412623286693773980829950870306057577208758210622323706421236653937964493265218943673728381421054844223977290115489474262252825892423345727851007384902088228723623796616618141816002182298637217733811408847125263566893804316792832007628083932501237265812908253720561910588792827912283741921920122909441958057450180199467509511838247763072016908046324489260170907619274381317259281153071277517039531702823451371752024703330717933674509027157615063016319889002192064816321499623381405408847279618621799019197301382964035700432567626396705442415405511321628562907402415031587720108791539580950999190239286452776084788161384271233218237515068734796236427616717922819082380186694494177880614973507326483593881700089279368877170338950533517412146837796716793923371355150945217336806382035455770644113644938307874186455542792697313105899076805450980793612457136109620508500282069849948720886902500353781974569264523777615618612980432896981155523035030723298895593710448448413866135532236187333351200677598150594117254427065816014967454988505679341072432831992182715554739647747674333570979822931932993738900623601377618321143609878530857964288003708226802756643658977994939941771645152500410313427846773910666908428993685472116342716854044040913294458086278668293159630433089194515743838166964253759180085047056456029661221467809163437593140298926001139243685619579710936237242253706349474595283029516015649366882469690819853546247954779577150297722726932639302677722943920138010433720251788214801504060127251084324238832351616280951932288918627542947605579308868535817745078221281251392265023331839692850369388806516413218000601026118690885750011310357104388413539451836991312965719683051832605681805631046790622236308064272194506095244334691869961474025776484939750910203542624825654504414608248664855753412986745149292909471058514603557048256117383850536794279999846999347284005356811638439370045646244740896186081431461994813190545889606183695137224009495976914319524525940918482592964420888978762383338894422916515649603671055632340686540876257000984227920239359107804398017429649134359132326331400469912787692175810573487621124820311880118904753145642101726829928886884398960785235677319266662703961057664741343955337321760889589695980802879089698282223679415530335060691142262170198355411942260925989882282212174139903926357326424738559702982348742110887748841803335693092923657409471195319703344536938045669350820666088191610950414854000094981200628443275804203553785487154577311245186783519890186768655080374861258618485943238347047511193033576422220121313421617123486717614294995688215137185631506984109262285650244990431443465130820067258069838836869045403706415712927547549332475433140473626487751847601067228181456379942559854127247417008724126718915100083740683411491949059155530424413071305305121240818893077259151090143016145081817542424152613841398942316698349633624660564218708250301707979706227898068322419623406093655750634910031842612075015053421188426753586470757617152362628854343478976333200468319835861902447522924837108107514861656665657248790211339295030224479546076002422948772808408090717786366527763600428939177280189403917557568694939605933893355726886684959393504107690728613143971876097563014031288382299467545438705345002488938042075391378689288190353639008427401390181654322586670862856218954439681900489445184476684958207641503163715722922786371718160688608707093723765733944699162921494222957033462184585882972274439879209309249637423147889772280184650069840970097571532128507563581835253461020800926275086806548885996873760236795187500321925837822860719761390151534602541521310095061202387829042111322595153082313655308388264191246180794359718407724270162205133253923476324737382793215836618100837215208098303302300556602828892978269799118159934799456914116598021540088066482262274832183109558214626674244723570119361852006700960260428646853726134996761775460444334975970774728970421061682933251016750886380081299558516105498746012557225655106635192418204036654200631752052757166502932126867998740387321155772772416497928920245985323168661492864611271444915442669272774124820619384459704514281452188288396605149983258490968984060751668917061835260620507672958794283147606041115430044593256998333547007427958281232890064697959881970718025124384104944687553330957881121958932918358013559654615188781324295152760433034090363353268758018948419724567913332154719046056774219750430929840143457089896144317572390169893613471709618169199442574585140384143031424029956731970845259513246095217130483905209592502468766689578615842639208127173707578930266347034035546166704216449455168493448046328272947535417037306023444443662943248735365743970029715776591328352574512105307170153086087552792185340204025694006514141255347807052682442960483574264185048576686056730024122241775651546027620570111270422060580769013929328385502350044178943615070258499361290609025787621849912462198823979746321006658417992090658368638548672078239844185863015430347624429474993297395425867740402041430400002763406999765776669740489466530114920976498986351487706904832424535659141989840465947046311983542454536438378977820693346603161948517664458992900994715659934333712856746558430558613922319573631782424557357629507148366347142824536473565533230861301436779233006521885835969780380940314017102279655214828651459594659391940377365738724152044301605762752705060906374892150389270209913395012135085139547820778689217755485171489383983022937449743927781121858380891945925256426008852799382150704064897825035639279858581207345935695891970759210041385111004016669708148630404992080107817406262301381101050554507073162545163151454375109310444507826305367143153971716256017505846083248067007047004091854528477106862516321330510772739933065312196846227053086056500209566482706933891294626286078446895968418233192050635584053690150954976103581212844133914105728073845381622278817160584919370306811977261611997370317868030566736282607765170310073354954403292945518778452425583701272346042186472546860139417573008829551317851422269423726151302215644422855858752221387861689998095439117177334008104115517004458413275048416893460493370399811746731834531218369270204302677801159321732970597956654642538457339494336878945312408519462409337989923862133446769879913997120939469196897761824639887848569245724808162899343620047432657553344104772361171085758664035307914975118954683649927543457474272598284952921353095601334593215044648653691448451096697790115445277781716224971781662803487431566604252349256058724676921582597915622368762487621101563139924332349830661110152750460050041909268050724886624615463661505141841136735403846356658201651555100430065391852277816652837575847035178077460909599365488316656588787965228373282919277399953982683045522395848973750560132747707393003766172518930397944936851494948023179616245182519529525292508124296545529948172322010079112472216563564026509509104154547222810714424547972006148294440579084033696250449088146878290207802666974222356055809818579927441775641218589588035504673024877409689918827502421503955492448004920393164849373944859580014505962585420698594739451006417759746657102667218995797941215592405747600076793262529840636773984190827309790459618154465745238519542267738667326107409683409380664488944993527353085139712367734915217964158189477008204595110570555938921012537081378887673306348812320806605318563749046103220200221162356167010083608991365599185205615970314402066643506710647236424497098567076454638177418280722841194624385513265053680612984245370183793931555829701006887841994061492844887683960271799858421275150399180635868608556981818731028495416599103122424354450739896265367031751046658679642842387649216960198283562308008489269946425070740656100407793084391926003106601329547441990040504337595295518661134456465040556467671111346667476680502636702225585923532934660612211718125829078270517930788737166955036348502208702928582876728915118304052917410583616382465023270061697810211604665718423935075680214186616353087420380988062592051824059088086943590072378401571243471833129086733931951712599873207342579911952445058635284776103124749776863492196349525108593126735120009175183221635736103546160757206857561919700972421122104417474053347900807568253975452146412457385069492745213011151111711993046648229809271687320119677654273209305784924419024258337922692677132557254458546793324764513001093470867060230134715362110399495741366589832302995146711274111736646403428207873132924653083946920002994003550337885044004894080576460886711206964552899136464795902273099487353279073217218237729743141765851145243632438821872189028069486958429974156049557214372309922830570918130085879415075472562531068306583356219304744002640459311479284931000674197467201043285676554212588426832717982589733864446954171783593909242551646652151756615241088777182214286172684589959009291581841402852938891448192815417033911486139371863187057907764561716614782617184098554604480737657841021112894437159268877345737622023906887154436721865231568642668191623405547472601445024075402629369201797600599153227496012541675498684573365189972528688112278454076602652048791090178663255111446080855932237537732478845993164047033336199199051971499375485512702240214729493774811712276710955744387334245567164501975226800970725378999318724036408139919116270480293712643698211806956280649370509702987379057200552295885401567048927798263472781655899833563050247571314792576986924059726975347782374216259194070607435011065933554877414560423095117736242094071544072995733373653637872171428876609408534976817215694875711081707792717964759829561083256329328982773112468924595747619144549483295449044422492926231139312610682074118635796086295991975347574968386369660981833299257080711763264712940452334822930049574843012121270867147286109338356257413687925312286782797672194963211088923478582211017965902923172317369577296408092924378336566423744254646580038444431190323357449301678745922081831727576870001271370106341286519990882454749840115303297593630662171365725667895789230017077965164358403990733082755114839686287976129542894697461629956571244886463488128172926431261209971220895775620318636324607862918596759668531624894608669105622261006093242186070575002602688552443752979085407774087442415092878656372705454429642655599006994736501980557929736560185929748753212485924332015377541198272460745643636777530873861440864878418774127489460339703497432694480348235832771782972951585431702973096698913716067648726563356642082897340291236114273926370956287204276386463774297706430763130171311315086045878290270585024499631112190788533303598410123770199278074594963980459524753045013440098573327623802714986392039126643036441101297153827678618134568074969307154758060706584284012037082422741925467307475503824634504064518888542633308129188577811790540228483900372053250200672703312510395979863495358203469209168156589325400750489348511207812964628541588540471341748379513784076515247476474578465060375276126877482932748142477444443570883404625245116060842303761663766658718945548063120931282456545931221150184284837447012382740142469958323508843928092932669227317734957456772766878602088584640618039410792393323277991033562169870626868261269084085578715060728494147472475660678532919103479978572765558119235101637816659647423031298937368793436808367459521354992492599634196339059035929887560035762013679704371056519821988802774904519943396139771257305688176752012475769147125748238434008533193641378538236344908106120734410582552849985133336746595691842416716499338660793288321606445708478868151851699823250434018196101419010123000985489982746003270453184409016733613006141823672097418550281289953235181487521421776220731817476879553668528250553589594054218280469339940322112165033002661940881196946401358128992998632434651830960443908594163393748258592415130658701681563727899581772767711080195849852996762910075852185161331733579954912427632211443030083051822812591959744974937159097127489673961696459820464101891203156801454147463579957782292545088846529072301547920311517822337598206196683614900109233247600855111138042205165131603735836966337141445597634979705927892409945581915076314631936942486349483584299265336540061921523510785887086694600603772221265907528023500764178778435594361028550870080854011949973099240174119704512799069373962258375497352517222232177369262577713349880678155279529184141712763733940186340890403726043495875988917768179953259520971157796179598989051405057728385711448492581488048269613972506586275417294011299828140056416557059406482235256140057435536963211725950642509326901836091988794703183072314945298328933633611096997354401544739910334006606389870695201877802934314463658735425443081972541608190195575148855503373222829760298096158289784776363784368331930998246967092623154664375701296527416671120225801044011670197066746890930715001268262793521949518433366122205222494439411631135040356847924928345503462150252158759188412711595943354662075363588294761007536833952424289254846095864989308375464829205851218301114616381649821534000738090461094536190803515234710043917361442078465827662203197227189893126620417631559526299864007317144241789080809046685051263200389190966669522655535314374664410800330342152741052596019806073498249772891237746893149474830439308844297048197920824314382137639853102967179884371403506357673720961418727934525199098027939337886302981397396722836646635816516263300383383551987138567686950576818945919970063453019010561702540197481674512355329279565236004956903476804080339953399861161945939699428873536080158313612671377276983707444337408106098476608632584720131301027049391773566587425565959948601332227041197261103631460072377954393571867948339535844437845332227318325002842800960741714683779521270013063791789802060160991037989358004406998310685559323226700352844349755998378073091917384691488936644941804545300717266706401539753088171368975900639826675034842939422385686359726285431279743419575330995073261521047019718525693601527279183886237608637493971201744205470178274442307035224038671307629000719643255020691464851217485359534734383415365067253838599968610307833849331258337952748918049623267793096342606762986596967590133534639459822157395058761780039733003255731983425968493259837263945442189152033248537957722168280451029666209771965001397304431531180225191068090770925163367653874315043955212301038912011109058571450457814892272865976728834843107409084066480538455017038663097747570533900832191875696300402393005224037287702600890981652210448817342994297617579140339602621622699778379379861947454987938538064607083862511537556649292210398787255757233237422251062054651063677300928935312322414281034435455025175042143473874343906280006255754245485231364596837548877976947562189084010310918925259445352994763937345804857242579673812654669908989168607183616635267975247213132578267972193573625868906289080222669640716768455741180086599915781214403252454424354589163109427792157086314567555429710447601887499938993883058493041592924568314780004119687538877065958314371533138745134229068173417560511223112262118170819854996624722799565395030901225850824521346885581445148524473801896633051242103535642551136132494178553954020427046882629393769197007531134961441133526218721197100524794414446298804791107627214388690882012149090864583371907715401038834791504197555462569058033003878235701233653256772192677395318877633449336963721891659972968767821982939961247917135679221722904836156167425518432546114051797903815194672020582395066999058149450817680710282986821595348328833853121451160060234019573051141748099331844359137736108362989196940381974417111657800334184070438175662756537427148141980477584904667501429333198589158981345651231049896727090580157824526246675784792151280137031685242596499751844871759763138909510412346535294427584094824610759494941190526760355447650055873932099954178835236008915625538181670915258441432288064399328993914948094370327594090706623575517356421382709703106854496313478823400185291304923528856226444331362532914818644130243882559590873752890326671789666811386947693565179142000601094010013784975149428230842448392382076100377204094664848412209984783399975673506392489430697489445474567154630652935357793479482116323616981767420315870262852003803576213784149676576078134984016604956745561932079286541354410763376790854580844394416866856189975269410359794699188336779418576221702852760289227199399870508336713435588569219557709507227199993757886210972201176696056797266860898292364916529071766638502858319602250456452249806968350044525116051492206810465964318376993383324594841460290826987227972891164812660127262202287573712277161882112333894116006306534112854214002716831271893389976350498406874112365355146023849526695376505553346419327342632444885892207256023743959996024839568876903176155711663626152325336913053122144960827223104788360957060797634792570923176755411199342643961461212663012420409896605378726004109604163795505674881889259534557940130468168400912392454068669699172705530324680031686789212372071380341199603116728239469362025644083410172296064982646759843191527552881975936348580118426514264945874495480070763752577838079316597852414527623864855420247160462466063571864501951417506099480214782996665034748027347784805454622823252665348787184507344673690521179067738972911361180429493884112249064807852963975468594916257588044852100027249908516951039623319641897443649295335721525411496619544421038730497327545234555998580773088032950747199826508074527266318220300448503146219047766022858962437932245303774588358495437258194031736401245951970817328709730593372062810165114286953102708753975425271374795828494689209839217103040891807978177476550693261383515271393304503693919044530299550392682770170802066145460422985239202872878680479057189231773744429743255300317940197071689375973851075173682645354688911272389925748556127099127717718768973510427577998488739755991586783879568703077730937334624415738657905319871864119064538018270513378762568020862141858916656061204766234605931387613590060537201513040729575611911344885812099477066769703046650718054899187364130058564760832796204249584589669094561046861087068579733625900537921661506482926390981217374551118957379035920194352076294659770124724185096001287858192127934115289707672921461610821335609616694538248964713429262346914223100270044457562968675174866008140270542747562587615493467920192818739502059107716121219116470317823363878984054471827882714391670175571607408338891555054314836567445815558829144240616910648375952957378859607698080823411231075327377515775537909288138811591192068774502440802152332752058195653584196093150336320132177432670315880897896400527371305773611089414382943930561378517284750824129073163978252600385487829850526078550947313716950707330745179821769122124713296196706167887346991125742945411507348623559061286628214949329809482925492560722119420330867941795851734294082563136182999238792512808554883009612721321165516025998303864089509703053934385718255556466051693192083510175552183553370495822475072160890336262184795226387671734903637941289855077483738181205725720537903623130980402309731120567045885498290574022849453771049165013104358848047057258640598781607325766301049132995315023832643423196942290045513148934440390309745133109446687957119594721708381893318824189706078077829495743066762339131660708628416044060523099556283598662283074433036875640572987228472762409443119001945235186536019601806686389430672611797499282928545460423398591955188768361921101653099170325451837264313104362139212469151793746727509046613076484403570896020301100927948432237738049825320249317510050382084455595484245514355630338301166506314982074323023470212379668600206215005004232284684499557465258356447809685973588874377965676113613671731152134454558925971649279372735959733295586514146325683269208469359604488385420983957622179393277960313286302907353850472015738059458298844528907909258459642096677942894563624317179141045627439733112004987410017174879517960369056789902011343513872413018043275359425362540006612680108944160850453160770893310366747762573808809192061858658214773103897284379580396700046343379632384134650408008821708142214412378823437843500415306817865591936278424456002283645060671393207414496039636928832639638329075568656859127148820953647929115786813720235234041503344659548204311547003211810151616607089307178550532753082292330399297041317369794525183716587232074807370051233725380145461797167726193690966205176044685776515451885497898733891301979732644972713230900681238804804886933908987095645153458804042447173374447861633128560119820554859076091773700403285963746487641876559244481765322116893093277102249242991294026276084932833968751500325820848022024060701668824019679426772961444122702251759757956543935996724310503379324228652302474728987266467243971019657841836950085378224083945005204645861804964940509210704203562678738184451506885157327289622274216637712584442123619007619041979014430375304253919866763322570792309998077506871799791941281791825258901609076199761704374470992581487352649119442414351670651320163630720545975119338085019312021988143115192160928373634035852471530765698613811535500542039302879980375180774685202772864813057189060728278164224276418754497162639359891906119755332011840630520975354532576698951356284656184069291230850467380963132978354703489796337191585777490235793969538174373063056308071669455138970043641258891871025004860603465923978604681793827101647412544558340527130902344568278685619189422438550916297563315072506162509181682831847749855352173376635472602806081884144081793894690162048927791629089542191932043958714946669416519673509308526857136344692765024382069701922099393137648524550041666431628422721512138356405373673947354873169271716197559300999702014367647063569202489685248487546558311370863739275370479282495875243407603897436458321317275567494555130466153358066016282677853996708402370607746543415005793597405353234817267802372584567133760297381650724627632181149848522847178759315556217079222939387458566326179666133245866650516034561359353692056667767982558281066027691513071119885590500358847245533661722381286646705339592273222775266118591987287852063374057230673311069471668838426326979939608844872174689618340113962630652427958444406934261471733655557619288283426308590031382074924537178927850588651470071596803310829367254537710883263998294096539317842854165623749346394545881921124521691008896474700074949759314230053273510913184267886109428673072309393040737032913220393463089256812144125621645733874550200357244658091772015702533649913063778943544090091828748256166746681222915303008434555445304237943945114714588400816730218167315605664930508270126550744275879899457139372178595851556803499442620641327087141800729913213666947112573283215327383476274403363433228956009069031902597284577078033404067859806140100626796317889582795350648696250771990463298531652314154471315621242300561234173294303768483569667291361010197943483470062328600055682196730275353978530955667830723161672565403446777104453740784656295973291934659993408853027476516169244238632244633641947637329837600080972016167302208160306244818415515799242559636034149108456648246580405153278644142379079651804047209030223058235692937615181866269808406412522001020511698596402724912406145855588015898174508121434459817768291335359895727029575550846336290773963907077388647137318830287338302936579064392465540687271922056332396062189828884598154719141761501630880584789848237332551809611955096001920843132390390837252777299617073061458334798749220770923314864913991414232557916910701305063283528699668995300509592534090729874225642929429199960475466257102454708641177790615176037555412453869102085401821429812761291043283661635372868020440210236160016887712592200812377841773763751409525364964380592934251112998643618556507245773645332770220460171011468686918462267962725573948784774102533672401903962531603292486759181953543459183015614054227519495005420283398242238787446087671582773733019346704383187012971810885003171363143264393681878133765300625651551794853653006377299276718826018334810821236026870600040362549738184340999963950059987877027985474371661761343850157385047376674182792729985689704930480652562686711112513140600770177239593918542638350966012178212351826954210237305100246654067013596367796961401862120840741136502976215982919959511986368283547041057491407688912793198541704577705760270947934974322463878593843048010728749382242909375546123127805447890647136327470281086895512545248944619817938364487729573206382638051922422552656238388642408134841069554542975992161579281979889095219523181546781415488004769609870487482584071800793970625129119583441262538006350435284657896852664101740535812909110796023856454394901577834338066184667433816046125463142221094328522666734854663941796709229375486917749593336405072340658459228089382842246797590705944647630442786652854593544135095107766796188700374182574763850660123843702886419341380604173946389660195626196019624011971361425944392176248970754578703104769288153209527400391392786408098098063983993919345901738294319290879960611365734075776062243804830381464511776253151639803655173785745090094915177258052342476197147014312647139736939199362554654981253027533462776910201037906149320568695064180360915552501661777815298861186254592840935192088571689984111185984772562829515382248441716084788048874935233207806788710983117375037685078816858860165857121469106738573457981361685250830890574806671232943251680412427204525439774503529273030237731063310520087740475784005313397774515515040619134968470755367740435365443416538530828336509365395117717883161442280254294410485518766806385513291870901422640722411076779463156066482093315553228972204037368316831061048960292117622208511915913539393517229185300901782730717779989925732311050623146221039370530559829549842071810781433717374911862814056708912140492141769061562667852935558397547841482593244811712317079650786716252478640413192052649687129305942670834501204952232980773967669023294134421142192530382700867550163735922580436808572000600609903526420154164056897962258432083733979253396669691627063341404430100534248101111151883367457694810940666790871674860554002168955444168032209291595389564865446009082238587674169741414274352769487579211881331884428376132331169150146092674980859101215437641417730878602278478485973788520197474190802101928063076846356268003727190307801366697753834825584093216503483528603173340159687662979174547407019961460690036650561816940323912833013233158386363668765404638333264030055531629296576289587314330792298486455341201702547821063639592931884624520972320121190089483768008367147700603150818562571173769699212311874067641132185707148289964882413719476028617035197815818137800116645830658745479172543798314527392660797941387385790747492729116633104021187180189222815778295844405964575601640223054386515784745413830782762045398258557483479629687142544347341117931803585168197522995239699127943245394552263636242976148651234633030007536274816072950347258234279926008193581310665747943184671661959764443182223913843030928742354337651153426238763789794299618411251725701275030418721810737422936431607931530274786979092070943914226704270183795606384068803834557888298790461678778528169121334681210157535992124059342962391110760826327940636634417179128809283584370706554627827307962092005786129034260736295534328057577609931311712867655357391980210766682083427405965005239489308494914262001735642141938368051269470923684164116652573015147655061686778261935703761100205354067434854120745286177250502563590925931896706218701433454975295015423966855096176252656937700969603451218332017730565807344494244865339385552609145967509870158044424667523195742187512751275791609258072133877483774148598801213607122074000252818712793340827258162963197683990214082458516121978888280439577237803445061163244882527673891652700761890490434585281350073542747081290346999188536636327914920329931466965391467054200744113680754452939434131469312969371879837799109154826023995952477611348784434948738930923957567335391045841024716704254804456482157448876155467047657240937183861326689914534104835688776165630886802137680774183385047410877797867372454026683223712171670473981555937748800762173149725703343872903030075661520701641417143708748182711916358506335412110064553318215361693642468943339143177101075855276415374777375144206152511777788323179736544038620001275846415217048263098781935948482246243695029218876417673921427797227262649122062382208064792051595025148936718376506337438274331573105532646745294692540201765647184634559926100303658806347075075784037709041994295296602044085575755428562743730661975052677319895240554687136886819070095253989844563251703738971248829025971670145247107635753831074733383972284549070384749142986987530354731615120934894437402451224590684819966575463257651116416495221558087824120128253216241937437910253317377556835045433585489224791960285511845106099220149022769044884440844951121285171173605950240892390734990834395198792662998450175987952480487706904341160221399273981090726357209571888596377956499696528356613669774303050230996091386828069601508568362934157052280617394190675462455470893841179444673830925217698403114468738504168840558919401868183032892963498843860047023580674450390730785507103193156747446959838414563324633117103208843679797936328074168979738525632687488221997427711748748812523020803565489333191820041045331395229040500758707470830292898880304439853733932447344867099949180679315600384854189261780330045586573428034457243794491667542810560947691253895287269282242210025318811201731993286022252406846739824868099213547415658688278032301909329237749669638895107654687307708457302219568428904927875827248383443791971348645607070078573961939624174986383425636188278560711327836454763241988571184584024568346466621471712590174619816606463642864967665017030713350935168135052908345977384134932480875626542103868267166693592386272893290774898982118919024573333627693905962019098435443369021978014720357625966847383619315711167559076978590385149233647415840679748694036973208874520729672998247617315803653928918922860714915609095170428563938337153134090607546396382275604257031047876059649145971608032420459835815469523443093569641348860844012599609667712982193495131490785151357449151056347362947518587203517314586853924866035897552540787674901057917918150563028911542354129768437719782841084755129350210542141173549942935767389147885439291653636614367126849332678369537285435855391578017215414281968112671802255410176541962050190976373045005284220463577488281479682720267808565013713342599330605779915430840555791975226075083400975903756802965057543913976984199953212617176434373561305542873812499257541935003859423209733758962222873281663503140678180139669209264048186157503930197298751922660392169592887669501214885603726306429060113780908729280535408277737107306027856451592088216812756826568588048748976841723822951915212140559427091071174608455447601509154863290598003844242709026896598971841455986073776619881293405430304276346395078552105378787929604272801215326995668268046231247468103619489572451987273998151543839902888565412987535306517892556007262479618675574132640826715984336316407733859792487315279802061748293246485275744317645098353138457786758638137732695102665973853183591004318311141754925914024685363020553031191919237901300980952627225314665494362225970220682480443131853712285224559667176577732704794472327896231254013381181682661419243494452468589108628301906435075088974373325419586746887437160409586571173018417033180664757256500634981671900707595966893645352334458403336929309566182439449246521953102590530797909848989461247077031912476350244664598718962437386900913548975733377798576693361344516272470891606481899046589705175752521102292873164035040901061347049075942447544467070823542081132169780157525562428786387791302755618141128240599773184787386048806348831225539624805955792166548489679834246585751069474274463608337311716753701528169429306819272557028072558263041729977188454040490794644615958339144995261641171808633841694908160234547847238423816028067806026571514345892235025991408310347855053090607905753591783082890559928275957320870934407508866623939624188108756287729339420778846111393868679149077677277552062647669793521053101980131957382925914567236943588907137418784863159963462483809123926917964398344532286065529924086113423977636804041117000333504480492771486167308927693832567159832448822240093376561336028189306436529207868804280453948993158816648274301601125568303305316389312225601309810121211720406602663170862817393409840414303566350146946622224742341753414875328880160618994291939179925561122597926325051850788957357486294117478978793433458163935180428509057966919290062208131730119844100553883570238064482947455352876981685587269095035678122986180129399939271201171473291773405557407565017525468258108113084881024842037124442867152138904351380606689614348708022605061424057369716739800772847040600025783603058445234910286929584582533088618067787969048754388677895826193479806369544896181097773558750043280718505483656081845752669049498675475667113842270014282230888858235898207831490973007951291292585657127344266346200941430146825874648799703066787562723139255445407395769146143444258249858688857289892583539114797279097825027484570773897795617143707201478903873452534490044312516638601995387256532058864306433969764261118567631822632474019619886307025194080189616588796692992919821932698180961318701550247702460820011428304728616827747467882451484533910901415071058270623751964358601334794824497033287662802163474742183755704866504809201512498489492438476270127999902554835937557187914188202031329399196638463286298475872765707756292699466382074594710091666739160375684096076674008368405762337934217637808367928259233093596355394158820556698845344251059335843123252567325493758331143268319017211411429674608276445923450012173727120106065878851390835428601571497509816240860250118798098588117560583639845440643275547031944920095593146272584873152242567286089270137517321064471186221809619862987900853446776121240348893288450523601198470573595363988729079433072245319225206686316752470866006021310564801177366942107649654685054011015877386210020151596218987616934414504874963035653262272873089402595255488252285273830532961041993687153995078438194114624067713792189294830834905908514330523164186335566541473321107437048067503582841404506458777388473832617002402012892623641495681749965809095718158155047365580042969627979452811688946182632280462181794951851788131937433582396652473199112962244407960349696084631356510056374866784058397653839288647778580584429472566004118345122302762415382854234369163618046577592262962765212456906787299157971001419150320401812417175271704736542060851486177927425448083962735516853118100414982152383934808903495101048215387111151474358992746085586701797683891731333642199489937872474547899159155182753575314345548446533006423156526602987102171711437363690711812997925903284144567741437486118848145230816467378383650174189411212240144930783174815303185366802863340214488437206840422097120380236664147421229679046455388366774972374521309430680678644823951642609984988286407353915098370327641598154378870894108134875787657130447413301832305601060309328577960645812486168528240297706951770846771102315109233794052260184991060556462178068861360097840375836613107338148207878853634995776923344637607597129917730311550227923979152139472008954406339318297370918529902378672741030772797618585259751747887035279063942414866354989574366148347020825196977912663145723157305275942694123008956362300950273981171743760250388010938153234818914375394756614142646844988188154640018452047115271414244698079819654575238859660098886963433452846608804748703858776924814377462331639188354589152456606678295257676714379433115948319118666011933375665401951121204802293445074576142482028535951776438858669721576228819150312982232390232737668517540921350815553325924714089862113801992629867366969954553748162284962971315243634355741547833916508535806070764809130111648424767955034711662253934140968552379941519778935531694889966630661174863946248998929497620336950952846457481642922828921195175849278995727796543503740253674034554631401644354277361181390837619544062580639437158298833645359982889304731379802730974167932817194196488032721626762690761532525599822699571779858417119003114354032444763681607392657596799679980313883680515966335856378884701347970359446117457296325686850959334909525416404724710612567983963731926503956166470212049800864277056021933033106997562262789730210216632303605064887640043924808704497114972991138094491268550424027010141894977103692454892126554267634767451287054385490659929790757636707243127972857159584900396011867629558463887166344148785030669292185559162924172921669258313943578437093438200259242261033658937625977373410559536690846319113400025242996263777978354812505572969129221121587844768958440420364728261166903982503485553695606516439941466257126239025377435570266199368104610909302919829488119299393893374051543066984852281412809910845283671849106128928506398630370485652895083258258983824837515838354935322504603849938235947123314793563145581636880569828091143676169810689195279932946434963280585768031298250986704855865096514368429124660790224871665279733560402830320458056366932397809362699623667555593093939567594985173873659113377670378968995718419935377423381137907594943817814809065264905267628184235198912391573983798223177644385631854891893628719480877459506146966576887209386750427426803390529848879241434148667396990568346368823528740011171288859677659826896493337167183218385451622005792213823232088368758134006519102581758112572167269587873618718408592386607000934947120474163340223463121074144928154846573736567644267447612895705279357596217353022191166236318360490876612520694317341892996237647168353916958589084814634909990941070554195255247995025921643969607173636710344118353215218179467220549544550505888394328609889617623853394606740938269719702563708915280900192582191096154528817345760680141975843598915199167904050329062553039352311333793452807613479316576979943454536516222418001102704964927210533038734740477639319526641326450682103098425474604898823489834522516054306507758604062648738563720941687201491804808933225508066305383439687229951671466707918948773469204178699729287633064936045698047639208447736013838824610728125724797852850516626587438900151437129103803898782390903666261794505661578556068969559325595509025918841567167717422447497276713020479238050821906545829195921614858558676474747629494027804266252745786001705363711049491363170262715075423357229133342583987848640365637631601683262953956447227532869574300196786832728111952477338603156616139928352473953032201686810509720674459020114449428453465969639592916008744315482867567710845283276548741684635413448078630400113972633434432158764682677106825137228132503859822525523431679259672756917880177086824974831263703031729101652491942453507116591565360882000177900074354331715741047240567120123655605682729061466198703900134146224252435248500343098690571690836025725082651658813616985338691754062163596178769173067561337055430646689989907609166007882908284166006254969103949378380653298004769244004150065697508442571877152111586153642018494883778213843826637027906053402932894422354648754469729318533232833270118794966241472355828482543652483858510866215768586430526363074620415759887757990040218830166206704871609816972639371235211940609958267302947251317716785239785218254044753793222486299376279963405725568911797082703990633932352166285203498308132783400005054462188016668602759383619515232268905052434100277021121683359010573978961294224208205432259294451969400968424603153124490458710912787670633782316409280501046395298885134982522805608756622838865524824384759084845210283508921695559037455437187647050218239470128257925950625453006680874357377259035482011016974818211483359290625589298295791427929590762588169406485866722783423239190847547946108005255391400888858386825326694891165007887276263938151098362988153834590278365381804414507504849201525318207903059075105046197843651835414550373979893178381786506828125065049552854458373947732784264312433578650722443272060857533339923269369351806376159855245224965073057600182492504022504685584150491963568367655791211011560645919913461947020413116700132731924900529401807486190023408161589381024769357306258274938985325659864342822557313778594944678580310963985464855936483679090768026970606387614277196287770850050634702317486612180711064666856482099587342563529648384451842787922132317599463265892128941854636263412014097005505435237710501931361393455896264867234747531600679083507343381539135040945033803698677718239879153926584638001531139649764224473129859736522811129073149126675456306168237411736211407899256510984159954035816592917199849772816402859073887002591153645876434945826804576553166584666372260263562457941280997447285262874034365991515418942972117123664906095967815105756136941379579549323847091801259109677406694654060478186765785346180196274842029421035849652077342572963209311532408258312460279446632042160891082760305950091364368791841477868173241230228313862833385683756805213078259457747434953079299287073965248145674838437507654644305502460170694428338838101831374577833602088841673805146939078671032384641533603331153631129872556973916632227964224199309160010807724556208634638475028281352701013831168851696684754380016593211405636588701303940616822255921386530089364574153662164447852322293230714014645491536627347491750384314497970533681506280879998086674223844927654791870871084772954870192311056904968116911965339839146884290940277970211955675385359701976558074769174753513621798103373554013028650811932657348627145211878799551438062773846114257807637794148930542726522149990410950008021525157706176256140548599300235831388347658806688287707172596002050358268085558836216466974706936982866928397272065255279460002682927677999443672636485508398779206662343333878373947529915610979933741127870957136725790935953280371230834925043536229293081301673495689959008083665043646220128670685044732047455217674514436859840652512574105150981922209121330200792996113943687078073026767974448789514534674451216245651836101488123200695625759168165298062883853346249465331197057453925326466726415563181163652536425257125871536028360574302391510258562687188864874647077901563665224930544797789842950612101194212997136378281853625992143254103754181883130338282517682345829593703610072832019287660956878371070317529033421672219622424035982407071953002706696087548602135317811227763895622804852318024134860012440646856596842842272929404931474599320640034476127670262555723809637533092851242832558929427488357245766660180431226868742801903202065109406616382572461335818942863631707161974981583481234942017736543932372841829089561914097991958210790906965364821924527617247864158421395891966880493232206263276846405769723159758711953100802207089489800121357740190443088448286251226874975427574913267654521784291149120304428537368361615647429753808198202621305773917498021890279137900018019142027143857319912922560502017905128234827327370480569025133747662203067119187304513484763740667250815320877076303574327418324477758804794011212997238469466307368468710909896837710695801409319766136832089330285601653972447586862275162365832834585009991104794791203192440126931423724070109307647293308776511546382230497769420877479943840069983829536057503080976464952133988460842292601556230867306682226383415241976061462866962938554349696224898973475488117196818423882952236127230013072335763347807605953622196009932488562622420760746450673989596480411215193757361510942444150771863067487823736450144832252456884068786630009335484494756864907260681860101185875774723825580990245383049802731941650693802428685918106014578036906358523357076912290392499784820533237803641987856704955494732584773232743185418893435067382994950921386898374572497333965886465490143973983667602916741263536203355535248970116043867257355820333185149520446801676024092038026580915929129003675856870771406216578591958812030525286076507961427758630958604142988313317666652738631849251465434116182577676877614655252056482958436563450800834252007443268665626513250999291010667453508931073245354277828945613545908218244924019471596970290241361244944039185271681667781091428055527817488420100079728161925121305610729828368674301488011798853287131702528920702802967332783336603732981660422412794208796008066445833205537139238629762410522904151904320046035962461429608211659764531070232588490775230416495561068963296537495875116770624603051762552932063008669025244405970334034095560222133164788209133167844866710156993384856072570565217753032699604177090167887032428051548160409167533670987856201248622870126460396350453717094424075160199114998916934263893319695499268517153060200955765830926742011977145012896178432716394423828139537998690376827754126847635770393959069252132524596808095531530532721669113688783572951545928001625248874996563955147741918157641263087770338865649723405741743609644827813729784724222820821293389683372268885324701166005283433107607699222588662129522527459102777111586600715084296254094257705865032967756619941395325312782120339616301693456211075417989738803433801068250309535118665348469754765316377613681891123514121313883384680568766747771893672830639059404397870506824481106558890223338213933688854952087734464590968378691614932029570846413478032970477111885078461113829392300841100680878506487432587658130538020873303354602993707239766019512596077427226356819850608110468993439619571618299834727139069770526625240859244199191069813630084545073412632455057662672187311120043573404812538830145706666522997480870426561927606501412315924299768806640564082416298424410138073547757405785840009174826636012876352933222993899842994467423649634105199899736667734677325523010971118977955106887055067611318174866316449180958907677976223514948005731217532547770382272639145714028177523474173876553134707288692938298838227425335346834040928077977669766971444940218204857249744946257361533498987017991666069221832126862029296121274542387329266665403348837076198023674734321276441590654763246452378442904313060536224836328875951256241631297453384256106203656016199665142830979056727566337765348539576322761604161891465676876077169228424602539476283780374263958308796441958778645768574074569550793189690932897373522343257750150805813990669409607695489211549748440319623811267457960185252109166298965867730246296229358379559567109369234353135598868500677930958038007085617527292048239644749994546048041509809957622665555206453801608169696883654442670113428747288932171048134309684451833982913459549583016123637792818841615206121179730701962350584281345338495217565406833384114058237066114104972120389487326150013733251950734854989479451712176938061171397842980899384366842901207162539905709915088097968275370701990973763475507751023653594057962313285140621888056533628323127571184405130283873702036582365716162681553382067726758114746417790368020045685701097901116650516139754385527692866585132355824190657494994724382535226547421874591919591415573726802354248768727086369556442872028042980278570711545276507855295022232581955571584782805851469366494030781738487021886855101552546285507807660297132340807397378728129075314541370605703589038676392812921450852006630838456169498221722326080487612223718225111902205440081483694040123787918990595704352103868566341848618284797250958171406745093079586319207093427454191022361296955563083908277431826919694717798818230981071825853200682396652872896008750181739948555398818789082234610783277813613553993399360299985148256485910782896707873738258261278699130827174247880628459722696800511174336766122115236441672861870907480228503080129286234532600356578648258517486502149222605020781572567689292663884948317969050947524088717756059852359064917204608898340956964926066934899720677354961996821371530651895666176809931403779296424178247554326804125417618219452972551576846148479540771127653223656525220360340869380495799718744398722420408473404904340047469363194232702797966294854645588919923146064125437167461891676838983833125552011630731875839880423601771016433515920394246892717395194178361469813861931009825165556726736528866955922521998118110498885808368262087193893103338381821972308641034037271854267834161474234684829413574203368392370707672118042071035981684264386062813930053597483638660153764377822180376342965082439606456355384412400678244282410704961735815368156473387539581669218867134392568762500757777595531351818759505835975160093513149059206165583278643626197901162516862156805966356351509033217021820893617072456031433325316538342261931773689291384546152744078104635058462609511956796307624047035756604423728908760073753282473892753164990308344130079817241073906294075655467633555961335367953160586096064843222207835870605799559689463393230262626156896078747968026275540734038629744906693853703731955111435824806887047941881374324773300870067411175190517365101001822765837850102347169048892918504940365314367418366673513910700769271486535467369825904734109885696774495581560345895951703659418234067871116444981660389246511185079274894869973885746100862479920869208548207004610889719718315186064207657182249020824758599348005638307264379057314974864226012415888506434438046246153131100551925126795376555696515232061522248133247219503000012186580271915629219695056386452228535417721055594988389883115108628702479158410477185600132745156764975675883708747037160604465007698257076428749265558810797428467778761635056213918109466364352964153686204141626469250101375737572534934159129717299187742564783332039353682790921026467647485833136269074921928071049845919809585550796384540954787465475499291155957458566552938488066581328845087890755538170246132361722668390389618241169257696681760360137851122781061256366861706739336614771054705690999952221669187531316838287947234751862665981748203537416404086983733609912668110974073077594878934106214042664490717645003755733748945595535505749032653572085284256246356404676092302288667068784594572022330103730788093533259049434507288220231590440200804749136134704752091802318452467102726799453500577277516953350405547123561911882690555167372444525331613073084320968725241821220532654594841673609766152848707551786456854110657472609225800455139889998899106336376297933106443239311100189549685231473624878782815790100540324222083707889049585486985662726279909475244652664007564636718419383885505117702142378141889844104980274708077634664131761244794073786506728897964639077960754920309887596113834699347360614975545705737980944205293134819494898977917904255454751303719271359212549299085302564283202224020413125222738993107561308943947331567276439612275341401895628675900434492890242181155963824828192864541972873723707931279782199104398084363745712344962015490944854112050732954445113882048023541069909170675095030581658650352084356252608264297680682307632071425800729964054290809210667355640606629092914792356605585278219122147700301981872725752173980300250001761571087787843819501562226675875935250440410546231826919649178730731805177167672987235113110180019289958047344955260792992684389863122755414842388754844750538798948895710238741911772057581509890115036953870893168637966604734670926361513507245617070831044318513854841337102035869510733397650925315846775281115293814102395678273516883177432084158733764314270272614230725753308573339825956490660626200301695216340089942994460676024414324385223669775216989097472216732090592827180884291080480535650894176430033103512200738739362283914911625871027378702595539007451341819281681264490179509081560964309911999702528706944078385112971733118585427145103103116521144936809658901203128291845699717995344122608248465095409256608587850098906760238043925912045317165621019159049084266717887470557666799898946638088012172046804773028313225821159381722626469231345648234963406090345148209261283148505014816526565710707876182026199915989577760893107200725926770113414360717283076691197511151252244377936936632031303862566903554058450016555588897947661612566997532613525081277852146168819426266733442294740143203140432241120424423507099237585046360743781623098697390996183573668048013542583188159908406437128524369818775326130600750737682645032003898572800821095325933432818054180630878835372898739575009780674949381624366957085242454570219100211909997569797431439565422094185280833073661011645057856845952972220681290182748995878795709390346139718425221453982244272295794057945530748246273616238730251930632225427869671564609406233917297331875584826327908760077910749331725557953329544165762882685436707744482743334591969045796357780471244866489907927399523990468609596872310413907960926217871221106219399119441474848773888757340699260920887735396898389028416188400070812542621319054572329443803449077041841362179691880590808807614855115813250485505410375124567659285321995465636299616796402198585115970960012602297574967587839810152964191968799008116895523761375299404943017441703763266026786886126778788982776234600805423250982934713911260024446638002300229199569326497791967161688042786336019815302847170070505778720402543864527896878618289249768870099910159078358101400010054215624002669313332931032589847241788756655905990194996830353059513921379718115882501737921669806781806524270481036229617872982992306961878911194937755836064493118919889822760068546489904489400112262365054146296641093691034444058230045910790099524750297053245346325271663277470765342181755145038409265010935263783171329726467174049577883842460374550178113891240306648149285368449888446059448608397569361094834644824505255293116221265705078136673138974090258687099144542119391466168959100331002709173242099797036914320013394795344697335751314379267122239362143318307172377470567610760177795000706740297784052613783953669779798713620489093568700273866515944881144760138828500207758145722669164697060183848852673729039728833469985596785089742442278381805388638748024561066437382955145112479102348416562900614504760241492344431588196113428367515690497743683211414968484589454150091397775295321282083288630849284867268930419980701613848065866140118963287373957302278764825698370191895211642356200387048966722964941347376250948117210527212658599482761914360516543673069961983012325128946131401620324949473093476464247748826266323599304342044355588274098138191778990283144182397080510619042617295070680418482113622008295661826713205453681977421702454351857014127295086693208934059572433688022507493901175657311961341168147976423181055130089578547741703721291554687522524880385690009797917237664474804503631085197456056144052965803320647826453033112698113068767611639912756547618239282656628230251901051775796840240819701600324955650662587340972589619012824140070493308613618184302721719422527682500972401125689694444647172460880017502228189409809259243598311922461057138004003533426276334746867051886528392837058471186119673116565992342988528302643228142193284938128509446868229873955455638528206226192211282891411117868546506735309022678621235453020799159567234517575689328562805878134358596996857150441598704911536897321279433328654738885057559018981359482254649047318820781321190283964635958433437814481835475109749468316361089589491231990677739053220643568747601244464667278566774090850382254984365517961489404613209271909546394238672714445091147737194073495752867973226553741212696018797414179836522569883369600570038967000862575040821024425553083098553156233153663716908174411323541657053640804080912507878573493742721744906818907762521486277720412641227565039363398385559602738580311211237313286451772945779820023178626979945116444664251375045934602222082412548124230686215333386909433894667221116638050984941468424372482933523729119704903862562653469185155845345229541464169985133058229845183990423607264528743643447697512111662430651288112858652876705194927712010950011000733595490960720287457460603403109105619017706902048479797077916689365607605910616308548637806343855590274930892194769435926946686504950811558447512140729812746111418386851527461513237380998134710671451565462512915980678951956677713073172085715392520639753181472431933664508467938590722601112426477285567455132925768831823262129643491908583367472137703877959386142559562098452278701957292939349341424667241013535552044708979994915273878696919037991113963379096587326208016737801146472880776108603438527757474939345237383334723686074430947094569657970584454047351357466551372886270640458236616649990109584914505339431308818965661322993328517923194299863761381611307705626451917540580205994287392664460499969673281857997891341331126355030975787833881541267487607602126462622124266319066058783947303446707677102232996755556339122903803323327174007068863056446787792931219327302325082177554293175381195164104514120306855812325828944710752453504318745901110195976018994213048238575568284982623673375870320750019691552568665448547423445617044366351386745333644028315963744847777215746997119830095042935915164537815249174160453459642756563538921460822680885530424294263316614969725083630067938276550332593159685294593386787762726246938874480591905528740971633235237748226262377594481553512036247878767693113617399704661471553847833049088465381417763937760634015016565288234027980218733012044217026567257232035242216148578658808162219268119134561092615964332688847856712565326114746629523835231524473395684744559202231865031848303387970691848113058364060272882486515437859276075117765107311615323569042147511328583789794276365110932798228611856339522333720051997711214089929296564836060089987807528703684889261585492982382978777676600177810198772941601760239161400800854175292587740993084851240077193608992737952850855701369148881152799899672798773466828154561048353633529310807192256540917176131408149190130686299153535314557761836009671245692789135406466385655823761434780001563762620217940117984388514195019643302236201102798038673778813505154023146893890838155258465835329509066417139053293758556127586850636786386369424674249130110936124192342332565148908543550554169225811693794900999521274369397200067497262962967646257547937962178734510863287289877178710954710522888706312648723481488825887775819054885292481468929978144412088692645738611898856294771881254378903238897633560637006414535934578991292552713636061585972945913059710844366265999673051040835043690857843277627321929425135205909440923491959856841043814863967583277675941990723328875310800195112131074414129716383278957991923407957078925148296679330584723786957844625197682303292111012423601716954093925742202407161889953694580484557300950904329403746360772577231638329174950400695007374666521892932485682850573638328841301731742091869464903579777169481635253279444954891680405896467561248272871235121039649320491283179125457725627374468064842929634875433822913765687776456814945357297679728060463263286362664845944206171053512283896616756895965521235028548494822599014225092259437702819513522612832684231611567499887773295222223793913760476430270519367674753863170547752171278261502817734851960070516136600857407027013769102764822209371436757950828056037078005468963097674571030809994886306398708286424124872572006922923007766464385762462427681737471598602873970602158518357249349024346059329884765480774559457127882669754559211326680226623278094101385115559060894513601232562661432372169369137215643238560193774399148808041010077380231977865640061980872294972049206194985357383494820139711124371681233708721853480368521328663282927750319017794422500703591539006537446327495719423222216853757063684965781221412338774316440167357796382588835561885174568238626969374021246911042506963949359059172641713987512091935943856506058548574339667683418957225033694849302331899665566906799737406151355172049582962296469626314093014710024739046275445274933677596989827818274330666969529208784334711670395232900298781116867808639806109744560446099239228845664407906640922778424350626589339658427588644935194754670755810886513072236585691825036846784816063498479906590763056907977122558272239987074329794113656924396073051179511801861275214664028328904368941271997357361832374605714819990189786707818231911096910744648444400618542083381065655593252317255170609478575419403012447169823849568136118818347817167277379190910139078485450140117179989608181550340953276141373537583333003703300564821981676983808684497127026916442662858775350743705722334154645218420769088110793488028708036766011090581072446029853489794168887006829931516167386286216800144624615499021171461916749037931803203281608560339829969169882285662625550808679108609423452436646017030117942429113029352556878500385737662382143389501657187384677697628835222162159254731566381210425777226865498193617487892392901931503054417904958118955658929712171093966096747923411627307953165776286033409800044523554081319818120408352089518355254017492778243788777842786017026226330204874375216983355492769836223531874353489052549735753612971090910566838182705420627283719644869079654658129330794696164643325542218431970069819761834159807111403443185602693290447955368559043986834518700965446252381194673863062960275411701237328015917188285900808371770015867928095613658868933447992683546118915933869238535073275926201283557936106346426405442486677011899788720314358563704310990638789227122448977550025951204830157498777606446343529042973124881816286369520129903844220811512427888470567841863105415670837027791092874883923072281280669239868689587090979637188913759890668659937605357728493996673092179418473637913988612919543668930323513996415178350691779801564954470016112281208243152874988076205355542710922945164665058571234083260208089566061010881339313454724741917634625269236361716168533028956509580990908215061367504084547055206358827497008102230944341927669306521591051497304530797637308786824382848625220953926140679470746360201126870421814583058010856280597812532737173985371192592608268664480978423246514331070210939269795391490950576336601637578283430558741123706687176148404466580484462592719540829417139146162860789996032615091869570356305634115490243049900439086988495788629574439700772769501947165783226999907761025629221161548186254943027735878396926609275212298335148735116653468325953527840291411787334358471296891056416735062130343346790733027385810021920670844996429904227558173880532992681369959915997682950566435375410469840713943908858226563080829189679721535694427334897316046955014635367482640649473956948738055131842253962598679577782339878911172448282129653078140675035457274410068409162458586463769139018130387946376493984838473706439615468872261258770426581195632132800215520970693546299029048306514665284083248516036936243734146503373096935932434149932130014009626417367984838137275480129814852767855463058011652928613732275690533096031610419821588091357139119805201201516260289913532783767064902429418904882656449029152138809425100522777771479789271815985182317998888929615734450583672194252764450390527782037205569286833084982087634116752076229337906403488211303402192465305068186876441910387712080955482386290901749809768133831040598721127316567999289561805673657732867177762799618218400511000719980011043002973042349882712103786325976739874122579765542994626488019201221311444896494126845810393064046790004963090327737086118092447251512924143797834847784471122107972585412376744304450101923730163786825070051346061151421002935763012306454725317027852199248668582413026872082571794016879043722643543111785756264841328119381643027822510731008541139053616273042886780577375856581949658499468264884211000272949170156747955897181356060582697921922518331873578798812087442467486089545287012552050638439945350213049827903019943623218202065341478760338205181163736577688257068365114947815052428857581613884182224249409565651347035139998249964598694834910615385174996635667830060794014505881411459023853392819629143865752163422697141639241796118030453535227882053194494571844284554499766482956493523127777066326148933786464935405264741359931491278903510873244741794803718570062476744068666233174416963098008963498071970428705785901871090328622462147416316752196039367987916947900929737790960344692577969234518256027054232743045129502550118956668186193784356751694395495684452590575255372960450604892680476520904031659080875472691784092492265997124439334098724171975441499074624552584482904856519066139421674988262070450161209002145305318998156980557939708557543038628801919580674947119423276276768086145001584416415306276566844650712158633383496293225016247702884985335615095338604786164219408541591461102764720600635503150810601717843030440315530138768207167798318881451477356436244594125214871014904339394109424954495708766857272731267658331242401369862387552619338410050042455194039316712859646416825742126894132341906811283374302799145268607917673956537991914091997381663927440169813072377921812347697036954276976851356884318795233854120868678728441453475720686735494404930536362748114880979855022321790817493144586020028985716604509659964548996579942179504779169991289290940937147544232922291825059253052795698283619084117080887751972789763197070799075283922512468772064286310715627520400376987510876099545636881253851235167134814903765637358499249805294614955112001253206717867928979411500319350306016942835995043667357057606371540240881942449792212291522474444289629108691043141754186375637348074921965120055988661054356404750178317054688905150581556421214925324244519158743973664981982621697331826006181179694287833643362334587397938233117247857183572603445920492876935273154204056174649673191531988757426845976126163967786404262288087575110304437304326338460011397918659109856154366477343285265145983849032831095846228814041978995830173892624390965976080895516083122775516447679128553790135802955207360460028894756498551761425620245702070904434748644730567828151913556974392326826151441679000053381683688730454951292898398191999694978186403115988072414487149534988502489625973873726109854980640605112104960661406015995679458513571872407974394176721905979266952762474136396968154945848640236326820662652212548106422582488212665968386400218902601035338943960405116351706936473325847025956256621019723149491632545117881230093642891651559385218446335837839232114261362251902572375994583202376538749459520672252248377676841228971034614634661248403788938665598120967958965177499884116590704359399986339213628720198899076785201040285923030934545134039402618860202033610549811875212577543825847902624722157403433719585310034038381495413725745629408029025812514656547702276885423060115052323372108476345135124558875438730531885520193217478025137351645946975327456662351039395023232448088029445814508001639811279037900462645066559962619027222536367117560843519675936629029872430300123951830872239811454820847902996640396555707895480739789355037133723181865198670593612782779843237374486647188850472052325141732577766280487587587929366469036873352018619482022306245174734482220279255734308161761996713370973736496772176608870136504729120712754804384000998748292037075860264216614838014559028892558008211750425343478823290742065660586547451661829048827404282200570133360785266994637294820341879856162782858163114001587643597911916690588257514621973443310318813286338225509672741475732858316586721827127100299364545785030733420191416348956651301883814889227515244606713620536793297309609016497133982780910428535853887269168204147883551639268414006136659754770447284783598139380537217716469198570856506179674192019360504583968709193957544461755080950623609119319188050313917017729255550402665416120624695328576908633564874376585477566140921715217854045159109405211317651590702496964134493235487068948000148433153255425056747220001109173639501084748824597781514854494172752945314390689571915521041919792725116500033994304266492275626653988735091121865002069404594088392837527494403287934967055717468822806865479258359970497393745482927741797100482464759424451988100058588434307483250385211865117183838268684397545201469893917155911118789663009415115934352826602376119634364019497147255198773508807255152862840523149374088096048596989908728742050067029922792814335765127451693681665755014595397637064826031280689081625419927529586381173601084066544899821758403761645553744149975950201679468961120321655220857059953388399434074547690641240738201294958369740382195644890371780071272638820910346394441963344623731795147388917860843466896546898974999815275761420719311882363705607140181284099935150662626204501165121264385781950673167528613878724199919874918389411422096910681912885046190063701771390234716006442134430649314311933977313586320330322261305677922162755024881200877517236284020895120752843811913583596019651624042194754020842051146985181255480387336201801890336968654841138465531164453393916776771271241399071915219665893161483221092503860490606624967984408424820509499211490079960762946247085641039759566148607057940061868891518600748259991295461293037677742580900887014069960872094842519394712578558883846587669077852769735112944212213719730470176763399700401717413162782377890928066255491895424149016038462659902551882193535696625508229374681831789449073304178242459465212389235403335562075711484254223259723400632816298231754631644419401596342631642436878430491374771375891439840828563054529485788114263651724206387894908353681085451380514951822016630526173086193213692979402916976845407107807248469969139658943151568385312828777818278384856834162019008044732178762864374781517931442425763971917022473213984631142004135076481219822318269481654203420676416201554773494594415094964680692293095088341212434181957049620234731661744622678602472337619677717913692358369926226137060216990142226211510161539485837037809623887410550026141924341059128205971818933897290355809103474625150814758474109999385373139563143339392139309899256326917587641016053380592234662483445468783260701692335416989750004836150608162423734042505800102228072438950723470411761309642615933845560718771773461063679335109960565956126622234324991610119788981042822741162590146822111582731472779599509276875215694708833836352600107876549420483282138438720951654970983488088671712968629708614448437778174391760234775399410933841060649526735092224790159474322729154838669647132103962568042582386134108490983347731103332078908264232249294114958112232301212961837714092435479452245677753994842928991484729992972041680353822427299547666248479642246567073054767909794546812088792636767612736940488769760550552742331340019385208346074411540023106353046269538250930551709468947114460426374090874422350025075778952680127113285642499870957952640994719935987647643123027548444880511190116373287787532449185691445197186596057096062395638469936970272186390730903006294457888077864042193799535696413226669518933189896489556560378413155486603876279818872383594156438854450633989055515137627940978569749081446921176599017744739622476823850651769514628555252793514215027044180177896419838437476495268991130642752652620440807823601808590485975797960812291796955233866925326823911645798543381228746125391091448087553874518372953431841686338803528597352630283943623577959000982270001551694086455428920689052909632733597210116415544232276834550320102838702491764672644525385186963477259728066171582586114953507489992967839555602289191609599511757586900667448020505278391304805792180411494934017440230560686287512962715275466058189488983330361049130149775017227551489039089474076807728463242906351377620101158084432494754918373275186955387360588050859380228899076315602870507160927887865920632570213818025481129948066885331750469040269240174528423500825473218676873734391197942553210272880171219380651158662220700981476210969719208956239886359210213733712654335380509178073859311130783944191285299250450694639076735701232538321495867709818381822495665524253515661807225369171844136925198316371450781488749014333350944200605467666894910237838482535977103787990383127115948209988357599134378644083688999926775056565915008860690200634271388722710523670904107048561021648764906058919851676053363696585893801552631536084075065429057588856080233743997576971835328354447394198893905125844109516350988942595422723751316789453878158075744581580067868040519499751906551280261631922067728948536590422983239672930999243499131899876614519415181626748605803541312710374884506817016676120782318050925879793085021061854920172487731764323964880047393976141319190802259746778962202782078343915597495137218503949473353072042874444786360255407708533902899554014503084007238242489060829255539098213561731910146842262068161822393828085117998448594120476084491749887062381522426909654813062179804776842286913139392396468416097597639070588391530977333454404500441489043190929650032688654081008538798969097825526234065679567275223131501217875468899171007041494591181632723935846622371976227551137950816676865845320459836679775508014987598782959806523228722041006078539500149792059650510169151863154783715463395854599188092596129848875270439763204502222486817175819114614512829702330794769040278004030675243988187856712232766675618734802319486412073853994319627991811253745345547536799605135251919457866266748761758655469625803666337496625015667454251594956218014711658167997636224190843967115366773041263270679738056148173593632681915419483264725770083061399634068534550914591834996633552489306582436743575269145677449338528119912602426512034860769280607589401336066437326643878300353303084000080007974445928612160585750434834247158377830303274346713915226290895360596925999883692516035569299521242451467824150567024802845719233943184442544728392196360478726549412866770856520474063026114178656336510610977985316543041742967137632181492566258821776332693184273693229417573490995765263112031197045447549469135142931059248220895828563864632528775374289637541361922086836345709019392167127668443879610320260989146157481405006050125171141558550184530117867355317177028542745322674814833135667286314596719958448120827831290898280327369445481596589428009813821067290347179550929563829265780976976546294376897900528395319942330570316940254110517463556592194813509689663000342605349255728125438003983136834681917815430527414920306439448891092387524694419336009263504770060729900430536581078633836131966718572560057536531253584052287879208093460456753353907126373417051565193762953064278168738321540849442120101375856159203325292441749758778860868427256682547977828171804138212989862490242262550974189321071645716206665131737730994498136794294255008619988373304188480890773371163193164750244690502302214098959536372764911976314448495360510472852127545615148741950126595993969667468600459487896696363664247846772250691266518458203593693843025201942897735323637214336342073849906051364413015214315572538090521121026813922700221371160142918066917429659420263272902959576823032525477265700632372734769335302937853859207760954655491489415119351712837605244271147263750037516594731924989971134489478780860510041733976496641462151183066212889869618204510154148024710375820941584478203838563225218648802528317478460714792895748241856569300742577136843192675458012632252373055840812256990256199372172800585573017263001390243320044668666676929266720783585848928010833542802574072357910486375896536935699540459213906670136242295559389544482562804651718008064213647884094581850565410027832260740063080039571838661822864141267600941580609628891151832101750792765159519977866192927970392066880096140754459257510773460921973493017955478951794695358507309638242928833015179704915514689420709556662981505455990072827804944487958685485838118874598676422300703132843342748006806222054778448514847820117911248542895331280253578215125008206408436892036733410582969503807264774327940649341562306375584041673822850805025570056143691128521030722065168540608143373495772544225878225226979940407706678808502506843854001744112744047630226640032939498532175126852611816240100078082112270667764409048646550029747312008835925075750440099741693662757099695474583784633889831219160542061849855763621908832995444358972195150196979363508997833392981156368073820829442500326924363565587147087892184643769042712872425061736815991084766973570731193517402138022890190386822348751622688247003425842021190826753441417703452760959981123629612934556999878194937425420020049538626614187306512494207612023225187187427026588576331077825472534918573341931356799745428856612991700365918601682318420563167354302986082243350233935509761659319978995931203021707275975399358503835674108873370456024107777760913952725569403547684915308186996106405723527076997645372854723886496554283303010097669776657010713438378652594834471939498724848561783009156109254777166606956347137423404914726392025382222966896759739080769762075916949958090208016360821923553032912883937317444795066925784626796416287676595263681970859227849098689470397335086222764581688519121086635399197073726426445503648388514010837623803285752204437396884347807876113827502807503990975936000878801747759284068015859316500765435049881833122874251631124876765169298215647246595835054779372313397213386616631489826345571388778795965025363163764963759681069193896122640103138841258335341451508129679695939065064519795911031672134106224122918761864360255885894564964847454577683030019994060386004481905061174361048788380433216487920420476859230687609531201185601701763721176903984039267887296047615924891888821481504351386424749380511590191551292595101724012255335429799176650599048255742695429735707153869187790347508343392116923020345689511771414982624265911486187871473904433118380138691483093485326294767552239372006620606505516668212287649482801692269954575969195100879891938183324270890594579632995870804475534354895118145221124711088189638171193595087508906057109984849188703424360022635708280266490007818316337148975229097132567558285294495236600556745492871744620230044538682968535985731689622227738651401632065299080890729117570540707359968690660387255208671259585533538468384749639802764808495340023293931795039976135342719872105491356738738125605946203639345115386850965225768770753081608027153967219162720774637818503845961057012560774078026778980724168103984987608394090843426913196320789068232573004394949345751857179886741999533773588020352431779765295231325290409563806620754754319573686718369721364695931777920526944020556066578118800422743917834737054689045321019138451346114461283349313231753290558056490778062029859833931457675328674071264356529208595567602911363021970139823218199741957412654682191545083770673713177539306491598872946033403833795838743558496441280026796562110348045573413395122787742338095136323081004129011621918266417458036749979841808263480697286044656133360042215976325610618956288210891715186669430261634574499300241666591594208016205960983475993982073766855420008786577191944996922955505556539110592767483493361307027122049858953922193299198607685502909030657540287148955554684265794799236956219771563349830079778594499080370873307041802774496590266503183918615578590275508856014770447313170583830977931430113794048421659124689513121727041028757858774698600716684937701982526814890541150193940874841394909756477108475462274153118485078734786474105187379172881610965786483401664922662118734308366379972099415970501351835325355876201234121439430340428940247464781414789764936418224401093614749002974540027720857893137320362684986070439171000733288491920951624430110548732122562780937567677086250159207422508576288282243319732745924220090066702926331858668000375131762167752700815411438922376480360888907525564902250721879319321749156891466609314330892143331249800443027179728556844252575026227037033782200935390783614028777563169063121685499285268485926281929081119408680905400483034118072820369394138151654131906718143414416477809941199127078888624571032707770465182255183515667585413662400759661819261422244905887873738050598674906709694360266334984267072543992859773917724213069334712859339586250346876137446184894912031762065992702206099515112894316025085622103976419496836222199140572781804059952918173524852064005420387743225360942634053055879140792446891985690462017370183697385992597362729415139293159665585161680868526994378252017005828236389629417288046718101561375172519077122863956923837573706338049954250653413548372401045871940147269564387405646835579027197040015557060502765196867017207845707352246876714608155826628623472507168515729243545544086962025752772155650622251541825116224671865336954238764308898563143149967050515862135616501815917670277712801375417568625383535064457903522220915624331004941137841742304439449897540394063161401631025300191950456941733274395852444165876728930720170929258102725528600446501886029701441625468366172034327505059720698625680844850029038087453076481812208446504081399986504858747800928851641843646685569992800488184504370569378407150568883919262838116026833451267687598939104836635620954322371552573677451587825712413531606597882874591480297078039870124530129482811983580864041177689376342212219620251655412213367162537160399650406783044805121317560356782537623560561921647218671177207093335288048039299599586511029124124347521404747253721906381138712440095100030018063770201385871358648215454640433157120199882561050949788444585776150796947938763479099808174105448365486885693079942897903370616938933504370074817778113929072611833153690897859067750230984602922690110314002943839550709025347040821050755332345451698092745419376768488906519287732958110247583931274793896980743494722511562765049394768599710846932411684866292798726482599112565188646258830760602475194195025217780051295072147984927513404013021752727597098417546660745165245811019011926963837310927851123359646314861065955515616218196634493104887318421824625033823759990848667730295214333873176612026154111617927869284842173150649621820679077241908680819097012753613458864600987567486346415982897734923506660925638831721567881454813244817334558130346721884837131970500547640972780336240461642740976939373803681355082244932702332062761171258756728001719566881153980899973922726755046191010721382277249807297088315387019037390224010089651101858255513866360036979777559007163144371770686371327314673468925006288911551586504194660332616544528695018694209001416464353186680306541893268064985711363575078830398409631917616892953574021602047405473028289280713023499591650998554146661604384641791015638649769185130236007014484018136234031344040339324424592652792436237702777775077672993748639211945277369685587705721607466809003382332317853726536098055707717335650273702961475403953461268880226639031168903605571238687303092298395461758465987011443931052108846100693951430437725029698951513640768327339326346232525023106225742098140304669779285630166923526177841859780250991528580859359811626117317844717163784794640767278186501027078178073958320725058909832133985400649070805936222292396819741787873361949015369192974643743326625466063063914714272071111621207796892165805650332050238617936967038842381212029779090966957835536642975397752075880608247625203203938722091106722200809167679025957450737942894780677356324661586317412633622070558934816047466164325357647699714702056538469660294710429167095595404392983891081148247363522303174696700925558955444819962097846129650135244082696854036480145134832288366129371586435983358514373528371809954001326099107756303063039469923147148289084064058637452732330377435274103689059575876207190319194378094989504059754501437968464765443606108154386208689908626396783516477612737009923183186213275020079803955301084222212596670149914896709333681828387756711057147663776003933181367895958717539682248102884890608818132507601530745973537401810194546202605455397499492282740639054994047823274533981156796041819368416720948725221200864487778332863127173540282764304793078106232394643093600587715438660888944353956837078033606923185134492547704564112945681517414190714141120957041195452407233282934729217364359496388426609092993323163881414734942048377325549044621321641246804866003399937097924516096145340241478856555307948629245710487805051681866005496772120402228535484319428346226621631618350245895018065025564899933783308536974279868965800162905012732798859916732230248807733137655676749644417139610943841846470767593835062240656608463079635503522400618267830336843816697574354549274323047301004300135776750836624327816274465211311156426150103894844842254292647376645585352969048881606411199729283973318065158567863912059668140845706361728732559982052831122140175637141781632899185366998861943431964901818075871255353899928112234312139933983645513915233970151745392181079407916278525320579201495087977179936558426534831127454814984156935278500237137381717489351336838686244494695770100214229873137911712670189238323603173804900340456588568151597244099627403637461231941494268268104484889765958538396720468154789368010916443034066693727242751138108072282317287352726290612491412800101560396951991522049404621342940167700347567386093936845526269475721247409802862479770228951652956461005100947510150796080781779178814304853316518791296842864948992408691030340026782327808254629210543794198536052278281146033819710461411009808155772009928162972198861181315345348919758536191225388566748212708118294296581858898153449085476846256050691828012194878803222450956143287296292066862883072347300446286673763251355174297090200494467231328364975895722128386535321664877346373604502490455753375534105940995016582571376714900988286734691706607097705987256304166863253499394849835703748806286825769866031207148499136547570751809981873654296868667047976975675456571911170008382281275786021165455012036437422643646066328706082749142909572353246482143170467896529972613384422442189804872478668342430225620193502707557809998493055508780708240551861591435498064126470066662533921451855207586551728033140305021253096151005331705893362818555004157161226238853003586144073181773337703951765262278360013380615222855827822039924336085954988137742167616475019670995332976730990093095317574861726814945022350538630631309727548642364747266520447413954264965661192845819607047726292096412983267348428750167652873670154686844594991267339993091836986700981646317095550212100092759509823801666831113426181127687366383905730204291400147580905692936920479516833049749235590289996268596002521608708837243428098543397946126998531827509085805061988617017916218664917423868655531004100048720573768624038085211213599267950454014317824018378514669997953608348910518793916726725026592074084162963607764006115825511076379029552759094969690657253939960483919663860695466408830383835799994490827444737881053129424948128594045417408911418613034472732953245098108480947493361243838344604599756221750339223933421707481018806293562123858863763633511691476270597371266915785386179273160703578754224014614646635124941021368092036574678497371184383017108643800929897231730060440969806223867263414544709038656942033060734919544371459333856105364344797473047059048691494408882005941297579501129771926403740656299900661790696351075360288592901735504757931502826076250738390206295107363259690867253880948838026238519723102140442527098045238483565049900322165331783836535296980358378228893580472322413558106742600742413323548218324401440101763049253522201361422769368609516777270320021937588316062256785933387875326121799465687489653936732621081817031895315537918556512345717911601771295407509778624668585801607183084333846895698917074616667706708544587580015502646256013560398434476145374828846249357780726785661407984427743816466543055724134217737248941760830246439161609806222356265475926435074467418441530602134138408573303755928593411867722197228933762684181386343277134910036043294522727458128594185510035383339949688532570158187742336151836679226459704950453885548604085254034247220296947047993096282130999611423172135629394808912793538689732058467003254105323394250918141691489150810530389456531977910379673421953506787074604493700539430269774717530215518863091835984385754683084396984508887642156597655069128032765353610199011893341536186851433018332848870571551827679827451585388725355407752922605662352752631399651208541111169081525305334248411874607809464656677550015015366612601261817192190905999792506589514446654134088759999945564569313669210967955626958415594633466139869879157087034504000171892524959595011526539042706018846154798264447984299166761257298441247956909423569102847466109772245537417397276155295194197458592118477888191904362927079433891246635332689006058036824750926181372240751608110975588608556633350596220116526568620018696766557168873232930023289201232758122168194155881088966139852966868243433059603682870009441287555794475177802731733506314833805323116693825389420977009444700410337402828208407299387375109096291476740021601717952599092585952020355219512811814269532374854515421121066870599517263216498227643895908151335216496192931314521337095555772605325320724562073121415748379236421697725984610279905173391328040350960925008229262542518415379372473188754175994591078403077619158000161889339809236460499591783022535561169403732621864781031786524749691058436182251069388872003507420806766918504526425518995975881966330758465474925007153755276388473974914084620792562226160880674303230053817811810597585847123269530971820280783701849489311464082598025444344989533992682457323326274381651601062602491450734635397322139510722471798262938737004291694452160807331083105092147970818143404746148282775593972336186717014834848095239735278953370731759224798405452017988477086434731481843779888313438360385583828438019733903868498123501014306877912473094809823486046716922383052581080492189116761328353925985282122249019742967505420741402040910258780242150856703298584875240258291062977528166645350077555137227183945134880035837420669502962399592993556917344541061926641493389572941758067716830275219611116386906141876818627718601773846737206275086696916598904026211458053808826874995743625443905824381695244579071679623623214310056770175975879024960756709388224749316649903889865345188727011919700635198617885911353552385152241840576538428952163088124531333780877096486346639566014352290782094401800516744408304032127247374593561939689177323099780515618651190712838030850835511401690697938897009601227688381595014270601019287800834980878681073639796330402174076113640413999808882998898072044481568242787690610199499397823371607556682169339834066505726897719897864512044030349897557560080524713858824169849691965140638476866823491984059689563675465769509893520575637197866852887637623283475421486424744290157468197797380185969348110767872675919943359537145021886512228842747349165786641363903663388655493976282052539301392261089515659169746766712593376945946413638273314901408818372666119939250753426899454312095313010953082399067717999193880516475675479564169321276304751036470540089930449158978257231806303177422792970427846977856607970767731989373864412529148282207599811534188222281794198759383062125707148503428316387980224631696279525934027075888679878701070971966657646583635669974133609451248638796877893152747508530122911031351491096414731761071128607252986078671141407293094665051825069849744691264122702179062979408770097546858381684715518870488774611529726794641272486233017180875258039712095863499244116903988776095196016311704104034010103650632218891465485265221005909019276010248589641690977222037057106784705078905337070593387879686980989489253698036424315050046758074418925040720135740464321605314805996646550819267784658436451380042740605602874543354778113916386163911050966351308767020186743228306560004107042609185596220707976043490571310612795296250524280003485702140349288559902837442680981431522228645721944157870723203628326834038354576810932795930403313294987160249122890946662930039171875034166353589446031951016365482123669824909172432801969193490335126680915404271488452929141374011028430407621328900612346761098159698524589522746835621106262172623616550182630230986975394861069024405683192302163313263583461602144192227964159578024897781429098272833208103154103078770417090267253182913405709860628546046504393206215910144055720541640669926943395144840934924524117741726538051889456107095840164193649052794852869425678567314123556782777921459562806911798252190689488431229414045256647877942212583085791108587357656151473438977187612864515070772394825624595481139999305777731547434520296585802203439904648315744171220632002872260947802485873670141109722424584022331635696450732232110871003345725030478994992657003066738174757251755066712530170829942324997471010285766200689872018929743559989793392277033017504716530390293925322327028569700642089306640735784845780976948569056283010857123492774050335129524670217951814857724190131509500203577809301131326223736016501634804746575469871078021161225707773661783743198029826802252104210863576754223320107330736758017640288481366191967278065131535423252501141387956341352344284443079037729962562098803195562496666045424910095536340765689640248581688498484118266173802671594629910001836688873150651620480881108135288267535062956063885191196927117917766063164006057530150239052779832990925243188867365295964399603419489092734715392617333494048626474762447778370946732211417792716500087987383317403000060478302127536308904644731815245023454495233565693927844983800467279112190932270315129206554453864591045143676799635213960439600831631545708361114872917228831041624246503070093371901111054589825303873062097202270249607526692117423697445854327961773597939421960238054975468173170642465226129462449621113237050260163900638183150007892702855679825179050856690545817924826109294181535594974652309382652418206114515423894718801293130973379996810861797493429911421607248832494930111340071728872313850159528462852779754180847984207316406027275349113219951922530091502928750598507581541965226324163904455272749431574188092482405615498606452993242213624240205839224619833925754028814225509274004337102646519369758526504678184288669625048693978170710460569161209809260824524720789344535665251289024099905638521645448319721074092242265668154807159331222825349781497793060065282902267499912649125269359955083325530194161781932626849792903294207230324035341202342033270138009204413651568190507305355737192156171519905046984995334024231233922070534823898136890262313892380215167397907381463384232585123666654168912667221221439405510922382056658799741314760401258936453620815125528278603932421348912000656025945852597388959876640812063823324577375265743085773442799282885918797659984890066633076038449747436479374609155428339790104636956225817661104661334650173492127184571195265384778607043845909298243177832273315885527837372554035816300709658741072705952730328781535088960321988821662097907477242429581007139965408934318703521574633479773492371187222355497115333509843427164978825623135440112891375379389914382740113910325974875423721323912546112521794429230955235328581682881572978780034583391355431166602929431833592113731143732023810952901405145325744660559616419152308911792906210434327621100303886154529004577880115185774836782104413420984066255201114318741675008813720638731112440832619526778524464823893445719659155867226265422043693667487809456179094970427850069240758200659981356095826040821701801148854463507790234325548337138095555161944959093437442834314159637817230702582162809246073167908797826444855812183562242110061917872787186829539671597379328374725482481303534728975353876081125599054074591599523918108871515274857525896410547596471463133055077064725313905955292444243721268064497095807407627411143180860733769302203705082273120914795292578888243278838636514759166849047681133748251066420827242047868033789711412231678061746024721128160443907417214215162310373711986780222894262818548866256675325114095744593817941300455834840409020506427125966662121554251600366538491858875955060394868851594740540796509327704654903106243223495210258218064561777989294151708064257306235707427564330680973013249433318555156591870342524703767674060134229018169055217270073298101181203861606297320495988351268190777587020267360407800859504639728797074517617800940311969558857067570287999812161898706249761068045263748648439881397221193779928263268606670781230687219114862201371490691586669593877576545417313078326781811791193158692674287523399756079010043582111620988520815043774538690673578929334547461057140824320294677424001198357646690210294004175024868584508911214653615148014833114816473882147036945414249443680899996247454688640022735898618118699817129293892502169988774185125818555896074121678138319281902332458223539097503924902050012619929868835040668488205392585062677177390484621041889482130849208163780361331977954905260952708984259665568463502220079451554482847104541724462077286312007119547178116112324827600656458337575083359390601887453452628290428027516959017653313429944205790472636165259578697982158464211328365063707779607036665086411738723886907414904814633785494730934950159503767027741780064488609356773675979983305811243296150567459873588169705423366168703718400246636432449346261838199197932231942109773538869258684465362023348628502662680987670989771602751627473853778931162155895650480647053667231452678617849988535044765070719285482299184409492323482613931796123161857874386310036839194229731500583033048126848467588372620633493106794521112059764873791827753106765067811512499047321978816811957082442699531233984704732701160409841890070308576070193486424176644569815646002850305418680281759042824908497333704725122459446922889495907319046232452166577556914641583684728022601039522688201909777035646842168482038849791998465755135439759257150755274896601951143289170293045830468773273308446575595961404874807932145555575439292760802773462689289520815949052340079232064143989473063320286875126011889831791697468720434811814197390709389022393044603414440542980222709676324585424517173578346772993748830995653954525251444489467950584115549864355363559353053863655777227764394490852133072551051789934804061644107931950135495987517107893349930321169151647486832312544516335813949782562739924769674213008234114186949164892228372240004774854977917225633961992170687298827563610312826694553576644649136321279006401062245675106720542471044674784220735616714216143348276237442026495423636182728327429328006522256296840124127899740700608367363778423833016106460275884304921051101987773553843474466331659389254401291026111541850256291409324330384142424507821971414712525633908968895646441411827836587716114203557925919457448126631863460566353631258521484699997906732757338160543175993089191008405112489656768205010751702886606554509397920917660392933903856436623953161276942353378358601400512576943210826029986131484502094211706900091345130940493741764371583299120391068680999422550673111926333160856158468928716513377848702371890798811074237063326685827044221733616502645459951626810177670713594120730887908846045687723311909413764906915580872044191733080461947652833350466985999280394172311729990945971706094888131497568372552962562915606119336962875552888462745493678625837043697973825965109551665575236329462700227325921859925569888913027535205334988271167884801277544212417146324676343518777453332675335448232666656613587166936207259749727156449182724192269847263811904420107532397922955080234979066735718814407200935884301930747574918439274415767791126486344246685017452830498092892794383111822818702174308004188338482718974311419769314644519611848826057633516135982058756520857628606604552938937820697212370127155742788698401535309092713906049700978072477701529524039973173672794466759520166265667938730272018006740100400595399845446254390086785316194464144401412864280173166030302850309665880649147571445477467681564135174949899275806152767270205367176183627865160387966090962652182874152471608528562310499557218858301892327147636283869489858329202247610702631609269391894955427414766492402546916312393138473694347469808668076409174906542439325802763940618797287987588619781738189730304124442869631627380769877159225272356882199549897302403760233851431845658526705153445465013955703241607785708117127484316915368074687839108986337374072923188746220326837683619986032168386534784505507966570700063754068848536000252218659002666681788232292823981453289897078254794923735709756250754033162669401641142954037888559530712385170676086443999602987365018870530233889926328534933738296655015903281763201393906719465489154055215577900249019516904291864673456940761319324496835569980714140453427346211747223601072976100531229410148509375111389875449326768208677488572360440144351595586557771081519658572173526568951393147018804026763215434279603033906152727468460956226815540557316680575502356733377911924406876679305762736237558022077069387561130891687787485921368729548501280271369758315554356060631440969126314731769514293111653080167201946567206659438244236475852043610148850911975695798290590452564616819523999963300649000979789044470823484535027917843895195804201227546634368298331178252055204550416549104849406457191234311515871510289802859807070742936403576481927269602007846396190660930497392429608864881831608157204550145787165172774640801200897681009227101514125445206613165595767622032425897387497986227271340819549377207775044419914530240135068583634679288366665748615451202929038886558944521416375596708846772013660267071699902804088321587315605422743350333975707318188203699620196512356881150051849242937793825848016548394857244680818365500841947892581334713728170814801317163340414399640280879139434194602400856744479912432173396853153924610990907124029527474057332039705653174404460473028701301042166556796688416389648487036962367838950685170443893620089560348920829521048399749756264737981745832312529771716388612915820361313553297923538464628979447448351026937837675436068138419763948143048791538721863521970387230743612210574654870890200659662502816385888045254325685918620456083252131246814763689746940992673047292837150555056157161314371775644283996117145945287426998963160315818444824187312042292960614110584096885003495875554991380074763066096365071758019078724497208858498017280811357313200968048662449643462423816062133766006822148073140957067295117709512760001251385325016513652741031524804837305638604406475932697664962255642499414128105128776049916924516811082228631299980935639369117913164523730808863052769601246666925696085967930945255263510832725516821714173272060038447164975967082562564145307189051707576557027213111839319857429709914483164279838132181836997282553980909303146546973471774731332687188783892389601745541086627872101470923153116579898993840743115273013855724679799374017559506107541103903824827102503496331994743884282070962418602818197848697442554570689918530908185672296564337779934404240691105795410236739573764358871874031027989700947400960459465351748284643178008768207697201953142436071983535797195176527295192139567615931343846898514038322327407256037088472138224973875794723299355699387799892212653903568080425385792792323497127285509032735277961625140859310601835310752927606483904400362285939675386646551289021345456366553881709899256020659548214288947563054907199686757970051477008788930089138807620756122407252528081483822503912496613817389828257441653938192894723542892287604207524984413187629862431021565040469336215325754482731474177394174906129452963808773576753334074548763799337536256410722397801899259623792855323161426903701537565259677798797127175221093027918808397786148873442818849324317834209595149410714635636944491451802317066592998103857566847282821363307178840960641069634270142025738498553396039673789345556460372821868119739629787914327942304476359768603292573610291570794852127205301370962336435013886589617047217722265542192945487779338376980257143916255882453256540511967097121732712272670344312983799768231852374023873485472311862065508063208726002856908186159477863339215962852832640715867345876252183876095530565072669344348486232790027479849186125356677634773776114666815850174145524044147776573852479138760012518103060230432638058848052494147525227313212355722529553536455108849876183852747044654785243416403370463452899719680280932201634160824272828983327114412439793068571938700203932075804253420400462444647715985853981389525060418043338769667823981780485094041082035918842264388925135776124129475042963442427360792223899125591219194878936607242464941016632446676222988752876665062218310558931092974264600557620527995488579734196370431700352635657792409549609885227581698271387326398779033935920426448947067034763019153723586525729402762946542083580945379064345246928952157604515955345748029356891336888635525250453646427587654174315458647583128398558424959895195799835505021259920957033235980603519943263427057706689197512776284662939854500738484426214829132009025544470545910390004275194968585047417886713026195722390787418592152038992523433169429786066932073900980562466793415108103169706446044892412095329218200615279521714255511315878732453221656494344475776383480823800998835414574136669022344321201965021270640787789277600930580595414972205437771713561316133401353562849802443535585398617061844220713594009009296237125327666302245292001856000273197349708879752722377960067133965382484000272092378902529878030803744681246578850087013675233110396242024849629630232742028288110444911777208696277630858945659743133918543093580770384997031187577549531930296921560547408420338364121496680966409214948701284651466790434744340793729855325699517934799146846458881916869836677974315162819742141140737421745081506319064661063024043213214325348596118978118198673131561718099752533570429709706860327705752516573247036375527743078431936369353603222855761492021217524024739129027183222071205909183294364601106016525346885694324671703722265849701859673101808229574909465057794527803925104069390286727106195986584824795535398025449627196812049456739204101167174012928418423596189992456057176718379222836531367357841610436303610626455337783564177815040730394357232268341756042675321342187631178690238352483408995046400626363746971825594142191326010162095271348591666908263222001169184727977747684797412908707666004761709183949429519014922044417645727487914393270074768815532245508414001738595117607054557056348310341508194849323394550610162393980550082848569009748147301625792749916606151428557945053732607018568805884306619074740068040594975196934430399464331745412366722840858912783444215284130639697963437855682836285928334084546585487977877116793894125021715686214629559721920135886192347094431219075436588520037936421980566811340035928849591068794378927882512158061226102586025555985010260444095102680544189547545877286494676715462498050650930648206008027796534320615132693182254307633164544368613460145838514976355214031096314485131973004772814799793890455490320182730912011134348524197441901342404981373186056012126084179096638874948033913253178508377726863801103389268802478735296678275282963557354047478995678858040116687161764262096679688082128307859576013549403830668989075106756936992384170827548238988264345407041313081755543219535209400477657986553583497475587208318499928769366862782696365295976531853160258578943652328416989613960283877527978901013846142226040668615971715346958325600124644212560003094581156577147197737337898999800101903649247136873009964978857251429312267165163881754516026779696703619446907644790579597821950259821370330388035332083691239171061290075246586437618548426156857319110216761688898928446869574959002616477051856375206735856091691963882954560227717478636405215935555539658842552213892134906088207693071955129453073169577756528455907392042228045493113827213353750568330054474935761027275544884604831621059244063315735058156520958140382318379710187389136099340389984382771356931181901026516116956316573408695179727238276662923024007740095641884771647819513532728271327671186996466007474585113952878503865324874725350368639432028746704693476233339538328697478719689182691080289101567806521243101599932189854562691122291750429629400395887836192197909337277346933238830380857465693644484372391203949469440041568055304105916423806492952924185256167832891603881680268006592815529563693031698724100669756472238756351721808123072851630054029996551549785580026328464609750180974763870301632292482487313124041483211787341851096506636535523390518884473839768751561405901970244780323647265977710058924936430584282100429032025588723363735092925085271248538466952942892794830851441533563229408876234906030401867843430658374984730389968034284797637818960322144797217984623794969049959167811639913379883212960259464963081597348952370891864589426849187239763955154858309751055947298562314364296613144469007965487665312427228155133945858169442680129002269767361341480593387212649348587652778015790795842370069940478575586302714058567141907110035044052714066703736627229371125713284221765719505755339328777780854021608705998619672196565461861805830720968356406288111589204061014861257593946438755605036330986970552891486737666094476821101421072372745713933592076051227568392188587996136697770024542151958043862277766578367728738987768988883161491405736705604033766501740118106832337962699236980567355463366238520577682465328029170044877627105231956353540836830601266446513467322235708103601059076795663053126163914955215869799916213587210118430443460987845012087521770335217712750643067917472250858653837171903358705144008091113028232707975710787813145231354328056775063592652902617158359870984233520744954523392271004341735647778305793567221218341921280866403836018659932593742022857493140209282414662397249418102217176323647392900925492277795195366207193106489555918291382571850121905503889224490685011075842674139845956783224982893074611641350103760401508042326182167472268133292739964569606116020169620116430582484719595941979246234763818797281086553750887483842080846715299774435464231145258265658254843277175703690702899724494960939177828785349396402223482072707448818673874126521826648502437486283883037149610346787327505427196021372535035468819968885948454252995976645262013284575635929593473099685990311388246743677200934315154339686006753058936885003338218882464393632723257379526532010547654449451973453894984973248987122448694924006364456129390243004939595362354957201733424903365171904870721285589160427202353914393525401774465631842402322914733904511452464688378908830529695394118043782863349978776975137141454000090828563782597759839424982789497250018789236633339000055343144238358796710194419691620194706575896201151722410916002894941268467492016601035623249160434724217893548636608836242109261646866135516360482203369351686918600025473212843396440394357332784996017703664335530541683801252362800153832940487563333890599758019681978504053115504199046515128894970902326759092438148998950355210439281648454361546355254865766732923320765335218061200790874994720065929309304774004509546333082505528964823082990407340688672067868432843056074574550099119582758028075548873486339236836248266133911057907341256147782152781647148685695610781585345291104563837951778461458934980045158928085248664861584577233663776240447789027268166054996368109784125295268249277300163278614688948799681230661552490105512580513334176932338487748909353858726599439765728838932588347699817525268692498716345088129431409728579850670330239966154924823213039171225799451653761366952156371973759779320814561815523068959540331109622246031580037388229654648099246825948560568032889534282823070497728541993979404897716788822752449346686321420268835093193240884121459391474745746217458788962319389012597699534908797182645676970190755122953063665284696418691135804380860270899973107462848100414023808151710029566967620804922022777802323363477253688345865713105612969355164149890003045195025256682500397798129241493857775365568215542109543404076299166610340762832704430096724827088721753144757453683534760680775243619640383291806940375068101028622110089175206025103288697019509849303209929091468412201004571099116764495377350366925704310727945491469672819793674731026324669404072499410160898557029433990627538534881890573572984580219236414341855308750167465301449517182284881014763656976820602135878360909593148710327997079716442326145427157253885100777488431086608403276401096434299318032693096744530975787872873538618477836222359441028533469820623183886214796687645511210532086953261141102070357116576778528974528641444527553321367865711521305650866100674833102955058026153158676773040641007724004962935060666328069222185104093196255358885403626676492756116666725699973238301101237829600038708118826106981085409959294297715668934074288848240065409355739237688753627767638776626518549147447663412232125188310924200684191186762549116108272497553011385221954755642540769921563332769356370450407412090911779916889464522034740006531590516651920246956714866241283939454616008935450550656959564687435480243780999331850180408536755118733944278824870097280567699453050526687618570367863454805021344073989411792162609022041038876679681641027750839668100198263320595177441005132868606753622845693411418504932274046984676692268997528808366053131556022748560159441716258681855950686081762694376207633823037918474324631163887055270139063368215666873870408812397897316118959081130464682112517480108159343884540424098507399470298829292174523901645809294502570441279811576994855900589714789162672979984677355020088525609272351127912043540059642849012296981880922392998910549462026059263689194929112314618948800828990239544213681711880460744441079139024167544531618676304234157097638207558913939012400496333974068092869858927434443444225156853040320415723220456970090998619275258544693064387759358323884055672808464935004667320889334264513718448686281579677480992592025177756263893554588683171131772848392368149994947515816831142964023410316051776334007445239944822690550679935386745107589467977494666118977611768238497572500322742395324945040601489832992177957611730403001408505497563281560319939940015854606458331733548070148715313443036422209721417707334880207290072559986203374573076526380357332226649121992554360720976430616710536698330047429485564791206835265555664546549821629675178393968965286206270610083185110107854407792083100160075637972333971699183550691959858695807362540352808195436113586864857451954079257715389597747409958799187758721316056661869403656796731738580360708013831568357213634095273114491772417277063025421995812196793299681825132841566608867325311259579265918896506386396365813212188010553702360609197078825061767939095693776654392161171635232459913781702559426187933869279942961766715301179191432824123688999044545583525385026854447361067987325856090806247260751469105616863460881330186409789760578607203994448101794309923337018166292869452729579811696748119399785582663880241922226046273756597367460809953592462747646063292610915998286855282547587456728292998234356610950958591923981096016101562919005544613727462621032055150682125404360264224292176798334803529313205381681781307859782057258870616813906938859193736501360146503680636364397925587681178081515071919873891613646401855519173801267469081127712975559610852751886273644355401976823293737658863939694836379226730993588821295890597927301785767351242816644491437458508501725917483068072302794763972654382678681580623903399592465819814157970172302730071308669885195202449505703218388102879592998245294372153814197110357504106218580162552646415451841757223511119385715017078207260015375348574344632966423093422440388053787040781806340015433442229768347591808768800582669535411093081169454746375642128702341026094773450599536049961304993311306444524807283728527744235565343462717332368439598883975937844221866416688600057550172532076469638070633662381427298481851759482030721994425949831148115608535481776473278969031452222850404627483050755215977459914331790002725639269808426245874955017844489499708480327646248785869577488409849971685620623331708053845490489510836506649233960772421873988343461583019223694203243446907037777699680678031210005126527873436380669754236806673270259012117330920266187353307458041964725854322781035862232874124870287237894713904051751682366579044683453742656317803991556988621451236866812164441949225063285959800314646930464565547189862092644733488494738669663645234938758581532399711836018827790927090877430539279447613393399921483256608382147950971026400614593025599640669177149900919529672702567068498622255655075710703365829127284407407648253597528732005128599828646627090025291384139692233215870767105574534433680260514726756882795884623544707041950813625171458911258346937394575499900104021165839932287142635387787347968341873003248305799857525702238433521893419085402298048436551906502147919212956402862946314615913444643495583550978757907065264958230112670273393855246749883497792717612755442457570312752848853169449695299269977483247108775373336722831311096588475579229970105741362632563493536689374466905674198793233170243872571845626454635369894112241743042389673027564720835288622669597355084578615035173557468151120268753269471806432007024732707825522099096613033789201105889180160988391843119171877399011048684939635287778042265847203940904975555186220404105741709614741772520398499075649754217399473770096306711421835860533673669182550294455491690048097024890788117003874224248605135189819307085543156065040329383556363678656609845968278232716147237738807153072638707020836481421332107224209389884997710684535407402030141511001162565895921228520648053073125167572917110431975952674891877212092911441459380793864693742111134423041162291084900354127399713297483086742167145289046855175283776820741551414444435664508580281807971769863849921443659952338380901105724999015526254499145760185377780496402631676541936076515461174792825823878021552821892558012854519594306398148167417547900285542370292119326071787170846004588446510007278374713724182585197654097206544817865953908101372542722423961266792414209663652613665326724001209866330589973039502607594696760804030914266135255943792596419640567483713960849856626532213553500045401746492038127956958286668516528436806712146008298373730497678710363709172253402661074357701919451557744187911959974619102890091989957027549752141926807848933223775251854562351216493114692756425007943327477929107641491159755628695049645376062118082807120082711003138025525622281119459912999787362141782967993044214597861357980861965525666712685257950580363644678589170342775210112499436538833763008589211912008409690174567779168770621936834779483770973859758685102006327723372010652622435076574065018331798113951129970251072605416552007596082182200082134077901052138957531235405747695152475489623679358665338358347736649112985133073190583897823972730542440627732370707296400044636925741732469841054938927570548956154190139899066188887015963111489586193451907222654480795631699981630005171820346831468701008047697682400579382240817628118422577796534608028865486620411395018334516165712875451577091995946391519199775755736354999143746461470927856417497157586506256055022419769372785526281231178188300094159444812718614418728584432976128595977235797602536697062491251042003878231490731138210383320463646469625020314341980999263849773197674344800347119123000009932558209402456575718724340544758969519173264924781970654919679160067142209874449570261203789837751203538799693921358544743302657254485623881966243179194320672494488605040754400164061345767785799377505898031542299252875936699274749473313110708609202972449924418124155210139999169937960443723486798073496357074926917651434504921130773952463905364644187838408903390891960282983591775487388786451791032064648652556676706249889704795289725474455381301119051831246250713185596472012378557177463720898761654042412735123504738616301669804918465250926229914430739959650062686790936258495639141158061212483498121464845001124054532273640747634647917821995066640016280265916128669583344820177084194307773327937135687675159295610844247764335074682474170246326429550033821958312685054543789481189212241659778351209312035042567458759224501257077540024571680020714132471409149430035597040632009916062758872427513907741447354098807340089466613753961664199901886424335525243851672574480989401400426109555973109040587186120564846643904900650704173134205922371475598142095242968522322128554511391147908273418930006944456119839558145388933333761671022774130838558249056009831393115698208111683397485663660278108310155273510435690438312414961850509902099824572172676947550579030561736313187818215890536946658039140565007287791373556584149929302185386927039563102391197678262460076738214093461657057421295062061801104506271379371831275050751746548408857142830570406322658072607571292934333659500467844317555032839448446914745634908114075209629345558942806953091000966871303548752271220639733478021100712717052980672727703098743802860060743935409732149716999957710696019770439496257732162944170637794321777449059498411927232591536690461747908270232325404571117877354225294921696201374172546307923919160154109028855208123354192062925851314858885221233571921467929229386162837201354991799517059184701153486616248181073462032040326261914501665569602533039350262897273319315545176042962139073258415814165358982168628417833755766120064530029924985352878695488081190089643884081625475014079525899869114483599547445184592439969742317007493450988857406795479266829581965047539993242564605727860467238756427997815879004351915228091683761610587746083238074743788237636213496171153566281663544172268176214511736738864524758653732972822536779380367002672291029569397073343134601510088197751900004457227132537722068582925580433199355378705982888102461001923235427758619936576807714623033523415846390867532213795153204532430249033960070658897229463025932152824957147554745763084289664788276629332824322839397031472708182305211373084130004825053880907471166978660627911748478922323766764834121168281083582834409161390070349740985126670340274585834546368021711177156409622658601565445551173349827482986822772638604191639851530879553975506425115624208790494953245454400263046356270637427721012895877549962914939104826636721622536785892108620145420942896112744349665956746195736323098857285721910154927524012846261633913895709898046733354841217586838193854386944510737379618291498742974696988532078664345497532415927447978530840264051561943482216403357275821250001717727385308111122414780039491617898199686711625051129800455006836630291335187354736155781089678356151933804564264522392679477654890061370546615798291421266916251049574328819472402428774404438057885720881177469480103445462252232966099394065265022408254868729926949480410664900982063400740983581001636542655916521291213810244371483450913720905434728603016767804109975420315929331062608878153002481854155315310230073812088660887481980679550627679547500239286763128754641867893467260019174235704823884956357358330980397919318839523592998842518842693832031266709078863570181966736357416705620243391504718975730095914289194264336582676046299906789687283694590925855241514833355678382679492864920309226496641966647330529922323736538420326534648987178074602920923731994267415715667204356966089575742842851922201851114684508895239663423721201775477537569235574985426381839134485740617011447291229332557753203672252223720258755148820815251776456838249164256675007473014095271429955268559702091243076737229338629328612635303499621974060152771628950510440116199655229938064298270023576489413434836299407966838503264407536641951020185006929975688974187379310873774334081768746781171327110401339121723053158514819820947314770368986384184182757617889469047277969954404687490114991097331706865392087279988949609893416781678214750724147841951671869443657051305349771758319276730801384555026360936790861284643712206642314108808876539477000762242236732889737955412105928434330350796252917289597206822670464702244214590780838233842944845808163422937989497758910876000033231794382747505887691684283216176885549128227207287402847247893121849804320986032266097664799668449910431646398408888567216489393710358356514935592785119397566638507946056990313423136427606755553372509398830717026925280973304969232270807981645758554607531718557147308753210657397228134829983115211050906638720768340345066701946909492596405041052990422638620851428351258576901870035065713995545852059047219742159161787604182045328552492308154547305362086706023356844806137560507235754606496671860112845899780432368206692054064433271251120915244404976480584745214188916057166023074062029151614600017757006230656152546787115023020537365579679517291161162727399930797744926530974251001793103523490011290243384711391735893403924709638703208485306928276622054342513218187856813325479770463297246835496079409014322741882986448624241582735220235241218311614536934902272157659417435160746269911444615806902864610171265735237545466232068555695767249361137659986469730909685238738375043763515677427949960405003027679269440363487739804628933611343393014482799901938237603541537690573937121350092339221917910077434352693216018284392197036796893675301416635246450598604030566603972486337888579040295866453153748662172563985124517463866055883310960879122434474403843414937055031876080842158805615517868390911800172450543382720714660500345130812549874452776250486971401232294832930570461289209659256179553348653874025921532075410877466005226586066729865021685033081112948228386307818093879809822182467979175566589366338647154472352445809818210091398913046411227328059942382642129600122584493274718495219465901500578442482830622021553551770328489817019249683521998752011345258770064124557346038468351927831308723589424192370991496395064216830251340471689655089585767153657897688569570165110474420544967033625251661189057965699440846970798375531905056358467568704739191709319366594145778753460877571210643153832048618248316111779795997686214208978843381716830743949419972129145483074436397114212014359698346436036060820416284348141321378908555427758320120999569413276031587636828375185771834455070361803274900244201295598517062435190544858381017410210175544076420084108704746381123068491175945212991614682586253355667226385788974605188052289527117014973990084786839309483158415607900015517330463632875383671712968484503361668792057824352726925230298232451679989800169911841873326537371698103003238523611094461355234552959353585592253437583725284198291535915942281726798693785884711174192796793978850770587001238225544007383493032511303837891640639615795331494935620308027657926527409819935844404544367906530776689021645262923674965908928557513418765915881128480034055864505720080050560267794110412209528458312921324084596472246154404968101492825150899530170792619054132605377237578194224398305206137176649589129704744990190259938196390782162832150090647278708808195511089520397550413258328198802817144454723059929066290742857935995439485464454974457009980538601804949383710366466263160306152457011890889159106875433450401007296256787170848502916278910959700562027957150033912262177750433798496385035812415999810669624119594173557431097636382018111287114870357541558412006847129384681400153305576266938480383121156970261332329810538304776500094630578870594561306221350226623231946635033334204624381748558881564609029370642892182006294466434619234507684355829009321145493408508489778285728029628447735471653511578381583200781096749088311680440486896141380660288113925683677718589128385647906483252583335292168183391472368875499420600775695138615558026940120076116779976319962894037097922626915738922120445287914126471273030651861132795898642349498292399299617869319822483932451752163117053003210181077114350124632510978923953543092403315498110033877445031401090339268613539014706477178395322382205759070849293998542556136467273089295775506857696332920813221034680068472213673623191657872879493814343143259224812742790161816026288800465174205980965387988603555633133380125035070563011293305428298402988327988846992738946981319510274803266201903999110458978870018226860199619046134780497318172258416132706649618921821788606282886972834295785438790476234448763788366383649074409803506486917245906176793908705769310890929853440874036186850384968990849478442752340038182452298322277161861569730595554699755100200665751412714460019948966974853188727922468102286770361602284703398281597887913014963154181204744930865494828406846582760453571722045412985060068318680631821205846301845238523647801553798736981188547720915113751364245209254189425766987474249764313690552092813587082786526696276761181561338032539526034535193378981020110894487830829561172245800064105899754181978826363702120161276924885413276354355128046201286290595166627977890799097717894743332596417571839217389592345661154499403913149141811279306545322211199190493922311604443305115635083493488295411183156715273678495857456910421347734797334440839055216766212632607131387257447036264388735454668426986290420950815854901995278791427155906465156186114834030152143078411007915682901240341209652295359836632515580184248864056797389207437563753301837723282922122558231329704943015976764927314412367011732748694706232022788601289283749043260852251167280657597185455053633880813321698955645653844049060768088725120361809479711502401186720858138743979314251448377219709695523393740391560898742061337089955876783419243906829064676223025281539796171962327228174726609171132382483494128311127852418081435941308979841429791245440522566465254549616679844136846372653979546356242353216350607920515416094723279816012606280615916608099356307456167573238698441287026391170955538148029557597769165191013305328683040969034791528262648398819778532100067490364158502126807182699636579546039481792849503881188994129649040050255800184407776125123856705654709845441337977590385582926793792658660436947353985930490506643965641281129311557616870524684475738527883597610777332198441957196104045447249941434425212646588559966282880446456756841271771032693324391093701093633125875206258580828254910327632705344233458192140419994827565394716554889978210512514844972527816394572134995636532358587297662293970222024015424292560382850427116845689296328368520755743690509412663351139559181595831826488470693805504200642101337853953456133995026530120884930528182027407517295729345725160957822789339019063918366127157307488271036197968550106061215040779694860134633153735716263582025497519427747897109545105057525349384120507571391589774485154287335732124320752254008334000702813356924636251230861529371959908165828555119747340184151532449390879782174605736443970365110208440788230685919299526517181344720533683835827742172393762594758877698584772970894805898645993282938515487313178863723259003660436208725214489322147074707068379058638008770730629097395472768147300126102071635643885526530233101725043355826015122313290928001834669616748726511929965629285902813078935670216991499619713519442834342018725930026344388691752367256762395163550837410162929822067656405719826135625209336150381328296534393983833234805030412573554333280983057584485266726410104939984514560315662426119124514872625601030624355889105688376789691559832443118957265559239461454803700475228110517355443584632594492383841712800268507544659799987673221206229982086964056593003454044706508303624452769392857638913623629463041760490954313050969975449713872008838605229125515045898389439718967672701803348415891280655339478334149700215176189256501438589530134387704028980535544453738114370934922036885598754965827634431689470622531271992227082740643649096164214874092517283090624212231036376311390310688827483067762934328997066861435498226288782868683543664436950028607559138142474579168729133422853834619478271024076574174721803206392495548307706320954011906115843347501782219936679879954649552093620437664052387610089963398382385355725935216938214112539448737811522155972886546354784234770492884012988345953842195188666265523320775733580726393891501896615409582960189632822594095376077743812220630102743719636254071688573849901962705770967040290085004478939980013847116025644821747517721721210780173783407365836775139708476371242249015294294992736412130656619121735949379758003681440714519434853696044158565206293019653525552367264276714611442619961698000479435084776462238600019114093090182909929318239239098018750731114394573333537288939352770239550119837980438796784020953186248822706598650317064922890322826461168285014772743774809133429549095232767620338176545321932495501414813475227643583231539650869976500131357249282265785548200460824900169926597936723342441580937544069623919182028988873719820281596416810380137187485293612043624036126945571778742756810272061076239684534245957189735700741601683238018896806000063881898023911506305224186285180354367964790801795672987727466981124045670552479041657737655068566048598974807794677337959509428849952346297455786193365974190243604777162126398464815913458835766984812495016587620398439311586901785200419378435702984614668756396915727535171705524472625870124140070526169231575012785649328936232437350976666734898797567016309053093860329151081694975347617150075406873807477139662052527389189358245154134739743395750289812219487344381580117719175795564569944374205781777570795245633082986780415410078627422962630212131711584450111182610953195856515889918113881137284204627511160302681747230593323696946588605174981965658758628669254702515188642269727432682311945218978449990183330101662128847685219321081436902375127804082896156357542985917202230114504024742394585679879734154406561686373253310873679773708285001716314440839560401664121555688749612745224972938529026373014441157960337640259403687064934816251235638996480469686749035946816478633223878848085726548497411644060746988269542443926946658150345340638387063481594790723488621546101989494783326570382530266146834556262978524623099890291106857917624165784656233531816400825062271189507959256629654228050527063184165707170226831671621451214286314037468992962790947181291531120456294265086548634758217616794267467477200557788565747829053330884747481869372454741033123049732098113823040385249817382275694942692467361919585093980896406118134584652690552292594968113687480110261576651748063949235152120216396767794801653729072773559448281907766925493936378923394339953097829025489283601703173304735565689126171830200967610977160637108666983128663583935602533857775070381681461568406338512900230249359098808133797664161107088775943287115310259765461220588166194149764515794879061954188594144409762340648055089002455042379152567327297099519895737639145027186419173329603089541332845401920385368555637509432199979033487799765611000199457952505850186102487750642215797130246339149348655433278856956181840645927270665881342185194307107421217221988961047658308692376564071062987351229388312675295005927003784845661771967503254552728553254610032809198411869463642651768825985897520300873514781466699484170296207096895003901215508052287357683364995100872388649422470532491494095574809397439867710374948392539491257285965208087572859567162862064124252127195863001948343359153127566018913686413196534399848856939925156336406088643067396647391811774883868715004608618634986360832458155993033632238050615617383071289712915430225889717144587091154965600234021951658572328574369969224923698465332689204322224042106072305963655611731697140773226354975700787126426810585029889142652247342167435636730563291358977881791618412459635479708602762068991250458129540070814554804768063724664753038053271403486144237021564836907745751844129001261932974872092209230750463204367317956853391427588253708658387325185287427735076056414563460718064679603348064958166523548294332792344840580134394626101066937544865351260150777798711878917444573710299843285424190267165759897968725052159856374207336357270429632083753596009694288868910749001134096489742412246628679917604148867602451105116284746462698709024083704809168451008400704730663092217978498171702595245655303158448017623456469121026566364398136995518947649613094918533561783870372444298320880945572102492202642073556076576548355653938392126187341980920128967832316365033466127886276864855905713066058721194115653069203515790314368344055522124577354131096439269604766580172560504863694659072179931677925284126305548923228374063978189984187608873703827493798818299573593576641807058185448773827256810235893438148777767640517322766666565522421336532854031406717402925210161989802816159825026458564204987880875940795479813837901222267771676683887196256948986248454208732676791524804238417253603149251976934581432841719926259939227643047655776743058294215119028730702485048293947047107036323474069295960792394863764186595559327655963221354846110189003042601978325727591319229120539311295706731756653996331236342359787122112342126696896676599792381674917750373761934471817803851937672990363062596412855062878674885246808165492330760996605420741610175622652966785505711610316808867867233627177849236580711235169946556461866482997025554440883154918350032138964980976451703349879330498036272928426239364189796536218521681845371003941977388748026006870692773581509078896757567107762345227986646199711183086079485378461898536603106857607989322385855974943729662009817073592602388678825373935947283080221582133633411984757185842296330534820308882476889374054168068778842208473005353934909712484105333851003426258082329818776971799208376407011598201853754578048615429819205957529863184920514827779074193537429303841312896981693388031578018044234769269363071560402756318120861389454296091421632910881077759099250439003094258566366189473407785417158842111752606199815732311653375805439206788566730720580424711878479464932877542617583362844267445310691484307949319179285278027340565106370295391042450803280214210800044324763153812155407210203579004669785580582682478750125085409268827778519054207285069178458761460354321486380504920040282693510471928270660630561936519573743190129644001115449577808510589014163397632236888747591049387774667882236128276029995889688552409253841879038168097123013405725070675032839656795065964719473729629828132368578803344209577953213808562250681417143500614698885798000007009019149148420600014400587377186426486062788920204242856717050995071831853984262039503446192829753109542593028165802277460062113126898283192994923707444075217317063518576355337863322696659302023565156340540311983616839378462597861926550298576179414607083333152604932101897405459503483826038087317454249180396530411384372832596584619152727083026790440649598699003967808921558224376593967117979315625166221922760837747888275332673075957332868567418714515254763734910242322646351315621495111965723778277566660280508210544053497255823393834200119641586133507196364597402445291948011185943111071730657131746033020246415468832171196381468098736906941545154599492700306264854981163706918934383080715493234118782975671585505785108933968460638881292743111477830415229041916276508576462649273198392097375823635953260924246469090673797883040760287805714986535187945124780276507867428449525274625442109585099038997624972375927597711358633573119256818593291987537909435960147376872088909601859827163078408343086878588689624969690586875682622672373261326653307711845684354456615288418052575532413862829906881070830268610417471848203172225122766116187519608790694136216638523045061707856209228123499991146608317709148385348932155150108415414170306950849430422104446450180879057013496160938269570670523724384276323091156845912105541040392647777243154714918184170317916551475738566867766205754914938835158745683167981325553848185875637108153633603556066552097593049356497232807155067115533802251607173986896358091362630447329268371806853896773910346290666801513082205352184000725234067010154955383070884533159979128876427918144848459286241870906752255847458987460131438817386006675818146157836640762285957110919602383533990696671978237985347202714699154780675360076183124639403905431806959625642941793029040363212269509012733354065492481640105161129313942664758195694385776769393074857565542491339230293061854925740421923440277134975222513244960038470140637005769235175665836439992018003858853222112977117700722755927764535079533116755784997896071398762812253597980457292569141985525367877194294127420196669227024570416319581652573853204559950775368384090906073792843711678439047515783146763427084465231226251466271242246909200771567540836595529525330766451865167819027791984050416419200755421340793467325607805320413141000622867123461043979663111568108690901771051190417536180511117198747321190009163064383740409099516413953325201142045168704186671870326875972937557946628737573613192060103869751489425827451258741685974496252947643377618697369458085589730520709874279028355112427255412486931337934660119829553209630447466457336887462281022568494359894128343543702509349554096542167339221603988222393026383717568463803558176382806871503554440529475630975893162867681484838401585995204458402750175052763563456164107819207174659227159319295203929238547299685225638985579704979672098609306935629275487749716210118921340803869742054688295202374371072989691418753794728070640061716655103880312602139808997344439919671056173147435570958794703108824479739063390961018364781435096671469720478948825435352750341318021754976257639577218205948474808514397257530320415973073864348585989813324442805576385439906490781875948445996325916543246568091616980677674827292646544941301881267912284297903150531943288119981658137077227532749999317045168226637711114486715041283555704586112035835015721201952311951619253890116159849298772329625260101755509468271684072304916314406078510930098742343174444225359388710309217543925132721275583198705463760373689832851983156215821019495603472360141953405725379707338590232728733170972355812551402209040863280701339732709420225281728712157064547816645431790262224594170699998383304069122398018305864085212108283692968718063612157640623341987697585832699776683652310777954241574482230596902059442058340448108370546211653602161184786666510655126921685037209252037545294089642916573593478079874223289456338685678043432666942538641068035744584357718347262326053599368449876401075063940181242188932335713065843152267080882488957196150475325025783663656326232534878993260384763243265693086663009721906665965500840634894930980913315908138038332383514466706578498634983086083801761534199477935044451977569927063449043633294163637726519803283890629252021335408642027038061741215310596894075002012988075849485182005967520112604971829554934336367486999070457841832806643482072950040789354744341414991614407673556327426212847497329926912268021228275133577797891276589781147026860569424385502290209128709110158794056471464676353991825750166508763100663757375848948192818587435165947976630704242112780823827466551990971588650032747432195219437006499398056693359037178157869193798982831739249825123183303592391283019385037414548068991309934983438393220542435473298363987777991165527748258635186542840656915054489708549898353038712482534351114409843545583231043710412113530176363192933261043936934505272203079990701865805070612571581720597642026095099107355122070050610717878855730961545006985501518088757806076736957191406758056808103870155804794884546460284820254524919704876498255525333051481143918253140284089976244400020658096239107311618904451378405592308047150244498837722034874310611460325215398563358454566367740628684373278651827151621491964569026690532908094186371498270977836585369419922060181299734093891680538410651081239143977570851176134123171031306547345716577431604803236335071826811550133707140346647800463574116097489854276520233033527855546370811933616756546546271088678196200134484884685823840893487984744276147598682080388573067873546980170112273234502917908470194729900292622812452577149551501558847857927206253559177125068113613263914617240901570106477776784547840229753780257533254268461475321064381088304030557558055710030862468605519346346036783253203128384358710550706511488092489866795396818315033294016216868235471956676988262839953742371074302710940417932692765076138801803015050250518604407515145688851244667308855062002977063148547327770810782928536156186813334033357054586168067253464254421271209491068776502670659242100880571122053498801524701118911953715497356317548443191382063408788045533972502754318793507649543456393333491119355682589830653886023307324488769217954586316095688341315735890827633752233420435091360996570470467607060404432299506825259232387623344143632160867664826124194709150901250043375099002315689342718586270555295994771912724318817251819742700202336089603532310919691874899961191908569036130857795777955803055067305050239676917157096385447478307037105586807766545541447190376937503086145331859845375893483051055557743475963270139665208110772675958059047510847447956020331837407205240017451989368938266074972779208089859198445291768412389532199665261174365548986202992999940304794263777750223260332172109448698695301841886388924835097007810836734907915256622232468590020523720673346459643977234637071321286392518324790447081461876367854378583450809480178444060520556452082501505873780924263368017213763482033464556831897885260451196093590322496193799020703611681814220654958604606235400737561265171794516949052468770828883954407481183820022285498383607665683741532385618611336032170296909253344515818429325820585546155353510166362425592311625946262899637711951052303017331969219962910878381409433408335129873118842942257351339324968232942776170009335036876033442762475915661343586021399936955103015874775909819565303783858028470824280007716650155785295519074532301887797432489122856827564477715250009073039712970347896480884093128240900197289114886647440939983186167650177899160919886602396957923903417711520275230007122141489470055467916841422395986952326659273766587396147480888194031727335021875113525577087922754086413763429936673256165538118304918602667180551562860745522746990177455673335473274851319083137348909237323759955027054380532123482227569000168781485420561100428401623275832171054856432281680855267190450433528934563839920321774995572878774725675639843572194884557036598762982229740667694181901295260816798845822682893354637792859869252508380957436671323368109294080664752490878374455415304785132359760525099848278680655351483199761348924600596774438183535425353053660523967621787975694329092793360746560776846939060745218742353442951944373480664087632212010654041440287292805195856780498954406649246197684856675215000964233903770993645622696295820024531144242428826552899837167161691927368696069617059815079896222434556569530721613156469814666705371526278578620973049215123006211352038856790439413992310096415553590949488105377410014815556385585775769859901050149503778354236636523767011370622259834666488244056408210652717026638185163786871338666245658229117572838638998643969048439752637158597918396719047980862105321098290696340101504693351454523612987315981204105278695647684150561318234873371494264803312547530788863813983450384907141293567463500564936268933866918261090727744022990413523658137728351771437473394690753830235897440355936976118363710236348958650299464105950523468695230641563723861206777335765265002130978259565074467197470707702960501871940939442285463634256583220737580324302230669467085594512434976453834378733890409076111705055355342913762229645370372080602860900041483812960217103565228724711530064921632333768546335110109192966918758643252519170182333251202557909429290635564374513755547227479674913751930680599082938664445458754940621196809383280537865537800634820020955740610398315771061372913986178952808394660179435689535096787267074756427252289598468942037047261559850778832531594444826464862320501513439593724069891099573002546653520376061988009170438606102289910878520649940396543857209301234012350752416317878747573368115466369938112188576770328628664145980168872640523498548175268352215061081336982481680415281525032772529308324877474873903524240136349331833547161146584157741940266905621779523547376124771200069222320227514510267921363444889060602302619792713971810430380744926729991597017945885098205117055951970513909048120597490537807875806554613140082512020729863280344318843672488094710273093840247746599001254630642238034885680685371553655993773851205770677392256805091915942011061445487255108278417396097606538366702892831378354934090525158797249767945154283626477114102795229382507850808231044452645361164111418198551895077269277013706016108488616092521328219351512109084543581841456159557286248134605432307228674300849615709712977000024193457129656799812019664639566499212927724597824699807044201011330448226662282228581329692631302566642319970117205528508428704286235351192946116245859007948289958608529579834065412182057268740677505174336141387199895980794555614689822657005784770762521504364820848747273131945105625042751466772185862079231954644441102663719848399654022610581678425216210052461702493237548614010233256437767740798460386121619903970197188998597140373518417836898311181062778122148146150481118055432952270951538169767791962143197941771341947865918888032842385156571348310561564863368918816329590114412646456130851418902166521912567631331737712779215468365672790514460960575974951218211056905619001559414423049274907738945385896258381978374523498355481302910019871956204321204630554805788814440626118190451301843352685746071941099332139901461849199614387706402451708171752167130708993160526308992927446199643805058733717135865268430590272377448207033995066856529285913109887318204458243577296183556484035219853361815383610886903032698187433432441712129825627473518810112353916947252353927884071227625106838269651564956233264215353725209783638970245766116368848424597646709464237767539498191933931328295578642561074591470152385866978990741493142916157938847125068842806999008285623028677833679755425328324213739386112810658518613594495631543935583457648797201149986613801457443097936670451148390105274445916820288626456755944782904998662850764115917437800299267178934334425917371134872484405586531569807875531563220724846897247929421776985817189304954207497165865862976989443365827483482698342294325901070263732056842445892277849683172702725323303913361017593758017075659204393087852637962096616248491547185811520078664794552720383391532640297749751703621233574604316440530659609408668818678591736606347202763170516519070792199592048558946888850897001080135072984696074496962864373738903850424091181325118024357025903181700412502315310765163403956528034898530353236902779824540270077562258398076442081733910067467477245623184500604384813041235819260847082902242186426084491140057047693159100554951897280416808701958209569287808361697160440989153470339690465823240090862435786325279372293461265771615863961390421445231810475121210488346695883137014838136094632806949619149895871662146745647035314073225797386062782629274239023270566419717117845893606725850511242229713636363098926388219066279040696523803854151160690732462692190228152767019853033650261923028170299921808436456588615447240405010505740958725494856580473997001569501738047160703525211915936789465308561222779438826183345369188741429867595522597922001268054221100527738768261451578946316042408748188516710134655268955802872164531981921816695279321321511475922544473419206396781656846463415210807154956490986166015753312457130728334142702975938517533123743274414863903532587814351736169715843448789013266878365094512740752685276124342773697563815983166673133538141747028990058842839946308273373484175379331543423556263557734696104885093819566962762550402790131084806841893097364524089395823902762049600155280212288867561388854827451537649840234097883752525425867133708896907809083702182262878710717889417200520414837344853069587063284443530704876632430777762995406888062097552851394571217105234413421709978818417334956910665280104214434801357177561920183917914291764619510685390552358266825202000457505889282443235453874737183257482575585541589895209113661880433707330101691377528131046324835371389169708662447471083657763014614807027200719137341054616969871509313124937025052554215014659326961845547145053943889130638009429174748237653793680587116935753770078907342457054438859754613292280834162897741198384637830994941673358975411507728655345871537842058609582213920753663205832527852688267463697110228242262714525721840535366221056386293481679501197354589445315703135367230595794507246810506341665836369265948112070024455526974643053658175487840026302108698156500248365185573609512359218573348219545546491695374610565953433979516931252873220705988619729996653132315642716237505240386481558849993419683256652993767657157810804601559938025726948652658803026627764348951140245191986007074583364288051327099652599093996596438581978803435725799128624528354754640743702274337300221389518872637018492250407399343726552431098201510183656546605627172177753441415504228293999027669391994258416387612666917709401311263993363745264657197200134142393648130168655027760211670778033308714024297815262040288342970276319429337475265755448175877362581411941345036983858252458269568445339924227125559657058666617759244836255307786072346242257548846361771265822089247235914473801667554468463668176003361104174697374131485203869406439006732704987698144670700549040684978737343670476324576201410262453644968878235311969673695529634212533049039861406052269358968428673408792082886544018341318144911846856590413043210567852222832718827743995138723954931830029583884136059188257380477963668857242853295927783902760697366679102049425135064797746854478917789209765382057778309406764875119058000430876278492101551442975849052340964168004941011389965036884092232670819034131765779825424647177663149800687056558908501362457835753909231883559328889130383058197591218964014214626494645993762458068685534237668048147930757503362071389952269852584082886267426299923478775549465083802696557074169069456467337106683093693214774591571654706363368855676847499827620855503468324387811717858514104760355313995331341744480698713897195492903490189867283205944314745853093626779256381809025723454171107716123811647121861830334546944958021525128916040273459533183476550304083946979795699524279357562472094854642972897078411943349381227716083048627262884167672388432949568281270269535808413363863617894023675522511124643802616519195906961594507714577555954923579384354394936670779574703408914200222836873982455443485075975824159411643175903881811232162181545284137217303389900511006551120401873174057691392394133783451521271293020784549860438513304816927157951369637305565444739286890986074068919290276249947815349779076905875194544105569421209438892392108796419757931503469680158831414968576558317794182430312290638709969301574492164691982708676586491476716156641330695597504402057029996726114590847225394342416982993413240882086734428087744572826232100520938293867863432246324422957227419548336082020727779422133485458821900487290909818820711739358246880362404572873292854145501160127138110379340203065105224069142060003904299408309400630991579625041949839819329423975260584389351459516285377396940260266976862494516185566380107912550801081215585910004862592103182692136839379025575330416783948427287456723413767537224291720156875770017420841646078112443970466646972272421603301024985364229347454711522031129003515539361745566827732567729023871496204685738715221424227222692349336031209827207547309702636497085841328081057999604209225179792097200494621327653130988624019478217126818890070546950730733295086754990066151165501152009552066447337701296215578912673308616964581696471699549645647211932700544995338752817249385374066912274353926025266546180966314952578035372505563551798861293280576570335454973561078604384378244056196849991270876905453335519506391519482332420477647239693969833537578925937155291837790992208373744986824383419074970555490229841863198045585233231266350521578519848225309713739348888623685828640716493108648910852493954399908870717908881884859610714242001488604119998783693309939849004814996360815765972451277370284955965451760636228191079536983072923928164873997548738012515988459053892912502395583367502086645629841441645358500756586329755492791671325076970854832938683835393312170304428527271538687298320379863161790593904107737705630691447813714540737826943485958331084514701607852647704932496724725556459360510404602022055524475188394516090000365612344085143447895334855499601661183080420537249004299282313913291764021827679739686827681345890145814889975001346001144675177096865767771751977395930347701750531906916553688122753155428924726085328455198808160927142403838105205684173750587171787198540603325028090660859280407139376424289745995547607020325121053872164473888349297729269042185567258667072759445242505924396734231572352484010727139463562540520728836882183804163365522080619034851010554087740707084508099787108701383033840941975330524388541595563035562420128550814183279239584904242259805720237085344684266342477053651171554808458460947356257751989090880191629974235746619192373679755093321732187376885539270741283893547710090075426986361118128950849979227742488920280850050193011790157393012900717729299287933947342312866632494474279186499838806129121255885585380852772491062870759991734189183797107012735111873073281200282176316839685367014711710923611982753917961830809083323230740231126493193592631770289478098139209767243826081029262461888622605434541490145601126180492832273845068653220513341085909195094618881754244906639731721766435185997943343929208243322124751023589885793327073017704652152773920727241811818302927089445381426387549357848399466878972813579605701879947611540486016157487548858530701938547393152793981873989938267455679502093314247536031556595204919420014575880969975807192956823081277134339873032459432570106239817343305399750168732876274151655893899444769997865853447104252507234159438001683048277726916358951971800647031024738761238610398086608602737250730776664110544957709816175542581842774167334352322055974585867419438757212082325398052375680890710235550875117833989060507472142787610409795667709778730963043328072196179203461741705977256234852530951565663441104367647415525104313420658922999608935899789861111320652621478488108118156232920492505529056926702556121443171332335915849925737202382211638982178764811482010813427652689932364536626108012288323193137251058979982809933872928117797240002495265527216046696065665241970010987611407809574031263264816812539561891419846845335436325572463856711044373195140758359697046574509229698083211269346802516208965921382737579899589480913854797231080850473237688371638047445245941081872435216436886696430931777347783969069046369150042152159107945948309371299186754751101524911935183906148202754419819749818282979288433515414489615185928038092309163075070953704054990138229491754592646279917150023967380549450113148921745441043140922628746310393037695236147675995929660282200744220392343745671639272951343712127428986502734058479486724909152138032013624109939812565327151682434172895906366420177858061447367200880360615691689679642914374649893605127907324143392924454139868991479389451629431368445519706112708002491165575695685285230902183454788977742152820979531453619782019123673290714105344351661619271587982311776840400597804693385503616087429615652461536907954781880242237687025808854714475715219082023108402672762469704016575953959942122802758365029764332188254611375104492238323908673701867921177738542811477273164850223149837559056376008124798565992530478703888600386355572363403411603415590805323884343522194716794109878479578019419011612744693302485963739067677714591163546536642798145138386097117604168840663647404285371902911373762831508651691021916835241920124177373727834720624599785964102721464820934561381746917505795814185587206494812539831009089724244299838372819461800634177223385191035335939617230512932484049877473804143009496995814272946799996001195403957223282692811339831226368766169444369639289575142076902396609517145908441206484289668405479391892558983602959719399249657439722932596509968853628886177562026005432326618566603646902397528599309058525772712964964628796799848260585009439560399119057677201650741517927967849468336467554383173960163673306871102209033477918215153126560979322775570007007711762132086007254311082690259271889399173735370615218985791137813468648414187539022836809036682114073743194588385969950421952733146081432708632200239062577111166891153065428922026685932451660965186800214227614445590505133821654950179749968902172479673581613320823188440035411669134576820621487973469161565431214469004129408088754500404446468018847181705037751337205035542465602666308051855504893828329241326620646486626432404879795842487782561365182217331973670227789232781404509955146638039208406758841679660172590759388816500440034913123314856995069172144861063869312598206652378062902206186132101811635668476731787659481164106724726319352630228894521883364941574590861016868569360925506216507446683227322293973645653290859040778924504778684594825581467767173075907969866165537259388324582109287898772782906278991730801251700695861773408944916402791667785311558949329735233618883619798624540712315969048518436284176609113064848831565201601040013815205648591657497742334731592401897584606702582186303121584904728672337366732800613064673130774818035083977485655180921730775345718871249220508422824405959992632527176179577456874475827358924137987027002800989229299426915801125958743984097664534652207516993455070592882358907777361625018441739475832182627027229289017302458686105943681554350911906208220902082959667677295514672939097864926038253129497202270642017052620828482236419690763068466983874507403296081917523810746676638261202753450114119275963648468965120125177647232472313220653467067741168898921235469183742482775266808000199519918061605365344614302577841545470769605912161954785670626087395819153669601171575595194902504840642429270178328381061412525069210829144676366282719937468651750709620981383546843674068188970892378634285089097776059240671002607497064799105000724772794633539846209700530463769972620120228999620059589135944493835822548343413195487971864249958710030982060552991907956104400474041737520769096875854318798194417725874721775771646752634853930022772578614887564592345621686662503308077612969806001610045784375084862303068376878504408804374904584034212085013486924172620161670863391710372527368497309204115396584301793124866631475198846687392391030478251054719755002071571755587100601601603102930064174452399959667598473490546799641180968462995804983626700090865842229448256792131231482556584153682645938061091681289686131115160636884756823687902091600357236847966832388568077122311458862515750963102534222584250546598829510576174148008550929211471488173202176891825237033623091602254712759159666085525303361285905680425895480304337463070347499163827931511510584132588020982808083661954697243122476359415121273458008601502332052407175926512345499516130685268694916302274798308134235848292919601669346829511227569044286866813701587751695327149939707027829547354591565604047469386738925510380518547961687473843812448474558936498834021706651235989118402147897708351882140872243136481424601334677034109373037225864818850804115660202971223278465362532608079051287589746716197243817242838368321536155677467273109155487723354086041515097714833075294962204338516578405104421942409351457514832372069932419243948959986930956636094361494354359911201668287679027154364445199547145756520102129513401298202080024051661268596595522868439351787468899901346780962113761467704720263180507348935237433678412093857704706095644718538904554708947707434881859580841381264358586248614509199554067715285224617726156631148034783497603328266907465117391031735919466826832111006325919998061668280189560288589002931734373476452707865998501512809826869353183288680415510950890675885413939670864226590863820950189745774684192199660700341442892689619226387718718838508528500031042175969638353787361985603010978613865004384872674065055033460673234886407610863345285573029406698848024666827393528838879266283470270501272589147717574942589084299866804546067121046838664393564362914269098171088351541408282770157740715267366241949223567044765994344345298085147911528661199074794265282317742449056433068347271023137492522876237984615805367521091107868784960187021717270529223494996182645799502030237761653491061979057533072808545418394763599506285082994419319240107657915210645121348293353451076173396434261929723930894811918936233963414090892369419528769674663764215724773503769292330478246215445915963810008048515242348254025234943226285309759038331379505634992644111498269776488450527327403848724920112605152538497306830931919323990612960182020152503301625298932665753366902604291950472503997024656120320500404182592196121021907520297289343040635537869182366412885736938853571015962725021053696402308314951545852762969552058949537198594451805025857426117350167164039095984287797683039753544494623701942346457855577979154969425990748296228323364628784784949240637002368047203971116317899222282985489327762185864862280926837250910501995078925806074577237046855251593528309156187612173973206922872463811385838787616223640413931727360598317793414430556277355652353018835860940871514247203472605434734431293518594375332394574144656619033283732373063852748311871976708782608564802641766702272699869810958614956937115151395737478341314852735254654316542968852240817144538062856067673704029318128951753892455709608555651881940932291694426339888271516318826912834315319824544931052360105892357721137986510522714801622811304970816148733804362810049907485900757107848438134921455249291707939156970414174332346193154597031555838529050520399898558403919912430438294288711736726376451870541607630765779494579140623907611808173071354098600582302873794905220264743468371926824697230449230306134277857234754644039729718123607730235413768106776698168194803333124536934694708196946667926095204935456704846223642536464812075349436910519572026425806214122802517885058107434830976811504779931980868945555602579860901576099554192537515385746176803058924028834467725225751517619162386839497201294547066212511723190576808134984815596920791878178037220778286441002918744395962616964823369859823201083734038105365639459138079391840682739961934347418437337904016902956229260512806370945543073299904527982522983248830677659349275348295160580289450724574463596639647413071440603618343095728743155958805065025100840091490661059798464916380039488053507119055785058907961177546458769740518779638760191537102580249378460953030930525887765028546177749004858167167502018806864902655769359013557564129954608837228608646821482027352124492291682797309858744042670368991327655178749097385837703918586952281807203556864397976352616192107655086551302273873472641538096501845484037202808987176863070780463433892208135696491128298481466953277760987060537310364131501647997993043752059255152135893514852643523956221829860338365228671114235558680145655207482025900862950683666892244613509754423254106508488093356901398641451318338107817707933529104176466108006822120505593388785622776869826469494015237334075614270328337951986498367334487761001251868563196778553008146835201582310301710524241477517174511629198879728517407873635567075011141319015791385512375092330490767330923437779451740969503423061892328181214649283147295911781133629513828150977349495355635256430956292853807526357383218744965139967768089284678684897130687997992592675909057550594397304161147548045383315023358057169183918638344726942815943170993940392672992703646980361470465109915911765662673650957171210863565463685806995193289074279781861635823114016945453103646088383526377105845299960103725587295787573289630428825844663133035059800541977675758258632198301467752628479687096863281228199690569840838404646163487606671331979819745691832900666156625908198014163457986887133617185634868438081246679387258267161306964724224315471231573316142758627924819994049316648881934588517414087808545178583633250019460938694150889350582740438236476566336786944686598101195092018047227864534401730474844044477791200791980727441054795515984898338999982777693124074030937352048319874077312054103614933584077966683220541821199048917143357063283981569207131131657299681366083666005851811814497388821428725625253576792746720705386421254701443508496897342489900623619026528175292113165665602886645807189985741002157404865278529000789577071991123199331300549997725699131678032051171987081963389065819893821487536065767402918245210025254129805823313579161530698802190801011219743099049231079376413774733236616499250904141733012579672615277041617196200181422752152460418560726527637765011580301962254537481734531533760674238912340608598510328021584498995063623488204028411850680524321946671771680270185143931861949838636001914622804013917501729655407957521158265074006868463475614514659858566533299400827738239117552407132349502661686089190766011809022923401916039684524897311938673999780399523200882223571471078669156458868132369734484089236067579851935892667789198971756898912145703864050358194340667218963280448836065275964428946312132269912914022865537597580267104856013943117488395753720372035346400489655087047703852585768181283748741980524983275266604749121964625362567859223302968633806620218974615041707575013853349879195317783980532735761519471147152744154495979968613107881991356467495811000285797672212061537764741882669123464706689859632534784495229581294802354232473777869317534662730559027231821409499107878422980562783738789133756365354118572097508202958831006941378124683935651938734993867217917761247208378859073607097279829171271734841322008147349825160661356997697905458236335743370783987402576482138499585436583634070797637720138025529273643701468788590766973776230225781814873667522332434299828927596118797564374804020532745977500394166983645763690160692868050974260337017223351603236175105856389901425016640637894842793997372993178091722737805936442925523327530269255406070200495356100068791260917934235078587740208817810987257925841507852606500287591693672763929109138398571004112835444484146866743559640987024094916079646721055658966493925205615975204249077119416198099163937892308651339567588713511815249289846330907329688869055389081488723153902678604291959531521387863281505531559653819796812409620770147844502963291276484416888236393600310430542650264915090179194444657241918431053668135365558127823247713523461292409350572398884861813758274066108957527689908274539403789943403216368989550308259369967443314291159847068167018613360206905319877181169964789337954515732085735829365515439746309721405442577476699654144956101797702783875294926398248845274359900843767869858618977317015254150617097854327399232245131694250679387806096975599736716199313350680301564585622077187911463083949339570221453870225320283165597379341199006929385961804635639649147353863119266077587204826386968899196860207421774253471180075299475987813459332004898611060275970230847924931050420688791644953896050281769979755826009894981847700965888571134355993847849850666558338190501681309501071654127711745623508811969979133346194958641551076489759384952610746472604710917432884188114787138180099072653672314118127300692251129278633524923779573387348279904504384963662751546372254277239227132039890147099260056118404803598550853313455175552568077225045781684163254784370863551259463570251277015146090065588698796989590043895671565055440314511900016142094021927818937232288431554391072098300895313174922395605200801953553062881341720106706198110980578124191532076028311859014475523975682331877666447997148526147151349920288143391058518796122233622370435528188859281410522235415089141571244305473060792537062428485624431434916397144962422951320118948683821999450336548208288856876331376373405440452694366215234105562356232442749653461302783535316832445676021689275025695192797478672563102775524209797753638651930624665302456955414554496939549174632565286477639500184776365920008144911858573539748084432214459385922069987200213535587938967962261523394689067951529244411038273942025051230388709762028700106642313633004959485290140464064873621331895164501122957446515746297642031752191374377448115726728850044812555006525024707727495356289140210614933840398081878356919633891151070262767753942739089084349269264617572704636159172112040666509753889470535572170729281596737455808767107888832520961465555401626748108436933735715112912598978878797338280948472930730759106468055900688025979520273841083215545251614628063453098089383470766183885133642924159487998328393767388849191782272060678840834526559466930728246866313324189888845217348003631587360943631229604265143446667303024147359452848196990964264422775394853744727534801820406628636306233413838447430945829049444142164976266487568587892821548963133085823874198459612332668275517656920912760102076029661525634710014476443374174311723802627723471793614045027741273655446155244821392669711812918402881437678615514847649830017207683234691921081411156814271005456374188475329619423550585980355513624918138275597174048975799509551668647199488672907438137084651290794007875323200398514806880407703487744956809908007407824626777983284015040492772192838783136797502321178586811884845199385544033456876439765588804218880250308224340830749801917326771155051986525365211735995955805690631954353083936273748679492631683326467869170633162200030275651853443093966552332787513526294730459448658329221045888909058310236496542861202898491335457928724812596970864432228594261593268576515787811343239685740439977164780122368775125315133979692901389977334757957191729373574616412162473594307503046494973886021255309823813463266630812573723089296996567121260689508622910287741559428324587442210372979904816606062666452067744347048519107314745806640310075767131330019384485264617801432717520680772025755696707727597170029740581930634590056130174875722837762147173285054219305517154086677144080501181506291996090492561021402140128076646834732758489761881843235349011131305892130497620333522027514024218372531712006991471615584181933789268485719352028531076926700940598780997118813383887155375867935552476701718706159431222573152166357585917752063999791772601000389462796848365022500566201202507648828458236684468106978662758427259198400796080080036739686884431712713963269955260890659517848829469644595316824512537511222547837247839435244409378027863184073735027236570550983621354412593458679086263024189551439926686864704279683087680018570321907292579220770290154646705247022005439018051195838044133331307504627116907040027015465820678110816839813171563525342872678927500098328818869489917554298217605326634598088892492738322184300856656286703549989276162676476701181814910270723913887006324895359164871069074800282057020288614098160943265815791784516903321631208711448510070617163083383284742349188315249708644920359056956653711409591686877166182554315086310094539099624747655686785522505869274308135446835593338148121839515311649879255849305212746465686354315016267939405236132868893575455044610811040938808430373479058022615077692856951629603918791961538265531401806004419696243949974038609088438457297558491585133171801152404653574231639218795835033845358210848382183731635809480027523520175682604774298235236908790910505340582776501889716859845941417407578475624927061610340282508393889251851953179459193234944814090679610482701438462425070495314464883599784138667351707495048963661257060352207302044840999253800436199103759887018538698015031888945473252541293301764305476240478846075415459496632635014498582782152022671566840939738705563586749302956802212668090042866916109401397748360731509717428880835681055712559626133189947130857210457065512629449000436173786505163828079379769101703297889353468752583517804622858318947298341039615921610580590150608963141009884061000658943622561258676369657619186280030543848017668719467164958391786293257804811869745572304057958319144694825624353890487395868672998470453759118094559849490856045809848862468206708282151106614552299191420436951301755688344577891401800663602610699920944992900486212435187061315238269077492726650822905456059326255939911394218864356176112290832217152693235895365301156148337634334127366175964283317549394879791328387118742476810278938378093572699932103495357049147648261678545597706470658194308508264058059000463333965083127775406061351086302494872103706836815062272097924704610485704738295048985095684427713803002287826792277273116196615286250933012016479724403330633851384395770393717173745526602815384881189088346797566365630959567666533563567143915347683490753773213654778759329562971248312579809398897511902315893172217917799769743210336210729877332227927918250700231802064644062561612877631325450872969676250967121795798144799915587220421488454441010701858717177403357014968084921338114734221203207177465735939397209594804959139450962351151692785377753586773355753812387117496111120570760098219852159866028944373378534689967741678746875032474459349738029690570071368018405239311807281999963807315494309874797122387668751037119722632869104003471986476699925257233924952287546967863144634822750635960460994724940622488747282832972573108081409710064199276600582309059913581117602396698802566142403354609236649192368627103587155598126924704203844706195281650875135963751647711651483655494969773384243354415096302644424318322288819378888399671771043058470714393569833796686143245299396313269728849105531840249114359466637740396681094863702856976566175752235221890135422670482893394298481358535267414832918617186016712825203650103575723030826557475298499644658611910251280686930856636410540187213315273265922864117796790144600109825146360602535581145127426220619557401940632600881407263909032670627374968298297159184696199441835505433571993483506198970533811346212595706543917152353741327751280007549616658657454041446183202434839012237311450626679174475465291828560148331063254566019091749964828689191228770843314444559958143926745431774522283588527228685100811245832742697863661017465143494542673895438736917747530822592372495878148204261600551889237197435258510039372644931391665420916888568839245217654830008819441464599395129139160243163824252718942377001693621101971250219935116809243872820264448895484198927105721904959255488630339248312279971130755462208363017744282928580990215679591750408025981213468752072482962740196655892837742961410307967084671406521650044683724968756220473877995687917486102148216978022615107346548293717176028964173424665668803100352436785168309497468767336094338990884539085655191845024074234955208682835393593847471987653076339263204342824220964713398939613300498922199673399558965499750034430706423471035811290369792754424905961765887269235033175194485593963288626245827671207395917737248035734086590021563509542376149637566988131096190102313513217052630838678525910914767227543869483868972002241431629126606724297880872633803503133577549923916064317313475919808473901341470228778123652140722356639373584675423494871391237384680893216066692181268978313565891158066443638123540764809282934909048234900192579178023413727674020195322930622646164861550937520412763136519474310442488465504126151833057893723303593799165208375384933767016662932317454317278550864395034113865117656956514800024435933339612405195498305320876727279186579942284824065473788910463885948337903616487470702294758728631552840163728207468586936852536059126217308921744001141906654067376700533721109148069794265796074475881729995593549845794405856914322634511662550432529273366966271696821591470484783164190579680097951235891291614171429166810801127134596443152444499392522979517501299931339736305515686291624354025614068849422284785813756651132113105119576567252473290258940854438387534406923879165897825159867729315564058688424679797326531565152119722123278150744190051922446984359084975583682697367224461589392327084964259086203415984607543027874971905517546104250119577240722342109710697792596816574162230744312404439167892728560332402424282618557270386772256132505859123881381781498512380935668404840800095869196870813966261250206352837515576611996944866771616957642663909219684354404776791526286409497900574630770252235192833534581970570728749489744525012706806424423550330045299815688707732566717530535494686099424781632906261996419038855037817222282393836088688910790342271598945320682925182754147356682033065184936756972820843469309020403684605359030822785689323177392641805347471087892722254882079769507637270053255447026786835769540914995191293714461036363164242182478527075006741024505212973411809470538204147771867102637437322143624600819199845172992280806746739728303940918844060143932544851340230667935422822008528248074516792996324210986685135606521162098913868944977753227764281559080327395719644704914254696575399888518273065207767312251214549978518123366498757923101258009847409842997917885140680101520083159865696802986513348401687323223080869648410618398811535571363616016455017433674209007113162038884053521479370522815057994147845378055917201422183943345359463098795574293551580996120337809569426850661993848436494094960633044677673603589227875256543985336557436218408148872475883343617944388035312838472374509675769890533131276143945824871851146000413427758509947028399549701418394036489012079429540818481147517324809363785205317541973803311546468029382846660032023802380523630313870510366432788313525155979248445785315533180471207257061113756969437155873881035539874884778353914286407790161649864650679955628117718748435821240556841016361315151826314894104945098462820112099293573718290272322679257454026365045397555354070075223917702645830260540429640451130609987146603223888386895427007102958773038934283777602808340208865111967625153177389191441737236246795457047233613577498957097993568748576499897143638025903071382643860540596936279388943620744537750911114131356758132446534331544083481267999197337611482966125783005950860831680519668462781025448508856307656210262307671784111396132215818243245027061087370979043587554383409133205887467392061843850234616122644569069639968372804420925564677090324463847834726680127022251832582841544211165365250549068933630585873420263195240040113235316616045851678925056923134427501475934200628657321250982734591814262375215353120605473343817508922410566413152808627523359894765005258182545274351217699489219032546683801188241762272098753797024999322849002067664190367292740726518879075931313655327594175504824612079836499403073286486612980553055824749370319387713208310567655245603993130293086518923009617198260993809713755595314117584745526079788739453049715318342942681936511505224068760566868598760263006961160524214422167447711680636311519646356076816555696379148443996396485856902853656304827733758372521715278438572334475940636466187773972223455792548258798178230154586255608624840440607311841479275357311509525212172700689567208875039229202801599372113334059101152774240164376739074483527664479504155270536415044524343615526057527121666293888194522430024476267435267840065820891302183303358212956004162402472057534185700669646723863667314103554520613423391662197411053312401138791846723969142621395173038030438065843140700542050704064702334372372304131320067987147953760918080818740230203230122118937268052418920881853997964480309506783789322997641665141190033684666788260353396701570809591766706051504130201119120331910234031798138642565441668298832466132414788285600912486231231798819548449515148256086077739758949185889752610967158069844456066534604236421976571989556939373802110982793947674964642687979791052180313702233848719833848267120349218957896356201684394765756468264009329332421119476915342103067661679662353077955614564363056767194505237098260534858095976706866058258280469619086858231244694638933034278843651809898484245311853639627239433904310775544322539698696946642896135016321356191001328405903983525917923399412608127464489257624321290788289034923101715785869666033320429323866720701050478002706229632795171216232605005400458231124635818982128869805085011344682084590373621162988147562098913755849099252349223039665427485474186029623259419219976465147198085117584138162331664195976028348795864370533720826499897713166738493280748183136038923967760859627957217416409643952158124398778703644912952473334304080946138348663651456599314212496473225605960576013741262916853790730429870868076441077895857255800680996765377185445074599753228324438177057109112289210553625280373856520175898822989778018179171127170326157145866937946853183716753135173468848338712822440453471069902825617522698866897876136598246063747452191685995490410897447427154964218254271469145327221874016279489860840835681484085314769341565442742553433170600405572150306762214875492795642497708537670422437262426220841667105575570109848981440426783283252652544897222070547485459673196907679221741574394040098915146871522976629690926991592997961712594675848199733494653432884371538611430765975518045737200761997363008469815293486277314179032963108009398652214788230201161304636420989048182900676781665754993244314967141893420687973305728226751194316392449966085320833694047024794882482433245440820088850765669199723896754442630900591701790768554449990680277327998678513114004616850976492055389738712196633543264668301401916314129179715686347241287540242951455928922568196995872998154155938748075968714542700466931200997751160366328499477941894362577745343694735568959135407544498083715136852397189799178346469034819262852324212496455514629323262315248100499710126834239942477120907115661490731174203915066628493567000937264162997534792442742657420719027289065371618521787841863095204976357093217560176694061610201708794402028284673357069301155930105602731952286243236927374268653575531572640493355075768635080222592864065076625839645896248495385900020419401501997076192874279114422512280536562233988941390215049702780386109768436888153627618793924751324983996369152280876481285416501370217418901484037627176826813670868125553677003200804427620469179182104596957570252603058160155592642705411062534838149386090766363132128022651714660404698044551046338741845315036482611006385037804282437258023964496646784454751087254772817471552439182599063300059862520441851416077284376789676681703246660709576851613291105259989354584384182940443951477463492406358750672562942089043142271817980832038909462805465704930104062700257318760178724936965241997074572166837359855032266400687225791226586638511743301295714178727111964706002925577413417932670268036306861669369356432419722341735314804446998414492216946461167899286745927231762034206647242638376038061331000789737564949064808457380089269599317601054681794640512905415312350424149146078819725086412408547279328784172309584627479262069296376107464096150298380251682009487355544185339203380895054309006260745771722316382589362869306976941915672148722868262851668966364774298006723780896105556989301137540991445325828660592010195578861270922180886749571728057454458746546304508122225015359812026844435693001701943082369870052516444591938684722324033780108491692175524549125477481428815940107847996265808309241521722049628676305616672461512865327048867795835724894721656772415591517757451239468506206599536143578507388737560192460035550904521982903068539008325302386737391873689272755883758310937432642741625924608193197190673660522292902999098709818095846369399921606907264179350476681050086989121670899676136886739246250855845700736668718876389565326803805653277134588885719129798780127416933289461788194544438408791505986605970009454458055516801612765878608645274363208763856783913398926953758214108800992842940711922470228001614311286542151073476663973259298589663239867928329308832122911152559072850190675609713326930612308128337986321083254944787574616941517547592165346434226326913931372892091598439721960004937318191496698355256219636315754326947494334977741304927206456112872496108965504390991378197518578931160986755588895596338183273013911568888669978142913265854398912972816328157330576199865760770768276822847703270125501224551336669647850671838220011818147087038625981344254943812289453740535242536274292960427751070303691685291729149682505324722573660123036992139290377375691451076188730173668292730618848535581093435022938809925864457943627380578793720967707943875128589755365622300690535079825969479301169840378614651646080409207969301167381588003639942349987112112604418509290398182629776421483084863399330871893310541186303163358125978445956888277388008796924224450230864545808409494740239180063203787970825579758147194702201218985785654192955136762727777810140775224066061922463207741091592125441469631578549165526318514919340612949418929502309605515432318724972924229160770419778234829210606341657802217719707812824584083226167641583394381176893704318669370493040530888445830610832262614430629613621089503892882845526262314740898123154143786102740301944347648691544816159150625454912875583314226488885505916400624049989805363983647389644044347366979405184721606678535562442915365389449419001889552253928995208601731797122033000248139180647959425422418665528685621070846834968424710996333575292156259190530554029341154531507672242038404164106577990359415501022658651519619593589514747026481908893403928525936483958528984984278997125575536977967698863207664553311211191766858756100277120260778678121500891472403367720438640265241937832854508529391331525008044119207754387271173978663520251862916314488031644042141398971301970482670934804279854521333738962219825092267530299304343338898651000405696534998182664176258736886273927355572269098913773018919188742714765510532406897806249648812789358204374300722453535049939946136601232867087111212845002955383023402406925570257626299919215605211565784836681066172886099286602388608077434254423807699884836962215659373399957311794877694434424749833878608065842049714521215656641049583348699358829424115372858151701305043653691751964731723355838960228554675971133094950024794944779040761999133109408593918319867365038158643858960213966591097323906682710652034898341692124975043122454225683060233670733666347921152627162218407434707674164814642625236037050449497796200103386691417902547372092341456870445156821005397017385331654916868357778954509403378368245542058284573978366322186843534883188653221567544499276930999581143194482900620616440852104048666726030540785493341670625995393593896421892327067645484874290464637138832016116361795500689750378874760686531163235556593424369676079712592859764880410878522122700612765510958472125865674323690849105248940042713821677582304565924653202247852972260379819363856080430572090032812041104717252283981128001632640752794819451658316952659700653373666622047577702839537089800766052760614461641867542674767290006329038537176550387475689599640493429373586657492646573939263677202634189769797810139918316465231762795473973127475942012757273873202774232141182129347516933356124638877136504867522012938029037691006811931615771197265564021351919570607725726685344396932971415313397728074806629973110220401927576398493400148118504253522450188839548263400817497905844209624653366624445800637145312449281871815407397190470002025321940373493999929053657343124230682774800846199440411488220571768106682122400663799486394199206481367609785730603294718247635380155484011081601121414807452494123540065531193399321752284974360860139297471343861067272340633717463593285254337665436823880161836589823966145707511757552676204083894603224625704826416879752703273745079602111708249136091196297995200112418833604545847329364980532190815582323101951607224102324696423297642651249306292594106741247036123620193783429714228833894635717105691307902669142749974293907628647395149661268172021314184973580995863139164426294531819731057712958163435779879296905979928931764731729429694896637826427632417142873922201409784759438020191315808177767450380370218462610183970692408055701135265431347924446246662949223225443684985189222278871142633578426704164057782611083669945218188338995890626602130775447401752970676249671887659741620833099246331495620392060228167888643625557793958366406011266506098437927983180851766198628351784699650024023519442513345875082703669873169833788225429344737963585907123698020788341276046606494118579161120137468748070256183957690681224114644577384527471549028739511848339450303734821214799774380788188200970277113036845100855768722184753545562374264208164159785773528829962150029920564554605044175848559494885928612486290090536902088445181756561362282419047727222242327238672930508206053247186360366404182205046829522288490489693853760022067106620103724825804502388992151906324714979063420248637155316891080860800056327100779636837260520174415949740474115553161417286728196545014281106894888606172237708912869396039918704605345523625037452889842415255333890263618707898495038957399835499073514578246073616974181083798762352984337312611036264345273803563303685846713387784873041045410053014333610389289889575136643171686271117145592715453052615775783547210067717331882431810854437905284235980894794551861485990370695031091274425702180564012950796917941824089932574144889425020781095669495167732662021881222548038520732068090539392128029198793011012117392410061070535736529146273702383366048196395088722006135575272386696802750104756433945214036115674273820224549338100644294074080405787484944079445272811825160292529794093412525344499869788164762630873235110581623884218271021553495947617092925242447763417449934699697087932599227102532204944432139004163899707108067985643716528039514638306799691395569937741236638692508826618958309464855667089653709042334114321059703539031527958310828424949252823592767967369774890745094627302107962531297349433741971834580313572043410588917523249837328419161482275678099564659003918635616330962756658379673373145339134773803226249904351986774518212869948567810690868886585907287334815568043239044079801289928162066326325608737824326719395262914093821472484235636821093079136014398151095655235798462285202968205781987364076021328321307279284035853107607247741550461515906001313766630606680829825899992582486876776316605003432522154457587837590265328069649188914682137871744908512659308593553308572407029966594255279851824715662927306573529650447061321920550705283065729471301404335377413738637849538070882427286908946326083128367930859364225268834224747603475078089945974998750655591130497553214411346640609197113398281299147038810804275883399326516909535517237837443710573928712597599272535758834463342207961578897843024150649330395122201637067386063930092656839961678775609845580262193649205836878979612884323123189100358746639376533797906971220129162034931726861434978971635920567721356381233803595499682085987393365236341002822738302026474251800420619549686755810333760866254267098505364729286235628424416293964794383231336256145977885011219150026679820805831560047624435835123789809927251340610733233672069809612411655102440001298571517666445350354402886990435491988646939363714078080398980924878656661838840020792948333374999451329949136034001629696752707711182817681731233261818046290465253324032659948257864762339503512146353178346327254618072097666505864456939492798144119844755212890312198802975016826767392438521663434638562396161057525914663781900442561796082535488784314052021963478377011839911427953149541695484484216275441634219993282338872218440067612388650559921431207954441250918975092298843016992229421566752921612807659728895412871728199086471702897336370951482685798586953723470237578534125847460237819758398925319001999905014897276229367325631387308682088632594942900862498583237548265577371599927820415093819757194562711396117535418349673237641735259754077796298505674420064935411433757076941054068022306279812007704009246941920813665518504669770237793360121903018985646784646855624151326109192557120478155859408235804418142735676595228630221111571808042672078749885691074634012180996473275231932981197159901181322050135632582047133230230966443412717778712542293607966658159286559568280407228173121774367353024030024121844054292514025504798086202815893834219947594006526603176188236967531844387202159612057916258427835050858410963033421481536292905174569721065813827993930340513411593944829681830571174019046777652282968663751022271213353906049573646359651202863343439691860026973819798308315361718136489307218590515205986769783626379698301749426665637431638050457117830482522025641238436019052486213207122650084570230606923377666874542863409245514419464253369306325298566042239803422928710244384916185538833359069639226180076787445673161794294247156538074633510757433434767662810069363680711523019253403151594084293036358637443101663133440532481550893958347473587083694583886158110747768342449440484757692639075746785332885909298792117036740803811930770106763127487691422655644186813470339377316200143639911845598132091700766147426742229068895876256640597348815853828087312337054070856857333375698973112173348955411870950181789522891662606224283453358036238912035465582156238632806162101317515839814411673920624218985011240950933671998413625536765698637767800562811516055220754105114060791564877379307774465549387611014140672880782199426455721215547140096431283988591140848229682451528321129026744815340847823252760719756521234884682058059417342095197597119169676569277144978876665395611076991815255641529019495843000958784970859033691367395234539203462065455982317841374239223182743967565006161626328587383278075346836146538694904125252824834680785430506003984070550685003809775775764446634620885300925087053915657343787918080891121549210432312744117808620993500235119651410801285521431502103672327929542431655819776533266072646232054744316238961458998429433837860673047666268648157231067250599748595415029853280517080311882184461105776831156054109526604103578190704105669834930418512036215349076158238399249961600535958748447399318457092133802250386300096340611388128324223682505665339466894774985473731678198118340715392365883308298962882108153131571708982222390581541791397726166851883266397632805316092536446047097811947226334771431928117667667909481005973625460166509959072094073616475680108398517232485568606791700409442529326624476014291168082382204894390507632089408686256764200929134574927144026032814449917416529597074399416248767226878772508288510307054172824469050517288627674167694447659441484765930673098483393098927157534488441522826059844061352709749763370482282607883691646932083267862495136924085847577406823144432967876510849315570806527053438750419855694288197870181406825676526956751026254008579705178197088745463287338441016736535413579186107414028310486926992796338367110732505562614625860073844238937523365395333216906979701735936429422715833197365227941576730035641865854547605091928758598672429594991614531924955352478541280476456182427943126313343959252454589085075952259226345255631735097382419526234171181271956747461951494679000388960418290021642837978885770242041893259502841269972080934813199631033434984588626772747881954354487253062939219464711372443327361143607531413999715427889675138655618862058257389538468357217158400212770682715798114072481073245226670253145845108173450070627261326978790953380718437192046564892544737078609344487186621414605548244913018300164500821971275427737516883653779941940626971154339326948204035572547343867010809800363149690386394906539324259015817549984259155666253821162860643133314804353796505796969421587868542482316207752584121984359097900134929141797457567660408413117880510819097721771378342089350476506186891778671989605244371912764274537190187946674557539848216018467643066002945903680279283979760142113274061270097605177249234653132063838209168424901821411726583406074317972599607914962293187795408187652959068073669823712931808285965451172828350755515653165932697435926487436253151042386606673634299979342541838755791318941547381095910670932152972451320528119732021897465115468093569055888929325005686294113262807492339056732687841273626345942507853424242205033681739669025839617017157129705204526135078102971095162167891653438500500128928063464120254263636904153915003355387534527627491124998744190133520784739138172452419921702850025975632717707656973274055475051913468237667686354517160558226640066691585233288237966563811421221066774235842815641124659792412769139713200595908119495549078349357329957513046134535325294583317978655522155239671296137055081150724313626159293803445412040901884014794319819888521185250701816851122453752539817373387167770387149354882710630576650430796732923223987901904291236817767813668556675184052736274559345657547986745139383822639384793570455415062392263616338636313682546924883206108400585089548805206172060524655438700495039757326705276545669124794866752418515482008747321037151477122524199804062937456286102817032146493210417307064066648503925297012760356956099856153247727498519644277716225903225950841538195619072089445290527981845851849243554686281431725921837791991522605835785994164603078815302568947212785001856937738731413840928581221054230625658114263556016374100195582301709610590002981715394503649275174796639120790109368083364838545046923528496186106201947833703216360760098546058171473219626243974669518128185096756104318912566841582439909242955897574473397138748323702271743950936972658570370108990408839780271761701324618256437468077474650845063669590502448303688344323867343345776805010434173209374629052491184662683921946403938866536047589828343790726709939507628550263847071136736611048035701574256873378808625430215957468897362037820088521077077413489580993249025535323135104264043024264446060758603317466717788803203124408467841538785426869398192229094754813368796519142265948609029607485943288900179190302214321652047734539062787020813905070559612563540908630975845417039124246941246570808489775684808230980854864079638905809173151845035214728131809240414832918204490658287393399759137662025730089800937451852734174458257249620679888935667255306544479940945047055971800444324195464036861826103671502785407909036977852718478923662191228368246329846459207161955264237044353164948659504625846837514733518559238985442729641056593579741854872679905342633640938968321155943464712751217320441654056538507939985884944339585201603906762312822597404419695956666081976965787812315155232635434644748448013168224142521737936541516143908615770923389070020601182277821208536757351621978836284780583440812586200952065751486925109670520516453585352170563663820138372589837024796483842463007483205837579877747665717384324165215477035554232749107332435012191520671733145865783637294868422470876576095658761952208820011358160318202777848679230739101254447459395947876635124011257349562982558235887365242325545324004470597058271197831900218031778006475092260371641271029655095747052863639910149113168398349737932955062297314761598018767802780988956411985556033743951594200103358114298123297237632969476194416927348572335431037488473092468127896731414050224194384282363683466952635858842938983522822559463500053935175981516006532354125627741419846331402351410791820713278229420660136333873804800008446840806059469142184844420101366110658120094388298398485091899491109593776735113682737021032878698496387433213019933936207993276899419169230785755818308040835060325226273653405151340436179610552391366564780359651178584547860382428921713439700072287477294008906668862744482597600618076899040791297706343764039593857074594422407096713157960036004920288068991682477324625280184789128846329427999914554423644630580036452935436327803351444792901700353847428214301998744571796394033498626717231017621261227708023995162645123033853394362502241936303719418400251326823135825017372605177630707075331090094382329866833933066953694811529773307277549834653599077802596537185217325981429001678599586251841728289496273685013436501524663029696857211578361579169009269714835967150283573821940362542419337605584337868227110641918896329751455303072053855138748676113457089972571258382240033057570784100686750490140180606711420516013147191308537645324628152077840101272321994296948555792362822961772348148426373299899753337370092989112491673021852971225366764510608174430212520087270085615699114287964414076871559728424220789318197153031948798301486914003407171647039729370072012448765955234052677525751575887828417276379493605220170831104514851872289521128783282235962153377659052722105483665777735499881160758224952646296378928063525981399495111660682973375807235389061252381146166744730900400349094486560070434207382758143620149801766008660360690258599203313216119274147547897621288714990209548911623578828539186941231244211538064311876572696064060057531152974853237468727869348162802430341830349790207096305335528523190005334091262743392421448218427750105306367810504028287984463472676100430914243819779001410573252466432828000005635932118884281418153606662760676993810096907890312915053012121352358531794793992107042081384493654660581988747561143176971514163540242461735854114711267050536680471411310367332745333139962474477649439658247430773640975423639981622135679274123620547366398140992100382515372727879096723861635216537350764172710575728785687629014279190927445900612958967390695533297071914272951024269347828484319203001343288623330292893305069954171706511601058742698603803939679908554810414938558021175526353950812598308664898192323798411395840830386408719751091245154164596708970776314673348718712354275298198738711814003557373314795022655060991726925134120489093581728562360679688626510340511195108306722898221888047965401595610990087570094438782168678722262946222771153433782428740987936653925179591015739254789486382379515442922017485193011735735954604388671827062513253804360588993051052764386743624249213948912998782203341803796758537294323745120888783701320428107815384722961495995840381304596322134768784660670390372715853192498403294874565052140607572110987735504044026433428542780542288105003981350787564407957859836617225345184362021079323193541605554130354822508917125214906696558687670421203485692396346076014386310121085843015392599339965826499162583903488285228025791995646739731409959930894649985015821741244165912562222337997485465605098285829259805725796596132450136221298395681279840987490801527881149742113069687243401283028202512082366135955869381394766840081812748246570846024800878338087897402149905583157353187181723314041672955938410355070902300019565807437977419804517822070206303235129973148585856675187544292433277543207963756997086521685783755316534641559175217764651935896573602723012086749258420711931306089462162897803327181725098285952120910742646894833662766428544559305772004599181221415065690586839077329560708604028473509265148746444797320253768041011209062406331885424460152913681972575529347585039559579683964838604042232948482119588381706099622984185824068654104952449211585840353196021162041974542087136032617081886887003696451495958559860151545334074251977261869314712284106562735267019539492649834275888136627312944965387097293407606238867059293909467852429856124776423142233446192840098264514548407039515974669659277766224836949257583776119017503608827855540850067309072971390801920763877399792393916820475496680798663765555664357285338647031434348973345319800877024205796426404247379871392479832030519040542627969534784316509456287168370140370334494043036781775016758701795205556133608669744004198822276131707253721200960983246590470757274799674573499682370050568806093442237227672446783150895052656466303801356122407434622278563538291274089250771845906035223238876481228914393527251639866689187360169683851959639035976112803863003500495140182882840203176980745493543375208012972064975309091067734600438947763672039325448161004925204870341765906288682137951484467369408910238179305138487776078775851271821040394432687511284736253008655123205682884767216624659706846737181288640878781761098484457118133327767091193913736104050645166250716428117681128661887900718362560680644951428455051407426377553424551724754811922532404400646190128476089364262723280113307998092605149911861379755718366605110653309299859952555509108959246612848483458890029325507544767561144759969460030165228526767485565509535016809837119779706865122517907525672281789356546608385574721449878741208985025743253689496976076775244724241636840594793867723397061723723250215662661328504309962597222887310326806271998582595097458986623959027985711989962600882462146969981009506501079854933779430893925500950508451047997024219420178983357262013796833373635822989738682114496872688487519135541304243396825886299348225517409376766431301976018813338501277835620680297291532675178668439002221874380377287791244973831926895071762121579475511917168507777965029811003105874044045821017983594427282057118473724647921960221231892097937179441159061073752330215110237918270491807106265608312343755071021093360391860120148051844366941806390084508328688236911575929010565704027980950559879288912013102395888029977215395288893252505606340931308952221139677322699604637894705641267447473193038596060330850197483609376763322258475891128243964420632754982757777221623065602144787107539782908489528325644549346066044478620292670301144012684914646349194334926269326238217577400286497156791013997478269540414900963241915661383177886436800740415702468200809104207766119278203166130981380175572576946199214771171848007182065550915228471482122344764062617623546849324460521376778868571272227097196070873587545809678441373992000435746652688033741623772632057399257179994370686527823600215005247173632112647108975025292686405593857201938179002385696675562772294681264861271574510472770857018584695670827322282385840484876462444279118154410865485652522215030579288869698824749785748212128698033799975123406213773803845919411010033553307111775739403971512497297952601396393027338812719228701405084279288988906705051979104696817709155828664509457075092893476773263928925330775202326182280956319399429716078600237676064814347654194217034862625743942408914072793521339254676793349511931217317502778720138194437126372255867602529619943943700419647928931962981749145238444707597633570520546800158979549104004694468722462916331941000078477036083000882469514852609490100467108811149598014913967652877068383773667611400146107484698634467256477381003032374437195926199949501970814947697514690854340604875967792386538081178241097133298903404247670838628599853072456862764097335538756783103758448692652805304858522590850648207713192444569138814370789941627947603737726866466877908381934003033040251840647435462181227346109425707548535149116001471152568383533909815379747249202526834119256178479103149432690969980028856163911490036528975447679374194432580988609912734514792264500896805153410525932029506672951961516106414303424553883984067917618284729024819339644362330865242033432187581440530313709557629686009439416772927163248539245027963773900131978583118663067881854558938278749549054858561791507318231567532677219218438723096083034011444312305618891668084269487003167020128271909554106941427551645155285032567961987528499802900723306878375211660593744452620676735485334099491760175024057955062496094340734673026478202230566578709905717122291790677847124469390187524472040705899845761500525496139266893556739797538463496725128557532554296894269558384808534469690430805695927941799161595637813198875254437915589198036213784909717630248279003389555087408924584616015524915891479654009472261074924914795500726010328332635181017235306849699480020379399743502893632427019887940912288195909715687702735280631947152348974673018931710615870267051346860157537531803038079064095389401464242927395345815535518493319047037793560263214653659950676238850631148628643914490104289402968828706598677757673439891974803724209710401317860816449873763172052157955890907670182031612790729922750384367260827991387650211038055724393540994204762574811813634281482041549506091773147723326980603450481662867353674268886466650591398901785206050588228452183131593762679091964784250379547573555655636281197622661928241326279935335934211728350827684144230530487106714374290519430518802974139415758156959180907688481500765793953011786267145581095238575618104481001652417162329867136468427421590164300613614044611875974123170132216518726110240932722937533485474524417728704887461705165306782290223440420910118330093467721407706293548673062479525012563629240828493675688668516156082202687649145917640855914701781529058093467410743540788315181927092218304855806502409632221717928438187265932260424637990414850772485959070134016932695195192085927820037796466683038365139364528524406842763842667868943343692479358512726532204571813697438346795799194602816178260288192936453135617426639469942583822737326976807287365986830418367383829750441486886637406324428696009448586593788490391741575686147255524015323765564653067636459085903009033497165082206283193600886868503133868799828377125804663604131952918295738665636972179793634143362501833900962014667998830805289976629736057995051742444694714044170478350638717384938932618400218549759727636673972678593345133395664010911324059001932203371558301143693575782801523647443975278908191252248496625949557003022521198906677658666914293382646827219060404625696590491297515163514658048788797484552890998348201389201463546119343200846378095619744883104155042860423557022338646292159391186194889980624687234013941696814825396021225109118151779855519936299160960917820571963976599133550674025292327897984683249740981353764553931279615338167753295965030061895525961974416931292777965044805508905047671007334373445498701182416899488092057661223229721121108661674738498466599266547607559276942004861864143647086270439839282375616211017453969779106802349097400629938023732495004841051788082274273212129064871974201211841593883332987128524316660562175472503218923476758179671584476697983126217266390907352340490484374981013875423417755443301743019268678247209683555722057186997069538782738054359346609619781009690358782526918852265482285306928014423843930321232724553787114969776621271128798254318729834393219869890909725949386030957679320690121529413026837410398128442835831340828077654895312975036158104245647932864443317395643034630688274473025050609147971610216698153097734716188592256888465631371606764688161896624984749089080541826125803085108527069666034416031217522776083318219223128162612836889242167339315541287543180093413661191631664800180201906058988737725429186456572758532896484094420106978770997672831399727969806420117156761476061855051776471277080750550993499522960402252484088595424688302986137182278464206881187067404237583056542694881028782595344682809764730666734796614637341364050291891948538582813985880173172348404776355083530773076355816758736080456650429464993800140994131863381038113916605217194709909990800366961975260708402506097294446988770187548063956577813563254327071400044469679613915507475305972119283480118099832840077197059961633598527569328422936883632267429104088821873587213269288246399117769029126323893952675672348331864483629185609302987756353410375215633926469078273244000993817556680495353914544743933845540556242086564875773401653081479061698203531159553574488885531870041365322758740092845361948376540301766213267252995982050656746469469956377066872325441572811218137622995973484650062848233525503722897001354558090042485008325033529900544683315500335640019507301680870608022560123351328563958020531295524353149916437944888059768324491207870451852930844441777192664695882561884924469987783023588292053386730794724951583320129420340028785514940832962932233458084304534110946594443325311213509750117758680883096535366755058044536873675055929643179169739377064843394848010052437255330269609764068185421167143251479666685896252362689327815768809806424744302048785965097490061991694886977988098094434282031269982805523659943490479463155432560239825916739449237402927567818551915521976846450481982284873633539688570485804538807850699181726284430908468986845561416437311809944055618658140397011812878879768707394115561829177277227949864640145211575508896131368369624393435926623675535303531092795675202902566286289175375861131177313648834721536944740053355309140408607306436764270107800365646189431801423571861454892660468715221412994304848995631920547726106344169835269062596655766134330285218669932945355656349199085101644855504748674020920892644324451163863833030565898783062078243789133264372539072788644850792339282470543287146327561169998281893785856340525558428426577051736836888865435194684141142589686596514137162605384698240173702901866702378553324636793963747224750628937458821598883988000312666743164458865934149379017916553023871862406413718161361095547025786828587248560836301651166635879203675581549975498782251582520152694144612297961672774429665786142431943296363990066417418458695937667099543222774130065487724143022597828343832767730567952809187535640951893681728211577826104768335394863740770766877466426433187363195637535578414262341895039275401558508850720969284813804497118661650383768779835288799301991786429172686000038179518249262113250033741365020108560112813954912421652043627994852686650831809622863853127836278566505384118114989366296256957705240810166601079828546453329399533031755394455943875069261711640605928069553847876685202187016258425480875153975819426890060032249927563571839231722089619048971332312333586565594557463011780552311946638524405741042520517257163993814154992807034383251199938268144561571194243149022842702607958876323740023148182442615810443744598831807566440125703027062894039678579028090821483999937120493125645686122078329087330953490951260830959643900402319945699005606484142755356235544874560400961514879948313820414796505519001559939252118771903792219665736625104856039694896274566430269284240137217850448358218960355531590692573621017728771618198103123594207444996660826552368769845731151823615793049670669463664333207456385650582159751584961693240062040689151380259958243089002245845180377901748202133315310099359950749135622499670886767469347750580231738951159933068845465570895615936317281107273394576726185314006397110553431808163249732877561254182539061748139325939662643055514280229094263322595785879729864171940960328982981520427719903383504340560325633459500100765483446040315097088254126457434240574683843998039868173179033568664683910751168372338977428852080239419884306100452604611409368689411645572656322008450743541423137973871633603080368937251570830403887185376187198388909665699287030456649543121161878546146334108918574196194907548087951845592561500846320199163714864589066670331422738548745047743871519145371065198152290814962168668649246489496346411919455231673924335806472786752392369441247062847606784076742290342034425150188839810546909194836358562290892985122412063444571587030185048954766806686155151853267028585323039798292678747649451717682867045502729714944196065453483484304488657538291216012845875683933083042324585033078705007393326343202171437666114177753676231084673803506087431577410673744503152207010340318077471103483160029065798912626410873190787613595398135275952912305600592321389583714756363048882338003546937227754272637821949884080928654177100059317460223838026845938687682466878815578133780090631917649207693331589896296456437345702069983541408089248418645915563190149779541073872634136214160878961164811445024344963969241827181502779173176107733292053244185377314312387737902610108288055865140793258255277764733554160430490536573754048291400223827786481581828600524489043292100148479043104579366210729341533423994917211392409610238295045823200609958438387029849349741688369193608899165828903089726598739661131079193025739015590755694101911863535745116264890265260100549738353717492716883130173929654654830442823295339179327867911042829766348508569687492660227123608682428224555933045715414331359086819098034431705669157721744674497305301806889639416623710329492830416370422935389745110090725003400403258355912218099085393966279893470471870965813078991847948885288906883874638448490398128325905490876143100821135666033725846963399214344679931051671003025310018715669628198882761081155186824775950085567019766924073458696162161269897829986678819291098811060247512132645069489722806809709874502012011184970109642777426538939200749721595420093765678056815675637623634557752041089954137697731427975669681492912833370006960467328534403359220930070431568042219272273270054039478221378642729657860918500622509390343328193430740935837680113951044107838119423900956237391416940690153583654613401489810447849391793831958268250379122535757910517405929751333053733222973725107036772139388281138195239386379006154379491996946255783182927899501349138573932058682356059455993299904679087865182983356297157365061296924340013926222858316109545274714395868264391513537169118212952587475104116120549187880119415526054952067014315526003644406398368779042515569349073941723389366117872207689474841078353817703837290240494806022785873699776914713215863206351347392391136094021605403799315768957826311468895452641593192511275841534617111649482797252050240956832239741791089858413647677727599702019341475821539475107937713419721644527544118369993096264122956997538592958132371382579495177910168238906959005655036222697463034096016515298545984004370584561007839069250532821248468758913006673313096997859519506783905670549243707265506090009024841359435164171203406086963919137433743633552396197905747409479980062962637068195058491729632215387206361964626562791892168505540670525783512061513537768475399760764808862335947308207421189270720688829197968637927282151414480306539000166871429069409085017326103166743286230299028384870484003254028983293605876191499628745676667686432491075678207968394311059340679239671376805065928671547475582879952403154758475865257490193774908999343504280788288588211758167366108271777425091814332682714188472343258493857803614555019183614284782279881913050971653535817696611833765501636003714506546962605572551254285847877316304664418088272665089998456426456933542972873866249677962300591536719197566497846413411857966773648542612055407282046626102873625859338180605744025909346895290288978889162571823963065177468795541295723178557690389510344263161020580018517204424318255325238632771328906627367637738946511734339483212291168230723239307662685612093713912133800712820950044764429939759305391491440610457292760043530184331494577047561662981049887411089385311902333040654479718479937705454720932412901314310637401913242711100073595975468203626696736861463232315843725029343567111774107420705647294567897487100091963820344959407017632920385435875641353870613191809034291967623462629555543594256223690168682751200844818999471993614581815899683855485497692953971149861914247758233930169748505023684968122957208004113487460309463114183143058013531969399548249011500380140925183167500893214623874464509787954607615124077989920010374803747887405727439340841140459806226630672184011252557370424565799775216467273223121301146858702365905115299032920887461918972287613789263985614790749813519782888077821628524791335460888579088620497897926506950801546314628591770334909736310171524239621118465296803893178057405085556769524744940163453708216148100762201394861477848615670311782584871004466741470197263488344729908101480947586436222806335013411800493414694963177648068931749424641319308607432968039895806108284521085935998130028101487691279289706426631212877658786339085875747595328942769291291445101940210221691271073441514004570752829404119399249533620905819566138822447231645413083927529665999951764000024654564700029202214396605556365402783987699489323946419639757780826157604182987101251168321776005083237974899449976141504835182173058698369326643561108296629144684862326280382937969302952206927138319676430517425909896113693996517629725575728194507534223207518832192310602103266695639303641794340858844617167290322047456251948613281361728719469050981715938337609103638795801648176300714105251348356351884675024439054390611442429012688404747003923485414694287596260976278698647223232466506302568871195262984818246454746105413915374169792963090592372031876872116534224824188030677352069423906869673638880714929693894908730727335455396846188906056205765465629068794118432962603576447488146374140976912742224454214336922269679805033005902612094402073997109860700050539079698796072454945063503415848427884847917007555685940626519439363772173955648077205257646502853506563219006231290479519565960898551648192331243595020342293768745899746774070477434438293967405256028148142470532758289653857607855803542270097133219623625961608416495590128502872374003138057629399249833520070032837178282041268182144723192531911576460729129055126598684940589575721105731600951345118095244469982844380231951146256407416359175167233254204379875120819114208272427656421155298232143771267479182691520614467695104649552244004404761669289567828394863971830636072548965319595403153479090237825232322737859886943469879333589955012991402777201344875764587991712135193158312046204345711878190676702498637975759358446400034780220480439364964193528597256425308693917817928692133041727971269070796112566503767540265651443216832287592122460729822227288677567153293812391955822421474866932767438799886536754919879175205059963465738149230562596692386266555667909539420494615455724961941375737834579722129574075111849908670755329193448619528472945425871564359633446830309794910527325558050556376296100357567996687583401465613582815354616010171557704257598238402342357021388992798924715420000374508524838131613414415634072184520349346795462527261056002422851936479340217751188421869924274809149396968984427672645535677068235509174738554769651588229838260095147764107576272461333345938499412898163637406235884396196270725414358195073999280053972354747173400236940673854459260210666349539141922364983388517865542218832047249392519592315744786164563231053789958305598005694534523809092128940590751453764529511843587770115348658591544700510863401918615025259910581483759255032936249064492717808231966145160708865634708474688750496827484966354740948101601500415568871756977219391891118524228877897958026774241023664563444423938489320340585965240451069240805208453530433801130091143244936814342840938548526627062636910196880576856996726184275748862452755637512124300751557726241151298688275246240818164567617665201145982536957907063568500882915136990138730970675819063838237409206913216992805693759535079193023510014670712580879252706120554315927631202533828372416321033414910912684617639722541198398908176950564141570753738238649744208881885969768838023793511581757715113961961809773363511820228856207592934226831208326141332805590321692619446430083208658024115624590282535028110891449998171887608332529213094073369083712398481188344010597995441324199226477766500856837217083729965768068450249705843847362647882345402534383154353675564041088495682856082678060490730648116061536615291437537708770498748233798051630238668915857222791019381589093946110943146311840292740470787480814217567417764258088738587257724285004347783025990770932533059591722656064855493718523192082644652302595563839006900659680292224146030454680485248169489491957215711756097612312618393213852959754902092321742320619796763850995389488855816817621936312806012915974518178907746600489986957036633951460590012661646798190782305106598534683112841224606784031352601852910220427007759672116774990584241360940790997250193545445563588051258839654093732031309525540772907321843988779263488805964612340342994211523550572552256777984950445287399689683827043414766860021154659965432822093322334100386660466806346787283157370042247413300096477316853653224099689907790395764387171107612525267011576992132190589247259187503080842241088750161503929751492553027346279865363920748874551135364553842341896396600353388022783378421639244042949981127424859748863576471595137345247233936899188359044818979975918840432828676459693428919209505787504405489265532234013642369096000263572287433439788895583996253254335872333229507976121766408251636445439845101212953322727306128066213871317024086380733621214438813609271728571343176877920114027147906888146489384937620419750102027621443484617013177229535589966110680233361335451413490895529430333434964173117700016233779280865727153226859484262397097827777560879550502866572911147615272995889716956067041659033547179642187297328762893676975968211573629462458293762122868949108720180664858123099660669841464193318233757591248306956070863571842625659943750824379196962420269078498258487171579855546596309564216422971634865823251161168783419177691709792009261352169567918365908484775870443243058234558628306759669301224340182783988322302973730409003694366795182681683550623723764202248254367199630563304597526382756443739641938748001177273424129813316753005511663102112589861297846094867995402904299902091065201205026439784302272604971911315694383905564274692706321935583502246658163102060972040469681450137964450056796812816284637518333932040550482444212183614935117021611469123605298151673270412747545818397217512215776577392968358243253408694764144703911513255907099007043481710190419459164821981150539475041113933142752222036798945217264690634689737886738504499576056048693681689967582982268487170435803015539637345343285284911447024132714581488533764785139644807089904595158533547417541667413640945472380116168134000171250322276146636079519354240411701782680711999735554845520587856129587006025928490020275835905028916642329975527946625858486758812986160918024143493011551444383697931381484313507379430099393284834981208108690934846176799907339440000644091821842272274679331695264368415178006349492274090605921027245245630823066202988214845075075119973595881761836144675777475786162465889853094456422263367225592635710897694711924069519535426795751418471803621860179802861476990053005041850093247922412202183548990408483172878113034361172365452725959937297101807104866779585843138799635461174496781704741779417285440384646197515039382714486014593441781478961602639220695094891313244680822994828436057641318264106692493340608653931544402126919042928752575909801663077795924458272222994554829155146197101653679610580022168894872416621057208737953643415423746151671054612059842903639950652014901182009282830398417883918591429331397520268119169874109418301900990637190489684886945825080668976378655084675834884676241673615146542865017972853553710218537584974490232978651489500328863117931502878518900274032266431602267971410435379980548085122341385409454301021876283472776901540541776215232197877798486290550879196258679586879889226847122658461694166980944317726439445717195674819584176076355009262181181336329996399234970722212135621777531455540378070843719276615243267464153137929503265320181776393941539703408616903500692944049031212366176299678181974674651671686270275951984835859301322027151292861363596330868671120252515896439198079150288160075281638677235787292071747238000251574272934463327934234637182246776191379858425704808300783295362139799798719630553644739599455129081542181506298743522756455309553670092666272254283066518102602784541003695489256126623881412004768091912966483633492675695966863160846359196844107110459452311344035109227504448608409314268064387348328528598704622186442015934652374987496068942395865241023935040252109035252889105144397177428885325370150861459371304258796963879341707804255859882167455732000363629682537456440961739568965409517897357366976344748273522425621387287797953385358180513535843521088474368100795639443797952387027055173728521858169944459248368653022551463298167590215396686612171104085852668470204419702002571444359642818390737973251422343626241483756958809404413303074258395852738227655467671057950348479580731911966128578246921751430470367423917323157860122710895084629500929270619873401663380152273484770183130122036798434805735659633140948471484669334363716467906986378351674918582440093784211024402732515144779323739168625106353250635548465379482587308619944303097644807074975531511651596147968637347643433486633769343652508244979884646757973697899852850769614760975362916816713503765085881158759595594923329756947813090938189922625057454983785522529382854278698617043821465347878672828971466695188127540190727127649492714300348214361066553623198086542140333346731825908918530993417633975386338433241238771656309367647377340804016388388863972908711362354947512841625004825768503201350474610326045350126209953466809425951053469208395698952105185139039413864249608051567459932164159166889230677261492720953507719030853846008925880182799717805665349691067555049622694807181281361720766874708283926763867686448105975752841038990607458496157384973705671413407429472718413107546780558527318537983204079460043737467595901191182298375610030587170483683355416026038794938753312923926298398722705434753647265081261231017484579546035939881380959583267530765964143774429530045426386605191693554934938588488646530724020318027133540113258142886294417804917654589374606281995130422937229333147282430597930151522048764709678766136415682981965036716128199051356518925890631454436144968328206419014697819370578051960672181358584250567088125002490513536228847402716457554186496549747898770805982703228856209595018734628453718138589068253515373051846212034012288120366130191289735895461161611880847192518000870854064303720555563865892482219544526321643314143167239589211286012598144230104983032606325990384596553150239804237056071499426846496845906270085902294636106219743308251844734873575369328297275943072491219440088018130823281885621993931697590204923262491269377640189315745266526236895173443234150832951418110046757927959982184835669606858193196297033593007251943434421754576774303954998684205374628202207336516630685995848387299486789798219326736995426952391353330721181091742866319701141640454432974375447439342273823069837891567857530040612036594136304576207704863327115413850516632298217935638417468824663937184622647746067950781234025487126450781916203232785562560727665015206012833789492322358750103197369076297024890832434302851913077884183335305802330439752132142608470244363204497406496471573217644142545515487157319472792223926635142097306515516703490894050345573652837238880927909404405319070700701246405625900087126411664569533347202564976633619793202310214022713476467908083425968980388931951479659437236563545239719976784065700316657418918853039489431919823201311710016044623084388404875391615283206761811815813604793528299475643865791199570304799746608695712267044705750881002658254812138937369358288200402122179318395227821676627256984102026279937658024493585522822358779048689152082524294493492138476716258239169583755320910338087134614789732067484437865082870124271512452106681347191684958397888414575564751802867141008755164127668801490599808806403776078088540414673361815417304410946256074206695339013266598172705326510268905644048315167779564188875871083883591864951873107797062037094610607895653228254128342232907035985062281379836213709460062887400501538555208558987492122276900442890549666930689619984043056499960997054260120156848092331992038979061672106128234012898130597067357033984302225678232088813989876129733097864385957762429750858686400840004655643644837014756152188296087486425116483381349844901665033064214984264478922864831107372109335878289535445625436121167123466659400179971008782216287659024919284458247228863312046659747364673113482461589580027720059072638719196157128345245299679149005562453350779547755183348897157846309633489189117407989285421627824546700034273319048769054678651098228644128402827580245103321034538762227773870439342282118736600802790423078596274511287527304523802318590492173223245490787074166382794306409329535458295292635094674366102342994863306511866996721926002694549313933862350978360444174734569291061283769683664337213268281117633442791323476481808083339370529875325996908632034933147494248549081073653492620803689013341623059689546316344992854014402567969649363613123359286695533802782710005972838939227621507699561678888808186167090790548149402696652655448368687038490450591778374811326786538274297318580742674294875740632026064997560389318704313587650405712931651809976987001340533132547497485598373665207739584316283445279568283820563409370002058353855598689360570346039379798552671799089127514114077547524603736497256980125021564341855031741303245217885660612440560441922883364860648792259464500569046479086247836260099548779604219872064572441932065154573155068399524836101633389193150068739291191544772520502081520456078828963392721088234152416951023623617236264227693864881535903377412159162627911732076381817292662693122020376211174421353136091422432793751725883353326310741892840635145686097995310716201869229536978229144549174817430888433971551411693712200008940331206368253700499688533304424039926221812877408969977208037722318327766850226373572535870732379433156079926479039657943738572976648102864497514885124963719871040413091136905055158560594569371956647840123546344372062961314149130124135855383087560390675739638725956997459471589405609100129925776953058933037853936720888556999602608447569067608395541788963130243139142987412559128089903682490891520337704276983415872348833156509568040371044581269023510287915095776160314989033980931236012041607588180512143125071439660939942490271675915135588640335153334497614882301242746377309606603005065934558188068243444467652610094326843170845185423176011050154107099983852899133497476268681100308428967033987893728401605387752683250388227671843032238603415284550127705466622376805094553569155680816384811323577644669214206412302854345562682499632049053823708308514336951112621937710762287712350408838373850339468456753005456989811128852025359052847607791635711926229045791391494769837358857676558797796935175331973377297323982278812830128783515203613726365832825266641039033969126235493796291197332049457275010335297863458128977010159983554816030390618553722445300497281631139225038547998557710285708394221176932149775008918609481813773390027287569804535953657482922632355792858762294353026440530662785237747101987129364583850516535766466148105913106780322035389044033360413139641905704548272313500257753258897250213236780653008869225023545717202670061613264623755850760616035396195665871877280856155757640514889759350180196548630265551974399238782839569116032365299772394975030105221344804422146172738330740434981955062032574061775206558811429841171586974128161921069021604332198085405090322655018073931763137823316714823292095302166687589675303493359225311623226225678642092863379541579871377132348481479217315206979626663286390447298508612203512274898793776714719800506244493700290121996452908828151303134576782777922300068744935380537479235415636935837577035190723521854331347947660263661049144387394185080031345190718958244177197951539978101089090436552163830454684571244795647957135438618091286217447019242134771955638795595213921879938868930598985046498830023856420495615186262454186220596555446227733855733953004385068396066163716415307358014533631812416133334071610509738218411500486141568739009497761847986471229796198800273332053912299573545735726530942535741439768171667051957833038073141153914265494733693195167387591379727182466914998470002146402540135337409800471167832317198643726378012411064814126356573778672785431938338739743404783360412633358009349221726890124661097361910055307846704705862679579692661302226224962570774618831913787443080124638946285824500700407274655336785064423093537458022268910279797704736252619526616323886588450851653703260924004093514689190691831363495030487591879460444311383183431036823877751723891157005147386089603670121113165317845723681324208765034948193242530222661391344962160042755545101235146698198934122060111004855027135937508936953723807724462477671239895126332829424026527390524865930694478675833253961731365952179921246033697711700015035347634108674317330967276598409594017233629936826387342695416389159906013789771684853967136607028497184788347185787306823022964925826319983907862686814501992278349923051665046216935085800929996287108448410548079327308984603632889880937662250002724098581452306639927929368363226497626645190453351484594869706353693356549854850007902479489168171305919141577949759835668663593026551689772250567888072233843383855015728018024928039117888657225193401000097270392543667115153987753077948088110433182770984383032797977418980595383593439210432520796134035720498918508603859801874088671254972027303541390280989920097719364732962257220439222841202357277610688894316970801587421764148314561136930947687269208953959066796961017834974026991043205695568587182398719881967224341452983404117877258314370561661252575607880463220556926128497870923233256549081791553809811027507525818830934378183826946111998971595587873020259485063126396901550526862229773641604551373362118598946413408723561585927041969072245793601387554918321494912676866429996536333639837876716002268211808559410066418014592107864449667871161539861755584821617477721188711748717443251617224222498719650060893655781199938243820722514745294021844311505770628232603873036268634374110818930859616801736468317558170238379194954277710959366440725952451621868596849441981062889287606247017095988228461770119093120133430525461939705265153831366462475468452753813144595348028451471082322352971727563716411655900395491958762779538654201676317307123390941070892077375877729967905012264279094182459346568269284190467960454452252237013818348726031199524240116856991134744968730030155877546293167534520392500190055496711256821098222653883173059098352857403334064957561120397761310790042003400110917566100193221650452391018148651864841653589779317565190967004354673792458357332989798805046399928124855498083736807002506053932007824634618805951148637474565187835138469030160482675623661866321280641573188282894815250584723063795935053664033494969433867580488748894641184544310284462321338080646132738530761958599783749999510343804407076097327005550578170695905826127464558092227363548590454899043348020085386903377078249930222565642657159696633991503029460598880831670376269242790533035476997151540176263989692276194569971276372079032194445159393208140289900154237627495783310280170455679260039866241244308696233094005219023985479026693844247264834761639284316929558348409690996151536352960930750608544677431475378522083448220523636336740961905307446076901780619089693491606706594382278214895002362648805292057311801939886667564306275032875580406690409009757877216875266794291830134818901104866621646812352252500513999393829935255370251179834055654102055234908665220654122365405990411907143859822370704378355132112854398578073338591441527771783863172865264844952665312150042027419833693511494258603673262085618311872195777067356806572460472208419149909997669201848685992735189299712022438940997221274458907619068866346338072465375881979138757157970181647301313690990815464759081934291543083736073177980782023488550837352377637841544655769289472292914047373479873109595633666277954944869475577671226851485043702306793613463163521473136510133838277131297532442610795825844297323918778306066591151019479173194333415832344194486197802018217527946974538025579642005507426096375841647773508193865209956484513681025200707222358567643122330031312992223438059878401516368449046152344788362355445683708388800653051191550719366300843071276929326618167164434664204970774865376303638188241116655550373554469089130491309118385940354907991867266427681161975279380987122992923919018796051066098490976416298007392344030388321247158675607285796354172786578845342685152756089442530240771563918379334461034693060686805609079258032539660894114915524761300401629890714141754513188824271248252917417867106419534361498742439704914625709586276231095836641102111341580641592174299699855708242130233116859768467346497350292291833754915487654749998515578938224941454790668053387339410236945030663362894084218371242596967137600662613638233762791634500966166761242731598027459408587569793929113223747491580643523959252880773940244660801379548848636165230652408921477092222666929133121441264829795076686125073074298243679258064234129189801519255585892249579310680642178312992077614358203780346527175742442912693144739204176080362533687783849271508029841571919517658914624758060555561583042381361682632786453261165984172865713272439446280060531255562328998128497245545129684695949687494583144223670220717131691540273929719714722374367736999061907011196417050977130614339635982224902620042158834479047367514750292219588547588128568042516284382217040339235239454240941453070859982030340610557245911813967227496992162981875106885455563991167556783146225723128227519836364239596331479679236025284950184272101301916474778903547489341816187347705061381867288624099193678472793276901971298364971336901071713673742323984764810969302448427239524322092431573910643259161341995711585843253656739124440742578894640299142929890841977102399818416864217621274639415908542331662567623449971614420180397081526407471886115410355469876297106916747184553991972492719787961413322986526765782709716414091997090930327009986345805893335700185542461685409438118697400179689840619603125660300452582110787984192084419894515268056357050260300847528698701425719042479297659502831046258451639899896491066207101865586749052090322861357127189120965488928164568226719376227838311010944792659357932984890843880673248727360902638719258117659772071159940206561944722006278480651154801719093451213018178128048121295770414753726565098908585419511410746486806456053224751766630081808846974671195712377211839004301252103429563722725231036959931309707157425193819548834204787971486169690795334078656972153557060267703555911501826819438584181218426012315451063255367307281130011326132226706227577632038921682478025854587729403123217134729619585401359058306906497496680043248371521358857012401325457568997730892354677232912562364334276696077762820768093592542361413622295919259535495192453118552602307822508314742671305333857526480238807637745107130625022168550411730099178516162810617487897947033591279671734851435021889894273677087931547054928263831823983991431113263425243594077538868042233186423127821381857517976648917782998012538999331749071975746404077520354587511752689701429595433743194101912420299911599504570803469780398770233788100415855898028363044865486901052606809599163154045035818668402873628765819851273602127155863698306841955103590094573284498092814086318722392834180877085732251923251246277258976064805215688439084036455956434519492962742800435163654720477749057238211125687330125513914937994198316066502789135717167260034739577411503403594373025420152423646555981748144514026182088605688857004136103300387269937205735706635093296281977115330165175216346920049489163793760171379087293012423273798921094504442176129968214631878876105767215955335717319168012859653285215741980706459503690835367499879516350637547396262353888874860787816984648957201186211582842701865409529102274044134892100206479545607278322655188808593446066173083972450732214197737574888389160856596647252540842121651387429679023902009551862334285893199245153841853351861266774292571786702556602011840808207101697576279295760139516577822049597922038165884670859917129067354228549475778808324086604759228116901186099182966527102740966489641254027639244959895225494959752776479730101557299958916522895744962958889693975397447905761928398747820729102624321468120562144635275037474870356401168263287117456110332025552516324412324745173792468026296438547256171368492422546792594086575529213412183037261213145061020179685960976244890002986963497877007083985054755597732651898106060725201937950601774911310431948782019296677836873310110931702673935146345130584382449424273763267144246733867977459445862610007762232760895032768230549368428486417800352260357393499940271070184245667547502832557444150995650643781775600151141148663120505893305917166849260608104208227422245598703660624508988390743428539496824295754029643898080519944819054361307165536207405766938186420330554820240971797325508141625070823108708601722235274506898462059415680853770170355953979154359229688204818483499399716536495708211861751182704167253004359302541585835738682266740209573659713556459393664952658701482460277350390267298593487845039871922023125006529651168347372811770271645836802122615119797820070751641322576595489627946007884471447033701591128612935310915877394492315917396036897439456165103072898352782894159388730574664854477582014870118075151740198524784982379209023836320788037864871161235249454114996813925208368706578758674578830191010182960072896702890458064035391932362933040990839548518458995085777370992301227502450647925262142398439674324162597196779120795730799351251438542502124039995351534846489660468401585421497869842368387886152551326022949498755636725375302824573784803210235673620509890017737106102290920915798554924183439147499990163768141474469073886320502857835091455297688123202484429562301931142813263059665906872985743508728501558518846125795953687727956233943335343190408381532370808525521640438544508933378383765798825944135410069870081694409647005398921337355674883722882653753800326522808087845457218307654961630634587867563289523007368855385452519104828210554963286982738909049053203246788308176648453679545538999124224539113542835172169257310355797178541611614406234140789776731130733132718735366751497967993010280958326818237375491666297261681176564684112911714453009840048616623346437301647779684601896878732893193721226625873513733216561266505637484637163657685898445018756153513234182352711544058337315629282329573288582400779301478247006986960116456730772479347641804185719823457167536655935425241309746733782941932587446301341825989678652052192514472090434021945245707951801154501601934059042107755541182505998673548452985350674186905337870070223153173616827358606818400514394732163816723122325701105420276365688483053990524484221088029399522349930091012541747244484131975729987160937488082383189858480568290642286349117104719731849709247066091164130946313583247365915794293307752858265962041019443684068219968749027486621689801940537224933110016072625593172444953617939630559846487759174202031006221637888564146224522750219521329253411893854920603789682870447145497760429074868826494345604601610347900657784591694169348469771062643763098136951857207328769100112750862471037620376489646838900552008250931538884679238151572079127029954519665077005353669683190841906029342218547602711338075522638574589974121223522457825635969797141925483070489937272455911522123777566462272951349032355706019193101775403886100986378009607426699663969046713445479713065528089885149009564595170813123806968019336163034430024454180889351702734799772596106636663306634335401012070310709007504052593170695724700076022680600170292196326978604007251735245058963267276838154495618034952440224522038790806929361709569768947428763338965880570658843826271853511501823614046557692316242828133739675620318177347797484573476817632493104955509004236004574222242908808815789075748752029178370425679995562805634740140377450110601739343387195919878600417887191874656418147614865149627742888683394242608020688134233897277527757316457708059541391947512744492987661413865443393467696151612377544047000075875444903918521668289701277378427039576019515661747792809872358874187555842889731240732999995020547954794927041817374789247330978397379365318995718706907411371592458038406697274368645453320596599648978781722238623978077666375387292221778626801320665330967510101179154837104281255580691882338545630658494272628807258083311891148255286533708158465906964509395005307166042173177753575411053447995514816891455756189496902266966725940066437499927800980464653473081889002153741205364726788845471657818024078557852265717652299443911697707073484062572144752834988173742488542640572363472207998545169103969161497399865464791285006031295828064128474915477396541696682176344735863246206274723706586767056040950921163654109786186914922287922970081270403239513905995603031307990835185335095577786207946296250061027079379976671817542899751123082163982731260986550161665087545999120422061166916373970588814936858890162856461460864818688545015859653018145002857515410726644831120296491154455808280053169399573022435573629252958312799575518875908754914200258804182754934014186657448785441919863922003744777424939018766123752067340063468666759260249610479851609923008517444451714373560589946624856572836430387004998140306025665203495615016259704228698020923095423845588188294052434454090953669456831327223253650373035475121885481608771089930650985944986528678995952553496701651366038647547703427239400395377288147992009426722748242418284451153561486615287486687914542161935504795298202721475625331949053903487268672406463034957548768431911385226418367585223093322716280031648548776976902119936808435498070230807218784829237575065548141850878898360771605193009439333599512883693170429500034786226891947823691425612305203565888562936074656799977855138800000128770899936065513984711562278989464702991323120216350281821797609631841781074191869362995561132722704312985433946920302595823480129626259357970094899914475889937763622412631120066061193380614339536306573849729383464312229828694457370532793708238711485824461084109162619726677810313152948815773729019307649070528184881572556144590368029684594480178636782017619910912415828796696184110376495749191781567277485898722636902892539598506284049192393129353113080329071967488516250272189916922933652848121830286331404975765888428663158771842490580828426696159393585700914630355245717142474952517106804434899514146150757842906559336336583642164136697134015433477146989997569374200315364059473019447045523284030949643537792826459964233823217583080734186143912365135169299478190726282420790405073781316911961174758619505113020150058405234261333351449053165669090539878677559152079826568475580669799017672099456718935161640194605268785233206663668737649717542014884698690780112501024762085100632059394261262630807414040432728317376461726749892611525633502942227892840657708814486173595729763407513187742582823070977648617750360891508447519413881966205620205731698266715742734144058031950636874589811968479155286070163611021868241295619789772241716158636754397952946452272604358703060419961317422676713359557320579190344183422324103200065349699903597141632761713112186526409313345438521463099217355318676852439453426592326007191840287299867021596586479026483089220347290767080205690741597787478312156929300318092997298286865907916808039333487652060727485327995082848164674504685668609915503188675725808561877728502503375248223621710716891149673229746896186945153415601390329535640329993835631693059990573476606935471985649443633725314040969891596191989346425782164590317888833875033855002184137380444238135663421197200451289769789835303878323034183385578169646145312823513398268962558086293019642434921671619762874767518925477710289446561276114903326718464024858819775792520340860578924420401313736455689759540634823352159910503252125679493887976584890051441553440529259769995549591706729570212459015169270210572917182438502441309965647570113321835909742315227755827443707994519354607628243509593217636422361984656915728954047095609253827226557248786352953295530451007483348161485859635760701998898413537631567980984882814533973813853484279703679043046609810656870372725931560535763145866836473152035341896789250461287023173910748730396314325034300488696749840243149059992293821227332232468345751989835751891608187508071332764988586428034665491604372163823577664151092433802059836623733659349099850808588446260577437905056270527010708939244089612362420739158581494019680407611840439891294313024914170026407076709145908340464920143014446741715706561008377818179470666949568848038868486366415321071514739260542018363583734158215131277991217350504262326459711738760431388258431185255510888175387831795774894853282268618642634101449493331107046968887263308695228121283933751394709922641040778979261318806119231486218407376968617788120383699079920139282102906698010875516191174290583111223834569064247533220430707754218243624949189284454978331386375328319647062565156295122899012260363495956862027937895957576814895544153077635913928712306823787599946595908846885407071413246849786727340871981631273416294681453453246555503532896919312070144646338686060725377572171164221919554540830569510588569809371539149990041506433005161337204638216964996117522590031448633342867372925643977578710215126739774033627361578634346971000335367643096195440823689461562133615279325000113457036671385352212543125104440580806232827700479657676952093338500085485278544717609181064095227501617930030456904997822446363628136642447780678883219118959429288440814593503068292207418613364607744067129116817576560984845689554064737925967732862165065260181528588630829829526360079778903052724782735365934766433417705269750029561408086062919290058256778820401608660286807799200171074098520244724926785724406769890377720380947300893349020460392082085331579392934334624414262867903893581421317090341020323440365615911376721193249523868649765949431864574772017521907202519692893386277249276941185732725435768323740178948043636589340635855410284397982123251799914702042137272108252428195521691411554622260704289874373651002960129733476625855382837820314273602898439928871386932128448009810003252658130227288749005257422688547581971529363348339445784507043705329771681060736846495201485269830775378244923340536929746858638349882164203763747310739209784526356890174841412300612097762384693375013188699242708572046689133362474389186629224216390777691400395397774148853930260377528587156730043960999754853298262236790302364775875628575967163440478760616248152284451221301589239475923359282108840648397133933366645081369053146882302312952299482789151637282484079512310616410945301165386348285741467661314030292670586772453009493845477925726714657790281865418255150444678404776150306062003426115823811051860115965061897756540244884365223067463821030138971726296658793313165386763655117898074655377606662762991078944386154634001470883186175038436274036020699997799214265243408635982109020216214684089973879030344299888601201683541851266896516982848010047201624444841410370062774235619136927326376390149480533089038214627472547042622346269144723798242571974473880505042777210141698320902907702749187190995756758250568848014155302714237972293527149273494024469028560055966024892862486375263072932445339430726707858529124311465646710789673296125285806543024573256293661733808968838277510654748555412236640306078213687626784904851216336239793885286768080592176135606761725676048714753522636535130846263738898264980792067475614654769387792305114149172944619829704835645368481724200661087292697229527668824165677803904847776799962138657008671502144110806672909187419615401839924316858342987550009259712161499370445673389769673674177939053413256121789064055234543236051847395743966987138064686832699599432331678514689962760727496986737757721461604882171855772531976635456578778070560892372235867128497297212048261775157898632595639197567465152591856821396068359452345223642509631378112918653206864277670202067833982423181845200976547497999137773467801907824413384911249840586480274483178100441589142430864074528371481290702187312866570844900075148196758835997796029372836733202836007973270147913449108887905374731759383006478656890785740235623348649162378463551297896345641934532226437790886353861602105310155895825108132766854464562384764300329712588734992820462380114313160900843640831680827333387718787798993795178932646873924933750457243222537370845253222082680872198267009663951344147645879498676873912260121304309733086120429973591767308735653202735104602728571727867641129520577204698326680336524332935181521253652293845659608268985885942810305734956819853101152413954218500305262215703753993656766798781883089258065307834298128082914114814889938571096998640935661491623098714603575165048907481789316213277273873776804471126695565040085001068209070276652944937726739783063296330106487136346965402332899219350919637389106953519010852022100637555577411789505665961634803575674468678437045287582942495635798060444643399820436899434451735644203298499951027193314907094410470228075840410028906129062949102640378866162422197972913604431460041454862381064949547419940601945117139729309598812862880934689980183630302892817830201212309721383952913594223986584192894567066325253044149239473288317195586675518049370457420325042749541459193324153389030847342464494566793099239298069177823614046405973170033055031994084016442607549254268613253468711283850305116351489796166247063746491997180569234109271867937014134308550615719227327407131754562074819298663007901455210116971198847577764192468349501232981882390366286092679766798741645138560793278580161381058998654585447867378662063228041939061050973570996783428893843347963688888628004928151738084572099639678226801211896220604590038801205390926355373433778629497234651463677200625115478185407004746917837608495890805823531281394550293458256873132383186184115307429303455937424991994752364277567166011242601175061002992348798960755391906557971245971640164768542163767088422898668444645515182317092328214515500492906589236273231275434355625267506351882676553636765938641719513981546860580304094469236538863903379435646009112504883381979720622477112198941922225622746709206943508550351318504319369272294812338845046733252361241631481105858515928991262339137240459468227313883880351967931310843921125992247248353233987111489633661513852711901994882844372142291952266297639790356028926723161841021279468998097236782452478707552710924644373126179870725937616124490480243501409189424560167212978907522316275231859583745928508921518660713597747441750736271040092988545931926809363230008117975216690322368810258975302741037530836686700573562496154771223193450585505542524691393881177766041634441523929853406732685505167849931897011024911697059184351482714467980786204142561681697701385813696579361157265050934376460233819858485324082254198243947181608906402033889718151232427595746960688708383248389281825591525330076994201632012570865243086894986393775488515257206292907666975694404206333626841856840402820773325885342168674879220892074852512634762040450521947094830293476941279779001970032210179428417553428729336614983475748498244303854695408723800919332486842209700725683211087739758017866649497706457305392556694607041686289973606146898651987655620856506676212631652292155323284217139996420836486949735856516558616862774069938570894001512174641440384026808100326504609516668628271200236968491202269490608800517515857831739527754881423322687396743232765235378627553832916464153780314405589038893026486768782527770869852173953545369292076182922041232993912115959991439268271105746105002223773640690082531061673834805107161670971437609927765567418107865273167280845878725449213722149461291172141724898919776702902161930120821029627060707356829796750876350561469958580165767518302647974770905245250979325812295705717806693365302786196391021330873273728453534449406467551486588114928498041398828587429900983664091246505799479126789683038434047012144317532276778497256303487079562529951333131341271355160173305132323294949666248709556394184673008715048127853032830015454771157178413335644086248690741010065778656175338645477866168590835416132554878218987224806653227424292900370211518501731892475671078609474949680359228573027519103645600244447197762810184565250343717006488492757873211225674082857694853602019087269706631813258586675281301555335400367512930553834419336095348297868169635916668631817135720927043646430230655949716601206767808596380472755449695670986071517587147370646306801566369875424016225874065475048867578233787874903830064877493574723298506814117690346887892387369359490886454526845541777993243798364207356926387119224030953258626127408364285903721406582508464544346996437576367700074454506544082307753144420150735023094623898486779931263484464208931216768738767621729580341215786432020817674926605457702693510965993416412537032489852705605735589055142041226241399189866322399092357104201345156644124261045279472237001950613799531630595652078595300596166588947524144778252920532816968903096535792380784007983590009597387280574404128180637353891379485368683472098598192261801682580958718234751378376469543697442823599461127123717969387257916026749492535811591512615669578896901830603084313630873260878863250701932793980292358868009692023816183542599120072415414415018301532273885468338267003902576293870739781970197178897217562954807516896380421357735359231007387655808158537991295653595322036135822435738327462354024636356385160709591400782257588105601266519295200208905780232195741507635653112338642513041465514468003582114476073212845770887465856960207383040150009551500367620155254276434075558698976616793271149787627795731324123577508668253838087959056125583688905000975084233962293046396513438638088410293673322617118386818539032173841510463361382895851939518772673545548025677407207461323027104892942336515829531822142561772650728624234803005076999422847913374714254571002780938383103717440142350676768459533791809904586657780274695199155041639219875094381320492492939347594199702321063954914162298570509718049506654554137243436542722196505597046687533958583709878533298107123587963197075589228658445936714191754996266540178280351725096302672354544641657242253649222636278829825502298726456082922193513766760147640612363021338483334637709989892469246618381468576415231630466137764802441433288082203508181476071581634460935761515319738888589196279379618103168732152099894098512290166997119200500128919136953845928413362154752873622195948683711396462233412032014233746041782331876464354394951555123225937146710725259211887501784432385305957845879210292624028894302620442062688631988898407852761835138817304223486290019658375226890468161213116326416961248365345533016399578816403341106766904383695251303182464776952891299555572890509320995503176574416790694857922565155564654235012816901812414738459081880702021197764754989569065163446291751389073566266050552830472813136298689736860191673291359663025975457715478205804291618913496095898569770182537764854506711872555398341133889514298437437380492088602643954052054255430066479364308264270221663357176870451435398274937548986013214357068474971061496650166554265793371128695274112821132603339843618118937539958510442677092171255922673758674463642052691530286327226150377411497094712811529783610973226736632699600178820931245667251219844486489804229380481049984128989865446275212930033509097152755652622213677461295868407941815899774237768346752605744048637356291235311319922500635647538866812674059353701522494178445140874640677628405674332512141947242738476052056319310310328084050706600268532500083452145452124076886485841912107599394792246320638279336406765897541919334868184786027526442530937857475615875664644953494354005723312153856627197671356597650252469434063769530691536020570069440394957829334596837018672424735743826075805657426342851807765299793413547582384120907114867378559676547245209260507567642163873583210985106095382239556514631880172646283514105698514816747597131363811592233899636016241013314695090266331453333472911152039735368226438139255811289792319163534027491836440073162256307951588292000430631673522454395347287642019520850887234889663707814671165630646303665650167695099383035274528476536358693823740815326336707852655036865513201653487938371854805908191354707623234458219468439343718215987337674450091978095849287013440559543503499514920338521079135991335955619840287376691854914796691698391275824525525629402334170008599623996598055748851869941081070825627578760394282929554449728686581745530768353551669815004689568984056886880947401255980487176513395978169535635559078496120700186032484427854055667179701497041805360868318638680336017230359057852836102909910166275393930574018729937130701300979430796012307581851077056441845708419293342128036907018798651761870286416692394817732974698192752087512344678363003217805027321623637982412251745288670619307432171952538366391447359312797671662274835582458608407716229412117011934579649321643717522834895604274838553507550328729921907474060981440035310334485120976012525025756983837016684276398419646745708803045903250134306427327475394487251530246795037052274255160470679017940737677063394384873919717621718990479062363676213382910940451660086242645032726209387790722251401847945961832183398441059798300637556192678148632948942223935196989282523169498058456913447885181231957993217866142719800782875991970241658942986064295695481756484335850878660361384204246219595429927884672847951304679336554370212271323806049785364477934967927355776042251561621108122666349929719180804971330006007350372242097135181536196795015387859915576319514081785516047452624511048996885454431665938453842516940646257420046969635451716773756923690837725739831758347119136128028255937426592445346208400978940830593986698193453378414769616356550417391884517859714037051439729484358954686965840984931948352293660055278831480050463103177079859667480690509813843578210699177706236403263264114111284872513972122257779015362487000980578835123407722132501589823326403928555563770230555031312787664203995663225795801574521239760072740557649120196714599278490718708162103538852313799577861179233726221351494873600372846498844795740222667700491139941214737744774807054883560881276395922756143369429448118973292041047162557595088506800885796231809224352983018643756024572929551609050952032653234455294013152884475337791485478952246022757282779605207520855271892603882296699731393540439285242653448450229835773249426206868440880366887230002131652013369154948026436563267807478286977813533112630667344498167345106068713591581276721017571514335070824502114272070366747470228710498213470764939940471897527680978113174098878594369660671179853202069043784739242749553251333736931466984321902247742217772852071952546856329165864702934180131538126918519479760423713107216037228540564211920060232697895436906120483491107850977138327370738717968012587689813312966722752832632483787791021147788543473264385819355229407713811366766168650230589712675547175848207456054718063187785660283302791866492957880635486038463610516604573122065365674262641433296722072876517666960904699383265028442452388783930464930585748029294530050608966782060586434527941713747478529816325859101584591693543783687625532608852424383715679420466296953593321453947810520923898661680887996589139255307146476971389822205590077042912849287728441521459678882160341334751277015256485325782277958766744220520756886585058040669874009713339137676150514754631397934410014944188826515549406000152203841752741089407892759348542820066850608208929197932648018752440598270991851317915331046616969310717851305249439479474174824263119917080015394420966013811961185925866027646327527837076664130130108916142540414444953474918599438409754461479177217509081492824415750353547686443906569638819973633035415936123756805404061217999481297974225616414650211546508924254062720813299343803115086978755680886216198263085566723545673209361307307569211282690034148933113957222900984312442388740715928255566372198894452170062712323325475556955025378498100058826910611276589832340786803436023051423520806155732763314099169084291712890607640966795092755135821265700156017873846957468020841528911484182883128625179810719125044910345892222840417494936687802678525335342368364342404060850964999645802743977287871218939797536980658123670014124661468528387472459979964798571730338044415836797627467355888930558954695243866026770477231925677455793602839150180639500693720936577205848369305605156216984513316403811068792936990752585761621295190848546387072782155762549198036486097341970746306831115352683802336319641792144831426645932769873435896117665724337508229428181845781647945589744062062807183822827501813603216874740074521844729545381226240152435488109007299367538614300479715128071325840061489510685550676013820330225730251782332935254107750907229282749364834843855234968747189618256884530646643981700230351179726256591224683690452250073916316129769996258571510936909363784923945735192201736853621362766630940704798106969352301049843410979880485148126603881018039347669754672795266574974912628741210714673575314507642904133943669127857831800115666496733009346496775468308780903513289905170727228017594449058411253706124726089244690729374462814157075235999350254827183552954147669602126920604145648296924708501590881743621589360110024704318947122591190024741643672888541639074031552717832011185002746940218211256373252822574341279893424862985638884521574853690486624176328124186879594096990262144970353093733038108890359182511810647287960616534105669679882933434055614886559299165381989104629569342137680566899072899205634330076644052076006797438118468239255017740486436128191129957646495344445328318176990728275826009579055095042764366222706586504194589656970188812229226629554553277614141394123177696748941140071799557647366512084769774006705736812138544240588846745503334924984925712215541780823597005500858027440030371741574292876842632979538406987420214692775178580367037327411093876637457957202258781125960855349484849600221085243698189901624670661938238581842259838612375592434783655663777384179850001244659819106290150585825382907905939889324137367129200698025892080904882525959448398436999009355014819057642442246509131777885737549943536415331732810227916650404094773608434914045253481680072134933875083142971926504744185916400424885385266264950277165415352570194335604707191304745114884800326160444778835644436107650903181370386863835788364961005245803543570081732893752920055551499680354898711497748945186442769009075750907281965452709467755620187220629015460729803397785366867392193261700993427700830694885482907898126103935698942819683303351909676466309095690605850219940240937430241262568650967199906520842477144716927632290104245053399212462212623944625509090105692159709516683328086925283918894514343787566764276519667861002102580171506587022414455039956028454818057919896294938639230536539081135779899301172784885689402233649374436287024073490196616298989265939762692869396358112870084703773032900770195935732432510027556207479826882934517739258209706498113900509887691673506960533242020371752886872809502831473674765255687831867180532184433865057563130190919480467057435149734150264299105847835817649204129147793931159872732014741881541202383167033822277156524016019250909164837225563177113388143652508994042929210056469835353275564657831120620771001177350760177327677594363784664556439245642504172890274360683358354585572179635461735373116241683509595837002074587537685420835768980363048681329815355995822312209541581409501615078348021724443127728662697432655252073876965707892269594493608840184944390572448984691339399287105044506808128332893991071730150154308725796490606016030946265468548672952786086693882634006058743711864326376600658904779189007288451998569726649339797564392418617059823364437589045109283854364493211362409659452834696796641934545710238189459255332002359342578660477931396959021618631041292274396832557260482928415259406231313662235023624414834299517528392720616031361525877821061556603665369480990081306581397599490893216517898835656874624825962363421089209528250886239013865129463246348937877846398855343825352748544905990889113846990718440820087923195028750926755637355131235704265717706298191839712144519899155622400700955590583595521590535037976790726155081698982552512586493927566980034076288879571917926539940904429490610024970559340509866326869306579236891232153803281387109392147551060373853382541368674923186377097169002922667110223458525035274167863492608757232251799906299968878687145246834203057767758883173673035779874509156985352086123848383187420470767623943224835879061772418309215422529436100001636792651311700049816826903862257764391630341148115586196512895194354322597767370376036999682640503147068577303637399454559239546267946931782178859425064148812051222641986774628446918820162618842854383848365878053913324340452027573801605665195755956149411082848662563787687660402511736043423947551345108358260665597513669424494778829206994434010931524199118957276733797455837554851995062768580796691920416395136679524874015262816832582647579765636956505417785772355241099160713374821373504141289379545266526431547506596277332729266194322110868701629585814915217526335016546990975984872545758530716708092398775675328860352415669691895390298858592103257085399290464274630681281540392269903240255725312616004235621406225348806595019433351947092687072197470059948140280860311625587619587076641937252796935275749444876234365197965372009534959265239743156974785081550567280783878807561738707052547139500198700523219663771091485189271600325770633424252247252841213763425405187366791393410938700197057252070403302525458924116089093908459476990719925111244398253433934655036992280887503514668162031528330429164976147946062860487836437674296614639098635975785178524010492129916183276273828309167997336243273937107327980551498488978967703555279126188619491995757735089684780620013096720735727549912031035568259852942233072267222929474418597264339951961662793321276595686839574865786436100197136360524945969064081992285452615412559599777244406662581570210051632814299006420601030890278763168597749418522152959476438771457676902131387797146075517185486470849957276859037164513614096215221854848582869539737616845150687521388174631931559706273015113541565454311962053786336576964366978306451823899506387450737335543790635656053161996037034827253028774910236238522417839986276638882837240361962677713665979996102536058760407654975444575588270941959145313255929081842157425053993180611242239469781038419128503751111311360879308421331912003938199829419176880633428664167294001142335876282026414211298266840461189033869652211285366241139905178575442011173137363351945203406957252113040787575667905456017284873557264278290577074102542260465986133468238689431655046780186171733534979478971360997695584660631329332267768199764969234576740211750695149810071249024020283772329095467625866514029526380823641889678637575676473040802838685250247103624833310324570740630210775185961046296624219660121184498428903277653422650426074542410948124101468841943682774881855831635371744037257752233499267492239947481029348484835063159158174670522941658612144820876554181347267546425795182318397131564175144099247823623016521402169572169386777197134158834661984888712041834075017000714860804948838165031799551052446789440756756485854053370088918058312989265300997767499276773303840155636252725694240392589349017239577966963045078599747898818321431013241376397842713778583024333339771496683741896596092494510243837480517325924044362981948717739577897505313658742654270355230259159117121831848830566144123275109973631711929415103873730928637499900690885254538269178790666986338325908806079575629139208491411748144111911048769436941201223754725279639900588985001050754536743050106978463830101025662396704229711505701767935980641173343347434498070645279267833711778237619454509773090081521360000626129491429497919868332112556449670207212929927225474388687974181576195980967165776363035094746142110495517185737237621316309636979329801913852587021491152965871549411433148468962621991013622141672473999289329635109167787200139355262187263104597506670470303628921363336256719141078687449664807001989186461951273290128591865352390322404136256912736281498550878680811393008781527352188460644452135751842550409029935725244817321788391679716511172555298331082302687087544244357652069142823393349858458549110303360588443379045306972479039742150765485836136505636613222784208053610522712363369881325155863969220752347843223277036904138505856348899798839519823823062781404011867006217703145950078293189277544910671625182967088961828487921481996892960066418582760658771511628895842783098788341319806651687370122579503388925843704955721280859041160460865762807859277920011481757735531964986403301109229335100702082416918510948301868770184860729898162921215543284830702240542494698345358098943125534071217727411177729597963621156584556622067838649081721497079692112076981856144157483204807179699451441384015227080276439129232127347437849138811546235077092653970541429810096206692167528266445056565773130105478962042267286550871162295858427805633922973284023397985063021617335055791142058296029331669302188214573873991883599946973834866318506239956953823516822380897644055366734357411247413034744541889073880506707755873026694499954052014655837800926606927765767032329934460794891546993934030169483597672468962974474972425082696474948764817667950638478620831557313840506334224973946541796068025217919314249998987159413584255741341700436116571119166389791272595118433787918446144075433976892197532025200051180291357666997495594866798393988666987456822210972965744205690334598207006908020499911515738961959982954365215228016254740797639854263830027372184175611192459042766544068691031471349006064948500735116916039368124684815265986368133719465155260519573795000773932391207170582384211576772513657907639735361055940590654650437861791973966305126274852540882952299082916379926553737717832879553617929343664072122342026758358511933250987855111901261462628099046108125806869185504094922506645986613679894219163244036399115849233237314977708384791810403544226211742995898378635730720275037403753846001379427467092054069090584264752871674672532883692758316497496684574806451073585333828049676211674569179131709726948363282079262249331987511302401354347767061559596384433314133663978360838540401077573702193335435570748125245916204839478688395437475096890454651184810189622011927254031747292836210290527260911015160211256593233525869648814593527493657146749624151475036305699528442581453078285422320871524482075558034073213626125323338043064802416940113698283579834704600828599435869095830457883900373662053975038726158581521282180828080406105836275972477848323038026870203222443833244681574847897504510659598185631217025390163427084191157826023396164085546784683754992931161662639199846274071976124502608843233463969795389007932494720411490708424878591387916563447885090489612277315302408476977246055851760005130535834912915936206328292370604072273360178996492603879268507453221461069052755165690879531582040952557722594038066244992892290953544491495650305200628054916704689601077785425500929488122959495643602809820227374518246676789710567532901099922075482292588858567010575474384643378355602090330814740732973725553022435762213270075197487486499181456216099510156610748394942471190766066789938770161793771181376628837671774099760846452928201517572372414249399110327680702427362652959984439218500478575097785123383295971578454083083618935420287076804797693920605465388328529432863790575056852716995097297184529487234106159894235571669374258923149937592304802137029002349742397113422107479471335773524526362975405254661796458358327609503184526916947434103644255278013508574745405172119777191269141594886536863680681756816210759440691362577869900041724763858649934562630614306890650927378420609120824021265421976717582198666337648953298119249885804436284933579303570740751993165973741287159628830198154028991770166115268639717796752754747243965133119504450488204163105056235700182665247988690364187156174793728285168373143820918425575555222064500181083040256183544372031668307233931845429707099970821607760371564140039281947705425112031880983654525255027588351437221025475884841735280337888124992548859504499949891958870761508495988439597885863439826588751036299780244820858205291702933479924800994679911448950348958032994863811113275060238576575864626073905704737758610585594260778782119853587458657703533042952534799742528842965595479288003795583311003647246660372394159155436507083822159349824352028582809450949467785975078268193471910021433958792189601106970276850616043991467688591606122706235300922521319737479095184267470147421684292103776573268442524107553079604983415051148214060631865066078555586985614153148428832882493881964419173910091641311854775431158380422769482581356043957995848178998483646298555264553066853118374809947556460596793083015328331718910508789951811981682646382428774742906267979210316361197360787750742807706924716780036141156906325900376041087696955042100154882111650298105318154560736080867308915331459199322600682321993052645360234939964498809025204045170816832593416776980688033301968068815048512934613486155330784099206170822034754041533764826632441101574127503403611122859411639484431440545994160582122992674444149703044624031830875172016540889988191843995118230448530368816181446003522883068950230327100468278919632873059168337501380414098538413749157787580369270228271919467161232312159727675909272737574665941460304505172548019492152372970929215753932006275640931378670991565545332684423002313040601031460246976035940150948003461389919456620619389126323995415302462535750737126003085825292746612241386025272979927392546559480618363732167564565320032643327637069011601633018904463303392521293241646821822692448836911805574690123145987962058503212859557096273597988666943080328996938138206070609308997814215347767451663243630277462819694190727094584008888495316253692940397514304263352901457072898675043509562527927887259754697069167827564991306199199711365997604664962329176769534426736827173922998014419533428141803718833147143302745315900828633467717595111006624111495520822179716493888413251817006908452988635559605679434729872071603686419315627675650982152949852577438618180768952510012522569607209114773421934440247086296616604221966168923260446794759420177402072589944454065479249639054992971761125159424079945928426664412064707318621582153918959649964988583039241489054302345511953205657452452470768469351918622397885265010302166998423636811122026561540525107727250077164168907238555165006520281576760133411330267169773091127905820187533432546874235383925668026112523403783355708784817630441874500282810049494319682888449059161328023805780125173832065333938743351989101155127439033672515057556202744740246643921497703597843971620611255952305265476457297203343567456593070807837299062233511815074553368610578428295288229027567965601242724717452932326287166596019236623245458094335667505402817645109268818910686279082544329727565691482006768520960623320670105623447066593239410415923446046659798530125323998706195674103328192422241983603548861712618213957053638977373592201840993366810797681434994993311758153723625856038813412656971547449790395482127403636889656255905634720582737731363104988469272615899504656863467703500919878704535152556356679997713013764698309429902158490905769763460178359617804004835648976981895331232900978016464454326640148673591855708063405417412017056243480585604262432046575447849528099199514814430636514478101464172793769514695541868486653416561157634097596237098016346870921083260239907357238537176810718009291100304500431689733549492339108138220282340618966856502987592563819737088286191029314067695597419326176549341293748141041583086775064343755620660253073019551365089801052466165284574312431161257082765355786761647091852303385826219732832510157146012616467708703752528142877920820786172616002504050424506375735311307963871294614519134521725719063833701854562528310492361747702954177076058685962299146217441933917907493339586314128140612011175929170536854461558614553312451548098412029053691093384688845330828795245239085228776133391344426930984097916101223561667203071808867849884672811191456741148195477872063477962702902824738898844874611780497208423993337954806825844626081284451005036031720166567202417613710130228212217372185761247615838035428503587982600009880380340689743755416797214205565719839536825724125529169313920784435027659424403091551562682958899512098202619978558255611994733438335936158341662389986984737719129444876267215254653488249580086389705892248146348964363775432713803864686554058284331556536301798817232047207886095549809075625645144590127265032104820328395565041343360500210633953266907494488054895731439582315751460836689016075796089037223103009648588387279712523943845258658984722897121398301320266214093290116730084577749095638457221052828992570019276293370193976859137393477754295206954001053387529199032833738292879255761728830404022680221069092403486772116426815504943690720781632602880737670563217651361851934565416381341039013617003900561174272637710265818101233286982829244763396784832350484900087312344776155995823768549427912241870045577098109214473924517843976404501694318393179669264382177813455378438747564883467202240362274616155033187145785089571246553062294091173458638386213193109514535296204403963508747923979312687349729878290158982612168865079962106899841546774221446168655211415522956005956633591223406727461852668322155872287701453516132743331902641080302240759910607011816485747485618510670427467697971630677070710329433749247870667345739892833373091117341665767431380190719194146675753567461085306350695228044713241622620530714306347532734324713468648348753486272086016694326077094063005325156417448883458858592757254309977424917880367601554490125680565918983920689518726562160516830985788938156867620557635596168485680750340425343704484660198753073067456942837873283209725950732646475950634794998728914940815608376990732468869345244171719012653808981901664710891746705147885570666371928296255551305108381513711359325596231845129398432791731858962488000522155566020587788632903045373971988382188500722062962969622973985908854923011639718311006884775797179970144735941417821978017304447627739571435690158559679341578614898395039255114944163523418287525311139759082992057577129471621499606894073588762045105983301050840251999810623509246975650723520260476039933765103177311558894243457924382386610123702447764941005324800126575231974840797191433052010893676164040509998166087034669102462890640978537613084177573061291153364135525464539507291764292140957282823647166000057311279939102527658898678381480205254449324370886435121727277689843381746578037533514511125159049325960437471470749863420059682243584307317173540991045057133480012391537162756843310725677419002088956928366445546677280648404690313076282872458440822755304284415250752188189907857899433445093940747047989060386198289395369764143498087026884892408172455138666510121622120297832933277610940957966281019067859715918998262901450497038801417139325545316580785217113031662927119213255518955793243841728294408561591046878390452870351520857131183030261169814384455908526846735435886433858000948614384682728280597530219426012109990533893286499787457285699729723085745260355167331594587143663411580727866569804847620548398172821369394365433171590474047605871400138617410857617701178353196154439778801571497274114238821696991107284056133202844584782384771279703741612938208973980404712175454251875343561128401736418933390097762672974805021297780333652904434455197893742326048125437715962232038860015003097622467277159544057133595723418613209866504374888542069870852323186267333490122239244669227224297663045276587290821045979040603278149348655009876164707083467807826810582323167558686914932918458421523883866594499221981852719994869442246504814527662423208298998705720345066850455740509285818533170797282717262510670209068122684169057729988779122432247114220105875880123195342674076874730165153212868607021279269316903719523769473112040875624235969539579731831533826636145165112604693921001185819229590954061174669561003150979739393818058779971030008219667835725060209672241243814146769551824354041995758969712159111554141409689375837735301112626370167407878581904134940999012369334981697553078400956952739285055399159164264258210202989574940261135406015914612429026464489273563419523464280327163481259888626078240814341976468754564986838973038792403203793391391489329472464677178471417843339447626371687776589366090524029778012163880870482587019171396611050940968627408913650293605025341430880608319989666767915570616744981266249012985382735497658761839310081071119739226908390086570541543542824896252140068651158359630897109769207808141457001677559044320903478316258948553495283902194676495127549354788624281805773729884250976122643547426208158549190372871713332469742887801199474737298172080788108163134506874362472899728999773121182007344898081545358490436089624838154249561221019608526790527710653071066710974808695822167303309518050572663815147832429397144235664679286514149004430611697984266989350305053747142427667320789305486711343609872732422447182435323962371093076758253794483110257838562435255058489262250738622107361538091711499812402914674896786588856753245708732427819345517846174371132940081715142711549768839898369936125508330717426693639559686772765426331384346506757746654860934190575019086857119628212471696370494105003240398820257718627116622975939114176147584871191033830627734546301101134727025163644671463172856352081101025435298025168335843489536377565781166291202794020417402575174462291069340297959759818565817910045104791718899786965140854042861218812527996721112739847562965856791385173664062993988538280756401959886255740905457532422935980935894596197006589263678014737401136689294766052282570317705663263008468462396426558971073854357323066429377627698718222536305247235915997582137279386905815190703339778892296872889222160316063990111743567030493465123746116024813635111057348669506023827321541760219473383405998329109584625026608517158881831441403579157871404863921632547501970007904011777926752561679984926093660250810700858526166595329915815298205468783088948787536302845621416632391712588426756064415712639672584889119171938637102884582715616229538246383598643484549581038913919457728579231246006695572676181009388437717087065716647773198511726030562110763479380888073094680999599392424775781806101641419645121028357485544706042143639466006123154161929624145344572524919405343650222761441520730319602709126019798500428898989007583075796367942502992387558143543378592916422666460480905022689973775657019604806338242809608414489200520368112418140147030258346960674945148622872530679671742104995641025287099508327762197377705084493325226527448122171456645131861679655019897215671538435295775651891349056906679785467143792328111747889157764609422527420313722647304333614474756673717187569409008779933769857780135158331124173392438936031647816041998357543616301581740186503599192383640652876308048060286704091709137123707175444544597331637322324621848757107324775980477739770665187740516473532150969389976844801302568400034882971612203317547841549624750370347040093208241098039497707082000687529849954256686896784344048823375327562299938180651804540954352608789873458597453470051081015315310614324295435451394470839196087930018398282290740175782781154381876225449532431169720462962920779002433455650506773055562828102176883600701798300307559214305118252974481987764965036291270725923122626058092162381197326464324001489947712590964674773828743646124773002544186715146429506333271878657591974511883843555623270200716126127184712776110925790248816600431192184445016662158317571068486065134557055217412155640967063712832366195744990724407606009217511180650774484830227837984913916969991839553910164064831851968559074492027558441772658150448023981654339865777845829269795056309372488403548687020387514055645687843880336656206991779496875810880132521673613755592756423856400791864474827357385856410313960675815385665863153791071399667000624314539664765890213917190553713789494441029436464840621278452099207761597410991381809724336337093722105930618064256529570670569514868491624800572922351916687425728141053597009545581409930239079413612199573528035188877616007261022386168289764730911587766025899577723265571585189951768268486092721483507249812236351952918173487495933744030761192055563346596603054273199841816511437497828638764045995580069295376847408603151343966899684713721286743131234680986724985054372307116236725596647934774984686123326608056626005118969377564322833479568291366290259400627016475795415315321774348897716283375312048522535271468020369043808431260647138338052761367620215756851932922027815876211458763204337440144117237376421367535279940276160498773139637690727378983037880794261556965178742518924157594476588213281692447605281373248297074332165219961737754935327728485744332926863996234909605030759771583918116408888150791321090331961843918410845096109046929902014161421304020546792181335822290510887802216016985481217346417870156666349319700427864140864152788973482741570336539653421190092160651665206398601967005954462472391097666881540134432380142181507451565584046908166298419810949171658918746683501834999642233891030735784093572873242395131130814152934181762703226000948917263629154794581254942598253809149989155857063970398088681443576873977762651203452131209602406374132223692702781200695958146743823382049075103317044313394559469191432385791767613907650121252963678527568620201697751713502239199694782973370569237045777889927911096704160332388672796416819412378386063253189167331450051072616910450173722452157019544266898278258551859417349345279617859484995547389564747455017460780727945637708795496531017711082090940850731639524732188888377528689930137379776940135824370762165243246794440993897655122335700333410715069351980627063622214424248263553233301569165693337621774547508851858309729877312868690900015103429089859566371318488894574154457761110316826008618382159996973491626679651927111913462994127126969718434283169937914332311937801171099825963030661826897660072964018612035991721600858613637442593935134991748839405628334548484080812705949177757881793515508540197639358925232191555803579219938904446635960769699845125868058057097589241181962143966810385390540786395710621913400021358496546958090018941874529956679005997722066909357096171246918350104391386600140632398390874128370236244834683336418201016608382180116102009821604563929645008332142990097144825014388124929419168166138164474199007970607450354941735106858083060314933807468545527264363238193846998096341550587364333316314995305151320222625807446102904441131756619958009068688706302736386569892927868912556080696116627760987178243658558858079836712039825518657598597072214100950575772952325769523054403135001066246904043794363512406230307325613009869545690562003273722669610953031780571908677395316719735447700969835000751344574220014020475478866330257698086796064886118239572021072395560611570560159425733457398596932400889816299957998338244224848845601910614975960044776981777033760875877773588642672009106260053574432084851887957260368005045924796355158389476920165498251739396252073646522519305252693675559791648807209237194482871290820802306842881985420374476844872826820007567785382481805166678154586937284499893357656346909983749909035348282683050809037829502077870851986486724634733279272756106356768495078808813853169186740812715918294605328740424413120633476038293990057624034651079928088255423578162383556936998320128974764800815102973301778866822779858119051099117906963471226272361401614932387172502077953083152641444593988791019595051010777632263592466075687463844871004706930706791333664976117158934571629109023422490785536541616541995036802458128129809119345341607773478170074951789641337439184427628974962913415541889983067987192859341624532772527482837937792208352871534008483868106680946746707245423153624567521704533945053604144850732090308961528981008688667899999576359391045838251046738119334977570672596151739294012024041988849683569044181762614355386030450640999943942972987934634743134727984918756865080331124750049650707429973660641411383205483698967813951031792100754124983078299149517018268955457667666800034515994740819496895196499109001576027413667759374379551413954682552441781755283237886333195278119795405868623648676867974150560704604040016683359915106287665540564542969602892157496433804214442330995106604950096442590123983484205991210313264197287746034620071943970202563848551353351843146631182371494033836273007420278472253825212734364328541023433536699844138601947423904545204216361599703965880600969124151400279188732566609306836446583630085225294583177871341590951681133777383209615995672736910105946327025518511574946764127538812727437996224048510316614877627817825291850634447498589487381051008750558421379021034754432745142654774239951819986229180308314711265357314871464774955638784362079986929205127521132975215401025090026237103582133712369904009264818271950943067543178054907484646480500589268919008907126810590825939465302519994083439689436386797696583526362886601632467215661643879844750366234541997757156777352783619799182715500069921955966922517516594242383777584877418903665385338634518333825317715776174386360070690717530208188076852531798194477132565864393341694976471938372345670755777082470085425569672734770449177440367968542314388995821139491659672167753940573393779954571272118799239010881721724804190548088793235155802269874523037077279163031968228458390233436637257422014149846916755595859316698409944016563978798523563089386723599709458325462765844454965305588757133267339666598624147242052443808859611744025098172540781769186692014809546649881030509718525917335034334546742040401465983027256292940170723340671261300669275488325728783075403089347467294936138913606569456231442596214681461906797895873013252856896207292125707504391886607876093932730279941670339165141520677659909729495039941702278632434808120022612365403096212317442094329874279799456871273819084022064762064184316238905922966727715880377359935032160644350761407212445830742880224011085965523141705297443102198375221012546546969885882055953447859571639450397154596978871108149027008061759211559798063533799597507102260156033389410212629788727065525882368810889960548402591438170586681315805435384353569681040734352740492624598900806881102484220006776932282461744820874073601490500212737177472767378518717459828055796920097597693772825190169207157378617994604773218717321492682285439032193800078032778065631006897259068304461194670310396012908474523804111511976451744190399426202114200834601475477008465033543168385762114282546606024710343108729040068800064373409149809459497384109056076375351371573266714949251906198210819117746165573851167764580627071892886381637322828189783546188637330941875901059697670975204647729509701737439366275162034494669312545301524416866310811014464140451025639648338685866885777146198532289944726607756084975166995971246145755816367246270323767396189085341615189229002943755858733244146522028739876511914587847222735034717283517085477917035851804965876031797667984816231188995707650508158846379477498383977871357622444264380043598613615606965600786811290507652869417398650491774797835107867749705434544674422722516097884641493693216646485911947317055261624620191216086344535160259552956456057148101111101921341240950749869748061386457351847073980196304313643661933198720052293347266411542145144707509945006502901502034730365260147234000536357261698301374794596403850731547510469570544796547968551325986534034849620486420598962321035002835861358614734735845307282331554634476135136363291780232437716007628303708626896859115725874815038569601682148154401032519634316183365187148189010492853733598433280810052910644653847997698550436783899192986547277975413306833904345389294379146863598041127128254602601020342585798771351116695667607875421655345086557206749021992019828343577910683868913889632342953503875875749133775003851936997894135657711785579504796881580860440466837544724912669123458073286980614051392505622765684540765690862566066999645830246040650245489278405215359381663674447528614161269151241877713815949605008301454094880512434004512575856022256364069041004865918541392357809009145524365579884164451091482150155018512837161114441816092195627133040423743663717083632803559140966136258453290090049088403291708336587924352765016423072768961516345060285477756772815504608785851690000152150740227313209728315597295953017666290861753656481270570266928732718775144007120073228345016454043618242062983364538149853700360389728470857665769161228763092324015080640734067832457473721859469001232560606339661380916991379673856752713391626567783897826233183711003982608962477880906078357077300905541789336701295596229074749910361443913210381337470597104763902559373435850300526942352659249513389676816839179383502906294105999804670556792839575671739175798032519983910921455272913427343628545762999244653952419197212363366361883042798150474891805079638191047869959458252303473782917664619784712771046369176898808717930207335169015367237291723272761117038589970948817889961772685556951595172720277743938492879887629507599279025299318807631601972192629342334496446511544294713044550111010903746208971525554999079549963029000982644588266355208476887380897226841464192742398200016682335540268769514266007188200309455664915686378462017072719014096174469610798829129181412167942352997243401591467649341483166149118243869330337504379544419755269723632915160692974223247173092401573770212416871170374767173212446836643690933284933346149259241532315192819691296689033356735542454045936892153176253700493399901683863641598936644026549249316064951065401264664550157969720336196489189291396391618212043956529632608661049975378230749326081236720843425514069011923261787161152915240528764935703712204043307935823667170706570347206586070163483570743842748221704697641195248452133319133632099651924943576453626673027524204075769443562454993446164183135936209814126720664123405564795423831327976423066038397516308624708403090680634775074225556261126366298686580128360211066177198702678229562205614550663398319377339924892774763266947964076698438243992266538102677315725121215813080649122035059315289423996342510295765660093472286520945052155906428857551143272249561468508682401190461162457505194489504750819496208997021279923186098098235183910976542769295265247622861536576637521130357949841199872973409379721916646298385084038284523817006506194724429685288388424707469734115599059191896041475493761387242150003302800403073374387693483500989737576297129890291281079443769375757689776749686934810009430151050654599763759618336204998177468103963061356763725686743018051453493947707966939983166334545822781635729125619385789732738985488918775563483797793829366917368766629909033776718605903174260256613276968523543550943770221457367908570067789474230521364912760590776031600565396251491659527462731677264025905224847616971402593864961138396192713200722089803017490380106157482005815251873508762727597960263458162270985677813953994498582889407851479670998456164713191723400736239809830621741144835413084112192624697222523440723698632564325667067419671089650455794624421453942235504261840653851846186629283486137936405562399681780309084571766431082603385920510121079689755106496487725018971208030819154653231473507271932773846097215912739813391129973012840976739476063662933587373277204787142796047355575250602040069148077470650743458466037794435989534899528336673056082259096636039195060264861085436744890065321727380739131847681683455268820119724575967724694297395524671502024681262782593828333903389360350812065176873378907563223260708136443087446855136418669181060787206620670365508352888920189879396905300531756097880512091742868215435737303464414061011921466816733574123714474308466319700187030302784769569837276183276522260501664080704340859765177438910833256785796245861745379415085195468474021866549207525941904118251130519175137439247746684395556309771595944573829184902906049673109688446422267329046364602270289576832476279575989567760939781452359375946294142904016833606754346268614259992156186363786042974544291593662943252792071922232505451821619970879787645535333148301113515227644508242700051865415585096928175235364453738945343514815767987025011056632475600309398471899471620456412320728187117421157890335586124370813227326697700184327961084022896722820059418320663428836175538450209136321339247452893378157492886003384205478503564757925899441261378438658286433456449585530671434522761488716163312932747102527096496118136607653392355051220400459739608729159408053678453365842949754285774605137601568984996187412568995438569444505040060945202143671845529747317033870281186355088486668014824947257838833223422207268904085204067308719584614680457255385127956282339964629356971193027405196944389844348494593820107455873079751838588587178166053446415827859107857660459547729697103219001130988221633812363947965507882464607691345875097786252027598557440478711114126055890118709114936342539191618967257326580895283859237484048693342616592646583887239783911628064678778599318168281034936413253216267971064332420841961557594008408946828589660716586637065233823686733296504027611068230092861251772996719737856167597671530229313237886926538094754537675193581685842909226049391968566427262582825644453666927617857545662227480338611555217292120256065891738416680658402785704963486129277117460602441544593060687569147683923623399815268282050287521533889805856756307213636650428219191854261449114779920707129339919631605068276513653896224004028563133890659978917833374882164332634771723216065736838774733569263256880143143149762277191825345142284990260898000164689425287522525823807164850786988140466196233214729559064999127202265402551104219425632641078816586159055658002889468799109509796182058244358299797652895745399656539855700505717176468496244212008362980565630890917026421280741040865128622967887166211514889682962811319078605299431558900772083289223787796805060421851528769887952599069648757948229982135242638960097092791294511197829055647249556290897433530225757064564236987390663035136877397894162846809385539866114917941965693777943856359164194239626798767904978603849580556367874422950573860469778230973256903635973539018918173873343136718831075707832830258188822765027697297236043529139546527519741792048821577793087510366618588224053631910029393045123596692034147728702894144297782462268758905721134323963268234836991626644733159486763925749421022412149840671631850301198984161989049936741249442217817643829614485581261614227248165316088227605810284756987947555098357322488668132989518903560598938471307992910214193602950933675957526443462539986198488759751774353492293067294535051865081880705281814226699324172939970981412106417866355525952757938121613254523731597096746695309672120400229432117924969934205417790687898279608801086039255575328952380259089773777344760636852234916072101172280430150837605677232229307077887764914789946699466159496532238492661121575255006480643233411257372959333931390360766864035009265135175213819012478692672824872825957782912826409781506754025048871244127132998461044866523517368928115438359589888720553109182017974159611611886367825870674010590957969072853711826658644811846019909917284174069185736459116716637640737729698044992746306106378360350219648631586072974151331714219372202763952262658673042103356291575693054285777186315347295911890603960592810418141456381790401183710574909421220297032053457706726107372901534588760393531565533391053554128831251132391678859497200796135962439910923475452065610979145188879593306058692020239688117550860081883298341749209558984880523668473781620612020318056034357973395266580308373272534939623626368250794342137551460308160092168925956942290275110485962391564968511042355622300246479390650917527212306638827239695222336812967098205573746092589322242559819290980327133086964145037477852646737188809926179396396138771816864704728790406339298847003464381687659761144560141930125436952742074944533078463163765945980884385347034383986650665938737468615817001814343018359425931501283573573544768397828862723045991497299717973075778213412667443052589809922529814811596569571661913036030544490064900681464728622279064591579608109585740016509980668454557275005997098273865931739961752468542169809754959564886649084014931559600422989448919887248501959907480091869387068395744443328413676633982435038931986168754823445551704879844847196925261456399626514514912086823113707092925062924260590476528866089483892443797115551076064629065020553478581284587397955559629067565541562424588746175723914170456013146869657592414790366191646842262822165069930189494508233067035487146153013984618890962228722947925807516936873597510393310314818796477988811272831427342840801921743305004495042973884489917681344152677236874561431866270435305021906998785939190623597930906479990442395664064345275437616892980144614416674841932299485091210350130001951893994483054792552685438316681591482170657383047611504273683590376115046129393412026616295243215849794669394691849039943804746492970172863230947290056513552283085446293928195718660734589476310770326360412715619242987352504026910344268222979581373010870236920571900558511213247776961757575697330469757033975422300221348784028951171799555839359095255489800479804097422076240793441063675792626312290146655426254870844142431999275245879730473661689231968507378282570936565018806454461630516744680959748330108707383745675366649205103508179165585284193586089466728727864584123615597244570311716253310491405022115013534762365010877866408016862094151142906791124487753181431877205489715359288902135963399108159002216944719079305027698028273185317694724414176129376897794204075714015582613772745773773315086772635916993774977360140275473398327085660837436436088524439100998320604268310135599948166782903700812139401810562467522309416769979160491200741057376004471242195796435298193710904003861092157186679784353173452678897182321467473194275315839607332318845500850891808778469585509741868201374500492363396842807081983679547023276427539920116234349819020705450242318501468506652520756968227353066003359933048198582408253325895073585710460365368921054671416799550417545460795390825445766866937840949267076249381455940877470949110760581587154488257192762001562040815475613395728525998101327582944114597402530195614696434858605161894030078634222713739640110661913597289748057826479794268105336443035851575909521960689148283005673790354397177414839598770295191467519148374224159553880494127763716595777414333903148196591155641233346117451860528011562438333341891823868090797306113063109319741263357389548834661263114963633032160087394451113116003438521009772919220047240196329142668725783328475138129646498617397587250524643995636678253869778507153638723785371763306604098147974851766294381198557502217671613157724199342232629295182038226390942365406521859330196879223813696187654807246703249902736374741837012824151328177542142373463934372966938279177712149482084873188123819130171919458553821376225378724166449316440250698954981011676143566940613219824685510323914927547884952165083699339694564135576222218044501906052357608965911165253987236357484548706820394990220364072397571813751929674076522430267669661911880075018449096364625553317777691823876203365264005917336214504852316909976158092641111193569749996990635340182009388391868996570893667350903404774310735342633168766444602641021632358218584458803053647266123412330746181681579547000530785130337905185926418514267017405291476634809357991822385573564096128870377944844770061270920572965462762276247933016618577657364404948609868635011581688709763520516204886184426114601190586428812577845853906200309764799944860712159820597271563534410647085800952661499996832433202648946383291139978710937742610075598716825438945048524313744863452536113493643840465756757896482116967554230334679551547611571763761199097077858338610183483319776142526316254451013762363889532935710422761664207987399948969293214823812043561912365831287937490369018516433338677149307174741908877134845039423829953707066993979904040981170707680290155867072009004822124568898034583423615275095915801182730719439249841375729750850315084185201482611183799259676772108142258688075357593705990565470377067082084958585869894089315015353672263355627448132440150391633121997550962949422440830328792194719512483271166499707704958325014189903157925958479728087308828572749241228523842117195016056222082812070026515971203115077791103941916363312242264220341401683407286136220670990855746196711136340881981971190674324781675518407627754124994582644470536686011619636902126776295834079513707832289720494536118037888574381515612392320125538902648445770740035917800691963883841792794153495851493974637443588121595301572595925559568116767494618973937888506299304729836428534541359696697751910651277675371869001563730658596692533253689750259106144671396380573107076575788731312589364073040173778779259066883864146850106023491564813101301677767821523130639560026204049034760921153955973101287408944251584638948733392799535248430151265646726576570747794629678203296563462907494801832109657131344634908015644280713766393559076001915219024033500537726308473333657194594067275570608474374490120566950606154210592310829708463073025561638628346982882104351740957377465753747805567956168915622993686394066082719076161488478431039090824172965852544759809841859249474340331828795732709697334973149912246502821832381421093512549417271860498273880867019894353078482406163526875996722812990796376636625995196807381093461354181321189752785028262760193255188638688022150744997034816932381957322189688296432215807300267938825904021453666919496856959573953719768904963675856761474426241795015108750412781013576688196752882181300704260239597321458444270489045546732400307144792614033467536439467058608939323263389572905164398140521075887892083095950469918055954792846599295296685075702014437810321591043203661280345345363576486019617582486433589133929139761411104852785077751260114543130836485231269622931921577914446636899240658126328335625672677697584553706543353970984483345302253999008350052044301091836350702433774243131120219944869797308811952838710464765992643939457462220218112531821038833489833839398719255318318991141767466637113070438117060160396729183765542925238939903924095314764990767219186888762749248025537304615987014762298910239970399628980353965642314489251986375176217720923719065470005708736440745784029358716448486433504909386882013144132825792019707069812548965361590939838872105320593951230649517966428791937914642955000911054748124295868405249879028390581769139484176057690019994406087524767780874269784779093256228210440194620012423884493860951382395290752328795356869817713989398099440531707757295554405387873357720129239360570742723635031323606055576284457873238151444112481636540550775522690616370583257885873064736877598561573661705131299529627367947627444910782608700934698650222761204531650625708862735279554463875686949142846862762970300356387255062094242410511801288034216337240711357678703565630399761704958963625816359918343352358606951656282898161333956253989835254320163522805953829335325969466900251793784520103980004993390924277443495701639168825738528138280400808479686295441738277426006541413368369718191879677879490845478652652202254665702643416866377791235023637164690802380460406935368087118818502063132369460981013756278883395705593256407232281865503388938902685784057839765164588613451915076781387422079951309207557926725296539303699252254176471306108117890387542557698552088932519671548010130318320418085143488189810608074843679627824554246085428441948175294181716595197228223236220003069540885288224205004564919015568422210616504090909907767460788425831211136208419458238423442105554699475320374276413754802515475337358079372212946145423096638878968805148000767865735664345539162209271793580746202438033899071904159273873550819446069704069940315609222678786801977551358195867519613699276618026118195544753234038537255720827443394587732379076050426605670099544725296431092689713811330918019353758587791380412995449046199070534494799792484253140900216999637863453687655193738994113858827879380073643742375885677143551021933313265393735437104986701509619358288661656554994887113157845157895682172615787146665000528276929611687758033815998941081713528862487441678905911632660111108186789573653977363528475159375262363073986083396712952195436383018236634553920504208385977210659750664517016853976770439370311213295851759057105867277774633541724694332617763786431658312685546325415305179028043236768179248209534717109789475772409646099096842651621295956271675674141093759686186338731286051012652244958314044493690875953839782762370145440249301724147652791444412596747975704672552523517661349161903055509297921144319559573334326773321852077503679629634309356276077146595386919819876211791925928008987198620397903216836585234834940210611879520617716538279259399829391601796766055881789315587318049616375528250469518767582970634011391113091505697192791408174301682308651632297870486662675540078610772124695677076429140551728986750763231011477354439079203179919009372795624176098180722922101398359096665919194583524598867110085399588163076427662937082391467148067922406795963310067767828515545988443983082646614393152870104701194795960565040127063583488123238508101934330589221459362317261807579425022823100581275896015145650358924580703659667608310958779892814355809520374810143028036690560635111065404592704056106459347067416028556077382705953477420644114790770576185873375042401641035057870963154871327748444572395866190854817388727959851986418742631022860800462194275874280477863950462554112143242087763693800464128346532361965266618075713343392837310465567636508357066641123658111253816441723687713014240674736502867327622743642995632788345217010929841815332267963859655489175186330390200672107786831980061288599783194961436347534950090313644286212546006047135369274456285345140085913356630715508354920016614546456755474421039895778202569595331954565729442429163498664335147390039585019032987413072479003268456379539289708031455277080776649614617913835945840538476582255634119179894351185982437772872600298231171177286719232709789114516791712301630028761631978139107885335298362837537578832983406667177463061336947288932598834934591770350663970684413990309882267928469943636581591666856542081735476026057791116024097283700133673072749144526202623182514494480562288798485888722216096617960545454987655815592633490777849595030675011517181547624623390321505602118217267064023417143701340558865329244924810564500969490479709794486210268055187998720516940803019312891790088998044594456493747731025167890150102433319682542061640266298116419215940395745985206839507653869196758747595193693129766314552281222550985865270411634567259392925898363865737265347965399595081275553490665447356629459757539805456936606322507461724317782191853203518589894977600866007588301755473477783682320740157400354225745642620236472178760915806377374933590291262653018933935308280923121742698576826663537672798200529468949398073799914608466977922587828967998103117374188988959817176990007201326652053172290068654088382418122803922386094766289541661853372057223572913930935304647533179480334320365639300298965766777949736479992336043740890201977242289803745837850794694083370019365497047986794042742279080808234936197178121178394816368926827800430627744716300368184659563702318243418639466348931971562642256742495555308022964987501517808983577319750951223788512477476254336021389161379726007663450877129626384022739797543238602958127342752865532739799526584648752896331722975716816662305114984762750822872075914429777007789435664799959598112414730382524977583445761092372908815443174872819149055916992813038222329406452757715799573492629147427935695479347360596970487993263086121727220701027536209879020406636290363570549784463193985156659479857536328736430440585223417729858086788426350626721611162213108807117995096217008141722972103394066355311474881948864040987395742774072396183100435140168008354489972587490766934099575672139044628566530037290280167352949302701912289996983641089506308186292234859370869956047532705055307120811467050419127458961203178390195695321327341533498736856430754284368778041144122003373300270175035173070883355337701568792179191767432088537212450640064756001740457202052494255994911230470256034853605517153667978193629594194849404647801547185877084032174440990920365148263162621561258823337294276845240103916163390166619398556173956980210054441472032513666356717422497398841990842019753896481656715864332413154850563828823413492698467659874303643619081790648229354432962046757889370214028009973635084485064663582437558022633757274361984835684844095539029578942646467916587987605485905693469178237985111463644889507477786193502077938017339610101122467705613871827395409970849454388849851345823583124809891838898016871861278802331533415467527880920043739727967907216464427800700489880365215350165056235689519531917070933512552871014000631979380103558281404490960349840123747937086954961153918478253660338587884806928244331096007030013505198206696527135529600522698238982618568295442736913318897263559121967130695994909332025850402438355255738780270759862929992570483844003995354995923760231328549968917181767263919853018230569906834341552834347269773297462827913019408029752206982402339777075118690608051412034842828021422940708376630353046777186422480957819129278829638188999217654246256144882488912742268399804718130578742450517371989356357364844110015614803247819399307045696616954606303199977470333028690886944096431725863314881334971665828541717799171760178163354537765744971158297885690685015755935218284980491038902830652711884048928685057236903303476337177802847538316852776290956293856406541694814263968718601217240905078761705366047094581934499396447864504672447149474022216578735142105605919630252495797822356122973913126545564603185218014477826950469244364238955898103898583679302522784679620804101777598386412532317943751664159368331052739913810517827419770188722572163291235385714891597911409207484257464769720707169785963567637361816581240462585589514343172666558315646689090985638745449626661291597197740059797740694713443008554142701632525791900458988116817541465118908957300630323918225726150185875262583349503721574925398292805431635792412115764427278908446825998299804445572269584331553445310212962419882794404244903079039949461471288119417358999906167391596199173063622774457590744157300154958394040119549040697096569680842235031990843975474176272827761467408872671873864941777664399303741485533239255129396550077910668852153348329313963168054498461659122514323101142169832112342855455900546784596931358586657086773444093091644039760563121082069663764777159417525059704795894976716142110196650166387927376277593325482619736410363322445567428891659220630615322970046795706404266007849988910190455733734769443263160819441168911894136631956497490745335808929597117418649962330259813315840571378884559537719063102689292401806733623389541702985542810296404286302084119889407836919777947020463640427250764955324166777115116782047762248815409755928740193787745071393178042043210595725421370276459902091836908924385959148099612888316476287270449129391935549896486186752481609116800157490472663926172288985556342939556866529035457051972767347065535999876288398301387350967234466785340352093678652287310428594823918000185748368339536879857682293431046271970794528594011336886485328314967460510162735275288577963483511849538098695049105700327963704711579237818473949204568914358050446677231396741832019050861032781654747079369931820375793464937164262241152553794962523640345636490396914858674584568297000933152030134073500459980398981763094840332500830904766546343875983180154576946946946646678069285288041593477889128094227625451845884647601914650797981665470258719508027533313345288221173803455908922206261022721218714184687876866627724845284296704364377161481366312699498001621648769547974583294496259402815667290334533277820197102800502495668749358967308136514270483969127440835988655544376333612850542811581417371623277066206804634917021360513488559074180169198971229173097943288618362721522978506978827358687919712915874186551640443622206756229573973130655198302276440103521278356980730172268641991072918036632353848468634750323662762315307950171635935486138958302227548340584834677631202860320646757837142815299276714659554522903518405700245661661377385169596969447333789845649096637413699738840529506041663369741163236892580449748649046730522079817369472541230735956127341962301658450993386272085185587576725625124387988768959981526979732248374892697345056761605339444258171548007744539155316162613740560766288278305972725761298881942424551547134460959017729576204873488678491340572503699433472927744688167270048994600284678757000115110954922646127372547438130776167104714562431167143133983268693018532436025031654857567885243156689398437577375486321221425919346961574936304806026280443709290187547922511949457804688813172831392099056193801719207779185945211285545540604424048167706106010650054441283684996532238801817800159798463512352720107986980544405205513959120086704654237056359287296228071957005398130135114367266152931330488134626891424374620906099661447565032381565410968989374670558276084376011948956486961676877305364405013714206495587979726521502005889402724990099238593835415626766930800777988409409263115045223111356487318233732955784840226921697738463959994340229143644454526573829840139645009706837770879177528944056399335415474989854939788662062797866380107354666449509355082323956466115315807281809165082745360918080555559409422764844181270379766553844779572492016340615427045264751761713412310379734759518887658442910471726391009391579758635590107906685752918372958927702831825825568641946533340023406284790997220725409464498428636143420624932105362539362161402015293667384625299239180563339783234455860606067405460877367193975312930185866663888197931830567101736204936338470517702266891640966464318984295041580063411946970123913414926493242493652086653477979229773466220409483462880797466415784035625382265833345193393347583195714698293821438828531180315046479231828509323497745195727742221711693236900589964348059041700074539856194695803034516542092407085423772180418540461935764267785037973014017869916905677589851456713462803908241847925040224750979905112576154143218113350371087079875781462394047292640517243044280488842433408319042164369928019985787773370958381307772551393488257197393696382860066619489987706152747103745112475928113429783575687126496138267692405591637586907544559955790284183378053644310721137047502005818115664151506406365413219795792336051030958336988951405543826059367615221085284186055456920441086583325797422973645681291992322790334593641061224293232381262822538269580848899042949555264862815838678664126245128553624762858755856013627459424885068635548312301718263207447890521206356276196197701530682996533523567467617620886444622880370627088873420768062119197960114790465686983377386970034405431522002539329020297690782129148810945179389464132260474067398995987696853351116448167129150749284861212580674392647966792437994766341523490853110433644546177519331784406658647026696120714537655947710475426254349976870052007975687433320818980332064981493441430164863519391644608306522450807816156927983526706248770080333406998113195398755311458546474906445806198063832480450764123453505075521562897403611724276290122002922325725468937726168364510635596102781763755803357249827820648411930456828695648504721837400688378525502703892508239444714333751556425586592006083935521724412610730413569516220705122171743300739538354914155693007587659399300389739744267195334918585841608591648808596893665102895298080350375346339130823735695855246044942910453031501262527268043058756347576053816149953423245576165752447997978153948368487880408299288131167817130281038686649113421703060268655965402311623635035659941657748616140621904053964984442388225691246901394968640533502945921121045265433687647236154366585078661093940713038103418919302084186177968097371884147824900693164284250822504749239628220099524209454600293905197970600944736799373966621929350173881788838760836695025061552495795101930185030330617446763135626222842876558844017202551583121034703061596815821412987228033009572745628573428091585730228812685518626522174103473273281953474427790029939167556805920539846768374959603397080930204500711522804471740891251807743521077235279676453404743169806466369817301167766606381083353839666588465798600917966642257172531879366746789172204312429264118311272197620348463910725027686425608340666121725097365373780177583152850081688107736764621194034800888790667373449934101488565477612713117650089162985486921404917538484021925461417316106419814061111477588286130351049988799439166498090187232519260042816730469599846094567433097331190355391790952091614597892080181457283388258270448086848404685947701164160553890803120018997292645685503757706863144597879324081955858416507138298457268860305444699714802940699132624069079336377199181012965651697814570323995979092194561625837309201905562754516675513589981494114837585493383083867009956567921501834362297634279707051364020386887499847678389517250511645670436024227627892584667983315110477725769433323740732427869295645592385905731851717752661714537310002400089467957798710867876031038390442681829662487252615655921941224172634613827959039773527722171228139834989281222004930522458626753918385382796335899467432642408801455530455542015784927330583778686320794022434263107187846336624055635779831670592819905390890453923135102666434258667677649184227545248257484555562620059390739461667432227355711764696745325989102553022027743298087573447398509408393250105925615007619226762127290544560623541892185607621648838685436826374962591551543093620988918534830053099661653496190887578944522581501894776150085698420167271322211132541482568989732406016864202704815170642055520860329181101026784340990194455504676553959590959373608825499692639924430184095414723638387149823889845182400260228880403459164464834323975394290391693272278908509367858926726009658450848201543291368266265320317867224148208713490121933877480992232306802379925191728210190784386092640546941470313589763315980046534054732808505357604849929546922379788117371100407776425142473045171809657694885026779141759237642278606829384932598937838306154980617306212883757752568580120566320138073697525577735223753851806225097591228708214985479771102133878982975167443920298306879777056434387339775871423030037747298775462328830905786663028056052124832545268202365080326397416629766053892084913750190591930642192605941529287949696330295692255466252186479712059425514089013489466143966598488487079331794473807594428112083132409177812528610659074128693337483858947594547684083459076770553885608773049107696152234078813297108812853701831146784185529294512670000730675666803899274622139120067167405454136061593245822931789663835330114806662680941287544206996630246137176432579374087265067078222433530870936154383761679458844543904992258459849732643451458872348544793722844413349488619674830792759264756791221913927851037568684535534784007425545767561044398442343263592659200011612717938255342474552749455479925101103325243358910508863221986461309019713876907809191880886630091355688056003892838441372809431715953757957881818176200624205340749936962281715467851237907737146065410044391268032828676576443904121045173634542621289650224669790148011834154050921183193485314409388762002508294002913701575013949258461523541178461205725270327955293408634397451982279262560686978875084825306795612525149467966728864924217579912310652327028251679805378662829900790585938049922716991949847025933338313250448303718732387937331282909528723207920062166510739696874375724265598069129311011302176996284126752649507419873037096143899728470886741519232668139623270430534261234538398052256622031715932739569348349939251219249881169522499489066539948645146163244390684891796848327156392805186854772551569931729716339250685710065861127323551528167532637931781297958414472110059323415633047652140982286991736043105892241627380035717838556076012175699411027869292117859529434437318713915409461807499175204244709586389128564686130729670611357912934793500727144728880321398227684255214251014817490702793369392295739943195954812682027504635897680690740892390568122059755380354341480486205308141539740263503758135628712406418047232261089691839690105534308377264876800097777733075599729457039608890743110093744409916750933883170577392502558841221530047005262276523612124505468832609211793450849211277015123518247618324607895323978620060466130589516933724112735767447269929911384631363517146942854377402349629578638841247722926001555459718527031165780497196958349054348313881171889081458482806359620610749364440802172853747086220265843789936882048643305447401504169485260675420181737602076562421520553463930480166600664499995463967655726805730113460465188761020149206710347478607231427353875230225759501032537938372155824763163188625599457087445682659216856197510290999828750970144668745274313943107252619669873290182268444738571541810080559848257478948090369549922923198304907182839054167791019358223972263519106572763802199306711423620536058233537574326316482061124864530274293572914830374904383623564680283025191370546296842901986857661458523667505182187840760752047895935810851986368615721523727247266051112562499876291226958633226358668471963853432992791055911570013621575578130133087278445410695416022260844672023684116122689780427965565902839655015587692270837279649315761331381012994607649835914086085817330669150975142464133112106684608491886374015223359312278066143315807350704206500708161214704364076448136474220522854881818025618942419021334457564512291461411345846724789514605573261192374369196026642223498299756547191486782395228775687500089916869502711616668818903963009716179244869576500143506506689883896891938102083769765842972063097424502811010165939042515726533787438532132423406227140096503131234191620385495347994265741472851347510385162424807755568525106218616817409602786833140044219760360438985312343503181988373169902276369755704349904652546069007027558403919035978048377890901521658879831513365131734726395356509289092679534446750129006271139058201323416773115006462800797468264403156033676883114216532374361997207287932917601881397915620617952094581259523705898205611915785732999623327411650573263295296679295773372780981771430996468985864409580143613909235714935205141879431526485324821544964129986274738104918031068156303017948130195412615751877445359561165280061049364998365504356896918247151358222893663773735083258385827277575418298597195079354195373703364142900757826426481912625211088977733294775090464219643813921202383993440059371569493653677823289466648313863082759691465356383400821348677872807653790689659144436123392180809320113390903871792163281667889034359094214602103604295721753089348034301142755492942292299813835817246845277851399757367039859435637753622484585320963322565336659997240028437146602926738755496855138691791158447263614700224769727749701427174836661100769066849193746833571735595412668795302343112377388905742863327894887516835372940806374255568332910879942095242247608843123553470750969074324130928232430709731658137474744010659388113059972177384422115210180953535021863543401593878458216932897740298159959263907728712690696916379984906964627142315683466618883830985077353278152210176044256144477747648445648102323767565855665325878368471626011097927326033261065261945298733366681767636803185700477835863200460853070814262234013868450661684472195992714836565253453649384399860690374678056978484956265325068571732553055785426791778248338227993559621955836437266863847519761608032126671200456853252643554757682365940206829318365635111850185855128368305061580015117207136810180486940121347455666939170008839662366562620871885362779345607358796729181814889378639438431400642591815366964354539754241933496710171207094249687489378742916323740061906601230596774395454711161607302228623026460656859324667425715355384164299674004620906268452218811662454673370845808862904678839899628925168135731015504080805558652205707197659445916373906772498162562778500512087055562213090756763761366411539243857304653216106140301368221100561911848284530044541947019295689017162131841756107194556748783405433822832956389397189999170442032063142071673359789868807927509208123085672482901442462057445762262611263095597993864921866741837850783226887059042602284787493716332332802012006272852020252391810682903628934483479908848461470094569767658739727131730515058045142997621939658405561291584678838242477152835076669792943543292468237594487867339250769241433657915611931690756183448454883252724746610001286537803150146464951399422198960307652731971149953818276511249520574381116376813842421838429367593426363878827204318537958129304109739332786594094095873711454668693819280471307117777623625043880271013218474715620858476311727158157712023291627654043472253463886630388829837513544164048204196069953232146521517689635014161452286312713453032737723030887834818002314355057075280159892782178452006802615321089873437223660106539314637963789996097378514901321034815973782858044858423243697069151391687726803472714034411151749899352946958942993763098055955839470407445037467634532585034429457886000135335361691912006693635469394575465249626097928481186747653646355006945932500349969212036211204927678289911525990020621702154448624038802988263896298007622503266751574057320463701512799401754296595809584233911326004970542348797818118073496436603759199881076600825072675475704644082088578427202811194660444772271029674632227667285186722887733781628648062398021645993222210590367120740173011020648917016091841009748013929880833747949582555907261204752915334794877824078189507218380329829662095447176323069882698268747589023278872706911390069080679672583553484518091484213031016395110366414850447502832579899735304606031187759473002916332648467136901851380060151051363800090822536491804803079883574715976438284792731495350947430313596348884453772298203816535546159820783126929947238199762870293836280746436230199546253873695408735459456043751899099346418939207792107038849232259188999164006102184358676918401713799372973511451786220781793055068878982057929687485739586482771703676871205759330998274206239881448006483356785595939940293864916120627765291391351017591279227430062990156305074631813579136743000878207219199493690121572938072255219293550285701623071306635843455789781172299441538931316818796855836874184699731488788545368860394913690877889041065422734651950661697140231173454652325418894524967649323551172389504734415608687703338307287008526094309170409638123424706941697020661909023661361273820514944234160884293207315074557899386130907223161579913366307054833495006706910600644635696262106078974964312158459845556283938307680732677543417947715196193457992168164229413503200150549322014463480090788409894678148973233766902848858106989911018168090200719655314606769050842902453515456720482679688362096279542284780943583292011428125425768201113504224781455652165886688268839144726722194316114674100101088088744136230962387249607402088609588298763892129377002140328927076074742598550446709568780685114002612123600139553389566744580295332761585616321791287450931801905935177521329427049068028577616792651019626932676216925081804957785038188876770655174393749631452660041927810543665643796336273308650789096175755738479532600141873306776532089942035426524010104716573947432926328797092787441198243011861750452472874687953596774532792402424785706788424762011114739218378653124101142805282630720243345208946869105914267187033972482281663954811844722294549699370053240742495714846614205396831787655491852837003431891895219087613713499514271239859027712191159583511753128686745272180395991275973337783520914154014901177619826750138924386148551682066005591778870998374159062956246512597322669239608212760216283628632901546042683101108518271955996440638433658372628775873928988978644688335120295710029892880644899916705272800613181069318890203280434509471774295537680053543251808689942255740086917536098100103739911913802897883195919151375605023189707630415767266974430368673962059403542814105906665698197072597927399312710733723917029753467357594687500617629629534418219724631097874789810253653064543784565342485043948048424200761527510604995065105969389120256003207457230146104282698295384028765789658637826633722201015969617051132275044140552973035358509036228274240720950076398610741270440041167232815184351376425289894618247622731290572666615936445045434061509488038484112010815893461980417394858067994364745610977507318394454805530467126516191022371320500844537975185606448933251904523920705335982085308050891445485366657253524938696100677363518562803502318077646601371115392757787753693344901698627812895792886977601123541445867357313904778564343951397182625346072185642417764561960441353215514992867904851204262097029916954504222036481283334683217032246693678796740356887031882553611453797317976695326670747161020841942155700093403097973591898524168369193072206293745031667155502474235668954683655664170148537591190809283980715133068943339593633056053445960482344273624069866986850066360020471319068415624289508402767061029343306215982817046146088134882735557944580129860186021773000641884909428315586646815247103166189198678195946991279933642809609676455327213919222445809307936605551886546804235711690267881870551489312181681165640275308880168343622752679094822493779924535364752229100288869952505023044603201899791482987313900671410921385191604351112641182643011388492508065298542858790636688624612629677595041109490043865268460625955919804779299412536985101032917300349512775596798112778083344729964680307869769990576062080550811652411981628351790492197120937059041450351309939178583927036830855596368449854801557889425920571470220679407429089108724235491547764608193097839592704014432741473254328563007258927896784434572641454338721768289983952169012583544001877446444752903575677172614653518529196821711085749274195766560691076122383448302897272832323092663744263293961135055408249145303035007047189302861655663158523995403977987744861743177933006105778369794276850847066882146547209561094209254813738025064014835801922121570818719106280818663051522033482727654155316970179543486286932449390416632700162939987310341841567952063812782866333783958512282387860858803596916387515227495445883864464115651939628746838847846495486672034154464216511942489842092885338635459196579414338873922006132604532887474578791601741891771926471440682252330587885646384097706973083885205364588217367255469196534487857464126505225307814539497679506527033367288370228972517333918699997983064696129593521948244591121233778036154151743708353924339143849615103058794996259677438336941988701072902361131606894537519397331746639352775780865337915298757450485603083188745460904499311793570285823357581878646773037969576767388951077524369080365112998575680227531570396463905292118371630139564521728690773203337585608139370690834589568659104739954940901027433796619262899412903879460398361278159629658826365992901047655672541100503556796084835794457904866346559819336288538003759102870517670264276231489646531939133476693886511193715896275558632394876255503073749398964165027693450203935556039319640355707815727857518235076156439969025347559413046207803222408363304323358499431037082220045709688521126371008881800448743748049766579970556041673813286051308008753735450220148462588795538318429909066383216828699788256413625024702226233803203882005242969864858134709998867822680366830378237665923615487378576933078163201543259250952762159695362660821729659409854429734466785128829839322917913589672429079777389895228239972022793254658221457195399820543716028275471341322235217567755648154539516222814189236715070348000264658727406619645771034228428991396691392164330496300917823355407839499108972819879460630576349127188429720391619321070344860685864703499957801456454703135367490907479830104010139010573949831041772097436146763414553176055642557479615961043580619048819231104808171540967703399822715986705310624409243598283987845374672471480476437631214178888277582794200651180089241791189044989026193060665950970899803161441062496759043583873635432564942760427035803001597185088974893485580694316649529363487283114931159337228618409474880644545554924783150783743436349483460758511286358574202693936180821262866076883935730588657902912082252498822950173727899217415923368704848576987150621053354108370964030307044557243399844052004316731533571377585382366024305210035131107084587739134063808917533700610992901544275360911095529807358935303898961465383062770865313746448352211328415012890637302980463736898358094933001531570491659116792626585153505245251280404164126347069411807357039697886024319368765740988148926890114099310753188049812127181124516301232005404479908121140353159725458843103902978392540869427156528018103424632153807896204563030905837344031702271633652451207458420245182600987152340612715757882245189224187210647237176941526309462902841014637819151391744059514263069364945471840540306724449749877360221137840227926990976636038913168120779950301115928297286676399428323979598056609574060982288334609896026839255761689288862782244334768140894768349845780412062513781890109159423388646236408129967303618996010865363793247151874266068407005214230245384260807956589777558934651416437095655828519733179547949436049171508920574383126853748625141162314873102989093949434050149859480709287588926062281654440396274603464355736937716268431763106254297034602775388896302952086354837357601135427134704137404605825708020771478744042467502169354833046527590650799416733772789632734869396037763949026682156819061118646749090907454894486857634944983012775155967139020572654996564129613906771557260470142356466815572412980127693555634730232078396668021044693937064714703781394450672886925207464622525097166969651935553766758904993491624202051038934492486735797895104306826151211943318712936857406932809710802809697387325784349490358751105718805778179649573031274822301004405485271689170100320306328124479697121470147523881897255073300787587978536571274484749333266164096477560506931194407852072400923544243534928326379991719650039738543661328323006183902720024584994276822422478277029668321939508380464325184210024155836986928941431557998393248098674076771451102465646918463634580139421970735353147616278132715185933742568869974303453899590935982269879158546282480296592420432819767736768511849553460629771669924265437444586167362000940421946730857140211438201258587613752892649121058548944337679512979994585947747835936189992642426867165973156369843428827807068040901380263489520326576842378479945172148218939884369355771604005880863162432725396474773257383278710872834961844745938421002539382032146181286560232476207298309551400875902240714627692867074730872669440568999015632323625471922715945770169060162671857646880391339553142696631209945171267412607579348002499324716321589886710504057440076672500369259272428431251452897723256430756067342676179619243599278359662820291573177768385851423923770017802857195188205798687255755565473752608788597545243321971898357793738027642302625472797428863517198813520828885131830692029184692021868677695478526125401356064254969164156228657463029814349458528043789818464238805669553468538444911942950046105782459915847056912568287002206909939834370695511549167657043131817665092531783077168428592442866306942846818948831789211957662831598650123623045585355902363917000479753486091452143366430531120796075373998514755471455056519820351745378164379572468255459225424586888005557279833591468424520284117424354335432721966514274738778274548597624350342290798763630788757535753152201547419883814749682586291451357220525036355604435656528793910459667886817987114908502801165198874717685731726416292894855913953099996659088786603613680612296586076448877652643306521958823579105665170922137317864454570407899077445352415805136883574288509772077178540381963312113615608138586834634619795051901809876847469157659084602403845413800243279225968730566518108731792310422728659396243395038448177422864798320236678107025762646205297205680553699244463734933423651836242331241304841910917750025518829033576493939913984157188097435595239087371754372328243553003157275442344795061525255518267215061675718220285696162337565646257250315234931455166846879742927096148674540574603375139397631193171918439459039801640000744499924432598122208824969166686379843845836845429846844436797474782277935181751288105887363805023189599378177310855574610587181885413708276995283821153543904823529527485512196528392890167500768439552600162838142770660538770725229939692739557482340627241422529942237999654794313145381509310053091583851366702952414743688071058503677848644298043184237423767884118998738083598584089227058839758969123961654061433146999210857663434586550889515880775242223459079547255236653002854781198248794765841285250131923545479464952348575868290118952975495670288968973667765162815803782685123524131857502106828965242680877014543569940322976725850209775216093218708461313792697735884585958162029972047720486505893981711794558526706260112905822985580762444703210741464285359769631153387162630733255173926869505122414996539807251913960141086091297844717907665722477332122154350285187052404988112203226682251455060686535867135707348337679601819043898319705765193057204135935927445139510829634118541476908668217278437868556776013781023680022340512583432516203985661297549057604298444683160365685168299046588758893448422162633519366569717127805669994578759569761031047166349594250809473239140568998343343113110869351632626247426122968798017753907290975426874803911513294360788038951525891131866347179181819448453397673795792252427668084509218278330528737634548731514057710012116994110469454612625718041348407580236235807672211678790995004730842386028664209232664237099892156149309028679725614521263232927473145979302657415782490213540795298699063577925132539996181553025251794291287284961074775499044281336012188124819348409032252290143815242999666376983136426632405395622832476962464295777315029668155187913602681250657437492435424130570766224784254068718897710581896986840864242673644618945790628084733873145985726720253031601209253287495479914318457176714581658108523317906245318023712875167052926378035399036993147006139167680603952727629214583662391315072049118607880342047955778081103838157047860414085235914035234317057811731162894305706265183889295382685820316630324462355584398621940363445402789726946855059032258321038609492851739050540502932221276798516970055133539650438519959442446433110551401493794398158095692310180324450730801168976855646607105716278455274905504820980713198237699499866004816679261001473194170710171442174262899405203322539804040323304698963283071923149638170510564432754324938507346976607490780291724481595647935728479413339795034355102704728323177047371991627836405491657892289948959648648897473259694683813891388531535836393238887671792585972894017085721896178442807882584354587610611022420503071596937235742193525893317441564809625014505397467676749270875041841641166686642981042737042110220990642966304190109890453106233151680326152943193611807191887227394842293531748144367582972083731662990790672801729303726062899735018246663842580041074713138942143339843406148029956569066485599797654686553599882220690587044763886306534464603358773754189133593808910810326840630337464868340028581465810950818413520284342327345745284229740222537157069463971048295135963693292347893763655902594352855947642978863148669011687581579337730173933407451498439109575968347527979134253619879731094918481631349542451514531035854468083452169541529097149855219417534596418718818553999667409450488953274571160444551905332207689592055237973413416465601205887167311758322514017685209498317327899099174802202157649665912341005873726178279285894664957494661939846578948696639134782647907015167226656975477910638750209883575633613594290285095855571282256130219372196911920970794020608777176428817255236477358813091551920266928861941422116288209855602137050026481360971534138361545521918666326534253348113592336195255462784192886901208329062705323877882479423065197165171118765660185831973206537459938461078293376283446243231210244645547764225848405133756514796083474663877343955053058300417273665834460132379014418864758213967405744826300636410531827752164983890601933500367622708399584461305190489433090846470488704247760166353016873201725577808598029182422122308522225371799240000705482053025593359297945569120308019406482577877667849673084217152244376256468385894161454601339879028869696753160018923477496673144982394439990962223112390015643598610001683393718185977382498243930932806582564416436011334032102901814515514518614708254161900144772296502625083058529501170308338438321320869652446641938759741761106693615628328422267557514826933007737558113692360150142067546780195200904605209820035319270108703107457898929610575750069408833622203782861436927764233301417486975021733736057051966887246229195721737136819284371439226429767262903485219740102725109617568945991636056498212721914407151324516490609346632890821999865452310114924766462557127778886122311777741990188943439449682514726689032609533274599655241817252058993082436969756903080665171432130392218165562874234903222002167152583858754781869467945143831548160029283588199836839799460455182594580852768465502759192724935125389052283295961238250956920245591490340116961497891805251629728258896404457484687653926453569389970901042550846719456852273091726600069265405684812864556408008632269113900749056183257022378167831289965428100722650235249394290456184481788469933269498066291312445418835438446073030452808671220652039054406990457305565915966398529087649544710778382340313664338873525437013153949717476428745561017899455198169225313161014597473271275206873023807369444036043329428365228983326411836093568365415848701511899071192088368769142961247685802230851401506347109766217407218981034983927646975644957417434572481386132236099626623143019581535830174636507838924649428876514003967938272765584715889397406982757054906547838372252727057324405746737826541592077486352356455402330164542198808431831379473906183583195173908472803516245982571392427290184848323595054490537343117426725531006313886749066906095779436299561924001347241543345729584741980586308906373115576053649698292507164221444588411007516564998371629375392763620621652432261556508554059042474588879469955744705347902927798522666404291945693884937851789542928087485732701183439757702306365890835516221536610910553792883300789450561378685441226675338748471405997824320750607228075898489721482391515213912999456248254066326431483878474585049353958368871232505643867867732810987805686234637542078532078044707179374441020492888536215661455642658498402826745553650000896593292789861892587270483657859513106631007388851606174258254814501492205095044358454705557354576238717002362711694036125033267524149360350896846364902965817286007716998789127478326343369686971884188191872839244484768779937158823652474260757711682104557943472160595268181004553580668638094779149909542834350919835194352839555864369488935408284229074051724641111843852848884820800258560512043077812371742217410506381776091098910294144379478392381321908734092927766331304930234126041014975021395908231204118805435753284331925410787599660565048512017426571763870444275015047805192185012389131382852930354660879282823132599861413762267515783163624006923478018981279630382504183361815851365403013757081238104511621119114284357534278263013587801608445587961339497131378720058213922808893111075327764129349215941249875820601771797434890873425865937120854233754733933275242173095903902414908740110097629152142117025024812907913241250049088220638651628260877514628639613939529338495190343330412213734927632006843455017888158735471803918265929479112502362211591631817894060217047224553687078468712572916294097624853588952628888399588873423674456751240363859620863089384141841661752077370736326092352884197612262542244353243230004077135795878488776299830232738181686151128386483642734149858608702586527029071419717830203817964046070253332332003150670698056300762505882816342492894993675353623099150555002158457470660997594068003562363518485572246692700784842143757382212432644811958160230023070686123979958812677152413887120793232271136032620468481193628986793350170422446898510428116987484022967253329188843097618495263259321782267084968038614750528891286338116461203773014174642058561463691104838515021594270101300339355050613498943095344962493890510095375639773643015399001384095359278194071986354844404101383903547837732925231639876513680228940969481240278154631922796126958704631808521066829077464097156789558008668766779561199722127700089657314902579565293879630838102619027591797510375645905495532960582568422845355750228978568360547085493144562804050964796444903887825326718894299638189359221009312054472448829570623914481950360190593450627952228624509079864689151336594706709379364743369066655403341565225275073448343126601153942442666286492390865389084976686143329899375537033741854569477631795841671573714231192110610354682798681959131628126361630923439473987052554170068702710426416251796715413790623560289905645493234574555444486802537552263383038374570076154994621854320307163282932502038441768169851653035351777577758070909712672239501770380709814160489167849318765251717622800265388479133587790056404191958556372837829281652439415212929749195210788641432735114010532773084619348064331044291932212932761961356688368526771977182990692225016741954931974178016111805470185903351042318420460513071174845662878184261676547536405518497545165379838673330784307213361190643585825918322353860927481428886569761200558455504937098808368297512299199012126494889496078430297653790991794418998519982261482959562577140052978213525178046241627231424268240334241166839425324504025575585194819792891077052306056007141666529987118989367505449340263321167147678082343412455630120230939376543503053203112193479930526280719756772215889207392133418516862430047704792208535181541768604293469067113946256774747268007140907995013695482014132395552673483886485364718869677802564510046977067042448013202398098196484554925949923201115460760895278152963172791463861274697503698883916392603914492392903063934220541528137163273660892688621242646117101063306098080699053965975895250328076002113109072866870327329454199525570984995815110445584113638456822068840867113160784579364581043592039490109662493681041534331537480834556829983859637358963828153189969466535770165793605492371573446574382846246719116130145939437648126673182602237819749098098712841767367788800836123621177576114682848805078040142431947916982497204294944719780434240561796301164745465388899568872890264095043968170141703750366349995923009111482172647428285304925109960340215610505094200394694488279438202817009460223695955225946305770317139535511771992852562546337881986386090905015591856760979202847317652635862727835791687191790943615896186331052831612535549253438264316125606585422035881542280554427887966543420964931599563826489282907962664559743605966953384390752335524646752032782514201135005428929035237336810716764300993524158859053649051166154997827372750813170956170229947924413727694143165996938316571003895904864078301083598203385187133525035227759106462084381982566279610167504725048698647091605159633409930701057339656591900128177830173582425841033258865246248446366540708304244710848947690177330931822182975479171868777190317771280528471215048735555842289624849044848321414002473776892346368131416094385683378322833568370495058046362501059278437318303824867042422260948776747627739146583406959674190820044054416564822298341411293839338143622614025705035848796932955647950857558214337381638262273711439220102748058693147445490459218230452751501516039872955599738121915722550403102141641268606977302751971545707252536885240933430701469653400319555394304093346006551475938143392191994258662044448729730783014852045692319588989418848511410039917717298713126729475016354074389841238680152027536612540067726417500700647215051495729087634000206307638549157612170535659444358926438271108241774125728959743861330217255418083200941134771789176120277966685933070304653672910866436061956293326922554173880406371436543212920908460101824415699645057560044482639654168949307018984784136019351831525801573676383608493396004807672595267047256897834198801845288917521971117651885745527750807010082061528207935387850937110795363989295025701799391627517398093047967177443999856284964766427802662566882610153688064279606153846152209249694361551050531475579585634531473474699389505120902711958306407320562814434727681260290765343025475635226719597473288831297105040185390410901527776960623621527950291535148190969226982695680066726232748260730154658191003756421749906408570974552351647339575847876266274446309061246875627880874814080808902426031369608358484591972482817826063049618121639181187891290044980368669824455969213828913444475402709740700232441959749463980923615483239903534515557853801453550634680355191550066892137915655598879244965547380141012185493805773444881372864153374463719324279306913956029070509869082362727970647331145970710065352654151809421912737598380369764733626020483869538274996625535455299982425412407360364539883244102136171949699849016870478854593664552595222387279662949705797706757081061252088937053169651983135671801531035258317457963262656598322557626581191559221491803483981702878653351095177389008687469171566764771061946847440181174647691717349168409557850677784972353550467231379570240617130640181363119922796082357828627639852711639240100922935097767896083200754903686638088537153213944248247761891072344552242878103804270696036062490886816373514232122562830953304117927938336772766879258355869382921862701286756454161804872166251646660087319157732302058450922612819161564327742461579459316837241662230071939310726067773708906122657340490131842547803434800474822799858968690444985051258991459810634687219294801904183658548295090743819698778999250849263238655100235619870669444256344308321941124792935168114211152304965125753245906579435256067766851315835493604791511708935602719810793729976839493039905475878229825369408343558555805715970066958848379589576360654635113311331155954498961282404919592783918872112041627109129550054372812869166913027028071496725818829923072345835944725770168848434431449824696331456271933930456400385709064592937582950883824180585870274338580040822228696643299321968294986451502648855378701778686488961296506974842704935227240815965556986965936697670470349869643677477912184412070090484333061252946921214574346033372467117555907210753634034541877984330351549135511449665604636077465493127279193150559366228073997886160463533345509500923953006893108788962281221561407923780743297863906551887539260693150086276584606412060780613796815391002939108586244984621432321609245805287586369758602352889596649636472833082586816819258705115976593505974012357579153497981321435136129449686323768274256220753413124757349353253632150943562177102751890140594949941510157572757482881866457103991280197473413851454583253306923023188477638512571326929410654395146884055508890246158046587444047097185657267648900072705374544418108473899615382755854475270212293669463782173821051061712793746657543122034071356293586038716108351488326157880223882768212719471076171758047261971788833977845253725982685789210511669697192617318230034316470906329478030381928701181790252827117475258933331881926047649363592046502506343099954618246784114935176467157266004843732283210926604221405929854770353664598412423900700035002760027479840530151707314774111224374153000413808270883669862741097061769654685805597893368968468036767959991368090596821884325891399209899099755306256351081639447065241464047138753051106722499346424709771716754030689800808363499072968648756245447353373778103855313792314772702252810288681896397365179295697281543413692689864093714888002567826098816801372066604682962812843397923329868199311205425346420998006271475526465913044610174044116836873060593680217016152004570817406500625174068403378169444813177894824148583052308159293476876604485265585510965788873479603229076110674167646396739596890951943575585388246585408767733114660848593190367306539928907936517584407560366342421747982745473389401791631243271572639436296278331221732430481669600385793554778958969191181863704407954761993900319016335476179229285271282796658610697152973401419010023766406714377948951234531773122082646387999030507009849481388085622473088014610939063534509299695046843272133917646665330210243890336288076888732218290365204932527999084192486658489482045808559233074884924180395989455278642940424924849424628618490603849462446545740355327743017003293960640651310376845480968906382169708799927925703510749908536423997589306601062952166721073588944026553077175168500492413280057890470352777874967417031872047534964418830372161637063484853280451607910511894788308114158550902894868274336691614475076723466467648304802916410915155434126647781212009706101553756822346307211087882351984614705110991180042865482538169162626447048198449685020668861352940447884903579311563937029537652673478183583118609798100115088005904203034024041012494405710291078911477165826828103762758498905954864813910438776936202231594837295749275526592221736804590583208693427970157414882625125550338969191943068267333432475622914326363438216495609271023467281660516662579489255153558023980728883511426580017504171942108749325437852409434910991219688401963941792356169646162399357621665704638812650150894520930329352056887576072089429452722880591309467456529906491527451576811529469390735608116037606509634572562683424293587028995433776886241011664751762943740746950965273634943362657881991548323014148962100067906152364779601439562293942575680370245325476648828133250154315644474333677017958142012545941519066833722134907141893447270611344406101737227924618050504853538182435543946001144544499047371324982115292540942502436915456185463249080683062166706309182544809213767325036332049928295104226458908618417402736767276429719923303979533212604146260188519504671286770948407948319294907830306400759800914904862568635740021445698551159975152006723545245112279653801083945880529558227873566626160707965863923516225913802640942565403471948448995462057906460733335236552505368620859362473759204229764130968142265460648762342016970718259667511468174149347916184612645743739151019215334971146783306298137024838746069507002171822393128201590897589536673690473732812421000648878475905698004911788104384992482370292385346196342637337219517834935043350009056793404264257152576004266697271313623063832784656172073354200866886763503403093099931150279600090978055407981755532446330578587562424883863223291360543156146129616021041687473250243052559445758473638516859790645276765002482525837249438541173360233336998340434564439776818304858376514605965422216595546864716531207264616440696135733529784702709988484485237396751228905672658647694687470255901551524348241601538952012305482935223445980785734682842771259820395911817256205685306300752995272214024984784886422125082981428965025023580644012644713485110117130110342094813752945747321588068740043141407308751813918249098166029080280074773744029853681441078704405317883787585933319212201613985533480411079861571840259099431312600134232082835410325564564289782593723154136580891935045289586550541878914395394004769063717063106725300725227738430237515116571362892203566289348749640191294874013575856564648022945557205937200212064986350269577871767644598763771961570382690966942925676613096005326581843314664712252757242920911647098119752497812256428207121525341676463937223679042589831428725732924920708569207145071459872915120775504938521210618191552177815176445783425628561567057080449517367913673959350134972072152788632057693314324714135407525182491566236824665285247172996373552754742148059278896093235245245037754723758813821989765740909149313725535477180731513808664775663509368122860357122020874567057874823063170196456160755458984389373909063276771078157500372117677929522083913170401830364933643710909415752327306728834265701817190608756497132707227692120043731375825464354455366975278395494430394775247234981817381237325205464652150988536402940423372496117108198471669848936598543181580250042518183271971402498354675862255925058429367267395466946732542438307811894383713456420644743648849022667360395829526118735198109217289779435804547690270849655819012202791541181390929386770668832062744138010397514063957160285420926123869977712117849624938078720885290079324464306159961601739452356830547452642499596020219376071810673451137153430178568645730184659449247989784587958479597132904401794928216983559316149518973266521882270430120479499469573076039950924535027734102329225338846785513168181436879349569020635571737541251343798304639531321381079487322766468131975593284600743745920540627600410355268033723144111836179451434177279868124574337298449993042338419509724513534412930747646470724112472769924215964747965079981876056519986514285511554087571507189246673859150936877719914960450253783125275434003179554990448438321515124955608939265319996215165728672583295186945736029552360631986185671381195420021547413919687179263389218393429691026023141006887331519654613745811026345024749821794652990101427523705649978318921763989013608440520031639891081436857488620411534369493581448642880429566955634349613133395634980093297163133796373845728066619209143856754776509553027039407171566376181371730908203074468075753225978087087458736405712075984387768935123769826863868546900958047405926821460604184002016968767431603347271762370315384821046663988800115170654543002042553935667714256280557644144849045971842858574123682608119181620329840172854150903133104715826145687402963119641933595222213279114265665363715094394696897341579287437837914676019866293831590373028019826700713553489214868316538319542822175208344671157333694117344635334770850219082966014216853603984243564345424595768924169605092026123229308635166347488356078428639560852727953442211495830425845947538287152544284961115420165094356021858326667970895497455815563255827486136386763912642927385720198816137294240641564391897421690804848833017868382952498427751299268267059906016438353140538271917986890605207362275287530451139229659381465610998976649408595825224460062390981247360864086228387333786250951583006146447250006240504691399503757092565244417209828497228595515080310708415334531579438876461650879174039539207479920914787305533656908022786122723062600692592410655032671819856144925245405113356102036030201262110044587133168026523840248635731850804573757879233006610246272077672786398619701784164996838795912037164538331520928307425825905077260918861095556261188965260248254540704132717854348398741841429654611031004540110411126151510907769588709057006146909829671092719753676817817901276123047147223005427583697859197163582469400152577341314274732755774502583812212744919201307213619719217535162576095666289092846151220429556766460513844889468041611510730260078700520247834919883419206796965298784616951000646701992289564595138890936861831305090812705795963336644620870859689766487676309746211975536817979481071335511838612887295368097683695875961981141160130567120903585177583653239601374618440906735461902129011843790646483675050932212364898731696450659864768177041818213977871820198672133180144819705753058208926401123818876142941103829166049820837318620539573192044795238465724658537764102635235668431475322285067540999628309891573480765482504650096690629413761243492577273599582382434255359069927981021943873361923846339076829084893040634418042641754002672534517352031474660544833692505940638144625956129232090847252472359091940185708825277838753142353318398095066404721037510736859260048922476325873035263013128185704475478854418628927161936299628118503680750733653875239437754794830647746650643459054327917753476890761061136530161646329313004446018787244564596911568992444890626730149947441126502446852269535569415241116097371813659961676448404319946794982285246840611133763745772966343058702265306723438543421925073514566930109334539865900600469285214854945771727537836435415038591276965608909955718514377120660757323276710439430235974305524559698180769223491772434062092466406444663570127124305822755883885645632760318475651985314031082119615651064322971914786600626313130602634257250428390243438450849364448648978044319630651813330305772173582311646774335274222099172240460458639506538420831678013340902996131142904019172837032089932847208371281155177415563595918189721112810475550718248523039171748856572879443468391049241418137418641031410533657553869058228997031024345950512784828077125771729401008235795559078037960338261038539585902255751789229778574785234324292153982579339115584961550295472370076109356634461881040410301316370707816382850473638146520741523525703322447099277734837612650615256423056772647529869275117049323373093054997001088227919394968449460301914295341914063763490967825464849434076380962839480542349920531199757481191759555051432686221034112595766485653529430060138346088639260838230538637601969781333349752840607376507241761166133082598347839207956680155219170657100406429185051633173305198314915994045430938095832516750093894634262930322594419255085962712886746208289448359410704358955888820454680159932302298107102321716349953920334053722967966639986077967525810155952188545785690300428567674505157900418814006130254730150693959200303576962169300193181340742313437355585700274056044298313829031953527552735536076533355583626869983306429920166371905578098363583628428004931519652268074058065567250083249650329770532737063416665336855761261160576822470042829252923461960583690819925289691779876724306194864312831759883178719067406161709339163680880748094323746969949786701618524222855473622523743340849518914090906117025881351957929420464915450108578734273287606658053659886091394024342403353859034597649337285383677461136667470005985562168763271389522843070130112487421700776833871810045827246720778971476391477808094485984571655547345937798956240998953262662137525341084165570320987288334845336072026600932386846625633080521793057526003925388458135600411919810580877578769429679077492194915915926378649876773269817547203981418717550244523496024295806505171857628372611397147928590530082899582913568361073204808821048867378466686517848517924223430233839770168406458233953277193469253756475911991196174715850497060835347284981506346083223201651932469555681365638296214237609713404275664838741817367595424349746280583402541388465400814463017080145288807392132482438631445639855196462769954421959364259392907258295119577775403627814727341648020510162230982623870434740141571652635840225028906625135311411812801348342385586118456946355755618658405494501811728877654751665532155472274675486376098565170191194165036468205242758915236221245085332163504090481592568812097419660569199185609067816297902386904018992782179264468565105570524943549863564607769579605120166107889303162877851349837699586814169275877591222135458875541115753865608932987845529510460961489697439584898590064892478159534200181928475303989495334364762844694075982511910394364396974885642566127831335736914216274316025659725685364247051303054290629098397588804975785948937464769624569111829329896801115812056835723405846316328876531281721476297192798372275237543384941706511400087184824157080953214271927701136074254837957347581541804415516048632981452507683834578286268614838266337786152523739310868608525635324319542703464443953707997474629498950053482345841969841078854102731679886548193629079208315562573821605117373548510513530019365699609944585321074152040461543557397155408629755931504578286661632645301967982240863758722565415360897010643489235778922158309589566830107111321869538672840361421719589104566323093793874481778614095975352990273979059894052816039762796713228682243249433644933129902837887398908662490803251429595058772362943496068311398090591715435358531068572162226922405257231736863452990834226324369491442219415467350106514844457849602299535642093157313560874230224278423354262742407982187542100257911754613965241918327009836114840817524609557932317224211745356812675979182526451957640549894792073010812166246979244026322867366622001585288113501436834208542386359722009253350940990265481480929138952309213168943045685638532620553188798708848999439949219738835712154610951057381976926754403178953714594888799715797060289570218643317000925359942227768385157922894985085430461199538039192110844052427019932529625278866485712840316417999550773218553743000037911565677218845958637580493555150139169695005331124071210982533349718890430939998878376306657963104105753772140271586310184785113607027316105650877832983031457381206537253576648002022578148645949535755983565522845935439824353999306616019864878654400659417238138855002771710691722392422038640294975402775251878922531848501069991840765837886114143967318213774023207011280989129649498855728161325528638298857332210588066173624663869552157931885525887689400459145131583756518807244163267041707320612584552231212528497745473589672821061801198290785441556114077262181066302060098979398311569342184354512435749974368269597724983974262488907078174465234012090207204085287874613119657315919930991996903036220070797751371758492929057402982893475202582146836668718937007671117173203069143333355451871367856121259514471122816200986744204765791531602225332488413473520990146725961198182814812355988209229831681555143366427418773759187972185862786116176765827168932954739467982991271857414504369705507793273130677062345030941350569627608127177291484265283344276942030948722289919519213207725113776410307207369382102606590560400203108743116378946148338720302021830540690048138283804872746592298910644804707952308288545866356524840539908994436838824983410905957587609565709885619465279362621711516349251887012307720246878571602148786250284018566716127654258982131744387676295565067805115141460770605657251843983981077609667714304376284502490460264091967557927004379868032035310873766873854163293286582142810428553515862358930231656485567513769955278879444291108309561604642931264772785734186909601201056629847739566601856520957164642369325712544206595004645673578088786124575162713658959984267766173891961996721797099236098238556152675133562514995412496997333013991282707784295073487513152788337004527058867997977751313777527357502060737619590326620057209751587512515500096487305870373055564894771159549917016729510680309038808753512729360866346533187878853036272868378426406135900891767181166537016787337036668252311705939127724886503261145732592112346631342139131196207246831865173180662772334031792522876424453077137189741658787537333150701105953889879718206451070162699819265923016865157475846527132886933260497872534428062818139188033346380628064227576853715333243629637854200736086982919008570004393089416073854256713960636392436643361462162796983661644429898653879090167989163402204331787109139164133105312810632842138488667175258263230632530908717266452946658826761844014023016552485413182701897585366881305570130936611911974525970748954305551784620026668294391567201764898072500220099616790905242249104235053555058795001891477473990769101425119520117046388485885593265783209033667298660514309154368902722948394637948187846852783147977250885551361286275234976272094438306961964485356924159216658995738704186856391504171930221581171882032577395102464734994466426738904633664901183314240169281479485086473411056630851244024011362341747946547011725836460752706282749571070108779978572006946006957171477300146788789857400390331806296007315392938421413435068698555255446277159728879176545231365426473095214825401043485195318556500167729011989225575758658229737887739300588096278054618843876382892240199074878090231890639230303453832086451112133419608851101428148065289208847060678570389975707832276467503389347154700526816226279816935033910770719264862604699495059107904307829763731820310911621904203292425463067268155199710340598451138712519653430684993703936458363028835034662217465991041386614236463566334697037914337921867407011212750409491624735938715307296657451215445133360332426728387529803696095074273717348159360227703111662704240570030928139626283190732985288679351819222487781701893364530665481721453275483927725752329562309859374584351659994981170685532354716829285392895198269053759972609470372167175692167164402026708831536096748739288631671107157410386512735285883367879918217926657147189413093117209503012186012429534071201673789659797506106910371335004873631174539277792173208455612171522717615636948548656350944866906010114796715943463358936238116044755804440622627532592283869911076391779046253498752401628252959942336774979298860922119294880067342608926796744127712697704698527764235313544486465165319311661832214805961817514438272381815546055583269377797260562403535688989077784436821519832507345793863039605486273020246891117049091335115570976390157537983326510398487027048667800763571981808713105555936260902911238136340543548153579616106605453128442816793909846235943617924544019319315683260385779908416982292124948283802930510214865074752713670894606652436024873380239178582406474405527763555778675095472564372469238112307625288917610201160449508117013372987962541364102758539693678436788335487831518671681538900406319549282146005380304804712841880645609530927184309474305110432492359949376755464732085893618238636264574068454105400311409142321715552396915491063424990547386349173236090631430129739435095882060819827040198710761447594227454431564469765691902441192428954157005138423573374365743715371277140431647309175760647021992587743807292103791812483717757545958351661691085146591579872564053216623443960212855345781145791327438157428829180104024674410941737164744555949466411313544591715149352563195656728320102779064402028058832132444669158688845016414892215113508003600254732190191674955411810462630973783746304270419074437374960524449029321494654954094155424731993469853534167409464664218225145686783465594998897730504254857252804658658926219052370009074802321495189451606314425862140452872359515944700549786985916640083750676917385669974678536360948167114689175992808821971431250769236801105105606684127043653183179958821282702605596596110219020506583261952384840047157287783107246375123307338089964383496026512877609020397403433015288585641238592649868783062520686812620575390304567677245001737973739368076966615469681260746524264873271937697109282847704691075439704871691527217673614297998265887859585163166303193284669037031028456381460307265135864826780755123907644543874520011514024532877817348205087019374688404512852103317425435957308167586380910856257558368489063383711081006107713994966705961983121715791818946680990441944040124460904145055177238909640355146231375449344726815424836794270473807516593004360966018714998061226202494466522283345361307884663108769772358638556797293162915822717434912689863395336781122913370041182330221733977761520638716207148580017474674310466045722516193736020714052550712299848269105862767553321306428925451818936644205734477743901278176480236123130432733344474777564906686543352706546776735290320803076088923540981442914503332086650470671120690816942602967667606057725314649512979452193416619109516599264862386725201961781289647017896861014987342791293222513323096914444111120920287307947457241433870281716435854104033402714903807325065499663792602709402346540092044428027937366480727199718638899070961198305755399681970914187536796296189861807753654692930348310333203817703527093636917289684082985927283118831481249312092498010177966714149499226638190312463725886463096107400496916783769929672838943562893377092922965458073323977761396517553244494692241097103461293485193287043462148073049003857480856996522844813468190345559565215332117367190478117176310311643794305028163176155495134491851175316653571353663819886843623016589317791805881370494764182344418775205035088694814159748184593814894756514325834420267093783359356586675286592702270200846174804668093324715797276637981472913031705610034138442803904967589166979343228190896183073275632423110379388536075147627211618879154079537400492174204860293223712042925807511132320252242182162283209224511772321213385458487690256541308345722925496748043417137629424778361292164096635021453681348405976257854667151703153709525057031731130751129736115056017960851363241555834797693937417552860230251503637391093771607241334178534589923444311852707353405723353248644173223295846042861030611381560431564031256193581195591387186140997088417023326979256451327789063776371531993251596575131855026072890030010347229471147719399458803057543977200257976636753419321895992990212054532489507807064404680429732419385748296018255613944585727405442133022472297415388266068091385813394552779293056532702945667144731012951322446361804775864581547200703812581775943185715889183661459482327150135010793908921961744090367713381151701433780560154096982795837595851263239384067450877611552649611488991398362122368068792305822836315324183602106238700473356778116354628546537371352807328016847490918688107216875097352984286701771355541380666623613676492952092207456968277905750199015910435084888159242980347942742939934721043090449879033359457416971782207059607200983306248769466454906736779000081696431906617366249985440565040470417374651687390521118649763799501134925034422299576074776761767897280179184942059446853300060275406161921176500846404282719000667170967496648716889859414963625230490785324377709785541785534181871232323892717135827376109643400667612206187376363880958585130947954527779132878728977095676119382837392609367765016595656950302376849999775440044908138467550562645771454371511556549451497532248215621176246394938122347539084424309786718533352742736050845735509198444953545325593956373192137982049671523204719633681203994620310434444982516081082890643067804528034235220145896359804220074603387256886538412011391833767302361675171696611327278745845314999623683387398711667171637874822366048906980469302132578873233304530272232627949485731716931645076367555936021874911269668696461172785986569855877154042385306460386241033868713523742546876114533189427427327343987057489101189318541073860670054847601180389177840007755186250480839302758604341396891901877851982297906240671321155653287514299652309753043963932957970453917550792997758612215992218157762181230320515478962388815127558526496211795006977297765989096287887036980819982214001802162300539742180955150019510725404159818099521752089450178725095988668700062164379336928177953285925885340803655238161772773948723952413876222972013519999041860993123716851833287697205798077249910108118438158832962793081973688613743745753869105868637535365812411826401104087393332064506194723325430109075349281823955035815123486564747037470699291450175117260929851438568840239933027074395171642215073222767039470889299716370555478867285919508367822580558188036859359790769531801433642177949082907407412493282169886374468759271798100588156419945866902923499895024556474090055875775136447432944413059430371759948074078188073548767332233380697714668526038002474670946830694959766327881205435322069093745023000850823618321320137361771619861018312288554249590641783952826442024471580383966937291856629123034595589821675284328106937402082988272302216771962541726037009483425984716268323963628534333189748175433363878574584959806972658394350095439688632192371918832576914395691635992028040929162109293016711244288317249517024301120446342629246527623847370869087831871773077233123240935475878495001527300580895482711137979802151432041138875158117978092256842659468584810456232247519737568242242286240550810580532041734536878666129267723298444945531650094105972823371966833627277844021841101690431975923938678822179137048008604153654790291331156068313994619750924069427454109216073554458242038331406376801826924446925899866595137243736738817246047991343385953722112154088937546995788731008744021900248812313174968586229875571254633193434398704358873177570471436049248901246956329984197955298660277834253333886335223923380062217972165631250174263048415902071409680510417542684375559356585230066253247997791025352860324566705830826222053703199924124883441633753218345519691553289147151843906403401412030242893762789592256930010991797607498443280993739150336786150500241566728169402206766453125766944266971040815991785372751815638743642334456978528367738371833970356825907446931282002914832138191198764248701066019107201600619786714222068909511197032875266125125223308922597710630317848601501649515128543190830397013341665696403455263333129726448915942253471056035745102515315395196291860124375383271660725138226814966561390133241218699646833616528266222003941982052885126478605726504938179435944503633811097759614377003085125757456004361497335805121059806383159214550700072879229841591414397086237181018344876976291933852249719999427838228699344382594704666348185036207255566366421779409668550464147230336880610790961448663425772337991419689065798627126046805357388320952955010475121088974613840628999491519257052638746318031521293627631912090121687915377646197514812145919795144405907123172196948211301350847352124504793646132866746830875953564947735049720061610732909594929167493310899084083113327758800836304287658154819796620473569889211971034129045086544607495185765263419794043954482925570572871366061416807747316155058238339880677845126135729759260742933505511170676289368646052589737177898174233781353443405299822694642367165461483741325270219431670392259560091771390385088017244607293503303908131584003691141320880843156401665655790536832528821574878922936206145786748761556245725952866000814194153058214489982559921545612207602607996538180743816563668520890987811401123802227225993040232710579747945078162714899301493667674486112722593223200707084290179271941470439666623438890823554747593941948219020280899942025631614054020074770385339250112461710711629797393055853643398333344016799363910561072359276042589444435121407051116395178862435806866766687399348727158688264877590381802801817392470357818499786471628373717837965528754630653766233161302732565093941839306417773743618516412332142614222927029263516490928068301822868999164056607921655071915542136806842768715487744969268794372909991941432871376697860277078220590516356673374032616202048646209921851266229125115062243781420477903502346912119638793437952010936577101865310787247695739952967613782221144332318937468331489857186857619597789349571922884834431999929612174643014348485895850166631108477526933238516992183849706205440316122625091334070872567305485079880302222109912398076750959656169162664749422879468213947575915574706987080486423770391972865597359071851589850260084600260579275528650169871079712099295528891391083262990156495223533982789402268679880027176708549067038766981404811169072330502373662520316026627279820772115638864319828689585111719014608639726514243227557394582922376190384255603472412814170062160093715980565550532008110422131845016691387702190747842907482800371273052954966506696155307284455952076482149555096785989844434467657684716181405238213031717639499907169921029570279353328949588909319160690861958297913444556493726917019379625630613836445116740818498813953432593550171777357701002432616102026882665302817812712016846655775956656082486079959184738568454401377242416931219829317825194484454081562844640483398017016009153104021717105498270424927501386888242022361295769064504408803610549780209691117691180021593774785604825129616232571134895963205555007549113200271153708089094227907661477565770660402975625480085923405566031757101486095969137470840793203183025564715351235241486322201744946726624046635339664212177617367737590679877332797171505133648213111355111850285546880234669836355446017013423761821321339278294497669580048798942666889499693193075291327383560683621935211080208912339766406507143069863199796532936431391640303920477047351876914023028058604992805128322953619525284457381824808205597286165329100516281822990342498852651308849358994680968496570114583542411669625526439606566192469417521457577277921338076290828298678717940624948406423310711744384723373789721447989435205371505616099364736324246285298698265323138127744876937691744602231987699379026109816524679460548368305909152067872763333900685054641995664197129074320846355297946135197468810297651092755654370471671056981349577117334741267697281964861167536545653029087349526984560138403696342240861296183204092701254874356628597489871103311864348803974652264435372248016021389237298888090286918509592277515026515775980354900053608009729233990801705883410554013353107167740630400705086004597990930063316315205499167315681433078344646606448558804543709205747531490667955041761811942071512701397090774969030982234128876199045053872454764936738623589928420638308975189665784499218358632753374700159113274456100307289553407520624299714582316420894962746640616868681938469070612307112342705239441551114045482246031819394798757696023237938582538831151485634241463469013953370597806928883191389186585655530209655878340174648670099824296991292245378847789360753646140377374652830963287241793485489980828711568379093288571011418874407526901387445470836413148112972697025593556044624304713581976255335328473517161139583245378817140277202743199350669808191333045597874277824206750736706387987160671929247053343567054271784597851951555955108480892262553411447478960551822057611461369880029172689221978974044690232913916083464306518600768311254247072714481759605744094745368339985943956301803213607914189954041749435493575395631590384483060135889232581567073204504135825085703221004024807028139176186889133418228034915028175134263859466992862146406158180340373240901392888845644423162326664353386072542041871536701790102960502051473111818147783245132613222778144294765916310002388535480971138733821047585233978930744622288060536893796187459649348101039326823377146252412820897952144734531868391464200519816953887751641737850649299752875465750736063389027431021448560989202453840826659762124691067367262535052153795041411585471232243541695918417121106605818000357784371980210612286801247080863849873336462472349905577234633146441516287784029378252685927011088084916258170103141287563198095044061378990067792364082063736864461237094268872653511787113111271160714768887526679653815994039772847715055869367440015857520755314745556060504198705041335272104236985281311493242341906947942757046021512912679417619616655617780719047866992803485628318600928939395037672140190780498491222304594554858344390181047829034112878502542416629652157173565796222962256754834431122205663164061411310877343445488415044995530284027884990846777066707715848847346768516274180566557778612243588322310316633950821512994447201365926579055218484333703689595948355740143922143990197604747421706997785058167707453282607175259336142676719440736409449840894985471578764848961532576785590448839183979497496802676931222367982818777451822259465826443769524634976142527900674133477102678850124136254032219580051445326752225636596173993351338054408170585737220776135134657850463159624834690505885543304734008550675940211345587763973600814659118709062122636974932884750765221350467050270681310954628264037404082856378743202101388533397186260184907379689188288469703601236936430449369863031517313461227820903881887191209378180970930111903280230901003367457544961405506432298808701010448469116135357678187769602010202020906608462519149884233451292980969165010088280199101633756530752569515304957079937475300478693131118258435437096372030440502528789922626514977519085834956495764075241705163510349296014143437238324725369527224320073844159972107278569090575564679703851031701833658806470998926340659411146787279040831010492706061292021194343069170373098009767049677574611762496736160767991589295770860277375276153364784936297620471575000967694371950212022457288774997813777282311317997319338067009785078718170770955135130654883902224791635377027348309764864531461827158135432525461168783122036465277134138724071656463547351930698377958911895522994817871639629987689267873005312408483552757377833376190310979238858051647743384372201617224428798429562253777672917947108462426200553885311548529710816794408991525402326139667903929580468621902070868845083586861440084383543706413677022541610163247032316283538072398414087524067166011712013520324816160352586681793415114768324479702475372198633440166852642208593169216303395393585835954955174046992874917815215840459850987021985019920372359687415782244339137644018261012441954768997705034240224085215376224819493026699481099255514572108405434852541754326125685351974885063187204583634797397838777624227805929045362208319887810895525815777827278855821924975844572727529102348474452034706741372842409041879928241630505671369627680106691036331712339373929097891237843044984419277786053875538844056978592654256307155302709196903497881346684446073742535012884127181825264478235000198542031571640693931388446917629420436871841707687853378163061009219846334942886707745049715223186206951372077665426228211126937576810586915937776088737516718360717413109290165084665460579199767759058948436490725229951711788123076868379068048859875268450935289820407434392482148322926873571199437517953030613228266010552636065674793985349364086128389841849186354730185462851789838248615130587141955946477125009813008523901294872855890096713496436290770487854197262711773784283518107903620305308087648657790904884281163459947824048682376234750221117873727445047943952076902877241769523490920784806014616853479573486044517046097512334005567549264545024872885284065117304488629712902659760973016804304553452802965293692903607352210458754256875190996173784434783444482148744140255959833662214782731117131984362306532498288236199358707119886354340482855353606255566506894035306407792929812004154582996700721504448980411267502369259480229396104070280035697458170796258195012806325431723908550174721819288828723263568830090363949180045251600451572600964942729584625136043956700678772023223744157178903226833897575811397614734750519635888464833442498547506778706252134800772099764808888318915641075324325495958111179480332588896467527774759838982828595091078206672305655662675327293778980956678596022326537539854979463647794154564850840909447289806818286721848833099718457185556719826175101116342374102165191933803549629753461300562251304427719532572074320137059663857466388494403863008465593711662841914372070239691096071680239440664418488805676085280314029370957546355938575054266416376085144420147676442017892654785648659536755462205381827784266237554493517632534336207440795671041705802020167354307921337321834949086955163606922487720143982316383370199470310402419476537061031586642749256317213039160580683929732683692549744573761591834548414622423451024681240240033251680107762146885997689333980175952150106495532120947001693767818910476697976435271869971534446461855258911967249774493732745735992593033105723907091269125448559637303110733200585715778774807633196563962259352101505671745278644318509126110044524978707303389731746704942618836768395785073308768560692660993360918785152623586599935158608769816390924632862060358957162865211969204752844852688502212202157713021420048184400608114399217582923859628248900211118394051022570829295836334373740591757593250489626691933477806595221460946673181064439980139948440086264590710297904851270342470844224515827943179588304698955160152407380176256197135296282903197127792549158788486138061039625531334247282915412517111040043405750427977887116444547920602240389731042281690543225184162393391098183588965727142727704628621952376531457868462256952199780926691488324307686427508834171778561781502132437354794381692433916077723892503495809707071733241903982806052271855509611783722873406462724136562434026534056708092204806651659820766232718023377809479773971387675730576096624523378138636173769509184348543200521303098148686054066688081488091618180226038336474690138710389182898147099003873911062016160645174752504452478413878526412031504094345061072631333696313623723309633195890336680555139341248998482799545946810080497104559819675570369325430584113114846053732257993313403509852777383714950482747539903114541429772797950864982188953973007888844996184460565784392252870702821615404785440931782100277445271121963504730991117426477100670669270174611497095971099427146128533638166025998721906089067189558048980387213119067801164114418596734115862735594409369758559198354817595091481367261366682530809227970664196968527451176136432439816313883079850894882576147269171196384487697569870432335558248924447196019158051033390768616387160515697807001135958323690625795640911946989069430335857858684137748915691661973933008773529397607890798084708837324254461278303885569338935784242019447828352668201005614950320254965333573958336938441410249976544100145019164376130564583620933282358496897672584015568956372242943686608008887060469643168369128154457083740370136732443638443752560830032121340203173791980376926643664344644951788432778583258255631898847710901379541513414615109719601406645158379348578310242334152746925558878265035200479854861964827464237747605731554439724891422252127877287199950443121463169757289003491788823833309362208735125108740663608282359986505932947312768763835730207969557619856254792937336639725344273494037256856077325394695018073740247060733371857893542034786811353685670561261165056730851704154101057469245816481531445300688754032524096679931482791868993294089414803263594192852698765847107437322750574008046544792129917156404140803461572182147952502628139540465187537397735848643763213023418449387820963726701024554467134236370705212672016797313487329861230423262383872231627366161569964416585248860578898226350073749703645768194103903190131796785991710004061508101470211215160628734310108369006215849976166177485848112657036787139443844599704057674591100488670360974924058660486222090236810664769395714318875911894740010433159301291410150877879137688179080828004192795243138750674506614600034065951373259349493590462119329020753076897659335464970735285095500596785963880569831489018590134124061883882971708785298197906743103829593394999112967131359944843158636906786984474542087702095349246144787074435986744931195861690026187698375344598964963101429272853206192884044822560594719410793484936094330399799386831588408465839048117558249712020180703180189473991702609375898842538167841916331005369253333653671381530787009395848747050202544146461757002667531847484420206461875771495099598410535917446269291857713052843684977768250561608833653146593508610296875304085035514835586603717029851098569479181287363705136992089064791367434335035059252022234130004648919861381537284320044034622907979348047794458897513468217209900615948675008916955410902002181026309980164464567376184163604983463809603818492113182279860272343353605590211692312809703355994584600100400914688679659577512098662226880611165150191580563510882886662993683148108867880805591619903994371848581408031950265808106512421165569773091554209865626594523567927109153057095561513335332271940455267170223773305728585282314722046066131600396047213789864153873905994343695521549352685968673067825602070519391456536967850676355396968751757793054464816579775949576373961864116871392225262942521585159687016418916135331347185215966627666628078325134808231992349489279331555395937952794701854801516539451255881689367874535820762042449025926062377132614131560039721928427325353095645669025382339072230845502762560375781822284828804807120232150692389198328508591190978739395701230700644146388501720392667015159502893769740298595999039581576312240020165727163713594923131239131407123546534906003588785457057522412481527494309271176960483157737372645227795970600410228718582629618149141368199026096697219630338597254226866979685028981742382920966848917102846168348586633954330016702045574875170511540729263096624777775942939752832817483489990868567841051478139230838074408203791744950197994032075657296248102114470749439392473780143524127414050158723310456087786223633163290352433023138872082229592615589610325155127331289692212571704588272297618981154263756951522622250464457539027848622734692904607939515601950588407327366782673514429013131782601364988483838666560464001362712164808196682162541444375849075548037933175349953639138475257531952189222616114769167962841848765266010931405162264172869423675807920810731126908707951281743586049993145137208744146059207331803246252091933308968155146541480878669307064589464297421336581018485175993444909959570658462338652389195339748223471272964872869241519546088696088215374056100178645176132199435102125586603968583888034619353586507363556675114576268787877602875583829186205631306719751061108046482127819724713824046437299645321571852649218783403274691305501324816309981885798918058796590858522701426188274930007123777027696231290143994570469679811584342001868374889678222573499145659116162770771308976634150211238412732002291412212154002478843036525507519909749625549420823249082634893199873583848096641708899845419143309595094851435025098985940452497514271858729511106515356112133878561854759138121306008597019945998840180727533854504671322647296177162313605280650001650719378305996896527080195141909026925628397350155781200190536411720302707996703336811254438421167743740914448973448277505708346736370698641219621046669189660029686701148802587607416185381646998930968860268405126019770226555792254056118499943150747232860490629042053366273641752676623824402690492166725480536719590815710077917591612955014209306113294409655778168154824078028062281750395712651896657796982418217515898850213250524256638162572772378269028415323805981099489619163059575869449600699203877807623426513498788977238931253087433763962514441383605286018002198216727445531616400875097142382869279211279614179359186462855489024594541416095975677231163793349403855892803917877321391120783920579633335404725966006660130013823721706022415170178769197032002615044245966036002555632087573509830784321466835311150910070010611845188581468473001083001192245638393746226059710300582943007421932450413648562080266221636200802460178869833425149594933503411190991386383565194307385231181434818284341704376279377764743750021265786294757753950980323482195019621093772053383161496071422061894606274290306341190931369895246252733398952328842861114053924698401691261837218572717230826894670837649407616930510375973984620015588397848893560222202299439481854241515953515396918114887364845892181688825574022194312891135406688549004997570089550738843828294577552233138266875823881216611062583482304151809832217853818388252989897256510206699214814621482308329515577896473774804095433382748219943818466472210049212645584667119419368133758856570470968678480437656800298138640738753141203107963094478277764038108880968930168450021569155006329010947419257092708139370447245166804046274979385343401231713227298136132270442444139496515677495452128434728406763729555705599327836549412895395368050188945405146906505378161442971697818071986880843480014392258011829274590770179706463887426261291144361564450402726986267621690388241115642257570046245814173260194055546293498196979270109472083979351872856523287306471079476390964186514159183739506889206040458575070886186753101120945295621798676305717394235407258438000550191758681250513344015770912750588880649924001799721345171192064733582538751830815725166180976662351737103673371897474933493776353016270069324245756890742445519572101955905523957430396125111977844805500530318469839573692617506760643269696637973952347853720641625593579982384854756471585175333216930510969611308918095343518424975541817847571930916739302604094661622665722866908500429907465774072248359308412680426228920764706738812309644872023673261772746469961090285643529264282874400952090621375159340055986098189084354058237369912339595471332307307934775447776448711873949109257320339181432974900838183497753234175540177736879941942136708490703268308350073166056000545740486841580462018125054586858841363804350182616383816704291721454380894456395958531207369880213696179802258949896968777895937991108729030627219908684818547354270195998727282588677331779599822370280501745464458266625187829244875206879796363178611364744972400784983914415636623128387650457286949575274620367101227637117898529654254510423643541668545632981783552110988744981238623349458359710449191198893324691078833070048038801539530038546699528752103092225075626602822868391903875817779667521471604707780913667736725602149648544477267717217058953420118517482754199225054373871523626632097358613430542160510887898467701575230702619252816041043863185674202182619802078142439662710566275618639499030950592268378142845650553538799315646191284630228649186211842627255573864873789015899929581555882685982423913580118672667403859612200880228013358832466634624210174738062538143473100898858695656140722285068179561346688110385249332721820881942602295842703527038047664843474029288681980574349134377312949523800419780975580619447639081008170849027773246171790613125562201381644554632376949800132571275555710874359331156941388037538920127895850353005366872411518113285364496539285760674205172155171541873220288637790471034931156313476713022760755719018770754546534585937028416596006966242151717892495569187077862265503724941700918740236720619192628753347637854484237735324327722264957065112705139043452599916016501741830496249724067616542015013947716934446562235971346515930204121666926809174821551261898856331824440976788168630576885536663778734459991977880230669282397854989472070602446195578640964504079522768838442106520127479871850728584318628043471467071624628639026559392196584095062719309559129059579399574290328033072349011268291160954261121144399167881180543033831094934524425109297793564677052689409193880296110480299158196916806427424948283260050484547183068534081181318436733804903855688742050259696459598898185458633118187418163328617696820731277927974202918108554704201999373052149173657967526763482615290909383778059897282637009623733605684100570398574601965422144526998936203037681233532333049155384932985568114308742699311120243897498777385291299686135257670025436797859510662364833748877041785979637090828132573203803022726527013813429259431043606479884132239771412527251214903217626107467144318153941613162708792618119167657165491983321654937168166580548827072369685735535804563932709602039416383171290072857882022085598709207256776782505751776420910466881040718577569045132156858332655077368448000402326323636160015076018501389646487837484144987106382915908961380342171496506374789241796974708186577923572898079170913165704508856110070222559812027884506239781879315005864157506384240621756275480491952128654271159373262090092167626602330861839047901857652071954977205073106553717148349864758983452103175365170006537851484814002887376248450791029333710138259834117375076295316476643562108223683292926327118053872647033325684170676293902627465909769250842125390604444645486301450491729369292094258237498012269837985384732573198159432266966535539646547982956177738908023705427922947028785840002545350721613680306883458123103505286869433000899601841981209599428701216926234058216244971827006193471393940997008390660908750958474187048141632366473575504950010877420089777301998832508482409779528003678577363086386655165220617545388784770883169500976040678325005753836448865770472778874117359000393411545803889171621377205270124287451040832445486291665693568184003984016833589738155148521394359754146776754444187783804646015429182007731002341901480230445969836817018729894653421976710238437884429252026592080496160835713946971944701850396087042643581701490957437824836351601824679955174236621651473209923427608802920892572504535252543278813972409085468628779432106487750336142310836975225542754174932327329110622376531346301347215743222420561321676314514698961639989246484423796748016092099466942882930736910317137495733152618457799096797565390000417073238207692778166378267104437755905704917077318511992418238890481542843886892283197064483114145017868462690403162784223458406738590093795212242970694189246347571657620537977309543882514466194974646068750627851280675690442914261785966161742992785758293702797827715476699759627649088578782325721126678935010409049277574641719009405759574560965271207594899987644441626545601805061025172682959028729692151152120679086378212696088312960783198964482704125756210064878214541253898199684696471739558312583958893425934929107844884608341926903183987183195860286874945430588002145782166103432902158379833918026837684596794251118814445341576065843512959068204145584989289516775160061750595446230656299968212383313591839921476214515143271397982958710493020885031968335900757647927270673955309650198710324243971108609794922204075452642427572259275986092258341951340208658046753132239786078067134376741840093661538977442287692467997177095694675315731835519692245473807293031839834785576056628594320300670953278413623198232364168940221404248334979615695979140180468672756316512657324695142783372955685123382465132346601014754823813811036866415729023393769534036155542652894355910672142360026266406823383437367499567476413412740182806080418090354494107515984005515336457887944567736500897057052767913976090546110230683151416399622938304431797485673791470127132240894782819985774717146328575819039824707831879198256724173112272295284171927943103984404938584933449424889857182895424826688477294611329942015511109543002654171704288571582378847460759692098984367047260375482178039826650490195399473116092131309003121079202845372302125307070736925417181681521410666773069462792625915804369067021064846047125018318284469879187099891284996810780765899378123721230910290126370102694345291541140756375036670019771347395234830319863399377493326627455020064497458790115651401597385475287691799282528859653991204159522731777417763220213297359134341005235795312834297356893416317240600006142103222980288958802758678751274459003017224047592694037526984898215497028290843301352932825987901677499949212117158743844566034536906513632924992212095574657130225872046639238523306895716197491925357073541329980195886794540666518628522434994339891685586399034020539174653878081503428963213366202076591188481524367344519733618107285719170892410148762547057098114103378378562255967980098950397250086188487838366226645213598879879660994119883086186153182821286716361517081963079700147573003275668162470310862596503774424805724994806340781439304368709826589745484580284072797476512372803775325683909339255586436980424262817382599322772351671936780883197798442589946574986742525706482543616686941738448268867672550565845222658712240129966994209937553901139846210027903985233743390147063355861075885833440056907207822754179116237283556267165827788708602659258923552805755904537060763029090789046659316911960961869102996905750154461605473905574590666287667974808774924696391384150763417987515313122433299428207051093755086072778748687057801935007029176847410130868489711142546794254872685670943900325794744169961817504348031687507772575524762482809461170732670431344262707967729069981744287692943175341146191790196030070475130683715483573345494056575034521128494785751967927417458646558626291240874240037663070281111454724028172098697625981273727251775944087237510481037164819759316175256400943905259152851202295281352558339601646590435091241608733145577429599792258729827945618216181189370627314438591834193218842212436630101375038996214252755308841962355106688764019448183393806740237305847475037805205951398011684595788275443619862817060026978223977721684283033272577604245270081326141281342090065151057303743025428890208938699977329102940858345376347137319646103088796967808008149376447739269307429126206395989488672137508314024277117350106350174218505983314047313568489055531077377204817160463302640652748155291687797103437085545630187777412684525388818546985268771160851452604226848584036770785385681216948421560613325757461117325336318556576228973961655689052834519544481968700217703176825039965931797784132813070468874913701452192487769302297866542056512765484453330181317299221959732238815131692171682797953572900516584728114726938263483370013097780140025005707694338224584058588963726503175959200867103872791921225567746483661418379113737277977619799290973006398485145326292440492508475673789834095891570237370511766071647740278984910381577106150043719271998139553970641708095975762017475244219853961087500194895701751849149018236600550400373679042313348298510608619615996344173411799136386007746641870281922379814971491727854370956875713589486244548762172281819740019700202713626493941073966275839151445638364751255019776497100250670853773804276264056247878415000750977251684502676526614627126369498797541931678512680195226867637328098943298807071445141798214385503604215362874708371614482440526915086135272108329924050693445760664500830733272635866383036192357278028308509408042566717433884982501460069530307014136598522203703143245978928165851706611499295392989131377057483441614016502221453435970582646808686422613331006525296997796197280483421115462095992817502107979823298425077582257751576198151657562312950334022993563700608834521550769821300419782927042910286158782681163184096968899873342634943728180771581528027782996323451967536405045523241003092325666041752118974494281717560994163234034241074211694125573238394454957626197307163869442144403676756205817876984719570223461730982059776754287252023296754810971691248454749809865707714507592220285143858487691160657094035009253428562357538843360292497523365363930338241790283401638354497327047817728181578142898189941834748969132829822380088971152582678172145148160057486033257539567922344149645537021912082991551591560046905683401138257277091043764081982627212084965143885029443632860989212406731639967991620455252424587492729019238110071168563623281408753944260921947350261043781031106535441223575710026342058699931143821709041381933985995297824164817820031865590079520070818597543327178686272095599995923650907008589630895775069299692732409958818886020847664881109944709186551163467758868308480074496894122581941544119989267606143265515840266126736931063788153459092344672605200279002783467881450330111200591374396204221291156882372600637407014605925864345252178986432013365573929798682711802422967770331888437841242637065533849151121586774226775987910825842670258055922456162076134031663464289552690945891378309181750277198167632433934252868944669927591565871372488467990375275702605516734036489853130027186548248705227242448219895755399839288555954113127752766942800409890336745000227146173122964764838439014026508700022028295855918474421238917391804187885446048981319009876950025813160246646416124499398959994779910517430978470215159751047221287550580859901342890153289528640773481546101370705344722251306279632403367576581843769034744524372170554577794765661412422563430870996902888203234181892288693220919841545214834117629894262112083690920981128554855638826114133151456454885625992174438823915996344714383233532580038094500740190165274734171925082270549692920565662967473960639224166691588869111323443100167847010747259696032626780225788414192238481681450328408876152197227782118320181050726864676431893600854743375924997102955576532166797780017950048586830244466364833977634380226862421301252651698023295436594543827847458521139180463898442802281906369391762543194182997217918198375922003655071054517723448868034849825982076851617046843600283633010977195385238070541730170864463607237330014866976938139639749960717025093861182619888058738851711013980904065592104975062534933794292171948093293072007992749455805890610301796415647292630162860738094491939478550871215382896978653756432988563704697787941749590718027121233808376611126568194665243887103358670228680594669758735590595690326521188485660002151895443126372606421462913498961823904785304212151781926765401109617557721083085425909580305007077175272482331133255014755229648551533313289823430042584808569139236057321855947517934408008000355301360128064934779374659855171869398677070427051387130338553081520311144067545059274195730837053695310045396724623526809723650298914834870686473104577675149987934394633940724197071275756358180530599663378794587465260803013839284611538504070237908847092416572872025336954826843227315267302968111222756243320618126196047087274402369356167286387803909115411111200927703188439857563460274842590625302806617591077013461376027186405048048912005732912957235390122663818754298227522414058570005402244916062261801613719471128573250561692856336619142902122489487254698125294040466061387494138022941220197526060179584624316541135207534855005503010157951572820426674824727745054603383964644955838314347176068935514249478738458622454855691014815658995687578112482847926907355051520790550311191158693562355057281547577711614121847458482310991406235779819234009393792824883114162958330866282630290710709793808477161445405435772512291383777596796560277682429687333250604307143360762851488274954461763276840863205607845456249491377149736133081276262888082178193730920983276878665516098621305716334998985448678523308925577940208773834005889182301396180942756692142465697907329416471128040685831623844428327590585816426371244040117953202039017828651254871219132300296744519896536821551102725705163271135137857284564741321933491032688580190562324375545534780450932705718155543789657413530055431643546884316251700852235748975292302013771966250008329870048422174838378772793920875039386517385811468019125204826687281578881374199460314993807263683084796730027087477543561385331773828506304048614236004608112488886229428721890079027842483253460369071078988501698043401746406874410283372698939385096592953594321529650236378349656117783184129150525806199667046203515680098928235384535279905050277447412577445421326682562520147795190216767778183207938701055925122726471987556556225715043864421581947874635500091724452814988522616488938810396257433214389857941219158551099241052709662317021059596293910216925938472035753876612906552147178171619780649676806248965127322249051951190312939283046766738686438722509732423703783591108052540660555715060867682391839278316811375666504740595404709147349660207635197935626600064986662596618829639836991029250578781912347526888264008385932105789860403449922814278660110716787515684349625441141432647440897682049530424316182398262076502940194537929762834844981280330932448754946352862976363540811694542219817890995199238846291762926643238547500625668510410948723127388438125334060002007386303362184865929173797492231765127053400993997002384614689860937112045606798196318143569823511075390278815249911016887873625920489665508070637397727972867693188090960647427000684970296243035815619216045853670379666090154883176004777280919772174592395598520078307054124630021975751578986041984488889354487795027573929174664702992836751128725446003063471961665948543033399634104564057784909361020966877041868611842556399919142118791535200607920773320250687436978756757122040150198865989632108706224680294714437312363311714071307888063618215047244123288795803682524099040366345219025499280284011540111965121331844450748945812017300746967797706275163060032945884602057619184288723947884684358094079315945581689496224485301957318357042102076771348650776639012643178136710312239207178633031624996587264707222405570543873055421697415881826703677948400600968404196400428645381428977167370638871616403317904619323325616059042826490490994028012628743101662070448661968896600443888862209340573600616657146794181399772391558795486744546569232231354924014770148667117857535538944029736313429285810650893391146667335608246054792988601626965708777646218620598470394257834777535665336094473274033075156589030003989716734550079369608045874095388618320923541573027295037746827133653166502863230763511375594154726949081995756402264824936515176683262730735237056982752230650771020433482262794200375949985003118662235209350435750140858985218523969624308702833953265168893653509626390237797492240215921211565891445473521456026315997825903209242667000702567258366277120926691895201630822730181250837474652866581260525585294673763763832758494958429430113137517927843748157806620982436017633306077969032615507976050180616997527049888440261031446376039938623852338606173574425856251117723452088986193157534127113870174525323179041639972834480901787143969436761419793383025502538931736069330015745612843793346172102344636982357622613783969120882265151966158406768484823891084705309289693520616896835773527566448072299965834244102547805501357731777381067923640122193233508778057106026044206475139447751011102495786289668011417439863262159874804363906398516431660616534164175597779190563543077030302208639559898256583251348825168750086805463549565025321545117170227159623679972240136436454598928915969784483347625478952879973009707575890083382294758793383784031935327568574048896717331911555725203178447063358544568139483471190335159508515573015729866951808037663955200238160141801952760184491541906050635120019744231398469074186172750908740710297759743329130490339295974145264800719574674535452301605790047838034732030105901805838786963716832463969330864126247960812051661537498968435885169552827595899491989558644761306801178596090113711759608866065392315586274080920419417663969203313866215759970904287715662009768756492021043310898385657120778319900403949423518039058701714464374976397973893832716691398992915690933789257868310851471985641710220372368871175631754892643201042358164335049111596576517032977151133130797490075737914930598855493193595193697930879960672170541754469810110390862039946170693845625588688482364852536471039221100902407883634486590622573310580260683932204467617218586892675973328300674791362534611785492295679430229992582118671399735318595551901193280966225590238074865982571200728987271007228615944422383934933833910717372685146820743192303154801805968027032344971641557580391892078189313923313310610583280353735624777204636289766506874360041226272901674029913027594554612952555970742037219204523603971348323664486542227033968081866340374626597540976357308828173088168071053855810903364601634769686670789618211717822287419741919509675046386226196566790090948974564872266526238728406509837614576879839792399007436088816753049206992036633702882338917180385034266942713752508734185994999046961734113728593938019036894581490931142051709557488804497808154151866458693926617637708765629482373768452906057280907829655820749266437341306737870042742505045418380868600429614443714728768595505442358418868216100875397353917893921923072675522797403842520432961349670975195822273718841597379882974096702603745403674109231191107225820463109489796922692740433198872599390586198666771907126901194897700505073358121930050055678892745221752605192083155685026490244434579785251100668881919475601162234801544035738041244581697079909038208761485090663944281385527891072985298264007314701709065261515347186806316669668712061847933040593948926130823793323217366700162000460352129990354334150582507538542896053191281870728808749959994347797547987988500799150105738039334963063905422956491527129474424876049091743123697702150113994777626887935734652629718772096394964239300695621430063091392743005600996661226840289868247693538236178826869690072287448800969264574033680497637433810868552434794463002794394068065770087947837265261929390671448317999091268530576531535768743524152480613619777167930896343900486896263403835113528301355542794163426257213701154124204912487063879251684367713597850383335762929924053327213037258504730730981367501687283461713995349843430094748582540651049491877396378383662824504660678209930380271459858679384314343471399179265963520449066746386110390216234368983426811195870441764540681934023198626261037314531815071410307839694262311038508792985187312766322851981155428539949174050976403656382337874408595644227406350586028594450643013559514721673066642073110310240073457135164600903825396868200822154185233631241453848311366824712186739751807694210188262590011807583816981788371300700348887840049009006043747289613913769774141463588061898212676207182865449281643908092083386380912950868498442296114808423652554139009024038625647204340415117606592023630751052283801292916139879577526571801824093404873898204651088104242900124062851878076091449046635214891335006887116969025320451182728034469181006955861833268118638447659954355910423656580044364284120416960008270192925451725225444361419397272568779063094184744371362350949486486225520885265131580901463908371542515552668743583690165949451426866865157787797836256548521872650467815428774038451478505249325279829172617350860923390857376657539301419403530688153531376064249269872318998461184869365404047563340953237923791973866990612035985147119556738859050518345875659194013401939588890644486664383013720533166257927428525375868696577678373615710283145417364702716962371027648587589593090641973596685372403939330130800981412306598450420116111745692087654478525749633665519911685765274670770639590286332314909063313954076290661439603103309617414516139384200333025325341361696573574934441186201373606921597396811539412847338912840348194338719678059365764213037861695633411424380569040673102485108084798312263181816469572044022494807005210535016786471180531306673533162710231633623238789679886709479127201399122887197874267495194318481824350969200600080979609733520544241813743179111053957572930065241275688796579926352882903550986543603432563477390194087169123962991094431913077327817225432539194577257343023210801948335405083242758327814485782787614567355490580493223077346298667969106682223538321560919279544192029111763059868403190287713713160766645810861231405877813651087560754572038814697653781305486115361967605315171448202930215226035763318104643950672569807859882157035494399791791675706428784839273214965243176794577934511966038427761397625977907739969113228717447571381168504150284976260296833919313874970713523124442968293648250169135814337314838488721884415232382617809325999688773332016907691590208666095259186094460035612048371391337695511205763489406792491578091261163474912424281411655043247725443962175876075770593558035582365234617509133870321508454145941691171635376478763850116861325748364101954429098661647285882740055515283045002324211557016661695833528498951821130435716892092192550884910391755396396092027170308052507725467579687753658461676968568662578228499270220649595394030504769971651178821401887247433684531155439312057559270271741292692737520119761691999724017514563437208940232010164715551928657187746951215975663737502944724901622874803891193753899737084335268308453991525240203017456424381326029419719699951343122258001339314988108090149306395181477308926408506011426442285086421030013252069239814786441642122303596124388684498320700904464586492641512949575067991363610637768216324924619641028593165656211465664492530015936817773740780497452785048295603894905181820249506883531009877208183071672329311097727775931777873548021377627159828992218098504763679683940802885651236202439647516936298638035323648533262936192126148813504260460275868241870552176120878137028053427620910351690387922110276786863169179449015490206151555032579746345046887067902495398162177500825994700489378759167243730526800000668020611699256773677264555599733985986472396303675620647239904872215598743925837926184538384382297948167046744371363394366677964000993205261289540494719856632903048804584323316436694748421155137649788244830091753423735366774948086566529124634768417496921363616494001301049947876883272400245784222111752501357116850238891118216621525089267236343707070853406684917453436893193661917749391240635613821165013491069865171143571146341958682785530417495572787918165027149737627737876424296805751482126489267079550676027095325499445912171267388258273745478396297309981823737624931416437707712915045990414486391104106536037985839145809410220769346345444520216114329069077127125167325481365049699013071234273767191666968889974391260989040975055490625438605245130337367720524248617330364252565974726570281725357893110631050375715790905268404463521547362357891436732575038881164660851260942590776034619343950888307024735481528963251169870142464425307483322633469046467711613784494715426625894037487661835058267633642554847264965072118054083882155510319248822443941749684558434148758210640070448007959707832353534925096143189925405640380780001087686700259144428065722304591933235658503597537429458280368188495899357874839616813647713159882520797505237989510617906714323347188248689837970157200756713562416682714350703626484299150304071150769241065216746755453362070519725210827431761144155422105958820533964996337395294658430480259484776216652980254926744712865541204118318819683008923848367414644799472613875172984280281682740347354742571991184989072552329317485049382796012942879053225606469378950481229884302821567449805041642901491723389496366815367232977426603394593572700233633011938971594059373642299961197949747758477927216253101523428667345365145606735563502208451073328059438278487928708077062136967802066543181858410208919941971050660307102903979467767193239841146516249448520413560188125593355313608340454951968807577993544890685434208748405669155112675050088597868028441891478407577232097300470838657042393104050731671564389232736507148571842388266406722799931672977812014525991394986915930591937696766642088144830892428283892340144902227385773826141102494972733516484163847942012736066639865240815171046591629824772101184768411940940366649364939789190842901518714080870322337864540403165157405644497399055783826691994683911337989281516529468127223709075571181757840706365294262176593011203641587453139072441302271712768317994991340124675345580676506010260843194566310938385316666763906716839360327971707249424485238448976684921768117421960651306079248575619444896568988112750157992362378159963444755282016838038784289381732048782618068096962871118220844314355153616814096711497808837939242978869788367016843043649153026275299824491560405252541102907077855625130550663152680036524788120987636053217941319560650650658856441773169900558236010541888380229016995055186269110407557944093306007585084570562626648591919664601515081159763088103096601824426933340407793911370996841373945303412992176494210704138574377808872842386539076367046735803363100324911913659413310145811549520297443997893992718515887332217394383217781373834430886977039271221746099266452862780910802119150714868679994829762797842143539243044427293354313088141977385708212669668975773793794334976052583391082896885544608426502840620228342797943846706492900200697229934894678270720276503869689703053190073864937689673009327586724740562743456907139816272949515710193253463516292044603360637532127481507542629655237658272967210751740398884989648437002667618575716452284987210348806685297287608418571090763231309086278041825932016988687480871198790857093216286910788859866640512459573818772770853830191911284594566842645245402316048887051914386609875016219559762293980998197945678333498085552948928477067793697257231956661412037108431848992032166657271926498258020125389174331852230083425218321997165762361421100588071364002488217817246195940743293818066249083308761416034841769219164901271249672583137877811035360376283519862459916626398271222843137396615857969802040064453875872916286998944552258381775468146757241964229499462261186969225816491192681169330639397648343605934187702932825166656349374945203318955656497279929416678946133541004350596035677009699576540498590817532696305031405654777332800521594208150143692900584437426054126856792934022572358299844198480511528990980027692852134390391943744258630944848748819014457006372802167292190289765690491701876010155519717318006424571635199116607483312089084567639327429775777999171248038798369635648828373942904748091201464952354343364948652901576185489754733672470239144617128058896606936928961309514160705792540756490293565646192728442023867295363373552016768591433918397423977255562707055698457431153729349914714594915617012624285448450032700265239084938104705512811844700901032187269536715377677754244886463119811672008473076684185833991042927206922951775552051877507157260792791745262801450663745911319277784973519347128334148330896222432674998356513586478961806114006377189163988435903708934067946226866548681415791990458586779406841774081996229249789277179861999830194095069247007351490712570748694450521141690615315953241210053618070725312848622698742202401556256405300455259442819459721218194485169444973389935563726427372840514818789748270683025352215406213114513105249676943367548099054305995301496424144183123437208702405645148742051114622010649525041725984366121316482083824213458501849069130816538733076234135571199707336686622689524981201353024558385637476546562970848066384129332075490613413081572238358851519437470813303640467585522210532772985019525141687977318270985575212809842036424807849075227460887087710811795317255263600967544530858631577484958979159646529863874429911964933532171727726863025239267326341873782513341281900701576838590010062229857533461838080138016459026252663548286457950470970488152612973908711509440946530349606813556400032511041502306238055935475917700434694528926735287128937898711827299533938615356758728635276942473470280678278647717327680155480750981480887890889357627385495796662129318663886682351864811070172748604267315642735570695063502457969329288995437471553979305188056943838506383534096655118027284976989777481463093612551697569308143702891506498203956414061957747732314242215947705757068710088969216441027766162905248387957060703657636400497400741824048507139548082546812734462499771799967842379443502849887398018247677321406380371482328062291288923096628584391473920758884411199275722466368824130404674934577251931521116101601608906845011612293692505156653466936877258045773724519545387256947868548280228655068733579534766604968517363679859704879258917917666018924423840722644425233787546475124863357386107873972215885095273803811756233430583516082207865447608261510597669441219454595991189219766392826184629966853942410796194384723567637357814966895966120779420897467668293330788831510383608841643950364944538653665109035262210007962949908188303914265457588631837466148843884964052305652230309614617873771038284573482146779674996433144728662317928176186193915408086384172159287029471605030684370421864605042258150530420679310396744083261255150278253968433050335902318671424987041222085755215076614105110956594108746004817421750874168819754086254119620041997360627439043259489517660292542596691564832645136518540329643564356754367413550489698618956923150324498370606598802463791749623776642513956124229113568766173844551969746358168654926026845543100640812619108871972917729968772513690439263998566352243234464696947035899554969098565806250621500051506028108748353078921180230521081245914060839887815588443428941597585605572701370593012794535293084933225374032906878543497373541251731161503131114776684850127524798073362280528032955686845420138685295687558508083615540533787688770667295612348654031473139724886878858266584591278509857383760454390229413991771871002078689081861522889390083322353831559052927896464237841997240803863712422644015764733240253247523119713247320312339101231985239912238989714058563338564467509060243592996071435006410594339129953367831145863951844760493404310129613617906997915515104328040405430699202983274660496121512096262910997284860722428412406733093379170051784375138732373084996790887165551511518719795410129023804378088134675659019723680658227555644847936132457208790777045753014441756737161746612731168471375382514233880450063225931210220691961675120067140335153744144177201774765057442563756026679683836282090305271004321525322034918353582737476667023064348019845263121147207133886798584939155502893008187755012411444680945019220722168243689981700005862749440618871331075445382099135490402802258748056411790703449212496944907125351617595838689171431321552876841042922498649471598938747450991208589492258384557330386887544655213699358814209565834467107713437126200485467221203475965043116159971052593223971476665142480514087181546506447727638955249339632026549385963318480083839228732603577544919452196390434991817730184713332356175037002576601829131201623560808055260308195034445912719139541394274471030671570617356110082565495945170326263685757080174941955262939917880733573080175207452794554327492745592645898571150152581434620425119035609136354995430720598893898992925311477391911835187435938155605257918877353687577374189859983733541159093676605571976896387196116314171168705625700094127806538406711110687393374699053485538480752618067775777758013857533167593259555748357463530568104133104092952235896564997750434617408437522997628086287785435039686387116337996230262021567943332045996912116171157796788233196952346937196361818727474519754054069285363883036087546739902356570269252399094307712652995242881437196680686424688321671416319353476065902344530707244083414458367866633169893997252977878844466471423736893571769898509322733866654449019263057323838730909100716097044544232394817616642853753323836968623157844239807593768977623501112937160288665002965704044697735139663822560910063333861199462794366275692696126832043696734403231455687273126093594947695261306712387469821731016877243148664343577769653760630064167729645507093775570854579574100096214514401678163807101710293435947024248990309957957777933590389245758474757671728035179626380548301764455569901037771169873633815063352646512239273277508425051809959989423147260711735558231731903311430893355778723932886506104810022927178870602198079392880991078493427385968592280905137165008502391265145445070468449849154038539530654422203499543811013622531937423629877649134642992436456981017542653560879187649782368366193134549703171758869403344981889264927573387119331119543587500861284990994332443384501372978310965204330625640860311983384293849560905141414807758277955921475432600794219505623493689159231115410204168252845414357732584170018210491455770094361755883637812156494026919878222185324222493941020744991689334005999130281160293924364411083653932457491051695915122655470282658646859924747753963089301157737311409082262926061691419615007917001373382722075720512912297296020311883919156820365329896402507483805123609951341337380165162484462359927712660896142420888664404795003944658118941141236015459771078466313088466783883555452230358234900714032559944420626103952171327022004830392017794915454248906352889189612911919082184152027938306647482428164673293311129002933412651040665273719493263379006173895175641091062904893814733342788869672034024513627975120858153359969972257102618750184227799487564437443378047195817704157703946030403317004692455682571653424227529966108085869367846408643364206144395834816250168700179261288716546429071794807378014543169530342454548846239252782517464735814117041442296532113507533385895697638823424656951090506826476742093548486889420762820396581177915879158919112249851353928364411405387795687412197943508333191578469938354747696539732050441173887474309053790774894277605040748970746650131914971842341508742028087429614508940696726591522114679019125142382531459620152768710602420483073791842813013993353128492312663405757441471317274197088730139547700767782606784516456579716687555379868987542417405268342479339149996157436733857035932094403093867024222636724593347438833627895951148493430440050404453108972259723271001635944404707540164544949076163570520452016063215478200081717554358316572802807010619081308192726446497284100535332681309918401292097971696097833058442762780725462316035545102134099645960239882104073387312030523075078323308629093256085319808238041417018561426816545339292241912179123339299293111054399366174058205098055133280304463791356662151616596116082016649005396913880870768697766366635425116237834234032617788618955710229197623743037635682011736867142246147056240797970014088912294498636270037357079309330090130444761683887066080709130373657394384158139872657662035708066044752563357138119507847209227378091246820693612334637264184511181291294176713578418911916087880768756612641388581723346281224506755745412796840433532686733717617010961612680885992827328060353538999403581535230217547904992443247922936305897942827436154610684443615262632690920126917189984598887054919254297051608387598983892197407499989577371416316151693554773487753278660566696857615493029433850861364559607566646319957347488106817124417724494346314291157735361934376061066162792271185858728506803560703168764632004710640061254636994703866691284429617354291220087727684978845184264877598300134072942151200511453865850079737337357095798626953645632830415304009787212604263298469919661511990034585450839368070931160192292208579115647987560230914656627633578184949795764419305329415917278381974704837457202686060389055986979901902518257815786339407240977663336484170798216447483676333382251032754616154824099708300000437325689522801892002341701732726903435422506653880471209140911292004924250459881300028617850150780362385708874511276833400355364116966941324138430426462436453893236739941339580651400699725500501293262546758992694123959846969387382714757694173697622005517309330885466663362829402961350718633793705107330086787898834528919668561496283203606584983172113348182722150671253545525588856197356523617806085445036117652961958502443843139922587087078296410676282979894847123903259678472023661153545359038743417439019400013225750649271520250440913002263160615780215648707131230145911421846762500368171785949858927034192987286424155502140033789466001286568820353144839384838138455787822164594436487280958206137630247509346875526483905116742222771095296748011163507495036567104599578172801080332003729069306083758722115481087854157997230501224660454562489492537578072698468939793831625457705417811123675814631802959520331257959795004923032590116552383464328970616018165595022085121661293980320835392426220063374487156371118389216517015710991500222230992278086251830695895345384004703707564731620113038959515727256949505614637675611830471033958157726552961968785932835627701648991888526262818975802978749793609098303182619602429479646457859707929840121172591755917784937034069175654537847417244474165703058345307262745915224284872285091629627356209711912455705546159777209528161608287017088051578037867840866662107081975437205414767352911269668152894589321441532450153897695396086754143256872337478268572490468327516592167659346243575991360218072034172606570507192369684832127580358169917033017899568767314959702310922881295449353149163586226136641211591274269885196534247477370039876961801045344354681863352428789556833824590732176306454907074143593673751695906878607687435374029100362033491530589711614554864767190903214842994351841343494245343144627494065069911788749213080268736084408002104588040681450190199901061203404244843767443655177553578920263222793272937594177546351262982672115987002957519677956474441104865583485747354431464918809814393733563894394163909318924882476475041953505861968991835332106564968032609862506991532494892016674063870150867108474680328937881421292830463588756423615261256794293604422495019732652678510243926213696449751533042982476915642799619291615639169060306919603082996948953013168640529684157016601469926101221660888379028033329528410399570290524131130524205860514210384079578681380235516034644656489166020657855079210664807405165643490542152264239640101268911345007607765116983978297776748816520022383730849715125480271297239222446389109253700481217530216572564450379163383314032023830104775684380664649714513216099317367695593024916752639323621090216934435309838776137175431345914166915529676207642342986768882844047979207945358734664292453195848807077200954825574981525683446448985114208260369668075512979334420868821884367721109315255307471170623990226410356409873271039045779375269711627653082964053703253086984068243379849952546221326558033096092187593716831608301514877021869488426006360143991532256996459611663507520111772356957696692659209817165420951990684877209928383685634707747937254087213556257614515782669654206092915282445925178098688670716161352162528617925677871574802702459590503947613554945033826705825694554977974531177902529062615630534864375645175173833765407525439498004815882694779345145400428218756638714010689743085788856786193673841916226152517606266122390156094248101159018898313763745589633346028312178599521647959810936811109496241956908510151019121713826762848376784878872142614584892563018702729295120332757482007875709535497382960741692385208897268921564506084301785871371737859409560343654170257533453128389566530524829023111514933977595585907776903113035316180424931269453932508893016195437958247537146526539838625767302168808234851492005558973095502472599395843440062134175916824275239822430923923607195702037043235492789793210635208302903173188813917994287323417661743092682988039333061614905980967427555215650342135862928593959978859539303822717332050751375980127413689690446928524847040367525822331944935468207366088452162001016838480057696786516004283942073876611736458137310827873533269479109161894407068550894391722065871597637271095928139021719508497966227869186507070622452972362677717954410218170184852152746880401075045482055331691724886849105185929946071460276827831271073202355609965210208014385170601809729170669369829643980750322656060136543534211765213387498679828054431427566481171666304973978243468683237877981291288974884481593843996705211729145585014176343055876721361157772619155754918242851455695157338655070803767355213887895959246763061465348777270274614098436534195670995557104797247180591946796268557814313393581925145210928524734199845981352740861448130168966882501131292053040021401193385093609372546646390685163524952485404433139833253695357431755411642692563243339338952875613281376265977904763072447082647876578025484615496570738974417204258753287465357738391320480880155370103270053011748311671752721163473322897587177174960334136804363382982451076627932885192158125364684987214270435400960267629355014696616841112313584542649553682955700276527660278935910528490428614712731525991860876009809367229725260119732058201667366971135924768202913427453817139998651346666384980079312963024755990728430377798790347914245302678763498460544065688618622150630623215016619182325972732251628417875283105363361074317895645140792400059067313886679429605182501540643597535556609983137046453989680824832593967934588922985962445351257700938070924874182187683811353142950158960542066301339217854722853100234613971378057353882361736939247618632188914116763346213818741266904207703904749706255592410305047899666572613016735293874197992572023409380789610236650391757591619431624216520275387098732644195297626222876787786876227293281683772303361858848179872965923214062866098395797577025074817515033740802176129818500407306807966221964737947633825062119077753531773956293491771604413417972488857959008222753029407302063368965768098970169401280284133959644330807518993633491364556983197402811396912060317590990333437092253338689863469530663794914988403305465987843839047317963284835494078520498014766986107442631479929243617133758066645084644721731448787985606555639377636988957797485885611334157674337924430096638348827608230649595822777895376661677052055323292946325859241890138690821008982779669975421522377187066622390362658443804130765369371792338962829665028955416581492672536549302437457328630248354319169335884744627081352406722688237591919100533938585791439319005882536656296981538969587826594422800936565864158492099311561751914310514530923750256968034978414399906398299623544170182446305055211257409842630242719686732042735536536890077910363355188106789200722760460777541086956488562436048084043713835918041888327955457375596376409070988757955258390467748956346729942246322391485360150343350236719188634580024617999814805754891242112878889026554615467787839750761622306921690413257200616417599440514633720943476850771461464833407385405916758474867285116864730485263714813027814469773783308005895834230961653468665777738047121505430782658226896867066033184758956108456252274960502255662677178249002096095434628736975708390386558354883372172874120159928524259561911262183659090928762391540390603553130130037589661652317763899779352747794715622175338052065376034331451954724803736096542260019082693826536755151313457932529818977068799131233142039814694865027532029313152669410047386005118256509062947786835843747435637162271317757757469434841242596087687827017755858577098207111624601750010238382707993457687483914460366207025440603436742778825465022039305200540765255072641871833363119262253339694550379759799603367457929543318360579696463827793743374725151346301981184766190716768980051362921769922508087234204733158205888838137929289091084463440855084269366470855460207748173946682108974339036282729810094978456548963701750834119115680004529644597918962905824974381995220078577064252419177529678497505575028948316788978787835886471268523515849699521733062944584405783417225914791181268566694142468357266540474408815172587112484566276543183492618991050689933096105049798760933250926684994800023834518914649830602565575218271194410997364965568786740790405686188914866709767042059440930074004653624447178822663013986907683165588969528735694125054067057783011589785769740979498528518645139103506393190884189143336722175617635918197737647956395462344891669491508506608497203142957122883381789405772004981335518509050084508820075566319117464222538231097398514297707896910684390486210666066823515779480011829040806951193297360813720308282962800793324033647257834111552258505973515456847418600368746546782737739078017220265845994492786651655571530699752585388508755167052540711662426263362060225853869572511210834759817565043294315201702921465007389832895278520076696350876870684930537150169148640611256208242034605362184906402380733554814848468770306240993265534619068179780056873205362213477798792573802013345391237275717851663832667701592465317270900172662247080624709152141271138317369120885370950066822346428110736533067527177048605709209859495715575713622380908346658749838048251975682236035345205769171723567914265173018462399792908705881373512270420412523124355077497389210374369180957213099152713949571768493620917404942340037280706875149052079559837106070633670583319136313742933372563992140989264543012154881865924744546444984125840045981285321947425194882578174883842606959683138023397403324467335772668891141392199348260556733806112937003142067358659255026109965238749232311422445295947893202246226118299220568485740240746677877023702281339875362975782292237569497526417460654098111572591386023055638433379815796641767835924790532829804138738529138434470887291974223040846097015373759910341439714985752783038417271629702647557374930562030036129354035701409437851065837066295740283766346288338820790295840451019222256207649430371350564164562733373758299277358504760989696793791155944315261555681352390037169893562105236432558985862235572280915746317321875410769653008987230879330642217253486231018554216062878781916442214000283912394576567657186917311455337464434072075365037096873902131507738587891700513215947459355085883946421505811857094015292134446626179159183256364094980087286392282589460320173557976439296246549553427913606981776316699946436399886829477678926994172268587734937007744257171654282066928901646542231410550052178229980063322082981663901752890711224654749366390739270102561016574672037548446913564843524975462104776917046569214857360418488007748780206480664373419236379707241442671214437015239521441480756190967598105094804634778228005741324796944156683085993474327538615858037599264689115239787958698477853084241135221386534888979345943340031641002680412627060861996031189787182742111205397392848649820225982090905399817249257871049299193629614684172275239581175035264106008094880631788026363301370615940233983209495464220260214837861508571327749920790551198613490811833211075703101351935289726552525624930565428452042130831681850661854453213643629163348594587661586213504687118766352121483431414112195160874325537173402238185248633409224996893868009750823158605401893655390297179844993137744120804089111533459943373151374580853770404710230518040357716968010632729490072363954955372645612049334944322768534957029645095635205142177355902320967304073596857321401124376425066482221026428720184656065547577702545109510059241820457724609159846366457548885481804171811862220375004781671949274351046627189719709918943893508405949532822145624534169368802998428941981418088574913524376768968214357222877205807671166273830639407398603928239297701388528737952904995945991591141338982007948471817241363500709299984559763539995626556996839562763657364219146658746879998754771587502393503034370526400081862219916958068845031299872196198385908207966328515344236119995716733080881803856289442791495815820722404161096295076002942697730549712592734464214767216063158218133564212030652933419218930372810926831744358554929847859514498004354273169296760774084943841111457908330881253180207735541353995915153943341612762719702921284708180126504913513952325271367607658293297417478177416338841556501107695843780607997800908279205614152542251756783016069653430566066762936105351494545536962876129215365704544058750047799781672515000799233043680284552696971320538113135245185852892719220959689083173703670581297991494455142358949837609013156545779950112842472477661489192060141047526202516229870820858022160251793708106841351042094993049615480034836164966529314420787076291542486887252775989623143446345680885940150087585958878396186595369160381444791198671614043980158466115595945060759206606995186780201900464971864870225568456365638031205645350881640353348729458153873352552802288830548643375908852819319843149094565077932286495527656986196055886108964732021875321662608743674076402578890095542611597121111162956926241484917008811483864939628059379727324187658933285282672583734340935096800968380471962605824909336674659218322384653725485523546402694444650587876930652941304258455372696788624078699368939863514799228416306515396450033851476237272659330932672429126648305444948875907183603703990500711126810307067659262970361310042144954616893082280835935702240580259097837656041258597703241224644662666653432990602122640807697392595618549398663810962057823527709931157032733032174557911599348162241977326101498171357843563481321924046873613709267063682598892226330377043054658271692070315835681791431523010491390175887568637069304332254746994495296158844249018236563003967992422354230937189770737283208866277386518251842881732235398950018226443927354914265867736290244707252139881073525665142325280006350268692357640488873601987914872021496529076872062735343107173116068999557226459416488199027899998028593057550618651347576892381260391004645811198642006962588815695266111997731643798601596034810173653412668119472819077394126443563168878292351337866666120386747914041482222573657013889566471176704502712922417367123751875395723234694284526117504481583631759981355892626879191822545760573478336321686440025396950981535752956415298298014277655633422769538336492768289719699687899154767688018969858165578772624003203849282363103439845754238422814950462480585593098279923488622024163602565277215558248145232685225406893098924646814599742625116280294739064687513882934257677793577937201580160111896202651298200161038494059614802722209545696573921591311786490621237178649493018236878239554235426661643938465422423124604003578555907918951429961804712267475870683498558073187836174041155649711658574304667216916829664446989500300374325175625143976567644780845654288372811154998672379462613010642837204161485749647403300892978841622812521312765969922387962928176658257370730239985972967117714770645653570136648545484794870840573078551956395216391994840386133512915335392530315986526440549392724528125564612339197463851278110720508440892900588957138888733841834472014756193138370777595615015320055004528601381792504434193929173558442260453457491580478288115511205231354535683182310994486504094138463460866487600941266804140226218212227430538426404733758300579565030633600791605653598765273422355396772314135305407089299256810323323113757743231621136554745033943479234652359675223263706422010689231444298299036798294425454794586622670089495168628945703772406668685570910804596827666869557210963777858880313267318289514177863507793985524187275342458187435970290364478751382421489297528470107106628731128054381708066190501764632907272090105148769388655568838070703893416625049122288283343865311756622437020833313823922768746340320732955955551624226588137286418771898373346931449740489334845346098093164636433738739846069291708955047982538483971793092622439478008615617538315014012150526721529670501104592568793710297683648732431382121214943189772015268258818973738455990571868346327639794991283043695580773369604145846910749354199287745438271288279060936883064109997438221040597799552301184846926601662503300002128655040509093429294166160512269439762727423833761299035424449464619255383656273269094713033714172057461278796402667651614861722671934766887628195303956332417057367007357419792789455022108772835189217308849254260830765773257713999227155144114624899758833223543253614245566642547156164004875683552583312021712832506875537745447026486476372299183601642750348380094672202544893177605601590336191625517739168390205007321517414451513045804016481670129285364161892906693446650590252362730810940393132382856546977766346645125321673071071676868301724412535433541389367285322073400043705018339449343163265525276134650670011007925542027400509417422001436390140591719763709582302905819995664410942877287688039556518308029391587118555229474487883544278004099638221658545947915122021736982933572451673021025675917165075140055894122929328836479972768256593653710449483585299980198222265770834569545842517878769662234227633625628488336003138993602571538322599632928156130018150920406301277505719140615198697450176775940526815240584722822356611106914568160149511005828363266186874937094778325149452981540533171703171047967098978590030965576138177287874842511870625709246549097847498262093015507653601112349372852691453421822447339027697685035667936444135216714462867430045561013812615766203349627910685345210593790443923701027261035452430600557785143740557193023059533433674090043945873480727709369075841014118662434483807400131421624891385754022353208649411822242562358620680352542229597983370329746826588040585773303571262197408937798460036491802288919533661265521253916677697125059321222197609592908595991771038562433309554540533698018781889882727535511623710299729544010361616788098262691208640582270183832744029382316011546581823625662637881948774632119182725839391367140145214513672802799666640775405495920090971335897892850892055762079484532673639004203268225695383105328197572525529204989078635777053056781639255864915443940807305860684277407775260198779561826406223454561110509977080231506140639645798988244669906063615627611316372063471754581020155047810373577568955918836369029037048908317932530167189817809872734487409149466704559107864379403674959468491452952394789202170030362640418895832664679700627339678887802688498642859256893849835992195197130551717416853529011631760576253842397934006342050391140522843004295003856510090173966101383101942313719146575591599050637439514622963136936204148402617545145206584326693227819516981585357535784981136540351255852798801664213445922459002428903426034026008757707780595677064582692743036776698507072390290934857144813485224868004979817091038517813883409088518418928459173216957173627554848665843400497681017010718461816313479041466681291149110881800197002279321567128081259355761158824014356092256394782681025476680010575106717655137235229483385909597760641152138003395101313351297898329751590538810333691301242995446895121760416428280796898989442195145092383622177031699186879902666092389951143846179221264830357791740785346025995455247186794231354131551396810708896212293679797702099316967776051867772886956606700493254266331216319277399636120903133108484322510022257591453544291013064516221437222753044516669885988161216226660316006621443458238118375127542046633229974687424842061873637233260729386721623216785337940344849073240839135779917439025558185707871599252190250328644874686298754539568030147016503288554440340406975575650659493866468764347257635430442886770524162757440872156680671996371322459766420363459636824165816329073447260410491139250890422772011544557028978363956182002773741627844399808771956071063177809863867962240412535448537372754530362795461478798500023054520235431259824456923585755806479365436066799585421211559965661725968151020614629046862611167044941163063434907204209455743255516959779347392018456310934919306639849815198176817479522951135590947707254734020366602310153335849504009303533658706894370191875346243152813883906141730769088477294382853800796002368599024503120608477539016107336519380065788426313303383973994639516663985815709464021625866033797996683913720447898109119378736689479509084710670564514822759375292850928284449867135193410872658907642005970617348992096791077035902333890170811970318678666164862175340350802425640893203518876859121955149713702704666548221755687773513912417383648925200274323364976456826198304470711632532443731222810152149016742884413638014775166954164195951415866987939096129118794644391126524303874038793375464682917607471258456989182603459557439356603267997319197098695566924498570658015201471387327443289989650921591721207948457871717134257136626959752708762922141782565585644862499633634384663597452764719787699611547528180964529437580227665399420411688412685351676561248132316221589833634940915094016092504242873849851947854712279243018016279435226259620706731447848497796024034397445144201462015973260531702973283654666679999153310078853922491824383337326162229241678993108495065104125285773760623172373166080811476284783724826500503111006038494182181924546513153025503740356950405303445459665414719757739033008729993916479494807839167052083609440152927896766402033198392768132643658652355619595220350144876099275511943463504172347524606157333822865816264380305189968394780876861922816435666468413189261930800985307870440444975514258312423346042503948412000812626319327664525651869514244197684332956997538143986249790304558079032730515962987360856853534221613796230224204510929741439518759061031072604025040260316381739312242880986496561972964051125189468177414438787148752294850596598371913819236127775068381975004135802528642567255764107314931549094603033420914801854259144030401959370094676862412578183134415887662929558827678388422115169171789971726365818972291758186849319798264107643597867468538735707721829409218272191174860167442288327351643450111339009004919389943901064289463928567169370546690170109384707724678901633110108275643615600096188225631042808180343179305321642866543808950451355863487256082439803226700504784069085854019108126031977912387606930971368451008931939369489970513981635650363007471800790098468737973222077462257937468135969304889884544169997973409056916610143609000395221000314269240643734475469009581156917182980265075238705184332645432888833645952137497243106503017899308096084668301897361347823074583857083637707215272738901701338810719690476787371932941545661306381414025760798306216001813231263196367557022134540275206156925464950036112149053836880430043588141890693945302674325245869663079780909348388335666881501293852066357486937376026337845880614433415992929653760419144320790928142200142643662434173088002911627138530931330280044850413581469411044043208568331073810402278515883036923181007746177362099350653245126016714801914288070681254026277845574350283804310090340483576064459267737939775362252825199792390552961446889722420419974660047547993036570201012279121343370651054286405944460381654215627534563774157225873540179144638900022769250406993741459206381105646025153360675132276881571966216213121538572357468247974012653651049711492299048007544709537898882460417269262480312788008702817466033166293309079898910961169953627592145498373425834371083904114757158223081151050750551653786817720042883135302750957551282926980096044595295004482272859159188682685210967354792528258275523367719530638047470225823111104784954831187625847049768713565789365606032290058387590892699082416465562121668524615570708689877864574806459493756504598393271156173009597468012643095003859669193010523944280207263831271434682819906418208733000339637926970957884983926272919307759974114088495112198137333322206242170442483703526309208784879083833112348915373785022725351998757330350441870635332546625498036944024827078451689621465911631725016863374603672519430909067329193106411442201290264149468075482988255773328170325176986038619024645937366124744666067558506178932841394068930671708147987252889698862503025115411915816703650491322391367425268304525522563742757235501575068272869884725594352876770712526286637450872325708804188195065305308947054081929056780381282595764525552682745821890900754795980539335395153336411986418271058655665752118577816031794954911063654781018387120540364036439762867712239170303497081828693617305439148601401746849361487516690985989824510975471856902267809483120160939785764933953189136399942960426763473246336544675989546078624905955501617250620619571996295308094325102249345274560127746306770933487394215098472547767369552747068827645077634023607406171057806706195940955147186690244893071435695018767973318442539489159338157382235503088002386375280448893394598465072593722327551986425670541305423117785385211438935350926995362161633495663621374793991684685381694876282900076873956163411918886164892616207701399823083938964045159178878487220771999231323594912190338711975029838317588159306343677753866067979685541350417979811842276263667325598043258471637377305432277211584824790768441589746905663995601368902669986968978332276859520030362400236126391595206549370638256337242693990834754461110127345802780925583778885498334422447174807742424106047920710563920834685428215479897104330490229598397586511761314499299812539931545351509553378934307802159997648713401702593552995699346064181224818505083057206029049657978111957266416542381871923460811872620746990337886972833081284398558194542818860477149390854224296105123743807234695215929986583784494313918876355210159031929701434457093196988099611071590237241680341830677576011950048634224153201629549302834506843397960322895099340145989301964557470826382291168764604616306476378275866128920990248563241260190792630065119514555877119053410462058860834238249833433498664059683644004036893410581134820758343137109938447498034324287765084997310204559031219143289941671688569550889851489435960458865953436381057265475857604460041347783967601431383996046006455000169862774029181718465408528830732387816186079767977563964327542303814596505885181009709910213323577753623560468672232629803923514730893855182371006116088497674364682473111745493262814573765689282683811270197075673570952481883815177802650970842464605290524415867578041344485358910584587110160873937836888104377899361030981582100197332771048340934758099136674662924794024889853875799237241579723216235522222541930250034644984345674292951524483314950349111175177632432538641991971276193316188451620403237888732404305540463787237780335952164035149452253610939982053367839630360111472495706290662300497941647050550037467547824210279042118877232384776218550308215551330161018496636841098776857977282704945113863400292796551256360627300075882280197960109910506688349656170936241588789334320767390078040567324117778715002953059468247179600756191173723142900816982680822028578910155297059310461278840803003018377953292717099853980929426329031639784710136627846291985387009260413432141055225386994482214136887493263836177760597160672631348326048214814557653577561086045279708191780946779471639540904991402381375603675572431078194313739565196112436541543783317933508786368925888141489489132613093221853222634186529684438659465536018634936232448096896662246598957312281023800235995287473106368215102738829541876851501164150485301764723871228424021475940082159890656529501634250568178680215282713932739651629291230339806500105479710197294155877119466072030284756846128040933319635529548569236049690656899911047753822298876180666417648070107292086214412308906171455643552449739046332890785061776442657870578113279323073152363560192626319374272461297882144645931401409026541746398027988678801962729208730171370249865045870006700947256833542386109699691200351341891161000642283205216468067097503308568104984631950887580049603114458114986392631281002635660905948713289117344527151887733750773754141960661711058103400919112948331171254779059340879309367490380314494343220693881006915568867764618710603320410387872634824996935923638496365331829531694028720461684577683295132275193919547265556477700949118358109070320009530694532795281136886913266994484705318948155759982036931113720088825542630194716683574450956312264784163382327379055352309877038541874740771184648858757657751990174892343234617295717677719139247044353505035137202191480393415267548988949854722250434935732555753173675267351295149985420819875955814904685354968974590522551003169240440012036065792069887932288769208011345603274501676716324438911019911532381095904034330143460549650545900320820803704875730639078464831516425254056052144963499525430012019876407734326738321039433368622504132196412775402496063261880165687452248126713714504923157602736734512797828872903741752512821620204730425718143239355709274720746496514567519176385302167758091988354285602722683587123981693653992686119305400349337600011713104846501755484440108171753263397782526418081305004754361339937100273348850451254789003958468830066946438605166492779276942812257663935711083088238781224929941296697643523915816654364095807580976287517983494492313906522806368450505622433252215962447245473046830664187725484157388026007311088263646046875276579825973513085019469908411359748835469867144287778989673483983260220360728727148219586920797609810916480135405906903984368810075687881688268671492978076043066824003808471640372195343494881967826488563982876062349670208272599287460039002165644827831669614459220532799039903515730508160528684217879479631538621457310440573002243521534151787173148657699904312829817068330399889324085921733663129937418657270748449302066911908121725143737616714890927555230812048555219291356544882003517081154052619063358389795042631782668197374015974404327887448999410511569358596347185256894004399308785623432833720867435424548542796872147581142246710779367952328606825251247389504469133495117344638703064766008104326286993570837965936458400415530137098767774724152130897156900854525565119295191093662643038370936059924789355027066192058844959253678213417392215160399567208637417511751814716838680614175505878190077608814301305576322898500141217512632778316420773094674383611377118361964750517894501329664672098246189497498424492351723115705408294653005255919678091104575067822356862678704969521283843247784893149703455431629878920335004355727545053861227323707610833318862966615250059116810063432541231367619298972551305884340335195813065249312517584848233988512015992495322759118087979248169405710511938687838470923019007801538919707474151001858986604609983366130028306971587152431177398464680659090776260240863660146910956914593921818221892982101690762490304246713344102380709448265331718626445158770866268969245454287517356552411350394813916526052482929284598013382874266197629028270718784698777084629788911037946811730339159125366091079431623356529770462233779338270235786333249122986065675765839953875770045869927309508686350680738557630318633197869901382455295076629264929242744237486799212166689318494397470663655200945006645353493524007365344072190178049219553825948683461823773821620985223380557119083483828566707849181904216538204043670758116469478221425103110022959750536657062362489042272980157880264821860551077869688496125594136629570146388962837551825873115902721830002882093563541542472867307302658934335615759864029954172422266401148231825302899346735248093029249303865326767429123469126615917545269195148599794306280156257640414882222907844312295960855287009784872495169548354664876787375760036931996807143934469574648570785720863991307268386421911627628515100064653110163362454792606621962615506218676017910215736236160110438309345921567296912448420714074118871198574929891039928126330582234475318585790642501035740929552284430130964555894458067157322150562292474611844018197519984846046364222954935281476906729608264789824341898855588467872277268291089921657392840809350553600175764236365910771595753639207001686943836957029262811070927040473518856327250661031194917026150764730776763309427419383272654945726314305650724991984341497289743354609966768602818808766397548783731354722199219649588379079957288458377472390261477941215855619250009293638346014137262850476173046557693301504516266880718474703689182562064641462047760363379676258148544848241054205655832262529050178956066372689359313543039308872565492246344570936067954232382792268672591773628287068285578047510882193595335915495104774748655633581281493655505126702063126434927430088027486860979327091985239263633975749184571513673534733292051369209340105471742148519143892890937110124241376427884031870609979242588845913073006961688949929200466196788757937159824999193516910382854228283065100510196053916825944504557491832944095218864189687637426167305373039982770398031892499008720442573095404630823662143403906695559311139140132016915013556073770798413981141962035249426898829885830194211123294312462148030188822550272426897974385545732838765513817809989918769225221775417017758202364758344111256486622177304811922818489228865052017014480226370945936792699330380133694308700391582755439013195324652208753229240941110513577704402623552400279128171195183865777943798715167422003725738381687990103284714518663025272526698525632173487497560477419758439133982303683306333868137075542268198388974248733534258256227548767510014901654224949999550118971795167397567671102142525885036929923845507173645232546013152389601222781387969545496633161192262234903051322324344488835688321836050120530502161340308152621433257432715624645213356565020975467025298054917713104461829096171893107043446138609776012245310820371825053311910330909206559890880184281699295370681996333866518950079959916886236098554135325154919093555535753690796831557099464615197375353358138176468063304635364453612956031594848732182586698798643304316174252661778933155937756198262910878489772459279362081901432715937295443946653229118486067243522997740424295676855995304961396573243010666575185115859074138780082459512716758606433752746442288072715709342865664221360790199246703482993726084211030036311606265742095126289423310060749164657404469124569131738559821383956064055354979697146300418860644465967868623965169673780481025115577586651894524374244539666166379353020774773358901979041626775198126303512609218264384995680244145869144773829749142116570715852962391623344469557417343778761283074834300016433079485758982275807570599709135030207013505179339432120413838963216759843500880068210459013316534634849580432107703684098610547394484498602377114636561752712025708501535335456675212667090768309375303168649041542048505767419497025331962537771343781708154808391465206669260687793943384960970576941137021200747392879491286578345117856715132035806116597971216813440699147719101704464872951652252774479480018140227695542293064577487264874320576816349682130174697220884325506870480735460346989947844569908258980183579023783548254712313499065054112027061311506585195668427592111037437744956600258174660699198242406133873518226875647899647491417013656894154133559948839918964250332876478452629679515110022251070797238389751065086350307867008174325939040237907926244014879782751280733988479219032460607424258412412636985299013815119699294603821889975028725499135244733418256980460576104958694159784071044929052125184533164035891216621448521751581576495301765509610802849172177809886708699813187254808132794399846412110836367017183516990389573608008602654407612069734890719382341221726583399406041505773928113267696751703492997242700599528576062498741758239809755876463885757382857225406428945923840242099591507126813831070944895945764304307332342964421740597541102360338158960247075779911574720793967933305743174537785311157651903908791812198722904031922808002941556291263534322986663475711084299868253032097451451852474088023316545723555203245598620025415759864483885856146245807898992937870778126130995802519966982687599719993148584160529680208107753841275789982468071488645420715231429253488949655652555999407865878140981760944164465835400035553086292798020336192794366109951363429932252306530973836037944644698729079163519487813336187263226314729818829267309505599615275197838083064403963547084931408996564350844880589967009849872387284294393107917342414079044148298058379859184846764624300517103209018964852906003108268307902556656369738221306197276832970890394300000167843711623925973857227739617822637917312765259430963389858570487929299586990198422419527689170104005887084525805358469397648519250111368346617143990905152068883225016298057123105417351464057717529669927210301342711188164000158037205442536334243204309253421487222523827992324945721870009887484186030102991700671566174500241601757913629108775054430353653228178083634956394875751229473442067613939191255296272169899603773512419951247566467327866000067764256338654624729186343331752398892203948176274781118674098500160323876733237533903258579215453433439179250362550173467747913417213716921750936124420020726074412123478951686124789233536075786637327635796049777575696797192481453187107008686532477401291663062907751643191552974277589598018426708979262862633052412336411729028884051882078080226759794943220391310174352698047876708592630950087906446221644963076724230248402580720293801093090888609463786532775928155167180863186409406631383554124529802965105853325886515592438073841651933391214964992197665023585677021042553067349661247589324050640069416121708533213966164177142644841416368916339383493086986976753588992484080177686315626757976713018410057062351506820635488390008955715002228398321725065119569960413543185035461749534156913222377267004388919137237853979827462545974934056987167498653120984193375693417605028091572828724644162205249706980463769297803213708712041446680103065994374799153373958247188250200036020171100205493207607092621042748448538691510944038408795386689381840613907617183369626284159478862443844373614144349796697858662538063120221710955560222350180046362195910484098387353574998890693457148062699122263268830112573164930243745449085998336796406559838702668198668754421084430887181121730514298036676377893710843731253731968677508177286837366474053758805092596404696321594948386951619529045964946135785599614629054964021330738942957950732007132257610832374385612794122456719297950482074375751194845830898953796676601060038736183670487445218046507573476600456012311166017246876383139495385106210145062112163323172251207198960609035991248669205877124623977109713530920583365807095889935173499400057696243334728437813416070208168833982840691731570464442177006642168430759164680293439483277160359549421487883852648174952675875978152038577814050090138317361332932375643280143738897056771161041106833364352068883275325733790411985360650745897926964875372688830233173876333450617895132721404941723616103250787481176029412339676072289803212849683192052883629164398571481857436594658145653996955393701960415447558100557067348005476959110918713781477735107010548516710203526510173699349646398248014420027075141414399982821512969507075328413474684681870189114809644735569458255474015021417162881099822480539768373067932326839861919493211954319580106867663830573565915901614576383651073048684172644223388966319364674492740825899723438089384335396105001044136216737720314545710128674185546492499540444180473132111105888120602142823541895551745207223770756724409875902902018828865496091144014789418218657366776646227863710143122969273092834848505171772075774458903352233749538660650430539576853512955495561407939712498099803730000521283908994935369453967476373021159366805335906229896100307477329461389204266388403016817697669278771972651326960546934683938134158744794732201849016415429334226751600828635092015842549438850557035503828173236222310220940639899398206187437089915850702609957825825375882889127041675324357067682850449605309854513502471215387141260197226304839453707989781256704622638314842418941769489822839277641277280210760075054220024761505428175572277338598537856063679368816617643466455550727514405989298362581391771165861512722147494693115297234859599319749456684240936055362483175161744951476873346026812743074160257936521728752371861524969885432707624587001877399412263345879397931949584471473696028574515006544739266908331025723987355254534345850701377525646396270927501970383393280257636468026348185475775991742322703299920840723429345264071598439342796132756723100877762535310698238054586836649165402783096127953798042604882645523065784947969620275845531641295062059160905653964974831997589426096385337477836822912290761116237710432433224497226494684423927942331296492289060902227571139977820877746793099129384670426668989250432463319780888332195823736182831788939960534650111697271573160330843447015845662460071581586494914707937633993517580501732241674687769994273079927775818504457485094605137816593596196457698363984671109607490522582781895444056061808831195854359404850341688792323491956845578352412710713305358432206925655177438211701136608232132430885167127489105156235886948946980392997901092839263377130652738196060448573038962277047453277318414148083444185961019832406396735473097056579002976219343758133327537780484644201122439020979991660750095005436614731388631494629980014330445872675299356244961582162412682473253730027711946055557254823361821040534755208340525006598430867778052148850558932166740237252979367943476631905748557162876703764423501432975060295368345406762815178571517678581795740930537898233182895458326826164145171646353537589029806364956104158418403594696331344471079655576577949265895935641701046807098212750261829196882979755956962427229271033114838978598130666809441916541889710776859408821623309564363961909973781374523652878683019502244885059920506225499716230506440383208610813321023092459544985770080395216190906930465373764160626491098257046381476402030489656938803585365837396985289580793364640746543153913728176815915654645781687680230866300294087931656934666113971974658425832368253483442874416929053512596048396327003715470219058857119084665705024373872287904591091103274832828481304007092791846923357033766365261885360406811615273483820634105932232837607431666280527624332420334181504771484888612116753719787899572627509849899430035923594466408984572988544229381490065435442881113104144674837745386066604570034736131207749406863798721896010953585153029986947173632444950746668737739116933970347127076823197750620652510932447253940370507562531235388265673333659565209474678807235448780623361936144200731595135772717375851179042964767796101651118781210579352583773887578423635024145421640305533697628790932458229282549861134337643246254685792732273453451472003252200293018316447318547937173310059694461879087181773297763237899328400404387458130398769582120333442473092818925721558631967068932395016321297840098414676425348535183207853617423646314484257274579760174758981891980978872427696427163272104338030914643467062452273458825610557372276645120706034253009790004435122501380676757047052662365857108297882381836328558842911393447229755748998489982988814836487697997167701894239897873381828022233096201106864360418006449950321430676373149726952288745153352981579499955128027382362916445371311434713667594167305196547505327638896077695106267948380749563841623502886887932819707187952893530828345733548441978632588459469512738733291753781957836194113147142218880108313454076866634659457772613326902627005541275351619538402403899374343391215279237329995277583648496297145211808941090008371635942987747049487914031665912566802206497453770916311632662720862968539031146424504178567925566130313154061416066005260162730473394276951204430081291123540034153542289909795738914612027936826863894589525141785337215556574519634108889682701605279511487023830611446356726833069679750448916407951438161122238289905942876424280167176414981846333981557052971308279133843869145299034126597473630414517102450680424440607769291767178398307864692309319268450242432756443179971213997380604696477678886300456971964237200126055384909127994619006138204684103507865583040754681549345243130672470805963706092293078919196825579874936564952706920103447907741928172586480176062498374469369225316909057597784640328352766646173284029002623732131727908504047322273069124949826293244793076262480232665064651364210279588755179143861519340717089662040692700301592718893456841713314805104997273999389479456148236139020392381861476336713740873697927253378090574942207765681309391879525976738006214619328198984820951657570803876888802894966961670048693352646206171651286655202584543419598979974167716326088612888890733039974296745781529952949335823924036592796952323872094043375164498453650221177801436791505428414935486584791106974378694684534492695484870754770970483844948973754785729070284898675834597477522006168265091436258580722280210215979838932822452884195654102649205243517917865959492220058747897434548235047740706489765452494147080680175656157915419902182941404429013981525916019631699394782296917829804687847939037171065785572986998367913536030060836764878257771936601750445791274573748597796097741935360510902755267594152648489652607679532827747519592108187832507995991686370646213746944353925118883822568939667720364380339859944473682369912401557986425879792323464026497415109475845582308674050808062173519116566056146401491608352751872037525275362404281951899458507200152301612094465594466768624681952560394380157209573647981722427847025276733247485326837080419706488499346651965368069562263454882287659906555679407266682091988608111492971853786324257083644112722079469701730753115989121709464590923044685666631555626174629492139807377339749774973750050788898042723179940827966740650844650304687145144697741255519040086385132274332691143814379799338492223557189668459780546374526554571841539315149713511468671051452779505001891548548560530831272263253898285570190333425894454515382179696353613682686100687490570075781890315815827827721090933485492173394609880884209092532088826733949398417347720505204381587533381693900865374137707574484572067649160270472067407313179330631648013396525110358106620239087594860872426177317927432014491489270864623982937431816770611548254102022995114035785354545715845231180733576928222713258212826385826873478641639763511187853662422256140069706135931828204144080345577066757294122897513765569940709462845219418496138820513834552258462082623584092537955232389923404763438291597010453849483268382455153320485002981147984005738795721048376054251353904018721117581767731932156992716478110762315993353549984276656904096989841792816747905443772782087403714295782570001244616636204411929852610906548587780672541231606849178662220720356701709768871792401516053530342887558515793880291780867281725746601865544688533277008649855838479317731908072467841198981906952806735723903931532456551386354053648516770912494261363618710141335662880432297075195108631213705855984561182427798997054619288540913909672005255441848813516610213241214728021199656477670730831407520823574314485821240136496517742114566931882316357948863669106629127242180600366490344241373250531273153849798130162905798429091417917324210087368896411855983498911692564992202857811325722210327472784030351138934193178139172499865430075938084912840778363986591574005880480442533370328903223373047850937821565221943744996514196921469227802146173267186526666148852324535917722071772666232741887001222681878415033873873017840936920947286354065590796945887353788411585565069910916380145699062257210186553268421871579390484645177197646484352264482535352394470995361691812637720350359775521572252734147950462541656645215152424393186911041574524941706057552421673109129059463268235377862754579186432758123176320595092264078824657049208402551217555066492644063566483856389112201095451668886253942237672970173976798854139576822953502209704385836773138604913505623284629551833995062919389758498132324574179304448832239075040005517041097613438177417239914134948667961674280332913382309531153426737485003368203902511983916127554864969170906617193729852613544025713908052609478759870233822672335119530582709255873949921643188665740484407318797193724862333434246106708018201146205193528051102186798343410751557861512791420030808247025457162986305711060197136120090167511247174325232663368636296072902049989249866549177165923624386878644670999122400360761070190315991362188644254951566722934175552942133471637325156470958264274521145142194041841477558268927982561343779878016433417683415299871755057049310284938448467020172003840492846396148504997487362461421954497641359717489790282777229816406407452226996877870313887942167308119910531811516845297418031898716339047533315877096014169992133441117328530257839195472108044364137839465506889806250715111172171105431332477891741869036161661247288381334058163525678464122198843066309828369263889753610295294172153188878373014879380094511067605206239416739645885027059982086576418684929259126686428923266078652695715317793414063969930831203213135419900517865851182531338755457986954124337204936106558906730258753538656976360614956615816797588130717887199233447262727526448043978439783298134455537533398333234220657597774736614326085809724226993325302457983938205499197462889122360517715764960179805524030041070303211544606720898903516050566929953966251660558198539237948216735106496963021787698769704644193624412624430065271612874979106355761840840481783728984531388634641116334599434644407792540137662524318079524763646502332768920587662607371672570800293936569194724034458291057756436812582144524690239752862880652031734498029938100318131002382118773478697209176213010503149970464693722958443836392498247824618508652577718574823064109482247272346155017959779937693789963469896499431634182931351054019618253354473685878700350018272574997563759023433985949767835685441543721025194506852788628589879679129618452185038238697870481033855468207742117252303293105441663029309805801352273096772030819290966374571014894851667915825608930041944213344055194849281554786503707393979489224804844569396247665039134823959168207160487741617965663944267959651842381017115206500882994247100441553867162002234295913383018397266507014295879833796736750551658011001694436367427541140180055320827277973726288342788666011011290260243922610545348090936952641191322947339262913279999275152981457264811511710616033313734342545258606898425838652925495137076458883182644182502466574531776281622715910047939637776071892904764838860876744917315896787477450081845768533241819705703079544809649076161546183725301461412600658072558164443779335546063099546497444058293264669338463071608058952799718175230085586023724141573764073555527425752904008425413316688035338013661732167641040114330376354957584462525099218745271964546133646407005846328064281545569844019672164239551370250943221186401076309096773766396143175696780717118993376463041558478668314522291223097123007454828433077971039366409135449722399142634708889904462102601259848342054032613409194467806461998491210199094151002814266530657267923057374737038588321665940380765986992419590085641980602152666169384403209666417300875010763763951164632080279780970044000798060189204579346735542598768176679963846562076235904004757628229398209022174568864036579593557359327943049848427287463475492882016938346946826826572664757089041044201594210273600605887877087465089401231346238549417192542732627118381473508538137815549611845225707662570929773717083411236389820980705329578578624313174233699043124372026775016002600242897902320596513366597869652002783569505740732001371080330112319128710072265504458371109488252665478096886273000076015662635503226215110164882213063007865682361913362272465701983405705805970562687649595889816766756037533466212266349173681140212773551823518755553507753500499588021586818109529212606883209843743349818418075218766233593843162875024244644751551968122230530582550501890675175869001036309481520706738402541545123697470167055932188764817613632877439350302775470975551488361448281615091584553990207802133267410647545181779283234786314999367181725162022153068262487837922919599023116257668327513638586453390549281707088782705337474096609006889961672372713512919648568029307458275405115423034718342406949136675545256089934191287091181887211893816866478915133377399589642826373400449080938268648298665156151625544405723098829069719128829784433596430239860655358517272990087362214897376212917108547319985636077315085716665567911883450892992624362026226444730100057760106868456793369930084666325580437815113617070537243345628208789705116492101963313611367837080248517283984264291231753652891760031826991238045255080624220891355486297985515057522359841834774352298832293955077533958996129434910897296005036906657312252442663688542904573761481817620958222124180585506332180415908957399125489089999745365549229067710718703158849279697841008496165915923878224890785462900550008116553009938630519887382961862170042625773785898810525361431073175422473014008423719717994805378232434926015680327464224636383073003872704696886781887131410886208086354592369849225647103171709596942330460074246490632751725087265620279178940954993712488119379064018453575038351634516418640068271573267774509203993345863992163254463638718686368098179282179541108071708084993790697524257628381211930617408862055197248119606576838276689579940751764426678971782469866342890561228049338455650022548513186378906433362921710746036125514630754491004651717934835311508920717489965521299269952284571826923972718627139925236051828338750912773525720031936496440811894558072582057696064212671183243596494819103734864957423900057949841532872892291821359143431285531937741075342191962712112922233907330281778826198065354851318025444500769088761361231677302727118332346935757432739319622851893667270330709113587962396863945902773969053891362216413091860353776585305709414648559538297155909826304847496262944137986828315845038341942597462381754414140173023270487241122847609080890932233217268134989174564736658569410070462568219865225243336604242162332163285804990211422925371659172915715444118769749729086226468540043255877293086441483944851626453830274947934667521157609470266604104000784881154715292975713025638113401114194425889994136316375873633117605899083754988697315943682809567655571163300130129324726840448777077421176226445426315661520753508165634449331568738659774367907438975191597277436215157438556226319666555377014737232159858407428170111019911007136215791361703153209247580253331597239076138778634968043175560040081579298997153857337010238257267665501128792123949752305213408325870344365749888889039898591064710268653675050343447832918501447883260231580073120034106929849158790498520161405049550770432773523855576393781821775002633950630370080196058019892541263222455123665763543828503284792814459572188959592341486383701966759684186385266465937247395645922378422853589195485235348473417160013692528445355661305451588169089922674737366105633916321896404410139341237400099086295553559767671499015341888013582337736513433835207547469362242859407079432713613459177648449358338815746983268402222192736414523598355819888084030554766287070196099430212574223302020803068903327920629738516309351564605909209214070421067023677961382042293095244945851774936867191183696544160377374383609851319516146412425108455439602950011311242230832923230334512087163902124781233073159958679518018444583584126861896640956778981501880336355924046485755859277738384691223151011447212752691887990443115758587558898951113414832397231421347005373756940388913569348288290941787199954617300284746098554843983021930640307360141018788321336378019096204628117268426112240679877233212049802370387655006944077536466901409720428202576660245025299837384715289764964275097554083799522966806272014724365604415621345014848907967579249279723850816487503503476816363716451046721302005966728747271952728145356415804263061409049202976820559183345856156175884342057018872968816004728842353467599842219835150896367475882750016326790983593180538217215955545725809292448993484687669687852843762642890357937411910244455567706665740367075527637691523176184605324622867149521475135255010236120046370151426354429737304441175233184118842965055043205485933099812407454112417137494725467790305727377436311765803190486910911162718030389385908728983374837537404639120686054634021291082796243147120070137948485724462350552908177448622398240158244466382400821442612662196037907984603387628664161715698853344737825324118901898034322149584067918074133947273633145337519758510721695976058651922384637115055353319524793081936960178440117418680541499139599205003379244335672142302582367841033204059488322474856624565574393836663720707851257860944587742904283152281916110146290562698729655379330274292821156862071400252521156328737748210002701851648096795078744515431893421370507115684549150049026535798266673295864194641405634588690367753844739295423238433086169781625251507589785898840807237965614158996193961114057934306879701398385932962348136660269087274653598326774863318118898439301819596854394476143018786477120923383115199698239707377303359991105807991172247710252807447381425755762781308399911229118593300730909624684937448781280701992171405974534259088547998464331596330438651701682591705759877855171134005377644255586723447158795304316721333002198179803568423187024778238691138615114119686046549610591339452136019407097138569710308929659290168539708232775609662174338751828972821226668174003545972138795300293745556392852596747883896487210773094587295131215720393329974624972058702362578153587822015395420104782446874947702057986606073126651995326720467374014098383832192490794826217568171868684830114023996842140938319394045008343778430793790350312269034947366276697065252383196292030717603572150143508587841724222723526680357221193511241578337100741606733908855170829549046509693541319776720082450407167850384863588231628953153063773228553639421688786707293021853021836522235536371934817352641597079728291374591750535670582938001902818160710362154428629261169883161367188521566780060890149602873626770734899069423488390068033616684284431120922770796337902908660738947547987302653384391677170180367184620282725419421559876714867899120946249878824620947464212492165108527463008462116903230840555482819535352972808959113957301002934918294993860722546969967269028011440940659371999408293544771021036940858593044677596487768998045270326164865239736050456432882324151868198722946247490392951927710048925466577083217469239093909226078154452417813728980826516522938809469675968391096364523310513971265599382983046492194719200912782803464975393367497944414303960210080756025652188898424055020639737619043531097315914621231723271835431071676542137591929515321138995720200836254722938958931942229375682236831818499374129021882084183979503640857741894637822221067154836644762745197323180284353549490148375914355398055176128527451560201908277155176451417791258854156499678261850609579032924164453201299673825011421779765992922650551142977563508996472892264628897601975339556097608044400139733403090405912227984551868764754418826954275165621459652945541086009271353910713503355655754759789329879845230636765884515443737823298838979502697212420808205083177313798195116893827246533964847770132707369170802905648618483474274376024558628410715923760830333145435461414783995181224236942128807029096852967766608453534936205785654473382269043428461216788183195283186263377472539519265563919231896740814406888177038272346000446479558965753798546152161436301993293609440470488374037388035870605740138071808836777955249785728722720824153988425858471270584589866823944474876041890343111727564907537121444635038447770728565878412312782544411840662748791416941037161019720669498229736406562019859457751281498069645519349534026450100695068867421532101469238877102353738774712429202665255185847126424799364873835596727760411228865150817135294334978902317981971461233574770373923999824271885610966893365281839005056306606190784784340236976194363356025921416744857021723618567494132171978721623219961117930025642342172190349621605167384413579777014732512392803579392183876081247034407890175845058624212637893735692672642328070039164152670210080583747004494675122478819887484692056570383404370159357709896004790375136099532773486636340516259791887713812740262152368267891690028563920034625875585742894106264767548173017991135594254061097950346655988470989833763487112901518418564436064566816217921781383162665991508861390176018029889080996276449759980097434744654436623708749818474700841092156979747883833911034756431205902251546538819991630058862752656621616632587778221374296326240390858545268840963633488310449147256255766899485875356135901468843223011464998322894931639682596461280117690887036389264199583046085560943605030108688617267743614231542421420340246719006964418443144307880121529329162140183522050526560439530755967399469117538733501221575176582545043272477705092526576867335338195948441832289100571491523832038123534178858394256600290073157083644310740662333991826981006720999695494325196862425053667383956523513032620898123472746152252860099609072153852099285886549921252928545211867943732609494989845717765427444412856364442401849126701887956731478422943213492265592199740822022509865686218343673654228881713617395386350461132184595102286532550177019795506425762437388985434628534851296977528450459724455485792477672430946036816632975761994409703235650532864822566202884304060486052081288987570553721669914933786984613906321262846643625221592080250534528071867902102417488437839581553364900023817909090371732388183729644041876131712904179228500352252467502491178354960955246360955685136895306266900468044540453602424001237126430195975954498170304706660862811965384287517671894950317301859147169894813538818646240240022941828272989627230161202389159324276450395619260119519766473027881434336865386187003530760562302384546539193834349355729374218009917618723800980552289268803762156675855919358007921835274999980750516440771031375984882363557603443553453736697642145845107248919274556865711708198008261694214444683144341141865881102929809571680293836625280268308953195404602756943095879817753342351904154193787005761625669472717432620111739186477798249665555528388086558885884429287000795234143397029926755163632022655092515900653217834837226456598551075650051664356907484103132148654889055172287012240776671854209945720175164306912954333148224943185008122309547966962544934302641676076930302075765669949284245802344503456310032381040192695004707388119412205221147678324737599492755364356158297969585122620815884627922356853083279681243691129397731511272283925016836950164672395830770362040041777645962019697441180600450182057657442055221163385566976293284483370294057419004204142218140560786930402875025187359593710713220341708452957755683762222917425778310014394552309251729663439122043469959883150930434408202329316324962182279927105135983367478379273655749686122557507195104540166542249538563804106451477484793873899625119904523740739323631654338807319188560531825505094670133549416195089454364633954152998083326123854908935366632527151199336225406788465182531616835266166117588002070716689132268065259366367258329567565394596170463466639500601556907002939377272695073790093593946761439306300441090379143921213111915591818583511730728405403735513262648651273534246459983592810334386816474243374864095249374414647392330316538214934581522340764007101252120600365805359458394523932549626676720778777497600770797557156397717630560135418435581164195537914270230266969199378219245592969741749007024316048857352703054410430899480219101893047571064254449718519636583059166836169510720636719146942620999713120514842375719737072387177726966739032649101281043843804141099327527300413362729134116315561853354299979174280080637475207833409913735141191181939518657267021694567050785173300826429247486717652714984378495584665254907985028570800498944184819167187018942334827706312068009267579653972978789213757608431565699648084129605504327361426516788094545542227811312151349959468274513743208810879497119451475335552216312176860867720825234848785562139208805195720220788606731785129304434860669588930372091790165579552012904742630643833978417694052507311613442928339598259636425829924224539277523402633520996765391451021901059260760138476844076130340308022553012588359034960286908528354369752435602702474958631361717080959791269106699153278912251204762936610229674711512855321152766150806503542792745975790793985952576101909584932367905772968835550876851047064470396370633544026066970448149758202872239358523134035875811717412548729780662521919729068156353044060830375191769620784202602340640338442470201945574696072695376346380293300359827384279599993025918928337954037459532806389257278442101272557744314078612906308941736550948722278281240256270364796624563797941765456702326065644862643781361792158294905914312596948718313978684182944432157407615309233690319992326560349720316559286717197500861644379966330555235267706237803598922605927331446870403970054467932330786505987072554654003036729556699983785584733162349041574039775273708960433670585265295225038174303886709606439493254449949629461616584137267386631016093798836735828167279240455819548663443385567349484442768587850309020599573787268866044436878263543341115912372963424789463542181445361010357500649973537678420256274378988042875229373800300448275089467594325064402562717374787866543470832463189342908883026896205596218905096112931604211323353186334243901353430928741315881076729993140362284207316146817434840675245881568660799537338513623491695026140682451623831889531538607306701605368760864607694544672772152197150081305698928655179009019623869094616271271231830047284791857238624391477032223537825580319520940876699315682132946781748774977752530190992145091289758391224606342420178537291987706592358190178884909488530093001961749127691298044713459738125446964207394892465101329568385569333233830896795216215776733528561237295019222723296584090311394438860983624543983486914553987320472743441435058084431655665471752019560431306636923048679312701169266787405761091732822021065103698891454898135240946881327754457606649281855925720743368588648868901876738398374982197532932658109048543869197977906741312934014919742623592471615229559110400727698969779215610398326542061181928892220841072626335513907610942830216342180408429844492936931539243219387872049125663974988140508403530132916460898745584835563814362743334769736146300212593981812858999933092402313835797219377437291758192682827308385507895361805684161440224933132391070661823474975858064954569096867020640226501723500608459286344510710206062575191461128216628998182143300600368588387545757321375463936327892699440446622126649281742937495350038877674107465318381485412461508285950239747914547647488007044714966432192079543406154681618046120332217923834105645406443974667899164148790918993284656281300636975641160221799319316106950415210726965698744257182085610880925575432219064972911016306326620511736610050988800182433583063103387889550304739783751390116009990094170978926466279135802163933445970771557632615866312973034207115520910609892284315488088715529101152005466820937214788535844827364579590919087731260590214854498744483334214614560407149623769744943296664253719731214333243607473400500568211349733128484528165538710098282529099211130500553581940814291277432435909044395983412348192180687824667753662917811393653550855862349208033409611493105123064626398977532882818759998238156835390709002872616601965727811631130872099594838834562433149742068463395318082792787051878282392777296705529794973848926372300258761340696906791710651674724683835105182393567668775873413452603216302831541070005780671070102422572579087454221503100327231088586060318257441008317188924749428290682382556642198902806544121833831765422283054985594748518181649371545893872450352788381582303406543086770094591162115235310764378992751605005129446566443030908487470888691195928701364334235818682946408266398713533642611658406938230708861991931031521916281774993508460182133221757749801292442587986624986426769953003249972959174221773284774629189511836816830578124348095577228278902494026215011211461065267510199087642638499023581944083314991459630457674626414874479925057809105365249150467834959906333099724199114284934941552008685721828274320063886505799514642637369569028787680887630771236951999422345340553915833866906650599590592462056057808670785249601310055303729473198288283069430798481045694251981654083460421936908220120837335555195697192489032519934771063181118722288843212577122424057241086146490676223092419183790969428372124546543273218384518147262754690828767868858119552613824962088940856588630212923029304901530044605214707655726675329177670768917552151876719732360390476521144767459802944748423922772129537126038481110490507575495183995134047695759443983475915023507399171295217198312726447705284922183369619225714701968466934104867608963742247189167966465517096527087613694937794437961153836813973442740275857805657661324697677290955785288292954698202348202226312557088378437718484453425447669788027220856886275761743366179420439808197864887651460114159666959667196423728903551353643430979112011837871079097929876317824372652441196144372081872393093032172754713031756618367599013273171437510928983122174888727099375759837066826408125224331922805850676698985930218635504402664610917209905898365804563474336402248167098080955593431122654041599311519049390368605577208586956697416853773450323423651500779674734705501333796056978230879911215502702629720981897618471733337758316118490312661212964075896970958283712998125942023379427907296765612388907820114671811277966480173261684864290903085325442682829429362896931565468358654397602274964695938944721150252949231253131233064372027485030352958191527876478989582950525023000139697856520433838604168513186001146153398285309492589578770580102172897198066439198204916090032935130426564707306993634872954396770517360476435137571616548728730033963271249417670575146801456574607435036413140394042521530100250911627735123146761792058558101797660629430878196561992247060743634037738581199418490530957659983611498916276629129536886149493903990774244109266743961320595058604921730688603678043268484037809369424772394258809311199346929079985482155280091529732723702289414942652369686339694403703149760133310701627561505965554159955841327862591755192474059910480273663026856108127306524306405406982994092585069536968090605341545421798337448698815433605979526114693993708106825516391634204065072664425987809013079703500623082715843773517364589358695818619577310753976518183685395261118663386873367689320295599564815712026516626905610683107040276474906914734441445159980922760135107820699215289921133570491043908692754861238094464204488057508643050967129675751836195351870066364041477908624876507299093623530350635950231238713190856638554436934813200551232543068027437925040094336639392956678915287944524841048431742301951342547821871897080155425002838394592304377664113935339498748661466637164600079705415064706445675690592288691202360196337496714306067014610273413406364750867863882157955156907208749119555181065799112456337106688659381409026298660999847255375155811113762471660762728016673029489136648301480275231850357843712029158691095522113223912674952122852360348135766263412672023927881211224544588021139998958311952934666073257997644189238933491148100918846353525901433490065679416629257135728787999268672035416093680831834784631731629178580941835564424256164523147019466981585027025404679863903264735206571928091220173755269408398489265276285169632690311156810293476590272283870433043008435047615427556849974125888519711273511357372914814307751384657904290223161493243894605437548820999496287158810158636612414072915155192984316753962450411166016194947177458453241774348109271747657649201418875573883393845303294244272988481709782470293699770546831630667716973065202422044610313907480681923938282373862251619725678706249554797186908319260301033591574868996180187840745934556320297871785884674955625873690080854258482590684412196142217338511261333813916436369462572295265858730579417199222105868560384579287287248435913874062363810096280753459268171958769082430962443996926686052778542756095505533115989821399587907274497053471971376790921029237213581851290137127438394657632700608719624034504664472464718803316504813865909781762303433079430960020619936569753825642311262626038718254040463775581482556253188230123820663560108967699545280361943463195034440816587348289936867922964017433876036723009708333295420285221019032108197364438374727020434148025353930568249633683271286812341683369508140918958937901127559879635263143003203695766869238634034835490296931980814982035853251024047932789346908248150125516821129705643998628240539284108618261115364257308455187330850646335681649750362018357926613547577026671621317407079442444006115063298151403264191968206309524380582849826344079374268373128463969201263617402460220700201729171587983319933093673584037670079977695514320822143790386964562906738282402679710607056129041109619115330936075119466338941322278670938074777754744889536935246112037790103535241893966494475092675033338634371968824560818765677483691149446410614259392780646880396301502162297287024025024620662646618037335750866241577543258663897436442991309720769827029383577245034120988743162489849026470639570650388562430307266778392877055885802276081389935168282455919461787981205923994458769911545083188517652161457367978007228290551515932381554498291564541111214685280932506479077248457404210646026749482501877183844800594145249761829374453308430486514811410679803053670786295868170054687368157900110635426706393496190214821375826976916885432367459452652432589431843207097405330623565805815576396471846411136015441279887117367095425462843196506357090307900887707008736856121856608089859197782840975108823863164883353428843493383930617266689111901587879237685446806922596570162749987675681411808497952134012696699197684624347312606373229818016196073821687603877083753296726831912232551159516486539470767948663790563459588103772709354407816362599661245665538490220997993977242241573672101317403576547096348539807201186499058086908993461040724689805238132018789122276748450840504637704379897674420083428322136069853608245015799664047835002114687428852140325515874754974098399118215185346145590722899159356314331136357124745710786737957846027482209542830955628005735407838479332531738283953629829896312241091881196911892579298351415034134650199746631546719335054911284910731567680814870053287545756910146186503378691434479307203789268986188343935432033207442381116216456245482342643896725661103622000508982550926019001587113457737589788482273105813200097605974003635015887168816648346287272792459607129334482695885571848709877540722991846174812851613045222569664756531567905502595617848423767177555775608686277023362563289598689913619557628641050056175609972955414209445411873026863851884463446750286994495530687621687546576107725235519342301511702777010672689221136619107492008202530711674285098859516899207475682451154058666733471758840615693440804611588767283095595914595707384747248732657918369522574103642980717595712198950805145916062008347861106711898676301099735105959015212679806494696744471505153533486625466132495449513594095508320534374386680416004314111620930576494750884620367490828283382797552650698856072726379821529583933775040449978853793201317762573287398681547517490294313029241117857262426167966885757203336766628563039073237303211404752606083354405813323645387038955154697662916566928716860080291938945023409559404932372580379086446490657551555110170100573793890661922709447700982682519767075134101262249859856594603846174516025788368545031477670517407622641521553786226234929121420285217161130894726643806913636107617609826402780896948431607003882293500786881023518803773955077087111746119586984109918998117043719186933806133812470396122894577404366796969915491945461816133148381242150777214452276734169146690828144058874207674830339500730072107582674778186318189499527243104306087032097105081612425226133724501255250079906174579605657403345627581237653603180435606109160307072778091903161117299248106014511318581482508471465496703576905370385984295654454619890431672662485557975128526958232909082933380646074292961178005839493899254601315356904884146492152845523951128092791537806945231816203910151646318389448583484222848840728614950297683600676766244345588437748173670336466250822197295919163229032091454299596208289912147406986331592286939892091495237865480043194108316172461201956114004998011835917666198625561125609882835127431165626811126490787810276894159197326972373661937702456931738432861438167653581563390500852441999102942173888891207835838026370011925270500097595995568856247849673913618875910824390053738800530374091950166946880479770468589008281414591249188463920546563927858441886695210769810171567368156940880107074245465496144575264493662760808595462260968268403192478789742956602491966665815161162473795736908095955301177430251477147246517404334621928139773288488420974003754030606529664706680049945081783096346754821669714169628750747972040855085796762810923617521630779197324372969121803027047612381253673760723794453617943587878790442789983783826500412040468806903904012546431746802781659055710601491990954803273533111197102845434635299444224398746177983293138070345658919963025588378047856294298638157524731334882968727283611315336370876916798224251949668397968345243004694952684926911537530053277781835227102163242207522896802970587232219351057124206311750813581357783165915746570651419519279757464336022045750989060894210307059105540903442738672170861067673340382267179471116197567134719988035591957702924342676610707064792724223401418230299788267148711774401424478295962438823536702208284950731006714465262684340390477974239441969380253475157792193079695719989680295365618531996188719273401582980319199240034680717856995358277901582062768230608888355501190130674574419148556907402352751768438515782230176259396400140286081747015949659229164876837639461245615394825734673640936123726321481387881825069685714275742450130781240425744952036649528086220264684309985855838000971831553101681488073905497325382432552820142438208672732338333397041241161850156476202324611740261823818774806278873792974389214264551028591337697955906706920433082284673687495468754588438554481748059631654534335046555371715930901828794036783355133960383188028174621740713480650994257635527262129988541750775389589683220210347417982991196865050091171197097095823846506759072205668731677772468870073884700941119341146406603144732161595190816786263637940685977476322621182302563247073349065986195074623723662362650239886050370571042138342621875957215270170294491568689657190785351159216298527265636178841750241361622833706016308185509057948263484860078399106325742004669541177954793996144997114751732965116085222106063640850280155668361540016318308607499314617859234953564808425230599886137670824728730756269334387535438552516235507651296666721662687918727450473668954393533775144610791467318675318515170051269409192847160605200739253470541046377925828838022170315024754013671727744488546479601714675758295428314350603814194491077764749479547838302273338133298672027236967103768356902522192266144228782086740500841984698827878063703789138037318545637143100312387896751308886416687018276526915629059525372229044896864706591269653194450056559452037621569028656761587509563520745783639449802545284849283853564993200876317993976735040047655965840095832128289045110014665515548807022608433235618572362022167407439672150335124625557903219073136991028551844518005222589693470344454361836336845308110447821318508329828470081898046449687067633336748111768153446521206003005475641184549165134538309124542931287705653740579211630863481934339486659860597390609121721575731677837573062905956916483792135020375181769941980582378792370018330548405090293355237542327422476718694747591171398800597116134389319036244071877439660657366895911276226510705694765937016769269071432823083552235178760761875877385940586057414562033455285357447862431518677610424238222262751643032084821115705983004526989075955980563148635008572509508599175075876965578790326647427065202988509996102424850226527672070066465696645298725327087017644391823350048769686103795386938300133868396796152975238209954355006223349115992251606059824223324800813116065338766245786850533292967438260726938274088503534144757583489176148861035479759567843274069241101558243257957964928189186556079829647521342884488129912879301389915935342493624965232347216039531933659482698625582203935834406246183060401798414198416722832388950688638389103171233277928874685130385008642613816195138218437411504025593023354239437526252383528168559219113955064429010009783403535445731359140611866630847001027814934836321656856219381091423405602578548857831867349879684744729503803785209079408019597272272903014021768441527433882060757767595107066837473783609643937079483754525736262554429157064260792055990924692095556583178126903498199607775150078017426497649788784569135347324370387924321342033055052896046352043865721952731601526214059155324036692554524969852434037358000689686184538071225973952035260409956466950530107076811048474064593571110551461538426391676867974933411009854123397520496564023308386641077671665338374078808344576321245241936156208432017132207647585112160910295588733352921275688797932840298571594058357670522050560041937921608343209044418413625707443034175353376865508648788918025295566394587586579308062374570996562394654523000616777160729637593592476178769964760622428944523915216909289693466011351022906047023887075138331077839852022776776181865924169792507050869516416799724100337198286809806244402977055270386745524410439605770748825977678806824563113958258456894269019641068738068737654785640593838787805514351868650631078823280304883193250120778699811069542398833591978091289359850741804721885044368319462595898696397304313875010007794184594874580559407346193884635466787702263323299006955783741908564212530144233442250115801667208561193395586226560452838956734552395002104507797903067298983101301178236755102587375912361857960141288083512707410032031253203205433975972343863313430349730250845766630134824438773269887593103707593438770031431643321460890535075236054318803714108921075244484868497805302148563530298988225433013995836589710883838079245914181999432242861350402239233598881832214327249643542499095550738833339710075127913705353295794535618191043532150100612048065959900107870203154868455621539584427924775127187716177841356260352873644920547432057193710505738039096664602856930615249166408900005334349929261986452322161844297323982635064427082866884106293835116220272167324351440099716256103621374899936393834694015174801527833955579550297735876901942968244229627772120666022701594439437489624987364984092241491364303891891893126313753743172874483115036834421405205518543974115164430554516818198750398539900794589735458312341479558896799973266561267719348527791835347818324793438597346729545675797213708173062040506698633851278105713097775618855541735996536933259259226470297531930822957013998894640043752912548155993243902445835696268148053468640001143510989135501182332897099552478306970733640506819454478545299169743568013866094681854910068123738495404634441632703135720308955638975721289196330880536197053263048771040182390140711032380514735664808941159293872048642419488742684456881165285817880049948073404863079708645076922632029490361971730240966143228290471930249008503614303821393042446134934899592695691517669464404954753978846147040088768442361764252263798790211840132892286037080421278169102783147255239365693104498750478791121835443588681880114296879685922579818091453898550622109726975272406493938165456454664995148404477269361876462280992632505409259571112040105375523254340073627815020158843968744044989032093352861955117562720945386776614861153806679076522647448269804537650262584188206592338088431636064473916078314674718674449307841595381407237622293153224457397299101414472528218497665516954948884754731460071137734710334461744196273956747788275284181239294906378858065551729210700224613129630230911478702829578991078134269187863202426140695896305446578894568581833728957706213051037070218753187287175065100219534422256424304625711254068821610950937330184549567237517041986184703552948799173883458791340370172573305039416868970466189258967617795347725880024641517841774971825498449108283992273563185269651209774979902138621127411058465258383204453342603262885209535580517670123432027613130440340981298992992079130446276863870639535424148599122312189488151589724433832242056680178968496456499477463038917269677713210253431790634441213671373237511179096962817398602025535027367364304112224467403682530276918612215557076071714511619890697921648354743887239798704083483946836513027714485727344202682561981516757914600513330893288551469451711834327617505287567728734265714035147646259099901971634820819550227857360159148819727580298274904691018348566859516806578558953295381755764527462613607012075321520720254839674579412223495179321748385571190825625330585257746196483150870507255882080472591575767725304538004509048691837093824988440285372403525049275553618357841305877598174785520674667304705192352753938320298193849260423927027758693498937243610908421176282465202954339999909160802504112180390025070657322765951128234041145601627816196102421569268232674085576743282198502212837879671277762573316997040586086251999743949271604257498954598951649398710102813644081275622264894841683292351449482503060778495317841059054624777264225231516286710986680064968775284607403091624093290059939245385687860523052218156487646156368584696936495191623652321182538816278874941400480910184358461242185318825831610678300290108879078465659818946767791954199942321949642388675071060191563150838855444388254173105485457271841144433627714077102879828206511911852139758029213378481936233712716495566619653038611582766110725043871030019625121306689219474456314451635516336410333219563992312368795183621917009610014910575456230037211201708264243371256983633194230472175464115565142889415945976146034880082222351936258098065863021591948010235964927171713516893407822960003556210097921405143483476262648524659376182364487050822575150109989353315171450781206742109205493108060609037998560876947273335665926477282772004219211130706544856312330119065349213832612659613324234776729994500060419867709267341665805378885558503580301838054081030672170521025912299612211255293124666770160469708614768489642055500437540840579186425869998099240947496899905813962375371336309392712745514422799518130176278245217936551149670134202167456731685718045832153013563310163167043518568339386086511354031656390359149562061166547789323588340132558524070190130601370092637596380460398047248112462286149364662004159350643619033073281560026183926636630934012818938689424860843581871055318315897616095483351642210044425764519005867053132315995574823130688232342884843453109712310527378064283971823584756105358911628110474548892248812562156754360446634379377846610963838455321218715153595349512553595797226537948398837055060573341964396167044907741256987792129805398430657342785815846138048510550205078610121656942768349474693642384606803157119936216629118139599027426563382586332703913360871473679739628669412004239460394708200910149603650576150693484672195498523452183156689545723786403470134131661943316907610945429434498291145452420917016712549021691146799573782432142196221257615333323307381922066753273975322290725864781256583378401012538261520078836772878749822850119222111499955212745295599708846000140653862898090226635968734585647801082846885513286041578641697723300949321180176301454531113201738854386174188164060923657735389246914698526836600837040821160507393217680073779918904154021867565577557954196717415146264306428022905786196780852246589971786479981564392168328359998823060377339447313390174557463669280395137862994685228893912111246223859112376337333493432097108775428908929926485529862407884599486416160273925040058132839617179397040500452367854322809908497760924419936891274417821744930150354748520689533684724275770603793778002167333992820318520664747714200766972312276375334372591466780865491217221485744538063962262715763916005428767848853214217304241171312634672219192254370629149666241401592455803178239003012581329616817450472517563782995404426648342131889918950029851391257916774493301850711174281929247704729892087033382719533683827915433904039885524297874581627929401427715395675089483299423452084288519007470369730043502892944058700850852959852997977260571845493910668448362093439986351929218640897169128197203087074386469677975268893964774138560368025743770894732490657023037668437427377169528414964232976018966669859894588218451124101988705535322932021110995348891160194010893538411446337014789960209623069684357782090285606715126645754316330177239791441606490519179322771262351850019858122805843394589682588165401147500503599470769692106301639185323219787741940071153998969916489981018939342549892782307582759790330367828741603566442447002238142658673203582689979488233253053733409341060965689739009869070255133525156504854343489677266634142552743356161758271340269301250503937793672776069899301408968680138343372319942988440428707342568949030679374256002455074270120607183218864237426819323666096998721597365265016490553614573406722574806067870758475009668955283345599936180355769840515392633681809391545408751240882634932181479347743917043972191724804277112537595765056836881340898791438373345580403299888410522057577085335099196012770996497259011135203970732976828919197147034933111729096112798553471546771186299619113968514134022501725470412654676089583998658679288312061295675944250504184982444821169464216079676602932043306397904185997570928716728714778362384384477823905940081690578833361399898595154430917436136863702326866393404016800702614402334511835716385969835529498877940096443119816297878870805593834040531012398189247350668039773151087784350625675655246765401474061334331728074256000983399048813349379394561198560168426235302664638330620234454808120606137513321804055763826149257559969018551094742982808435624097697772562675190032377176842876129834031642378072851265263386616115367249617028919945736390485536491221408040417699452421252863206857602807551368417858745780402288279062001518875495297129924729877703077313302355379615503694346366945550819178970039643338801263342724684285781766327852753256418165998622452318441834977557670428608206128167263008611526484968917191793582292118477863546360977797959258075231093374140482504887460304739566297622548683344275212151447180675654498331912940462332322937885468669417784440720893926814220531789786249357120960388127407807267321962713277670053977073447060725340995601700676325910321761674229804273786388568175932613762430235556164878395170624622402279833854834013523899583262880613654173202002695381376069600895814576988502037216818914492117265884129162511054771404991019568274420874404498861072624871418739784838379678888755574522976994227846756056385677559709140012331090373668912643416758768621731833123006346161440106648175871697152452053932910860175987593589223025253117888632606130581231321412724727000133042244478836329025136150710819815163115798470412313994442508819741841564744214838589881707578432233177086706515696817634767277580811653675505983865734706482876541499758029334376399794054464547523408513491579056197738953050504769687615735085508659446019936385925447772920391983451764036740242912448153852885309973393262974750873088744654291722270853416927938125705613558066375084376615322349330268398588118598718226742331184823160478465906120430140604080621871123241103907640350746111078339870568061492275514066999680895789157957049086329007922265779214336001096494819207408968451409399092767755929340484367113124929209198637705451266173504582120596125160397857974140846409404045291641335395803894163174546106059818718460454359620068157351156454853449771663300547262589343096617872293188071315447265008899904518249613898211692196015455164173658995376131361426701439535718738422224806903357203692441599143978652400211907165008531706697252204792931733078325300540335191465111585839780349678004523930841623097729669596142929760706566651370003390693782093056376681046374760420534894135937709606511843734855410861791882547378082131152368509539384191128478314587663103207001426362707373386295803976291322130035508505630553081959391020656632269652191731294421235424942100085050415167590621078134099018071220877725118309471223912592100509830614692847259141059655190202597043021958497545429202781914368697407706165374183108513922660875051793499576602370803347167895949884598200741270122464121100571362517156541382774112705006289132550617545424107192996573881878945519304392245831884593034636462772968302389863670754269519464533521712726510206322531624443145763382252790485926843976022559359046456709270491282069770431460282090315074860227107666074780431067910934665123265711771136232521315703200383609282425928648410497125928274439461944969780642231702108546681527196066315778970022482451415963165313782261844356129874951778924289401224417554840928026785248382317177209836574179149721890095477406850561141411352864310540715329396872024177797649552441368087799776542272724791416957995593891427861136325594300336328055975264500359237725953066095522874432003432907363249494405749280364021462491377597364876319281483477345604155784096985924203030761078094723665413798227520452878476166425511684963729397509377594002575607626787774012520440204802942742819228435086212422863262901998638538393367820064828574150955525212224127997725006922177942149300335010552012538180548591308625248040491261067178511550568053469026288795079086997814043834315438014195713198877033376423780904980655054865226772275662462685519946534247712833239981885415878150148178864620196840676183722828155357829665133950215018671712571097315657130386180831310501823891598958044326196791701128743200710719020825703341563471504741900366263011403259639956672973230600120157888954877672355093924397955199302025541323655295892733476069191824015970232361960389279029682284922389091946157048273178312775149130969775707736786726807611665094638823947589737017071327501514271554365276575467196440546941804210680441922812990205502265270065226736943438681550819686742483205416096685323921237365027378705783995082676717506544326563771917243155137822683696918661009842866394550204276725831163739085064179121279494637780449801891127867649103091843077069394506912754576942054240677606572385858055009474005606197739935984112094430420896146007248118055850812959503061589811494851761113121625322825853422666982371546796783426717746411485391723255834445507570394718652763070807020296280648059121393910457444389905658556869001599441135295779823227931249466824760671261271125894580472237652767777833449384851059443542776670383143183598773076471717849037973211593075334821355031061426090626033316449543647473218006254607008527997366854398928541383416976388871148330709906935315482123069717588491028121496198413418458811583497203895945489884726658837774516395256412000096841860593387109739285619745222203395588509163900031153615914050793058896458889088941188401274420454006203390578729232022737606499363432946472235629475534750191645144787885327409966422643257580649719046148978795857620228301201690121836279517063231845609091330133174474997226473729386861093601880701738527321823348268965637528920765910086998837614738962198596924254218415875432771205346278623862630608457958094133248911395599161660053089442344389877834246125590985663975894934867821037484089413103899942106856183503168256948898839319276702179805763830331375689923654302382094863112931053743877733106561927187429552413985350622190938722787624320534634415288756615846556421348863054194563245083974098787594451048608140501346981059162983467654720372001522023405530978584376907651792666033404825280429980118548281425509964606196968282362341677607523676533874521079626922794165600134937893251024893199767389648236691400206414779256659857681617684502641094839529107297199078825716653270305540119586425616038467781468671751389461368269997015693932050561057429836660913223912318685210594205674739965689047729646024108175562695669003617242480412126352283491713888278724462522675966854512279305274415894000613698550003503366151814114198387630443578729381195426801868652212883069472141888838608096483821300825314060563741308963091516818766627201781163116817222790678283034689694654677305035329713472412388389561761042704842591663174062344750944918288688467039621156127589793516276777098348119009433471134286001001335111691733583069606922292648320707016613125248030517123936926493251529794341347078738246092286067048432427105460025119390851720725774030646494815541801939550516103704877715858304780307801185398410220861514309348290260074110146809706464535812936346656827408321607118369042663277711202938668469354498390178016344734032113279322350036937690715360397299742613816993578603052592671888409561822476615715097509985936634957325106101955603244822809469281730835254819836304576771767590003129557944279599722394546862856796418049936968338780782774953289161740939717878890900208784611341684241539903391709931936926372915860806383815005213103279056222796854956101655198532537287821000562296741781598781517849663055334020449098551015380792042990904677095964908952199949702481676182533693548097055004235966649960055772380282611087690301363925727871572147761181835633042868569569924992582161253351352185034296320727522119204268013047544211400599301175637432983228245663924092123642495318372798399889246732813698572965861098354288495875221285079747223109816116474710595333308530900559202283141658011564279591847973018831229051626877729786122038139751934867343794084516742195754939321635949101792182592454588686771939308933501796959393967121240754996715744426246067362170533855160237951350431959359295567400486755493691964177227994626740409480761673621176207057256546287131202533461295452590819781125661627310943031480015105471253811291909087172096231630289681593857106505090349969038127559863691042077349590753177832307736052583355539279365918649542981213893224699388647114448172488163998356663564433111501281563201965423203840937800695710697267448726545201044224547714828321392349261380753903734189768020880320613984523984736921737567180905569961704623381379312340474792221640482314410895770562131506227115776083620108973534547716671576093287572900032540361708744588964705020514250626852371917079752544128306898230067004664798746069337783012411203733276544689065045891424590561432657546720666861502237307862748667073442420349826390772194356886760403054937121986330166004889922023290978626754303236135787436584001760896190617079141009344968331257897724687537445561717398331167564416744364147655704699448085190728715279680360104126078140366731647886045057113089446009361282822700147903537274876368709454849971476391106941693503354056768683554908607191618964877573617776053799724966797964057878485774692584403939625453648512888038027939413737897283074228665870478935331731756467237739696429468587661109265997398637670384841010473745527640223524412813224525004761076257016527835128194483921480114061882960399165016410738788352249310033224599394573117799264010117669657089292741939826148072668219884651577259091193780529597974403887786149430002692368517927116066630625483681246363866881585954596479468235423543478971086469920754872079931844287961900434674792253461393787148016720950257826277707378412254261279951783203210387018427486345580895938023265438772342077463646496259007330187987284170522365822978467446466468185797784088895609254761704259973151528856344099255827226019101620373240176551133158657459730822643722173322515676441963121747401496409449245890798248140826065675599808147111441690115543851861640619722532131165716148068849791555598159455092718256095255413562297740939760729491310152703483010646698707700675186938855913226191174297199282274688119119219656572758898566453115843621672665661923100605553570728920373944362649307088645188224858333350316772878208349466239862874374320183183197973434347563174525971678329773348724455912489922312747956719769698977221491039168833585785710723900923965381344690851320772101528753824734817361835587483945624527766173802993960585248863583284140070424077829912597756025075397613539806894654223340671230167772388618514011451604118613724441362748111033352129194771633938312243655471870904417497028498608073605232964348940270006318997663081132644036245469293942507386201552941849163375926520074463223282289664874297552866798217293677971108167697310982642338745712232865742212770917971353720735377104168560602509684381881861287427748257279075881126537069073847543843730642525345421513081652486413733115072273618541232654005818511674792956672575825200736577324195245810435395853882079782209466164779046266845765611366442504162350248630296281034516813033769303119365997733889234710602298360977697587848759561730317055460439570362045930258349734343750413077184396984112665714004482801263224312185511180397920530216602178293757945129772776305114381233073763489956063169014446724751866489892657441763166552313058157183738896580528011014896914503504799307561297418155011322717358226833625270154830207131227783744570647183242751281939874753452609941074341976179894422722900521321138979378021099016615852566345742762668941119332919009367753188657458597929719926367001621108258494408960829163684696888762437114928728329341436343635058881893405822492679942584272322587929789554141831747648238454932149274267630016286416737725606539284705938008047990214637055811639770907575048601382738926591355901019377953174955574310092913024467309475842841408819346707908174203487639981148694718976824339225033595046987509255160785035314513611858037394680859958073287844383297795015240939935774708442383996946991122295058873866895128819474036786125538193642735241473518536076177502222371067234844020449940868873289216051753106460005876378880965079753975893335253067742017667643631835176690689526031292202407367289539163342147090853140926307441795065060360358331434729211730555557804166454877869746000064089057724052439735908839645063537616697066399123399088443388242287006501653634548964066648379588886603970123403701467507459673403766269172142201296897930962463754704020653101311751009486617110215244141629778904360795975306017982073168004075148523362007712407894019041262389067013006549874356375059555111385998693443554986772686076537563169280346969371040940464534991145052807515729844273947237542313453814040555035806593098041499890491846820856678449475512096483719753331716334550969090801331303827279675877486510021159718875089803573332535657208482337375148069228513782469652084350776095058401250198939124820625179306187776985949134731120586658093969647789356931212149694152913023238903421032729624568247720842666962375859507468298992300315634994509255215886216863911014599181302562223261338914379716727035998896738306760100854212710974721000734716097126595230904060749339187649907503728702741816797403661110635431320200345461468545404964793788399053560667151598983863105209017965628308232366869168055956621143063308031501479695521468137561374629143470662365730707888325256435267983890805806152816726449601764889133242042259107828039437968698132153790537308902443897683144109589039207318988632345309873527714087001241779408376301893388924637147661166278155126902204430358820679047669376590576474379677165235619043324179097282013440359128224023984387788118940825594455957895777199257386203562588193732937479831479513787165257643932903724223586292644717663471933142153723516973432215020040919897446500624519504036228911669643846977067884060699277298456394237261846265151709669180993737522796920125703982813668412076886171491622882460225966527059252280076493316521698701647094897447090574464573198920599865577696715736236257273681540016836352556960237107002423139406051203616406432363125740893143230558801814553409550307885682344535441327672753018823948792187345651066252398449653522122146672424378582258795844907568860332932537886987582851190574464451942320379360578628402983270019131050101927348318203840675694040172202685009371471903934455610801221224257088530317708017800345198167803345412083717982661605326591102082880049567157167419897057070621910593709957166814326413689873526254544084674992036901686041086453836036598939197661880425039680865066915882053833916821892067425024444333468542351739838722735341854647494491206481318345842745843303148120319009936918678239849735858234305464108496601386196389097099647096118238953753713422253765264042007221487979081122623230281215399524237881260833473852473760855003389914239907331505093610490431312389779768036676138425825597284447366845227074356595698221570146858192637856173414970152560919839885927391612146034023745502915109819156494722777118538476264614766793053007839125155565532563151625952887047419839362792304371032155978650990161459449813752381618066070242394428552821151544566441743292514633827122510948670781549278588892669031231817113111040873257861826197640369319661655217720088235324782697477284971477190345381187895964482283943362641887691224705264820694587805935361719513670880793625313751628371823963417558836993162730501422924641276760399546494746541495665424546202836921553192093502292827434008351090484636628819220630990392604154108292501413707095918913673234182667916113622386157783609927367580447227752129017836881991493933749240820106990345685759258205287909006432392508467685070736607621498771913620230236333734599238251184202466557227562424441660487397484034753987549873396327913865942989063102526164971849744460635804594763487607118898246968939999729855150255733228490388072426526943899217726325546197504432632842479615814667975382212062209884138193675962540246208324120746027880691431806646458228875325501133252670152929258846554287875776390035159585874270614643598035986651923214302010384070966776447778649184871366689911280406936832591444340362570358394439736106755983100618181561557880896107919570546904593155023580357202678232778115571074866601096085202209502021510573657563339978917897268002412392970163792245736667270418612082729306901755128496759430277282738271279727025196592194927429437961557338695008952969938199817444762867343806188606436195267227224509313282408980953187131205649571712831225586599424087328789885673865742624806186025996344361891807243592767871138629165819979945722276567282527742364281883440114056191402461912984175792988134842463986677509065956156029998870734345337573916284498148484235025204416725901213319070128097368646352353557500039624706684199035182247133737476683965761883027124471115586137960312496659855985315437155367786185261124590680880432313115698116856122576424733628964454994274611310755171458711472852172731561514734366858351094582243423203236334948317683142181505363033691684425994403457964804197544250223047509429754766464840234813055887435919261009125946614551483362740512775324790131394014107926492018268096321442493303224738723600124277028892005048503732044241347691196887081023909523948505907149384118539861103802504694717195709315898362272689918171030720380486988608345625509836919582515083531735327142225220733751937664104873876695548641124828624242243642110381784141753366272366140671751150396760163141936095996503178897472557323574420710001490633625451981478857708798812031368777420388874498068936138908580446791206752718167876854006112890705106926320753894112690147336052276254852948436820578597094791508746854183633216797112845828633196841905641403739030229992711026588661614590601531561138465065140264669743575236846638978493349160652529957868798893758670410344727795455020748969183939512822621013281304292696216280819165017645577498615254229704994504876991095100225790446560714964253826735237332647354003394855652479010902679336855752336810580315653114599853936528620347219275669318596777716193839585429683925361868022174689754899367488512752380384647556148926558800385014993419481743559818764110347180167113307050436973335421329271531570990540208557492484745270727637860233699918929081698332772671611672428154663805012386288022696305025228337337644522046749549967715507208501448527300682805862772526251570341539255705160134307579697607934363455746917175487050890346827483658497428437363095115226223040137185308885256862575483600499045092803752927805060767440320425562860097574500442539122442721567172760695141847096756163691988519221290432975923172351003572265303615266291435409987815090283715812726498883818876295772598090289560992721172321884015024063473916451984003964055621664348469947210274153667210373687347732752914400699404635937520275431285601506553135052118340000150585320664880281907830776860018799132187740530763721147853757151927885673065357106761473873273351185925981342202692771860121642436943460951308692996185839575126385644736317158198312300001150380388052213818495873448676734228900658663808093516576481408770002012242522237445433283053586021374973970107481269219895079533681714548360735425418192492627395140966038689009827825795363211481096256347384980703359730318110362978218943467432662523422034415901313304840515516372999989417980567578063782859686109714584748486546466099591213976327964172214718191491225036445740677576984973653630015642168561874893772081430002605313329331485650663044299091376488342745591858692072024444674441693467830192966740197402917195516216515041383248757753810111783263030936602528376458446410773126008803922914517074729903648661640909671111259191540052531008279708712088058006452549153304491595033269086245755948115071714675533886997537912627645870168835439787834087575881714342735397678964190783790936051564464760838534402737029794407335736953902563237294454378116764473689018199320364036933486098383903161934636741994846702884101514913700278305680651295859487165778932615017561832076260460877099450239770916625121000546836219680029578775135932678534836466569399484701563036205191730469721044601754250665211183137841246633358779901193118225961155017765807368060047092273358045721881748798173358178444838578518250197234417217059967189116353514587374066064222669775132321246046082400537923112277007663209747925704601716570911514210704269181358398770988107139470539294980939004184943767755038901374518415139391473733345242994668959037415981651229068013223385938518327848717562850266754293973741099817494682994492500680413804809079103461565278176567955618437367989515444872213630992418940589661728226326586755125300544117307825488855646168603441977307957897563161416815928257332470382734296697070318912059388261222275370291421562502994004769623376957831723649595521407072900643059567620027534738191289920955664753451665982530027066700100755290885118682698801240716476011381073689380619744171321724067848042266146681442636609628692014319925543130129166381783650930693514840659970371028422184413151162200737083484506592919609472224552481314014862676460190258298466605468512978631992474812095323737520670559527572844811246320448033779418878178370083525066638980490698028478061352727655586894954998390151775713387860299745020598476875396951540636675097322081655332295450321637715247102391449613069013706922453801476922826192768533487527999431457579264806699611112461633750418535965145747663592904264366698754608544248834643362558769679854405176553503781966326268271963890119645786412435752834772315280377386715054257287255623691118934262290527968244588066036058931703472454790251984216780957055005862380692802361212900258995750816790340075902760318729429464414360235931718845068634120599911962528771722042213550078590722379838444942022330901748861724440209623403096165267044328089887898905343474562724137653491172497330675781612222891431566897522621315945640545151259458334530503538223170987781402570330189820101864898340945681083094230641198726682583120930798249688405245456956401599564636102507607637843153234235328880840156878701619905145815425438235909427103175719047669867544959242849637194512128595006360693490740913467128648590283593805224233714108439906909165405173099727053054302688732128727542468114241650263563227622743218342758235985738210655916272937637185064478911960060906648180249242621734364231784645473811578499254357752841896693531634204858197359883368603470319003331399740055545367458183152442712470598713331496623866844411566490514525740439994497320275880540833499469625935593403457765158003107573362023857928437988980927253167444213036149630393931910350672816113938790875229655873491147936529183219867159485537521269439517138901476311114220577407387059523496912705911355990868576324058983309643686507128660944758721210030274982987548177317696763665918718303031700947893383660228386046878828696052030523514135296685398224060657026642997401896500865149815015416965647066890369967550705082474996338455460392426070879425908620088577459337669825999760670076144083264736072893662328856052409593105512853470852255090290100608953131807773170571150274382193562519851399714777907835424619515504247758478180282962593936173556978440348566491578191038760361431559927839702129488091714941224537767516918758987277839304265183621497649455168284909849166048278532621779635169509086609103226814271863536492502747983889141109773300780420697728345349604695520720161083442591425776947057559038791554957461029231282323801503536409277496235092504419005820552650345178622606591950629673322900323706544714964725499503935647409959038470758673164391319237512782685504056916511075634473378187458656153201850415309733224448902190333563054749065141235138423776044630598632720074001155450633360656982609270901710184921243415393346177714481150828032434442081058458803604026605304749797371086285149713469122210558376528343663244040022810631137582274870492155249463053445180844943477907046495817828190660434847430740494034552314673673509046996267320426296609829663703296511264765723310251689720625823561261083369388321835702353765565719730272627544079991127875830488409120462978941578785935936329052350831346814753602857040188791961996336885680163843401133822356077839352437957704751606434409999622548610885649119634621510298807324726191337689424038544751270758937079811593478853250248117281136734019063403288082843980042603614374238813449705277089967596477155775743115481446198456439530675190546446141506809786140960981732673597824110208780026679414712489959321098328800866762725644192254791907462346789076984522458012534388238448999540703965238820324691330746498463609953468883044339804393435281902940167168658510114388177171430271302314234409706663755749988757750041184793650782609484334958638923279365662013382980457824611129197212061443741112161455616246404818984835212200802950347724199783378809457228857850145123639182735144120980656512140179446098475844919401704599793186171392450093174464828271084990959207666693469103051796964442432845884745836371532318570191578138715611506456402543121708470982633446139078110112625657804761190950642381448688689311758208841051579252709591748692046427075563018237244110861741991098587569483999248806760302627818341139608977743529974816359492084773671381240062170017874426785127593427225083819026131445502824314715009657064763029571869199347819383125226017163694248919717310943532440703140316396705329155598602721838675326826387736234069162303555543839494988173114174457329908481891708366246731642109553602073049855639996892051566649601496183158003013464670480640048253746377973059168827544999519588926345598564229780911657547939973705695093965601486945879800497538371483921547462034351057100049078616794799940474701642380323129503239390318174699829147956465388528986592079689536274875468490865531165690757100085760395659515218251126652334423761162629054441909052703533530010746815344112977250499361210738332542927862624597349114998158761978117856628148879665543713180337008519369165726155590582662234020196454183027553299196277534329098592966152951162106975180406842736439536306430434957298916969227270402592167488674158204839410157958593316634700683095527216229444559958693494697571836428979130287583045837727964457742700150353519955629533079764167828407189182005861844031277025209693031964747062331137289628037439981510421081025314245750910611075233077902804263474195831703069404088363001996187192310393904218354327223969467849207651672289577829156482278656638306149513291599653618727279052996824480208454020196055037318975168289305916852838934030746145969575613957643299048266098070042148631182579186306280534913228290992581640476080999500507226362958951982452181362360730203828719394890784688385942183605882729491552091420230945765176237888856922267289377825427800622848141245491866060045924298306654789188889189736133888921248659009365348629575604143163214103552293663638210825605002464286061764875204728826901788900317945289333660956587525698964874653946837500875869799128142341071091868843776081921171320607621403082919983833660535346541230345549509819024419242801668936559061847628204363718776180786185085274356942479055160711417749361856342020719048894134943497804738551221934223562518798907346517471353583004331701989294319524067903301368705545477367781568474779135572937663474128264183018170985628729287691998926431568103437887355619096145992830220610727078056620793253581545121730478021238082527481041783255473452837201289924552161983187145035028145624786956222485405330098393777000042007792021760122675364528026381091921181082836728574727975533437053030777722802645173589969038187692986465809664985196078234002916718806057284883931959809255113831330992838513568560305146295979223209526271879630321104267584340982609119583851930390581638584015434004412920446173915698895730020473398520192718672044110473560885858031628217091856712698800523338804388378682649456151146212095699953093194728528572115067506737207493055918993915149830516040336954540814698008249176452360958327252212758274827933505092581624617802200582193626968616111518994009693217525347457515967118462896643911878860582831823509117165551746790643139382177900600174303113942002673349849214405283403042134552914976812457422779678630160565659202299087248088637029038490284466227434049142303339984312038349452858051379709891604100830642648464138458589284559196575511251630811768335079511800186255474738847602060285668820664832683787148091377631066820625330558915737280120424107869459364552430042263421495421484096723271296663508141620748578292858362495233878391444416072701696751191856300386284188085729976709597913547206699705608931929555072842671568359716409104940920542610068885313990049799467849894536523095240846001682844169961636057380092329234480511942767724666974231568407207118184375358063321193072269936719413666815698262098266389229914052720597469076498241729609335873070937972668523173005893089569633400342256767598713756513397861768578915707640157598814691182430848385011923118119265345525246463246145950892701435706907264643858773549561024436832794015158033345635758163457474898636645932391135905441057130711843929064271868844368720106328362536759301233575266667572761063836800786880826130061828762844934706588342786958566840226376878612243924314648677800695519769044997318614468720593721057286442608351972284659802121800997158860642481216302333189721011887241543819952551815919999934771253769382003422007060478358832087152323790784261076534084142546427590489012571494519520744665249733575702738091049413808311067680618692785759574196461669634086034296305879950932512231991409965771849588179230022777126134507002864517029145377692547476933645204558692794833989722136883124678701237173926759294799587368725742942560086986970608829810262193576880236404166743731787424577870639674876797130789969448976407533107672880898073637423311065749037012000345955571381093823062898751232750366639459344055540359400420296189195749955731037283721974918526989747276197904254449509402626058730538396963165674569570801319057011684215678591029907306092830183899698540621612862043990478719882652898881126599019583122945376823532959261241819695373345995530560018678040200245207492875107996767013711329117053197164164446619258614556448926307885853304315211854432415028565021890767008069848856179564869009932742874224222965991106491672875951172144509812046121572858307062838182463252305176308110934880695425812184616603741252281473722490993192631168768775434392834479425470555218632765567004229257304131999050281136956962439217714461264223767483366655570628900847388996106917155485606160161746442232559986650971915172598721631435527405094205832198804523413691353241875841338507390512825124136682765616308406942193605147468355809963202825758749792046330128958367999715586832076053235707150408021588188345618810869170195350797918139062504002457757846521587430428857071968289142285490953019594759814827319452449381655890608636488318847990957171802163034645734061480108862087382866241086861394168764058094729002950126382540872532539993189596274489724755193260510777819422657871810454337699843230506629253951282070728511955544849324544109474385194865860320535013279264065724052080122256154417968945888795341907300111423388429369018914327496289092103497588052798763484358461556536978159734520133685894340529004108496872734803139996921348930119923957073039894166296905007698340316047126603076619472712668222907558967610734228218929195460846724418437177010473082360819633722107636759890710481736933305935917704028665990837642643331503914501663010887308822618489414428020256680061384209580440283640549187308371452369425216424300860333756134520031938139312233731816547847108947877378818146826005817404025076328966185698581570093762765704514581261084475111631339152445446865306791984761175091019511132940551446076679849019719215026622305536750359742632640994083410151933942967789713053627652863605778144540135500064286002283803992395511048097417867819295780987539886347161468178866440741826183433314964738676719449769477603677777408108318646496710499960723198914319949391697066758140124845236504761084417034543693325658191556951969004865944274133960820408402300377459238265019333682868074082152118232053951082413570144226383427051825743373625030686165435609248120088672458056936497760274881586404812013666995192693851511516051401401946434799611865634352914440035898122267275654970298878526607767086969318709362775338088257132446312787461686745345468046538087634005034935487827865504164730667383458104684831315585709291752693608591226539743156648985330863364998694411635557056453556170621930661863186913091939181735329094126142643186206329974193420178888112011343882303702989372688432290478715205252638210322221164270561823020583465182414463687908230655055932018491829484920188674858280951717575896430364931592201878210176890583500289768620793518500862174910004586793277264717739434479652755686157966358958961115722496900212972784511300594944694503352645459241115830132456470451315757741669218670249990010909322171084528474624733281907711515498443683636543849333687622085037748687223927176878906524396602089659785259068387860000856685026878188852610950264857735050424059885593712348530333778290694057802815829368504631822382875024756618028913153038259858647016600588530528756407365046787851417350393413882154461658440687970213498398665478740580051961471677945403762673973439800130030280382605344702992058965764514838958680225203453633930660555927036135109360842346720124307301532394975552360110296386700008726645334138568066573508531051108142595486721083092858118184918002798969681682878269909709467612034922290933995499772327301580501081260278248131802797737332029171686845431601677542515488256699599123787994595741658312538153985969047519454685212840152634800558697267792037251732493546641205280662476593705923064368790601955131725823586894669843568394163899114868491619714497284408759266333214963393530007686012941290363975829108425571769226044546119985491972475816931798915718469588123512069605728186866535313003634858378247911125691732098488674052318700646229239975523301990061176910477992950482113929947791661363289379592645624439305404904301295303202242662571579893776230183689192784660087140101358245506468328751696962117533834883914768490195352358961471027079493653088114840931548968396952693923512170132071217045986918346973343744102946210164437914787342217320893320883069310611919718578815159384165416002547962407128514595788185403149608849557319083914261732671499581850670039681663409149250537482329558955642660707555609152042536083046017570812296701927345084045956730404135091480185758137677801699455080510950667760711505436211606106188600850752193574018347284056337697513933096421965352579172254327833535812742787649152420678605774214192200834709913312704012895844633047343214207562378234041586465924302218268062558736291250867546037528637748026397837347297061057508690356755460550867074271216945866277001706924160080939799988897996365417893416085981707252837006499334017087621896807665950779757518269872178208614801387173938599728688600864969236990791928730765530488559946362988383658373535357134251736003868630399258222344823327275812479812317856135665171867793781264245153406658447280024835512514483415248976419675632718914506885109245397444838031054809895364106666874928122325550257436419795361923213587208851484561549017710729971560436488515972017620786507341532756643256530502677905681785046680687937412680587447924555155623510250498965034912584966504383763936938477296073485820032193811274732444595815686303152732513227629315720146463281036049088352898607238520089220457513310286461534803674808933676762609300589323746896590099673699643874100204728196007280620040321621716652962477609890236100171750835431953676652824170395039352740852114963113565838371944082220920636542764664388109649111664566855147568055718144750089728478286606472331880355331407273833593887514676987125687140582824441550749034898201019513213453882176518290926713850319932311394496142615207630423577541633008158298211869864111885367535582114929175594290846320258346206209017887263864275749024878612340889010797186856774023305606172408561581158626789051440605132604299429999230816753368603812163373109671424147028812592917849522666356531347358046319228746014949444286009862437146019169339992318693881820320543234876242788773763625148774561914554537393736260180104980856556495951148480427646214674160311923722451596666866412265047463819037196103063196418644019294130429085968653542022558358806172702861429756579247630366813195230368907383042055609114139043291939375121648587761969182732396332577119157495891065541926682870100848028984243145913382283470143985996748235008986632447860912032249009948562758771753367128742201233934677273048490116133222730254238201110238270205407518408923758708885946473894849494032833560744188941573300289192415239045411391811165998912698392608153938510450890480034258407061229355776999853757033356241197140470796037645763659745035629575422898304783913591631485296921463488130492952215728678187577547793827699713615305210668536267893368969834450068119674822589258404401014886937523317604185640577743966984495284907407690801541502856734032424789101394473506865909652291480014495638001634298458500730080073131325463059519221367258753828903212539486376993651617503116928164978681276615275129570574272937237857559375262490796447070454848149121314991872975920781498274676230913813471231101520739625136371082876429796813117112139354106352841810047470282941624318637505115720966350837567700461472944742323895211304763585410137326531569749568205184207035127939349944035137781372819264857493409101075058272413093745433357463307221223891561183646614077635302238208045897737711598902209963082930477906207288470602039971554313190251775620363122810733613349802144653840505818286492698509223529760881221230001941788801572256302441428303374982661028685829051237898695913957797754948675576481062504922969158194833338348241453786966327607018794626363007913827741609035781357700222134058153605541755346228460197538109742736227491233940170813628412778148227680727615301892140818143607054419926882178857039263733048494160585917144099416705893817381820977478576826917621166739854196702670270072504027922622411886677632101211647402079171417764749745788927429656799579459608549636696988207732668788512920650167099272846036771985203936501347623671382800284525935637704672274380501492102338250137999167222605255305002772443924530980495669924176519130080138817817683629072002478816944121178843282031627144827772952198843160172641725677743796045062014234058476871417805013529802478798276139293981760157348710094804930272527647663465971911448294685008473395839657128449302401123994093797478249608515865315873104429323199518779059817840006215601132605503141627094790087148443598938111699189745152881431266520203126989235555339128978738022464391630696756128114813358109463011853458909209980903281238967348629373356898785833772922237495927878269769769408407114102832733024605302049712859087254096694032084537367592474165033544697124336846350964574535949909525321173357349109018624762347703657098908684432430956506491678428695496343616170673975751919257699899280814261790126616736808749106183859941710833548275656646487035978737813643273015415817224947986179434887921792835371263470307284568828880714913723250532270854680852490942211145445768738503831823417285321471747051682273556950545756776260671529747891985729318381941572250809950092333319596102687277394510348867052476333381707595645924722641122253696918578179841570647239933845593421420427272744776621885013485424155443412446388145656153225719229351299931753778471175774381043088846999433656184190804433038644522756359534354848506443913630814049244553123986125550820413717161426550660731102890463885070904047022235973773789606177159585058041201898396558148980927264591151025297069125512911721154257595995119454392049005141090559629743104105986589813544847840968178646606861855480101153847027772525072831948557233094359763080351126936434286909221331882736060966073254011464340286074600380502326768715323953376458269642760880518344487566193948586446819690105631262468237200514213934265565114199477983147295958654101966325662451107639690134047274639945001289379947483712845219205837683691585708796846161258851292957375855412871939453856514281731560822614750146379082641729079479840726010581902883927317501515181723031041921611806625084073727360802626247889544564675512634993832579974891721006616977757801846930705613788296802279512702753226987331302065114630292762740824307847412484436566732401691033919634334838325735810024456572851771609032783979491090246308542922732122282694613263129399848354211441469280203222416700909093147317548663268051222493364915599974645264320627153910437491208603726974042144481701700289985012190715351586851293203340402404019309010199043550820095763509433444875515425692445520061585658941116650591390787220331888030995423991290497784095907190618454636832638994579059967690095436353572018805576318941351819768457670345051066371155928860641038357638559748886379104119030087236108875849337647765455338648804611651679093430575514013185227470118488087604134485153992659707521204198191300441800163676182988240107804758434180729687000695255904027933318159939717115727903783086559825476475516387679733205706558853309247398443687193181315582872714509021531990443741281290638596898175168014682686075598491674262619632738711515591299471259982224965665826432155823694753415740632123635209474563699582908050265823849295869061792980761892781651811794574184614125000052835412471898358795353724251985364863849928803481569883029290691747992260539612067456729400580017794069267668331979973683658406874475415458529998685081240259125466623201651400550613931700393004285527900394255084977730094867363154494968702728620955450499792275730592167785778362955286499691210612198470569955946127755114179899233470991470485204088735116741768454309671311757684360124337585888285580520288652662757850705673766029615748155974844136491909189995367461992765381345776701110676484933141126384391862255878419306341415884948282505013503491715537286922390874106849319694396491653860899795876327375633339991312236078954830644258274975166997925793400109748364488558819542909335346906247344615044070985528515571070035279490260533936714490147169103591261125693625443253028804985437563224113994064272855318108651647550840096635267805843994506509529020744489713756932303920181373462164494237708570344258410902623931038022577058041066742141440714408871488230129757090480479865306544938734411650895151165620569391200563789704168925236827017412477424046496069896389912055936952095434474003289958970641790387728864087070708928539909308067671688495296272537434842777480864504832099054984914597829823745005329900460347328796207516573953576466937560062390058113185521064794438791127818231606482805467408523408223377799639505744118460069055307816215016378617316441021446124527640685059224569336086195190728969377349675785759208294893161085266531755622780816059102630376265673584323415288490718631306485210523829269865754549629970578470691106200552151252810312277114173426074984204652007769920705562095459361543724421850894776536893084871978181918481173074936209217203612707203966410358306503221715886232760203195969225041709777742726931843967870614583947943048730167438669595331359735021288633306894198202771082082553878968483782897606492329909963524946252428092326083475005743368863893553064962760930191992724722543246366180078216498105079218253020481517947249727482632814603122923858631090447540490053705518972945715756563107760435425500670626170816772677501733679535079322889796998750423319364305562411448199918719522951025505474054972628133929571364477410794140793077589212178603994267606053037008770243498993518855415278343127683655974305914053391051541912220791224043643698334546140146045268934048646974791571340212290844037883950913655598063032498242482044261971059816786926958484801966681680001644961735182131714645989687246362204987405766770658856244244179722619859222575881463783558775120978749719098093606104546568341013752970628672464911510408898720846148914322477662026947843673983767724095947136081485444738658731631195285320494390503250465394263093655300815911613257454067625060414593772118301278399127267680539240247355138644080602987791996142083929995485482326439465846972803080200702162214608943896025211188463192316488361667002813850608126748597407488346891364487953802404357512076240507619821631108957623570294804221460437949018398868310816432169233040663420121028974572341835547054120244025828949419496041447478899520005513527553400256790556547312330790604209594782731106614094925116811326763195418937694970093443772690748377822858062970800622388605272494220899323048359522936205962269618146707197896161551068795640263587100221347926028587820617258628655977542773132698738555911301512582044480100979127815837639147837093257758234269847398907538411095938707892618452442175582098066852272125942119947804604029251656874112519588195989136813247132382377317019362134052898455871751309964683184831347641453605072278015107962580401621491292373374570608718460797797676352072991161144558912523661160160740221433517604067747214418435384707232176578595190907644379231365332383384455838706476078215227456321763399849123729722140459098922067483498075744834478167862802473442384752590463982754503292581532387549136764998380127120024493216574551829949422713795080426238914601155304015887356094057397640094706670114589864791483916753919313969742798835007886816406507606777894527793439119633081230987254270575184062238836486468639044599216542904175718044950284584731330300397110870976463910764726295912900172738622416212247877090289692579920361366601309533871208445778357202457988198455903831155793713929037132697583584114124402018185425610555632536820492349703887301329945756645342520513368937754611311174362811817763408958604915874007634162825927827158602319287846886848507447343075341737218518684287328305528624876667849142997316439760450298077906853183221537513616317572441271028351838691336845274945844946525254213494539649393725775661391043370458100404737481705780685331196917764976170143426187633091727317472223732693811570485121414638585060035292579232747997212667774996032302508895881419340324245633495990457105103657268757636973544628725129671094053934594992405492884154415697967472155516630544744094352640134512942916965831675110375305374692703063243495154589979835253599111431733075734359735976514521297369556899728779158469654253005562700527652223558807681448284372268621690592912033224191049607883896840005724945156990573488397822464429086974293692143876532895602912101405076938846091183129794357150749267196892041645963584314618204094713686133072036340176621999142372513018265611364078019247473032387689805887167793957089084563171130812899872865773591669659631851445075177831996442492038098584923126374441998668168044760061393153573317050872046112074563604533499166727382389351879040570940042809299503797957269957961295182843804405480448095429216666537854204925649866652190263534536654582045132469798621322393369216667735049337788795806883675516351387932258913384400694990107765585322746945175686311620001441768540049217703372856636822364310850387635136350266332583112587858200864755945064397594452667746772858201114812543146631124310625519865991174125624105474108479909731625173542550376185322322592180349871962423788776785856340741361408769366136860748049050111773397369481678691518276416100637252316189594226681898122460735848230412893720222678439285017640587919810138334444525603379057747902537569616365477952082380618971106037955390853735650226159235980004186396094277667719017022275986471938912914446715597219954174511906321073359864817479297132909731091453882158650995773634012004726211391928764667428556878110565380981978924049959986139307437889242925699444819853386424815170441057426890203778121624705358439161356498017703939636564192838191474993204596947943987650424474187976299909889473103668197024497062505918009768282723489470315766491607766001364959320594918640136239390760644479043474645098780443443277865991785750452457254116215067516781421893695639958950857404433201565802850829197365412108111844489953782430417907419215845540397288844847735145090418945022887985716714215482053623129247605907567107338956386907497268889869963544869615630684400444455563146761230122175281399278499329838309465421007081767250515606785013572836833143427347183494228223310344322921494219280313708499515449651642222247886076561565944222307325794857798850919934239225514780421874517982215584468977613629337881548215122652602002973866547991880388406944553361564930081615740818874621794906815068157016678302917674017268948748893762877833375178721674721640327115387843253440411875552151657662576028766341166151075714545572751910173678391411130157199629448995337867232167148522485028889637217700985536375630547977801548912606776256957464909642252307125038936107095198360054244893733065720452467638524588444065633305485629597674298554950539789358222261410278660088974524991080236409025841823076848631293891246424965811571760822549848080122040648460130303074419904413181420774391080204824380044233849189964753138936929560451841215920752677586161915294111217758575600676212745618783080666284522049476574881238671621036648747222025732381668407876134025152086949499835175129525785982902839237468233537045412420476140167172726129740415651238465175801457216013311613489429781622446784458320816822191633264285493197586089717497653499655646916081228377997364354440043423028065109378608349016982029684879962070560530342809735284292415449879550631583751752903762617452493316693077035421389887561094933189979130747923798496581553276489169305906267386147188023384155231992568746383891960410799998170921693093754491672863093547733436172477360028117151595318891386652059130966381012683838120826662902424962247485722062720192395584774656636545251974829144451335251027252092236264654491955188183598460031738612346200759227563865079374513186463401859045077426173063132891016722126250508233236904456156145065090090941486378728847979446062625917539058432658243253080303149676817351126681003315652157787952331923122281995817301561935407373231814116809979101692146450599882704800042663236821328839666598745098313774598907956096351064839214632152852719759488382797951150825095639874339511236382658956369733945093447121522421913063577636686930993356640753188075157305892794437302703901823201394627303409873524444405981591449196559487039088088023819093814528243422158619322294331504378496499550744148697010338961819724966194498995709407446021990227742031655549879168164184657635693869853276988879787206871535223474610277058820609111093755762397790608908480562696916368725307495012615439174771086665538571032301628592739271360846464112887318193996169277780067988761936072165619987300424160322629706014521479905472892388771187246684380652060149111886879621237114929024447494977621084716022572167153791358940264515287940329490019138257131559976182342891704149173006363304755319879581367843871747355059766378462162278362608528550231813393985813175357147105563787880850128198179259109531810779517757541490159745720737660899435012225084233778977107770380932911595626181211405961025676494308886676050181142186118598954801498452396741893568709688722827610120910829055981502364099807903790889105467928161364005916261669817648495781452543791551229609245013673342381762695176302359399961770900301889304027579420334725450839914510831039913008330125300965088064096674651935497147691071891105424286638206964515135853909705771932042698355135050289214312798282167793668384779526318860421148428733542249487541859547203824049380651908367550987978384534301085681047456497743741795668047849275885432541054513740961668388761599740132675014900747863611708457137567228311814762101024524812272997114500428779628703170379107287451673046189895327725735057022119157544683094824439874806786621337806768174033442399333785847707955081170075445053993769123177609413905295777965554154300602382971102666987187246046375271000171687104056873525751032128442099371227918460866522086179533926868010089004479676456035843474031590182252369188462782469029236134952399254826724343649935698043057826182420866435231475191380092924673521454100119381115935947337872498232487492836752006495754153467051288020720357520254584204798988654437858132518830107924842818223104845455795716067465475597795539866087015223848227308083252697843712164629325969068593399503214894904056849830985519642525710758500996933428221776630149678361450882209898028729594929129569906798878955532208967999066291431540632579175990754600779832141837497249494876680704334866851503271834230090865587703027372968080477816994089497092767501516641037286046940793720200537960307239955705137804609288313239929100462800804758694687515841977930811980023518581653238472058761351888519840853964271489240776689924178668708898301912255115501757960981064247819931439144305396850637159354762220577214625497562520924095032153289458620178988890721939860390369171272002914773185373480288029233683419035655162123701894830209696446670878283815083575815556692454818284186836060387643120582005990217287843679300975992093020035674163217595976842494425447806422278561778329540268352831200217939832212303022310923043535921285903069511212114050541317724342777988445974835032203036457544409955693436501136666493859787342984151657783192385258019115387678993182458260534749411984303634760999247393587931923002883905476983023305476081979421312154760615565396218366208162571760710460321700011189450882745173773697413585694073131526101910842256759929721060892648234341956124395457465930294792320198638568505211996632094244261199792409182485792430543892568498006325941786228778682814074093638386275539377055760121639179167090899301246422072381402758793456843796638182189663345954442221589411957102228977765393477276292897778930099751662617079377131338180196845078922610069299385899765105863332044141764677118251006454385483243405581116821743793302079552178945240393698355256785124260968979180329465808504324074193483053390895698609615644056886296526551374113355368221941168359047202250077564171835799277719766642760721911329167317504324589928881237734342600995030963170622742093150002617570031419609034714877917711167406915719029631281731352186382073739895933268266837332791246876821590040817834590729394577817710844754940881668589092200225200382332041103588885347838881708637367427210756842211249594854205819543524621032707183440008175472619961709143154666105532433413223084054552932455860413723315072390512416502962288697263286159065266312429242435349382103840201417321664972375465435643655940694708567754592670929219770110080608167498264599079091101561345290204740133105846160180205162499266951533447543469948299097684900307582326751824900196512978192912021013883879097395413063869281408823791764032901190820156407740968467133982291039186012104789507525783319903141678294810415580109987672219000520993773029492601060296396151480463865593094857746113164480323640261159365881450514384709557423768906848142898869638891027055713514687556211965282119495630010444912616641986497531029913532583224927375909878698663322680887072769768250519082912772468152045186061127701795580150639412863707780871749303408829125450362560117511777264816734010271334918910741302154884497084852671854683913039492277091035569302039667668682332374653465245817899580325801988525691265605839524958265534645684006546577172779053923212176800280666500650635571999616570014149101232120332793009253016368939637487495659509356727431974001864958573382020649402687016848680610376851828794740995838104697088378241333999253551976680496122870156925249869027847656325419103475473790210641655890355377545098649973909644203195105698776682274968160792841992088315683037538063176866386651314680278687709791831630458967047255473923545452124510913668367528146891879877925155508016547948763175288231880320451419280951548125103898050207399727256859822861786954101136816966332419203345918188682660754142220888876528579200565998645083001522477930117581638762918140070977586484405996355617866769179707878296459582081363103070675148145509853320653821989535913996503134767043668942555858947433208730427304702347871200501169122080430647161166933731595902113869428961358481316571311139903726117837359072797718594049473481043132880387685090994112461584989386575616008128151976678321539387736110015601692914282570613135754263220089973961804923982495194602925488562956733991974371287038330086725023277925604872520033853167280219865779789267992942539228479906011455392772023928693355693448716204492865177945508024024570050160628153162785248197084348012280991039047914740955064502381884381618438881525584469012112224555595953414200327728287086829277083716838950423070567474006753267333288898463882523654481926686419340153913471257745172413477318999360727596201458135737979808957617263529183107079485219403656658399580223395116963327475300925435136515255672402115126211446230371444535324705339679820185857286928833237573487565829586584346609092160969678181038799527171772156132693005409265157993358847825416135966934985925181174218626363360390167698254399744261859403445474588466430392693644279143131867936469417920026674338553945073876775951605163887615728615643827882038884480334280045983586552657005730698410433585143156070943670762050142177076623181345701453802960330007384293491260313802404714504198906527304606878266537966245858407481110113353372325963609198347271163485040113989998386219542839765881429917398799116769673821859869303241611806229190611265154803088698491298771854024310800330650461266300683849237958704193399744259163035175520526502156611834477714061372404734392570669441367995157617888783510581727866704941955963250743650865537498326900957893113781261475847761773057648811740902767834731546440412498331599638731729251588298846305555937479256709360010736972320763164584398103528817070289853268594750356208880173079623833571813742355647128859394047313470540427140846885440928007708096074621768815642091686353462616066567862224656462273595771065770443678333469504969412419059019790298070047449496026612059038756523818960757414615933805017527845957407228475687304088947105938899040607343558719135982295045813250478690846772985109124404195368218675970352171025892661552662419254593065406027446523244235677940805839576101776679670019814762332925789388514612838605471692315820207245679191628818883479959665332037510678560946063897962222778600236173526925509384805045647043519909044370452643138518706113895616752489373639461430706174520375118108542993755638770061954701983141720843190905427932057956872875390755885152406991757981545570565473825281669681392350005903012139255587194149844979033151731940355224692178873137940411664002320284134663036004395571500793693436390923816207828424325029861211811349234490592219329890380281280310358398905340337936496659617869016872829257162309212640676161815420462100172527823133436411361089948905689971282509644414102208209234445131353634121488210505554812438560804939115442331050161406453343889462079338902334997959427987192207997064540262241740386265561864089305955288548851516513030287139812168737936966350720609627197648185082301876616655062279161626982457654757222532130083543833359301697247397059763226656425882585107000370464428141629836594616558293289375962139841816385744470572726995670908643735703909241732374579330233845199812892117402707336179928035600924325001210039256031921258071622800210419544331478939778998122929839365798146286746463013786558206013845128635903725426272519779415288727466819106909083788178346692872438404646955980661215883372380262679769640272596085751565420506793709711826681696605968602640770188335453535385822575845772516012799689548430011325940654459835820185409272451755855094587305393855257093305647176203398647618360070618531124818996300186902419521158057059247088209257299979775621387737987430952874429802955119448466776316892135331939203124731840064077718132887450246177827982146224853309533032709896803581945574991015273002682277493664518146953247783445031026317839192099120367085511423434109624571807111202488979478080990122806294680457217109501696036196199591254537674419886855717743137743949303985743771096379933838783928490722938489075479516536636546729616627672799228743244058062377066325766607959942896985844784871875497090103546844772352866912357728918376862342267114588839672542292209979982968211044528095349253682544372136129788157559427413538607346237046822941724134873209043525156387949940078431782054372900991171364625920448074282671700193834148497161387033497512657038512692425684831234673070505936398670882153549121352085150504825284295768826067666357269023718789620056715380293324805530161037344343903968323218764867425029516290767834843597890495077450563933160665627017991634899348672614300062356779545260464733417594242479534840934595744271477274015169003321256782384613929690071859189844351761317759994654421604475393563075209292397965249723271678348048166316075573660489507281280288193489626354365060882626249616682229305572566357634085567646901022935882391798716803795025357604846791852695570420063649325372243588765454426234704514081781155659292876045088444071289338292096889004072561942371298998097292400991453853558566066870741895235411633944401997321914354171193159193477929157022095717427827091397267309050544788067158531274743094545295440117310209206589779193995049402652211449835685445436038572645064004243969194305965224891959576186359804609413992842455045685648634313556366235013250923341217929366583766150405267644034526514317263274554065343330418281702618683336229112719127618758644485129456621901657844402824999300055715499530389616562161460822227505418738449602885267948889708774673030664885760805775666624065310133639140915969606942145568099246678742281650482582909236924376813538884023584414221598442445163393274391229134319708803493067100543306770445628593061854876136220075721139178971784096396518402460091931161235853936608370976997590347142918925346284187596555959963408208469494076884003663387145699056224891251761857850141582809602830128646929035316190694865654261607852637913629763873601494309925187881496536044848578123990986500824319226129620219902535640739357529359301492495237388458842442516745472301830276155266667905881141534102882577687709219111944660957630372946148928599144847052917528855167515980855750613358311902198476253686017151512238484658677752159897364921256386682798804537769918581112804651265808819630728493883639232266621151735792864924368508976172827924660873836785893104944432802751972575354067836355385907131184599946872831096608843285234617240652784749933359617726745477868688146760888650223842580907550259267447695969944423462264402893719496315490316609275375391430878413764397995164799496642090734790814813366789597345751151691960055174911778239298975840760483605794997301143177360883090130195374308134419903780164912984741315236251554704965351038209299736094408840161126467887412832325116023535177584250883114876027474608600043098208029712134435003781053645492500210746006512434542889906825509746201673454375829356072721489046111573835148791917810370770839494373116621724754959743945807908091073428792975873878392953700254177005071574981891967584581109423226790853502036256629333292965766194657282576772618354917866943901921925208279972596359283978968713594004835092239462368877130813262720859956931059210009563364788799071289942847880079365029855015410686804847496568212435925985820213110324365373854439037753927573663435893183042320622737915309794579244199729086976785702358454439149466266995087932952266529776229984472778916039996551817506000159811751225665056663055963325497133721575605467784441372985052676162940134686012165034019671228669913707564946245493625355243634716169876826980380920780601589688912020958012957108107057018952501343027850352383376476702228516565882753884727456874530657073456626641930700575537093318249551571007962353017123940873985211968473109164536432305269592185260426505164041592143219534135002667547868850053933962343165221471512420595192314908055737055543637628560846125675027931010390158599290260183308972246195191707569796075233288119293961440342411552173440220013527861382158419509059173026419480880711018171101807242061078389702850369721206844567992422139043561187608896729771508052800510017496757514849446986704389119973632323472851985350528071406571843450527309956398426534978170896575726809252012654331926398496048870003978222260848645830031303127822492247990715508936249646690117976397930182052453531286901072171365866852446392928200980822850888156418273949647146936423883905884212420845901833237180149072175502108399506977151764291167370609360086317185096906123763518063028213772503657538943082121187901681842564397681584629219705485774557406438323006122457993329823330873656253820297444476229000068860654822718781129837451233740314307650370821124451530549501115925363561267427758991614676415281998011365822195932194381579687056379505620999737418919794042606638319750346982327034190371816319058944312903779914221922215516436070199927828543489956457352978800115570957230061350863810166238612210500068103014867030216735506147448016332619681636350628365074702185399384274367630239710373646559525309660380253591729543769575222366030139540176912994816940656341340185061253664875839427865663344318038960226698377462327251942107938180241444348115600972119067462042643036333497185559681745516837825958694113293158901421814163500282901180802520128820345143117079076167535522291116774330456864351304121301242976063934551676912774877445850220044832629687347532420413138634204241590777683656105269209955471296774401717874425727008670992902639828710722436592641985235839038395496902727185947423346697115508331297504647415011901428551102921643094717510436275023406270142578135524474008770499803207461247672509123394278187895166554598033221771286901129861611581539306439471142984760508379072412574324897186739185944339196954334155120199229094958390617256195833585254396932820367440786807121001409134305512083185779675609498224962014474603410437257715776519200528266401962610875910797127361743226869373501964245613475126118887290568268559763786860337690650854926328370832466487646021608069674389191237736248676653460380564948238084714833257091648772284005356457080130354339635338053154466720475137081374866974360808511696889187968698184070474202638024913887879436543348244624992063974317055934752578556969236092492664044966466252898936402536800687075188010699026143683433046896334423985548939438227587597614798994629572924949908293715205614864398829056588272749425873428903125721845620303031842027124896147784144204990717786198027767952266383971491916920217438896197580698392334138522750433924517402192430836730792385686447706100476190430575690090901702342181131013068090903890699853220214901432538253244724016234477520781409646384028013364223885499053277880195368099684022565923295678491150804436062475497930990739072899201129838058250945714585619710995820831415580482129227543986150094897860366050115599614517458046135956653124855626711450996288533269294656648610135170434164548654080896180671737010150747050850055314340753870446162272985519629762967541022431156722211981486752571159433222094492616012873685013136598696631982071108704956137270253081862326587274149845520902418765350382021083118173395538259789730617709433041106738623187369768264357505995353113234571029434352775584244715503036166890632202579564730188437075566558525661636351148132503302471932163013979312976135855172855801082469410181121728000025745280699548558287807541298295183834763965131716919734968471008840987025524404840473346401572246112742632300567447220409095028462148426234718448891255902274812397290496098126561633984324483682227721538645587221620541234244847197457853313654623094150108952835607635401295523809312724227676797592392991190641928396488745793215140840282957408754682521497671219466533197300320101506596547140131323605002178801331749672152727235026103272454621144350878081942830077426809194906255326371845467380983736983160143716047594195881823086557539936764457755122100428123697195729470087242806062440899147465930985082898574410957611446905888434597558380311935491270270914064643821103083036280007895373736115917994875816454065678712950300458072303048975518253349754783275535085375699481942303161832264384077825118969124376534356402608268551304661700217156521958396320238844935643271228924847294596732972219377904980930212697304153633169284344215304493643775811770461062348986594504963335754093334533743223331322363276685207591095072547051211034382903103848427155409003415525417110700243273508591166390236377013492300637909626673308775283612702222062115263777068194706264694108626748560353190965592570510912190181439943802448831655070766676356701833890208679591133532675691853973974131127183622107409822626372790451698443303555070658285486857268234028976429998117371761819837653447035137403998798653212606463782129253618280607692530273170509110657562932408219176695615829849414097554994304503612897784192370640107879900450113369056669454123952254005857586126007962134204523782492045158672093318695576533323379122490783787471732863694653468713791527651733959275335016949245981961292521148498510613972217060734306956833869148747973113599139716395430463678380767302958108388721704829411780568039405533278861244123718286925833896803247425409593579616413522064989740360601299004170061201474264005033932664433962417332883674722600875766810562329273296890461495070564258149637953643034101359940154527117905628314478266126154472596966719611390058660155684209595000471135786614491604553131049986560835766600048574275876826895852842549548874891064978761461334793358698997068957028124949700604209897275589040529962668563881102850011472267916821129448238316536018026626241638478393132372760296944361739032941550736854276323838958891322224206527134360616164992467104402357527799259199425776923832395438698261780832782691170227324286644749794059620959529169063036300088005531221368086687910620359975205465474634169685550290534112719670384967141223640364398229934086901944088342148818130244487624045387653505257568489595541583356836457603429778273723902115160601152225311564141245991962863100774322741900705606860704771751676839368320853637193425178050529109682426794166719265688147988565334787949742622247366008291796976979169728935452386322384250536206906001845284644544792821802724038174262520466188801267184070937181157815699278722082686396653916872063876040122070011697252935007422564262604875815891170391383669596670298362131561599809899685040843784331286888930756352197465407293885183041896208078972799443132492410423987443542536279136944011426130824113488787255599149552713783835067941531566794362305368153845580719028832811156157724461875773449660105536116267687969445186930058590376953084519124808408035860110483508919909834037528865102153024975889283533124251656829762216211952882551816034756850135783075231486945114276366994635732413130769574370344163199643676724342991313192977761032498045071823873555916932801385550112061678893248046643500957506891596105893546184593648460792896983476160613001538055590860351509378390202173495892330557882716219418658580143750456797333301105134914350379607265921896364908545286460142661192635652434789960672106054826160158846939607121630566492045177133983928280580393430844906955943664126780477282937592709533288052828365177551636160852456945457820988675720711455762483468685532846397085467048242520279042052714740123000592508493298759914900901292580883155328952995278353613824044518053758167635780594424832849781919541023754365288554766561340349754255101930017985835374359235093549267477207603038580594252815668850512148544285821063353111618209574418071799746803265716706659957969389747195987490552499840986541530939476644742086098743092410581782452617063536926981693833628658973495673165806490608340125540780069301388296975131992142973957821598587072979393638571328450402355456320917275704834592238200520740950630123522745846659696588109151341398727968324846733794670479151334326049380235683410815526568040839211705086134028957419942606901358996841926452036699427908338625338478164336212544207310712860120870285431429527556884899648320177513566531904709535781906055897998096951615287538790471876852217965870919690054585730763872128488116171518580746499021804246284277956043086784682693272435348629733134920314501739511243502997912532489697276368852889061882868547886113680633041684057455824590409796370750514914087375061347320048559560891393643213157003250381486844509948069872950216010084698404020488903843539433135717386400103147901636343574267486295413842025607648090452822010148030812568757017151425988941770785981209530211436061554398113640372718402598401524065031236770756481802160807257082959754402876482683305895549550978201932481574432703304845998870426722051871831591058927428684452753541974013549677092584342385139922929342195172775188085265024088007880351846099027582065959411548622125250294516520453227665145305878791582266083693937250537208838222988456989149124577843634056617773479882494308862197315865777029417357432323362777434149258143000393631015447937574278752213500930766207775129845908562168145123303040636821512610442045734471457873222203012608174893920420400907457058990975142541926457631867115698080628542685623525101994287483453043488031631195194513709404657762395445368342011504033996611423166056282709951993832643613050989135038124903373802161392373242319558777166746889864030643684415548671757998614123275449221782465438706959693953790626726966467019660584350239812727969951868396538578782804002130298828866382246750557274742184665979603908081998979417951913464090119613109808968536600508810365104732295344876050257502907197748099497502048564588275353845688328162701766434461345030966552710477908918733519510546290125912096778953207966904999314412104177598420589441542849515762779346445425874619195694674564502941137355940637303662135871926084863434670337820881455648237262159628341931082454177018868809210118872676125408328517804154475618598583951168318885182845073785440669126179593199176426775862900760217181275465754896947932568592509744915668515145783824955640052385834642375795396704398288844746075863551643405277133001177755210488687403221757990461514971322113219476232829515237600321941085514284117945037824590920735678538722548652174632881486379754065732388959208747724689039955758555704510196837076942999289918935584161673497883502836431278604021446762167022065330557443805603460221705464437804494757608373561070561635446231215766344055918831332989845252396515028511085304036039655644208385118768280306786105707899859707347705961518959552763627188285576556886031344423533522149789682282724094545414662987928283294431953871417414962147900059335383665413578595134372244665553232826704938367714941954855602880273678065310559495020550935932660772625978450738935549543616817696543183223273500048650769334285191929224290378157603975100035738628150512276434173748262609225589511765827874918604821556750729395087365933483944022099193366336683982823042542985102253462391688554621478495215129349608768270108574418723773839249551134616986652769284409609188406848878557571240180851711725168853563424761568017183478763110723828062703851104345400475183188080371845846621718222366382242912767978284415125787098332877923271882497406933309922940914280300280548386782686110661671192721746615294396925331255733231232729266429308992919225889808699904200705248369403397716744485787005151737941936377425085490812890386777011489318020250611544733379003586681065113536420891970037243628344947314017146023295592176494876483974276711580518989825951348178715712786023928472359961803291125703544261617437654924013138414598756557395972383310859849843404938846992419677725210015885824863641696871215245858947674289076832652059357019208527845168303691188289224963396662284068275768123994891018754517213536719191504168688418419686778276087446610471244235750808438119729346956426957732270869575121733208480177957767418111271321702318970395633583229860050573788236649955176706834393635373189624376612574591024833445559540549698813524568193289648052082810275564663262577528920994290649841790063617574728715166760180447295931186087056594945857961209118800297021650175465062648134096755398703586057461618640903219683262513043595657243299895781185266415869795620200363482776033688794141874928100815914556888123963800190344149631361682342978344777189364856490301615055033475929617506178102608581987959624522380329182741631728995645538624366477006163360498188939099932009610326903393186984140950840098865925648329548070272305710722143089067077305867811869403582913818270127728823701975647055455572926559004685389665452957373156302747567252079088734920249617628977332927159995868925618130924335946698828464965137835169669148136558247151382910373660562032022918227247803409411819836804585933466714239404782285721024478863248826528029042057817550553383162180397812203540708777858174722388533820415727966759558959376987800123093789120558198386801152586642009940627913552336563893472704065960655724777341562327759402783644455084481157684281258090813249685351249393300455875137503634509250236134643264559568903474294937775538753378345408581463743064541403792394613082124707606420891871221507844921962525743407919810658767896707561524370869769019513890846057493069436242384567200695446583527049534619631013567048600435419333885922440584445690568043095686000408067417349664174422450365376064047767269162586023648485000187959164459582202392764984529109683461855771276734591899659385303029864591148966933624052601205621460601169089955516998134537877116170368936694142755761390991800330388257981552488178200966889821121968059366657497012690222316353073031866578495462231538483199715414735877032491191518469147023803865314315690688334978524319864512806788175179676953932116736835288945857271327411848623796105945708043036751861068236690090495019107883513760484258099651181457025395167152241372533733026071597414765931011921427402329396663715590536693293840638516265077109636714764836826758911395880486107323880430553656325381359958486602751643606350423144539804150473100711917092385392035660790392968063274234050158068478867143381701266566128516691194516537672467805065081856497630889950599413652845710074392434199414834210020421856492607615605991314440669014649616452494049721434090038836549571331021012704942933935592192371648814014123469332458575557276653823151494476459252506080943003909037768918589381042860856899141673553569349521972830062238105129001469374142630150176825822323943385629581995526002268767210742337799580856583464263778856105726334710051788590913362374345510783617701579864174305656905695525344549534916610014383863900965327664740817310779006842450790545612663097556627148869001830222497375892897954879436155397958319958558476329292934128336917703967010051190214546255125164239666175785996517531700377349106249990394375122141778412091525845444961725172521963507795415009804744826336936037782601118730582145130879708523034749327331132891751544960260376754607022167192129607866019071062585316115682748473954883962203877608475084083307252655884312820332271981032647364089154681838765972241509291043865797715605845939766736899748832153913350720733559916572454487046172454633903313986979989938451272531747247923359056065158585673286603389149874591214207562812062608062382642664915242891495440387802966019484901103126180615186508814629854797867303974041030865386409883260157699059246469720797797346443362111832326291174567623755569545546560619756602205312892966598186862971864562869448360751090346652579143293635050435459846514857709400491603055637636557313850556215985564099209212367979590393810054193936021500065133585284560322157086003127854448165719668227771615896535121126050879826288598427084898778094969031440455483485922506705343761841719881837145002618441023118726548177930091833684920432356947150242988228723064221055892878348361757456492081622267398827120950094960499421347775962093802769925662356738018201766504918357067827103121768009843402831248192938542772794746514193312531148191776998208292101068846486936712752642552983462345788545141065167763850956216723036716458799271704245360220963487301981587244249087055374956697365927564631015667470619788164195874937570868317921301123620372741583732498633877642154399251135401412277875752382357637616469506770096625431991576934065123558825491703985387130248233534549667874758940395169607936602665360865253416225357123817731673684130376835416847140568479160304716945991649179768643349691831321704839035767055819695267051618048157481932720391842837229885883301285832565849914118727934497097990601444244250599089166708075298139887691882704956296106426970253307229589370032257930783905792000825896498108412683765367998156103333111471851747928231821161027092552920518938604987944477246285463536784936158810546685297344898008064807897308940416630281952505006612193417075522426567320101479803556358468000304901537765391178425657499464565298494066561908048997554669092262275504346849624384651536978647584193588856183576139247150454524739907137496331180160541313875471590174954404887422879806913054631492392822495833922264544653407937260319079346600174190929747615133124287985084481418773560656909317979983143403630197690891051774796973338660832719602581752295052750557267884794905079669877802235624834292388853117028042768334630966672448934072633107370606375871962833826104682800613277824202479949391655544365900514944298652903628030136132618619390579949209578729229328576779232854741123839927422811306500042211391110333963091373434184295242532646240661161211187476376818446182453658397638469429244821460111246857364292795301567320850067213858434112777999768451480845659890400995059714136320198958612468621111171583234247904203897879862114292967347175784148730115236447691542105283150654383933007778728876611533990110671217480892403177235862173004255056714682932058207288488228570263928170376596592097823815949504965789543945557433704132617292971042523613710206165414183142387762417282888974963731242189351277688027674882343575105181817843270280938369337646630992775566192163577743559304057576306273565981606315639911272864805408670392109944818741972658740897814450793318957320998403134337910844083915172414390922888607224542578928147220831549423617228404889897455698332735282539860126563616071954068967975241748120532661798169944603331932363011666241327394934660413646777454645543132757111379899967368644204238936073076844879105408710235292709032022299751110065518114798949757285350041571699882390470519150639981421442099216383498004632553072641266839159666786495300026722732236769113424529169177021908571887748665348554341747483500784328650702599396815811794584053337266798308108774049300738265807721311227589742395827877649101123213667187946562823598703804379356619033665225671584519567509930721570799023033047299473808277282780871946869455030101787127862512709341297154536065996761483288328412985535938718962125126191496810847861965918637612197127736477608611191536740359100319666373818104475686183488955632516319613629484639820128020805845548046056370445098675759872656632686326060285671699277795345445823796538359670896358834483493077330088681710741529681575104681872822170945258850377464102391875139742202604905037938064211540036163310406411586412637790240322942606546746954468052497519949563980365729591058248087623252942724852506965002142887014605744806605042400781648913960411503707537666333793665896637044657619267895628547181087456519205425094103083016357594632777203558162428008504570011374127488090912058237982605171532634695005376991134633186017265585815134299278538517446126203908728467104932316663252364425308297819879533883264086919498528358504338397727869848954166885633589955053793072505207670780218822831375108235884479973798862195777666961691841035415599239175969904449389734974559023011193446541866154692027440131556007302266579835987938323433231812471173801357352038279339976019917307697620985172409393947564531521620249340669052049510745693013825918366946670987871555194493696571473321618472633638109847577534389058342455929078971717439685651116311733310153612330009003597937902506146597809368141260922546349414517105392309034199225064015588708085495056020215876213208716763992775277377603628289534647845950267062457999126496333058274202435745372280179609124464894916256737577140364545842644487619280356491133984370115034194976365918343948897920502314001954343603184095281548897286220385249199128436553964792090857644752934021341790748984555949489213641086184463827400545034487619987034784553212266395558301502531811331480431828908377200895879002289042422599402387117414954093109154670852982488495668682799179559623252378536681886548832376097695959709094145342902757059246067647212141738870408624193675710523629523670529448829385786855605109050093822435225512917292323994158961094896847466084636030431126319816169417682431853029696134133004446790643104910051100960982664847774348370135361440642346347277806351007935946578089056929564561437073701063633239716932164081073072287620445276671400216233006254282552597734465772188535766159432190744018410679000766603717909631950628934945154377129728740357204708842292431747581334403741204239827400891020967770485924385338084121195108900328527050508756470969539856256605607207452003726149771291338728327836516413934408125639090202331926370272902462397471748175117097289296865584515249285867090100065436748985108728390455488009080148789184746453253865305828462983319424133499192035928144053720369166475628747259161327398879755087878619555109298004857493744076547270814876857149920214481172762715828252487139157468229963849204568901448733815514867630972188603366485742489192976418959720289122418649708788095945969510248235838234737023947727119227758400121647440722398783465204826754577652225453654541542951471247671439373494895602506848555953473248971114053865054738336750157183449781954296055570713265056211154856145009225120339764437928215003180592985011280164796462272520574846920986314869714979227892582400413471970865232216505681356844891090889047135544154290682154379070350975936348668802042185046135287143615788804301429558680567839431772112295722823834209469017884638348324918105000300346975163289428323790232424946384312724653699946757509637461047778445261610864735108102915146494161523485538738125652724068497113660414337937133948516217739279332970956638217176365721288478869380281577218399825007189773406300975115220078684438621403017569026502918604163255664058458578154291584948340163431112143912791186315572957772784715862607628933457456566558205992984269038436178190139365420958795607703676167529874666555298653125531259411363129184487825839056336705574252965839265999116839059082188028157096575311129706219107717075048394651720015731232694999523870052577601037900920879548299812399035167097991904689944326749284095368669101556954374085448126652993959329469370155049564142616498235105103061222606494315540747491874681098067728542388806990351197619546802056616506214437073880068890624614727266274048385909057410175248639165160154144389620065415012509654095218875278431098713116136573460750993226311443509672247300429643929080696816541273632126997436994064285569305927252539070440549030414013013540263494169762384298595505696170163958206029110358950080758321031062113359165308455821947075270837845606378887251353295271961475406527437393526342078988032455097655600838832324113536998574158794049656309034152882248660079978874876233951956604774782130648340346097317127929805802353894813229616046387727989705363351573659220402682430726575965679485184298024161612100569783452328582149700752698112661684851630077122692736054912098543827744652003693905418237480804911913870598990779523696680918869348087059702091232088407907886854782515207090575560423370373949888259192790496878807510112448298574109871299461037893042021410948210831022589996523450847590285239218921097979076106094065444393678532430337447130920865633159890120973779108793066064646359838488516535024073085554898864325212910766377747151640809136114574240213815347116133049246811745545346100522696755555122071856000377835758361292643266176833105856758401121911883677079391188232577292310283827992411327835056019991330786792219435355684705535851107607974384577999033363380671939862270011239780944771422942420142194144697214874165630063664316431189795308164151226772288198070694444651144261280335474364798649568452330844252134182366111037879432040432555818371074305716720990934577321828031776695077375349972566175024346918745231013355938872884778445474550870764420451202347197625457146879731284929227776518258757196522247178622947515806339135199833464398420960758382483691548983628630713126540025478959213268696949548948804303634095605911315330146539584187860966230232799365527777573368134612076455861491246284992528336882647026481744606376033552246015281201420827976835088199428412318440858044673832774533540259211046803027182008974291419382821495881235508901987066133681595380920612283408746941432030370914568221140962995297384078130532418998900290236242996908195908136927865033785073563366133226892154215022513651753645006529577189091924690366139811551864381333771014749035718672924464208568380831598779079152293426568282522704373351361971036529722826610196857026634085544231890923751776683673621424013606157570496302480979030900440573333642577843608397488620960276084011124391380735244443624353312959118685269029178068804759127459493079747362150196627191397009812193333146920111016521200416732575021571571648053236820574515402672518340362900475638805295345105315900952898978025714034116835433802484759683877266618863550625050768281290434611936467051829878394674116524436311940482075888564324586955511741913489986695815484785073331352418810027740916273254698559806023689038717665280650339363656738169008010226669953292461340267638560654158287747935971667285412483325823809940760104768388168380264022521676875140928107885772533571760240968929281584534831836935890089096315350599113308898105176976289227746366446511327102870945616608244803847829022556829194922311164375382926546930641065167992508155307260758107723010812076968094122114302134798262838747525487389988708289249110525607242045403058146974911316117434002370399609177274802519083001153704713804557986724873443993813573895086711792292353988394187163132679706963501042500925618018681855046837454847006973311143680587191954536857755701420479075295200647981250516586263258079566054496718043901078193182572452455698383986815646769934526732354721450487812355729642216931035153514101299421895601758924457619093888054147669145042913762174198500707300538984492784017724289122121997698254031097657804341344995013641626073551576898139124924769670073027740718003335533302075605488385351925947864482743379680388456394182759653504517946781521775681212192035720364720461792232252420680673964471823226685037518864016351165029387097701864023318160491763861553867949079112456325930455412577016385278864900364558798648576968695609538083393234736796623525390658716142061275123599489626842345064914919549235937315079075290190964970569775981402731356068346131275307521804304064939292977612628039033502769162223506987204707746237717440503502087458689130135335460614870581594157164196822764838807998410075262040605281562607998704460839898188490913144919136632512892680733691139602134074654139964468052473011346095138658681897674684164350944108983018260449950661180451177650841829795752299770611963339566494007772257894197624049241464757458055955317471047322775752118177134144142786705163378779389453745580485631185166129022765704766104511219706755515009083177297569208903552974787971272350998767618599042403392521040881253243301340229299421520108191184583142717629757328655066936677931843210426490655737915709024877991277056188668431703038991058261916181653501002377619060137916592977795129583543614133243480288077076018322029812786195468920018883801406510103518402756716552545383335892449716958804474027700808550360741194397252421903885659393888952472892993155034296641524163994140733757301613277952665880383650192352324912778864770695732478739745237285800027837939786766251198017531224162557485589411061530629985591423823986186032074124444646728014907946361387223107992116293440356422481357379639176536478637272273327833273148476775055519951773968193354124317299165464500691346359951636495649582631999745413581447850073377710657260764699694494620865598260384688048725735088373517228427997728597731997479176622735269905807311554080486939208975190519901419671191827007436286757679496786420851290943791601579914844859284374526990557660106916330548130556174247999635569281967018188437507242748636644188546981399917109084179833895828169520939533387443459482048910393080733408879558081809959943032905142469202870790215457224638518388931965344429754227789558241287456193977198938801074221620799664750206405175217510219965229867393428775682247915515661348955528519384965869008347046184263681379469966209389955931738791507144346403540462642101898582195499482581548562904421879316945509032532002163278881041536256560432754962614117169336184899062056739963002600311569588508193585668125043134323320652435661225556198073724708169470114266812572987028736398307375915137651153202921865826302925846046670086837875521307021019105179443594526417616456668212070764887423865588088797060475543200731055107939790507370380025521401486695597348164753678433876145525671535338706915327063372596047033033663339579962434768994521676508578873080952293468381959279836561697403832291892513229842003744493637256206064115419602232850113489346270884985505018892326672733984165669526854389189183989983387400077171158833044800295440643665873407633505493259671060706583352162642613989490793033723969891455017881537198752608485462031030466713268236672225834485467071702840746865965967331741890788585601360012583802102785374083997168414766773441830692348435645179168269611062698391495296223175257743427871006558331471110512359733925393105386602916701672954619153397412235934031011989724823643805340518968387077846527577874235664881386077414359628289204871200453713648627726816961599510523821070914413232798684669283411619383118216531273934009432007244877621393982822514100064895422116986264034571978600223755614059456590611535596812257253148645946786089859635145696919071424341147257275804226309107581771057594623184054952995624167374113366930398662099738745045486707604328047038947155373859579179505030154737788932434748027402922153636054200933843889867784764017797082083455573415690789994167799873127599466546812619313423893460028780475971857013594179712110260143805775165228632055588721924139479353864548181702304309181268352719958448198220405082263658609014186172872622488542543472706100035825242599781986936806350829139434980324691291493388236169508694254554430927792761900901734448814076442816031710291887158911940460961707956499285067432321248300924090077738751225788083393398866597383458297696127507670036589954895040310301546302599621306069486363596010119202624366561278588754255629505552489453267674060834988298264396967717736181502000823549987948687828566829676210274245541151214928756414197252497249307810147546906708833718586029331914421246543591677050136774728634280056054340257999782855539280802720727230692657841736939958608634365580422159278331282379144345334875787944298233320962426751690936535572264671210719321982895949912147996503025835899475216910115129421570252834979914719401087904178359223536046270932491228061902849502202322410136989355476921584487814226536809657290396462608201511134439957379050447795572489596124672666419882895986226839454427803140660461685253630724426954541180518628411438124475157986973024323728326848656497132873698075380082230718079881142661625903136390680532140146610655207726623332496005661804036613753517191291011718496665673229568073634511402082771037627681836971225446974190376206302671062982153886371491437367123568725714931850229956459428381038262121561528176533199591026915569558655393370035764058749106162001058969148409238873158668580037466839063134298235908756479265858397091864788359101377705095573786469330590836095226384629839820800710337692002739938004845286517237538503462771817707524173346943614552713417950939946098728498198710347257668224643833599938469096326989275251182010108637406426856841772442804155146566617509330613387315041503082289833536709670833524339470201341723081791095054435121705324525020172946565650505466590476474830434876161104154610433490223003184063075940908758769794670907131012786978483134801850145958527224270372939311566677134666474620481059635963993665566772070272255371120993483732476129535067103746059606486428802697026293415787087726944105170595791706972750446446257270589735744049676173190234065038169305262206529432194319650352852819798126391407008023278623483025699264232725825468881186192426937148421017224367543555575798050077586387865133846699957598150853328529431868394107651498574168435097692247375093658196591261053563258828989422043243083899644402302143526396276339979709875132333889371526197357079702635699943073635945559949369017009078626874844056807622342260171164510637815305259552120149596563229204668759824396756477245205549884218599769717921082305571525407969579604947380422685904096101401766672661887404478763764966766014270836120170213356901021523822699523530967318843376211064782075059632487171623783576353113787487885146195729247244202956027661191849288838771462119538205776699521452180770069282908776658114069213629599138709579258397449053671180134510084012345506778121358107900742891271228993036021173852525884362991883368979462425088254027075657467634354302645113964814664914610874567224235355935930583104496870568455064616680283812262801293009655937719451697989821266470843506926212735379372332898827787060283283601716288434258641079350485245720878392473558627909303215450348909566137507498890831832248434647073434764981618662566053628989571255857033679739397085666296830134464512928413083394661862945135542581691077255385928853097872720652482358521637692337130697096087604792011014306762217421679478139282162338983766565334685690054920326283273526237134451654069557159353689511536591871759682412337490818388872061374918831870956145329727437149322121824756186387293806924686141761326874094298655285368306069030543763849964138279431950007781933363302339642700593037991190099679000791701638132977894835060946469690770639075908474366469877854516394875742366109326662703579730593302498662942676467235162363905291871336714373450335069832561132435393265445322041528867052236769491584730508584171271021691768725964613496648419390395853099545649450616553578797291378455777518717565153621756990645640209887841129918725530445900631746341268720805900514737167049669391867641960545139705521828217261398423978347304102197140007513969531547368135544716178822786177891279090210034433886699827218196625603526650546966963944180854926949048324972573109776178412278154963922866814401615779358800768711202662707733162404812843440469950042544366594239762836747456069936940424754273712968135644337214023230745799541937293634224155560322246197300144026347144575667380929266048079295701651907461918143228718589926082116746451090417121864423447517140086773389613183962355253603319156701942263363869054681183725136331098101562679688709951106133814350545851076336314590532525402100086799160850838918275439775012552760524717923895907675456405083217889848054957278435867387033019647109450690266726434087387674795519227591105259720384580668501586785507349899630820733871834998449638969744853152543269965101173099693317997026106641872711600123424443534737991443798809276315599860248129034053933337706080212273540385751894122436124505769027414926126296061000726131547199135007804633849122313557030493280741390216594860563964123784251379044075040637639611858030027088937730543082993822166385023668154381204934949610932510606672605208340776179262920261122828626564614030219975428428488541978428552991613283782331872927405897444736026711878075922763982090045870966862209612082318491304721058238905632152564003524446680878111481000056059895464314858661553839266597129989868818904741689489703730396763283890066726028779263458935887518826983227378135175982138662714314001267546796413844903657009363841031279606480985715529295742884897870136764917820833839345466759291493658903796261577572268857486359299781479372683640435108873822970311289688705056795895893082036713890620100007623814515441714677529452318306695432975394853251719841016218331489879666670746261779215887175268904644218953032066260124437914119847728660237110714005704442201178982246870675994036655896033805982140350650891471610303423044112367314743560763266943441827687557201797312762696663771659091757428435482333309002843055187262624202754183293971748383147188743094980727732224777679688167348077435345268899558997159277409805330149352934789043346550553782689495840202303730096394442482866581647050675229728512548894926459458283236355496184185377769961585655771243402609727430789262190475202119203832740830824155929656934231410325353827311734519633325303460684626496230072135543129288567981138373117023445002471726078596039428559114850328315022646043994326780249423191250334428399875953229069234376357100215842088262354689376452785856770562287558105616981814774972439802152138583024922622619812922655512560595206976067173754243600973266033149578928481567183251003472870244916384777102012618229939047584396302506961793846625617172927336713569399349788708099723643107021918988818267933986547882591898712429203730550145198417229158521094243140534783099857038222959510199051356444847694180731868652166697626668611363239697877868713289037446203656120815669564539708919577351216120926774756808908806425831056881077212081272642274453692042129564088765473106272403909858418028100429822310954538329898314600795196173981508375637027155567760711302235569595223509441620567826767927277402955290258350964595446854899350377882119243176027473334900240790050498714012500426027251376964962011944671623843724784581149435936486272757330974690548412584515777489884127876399971195618798179172234010540237057701335976976329598839114157723211310479262979366909836518436669055282333649343382977989587957764282100681093681153583038984782240043768185269925675297891139388963825831078116864938858095441424739040030218394477039249435974793647539246421094977035850021306559764067598106144498829976443698651735395744756069677868119807054796145510023017270984313507534929033356446566634625662210334709640493213753659685479193448593830672795516702960000935194329609106668557260937149273698787307602239603207659780506831633077404701659234197354147255249793949316907153760757157475491487861827856488779328263538145207608012706319434805254848700432019273270565838868414052202371773126448000677499336598431448221853745255995779216602975963775701742858924242352600801019993028835689582629553607177019495416064514539923760116749415925549533274068910777416238558426429532608433752026870127317965571622313637036873298227663607664790453417547784158310277979897512373351740309830145547324105673237180651514825963340021689851081756098832407956383965967294513119563519114810651018589837723150683839122202910870903535344943576870251039917428965828758693404861927131876817502394626121121090951064194067642941537478780961483543160019244452265211823840406309059898228579567621053336225797420369273438550346900868876570683085735838675788988658570412064765844439504710107638935062233530199308330619168803068714940973707359439584659121692255059891651465643727819172507285778944606757795027827140798128898854485647126897498832212678279865580080744207964876764423852175487096694756444715450833407233870233180443354411365852939058553549909956243648282144917055515260863838099459748037068079157310157414018809021926703387490029985328750758031312747143053505856992702713746685359877488752187743294640124454038982425916629177959957198249476326079089055317975682808460821157354891450228354244497315886874501644154115426982635842149542196122521983290620164741106641449173458119701774279825697472560076381280470144638561297837296725290393260441425203967233089685396349246282148186867258500712029621024732641644453477698693669880652809589501254738262864791018736316824998098686185651599180418024457592810990548465291469133223156053821341827032295075524569238391844906984639096474550629538367864765585831564909452459442929711855488397799787710809305495127849691318656221877158597647044813402085908747629580319739246446563435664855182151550138919482809297994566783754813613136957222657461317245144718488796395467618614703901808519395805439713822898378407888263699578181720562742203154356111416168557305962801388877979446678862918595938797642782158727605454048732280208449744860702711385676332746871750393861807282827417448062648640837969165093470702948810426639957177886069756683355358422160701757749284025567813761018640663313559601507847781137576438680093917454014013766002638798921479351465186212652047611540624289471742573299457990719231961824503786904645331253705507489136558437038585280153142143858919378523997602744953732715575541076367323963515188683528309289026771995047865144674611176629189177616046307564040183511166410263521906004516897358576208312756826716224097589906837674053177994433684274704173027085176497597511677158990085921574576298437073739925123525867572308500677846253896447912513739606573335397533739328273529235359905527961548983028513027265746360749833094015583306726168335506702574571849682523275610037808322753441205531756539791628851505023749357518545898436296177799150568644166113419971605455471612103618360288339195795469130941409165251798306870869693406579973784792758895652893476287430632833241878746880539228784043269231569201094086476721553941077928307631394445190619756743014131358849006321904359737674325164339183435080897804745693376468219911655950073156535475383873575878032909785992274840259902415810633331071132582265500861478770622315563194667801517134201865386133350790448791094428862550584169007970161735942394514342536707445123771906974028108743118953261158706551743790559476846316116026571065217687526710461691779340331444728001682938543958981747846848281377081682724844217922622281541350120536136920516272226519509122042208650432536070688867938939475626075785773936472677311809532130931415644904802718990955320204689370223207361378141812736289449963257265478931194879394114356624376771500799109545139286797710676583970318358368971629074178723634407056728786155645044845632894674102563913462857769370311233339215998983011203980048839954328384937420859891326172224854357163182707381349627010856062408538706828783196266810659487022580673191373072609112475839944811429431293007850985358711592226729608980534950935585874627639314098559961709941907856221702642880903638070549454361455759300477626491988213168973306486489132900757504869600693525633084873211249613732106135603863675055466102066268255077074576088725202519641729979529965427803461294578985627991115189465766716691823592800566675147318729232764623759443194052672425443955083588900257953862963175877833200357716518088287192831121401465835537799619627099666037982763301278869120261160098966652542219507732211760637157139438978719125870404557675694442173800630551150787857372798802133169448714785776414921961085383618168739458716130963938748161689164206023980260617420115543890484424566439177353635663153639793049541834464948185824184397385023384949768531587854784361531546447410881819309061403118745937245829684590245884829787375414555514760191200476851448065196157161644466326904860226030394993870367082877480693264573757681839723715088095408392607037051617067050530525434164763109432521624419066600703349348397590431550228643244201226468439858159875536396590604233337429988353786451706164335315910270252243753353080260297220356557467984497827971944535384637128563234845253077613985869869097133557552259532674189514906490063579872193122525391584401174224041787261791709499203174196084375061204379075723870931703725867269122666564593744315847181875475349820265825660064789227396142821481087964850202310960194577844265368214910506149646937741539718350834059748008308065196158297157982351375145790918006939698862450434603078335114692519190893113331262302305479386882632159405974613003857376962568485832615982415501841073279075215376613746786567459610701676327973328345011903254776127213191963221902436098883755380884145179167670660565369383591800276636238384804794856722140582771173346616633280578248607837142672260383217632430806421139861403757965054892282125488609634506911980064915479905828973800783472779300834677178814284818125241370413116647713906816924596859407466660673786999054607735791893728478468621404037892545484667507687920397153098352976510364958501038986885380255443281294819016002977394686286712819939953548020688665994762139113818665981499597174379104474560862235306137576186440336475595319608859869635290610339639016720386874762131353299395194175829345064846873496051111546347116125498505117020830283794675859412522937380226412378451373456208835266650004099515492844586403259575006102202369719905825865132236090153709576710185770315799873643047205135381300512773011491809992176530328068387275924883402321433975965169422444558174169706299692674486985732521501434576505575755866953845328378065616300074383752131610775825259909614617464375266477581144709576683681638153555468607408671929992204758347628009758727230705147445499825074261105321577230164769072175373853433155900320434317990460330686741158398813473009126887170619464389992197779362089756753861452686832836106637491075582110587701570877950649790634872949848717724210553230838115489273969577483522200138260693071120603542160040489178046243042299113351503681182771061285916430247236853904384306672596027707020175509801885133049583149755640550525450909590492449656645305640078957773565985236291575497184459559089871153017703162586223134041744271083154318597454086664755062088295838793288172084206681989009866400750398413720851196981326951014511348131001450081327082770447213686624544850680271831484557910404530572825613016482492297294463421580757791472556678680530418655524036766318622047244953580711830282963221592000908467112743588068027610719954807816049298043018812987549945564547270099479020781247898896391086184766166200619797263991932525491556249784555570856931431300522197948815301318070984957947354642315308673875341814798319242185941896421008263750444488201915436238973830159328128508131518104856550037503374122597446671412519950012219116077230082197714279281975504706463866100931104680400243029575577466114651087599170206289327015365308360921570735561886503526301074430292159936019652947258151779386979758296931432196349901380174779995156226117243407062377199612342043659747036696940990418281256141863927634379486616730510444810897405536187633021981166524199957029003289841836736144185518549229192873771216631818628493366778269563107346024815551158147361570956313958852139684696673744640228597795724846119680838903246576279454545447258971826418981052559437412365928765225665758637860209573784440547057230575264968662740178519759949136552446204094567601238698181418271933604227208960376896160459369505924331142512567422273558694842460133978415763070135970259543171252438312464106523366058091347273755473061782494752513105004312389499303936329277709167876230649592706549735526095107632672181479481923419714943923690321082190502878305350473644426854732934846387302266813627130443771639679269983532029481647715110289210361211979877680499182857165197394301242487865363994334756316253466063901105292599027446875092371551798017473251285975444368665617859495589206657391332991618927495400282808924610057741141807957202338259282063174395704713319943844615902116240599475500802913284332159395708872654475171612238078069203459195889587779687656606877544892750136470816337103050938495304742268166126392504979427994368221126225797696010432335972746733142362498821496990587152851424361229536697695370028282556722625828301596888013047349597996025855986431756963097024432825185787218045901143334841694922964385222271720442585046156174186640042976294020161238757935911039523781938321229715147643741769861412940660669099935353059253337308426672003140256072714375454763250261903025820578860728443469016783307088036427534642977902247397441929086210019115299835691528090428807894632390091686661829057963653613316973451561783691081360035386718402111334397458906654219713900666989682574608117596716087618124660818647115582675994976008934817201276523772408126836170658628807408459324276177735785400347467819419847071587564966470352419731717034667608492564019040115554652768962533701813352965132588539965675986798616761938860659146882272880462547103602366476602986854955465714676624573092992235031491250353128172691093832980647243574413571152225322703204311856698345604107779089813935612914874342712497136237306273141412493908960904251098230540624640824696204515635870409366496258821223604142238820983256334237862081510073282588471069201326860843225466649644228580666832053244358830351222837395126321509931450452330052117989723521603221064472774101902149734503485262349215283442058768800175122691806693113013511317643847526267506503235547926442646717802212967622411149526632963613819499868711596201483374976101446010324637589216356483804865135545843829852629411476210549558111308840160185157013622374488269684540423288007808079200187226700241189934683213307990127974475283288811906844365176157942267872804758720907736613839890109932443747705268584069541341250153062190906407492611251511835329064561647494404414077918815296031963771380728472330932301322514350388358520774481344809787260246030858806315732370234884277397004147488465882535371257699630911379592641860057560256422817711602393842807989953095337534642586975033186924445761178417226645700371674080624436654045934577696612636084087761350315390796698047864073792223760133589527711133935873947220026847982584172482013857309718238823464118729781903672197130404652440372550000586065515350329913073440527435147174506850317329885761042254513292733575071888636193176297862747673258473485769998138089881749819465494351077146747080791740993661648061790456280482786079888564544802423387753807858233582107382904130213784596797358245641742356967854308869970995792938822558496840857510033605755330867094712084747770938423858294669960576718620544144045750483627352008514341666364483738756900715320873748113244514028422848849502761906490028789527952162391075476635468598364360347047893350226943714330165252364588728223547364157504188054759700242433850348705351763875227133544270437795476718358216678185217223386523889503839108326840793908382390210439254225234593316021131166812952342003647719638224635622074247469866359802943514070670752495932943043986009456688444103702539988672574652922568661491982255820432182368408849639394269575117468540698100094157329664728180835095580651355741551081932813616128562874682521542804972285609122391913328404230323752079607606176184201082732422610364378427940335699885041000633197719789211065932446000101189623334435253181655441451491025361904482747185346324239269778510386676932358485687298573184906017999158438986318988416150867645126600044071807081241117465521567120361978194014696785209903858265394085576021331347892077105267913333377179166710288750510296246554250094860261175051301373358703519696944818064154280407473763274159676768713289170503220877201403675857433651929109967206191288100605742442636973192937771702163002156127160275447974870529716058531583341670964033237589724860916892158165253383818903989197040091990047400568876609642251438233003424395458049849792948880446380749294942501548924485852099570798193896358147546480400135849848225156679209909758080630993452594059589586428540797843753150616807934493969565037340622595894165427200649490936926867537391227467676093895639259730574427834314804860559765507410759456439296588463247566301753919426569884558209249469165152447273330586747556330404198964023332315186540386539841269090066997411636015797999394564780440935040079603013771166929711389455208814538675034751184101801207777251562816951005991515578758050525526520262221367634009667476567040977955081366395607425304864879810895863112868192677428574550193854706229468022066661549252492381719332986065310435179000711996033891007334455909890660683570681465267793230914508931386542755100834897884162130980575598173526833999327440017488540078096374317814212352828629885821580716150610521172711590484498199669092104971035550021500920112256044182602879340735187208338573312805646142691543086213109745119483536595171381921045458245183948095741583904085305455670433031315601251604444880776818954317276050268979423431028233206685317919649078194717675355561739461247456909711166848159618281743056121971699512035130507185397598312062895957858398348637983184473728751250520648629790844824736129054133022173508611024049266275433635709772755968136212187048780359152928383639877483770207080625011086578607995458540632005284547067247084551501285775153441713314565858836878163610773930809540160242475152557067999665966524412548717871054525772472702610598998297173183889876999680293030835594802171668179317432321446613506938655726821928714899379779615100152217346144338326884152699940754154911899500123377293973649273078490052286200167392323365268749402872308801715286855043490681195161277993159815972160322790762937094431876352813789228470312137719041307926098852897375273740080473510523699928903164903050343023460677353753762257238739216654767104614703731343282252431047684472250480298292785913027521541105015128834858113026953143675160842637953288772118004602126425360210060557019296922990491093326097759345535941090327215639086105209825219643265292341859379279650250936647718838035339737345327254179066502920110861530340431150465253074073809217756464540664010512630566674383507878965527486344306480142570185886992607710260128264702750403955881112242745945164278960904868124730155866140383478176903346171049557209566433222022375012456149557435689213530946548236254478499696141768980550862470333444428715730067185374034797489291476586814463590018464535690032396290013800590345980524847607943617798042166713147188156856623347126528342875325865648542374205203804900760443760651557400896647175126773204808134100102861068358518082508719506247155321991581425945657192934397159055186451933901030295649090047614389722165455230554366108099037954795678157734939220972105432714836063046465775967394140649682056283278718782473688445936355872450931019698514322750335798576704956985575942543269996424560306935457403765871078669113639162567828856351423572032569565487731598638703175739526664636484025486581922930134693579836228237577663766865929911129782005793960232661798458815185180737137545659592371665582336701370797069448500877855982382257400054795823372115453219950130461490783551219668049279440873768421277670728168902348419786793715559384156688392322076587860774943762759404768625865095634276808146335658936355581036482516632568246070813049673727086491999943055654044744578070380881652675635212017126649472013851228263825671976378935936385499993556589735253961151502618981346323752303293630668301767272601696742707045148870513143168285693890516577210833488047486649545793646230615099029290655780791380856143997499328130413273004459430632885797505082101475169060330510218582954657815252687587287579703407501698311074100658349202078955697710269079577787364939941762751449942360425780110527413724198382006360741500069703282212753244386628008158136259629658384330560156952852519143615732862431494451176922563034371915138780249839739407951017619820000205316971519158841598085370111529677447764283670606860680018478475164551733217337187719758004357786480131883457574561967343087706411092205183523751628822511699397428088755407482081007935828206757744934676084234778745803314279945759049151059240938991104263868037360767548069267723605787061377300104457617264742915226434034938794238505685013047436288710963355896316877004988280608613511516658264621568435564050404294289987534118992368193063048269051832045292883672123195738926699381064967280674201634087930681037485198224914117874448958534876163575137424634108223473051768402345146466739187981957137108576677368164911217120224044189325907090782393677744129403491297346646635622640509215083077463754881245802375108826098041334001864749884358115517720020720596006160520796755607946078366273051418794355260395869245126551391624208150225922406766990428169898620856389737677129267462537380234999208931820840727964369756899502517787838328704980371299197711844204721232134318129508406449554922571015470691052240624327102980481460345553421413879458623479296166215800939707205033939714779547548645538573130553722082895841244047800648269410266625527281558221760557272405818297750441697153113037645234786895079040846397734448530710351748603517258281280268330900126905499034766242413005773108256507962882096396228780880299832096481759364080620315652849919967916057569163414779738640535824557567924577647373555288469182205666857105185144538058159583355648104340871203018910804505331607612512375195296692648615895203089848090181855113305410742589719739685604143837915919308928030188993229542255775096904199255600803476479127500457548948596673283521295462936310629972168486291105537936110498718780771056191448455204844134561169808522470271350834808360959535541279711569018616044582570174270959081100007035358281666581737666779629640216419616089317036180580020711311955520420597991003169919833673033547171808981172261312183464548479977171731632208225588082883195810678372756455633617888407509172633749634679730400707822792764441194137357954668615130178259295037010101346842032739005151480484793853682448074451060315299885199276806892976968096938831807057626254651094520589662979469878029385328661979179849909842453756330394479938213329187862346373415588677429397150443093069685766984077338126383762326302147494939740795625018444741407710076925927593191898565869259243136296232360500881353905424645464958943450097495291242629126944013632585902605646326184984856350955385021389940100880669481934770558678916846297200690781180364104815448567601485948599148255135051943470965414059334993811031510913758791271732035912178564918606839795816962453583548046783615010595854415282797191261222884238106562944552419163878450415987474532274323921987688208051843452694413272641401281831991231350732065272765865653782025886446865175450233541740864338558798574192404117781853020751043990047920855037601659557170372113230692041020618667055901915135417883472421414878628676558765446970509903727246702487018442925949843424110329367813300362579230840550810232799165694419299008312271089392686442755324426599200022634752341965523843775810571851647865544635053483939358851144247813832648767839342992823118016576546543047027047644891850193572678123405231107910049125204831984879032576866640658420151397103434138221280458263708650704296146254546551253736239129284662785429325704772105197769094135085697782435434758450344644854670447036016539153347464984767841808003848598060981775273955377019939078605665214315299752317610079757571046717240626877990854123055358331622477018405382267880478043218994416029006451776429984945155696924807212026831760747561617462235329905442791159000212516878090133147614150587905959354338225752802781397814347047311683130912600971105844002522133073248282549427803465230282156970785104991770347026206484629363106274115401441609195358510304795527160766186416345319514492699871997017805378246151439507383203953834071430498168329476713299370221469013583725307586304439918020464195062201782853988400551391130331696348644901270848049464885184263002913609267134524441708282578073068672140773994797986884529252214980068783396560544547927066505697462453320370856767730210220162201420648762672568966904249203944254164286483365785598477834167381659415074203921535492104035414186915221049507495511700448260539687775625715989369739823699076262718261148339863651263376748703878230570102668997351149350751195279407118851896945607581074380864702590236949794171752507552782924083624607416600562526020069535648797372344672120530229759558627748254666141897071484187015373387664891220991360638659284413442198227088822462442368848673885407616150443422206897516840994056852956081934026270467292694232982329963347824110781658943604411948464958913085742679861564460249901938617533257473113019101044617839634333120717008925480168647659330572312160050120938833376100533092636218874444336411915820383474491429734557179020702876974965450023081606094757871627625569427990969208565934886658775749254531677606412641689299151456655283173122849912683300760397372365014055041750064242949896234289593472701408325848301483786635890804243354087195633436906107131450972804202336045156078022338523321041616675818964568101785487067896630989141834818895870896178957149688015500151424353258322522835716765171255159348464235963274073785615584719493460574708756589517372803720797545302621718062048946233120147550312868686945762614831137184007181795596239926966092166773897305095295734766443806799386966651255944060903451243500951819635198977475612533823444817362851793499438840554410080265285327287574693612027328237477330324192713019154498192373947234751130875493538448436610211457038492335321217108827498620289881418547167431629292769373717714230148573899843127440364599724151138851787117926201443556346666524439628958577941379316270258961594515757103892145321368565394684113444224747092452889484705277156867823704750113377326152597344974291856238017415697701421130753103538504216366331820423928567758357835572421299801535484696464107977200625475759329681646707032776787879717701233452284709377368274019335685839062819852412430637700212977174693769175838730796422886950470767944720495961525583623149549605442772349427516775471240174075140562453074256995462857398145544045880447099251703359372427374331381584046118411711728520310486265303748910077705014810712885583871665536476219098930989677057416395061493191742992264181073903711283762380646312613052266863188754795516252814862792011845333966977197646150910123792944014361937790630509868785319041112121824032702435111491632299846745836756896225809611393082929727839746687487341619297530390923360830153353659556586245002574364435417466087281820740553306152078106578286420560464367109482891598647994664264337085532913451381305758159351584926164834512219395078762051085783857999066973806131927202098214896002815107336313610133017439622695403895323669899643099657051225543820179416129846379248770652219973892185244571588142244052267252119484526569842988720286664314546203784092208106178471135929676517131581493693706492090042088010630802141012466707738553963163698394784082042863578881491562786778839711881578857676453338691604499777944572360253838934707195662982267278278562886330951971756435006494633848512319105011846260657717489977506350059769609625522796251919665261928583658925851088994828971435141135122846672250212799963438802436619252563570625769224471170327480383519939745033414733186407813531184068865775017838933797208066752805249277306443958678945182488736943918466238805793823568714055461106611634079759209666219577622348037912685838507536056197517481300346190992837242129932390982875341956970063503124576772267000958383140358668150733674040052047792845146630224350543210790771395628466437638806455347436794314972867697333191074608548919923321730754955874297568421266515390238421699056749634433945799452411047886010467810038872941500943904677157889092955537238179209108515983140351470039697026627105419418602598432683587370359524784068026427380511777427635425413733312537026624332445750538568049940603672564770937828874920988656219658020163682051901932029441068582048646247612767982463301638254404503295962786925902268304014248901723406434390108405543481290155536344914165264455241947071270797836336264227813123536690465733131814303618207227302723148309734535111506636528914118812842845509417076734728732738974865888558228825222485303917506097966567720179127755348656152198246219291722721541414266949729461096138854289354110174756133696048018646329143225691596653489235904698643617679525497333210346795224827830253237871009556170123955132169100013509290516075774216285119505361295203313299296359912543949099009161459131689321971096036457723530673835748477654863957213921238872974260808879992078453652638179339695102906087041502650629586669246343171170790466011100672964683429969935890236276285958205050998369423667340088447423630182132815799758310452069896078672888241962434450742044007332144237143867030964882642437987114531765498578093110234848225423715895194610581807270064502696785356125322872913434049094404814638572532661912710677252110821792291156996824348752393841338887525480573169416362361134621579737973321600425175276261914107188992819040231352214109211805041079543501082457744869543916445067253614305443122273093998036715046451057241848779385312971303719108562924539930082349523998356359804487485024495487015977833571253546200975338984506637909532266223802013961164314882391279863205494689148440497375552915038806399212754085505814078474147609889009997596524316016048547856532823875920191125502392717881310673467006811650623796717951848593260705542238540171718120628084920177418157867658095344734239061893973450824059912077232977505703786151163703093279734613969169406772910476600971276619424149742722019951286206384781914913337995578344923646484789128561597432206097176874137881344939664617721618692744524844711778923076809418132179080036357181474325612976263905721856815678922488978841094131137019518255917309455246230263141474041973220996201459824626806819455403459328974492107912002448819655296395936403670969115664724960626374869505890571903749377640517477315150459999512154158909762219232596030611915794832957228539617886097409156192702744718788387797753251749654017317394555742783694541676901541474716161071070881018473261328605564810753329719086375194898311244973565705016183178795514775590205787242109624977843415646571584360059880091232237367671906061117615344437330213404170557847939670860456057976326517194307114195572422957126365811887563200046941268270051271461241336354865539149754612066542304860994873003820592638071476586052075240464216855636091719313145258930434387829105975040770480779672642070238204608373477853022457002343796062717289616707704306321815872472853477039228523993940640846130993766613313831199766981925947065446394336165990051549025617393468678059547493867305385417939592101577886241067397402415593132618663495649657683343487380999350518850615619102894463754268884099992746071853097435359131237762437633370938187494823552092460637846873093300921780509898703663904290782276685703663083761736209743885977755253415606846753522941343324828510051945884756367087623349656171421058479546469760348514193267702007046927797020338294004208406355239420873918763034849438162561839831309650395731506758957954254731174640995081570757380871067983815754453415729193587550452618610494945902526075242604767278388677948073105182411978703101224925496544344824803462835039572994515727221818531127667644355291887942049693621011968394669193142426844789444302007670263292173022514756616823317349852035014701036340666422911490551016439940723630846948566522087034149355189437306100916094944252299137794570887685562299010976506289813540601444577508051998671987752131215562357095007251138719662826445277415140123096516637282857230662534538139355037792849058310399070121552504224048733172353220787614815553140704789719144562541890765042310688875796322921583261943810808285113166347158300127467712170405933226441287481548082670815891430161663925344495933854042294689397840956161068077394379408490747182032724007937979124300034955745739559833783479378123721887886763209606568028694951873426104426707084569363059722227150763668378481305928524401359970483740940250452844686552724917413984923053274785437255240337781511718230543066819467508345051953245540930760628112748854494891085389631663855498650700711205101689118904872483293822391749093256500162885417867313079306492896651835835806721097196340507340059326117257365762924595384421629526381439760637406051715306908593136064522349835996605528009545515189175805098120262030342201603213003804221920908140578934439742628604631617754644278770604849111190188481326938661445174811024285649528080534402812874837325681662004580657550492997130634244338266948067285969606270790464916939228881352815698742253112358043005686493660932710822197491309773089847553926521363098177930589168222872296682745464729877617936214013130575099356574489140849022577234819094731661082577406072139262201531295490835168289963054308394899916102044485752815217829505104814905017324346208883608629308078870715171632225280409772782579240669491723685191897862752419493809176774953392147295647013963669270374819967577592180452222678655516797376563545347244430137842788386175817394329613834050676996084383378867890845763764574012035389350462563383071306153885730277800095507750706365301890362821211493873555933086203434923190076495033329142798286954306211893876195629577795183738175824482279670762766934639694132864302270573615654645494353861235255088695898277517576408939799008675121815584168183894820534619798168620888480738387429874132091294941763811255246898671330134698089335186369506028120328297044358807045373076005295197163428709249315078172402189639741027891532560584266637861151227620740764330820772403676083448693769477745943798780298035432070946499259800457515209053676349192748337386339340350905609542083901679936680377605810229291791506316215044919815355227923533204847580901817572240966427138917475364366095269840487024390395187702849778829218701908525315367770577024625575313665126218437450833145458939502125763333238052113566297579937592603319101205135370943227798360833783742734785052860080014090725161024721135639427527384434348430867099048264902500516983216795796815643773205730434894066591219559075239758052727166845824474688472156583574064097110390449148914662316623043156054746797055355758924901616417165383629279872248022876043456977351503898655441495480350042714339474493726365351018537392609690705520045001339506028132222667594822898416809291154278432909642422358296729490130803944166069930706502700080987504803442747806314028286678850232406383462056237185908745494414751078792252062020485426386396388523539343439603045192164077549703244520696398964530313791717523703243220532548765410654933943383570548128986746475006846370061862805082869249420118499409303944590295207030021131915796204149010945667150539947948079913404871089757830430073759549718475410514903573466550525472822247142608746166734203616449021809461203876003665373772962869055756864513253110769205519722839371974192429008171197203672953469515178590280729158885656797399749501683274934013146621418920623018493171055943033130434476408730552992790118443644306038810692303026219969186461924596865230285098302942494724278688647026093048552040299396128108372525027385454721878837460128938330261245938076629090239001512246979633940862766906926806806446188844510077308850190983452057005216143518404556415731543924105789369431550383235525589182031076115287231885107200776747185275643858324044128879845913944146864830311956637071463037999077354608781460936692700041694232128703918138711991283266040741990204727995093264662023656466982419199476741340355418533038640822060072877900699751931215872172651009310990142952635109650071129922584501844233251415463608109810643398468128124874146168452202699778915268740076997926508036352864173331445347978640482093276910115197539307078640534062568607158200399193265799273731655154229869908706992195492443217562388922579125086913671852983026971831024048174793920666925750246751939092583020280992051846686508271893257394909116486429074769703726358807892858733358735438634716540536840672202164790570149395517535808688202588395192038920839072313420128007063295948917245808902690672277888847418739284937869698909723103620758639347692091701563587877037377604287647931041906598624415701235629848485318842731088412414410294676656924404371635093682930769845875591125727192003376512242286519777388966257085625032152278784204945410824864535070048442406212595059297613911405207519545566943569438103404837888047524224403196711612947105622966181481984667455590599925954449173834005231987351741458981388901134038637660217625706289449086015404927113700425580730329241952826999265961533901608503731132711929021463581349138170034298625437195573671452537599851428171272850961745857773698721125576365467154931237401624879141010145280825690430214101515366324529451925566522976768216102739762503647203834520624120345438096784426252319842024348480287421586280762707535631203857028197977975774319241322485314382805382000044737679394755631983005863794847774213794764258402822924921855978856967012929203717582385804641300090848297960826752624224482058957799069443062546666969365221437735368373950248093309730559048038064687681950392535340584531171193015310029846711316796184797402162123471486909911091924277877040829453864924089552714287773258479295269364065737592437104860883183938391951187845341812456628635509059500579796270964933051770670622125200707606506918209842942406028340562718622308672776164179745576424520193759169766611755416253324435778877083485025158829527349554480724926140793249448551146099182720265264612782108326910224928311417754762949448896912133236475363552441840422673266944409502919934584487911399347719199137417543478141460407155414744470322754843967212354648402257059692959232986048141112984597434954691615661230031944686768278406142238812278111998657515597886570957463778661338399034220817434499576719176242091935513534625578206605804989625127764256099153013838322238331648432872193637720960233580738434272960161324392164322258425972487775720720758361505467851273072628848492137002203852943467161767015393612520796426106189674583137580142508719503941792410860310390193711045785001643089086374490115520201371490660564052694884609132694946572869431385402478979763700431688809768116183032743527109791814065758276966921385173311104228799432103838917156580868351697684195053378477506771291994858947271996253037170404624982267654852101630172186697891522132920532520827275391239522209925272565934550802263187489211219747575530087691336568076931253310245941371418040814825959272581656331024630189202846086508034814338354594741344059580010091669675998134515621970377603823379635802027145936024225247007473954811692124673941701149939660579602013796387850824477136395115356471296493407310231274914672931130362137645245398563573531000216966495741993507091417646301735216788110323061476148439523813517830503867924941601213882819352677229947333768553771237367542280314269011036829725619605223159348391791815448570595993834043131537801692517366508106911117358431653501143328802683794785521763269091085229309972992820712079017660626674956857510588153634520574203928446924940028507043555555498566098686069835869609316553568490243236956598210135746713907371696230721657220175317181713879918495091063006608119415586423700374233617545470356665613583386867627813160787619308891357381428572496519815958561207914094991647278058159301312592049184222039629125576126522860170121494112998306765868928081210700275221217660747094758586693876195712711424727066515428800602118949473409582442253228456882950006163498417995859814322846408413904799382628412215583459128701367600654515147165063629344136949091870115211004096854962865896584253253214642743181422025386063125324756543312865205712560273270243222001648538680711208984919448806728519550594909333866310479366608915782066230255204855930546975034101376374510898984144084492905666930724268798762036618828671196493450036439123736258708086670797961638551398907702838244563520528281603547246330103325015882755116400482535976758232471589783601205756456767139754192055572829422586606129417377515518461591568116481798644233590107829508170579422126915390669878446427068739991179844322868337098012332353246977978406013540080387998041744208078819078752236228818769090825353552045439829243571758534136197847925758683614993844088456749039455299491214335379775265995109402746582290387451200380825291259250730158798422985975330128284094499017337620411406691772149919653371826776229401908432648896995065378808236421859311911732224420424218900900162001557103072853197349640112313572637581593836084409663947689518094482868072988294818290272619014352294221422768852154070495449345732771646903479825529184009540756533221024348328442226204164732686626944268770282216149233924221087968914470802390806227714397674616613716203182736628041101724042666902125859865936109124615769248874717605439671253055804668525899073304230172674837991433033049357671778906327691451074031675803886598704450150161180093934409401006284913110002018890379911524154924289381091813679075225371530945942460963542680070059541152462685375744105193566157755522531198423093259384751740340553771442029946669409045192948989696100965529168464038463345311962744987574502040879186775688388577221346701099059552698476055892976987449903287832036172684009027745927941340382242382414507399003914669275072020358644129800460893554294949345041709081178181561347805277467328944012467490127790304334311861411685274914531964888376516644748377098992376335558076096353282213217802673366351811093819730817237929726436207494857882576545672866928058349194868955207247644354380357387477586871224982797317384459701880716367960993111916873281903137504225338863976493247675580749177894243856981357323857677420201949695848984454621302562411554198933014347819149851163331694382053347973815129409734166863788255573113812163143508571045479153190434796115868843798402276751694508147378186232528573267087032211396327438129631241322038173686928039606266607536712770532171027876345151362493496789024631585014034191697408291662149559326844386595474435138532063215204641916657082478916227126395754964010286829201634667758889630923856555858292265765970824111279244356420896590068513304591406783705782955839662981598240033691274550393964224283210906639032345757068364129313633809217050951182180341508334483980397158121089892298632421139330682210993729648498426388839918580887667780139479417776776214638866800601785100316187838237322782873208622986270431412734634717585780762892900616673595409734138627456213151918664912502143619217181023029759454143231482854572160599399988412722955704460154774034201584294431746046268690115655239530197813382246148629200418453095230473565567204602888647273026938583092847656794316920687428828721843708115730484295514531577324916873027573738947878219786200685132427500505814213701112499407959898153156983084282397150329626514387237707959391190698900682708120576233700786167893323607838203730708136793845447988684479933432714122535343232018773923932290793586804164955524890618939346346096968617181893271053199158905203496988196686060500600126004953247305536343779160660595203046153053560880134431661724496215888412248836578532654758308988758919683466144449705268061264968535258890938586920802992969373148413893483327434134018843694004280755859100189733339942779605167743011475365665350410697269759107297305259900689764090225917539304462406887849802178039458931862619708840211489167913253141051402261543381430755902365586466065214334974809058552434436143709879609489096649470289036073123642485490835887130365202296859050757960855449681349229819360403006266984970721027466479939397012672150689098916915866666547579419613021437832622330522755697878371369717947880606331128796512467643668797729782937635909011521938639000258754933327399917790430395508723504609118112817114673683822361475605011808192731194655154550524632469750960256684640694114486133498750277614079458217915502220937923971076434748974078993652630327147515745948273942043806416440923859269156867840375103659915406691997758095822125003920210536736692396329297810899998544704273469421639872639666102017616462559804476483347726194102021945335836694495410284348511241635076129493425846805465614226821597016803383821856632982883743794183171737600794198215238499596220892266816608929615491287649005891111793666953083665036433019532332363566009725839119531918485651011775216938352971199485615213601355954736992285404899599351734494154942324764407034278128908369408203335997974276185562678982779002170408662509213153621950173926768400770307667729690581043889456665020626475675041182258172750619882713472818201555568864873814701688589260394908365463817368360629810764346247107228665104359112603999192939968315699760637506044710530179806439803887180838669258519853541469766800739008255245286359059495220750338708610599165350101688993581000989973584642104691130466218017982111972882642963186948570752387652202542791425626786409717140831761047042428014824069582598029345734569174272601119775533459731805632866262579130482360791896400628469035540973289808529449048638189427236092501134396318873432429355660696707460308787044759188049664589726932450677733219750147056537914647726028362383397336249916173954106613813243637275024985546249751799667790647860707345872158617980814083624235029109891768531566853382226742922242977453234890404318817031976222972889033438839163113307209438413016231413871801836664619447776872563358621866867011438305134495936478167279636438088912150725141010147563677834492442592413922465464714653068801272548653030110290150875828143834313444021228326068160854907682736887375207147539832077533098947178468704741756573660596979243147099209446935187917268822488944929298545149722354219951020058392443687111657973882899754926351133568418413180433944778213167768067097545355171638286461499830073126459262553133767193936460087387208878355270059910251548927376721493095172495591058667775555627396946101770201589266182212359695717067203107240075988737533673217953094494461909852660938953748055293539551358521866355327970584117263555904357061181643256970731791912377193180901741834426500872072324989810323402147175405861439409097327467024660121478958815248039728518802319902659895765224438196092605186329203949993183011028125354713844030604219248851038075303420856917321775413530178384876068610027248052464484292893766297155517740760281559372628007212240028029635867309113943533623092604900701725645786495191282267442248740568303008337968099141392431975588730165340764631308436332153440110663153805566769482283664237026481712739244822837991043386920496748246185169640635447830071116409768189191403536658807761829302349606759052811181809083410191502996236520021934911902243417650330706736160063022059928543492517591639654442408415318190948581118817542731720721176418644467277756259702996224510842239575624653205321535299029272086115835242178939176040494543120736055994666410635967325802073530826702741322067275895471096698273409384573677783504898087399079431143073494639828095293341039214160684709174548772828976300311817661914303456885540464477415454933046341379624293896918134108476662526293085015583513256274631976977179855143141404282677571952889212795519998879986412197127918305201942799915769907423491804683051426972256756732436995109656789519043315594345479377085125428537348641334377878831129485129488451197003622552454170395198274684913061769580700090867307658910330873131109047658584916030442977529977262426317569549113054168048770058614921777161769667885251062440081301803450527145465555864241267014280614828307698921782426542735997628542697454722968798526246389133020309775656963527945014516820719182611311786173186746946812747729570981348554970621703927629723120487411301605982922990945741980431500562824216182771393199091424791438859115522465603137788757482345842777933645865081791005596479453463254848831902251471855270133123746013289867677543676424509146953756653691903005217835166906308325046848814723379126394604246728659735282852637791253155200290816158011418403874626203311655902032131016827497574108119034197289977635841926654523766949445782777650026237260106493821514334706842368388675158950614514163709627944017944007069660307618339459094929067207354469500708423386931735400404871742100374814889687861290315108784372869505937671823378479936567504698423624385532315359351078966960604920020984429414529812905136009696262772212555628944895983191661049942587932027866139746394111368434748028863226478486860784501759527464688656514928911916333032692035427263207907131902285757598031337735661635589904442680657840847808331284762337053799918194663012965954443421365744419818773920720704879937288751918854882101855170813608312878946854083408325294897244528802407306613332446544331123567170688684916858776306285694264556954174264633151951399110539905384563067523945860302847117255505080102296300538682642149714683603387620638757409942090296045441521999741015562841027360764254908267392929065628470107457344978553037634103571332686345959339609404406495052127179955869547482067929420286780879264986143019875871433724215567947606180500715815773501147217315077892781124899266293700271614108492694366962628542202717343815671567520248938355130762840623991971600701885990930752973800879293832862903828463665888300643770592670532544921228386869922946693904725477054034056444675300870231673908147031969980784113111106456671656702430342602559589174167826907615209469787669840767870036599212871799614351960442105739877263571574436263506513596147813183469532124809096508076091177026863071019676856391033070992302656007810664718212843726207643404628876647387278595689172744790361008968248176707450291651378596887403215072871076206218002203979177675082497302794107295195697436056050939467139525310313415343201578555290824259834294604173165342895482770786021503678140613033483859931040029881591556152562730112181130068063978705661190776549613809773249414957336759958035158570943965060074905486347264137869966763774904372093958642383250593828347955687382868815182630841733796610549174129264152513147818907091761605092718535757226942495553012608603320876607932976518519873989393288477044808600050897874702307115123285665044315941789336653057645413535648722777177510969561801401596535230034800130969401857016587749811723647684166417307796969909090881906560142012670421974422182446999201583142378630274600633519474257721791906589426938978001059869710950349373090642673187260366186748763901177944569375518106610370929569744707182905437539303854044319657346428628668808912962475871426644754566246785295693415083170767103886101665347323602149589517126893003250622827275320806992516873726466160655374133020184159812841593140465978732313282827138799039145070608595200738284243797035704050534859292078269568742274676712479094379899008359020080908741225195392123194928138449521233037512201048427795447453308841356036969472588055979443868625153488788041350320873884225849611619195541596739674936772652318360507380056939387741181755682685860870622070191189721250734428385042540120851569622338600226054405918495233625840153376109436354883053285169118769898353561049784918060169377944853924044292827991336882179020592604338985413603551978057859474421567985891208232975110215277633989533444034392720671628441931955529283393928106059089510876685997819592243729382191936940872891557091843475867955202610807224200944678167920115118351501781010726766993365710318167801631172457519438816478517668363998345615325457428188587241005006554045812262029469133699191744711178657684700245427220439840850419136573513218707194028164941749632069313059671620691324893041013561361968018784344621979122315379909034818033245881167432913588223395999861664782083760902546676864690039731449189846971950741393462950019067869436872432123318306938681589855183083572570548069020409429464581890865573508610846441144319965928211305020547350689266282118953065163552871588170825057358840737969814876262011026130669299970989140812010924893222198732337549175481644114310880700675342357465275329529786314862409330455458794882278018604983793991641583471000207897545519097526737148992827028320607058363544232494060433272676237669602999011126846253321937186727047696516856507748812416308717785917913957739554677844784258003986330778388038077417506204712832370226180823471685126172560110893409158985448802413883236745913842235345803656352888893947072964027940549685890881073516204778069860013759200407507123771148987487829806143155685991795327887761801601381782730632588045879406788456094244156082446873096982996893093539174152039537952042684424272525084869003696194772184834210132675387240492570027560708380234313596343807965368502957484261240302788289341010416433351315095316424795044259065799240488602915419410927391377678239476544711506805939842824846531324775383155230386513432875572300727599127625513589148369085504186280998355983527938692141466528047383778159673355390408335703533354106710922491296981764640834055926839954249021286086863838535170939823419474657356086251452437018292606613354133502803369929321238926011122914827904179763823439110060693315483774653816529703199111944390874516226895967351635997967999613093729720060852800793555818253661962196772092922849756807657068453016397266540405915937546827885733273078251225977998484991310468188345513704301291458502667770582436227764687326030462426526214348802804916741625474255131316822286665699289446638965771359483884997696202692712363743754770909080069778943352654665612684292142877208294111626750741423067137943459148527232146840637996980121208941306791886456038395064218808495546333072221424660095116363774647707168581570386573082882738495886589483326356969614905111768625118141645222316377151234663207142687993034406784787129334444157099632601627356031804524890525258150342625912729262970195270226459919709023478153080754417158964304692267981599124426480573188728362024709268041628510558138112112029804247762165993255062654048053088176134504422012864252565225900217459385624703058888115576062675470807452079921361886474198792892612358436024399543744827335320269900692496453289418850911088889154881447638172079372239891926450595712638981258053394242487344047974950899208281969854278674611026978501224884100349927644094626473056874841907063143444303985025589225091087876448449962781406967989110047661291324499571492711077498588389494807289530074773784304158271900779241264334251460130397662705293030765332097467961295403685492636671253645569999964104537578050827188748442652637336090532191393362893739477084546410357483088092436240982901217075744653091373688454911303465210028440145519681003208488360696649342119158071806417657447677615219056901227281018803925940128439619810432148027128092355592310626716145669770864367554850423845312290120821891910933455269596482389828381788219678398314944408499831037797782965424308373275231099028272238137192239761018854189189816427042666128261795680817546002602980748981190702241364861904766304846674961533305304957397553891197674315924417588758419184099335529846682847687410088153629727763224224321571465855350817025541920767726047400768623399407391928653596818330215549075754479880030601036802856380648780582042730925528689603641714824696473679136226242615055444627810118937221191753375049226922581404409715460646067843998152995998229333768419978277993130302826251139769679259266412177945758356211570504789574465506243448211789710417376482637831937035159385621978303393232124060990109754930170078061651777302704764104326301791454941734628963547829457612526699836826659502541584873966318342261201447907154676328563020382705863789377233973151274451145803316917494750607536531656000185612157870549575341655092649690703637988198850241637341980299086182592148345727321808741443526584405787266037519083519049121632832618537842641591183457133426700736431563607573772506401381993840822912837364439503210985810853018183980524183971901932260284055708004366095031092112647918734085283032752219194743647626137402521177227870804897120316010210451309360817293499325242112627522312040113752399544150134181731007509095108056136757333203393486504397558103357876648022323135317864046702477813500006464889613256494318566190785018425352201114823574480440764758919218597728231023758356583985695033856209951130846559639999249659226551288312296340544465395140113178269520771855724027471038322220526995856484063001361486149232517716396446646908839755198908663732143289857237053964835084077148079573564962952554606477463489734693726768905435263798031068543742536198336392768243598894101391954598977540047479676939838160014117192327046016119327019442879597682535188222902448647678057964894473480934432003507859309348993243716574260230139401508617987030653586765858639981453590549774467854214099580743964177959712232083515441928979343628527307414980757302208912112193680584866647757997490166397970274722214075218288829271361143905471500040440139905982232140972846522906844160606777839927549764075513832940819162306573179545635341424066221262955323724474838931050057787868035719617852910120644259595580756866285829410901547340817322712802000998830453615766673147869777890684367743642472106935732485756397195423770638844844523077252696791850388530322952637275797069256322822579763339950034300990762456703915991475516525793810681561702285550217269906530626728899996928516243486455259076154225790082011027907461036014407625752244195437182534618165194902114192237057412347394230052030533302114335033801241507792599790108202046916547126017281116146321502753020233847457299847853650290173432199504903140814100663823782371644069229668337436908209705786574973098222464947350239987690635050050177237490052985064368920464227088204257138097925438682917375859106220817666761657388121366999375931522432688061082229012827795045777725889377976662511658606217675105682804930009821146413432084268531138483390351153174418166115446258876235689930057229343372815093247112881739804271130591139668613319815432093391814009054648533026895142811529619351492181827893998758701300101065854128730994250461335734327066612933896588294046537710493448328674094736120740005083402537588761452346848017589445293522894230367256823446228594516775949599523824419448407584159553727691675442417338649837531917924135095027126631693847936441651542498382981141667525449010180741685314001669543397556265435379757676249804177163708422148769893060264056805509105019775485488566217825054752250744149842910597094677370295919463161209584535644683797147344717366248842436200429545184281691816354966393224769261306377547193410254889753576942903581658558675740126116740902489564960625892022504958154383539254581594296619668759491510219074683412197232874756479325922844597966173059154344122277820213679728047327797839526785885767053337570734371750932259138160796098006487117407552617163740513442844390770603053396856037942360317707227334065673244600375146207609723968024911379995967290770978499655655826135974223190017566782666998778040137138399399934851848024697772111324105297484441057775303403028926245341575393908529448028989195729340586509162044825524298906291848196009097948455042803311308335210874566263641218070480342290411508476969950156501392245497411532314708915854495570080514099691639865732959703713863868318626680770883188110621682787253604367609119437289955345924675356414011035916206359444427907825065109278640054710540820951531537863669175683794290512085974556095450686994217761755018713367329521485300967473144458812612758854134475251451214676820461105986886604021101898491528298932046237075587441426558265248297575287337588895714333625426178815643788882700862611683434368744796884525159174594336685529399399756600948932422464150948998724698641352227980747348328044417445004501037939301235047999517105250086026142718769949499793628048010260836223413094475613741999880858124306457420154439126443218579077510296428489726390382110308216854944704997554082069591887067474859436556701269954532554903374632907857749170713269702497647212887336739103207630217723071415940919181094085818273401163345413311086007507618738533592068094051211993754252943921907615235420997344227273984473479711572675917247002075733319865045473784951715657478062871754715075509757867090394291598515954751591724880990877717164249739198478294233248751207213746227481515126047830412983737599804270350682176061946853440689787922990712264458156786723788575434425650277138109406151285105009000460125396743017273022647828951414311938395059094773044361535696345378985882972668784627123755560740172446295080019686389988279999447844772953970551721611400593410467656357942672594905663860424523157772393556793024911968248440308425917206689843489965153636512457465481325014851732871802371296669883207414972755779991227420259839606859357810015339971654093644677289757589818653127986762051012969155012597994292768808843056468388824790878123915414228582116673207238290189007867109128338384955749564749748696069309011165175462733503092774191288334485863773942300872639359520601120678200642661311065417929296870948367721292093330365715766313323523620647710807816648347013588431378465045033974608180818042102476041187503264428779731951408622181465088214254721062903519831052340048458738196040670805004581170601691434716190003287304735816235482029822257450250098164211853245881879208426623672567191040380748989938934127679220652974787808966932594371139523787687837454759936380541863936824996526029395405817646945368069720551462967909748504131092691732078488932211779456716505770139947892737689366615190408330828856885656847517014770690833174243767102367095963364648955123157469610273585639732182898761492493049151247281944650543734462589052607489746500929143543036863173747784431350394557041592887278165923949156304373959107990680000549575871175422747766803167023108850057182124098986193574060423961421252835197984880012890867382983153967170000342441253052059391391221850138137547796649663058166044029095632735442819364237052577531276247597801635345054583237679521394421305135426415107371214854975870949915513022353499336294948815542567643701357641650189439602304417493966485577693119202997180527241722907281609286253502286685067662718858544210278943310448506442017108659388158237794607596118037149125179221533251068232292204548680260690797614395209842560981899369877721782457217452554529428365064034497259878715521572331288109616999376840331779443131280039506699374625355178034613799215009755634008812959003202631860444398542733496347273548738546115583486821376504405537607890290031254082884720054599750667702557784500511435496648691124657489035779311238721978202966305179077901518979404803093818473479670354910124589414561272893543103018708907139573991746542141806754659571705985664487495921079817559199833168441846680063182837588354641692380809206294660066147301015457936842437780949033325403063388094699603232122695835777838218787302120656429611854076008279032986281567680930107268324184445018126943546033339690159405711074919639884927275690441985903415330976838254129659003630096001284022583593648550386101529137558164298851459872695870560351333701893376760661031040948349188989466791352182298222413377439047817765084791222473169244147514726836573298161469610852891666440087908290294092758573573749640594557011987224785645528653296742482862581295307927268316039062761049756777417781515031236954465727839827946846474766337792052366930355675507387079287226588485484201005637171539787242088371822683135583198054994400260850776767031158600384592756318517775066584794228500770111329072135461581819517504537212208064894836741437357706146470319103531501800726418459954282000265310092973459406033710731099237936966068315239115504735965612818590180336142859594090046161150746378982906384422933112725629388565400505552873640677849302281981196533183619901065648682595394660916819290924383494217724176735723864425230716239519635446724879286039957913846999389394007345304537755743750575822211639487670475038888249074214647071074473069128438172403362995851597724442543097736919694449704184890678174753150975734012515261660166846965889887917876384464878925997002851406817255041343362232242038772840075726934603946897109013325817810631507882649722430977841098165833073655405827691339065276071179559156799871301207485546221692733969514605000987801107717612984077514283746870617947187713443921826229620027872227113123263222507020120864073042198803846579746328672221523801907925678365443810233173837608765833165666122860918532012499627474753511333832856454413285285341161792887741847029832473211303166649032834331929387789960545403989295852607740022737267025750755895287324670639879760028905109033562629617894804045587475195088884364552807781058964841722716249636796660309185940852612562438845661221594271146330161078255657223485374519246058011968270885306924627755713653275843630353807466767932749404968217064438186904906524245687446922378842434448260683436567767032271453554906543286271775489037951831579776024521205838628137859058281692625295944155891391942145088656324743660236158913652183888052761815462761683410818447710090470462842515059801412531991280276063293385053036960798048888504157840960345663246310228803711925998904005681193989340962678857074292878348786106876182275625792924625811662921379106055618275274526344720494466670080659353445662460106870136642246129369264992676535582194343034757391118247562263502500075819301371854750819399366988163040314377811386351528129304532285653741776602837449258759971329076059230742328728623129513740142284531329410964876870941300617620509089390119521434746993042055869012777909327969748342782040015459758717167063749722004335295601686986355367132339995314905423795068924332897814145302162665192484626902195924999168117664166540294942255139603257718727029984276684992207968266983429574994280723098573700010897807204558111936263109727449898875395468585015548973932327539813136800526948148269885381579161739669406320903114785684224533586823764870606523300031151082996500233929779220667215445458472850901172631101300179931861107722136768015723070617229840045927827063596158266025544610684492143335855921816213797249976218805408986032386691696968987323132121026211426312019806496825277111650588695557247446549299264965136242587147623913758078820680698405277200979624243614715632883325811244816170578415349716808133231072558351456943243322564918231224901956072972572106469609070562454213880503879178533780934149969534363396503172491034042967077169767665137011940192860250693492596258134900199743852235248951199316018973339449333559143244564390257590867511968234357560107764562218399318320219130628641621840742067372146278171192661858772002990605426230292743999110033467731076558357360031662649730245975591224357827682870906241132421586411922619927821546521810787766205025765502571745515044177662805781078022696814786984586717404093163263747768729027802889382969961593669129134378537340237553781671337456289923548230599310631209404385505518647292951057595155969833106078109268543028642054083533252582749490260762848322656040109347830353563547107089268915728474990124504438277809505519639041868667983839385754089859135883528177927563805713237420184864703862473347450575202204459505307032514435841911270433629411740038412980865032344889791390298424675012647551864143333619734321152120819626314029068995097362780530888268076239585243982989522127209623139706723229294944926936795134975703788070720398886388359339771932619716957832088526088993947617085713555856716844152931894909387608592372559005191579644375454820044742350941879630294476853433835390640794432234408538068796991169617263656025358227264235678552533067781870256571950637645336510136002348871776430657634945282508721777900223401605511466670892587776123353809035689985209373759932613188491956928935389494989112556301173174332824995714203732874910073570759006790389915446716309926701177065122026477310992445100924631194157299016173008833208584840512137035088219103013079705365189650172337675979569526833105322526023941454494926216778792967411340098376029894763800181400472236227609520469356095421088217702078023877137754686466989219220816952254675789399642666701719491979577752950499804614404515962519740713785002636612932582931434226874027797635490111953899377018939103019056796059299109143475378631809686598718567915217673147411466834828501594532335037677009142258337669924329030196256005168438748521721610476877415047447831628842360155820395048910626521336534896340083563167716858765498239829721527808937881529785659325011572364422704599271684275486762734475928060401199799849729588961814701378710407613047727654119325116462477789474214544865390269478119551733325635709360014687197522589197419512671041897402778763315964255236917035591067027422135260550916977159232382558001399293566937823505317707929376673320438979927927622628139619778945854683685918630699492603018654092816745840021178982701037794886744064235637247099650531959979441449644361773423485996661756801121315401404813006345932460001237138561384433185130895923612044252931185469142453809236691655495066492763469094189863227539888756900931575988823849928411248544293274418724750783376634657302619908192688064987769573411179601293251173532235861419433655497757626726854997430456200752190056432542824981444686455317887272513304897753495113627896612343271422062006360727449878667728934050218767660520675700783990053617456635084610413393311403671590914383539048932270258573733965663149577674066180524073254354343443453867172737398935271826656300399451972796478402325914630685660378638188527017895968310629718918369446408986671449363826573210488380131122307743335556830338048561486653090966433038689720645436415793781314786170135293173047295835479426652425162216088110198226106769740902028783697476228174959583208845699405499238893749001258569803890882944607145004165489737114674064718080794415525526668118979159068768087172572226218700536971772930694772920992726442628491490646981015729200435652026865618704794777106774040792777840884183200937797698994066407851302036581055767660788885341047471455322458765580726237167892058964466618702922707266759667621034128087735758575217790049666076469229248864772186617801421038214003185699973648367955103401569121217838926588658746177384793933747602611765883959730329985795391475265172638228439038243729967825183097320703083676027709923802554662727383670579955272620138381238929382124369084188428701063286663173635653823159778047861405157772617257800877087577123566216275834034216542802893072987564836438369117887820319964628960430056984386560400256796979454818089494508656776466390840425794391167006520322505335833011403749413185312869341386787098452942954745087582798466143234445272452965533187445107175021669207557796882885984139573141292702344331154931113726380980250429052093922537872190638820711893179367638788716675979091629626541000207125213526176797237578079904805235578152042039129021662909153090257682848382625666328589601637879417424471533557937434943329668909381215452106036660716606642594410952519854750047627750867742736884908371130482210453721542648402111125332746182887632542638014207166059251756001161695371152970095442941238791693711521110515293342599787120696899134121060765543429115038305467570293940107510704779996809734918304677919686360638138693820854984378776111807708774445311443261211917462667253220379614900803837514727940557001822336563960546080545417537916858784360806214978788302462429420065102418256999373209162054072226166568469819737478433573108059236668277367814099200813595076887839228594089616300413346671784033030157502082233422609209985127683659321490380584981123320385850181331539830246247186437123781598095227843118485260548914023532370863638652024968275771882359340281402434980601476963572020654761511248900929604045144580641965744206194687633721019058079994815218031290207697872122329563257234089133140668671677406767244307019043268601206219332287084291910232476896896350161955474338726014469429527714757052495702442614210262276571623834897943202795485671820182819670672560818605569846782682594528460720843503521818685836775539070321955658300420358410484599940879994823496750277102548092788760548862081562780051664107341131322503055129858380229596709934597246828314381179448305888231139743923682119335197123748088348237332749360786806756409380768296164761638915820334333307504895997391226823408864297809101988006851729340880379981449989265878367819587643913018745142458346463930509946982029671339315342391994905421797651309237165837024986321896177213597061420034189242454692018808648705731346439113361835699543226649286769882821716885912780740285121675515159157286795643446496998960644199497335362994453563168424831154834680827443857380386320535585277037043292156649107664973268620244082919428267253192689390833772902961610996507284198558595372828718851019651991220677091305276081394629508531967862061070207313965580713264347891179281074130041443486890994091461152104055421208061153731882202157095906863326597745326703180562723070456056679213521638815293724082723971101951350353817145292519327096703380461321795550663496031783535133604109393071027304313765169202545304443663048770712830843842276265139223550703619900600421546335721081428188936596231076003234799160302430540234826901602406074095285137137802947927040394987776064876329956894860893669395421961242821056620917989519817254220273408533872276254955568558215556960393844900734232215559678172122594705829393216244941457457276405993086652699856980464984650724581974060636311834518138523750605691154636971778436939476166443699157717191296706374906971959998181236039552575681270294860946034939480472387876396736191844682533981760835873552218515145063896003542714774545368214145331318251982196775591354467806094049908132232270685351581333015398880706983903807859120875828029001371330331980667027337675368390021092629451629040696113585480040539754487363028677504799281650763245812868269968836431941136676376241019756866176247270933248759702014796062315263925830122743709519602160610557311228574247636429292650629857400648226232497280228944177854566740554438050482707959505481772572276071181618906753029985815908265558607504827007847607816582771299775869679598732520300033215219960400632697090185241392461455218117402143231689397778114657079157590655963318236573404012266753487532054809194608964453273845256441510801665803841706436544759592394704125889450134827993594903224957943962861184470653320435930439148409365320676353917256172255086640985348089972478996965052133719733127929035368216078419078747335100051952079543921619917416132126600204376011139292499273631750294662026223701588924840360576803452533964841642515660666851418145379931190213397490585805138583348437168990621675753021203818894959787688414603663570910449233970582459335196466849292458233602316644649472063521808501308470927945590625245032638499701355518704569680103836530551807939828496073088156170952834204823512189337208549231719782140363496351838111141289368230417083910968526770822127092562167310440535513237233060165405257090663221852842797502337135021319284074166527570853393321871252489602113838045582069704736831562962487636450921058740200693682376573650330731252528129096703150177250360688923629904602142877478824722544176677498033700718397069064982112071242644623852126387345537965959549032548923233269144131890946814460552842299249171057113589337145080743516011725316326741854173990209626552741475692659626441892837615951160227260868473541294682682725395116163669418929421732152136521589948457829215549608204028560693706443804643647952817267257778844991680989583018509631360146901387008402205377546132341216973960139414991673162058583461812904433182190820557687378840079538455072762866005817516587005041772771146280336171958663351480744960612245111367742521824075625047628489054066843823453150220874539766253612530872022887101067581954090400827989941749643274185704637619954782739080347785478318618070697247540086661748184655368752555104015387337969867366956851925882429300787871286731358605770215321582899725720008443086242113278761009811493909475334276387750518819019008686694251014096244934094619288270528121439616151180728588225564010673825120840108731062410285980943245738492711471536000800283564993133025188622368526549938608245397668496001653370690885586518153487508957300675772361898112963703159866018692069484070724678352524999870502128128305224890408463255814828311233776195279028903785131640324511722480563738880168914061535593791896005108114415059863931104283026196476835753912187154212170899481756399442053281170936990651506337846613459030146117899966510536617422298789957021112619306694711141645262466861261919229577953061391246272103106340620832539679751858909830125736641984377158045316134971951363965262774288140508301790043039660534079578937353067452029116841709982713887512785255180597167959830421959709322910104477349175255810185433763285148531552715747308222699296523335408955167240638750001241711086035221323047881749655126178577683803667142242648248554122305976537962334090768343211943279775891881673561690558300418488015976758582084366799213994495319186881021734870413418882313624155914941262848472303215782550839604394657892035226463642957669946862764253533797484766602149113325292654479134708080124215970529830754879030740688027612743069012379985562084714419583180668143973647908772011870234462758562624242733115649847184577828817648607354559717328501481098860545181123915755320374542833167730902479115516774994678944020755101315383906158308604206415285690367013015044162607718782754207513903085207578823157858387080156125059686594099233796525491950480876797601650541375952493889542267560465301106740144923603074887355852307454710190681830279158922752832070752862699754138158023769797045359166622186878837223132643630476563030521020035548540301140440315447262652375623851844356416950519274757908404096519688990026133945098150236470528873446993403282448097413427194630127448633827645700797923054034861741798114737232015132760299748335198794410316468079797668472825752188124370178054647070330743120964486651972983038798401155118107952076880447236424357116651452660123353374391116597846226489686545980862815306809223374659302403141037307084214370428250890775508811723695601999921324508095241514530651492794472996780513727997382851621176073215919798363056536697987692576759870638294492351476478048872656743465159668759341672545279459398843655722182627519621330258079803169063800444331578770392344509424325154906972775381595463508589005532001659446235906674786913981196176857202871587272163871260519211543867128370771844269884247798880104319115723908262076533377583744083975684049461413845058624800313452676319621475823950036871988200703095841414186670079944132023775721780450492207363261221941659839523055471947203236744783424918754539335704329865038508007245310367241655732316728519623525362559737862347249454278250530394323348882129726847800741218135672524123150790701935008383759245230324909964210386489652458293104044071039568443945242005955282197019591798700361616911280640291651598148264315868726370679184780864703622550993967812109544253346528660012819056311546406311213061001506213843941172504072023002279970385264235425775346711985205325850399153056244175326416947166610260454964769957598369580680590050583581949408433265200396837451768474150272710130734781963729948039863261655685195922325055594733197887866419624429333334959725370209833301372377433861333890439079278849435906098715090943190020253866530807079986900146506069808010179498713074038184559743081007669925379883462782287215348033679283595682860975723688638467262386715185460621204902619115824708966895398085412237987873131424352462732825060184309550063317922391735489544732098052251926291981752333519270970619446242870867289516669482476673372198687590738600322651304914632512443087746376587854026176197803335121941125441008347087012828290991748137408201270362130878989672740305077652059777869138891009357278566035651099643299719216265965247792853056703442506081491699642362627898258257399541715133365814778884962873578279782424420927238131199665481375522591080937475651019205496177120494132915026231404532609788544839383801131036253384111013897918439710402583725561534024192973542429978927591497306831084901902997896757223337751114424540352194494645881956223891696983084672663886066816928561965533977075366758687513689547208278019725562648424533306717262245045176041343207460205223582077192387766029943458351078729268798415126949380061632541973618938874697633200202444707471675860159758207738428536794808837173494143946477624388500376419265012099430632617882027916641322462459246942793368421696470813073787556105716652163175610634747425181193078357642143068811804325390826489539446247649792283306174774597263363574873849952666747293016873091278014198949668316891476499255032164000093966255013751868013697820577836430072001585513225980123039882905778767737252624736522304407463941517033134270214631299154316573781197544879856024396362056382770727341404326388927067759733819349813616181794620386562576662535984996717734081920382017632303342767931086084826847913590176325271669038790040008400302081399784000944767642680124820499920075092470187690201300908872965355611249630281053244464149582817647859855708385460972234233849232975294998298519020558364409775262792617985858478398721308811501917728317848865753853638806706762520872417805654574423895953489905721031137518022463039984795712793035550615874583109860658447946839933114778419223712034610231428374985474219895427034886712267324992328546507588392654601591269826772929550415662741084944006624388164980948606724931613013384769074430086214745912779817480450216755209130575208864775801490077054844021196973452672244944194733006645455693499256289774853327788280354788200398997927846287690067399445630454828243425592556789687890595180961652730166494218990659297394224825147445427725590905718007702785257528541444351050112153479717521071074828563836928651221325090427820759444526463324094074118576611537036863753480420373231089699399408336432321768788607584890791044978227576258532975087150996664189233345310061364895491772245573947518043099446326697681853458304450060854739254098098639105969557287005810882812134875836334685350165914609510822174223528503410907934680013447213781939800850423065701197031813566391213700337706737984535820221217793014102225778046718341592061321328648250811675798120779212177533551593621671582282623564881185924723645962274859635454090373864116666000846251706124129344138963598816187689072687701410400523202916187282362507744913017889359629259037126648125315688458051186183297210798671299676085232922890562428024613206988407363404384557771607195950081861215935335635126384068251108789170605135303204261441871902430107406622833711521004161360149547226179475970125138365349837286528359282238560084481162953387572865140357135173120310725304527217208161498331886480463261096082428481975823955068098127198407746355438652007249978814235506735810744155834387770786017792285514598162913526769959710019833707399812276118597578437605259628762181761860971283382202003678962233285754116126509359052031198779589427489271052224088402587820761963822268654448453686946377878747911969972832994932848699326044295741778842765154502005950663768673467773129759349234850525011526649956226088046288142231477235184464977318936096955961435867766999146620301014701096140065049346366348420803939605442472760961832392807068845734616125504275028179342250006655071126588362221932675306237789322233460028158274250528372016941197235296990713281942991413461548120801149009250699832301730695510398656444178240054369578373257142142380333672941165562653001921740738963205852427142152007617090397463975878393218966682256661119467078818007210285136546718414907305230420852473430428682118260011475208231487039654746334334859627945541145585545544072814007455782719814074275746789719644987032722209926480208283389579459537913415499944186107039921559282313431331613064099606172482596009794367805280026363252604907741994319822727880178377330432351400668094236545695655178079503263269723281360032537076175110232110231463879038633732157901461722369841038995581325617009291177385847708399356371012947762668731052472999672119543544804247790479309479969273658053486919825940952328805274069265890878214606648945334489197137638690041690305457808584423397317501312274669251054547151095153112754675439680802177441830330577453983183987503066426938959267631859616085548598664130090949618150266636889501194588696003731482741098806884975862821964905316058612983021030762472735839970751353236970420885378142307206959294172795984915161909523534644680073738165842604838965975509614466249263192399052091908649754967367126356819162244669470641284392822954802023064239783638129655827732773077570927225623063065922001845427570452796961910557870780629361424214371752651078191232171892327338586129089438498967635248762018924260005502312104490515236780517736965760671008215670035406822260176418345736690141508742336054857340142656105393907330232064954503183945897137005071623534762953500360941987659411513900909911061474408811443836840884362997006065654428357345024824091773344686923452239444798186623463033468484757341236198353190999002273242978008387560124688722111801625172766238619721066064371541329677188573651097082235249342389389467752323741177134784920779124766703190325922228813754886999628574040710491225148326330632062451303007074872077741992285419975494503628610334449006801340123114642929494412123080639369424523240165041140547264016025133763653394071885573490755410517651733705384386430992223562359736443147484900249355600699261812643181754773394042316080475653018505641181603056602666385530931192346246560865288799453974622011555742181448650771098604746216434118894459270487353765585642539673943255405729998548923717640270190906868891074085829514939213368021386503814323560288831764200408896109120212837679708419690920902139118197950427063798357887136390937273248658014135447824408390300224158474231989678869468539837730085575616479129365442451343992879006368708888507511197405053970664595801284143021317415899579590370482925992547538148603772806321553715028866906732485019810400522145632238972869032555726595718488323436922087281123972935284669170369332402523720699024371641412997201545357296120055450875704771933530170951030171596716812781494481773281216409692267442372599614465885391718803697177987359749985919336571731547030629677493276687930969190766039116402487563577395580282903104570442969236708704061990034936933911302494152230245549679958557974155995332334735270147802019569219993870054538860983086689350551890070572715321173229259383416241455412000300895913170521336305785167366638928079960174317501995105026432486578229563400365555379512083739763072630830858592483848042053205002786290058297478035122512731455133239986164068355439242576235435704462498515130505820813019435718921841738361052007244532973796516688875737294859630021655300297014168221484693658181384995632115948963878594572788790370544911513174675303287455356854764784463114766419805120100310864492641649026783208922449152712346044843877851161542365247406720580501491994620945747280699273774844827994426328544162105615313109562612267824960056049318701504310254086663333198638431861190988652099186331346997251637007262465687334874443082579355017250101554798883349620004445338971257515876310033448227644386761552356581918048276914252805970526800025973072394127333780616255185174134602031729282067358288552462148989273399127900897072294928933477826952806892251038408542017334127795283312535455592338653529772241094992672021553536131191697073021784340289861186212740571681470269184713182001323835393990331258690005214287655499285015862584435874661345512718309852902961227591083362003064021268873430401741395116992928914959148014784587370166257416679805827274235386692451035390650611883920403290529190925578750826051935258764523035238038969986479226053755128540050108188849867744505861603217384770613416184140232696878670619395572137509898872406582946133100091450561249813736708200788775913261062990765849238066229637878740924195844042407876416758258030707808862144316643209014340676328349161898175949779078676462606940219180201812433998895092242175529850814099855969006405393245198320672748446020184219877640278364381874707812287922053253285038583869943779417919637941155867430406895276660971772943521240592055944643775309536227239012219160926236671932801561797644084675478831135486181867911854427944642178073464212476308433239881772866794782776695101735732661695976790316240726873938482739431875440064034454932402786433100247135966299508167488117844728127654766622044983517930424640744617878624095771003157444648692392961749581630772865952887423108926451019446422878240640891499029263666190592030824799788446928726189977786915073290830159771867973535834025797846394627186961293911718605988424367975117442263657100286199554504101684371313408455856965457118257909838105392823365429994348391461594619347394410870049779432195889289430404045192961000718351862842860332878280280973392760912382080224501157260000943221229837313761632923630767229502424593459723229946266988965907182605640289478016571670192752683179073291799463422474065889213002351624623313350771364510773915397052369360565405968366205557800348084384399883323800703178859067060021125825833401407903949853925246938008577556317519556793123578616883868655167158765764051006386262838894829018938991479424690665153900916185568603574584124475576996194205370782791326986798481270301535602192748084094790684791105588711667214346610184825344583981681324575821985430423846741010933217272100663600488274850012175916516935212159436988541399866175883115027374270295554269423767867689804452495326096586418986430506537054479709668470875360256680173911943578598334749201678240339350304854026606542352590609566905177625214964517459290246704628671129954304848312072211287249928136117816155724297118052054054018580721353078284838478123907574969522257947690327503203958401524545686625227587365177565583324423832469896183651183250686424783438461642250887946596343745761972981979233057123322883308804542189182596906809423427403775453067280414999443950475081404001555827988886350919661509765964400363901368144064421731839431546729393838891442512424355023821414765719990239209861920321043953185016533228102584091438734027637621507244674446735453069750573572308122455314166023679836880633739002031424349794604230923279563707886571133811224597941821812436762025137573507544568362793454437971505715717257472642015282534960841409490692819823787171536644409399320445717237177865937719442052369712051820887486975090748012198093945923152330959696059301147934728844793264123097096444882856119553545847744372859900468772384042165091838488825214221119930099272746674134284745363343713902145072148436420721549423054108867150959106126335917157534292742596103174812245049263558322629399267938661297833059456313183362014130119727362094997723560362933284712362828968247461560296769846427767857321659099824187648328912673394854133551171816413539228983728403729678724622829387412008546393250002695665953614982421949210554903404694303977446184210758670628164227708349604465927588516309300735220963812716638483680134831582788241347013539256106145309820887938541704264685218259027286025753692083340316820896840922554118528611092251670387281062511703227355910365057957275293798945981682952394246141574855941258730544853869076407695387209581838866915616286617766977170068315865353954364245071560237407791797685430355373145589161718913795527222175114779912220471470305497397600544662749091284843853284284318998384484153215603193188634771647142070158757823692074021960248649987826965512037688033358004566521648803289539335643277608740628461275076233326203138381960543942485778158414146146905877492256146699483592252825245767007207138112187182967324292616789682008738504773441036966678250350677665428265278508365216769535803510835553189124343152829530601183731440356613138201402454484143932797967929928468929336483949587703543718080124386713767581012300791345543711759399842649930450583735247396376000219602328305361039403184767933963563613401336942101908007130155548860342693190313315078645235677255148275901675168492099885675637447505318421367675141095586729540540543677503476938509144205453209210244762990192851188318035965598652104254609010882169981047298145495228133545301192151103943617215648179575119127907812491590161552095655991430870254454477078157090067859902892764330723218551643072145664843935847126550258541646057362913303418355315041332745370485323519488037021046924438433133032567611031365564544362906763703462795978967562492967987556837564492705961367003741333891423488240147010903097971445456023403060415793406224196001672321779005904097221540340491217572854410562910162726515594366382948672414047281569303698496919281018110972909029710172543502401886322840803285332384689134896194887716855978818397204050801290152061950779007395371576380535911808401414070376450572175586567433533359090125471691526728960485310919726202476570407241114273409000055614074964852915655755135068706543068803168436605055499816799881387321205634171330226319151284819466297505149463169133171747842680910089519437089833593020286070143476700197816970486224337434809913379019821125252816727900810567820459992117895538406395124578274753404106326700981603510285626223508474624180810208091746197995949262536832704725681792775337229666191019556619172921063386503944086241552453288402103984563793160214418046416173676907881632142459947854768777794869099872798223696394518344618393907095430127829519108549480625102852315546045820433500328427427864533666603769878880116810210753050264264271022247527126319831483179210500480160307619006362114329928917960119729743165847516980455899447689696061454784077990152901866259836328313263115696472741986470822074150426688382732340211800436082403756806122816974154110558380938626222052899213390064476830775092451525933315254354474814522256742236836387642465696522462988557327175671582226129186036837553215843541595013566868484238835862252947992148972204630650788192738943923743861874623726624695542366079083152540377471947834346066281601723938611367624449939530309101283480885427008794148505115022507992823294230022788144916712203991242052180916053933241763092886366366489266333615868505097827248266088940762623584333205158910048364240407917676639093196119420231554166718029433766404337357307068888919856185614838078360817235539212946606528516924962717208038052929721328004102964971197639067731430650678787167015114244549275895311182247148218140299744113664090253759489886215839213163521145172445964202461185131749789941868715314386943585009134008748534402708890805537748806092000088604768644730005225090624034003440750943663614861666892842878583636949937922315530056589829636955216441411628226959715909336458236186891650064559659070707690648485198199158281492679520652328391540532238525334839294433451058013124881956480873549315797954849890311464601940096182055709489549331718344228688414490722819880554987514024964936893072493616802484124189683745756340970248245355902319092454878102039963839432875256437284646850610785778778200645696321170239026756125596743464429008017232716418092955662000247781901814145523487968289022611879350162512450849602539745677550381960554797175511108254709105915232457628379562250474390864460012107070822992362386778264161924424778596091793554662889732934917940597302340411602601797580248257741423062306919159407608702280276598096687785372825070028967936296885606353561826799650307484939483617329550839445327500908923319075548102164059754667520958111856064632961783646745926705930578080102357542134141319146649868818042077615258090350290041726993609302619373102612217102728490764483557082985368708459807508175012358032421107440172639268156709599121816046100253807137691360564405234298516846660221359577962973129352042791435189224294457462625791744891736355081761235817692510971643994080025658002431440573413848570949441841573822727773828742812615393812070834553899636829169076350886481354132743314845715852846213923678939807729198591290527815216696430439974644934907026437524952729836319631842494314209028506948074554566665356056700658697120003869586060874300093124337367716275037659344317664120156479171128133959585711680380258227366382696562381704645482205878277006453979047383983653998146381549817535041942152402090160526212290908448327028440724482393024352095556738984690077623964387045417014424418548594066964386715922949756404902579748199944036345573290001131721135084078516245336598553332046820437649032708053293324198883838801903767578406625086484829049643027297287450427068275865340018984802203727427721451204778148838492664790808058163065484928230847682954123151255703850285400175189527402651623456252705549710198124729407089713986530343054850205967359562210927024826786446329849759186022623928655329109625348590333895743503106902789610404391981137657911363489899131778146696011376448266196286623027319989505524749960072718541552352976769296890171860652965965833888528970857012394248310813372159846508250201143838899160574721278234727599114113436128357486999007500803976191286329356643446906983964313883121379891188009734837166355957502564279285068617190480860745429542822773872201510872046989804054851475699528804681793209791080443934252748814485540032588068014596746861575755997891131389927004418303825579077202174619915754952673663363134104827479290064664635401654907318498050649504766689568007058437922317675495319429922298006265768704956045263684729453802944040998116730919256996547925822348089003968887007653974045508927320283935344640087052948667584118797538053126272677071481595731363031919260725357245960197214857886655551324548486686464156311037420958192033986824112044546738082497911257018740140553827169952422662207399903764309114741842775777598082163182496522092410730082373961434281022565803951091881196089240232025760320986359680841229307016834560362478781173149499336194377553127511472894132705673837465864480632094806551184696529518038786508306961978627028296491083494030490646514269166106572524283157609795276694143736864444080573660398536184545766435949465313151818457853998570895459715713637422303092516211406745211204377528448093120232631578625367004579858823560284513137117401155451834737002770922638581476019186670861721131376635613676306131658444185932613872466194091060665812464283116336510390130818866388577341027867714033138281004265846155623094595974189003426370479417005480991082553650149636988391611269259616861789480312502828475734165239932745116419319077890997669169303913565795007938614360554957423409053984831332944590365973212041195749153246342263690454277891516162336543070524583230165319434068032408353254601609071882618813130778856622899429266418371458597392360484005975658323808788568937217186924584353488559160282084064169588735673613333387749628697347668571573041490080383227165274643337329604647392110231325840265897438041066697104385387219200408465634993524201689122238482673662590520347658747050517059070037870983148613636557963825809615366065692480941998115063751953955674869462498284400741844116060770848544188303610043377535070614548973787205254131893360914637251075729546683310652643738225319361927850601473332520713407670883713939720567195750163475148933030674973011845008708907948548417993361227988180946463492661408522829171862064744355311038996667688133054225702875273214412677197793173548020008329774534041518976774141469990898588382977531440694321278491758931668722165176436581147918904690949945951464674828038836471609928920886596876262166999165013452098239816254490812066653881786530939061323756510271019000171650816742475173981351979038263726179121187744603429996277366604204296058943380812212590104466713615883051778129801226371859726316805852557722278546928980511442199915000468208333401495877474411602924756594547798466947864960765382518421559601958825450428654987156286868357366139801056585086448319362899742244429597982419007390046415940739189255950771588959381743489469128326501750227610567979379376692107500765823558924602848268896933958233079797912246152567803536791453758264389056464870958528322792982183287985632343607963052488391041683195980113016424090825234304009567036717635646029764090392875153187259226466071646994532640741635230891366744766877425618187441642271335900004087209856527038256882146805158568263709589809084780398818275932415222057389302588565398886765922309372247023063378051867883696322408229260572733770629760039404532376527108576712329762217863161106279182858572674447730329912624358392774637268878954427019907993224097919361928268338138161907024204300418667028271830420657221616878906301198002391311744057141455237737484793251689028750125026706784202834860397029905596159155607789451352639914017979619809788628736703723668551197950908352955818908171076832183339964057835259267559515475038504446516345551965707505432939001240524571221078504075089674726171584733660507359003877974155387849778060288736550504376097777064754685978939500122311115700746899508997295808736286061573795379834374590803132899953085761849155985908769755539428074997009429681693990065137381410459431796626214725753433054324231735363053184258294826283280581865957105170332328629436070984799559331023663867324159740103313906323407555446740101808326652090842457903497281820027658864104050011465512277645764173074894615797027397431951160395851837766833201798129631470120432057107648844094421157778418753609734265770546892457592164590453598763025189507407101970584821906896165919154961402989936771383371360495801553380402175539471401251615475633752815085076563199848641441435860552404747984560741825817345645946076913837270074158771480439914210956744927107375690694910807877979603063177513612168262136041297531965574956812750371957777360564815957171740858389024859215842324098703461825966221005020011384849160104005909289067432357576364160290494699239323925757825475100437050706406716286516119326610587336246991911771005248131759705099720023213118952285624979011043010832623180921067451000384163200472696487905862392736557808115272059203422936872212819583437029149679636922503525560880753021321022743278937043637166947231469781451344296396313876781693593098525350255884730275942952447185347902719445077349222359239296467348874907937551462187393407585740453080459300027586044962505196299350718733956315600868600632298677387037868584136341344741572246516203758671336986491335097780704948159349569290718432895438245324047608164245663889133156235022758963389722314851430995226015612842520441816047267049795321836728766331174461008631205023148066127944552221101758056835182143608840080339933586648539504455938057686571305956687845281663262505365151855727520120556720428851430603348937639276679037706679281487589144297654056001031944352010456831395117706468780964299624234327683090914970416654226644996604071542322309434214952207810732073568289196600533196181011351691725960235489231866374292675836859227835048883257255308044529913530127148256396227100263666422401798265193847847338174495788788333057246154043241817463815912936637287780691359485391716205297795212628124112471868194308692947390313664595389064700250241937352731271679842937934501153764782790985345250817100365477557741151422565911723064432494852856118531851349395664227181461552339772193731576543944173840873899168695160176584117765646331922803313828884924868363898192758783968702628536211749374604021055846500468571219684837876646758181868309632450154540671032790610320387614680201401640914881218542018995683515958902096589488174531838409966934357447211027029922871558255910002930517075149986463613928299065252958302968509238747334977162726984221893850189866614653401145020238381808488794035384748386761739793911142252210319384741970789727053042819254728183417425561376095581645309725085705232836451030850973464068267910810781901993558937245271011956367975619691134202611428005281339348548851105656888283751838605473379839350194306998501725977825601702340407467927754828426303563593973648060174316065991559255265043251428214087107066944421605129536483617818956421548111106710963287654249915920036077527714893267875858825082733473516196247050828470377895016444901502394796848470358284720405810852411135074360116650477698824939504495558167610298657943122521968040455924179392059917912590709654077828820893074711029943142131658506497620359866618031241972737419306672910680424837663392425105169175268957123790099866547642895182046857162475520329534352277238737100421300059001828007852821525836449755221112926036335230526246375544254060028401294207794714906239786221857620416655867070202185802641205021837273815562345551521368080372351690094061560787541052092883956046463301979273543057712962480277326041430608991990512961155190071530857721136518650205316073850878723118707800084794500420048328991306200729790609756128065153591282736923657476214681055825298522866608725937025750106465027476552072825629467329072905967373469949662579543300384449861543605618496499902835206700993546263124205758986988106995127032108791173064130974191107132655110640192303971865901768030919946431628561793787846672240989211615815355693278984173828894235336193001101576911428790041364505562323857397112868356262636143435296524259942659213380918531153784021567069727527092006481186807805473233756408388012377782556408746599621267123785927492907607691400876056012067685602845714873169800628535276222971217306428036411865654692118329067761574513867282911321232934161903523185018644418949898326267866714694303625038049753584888001357034445422647163114101858675817149847246082812974101315210879850558755971101170197129891006133680080706360052816423761561103922153596862918488255901518970557029321137418390152339355797138131360639697140070846567465127620370697623020938313321383687321739426660570672247599797499167597765675563338204735692553336711106214141434805909024586503176449795522114189058918969552464126433513840557752455148915314127466066284165932736541249895589118015741280596286210628530493352766335463816462536381434861679492678844014902064201862462379850618531114633579197530067446271361190610620421853578556105563243891667656230671362006525129796749489233696831035508532580639365542430193242046034608007756413398540285810129271970361730948007356458607003307189372171084158517440780438001636430281335366281793200247374256491325501502110626246245433509142193461570398040735434934711122910039736090347772169400298340999289123370366419466863793170119693553156283557805885684091007388755131089622897406657072243293282549621663230576866925811355418272228959480609390363795739965828874538211079287440918868011337781573597181607587047467840034360577299077164049813835881644075884700918049688865908695855417172607306401735883717723175665531696921864349371348121793673974360522069706370614065184556435362156393591882944339031672538167911536646087046115843664594030607300624576544427657530522751437303545704281183774750242804305460195180571692181079441986365231061050219323041174067355263346303476149265102963778166019972102014168866573380534434046115067768124147592652163684853199775012555948936545768125532604137186137025719161912994266156597202508672170962701776909618627693277727999802118643566222237646238824288041023583996980899697296834498411978025324756583146925295506021624135215403211748447162117470931244436654560288856512257696128129591626145216586025908418581898511442032549371992127866014193011309978097417217686005457730075973770276064029591817107804138465001296481031514844205616114034831526331606754269937488458465838505114077251767902404421580370696922932873124486764783005922301482719030894916057563136975676553087241619746483626870397772676418725856005750823733402094301587577606383300873701813322281369877695931070126686604520377426681526469203047103358110747766381003207609358585108210813594635271715484018538305152077892538089599971116091617957205809551284992772433100666794718216495145259769815883336075303884094271606271551577725923553785714483917802872655985513528275697434720979827944890722150602724721727571150117644047239886955828922234224059545136171246694215410926268233576571775149597273571638463866405864535451628323636027634596800554187024854720777101436425306874705546746702401234651152825593392361983191188867661429574699763900806162441608905822880125223856952668945599812604292483799641345053051391179353095815197690067276781854220747647219529137692179459212746118934351447575380192085216623039308862638820816116619085081558234923178767114522789753764041036942535298869813820927874233185569694974420093020591278505298355106361708071650063146057328825564011406749265414632851624603688655773323591025040175053440258447832996873461926476719512407010657948257815505077307616305896444112975594575626797746091091043800773062528205563604196233345828592142186711514403807862374273392510776371416852582350858796424834042804460084160414801836418911757275947105601712631199844727218067041913861703976090966799859707381082838277106428707294554527042356199620078694114200699023551508115673820268808392627291988921836667746343097999001387102558723420532374739721113019695303859265142388764390442581871523262655542992776820883153961978422899860120168630559849942216250447938911808532004308068371771885208459406940376297388334641605318576249541527747569179386696345886777095863397405458452725482423490294216670488753662337193978217652260166620681011323910749547337819764372487642642153628655387811754388797338432973066173515227583600467522089963231071949487032817530637474030648901310435538334395883740928945828541363656351980238621599904743956095164503666891636579499947572435058538298913500327513211254677076772222640153114710379924955095327067387376390556929538642416339268434989577301774201047041761268816792898676064659329298499450032275562855777241056004582090500877564176203768278375122081172879600237590913492076671217722913281500601206428073379577977440630663965537949905078948133939311992600541276287177052480771893758654415343612786623258139352870447245008232701361341224625697991251071012122393543833860796416546429031629293120828153779673490668357570229000824841803274077600684361500449047223416735682794603205102404026586119318482877393503448118467158528820317324538973629586222812911057625517280909413007601660339610243887047359437892088994197262541135780207462692520079650625356734773282467464929247793147102763563102398468879962570011332627566651534970664335161221191456794033703911809449444794051206047308202510010373218602090675672348320737129545012930045825320995476823081137644909635711989020466650376116385941476663819483416366488629594906821743394901192496397268144478521791822033930483626926788317016710849464387100321363765568574820400555935358635664137295872039723585578287196742226359449275710113996643124359046707753494566295680804718904832040343887798832929300858794863290246785672900423335394335083301111899510273290022240598115774907690592322726987597376774393757415957792756734168614869225996399755395919036076294500225673979716895755056170319375649174449426762035458840979884874275873271169721098519005187862992625575356510136279226759097451988365899196372677669974222402816856174165812990460866528634017737975508464561305509489145119956432772270489337181319199895464359366116186248144584160619739644416044868440338419016018950691389901147004687605486675188777082134076476991820898550865331116671249742784597584261744466580948344196421847087375356952245538377475504188978117087350730276559996719121771715704492353137445208353803648632870137274658198762830318561986619872812456728708962003764680333081454775726995618712486414093183211697396491323371966571343980507690851591750128760224517901712623888295677985756075659820699137626696946735689718366861192142446228923411440468533337828799038593115733743894185777008798533270127972854111834715930818541151665317433109108965608735618014697880155778989477809802322071516630700083031413913073784171499264192795898589829786029055069442422526658303417968794374111599191502012704647761276085340366187622574640806924742020208825358679816029239395700944849700258308842519025521144070782139658412809853501199432091959635190561620618921063717781123945532788315238110497506853835562730048862021230966033187607258332393274347099749864269155442220868568850639697317279286907443432158458756887682609001144379441865957987232706202828330826575789612138645198602787371423655728309850708819621725544583326836986902082823830168137450913563587962305108906653273824089709945241121875900620177703397853988754769423957886756717929858892209737100292252250598520540129691642620505665802832804132379030421212598087437745992644938707543948703592616686601864948304862694853454987933388815443958558215863341411226761363214280628858515778937551235930583566027022871275995108985048894753837304463343642587289371468237835535520112622599848916936628609593395325499537895453586124594520271418427553714615935155238211234372232499700361291359731083809746588725546874872164185995856396900758357366027103986994782422237041300307346123568015279987975404852802033432551404466530139360211575758730594020812656140086805541516061095915465704208338457525763344017327886874174364815630798780255833454989288693626774743792213816877525994526395572801047887744241551809595062584125040871706253157211368416387619879686590172894136134193787215744543510557904215179867609693303408384121874986397514586666623294493720193442753607288468829728580985363002127910458586255657464809387289759219499497630208518067528641215752975429838187686718348784318441036893837682091664842586540899094876796080422579575672456427062003143689730230817188241931648016860840978499935231929192626296248565264754355909245677688524378551167247183994518978929195700172392863155393756355366957651636888722915162944423995168719902867199505298880615012739886173723829356396182008172663680500864886889726532730982404894466524081562614740814849552051565045873395621064220449953366057424448745175524179361221648077095021756672743332959055196829607871849665519487821037515664271834571441458716639186104623948606585144804148435994390160635814832645490609791578998894340754073726789279936866986867304576267422877471488005349014350394723895289446231925912654625853137365124829138612994345877916649722720673813831255949874149468063825287448151191340617599944378688678820278930170465989753530287283834100810395164443235233662923021527261326200225527347225308370767938853394879354837584175070977092470438615485039001864476090435056310319677009655380348270860269274815769683874518756935720767610552271662546612107288145158948647148629696068946855278795029213157701682911729940141696345562341611620416540931488053526036267065598148447885799133540930916506318518526415093528660631239685163922937451549709319928238499721746761428638749223634344317897994957080901763411766575726580024062702989878808738460590473600089242355795100957224969898829521707270023244993153278617585071930716004284596969946679939409132423087239929359649724276890002060775452926072719165272761961576832809453789919486082214860003145812690693884330517547375099387282683051527466519286285495407378777763526725628951095835946546410872456669985079997929683610097064047997067302214869696902932957566455899929747331919075678458238257016350269271789282694757517951004150453512927931747372969668419028117384020445158836279571916606269081478873350567196518890790479751496387061753907901705912685985681954094197338983018894939875855349555881617952305068359017486431854304821415057369125221549271018751411946080552030897089614791726876099213133929884325849208991630812366535205139811760755406209988681520173635871011444208188765996278308125122104699102704742794573184657935872917888461462961996453250163085909708271660633570575733548191479870672089425307599430458212668998087332894444231288030758459485907379303377286524958026575051382109464177169619224237987599965174412081047656806123643267743240445238871870223684526350442916035830781096857291516457536507991574171794609248978709215600230022868278901673193075919797962649836965246879152343165375288574578281389492859537991146262481199985314291606299280751655719290346589640070658664327910822834099502444675483540211932932629328980403917582495040635090056592258059094119570578118050449064742731489489526258806609173292412433075648587495190679409030729811939999315403744023844473661125061678300323879144055049951454253486949031452767497369834213786901176906190267392745535222771230522134227217769914170590241111339783760772395193488182026242184684026254938226191379507526905877152806834413603698174542448878875084683089799479022815081544415503210664601490487894658787668138976548925274164326995676666970419397400764086892284507487283426961083259669760479359232238981441830317075168280186840629918908657068970443145909495211093289179962156534278779245871540047512662138248752771376406373337305269568375170289452738420019321975207987187293084316662580233522251203491607364276071111710366860441715626597699691574579129540405202847445261097743961402285575944816850418017183233000054723993264334641718848218644606217231924751741923488698337453103980669759115334527793790492730548593145337221942656613878829628110112711202306781079423283977757715889142230633069517619489891468434778576740722861484666125540385884017215950994849725038624346749451981886808637271067518676357371481609645986916657199401544361298051516612697215666209686856761327337375415134287844893635139146026481462541640450975014595662741329531349282611639144411877502539092686508218068465064272223214366866841783790480251376098058762921254598010576557952109929937487462817353635344915891211589719227041232807068133397229528148664762744361981272982835539054108475163259735548867311230161895811983357782489365269801462727077553847120203775147994933775582239778632160771455902466453656431907358644060780953385782509428452486190498554777374647237046841367901291251245808921267243491571203999075113226176405559628049565894532539422589523866592491234579653933625742045835558596615350767545894412143929121689065500486905245453717666102524166521978480228886912925029387790868112065513533871538993176606934174908202610907374596829093617422304202084919418542829151105527357373524752827027208316286392416795146638292725101926801274770344283851111510597764317320618934939499842326158907644892283202644666293176184758742596787223226835871558330441746183394705273492066875279801389384433475232860980649282755603780953344724686818643529292130360663873624071784594816446540802330334679162943078964246965859690511200225700136129864527291213085283478366541758972562930982911846308815252551560045075170503013452725721202299967601493417964473263714484987334317537791351029646832830987808330771518753068398818036350078304964177221036231058615754897190042672132904751598357339932150341803987634719175263918771918376481889593457532464435333899583596971090032639099920493878757352716953211420428513021542372089153020700961997458369275904392784660239009205616877534426854096559419850431190043739933488119365503856429056771920998862917689289534924354280198107511252654384551005715985345009755175115878336327498960006911610007329945121363360347836793508451880351612690154112470959742362308553319551970641518393414336602092159862377506006535212638814747957266912809807329165111274295132278280897212444523371352166157136527363281832201647479641099250839100992189097929988668466786371884943585269235211941013976872862554713746927088440246341645714642239942902729289106614544288701319825119411797368277597047550218415694373797359946640348882609679861498902183545961420871169768365959210918669362080652963862200585634323292624642184223923736708312605927262385990112058208303367938601837840228545390936761546794453017497001835603516150485529724260914964834632274996533663721591082617679651617273428325704845977013856870871172892396436655522230566278159500204288887916119553680931227900191477811259950960390434903350001873413280483749454919986423161917002482139698301466771635651682887567705828700401147319824215571835629247053844173936424558788877939064608061506384924404867823497713450726907501709861302789587767190343792305057104729621643146151132098423237698451462776459663636806868686959659079113633820760271087402897382279515858941508981775546814006075036118813934289419337689203161742316279539974296252015701006140008206209736905159325852853146908801759812809806662061960012221880242359396060487239142883369344632925532272514767454086444290711991017347525130774032557593195429282670299277746180457986084716666789549876729317536369307564596106244060291375146243568370337228056796589390429966901842342595945534834203084411612271326101710739345066343103954027312404833217438737614703857819620488848937181027718710724147401134265756275027859347527775147367472948953348440763927262868561477921702980073782908661583448217580780432649586330203237246266164535896582986119632033434930791757016402874632308431996138796144861224211280536618832306741036741637038756868445039658975264056885194799282664328983517641347854302781294111209439933135280871624564850988885513915435782540301607949110248377637476002833762401010683880124257429780671271004201694464990578259976743652482810629437338184999076256781580131239202706191796241418372401794493996772674315742503843738482960564983554925737154413637198948744542956841950152364625633272468279515826194570343626945828117128805202966600420305764980090769506729239680441046535202825946269850249707608968413073025330575199015977504414838573109798836986225554364762168636728446181536075805026586252771462251183715144431400817216607246671832077016692874640986623132529382712699561932270487131828548840236449156534267792818857437523098604775930423717563708765144801329448897219846545404882072222517562628907339944495559354620638098526931882442775153739630780956666285818674003706629352491104111334424228091616234180100428912523815108720895143511026513298058192253527714248419726131841529071259129047885300167511895029909274837569838802507164613438504469078864306812662302661088268452879793302835923906639685491315933142285955584472206589843638614574265929818040687559448226178918848194080390924241047534713854417424817899398640486618889534164673107752459059967895151586572959370606253297737500889091682689298736446839537071563591292877858323992441706329818272560276315947949765967417103282980829044954360449818547089553908165835194892092598144292536067673547805265683093762797432366341844199688872226030977707839001625133375785526389134601333832163489912427357569312574078682015087760639688272777534131979709926223121346149264589199002543509239963042750235549778381135421420256295172557506550001782549545271476606038942573923765743038189268552285545361724045809355593191674606506633446291857131167814508213308027526724729703002142854262776752906198657159389957929622200436105604423509531918198402519003130517688371204534697582883601298851396202586802635176982100708999188777049905095241034695351011419697441532892581887190979921466208144514369991599816301385123872511274898432177020262726901895306663015064580053641749255019406199540999161196566174098773154458072438830894266422087045741773288761325763900503824403817217260032546759132434786969284506714887662272141596905028518304292484588067313126667010982116306568296973328943974467735749868654280377054771763638645109568103014568413407308043367787957845402416828543850857510711266568584423449155556591150068339742508842200410168496290769249232655292464243019385349406878111780340643029502950416205428174799613921806048961665160465958490734319461320341929872616189937673015801777117680450778921623997610627502754589027097703306897425597585918324268099356825931178151442503336910517098029731394422449841959786124656055289400957840250506327157621857334522188765160385089290885098078253906455113442845369938459104244843382209068499337385298542612902744006764861908228860489051591434558656676137912825415060455382148675488878065194033185335965498891359496013088794243964632592340106810801538574530105251397468095459182763126272877311636079980782192241594811692818454903703676807651066877759717419233325046061555563046964167924003626990346707730556635837601156238245483077867995291051554112254423160779213923008475004648770149633655586875317145946459903624775494667801711871386809272298939102953035665350693564414779712352011003156225706200992607422732635644364805746724217989475533426079427479191052092581423583850757133839669730216670008882666291754823745678431260341386448702721826429166385658125971956796256543813339184963325133745617694177684770570535471304026247846035049712661914224988532315254861419365818398590599803017590582925276041810946032470019386862248089873950538229301168627250988460583698523912761384277827449439936925770021019430314418545552378805755635755324275835457159946502440856318663369790315037780344462717567528980202219703097275914866899328789526126567535715126029908503226397621577911465752449732815368483158044137065355845120180650942082679311720606326227533101773864108530930137005917153206601040182868736472769038693017434148539233823870343189452477487125573343585229504530325672455941639578883820995731804939479827835626107229630238745797811692050847454399013909471535797727006823400830367160823419603480114782455392915517378587670272345666208321216427322261199465733898589350554020754344745103143692803791486593179251857705240725192207770534177420089125381100570334204740309103705887502137808391123917258704094241307233235249925411310950235967774056565714594833460659976958939185256351875308971837020841245557993779916719006144902754832787659002803264132658235848341279208535447302932403257908481514257832018030202411560484593144455127439678139522428296772439998799922783829089482992760826748107219216351259854350778519822317579967262751057671889256359217971897327207343289774734125287016995398683040007931364962693170578519645593951130767859226104248316305632870573684564515857466111538825956487183510793617038644461469220048629732439166613954983772218711402286157156407235064187951130520150569488763461095110253505251468329086670530758406885980577058099003084289213678634499834767437383290928384158855483243745223069403156633548224292449939730903036443141026954374259342378371145243375685222362421054868040038946954348947409602996205526462043579231870669058963108584290770104141799255206706406587793929170072169083276379087756472773727344270761436003544873566501432931793628021751181807852677934770686038843836887886888195256538847822194961863606762197442937085890479955690340174480771772694084133454053425148172565998366564988709967815138996597432333296998957873429217263613341480191775645625656525321646752489606947328748781358896018274420961583339121186211509958907301349640333286761258495342585042866005121814799503068764667096370812699099678027243419690174382945912873660505522690655427531085269717605093235228245186980438334569230851324050039376677666276209731310205336404979636334901508432705027317914996450873498701950731059208761096356043692016081451022766169417495845078333183273229122191818628798623986131286492562462665182237144923438726992352465830593453466665354095597352942431295196870234576874464820512578530786869379119308508260857642275438792680857114958301184664870896468850696561724113915722980439907891734463091991574670086153854237137292909616222341212180124248577176170523889811725299321185612264358892376995102555524825523477382387825988034041577459565582364336477287144011764202134421038297844396889038624013302890492155262781042136130684973997877703628279997973621071045667666302561575617265484655098310165881901396438650056785808848198363896054732042972880483746099702308066122326484219268249613102148276108960507879763410080444037427218428395615121004900494721171266215214617003375108563002177958812311779969290847194937964293042585375014250184700038772434277905647770818067496268399196884546833521631077025399878857087689604798409036863765101792500329412258599831442919341665774292644083901282877634703128014312076301792306153174452249202928708290789807619848199099322979773501189355231831152794114186195790723156333189471229362684237344738186727088442035414740497781761982347779778020780232227542015804643548606451937028682949096324498206720877447395790056886669338727629656943463096213757394898817797357870807934083270383162876729977575877926584971450377259377210459303330243898129311235327045849978242837171212327532449220423242931482122608827158387693297565511604900499323875875596131496887067009610530572234504506644688764387399450184768666968752908971275241333273757565539977832435048804277875577941236510824452842856518313796046683011096866904634210311601336250172142603335836072716130011513677450618800089262102739897524880708143614014657480482323883609198614937535713741884105534370084690216086999117102304856634972853764446249288739456913210862275564129628771444555117338395849078384527979850360440730097145747773510471498378608218655383842568479880094348580990323749870419602604920371339121761964744784902767745981175485142610417747414851540812377059113046484031041484414237721619457542225617026800095600473283712349119132021713973353234218167212587897127627329198825823666893118725765658911491398961941867850777711751068091630094152469594365994415198376326738025134394626302548406215253033694757516890825255540398719656201640838509887700079616837291637894290004498896186043662118647613733033976154855443875792086120596075119869562008792424646939433639384701868827461341361641462194354246321802823439846115424822137667454433618088433879724330094134052863175176029589743754858592994370041567935076226947180624839552624365817717346263373020177619591448761124057537429960648688199723257324742268068515737282736972756489867079795066160327780464542063912302146692104114627864246688465620740249580967418273068262485749518390863032275750999942187741695030844585498360746504647476060301777608005035176096434635989061695706031672717364094111134129822479018085268595852266010317254393781161826439648293088980282490646594167872905654425970921619227256894242026580341860487803380838569349823303200217134423750415663360036055256161479309745577252500683116879451544124000251610307279781952340286335655940638094077033662637333978151024550364559908260820238302698433022745168041988928591921247296156221674958385315424964576273283839870513121482242178836323461538592296668327593418133942420927954128530320017974076808560266202425703657110580761336478407446367220797136190507494264926999309728460188854548684651475932038744639785140314004266943909614210787296475184527909238395936997305057574865409960773471584996929826263228583177067488254748271005113340879269394004016145142196391815810820222208769672337539366650543586568261397350370324005982562283158784596496274287144268893921150618194876189675362972778305205030699711120458459358029917309809509881233280549863606248250708934001720599383085968488765966929304208073716050862244480077320776132990632709098323579183512210604140719732189556105656908677278949408470298917374155468608422275126416380001654057438414496954036009288169721265775971780040958995695037207731035257386010841698701457019027606179537969915305802860499224643882122216502910346799920077633525002819043615922741290089819527023380649618252624564934995705705196051159718872934516917713240406850358745369885027257146089793935511088104807755630717988998430167747637544438784672443596802707583950587997641006498365245364123898659752303257912529292437820067920229358320411465569641494829954696683387419197370160983334567081224804319248386153429815412813557133046488521082062342353586554760651572278125842074756445590224203784450692912379399297610447703693283491712934112539252030313373803375246624162321596930647131628976238551563960119584069331779785104218410844348163826264604369119991868566116678818556151928372802665757041713713627621279635125143148189797339605211166634038351144079129313617171302694189932193018978081662637537801381876125515171783854659349308116255087838912743025784946078092335442867688899652532578791319896803320320062896430856016461168764429440056406039936911947648035308465745051789634329936232597362799935516222345496725894666012464295387029053564743294340495304748666586047176052978065586755454688010506339198463320881742511934653121310653186943934939279210557684342852230621733884347059095228306785915370177915761542096159627906788239605480636486248810231836606226379426733770701846928560063817367100578198429411423943923402412783776145523148181609542316236552956685538460629801380610973962853677420280444644978949589084078284510240220955574103098262712218012881677519547957264205599948853705453740525683209542287539296451708035836563926763392176710666691473520299782021997755634208206997785877351334132124020813978961768519906356069604106865769471675475173189860216415853978404039186580975331482198474472390585179048465488407388180234303122705123255460723706506603470167711311940640573330573243163169681344005604610276759906845677515251743599101124144866019921940374546323928595992956681568037184870990639248614447039771922760591216600155385287628362170104805251049109566808181256594762431829455082747964288661049810266117361124577398129171419353606003111005233792673519550852873369014920810784914551406526094669876392024451353243847866956062604190850754065139187911860528178529780626313540758408549484220474857908460900582284766624954791924362653724389169174572081291169340886690715679853669073465725109933212325511014918508968421447531452913758612626294890788874585515882194932721555821168676280277703618014713850077100991518933194892261140768237674824009968144002048830355803478404023803536354504450336947098349606537451015835426349074166193351911456168324771769388913161921229691953041714906253676604056464914016550489652963754392916160435982300640748878686351739737298004818260025308921090279250075648025865236518478308409043772023609250209170989191060027737813718647333947156970405317782184978651314437676956545536276966578344373678386247222422176614570576076187083057332579489551167081334960585903070710101038537540138728520743989267967664929207795446394144910786689501414055772579470635931410105084211301709518271450603101170021275336528799539032517709582255735668234689872854860882934714511883637522656432958121973193456712872972620427025279397370653877382179161094093295509539962660501129116238002987576645798747028686033901759000986350209860991843092506346886367262822746532547189181877633928948044865537647653148609255915606561210069303078385048247501682266324093990230849014512624883756099813070009513893750522756985162434050707803906826277848882280970317055436945979812096357582503640348294958955535261187742222898816164196283827146054477835860273847578076958926407779788470530142981681755099950939338484021767234421972857794545805756174231596075590364458065188079233791295933510975507342196987649227960540495044474563947068106828946471494818360206891036343377142669269071916577675254053688771611998199434842237952140877256768601909518671737529294141531392595748385858889906346125801376085655693533669141220470527694460846217877100567649274734749234817335680555163990193009151071755393757378200233510097842778532522574037988323670482773814241327444722672090961280161142666782665602610156639427207135994902232948990151278057768628309202095279185189610101964571954252962746612306529941083915344772317480027773091086458375881973014116085604301127261214240169398666381448468773093590246734116756680830637772572169171472445495393706057427095791410906045667015310946365242057895305355037642813671977117254194941996443115078888089448508639073220515016361806873407912861872217831654795699890201872312242034069828666000431556061571789767310586553772097865563958709439809142169958649680208984413154128460151520127996648630817987109441803811739506961962701385879604923569744368129058462647577775206555111729525636960749483902043494873541924333991495997572766090610285664408717893920591172830902524073999262326652082366498522253274492958122064752408700196779807587859134592754605266587446049184957912562751757733087721111470500665236048838405577726679421478114646527620933313691720966734259827424847244952722373564536380611972607247720979161475975251976110660242051659159145036122854970639615730674651936125139757496783850235086697401023789983671130060496349495164104297758479001986757496677805380255530015064165181185895540137278542971263760947111735429733208073794970945225465910414814902248758027965465882531350417194845343437670893896714947029527799191278408104149310009241834831086700622446364168863172249111476796332281717459545594901634770084561696750201906747837956784209631856818832432354458815083974988866812047405064691453966804916717588347761879220208996339084126600636442143955702294028713679398801755475990320090297166561936919898506624036545329379716073683148988172464681220558361063345666934733641345095576395912910749909474670336933869524813646822125588800713838549049139205849727886961576799452553998536511915362780228921925571932677922895267943194216907143946182573479294747757679160758005917203361782823542714448732613359133568559614265612343908219428397601367110452610847148698683021459080476419787207069640227625647827839427979463304141706071349413623709332304635511159361715264152618393952633274905872756095565217038851692978467998940998065602606287739558047133202987701892673236165955045977947675887535618937951785236789936992494695934075968457865648673660844671170658706442740856479822565049730681584308561504412907159211791024297945016786944134257974945807913764404190735272923597770858289084393652798832416547809070578147210468235648682912584398440623031504208225902211335653688181809308284532434734531815557016659101193751537888455321218470231844773279751706495322142803815853767047995424635641602473710854476287666241262715069008024281870472723339981104411397216493123008931892636144789746741649977400389233713240602001174003412994994515316116725709911418591472553120608374229086961437821667161492783659978580333620727472076744604541964900326899854526203343017109229393048316592238749141778028327944513426906181548057149575919553961630394183529427098993229741935351335362655977855920899788730677687769557149338793816546486023769904627509532675529112571041755634005379536373084096036636660627005756920923732257950605753371160742101814293517402556929766617491697599882252053382547729890689285416508043923475792604765015296862188053635449708130906451775333108100017855610612955016529522249985070560792735444228393591368766957314166965420096421851116663015254922976168942142013398520646293098648137861367549175084336093082393913142110515487644562499697329662531840386435101527554644711533413608045430785599868871038489389288074695353223028150492420418737772493552908759601310188232005171410655214481743234519296537895553673728048637146519446963087824897484090389935940788314091978110290337812890258768280155190492022937725439998436299385594809079065055214923243861113532668826790564031699915240233681129200677592587853035245355899271083009336675404294319280966844856841728626240960982409552965139056528654336221824262221598954190992859129813882378924871037416243458571787870242328082165833683936542399368126639039785975927859135578169601527560674195060456989322030648299661146853988881346170039977497992065503239561120484513362788055738681589824738677995355945275946484963918238215635221271245501449066614158973803046432820899137249076329746765049584444907096198123214830937269461728656636439700106779475437508412378156944713798416836891165545440956312516603227818070861596361965210177545494587744006879929702890223870192449009933517769322262404285666672977770183470783369039017916877522593515030007574507181649761007802798640418590319427885633972412589224395337316025565849181642481933413418900346084237534707065791265843058222928058515676132733112414860025760120215491910133263073350861625464168861419779573197246040981358105594801244481096711843261946310202717329882993121323557493702055474482519040779835815133264900422042491208819599388666320206656989672018895130471763112553528185454816009507925876067019459223563018504507808848000471663819714347294076328456094807251340726225126747383404541100670811830075569838280879787896416760878541428305488422561839087547778738485924309130571603279116137332756191909260516827552584240846453937711459932688099490464553708540075185033612556982630159336895123081187480662424758845381795773901060665718681796797074989075205011467642636021338170725895380068334456218719170012437055260409900796633559621603341037292296017510271190185955635031961769482212729560946258936387815644409524700580922314655006171412340475999230556562320993623056556739608114201116286353499170053417036534191100508738208628345902597451901420035195524289670976493523709111235000641863167039707696809412287723534786277458319979956175791129931418421824792927151605967293615662885864757439940849340539109620726895162785708909363617443908854612953293380992463320224933090335274549108113645781001818769508814613310739850564763771617877156232739662358995540177912325080251854888497214320524370829665186037269633947391459990972801812381073346047366652113739315177901154109109465843340596991738036144737049825366390276351849810322472241201964638659865808762071723042627167454043902157554085396241606197279560351505243699686998993702049853658161899223841624414257453140076785344678845667724702113454433435496226494616616289587101856374740321694970952873672604511349198021144053660079870660747042188090336890226831212470333016866537616826315693015457891429943069158309980353444292215306904862208237737439233216474243767604382187680677538240073137422944265396673865496329306698671002778883110470904999990466916915928971870724905531654930850977154520508374943352360602826871048112689412251508997708700324424090811934980374060549688838927418697199407378367470231716961871389391955758448612790055556227599272542605202928842896024953478191841757148468750914993187002660226236064514259466318278866797514522877226220577480445208668002798725605723238315419144137470905283359172421460219304384324514525028235640224212825780568431915438438916817227275896586312953142824840895142979663983884689456086635636202421146753126044350766314494849111699128407728717016819121647264928075621745001125711076629179615116655609522583990480905548315431065485428542419282561294796559297252983256451075085696697959386559040793161266712621623451278134547577632048422499608744423158290935046454010112199439953481664909749661384876305470810750901384272205230506527430762109718910765626156787652995750804284734275106025026287062698560519036519303808535966373366622494511521209980450399030163266731917430343966112180769557572967958743322272816875332333069159808226530554480445656138531509936971033993776942046044049142197130585713301882897046243205467213582144164409910491454955869239267238684336542059268284783848767049015104492149242170234886082068384759208388981508530141510461339704642850297478668272406598672103146780599276771754434194159643720381919890171855203668429115889571239405506041540682496087904520814939982310808289146844502438350465690894917876269618752782769256189371870252336855024292621362112842631056807683867597617897725132895069562642825688355752425604125047367675263027279867452159690343962368585395168752039405991414553279870099949191591313222229175358329879238901057577388720960309040339595750924266590262922621236209931926383150022677850408161209933059512388862622911698265925194218132006926444068746245721140397689346506575632937005794446665814719187113925594469978577717460264712895167306468606159805569234613547166120028938288400166608770211067379089918245793592470181902617990672976959189433254529660339361353544546425736680238941489758955940464661166099399199340774306209832175204605789911522716744320603574700383952389684357869524948636653157665118597186005288605927355665194310916919083511984378850409783250308312751992744241617154671351218845445882412563122313121362652179817190408268565478462872791910892551756893068925970787155801572201770591141361762096196691526274132230661888591634689220577512182089762367126494524839034369142524548581062657629213223061618640408315180010787012633961868800862953377833229600486965329267441720200120470815804553626574938975066308548289730066748111784273017004159444580750042680019980082539234788965132598026207690143219349043885153193082467337933935584048990972444135319884816126186003609956159075564403558420158843059404192568327082131432251062098319467519714428504407870885500257121491073287128546938370977947031561129564019353413098004801246332692694636916155545992217261858416341590165394546676720778437189973443716427572032415008982753673798042042262362478692428253881445471393273680098546282833542209129879596945036130575786818622805927915459128755187716171366165655567883452248767730989042744538533811419971114923812069266339508923410503046258693494779928683245163064654262410100431838761625932271311011933799388971375437686323871065340832391363377123064881204139622753662558627473269455297030954433113767448966228632982889226249871523558612135953797924034507424302080298997280175042511876175575556973799792047635144560857325039557653954348325246439791252274598115900093227288271728709224491705769965203500705266658210500029267089507310336518352813444440227208707626935072434584597465880314787794437898358098449219032458022770529664308052936377744403915582586942790370290662635168968917620078855299545297178195829927712531287787740033044842222189081919144225277996186500588584096768653747637695479798708096646932121477958306080903988618640090921850225147425625056346252262099283781641444125634999728750817637495717009022089383222457281157252788062723847902914155485370584140098838190818313946036474376347579041768822231770125494433452394004078705701714109597949451907945548190080186952699251437368507947280274892165206323430095792053806683869075906320144018364540418922615554722329859712685775862390752189384735850258324244284125527584298830757510708706236720101924573214807072374002926976053644091426485154734390051996174856910398682204333432619561668386385589245801014148340266088083627846298538072086205531336795611395982205498614415752362536944900792821944608073660498626740765258834814050460917482544847281494049545287417578651192194020807633147792514307019160412502594996680056198907022468930585323154417758654543190101632076135234787601925222172782051989913200767655683096535535247332863743585326444691727935172194632090533760238194889486491247496473947554074260269246637684347699122276123820688941442606353995565544168731253763852781349229631899652524145881322073568133985369946012383573333622998722651362098376658391158655199294705902962411337046306260701524017300332205996961208311172007628374779910665498501561132359398515418041496954177877626707101756493870644517159350289178043581901331584149789048636884013399481996313567880094791058771545990213041602604627273477353779780392028986016349534385335688151947373094073800968511558963778531583412784435256080600744595883370379198100873422913776476591540259296442350048810529562979635074082589881915239891783427279034051989196362716456063168520838526848770631330874838752075546719986023611266119796583366852972278666616133595996561439998088144037563515773883992079993488001748379491061881464529910240144487187090425971991923111827802048252849143872768039183948178180865145270753004452377694227919767970676694472889845120185009714053519578825590709043252650972411845623747679361587816868954436443163474121319252869974345458150533223796939368584778820056059188345711154474828027204068904929008972392902160449037536775106328479299428499842034557263265171496043339373922740985771559553224741249160916591760738055799253530457694924112073136764959049391126077920313129926933181175022729108069209369400841435532262535009583245413447465395418569987757182248979639612068165895612414276010771346787429481300856035659561040461682339618177549877417672323069628518020761468682931426000158994837609148970967715715905040226711852386302540707726165971420255624682357728370324155757560731660668452721108959009595144879939786454762895911180392394496067396302961241334275342310527498135723549374175886953377411404581718713106074015180057459259922019134063733579247533307445960242604928268858990791777928543551349998740773534929783297609714579194510969465212573898378443976726839622593202705007317130005356084658971402043440932032459424324187975475761066795968451267580605844467895937751896298557361985832331806200331025427366533951630144591620416960673544894680004791162654326753666196518422875585538800655740209818725620331658210893285939395190822032622105352919491782607332902656034965154128577016732226747298519550568455879074206861340207988410857450789052268963355219440310292445855205096345574900608908324538262170444767444277451233494205276261651528274173952568049543878708429909017130320170114873739944893658681923859870725470918297598027081345324131557364990045853417822029747785705823231621287231361944571255962220243535210867636169974698400084567211792770379544150342696954784445284270877415349130167630110339121871414171077535740116183461982996695527978392656119326168399776377427910387833494085169802115830106199521420775079053932578307072065812712215096983277638083471858530326413581848583571577645839025905490241352029463833433360841140626720111010396956752062421113859449529986889429760706283957470044297162704100624020841770114817325138256175203023169492182243571007008206029997660757233998752653099651315788794005487489065047803908971574277253096459631115443513032274864367522360890962510201301339107018674702782273846755356742472067091902875321471036348207013131862760887025047562835614754657500357670265416983318150223234683255063763808443100990734741684811571635520762719318495667502498357970725911033587748813119588972492375438587319203236406656180342756642394536916900248043456460673355614872545998567978255345425875661420195190001948933502051473243615154234594611009903718769656250515116266541424313501114844358790934449825752668844912895811032864937075693096359846677244697557601018532099641585380507057873669413802246699963699395009237688304561363322719772692626798104316120384765314838173616010883351655437379712488395801312542365958590186676164010553042936880593482977038353408467455032384586873705375967629276169367396709972278729394659943277086070850739325104046194308958574031302835783095090683337647240724212528852535307447157333567594083236848222138348486810650548868910222764617693798705812507293128913608469477218669790941995769580208939260829214766433050536434313215394119212364320624078427958251113961405706342976535225025053552525108583873588795270706354575919202725581316427047073263033639801389136140634160259731412433689443325138773555604011838972030838884031635083513089199027533283918668701676868051440006555568926851074264039708014276320767563435585703708269279116319569629664953225102057637951898517545322118811433308088177113836526574270205795009801794527789803292233663107923252481030331926706147970481981054907825716944374900210782670657364575068004868118265570926989106836541695919470366565044998265045565622681282758625867625565003944518810590347517933895201300690721045569959310543376978397332814699641089380668633725276977096310318813173616052914590682395550609852074433544378053719146668710460701180290192198999531607627060344039857437444930392973048708160543658143403242061874272743947501703144680622488694708936241162862845935163324005142429106510362798006585234177809946023503659502918649382600368337876878016016322186241549287445861192474828152350056657518868920242054234202117200137623949541265849129450826636462979361043159375784098414975909730630244653388285893114814036036048967840385886250705284027699451697963577488706630191136327770999614498385714228088595748111539244322775057482163413451920559010914179472394780082905892778169604597148812892090084334900676605037324987211619257607252438545649022941747930932354664832823047387752230533128388047589304257783828686706700995975405166118387835396095079322186277899767411775352252105958458888231421368795169120079630789943151494125566327885954449692109648744838446910017820638548709285483261589637325503788635798273610948607138148930702034034107272719081754954608730471070117280341848473914342203872159160133644524084649008838851881695456245141129470842358344314925058045987550722175983659833770068707163294104116219779090050821528819517344816620166759863970658123455672380875420975990194502696438330177253866449373614196633425350354567282878190517594504275433871698805420866846313892997017507531085498954335830818981909461952371959386479643609013449674251306257653427052128987829944685158137436017563485149333390240583981082739524784885469174479934715834906114133266787671409611221199232805443719621130160895090348492407752476714424890820771869606544207430183714521362073867000933947220344343550317678711304901886874961064089343410739198559514178737446793051137919293813717979459179270029732961122402115180903484801078097827181422046713647153740003866739895073070484763275823561318842709563332256329047509599617706351668674463059591862790309514687684591696619611057319748085754640853710218104600827958842216774191753711765138829753816084976272178766429821991102897206315104627880504471529362210428935508750681268301804415404481067334908626468939243661238398027614708432075363901186746102572352383245796345106069132443807605592015636103680306568007302867214505257585409147830422101770652399372870519373614944266526898181354551834521474108812115909998375404119887895206510362139989049920064239037120642600220122977639399304357611619495066861963794733184359721628860726652015963877564664331432165754832103311119387182613834410651535924773601039705132720803474942815382484482341096083954196534783642501312045611364147586658326962115005053327644513113667719745636529345118794719660328558499406714245231529839563346420860165604620025726273861283391280581015051160019605239233532036431982015037427982344980580348840230122555947480851820654890058359858578874240156717027664317206188961780328246887647148205151150609157937009970509222218346658317010191900643778286481969668428764009898218924930446277640294223832111493195730895255414127011267812024495540433326602654839818038336229061349613810861752257508559358210596199373769268271847405287220273318566744095316076661741465378707075148083176326565429292618083123907881417155875264802991021340006457554194580025393968083042042228301732375600551976494659901695526651448346670315919351535216931239545551946986211351074679146196343955099450389289605449679165651561112087935766232909984917182517748009040385064303547157698140313404759286133667343646468213206424976795462067007473135414595729491978004805783292378674788474547205184344541626872521012933878736201697533166530164353235480477472460376598023070396386288802744316362827618397786774337987984611317200372849298594433308518160515958459024156601008422300017825933090069965040708700755821629307782440475602228973718899817347755711207307639226725444109901207601409881010036513310759517996228543130944848213373600275852600863632887558489041544565977947973112776363423512641843234854136020250228188840416577960185875796348925675962824741277330388994545004190215222236998641646135901291039642454762003240425953992671836181325702721814918086998038642314128956083971129349489013096934280707084101926723253775793030110136775079359713771620704899344639215884316119386997528420575863193968311609931798413615555583594213488920998582804214589723120664255585093986035827216419418960203299754854128203452364589587034101981676323119412725018188456517525554631330384834858465001624767426177874068738038936200846635721738728598667887503400828430070598978211682598830518399076919548925970514033213200383424129340714812481495272739571802332568118982803772368227853392644696931502367616176279373951655951592939898150791478606290324596024213814056747263853343131065878763349494218116858416850291964746979339945926202780297033198065596541973698831982899768096373128978552985889257631061642237220898077738224331008341731309778722794069732946511249735449789756275204646564641230851081486938584360520124302273371213162587400676575565245711955438365212272485977516766819382332679701787851771530072890371667119035462446830876312784946814460502451141275115696757184457305680405443130922298498491641144379014203102088041908105890422769613216112285268968078086674363520859332954544422505024563859892824431246383050852228595131476636954769706485926670188374256841497844820520572886437685601807238775688483710345251346934414485954422791927762297619897799528479814174637546519779496628198411048022149320176415352353861491807660944094902249274790656788237312141543203526289758416447100137745480151926081889134012690325650122376511534403365253803830572289566354882365729894364051963629256560007798891115395962842019014664951337598591556929253528241258517524782285194164780754211510921528255833531247913671341607235210473086369242811771011855468102713289717172635261997153445919302451517171699763538835288191020134113698169832111420040843749351498179031869042098627176266169761436340700086659038391723047162832791018015246666730961518416191197164400817852391619954645405245543075287249766792752245356959686427572694311214981689024844601635638127173973931727732550476420647801842682742710693528747502871271751980483206453589616092209553457272017316864505580065532132064797365166308378182925077582034086031785672308471020211932081681567035115232293202857561812460091961814905268234263069046537442344227214500328346678660193229503473920466847719710692585514366881696154700531505365664547250466183033749043575760517671374598100589375515909687786100011599190761638292910761149406178703841839481694758323864583671676102212401119035315806693384751198989024016831318772486833535375413021896769355534167038155032296612934484810181824102987941318499170404359039571683925481678790823335133216511750447987050104985613601558123278402656969070572106682601013150847567458715509868906815151104522796998684173642702898430801853609269530484549454913779098049047189503731362608294707753411263660691112068873151020837899477182208588292682560692372762489901937581675219654300855642854554853554000510967670983650485837708142435780062119633804965833169484233447904623375855042897153219085962512252256830602940483450195289160782375513199185973710264793282971325216152165745437380042529964294038907518735073005489732275555948324837793900587317661247211069142090098545938384583931696161035867955494725653905484980269707306009638506835823322476385360200335037187360842354671326319869601267663911882456224595014145052825791555864711213036097904237417249534925836782514712675184889479100079690071071345912725248553300533675419729603279300020619943610867647953404109196428670636774304173647820981344128914506795000718260300827052717077589933424698811196501923827206112748431086897282135594699981907459738876507429469700222909444321677374059442971493702442666840527121853080960435113540848862093912885071864621221917473081094313669734632349515609529275276405281812908425137014180787043378761976718165387791770401913283158394926999902534512231664875343750215054761483325425216963871261811199704437088285368001585671431571822700529069908951404844082879841530375329629802926065641126496115426365310899318094796026391209671985296560276262714128333012738451974592549593055649124065054969266069047600562687822406368888665485682160029831387831980464833183328508597825676628564127430444510185157944469545241581908574097311387365317979788285804063178470692987077988761651895215227446940348406628554107235007256625458719895161142365658709378199789288365962744324185082554243067091800219417158727586888557123417968732357980285710077011718299712277958919403661220835483397293337381168154316714805213657284490056398420694069400891537809301411505554394688763803667878542808301492323529751881146992735624220785266443016471198107068498766770676142859825203757938448600257625484863513529925152378338773197337334820597966151516812482564523136997200871551860414913972954297975529634950748837492965806273263084644694410071231072267232879933842372985380489590055495635410112900720209240797757185522909940555971451883743628345394152578037614472338878082838715804434447969501174287318029842155799903198919478336266445264739419572597254580350466335895628770488919072195287136649445294327737366427774280620657431220107347130287841374352515557800335624292157845349223899002702628089619203883595907368077172045267452626318056267277084836712631633339024169903291596013671677596850575339071071980848522222192362113092053676144269849979491909215030657935198024985974946422692887839226749693077755042206158827392335334122134260695567421490164977376642166602160708648425168545014749608174199988363455444602736941346700971843484763205047620317566827429123827770713895586893911887714111778008873390486979645144420294107048370831946587932980735599803865923026227072557829151726536858221866536160445259081756439370112277464924828422180366741881438936989753329969506386197843826888659759110472266023663912450377031019962890883305454415458462523548459397028324400751037126487397781548993609909413099424886322268925657343395465593172380008396771025224885618654957730465612528176528991000925522059715385309177162692057632251234058777563635688622212310607789909403347115084838863495854739087234311740052054225057564428777339161916235523987043535296988847350545601740955876556306157332112837068179114904164005184035306369093718283836117771902982930703149059661744257742968138883194981265227900128353435788952408121146046052815916598015532215949293516000627575219159185924748780263569940456735406272567279449769125019081145024993965775195058765082907460457263269141294316857691923161781905225174707889690452173930771882277571561843771317387404168499010657638008988269173206712970417360024888896479107965109074014960688863283382006027746595354146638066764518479715824705955433435283995705388959743970128645587912362740691753416984141196693929813749575666044707916629002600057403966323794221681242669251355875281015510880554683675501283836649962465899198649306736487694611016069424863876988084294233853398879454172630691709225718859958660127620692810467822721945248267050564452583654918105564357670432715349982209860605119399341344771102276456584104905145589165302364264985576787667938787261410974713417450781332886222332070472531282826878085053091577959753699465038866823504992555054397242339459310236536141213955204252271501646221341509771181299144336569844957684529012051448484872401418354721515238269299872622343015309450615294682706312083627751059643662788859794438214223024138754612927931019836773565708213081643883030019429176247565061074578958094893164125158139470910286847881846507987248781323644401345077117516669457614869914302165537298716669183577117619331953691118265197709930926292042909643410366082294020569689627391640718879467507105886167333589508872856028334372396424304567148997534903173962748400060881132350220140973831135080188062952635272050913081561541351907543003153952910159316175717927798144255431622253463959319375591889057788439098094249416144100774434800628853453824879036717601705923059947609656103752100688151139259026404599511184419527138162556243057606409729253969730668498995293090804331221400763836743905618584666276161271217517151373926924661523098304941299293672215983526920791178928038362029933431677270323302597262248100258489657854121309330422981218494081145733231655591693351729762436746656504652467805994906060428048376633125012760292546389423583744386603465366154597043438888801005897729556879531836927319010897961973987032021308774044886059214957045215206430681905775106508749040120883019604383307294232066724103209832776673849839377986325663837216559467577415373394769679650334497425556903876894576450150996334591423208164434524151426483432448869527047761128535094823483675735051451068975673131556063771266585995284899889441447664241394055147440639750585008256486359863675858799240901755344810961907378106111713685781595831382003503703710617929078717840226338753705595370334652509523656637492732871272849178816009578281478648122074999198923123195915119740658197938159654705472950468573318539191162056728717323997867478013475339553159695564683904374309461932369731642106969437947642614713786838006510657301425596143522360636698968578776692134844272448825345029706702605572071727471696606457467399629796955284711492973849282121125842099834630456136869823826033114501286313883903352771121154879912069630433018232538036204920523178323058573391999749270501558574951941242295429967378677133282379634605223032211918959283318035169750962032335863392968977892127087490481386445429887324405696711730069637925473918172525998327155363473503061657793564614246157168930548614321988871322807710770542818994007955562088104408174164374965199531467569579694116848713977541685312674931239276515859624907736819895605318928125876578767884405015250775248579400790458779270435377144165058527725078844079849204718723690757175774960168723503388772728440004425134021800221151468935927589059888167602221071542341848787848935642599067244686565909970634051718243905789504540638148760341488921550331959316656986164566541533822029556431648417067478561459204162459352333044560752030453549604846078283695841110122118759828285648198579119920840327866137254605389998781033777381715610533635179702503382374927909202650052261002824873448791247266860687492032210933307887753749773085670464767092507163636744135865368975291892812830103035778455731266823079949105434236827009070725862267979623925684629334475966407186865537590547186277222596585847754827244676230310424484088345833361045791658738914896749325766331358760715531590026637037751944993422315202142248628118600949786151786338977138481991864508928154728126395168573908436514967386733044225377189664147104352270868108910507065954802029198083952360607883682102376523489433504337762440812046966525108549138730155554791399040260461519366345614968670901164558484088253568879780835600006914540081210746890052220223583759984944555208387868075938620814378474711218489044255100085311433573792265209311632286648182128771556156211909300117579683056970083944695066221746218993717317765970901297781788514018974134205882947781612682271897229498206124033274525570490895405633268674892431507856801510242105984340056336181315774634641555868306138893902093588145962394243241849068677232368923868736321855129189415740782066768563424582645773176832464417204433229536778134689545603472648234285142351738342227594012436530995600348735779139923892772136190456383080228432468240274933387714300134497063118577295449079395416388210264587732164907467832465966915422889127431932439634717965421165360914853467585560155967666444338149916168997050868252882534403813809561248031836309288085335103546958825779692788879287578234229284311847358650572695369375237903172574933420475424412948971626825982057811894464466092196270486535195697504427246143293303513511359970980024215196509184543892222547437295688267142597176506502403493466119695303525395917241787631538364913118051726617019838940578837015092997261802382149024335847616237038535235319420792564877684690850576088052389869907058884273418535156466778826623322897178158922240036612397940901492944834046929250048624020208587957291414833305525539078381481101406786336352156634361486819096579036723241469004160155815414342793064382495433915155726013959198906482036499068292600762679491329016286134395447787546168518603776328380102426990021392708177405418979167593473729500177453052355423678490145634368103986090912186663425382174782286661983767753781519213797884082813016243040977838893139389382567573761745316446548985523857269436932993102599470093900053335008932830429680862101115718913047559179383274557331050435552116500993996662722300530612267952815632104606115823417205857249058365437082933252413157022552974355612924058475618524757289676447729624481380042820450739925523012844695318126411083553996263766649026423885655888538938376770042806023992079922612980289715376847654977161781669680631112702139082835194619951272316457570640510394127461444611830975888120429281817539173732285201641581640314533009001784212258130641313283717568440084030419516299610856317771892419702257953614787329187020507370834626898396720916171687039329076775990390787789697708311487182432979170086932135550483432652033229873539267356493068165738557503804266121216202685294129980059434073575541701144208844362130106431589436185743526113509950009252632071386829049412911349161298295477303441867862296854696075490033507192481633241190006795005667015088755576080851122585502727756577719572470749663253807912887645783048056109292295776813068137183763839112828744388293161638436963998512472655218792969126921941093107554829096616158593014727637325405661881531869355220330885701425374195414023330805916483221270912105226364907893030564240086939645768240517442013092640465697107112584549289699590760456152266915602029407882675079699846404331289062328985311461410354259607654170224150433306537993047630054087227321209201272082578359831062615530198000574357790649975008919710808165169305871319856623212659857882052368498528226780651196675742115057709338187257080074993738197545492589858408530395965137212251052345642659998276883363324829793344144196263730818498500632629973326875884257888795646945312119267416791813071834618549055110970967248596858859348409151185239264049307498721467810977634672469557347430830219112809513541514955523007191011652332078691379252365207437703607406002898886556913422765280194827335261357358802029154867776766350163576673684763708284439699550861430345264780899631044999904413229274642968416451021192385272347534351443014285535871305072005804681759633942038759455508659775079770146568027976189893883767906468237914161137321318398640780161535566126107768477296469159507216419456305192126445055877978502422093059403411640708545257985214889846697379952669165873955395580192769559434242241205983209482091999366728509682385591822348906117362157652740553249878671488918626578375329187497407263559345294388901124671147997676836875226853058355764825311028098035130511932168521197222414454332322200541554084796369238105286865587492787468339459373599821284194917657964442669655587784805545586225939089682533284324569864199684424653471411885087430962312695438155700754083043799485077498505371613655844040731322575648805439560855008514190780941726818881593910963765557636357837202277854869128208106329705111743140619188650854496189392142779389026167162605603705750523767011608668587523901429398124174559743366029278304566238266497081001700561041821128448210947265069011570941379733776318179776541730233638384986659117701788332292222124157872139883989341769876116518480926237001101611337195330902996828266444691202463658054027346613661909586865574285197312781658170133773695777485236918727509930660549035617033488188739975296361519078774117584356924090762651667304430065074860103817421018413018033386870609356225024776690555829562315624720309854465542792919203914413504087722190867604631692195843247564115929820916228612899717685011671354224335440501719610188339859211499283433692839219454255835610901474159488619815286572210320835849791417537962465625256449676169072615837013378737525734136862710716683030642824230072189579515685787481759820625314405012998435976654633751848339303647773878272309802739831806462543096712053533881471589544531381914001662473741696728989524955461371295634696147895421934973703648337672537385893984834464384169465504565635763193151439778857793404370054921016858377343414617468816083519540007863794265083197173373373725980880657100530207761683177265817350526693394514181667693279284853576650883414034892215233705075241000030420321624137438791264752657290678406134193083748301838766172763863273066775044921444187154379638874629701422629202131400642766690288287308933013683898859799374202849935758661573653641056246791313169363921577204540720337991369863491414455493648616238884518650915201164652970934072185622057167478204992053988653441305188574994246683136975479377768882590670537236839564053453908416245133464036165411756644165535036550620688620661401898958090630436212064112399077082202167528748974875416889094600174734277192876969271772973238243968585144356498303300684442706499974478231404212609471428619170798778153140360985503992513707643001484824175608545459567628412374541854027151012858537288083054393952312852691297852936153873877416718945496007041847797722338836882632645127470677456828226909091917127625344415995225676529790555794069413567664659929897605248918955696629517512078363263539702468669778337746888734420101547599547820550710324287121521008556436855027638459319492399261895352915113606384851033693876964316021800610320826940674789905968008366376256266403162377811668355092092040050382550748187813298858108805481738330728952064769756018642672640411266305487083754106005788000212604105519802325237774437412791441647852039121452119152520893663133655819196377237240623794750589190047968272677020219136304633755638927477804276664999529564721911871857944079349144376903267126885087284544623065469995596460884851134476655396526373044349179974561562731789647804071068746844775467535215099971644486173536794493612033496734482689846066156895757367789508830522442637508414688272143506452411458682953093513684795764838808043234437220196537428162257730849906624220803529813434470162853310532893524681884557293860755164327169988677939993703171166651094095569960878629774252632492783052112912126155798485242632176615682792190675599062123181413700223194970753397475156136912042492985224196076232964382686401691542087710437646594005476457345039891138160395665061735328917185006691942531101364098694268668793683989066653412242390024526813752718078602563018617783380350428014687546924245171427413371948596567582007910675302271719109827251418984343402406592310845020224354328019124740020272308448690555222566265574776615396747884438184709393884359244910504705486586887176951954818716839317748316850867440891458976184496574397754912472328250886666514751085040112004691012211403718877721887884152049963514113104817182279042410998226066101726690578313870267598812241464905428472964581774694911729647128761316415603733962043390701707900874928670390796285893170473841860868931037815906930014196136444443531550696919157212142457605369477189193732272630305868126006631622689889962480142472444244560087646557080995857504362124686159705179302801239146417866785667063695548665560350917203919998923890332923954334175364240153013877846778376369393003582037791543050312178662520467146489741744790203375097861103109275693467339114077808247385621420653112472680283988195792120133979041960218567670411455467482811764864503866863662684185442180872233169852328855645104478290343665750288441504760662645842293698835963027201985472809781368527964099986982199347898919654272797392214558973540937046118825367013690296452634254671509029486088698134850751781764157113112847625958429537824502072111926977553888168583026572827647348904929490935335234339764923604230093352898661480070776251465758863412553505802609699345823942788429791701271431653924784765252329322362721154477351626003088975359339043661253554226035528875565071971677118202996376163077005717904017362541160736253710204282091727288378422297072640352619478114089391337186341327546952768044306857066014130385338925032587021733293341758502856496090084522461889987390252550518779209035835504567013184881776372987506588227849308857740836092376556786126980371091864727030032769454140498204856981500425069481092857745540197701766232612767566365489833930178237955112940708641776504577314917778059015960185264036401907237607010379328927005822008937623283485054206117933534159669091342019141245483985931137647706322151586362985376249933962876984909145630398841322954129383988617654779544122282043174096639240729714061046108599040912939155861284047185408780713062607038619612226932347574983450708031519913764768472123352870424299697896865299335451266924201829047517139611002820810299244195899665946091020975658620683941983965418755405044435569554811788539148806738412379938962319870991285861962290772231285545737720973588377980782577000815190713305325216257030616729620983499658249760491557359315182447232214337827877149377750048370572167579657767564633723545617088820660928552285894108082321187406508267543707894058857331612123468513994297239710158423462248021126554494440593816332406035564652149239718267853730847518041987443703384051444538299855013581078378802821134654488936342351456586426494766636966339088406912269667045699380986943482545274398951682016363525728348639193116762578038613220698080479112934406664408398699075789341459805430190355283451327989132356476334311821703586870702555614101427286453006326809067257321621782382429572638807219561349137893064821643572151978961467646429184287312109568347857607698494203684063382026692433371110669630731549422534327747961448373578697197446703076163003052669528873108382212634711859020041646220151800721513893980268381427467197533500291252459993189251254695464354748213880390118009716854265573504303836209560826704216376077321951700709408476040676871818160230774902916077771231220263843403049891914271569960709726227575804025081508105060038413810398074844141997498222239637320363772337828629110894434377388310140677150872098205313255690074829681938243087993664168213917726942727518436172033851129021368390029414679960784754925196713055930777914340027135055819530803608298667106645299786426942484879745976760329409077895115117303674110821274759874382393962436594457577323158890346160991327981705725444527403541538961387202786372773028908468886971286632074429837351233164950653350751631263571293945945388902991775642955519612397986082333281937526400215749376041390352078473898060113393866337276748902867947986533434883056991076238999774946151891204445551335453547752816296444870530752044170535583665491559378845691049777962504504880540158096836401567898908856991774995802679593101599196339964895925660734802924055874387344908860601855141373351193320609793717875847947858179052976555301055731560690036998189162860987988471099281084855071419952137617552233207736445543424347037771140726904145376874312979470364042330114038811515171193517756233476280355052580575812436725293431786283329231468531838281845487473333889913586709398689899490616105742189266592913010757966325407962209704611061663378131533903442133772052938552001725583319367520939775296970468830791450614385011490901363744274649486828914450239041234526395562639563648504523092139256344906579846743448435046574830805719592707605910422419618200141540373102971467817508428561124895837082631912839303259744622165784218071469268408754951931076729915597560586473776450750361766730798891202152352888588603615011046957711328043340854172906488092559770540620717559612315210552865185380130073613964491872622693916469518325219445088920127408949763376605555920313427153985728787756319638329095953976724981198903205875970506227627934304060989580743170804447110132205237530187910385081816530295920191946655062381536350926214938384965201944587701682488821213513860402096186555035288425254435933763133258385705425019227850106457847311893182950204197187841239937198785116152198005428509012917812620346079227948974915223715228939366516553033923094564048157103090281985283796307170941997395529026663529081384766617243846387112622602062118181266535464630526581578806167005928426582708176547165258435951072766192275847031774629984999084747865689428884390890858991431211929087460215118540054625170837616577463672082292844921463381470572995935103897400065773140764113911671647580606106945447753634879746986762324515413752936814801028859305220365415421723830399784274613551818232444383102093477012340254428028007071642818742459663927805112433783908991610708762990668162986571871836474172381781106678327641131961993344617901443254553271341665983839369837225888665794747640267908050184441153585731569733462785713039378197465507816622114324631522531891517437135640592665619349432857227792009031869502971997275066710980129817420738625855283150575199863717559005970822534821522570598862622756500636734052670406472070554027423854346196257756685721239534723755109438284933764153297567888748732201823787209893638451450161113321705262913250546327238635134052784225997795979391454581936428113824606210649681676169438100179723775011278269747376175980416291658938380823770362577904498754343888606591538226821367576087749103371375700202847172185622095321351466493868716271720283983578692251538982646395203630187541764716288988434881001696998227649898892077583076232864262491480948999883161175908538218714610761058866539139864079318063881489497142860559125188337673958265490396553628067235142750566039196471681306552732144262968091462870024131191863170757120686595276958394134175260506771798806948437226999615066837625492888600099140571817688717849726332212552148494398069762219504543240882195015742668038725589520364327132407353502087535788642917657814262214626951099776444185798667728236446112157539450083838286992520679611457896245321825768548951829795231613739858516212239378220457209867639566515742497342781426742510649961702660430534735165937581812721721622202569339678205097358409014161966576694508882486836568967126207816009570275657399784276757119678047576284884758323724781924391872743839352067845192890161129104984690333971599317519262274352059615637604963239256008275144344927887904849388668087137873020075940079000317982457605630485215315365385983693594144790214480297611882370258018339085340945143419169838108266962630247091508124961511508434793256318179118309523695727861953765407534149045524236962089599546590030400350721158359974665911712928155599293569059419667715301033974515540402956612057361736903205324013516712250126987994051779882140949967177816637276587208919748003614771013252131374502668121755027189864968235449504300007862396385678206478559106490609831983724189125141866763943921293665632148967956579210517180964141014403801083124920308156684632788166509587922841556430811912388190882395406242548498591948843993477411076647162018163675557540728233852134145784193491689764970931041440080086104491793136300080768962483653055140645488577335677526752695704722605490945600477714521664794482691760570785148893086242849620284791634374898818878068875547289109399962659380763934751677363847394200333713263444012784249711984705898113691360734099436041856104550525585507743391308969811044150750872065054957263932992136383588255748954789203590013729831838976561798922762446066465943448915278047811599210925547523631204713544817440519408471445210082967058886211879594663280861207189280810863706382127190177070662273807968298403064502486720161110067561331543214007306644207883934541763292868406551913762533386752257356887503925841049121490135758611051407792346847628307146566128198203003707498157098092694821928419089932465193522510735090559349676728615562727566263432645608081873482093233073149150140721777760882313809401584112623515112128582742618908697212084403609605142540070780623682477893075482308637428374960297776686269449127113169619219911502318433028073309679338208627209452606309071940291620434483388623554816077456255751558266525851935991733115635176523174498901975666421801131352510383256660866243834775373191563333793882398752622485920415960893089615478910864768051954410495349846145218864128856954469671988469807155692275478431478898669086354424204426788906995551540205760255840679781336075862520858983574221477286675534088950769895362188619508794328017632479664699332975634936819246649108570450463392388671570192823309194864929636660257552688036011399959113305606864632194796490176040705810415905162359735661655778484480695378292972705584782859727554996818861693490988165975374399931227916911883510516677683171346063344472239760595826663423177667391779022272245572404415618931183983423805137673159624961332589595692503052052912241495006280782494706162261103964632441113213504827640341055596912439275990307487357239143084815592535735725843035573911563550371822080311968022521798938713962827106267047948810664390445534420909521152406375500546950304600288332408646817673279907833584199822939675944981882217277761194870060073798576344427341130796133736810575918087454148584974417225591956261409698349676531049544782178837740532200759260413546516517345575290870902925032228692793525300942516338916735262225630079478762697911968943469381429585905099809918710474548356870292693055252109847204614266449263149009393942135915738066668371368405074714626222014177601081612139788437788496420309278079551283163729460920678849736838355174741996667717681054428460695424081925593719845053862371875200367903812669836691138785839682413037077638000568939880296373408126118580309887042899689707575229498797536048487966811350202692340068734993454400952498846257699979484504308529669940684666458855805353352279210536859632418671022453983528392338780184370999249748302995373463928800820107216880906583513611396364782563219690844685491934091255332073584158670702161593385754357724789099036422356260200288393886884482991350696042283203223729186816555597255016443251181766937668598663614077619494202095856519381510357259637946852760585032983652133900333070646061782348279002531376230616409422269301010883228129311792563312143150999880979027597252995638121058045754447870307381087735060045839245794443558375120187802233696503425080359298843259428644437607239467636686585512905016979791278330772428520773836179918854355208100093640774307633637517808383605715627553765628233726520853783158756689401414672216222462691661464162703172716284551556387081653141608508171695471230689959901700931445973979509725516875988000760085183283057339103037942937852585657776150269370401338673187697183835830303948787261985521272587350344817010974451521439244132931235437962742207850578504710815469552399046654705463598787831716167653328809728391277293314390139240778177417968990536909002094691633117352686366849468912917899295473408590485909225968615742737499058358917996603939695146931015647585485706264113389850710306331900943259013763552452946851429461863060175270280925802451892682900481513007674794970594048016027851259734348034923138558151299138922002056236645131818096107402349607635510110652612709440462678563026814326606027607629031007981087620383804751565562052321624926755284045058240438058172554549795125049879290584899915610827447859965871266774267160672098612785705650187902718712061382410476366174828926960794650419690760484183631474274560861479628812838925547195153670347997088261296419317848490759963217491046887364358086984773602391460108840562229162690234762759497868360550878350916815263919934383120903233391436723461226599983704964474268052559142559234886960345304380312775059671711339007776844025575522209352655923238401213040557142643509630937541696993421414749778132933511424498320708674337124853536327909915494851160554570468491860563006632476528608643187248612490424228124694724702965384224443222364315102282186918455996119088989915120404184680116439115344667128307526705292146657626196210506381884987333501490381955282677075186796885248344291123088646552718492388077767069123203008027216159117764138209853832731527288154845635776989075666808485894519273927677127803481316173745291251193552969305047655022200342707801476274370122390987040676266716130359488752489245393135370222412320920482484597966774254232770609537503800619289125326796004883499439884959445059539068708176772199319111491127252817227614990130622926757069218869513069510828432691543897866833029618562091668505766847670802236312693582766432869956314147706406541319263705820535866383318020896743827446450965470448235222947300681681634395259855366156224748981499249267370358046454846069785086355820812560353353364740629903460742097912410851952667214100029701318342185146933922225417989845776520829069432568129353147720857630934449980601195217075932671972152631831976450558606132354597267140186083502450445993769613074271027671435685398347874354719797785777948633432187996748373219124240772276205131052517197133662391349013114615037736903568280987663099461967805346080727647187608932698684324604029810406012264824614547388145232220650842257039275839220931741045174254601176018745549292662112493736659773305545100471925897139619814619985309678890510733967152497361120265960456898661165558514858627779041571675989110508884217276274042348781240705662619812027508352706208067104988549113323446165331154157931380631898141631015174583825390009593038079842762296212070730347043926476605709876109376768608364590572810783075232393466012107472048246218702699825804153524565728038409894787518190957262271709257274446043074989488459392723495131511884162317815541487588647413873254190837161244282454099584781153186051960798035115299987893318181853525846088309288161748113664797780878731944895713528467518140108676490667650402785632600124917966800821462763572621323989793244856821549056280534094487234065452829563154158920243757827103035738509453058745496885803429426185975596471508360284659914447105356087004135744621587461223199591041136464944923515765663336580863131255344425793376710566149718671544676298701491214438926682956870749100411259070265700693222769975006300874360898367306423343732101890028788282579850276460664949745957705837699586150087982373023862848449775689073380648783386058827639399619528563888377775270959148593630531445514741675896689158125298432176647262561671424727274093854956095015139860131188990314985825650003610521858681838874811235567074255845287532548904417479122378442601973956486655739593481359164937393988960483298038980148879111532318905434866475620805463820877882863845689007824385244895435334657641438129483993266111218113981315724794245997012827574066586635326686210160445462921564258026454664772272312725176547754997251486235815748406759359877845293675406735013368695871992405534933767925984049736734336546065988499460766413135587911981528855206052583061565606225984806172923126226571499459901559148989568744950546473778027500161178252056617122204331687453170564308323907446745949237335057802540350781236101876490858802867338553034906606944527670663609473944474998377759262153768231753302491461056025735965635684525862607607201033577022883868096563557437212713295969630195503216357143167979428456227093591370922098768792090555247561013016477318974374223804632544355982071932517134878208394511045543126690446214738436694463264567033690617095315238137565571502227250203229473064372657731275742141333158946766957198963967132569929305870008268944373696617868541766848283240902777202992239165783236547786691472814880754114223090975232764212872704897979314846286428377713127613392660020501707796154836948883233896011723745224512874602871462345145131889723435324671727768764653995037081213837010832755164431351562474385110168510780183718417160453691731392388422260623976080660304155450835806630392880574324299853976072642838359899670629663337564621300325421234157283799753258890610960396002370840970816623527584133421493436793083921802969392599808045636280030118198479782160707494864622256195866473007535425875172229751750755862915908905652650678040194547808055445897421245506430140068571326350765406525231764330168197368931592704732977746674824419838525151971775018572723441846285525417338202463867750651941406476246078951658817047541883723456833009182947795916569962190072977188471562866065501835830171572178852237155924003843134674114756217406489878075851281062101952914314736413016485976233254650373500482974943819265477863588866495697415315415608414615267351574177774829000618927898278901931826219355494599020992242442413863657363956494548746582802962324108413166904726911636470875066266555839623208813306676948845944088743553290263182576961815234951722907561892811062727732456178686921940677647854744463623914402853177735057271757764624707739110284698053942728100370259433081945487032352414505040678942827938079370526725148016413106741069521632719041889623110509387080042618183045786085463380481066668575308621973807530558351922248660774843975491534630018092821491700726025858892166353530119396398984153726924062506276202356445353234433247629508768236442029892817448981130548303114704364993011786531735929643213335640468077273657657082944013292183148194509066469566085307147932281013637319511784102151474047572053108297903355987937594748302906842896479610798162960644681112171906251207182793363862459072930952316463653283042321324806004941871332568348209175527902475433655081411415985564789313479775578959355297875270922276436341488203642137306687846238635662030780773112609163619701259041264287250870140246816462853910503788847402501605072096183071041282417257940970690308274581543368445081240106341640782143162567155046409667108654646640028964738343303401495483727934145976212455781875729171882632874907549378030527810521598129926769275113512227627539296697101719539047212720016182444147694350003316491699460494651866569767451068854460399378423238247714097561236682671440469018662002052175990384004742323097658426885900545668951435386087937435975722933744304853273132382581093944898450542676074599543523357853324024783705024804697405795133601739239288955880589485041788055280861905159630452856545310439076585742579671829381436622572337047161630901234309710786073840371136958938240199287566492283550934670273968275667493872021035767493364165524661649757538548816161095840072026680382456816681732080339517753312503212081881400934834188764429194615707457441418981924375357574342879887804048487806344681373183983409133651073976348451206405974114182024456446926302288460541729765291533097409502865798753968418749810771863073986704155157574006563025477076243032109998073882745976736484661459110706897629244108551540309337693806026143581165456400989715677894184142237483159948092371148019569581028162588438762919638300767198154718437416026506762073122009124433055776323286412511867612495117682216273738851564826974310229183434316886105488838576626875732215037493997485780271306226623080038749533847452560520757175979831861908773430483295743253947606259473971991960884750357667753712940618759239537590860216508084747905952850484894113781372268420132116407331909793530210537862622746768512856376738223335968093612096458022711579710905801101095634422207878283570306501097709847101793824790465253669297083620650394329840851236596411315156947108837398969752868287683516660613589867101346063333233315014782117625632089068035102271554454702136276794318902221698490013178248408784303349722203414934138296835470640119047309542398075726312195260972094204737804164200976845643209213190122908965978478184204155247389150946006801117559584299387005009816018125590802821408603878502169720008768657352433125817661612606937898333847370498683260606516521319211272328377713953439937251647902437568340559045556180283412630998747218101586665050276743393275823958649059796864615114371592478081347171414698303519697015645910927958283021961999578927772741821725394087237288293625360981576680008290457854538124436487474396360237112593495446105571153555421168974373734790247414846974285843153759651681908670851990859794766362128986896222119190322837542684296849878794940980783515216250203349690194650046196273149339638231102381041105120262883555757782925378206819518250443448417573817443540604742710488045519294275363513333020590990049093458823316700252463974312677931646084154012675353226059132349661972833873488058949015486201131430507633735981975480743802120373585973337453713291482139709299401661309599586767848331745712211335639276745537362553710733533580511852715569341436930415764130318830905225150801006978667744409325342789581260275590550351518932589829056957470916087374974233140395163838963634224098122101936113127377732018377459069490840756818135319921857804887801416914911904725088803116808431996712415876420596463520962443449497465803029529721319843251911330542211437812232634279380098051974411469034117843346805256592727339889124882314580116451703412587592504088159957135066884628376927539934417477077665393642804949998918017673128446806731147452256340657963098002938923040693188662664532799383898944185024855104927591120794686441165351956378842562332861277680593398846018628398845621798144067945313105647644747271276214372570833266204629802015681783341775719769956225762396039058065556779122766148135940143884993300237452361785943696330339288101490539865727806220250379750948289440896571492400930040823902399809023403631228653870436206061166428988022264053187903293122229153354962708161541128517850874537780143483410378876344637955821887140045064930219526054821010291825668886806845428138177595787186197646886638806376376642125585454400986538113674155489600270089840992345750427043457021200705103791676356581514747772635555858461580818540267834057439735446115298279546824891146860928806638833541619901274981713788690792703365616182061365660421130688867132939213649175030716934794311755318265144651790307055951816468297600815774956725331675915838364470827868142638872193866027636823245528470003875128683089633262293338742643093759332912916041196727206850199484649853841557287205758515682691958283560237788040518101048690080914130696117442323972934691989667399662201754856360754981834028132236011115205373565460972513479919550144362553973447604792715003441778387698649968031671473575636312026430225167084465653612056178343023012497679405768183097794087257784658822115644675096564847852520338279500562872324608264296313008678995459921584060561190246372697467282676999546938965270600361123741307451015007342631921996148435273915305886811792510652313563118636809154429020485869537049690877976043225843805809149914958260214081926850718976702176545647298257829286968695016400269169003147592111056185790205986002146238606579215105350790552787434549893033291484984830191103703864137396743493218668827170223887509643036513399568382337096690458484935417051123203428958113839792660868799813770990346317832293792058621350985177229098076194365340302354212092835096751842508380895462897660833577510910380190927769275192028627221022728266811598322272561825800786968803276729999741274217710747236782561147428150900334124520915437150397598481958519881979625401831416792194763917974139313951821895672358938265495883115921266906074583595456527176473122960763317223454649899580867306389043500389553483036137805794470614294465983229720686837778783072784402575329724351260741156294667029371605653179956326369496772327873295752469736835590694964201509923714254672629779232239989679891457524693015975185159697082725197870923397591240810032771029917106803660674576169748381251585039159910457325935181666625719020902163793002903841444245632177666053101692459311198361256164280341020110282163537732401758654370096127778099596472761563537412119581755001647079527549629153259970936090433527839931091650460893484853530059087070169091381453784533275778646130139838159501362523513627819450994093856039954839162694625796959666413787923857908821526549473070046494052799854736490076547982733280763481344818890937037070985787774759267320306942790917608917919125438635507352657363435720342436306114337749795185508721977034114957431288298815838239500050827490422338050061800903273784668488561158507941066937862232410875183133840021367809060913406344655511133641586690046074437807054605299022985139326904321618337827059462766231547116084904741725400539385033132420044989949238640887215060095367689966185728962962536743564583069711723276202066132278954379990812590422677664720064853885082937068438550822372837542454383131238773518992487714169085856873878448205595062408509990968593842628682442873057577007304664952500926881272987379629055801745691018547847632966645322236314741649717546482008836865713041447540713061828970795897143822231753788523408738573788575676477830990364779562124325896408990539473677598715143826677091096208187071185626953434725102910869005123957440493649698770724449264243445323764456664479646220585734428997881220938663785850043282815584456097529631682408739530987258599027607001291461224223459994320293867333823893347456832228187690514060563006601746942765834271429216379112703913980995414521042978052879231591020693812979171127552095997261473508957525240441963619928667010753697279263345224860795268033142076913841019837284070338294242593156011529578681848427435115763300540015752016198101559466860837665680954629223906116106185517659684281729610475227608031669359565775957348377795383678380993652273057958278180522511880460033147131994550709252513137571752047555390831508491519828470606013952612076213423263565785541281615985934970221217738551833642677133944121310165006968849516732589589909603910327534547836038127635170944343770385782040204743099899688434755310546856253844223215614508547388253037597205541068817740018716980223022342117697227292311374716553850622055374332523488278050866850900903837543287635049421514932259561872311460683397073661017509155209160914710060119296404012081611449656834184016145755098859875833756735759760244732796036216019569082912664979757179394424200843626827843875559617495673469559911992316724870499717326156366546023729715897461733115026261270073850855933453104801791948880331763955816757824582499652438284221903564472823430695974362445797592999596366046756104548444905316451743865559274122009188409076971766884477990933985683060793659264818515166354100080783789259540685816724889349925104372428643958633742443106977943373102290631128754058832896384743706894046636206008841017446608742199411401491437047132245061465660099905096524278858337068915130347538040165004436125670270123247925789461942328518137925262377430801051031004039577479149893742409328550822203311500427113452930709672501350423227521187352696231842096980014558618177035167229613927106184849961474347232888024167896886608673470480054441314159687947701292128082351455878185698227576086472958941011194395937166775798928636878483570310341364701096823105965247429154771050138456561978289410487478931910604473215434431834958900729616811403386205337333630381397092124613114463724088025429791372203323288383463957336660335477943087780173345183288635358916786593498800272196789284424544292345882172920018797554750532979162639252582974471761133461153572357320006940832074839907908813532100213601642173673346392585115312430999824092878602536531987560164425862956394884522675110454915944918954215056496162787260356880586311839603884263965397314224361464261756174501128752326825003102853952937320790049581488025957201284303160796215637375703012191725261565927030150856351320567988597402549416127590245336791244402163136789959536079497169249415155570606875028731417671929350250266597058133308800236680503881815529857346376282617141254764771970408208027033967190706726779718980699726979579635968934624775589869298399153404029992061653720349624320622254859588817221963079035377685307852390977554411991816125033932841999821797865240451925736919180746891925237601303799550596184544006300393324696287747870638928346051566951437538221388581296790204800461474068584647221905890933861343847324051879274394665654253649913109487285364205332051961049324577057703293468294928971884624982379041051979563743325299379092803571981521693302016187735374892649148185160946029102458263826611647638759303916267053369697567468310525132573790154683902496857125541297686507049108662963220084029579667126479338123683141102176578256253937924639353956013887739589470144655298770355097902280671637311090097684777862813840619118334678545557744448981148504095448049615198525514254696754616966515230534078820489673165629118113387640070084380036607254894407712691414374062435290902024422914507369369175729303272665202254016766996709762436044671678202655321526880546828763347954971071909390080274404267650397993890114312369652826911930410848345798211906631055458744122247535634664767923480850499500892762074009704708011236693896346535388732286825784351834818091814553763345967862802625130799644053969626627643609614826879980626097915462815942424788607495785762244314943726075547360442839857900654604638055309543574505917724831473458165617420504023043730213579160791582077780059985419554178041267148011637171839113792830477516551752913200851292702377404905270344740530065023476795545534163519695797207993980479402610286334020225132480079582678740103167891117341848061189906936625983730341496954952489681050094653989087767276212755932086550588331193314291226056274276973257227369858644080345739065130950894854050905826882993265104138157058507306072912634827402723898918737074638823189111611884611708219805988849613645287653462273281823491740432899155663839067842692505044393842309839303914459354084096825870698099401891985329812528567063647010691430509224184072369121718358778267775449706791922530004485300514577939768396833302640590096696416735904168303381906840857590618892591585796235573612690534956155230407389764059680508333322277476521977729432071616704449431156184407962955385807775118242217983453714659781025824353420082176188372044908555536140641136063290718541819095948209435783095701724891768915396251213708704403249255206216888140542422821735915153498929265732171472182566425684722665119725280332147869667926161052504516731710734988619664051335231828796291666976866256483964053259299754193500042520608349856276238845150142773050365715452260983328954732518185997049254167091844403575280744830925363673799982847430629529620862200771288150731716328482601836549241137798853619633615604355451424765781287090413303321951151443458341895675176702565502821272742027350872314108680735224760956658923093764742095350696441183661605369168855043344419695518445248059604283909053362933408256728041843237516925060648317305452266470187517836403580053012403434046946966372563853235871212142118753184545675610391209425838839601804106420393540666011508765336191778782226645214761774457602477056856233254089020509942824817441367875710257237760763580279324593489890449503659576279132877684703730381022472892836058936770611746572854153915916032556928889152140784739345242281534209385452724845392760543339477936430143083335073640902993680361375293577377632250549765092911594327297609575831259046090501443529788612382402583815662985927947105232854913239349467108854653153637420260111960301817148310713826523150794637869449758413648912461823755514557341513768471253928515659524846976752177090903461188191862983160943642202480065513558516711426265764449119991454683886002611278503661612730409372127552653401231116806542528221549184973680606946404796821623942951467885856498975026897853975281937639150821377817630573265124285973720440684281496767245188795547234534685552715265661936630815171952521453128801199105501469915681156705363121116433248780984139737895421211399574748038156446700107667409250464324205165332102587573259493309180952352735939285338426940092710247424284310835522715960810120157739060651539870858409800529792575907611912275374137957909601012244296478226865965264694112113095070402609787025702310081100610358638539039640063416775495794270565708529055050151605613983147929062521869083915849963429638717307271599798187404390568879004048434970639247390035497351591402834351754259955767794726559734585831327402306658148518806031778381664498801356794549951526223631769413184360932633505213006805234412454506904278536732783098132710963290285879999667332735159952925240726435011158626769414611287901138678719278824233867202556381477194466003707424412380007386242790183900131822920393843681294547396168950928972918765353358562477619816078462776346415589380046113838977109380156107518670705801858665750269026327939424289789002546545259920206141917305273849370824205609152376160127193649851361626210108464274579145468493367982676171611471591374419026770155531303208029635821976443971505619873065119400414279986567331534018678574686790824750327681707001575709776857007185295117385943781837103411920023264577766934901966609281928212806636798522471436468208671145582218569146172439479456769844630645862290283590748742312972766441843984726119834609312795957270730859527474617458324513404192539555575522768832967628001897369874633445282885087116480896619872324028420265665945719987468696202877018998694343346877344407680540987384977354530437473241733768286618386211842161533038405462115009143527153480954480394517756458131046835875233331431859867388108024971553811839408249515027650320144563911616283756146955567769982121082889322376797403516708808986553532241672304187164241644989934614866443684733244945315871059493594972660290572991427174725992916032648450896169928263892738489117524590725824191643760563734665291726870565832659818864319398379464862793995613550384949117551217097987485157097106137382739106556543347899938699554660002307716351801577734855100960067853046207531121148858975756098645315435752577136281588895560166838861921733859961595114154768476507890828219759263496337636325157884703459295963325722743439547985365456304165605130193782472739105196629107088555300305863383335892679481556192875623015935600209977264587102738540415593600291544706227038695168863379500519926325507347283407919501722219267730326671138643646399447886976802678065856888048044006377808079882668700201544198373722566048740271360672944660157466304683722274142808730397217130378050157379626009251315229052803525454382090296276920506351251238930272439480360563638759321489858865226764113471918788615694612267302769546092945252822950021088247383279489982157703475653965747210509612016257053097328145448375342395753159201886321958613799216764442884931086330969487712984258674708267211576593558888711550096277133002916245260636326119207301591414842285133555293841959408411078366591385525955414845755298349885514964121417058646908201659524021360299298867068994573985813102135633598237807801311569188793177860248995628125418242447170888937374877097717815882892213037435498644057402866084891100883984911576082778817765604395928696405773591224296336379916383956273526030816248849206740567469308704603575477060418678036222326654256435078753487664367335062757751222713947979716563403075905892691496463875538390870372313886256264173870955787636146832340706790129212137033861535928489809240254346564178111678270717320769612121649989129007892694191609319741339369471022318982996624773149339402271648604620418220499884070051194938509026222638190366586779555476111716667032947613593298941173231510672744212532108523522627986488293903495043671239055846238857120895596605433925791004555002147759075552196567235589653066098234209291468233171650164151946475404906271378475806154414674069436632063233216633136101109124474192257383133025991184681680438947691575310159130857607135156557536117336005055474600778741539929369686666791999285326452084008494615035492458795129445189670677032837459386829873040930312310494549139800272587333916241366851358388826020316495747862679255995129928751911239741385791367685516444668462913369998732082531990979815266993003058820731974949238217586522842977413701656845920828854176323176068172017848416990103041535290348366720296310881375640450448891724828295290204729790521363280568342108945740129805859998351483945483048872959684477943550969439469450662909225064105267417786869348994214448911009757902053972140620314884644617918493205826504657603826594766218492471596825246327695880160999847129871170420316113424769181952510491824982970419015665423826157415057325947149890045064885286800050408020374907152817123211178310878986996928804502952494119452375378223819493953199043403840976319818607202355537607739868566801690016069673312494021475178601708420397594776268009514314007927540046808793841563915359608893038552327816764332221417654239538464637144374226555790473260571947865440990406535149468653880443750550328936163426247215017333733600965603167336935379024398766181876344339815506885018716296399583615717045050924656337783336501933267437126308375450594045984465082256260147959007960386582966411145747416534813420725579178340113704851286605593778971948993232468976847860366224706572913519156566753269266309639364597640254326456778572152785100634373224729363691398714200506122018205473010665891776482860242526802505511486930039792044036450077809609122800416984966156174821690527722979887768243164380236758991580854860962005924341166610124717931768256690508807077943358707746415755552911096628203097822903568872689166841982664455999033882897878027448268600020247886172366048198167036981560954473367730352748911949150129993654015378538306397668727709842946545293593597338925105581446457704540544000862946888482287760141287410638105969282023063612855217199156150191715821321310413692176006986677558680731266412167380772972018006024084295520816488912276709211556952518790996074253278419872992863761416366508822851255058838402600094126017394763528892677891689181998877510653974344324649191828969259188241905843538238777956539868918011961993788203572707826169838996358760856692380591349821711226447519780342073543192228993309059222429080211338794901466297268869788316790940147010882529395359079859337559279084168732824144000854146415680753260713193624478170816563481906345230641801324003647483734346654525664891912312357641421902955455483981018856877224349012588315011983958814022020063109915783624905840842783129437094588136271821648238525564182791407962928054959032673333096342991179875887247052908364736067261012637795907593305470525758878864968392100086088326392162362005636532745146724235008176118296133291769955261341079213914862312877978678118417386404976901574348476642668169052778140892967170268166479169842866078459072735013364580383907935605887708768265319018907630028282340501511095429137943626433595442146272252673249208540996365984049940286589358943375291167699964371972068535947330440165878211058900152529598744881399010213958951649568585069673362048081283276296724055661432114269195191191686074373587198516549775293996661171411025302252566815788553174853542890868013212271250180792155204283415208694389212461196568631529764744583946149194516233931884048729535272547569170674100545198829785026287612655281604907764430904986167201912058463050495191971176488786906765027432197448209836828638404213626001678089225960194064299936782312337106300489310267583881874031051612045004291751263730345262980776669157242704167091416518695120616123470379560821832630167119866477469106820751322502612720387646261374971589015298258093183832392015393279012670558854816391766187338206256503714857341023755101236462296434619313095021491555002620672151330107308262518812618842519745450515493848028064497202111255088946862382856986052983604095460533455784321189231484082390643534814578670249429829779318202537918455912185645676433455435726117824396230138950564536444254405791947366395930853830028412130291447865781719745718740411378717486038092667310535183630023681523195570581749846833316954963543314530624457601460745058377511484985566260060233013516134672396086453098461799087706659580263013953026106282943082016511183016188898676457391668692848067473740508440635891127025570669198492263861673743139974388571547811954568031108786090630650564196493387701705799325009674207624608729249269640969109682603949404338151202569561251873550930676480856690744608650508929998041867048980120628540773488994298557475435723792360492749188212654786604720042204424407993103067090790785496999914230869961624519646523565821014879905623048187441485931128451495717483403988601371426457135011717767002245077007877549291408873150765760577925408967558995388109814513101156992091666571770575515444539189695597309643155132421838301418031731279715440165404262017678565160312512326061734071698916698230566453571037037069403837172136414974882675525111457817933707736391188470581964701368146623029981667213407518093601916204805303171428104954471126351250723412876060305898406277310368172629322919610827408282902973513937511428320890872487210170663799738363416709104146611876839336542084352933315197584106199015612103802126669570794470285678678777214445561610616299215332348244659644945117740549741030336264751763217759560443648108046572309388945411237839735849613537001880572348106855214377596854957301378549512769541253194434644751818309017562299716199075955824839908379062895899386267995839108363041857373281945529482332949196947909835425253257296641141658415744283570544702349608731401914395796100853254246398481280941367179506925119452306251614361275908422773950934716702871821081437045319334860607097054350689421540838011151322243439672751977414285109268137952067233513241616280925598869026267692826004106354480966277168250061786553557170068035005012160881663229241382867390864069615957467928309230942081630453760988832387418358968108318440164636039440150971105112885793413506223728325962668268010336957218907389963418099523904986515885279107725322210908153442539990111630873969504236280939423512937347848254689099849271436975018961804075230870016254943971701522931845718171385266774201698452936784134448739444915975191361648931070107961105988038796391404632049138482995626147318489257085069643630897820716370975746441517581303996302903213326619126526632282261388780309507078489141218618039274750825104320299856188957648510186445094713157654438747041439867613775114578284771186577473259676291095795741517553657971755967002983298915637703714910964681993203204848129112321689144070320162133376167762770540251879113843055849650114136991453749097445708735699137612402257010856687979824607329150033927439136180481932377747227916061551515967140520088383332944942196480562110329213879325072048371643017035805619090453011373313204984687045394062398614557490782711211565575176471695395817237479098871925620700811922611688941305858022881149014704348642648907772810441804360645752545752631436701562772225715921848375343748675126271662781499020827298329443838396746971154004999092881826167836651041865435742699966065403565981724319738069993371254863249753950053852816613700694189007120357815361183865785524513209449793579962979508799494687489251018309778393000576980083240656829194124096282254482838066396201357297258769190814905518384518047738140692602719468234807384063918624674066923448682199572272992391597868729303334179073306999407802759043886641574413690068163106620219471119723470164441609255304901265079229393326860100221350254630642015253347156230629156706852428060087793653227148666887355591042373678234081142738753426008370586181891250955860653411764222911333268752590477304726176773092770049037643834292626806661669167002614133374853030499569559985387739131893428839155203377567309060339164609048370610554389480335924325463409044731518123718400390483478525482763413511246896034785525077983627748141119286040630700195548750108425974060352917538948528991584782502940511196764449621094106731103282220644631639986783686417300874951508891527164324497636170762368786153394314722499486725781301207961144291091160695237295425057476751463578333140530147679869967526560580904007888568907734426340111809395511628090125412420397576924830753766524787284746864399307699621022804390694053375836341780755779879234685573749401803651573373814152563139196868163066676294808698094879750151801132054111112940772164252559922964404226477925109766570179645802709683572140145077286630529664339998860849636384767279460465548287447819487479083815382854918667608962061720474878503579558525146378384201760998763096717461848691653289739519337391703428617812384141564202722159465663878265456922649651864441946718982908410451532148663987770875489823586451010284915953297484299582517953230287612530042406121421153249616168784411181141559727467122334183505090203933604463933842409218079616674773014024121148839681394753964168754962147867622031481363251877201592208060089910892016560634547182624709176236370852093330881059395117944354486036772711793970534726669902902631598959698153269047930455520837305155238482871137321807808364323885243432707352802811509103149795792706696928620263840785985520241342241339610321864242403913725610883022298297919763899760780109897907662412441451339649744022808625305031735731446965400718693814032703173969635712814005932462482841931603708929765807650125086324671249482447254510241083743380393103306175372492074531065411936324647787954092038881476584212626006307072614184160569885896483355272921189599619665699751772047475012545472385988071697046309410948560634437235145394321604259497132549718538217098078998279511406739189217065022446505111524550601696277272613285811920738120522796522836487374622733494108770240043546786284753269392018018675523923560772117791895400369023457830046421494836875633501900362939363852142843268202736383598957993404760602480332479705532852773271923158830308820669698084182485370915768284166653253216824131288106289322706222027147740176195649758244646997068341100843679262529079532424182478153603004342466196856425598644084094104721889308320710782029364379098900643402534234605275910968930059545543097237450866938432795108991712527582539077135623060842880999744610603631618547232117103116653537882756476523461803405596121813084471767201271601656575385353427133136840782465940231410744310191325518153684767739442513686131728935667261561196934603136400161366639982532220045905588280672137713757906606937727652797175406725724893542183266812064679454556407267660254734432762042651478373828510990945350930419187152865297602523401642926134389145415826326812760545587305507560524208528715266601807938609877736755611854231189586200164695556895440467384967347918422340558240452298711401709205050326206594032114620201433904009276694709983453382196012834268608231188423979839147563458336210479520125650161140514762645929739842056505347515838900575331216110540510139681018036705590723777381173133140622251894143717349364050003667228437239672527859218845695658079139344754003203013492317132019228971812083289235933143458604649792526883917285233089650269564494917119094401546812397264477891384435459031895366282484336133622411942783039568537386853727289486944983104171355362449435400233882334097784634440392048271608900532216654447237674309183506835259791655805184290067427304374110488236626670063417502959116020072328437959026382901558584856036044923089017036402085628722104298392407513529180743705200203198372383493417465568649377414660204146856029114049402228298173164399738259132448339832205735312191232665390798891734805823035018630762561514095720849373672200216823280326303030884758401452139116407641314496813479569102313788052395449318748465610802793681389281109122144152060767691924878691246180265192316770645997136169405434729703943389513316535860460637663868605091435387835343110165285576720705684667961947818785119063733830739869954295830685187895965835969932592954769983336744433708946332087859135576589827893130027505429408934234795684655611991643067857171970867396130921451756833532552325075557126150602407310496284041652063052181269679432102419932863681025335960820748138455811033664623686084446840647311291799951663317866451855176076717164484219566789290555482295726015021292813557173428220553358720106827902632098501967658447109616083975840042191866579418320382032653299942447626919957734552556601860161004535515866112649952644138268412039781738012658403205698894421588398040531202032128142118037165637873671272012102196641973439996020389543778604908490872478563854784954281701752524323348544671966798265512820445727932042711976472618486404527648715576226535362163768860936803294085206548662625694667209092899163263784502556318724694094411289855289974149823233403767104872495049982678463101148594655514125061658570810940946785139767628887980488796211555553607811692571474069717769131265760094569408808110338825719296819113546959188378357717138717597315843111133989143609531615351018533406207403834670398298623323636228961267527936496158036053599573224890800265835152169015246979118777737981766290694035377483619235778518472218838471660808043328376546780841072016781665189599138634580014476617270683090231207870146634834299429114659462501013719674909036877888941267954882815866225652751088170335995302633535706994114602303382507971476228655338857893086682376561807166590065386465071134600084205237546512416198499879641539889587916743443944164221115170180733208228939025519804071759423230799072562802572674215457006650146702906388510068913252701446634603880474675870516530752123947425078012165543797167272417467766400596985965996719644376185863107442504907574960267310796297971428294205591292008343378073479255546043964027220769477498446741551135195292830028552328389071397216380085895359453355426025738860839432049578621572936283690752541391209654414700481592418191685982621934458147022022569971025411593345245698480862696603001898175583310651147255958435792769687606292207156106931383515687393505880939464929580446628053505390661820933352424905548143585010387692706869604140075759380340736226920730280775859119789695807407196736742091411147264661066825918132084913197173418491715075181536270169299498628396520541899456378545368355037285202591538511004856544602730782598006053029693297131955521110348083764183929407812452685055703062235884301969573986254760350075457045647795576203668405415090013724290766678560872423216922822170988059356383077777716087730485372660566905826257149663872958221081834083179847797832581077279639736296762667127534066605240989188972965201505399682777857737745514208933550424941512364976092364836359381044866770531967490225653985474421104804961789880329044524370829427041263432024333185343642917537276773227114549758921737428532339618748316223599332482031710906170831058607164424175682860698541947263768271030455704606242440388577338164163368538038164086810184536446567123679148460019943212877686532301121065094953120512915165175274007015674922105196910698961267309229129296221335129833136317667443855410678589985998751899616762771439198152752330130802255280874524556567508030789292256529249741280591059763101360800653605976090703081692618630055087449124366140131818696016723539459388558119607144270651979701441703460044073866581340878701757862877047043414742873305973615899427540141710075400305198926819321956898396837696802804283791435099752938995756967202768127066327494151032484577161994785993790061778450820087940913665850236697093237364121742359645872255900357466393084891278015779224454796846873123215449410895357158666535993478157645962503352113595238718594657709648052158214048643040185613195776187555756837307732460109448614404139121693070449341046108274640962747740153221983571367855573665885896858860520396969126281596407067251517473818272286559887941428128040954400538270634156924244309057870580886319549721700686534426701045260365489102902400723884787184196318469931485121704266424249179810671078471202900282084106309317221480599755231340566953083292058231369268139476666782470331665807965417778613894300610546749559681068164686318542296646724291809864345934546598816406609299870788094560582495307561514364296369006598107296814022508162039946020971676484274321600753102499984919534884538638847736143238847004419571914097941050840531210622838629291355659152279029134257476374137877851258497182273810321710429974651602066862913726381109084881769968880032886815014981581117418928635101214489154822957514174640141644208533251755865210031848469455980548527881626995482103033838091599051805633386472935196959442133881533731028483508884105754057342211338275294497765968400862540598308024774948929959136169301882019518890604900999537846724678642577202762753819826224243622827655762988821992378942531142659141668916190713281299746440648381849519327934061172686743236886275009665764362698676123579290680885731547735579493719053951624313760153458915587955888981533496773357319735970987520583942780123708786761919376273022714262640169884082987007484303092910439412812806189555740405131683746115820597724899161826949888985830000319749734395795204482650536111362636452370862140199264397862543196421699086120989231709837728560406729895414249338080489237161737013729030566720347119701746105887843294598769876283215017164531272102972257427313128142831614779111088733968669580411128076598196988133379317442673484037517503526114884047073120492240824507721309397633532911127652804999663442166873582988924661691216348219273746757754694808395767043713932283665262870893780675652739183792024042672158790884915947584071841371015111253310494475112625597180695665371247424888201502723708748592302787646602622955139973570818834917991143888549284985607948239890670261502019240458398137835260193241712196984837141379280860050258098272832160476533563938624254657123088609326944867167005093630753777600330262092254805351039639082764895000483940670676441439800382963306657700871862135532741783030467572050069189655078408859544220041951206801758175007439925295349196578261960200290777734121770396052681708668625402911273196197798721283577200072103114249135063652994866805360597604042159749580961418997648021533936777428942781578106777868821821458318659474475107152163894961704851319010993941107749585605558954874297557005395803049960681086468595158416765912496978928085539541345251418921751350982389292839527863651744692170599437665665460032603953243816972472445722088915207345470020564951244869623802890435794570545141057989141888877517140572609397783396483278267746234489904433469738842208140884060312522776533103768865703747831557878299248446011904395248654675528203322843786443513508720928033829548397240033846030827381732251973465266756646635996342454798749860178549442004158579814658320471441532559246995201631352081115097922616364738649455317837466950358137001563402571451282505126713859373554445127515588353165030461933523068447515109691102466737341394396305115952557440834248232677176670115365330603465440189521018423484487877346510666173540958089482156918337392496981054452942685150000293533116138085977007999426477662064717284681663343508195083110998920844376646404923226131149610339624829168386059469570505495488079403582702784850027885785082376405423831323986081166510349868466112176421198463579849326266103266764973059967748601249015478522133619303885488629714978621385471430805699234216185323351918004346718438967978938908797236050966821740005298700235525103257649432199766485715178802750164965270826111286535091409455279912727919735951484479131829435851566688017167677355353013285735517820706683716786789665067257081579892258103466573144021831157744753392842855607081280763189843404342739541005564991656286816854369920618347162343478864145963544086769336412389128606138993933935570915185083918770241793017214069473592038645186579664910677324359886201385747473844902444480559050993744704949586290408685477452146328298886454361839422140302282113013367995319734399097818769243325946830412057447023320347944771118969427174481925052773106895140271640701058511236038628193980377497215891070532404230884733802866080833182881701204314197347735290783242470433872339156708642689103642505625284449095800128324880220988224475640078108143741233685623984819527668676433840020677212546556557477565314826662772576692806452923387230167594074239332522280432509667937167791975786471563760130898698467487931798332511935729009523546108913684292781636785202846565040881068321907332713053976876647460466260165512295170187741376165442091303636594452226824561186738696063970771896233150361332853287944597788925691985523804145650621465682893136130644730379995605802113976062342948346989213284730845452606281600104215980884339457823841676029844308704077497607821525117511565530756384017995810724089479439211377418832910929966646062591067531264092544417331231931495645832905524374791806321525740104508866298681220062354372241273764827732091513423300610218481341722292753826881687821036393146911230670368453915544121336165870926059988963619565390863289338292233610636926794743358614381648451180737425770946642567574987971419480401295126157215399236600581299202736428498205089114197252111935289650766538922778671693064711102536793642057488337254166850978564358489355164317203833937687897138034649768505583477130145009322655214517058562924022386970136271515427898250277762340784578230626610480342492125804264831430372082326231906635027852431494213358151836362955577041268775725013275060389316736735918960434457218175200759021614026085648756131445201961439069880045656449405227246578543198263486889983311083682784632572312516533497898728081592531100784173257959918951887118634672642784460552750978176217828189834734954626727268068402676923019576333355717288187531057815313535764383152955651977903700219682988353821809760082860195623059446005125939755064984212253454524599031497518262370398005032040093915545399423841851476217884087903226060885969601130426466792436866726498071913758977903481963766158482346135628443804509223417720793894433561616760357690681751040092709568806462160447461562158934507575284716089004649506265846148639653975034047299102418105849050522713000828377937192109616830022852005487620459578467571975567776309015023841404859241666437230856209804413699683927896870100558883466308278898535384353612178269906334992649214655242930432443878066353714026629344618561246765058855321597608061932000828063378633844584892886892517363055817137638392431579128602811538938588578400128953646334342259898124806052908084781907904480998647042057367427837689494245597107930527868933928064103079733197976075616159969963217494335076442165104755776166659825205356955043872127589859091665336188731383840737712067595034736597515968087026042002361450768563657365608765570575007017318957793560879746172360241272466715202351450742742140447868891414143217645817911680686174481932344149859835616838408624167621521561075190096594000804925374455331112277248313938390803562938864441060122462623619195742589807826364475914434130594039734697432570415809663266200343961231121922902013353170050216526217447444739206476016821983562968715339282345029150741712712684215839569039635697442126940561229592167511144632890022252608468864964938510318356619543192922599540473145314724194891156968088540759014783537978464108251866526241452237428841522291962042246640037658093200056731245825540615023338427204232073410564736217484954828401664377462065049300308009765360246889358388926484575469388800971651343409153522164032074019043639803683387162287545363806042269139282995027733480803466105356034142917958847120462197390753813827684891320694609965651550199420810278238863397309111082799260866039572544680874333530235858755719239301744536246486150297659744441622588265881639858648983153994867366640981967106684498095379216618207344127144146421721334346402162360722696051263387827963435095813839828302865582195945298592507534488504794369170366477465655218461387528593152305761481459837188430942711315848359309228825050703953702548295058248694243639127309666648259197092572196878007871952216089035681796510745915571247817092452931893533912335407162552886647143111435271235072177335041004904126269669284655389399029159292996200774050927589560096360866831737465102302051907357547133659732997075954151154798575417242806110375443136848563857134463950365299304774914485614082851001629741595795391944242627431795401839776942278252747202001436732095381433730742572857643158960503336643989755049332850376614631102646520908542791938652237189721055598636635274934077344513881887753480297219553392953542040379485004678037716635536946257506565264699743193855130035102035525746639102599695236724727239876849411391094910621812826983277510920293852062571122470609667834350090865219021015849450331066286906516949380984407328818688888907214403739841760463723206424155796910198855543758795982524426979429224117989979690767332607874152360286265551748467129472206406646845668680966202129228584560736749012550061005228260547718077085974287345502942568733633339828581587875274198100032681598550614527765104165591111684733186778465843735824687307363136630739669207336177499556312245859186116492193123295595498938813342074870685004087112959718320149592051626216584273979087711028619294709727681928097753701337207210337512568586087056997129058805040060189503769074604009747974477331839395858577381198361962692525901996344074889686350169786532241139111643698867488530097097323966111843638230615045566998720096332235901386093158290387636539555365938558759535119921131151440122069980677485215464544091931439704897908435662292840337530735660732796915231309199756137410555422181997041035171057846300431799791943477299391084139162105930330626392058154498019095898893914831891695301534838020730229206211020171223867686164742599825888185048426268499625549224017475982231868566799074280374418477840934408367020949243782419323145281991318680308993158076755428410832832088210908449851298427567858257475892124048504491550496965494600047493871309911803504187480023079488793015393889968497746001691505419973409833073668737281956024755351173527595226488066173990315382112711844722754093021016540538493627245351244913804716553511988107794804971218201465420617686132969832722821186370764826795227255858077695306954782115024475539428336466177035997008466382732576566273059861975441887392418755526029965810032932053515639325695733081318405753549999807949221201816053578425991207178445776457787285164809092064792645497912088142016207576050705880492536885690704606231192505936375489237876463745795569863189917842798690600757876233028290300266926343735495139340964001229591674113195128627650010796500866894534408344902407189723891441417170028990388694442076383350192259603960443370089989419245614067580295335084258086899843555087149794303173670128250941923352119830863083623276657050702253685532849121050649086736998784466726885495843885830434652729927802218112727492088093963075344188224899540262548417258617000619489972172993907314356526434881463687265720153624690992441019435260501823475430438663470194119073669020791682640231218053550283456981973062044724129037778177512497511335319653104735879763634033418453512478204677983014057475304978397050118298594440075893803883959823421155407348095235367290803767103620031627698499283793785744397735312068703171915949503559324282016448758690989480122211652180989034403302940355674902959830628397728221004282717634776132449729566391247806434449773198849568898519347422300636095907706557811565390375371904087369103711100678714885539688406217177514440450712561627749790070687514744018578686134945255197598143256735635320050873728530128849854604038653001663161613603391927433630907177211602575075251733491198357861480066660222758491970474203341469956785438473867855533898994598463647800711277427731221578419214301526723324618390656461663071762716737791556639074465196981971731040918733545152789581753971238224107078893027229957265030447433953122735546197246418378032337546306362834326911606026918081208563195626634199627821285822646763606394558092533149917841273715422249432028291185022766911226908451960029401726396515064128968572082726226639332031857094648674966963520525189853857401655464172676391720943226863793709821038801669665996268623702991518286523027233179549213887037901546119085428080514372521999798184808675005736178058057674854216778829653189024049059775873172591732904083901271268777681726347481695810891085777454919595892118071128514690940798250890101179840551109644805092259538770565571705653737281714911461230932774364770462094075509024823280357122986057201931568615768105736044155274986415439378248884695038867930255912146835815169932394972857784932724376447363799693784316453526256518072253248788947669991697771773471737693089408063009313519337382061587976145311971496941360353486834935354978746973384665036842347908663316760186997023676638278461797079515826369643188244991808107102390983212076205619441642592528316037151963141859303569066545198191770214444345366581972720522921011641442800733180092121311423138196835710627398304237870467488650285163293236501262527299807431079581529367724248212694901622646268155431787721526870358752936300408323230549113337651691243105915444742196430817997370327819745785109303731769991626404802801781093230063721343994027294938814873064708926545425429127884897454806349558494142384497151876932609582579245406159077296567571672618143140705548767701976248333564324365280788857039609181636254418747255908209938716387959162382534719266257045146623884429717790850517783877552940972841846327718253072534297694221996784040516843105801095964512109110410725976127406676681817313561399402439591035727645002625818144247607194956050148853753003711778214585769359948474724586374636068416738552647462153180007166686975573214247344983884625784479326952497396542466562245375361634793918997561225738193035038681859923986958425445321465917882403857024627810855083956651084384659863688496494710404725674095019812931915965381800289793636954258311803908997261583965535697992359457959644275932179406502833018009178065583422724143303580896632952104787215099685565670628399518411216425486821780182364064013751678165288642181116921701031020834254228753679564804793397172761680760530049518234947248772355117117963388294107269171475864843926035019864586938388113656646007786143733698900817036049997932667400362413787562322350365599982318867177413035795052062700813496621546822181257672254732290423640459199496477365070861741077450403250769593096933683322509295525474905259398497711937214860584694625942879332619902263320180111292003633476466152431001292888337382900005647390519144924224832998095708663558169964809518594454343441198642564827720881865940815735484960130964224302386904385963184217966838388448332665220487315356207123241822891829528214208613252215323547805981831369848378382830608813152875722621252031311077478546084869616864637878808348773465332440470257786863090773729391665479228335253080404964514482036036233132947725688626747976764349768900202076521477725157777654160806814144439402018998493313670925794753737608126395057230943239998056209048179980436433431741471593415942211645085877358828593630927475480689500961542908306164488004085608710448401384298768512398503635988015872623928251919887534762786625537004260179263632205384861004206409851589629826041341165109870063148315380853093281386460978066984953982690988694529929705557250807302952903258071253504198698705373624226056735633813628222983720664794618576849932755787468797154752436459047924345418140498554007835330774667674698808943516827995003251243919088314728977063168700220983471104304694069984822540363108627138215019808731310624289083014666464092143793213534762921514018498632400940503981722411641761263032867498423462544818102829257321290839381955743920994855438225380711799539174004057966299902912858031517452247225411652128100059586922647627904977419251832051666903186099926825925974851867455010951021255476589498733063784998840492737092589147808854446800968537162535596330205881935418869424174348068529846389425229422426310973200933698485765604817348928452502791890515105035034374258494819444672404737048851493838679096763391119947441314922537946078046121013113534175020753758149201918475058863160299610478798699996698647269623374002423704853667266374576722002785879064195439783944977170204001549065839284860001776346489017891891293424968592248772316130945612186814758559268175089512783141405531283346561507894875022744007389472112549815128370135109053049527390622337463576490175970472352884614426361887764324103039967291586926311053807331646723267125923437498267630680569871749200900730532211567652975914847742096283979550856474718629902213474019837475388271466908976552160184692352206799070504865931900717932929749311919068799858606636328082665838537377307384242011733807831148797268521305696301338705515273774473778671329552784913476102967359329800498938680825188137736101983518745842979117861829989684194084707209833860134661039424448685901679450439832380927607812255944242705584739740550016012755157838879454356235702817472147497930144190736574851905589611907519124066008840695155138102790449365083423057875506080642472366151569194745091028171596214659631444914183194839828755950885183716892715636668712047884766621026673670380099446682001985483769070080937056989270644824042758089699187387171669356511783073847319313581720237741859624970833912480687511161074066970277585329033488423904371624399562994814384391365612149321869166676127380756942736363178390365912187326476062020328535851213464334491351554651402362240115355418429612612806483817358000285419935712150897000715196606878886144878838739225289510452633717400276122818255076478938932671313701580127293576710756291605332905042952039794665554913951159648907210186518179940220187826169122529279298138614126242831786073165585042852291788668010738529907070128532094484934772332447731005710085948419699842604947644484576282216174120259612906892256174182381110427094358303504463787919098827672228021218652057374558037000779800176308843716419623399824037629573329277336300701510514430882002612094325249522577047103289064457949784989917558778834152627725790369821537515045264541406328162809550760634467734713917735834492936799486041486376316615292459813470859099471141091001204207158862373585911281558669820927968889346078476573129123810964278559430417338870047774480859496125916785633527093759150971081437835842943987649053804451553882101184821141775686521484555588279310875197700650713978978141179658246925867423312638752168331999948809069580224505675762404906812684101010484829725638257353541624687685642343270157466903190313739069853805363311376959176242934350917195096489492761036820239142784754602553587007849768424055636030504175812567278696285905086104425595175733638520279227179918564879945361261415747980871104408208009822641778995262943175283665492521312595655919969104053281205628176026442485606202669099292636424149884761537294990972784368080357846589216005178455205744793666849611971668942043355083864774758769177211341321688972588449145346732236360269548407892621228268967854996106859805160046196832528888386345494874428028641221576106176877849267770128554800780896293019911472826464839056235771791686487232625222566660569865031566090665483206517665527871203289534094472568886350832928764851584150041069347787174293612642753847441068169610881468325204362510607011999605172511149482246272400777661997320822192834781940257991188511885850843516133483809124894143889036507764187799249312053668014513901071250498621159974606258073394702373152081006650224409806432471237887988838168803024827255006616897373564381295283610613666291716603967834767214296841491681039094597495439138398034272341078744154695901709857466379299984221876874721711908047384588316976887914947986574761485071488839492094687800534873078038966902538242874023482896503612922165779980064209430305310837942277879900502979024087549233642717231350114686378527369128116196323101795912882593740150888098129089337527063657884039482239655228443643568793416064951844991972346466581515552245158250836577926337942604477510849101161407993799329172809625156870738147368687115809428119755985633210283877433024207442758975876919967324139073571108341722852729358256028605554573565330231372900848690807113326479832990002287940298668346620147981281869862352923131277317823720680146021884944613716914718589149942826601085566645256185849921306472434011140752761717063600959384252104333355283984212643271969392649615238975524043454786078995331457311952345749280177793567322838432051794545496185679773953213059967820455769250723688364586980860264908270856858315704493107834079115213185247941384785747755672079252156713070621388568522499049666944085801503193651286753288080505677143564114726856523886321622164506286500091444311045267285763503177345788172294519287458732906147807786320026162884703839315693905916308180238169715083671690186671002244383587315003317098998907657165313457676242976697823718541570372740643561135317463688928544631560675796361888595679415124623186067826989093512098133316995488650532042832977658057592154691856490172863524896619244343525391429541135274177685432111997444721052686574020501372670321443472866940677317657611934905735647535620168144159611807237375028366981714330318488996525314502196325683670728245596498828251915529312571089126047485127707109770416843599239577120581316882492223033553152927766565379216971021669717643510739477085816844856683087599960235054140634252919614319930144300374084152725317799305081701769113133943178549905310763750175740437199329904820670434190885971165028261414772837251852054392068062925918683438090747726957124879506186691443381749722081641663739423525597940845265459565304400142429985062480004524335869490968027063500050830783996463933525275080544757425405312439270759930122165452330363223606079597210212022047065133182619237168545835609770029866169900972771560552418235428637412445661347506601447697797310291866746978711642313226617002761185860705071824549002777058055151783901135998933863714578216447847123800244129100200245200477101905863773058069158494159304849988007654941012081648076392364957236987658504400516659589655228250646436832194033991370129846409062589818055764225490029657283966543392748497492059057733558463992611339402671315935736188282858102506883352719054969057437140916978348814914683187488114845840822477714514167064062891563654200642058722342168139027435492172181879348724959872448977255764060705336620881915245627392536118940400637521416882471001691298372223550661069313189830658390969127031869370031170521142869312913062465308342288184846664902743799073351069985426919381819449634046329750125885181682249751935679755072410244064403975577854668125488135193301484636795774684042626034990397750795636531497190477156172318085777057293325687165321267268427583162601116822859075141827978687655536867840387947973275084392588392135196976200681931686176833824743057717240550340533485578912071681775737808249787652916256493405825951793458147364281102551424913372867659357081273445592769273399630497472793856726967932288120398327335789091651249716273268768499075341858791334185069932713902199676840557148194176412848385229207173143943495190481189453529351497992723327573116301966615579998628410961991662894592604395526847413374512898706183724128580663898518317040364808395293165623665010982405496628569020881191912291295151496707162907894873531144923063571343895451375313287258652293789982208126632548936162513894849811851339932880705197042361510867961543428432174324148955287135005688560889038929087918975663636225759127306301251932003233052473582656842998209543406120023170301496654981753678298818011993143603876709342890639747330188435315684360096888895768271434161590473806588493603455456172098248625096979612570408739999650909364569313186689185530724923386008554188300291609991520922586248621651440282347174653748251404702264533019853289459851274615103647202036539465441422166567438816307439690163968374704132303960867484784881732824294125215249887269660277227215592679787655915119493468388912616626174639306819010705588144001007980721636667779771700683774580338881614230499587107091656791588055185630805047558592040073847763143991716512323649574848022056261944167945876295668096290533957503600729616088532083528889700401817198224579216028642418390192571849681552252458524896599690492357540029312616333310339745715640470069291435964017206431680806781614213894980810772933190945316481671445925913476894627241794464476959565845215703513122806239044707090685721619580530104899772708654037890922189948723309060518490024160272470709864933387653978220962401374503046821181205032391452361776540390091891428244869504695489918058406103219591130907245817935740723757244916598659021674264013846158322700636620809745019637301977941129197866780035224412706709084169497384661789578454644252742348301303064726045312052724445057613119632880035493919462314251639642540385855518928305335413572201378619988874532445476361821907562819827643211790010517226269724461947229087791506376050721067164128554839259246889133139925613834564841267046890484148398039239600252622034533062265588374997865255759153760708464957908883691345454343364343381384136407555687050061715921077829986737898552580018671561597020914489374564800306448329503428229179455915010118870878038839730913405454631001268262350005939077591908060849353229860638748381517683804701316394934512794407441301348439805491831830321069220170256600342989444390934888586333836589133723374531227857970623331958431704723105363017385217125150571303744543458305515270363074240802039634476499835918930811501656155052156180399564450693777829450389911018536945171120369027059029373595912315133022421002534483458303093747889360570710164149484654268913859445705776249876934032411299206141287103283854980933837440149359633037085265696113988831697968563184965137277952051068962954666777556706890775598259242304296743335996502913543607297386326868601309616348194263091934496459233146810821667975610159248474316802074453376413039252016843289217847886409326349302507148966014045533288656530320217302466023485936159935784049871636597714885127799996157852715827262256182701949270151295470297750542159565742941516655180770155344663048646173800152672378490156688976153129157551472909873846721018529703933509069718864402917181761306770919208148952842847655641358247291504104118904449341129057369176126365398777304968832175248529749598861173916220138572196928107030897854502992256623560812756628655422336692042655716227285871447982236526415843205950802393620362136730710070725325283471865269772410145671990201043105012289326146718739858718013345726919395869453889320850354953189669785217075243436484239724206006903249170537379161313997620157264472113617121688731380486178715442243196889805041196107294715300753865171662073874605260735696153138954505055743934245729848313790628060987273802607530606186446566931366437920116091391081639556642314372645112153702512842795322587162391081781774689402528584484548910002169723152802568839834576400432368917826114694136766859927549774866478636151224959164574368771225858865051982302645983526875377409220918448457181675604389031001897534873941910000842437881299623545155138200975073523621376748873637549612113563483141826858148170801632431191159591482915268396106305847144405619486441687034247344067976035082191569324117725398314284086898573501318233313555298849154801238835416529775042158344558932843646109295767235109252548988833263377451272690247036580418844365231857357002754414082244705518786866830623277449881645682943452945625305398946986842709393106143868195548136498672430904533626231814611517248551248317482117973192005423739057114069180440336545206014262638090721573293397126228023756016112319081807639545844038493541379376739131389379623915210428467609656074145354964584052188017596633229808141777149644599078566422346351478962236188920803246276041738462149706439761450217631374068807510044387678395508708299147505666013743717838190622255031892017372799631435825952874736760542587671637133491192250185305281161841340938576814483106488944199495683742303673483569608380525174679982621719640370130663869433521274612383386710592067014947612595714952199784144992873437715565301118088114382360137370123177184148799190982003143705099025613910390939952542247075881547821825098010446870564217160566249948618155442005322721562301803964983096305830393268416254892775852035594870408059661607479135281766106436708192980598366239577999135650509074128902147955958548753074194219343294867149712240089236831661624160025049890441188377173880365486288515267101562184493561449375548619803338641923114970099090260245166053372508866869616380766541743841116045338699960821116634701617821505834552769700088158048759229272417223894366404268236623126901671742470917614810086359631322612126274429892613050516708240209049169987587635271000329398949334246584851851450013680371266750894543241343800312345709460114650260372314865152290993844944743803028318772433975373497415980134756773991719363364677804888840170121185500037031285475761280780118536530294094175046078106317217070947417403362840864214102318448787536375299066951762322778784266303866399481407903761125533133696343488489027103573761616874871662582913242681692870531368370232724349465562340097639613559381876832128069273305846342913883817044541048829434646417981844848209964227237187282170074463101228212310990898230942008675365240757105381119878497960805059963647868785170785631955889496588355248556659230717537242488415001022361002576984597418319858807282610158154865219377232389614412691992636945621717631268235571200028911342211362411181656860902891343815164339019210331742973279506664459273677012379463892432679142976347677669642604645731102852050147800231007908442788006466585002759756536329657492930567360962708636292447213011947316533696309503650807490754711822819121233115468711142844796840130315438269448420993536972999848848059045107289430832993022806466236121439399991685106937804178543054710421589951440120677283143389908472421826075139507844764337938092274757008020928099196209256965219554975340697892486382016048172654796809588798498291204343931911080505696951608957530154177699307037556551552400841708025632262441152247619109887313850947766476770396565424095519321204388150734134587664409749838457762686303869967497539902619191476492555662929979958501867628259157152610192055470834004911555402004566206797374609232409557697568335793458500247636963204059124183045954389121957823063712446310243418137304096758652162038514512003458114798484086664249930186293071712099095711823984358195826652449913075287190031619951352369246348407445238841486915251404910309395780249916994810683846140256246136399502802411740410921805324166792981602327534889995675620059316959008628063443755766520955716042599341143254044716217817382998601216195136803032830993773098888971491630327683102370734762241798902766970943238877218532441226779434617320607481039308530278591957894778801021991598649041078062769959711435147142754974188104032243190523894347493552549688225266442857718157790312955620885014773060722595592183867694372505102728872863474472294264195589971498896781873304569963893896074668394936044792874918496954355961023592433537198296915374002293724249037154799829853891832182287932708877740826507590975711385007516399206442623528785576209193954549823240252077859357577279327005743113161299614295424649660404208485508435894723158791444180047611502185424605191102950958038762728895126576783058494814704831185732066057064527653269000281471748227059095405734976250675074758490615469591227170376772366871024860283943523059325975811971915884520371247080570565441260651410132797014488064883858524174724356758012266059124951563184433064075367243238672648737210310734181595148313192489828444253045395063956801609667872713834437969906432269999354626281658042429494714674150946963386356720638520448174656744226342512433267607408247172797689668340976070307930224824048867130053859927485714824312087952485190284954782367639762157419101293411858172147438086461232913849612743285295376788228245960488312560386084926947567839954837288737575086044988034599714219628663714741980156406660796300868573048661858061600100714251116675864171694701079026584342078273687548198958022781730453581453824544642004680341193116413027597341034150589690498933107432240904089627293178364387929817167726512346737585597097428494218505128200836395652419896179917820844448021816308494597672593654389291876597402401099207772863524106118622150166160728891592781577212584762211317878892391548292266784046110749230863056224144495962663529584189900955006084221436275990502272691594326486449732189495789722013172022195720981491025284639829052067951255714762684007044019756166040497370025245547806155799343438526584729114672651287996046295704020302768855890756513320395967674113950087181472530182905455296022739244983837646614120585101907992955999240277090655453853782778359215933548285313413749843749575620511783215195545356477207171982056973215306344908550360955028207339976116434434248937737486470025143352209388433026444765840742573929904388131531000289544975365623995804700709866891854552624686489214743179731405575295634132864213204500639445705326172763055199309685960600072530735243934633338859514845183573732018690337478778355454712185688150520108190922642944042733255248609619948561757369877562773071488460156867934461965477435666646242536222083589463978262208376779966303083345175026736040781735334950392264326298028503075688057049260562840166861463443304184794162839477244528481571002693719564428765284022193541755331800181953519579615252403086993954512633092138648472154739646216119596477759841550674835864852028142884117236345351089574604585744340511160505260951564208192254363719798080754518673823130058018665962286533100164593204802694041740152559213032413710433371374725501815095525288816197863750726622531699563745503652810897454892929296883078149191078512559424761445300314158440346877327569373375515361278278652155839086435102500496151955324398559527747494134846339376863735880947455930752430308697532252469034533114436482880876025202912472333857089995056817182251427546635290436921338999372511916414620233283761502546078222444245783891630485547871401150204119953387916116600733049724570380344907445929444804222598442862582556563699739197946236352732324142145073032001340531089578638865964973573266976519741264287188804436233207057440258277856786783936795254349603859581426995982801859427470921301516313209171627280613732560770333212895403568793517371942009662990641541040597695351664393576796814304426392076349945486426094495774595400205213264754087248813767673106435485894744287039038815587870837570255848243772970625144018815052680195325528532381621144000203743513341463208142968628509858355201167266147343522809210968300633663907967351484912395344079601541817910280611680815532801514622475886442890938353877816777224546740449639649492861545705212576552522254444222941405433503712568643893926125255286285929541158667330761048944950876031912776817120980747617441893020817512616815502187169212475304300612905551172815202445718818998728221341180108621497618806179527092176837978447210525572682972554623548137019891406115722409772158114501794034618436843809067087932405847676957857840592962653007642318396011599756890585790377146670832092223741190091961652090253832748732574693198628979464216243156384860141138974142112507717884854163123250402107543442643570818922640039924203576056383180876085714909733633911684199851336507017680491073150207952521567340137208034711353050699313296759680030757237177484017761676670451887113910482491679402984059783226626275930812182423566571243316830951361926591932539790017870111003229267501903731760383627339039582083988156447203563538674386561534357569969936101413427501340379370014926843785972417014484225346670608200091991006168720821719009842517799023464980863744170633858008968741214156195754125035313745564016536431353437158302633362604321138952377496150835614308570274175014403277273042918759455682497212471986185248752475760832908071147360590873934362860160181135550693290262642928904944910655322145865930122287315354018124496902020236869008038467787538563209757618125577478240400465919204671509617072210110739585404444535032308602185805214335512795799395424365095664002102207101678627143526541218071128883432668145102822567113605931070995758530978075825834144070755423768840177098508460614649409989132678988241128200964882301881838626534355167993369569601691991333770069935304539643674069899051193080318598116912779583049543288569874145618821053749641253590340958136860673825176686803917569498727560903308472236510182722127210032293212445691858576854202520342628961435778978523086358946953913190173414567188837160168822824123046445274656150293887287895015611680106615117011976815472508465474983289301348167891465397197513700371082653105873355015955437886719996243929079903961041099686076596643472439767306060249641829076681274284136542754722814562466369271964583687478818051435778202194070134255777133518833109663834461420624388336177285321498641030052850947687177796010250516468762720708076365753093559766531695392097438675141057475461432103413233747003274084761448804575112801672119833914808891750606065714446132253371149602833053111812530443382185494321200984177099222229338959808667188066167001764165154737133351747514816329551005845856626285530276892911804090922930476780098911938722300176037127774950951548995972160546578155667690247603205278535247179844605039276260082658635450489709418844903364147065849507171108305120521009164338390548046673696319253685136493987583968117382887067635598223866151512967740104003511991259190157532051300533739643040360493783157330230929847266541421382525955130406998411955170935379724173384011633898724832637905393937305398469601445031071087751881462755770773678118688461752521239962183804248140347248276394972719623634172371083841015197634998999139637221501298476001579897033779123487997734828746671003768417852838353261508233924544253108809193812071208558546452304281097418479994620337794991431627471597492031940685881555178295405244188259194794200008654722816758697830094967492290203306568277783812428030869796859794957393509461987805505922932404100110707728425028356536631613833431803635825380965510502305802360705301608706264252407784612187783259349563747730728932762598808994881604133920885403782973363422697880409125447176511583989752267972527534779782663227116489355480129214384123511632446287930112870994867756596711612741768162400720474401273640086710773908930370353484479817189867695920570163102407235889291261142155645010601088032879748467285092108833574695825926891330641111745661777674513136615024872611920317020228494555324610875540621510153406927617407259038731907103213058654747546848978286508623307430544755315307154306222262036121498830775617796484753458947108765191765407708365209784308121224626723218557712552498910094595570237204001403915452826585466052254413637995224538397198460388233111489578308862540890466234803622728389748137493558675728232853033519655795292505560600448213051934094939460144517063576852233816584271598567609393321471329219475179610517576943079025290101835908134042212343032463868948258014256843528186020056008877160755123526404760182742857265448974550836319992122088235952717567642377670791616607966499661090066844484976950116634955695982793009096474874009439203000683415491458976811589066768601574780250900596879332348206110742515157085967408509837379615928983560780611180815450702005286818667142136022792328815014623122291841155320341361646682098482649263632948183189070331140462308024458729157912129122002673594645410035174085901086716623589506807733799432639308467036637901283129137944220515860534099306373042415038593713370157936447649705413992369930737910191621916314249341971152629963148401393653159746261217002412911814077343534407057304372346686315388664800924875087986296368033956254108604582045145621024267352019406814665291890735990575271667047682332288205538680107667314526175904838473693598741872471042556302762222497342345470399630016033912046289291615527155656232845175493741479667519364681877445675737187589073504961301956861516477244372148678339928070749672079933959640916518204171930839795367396054676454927296642682797475060225115203014926523779572816707410004391316525448606159968941415979171504670325482183656162266170002574071556261358010524460703677100887480067885469784047752167373303346637164041908892769820252338980214274200982652913810053117025798220281402523440116436858027524790167460274960264947783389680801814732287185927773075640395269342728238814412327920610438702495580283464029757827399098751134983942942591900399898093311786524005194710042485881327773452651903422176175341766840533626589146135552420575959116532464172043568412306988909589207431789484289239165147091015399598844942045917475542418821409157227811427770752433293200625330175801177728717863531610315976667794149416721508855174794465387301641699240102433377997781030426923214314060851038299724285836768930066723660547710617680191884881644653045230851716602190707864086100705553914643393519106867116236745369894613852257085788117704337614496726851293342204791941628320765223967936481806583365139704060337552359434730228518586776961536978698614738888465933035252818392856664173152882507364969887965803194985760079673196493898459721081897761190801355903098020836709214985457735213733897744711594775483930684342963798220668958158403233594753512889147313564664912460843291747973717128779367718509097604450039516754242241073920606771271840629999658358060661137360386169840882165026674604032488713323073480510800667783520019129278307629981698281227198913175910215312195873495035691753700374038064768423178751740668965816879556637505156264811175510159290636707300473400322308075545552628651966424877326099374965828968780565139006999849235250136112843677566202314426578894578247533633419833056777082137906980032324910733773389316418056503764999481612245964129017166301761175265338231071155950535126780268062531746045565863339787599740093954632203212785866410439833869675954119844624413621355785914358465197961286036436405038611413057465482309386803025759817434723405773343795318658202676099724333267217397325230757036467345253728398124296145973462034707170505219018456592353012064387320142822527187833601642900657387502579851328601950661304622954863496460886459721355681977791674254345078926441332830477166630180848364730208033292028271227948490047356489698642140263855083492237388747261772437252036335948415534795973923780831771546972690405107384542804379982205080327890890213766973757501721553203550271760983261116203920190170707336229044119822285710956741258409815883347079082327894762298066338042985434236311092234909350402108034665177922559457392310274809084530729677569167469002604267772712622025891245671069974605529863907333994640332419009302466061035936617366587189184654702491710966563549108699854457808351969545306218915992918927046840926675810395648541441658525040849365356697767741683591476254163128800352937640587972300696846185560957972057117149388295092745814646751743392584799351724106144787818175720769918419272245957825107662949624118950014279900010095672442911324181276311697448339405539727856120887907105939026569071224272276238817850210778574466806466357243871923652734526023492204701674099645629223920125819356895890394194306744154782469100520005274021411118324426086070844605849808088798935483112938405185592540533382356913888040160583221934172415621199487772546061596946968146271287548515779672768909177556641941303114061692819994557611878736867859757744161430370446010625272273283300810315040757031320649601713031994086402078043583272125977665234335828644656703472855716949238305360240403957137835669260471750276842060450576107582727956289434120100133702296116316489911494194258557823131818558020948525117450697287935682967594726685063657832734049138664180627465667264731364722823966039746011064172324747906923152756889843053077529452680230651895591243839106127820599624302362860302995440107208876836272472876691866572129303008358518947765074076169153534381098351025520200177431124474797398445037661905954581430530361627102774946306119363367006872942701866510102007992649573604437574299851819452795355278514832697116614062868829855663375489317851801842004692008270658251681876976725273911109962854595718762762757341976269038042031545792956231953098481491831663617242303923050244278388449396857346989124523682233276123816915110458664278672811382323507536775206336812706653883965518617993227757653437334258391685321932220237879577624884941680196134813923376027832675170140879693010294447572629278096979095639841436516687573045724581369354099952678921569511339467813195156768210592511277156974506681894120466147537387259631519744652748046154479701897415196358330741564914361329389847578278392968438771824644654629065286440597556384931028889444780008875415892054700382918907761574550701644609616139778255468449015827737150537275594132468776874886044047963059512417077619750251467528123224016593096381059461843020057124368589851831207565331029696588974923138295592484063863847897400727039153003814201638749471972454874789608566916379847945375042564710241596871881606470644381939353594195296889583850610427209127268895520876422712349788450480298496340136289304848695922984153566330202702067607932095789452956512416384423433543774270740536841946702410496254901819928047049293678641575823143064922164622825015313290065304860196161087320327244079069103962408918014862246541311635820348007058700415440393768689998267775468780243241238647183545996886095601668149184575650088724300157527948695402686936259931203668282365283182277691227604028410919092509929324680825943820956302939974346137922714684276776658273158622376267177986411474467424568694633393042645410752025706597999889969783045575338199299950831152386592984986704815982570528343813214594973047688331799581470642003552453358096874982693669263360117150607016146596500191196596715448577117552487889116767000921892500285832735009870547333556815934232869446043994046087354707728638143584885347565874894820994258204117350775570916113585489349868724503538753541584093481736314783232681711958470089779068048447359170013028165233770386795647009531078766985177225128357742228216273276490400736565883303373636657155885794926930137650425516156195587821833049678722258645233107500179150450185416220056201121166411848507158131352839776900971904825327929124539034430596235346858772149772976468265101307535502944912532267639191787890810774151999920811439904031860040494085826839568661405307291386129017448799050469176078482077385230665499374577341645293863911036750543534045228878826281006949674606532361973981815589628279642863618939437620002323344146393341430818756702034164048750813867430630698756952084534319495742536504851130107228981645929701700153515557153267984063676705923750597156579085531293865091261544037797869141279804012732842086124109966626873317104568957896723292336108026527894915130468451211490735570829479719045377307796008586362213393796309081095051115354252774948891880628781541853815645169628692563816350002805501295061870535407657504607605367098908292389549243737534801044035970708589844393714380906296245428273631860399960337918887122931177477161322594575035113927891021429158761255475158527206378982349343197713060743636995569044521626062207047841536977376440315507826362784865508437692831820499532636819151788040719659012182181496736490617002217478599129337949305787911965121936689465366255933443704603576539218233009035514376568739613321636625891385956379277505997413413836353505141728135180548170609858855368514503219268250991632171986709888449270250797592880049779009856658878804819553224629746343499961319853792173720306318298651818224512326140370204053617441411241463670513521738252554404404994796035549046059671812679051638921471895993673462183081097115977974758833136812923608902699974979648405547053800183996845979791456096083952298856196755948958351510442790005414255833554976273276669575905216751147332390279424423756313579530214788069542910572194238242632073800129734143315913303961651471835308760341211169918458166693583470457197522625183406882156666442022148453953328070955600140771696659517902332186460155561768251708354696572526731068155918495121849627117066917054857006835760982781932765442259445201037926159388327167056704588498797603446679757522298413294700667858562457159349258999217961296532544347945853212793040903438199867030202293654794529000757964072997321474388084654868924949712259391293824033749507479569392093251824572929577090680485934458828469907780291179378497573736010666695205880996278967403344983889323559535175442895043646886029153982489513483217794109256461747237670783132858167952178817867450283137447091371853671179997766191465452850590327320648727650091315194752694279465885585985480854241834173891077385420749306185695080189758598448899757434344560116800664071829590663999613204457235872616603775232189674235729109907199440580041900722082438477260820291490316192907917481912289819033335468485301528756182929223721918452736665236829818598648143760955073347686418982810715562157096036616036239248123128897335775542021547277414169038922613249102968951964623933746514800220054597814408352294970102675200189218049722392481628907732014490437488221419185476878857810627983474006378385184265244031763277336040798469174946408311523683897962873547199520694534796726428606955549687953346919384221705700912151830172596875517366727208792610365106048681343756408538314817325244999807681610692482431067036454506649053493466461482597070207290365418006000041863178019620941266403988568066655804979712186601930671765549469828118789364884383430467823446614327397756077085697766274473028851001410815034372112434120160307576586615174367799898498909678226208728985817731170178482259555000479813580331301758374044216328247818976636217805525674005265030089637163964007973528620436634218682741469430426976748000337300969102458084974002562911938956411805562025507564865843282254996557651372601920163896530324505963830631230712950184954322190303123610866862131316366157847518570190941691481915670343849536328892662740743167063719338909738554986282604879614087285685654317384097961128618809134189365109195434353434957730214274261199613183155754152639670587106706807697722785620115953315056646677083980623869065228782394077559131932087244962644874115274150047360880668753784255525546503824277466218087423554048626948470184131754424967374329377778251858409669832479660230839299945262273799662340394348428672528280185271715350743268105377012485110935427295120900612381162231821087090352202730413099250173446233237922113358217427958058751988250358697081223513332124551600852413545435719438526074072100799662439463939423491918942874146858669243112505323620379383729210056716811069649407476032806285670688239075657103116739847900128711681049749763444581704505311192048097423073052875657927388330738786839620004343994978968406026447471733564072688892748216361666755369777354232926058755270704614495430981539941288179397899012346549583113028587779543033387342603951903412429193685968588176164512725765771002783086909535515682303934240083641374163671345845326515788860460265413389079414654178499231122701802137770488540180969781147564975923150273485222668303012570625651682421121582863338325537174662775177173659801527594340940326258017036582761320130662566155329464474019655966704565527162064948552703986490546977318917639555049207444980686886294018121824079951761758435110026883534420130675256292133576404480281573638361665317290909977681860440162363564436110236901208657100142231336450379862720173081724183886984925919156743750012371462622376522419144300833100684728835667939344963371916821577957299796305638549098329098519839282242887512796301095857825993093552194614695744904399750710255706616609755728758719681705055225888812233278811402141662255126754340414094526393614497962962954142018245773351629906115769203292905799961507760332224666206542212840446820410522365736409076115849871675681188656706505437992905078921684090321075505590491661858398869986590948024152429097873701233647658189663688459104837788689216339231565559729732855024411149512186471742376460442329386098831929179552665957190084433018841437597266151045973790373274353477104515540511759849200746235947841761186660351650306704223218793414431870492557786004318290598230284278280362736379156099852889246496059513758077604537572361959988551563051284320011688104901547463995232436571522755150577518252470998185125078934292677217021347471375550094897796877230023590228781798177869845799607860148411578726516912648098048101935444137465532730527912817285413752975999226286756872405716087568090274231940236236897234907529866681667593485058943493804731200298579215379237045986166199243324640283986995318154295605385796976656982433525416474539850425856612788798119968744752017236728860060367639445105736703973355223923522153067433464556981240213536263739689532680209499183317740393948020407501547417998942399891634680560949443909828983359582174392512504000531152701669892198291105548137802075137401710763488929753704692700700618863747339031956259144484051967531015766639102986261808856488684358910318382152662472822832000894313371885696875088678049234091130966612988262015347083132687766945007761240698749362917664882197865325173400893465382195921501311680135936612012399589565552667366384436341014268966509424317803149639805574321480403791047753269731204037941851639124014905308448764208688628444294533437509619666907470697962131682003017527758688232000148161519080883203183026001800620521260915488781716763867038695822433146680070600800838227890755930205326235944943507264908263229280258727134092572975648613001378341589696931222543545299296197418313048127385590050992743186963362627552802778496123370226644745071653946161214164861305379043033013582795634822136509375185835093940709024321486565090441852370554046969969927445289712935267844841339930832727451691896436041045306170679346626133640396516631687527166066611319065676781167575023315993360828239318993629837250633949177029267503332643640883919141754588040713637136793960305797596991366579928456457283878828735102934248080674603917006912048449534436204591344153294361507965132764123402405884149892459516532473429917017738759139346319942750789402068132152167458760746983005784162131354701241983114725122504054184722443756718517550571282752902547498429154269018824916273861026480367200877296551504388538958577721236117015134868731889739702622303364881077152074055292797483168390453415594412293622511589833080578415733566726803219680967321030624123389249752546732604682931820587785945277286101927652597630544764634015838205521002129495805767829449994494523802269899699974969734806243659566707232493141234709460579107225456701454942461609510451452617831805550727414018241048129808567411483890953959804698766251788201204787457704289635118651296784403797296318056259423020082950076949068911750373231216128735442738091251585468081866915150456382154259818625825975834302714921118306912722522848123328542874274796290655295090972197912161536802947989600697636359292716234513149966638962218836968977579011859517912485176747780592569657666203592717487550681188697500808422247465849993774087154069782808238069020211617936519979472434942983055810364118553226122061719065774295187827040839973626784412462955420047869686704086859009682375949252598578364474164071717011198533012658221825145099383105268937895998308396316080180012873048815413037567565423317474030532264852923385626336678942647894877927335103203222084933484778789781798556719752527135442389731095528066056814481307095126060321509194725661185838142044596766146506039009191826243588830751581803948913517833662775813988597257460665848130477938264852929509647913734184917864336870290926748769986895005713487903608839470858434617852197438788269785202405523127687196199031634684182013491716783473398617616705460736652353252986142392807885788304644215860288352277462353246110996240078111709701298107343042183285684696921875938309523520806801277769296488589978504571965746548689556232552822876872275025597544026997059909737155328889264245663905382772175533339183775042189123944462636793068436766533857471090119943936065239357009671073595165676530007087988301754345870919679149929819645612315295539667940908117920150304556170588238000061114407145253976934166049736651419357302137027297953978711796634816454940750450533326140288003091167864753991021406700128625855988691774642965549400038483405908236460348212026591644582860524022131136980263477519805435712199788224167449527842218335266243247343182765480195288405913920900840475319255371833710136580783808104690863010729569739844564987618186809933178580462328571060114939916988293332087036744219398522879812673876322408719766503725853140070403420106230821761506385288616295828616411936317117967746088782778112601383433980951750401991974126246564686066734725028773073160405915821142022402202822010064630964886791610059791478327836414958518107376383240927955091087964910642736100483020883373464855879041337509311336826823083513306904690778334208396465500907819484552993171677780923165450939396332103228399703260655223597036133457581638741141730450574260210524794409825279049374628250507755313278099122619841499461421217005223714047462485816427182383290307151385952121398708628834822423535973447803606102281121244566057609990912670950603607136248299468310764372100914314068513233717150631010308491003071978795623003872081646093935561795157145843801237117280371101899748451521723949534063349005601178612312845744570756224324104082853872456022382861913812599337753425901790475278503288327615092830806307331073830609636666726934975782299559439459636048853938968377358698261832490878286670043075696940347833007998851368753003473769679412805136712148979945510597331721522286615738265872234663143764161239750276515095956429005644443352951094789638006534186827825223013965861853625350489245969519350105644891045994883259696831263225433196524917821803597264235377056927513179198438187705516854722864629111112650179718286967554056169959315396119923719448936938924760421230848685026436636358717575604016886413231863355794833950419654582507624061205709934131396262863369786749172950405764251823951835935074530968514920133181231695062554552552131444606974664048485050125095897683223826168472609417831809065507468746697006857686756571999246911369247633783633521242523716731832309250224699468408525238902891204484651968846932389533795971174692549273639554400577894037650225732677877538381418820979007731012347407582030984898008432530441313713812698683171853261866677821895044008333537356220056909586018715985746170739902432703475814527917792609333452730191534925999061838197043849712411608918305713661576747628618259487830132004701136235590816841879029364332618561075107349193344259107378026920040023475382320856517946530475945819365526854556561179310985232288435623787472846663197695988916155722571668732396017036336085597522680622926716970613967453805526399200970224441791057362508570015124530282232620072984460828078224177081127562379594926109242255657366562336725117355214300193861764678933760099279612753607200106392795386851179969772148757226790703586813335132759998470501118093620459906252162153505958835284282966832583890706902158743922052329308024859466284371075111554427213266991635035492493193084595767809795042336622302013950963554250240098684106543861295730601564108225255640610665609993291740345909913128349073991057935567301061153818047937421135738188319698133574457463669464671206608064386211398903455307308429838313503574527799601494758084394174833809165870835127870496652219976084842583770579994714304187329250494827325526021144739340461013832599127763090869083963869989103657583500587297333140307908127714842649516609812336928545923888453867751759278644660948859871218033766797538327034412306717875715314934981609315244047919344026295648555096636998014039981678564403030904713092513410179997660603474991371739479083257319099827765878994177913449359076931727482631193327636800247703866057951913991119463583196702629506896246636410721023763884812479659871878502778943231101845508377165973126064034371683332993618223430387868333806581791601357766546881907969352903978149932151416521268049692941848291627398638260761438683159322540176882307739639631908844222449835065297556595668331924331245404276043536797881131867771887462080157259647453393022312912808442040208486455292213800196044972737322828513636810967535161730603094391579226102542230431825341752238375122723122389669908285617572648932681848232704526318102195331922089767740778683826665013638638595880736698920308202829995533811704142389401482277311970942066057165013355929929942512560203660613929579503272764475227669053647446719048624540905234495977716366440406317655578658933312123061534655656060913662270895004645624897374041675833919814956917593117491688235359043882487221990979779698160549592526087594297087978621640736981623125980550277219077770981293443224392324004914590617232540688561524821679854588101467958830613284077300708520790747148149068294656753597475155591729381502593833827512276749388133615666298621913176826290364821736314706778423952169513384285494945523758032687980169823899804434115753638289198006863858047511608089081628003472884513519589471837397097044711521735606941080414524483847153217114583610414207322469797786899762498897461138155777095332560324323785645828265988407646686900214731668912191575542449984713551107794910956213688301029883822557135211633829099270499806010592528662910679650305637062173789132506541659029119156472159546780370869691327992013424111761144523688596336691853667138819667376318977171399960930591374212153832647369572985714546044423969916038781429376739384536635300778682556757440811537695780733763061001266389629085023668236886436396439476252475612655880878456237137634541839040200385615362609534902468922886605507509992395816189897193430236144338256003392057149889267210641959983967885165027716259432920751969455588866401573534686275834271368439537902556114975190098460681932728452330522494471010550601931201875600661424017513795291319822876634873243201337080586729420585866989296776448681529892276872928411434133861783196031146777676353061060757898774909129358538545967257253035432900688109314061641016590097076349523122840143592137580657257372459852694548509592288567448944081745731232776637010992224438947245598469690038077229249983780813458419998021627960556821549769904973169978231292353168601084694359847672956937439784747420384192186093841587189448292866451166438658825637575643252656573134387438801685010327344396083181678423539115224897668787472111201399569156886876894518253559894055394406338136681279899891133833683549077049751953347873806065440034719316002600053207017413253457378094640308733479098393572633025078034684543784332129673150692860118798846644396151043582136395832480799963589383196882250393526042190209514759387274291472020571282237103176520822330888053547854446461471267791413114856237432910303864827808948228169639456018830840846144934270198974835288335940878004566945931050008945332590312495037683261722679898734549571407295783250260132228176606480390560684349279808345576690326328916695989408835910606740786981182684210778693699657341041319257623513734080571504522708037929647176242682450942613260488185957129148426131781584372807940814792904733306972316545850261000232761159658902458866781622177845117907938430754698482917510755605242559363980546267724266796246837700110146068558200062219899966312672851594766933321597131391017161851094034506509905710263547108720678025818036259597131518748797132035097309942328688835868963618926158443990142483663994552789296156987073279769707960668566590922374948648032819998665752645808945821223613782119156532380325481072191650248492154599640430663754455535880926186983323767535394146478110222090649378622331846455806261943220240130504464258618277084514550654218996986456135294797657296007702032752115798392669045119188940713933600262031689411033215275232795342169006971772948836397020263153039511099292726396595820930093757432348195837204588252616003564846246203113042306893770950168600227690790308244334793365935385741360054345490492062117591174934474588326222157040969317538995000117314819079392721004273713593102833765772798144571438996946201721999311705078372079542314160026969872387314443344400110509956818448522950087918534493280080837726128103698598904498853832614187807173645750581120865094548795766087142393209980269005498549717741056550887345769461921298033081363803858077869675126909974268040067249057291136608578059282900623515362595487313205764853224276875078652692201186230413691711587875646740693289173991874500291822553215126336447551745991259231873956083614220866250494477877224854307583656485786227996159195329871604664125688790229148419329900784409390530216902329958100664069048985863762515233382097973120856788640145751470327071965820773879922637600164919124640846264842154736021626800034938923212284506726257521966562420940943129092953007069707513883832123750468425526357063484594634061765098615493279652261993679772463352759771285601344170933316156702790545736279924976836499044159501789290113420080416878919960667580860092233052067179839074132094692665097389729937184678964373097485882389319617493538405461901765689875435151976798864760134649484580884592688042859286706665638154891550221523819875048835308614973767833690148399297419316271315615224848308689443195951581084914768094954387513270082115903718071883604469466500937622625926847630967739980200304166957531993866450631913482400656685613264771969861038784769208249812565972142260112615726162688284881432601286896363316387454505439049475065396561454825423146821725839317519917202835477299223046472495738798064395670848254074284408106926239410066162390775220284527704534756713626306329980802799594358479566519539733970685976590940348547473290884450888438988503562458906040901157606363626342864106517416397054372065257977124480189506805728208334820063375384062906999400550409877076322475795744645792600207986553286065111846651968028909318109854500936873379638746241357559016539187422950828458267246724118051141258247854678361249204239600219451290029059197243643537302179608811335174190414576688388286305096009260676312583721259737322983805279901383310052905110787074989442602530194589473178390156664905147345012124890661887942778869519596639022355344081517004954748500959833716455414754893154108174084104324735933529144260409111120597061591065791960267200165399180035230789485463516637855227614818330623569420658295532283724775173932851832413128170679269682760199009059484410421790856792663198980585591943101753292177089441843236453735892120019342503529288350824135514612560330631626326588910501693763401443643973851985172323056845153016809264936812661919005470454023171125837308810923001128665174982644855873156107350302406661371560392798039469635525796469870896541592032198471811485574646650679038883359973437430193799842421787994940707822629465824587654442167236986833791633298462013778406931505116102951057724679665661296538592678371612548477499296148121973631863350632238022932153044760194146172762709605289688104658111844214663536002529554601688113088239871784601221364863595600067872887017830016570744715199724962489771439288005930704739580308058421274053595020796037229059397638410574137784704285382894268305633249813301471554246680423111473433835158342768925833235353446661655142379141125722117820454034521218556613483440958417072426937788052824175690932327072265170560233653225803854015509691882843315440539882039400754113108268038278604616954671211175489349973798035060710485153701845311962363770730040698658524370761916471757263810289036521455499619381203614455741075843341087108296065051017476501286928327103452295140996641789299650584107530651646169247021932446805439734882023600297082078325325306314936754081967654900597997018849744083861074342783358650713035904463993697804946117423596127919771981834957843187939907511002178128190811599977255404669381177097868242048169350246362474802487420272714337963178979751856763921836712302826454398138908942947463538966610070354659402507409521997374954721865452461605335975519861190420311515690894172856792778496111869288457629682671259885608226883974055844005081932801604123016732879026446787036534955769533141973843835878570895579597696630844108110865809712463474306240553981533040816334292631675069948783926457184575439291081812738666483624290894364960912977900107066291063436814542532694761840587840283724325691670251474613791251366851474396219661364620484175223692073929338864587163978679514159489294805135924324903006905323152880887267668411254021085552185578439755752738062016804346006672705555014804239784256968953826455076379746687940693706761216936503863844326778630414545308593188932903134614269311916075043955389577225139745045462231276403981936700039439219365508310298125563382846296377584163553155351032511301666798178190095232570792084775780149325496563396034697655870571594582653279877233675662637921097934374674936512341127183112694799890467683488047341489611023987687090136563364997734258425750664656585659219375755446775768752202094343143881187786410187196026638136375516287835846221986860630201964777234909192923458264291594947384124418457154897642403597862749247392560972802931634777252757093364028899038713801316438410091663411773571942586522630498171112579666002725004066700886098448388094695805828328493098618839144136097101261618998808015227955909283510827008402871582328982468315590719297302841778390067372376262875794440749060266451336419333696596770745904290925960488019261614404971099845265084454496349693125995289039296488344947121796454084691773200034700126037103643226106371019008580436318714971396991369115316006511475177784563947058790410148172563393096922468600366457312338216457127569400225239237476258355733088363363017036851414714669106474100397833322938527376809011739154651142632467115662190199113966406932206530815035402024225369846950572017481168986934724144869223630153479392802095079475520343117354121794169697088501852167874581639158029655115963720508876169957100413834856830397605278645098428798341968549576823785105200147986207089810432574028201444911760616564025670914100898999407052852944038457285353675856335668521684356622029137907571258173031507281405682935188515936704016252382532709270471843837664480359927563829872495538054569312964223788311189397433098978507626823040676853807430911954054558255741946356590814529727688515531406292762338332840759029629740922333427102334427622934003452838814787856889713624127620825402659227735851356029144314830223013643415186273752785298298315886204694419564599923924521861539389121322925391812391748131072600894365232427842555005792523265654197627329567921748864556490904166054760666103814289380221821974768520249922361528604805505332032394913245739651628475694074179471773109828921953923523030356302262051314309065912591941100959735916639133162380988685486917412715884052112272341151974531507684685901055869250165376892174062007926227602591844655238024854737129460174876091327714546500445774735321558858594568876428764294013972300423288112422478434889635299798423761609639127666649062097955258842378752490580043178285685561640828017079734802924232427711698841713052584630997135281647614191457501468570558839505962930189617786263364592173304938080243374317570475979553060911843427793176524530624729749644431700547160286786606810885427106074857807717298792646049248506947429762763176784770111758177584248194538457265626965037215201520123523189673542936297703748969860226270228015728894063329996634185816127401173589006456103653742482357732675522881199178095147468157929226373402774998999573048811756769729048696065915528822292823549312128102872758370068209251978814657919457658182473745912533915928972797361372943617431103094419398150253893346980463365708350644849794016656217452304650774327598959912433064703936858363291720572162857028990817021249359121197779092654821190150719696962782641776937013596007938775190896867434645647874247173614020779034569359390809827280514141675846276759567231319012697428573354609076622615752295059407783468397192170063682618840662071629571832480453340022604591966889320117233273832697131783172961838230586100750037347781384141961597521228972498029000234750443849988980592642791862926930505630116508036175525921100717099565867014598646357357478316639898302631056655043718569366373638448167581240372519352465528726682444347451981369721784593076731583751311285791131056267257625485598645583844125294262272707055956378098016538079660214996400831024518097916163518708279157455345243890969070422893712704705410491577785932058897657902102793067772670973330936892969105220418483354740608534237560811952468337748048199774000977911623249272516465791303279346306686449931759388601615362238423923183160294753039594455465134456125443285258091253539485656658477166304791623778472850798514357502032451635695562341573994120582219316634924408272727283205606958926986650653236905861460479070625846445020595035115190042173192567558857557993934084837892817007280651230480637144013242047214218586503916262046299138552909357891208301209772912944121671354335416904158304102026574269392611691814232726831303120397745182572480223551810333933537358021582377337184320616537927761259236609574282787442462852133462353721466962912050025131561400650702812645865714226183663319234570197982318958065566235419897178445893518938215112301036977560154840508402511205933555640906848590003709268559484875126748361998191815195868741575568725881826934530491417244826219792486528850134330316093573912989744993951333771478342734299781639576766894345503160573485234199783285639189673572525536512853721131234213940358821656771091000935957832223514654106654222801528025567732849448756669800355525042554092698987992373983915984942532228776055511505543246924938431847414688508227817320247595791192260212930362549835614065557143768965806793491376299895837780817089642445762825697398106969735394627232223946702877322953856945802653673352911043380022543610897671482829370386450092568716162228671999641485447049586420929208103950153982520447394430869545264257639577002814202394499685980555343100534478557777933863086305762833176733596579478586605756409373944265480366023535734106140318002507626794038556074838273443533748125324237381024122685427343315633032368033169031722802586265245023254406834110674046614569057226173528918862107134317841393716905388642378656958834435092440404131792375251507042435721036322629197915936683473174180612674430480979294815520031488025874314850242503581499636149166152852006896411487650811611469806156180485330554675862132654449548701806626366684731006564572171369597603380739485935737032637288043314022723281473931554493721634057809830184951806077140091127569846655209390040812859298462048256468148804747240930161689307997798341728331980083793020855717371889266693530622314491335880797395666015487047252063470421365978606075940881264473077670998463484880251493787182185107110202012561177373792800204679110218813529165932393770061230536268122798163980102277330808927200186686401447258921560316788356658851809373398140023914415630903216863409657324060944752777129267951039465189089735655903408961227330844100752216896430903481573379194504193590902597617635607777300456304457800906094836103278810204999456047198275460127458843446304328179062318766722979385242396211305292497223249004444407720625526867628075296603221790571002502592215660444757116277624775483105105612441356222550314023547714258695136851857423400652740413611343393197673471257348718829659444324327073039111395010437322652147533161262931351926810814953148222903760167973155866639743532367193094020999670964344753934141621531613356909545152381524478794461533225859139008294110298942218408255263539149417521148310433549080712214654161853441012707515753607164497933648764991274842695887053401907488421505691429248185516201261023705128778458637793160073142560359993987197595719062569885858987657637465058161380657391296513393127454888647804923274554418460574706079736487633364251609251358196736266751303691831666132350261441522766049028289222560517860084770999418564987721730013566761280677767168154442877062032023097979316874736465765825006974440435642954540066011836881355239650036287773068416261948641370252575479991783343680091068466526383296426349719943138900737309208983875859005855415167542565409261283505168101649139049451938743186720531152856326319285809512531435396404329736825512165472836946848351851443595522169034831637519052430413570484261790653535347425641426998301355900676507793616940103198107371841585918087674280755642789790432259888635626028209985500058096767661986305020928137150962227006718204985460749006789617204022244719781240630989312142344355477708216419587683648649886158525778334994505373477634645816440128557180313226327357533416145174077950797415182756748120720346758505774123121763454825693784507259377253719426240759075092444532761933268095884241140076517437784181114256092545545431822973637324882163939515502231332992119617778535837878816059823285131885287174933821864964316417822104055530057699483313562873005386059840881817260942246478433664062105120767169300754512821365082758197911294610549711479439821344210978666519393705539697145966142711623314796682050203463850379281806536779018809368367644356783520808718826907821607225723727033626081695486578173960912982132300488241418299900740041820122329339132554091333263000250155089158172598866485608585820514032739194311845108138600109779423353224280916339662016206168267175659112404840462045856720543334022883312039721152453161983118501154149919397825332755923254042276256180612766981249555099656490545725589956149702391234088508316814216526746617069654855435173720842179060827339427171969294014148846974861788578249114109567263874069103004615318565925413501165776761294982558690167106898590972648177028319153944436308942388949165133035011179169595486913692495457479652912440432154046247944875284155695069195057952038458928490768532520103272820177123225507127515536127330658060794825611921915949626588569625148361678214200872431613918684454421048035593021178151761773820044036189843456978597526831390088835780348135371573990603294441739927350740063070898184156908095583616240293419725557302241661491901353970247280230431704756297552174249450175969031802843919091233614653338983129299156010639236169887399832847046569644769786785759460366844198219342447081601164852158071328739967370799368359823402308762357993471909929125577262112306648698723544260040317450285607678228968913247020759381609615737396627391761352519465898898882365173169518070144204830152570779041943793949129635194156673963876964970293276755604553697376881764530044379353129321283585105230667763414425404950696389850030108871551846788709511390813461135515152056633751307272665679072087717343639625663503726482251959275024567614196537319940848437156096005096532309809674790991721378982252457555492740930246858700197530896353403235886538829813265970431902075808585313222730004648118539805181423287685891559043401618847616798320722781578651064571784994452476155886565284069226240446758815903152398237750396407016070111453669338094478621383389707089131290618306245023986495349931138121399020247772302508871350535399058081035561382061828439975949233141644762028545678177272640281194723111600632981651135275065344604905529745632034581451999926727964678403911106986648185023015074674772375080537385376524773072911685901366822793167520806946259025562782130215916057102212192759610582196291297665269448709061369207038440926828383405789720928128405362208098134404162993020379815135821154884867839750596160386331321654256759245931534170110987611464811583462140556047096280732874413284741319682052078697907546278282467143091473285915983694928436891588030621904525403969600737952283577946708232841676159387641657062947071446914662913693764092206766205891760414791290711167768025659697039373920273662763290315276356270997638462194787557258799290710956973977868708238488655631299080169315388018002444243010230960334408573898146452467830315654034647562617820095048176584508852097393957199297647372080850594460310832157773851955020395379028421679123133086517592000950459507722137545800416922506591802535465342664073551124458029332920349690356247811012683991495151925142414766654221843091965856154879879700971022979324378067613053012491555762518775597749309191886547490386517627104995088466009554213515665779305096850176505298441067908177668236383864828733650113174511703500180006449851254209671144212864492797466450831981718969305244270755840996061682331797150625019358091799343262866192669616223630843996974308083486556959887716274729948247684629018078220070855732854167665302976239357786497906921092912023836882096548487222722664426979279233937885025777578927131347622908037621447313591229600976077311211459001585672200927964402816590657049236716576959795702902918878369275836448992455717255199016094210627549671973919767477558819822632451943832353744081142402730311278188267094427119118625560254248341834542968894865937526605871082915773051607401261475639038150860631702251529351677999454192747723148715179746709997962134589982145341531238937724192137545655375689308526911773192817031930798733108237673305916597234776663973930007376681903995432223844117123084220850418640211981481301746675363094472212918976977181956286911805612665185177536666366077950588046792265254686820684114542707665572187112942801795143367705524979927646899422526080170632931294937015037125049675364800595213809707794368649257112917320337063509205023488805415702183646524808133876735956573444093205605743404905782131770581679581638617626389828711081571958255404301088305253958823791143590182335220585535691318202256920678831343161549953106583977213289766092307520915376414093754100956661186964573558372479451402913859624042712298707113843485859965054339336039443607311871470632739486083579009040234723068253932036547983055937830850395741900672466450706626312383184743984652233485340415244330862846534190385476108785067917774391315543516831127844055285828177875542113822062444363584614443426258976205157575899832736054738748440674071268954134957019982161591470789045635236882367579710905767683232494786353152880586626523323791909905164471036815654153363920793418720298699648914334833018169721294168609575094912405753390012885172250572250284792885426899744651960638213224565333254406445875837644580037297122897823281328423547089359944677960186323192493816591384545244654729397962833116410983080728986176041129072408605913413170248729089213206652833768436610970533062369098283792506859954841026142149870844621418016483990635728703364757064758017658745790258610103363917865537485209922471661132334697406196604895601965453778982887157192879029239258283742211880970715627535799612506623312074730094223171620998913359363084161132737744769777169017131252358568605699055547671109138953490113293909005857488774961143540988942860519383375723370276088901281612244804568988186607700485394097992203475387019365378259178604964689532942446123088891641673554176245797858562032225579910466551379777372482307071119700167207468759827862688517614999915893045106889895055433154079945913112429521681950406918439137131838404994209443130653996798315157064105532894698128444652969389246778379703322096674661370438029595187014650866253715165311403868969719020629862013601795007412936216131170993690028963253096310691386690191710277899521152127436070448275220584473354112454416914403840574125301726815750315617210723809647972766344634086577746823756182639430095750911307131543743980706645366736045210863651460332614409117669932172163026294902181070612434854778564007646485689245754857496963639820839425877176930540197888983719853046375832835451694509268771191642256693394200415526988310402706128513790747605160255518305153165792630376411397589739839316761592184424398774669988418067220155193674980825376702644798897905623166818448723702013446039620137961303268707165719693545667149677027785982196690162896283929025349910486216196697392188171764475468161259128333403505686176182719631453964469991201457731030497376961814208486931518208720306987351457958167383053644225312972844912585380076298068744254191888405134929395719445125585930942650090954912441150288118876416758424131749557963011504622122938759239204721863351522429332222186727391741763249677855438810796166631237435459060653767940206727390212877542356792262894785817529364381199604754318918111841542842285056994345666901354829435404048957410090129201268954469892029307949866087534291955644346761725279883452264440095074480297962755543516484942102215205835498691252077153653038912652271072472320922835741544320216077385620466920921747207171883666233289062132889703731195008234623484473242746749638114676799930404055843650679675298498230445069555687494716954990350695703760020987720899077279346999636012670307218082841319951939450772851500881809004545877882642555246587290575018225697311666455312038209104073796213349713833551901879479386057901593874189444611427615456625058462113601219879183423514290201885594119069975938933773947601195703706719088350539249938972908936096800252562557583353233899591507157316186174288840443440389497081731366474380487187937184598848102892820567632893157452927486645371809407861137143392551577215184916970327258367295219407531529532923616034606295425288617719556625651370308276678931852251626188656098050538720387631194533019904377919203833858514164133595537518203824596209608797711743250961181233829233514201588843130015510827426961895221156854758492431362634982936612011237911935838290022506701556953772738893019102054676182161274397081338398909371115258878357256405521280234323762731600338838923310194577324683935234819526464966131571057084019862303911538783189137984971432858041797751932976030421687920495341448029169317268993202141880923460294462148623026165528498056628902989643191191271770324311707382168107493739650005236941992340136870020155944392578138742206392198926787052160105020487021496539672556983689834835418630448421239292216155532637731798438488631598895639952551320649605119107879431214551326416075361770116410137502969023488105623383844686826248740599693741762506143500353213239673710026709487477478773547148047565551472409275007956271271130186073990006977281045537310046306246775213224216978541192601586110039989228469364071138663825198236463710756792613506398790381725605592568326200928043617489811534593770789780647570335918869784901232801692734349589558093119661656774277988277889979233227656637632081132673336944322184962258485572945485138913750344273904239730611571993805085546640026677640196534881893591805494096653782137856583144313373554778328337463187550433201901764645970905849081836968742414000975751391056899477020381127338021858405709196706997877041229964614256787404949228389780802334046641038908232806257038094985996877911213546121390180585687219045583865250289901954181274154204144870487649593924362845609348880182152613040614359738612051327500819995816773339787035425247229595775003534621465091131586572582800228325823523912864738795708253294302657221944989292553451534305819884127542415360185181009856006942324377658329350754591434759665854382584436808522195437548689007864273035708908018712275236358898054295534806021526715958743978557614697322978069999213793125462950943262055112972021470369316129608519651871061615172845803526613827183616025465281909463764643083769512287415927741137102260021715708846139131378712286221033388799689393505015197927987674490216474812171020382770107308857494787277951595900308936212641273599903499783849290376806332771268383744004321588390191658872264120612578476555893360805946316034863063095718291208757144608817635817063313865523170569566281736605401219527033191599645144820707658363914681286512008841149471083362688181327623946442157882771476459915020415164125752386336944182601422408080462284025043341014016624965726469648766839474228509606859986846397122295591405632686322597634116547890274839281443925119767850014619325057875738175238882390627389029094131001916815031865955083337702283052209724915197947896673268661627960315053511214506086736396329420890586472588032978591766048187003603412528337535494408963124462844258008728477189955794452431661034394585394039638314846077137933408955575875130195591530213516529273176019242153144850179405355855619293629620272721177695570074440491378168294195832558056271396607330895828290232581492183554431104512033778880590571764101065557532033340724323576162170774089896405202956563438159245241851463550106419264900758821933353936926152796152000498735643782977265843278177094287234430600183691053195172809474780219640777983146257510439283771909093971112423422741705501331066192675500667490514598456050589489122225859487917732201610713040939917820668819890644764165037992111579858849693689990057644852164628591147889606662123756700542334128980377083217984875091328764087522774876852846211292340959386765661365589693278845125122792417530970855920555110555772857519254282250805172591569703400805179010034059376801575254726808241006448878983368552010924791647001170932621826921052638160050108841554988194566995012591462758086733771992325011788777759151114197188201361980512098481579001970564761335236535737869102654710679484094303393255084794288059843789711984030466936940254770418767879599521272187756952078055168720320168193841669395335907701980579200211954191290947729685485879799251392407919130278079513124284960874605849211355386871278582217438687934640210974020568970949742693100111980595620144111662698742310616937265993243413538737252950265473335175413692219587441969219756509443015167776472939429865432915312823607777760069542204522591268720979608012251441614641609603563428305337656716476426368896123435392736029788056386183770617293015968301642296321958162930686540093299223716457180356565144885347224883122066372172090744072225277188306861813827353796054371395923344045185533487044425466766148242585402334500346434551402356234911365437425366587042595587401922213282237542520788268423080019819981465836857982442332564235921208133336200522378105928701438524346364460421846791907937392307160992283623632049171284026547023279207253103285136992147966786835643466586918313869813470032578466339019666139048417107534052784516994243630157965283741832888618980767195698829379797841236451183541770530508689071297111129333571972200428268782003811930349531623194235324626059974779317370046632864722823139016143897124389159623513580719423756601193595208738306168673136306677340493413651905422676627997496714081357120878416795555185895804447633799713823882638976795253019317991763886159772114176708029747616320664372577570970954931040185885932381060543924009786282379963313347770501544677529656716845385910942215301341625298323781184333358003921387339715148369010884136073401386228231618712037977590524384462011557032197019271833452584515166597692739401225995942229471237025122272103937844590005305554082958097154367016987006932345358424343532854326966993838091036905489554955541222161277700397306651524019012642667396755701599337797897727711501046908557132563429902533495179268063560637269540008747605110074153583943862904407331604310937488047785766166758722479861645609630366477365176042285268617942213661057768536286543744413203567276911378765243684628972913440435032740670037729766026713733698751877703106716700673551832551988233790416268409397010467312899437701159201522858693588678412742002069606245305773704953170824606194947241359889814148375780148709077375870254775182278804569560089608035741775958680393505857514852409701671811434980888563312107765058561285424139940975699699962567045169381908477116974346740840572357529993037808139262345842854049722556561803946970010271325271954703457776598619939945241080003696311326537536234642216254247841917581449175170826900151304539211466380273418835201917403035790603085592809921070246114298223495619553541289217215888923863565403607639390862377297898815482208563983827808921969115132989735297101392756876213832432118083451183583270838241494641000047867664199782655198131823437582554543863281774036587430562413036209134662382398824119835518363006926850568354315312131567707978094304263277192924354914552147734755082340168246080172823900155418458074184689101004597698946126522492851450089314846616058050664602920363849207558324868402229902486246093269791640489773666518552327867969156107408002596229450063658135032151631521585785102783306560380480699830928669708487929386660703736864724632152818141405399836560441062431753059678739966816111215021122228320424227102672963727925400837969802908408044287974238434207656788496150360640329351476859900522435567825536592826110797130077614876194189069193180522352165783015157869415742489499496195678212558238247700741050652622440845785903392382490031858566720974717315337507477333027773810042731279936266166229150016204816242375091495833991608583020313054411012845019074199204334407403428660899599369720339066400981483708008344476272093660927495121109300983890610558856972826844877061778150891206819459592001458123961995172045571141216260701220576816131958831970456756767576564215191459955926748170694380324979223309762299366850265335377465545284861016308243132348435959998364019927668144929228785701064163513865985895804341037295732752073038928018905744292896484425944933965055862389828164016826178115734087370604557833017133561391963073369054906205813520034711596923514894816255991504350277604593877480815694093728473744899972531432927717031559642929197006356666193356622709573859108253961928605369005702133933322270704126897920361487720875763963650257929686900798162239850184049564423144385375813017854090514260683125544739265956425188527897310815510393150464649125929262157717976027411339455347536021434626062899905040705088022535637660485941824737074166266169657333713309626856215572824966172776518113548387243827222470092571286452155678505919878134678508102657981945445087935601459247719294456546772356893295257741815723818218812352694473329257232401576698396177621967233798927017198672211981765589647551248795861566408606297180609829779361913163410449369844551584784731961315873372740712813400121842820017578404278179388804186089950116144763329056982713735442452749748419275532246615671229837922754362657966968464149437164003763093380125608058773880001433155088421743594273505561507303594845166156469357406537380242534077115437156803524062754420876925175510051245732952340848291766053008445571407517155713048555580513110022722770848647690481239815262740828761721541757265384954808762671859448146739014446227193913400486146727982350939515245211512431635557993046699860877095701366226939699186295471283224040125913445578162530075589146453331849085553125337333623388983928290093015626572940484158330773797109214627739027975108581188784028515731315357661124398112897260910771539174499746565732103328115343613499800601164472924221510707773320016553631706219137089250800043334066450423446677024427968985730672676074068263041752511155669553764159740475953973458541943680810374281723306481620817823798956724936993975925867507390936802178035950075780432558498435873238857041281620311196759152983256013980817195218004947254549808187724326532319572445942064272745163673957410632825900193138759602097902753346940785976894125787986209824777570878688311425232090482376706539524267540611967140062546818946448078354113621473683983247820343613623126579313555662841014357718565274113663375049409145321130892032682825150312611792889350240533720079588610621272494607346290009515692609256930213635999887158283708390367755255725458818028037406270419401817470232215768266169085542323875567932143713540312611097674237399728051576821799551381663432779783611698559963103307598018610485735083451618515967863242554102980159235197887161568795651463431550640807040487186651449254523092570976913622639039719449611183830358317594013639674133551185375633994862377770574520769064686248174323273543223449240466763660534723489536108278214221233036504943356341015039842976682905468618698722802492674258944964626769221705448857364066440391096663447491594145215989423307153798671013916323813023019895044830723511910663920724182191300311563065168096674918674364837870296461218724465714542451115645828271834587113036524474166343865601934790552228429986215215431509612978480162480318280046176415472439460321358351775824237603430419930147556566082151728296265619588627062805997066143007487796446721128429678747153879548034010233117052725715167244901246846650010031408949628503026999774657017278968134512490899216409018893358797449427471023253569184262799925377767548935996222239819026420159855088837562586336524437028544053558245277397454700743989303686322955266851555631156038277860261877969060385865672093256529237979611871560476282269076193211021792559156314943344002115011320985838920297104033116857725988488721768124659893267401937674732356716845905894490020270362380104190735518278761821546813438153886646167260392763075996332013192392493204904397453391614825571449483672902547090646694807908619926504444043442062239864428325211632962275597891081567668910880415723453049858542641697195171004121273719409907639673077596636090043010586331153693885578082279528264092345326394604705868819793856643823574028155730856476530285624510882960693796284973856936560589435746594320705808056486961941792033592867793817401940234627646448615988699188736659928525392975198081202281478261514304044590955514520009162726784762028575049010989807755314995244565032992247275571962142685856960899683804284317600950449585633176185382848366077445755668439836627408532553568212212556694847916084878835172606828246504068478098401472650820724106944572260968275017070208003012771343624098135623000924297545032627398669360561310559428013985277179162659404041774928203648600957560228904596850172907664498607776200421629695560518980542031118704273444054427975174578642601501397930764259736539584910969610240932394665865933129194876092860014361155484439903685240294733182631482579982723708507791911683556810310383404730066241414449034342261158385742349768574408782985277551619546666251228433406023497866512811738493588044452892627169544662824998029755715217426847563103044696097627646804015127451846643351928417205069049842356556016881840329686252217632752681255247464089585856944876216227234860804708161993151803676039231088074386110101100492317860448544252806406010193374299506194832260512274588496313148990409493122399192916139279732054693537788372845306177512317619157376097737914964360708438106146216887361834614002932133755667022198026689174655166441658770761360324614147281233382211032136139157817376667697006021775791965922922895643286385570943353561493204999347898312867924591721745472908202333960037007297932879269024985454605422559067505015867635622670022835050738825829092029852716791828312577343852165190124903291180926976331287887663882375852183878312456309805639452261586407231031608208297899856267102623171953622007731331673049077602306953856927622547089344157067066225622895839489908144557084195020735140241001608958780673984937438596156493177763839413542137224902972273924298695553493334150763402816530192451520111591655961854079517962791055217799155176411919995221248680575973414808164505110579953102672989984207996449628789195761094123261483913216610223522448889704272910815229065532123825675813832829008312029589619390867007420764414659272551763145688461840527035903789102801155496994749733316888481173385504362713415251020767748907075724961399681816978916809270648861539364198283288502120735156213822834746852231535690588014349760127771962373757491417602737681994939545742331989065620127563298347265678108317957182991347851362563139392863222984402400371960843798979728823736422391289789530705317527675936928823221061384154064123953710334924113178312858820891569405614550897758666893039925682799901867811516205390398774238315994200069989451216053296002107365480869189541410070456998833110388956023313719354697544533478605108973903015855089951402894990453115015526068316868423726673908420332057700534141324121137547999807513793953412445196074241197359417526298445876416174592391591116744997246194500536081257798179875616368626635984765847179625563472691481174245712402580584426945097646234824451348630921877026945377440788324624450296248650485922061626318163192885216442601261599814317239857802206403746329374570059116313713774034526850653719994199221919924114116781771763788125082308820195184200410312344394359148820470619015851938120231561620245043753194028331798667083592002823017508481654274174511770414239620506433800017431743141865054072576735728587120520459242941314871265729527571613993198987900992220818734526211965190223259196122973070941799840121539601733114881869668478831846833867231010889977740167570324689623968073652249770900919135756270095569413276985736578846702621313591028335338982418140889621378354974319078311360806366097303731254736336147875053947958578609358646412771548038252446475770132029170585118177708534542953432631746235389723333255147792620330870622280821499023607317348314033980875920897708090678497320329846992949924568526285977099699297725313738423051770991007508707626741192419702309563632929670261017994325180202185708056433190835992853009339417860775423649201775039031121474580724155232627051105559083188291945118481856487808833034921513659426075794409532597656111192670442472247201995643650950838906037102170427432123730961971349187676325822803610997045828289052764078017920647157961187788140063754366736325786499587403358022959653761704363536806709355096227582259966572162081429735979945629531972335055993715023670009618213920889761290118598029365670990173633186785340735021474237476592616663650041983472687360144047755999071649557489455100941984465912895276918019802458038623702046473802112444105664535489470935643872176899557657611317397440807953768975092104999196175562547157462594987941099188376691570070067426295729568756756028534554722877388969456688363736506119788016668302179942724298559461342039969035199266199188086247541876195757536861940910547585170908365230923329301934917669725709685738150922368592246349916046647474631538212102689967408717620060847069125038083346206723673043080837070071166418436089425418320554308644913473418073834274040380130011517510090938096345976733321694460090362314774361492381654343454614759422604252330878412489928063064865330431295587915239828988783158139647657561977251979038467042933327748096318066458954947005917028232618856595851571540044302382161781789722257251526000743102513121537515428658340383363486400816863025805619554550396680720918482810354373000072015488773289376212684081149501992310823780197744000000416040731393317181896565871493372769493238820501426203754378294357123086010467735471676784565267992200420892843136931278140368603119046121263116636253614331730839386939946516125572357953196539259759411707561618656344692090711986528977155017478431930998909078954777744542384143792763142696598042160743952356945838004659217897305865087705555639973129686751391199724593184231570300176136860739937545970362098835122425128393771449527369387146327870553726793392435710496323440026319106474081657151359612893168511301743228881910586050562978537117254825152179077767294830225115770530064996709893697189481454410170872307246466197371791457148892713378009972462916747669544593219483370714366734068987721220301278950186293832713198127886451632457881752883348929492375597144999346867358445061874015242689405877383397735020264098441393370521406135352214744044983831663252279725632001018613727093971316514323679821583976437205024000331753141189294252246393247422458591894236454961367356705331452830582218438762604347764416238080471372672658446761408807532534851587604588744181063230576628177523945387656744730004647423608124823522250004559248808544443418977561759785678889207622746624365912155834954430413266580053328522005317904365194472423164113107866141274221096327568514678105033378953104597818688631462542439513476623590003717617926209785859720452065910337283078397089598385820133316809557853576851068994121598542394885801761491800072805087255867466528148044057752077867809081824334919593782389046887135398034697584203757460908114420219803426949978183487878948806987721814005297372358545392109363284041074293117415031690138574165929382045871932409997504730722815109516994060941824577192353020797012623286302443385740261437161797805737040840280870491423055443510569369994246844043447647816931551799321162146268088975185465740898226886590236574596363851394306643627756936219408858203228726851201901889330798935047578761311282004261266068044909980467762439576588983631217716160601508188630594493159304008708194505898748887170823427615767687557132332863544258181561476523645705854601335718524543902303463901333798765450032891305129840663150123079930145184660016647256546544578856037659680099437885764827894906948704887123549944593803387437878589085540125485277294899795406424528981104283963996128952129499055183855934536232660390494658784910342670884726160827800228414146863728479749209302097252731330963429921493348473515470472339743042746936255994727112120953919361756250580172384527177645390228134968625158652560510236531155573575605851079771360860388409543008146073025966099052356848625122329005039877269033638573603897380737494559357924496452483115068176374777616501694416850276450669382532651868373327496227443298980565684238252063460220078218925193592485600830972195986164055090255228464879731390847491012072929933430408448347118933139261426083086567061280427924415436708667067896994602249641892168463290395450191997021941690400035644235131483635193626582678871773377661347576654785414232066613343095289426611788142960645151053075949119294458765048540261553460413702154727620775474157930177625806575643179604051604351585783741614545271180816670000106561746197142512453360986630128979454922406915099080340429668128191643776874909526523162598139383518158837400898143755415251743416642976088779060642759720336377683232925296861680936238961728017743444016232984776319460504823508060168441255801466853872113593455573877349213187582308869246676875926281703381432412753334977581121236706263029795737996191914454813415036161090206812696771129122318358127101795138975772978117410651220542863240695449358235447687581020517673126844058640931187972664535789622416094586138951480684517432134196371830533354643361639820482572062429670454614928013382047913428427271097357145815798361039451344747974809445147987087212153865007874215997627370369347256765710078921154570132628813042956451658890042176749094098665062151426653117664368565393037845685392916620988998138139967055045776057860784919167126114235228171443346410547409795412602272882132148563136399854663056970549608545815056439199537378031617341059676390674461682575023234392393647118276089971657909472526202431763103202681374848057725356917855946155441403569456714993309803987558078786607030599175977566866065338386897805702295451981188120982681258493133242093753007215701790007611257366179945110799855565294339274079865512957212019722137824852449119692017386953752457385245277383968158552513973048311198654658346923005548182849881664178138687956098651503902097199205290573807228842153690087855112578014964576922437408534115277558994972132927475059915469581409838773067446911094112945305453483476469473655008574674892257102893951956348116723680165445279665769360493324872800101744260759264024879084440103406883385064355169772028641010543881986462546201431105368764738968571605026471211014796061554484064307710222688292485416737919081224720319942340911134223345504948400460632580035928619669420500413544386219442341919974391502621534271943977016919948721849139549086211614501558749277805877438966683390691058083541892284683999083733990281878012796756735821264066682855411566644768920213310053471339620389846954210384879638448650117293545698975597705765925253865106822904442108016202701508316830511974416560649176441174904826921950626291019647881677965634521246404403668314831882178360564021953884259406316875697583012971792997883745319731467698189325430773263931114730166271663085841331736593120141627297988467615625141139181594096825414317444164042084479933385507509014066118343438996306449190687951682597755610447541097035503262878720930094065659724150235274677337754355734102878241316889162006082172690971864773834744681396115465429179669730689883882291942862510799840531087979003530459575569347255840710674063537155406669230133773544798756730663630137366248178887039710116134701890503701384609320785152821002257047829980684211480299860780326162522602636772250106785023305298482826460253712849585779360353148850210152353055362885793804744543761336823633700100390268105174086067231945337425099331271564734652635350409315948455803954080676112477223764916442151968786240811922581494875445223201686471283495593090876950873978446235548121455474706514728948972189672176980887249831555436160457042183705176485001258350908169922661916481339891850086683428986431090726280319981302618423675772113736618513497205334510349642828014323796027369869108769165482188087468925567885820341641995134152331034244814188243934471529123984590367908368739872677449409192467735966823291045647251061351254381120607098100463758188600955453784882101620936779044061095147873494393339536756657509237905199130699334402085342314535615788014221234961922282875592949519325026807001599771806354325187242974434185249435120302891663771104056974300961481889181867819038088432239323354203723588466746437166517689414275050387388484565786127656160166093416478973804127954026740133908704420446049397971960166817557538872826896738055642656754785705316599530352739437833128441831712210450069701184370752864427938690510290693256852349459408415371705007686118935719434045389223145109612284226234628877737225526660589078096098573871398608348452410277519404269410723653141746233213995516942015881700123736951245228844086761590524617387093119886641714892352684423204572782718308750635494773277221831575674487446729386157599286566986450746865667150995526812747871610440134530774205888844706568373181034841941290391136419731868011250224847869075190437258767502860436003579757166318698049604184599806586652245134805344740406651572278760618971455929359912943140140899569897394289709025703233083879792043839825043783145513841277200873813865535328062854445231358600235050576430558904690235985591990093309339459772759104115764565379808228823142914897379523003323253681555078353996537154060505720191656737832491476056310565055475506320686960156116448130931602582436140398458501880675664936143805444416398909545350285139508993350891297017688157397122980466231075650369051172401236526402120351575977964935232145386911031394237739274116950854256674772872989337437103354107323113223434445863107437354740242585437277273827075870737134174169182874230104657565115349284970270431443040422369908421326375428953491519019619408636286538348169392162367090950561898227879860087481884698442643682868275838407633962908071695110472745302778668610092411364908887121599735644785219633600406344526119340028912912509372446139875166896853080302213445158427601941729495967230352474781202306620565427147317253676772264689775482559888157733714380035044186899849815525600290524559429988054604915453606281166611566504936143362447015104079503439841018214652825324664493039332259611108002668345869488962959245578128763449310806314767141972631805149848099180948637242558431589962880674117966686016539657556594512991385637517314334098124647362404098701032891714467547536882763974823770491197069147804567236975223063489496149023322451429878059621986568790560316006919021126180698041086994100551127282795910530209191919819495123966568806830503414375718677280183174114617761500669847049601478803851454565506655452037183172001213426230640468884885674920469119932462395622105838087968556956202567500391371584379641784998869877234491059808980152290937669418362953262661738700232072336257233158567623970085834067977000526311993325630415501418657217346407913665709641327607441891317420391132913871554154049253928404681714653175932086161672472409103912868433037513756778714746606040300986736723842882711172426441893220774864926940560474018630964818118199261031900890879682874327195804049094151096510621784406212724951911321578779624456574342858461938380372733295513793164022830895013072172194103941153605990607878278733411418529132798178523762304097168530342495360004528722462457738602953699177183539178925845780493488792771049331317150822558514925794631934184732160906792955848100783361271824815526012562930104548275201741402897935127459276581021025130713433778811567782596582543255661998629607805457466341537596830768064081360354409596312831392257459906100215714686050096013364421652638581179759159854829041965586299547351813140778704008715635812715185654439910719139448271752340114349043861235879050507316861846646029072528942477352241626742465347447342581800604560818130198957491343298451640161757997443133221025706041264963089785023583867907028432688782306787800277726570464722883312513352275421394590186973720342350504293464522460155800376474358373243406385257444917062499990780942116399634938304968397052592115955176886046702188674344637746765135593864141317574620581136218055105901335528019540893282381727341652165504933309359423235984459981468301947226500194460743925986377043850669924627513134061897784585535045913356880127127843952049569986540952368675195465476965869515368517668410528128803156887296593447965865416535718003237837720003962289689743737676905033310338001094334427295761642927737912120484421158800213678180291758396301376669089212960745184210188308271730841162401678349500764181061643265743442441047236622920429973883811986212602368763059936574511945402700504948248134514743410065131493515626090483261773487453930653641287189444836820238862483851801095931835176247663246726813864348013236007495929485302248715447838428238017718970061300233404505030055722934557100064024312672240939511870465027998042792970680232273034217428612777997030580548218002782788709332357315281028808477827348832406037371217320474789678971113126677478752592197872921112436915879894579404328898462245308387624599624073630345311680954948794237376477156076219350592497766522154103951294239385028952506549505667497618229783153855682247508192866446026826784613482234863969148005769731510143010365244659583610233980350243289703510060479065390425924795027210478115935019217122814396450620262231622356609700061123020179434331926503071360217119093360980063707834492833194200784937710947489231398763908400358686419147526714887281267959686021360613848821199633526134007874162879937312561915290573818174595564806536356179619742565268910404118743431532168805583606992765821966248941205516876938531856051162934198681276901105447235447176731220370444720273056759945346604514542871467953856122087657580040928832979718945328535405644229153250317845053717408293129767441407397996440521351270871388597215758871589883817080065180307587084996737899564414140659144021859538040786948525140630501262560253073399588296243750284193700222727136674242991513179362265183425050410903176576461060871079756591089724506972408009953809215495407641741391142127491349458529062102350041264071933464700293125160256423920407090699603064408169632358990902248604955828666173769616575783288888726994205150048641425957636219201836580973054698022575701166729277726552407970915769910651713891369852056071512634080092091745278985324247905900181371172375389287282996357449458190164485094978489711486108093910705202638871235782267506084493832911022185916823440866880788137442644380994997905157805699946176749411578786241132872528659751715653367542994557599937274108217546966825515896262910218347359972615280794195090102993167105125838626226372336311233642010931674135296124228502701270411144686271176420947365635006207552250180993277843008042324569562462940469867930453613468804319004097960428499028534413530247344136060304317248879249655080856067765563862365445249372265167075441294515628202490702942419671491254836085001470268879604774231903043213412970832649372455391559639034852644359731686568817808097650431199682670130257375763043384037720218776191793354903572096108703931207998408200472637686429903677175486213512397463623047409124565848432548415978256815059485841896946344529138747229729320873121006853937683436168512492729957735110913994929694773832631905417380392533802657832704756999478553180237757419747903293954388862459998277038570371744480719827410164426830083345659255505172396377645151245386525227325065820346758254183707699749417293248177326103796095143272898121545952573803703516867083642030674139493235691239779862985011710972971249329275407955074045826486109432944377713837090629081437633301849686299565557296127734222438868665222101393966797783306880727093222539522486270797000373285060478554674233836585890079786062719344514056375724976734246769850303402046618246875862502765286738861570728911538715564883096489190265787533095767992900473999248391392298590963548988586846785475351011202061565130923431997336410506409817798769950781155087828092274643502770665821648459212645249126458287001265047573811999148077067534952583885812933003991831636777932757862009923524867389223055358893176225250842798684863379116024229930363991777799277117396649918477492692949305427571512587480831603571012741417992348381007625083828293675788262534063396548773470246769068104575667511640721698363622301332857322941977279304478250990762150330305968086925835101911995018749830841253427354013812906410143074857192998341690317673420704027384771446355449894431099683500822292277602448279028440915995654481614444479004174808794465359153197829973040326366411523451178787312109185808428580014684160731344529065040762765911005575550169744456409081687073210371632549742770965030917852260300017970468172353862438219286983312518599127782713059580054555760098320150186943356370695656527550081424740870063594415680577630715981814087500669261408832153054821281668662499004328217578838296440699457956310929562192538346203557710780564322059500318612788213531984838325359337268543348802602508063321862226836929334070541436911147552480141338259566884554609865000258889602622154195980038796215905221438322563203558766527668794978794883888645896782906084707369747447591817752212781141294077895863658373219652401155245719185188956975329144077728813015430467977315599437069105162413007165465509301361692662900049021543570969553922157602932825891528204903192920139820853215786178666452485854714156735928104508313451927950392305531272513959906326156512532828627071795561139429150400512415952549127802756407607735448518815384607855757168017879398077908259181811156175564136764529716926626511845029596016796844746508982187545531251994605830508667442094962656003802555457459557846568656570023646861403338668869644023431155926587898759185057543834405816589960068651991578503497229693213543121866844866279726808376511180707948993489312818926105888582688646510989096739589461259641858950641229873931777353595998345884964538129313346388849178937302955478968999315740490983209551958009950093658451739206912430312628697153730564342293153948316987218491999737502417008625600824081205920330523722781374335736645464435627728761566121212605201732245128328957615978095074613190235213639859187876885600005430561223972990618674506440436970000468799038416793834053727582272848092432563368172902492266151773015444481683093297398510857081654646135868578847638195127523216283254567607247611713275894973137079845272219630353053519293798365009632959147112061001271128385464068609858590914140850245692395391283973518669644516321269686111401455226869527501510703617127656506295786733307126387955616621250657821021508372052972201627310165839458534426834208517465659051112606266959652111690749403886070135243558950830795445016177534397775264672690299133042379987805929542439705964026235269896091180851768913147485667662918733330510389850593580346829442713572309863647222120366087328044781748090521569496606950801982355912856465184851086999933449667591587849973154114678830789028688054217806940965838210032817376666290987572089373541585643723818902162277725090932691179163862920337332081556012697717066803087853523941247825436320186681651121749628823631560816558670166985475993119307860048343721535842736934003154677191918465290566452364864703821985048608873527674662960625003959395241603112504746612251495930080150434470399149491356997719501075375611088373164309270500070181528001668464983719892330718531721962738917282502437462901055351480268338150470120651715385050717095362238556741155727557193784007191730172253849649357105414472572058640562436418795547565733639833801948439978938587754167965317288519087687768203479001620767561501807523994093876984865816578556602724924453355654319832766687133925925983839332649429741463284691254074943730005680965806266727565554274775371202958023472862535071560986875670693726359149452593552441637116005368895434008538518848434148873482845627855394689100491415081938065440409644432349166170881574222332930208732855211361179674894435529601710934264488093314428115637923166343130974181162182990791916867255770881884807561656638102211986484760864453231413997974366596903609155301525724225344668409470904368322159581619827529269744089160193461661777065988926300009038817920718232999802015047121098231377534915576541851206054835523140331448346025982751317722577337552571634019501236431855157107292549208922500938637719656624880925448242218608661046043418278585854440018722520816301533082454307831696932259559571085514715280869129738280757517850958249064431928131792921373059011779650114200611206368807321320632142420153536929929186750726923396093043914096390363814965440323074877862275683516325167472999632105847474312916108692048243746262840670173252807263974765724899787539283107041845287918216069773204263128750537007295136844000550482867964452382035674957837582118324986086234295211409836479522718859509853915875418138232178730137133988127416092412133030451553136243532367142986498453210005648493298268514573016331529444795161286278255470845710151325933047268193641608174881921125183888668802857191718768251376086771962136287824782276568418097041672898932960324151309067575026671505273671756943895474715623813618488824202538096318949616200979898108990386146067531828152407201157749860053397412096159680619038409213094484056278734089099155872827662346921603480691619602979418201929366843831271969952671444229775406093914801747795518995626849426095180723903644456365064969041510424080918003656369098227046942681546123480253681457312022129707612786668010722806391305267730743613229594748015147453520574086062880943704832400508801472492359347153181260292731253502420275429941976054450403106913936346297400162731080686913298498512308061212445702999386032767244463073712157238534888483031279414229783428921215788782145557814153938385301930757863705049068738451322496528340036916509939174034236463115709743527005896488138248425192329666546026281028583782587871889793818261075045779534725062203805163237685466489252949949655097565140598682589391481445551619313085152024232019357407148458376958918314855265857587440902516191658193035969383268256965090666759564809047669891290104694464984010634964317357346190685958583303818029486386348035438728252810103371402989532071075223128623563805462900336567694396275217079854082436631346007932130753720447607465638391486097443214066739730672981021287698544671092527196577117609699893947622297105073614500242682964013253261830448052896502269890649045285999369226275620678796332724412823424117261248572459188167831056661010601338494673258241369205667674213355285188130696759810508675947546084773835432626961308801114899253723590668902984480880919354236027109514913807189987392383785108400300706845272758501109221855178421002686611378006955416569036092458092758607626536282267294407935261588736470831608851470699217097929695199980223992328152381978417969923413901879642143578810190722728224797064912945117392877500741768857495588675328166252467410510085024604488063556901734990272915342423737628460551360400939029005539687480079336562708349993461179711544235170189153284229507407450195563413220442828040977285193524841503090469562299766949229977245431824318852136877220836375691409969291437156254951754096687000581048090141980502394672138600702568794410754814998687226552837956637727656153749587327880369141098717950165840984430377496501758116921810198057850658684207220864539269800152714359135721392922221774448259742034416757788296307057523068433496116676582961040257449056596643848619775134772825140726962736656529118312221584222800647610500842266361226637241095114324273235004902318747812042989626002458631004021167342407650400844247713051165527661927364359684622361057379223166996957838768145998829535498974573649695462403512506341029012356065080771340971043262403415226609206989303648069070456599863625421868318724060239585894429256514201440688873184716364150416793493520521011706172254280400398745507923113324254947868760987994442093098272034173711940300519954254125316955348904573035074932515658856407380689520803449710534426742812556691242818723273122017030378292256766849691006328240267207394551500255558056470302547190170984117089087108244299520422668733244698478959167429544122653863828971023228238858960711496927864128999298639550186763189040618760533471033349190036891270442578036781088150592519143076275858310447504551725892781394017589208760159997598685186791559839013903151084631522263142083895934784345977602903884037157844605073232926079396976724179892929020981538290818367432031564686557078521406588545802237908934957128114236010692724526504461209839495894902016616830380208811362798686588761850276281729355481188749463871787800580599776920620721761659172728181480145781828681979885325719153872843838146498552381369960175784020583067478398263394246739585061495151170775810790571554959069756957087434158337414109767895813872522440692414172963752309191135934067044797759749993287708662006398405454218149724582237941235251902885582226371945191131879928188725129466587278716459062115261521631130869664712572492288919109464289121524971050838164278642489864862819737457406053746231124904531345855061130040053973652756226700154507988340071720860403920691193989025044664003465905617845180049788552065972919556647528806913156973369185844031223476721556943299705528479047721003381712828143277430661140608818694181512294455898062357269445184389820279275472939720287646514499959082566487904530479450088482728684498828658700045921167832848586012357185080824195180729024889505069822299778548925484033675653212337952039886559164526267916986646299912734432985959105935952221980420891227951177849023315222123080132464198444531232274149375332740966612014157627272128654121230935842484329069635980308126073842219133437292574098741057846758466349330446750624335719138212598929198392786088543590130047352796719511691436665671722518529892312245324334812308757470303624542477578346616316423436741973424774238458469903379163172933338825058468704575159086385572432150968424652533489290155856098971373489573431077619430566099871445642478347311478083868591852406336337091544703413844342105904216293509904289183671323871336825370071962807378283074617576380334128221375344640729258663703659558675605028136342922170042848613375876761292707173629188272212754595612089279165151843437190800905325006723389303783210165437812510967081794356365006464834567322481174739792980649960391312858617498703895264370159453332170159896317226175654492772472038401563136973529645742513695500786025170479045818470735316057981302612063793476197704085567803347775031121854257766531446000396682395986768146203393157531529742243927235860479082060473168922957857021504219683499039738933468457285626429320591170389469302076432930242288766404738397448940664402427213794156530625701329760558432412584429292670913189189143494506281338036095358728118804691731408508821597264580068225956108240732642084692645823584713443571980172843577188054342981137142108663356908527853231693562441184175942090666356598897627993210692693358557198132370017719082500893474280488092294447319206721500470383536205632747260506838627724588603002857774273653127739021043582562176883456367756405140305739464158555023360416651588484682182673505236966297227937308314613472928826863467490854113263455564195043452930036520520997724806199155633159126494855671692573521201493658128369993589844725970968169710503242689517388242077682658671109275956290921654250619551406255209569882042280896603300041761193947782858094757575003821816015391929120130376775418531968588365036434525560635278848325897252963281233143346254066984530693363377908376745346922236381128268520368771891834717761373591945302016171523038596065386518859559686315217743699253274771348912108691504870954653626964996415536939827002603044805207195543060923433094996273920869691827984729366359064469301047506052856833386276284506359487700078740693009561309417151744566032882996135578245308210950624664675774739405703036887208683997797279654752480072106395678156021850348799909032398116868797475673010161378189028998456228275050208999682164642579507313091612907416924880866986376451651229394469850104146290087889187245957889474354367649569208739129698449084136841421219707840315801208953742154305847189359066607570740440979685684280383617531670890999250968597610613863603984847875806826843836935216662243463863600247170033401976085167408095847251727079683371602435620245535669765994520125889357572926524399632909105671795548609391319044977150025954136758868994294956483314361630464595118991894697744901081303942085928316139276451875319518100765312201427555495808294993313547731954615741773407581508193062946599476925915277845993082713156997192534694021158469679119142773851747386335975106733985830369534943321670609850425242527828878924548896134497597884575996067813539571394149646408840478117973268772881052201414304093180086495128980254006023149128382262739248812989012385894659832563592086616367474220811614212790169130259143507781149117344766501618386119891541611455188838796623677299175264327164250266682596209910475504427207150283190638009358685736932577564870649588469171170252828605259099057915758186522237343605669259804921149507355006085514165133962176367071327213774533496444248319537582599786551559768750645948928061949554743698431796029745266966799763668313183100044833422597611795602866516077103295733514047298083527329529001658814494130339366444659953933318826454346862994796863600599152651113919275028199846668020773757739604367058560389293847529576353762273476902554886557537585054310664461466949230949167950255621025376643658306106581429581857431404443831679975823801484843263449008357376574971201438634211691996679152195561861616252192966552334175385996335006599286591422035479557035948728166908739466180476700725661680342923394106916643223480272959701560270363664526478259510040831183999350480360287139985193195505933186390743865975498549181696877427940040195891424634618871410399716841017639293580837712223422107115784966442057162166807396329188133860225880017449245327945998847705016396797493531732410956142808415306164345639042833114527476145427521748167047341179827033828122596354409104777892876884019267147089357430410153930066758577781153715642269172394084044479372336638561055164834916550642948736729507633357337116057466649587314635972026985773953548015586910915172808031537993081645012560515387772014727259592596479991644622261892285577552988927687711535489642573983750573588631440313555541512994020336016397415507350232150650783208053488909162867464491043046670363129248851151611173321205092332127747719194030722367585850437468354449114320646785330325350558355905295774021171034559379413555396680666231330197914321163148744430349131757848063751463314002422934718162498539854036779038168915237138075963117033629006529973373292228157502941484324087682674745561814434767165920957914182914984706972113502615914571054514308559355997623872469217499131425666616661375618420110675542387102956477367005195369284616168311342153204339823926364747460704186906381474899436092761812924278447767005599479610856540878048957027738500830515191072244810099982939691706191900838111889667823964879530006434671131022726182207180860698243094698462958279545773012063025339373352882543217934174440348091163125846866219427643400356956415129188448657962031619672975436388110000559010191982469154682076068395207093650176497300984064896019596907716614030046480402006000708818097847105815333605873830619646738324353302639857724659441108648897827943098754546196629934922916778325981556481160924700380773326993157238289853627556594508016950191379313065185958109951750072713493088876886526454325092033840377184570631275710576124455891272360150372105598625264587737655844043049427163086251686667563970594232763771437360504432321717231850350752411854233303945892000194693520945989824821757233185736630863092866734042410182611937634393583741607534562459817880483088579671585877905476383553228402719046127939448758114319930362403402448515111131973397134810830595244240339362914984129051578466965037382218602080420447499884982386304058178377577643910924176822258757289863373184737393617548912055442390822321535466904519806035241902875341070745096988565032771087244568699930731799208804657393760032054793204263381427605074854190310662472523905568460098584992504448800264967252831698393715875166867061050286300613014819556725611472292606755075224994005391821345515986497480965059938465568174460391900232631067231275393142857142674608198505314634610891792119574222756926638105208200352461835089998147465532813489303815973132610482979302746908806541089439628362381420560145170020913585825400757341005292719252419331269821618818449203954184495654497339365734602070378711659664197734143695694918587714157457011868636078475296808527174323623021226402103935404861948894212354614213988593732972670996438290899510167786697593510372479648798121063606693619843667178867036376731187619072689173973927728040057589347985492261076696438907955065954340005563703657285976510879294488147290583098386284343704850617711482596137082881262930564974250870858607091029315839676377037282175886159882749423528994273689093139330678208253419862598756833360656146066933443227914910183509780325137750843265387163762574166158370683022088502089591096666677827307239164430674880223761492520733807482538006253247011059958128554753427738522399483577188564401645941644836517512331377228815032496751659916173156391924191663701716493587635088565922829124759229344656772498338080706446881875565574923883767492440363211123653282567364299692871615805110109990119535167346197764391587988246884171990571272998244653990591030879086605382940730952421261931117610781565897751250283348751202984160162860771363188269150294054364633738859465776060280077166808433276712989869246640828288585115915772750613821193928302351872303269710776657954370814181961644590418199079152177396843512933928259269720501771630129115838803772594350096818198502328633988609762099986311815480778507225419261697333694544740292473953032977262915925763233949283281877351056158599495089212085407343193258621266094005989128493571832748399130414391544234376801072661414910279972557444215174128094402713790916742484960569324148087686760659207856913484400532550122309484096090278113885823485994992077926456185392197909973357937570243449775403750196871329194138500749110010968016842796636450482090267888552973177360622642440908262089202877851287144244453454397183933471921715017181940972680298735159078207246208125853808503257522104961593732334647634113912482663366283946153262202854256692696445969328788873181865849949546573184656248081488530758643396044381432569073472523076595327716830693652307200292638149561794487173506010467147788654115847109071712308984513439839182725453676262093032946859256007723011183265752487166531543663522911961511938640721345775685116367941324112841934776649377274184699191631143450641358272527018853808024143914137312988787973449499969658017554608608751656238038463077742469821632896710310549259142546321411864769940724895854120087271974384265784803152286721008804395870041925063688454606089069511901996745241433293467420472471976831436919724114988056876037194551990964992184052574481742538475305604063624538264623388770909624780577484610022382831905038708661993577311620962554048233013556316751486209574348202609643146025812556529327540787502244315326317030750222201027001823158509413304479237469951839752018885467572838373591376687791716898470584577819006075309500993194752196327583681130474678553499941480872574208576150827675386555112453858783221709311890209970157986182215850742997848675448929268727699283513415813154327807762219975529346499643851931346016067378075258122701189224461014824614809585923159991791045132084862593552949333552886668933753165993075825089353489524486686334765167559189260954402028653453907264243391539577078826446022730155888525260640022274905612872001320457409893694895251675701554180857573890549476545032763314784276267247752768029185805965383753900148795755779390011272713303929588893658996434533571063299885836413987554175928844215316241917669273637953922655854004122322943041762609568456035207977089278768847095753077946554120457652130588778510131303113330542564261744729028920797181758156019672485895934283797576834160300705760206513293686839023421227738885646414328894442238304404542417654125234400232361590222291974742974069374074146836099496170071419959315968028508005436373358048015954612950853779984399935872086007034981777735077378459669819014363734675631564801770045023416287355027453655500677385765054168060612620026521708824714463951187383405665387172702026004722716963864440494315165478361417689158063022286099748005267445203810531527977516588557169536976732555869754739915859852271963730324012437919834868576240189268109234962404672646130010384886539441478912445042695391427328557801824835045388062707946623051021380335559214952513137385318192019977790851076075768533946889594235829700633976710607159153191193857693205841344026720835001658212531149980219636310631093229149308166575650552256477928143665787571038588732933850491042323646774856353131737779791976159821609151080864395596001937717274300450937318272911991451379397597428681516720013740892676243598666481023583879983552370131229831832254572434105431283097813283243438259645692877484809894231773282064178321032778005476305419439045163939525368121789000430456190756909040333618424300836443561971712445807274757266482217540274638985967322369475180899210342365466464542450488954068270464310031782831600718034875948263491690688689041075996130139192236483279684798022933802301626408417861972826842191688012775985471981511774167111353423384326641787208282725247249325497527150122083631159397558117715827802672682542519540671654459088087846799689890970630302772268392953161530816789695097709689355994458565491020536921342552309589129745193723883019444602430171691101439658168916850647640060969629785137839185924305502923652661459936424302806886795787522404695682407882734547815920686746431546441761801677292513889582560702844617055181569176902681674526764289626992495220337716074274563659034646040890406255514291438728061352543984422301995060871944597284098797103793963082462479733673309611413092731045392012784367305699017602114071039750103186425314720721106600175420397030389756073328383976921425850481631712443916375511903333036583910930303371576174473733082208462896205025577180331087132627472893316403227530780724053630386927189146185598324357671537622327812575009475322778594851280090897411502432497348827537480131708143582348811099899741787618395352277772103916838695256626322287774093919258107082216300559283157383479819895862184684774319934315994417485568158311435506776199757832215536168848707259785836558167095087824262407778965324148162864533617999291474493164125198043726115291037292949854341055763540633215868787727501067579831899186137540821605373827673714061530035672016707061328896361702320318424783040424487954552877892275499040101688499884096205199720795306441359935909047752502198665134899767251994166149467757570890315418203841949429738721784726644259865653825890859143593061709070205595702847775164835223223569249852102496108248323363483100062708808466375848490048968294729335069949877957111506918874381541955344883801783868394245876162930456098861931056072256152328671483283589658522466460502105520948794504975268462291575900004965835406147412329298694841095189220430383270150612709485040293701405430034560705592608344167564583950434566441644475000794542812281308289362701932090906717374661163275575831599567396194716389616241015397995724736567570765942479424159963214746548257309572814919611132897025749750657292006236806407307935099831750577574726889129229743320213480438971365059977926581429999381978387174281728239832718404571062618954506391032472411851223578968444598054605445671484115574753622155978880760975552643291805773182480727047530761003236238212482603464203801777542110789772451363854099741358057326576050946728393543653480556058169048587422280686322238813414762993096253898893980244730628431993970716952749072464072041930193937785050969024155752893078782947336347237135742199410399296301641270842752386839931351129005122621200714011573058285675281322857677347379634730556130460294463721534244494931465220452267099362455026928542081598353034820271240522065387092023335240543612593692016317933721722122369893549841355991859517056677799034303003718024982243898385400334807472151221691665133921390681538656664945785989541632552097388311506804101936762203381008535866160408618924649758737024078119385053456992335125682367994545173428950560149677097839381231837409668200143686760722263215515931895912228452006563970081488257356932676686997198796123119279165402694075949791542705049795092510680994907539369740677227194619167111981641146429723508066967030995442942625046896202225446611965112880680229797940529725599354016213226774873799334472124462869489202479440366879773504786568395870058159086127599624563012559765615803384801483410577989622926655081678768717027611971682879006152205175669415148980072876189945276779755592903723146462622675953464613552313573262485382744222361797150465561446351479844320255015499646353370426313516596962257390683728730358931947066008474607111926585732759785512658604926299728290827713934460326851681470396076269803919522351178692201632847583479394615945438905900090438636323620052857133261373010597345432939291685401809103544679447345990573457054146924377705846733176229929638165161851996043239583561082867372655443869624149352648996676946412583247363695101372225278213929168661265114449137859130907589429784469853952363161607376682136744639672283686853328980591312173684381483613530804790192456305507355612598216411670774614992856109368495098894024576475759021414380435297802095202092706316223934274535476771211812216092705626530695466645025417476168175552114008598256977485320538678035386449504886079413604566864780733473109542383524442345875314494329853255524010498622464886106429334909660918067761020052797373433063900243908698700801122295423962740286740230363355773996302672917819319400448038747907024928214521535995442926847813774585927423922283539093335388378368331105089387494981423242124605914164293096329082908964650394789475749841078964162240106052858954013525815671009337847149092811941756567819085855227555428415647464452016737585745972969603809887658172765697691109850371525644475178059630674865280987998659147410963253872463790518796938754870695384533940135768866036217766328911417105157455842342171423766274708089753818097761770165434954261774352205614075595610610524780075086369007643359649287027094298233329977863338295263389416640101557091575481224888932985241957527179384557288092764253329500168755670349778695907309650392405789913479498602832385477406007047491343087570361925431601193885820725874005511689199265123356310539654736258558562249259982480256255068656212141341696831667636745980222687127228913558511906122940906173018104395599249898519340733132458152577297354150125757219706218306264815451383664362324640448500722081526829139605192953568748153329990562893876351582295639859670611812046459065487811512844431841431022673265832165380592093828987334461119041202234109967177826961572249751850571689323379263679559692483512664080524041436477303797009755712521670369006354459975220386179930809687199785826731415483667094051895124724424003793976375026831501218440729471110018504311095596512188098062259395702522490521476904987757979238009121290781880551563392982592015679849249313387210019455157863261749935732042209839216395196747074447438355904187786250346904168825364386703574122706244495902115987888183367526895493375905909934062994172055636752968157657546545230683113559861465064487120087003844263201543248176639164183511369022140900766561432524939804666044353452205253558766212123883054202954758386182046536245877228574710897188555732219460086992873184082081823267359254036002018004999373129653846100180663338914410084444112464501582580584308011115080070694374748766027294425710771753213673755350145554228202158357847126006016031221453518943783687863164206527428903868454852552066274043066953088183563474193162272170698987104485395800626190367251954499134975304852518172989807864192468951714621744337995608423841554349055939946616443981881817794119678291573104510259795967172795377038213326453832360197825830488826026948288774851676675324968428912359094751843320934451414527116562642754795352070076499600384145152616735034984359584557353774680564764448293013560141184189740886364792297175065362310361205943257100928102343801275953294450340654934517808421512427784983092849368988464912165830689111662533798756561726351505371790815199124083798499801167003703157879194501109565547498240358987347664485905889194695269219618982729741340816346319841964397665439299245272880909967742668784403105765738689653672911371236473625506710829996736889939433882423118528795370483270019395730942240689770277525064304306954156618752364796268533062578618982154615514883153096152520039447034053041884071349447210273654912231451283671769109479715680184608403016621772094214749365906179688533643605930753801832226539937902897766007439559514376897860699234761601974933076090884535488816689424134296866588856837685977859553071727804126826430807616674387996060726603004889620132107305836216858480629646336428908141610304093600642207740451031621436505912984046697682320500257762018598536866109335972623917927397377103207691278443932180955260981274054983923009245382446009975222313485144903767981477071253495446746445653388092074825550117628587492755418730863533529913566852093998244727583756845867500497195195498108380520757867376029808102078295946575366544267282423864500838921539226447847680163042389422421501803475389686126250234555489168454161065929034229775081760973030191515603713265493617228445727518706415901488209167415767214084042469486627938630815682032664561265221375033846235829153231726768158164999270753946476633749424142648174915445730875570404081337407225309539662581153951370580003648496238909418707076238317346032014002601137070986966118169074618626633027047855517458185538323412128069687399816224737338820209223441591264660599983705725824700738972812527709132032373453650460319005679605717599105112339921261835817180481832508748219676344486386003485289217902846215557749857953763470954977071633234517618310040016514466789110032657266814388637653736152418629458615364044125547089144108506053185114350364037495812887078563546424554945218648686712289480304236343549116907554661259270860569034525314646109113075406400939802633308965813667187508861680601479854775527136854469432726107818190389123177987459993428690492561791661761293418533002970025042024277758802941074523657783798325837485954693578576736931178075213337624929910862535434792311222502204292420589234168662726200235311040104527549913743711543740883620563653733185189883287505393177647522621371251740624128183409815033287553034220137226856450835604457513903321088771600076284298461930348069289822680139200290458106387180007232612349056598048619041464316048090713092270833706940613063538813405858102367120752664836877184689510961785313644524464354385084247097175177003185192126036668127043755161495718884505201250212203702018626416402436809428892852674145235956751653711830067625006391829262583210097871560307422826883753184731804617771618668749726484442852783653270157790281155346968427934207098218498877006323818997941974441978203918625190286602600415931271337119572677014368162486347530589495820426459899372208188818520442450887898601043726797749037939919883938162001805249704536733980745766222608789454294656031774228877201898417459862823363390093638045635996434712249376784559391124962685283791233942320113288753632690012662162435139888585578298111414649211783066987340839356268349671939503445199296892665327533286627749029653247006103982755721526572015233267160727221445692994937807536402658643926949899328681908152319145295569385642952874489535504248968365018654223619562170652861128794979251246346641581733385388401551423740763263839219956868303651036193763482207303913270027391654458360841689869945868135944489723730720713291159731719884425473857826584305644529805241274413066088555971321200491507264581605802039146098412424211868785072153674116395798416692270002577956702474037626039546425576936534332199470410365287845156024303626101666216312973495464816310080222243274863003469514275851399036892463417120124518480976622799996771564284714614127806606789597217477554203696033493821836741020868171253928144468398020090395260614036250701092391693458065073100079118427824700686738488761712510624930653629568350546137320521683402999946847134938078760122781593167513548782374500976659041046342269921885533455906595970716775564638285781616926178550547478741097415379640317739494499920207259093607072972280270002484887304727788403481174120062183388259091369830945490584108649302522412206042299595908157569964040143596810795009194394863124806960118927625648573654031896951149905012918235676337563699567288847845508845633680549535090209068460858674860880355034415542265910965806640748494158320297323528671205880881816373633045835793764527075783110623273723670240324325792148281450904402020753918895228830389230734306200427513172306965278314217395816658648723679237800540945306307771590476504308945434575810609264489477324392309764183051801238252317282556331957505355997669575091488160338004696321398319524193054001078034992707133230960810501418943581813519942537568185336128782051381055125995848146797417075520847704316103354642044616529482742154456913319641545153101905111355620924047358542543597283152215253339322202874082396812651671358293129845020147660113154238463618258785630126994934727445443966477867061908301943434576240556377252230099556759446533526798777879638807781817007928394993483309902888184584856611327772286467358830846160624757066716692205953272114153813932708771884363637395647856655488934156555123795999400732403325169614854736465911728637293559325101939180488902720393627430296394832935272839867640661306172801777316635393523857586327490319402377430468919181483664718836600856482531651954076044173685346229489147418760715064913966916443150065653927812994141212888056753874155217553964630568620501489213465589953160857266886778850962646082713014777270990447864756679534097426349192267381415974497372495619142522429949650862966602190374162919167201808108709194197142974466804388464750845397441026280986436393586616873491230350241970386184694745826604647412659719327189210405674919204968200061916423073863822675681048184154557893582367799961695482648081140549824806266045947812995664189938562131633192176574024289309682325641251710660221013005482684956687383120493968004658769662657376716039873469177975352829960461116725863451695596784511169030781258442181570332907596261306496384321082092184215775752724008209175241032118948984771377544047194670755688662260765927815788337797067972999143403028131250259902049721457978791668691598113451905326050215039162803361950242197392299947817804614108540026204331458214312401756147205271774782928154913792060823417540440540688708170697294883026303220525306936480100377484720814630722086296683086542419284808336962228942357022542328993040662186361493182461097368209916188174780254550913680127550497449860058804821345259414727669722598187109673190925921838598008052273980662877796727771246610570321887501978829154677115207953831995027259911702125994871440303990690907973230566022623984666851887295449640163105741920336464179844288055313088009240442185322490119914142128959461836789428261556010178916079666611264968444009147724630694674357216462861482804579263763587673668809790634447159220053047449953187681475174962476188185118720754951667465292581605554667537162743633746698837277262979305395873947507259290019190132158968652962114511252877728530848107579829429496906281495888854864376381310019462797002099320117345501253594465506390036304813026465683241936121814544609193451829485404448908262385836047101291509454955821381712995899405760232150442592250501692522975913526050928715233937221732730915383547408542733274830534339594774468955875165714864903505562322473986417353241111554163099857513630707271745299795236240198764527337690600377784376197542409559705541339527793110992673552209912582278845675576010114464012950909877438043034360285345533588920416312723253020856654261655270758996051093382307844295882645946327735291190915834974014518270839703962333884577897534607488264347397443572128414069694168488142163445612100022059046081540708462017685769150354488047893724450697408731872113353659520446167771860007192995611269130790344612773243110650547436904664266515526754383766687019834017759803616370946520492299831758602345978143249294764377709087091048450983508114372399530033548853085128958834800560547533185055942102004987360877445657292900517487548701827289502809677039224344315348170936583212194650096165825076589971011356326840064118801787749938436046565182840229145895199829106517440849526807104391865008786450658723145471278741269069369555579342460429919247472044998671605370276284824593035734419520573698232675653571568224621656272796395666725828884695799599674200743484000020634829891310377934199306604713645562415574105812687018113462976858536594647720179016733088716190973036574187243573720335013103943190683214280353550537519367943533697680270131657432729720200293797637147965286589286603742835454161594165932550704793800823163659692435513040216194427762720417927881440486740896229419518909201644869765168681745609881779384059415768487593726521095031856983664854429429786042085349088604862025367827318403182297296222785115418140864207499298351151136401310527597260829942805318867335934680108013343287815754006126918481434939692653282253300981680706172319796795709599731180971430600072038006162939097440404016693549070443977291437492939158647358313213695997313324983932018002475019761187784137758494945094943272851185723782692344289893491771385112157603297261229757317824765208525576111913680657495425612473810018669157711726186708547719342776146318738343440640967988458598596659402742491426551956000248505502480847977077546056339280480965511718958778209852648755295864005279756804794639921499339461776350171133519753719408666121406775112270142194770512408910364029335241696661106222237800552258030380158061174454465158327703780284837534428527354307023588894050389361170696438582521172293015782419772434435548677220912552277392225096886143355964501383865013900473662228476109064980379627902371499038465569230472141774871150399898398185893168427367103674534780007136998827194149696303005787188606989343209895527242403343490912002264869018825852067655601942018502608463460841651862732843688498234114916214013814604128713090157102118864280062743039098186089417529479276402330455257139204422246732866033928447664315043213630511980520802122130192494457164172239569483067889306182289444802432617354714402399097797476597617470332524171329624126008994923443080368904639205973449443777250530835296433689916773321985026443042269418492422072571109658428170133684537295956129691694670697329287982599888310548391703322021111129385417329141769683107460493406770233104389950542720225587735179651456890052000572204901690108517580671341946457280624432167664976305640742546707607133127724545434105162388223968832769904932551678421521973971038890413125697615214099657937871833649102516642967826571901706260315292019517733488002237472211096702400434267419916269349391344218644621317123563328002627982288044705801551415294466996957754935591087720823572438371469381020951084582226763210935153785345730068275018022162273852384597379636546954937024332847902964566863873777596030266644763408330010144122845151278201490693244712850225026710021022274712835399150816300470124083617421859166900926192176386590803303672237383539365158877440359168139355630431687496365989936739636125090172847779466163394258847073432354574232025193824136777176696406081605181831163420997963549277198577893184771324824286133250174966599315512317459017837364362278214666923285735688360693121971474501441262032742529800419221052277420684873427350909580216686190467536725522579974305894996916598482321185237542095496470113589450458911572192885884762164611662341800877982114119640834371186683945036936044270937337407066679165384457128093716654154168161822227587174586625598952592383831861943240275948090827389860640803840290448908394004433291379067851561201835537161732738476599586945546510909363359765963332867005790022253568425085694323352889298323188806934671689804355545353969030993791524041984471182001814129714941778701226740155481552920195017850463695923767307699070617674862527479626963632034723309836230147922846518224847593122158160080397757977802202889398237010977131699095487080326518402356211236114659858803714760029800813195439114635847250985093483927900026079284738890877266072280260048528741141815351234009406627660600801275794473703743429494252126848985617604983786425945825030854803072028017961182318046559342138347896125857908662189085356117269678388715252548438698289362852595935590529289241269389458431432995208882071676227026894523385181758086897531329717664023209312061580635433161399790187153177937357703163642616221101897622080131541868999914419110846079120645497935338676801930466133322638880948202092904692791587296327630172443984099687727563814276155977495513670422908609608234269467286293072306687079213315181332287089451810820832455401460933829734442196881269267110684723264616695084630920277323354148511084116587702779570146122460458487384850924455716340670087920159347340685272689198735368149822130308607794252446175785709722443468464448733393204415773009428828768600776598785798997957262868435271200130731824796689399462487323954521672967035853487606988913181378000568824578466560095456444445499378847108267613581968121610339203763451477836100171608387354425415874224511994985383138133288899152339875772027773338922986178165472634944987400904272188592693861894408705638163782989920150851288144812651333460670552816116150530667386420648450436780669460063118141473078428760337375926318851467578291053042075363098950042438963524351198815533638596253040304764145638459740331344151857051400821009322161122345715906893159442471585531713640515610447306955464297332388313319176825591631513164160591264180210601354605198591720512923132129038542065028652331135301632608738292703347358750927261906561825284005415919061542252226560868840755336489530672237954964811985351893331358427842280387662122449600096543112001792781391019255578425161136194440128857431449211344266715365837755400209872132692669118742244856807272892804173830426724423769213163478806308696733500456228803487116138563478984314037037381792670906715797039762097505958908885123778403597395645927594018124420561311843967854664166579225323905921218432942367074278236285805856384186965416098364981422727551757178687124370566790752497136764786786392898238530621310004397993389535442648014782615571558577126533198346378711054938589965346984244544241079890657692078394617805469039274753872358886362542142075885087399435513791377216628830034895705984403280267003129611908573757395057998868662898295977592567634884169767367047540940790292115051121747006057709243900742042802143822237742306031930164768458640258288838622609834623742201625520863574871179646160367647907239889669593498989561362570166043805847836627852059509423616352238360632122815885386555999429612867132589183089536156723579961493421802860422887391847382318872574685590703673188309581576501404478495848469608755634692436441114413186703320566204749356198593324184040020439522111316468547593855674344984583706444404837061931443693217653786025138786167658249920538918109178064806420219685091029846009237749588786347690268110905045848162603684623766568568652127317250272903342963657167989153712185878473598670812859832275950466715918855607794130175457558056894452125881071185639109602824170102228827274837965857258484811490625884731137462330466107550511695429057490871901291893830973098315630518818214412518035916823161781121680846674104208917829039029549882166252386063909703951809789757205948062200412016642532623582217036692619266276648450043485798307917490176008910186347766085270499876086222493631711640921880301775374912353648261576993497412777120923119255683454239727343219705094917836700685450315173084822071879296013653108032874940551192567258365973061606119121474454047331354362505809936575348276117511837953154224939489032042238832189554307097213267801282120695128523819098435614925436723875849712910037247095318094611675668298713692091458307666139461232508678541238097773090498120554884276652773356191998914883258146605988259094798709813582322385040269475133704542784694951273576642596647756565540700352385156964745813929540456317906120545223312141299747765821982188746379406698750756096259062372890106374743403701330421462091025497599612149019505336753788899196789599443773733214363857334329375972421098935527657569841355125462491211522818095169094258519862216281675115175355226044889142889432410735888043970371552699311132060064133120162978172064093410980397161873800174646187515364642919295659561572599364232714631959448524370931798180367734361768055930939769126704259032319973865551250908259578623421783981184679144722902217830736159610956357208632036639015022165158339109987276457230052563343049874166706048613779560714408847191151590724367568291435338594761439970933026080570369158845154782392814201030863238220322221228510794169351098895403569854714026335763865674958173331857469478311377048474330589496923232773343765125237566327285833566264907091332588390049905541503663684355488303107800530544136933184003822473347635107792187726336446284226711496975411565426158384277038618341137764447798260063497905074893270666501012640825898943653967231582925920436475839297951120179843185122774622121768234408442515126129982241374870345163470674113975904670855674990371369093385252904554270068958465520935030712791473987923152925626608431525833900952064358656702530008007227997659045609760084280399374005974719925361348799152446202630115505458418549058646541418707879844601738102011008826512592018879630677815722064199707201048305270779679817620643737518829121668159012985053238645176407314188062990618742404667132290716006082126925632389353487739839198184966703953207138431784431884099707317608808469881681170780013887584312898662752019088536444942604819381657661658875912037893728790134171619365308276411479777306634580956882631499222006021683457420290911540614621577899356642533574286102546275987819481809585730205093112479976682876772017431785334121908708841790870629963307382187061342142093577707683260711698955792280118314950311296093127906281513538120161949154038344521499554492102259309936797532455457087621948886115257612746085993172103950562867805024299513650742461959764166617579176025546237575889388395627598289947693618041532037882460767458322473362805884549521453471425178839364264644946186753014090314486884157834366095730617447884287157153168470960276776917355470252119076069793252467588174191997883430920847970791810728325823053471422903715846683713699652062719866929791357679140108036329619861800345342598395356381542858907117861196241043699366635850285505390579353096355090175350404416765941370695847139795879470772679499723064766713392847545573520329286562051262065132956552003871663026720889643099620269718746862391816940667039692539147386175341588568788730768208226623589391007004476865169209141068824214539323380641955685268965770876135702076272630756104935635255582337214569213305593475027409288077145652100393542008196562026160259630606371236772534637289121695284452679448663018468022917027896637678462412247449726986239205750692110563084623547533314455057575107770137294881111167709716271476558711349560686047938313926102041620867930163814997969319015856293352954363241848300750225613155197637213052198515005593787490533259484388045797120208815520222350140272228577959996550476052947686878492609745176101611542137968292801492911355288677679906334094315759586577362682492316987936081714691994693934174533548294930741553760554271697850202861106667424615945384702842085817462728162354699176480615268356491485197351298252941885035920686264614439644403531793359616019795765948912551750526961087778332885119157849105261048218114312063036660953152144712100092821623540754273442459415677278387293089743725702733135692471823061482612652198332138089671650849627803206241244106850009601309210259999443751955593339119084909407119302695843135240853342104607396585393608866679201467600395329667869360884893414348847667908466557949608041965776091407083131644173718775775267160007499607363439024273965339415865826340536447150510168454021140414708760122656002319563975038589990368850974229557626209822074617640095175666980107823773747364739490691397009710071961761742824251550141084815385672047896933118571951384357224705486296806549974605752028417864409465378113964960465442314276932697559463144234367787889856342019785337204584993956939532661944593872102751690610942032294376748505661788928000359090900148258646945719420132526151030674579226142439688120088929991439336817246974427015474676892337563746895164791365833352565543928134396246904838062456896726234417499943323340579095534267442927220831184773723422764556197772213905292472413093154386855295242136841663718695633160549219588434431279790286205197666967632926464872475644150577815449474859335945602591961447979511536870240616865414702639795764955814765531183256932052342783066712283318751243903954039612321928134464382325021604721960247802476389451828268302902060344211227080622621690290985167610359147567199561652093421968400608802269437196903423707394737130867423621406855741864045493533993967403835913159292336049338446793688032821899932640429043447981865450232262975189230122844697821233929955152135682698597207552956357137741211891684104006306989890212472333175722817885970189757675775413537185922753851490631633995708662845601400714110123940324737115886254112996142263690996309927981136600778488881103306326108448512706676015298768518323929828164363183915167537657708468342630428041694536413368381930055455775017663068772331235142663434013082547929906370705704768116716903920956806956786860399588419623040829430837744889029185991085540739686183372495332287100815655339886273000719714710346202314238006841910095177300028876822208466752424853227406954331112399475074710443585787783279531756321657531300119966277009946401305524595970194462963057868879534635185975773152841036715023744670326875115995169095107317730879265667068958066806047271850555409725687090822211420645587241025440524085937015968235162073386272198922947664500814866732773744285637213549022443526278569461622995423723957670887743550359058148240842463862352345994287412718425934188338289447513656230937859917340117656728904788751092382219443918191312225385518157114501893539318081420936357549072392197916946333845934910276520400735766810649117026274812302738173371384452590076115423477598492982248618342082898207402139727770429276493995665149821267441482600408653455009885852221525658528010076716517979369960450609801886241340540296504969622596302861070208560775697788716877708161825915727520450785418648798002199273310109920374392155099723557016511784224106632829827787866104690390233164019686277756300205200787150539283873334000021037978222072544171938835135955253461283653724312890802209377291847992431178343895582623351029115517739111484571127961204808881474081425532351757843587776683809136272882606941464296508095639403813446383391468027005550056506871878804652784543528878114787359684685254287714614615523488184600782026409538996093783723469780990721855345687867716619518144909281076273414200738957136818455667666526176482278288320681903985583673213100502385299508170669621517847820030380489971744937567819753048143610854267719277067140235593195205251159297146031367770315585697006883944819491888311222472267307086586896116716007200556151301298939719357086750229083171202778560424809323190525049278964701257722446172384876598810018622716229828239289976042855827022076181946712649485302029798109087825583101235997936095382650450870427880008100660175682375870908252043732814335244358769574829874638925164456368677601574016316628073144759121480821120043423804282930141205771469356379652754638976026207714206758371897328834225559936060015532361996866577716907565019430439898375211774628671492472556141003487614262341820573909046179811210591205324880681624272713080766294893822432666515580801718441278334800964757246750684900519294446976586822880718898158680907511569961175182152039855124890664693857148302565385703431513629651704693524668225007917322808864480403348821906364931979088208703919076062528566877122936557797030317280147359889369526276452230931794954750448857106594764319371294323641450920860155146581824271018048042748858728858556469046487373302640044218392721294905677522468876980936617612974284192507792829955459971707975533559494064993146652752762216976899386268370632702635427122691464076147019654293150639360750366746408304929672396432353615357621565932178013444441360852233585783521746905734863477726411196083585431476880822275509968270980452552742094643366583351166408275829389025061961249458058276818421961312111131734796274627561884759169711461587380271894184287497119707465239685190490747892015109339702824983865000757422089560217317871164240512823804264119394448821566330155015599973758067254945529822519416988244710601756146693842521465791387200409480695550555806514727369038291962867527249766472168722873750205583881642466784725704358307466078145408447709731314570734146277598404051881663914334677930611807714209487822766149138389637887711233927076846450811332754751963976667618923647786075965673937152738115907215964917956226137274997779073881572160938038656245277288497595665778176289330341119656038052540000507993629692175485567908475038483332962141305290492867350785343886725238986253036062965914292936907126701955788004511070823920846315931986429510083602170879584624169646585322125570840473485531231054923865582083517756140766858775692522246811268645961156157537897284315158983554699689486586958663646632136498378554674100723946188082434365486926992292404118214790812520801351210508202183456436085313895776731579848612982567606880684987195248835337828442677853093156767294233821718573044964666022053192743219433795859127517518227192310577768396746004658510911783486368969381218895304438339734791972903312395774597767118625909548896988757191694631205946631856592390935547717114483711528284377609741480953399887853182299563932202478019888570813330198703778935335557600652642004001873210830917300042739497510971411356231260857922420901693324459539846302732155026684929481195392619973569178315698205137453565941552454847382637696806916056852131064936822834940588841402122698044030496470953953965494652701760635457036705453092086536191743706940180607172985897065224665551783179054311415328183577359943021554293620758579886442076430427397874066063033887470285283831118525277379126327657412966064114421932827613230430408842232440248818167655264045539537876385731574756447050462618899264151525597115507522672717102402465624754499015595102365856874725024158100012813462946210724867191538293822917431298474743879903037491674592348252592187560668407881981191103763642948241506565351360803971602701821175296719054893976177147631517626712867921885975467853953474599665781919954124063534556713216137534715393080563883715304546335732018758513367147565748980201425631384084507281058004706670913432077785146933480162299537742138831351613376334029425708119012059940737783931225447089099577591504446790058671915708368626523760876857703219492534261181203648147315605766682443921412720041857717844372846228758249778352366617391236105038099974517818186927949602623636816097812502653140162634187099964821553241975956753095657269520304598682734849264222362477038030275269464445126692910764493216441639868780623523735924251925441244448122599920970310891844556576626200714464005709173303558486545043386634675361041311830396467750677816660133865006560029531589065773582030937252942239582128368548136827480609896501171565624801875931534376391898808223428021981677284485053576556013764502831252684432000673563814938920847947649391658961268012630270980345596013075761962147291899744699332342830354246336676701804598713679916732597105931509245930921927784281438171988700097180939959027732839217139615738958903150649020369296272839732570243443047297241085947097927780716747789536750484909850346386847585872335784072699574232539549185827070402907595233814035256701521420713790499641295297254928499951244652929030847522142740959014206029161202458751809158965681678200989748233377846572580301465296171514122158195564209364016294626950845863699186224648905653824673494882360734770638412070800537086269857800098554423128625242075693075512619527676953002640221908514491646312609682559909967180816346863848636942678509716366778776963842375917796405956568489269272045589707136754171389485795916712409074516079507170858824855557958098072808208721683472685142709724481649181854786519102805971049572938608518087344482629829105002035634203122472394284744013575228687924050064836177976406105142140808152887595884011654456330665413811563675255629094044872789326038103222027573443942988688220050988280455161968774692210351052064728355109949185591622321234735373068725594954329251322275760490679650558874035247574992311160357489043383701628166193630815166874218753912823194615073349156020795998639007519414235408267203945196712601839486153977459912343724645818582411596810977243458920833158624880455307749568062699353476437846707769323813084675938642096520887075667876066082604086000467220479826050371609960741013478051078101862518314983783371946612393405514065401227579094233890200387771906136162409721741391696734639271470950900266489959145399640690440661331742399613415022932489750060520058770642591091023305249912910765531959229266907378263325830913095351445822362029065902988479251677317270882153133289922126172022223161735537363149256916225566547222876699678965142562757084272026935328825012773778323446099129751317806334180385235597262674689920997021100757491811358251490783374515968748838100355406709466330334240346123530959583860802673606703503441188442609281245141911788580349756570705119667298176209451638119321933023818396661606975643877240786701207858221302327883785200026977785392472516148716125707858921540845822044895502633649846923577488670222236510560661690404925431299852620274866198230726372807505928854557007067410920913803486224749867178878517736967941002004168624821951734773265243121081522685189749386139228744217335486187270488621561893811775348109738386992558793423548779103367708252258875443686737670985736722920635650229208080436657333681124908305654008166695315822779779936657955625220232216924061063192335954614205922459727946832349587382043854019753952446611841534021521492538151401799261767623639118043988288942940933654791861816137195145532829244804429502611298125248353081063498667547801636894758178614697235496092382236822962599015821735697026893600748783257782060846017550754929678687985558335364338635446860574164677985196395024193429963432612982273913464591174537719009685821938538560505548304489361612571660251224939096485589186417611965657444666293327127630489332900410884424920678535865601704022834369405196132023135636473245554536799274565361926678570321658351736573113933249995909425072256191597770929586438286585432179483897952817491276579929805214031436006924824244127886612351165465872240233177170491751234875722814027247812122756503153435559270500678341505689191727985977245244510753368597455991258393850598922541350089061016227773943553618545853678820976550047783186230385430482775792503288875730411051366367117915217090481138921575003710154697267169385445824300727427313822200649193958785110131617547863657577578814657073608055489698727522719744524720233165152194975148985041661907611716816067336297267771267068797611242336991470776277748671481995335873214469830759698730044591077482330748636083643001612697040473294436272113775536775858405286005145363013953886829172500862439405834716098345324735671124165587169746240121716874785056087818479913992276819003056096112795391384319104603997009935058157863356117163039825625174088240743183838718529501531640514718286111095327270178269623892458230418976642427259861592460931933274503566286484899434828225575382792399352289529990904122222370185634598966161542452750815950567883891074742489595421604340072155453696920212968673147506377747290884677136215514632630991108142378849553834209916503975962363593878801977375582001946474463424450888383670191295158264146857723127416334250892546044009689662184135247108627575097969209232730538869203243806601986116988561434440550426991517909769977678357999169853584004873445010297825912200521148926874323164257499586144912737014046221326658863738813044837056194078890358217163472441841391255041940363780980665713055701486458987210177149788716356539532542654997796107642495840140310218661265666531518460186421101933236832976533553651003246911736752671785148765418610287608562417318905620078687527415736657671890691584598191225228363269453309444872954903179151303237248886259625505861178962692002286960208601177319464829328821112464512276296351307593621412413054437242409309959042166907670315770582543709959142529393947877714042021877693917290956547349514817882006043374398546533363063900208738654800221760526015019298968528337434090350754124724464442616170459863895265575855320938683110926811178075247838723133963511390454166296268986384617362719160718961476034507714203163439406711740966420178740511549485758396838242876953426910474934032835869480559552298511472204798949632866441280943823420770231916735419842905981737236547681698160055798681613215930694107973970606901665419454766347153547134434516619200224552433123872790908549473675743432955506929718137356223031254462875241421180859860849479315087572972989176484699981491551547640745168790647584747798450986972203343589207898768423127749496215139389901116080485873812287056449865880057464958228751286307529370545615870054864858617295888987258432020739843229278284843936328933684094770093632144757998235802295675403408581786570278094557317766786732012919618622966713384528250521941627359591844108433378150788674827961479085409183011463982982518833671559134543875297342469008438568651285231707650711293758002400405986995387934352471898546163422367426206703417338177199761665222563280466848375884464544569672790295324975742818519049075485722309362241381158962975901303460900730715287228749614737836638890984885319713981033742957604686558725642632440199471576083057496853090764931073902562839654140301756912575801568530189785631245919413253154743760432801888948048729223798032253910699537138546664567828560577246224295253285401902401786627739434918218274194064010092779808403795708902155483704790229130722709174544225133806751837585905044639147309692208393471101868072807784822929712204036224784119006419837311955353798111020967654605745875339476167236169443111721587151959561117994207603440463279048070358117475555048715849448159609152337040913902051635457299425075365449298470171151104390928291276628628469106010176105795957388358393944687668001937502616127021327447715692340661670181986133607636229549678441732254105862466321724337854716819253784769894506343717855344130959180423081901602498321774259125130167875900451056266920554130861516168831402039954570184754254918143123739903338902435284470176900691143429673519851428527198746367250610164280452284201262522019982231440308148264798684433686373531121343982424577812650283443561526561592614477679495438750651442265399420095122624268141525252895746101003875325759552644604359954273332945060861767278275047007525572708310553195518065524069224218684571246578813862615355975743079564944798337682660390922804909700902875211518167403045697966752901081559598722586064270675072337941723268396659633946599868509495209763269399481306307812199740275610094706205437337693090008201080205669373176289975122434931347905533699704475075837807083734054970879860825893064688266365717727348941844061663155859791993312748205336803706558248107637982082297628011931006215923115064168005651208466172603206970847058731146149268022446729297678681040102328092470452086312821668652664534326267168099829533333287130732787139358032705739584956900834286499959563031060482266242417615651646655815178321916378940606590074293345473282631710071042885355129419274577462607151936408104386481942942486071526009122783657141732098637958435967059995560274723916572643857004922502090258847573552585059584616176462548388586637651526180865823252900765154492181150516800187566809508909511606083112739322952587377786655619465806854423823267222341757192305565182661013238344676189791425618099474102320480530805906918413347713372810273566940593412580693517991020508344653320591446126542727649473068713683092603507728367298230774381059995381017815006508526502689548799058503212158850821371370193895599930113440689013523959472718315953079146984781616741545769002145168828547089196260446917894644171704063565686985143078815083313362074508994478576132424543194483493630861452445703801909805555960176225361943132467450559791194012394278041795699441739749245251793500828206890060765858858401283061470744592030553368735283816406062786472355364712839829318401743627860483525864949443216107392743367793316788176110395948137872871949205140992370989739714174743768173274029033889315892530555617397980433847878639275368283666351329293858349078130620189174113974302319143060558731738130194599666295120240124698725716812577096090716107773887775065187736526824294155865909566605600065358803407931917106523101711539056664159978950410523160832630832141126507894357940833726385671679756156201881459664429092490539045859704002147302800379463820519370745977316908903261624805905684605405567513113495266792304046648479468547429994697963126982665778686262524822546843510426250003418676353026139952147394603554250302976233960425596604203449748085102323332977046713248881385600046854624592440973160404122684804409777151296244068747267519555328986205446803211222019599376475561871443122322091979470325687484994224821958096137115755055881215473021643736282650563887291776942064785122254303940057003248410507247930706646565795312202407858505030525378247982911045799397633602507729894285607153548270021272328962223485090037364090634792737322040940271891359746310303243807329990489218960728194288556743247931954727679928869690828027753412620059509281796358524288354518391660443940931157662510044863551977640035773563938804278444628158819583132339142870134150302969396679769116124318209890334547307887821614015904438750228193957948070408202738978801335064822892959199982870567806595522282450953146489117759421017038735294668201123083554379835018172731000013186636966824277403567960199956992754492714936175939134924452155278419906525463502856747636002589387655281475116310121519483924360756371438656114437677904785457713046128292937523087372755059483416308699728441473188873981905763476763680544915905833364072780222113400672440233243779217876298529637954466789411387100938253483819444420206305930300008245612444385981615207707792671549353775408897785453040213677152959799511966067759955822247857842332332106831552201072193289793316631063529411814389630314703799323674884777817642373679532557630188208411351817005568768527893749851316401103549758417265364514598898265678127132944602659101944809042020982057325856681335821701278449530046893294369830323964214923082615620053336361486581783166999506059911943380690994905490729351119747052098391444496330198682001267084279751370979607406403079199459968387458115693045695787035910193760304257696029482839620696575056118467323227258236631389954973351587869747731307189827485166540803475437461592366439311596795908153488264459185541752708506373217005304230005156895761561781221873974378335770441038944249821277197224689704851444568098698912370648895197097229619074489024963053603078751472150075740100295429772850647443301685596144787103514318077131765045837291133623550818293597881242972282752859278135728724050174579814564730740753592621760117812346821829942227092469632074130689327015986274799177404603076649524426308373185180450663874294448155984325828816757506432241627144859107331109962823486243207339545387210393480643601024311540694673829989410955205894641742229673589743185052430571071989195724899981494585805701683571413303570030925336206316021973268424304799472667784400722720759332835687239436899179353104336541493683897641248784483624256722273022182193860668992168641676621584135751008059778298664964592034672750508275268521425643424080228929216633322318506445774044585023586566835988464123391671380592425119573376441247458399112541518107123590116045297140697566445415758403934493180912050606318867380830947393742045405042342999235338830045651038327970388648681808641513333408154324043737735080380383114788328681456962590373779777669504621768507915145211454922459275875931334403157745181592623712006495745804651160415967795997251909979253479241997354935464262599231710755523590080163685062293859403764257124306992363664128860874850025553772118543541398386841977058725372577218421532391621096101451617438429822076151702908724080924424538814438977849832927303096536853401733789890972097577806335448171315054215116613234780565799493570605921423278486818756638984045373364385979926675034807713143648878041062246612792315652239724775680458410053325471991606649699000734223196914272066346549744994015837945255440261053493604432796183080140631134590334979277882148867295245036279432726167190894879271153717294638799883369274273711126598237946993209354694682240836366528628195442129090240919944958398862938434960551889480316819887405990463015087091855035642075565288436766979364675277352534017789477015640062032508173091975008406257223574962748456353884843119725352358910895951297949107681795746414700270273596680539405471563311502046301774156059110559506239802342512615050798614180901811201784521482240055517730100430782633106466386289793882412468215337762444467798944523586739982283180900994249395662597522652299630804629172311933725502109569046094839011847657268051370463974953558152096675383693953942772807217558248870615538750729029713582774781383693926494183721670606439360140907713098459539392791400814367016096539639247038059244231353336823058618535931598715193693136700491954042957839144777303389973014623922042436854784443936311464499774490285547094160903248391951789036309502895705995400832509005693424833056519045389105923062485175778922819471182298434795376645038811213426756776105793835210167037043294724384867882089979447580600699375227877613066036350599287173433451100878893438755679288957926936883740160582110356241297457035043580407036114307290084491799952744657170343884910176882436326507292771849017509934760429725746867417457997880475978401147471658875101582151420212327148228348563261309105343183585204742187755942130811919306324358954983075551203830263503792266778234698918615471814696078404467067649814822116599770831288827728762526855164234979677240992800086260126718484215736788804425805077358431922065002146774953990037794904024905320930658533337996237157237856120687326141456755560329566715002951648106050831132912964571399465411168804895194999120108333442657900469125852535682179798563939908272379922111703821306416277585568812786909737586537761198415912425500905037567523873941509209689855924091873238775081218986197083272414443394002002411037453815015598275895692576689221185128995375112230350711372034389081666454129686111377532986726756686270776598179480813504003245592158627430113839634352628564819163119587660951884062862344682508402836870257273983894010549576699363307722545747879582536041446241094002017777221660751923284827061264699944480347188074218608170984542578834106356119840252787194841999635018415940237904498955914545099780113581575949799286750118136988914242097334051190414958577271618931260385770738298218536697421231310520708193478386724258997795353082257445573637142459139170165432227944440664583285921643264645766602938107679095043207869501689014306131904140409440594006544428476423075867366902991906573482845555783690772094897205435011807710966685318106093228535376209106096480620489608417107425133752105126438808095335533416562777495670327416316905649703658309773041434988309272050971233345681196798248420515743210601800532519268362576269725553825482987853887453956832928781740678438480952414405384840785183561645445102605462445565821570593815508912972698346679332981194957298977219203320870364374973317825035095225468140264167788291716746887605984381904324414062720655167881271147148861158915272342273702222574890415388016769896524002513349854544049878145404641575352582969242845010221027654511124590976711344837523164945098992469067522452578486147071659254403279787372448657445138537259512762832565280828044695036494867472612612339220710159308513014969053420504852401710355239181653597101191703892926600268952276319463920862554120671497547824151370467802532942430623955886582114174141808666091576219522851632390765292540543739111871759747130347041837027850681577360281660571538200571011993072862655318454654659143194942949468026238867192444962435259412935091250901689344556100619619597859882906349438856076928091397365671240535048753678291695554843534660199353336005773572210149958621344724398611447957986040271764320494671019778975008370442351807031252476819121134490739901714134376806508786730066221374197493086230325884451514882442447206379133222687850749027989000237253952543912783384847656689539785705193747144869152941154323631437125351683854264471264151167108996733350080115895084069635664121061078667436403431219357649705406248278555680114058869140331107390743816383189933823786718728441894038731441265986311492011325553150635192908267876542079468488091916612488163127582635825891173675778008103986652513435565683085399179658958831793486613032397610799032215776708035334897569228445162640786962790089865672230986704413576304235131263237042016309798086549823138407517029954320037803318452901200945905344480232141571005812332948983356354443970542517566119293012227202145964469387573086534599887682332209110995360295602767112837298613696426322204523174849023306678962546871888835082845635307271027084395301329125498711605460745863247266604515572042904592255196375840822171391968608081272293856443182461067055882817978028107807073495329674765406837117925753955040266466287599793079589678401826195205766634917417679855405729015393157153439416499526210938670626877203124176557729360428843824373120027466299278565888728274180377728620211443864404729636218516214861586986245512686888760556723735753011120120510766022576843909384292312692580036370180055754838849271968972840728962692872952337763055032408193265180573829933974413993589677278124777657892327866551874073334220070228439541415385664738429801838763330729333016830336453108970424708199276004030343106404927279559382661217877328619903199649150001850554439404247985056474110699151380791587359874575962750091593045946339053653301135641967285584097104460274371342380233091651060834628079332217898131737015077560653958537058809906811615604632102110608205772553077373690674293325462870983620488067826946684205998792795337553332866290499693053482245763490609480414041906492532393457538559194483608551688359103805517787455842243675201363290446797723034751500417218616621459773860799288887084068174062968313603150357185605184508129251493715172096260047550552345016593528451184850630955382162964861715954448489625657981896861355359934733661540049122860949917545309052046659269469685074169183701865402658671872769416117739180792114080526093835101862497215349566391352352347986620541195509026381198346651128859893589570565531990982242203065614667821883614749184600045101789597054860668392243321845499166458721884631476104727428141021908990399281582945342779678524414957401657169871168849596905661986736213283858705514740091127679226526820125537530616132934344938337068941567799782062728478661128240173105522050464181253833559066975096214355082500394882627433812048149748097218189388448152706854045676119186283281203879662896653882205431642787233851350285815172536929814286715561718758808767265200504022663272581500615160621812213855427626633687539533116394707668422222995690644847853606037315540452393610753564363553133066288337125615177646108127199316410558943580243848913941934929005565266777824381828622088426294242441367265424141228394573852909613192776432762728835041403465744938705135223799590931573428684483770308108548832174788188700772173838386539642412273770487195813497807694932924061274765410665758946635798471712565151246763046950772250328943299462712239678782338798917655687613573696829586767910355582773608101672407935862573153353788263638991000711035659840344207738772853309962828731889059369855218892049451527897010468511457729527345110099568579217633095370053996583143998746262256400847310278473881249920614745230377904092051984520843997005895868390087058160830117545545081894826790603827211001444477083739775930553924466854076917888732637582908699022355140878578514518069773403318098351692254964705836485401349221882633623505351815543715903979542925094417135114229951858804366571189767554018677369921064974472994921730350396735398952323969535900942011696526075145125864476180977631308990847752334495139571843010445287278620583145209242572424284374668769432407957479590486336278005380335566516425141735933868990668209837315694058866515063715387801290611605352767042582258320747260727006590804189180527670999638804694063276741479389265527761943889486619571150071777345987216351210156129684113308193562674934218305501297134697726343312091818339051917264136799283945816402664655470897711746363538950990925984015231681864653623945382707402080731994512298233299801073928970198924798583219164290644042078247802361567183842132775883451871160344153278123015235325613841123756863277031751480062091062606703574936484081814464063218592800703909984106095829298891078165226411785517558774953396810045065000916642506303198170667494759607765922682410801876959283715376755373371325353996567531528089251022174155199066456640735223432743209167837766066661613660831031494557318972510640339961303509088590801197972375162075781283056606639593535206105192336341734751880837115165570447264130461534584345446672476536621550190003586948877465810215213215148042120099761915162136978408566718980374934861560571873551371425753486737453510750648954443078442296446993664816728989217644337591312573235092389591800356378411030512950537463844548937324295366029681142410022251560146341273429195348373570422149544281416820490689745136332289930050082948166832831280725915627511840339914384910659254888571379851118650338926443668798507260612154665007903211104949250010357721505301327522486618679507136199620118304381878189189512883194020529538867145833306978583833965523297661126455449095503095589122174332513943007313521783292820111739343136072159675696015094792914305025191559617082327935322930468417464192586912243010392495818671273312986431815154490280001024942369187856929347572547218455067822075251970871936169513718078152099011492193688471541898688025388079920778738443960937742775650460135070305199082247109501555683971430554833221774780276573633521664288477408700919422384340286892359958522193516598836863456401151156715711495560538653765831029546085011677942112780671377682329617372504444755546289327541763048963257659207115280046154381506956213789414486494629914074918099262745220257465404074596722460845447374535767873983310264856533087690928483642300640169507413009980474086294249768319563509461284990106664416484811257402358335778510976001508799649203152782600546710060405745087534728216251150532825043101794456185427325106450639161186666960105255831063608802732840230635442291534212417371425302527827219203782015349930382688801830053220230568138759439655585012552488175794544725569102880168597837644743046872239326320263099822387748318229073348212730767961790600565710891196253519578156374563081203349410679872425799356833606095266512060352619755498265660458342790910914594324583535237882682187960018285492997943307718297770714223711829129050495276785299261115928893257692759380944198140082759711151830718482323989543652004082024581262965230377853148487256931460225677282949341899878578698841736255688262614466835433803781341300286318709556386457035493899697490219510103965025178917902021161756377319750231092356364191495651306049884099879043805546835782280646089091289632102130481150503898856985987677830883256694077196030351134084791452260932796361054997118587784994506710529906772546436336221238471918341310603954900952250615492603667709100808729912481701758857309465690080410978971717640093192853509513798889901816212338572904788334714248090218920295664079395476568359764928603861814584792609218820996205691878467813381602959630421438940182416771021817517345965025653297848917843400593935494936115890570105030319086334387091744752337961215634473728923592989113768854874871111283403005833412291839764850552305209193065717729695498893941587290064523270831602520757434313986984978967336780772678496448812294406108181917618025428832012512525303684672214722677691973280729894848417284376089777394670595855533262530592786709962486644369155665051675884612423632004961533968350845048544451156343544628247654489824267121388884009912683522232658491207590396988844961695159348711856543149628349538617510549592786451393672622255550928493401034401977977280209470486961856918468964113785270896077562424864097222479933274218322425270746893334669907821803364738679312556592259342011010085977377316379920441059925905373557248922542423676440807090676519204762936462957295868969419239392030057559213251577231524054563228349905714139518970424108241083984194841554904665850518872373050817847330077394478533422211102597446578703943729440963501137539528173373531506365201868994488508481467411798746093614983590730877622264816537945057847495645010806476234353875059751042675297343672784316873608776499855105952024050219792494943815209305733694188200500225757831919651968877803539745607746472871288518930626214055131545308721568578634511790224520183471252441836629315241117851627863640866847589850806257456317819848065865134344980061598785302648749226144289944862324770377450763297378575434713839852715679020590628371714352784738292585127626127657568840373775502605323419279402076125695861252376348290885869416216843642525021533140367332430051864950313043692323072000168824943568424111686973219933592210363661209388086369128355356521187809892389164111774064613281616158837998806698858549932570338569241918758906871991290844947681104763833916216370121888636781358091655031747758693562933853767861923478941759750593452501296217742986692265588979149844269598001881874594464967691559162386703405036656256540072662003085966337322069931236442021027626863776537756279354160196674526012143851978591600768910991557526398002273295417938320724605523439514232422532275561491698075044128928761821085219981745038352896712644264534310875385262927246981195812362194800493918306157559043427921586728039962333194441418957801950639408692314743099159635931422503066023573615386876463955012628857685119000984946771661321311017036037372389015142403564865012954241049260844837286367488365957158119297546178285146147641573379365260110643254597713654259883465685508436198261094597346124580599261605233917135343378046886610457540808577884780875988403650434787959171851725293202287721124165971700080713947381004194956757219309736549621296972226820385637394399880675186779715813872638775789643224456955939673942540634935391444888837289620203599744484615533025360599390377286260624806106151795763153636062871425845255845082415041360410805639020553382731554849774644522871707374711620558795398291215649789494888055111700561604189712433044482653443616827062680063870519509642063525854099456193487993673084626687577411079922977770647495512477929319496316908053797917994338001023766316800767742682651493692907443569354498645972038097013586353001858648052767387343011948966406644886544070955830653936943613554433795289326301345553533423087739023452428005106084757702125927457412823861081958858708484423994045328953439346756359204457835148911427170251200311669468876031029264792280430939086355660379148266077981075249509582552529865583862288556216849248514013871219507275689057523129001061155745378428505426268627136165110007391165366931353927694028723466369933007289528912073943229533162898679907677314928108917329537212582585487479415087268618990733163698838786650423042188065283196921169538625214617536215003399611846139172691610540216596106465805522993560585565145016826894118622728190430928589738695167745629873516492488930453223553564732250908189888433110458781325312308357953285656898869757355985799415728970573465594328036697892948104949555594637203421868174666332520730655223348588856916841802389467891629045704240376596758580539866201829565135261134301283786866865295170139828132052665109856521225717023479418009708507394093821176099338416854514408844560646696186156077696892037046227402250215820457126143522501529250519251864275930274522139380601794910360108301797571854424625670867169965657525653977612946635475853402174043184008620516898999041490149209059501255474517423107586734209841996602789728869591971565289987664824907546484524127995797095466316099041945790749899735242592940585456492519282111321379544633933904795402585899548297794587210527153236829181481235542254378836012050509605642148227173422088837011840431669275948830358389537575443788040554211957904940233217399548828596419709765733661285123923125113992376147288542995039865989433888640224114754217040272412626555684168123146457940884448678169746754554367701306543353071943854826739220335253543604606507797124732167415729747753556092398892531597937862779014033560740807706684819899300249015435616168047878113004115454393432600846395170691635707201110848563572769762895571222529107398258172852572192884556782217947206212830010731073239520076349606081079090390723338906740133709256572167514953728589972638943030467699236013075131438697920612873264033973933999035540054318015304524938183658872488127559758081306193053266327814077079017957511733645910691304123932546719803717469937139126719167974506946724770769389417471071294513757736835147646117798209977311980780708753882760082716307972952434070217187416883618188624601944551415506802685174818706917895625448938692225109730668378003202813734946116097864205540476760085316680488002993727698718327818983120810258315920108405933850878725368415401075197816239448988086636227507407172415289208153176127602151517494823630400381181926936964957186905298871887603757533241395958005078623057189766051935738564294734836603640814341764124903844532206730756900745448693289342549580594182355691735965276624382251763018485865490516519405592201002754397936071702928942278211127633214757348046923348654555705572345524609373832091597151191014183656273768284693519480752664273920399127881638189993167263888923927460875195823937990293071321450399497434169597061610042194681128090261900715628715634322504975107523815507666541593529868179742351492988132643391250408317595852484459567183099623851878430056293859270918359807249066523029966927562628175275233051398084277295099425629895964252544432475213227259674696585631239357576328494937004432135018305552066152488529234920788117561954149970559194249442532025187791957721025186957097075972399259481040312822129363360782897847230174418148396049631918876759955419885009101524661064107897527447133180711829313265439705868319854298117169443839414628643213479178360983086101136275983258233043803132741086297472566074231208180259073931145033178983890370190252780551888366600155549422129499953222483064238153607766243369382067654929387488983404333722569700153207805816208923957634871917912389774008431953730538047449121859089461231266833427760917342348093789925968899702619832069264061955161026730217680405084843888107743158909905892970653222846584097479522928741929387184213229007713949744772024745049946809919404712608145101308883710354354319402853883816194593096838688940021133713421213898075301031893694000433854344430784854272546255079738769883753313650974582452402661545995592269648283160232338196763318532918281095963275832841801252853523084001218031329148630113193413056735479999121862730141991908621356096209605711663429986895666350351540878658203352268784635799983236097281387951138177957786626443434231843867625505237347899508884016767616469479393216331877663301888031667590395557691134149264242482188939073276501996656663630069606063078885343117152324281681981547242628014101344370325096316469609999262091095667873837158601397264354743631292304782340909047421033566271351832997825826769413091931989061506037230322666656072049907850437061410950212895414692338505144484545733836588620871936140431615795143915487807200905104810777680933158846831258815940383507859562907180436547235081954448449317475533910977482554607194425924759723856074093852644616334826926116060461382067382143687757526105385089504992606688087136976012441113993127479782949740729490759674995812404697962214963163534272983906965636626584614784105992661868378798029126091624919855100816101323160771682490103501835826626165695339558290935455225552940795852508778926339921307452012414030284385263003358193971714029289887143915297039059497221634335998019238555419503241089608450161719215168820760189347333049394903998609088725456744676033260893725926201650623548150065686787844608124560547563791735607713097251546350167249218910677060344446080572706943528985077270752602245702281545025169663871463082812376343471954362578286589000436251125338472210721787969616848350060456626991009539925665081305205147449966070565403780678676626387335487863330356780893463130924039444515038675369996888550780584703356567821493748611028509502953671176339520133428531831692226226505686136528766112040571142529443474195200652757110740083253536233031718065670320769018665868418191240755180048578096374521206273605058191615568185187509282499116888135168915951393855909236779893464599192663887261605720571400356228104626420207460961606151410722973697214468736513928502017013843257750759315062216742544991855547306963674249139594616055793139976882561100398694129320695236054901409664121326241192476901076526436607456784754263186628417173855931970088856068907721145300119090989722425749483218152909461234144236771667813152784059124857218732106244587759016433590988140623198075956830026836892045063234951416422716003613110367068787048890595943441711547000173905803890198570523346679271338384318158681234657861728274318006902865901598064400406766736909452378898150136251881727744354332101597717701300007850262217388872055301587142579007902640028554191175214275715424219438375826723690630578005364628642571361541079799543453662881552872123334438931585116721261440305186780384163932455891420268174996978851071804836627207655578709774078324095424658096652786083750428122447241183332767208779054600788723692203172004474055378890511484047576790234396794041313552410109583169642357406134398942973159637918413344370351131595470511733285577914189196802153777787602633342929479352084415038179540151635078443532092086841520019305514740064747877738546850473779480761422794941296009355528830010044557288976129739156780652548760088212136219467267964268079020057957554353286552707668960814145648108117487096721819088505347864669960157368666684107276631267679449463799005583051957914010151023982567319799819803673820099539007994350544951183864579193294229519246919735060091794124715072899862053784738253983500165857390853632445593268236191506547906154581353334128313290977848104630280596782414517735286158407044865986246378065779837874596997263401381809283330396759743883472087350785135130698215841310145374423916322648618684151185797239387336335348771747767837191157814295571922369195156332795706030519270532302686794227252483338060462544902318763204437727980572384908859049821684488920120616962084327326524881621584748282913954282816690716068856978333108325075733846241185619890265713310780646289800605060556348129150263485623056086761310660965917433252577295596519862644573039353709128391109986415477097144841636955748698156240796177824562890640896183157640967359876606724223290176785222738618441057820723624659258026946726134617183855746260562213119436294307369274227349550537565401382907645659310371894390568524586503690599500970666248610142703338277406222378362063501497319951761768972454917791058107069827984313643137740998192420452852882262177448000386905113995135091808030987351874337456606362374948816183528600105452989284215071150650033849509410975166908277546299225825778933213893521421885210934582401685606340055925422239254076165355996977227341460740630454362816611876457808222289797297344689772581610917487544203826023396381782847259256548816248733162879065840590649143569261561857093855517147789834255925935125646747439176912296615306198129670576586534499257140251789302865084318412486657632179094410940439219691285608893286298162843816064759619317949251758309375026631920847523995889988999782206867079240985471105817012272783030850541530659355325571840930723418308564008394870741905242495917036382434160092759902781284363683723868606346679915095823215583450182534485986467686219644656023689957939707562540172453698579717089320513818798059664533515104976987862522670345340815112003145145155101017611675291560472669204340009536002446734369093810668689417717226116281682855135176492254641670706571391501453158715782938032716818394766177715989414587027085766741367628677864429886969937624994997824973913984756769525456049463910561005292508261287631390287775984103871344923990482196551256190733494335937220437489668262042220965974544316478864333910362647272851406601498884471025238186252139721629023495948379234125067791710242074303174627992973301545560761774288714186662243219967892301648314784893153046013054012061515375861728025673042917578059585772056585430214375975800552792678203923997791891206623528170463913345868234878522984354578574487275510471781393445886767916923354191720734126869062451715142088205176691221907782844439375678773575115937414039679810656570995291475568500699195932235161361316262880099807489015646124053935851013332868728456205938148013340480635332101415672842337205733062102802204432550884756447791158552605198061689286021832337074339266262933873947627679914170255814984321337558334187460674238054343829244811570748998837523971821917900791134211254978224412659316468416725137648340854339324942102727681993597605831956102073986548412511763794407844067852956529840528338285665446595188732728618573899138858325219670916178611412478675446460873689317393775499478447518024138404675282747934934899591214464696745206440051440516600863217843585760694121216993028201259006438815056468348488167517701124652143721466630845252457869569937650948363835197680018065608673476518680665575329665489693961252471921377849632702964972857532562178235585697272841451538673083687092865054619099114111839361286982057635050394830047741752192911228036901435284938483324797329381718526821652284372810907560974486924313284553602551341925591690939106652946410189873485373398728719746241967259728632448619774023747593635096201574595386100237751029582223011838003898066623628245605580347293033166637478604517238750161539052179465314961666026817125346328914978004133077364038806853976358177318107360876622525663500273589854907478379051709414139281790150274510942928261163061728969831884548871878294946345624373944162985338347515617345576356182808506482558350249556692096821129181654650798841648202864328446277308281368137547431346249626345637356784568850214110279632844136035017664613072015575787238162743739258715670402069358488765732892606972731427465611059520570804766288296892848031813773694694384673154983084604042992915426723676159658411061483797490761318061449323173114726808694892605853142809509137221413941762209208630140630178686499843268173800071951650118993446101464573136459455466933033403797784016265561693243675552836527211288560809236784036225794454828708984145533278673644633808300933422722354646204854862112349183723983631224105119120312721045978574983492480968083210505820056204389061695909342400201285923541716380259949263497722591762783778014023504438803849659769158619762410479918281337105747875415675240761941731301369635450447389955322608052771358510983323027938157649598533109257654125436905742439904875042695186025997353610008936619292759213550826368399037593967373235277199250513971184508497714780293502509249922666808647213190205807124167968847740502486174632622866457340800370842611341469313783470631757442340108452471599525421362617170134926429392693257126936490817571850195666511752157601526258420264951249431725109576379871308210402820443367165099272649437772245834658242069675557700813617680220639733253372727204753048047606147228361919828138062565732425041781913761620866086112006359047505079899149282303787550395289723132031619360983300156825040485064823711064584272694927382445863162549826460863716774168984779381631353906051274460874804671110695255312839409814379440623916681064170272958079117021525618801418708174570772358181325267028183517722888352844530615542118889146594017082425846267455927884853898337457847408596519043332950242476038244427110847057315941687862623120332051322665370584584025933610911440799552194482609010479648584540935387272781677679001417386979933349502299165025259067435038508991632415188010819177082734319723744440889801392821607544197644431501992146968386484764531825667874029660579261842836084182601296162736128526413487411851505729057037506122635789580488207491291133636870957011438770915442391854753289699979214471551127458888808199803711655669498046547174541549626528939643830245774083570028067485795782020324119252716442467575805950598107986659208423092777096805725318275728490788134944678367912192641602078164415533276183625648397167871874164592167936841039998550965674261149188698070442426445909320033312180962794867923009732919250936111530505459469195747046857732049345845501910039583474680947949591712764248903781446583556352621251962490363813689159738789135527864111605324118110773917667196322411818913630711715634051366371230264285662775647779760557528666064455037992870189112467992256533109336612269774260414453903841463816098607077999493384588812576307467032376876732495641044040079676134449477576464453846613219718146147100017804885696401899279094843756905939788615074158114641778014819518647635468155859343018757453544912612883345035459301869618332823971618071632567514644815847367523001736807153435501949452050085698571322969345494692156702217098627648281245917531477784639507009331197204445117260384870661417261057489234674404567723204996910555807303193908078834677088936100963128228337940850934172408384838019837455804967530792611395347926870070615443164999825531055828123453683431088500204069811136112793667569571560625983539674255575783683031477576952604550942507918197838782169516325615201888511715014753992490899602166103030070462850130195221562696977825021470518541257177389079151497085090806935351984205966560679670185675690967702093753831801685890755335099012176193091097977576373916444647567287426945490871518288788902444654254748596690347847650561809235743162260312518474158358961858261773119899244265776434129670249362929975228954966425524538905899878698221038978609679676179612361234615934851935235444497313528918160235195686005585628894391183096215814572200354143333666691068000978555628412587284888513441519118596721541119703075887729066738463464133998619969778731592066194616835501676264645576692789741637395560039938075029551630931225242739060887429408086706897477447256604386142290729744204874774847251506075307748093384634299876270325591027409309268764066289509800383553980162056252079389709732482737900228450059419964752088313610299032078093663763871634257125927635763489513967350268248121289717972288713235135845630086813030246646490498243207038074293889517732957494446736877302924324297943953840034908215934822478233454518041156870677705079021629472939715347984964576387862620833410584524146263783534146239384326241511523786357584165569261656020425500635036554067831769899682837683958532527779551295611359560383387119935494222001800264549561611994922474243826174592268647788296300689253171257877307608166558550454991084208199422216944013188262764609237867624054240595181251383903677542970585847046226894450964885185460417901006830653157600478772432159952089543521192802751413866776592613263105443082377913563898986719271419694790968944248568445327645279911325382855507424877012322385244342525385246859073222165139907059424567300790029114562775284448477593653911955233754758221968396297764928389152535224302766589078353824347902728881909034287167463300096866519884000704432108942231166286239899553088599480667378230110329107018548681635592966273687057941703189394133302229025018309148160258532603950059321392719284305149942425945553765743808778019764134142581522853580014861278326193569865110259763576501159108037383939502612039534258228868343435500709576856660653456212602605825822210298343240191601014460846696141002267342892762112868580918114612269013308484724654458311666907300121562307374202462304362147724779465926802767740110902795733382835509002105690390581686473731459983207152713232292435316656087245152345909721200952428445490549120789003240684008106626500627803315316432408076481068615970966521417389076645795561974658783502852269331413351777646764032025314751338378268439037575590376033843692378950884020416527585616168641395027852126228645361635058549568934886679239395978177874649379278462014605820971931216353502506833080803400058381656824016658573658419527821031898420396502408696116712449760393333465075934049700601968681078080792355989260044867352843804811909796150449051907890229135004566335941661750942820987975183217456097431400753275622527425125079382253985442963733640786556997167094159476346425810282458354389093107937889908329492674562332677871387932259987548233213642351651672833082163537472448490209809295219383210926822727235085203647569372533889604927355679882554728966162032243119939546650422749553673142754111921063966909331107407770706134715755996493449264209877199203237996655469199469788152009680334044153837125126475671032990142965879323202894101310113497585866370383312990483138508493250821677411099449318852946564358231746158569829244672859300771375178879643579880186863696534590504886757719806998872074448179873335211195890700803464058447139385923870877084640548486695771297267950229892392676877521780945124015633599141406161982933166019044790771653161440692250176019432255452094579131380118011062301361623930261875577040062103531676676715962247971248134767557451784610565588237392697922282222068507554022486857858184426240203206889431917230074315852492822785896221142146909614169114543324301071809734861767121382756931590004574852006152146765240003723674873405335871383834551490790713905401836014086454018068765052144373304440448740435799418702862084215291775782734107652864084614158678988398475809083244955523709193665426435990098868060667950931754546567478247721473891092301774862888820575445555488156849696095538515407473662249349126118092960578549581404248393072204243876601392542937217079085025842077838231910885992908245297477290581761606532627429613417374703607453505165032132866436648772577709755628038961312987394834877798549765695005445822755611995904324640660426767024754653707470138795916388641229194421068830399435019860319240930391990988395313767918056373247576595575448053937893731320592934574155066939112435252862522968568362714772539465537418644116285683189137697649646285203844027681754846326646797581745027909434819813985075606599754543574336229337908728896859808062149328647298987410881934782237943580242179385405009060915512625819228594000919428291864496996899584500251407045984921926717090688895734532711998788443077799600189205964439901149274361017061587291744739116421342859107643775938949474097543034596363197830833009098906527179437256367757940628039700618408643817870235346129008728112883525721041421367225051367731598389245016454521915627285804275340147545627553474493019471066363675986252821830930112221285607719342487322861120308680457738339725910680899705054939642733328185857798681534439641078010195851558051537073080605576395100676524984363074435285739009093528502997402265944309046408001129711666399788741304974194126166063910643451721456324266430545020997822018328104315215511969146081148346035928169357707827530281415567076897934292591561100789207111591898721106235935184085021075347138407097466309484696700510707191382461655242308224650288367763176591019979084092213408709756282299331825339489314106076116361051578497488234967445081910535418357496799583520163216202167859389983751250270623120476482529898352536779985190207610192274957708702647116540560645097068678051618952429962170497420873169636132619955697526434154410836847056938979851893956775072329906432267640454040141693079980676356237441871768900274291812304493564954618371073573088160683820988680783920868709498814073952234394499413217156915590792398818188184416813350990954955357664632841791504063753014431775733171036984261363860127254188350936887328897805507718251538961289869496980055434222481151028549770926397449270086822883056018684828448998725211922622767252511158229980334335746276189385267899818689467299247990287858301529441576332358471550186606412570895639578954278955917562556662713340654417858519155084849102696448030582613016933376939568059961217904129501279026618272021080601373282941828914855195457567470875432713708882623483331907344264194615797396664356197145636517117730088594954726808359122385898594322858697288595454215372036396068449606271884628674051206834084060480443730760901957698117267160910879076039587482737331662386464314044267538834192311755713196750896549413101782191219285884335302047716261014121076670443545678204052189567345268398795864516085706847305170495157620013402730727075031665479777678837298727295086862842138012550929659840617366422608695765348130589522945180460853279407365259437915762263345365957680109573844274243942309674907239766900930549773405076009642705934406114201472417604752804370499422976927920396133660472648368673716059231817065407005072398152377444492848439811443804529821367310796621909713051025207082369019762698629930793534809252264374000278351966628387429190390222672332889980503161156364675060760570195858116532484535327705885140188356415946940309376072476383158520818380790597631739409496061489751550754040742581250668507296514788030168574957774838897680697826251053564981294173695919052429985072043627334636907825524513215953683845648321672854041964295774438555192578057613203549530306827130485208636803979883705443365977953747862967487823255280717414564066030415494719074416279994646044824717992052641998599121126840282723900790271915095935353100774485925371068235224855260526510517181143767092916016226229038658692825118064607680456022104475042786955798906468814465320296117418193146651773800608558449489989146187261763635965529968270958474988804453701674319777503672414070597362203085107817312801215781947568666763394547093188332039853905951908335767933843102080379390551929568468684440835258326888233700680977615630338852118099811240191993211755018388398365983106382155990642022225409818829416508123391424001321338500879275872685564221213291888902294151352438363017549912768405179712205413595957756714461669489639338109536921616357595586170429273264437748096021175231152706826522185009851234605267478906941071657302501067054736061860142914805280006442103943864059334165698867517732431052294365939602787387148683568241754371403936082759549775636242902205447026374656963392835899357736539378779583987210626760909099525375916277477307692037799496810983507000538685905032203759152232670202589183450358738450465583625621225698801167957968347319982304705658407087663939810704002323723898389697156334995843122462410343630143910899443396061180091494226705119302423778314968527672937816436403115552917009336710914094506855507555276128928438652396484264797129911321790895365260190450758392133527275905549716506479513995835365211192580950036825517130314976619688293928223101708182632616670233173854471670656945747617368736467970039624881219466762418480641375899372746524933522867447641033339395962064785696647600107561865888984631901187085359595750156567482774930437605920992749662047409278984845957867207246580963794523707813368746762111711093880937900660540231695472078204293781939175692054437865459358037101709758597011715290663077499953375080430288669019559933176345004920845024597972123595006954984352251557202738419270683857409824032756204454765195412402693575526535013938612259344354283452757609228001000200547842105103194314023559624317427096355401083289660548230626100143424884847097134968144991364388538286759239827350782138503575813219893217750010463258596918951024889051578595667290452901287516825906000218534355313932782184387710229503061711657509229628527786172021909473046273857829451430369993591011649546976809909791352495032501843316332243384981679284120935794287237460479087655390572704526379476072891291635049552014295412921673733164873179310975719096431912565611261559927207182612704426140792326689144457797074786306235419649460627786940689662920036221451775745010067591520608322058860369232057448616401895865753584099502320661168912814635657858600551543522571961177941607637330272215168206895566502128680902956824985335427628635219939490053210078473370327503507680518922620915954736763957607030452391103906133162874151478973181419317985748079005597024736230038180424111679574333878175962118529052630633078000488984466479973804869894030061845001864368043633768896702522474987943527219861684157162165126789002574836016710504107616337035280175671194700894564630909565739221357769817943709661289354144696811460725506829480868275484949551117904657600750276239504610984928984453748405750009362105111944088335442546784582649715210838079783679514590784938302894386617924832982347519183151460404201514969366948737314533062889444424744643098153187302775145839309521834487090924064913626283353812135666786666041339259897840941841514460519916423610519048006060368779609976591682714457806230294796557043495002219331469485221708809483901069628113276833772262883606451277532464152170855192151358808409420808097343775168818373659288177708806622731020248522861721522370350200947097257968958410395039798446157039840165819763557931880159449327769168889656565217056233740577512226395884056185747408236901592787100975975636783031236505879729663196804977354622025467040884348678612275227868746823995472289351119128914545698983435248046911752931148173535229180905966504121240627528680459979494733308831814936795506832584452901152024326257104241703873816683895448528696780106788190568234446093228930536533911148780982592323046522097944053517645392415218226072264227620286591940571941224563925150760824042346767636653394404464292608250022528431605230034046441670839252719028554897852513806459149714206312545068105708958281979403094289164885551485162851808916952213563658265352976450645330262139727786182912436592147761050550849744577971301033707217527388492037595627335713948359553042666223451136616439423298182877073049794293630431372774794767700438572269125062759802077943120271176367023002444935450652823616454024915422358698420137750043697937247381066035111299333012967383926537921303573448111811205940665261040327616959413512443130319265767323653434913739047866175469190116632944580553451224989316828999232188107232616136802658455004497541592483324422233212764544928614204485087517068951695298238565106725807355163460111444539804485977383916131494151483746463702526293639202017658393674642549416602147739441028474888098335536066485166547111402520848673986904487861408814449968373998527765312618687576444444396196069621807487059248805939327409261828760010353512292265502147543937900171418697586736250174940856307956222500100506505635185108677901167616888139888952858948761170021608942283897184596986416400554620313393487640150676995818815594791748547376754639998654478349555264144324069956225671853146716962006657302721944911167799798943451115848006277302211847400252018879480658405693080494335593727447124215036903922782323220664728066667547530636532707292036995974544434239698523990991439494223261091827430288655017772592081374527529521069604621961160074618073101812863378173207591625532117571226502540468136834725311369110590960225291908015097870702448412217933050201566327689379726040929584799952540371739062821416976729241964960277171948163759808332585689543009048921691630676434680321965510422638083369322630456695708017950179731308296699177586078467466185755049971537694999706870923895172501299676825436216793748016329011400052063348728060495284110702457077202031833069786203839724912064012183361906805234610418696783924544124471188586063356214488610712197696978121952461180886187402160611786178959072212143633422538615814827106299218686687960065051474986289514818403089308621050082649474493547630704556492164317979337916498925611162583524232185183853116648257136340703325895736908734644038749782359763769332904874872758965454642173114057816814318920098065558574502298457565967953862603612955132250054735702447797777102872362515059257623147131278232442912315845508907581446459645660224455706947057080374889532894616554896075819609536629228877788468769566624449163856637458230560112735256603111481332040333591888020419004879759651728475959063433468882059544970213081524355392951266466447406478333912490169910665905911692290441328219340023640272490920241285080325294539055312797978366232899275443056893110182435395167478073099587699744375732262868547403002824498096084618531854217931016763449960855806057151094930522264313300964821028946406251563630647412516944659992940944258610911063231147467709074759567635305275860279312919896018884003904781726285576520818188470794204155318066457951492243248487745103186031905777689414281623065563598787995939930685650148524372446555877058007765048768567017410576457892377095428122140655816069387271674432030308240954842314430482382129511906284900425236729674004158626032260572119369925079464477724852040271064733342628439483340130678912507726932685230542879990330193852604694483578117576937218411270872895094821006253732846472155366408685300572021548466290821883153219062089358265195899029836230542880864773212609231336880335417644757594891246563591830714488689421552339968492820699627228168258266032680203801253053307941177401090170896675832660693652278122506233687447725139890388389998592615291671110617642602546396647198926366547853562785008543359616063489088393244886098912274193137328153879218714419357984097747375691584779178883570590436225583817097419163791218074680987922262889950707688656541626242317235631966168154848046025616514685533886617239216055304592996555719037602129106686355537849341712262818306076789362595805844672274773378241322879170733031971818328190953203257666610502777744697550664727394329731785722532524151232568046846128693127184512360939034453572244778601960750081519177860095428684013327056722714432767359323803851842120268001675131904549076235164829031534233021501824446068723329033081652225298635771407578759522717816803822849486601556094314991253526398294309147606673182378487143451975483282759903746032482993492471870599995179519921047298397280185188168978370548351293648231802048897653464658861406477203923821772365195536285294746183962999510241795286589938360893288180070936677409445337652063671175133540207608902935616523479268619891252559079585243603888565836906621375759171071967383720921743742277016701077855219244749641539320669694629592049870362555748321441898547332904114331800189919577832249425528315007529578820624224967512588643127401650367061156943815380354121944253072922798605344597996694926399850026828643969073526542359397258456984247032251517338639629337166860345050311980109241548957744333624436964267794627153414258028876034605668981372610847542731967345378653984360107286949324727993503237253135330564243025940063152827688164784960405570001152551674270331803076682626763792384380627247808434784605819858330938334753360587096136686064835419936513709286563087933368415663623647820639995590835307529957114287099125411627737106709264167522452665420779955074720108153226565335354853636305488326759885684741449732645039490023022424639819683071093102730380343581691204051206527606753102763103150508498262960911263019167327102343739553949018134381100180486317450167155880873946844211321199505190603212186386427530780530462656311189048735833709161923007214110071609036256168693817094281626456705531419720896605907264835523294472018777553130302243157135453101074252904937610810870971492086850706404898852385445840853691234084908442032099805906971483464641721310033981718441749170334731012389239099196229028685373500040418177520170370695490763052435377312727072074162675428976077365417538043270709343628244231107290431583486822126123567458813545045550090765092310128729545207086591665479836690721616034067303162193565712494387097881615391386939319776075369342892265953569454370301852788374588016487991631979987314594324095667060499737734058751537623146576039321011279919086706536327399348183396701238577900916467490795915699505078830400732513694419268950269620044742081168271409156690038653553925064711024857276678620113594637888505577394316859286902773517377756715739650858443292221580740211181620948546722478533582088672348372855408609904517582196193690005863153392651770890450909424384111556074715070774046969944672019280346859697335017966610182503151006646656794020353245813333695812459911069112983496083428156196262201675713987217761234296021315261755028136343134682080404309797719354337281255438636586462615229341015131202930135851597764408338910869831361962786511822233157535698498226615628771897680579958326483589677597779794012766902496378955470566697405154648095423114310578905377273301654428278173810797542664455407633888126414368998960629639221431076290664055841445214533278998223472039177251001987834514038570387245373505565448854382202320201626599222172898690793159754159033537638237859608699002441744508769686274651718599200115212255229284114760405358111666876456523069656570923770618006641452472995973867288014429724050746693962997342600066667082089874597157552072375100488531852242833064461268885176624650467431654519708036033289544595576053061974909061022965477068673626051956751499310975442851889932191973263865503321172301969052261988496616733696510160399137926789625432443796324455689634911255134907513479686187795832515592078876662235473578905893164215160709896227012966294994438663933704431602536151947605972168179850275184944756366806937427863103893037479252187866858445092954098495767032656479261882856349889639735210383955411479715274008571064240139452474561016890109728934240913724030833177749726823967498290342885906250084393333519245265953656679477636206570853951393056832818718037010137649875841410325335378325671247033787754685383141131481191034689974248841443999776930574389435688990852128788923446033690036923227039005969089132301407196905038531536622839735248085615766217932090981443569762302160912622623994607986929432860999309423953606787591002762700217313008019688254023875547454601094348815352057307414582670646846954420890119806063080231010439154032880497150848390977533422704717335323751903808605826337380973163316610335026811592228505753109723575603676750411437588913688916124555705260968321302815585503180706678613334951789475545050791181002423647089677293499846996436034077885676228448210981190721432313210481760755904023624435782395989810664769383116113566245495805038370047367983298805949763279155051470324287390713204670623015525063289313478961980191400825218546662663625626422031428144207777653205379486511342745285929230139047517085491275926250789210837737885366186964144555392840454811299440716091522936484840955296440170420449514628468320045694586249406497070031525739750995223034045493655465898573638510378220369178758262861292541681065886959757428074516627197459508489003048139362164437903576402434144879211645004914642355557797256699561364238244770204210661243897337893866833764177096631008566846619672333567580921672129005582638486140942863148563476736404760807590742053705179064328553374087921962083939468429281839659930502276952186144590961511750424310822293749088814275614878914452023535458720043445201529609091195234908749923648680040450082102812101867623566794114219232708100631055517491241449835896640021590785404541134024667107746593558604750835965001473614655188235455308320898722243037322512559877108042342965566676487331035237664381526269763906340504665142722841066259553565429480975424907996323735284742564967622223631580588433445605837490138940509246898803094282717571304649978174903639702895780077687566182198296227259000890264779929023261784038803542178656903806746934816287296860761928036986784129800106452628769159160271345085143668060619620691880616888963150811135383352982217592597749735445916016874557684822627858136122177158842331780565075531255366268816766570197711320236036984275984147262057962685564349255877477948249602029911466100968964807064290818203875132951884543683181760890916896027808228314745859792742053587508014626729020078295152873169232708304965651469755350287000300808595753831479347734680517032104961444022448664893530097328369983117653654356179950510643055435336727925316772357426857524371310271686097696357507409973665863063587352747956998022465705584657713999932018144691317013189512311123109708934574660567610487601054360714276261260573732611848918999654587145122265458541498042988476921073987432222244192546361274846376948954557285093130425828902101388863522475198985028889351989630216732077407601575653189559142989289448144902034784172542715741192079930354756601793693321067767698672832084971225379233253746552409459498257282655300140599154890371992749290126863417085734531060239765460388771050597578145625355417908665873279345585622549454700228062582670683489344215725169616156499061680153230592548476517612634962987649036473058523723781692499140588633613993686366383575251938660945790005180438154814954715138896588029153482661270136539112540684103816852149078976154116018174756142639898921515831510389489962225299981070183254696328675568165506269650849126391484419282985039663028504753438969984548777513094953434192731556705804538487684072050118480966745221299998737018388142525882043778014073094983361482136738944228923125350880545163541595005464188995982367550018257483374986394892916783197347681970036890225898406744561106975522695424285237141778601184013451440026188590237977702198946985038134314408722405224186363769975963545166493966655325460538173838310112623309837304011812832479366989895202121387763264050523793065556670495406112909592663551328424785874140874096952404928515795720617576195726062870901890091421998012599586447840960077686597525891727392378584969274746008678378418910507713420648391721942195347182144425952786414613160987446119440814529015586067155870511752188162561296667640042403236947868969430161916900902575325934636496819194416596556260110862222896196830636925016524417351677854119699148708997645128503754395467604741056153004716382895933565936182867915610699958127903430439995335865188139376925938332747449948150189217128666263463249434912627592083689193076643705835699941719931710454687488424990090626271371827575715906847946800747583277367437032416377649993842315485033612207756539518875237822767154898864368765484180872548181266031731751140711887751276404813574434964535347239008543877694865571911344604464111457633814932693006405120765860264569521187092184184829024229105922391131229606806446910646714123317711552868908885887163651219758917615924018954997237628617795875401705179226161924135522129682957370794587659530847115031158576122622732746366831582087551225184901455222701678476662747164659038456817453644034798977744547938676481918292189083361426212586561923021451494458340568948515614432602906025071395007191362486065426536778773920974846938733931972744570062586924723643253862605134117068090211003948998260013185027114549771229276745838323349931324844562173338054315346861599444668136251407042875275835790745162284889677186156107984966660806084781537536997982658710115853814527916871785807045293082162365945433583727086207818279725474038955877432313955263916457661047231268349946400310988629643769559470812817538271561766231260464825181410588610434484522724191207381880908960567403112776647898949477299333343811611479175467861423415048564502931120190877209541291817160414497908471663600495567452887159890087383555449738114840216082053884468846114737256469977130422751064395476781991349583843395492425873283240378493306233294143878776544496851607494329890974398015271457984476360728992892659321041934154092376420962604893522758616049363212738222660244770382519552271643835203862838905360991848474202729071844985810065295881984724835039580365799013122160767401114726376310770387945982156750918381944598569978294139639211228196076701603208767081672499305060281458866888040658305884294630552878781625381981377029584387299192678465157379695179958530191364747110283974905008383636444685343238037973621395843308983259475745938066076333985837130820150567283213911447021731018029387502049600253477829423272983390456677135083100651449675407023490070010126645389151039946480900545138710407325864692776858073725199944407456048045902053833593963823399035984501565559605724166336685110219744464448368109348283707634772086317841787355846152807810397879752596424750661517974263004067851484509528932808732707244311745919923828587476857959069561281185354336765936943005676270778095533401266261353338597867562845246952197817709694377776223648665443215407313714861667613031680707802983995702432128139222568485024390821543963787915013801269115627101401749559174272730271588890080982452975583239812335139595967727407756386695305367669198255744013065333525669905781651022155903712020304781370728508545065908786201520592773680585221307667541122732288222169765184128588582860019935878235908116901633232977260562454528532986929495279924653230203683068533319820221524297678031142851940156970016776627883561600550171996360307983491352505274592217221788715692763892406841410190139042336671670148513176437843558689574914318720831636784726050942816668745573559925838455714732577869063622681923621232318284621438002472251207700765280588828045685957791331062700021487373758473268928039473156985012653581966432205718461910005847065961954667122712505921996064595782260475550699051732245577631495463542257460853343360416881073727791024835118296174273775138787143694146297081237688834921483718487117645455154426617086512629058716836980231989946883133010687108988950347609753627563711403145625231305445067058134811021467501180198864245330113461457541329232221376553342043645019301337295509334946826382980833732023207651827733862835542070700047094574546033924458835124107145967584825932988565053251552402101449417026807200618016625064473593033172679708284671700678094220823527328553357267727705682017573792760365171698746757431584603465055964597100292373044351763283093335908463775575023908531014292006634336448122129833155622964258796066952747212788286139423827491735867168534182335015718400411389647075134885372917799141985847597265477111738307740933419329670251062586254098265403392420821217033075108955137788248773203865631009097377269911134427275921742165858263498487198771669899177843926635537591803709602573421903292939080588361995871436375335137952698090197264721008664045693308024854703725855391526854307329761457278779038671794734042226403036779568578796508779402489980843604595177095810927139559889334726662931740102246208681437861959190806885352211695955430549579812374214551454562458372071970228968219656867839840749528768941926700422855511393715668714920116246411101590888898484534916910379892127485572715719152182589855696009079508018339869087355122282740051892088039602397342174607110649340838244295123132059666892297407505931749146454737976658702169323456403233889125249598939512875244843194140262376996189871049589056159878077250267643340435966851052483189304626996132043736325337384536861363487335821157925013149142325810891493083447987260086000229430937534752060520860829832038398603235036053126262160856321684418139645512695946375169095166264090215195555959262249070016078941881077953367805885109397110451114502167097777862018441739256828182754382284215183815552671828628542662209883299050512541559123573201083628152581727029731090160381700318043045185903240610475446951305654701940664516901701952467939817608846806802545645662125772183404757406776161839572109194381496935841695781485859323521585809803038013861230217519938501542173445300192362530595049691408658791916637524238967908145003813208832887572486552698543539473022505139674918300093353967748301745862026282322157975745144732260896895919952937046915552885474290194269214221470254680530190753560203522445880019979635158418166051852976783116734414048029780983597119234183960010289509716791516262432444881002863640942362731032542223080907412531820933596426786118384186301185960336184469118810319818341322873117340406782904055874534580530091662905072988688657616227145865825433263763245889737522354636100865215821930438780028480627115607051600886370515065152460772553048984513788712555454875622378924185554361521633913689354718201820426932073052354277318342636253389749036625974196872122208812887364651445371467105516445904912608783479201533465475323147133880905509717469685905025728343168685824809207580339832739090577241555460802307966693853867566176476156861587541219356203328657407295496046764929752133896184029404159924382830776220786633421315598955275594824711845798898272153165692678035986730455822932258365885540238172589813626253105738012703076123619014081670510249193113644378624428960831880373820646421765344408857076685798390814273150801040255567102448433734908662962760806858058042772605534354520653195136853099085850549385556403724732057734122538233316336314600030669492738873985130446909632066179135015049639221495725041987113569987867955847571409706611618417689453436171662569643188375910955230405796787730671140163278499105338063751916352213683317034694630968352606836987146992210056948328206252516245172699538646238526072345712990994972880097333496623506141842824082296904243510137112109085452828898253969912776091975449878146747331005211804000429798954539930023285992633242431385343782475470323576052222600620248840572587297555206053967843385206977470171966000206932869745915065879067307471709664710565101906679058355189400316098614917818641428535049711416751314893428022722523642157084380989938410494613526879191558501109302425576128980240234694796791881054961891668450641443708481974196914631994895957514791439329834352317238344929006044745884460980461053310332595705580208036761277629298379141930641880404868078172173599172696576964776521501227707559367417617961573323816222913360082655145084621481759984776107827058378090106393544721670772073382870333433359842614740989839354071021190801249990328828225815507335727650445747993201930082804704265235535041351598479232193069299952385220962032299882125732775699959780217223590597523823899138199782494916953436333587005164415851826911456656139322384081325902874354905341171458545077225185093311118020208955891338679852148504568793912802339587387701332615681894259410308386098543601245180845788866480414187054967863829443811695997265641825440615760794524274398651611054379539065054065267060568775425596978006683899263795489852214933509501620765816433414767908258702153544245551710855684576281180560646316913317259509980440274818773372835153597652400341698642311478556649873465204184842527019998568313609562730321852032809892762638076936568300195813394197852904380152557935119320302615172096868961169683705145485277191592240674084038620236272443031297379940144560658228536148335145075864352881221722433177746711937615291715339368391534055282559842239101301377693110191339879750137649872026315059317424423758388659258178814628844956330751935538992856122241082284678593718026138375522279119413245833910530338555047473943224175025379356780697596379010409116744396571690665745118121673004848219832822410986314157805135992017858259204843148269337631295219417359363188666126020842690531975949831201158594786515265106761751080362786800929557023381064366480561244346680094056737468984141667454376155913770189610461448000935899568415538247394639122016535628186318878520484101488892279172146288255893938913451316059088311108887345338907684190380101304231499456278454600887875896779642998272277706014139560654797558057793744530300420368564919696987099522995415386856175989107427319894425614376493130643773014234565660515722906628451427681999506575822824493269617599958995445654231853753559875456967093731923565830303162048932562202841570544026398318895667289481564116151109538465385374220944727015016038381392235267076201691863254557608243893413313617959071827501867945957658206355589694447147136237445575720550180489192908657651957884979329232183854600260691197218455398649970488601427272059862674096977699205272760102464669492862328964189887300737473482391290696610751425105515546033405808365313919523538027016066626273609875066060910897146507843053254970391177506044830656489535620386929368660753123144999887989301327436761525466853660479961800669888770703805681188807062531082165494036766636307223045633436287269914431555943770525624969917930621749656846558186366905719730375366785096697224996650499960854973954296111804310527125510242402573539921612998593196025366946011020038984681195453905414110024429631395303217764464490469811462996566666403737757844634775990084820177701890849660279309652681793542705552618955127348141321273447917836667938103373164518692258424675932113501378049064940456503382641764474375049747083277826721961673577156903337773966509835338870225741731060185484488248057605520602413588329140136366151111679550121790495953582201276509510393997736598979277115804500675602726578339327307040260231131691248447743354845214377693792091929010766020772889207331536880801833632109622455237584772126941858412537851114744875844443607084495158601474928714324430744863738010862154060975028302796750094512864538537287849935920220616839053212909231054586884087575240528329884607930299539099196664207694923978178989718927829482647664036321892546531020938737105869877493179455628237079960754488289443840446669647545860931196337173165073784322183484112250017645213508408549849742764195840477221943731699412075377181228985160161258607037258362017316285196618647230266338881372398286144223346070208592026358832986127590501371473755419507151623286448209230978186134838506273496324938535223601176894953034093729511961998871316762884031513057491416840315666992821167456106114542975992983247979628219912908182489518326915820158229933504373418321152720318234704635581153491231085740505680598305454090618527407574524895401415948830088053964001029113589953391850057428944158476233421374881657939987403098947004686202250278797264426443767811893900443225450464889392991189953337751738912129881167635502403540284073610722410737499697234825483492692982831798872025799804411537739457506433443785694578464780315132455788759041130038703683785874433556204207078115042056911977591215554143644901385276877311014240325829183850881757641511517018200353386245017380252477953907218517389338815615837130085155955984698137809318408213235533818741952599173007835553738872044935468433547585842494741534834327602832884434827983768297555652180467710378619854812078700116904933574721336330896226246141405615741862408116769198592387352070567481990814731920395501485685612751428676172786138959748921880901331404421382761185889599769711400398116223116893192544039497633168976765243380979476308598320419396932471565102827131874648176047575856273710327890114090651098349045321827401166257414928885919768515226950831536107118972415724706574175138451841866338902968742637438048121809911841616240079302797142515158052883839023577757586261364710128816894485421292558868556273442410642602557916634731173191477524160621770538791958618975558453511933667879201176105788162563836536717495982324097198271151763000389788438756125753143471045134602298845252526332908016661739472287599936492325648420814806707601516582356278940114828896122096929058141692243514608858829142047251838197040293473313398764798174944081761636066221929231107048325480217348803634470549730036095938722799563467485292583643585691100927446180759010856989995271556070908399736096014035066860435089828160881407635611162921811818555121837228525012556604916491756593208918001569304124911213624975855359080088126387687100938746566237402706673562126703995264883851182554073482102037996024922950605600906969105845447176301175334973564550195452083790705577982237599449934522894985277341800885492147987002244176390411921223037454278480733256488103269139999622736065927329624261043234154048233776543667035835900644398802789997609553070382946059695129824970637668509078042579515420381385694127197072012570810892942540880695875001524268917218895099124211515050688202478538558459129006231705299974953232405496463018274295761097996805630560151972875524578030173153109087972105859254487332664134640577585879664590918307333424226747204300110030861364201300246222702171947017212524202275900733154722418295780024279684205406872797741449956798959327843344239437103199732584665747556439642107041780817514339912276960424884007253433018399213462903006208531586657878121520797910770764232731219027964378732103055056146453176925693844086466835694245797326324270761098658040403958521610278307261860113747250908797825941367840512915243159672334795018635706565447870771709314858916459114254774053792271970580789265102506519518699056349115270522039214406122283261624435708374875868228701841997604879849344326912464921709161665648146317989426867736394888970618179924064250091489889029959098604343868308497649890398671518619705871965950265094476006979860439164254367080723720286063633141353600206261667218319349928724812748666428572477172649499687023865870204534403633706842805450687541307261952380262484720644926373886915280519405706242211507387398813900539551581697096560852553450590604011120110423134670573213628498733533656673287447890959404306336612476792903129234497284102766410420171788131156570296153898486682415511401472400438430894558904729002823328223903550071550829518050378803832125670938615282310653660425522282997494165380414613282221910877434392289590239774112660644940694609542290415355156692683763628908742274370271159481215328776637809485679466435138797861691721985140898897077626822387096139365486357747176797426446906860884963760806996668645732392009548677144437327312589423598964547062275350710861969810412207850400287792273676771372141380329900847259188067367433782336438929515500519876710086023805341528881425529528020280575274049606959607691974997832673424724604755710484623727363734037314787036651771087155374755386528437845355705423795207355387372566904833036975182273765508726165711169065929292284553099622680832007091225964246715488239401871069952254079079639746105345760019070148891080183224903757704856845860720195030728688740281224961204648587217540408617551287834191787043528774782265361245924100427205348730259342542319667297124733346656207377232323292949000189414729673770121237913250301915667970225720999592410965037930040634398128870392227566018377436792504127635927206509473860632057041182712455318066569287168409268839145153983136223277041731372191226678660195632534131090834168421990581542209335756379962460916189889113662200934624907468160885332482952149590230201690850802773335775617174270431060839118510836373831044727461758215118492222651824291172752381521022108842530657724238429164914473056773899325854018562598678506129760500771521165187268337630077951908589900767034495473811455236897183120501963184879530645870003955089281795069515710884526695308146903227395279871216552461359454836101530957920269130297565786720733703717848828764784525985867677493326886268299453095487622072367317425198524623544338824227882504165976059350557056166747553549410524219276548485732308001338640639798157436081566142889483037338538515219540164467601806759719037239148674361497812837267336720243609791755304443285137186422759013417049163742124652929640817482161148753773375421140548411231468869544127611806459864775940190584995956915740596234103932790945125600801742084358759745733267527285003005295670101714140510101372369504709784350776398578236503136036845770904208076643127867261812870591721908431775589026562453112985867955457237078453327412301724071286899999403983589738218761350938113704710111468110099425117483007762648122407685035505012265716309626505882329016080325864663141393884189660456219723612415592988191930631088869294569082963747534108125343982426156461093560525513940461227352445759220197319555865671713981406648080231006908654319788171059766684192848447654800951646509746222243588778285534537723019882479164608538987847032085563709291854108091263096540525715939876375009547711013435505732403462420609751638206846582258124321070254151362815858733786219739820397589723156139447039368844554745807121843010118867726345239343380926239163842491838630181689743884689477307672855463658099961603555169800637328719718998554025139844764743709357563693619731563186161896126607068837050515366159598123026294200473269787077310982816827219135777639863763075733090767615108023689208949741556287451853438894366266635720150738215816986170779452561555406226393961495463115756024369107618928218811265145304475399843344088645245992701509862135842660214123780348631862660907289586514869967386756758581925069219755073749191392612074844870535713404650235377792811232456170766172080286120935474675998785357785476228912031879706761848543452486339425208283523076900638686627886965535393321545898927626030758143631891738511398456335096724567655514782767011313996175004943576220929456251950339553994794160985364948042394902367169874205164260101331636003790820876333447974710823414889662405801962424971767149829881668461232823672618159182519306052221470874031647694959107079717480375543646482026720801720234670516249940636163462952171724484848069065399155450197252827312021834143567664568918587073136897694129154235870673756857927070860274303605042712459912481598092483072909674223960614579512510684609137639334338883961815351886206328201705690893306461426776001665784607144262196647975127204731190572567300200226549847403739651919246025740826725268894735403992979754339609870600473368918408211526223128717692019730300802368416335174154250154920568759758863847247844453861591391090028745784900120697020270690078412826712248203131229313058439947287284219283559544089198230832474798684904958506838519147526902754010740496125379805404691687328884342343357943360891493792716784463840982263158381406483327868993711032488742755846284504459940288835874554686901595280139892901367423952162684419548635600219418575524005773476477483855128968666636386072642619018555867777337943488583863299845704570113486985793171841253839389017947079455835072233325419537492810622182719832282968481256033694886065375151809854076373612570774423121576993303916023524132920406876499052856264368476084198195831599867828022870594501546942773837645105229448252634001605216349271661822565500551898516164775464826726531749475668101603358870065211993435168888587841350638286888048449238602000547370729247571504056839192165846740201771693275517402578054374595891202659903480787261999521070475646499961975964684478806968486669942058311775153584331561229698053149516993950099946357912983523063308668590767549690933753659616938931658166810005558494543740291609565802738618809986095659284736128914198000674016625233100829524372813892852939587068362555567608565997294842306755398757977841315481428930707781543411166177345519063951985882673288515104093355767320784109517431554875421634966046333447460751043678296611708588735224799788686393346707468829115322451643112006281928543312721671676217460486105515242204795218923467477848703972312242067210812051097050252976621115430322201470806000884195339526686548551212919465113282390888287498638727633456713057411530434572486347229851054224460756610751594107318959637868637433377195538970347157392225987833272299983608983778340429295119498062257583053611579913953905361222434902554267328527718550588641387281935239864316062514152312212009049659591382676656436351793132271647697977767915367416310550824323708439212840313910867454817446406533081520386871666348964019508387161845973776542940535544412566835074096982271719078346730606715044098999038971583094445985366917519553771895203732556136269663059614289663587902776138587439738037961811750449088222357263677412471811398051177893943035738941379113440301665869766941273506552053774439854694943421439721507341764700737178062929440237546623376834832523633616262568212521141781317579083846383025565345557282866204011881637535221742747211454368300550843630685333387098932879486107499877516966762875391113920157828458014913270929714430991938097682977261645748788915359854869418833078930519339339431903980045604089869129476720889316507471774323935069187370410030420446394360947997815851560999128445190736048960416217488964063363289231783526654270045479157745942824620727178996374359872725058716327231116713744761200760821914393587471234881205318252534076058044501360265773350968796535347652309945522683035116318171694719433025191093771046010248717733619056076284558363311447634840074263090961860611629127671954152621537506470237563617187012435074699756940391180029807370411699704483985631164261607726582523985794539969685436223357271917068447800360334002729859710382689574630235198597164087487923902678646320474499747992718187659767670796204751113536925923972026938043116918294595161714031941293356925564459138187921344476495143281020188946481848287243080096516063711564350486290972448901430646636952362142343386106109166499744792676301379864868201413782856401705517568733531579663830233325855208392890488456998688486810910667256847878001170173787185816208554486319444725563617706626075455253177205113065882457978337583180123507808870545126142910572098670014373062172753842445798188926255203949187409437315437782938860783672973415026641133471654635529275561330173675990068056332055705361422892583816865524634406613826391287081679674107519096034961589858173882381736932450119618595035510653208660241449605794866242649233100606926509101012415927537170091924173837661745297852673541982150643558237499759910291541497805230816920694007338086963669798782498935519680812668312203123167202959296156010748915874155304068386556678722356814129270424987281361850562329064887401304300577292380492839519943234082696499364117545410760157836546421078155422860365598735250011423336485898513588098069358085089778622083034900888568209235646273670905305558457681021318400785592427393047702058012279739575508366504951714775650875968276832851946816292655977374356739421851555812730365781437323953380297851397293320104237212245364105252572340334124887463309874549934526460548598322040896181394288660409325387326915311367412435188912467535039721729141249710956643427188096372754350780932454383683127510185859377941243686496819129734884310395014646388059516621973759277011966020736190796667894497480489088494735886343540954149038131724922845419226426340624249759173944296508235036505735779288263954900603687749618450821340394830563392431113349634951810855256296190754520148074578917759856503682552183513853387263803842599781755983732344427644463984677072747389601954976967826846002343132369614091962943808596535672582441257609144307350688597737255209163688499224877450403541328979523905914166215733510936384829685700661551024863412712346883761720732983109360502404753643134418722026227316269870665814050464501434799769942334435490540179679340617409293050570263586518738823815894741073964687491093425375523335510428563124315280529392141735006478165774968608576261487440446208295059118076597450785012900562157142457414347427476680124759972174501593545101008048912930564159250229134021938915126479528155015124972043225948816749906337644721584657753353841851673172527171007876158353787840869407560929076398340575732441256714618095476242962606709543146015525047122819743631896961130016577283368195097958024024763948233848075064604178258420238764625432012582579077094555145474187637172905079339827039382831613921233886701533581875673679004897074231505974124998963334804252635675421624075415730676480276715621302752214461421322926297699591746515413201824167141660425238462493286452060982840618565408109705677633233762246305441318692904583492374967755773597939165023886174870200257192236122103905468596843346238319286566887839258195574130518057004097992176341261481321185421269377345810189979060060455300067193061661602942780057466873374175080463407878410111770127746963643630537569939160155829182250013497182258004043539434297592434119392994449868726999537144216200303704840531845649681024636218055651800482069619421609499400109112096930925062953703675825756476207297081009997828403378107440706264339451798593752967088109959624934943532644528005008342029517613604950946651319241584859612235719019420092119121623732873576257026501649785058081605411725119546743554799993091154171881450268783746168528175421218361551331428379344033684761951043548933506934720060949293305044627721800004660107670064544433787232563277917094082464486336221147764532256791030482986330791877039723307673418322328251410174237401331954448763148619486759015341091893394115179327824416998190163925048194411554431855275976731871681674303790491223986491604471478199317159740361768641950980415492880407057255036675253645129769693496990187486759177250467484563333887751854567671317162387612934131048806430203313877293319056022021539887895549911001736320920019661761067693612360586044097881738970403780193445352455403773347985362377099598775646292163938356530489002633175754490869819609717064608054080194751774711803283011433911795589858034737375640029364691367150673499866882839015636081377218667621660739071971455646187812789576871733696333906939787201434787972401561142799472012402531741982741102774422106708960569048357199729212500599760273533745215765360997995835390091089898107854406811897929288427776264923451183657496749586377206906880608141865420375102544380562213058594627020527156656701137117900402226688751902119902931963180448193376753567703249874543128495139792622986869062321386642430486472590478305588576886077371365249771913102798683387057907495155883609261447169501811460181477006872783957194366824897641315218805094431292167536025420633106236962253021846560271698683543229495049455699857160555009836565549309130087372335827479883982992948313454519352826445164077367410061954082491424801724301050768451168896967218781081923944302935978500516673479426885142104459554807852637408434432205469981101824421434905963510770179223128557146773651233089250618919593022981097608360397306082192856584000368471097471576772458002016495151886190979089313515542498553938987167563236583236795881074590488999580648643159174886868563333128093998905823983016931708460137355793988091977942230777504130399619252398569198015906749271906073357128683682004421525150515269595243923831436716979379012171488685924666084579128249393435129273784722873864847804036201555680901568901724167901384904032581460116109275420642363174698794378968883722992100369374091465302499170903662616175533282803935461597073608995075979746590523287544641710176077470848241907799873503713523159883674149361130496302113297954490788207737275730041491580360900865450406388142967484494510770405613358672121389927566488861674076721893439986787796412757886829669055647813768075809508282823209818998408291696383536190527970220515028470531224449420745389514571213498238221266699651501626792732897082045589126243209820917809663019379743519030608339045543151904141115112771490006610027172190839071465586969128775624842563205560904493228844284494509507902409203618970735820768078397295070412263091040896908813646815702100148037384372678254547208856993977153295803216834865375823925809100959910266016204979843359127861921245262198437768458955259734186080087646747421158240006646617552649727186210346896501673592281102087831096512648082535496743968665695205741158449003807104702074170466078188447217358598692807755263128390164763536559350640820230180458537700887644415980453091891776210147213799311042566102314486526743701951970139113633234093784305350146701687445249098854268743591499371392121080953545532387284377117005774416012828112873655912907110822080824046854120204014659057352638179707864178364532167771700878681734417744532029165456978537174241644850978702471897529009036941636771778255406579689760180940092741525667181053922468044768313943681313474768261034354036527497369124223144003333500339156694244652284844589477555294040070646171230790703628554822797922452572752113727810554389110223618386745454867878905767901873869064588861299732250507966176419959396557424802631899456784742699787913087717021627408272649282058713566919055416914353715477050205959870633135930404219957786997256265934955374986376521907226865527558159111212103201432730987560797732814583544058135545300377829205178311158052003802929759711044405668778915380860853171795099786293047770472109415289962980370917918969514611373910556103348465560846205508936735098202743157917295277666582470462940145522016766358951157151228520364980012552086362095372950430841775434961602092814754288038194040598963168324100827859892946485212558444418935178378165714226837373095014132275287628620536816586571956438466694760031344166691091162291800585117433300599030842444509259722867389652239657487541652467020984584727797339754593203174559994132426886783550068218524385418421013159217019213772616981225847175503933796764402903431798988089904691964947784283341934974297038994891803534479197332236638417919428037652772437416271229629241845777797103205539901885616014078966670419451489415373222550607502641663874766964863533463027226689213951107414942071796841132803538276175765229221732797355141916972840536493653594147266765893492927800312411489675180167079820226572262405711322150300109474204111746628160476795396588657353165156114030680591178157203137701237941069571434521473417563089016579274714317717751864243051328647280904127626064075045885721281695734506700417894776139948790716447805042668409728814092756589883763647286066490970049019588549481327252045594926937618730999104019415437512490625162490653806892386055978850056877753035579697802915809473172120254388888432207626469806506397963984757315211918477206252705223528422857576227591500972889078522372822071668117262508904166900314759072951725472681867141439410878053118386939593709271270260394415395338057597575843235190602429166385833299123132722592513515963015164858645330038113522687949257995088730829478962196685485968119378901288122862688199545552410860308864464648429664436128537252420456088359818904080164722116390452480182341208340777943993474028138395096189187857782802430260924450206978274570386107698324527830839371127838700568973084730175291362644305570456474416397279857850036082406098495789020591475950373151323354014909322062697626171084624104517023690700714238206154301350644594108478238283176577538992520056074199723948206391830949458858981219398919148571785526994512485046811665295726499230024069523108818907321653469429509511256061403364967226377858743692827675828832372536823363929906746193302584523984530652191639679989578587741140701568707592315270289146139286079079701856863618547686486310857278913526364911503210710817743171096378129757009417825729345149620379185716163192394873345016337314171768249089198875875833463839200511658822693990607168177090050763719170731195994731741612648747449272440275423695434842415407205515806141756082134276522134847076207997308741973068934939236602706714109867413365024657599458200589658847994300909873549651939377035946374761674486763151603977262304146781857975103433657554206449342014069272982950352139768139843826695348103481417264756158762493545822448417556125561289012473327745587924716641849453476283245079110979829219875792641501197189261524631855570637350855915571984530311729138626959029710838932820177137982073243486226611718778963573251068337608065336421307721510257791604573384301210352674250753363074485054048526137572281820677770741246162828050284006793702318107355542412125946580710479727155984978762335351206812271149575561030958850607387477105044192434154787748973472229317751460607679921741981124006803908089985579381055319785272769546634282792094501794528490981131195293766735722979848689244050888323806028176510766495307072888143576297303973242420369555058688759201466463384385487366256994447402731449178703354481427616124504723554439530001401461907762605267065805620225054288761213141459232999705137117456310424087964912457995918539927794605674498479395612799722521161028864587523935430090220881270361403488144267803035060895172561766188266379620668457276658026297887488090457719082607718082776900040263147789557091162663260217215646637684474439702445771237210904505080706146745557208897787435933113237768499232192711625211254396525934493528312912419868044422541749634136602677158107146260335477698847575265856472486597585427551926608198149331885743196943847082146781142001000950813705091326342610530577137725130665365386919528907473022281714013008852510000532333035051188526418366167009329173134073532013320843259844466559575599871151585995654692583074777432174109413957106394658075514487895459705749219105694560480146545046848313479013781109956975820069679518208372264854286747427506266536479004502327589997800771969002329341704178667895511085019234399443620803214187226973571071962001698777643394965135012319203522538889669409220316218734638139084482709144556616399158772710486507615693856705721375673185337151906218045009751264450139908363887214346138394706009453237973516399750071299018690882795268949989408857269914894864909403365546871093509530284278895473902410674527984043356852967847684569371311587393551851768626090394503195061616944871218528400228539314828292990156233180283987282584431836104037472746872727371981386825941018109229690742300506042778702906954720087787766301598287239478821172012660384971229415661062051586755002236637467318336759171348668678653637891632551310846186091074492175614187832692891044892742776665320674055510998958328660596402068161847000741186334424959382336903214864727847016436032475469876775510820095325009647142991324946649720611959089800323609969824686623749834743343882269381467395892447088824120132674428298866027753917380545009851825536863615147475948817954534115142357627466980888816506951139639299034475706602496271060041016985391984969215009974774176893206834753931443823951209969376712830405136020557654419263427429135294172310531856951520942471168167655602762056053974613609753582792159301792279922367593821775412777776528915981742544614656739102690325348155990304949953733270500994295669897994549210772524135701002995270249611569630452668783686965601443898241768860454060642190029390161256427972394843261292462384593031058052179169834538052941003106707524993319976924562425715037511864172508884422640925989912109511287740253063447895982504334570475669577848262385138960536299472498537177219033887948526790624521673164730349925151215104546141982691734120699936420639879947501535818939332769046390988924227650114510884512325412645972806916694481797552785791520827569407828017624773275683264268008850934208139662052665340203119404043380289104274207086656353956370880751036484626147317600068402854370759133124738736942898250587064613966791890520264920565527553186501649213544647828833030969559382222327356909653041862538091189033167068807179398807335281114687316409721560395017371041361926608657432192668844829876215191571258334697332831246730179465159836593710793158802407952208539828520718408002034796095730573667515703230093540784490063321085652311347528070037389476080333139685238278573187237408455690982003658987223802392895780972576266842049081318357708254016584511029585468386379930107350394015317238999332459872755160547554822342776794005614703103492075635586157411016409913692565578985665682537895457403758096149045875645868684574948443439603599389451424670073348187456711761041551383733879079711261413594447942114556569964551049379226775789605513970170414285923128476789305629879535976210827253337495129429447024020169013552213355821275769953371979522469316570420297304371909217008378877907855110680547929841002495445393404240274396130223681595125438126000060530994508300124141163502722265173451283376961463352494552347809404305318848160225594053583480970924039928487545903620286561541982581051206285993848507884133619943323332417326266691732766517156146654894921228212028010577608279327147293252990695742244954472048022583964637076155613769371447178005974475364565786902166109357458615118955313569653280913185104839112113462358694740797859633841565617706273491560846762314054736452980113563606199713502099271651029240507760740440686634696101069503054357192684308009567180737211932250689538581557044935007978573490883277343331615554544574839530906648893906471188794585900694264705577885049457154509364896653773820946246979020231746416065200807343007809729810057376423365259120381794705997010063413579059467792251106096275630981564237665307117556837636345450128435112640683155519052405322564109572422227728491220791428562442725010172292007082454549071568901185518183697580069659748681921235896502438621969352730004536587168155954267176787687877311797229750953592812815215636634023565952571658684308696687600956349236176377205290551955259978651562054997670790763797154539431578322457512462120029800743149864107124243833935415281852300936618946799757808060779632994561600670878593715703736430744499212972071272549972913016737861861145046847695332745582973201095023376485021190361456835615205879165705205602640064044404095293622816055096858888135275969683995767142634546305996154862022294897088071994385688335061869390493831616937035447545432585929995425523198006426660130751857952977129789840784060155368281439621592668824008704135815935100354457135377758586279830698264547918840458844669919213152205598025479683064646562713534376987793278603571747433026721602935446645794530586781423758089848260156561542628988276640884329783957349912002672013883912374219467129039835385624365618796292267127372224803622171687850940750989532605625276066721517635827544210837241065565651041215081080220146061896230991312328887114129760978477850389637279708888825661729550365036232597350692438969422540677361184211928068006790500059458307174263929776601479249615221327325618107573215577715620866341345497633874642276024606016290109954964636198441279370473592652153079418732544028879637584133860752494429757824084162890990779339997125445439276997870286240268596667315079598232785518902572460477130779113232890496243258092806436342122247228317185332103231148778483527072115304945884802215415620336096443535924614089005244447173562914908858332475935108701805135211375547037021443451975989978965738258749639155865822394814717462336791488098697438680083266062823401144395592259437570385564750902523578862394331193135218488489588451192102636605910701746546030972260510067335507026858508456689961336620698517976011592151067771147771425191544388533896095580524728537089385289870212203045794093654315720162987975697250315334321200518177730316446818679541093091828761551820400146901156940599996387518121571301874147578492932317108472265116044697495092380266166681425118402158451911139788333716727019334843855797098776481670569282328177520437637718529604439191008596223198164044903334000624007763124932257632943455064823296775129035991000543428399633074735433854818117010824192721907172691864522019092744763219749132234136681867047354155974007482168227825108621978110132194903259598567579301845166268646966710611440716787125162101397306156607704096786201367464511639681073093036257755734877778055788977934753962200193522348342373210070888798798569388233112107955461904187720873616443007156942853321100401956213197415666931343416367053539800934641587551138018624413300837014181704721437649894893510632927379132134946985694735369960209132651953993662920092149121364228065135457036137103544666285683154708357130687792785900876200843475586669711349253441838583066479454821903123243247822002361595314117810667043734992373644296884155158563405599543566427116850463302658849420013048430412703426631292522404225601708578973249980883253824719522270160833911940891001302865930644196812257254504182151921433072780384594927068365893258252712278833956863941749328946985324534434332188595034555455390316866995434643882763023964240380933959481437581189207266054077789725570179151894420111518201685106738418338090159018383139518694960199401777947659658249185230038247431798817665679789118095787776420018736368998433543149727644594183407605838018507595337455488871985422723807245366724459048158978468697257602827587785467679474934927157934720860779965455060371305069040607765051983175599587762367973127810728900121832548245750117937406791896930140651352959216009744097055747444564102913195710753221880093336827120969026771051506985434219341491088659418086691382359994366063105244044538651602709438807720498609725096099728920526478178863963491294547279857062246107068799248282134730533012628887986885326340870565647647218838006134068216102573845001030282066641773357695760361714945354513899458537449263922505838790995274898562537619559084521480119506331444594170458234890449693412427293744769846812790369845396143423628815933267011174394142487361741000528495744367034282501989093921947507051257936966839993054074570687788576881343039880414254529303542157482527917389884155517761379825610104310385059778902318265166145745687617374139563066111782949933961274645206513394559521560211004176161001473837251752873437727745740611465578420251237950785007264173352523834268192472513503129792216803342180530250760977933814895583949917492662290205687063332311774806312682755929017712163376504925090843755293563280793778746756416371261188196740735714933104283339334918556811352115884227482119434323277926218480578497445164861090659725005838741074211856771335959795888043077069945633065353332489357703921209828728676577507595532279266738503381530785915123671695666856226766977938826271209866507263458520533225435848159607398368493463841017000146012675833099433595968759432072908482050499201968898167020936878588338760902559434686845088414576889722024789758204112387548964033741293093823488518037836139609458910575683022787555658599119053738486470129091046614716451498629299915844094303565645382313046722042180725689215791869151321013613648623305473256945622424881768639726287483884664100383525913490420326032017412722553659246583746255229392928919894476633393674800061499237372967757288182373679281426911516291219927966907701041263292747706864056251215169799679738524079806048973486078250800748918899231001571814811788150027516261607144440675525910988136086887295845507755621208976905076681725852204417362873316768387345163104776544824501937159112047982583583330901433924879583675920439645772142101086279862682699365276124721574627788762606185124484743503902780019729820854416165360190693103385654958895428745527266934585373049706002158148207963177123468217712186369973354976247107483641784557927491499239778796384847473338659969550580794365127671810091500384489126627015462774785166432999111458547812900933690693081004819605147679693620523068112984088684766545404708637519649373869470323223227467266684288078289670894108558789206529062618006881929516932972386851934930931565140685114108790452126542615372193699632981947737033110865717130038889160210480382839565704559581617909408862267829641114641586636289295495369845420296148718994055294469606811250240332392575469489672749791977641979862109185503141681569746551845505508936657355730176516206128425317467991102075325893896394567197834759905342825790789194050849873856473988985821730146054931932833575572458852893562906768623111018975804080898508643472673375203897476316790417164118312385368171779494199670746017166363033825198366541035629037563470194457545361419324756047547648594361162476940544733022784841762958003170282884093212806382439698277858998034749501265186571381425618081670891309636612113857378654005237770390372429947753388517014406850394152172642547874425769307664425394603363970564259011581086430543351555584462707556769368926100140455983444091083272841088396662777136730855010319902549344015567389112116855327372484469829411989588187733570373277612381706466663535668870899846144563677695117553293745200136672502633273493085432726387859349643388032808525659182410012841598012751217062135038264222430410224913760685833222053230409149741228897841969400640688367880299417344276567839125958393889079156955723153664588877952553275498866941547385865259921018758449763922400162935949845758360115764120136768095792789107270792280258443643402874014748605106269460191072140706636844514893401745135531079921396899469484673758045811660267349213852713629162699471027370351494190497292734066245170868182682421379407713564192915769023010389052409044894469810391026789923808020543359471705580302766056668521673973560408610974350284589747864941509969576333681767895692101902171825137969252959382186867241036668624991248359291271379484045044334055040862417885762772914099628141581199604827129317344493053963497118316545481822302790609863458342959176033330678549805920720365113115737638248046022625855034385566432889242294992105318971799997096532562861120316774375038093447215954955013939291029115978561857968321169317609071758282884006698356754680464733926928115689324919400756239786637567448909166005194612879420234017081466751144855623105633365290873749417585358170511207847733366143117620104954901405365828938752964328182009500671495649021026675804409212350715506683378989489008941052742351433187790058267330681349995055875381493282560954568137941554639359235318251167459860463310278341664013368879176919522779049105219273509061007799350048199282554601138910508237063904664986260823710749953662844031267258210016556101226152139849405787648929649890283111703323104697731628463158446058950789899006694049767195361935961310714001288041946717589136900028423926335657406270617109223811667001531857673199776470262524243531033991081186454480236913571946533973018808765377613692651109182507092242488542205569642538938648836095209645005852017884279625553260444363455264014561548009490387643754717269625354596819267637665463317675647251176349265855427436628285394570386728075937283803835659890396633515321875041558922504791764893921383382579938043722295301748109748414135702154015353839427704669877125267187770556425567128277190658341924495373348184532532027152970114734001551049785736174058083612481388000246823782980481780827261542668816643829227403665032974802519364396630596535188401257889390082122667531870935696043257315561819880759931705446847230760322267467330435224990841327755546013956270413171596969265562263699487603763284064621737439888009931931810972370707365916008505283216797185335460540802314637260167075328285610785957504139879907004717160785688187665698271209720819428510459160363103731155002444996224802292058117261914821433227167184284223033924260360167221818470527611299846568880867495787779723250005383225457999300444343626260994577339249192437026515988871192381482291446419894947807572675019244489157951199231959505462468475421008206995950612205442227808492704564021864427397943952401455022918529581492268892380386395468869578446559731337196036318948447902062384367216471252865584498425974330226763757309093462176201599213650626844856766713714623850133755814357137317300275622133689017917198081227975500725800332487871715080664856530976747384492240759980656437000831109378723985651673009840556176522451982954876466726536940542276895545867929605808981586829529465346879416464462240273983644048299495766869384354286142246041064957533929518614455754093905563064287788245726035800611638313428959910157644600858819163178369150771712859941309373642324599122609284925981687166648950620566599746574095632866462789976483162716062499276922717751033767427373632935693497004618258061886246395945289462964554177759089487232572421651218600905966382127321093021546220451336863430422998927430282931604883667012033552345178319310885041889470735756601898522102817089554313259332340881333694188700731451171939246030635005719637207956393268363459923097286013671468899300855055146438167737422255667028321206117765989779784980796472459418717865724597092029456671024393733129563445093259834723088625119842105244532299664203209471972639460532273935804126400047807533635947830156429451027429921410544848188302731847835462616517686070700290566097213223421728701748526077769866854484120179641038913311656245702972301556287638891042794119732381181100104998065328001128678736064965452645434445330777905348319527105495400279598991588773630268586717583291452963857766874139936414669366229841334786072836729769319612157143534348961735058959416680708906239796994594865962162664908163046616030447682642369117677517600202677888251339516443967895808230452242627735765623344533807182506015265242981129060571899135529364694147858802066391327725776478520221311859368610367524166888473618884126062534810111986186870925027327091719526468616464313552180640916581451406801558836180088183197778673302441123790152707944427642064821486690493486229214272805561545535132206686544280182177024598472800921226816069469942528094219234249506014080273489883089689730214771588425671398070511389736679609616139727894707212906986638373619766887639055076736937044994220868074312934846211199775802576647145100959171998893286466937859348774259830028733964388312520441813779240490323915142652215147220469250544061366021985963685845958584214720223376140756402274883713820226923168527610284431123968466349055498513051312554090944966187351352048604356122762049485215833216815487642883962410393130465884449413514805772466850051388070640970888835637752780911606830966760057011218885075118934128804856036119923979617416655854092799868970019140686656855598017531417285663370495570825875465577760936082294887191732402601188053669058793658326007261889596768655707331052049438402648019712722481592547734224600258124875931753000584960950408831651764187593917288030606906347512153204535223783646978727694909574226513876959850887361454204782376233646345782340799786855991016979951886480090387328391376059926944406935845149701917594110195538224729602009673928441291374912354380208922416074912351899509004038060405098284750886783399068442809200742225967987409055603181088099678924338200420463879619186022215230489631846196416798519263336685051920235775831331472039161896089476453326987923618481021961260789457521287552552527795630869907704379966867027836990074035593180528315430879533463712715405347730549763209274457670542579825248756486680420660408406834466708970540429830027701084024562745067956834454617906156984489792170867164332324722049850626785046049964443967427088603058261638308196482091586715295551611335888228675237766376166617494189553969915691334063392825646982336485614965282703557247678696968543620806547431045702973566785487430969852304294073575796579368959779431489256864511378705219078461274027059483443457543018889691107918947277826776968287873385052940395885546043765876597193391936342822466681774919607837001042373980548988074239935991133294524647070563491295283865152741821454023571501563549400151562039451809659706444183147749885464308428137198829722472616012433539763957993625510698708070718625832101294426620400288769721301026254076456232044812115534498396148484103790477187887272614703796219745934195540029826024906501054337027024377850725204067089085396195132932109247214684658388134961651164601987628570160118444897577995049480134888095770192783366299353726834592890584260842639754198097211588726430088814814869151937649131651168275232008562428928465935103161434626553978200359477287332061886218269136342244476157862830881695762425479185535738211431622887016552076361051502515434665294339299027598938687204436692142116653054883023769034379739483722702167074745159641539468186325045061489007683113111759261606900148349925917450311491984623063595139678661280318638845507420646752690426146329514054795245132994690731800489479795228486883992149048857961140585587055331547854978688600793681486002301268583072808253787823102149526654152229211320109450236789500408869448254043052908707375321171014286264567899941927128659703351333798993343615531923933320912944008519924480033505555903294120134449462238154126351995569221290551369041228873684650873449986213493953679504952149509888938939613515088844312215619796158017076228655472268881167977203276441207264990802858018174634607978009779289267206891700391307848433632847337838486085391735087500315173613018332877214612872586340710819070193080888716260829589689011376246293024762026266629582298441892862736772979189662263570258296935184251010711218386209448051167857465410838797434909914347414413940716138432339325184223813898882243981624453211146527619294566159339686502742032018331690158005816360506242649808967616578624558954769625528678718823776641025026747932869647495448181554970284796973698338783201735356318126974494476068392671329362496108804670192227321494273890261233927808054885290235376012183566537398619049011152413069174483499251526970485612693086772006295670757009365105281831188906858479830029732629737502358607471373682496178062748839781099867538794343451456987649323225129517046553656278284487689316581944647304806484343583895872458611550458641188485281311150360548181699184423737033019173728307167888851638516170218148123750366426739824567074101295580771264724776561619891147228904967453691248590340707355788455552945121808213623907496211565824603906572655920123680180649662636022433699423535063325351265603846627509587388334128088287621564011119691761010426506440185567304239744580972106141335426869403610069137805303729467826911733537531214814815839695577813043476330869618739452801673882913889424018284747010527007597598397962821282813447487202986131198530705502532353279251379021847205403458446910954882331919437484614496137824955833730078341307655318226093434171117045616914672890491564799826493479458682979115852448699872558862340370075688979033972318439156674508055510370340893049664355825962545541598199490308754726695504709597130452306623816617471536594764884835654065847659456940486264887583055795843220919161618421467822002537119908472671460877415972787813081764261565560757301327711596492834085287705179965725650140739244247055323204686523402223131378426938863838354330127368093269468652703644351160011548307601993340692431619184887910388035078959725565339096931371636490990014792754482453514789017421669341572625958653989660979636588742648657971779299109136448834635066233859392792488426701739331637509929790336614579104087337558489625094516600422567813638979151884549473450080471153431589437087636338922802042230185190266616852835730071496234205361472384166882125823832829810318452369325084473517395094555067873895728857042924684430682686272128372798997820234965247371613785487845524185240309953407922270178928928648218993051639354137242503353538016317438497548085865115666392354133323356698144531164085667385681269212860601066666913108452009532871052492136338289549337895299263532215878063975367798360448646696716266333091956305515042717144758914880822921760159660972777897374715077892865329182019663375571809737836943260736486055010565581413575078411361659012678631150518330314654284186141241699927806002850314784631069144776573455354932600706385093858649395701932830610744842182117181795543760522909767967115998859504810122568055854315712127928061651200642812356381427510553952676532322581432754616235362570666651816999624806006180524341095770505627292148821026072251597402771530761514467202883850006068526304775530289069263823863613047288771668688588334309084056100975680685998220087520162221034914284798696784051252195079583351946817755058476728797675316800345656086085490505588230363273064656908407077899356198505942351980134687603443601722274764664929665339396165911563546905553408813365029307011788899432555695747801103996192804608094077156189908171146189890354152132158870537375025437750416118720816809217348880981796943125676881635390343744337263102886053859014320672707018537198556040867260186117948431898837258296909352548919501979988719092038131372636226234700046807071452030381677796408252029124513522679545624587869975358785452593625654984585566779421450362629587959497200340196854487567718639515571320197829085841132086980638175087479768610358126094856371162953608713176234652056889494355995762614332180638767486770606126459446454629039599084009725096791050300259401796931049405805477474640758416634887265982681530480815932316199068365082303730785301938848232313087490384983571715715322077334559214705105974244123101028224945133851452937444644216742145860273778749098199051797994407735457181739747988821201650545101485275071343151905364266770061407860660108422531865275732684182797306299568335308006852455056739803170102473807516934715795460217895489770756069878735502399778442355244101038128213080364453658057685609441726229047382748283996658671209067521377234605463625069084978175111319612599075221869123466591698511943858329990614363596046360002610040835391619283954124055714409466874021267657401158405081196438616024891623439681393001580218734291904489006687398887773917149050961496466142207376762977346493845827121375527630329857379008445461835456606650161373118080737475024253256235957835207204130614665772618262948662842477476557626916408063349211068157180790465119010374433496378592211589558111510988190916467192538161017695605919567266664964342217811518258572188880323698670173211624283817724019851136334921976737867782376050536859793119063109940520756879565501577309929723320052062355804198587699189569778530053559472235364633346939438331222942053805357586862970191961374640022678724510589770508954832099059500282537079719848462423510292481774185893280424785713643459558029223932769011822555264686386357368131942204433454414595388675528023002004103432798965780518563896103314288854123202470141152407009704819360041879583943967283517705433011698889551831352549803134696270518548729398674541879626145710594199473339577134626232424661942849468672903018555250158865400657777861387544573281130928528280882082432674221619184495878005737361168904494754530781782918275248869951848713041797275420434787988735141075082028657678819724264850020344981526096156895948018325577550899063815065678228817331632995709185244113270089713091846625068967482361247015514387852516408397026466562254609317585581093907173784473995013331757439125518172066767295241794126643360167223501938760207987861233232132915323335773863401446354979528420741176795651674685976949028629554428482491935539411792874438251771879874703458995164590601179717549617171997298212014361057992316254414198141979224411925710280559223430430062340652572498014421743780021714555862708273945359132334886271767409254654301089384861443521950536075726548996553338422451983409951638808654576744440592555656507992081429438016998391759106763499030171583210793071737763230154013206432269107976160349652905100631610259634408411441758698888406410642044305955484527224474207761972571474278378486394235091992923279994499984000436601382525203896219099111434308188561103689408933480911150341329719793716471150810672092554738480930460478649864969932887386364400858802501324105861935464449896038472139393656167688011401761336143533447581274892471674282041455817039738311090358248572023048440094440357398510438666121503902827694465732143430916656445884277144782621701433592367004119045887843207378994735208772163886785987882887623025105857260033288688000837622505529628652386370986900097902170892536239222898425971453663462644454262789095993710394771145268636838896774716802308470071610779942192566882999923942638329254056211096651821914230601379844483522700564697013719721082403863469077038274226049757389467548857610467747269723755221324900116758640405174292877038685724756864085951640549782788390028711986198692613343857763756679112982754101066126798162284299606738538207520193507915504022189534616951193047984301660313405275689657185999838137233923421250779585747181292813600473291655791241647180818822432799880861938398775376280793991029412973402538991054013081044873114210213941283909045702808911909127615492510199292011988058216098057269820367778987910041895038624915149415263070654647379796196422733823225603672358871561182535818899635626820221140533586913230381343624110374136329488666604908232760074047037898680420364624522891118773440569223602301809942214174839213479655620231314005909893119732436029866708397718580577729674914146410828765026369282414224419625792443187899424436346174675806366303553755025733504716529758991413221505968576524766371280569339500811821679725302845342826002550834722947499868030165630234013743589518760290712967980331373031573651632414824152639130146182759271748221548560986761957478316578624038633481139128218617796608561047672227426736554342118434756624150705184791369807405291046844988921945344104272063455325829970486601714135848121750949574046706022722927935601504299586101747219095742191879521705364397252250544794090382108479079066365478169979473538422237769977184588732489766505062686265331834364513257072274487200267137834270884802173500706984824176602734420952763808273919570922331076551136149105130528901121235601689881283652319279201280092202595465610887264331205722140128394183153544491108156122479917771863567301300605902451807494161556581993886423579563137040041647357927409263051430439572626829957968032313226563288324021303068810449085627152925540728097652298002459770209184314655227374116549947885842860194098474121557015839690834385335963125664436848598777350867768942142838948785666781597152804707403862046580506182772283322961510463686604612359280834080259445268979413267579593192840935078420555283263093001930310667086143198573430950238067298350843552821997423409236295915717536569079174351663797236630192385036678173215580576299652749492410516558559703383668641890032633577669863292315414187181535927408334876224983485400718338466453662968887594607296540866647915130656888950958687527176067066424190575195937136295260474030549293799313855563711410768209550988777356426443877516238494108778366490450862857602797612341852666764328366013169956787982066558819746383445245404161920146854357653928303686066230872563101160825500254594060194133509986250003159642642149396390349233464514305677091225950122572999003105313983535145956613153616427342664031357318937642832691473301667838386493634435980603785274689192257936610110665227911243893412380538285202096206205686296770206540470772038392924484847758134910887056457063152633194787759086083806975273899031548255684918956741369283464044266615949076851659348506620233857293343718578387133369130126238287045036576312773363949622571014016844476367276423565484599895674561903345012361907246698802683852663629407661245262646295474141419899987320210770442551501738676816370060860929602077767059189805109190675166267954051093510242137314980369636407258443334376473037127262331499032971818863960365237799246831298575842944721746668346445723228957513951147523851541398899610889589442752184878426781511448952834510709964974271798462527526052629196618632733213898470823810507618768368327018516486149958169935390144984838522902842073868577624675928529269786040500006202165138339322795512233512113812052410212340012651657028663208311831496602212249524834848527858260416403542223630860321781893435289453187434309893358141872382355156494348873435097079109889548838770922995263100911112197787749072529956477598036868868270832682607663272000449643257219692709524376589652998763193189536666672762400550540351734913997193190381177351905370894405470214554669379295289157735281851671277914841537650675676418126873944824169191803317530182767879974638441415671860457285172706061326224262327517329199722897006312982797156336668057225219875465951878134816333051273233534535819037381055587279993317740899272458937817413742108158530658983506395507705199783747611340081246031895513456875553382847647607366631966297053832297536447865570952862313984822502836469037167587804245007837174469854346476380906450186384469205091209448777751460992350807754050315176693203517112119016554146258861600551800507743125997586182514488395942375127319110563311481098329049254087210072620515244809270836132815321359663650123817429031844048001952652256572909623409412206351491621882208892788587453411853331581990925120441943614972223034753269623396539496357982359983970471084087895579760332804728541927950548869113685347463833186731006522456955588608760314889390761155702693171561349470754314716560762129898353376373132875919793790127359160875452652787964839354466070272933086732547882351796426713891597005381238327208625061874216476922564422005572777553185314755529891064858424914095618381266238839643491464411113388852937697441390263226608206074338168811884547671200693108543261979839135285494828392679989387714253454621874251996600049249322299576982908097914492286057221169091969720069679605665252730619890793996782724450290784861915666117229317395343282700002162434842384580713393417211461790864602333764928867828837092129325774690299378626167645300469186869690844483840214716118510994312784657613478363093108395571528176684040542188321028892287988149897447200448557138037696952463950345990263842887911212104838656989457159069220084816338216470676095566859641378204835713055592886416048895151309912462714331825221048946894724383201851061087006707589159313494491634080033616105456847935001682603280426041596928980415403938240852128079548310889196761767298928122773946891620007526590798896386270126738283696224590294996171409363676343768768960058954804413342428921391066373726380527275993610618805942867566384069419986234015367228727727516017823057458326561189730887852712901073087629442963282229159610932778452564582255295887573109016249584563526238441276102397313802547199007300906788157573462277493134167449105715121341269103220272588641310061774731791653084641400190689381948613144037140343683667488500616126908511862218582897377204074729638114741750512053170305975093690452661064652819870377859680842546208855880021048158712693884889917765168908014963818432738993370724112492455062794081438212671173324298162766224114550118362889937978128840112346839349509223282700233363311597187680316057180525146374908055744422886822391102079108635128429863561690231540508622486607770043441327962250388706208943467829579444974156780397459562758423517050373501028359444050227380795032443099257797841487403374594156307113060561445522791192487110833332569543369085403898660297839580150704983332403846044452113932332740608260949162001587568898758157859727202896137416931527932101975342681937991571925600620737896536590649476912886405358677575464102699377709436673999747092828632091834659555375771850136169141872000875285724107993886226890985884892548761593105991647999420556411769223887529026344756644749277174310349201834385766152165034646724817047267185121641013553441568900880763077606944212072921198670595550063849268736790206536067818035543926300341680625854245529752218833749661930831225307001428469746252262041612975468633025432443594961690364901445644084511436106853506429684089470554528595894571398593293850890389544107736806086360501255752982019886332195222061977888792166134076552603146816286242925150000034497283004715812392321829504155971619634203946101878450808031687248496076476545626823758536906722965320652782969226963050426672630628480062339770510311206811515162718124410086302394565114508445105444045108875858011202274377558115176121182093421704280269077951214780947583804832432765655804943410717286437808601842183358138062575237231711271268280002657505671638591340215265336502254481892155870345114561619408549555642732806601325968460868276022289081486411186247468686290423331730286056894743032134456974263310468443782360959349252387493129515765048081235166856524740884011508572898570525616065537350872811368627497837994623684076673583971136363396577869709076459508262797754142057710548122965162985402504584763361497079038906095305429316454774588047144971709663397619855649863520055746654331870849176339209626607121720199262741624234705317814755132921111411823169202377001827272352384584693664134675381225742537003769883593870770681658974393596273822360343515685708445304286411535153873099907041829760726247391216409846747683665555033924110579899480239010640559640268131563032866450179645579464868303811004001462445925744021584220710872103856464100223748126867035099829996772069047065760329455236544382809579511053160373584949947050188889960462103952177852967341421437249304940171380509475334927221831404337555976503915599430849229820357716511358740937440744941754846725384803032142394111200498606430408985460972751718299318956111052962901705090902920985564056229452925166852177973050524850303152891037312468769374532749946583976417910453766629251765489364909561344160525568578205707119865772423168675767664548268808388342197459456538683814701977272604159852848776760011740070814541684656506682238459094124591016141922605894066257176257468691083125663766717219998909766762082389648951783125193241237536532390684917455635063457514170667702684462498899898923988653703069541472237018614952086056371536305678032058201873571962458281418435875767676400977455250696490874860748179121650806134121619471735288085701342616831974354136618794530018158979349792272084636070638700876002565033596683592391957055924156322380880132863050045183854687489798396907457619161812762869514317556950029599903723223814998981631659235261095493819822485209675516176774163524085274244215835083827375753572777705415849672271032376629462272138377241002970257764856417371590879175998402778714112260989894633630699925775971505121296184793520065795931538263857380361772222102699031026419622807369659809975496257588969422572307140732253838220796290900711062052215780172334701642953359319387146841546710792550089750362371211070708099722298162720217707227970935019201496957955572414745711276310721140075477019901062940488095039419638238852731543216969075842595856426573822482398906010225289831158844136391197559714628647774189056320745456454466220424166549468324052408338793430012265239413490941402732336421327610126689316121203173728124691593534293116247248486049477885987653752602417788092123164565908450369043914418228316079482717472965269559741442819219784854066404639366189992656691079377485617734966571509298785494096885291674074814593123226183862282503416673027239558473064078907789288601356267222073985948070673483815254128627615798992436754822071953608839686561864812377784782798454694065810945012927264131101070863464991574363414049627249696381277880029314387652008452504199807921235434927796703620527831333240328995900977575488191132806826726365599711520268582718266015278597210665095525032927595516722445090043572251486614318787478117921068010987496804913774826572485960055913019789932072445457599948543803106503552497912247480131250670383702890620022093089474314390283805984045623614600392283156849482887665174296493086107338481164888144239621739970734947882478109827960364332509385633462847145331371476393037166826847946119612599228346185426603225309829677906520557362690320815112399489410237465039698221388970464877283172455534797612304636397487535927285084038391167508206705763436071120238923912790522367819263774056356240946361554237544011562083700420605911497093817374061984004417614641767596848231840664941601326323067795646058216453199754405061747327879377257578103737141530436123440482213253963145922978106097461180499094907196108435587443235437426758578957755877849395186687200941099151743706075799192999989235787840573493808157426500064250757453400038289619184964837082706550100994267084237340923521402382048070561600835391164198893304431486276468382337951308011666613590940313682744610045601497648793882029290899037840568304746574562628413415856597256770013277913767587510781989389458646277185740047033264196639795468326466291785259596539989887126849051564993810765093721877664505716494203556604909708738002874693954717774193451735766522283802943985095961128214761894751252529496918840228259435219381557667299184332006575274741467743051350931694330137061955958591332247892954659653275379337574311675262459961908251516539649030008675826605451736611737725105097554394904376169066879264866512097357738142826252049189734321693292324066889023325226127585124133932233733698461245489415325843081011705728045353324966900902332897397219697424742382312654925613813936131191203631803731999842338252000689404816023358330151658568000484228139932344598636125169733131829593184629484421197062875947547332771178961162360447528244396752831814454796647774944883142810068872688431734176936286311414535245694134317742360617996026351505211728676727126403896103571023162101026854768064446331445166268421403711098595740634258358725920406448583764613992987850433874168214524283528589809406828495550602856972855279494258524801003934466793784970150436594139115196621920740314341433816969065955818264276948932357366153489924224889901545578292520587852387056539938509404275100529623891932070755230863279993150149952165756303019785494153583781251009479068423576890811777539237958718445174043067727523635943529970740057544355953496156665931275198170344855439408230922236433848533302183239495558272444730853529169589108069465277590935020260808304112072270105200399233580431818959537267747020208750048424177773804360507020873989856744151028466192412796994535162104252256732939264137539924184839967166828325885518117841912851502690444397162460161332993323981685105337976791108143296803216697105875575690846081880649085197475341680638375344690497518421848420275978013329648201626022535180220717984977615565596411268381389401216453578133567536401034712824875061340124312957225795255307905102338747381808582049787184982883888158604387460760977455288020432722415708576262935566761589605359669589923735389435787846972125639043430483256966996898225331142861525904963659522951352363738316019338289925074158077389265899030445971769388313331443687685663904626281801329868903365172435479898923859428730933706627703703866320151707624055743928055774172095851005325051914751153704396529279520383527878825354254743160793278133672819113445248867530601279288442345277385086919227475262537658946177645404077699315537817180598133372843961889714444167717246454249555026091908963202729652624005567171674983073399234855547176203490940284193778085369060130715329064355096823711216795914651221159181488732213916067303648208161935413876328840641589195571882893231919860571013509663373836485583894076308752297437442448350053353848223284701962726529900412681112844367784731851464232156079172687166560793047679290867725248673449315777493298029056446211570013421667707663495407647046224294901965589129049389298728462786142263881321101034211203891324091204462275918385621831800559345156399491850716755599711842284626490034914737307757396414462175899857269024372577886570171185499204860670621986542289691424326517881777814779826379186835233488526102198552102606228791867463020159916952098651341619158927460018716937176729601699865460890313800674833451368936867193146056856712726685161393837056074650977841629990788962179270291948898955584879346097789788749731512289403574747825231283920250162651829811124146768840489296379127591757225846053366002138226990638005237701251783968153677560611225826976280774556671726559833267995569118544888361531817899813108220452282011337354749365071877378932527063027634988691320055965492976295941892768921207616360469674625714224552583460647952231711746492437310338736512970829237465573944304282828893092590104185332246642256213852028983843182423357339086221839853340968392500540836383407161004171839202009504886439425330658199743534446686084681467422396277198888129404555462044776545951411054438339519383196756369877196348751706142147502438044144543770694840433754775777091915445753821875223494047640382905556952507582692587538054265280674598988031537379523996728514713610341363603440420697867410035893598203471078421851584980035430600413089484988882442478500126732057116338949007485357878109242669812529811611704718648622391770562703900150456834182897146834730522230564767364168639599501311710514610333152609174823730513414831069653430143831396709583427976771159966261937350743101777841349632903261804465420933397902990011069384800312839372565708705614201722083770896125862395914240213684527316530689403167431785731741403470262708350838586592725269021333391389947623469277822704050539855722802602110034654577852583293178824906066527860513109615723993102840565185200234157773914989724825259744045987341957358078353366803621516914600316190478614514994598537254647289555927926834865292329435878826262759355044781071550729725999025925987940616389255499767620546463283074132363825736189904529082266489863249739667309763683800384811851897949514991570075103137857847359502019637082945422860804488559406391730704514208708425165557124976259925791732122443646667641254115243339910629295049067350524192937435069291286405148092688789920088278810738511758419330362570756106157282760221379213977484719068509318997105969411788141798111179549239079189070456990253930579374874069856961284136422841091050235524017953756844121055175116949090419115717032478561135858064580340326824180436745997848762713775908661594238852672930671407156906399749519077738113561410622742904099206642234502102721763007831351182677029870332898119170767921289926992552984872911544850599951558044583850890360202878737884802444731069685503165995542590088749606036066644510869954077636377797735784579565933589654443498893515035946001668584912406948341558415319161020564463917018356497488622858247379399501717824204641284188476995414290399873461656648722220802454696835671867147938716848078863225472922049882331282184975008318824520232078159189014759441619131560264016810211822357188695548707183420765797397936662595007599682223146656700254808394806300818782194716548999173045156613278724051465720912384530225352303278497352424585694479204581704541871222400579425690692661762520572715778002442408440093907798911808380307854425417211730505553507051189939663668140124708334329600403453588169979002325533566948766801563806417719156877697979475327379713725476985288473559197829706578750168110333889953273302817674161063376101651609810189559054258896461445763935937928030351012170321184982585647480972318709501029915392745011435800338705364681265273539876404399908485667981304563910138034924851372287682179080571293200726162334573247034973670787342726902917341797077841877049278490444076022439162269250195654340455718011560614947508627377015498901698482654114092357992050447665681674687895164087550319780041292192873215161281742713579710132665850009628642594053913631216361743222947560121631154743290010865884713188495632418971250441690728857605657532755857802240033264626566330327761807271787798732198708687732850669132288470671874844284213676446184972840645068571617103020229409922824467660764345419403989565859926913287059218694079828135343282860752024259846062629922252511911383571114327068006594497251422482282211487624611300408747370892542577200270650909504834764504644432186892285310659201492645684747027452694346629320703730783988405227766600080461714129217614645465223489085399006641612320587238697136324419923911975501438047111772734548260654583980168833571950608399754617274606871601854924806932845697872484179127380636549451232850559669482015611787190645096462881695105679830587883312171747617303395276357740842344428468746206160931798807020260142835276874434343974088279214443599775362697223847490851597910566631764558636636479306000380716684420530887765260133200715128588719635789097457323832315060328123895006926825258730384113804288984811283237789370514367106210878925247865280124968752540541475549361352171115765141930245351327918351590399329150267445460935364865992659401812499958492860010374508584953705608118724866103655471540290630670475173219955826894995833183119015812492200893323738073816891276928290130650667201570471276221017761775614464162752747992176978656489868002373801323519840932406021058781133893509404306399126408540431608696571983295379789794810622019365733602713587168013514256855191843622150740515004251372093814472385587101180388641284932987001619291930846830650836121679132946708883748918049265408425595178964809966871741084864772419297659865556885065823982504611528365037710436235107492375652477050465677595631071625218803349151371166463488011961649578228267435378523683633573243345438844489264373233652219150636095127909048523070674478667708007318218692774954050349060913336140618112056150549936849535167211659885625508737359598583990107511600571928387971556299163939555333628675722106353318289763036026017651118390573517799759349495663964641747456829895348071545914514078168282587035947939725948167399893920090639244754033682689204797675015249824602668168029805429231550310908229902402787002814074676624362909014214917646216552793070210661081912782879648079700616635946388231556967960714534971407792737489270590265335205773834108315550291327059228172416522337303176382791407580142199769691096107716690727843245077921750596974348420841478213588189951637581810882506246992260293709895108537178462879009214584237773629611125199721768432564361471855520817733602982769748181340032641695105702277325955810184789903312309629208134859521670115327130400607705665390613564569989761756868572546345357267905768114523072783960943852936077953931935669053739653341592647456113319871321232007183931685915971986620063872552530202994551456124980237142077523019080988266163611624743767143009491537645609293873889064166842615270416074747985702168783657390202523938868700851901936198078569581647284152567020668847693019606592803363267658234049015863850694355354051356864315186601930850067207392413602938912447173844649343726986444734901491918886204574605544706111050993681514884924233485798081161270472817459477677688550674846481477146207436812990906772438742562536320950559310357357537490873840072027451870145309223927176578984741970014437546659550084830515003323681041055854837560587593327383555576867193141612837570192213739608617334900908286623271581361865388498788784774830318351761860922358895116018238655070974686999024758548882494563441024449189042246031148416378480068598379375166103024136499321635152890905253018411232302440852025562922425788048522765255018103249588930410138386803147294454180419616627428602024143507703390440391573715894519260077565198835906373085829688088922682321814732768781839521031154577098834227039015224939490429628883752533486980841342240647430508491361559146560759883901496999829646674166989704814178201354159230305584984899643067973730582580242761299006007084154645209253480769342204820830859464822104218893409999869397877696644193257479142113190011605413775161853532317244320586697546762596700447376322969164091222023246254720924055679567950411311839441651080998488121453123928509824820492758264142722189537438150727312624821336021799506759534058377741762207421256067007759262291477559730504709182433345249776510262946193644548684427802071169395290200664877735867707930725078123700928097412875286428191151108585575781689014010258137552423160265155416540214251019534081395174319750618318285424284247356589869767291542510980624805759076695064926534225658202255286929796448227932658576298572165105122725705783953702476258456490203930919999736398568511376862020010469339469540328099906709023447239073421902208169853932369820861969639623218534744065779431464031897035932061487372536827916389464510053301748175699457352251778774245574274664716202302260142489028473682030970992233159768697965390791724613151431776249205066688326162211047384494825031136334164211679544696310936883209442857972595760030304825804081359004069071509308177664060122712856116745321331489103519570537562736992854670713280580401341778152675399807627799845454121266219868999205844193321415684054207989217694760841406201398471430383084129444332722474070569566231228601094380640544903029118839984234897117124133323923812209077920563572049956385321103138423798519141656600354372720622990406422101643892314893953232660418325676227791273525480011792135627538621858522138511762383278468692977928641233811607867175814210601269175032678254873034276055903130882849095890431457847720945130748508606417489723946106695367701617836845918648038813779500914345704133044549324918270439521274796566050010544130022207883836089644788161144009130164996954185963549722642471179947152567552185657736534963573298910677964099698302728694902281347135267627572684475530527252742758722972468245278633481321291710082579175041734492476084487186279402518834583850543373966687403938867697000260596844225962778131249035722437154521038494726333541529210408950990326739011277448962447361543776793473824530487318989974205972338476855429608577407865649707188428729560802818816228157019473377424631163640067424914225452978477637769078387689842996002732925186749527079933554285974685426014872094095351668012842213432134396267922535241995888778369501795759996130620199176109250148948289289850681332633804613798101430763492785446098576654093848406897446520968478430379945959135970933593731790112289297619982858228391166238342749984372984085365693172536197082135506370379533757979855168688335449625651718113360584837296368234494470948240489708215774445820701475472357496222028132839429519628563518281536370469980358744910903605720594362435590720579975177687824883545274422489573287811759209909988101408045190219038187413078249776895598724886029066368753765400534670025684780906081905161079997691785031083374470096179830886992149441539826883287055271552641157949507103988427158775566342034148429879936875435170634174401249347600708474183076538644359257307560015419724411665928597875079705038108578500587913953173122760146025450937201456917232347911536150159532835656146593980496614799246946045591223941887395140679519853403707581435339217719057857243414757181611701758171551382039053373483132164868391038550339208483039216431461253187928573428623386237994778579749563239061167890810447880092041760837753619472253235309829889708426506612935597734529643938479157476285783519050280124936720433341067872225445575420943059623466544075200370520990507845833763662986497061093540352453726801538722521551176358276577598175236044873832748986944565154078605051402972209078314624132791014100811532984531591602963938855824636237783698151823380979523679930953756251721304396254268970416732713864233980962850363648132112615890920659527131354016584467902218900868441265253144177887915864518028239531356893747755544106514498048075473174854235230128026240153412125404298942519627636174230260531516265024928628331985884945772336769237996701449849406807675893500151055000377679399310188253743976994130870956969085956780387035162930782812318184610953031828675755562558963072559273953313450533095061693795692115935359402444988119752671562511273053366657199535036095118402979830053498603462533237012874759854294007009799778864793328028654664756260080236496027338276043850457910984515476140502233371621058905124533026933491879928055734737321423926263962793536278743477772757672246452943359461415284626958593119504752535615367664684953660622056166037040362397883163590714484393875475876684394348939146018353175068906970415996871555958707049522483431815479382233400617720696066302592828799637322386824954007440439367741274649534172686984507979445939988323979898062058215350783425654203430513251033807405935688818178663991914609605887841106663158537046730728202458963277172440171696506851699257996147872436645828462834928785629559942977926663132658824859518049028123726812977317826934897764630199816283508788903876442166491106026303843205264270901883141066672577775156084403092767350616606551536831568813816374046880194337913138306631899678436700115702368749975105214907486401246106900794226993148313960314819385956613235302321780889126609740879910362009494768734933768310689832152336195054827227022362571001099808977662781314696915673350966437180280307474550703040447935647508417311095606888259979895733927907079899713304824928776914469701696652469694403147291243699009870038646771108960440601110449067903707516610372001391810538111132415385202716280688520649021785294700000719163276768689759600557177287290105353715568304421324267145527703316331605728011498806579348742818041685618824741018818158507198001584135064264713740912666662547628285993520925059884923935438126041070152513127220953382151359711458137868979626049382455340510731464965472732222943528934528911971184924419980820569873428405750651418890806325917966081903131892944190021616565464342128731546749305353728583165834440866624939135566236910392415215008055550948605275246587752340139170015856022081171782091438346538813491587680339603367383199602601655801888053288708646517794288825352031898405897398263884063458960124490327486562448103528270398938599467369894206485515353680413139328143395656831428310041996244769509809116628678575603836405542508758257843560702889226690194287743816155226968874877921631371807543626105383435078341776508011152129935170407664053693906754608088573253510145304602506086230449312131526283289364130671223316179497175597737744020772570486853309935757390458132004677444344609365334715519907092158329256480025259770171264342306041436129094965792038384734358522153169771830664799582519778592829685527642684989964264246184441638634265053312327483597680831195877833534938248581252889807024061779854406126627014964885506887591976122569483740181878207202269339464971337634062838036110542080860946792307089343502396976857845604259111902501732730063762188904276923512838031274941704497978258019239194813234269677623888478931495716997696321139699306114770387727659484489194888469111481721837684178804458111366337353318275103233809783780732274230834836780743649165558014311833325326593667616606371052087447858403435648487976859956890127031045790608004752372824742768865810800256766324512737302910444701016618107141160399005938077704744256203489490933872479919618774715328774947335567411011484528894948964808159436442673179895294706934678554930690599278099137875850723093257879894786859950031985960115880784154129826495528749695016180411753614093499257799043750331026107152232708700740530024142715572274508070099903280974877378203248177489003309856285662626778287621513619811534424215040742448277378772934722986233944709720583493172471499939263201542415234012740052546991504059564929264082477220728900029524068578491022474373173097624433269388907677786783367344391271317898019691266198208919159670888722176039996744100838395783267912714988383682479676359183874120745402485985800948616071810254506522545041446038684748481335733154003370673268607111179282415074013638326160647140805506905607297641296909701789424118339642236197903582890202229119070234706826341102653771048334061888661473273642102548860939915149757404567031556527183248010611714212180515209962440917835283866123479111070183175809399615063623271639700503602748083508449709593816267506433190122465778504859052946195082883594564543944818470802536228782443161328191674773848732909396670884840814115575205652059086010871564541524905491008153052852787731459876165367988890504169338101702242679402900864008547698660196975397439491025484090448720860766904499055223342351151427081785892436458782253487662763031910343914340568375716376897353293953931812990011240327794107832305256439791262221003783165328607087543425065364409346787380933224806246326251979184773831656864766807713018510145649721977052538272741898238380911725733300762840836609854572647238378275538577095876194905666357430316891462526353487032179550111882997231911448384571588659622264140969611326898974477600758163368954727018882836512343196438353929861860132092418645343639109572050867924190218819563759595288712517528854757047492313747518955072050954124596582863369106009602076127968472415743449838411780352121572480984462030344627618233866383689723795927737549321776347362137749997414103327004047028847518087638513687223545739284463189671215699287612845185576563446013934338135872732372620855560520023742040571350821052176121087931540228390580105108722180105772690235959328855845190842414075167257545255688503221905686164872928209310071774403697055357828196033891975159132543699876705654012242752228207062358869511807523899492009607943342984862182332341159087179626348902730179338646981969606952454541206375880994550789581974750240857722627762642406873544091902410657722330967462765905018903331959905341265917416481282238428088725027026715194469240493412129415876547917911717655570922241168432668586051252440562169554931349788072334341876190944175429776965008328883663635005088206895421664831252765691528465135675723672811842869457914158661971012853830632225649455898422979694172359943700069308272267649100857032086507127054268008787135060458305826762566133702590617437100826004472385021212954596434582656751204916121818134741310640378510344413028362180914110016813493275072838160186140665325609811357994253472546348232863623818185908175603495072334941707821292320686354016154090380082975033398940897776304467631241322190768261129378620279851408541851848424649779076335262970099837595795718784377011331715915828254746326889237398870981842095140054524943895768744618115354273456898109939479650716896171539238091766316060575948991163253840233791465827959803362749747911970946775198472292626878118691628246748913426668797491838581189862138566157950628686224522386456215782782347543635887283020502145789906107471756294762398671836130746068167288755357099228434858089482574154845085686630100206934711993747731924173922061669314208305497939634162163057649183486234625803811240928053175968116184007977215782173208823751815040608147603215931390865023013730185319762795700553018905963667729811803984539869258537128549276233529635556476020183522639089640232188369744847339055046037088360609938008201493782326083411600069539239727050612090034672916999853758958230438553247935487229900325297830836561147856992199770270793605284218782689906799465060508037614492511581550014479705983850745692927836120222191343699736429480072385821155315796481204265481858336635244900540316436467871852429721019882998959188300456432995778469638462275313108371574037661077205450285392582775754892557812864537477966003265764818961637689388510775637476309139260666714387471048951491174248520664418456202896337100501137017410881584558493965709802308937203366883962936233699088271606873272217995769728723145186917241207622205721665379742274630774046180631339793519469019883036052145254035019907277144358730326330641814802570855968461204789905654909029561967785471941391937175404982727066775043651436472747270577475011977214250310349439602658391984288645302374935642267847098343571293848689041648923022967651622002792684242038360979357700176888356934452476400410235591496709651473299532288104256325552315293015562387767694389222647443271083405769356465018202521811673377176593407152320011813103229574906550825701205754515254346188446358190062630742073057667934629119120701388586222635516604071786216933706584112127864195001083734628057707288898444244349974199410246639021985704724863802799698708473295989232699091716292106061039248753797627096660783021585770889614778221158702683302594530276158419881097983345548518266235480351227441727067904521984773979784850700316292511820850777229418611911245285767143822780509829697497934845514312490400479991761322281357295633153392301888868423936890138893063314003677120988243112565541876995427737393961734156143479199601898138181459421637896627621711255751220710478114797455954585230789316106797848498974472862008680342781529607842445803207086281684417596640136486887795652696684498913853955544247102322053161085431278264963673465234094647570692894064092555995478846607618884653009098064033439753393261808491618557153336741370874466621876501235020853910309159594907236724670443224273669738298889315277206674385953533472117191265492532007479741079763492118268994264078335501372966075061650191780240533569402972720452599458942811430611605617993762728376690598808198744589085735632172718297871047011729112962842666070588986439076773287932680224369333799641486721871463646931467989078584001784840181114150642127498951529742034331097789143469061263782079523426376769402644738324260422662990985448301918272411791850106550323870362741484348650927258545955275662860961240288413977006011415166569735653826089086755077089287666982905954416929501337021087926686247417314586190360180325663990243131436579132306538748493112127635150783359658010197746665705871073676575974420036485155879996265781284319359484959103546311591787680496570473689348705956252821208067475894451083868075617740739757749696984069522432633994283821556455119993400926063340028508552087025471585668302525270774370156874468503514963464638161740598016619920839537723473509875361769532589922481028563102964115190304790964135095787355249787620404744030759658780335422175200217652847277569900488420121593541877476185658937709707627549311137908677229300905431113410846410218577288576082672487557806547764327613800006685565345271853312888241358758528099812347230151562380663743266186502071866800249864741563143438247504176228085656733489204841941286431273731168089166367439025010345339752044498923079808789907584358189744630567635725246566965283929019466252618107943553555819284713441529287598878833833305399262429974496342040033328721783731891537155407139028921376983711824714630137735096622687673312949464768882991776445709422003056302664845779187380748001236401626122775118479120199065790525482071270819160348577563009214328177373525754059952309975068508727800343648218990195406400578520258552975189344672080982202171313571223620935827787481776455267743304837071007094203477117256308955618868657042282934904310518130623105703461291559730636470786188743217193115012694339008262471526129728768726087587660556846756232543978619683128690910204101808653738814699851831430393856904446189731410754283363913948236022356539170912789512019515191496311296010918941719774215548693266239016846297221407342680114624485333070341766856689856121608964524020770746785561779401284271944533321410702598218291803686506333197004781638791413654757094093569412087635282103464707853667140089509877866693315151124580044017147986581230325847844269516368559017383513659669920398547914339780909042390106525833184952004056031448081404960512347536789805595246851504459940607051251331861908380915124256248601137662045876854926956758931646201778361694429540740821917216261435492824412925226698970467581332181150515795063230011451049451025252271937980378915311665343114212464568080111654517380971927183265906120855040355108122439832226519271272710709522020731402062274050863534191648685423229200697676170346769618581778361212671224539850285509844328835621078214466077552071197712587959084708022678596440834051062294487901098159903877027736709917886536296092849895850669733252672334967022684462527878775145902183392149080359957276289444990392468464740441284052001231989390379454635764986139404894670104506914943404638992398896493664570097984535546425151350877530229598787217344000444640821972096447681409681067535777482043863031137361786970133585222868336424504694068716679326323043320638386730131262192507685694250512774474002311752865778022099588043496021754884172162883849330932916206660047967429333235095933781973153262112056989660939677043924567958688566827503201745273202990861941698593722742574734493955694544748512740422008524221985350634507228554042295909898343892057495355594818587649445388490390501913185130159922903307592301768844347326160675116754344923401027638951607119320061191409330094468666978381181357748644283221163755167292715687142676094436706446328097566139004413263551254481786350210117162821648485761932525765672953708838585381687376921634506875028855942717197627576225160122997811235883964324392825711151307702139942522083207292312940659958344302402319945509115071165681886032377485505308838052910505325955472737259189803594527291151597178357643202903987794264457939968633318493280035348422524289437014049545181523838584828586918718954677771924433057474454107388218201526796554066944992841457349858286351076707385063091583499079613475798422168136894163426762636286251383047889451301639326390028131674007527715091231654712149723472223706138698056960034932465802413109482213749918092224350167820911845792405519604363472331485799330401858956183598412828807612631798067470350511747488039712860826617911080123531080015545937696559892833337289500654515219164968762675452644539007791344944475001530186061733504954558079066526586102261838305987688483143063763596467143754220710686969944174692115291192548635292146582201120152743703550295780550663357366207070170958417341131328890911057880414030467424798277775239386027258374965816610262704201522190521248815312024027976311556920069150034603792361197496891015204652263455099383781842883074569196617658288694865246871603966720616634424446542742194491275022274496146534440851458094076406018320121606062446606907626772526839945874495071572751970323613629762047320956600899849655796788244622514468777748316378119534038140502572196169229856903026330478550014783717360273474369952428617155841680825536106346655324681929205940014447854193185400620468630940354569353824942442516572067954849107696862946578597132727849316539802879166681627408137060651765800165671986597573961742788658664350684838659180449445175371202070702813565158158352209548213985493035379447869276129597788222244363340182783732494316598700855352986159410233588579124473243795386234178348556498822018501465091794211540774913043023928247941365820736060743940010528534860095855107309577620031112138244363571887916832733022436693881148937353434825667088102033726788576050590892277066866794051053708737298718978018945839090437471816197502968343045539621774434874192816872943108525177467636890727823434608953924176143147975915465003825335584223942517435367508135986844430546163696590105349016663486088520895716476088446879408290432578666540912041311457864952831854507946039098736295589039006009457295898896658802046812653579600905995360500142395830295114338887464765202143604649664211592646655895986518141799787290575906630841427691540639204762287253033816074705244364577075389605976503440501479185869265837288751539260085075992306050086690784591400222511206272432869558853016660814563562531723086030407593867826893542403826935597968728804483539581452630477220377032110414003781006642772736507072116480855797799845901563336133266065889540342383686540590259241975027272158217034031195317321809397184811806038002170379323334199909684240543335564263329924941309729715635895225518042970999787964621209424696123555114968541789434016275403834745343679888417549485597464161845030790287559949513324638276722237957465832013922372751347207837952512242267909168779407565620018366681474042175954143267942203440531416927207967619664474764542871516110435270056814797442858321911531588911285438934289156210990093949787047362036124820878205839318946208350113098842050591461668395956007790745731393128917718122811620403599793496481310653699843274204038208845552004627129574470919021775275177015468131120434871700246577083570792557537059165293861171108648940240814755122054512498903122132792665348880151394527483094367288771247993066959401545000991235315303891223020620207011727885260329568760696873177400760169659061399293393235760741419847030421907434805682866665865495190453869902857140559215213349013588644414602627972594241243288932560000703954075905215286487172736261646375321071683903480401816845387505495334764865215307462974642119670575441338031242380863825031165361270178081979202346882767049818338204418620347461922095574468461964902527402794905430550189055224908887461581984543286124234671623728688514167264209203592638340457357074157728623431605697843167222381197622898330958319794485084286764310655562853478888739771740749741531362491559635047986641349203906262371600320013274433518427996645010832896146023895099225190638463785535764225102177506118065627389744512912409349346679266878536130166373919203656266591817581918798292184503341025093659491083350825232750097324691035997246576431868462967041639427075446592080989842498590227211070726539814455491971823199407181642983862228406860992137277166032433015873850563821863497832704398718997446790663298227674478329979004871661942645725101142703221069930357696121016345567936612722191288311592838925272351168226912528942663599637081732941069375381132485722147676232897104704619752402072614298338111317864377694619190894460087756009164950905184488264895741758377089495015456474464212982282845676068534550430050895578882503501632602611229970156729701777946618625088181906252249454937872322480211598189893158257258585988112404252116594615045453497220757972794595331435619211472859701504324387759289371854768121364345280875786992339335882420354177615936415211837788689508954079838838444187436951154094827123069128943276157381597081899600583499243221339639463472170721687399616458505171479621624643875736770016923277021233562726691567915096797368051212849275247528496409933422349688457822340840033789057053800657521789407383948564710911843528414114467491374358594028431244087230159154795885769533275543957804227958441472548876064370641711270088794258337165172135928028805925020594090187859643684578134929023043569250893550366290699683389316023783298871441976942929199175178574375180705901083692666551028028361374812514241732984712066343111293985072193730402602335894209338769819637935372259439264081586696626708185399592644134154468780485575662185563105008053694562276570086198920236723525104008094697380640294593535219404349765038879665716289274739786328547139462600379907543607584536854533934677384168577104956718591924307313241418454949193516677844114285826043541103048176495837555862459634485579371072153258563515011971510093352200119071972057033064526740429638221880950642605451209868041287047351305477341944831596203866170843991605840069307541198292878971415809185399700981232260475147052969533609401742309916889785781109190361074925126647952283853595196943608456770435992221145111011083598189606508156643750262755005213130503581189787709433660113285507921583888895130742350025387035971918446246115238079963336316081245659262063950654417059929782342791255419097957254528931678804373325450749527866750119172785403701106108006735912630659050208337154328550704739865344499150527626982544399328340372182309970813247852474130159659251371526648305004382384672069672879760455183228399119490435215287617214684145459146790705283165670930736153691431531076982258840736344023013715790254618439894071830651487400395036844782472380056689417044786946654734962674767769507838793721053379693938683463326934565586001968843195458489777351086460512697645007788093168554031874318636206263628374546592940683189618785098227819697826957119778846485116773992921604776131725362705291404404914976094725827670652080572921648828182688022779540538469013799168721069817241644329693498232342581452291393917386223088598163273206325638388309919797276409809641717013087654408000350246823514241225823016733571562768114243860536032068429601288346535869279661390412059550694013870259087682556522193988734594753012228145583651559542424563272648353564570951476108350783532444864405260588291768303844267515452622784365453051809918280445687509334167993416104983489954488913891300662138651104266861942587813308540141614561062441881280880040362339485889703996248764103643144146927300024640363908989888014511035041387902464067899080991347215574378148137580769033353081263690977134520119426525415483728657118740094066633819191433495570693174518815860363218127342501762127792077352010516257146889790369176781842991096582541530214729085743256974016646181920771887099990817986624507191986598300536166180494348881467401104052695246103511641073068149552227614599325748138690149264059019631533517944478473725933113647373335151170213669457864063819304800171854395041316505592069744507233733396633367445405575444838793726100063907817854313811681211224343761172171076372504953089541152324025924627245484363507048057058373141877567478149198979243894003495343554202663414323925431713919718858094958048931813416506929482989886891610377308388420016576232542067630184966738011546130443711358581351198266783782496464483415338512119854801211588568535367398526650100118025988783161923893856551150601247630575967496858497671233718971066251902700929457241766854896587105519773957630723204448307544916864040103104878593358855659351581618925681014068566774963911536701211088754310561178436831333680292891467861807322887916329990598735868068690804592974857074857818054214091027782247731453779702244299040199436245593357398756760632534997071823382503433870156529274900515070279748790957277950974030854426048116507965926158244586812716136392698683275508570008735158537595107649528304396072080381758565640995380001354812118001187982292060474165136241796654147304846804782471903584945329539947828985070362639119624345277799860525567326492479388668609696540797831825538683073447902232077634878101237945774812969885069347173932260331658806629000675384947237176565975311617487304513744370333512899540902671970165671605084382724213056625632006903348699849976346428140765249908710902945434192908802180110224577333706718876352770212310027763133116512956878494430039621950962517129908504980136334359807157382695362947962048530869678616496334258671847389815818162987755603092376162025015831954890245012130353778571349553878796326945443798089450468257058674397724661166431988143525464821267895718688957015064513905558722953170310502049411009692941782794557433215566257217969719457750891639600374520257209815492058207534884057870580880832576026105462695132361512637091352458955555081213310992966306023948828340902517456964112224444877302331340191932773153066807549732260642021294065840263951311690826892747552738105841897972328781786506964569384662086277827377374034021331053755141995003527989653141739870498148247609661171294664621378468370622163599099596133529928145072574767434141028213422472216014756408418938442944468124645712661569760944704845386875456085128416892637597371274919460190650047229845052568597980977191614459147509050714673888630231060825433728746545389295578754135292813573642245574132312726154847893268130973523208694921888931661852503835223563433504610716568333832771000715481813527818877995294384544737753166929637021318431499300994789965645444378057017686314923434920772141293456547074739072386954777489381637805798076884467690492420806288023544876861254956703018775095508838099564934315711483256041037781599531902432393853624031290670101581517871217030428163406847986022556083633282863383727762257305400602329162986825166064675049405825278808677888719197511606617457584180554900458401976768858421466703670802976164925557767362477093308106501724852738147841668366919784107044792822756356571094515843222443449725713347776012948893498872556730674816080086874296367741667387025443557999243065049944531515971421365460770862825719559546782341033014204845585466929830851548733885006435598594062267081441826872373968021091244463842232796008857291711868965292270654657676220412160046888037641426609380364342895931098333453111255190692972784225852351375625542736540116353863351033415941332343825653671501967884401113239692625700321206339952625287319458023373545051371835630332517482332320583958477015461790707405932180962796082664773145129480621949122227024125788959463544946044077153103822925182290099926971736103286812264268319063620294994862865823785697212652503573560542950416361410300223439687639083493796744211265486568074688432569519101485873213384293789805389799118174624829894898847907583664978442582174324177432835832088487609805955706827115654516231483624562557410619196826513646739800994480366903225971189416536229058612533118594639423097587175153018648863478898418965853170248270978589505766980449075670634542954663294576498124467622111920112423355467332838679653749071993885238989273423519341374725587266861350599709954710565093245781432575118957269461842426172078145199371126518129551040569732439839768973349718335466823674014170238712681835179868970497961804993895472106208099866730157971436871366777436108051547646885849746927022136199318150098939968968415406052885319388976504250775405767434893109955893628304312590267575121658972084867530317648952124159975971850460666071831602164551689043418113931794542454394470494073904349135020479147620032189111614363872950508016135766935883942012854199877389592451876931226225636734212163197905460317938152082892342349744507177219899872616005036730723327566414226544843413998230318664095504265949177217115402407875750881978628067816366904795196653435053231304465309979378567458851883850706375875021270351372331349025625161311237535433164269702579209992081574144856853574415565577300626974779048957862811803523191398469562058321490162221979775636629958652617516741792756705563167681326397244718995215586858741645780664348880832323930911482392755601610334473814937964074447111757270614735849484714357510112368635443019632389926521538651455319554808405110655678822006257502009926499726019452843767148651117828260611463769297329392679716982823191001250263639592356885333479036851582979894878609391130560843373192955518771172261161589576297735207099101918736183858754235548659506418741148514970487082661876231815973583773930497268071538614516415583324875511952569258239591542223462200269893993876439709053572340059164255051381948680923525719381857686228836752300668374419376987940506086091970157780386440285202033227439037482915968029991341797580745064176793516008862573884942253441117638517815782246005380241722071257868460231215805807695577656847656051609914642858824127976748588698835651178051643216770555116437998649055391058500503799321399856532848443613321980584800293245668202986120433417350196602065134055274888112503483235891912144103360926980605262269058181928002926276262648737470060733905558898221932327226994216495263330463996111234889297424548816833328671766556575252456496737140566470680816479179840097151518727426018375045326900174560915941666532484995412149888910665339828072618935570092497359447317663162568239583047178410105786264538868629556939473999999460916259749215294793112336977686542295522876033235999340070414912350775491475009118764736000896382542641685760856446801362095320855446634413627366703146625884437554427176317157208389951428464156082452228392040922048466332864814695365436007565755192980951014056875141387706466795750415199525994036932883108624804976441475002723259153178110821587861861901481337464738794764124880117415830233812204625736910311653591927462632556877705027086238928578614810363125473822038351762126963076151014075719690685097030085713947127604269208081021089463461767411666703373869303980659496188871858644850273217027050649287584592272177645229376169990944348082573690345991907271469436061096857994072066322672356441668040866915321179460454831991835176147780219101261707407819547115424953060533159526695913119009459389101687335456369973416772996604782007535457703870895674824862202772352352351027207565749567379287187968199205545220341408892847852872442547402890681220572959930001443211425563486530573112470368639562777382659328790637827883885871499401573076301585966203921836971915171837844062994796508479369887525439271528720721006694537884317118704496746828101294696855064036613441520787396461780208531646687880593438974502279629773754088059508201200912849041421120602803591511243631104844466162116866491404666765824535711445352367705028333109743811891691336299375281079323396969338650869620751428928641757829540990393799373725701252339698960545120103585530940640511650305573467163854318923613423375072700356391628488762246715323610394253328899326200567181970762929681626038851601935028907829581518144990950234639320390713272834669062480818322790117856850088186147709664575389486610610134806835002440971733032683156261580392869522011962516968616740356165482476052026831252165341904691051177318188213416142133184036701869820643168082753377678030629036440213784842291309251446591087162401309667151954728252043756910964749662759677528337794425064560060671606333245918531410217514710706011153114489101043582023646839386977809489203848469867356290303372491928130431355654271434524060083175439372598651508456303177779012564295143262371346679953211424427101087081761809438316089266067419185250805859948865513392151795030634258628375511190602922805668330586452018038957141633451708498260898645840666200816086524165823012830294086135869273766005446796216636942941926389471283501063625138169333770761384007615498071795399041877444392094951926401896260357410829666485542118497142106514118639775799565644117964593874274889836825940148623930754711891554206589866555099882904057567929951319316653259384866122114675323350071454891460991589606815595333924626376695664833680727938402031867135639501414504829536790617826058421745539452767451238702136949020279760504631691414788186074140553751614975421426007609560753989108514746871363233738294774296322490479433946256515639727088406664462973429379418862838696223078918348703207684722947689941975007278481881059861461876157452929964013490159893077089132308868637759613934669123655625272896296558368102562535398971035993027876593254602105188128744254591746486132102136307321554464707234517981811363481820883360815934984695526478203533101476345401069899139760945586292387380793856171948131374553750136560407772994723157651682773806806206555642047309603589178553740111876422641679149091256803604957755426492941955908485950467154672990306183095099556147740593868763350669559796804609902298996433037673522422152686175873314966148800306794188850856921689409881677611891254054037802019364885518831535362025348165229473386170276162725843103531275533080898773148687427338915020538828967650528654705495947515412141776217899198989171211022574873192286681122322371378691184392040321170090626469198885887997018323578511557980303141155716186889724470984275328115446685707966741705905070047165953605001453183205343841994163484131560530372263242969757941329298865638667615735356220958138216595243786720652566313429312770296521745383386409855366772796636329230098761788368409423895777783556115761706126983603991717076343980711614491425242744445123761261772876740841589326543364491321105769023965574641271883269333935813373721550263892219311761116868848272358483232231239694919284782541605815537697990402259439722306651134025890092095833622973348641658484986251075840361861962512679978190787552216867980376893330947797960537452767634411360691616553710923422924109700430060452567639264039188219617781709979340411824021663657595376144666842447706752790575542300486143567720030680560198901171202958636568349176698637177629431157002289114438157032136992121919152907660000703122398262294178585205147081850119179467822999776305809200570550462662736828611935594509370557314617250296223351573310807347813087725071719746753439645180762470930244464403303284099830235581426273968757827147066334369612368569040054907319705486716367470751767470268825613352244477009511820450511566309578429411091283896155387209217360096817043601198069096562611715613333881798444003682755138792331935957126801756083989960860123369051194480817136832692653362279684515108528441100499392481963201588713992622772248890300749466271414651162552679851949314452132456568394769976754211484038220756725468342696436094233767799857795036631884576350341953494078166820425222255988923576379480531173766241860879744298934442715403705498669849369919539105817412941936823815739190801833031492706297759535512309281732882934549353604494713330862477437830327673804861839849511740677812810987819179078541579542955792807724547090029052623376545868993221961946754420920709216181918711734908245970595135405650345816417445468482838597302010738960087301181195135988054341804558646018467432257595681074715175454337928064714331305260713668669023957461717298493832933617809801893215975276763468461354151432311374717674682093597652245291353555597923465357751270266701541204511967136943075165711716515819342819879184128537629054494756895446080022829609506235531466386341507498323602504253705336471497700719610450174144580584568995346449118675710496637880936722516730951750887839678664086358512931423830285037422562476095933534431234428162692942059884656262170850928252473218164150573933164192224997618856354624264246535062040750603321863017144728851760176346320533626309214853199638607452069897158452099223196299268494248947391767049572526477762961337764940998711241643688315065165292600582629960028902650660459881059359201251829002864581074226580496067633555811359158858657417187142882750649443484071789795305937321194742419403359420592550316158159500118521541931086193157028586497869287640597374433382652993611143078558213204061702572977226446044371686745605040828861192368175640949448566798165976867542060301911268871371633108492644706368004944268018555342214968045094567479715841458967630497381500667979639644327767316230398036515877428643136031929630504006099218587387943124338947631010472459688479456351314442540071719449940131311013528481624434281096649347099175351933759725986476566326325813157873284028748941796238545852740620752412686168643968436964463369245911306712040930404773773412579121694066731861680192578773427048572285054700042457513264618741701733535159421951496571810247730944022751989889412090844758144654007786101893159792885370564404480676000490174829319265974101461599803318337180008476436827519291639966770273968889324696463423101313076501176796484371538242128001985407452624459226536028490266170652483056904929139498173853075894852272514943776005787618068616385574319697383957488815588365040709753624274929900263216111076263637251753071557379299207855883174617209808492553506211012018471396307395954911046662792006613588413432147971111359987179235618584523372475765329560771926611628078855642637833031224754626024087435741881260094036615559897759074039838084014310259374529815908772189597988857610163074480453493839332776857527865305372224600487005074288942812276702378888325420635239205681661387742668477307087555785313495224078261838668905305083472307258760029567822403574374232533713890823554595811063162212676723712355367024874386499504170832540557413446223551338084407003416569689228272874006637527918918117366557171099355587566419934194186863369569959088351836536220745182724345824094030308409569783963796750872286338616254776832974935374549103661001330909279148361190451369784517120968246879260301584558754608417909723668983311250920561288906265496956429665256305021147780268865031436915777907713683197632171521861624291983942937071876798631358321528016946703247230611392672699099381256549555417407559129966659924794460782293473163671007671168499061978653371563889486207100266897992440027093244917502842941057761933950686761256338774393265951383344997639653442185286690588948922756315325299175809702547400876610683993930822226858284887175417152029642294814938338630200041462291697532453960381486984997378525076386420119366910552205503930287769874801120016441863867563484947408565790415079092014445932527961852461270509411176865308671971514939614727074878536120573302602337526489417932145506898905335764110249559783109157573401095854521456963234385632442713714772305097938701215742043003270366498191836337701873716468306496244173480127257174541096095466162196425590652797910459937712274823295026051983634542480629903099853327794305646883539809583410505157514067771924085397550573344318067615266270237608790028618215081718360848338127726665341924084330558460612548073917517868228180133322126481300088223802688449445070202658525871226555776480545739707821382864987455365144593618738655453653689158905307275222299930755508929782355173085377048082930396978273115250018599960049216564092681567620440933211283203743783723919828151354723779185700068742383911520964432492398024507439345395768750880030283073131497776768595685809463991381359360678173000548146582764449568850795204949328022658876576744614054958220664882413059256517276894996408725693736585671464732321735735030679269528942154267938842983294357013001564175446288614029802091461473459546921349727011205862566331551408477201892545258745230460856323000959266200203865202496929087342098989339570185258650196325814138726221676137768631293549945496616789372905535836474159521775331575349527324278350528848049160292205146430135873957347232172899634510836782869935223602600426470276516625021612336264293615456433012257894225188664430475335756003944913158234474230634776593164810707560695796580633048783624779397580565072273569100674632314068512864752834550106107823338806193826839696008540173649379624435772702251820763323442847862907205716534406692543537489370054335685296839635207904460878103078867423316193184501019146434418469124119479027933619570701921229539789506616241311186992008959200719195744342810123801969454384766383677628770145568133595216312389421409599794590274982185057100507541008380723883964930722551492522316181394441688276025195005360172113049349379014724544754883540717509540740302339384355947614596746019688417557924767795285833785709719545295566730144407422157468813295154379756545973317378726220056739345787081161003626378153793641518293701255886839010089109921152176074684245609694790208597377640724062437672813724678246908044685758902172922174748151604645619941379304827225448907084205366371066920270004565214485017426316859773944760503538440087232432381456562354028027049824520004576283946772514972408128450515054511268703960042182593384481622062375316080298996256790371014167958731943444847197127065435705299835467215917427649494976994855430960071803892547883104737647361591537868561441172427557176607924482065549201026174147264188350036206818959890686070396283485796865505927927470959553885265573376749219916745365675226016748874967347910272302742584165386869377643290206283322231997695016749216630502699093877806697944224608485443289613715749790935081013618251879382932090095741388586429777667897027974451260000677205790986207000157426662489214752095720291607433386558602350865075953046366296538671929767973588688639356258088124515820331104146093570816503402660559807397989063795673762456667343538501127960844005973930357580072507685691488615227651295876245203438371519941039423009966273019907852136645530152543715150283574168004618149460986237320343329010386235810600638977806705990122919216060780625701834219479285233697342603067379261518057714494615783749137177094311057112480191897261529225223206123971875915412817942492121885784489075043654896075828521511675711838874860840011660197924276404096343340391323614444796173055631437567800374632826298754126340101074159630123292363216294202517123221300539338928051940396500087071834073346873225551427476738178728567135837140075823583153448054883021985964081497195285486147692429632633849232417004397828207751422224758046831642872792913979115193244348202740320295346995541397554372536600003347641298357090859136617201882812748263985864324616892459179096065267926081777407206151193970309006051203862333744458279360275951564817658380049348840347543436374767771929201677366409198965572162683366115097785097195347936461861966645279069614240168803032823217513159871464124418647980308477109464140299561384972034133914192552724294049906267174702244335363556071361110630387796961274665233569766453509618410076487987674304843168818918775887706108830450896507066171067483391299033163495830440069497326962275347188760875874479673626677032037937051769610724854257588778762614184240177966135132101744376789388866657591893623747890433068346485692247993805634375500951693536308515944605207892166103752749667577059332817224818141139192378374602574822173475945727537281237626968924757548876618524666509664145538560510393592246520206791038487369710329190143942952543903726409852442070198298372922585945376339939369971643955033919994560392873059440845191145287797223996223024573554929960994716397074265887289068714166439910571854187919923337043662546185189499013078246199705933868845221876897674997586046537524457979383891535649542916863036893231143256995917530467827782700950925066248264607775087365195929559616551812146010353518332857675574782443008241483976879762085339714248081958411858685251326821292389235797292006693118646253667609864426536489995666412757893637686601600274360612705168230093109777264445089271660485375263308772632159426294328976336598286852385050249821269672451872919976651871163221847385529896102495072838076547045115504417247535322587496191466423139043822727096671222477578532330688428053420560179734151115756153691781232849449169858302714735999741459395803757766613777696639683416656598624104433792290630885322469280773052879341634559334515253065299708574049627108840175829431990752871113392157325340594385857867219700121726068726089593414704190781344417779327680435716892400845928948397560226233283682075924375967668296475890866584729011369699074574657629650704855025420121260893741140616110576147200038091472790490629936026728919952905899187222696738411664857077617713694894578071810835331192896556645537592512973602064783061731574877670943582533591830799337065062869993848784891959729695273301276743256428008190445126530214245260605698172184546584134854671102580211754875746160125163237807913546302310077508053954136669843606351777524181429722913796873298833394041601008642289038352424365945503433484107177000060477726762111088822050678362511576750416024225024241542127552065180123383389061869891674430229178967502223136955946600187176105311007252266017624658610399560413388088941820155427387025654081586179793021996533431154860576758280138475938723640231284498308743197035425520759158205468697291701433984233453853433656547935679353949424122238136725274683883559693257696931351109462005060187705447482298895263459790222025079769231567928712834697561026125461339829385232104630596153995202000386429446975128108032741041919106506367893937691232776757233956419297900211043067615669914105612868336305545183521548290400821419157627424374450439300634521756459962664133432426694963609915735335149732779778055101061220243023970838418050420080265681509910977656886248834982174678468563606433193937799548162692116451631403833980333805605857758017463209315689980968987146294135724235552817477738690133723888443953411625164079815126848383068093059839444163370209033246509592987033072149161461691290557408832782224605765482606970177876160907393861577647474128761730236568344463437049073869592109801064138581612290529452428836101887032410828240262349016422327585130572631951555495507491590272324517421676585383667293667877620114192931053052593664202266973636136411962678657743521537774207325902150313379881321515880897118386217801537856339397712206757640656347110643672269365223469315356043344570523555088108722179653958328385376743464621039941972464044806363408610276031986696794731044361759493784187066030974527682129360640982931831759153569516969208631221170848323122624465363192994429582310993883280722654782848386413659088355617226198967038067244432668679445758968111064419845432755439147715921698142383876987363664090096157898959671906701771431328043316077202097990112461807580632656647655220360471466065227495649568299136396814932017129171506375620138984932757182921069844174216198981122396633159071574022391494502155360682969168623402581282281634449769983119677139954451880269805004878718179913608978058115640070681031904414689371911318707522747600897650646552752360741608044029857985619781249108001084207333781684704351320576709115229939373442402159650919167859147378984776882762585448300276072222986191993193218875413057279831640417787219227785328969828596880212232375062223264266919914187354199467326468541331459760674661671198043810976765316464046656219395491741835408470002777193285252733055351327900155476458840571099511667958953859704975551669576102650221927331551852838949539748174089408695650953327266329581365837166534494184572357915868012022334032378915464626145288940286952411707610887873882551125060919904714264515144733872529481392034414676768430290990288654495861206387401251131938990842918030852798353680735136248416484934529237827238751876874346544934348377877353500539583802953897651173738928295662916174843691722057352956304705112573530503695275396879543094905349558559613846847079020902156253619388346426195925744235952824247070443392611515273661049057121053842731619408949997342358249506327052342356717207238289758277131455685957932056658620177667593737770943881944214901507415388871274848417242682588025433324890361162364862652966029274490192578227866453180684432208775620741957030174690151525473822748542798831997125448006414239470846490436732002880603784216878397951099042676543248276762106901540504455032910679576411392057223438427895507935107084948593248355764685112206360209674181496049366078899161529468145660608394291344171632896967908647213337708404778084514356049630091220918694392332483794573603199593193739074705690783439064278197825339818344355533409542657986470907423762552101592560054875413313033625742061304700526886947736868464372552037775368427736083646371201329701118878760773128832046652143354246707208928149523177589658923482402482567318160662025835112687721313163429208960848947539990636830654520363476167051165323029042422109879369831700485168606139377476263376825402961536943820629071297919224808038138729871108228182991986957175267226896417006350562618497953740280278203251663954847279827140406319525936105922335489949175514363119135233882596300969612462516447848183432204450250705331181442099951853960066920242758118859492683302944787647697203824984140806104793367175884427043066025851277311132990634084599439609963185465453871747887867694712232695764476123279304734615397681199628963643999072976693914938535185684728578776717100132538077965554996836301416978678734903364710540288948472166734698391172672235689727835134784597046433348530836059056112583958554549181807498281197981554308638578982548650431572645015228368038761572915956897610372509325419217680721179757853175164553148836867905164010284345339633254777112345175794639601982824316353670119561458308372502439982498503421509723468857026347005654667648552620039488648334958765284921221137896844038633505832707090155263816522784966775766668150278000101122124255766169432469980082251242676969257319030734477244799644088808382405587975986211304913515195217390390937107145593651809132691827981072695733377643574776236721084259314232592025561967061158551297797688352984185345581477241992627854657669709851985028035796902260505043076625461438196173778294804663771210862424069757672531708464442892185431420142181821222982218444717168152268305963423685219791724938419852023075176063489681065518458878310573020413792533106443867352364769271695912124619714563370525757005350144890354147280395820812757982838237148547587709646871648089004463022979667578337627814886628853671897043339988470065548395528380728684692548731175477736025266440087156855339381555729187256295770455777967446619117559423499503736475263856407873287277742174131267220842777179388741576929497519551275166237070319284864005193924421157145953124494649788917539620270729400596891620625245343412663598934813890719923455991003577590149184046445954737648739948800716005413873748983326629817172190555959360414171614478436097114700255002467513812715672768322273473010370053691998621132173289504439870206771728236657821497260787762517054111722836504085316736198268042388932757360981211491522332908106311951958408406842604180907347183451725694173026375953215764732071476855931929459700551832555485370208863699561088331440816195890428128301795586946417936052924464038109487286308812028189638830892626071854175042356675438523601988433342335225381686442889574299107236334824694752036280966634452190082085978677751538260508503939044564021034850199745563017914444142074689296934475295074081058908922813099014675626466490115367915225887106366834755404140037483710287343158318196021697948402202184668470054825293862462841876969598073205144733898701059109319570405923208635218792611477176843237695660653919033089883591672231878544195638824031259216591037840567483114124207829385943182773838073387595913706413972205154397269522898128271158522021335769044534059763436049605557255365233209921201599616838680508815752442117736006177746108193326918584324731383683283105331319089337476055243751529307810321760799914382081568111333471279604068641171920304260310253063297615503801724843671582028918731858325342987667594366126971006730922433094142040999417641231003961969663773982402319999419471224963113059424858540078103741499484264109359765250141040853808259678330251525178413998963657645141221637146430325938679580724869092422709200806743675918047223945739024693305268988125658776891369298403137543484382444562590069439479111887340705963286047968239184561510717861600086318579484455766652671533960041694119207684504830074700664824526741648858313978857688643579941316028759214953282214037402112834030804488895753479367016454267927946838841567410370016305646352360131759913358910496668946027139304221822144320609721799711843755952183068901016093348232140455615470133728136129500024486777947928500598969247060899560266876732236586472503429028498136526778301423054362699522610603452462084333175737516224219089725232023598131636294311061984286281360441486306389544117963473954227705368020922860556654306206032134448896252617078167229247223816856265330137041988577769642895331855639947848202896996218358873047580190316824142237398035429862509180833109646685087382023350992496986429040397122823063047846916895934106547074681264168607978013100023044774697329764056915561529027946685723403408621272402298569551345509326028302272729625235587668527712816307775114222433942635320577734182326538560738340784977954372449129011195118491973669899445230039513930416982622380865435026517557610040161222965476020753865575973277725844251060068175364678748029367426816499279918303598830474097647012544935672344722307920321240733316463218478121770193744993220192053656554702418935378636941806090965450671010365390509232238593141094319366717193003690444411112445694462429607269382481918779149627091133731973680397436020014998254189116459655190330712756349093461142923339813358636762973520216361788126414496693665250331368929828207029844311561243780538282437752736714443686086196456444009623641087310873984890241776548156658793572746287474807294490014459511344843494770467582689753009121495895628366356378380391241860657652105338266665286844238131971337088543509928705595935020600067178610370376067593064473131298983446841534534861879547746538336435205353671147520623517070226440094722616514963493451393506516732106218424108887771369786029327738469771067964325630940644295717782375384424174721671003411344098474966700749648485025641965948475521250961331828383268790025972549715996672734582927598193923240689931116178418396073146027625654375770685359956166250504262439771634591611819534836344203272831609105052940943456770685920439908356620766686375569726690808067763510852947713227997904387048238266785645795019096442529406793990015766923867546586152590023124592439778714014842654664178483136678908825215256149871164812699913442139671813088537229499528787336148945638201971424497464322514481327190842502977617316729055495185906093840479810151001261744431176682921825083916559478686990263571223807561483667119045922404611976077683536682396151111008051739245818558210120531236817699786303365066339305668017621781192394637098806945801133716940605942473455749744691128766991835816664530282068081244256260695397074752519002485427998995706267597129061045794066645492826977142638009064600308298706480517758399335214921256584531583605675930281420018063253367802917546634739479172827931072910882147750351852042389694910463676458075037334196710691932570592939881091094341569327613683794046593579894398575025652599347375955483994794635920064527450577092334574488342107226868080683545169282241066891947529240321241112048493107266302134301456286651882303269146337625928582547028878923441662478330807096388573513054841292919751537999321620023917515209625437752352403164767502651327034016707309079449816729852367338970591601699714797426891693294255663661581156514095383223930180665581474530516928485118075569907088652221988872886989089440521398690396401408247758965565475168430524180127397974623830276288365287948555614216949714275634810711865544042861946000269024660884368405745594091224880431964002806805011368564850263716096717871808434632726160268130711948909360059555427874073738606153831068304911466055946688274879439111712635753396919837140714729441971539473161217358239601359776983930869152723021657413761365679160021441814524674731644134317918558938916909951967509372796808826559060361064532806342388407168300614215640331217828703559263116929991548231825652395919649237028992906771072030561821754244105167812073007372272613506581421286245674608802778970024657708638493933346697341994428313694052394275972964453091055470746613048732125805217045206246975322720093105606552039937338867530948250368807886303656718537795851064086819925053157803979505011894275777802722530144870941181015325133511181400879561942163628422564889962622744826468311623080042051775886561884014736324022647020115139011557472965168336282160988832512486373651771980984158950363564474122946544890310197911163185921491163858278354247081745789149353098428737903971628247712411343888132088874096029800179753348001939593233245036313181214356299980931540702588539357386627132689386010621661387587405970251481359179910284742151813101163095456981811764014875004764932117663258181215092156380022753088662121747147849788240184292405294593825337690135701642854069646215074827537008340390015367131174595386361640580688827830960813054711377337727695556229204306074400045082516517106987460117960023942881127469507744878054894472439311871615136575728131446018310976786812202040332548437316490151211331290745414285052773580728338439807728499585303560612957340024227460592896150679610161706067561656534971874140948255869946166604076677948600311261602811620978330995134931059235357975744314545624411032595078791539366205225321280853728812421969220868440443747251277963683773210882905209817454273643592063603129822255567974038993488907424637696972435352896682732983079147303718863099828407169574836280356590323331914799710452429439206079348205425515365778956545783077762600998637694496065032597716209542773299679876158782771049135150153873246180465076867888103008092367774619388995992424167280924653810872779108891979870725776181850101056044037091201281571091721760311528522063399253952731418007620410074480158264588001994699173128467867895691244662788423004285941097315892055380022146024274870311594316967936328704140092061581588189392434424074935927684443128773515464239734332184875281663690456852802371531048756930883421589694659906205569306537337895043677717959440629345956240764969367250754455858583574497178450236058183929459925342883042241320702732332326386285680848679474515704249745734150813287499646150093696088331707309563532996071746574614745471605915086490881311334036557491637002329395598953804016850480676817048169665162458861976763698660719462505409266821916334546913297743410073342808381032517744749895165426848409478911960380465380136642933597097328869891857730429770733400873762392350657123728607899387253871564119189467804815015239144489932243664948757947681658841852521663728830829678078168376448821296881697359695642545797359594416746746904254265229920348482538497290035462145088472426700458237838050275192654263250559584042899425085586431276484149448762625710986297769547258490814126506703355684692520119814077005696714004267307917295874577344407070832930669747667266255138424450456469459024476331497832449096218896703756935058695059260961423068537708263236063739620092705659777262503690817117654514768928992674082961580872719567650037848588276810669052013129168106549060533794053574631258096382975349358225331267410445883170507033130516005253265873000483542114311721694981824126765577220630110609828885823653524039984792708229781666400273695610266772985502904692610084791780059372662319574311914263450642083861179777808966227132479424715191554120055263612499688924414863709478485782428183750061395833725606789110389257512966903675972122506161852972332953821712646242289891412408376677754833034910466493930320507069352914393999862201657437558457767938904825505623191608044092023384680846479488474420143369639455675244489712924645205553077936451477565573229897961223914637650130072355062637753678444786970928875371818129283336962380237050416661869814264163633239346437179750559942986069409069789398244709315863807370467728996964336010302193485515225968095224910471401832779518963867497054820660855048315678581559951462873963681907121422415486441217951590207148188603038522904921644326463403607217609155223410166567682109957835549208319326667213987326033378731440878391526422180189265270843989424815068908634857319358822858698115264219111644618666401285279783065223184023847676205269984984075443253045140302675565756304765653258071814437874993548987165369014458817669098245647295942137035662764423829039125090731816103597089192919258409138829616018392664043663481449815256285460426617337542485564500364936793933194656713185799084171540483046755516348533161079227960358130208482120487458987143256896116509389466408070257169395477709243294831287304499596790837882667809523800216751700577583255985896245506294320526997090334985359625208231667035572106116197540220560669120987277220657408059008567234707671361674826065166006545629927683003867631152858815039199160529087148354362155665514572229920891403395710592816038597622173910135404239224395669115521408826766551135619049943733601064972874165826238193341301716124428178259581215574553366718518598048731374240243192316081881626565521453714666736362655897865538034303580547075255104246491863790335929539535524616945211972156699401028009523684228210020961765313479849871397800536331103433884475527609106249441867337716272807913275725035235392417711548781496504044298301727210309928983117760077071766167708097183538393762525663696667059857708493357196630399654174140994053891956037005070504141911767296036740276669872285120869757564603379187075428085616734595659523236539649733675945566173274757556843572239749394328613351870874768900519698678626538530174025236524763875186188804105904154309807786407543094105917637584289866945184207366182926943740507075443107478485555960420157787635544908355796560364111640542465619406852104884403855133173354346006515786740342211733292434103239647061688015095750398732593676009690541492194124554781060742257522850706105976137173873505293181162614870967394630718946371044705431375559237282282291120757124543240288545436308685548916144643414539643752460831761215204435516598075138597714122054265142258808329419491910364836221382085998276867179673243216799044276962493068624455976338548730330619758993210382458662490065144714063329207668082153688139643672854685015875002133324649039155952551347919355412935416019929152288799539270838345809284572839576718962009926219855803746139495162436716767532709676286008778024717898021489886753543346679293736485790861445837408244004508417003587473289591037939550400251443343651560699741855691140474919021609002626299714636928514436368525654223312546140018587567434509676798113810943620543545299012625729349318820182673784523755607831752329548515080663195132910539092543446093644613484294880002558316017575300670764683027030470210309493759490463736441058606902860956882072465791682323018850168368299414791484457816278888003754562582807788119571971318935136188261734052242223653426811992103140046506602671249541095992357014928387645661269776906460944144375898844503628693322855119214893831635714472772900506325723647869808248726989444611496522240568946605308539033547124155062629516423939001939918695364685268248648782692562332811753068153228730290442007014710031701030118040705237379206059728310402520818560932802400099431294561101311383951210692292355207704946637680791364449816568165462229090044407146710440235272345439057398054608658274200576469674868347260902670763762514349882260700197956406388084470683041346010964096167262276777698683010720690138663252408118704374656359048927364186497237530389658485923162821461648935553476550335291153073292017957907714708982996096135071388868139095302415704817408305390833282880473755959456020894319476504805690620677799015602816388539268247726527611679405224764031938365408060119580994429516467411994060064763021200937652410790868546148475389705383386608211374847205278082214601278743968653285260377153011094239147316016493580155517213656575997097220109299229944880342839970259771318813827970858909239620584642322779401560853559166624751818257357483537513163950161629708691846159932792699945673045777080062810658294968769319297788922300913690451746212395961125541693482390314360876968191716066400672856545581508768330288523880138004432702564346862703893982166024620488702153439721033246893281269280035828578890766515305242952563874692204596230807117267064497080731708380300137864905883706880888821021885060758314800577450368867516537416835549372286131145097069404390920707910214450755939154934492352575145913289954054734076870908646530849600031131513849465377074599474499881571648347138378851336052275908861119742590514651976493149375614427139597992141614600755121083254768594672807311158884393529330153917116041092883621240427440117065716425130268491136030130467822898043279887213288816326955755067706997478741313739433034643414759548602524009748416030870194262665947313645552042300869662714394063341496833403091717535335659947779370449989151001021210302345559172669480531819964317081895801317904776641538969747950244122167930539418955420754402475533453162273325276459241682943584181849651310985010464510340802347204548154547020403095882356951134868238943206956454830693123942881983343553943210247204604545918696996520664529084344522004385424645722866778517250005567413551683248102897696897012035349018361634671790993053682719057471179024460222822153200971368027379700410395294569453732332862682796252018774288318688011037853172505290249123720321304027385850062344594994160894585072505922899308914341756391610204189319479884715589544745941679067454693907696049110044304011027399681894539767897303405431701333880251411255648774942667600103398416188362160123103111858302058940623966164652809313215299767111597535565518631048030133091774907412810585086978529073212877120602694688463527118748126272740025188798220648125746886373881622923778844815134412134476405699193308758513858074237256353470271106937752877920677022804236222914242964121403277482713487987090248934237537360122647428974270790459462963908729018709381835426256832625322957723190533862159089325448302369989225973243937099974730531091652739056718632013040228807653902802060886253866541811799740962368928956440569237622011344979252642619819872058664244894876130701557260063130603453680985660010712749038767378463427435378377534147504372631205070254469919686254127156668289361397900336826043445185963167774189961271477090127804138887954790708485815820618409755597460828020051748181701042041602324470968837136075872813066832187904240414645719107142888365497368543280749183902939726410287129616606557058952578214246258422175123132263399928627081948772703244670331252139686594780555219422138284746396388938470749893458049829403303446485820877398423038698758607837589900782610756423264146732256294411135085365910402865680941465263630503486863260999379941500933533884079111243158510975836187644285577932992557456754107721667205841781354217452348367670785850810886194108112885629941954268091382661702347550090895273796292624418625351454861788638398269995805368847751275937374062249772678027854021729432302934162235811611692872817097068020008409193393989017375872642146373326249673419177429043600784494021771695517286027978552114566376735335722306437548105627179745538621182759890383448584440234453202070048538819070718695840893174748949611452177560065154920691890327255304398350782175704661842127319472148646784800120060350285082806009588584906971384298054594318247233983151981646637879317741599880919600623084434579033319669010992589301493369518211882113716436491770987499165501049286630387256698434964446050517313489413839512521474921659079698891771554776758812069490883539235188418070152493185156584414313225273068796751471593564207978154098614687170876989645389481729867944454597507741621953916649136815246410233305296859627187293128514632711473165466451843153414534727314394675949017249629367912731642907078476289343327963125929639425686218175507936535611548347741744479035926578305897230014705094550860283182693759267970907017854300375054407697258915470271380698679496038898357677015731223317346889160615218261914809715582595678687001303777212957270782973050719091378616530354968696866973530066763848341764166336929326820701426034958050129320555546522827527920197131869702513714094883497196328109855545284308633353407732063928663002054814779330821945023496436029256685305216023160283725421230146437206355326130835624680683985887773813148765209720313084751288439233286334394249893341596359990607486851888174090317791107891393246272269062834696346490637830556023971715766024053992605616151129730753968991155575458025650168985343332954398552492725870191886801158089380869556849794223748639284049413625784062373017236454624096815644910803765026867765989229152982655396035660877767978855484984630751135738759418099217807434058152553098545853967282986987275473831843217293536236961532452268082731278088729616437812032345103167772381837418411742746735277538023566065920487955398271090542670473734781738308609631571907472199631230306738266903865993710690228305993615033609879170443512428176473499502855558488556469186398016305500621526736478495334448655146748249013557858783657225565512399354440118432567582750885276902990420416366368880434265729976979175528659123089284894830247807404359532979150366371336681595554162319209634887230319899345335560764542782105773291673864916172170084944785552240986435463295443646450028754317466951364125425584063898558720241688581679012999199279255934132594382434624678341035228777401643011611518661713017179527297391839465858217932108851120644087869521923461852839258619783078432473784331004099440745128187058900453852759656417007655757377656576297101825651024525601257861320827788768826544679449772063506426779920940152654859641032154264484404012173573289263146666851752339106201584950154943355261882635794380091282100141106287183316418511605428383532435335299665403730665595873354668451108171285509096687964042360871084392189810236664777646033611381163309155448666925720889123999070495078270047928047695940835906215581157936274054933483704050978394163388917855503306334334884165117883241590198741961446035737986627605675498770077061972686091007125573224722780558149879239414823730419468278562802870026903722854968341935381277875170888078425777339575125828592400714633827411629033678899247777533707895908040762885534358133782984421335587359242942424162376770749033799928260589543940639964983933252580938401874102540497853018861716936103003367464064398820826665736438171806745155414323719274948741850522344092389370120388671993075433843152737739402256772558793050755658507248275297070371625909606057845939888780097936125615605053600272234252990175881982363191330983326023921119204000227531332826158248306439944003720438301784886366046862713779891542066334028105692647526139464468070851728875027065564571192019574909415369627265760824578532250582215501739793839203269307030654295506773069287872347573087627494995495597128699166146144102114408876746447633556815244199485443361578171400514125514857350029950981477224758785276393865247200225584489927033269896910840470746609546782174145434948394839775161184962875276390085677127988219249097497831358190582744134495335012470077178711323439373566987805814691942851549281884683272418604700920276985700263283710329379328440089233970694327618303572752095276786169447592223248812860747812199900064350584617171233495475777387387069617698862652043231898408277038034409334339466639616489255346980803079329084689421797610262979687660846719631737456413558673529928793560811058658914864085426985552788110578560336578797631411287785798477341217138730469599031411460556894742801109542745439188948833949919677109564582419244880689033521186233355631733133357155257829843771542912208442330392750483180708791624678014237588756155394768771020808676017080086149171835598351251276120310668681154153222089081720177542964408013498349585873235726790101134001800566484785919868874912341929458287404896069470301415923199819975705721805995648045887690227687193777688063475412869833462924889520839335054121330378896831564730823821477518698583058333335702476998315379015368871228749079889628653184762775582697830191658200269846595183097911420012044736477230867476514633364117323870388753710366868592797833928709826222417945311031486918035020317927968896949222756193997865081699027746533505220962492468512894550703582541745939213653844614895881799334725330260735338830807911472365059979163158761319361673923373879271438095524405983109460182539608485423060773693970584299640612738139598035456313497448899351280228754639880035314614347182913503617448568164044803233015040960077864566783339024497759438583308124949092834444288867684861082900482053442840328580591066913311610325390568212348444328571693111087752338132179321115203013628928921468187449474579609998586230742083954419757121479061471709617596984677063067776144094362887302520114374863050249280977180680776237134823536052589113985005602465420424938361103869685400762667781031574608694592569992436785228922715515200007401534117679882879749566971442713631536958193506344144471522382580241449138435151266038173975625626724990874609794692679583072638604215728825979083239975419723136763455514453491880937017121812085853091222229908321677571902747529651592468612915731729070782083256403842745788314262101697935561962717090412227230335380816815266937265391982212726679480056499991534868679020753539948961617288818929648932837139324992938345073638543279024270280947411763694115999125776263784327089511558893383121152021080185488602139423626064155977958351787357481075708366218020560269026826632145599828116051480307740204357591179800974420973668402537851790377385877968987576492729870513465272344398849820450203318177830251138751682946156714898054240242596736030897818876857247886669469731627072813877716877713005848390954038423435189616080400208111281878160849344185053777370552916485553696964638490514481371094622188765836192023318345540325663635615215185588940832714954950220608651069225461106839700059754407750851457581032431374271453185224987488005450726542286826520776613949793048134792609790654382502389424643351373325360316249117154151517228740378223995966719811038344614073295430255279174798110557443903259230129309681271565992156377684622749719369112639348852882530776531656721799943099341101543271376856676547447846884855068385777653101291639377233929800665390780331976167355809345989230371131667814711337363148590368647606633262852640416844226689781160598684000122961923671925640833837409627889141859318068654360554681019447060473757793750625553001479055692804364939954578785138863498594013844959020017474261557087853923894659742145274670531584019483375039158196187676162256896658991137690666251822176004187949134899892763280284806043363868185461295510230753169302241679767811088621869877854759323202737094638818208736431137494084136361077597843168604210278101916046453016908192828848336712465406085009612077462013435402434912442546247648340823463919417617213200657758437114996508703326332437646132081239021875455708294514030901056844501720018971950703629719936375927693191042874362848510496012681419320513311800444383165088128640245368879381851732200662535578579143007168716628701933263344264725586340157474103890466162166704726848386748794717108096823310116411320167581648979989554331529139577587571056794432632286605250780400719826015997371039637349336590336321934228282507640836298232149863654929660706764338831112417213145272739414547175397289467589762537457237699277435090451211499176675477838756881372202129071373984362011033113315757193152425882341402788674444591951854618547777853241959360382982786058593842088320633711271952226902733301206743431097258437034047888996858851014884438712716098936026076858967405343813328389092880059797181254777860149173273538472809956427438203156048333955654027847736448127974979388146751429771897762624041775140488611874178809231573746843205947281228756415723659734943530874714960231766081144297697771637813883763569625685086681244544792522534208781944529805624216833140744156114470828709439959719068882391804463641129485967178487971184460995758867773714026807866402332662324509764409075865256641072640496792935654155392631270053745351014125682585644216594443623823280696949008541920193402226825778441649789525752430090170278529839986049735778847627394725735889977017831541630763046337563502369242190462478988480070509564285165917116122306866633607441505953619403035800115824564827293166775412189984592738616582156932167776616941212008770482576831720531142636162448988626384628531590973370919566885475445035130744829277323695517647986911523773846924450441735052214094386767180118641539893544164828709058591466238388259333936979157796495575528214780849264963987340930603987938824026126960073555220203261798837586622732406507595271550852939277371812880135664699505028334969944330576140164298917854460878693705413563438906518753597560857774217996507857038520681893146787124679605609126817565574237307372538930761989263607717316983699744550647985985781243909122884657036572186744507522784787014136270282614110292573987261312010947784535553935160480599149495251862178462745733639820291522642159746421911090063011167422681235437235931467144637178548364353202194192418285178455093053867365437707425589659898379920792104164571677858935189155854160907264405968882391373095986583498524389632829828309470711561267299893717667424257479088115290772068955962223739432510078393222949556108295599800014209014038237165952186624502434737672419447431537463117788376978885927151427901376840237059731062961028502254812057732555921529585438806960520729578845978782452432975512612974287320111700325367438654666143476118933486821186803269596131509318947752196447100732929812575261711565075950846959852502015058375250930040949982719735808399453109537627434796164241112094370790521079237808099942173040164621707250867738212249606179220239059636314842907481340902482677511802116838817121111658704480414264017734862274418570220420358563274027781067354446097508632234858871421858753832648139559080904126241983907565450600513567706141440957793296556561925744698279981502131583311089483672820322662261202201569154917524325404744798980827847223974238277451573285583159670535747157838420377703716960754998976409075592952123320140389432257256432164384013851844770992261607178519370646964619551598150660159740825236713318508309521395286532781676574290560295209947808883983965770318366343405304209980847239543100327400110269054817647982435060658832345389472050128048707390629959258286488467161991784152732415976178374570719019322980877537157673861013835361249760700590956347776274138831726759300500349525778392848083683262067835482455640224280396752234821815027175636557651751663044422636090294749557419988396669333400022644629554688323974963169016173360104296998785926433111039918742571241632751576021876822545230948792029831630405941946363322821463116247127202077132684649017631486012491779794866590506642692723650268490171569401267457246654929720493649181294669332876903888479832285876454147804604483769240745936571857394466417502557944907075158468744194865602789068508466166719821286830598221299849422202244065241292616574419176776865375591274211134682312719401073467579262575413872699062302079764860893829320592121570194267047531106583983273144843015059453577283534276115619545318297444342172619484798960628908514734850654232584594925145476098459502865025970120700327307435652477779476290494032643043453595399231494577793668788690451471085223680756204694225226973831917374122950520159536468367389407157217093014538066158115566448901575524973190650962664042531067510185699321509523873537109586449454039982030928960826565626183153130998932159431253267420781121678487316067539902116114537546191558483929268547909917394965125215912037757795642681309175310015176341418180557363919554673224873114649024648552964134885093033460231094766423781114274607683743652990915954609709963049511336211618016961872849407111673746548833201041386113111439437545745937801305620194536584193461993697474370876484435761896605675449393536560015714304324774264174356456368530784988840787683415949817123513656935988849904899101268195079908375810354006815152519337525606204106018953693607858395959687497153118242719325695689443146674307391055934014907443152092098185319234620896617290102795719423342438824387793943187877253039342814904318386810025449342805149845468952785265826217047362608632717392532575597579416743534878862334221999071864701652281032333877410994842296554686731166355025389219167141930957178986333501275362260116830991767772408631451852629469276043876509827147627517228052629962242780068415793535185905599254529522914990779277568574973807027559379053352565287855769637276391691292449312004193141482580314742869853278434934598818104182715780322778095094719461230720139404387481499321711424572868527356017252810640406997712496903319883791535529980422722772863894951949112649341302515624251494702364711918220730248175634912461846495969858289487760919119215333205376564636101408371826936125950482854705338809653313505278257648895316304622352769765904401056637050002715598757013459611068947102198730988782067556069840294167318006562079604194524805192957594493042352802434653032079457206842232813708051938387435422063486092343052107768146434497707584681053659918274300410045781835772243470170935724760455567727278606085661216127885329812833353455452966994886539250505236180586813202599473623951649189280936957754478862214105380312436210607338164967677899458951308293498617002982292970687785056914351888367505382283931095315044751037234789043075097897258917598689789643557266548858941624918329458063636500099047122306563653730762881777720097139185380237019957963937669780760760732907071381684061992227904209815930490646438877944747488589252604389279632391940975373780995896344925141669750694490782859370173850004786878592581018831215161760279592819750428716667427463994674516588824051617808766722776728501955744794137616193954344756637258742393058644717909068217337968478862178918098219315228412415407871669392222163249552904102139554291789325601420243056396417987597803047806770724366419249514976708658853573572087809498162908030448581823015640697292372212075231606812921115667428407491485881201108517527458017591689171953388626735099251923164747853288260567184971724504375273825687221108715729979672334932221782114553716362684208825522378322464223521774912997218501789965718094382953529368658038160329583149157558715091789409153599081165736668185516968287896444309497245520896453145757835959136021087416655263500218731540021628214396950676785619240590425759968221237474600020163683814557417860976491400090616173973655092912861482896453515455055415513983025613086971501049758311739125997121535081266870475615620055599010051449811044899386764436054413136317729260246973552128422554875557874530528378279640802379842922126287808536529188075568609053586450937045642581200598151056165662432479899797078682157991443842630699777052860460947885900227201818320386181634448689016811885228035288777916299800027468282495210762205771022864201617410716466962907122240781265579418385575912000243103471934788935070913441829805424378117621230742400963812017342444803850104723241967238050875561372991995947861337681774418290656074992342409135497733162768874574423070794883190535917877677728131479947373155207311519438750002168724650431217418340666833438195521023564906545695797748070046165900265292684319120892640447110172734822104206135798702439735997771906453468376531590245253358972837119875453054545493281349785235791373516750897614606718384638969933454082683182226770590510254055861065549365907608721815327252407723537449839298586812815950321197112891528739984995604449402688028767940841854677793200304755038301158557555720938138939050782852897081238350021703171260705102165736742739410976803483040693389156033652810696454200142283702024181811687959148881453662373688210551102118397856898270499736141270249813842639841515998254679100187373656058631059153017674232509042755704508423301537817472482643854380237319843177396968227999073230468258133974173698089168473984136772075459570581881246864758591966763813152895301640788558114752769493974272941669188066490729204709665814044995188362686271313909614568608036664504869164608872044940900168538863651705505030294182216711860574766030065999863008000684678654299859468694294914329182990180453038358951153367907389609281746370200889780665364700291972194257176733547699297603188094023234944196480756697788168013860466338364591385584181942773324038490050274534291329789845571799356054659580390708064970712785917584275953922244933947458340601308502990884373246706693044137477475816845913670883617737506505568529293912299336495566271743689440602254863822339087128374658264495998553758330968435752224157521390160973530530041734575567235243230659801578949995354396884708711755158706549317847502287140482881272077170013143001958870912032938964078517492766173700058501940124346867542713050218383323775445919126810819274074984128270375210565709182469316491668500253217403868279540231616477564751036870871378524818928815185233880869687023972546421414053601349376202629725942688157171818611261228958412821619171765583667102848252777525853253498645819858856861425302703247232554221785789807962836699096957918848901452960062971200221422051526935982409814282062558867781541427032321678027179352033778360187340506874284832732165993347940159908754799612755544719004533208583582833322679334675446120463179006886534618266906739864384581786745881758811663169366469701108132600428259793624712341403747598564087258636240378387952054029261683170595896115350511159155310545072274913898396211390852495143068754161794584553695968441008198372847215484574641175608360587802340395820654548760139167077997772564863110615237610772967726574555491013018927412723894437624284381580201962590977133848661825977407909732345143172593605292652030466043681129639537080317244187274562572429880623985746151400044805691562610858168631557720790064449209065818768237025231547492692806305743592968065541396785037145828095346468277810521588050598838295291512277017649146279220656446562106869900854704544325986972991779178361157913865617540331273304710510795148608598676928358610592954464187127065421252615041419995916923320970125916902326439329403622493161706224426156501001149835209558053113039244077297000588990250161670228259160089215571669398332136492968646184231576259306181995235063610696231884513627441751343396353455300369293259906140581918106672952041453601257267846121950720224010198100630368972281726660456563681889384602937530402537662988792990107067548841516917688150750180961256562056684915857053415402053190573795969313713707993717304473036847786034214323147100349307268902869660225925112339663662531868763004055603256407074996970376796314836567795041231863692366561853476133602851006913605276427874350349735984281687629482775300116235099895822726337686700999263978102374625435403967654748742632255418286984587361179232358412837215259628251401021563685279392821273498993135642674438296021488914261092311238091498203766740884831784117665935657236322058977413762326325887592276974257866004378786892342247180140667985773721703467637401380698721310510107599722003478234580793519181225190495764688799519015056119951357543035352833877392874728952194203690076897059453930853303970905977941263681496480261552750118206536879194154470620641337901747621587117364196130857579364595397165505967654262846368500557246817082739612367995305668971699788950259154458194475515536519492876084177972408250260929838459172135560588283876458941650378841694248768469394632479299782087851188058060087405449660849486080674515232101467560779579044069649515880879780702856542649091468829224189703410131422510514305639910228822654347287924747614005625640650738538631627534523680042005946299146877814608132678983517407476180276666460622567769093918159536531790351965810937635053619795213438421960014617239897176880985785524854737749337308889957661276052124983088583992984330023370693657652741966075097882868579939624582990711934842441750611025412056142638545216865052203776609036810266748355365005334116320090799425743964706448036155751390132163275884583261274477035437402239107645348366926672912400159664127434560622760412057074788475468086614195379459245904535806537789268516600670202326462260205100197388768611270433653245114052732357749548244629368191492680187653302714209128183403744505982568066670878439640724902327549169307691489023818985431713495565560521186787448009319666074608109519096274656034331023293269343154116356621851432857034113732144892748434098284996454916645236858486880269239474691231080075263563478638440386187494887755265111749999390488799694653264277446900717345326359452669515245103834173890734571835903514026141342679280193592672138897850644173247922536929675047242207405892534339169474931309464109855966257067876236073805308011240694122187043386270672636099537246994265705131213772839430221826676427338665586565900531798809621157327564136710919584960875609132621640116567553973835697071364292486249897498652035279167247451870801937556163103030964144272884386585140613950699289909823344600028841612530346758332444883418623617540560500903333031120340753972859422584751467552143677403900043881196181025381279852961765716296527755293008203527051877756042424744941363272628045326863609487006649231988681398895103234751781354613289977244446226428234425868469669073105472300324719229683089015052783511435935353825470261392268726437995423842573211354835061493572856471726129775154801958884687592667449708803102800690171557100184600521896208639928108901865152204171988795736735893413427719179288393614181712298431064631456280343025068257410202159354859238405353857024769524322908996642795697791307785563748321775198038501038845414385012550931633411289867970660127045823334124462452944712675008346222371013714799671147978675029299372161471815753754220202808955495467863197224766367633631017103682393862565206093271535725632907311468436261106247121578277445101612660837144989793248421570440818008390032582214757720309975220647518126684544632329146278282712845277195146647333651912795787653682211824862508828237814150637273561408168562413613018093537614154368017731298725504424828877122966228565577120485946438436070771297395354890037571420498335875253169838298522152141302677505974299589875543123038608179460318119030825629497751011506584917099596011230685041747583414709218682834899636116126316218177292742764784345921806007356373041022968492407630129419229833308671909948234992051509392189514063428622059202644821391132418519040349234824812944223270109029982952065990227265965879696017005506276525262485326147657279629537551166248843872653041075409100099562935188395038389258077845925790771621026233801099953899893329583353811734743174936922170626352922814920826918506754763725059387684981562162438772428165962375952631045537606779406893083759913898809164505858172782184481152707489626557367541427750077338019204871635748949888737484459984545949610632789092231882237128900206887092150436194329154399379163143014095694191414433391167181940679523293209222649592503983905525467422247344630093908129366230614260442490942851251771706286562224803822746595830915179043044431564454513124257194476515651228160224516581918439375277802125142515607306682326700844762201316733912583991966503222301006666320928965990561287363515162508059930349891948225590625172060938179231689570662724200946664430043104843123539984128405060554061473231204857304552802926150868637638733857535496927939296657157777004893576105447484468471542073048914456468687600747568741912804100237265285781767302251477467537894001012816616828770028195751300895627082542833668676472766169749917782652511290894261477803705129934611429386121585467332151877107133230963270676420913703755869018027681382761859923471777397129026904894487149473513024598811301187671235661487709616460049069780261187931559429501244478599145851336862811796555175236789373087088651991055142958376395473464960338328496840426070927835644938493820523627149804179624144645270508897116370340068052692020939147833536577769174179208510757792157551682285189070535770529944398998351047164707179738351360420510609258495248714369692330634465166873937335347033324633498508387616101443952217758355980669709341555142894121482400311173853105447004470592930790749963738696329541880631119515469502750715363566636469145915661569988129851409937041134766617353022967278086496005502524108557741915244677780954578184642610806711947223918721557743858346348366482522922009047314204420897559891438394109164516214392761627799105979102319153018265962055066751735353986468170829806483518802911262764583921754706956638899095895179195563383088520163161946958235344944253771252084601379671351231161620137448243237388876322117336006275767279430996165701770728674229431757625351716409936999695322486120451895687087511537664086885645238592730254672340157456441871602819449904374538887960929847175212215286362625093886724202807318378615751984091930672227223308067468387267550608284952246178387662419937093325332646164907786131633777991601727835679611046789297540789408981741291044342603371896388945771516317752357520978175423131414253944038756935202056392283769359927031961223058169499346954229874335602076042395769570788428816029328571353191393985085730072906493590531901118039909054147418879378402155435632422546129477402604306042616966891573129051924473596329955677607758415588061681813857083340522461962846373517984082936018174022169044284235211959386017529918230124658060513063896833569141956383621516362509166865871899566373858923818975818037383283701972149967245648530073913361889793742448182829983193638026907810104778019167307687197580339185205349566542680412739884619084891578482647356280099367418194468404176348285403930972020488360994211588780134584149542996292297112015855939528533451503453185728946682294307811801381474781821557227999517878020179451205467554906435950325630008531154001828293534847725540017932140932015490788841540909963037609474068059956914136564995565710617705967501857908730753067548769919924856206556853742513367799125219762814895311833961996171670087263799659407278026812510974904561332767229736298598830277381632703140573283183564212352059163352542790614326997300437839330602240977047968967022049894201587763371371865618344390137503809657579700030764471472520534458679406543915882005971968419803265170883927734385881013469566745946943993675016590787061476990349030485208357820470393914675550052651767342788028936255251801754506073160707582337693616352386949329906389792347888000666707909736329214668745035597668605758754315212606126570815085501587205716991415021856692346268307566246287483928194682545706109447576558674658350451303240500006945333344643222051026048555533977520909037269680208565677997308401651141558524065085382510155196830286104931168341921705190925670727215460853661358959558018177633638962559390240720911324601846340190700514222025470220480571050854326756492788286309600925315241776396991143392270345960139883546387120194758992035970139458334841745290245387068091100530055351304259623596150441042882580274031485379511048586283342978897581721165226698099916095290493341663058641816020214319359215043792667582110017657686553484607487389860072313172336806679675001469505853409229501273808111591542629472764722038853787537562168418464647469304975819722963698557702033217477787286831587504810476338004483360639670042421070459920549040134886997520315807520480195735007656011226488670577310888466738474319269039633224109117656676130523446134260652855158668078074942789528119986044599644078018773549745636637539879899104690422550500773227561374741032680940853732074092556719622527339081865537936270589357698874069445704363665487570421165855137284135247542890049084449437629620911650276060290008611143353051004727528588931574196441327752352685146957603541797984527905978502342540676179803895867435100322332735561098118812114094101173873787126910285875894366924072659007330692831436034911638938916831511060265922187206963502008069659190332527261229201787607790675256379443490391792445592843279948119865268031958839481754048378445009592303528912026654373599403627062622519447217577101287131978080997355044228297545689798778015329105222883063799832315261007136195852627593757605312110004631171797043024856397749621236937672878085516957671757464680260121209104874814642456793997294170912479062914515727022289247351272744361369641469842569858653534529168459574247848066425652164755341180976229598368820627953852426967643345681731202178833408977047600453876179806090134569311417262403019541547919407989063709157152401485124056816354585094508936931201627570249683681454676915397985181134121109425816020162508527815986619595784924155144712870852720751494360832169979360454314912617104587735062544580533573381601672651223194871772790146964671731794167146183984066893155874323364347708889812338837388999882677766063563514542293905721482904089917516139072828087177042658853296989046245604683593031304739802443168405879404964696749426753957643987943634803337675090574317060285541696252596009934748830409440634431723813855257527463952083930641191860793647657747512104570479619952226036024770118205436375702606682078501650334704041138338134746941698003703400110245518066311115367241168965615699561406147709640654668472765488449798613290244582730108557710433328592447369639232267966435561478034785619245097136086347995185105251388640430375773154188296398306736643014640122846221302187690935555585888803103440930168028752966886082297518369795734208685374779510669644459518916835302840746472648363802255581928898248271807698728756290556954759721010536969169073592155425215514130724107338799574656154525432370058650218471311779966469743142536296794204545202721961486586163189765344366172103242065613573293686165887460046639345887098884468675909802830783590403137402776794545776762469963804405457157829431789021486553746551648591347416726793382316924423039293188082950887700894473272181190561029234902086674802555798751917433795794141556656230767159264335951952258823847672888429506438833555344911824213346680005769684306206313723582721016995112326396487625629254941085692006683193191726545624092096865293130999761284272307904950607387505767915923111095978009711682366233401858248253829325412534831131153714005811501941897517454701903652324645256438515841337828349667440786503445511582553208456166187311308932032022459793619350158657397022784428275006190081436946306046141022636139278291712823126067434969182732218737717297070222049317915183164687213683468248193307750311720191427870945364522200293900500711736946775239655883152843015799602266109302594098273943371770968929064481142108445349330828414024715316551796850562693622738399139855195530171873891540026064123889790758572587729347132561367027157744933132477737278531060216993963071509356362692836531360865204375299554440978812769490841642634381498272080140598261480428343527631224147534273434411513058798053672028838901571990057906217533582497190955553121035224859780580498623579876777481152854680253538422855027070593243848014285434652433485323219687274489224678365149161524719103726210752466098888192661189683035191349349887322310910184386023831468891633779393042305300436390795659885128100927987908346626067045546411353381847080249034846142792748922044293965074006703389084752296388291362336021021382685064612217820739394303698455833670572006782071281333131672695326267943944703803817469909550432850619277316405759748017678258461488908394179421755972792827146723690954255135208596861736924645924908363184979679037539084509678411553528235733674260633065157208210131130765709444905461799006566235583823760209350976917837515752450522350025852775729161329904635033626145819930488548666087475044316031562512498773253629177790226206977894879421715459011094155309057638910709898171364608382489804501916557216653350245134269399280311183521220760812655305366252039687186470889750972252507469955031650032131169653591698867793700931615394366966721967608775106938141824069358608522054329079035097638867943115776474072513860541184326626616226363996426584080682991304824613941752580774821430240018728423514725582593705390632298106785089154661927113645356586025813337017077291394055462999540440162021130358430292580174733139932301438608491204535716480057977140968957531341317810349996047910542790607451807184360153000066138791048000620753859152888560717480815814642063864933529094344495974021162219064331109014788343062972713628746766238597894849330779131262123326869280723548830355735915920806559922611772885102715690583685216458594391664195869936702457727945041289669410111697177531789333196041480413000920459427435697039309366634219901555884162171575963229564645678925728384228595476550279105669790555216419069278136915301141783018988109283541684431880071083158946209557336871832363549337152578047309933880094882639588833677684678644283177593890724293904124929547983914437250470908115962933320207719032883525548717609209965998844926454505291970675403294836297374889695192544030302450112448275066967463430846082898826094175536698399242805869365952572895512736869055727053193882339133362783258708055731520963582769229184984317185763474962614341822910601111738955550019098780883460161370140345058818482375885511892481899942796346168757068230289923790490381766565489000388677310529775061076198594345084740156210026704130845153642942440771489621944972260688860532162657280928149783834322420450873575062404111013575153931217854812517756991311154250764822881679341408943907360637516910364986881358088910671615869592548316851431156011899405640226693415108733042091967733734475523968598883046305013039486926149729267347569743368317615068472260966138696613877639991827547314950664740595945102903695782027733360214182356426527288219137855738538355303830601671349742203746741054380593786363531314848938268169097990421559398329599100147342896976160538733820757470167805867119994165107781580988310280585233069517624155224373427845951231792273945991270078048607172865720376749034331717998735526523914077431299161440921825477839587067853563829893981689891061618204857343336084831990300926526111894775767402940035985519046695544929391332591697982995263609848680106170658587100069745438679401199169362612361493350649569650161007746310092623756113952024475439425487258833388191438899720056113808169398844879598713058547267328482550290738851284543598621463891947254083455553088736463342203609531523018169503059974814373743136497140366640573092247882822685467571890446232447965779877349446306801866605708467918184364562894640791023406733761194208381834215917546363523955037010993012600675537211087264809515876357931519438834783397353369600178500518253904377112510785887396651835077853585548323382810082762541264686848073458582682104333541601518360377917416189743510753257662894763989749569642037094947552412248650091284965968903210652848525149476336074605592178013005395142482437982934533830251434161718756450162492471022860668405662729492132524361951622163000950554568849126703379425042936725778271179552428831644775635015320166344277894768515207907780485011364875119068405542186734254040268948076153398663535907348265237562641331071389442659976850366767356401587890108433813219956571673865909571717119700192876214291007458733403743415646576266573320681850822201643466129424187180303577952668658554278177188444264231939888442147435232528092950648156832303899774743654371168091638684527898657509361651082398512636564323847012061784533686435005796588284202160772817962506654170877261691910084210305923633550811121697537544378503048888661781854201214548474445092425151038892886487666015688871651789788837841536409932472400675849568019540031022030453515033981116074546094810533720236748033860086613573082846761911128154819092493503380161752586779242838691652256619179828935011300768493458753215297904472267163213595638959505112506359208515978267667571720273155344354216347325047705406351770331838532225915142842780879722170493550127497790790997348884852995975721552025340001465481217266215056487241521371891969600905574084417259441419528383169067127912168263310077640236436684392938331830134944218324453781433455915318218767390266454157907048562821017551217079723115254926407920210387193223787353617970130006419808119587883109861371058585922881216031780374264406094624682612540756247007131973144983773748759445275188188219026958337533447415631186037973030887905818299928344115138111915441823759835306920884695175090543945900172478171201834767161658123893957597678336489039667280151134091646076141460343157589444380734527790944387304323418540260265019009152832329484365741879190954138868257144598584907988907075987375866385641748964023010426922092009947833779696879753640506348520048136879715670845501114948743709363826210197995162334314391411541936485783064859441420881084263157087429968375671202617046888318170638256875497232739129400312650761321779705991775603224100713736816567064735535591724503591506346704035655838184209699906821935028361610817898489242466055961258678021872623564944056657697892435042576062373388923622808853325248352859117452243812504837186336964651853309731582107556288290348294521848947970683205349560861536226348589647534664807645010277587885673627110340477291100742495338860531312090554026361990213431843482796985152731973363570256251447802466104202304821913294907830709802096905143010847547750260052819913610385693826537108285732208537447234812117762207129290718288537909544566474788621541715212967132133558047232651785775355073209335111199744002512854745493343529178008449492938773241591014541482355735869443746413781711796359159931752037606039323772282639006301985833359271996110187788420121178398405486670010246919995093954998019712940352067010862720439640988136486833962794232568071334730627784697076048975803181684312467242999891779757806147878612033219903169699993576496015693122032961639249212714828008849600783431589486740955882785364016185722404968734643355428986706146659182759582839648769417817824106159616795434823057708849266856679792096503576759960281111265539828025797816485187193289483129016007180864945038946060154251331398590579196275844510868200600262903970837242739911732270455898466832289074251630935321388098197378297344064900049753035709877339622577107151459517478318834227201798441145606415899041227744667303515792286298311724533479269335024436730859860051264583161925493557479043383068015035817576401231253001500285982971741549210092447058130090005533539708221366569894927933379429340319993875764545241449400876315936560437883426799076498208207089817178715235672717353856664966918316427225553208595114916665145916342136520977673469106153365741408411948996352431116350288563560414457771847964767674590488021874925565652352369855378472683638721166274815620434428980643610324585739875151012463574614133087265404845720096004983877735128149745481887123139125667690075938464795174656933384219700991836926953632903652129931952384100276539466783065940342174584360116523987087810110955414564757027017133147368960295635705176067531953130944154022127246708249110918185799254327166141449281852382996099578828505877027539600175181123334555348926873834018214584066837033254842659093190168357468905636409809280221482127530713160861766632744732078710548377634922602276120470673430552785987901593186419973355961713991274901358304759361287891567543465400054169755708003275393048679079654520202813440970956367630899883355204673529045881758009911554995344661987613313305328880243945761374588860309477029377980437692765241791100776395248047431926262615270396604855692212313396926476329670985679606307654752204617654370691100346947589899599362461449412214983519088544259779793420134863321228272535422717669701462660404796337795654946105123377356482843245781538157315547243995305232393279507155507109610766287000994273775957252437905179757658459228093589413676257738132165172338946945915101388598863426713622070027223481285651903762366546167902452789300628800546462296959449992012828191552318490023523510758208484227814916563530460449389231082928002704559101301057085878665421860776952180937038859514924238618449783065093961118585634381220358103793092910936802559967805579516482723203588881528874384024340503437857820851840922804553096015542714231487587727605119847067629912444827244393881374191107391061801816819412537012139696467082501001650493137619816751737860330634322531038454066762239845565399412001754592330211743227229814840732390926122143908044582988234475024028110864721431112361611851748682009677488785458657561798022960905327939509089356027579576034271709127798032334588426344790923960543686850505738752371869392850169122758362598427545592441651327362354533975353980811755726295126699642660079297904144693033713158428684926048935261770219056386207605643235038087922177751809504365739910475547610881098940311982676446254760580999073772586559706490246488027674920937403441934648823834417549729140854440235066919715033314250618334581847376088793415259594184368797926926464285734067064569075517708105766880595628117322213835544545766270541901238731014762105713314967688727013690763062811945753148751021462997604717355528282206964287260646353789324737976494345399897381003023235792167336559677989388334434180384801863224445568682298338194791188815273371566820785202647260303730771428983215950020374988067067517618197302167240998805073621604936186732928445623548630001612818189005493770853963911409362347551333083541565325292453468416989722615113815102804234861008891782014030056291276880601470255826010714788856329619772346178980580008186474284842414000860133478964985633646190748012226872903545937482940864151363328975911796920959527517041966762034661805943749138476007371011980412903641334651794447339189950311521943233901397756216557090734772534195450471858568229160693986117657466619104086715148476470635469787219537782865366835218148700893332025444143781999034615178299800906519810292724307545382309569948349101029077044810018742783433758716165185747826176700392163126853016350263879067472385984836419076225442363580911971205996020284266186040249685005917461313967456570730688240121987333480984410802902391447068812291906925297743874885811224012939272549805298490235752949198115297811502376791747750953768155208755071563936384275326435101797110427217316914904991961861493969886116627526134015293230562693454985990466006222194532030476071495703025082919919854789688525953268326703489604660704370883503803249939169616034214470773249194508799607540262482940712511975672087197801110974188253722491302539621685332126639217412112450122612479763639854881986933442931066517866712473187383161396830257668727317826225476435244710468579417890482866564923209231714076305376252583277056917023864800963785130796017635188253632492132902417944242764210581405632496133247268322309046703171661263927556088825170143490110752922108741274709846626044477214271911685369127046273977094751803374784517577027899305775867509548016419978377161456585657654698615195001434279253147263368662779124471119278343113799731565976871179524829454011066404800222218918166431629236134782582618120522215592582348520261002863963297501022975566931472352485566380410922128613219994406598336250116797950316859405026111472000474598639716333367095070125025405111650362341342928219855636910921649194472873974367459328793944211383221737811446443848908407252728013449613335149497248165068431075358612617899419106889746348119370862036408354940459037065162597652427110472503500001907690792365511414586009550256316695289025171398180019070841480774443599576789757220066478387039019307278871791667194813900362912123596436973148899671025864513396778864285551928805078075758757504167075618465970312492460584468201376599142627256032203959525278924745454739519014278231094501024720165657884800766119790451365570879729510457655585792807565107265559613687568880053717885091861738392373341961373107914750172347278266691694742103827773805250291160054717118249515667536028692940071740517149614837264071409439766690061503320791540216745595538904801110256380481116653811250880180019645839497569259940800218083564774088874307799005567129040749362730479360578475375383297552391914256214162143871662510498110951866661937126080581157545758956271123196116523698677836958733463184602856244781518491802874049056756914112099279878668019131384343849093180478768317049766185951151723842629146174265594721268581699564505184220298412761459295891158395699558461357281146639804378407738464152871363313553910389735023043273194686762732766343622631672880770318152444825012636099057491409295336605367866668843933999331170979222587342310387959942310507985858436596825979164580393678597381247208549371629987366904798295095170195626215658874257651323247852274358254047249453122209155658279770744759445529913529631582190967368454270427862717126746565417914442682449566814903007522588748333747927112709088999134021165084755929456275822973288101316886530450703223769439616272339020853419773825935032033773050384185100748508636268946287947537672270256165471488586072634686316888599035631586258357050517732922976640994596701892388879160764774135280080551890773019596572402881031315217446132425682386345935683562574461880333382480203141311779706871338396313813818096524081589611355949813346786407555166059277662941791319910933962545795855608923313227712900902511681791613911297209513174560813179403894663529353674030664316372498481275901139408670036369903471551844505783530189561638988304478519744751914049834713543536820546109332854360601758176488693216089655389520681072505535490207723494901310272099019200395239349363234399355354739506407576561444513226361070404512591829338715898415462900663961431448758624228811802302834620575784895540993134386634321068821347620628239847784087920853935401628512155922347159798905967011166593722778685360508075644304941931076247279115702569149895543899124214139801081829247500682618015878944497471529495616997314286624909174046100830881094786476110969055764023803758273045229480753234729657187957934055486174703047546945578667351221455749949212914133959309784195056537921300275971997777967030111490910710933053807911734007224281691734955856804972558307720613702617655658327289632675488841861177155715821536655734232729388010234909715423352811509280237389338046256982919781617586441637380668179382788314899874917079903401258282672709858365384957364063162737667405469298862610764920359584789907844266384884037826577347586229935951394102525079797189043235464332639877576869721154755724213199122866924197407693322872997447222087456253526994340316954095194419060407512686867913755996332292852599413818173285924551983957843471555980987492621361035467520287533705452582327911583142030340783304029414336610061183756536831176479293148038161570331882637074256548374899201115619595951610636807422318836465076017983541093980633150794660455793356877217896877404385688047609206625990902213026357175863169219369692290052831284230265361969339255508206167685308124617183909282394702256245173597479714685633944401720793808910758232660861119672206194587813814539653323133968656659813465429758076678288363847419335587156413584605146076155090774027612552393337494505304058049552521728827293704743605431257841403616122897042218095317965876599149063379133140549295631635491999157440884745324706146089323568653364609882486013872874021288614148359790602844353265939797301550858032328309683503841300341015573219371326926658584783417658668186293786738911225893282666146155070334299261844712483444380510284744508410547508653846108195584258051190354800444018819149697658973119505791987278008712364469509737911876482508494023092591175438327683322862214764944578116195362222503880461547801090114305495410346900967083645792170754678879772098966362083730764192317994239931257080773244016538310288760070002197794264666911948551816460971233005893073041341077171778611829014486624937158851730551459957755608770028160127856132314368695971700339088553342388610981101221188480528062948699033915906956980436948665702724559221711388666074642601429713786176333634520650603495166943057504114966456251365455806699495296572753480376905256109751417861721618204485081187285730231525517989593047672288031450317568027930862096007458081379735504587953572378484144328463738504304667326347462197346713458391823769898042497494469705628781372231142109954602423511629556785987759085582137618340691159176752408678019717249543244046216318655155975941090450424065667257289862907242750848441284986464589908559131802113375663486207645856873100955577790760539822791441180077550783873780433460225206928762482836630415066872906679165848882541166246034569042599272703975272208350883538306538996214457516533405815882099188030000917085970409267126388962793281465515719081412501347532799554931444872726052133274794902623935875867239315863445234784147837236922773426171554796525347723242373261597922026650888594459532224797224407634188095762719364139746782699714435409390954166827012898503815463009906762460728168779194560816221036618415839652686012539448722983139198086251869306809132925901481338567786366722905187654499110947059986494923884811487388049644951028556536679181444733345678295611521231759615123527432376513852057755669685386336119147617215837997848214489171197868052979365328558478458006997542692674118645946334526154254024247785772626153777253912876656586074952613715801304957378246669453704598197765972844152089661635254686551178534521542682873413564064762795309508686920220856571869465309429304447525284550368168926103843228463231622809972606972875503718979540686836275105419127933212893308063549860346939320388747413539115349372004726690418709358692919275030712503131689804209841366843954838552629183418563555538111806650466633598577449306132777719616530946099969953977557779598978649571823551386842882990924205681785146074326631076566409448121219358681344929400717271973974357346661459748352238151642083582280394686825129147291994735055569943769400381293287960345486239340470895619063829087197048532060239832938218302780574216653750579295955935994294418375634898645728158659167802859343121365334663898340556318226409204261775907126666748174329859165850857357135725362585634035075775266780660536035356728873878792888770620489374470662663016709840400838617624104064902268104006757960208204123203504483245788088900005634216584777899585216446882678133919521952285061726138947205064879098750920872268933530175748345664604781078619760271223078872313094777557776548701023523626874260219567665779894039689840701377308079783346902259733884866812880395409317275297839768394359512636103225588119401445476640901702613163350114750702938708247748854224687646877404447003469033690405786581937917106437342437445828321904443161492471304437483530132338730590634772525336770490006033073323480076962639427555532050211622006944713077736813426664861278360410498384998226731073907120666108560137128444662969121198520969849953090720853399674247396731390362166281853217010338906396142667705588399740175152384953588063568173129899231075877175021646637928246509270708161338415827198444454301036862551015577538950229494624504717927974638709088726679094168101045316373784523819420044001206987029402143322369436511417296965158451718596677865473383356951626024804107086691939339841975480419116258190411207961813657512138008198401880918447072532388698975773282813687352427963055775658861648191574111065054170286691467984027822289089494837607935509679481028402539143372831613181632814921686734746614553698143174824146881222906126493684268072955405067419666877935483376052636700536036822259775981824106867904165338680369609118771852260586704807485962600654111220722255457966775720530488121723921802276722260064494221406432378770234284523251057762919069120837070674962245222416083963443527798093626328269969213999472723671242040332834474261684255499308274772527828213406301017743946472837911886532033963624368017691913337706258420174663530000420529468809142137547778793531749026703187548674641995535923842356884734921579449957380397536829145627660166365719913717675621871507546365380001631503082795522230771311633084325242158435697459682747530359675695114096500537094668221095223827313298025244355942310051740112189771632174918411961470570008267097167930872270674964260992577093884980416982760997098479824969232763077780505854412581740004096118928344370474471568073680132813178447583997688406844069955973857254658233624871895786975994297378490102393856024238428032983144031053397950830654329779265570165255066761190850199371128714434369059110315789274363474775821486655739214980111995452089236480388646375008817568121479866173915720659789016563337616674507323863500801188209447776429547746003764577431536443896732317600320001675223563477807866221792503678504822908249236885674329299148667971253341059662071148546415768642772152042544905292611236644717359060233627829679941486068655702578923519068870672335604101631464550579399129903159345828871505164716808865043844648814839833093966478575046093993683532201497882554988323026822998248053490710112606781905987799640637990243029061933770637019456670735546185681871029410368334893098912609940177298475841666297835293610144776951537953578950788674088370081139533098913602523092140012709116041027029370976702086329939001044254174676557682774674146395617750954081497495406810379061323788721229546369561517007838793856201397953045602064298326652107999175325197772441274566258617470285279208685017014902072772287052172276751979692306356467236067371785524742046608143913825662680488017968637752655933399061613492329842966295604974306037507373265686897803949860494704417320848302353964406507450483819342717340857082894357952151438739210904907312120744837603019385873743811072745102521998572384215280042818775120231972569957085684458912466062761167779532148251982941412981344882017728494882887566844023429042501840912531755045318400601299368642187399193549401022010424560400586180740311563109973740659744116045882646963267713038215526715111647703232369952708653276217443457901951544438197373987735440039439384206756786970191592581631727347860297035859481634460579823251719612930346810053358131209101541063055464930421777328238243528048968909062817978447737221253482656501825938440384463526095593946195816799376269248838108020474882421311565943845204921783854300102580708123589320755512563084227549535198782032483658736298390486193420332991413513056738670749859546326488737709978556604890486540407468598158475001691712951591545078055654074262225852868083060153052053483369045235378776910519754631236157404182701029490327717975910220850665989673650842502207909786035817020403706580506943564733961215470112558369786453800352712381954918676737778571955520832814168033312842727155753458766577352944573718070077270537701385225772275581869223440608447710902013425272378632358109724569104742162852540312749692878799094890687471199307411961594519075497656500186330404833391181811301061515542457018899960513826795224265898090709374902436204346522484446419897291855609945471219737419881045492149877468578517947578780117992341858459620795150582097767409130445502646633624576129601697952527942437420028419183084334767657077150463885466651269300924185477066921888298712769738756920617002103271913303315141565732054086778389093790821358906053672752014128604370085104692053588237417160884497408406083511173690971628500514052009876357893812233889560425502158537308159232467658083462199681350293462267583881019200792930003066494935102557438442759231288448852418319772104113610514897876373385336637277532950485892148430309404260534565145272019673894270636150015576947932120155001423869489879685648849511420221278769149481375670442954915163366289205670631055924083573773969257646435532729046961425587013002026719828166037911750356368709703202429731524826378471458946670489605595426837042069588581473448245267920187672250115180439992558535102977620826841539570428751147521352031674960872680351289349166309952841617987220074469930874462688362361959955108490027887784193245867508014382519243371418348365895182118941130310786702852835110502040758724737467005927974552718830148590420187932740606990258244165881606960063572924490905265371321722993706477233960992353121201886215807008188008727204982119870232301619805928773516708478189727989030794520767208373680409663039149070521818029552864279995768577432855798945441459420204582287405703412350672674077384726835621763545116491932134665906833607914513248227673105214474632320265058206020733967829864991594233643347099544203911965769401549374384902147403192947916886152509955896505013683460522663001362334371048792539701268227007923119986904227832209459763539175589216395458727608800302927913933886511016293469361436265340346693715217452607138722387577049641916335595129757962517423537323542821565435036246096977670850085900023086320855884392259038530547830461848981935714339103904329183992335967455441433688019592181863202994933845650438476747955225443927447966069943423042937951243164111940302224961832442553594137559961977214263290559411172033729638753235989847453707753596816691512493852186099206155729042141365157618774154347968131642721820351106370916738476562150205839615775224051028049899066780994165003445162189662157549242531881726979743194897456572870899690286048760320644078557525343776391071401920282586886593712678637948922988286822890993584525261253489980527887509628097758207774101679825095738905281183782930022447676392081181154971029162033001620573392609229401665954253800564672131566176237502888074238914249199117479432304488061502923882421968791110663883298536333249873126969590106098465977935718810963477919851956934523936878299925947764882949139768291117656347496089273024137882565771151650624322152705230161232001804641908080150330635668880192413700814593336051174823849249488224514948957530362583278457220295671313199859355817860256823783496565468810685816017290655360816374969862411196264623449722723401501647665206809492585679456746201481049503520203782857964464019422051436494246100778835351916521025562038826151567897883593824511083028395710722386384780736866143555433081275374863814908438002026436622690334206673533659103292690060161140711591028740055282348940197351821745003168754402849447934579094545574044994986393275962391127317001505656136652140845525851207241264133390461069073400767689097075683262991073212364040941887135653233214152021088467929144843390861793440952873816631740131048574544098555736025862104588226054067275595689463031154400855626822445373624543762346651266730669820625489480363072742049938942694419067006491597719652087456715010816867406629251667463139704866770888686227888037176830282562942342727672507574451227239339040582120564453286258728118752763959371592530927689995573031186721044688219366520231594119881301006820915700085702864203587424085933036818994493637855192422897875017765161552007792694453765760444677734037365869971127780929297148634096010324431397000526502790091479852718703974231292922259272415308854702660829432377867557690454071877286958687991475620493788215245332472832161689692279012318339880620891373859776732423886383049336249222884115440681239921635337288460182152547838280035306609580783218250535069521796312531094947536532743879305053715392620683037654423178811521185626771555181503907008623613021727666952939894839243539087067239513481505069184531090822386972338104307444432807894058391196945604411268267633742579697243988997256638248343066335485418188280881464240864203183506472232712749474664147757683148495430791635735719317839094463875756671791271513617415612603404392993911122501834648272022232642919976830926636919335874953085636945775214460265041730535644506799793701515884004963785606627677825850805975222408975596249148621252323296393216021356596169461995763299042384069274995860714647663472851894110185323133416813655194994991196076273513426790604089576309421095609102909193145554719255438285804896313009806069328867701278483963881972572664959525838409056064498216237788866835150606173371643859768513228172636598652535668329173392292571780645004988367977500397929930287649872884317647367173827550757711490352102506203341921416876261941057664209090806557868842770854764168929935956542662895584578429634377222894063610348859961046422889828586352665297523036218575925551746243998624765950183290215129635474604906783307603717942810743255687971412402625721645885964093040194705676933227407277312810190222304346384957534355888744638329885831277049848278384807153432661187558522454431369243607057059318832053692690603795073274915740132525909454229004637846393690139033710152725970034185759583434460409474531651025447778765406323457520929873323893107488155970297325992942040944817772328565270071924528368465958339365538350256600579690082502722730286695299111259349138695298207242871272778926912530210570990330152716512369911523765893268724306963161494720997826753608386864804613236894384799287901654088256047941790991476168620546146001009808651649888351186383974425288304681319849318933356880205898877519152486009080006926827061932039929245202660410435328502416708841242772233979772251742608562074180802171974529601275711974611837787697332955437799236120050917740418421311385437426886992215239936691929060525723878280258471758479900057334073081634787663950218904933054832254704991800684391687058681020987522848722167381304076533225288804491174930025362220245634022058424580808929391305212731882135501532778542871957856591049792830957031432413679347086068899610967736605223877294471294389367532608421237147756742179407740513557941645551082045704584583889197329805536895450569237021222387618636832373429635015648268257273972133471656527890594493426379218282101111453191712308080149714734572114212789393643365299637096039869050581012007021035954581664356743857483189248114280191158490203636018034895414453727493995182882658920650381193699072546970073966031199273524594337550846833156637454443487458124952411105054915329511667053366304019397201337523303634043059930743487686054211457137822105745812449706515338528740832377033574057933790133720896398673902386452647686298279333906000831513315921684709864331739889721930891069346740510198244374222331756352783582348172216005791375557707798966608447472098140741881801667510061860360478282640450987322454428576618474403646972717465357616269963519430979856062331688520134370290632223803179589205986252513655553224669981308063963561919844559864860406432675686034624146948928571043358678663711669913292482611997159719103885493650657297771035514528777043192364147392941065766417276948758162010193330467741099974258302260526647544908131277806374221234251832012737444285585710103017574636121814930214627722752564900518237172358972414532673621132175320140268711057987075317616593373051030227663847533123305079475887854675656734379784953717130369017333192711699937121493607462766925068140133039743207162853751171389954793160286633106241627506121645853385922378881008826629744121575548918568325509560862261783234941610356291234753756034576519151704014104541521511303772543768526162649823160886458426657071647642243558353587055857577237437705339216144872832207997574221276861404358608451671643406071280155927644009901450243326586769952377966496557727407122728506391510330481833507433171882734750915429734564195051197648862380267192656700020664290430949774936294940913846791867940782461402925666281448842642117877124027294260474981006720429718018216036813349817230509326406476842173653800143042048189404578319565014394956473449255418513547420428870065858520698623804656158957817237777028446076910310430500569296788527414708330376113441179239449917820405797114692216998506799010956372563777241837971280172005360313993141811242964320242603248084748640592995004612935404941806947748159139930689076510492245434555756487027399199629970145115803562632630718001098216185993126522393868079964243792125682725505693489292490613302366270298014264040170883906759382261112095955615151583730576356742107563206718488691711300735583324549514615643185334459111895005931500067956343489242770827987718869084015438723088002376826481440863021336026695845713563238961272495543255673574470019298569196316301670622225352154092955553706380805700962812968701129612118782253225426951875419480681328262868727273900306626682825460299154233438478640364540628254638443123226884698453676953163301618194492726545877700590668328633509957708012410347964444019791682308334404807889858385255682042606900814989299510151627708705715333084834887677276804673472473052533859103302765754888108508177696850218262808644831226013074068257886704952608975190910969062842311017814777365149006860208464033614274005892873212376012992915782077849491171259090843418597962457388478717386243020081407398134976072840085433766237561550196708038927853552523409855721946555201805940511008285351505209760398400657100025271501380271112683577489887286908298550576640515588643765722116224016829111337342572627504328914622337071509968209778844771900406488081169565774977626364608822283377119943285643203347835652827522481225341858331547532834035247126831007188952868091010157632193157346667278630311508912227595215706616717208065017807113030843672322567427611566957480548448337728852184264477222375070805058429727302055747553516491905764158705687746559139081828541470041367167071588033862801470968726645380511204757497214762903521838615664409647609604378779287497440189157078851147167748629941545954057689524977100689765180643774309857729991832816441749672291784339453575126617645006916437107408535502841355808949860229577989069513246408020501727424889979329696823954804094006030716614413407361717707692497760552341217931372144184307131126070886547298849419236978311120369902914791569021052761695770309744143928604182874740415328958847380017672918218263444096634121296654526446015855368362326490051737024080625077220554131443479291412337531441756362552599312767538950348677718282297778824032148850011491476454746193060223274804319498812259672202706127259839048022039260289918402733956586484957886879573636852543569488487538312531116020657926392274398009917697437596889823135122537422574642604054030715537784257399663949836056667086731952949600540628731663147326719014947493086334528217649365523560363558304019522011442148521715791498136082250442816839011780302175832591056448375250341676390533293086094721072392041839752091735043448917270149446692034458050118373222714766234819779607602593537021926495498158079933653485206262028595022908232147695651323673841788834257772095156000901986527527005214807134226815887811333020868263087796292581508730239444613144263741005234799764494796917852292166038372047768128526945562494978025503897903272169906312873634179959412058084203994440419097001655824958748171416530417472233843658802721408944631118302419921714274884903161332582742244297313099476705252814057900645193124575964226564977867229703098432300998221207942112375896689215962196783457418324140540987477513771965681878529465006296040165325295846445543929398660280373421530462530462469720785466058248494491904572897937801512680030601734091400671933754252872249419721409220859993116356478604279751744827467431901167063324256848389571766116220777290354867384555268741442352202461488902768568221258712292741998841198173194260793687531702677856623913440431815509487217081616337015924837715447718280288651824455271070441243963409459850244868302365718981483794906268940449549556087073716400899046868049866134376938642460998013725142485361147249576063975504216387908616807279842321247425067959043980743563527342706636579377348592394162783242120801268773259552544724688416358633582106370376826880386653725302856554005162674666569146012652500990700584052681611180428559800961390646816470795449620403665756900850761637209992120294223161542670123599347779473105630310569795796959886089278808086581670484864291509075479148295302475199076313787026511355208453283961204973161157345495335697793192287697003269860467300479526174935301751827835343137042561252980305847058198590763405312882089184772668004173339912829593965545964357307450608275738554292679400471700275826097315479074364591519440591226172021480847593675289430952463508553750032307796642769107641872746544499938195899270140228563425542588837688708882666573969911974053623983990169027603322440482274741599884310496085272835183236519179266362482911377912418708935728097129409147500280280018752726981427103514788362480419609067166825451332022079584529465173471933232001979430887074825078914149954540893768626278486543757442450937582149816501123662705437566053804081191956623393154556794721780341565972553235705047174659742012215418641805830856743723028990307576388528114371984150500521013300532502830907580274347524401729914643738213010389370982545359100088193558989749249451240345986244956019217579145169603520403136525798510958827985082635976361554482371249575296868172761096665340997314569171905462115955230562983414964761583136448433382492069400184606518161991058693798145129006046499164549086265091629751951309758791458498470323212108853451107820904759966870790151515416360451249553585897252469040676751873396915515143405040685649116157739235634827534292729516061280919012322094996918717875723875880772600246510728972995729230679961119934691528136032928126840227038660283684716994935004864978964701142465350660491711737920455473598364523680909026499819241276930457009705625196107697375167584256709642387511405435947154455014111536848405785913575935065113490368970667648328017233918588553896731612933114399902493454173264376688512910366328633863816583050320912593739344375798382951412635412665460171428663615517987245084925782214738426916751378746926332796922514785307946370259556452038261358255371657305412360383565929597768170243212139393618418392079562319678997255831440900546941544671613618956016602054441859424358691911203926935799058131583847396696668112984561919186726834327635941405377362609223829991432430563179187741466548810539689013904481062714737095401542059789885381446297602330147989209173177693020415795999022119234365695815241202583636233614634321163581277067979215214710753916559602124595628307568243967967441743537089730876762426810059825796124606310566364117747342720833112681978151595874179111130301200715500659105306575994859842996594912201242703332103837972404619333733991186404317573227570871806118553495764515103220546380439730005451857495877263219541007033161499152405342521956952523549984780830856651109433704847549067918882314323740768779891294870285161847535351340522273564795708455906034169119706061477675899640948189960563192466291136214393791281875508543776836980634451866385271052614523044823151542608166047209762953201607640636897136586542324029523662435134018217194475789931450973467776048590511713227983396342264343531214885014016563166985577231923138234398464783712198070170599867088665028174083355997268334366831875841406801923705025937554100192186546852300516142492497752289946264323195294007232042291381994155344595312706676267550276603804059535350999160817861315702909585910279315191724707710449922106417365860875583930274562042174383430308386259719733548738615675570445158374566880583286086442624425585014763934563515379534218497899547109661185503379850467722321127941989131700894512894990020339525234306578080485513740244842691443236534839809215821435217922515668873347450092027771289050183411962043836105787825197007329417180152016042789109878027563250972759594289462217096626723528662819173681279682229657607786203956427455599052231630827663984024694477913626031474517470250418660708542965912196461518507035902186022828083492577685629957589194063894584697382176806061932614632995341863484681663106864350142541742866324916503580260544717496206106302986358758960024597079362376566162883946234858968640936660255030611371551588687738541257645756263508982200596144956824937637997864754023635811977649038374226894793470261657479255368588946807321474975701808519418218545992574036768082612912114633450452670688926059921035074687393990239630546506624418504507301083927873460758237636433052303618374907881430327587559935924244069883115450078487736497417556197496507469205646288117421139891211123325484670056250396801515542575470602346806967948811421864111144619157391322803074766276032211639205994646015992567188752053054044703188907795382336840933020726061135104406112474707496148597710792173178488811516463929297945568320307475070986796662658036026872238290592376329080785764759786520881209473023032229249555195089829128492697309425043263858699295101769292139831245846673867934106364603397036657547324842585339588132893657269580113933067719252179746403308564231566385840418043766628766901925897968179924068090913392768631639156061866353306235312225896856578039447219032639177288682969560553880793034983584145042573085512853384895081946507150908395506031372050893728726356958733221186665373364134969605162524303105705107390023930092851583757201353865465425416208136182263440765649833477469046549223306130278470549195830076903823844856429694324369466371848182876401208160044289406609761583365167895998050925622557919690081804611883219356160061120971734997945125609476182669658452769013112950709927558926045352590482169918004740629944088505834307230862672930252725737097455550059924623995198438812756505247438984080254063698549367776423896901394906177492486951605984285967915442956761591597851777961792868481816030082823496357657471878645474093510822669543218434152788489890676003607513070762909393861934255005811594283540827470330057673958944450935716490977783203389027530348893652808397233370728974194805414947380663983783301678590081785868207401119345734529578539311613787854014813641180598986181101284522637948122019307644607697722201856697132037414037098863082828640088145764108777027809741235897590606435178088356061448976449118138064294545580637504808352735410044352939508570990832294906224632897461235623394456946267694161153640812370895548258132215239215640220875562100342969549754022825878914539034181297343295423311767383468757354964554760514220348960421892822860106312008871966783447181680088298004375331379796301287655597314283767437562722537471393757363503538931723667430634739334822063195250141345655513782424546256191488579448207527791484357458059119619640131095298227210509657071590811182208344242152550092993356863794213501002172395007358038896317088976218936319868766162869531983872663280035877119460724247722863823219227617344308140167244017559912849108975767349453687184844595552715424273997531552840366978444646316703221220916938301674558469225824137356314044530839704026253394575285503649635428761590306196669530013821210967271070526440669055224510795112449336387351055375179234020048722426090927932022718721268600505431110718910892271804836569977022519183752041178806166068675234734868695459736914343416382883090741364813652805585772278172751462812644224284508087603846809736875434282490192802332492158781429091673500800135207981298622960716674667741557824264221904812218562120014680033504345951957604594782689055232538825280652222036934745992814778325189339702512974616484398313519493078413418719143206584379438609464316605315281651057496465178170560180857027541717926835682509771169714687053988871547320049112103030425699689842416740727429213290445583516869680865528469917725965729372609337479198042917031769153712811242800823560859168651972389724289020127165102416255349544823659382582771143400912678104640078734599968990859192782563759820307872957557532588950381699133862359334801552835677953901522478073168261696352058930306447094419516752226940345774970847162701870153322754366032170370289441642891111013794014297311260287616037991756456498119631499399968321778228190380648987571812700127471102359617685970299439613246038675019558014958058681063108954710023562915074889831043570468475861231144275715947427945616891659534756584918047729154021791383035652921036311816611740696109282840700170324389339481966281335836176022259361087471926239282344444021919871553151183507164169642921937851908867377052454441998333562959169805688672387563223667150034263989797449533479914131550099508124103724497039356652524168280182337809305154972555819284885680818518462286532573349281273280464743978340922571992286453785976901161971874060058768285315803219118738157453278186557302772733658397791999372880697212064328739196440843563168637469239276132099373233897160625589674162848880671665939154373523411969679088129086142684834117434011381111968188745299870399818358923812774599412555426390653735774309154403344177627994207126270435145229119489124464924384594574127053826587409907927110686463150092124931539275266583497876392133993460408744648840780829162012515905124607995370930767461501603008919786859275783736810856026568288424421510181722648780357233904680919268020397533338245707857369726964769811862167470219822901916742368360317162065580480267878645801383316103067096385335382918288421904853243964166645382009527967033305687628346550547887383114089147015361145436636134033196985356323797622525401426301473917844296232891932994410668357526720876529872550652730998478309134025277933167141500705960378398243099704034668507350351956561239125257789392507392930487130245386225285641376146289123737077679164219217924703756309381295615107513550649671416338719438237281154238370243493224332421071352524579199992494243939151265503262362920832089520316060039725750394257996129229607243865915963510294222863836738631171060431373616646324639547893219159627984201169377503137700265766212963608670337510445936898915501552004015160551391020806110801640766857001629835555288095002248879481588423280551760780927128049176077324051790421225935298302940814689373106777906979709423329832939820193152618275806414795341610448458475914138693707628922654450274992556456362811659275884734768912738652566545980630272935106596223448286911151812753030532107795860820571948157355690989621019031548720060455523864344738152443361230105151653545820676711299245830077403671463789745967014233623590512556450540982064727952691812642907306744763701487234278292531782241003178401185590206326766720835858335115691944331215681185010729200695609712938923235203685157107303972843258320985265338162706184471406917873417869438837791048674023896823437532160897191873204414691575526643756000574153903313762365145709561953396051136588216155912269731007172858045060539284161685948419634796499802026539343017988112043286033796457503640473426509068671203180841815078272127101669829110583127943376233763006443931450257232126052785883055708959377071876095261192409768725982383682904482476433239107885561380441749480711174471377290221430538397184229476729338691780152552992889163225422252032953119032638555004969218398348367438289493567971327955487838307311542104906038876385672401670035867732004253304209797089166878557745865888740758237772862307115037822354469922188156097619605794272020850973087100419520364510684960640961626535935394980716692522169956819062476921117650617446692350199187202833058473218970959058136889887022994604323011296597822927669929466679228646787347508489865005164156495844087703280598615913458730520292001183671197088015303094162196344095735298188531682038763809005274229103595710078556240177249858547738559120052699417111849318254345541627257182347154608067943686827497390731064746339430101356468669687434922386905069281987980072478417886952994623867974510758162295115880625124639244758307888045333373202784088610891631887287961794428880461538076940977691951097081452647471499798756038121485180685973342488829209369452499521618811688894812509698592523003765337330401204809076630488603703634169783264622410088845387704579298425291186500023172934934835456241450474860779800880630276021364250526846313738659211622589788487337108601770971891006690862860544096417192269316913053399340045486695998893039890583172545393105177333855109558218084363733483702481211019139486823545080390103584789211730446750638855049372595809908361625316049908070673101009780850913979939190131941703867653073009072871638821218939812494830486509406129633887316149288800750349532509093091837130028234309686924596617663713392545299088311234351171953756901598093047757608262661472314923222527471717162204537392420437465656107866671069464567071573086502207993457687346277540983434364538748637313260919445317075105919830535836622873566089232172944951266776165294249281376367160512753655546216018935190626545408553732949332129636677590202313162186271516678301807399265580601902979847617828230080702178706730256904405660300498569082561101575602519892496978891517505001374322363323255326592586736760222108081650453098891821125178918017655633871804616050237303120890658295228328416083280463788845031921244902463007149092180663960632705259972437697970846314000785461852456179637761955611285681981088189332047070379861497880086616414400172892617304446203289473310807516508850658407119370446464049261507824955291866455889195336989743229707468029268295767478247099179012259614481470459201538835160570089174759096860251245496509211608145693083690878201560405588501697026679398756898451989231365426677792970966640259605896966487234898056943373821413559204575226230107804978812204898645081834182930100789094861126136323627434701772248075755553300270647642103088649548434693219958119597028256665475177686978811145387777859555626240750404459595842812598582233051652248718919101019022809527284681561578604546381403345119923722145403514647621971948316948464747418990171835148101316538100244329318666042446990595429871464610989776305814508419835211017242818683247838970815032666223734371159821331740098469340741463832627004553791247605668577072647582487689931934677929552538303804575356943500232560022133617699312019381623207152474547812625285383055220918991886631022093173636502885995425644901588120644731288260370365282143460168437681001069316797473617095226078011274700638192462998516782496307140897442495702386411291438483307889512060050716776619555472346118344662905941525932736110003143656262601670339883785507949881806995531856894035051860423976273136160359814082361335000153512776129049912498509572811056439316348547158349605066422208815079036505304046093414832285119775406622503808243310397021930448570112734077235910446595416677902765478644585503417003745735041272165073079117911278537988909061994625618819298743007147863625984766141560903582791201979129248492605486028249111501883012526838130569651363431279323545219692532513488048475119776055763038135189641059064875412839864385619693510591871792252099256066242351191857985937486175631247050517673752573942289421147808307689017681339832375014856009901652285592496537762835277183385853796940289300968056424636547120562614924662617107252375915135021517011128146113058382134914090835542109562157367504680564804664520176400343157749231401266417755469618135261265801824511043675424756038174284355835507380446087061118584807259039167448726394468771238543758778136936557498491988472943732631196489723792391102934411525980610328745477666257601976107311007060448218275139406170349768155116102211926062243088947152632591955259243406679964396196039723724327478806636019196605326977929648679906887630358546779144522486713544839645739636778527273322243199686637818686859244971841066998746019622956727326324625774376668430168151243125089298238063784952156025623743543267137709831432756645693986873234303945171060988610519821701878690199673292013418037172912844652868084262821825079174489958221145853164186679015653734260291092587666194590373009460562847816285564577909896043232194769166886550434461141723718134613069173479655268518740254676208203381000351405628169246157300683122396171034598798789308916115229978891224549559325018091618529848068791490379507571341294847581814989226251584997784325701791575814485207606647573722104228202874824185332459602066524797233253265814456582809702585951659608067052330277573488407758395194051723336907388603259290789026241077171583531977428184865574978967763313708297366108001987438768760350972169207729966499461224914501857185524658568297478573001895167921241486347070392117714474519546730253292921804884732291181319796414811223688971197981974382467713761489507094832882685531559423380037184515789846292283029980622437122776905142802235517856499521669548050158505703070467616335942358409329836488874107227633500788428224594608394106971718962022388240663315412930391636921173328190075379432358493679851057410905325250223976890813986172099714782227786871120549780188398869487051276919557338773783482438421294960813699130523077310609964518246093546375690436449314300503624915542910807106171394271529883942618219488440822003625644132098824175129890189533557270812752296356634184323906897996630339251651557954260336162373486559913317778573686797716565760165023997428368968124565983546202814783893992043189855193197371840304221788887879479169250482058682386303414022620692379489156403635407749441477801807968556797844690504975237495835751492311896348801350878881572398214844080604890215164083311235068277408725982671306324125034900823261000509446394858798284601798901124044862725551116977353266498865910718676783959787610356588924266813736951300519464142473211709016698574079246143226819177254228163934466146804527467213751766274456187066080992488330945034060852843983216413379127465118280963296238850096947303767000216072683018207802951583899557272381350376216420023384707553244187358970729174640086266147082186098378319168888080623162198197437417387062298894315982582289648100944268781074857452869762335616865211707134797827455979899446811864312607168276562198157746392937491275903069957094397822450595046294007941642005760473525254650428668576013545729408181455055732107253769293923782584768145436239436622601665123931822155378485459883411358193507356470107109600654276949836960890458669933254052169582885970540174194615811629550991748342616109908039502389866246200782443513785609082293229807552240622835373355535462606714804309998035450852208761179884092251854487179681240379331596089866009564286296927926182158828892631516655433786408568343308524675866967200673044916208741730741751843497699732842806389320015976755697734865488045232486127609594754326621528861666683133771813659320158044165824925840408984063040544935479427806864526047599334117703289679497188867927698075553863313083984734387389006197686251400896129302010836076499882998649434176775436594818594179338903192705969629577023928950612524636324547977946885520131103600182201743285335475642585249964525355285696129488970506754716599431557625836274867935669190426831738963827220565378198322491732621525975684663984624548318566729387527480999780709734383064527521679114940843752552713233380707965880968705373216653819742045617558474723813176352910191145297912335060902066406809947027704034345717535072889615334343067613459898963952774095816544407000652657274139582368092664876399392505092061793195903798775268300432368411961603351071407554936602499880347287549580320535967475702963008829050389706447352100636011339262550730343123444679976501481667366472968061504592979794015446973723161807113463655541476157763526447091263434922032703105507202613465938941302873825203472201265871393889963558335088398111012513053948880516886083016552614214803735509796980742003527875421399073852595455622483880393730408049461183252692748361786381821836797169979400875376050586080976551515583306562022354833754052787287207482973867959792032773854785173200672651342771338410686999045053176356774794379392621956562797142342220533427399956979064920542553045958476119091582765810543747440032819350141354062689128665487496070886448834181571393731692137313176007260548760866351200443875201568672870697712484425638184996561512736484602877109369159678151271895792868282198288870266543689339861166300698819298478197496040283743162910387540780059874360712212663576888740962573562674112372819984404012735969870315415682984001131084510536957551960977170607901292825089620227889631716673839738702031523199769300561992355580551967025607339395422019641101948978275247577802723750315235357576413716552539585133508856108689911375827615210622931934066794105913556224862860338722869513840518569918032958266172669708220432051402158225683731314304120744078037862926088624962245314263525840979228568574928754281865707791602838767712448519516063605156170098045403259459030058031646244592087972481958732494405608227258009593964823618181610581975276267440505423190813553949459879616895822998622140719589067768393935269584532097938441816345343000637999257375811741950470914084262590261151627246802747598134716918886503588092811435710704244045984594080664086337752412054468688560787036946564282364496996717986260669035460860344789674405059981420286339328487869204460672081986205617978707841234292430691634265751792620976189496895390605958468201592811528295541527568861370546414872706268847075545581677485409973455632906537537219286634319085118880552212150231341884295445123798857567540794969306833180951760218793406482648018355539302133232957471119382578349758698127051960649523252691972847203744133117779887371717955330015853330243557014766025135152279938992949779999556344157428295156236555318835849182728791116291256459994640780400210622740751151800387352434698332056219471101408590561688788689626273736423579530087574845826391817748256205296299596902629409963386385901500913450373739420740134565468222686922967207767772896024078590725129331826638313343576577510653537189350712705187466112185026791308810306556282438145092333116678034080277997896779444748505716915689335698030856059236998315631160516626203553364656046133381437182208261332386958753180663253938321967466425441053289047979672292604104799294227058931765655098161075537339583312047915718571759096354015749731657157716678288927407482786562164264703380461517979727308372145421235915192315837117845656311058860698856792525602570992952259923196716524098072431457618763460941910361272561809185271492460359002655402336590702134737415156626147400878028856482926536386795868900963799210918404726319588686708410995814360995973299961364442260206459867844228600987688597108241227735830738651378414346953854053404298457940997163246534739199004857906975411643195456157800203473171974298843508428602135354837134461364438513634730019768465383548163455098221732530338872154181235519604194417678716914701495131143649409875459263129321831440615994471988697738364409326058829631799368513317637641290973039446522888095706934764781810718261388772234568146441952917475428367960080626873059522441090111348023821359110892150814908631565450497197990444288720294025452817691764048719801439713039957303769417009204997792939723265537304478727606774543516676965492002336856206217756232990880058691355566319029985915937371694545928537592527244554704610425778031012742357337031723664842442199714953348862433856802687565616919137856688550971244504741020056743594948496290531221321909097305344715518857602729689840568206221462838759669758681052307388943230160386821069253884533010595949400884841576201049803499759404483985868754212605404506274687600773093572686345277567535659090148665885196920554485989698628967568084058919662404404182093764378632925994268806487278427664109964283077238238792911844320837927003378066584459231033957705193336781293155731729756980523895679565701943650457793744729090617035887889417656495353027337858754714093235298657202428395118952550527703686593368325128596472443194766009074088020903124549365669356675621803850545705059512308952816687848496481113602624252357308556400791272030054144484549054022407858446092687086999478311857430272785246858143797396970534925499427061806222343387731834995138294233623106232721217815947971970953296474202414512745894840044195188968451474188096472595353242493440652675178401151877894614068895270255135580796755826778989065119886470194766572551106311882336655150916023135475057029247383126973543987540616626721924142578440855163125117813782836481552478119122622065852781080684651669808312626098057086632894295644615399123368096954357152506147925950191742366627338454667184471962816968275508014472224844062728453536297533852195940569986705624084455437437027309079581310690056310525392483385397999292865159577004179923333553522958850534186626379258935436361503891160633422848896590174745140886335228971616112062107256350070641028840194870989383522615670545828182454955136211379453657165094700666875914106150217782126226780016774201419553750755508047434256304408779659454750650710611623566596619339690603033243383422763668276655154181565502753474872249383626820815041620509336892592934269207053368938206197762091506738608966238498736192966803401604845233202610429614103746943563149786389975395283840079522842272684549855188908880602113863944487554826248368748950044737494883542631144708879691488223928175963122208734026734712967103757636962812849433250744879390233343795718829849094511607365670501119944697994144321703811652458589791434565533386084952444242609474897018211351383791362505873469182531674321873427824143253312253850228785761784838219773554490695557985057655535121134244899903704979526087398465634214829746994506858338842658766144598117791671867691916859965508354251050151566814017157244874779927729064817368240781378178728471652543735279023458815782148409591845172527050373832842941217331444666790936330032526750376452077554702134993641862113099138706710722418672401218714744558394584618471477094733047441468997643098655819444602363545728011731495766291192669637122839783882048709113659732453053617943519051894783865482189430450377924708792279274025298798515456271703477981461710447486062522520520786496737706494005794975581976515085803433354629303653040620368744403019316337822774683265264116290323287673859576445549057496965243852968872835652546149991981978789198404524103960924152242736387366013995266160319328233435640443522736590087497512124448204238793382506015633333163722554888453312040654669887516942606774687804524187121062632661140476327421188767312046952123813441395500098592708161237874920644476870069319001596275216031529438906745573437670728351960115990866836419902503823937308044299875465990225518688792135927455244229351110305927203642293053054302326231104048010921774794609417457178796407320766248166071272028459616168874833061961590141371822070304882636794610985872228951903436182899682087068527081455902211323991498957786350729435577258701564486956392730118162396960328646342966472134277925417874947002397905606070771713848307032223609667159126735349080959579621255942135748757771964635960334531209005467186587566498760798455883529498034938352964624728237264941503230106249645445639143000314756080342924534456571148523228235677745574060909337648135294522746964834788950364240989638945686314443309229859521571797392434315718937760239987546178109208573209861969041456186854591346747695355852115442772963614497037979026038521890028043264916225318215948852488975064147551056374915965503841987248819174156649653739401402060385336731575007053445152588432251987844844578590176087727184716923189772115947263668098972055354658859966379234264260262265038929425949499042776911798267263506090343366923223496855160582911694636677591358588351967619150818738005786168136595679045655675208445584763301236633948323060644687632330604305928598395792698539003357976020620629520351919539362527981771852423026905220794585708868479958035767524069903231475411513736598228673261626040318674853127752573768429943848503946043434380025955593562027088112291389151674212947759818909845389083577676092461325699668985521583532402333119571530496610083309411834093367048045857493729436490511547803665645654876255098239318808918388639493481557091206791902595655615280223119338401369026488711838327068144762611559727982794427476434099850832332425650034402900867069988572371437874431225633340620498830612581159575147085976848220932228449392791325088114077150052133220447110537964232185033760924828278190378376588745240161626656341346798025557761943127321497710781667719877275778793662721928062361756260761340004429654599362637096019166035086352717772861080215549563480463888195758175073898649914225217397752029868171668286482196627240526276333033429865706705545508801900819617556405494955736733655292180053201044567232446010092630564597110154281185630344211448262258498518002206331812569261442593148531926696860118746996721337910913060333147216479353755174851746087704151899051274482992377463052408426014725819551076391111209037134415708783029100199453970762822873642951519565503746847631977807560464232199979730007793117605134486114398395146710776568470512881391705203095746730795309718401002528951508600337442287217770805106475299239521267558591687843452553604246824616659750294128352437458990891363096289284621029682412062944619995993057114592480681550136665934676143490571246435001134496691985148176032874778827039253137424901549643917664589044084340952079028832288520621840686097416504458374203064917929049155887885337171608199595473074257613481771010507456980154107934553590211293439727879916700542277069240030460469015457482837879384965345597834148280134135770301085033986984977411086109804428825072676463068883901057248998327692743183933174136337913575970828167702859073540067718215969415153336302161635802705295316023249901044363159440746491283678055108860162657741516548295915766366165700529610516912579003351830963638239060356807323014597326178184404113409917061031292908806084306586041813370110518403116327687276281902585074629217406245503912267833038988018434868644802272418896304710163708212973136047462936972179778381306490011834906192349429192031006241743156937192670653158821422750037045199924319105531750887444845891119207807217149299307804965293257676650273332924697455623003063259449399913991541994157946216089863987149064003603149593827598758416013690165927722822630429827371210478542980752688029605255503355087853103645742290762451186966604776018533132210430213939630583463009300587589056784371167617903307853714642269359868699856278500582073359691462892824918221888492906333336193519079084411898756403728757181746959144608662639255415340345524243380757663173947260753878935791604919852369133784700843368828075738211082513503105888409341557403292444563358852988260310748901422607240761314674237111908842383347475596483942370873523111452652660733757061152660886253964583715865551532483621069564313316783579266399369224572653986407239709171150037238180266842796989299266980500648503374376324774904000109133986535125213582693258612958648114412817890733834616628503855296679128044158412208221685940996564009691154498524700636798321802070983029889664309836785778709231331898145862691627823506777653053108568111925936812136028353482905272727303879808263128527147337285586940920885535663581589915486748938395704512336851204294686717221260598703032314814973417638325549584563979076582234790798286478701593385995550509955256818337920747846639845855894615635233501116564412692954440080119422251573606305598433428107507773845054908770481561032837508154915003281489069997195057318910566210761863229483828674487607293935891042581696574940336200688979479418806194816176504211681710672009154979844837008892005682384055479040990607736171994289818093453140930093553212692423122679355786653943659984885080647932039205606057477377135086542614545346424282159905361004140168056815163179695737749332240117357501120093262210479786103286216025585097639993614986692794492320847134007221113237639040281905408508379298124278813687751455000307692753344255407013623740415741838363567330625996739592514116106005107973801591970520964159837469676954578295052035363112765232370232487628174552526671444795834372218092452103415709277150731760661418628694502363586554974193403279797255437517071954194703644236705463868040885756674223281226431086645510328956165068321868076954462857926426451006440735121809140254844404802119998207610872447079426347502995515474222040700591366186971044067691213670781526859138166446959052943204581131787246275684289204371316974795287992198735308319327463407870109644648954427148139486175388490815625946867120513368523543995305207765769476825147224205937227939157732382968747990799737892349235640938450573483800784530947311630164712535548907920708101075953647953343651336251614770829347519318517302829003522256647924439941526964516094849816952370816112466387802037224029441079376711244041046721655581530768413294887539522168908705747740173324163589953298798935928962922151488691201000514691926791795394168299558890062385704438566272262556228409922077282563154868004864431947618635203982695270956463640271038868474741660262393884479723912243690479002585598225634878983939448716641523839464643643520490101790224583586371593930998744595519630131894571595746962742932346336439807056412231339457209887253526824631706615639586505222869248341909844900424863572119427570070741225667063318463398714542783459610511768607539563531548139982661243891663195742494909453361614160570646066450414018883729623596741540438737207609194381570307584716125121830704005504424500876986298490556224270641782716500401597979430894044819714062848060524003887516016517831261497221629173684922219929345806594171990795723263756226549286077633884515393993013830511866683061525840911395657826987550009169561341345176828883501997490053852787159087363948302308099957715753528672454187264020965718947023376679087397451023071324443154043783813593450633443952304062380281492313843561651569069782749214166938574438605435585539281130643295358307694297368449891582806853001111603528760113341379669195334047809660948356720195605019461222330006107224735936321481523829540160056402600175496954142283546871803557762341330717889603833278409129239804484878096495521593075587187091419381216135432303905380746328190752605086865579118917344086375974156363535616490800102975866398677952881932917883227435124711727706271426506925562446283274006263535565229875222384746266490541786117214679160632345808736253445836366143433850400952029974429457711047954795172903427502637543360598654839016693928475882184192065579355013219649795903264906459717198682168830415619074102273339820561090983938648526906858174540349052355327844460980917239896031243686735796793876740230992151848013063509112378611767219639752285813828135571614973720494575809954422122707724949640159166119532127489479825005563232251047819066762450193254926565707333697893883763460821562592348170193609698454904046452674418018463780515095883736718843764100149627882542434121832543547741373531799008793312450825276710752371573715830689731400498797634838849232791217699588801070458047786061653964669805025115233071229589762221001482333831476023259475133502891655320705004746219056283329992142680864246649738104747465362197060394355886705598230669276170716609936594223177985714802534324730113511177239865515545223481132751655014154912554922618932865748617135175543243510029900131310961265590769773658870939858924477934858509036735458110707843023034511221149987593162704134969598110846443157606211189625014133127203971979113409127383829843654526963320622203571915684002312621852476657398581946883601629227463605839990952395551541519401970191858206407387248306918366506688542222320911996833072406257116789066668658456408750059708856231662569043528407822179457906304867550372495359687635836837778225610325181149884003411679196759210306198459883413563850084483305902810114701196233543609962060277663880908152621028697150015746660206816032517200910609896507093314395438507193123413012432910828294659426384083129130098169678262230182049296124259628737462450957651070753752322970794125361686806711791000166872469599260917838646862558783706791065885983495327190924806028889164399988408652517845638980225082954821002754100956943556519410970537606472175291493825131902006591677946831972886468153196760142626240416814987552456675087223929372998612348628843468728179495787381064651164644678096251264929146066080946234946044298646737516738274299769662744420276903321664715390486340651505806570059420085132061935190966714381301085725824035763250515842579646294771471221797438637846139353688098423674313942445985579423026193017517256809024736557161220358432691857012144618617867928081866539266866685279477348122839012735380468706624502175790264460501409634423538256694729168733323857641525990683551253340763722656073235313810109037869909375754905785942468977844388826170231269239362715135168144191822146885245195772726954201691203655173258737610050292148647679690682662149164501762233693485519990248707903128903238459807526503109698014972765245629841329739395413013657896244924725951322514060273065188980965654066404507443582988335225912776399031167032383133408222638728596197037157958182171867710275957079375804986426566168835393355841086184123392065719470517976955678322249536813016982130115389916158211624302019204226214055885993786506331332769129733649907080967383604656526934039197158573583212461576858125385759734074249954729527414685891665867727837322176172375999935602453943016359425626291340850833166238633343592998607199685803984678073505121903314611668577947724144650015699950447370282964097771233150987930791210296828646493738875253249466011749012044664134920784252174043580843006481262303234308429028165060468179117670623902237066670465229450831107663298320124928614390845137148071922507043666591398836860931370079822907029874154259738224024650072269754885127033744978695354241780384578032950953873335592037547837208440761680438295473032092658896031962582487607572998626390402815837731599413052790563658772764162649028321184098151263833622053921400475662220578846280572981760518751653522207583179488051652752328312094450583044962814797848064739342827192619500138164052295620675318124937917274690078843187742550977585965427247749400448154861903713598192823669390994202575632401747612636623367138807838045874226976342160454564068395919835542369638916962103784377481798608044845062118827708619605762392582402738896313423310873343945248591595204202422426249374145222346179030365755844523165182063354141135998909552585272677418145181197780543264550086394974381683923359352826586674121822090276103171559637238188422792787690993612599568017054652092491087241138833749349098127268519560129411891804315521644908042345522224445157774361300656690763111034291777685343359946103169217659434893557527252801535421861060722020572886270040046116770998718434671704021027986088361835249871085346198616677813369593286994284595631940717889240604668754219033782983791977551301037334473694780359463300081201703271075750822500348838178613639334056545829113905521654183248720654151180343616734318493925924657040170945153212168506597282568430383353621891932081926745004304252561927936783485141706223399674103897443109530738801259644576848822059726199897986322741089389968227207352959303589103903869417244623240747382529161663064197056714242124700714723923944001332727239915804144393729296329546973585661789523998249039677837888516699297074525169834375685897991248968416713183858064326960150213317192860533438425502456159132025396860707621890256276191299695417625149565629890298980673854844981899769712388927562914695004648238144801394520989483214971468742841390758294342366550604141927113687524126692016229065427378790658495400951190791109208507079033534597703886770168632787816340160694339902142992850278798030897693296243876285007868016337061135972167768025641808885894161692723827817688957744300948090798691724881940391219714914693849664182561897761555305560589107167718296978357363634527185248958549621018088177689697319159559760293332923157650200468653632238462016996231134630208409932486260734935859786487737146885170829345696276397500180770679624942885035952162107753362246897144689142585507438815021554603699589245442372751630384573037807764269186752420422116578900078232847172989057826066170320339149307626301370298857410453132177926487871663756188108345929083149772597687521731957289637951162853695148668294206721000956605991821310371955729022164784057940256247772221180826837444729694403053444004950778518967561598641799784564620627045393303437518256316789044564028712335834111533414737129765379938526308504747750440219324153504717186924983454822462018388937135743395056311641249557215941297095710362072221444490184441489279590347945725598101152540942335510841799098669675005104337646609584449074886090445196808575086938012359451677948513899779978963211911806438652502355343902935250432395051015680768444802095495853187821886655326191885463071787145931468705955661082795604994595116420921553576083918109966621583000155994569305762677423341099388940030891939990120199227494765224111862695245451103929493051115702899269548791326767429033620699384265448369478231731824235344771491299059084701186340414927391697691668365320855624768450220623691245592822032972374384557544775298065741990155729601346704232728543763611160352121658650074903332309285757506954385470969319152112674440781412442242322795040505932658514425732684199408165784151884697821301243945077860280473184170093905344651403913164938455118250873523467038536679008726357370100943151834121933419257998526464267888390306865240129262844119303983123784932315044649632290834761552414038351802931152791587049184750154346488848773720097028470897547737352822036866910706351703461030195863619282847974945077430733143556552135526030163732379922847564651113852014116442400167230329310275437268323884400537268366451085130542905089973462526077726424605082462054907609667309127602183538504520659650866182946766610387032438024718337270339105177002149883565028236436053152604810684157403123740981498937091362766008534764100939144916821299930895563077815082779928845273113720116143949294364277461494645057129405528667066587570913939494763528377559486318623442181724970148626553883981680826574422301841212530437727122990421557637771126157570389249060412094994908641530398457609307976111699446016170115514548831499829690222116722925507303460002395900468681063599550760893918248534593401668542987457213200914426079082612003289386910360536536864154589516514101401016667494654165354081224871092895220517449418969820768864881815842197036603532380112340545860930414491703597872901786198111998709573689499733017944985394626013685459223446097278997414792128037234179480719184595347543566122767901860763000440829765129980119226323877541190845821640078480362217334849215594170624714721334761190822012435877501503942938267664113893679731888893787045770933239460691385488480305094414923579314398655222555459932663269577288007468928065895894753815500638764759439515601954786125308661277353499782270635884186454655044752519885064051235823088178892444444850309934849594816714241547289911152243808566666801292595257524414405301590911340262888409832167920560901267453486153365704933097698357729023165091947620460638747572977623042014740337604769112734078627445301786372190458714514810960553276496247031715260801548277689143891196689015590606488188786195965048462673121413218932961146753757832193486290514711440423763429424895443533844193932523192111049294351655672645433355890354003439988092596345373352930748356261055183724270043646756755411577301893015024680190340780992206131631216943778178195652488546872339414389122691841410745135284814340177891535047896115924720837705919297776768918573276438964585187118660740800928119851162981326488945729631821449157551233434327215576946471519259687712656143819453564659010014686501240652027282141092979225103758315802676091627445612165476675687674158731692205638440194321006923192768466932631638178581636444071634814655862535083126613642013796345389103797380066434810104774371957101069305360742322788522863518279251237361386867478017600800728008969768282092742620639605859091019192559713398784431929529861494299518708433628960093685205347505639546201220806646224145070160247503505696580942473485436006200278255092590142055919887130250449309494356550516182285443104409708859261250727855348378261129469786001828502340848501647283320042832345539100217745489466189915990776967137128095376364848037152976624028321646504646847068548683671361796634130792732790204320833068825329815667047775742735465828664921341874205511332520648872150600917979220715822838064892535047891709859076739845415301452478148418153184045867289632360502133226516631937865663977886683763034740246506598314849765439187303711505196461440277524494344817112736729042126333455910376891983317775194941414752873752043609931930951100703746295422740151322651901575314350767536789441800512857088772365935666805243727037888072743642234012071716960919087601897691814679151989383453503573120554037701300567246783873203136691600858456243606453159081343656126760766551172841708166963875330574476284626414235416191246090335780268455838910029785485680444467117764147893834055031308979511000953488925328954023741114864243882952338187320299343005213053121307399452625352104438089722267405094547494829256583664380487265198753687573087755033734973040164810930425862084334832699643173611452570946608914799233277647129942626670033180251292899614696031060497081255640871779703024433029264466857434565844112882270917280064641965952869624103222903366256197802404912593625513919432721677225159385095528219177856918999865045298759653888902274266906362197774745940537327051069057081152197416117884710217914756474897921851618566144265660946860103529478387143981044965375114789924215024960793894485645925811258246745086572863695677262098127709158538927446895295682931594173381328884746875802805193192232182880024777152679724023511987200436152665128365213601967264366527519834759988891819699194921431932227875367018009772014530482926896326349283639595607294384514304809539831774532044681419390483576910608638958495051855579487650763033088781935823808726303118024149467397137517372262610197265709867958558538523007480519765065523557380146853650483988663130340176509632709661556000408152902409111568882820112813248153187606128892617506041289117962071547451613904806035363633515932128803851175140570334347879910321022510902803601600285611109578173963256146434798762459053547454710695445126100570177072889555604899001573016983222833641242926408415591008938210397251067018357687287013983116889742584144184546497047524788177990230819660841448030556364304536226639950458574208411244193765957762517679393866249655757609711957876166772796597245516519559522564279803536595765640433326907948558045088758510499437937876569011221616862732411940870607575914642397567469502322635421531102264434851872297167639701700373005125152510698761241361890312429555608138868762100052559863045335275584050423530058389179378455170901624649147296194777713860549954500878568064710735823292704992047638135689868167544096351314221683801043367880369263496301194840330481769047513488483700151450402430684509204512946958808793395332545885422240203289520853648841141095880290198270798032827976078783653051592963189145654873710230444958816359572267514954680545315696827622392519524954444177268375356432158788433922768020362705806411460931195017568382351851418660856701550735347552676504865451072264688305047185451817454394582925747824284014093375791850284960370653121042512442463153255810123245227464115401699808483798878936256705211994232171567601992478183707006574609455416431963146324246371176434928890683060172499062065492969335138870133017532577830736774610732470072086670988740279511921076414931883145969794074826752103086022563154994869397740358433889805202057945630791462063877895883903412107385288281369668940223653621137038490524133865313797257764458616343642139283854356019586891281563976683445410049868707915283660094341055561999556370772037455777479202829814900496499268193498534638340869038776279944044537642569888140662083784961409144567747971524039647754891570705195221772417368477540927606788363248123550143083772422782958056558998957671990591235143410528939916704161947414493987131651379188064505570221814122295575136589966133093501725912331839687639441589977801307120054091458528017632321397191427290000032641611007911437360324668045599694233390565983168797933230108327278337762013197683052629933408101144421838627169886014047258096714024114633057759938861310728030531464377093252714444286448900392737640100581739730444426201376359720054210517572884885980704206798570031189063779714341473446091211010548407758261134772246386066299208866004341354145205805506313550572409572322204820500753235328327431228478921619624926306783397352402860414183705952856649575469682083510162142306149550663888051773242766400983610743831380145241410083962966075057726619401798451273260009309718327108797095498481285308713206174580075193305248871615787227975474245204302007445361041375787281285646131682731973898484777674795557802110368095921423665112016271244777253778642081260616133652693059564172915356584400254524664582610154676831459584887024939002329404928372212576878157370732992978338549641284009005842016197853086632912134625256942799765871814426619707988562575793159399810569664653134592600406153277971372027635384306375134785060855343159031991651259936098857733354675971048481632399769728811643384458126657527675837373617623466701252486716830513650180056829299579981850374439219936854747379680961430766616587881344870363655546948444038484401419516114371383050356927897426198905408121928653479591768514107985034847365178849155641479341670077099808792058424040335515656352186089202530350189456506663101433402347716098167735248721444443316241185842926042738685370603891352691512279519930335932557961074628986095480445480684401070480038143709317976370642309816085598175418500832110901663145989449748936726767324656769735815983924384883553563961910221956143330402388647201735244622359544871336830965800141657127862218361549464742126343189100353398285444450445753460267717059999418629816882855024373438992049323298704327106648101859044001476740831524031491808389912889403942915872778785757074847480537265238785374007037892375601021999301944488051305092492534854734122078012031688488759120005079073070180601511690272310313502967833548304149433226402626597633869359638720766779999392170240855842497149114464198393588075096158546505444302675552720878298619168649025865764365594846247250531973423520668376017373118553062721201840470330583328289288886281792843281310880685896228154448931173824972810143056790904773785535702415460331603431848005578519976227146036070390195620460624037386662847618339517094485154444148503416314621530147691347250682583509949507754377082443464508860988683572361047455932306308474686926310829275067912186917025595439224981132409809501583791479065892719152215423652875511936694737706873272972528190521833558610669509264065857304529262045762617282876675253802099702632655095598021649056314894218057119331140019855343522884246868988928286741865526676531850631206949268761460637833949375699626868681811303782429922784940407118791440677408018868516676485716119566523893291253326604932976255430680768973336405351084733551986939582984164427791269007629522671334347218517761340961171742366938834117980440288334718336724941727070589750062568028880705373272898398983817196837327838484278267152777204427482357241624563781459608883290558640413133121021845508591315584516465878718188536000914010283036498995137088839679758946900993237226899347890444986453747011900502040112280597174412348284864361013015081151990590980743788196637507674507851891427588225648007375366943955115717877771565591417854049767771463072956000764404453598633608137433338268628838220916952548084524336713928003353985295698992717158106281215558580903781769470250136382951257141671031623045258371293898139765626882168138179859120149454701379924331534161479640438843574016154069534500533953470507498892675210587908845453951117443861543502764747464158923288838943100313358094813362993952224995655035208043753063940065599652916400102841393169914217284700790439603265556737123367937250139135424764623895240896935223847366529464981292526075904481667857215208238299290059043855708650310309093993781531771508447694299178631424558788549111866911129884082980918437634987300094702396561784801737236821582688101661245039980723183090583163969362543874789924909856960883088189865132297829018730396056886753687218406940307942487111522931230589861634531900044550112809351637664238429323475349696158819713639868776789515087068563629638607216479207020325534805175593489393236976974218215350838840356398276710294397746336007576114173472621065819776998347864157368995683730096577181128167385895123941569553225348963287435139823660113300439581782753009657887937370113783977409964914069497446773774810172097718061567000816152302091772401797098143095893333195311572404307868121486039657489759809527193717658169460174121120057098314304612409192853504834036875635557614300895431220797943972553725380090696482262443973777993570313711802736275494021904617169377865640022363855617621329507525225449549772050082064267880235697705309447501787639230172969076162747283469187485824950792323906365509722282191744434788283156945644497279833071867412588392724597306399621071346484378156653887247285737780380497319363747337753826390852065762193097311340591849815093179244759034874279231178123793848907861374520674082498467701140804560657995908786316962474749946433464830224921649591519419765355242729234797774792378245603570115055823807662629634647679703440000983611488341659818431253785629749964757060032305109807199743412943828647089906245938022860318763899228745916932887839835061272404150984467581338999460245883884997887802030279095587783866029255364250212590435204386103631681816150166896918524858434488283579365635003373972874908947373577998930526457615887217044301285644889898426899446253799872935092773613457582910713548841729227442915726656934981769549762372103161668933153300968535922681461890151354832664348959074946445727043804835990888529533572796725313609395862787714606156587520882311325019862323533497143717973430939541029209570182346155134424821623820446241063001545130285207950936041621465022915520246784750253546248815250224472606243525856177645214613879074072919944243487121357720618391347314896338057975728158956894627176495733522539217519209771704612230223628126560900275052960439456724435296676660618993954199196355603635219782059528217961506406273793229819320668987160335096011298795527665269396516193760792121712497094085276660520775968358305421439244258367399564790037454646695213483230420847689136129955474901787748056162769769079602574216241236217494212010840720595455163356334732058627640511310645433517646305132880063385264592386930394064906147728621710471647776282830730981521369739083360091445479079450801981305355188376827054165686251023697813052556207213005213109643844046246425869677334573812919850490417317194971097788304117390187305291114387791124279814836953863785071050874064331054615466583995785313166978675449889967940911980717793763046915618451875186060581924746939021080713335772581397245571174956438840051708481935641597721064820298758720299846313732150186941073340532039760096705787131021090667558498841150722053322085319319189884404758580033074432707543530334936012860956432129657458337423802326342543959671593725396179633521571257298257531802320744998833308893189320679025025440193888458743776151871680684860203218432674111981030769081281806728151560986381709433432154998308942353137520278337446039567671343980707191635258216820194308473978011509889393741523981133600228106286088511302213854566721622684609205956362314979475630488643666750413667348467213304974663712544678235541414936542300018668308099606488516365053605892021137212697729598988858142271871195229681655386555139625109655513082962908514216755618074012768891299031448393463464250704740681766456652689971762435083595392388393542428032395666531084362824307957910581541335228128249969771529026363081179031784785323940713312047492408989672634045444219024244904810937738498243437625247225836996398719003507366145504197784541171721083714128084613575685436068746123651625534827599342239793833653491790178512993524229076052800981357665346669990187512104828512447019252275163973979534397513350182108504057468267541965407747670339288091523247560122660796047161237172774123685872501116145827824105704212882879071088696500624634074748592137551185738284075057224378747598913284531316741885923881892647640578486446524961692214225618772925515982264504123899578173705618076663889415065824132518331588832466835356166277891173970874067441944060629892907604709242378806943917050259348783520208483508766028385569707612795384288950511459458505951599464156260475374624802924822490992699449631203864392908273290745443145056602816700344971919503169350840917648227073626659857548408474001600830054818014597712453865282449359258041716550602778447052038382465984223129620806161125883100648673815261898765841635984147861676650971294719412814552539764908294807721432973854898316872916088578927398164068698731061518624072166614046322900477761924224112172655718392744172142066395157317224854222422349515446981869623331872261253692056057670791379213419340388978015345063578121943880671261609351427120624935491852482120988247460958272596222418415500339805529736736861538238071561092754273920652576170755926280140439130897790276958381236881340661924335251333964736220685783359626027525008695417767154271377816448838968806195379256256246354445933142147143857835358998211716825577698083519948791248941223618492334270035184713577801689690892918739648356524532684954959530447333264737601537851694818684626620114058824703178109773439887331113770550980914803611329559683281252148495858448786518258701325405025992663227808160133591782464087085879552434137380044617863565436402739233169569482913517895735663847353713293002712403163551945571847556325397691846282011843188639037581117650575029286264444203529065578535592822413486679145998897061838419402349242818021283291052887712028224218089761260834445670520287217875389054466832388836208351766922782150257762602688157337816103932336440147378015465738071684118701406428716177722886225546388079240085176045612219873399695730025673230042144898540691639017345461308054702761206720518207551677022860143216823779747862722278070095404964437479748556785592966472914891024502786588381176263222348213464192556572373491734662304783100841377908254605314346700335104807789117867354871775764578566707770590598606233506038078287240669221853229281184660206531154064219690605459286196970524815291398171079235892920165338075764937313042065369477026513338548710368278837967812952836980036087685744267950313155047355801608506566790866487272554280101373836275756291867898935847988379164090505844070843663986634375344125740342063957713452029283208567064614624590790150413001529520781868077602522452460431996252584721078601786724016918778523651603346237217753492713848237227244392761910959920063424380616305487380567407072014635759654497280940566265971203087613936549012413277815448421799386429442920560557351873760055941193704506911759494918616721647674334738199881834651567931332737136185962063137593477770519727071438874811176743329310476917353675382761594799279818759541476251356894065380020577897589995619908285761921093713573605332115623655421262034498545227180078264953864407089536701939669589837736810804840810837318240843760256832574884741799826382494388156987512938483945332517620374857596049112728696980108621107479445529337874069948656159392183772176316463804962986996810492248667343858343176040824241104725255587792999552480942894730433093179892911709138143308309462387973655213441200409851389312964112508699748818144736968453510750579690568902556606832066801148359659941172385075662715695732106685306182374389719362234648331681016598047611371238998287676281577016803676234249084690023120508509247680595456603323975877791873990421578337183859598783888551626084189908472456647537782728530429510719413270613880106136634947862366506799822138707151345651865721159161125425664804693534488461833824328301810828069240686928807997038348643126884148299506825333344377334477113699772730755812399613447274084754399304045194091166648655489580729549781166850350843159320231115639962191677901648293385359273808259009643166537114760669830187351495360294886338094936984446970299450509773026317930491674838912966026480816152457917620469346890533078302194437248645084135969513378560445777996040473661590178043329168084862527306835857868880021246904586507520511705331715018417374850023401378275404211001961972637569187359593251032425120227258984669693348571023098617987368412348958556494360965836357426245108881445635445570514481721012573746635974867260172009622171449863865366644254686173015708862962933087314724127672812605155228183022197384394144314967656817878896317043407766749312884862991993944340670482305236566761751384075293996633513707132516006460421047069614673210528656431840651480437863987763498119487006838388165344947348045454330525092355647345129022013282522236436338841949050709283718927964050624563402703740974245612954159692968315403962572504253631506857173513454384269870968385644263111244723077841321900719338610331087453126332888170001632882937896323503916059688846169409349835242387671767154036714947387614522632888557317707778337758732648171256414011820260097789095211930682219010353998796460982099273222493096912837989504626145586323444645030268127432989118931488070904636906676719622123812882819387206028798139215112128149499812946694061758975672589530738019571033554013392781612299378645553086511568726817974044213083457327305449568907182302256348282701127747771623591446161979897470199662336448674582755317208316704831409836819282137756605757068882035458088037160458824043269242532543371628566441050317714466451995224637106593011665911230614846678483792044983490203247596600929586966076264316100302859860284451078861159897030734669324183201281600182210148144575250846175623422562227446257145291978953711443350830968757454254833098053295263672683222267884004731230061806822882188920488454386011522214316855693092741968805734157238928361010237546290943723024107065425030096267273685475638743627706418095167396947661307154831891498752423162684265692912880220255168047198255881284440746678773354811283169737681655631350171967885417466627196459282962524363943184226678430140990505914247602552172863201199888086336406834455402579014572000945727777109729197474446717006587546616797576992384129903271234879502780938844192478967889722968532844892921953132853984105415351862249857863821994076038594394311796869943425320634297288330508140630161748535974935795440362361092371857673584046944639093554947343425627894261646893532757426679897271995147469056464538370403718692355574509701112248868756156140361335519558577009964107530427202547116824419526616032829063488346693170480864701944316908111517870269769774459741272349261579490866517012718547846815176847569623804380992873110664081609864351144814547899533652732792737446932387836159576724760258050138428034139937522726429438591342136655337143426182466312889716259103492959068709694721372368137807752949509907814956707018877123235082922145977766409514395745411535614683526178187726977422139461896425374335456380313720073105600933713461206674600286756021153493466534347451456285446702691553291841120792247799840995774460494851827135553083986641900388671940522532083675774299083453237502776579320098008681342562339264594198832861504115339222499918935558832468403095230671559251878403027345932771052472298208930210965887614901661140953036087142070168333968767564120845272481948188484088519131487570806870869453584884689936027490657708612547696303367843386301178294831122169876024310940531055768921098067351726153806464698363663432115999674254480027291756275715951810847205391507758776299201161315233298367125548277375895873042686074784342839030148050975652317353308750565206191809455039271873619869494313206919195729070719305620657790613844231886809191623566142799165131582282211225359726367553319182866794268714404452336574487438151333864420650078589673760862870586368458552381797690909862640525554744445464665843669297877493600047697990212163301350980420895350966170567234187907446295416899846615863838082826356850276908519717957498075508797464289888479674864854901225414441948856992481316503526423661950027973003015937112812661961628616523243754283078190276417647988251788215397329659286733749919372939253604406235106886147856794700474556025846092035843344010419843607547437402236448877943125548348191728299628784851275863466763234668205937870121622098764685977863114163165219007752605095316582697484025839738704723406488080360466570227283091357459067506142882411650734881019271867717386072277709427688378824321103378468009447743769790191197675564121225907436828345987695400481040175955434193014673275757524293800131836678302388509238665288683830780436027979432163766595811719746741268515637791573677842306717766393066952933090078140493920841822032035321697616896248510823633959546394689920477020759366123923361773459245452803781675011286915975108082810654320785609906274701907629696499096110715198408005534615631363181146568223412598504057064309706288131787264130157229633456555049995601953059445108757014186129994526739057100030892985845475634420937473630765815887960077023026025657836029556738354253065193186281706821054547765088847620114478531105429094794134662449129748341057813499553520826545037242172239977470350832394110178270043898659352039285899232767842021648271864865655151955588489215197838371662708149086817239017299549694807932529918071500643876387200591649913339264058366044437136245297555186245939407260569795148414236016258256914133349985405871093104623054634371506177035403382547169841634496656515489807704917665728764450812938039353028277766016494928773000466419052330602754539805184393649976394360026967844758436608291390175574290579009481365252843562755628189656886081239743122956818837428830915094762279839888247174365284461799356555697297015144113678083637569030004407744660202620101407561666260277243748220736107449657679995645505412169980757858304019759793071707127161279227792009643990240481480763168261061737259890149639976790275533150138193966036954286155810175426386325391460752282481061412638389923443465586575650540896861459095344719265750713205354406170788597577892094266360644086003803094488852493234846910115116101580710306148927222109349443873662709250480984713286793166921712785946877580688969697815529993244965420593548963940597737918873044944527287983696946752480598745656021888507169419631458509263087388815795001522508653340504645884596684879421133708032380189736634631964844493833184156253891454429178684366889864241992363261745821596562803704168303735922259201124615686717689823809631628006127256756820702851226909210789445109963894353480706480886150880130068635226246345633885900568524620627330160844320046482658594064066923743226465186684490550929551787411505251641746965886376159662842877301897579341320072279192552894826057878803686453422933569857355537965355337641762993547111721778820175370704344048563602425959892730531744786727368897160509378467661571443495635628340052330041145765184350664338395187254397938593310337352389328913735840351595004796502083856428292248376127782602098858611683304294342311114346809961622198263449951790167173172481704226289725290421075438239389165086129260511151297425841943878304309875841499971736049083072735713018743704422773291444765164058657659702312850967473161863471388768631211595546198039323969056121412469257272338640642554708123087450370362639677939861588593490882715057012486938626821513888292786369969452654472407175493004302375618001199482447468923984403709231943275021225935616424945461143992756728314457682616850014522969104581875791576922307441676135438375750418536184268776329411186654974367844551379592374569673383849612389266043605114650804083766999237152034153587451630268174573595787830777776973325518841400527841999689056275445909116700139468325833120744251644636363734427249032370267474626877775742179763660032489582563970109019122854557574684494014620304851601642877510973596688552034184410715100149446222152056220857352829741968255951498160450420580122467685338579726545214209971590596235396960085509771015254957392008414192209742570668399553324815773526688904222439728223549463358642545635271296979051940815697790880819645340896097995425591196692997007235783907198674471947475514498538394034467055708453569978330948224153083179781070373127092404637703481280743656093926852555369034858013000285258233020896449474752956480173227157501283066251711207960244222777521110870038331060870573018688565883919923643401663879572353761599122866978211423801076227696083501359836754436776747457725971633091358305160508616600236687541313070739803206581273822984006414145236855640059432949099460942859098322230669774900030487899421699757365986342507585877656080158561610510182162364722906506711565761152111649095451424918800286463202144860043109436354898810231505226847616222889953100459388734630076851020462699519561654965982751073574129094901671191396207249276891919213990646646557117738554898994391973567911849691177614915899721498681355040196755251032576105108809428081474650873765653272350741836932044959257036916017013099073763566744345063585848731660977004998345996342854338933145488533038121008162158183825807952237233812581805135465571349590227237261482283271378995019277900370546510507939285805777123001809085052233587924259603291382649661484541906912144744816853739314548382578681175326118580821887526250121705263356435611373760033448405056997994472260937304313508305666871678629163652697902402376381182188302947479701475335834374873171884507317286424039056966256842944040525779440114306830539545822962877209699702531883236582206385138136965632756803459488966930548534177954457869901242958002930441830191011680736862121654346822643416740741503102257631083471991260746189044339268850569408660158934772244193195123802431335455141211490636950867701742528397700242570300098644517113114715578646157059386711032275621582390458545597211606802693973356285120819535856466841190753101089746315216167312008778181383552038094705940707962295900011760979310886399712080589808549649214563313664284920544540211659238661601242172229919022523693180307633216829937970355791618039738989252871325530645379196069148339404338040230507646271575861287101668746409053135978770158609915483915046959519108184738852416959632178931958007654069608782980080718477856064628726488658208021446556259925487950775672319835996223947451951496819289263753284450661149574255289279327225575976227980907432039022275484036965154854163813469463979043451008139549869000398376217333321989875748887019982415447404175734459505566695779485874101433263582021509471268643409629726738304479899115349091865124431709507132133227483522743036232624227963091740249439217815359942544177225186814380296261314216877275222332841226995739644666268722694143681421444744007896092742233152253454341772225792238715446615635998525199572443186906808635817961638695883984276821627072847908228949480019636979294338837611860560678934415901455131898076831120570624327804252295654244386947109564259126463007717937438045566286297004408562779586709358687512354071412229525694157605750865175692050500023228075966296734158627486678100835018999553639810729259297022714310597107766614883508610113821856019339903129232926935522914403581537944474280426838770539284536906136310423957924217465036879767382631412506297737167629159465531836123678209470638553515000378697100068618735186871677451567639680977987566690515247070306752115914435202394965104815784486485580160700124980989220622049554248168593814076708408483093352266783786312835601190883696595501202106345189192684360862044883859625926579860584234222264704294886277430891399818526553977844663600636363960328479703995043036840443945768519544339718185953842194978084217128632482556213757430727589746107588245626934560377105210275386241309704480624264931097183304115699951711539789378443748806322163002909007654777330052381084673657713950560288298740466579994643847533927668641238543869367011216244196250795772721243145001392296953747583524771882429582954169601375336303219046930986109522822600403121180762991652327663460748955261013113033783139864776432878856315832207533676647344664048137777442973211730866293597884903483426797393756750906462441700287522845417702986647616444562797492182977715320083736952871963595685992138611387224998763262324592295320402162963291688288648598390135346734662306704395157524355310190866010735195014715339014597864130064102699079560078073174313059296153619144639717361975055583759144739189152673731038830735306320488866155866550885679046609961277882216392079662484698951774911116821221438449072509417750949065168484887133670410380029068731339212862754085582910143279825115125285516708909641572828754142310574173893463348247167937213353864524611001008853009556159662384524852351395095621802256276604372111403230453326827580549839133141328697877349012400414663929519082002654658258420510620768017824213943514788030472217440212690128078535789615756393103856564721064839437015011565243121601873064703937648773562859114703925787888929499915620004571271446810425895326279445713665664513067931700842894270074685374634191716436135261322216125814879596076922594121827263096046472323192437369306514966630743539550756329619274035470479596384901888551507767818769255802085454242614350223946257080529586188472728567723296520172597557793842898420375585383563127886230553679586820429044160552616001276980229305797058678611544956787689792761218065089185282890233397968815436060355811972531649253291699942976447959660143639927380689512459397329031689553431825386091599767479185812543918826312387227797248898203763276224881726220632340504873286952921860341463796128278416098468353278393988795939584941965898739971517332085872086080447910469002617502156770316392687209629564230278869519730219304108334397043290433165881453381631650292990599059483109991614581100513334063492221371018088559847512388208953638509089228224908629042704382078252320351007775470783947829256159044401816888602827505265280858359862352208849751365411909438782921206185994101348292288960560154549440431378382327339920015510699963701443670862806710870751469048653016868118279796280021506680747364840944055922880456244545422144057829163466047003184698222402291459916151663856918771018362800173192196876747835204533588317811239671345460272484556870839260502305882941879837541728002985652032263931239048786210209407544443309684309979210245436083645507223884427226279141915306793208194043108226224514276360118717284960612227714763672052046462172685329423952828784962662328869893344765690788429687161004860703248115167340515188159105505916012867921380257751134645348880860375919162241614885743337284046921196503731770700611094054285383790340841456393041693001500219741753409252502254490543779307328443150700727337136794747323895818240967416161636804554601290343475706335304379306277470920822304994339326018072928755287827623354177045646987270091705260725956190915483823656000705769037602569385468597660396713232643241951030396495589795979237340695046283722076547622963022130206566830120876913163932976597175689522806816173306341617214716128663464654419183673846332999261053585385745286197459253293214063625914135449968021757130980174022078347651696298288407822891588023483413672190487502103467278889000484065386681329269238612957362793103685338325815766204592155204518572370731767231235733872884542902779123684071409184966297600085999802443681040593753726774168396027848746549584934788140582094339208500029056413469692801382582910719252817215385795148318575959603332121779165959181312996404222745315026970400133427905249258749491493389918247626530321103445168906411756819899314287675470994898898769540858125797312053039529555260902248859525326889755271539491387359689465344936023660960693199852009447411395472199994138043724038906241447090304738640501559503905659189664519431210243243712372932541878793068935913832238166437777724303327453398553131700681621005830822712572491013069737453148741829798682240738654551916896662420583340163996503339087076256082417062297674863065952668668743071853638313026226958168741175333973543038556824597241319844734023134044415222794293546307792851524599496354914302715696221892951976473409652877336823792447526551152253455246062286337319943629112468315287172335399142568140951622141238562662743202917785487775240213099450590179157070806070817623232853660556934275316197681710292730847694985293064058380126277224667731563811017260404926304229615388681364249257481107991338999469529612418209477308219006695157728959072305117558489337624647137576341895895408433284823226371701155483898504999567843992317846495036834099735695366498762447695603569791261060362306111017742346568400553463292592446340150180678726562351873414200250174355949797169017436822151108629285590589106680052639807281281961742369819663142485655331313871920780402670970438391702311533168150617342512398950085203262804809471073053878540115471701438917244417575556198027119339172072376973644052451864320090278418179070997752817806689210033570266720129521341983922539065135963882173465650900783036930774816088295163865192685808565064000182988950837464205103401592674517065884836230812285352123417290417660411984142256796216114532227346890531590266105961453051697442903357895254833851800144723449090108784431631322506409993282891180293589258727267594677947342614887782766716304064720471533779370752857268663748810797605476124784501425018761496772249680368044189730666352794612424134079103577015840149136856549084597711345854394340147122823653449609330652953736095749948794117610760527798021249493893756486739096401119113333709884516673261256643652991564912665992643149327406979810682174815155133880807665915988083783702636821151278872416025485871124120316561714886884796147589654676248153296513887294393896230785298413581147289963234598377360744661727079235058679900270136979607973028192808524982152942524989472100120639311910387391199728358989434425998852831939244094445540004596413641126710204384056511888437216566622979782614474309491194486134744532091218440814611195955295191063801291242609518507164683288696991330239131612515282105705593125174130206767598771459559764504363649519837819742302128371749696999064509687595632625717723037759356193105666177018737888426593617334494464258294005602910431407269747757222499074386115857656664478589703146675238679076104569868886632075725595302239069150057557307061826127511021445403274370526349665078831543212936707160723814553027045434463217121236846928551699361009512280790764148914626278647115942682418325547257443359777718959020825898595910239541064882080833588989796753298971353311161242375001085207938430319233925329573542620860613276596685500977856484593553901722028273613030728210429974379070686244603023377002652491068945124718290873746739339376510155956606312301536464190351348994103469096487575555396342782462628141110345392545294182838207729354597638380814551897691411476807065808788175274385676122848434539011302381104243910224652764999409603173033182130961504112937045927958666141544320929757386313094171803603376273917930780330765943381223956497134963024402327064982258682021640103315945951656048619051451833597296152417538141491373926280998321162917442870694294791416342915373830203210420421200278968594223928827380340773864769953230586932786297811979364173318305186671489081622007656073117447886110122646539200757742219162753594809277035514900865538605046922272551842591221260401442500522878774897489428404165575149061637460858360997131853463525115632716281942450943330830749366442213350272093998221834429953830619929329485389267437216947453063648569909398823385284185106002150324581787791951048718135563774668329820918980818816333793790358719699447320032396587534106107884671273362025755456752874717398589422176189334410374870671357750784204434671959763839154860993741682159698373847114035579538242168534733255032982362940679059127314805054004353662460617394418542626236510054292512699467534477204550342583681800921770054651112786738219725218472431954545201657638601327486625461314567764234628455175461238635387416765178983960400808111153967548131374003069761579468900463692925553952856203803543853977206173693836504622142700396299463538021232539843689302185093452990324980225194755415855240324961961310286645552227087992984956957547416242173581659214600473987511109937815724033946812980700849190593423229882096165922080914025851077702394019255778835722928935135006234678354532728845406413227150684379512640556449909976752196175708430216388640585441870515135710324647353118310780907436675797855924916047510865939298934683743241784051274813082818364516210262087571481297816219030204522801281323057478233312948384380254889010443152574487113851925734841627048852929615080309707737963503439445817880414102432464350291293050804675175608836552440355758222563211524821652481133246899635993399511211834663086917618747614703414252021696820079454064608089375853768684621808353097727124787967414721013188551883608292743426929353841752678711719272037470426903631476532461079172113799845324776833977803131129390065142434707780734527418180306353722857558275039946652684970847504698789418693990656348562612914403989574328445459639966702230024975972147991244481125201088911170544043178113708124932788361098985598401515841529118417116495295434740519489113040721786516053336147553631303992575602748730809468495844663679605780045538827980398293332872003106870236729788472183275097092584793127273972544923972861841659322963723827362498233717316134608990250894218163701728677007093160281846333861366281552635792124111212924912678903135090658711378300347811062844867206267457430965598398350633637590633578617810052607812204774628476053459250725558848239571933959096461608121632471390405658709224904582241355359780691780740889493894155248567669188752794058373921429808347458585641551122711673717504429976226170037173139334444897116054642315906222774426288430869971491970027536455756045989973039093396377634993047005431230279099405842003416670099615224800662559634850091330472328519008673745121945906765524014782942655331518006590727301610385380856258341652551951792723349041409273662297274456654557508847698851159921935629445560064041836656976171351757800394051498382744073746417999571053102081152371103965996855976859992827339264998827297993183947134274874865733567293512938321022280306398206622613589451151130761511135798841190463733633711639119093618621290293849135248741258358191705161863310029035490511636837303378349622899395220455917888465481232808315358388874246512519389394501762823977186031218197218184793019621270169380398148938320297527004153943876947350994844503354558406769704885120347912101760016611840968763666361987566478606092086293204522282321280327096866250945820830030600197204893070835840979783302252255767352348930947278265018383814204877175680127925850556963668832525076864715689038202983193383417518626341975160165831919718479019520162547909247804413837804871516879234532225804717143743018692092820696541960294416310688999666113969909591046070578169207543297187092516585490455302899455323870009592267639231432717528677032778634048730864955722430286464716766583653293957175305430717603859267391958377254454333086494941458117814197440870730762122232267459344773195405317109467864062226249607321044026990892172988397966534881481800727507937067432639101075924419428727145162554695870391155467136934602640293594224149603111839135880767590738662595557280271861584035198926551027505222388955488150162520555945240239612030720154002356657744236806259526077421807653918851504861514316445489094048328201443108182390160940152079022432659435465631701103979991983940585661339829003467270746070361049998319719523229336250022024221882070695749972276925054199411882690596916182253768304196612751564793166837632292901787161556848241081926187332961011455008362153487140773038058545988424496294927766403506688745159927649866223100629354894135027791531975213899430554459830887806908580199524428743078794866503527823635089222964547859093140320500255711041659621490002745322531671638308162821873638182172674271699860559431276479136509202236701581224905247595132405604760962103814517180806796581544618587520863221476439056918009936827874784906641763134341862539053605988862717436617866420902990684779765018683811207280352444079241413224742357925357193120110720001682226823748546682500439885070737192437587396539717127780478656514622055818501996818093589502330356503966273735074582956658726856870801731883523857103201423965656644172622354191337520307900970001756217861751204932602057133478280173204743483657267107222787011974405090415831576587388672644044828246693474377018238627685378878510117688257296228543468870890981923939721284030822725281595610399259543594478585353294725319370646662815503433206104564777133865730840102719407827406204070337373100688134485880475180913268761042787343777499026981900156800650048089968230349524517015275004748412080517938182831208993236606528160830609714149016931187646937918121993906222626586174389919660725855748485517290995293558032517257185661535475265040543661184291142371882328177417939178968969391454844027896908449969826900262768215635655887748031663659051002301284743106551474932659275512865428144170259824522717939151820661906774456016114052670430774220273633881490481042747042544391835293728831648320288767440355598259178547627516808366705468259009770613535665639289578745065997830261511243470318586034441456670452697641822868165035249047035547146049600529197432278045173244152226466272014790882126610421153581089117256944466743458348350756411974834409940490044002163538531087274223208528302361154763991790772388212494325213281773464527351756617622922327218407923936767961788937371535363234073255326212133497197189118700240929683022050356884434553630654242038866831632539961789963658286105427346681459434819988780657507560718093140892606731012507224038805634100028217946842853350932635730478900062046176642885284913830695549911271557841239478409141736126989079035061579142042676821901116190087867183099095289645425442678969114627079712731534165591287964351238845776483215000477598956879449242316841316071827337573126200221346392959539939640678257812406921595197645255222498391983966221601882717071026663530538361830757551016970828801222982119390863330367218756929747303226494353255036508979759407493470949040103754721858147944691462366102961065497038470637938722333398530428893382365420818048954470963605245881435910424288870515058998964551194675548508341917154630246244094397931624836163594325286174250652876313752835747638183109481332352710157029602178349734492403349077532875290374925122123302041068979354736166244153623697125533207550015704008854427210363493249901838948470815400962107692582022486780210835072705793886416884862187839783088667670880121367893349127533827186082156934575380107534550220712701887894356618067134050564846061827575555600320818625502709743205814889041538343000689271418090010424699978078024753667288583762590549557446949515558196452903690861146464043421536304020654118197166752362474971367236734822421578796890735188937533546404097011668209668839079295371044542969778782139606579013069144955046409828331937284427648827496240391538867142009584854763672979032714183143893031835302858217090965607329897462761978523135957551940509603205281867853345045779930066892501351729986866295676895712332732455583268327961831989753084053468051378767402442971592290536915998282357098668944430885796411734400867687154757241394006419263533391538988895881877224969051463176313214989873850755449910618055232048202348941163989198926441039336089101213462399226556396799700977653909017076079451790990521246944938111339090045879976768530835930938457769538874487850290351150204886118204320381006460021403407437993448078517915257452361349304224479226660855978402399555590429918404608826977605758477572737057442508208773310051342158949638314792268927388431256852654354710334899323309984224004497990989179171118397631512008114204474971606313793141862086989942745606406253416991906059584868130884756527870047486735648899405858759516480985150696972559603374070692077495145967868407025408961555018281242562270615298321658137843254140730198267198390262603523593290049203689844102428508543806547756734561024417433390516873381420417223919129565712463669570053369913780325612585524124994874916170956729567531808519603474645684679592422965617198861151473099849169998771984534554689830383767269863023772991040985294845683310897368466047538140462274591471072244104623454114201844859961970566503455528439777598821946817201200297841865507270080788888301529240011432635453807561981830542148804073424937616407451194870033982872430796805282497464729662930273851557940636473492058094212909778477145616814944553939297169362243109403147688905949607051046264901454737761824283904238717154468402375414261924062682402618167422420122945901390571453697863964002118184111966784278659430386650740502710882059288430320732652559386109538017931421423063740289628428505166861578501498200895948909478894727496501930016702672840966076046593662685830893374166456445902102328090819611019065870985337089259897652813818712730343732148182691708754956476210692600011659339952948031761326430058317135226934975197345001438864143880823648292131705906157800796734406765959022490048381966137071235217921838511514568560414782575638140502318415010260740267551531269208509075964885398898611078174043403522693231478129781791351960152001116464299789188622633062043168641892568663608660559906434742732059759920408847754111275672931893847600180654889458491719642863241547372880177594449931061493542548466769440679317861067259122500947239306149365754190589147344794875289845168668970595797031551873357922858192748498881494607319488944518335854772738940030323613941612712905831725345776937970357864636733073855731100597593991621151024136712111231073901717314610160793003749739979891230598338463675352237946523602500419942476895198337356472425422630226534015296635048827587303777147102704427733815353973648400644153253923785380681914193583235402755518824196942732180049620812890094669375842028585048302471564652504140679311684099326000708464259680717749814476059742340458492651177871190876060888404675636308914714967599814890151237590559380453938967210136476810253933981686554890015848328050439255296581964025167867377196124451327357744130279690403779534194961013740018048991071035648504182677319010760883339800417190732951301033376353622173876714522620963202107716546610430970420244405152334088768922929419084290477093894650095759310903230312127724356502117998363928398525127937195760258288056103727390231859453201285601271514095593689604458061279708875205640727656174430156168373292334270740180266102885175479406863607862865344430852597435313593888143131068987729074809295876938410753345607877338320604123884851558666258322341894481907854213323220123484303495609026309196506762200584797501877136062652278501728665009689334295961845345568265752329858747816411889783225628094635943235229550526326048531265536655580286361716674935490792435944994378469194638950579197279115832552701432604447994494664517180207587162716403218967805669476307410781472136305857362474235401321390574873902600870532571767891917335028571295274320529650001201695223483185684357100634199414009035970516323017224281237902975428571030978032253617561306110556798117086318275459828855983119593202738292757730725671343094628787430461608776731509478033686323218593818857217753086587630075988939483222371498472737161641274929705971523143622766858467038812105101638131107673313641696966606524553678258872707030788252397478008884178598837145556756578955872694926589264371162001016187601291298155921267357842238408615436546976479378940632749965924823117505758521163479840900318166366727594697079649321415079491370569078682121119103680654695451366088509336753474395288651679134549442896014604167321190231118337320133886344454614593523809153676422779321474239171209271633410586605345809764740769091961413416913740026522431233772100351615288266291806329565365241433034744796042523916913923298126937190421572751229761081864800214763280124449505830194716932930262830022991472343224572063719728934998913760107112121560811477020083755161809513138303715033226101255601388287519762332630954411574663508995069754509239230789449574231113419966937753113557364723863191585201673355544709296532501866793525106243624983955360382185278686349105349477802140068994428626757693803829326027585498386467619795785772916727320446110626966883778760230576151983728974378998111754094260035614961634437255469335027553114996496263315857996120635010967105562416280093334850556637279357716471208214398444889551802482862361808724924315586670996115694558525155666973532217045588775609705482470589388708876125372181881707783724868628529535066714489019584654678051621305208878767597098029609780108924393691429036790217410691273807302945994583866386646865494068106156687130061278659649351282403847232305497862867492465499483809001987134595056202155127959067398714757217846374343022849014639308935524663394047261862230541836961377846280486296536758400077893999053497574975161534238025809187091841914899821497724297921034932156271057652588596939622617083598728621492841543290058677153524237820611810257756988928382624912091847227411074528607961672883507642562977973252846143161271262807244766353455222719030371024956425247581441164490066625498216434743555467800354734735930237348193429489125726278417692758081850585585074021312010533530994058597860833603982999405197330852254436507870965565649066784722317639851687632720064128190283828772589997464488107565656301017392990832559381076651872861875838906653100458003712552163507997227319385916512341648867580337392428764869646145047905580252745079627940007391761004872449790119330845026969722334038378060086440216845593746155176497318957062427829413066397644637483710517017675076324819166750693338715341429492016394678289340457604398819460944393507979566610045228909089240002803802205396390347039790466899132918969698975502521345726248040552397544601516662896339428531556911178525645430952750106407109916602758849826870028721904376833110688032682061193335141476416471963850739543301144041226831155526384053771223382889794579275152529696310969718859649780181238513263746504213060884185992785670490890425688054664265857623007452300871870306085171796409438062420893805478339625313572980431008973911610521234093575948070393689805106603832211700862537396084392820236136464559246942067918234729902560953755762053239647964321171285061204298545221532674041381735095950808177495052708053275783895869203035293984011059167398988844950132062836451601313800047367300835437926230967451748625951217874782774319724145176613152275506054659695055013497673735452917817166521775184775514351266199804085405194438969969757043863874965842446982937880415034846265958290202764043537545533189796608902410763398375419580820007930615217458019367417141842789922466613019875211645624300810997700430949608643867470709663244401943591781388642793103553972083884127466891614264942223045060554393142416655382171152829798386719572078595164722755514580365370954390608141146020474459465374151311041452596276759977040118511576315501241968509677403906844067726233589720583753948044817204190514075067718459740982240400281843196766448641385925921645086222937309040119755723091368866678552944396629011762715525873095261311048167981272184397365146911019480350980930415710339385586665079950851081257336587845265679138472371869606021793083344187767783043560625242250678393138704470754540975892276426602907887662971326886222276933094180014644991407254918543229504643972470484340252833915838126240151945473281070166334066018854104252370980180372101121970562548835585642607315343114574121572347647746417022236233717673616003299780096288489622925085518704252632896821864920547292763568986235039705535736610867457162154161818653593838193870861366418657808624177856363741320921418924109922455137024530080487731690364791029393042297476416592368892018096492701547764202729806828778024622795962576434549221236739752365075974742965867913451823595348683212130288416518539065294519324654714542022393560970893691712992695914394065051873366666675262013167974599298317008805720702551683606445796975694037871714243441153027578390048091667317866408579436275466475473265235081030250446412689336276911530842995522333229119566339333146665381260738263813961661566577206086714172884446834013521277249081483989649336880010613905654488528822457190563622620985018581530106663366251482002203046175516937961394888144667533042525663700507306696953899311353893322785411604975595937389727760590815041206241675544422834360222624550347182928110265923266104910702134088524637072172279671948200047435952632803997332578745789175878745834524317904127840149658889239829847666593578209288732416165831585579945294162937365795895751932781755992550258454560564171393468339733362657262539290066195520406891092550736860999681163192317438354437162726491756326667460048711835271898667862277020798025322789414570538503525148147795310055444446723885083450405024602350376706454387354810511218886108277642479015751691710167508208633486429630187680483393673937285860848687683122775928938678795783015948818319234417554703774914653781924790175014434025152394096036227140822965650846823838916461043313133258597742311112594713848498217315347848835989269891604873265892366219022208840455289054148130086508466322521325137444328921613306730266921342230189681862102986685192507098077593415359270462352929592997388372903008014272589980969966501153380768704991297898575888890804582197027788111006210997504011350435679128954215568741997238221034145082270212150984043852566116484374125760639894290862030353187796884150159117257328165928455738187560831143635770826514537384775998178486514851275700786281449744405039698066326827679202326971607928923111538754642068381971542180795771422620028519945795243051465271541405561817134945565119206708231554677323090267625605827247375918491282958257855439313201243207581318868074654036613061572068640375069952078631818614199304817082429893878896924141412617342474890927533739231231744874306143270096762458610369368655398297861092548290307519799777766096969969822933357600541301511511553312510956668293669646458334964266159035803498939577718996449325556832907711417088152104745598754242559752444290934708915365899293949997390036992620067570776819076094442392492056677135621234555758645518387542863594478789846113863117826406506569418832473935220305042985802790926030162846874529944767673701759838625742812066661861643682280757946913660144205536527070260706901347025780810928235904627933643466180440146654412670144953288834509544792845594200815616583013918062479059666070217240235058347693373790303835666379134142359508940535351169275449937236273042528881715321348125762094486751468631005463222437062314461265408868143267263014379642208334079209270224559888119636925693949206327109291279865336306112069486057724865903399005338182714800426904025446754400746701189850016017973878341734271746530900389114520148547903372835024886907044386239790727668043598477035804295842298029989852261552322589080681831717493880981232833552970941095781977775947987558358383208252861017086224606603833133721295417312084711512392649234081100254114888152860820400899051227985878482131124854732630415346108709818013365726268688072096772040259735482225088219965300440423413470535543608478758738693904914158512639222474275706624281400874810518012390317909336462956467424181048207239746081646497772643311242313667567392735673851250837316970791748052708923617122911063873595227943688285034677570791304720123717658009813627874814190750322689252542374077822925778823738614987819839841144536455371406973745270636751352089227353149884760283346515703970673395307237502953879905682308538664225976233787314101536849652136448630369140021362314483581713287651778279414485882863610098843455028385647835805809089263072527241585857519336585661563283606522954358837419223163622807543163732053692847207388556539727073537615021010194825775626985088482784832848961783332520943542334906311884019491715958958991452353437853704642607289610914037880093948663856402085446825115811333518207914132548315986055219589656061469881334215060535376401058271450708922393855887173025162920689194724486597623473703744420903089894094161463637430138756018860382488839825063758590204175179355187212910103538885035721184356219846807574838149432328981759948918799913682421217412625018345220927920985791845119571029869337390495853233655632112392169839808616838215119845218583414568589240144360823204945169874144500761630511357913908632868863261756287720203236659253364128159765671878550818429201315342162090778591429155995534857402137655404403283375279896523637518082043651667505835417759567891545464358570754045761881194318745218107206329126857273972265748245833271423901857985908739244566156196578455169377659065260625679028200801768009200101091919085034746922992969997405704615683386279791608326106995430025844583771456973768270921468257386398594275122983690087660556867615161222190420950996192973001273902713130939932645416230443811260542956527893848145964132348802713714021481672232936568785533435501413396963214606456924003447199696605229509705592301462135005452097581400589657099710601727260077319426887095075978339419510929813585535298316257792192549271009379140930077535125216876853535179880029376355404024452314028141459467069246625434593366194050939008189468932728292323908196008730981826794560904714237577723099526374029250676123057994026112104215379853201810220669121998862479572882072767763703767702905618157944367003178847867021877988648064146616559939187409195027383266170152703515466579204710901455841321944978541263846532439290313795307154262847427809738142736088305966584432270217751188638668824114694011945953682568518994128583108675846395170923148167280054477167074973832695235897768624433259363647242580126066807754171155909897440721787646120786198872763679008698457843852250681117887812331427475107362665482201883160718664621351507062402544029991446938447894961350721133560197019984572876754769433606462053892461767727024665165850923449377042093695316183693759842062305285529463903440625250717116481048797663761946352656500780538382287825814652876498090154804503894637485670511915819245521521921608597776629078923342482576063131825970471047494855283706214529782866395666807315224630958548808052154191529574884574847600483526734248853023621812229349832001599846025177607132589674616945818563972369248320095616419917375886811888784369909475328996050559539625989245369628536907735773355578217896502637186818167955374249608998709450964380101873817367138391541146722711470612004166650024893903168603368236608401385695828821093410277510538988143022547263926111542150489882770532449199804025704576509388737381622721549511939549522960116175064611425529292229381855511557383396610063788309015293488756480358008485150905786500539877641948970308244713306827807714597313886266562177554561663143162505956105274319698751831547070435474573289343798349728168598155942571364843338087388522250812242489166258813678864112795343843806270248969583349835046731179366197084314208789239688561806809241864530620641991644564382934775704977000188565955451339591619275855412054285852432212914487163544879450699143704607259101574030988419515362665295946070742368655925106417554074285713787656386615126585047762121822508161662381506077997207123523980134106168925802358279729676556100145015990479882829578418782771974972882259542536876105468851446120320476412869085119474216818971954897624980851606665700765182520164707810945453725875702645547152217297349131800377242625940627213574579754765643648589291464613263686849281407533236954222543534870070466998945017102647457745873849302046061213365984258446355637008052306623200835980933699810670738527563861644968029886014266644718527145010545565593158730949160736982299960950792263567641162526375994833988377540821884248861962541136898448919816271931204828213956223686593286988840853733686273526740539900095249574754565600515806535549934288490914003916467978117243835338592858654818957210190685541897820005062622314955073930889801834329293508162863599345902233311078551901419163413953842555526121221906723915422634004099367618036365943569554472012600977500489129900488045447231718756536403386811727519814838347410057898249901240640370818757710369075536704058484700545088508998200621679179832641245470261572044973624063117225683820272105399880678647553125375235697484799616838413327579629295148641373803699527001191227780296734734008301857680472990097102282332114605474306136460225146233962584275621814421987147533513663502437646705067556111144593359091273337551624447354327226609109323172077485722402014913192146301528275808820981741705835941170081102890057183207021417878362273150628077955350334554926427871037098160942150693862617497354176806504320260340556229847797555271220364376032389089383767318209149771885637440991172086470710539167728705555593381160840415076034389574935905993274756664808010533928625611271400659558419646693713989917460565153016966057672287223208868922911480237265621316861963689376879576842688608014632467783606969054075098318624401840657397813323714448924480378396531281118663918605915621286836886139630733760581901765537576196325387981991011132553296878851446761638158677674378891411590736013905222472764292153371065619678962972799331617040645930089548797827357204512985644912425055402630395979232416089624725455405943911067114853842964635050492046273681488574929850022950528324115230663486822349956716610722385757323567408398866188523599146495462887638449953662217064638407025392689446090863743661399970235097016676470795565334740568690011147781724272169292929371095739722075703328850174155375606634079001504174478944379206922969429787583164394762306691421074385702270009401211894861258766546108086337489585907693112384690176358154411018059523732443154525188203395239495713067175402675435360766090493218607213367794095242263938173042269504238579010786279427538907542310737233847417647783775530159742914527709666760526700639029033914587791562901576206714569572850673221712064094953696205789047195597086855482751309757043673091633489708315159615232235746486293951405560056720681693492907650114566821006515916918722149867622660395469251424820570567482170298412223338568755523431652787741799856982492432698593162261195838963585054230966944649729889845422352607760930819771589837552038234680598602234177161432691411442347797986706949336280596538381939108250581360445795027483234171278907871094557591981388312865634129898071428832844602465124162379107870272218215879521958017049653979883925609577016338271082958836979599655138515688564783081339655563613255363570759924655052653879730183926656282633217924100738615105024934418711400543193651068276203585551204377560724107199161055397432556457722500104287455443915257620076838148793843637108977646223762288348863533632925563293226419946432404826338570413074207329968589050534428521015605040525828297417210174258114838770012579547474919901646849343342435485653713479946471115042007514488824226356461885673951628002707314073150548354300523907489989746087759581614517691797923517458800336676564391507099976445932185227458937757696917065094400228948409273073432604039205209976874710123143447420515442985988210623817892799323349466824532872243074099810313412611731277511667601725735832439859120902137020625836311938953010084559484589284766747149790607680879012644421163993530040558282897574523361835083542021665117364368265632280411843008986670456148399049480742830237080516331517379227212435093183548492753994510145702757596118164395793132337227640152837455408216388341382054158333447004404318037672395824863925725051545087843646022705999273620455670532789796809783981553823415186956532284993986092702179403546691865537869140911829452481337739083721380547300960139071940650914421284681576259573053554585578626406590566726233119887226190516905127565229261075541509600434622644396940569407885010458099916447980527308879901025525237560724338469383410904785919368981310846881175288886258538152858740837919457668788743619167515456722042567173282555208989552168315822691568250544750837501120898157152309059586199534587882129908735205623542357213482746826377408792012297509985348797795159169069049097106961424019363273183061923823547117434284849948555288520864382318086060120441214240222384963762203658724776429095471672700474952555977616742483784981441882030369215896354663178856396141874340319508046995332551891995485156981434900884687454121975299910734258907983402206841180621668576574690556553850225653082638089657230153373542458710940800470065303203541720032346211552070679950893735888978121231842333504728727302232335877516763714929804842527934120224403204457981173111179931033931002957550883411779736081859246641329123286308159546581089364855549133853589338978732323596780905793306287135806460858812249891302088279987268087572012428633499147414066076197630095519998016013634589126813683879414859906828789336347509350369277168001207687807463284361843784547755140828594545709255323849472656442619927754599095677102277193761597555729400082177978908059377563375433941278243721867912518619621756473091183802707762996757541935670406928117364084421200300453393813865721359496386754991791266513737945125342148404133745387045915513444464549457875455500280647788396963800117365258502553422527869410959426344633579712883206831111685397303476594772630282713068726920107958411724557429509453977702135595919825168780570629116593742602520335998483592027382858211343138493807982596771740450786744507105666410520078333102435730391220191527980389042376074871698801523628281895710590420521080985317887977285092995871401877350972565682551399001360464514758957154579111307087693230610263049148521804437750575065541421330701112749474348595081388338311352583094826765654561091321886372182353041662978270560056010953480513990270612940702061205293254708531854379212218833737500167176822009261244304706285165769398418910969991659578250589494221971311805604316156970285048087209984317771994803150283781667741263967218262529153959978659009330315523113961966012056034931439949017375160692278759985935242040912593339071712062286842987525072211553069359501882312407633068570210343012248146968770578720511717698809021741724484554925524973125070787990197739900455837354643028651238362143177127953313181539340281697078710169820677387380845076293369591094393616621965003828732105852914029497041232785385443635358676274615593131210566473814152863543028705368131505011101032993791398514537462561355859944454123930472765668612729848783697886643206865561079933976081416092702231687501527734822066136300156332680655085221408332653809352334623028236934588157656438004999516662762085018853883217660986130433438201032935673709436347320956302088724753696828590239460677069269024242380681949094296119920983629651571744752820115063454618716221625088173716577532851127378886677880158124163757199931480946704000817559901508975494853365333010330136682419542846734845854232135008237475076762120040922967176531263941410294990892222946705324538611060947933073072105006162903625217419206913597138760530468170667709614246835464008826181391165998003468741730136683210588568781310144862632348896424986816867282127395004381559047316387341459449011921621708580709950756184107596353395897359689954232474030201089298909469062106336815318208304519565208614373381583514033577702874005706416209774452314873867723903320543982681890136743530643258295151908811176555565838348057882408214495036057125382667721082376717443314906545625489025775173470138935689803851326305034188794312479463301913795070625121415540928806084256651796875904744350304181225131843851081634887123018290567510632866529070578852657166352822704844449944919187102297746742459059826711929782283616829966814275419653437322511545101816782573795777895238222711688835833990903876798668637673849035839748143010051117435326861810320600312781284078126993067811162306363380150676807463522560933925315794920563254525181124517468891335150553049948838222738555915764402400367142874564088510735385336284902692850325489841405549357638019316458399132603338405634212022398041753348514420123122081464520949818364229749959643293987327858735222464344806972550447129673240199672481037214091318235870308650592614379563039152165692673017973827370510195910050743971258965614480237095558643028049223315914833165549862806908418070232161316469247473968380752440956094952973012902621831167338742965552494408903315412276858226789474140167182000047551383882318507250527663645097436122611276186380860823171994635237563917607963435572142295289548159438325299190317427671271394591860164112449052934672804424883966524155199773892620347669465906729042161181795312367126809297870596813313348968478999294984771570691180301605999713044301303055793133305425318753523195430039519248872069334788756942259834643696680992360425413630616202661039948839843180877942469260390967493542600085454660956241731740975937100613039122810245454910345843212142070761057026278284339722077304115308155880172966860513195752174874236919143754143312687731205925083596200932176767263810720761799133607723554727170147203096723830344364107705394803862799911757319934571734823122648842501128037029615355484590615953549430494820870114119558316786079534158680648094605158344602305898590906931821512005728849506605348305041749827527655644902150155806004877068677293728297278151348763291861705050890567840308817133627505345115019659582402881042966835598697637442751266419744518174338955838640648193459339716138810701168386536876591161384963616094636769702708636923486686453519258937264531709936696982331846333069582396465027297833999434900732113522796932990304666805396446551688760171462216531070574966332814829494950594104084181545166235220666394243149729797429675514514366660903805440674158349590868712336836354051127362609511498733977182671914804125282013987569456018882368569805034019890059870648261027670489719361230862418614399386882089061664931536348750458838237054111647907508515434062906757578582021651748748134604522595956360698136777380857593285900914582565984475524333520293536316574020395675261860354656274103109115097267847740959979516830611641885073793194412123052189405949618693431583495059390945322046558955090990498547118878868345138086926440907251308246503175111582331304898621894057626823249152759286336179240951066133408309820128661023545901017628832583336016228263245824264752084038299082343792476663156813328758992544754515861848738429848844574801621577860124812862067071725841690400554941206837459844866903614010185343929045449447950539760897416141944637673168971862938995308435134618049355692663814565569755657280576527639024791270830779159896391313545146308671443430074181411419675148095839475256054563950419457707396716700880745111936423605256610771390270824723231024313196291234713560492463084379043494803853487801509658058494176291867714511489351864605346335186773606616374644978098238463272041455808029752947694870123776558348912790492060756317440147413144401552624298244673570327471480589249320677899173074537649914413997015351820373419261021984870996745965336012661590406286067628297319724097041069086802284909049475393005261548432129419731528388737338333325949587586579997293149525978198237971259134609275184232322469836313361549094457139212604396128223923654701299122136966280248088730839030277362543228693437482323835317872832079875050856148313289885140657114212383894838863673809438724582711634097349301574120463205194256841021846706646633911768783029947400702896978631431621206479669031846606827463150971741455689007602835884420199904812713177875817888283660011489365775860833903687472392089412010581405335853853904609960901646929294346400247727773153210047816645380883362901391418433412593290493401036069654317098989906890563341467264443808990980156791997347360383927839708073474621324925101325324893169987967875329088545111470090855998085421230572213181998406102967201476569684250314935131684030316259818185289343831286034897361403541833858166764815239459309740230164029516850678081099963343097877757175878410425227522378975968965316919524082074285887942776003967719366493250531944699042511512032928892010584983925270805394205347806885495269065971746673990257622876514213332671492044022716773796968358385936466106708440714529824865194469977058125967800675938749779656395785350052003388372865515384610926503993941823726238572465400287513508510835248467889650311493257278406630084905457685483754525444205039189509360927108353480382359852734582831276441425358731232716058706470359014401177397723553860008751046810931457917418336140842461341890327353097437703468216808962733964759564807871545346264604440168649762443714992872222054517717096136703377435277110424791937207401209016418303687528413692340108869957658191683969143505721857787573184959200342638719878094909943932598287292156291192693235621766635842648411134653522965479152858885998242813464626109120542744915314375016018466166691697010154098612988715502739306687552464250130655184702088896761368379040070008830898763208815088816532485076370047555080730542344199603522205084566252645777710740911750779605896289285805256702548033682047586141741859003093681124701308566720886001035095152217976233937000199853401673113099163306407084311567162554885625347900160917352893043348924700812373129229487606436794805918343936913689163059046826935990911609465283701714911510646572814303296616660103417204017546794144924284177695073023750006180677550961832807276059295926355645244468895906728865324279248542427900555253669051898303406578365020456969325470367713757121535226872874428411052785878150835991356907803279642420226711310873489639121591060896820368678770436200842604980533737531049664448587861971882784867581329142530747851530292697288901996927915317460203252460165446889423887580373221209249538202503848984969776188988516917768907189918532334077971568840149068347969275278203550689780001971965473668954448080566494337806992866005507777528578568051007855612100615513930060443552909141405736872804394353085495303411935955221320605341465619528615266279302316068059084620826246910180013189936000405379277140130067671220228915367648121617400899274616594525830871497224744718209324004439072214025310390457601178853041673576901503340451608347582825297176629169265519235264061010479983918182250922333548613252425133930289770828916016037267838409811488749383738903449128768673456284977187328684136688998770320507727589475107031615184038801467700141500882932542772080409624771447366688737103411232330669292211996584802456204912001524053072778069140165205013128158269614776209713368298042574465612447178309032669164119603369850541032663283799336025683815038227623121893336340012420562134557230166199811260376356675802879711583227529545051517149403045624000337845291307701337533001460121481404649593132655982374555447865565121575885345521628999669347644542793898964689863528107297742670513463408614498209238127425954819978212114697465781581838457003071714726167641229176835555844366639917884024083835271907056426007939676192848832426691223782736160451475704304930007020365005121323870322265694519124009742710126446524840822420589613479146961202566102189012458482780745270251030567435138973863191625767770725597397844680885255670051782186220780790105532141835007743235287387332426263478035533938263197178754828016262571907978589047116007460327384278877720401262412052832653052492632394864218440240451672922343533000782373929741634255005046607894914537718760305759772066816686578362998298489276517659673129702332312556380191599066740128308661452217834937099928888136565941266463524420190461833755204285463885689950690991789398819772089659356010657217777708862207737918475819868619712633075418332456017104116903235538983868765540450138183309758239395758575573581062223637783310279525827236936489003761017831925191652459888652010057355480923863906156643498199163126380739116373431229517258663414512863616234674060230954249594340016157216888980106574475660589866779437854130659265758008476654496859584281749719251543399168667733423186703844890119341785453128455159788637950173996309827785539286849503193150121511663474022581757819618193337888529923023537362992043541243448865068455477265658439322351196105701784419453408770848559100285362294571251732818589803131795479839540113314105651502303376136998956499621957243617554717322613212000549328686157002883117718122771755478379857921593378919003844910540839010082923435269834823905881280291261772292304009376993452318877679445737816739734955476092525884184244243624393339229218020761174448973507374680080793905837592580937187899682985639695843223130599281958469771346944084807914423865521086024664257160932956009793426821314618622010318685783833081191316601888506767199340429097250245500556740978062313075194986727661748892212569802639580235678368972851117767076461599573395575378830310058332932138409096299976575130043807379772736859659447814000361889893516085891175223399208046037713832255665100376188709865323833511519258071477158328570737484706275441014625395701228895423508470202525058264012731595926883225133771479049393386712717905161971121261171802731566882504912363255163039794624464293225629318507296624485682609372690463985531648619102405882447936936588211816961339455497891937375509238297131929148694526290598532133310345516738795212649069050439921368608384297118835722024208600643708139887271822345520022038457177283399009184245685280826086113015603746799418953328408244430718059197439858997303389810794083375559068600762842024513475022912737506371695565797791864645063971201347089329346017431018552063151768757807780475515617459208317027045940824274257652504942813423848783750710906651580650672563721791676528875436964691084288298788928502588767446846844481378287443471495628135227437677481361331491107125660953814394179274690995603972615833484786730790021985456821248570499635503760518507596512519972452255046727989835090508100443276560013523275930403843820235930237248582812260564753567532165366228443521650082952438843827868332093566501314063258476852835930027160099123415383614135218942537326432233717197126552810096688358023998317570907401458306509245494076525800094990616136767010112905594679925517555420080992064317247747376229496073288218450418249131111370425191046038510585487715649242962363943202497871342340943673908494957949284049567534740480572429319107429879193950970899883226591845800303349466985250253773154466963096521022100316221148668845042477013193877264076533624089227471761260650180967430526668272531127247250632688014556522188995820361928550791300361536305458226500136994922941632493430061959293425952985823269053246372429899860017495516456696441452532323355749019354550756335772188330368687721464223449245679148303750644705617631764061931116220601064562227645639393749146620278541298351033147781466426043895432881075727723106460262384002301551101692968278566659814212248309048752956015607803491347774725055528295804731535359103947650543353784849652315705486415213507096978375397518047340177069415527148912183477925708174634377307713772599602377096966301155338928840704948110425085588724396041000737440057496603527986610424252033919605495080263626280812159283592826231654407752482509365127155224031108775120340426239757607457093539095272763012486766855297207644017411994927064173079265136929358936465514451558019168016332948417664802599611055054822888615265788246085137115150490153376385336206071099601490937071186044277103699940418085994375880143486786257007686024034330859115700305553342200652073961391344657397035305614291475391805226368693911958910330109499766254560295390684222163063767382729125851445234474993217911578921285313219757980888934376453132179920354688820480206590303386662878521769409377025706148111647823708505892458362256399636750301675263431994320442404813744280865299698749344539933218916182805763031813247917137083993253234790120593951463074501713682506706595583448627377022868658114932723790701012731698055105183881432352968155776553187867677498107221202834553646568416371605773744662898152755907139968912986328058717106236765759238131052978331645346147906153300392753196228501873920599014964249489306962597648716929640342335099805820183470455047015688848485816208696698367479829550431735834002720171445137996871494285255074791937986290240912476617799845330657229509065971754628504138242713152040270636037954758556367971851804020767251954498432571964248392577804046694721443359351126661843046118836567891213131670886041642974246164788403201663454753325613765057134294476124955851668507094524340058695804085118048309497013670606485597988820519963410079578497081566617055942594529815004349432579285790285490971634789767337593849971301400514243015017780266704230089547898060163264402985073073745917889636106093680271532466882415352313414916683147459891190379576556818176074692752691272107611441459344772153656329051107028155811793133869093744843297725907237134172234611112208460670049375921979918450275231054265711411099674416095293934196816183569744836907058770560064359217050306110445390942857180367666980172736534309473863682221704748579332958954800156325063093792074940261500715533302019971039204198854170508207538940080379383184540130872050011306500762192215929732344799060304206135619201111028905010178794736722416191633434439144062976360050527269869157969518926515545017014499956933641204521743605164672259842393031159544138906048886261695173275011352743019516839948017585396000655862093619764368394357364617431420818368386917648412313777987724845392541395295001326174232085289152654771131316120341081482777368502691577249273135301358186017354555116801673784211804517936011106660148032549190861816139199171621524268733192609254579991070665959343461060959963870182172517156406983833280052632759985331007490593539543792812287420831999906599920833180508329200504442822215496432016509216323637068828226268809508369707541345437429205984813576346319592173461332257748968937426492080805297994723567264000769379442693531719443092246219549323336057764354893877458133635145389364160551691282322111779405200547765150294152591767570622151010466635825302318830544917007684100495531620305160730964812158510280673201418390136980301708437403185939511162290134608494193989017734686066865415595096030833656450721313328213268496172725886909443940149812186949187048111812141188756703324336392057112185328478396326835377749796954094364706994212473527947840542548642516613704260290066042249811998932709346358519188490441465692320527292049723367856319058685531072938752300260506244173266138872888972629904859332331893824659984283059006795461202351571473618816364163744421663342370568212696467645337587209298875451119023155703057913951949974393875963858542224971841986594814767511684604693499993354212838221520500925971217107706716774941631081878597319828422345438037400602296835978187051006323602811142705312976227485880774556515756769000094573231560994713866287208668481019108349019200603287714129343630776044553531482809985055428127276408244441762641481509735883680809115678438680179955864167102602171264246576801285889859534157252176993162567298967753549741187137111544255093439868503806215680009585219980236878031652427961369962557501504877933765237968757615702326414669355073952700598489210388642862714310587981133205987702886872674442469558409573728825814183857723393916606724662603879504461475028340795156094160359711692878598371439849464491223053750189136811053490593222206775178660721060694217382532766774337816371558458570993071209862515466472694770247142117031874101381047231558412523172343088727495508589454073430076624332599871821070241639026262850587624107945525322635493506468893205240677889948158268990998210831689777484347381350436362771117595617036527483410771265305027441233088945720162445278636001707436991625035112977816998291562830422871270706575937227017205075984440170912029008667464551036109114922105239931129583572586293378376633410217134390663755184068183025347648287219448901994492247212079388270692886708038520841883041360615148276914408983778028863318258782311531639303028154385649159910212208825537815289577048123822877899228274481585923426233325703192557848798523741793882188249279048172479867867406530623191639240467004248117834473917495252928489740225542159385872487963308412185525627736412979863469789983310734663179329542921086839433758912942790414918314440963519971824433554596065445664431658037145665547529710602292682943963268018212216280461577862332040043473668548443767337481759225025414219460508553625550474568831791734296871243466738713207400531336965641280624338993286495905908935444244119820173994777627422443843183728923628175917028748219726548284622457283295232176868516225314670007184173917657226798169599912687248580039009554464254354500574423927378097530124652117191144941976481463785833023793363719637904683514409424046299514587871567528553771499160394066406395368100404685266176782358090061810574922066783182032508712396940030473186694294573040466986611098770469749525881704583950033129876053385298324626184895841115540336402516505243739768238624919673560555292903836093254998611761579533821341160824574489030566730963871352596707088684707998653057437103493213382740640995476783886312234163344340434365143054418407566840685457010673056224693585587371033324685620787721830128726685213636457295472141156017776292124984092753772116949386982176656877262661016724367424266941034533165513425150852742059812955246283318192387075781669048520536964145006461721658957003868090325978552586728820264382726757312915770585252365835328186504836243797469122828030067613638998578613653237117414405168561703711353229254706977566491751517870645793648804671557132213831456386674622652645922352596082016824545162697026780824160481610255198421514846463309597350490030638497898515764990246691596592787695029850441067291014112217035743203100257176093939510262685823140501140187091224379972779476306391926595338601374317138742465238142409807637997978424504491249225309691656641436846792191557844756970872493174926863676056248618221189654534483414259872576095285272181253309215295620864682976001127155359675753320429018393007454111556872809172602104966132015290010234992967067778588335744998065556566860350196890831515435581714359374063053825296625024933411117437525507058141433857745852942856330858988912233403098079163886010282577269414422604204201705537156220401926781540739667999164886764159676132247862773149158119262081741273755847449322863630451616576809547422746968085344152972271737805772047349007342337377253943144885545167409478652900581924451965661516526854802732154151444249731314429837168194709277799799909142075060770254954292779363051240296033262879940896400226983945499160404529659781187303734964387438019644624856837102494180771194108415832963003959274450782374837002792528855503975774173155124917006577987591438210402952173591042771037449672900632652397292190010129440184157584215574999966855756512598378016944593036653489156703200320165443258088058008351116578647044194492842887714697115517998914630751832476852100817018658144478726473909743324696849064207388635599574629329690792574365337924532105554013405425503894133434821769023257403432459401383062342290134093510880127211745733742957590291278299398163967792670269700059334579733540799462186604380199610851274178827419870285553449128285454022124893738329039966762661944808293544308448856736779128513886400742281256957154393980861817213966915564767944209893771072326008176389736039941587652251177238959003276061127066186683373599240596802974960448544046553368403290204890689906631029574757407941724956985968790063124125272933231209365403183418610324653902431220797283291875930180163256066890834176889887627019213545652462076395461591045969554846315800901736494767963021976887832111711811258413461810917704463015551220479089842708634024478590710707795004937578758070177186631630314726854810980106010397529964414288008504739701659582504319071447059404333052911657406144973489982208310816977378690968943108251323211352093448613412849966421562678964405805006541565463340149515090227288984451653020577303256936211749699737491487208939859302880479668680681421484259776479502681073924878488204851362936149878999817497482631802967644847390280810187100341375928549683484998228780803627553587267074188207080484480359935015502703597375820446839015939075038716017988967858189367571698402520660322404958851488893162331363937515112636244986452547233308498869489829583848095141308775786513915471561176962572794347068537867569015825489948138323209227893346020716153941069429460338360920332038896255586015468992385735476619528933563584367678786282667645485602856092976883759395506150029198026960528409624774436925256381444115978008510113867367827509957072642040891727609685628751721619443574953286884624795711796136481533900043951752165683678073849118295915346027942344532607661910926636372401909939527574542982007551367641540292918830096046716486090626476980182794139246911711209040843633736049791557737673583031064894530442072940779092625282238594517141581142898798641366022392070709472340652755216361816388775736765740973733893854078832454961973748351677237765065272368313304402751402323812860258409581256786923396017805506371180659279373449044619747955179392094134467050165280473597249138091202379750657763934509608408595917295838309597111430979507901235320649957999392504940262153641455111117950415459519886265275559811123322432056383068811582016873156850540562286166095099397789019052826495542217503710934236945321495081510885497015249109804801232198574553762984783755458922256703198921960491680405507625288262454235263151520400637224386292738045223819354108671602321392574918688481248403003941387481193860682915576138053581547805866206493510348882995279111572213446139800226321653543351159512932840514815326125783191585699823229648595247141865295938055194921395678911207828694511842077229701399966578786452160562567744298584248562983921575860121458255276503830416077856707956370760458758743638189179358526328966413807944264906888069863904124698723127973107430078017229334723867094257937254195941889284336135562148640447698082914298074072588019345445691551019616637043055316456110652702189989595551705647685301916521827426598584425648258662852554718873857374160184898260219295558022926057688347715755778754297508043411109965203223251539838087121809184492584820773176169877502363848427311949370496478204045288998657974035693616161910044517319056409878399016544136421426620711023785584590426386165650185771618262159434807218805817042695852548697301674964439716366308044889722952766347761617634280117055222253770592586579108687818284949084879602020353377906284010155092045004375048619965850768249834226494418539132091396374103344799542188304506831642071743955725306125502612288733461982289434591708584125303656350018602786820687557929165647921244575473649811986567368793630064233284882022153310458535257320707870936857543159604134403413310224065854343142492652120364076865246329013285030769219720642168400653497945312686143673476475682938602328369383109377336911650837606913043259805584768562961657915452619600503320956448773131285357644716168403128047072034517853528190813980516733138417763383199371358785950983429419165315237583394633461480840341268282709303703374685436191918243862419357268600796437440574434300739594984911930730675797560423108987062550040272136855091778972928787281687510252783900085420509236735000885226961528550476048246907315455329754893739864689252656115314557324191665746224387921521787130926824742952435281696673081502757284449591188191634394270299383318994381077479760185242154879361255724462327770045007304540485284211840251380724474192015144135450706708280106163863182865849723885252413597715382131851835644121603173834664373285844539688977757109872525925266816526225077140899520003289988089601002038625424849880535374050559102903937993844954244836780602958187240742641119172592220332541012240511307271766748740888090773040222362433251670794613439563874299808809017039796458905147173281813959376470698571616847602076940841478396335051237917260242502484616690285524711264299075558902322830815754838754992425005799049912836809342295781146227098059055541407248920580434025239629090175070028628382369423803526458084319159021669624411619969567862626753257500135597936268473155718797995023148101174972412155310053815541002833496183404650977380235696933005364686199004828471942652842645716355291002070526007672845878391387406512411928248294471698034982063891757415582835480255646678556028175985640294003738470975665462929599268807950846562216180732945121559408329082949567015650884622079134564843473291000373739486244017288554656102178581325657214488618456264401069738293509220983972282566062924229092700297984312853117226978687258829279013659878108174656421942966165198230981142231747401397704647358773120108240163332822945115465131927629458363486039004938272508803512838251000129116461153952526576400977401268479228472782977616344669467374211308061012668695471183590739743171981988442950090077606828966715162672938127294616223816225464008492894363225329395393039122024082162816355486885781502042347463945162539708437148210335263523540412667681069275418166356430579135221689575477737934572612691547645471254281839104935739555263656603075220532442734520531681138662909676439680116369637867490750917187408078134056417390575416030151175592793308022420106969200963879377672304283583515412471563780065958278321396346562361340135161074387538792617664031289077069170785457980799682886586425325662838522978853524955528068313735173964679679673278957694543616720996931071921941079620496643506844073121931410671760501007321704601355502653655198426625442533837574608180657485385358815068472609755839907492761124420593163529293496892363905015221685417174503865868394394891010690785323684113370872601175734967768186312671756248899376605618551565021449487011013365380276208672248718101756989484963722579055505198356378901957539213959714938496805386768892311914949073099415567103430019585816233481318151189340599614206453142256902830804338540917385294601115845783360148534884301938756385401854755879439541607495845684608984205694072720611979270064883722793061781420559630791734350478742696513094086298814663188491369282742269989434442367045741812843653474013142406916190049629744685682965048253519725627839835386215204259780644343306730141531700774722398161791010283944042979193350533501481170503777067324961040034690153718668333761027359588058060397955771265020179092035734539469758873464723804979928833565531408118177532092372290322814049422328266165305907627534165997845649403486420623884606071295803048691851844779544007068048162271466381629761868725425345701853596220541983814093553959801168122490183566887665469178253135022500824473647631354374694064865562017818463300277740171333219814785792891485372358623386422477218528845902486282562324589365962547662947868797609673320350813312713269602440339907888501063805012012957513229827979862743546681621734187678338341738354609940833514634033850064941311075894986876291887691915163407386733369497442832308906750697329155148745799092776372771167750315701420659177515318136163815097433009340881059585537329718629821424680338001566374777783965150686090683060452874813605380824307004123435861681966702928151840201889458734809220620011454948630196520153253054288817000548609455311965445475706743166543388677148481822017904658105091664874766689599041279858720812167694312609785616054481828645177833459416985887970117291484946803790679911869547875930686111481342894794812736068188754729161789570595416253461976000649473595997182509503695752333585210036112320696063621065415576632997290392551192751342669443797682875316373156149136867811261991728648708128372526124920442238363541329735927876147624767109227286105717128446098917827723785311961340483809568249672458726723755797158755403870157169644001494403067227823344753916156592453344549205217148120855520582667937698329404741468163601872496394171549496947409073377846391560819086667942329456321876760130226786092726773524993681124721601776257283424203726168325086230253857207496677005704225540507619944829295716813161735451695305846755302096295527125901909740944084801420910294102984486379625362413502300604346958564641066335928658707039071668809168830527951658315948585241032951566208452731550224923445750001037174563178800693048517613664501749796458913223008109950053869408453825367202785465053186333715334975533518953147847030919351472254855737367517391355361195243472566531636464422087019071298255095531559298134044573086121802151784659732724795549250323702644802880575824780440034260616120755747674983770580444123656414468475218275557220475171550179028442982634790562791142783925338031668087525364976135226458021841217651787235999729784864852033945959407187126680655600289543424578690444747731912720513444950942289419205874837614169821373162559370012110752217502709783851306166934381131482110404963379202019248409995962348565611890827874555869205959905858799177192629004046340942255411488898552058140749651016274246269467009536645079776872665850937535395924086636662457957668112934830035538286692518179124737887651491238011903018030382343144935491750939739002871605511778644926754077239172136804606926894460659222846041081559118750236149839568026329732654832658319887972897936804545003208076768153115751520986546956406547035005512534821973423072086012533167673963270439812480461308448726177527588407155805880613125738939778514281138994860408783204494650902486717403207174460783662998098935894374586028098528598902204202748312091874507682590489713464851220729052501674012601465754443966443183273484779401491108544682696827421029833520349801983586105364721235490953277490009911391045217755552574871213042020601722745752640311975827218801021096565693860295320432694949069071849809912657957214550423166120897929838770284870096071554135953918663264983683307771602639193094940053804673230005875219005092426461740309304882970514141148057924344044654930504265752773941407543426322404588361438067734410136692568900749465481105649010743550291514417507176592187260606456755598870052991540569636544999165209621433850137056517260315727051843346842271799584254005263173037519552124548217135889878503591211385529466379196614211436655229699551775101585564647133525320345514787417537505844224670295828624413239760189435052214608162566834708750167922817343878281271268075391552543158202011640220496886090082707256827355891091619450607471462225862458171390338771728897186461844188057541935293027111066403930760442227047323260165760992471333808927258365268982438241998237031303847656959363536457242404447218837399799464851394398614340930965732319876203341033991424166553575201761238728584649612033538690505039786251161161540434511016794014611370141094841681994171657906158427588464112791543391522396523922327947592478760151990718858722622106325889070317630518659756616774005382389873742827755589791187534458824253283273903790660837465845800090925262044576953517969405872318825013277673325113150060977046089312964754422176711532174228863083240247550507725971030583193371523694851437544763142995932887027198531677040535937793807380269878804054956285746095743308773407564896471231287095501221619071189523851665414311984174910106593911379255359539746107234985622443508802810886627102619709373090945048205301147657403768795079149033834138671169620697168311331326554644854858236502605401585855216710576283656145459142708040970584308811607327586446795161098665524314602317512945600027208693081000948837130275336890881355632337342687461798520929640751472811177348503591399358034620100672127499944465554790171201475852469999348433606555944169253297170243213132588106577535854331283130595274811078799862576537142698470020621357984527702227656076133416860735626322362608334590324270727333696889434166453590312630711401765495441517073802625106854234719035600142742631513508479433582348824510536903007954709029076098239642711676416126406824353474967272076931234076527988275842311563802761263648999641380778322990988915772534220035323493551760389044037398440908884361303128593296150755127970246950716835445899053171579243754491815634248741546510919726736873087221848808170455839315966522364277788367566501323879432480678763296381771632125265425402924712047537009162147512405069272171692163389444562887725373448281897387088905397456914730743985612374518566368982714766209983221951470760800455213613672211244405343842241283804892074860927478961489038877613919418657353504236819309066156959269262576453067223383984379988082808174656489190982509606179612946862011353173862294609074414643149862499663260989130846718889105152893610815859208254805828213962840393989862385945815679384074171977670289503381357714461125056778647407733852438012361721784614718785730136338482148046460173380721345367365744300977099955736701639995275023881251690444189053859953117360567612964609471043218065885800183433374056779785187316840797058110210560367278672240111833102983076877765426285423809598431975806879242700227924877733264660901715988093775567386394417477055236520269605670209583486997546251875815817254893083709896644336086634338916974379837686484418915116960884932852026629525405576091116870906344734116048389510349486571119086125014714780804092052587303300096973197146113286381410596550611360670903721387186409297201968570138468816768807559490078545915083885479238014799391662676755793141031137319843712635346889411401092115646659131439131885712783988258238700945275194267068956040690166956094786279629421464323123006947158477009607835774579306389214878640838035255770299157654113601505151182484342450474471893922644358795943962464424504869891427348849819955570969447589035611828912116694456148303627673488998509487872344424719184836548428289424784584307129140190486049764493688711615469164687753992437793781958184154162626302712169772973673683685349771819968939908502817041102102997076023292089330993485172654980883040620437440618587140581494346259284861387573492197997162214140338408264654907393137585214661077205116641644592803299535836089670263063566275922003131288981216493622049425108025338438608769754307184916108174062314250570398889365025599405701575942432461897024488615002292190026483790111683771224667498495384412979203959270924759556086861607619398300828272122686937761159592232357151215881168077862684444019758356150013860637759965117680140947359382754888409317254962920368772165105598881833135445081404106393348902144930697774793630966571918287360739848135860121513380847392610584335245956163450147305025607463154008381124226150008238272953670494345997413896895844286309841295884637985231766937926810875359254246324473758579475746170021936337158627482252670426938428919745862040804298181317376575268918450771883608053518605527849825197338107496434603223772881898889755844715090403351026494404782167722987492261209925810416832906905973167664921199753950016696199748050132146073677612911052979371945707816678096816118559391158269535127330007884342280180924994169254380875470022443055567389453757229481046000252538298159247873489265660769821743276362893709189086825522198799556105218550429526360857998642833402466390046468038680629038553246286206273542887773882990723973876565746695002381512759064803909355214083414912321740235653219408665986685944140845197477772449461694075493091638803013779793482462437926431861143015782519173107691281747535297226881265545222299908626062473576506556051292422425401492658968132790449094251685683697777440374354834210812458732404547685377053166967991143307353501423778357192281589113411702664607583864373492193441899784684641471350430578017412182316110684934338795444604844205359245338268319018568713020482852984440814552595199952964527657409898220409396504439891661488767506458405352946893780356595069200556768427674682813499259285440616410495300441525493218529500530397460859365281355080126972160867768087039766653638543088566855451169269459650858923978104549960110542751896220296892569344187796527835915959919963298530336012220815147481576578533555830370297923579627329668233805394871852461891080973508658361043516785642010820675816189884294685097710362783425236771651780927045122841355915775682551534226540052631785610586574908253950800311708533335157277673632568013409813143512412662533692380797502114669442156448233461982834171720078408329034784393895608112789029741874673788882560359171581077728684834437330271904573231784439705964776661297421410667762075010233750492270691594641269425632577870045837916524752488445199128888767820336723085863037639598302338874317966081604996173541497843880707606265543029893327293781104911204576275491823291922774779122541410883543772235482852851933180993334197320275726875146295409884780098579654734965781590540575686172722821980080811270342992840412146476755998374274774416335083383461261572278123144190874588402655806204005273369082054758044993426269374502822108630115249044346844277717297079465854616988132382362304738889544215815617540475233041814843104452813627096243541559330318598620189512830580988822196643501791779316404980619875668872106062389556190070892769460543478997685228476928580673964907860425612440922839233711301523153070332771694023828455191939015146845705166974076853292207888693103549539873439253589730754341803912808950636678260785460226751716896392683418288023270274896447516026971707667527354363087965029391022891338965248352757198375845712262775989964750733029211592884039042752859954992611517920971761975550442371642700660478645224585176955685845130286867578737061181996008687426469402443521474281659137396298770898915779539586390845511016651135031178561289558562850425866974241459682496705283243372710241959599783829362523644732151820636301880286035505787818635936410092195025166269725365834964006532361006506012019428986094170484253161619375765843459122179330583666899171709494820149323731093361851093198863351107120559807431955383947324161872704430387379087320912982884860182862423191301082048871199583377642843334064263345834670248408807892951585464929241539863069484263745765708892581624713454600851417456068622279657095658877649231005236187307243671846528882761572579476939210201361214727714330273810958328732681868182395870065767124264699737705081919215848962254257651897493248547375895076993388047794229799565173383155182871744744499305239967420437615106166567498445047289798949429575331956409435876484914442343646532616819643913739760676036739377024016360301827420543564570162102998715634740179355245307668152130696299411608704188931671262863827286329712970295574779430884177180315381626423743706130983386829656723906531231172956956646022591061807972571359405586502873700411997713593043907220894581569186854922977765466101263466702680276693952579049018836980001815883247139335130291417578448850449611358578154323006754686879640317765737312270441410950085530375962377119867764900665024100849267981255385949431692754805856180668263340139593936379874805789180616633286825281417443279412362795553171276342599544362185132155654635461995878675282329937301766634313486972764062490814027569992054772859980201925420726134135192513413128272701627954856821109629959462607350528608404721126370084470241751636700903267605150207962351001743569307317550453632742014375902958798858422745205901016531605890702061147815204224290930329900759203621843813243177059907583080930810100433421850780112202794166495464014139472873539784744282984716230681344605513006457530887680769171197087746643198306838590625203398998916472739778960720360775494236604749096882799911195525900700483812197266640912890908793056968592603076466807028783959218872468365802665286714718871635799167006159754226178007732666689688663639883657650908845644807528727183133336505571095742110781582862332776334025201087314712707588036213713387840686599043941985545188320932806606852209649023919857491139014754290064430622136457298559545699519500553452474390261224155673900691456964621057249836000878146757732274010985679444554360155553028873554794708232782667845665718023286148815722900208234054723604195556416955202267347090633774699918448677640032888417174517080851348234046767506576459223904119970894493432694083905545691123775866580907319733329653938794994368696403345498891501648881646472188823408563942348774483353352908526000444271420521933991857405905230927219672772839496843054143012153198460257160650787077355879495157279331640785808930071622251688729439725779117956870450914987143241575392940507783837117215492797602237565585132051006799262011075456379199576027577240553825620787640186627274866337751758448224334660527930083825653652186018568485636683283918800419618405338432398645881846511070257463870372069671723595403543939909916160400940481002737150070507654112913203540827593121349003047965620633853244274059912521882708482651042140420302332335490215533931783587265918847182887959212173766402820614081736306639857223830924178945843640456084111066889579144379335024369049453953180897028548602391819027906241316320620193599726333359550218064789474679459583857071016573573390167195881591422160126900646061658355348590000922965664566916210322409282987662125353216328473192984215793513939381304692496699811515976177719887837858973052194836543517365904435522513718138108009058074990576997045033962544595646622431247658419612303413620179709487664141435440121582429975161794776997232133205902308521066139886173024714992870373072759926757443506384037137829332478504867700443070048512085884331266778099064096237786977319434479620114767093214951375881106463020997856364057266163759788752164932964253600856430634740003166457535452828512426463986076919028082087435577882796854995155026923851658552095561913297521229588995042140015239407806198212339113976425197579466250546225051179853926457647288229785603385777312735178870648533060978980209029375327521770511146016500117896132785404586766469320440653656988733537273577016035643071949501279314909049951551387376945825161945195605837164615684851299478576771943606969523685235194900436428462723948933275786123601915870598414052681088024697415791974156601327932209072890515686722192635499353185517642011994489020320148342303585664651990451413351516157478080740724440822750392759813124542007130267348084202039342368818163989530863786138609676974779437573352261702513418922445980572896027682928829518193914435629240141495309620421255225973916895133227453438856567269608847538692400805999022061999573551416038171426751835520330567885422579611597929740283020647061039039003155551785104445508561898286925448197784470807270869340409829808996452325124979466510344456560431497429006478358421264315000152150345540427821554096155768415565048695568915189555801242878441817129883291005398109209871560859265558176189155372513886573977585307662967681568397595175162962763405572967367954496882836601853415225515536903699886046788840445068477756901238169282402120189619268255653323439964833509263901103543992497312801172880140107411990625894275677839526872284212134463988420456879314798416759626478005746795918036883879142406972019112872444572769175192699454557109318422777576157707804993325431915516426966265501638125334594375573080267580946935772193380192984831759862167952652853089545053675106722665390243626503136319042670715570797472816388776025502497896113397386719744594367360858648306998959781301974947363882428722327929551269743547296129125278113728608657130388014087040905064439606949027314995274710377075468153055927395867285418241359642435806652716366513584163974116178640031898284733135837203257741638751767926167635029387213159611574996581110381413310247882766074068645270078835987902515084707092626038317257596335081838655231511801309608171218930062570450321126803042494680831220961922082372882386469734565394833499849806552184828390486342563838137881038821345867422607315448651589508184197054016985798793164612045017434581687817357731061329095151554205814308576201378111000105770225289023250024828423964981330065848162163131411361615176225319244568483868222724298969231130452835318610584873238670181364057072488606215764471193714325232586373412174091039597800083101095777918665445348036930308896623344208335510375494132587429034419256887922828695640148607291622671696718728997387404069277224505693657684903295552506363178930638188000422937357241190584939898615272274238038923937273989733330833471165632503226739956781170896606170616545272401097079291770140020005368993652370721578032244183676668438764149892400503948965338925516326509663209895157369158756012960027759748936597492536296288175664776632317685198108190665447628292359348618453473338414505187944349424424966671069930312745077733780592637016083103931758270489710843640519438848409468405175456696681334745258727736160201569976463096117826221891159062838656167630841910808285994223153587581620905455573578287184667001209044329892316890487924334487435659988141912604404314704481178895677647761045118070643291369081253663216387822853824958482432420056612384581809501735826415012155714817023072618971828280258703767463760250045732092137063257338124333513722260364006341045871219341668821840741725902384963897355993940452654841596148268456810224226804867401476402939527068602221116543484188265873250598177371795567632505312010518909870482783916274028727891169951639239961786431726925989658955133566144989625504888282382853434690948142963249416036672917867963844572178338437783524447967524827254044754113738549473466094980784700041175031107890631603416386556928360488594375600216942029590025963423951200010269493470134420295981304341054207731060420505627398423689829703775119157484615488139706725391558320686545173095486348173930501210669417642083427630541148922065574855050749947941513083221651963769101685145008119609125255931989125637798887931041675544906193785242789406052031939991375517425005491513341432655615306767047417217289467404060040488745548225442756586156545754307150818672957278602815458662684506382764193899677857037132820623037800051189518956690822726569361645039822568840784527177127025271147095483172915213084609389221977218325631300825786134982709880931640380201985704619833192441511084214322312104913405054858059328763147157678042771576781170202295439738169349111582507925586844092757962878292922266229312112662705966071526919445617639115910452772307352026055158560120349479155037558103450029859967844702386868341321412549052952941922600841053659169886172038234111720613978036813238578926355336435418996962457290427287021318994267272487177455589158567141178920552497406779548634577177055335504765265395465131986317476380157285352507544808708055815237225373598999530684557412381832562345807116322505811909176522821330119782728075498327799908553896388908101633277034482272814121841453620046607942808558464409700925589781652929561633192088324905964524282902012921321045471155359633838647789942817125701927454335310534885097409973823024990662923600022850684964386576308238883541708143767545743499532005744929521146280030188779915834824481229522088274578239727446058770868659849648098600314687814743393220381743659278888851951821312326419008065839824778491165024352375354585503837481970308789838870197275236497678249702833900969174640065046237066252649561331886472397328666907296023207617304602307033503876776119719605074963589743982908628212878046615809721855181271644477146726003707934471026342734543709256624498436329322634055964194915898207639161564957227586620560803537619826373459120232296362305254468392054032156357681584322301741716842685624942416709752774483757730968729831714363807672353518250970859574119740563420272442318266088247814055843964125761271351971362853573239049059754808173144327288252712147368337132940075195684298471004083209517250131027154127363445220159260062962034213349373541333162671293058423489234510221105948592321890563892277549345834259896422644412876553711214212274545516861584681561758793558955168695505079268118336556100506641442560981093511131061675831832403801303831872846917924386441185269924093127276954287649060596858824668220741389367393676662534770398838408228561377582285176370492961682913300212169343788672345875726374962135311157705495532222733288524568536233687344250115612262454512621283116252993954634864946657525180865789622285509987102910243761046790218264527844062637752867385513924112155957882781468738263492142012948420389496701381322060516050579145419298188375928306175212066069221944708385290755275123790772701130499814522197613381800361076059579769807442915043449070954848149761271219788036019234827677608685746938806399043070177373186756255536758815396472426973300485709894806566667680603558444077988967193009712744357716183373104628914528982676903952789850657851963770865891382468328906044115077083976765568989741549094381116686701075702530163626341730349074366162037017423806717510437389080478234763373515230120102118595743104404665844581437692040946436783859464734762013261547124889936811801326546275232191151686418866698589024809571920595852279894810650287755562950907335292785316804980994920332859991227180381931819115366095395751968708323142177635404111793902401886909473558435944823437169934194091001235348806266262490111613578065026264822233245962867317298510733600828271487986488339424421018905500477417154312846551012142696210005194732115872103128987578038686272681655976248157873999168416593036162207318272026774760332953588689614938670572446884308298263758912073912361290105179375538199553830054364479129395757641189325152103669007827920710059724485031437944623981133960990103795441304470873806078535406258012433185496193036211479446022646431832483323129616977115224171224295590058413372382422994210797686399059850514390710414438733120654660677226544819644493537545936794732954964818696047601409853302864403232373442360876139566637258786416896227983805531505028201187301290679979558211825365673864983426697601416891209929125981389067826184127186943202444968632119783479651806434773861865029411251122252186772333236315588485163092593534229424709943444897108168228256671061356996223562063967132813690608942474804480106386429218920700553911576873787266908428693196760290075372363446693487924213320002798789140956203277649389375651467619838332178893805427638349420698762430191284268719949281638523405232899982505177842534859251315194488228831590306809445146394671823004021593088685052869389970251555323130106770396506301643148164671523587890543015564216634597368675014546120384014649976427571760496041405320008075153257114638296701085466873436366108366835187384102853808057419999168634637370919680149391781083599999315373000425363419526988780166735879033390388043316076807957241081380280530395586464825252635869985861980713499818652227836589171040402130982404633529223919818744723771693172322221287466694252031542472523134438951702903690302700204189955456103818504391878859541754313440372721335003738051764778682010534412634708659151008386505253815803060251315114703489075477970484392083203457646484065505730463588195161958905679242975281039446686420643523790442175212524900407878764493332025780914857446871849635980904004831231174941840699450568918976652429554674864775419193297929491982152599061040771082679362899600821155147397079240763475449482584282911861681839215477467818535453322306385930814529484308563507601788613550465250074793638152413044064261863622004450087297646705630625539051567936353868734487786318938669598026986958790268070668252418058811267228848209122932986100953013308384695344391657218943091802675960580727966572574198809691173495625567618330892692281737834635164078567634183174711487026269614731793019004865249636942075372188320693641692891214726204425305825366219043959678152420993753646837330351195432856511244053833314823805760886069906548568571525281560966309677834930764146645811994068312312774443301424232872034983528913895946557464018740846112317961809762133538731100941253462701706025158483619021628165716712201615273654886361283110698139674725646380989109610833890194937929776654149823451689636529453119398519319145550893879970126893975066800509764144251624285210919287860060578896408207468795743692269650235405138183746629935769210024121867288221133975697040249977079830747342470308677319374007557037939839520935326091781020980464482946953438249803389370502246040768598304651332777701312113462183576511961991928663036953405740137999345833346139533755930104210310785975160544451226972355662244157844754044718462441163575372273145794669876772730842138399347211115418731390555084562963221738963345697547463255886324019841084898656987086714638368013589675555954761940249453709385642015858142253063307067608029191543944397955754797442326626905947557152785917901116524657040827794699871505975743297048650379710733516676523464750796774069774159449499031614802010698949552986807169612746054556063842335241166871335033680620929414925628864546730089198255660794703143440039753684307448905941899567857119235556022563020808532384701879317276482541858544312305711180846880158227977033074579618539201552582389635250059233095484603553416643729012149198595840731364180464521661588702203344198946667389096134293911561163445551483602161310160533667027209805988121502759648455255854778311787204252822859517324027231853428418943436832379527275674973669955110424612286334410621150939327123023746973149907309802247755627235356192339378604462793261187941956807116463172961954586739904256017519462398819437441836366150657451426601941811469627224687772130432052595036025061647621728109593262999990476832287163658698843536656425550047892689331368675887211878525712550725594665507318692381016231376527784531658020464046525126270661152278381663172649401425591820754863913783651577035967308062812465612452823893259186392997555052555944469149813059593055920817746331634796783693731519374669321459166710865020765186897021269617476131079414375922477109316046542226019240926241920831431677545589825294786766078758928881297619777390737605388589553456804263966794329293977453393823476545372524198050530121663758054690522791255395003151984475445650967953953759315233951120935008616061594305390119657810947086509295542149705607048798930373657679542331191121830821291181510075772993875386943914028234321811778865816658224578355325835755777358816380418969177477613827772841663407029504791483553023061285852421508515539255272789748166872418195689271631456476407206006794442145063058092487308845522511527400621539607455374221333654753125625514972823180651115944215394421649388282249990326653336725424836440263738924548525341613487078284030951546186842352822438389883423565549231183767656598579368672706645539533676968858917833414205138716069591314264167813513104508898814027467600108586452391035337244032498407164813953308864339726341547336893378745256192031193773858772090973484859764209675091574917782583477178840105542138749473973025132041183824279762011848702508445438092999360462676257524231663204740980441005436705150840983422735703827937565205218709794026819379550886334878556080236161440440231929036451781532194738843860936424741893641327907106607247841699203538803946090083035281854710824322170489733806869842410115917886121201657954812527643508623211875009969259658515746038827244262081393824943104039425103201191279989558122260272054988254673163190796590100217200659460350440751199931289416891373698540300745923598318999277049778922364690943315349915004534384198072421013194655556917021973872384091495522963404455158497912571164525205198949173694434194824733511982755186519758959806836054114218362054676125801494253128517683073084674746625473764229812463778564862030374225344231219603926125532332985299393599195888356803697187337108389877082752658177720912741334493659980791305040713875901264547278246596262510240024347619181073325676037805237238845387568561548308469953883917301380344244037585047084236142584431314373160924394384443009830194774165335992580701854453901417311234568849930201316611388671044584908357512782489143805702201178447358138579982923569151480487451880851801689611346705812939436000398292715247708706670001765235854467722027163121619510176372490130803122547059285810877366430936911510256520500115107971606188616099733973297450814645120370253281230987496820408670069920709799063736252478463227731005747651787920845783527956416778667844315350195451358825710584589381431198260961458475090452185258585013557493773993052250176667406846670755527797547397118987593360540506382419249934745254238467276325554806166650896381871082719566386682472815126979199802451585693981234595413886803732768126372504939011863509692333525828975974910882292406043151285824820435265993095642851539089585731195715775384681890233763836671488037313135538469019098508673970650196098045714533761261233151423460842867452200983763155322464346699871234366095076022074587266195484907470630184190987550855672640129641862805399856896765637864326255541903204488436372878702669958224166619093818304325432853897738737849031345698428629935776312623091915093882193451848313654637392686066839745839213788550481727526582403005783836591742709356210710264613585922356710328663660794504722230974293831218322098135082539921648514132312890100727463557499296240085471883004691607550763636026522484989540044494276667095074540633602642726496512699199349839623689272540725351933609522828199570043312602327817661950706230043576465277610211318992978407190255056217734817544340601203487253333709552881354594973758784907121564491171436935672474584852127055717811728768005704448670502307068932767260646728688788501533641757616992451882584222456288515063723126975710604719469178529615601179712166534493809565707265295011049015704281655983062206549189215347206461069147128271470530095644682951785497517779202936816003304844343165672359922910928575347885496808689384151387268004132469134377154851581484640987027916308783116292301146078524608168177264814210448255559749372078537435305910413731255031779590026500549497593460429172299557176003076092678021324854563307784825107987607197572494127578954916709123067223701530610402838335009717872294000772998358733411368254626015937533846389653534572812350499666594184042562373494865927792265073449895691060182749107743515663873283382308742061561949967219119691390178723218333722135289572951777982585391218695993788149212634469023297708385695618342367949659325555483286213144975835208842381292366518874015400112929750865578056422946559971854821861846091191449201947760691619316028467783725772398309439550930187199253228960381621951667303040069490607256695626895885578760354358882155699796222404854324964623664653050063049111294326760042723021999660684209107434053655149187148126905232491499150015034940249348748937414557808366997329052321010886216345856089214344107733805781811673156474552617326237471755578376740356199486333424512040735436582109488156849612315707868032697045941648092628903243098103876111578845161073649899859711171431507607979960161018003172211429258596847012718790788140475813328329150591969596389725470948562133898695918869613759630952326196077663391805696280312363066292790789241476384247027982733667859096470763372231865677744478619282147980537333299848833431588287818009391317233484876508016553466473617940740345780943287062012706983214963539766179330831644899257678924906314229489871472307122831807959807923691689577967228266411598386669621958212813215337818500544756202965131951429556227609900063148188064372822701614710971522928349335228185127426823825118344894332152395740200615742057721429507777554588835782996169532276796493672719649107281477549146104529100279923199805254977314202773356814649255187977879649818749897489692456871023167956458172763326229816666271757114322659477716356938080448812754765256807024091011392714223928839860831982708394026860037945283729942966627339587689337744949156307739968627947971587387587230711452904882005195067918653667408370042824497041740656985993920197915378903114977188613072013762323148841969397238141563535709929827677886367174720760680536817204903295043136377566894296824139233836633308621579641152438530633001217172824211685309891113433656835619434187553590482791470089050717199848719716256803301394330175478547792785171009062704085672204426680224673437167398897172080034844950545252275258666956898223890179507267718547683537638053536908434501758573212115324225845728535112017768422390700036458037676982968684283893847595302076566528858504328172126386716627512786644640476171667655934197642880054540543063276488371177857895182411544703347924984545657121238520385884121846196179447003179071204046338970670483329644721721070319272542493625930308941625059672540752699946683581314374455947561966851646673650647216661659962194858421283936180090360573800105962036479412387601422855924964232268363913286887913235768854502300276532519658710817278077507161396751452235194562853904369017434612472510108944087398645724379309114380082819100984805203575870305725750573294453948962882935693388041166605829034042196039396442693701974899497818782317130716075674219600759302477301730775736483502089627993343096369623952725877739705190681503013434700413106994947034802931552343054343070326024826839700916681571698347564242694568628338178373515299588749228905216491881275660770503604554267696371315817302974288482243977791198944780817504684688656122628524573572879642749936175090383868525609371842615006327123472046498051642460169658330502106377845919152476128029032141564490409150167056281716123884199988999502919647435421848998065052503446566833098115988758575295602395869739661085380396225453550270677256559331823647921424444893646463460267328066843346605737419843477720511923851507496848711697604974057056788094693355525755723481899073640112118271778902376586404347553122290668006743964986880269947804095431807198569428973597700339660522688771101617416718504188888080571139034818061918249443555512069021465735621809351590449110368817997823738379644423018354527987116172597186467627688177032013102494303507187853208358550517185108392123101591471301949194078254188663070929432265698399700664777596879397348376345341783148720504990792896044669214408122484043048702904431167653674410904757369698254379306471526988546187047562454553433083946294508473976214458643858735501033225050430973606666014563895632179077803013002676522623470744654790688311132245659716137865146498261248625573501699354601144789849601776447646405468343268260547277219480446219102335672884664579063997010186605197511872772827551517030467094476862362144430298836753368726028656532797362645145683793575323845469682581436718435110243509454621872073714181928409643655653215224474454495881923842302378608115659399522092344649388033275129598007737749060088733394084744576337391059938762246970720278730695588905065419727716040351306108001128437508449356228130432214219640334458332666984830795507591531402296242578094679339877963839051608403699831564265240535504728559754214317345560193925746772644189326878379760641447083432904042647064210287543765394999526681458646048139847439782201469182308298693019810380790394917683529243775259332849537612315330940585774538174639434132927846069132011749392152715078322250386334015653306905828812037562085806031626609950803663993513946927167983628393429856840977324101507691871222717955880805130438768241137461831021023921698613106982823598057829237051810364069739862116025713055498842457035496776194475485810127302789245335851650239249367068480592209595562217536866650275017498668658213685437121640006604507104619361953142792516972242241380268545576337319618911343363684805125387013745134689965101867579991123046730538613235166673787599167881318013279484282062497679294480486894497275442089086418483988761968597391016411038598908294875831637711189966947459391511357897516055291866937697237495149113078865689455250464401493161691577765524513675310004520352636789987797449230071952352866057988970445508526921913416955561872263343247901321499337435269917888043995105684172221962511090235712561546521802913285910886373926742551165794906875946116794120596260893854858452109657733518958324533120643298216086137106047187322094471734162121288246696602620756808213943356850657721927390585146476343849373664026601998067965134247816386121124684287147817585800833972687368502778594165501794691742901952108623571985935992031238134407546302295198840465314034527520983645793433939060642598446639663999426771019554963837610159393589352556344185882556241444923157185528201324038270657139271020438911666859175167159097269978968568705219776649360704597669235633702995061482568484429571705275187107297985982709435792923761900405330488304730705830607224802920865368867536481426130187269981678228617214929209790352482360378666466251084511213793808975319676596663166983042008946245337746197004109888979880853648477526812260718558446643900407505201548200854165013420728687592667302927070227555165440058547321119671535692174954713555865934013363418980464777239321444304085679890647800510376159064045650911291985926210526852635016969444456201647074355454830152163843913231726747395760465868428001839919189500662037956220317430476337520062694013716189495646421012452712676303804638002289099904667304231891226849765394605518669717807958490903506982130308705059718837348214622239138904083557091553390066357767707440056156776046866346389128668481283278565262244539732578761645533446840885364160926090566093490557023885018430576369337970085366373858436409751737277641175814344340325317887563359654208067653071347515839305366063698775636423806246719755776513344311835961366500622299827777943252955569311863108519084702870765843885291329013487660564596566851979497105152355514403574889903375600776997731118441315654940433474149926375692298750615810139649842743628629313520220888143205243325184802014406613315796648904426628184983664141560576663346425729041661298142939693261754187902086985756387584271823683695970724249234558660886566563682328109331389683309410764937617307010649724369535488002212934758978850866151078618553855274202296193369811398780318895845501898871237957712371476504890803068109062507370921589241052920007444305640379423796424617982538835968204964582930344995082528128927398909960768490885973076130968400350217564286318802923185572631699643668535454835508895772937851731872169118467167556215254164462429923189309623125766309180048228773017911041772768073232931419483567322992027750427886427146023008537827756868763388435601774371867188867584521001693486257297682901580577015503824431696463723407966613702801384021103766977291324016538169460158193512948937628056477058818593991802429852969250854537804411854848495286041215526768455885452529463616213967837381986853788797228109476111834412467494632386758537871716522249965525073419249048394513720933758656067596836647833100944795208942711158089272319589524922840538578654282504837222963893587323234205319241122886003390405046953123135910586589464446751112983345379995841771827019272307981511048870791521743847397391233649973705518060925293546688402115352775127849551828481635162440475514116943382185485071620816062648893308878159925864776976683892551510062553271710795686299778045360253445427955634767431724748847039267380727243999317690015886666343219240972451741014585199334106927375772983064586467413403747324398098892020998233183475464886360730966370140119329425967190039863947826873593894303364447062119492224669866543074944628457162869803982194788171203361237575411932899299168838312123216201513421747109191401138452066272632592750881551683699164377651359549266334394108079574031137254201323565713883194267498371469933864600446011856821737524926419376643864856827049870561198169125633768752785134889762054401461936683782215109356280818488479432192348889264254469931039755501799494638049107377745549098062681502693961119054244133976734027051043251778794753982862286422253328680157849392942028270091078505798719904478203136310898373741150980734347287566858100309781935971929655597770507068474155844875775778897547703438598483788622552894662059211110040125485215301168604254354789936080941002866433270311794065023182094312384007128939098072042475770218224143240119803606882636387534944503175197016737432100583184783872309588685877604388562605468407755789975338228916797470923296141201442265581997626909733371186802895193998816233109513751945458434468761847749040513639850943376603033804422131021236575506621769207833670070914509802554953253354574822356309060303672427285768366012849761986849056475924063644233519863253246800450447933196688758809295119374761338577396543302330658255006325496591007412472206224040278918241164381016500820653697334164727577638275628872705757864983247069355810906450139411401446444621758424588145287024832105021192654303595002208158409512802887560751117422366977436402669162744124136326892364399498711435600862095409472056414282181297574281548305466596423813331914720290212298437547636055622994364725110383669618604374276769612480846518334762877311853940527844816898959351003571903427764511461125362248591899964997135084977893758029343108227223803467077469331679690716126609290451726932014420389141324087528810844639491180190105031989844115527164443491641587610846257977210868483116705658058579274734654332498986268803699369239012757783151878733636863662828756873966435938893788592664383310303024478434031942876075463937858534768479438642585627333913390167362743372454169558277674222673891850900760007658460049158766165836417598524443757389503388819854056649999912730995641410829926859565211511980587363961626018748267021635229170216390101664172956658719119365774959475536517393794061309354548570363193699445113791796709118101017574965187953266294166015798605965483948661890280109631226284035354836557715285060935928070219986316912339671061148122102751188720462621918041684775755020684808026762016593937954081459931852220098551765233926936274737437390451117232154478759420710042359840959794624204833844782738761071167582156983106025175050320848009613230405768372396956898578640773971213192693253021389780882915184394185262039528848379805921502954878549125037132171521848543366778091258023148358216581545572035905092318051773330826490084948309210449163700571476769656599295847295808455369894543259244646389078586442111920920896439917611979122727027347502180319409600105014236772882715181166323412179091929564767797073169993942602052492115749080208194895765160307418601063126729087092064353678134399959437136437131544129826671681767904994046202636824902307500995779102180683585409010867834119453797285506163436978790675978749085426121793729106056147195422257226105612252753070200016101702230142312211810910459949616541478708334544915928291355382985047758405273233310586554044422106435691157413264615882335459295769732623977042209040070528506920012910283328854250422810359029089820995285730258756557258433783164926406470443378442999633871937511572780260124321932523305950556048912965726314503413201064007200294167688691166095015358220476554155083567311723945537950450765147276682109197007161778810223148359107868398750447686095811309730501090973879990874737255021483631204551064179649464499243636206686764340971622489849881950261430302587345454986134276439029949119797807911099250717000992859327157154930436884987135293083898962931018263931014795927350826432605067192186504184778685269701938431789766339701398292189755030236099326216923259759602726231540198341156165938330614660175003064832178029113356701271381517212051579464067393596690641394693332616870051039331616870872061235905238157610809729428084497100055770219479990152051623286862031903899286525273740246646865541809356926852699689383507823763442824518337799270143699209117899759381110931404712431003489044062749905545543466564202970796874859489982749865911776325982337523854028913280103613177049354663712389367284512254598046581041146230607338948307367465013865177664391627393006047649449337821822369088017333582333299284034766448145448175216646146130973829813667249203723304902489630373060053807756194067426054002626405463450185245608000893752217227600863053664012147257807501111356665822744004367305571517581481927344844525928012561121636876392380492598046569100642772662169069497676281232419419484517437310526967882801504952303341715017433479908776833258344062341554982770249168884547186339181872809468891932852040895427489647523660586561987853200885269526940343631924081281282461280097749292632861103570347226617294207252481674626772254167075480527030743746860725946362560071254747656458650583064882154461649881250051442749666347369572527325790820577080577234736869694385081751560447354498723009281445477677288705248969097983676981776544237664684371513562226469139002624552344701806478486199776316176635927773070645081105420795364813987698231212047325958693576735298603514846464546907513479314014832436842348195884340370263583113449636057096652112101607352464495754464233768577177233086668763024100734579375343549410513667908075644233919870021331872345812759972835500012405835539116146452408203924844186870893218560114100621378025448181186708532545096028422945044910627460240710036384895242931187838187361031615500032590654469473425216578416915625218344411835558509602035317536038930717355316030423361954506549351242112671963242282658498905536530087504717210139848432757245838063477642282671833453392328078903927044683099880713582705613326172331785325134235117959636416000421170954607198044267626767360861362995030872214449379140973488192191722435608196002492745899174054574465945955086984191570602988800180624147538171818762948697647767409211050688125651632859763326040419057977916927491844652910412258973330632460817755338631445517485736946827340835009738940606043613073935296669119553393272601169542819436808762728668536776125792908204331803602012253941539275500395402380284408355755427629873298511534632415602840270839253509898689163696181749161662263032857418612916783455216500675323546864619594904004938313577530539046850812067495498550416759551730602482210775532210799859564162016255712265253299316756508448057089591961116811034858442323663025393642218813017063606385862422296085146225422756884053799393904832702113989977248445245801777506271718440043310725714181060917700830679476785087285606000005237032284884077852877866491546782249666240084925917448174611787352388055124650017678432770659841660144571758563121694159488782650209582017287846361846810065018612501333217221292319743799558380069644977130588781875937197768403215070685809078327264243850507799929943102576280649359911542996103834759409969226993783526439335208989988688521410082139754272888240930301967118560826105531933502489913553623514456937898020197631156556517430840411726986344471613435100769374293349792765751485280091260632624307581769988132385690255065949828450420417664299660040131246807983141184663113602976707692740284460312766355390756892810236869628340230582646084480509736924063814673178305260006426245475065753873800463561210298581722744687175924857969211923245968123214494041512462333905030636666263010087829223688578215494361989838741852367989428654958475258101488665269576641433675148932660644150844028397810077942566171925524742686861050033005222756140233432247236514225462308530141119292970359142776451268904093243453633026215856848404399637039831590737104176360034107008738504394402470952754800544993070344462970154232868016737691397284778878270574541371801777120479570174418288703050360992596765498710181013360937712594160517103086364856900022593722294870859901399676962121232589018953205242291024207601723342917272286085935159486964041267603959623860275396499596175849602846132715463250817029431136556216758389900193087407319378246802808739479535316100796896582217253595505987845120706385952486796914880549007426628600890667432360537243408709243772308884285454876116164296955081219717232214328517430382176813692572185710546902030602652424275630290015745452314613085124984355064842995472425929516021186659825393425682055073602750510991743878761199841129042080165275161355744729383827844124525095158745363200438334354218904501735659550391024630101781582918662362479280198988394397469664675196742680151638151730725739311061098222906415985651202878181494660006170057169003503830300564920212744925696181746331484420065096510365547225410892744249607708548240123087007732241934361053860873453264341926444912822761727743442182047213710446688631653126316292661352181308424940939449166237298283434519743423042930351837134493979838998024569355918761766183412509624979149975705365895851216366764336432212580095736163877211771077378220947547403092802904775349166124635006279495722018735290483558282213130990272681744334768280124342968183423536582522481189032852787759833861078806451090907186457642640511222092155327951854865664184946596498472618315243151881663460494180359968211367607338288818888639287627368241689593443929015256228859383679710684218312956782000736342132671739162633072984914262957505163199828613368378697247047549547184742612071474133525754437966050392924587462670464558634150311813661448408315937805634041888474471328099208095627907394457871615432510873614137971407600146569573979828154893009601871465821930281484528731930792409891002225249104597457369428586166210680987395813881313352042842797741989625472467808313152186873288142921072649117360300679461879470810517322516843396227981708747768029176254419526052151234522936430809424091876567747146007730489618490544887912494325044329240442513758558633049939659051361550222926229726383215894700739535304145791316535619360901783018927913883704235728824565022810288150933995590681137663904938580195044520499756470927601012332624281577870992239592007359866648552454390037977402458438424866006406530300046692278095949350349855774939709014374787102193906240499952399397415770712358194124771554662846083578172785378776061919393453728830743939973580785767605113069074963789598797705994748024200031206853989024129358497732299482836281884412821059801490097688097979263876296882491195121763011601236756392248030748171002637853758496237934371482589919768327386326420865146046017890289268737515045533216022692389913864611658094653211704224618708578658001942895270372725001305042709217086334934115262139031131670704270140271419545305444513314685431181122016692410258989604439833298254352166074670869431882064586935075500899865718794609311537715526690958245542434275983192346911093282149173390630741344468449184176148766359425636010585106537149016455669213361066454010684269588349995502228127762600206199899504614369294134551968875758476006147165341435408420642738581200505263912507676266174288719211813433393209434397052715817440507328230132442971519409355287161315466318118797471543030623300735765828626721371169010303627228740800388044622088531196014413695611896050269156474887865630762235346455683493868753345865949615143861011641907502054170067315251581986980263595232704373990595256315982006345346882846234184501096733085476927291820983090421006628192711392261477894225255031334432832253165718857899168998258090107273935175764172840297272657292920396349934832516526894213139210401203380964556063245713199655245787908442438477383352109788951599208454871251372288361201150199623722576262845962090100230734753546026808493844638289302459215582922438098809560315323593818064333498092807152619410144558451896053203093406136382432184990262024608716591068817679995397956655796345422754612978919525476636117535733972550882721799571042313340220811796542822030060890576146098863862470305953499229507463563129136624310054809447664259936313454147175709683273230106139626253948802432450975596461454589234435409013697500180022224886773279470207059339071207068281640355079652266062784591220258933453350738051604785774276331521224653003633619792114904450210638897364758569227138558234231776503869818823068131854627774461377023320323644913674207446264159058584979979460962357350510082331068875642746236312810405489434729673243113483148381291305887046373518350839591076732917362575989464656189961378024273329269139314989525351864340596577181391867952557364906675309260357101467863593873479342862217177293262848959514542511841770335457039102598602376330670815066390155573384010493087167591247430200127716580893303601989757635896181938531149235059320023008428855003400483522508446212751892806846839712649108178231009874849532899706683223976602164868314064010607773925164068768627920030268414224219775946790436220821648441394736628165738662945645209888620046456942054536086560665360252511050538493344927854383177422965363329562500512330134763847932355198187443100203424705456799177955581534212789403601492073072837541109821036377293750234066074352630247411016668708914391785337642989604021408944753523827542916103862501017151522938751400344355773031583101978597730925088868573085858322155533254206565600126814801935102449199858307356059620230486114730641969550733501187822536443596627388691427151117327644802183947499097048952135971598467818899136056898882128733859580426873616524402910182408479718061343022819699419768966309791394398731925059872318264744427885618782481024901320079019443538898908023392188531084956270020813580696298069682384643591979388618474804699601306290527773914444011040262450187233851392336224333820999420333160016643687405605552616784139069431873070259115914445604432089929716493447059687148954128387453827777478756948082151538077486278598469998825838398200712072885722487750353739906802223397617697606017442715606188773515634361475497859540756607510446661012573352341984378846668133858692703497058838317634612861894320655609448380179680964127108989062865274913493977903155266844887009345273347693341882625214121768918166974251732076571124018163107220468858608905194580548731107429779430674014180723599611295157503051228083023513320735893753452609449500620394420868882141548307163072381776303675752472757411859046115716504791340241649750515004029015166576360862260350506346210032587598553596623171436985910431561401362896068947390028593792923584793505518412245812378501788961754291051587929067248619717518970287372347362921244884783725691189599274873790861576505504372122024372430392703028668212512055123035138359381366027934745849424212330040225096607145197582782246920008809326775388507072606214864389006256305507982476453108832155135699202667566365124716862433118182848350681084886287794831258124799906691561694633741551708819702501663380736680349032811813860770980702259949235457576624104166197395483248916078444250739190485290986635663607465319135104917955957599691108556785453797803890491410500744763470523244569316761521937385876516159202410095940232616853930685050668572310248794835586168359584010255097676399778244801391177215731875946062915032524099897092394087634173767594523138499962756397305773757785299149832369131345966916872877595251793709154833112835148784712803657807171194787550588039397751041677623038546408878323282128338195434816560333330058836538335626399754675088503722942621009793351793852455741845094188997284851779411412610387722143580801745253097270999318856403837906092963750209571732114970016267984081455245074307409666473664370897860944604345057057342225684719103450547643912302875264691468762539683149320291729884536109082974751543530772234802304738253077387671837651915632202279388510628097564931130775264770193016069012654724892637128878382787424294634525902702836012680361900911644631844617106639819895386739004145213187101686432833741684300320217162107754103132239366112311343959521662916109057825127997520960588397273017157596799648463594056541409998564514071924187808564616736957283030278670328447988642514211398257578321994425446789986883266603365237618721015191331277597116099621429116153215182800292804176937295224647464082613837370143445627378512866767912896825963649654166278336582579041258292186966468138000086509871126788321818284957329885076560386765403157716693641211711641875710792776513254928831491192072625368689278923031977671588645878201017227336966243698952732196509418591050046479465262613194735583948085766871496196141103032107536862771240512220599988770664769536006725256543254198976393648086943800832992919249066337218945083533218375351124880906369935033752915615829019460150017013140604583545097965478274120828111959158761834719177160379207890332704505664010156439769585720949390295882482345564733190280972284657669975575587339269861205631229347393958568308575116357893093933696190873356766047414307574579304471243622517347047089660260167944022253573424625512482669956580101411917826718091247910190199553187399924704409431107132440535413120123655770999954842978058780967725710640815794411962640990604602773260695551553584972579433430130638617855211386724101204414379954059943001951307168457430818348824874349044036459732277013617091513475342862556374875443153472065294042733313554676774764842626644137065234525353012607690908157964117832411467783956479074022003785614815583333858625523817953875096855007428554279006828920468714634751168432599405391752914705572838096795252531703961001636182661317695481688044502814071130618374036835506411756621029156928380729489029636204774419370758824537237107968500065558408594154614536340473779225913057525350440522793763911577671448363436210633545308696504633362027327021126092058993057413473236123573052072070705893240812096785107397559303957472373521419587356063866943321888741647292246249015385610914042231995040990924835320061915236413253966040659578070586675191963595982152021240178751863130451141894863719959643429114113781642829823002132818330411958535195953694858980192305055600080340337459822942335102632979764598388659539683898736586928489227455992147155072364652495200443199578262539882469473404433653418140339400407977079238948725730845754780799750319289190019032716725983498257775757825868532556565237380947886062818559052743820612374089889005017328975191810145802925294759901712091851446787810784461966068408487755062035654121914447521584059779086400880344177247160414610725447982499377004462397229020685024962710754331008887889425093972981017245341552833957598057260150102564797793708348842496422693520745633792358382178417553171780072878707629631776058916322356128946702687885002722848821733344633437849564015821330839726257079005095011819459653666995211083672923800578769850126222946712410638377025936127797653852904041206672251201415760021547563813142292377646856891282926059401230786426978682719585420550021418396813160548968702047870400771313969398449231672011393620740040414047770591690822899070788242872528509525841007469025137138863671835569325867850478865896085879257522204126877256382611873982276601656831714026414202885960027258662976672424745451503672933511091903991576770902714185410926997049304450723504124856503411647282442608722655403275547626633608029879666915087121487910586380294013363589240793696944365589385310486315113286236563461750019754665803153923050407202255239455015836128353665147431046167698996430504011675761419600157782616462356816490915780213613293482560822958990375104832488053190550194644254756788662801208436314852327502550831541613524577270440119062412955454709941785769186844351366544461634067390840575176788402919134181079128677488085729230108359727822056595452047846237258127676910265018878415675374297551897703989791604658017503205221617781387085785685937003781593187516639522184641245071834520822210279489444012182110832731936728889182051058230878630502916078601867468142128092935463313999741589448534579917347631047097985133438995413636893087200879569385696036266262959395071706211478148785953601717469282827522226070785328493169588061507740296499786541402113837046799314115701918907568363447270189697049179823814569573011149674091067789037653593986903637998954571645533883262527292287974724937290386130696889554238162571171959433075571344335466282780577177424965196026776512897007256437940494289952348785181944194821808737057499346723161492414015818075107035994989648468312946303533714864409399852949808203078450328785806677014531617650063180948112970558297914776533579021609466979075301018496218809891350516593477273027481505636928864339332657120487037925471921313663175445321975751393069144946249800078667112469485053945325603366855376047090795559600453512736002829694742236927595679486536524716260744739420815788285066674522657595623747050323994356799529695820551515763802368399873916467593601402482322828122028250753733664904740296491948237612821966048077511355117207218420812221697725621060281388659551665572571239330577720734162233842526594908675208412605804715315389227727156434070691587258353637125308683688883176726528981226182414989552166814166887893143371278862651343237903469272546567239538393262568078201561931309838821214324395119449836916539325491355255146348794099750808843403364528549322324665509894378345980573976791416193235535367347281941208255723718863144748320438726498225601634106551047224098875782020493002355267382599982960126198892394673669894315010264361277384775735633671914714512850547263737641569711490728198382640606353917667149220943965495427351236791032215782538186504928033291075922541149749714899711214972733117301693507133723022843854556951103689411426697497419957804649447509527527990023322361934628793268793181441353094293527630042835133610126075251097008455555440008960445879013584752931039187487465822931343462990963498259134188453208569827349928996796367840207504057617976370646780142469417844782176740376578528765402664569731858730227048488394226058336514745051248434478686597349832431488487261070527325070038712645924540425691870889842992527345638414821578832581839291778771520146732118019926613140877818442265033388697904779603289032827372330269779734355117138655517363112590776092655119571738459212494642952246704419284702819632983907848770055223582523803211925613821261124766890061961579262052975707630518541003786303190461405565813964884661123025253020149417115273695600941631236155290650938623845530968191071864654005056673345546776062637585772377969641260068536726275473315973449319722770396821134967623766154487403051565392669686499309178083731886259701433795929651421345106097548286014318639969176509085457672224937761693757269621416804314074678479309659099608332670341553697862753681499127933813117415419953498719952379796214472110099713839562085979791627723721116506165126719904456293782985648989123980121368137317288012864709232016058920178806856828300691708583304688665656083364602142010761783387285449713575334649620970155175895483311627262981905428905391843860248101919766199254011017759023367810233019087864349863212984869790006483905193065970370895283934812627506436912197407406708547968434329701448352961002337712355509916332686985757897070661577091679803251830398227891122809008576449661216350461547497784127599513457036606313116254462805538230362140808460180750742465742323150613196011875303794597059921314989753387238984010238869228471839958255676834236033559187018939736549587655330153503393621413392950413219425489650342945911710127875030059273432998427662698757055563769865593656666063261489886587297801800785479171144121475418895121691150178278840109347868148297772462492524466486931383555576304214752636716346240080157484683404951496213055794728580823031378658249943316224083405824436792089213480817663863953294848932826912415093189699698947602947496314543757817611330566674392791949688218740505562758643845750233862070743991584629463762539308639186003270014375376002498155857630023271313229817137604207214900806318497751226958101105438451303451445196621920775810108936997232783194784247381057872605431304184280475538641754846042034533197720968405557827676864324778604780779136382853217329810730241366168969682435526717464600931224792676910230523991121927210851113327548267059182260975075971231579590531285910994997779184831431133475366651000938545194002272953118440178340714610957252397968411353943449084234696557256292669648667139730437967224448337127457434877989420198883308345369796532823837831812486508204429380531973683033190979540426759561625765827124498294993308563656207808720086129417212557545259007940398041305124424974790798092022948576653187106746006358095799762585479821126721555788520540243064198239848833136857854609244772848748571499672411834879019488389536549329500569296105884627372812548030616422658274008503338459790480205136265030250507885977168933528488143292394265958076915030153407619083379514732985930835356939999984310436338089026751710408309674358561095939472385489692066548350436490704460402658356029066700774748593315271687998929474583898837695400419431469774940014823535826515375608031414026755969021290998167727470311634580124247753512474393079880492466419077187860174684195675996607499035881528668319392880019041092716101526629847317572178652069346281998137887461234814086468406391786235978930020961432622778901970939224093585694193786196702535534830264848094518909419918388805233978215841069420695591100806241066736905791716621432734795142835257977513251312312621634289553411206051405036633694033245165440060324222877420583965037383407555067682864439119463806813285476948899831796440779882240019800483333418505894510647687501335658181345286434256778106224315254713785121487713722420808398793147995102995537242646086727091014035677053349625704812139640102458493872158607087834617441534597443749370991445785565011615510445947361678318538787659351300466906372028196152935956050056958867827987878424453197043816046996387792762181815650580233543969098829683065818760622734477787019170002633571604598267066067436176625159165197280634968364410888731299206160858291343071460859401530755093775274932008791988054536712167175046590974375827472467440718331606953555424090048157191067444690746440199829946753400631373534392864191334308734672856202842831464050975642889616231296414724707768023743308002969122738386189064704674169806702208277858240557835405263042939246155342615323037231928711730429589351916243437391047579907322003552386656168622081924290212273589604930294300580215569000102187767820833950285954043645842440489785504312907601598337301913894575716255054456023316862037378740801714843502160943919788529730354346025209768671153551791611910634508158963110801232560825938441513641533870738090339372601848540634308115195015372399503664749163710541878801362877838269191405582539161482972856758653073786120992559266302382222541007472481085295172719129147043551991708572053203596724876626474340104844601447666918992507529878309264062809535562376598662317717391962971761311292911556756043449459688770813469654993879450804015893784076429571543804748168645987752317365377769713888552381619677208687610097780083757911738098351941743647506278543291420569530245381556468191878386467214106567877549889641471906719643313523951505661496477425182997692403596436062523550493330454745886095114813570412136832080970811910921298729861359314274249694329814789258775209484444148587977632853872560383632385326264232711214778003157558013733914956619941280743199496188413292944201074692666290262457892880975774329698406714904540296913588437166074957016927119268517529862725299622211103984806785399216432866984729774406577475496101119963513192652011519895759863741117972081249125242641601643072175638183521742805959572158333369151968633051240050969004836877165035104444390929226216940361101587560247106725839684264530910453302278339828780929476717836836493564498554156312108381366608800351840642424333671079640599347652182346727564427234409298108805801654614892409811327682630505794512268124288232868237808971671233062373581788208594443834963138562740763391015462359648814286108202738491933739808500046679634838608608638443275559472246613720255330499843611591901779037260179571773759678594061398479290322198519460570579011400630476086962801577203758379191194739771694762144988098393840423829163085296828793215906147697220411675983268725627725732084024114444593544585952669493079409700674192552335403724024612730821401000102048354665082621618495412062221791573694778347652537321479870060355795983811636488320693033412341137530424812731149224376498920337428230811107298499158005652629153841050344147333216579622147028869420895517615383031178866519401733760917772803589334743623928422632176703431051528965181772171850359228152352534730027841923265939602027319569575663508828850625304885015287925418292355861695277345632479946237707797697704569540928586289049061914465397120157792655548594449619968641874283596640326203605789485396155015551963380983444480844405855136240432036316652295448324523239944033263657022677935972776008639649519311351323748331104955949153891803356282252693390117162836432124898665832238436456003063334805525011405702872223544853829851525588574458149394020924926242862147183443029338825791854014479342261734327087917392893231188166179195644553464870553297938267395510292129874580684605501966758678588386967775327953340394704730759902015823491815204990493912227906799162633583115793850797030519719641863220442477889842985559007405817984292233598097673341125373640705381914814227897058864950083128017254121171291815066750472764335244018342961437021626993023556981279507791536436683768088337005733927954650553607174699709885815217363010669280001539739138892503414208183084265217347329314186216904854317516059858444884674419105055335839561275682164013904972951156051005374673518119214809505024103620079849656453963781429236257722385034066996671304667072197512227798648097363208419322538369709343213061531782764450149669381623155898735541088719937235888902224323835157926323160143705621837723378986772282977388125143750290778491281063308890790025295650448334203236912967979788274774348074227987507266633267662308347529721302057300848259626729510297964547381268496807552129515350016759444583416371669494516836934466506626618540924681309680154696402662546626544810462899622622302420837857012182987974134879815344726762330163848003718025026896958888640022612803092383038271955135312363130084837384107803573425680167304639189311967735443962058153344152714288922658690291244113524513702607135677121887115786194868940544763202513608485085218567669803912056213449056666047907067559622596849261178829273284552720296388685559815140218338854102267028559189535757341696889421075082139019070905562893422353062311695378648603556554498953727944603899377181123714566446235830533116537018674002941419868244262560230839945620254343429787453699644817967954545781116043498432616743483371523404862935448906080522691705497944405189530302720337087291248683249983612600250984731798437133691244261315523790402319834515160420118560148236010324041639839852337235487890968591713173406288401217247041224903504317180902735185460184184141641763252859272923228949845703500517027524116315674455472556610411721841964158323989073348935960420248642443167702415637060328541129032011396719518448815540258324999796172837371916138359321971916831421089865740824851839609820139898972724339989597260049387695859762461477612480488209672599700875338163314789682969885891493723287489694669044188366197295356375876327525954449395521974310553484979800140539782373941181366351081616589730110997209517451630786939892520964663428163676030770010681737065778317817825920496231092065399614106535893805714456457791171800197627445042064712899201454314914717726347432488085036977583655568067199934238771025178974746668978827631776291219490275280096208914725799510470849129190264138705061142537797021387033280297465657837856839583896726611412910645654052717243310009143256499061948709396609982967373267672187516139607787867412402216409724994478227285078648414054565766320001527295669880518602085076912966529562011638607252319155488828658158995389522207727345308552957989607541484999010303120974931720818496514833565682182674322658978236009050257434469079033710340157674954869401337768442079321218250023436298692851002908794892148374769187884568105146143313897772049495632056892640245569915555808279516191735964957498252436626428664137400913410952521593304492974519838103023000370277810509710044482746615650777811954278232140393640040008098800546647155036393573838618235530720613849840212168654178048218371751862930292694583541514950564395416475289801755975907404122140119463744697589421922199385046148813750030088629816117047791406231613362525313988487763559232362455607838472585079295735026179789644283253160949571439543526418369869700940550170736130278085668614481402735082995156216120954081197926048757363144469912832806757417677508636455338871388877657124779167388298923584238680562723902363816067616950613974167140400991073946950394672754624889552141697435618922861902056856981659953193024584775239514720204811189025396194979744378541816647443505880644092223894462991626469299065160004574864183853816846924243457198000472984485934940971515601814074256804367359338742440497823891101075650828981965901135101759368454696921835472415960076590119738195109009595403356443223231921151133743865410717973464186703278882168620255840466399749335767230263961405775223131493827437956510473000500987454494855879707782038914630326681229732380561536511895441367450630046958728923363591408445128786006682563056598705075176039388715136144974741954740133726159048619153078151330593938408573769086446569657634331492744579756331792691703260938516683876722540634048287625692265772607699855777286929553767752472468335570083499681025818469654771359230606936910441119792264231371157062039477165193808614006890327017332491163117240837865065492148833167831171627152567064036671958762295219465386520024007696152316097768885781623343867029341501336682410152252303200547310316990000416499154004867469820798290500099650262935121888640025027788540364523695141041238597544993453511379820876496885510181656716975724481695474561328380580151055135359511725349483573524977752344689878728377806152503897466083791206843421295802880568307267838265132591891829430551247537940539554039652048384650716097427518926306937940303430486468326892758542182056045093834751019643722222766024686450072095653829474977611090968318777202144944624030774529208257491433897717723840800218385703598679059787950363443083462627524190161871203959564118106061000293554585984296999017752150438401450747196755238152962552742323727145872995259430368999633531512899713318502362655022696599058081455137812659607700743519165670065620533989483913768129545519825359932692462919994859125392674584899794417052345215425837069846154671473523025115652988693287017985732417072651721806680327594619633041067943583663597627522189884919107987066534828280578474897060639826658300265958300582541722322559654441700335248829225393691302023922664249791289629142731287902211707052360158804703066391780783167073133389226853132239177232570385849188831537407119925354455562488756294968006739148537224744870035191249425451535943340321959086722310459506444591900235931965732533698676752248926606675299469438902985337998144087560343552130928707557692518455903744785457929634304309587941175039235913743998826364704867841908218423058230569190448367598178772307679452038288401344679727872160648352377474178819115960829343668913352200098284993646008695349423371743122818493811204558777712842001016978077467242372069804707421338057829746568263428111227384948955992575122559818278649400697443079036230736549479856103167230837459360381672621970007514628415606370381731756155241240084207935822567651295025414090978595550956355690186127408616990670714364629783342677245129170956129650284070689506461919432683814557534488083270290751541445928170640776831407403786629969167696240586882177962392445600579681030519511488906038308254487957720461899508306966925647985454195925487149311619064780432692167848134463595551216508287893558993642503464369828547240275426290133287160113334349091529741304744166082143815473858021587439372289874800273670644641791636820048518895262477942748825415610683929915269371311593058967369049529474084903379891305525611839557437512940903926123969078343114540428746644747485218073680153805079621699166659698832312697905014998476616043900410518124637463416494199895935336420327102128645258493688446665396647355268368570416028116625910804195715272283195406867295297926837140547910748624369778236625206817792255907961523111996152671127879912860986069869590879297154313047377231843691227776177948900982107067673025387086192318597242263732820275578237740329985331534731989685743094106164215150408107075362720954607537681522850638173490278450331962670406620346985083861402863374988366610558296871655201110572268006956823542712525915184448547680584439992596926457525291660395772558095409981326613325642910962849190281762923155660332038358592713344747011222586177861558504814122061314692840910901047985673175500238176308421100693639252824530928716538271816455137710542513340495702749816695425348799347910274316818209397921800246441466423078508707177682185899148243387268248786462923277988699598530007637360089074049141014605369344389349188802405685735152455114420169484543823911080373363262663721695571715779564790525728939704169283352816177103717977231113834592884885474099953048221638489871595599945661102824334983619460221825121322822193276869537475499940153478930751127681300218743362690218483226374235004713424230674443303005953763098931258290089337696719364093848053728836771702378120137487499592433933595658006506191601880202250706465989683003485199791514365541006174643176035672581850059485930185156103182063874875144530908638616780473460447020458790156449344128930250175397834909635930973890118717760180473624354240638771331534531047086347400615380011401236748857166024693407793199387008898905848780678840887054269566138212641574980782306067356845302040691682610264501725436158670347838104362450794107725534282495404948393789085124254429262217609719004630418299221226208482147098399553064886528917182105231737502939871392541179965792304528768860985214305019090822909759009378117606258887447590752343045109682862613322472366127286968169382153338089721804535821610734387344730994402885745028723708049519967237962234917875023679478864022021961632121400830580396484550878372657247408588696138164561685172981701747268002712347943812746223761073199595277311625140984714331405552856051656746980349813338817450531587293031757857863492021055095755731092366678737421952658501889946645877469057974575159396829098037457589475309393047781465822575504503779586265205539459042368234787147342833659206689803448162287511068404906187379683020210756717324044519761179203187558096398981442791370616344447872467328416234774869490523668732860120851292727570735047442396948727227101512514861938583656528720844317409442316999957283561030965248588624232827398882127565367789432289338142543062097119781243029222843003749627927259122258388189007008098761224186165439640056088692951143425166121957869951614477697265516014306743964892207709530890780164281962048229444342698599175763334075294208927373064599583452163547627303333560488631981598748054808224403858000190452141592762830352952672126923066143561982936877280444040541680128352660143750248195703050838540646085757880734093675975318929296954912334243790260927703620259732826828841101359196944058793826551500864269995236391286787888369481770063822534420171020090040642852007720195113861081344142502501747625348200724911890292735786044586502097416097789490899812062326796587233455344526556154773408474682295760761121683099186078915416346993863911448275295463084915939723226230116061688344491755034237012566629070522131679097359735473237185321455249091330459902449958792475429405221320831991907590933606542183521803597770811815187882707516369159136739626554810858277221763045703747147127480092066859503043192760323621553770318736820295466803297384519948621491709703277271974166767528681867616377497341216665339518805181605576665611930684850378707569931866020165910340499074522555310839771926254143768664084592948662562140574029458677344225494576592005715622693574361679581392098691028507318011573552378119049083304237202772546815905545712565353031970752146172922214685726149770230514657351010481428873018943316532554682412036490873702291012332458494603034777294234699416927774409343058435874539584324023827899756148394325035921092129222731458303065732594263874897266298569731805424051814036798901474270162896072683083111971970695417697479665951785251597656574390433942104370321610019849217527393911239991592403827098727938349807713480555346169120432589308159031011608972441926931459116718192946638935714180383603805800337174282369777929876757758760084292720760546459727281894515620924190915457892289278989577459763904076713097280303502918958413847250199538261946928863054976721402859982118700476822861303265113956786941563396359101749442962393544165984662051538950698428427998842524865310432306367929153800526770231545076550942892764263462664154659940706820867620840876520772506785536567954837355042806184009215381943451603074801483092388304223494058131149799630232933897589306297978285871820658538218909034821183333202337094296531180742091431486680630406271837145448203840113780804139183080381767941683500068860989485101480914832225150827614023835592706220941664082364809365156874016689133600614482594229216284376401532138796172015259663088647686838017343022296604724640969579690155701048405264910366522515956023881314309537122657169631855754010593020361633144647725593004716163779368044039355016582200869153236345899504220619224083007790138517569091340611704572317523945259285202984189568589515534413701796179614217159743026416002985065591943545036208233369282740796918424104409819789488432797312757977087938325439794748746076692700211603490728813794159177970837060656942812268376246723516452222757958520379930915630729856889545983986160743059110079587761739401898734997091349179767973550345673178737034550362817501861628025383949347676801877446756340339750215081928600580746455966296442662183363667250531785175615794649555662892842276958930728639191927231064113069027668752449134494770542377190144718738308691539600614294888944044633075340197416790201717934678764282645456855343849496948155339624844574044376800830388528944091609133107683119598760811659183991026805912751728894544524975521430264303100186404641635454400977080300857646400754312130736691764792008500733071560880915041813887041575591858618256134784404826018724234691273798849232320892992459356353081155908830723508081039126009490819728190230253008932684715979929674412695017355396011204006274166322574221893395976528785255113174408020156535064867212202908115790612868278650265045855146117650916229115334478284779420063761987860284913896494813405719498850194797184283860381608388709972056635993689724341961432540728043570722706837414627119500848410252719697788099259191940938835148117740747562143097288683059327308305821237480981641141969678075111648191961081893390297210048534786190629956559468710806795298579417444514906726406073204894923078023981575531649134630865937855364180236622491733710790540329179759891319020041523569991574516020974118751783095713354454958738589447152398028819844967191894957147290728997249761853662215091677010363495198981127545061558916967687539866285266395663687899852535082988591843846572845201829962869337899587395744558926405911469871508307320994123669024089040678719413355753535499223532629618656461371104370370180603715270100372278760272424971614591155176413288394187088343034305857833638427501832119020598670382655474909837899052262669837237796585705115782464394377821748839602210175898200299909572385533671108603078730156672503149861822941149060267223036982497926189892565211552305699039116323915240806082343970449171126404174509970021512545056941121294775216719888192948952924027100583931443070067728535604668559507373490815098150399980074472715553239215560333889751266727448903983965503383361326140446032067068150055222209437397698890952473659740343733522824004811712586267048647213717821986938675700064782835166056831916279981738472057934967960870446714826358899060177877601593700585766784059757132231567030955434510465956096876973504567828228487674011892849724290840317454234782583366404490822822568169283315981161357918435832712622280594873864000161728859894545511690295614836280278716527467954042221271122130434775733872361621590660891025053029410581671420025566499532255943891297702852862407361154563091556347587838123390774190449199095280922048045768374576374336637125721105112137845206602714427400444491007238795741674690760329191438923015491558892359098135962412426729633128846512368970130737804746902401638787244788828468659660557970847394975106507501981532291697623810149896272366369126847979879170362239723884067610515153146553207789804184177291310677179849187394794256308314689088711930528449696250733972154513335657238481166853181991572063247842331590458505425881097369694526106722131151034691651855801608702199322800594414069022968784887457316562971031209525694809760962661937881774646682099822311560065048933959011424240023621034572357792286305046297663342868857609682091685802844331449882270445050984652921545944290072961883275347258907712662189009412903002777658445554314810968072760138560814209774339874231024999101975058157888547692330638810965256418929850242981785440287915616736598822434798787251767953089485484329839389133772007202875759756968388613225402220967035404678253225688314659578612442248649386784313037727411159301203223638003530086464078423016720537111633998250186562820090605034689569517876578472968769005390090121989850617025255692617732243643733308895573172109094577399419160496506925191194131610204918813471424587117098760949626027334405565428079336090749991374330968033004297158142977013005566535865022710855127305289105196632625352782563313809884507090716305117414968503252951045753993002344726184594826573739197121425346953059106425861150167698282232179048645214605267291879695568632256076459354041194882171874852507454315140658218825928808127141692429960921570410744391865123104086887024054765849761492423311934387110984547463963174061954774933011753360042197928450735250419098516438481622141763445783401272165689952854135217182559233044475621724831237795309057443985092684265479394668615936407470516019660366816550504004874407204052398165503907059919943782343090094746402719485100024362746018759357835603291025749544144896019405497009802893375276220174170203014183955433910201834567639500349344792971939983385067171205607944698132291798749931962968971689336096892146555582778058145332378244058919750969295839961136485037664707259738228593055897885989060464707916302544072134097439043107959098810398493372889157604292531079926538655803213639309591506256379654730697126808465156428183289275028338415414155413764213478265016987785451994971895159951669543296530811589127989235989268556795057629522809380518035269577506844327987572304791589687910086139118833273010653799538801486828847710103698355437291861883305171956990344590230653040518238909183362827723099003630249701907027963987985130741043703096363479447231239613111827460636920330217644199231472688147685784480801489672445443047500331561319973136744698375125007723506011554176363150636190044562021518888284449584786018827506455720927405949740293863798738672143570610279163795842119637434946407950679359764624111301766195172935484607586412861963052096211734128603563575478718001548342739570338658432920896680516412796318287532638940460842354243206917359818101254760526805605745304442797757467524102942307965071137217428198803436108056278442484675213130286149032757850326012235579736220657700068406350443693445421439457403968176510945192230351874911241188682941163535870764670031817508454341707300951992589490485320389214825493556136552799084263904989390882076150552411046544120870057589951801251373991672407258732897293814747048946529335082489496911749621096092461248997028088004367075577914562501869171524810763746484460058790878797293703813121450903687951225756278315276537771030563057316337556878546915175440198782401456708969543287079736721093976777306931140147963388004307756377847088182865173348924763680396745965251700828298281825171428585141672783501197552305840233919093541953278668664820462727211207736907223102407639666313186044295241223753059841184321854437897281165135529417484026357965944777311881096260959399715585206736410167073735359478472340788105290064007133703747450704437221093075211562001094527106560703553883888248140758709782306502710406330625861202033032640535511628726844787090801023333477448531239102878543729174304350247620893606816151101086394371093090103363418402668138291019260465023030728758006882400203120141878177846572791797493486581665364522602319961349552173743924833940364062980501917895199948836672422092879384875837753635271214797439937735905041167154310314615977596214604377826487570130756064179091510527231349317147215654469567226581516146195135868383837780792906319716193639612840274762834876701548400908279513048292190629759544163413581152446149915165367619749672262045390444291210152505634424591073384225301992693660668715674111750634424923328357430437884161183696801449685724030456847562778093044236760474268154073917218188737476881796725257275558498400864531793277057963536719707464935523781421934143657932708066942529624953619669922741051823400583242815054284763651374672097286145932335815919535912123885549928174258584794955257630198697696160733015680885761046052397736211079450787106445153972919015475004904655768835180961342089282688883824693416730236836161785597454807789587659146608378863221660213414477026338727200521677441180064924942270926876574335388514216010858665357917470836538623893513819928807875288672536551433327654349241828955953399965703615069092685555913922240943838720705675935259309944867967452177257793560303672493988143945932831474102097031969540948084615922097743381368978019812046397747983323654808291057591990435770594262479860633798074418483044532235641186377081367339026870814570071409543626263078279361071412515679880207933386963429255767931225729026221455519827877506635443112436032114481836228470688399235014381087517271328421575155830104339370218111113368160650514019709683033951930300907835767200928330424248203737938951491157590613734490154630010955077694617756449584404523038075287930873489622390050884193704999090599838704622975647088180005832184419701865041178902591903648728553133516217184700780937040036242820285269909627797031840227166007907811351238765301475127387264161268937987570645994611126493772537559124021531463340953978805282157406680543710209759864098342465067686423189079471207127447899410059122752652041490102528955992683383802731719064999317855590899080185372953884252609736191879055950302715026973445615452093865671828470597383297132955466394248571169907583397207914301801078426039475408866617075337773013483734331137688459179020919827548778076807234145146648544919422690295363161648963576788139064217913026524686782988598361323881077642143249873124531837517362429484068088994073079080490664815808044794095735621992777372309758074519411444928684932120401501836735343668462327959681529611678974290592239316344711550592416849756884772149097068473423967595101836440625999379728595910176591167947297555091836301366731272365958337085966502536082954683216671114043336169817249938182444307280931769810144835601993050283334248939311760660537337553277476087688131067976396209831693397760178011835736854034569124393226904434787169275467807286659254685342838822071438296279264406722325213610860464298513149287464915841639768599602066519758950576830571691898129401462710226857706215340054468257309426354218297108907756018009368122882507689539270485217439871515612506042112313379535317271523626330181335152491148867737329344058198092237740786926582261608790833929494283414091111572340627394755296879324155254166390401545314877295669212347336926786187511344546566122746050836678460827255503852437436820905340851494433988727907782060898738061552386932288109160504509150818844085205647237460429906076963280862358202998240815311403975148711806515293656963911734277443885372117212261738979028336417734434324363701220065940429109453251767450080286580673221114147523796986480393415460061611531163412913022979182681302745524228183734808758424539776989752364756390599953782462482778423393480709782965929843597409993574732630290145194842719140712493786712248125273380375892371277200668056455052035922854353816975421663277293864988755568359131234882160306733978820095059431892223774062274003833542230389337818722561874508615688334864958343479629160601895879730419525292029783375947351044706931105355562540731803590912368932679031358260863358142337184361906475856342798487795569484808663595204024199795001715030528672006598181953239419796385484008629654116908335555836361571773557598104102517283183115112862293110854231423098006696086920745252654734220775056088047035681797342525856853525115462746237154882648836642971165219012638732756940383518217136519795641326796741715304944584207290878666219856605961630839027996845762010998772339486947813937124651110528114117109571108199936116692018661246378344595455800456202227626364154210680253354084235998117967564847926767464859898450730944567663232594885656566139977843574425316986512727345811779653782144911676037981885632346161433827499126585989688148905938894876211765838100914254932005421228425106320709460547196245019841280443889081865673958548982908457508162766982633339201508812881044968425816260395021609436126057731411299997854444973251599839950555990853847413584495793433114670466267090200512825789363218626181923459670220993910772539181706586636114508039972548414598930667568766988438348166747147743932695743028497158852752087628728559178098441593323658807923720428114632516887292698798789977961379891667295406278979672778377593762885888699956606784892993019886045504893818861674745561955540941640065435716442553748240440223236507584861756668482208419079591633385225340243204356949575032943935384332354162701173436841744735925938374799494902610956632331116930315676988119158237519267086329111221887313996394070918047292577855201651993312710390733468052919627895901305109413084581426785939196250826404717881829421520790631334397802296165423873498801262276402642388848816149259820806280332139031700624775166657750652166947497156950858710883374503809022034098143295869592533648534101311741512318110995426776647600790699824020412583914977672807050963256273545811178001482792191896902952036187314579265314568657549727443194592094617711548644790626434292369038558401084948729982700859903845163616991992059547941792776458031268709976628231558982942107802923497258932141189613640261753411733959405524831410527592388977291787540245248504201297741602870845790976950116196622718443263258506473157142170980791034428946441904357065854026403883142008525860329143986941875960739840044374774664333686976725015027522197665570181456485517735455739702396396931635404039403965285529143880838907647543171997169748177186083149171174636313799455295035754746208548292926848223677731998533936544711568116017222284747474079392259583704712224387520150280326327431580393238473109726662373172944890536911563371134276863209384473359724568256455877004236757316901774299167994552279571738240177303914873218606147524425967233109055201738075770953671256463098099958056490450703102861946319321425036200705153649029489846674799785098140944708202435916709394867750295831724175940661216043311050294845974591738537140653129261351672004371264454157041187094333842953846541304705496033430942957908111409145045357558380187241291787092824838147478225295646789416509538353244474149654737704693058113362236402348031463835956808780031583682198677989774034487385216713485222463816685865917413024567776951549845723567625852362475623629870499875351944063799340364035244492547090586497801749715113999178491885723675069373456404015887231550112394748283068882616855552478543738683945899403957299643925896836086920783739818456374185622775124742710703931090023186443891321019565967778516059815245723196814224905012366925723570328559178591644916569973676293733235296735107588415230489242985943351315552844291218146783911082756763881172007980229320645148995215000124839665439249999568628305041525969044657110550240572159759962196165215993659634900535767836634341989537577190676192512260433594500358366118984570725123666569486584082462794642907820912676647007200600696696081261744374537471738719522010997262099372944673612351441685302732212193969633639679032491961848795474032931972647229855122869790856025696087979032881067380409007440396282177585018742114212907746939207132401048400970634702565067380946525444707954353946811901673342343020574998870599283647840258201210281929108719522797094682592365645665866320606151982618815023996169010792413526388810509557416743209328759161371419943656800769872299042212255819976709204043269324967742926180650613218031310962605440567785191489024533484294730104889830937797410206255553444226504254107623822171412400925931553197080291123133141821200772189267097885204673560972490964480574056091754983716835484261574095467110177048673575511196822323103242315822617704727553443892131596103347654688866785097855471320710605783355590294613064331966570865792142628126258923340440748622268115687282442991836864124394202612115012068411654918372940968093816606829428519241446769673671807747876493276647706784034167491231986271857422035699462014183616809158335988780933340547909915586587516476403075155060883763736193063460975925069932773118151053149567176414587491971786126973969513295849561070731478604861885850607754287853352778543789646353046079323074632791690579247057914972817136973575097411307158047468988974287927069429752425838346600778913295904134452397293663309460260312710500577317387502401874872791535510276158741353860157216739516575224436716700264546371960190984730773249087034710851946050760125409605812675479317064010130426885486685754462268428075575384087678553800662520506220174956918784025819007870383664221312436814896953078688537991805714882276409427268931199048765678590465631686795900216637524948454348914849955609471594756084724393679398652923392708347374994534244764636883853520079472923698338558317256894854240688470860837302222616340432794013386793701259185437614799609558639118180065177012129076584921870605245597916212319856706404245879580429381531671108294789636228914523720674043656044663344300396510533448830467482579802411833877361975692765381879929850078012674236538000233321754503211657241561570621490663269248818171013883715749607017748150309290278801902831113366848433755926445567711727148827075258329829507768118033019573317142669716236562759974391390962615131701901186673582709013554226444927783174791114234497815129331079932688474888683277311315538033388042184695243385892152022121336961128614276908697699869036751575794529866193566649171597150182685558117623526026147216963652873905149058352033008904377498609180729301718515227560040330168428811598662438618415050111123492576654916483421046293839856737208602878388489002827858632108703875569546601594883960712687678854852548266669394760246322907137176833075874406755514932275794734526475450280045667548279413927892573928342452528024355590225748007158133425593694772531748836733803887337992676094293021792496028177795569439503437911789062408878932502383440356039178445514398781775643706818283907415261809808192257327567967945982363451707524527233892642703486244165224542553710561095375008631454795793097451246362665951584368311769781678819083647032684653260788865518289999677343034403946415410149551745129172569846279363830960759508256864997370451964585907669744338530174915455388751475118845661769612829873204297877441216251235817827391464507614435904512555074341341687053819575072091839164278015032226017078184943460678945644985918729510086803197453345190060656353715580904062188514349718845392785187287535059043111140080815217241925929926114834286630669343343429712441083205681283036700338735003925644604057163309910023422704030063046244639598924949913430594781201328503476418664276427118915422861818458843459789639707083071545293406346119230379521382437317531557853785935497189217414483765130512310980395916047027877578865446586746432881698401744039757769431040943209370241842185851591369989749801263102258347185293553332891750863284412846943331638430005960851462673622314641949568243044102003990477522722465358048800924357639221493407281135646213541344306507530681866189497637572877067943812975998762574555477980715154844318071947397437738517237347445739542325182137980990714909567927917336070848721720669724336276241150726904047247998702665068485638577086006150962102595941571131635362504218073287929962694345794873853324745356641085506230540511243456271599413155649323620027168416752511045238766581011882386211818821431969730480672074808170609514008639164660929864251287568121915549907033331290175088780001106256730460850494068841947048837730344912016503060305307127358044220396702261932382066259145032714215937887492921185005164533054193242113407338427976104550428627307546932001435576709639312685504672206129791428386503088619339974887987146938741758979721375761759188524127108011552969235918470481459643004447710917369382495984646631989647050521069358595888440302991249687374659861026194390766113861833739873512922460817899889327315026443429566977166975109852699383004795910618881791758783832209827987978056802743071634832206160734577841720451842757918032873662847098603115270404407360767796277069838391888865135533932192528571948458311431985413412071743775162797349126834933177029257613025048554661753471015548218182791237783415212648630442880376505542810488575058341187597322362814045590781828488587199614730604473363295259280616485276045759934175959186856316754997423572867838382987316929420721416460436661511054386214714478938156096439295504961432968521211079240709270099249541150283055915944339239833819899995884960044893939971753255900605283650482041780424496388489180071645149050673637286244703523617912644462439335569310417677654085783778438822683731940188897174921664471048286898418306132461045828534015434429697054143799337474304209355509058734974466863047877306428975854352339040956931810717900515150852565181723552786974322263736926519359371770595684822543683228517528745817501918741435593199943054184201491972460539451211965447528416644238458411711425484201907049598581490127643498564922524224605496839555240847834757035629573031729179960048855725874536926847189400318911409878776005320953961764527538124225227217296385326096605202620002648186617308926300028165114934239756621114595113579862799959565097979192721873623996601080310062187467443086809184690965217015917584465022686348839804543456684048945963222192774420453967647375976233325151349889953844463879081269126185914746672496460321952401791561704930716165463359931063420874477394057646533395401348923611751449509059170440012374541093104155304304679586656554669625555698505406635160867305238017742142116213145424065651857819637105848614035314541198281392126589849204923471806563704389215756288177274816719308343807364440610120551926391398389548701449503729400855290510480688222481071576936771118842485808003471606732703485611199156875368332003536735973868777671297598686756992499067235946286485316898903129659037873943581510448561816312430762982803422659882853730606918876776936103268114442038162373431395860644607255180626609793554097568246319200678000805238143741837484381873477481796519644466316261613293980495117312923729682820408107969296111127170584074743858955464790495362086608998558886474821298245907899851684639793476577916745841717662538714592036824171554776225268556250035656997035805006555687683462333779081456399079809679531860173148872160514423815526138138107344801750632326894330754702134455112784536571823552205293470338798970535224432645608174861830771171394696042835577466242875904031543643757480791113948165209758478596482101974854983678431842381743345362346919067207306501091506777905097845066524825817547040832041571610165200047024949987007292399429805575665029879696567221664302099452924114667268184226226213382852710408459010756809701647934517481914312647559809364106894521357011240967968239340088115548888340773268375567937411829730980665956912737648725699752333713251025827052138348815046464137140816279351490841541074035730204399429012762492815674250516223037127789028540926138594880627383699506060973656379574080409776035769274015111732808318416753492924993054610873840336614978032524691901108811996226420642241369987894405258448462820700220684992260292487209810293388154383807544208388959071984847559274820994606213042728604107004285771026218583681137047302937868136036054225640974957911535633763442150704818285367937576110697131357593233892158542133075191614801106612330206206801259411691341587279051241414028338067609205809080384145884536348659631102481967887005770674609770734137116109480627763437684685340594719417237861369796898203011816912434885362881673039327977079829513057396464835902415189425884433444050236682037873700790866087862139244365935580443344684107484085884543389298660037185449011465284920788514057350466036556310120248497649236975495877568321871958210681479291047485116803347809744633763508741344139781015282929323310529598027643119027981605969145431378937615693971886326054457760305569097269855670151836972550056434588184466116029532640979795867543808724451406982205644255335465201228572794188076213691623114995948632953802377352304735410998959605601858681913856016507015344274458316836819979985697026348976943803501279291947410891075842963472743070963731085928083774432914405597815348240155267244048219498147331473895585826190784398104064949179683679178912380102922691696182680771444570400751332900686647602166515225234527689750311866942361930618118890844589727101016709136070400156312922207233796007558327517049324522825259739592869357602627118003813468686131365442042287465283478336840923315660592089866688987198869585706585675836297699167859670909201773855180599456412513019289174981713530368857387036305862095376276901044693303135484271015681199442310622849899814760612823190789166235725371478250939458146108710495934963301305286985336840944210489018845329236613592696298501927699859472958184827344142146110478290665129767460526673311744244347176453681743843977568605789629545573548790319491306068225527223135094910587350128026453622485551873285145117911483277346660072834924174309730416105339102310553916927157442330811366231770660211232118211242044807846868167219757804802973096206174121192981708963122343758168653109184968152098544578467803795796464914060095081844116213929816183755467174966805086709260056616398518582026618182411628884886394939302189770030235752357811998391068198149135935257678372571769687725577028413718228263969361507711293516248607590461048281278823881151593976951936726334038081511774259906609748921360017512847066261644958088061190060668136490692479163352351937718197596040175369771864767597177698671718343196430764148852716927049092759171407753127634991932031932142345356929333974461194329953563311434535248601578254838213633436928994513332575785934657594149767351307577546972216591197339068599685753385793274611262142595852340713582973780246312642907805934164817013152044685440388387158123671941946381889028993180447213583432407614874798790446356986498824705991934642508095925691663862482985485680320770295341348381282131430795430301843407660627713911632675776511716494819746319650416631240196602373523197794610342553468229614336375476999724343722916898624820032036534971634755255301799021745962646424938075417803121404987111261895163347605697493088378760243064937274212815865345877698330178216795268368052532991284116414781000445161927367428364222339095078752948157920949489545759757338128538917407989183264838107380528473210906759310893655942108883652344894682715206565270466283031863970633552755717402259412384453130764210450939869312835305915222391114895200179846687213962276633114058644192600166763760641671191925076062630313295127447595866404862790807978253117576832554086058716720090148785225808704643138875718165276429430678591742566653269955931336705159075261476753919188631589135821208655252202838716832434476815786796867088672967886629322355437933806595181728941843511047194639676764582277781525090384956562884775744360854603308230104257649065333515263309274325974276469696085803918528588647791819687354169253698758559981057730004953789487973845579860547511451562119735923089463065627102054986404782128257817029864252661690081341879918539839119225493162295579866095202990589953567465664529833141258300805596856685552831644223722250286673165625117360517807201911690212370880322232712681938921485722239983080091098891949417575504641162081830939577598682358316452444881328990786354165298032300080398120654870611052735538296934698376691538153747984965023071610968363543449055700536953710253094246228960211312406622105093812696597392477088003032582423971419288130521468348421826585302340695542230810254441882566796998630393646467837051417117722662589286928822466701659481839486164115945339740446046147361564138564163882474763336476379430675812062244465819012061491306623671461800272774669985952229283160082548768485351382063086073342537461171872719013653258979540270789339355427908296048835677361568419684017296471498715194479764947958033747916532059086429357451030891913025500957682685323585105640990246963514536625940114133583230213115543862690304710152730272338179383145239597783542962640081420268824333981466559301780799571357405537113488785211171236139406434869343476413733326201024406180211434257393977617694621306175808836269168317766945400704050829783851609628668651011502267479639682326362008903575942826948252531355566965001797495395356858351738817273295775280433518070347331985133712972320219584133745203196864889239119307874461671556445765859103430519518085095251916157233163859054715328953747830628671550833476879678920837569381497239918851686332573507702178039236388709146548517949536957366786109886083744135500063991279910581337513426447532364233598212438264715447033584200083586682818741987694688396496701694252208775183621279438981727120217707056064664707709286948947984890164383035247599707415426676858776683754310179235879472072814245232694194131840898378496085526290510713699934980789205103204546397157827033079485419616411716388964498789317302657125642445142544487841918996035119596546764794560825281617850284162234623257664188251021991558858542296513567329371048242639244166888785669656919006163472897023481789863281196965331726084964141586883963852361163164406813210027784426622762072199624524818705757687181096420967021894097434823533361710348285577798643685982336281481150602382344663866188062591620646058646674599359898558478850799230026847688257567521200466698818836289143063135351744574195772168591015851470490792830754953072293972030417332991976301145457001362925759145395901273973407647989582624360583185795934140009916635434336720517388038300920988918182265318819639441485613997124781479662058415955517762101218243818346799268528986584861563718715393892248658097515577153114938057109848182712814866942472091830158593606463985082185767802683772100453601812773029556182999974150706498339240766172242467745709058702635626211042801831215985284343799273434812914841486360180470614535825348379950403792916698583386210116148037021580927731061904598713975940652106552568268897515041194117124189963495303228852077216280363836842053935032968574487672520622737473446362682341566851708965204045482328429501730235243621643966758824418800367246492729391815607778519926150921484291546888607512290792516920211951339999737820458158769689483611569132030944972724902601214008480725925118336308732702943976539348290170628492807053490276729432865718975953270740083097900967832920965022551472627010880123735002310791166414777260277850976120704087075205267601643948223485401099055043506997777901103557621842816439049832792311977792799273583805296539469617965325973973938509363910484007647983618450452047135973621758970702271342873498683591443598731102032741090298514910827212593780925431561612711124434098922020587173368842917464799576284510323482801471985485341196060294440855992180472662346321436835231089130175523769734296548821099057172286771111057012048412804933059701737540556699612613840338281913288963720940479853519391408075905927647259258205111103615232442884898017646724742567090908174580275391943734430633738158195016340384376908959782029535303122900310264285578903270654232907781711849246989252351988623596060278057120968405590332047487637864292574687262675917480916923583631991949673175136522736025546600880081500034091835303098515115551193326021036861971148192498481535690513195308062099171294619215189038197232095517879156242746966054744308992502212919679092070274482369780344643528527431134354303443137049757220169355117818618975922395765790195736861658014647723056130935986727758357035258061278913500892611854819260463361865818796388290026987231331453902387730862824266782030869836106131170216164825471769388385153034769901499955459352408750465288784862080237767116695685919465239886554417349544803837252694540368964167062174378246868302076968173224042553857875501511515921925001366966135910231120089036758429204636529118337736235254605281698469697228828677637375737005637960718549734272540845114862902329002532356843156252078273362049074381056771043370399047496637597224934797804123509103034388095494810356801489645854086078342548423574033398454244909872675616142239878052165345765008533322870662475388622137733860337087220986050913788539403799547507819640634792611308536856353863345796757084258947809351628187154462513015660970819406395941058002595259543330504888916765834865555854008760614818335470401224680194244472809289087924401768569391611657639053930963414204487636162257335038837708827711900702069724148480505882636220988235711153962195460886747366115828784865150538026776068773168161746258044521212236073347455806610464751661463497783642661015424628606862976674177828051265464220933576994502411064819580924878405896491903833994330329236823277713206639935949244552085513800644237354309242378999456659397621325897889384720697942550958070266922172611383171058625162824130193189029593337000063537729567859051102050731712659258670288289548924269307279722415909875564827731606442614440505811966282616724982288508355100469558523396125713600142904899401597879844621526717321383479563746382450103039722026557618720447282537092192740625573734867992406346850874212760740584653154874388156146941586656928517827640378047392793747601131035027870213888809534359634899721592115732299794928672126127670388746585059115829376114148549080406791405245100711232044421037382193074228203429288896825314765484318720299618354781172856701066160620860852656606301490854648658662176433081936832232687647713824855621146258197474123365870817070396973251299956965144268817109432789338477935009408421644636717413964110113268270996251510602798538146615933808449996238101524957543547181849642246467633494685273372297741026080170542164058709158555625391190983672089722410142882352226368813711265342643993934098607772885132961838996500309474504950188922323592816591729304982534722021019564908887391150391151230604389281761927253053869441288892811295978385038714044364062306097656136125239706463669447275514147392519139068275271981762184382893781932422568386462430350060369394076002233010831637005136361246195773327664053009408403724761367050692304740161729878144395026101748586284867963661548781476834251428530626994851231192194719393366051214363683722202324174389314901141219662851276342433648688863672180532315841307009486612294962646007467009679877545331302511677550330040056994199206239481380714785812126313465263426872165534182255641353381196204838133411182488406668979810473224013060649951825777023982597774115130528137538247107617101642600744555838595415385098115669961058987089723535759888677116650500412533088970901355507336207396906489634698425808734531249205338197558220916366510800911302519746480938806479573103812875667381769762199953599171559783895267040929765791626162039141963458403295609240762171796866105537509722306649026001823131218672319907222500310197569224560040349572338567455897065703758519108802075496143670508118623678758768464164963750218723346002436294170818136205588718914448512385095671262279614639630639169418909312131598547971669205507115110533896311525511321287339152577170089494539730321576067544924633197510882252254797721527279829262369209875480467132510882915181474380351663637196782938334879202959424361003142500897564916725043208080758770097290692504338601854674289005844935335911399519207031775753255574131033208424421384985100037905645909118329656854318757747832093515519711066246221245451206302323884582650112294224417543043255038516918773808060450651433247639442610334530049149675470333358117785008542483162912534426144847800636402129977458087405201879541090804711619384335811081928481420875119194466468227980245927792552838504038641941815943407217773347641575423991020386599688054491885156471009496083415697119104714137468278243051538058433424930753898314839779579313885760372583899119874270465063142899526271272169840810700840374394167851371859895598374907955223635610331835333681747679616798792023299431303177945882357433425431483648363458626265670357044381396423494297590996711987422664936970997883049756595445761566127672038397112076371665944721333428512938561724323464818593776669734748207361498464826826595697912905434878633669496190808196877871296484071299453227234172393732633600524631063765504829580432106853044267240075146508098277724246853783237156005632540651324294235064066588290350657236807975898440076503965932018817480319383168103908258226256389300111929181963860030738256371695159263135844563364456532085834165507991863274777653910658460953826257114827750166559650759592245631011412662595699497061948303931660365199398694055860738176038122657870918686003675383689840939076839293675868762720906927912564212716973007269894525100053515298595994932803749121389394752278202112332462034416402069364136314466520439539534391942440031510560291505354056808904479344506302750657434262068365740187918550215699208423562278412264376238379825493508599190534349208267812941734564791651259862221036031228612609715516287841899007865582623453227865368151266328072933619801809750434007841148668308545711853499845724740678063000341413036908369672538779212533738817729426323864103565571808516328097403660026844698466112660045244479746356856021911530740549619212598037962509635452595445493324230650237950291323999117068076214957443300769455914892596815465907506343522811161212474650731256729660767631082597002137158358951236123181010427943882168595532643991288689812072822911985311019775383808072545355791249542597946543696354884748307943759315262514609861816206299583631024162244961503972325955515069183784807760566796133924612330302964302391342129519739425054035423947001743456549618683957806960838117074583767421518674285883184531012056727641988393971210578293237980852355293409009734945502181844775240708261577961721818965241971783164220397750761357544036897467920869068582129748966573575053199089707880759655682799677631399563292362926115691680544871296644332415581657775640858179296431952079065574892246348286284466786617553259960295962476365845571705659451900468570388398378187753067008107557065929132205076282550418565083975009635327154607915452131542809496853542589985290487049428740651010186187901879141437898448553779675455689484214836820133708955361803057112127731134376976830472829577530678664719371407269995921451324270353833707200448663779292233405800235626819687272326743270247191827096286810041304860627123178904791478856693256640983025022497876816471204022367301676262424260008610778137423503514068247863349042189134034882568547627476104113169743156074624007175101366228858971674399934232975760660879377821234238528384841582909119800017862431981185366445220880848565719735048209980324704784422389103550783903243611398282534199889903467620755926799251437362966650448733010812278419235967909451075151471104968542172019785470693864483238255518894075681208221259571807603084865782903478596003552051518063659051087332907264624646929915223534097345014889683912686475374884929250867528499454628653837196005089138740479246217394863025624177861515876508625940680976949306229423169823007941756781350346560424760358116014839650349739301691918607474209810530019661796501515949694373341300217943410160247920751436677919430158621016634601407384244505415932607841420110621346573408021920733633897689271358064488128773252960402616364752884136706006147585138171823589867119963835440086053469673496262357113388233188201831745259883671385250762325738542645171660309531163721544769448032738085243452673025642935373866966253628151319111452316710386029736684918250484053218280924510815020797813001506899609518322313097488024358104610683327824486533099517698213009051320374111494323969676486444294307116122351223881775353678275749083812152974128455450647730946268211125311059610212793868745664136815294085894830486411264010642490595753630296212788062483834884826867099124160742569211920872167311291939427340185325907845876145104490015968947891602447431955128030801880130977085147832141080110699735560511992498712165972768803383279425274131382684717313686774791611105210461772212882895268195706834295604128961986434708154927801078664192173058748971537625609851992126731016507530794782951747248830415192687007072265996069549783973266672489134315177713312364482557342348344782131158704932938681201706469758722757210707434041632539182363687282559381896740425377241763137059438000170362980195999804718000770298951115358519091403686881851443464414546530533835918253796755108655423440129761110026978065644762232926342196061233679820537714342472505935140025378333949642780895570519849194059888328550708712860733166796185803057214438882355885751259127639073740429395161417689733314627415765146056651429086662250929833369921413891920118053466563503079720236339314470290671610163069650398215892750314948193669847245346580649206510091377042286961161084804905462804332697130990517624797925306062401152731626287705240904518926693457523892246206083392135389341056179143410666212303821991522486536663432011577413417843153048792872642898243839852508854078986725399337742510342913840888902582058447715200287963701411737252947631218449521128554498320659857701182862804274276850190054109069581303291846599555772850189741463844580751305804318185439670564434890025419109199591935347217589244927909688777672601938210484730096846300741191768700329335309766267628389271069129873155909716442724012084938930627852883954935023305041976157459120839449341676367319048804860124470263547319502217826984011215356166819933221006430640893051979370443472669948176200032859724491595292372943608384349177850585324433898458526248625284631076825689219111151815020916722255684917083473847371977152107989306606152394690186310642713773815888669664141831762260615192228968391583822439717840006903532008603048450394759556111372024755028649662953740833836280392153722394889906057913361811276069757115637194277732206714825911885909334117253830996360451359296436711159017641454878253089099810159669471158334989954031324298268128191372064586019605538857715030995546970963029877447115400426143407880962618033306783619532803808984027292893534232861645911756525179406610434859129329874782354856194350723829029594578809621508736976116327933164781131334361377998457232398129266854053631428181515097896453600775121895362549641863785528267122963809054169587316605782308973204471135341324931389229688730323730767004677960452401985349431042920861040984917220936415658468186555714892492171505110602653927161764853505333099530154689716706353916071226629936139833670152625976821790286469991979785679709699276382265250362287240796001730697790581156149183358843147943351679022290778465946246376903325400178506202369425151978672606170148480106043146838712268071354520963404324623599220981686739791564597515466468434730072019453721083729156168953103962336619418824748331117182582284403172376298356717684647296363055616123980876787893164512738534225748482212016806299627592094528990594547459097423867990451942485605868996258679972533777966387091751953541606013232362295108906310653068881395026034345878511895685880046656957083159354127077662015623116166630032105450889998082232786432017439927399857259556597824890976415157716389243070133199902262292009242086774272049697271310675391324634838005268232031999670843244402435884280100121672287044410287684992881634583754306956038399285384147059806772488743593677569179727544191121943493576195252139447196985749155214020155855444350364951837783855797355132247129282931098861350775117358798416385608645417909691790569647949283505417151482259445446684263913057959326110089950434411428616298102784398970913295112282981875400813061708178184578017584471930738680697395654929993145077672330286282912085695772806905214336027469637183212349127469810141617831076200755073842970843385120902058621397780861035731256338865937033827416577149082816004792755361536441660400227064079859002953357951473071271812468599558397153067227505403677540503945877909331132467971756903896600020759351177015998480890595953656497792605173966598889782092050621488693890361210176041870295214421856673834562605799335084290673108836672203752135020290508056953206219860932146229994296367408327624011201879501531486220278597460477445222362617661096322437656699726195988546790587103068215153697714238280626699788948412489675090668830396959652595970451590392106483992583731553914092606561209497482768313890583897300992453751856723591104355562316446352084084544666114671534002814963996809038764099660390683483617258923869535831049440329851510371976655702524689028297165262556443791539236379676475104921916791378836267673349202969898827647565981072106342295682461061147004754498454105050914353713430067789001123486730955328221922488128372614219389897397254318933631937495383348493962583712634842213460600507505659391442359987069107719357338694209033738474554524640972604352653782911991783492942028050963852291708415701663765155046043994587885237790539644718596731871062154664442986003371752933740988224825457545541059782573914808878015349515970695067596838125114972607501217160052708832717044849855056011702853858066031827504780125181805504585865184656533867063381342555606596902438998056433246902298229153239148165082353266101017922140644783884980494458007106742109085214351172715717178570809815860119806169947651583458944058297591433707455185307983664300092652277521214045464025420314360476329072915873327442118386633277294387905146076975254004860945637881071749263785105493704548621444334495307328641905274070768528185330267497359034975679965914455394290192001969003807036900793708942035664274733076514324644980885290703103283634986983403924075492970123020152497473381327996413316713983675551105130612631254096578395080160167329012141042467597033147685195174276882156367337412343064285772158737886773557443899651687342809251084189361128501146554999732139010805932678653380525894457286383522613529692027159001020731525900257956630638620573966132561291243954185379502462906865490296787078415240261309881159123766880663925956459649224022945708948508779742805030490655481597447671230390152373833409041797672743921072423017174082519399195093125424186371635492378721810949448497396554829079080471373528841893869715850503374531365497990995844110689888826809263900761730878149025587695309944034189500667175760889669351034697057452429665421135625912860002372717897775291490646418217976466651292957917557143169382823821921148400397408630977562291815230119398922182751964133896960795360153630751590190754455591192176514857299344930742759581888238772363533307088741868034039878609774078843667762245293331571670918896825023287282913090027645140712771395571993589080376755498073930030382665367535295526214626731580307590813187210017280788930646015026815707050335702186960093631032252353807504428719864132223372097791265228038724099446360204587461082387545682945857989239815630653934148437251396184522019854570106317831196868393307013824359586917949926419665298900981880178995148075839023117825692971272561040644678565639359007756637750915332976172575981695591696263173428698574077477286777285856442201975515289324510649373873304075148334799867256349108179228077991415869343600055817125987665764144805211705524560739498123979298316652473165691045907677664687803046104275608184169025664263134126001142326238860101727146987751966476886734002781376082997388356964955139527674780413039490125165840041704739353756126630546390602840280210593442971399271222813280807901143586886853816080198209131994501906951994127980872735339743611237310951289195305905681578374895486328491636872181462903865156230103600242976067386939099321918231365093312049018468371547867523389572244610752567584474418785395260042095148288728005783316652578459138015797310997369698526619694867276726098560991799493789487334949509514521578678212467763972720226020914391054033470519618427186017784302527694670298084437598726092804959042145302761924014496533353449070408806801947434928800225011087092032243944696743931141962284885854371721986360537372444474833510092351890974610840835748979824730313891780305025441541713107499327673155207715700254277638140873230391100892445486606673663733484743347989346239634350920527705381973940280416290976970605452246013326666238881358455888180093867009566355212285696601176788450980428090407047332620341799630785303176909289090547940342080328290206680703347252645672142357401980439637209901357877809455786464871179496729673595240681221259692837797007211415478377058127850792616128419915815871132809518124185203680386520260570026229107673609983045593788729305846778674905744655164832786852247894808495003360377347499438829179431389518614970760606372676143317702202321588179340489015782224075741199196462181850407485344223436036408620339881775782942484583637896375140190066754444525800595315460534448179545123955479388681300671901291904292512303064595165952835691566261812872322778922931315866972799798439956921076413115154680167275087393170674546754260374737724607565518525577819459503866800140418255624249573233112978869233026837755180433790002553783774148252694851800483573444310547567555833170839043956438722471690883592070951803699346271288783589990231337155039317436673274817544178866223423077133286207021269325359443963300840676241049163139299571790216467768150255997009173346972161737958959168032936754121236125132609069675763990370854108198177164541022582254573089243766938572803933098172664207621452356708849654289305777673664067454934511254650401505155624650595116674911138797042460596493619266383979323711716470648009056226121586554751450912175587349503425910080184710769587058434906100021189886749419618823361793166576369907155262958574440396266265174921909994677406006560727944822952940461701170127884532536375337325341589883580302304083104191029382275295849151725720493379807081904780556579346122708021766098252071581016948687738829030363276273349007590647264212404025776645438305752805405897559812373790433236530663126811351153904279713998892915438097323896275352254701547813308689774211544201935137407101820702025514560177698931515294608268535899364375438426843947332390229833789685256274893638390555515268958479015614505290616793719236585971352967842517288681383670614481365296234865581561413800768309250540857411122673539328304594958656236029374108208872448570646369411237333928724980184625952502157305544206330232086557726046946140260249356078539619997259062969757407574532571120702393653941305781176335701958570761202417490824563960381831746808685901663041532735255846807875915509992628567207580216854933783912449265762467516170483642923450919962810587997376560137621722853679047398526554185071295980999743477647515183706504353067440735460896898935025049258095161588779709466759371666907340629695550881726051613265134568615998903980158456428054292170686853297148878912110613086215218665945857547169212365945763309792449104486823160790547057720334633342764279143951058709491409219050812762079760240288164553000982884275060625032875545385009893966578970744664743910256535624059956266533266474511278832936061485581383892732023081000560676345613546718660134206865658200082873734638601779440719636779646465919093631344748389380917544028017794371265590363735436892963860822263741307104682390559244784901205191720073323227221466343061539962029806955024147403231823743176442080366502444587178359812264394951461650411659571757789037331608786274067218051069043487274647785115810393072184347301442502223222407727972648095929012098886150202760976700383087883163561072399129916613051899970174736779186000246313842646144994697768021490560406565324960902699406443634557734547158816125228733747868148496425932024687650041870064718824968663310033637013366175503077065100347567912506564265045484592616040171320396595267906568754060624197664664259414614653947800733313865895718037552482189011315604760476093927700420414068806450359300206930057909192207414787527306663032664058245321216723308973634290428419435436821724951301934287261275408396381259836854223430417166064111959730158972632101625804132431963441734275676432159387901459072124483511425785385238210450499675061408401529091071475066044599287894159761147588425235533316580030834178825568412867722158033101554296797494548747655663268350409961890567668608664264849294795508144429633375956086063261071693407733391789441103515171247347020286350808102258191779216908600357427145507760947972590878366146656331154154249729605627210096006234987973641508696321980529717054001961028905922098634714151815202503298193130936348543695565279658438197155903097206145804103052745012126800265704396318602629198417663456992668832890640976754922989819027846974824235173051260199626718896882927148046407872181699700175118755031865666106003611034363107815967365773094670731803653073869197333648346532572775496714086261047451705429304288687230944981089838496532594807132552096142817872382484198333685441487017694092605538956173451955351958283494402376261821376978376851576293510758917710351549557246422318627540746634214278459466323412033154752744069600832377799831571951207332276287605740510784920814881493651058387798541807457763181730848631681359393892332110541177078132037877377310425880111590421274595156894374774126409252412570127517554855063438389619398861543088050288147392081950367910272813183081852877475701945792782274716197835635729935211123105957324265993550670678211784667547366339447836836444214418737004298949151741376726043229065675405154187714744056861465335680180199573500003230010443011698991924969037922325138493718897977732798572692113915074424425970274582440152230755922934025982498413284080135400936776434285955681721451857699783920191921136262909082773068220072447158617789809274577784877093978765872367388373489180177478600868722948241068329288526726227901478407147825457815076243085798770427533511526887664537220969800149891422030709545792597144642918036259378531635831358926093232311295829409187508998422220247383813270115607866039959330855538940784786767949288726153886701752050383902162873326742591052652276656042077513872907303084660126864772162736841193180223089587235598179960071579570423761361156617871136465910169817626439126809740136385236789981621963620022091236244391245223443091518932437466825109586792004211137811609544306636540527522688306855733648634066583276316622388537095322007970819880422891150731216976457656392098313030679041380946046422312540934462957999421104064288892730921270536088886442872232608200923018165397227358100837851333854314702043503814442533042991405029276860676557856258323823728490536843272762516704729378793589430214846544061392497690336413254456517459353564934218310445855863412252172726429593550607103472339029438536701339458482573309379773379402934193175267338644351572659612094676905590989454449971748537967128372187108126078700127273463408370213083806927388656694418985495023591782887788341864588415858399356699171767000252000738379221827966040820139885789322603426421134470323998848341250084028549003680033909855362669140618403217401190414121603654630047384273139917758254871750551745738206208637579989650284462444006584072719205906337697267764272893463346628998690251972800383506155109075187104707847423679570162807705613619613787502439833239879559199485037439058777192420117767958537337378131801459928703044030164768745289314370392696743677773851638404792457563966115765921893246303218104732945884120149721415697462039446936799629915413781232568730936498997784739006754317176626407674115789775854939318562526002212528304693392856637347656072296374411023145965724895485140514218189420941178365407846634295180529121452904436908178616245319324077165468485697046964681978351777314784298931890947245195934621071549664590886792670673701198894461032385172427673120985850081566365086593323584255137260135269825434675868927491903946790144412247214213597153095313408753873551168503703073125074023921728628295302399351387766972139026929973170855649166292977557934715677477829107965579206698124040235870501740890609538935333541190815780142369156295422598199711596962301466919475152470308429614942037277993968335544781731391746508229962588363074902678405145473697128637451342926357072780699671329540949141364279038926115090752294520868656170199047032209087878390008803109835141307523411466663267371619653668376085343175320687906874177565908662882047179934270364740598334287474766462407325833948627812696991699282130867263191612661352484936575988642935645277925219788638863986646279307661663670742668122384908406571696505637304326004030124384323079430276332404410718429169073908689167720476146240632491945773958075194120429228710377951895383249075688565630628412556274094844223465141724852479082763434013067453572329896585586249936362322965655638640483072686635689804606833355909446992864598413633586849917666903645137949683322562680004933829376624055913668692807425836912788748874516393327163002620511424761590123016975118113666103145640959921809421499983943774408923792848545332411420925701781150274809744054471921496780794304786562845683581842904267459670119346153980600555905134484929395238777692700881556566329718410896398245151949089503789317169727078727294016850498315249463467752529302529173039057322505812723445644127435167766932777527320059928257305314599194922245065534234029053728722440457778254920924492670396878876802858197597530901558607179013818966830764466366515826534253003863819846919852401744737608483966746661872386664422391488419987381077471426635462322101498940161624044326914447083287590727910358046615113176087109449794833328828036057796018418444894023721665733329674194944014800604865924876561850608275160451201025291553629313172819379094180587575251921339711595917156993611838126213128734877321111061070405146440826640010350534035105394685981683324469205169837460288400962307245683618074207830128077745175423017416446331709892575146886035846824348601903383079790252975553337463505616670523993295814212885397010677596478019871208902380890438628369946127350929242397358168350057314397176948169805830744790395741924307039211789350095422047907745693590849769148029277908733624833641965787688773869646038275693070699374028840885239143549304176363645590654789858464463344857912699469929560503288626716093830782617818341675764692185359398637375867258720195801969487443511918900180919748846872838076942873921003653023369290713666158063941242029902638408428039109069003661473862953106442002617408563255061132556428014307701644943646394360786513483159792879274945746002416201225283672300082187602033241238105492774735125654498812204890888231688953603290575839890232472996286011531109587388112242401550366592430073250758367677751789550982731852042584580128503893180398004242151182834479073587078863208202070239087839202003296999645370013254472514031430706621927194422089901351490282413120999800724742496179247113270207519760067178092759135363819455863124703387158675383159620832905189017196007742082791517934402977157476272671280701026314196141513442591943527019055033285754856650754156903424665489434192133256200266599605898562099310151319157675751232384241070156093571946284880711770991926142379289447799748529816286606589547605808554480792211450324801089147475640813657345137846999957302493191139059869625301170623640801705590503307936541170277516695538418963617983209978795281656204021873552106987738833597141304402587133422654591422591837078197735251154102763679736595318272091376784676490139574546466846051537192316898434398358537582094180899663126675250248030741591265737523953333089219675197666281707656926454701200398075553892726071348465895807465727667441380860906544734825554768577627131812739391129763863749818668437865959972722777372486240143164267764152967498758724485081798329806753180842738614275862073530174745166675939389681100204811513697556169954420608706955895537962372476596944208976676306668885974304568259378796298166741200628539074197660535180158066795865815055282646936186053381640177537238971927080439708649953484358341270147200899634782545104924919722511622318111890627848885679993904694516858054947097773783530493255868722661715504813733775858665223162981060328850269091779269872167183737755659739816154459088584081916213495249515922504003083618735111858140047759933990548967804859640898153414458894551380064059510146057592290863026021259058577369409494388144217155532144120286230760006054624196658289490499084304047518104234727042793984281905282862804094477097003496723863666583020425498526358304767212631910647203864691767608600453598261124393440617212735174915934557119808259220426181484708828362005297086333953988858898935948745604743756556422534174824442399099771714649832878472812460283663647276349719621055426184947146187271747520504833454298478670456885821678440945586715728121170687024144202039034300992099990699850978086987450210023776278550588344359135620721648894304750078415245932248730151322813502249305358765227919572929204841516336928597772906611143250131025633539194939398509468482839443524961356307489750907053953570556576228049918645616782703962118594483550145615789027152937635001221019216450481008187326018625967747454081970080686461584028221048645068789468909479988304036011733909956112130673205183275015337540177641724829729927270280833736287046057920214955326103500450670366111618266103745282747580060745481039234076726921223813896531958358450903794830817593398826357733789481189214132710944255492305947415704100097587472452491428653026795265018376708790730956004693269885036647744248518526046662832038357309567836568948427968028900542287515924165696578744320500641317127323653272378170209666260130117593708151771803665233902056871531519509628809185561965409180818654820405896842805718669211557742001503802885186233100278704732737206979933764008724977595624398012321314126885363500221834261671763777692300303170053512344927835282416800752600097893634497105232605413590491508904907604684365537027730939396416436864137638287284580436516049174229539440814342826271157333212028238727294279871303234806567329067401673544380762969504483358657830462900739127143535381527521204470833946368608544120076465134704901903428467670298774533573068703940050033978122731336889362290938493404880437174835505460917741269422527071545438053001601305236758213436035374403546065261384765418662102404140350676708443661617153561199290127662003448460618008116212482859982986275364377433774948653252865317107812332795714782690416079985237806852700277754349181847656462372574855970711520624247604011201669133579766548379468990531418475426631950052980339005391285074413578186045991708040746114636681251652649152180843437757864965628363189069260002443454887250343026699700406082737631530178810979723286043084387175243391528056180252416885045990891782469271239660700068307258850339020133173399280409606307506253152310261215033233359734307852800585593156181013829563800210112225549602903368512368177741550974956177420027497638304920635155103339521962917547769874376588354864619796685115735869341799205829200331367600039838233342531043336247339518216241526494355203119404932438495962954235992116353869647816633925218982253653202036531421215541716851226529527582772960694800063580463873476634875401719215606836293783435150213690383549779677268872589079814787212721661554924764251854863766179671811695778208006615919758223482088605764969458411466861888885335829847437003952235723436111343117969749471258814931664416823801167077909524993704776586762187582456261353348792747434712586369012545139500779205209057094895282648368446374632528718386464122798930034204994344508666352654959233935632403359196674063036758149453598701337636252457267233718041239318231545554779908958127118519371647975866746887459708507018582031664442924464132822792134423440919839385443014871321615056941817132405975461569919218316025048871209030202765491558040045722474625485788495225271372238820383176007639694690953904463691901072096373232639195878943072582402377516061690792171702829427403404250729166040238161882588916903623079104315206232535283412972946251439966817388909363671500650448835871217424660593103617654118436515799533672376916140496013448467481415997408807048583321068599166209542657231332076154468292870828528336034997488098216934635908563871347628549348622433909520670653871622617446809183301333046225699082340073554215736495838857820591897345689925865275785042883206775631899033174068122460883789215326305060673529148718119237782336135455259587248010056866974456829673942211673417316496333151110081501097982660784794810380329551939912038311576972433407633437636157144661393896025526741027256137978274974661723164244513731748461952059228993646399374560030995411912346846369157741095502764971895278170901005532925406019106590722360637448519018819482923457447961068154588897882536802808031926683933117755949861634191479815168304191543865813494507726938397590037070310388813529775731384932331997532454492016045374926247631040193807825866125678797752607872712745340715621992473129813292088284374431456551987893581801539883304640555850435184595658813719490396180999853533462600658683885507335972720130872768403678436380059908569472887380564466371030108822776185396016091067174484844218381144528344175671864427248286608791297012039378562838738349737756053787826612987118901991030214877626376432510480786221484519248930522985116035014614721362244355069165872894401148524250858076191287917891001759670709491894177256473824015002092848883200244084359848460425089031643552918465164153346606992593595465478795432063955079745981169751956101580987617895654626094295170086220322905700678760323076487212667234166143291346516138797557928377467717671863729386458053517568514887074770257932573949473276911727200015717818849704047639539129145255250584926841966342639957506390805410557379822781994941529573870809217315331736144350527641233561014394099697963466736566349354103505478226570275996701435462684878519855440169074527693242890056716319136570388826311601889327586312250338459017156905059722342663708931637622999956528169292358164538205271378776736242223087052025468038070377284021104555567167728798599466250336077293259997272128576378569374540432546959127402888579199167713735528308676849255610851563201767813994159047483714758724720242381961607273801460983808532898404236852983242722230288756695891913252466397368789101503220722175083400094121678825258168473591079710897915895704829759755232542005999739244762287141011508936776498223992979125258854911415204235840410401255631861269416565194525200022166781240115813226936223005935284738913675818735827374428925530140799077492900295776707778317319098190578171357643286023274800062926171977140533668578429216761009032297416547502111233615719541910179041361170813001830506732760816508086270473361986311143707767055440925308704786577577542023037636865960989206520190396200555186292443530193042381706625796547404473063493994861358066601355062624620237929563759100906805556640875655385667976895257560263003641484496641190431891504306337069008212219477649107074156343241074630582539772921266397199067478013708920571545507035400661037062378018874108199368199402940672508486387367300918215447067967965775257882927747742813862098489555985615692042079938635557872738325472898133131042831717604968252372333031251165404169750487637635720691856243269645646099476433583330598875523125077912501695680750287351167718961434180263923788696753486339195050108618718429224970825653652792920298917035837327395325721044357536006709912799678510572496525567502684508964768627965697432825719690125851322755555731692121453094179363952966697811596681175101200641710279969558466889608134714855311006913711484232476167729184328895533495984039842416118170469920040648934544594428179318064723109257011395730149248333529013697432342096409839227906410102992957456223700914410579710293005549544911031776525188568332969435360366220925942036190381831308224534210464382054039492778741562488393429323354952510838812373014306774502424481729170858922151529312048101768638614403763241857603394481058533119970697220157496025113326335306827007764796158815104744508599033846867244135704382464619348314827123995788752544372078656408394857896671283425646754453574444728085833084206460935597211476259464375604311797924680037094107610514916530040495389748152257526158778708047598159304941421491062360174205737788338690988325861889468192219476240347321082601198805690725333397630191533774872639055078667633020490307968993814014973688394164242319791602907843954712243330069803143278610725062985589695697368475829053284187186728023051900557885228217013580692260187082033409241349033967786155180526717793842571065558627649329792490302338860940898330971249760402562018755803177403122294148074190553996890187368704801523072536568494291666205985757494496910809435603648137071846841222438934081892010930459099040344967607922067150514353867492063410447964139047564459731285107040455576504659565158303328244359079354764444276912691069476575893168352979390697462797732209861545502152186196978986529994088913769014565692951654932171535486269922174042581693308816138045882724647144624195001060643832551182236005037896781665613466400549402987203883790534833824885283614113619589412999716416386464710425277781277293537347936570044558362131146091695661763478691778276474674683612687284785658918723086220432927537583511838855950670931005296008864134504893472681285573273893559659673292141706152111562708730329942592133958628202740987086160068327933982180334337948387799617805937416374919343572512050522984015313291397621116643202795043063182161070272008357917202540339959940729421916817083090317579122665703529316503962933927292062898340136047511838185621581612364148235812678845608743835789346601883521293864900291364205559007113247123465318454702598630986250677266028407996214126061881675452448293844529429268985935272949517609057639374896957513684369959538132549534511272290549287713252012796427541137771405589859306812003292648916992262578538983379625189519113838623347897059684754859722320538951942090610111197210888803061258176791256035119323438936484530130321791794634113902321168705718158229071925140611675040636775801257112320332277518943847646995622591938528358669542534102751370232777016119682115038039162465383081626532801227930637526132914910751827041113241204591723120272944042870103407348754221530432314711476665150949959087118629215618526661334825008148282290085834534199182446144104679006132039113418909342800561620627832576538346345949044226042656823525544666451827105491583322375853370104609572378572604023271312611247288559647778678503696956247904355788742733179923807304398560373453625189812661021323126050486215098529182720864001064622728841827773575049045248869116622824260149351718264124770978573553432388732723660304358152133726955463680310458911536547562131079803916727625229835064712771662824877443425604975653920888577645454427537627211328515150238059700699192302338217262424580856877713429991708990855920291444997698076457045675075897523161335297243199862399903592116164582878471852624774970425114753906611645612000512305849594489957247014420888751248531701360911316060420013400549970687042148620934590698269982557872112739470673354846617909176541769220361809951027571126775531704926665450869878699292410631832387096396417615551602533102828827363149798263051869939196866235289962274240871151716819970459319835864346368727216849050618048874876235144589674640559756840454075148550488850285107269065651722937705601734587848908197150484471316633807220433203491495508734363117498924044484590579297278050613921353970962318297431842757962159221923981967317451783936061147752328430861204251438940065791946381155496376967385140592664285078818376197598425329894468620473364093245481199231888154601148161407782118180446762802056417721588242674810901005621285248275841813665414431782206196997256769003170883258494885213377746390404112304480826278117842015322544095776721570456586731850711858472218908372655483364659425408980746692684047146718280435895380749257937744646273002709449737346357639078829997427166720381741530520776544738891807538569679616672706626238531325097577458973923862556137612051301887439061681593117866319453348689950762632470659564870459806629088898712329727336028704727973509056782577572242877459000188486446763843171118468262405970743829616519199054259396910071575566158034502058897792932451095853962412519770766587688194641123294542053250323160100592895857627515451799608012805258850568572895748030509348885841051852191264884254749240333138597021494511384771693000010797742785377600524760968544273400165545240763179619774122946420617734442421999294845884326359265520538798987933255507929258288917877946595703280043568135284130966087417707039093297360528741310564750184653514147699328451775904810614794465726459354949185651437783034208171742834313854126702696489931036106656293346397101640733754693302096400331317145181665146659435667154202516938977626050336520520337971259847144714578409663134270391606909819826679120152701990246872165068707442182272080952933277937295343904891486143422979923760693127476351884865191185079236474792393434441716011358775424558489376511734171141180100445241728165287655753321028670661698810800170249018301905879360697965034359059232186734671422144850753793426304929206803205819095899261101739427936834144702486635391324675436959687707416957000105850577582111199125302969855874562536817130155803946052803735898532019371593347220684641361670210298970588441470473281136802192990374977835923802985455324594305588947738776028544206482508092997697366434627172675495192851015074011093702873982353222073290985117428004925620011255067046583410366815502646832215093612493169764717699752303369580767592370422153583539056475634954234000449020363185047314280122463409807563376003980477122068994295234679629079301901598885195085983946223971700535845323609744830727041891885566968988700460207918735838107446537588051050354697183076442095823237683711500209831790072592440057128079674762899502756957685926260262695609390635595148685058021198582452196487050119379765094826139123333068236240098382828631555294468762277694044997470379873324771221712931818330967930642358119727134204741867370811092874679810336707281842204090279249949885067531111472186880024712149230020853209179705492936574365208090629531034391200154554773738220488352067744550822680334051150391610592152853490038179836313078376852798211743159810539325372878184048167681803982610489700073981856729728850441467858758318157273643224616400158155742082160103753025398352576379038131652086956875552860375338266939366513286823467763029759437632168203481007336421342670656579783205162503494608149451640547283214864167766276023640123862615220482857400008350521044448422252261682573419762058680585662162502470582976455851893006003564111360707385268043656689502485747453636471092671500061108732590219695243823765152929268348359826194133411127258218472391504809384679897695567165988935372854066014944726421043691484386311153853520742799567234085484333387012149052989892035412475429243591916867715861381725762232208614263817372428659734275339481612674292170440823409011697942449725286115189129537113084833567214141616415012989396117509351134075220601527847083664517430026859324735723156928156296562190030165218333675841194442181449007873367985252524970546816875998973538331882715679570762826072868194214186591914649534019306322789347341768170686528484594303873575251432458157186238049210037558750964171825802771507672676666033226138426819509129041753391771032985266326401971126161645215302757695239587489016570583846316739038909998874748246213073014397004976148649962787757960775950716908572287673203019603427194014660758122091487425680928705412645985206240207914875529502062194918585441596887340755541471175462083377521272317031262808720504363647413705219527976102666163903843384736622281272704984991920862592234690240916409778854394572999736075049003052427794802372720188322816256504213683428633839747177352367844747455995058826347744512053876271101087968628717565959146185901664981725399246700595053008104590310825232916690932411620728240413444491013274502132763063505883554495273956076467329630341101116017852756105060225114180360520690107452987399495808013059997312632592799435347111607469886126358516009054289828932532341522752657383654942438169383024796875858661279459892365207152609768428064158545520549219348635831521981239429786948220318013121712809512451108438368154129532184414506352428953544317383905158735467190598444336060862401209776747927485221557194966806660995517511367216701969419802136846031314031418223265630608544967587684601820319936461444089955495200655158809900301576216529651101105430674288313721435219663563081325632241523730577689793843195929557351952020389818588860407382354698501363565815281248183722858178276924552880615353121709897255698563164818874817050933538991191996383087664636955194102962203206515072427353254440158173046381953118619506337718771212216727245698668611976044141095366074281684723645617648894071739216406274978838998817961651898941278579137124531781637171837427432458552169430692746166607456196533416007791431228137864442146253229145109178593690144585190673704627867195558981620429500738909911019469058797129590641607404630615638202723477709159636888036468614639436017439788940064698048619856458349877320583308341590692084201607401519694445319847987393446486470686380651839658796425929792109384167984989962967102304234257847491597204608999426869731477097118156283881402097539200477370242803069504172777800477929844193821149445199289418776586570598253821892889651399453912615534782624653188307846481937407576472790532594811036236877403744445422441809766338081127136275560644861100924878927628334779288301231547983739258912861294446370630451381853401225125120110759136089680078062409051005240224673880908704469037122401874170412843006571940441369940323303274165081672983558468821628626036476356350660325780376353292682883324966348939639500790530316695032103505783161776817354954552714629898131281496859444686928474876836273936510289513943811164120097069418866995050642707750159612429707827517534531650069363237878032125022606001052111653507382558306403330799001213561314860417354346951288179214851520877787391455227721191952058245254095129312841926139645730037692926743391134323415102526003702359538557709642790254813276296254280364986330182793673459427028513907417777871793499540088537969310964808784914959270733883834664508830163210997659446147663355125916537076077825942868706898706520796521442802051905947647273711203870551421121336505794599562293895529757470964060985727067575421205350828756004654360182736155286812722007499650077399343887480092515217655092992824696295358646098897577031292798186728055295410614823895034879343492981037897994308623685429353049573979435868686481410613441537732695255423376357941425933499126695759651744027671460798681572370972705640523726225059069608341709386408226305109263769718817478387187676941245116680250687824955201260617385111850091591569657014913184247520232719416995188279724898461112123859701710120732138713429255499819635807669681939197736087255176243070267955333548881324576295269308085313510116677466424370342333086535166843875923281261881945599188123063096581858996768798908730660040957096950280286534851856704384705571983434978434336505112443586035180376441214980604848846615395388634366016643650487161445718579254639065099823901935736002640344602586260097707034788700642615921331323880872098592059024157312106119161315180411268106632989569971062122237615491372802508035048823326987725982500340311234838142859237311385121188688578840498562345646251125406989446110258100631221590191329744178065222262389251928350557232900044408788340462285170002760660959150952239456212945220162324547389293812265334154659650132013366972722904515047266892573177381616022363144759230503307755447528138475209331976188946517400244445593996748352632504514514011133904032237542072749529395966755653427668919857883105362261070673025980278831370611318040897511728861101397398052381933967436515058655781058313358305743707623586578436965061403272435743421130128693477589855945899404545392364123892062275314342658025919568298158091556316233665563000860899110771020723864105964781616967824606457394975036207197302270094267889386327529942858934957903904495645045241817287595412486776148008831545669298062261065623252746334410768125640351825934490728850690178056162223912163803171760389114117645763533537876291810402759837347665691711283053588122432642829248821521880650357862030381562665753863686360271617542911013983050483380883050099286584230394524664903135392519384468960159227417678741052139279246099899451405054762056653110915236455239574055020139257443612392538732802147583251167000148031907593300362439252000481067513347634265339907549650233225681624414288948695465550615286986530052635274127679879129191926726034114654596118191445791661390102978583849861532899815102367184920904813970573309541378828859368013289492908611949238574822232323034979977679458538983536360811288896280853368667543044813693887845830915868057902478433791609135115577620350997179386796877659176814081536136659217891891687901040886809083817429624427864048093390892248268206647743033734708859080051556506357073889493657274632419409514277295581512656114162702027272494390742399267519426329071092734123912987853951310599894959289220982942648991797396361785552133751045967176099503224278482921605125444769554390838940534901224719549800149566272302016331865462209618205663865299982032615552350625473032572982282339849984628926194457779830097670378730561769553657964905349229013758030694048935420996246956261785972947317905381688007686875101169528638458714207977133540186674322682314832257057075358177489762080762179854251230851931388039856905588625305421234080539657082762696379736690822998775528556436824772510110839622158795574642135187467136105385483593481320831413271141809501533388465948804626098430831634670430324386613002642111971632568960911086700781054708981502986256452309860440567250750215015933174874169738960679956932571944946973395439002315046447708197376239758063860744217191318280939875220606361033881923130101389427493535276762225319787316274555457843535509409745749179691240789961947731260417707963414195817497541443551215315228255635348961033143192289075284491886057801423926727056560093531441740777980009879788875019714310404130817569613774242972644011610817493945619110292534495161511107216503796841978221981884492799822214700392021096672266485239287081905102909501538476783678497533450123945378921620691087699788442627250316545585640946221758212145553565201370054502067352378962051655966243820281736849067091032363561657399273582955543313463459212045305601654751213163249152039955964244169078414831421328302067142508168515676604499596779350395792370094361614830826463823442715087235345940607717187413481599996948074942511437948184507030559189604868035870757409147399400072731582443891583775701758710000892881694930522474624934538904076727889479201906743835405743447281674475727628611032184789744196904240086806882813036372952073793901804063095213248517357946432419120201777629819451647094283623612704717353198605850571637913154188931930689264164794079149089486010453348093804501116336237599285942750277571969399202111718284461860997157554688510552030186985852813733145410798845514090491460454245202997168645500044530193374684173997731799125411974501693642780877518295798244770304445153530484933479161746131459415486254915591206057257220452354738372316424199700360920227371651394850693571061498507057138757827158658503364882591128171385618748588932909741245605002305981835408301910376775517894742282946740731008511522619318000697064803427194735800436470765887307075576000694003713245675879765674108512713102091965979613487558588540633062016911504256176173853501674740102105668606026703478327739511382284572591415505955335353945998194677156476104585106228337303639166462515579557299387260016091344157383710992749200609831834719249226269968197164102275359521705299424906077749999758756707427805317432758469377476623106149443511203316583698541699082571000340608204270225558297727338369746750244433616846093500765759786350041142548178076872785005771477529338830055935179176452427178124228164147829678823729731230750658617192380003686889488776044124684505745637782060430899927465930855630486780169464386900259906119861922844791302497728014071799362886919039405772904866398172026088248369497102651830182564371794108632309445876241390182885628120125294595957446672266489483452563091879851529508981900075352461124011492994579334698066132625462545558472123044868633231455589995719241945285394187905374367842571655738278543034927752319293255636130228025804761224250127321612701715084260503118871431223054825021623344720292753894719735414227690425934796069597238308499840016699111029720929012278641615475914190389049134749776297887254987005740784132814144242077779074031353691108042874958822913837559308099087816858545891486099636637706813940662489617471449887070300297489269933930423567066444620796606940836569858541196390504701336170795161041951192826883392229319054589219736682835294814597016749139488607824665657070785409604691889513434171739407077031743995534167918135396452163782832705942914521368495349730532429556323900834410436786517372456296039837934934411908916335996806669166467061108284458562775607774854904831479328859275726788649936524256255258782986614765095126294759578370633204354697273709366642613887852815885272611538415662805326582897462651292954526780673438145417179966795654099090058251047168098517820837851377313266566433355862636035264363254065788206488015360261128641344225107227924161466905144772296679264767839958649478037205959154278676474359116846360210012228328615097146012955789992270060467186358389693466952729549077592221803464961943932988083826244689303320843707863156677488703363878060383681983664125164531614337144167555501904409928536078236159817605799141085462430253550878758493234090525037719301102301621646096715282694285920969292033822765582763788203087682339715792071112396609422240355097511520045042691375178867440372824114798900490140870049790985527784803184890927632600746559909644688360800348400009462774859618880723147192033875680206128482150791484086603710868294657821237670580812574077458768355702111112689076311818518010713362476814734883861615457269831814067937522570165206478063809227799233150782456861099603302512205966704901786987450637767002837110668089174909788695592777178983252459299055592320885457887217986809411372194706259299052183283330501457331888873013615300326645771399197372607357971557865823258046445763911120866183608945825910801580479096919757361247659453416573526354699863384431694079108069384750604611044162521885942188600047374604592335638051801231077329737614205851794741627954411339392560607656440753069440506291717525743935631747959408395037093914611512492667619385234828536910608600891890764329120873243204834402701217409896206320233019792515872316325170438159996103360605588677620084743397785047363281396760198542719886240435185357741926215243985320069822929770101106127646417205319959116180348400218928218643388935662559644940658821836588709730468420047623060694700314389600849325586203129721166229116018524083035619949832598982640205749674719092982006171527451171084604196593090019453322587817242281452852772663106247967309539268293735801541792773168522854141394781511478180876201530961633530412615108692262464130132690894287578105822545170293957305091922114957720385107500589583164207224569295007028872425883328561160451188262422200074053808226894484034901495707349126721975174273202276185733741233740072096175478406700530527160005717789182513593089096260747020654295403581853718169029905551848220723722539340553463589516089018889491057184411708033860198010257119882420968254585392730447384818405694887667524668379348653490940718879074917383293870006022057149864320442291955479264421877798606677815871218792867060616168800411803831657993916583037878668288342694926330892410425969009114854832620507568648011687355327568486707427825307473558430585805567792289911860180321125023759663484146788267425492668412526162762650706166507849468222960102511009248838976205223381845305270083051442074902772543512043751672421643843473060621485751373736654474050620812847406682490139861326791163867012670978958715097651765880170466254005178278671695714153869446576385912920869467275353867013558737357994794023692896599264289835300546119280220309837773268057769232636241890920955741374603404064040054888692111777003611204589003657345413091909959316790240754040211202880780211410466159374467484721441499945983108343083033588219053041420915447893649793296718181669018782090275164326082635908021124262318082233081291579161314068089443624449833942387915663221105241027111235237356265943780040615264360157219505020450428025714883627821899374132231349857880555963172126873566249372898796001391622911143922048240270560030449519741542824161944237059463656365825409922028374038123462339430885775339289479915055221598574557693121022209641856408493029420390946304121674660594793469795194355525675933331487848656212613647156351779574029484848088707018590093164311688043591775752767093939971822235152014770294488430057577697912939831230882382381766074926450502088132688230655292175944204611738520257652898336209320359737605847386401626871429653288756426261323769777627401240520163690090731673861211949811255272678211291699189099421439893736651912172622339883590887528275640947211337928743610084305298812543586166591453540798807197029803424447682944099308180674675944336655613590744955798818957741492146156441842525861351558929400033628786347884887913430058763403316441890968403917118689899722863082795044795566118835724587172221810559978182696152639575526342932625552661961557861331218424212309743094132812138850109756643160476022754889096626732792046882787960901643371332245834720089996980576995841334601580980326574138260816423422955438089423519967658746756819213718171431833880496054979299512911408433022070799138529826255858779976408466167190675455550627049213977740354717246651695202032084563410898066175222037636257213671857949190303918017444496782106999835119059945860824996256038787767275969074248461616998481349735706701638723765873579472370170741704558848434752832984583000375943315526563067133008529831528628775008828630684418007077177709564724769273326098458701835748034057073131153039436629166672932837853360004939339286507234205383145881507370055492284499456761035991452863026906743710466442615373729148781946781177765552716178886990325514709947617408518673871063292346085398028752156909895881963549685462309215141439330093026604041685347698909994250398109929059684013172460944343134360124499449842264061524302359136132059842369033791749362814570918722970911791864050576983685625980371654795866360336532925273698185738263432529798545786928917450676621608599673897658007570092432428053979432098465756307436878779760646148160594340307524661496476281935253421404274722418876243832185150269036657384255360994420956480113565207067423053230837180897893272041672981463365433425974130635735276659818019351389916861887294610114543588389680263462227705657049987521561477767585892869961155188474946169948561915845581864162192194245249930360667108273707187707308368218279674823206857140432741246550514896405343026070678529969513290153914512777780315244937614309905442977799005722206520472298493191441025145492357409868440204093580880350501359782603970712104280569126011899336100860592362588988883451327417095026339554363622051835121707417433923286820609609538049812350236054088119284274988786165730279907825699992903953792878653867650661348664503913230565325020587525265887410398326391978531295846965967114828620810874775199423023302558810580631353707118184199332345298076459830240852604393817219133583316067318601003454046766729543440786259093279051351782234036387444392835675547367441583664245531877510144085049808633761842482455170333672930224806701630950294560044358958174208416536765980383460932961153219971850854770102707924585712870457321302041815283363064252651606158180394929162956762455729417791063400317836271164118145491120623411044183757528599023148070963004639952457809069624414528699984059083543126430699290612424281239938130460211937446395556468984829577102863062867136407290011211032405623126052640384103904654405785268616329594669952970505337609374100813095359290280566834653471060861325269565970636176766921103010500147487129116691071972133496175886335082224189445782290866081319475090383795614417506206917808248728980994177424003954751265183103884348156574143172316341726739116980123750558756629807030347535165113527676661987162319297566329261809268816277991496358313660902134866345429564728378055565287188960218658201844450839971909372786932682334593464372188221905317181806148914242252739663023281231113979365835262722765331145009070887435564986549962589527073232029566825406244138861363115348148921071606914517347229992457920345773229086105082128586858329624317279447321316351715481776187573250570685323858734819768125245266201430783607288691721111045568503063267114969971491137157738416655864474216861239659594760975205376806618732374820541364303110577559353822786476784453368265654900722615438514769951855032112240661324057074551078379954794283227234805189109723068656710976946741929519308897120510664254106573688472343531501486714180247536301149612968622714033936346670940897378297891340435146558637858826369709519361357366878761338042932347643994710211504068584934710794390784791503638247283951904519028915500409915737700489578871808172707862478796738674205366751539028981372784266047638387397587344065101334262618219181084904903652875349722210021965121011304393525490464897303653280023107042727693954227084956377807687618083631580359169991553642161301239111889826136452044116193144015570209844935868853985056202709902735812092653681581105388181086632482213723365284169267620476205299962855996831614483677619903713060378496571635529395631558342378293655622323714750845233749280872904953055275174801382524670840388688992495042650525022179992803556684546126231204821102587336046565643798152750683302249628084909447758696653504371757523751626624000207675173121158056871452413483813242153493844229830803035015558946258524307932786512887886140796956531250988054028245731208454460571519891826359937473624469846992872006318566381589011845776510334218871897270206439588424700563299747935893384637425186742525190198811065535118554262459147905508528737779452109760923195579958429500320952850804294589568962027747511746828210109757713426431541898765096729770484767116991607125277886652906177868177671694915669702214933470465847095929818824030715007042566427560400106845395765520276938819196671181346647632189154477935770411438841565580446439413809717135245886615494627796830178562788618043444981347185683578452890042773508174928916912619100118200439002737720261169153688684635930615281647008978958262202086060140362265633770641359079893436480042425313552284042679533474653117614477179920531094159504149920155088383470459302399649542974762807485423767074822050501420437197169036779197125702562415705812208278534493889799978869661924219840222786810203478709137813175530183843773496188172897780388383337208691692063367045428966090952015703264713769744676883806099723043739247942960264897885217288730501074014641126733574424715931738019993466545460018975786980927910168494777641846342320298502005765284257002997661756113050077988089674488514913116993843309142989023849753973821159910381109353789742299269518559808887870333553210567166536190754626486930827338776210709414624902832460710040209321842040767658014699556489106603985526805969855301699131518367343431365995684814621793807774027411711864973043880942732968074275560241093541629258098515777048292917114961420322230741532497266183790291531860188086827859613504172797764532390468235472796420397833993753713804501399484293350354350228341577018199035201544173449474576334313936269266991758765603413804232906199099416038018232246413211124506865311394210057301577145138713220396749806179361315131113188546004586583224340137788061805685688567213967646535778176332735167952754859164839778719123762080427755152214726063968749619545999058333028505449488056656385269496442273946935037366332015023516874616494582307688025675250837600051586939961554782147209418606244187159586185227508290233246605409337125343192466257880115053641966303895537420763955906424696167904711116284291583737184054286493821429166032858557882102375428453560059295803875153389402851857551588172004013770363577485836678609913758873355637651537363548675619056422156540073817430310064079753242145662057337569736953250671576456906627666310767255304717721884024855532044863824507500866760675995097256307139177007004279409232147711592784957791640775344544867679712781680905316196841210956124544406313592776810846975697404059065143998893896472639038132838786707307253599454493402157863500956865052562815703434182417293717142353754856062153916292716116503658173112832153700247687607090354401635979883948685898047983381433572934811814856417385749486482605001554748739907311526924866679171345279719618244781548209558418787348222321336283169321408707885732888553098945346783168843540016375328655969110033163703446393614620074513749038992728497587239876484057863595582299420164155142272725486272220417203415919830697807327083016475890416876549004874010704601427428392878100113541965848100555964722924974897814877055417590129595969376524706662967716809361075514798773063291023128491702667972156531495906716230992281865517041657046583015093018390561425736007993003853728203671749964270875337718769704943643895701507285841895865278447984282741386765509122057258798986073120659660134887548963691805147025503157540524691702003638334037203950368268765669973693957454136678515159606663121068603919858277279118240841300330519509141605565130747834509709190331455838134913673233743573464428084068918440049410033747481323997176292296271235435464294936685491230195690529011037338300841448661895048690977234507383125137547367025566604787773170078543506434146976377565813120437177186146704130095946660966158877844147071674718353961842722150612809250573632209611506446976170438015391765190873153827325071985285240463252158333942160998232484672633731055245158154713160632452057832038242560152064511523524759557001707491610376372902696114956120462266636410344800149166604136244081623855504496254787586192163403835612961711981571094175104395606142520259943341207474134876065161284854038983522923699894262682273002865619633449101359893905659870229617006864894885505729958037898314393949788981514200373611491569439847817830280811354401911175712899932335237066987870402462182444131552757325654295404987939470701349847437006979818618840514700296017327738307886593600177426383867477737641001848935072217817716242647882023668059999675871946810349894661587387735368769501563121730776540168724727338396391299728345316914495633747638511631965242239658627708757793453343841451993789522376444045641268758211360844014419818278537465253386459100265706012513088873519681508886386085698159213980929901952433906821942149554302581885334551542397563109112623760238651798982342908712087682493749873072285843335157893363032872699311697726252394598312914397589273716999127091139985906475280677351625254777492683165251836782210392492651822088462384356956185578817527411573423662822081201870747530815480013491938642523000069828525230199928362030899061171964616114634826221249497699043597935324946075350123586136269090457420128473509452052803436489538889668503539264790592801679239799174152676240668991450901668334196970606046201533225715538798100174571485850821614424262759929132716573288556139012103604928276720363738446034181613151260567469006112720352067709760383717381318009943284038701335173538109366224012879353605948034365697110053327315707821838232236813518560391895878893716454870494552943710915556557486198239958873120077172473915484872209481982931042109087763415244298525429987935352903899609620657564889368505184233599123954775805341885600374863535655430821836349127268819430051564439970045098833696596659544915241610863933823171022857210827093712374687033617919666886046202757928063655547694261218023841851132469195915268675347932635564280340445017296937111435517710625382014327564586528049048696037005739446384587781967064738165302204811299466002883451143255476617861307659476739804478397982077874658661156843068066285767884772719593858031990624663455250170023398971519507214662870211397713762667888345363964269288259180889949924997466092823670505083359163611731929529940713361936399687003191612898377358204282786416676294696819877711707460270217926742103735195652101342934495001339429194432822816812553586999268303855305734997838311727547278331729354330166696335575792649525935285244378654903805874741622394039275947820447778884679591443428456702929476772756863727710812477362588456291149703983008593524864675205682522168237331904663301842662573860865446411767294735593608483952121474668609935849525571262574919552866840034972166633475263622144572513933840691134872998288454665773097400665276284173096204955330863684371832692849340287691707249277067112365407857867135236241869708544617073651901838285126599671843339731244880786256598955418513996803279033735769987648741207853474109467982499207490587671007202987423635059774830352861072601535959167776963352588917900929429617152458761336045229565262676169863238251134696296598174092527297271348127422427093641775721631724782241520398822854722648235388257021231783289440937992574935646887709956554911065257767020043670818084074863134150356080044793073438882974968545575961585128330061996342262556847646905823224372667406322173142025339242113203897950090346606617019858585929855611582113325725445632515250530051520126892960675344410275950660804765581062399437840458624231441391514219913893132224251821594221178521711600728897217050965714947834105745649878958471007185055697627243114297242538911603456971632331622821332030721477104978065830188606465566755168204506675617147864364229752754406319398142167900816758736471701988270232340304191850865280276145635743238886114294345404459602742411974278454198892701977693086676955292707542801854493812174102717332736087114930177090080086037726360154851543259627938557363203880069475709962984217766498957039859087763338826164711854418469225918863834099715802703001405618278194133471039768979089378259963438402727684038290592239219088357800457131176330057532291617291221386127778960739657031410433108210428590127698294546317673267700818557098516258178189560653859675206045494379588252696359348383227739497880609001987090187093716050890740563092087091025563836295552168940126568999839498789517079532666649542466565717002151403942259633007150020695603151112077268914750648544702599604708913915377010782413094436959702151317514005379851919906986083239649148310470619540586585285929270629601600302584576840745193164873190297734854481055533848887544635460968174476059555099264459150901996892452416934059060917699039808551591863194045456698282967455793571950512753830321741823501544810496310207455836437606938932561424270934838088747684895229949524101162377183250713506756744291907682619270602781215748994827341797247128390026514649702773455496963758479872791948608200808051940754851447247728933374526856864239248411565187671426236184740106488330092787509628679034532925140245367612172575507875919240084928558536072445070771907821494851012295214678409253767745013483640319852943177359636337019628728863970985169103414720511848209613735152986917783742623452013111058963377645595882912693364524902550601249957737507191928807797239752205697089225844328704141355178801219777940844073661808161088597623005226684800689099688996890406355801298047823027740059520521382276155118814483538046606943368479244363656010661262908819996094470332362009078052789508904338714899640269234231068917057043359633391235587486487215847950937227305433617302151321603650788666404991756896748455847314631229507221311869116302887852671167528323250192146405388302730060546719174640400385111611295892732372897892342550725225438588132753489130097425977481500142336230099541747280014631535660584104962827661660389162269062575108533409121129388657850496915918083914536771541523564432553725857535196019577662143570702621774558990161900425460774288524274621324630877662026030502505140738887297094166605112324846714719749438863310016151209655155755074352870175323558007907664934148256323696742552053790111160122568073524490515395698094494498720819533156376628348736085042702946335404244563992671314381535853002018282694522818638305083976191145439176991941877071503619478265723597582422687677086278644249024541271909206743750978667926006893404557142486688587697956815164997710378994688537575830202306028578772871002979612647079967958328539697361933781761340970046716816061687368369344474872328902846660099577247408259319583096908433368336615564401305819746212224889665065773544346385020666893447657760516913332555240041413671963298059230683003369617374302191483348373398056190946897569387868612059695435537673846920195506829072890801493462369115648459538759654039276514788132055504762951778893971554224998451528226030348013044773359698372042324394704749849547852002038409372388851610778621362836235189730229653909672101285502258992355345620774047615868193135400968598551408583144516593214834751532640002743302375065989119294370505973956877960935051292948664096586622584661491325491732636018153167837278052669509268677426229769609601068008403260292682330563486822678075371276225879495219447623441049144535775353972570687702409990649695170741344056775968621648010446677495940376643883684078244069710312438390222909910204908824633893543769628741011859066676233710990037351260109532707952730443732045906834417426672276520332364758939128041552972550140715005005849773495309274315883233609975871069995736336993600457543755758261809933913725337873070600221011033159548972362305512088507429016513660631290469174996897346824870563039655376279391667740157660389336684755546814947710287655780599062166303252065183086855919896285218916410917751732108851942051579506095251753733928120403418754545688040170422307506295227182488931501824858939330808604997417985787538696219279185184700891025424666323332351851677088948607269852743094547379396165561117355760252044590881464530371466310832112164402781650584679047018071749644154807209818574424046134327750990241971633992576720416982872483495190700760797317723060194069999352054757225800172014345898349407561365837904747422605240178841732319290611200029376804336196801286953719260550427752659191930533230603925147437253365686877708925631358294854501371035246434374129311425308148315198757157182559695489288563687087679316671536596393497107054801475137418949155268399482433401554435007538706139258455526352245626187295030122244247546186825294833086298277308117201836443336189932014631610242197154408074443622714471809083585430402885027616660987306051970526717149841106691872169416595020667115612706952008813661487078278908587996053392249953890417749215465556685162307185077941393199929691717964117033817282724104146700252261816679769683072958349516693962879479013261696619806375890383944108929086333076401674621710543315801717169920389948272692102009665068447181042680655819818791108208350666676404679297355455469513415247678797266145585273698733985578757038228376297953947572937131894589591663845065764212089592538721763358477644951485282013453467497991085516829223173942026054273159005999855648972434130462352823551823917002073993151108363889450890895399193227647292044858611610257384080428550121720604573805254625291094012168742002884351187647878562533415672640450952181761102381759865247824570580362309306487179265606610494603047462069889877962990153033575475560531557909171698752203796501726370556479962045353798117090074339712999252400331835965192328983491409916841684923701067596766320926459343512556317608046578153713390130048429741488958059977892290317957843654023722972012231607876320297597802166848675376936482177888677612156998687568316080284465672232144903727082819268659764923744002691218431035268882666196423108601638785788373701754026668901606226495686983577447973722516769881824187253774158606224303141007488655109566555212790181661833914171390143654985164916900986595586443565461170054858427829062072768327881387839692768556739134570886193977710246943204777733187079711847447195659405616979924996971140165851005488635885566783661173124720763324402812860070359786573865812835044200477003558046344344135213732637207556842346099708313794905137303972507845239830259248471743779654392426562249214581197204178938490518117928705561272161787935400259648843826012922208961467970024865372017078795581607389799248465272229456561413748049806140862554722048907110739991911499767689810250736957775796122493634085883616644290484931842422713560370886037782354947863988322080160173866013994587265790184565406465323858188475182324264772561670582845703633507709918158024769239551228748977448125627719171334548852148737711240136187026727568345305047575652521772096431388269629768326154468354384886544773266088456825085941029287834276780634264936160826973141203459083855233165804067967197256261909430868006350009573711134493775187584041828316763915885454843316404242947617885359589507242724937836274403978056632357016751537979438815594648785143039923772407517435810568506570177605992752802747994045782527305937308736936561148207631585264238094464918525331908809647013191643176565176696837744373969703012430251754143547357780496434435190276112203613641154498748601948213187071617101321486739435879741934050322368167372140617343527522030289320140863334544000670871380737692324463993551309439804340681496868082177073566931716790329133819169117340188171563521848458822260708960908696423685674409309242136917255129675579253919979173038790654423890971604067461231169793926069690836983928988423841982428757119715075490255213718040283431050604653743465711188731587923169643934799744811035951110035310973015980646915401124397638205808880335741604217862885192362485594078912784133455631173785612181921189405244759654777464625132471780321724059914270442757329087847412536767032476129579422254467352647381653167593633013417060219826961247756890835364333439684336584140537090745936918977475858202462666130502195280803752858106277041455320560226881744191593887695590184663416574670701730949757802302007352751659935964225687784816423443411181291657946542378358256841506220196966626602998991876413048714469010542539039239190501230769493644069848132920363730841394935296505973207572513604736212550844402116626752949735315715339980157807596676195772602467864226890391493478003153719217380111144988672148753528009050655232967721531432809894503166754847551187399056762583533962372654901509943021482339915975617597563831604287371115435445161857140793701296457201955426123235731042711610347913453503267883520051319793038161859710663142676406339861743635162340338542263204177633999914612872165440584563936922490653236984349242036235472075131122572008077089620866185086820910815624294957706873496956281808448852978721716673906627849909754875489184041113764625201822137251661680330127592207054890510623133869652711526647675108020897765959190054611181423660096646561682693564102746286978779930888813090157482292038422975483371486418181340576596292982493982631628949038670329644254042072221991933500022349354992770930432434849607236404376484782902462248276769376222707261291190624575294570712066826411729593602579695460682652809103858299939427532993681502228408256273013925281584930022985729512737925839571723331003517653071115827132792769295357733809913110831447110330894301237830045088161924848597414224760159618529318365956391231750537808305119847274169911262068329964189511200322708109497512538137927058364316401030256690309795513386128971289223909929105439473833030699524988362067702634074728770137523292027352797495172095830032839773502866158782491265434647413418953775066251145211584573773515423101415829598528704774414771865001049698143806141446525695652591055688820948655336631307054955604098647122975581332853768143867081949947144757224991717688302749971950839949412348773090639638886281681217329944694293758068705314424418071594050672195320654651311539088252448733734838775622779090665198048983067823875953125861695193065578083906445325459211099881104307931841708895634162483730597916265919419200579855947947532242557005322926374007454741723780434504962056550295731119752242983174962945280177956642843478826986093701377831978044712828865111462314898805977123954576333361524982788937664137149774759398047378882843908647133590961672086878977704103607159039589865155887857975438556646431079728478366622913643170186177420073796066005897911638155892405627656860875523170674515171299907629649936405120196563254822970276369095912995542477088086058361707252740757189688376562740184833821329285629272269951791556925603741181917583406320745381311138071354947409710976867962172891840728853948236866582625848906439454421292170121322814160999982997003107201288825869104692450089050482149854982728411140565509085875170942079620665260980321247940171283405485405498158353052914758144453255333815150602611090994008233727600961599464578428846282900857436910753900056782999452924220082370094387432520167598632410652947917432287452089999163510591217348349319031124118610250745706079468674508522666771345576936552451468432681337871562826151198313634059631875274418150150348621421875537799054462808094022052590095274707434976270102211170219058755752333005991994918151089841816139989702615860721020778096405541256769270642301986955329893116570526257474225428954754532884627845221483853591387622776146142759268441051369221271764106175866020586802607077605884475983171626967916682743894063997533267201555455790186553121161321742532260723560499248154047842791645593701171809972662415663408600944040948053630058598028063649300071913316605086645062304601866042826720455854017394552874701300639051399358427182102566262553232172528415096762877904671595631009296545856840237969218818276004529551913587647807307556724493435935410062986627272962211487918479096077370471540647200193849763243261512589314908044111779495754538356888016843463802727652556282385497664237459750685192451491720047823575075994447852257392356821036320720313158345594225537808980205311672679802854233497067908646084256830726765067085751571485255786553765305009990214797966047511797368417163434610753544892140972473925280869304657652868522896307779537501600904220155205579203587846018589460634628536655489798975091167243250388199718087089022316049211849103504220046960913732642880753404402272103120417610267868316367930959376966252312655535276168837098136450785284268452535108480684721132390078413096445757125467659750871354945902164674440340417653105971390369889121721481804796320198508105735046983120166468503493449190736991805458825211318396466254464486204157600396753568780354721462736465829257809237312534820130496347979954182420148919936907958392344499389989659518713618016803197145196203304508900476958919913961811604871252772257313707165792684512968595470962728730260477689627119970224308047102537074614954287365524704516372787924925759722326248082701823580279613080954808254305736565647127257163639585614685771716539187547583825699813358863978284556281534962091684066987423757035978771795966758054082006271451015582645724948880442984990080220329768236926814541600673687493515548404800123139191857188359482556084696059413217608224871722431214063730544081795353143848900310979935049331885240078001596256777378175968319762315290624166624196498535327295724273956749358508873946074699544831408076679087828504890706607335539657328359778142931251485125904771196702705633538955415247786693158306517351611841091420989935182654649774718617204862085887680481019607362860689245141641179084251386398977570981656616957741416685829922291686686547309641495397014136342503890090921132061938870243405850181526059551854942307729184675825531512402827041995854769688643086402287376937704877100976386883029061704128812335138108870250185862040542171926824224077994984909990650420179835864084347812689285907835178542556560744878584786673204339630320401103077172130222946368690884733096312662172938089114841932624806168301255886608846905565297583685148956535570945143567907828677654950354622716761945322596912284600168805253785890203724180174357777213735590224639342081702579016840485283903811910809667400925269104973500740274498009283650470532852908636901509936866689114810443905892047413516955169368761795413981050671870366211700551291126771809425897793831308848813598529277972864708885827113062255048605928329391327203779226835817436493166173533564068118108350731224364968929386223374730279317145650232198578238015542151369542408983067131183744532535579701314871697670885177092567869206183018506369212945883973128947912951516063860689328594415186144372156347570375538029408409236194884345114876550119425496584962855544771456179729453317724512382977079295811429843223382701389194906875426405847583067743006077437451325690209923167999219139852442886062296928429469296448119635180552196376325462615761356204330515533156638162069148418394479154196863307866519499897287326118471620120633665764072575736431351768209191050923340584412625043692944317692372854091802834828904201315659923248498124085352647923562060099901898487612920654550917406760491847838485221106849460455150708537866795216268480206649530569452741142258246860450136345902840941094444056948092273798326556116762409512335354308695429569969858807263468317946289560508005129818110268420994114346914742609197019526726858874590488430593569980679498524490347875638165565198657597764841578943762437468007527576268994302067273665709882588261321519907284572589634415378829811843518653297807795417558756829652275891143710421496778248314489981219980128696482536647565466943134972283911734633527254267446504465357357681619942210110076289520485346786843942613800308547452593479564788140899732970210281729635709913538618320034970597653287994952975110278518521160188173775493981368347418322831958300415844919263244057020658131120271631624009612527330156117573243000610196823402367847135720264741362520448142096815387208063414132314374247014148066654851282283287970805531279664174444113652670720576529090354225336406478152775912232919832768336718824783129274524249569754665162056098150241262104244284880932723139140748770068948093833973832368630362079172484892214158089429402744397520475819807244568978620148521849126041616490199500271903945603338244605379978935844739563516635042154039017855560853719947966765682912671103927798268316429687992121611919115144326729673268877064861798307639140659579553772572453398947179367552932219446302168555803069715938763077107056853625429313767755786165964164518437839386010287078250836657503421299503768770234661545938146382915616104092482836952752319420477134265285472890694421824656030193182560085472992763047679232049029701420860641563172962082498947761033202358143443237389591193102057435176939172420796261089136104152882092571362572247317417853238061507644111665040452401262144360832536635642665440122365040248599790950414911328116968011054328525124754226080989149704899125719763843967901088500335153849162644084944151472449135229347281583056398321703162101501251813222918905267620897815034938548743568775228266154738072249901962266153614318951672711337275067387687539184382144158101093190027620535941421647400021909466716899722154056884017279805387213656757726204023095384095524907103199844221094301132574964338345637776091851915030646938628864709775081029310803178727136697101208609911802532626385752778340130779762874838322949822572749342313811017469451930119979848898242344302339284218911565624167181885155667551045055421835368145752745727863518842509115471102657644253501349861122441104451887548245865629115023641622288826196333644403016541591797314918528530704322280878045402463266157620098867447429075762512516752600102594266789366574778559502696695887368324675189077188381989562187685121158370981420331559320964886545613662744183455064287346781241380355385442889945176091728825689909584552841809991832018373040693461061514250254925855924572818005145768738259219367924908492773635245124614823167334252920259034953661274544213401866347968576772562354222511657798911698525296309302089839435040746208019496953785951777181511095373959106468157249206986461999294680837555704443500787641055400445753208973138604303840162696765066366711711865001149494179869177014800864092754909584860755658568376611826844762639476557457717420944160607849829790285938655791721418200192622161676486221170034643866248018862892663513986757567878660510474306682399844606347052983859208062932665096160004939785773584470454855955877514758234828141168045735665146700409530889554043784123814702594288128447572519815196763582139806768616605675806859494714946369516658255858395942508993199553993711640348024032846892463397915835246724804299480199549449112439539404966826661788991841683334938557713849891466494312821647473272637489086250473627937984154275562996673484846699873664821093868180695312476852569848218301593531558187883781917673837276966671818731509111590278238479102850375769423062644294654015620225481265493716223448904291657465228810609617218062485897162130653200331486382450903838454901219844375832715976076176454560378339550658106781895826077827055270163550388081489054340922031521978953302536380099336609752388077299947306836498167954599760334488842161183127984657120907424772219704159515452699897878502612117930779292215367957847249012363283908065816826342707836238095601218275741201123801939603032382205178508563400305977141901941648021552396918590031298912790457893638322166246969817345885529010984728989628515212608327822187595562565903533836305729261785734563405239229608557388486216506571585728634045090413739017573488805322384860600846300411911910020056554706190340518073754016799181399992049591623932874347673564082545644049487373101274823506793006077311955125652801081413385514789159075512092282574091106346588842982787074695084071563521863325857557520390727278441606820011315716061326695739348824878396260098542878838797649336620776490852564990171032534923301950065887819015065152395841706951168247089382585249836328569677107251909718849903380149822121176031000358359940738916717848519576705513908926128510178230166901908684871519151729134489421298080647652924322072633168537736874342151633686917268997664201637926889480845690222449304562279209849902300201406761231456070197140765272929372009044372251410080338092768674117712154656803878148291462592696470985814356017288308588959989997408230876692243708005667944714337115241589263530495159559801918484839092870592184297328422970927938966842292841600498212620281210441094715668063710510196238642417322263933235110496594810126415783710090112631383462199835386546511972013209308924137412591389444774877754295164964838672159309203539996077323280511691175290071836101134861255221634295852196590335135948601860432221055675318602378507029169090686868405758737353631106343544117305448474067351024253810133644675598723607159759994885428753921179111752888680478612415343919312950243961279632749648273617738421143275266773638124969349915455169432264438134157361459846397819411685302099460419473164425023682273314476384774209854431481488878507711947485592266925439126158088152419241114044928040908977280840708427128797913333062503027979784275636186020781317611068489524523371330129805521840583663752954604861380780229245228979364148863897781281244225754921047493635718531628446258853325669885970164115754109685933045608016941402136996037437877101413250492739448035926022886630374136576801945473091729680183712599897369953433003071054992375400532139193786916728496099914362359628161189988641703067177966061076670689617271326612371263763270598080905319483661060862424037537150508486115195202013094026631302576505337082146440782465327338424207481253212129218692839929811200053238155526571469737164743396600657068169869577386883752618463954646169668834397065022198835578219007740775852066022774422362605860367718492950407173328172466554741578924371775964522943363593507259841317329778692525787695444786947871804891199118411487465611799855195574680365766362590139954394528016285717185224627002225011411759841506557018248848324364362121387058397600161193159562774156137994983614344721390001360240161899212809732241040017930865718142226006665447242919816374293871527914220890026032252509086664435515054624132509400828061025293421419007619234955352020574874827675939190192824328158455550587911882121846610476512847499374115097931382079236264971877306489609261838708892672905451502605409265667683942283034029684284873215470563974439967821005404689062898163890368975841190056188737500168957288344484980491671233445824327162149202240780376901675701323869422518973624025242961843114360666231990472114563692250583158020034760167553197261168442646632876024306346768137340719861648935634664217266158025193383794491840698544553411358272708135487629140169634570646344235596450672297847305621013938562443355859793893555819791626142675027960747233376173838688949688456459566625296844027238709313494628024750907055142104590929353666370989614163976613954320458462362915797620687106974062821274630398395533163341570276717661541183246728029007363872979676847971737712940523235505599710292623924079164542676230852527498732198365180873541846740167819887319269519563462631342013966344299453551433563890408662743286551300165982245196026957128839634692240208854318828843228046289066130312867196453012530195752643343916397041540285231895773093887940097534439954586476404618338784473427617524213782422379444910664825373509955084094333155379503137672646082314022365540228733524371309303913246565150149976166050753935929706350806248957154610965512803553051791419675241947479734213433383898873172272719150576823635634386022487642078208395866416724633290758805660744201860759226146475818420827679948028107818743812679328378209424156379861389372514076881647528036097480158964709814569982173819479715010762854054939046891493026430155285615059869937974526805468823799968228461537381836248498773810689970399752284476158655824812038790483166323274645808118459490206477779533690190100802934251315350399247401229965135889443850026895854445311837788931472538803236293327234088792676179623543384032676215164680890443472330586963649695358183304154636910453590874485417917117172712598210106324109911709469798767206428398030724785928504239460568293801365697182834815595511408201506333499205228256833072455013292023196419338586480922231858704244988652864327079297111870413009036307475522356289799041117095133000235653860989188925470476616639174053517643907107015941062002223768873530141735014932054936461121865738172203252036569923069384302459043259646852829408867245552709827810446237918112580507147791491238983593911703971190417435867435619140362949174820583194762284518196981203785598624434615726478778607969213374428777435794185953118283082578589022572724426208338058791884743720583810801699243587183495922001487244146415881395738607042857567035269968491784972999844768732275600142089002705716141618924129104352081544800081960820382078580359376074073926635873671575649931166486329603612066560489530502814452442027985912527024539455616462027250541772637555275036091850625338412436034638220591949157511364720003342263114210846319563005695118125790340707055765571960965633361590985197896478408305133466884971556082124456050407325465855928940906786863184403199479245169260465977267150566220308133661970918929551491019804306603510165313230247116628605434416671268471856229071398222313401291535242327755494077471485472155763758329764033142430775240249427822517334802654968494342043002754787314395539730482878320806255025550269703005707704223674012484520350992801399905568701109122198502690475966121665483404412449793832136736491802134799571211983389636354170966596750286724706538806860885977517144767248727670049308332324587448313098720944133006591044461330026822423460831829628092312499989276118999195214369209982673688540103925196876765191705743328324279775617112434349408800757433870591366288990173350813074783729997394181153320515267339117469573969873723795593122560975072610538917320007664108868085723992167971918466291169289906712903168553135808559820592004114584137367343009375192283467953131206495567797194867964545403971062254556663658899827335945345549257827506506284873027616372042365717543841384603125286113913208005381209785942639787057436148781115490647054372641894102186300793535973453052139561834059850344418680256959366507236688853893889351210255692327534606143365070907753965023269971491605051802468418224455669969411993745014521075086527303255032901950749119987794750695603128519702466531059116100481934080092449771492120058390530370480507209369944304609913470335147010992037854717980823663245670050775256946780071085710538245968108959617535899148421711288418803032232632522109211500835818827966862367734507383264698440319523164024585486631025196279378109104607426099872827100996678886865186673086198801329057266823568940836336534399648012390244904799146653253438241364148639444838389579140697552094760108833577565166562916593034925674613760863413410533100787681544880802918689041566562538059761995624558665581474408059834802121702919790899610673151397184848730577811469110144603093053927470896356958308869603729778676814209093760086273820181591841796437604714874648754596374447145845633723937321509494150920377872394735900990684365485821362060560558839773472476654610421028374513818324230595079794007028435381220801943133362780114569881685819606980764512503729378334186872910250448523140856613734208570760571728684585354354291151920269066017352282510503039525903949261413080660554108377167736943484283557549461275053034813401309524904955403568472447152193524104768498032506395886674491563569980243146121355453339512781472045724882524707423774022203041291287142329410281316182647569969557662847000062888473356147230318245849243947271666222798950548579816830534978530393166793808070712160198800880773019131920939570516359064947052587758913264204586370068670132680512318445227453184018593058753124090002402257132364770088096860909101129321803991200057508991875151316267190902083935890415008728759155264721146418433689802020611864078519933165256412727326833891931398081325860596238636417230068065936806382906820196408740230007306367750957662566680504706214639363667380556805440283882962423711092008986010593192895636984573049550606118899548691512485909555931539006983247143867393507310720546137912545300498597944620000335311179921234524975310311325462704316628118233409958896316597511139866634593234052990514817754778012351972086424339253271835890225673155928762838292111298045669542029921769449026384501480403589199373008177776414148821995814904171838843011802545932689760749916189441422224790755369438552166016514627956486668026217756024404441127581902833495150211128105847229748670202439602235625637675017791780836380402966415190295657838074372504758379913821289369954654494661954779315697615527998610306678735297333998069506206808925443802917763937779621517890093739580037083406386615509491284482689351737306018633691959820453216514049026031153978513290886587554399933066952190955816588681841170518937699333651787201701738215210649670753942303866896275682374814899034731189630077877275304073118191462990303552158353262358825295864345536067704175518973495999183223092751589400819414614698923669229524111703150161594582555072866558419275227859999051037563826694587236704828791749535445171286015000315824435415042495987327420323471215976068655658878590701225664397652987168811814725744328081778685544986925082889152992432122923625366757062345408921696921616669212537509517475725157790927738020398246668885826644208366398747170092920867351196053615067494726377233615138908464973971525072521449562001203705859560109297217390036394602342364247747248492392773795769232363962711733204233048210611391863138986454054806800961288553942877884589374057717925047435738652214038193636238618745161141720448121505709829101165620744270747163896888515160867578784924762457118941141259486046630201374107184837932098216604927482339919776998618553564022286338861065632546450872846356799511175130886581231150392308247306685775254900125271939417319961406756262887392645846896949946774418649361654551422923249072645775691979558101551136694160199202436970200651655301245152811898974410507355735339671480815980273073250915445327102691979214458020022101019536340046789655847900135049310331110042125195527693690023595506036324978530305459046877758907702842780581413573155411776059142942433382109050194818546067292904188251712483517767495757960289475581108127917565708416305983101896825135019896442346433853021791938577391830872714035641638965177140199574028491020306734831136318271370228867603719154245940095618026030940754545001807559949588170293791314899398126820097131579893723219218619363276327122080546192669978999420590423908141259142573153342923729939510580190187978242917677656352969723661920343091310734170552592375967436196396579779580821683258496805980317381523295217809535981265665577160492387213841005331968814057158386304027319908128614932237377020930816963934208981535875097816242130635827134376848382934164817231716993088579352742427356152266054410164296274725785786063922739308516614855706550353759476033042063688199783626404947902099369657315139231640043709459711463763538593361936700434494254498933428515659151956043760896166434102953192633087021935477148064049066035994787011129798454265959990732722945484791693383995822799139648078960233305139653774271674325364445712683921177725273444311867721505068639847032607883313463453825953498445960888812415863606815671377720843528247293448046135771720234445706811535849997183514502394545987349626542023326799220932351485829054771208882480382908334901261270347757908469266087605176132775419243959163307347931884745563658174324786051121513863056722622313243259535679335114206957960316871176212494410042171494529597153473987911681813604246950706400604454719433356206355013177499984414008292826486276952098994493328092912610624618990053387979531598443226953331086517934691360457938165821902680090124716599019590305576772717239769881828721726126454355863313865467522961551400092971611451697681045179808631705655972366930500251208367782179968064677681979573563501527723752855838635997792159253907579437289316565514092340114945628785498438634818369103882096662701599926974677201634167152774988484581990740052703091001524944772218561912383912827964826111741237651357796331215371125782582897198617562861208489755167091852690994313851967328664181024425451613456056738305996407156258116756775138888542683626509081985863875994786537162230536951549220965196212606669187186806060537384990207124734086525496846436280294010963092255635248154283058960398392894257242061553865802972700141727615205955512478608130811249430698944636388498746977682190798913754861249598482611532304512930196301743478693106323106829401599649090045274216519848259008808561153724049962689168468397058913906059109837438737285239148029845150635686041650011426947924583575806870331074411823087728810206578915511722176767640553796112693782482311919629125519481944748362126637107501372378532012507787804648334181465486332051443497146560545584675385396434209970867282740357315860976691318310183290114681688321860110676975863417059708926028577517990381397093964064175458125389755302196893559872178500325924708567571587828057405600035133021649540230497474628743307592976016973143251827619312403369935706548967448368636969882124846422493397220427441771954363653727904162037959722505231790913329788520174267853811556839636114032557511698815462957991037688942389495412415967721536798068778178093581860038094327679084675438248890200242629798139754504323386453857127453945023692921419677240111832690747843804547320403246361715394014269561029182072319518466268187523272311748079692505858551095806246795470324051260020498527604139794020657203557436366277308810718213719155742438611158416986301126010225408803788601832568651139656885045426229706570765270732539036359306857985254378326562577371205025338661363143812506591475635855047857481723088661687599954545984098823373553366989703710270839946761245669052809671508121930239864756185111782301998108440240728250805420391216952364458461437681104008503081179577221086239103442804969294349263044339615791902430096327670046071729324623989540420398318217856183550038386016796691864449817846378246144093201305732808013361056182519819758031930954532532488699547004233258191096739995905297165542315504878821218328063915905032028078944509372053998710079856171443352429427288655207105572428014723164290782817057174601134619730068245940095180954106702115043142419999881421424426470816256288761365083511570621300034429267157801095043043002198825530301107070621749682759530235939001605959909655235663996327365461309786767757488540232163811862292769381390723767189603171919981109506639118802567259564865492954124311074100634792477709284933301713647834377631730776775460392060173130541852251672744763238083608908615068103582597992184016386974542964499926278411418347036762154096097657218748120246130768561973954873878014092878406887925523474045536284649522773051518672225021317996431361616742993270288965922994568648099096764144388603640147394281563523126488653725829952884599247610694488367287047042213143284549504514713453711951472997290449683185487222881574461517339996626358341830614568173923541524003059613617350627947814369390094564223038960224824177964976799974885347550285173548148572188412037161835937302687375865709684591509463339800855063155682870134940601911736464695320718969408050363252880928466905627131852125944227544600513313475833860552633438710666787398598678077482974279936401408764808940514497675343046087603606321613618327590748673046998693110385002974941849635528056168528287247806401519815435426743589905032303388347996762225151890571313793874315212579297341218604421469020312323444959376264664853930029045666173724135717949076439666876788807148629896158522736424714705737323122862214769964190636118856412886234090749323951014227093914402925605998455652135428943372342141769491747372925403935192072161404056933639028452940830028778741587934351218097622617099603465316143387457765818583539212444930885167946938536752656881749870966238388893240652581305798292231293785947682031836226072816929229524551669030620146950133912230503759119209512784612458582592184838371740825247451961265866593185194754417062647509987731656591594921763561946482336157837335620669463596905080351922997887227652233560901864014836517361749699839257117256368809143685402711080062235461410738419523275332917624415090215630592453102136969021685561277894144479102625684227732740634919026384906002376435379183753415846092186598084236060862860078037325077302494964919533211884645994624839689592735525739840147976646830892379867314840354407166812615664284273089478801503758368354326950638210059481758057258565765108342181197414295011793679128741767309231979754731376413713811027412803263492141508948762529844260888043157854676022034430859650113346440743830317061380947068651261112085793744149656020157090077343755025424121460618696622405969660443775500056557076991997933506570763045574094646737433865127059693338833473622726573327372193995754221127266086321663398978280666198248980008618833509920087680205343299015337205752692595940057785333375503608588261737642299514812823640005500560526187373109198886640179236512053427220482061432634836551991925265899464252375813254943563030441767481426076827986214804267726876224001109722570258886463373250318902549304659095068084630966908454937863141393415011979637302443343599792243079973402676334091301135119678759912948359226377640532253655070155954471503806578029499450789876440870070037220552965780338868417119250048730914197614395654991977441303473749993071552179373927054186129032644278737494457455881429152758115993670840059040847320525280700264363727601481062144780280655843378089842059982970581141970140297336475766614492472518142684490953290204215546694265129267404229154026237634190280779899808628303262475359703121211903931220290510001965050568554896253209000916227509854968251028390464445034812840968608322045624647651647581893589612911322952440818996417434938733647369339815860722486955471900336313098414007526859924058008476312366104187383025867253186431104668655800817575800504211622457700032658041316303355884442902242379262845037132997459404694672154996447358225295679661495201305875654990168160469645234161502325944502471251592766170708893032213159819919059556921715002364910932917287926760096027894132820928526883302200344793525643610972013308755117012631386733960246631949618232609854727601560016502914374825355282318376572168639264138572638590131278976846960515637930064727211644383945138555393770210115528583067697871858335081184545384263453192819505161321657660298641660375584131013525004574732436183412544435962620609705299090804716927308421519130531919878644598027255159483992991705715156413318556593575590450391553757885284985066052339107169102095885903253802006090645213404867343810035978946692152463178309297152476110931515516837700018511703696996874107273689361844173294235355252683035107790481022244030675093452478189667438585144912827465886765959543617645929405603015978930033154390745585821405242852162343861892898108134859042653974868356617003952728363517222663399538703553355898968969201785428177269347624133237952813063095700649263936798514875764352597395949814798738257066116984553400010943421792622365514459372441729072930108956578368531846261124817095683919205962823115785734365551598841337362400657820828677548424518285650879955987433062843091580842560700243314158105670349406640465663437022780720333496298482683194892754158623272916904918105169977856036617633617494451601691967746976357617605694372379019633986302996077000540692866427764357920498614646219774898248532332431921033523974157140248226015148474255118769488634636691219226434148459902035653268469182347890549528090296919143247543252273786218192635508379077881179678404664106857025694617556070698663536464181542263672979158347032761738275547215491078077170472455375172986823119283663826680500523078709058075327734558336699457011234702684550285171278245170512383282600819794946272467448597143104174475482498758220372463095763560489947586625327389556903004327396047381660247412204796301182410990879967165130781471367519383657129190264512848965982107760498499232525899447839518472314037779696821671427200128602005796629057034704988771700897164349932115957231390658611789177686179120357022728541731578558847364656196741739583829703690594757942585783423285242816582820863802306142030002047791473696110776754420485710329497378621676002344483604957126354268826079544272458737738059575763482536144980533227828129352414336429653449864135287852545896546377143402152889262872540998266222953048326792624734829550892264927918063375604850787764238727986022840721883725567216671646220260489826666087013101001349942501887301052479548793150553844165857214545636805842029733763489559082269595759611365892304654158970100775530534897368652483343020909067702774640624263797241655817267924932659375942474369118814385194814219960570064098479932084343050564578074569856412966172942851083342905318614050040282551437697809739645652115175439125974260023986518049074859347835299727846037273168532674406036265163717840221314441536747739986495209478531857849327665748191250854801311897147797138435289200384175935277856803683355933581649766328097811595925742292600964605670511718683414391195574642846102006705044693939630895517531841905348391019546764473021660638376079826039880098873199425090394790755944672392481791717505248942337735972004302580961982657831695838670725667711190306781807560965444000869164015304284518848932280903254500599718545136728782880587842454501030552513206868678362744511122807101100804418027849057764938960901009128323546118367854427188219214220927948626943927738905177055174960577081874821437278174772182152451921660242706729313027019827975884978388140814792305800466788726254920173294142393736274508422761602178443956328910887730831880542487367721351671526646322740405464859385790224496000622927156792699452850060841289121154080381967996407080769486440699923227941420023952344353936521099795594627652228905736502111409559177305652686495689224871761790747882207955227450966650205391252825689129096885311243861321397573022390955990252301510406672342165417814546091427563511947492029490139497223185422084313697580675749042118508050724111371479288107255287941690325223741944697607128544637785688769922088573076294123498530404416749690114240459295717583171391826409009483466250271796567778125211361281078781522570274661070953596573324445545002490011687587857724815930866451741795840433017024984045498022084831217913911402967842119726487053466644010106465763718070074089727315600320802500600691997306968192968628095254639662714535777334999891820878841355326705571089339579477957385886528928164261939232125205642608704713035275953387763177740094483234628325026434435447838268896802488587727496186593777534473578425396578021790707884154556905854397616945324130161849888284013858040545248416566440799561378999463645025493553190882233875042458412136905207509016663075048669111678712981609313736765185057802041749583816553621627476813771915566271104667111661096037760238576660512773905081535180083383083203694766324378552315594484561553018458720079583905984647183181555984977232630927955548996419886492382182569836861971046133762398873082847055786238484866257730568192802264840818640965024796476830050872162458920132559568558866386736168662607425577019855267182718105392767143363154143765128533892023281478134060872674569140022518739124600925288764217737978277854400148013480449805748100662000358001769118115589029362949600574303954805739385581142770262515025780255957714874360212341396604272096506398961690124586835756911204788627511600824961536092594678442099367632891182124064953459631689811759892756039419471800979853506505211602062334641241049060005300641912640240175915117856865567904643048536340839484643517010447886036269923680968906586280577709066804660560302002327652522113596507691698902416416613971686622867091914935458919390724492833574052803529685555933227742356616219719323624488837135548922886242505071017309246308981095489098402625454690973352214865508454387826964420422110051077348127260688992565979492881860068268384197028366240144013612367343811592535769442455241284320785250730126595055435053422280405360073391757221658423829108156813761632144826810903903658417379813063659465366888126481790306000584446992808015570252841473411568707380364001287654077163693778119553304317015559303772964739763696846465152305646589111068086000912660466538206290799233529867035767811325455296652378304158314167383378204019030745989137413565597641384758857314454818729288972681218241310517443665533582837087667583356995050568233852396524566657781942686210712949762494339349279850789408469578160965311273808510189253262784322714679525088081133652978089850868492990124737507251416329156388185960627868420474984708028427055531059645883204748136797861653749136597549968174617410762661222272894328740554379749313524887708043807328662481598287657045513259972075851542502043393057121354148606316792726407193126615518616421369241274534050377004217559674895049014423762026058138086153454317990465253065092326485666684494330027314629973895425881792746789456893024716416615667668988932885470527944122316286139547795780251394677586222648384859836511850637720282434913961851389731419980272741187529544525709503582816267650813036046520013346480471916993425172500080300160934167446047711671595860119320890377076236682290115864238522053653043049572022553583545800919146968419020651400688911481673861576257480343803998013503807440949314933617876162838409224792154082611790089342495094808250218233347769038851112747521235115628481777882462472077518700903651848488708536860830334954485194859743338145424723742408669453898247457218739184412893208407526762352617304035054512296120381702015921655723655639003334994434442118997299151132086488770678138853508530412880648047807728972269718486639290698671525213748389422482443470189205558698675763851797769106100999218890469948249056950680366609642088534887161530141367890551883092400615885705100704620713130163573249740286135376201111932766123155193543583162719673023634925113387677167980217364260176260008951775446160755537267011847645837166663436260564376303500661466592073619044913624765025153489748842972671576371360897501313586016528389650175667757918149488038546638636102174858880589360437655564316769476132155197837638152318361438454553827852424582772973887474591444791202410385450529056219094862139049629763360235874614364818162216043598492359653094939118234680110179789625776469145620561758216715555200318000291410185384921971859415530876898810020650001962196250032658839545818081597531894777570013806661013329168791754752088682052544918348545117448683862917601272250070316292491180577144056497720472586725293948424000832530867935538232304160539778216966931543654360661888554850559930160339777617635870020022679570146583471517535328519269892948999626303253927613822012216701749969120392501493964409531188545900729794696641179268958585920095326755871362636808384239049024326578296192834096254161489925154645658427664277314510743845522515715836283967247635786058753873638503655905481991215027613641346573722603689169375918516414876729770533732444092656466853278834481737551539929340786775871685962063336689430139483318960617066849792273545037533734027137294657780296486771894518832885306479067867332487417181210142555689576592815752876099641648859517018417886132268258179582611605273940445989519496087052805244792023957702643422878697873119003341080109596175755164642915544491576718080809160185190879308638308230529509148418625789987040499377014007005865956192848306537672196847031637789074198040794171811580654966018685957580660545317885521475142128327336574194703004442782176762947011825660311834875714370392301172088517917038202429894402815684747641243899288728546238876853772074469746490973910230664400783691112834749637389544419462055097295732136622905501709865035627212940758781991300221044057848387272649171768740652427394546099900792606048009960754284924331061525886460602447472174145391063088279408337607034855787472075663872365552128975266644229207396527734421086928729770290865598080345314897738438263297504615586585324043310605871880467964686968357309752593021188325891710954301907121848130189638471531308712880592341980721521008663471258126202258130676318449001799968363958508449323844912446439302998163398729877842865814656607025806135004835121780444537491179317667116026018880028973790363654155084506853426015488060160346472536777642137300898632562369967500538100102439760827892410938862445357478300941745799156028317558451246047332109659857246010457133761143540711591438860180718508634582425768227612056888803696550605606480048423919063832942644142857682433486750746685428548056729404141263120074265504370285464054624261750710659276551049327305247499414421364202822497376752519487481994043690710203757535635501829067306261861836069675918659651394892968994934443567167722256847602739490631098341590748408905353460705504336864402165092555915050515328218614987588896285268891495350270617482086889883744880701847738429891411057326381174491476517077625714804903974654516840020624717270659862111235227875326149054926254739905700836726240875394231200195729419793067466837543842109621701172618324904639243332826840943629384031510045971139121054411218125442297593381911249569092988613747790814301980673856740153657003889992517919750084860493493103802529445937546509466456961354795675470038568345046944882792615356689329425041539650680982083187146962669447049306050932777081096707840665059831450223074636967094235795640562119166957073115274989049644654250759796938875228506898927513763585388686130269871071486510385394696347484276083529392108615203910761190321861796959290340505919492931992383853104990919294952398772742418083942705854515990283526474931233384139318902690567562505315893572437363447561475916031595675868209373677400441750445989450049112259069358166732619826294843451798003440740878774136306844093402708663012023458267475776131039909723913487534876032474557489094412336733202485871903781834076234470282551738145949290556694385944186239975384901750832767256495856252858415891080638059365673244909650835463154211985136222779548096305207361693441316252495806340024393960664722797552703785399438106739816566864270679701528687303819149777204493899545613912398467334936105377765298504388553599042097729462577641389567887794589929353367633411205994496444889536661410837507724475732546940044742639291243237060481003316691330700433808843605823193964098604824594948285567717148027207084755792446566572367779087646892397720323154174786675591273124131292524398481077389692868681860690580853603641149515769524068868360942856257157665577435193299632024311219336193618297975408241439217874406373645272398726882675658064461421667229133077193995112226739570417553266578137423513290821761909383331223285722927270002461301244760667248326961332689177224741072983097625795681172930952582567008704768891910765577382823861409319064947455080518973271804371645103709894517740031547714136526985346530720002996509258521555630643717050241148214785365860154212308981790943048452721433451703487765723673416352449419940115622687348744984767302394371740389970776960429135908195392221545145424358994046895912361511330162232209603260356694704729962492914076078620775674647436914199398357982754037423549597395219329881967368776121298717211611191648301273733039914482059660117460399272720920957296082075335973501770271292804932719453418786960863704813448721728988578925703620388743735447470720900723991264044560889279995719675850475635277517241582089118884341997303884691118391181171008218916179165572957313989405707252291574566371482414925823648540260792882308752824850839516989721182387157208352300806032000738712559139087366412867633403339681265502888158196898572353436001597965821123453251189506670221424728464766498635345933184161380296242443614322716447185277462434656867695122814845130967391882036477134636195257273701820931374122267219201847720255998608030798978283553837329113993660069092864480344602152702041262477974079523392374237580694264236370665194503318729374670887508127144663038222513221413616751948925624233582865940649495351561308678921955740535074218621454919150945177433408926584561854794655998302681994236435585751615860702868026987056787490319979505032942790790674808562828550607950335944202418632213807333113408042318730139132085570331131038171594925197987253548988076727362129043643744984612942369225569864322548493414119310260354390374970305037313147732499823241475449930063465807485569083385991712083443243370916333607928638291593251551919961120486658852449465595560232180160490718122047977154492965662806291320900677361950048595558727100375284432906582959910898386713672665044336857384438020097281158301703467674693649044995118242272149612272458732844356779173261640260233852625658292272491938755861994973604926965834916275884622746728705207060595940978608386664335824641541832938825102069962247572886856803345533311043939530315571300121365054605605167083748216875638371127282238695311563193109927073648625086903237166341360321078277289233014628396167442213267123911474195853672613742472761480910460143046391754089613242456996343554113201548988774102414621583719454353383412914247134884341673143264022532473781377017232017369941121611577548520014399286831834548416587842635097067686743941882985055858107296651365113274991532399745141734563611903147715277477261228955336295213313363796353574465850427527990115559973892087525718799608982793009872751774537325032880579381937800477202824569631301546512040368427622761746292152034177842137267811347738748170386129825104671804358870845407870702709378183977114013060077637797790141816434885412294855201047852975470467508960637912480224201752730037214229031107484796936168110643869366991607936763149115857479916153013159548919030344139616193904141145427281107997171725359126114696736431943171101153595533374069938623167275977521074498168711299819830592142420082375916942305868243955974290169428298229443135240608718643944903671999384366482299782540822334003169582984232679901439686962381114053023921376192756987547960266182297149890858663187656394361374566759594907929680548572315599028588724580009933500662960658773897726235204805626023434563596494028615158177459871852322139884795924168738383620392915339180838576910510635359405673115055798028098873393107763394425075640701412507188220251674226174722377219961564167170928386377457802564063101900282391688258995136128644438009374730455924073661945011779504999777994660069664764375311903573738573991909611874174414075980328428743699558138683429703581074259665462234555103437253354823072797359316208567774907503123652121247358221905024328417764766294637768216441295083605211666714922915442793582314860836670973950094961479389716743236838633116004622509682032993860643149361378329879221938832843201948257610604197730280553482593536839305242862735826026805025145611582333787145100211472803798359794665833396971174310825442293062355382771498422818967934812899097310278378061098504330458371721774164534594401216911588446453605871168874087885360906976340491780312534330169303961511665440165117915283189676135100075970763516311415828388916968557025708984449348286263756792100419372125522767011242019551957815454410685713945103772420253364659617560754250129973317630493591190966830341899223535425672040595334867213847253981768813204813134528072312371383692766537216203919454767309710303597019326253558419538500927448258295520185058301246218335672532618983297945632209969188938709316413284285800993850541498228502722031577759215258891001346870033936302396021100935953705139567528994173383843488875954511126705644819795885303100845151303396325926262217318179293999278051225251992089670462486983329101539528150354355366019416102218076918507246829010347831276558257242105339672324102278313685437663554982283919590247408824754116468351479824044127858605099838905790186496732748160116255568717444044159629168797004557446497800927843917795445973872608237091098286932060056685747847064313502009549567425094426009477170825570629803356658465407386165842357476901711468877241164592913526037108297560463605829559323475064847324673845821906399235332977517581268580526900167875009680181262760198889783773349720966261212666214816352124145718140703022447020774904702072391069334847178897787406343837139313832382464811205643958795277535261802937365300352367193849376590140182845778824516666590081048294669111794449195013511409314325605743311671360791919796965254899196275664007957991324039193686401903988266854307645279730914049115537160129568017654346826617448987173037447486410308270133791338366590937102255807660978360053609648558902322051104476489564828028793734708373398916641326255172548819534142970036369219506666170612595359346801859197586742689588553787644362165548770258429031441424948993085251544657877583212805360095039263864904216459785553503598061932409233900901672323703803572100903518923306591340536900132560258478495914815771185001812827333568730966226948217437436978503907552660589354964138187874134960719925968197537564809706753200194538489005575247983968529534857725067947448723388709242940967448211739698991583316876304305374740711953360883279454330927601358980631162592035779895298996837305223793932757333770715790252601773258138664509849253651577011878799049437940399571395065948253392562906949179070381323006453806180548864403235551462860647060487158336575096739377892457340941928271396378178385810336729796919911736297594480704102867471024153016310099745789298313727268919880053875593940334175012723919670011784913831669043683040568372997446965721197526546356001463561987149105787771160880826385970099471168747948135105724316216337466267414138765675208873007423778665547627824929467008350839287241446534550568537261791243978299416973217377014157603897528982033692572951078656290260759253615572131859656187997958760987498425288070785412424272877278809606966899734442658203914962794808419577361788468668509507958827444227375901980469078256186168817973768229599229126973973161543625449322137916068924980398044710495344070237596790547205298866886188294050763184924927420012735575552154644461072523407708430990367741662017504118028397703696694911331925069355779996654667324321578555283000127881906632916441664897860420980544799944194028825194184728983426906075278293556541323860331405343097475385251359957799383189644462518853349713328519189670190211636664849680437744273604556636726642173923601328439102657365856268311556659938449257666318381961731008500112631373737445856520682607657926406384728006873948112049047423037666222036626941492480861793859102997991277836095327662965782358849903376441429614662609782760721547244361284343280595623962120767828248008574682359013789832739944592049381582000390167804676106747464750535387522393390503913087495662253621457060143517871627398410955344638869467816797780464963491717967115186894915588738864812400843520102736747921847410515254933314921014939327451043905546443985858469794528498830123529072777993381114209326600797517692650841210582063254066591920568888182612078804621821858378758211142118241278595012728931797386538902743783728637928148584507682767783213577658570561649435180880429067905650613931082572855395307871090196715218422494794938189172720653779136457854929176527663771852820932049725014580870938495259058401275416962567728375978233194823462721035769512215561945745806354399942050820453533754579590503799761717096580236181308211803918582724513943925635248827001143611600863713662271332513747081085105216095284856067476585507186390614864523571227973029226404297762957442326158913075210580640815502131249593602460449886807436167720776418749889032502034687464137950787871089468022032904357984945537608846740658262477511730094182796538773321970270859512792432145797455177460185988226489210813416668726490700461444373972790279150525160570777014226211407977397884486560109968917517585685089583002768181888117915421921675907698586953304100811402653217389695569207897089550712797871285605984671448809716222074950722751085134856911772726941365310827015419934214570414128947676710520241833361482935090124604172764579312045022212375616217082251079663209388101161926553867856168217879087065192260678559145371423103326888796841025667715779114679008867051246670687129433970117465306571795934544101926336128998577383208872812317517394731323348208819512570102625089515473345226694648154264589233143739299122112793836773927014818686007973126804870400993263729176058048907261392473448252288078582822113264941235196765008888159337274552338118898970506075438239196190805764129034790175957293109013793287281461949393543997399748094458149127051031265029625686455989350365627398276033507003435536159036630628259839223213492658695233697500800037360019104825369005402094610147225695371798105828163453163529148769711691327737996795371826394705440210839504387399518757599255131635930843946985178053301153241082700571240903260761696646914312712236418733732559546000414142170784982646428401237375207568374126782336242976166784309592689914748663188662707999466825138831522003687546999435337664619593184362322338416589284749226438417522619901000157794948427891158424067347040257530995199572907851333384419075991685909993209177078717147441597197090521284060678620955936876184567951292275501575399303823577056419853579726611958609189782838070756502678014773708920591892685330316197533688418004589097194556162618740188478560655744815660193018836672171655959977339043923510037535548411604358245109629084812154212558307364131257964409435070709028922129628446179971276371064127244652965826291312938776776457755246653275004336823830765922240990786326847702740435840565922785433986606405863540841147396327260692646302383081575880968002586430717937909794143910922314038137189925355423076546537155278083571317380007944472605849610947340771426374271236748062738037665471643918116595947459073300018186320034805567627077045044383157641017375677647946174239065146237485436620071157957775080434764977039005400902162439366135623524554667914107274461398125399661510512119792159357300954293196095674761417853520429864560828435678095520801514999987339879783295017308785948656657541888243356306972932124598939814824211448782746859967921105241218371488937509759813940339125210923401103781180291851360433441767522205827812085754032857737814444196188375077728776071604821066995017263017826874812415469047943495881243302371522427185544378884264104155838934541361104750284206518814655370386483842963148871371610469413160998388641398796969523150258492347854217566484998387425214226576819565898121721483389013604936675380036551126732095094180907201592318709002103694026356945496799763231185735080573288810340038593477864457481731546406547332195517977185333288841414234356437963919017049740424413156927512764675717139714961817287401491099934384094050155468288587515407231039631683953851220436101410430983843376716328093158225194831632550980910106408119592207869710692353646697103984788849093026073411148288003120570484267826517989161397406465839557838622830732592663135975754305346797289587359304939564797770757111190012783793660340479147077902581708424258463779047274755304446216283570630380761497987750898061213574675216767200344541747839886773047688591166213306825731084430971889178130856950653963230453309593387879926457398484265554536465880990419311732714912782315198988217723929301478084035718013134223129520764892456951671095743191812069680967019370726979438477209313606524882439967918404581652932122763330868439053483951772696525554837170829252083076042292114881860101824191399873927218733583808132015100867369813958527480661469282288034922050641589731676557490020776897865320143886510217987218191096120518535582494682666932766539978057821726698678451616471668767909348068214862439850725368536179859840443310282485685629745089433576554461598423876808494769878357977703729794164023878428651473818295320366571168531652654134492489668600793413742667972145547049394210400193425688182610538339458547476782154180632107295950452551927550533021827146440641188930573150846348740706411343665717456237005154290175875484664776884255630954080947036035301573913627696068930423083609642307109338497807114231340441599788427439458083390299453490382262390611171683195273948033326907718832235438499827390833974679839241815769503039058779382046559935869177278615062933955377606316844268610795803249846753119292962979042950212759410117809167632602153975111359806414832397698839991334654791225059204076991297062884238187118959176899257922043710926679919722811314765276842436600997390164612505097800769776608624347801415025924356795645011754369849635152366155349114763886454553670389980131625131851657979675667646628220065019024513389803549790171256988903695185714352800031347073967055646382013108872950635433781645434880823553405088188531681322852571737660536862489185356252166664024697083818684740867674852092156332361951515058377831034653075157867532543051040819675531344161362704961626003373560821010586568326950349283130435722900804334280065448794056810090892994788837928102618040799898243045648024818377932428377429150449022835644078513400891708456777031482267715941793363337998031664459753946060589890883885231838720690057775805159433262003762565596420752027430015136528778317728416915523908990445154864997776627690020988657813632614790888765436005928784015183309972842696618892060950993756845775142055190890531818759355173566683807353051311636953164948911530047144805758971222721540609042927900452932139298495549498919336200818300459697767753567626406105696044253613765799585216989679571107010049158336230466720234443310201749582179024773897826065056044963944458742299599983254099241199110657341072051950479909500525501127367364690179064704503580451831346136122670075035016879071493804385855040852721224114890714876101460267306676969594326739686707515493082991038294535940208236238706402704398941612354477215247912547181262463059708460356436003010523494735171866826601398190352940095351410033734772827230843937490651631418900999966167657205549497841910912274536377288394624073527326803711621883138317015967513824779311699778193713780955063306681500633347231096499591391266603409600692141710983453897742631298622208892842440054696789463373696514249772688244158391872975993795726110371555368763286859150277128409079110212170992426937803773342309983427770338503529872247208212349582753131376679017917951510726926400521557299935947304866795959776850303446388822652547046397516373652673159620762523124735390458829670196084131495501901384019965016630346843745887207145347552184563809764630177044083930959629901598190214171954647427574564176354446886766168151340619641584919384485553373133138915299369720190022033700785554071207201186073186770246886931523753089407693347143889475119666263535059596000805591161658015598707066965917395217589420875316886342448598559900292823257587775896876425531425399166351515412743719031060447532454812269551052978536122065216799789209231635117381227565461918754849574560670681631473173506778975823345028952397146000577881087713848387831571653353401420833375905112225498683872586695679684098280533782469011233647338739100176546995541229395235284379044090236059689469145859076528053017583824102695314715462205872220165839294303107783032996676562978834107027470152871045104493778674516102864705276948620615810652187217858636378494523725176943398444907564760874238950078160876075318333902267617259550509536540545265720555306949059930503283325663718099994019230532214879056506322335400494435863590365821347059300083681028130991776200399851067553070018776848815287797711098366075872702161191826274843115658908386523051868570362041466659902668705649477106437564316298588567955780990892967072582626808622591135325158232653360525689902203338029776829162488406926977291246966552802808428163616206820653085274811101707622864646439771069393716494445782066839102240950395406925017451672741090972033900679805973600723014666594371130638093022887134930379341529796684597046229164972213939953534074630219718644248764534772395062492030334345211236276854867182289370015664189542513699402737308294697169153926269839606193650860588188034654847526349872886511086062752488185590262778537606868113608569524812226943508316435860316991910495473666891959345198526673486269730585218762921764678821043116103757866840118303623968612032896298086958115770876121587289851830890767439986666121065809703349967464683384091773838075319614130829553456548494355669871902390485355136905454515814441862215820171815662415907740760167616930571554413905009173140808159506437463359378998607631522197556773785593013985550857652161084875357913913623511469955180823615989507539681351280084388264239145112024906892935515084787632809182901007200596529124954459847669510545681199746653386146406102684307820114839085575613696464359746796979884162642031385097037726615068835905737917270322330970767414248010338185740241429273814743968104958923036400052710286254989897307243774625402949792956527552063104174564387478471025027728537592165526314573496866928537404007581023390319118792146766406931074313703561863668502055391264156799183445542352942137887803136020071179093926978105781908574140741830162134746387166134407670541456165155978405863912773970579840162597423043374289249971349694029257753628236756778886062410656872635865525299216620984277598336260878811884211877404329265676205205064857218842060734017105300281721856505830239470973040795949683894825242241074997770274327415284240260245936716728363908728458772050926906415932584135614980458489359104682718083382920118813264687504560179100216178768096193457900668220488937706057233594876800564162800108019284713916759999820031051430412450729625825213761810985989962172198967943872087546439938657345613709600499863110248308322951696275358223280773334383778608010952850089180752425354121163282065100065673146844918813399952865848205018992753467970318131807955442332323407266316996076235745915122619292117803112193092030533521309101948455166536381878408155953814669716044760746877230672217497580685581078895401271568307700056634027722064913008331255869592878729731976779056045470991789850161330571849609539312788871099514159515364707916368079738697409992152696392995153104354869882393356762590841648444935564724408041852564851920843674995279275642080231526801891777384424516713579858313147128388698784604142161314300342579266754912184610497253500178025183792348693398315979275965178137145805535587611427995771518256897053473074934532639657970353402274870937564478661116825402787537698633017652930482209641023960553231768656441682348204256114484267920429301329031021234888196279632247593653684045555625620195657968976357499232391389038399188421999336493226920693212922229306563712378714712525533501456262990610970604563794269599744741964612329408272514746182217551813940433473683915968496242987300564022247827883503609254219831287600907991421124761116156025995308678966646571050251674722716316032567680953441851589292738979803156089721635180138978130437571587098096977845964967723981599882302027570320195710867504710808513256984547913905918413848215658790492189260594905566346309164342274538880047920331071252134145751779535899049223042094167198666298145620304101088608696404759852261634740430205273330236201799377660765221672440741328161162035283472784224311403153443285058088918709742812477066024319460533117675861301947633080297106720401804317143988582459050709488352098842259477598969807085780168096554673188615345069583522334860734711037150832460870527604266953035405334635175948172851268042224776246250288586770639889087824545597079121701078252513602542889945572063542660939711570212038578565422648248045365757798326547804606752074898653319716650113184813373092262541977371536359601218867643422860180909634958653067705772638177946409468243232278122227462142004723728957570524726706369612154555266485366108601225200271493880900967764791558948695101169004961555908822396504269323629893427126244726496663418874114122749669060617996537332438089653696721106004939508265752081873584021883581186788797151000013093633677484403918103134591893394581642206565505066205112686734197223483706718618650905768529755013315723061857572121945980725335970700450733665701795012311606974151212830216111740326519517165919661792339295435053664894136368097135178199804320010893588329430052654845297621817328918885265077000415682796675196799374959844294447216938130436881544610342857211822826086924630088885885753732777294027850067260059068206572289711736126590172422521516926518822722100791022363835677142934082691966390726193778186312484800709669871986750595102063297474538460999227938034929243257479474913866378041216942982836065213924994136918308824151637080192049799878659071693691999385818466531825131286096507718982343189045165830685529599540621311206609879385045823510958469852239893129743186728660223971259485407714221131743403684920317348875624628557722901976461433450824925377533107563052094955475445867482536313054332625588583951350127717354654437931957302680421964899978749728935553047174130551457253540998185903636858937665405541387719753047591729292838090360358833881817877437208935463695219100802656393193931090033906139357282122277039364149966337842333501503637854536312676743354459547283758804884893040338579389202135604164519379457105683941845674788299195306383762001289741290415643667916068692877617677213062634137695257111311034085520421687028638027344504368437009041206160815954087024788902453575101547532248454013469579777812438771232427661535254493193704248140429897369925630656333904046089930644933301210095150041377074338091412415733959615179159362087344849674489512882127108734696543962653298917207580033651247836230002905461912854498334478766170500732309395684513497164844105405965966469111968877547567928461634738337681655038813823623274617086053237650589938605536939777004350028643464355384952192930741973212989760417787092890379257420524391608345944183266582383025717111402223186516096263935345109061206503108831853014334685817467600385743328730986203678761738540933229233556990497150224683938577630830242484583874687201812277401302068423285876897300283185090581171646689838520543754716862389195615179653334266020730935798525834110593804036484969562652179268494839287479116725282345868390462855824201232901156851847841661798014130958466072384638781123947089828201311298420949202251041823053905708472779431768448639116036956892036722835649528020481514179369691657811633189112441555043634554990175510760015362515839023035853778419471058899427306682766575316580725136011713492739591407298418048715576136717487234067273379413103194329126053902126422189229542440112199740820309548296683203614724619598396426760606485224276582722636903114362520162928173038603312313509762173305569022670018705058573308164370881256059405412609599327166073759472964285349867816582515739791718628200591174744435209317669681176411584142276529280496515479071211737716106197771752203607819459379844495082903313272068079806715599816218353226574984945538031486542538688437400229642128231154924531764428899781687071312284706330672332573274628112001071844645096857189683341541632161158397259865940673797094821690341829517422422106915089717627593398326740603785369663271853704318671138399816415426864815621345678139406769167671974923415979983651215375980549579996981023148933027468486900367777601812162199764294250669158871082279200318164109403801934782632944844589473920069278025645096303961451549606437567532142722177448261401210562749973144556155338622056071732595090852386448020760641510772664117176035432521878574916558067687083571122180428543968235533539852771071088437469392763110159292883298122112253585158187670065520674928714701299775894873581167230198787196712209863879192908504658897932923143246806498814697217704206705339013292174965071937179166713118780237423250161247938976143315588588345138314433477820284133729317704887858106859396881830328874047092715179694090630074727659390607784854942144943806070455195161463091887507999376860681523391284963427544828149088135817724717427425711187324448356178682641748925601724757139090973388850660621041268124386260560491452253697412182072964846713070055145919104335107827118301915446886520238634420268805039471505928433822731356674148995238964613477183344987397284415644909146399747459798637843135074415913220812506365623637739339666392745342518558881808547931442922680349583190039017364319194114223480662841204244108721466351039514792222298412847175024395144306867761082904834887886366814710310388775571075868894179287871691452038427471979997383034384852831933149455175794828131967033184535195672727001395963914053450246793422815770116301266308673050021125805066377155181316971559965340786344032259137291744798195139057648905509291739229243987497349149249223035646262113898682853583136037230821953776040718455742914060624510625400376398354778607261083750766161547331727058040099252937369234976516045884521919855081349646042362978954792460490020864625921953158817112727496704648020541504308122031926927890681791675229114646991871109303712055302029573616377875341214302585243836854875502492801847074868514356211567845869679632727778734403274477051162436523457990536405105640187808815280534497329252404040584244646865016793938291514614985607640076596288743041225729898142179852270633485209675138439869626565618511451172203369990849449923047213138195742708745512139051706350957045024266674251467741337074881260400459979266705347258312256372019586236913885796611256691567396217737130735141873776456542270701809271430817384287348797500102764056820204935283195673735564082802046500091747353656309675270351625042401574256921317943381043787051881420890107571532923740541617414369647966914611300776107590533895314212631737186086061013299627712006795398898792445282402175934172378092695976253422032023331287173512162025409481086386619281336020588516157007513488194590668397528456393176168669190075637775120073074368172147987565512272493790899501217278824045172973401554421395242212113598709159584315452056547016511987751547152279005737786997811066269470650156173061415553878705920444871223348234289340490859545291570909245482533654891194533267256519022013953389183744535271633059388110549929400209929361567451666635776388827317931787259506966693236837745360261210037759669351323005247085028284364134265511271302897363551208942643241651252952428479333918114113989375078394634059475161369328825468784040156065568490172705784319570011314654805477611663829209067857721548554203547330749045226983812406220876779274916267959503966596974107031904993855516355477939969802389545188057707094086478563023859378944965143933322477885601108101188016893363591577837616088575668502688590525548769065040142897789853675200951768282812149785593644166860254516529496109900439663762870342900670070786862670555792849017072447934333395291805568248597547883177930356370038381844863382241498959537410924108337946901293552089927311630392258860728174211146277624530597281023426271145887109453760744353963846656120024837162267090002831964431613182404776152976859069465944370650139755410755239317635466204689028080668393517548964307713603754438468061750433311220728757450078886545057369797611424312483273162157421251999582984089884149759413947512898848491021767827240306159829654791023727325531071684967965228469131399199224607095022813059103463994880054229370801788244102520281359857267809253655890456764083958120378702783174953858497443060471147517431735825846587519705906994437074885856547621571840206160569961557569480840275613418925774781964931198036102048510473464201571314217772412445793287920353039904973124632104351440756311243771401031731774980533452608968333110363001738000119978776134124252957553257584160840326349290822603816118460449024189796053103911608148485812954480036229765879179115681040898324671505198793153243745763640351554527965152827210101451184154602102193090950619778688875790216062346612843285535858624965687151960783777644559379375590137949846415559818125383599918974657229010953536512197865288705577795972420422636080432148635797797448305872606916227054043445329141308060714317735053682866757868438025749836167139901765028227581415483455608714286790298504807730645853876062175725598738388522518436316265847957555325385418579306182919655549740301631719072595436871177218264416240140711431100298530355060676993155372073028600844799396543384095573779432283541472944412668127642229445142479709284004842701876065980133480102992799343758171478030664843482017026855492049942510508709169067781046031649320939165644002955862939642771283124229521257812392162041402467358125275309204012493970721474701005201620622647320529318969732661249677629859127844501030848743823832931975630043181214357788712171561997357005110710555645917337570467424275116365600214909367221130731119466332499171097705549792376908167196667618720084670194347381582739165026218575476937530319766322535111922857342244265693102288155284161519176250700155050193858244211952926112780081133920922498338682013663930329495846452531885773420099491791218085741450213375247970268934152897437935471017877386143005788232930630955107212574185335420008251227559927558091211844160549739335954982046439130530232943380131273900799979284053774979278314639813119125212839842403494029019082235557299380678334637096350652994381533913667459880883221273494837149087523140912538395788278429370067120035501078982072925979404692093232435676114368001812352117964102039921540062672126584197294579751568689196344979615028392418493970729168606389453408182636885237721690942659988307507610269330429048377440960769291640189110153239579426059003572203065257309534093371027818629447380907041844184076202969804410718417826690968444276873981233157419430359454261206780760922924329951632647481957331163814711451005004934987353765769731749788009965676161400320291235784698775048686844166352620488241538218697944362210291585659069289378164408845103284364456049195112425234227280764179710102005537867070764282541687189405615378603886422104508618471544586860150428236824849950092585864150946863557586782655954689171680458071830130988832435735208659409915939243380351803792991056269968886886719358219750310994555729704756995635425067421748639883355725942698016833897714421756027240554927876201582615905692122428487906861233177583452039513812717851442121897090639116596657215145195561982838334413156719695535701027172113177698002769100227179547442883920317101197282926649060938269744664753761012861658121421346287240916830681309631775138435218894205640727276096283914933469320549831235027953500399841575341495316502337529696733107321200293661765858113145719113045916660866488786765299756787117115620955551632182255922499512232584845663492433793093371328234991014468804541187858192252375250091043724264319411129383140021640288006201844106750813770628924767639290349416393438455313648549241030769019929467784592952611863855295807900135645728518010463871094546595085930684169550308193762073561308389745862019985557917029605121370108940471950488324573585067440984925998049842541407376983345858886651534175841169443217504714010582594703441421789145236536428629547968652539253515402972550984835275640539793740912548393502059021529989506071676423526929647711932429570695999542091434059097108978550747255191634026485887518248365259580246995278447110126075245552076065702064006709370430764860419070963705613330075764447088140526148815071353518014077580374814761619607596480014917539953955666967913882305696250711712975937150550983384246317705082512459683372665632565029362368567605787194360249261691278884927246124156875383865248019061814641186343181966844336580624903225960264225716164240260317300647214655646743093338813733660087315553992849811611535453720336535682037558560036994426785207823452859046722457314446144962380147119851312800109667649829073635265940150348901529611804877572123176184835388087265295863977738892573855783717855550812969412615178908694119082395707376140086375550101518020339107952518596532189238440718955237279113347336383511344650279939177896844307727929874255347660030099507336921126267676020729890648605775794067855849650829904464070186092834190853008977674719335058668175760451487280991671081941979354743486040643806562629893091123433671429521625132065589465236099660719912827583579377357382284385198660456219322891792939114370929887228046011488188633423777988173998074345015748123933447065232104016156343850871861425465099549393545466746761298757130177394007361344414525651633632584297294276529281594429603395256026186503981985390049669568426996375046495949562035131431150330702804796464829424694331114882851479600714531717361445909273634812149483284600198217542805011891102150981873662924228229403835444786041490749992901957419639375669778482070003093487349318529954510611811349428556460667465251610917553429291079966282334345235171870910876407819439858056582275742665281332285760058038223013365099233650604275979567295087970900145383469771556365316042967022302197524685725793241817140583732558070165250584796152983172308599405003452550890388086679072619704441001255753504328123136326893786125591210619248231783032974242803821135897086269734810863593728952659168358790986120556258611561922177718589764892338047191748236525435800597234308532771335784578697118432461851295721850851836122433440477504404331134200982258663436531226540016570005913435676116370665774599886970139413414058437831734156616238892811563669268834211418760208435222665295524675242107366855344914919432247541530452932130165448740765443534164177805229610414133715654153916185966084890466816019916698515108515846524250609881783513277670955194922728889610435582720804006809980140654146168084420003309388064487419389820049162676457083790663120833522596862685665482697386295088641656706245227745486527864918594561619156094346525747222338718733708246728013193879219312985834125617114398953847212478854905774484324659322609651900234551850219873649795794221366984432612994133452901780360643731313318473092281110974392506500748509749506337927164135538998420742597348715728216200711988629951212933492503461050590069135989404033035408088364100266561438431905915500356862015018839061162671103003096981340706803984573660084393163799243771906312299748732626170508232193618490097810170580322025106667743677796977128129217929300104279955281654087354808449941004704251225650476452251593187291969204537665773186437040227052046990619799743740140069495974675247842165256436316494830518693879689436919146864189261592968915961767344961577659450865930071788705684729416105131994328804743768404701490389416515671722107801943535566885238189503618798534117628443891515562466195419099804637888188485349435018771163476866277761886871768484188926036781236721072888216725865154423185531379176616155078287664563452655874357180738684077853195358334549014893460360585248438047675040125175477371955592581234448900654413401262640032260117790120162964163109610804878304251957346367830684641268306574370359174049022239892915981158736305868982390406611368265984222070189012669660197444812514120025624590316642955067022156198952200378444323706065279440859115788402912264813062102258186199607281800806532503199885692194744285472524407768668712169551928028689492979875833780364258206703041762283205811436304416294293812306170367071726564195428979163325313546185931601000065179965919529627053978539561186656954991298016610697349265824051463808616607208968842990393288159030265200373484579329923003584792768196511682449766341051309075369432146219089206010547186997261099516892234070271853978198046138014748904396012227887013101559729366448492809157529467268616524968614782834569323782393464584395614519529540665441334017597873334779481639535117040911367687159377717730278148689228199502262613458006910676014854344695213194004745047237694814141427938226525299416437656307465256778752914938006691016600865081368392427319429095236008673348847446046172305152587158956732846210664135935117597327622196784513326243447565741842660605871361225170926329900468405733238054176557085505632686484736539945096593742380743320489734755657573893367670389593187788423716433846072857260148831093645459942267407879544625963667420867962832510898740608545576945159781582669010837048575033634967214405532857034517212726610749476496061298248652866455873355329128542447078576947061264408224388712314784145752287532188660005268310909076044558998562644181520674181015922987202094282978287871468510822981304026080119168730783638356733073634739740441303161686246237791574046609915271731137491114373390841389317301922136624802762752858337205317039669208771679279342562991043566247103825683833213089069432466490470465586619606082397520329605736851422319387023384741225802596254264207890969483831634280771295794319407273807969684936828602791442688004960536073237348509151058571038809624780145315204429800107356141077964474446940374654308131844351291322023281815836926309336305279036990462493132795083312002665779170065476904886152366182956011267728409769019890567589356025826892806262241338034353817598939362397022590023864335674657903337706418358564633102782250992225551225568614257400365995105245110078805192641733803484189052932264706785291453844273740462766044774554363361836499525507267618423990704197068138234007769675487828762244258651730790277740642783625637089423790361605855098134361290082899369314128537219818091946667389842436186999791061702551765201629098908311270856763158783011446852528679815507730574765001793304918308663910887764552988658412051820459165436213212471359996800525711936588358053994589830737377859169645282939959309038107116813032740711166111338333955601541865099781485825109808941898025737500203475611190526094564645972848072748970888119094495540262492796307766425631840380777312761832945160703843788085112467944877243113356439789867994798092093250625852715337744993266107219711883300117349813964776739266817208424079909529721233500236215881054561918917132678070381773231588576586233305920001053040344555986109169743777228903600411981000317852557996230950339940014129194448757130756798132385933456255149510128877574064279554824475916738691024003995116481690479484698442206004870444741345282669953774147488497917507898572446062253327969594352292898359968263733839300672087583816446806811871728601048459915401498752353683606893474847505310481669999657266063344417743526928325818949253788929483768529837593345469813949817853559695582467818615041887850417179499702526279896970307115490717718956681615127269068031219615770290993590913758586181414979914739821002902219186417958711265807695936915707335475329991948846997173106656663060139536712847061605326846435269465115680582155515906993019176444807777486010628115668277325616950207558533729382297943357799592024747170381816398060256980555047973052837418939455997130833262959719335502972710288387444522786903816869397300689710563528988404049795591876418186314655036444376543674973746899875680724214776462911491412876251529150944868806293693954674681603352966129234122807006918579918252463282141213276774022135240353063496219394745920103430082864244153868633934132891986142309068883520503747660517098924700190960187546179955422015909491049754820830654005027069325834285786141168353454811335647695910981501871262697267526003335864040092956740606964776205869827705225813334338036038192165191768892821218570873074588887760607832982266374262048432654471362736995437827238299229510851919533173757464319508748798578711757112832614173028158467665470567509831232375377672560281150932798667943043652696411080723370706933658909009930659690223590855940167038816691874266203654181520199664950191870805687906171042412963654612716615474578777700752119204562537496178197393623301547695809521836195148853508694327509998502242590492542665896316750612981779817109108805149399220943880327768942261895505486915676297626754740368607516399889837076037273953434636543365017167074916228112901942918969861553296170341999640962258868669721540571857001600430207474592062477934977645504425035758492192435480650604274885601522263793914391200069580455027690256008328894108047531679194703900553830399310429150733301646061297888768441530776270378594441911732634060202489920781523006411311490122856212090581981650462512763766093500264200940390029265980846281110467450202664274731043908415208686300118575868239083053771949602395271016132576690616683455083405561611394936702898251473458723469321584616887148932721645267384401406728739548953835828818497330137094973908138539468660705241371324470035936343473142465826100344846270637206437047645792822605563943022475672637626065329447835598113455918660651440460023637929424894923992190983866078810922450429211568815076969341992289738091868492525013126406937113224081633656341313905892576454000064921635927456695196747576039483277639052420918207293284651439333431229572348205925542453074526885025573244253412300830317328296208929228471125991653984488436463460929027436168748432032125797256285483925173529934984338559976958547408545929819874904985672901295507985567780766845148703193981984704881529278800485816521365457664188656342314014774780841763985644462794193082148403360164079962483204483778485492925174006362523523049692237135379930625663090364339459624612771604518657076168702968728181675576152792617802446805539460375984716168629520338574471079741243614575565276901253199298961900501989776341791155546166468358774064505787699091569761421331841087922101310502727382288287951363862771630780862595890747238798088666600583748803211598823105002854425389255034951712408053448727849519346359447757796588501314645277317005631521728848209971092085185890023024563339019787613891462143121392397384414929282588415689594037693537753646636203472856534798008454384008035486408377375951163372689983959312493980309851373277505396417287300620776496698097361728158884192052229947337022302300646273603184343934851331928808706983215723310165817666580361552415009073719148094546272657735264096185673886900239551396193838552280290259548143969960718115325771838131964471556358882954434994401811072977626308597299494584996581548917262040999531436342404694079146995745895973182944524791988236488450494902074646860526053219366323314075366073631792331702061655986047690840646072419051935024351158771975256419390032440615464857974592802715234946847729975262844767070039294539756373338666323519138178980735605380146733100737863093818503303778020513173537020711947971957530403126271265004426706455654153376409655856847545224098058833889413432801854032089979936229205932863025484451658896624501128050768179223674989613503112980071792200370380134106160039083705972442224368958322159884771444175437616447709997718103397555478505422659253752080340348418685825848473939209649362756035112868292945448676034160545853235927777207706980427407225802414554898363251507654665488361938430040437625893309822564708075938887625112847488074823087094703061939587406184725162522013492858549705782534747644298622815217253612004535583206123696905446746579274470904489877617206114777865866330960082182989625120436878684373041794605603889115337587922514335996411702068134600591344073823836061122619228679172967918178399696071868611331340256391483170732515268850425369825291517331360359430543274775618955155638734933363528134227928357428262586595554827525880290277769850207121398229024563391894137801005787214151354069418376396523843814606999927278161999248621682945993293182053801617392453200118909178033941428810575671150909760516652027785845650004363791144177687912015198917966310492884296483944553590633469985792505851070195128434304986936439688738102034935789728394267932232307407116474468333537237839184819499593124644011012397935925795537253850070300030137312219182575841887501659046157549081841506944835870721495097481254170487618579195237505480076416265519090935267294175055723305826659568839563658015995813151280073987148579458618837559018346040771655462625714218744033522754040854096961240432449551167432510796959897367798362368044004988790039158506441486924654467102692946870018669138257261196008870144886207140483759044076909392625236416345751399554862345257063938807280371690811358189201699860027244270115231554086463740341149138183031970248418264835218323634888172725653769523040691221529936934903359810866410791148563213560376445054162653805755190059460591194294329474854240803595361842010196588849277598283898925670198970222220994588016508887234138796063942815941035796827467450910814008211003263446530045318991687872310542839753678104505689240683153157186944990557469349829108085245306721147645540831639017834187067808625884138235701466065727252489158254890751757390124363521031122364025972888472759308580035107808871822908314407248306563637627924540171364473251628010497263100880715013955162372759487228117970808570428370761341833288114718909865964052685511193325228310646987243396289632639946176170250702075611271585419070946542637484687745818368309307949034609770469467863107036061299733553026393324745354217550013917683828498269335321117288417449209417021827043459151869659834681048408724013608596330110582169453007564265272149268010156375460134916128075235285558711684233693451059908867021249618240188231759968465708405359462324884110144422740649648958568752026657347523904496972293188319519675504012750220785790223101723417133849784194052679724582507103961611242903666841284528138674585946586515113448866015424745014482084111117263677373533590440928944526748715715851744113777762731843712179389355228712265095664868073637052142633272556698843278577430357284419097946101934965036884652387673214608291245422535817495633967746640234111249709268920767751520005455254831716235591910935523250595168702430150093735161406564562813054632933561846677484585978362497696763796371108214651110984594706576624500025508134777786913765517830038762204339068823717974255444887301749734677969962173468483756521953176110031363704770968338023515992593401533610118553743314760546864688475117963665205100754342031166633460700665036423509739891955370391922798998703324224717844381436331206350975485799344679027545511324690190191152558607497655699001275775446335021798729382302005119971316856664913148177905395735907051865325221182360897723329247744078285716030172987528962330524612014829585927991336051547946383454568667339880498652787849228577606665141502225898754451256480700799725691794615101194744197676451866836777964754480669475531306901370465235264924237510464547839449962872897904637936981610899201663010169981163724916664620562435048154744134894846180631037539360362648276502650986035536796226530296394754937867015793557082719767707610800681524201731006426646342568372246820761195106013668384642515833308879312420229717412856630864102596620919812886616403023809207881894027602208344782818118713392422902429560050743264584324859339498573997386920752195567056510670890890716182359662736890980759101300559950026284128286868855380313859751315246613450735543941354569304997034118008327662691549931181829685069171963261042910786839162203036023385330166713065530720976178579201040067404231676359837703573736760469257548523891298038182809493549285363935221145230152295393342716998167270431282393164869559654367072505084317966199551974109535242824485651521371303466552619060021822366940394598935234391659005976669324773252704035058700945770415399580952379884860511688953019748074134659666772843755436016658067888356768165303199016388293131318276626730897978195104173521351918239059252876559244817543428004002332942246943210958879371887609207787252473775909115576089013702477937256074420115055392731758094361094182909536300345765502954016805847322897243890370266618276106413640922900126936215919878731528629862770485770577201830590232485546082800598377191088773966373929595721452066226244442007278949196916347748219803785724179203063011796814247481634191913177095931023107076996582617596685840256026937037537760314354245579525011025122770813276325864698610677656116169533844805644109536358054674597279196638790022005269943659294331325380025781523954710320001538833445415611660742867771199613339342783502183326981459402587899552004536127927556629170229513559717605734079917212768837422023846257707881720119819373066370676349436194338143209916682842637026011017389561199713651831063986909766285639527648156990043558651333402790792044979443393370492742109444416711249148664242277204422629895711759655523274273339792768007096657036101244068577259499334793140727760414705966461872609251241770248357532959951684181128982111286196594916485838352727218480336953409607416047213925276496740547571417816730135979168318328958087110731727605757026634260276297978608813580545242685164780859709548822678140951767106236511318039880515562083680090320315609327585569672875697249010652976796389557852975159488982457638705161386316468339910677350331440511237439659064547976051072847489038871073478727877434118157801014476959983099338978334493983551179609671712796000098607352600766748320363031051358658335940910346525245247984573490809895562881904314415516079321544190583582368413058419700685050936864170997752162054553665970024613127062388057950346023904393031147919106840793208823827800330155367843328421552484748662858749250059583966935274189761614973134119463801859032157069405769706219523059920322296718871806930800828674460239772545179582205037585886773156314162978165434729415359149996721531565470366217226060545330806330905083613042064123924549676756181261821697550702261958022729776060013999163533207020215878024732932648285142200813966029984026759530975866803926586297977288089596825527810266429306864765285000305060584131585514583525694879817373694711497451900349888543381536598638878097615574181360909412209811336925532477129837212842999882834528767435538692309918070548818010373291918352145879483929107598618675097739586009837443928495176100207600080619343341719271202014428051107828464859084125319295065808972081860539630176603213735187920280425177135910973938953299711090399074221538567325193685845156959139464156298642744804830430961515664591096000582710297134592171718229711388941920791735957274690854346190122708884966946881698079361098332020996015708365863882477588425276095316086932131435591865714141105609402694278177965480851050089084907786141420222158057380482075988809515008433775786285949451765720689306523792585608245592293049493061920209674631466477913993589186316200899582267235708213078598176761800575679131922494117775976838950778537518814667900447438400044530422201607549304163694193468119673610393577734609727557274641973164052307023046093970234129875225087582435092422097554460586374378467318408218013441954217608132545060153209047983081793125543991481708743668288598449097842173941315124347150362335638639014050470669737984252442967742493330184536877238994401175621135843120121815359913966617958059832000188752883908311535288406542058684359550576854186822171935109571837482209772651560855127791255762910928788332614084605558807067666945278786355890496493766543936618632075617937786644030926772529707050354177250074404990181344700995464314806870510775907696765916550501437512525843282633901275381018195207116265485939622674650218620280554898604824626001128862626963029765961506364907962181263647282132117588921216115239354593640739146950952731518368761362012924599524876701937274010403370340662956935772699714409007021563553031601986226579528110987970074086259518455856978159693384928480701004625669323018740757411069235922627274986414010819041519981751097010360834377845089115217176932978629938785286643414880601618354042800758843001668667863506229175559371405194536181643590683172940272210894673147752092954748474001311321031697333620135946373139314795252669674561654963908931523851219472885065520317321920155897482255582860545867698760168120531175438750471306325816713308174143827227542229002421019721407532305771107473332999146452811669705610093682598209198260688359030138587525520545024800435230079610342277167636421149383651820508131852418070340971776516092741493480468183043593536124325905683538270849221835303786198844703670261109798687562483660322416358116617066887621924968245847595434191328039260957977702132790755219237714886548974580052221705455714644680603275084427280613320683703089495211527673257561367345147367218493833388776068723116037947639855173592431432107949652124252850500081655250511965720469330263807662626299291764959793465155135978285561078952135001070281083758094026474902366451813775727198883499073719941631602095804289992380191862949765021478955533095078001948355950906523050464140014734744216347684920157274639300078793830919536242516766681389772500134299321913650980132374205475284425922956553410970043172935243530403443522256676883314559555566211297928358119596841570604087403228035956063329946904301092825279435417998964788958427556453107218814132979125092523321690379913266460861049862872604765948295161093421378625279464172326763864876433652640148177867040473010370021764915982117117307291318293832841683729464877985115401712673670176152893250989830565763428398086436975253536111649755108640833430801029493909437266367034698037560199862923115659664714775335079817461620628951009972912001682813540224233279407517887618300777390426033656536859191997235262364594885908142119830513993982092540250659043646510661698309964487936011046289990632887933389356742046316969983030524472767355299177337525685672805348119758007984820850581946381264696744132431682561860064842358587317807102071530432206892151362355338311235935524614115194458786376013818706734546078199119135735204294130155532985991021168713647811631216738172548548339001251655862701258480324368999358854499206244008314458289182059170125177865294978497676212131430965655204998270063835026991131597070975337201430429268832364499318375512854518978411767090537419313241841608541569540672633027313404718765963017435408586154855748241351457042089982359286658489769244598409108779453680762977534864111963748737152914793895432718785684828897710387515005592636168793134356633991471668652192357480824604527391059327270745999594959239575454460283354725724584684784845943811242572521955022115321485473270194528375357998729677660820033723953683072547268997380948717791266725087979445338465648607647390189364136924198158973317710989469373039484695925700852212088726608113967635607641341828430724867338125469566302054437545962545888304250419434004200047410143833939394916929763412176817461891099541925219611541968230300631164291772387914993976873200911100758457787021055226153782862270528547306496201883634062574356063980365923431157477550528651716642986057616006551429942434863675401913277416899313731317374524865777968767774348430187775254583506106965259750366123523738284739409413660836572245702258694514311309402526611732162592752740008185867227795653962589453467607026615939329108624283144030350481053515816632937683705241444510319686893250724929936832503834198375830397276075063133223075647786448141913323463314347286681948445604113372596723058973482040322968603084371743617175798974551689601237803606426445003897920188874503130737369553521165774088568516081822791238197179365357186152010280675522981458783869928009925724603555989539774757153334268544998197632919053022503957588772353570872173735152709128670555250110908531057132854535212348198209499745161370194692307225056147235769949096178981026975446129836331405900820551768592445882315853682742244900072032606950742473826179233279501759313958332548698252616376616486812438657027718875909773837523762506960071253154063312359159481631794606511493352643432070322635880703348842431512689927161391835175839032096047183613725859821504343135326380946561324988835843507770213873040621511257422691247528816657344319555107825971064665354380310961008225669907703473563818811841098962112569679059875523050473763421452911688781802380410106029799662422884238185472410228459413677349229971877433263364609860358835238764883457698561051582558533175003585698482754941490493432796421991476502595171169291170602203631371747931140457014553753148139973834721373966647200833325743198294467641732009225764408889129753715066870660373910757876390058853977711807063628151142265144852371895464305427200441498434151483876877066965317606622222479114495651937541485437468189604309064904210764627945337719178655742740083802705827794642753124207524883842057516865687533969983476779865895291984707019275302273732137670397090314514534471534144776251825218399018098917478797914922735451328684824973833783888734850068485369995701798593113796628290679456082249348852477477621061097486035929293844668230707837565736770836695569288229319172385101964956388575552568590303822309627919134439584131968104330384355789559783159267308028353940597331788737928526828308979481938455382667365938341911843135653990110530744916178190134352613048561487477400009009583126319090288045242409730912690284405295759253658139003568195318381544890447088547547269265684754848743756717311646350679051959307968070842341832938062525802546787411540288884126327446734287686968071324344442934732164195628763683619915946313391361233483139677060462262452151426806072805824447129700850251757862521935104900794220776567263531785594611912926109733766955108923447748350025669730737339130820080889494635391888670027775985131962211067336985968665584201488075192569560977322970050183758718687424699120394895852764441010103258204641934807938827356056482673997862569935725467439490210232441268970858131140518701404318323667447147872832674909083943268574756485946931322934118258557129790396341543463390221337444568652206689134368911522432136139208394227214901202674643038871564574028115255949854470466886299681649346019437296265309249829673182558724901281829186517414675935719677117158935312414380440438720148822022224414083314607191411060114550683072893388349569509733478283212243849749490578180537230891630676147181927908705408514869674242847749679514958096772175421211394475868606271407742479545721888510070818235223669730131042135575042182237859134383073207814521248374087038144996574597604418327649738236614397971988726736283732682606180917424983323903678775239091360508377440608993488708001637045242387118941321047334583029234197153112686074563185033059333288653749869560159822288359909239185419000490506715713201717720086700197722696404925774740271641504844663470063713191113802981429823301294897647717399067616419369561198182841842328644930257416813912200354933949086006218177861997934141423860116374275531794251592309788789406781145420187777417493638743150877653004483946786717576504766092195569324098422978661601524219105122288839476055936990301436956954709870906328891178993340517803224533972709904152378399891439651045838693896188342634201536910946500249120549216905140362436701658706035369914802509094055222621350772056806888306084456576794682278863978389698706759781560439556577644565803752954817143427419106207985994027513548020641930259243094890703095295334358974891211870337162836924007009834615252988300553918790087399030498261121572206549781303534602884035399675042829025047797703319901076557059294126169219948837323032164431927178621839442030143401615788105852473957722269569471521459213960073242224853127551687308910951192264705573325711125078532002091059523025367578431657165780415168021800671437757949016086539430707019542337117852755658744004779547367576109593154228551536091831570807808888749006289989487749486194214360152304880734224720920320837547922816110847787516698390384868788705883789906580586555644037747966996855436992197740996879719905548659178280274113174232158892489814683033489007935921463809537986823545694516794470158514017921599560314709447188462571360421771362036408421704310294196774466751974620608324832048506432664488123712870747345345591430506342344435703725844870673897450103290549125515017145185061909811468853192967104590901916092327041814183276231877723322632051256355517391743396315715982268343245246074245866207305813566348235907400207352919239175567124724741248065595531071965358362725316917509275358517633705808003232904064124506026271008555303148167381037833295764596586164970943327810814625047969495862106284006662483858872797193829905200634278508783599898226248698405755075627465772015546386706260405070454744827329277373444652714030350182966061178118520289385827702397447046491141767067002586212162687465002825544164385866957141026934334369237956954299637190515748519388826042364277658017972136715126179140217840579310526536039188829094410180456093393770082972114004760122838232523768391027452443408856993119854498352881399852528688480536026115189678709008322476289467374795751012470162587920960152555128225643197285150058518940827386926237087288059207528585212066533769777484177056009033260482532854456642556701690379176574502520995164663974881690154921179047070367499735286962295588011117125972632425177828590942281310194447092726765272639299315054465480161956151073412162578083743815089087932359458022200628025082447886717450111512385213154014830259017793717540602564540064362285880018225524117783347347265742061794472441517452190671669240661415205892033694989878023287047723131962302883555579537213314538274684345218280148383936044152170535784448887605006091344658338709357302727846667952967674956122558450283049333626725687110933901396222050141535176538946141813939161533610007566174268540781811347502168344173464239444411616931682136423250002838268835558786135840604379536004808845483894777001820924089983699704101151007053934579191714267179730912438682183873679688644350675606157396616080131905394033686098313297085011597311092282029632580166682077365601427561709976108846323472402983624731927363362259982578792018689598143011022054570311671804080964109893184800298543734378648836641261561370293974884856868859887925566075242178650514638727001329090995815722909034220225109351751859625189289579384832819557792977742611053025665973891540160777468705025266815505604921419132148118646960513763678808068791991950120503219315296893017818262581805274271496859104602339549515871230868113053198542009093393656128105190499148504619715702720412700031143219146656395333287284829671888732379220245097686683869856388652279837416608369822376660350005694623367386741407232882042745920708915987152568168145993478800531307421474926741668025356119306549655407191080453918841453809148386112665443230819518457001837824448813266492874245465934688511105792210726898429195757552551730350107535165894743453264816163951180305250392769357613000940057504864632687606262594869056509844177533634081869798731497298381500686394361793534481289908849499647170881325673968904693526259631895796355214416233850685827310199475457980318072977062435818650534349910719185207756087854509238334001593359858999816008263700346117345172865534935107932528533757827819797287280577362478244546604348378669215409735348098007308716069896454876137503238328869465423352451004624474936063015248443564781071403805811672605617584721040078697226689904046438376008424544198082554239820129101012450224286615556838440560446536984856201082397457735362019998377810503877722800918923238360932932857752393473192165284544654588716404187577734276301559141618027111572870880737707640449120750658111641507851213754743277005942262639955634418564337217653699597683434623048474847936732443864767039815849885655612373013767717431555333138317335454854357218211205934585972829674904320840810103292202212014790239184219432953852479357733474750290664757390156972433417909858323950162928654223230238440543105461842004491794842751837249865403181640124910094116867599222632079016422122670058521356068249191255260931567349380786130133787472068356317452601792156484441100007537822629927313523935150399110601790838420795030818796454078335444733318260211661014342662954767839551637914721647791357362519199253105530120942468641296926682193166110553391080149712930792458262266263062863288304269584051912778514182973077809343287276603440628169711520590906684001688139715402336493770743119487052468498995504123943859846911674930933075457028809386846673434416769225779703135180329970905334571966899842225205076849697474575823392145781081386102302859758427202930323060784047783908205229650516228776910057329594305251814108756376882505115710795038285921382489966670970869773063048576876013624543184857403600409644120098288124826708740963573542791372693678720998486726477380639685390305346401641020675042714053946808087394901404562304291778302204876455953548005397786239508710400037557510067535007876819431829381986244497912770495159386230738144899666276045416489039615434878606229733016958846025088886189648652070780133759550778992771720963878672139293812847692510604532853452121440731313287868193973945563994577387245822874324667751014645072294896798080569688865011320510135700879435334248931447207813921392090304783151713818366831317495219636819633686119975069155145533927082609414871696824777663767866334955817402930273677851817286649905169434596913961645010281402162444341993332961341627989187013126822724092424711226094333739481989878177880588603536538212512307786845233575464638189683323483811033969310730646918767977878555370524577104679454285956676373438644160748590319160131920620861511841835478863444280498509761797820217793527556555144694979710244502617507792021767043748883785211642624063026185770925930043205843403038797665024930287741881598437640879005532386103302262919853684655439396941680012391140369151180765130096610263035919054242105504929790813384352593129383641495823926675750677887080664232482242352800417882512234842454476395967606639066374303529919809734292383548476692096834674279487384841619994744801771742724601874431688738407442041021236788330398560780511392756837720630797515943264019226111252370818680407670947510261830958445513986626039103829211771503123574441134308060839532845733050419373437229443086779544274237867218023303473275355970560523257514323673547753671427753392155217841555664341106234300786709062517241609856439602460512054802270317817065874238774968264006321921587142286022069715598369198565390635631432213499000536780908033599724239768325737391594119344430920198672038434786084006059000938370463411255984784362774875437044786409730625446361228233445070036493167064044739681307002565484452056631707466023742928363812635324122929737901917389759687298877112483354850275229660897937007172402796987668639538154113435409289155198467758247594431847913331252656334702197662437305820650954142043504374868762874972513116321247696894628296357039199663041603487788435363209355499866725792000542166290822112916171509375563700237131513730207649993470971123314839192181655289706408465116993723722127151386585316468746635861630406829429751537356636967346557300599789604346954667945235481384503506451126249489090647882893405003379401919513334413158988577221487381757089794455788601654599528691036518868281317367061144904500453669296501588727266301800640563924925777777446773799870588056187185753698920932006069721251722480852142128902523618843552064036736611770456946620844229732668584617304263828579712167257976060552867846524954056255137252840364844395050730349379849896685525097566365131710700784193828662737331524188972973625006671615082220581428454045725765429353394581173715958458479794453838226424899948172154926687696109233521750397369897399295764579606322132488132658594946963627614131108073204308360921703473134086268382436238666055419382048589758737967691885473298765947829273547829739865979774662136450169539586580088073791233025803268928165974217486234947750065268259308499566090703384105608752914230529292686498344082836010178683532260583267762933509976020590996253902865997186364582963420126200591038751863009858743589333883150675865958516645762282973488790720671713745804530305556001128336130642506042147012420276562767263456927351053305497567891015274895042758516468501732244585022759824563403995736262300816217468109805443627129651466824237187248063478576888372112228592939949249287608835598460057864488621917092716452302476541231839905861675738626716504890619122976638842638044546868570106355483852388190033072832660198844650194049692689315221295341666219376329885775751410818140417693170399054952496802284631928018567084965585077203508866484986846279391175799273159976833579982484207357112531336390644503096003975536605797657915375801460802090663135944321125550947604323179820340060443186716725753325893045461882435773893398499442981788285981295955950798833753000639645460655309075504173407771746165465195429483856828651415226297226260876657920869438050601749653725604328257687195531540965543817223274721453475546589122391070603817682520658266164641834066856635195853499609889834320773109306905384123319902764726560443952346857850310935564902243314115090000325312097409686032687127301830850838276373007381853050655046725565921230575805373647501479830734920678667319650296367473504041398564387583324342033511116130095780399755315644921901067319975685694024937439790741103003253646682058875769412026975685465176860568002686700841471759993331531076071896671758189417100227043016214478383518711925287846266326538323642208046494264611350850253427106410290464783670985787556917315691677300255161788666304395432326935270796599455424599471884622677473119097934712214737874816801516381799596035900568753492785007977522332406293190498003968448343689803083672966304521549066389767665449845363432947098056781299604459259971544077426099524198616000879355441625522517108356047497386451332972420143423934928585950148360789996557074159768503471127712053777441451223984786550038315804745802721719916601975091699261407814852542097185732919576494981918519072763620456900052262350770644408064420985869523142448390148785345253960886612414984628753142352207919382403786054453419995239075033334173977515348199209314132370646954017203330415013187197766615490262626925018381889954401123666052338006791759552104487745870035170056963681867396326401048269966748554244362243882516511164052114463780944405405700061938864677326720057911786411592070487254139148718805558888070787483013708624665567625311608129397798434616170768239631959636383307952145050028995289519121512253146445090262691620845923286525518459372187322970182219436544504867472598254397648830433234861914974814504172021253538805318726247918903084581474037431688447378228413989413145953034245543495134656524250516113915096496592745832807682211756868233101244885519822531493554895634923108251406737201887237734960572381668692434889929766079592871520453832802495313103562988234532636357779917115244350026707851952282839237364983060213581822328474620687320895130380289684782566001966697346645374224581863456748206417992889013376076411676582426833423219997009742954186009726316130948597653176173759951496533705514877313842902646917489222381050898764487516772402735557084565390242401439250917686279763609822358037390751790275476948201480870921316774799624016834122733011224413549046758813957448832959473285966537924365284877899665645305370890466630224358643746220607176817585572148486879525919447232590378897201434661556458792178919879994004063151020380325660510909568718515200993284392027006674236674423490788539358458891850980762160028634545554937908790443229800904423977354061017683449707855826839818255535896564637217463347964722696483312155582770433013207300861913101076972048972773267046425862055600995069906035760993495038440263381892812178996055834193246524490624673891884981243249744681396879476113644795819157591777658566081454014027027724559340484806625331431819616251890905743965240554153693099366991955446015840175120352818987442751693478974405239279572170797987569372313623671329302153675978738107975943890568761022113474712722085842794687635757306581411115256741318109095327250588958602224433419561256804758789421629636271646690818005275077530352817792363719169798669175129260740090980751537471093490644067933996120498756298233330502159505464676175508546259095762344400367229418505714022667139550456080109608943586645904319097426057925001260993245950473458597843336711426588124719001133300897993916322812226806540509043669520862354434931760088063175762064415283206863696917682012163212077168315028322385886274825140114417268829947006879683814742326060444748522759320760116415382215742781977584389336249463709066723877300812293818888138144827926162017819941334582400604352676892032026328219178073122620785460214639589952674896219975105906268450767802737801568546773633679689599879530646393930954846297765817200719992456285680674423868700304618942147103583390411209606328045508223293124489433053577233106010743641065174195033861118021795577487859197954687948345130736622369142803643147958875381051427002770719866152569862699175563661330596902971633464178091279585692164639266323060167520612839867397922752714496784550086556348719523426568385461405767184264498359886627564635580269052276665668340461077963949455343653388897175757743499385163789599924866538912249953485806202058825511809907437581146132676724206640651581586091545610997089177018989587353095411066470590561811672278786446042942646620310166413519372900603540081598561189287182966230899494552970274236214460316069936094503264797396876246978407135582840360335784982874208169395616722031779852845648886194819783991365029521095145152830802496754353570534176040048802884667330406513834712263250091762917739474201690814586568153340980504953101045956321552263574979536791858117957480444298511879054444692338537097974395224768269110577034098538354346502820499178639351100496303823861937545918926622895433631371242534852989003721966856904411596540638879388267996879669901435425685567508156814555345299960315344025497745780796790069361225821253928766920137058211065901709614234982791361167103167315617189126502156297277228822033909818331727400672809846179251549487433990549491254391315646500552474175613313396002862120177235198993299230772011691321569866881120087187065694002566807986538896632670946623797783449355118491534905202810085081853434464315136976893109192418559388339563069574218668822007599734715992603109322158105228850190580833493942502323343845489325217495815747124082472517885733062274147385247052523302102886427787458789612877216488248807226144872899040664096627882945203823316876365934790569698883834716706847650803916171721005420924621624747190247856501038800030799973784673914712175384882184694104517691134446856995141611272548436746283523064346674109897109492290465285127594906268182105360045168612548644612021443495468105699725150533107896026611712173420561903378861174130873034890829238035070791705249948510468763539121257064128398124116845371309695723994524175304873352879723403338379861009894281418324720429234598776273529092254230658938692427487856848878063455584820189311645852818023820720859370046160488396158136480338650047698979472168175348579384316640263815202018419025699882282412767086785768407467594445155795402930960849783659735201092076775875522702795531188319222013000240415757391041606836735591701509947223864316807541146244662056470650251395620756990173828055324705702163614877544373783411036142839141566700813700306647373851110865962644563851286564279053726609614164289759904101108980475792316860188941009469774179757659180533789965370812717036088884942941295023868184815130356546836180902591961793151854645058757823800396845519275771823963464256064314508462105113469751152932066613695843035218031436692183503406927097035878058919574033612814603372929476790170567419409779843472122308375768353149552189563460719208958877232668806256509324940508829189120169496422324822174423997853944962441053232479290424228358463471780521646996284335840106289175818484973548996862026915075923530319461387985411636391705870736989509161631309947351715063765627216288950540346531596114368242041446326743097841390222754657791463968443192134694769346187403597988553265863289548065999244320653840917519146294266094437027202154991245861697514007321986919003981294679473925893201240494084639377246441085076753097460088858570340046788319975445972817122102661064891306644390627772130872937112582034831732790871029286877214249117088298832162851903327817574963631071595320665749088193241981017330181559062923706072083822576904501523966933340761238780807734410828937864707081063222172369113030168214927044407023264009489612376152662985040943647708321551853854901827219486685667116250275921124218363576944177139406416353495287481687250874117009191133487879779633131163216438601899100798420810446179950327596569164053091394516867779005626317414806185142158620592878424335811869246864141144616755087750483644221646317884630382538925970821133549169338140102179067796128578737567312390653987160785066933746829517304493940132017939908415950543115565687938492592595014430725063930301717438534670859737610294489524996263788959416938165703907172468742526101093536474297778386736297091571677269707799411137367462913904389559409417684762551652358758753857211565166087957962440218193117462395712164863650843627978223294006689814216172559300138383868219367760167158598127062815933014290457009918134819284707320896580688463908101713521592350215813819053372179286378814717059523724252174516520529589396783438503215870258698889738142964218413352758377171054256227325937049813399633965158468453953939133287263656361293985909612958262361081320148562338979203465032395800531155611819629503426057203200167354579952701449627670458054166496357452648357378395189488478836406879791154718334596271325724428946452061532686794133614531109840083123891028751186456456183245284865398604968638567854335716882712695932523605245130968452696191516652235089665124520230231026980456280998871980853238404575044194102042339281515436513525354265614117100396360388498760883435931023334777645198483972052782272863377316912556388388565171579906710903462414436687362030896386305357079236261188235311936989866641078312652005479823221158386432547375822703552292311026615842080655042130703974431134885838753541594884968346326884340299565376392513891600428963664987595528094849993530947429076333342280656295889835231483656913076142721806045075602072385559242385919377231702377598680996632794854504792649546063135542687157072192820712005380129540639528604909405376704284632789487028514141104680882653951184375087425875193211367754648615526260248763981369426990640110416543411676735202611405159876907525523609617941076178762994878062014503938077067781674586337458473669129105503233204547719256908794176377092658174165517587447428912705666069933935311113110693792866582212709688933862715602814530511707434620928984770100545213622600543099416695102569603939196505926492648040138333713697500927859340041312455795622150909222631137413404209901484826957947479615256557139237497832543937979402146522187295268202198256616354876622979180782273213970417941143191244544695495095721099544871937878886614458984804975360023161210257336662264498891745072781593836107125062786806112063499591772219254682277168737271153778175975796676752672496372163370167005605131859114574901115304103563141911699877642376473538710268025274692698505383355694506660431436205214612364917305309563765110849241973022453104552856048969837131147889432688782698808635143778487135527520646379361114585292304899973409402468860082521493841086277407434668248475528223245613410347278656609172580721491200936036521108075803769130267766202967525231176151247247703829106826393681265196090452422664636063211482555875245225504451395205699401573705712644592475500651225084737202188370413759446741772425322469339537525370160137858041539618273520415597645532469156886521288304626013627906654743861724162450324607591447869302637645175293456746232894763688923107895593404371077527711201859859116383944440227237635874468017298281763712229440833165357162432351057283597475657654398657141958188953288581939322965082013471889330995541097439949779567070708733774943699802567046404254786873645112419635748544626299251037843682265826775730546933621071652464410296183097006132895321228926177671912850808102016121079496194061346453955562202119993822896521777896090451729817106641934330511011853632869950497939095152710853259857555261714722954897149809521759481915226712937606099755333111769057075665498016967522739918378591610208287001978221790858496233035389510108621727149368022181218719988918997725531593725681394146732305117221301732294561603199178382333966640825578438377044449108813364303942478187054582389273943185357872890895523312893932332624392197018470932040654614212500242010103959446816015371544773565200366572411845272194324604154918515614432456618179296920292763680129015498227280519018713817105396797733442528960129112920374840254186096802106580323794005404231725519194945721351615514054513125598352461984773234007947784944957734931521665983026720142423130413679236195481421816002828535481772020272418012350334290159365238101333227736165554371777165219238302033465569023363897030283522657837345309906404130226173745366891207783947926162968736061472290497209276281691132575236524962994891412831170639167248556946074860948528998007065318262443364379539335825988020881643988201988302727155007207182952822035429837982441316342896220952738920492600352999413455881770838305359178539731907692913578126103281085993996529516446096653250720932136102921723325029082239007378619027621904631650290281015649100396417680011496879185354506523200846347175156650575693966647740662855041762508820625694030981421022608921753628805380005158351249824101882589232667971343840774063600877200431565249293472251585329229036464679113910896852586045580479658861303587121035566442442881280699989550290786120010352106188569611360690349459279690919573757269635196528730337935201843095746297162714720107769934013611091148355879639748260609769136659674998226737974621666527177587587198715068888734722291498247691816758741620140454838600889900683048397371890032992243854509121383438887176366975983625500946780196273605214080086780310454422737522034481462464753597525001137979601420256780307728866149231042970642748181493192741525743272414758327547979023784205497293969775640166961258573195959944161644010196372782835570864596074924082404094243237578701999720736879687222071953103196118319572285393024728429716933411119197343502196228160504244528894804530575604968721785101211514220698848276801764471323677335332348559863958275022332434323287143938857865184015176870319520551479338079967823569592979735653797202247929652049565135537047939093266900850219469811518257802704050820208876678635556756427951537134402442523338869122697242986509482823565165461011093953905067444394730325013146951109695730112975323250839335247198794261542063332265644714839122516155976176142673148429656862161830409548441267188924895105234571256458798686928977002602293533440216792003653916751485400575168740318451355194922667965609116158505121578129557499829414566653418276190465586219221008743324890705473027628758093619793040787966983808247839605148064179165980850864444461390004344763890366089520358986981483409573139477430750349246774371871222439828442078002951011003767698420208857828895772050822689193024319656222190307919364734240431536214647128479097571722872604960158336071121066313395536550624841190679397415511164178917805876640763182311029866522348798751847963309202391631756958313305400045625324617508142017384557936314218421592554325990340796316921795658331420478670594108436845195572124819711856815372044853785500264950350913879270441363345286411056690262446703480319940048909502131030939713261224982229654427053060860453863444298788855846915983073850148732579639553191537327706938300294410578795196063338544241353456179595668595417353123390822569254309979471038958653247386189220111706838310593497463893155681488772235330557833690542747470543165985220669001745403111443501222505498946279639524103815498711523560939350005481509185413280488117764691588941458886842688160479573820826494382802779267962543762362666000863577690965379151751469278452749933777798204778733449185138208894321620647118698159747938532850343434264327400145645575605398846909811310965323120448818742564816720603806690540916877937047655464257308062110063515101024515307116838128168495274247544436379845682587358214353742119753785728629260222930894874377048721820322235276374490411204091007013032803164562791308184779118472393650326893935049423385173083636206713731955434032707885330692596668625941356348803252942419871983470019693212430851060525264694201428614955863527974849939196565004489090773370695294053938728524979089511631402076966595873012902785355603861667876244022482617611077776669924783165321234680002362077904009991409003632822626216924355960257814415565441070934427330214824138260300126720822514183023644620454235246427350914707836897230472079946004253734569667033304738906245347575639862469794114200426197298953492182653551799064720800818908099765054030775146780748198205989656974889891525367309258913199607743706135160875215543749255849250771740842530111949080849587926766437785847091878384477758892283221395097206262747530376009309745499719056015640072475085174104914674529048133381112093124389220828101508606576813511284820418965859021278810123782135790451066120525916796978216189502880982338423414434265168112169724678182589878396250721064066737626242970674333823973012251493650980409457980381869461771708988191247822214412777496210877262888956720069044419101442333113648799249712518910265183101760534189246768820008957167460772029829999992788285443087328136356579825529528892722595022989205589131342126519628321162052295975834974591742189905828766546852637692093752289259880088746172924005356753204968560317391899703876769052733050288835387277631937175151147511052901519064388934363911823673970731436910710705895731494718856490992836042450141675842603669601966619056613312869739784736243388631348441990243647756113380845485692036496301711421074049601096598618533857817131017333847771013502428288125796752703202518351512411675939024856972950072547359519148213029929388619124999800701431146520627789557542008532104498973103851181825659426623124090970239458959722798366129343471618539319769199390488188623868499089356772024895189867923276067112020418320861566446017281593263146566414977660333678644490639361641636741944328215672526987528806377222423703594486672788290007474000114643679670895530005064596602932059114827316611768418783323087584403769344008578728248703226523269797458274204066328790486656312084701857060215707192024567514930649089114535402475862637442232992432156278238872814943859845797812775395708341973447086305588930530929479466115654168844841498392234328858685975902249948597337894595639235623859648144072488576898790126325493851567181065649259266332241204845542153263658544749523179208064962380820948606295036777109709548665802043147403743765261289370428403020550431680407771095327387334063545468088825945083453108519166170156893956859312019000460280605284895221271763760746975134124656969636000357325136139120213507948001307939254555135934180562498024342127548980983457463112071890480782147660637500034088123822558369893267150335630012687168412268663321559260268557110754034917196947203300509560217234898912212861195657809605069308781932667441096031794573931163382944174511877109641489285840088481160064862706606594759545208995473500048856836399320334310860618091284632199232085207791189315054251787482577442725739932144687233279570718709633943836315890333820753054813454051863872438882923779014253569787407532571167708523361950236816647833785710764220025009382409927463370152941382609079597659302173967326111558304645807922452132668038379939700526243235310530034369575641383364981996449260227310689668424723506404950222458611159836684551184016827990945504814436085928097070049903908161358984484849509183615271827969846366970495664303107520648211515943808568427478643359137218931704287906938328121338885283463902668104711547008828353350104950689548229578947467615477143623045140094341068377682654725489956245254848987784941362681767308911505551062163896003017980831631660261058517678710472266726580476094682427664395023918534656014796991927424191997328775297382267498348348348693666168262368334623511894674931526918592551179684346679682349485641350443166538111994207789569375384261773303877029240668430514642004578558905496535036059046078529246122355778905484113371419951871010628176676922935457434649290537826908900408867250977743119586704602800566617224464912898574946513031833309884694889077846892695789778631361133825643515691766802393353688849717694635055926943240937765083854162314123067937106758996792679535022426772462366721652614395968908750956954095799644219137136005142953089226554614821159519342956956917496457612516062902777259953440099687185414657873400695579619216318162956784804113525198684790239071875641997492955127142957149683447890883716843240594234083267541117560291179560582132451346232575589340328959488543368062040748597956645182360426402739830420706570378550236767048635473220480288420487048273597386005043787611507549966363835738542209674884569531374271255061815366703317631000712017618703438037492292564146010118583837974932990477046266881604114854488156152692770098055407931611559433393141218617559058547055898597255235256135074722415440517622642054598577260428815053824748148689683124021738652268953611300323972672160153486868015158481949440476312650360287649557915011771481122833487385672858229639287783235794520213354728883755029701231760680684170193736873399887893899299425546168437120761258332100632737468138065164407399074446631775989640940513025884558154948855298921728166702092545028196039487879818815868239218110303843323118193574042120380680124822731373464392666415026305106763950254706591569145549961214939502921675178216144855980513580132067077863380463280728277035733273590284453626530813304844456397755144060393800480323123133885939845215185387531303906283310965646523094121153824673449827992677482477033956725426332089021001920693054361269048617023074189656929793293798914893495898172108571048718776686523912493996171254482657514248096802556261350877984669780688419700054737909864189274817676074711881976618366738264727890154528676118637607292621576217727277817107063448838822935229819550726178885029702048694539973391246005454547331221190178020006758423864280705507122250490481583992346691110562649634204498372417339340397639434632955579515648158078029037586716192453554200880905616704585719012103907597463361949959864496550992452106850742444124056161049388890831070842042569948748833480751212654998236280102757074273499926552048773017665244338760582283377662792128418356738187504791482116271262198866015400571730536576618908390789194589408419114565393461623592092007698677646668808525693792705886263501090592833127633740935508380089670339157375265284144018013913506673290518631534283450010053792988041513646151499745927190315973892694908005610640141538653962377750173766750999048915449314417072850749295235503017211562337628382229864034850288396584626638388108898195861825397407914250557526821443347658830114478028609159243711979061618795358686097286433798970549963320522267852150630223351234712189643532200051953209428185494227494216921331010654427193373198993367379488572801213850983721301628128959667830132194471244706485705196443051690802760114560512062147897550692687064551602911122238499122626849699745825079855941989235926045665026518287663510785569271844798894191682938377761782182098333812249430049928972649250233070107914903982502907370328620681547838834268805549675938931753495205163923725743572819103892321422327191147826315953538963111577735118326816361348125363484277420901399204174170634705854079889820998562217842965922960372927182692910531558948011207396453589726870451160502682211308268174543862500884334320233062247900852144319976552488709870271839584307431617997105907795282557017708936513837925030566860488546373845644625927954519994195752851358852121997258019726443369511099344861364853146083626609352746868780684285952500298865869842720365308066635891055416758872452644767352596287275236158181710268081381842499823289296072828806006178032949301444113450658132710795324443099943158307066342216921250838825697546664750058339853681339926662913805669083096445047164382325945776068950830577981820692261049620374788974229680502365904722451599729645312766116470206809646867567223590702343768835067259323882576788583888468436999237677418805101750977632630020789060944889714058200096974220782366110838139202120691824107592246803297069418079174298569806974423707381235491606780704664676839820451328039967755799540052837333467059637225628522488979188130235707476180453841704698567624739333804877939768814756673563423547213399185004532522970528491836745367116817465002146300447821875214504941103962132035540020090683737991829092144462521262237726529205323461132144647185944535168700344260180687549413616249993729722716943090132978415355077551983498677853410301509320836143362169975043996899749059337671080400909333566734516930671633605202502966993339466743121158790742131786905461149912696057347924997782237808087496010080003318171751969953478655282238403083037636756593881761895799906631925016674463696156988066090920609278201327215127592212618736240626318158297427288345918203851906311066019983114601015898223145623576451214647573191919921763925717172924377697472181279204684093974587171766189912441563442005710465678850697557713136784494532315857498383921118080446988540480710282691274360836814400841329060686344743737203145323888124097937233417755449845851456264316524040981299375572206309358810036877599179409061360675812758074762528623795189292399386254074696272813151845460493759468775079265048595631096480178697269200072472045704256652491414341073047195282760874623991393400902969591630631568301203868012743500283671073046682273963406181298733262294709110205886289667132789035758043049669759898485800380678029047704437636335198779095739625862270855268713771569983404230785511146174757097237064511580151719456503193736068679266103063220847750067152041072875787102741803408709149974380308690647295531119866264248817267104382109238849709763619952861709241161761955368416545747997002433954734506867269061732636429936544087703590956331689689682450632091179379043403693829721627905968485620565191608558489275825535106996057540961107296961261383919472798483397884314315257831044354090915138225270255687327667097983353737213167549157163626562684306454872966116640387164278985535744761530059277970707712472573196518410405686352126071172320597856610680661452181513901690193820300043398750550434548946321132627861938102299677247805096721963931384923160582417029826415577132022092531509063816434049099425643104874584505262271374001177112970974577160583939335965373320230402353343815344195218411732848985197456107316679859431309018336186828494448493399473999175396132551989836326212018585721543959418754039012811857456911761935447951582892957007543819308862396695563919331159037404695654279925042817739298359055994990293313944820531799058760462270895158312343519282697327984854972595913192820696068249863433984246827530958218484516605369498895774695432600983698422078854881329974227379284460878936477484394107791268932512127397107056810755478750148394869955125689415918416644010516676001596921943014223331941273524424093326248308629510413134452672174959956156030142045464111090233318945323727471697590659113712160777880388516487273387008886761629842976806468024033899572356231367339909169743549066962309772118956273494238915286460074599591700146053023912640581169292491268103653544947697383623552241626895273469127831852450553164641287485300241281629681951840230292032635698664282146760994023261055998183228692536343691542063993654364895117967380136335012203915405474024437687365131419570259296223759474557916632550681861694138685712114839006043694378792531474595106776861831497701292902697120201981685083680324478485383095407322572226419022106517143134311867566153897232886579100361964423355555994358459378610246521751337415238882422611628393097985028983069178534208266183683708382950672370027015178305623981414875815317730561660484518119837220164503184260718146235292652449332030058982154593023666936703136853318669262088577021369545584892284108068217848117954703320078656963447089721920647577146675825983975481069166338001026561760404679441214943517858063641737058688601270810419032219142821496375407010231845829918429734491439466210545227455556298681419598129978759522595924957085455299192904411841299017393446066471757177525854502945799661805011987049982753957047830914402396761006351616337200428383374734076862432898350897006170059529690207330607915223847385265667878060555996490245514268386904687808080950791896087087439583522058971154911985879286401692958203178207187849035641176676931371351895716536102662361044984261105282313668251275166664350620341513038411096188694473133910845902458910676765242338784596010085060734769226172765655692451431556531797507218244296883428528291192290403452430567200447519206605011271511855996438696430152605687967217306328509549502661693455843151495546794524102186816871115980311276820465529154619254055053022328252831886089795383364136699310912279866012236988752044715633944031362253971378393487706504395813443494127542318390646471410422650557762132056885055497979668604337701330562573871395904210360862217277610617766381894630057667374648991398388859918981353194452172461063802836786533832673448195620750537023223032512854124425682279232065793768860002446314726602782669613650967915571313721772160867242910648671385175326664985970033319890623988193449318326501394784871396430437058270206289696339794420246532793653527380954557896059652740414164026210403700996858091101275815557305353329741332788680613808142884291296853098157598955333927739393032015384598340901988706599648981343866001357032426100730264312164930758588287741592001412522980773238807455470984680239110603545380577899383787290994825318940832553442008263319568716392881122303520685548976826304050743321760845454001918412214275608863815211669899838374401586234711512974690480345803573307438462290957287216923791449915173590892613545032034884869477509654592107182032335963486145673453823499249246487858604884385955568200029228203165585786708706630295362488795953590926869532034179287734121529059164218231491512212433506927258734558276883135519619527438859734294345444620426040599109655521660315283320817185957927197665681258855919449803326999093704699459296810873372872048954753035756598596312089368532037101574637110055436564734837931560980641498322821784712070187642305416048797866922879293121937035712636293404432921578126828365208384681553554880344259969410523237610694617545432107693239088275233988650698726910996298082166254934105116170598407358875128576902772349681155772079817745273418064585416407525266458974214900540405490178177193186095459015448577075505364354815279473858997110213820882886904580507685290038992831955125666588419975384959889263186758758688817075642953117244792606272593730207070206019805364486012147627689604399271122570882791380459035988387450853228312080269707516352307234171041218337755387146488358693313806133323595690313836059153270802279396464944167271676656353600415464848626730552413276734715146988999080213902781278120741594091766346301243458837136842445116810543096986357770831353136808547243325807315847112313099914486777865819320123842101467262422848347268722384765683239188942212916784409930616683524111885707182633921723831709176373385885733144107034322463121361811370471718854958976719601049966675740563221361023542657395155674169209049920906569227807825933350484915248641381553422040332987939149230533955993595963107164262508902742349382472783443117326914514231627675428980186606259338820665099386333833329533938767168446550648052607882737220761772816965489558289361538222360973618387938676215023271060176836918719868171122964764694878424705009525431240383939652530442117922326639334723027198714579061167402245644145448165613451654926371796823114382289188994651275623744653440675485632355182555336134051370664573120599769882875410571054079172457023768727557033464380185142489866607175765620129743429670979059420736884960690208435946253161517543054636724300235175291668060832080286249805623875248747484857353907883058439393873300847554929855842544849047835552731533016148533382114536793863271274912886520332904786178864200309642054154331593956752015297418456482758951819425535014157047879599709622142398654635346277199572426070234869605719767736435491932813173522691632810492515155054167408744213317657119336390592450629438755590521717192060641347719431462068176553051996569971190269798917441790055406646648254014721942446005695731668666640634643159971186923764527984583740438730039178948180752739979690344574055947242998514417032066913931421186210451210199472760635910604144680600170808852232097789877605471514630093865856224269402639433421348798194924074888174792602850250595627615208300082257795098470987405266149267766253767094991486053885719590126778608660422662206003862188496827838110484082368314030972149642671423939465319144910782351651821126002354366717858879823696505664720740372429566710572534835310254898823574126745205062077917607563516007637518701375984759505525979796650817150063261520181388597250213515610124096608726254985750759426840713085596289917901965427252571861102480966966317482222394633663361451030858097925687389107013991201609012194183783151089792782365582889328502900648230583352425137155620054503511941687792899753163374952229192144040821820153459617958282460401608726848061425469811433991304845255283913496539142865720091444038752387446343526387426182644955096752213259637231795949865864651859677613569460339471661844242603783748855807691063804205601065031013151667072688984556956452713741179964476956996854193123182899087341706792063294425232370436799240834159361038320622550270994656578613464611574651360015963460409224012519590246843595299195038593707276919366032935446347989916698686643304667199652476103831871078903638985038374018485049064341665564271709712106122160016932582351796799525532277118103519512668290481298204278378258010592866011432971090721345520400649801534584005070364959411485889859143598245353597023498388652291010727814878424912867488282993643715569723361382042932295789430992585009390086984896494317716022197949230585942881676604035524118999944082055015548246198024354924244960696169512191296402885160090959002600006402522491269087861783832300146446843280768793572801613060225650784846877537804979140119624061662785405632842743244387851045775676223176309100546698029744115247073520778492586208460356158821500581678937188105184480883949716105558301665578822988691470443251057129054639013855418660862066960204255999473299167441332021798581052117257367962242566106980019980821712378238340737102178278607636230679916187703711139259897241384950980311447474427508106492046419354508017009153466860880616626545245920405704022991498234946463319500593266273961972523590291459426782321434446884226745861472277642352548756327956544519957448207966713106059716509547008099571912313470197368409130350636557014273437932038902706447655642828037022420266998191448893050174462633812240247447677098644752829772535730863599803755881513802335417634588107138760733108531142938888271309869061604148280948516178788747570920387042696685659199012635613228057843054982134167580434625309552524216371557185806688825489850027723138018284208837590663123191487954549933760237395583495804590549036312530203203128114542322814101644166424936376408027258977084241871988733044645750584936944569874101280836291837597827225827374358399093224588643423591177861148509402755809809510655048308907090863099076027157359443071029577023641920201000404312947228663623712627290945468166016369937883161754746194164688830795706814628320560566429291114872197020859212919566028542332072913764196587848917348673570761888127407620406498921132898167353096132857058425048046896209696069286458062046491339497531556611601792648497639118614694914518264355926010526744184836228437439237526498050017955389243157925947964526930816896362410712102099128640447288131851564761081332209909090138485826503732863541504868218974800247747149978893571015418293465711860448304022331888865008346682978842340935397511634278441643322908936326946126619185606299775573818849171376701241496544053865830040831809921067510970522563408615356445318396022524932774366531807487615302400319841905658695745374991000591353731817011335564012226353048147372328149756505826913638892111672110367467680007072007670211764919129869582208794195217180578348320858428293650718800475647889893963848429450759854832487759584754712183085725705809753582386165191116581945772942574344891546753641175040511655378170725744419227184901031123268358682728858754807447696939193465793144905721451090097782288004521033095084540291326178446204170608750984571843124178846740111330089313540857247611842427832261788623647338976561236471119959123108669740167077275289514991793415252393146483003377046033286180598248232159792792219505216401465340733231932880785169993823235035200478021771957332326451500264888639561703982176611637114021982448135760105598856949628554755991512032260937539173293382888987720258520796812792408025557826438423685897264545891260190573296600389410146244374646392691679964495724064864373462285706089932330687113751933371139399460217756507305098226792730551379223212959613072126634731113611710783694273702721128590957782952734156161531109987594460379601559209578517215465504748462031242808059044785008601132178494929316222332047905990774077596032067216667651443447906125952900414587726156810121166184028126884495560886566806343277550239460398862666862897932747852289060547151985933720736275828696314937223428702122538102049382238790126684376985491325084046544262746077068882248102804065418844018060718062299600460768026482732793239088604159794066448425776277574808202472042786559247218313774711049189018479186479451284947806321700437209043004364787657024662396607506772577303771838469830275119080854847971520473775009959527290636606014129488231922290706856450759928515239903105459827619329174990431228497688767092207452803453976458579667305978399313867471669140238130143573087298759342988159900252075913673892169582958309967003275298071155396887290549795104657673574939929334125511464205198946338092553630982278691301159736461636492463534700512124747399708407076425870494505302876167366982605233955490135823738762959177359910747942025837405845404993618135399952069939730405381121103445286390319194293848259590625687485899848311381261783717393156434858391304510641527439330813389371621119431543270616666391405060744510912749597983414227529196146362687032349470438234242827655272011520493982708143414513817948817335507563155015272956904191465640129152276874530428215366124302691664841013055041550410790519630726419045857252758471313337108030849641545942006908059758384995336997503042279835289968078645821361314252914528537413739904046257674191607548328810523478556130065955565421253223778873378367042836109286764930248710675910403896471692125484237127814249146441411019637198855303533807548056240604241601025914440316294722958250460287033470079421450946425141817175251190482066500880171264726487431800150773231705834411137545848488279443064465151220093957815955787577064056815493546904664781941459900263287846055245716927800588606129431457128199835425456432910790364252544610390763217701314206957945141753882946841737083388862916753398907150554820769847028145475192669333796531252337321391915949238140111440602661804547676174424328534677652246333352216898819327267664474279841374350856942968838226803112412536906306812177551308555037981075870963956057803196033030043930263663198557378421453980601114929397402584229901677945746766851654627747970795784583738365499031157083998715262058639020156813931957512854610579406089502144264690283023818608170954921889618561708246679820490294354616961131749383684726966476152429037435267952303407823076844278050833586541061924717079608252376606256433065449545214617987300022771952761569121168332241724757508941040156007324669275549947108302157246758632237400400655597055410099940044698056442190284440386717040832884285409457958963067362981287180768909203499406416623544026715507932554052353719431989224384440997719213473117166357347476937545749326038436226749008459631613891597748328535188135595055323599075226427311591986575528644551478035909544908753477255929215160431952289632508596352296906376106955668590506574224521130171498485220320662919466358815327794021073992852729105342860409231991599079402436290257984016260948429351732021143006312786159699758505020310392702107982732329394228391955337963076932897299359585316725423082075872487102058761804039161122517346841608044557421400046459447553427047779319569247167168970263539924195977195598889578769789555887868542986281640090063810059487886872271270477122312666997113630513437809821695540768413234943372846726658412437033835729117464067856297483324600521926889892391446027325642299454483221466899652646802466192143710531271125865163799695782623139761388129544120704913820163973692551220488288594072871394283609395714603261206992551496277719491573422055962904767408083739967106360749433153639480743651473052436647875704224829436644989071016421008128920432659825540676325465769386126222123177594369427673641830532081233794710208038503050987259026966377572003040551770553037700670779685594518763986778221392615030061174997979230585425494130343852183978898054819467868487844686159700684803474704942325068605552089819741568740307121138306071965076392316731219447306267098030983395370888446485126833466466765167637904977348755827668752891389050729263779479230968655808574075640032913727963370643179185901641466809175761316242954440071177039843344503437239435557137351157257358707450164243074336094897463260967192908738133379893157720830129315033166759293470795525836977601373395481422535200823534702024425436200004302921001321589500491441128673780805246556560320659494226562167186488630117821210152575182447655979154791190695686456985463200851827932102099371912395529776089597535523732075889045910466819178577416626669047207647499727412274330372648712751675197781897943824848929576282509604206267950610868364120436458269444444697640149227132845706942373802602035642651050826799917440993879893309655936130458077140268970753018309732969180451701253727460140439900966981229630191946334052106844260626398250518076839239165805498933458641599094860825812107451614427921569201255701946120750303292670180509517202362193363920289213295405190491517115627791794259452220879634857846566237105758499495102712427859566174441880382433702910361970700690459443815094174263168228489352831638872006718508171308983329426719282964331363408083060326412860721475381216683366703906480510501459185727510286269085641719163267275828510776906349861949880532154764943688127270703852212594501891762452613851622282043508941698243391924087834093879794668093410009999232732728209434722374140366299713042595400762790900052527684977481885641601796955608709464997377939531060602649413387712063558900188837752113733960196978943133719442324082794986658843952859058301426755583688156566887146839666965523588110110750505341000289177335353487024068018302166068083467207262261922443910763262077564802053524627509198438387486196052348870340859982428468028977185186382539676948672034262469265197195965727524916889075533364444579045782172046180139215958174835611731022485543207157568159484314232904589857311346259681618646624310547886097201789990954912610794777553583922528240897969002055883472098946088547755605095521334236923732306456966803031329344760947223034099409159299905846051687326023771418534294048330618213896829143746127355482683516918073049607416317380463097460094114620184749265220841766431732769348544098874675096068894230335527693154544451588348074765463228266855390883000514516723508529094931815061418500826943170534216381418262357315245866239577359479437678534806422865069265149742130313021172818742261723451985540931857952960785731355232954241261614346245917436676471517854924455284074163316058171784397809244678884429996912665310702287516355700040893961607466309079674353581572482433090010664184307226254874140902085213289102070005371756385694912166556081508515948464599195106106838835348705302480646633615708078306872372555658093125148090333022063266874600378913468433681234588816535853576152296203366328150499571861985664326942845813563313017953473104199989624499089113398938483895187428999169266972711237923620499097004175865758382725608489606243630019801372820166871081375021018005901300948844038818625075529410256373359891309173230771412035681489802572054409476587505847621053433716094011971259957787129377493034160628231962608073085178765476534407642577770839874135171491212437251023835535463131369143413283669358429377628543100127374397594896156765017740828063391325602842631983133731232255301020556209906986595806704535504705054299960961714945560916549588315982454591199359157222777419827511990810404077729865273418920616498321573221188082515939567170663502504281048628662476494603986714145692919415475776856481687560979645330165923069962962713027133479991212953394269514968501573541118869554388650527026006069405636153495183637576420223106252580488102545242079068202104828363094221188543748008166699441856903510228828539051408502796156135200664625505895437782173407285923359148852193070181291855823368943453879485309229879440390921933292505299103158816906900546649553964946905846462685550332515858109792816532383007257110706889129468417473915717234290960119436162755079727625060452710343560545673082550830184587219544548302352255887901867606749220571849332290130207590561195462031305697297435989263647437569563572610143313832277962932184004240284484109561107542523598247778654259547557692862335053798575832007554986740191444480182483883629049487104351464797365983956399535753654750813800169455937122236961007345750523913953378383284001679738573107144357490386645251226221938379267199921494116701793346540931096332355558554612830877002803442147122977139536889575587268502578264932145768108424082830433459603501649108330863458023167822501209645816113150095506568485904645591733652125630494546126820242999918201455648491599343988934116492765600194047175761063664031550667619564892890862880886256371966342309361396132235153559202902945085738624254339712400163056240697362090966430057988084088600803848497687481408906261508610338112928162806800728203331521449681654233510144153749453173267762514425046635098286240481731739137919475640029413934485384419973415391250359505231944622000983683662302703765049727963630235647757396221519442584376142218917879583523848095761643533772679197843383556008470017907554579854508041591098781790018637599442509329696958058123444672295013942935561439388803769290277660476751997645749245463972880310940476125409053413961485237650441424805620446101446233959546614639882850010551169870479642232320285126906605547646958572398679388811637393443193938156461398490380454095381013227092652853414056652127270226599860972687114187229334919294934906160412759677334391726747439274551233828268616730980186816363284073094046653255866152874353082982868656250731258980900689401326307323009600749337802172342643542307863043801488044594259722957890611476563398195600757181952151862362610710270935934240957836217451521122568548135100587797722308497755583149955903958250278537339287775598616662473642555824370699921500684631210275670163244442421149033264663248371892150858680290234718586473361074676702408702969547134708803629357286593434605228277384561378690776280518510570472295210289844112961213960783804223826861851336800862007680837985506501312462642834649006612524223099322485960760651896595201253175854515768439094033894366920640471506736835365184286719820143376301590904296861321015054188187095245324924909865473595409206440938891829227350968692948777503830857010045848030349575783773120316030930323032225160507375602877449122459129046048375403686766407515951101330239356723317135778479534865270680232693592679460498538799224270665552052545231229819595809692696612770451428460949611223163999153084286428060107225984383411475410058868800416495520840501491201265744804178454557526586858311490967809607710306219182845379986121550606253982286362884839120922235558057076707725567708311541925162482251378890145083331208858615088747308590986145815491002207157446083698514520205409764524883748280137548350681595840631049880899701904233456429644075679027609588599871055314419311846046053720626968007983764234224508544977160142312577928233978595140016094825121686366147962121403576203360049102716743325653666037556413173389221456384052307737484436139237086671380360542408043014730406352719208051730936674403673536759867010237381181024880430270389983572671246851720258505645890238942940077632968311859827736597910739102420983050716660415955343415737400590061875354192258685216761806635856018136772825929210475251677857886547695962341810278577910337945221044063031090496767214881359856441299336643329785947956350991642306701676725614431024203430941773796277337860983241137287980215151166268504021133118479338292449838324993545589271537944679647940983796650084603874604103561310609811484840153354836401109793462778452483266234670597294544743913755445609359341975530450740419576120007911657219975022731774038885293450668943652523033424330027368268117574026459787537237287903470350730958754043320981545307777554144500782807350332383830261291069780718881772617440813203185182639797480422602449299065223743148431435390441588885944165964962291797958499292413151745782099197236649682972878078312677589953779905414904787902860791698580037764190655400045851596288069680672592214687821263380016691638023112394694530415209940436721674973650443447785535567127369542398940934438746949900780212847532948562687591893594639895621767488463953051712997134181105298339166249710246564223232121993130189964526168836684825543267093816135758836808042920022391411380339166295054376888580269807078419334711343230861129810117876878641160378303607540234106809194099481978311614076344490603841621821518197070321468543893958790280735278326509709090726681836235662405165110782638512202050613753923535524318836753354886747844196353642765240722667670483238012899102408769584156001752442287753445867670385312357484538950647442946509019310589205890930084073168824163024717857358306363180693503622787778857040856003592594755027497570230564738652808509700274282984288282066496185430809042311574116380455870122770358293361776091119795113728502690433181559728140831479829467984889090392172591025209261152983887275742854171205182419775735044236128178279398980960533154133021145656356248490518009537362910141304140330364718098231237185418269605178535173392047764619171756208167729302791071575897203059172086482309286054288392203924348529165319794758872459520894758510649205761519016914923702460634914975378503869859095672052814210495764267042299165690272405628201969338394474547992104935378930781549693559986944453741509846020477419016871152409510953227010090206634700552261246616617596605590710723698981928724221725577617103747419084881096697930197724644179355669783635866931066980041378121096353176718195700241926578155118053387146918849758060797980316847278808466371913750291664009571189002412337485214749754842206879654677688566034205582316526439999602998347123204373162622023583188438249294454300439242489531441046044613128703920311993695248745546061318207375491893230213958085145333623529284665346030213508488569224198396081937932961560097147039476678606541139596202705673980557212038708059808888998490774740487992441593647902730010455517530182235816585434000606813360113466783601467951236163712380560533198594552252539797862672201962688662427467772008929451334876429017866358582346164715428387482057668809461861930570289443416575191738694639565921663155833313243572087633038568140650790507431003780198535782625708215759523148331299432723319017513420831162622050719979987615746320715633105378804428402788908369450203567943376095487316350929489098087648731642655726491001229456524238865847692122369707511667168552969852123974450160674645730575989747700287152597005780345626158447001607570153092330434418103044588626784604476523838713916734644862214998433366887979233351691589157694253169236799407922889990612770911397258096636560599188141166935352341327303777405705359768808889467285496346703665589394773694484356644494073563589681082393822500302063888438204004751510101489320626844837276725255547412426699721723003613780036505094086502368847171606162413581560438121236226688322306077081685523289111897704121682812287348774083819438227098657258330584953011555602500050770951246197075329752679029680107804881308394496597157623907768628715238381454094353893757799885844259482751593338345236291924482306009767644669313137553516944763329314446153736391245142593234700181423784834903426602407666122524864721254003451626696306851456714768271078070821993561047576370202785550913256007544183486725668707254064048897559307729600185364676054209426754187086576059999994244267075475984527462102232917193510642413790569468763413220115232168325040876637288211858392991708934361180254479441923281810221756528147882842648874628477094048324137229344592350107345197559221187047652606167238944782325595463970348790918038676536365360299270502058709802360701918043306782240298166692346489589424213312940390858681827239940273907665440069890184857325559915232007740001813779217748297798443481004142695338106367382241008240033663604349434963615359904855915099619355534482390088481017190785141593143242910155284822647568754544913226307757768710833796243333937852506516994130286318217508688272896477875467145471663668214577467394478837202806733815150412957111694460190444118871966037414823178342598502274503671906409003365232455150624191833997385743088781586555208388280990024071361597681760142014596713454812287236552457634864019502643076661023439891770523314706338433631028891736334873884349965662701301103840107092434150657319845093449348513659859135543980100749602938906252904021450693928989479810799615397895754546340879512810694595960238248759428409103849063488204117334503081874925403978734418639556384634263327615252810416389215547142282452036541915741964841735253712294007836889880630650250024520201615595744833218692066759007743828648590893724590250837818796462366630631092864359367208250561981617880610176425993344328431262363205100811033196874514136908808756898326125281694736253235727625967983151641001103251183787339649852584237878863616522193496716666334296466055631260346364551472628286369224179458086214307707836331266600354728890747307738756636537316976097199734268822437900353299417629884130593112706740731225884273374975477574902522775012393953486384349302058988799662675879852168746109347137179605642140695475130588479434273716456510411422863406829862624746681354697471347889983764602219300348903108741101263823822687449877273554161224660993627081462260687538884633586544881821999841109415050546020500501741267974154520871892780685073345711267877945263448446211751280445918264774219483339511242842323891711901804963873095642010152298288640164680444355250358870389820691910348872311598939041442014978872598788553062056116599404386978371662719908166302871198332250731122179360609718192451482058085345515070755303705861088927487445138754102609618978443557797394762756735662109708868458801459387365626677385493028188859109352495120578761670771213620556882611546993158204706416215046369353893522157305666116679104596287769062921557816593728956068904725359053059010286826870375379940068649028099365077259077163157471117647425116908780510663310678084872113482282599546971982242437375577073785952835308450528612274337202689070889041431958422431810560138007203886957947490502764903380741257679788186630354209029958624958396381583921430876354738335501376042893630889096998541078523720879356350925206553193418803178612630115747014477120137406742994054334404369547528641552394426555977156914173712527532451526445683406482274264676993196570942445761409254814289862139756339500900760532892676670433216230506507344424185721773409062741774606189324239262863481704324384287631059349677223311762625539298133643347222894233928614913102905308946498317868364111343188715468157787728855665960223675549849218618716207214718719418344060066771223421150198916506993044226641804123902409716882367039478694926141339326419648929935381668690237615806251857228382056099006999126537553530965441375760474885536965266633299469617484674394141642421332969436924453234455925130621726295729764232102765900195246481908387200567552576479615555779078856840029401958319141827965895399644694280767005088118612026778305790058028580868652949689385829900274204980076495184747395732868680292024964976442765404333764157487703598432433113902026124986160575355436002565157739062788371411212401322562029226613203167375575634552661644332079258605243637813329492446536501822678466015054202778241427696904436118767206902473659160051797332881492154759352424563485713190233655640508438968505985599763769149864764397547952069195721147793118050450363997991497406601002346006860266091668333580469515380957478410118536756759565166478478486143907643289514259840847291580858960106947205629089708669672344486025098041090026321837210067319507049558981669939244226620011570189001153183855943001855206014297426494573203563878473130158811276416497254800822077504593122343488874291768294347421489017215068839052512850191307558920999552719043821363244956786940598308644346015203748723066796285832706972484628615198092079829853803114192312372788116222552123029218230651803099225670779432430761580004015954875304994546984415266540919600830985080769682737695200053072427759853000670324073136196527921627598907040346257637635620715101968853337574604759101645261360733077669546129240738237638605423383906914099494908335882318597550267503132089226139805887910537290504472269760294675406903912397045343997957217282877959429640485236491208067194980220960769458215553708031990871808107654446514585473561699631463853749678227573163233621455208663472051105345100598171653361681906673533112094826229964059597761352232692148803067223907010328592839323937590723436758548850846730168769106075556343253181743903415160500080716463085815972534765685352135100561183527896825568534745652156322475317929046502072910502024005090667570290551039728733618656226428803252574461003110844079854959167736125298690250217785591598006941280164291287853430936509455488403252364542860661975889388497891304241176347897112187405373103405602583274706991516528829719343280405985636534613169516988605482648074933992656984440614297486491645419378555603669565550464481184676238458000960858376644645298627577849670413438633898469671936632104125033361070600407302446563523842222150763829139583855995911319837810832952169117080025120465570420420161788972881821457967502398280637565568023052070690803158626443314465731042253891014074987165800090328230344276498299030928694621435079303018567051782311002127747378746887047651227972396659275393745139415621278550091417220019776198023158442769486299375057739395798920623373781537219668817334451871886510496432596706406436005111572863607632246561458138470789475071059506081917171049575994469147509298835006874204191886060828350283311149427299887078624494542527356415798522931763064921784805297602877266834535950017855125768004423185783930100222443532996948912466172323610684784723485282642587263810841876708949678995064554723722742133010102242732404699585814439869534892921725385026656216867316103321161681800757916100826512373134822885791250000525491065365847710772356834341688091364593100898303068825917732049194799354846260487734074846006819059849264122264874791130214237270088561356851606833033714179045474500090930790307980272523464369363757262276794000156872285659973803147916407187936464297549184800386280882561537801077050353535819479630620284046535924414272440441859974221661898449079552450382888661639629872658896501762566715083425280299989228698493600260647437792989897100870238104213348151228469234101129922054375508730437701232016488150464346021220321064629852677136981192782950474538713465871364801912203694325558789051776352124724938565525031264495137457420355095560367211789837249800233743814848057473013238428914764554339922393449764791176728879765275721750036152482604290347496072289515938830018621654464588739216899298761270525958912661618935044816645448244864779009952890832634381876176006074739737456162905790648702693871747134327955574106101912084934774269082359456671315017036910783688702474411648056964190361341249836985405210893745631029342157370223158327873881345404029285090371236746287822838144460448132210352266098778600102386196962846922488473215975202417337619101900657183785085111811172151738361080003711009900361900055789980784548597203303925546360850744032306356303046897711616421309382823458196408706665292945283166248051493142704518114090107342019020148384570541361595745146980379330723968544784506974378777773855985903981083294324487105618910671084383389312593235625097047524584987475456812360982620045716342255949796677005729235390706355779682199950553019823966626231914929568111369818229216248173702102608928775637807788140300842816489885303654743596456094369246731940148668602325191255034322608504556374292259488057610290582082661865206820845208933954739847553616622501170345354784382176701522538206126073737240499619452626842701947573182537828832853834424810328149230023473469116631639508351794749165140106326722260823197537182241856492647691040226445736132383483273622887479076413113852117495909134560780590389570819289705345140666599177844875643448591877870784025043888222089394295894358043303860550169594885370519256932913321488358732513032225388991261112176992267031632399113601197992157618913607778781310906081213480693026237287666122280803204448969556788628317427051426485832714545845884622497390581760090095991713959322206527675134247641207736583550237222395443445961843135686468889754210807666984262015017198846296014544066369389589763994557262683340188774010880518570989892968932117003102342972336211073341945354737813827549104621735338392964903862165271828145468092520304349794681137498158920918194950920210210487607918501334778886073423805839433803671518651437624280011846189501957688810962289488905549361688737970533395424088340680681432913928002332348293005120025718374894329176140467478652546539410529755886026336003031681805977758235873843682984163545213617571676972966829461265602288653929855241764075898647384117116664884630002661183937764089757131347425275369538776002016148831256394840083188374323683148283617254573469496176613956787723354030503021630872486340238289776529250802650685249080128256531500589644666428026553285177804793926731339943938138605115927956711941082165202297677828357503385301294718908959529623704278051259436737338408056383637196456788311075065988012871281129179142485554317059782359120293020158817409987782002913731893996858367462037857626917058192051405105065721022899122830543494960222510274791681004628432688424179030745098072521184852643483613920928253059692006734256619098217539505656815894283969606295745890600400070070272161100018936803568112802859573355289947920132831476502545122557146302449433289113575411734769946850188610684375995460014433787941379320832396005068057478438785245449471283034267767579985875373569452048861501234643667647624802990961323546596629804285614381036114110319515869604725534712249755262966436650221215992114965887386915985756338453184623242849060407307070947105623225818136279403145314687361512908588101199124684436604478706979962674073921406043375948437078306092030162024991801448201091552536888536260825913962488371017560053531200412501957381571982682554311106165564827900557989681975955156138686550548376379870387979968969259268959401095484474340583989420861601198196125085197504045256605461879069957466871803052056804917001524453359283122461309081602984169665610433564070065661973161588169769594959888371922272915689677065207589871490491314272852564953787525773688094668997786086141649669473533276692226785051278535728086506697260881542704587694195584256887922422353588077734458867690585231711918658584759383634846562290458752632388636665205501167737382821028787994295769160555805221233927697509735674619437647523089295139360521659729941070410917567998732504999164406582543971859276239763655934731235699566257016514361160045695786674063228704186544205164994681677956087333785692941066828510387747872752228257272981990658084772276736007258507461795004276522078540470039600143206269361279354863185635214102661096337767553305539950789329804615109322761038700017216356694836681960867532714060530880717854699724496560672552747923616575361770445429079748979588175231562983057360147591128639685639739641316914367477365263964027970175861549128504672867787842997380267544093021688421396616284344081342497353233931975683396612173323990338262934990853186459988147665820126991364704982395819952429247573368350766462436321614990722313044002837481465575145313437694769770824827696372783144854889514324690915380064797989481833066546920210274554912298071816304474627609214620996331591446717238984526469548120825221003089026471438116432893670971837126426357344185289623269232445083592528455233708582040096521760994946722426057365140189646910703328944451736082352597706133930790198267982916999405163434368657869208188393107476581418502171693256280621246723115699292023474724487030818605786931107157528615738273938554895538943946990976269457687971376998582445895505030891904012630654465878511273558727943984450092158107869725864613589193801775868457648357371935206048777871198661298106935889130783835197266328503473486615788192254216704258712082118169912707439669302551599789982187524410676769074724206475681879769702510063615609936133759456734468464446523649724961633725455781294828888244161084619236679759854590718594173235300328507741529079050802981994625348451696656737784074308462829993697508030990658466144761284649020111580302716926513192962076691677652867804787845331219311521338613056045786851024565430595246200196013841382112841049280849971578840789520934651559148976242194510742042666344554540349107600844571749510471263169051873295947366154383512988732310549641191082468987338309040708095793648081389398731158006633913480045298212131503226482426257407927761641967940983943857967297533591780697015733216566073208495345262662700732724313428891078207583470992183735502762928819839612464547312136639950193316282518903074548795340211910300679079807630180937441187135360304382421482935706078893880158077363780149695142915106292708849647120040935386528370658548722965005059029161985742316174321260594597863375019363098426166389557306492530842612264257099088835629030743420444112068437971486789886666270483577077565326935705899705249007195324314481662165176103355688901316661345008235125466490073438823528176378248953650489558416253115607831220269413443724246002403392874058272856199940149030960750078323376125760734686967487500371831612618723266746306443474767628265710422137640479146500995656196836096208021929777869675113407044159856767162154348318732620217341971116418687226105094791389383564435108041764966199799208252358441065813088770630705991732300679506105820808250827407337315607281148001884641697261474094901864423026947777592079418963337285357583818543110342809581390437548517319578606853327833302472523677365371319078527194365600398564641070465891280384067484341702120395395661324222910927197156112390512012743089699317567841456754567914843245170187022531176713920000798543765089021196159239840273998595962585194793895708750509286876121624891948786608818651735243488407130093450325666653253286648797105203547059436575786776153205156434347030677510185179530524140401788858255774951252898200702368353872482511583027048862733297528021085281140485187941315418269569179279079218650660083201960603908055947189347050088341106603765287148880069415258991269657764444598113392542242588610612728841304391754970972691995630787949256273540938213423330026427078660680857974006036819138858144100797600384101380297798017883571522651776765278742008838075614356323291893240733924297239481783808296129020665972348074386130584163841686913766717773633996971116133840847191430089251238657580757858418883102787172189965159777473028356271456119004496061510028553123243198154965389485249460866689088519111295505901206083616451896087322439907100738704083147719093806682152488369056974354955325236663681480047839101088382470379677385532571414512492227432132480964538063369935573337175757197516422322528930669416623602317492380422497050184784468522197633885632959865396699591162772012738071280130149240235375771691573976708581250934642507578170123914188341636739652596432680884489956231667068339859240580656059798347054525981033138233447716492713520429337039464298403745156285348433138423759774192109706659328042870336136694412732793102218362864074976248224889733833956288906788949510849555828076675925108901842173972308522483452346254458025857117574379113836216483436997850342437259636232116554817974632552681718564291831850210934901945421120627857693859084115493618885939779253827075258562448365622458162461519584112759970596266521403248973715488819823482204254762440487998235031305012147285619626245799854034172732413444816203459770189900746030356239635674906348254072642543178031170085646235260242245107341655274641937455034959248661004728999882770985987432383352473096252280724079557200608522293609929424846252395298243654147003930681711324039155424500645490750267116117087359492856581642149514148536799662420988065461106058037561562246778624586391990348438034691049306403217523160375482477911953469464197495774727360170582695862451979076159895383059358403851321804373824310567267850322081399162901935532751396991563018829121617326772416636696808353561706926223133453262373024364939094759545130386866907946210748684563939412385910032759202631464703238278984707366848496055477823586349882966533310701395944219060315937863715962725152100282036098338337946649225252157633251124293873698316399123095382066509032466148578769921111673406435227336758026449975253969176006535996164712923674510818626924663335846942826581661477518870248511381826363539028971976335446512990674163712561086095033753701924239564269403905029100209654553273212368449497993380142045547140016175149831178267122705381906176578716487265116014262906339999631386383612579658344227226315656404447859496071659576236721631072824834175295100004617648077049339019706269234716798404859819000760626701541864591484829315659668598291016299620866999100045115074932755710164151768984758046581247176974571759812539930663674205712128161607515652884048401528750119747803246444787693680623602518373471807867158276611175691932777236190578961721621612429523476759191560633779822851766453625342370794757963045612785966240421960377113151286819956527303146695351437810822765357261862915174751320227980277851538592670753384556087971308935711598419491756626217085637782155086183425364609760973789087729815555865715881490450490413250812939427334423874976971057256020687988980403605228438862151953706359087676208355401825745871451511102220857178486758831772258445136447804060314176332547708490651232106079618671259550085755078236679833666561778060894694894542048404070426858819924084157515525456053905241018529250323510904734069091527722488304205157613630079167438928121684471359910001284713017088738907724559913110411906202468854157287003298512439152246684330299418129461075185886741538893056712674865510640730986860960461451182364574813560791886488098326777440249256287292180160672814372514981783429792903384584978613791753120612793571136036392310527038287154293195174096948510556028541681318524489102095104214125774207310686541794124156225275679468869542652976143497871413067142246647779923656553800168189422094584727952996534945828504515279298882158900756174115668209099000843653768499996136428828396673644014691542341848530715146194205909690279479210021812214313321228227831000562754116954059224462356292578900800321355035584346115571961141472398263764924771060357436059071556936312042727469534468577948865831149280711437925966943090966844686952258383796813091821903829956554843884334338099779307780175455269295474881797304008608529094975258508648000582718662507326132732552631470770626090396890304331476714950107541001517837240941871391358578719274111356710598707565722994934122632809382122440278259167643475286564011238329900114762900376607232775098330263054197547952036236756365796617252877144365628953436259379629380655202041057055343038581959428582127657590700646506211885956767344425800258618746618627033359593693452197119740751772087813979645423384049404870436740438626968614858374917069445369119475852364694630923195356953772651135474859810822273040417322358788717404787576520527525547543703476736043595306110060887973126830039774443158142782206570360785886169000466999566130333870025635201100861772798548554727257201239735449126277276322863307168270736349122931220848244438865133491562164634139857912506354005273250328660644804659176780739037978696086286147108309411513394387181274521451097451309135766953215694013166163843630248311885721319820156897726113927862299776080403021345130216313998443356583504704736252590815924656050352515079117583973950443118792271534592167804060723466842356406947624542558497499918307699193233952293197311175480015843537682080274889102279551019905395923956885947258257137203328456441812664373624563354424056224443237710324330793054215965809313766655572875665836153887006144318510061474738360561528342274961188622966817266808539048735450922739503974017435059684013437035999566354602536168892466642162463609375358941554385722701909240258695051803082948774968452836890337345059809218974950739089135815227203906934096221058211006138464113952685019950184004708510285717275689056874985443659529269234824315648712278951214890261199227624358820483522049820642632449158016381064377050416463671627773668362394307837165274859288086337056284346287109198311357193884687861715419631730491149434228739186270827134823757872792032993330135334278091882964935733542809370970176475755227152906328421695726394294506753202746549007237802126077831837109826061861623749227401329590153068513267221378828306050914747333534751862410992429650982685651987562284196367136703675244873935177207906723706293110570086345338175063544384389695941186616875381282479381521148409039156052381618463731941506312525365268757290313537146143053556386669742830658397818970405120238994162651509402461777205544591226767684323357297070831743871061752515472507647552512707227976862208522479166510314769422496426896729840159544097924630665647719348591890455470377265253880799621801365794040214092284851479448007725471949420285787579651069363011501448698949540934148878112399843129995468304064605033671798808846783653654482235901683264735726183647257162961342139735688884880774298578961613370066217036556849853526585887214544535023939043089778615511516462588293940223056636782611668950821738140951382733736158483216043328800100611781296309611241235995560147661328762874635965881212256000559843846949331267570984919217304020338707094169913453996880827108217387809989609214020486473597154787428544510244560096327939400602204006638083722242921328300785192227141864394297070051151943552902321796539027945423285797529412820943703499760657064004448271136914961815787620699778291601538092121802548636092774756374671799923175988062265205492332382764713524323986260906712789579000142075633480830571080749971494299747312630609558134753835936338031413544798817510596912688755224953057167500864928312646880340765390161094558350301263047562945008950009296835714914304948718327808637009707338462886630162886484914323253050173673868909276899635356323448259644847902443813423984858978955627541083382166366114005208608180084633343056484833127283983445989145602267955207396601025113249848814833709210056567343661801934846044468456522861083990898332698134258333210485653571489974321170745031454812056906796226634258742790440691074051018043946504167658448628434288112642210188738083669933787638342899911110942622561595540774550062812543234217855137935809852842515032118799564912618868653885608280401392191643318864159401900940343559767171221287495911770307141333115314522146101226243862803401419850800162376655376543429953358172073613483494864833268083050898250116354739009614255167202503778577881830635904090753695686189758815317986632542130881369388758161801990784760603551012540600214603148970477934446893309204608309738806297749285399138879738244869026329772632925693824796602191462362142415871648826392715758346414236210106506711037908998029918212090569926989543445683079513899515979266214027444771686723454108969410827817458348582959610427722328367510628675167152213123608352727990846045908050332569158627231536830265486447332309298204753969735788308343973270961388426293254446984236501203107553142774127888233510940189612009165359346378159530461127020415584619041522187683192283167793611060206822547379161333145104031250015796013727759058915536660746689323155828833073769314599236431091636202569061436574566375615055497561205008495949486306831395621679466890157821093574520492793514841277929403803737100243927462870433234572830172052967839722078777078570024394180284497950852257505515677497126518596040463306402879974010164903825155238623522581758958395140455180833837335955352697952938481042970515048854351439918448474030440483864218737132688536858396511099319009981842859693312882503700577256972101464066076148989469946447009875966868170596155795506561281419542203302291880292204980299278066994216021396411243004209812977331117463805664704061562724027597228095087637094109093322511337172751009881689043108296010174698741256407399174085503806177387414656791723193316968981542026904255039719356931560139929770718248347705608699142114505458468027889917307225554406204085129449539908175689454992954703702967489400450518985061852863602025175433510804168087173415328841693998036102246266297903666655064539472622310482275154559816465217464108391979848983010850491658413283226855258670705822129566973583797688400714127619135056523626382049945430857572710702759265564843852956982343359504074754930425446428928882103563518527740223362322168928004101095289554706663380945660749142488805287941055007783950591326168117298287470950701986243937405459407109689052099087773338081023695767950972450151897234756493915740677549274096625701568172467712373695385417847156931208933089634446924297701717301419621180568870224824480010669201510561705057468704032751013395359581319413707757446092696699750665666593499345273569347573534124249920107774203099780410605453758155092533967419749864708818549628882579583469523497087288479298519051355558223262223340407215007014123884121990574263885883497179895634293357368788180110141916944186602272718632413412893401378139915050138622132563875607248073457480438933347606813900911531856251532923807752434989482317944021929574091478728221525115811211595320460531165764468063693415305322926323522460686559289121622927047445338326746423761065681244786016850758996764487480423526706947741777728200742844626711442842691562012233844777692701610360308618446350588804216676204252933537391816803640481290852270175604141722289678168673440136528320894496478315714116716172651624598845773032593989781689360001969485269863502268695851613988638132810184425483728260432847832460045914288806817062855770009333647554188359836623652981751131730274037602699274999708136242746821747745918397400747706864755358376847827281167319097197076967488984653610144035985349717659678624545573668341395912734414748611547985068601746363306656508551458544120898448392868327825719763253672435873599110547070102096354758241109055807389104499357788429976486148177034615159497391689080891777040332094854021767043047673397161716005846580107444640468771328651505058734910782724719353134207831110735355271950016808944372715772259438518267256489860638115408304137224014675612981018600750119465789372804757515156785712037635371317160300735611785318388190740849703971652858259123878579401271374461120922664422838552638470019378787829085871708271590455173778103294662859577061729827347168290072827190167912613165795894739812046250065142122396047929459792874809594220249344617908830995450162612227990453858217930448931416771957732017855514188519323607284354220222262012909803559639405775945667557595505185515961579495027452611378945966890422551753667483290820390115999650757994116378664321091444667188821360364424720136060073438738129600827388446851965079678182572104499322794785368922654620614631502404052781824513964705860047647551558890952635328791032347426986958370816566316109429990597305175554824984801274196245516580647523673510432629666152312837185609079974544992300951141188265422151632680015697886854893903928699932412263437660769506020564214155221305674040199369044537261054131765019215893372619922989678767134560037171921758793235323323431934501570184010228473919426940696024848473637176900715252364979245733587204972192694560118666401059700700789475874756059317851616937403547645380103307100403812612681093894904670985383581741260840302443226721150968080830736585922614586111944215821729815720204104364597603512293203201762340780807780086884993990009008796555538158584604048079858822484329229588729541222227469245656953712533070924151685797816792593730901053212597487527797612633323719376469913503353443854433317423452040601351077327749094025161719894527542886815335386596856263569986768859002313493334525248465642722782287157141519533809431623454866719743568684520269498207454790175809923083378168690714635685446348769178860317748614717299660612298610674532815844537557548521560883716817704745499292370917033471834783231469307057660950472432165766069939446898049057448673096914632644637185049577180812926972260867518375541807041704132934704437443520638746151390605440210683908263352357302259397239571692538217771184989197460939870804374860871835608240824938710793491392933656490663795976249411724090814445457903252701447121138001920545878904133620096127336649968696844946062921431681898981330654684337612022604710903505346116872514930808427497634455339459428348644872772036010292895171814865415868979090865300226821323279732321114043057363575823305180876842488296271287836675622380312602926420820013038546105682654501610303333398682164603663796257454739326609152412985974828461076324909999441754557044982407306569921052772891178165569401940465195228018756334361318395579692507532913657194597690099795031919812866623416164597219357864946142494797969613399605284827494198864340499880400354973518432860973415780445120955276075375954673765710401351486124766519080221992321666564293402150582282045650081656848517310156263234632295352182495227738508200964416862010684157289343531276255729427226063233468768192210479148918780437435828553613943362728606095515709121618611301195302754115345028850879854624651757560986778409136313552071039025050105448154503782303481953415348341417708372164569853218931078355121061201568882249103809366823584728935581216288508878652486813150796030198718652350149002222240137898156567501265444023484407005268300441452668629183900394609569809575373872796029727329410366569678867930599100889849328019720058104546796757336962268702091232586201005401018021515290197152204929711942048324451322313232704878728647086213530653761495146316254929407191636766361021462161911775856163363356412198788937928360276115749635387230266178773730453759136197556497104825262236176697619122722973506531189047962711339310615067323837166210700126029219737089483879348353455026998888801432973210978990851261843771098049573820408215867389659624431499507672452170661459265501429723075337508927670250397819306899442699324144355979611917777032230187390137368529078474260625905741797531801691107060805295799761396695461991620210212551925211389138927173970135672777772073189201814724943686970294150275750019284456416766263194869967929865916720901596041606102891103170894406884775254653040141063345186478028548669775491472393990034324206488058180625713094275843132613994946306049845884571196210392262599533442709433315767359741016641724899721379836894688150049402300289661748629928515728575013187308857716399375565068381993845214341186764175851457341243217769227966320700141873263884581457156680464203350407310528891508781942100167749567847359274409307822155178166641237428361504387536524369797081781104806863787953564813541128203191234530214766734629545892972358195809168087193478392514558239503579839459809706495199723896875331650452000125641748491165286554113731384943393248506298412448648585588776677248717582019357194188644171346261649632713436522779665759423046554498830032883498549654811917195537605371801280614379541817744321198479695717355031858671419502043645025960585920285847624155965542796225262019562540055982369756487333072048626502203937477794750518783315289434627854214041072469635176172043341067153321691772478352609830118114267960973168437282525344303375331303878475550495942141935868709324627028464448716575198217802476738777631447970358293864226680294504543625181834240849957271238571464565721584732292107026131389872812081823987420843492663119348956506026972922500558726093781619747139722021028028956080910615296821551226651317006668318798321689824518305782175698806178387733583706098185928636583062377763474789762647650971136104277640523364655845631276015817399305019339159885417508487586543829371970699564646975718549155792876261703078800470276408438714332719551935509434663262303120929859107823797109136583901618295058265620127722427592722635226817112402837699999580366430888903332267613228383925277368840070443213944368027510478446994002014005453370518221716973470943812168502586364242900643129378263028802378771582351084371006726415925978590484252496758610949811206944288847097750760119232093997995987642501216820329116248345961214520455601182735951863236338565546839220268013991602379681671479169113261763726923958657415045106537180296422198153028340236709751719798950773899998359335968490857156968787882038610443949067589907923912565321969652084856390481430667966371685273037589272138692470371914320446774458677909030304665914458519360790111840027511404114453454783016970291559280123795121368351874837778353896119660963797105513667241479776383364688055469883354008576379138828087774956178756046992167285790266108970521175013798850198679647348092461557090345820535597964841620151650813561216198770723425540254147831476845266923226838138791908625245196341173745678439306226128159225515251838560019436604105779441207220309750780355288105209422311758745162363239818425888963325351729897993718122601374609419049494633249072315828925999848226830813522488420121900796750256148765295667933332590763508559827287803753920794755468180580700810523121319716068430511072230381629412065408038774943121280166564044488365269416451716064616743248361414392120631903442505341640904355167522528462751627613022982142925356737459893949351791654366829741842924429403576177255887702952842977556179795351693172218607941860297378801586060905970841623265705333787480768299338547887057004717742163514235449669187725770109973218943677409578317278310282693438174093466199972458467078861357620776832833278458949607304729584484334743738207873224479325032594532041066850111048914315032238871371519693819663474747149623929270231083635484514484890500945570247085023672341635952255941238749258320101000529882855316669959919644487537550960769974615545780781189156217069716227774495510807573956186458406340730933729033376377042505701438671791719809588469325530279521438306836593617996520651245774089343194758563876231915193813817702165422106618364596635544086092819730074703156101816398379400688593806644181663277408337982258783967523043729667296117097754289707223615395166323561696659336027985646605465579801490432049445454585915668340648037386296536779738540932747193443984804453792758064630799148320318516628902381118859809874671551121770005984310803679474493929640109727943257315090148965799608965016590676185203448536200515645642155697800720356526511176170389448785030061392326628700089454363969226152756579999835467713700127645482240672426430118085780038440848912867242584127192080573440287704681834203458697361777330598193537601569124884688748935153017185512096619084546920996573859891290432768433107028398950139005906399028696543101100751887407616948454888875234641878506045895600402698179418082123257242669641770080317434143803247551119478804101756228409627853564243576224495096863957114528705174250348577843680937850435951468013128962963504694385078125396195734369056729033891203767285291816203640607106744227504170101950239521221780389466347161410023627750716214597654932578955850999131389765499994198542460143398994025773543577517018746555977634006240158870692922986461354552060313612665499838983777127478631777093388822452336325362230396805974967095687673748455509447722419417162868821424995947513935096634008208522290556388597091350475647515855919316645564325832890081556328192410247098864975582016189183927475056197730833439987122233889998547982486754081702694121369944868734379171549613628961961981892850542464086636565561471593446753734378434897375271963636600357267457650045591724275286117401124685604224984682018260530044233132702400101024693241752383006521072257532479602481711433915913611495548635353205757294188013007962877076691908591341387462135356133281298550305194115071169853796496783725418941770154982438972791513795216935034406159654706647918510504553584168814270438073793628366730412047108343411244919096243578698694212606592430579248332697580040881204376173584785936319046406665800004238780970110157026601171717456943082541872073543831620220682265682568173259805286641346469725693034569899226552391606317343771119470155505982844790905397821314615261001539332897807907512353849581770447565198817837787114469272867161339238601517327189045398408948222778835050135288112646402981913566097207792774556567547915099794089951585706675598085845217394635575065976495604088205653627823628963392298276045284049304989455116057574906922888491232462176225537077527203033573896400836643115106544744500463782064865518505471688027912389592606082658702831439225547783127807411673119121948026982020477531390917841772344881054252243605726006501986227354014252282327878419727042368004472459840660145105284715101461125291214557734777237412584996988473703028980376238713104253192978258482743458148188214566357055410906057547949875719882979653137493777584472892031837331885908590585503784548767706109181759642460219770373509694659506302404815076460905701723740906721581470746545187514926810574033244342051289917837843738987088845225313696743931022347511674194122203948437412039588526632807402141626412376261123874095342966462774745914359178237165834638101066931394565304029597638355002598659286138268046451786780427882172871610664103611818965221986636264112871897692862197822068350544034674550857241401458747267226957324054162788052350500560520120900392693281722341093356493713826635075153401151491061664565008931131424185481545676926249431421826413381158042610716423559275960153219156162750007118833386966634052921589278332820410648101715534440639914948738338916711738050315877796178152315040624187096839103380195067895986069629834848543516305088259442020638700428436696513702067502857074060363601810003129151748278372514233126789388068849626710384022028019393236537299623153882012781201797338790022279280130131390106305375825545694739547178503062145588262907858354267679197143647651111900870914095593553842354985864475187866205969490021816844012246871309549620716923420781784142727668089982240609760436455463615881968834077095517601529154314032899624573556516070506901553592958543836020729428461714152656381196019546802236842074697985446453379539954784917472030702522659671034773030885401942980639065487621704175178194241272612403636600294834782902710981446877648632170343085091634561430696216590194161265485957477879662331487700683451858721382469342941319279135121316398921208524582532298254443094949965386445573774850846272631678009607842308800935704965386384067312993618095569875274534621802215085567594106095801272963108922367151888560199699733333143711319650588787033263309181419723615629399319168060535799359865684454224166407026095031603024285287525433644346811384663466779349291826895441625695466919695859090312887585375660513124909306793793640026576238451474589860069797935163414941200724572817151904361699125242472520581248320666062281839872052342532500922333465072651085549197826286092343637549610361291335738725106729013886900309694824215438012943295947720496343983316410111030782902846606476784008694356022737811715199065441444348246845080622190920602515890000482465803829533740060553339107380779323715797905893376509365660520119768627330571201900522785448928509329312854028033584370100457881581190703445683319656261344658233606165876712744856595625316832616508511421871939596162744084115068221524509142111207354708675305232043720043448910719342527041123456834229189203198155272665981873950556905776484178560929341953443909542901409975642822034865269500890824531529597256661856698741549799344530164951582943575543945390998940934645533206029463644086964261028238867870601668390979094252258694378899756454926431443614769692838713353417261607014754796942232236113385738136195632869950533263062649756025484096216920359992709927772822096267829106851308069506978256892587111060694978277691366575829910985232816459069452917759907808969810101388562150022671727714636594052708157711855141560055033235994737947797342886037634995489473148987106591212088997232879019656682162533483829695452257753506070320611218195824270158770118287534580651021944436929873049718796154277852119619151264468313249011925637747708558526730380868876665988566342711826217688033960426515228058223443858794196754560790435988613381803323581104634280455682128839035024169148569657592338506144740200306258500546544288865454601685447820276220662798044660661238272503686768584226429665396072102707780453895904273059751521958826124823873918514580823981884433583256266333007686410636689026152192807518931481668478959207471224393787528344603269299223795812185551858839607053711052943733485669904861610064886392018577592727459017554033977174514104134746916887941781851569913193374757219255881110755111472538652668408535563488712020236664674052283714163237883754496829156591801026055967113569876376444940122676236537196257323740502954490639131338014145829915092564832882624545178051598916522496605599797436014711606983768009376524483510300487340884332467683430074713906286097799175520813757714368780678391443717536286979173393154563783541147868473592599036028066036191687384015936629884697661403318878532521580925122014159543461333618788367948328481333661858508710738732261888448757876829626754119770961394191026331302514310415457695738847770162717832775905505016969676337375535898009897219327425766610533320298023232726097812573766100493661134228798087421811626497451348318794350685613526259898104477004078278532300692364479324503481136950271193500482017720321327009484226772154719040001272106115581507878991113435441834685161935961509082728568582831432963566902627998794790080440471419851138039738894470884270022520190604980702515365892080050112776658726146346169919162439876105410221352875833028912136516042604675137964262708130914717854541950975240360445070045702155287450989248519263933142957638037434814937808848197372550891773069183427051001451718607426304259527219943426738385464133432792135196291770513674980932316531939186660082773892015590248707565401280587528102662853992002190437566397804829589177468555230577244197512526268078400715535918195496843716906393690596948815757220885322672375732613729769873134061827407079603495298047765439695156864691913841261669938850950396753381156536604640888003952317530601687485843760736712507316373742781907170414344796128102218164588087334004494339414300812784068587209701054610747213877399089453610789756981352153694266200130968147234553839048880621427035822417194195463135680355697876082321299956710838052735678016870772694900777994262251053052841500077843757555795454658951001530441422077724489617994008570334254589845553184829409412623312385831990936497389173590518019207294594745782943875445937607217809416500975672585025745574861823868760413762732311150575462938594459085247303613398550582603040910319955098200118744758578859439617138023111608626712484273003761436105583519572612192019008574306031905533593419288773779390704466714289335624153588610294248652744417949196755437055199309263905806949703586043091124149575196427235617718170335259212153246605529284337706560183061765813700136795715393503242943640897158192360152355206735415884020105028119984499678631148917858021619404009375551478633412401975370294782301659039803114690075629752862018195962274250432602390296626879174260705970585375880921168447418521920643718951005566132679505986016655938174898661480485815919024571114472041052427553054269758453358955269204037465761418757592977682522927092819374501035437092614468514681851388785165322764026128978192152303266445827389800544379370138563016371741570477635299445020610669730787809841188633281773645762403214126565506907467374755558203433448952042068537776277955289215715684508237832556780915484151381073721818809292513008279699011528125365734380009433227742981496550105368303845303076795337938343259536836317196387359999230214544098128138442871961060769627254154269507287698990377009446141011212605833290434173991737221121338825395741583207206866577455915775530737385843350107435772254818254494612161032499085759335138099447133579101845360579014894721031699282536886522437799482612049310155802530425689279962191648629917581448602922815923679280671142386143671640285177219000639810841528058131142148149040595497923958151275685847268850243619332935016783541604204768903887858075992406594917178647649774741230761340673769812161531977542846353193708124764551556937136811009647183924531418473139757179401179406897169229986057802566151291816449249399254628630863382987723600210328234643335974514863085317993975806184544641873154106047665386673067060245129185027011843658597104874059107412387156108340890150597224503315274214851558612151043720234853285393222457861988293503306747651034604038386402394569116919175464934068369554789084117104913390651423457022483727975623282710261200459859367587771077270015578533325349423426820849984755040659549700057867326136116582734540573098882831203840680590173481276062479541202355619533381252159155750374025408099767272087260764195803285585365641395341270935825526549079992284776618126041163848050337513225456475822113613854146873007476433605000756069333038010099264230336396914669642137363936419083502229268559258835584537879392481427954549307809951513188985951815020458649147863102195040245826912718076218179623362513374992563209864162537776685126354710066102162787097036012528069878850173463566892587878650293147794489973168581461598285550012935396985498723136786060411341502483356159677644905766136514204315189877633749335567521035620978738735983135341866127553587628185103891237118844342168437097102588716664975084596997666404653826902582849812504303400103845806390314479856883887160522099570561407007304346237313675111457491249756740554542062191136102450616902349846929002791846558109106133714627880665400202520587636507925896654651384109343084474245034738343825360605724352447979589914461523039938664430292487893043037197788215194120456646382284339182596537314345227485673625042946241887423202602663370708555888968332796477976929721835712435622340403055037555349832293463021625516643115371639094888049879391000262517919042538045071671217000561879556722392481056188379583144631586182853710654186885825462526265757918946945783854406739378010441681093694980716882584447551706130045229632725431468517055511967883632321551898290530484057358368553897330905166298437148875209959894810988067224026123376173742995023260965699525430144316944635611858044157039785885060110762526333119906404033772116854289217279926434515724034758640737589053128109880221555430309730920073586579756866891520584138839977631982396857309956068477235388863236048853392959964493478781254262340614262450855759664899304492921183798811675548397052657401426688780174124918296767883049913989024965891573656329877473181755842858557514380820685591517328170919253524651090205237948851892546184330531629651947044692730052564168214572379786152532290216164926584471652693436098952304160977150992035283528531940183831708052712344535712442142658025908714449745857513057696719301801300115208957350075285265690230352010886462014422244496054173173097976264049951379835159760407538312414287420205254930265073924724768786063144593626825255137704963248689216056628793503189125337430921753768509288797657784999700414593974410564458988129256412706123064187736577637760988144632761922725240680482361596276201197865969918763111733010577905078455814698102331858865608568489327110103025148769016552988255068434675841108179368499933025542011582119586832458078996551755691869286965441154255863954677866826089257913161494306338646630398674171031258553930927904201748642933025239277676339229231590100321061600023258196622487813892310031735339889431899623846450146905991645777656279989137212073641725228983470240311894596064874184877039546239178930991288562169263228486581406465971952686247371696498807468820734914628878427251655310870739664037090947716303083223331953787499942055574143082032017463253267356658803604756213973880078807432368434474056617928607431674995752909266033106825799851554355662977906203998106262387037046216997545312612017355808093155406629538084382900026024327223627578338337650799317989125745218872213966961188896634100881888497839107474314966256832376994477756216655117056646886034231845605742152176722507754708940488938885686497373426934459384498194570929078414623315010683093831581104010574890779696932035434595671363724603208197561166481725176577355793536472752035644896206497410120927537817643893166865966256794432934414831163902527111793878626746401629319914898977690078691857083752883544620936788036458703289896883302552437231469255947032626233755322739450481534483312525039030423403468358106180117104708480390284533069665990423132237985051932843203548285430552062735855331235566406635365989190102991743274471407526593893726113137918319775804818827553127639288864317644937386624008089851866013742007893030343021429706122851668329693639328353774170334009091282739687451151555832607648605621190732120918310418087451212610589347540605790548342353990306094749709301135807494938094665984640359278056136073990303655246449878267761791209124032060400735671420387370793554104759910055033474072376360741709613444839647454948805136762735830607902342470861832742186830606920587642103878972017202982907345672584422836570185226618077736176215748952581793775571186841709821998390837952151462481977780853989031776636572826011449761125435040849832641956960098587584048808673041257221335296047740413047798914037824145834196232199295409018456492821511709431589258557081751501624971743246191308774804424555915713091977811407230036013197386238546991681627897507085558830486298950165719702392849100967492765330909630569230062864138446308494435928082881156188519859800092450496624306454284106221603605943772722273017577635927539177335344388511635092640074800417165716612447896120683146520699911639701129982555868549082314433608695152163883762054454536862530546214714756478380763394931674057808841855672125295448239460595437599473726573979988976794512080401557797829869367632725451256163418107308856145187891660261275345226680182223278426360432681994266503165185946756386091899725000618310564306198708976318595341231263178417850398195377488646633131407805021441324722222797656696359288872833202651409845009429895691958720066236825505836604884529236875117084815763644287377934468525444505096416350159363829579074712124328862652326578461587136168525576155679939793339976257272384947371001511170644251833470340844675060987667053796583753382317950483519092664089881487320087664736202195854111158463920633799275223779033336286137931458832208965785278274823464148002566279384287661151371150585801397314261083473514117158267311927229679242324367473386124900067467404242559882920542308998551176856171916413982112842365129847606776275144991822931220853050224997856708205965998689058829720339241142693423076268911888792589824837480248490470390098087324309462621929708166151981822261945313712603060357131931058901270083688708057535674909218050402893909712199593587312281909814587265075124454958386072914498418050814844484076845311233516036272915267612555739717899704409793208903129708032969505854841379518213527012841841957223914586631196145810546268000398072819141249826984081204697535770304183428740364079769290837289095463081019035964635836495994431628651339359754951536224222936285126623349164719873525678133406653242747442847952880008274640229663352333071362163070591060386785777384714880893314031689245962645484847324581552566604495235728621049132726694436137510405971741170163279339310567789506840960480172496755931437736061150730765764620302670390937018934203146253349014135759223974225890326204228262006039539550799007896923700612582564926304576783176438829312158148199435346340417421029508793640418155948729450757135710771362881840448740235378181123915371285995484021192503967719099481027198950296893839461292158151762235029442830677369332837678807963531513725292101981968263904513108869073517749410447631844319632372806657693250992586113747089982139697110915082730886149041791552169489418530160141471419591092905419968125484393106217483605207677715535054762665515515786557404280140960220752209550017695377789950362972848834893213367563387646592938632039376391435072524855194818096353418671934469768614119697115174126529499805968023554784616231120877302226510398649238183281500948380482385542574459323322363423952028005686631331924588602400320290028946550184779165030443519627544210101512368667945518637821467470198331246961095901653987577150014991624277452618185741677261365230972956208648597144620441704177748397420404463995282377864998830948561781127743409216864307682260592451604120516233502401358071344656228850271790707448404790269465495846337482018451905041432319183462249719134468102662251673652992516694503369628291838797683520392367843681697532270263672146681115678391921405929251894212107368516526187334178484499920720644073733635655599401735802923739590824621739641969801973044541017232738517232338956414798955747555149161713678080253938753748019239388786149624635285805977695627300435025961593942855479672001701981549339300976505061706493609896316322284091222519621581812777131322305449789552040393085354166864582627779691578251892463178013014047101193526781564965436419504757492579470941623374934634696691722531296200395199674054000267845296735025678573373674064980266579101924946811627434418882290622525742353277104371640531528772074788668263433719896923481164405998467495042164198786679324111054495695018868327259183943978738134171679256455730397793246487958604398829592445870342421190749151659310401524882408165879258867575182963750620765478209735232111937695864360765382985091094945041085888560922241784820295383808236196198707908074812069277154190957529204620435078857514991546386091697251138011539836152361810283333278227221730058089540061246662720416855301302756915769679496794656581726648897426759342792288133772204498910789000033763303120764373185756525593981889469743028345746826475613620215648119446856375934322096259037108346628595765004035339478892298909911591091495911220661403551778736195958603804798787114057396131969967700867575185752346088510381416486940331019561342939229479936923802396970989989825625714900221748653638204701211254920052812187247379827473725854047078737224231700238390544217887223990426526654572494673035289989371347501737431102432737121775487516419706876952789678150424489765374853634847972628514627153436662234759774202668672787753597701556251331758090908440249669120281961453792984909617683805149418057509624671575552349013723697802543151906683862604791757214007186666964039382398255944569434051364704939844222902346903915144614963335572856096408726467820453585292784741724144943595293357219610439014930910645034642696710784634534095582928033696165890792199089887291650175103236767485214601168078488157151216398340159227629035971670476760161341419280876373716898078728018944338235590597484578700424773958321665186237134070276643969546051038746759458080502946048905668645851288727360364610553684123927792750512293164065364282410404964651255973769892402134967217030080763670869443708419662546200192702660138813429915638105850978855163882375028884885718582300501542118761057420041124862813425113462021247232443003613206359353591852670471256267802089857033201713676174869270275230429784694868040106344567079774557933442045206799366497091265824661076324637184941514991306630341405638172004088832805222241879593980198946803481256396408703620867661746895149361774908848591811581871970853515077148937327837289313504999798684980934203431499624464523817969663259616510535940506996071058164419095970851586374854504778246589852885472196793119435154980790128052828086583907396201077214570101137702578841364862687629490505386683663377593392469471941798307902741311055583723328967167939858655749552706210864172571572172922649897534154483232968573643862835578670044696274184674685676011081282144458615600517151148785850407542591868003226212075926437149147633778407337446195187698973762605901345717581230354871045923940445091681302716381740458459821980483085659439482685116830934871653659949841425945073224983743003374804540935451183123485668424001452887178426824834398258482989420603910918573445281413410789104326898284405791698746265712049514739980536287119160153903031324947542434627442189945300533325549345878068128356361515950123687573225808946382588237100050635842505461885855001216692470720977217722342074143638342128026222029182239269180303994916884236449800222216142309533116426353910163069625830145974194927214769482342620492374204414188566779860550127199395265892109320833028100133287522602564132435995746946232203062502660161963374004069973820774071201148626954158300578077690317343926184724980081444206983040002162870401973577668833931710379709501146598675241215067493390850481816483759601590399797107944802962645165253976805273556207913404156937364341548146923881385361503633144024985787014654780486175457122838142109081205735033535131725736986047234017293571301278776530391262103198042951562356881232638044349623065296141394302791611660384934189927052652072550717596411590233960292907287738318442140763129942155368716657866097749495217122680711318033595849919336600249422829650271688754127645694987052235455732162944767002312649607101151203588252587829267945257075887120872075131568809692134743783888963168565985140980756572429943390658679047142364785227098931226363351834398949312154550105900721375024240532187277320044438121872895482465819808340363109168724775362138405965573365738417046016500716656131848855152115264404134637775010475706312725933637069254004053683637998700445839213967138084107775386098418121227046613967862888767188305540300970416367959105925485523455046510523025974787269355987145582844751878307401095257823371675847974926042948531709517184027981096315238854413186398706940299182774000386405681749469784125011987590077833695127932226456102958768480337099365437552848899071611711975920428889623492824538780468868178205059337126278485493784238867061868988647120330132744455855732435053344348150783162808622014487567348943588911082683496329769577982244948195685090840682051277945629725464601841571242194826628181143797786607960869604254896033845322326827068504951763229968891751070395170538757422912020332394870182852814290883515532642534549202752551454563318598515747230232971201126671202557933023303581259774839034628498278346243217230728737288027224821202888965368467145406991943557255495630535589695828614724410018409305266155904385369431186645616929566358133691997216431823104734700212134797024547387614599699286808676299596909017838038004908485441718306062845922144518322568995697352390849339354397060063813934472133857978662361265446930976137313743537109872374724518636291384394410223614834576358896658757488924918250382599594601438817592102116276637441953190662158435681742683640883471217935072571730988661541024106688668576898583827696868850492938397226895705243970219588667237456896272918083437482065477128466526406284297685192407695599837384452876674130917010654935523958603845039435033583368559741282641278550037498268037004525381589562450577830513840832010898778139668686290126925221310966017344177991864347107676207894053613118774029460965681088660990855619010164134574138287892082179577783919457327010572280681528044212512156859196805850342965544378289305676638840805734812772656794113753396681573024236596383308770845390034336653366792361478950657258146974071049590784767506937116860724886615690588060678848279938139248053052951554782085961586190329714423593342053990325299829396062501433069159825272005850853065050825866901107734545133241156408214422516543156783681789081171574731516941345389868108227459411658799247271553687836484704502698981466169811280496886423513449526864159721187574181986595097475782376543351425034110871809396614729905397437356631988664169410960295696976089308875838219496065165705664321356096618204966192200046105735993799670379561036809566079922966757316162339616106285934223144926779778617599388844820225174693779144030954775079779104652729992227035679211674884827680130960409159237596202604405182056606189331800113220595250421565878505746602429189329824023088970956740609304163529209039682118811441009637052425238978803595589677982367100930691840532238359873596265115474234345310211117734281551297994682164605630260974369360361233523814016703560000819824932280630163979130049897335211804386741995718274337022152475205926927053176507846544082714823725561764588667974862424946361491474008188547240181491479856149724506749399910600853786652738137315896144659303738032658894862339503879326213200068338425375341231220610908195782369772977342474243714414406790678037095516219681418681161431651825978867528626680321052186148618741302673497123856590284342634145164976629972706473823867732042341841544433051555058249788371195279160892762066399046652901325427303835870965495122900994262262137088318911759472720314829497506552924343176255915739641883030260125766958181466919507847698017589453483594744028730558594167894904763513928357377693107380319035690661923501022031950013379579009499505196672562506212116027477912821975019307392400013278490395279814534467753302920843810579296769989445505336623396446826690682787529710893523777887074839797654417642288784485853076116943295833572736594170554534627946218268987144683529906613514974203212524377425010617437300602146947496187340864323537268197775027177233137352818790857292136872045929126575502762478573273848912638216684909167272039454050350852952846054191638700527152661573623656597610364614905451816946891379891827526546930274967325992240194671385282991137560489600791787249110676382100771323650797844114573399755040701043860308238942909540150695732177262210809340129516309625303548357988231797785544830859506779091535522129944273294464309448084441553453257250049537541431626713388718516404005986829860571978605306179942321070511980773766774120177713159182601078929106223291303450236797041978064317797393699069220900874769621542136340542349848908092802088262391544148760290848632559490057696476162727177707665374659589098611038185420331020721402178009628166266116747281605987736991077553271391890855300362723068522598738873110772160737811513910906843317429032713522986001718424922302746803358186055487736159431785675429087753130789702353584395888152126428849611714637680172682336233214762282045767550562815058719284913149545148289393464948598877038528613214834822025049166468106741365516978518671961026916080504601850150120039176159673486834641246222572554375324581209642567056835850957869726530893523362125574629455587782266706116005863482400835143050547616640767355468098581020793540117114343044054879469071773205733142546430454627486613208513844894486444635133134621303874552113391373040528103363031887519807999211176455140261952244615540916101025134445315330047945766248263387437808604838847319545145076162309944754179399776413664564002794297791205883934357827214049806982575296255033881571794219623545587200988181820722731628241478829565543696911702000357516525901983047500771768122439094666952090892666682397469879904711725496960513211399484409005530039651101291380114549358230205520568315676174612893499456502917351293285638635909370517570647526365571127678401716186837564185019879929686448057504767083440689178309347085352423840131862924235067516117610078819479168969648629833993565921825599150171759325775013055071680161433187344137044322049311098114950678052135997249554330090613027762204234959070671863542847701716297830742914603002462541936545931380010432123900923073472462839993987877858164792008690410007740875487563945886383165168092895283352344324355274401771531834537818553624153906296692385946684587996829544814811789293456223125017717328006188780763880458974467010792209466550762004971006569907148011563511196937729094534192112939210853367156713998732461674383721515562574907064582120999866730172261278731630698913858966398981983220841640915349234676872985210408833141020525621960131953977560095412155764689927502933028668565331314564215504287509578742952792918352966953411601236883891773851267469704361198689464224112484341718063244713504060824975759519937033445493238193339791704189632659635715159538919977644533749428432276391447763330208732861305956824677224323287931849181318666372005912694292212570590818946813999307620946959296628170921058405810136097548067384164711171798443612666285014248972278396345866210959418152352098178417462155105499058699127649916727243116539509931959361540077921550316270105086350896011097069286413089382500393322877718281571172008945062923527030822976196884121384907806944812947545016374463526362991417955234676517831853884589564932765877603758241886672838441841950672828822683781507109619324378315688768927880421847105828254436422716445891407409294670414896829271657087150001135992947394470848577041901168311133181175057395330689653642064473417766222605981199563498062617107396981967765965444298047879493450863513812103492088236358623573442947196185097193601268412460464521635173829820497206070199889415287751602113852859263856378635005039859049610392215247967496077320001096251049172802385399330796001895852530892162146995027879435008713102142180289991684384937405002275716040690790377842771588001173473320615387325618912347856848368194762162655587772480394044883213023330038057431842069689173178963250652734688093939211060534640596785821547697011669763131898321339526694287799598062971133283886544649764389771164138713279671772252032078466386160450300595781526612898495725038531795606042876634314498500390230989848864280245126719128257769730575547920788704902105435624986248934477596420610812163418953701937614215587019617171003611323995987801647334753841635745002118550083830396390942666328973788837569539272761799919576632124144674799737804526400248366537774289916826226569945666216893659559292584905488474977404930367051243926366118619720710558139663641254946295137972094944775861410412800138575107374292971865462316827508517927042945679327911393777526425424980170366965449738613752439372704958959566399740352774213302108477452718672568781004240358689231050268632262542666765486488836926567852969266020121895397102509851727314552513585807313702607979705325650693620732460435434383677801746693940653105861132781605932521231372043795554433659299766345288737224724728836263877840083906492929280519489448273021258114896946473496418702767590976050717925852132526306004060749248862610886295500248848681211085925756845242119538120191417675014598118459927177533889739807484944570512223906143766637099028473353727550496968887065306162363377046873175570837991450923371812057116138605012032890432150528371430230915034206147766702292075853496207997338025477800796590047684646780869263671738416961183260902156409205657811011063004971204199563726931829605667617665984445460298679443173940392299235127163245812547214581830012146018754773979854439768105537925440054756125744657403944270092480183134488843744985291718063818412214545658662335245201693611482844996288635226018164366819614777722113718777499742338446550548466847761300856805119628321197890967438207510614253643571145165621103236711849365223028947476867966829391811403875553182640859525469344327983723806207880532451500844503853961479363106438219375525508435665427723070427195512320021586149087398770188395250209430486134782815023685894798272114887557077314017567151129952352336563495960377117108843078575482898853878076052415082874467348976915450099086939586883220233299588506386988330059812914357322321493145069549106934266369090523419928151778862354958372284133918925160400528048942320259152821692310486240199032634859517397823694298173075888349322749891360717507396506873264916341099468677821363419674040069289696409693203204644813590400956332579113658301820559127308015156966713963909605698858815316389042384135550993253489294012177291723473989230561114894391754177021251651914485788863166206467871359227996065406646276874259554821889896119826900520453314471436995164151584739461538171997403525143646196223622233463725810536471520057994675579817235403597223788844195199759092855707093490514468746399509605519064213953127665011956698234171507439382233443793042053154998384408482300621803533521757107361974973708699232959653319583515285743603792676070972743696814570022336279248774384866429888938842761867691021851841227149443479499630656933492761624451016451104504414363814497543690723161255581769207859619269004566256217978615233223624220180340406166807978715712720386570365057188915748700751508596452795589637674124416155009034011793626768776057915688015925152541537757532922821234890499256030761963709385234043699405508497212638860457701983889705200457661554896944526394221059382065452069051553440255426330924436215767625859407680469488372995353414259866086747644556900817936933785768470811214645622210376866929873416659060806993291088596699681794206142810304881184289300711932402268783788919344229192139213475640834259784476698510521598433140406193333446247021082718644507401354830233602683479051092116347870141911117460419389190194903222864818450017120612495539634334335716041070511663159773406682511006558907827383387529285115190655767830267525270034565464966171791381964528258047393793625404089299947428075701594587048293667841096076905174138142070490376016356177349188541884086688182284883492305179305595422425653204514397562915350993249977862549799481886557077616363966095552300109045338091129617004624482734571225329769178082880006679944406176776349735600973645782074886560166302008955627951917483609827405438488651080530106845891328926313035862802853833565769243600317938372660023933841744244890901921924267344732945075134724437554869062745535777438894127181934160894158470842736359273740631916751393510388701282289573085222836151655601981781685336351749707837403328304608606837715773577353432258178718528194841018140325582100504419701623547691262020275647148143239846982035096689463531741985373555120286953184709494212253645740426716574982951956846517417293958770572767253998829575222728997660428755353341280394428624973251931783133174419194910960249048021636007486697339004886246414307790562847284658463651580124867623122767494397012394110642391966464531086904866150070576482014553291763931552630700239479684496197853282507954844098347363466256032215973231541014102512459292830057036192701088032297880764015281645206509545973062373591818104275758145124873875449242516053177023023586650242616983368607543332476344981024037755158296663334550988061050088935528704950721705175563822051420627303567620928073741924990660377974262251233654727367471086382394827167578449085580521853654018039016254096432714823106501511164728742350346113806836549222217974176932800500691920097492475189322359113313537251897565546145933178379462208906248889176467257065448224006482551451324815198529845433527572127314668309772989148784193771540415524410586526051224714893294931071548202520574151099141502912953015019634191608080609555916787646410426813904445688558000560509451734774062285825768149962055096977113085067642394562206117682187205877959556509883722341990805985757219172753341253621048805918178720095729122634413985703258283076553849497838996689739350305871143147726683484677509413673444295150500193066985593795382472719541440823358822570724775030429257180768091708073750967862770592455199921904358616604056589977350205628867631745005796139692047475897572650998108141738178415930436228437038488224117595120801120890740897803754530870097726179240118318472014704148449534717434432747569809521334733182478761864732209925723363187863058543631492510478537278878850029626086695681070908168492559674509582462647299173119236705299661855153042961923776323123608176303277135549558391583322645373988940658923220670248430261605006563776884692772795294160134588800064687844429097056281416071516186698963062233241355441880893172584144325104304027438070150097706361730887622160511012914119189218000297703731410745878101192879320848522901923499339107183776403180834933362536223204200482946909434652184361833518622993248917400313431348994724574590865802368927388558736903730658158175307168232168359985298935925804460494293617700146496220173067682787552288574949480367239941635712656490579374463471955128814279413913784360052914118354250323760708960095271689359323096604367327412128466696474907889919115547334740191642581162911875351767691805879454478868373943726405662666573922294087422769940244344446099397739364251554728887161797164871451282645154755058494670149043546322599190497023007064327103173383626575413789354373773821664656273668360409767324993527843857988732273772909210617438075171819027859977553492874959988674903996751177695939843952786097780775328973193059181567028516091408563939924602188124879311569427386564899896375824728707471325358867989920642842798876353603228138201500493624112237287388137891024824296477743661312890325245712802429787153500453533153511082663308911056074979373655763497254875913221062571020457237106210054743246713866493712277752644856990189321701283706042987456360050759398361112653347294060708751009422622874217136329389180183105597318883952757401760340509173505273333014489880766713433033584345754226148226418307666034150934214319557939445941070169910737044888163139328211597029555949665523368590027047136263063400107579459671334563997984999481280479058205959591439736685929001819104681146440916715726451659054065000248090465791537850928281918275557681130799613379721429856207321201493431948845951687163384279784791614627033698698223325240036449382228190501571258221449927739464703265603874760873580593409286933272113628639154165239334291361905344366984150685476273259996763860142030284878688541389511644241774303863573327076905446505494438673776041666593754770522606657969671495507699956698312085720893865902007640317323059049522533233868479031559756540916081324025694404582801140072899634293105114747861114310589294430438459266565008660880830667774329240615934940524352388935528904065082733887390893753164101555718802660637895366601352735641403798816619083721724196959312800579940363248882651100122869109076413296678144244920695916712936321994491483890813718816864824344970014632838285945650525351794029061157286188788313001472622525344682136417677543686542383445384908648756220429135340842808856608815241529742119364984233715612751697917302001965278401849477047602859749524790042846984481801425427184207782115812233321594474293372681296803273442022668942087502112159477536188361022706841392032374902806071277512687611555873555709071318079388346263554370475410370412583972204291449481665409051010009360793276588628823043933055506471330327523962922726231360021587107312295001815196481343608020044471112113586927671539133526204992365537018439052202119309886194765258210589294894524530942340572922127219331832699517833734139111513679342165569334134337600494850691542940418606456023749575191223507538994126195110627954546171182969572712985030372669542483286768690916754161988241103741664145400218986856368689120999594036816433015196422024676775263987217122987455611292938047533705113862474197019808771637991025712921760898641311742961151404292542242073457496637503476775497002284862085453840165700104576604635608149515020994203901681898747005514217732199097919968533934368601834153639195888065779090061959736221190207668613134751561629092406196552461218312096717886329967453570050141536882875181941732318231511370156594510760291861998954971971752856278813919880047429933263788973062173890107057802354606902150525546572275619020275762467339537541339907611293670921294450000508915741733236369364114547137774506947536740245774999898967419916311014480355334675658340600063113600663531006051589434528257673583415084213472884095573538371387125621700836936676497837216588672310176937370932368740231593296706620136451679635675953702644508215471650810463785053683022491345387500274919837299292767161752901127191014098243823226204558419927721142497663914231920776220756747626570581533261216010285751531260262159884584591418257401012727935936670040311773991357957267441304796725536550386973220964411236229815325126891789503245858583411634592303340325424777932049934771650577165071346606144141951518652627988120351322020601356436362819722397789596973139210335846891365501019736497551977661605405422499224663656500216131448474455803835001734608242842318969987051230880215429596426813939827297607695205506196483342190553923325925075261709091514478154041069734686221616553261728733784773391542745347868786481961835785247537501388690934563594593282224433560831165124443418665210993009168491303120597512027199971980833436037555714507102725932922224801953005020367040511364462387673772273051308162164157735268745815170908146557492910772719818381722041160006102382193998261952163374507802097142246188352080336027468969265574992777604587092509000697267572627724059439945388322447899707687630394322916896220203865614929025328193474094404966874778763821549544770023455941868237638492305585733171500449011420171743411007263645853042065844750860077206541350454565916792721491621788240305401910069005807425700630869987510908014452709427256447838492945496216025891828681729981918550275818161501033648828073821589913001986880734481094759207900267265653735246300633674257513566108048749289296194141038729296837431129889197608876119467411029583944352645211224352219580738382471042205021502440475262829022819376761181613565345272348938041871559481627970357999785908276752848594526225619146490575508217796974734568343439211124409159446387823617913644507861475606976959631690835348996708492903229262094278071315189016017335302593756268322550236043889868831388433001730821070204378533269863081679806440359637511315474986791310626047433445576245476063140012610517400790180993336190152027626014666166658295051101009672127512329800236439866836056911184182312251496896463228199025561954304007291791912079299199095508105600392067949696684612422322974102695991654679825396665211823910460662808931867531316830815227877416578762042686339559331275063742987823379985175239615717001648128229341890659655181415905754285336504859527814298797191659262664567828629753354757857160936533904455144046457674188187279960046431427210688902998746836922883861204847526750151643153513537561813586886365923566097633813477236812971505750764629156396300020501196924084518266700869257639459744133651186889278292523035290217854894570750084625034565585686587158285038119662493411534343301999957977305355131820753564082916145729675939457771317908652090103951776942852300126562442546028587930006850862568735901974467608772170250504999424922354966708295870810802170214093939343411447916158332888287448857096612417591491833616193953657673496426320427517136234968603021354949417983038530213366812536396371467726248037696459189175438538856808615703915548405522015687998189390872481280201944162299321917651752938292140667484006177355615028929090278717688275993443293745309604677856245472796756054389761240153017234606515821986456815266426195676492092920322680136531565642879397815803590582624883102646490724007466194513008433924171087619211871781942781901569973528724521074796220927728165862402333754972094158151230118213798805859695016944476120405665288450932105932707221454413478606141932730596224429054471441477422765958330769949588350478468347113517840853196564909374185669412925315075590525897047246253198838673363743961606800262554573656062224688356448846713954991474707492508977144574102325555271236975888607044888742801509952362891338881317581723481280962832587870519354507537787777118572552744331082265025138623730811415340472208704183655784178836733247744626786705576149697738829077318698538961849971152810542636092893962328821087102400652191663211154887912731575352805884605268646527537237246527952071181221415411138343748304634022806540465645131071480264568767738625397908719072084162607612728536779531061885526336888106451885280309547655118585281454323241383727699837852912247230779883471573965159841046679958397478352805372987355065032713077726870224779636629407258388889827286879695642639709562045372596857178920330507570859517752143370242964239572132516768717559960456206099763342501192262027411788940547117886960630706329806822383225401753640707287569236858926584176257710000028618439554834860190374216247616211510940252370430607687702159911794784721958533122729202590714997472798297549878459061207022974043543721246993843055490996622666332616719134190698220673473874823489761202520660325002328442669935488909680252647608191042919247045189367772334866293578004269890203639986419756101224439194031009251676963666396773836857658089867562015204354370011137811403015240765102182608150739993092299337467554816118428820971354807804761846449380081187712215818411083387727266189994719113886844673818626209612852825281945493502836435840380019948370881098406651430387639474733301083412186701313353329406462676861897083237434030030774057137705853709640439109298024479212889778276229151630109573091289336525096436548848626580974646906252599499050852821560556076750588212999541243653487810994151146237248881406690820875278349808869376014008938930919016452233237418737180267443896824547387905840695988012879727997517824399039830573512291136439771989229976443458350628213304340342505686341457736671116528076037598729455672042717376276543855393694470746005153260281239563123191619150605545349407856946043255131563142800188862152083560722027957208034771921405509605046763213158768245506381071004922624202888580127640019122583214794882816655315493032613279617706389556737363248019157708758056992440123913738714395578985832538611668077800191727685159773456391346032504313827134851054607203668516031024563308700496367636073248412806971047891791973421971378144596190648802882702062994059971750863094917385027839717824961410003430190905187096885150225449769382099919417741264666857262249899229477931885999985631576959458904124740920948268079586796289244764345861186179036709556400786484848721071554950442423692402105501034463692158526966534941188237623841750012654374337372207451226102673548926015199072753118578848903368118235623734158889986987472378115111464522120405079878572870700658549011701616729435759874496116099447300141344893416630564530644565816269691019005244587078673925122147037271516026511841669467366093369571343938483674141036229040798768184017514416974525357774200134500424219443062593938771694467384285097134936919307779702790636729092420542139995633452808994534556605212573123236861997366845728367807366909469931445585185869526996896604788522257374520855140994390483680718692812787367044535884044040477507899031313925183409694658656693187423847577428771609736420872812426132229892799380383527316492955645011795203758061871318311842296559118711730492026383632159516616613437605490800482221576117415238924667946595855952945217026897586943363113874548156449104360642890561216136868801937185108931799425836091736877940424223038204728108245651910909184516894001911217275344895746190660586583117482921010734423545936450518546195436464622464031480326179517707558009033158278389487674621566049122357197427583460158260610117852336112211449578831394409541183601232790588347667433165019591945284180209457730972937245509662991194487434558049497754107734269766497462993261077252821400898814117411698667500473828191246518364550138757327261174858000599806377110694800540765627381818410170791295831575469632744143362912598927598361256393587172759253096472066496491275251093169112488766763596208925466703633830202605050388164710051831761954089574239572915647175222038946653537614759725486019568346547571218180630814233304725014916742917060924988090656650641936840102886720939797570382729366714522579208345279927289975109578039190579595284271813849722136519633616855994826858356708856294277133377007233823892714916218981901533057703735577863658459574434366061800291085085897022501572465081973261352093343935353868804898937959020230844245058869158973039979262000477127089943982466630919937904709911714773485015575389772397192810092624295141145501632450519502550586222703319709146594419555119641438012372087726386118731409963103997202248642876099857108113541750706652730783828924022663940625424210195188366407483747422464484792731843935599376175511589462796278037016805158038109865375688157319405685764147983678021340109223056731061739407178200390329864235417264950706390935574665640757174463574639817107669573649048002981791174644664503624740946957987138265895217107023334829458791700893109925914085680203193470909917685443467512260490690787293524713339002242856816265376364918136951358238658654922686690605541510524072145916913802248232884131187851329635835148075562980087725841168038508555878689907348999641242086718231409675651732584790095541059480599079309634428067232595179147143256787083075744497664144658019154900034637612320614552317265291673084086833854491635878924210430281164125672716602977697046078230464811544881035131242675339915658832652661937575216171636252036151398301708021749859628770030676833235190810556536802060278177948425077109260742425956506411022172873700948341194143536553606054387427125154258754397614602405543156691165962711545137571343970739366722615889457556824374678454286070271525599564764634210868285722667072387932676613593295836477293826963551807892658473799837716655275225649619678452531155655035068834141159738473863253491937249622108339885929997571050634404288023116561690575570775436725700809949340273846230050336632031227850433773506447018081185395052064415890984498594803813123235758065886961584935943917202903993802580404495711447953085472935172784305170566509097302235020170484651077863165929372778955507357220259273884923242624604627734347627576373735023963307941198112569558580619578408454060465683411953145381072144486625330166910650473926095857782855918563429761390479592981306188014329271311845025066047887735482491928495515007453482104145233332335021773356277252972716436852928373781263670890183405677511674579570507526267210745627534228153158460408310010223715198268547893161125328387518730660296300543245037238983653720593643277851076569330433853597951632693400774167602832107366046128865603468212026272485778599941344098444763141558611428760586689633367346449038200326611544539798537518729853577125669574777272353688957202851153257216658163944220155107824152836332559866693094257576007228065787750810692693550273953992907581549600922915834642893083329066195627126286516616503417639991099296923084601587100726254672332560140750092157299616869226998354778803321742191014413744841987551469083053667760769036500033023815733176309405519370747070059844029426948330576446902813656149611025423299348202043844876616027776621786939777933044982172032861703716018064294127693510654420521986071932515159248940985490793267990953857716278048021994239764957898459680810680099200466956474933076639931285122872309336856019739464324552782316369441475761265758015071482806319215987966115883321448914099152900652771615091895031670485670548631596446178899017030652852745929609770892265521808814505567334914962005258014680748952944614711986185054182134521482394866579663771611573134471433334891894973417291644075392951418685244862185444301350292430015118722933792355006146826039209507474937626527715635819407571700451325929861599230856833481236906864115214517472868947020617141737135893987821204234414977236017627439122412181344904599315962961325622213046118892649741295291985593289241319863715923218206812548304382272867563594134352958437499842898704167507777417619395050766010857562897406724553941616606116587881559580598622023197837743562859254482091715208158743941760217007162289534422184065287683324633540013900589302255441523050054965542904048402478294577545642900233779647707106693975249485666657821331841607719508360707636724219229946812696895593064758402503077568499452949976938320397651181720502561724947417538999192012146634890502740080130729754032854347551867369449299870486742754807074672292415453870813755548601530207522028502881738711925935503904897269307340249640434595129015091310685382205520424088493633307529545383059218145180572078543947877712470923463244622642185907896250052630067375505498056981633172515827114842978207205793290713554910230807049719098517628344715454011919810416401814511100029432351739223430507210223987385110024138532865566789111888591983356657540299766695254277126815682090122207470627085189502659782795457205079322578246784510246597896413209353216083967642637130371409209366121645928014916021029268443380285880843454551266572529566764041214996853871280283520586580689302887998261133386329404148795381307354439590469374760640443848265989732846455891476215764760807991558965194465625454093616665511660536269317935803199691204315172060018665573178586306740087008465902385773032391163288655472779558650844392705732922725040279669580786764176910364862407071630602447866152126929090486758396910508908811005464314246194767365261711443851973243775867540755221459902743170927531839662325210236777391992324171928288796771584598914789104578114667231683000225244278805829124667399743673147494301332855000189271160099017860113404507712231739434147763546539897159923594817944901175072888068735798101118374590225200712508956519604815872040018580866843671103630130639568260001121704811467996370856080061078694005997288244283411244995953795479169520259268211317290051962823188527257492044850059727280158613736036837707167895961167735959115414340062519122407229435442079508476376406922501520148398798459904009969111373946993057209109871564914993204395406197639171824459629308312336177969556190579495718370534259883812482966914727244030524501048220752286315687580948034555223808838408089365388619977331144148542663349246756478323742165959109550618760768288288129783828575211619125203845464840485334825432904931987687177940161733014958331882921133858269737931184324765011527362929857077411938937331733061932723153888366474533931522483478728711098554992150248858233657630790121444954772339985078309133650899154446204199631146085187597614840204290845884104218108285773147997679493251482527488186000998293557662996253857918971153107219425103733500275430871016474298949685768580522781550948527790604218732751483536654315090737911590520399641034518001428309991793682800338736301748788682905607029556371768201796606777702660766196468705423895293709093312335949849906143257773534771094999574000205352273738080902440226278000851549260655823461263515060452245958203674462556268391373928995086646639892353446112618564067681834845907909349148140832858131248571297656949866796319347552849270033804821859819402643468535207232218760482664715409124708960273031903880999840704350740462551610708076928215872079426937932113540142739375692002002844725455806880268646513869803178426228147191745123961543027336249622863372100096353551290268442280257908538645475894211330243825635221382619911391150694685353488503893651060515372888435365847631925298715295371382708203552747092446711739369724384348667232241211109167091209563497162516388142042870528600178191464078378711779276783228216275585827406427663647771803752057898324565713154484536479984534792278885230108072852593161374547634103417651829778080289059356394046808517078852506817031310418198461408733490050062595094445426960654306519105168522178543030883764098264139707522693101792208434125708288946475664016913274215033294858609739033781755735708488321318959624903997795250277002912154923932762070593267083546732337485411830463340002623805185051585801069543386171370891437053819824018634983939411582870027980398749506237125781920460397733315726121822167176259645255127713488796802942901936280258985281966962370017692176392495505298978300450866056708770460374271044059165642001273295608936954051921911813799996941138119117142150068051278183706225803961355996385307890398564402959666871328547807068325927956593840965450867516274329866697629551278727299628253596718106252700001701215623664079180265616178338503135533126820976403851660118822623214935817700988064666220739213191889145732264935177597741370579393459788297285523502124993375189165898678808918582749041307358477128678544369533116071463676378597122208244393143396539011883631652755545690818958487710228587057472716864127659432700066781561399585140864052371289583651432229007963463375875427799050891992984487652666792278368719643060049317863667623288065360609662000336162692628435815877030348036892632132200273086222643159385320004687566238685926574288800888435154006461347743781913112674597773453418108774407860395539051474679629457094756577114788128151480185907797698474555650525545280007236607127559838061912887469102310050619700262550520489834555582719851324132558162324743411532638439721494588285116972639055553314097828414876904031888089018200880920259547316864897394290550954030156191092235017594846910283974898663569942563980283637201893935013874807684798268650383580534939366064550383401726890859975977756060921928048930493367216409184551982297083441072203000234197236361214745188962624457304936088518304886104995486820005731665090274849632464504819546151013080514168291153571781494257473653031013705059952866476826504882301430110192545460194677334756136751160140041912213848053980055674350008046850481041647944227339632033131653068871756401611575795238494940988809973927036452784083212850488163063942310163103303526934785872984432008095075468066265759542971213403740103041887455627199627237607753970045624954651178213328045878104063720924618118862298174890559980405878265711699011974298057689532728881267397140272069465345316022529224234691196270417396978029213411497351971852293267999676224524372280853540221691192323621755980526868764004559933872346251928157255227782297410721534794206846847650590471196797086159845072011957505436457913131347204588208860053105066739131837595601030779479279673358171491931775339489419457148191636910145454518720826649592652566325039076302125677478255946324297242385427283855535183420728695966297260552936336496526129800010262328084243422704727757113230481449536195200746331495811837765353171312542700432055431215280221116017220294674591405874631402569924972701092434659715911728230986143153596724367571175700329897819984175968848788610899684647798466589686595784936454103644750419931534775443588153838261401464081370789816290167768017923622401823221954292865623731783413170101947460583077583702504745520894533725278888832329700890260206255285906435775803201962964046044661296622914487078241982614320553918702906864067947734642074330399251902601393641246332346087485069401854890894545316841059114972086338786947819328280621259231083549907193580607894331679699947290118548396175713890866977083568834872330521114341778210732079716371094779413340046769904303071021935308752200155088379559784953321545076928778619221508290158475551132248906699875268810191148111755815248158392925718848665579513961277835363916538944588040630464059508449468243259947374129633121546382294671625487305179372183711992847745798792850007423949418020205512250797059274094465356479819411679069926719962246546403805310696133708517931595371739149990140795556020129794748650868468400474477666173943690131185358886047699280188073782114545289152590111681001851378985408994284169794209159444319394830898680680380702556686141353621233975894468313450162503901005823642121647025738689223426915301008089299965000020056205170635586535245754101586863085863402298439795581292234912364579344388536801571053743822105155586526587094858812592767675429604394690569810520093431887878125804781527318347195915827458237313576345296762859133841591552831416753685618662972467767606971575038174476365860853818971760919537768272230636613312407746584608579816527105010993867310763463671818737651722252654863835392071480003585886295947371587774337976198454777125614094076436029992506293860575470656625619256619206364269601820516622703942086929188808122598900629015119982380318794695384994578399266889483302497137753014567509551816894765301646461678485307136196049328616186425364474379718020374347932262927711462833461594536903717997572129775101430008883116969738012405491784180168192531940423745441975712901818069918030135415791855018127199957778903984888466929381833149516139797246706253114505614300927715351080273138703757960484319106346243199813981288671403302151217845111241848893122755478891877298817541304386393336451055585821153427385364085533431454572588871673401290968310550451815938047973569366668113520858672729394763904827843965231655759785687283397228927049722820273017398365417328474293172296814278078484747800265285696640725309948707392115538289198764985004479026743219727081187687702419388245399815552609583269539564219884222035770705705516502150330046344017563709413003277024303133284485102777072552157974657974334409994830302722707823327719085028345976234012852064918964938208380382789986062518428731062800744532681182618303496700369878424785890643424338002662762181899987033569243838148507619783543476133671165145767375040080817598821253282937400200091839136382499928420695618327842505377343601811385103791444535416164431672634869269988810796471688858473930315581929558160713918117659956299018849684831964708209631179923119229112928243600101892068740153334398053135555900003618387354256185693718519100239738378032682241796390763289699452682019930627256038599208119113465074426299026174306744225060517699831892917026830730482845732127199250673694493810606028791419251509991054942685368231138539205200474582491337020445027686039038026794737179238414024270909040646006762106550267900877409203738420367300144973027791631139777956855905444139726760793063426401574605057916635848251900916847610753615097087942907115030649131519120982938809509785719485831482853320786615954871673839953648669556660343622987076507809994986184785233678919057015220351853035514679886597987035787246980306986888283492045417390265379271557185939790996304345780374185227593133261689206031866977344759930980005348313407717760753061605871755080333441213814353042773622470178498507663529135865344801996432528067205088811782673477767452935560067073865588101734344734471904957706821589867758281237734177058619045455122158280744470953143353202803898662534965214662298946321817458013988189937944737073994318422377586196206770287458686689958198783496390013394314121007699248809644595175563048340701679754121514792250368453299507442963675427719156143944311550627997512769204123391024662156211052212993792863700702732382850921541495327889554754226446761988548699026231996674554136901985347562892974671681886908177666110343072265316242797973656775469094905121341516622536721227879892547351411909299023823098276403875613758321298339806627049244331688268190266561212916198039512260617176635800499973143681959482102171613436266303825005278735667964578139040159987425882901516226472484217292718897252055408849691886083284340408647083257212117168071598708365879209326387100315664534442786413901475815510748146200475481046822690051981391604362462709263319281307370634273833786579065690349742922047091395351531919338900274929440545935995582243717502575471374084621414651593093053519181036287987473132060714482342209128417635171432896882199495767785137193543314051341992925303488399154253328097492738152016515514553595723656693747651461390048766527644215847605073761284175913792044470053838969033186055313684790210150069652862496545809744586185671062466645773175008586304078919876047493112130391529590051255233008612051816310976492267283708951546417735339660637143042451069852890032131654468877527313020286020369448651373370906486967666375608160042005860694937031214204351834557504509502963081097007193681324854806536343045176880676879322237417736436715167850667959440764953742368972480686964492560975519691447635260987637608444748149112776963225804299357734346769901131306298109912042807839458460106917396380024651603701680201893337064252633766739042620077673209488478040041734278758818852070530772469101880974314803468601810998177918345598887620982461674994275769693089270985964711385587930517918940237704805876855551937982656769683845363835963694757414771896368785344512826359922590841218082341061906219731922975346764359533102277005149376887900410185686267088732498842186869397859439418146592881377724893319780938907902705332526010530019018963263088068968602903356727765115385198529886585995141720077182347657081517993792740960945217173926945990278311055612084329770907927507019251244159261990708767352073369272924128405485154775489855921829678507969708268214921410122075835762240060063069156805295932254145984458429984948715892740505158554892444598242748655341453999051636647291527805571680546951280121225222365622890803367650304038237271625780088954008338024662382906222885769101190292506615922996302922013529944903541761905194075947078916227277571643024328607203107193809187560439184763786564170228415124961386954213232716211583390522971301920649003371374657814565373056960802109777790887416144783892475849356750877309145327531338682950129826272967386524300258160757155183524025313368725349875682345781812960829235968364519994118755477683751324943735352188842122235745234884877190591685661841240612952554432463041901963837742539019581269626037471347646520406008977241574597773290120835968251757104449643715254889256072317746719383816146113026955368052904245321782350827604026497803672121107474003382798609648264016621895140215976616828190821716135211084200077140248927220058554509512532099518863585883536962038760579623953451124617008123799940748174834893641433947492134833505694897780145076689948627961223695304748250909888541152215460991331733090787083473123838038497466475185871931533335509178544042054214618055956450343869752027064656855945415758989447923588106139366994423205281354409647348852882584042825867211409585985744014093640701695468676842309743969012499213879550900901950419040828361539048488723836782614023698959440786705684089646431243432077835841924259643892333363193070144745891320112542760831042815115881023991811178942669760750223341114004559994631479226585660175044364549751197447033052793935742318313516850420400445839124181402661944116076675072478891747123102001842863538598529160707632704041665974274011637342322475899203000303522469542198030257216648405936359593477985176495493441404489723218038083466415348824800037616942432424274747135857620048764309752214487064496991299734715373499375811801965254382808403420129422915754428769242297507269449645217946851442682008405145509326419268188668369141649720799355619601259075739233432289582566331179465987166896207059118928501566577114112173666817972723975815206993722555283183019836150414078801086353045248644770385863957587105595124619373712602077512545699959730619487579662345158381207084183243254974677047015098612470960838050763842316820482650489667949143949257959374218339070527652016371375059666044671849793508068455292607657525559725641028854311264673476818321496474371909842180397465283502681805883133152498229801691757863837466105990737835447010581564306043879475485407346322543227805395785372310707683725234342442130634583260774436035178891844066998704393119028388841590902803240945628125452937677838312203143666430424925585715425692201107579651331960912759978906296423948167511308516489043348459583165226093424812488548329564115659387549242557962000566498491380207163970067182035819913509950645247304098271604691900691270856542492452536945136698075604291878522878478053565603113498151148838079652680112618780303993188150449406814242584372224754176174764133166166396801962505617117002041706116329655831843941218490964651820445332359458803159102403371088244231811331355590279303298492940812968814189288947343388042440349300030308188029359168948482146453096138213780671022458221717219116941919799578464318069521758357403051278470738184163777252406760016663800845605302257743442160852529434937480434390978977938014380852121573081944359786644192709126821406860070429335002616389091902424607593532455944985042244199014287523333143136931497832914070834246690447492979722542393149043046968383180293246791378844561664503844874769120251883850481031966700246547740583557529624297338652920014318592504884005501722084727106964720921427948866504602565192360751874440478570449785305861923745061569577217316525732510127046123836875562743996116308648602247364522114216512003800726805864451496058780490220108428499876822627176106930260532620470070560088022713274107337025777824709535454628413526896048868241700372656089821713137862904863429976461875863618187729163782907088342434658871929253901627296897773966179881373055555207205549026194319395438670617344449094832655152943062425477575865434392575562015959779411400964562569455720786656006828334505737315998445228650422634826840820977245234093416202503499327153274222385285751999345587982493276817232318980613132265144332259548500278752672715039615807265553183897224935204745150759580206971146195117847350050579978896371224978309267831243122812225309940653902629228489209153184973532041699018545578603167408345856178590243132798110918507168649787587342288431118484565820215804748889896709246237419709795870351702216624608616741235469002507121436947388391004473469676446113082726845414023316946796886706515412924203327556993555748877149365546794189387074079316543965516805294340953105075466121931026073247968655105330166191341759070542039050335132010416096544750709565662608885695604991296131234347564300297802504488114486485154706166154113850268565319889940034785525184542668136982581383244469963419651075490286404859545621953475824265068430101325643092385390562985849693219369667395742978651239198263664643715913361676365707442068826615078525447589798449837617054253476152481737362160864668601529403372335007763729823130406619757039943606816360854362183417308330789876921010467333597459216395036062364764867341564610586450855256128955944760353610440445299432913270604872770002528457780147766670042133960699510478066473189856043242740875896617539884364161074472274989954658700399680361100484783039455408733291552959260616008167313926461518243582890951211855036525371723232965394573471829635304907656007651113840670446747761374558829795656833810076793581980011534067566666705016431924111304792002839332391507154635891990652429576591069548656600893303126136785388504596622493624808804036072571905161817252871187636506492790299103718305641304098222396952529033344676004167159446541964038527839039878851128815094850922508297742313349612908278368276135350803710361896972509891504267317975107065622060533684635206491187702221841232102157462222771728631784108927220405909204008006597625468028517094223792832468287237414450049099011658499789010439693961087826238424154298274428577141230773393942681052353581728908941830539472810474406088234179306258349586696127699083522930565077951328904082420811488470515578763973458317015315967523404184780888508803206088803165315561359904858248211376294097728861461813542402144780928403120542379600644599202912140715223943002391834777715623538238840185489397376290776264789129604100022841556589937063513756025332477514002319369100225760527550697863780013802472516955139745528935579837218966936798211803224635634853277656097305299291097007386543596589766339166173809879824914520871794623286954467058918272200946288289614563843987758268067579135469226107778813688734645069730531879358033622846546002369206641833091533306812465379836062719526761372106551188720354449964179632363652788730100017880174796165288580132137574923293665305485996813089118388515018105684531657345690662874660766503517412992267639991361841973689144946818913482899563129173550983330735434891619061305801480261439254167410095751014986821283361851615848870137709571488154812280590187456271654647510316431438530708258907427400043845558108889527287976739725961010340861701046450490891759577290292454390954265074939243483669801260446040265171785019016266746801048052899419166848869186408188096607163822047893681004440096312892625832100990809449292276762076661434058323618495409703575029508243164054957610829675082946281430399629366609969602516041502952815850706694092004712118722674083403240628568987530782669247266657020798391742110402961765043858410679564380385485941772387406732227632598851432617375922929083376444698742174746439322459158248094566163828200878857369966132065707506980573652976157608810941217302553228587203716236690687611973978109224009170885484589970628916944846026969670442711365650375963140162125828628384558886591861702510363320406689025927306423425956348016432932410356021487351166347621991997491803283411669377690186737193027947890469696864980332298001185327369550456046173145693706522215848594709066744097076745124401894639028779746500227822318585379709127602007390604356633124039394617502730340998177709580963882027590325994708200907441987135476864824759986912440184361661103830712726562807437010279421276632412380737493895601289203814495544429131354056353683506086715484674801225699292913184325780151196483844983737460275361518318901598666166969069950290693163245887001765278883670321580841369036925276305932095963716057576715740442896371370720794330771027307816460275037705347319932371344661875172831166596644305834324434476748390387099220256633291888248092727187164767829849034668805616670849533441658290719518905968958724311405626623543052480116218771544040217009863410580560990400772251890601628432638990096999195864659316607536765089548298690475389607239299067228357499554227809393234830915540520907969092283457432014535171225889935616025704696158995194481091760366225914711457393047893115935645804527790094628566487127932861699926268088607343555162898236271639671767456118154054366803467938785655027605587873612723847980943900475543471130792413451290786757165658017615779941758071531433778366004483991312031564979460700063931644040310904754003988122560215719248188121557830629691349183547899985230252895241769263026909264227723217876454941199846221168598135840411604370436882579936704308195036031759271518045070099085418813980166398813777507572114941107387782297037644998885243844360794499128077615473947017555650165911233139174850930933430285315386736598773980707175497399716578187170404377315812880459361988936269454606643727050755653040488679937597082563047147378903805028648630075528558611740662520065117791038483607970732899934766055584186983764005313588835105188938252704638204573917177705998816247442554616393540441519212219300729454001950221883649446634290237093652990019342251280545635019059537818091773752689072621236796936018443133121102139380994622164538517557119825795740172675490061684023687796256635018740657606360167091151402797972398371923354080694698166241443988179434990500960806763684542387012874221149083123046791509923085179735715710905516711475153433899133526654107556977080596059357330799042024688497345007808550775812039867734964315972355609278989486378341026831445117814003981513776208242845251426624628242132504946098930280645401031420732922766138942527709683323113182755469254012048424111387323042569112850889705412497452965864073398161559629580519511786781608182742637967756356856661351479763971618595915024677017213770082908570778414538190433978459495471500108965474238393855262824798273120132226788502773178380646293243837674251325631319661372396788748252029446561019332815484344163600037149167905393115879278013064935664374126919178003834485548259743831610718778775849350653925310944814499015189338235812654427380771467290484958456533212813912275633653094703709030047782859664859434882087902137391005791701994145737862699092841098993091902600438862285622743112121752455049366237156933259199323135797687061947374801887548712503769756411454595730397061982384488630250853113090283230084066711731177347093774244334553840840307915430750232756581739735088262212017361744276214329621600723226211090987383576553350289676051338727642813595531227614306603515407084377274916302098001085974678922599804584553011388492539320301596179830173084007689127088061394476019942929626621402821892571556048120948070418251979562528563286397284568101081980182176546225391469438960098331715908079823347512040215949690917139405137914843121544781143806262601008336996718982093289429841029560177711236511259629427565733543309399762013057619178136523962127473113823652101631660876813487266726899246274295477994127735732557365622889554615765109614780238983705590937814087181832394904109472317128124340262311453003236074239722385075745864922358362955164053572335309286369166094096337279487555484681387477344775133354384568329242478810050405518707091467190022118551533571198998666869337945842282047295763022619758702594700363888754650469723888284984062205603096989041112644687875107588190696523991142599707757356311180785579171948426644263898084216501949243774956808118739999342197438417866452786726328555068059425895964114905937018710651461721872917303221499667186759078375444129600389553052934111799072490925902956666267683997200232636251243216092753823452400760053023209082361167747442752704786487249028698673429501094848974470382724621798402831155036105968576329598159069353844756748911209426719982033251478465465046340758028536245196860774594755757929456375215482446394159332138233625196510189352020759764825713507618208279085762416000898487496443843667225568660673560088519974532503068276766385234608541882455777794126002736495165539357068717505334704704057268983221782355496751180683810887754221471425454200484052769362148051811782056488635329680968371952796189452611414732394912236452225137856696146057827907155288984000313044467982067406203999002123203609342830313258186408108827456802428346846601224829519669369622389313619108958251200404367215201805689423600627160558666242544474875193646150560180914466328209633556149645848553167189426383311899547719816691546903805864438932006285513898246504771225450582954333521865878568104982416143955867884002285042134886367440661791965621474743154407852344571957925795666471421009186466165122329731212987813584586313089163114784400404408056702999011106337486159824874696352523394882259875398181269093595829143304296947940356905751137443767524319773435554645763704887583912738709192714720020704406385644384609903783268175753754278551257986756852901381044535779661730878040095335779643691578798295418497957775032957575069167510112812373741463949600145265128781370569944542942266713972128280080526382147111727017495636207383920554123244938895937533036858585323871774956716886134838601757121808831880338407505745223351890734439053594393316006267261739299089480283403662913338332476877346522994046278859495523964200006655982704447510065826986584338456644424031074767919659017798234699183259256883142239378317068608086053451890957558735837581024506001049394910475435892824455363007677767000280077085955295547105640055016148012745010197024638656489737976229401536258631014460196412806159218216685809817589066490717038793856453507813646672189083721162707063107879808121837850073621505602875226643261364573147304055612485065927518519904572895723758759159449457831949713257556410583470516665957207529468830407401678411406142468666872928453569014897667806922448811557127280143705467154234703275944172428656009335208682809496842498111908883175233923782280040271792321853789519939284075383612608527202405141181091539456219719521530661548057206651777894224324725643034626913916262008678346340191368595913731941050704534442394901633943980129589793745157166327927423498914396471889185393390875628873657596246038498108769132169133553891512154700315205911808773170280748626904877732595627242402746333590529774750550088770593560144072578212661947969569445717397531379049012312356562195315982571403977350353465982819081071269680843725193871695539390850200457672122326283695249980981813961518374596499897856854349076670046680623011399030542611593438632575066729602466471631605812673352932918975034119169909955141040203322330835324276028511837935445062059930891978720144814192169282022924109356671803868567104700476709963747555627198311327601682996390553913287097963769225642734052957041974174124286412687472220028244102138047825214489315771459565610703680591885372725004092302184890059644229368211065018978176616514348261694146931319261865412002933459697886036029126435699308807213794756212787301937908059061417521787771629460913106859190356745559090301343656403503397423898742266068964844757124992798783926554236983853509939483245081967437486063245923808488372285961828560430381622534010549579490301753835572247810231231833651019466896171136657443656952228128150226838940699087656928078834883476285541160024463567014246842321212410448666160839213177585339489964452868736407124205897790612704642392550738355151866911752378289914491638741679423936203562207708293195737062685203009300871628268845914801192527467158327070692498169167767593200536406904538683017931546233424494274688807310585936709202326071122666065421721025728684720816203114587996129210542070610415428847148060242271634309179563518437454205343212436659761514667863403262469178448717309200161195003666936255016165130592598755864566709763257812589571716841055774476256553812334917124136612982218112441076021289834213587976883936954857848167017341737394049600579312816016709928023153974843193249664090111618000493513382478304581559483042569880546629215927255520591024359714808426723275276210067512904551254279030240005297939576487678481348948301060142624241800244139632069042675831684216456170541907067476605844038183698601901595918571013945644304606036500899316639354052764919763677750026159698459510047722084411367814607811741743124388235954317133097098813225402481909319843765405390966657235763974500621962673344207645602627935500434786596187261472760020800345893652124795390687071376613813831957233020702126138556360794444389258272501309439004576024766013467210952551111557747920994063686001333553873877441075415358980793875950319602395541312809271405153871879533519875386464887017974529775335201670008339621666405121172767214788617002825070451831285692573118826775787038624830863623470559624847261595380548475882619249289350333300557353616983134490424433059986198393213182134307362829646463126882353474361735968937089206951606473402105479367647214551748839457387610271632298856230516263054786331463737897784970032924929804820516421735272982088633464000438355638298409599149056772898773901787651697646354428068040642206459693269844923318517429548099022813014049773654800648956320036795392397354979703693691687429315366176516055406720101130620571778385009506109800983310153792090123696304335048667118149043081225325540238078422014620649605937836943969461580861544327845816573514615327326831928072161446702644357095031858767031085720474122610891023904865023587583116618009082720409876380245922900849106497943980817948459893433835816449251451425968300672823871354324966755562348793324174010501401717647523772274488722240561423679812550269049576086140076989407368459027663109506767044322509823681546248193108846289320774517915670460132517614669335978714502475059881646525335255623894625798204914611044292201116614598371934286132282995909637508641308030394992558687196214207650890797408345940326277664936428168473131283686128890821639869687496633952048781305865664311248947291822366692265875916038922668721093532023920414009974452645127686302693938070488001953800984022810755188238184551113142838584154689552155410209697666131270449270846150755170861170839179051671162046713956116647351809567490797599201610963877567588480188842684714154305981137579859850023217218625808660931637847815575242331629291909783433515228800830532535857934936964289595199900587681668887524946578646257855581495592588179454969547888713550933086185123168314688100926321707706926201017587287545050076816681603988638372167484444529530698318602904225079136197456957396043652467755509496331038683714821225524189476813803153215813510172843389757194898546966509098555340346367375334512623019619511322080817658055544824306303520147342029489323200087059846912879688570618346915879089002927696564335902971995030219162361969747220424465722395791548034163116731480858466238058100506272002291923595560850817124382175969500550326585844971125872615133662283792352595903225560459587600228755226932301185383661164215300014327421363622928324943466270712730950808799849660781074388149796471160801758043808032736409376969696282075792399723596535210064175840833736837768405523365402560157888034679420601570270323557784872405895583779664194854044510148920825878817863515169892822507217430895708281861142261996775558484934727580237256071783747038274803430135336149888587325345069361185810551555444426110139158415922696808347628587143849944639191999768340851719737481484719728184439394668723340313195940025773147134380169891435203494464317642496236444843285730681283201495226234541810825810085741325556375371381846007165758906893220856808587658513524840816099159391180887266392514594608077265739921356651230494265940797157165734446493538259237337333754672231777070359765311354031342992760101630216348954220932044332638901008445531718913508868585073703835132838855661320576383798993029832496151259097405280325474090408900085020018255670809681656307778522558673323667404195326017261358012111483900076462016145247028457612249892486999040791992399492609876096322348754457921494676564376215259579205252993750940131175720356544440021083592602836305500085279137786370505896894961149053997865799418542410815085423390208139887915291076047424696644673478034795464860133125363640421327547136552070931499253909021249401918046197944647680103230663710769285096401953322274420021105596549915847442029664245427553481261743482955741129671299699166340113873610396184279331515127364797758089101859667140859625262013943986520726053818600354227300272339025023813159417586533595036633626141706177747635340148412897848055969093136274073625429173422610917380331648331226878398662742791837904826462994353812642970526369102394984343467495115497928601891993472033723223922315534753290067353964652999230479097632194852673382907810408118417449119413343470050719084527850409814375890148253981713409326447872847041809319273131478870782732457735406303902081212953756364133796162200670627688045346071292885543665657576675697599703540454400580037410098966977239427504406717488377939878627783184670731438609133271109564846317496906446348334891952969394129482110141277423983045196617151578333375895665292427567693542616451036085125491593324602237607505532363516207103598413475245672815156608358368766938680954418032138080912792163702764965172725276451643623822814839003548899536952513734859426743178381682603654179463096574929840618029257816299485361556714290320041041204890508994941710541558574636034851136313149018631263966998772875635670539346703384211839832565770482717423912761767145487923761899865161024077745882213985238043709950325281431732616643624923277926190554842363729846192870164145449228237100569279250575822430493092865078356005974540187778148731396472062448339410133852813889832304146638392565189283786733714158394787559885074416942008893693327454580278377949932491408171663700212714371056339344906698304796366601717678763646482766944880031373082553067302952548334379016824985487268323235806207939829859095680028755971671307952327021680970641110394567336841070182657481071201307923582360497706623899768446536479207829115022760832610798927182594507492245491054739303863622191182461455112437470074803382545143423776886230288032485961289286775087466934033148331419284876234994347714074801676909051116075419400249483468122235220968342055955363186462508454504819782393000029782780224271891186593610761839568478952627099996685106808022692274919539263046001125289088427535345094291663309159055504945377858502869557252289289880317569830679334554571613446435451407250066085704791289275446943171174767019486305433965814007815498827879808590233375555726542447250909233508852933601860076111101488291297725741030336378240332809452862145818405810461565318466441081461155056090766695039243914676535149341643876585653000319556308892236500290756058142567343195128359522571399213799141804317607382350919347884748923500374598423655467757774553301360766642699878459749351023125461611250837375619174783676837230438771518137327216732420110821062704087788930272609081598603200739091258902947161162710360713931930923029526610965065224450298930904554199266560770712036142572114837607172459586877226947170326353672851062982167688561565515634154319984392255976323412707249213459817871975807957338431535078729437024798401481308925192522798487489878419926031027632024330841923342398603104772770027099410739985151890802880286864375257309939436002067011627792799792175701339530198342567469998456509956473941220947518301793328823335547183473042396760298466308867857418874440323693367976929396178877843640148445758048122544362505723635380734722562418842879910817959126553670660651420683653867015030550529629093755696957897764356418188210366029589640064964729081478860906861891891024237071122077400161760826416178903662552165577415921297108700155028933817463810516265755982052330506425949272211525460588724111648314393872292183783476013798371600086089251466043955714028760122326081529026215460205213998022101935007955742028325003558363769872082507625479770036454175133181267980295177978395125206145167623396284150818563538086811094931473470680467096818366975475441916459776719211556076020435111290029164067955761214716313607513879073961567494780669781072289201320975372974196118490122456475615463400961454586258140811209358966224348735157779472951747094627299549233102674016345255712730529507706040542023352675866399641262975787922524524493535743988193236146309328739663121300638620468727207025691663731880334537544825190600983324059646262126511220048693749887880668732082321210461844776894502839762620548421038007821167127277327485296646316809366213804616040702320722595604171627793087167442311493847548845573682251979425625136231428549261768234783908243170898851176109073898120557003857961211171309034114380287899923072056639265802061663123915329364892402329672299370554217706083322875911268270791422915235916588109907915408863040266131247359761029904329588698960263093299280799514944368001287637145753060545655632904240716106108969678713718544136455141140989283167204594089384781781433480914168531744185517802974333250323462093430159463736089666053084511239204967124359869958215090651059870193402709045270073189661585206483993386001514527617739457001304296629737204140574627049914789253802796539524082001312076868234140913857964217709888020547991402313177562572693712023749918737356750955150952163683489164034634683135990265119065142904621801654122331378477671750740022480685646983033055665339441230604856620780023652154429275523442953676477653480321878737996952912990100358146081680191172721842690122430204518716186765584537867887082820700017464890597373437776496044111356915122442716755570611073054213058881106525741736098430584911044321284424510092852459053115775887089193310577720968015996797517706307434631963583233169438657051568686551411180533069455129384553107075462393153461675429342406707442511896393200253178469281078382476241362397328784620926948135142534073013854910639278753180822166424746827592075528677887840278192526564251509985020106002957622549592054334955770271635260016627315702742051956830945214965738178447605368034281141740225822279709976552387105214958371705015268333986516670662244392382488108670219915234113908194068088813951154405998669234008512021908681177965480962335276090466473569300709868693695023637828105798002562862780150178940199709194460182139160519521236459948815504580930869203837271282861855558492089189400455337490774096099400937318503671539215099164485566110121359812988365810320585224614242663059866814850386582192820207978866704895539037229915922140392740510069269087770915459327960640994115540413695392497195163676887732613585380152355511647899893706522916838449014203050315448452951519968814927371978880814059820180154795532398317463374013484129664604192359621482468599125282727042399897137780604878943121715550161545516650861773160152491933238339260815046791489919438539319683081494831117459172459722451095102464621577133936002021643814305729431162612775413249964457141808590720961372103398346061614918572667001173771401519045577427517443506444122599965064278492233144397338725974067934569056015285007242921298973330948138939763275598229616472300293751550834625612490923146035426820782557076164076350361886622577635054914191222774836944517340806082364452886547911744509052149757857467937663330197038244464729597199637109561046680902116533137102394579929952752147507394132936328398851331856723677671756242218565010929555282645228687328154228103535336572633629901314166640700049413161088233191435661049373373284671887536773861832818121992720520594645448333617029110996322690558422504728008440428599989396716569258390311053922548589058544036544079080755529692551020023576944190408236451389977729960849728771510711142329409414974355353045800402981544365859410569184564246022985577860997605344906165062296926960184583124673685525542721530064763281003917310704302243521625404065715359423976694451766933238550681981655220669055599105688421578689303290279550402702125024550485041819368943229934848384757925362656155931219929632075105846006950735159389898510842029496854792287462099184994697416775485901515734207642075391281662082088583638375116458387919949191610249546885639022229942733915782341810467457897010810873816404662189850636160110142725398785545978452826732603505706720782053564812004933613150322912079685236749344849764458053133976393142205418331061601305423830847437346462491919240986624927863097546759558695106420787029781180427014177763862367463097703906968524932280845359733028057087732021985335648140357638688354165493688006336229219530282111371332396776556957604156615281593162804415454178981171449562485381586070233641196014959454739178993097375842614985980371074962334773028343883956286525902607208305984776705762553083717310526444413562966703532611185333919276962275062629312902560760186651048129258615971283876435861773602049179201294409594212317244226703401304214837112681818034136405457541695319824633454625935299648574123198477592982918477078233526590161940385890403753170149009131862845790837397238714733545922663680594404758106442827603014326634588140278574790673984707172635245217244654989832790691081022117873014479200819736517771512079732901790158660587708014068556542285308560846203348368838704852371212626105318471493394868377322256594481903489694771083933699468060344495054720359969392461166807535170453149762798348146707216075881137039650216287621777568964883330832176696372647137203211333448051044784220198029973279890970975655182933826789735660658866670198523792586241270884382411552087871531292911549721168385115322833972844538822297312171241133747674387337228163069533932102478085868768288732539143775294840346059056385138799444461061067610535375531418895911218091853512287927242883075974566685575747186331336283825708344190440166185696558826560544228135820528559077080312976435989646100042947398401949346931709792975392508492575134581196482446606169109826149960786463275804275333881704087687823190700594539834556316177395345282479505066211660479198324551400925420550847441119062412377997867321811377080061928734161541740211358561491550597879140054654167405592060832219892948318333539967002589366484806871019460548549689014709968821745091524194271816513615989689479422887862155586724061405992448866567312633719348250997409198742573986720565067263811780590962809343732010616647696783031923237394865363371968782302983173256370000558824864663223516852340101015045301960651271621969438935095654472048153337624077812252931129431342817752237555865391329691758996475770151223494255182592255450967103197730216832493747979919006063524464566338165610104246577771442797627410029231983072285550955041303580965407080007788835105062571647432434456373829932578048382545250412830706393743789255108827435516036411023478362629877826792879839324082640920559424176166792155548769779187233438759771651491750996291075884070859745219410937049645232581504091843850331456634173597538220515157522431323780866463319042003483351439727667916543917744165239935453803174364398997467994217373928696041943876200417522806021018202757087406168356443558425998172481016690007829306856177243789686530181679831696997793912200296480905247469031965287661832896948042198398138196097472446946793293288223277077426883542012887195367391951043736127685516080919458567946166890688071450560827686756985087860734081323971080070490531790067567330465309202623152135762765486962846771437741902604844728485686011081140451970238230521005570628376143862181643193559097667597268883313438178713548124888741402240865969679674392926918249950939597804020660671869871532320415109069549003847632932967202525264393759573033495839785143621455823755087923841051221836285674724472060400350763780986493233734492039951727510418934999755379203641868049975174806318662728467168536155237473963988094356151607561834385430762605071618450718105684356566443470046717755451770715219909917270899824959924152949224905804302734889688078280939735830777672424725260289840213934281922854307545253321595067869234517499088801876290998401418906386680624578537418196486645868644306393268562083541813462642320323049662035196071817971760536095570172631387572022101762026582858136464447087893072126378349534610820079186016492924699919755070812948173000311311367635463257097909891559877106206095131977327871394700117925122305319963296949685930092982087788378623549311184222902970747340677850416165666609966402117438585388180213044890176470780418143837732511269455998804383762944994773408925485501885217621965687007029899062697263896020313938479295121463649160404064441700105917127728003842607083476042090135750196598317902058196537628931672644358266597305938815650552867643196756595752156728283958008543898604236441563448624160093919860878344937469005264387789447602849906104520522815613120932810567854910703526754738495183077259830092307554467305312576780936379592700925634079900697390162415682423109102913382743896646958303530460478396905705139634555589624336801181293154515501499580748492516466817803495987016962995991557858734042093916232556503791002386711860721312238401474204071267859638787351300175559781231188133940909565021132001750466677360740216754140560266284677592782830616064011756089181652768601285477677163729137184555884835143734867811413164849513575072869652408491142366944632380513008926144355177361118696590678198050982304170822891717830639062634498377638151793278022559149751816820881935641681722687749983146905933706000842738401998972331897194231822201756899454950938586802276838661681328525032982774024283556077831030041270229595159071028279231125612924465354544301956069864697838099279700702643505892374249962394961025129392194263291210772566408547456330742723258707522029511125454377355123376211709633582741623597701006871050361869313274136591090710547994203657383870720828950073617451444323614682396865414001823918029362335321196984858353734744035685240994248914607789274820053955208739033694917628930703398062378013672198180225388496670103722873802216640232872126964627186351565781260211255456269872796277294628716085908194783140203967455739451670216450236054385982136243423156496496593489978802068518501525276497214786861014753442168030166431192572887342682347150860858168662942528016763683462120515775990070505784546057758599142531182797478430368371590471271640854674629745986883473356664661056546114884273869075463150990252800436146143114393560060781963002304918101854813041152426116146677234501432786412952534894322842710395436608776176298218682537894297758136444144814829737667123469282194082962688754466647263897804065239203260604743261336522738626384147967328541440589159420015444364809254344565277428184993396986437146102684942504240976505165379273286319858673166107388160063825920977337056975340360693927859574791902256192182907499006202131108731123254382386510112748644718411996207935689929979378009333831367926584407895889601495844528134230891649794598812130329112961538416057340884865224214545602415007697438639261385680738934606532550425682618990449263477853192816772339319653250506036910468902524280271506353683533976879193236271388200323878923719802643075279339811254457533739931832471646255386786362014165333894817279683831565992403470343381710829297231072848758254595294349215788270983266956141025875249467743378536943044813979618453572252210646326729770196472455882900194988839688319895711757003162222236894589781258598468428342507530010845220559472613988977654959475265316971071297395731634937663139019897849799039185659522715630502236716816817510333847351991252151228832123704640222425917462800983858997077681809344251117352813657890768049644738072595062303533481905855024181539497664866405464071649445232487231571215096927345315194307609500012647472593521161760817317297328920674079798277155164596904623871312212865942869865940095353239570031521534033924260963044210934469393068880314633410033689342041828729473404176576897657938325111015815858649268224581723277744391715263253641017359766856530625084119236902948885472348694050435342644362902513185990253691073854547448941851075345358556917085773969444825869181186953957086677490989046062017125351695039894269171706018553110988773704669001303907985386904136993556808939200465616394980457536366716337555423661768842934731197622017266404228957226966758570428281977251579877382861802403189240582629743659741825629491588973108087990529554173891610764873171372741488146045281101446603108967372268085618125188929414879408596502089751287561161655223401766193072097106043838158425488199289085934855404999079749191566761031153149094957587317050305715592722373016646295530827760198275515798189706005339919293175498291605076473353783291826777562643773548969275030860470510830667929150863011656819139674192187415602083979855619565917789666061179581273173821083631268132207048057118050371506673492188055089038482472019808243443745191238273854184856475107702900263050037209047004962523150272187373565674225291983312936788606372007685962366674676520745868851718030389855029350928050365504594456836376177238891647004100940166544757595870179652836855880631526617062741799072527731484220985940101086127767728732944371110687769666704675787754268819978192461021550475793803842995903997942743806235980831648395756050406577463756369850968303407492201436522751227728542458710220555269352495567163842586693780738672013365040839215790313843380137469646558526474998975436480650691489894357137168040498329009040699858541238002872303128716375464388110767526814556997880250433832816292507321967685326374114241189147358328676231859491037237246152964940759482433761656697152513932879003331368703198657631717401861060382128401684487806279402626843026861038841306085710645801237798539012428013728378314150817560605199724316208591758133079163769379854363018415222827065735426951368797758891044819889987262071018037126053996539704402049288127999593513460314851397901040823801015676963189783653640042872334731879132503143633847313990107257427855410731553136443867077720825300953592509093848800398335823465081708818251041713449761084189162899195887392696778608170007107772345313854793421327291698337979432391780539982159030684938931969610885795782117583668859980317472318684839932332822096730145114517234123531723089477685785043050555525048717993314084277432254114108530910707201565081922317236677552052202861272988577710022573050272829129541443913820143155975244020773326289216928012437290875091162442212023429457026487808276851034350841480917001263469340529793944578010668206507510794192759534627776910403533615276751264012548622912384459567265896630923796109330381639839936146503702174712253939107237178306510778239455490351872706770055559989964016183296511348152920748353193916017134953367666149003949812160259133157082821997621808404976652787790346562972725122242342185133932946783542082749191237843480683031823673836980951196488017006969177818963575552294512296726228415701160449400036583321739896695272064139054904140427062897080914332903739311190116091491562208650337172690815054495206328203310018024962419363309660951654433301893488796436158259731810779781917484552385551984683141974226626826246894776718048994765185275898717300829931946709327365804816700900758795540273888064427543174859277412580067128730943155364848641671003957219760201670359197340547328075225731072316685407802755773011143946540414902915065547005865759183663922540152606872985396454640880707631139516509062921141716129863194989670610398076030037066694506413991359808646996022852909107720101548040640604955567441577558354631118941787093573732739779843750426019889910712590715621647342332419648653764919848460789083751146732632541387373670374643929842934426643490415278902580444210373230105188119213170631279907678015960817526128341508523920901235172681059869597024117969896314342113319632534794645805440726919998293996916850433913323625478949188672408503254574127326048462859632545116028239510282138442926882137259822583014874328941509891395133561696432057680011966392097566624468178719980758260965011358289395824132413212705430931629581465781964011655654038560435849234546853274866268346144949324440247751934858180103255414612972874008849852153900131784116710881465040540870224412878395698473712699975774394318393232207714686143194246446138464621133278224098785727003320867315666790387052469153032975818443685303406581366547306103711816297093947184569745101400406345470824230064781529330514815783147851758434334841310557868159440112514872399829061709621520827461353725303985504433343841198666347461435293867405705607705788984960426426529585541597767196255506603482448566975285238442880968055788696166158874323412290509633566157540107785598771262316003224622835197171932183628987279424399043073983346344254846539984777394037267944367487918818206296531061376098464657271007706060264391535052438820520788208380710625507027885444832838207615823215699271464762658383647891072015811292340873405986561058016622049559555682472608664253702772723472730199916333282735480717257502082797232309101813379551210465123184555859241414446303346209583947342143779758315409956375072791377672871167623378255800494129114150018027390441752460947544298147881696398021308499566344413404908021826970051795397740780949766841495409327017301073195285788243812575320928787556821048239126707404960981601251778613089817441525456273421381437870253206224118502060560447229475936041534855946227252524166887387091710551312605632556843248151566204099228737932186987152793833319684464319394418521338445302438555043246414917348278077762150420961270096022077840216781059775017361338573725823103177218805952083996072868130872695314772744021004942589047145096440092560513556467805662485145793728739761819370293917941184558504716657110486183663497295893355847676266242612683432546591196965388122263253184053722448048491388704243340197734871693024435704628644082473299670806360359821695186556063294504860114050230799337179262907004734590169617511587567575232685696607016316461524037763276877239614824604120860243991762015701652020667276737977059505660366249392446285114211299383327911677338798973975588541503226761673548960975009098850216066076215814555810616770463596554033525807530850784975792208233723910154270510147954313783659609431912315507500713302572491959214741163126194983185463182559285683872973169914365184045438291062956084529957411338631359930257703924981622739673924382583575821977633514670968068433382480316610267360117269451658269516066026961462912010182253549349442913954586772388787658075861339087983977968070149573476625469249089109297905758249158735845048357497590945806351251854734655934767844628513303070400851810646238125507907251472708360378702638231004877024318003841587539924576068629860794689234682216642802565957350151010542235069156599928425091944888259727329224996012071076768940545633242147575077861005764450107036588602547421820569504121251559489226039531427230977808232678492240039874527640554946040677257291566713896615133128684207527574632330574447575408911324119224293935812868691387057798323617345264425528771045966398063463055695266178823580885277719793787073653899954141488815536758263130426235285861899724567461121148502461851039127289034224856570492795081061934984277263822181512089922370129858562888508434535081510904397616055961855519196048080732782236201060828333828379819802708385627282977554615145719742426233820205944533348123527135200203882539418316895836910881697897352102573670705875159379303534331905856823611218850771579896220138782232178620716840760378045377774466160822624966261822913415421386525130357150170667399033483345743159723960176097081069383578117747557501384940204617404988331189707839428247398805067538964770546293201608381140373778194842240202411391188413083227989582726610131342498714494351771064794321004881943867902571021728062319316047727333709532773664747920373376339970593458019105722774452846607014415355968730499550905773238084307670654604362414101629725617595732355799121641386157049002836089847723835621580262819702864943634301265650790015388977438713586878511845387763041650033926811147960327578739907367056743039646773021811034355274530969972272249955658035030567772020501512045745514742274139641767762491864162792619070695079804994610783091933746635578644325506038437237404382368998662827271402108648699921543759725765144890577522451823703614569353701731338531862342519099072404657596630531386647411005874084158986371905909199180157815890425105825312210062305622329996719762000444845116882331049245772461464631179996642662044883311652514195628393200178569039213972304581066491514536842817188681372579885918317793335470750325553662192297175819993161523299320193498176083215430487706468003791200573526590772032010892802200426637461067359553810961514458096600574179682600640724029646559005601422306148554346796267317247107767285011589537736033268268280834661696389907120605840154605835968009770444674564598940510697206642997672117358719567882300886322306970161356658106478703756606072677714083065244229838327756442181674832859753063599119698382465513536414921965517928016874538409056786859716040213087125875679760825892554384848044030457902369245673998931957087835613232700644480838090104477320042060360469338556660723158665548570000378674939704145233076456640236070497350092487101799478503006705679930786742557335312944804965963460740402414277811506844114499086311056949441350246534445699246811727675907453471583652002348731666872293746500026309155864600343131400323438229202497906479389722572428329677744708010724939908194596689269046630766537100389747301398695924881344353485595131195109920319175211522929900802523216294858243026239986084611739808866601721142138802597662456121226696683286438677444202389289785547422145069657543632123685272568030518629418430877001780890633619106090288180894491556125314180007470167787019016784905853240845760143637715936187259012069004426894594612280053458180857297556372516484630951399704592507512840030293028785784671683922606700916754744049213029157748007346028011603325011239466694820501306807092012351968250714565248035026975030140184657346031128466822036087540153460431417018649938400212256279211097113630489447988465785261008632160996232719929286263082952056365821482680536612699814998273512246707264145526095623534192979513508653590673472024318463964606538593948616990418658329837793846425521278297552266295043641579539632088546802135702808731144561645944526091360586650789854583862465210913833087746761389370962453514169254829747077362987806808748433486143049391692725172204763215582550821400197568111936372761950145597816949991497639632356678729064934191524125897882436636885313154878377306444530433170888663113382954723131921035053813062917499065246612395156680909365524244390128988598167470696824444583175184325653410616200847621054819212357340043375609371257716696727447599649759932765323173788282967083905508806135454687578593826971620984094123751112372953725984842927754679219470372043396123501741834036269145050901936591821789799053882599720480449653269519343212067383068300124346641312642636089497195807916821295742200121097688726115536579157566761859104347812321346516678640768338591677560298627161809738206937266322231837372909805349317503546841680454188322676422397471778813040154421502407017077041704464519547949406137067817451894704237688673648520436070783387654547737578101154166723196846991674804184275809501558186574542091926811153870132673973290981346792928305980616392043750846832820040284124057630340372581190905898974577121885667593305594583530644071615322571966155335204947822341947157372012630876147758604685722038860608771477774975225228505664095210709312928785623545888776551871513551407644175119404296595892063543732037565396094251643283886764117050567597413810647531124090069232052010531376313414717420352138908597016663483097246542321299459130798246709243597809972408146642824333579494782264936491818005385656899226025607474683872626296449901647772095495429233316702243899130701650976182768477111538311192407096584028572239136723457941687136593317823346507707205543724156577781745490253628891860768692480962353375460968984624396547401410901891453944563593250843982250284121726945206577888610733293449250933621435581178885753476045051109731531347202141789176061069383300178850666534314628063140919430050838320796702405373662276006591998739368875403007371481723377978208536132064487901766604507832911536897452932036124117585934196570221673822825782755431140794992176045210849212896923906207990688320580687688186508907778334876352334793969761544982998541184556949022987309299950480513206633033296293366486074217830366974949757617324272087090184920026509277705965730003596460622519520366840993010291878131127242490004911193144197458291367773369172031737170253397075517697900957887520365155448930430133960182863818469421962048684927453777985671001664762694016501945806231138010202717356712460284507450856407286131017002020509005769217179988928261051586060295230639350761633080815806465906891396924872553853383794155653342209445572158470694225820393792282489145815937532624966951032800830585220196660236930482621745114172954657577121456663714213895773582332857387889843859916612405010523528351556255667210144777771783575313200268724940395023286811310910534452345623754989867287153840358496752121053967912410748768853770765453843325961604399043053403542951516364011854251521333609481049902025425800485840550872361264799127936178326237625839367106803321334265390073510146036421543644727726799874150290053802666083843825909045907894998885573882508777226379993348337273941651548003948878543145940584107365251444457612379278113159882991467076519674880308067391720534228965579806520681005146076614317041846645747727055346512361411923132128021262352490933998990125251495084004619709513104584282809693775370105257339347623970312375255336428720001648334380893097688668176519210008167345443063543303801408420296876111185110609771224340420911521136399719930794013093044059942113599341270891317421227055050815842857127299819394437781272836194225263225553605945370446449895358808570300153043902180501813473730630994434898719721341654266995790530834565961125912825126755545695030731961695788990816303598375684262534201209493442677892673705586969032644161330672939304352182705739544680055790184598825128003258435377882624989692930092838432301915147578996799100698380070211391802722861406108510069975713797688307165636423585451875578117354794543320038268433742007284148194143137177736997146535068822177628517404976541655861623821108444898180436872044905756388595667490782880996779157918679972033771290430264942735065922447569585055097816862888928480924240123309466178901669175952156337371434965454472626599145163862074601939522381432665445780789584925622323571784926225157459347915060008303228781944518076488872476331303088747007939624874711627822494693879521664894588274406134330970176103780660564144651011074718727463853933197498958694405209255733507172378277965334267699233917413267366778238244123782791957423622534419218046016495251822405037593085287587318190553323730293809536121362559581169877210906796347247405796932186490478033826271345632198958456429170667154517199313153193105538680713703075313197977961603671608983748830338449924815927321941636727475959834826853833601351062908852111177820787544774882688616029361125696890760164137217157870319597940314531444527965658727698523920887256677720323770495338389150080180430725701776646079402044943197273977479841897036763851026919774006696256561142074427036672255921714571743412560212992272119140003517407056803588993761863374469524026084587658503465164612929627028745515626702223456190617123509375120910590521970994608879516820512491267246622080640764631025737316930261780861132204352476227686046987069496077220268702271075558943476479408208467949692442673111515430052131130521534775322975492085954864147791292277204227153385264761019237152167770402768089630600324179741351723502625703683749896033612636122577403868837180987183271718090866772413954979675650163388415026646022656276510911106763502655086565340086391678253402434486281529240521520521380032898254278099501612753493316563115018628844139653683137130781165964156492273613519049940219740450785428576748522994395800887552075987743399934823300391846331732466927590197798030702454620282446111728851564497823427768695336625443179244760469800288035716788302892456609277029845689257420128596395908628306909153954984371915521963922117975097743825676589535298356851056512871308578773908647588434251472459789307131792764779534895668729246333376234852385148607595401544339527328657764287519099748693301674030002757355225674372987983178783348343336528006572797725455492739353847280305408838477151627952444166463389681473187665947275916786265614369087165877965622682192804699091845679905712679682309782911271512565159279659397562864990132795984353003103212000143853715872498109664796240971421442545219171108713471490611975370659206347846521655517169695747649914168600300498191534259424619899968342028865588535491254489587685247781065917443977731613655326886542185743214317019027037661855526895857109132128186493260472020941937037268958997546536484241772880793999875015067675267089949629152623260280155149601974815193103448695792418756465851321042669933267494843567619455743276768776855664761888021416748448878037969809615709813301688410848429697821871799330630223920192713684938643124345897071270661258044608780090560124769386974054809523823104463338798609919733911041422658399444878145141344240254331050587289975845291159828266709480179748178677873773906390925289131016007648271908668005300755498141822507030857048073271603071017989007775625719124526287385114149388121383856940550963591858592659242152135071001248347212439808528806558711573843595241669284464554947226765143796956969161449532268316461777797654676032385625982076484613222420549995340830809613373619787511523241215441961464715597519459958360450577343572282137725384366844837817566087998676853133125266524353219840244903495613893171216138856731381591590731794760688573785559531847581311443861695873966653930998596043482999891391649233525190904335523211799961270808685242922913506195832174562678736265945258019610810778777784688033250924341562064116447390286925161576373227425736365368616027928445508822837539024894069857053341903753926281700313390026430836357239635200787638196251723555976200128536134953218753687006210272330330243929955755572099223797343461891625354897086353081450332622248588946627714985069817367313697873290788326064909006277704936633640527302870697718090205780128286316365586734600168069911374711574576922047396370852406826677475836866665985329509118849862006250160225893063803748754356086211409348481311468932504514840644440216941843571472356673777919030587859584278606239992967188709589073328319661682070274347331308428369604787147756775644054230882779727320886640595044915652769683677148999730655695688603950076554640047484771634437427816105546221373493428682675424025611182773954852175681663173801794341655610733309853608345579827585487076137470372845747836865940819889574235874701972767291588782052797216944197275201960630643018354260857132017446592922089375686382788866239590143172293139854977281793856554185174104463826929228673418219554158883277455179109399656411141657376396313004787516506141464304903617353117865407897081747370409902191827821454616412071892925539124656185475999659452097643453222672534129579050526736254156215781942931233550639242047937366781786613470386614129666072235568627524504629064029092096365300412432729238741743722289559794465575384462774638331342448655886708351118180761096685650872998879302849338458964479414366095207592584182331939832053025289458001382774742971322324582002947976330478849137749067770134074664368849456172392834036674511288891770238863763417689861134725756035757480289527197253683818682085944226122090209210129872065845309391878547170033493662341741476325555842071797064295492186643913300499361415518195068287931549270895097612174727672939183149820076274673945655325503048632735216019266481041419748654506458004422128381154730509404424386483845377594664577076205070344406595334941638902516458068113010222693872299294369457666547237776383325472581230871086077270650868659041686445321794021128039513892895753199552309989934108373244110525979648180887094640383095257041267846429348623981467416227680712109752333828791855747474432863326953315852909052277434533675535100045909503835832085441881495118982805467440915534310292356636691446261492834939681811854786790814852353465957320353757626132852612517507370984203626694510905301620904680720006060624450045227247050382980180300746418286801649552040340384680017626100452320815114531787558272023700676094340528108068782414250511452999516304123075075930056947118381900967962708903739585246252618805626464956630612090684952405632640802393153568984577776283154934461808660506843935363398715841177728406886573474057767309468708545348231291347211372151308447764770599825296553432640658725518876648810003959445578788637904146815470924563371657940240660232109700067763630147350320216706058508944668831079255590709819621631845220971250323034098486308827814448595395422660751148097654396577416319599767646958403613391547981881145105059309546865473035833574616131500288371357576839194498299673408017110602922587567760614255034062237850045972094871332568224051849345170321018262819341050804676968486634300495324388166022482123107658260954399594269483503784232445262030679476571375823336536032238272145796069292570098825284981140145856272796478669158494798728932700313651278834049733336432947073085961037903738298813488962001141033709725093419386221742734298647788672489522714375218748278286112938668559198493097029446418561616957097016135978000131682805679281106452053820740214935963208963915674808168457976625795610918850842589273484418193852045838868031942717289974037010429561321334365750326967433438863602183096301452518807227131477403694680218245284666681179658956287359587300210217701536499267005301208609154913476697655072512480267451927459809772765982920379740567060920359721144167378177697357246074730040535224201482047800026089382930716540078207529340228602239528068228194975642239153475703972591202639309001356876773097578984379277206073933101120503604609264624738896278745367847731214693356718334886158193803295472121025043093980005390406378540160394741825230904856292937094949345551491456444958779012827588942193896841516538812205694478412026378260682843703719857231071018490842271759742831644771460010678537021811743634971174655193247014085682434377823535755467206900221943245968625730896994875863609291011061934454540043421039730005756390315595256775839320195367179785016410979135105330782385794246870275404703708391230809860713654677613918555498761875596481425983698330212312904365149540523885970890714065039221262269842211969681147000036878541486662457038345774548799222932131930964936910895678699930282190920913546165859523389190231792204441876333759645568174358740750575211407820917609227541210707585132574294040468841715838533546906609986431491074890950091246266734992903873629574186198901124179970691823922176320993952608985948851042579371661709480474041443202893846592558253999880694942290138271116684511939751497279472298185065856035082279046818233268224006551146439620255914784246912715647890765463650102834540818744277371724511632614098080675988026400164545022463071076469435074827147319728461543224492507481055894989829309060455149609655912161639526099176523196442755167050032617839408623398150625476234686413448894358276227875204622709049490057790157296623987822248226637138681359233718766320681437888736471884785414255201435638086367347989406892486600249292522257223566290959014664265117887888105901767835521363477356512077235795996906151243098740572273020233437357880567108772205804141711198154579223602071043814091419279056417382857583408366862429166156852764364536385988759710809672625927270000698835630745590335336677031896475098493168447655949856762458378584849359215304193111326126231242706691729028055020310258008134506395398188208317755014739532244864302290819344705471434609819046471639186247208290634830560972948735856108426991557598019234582540325313380806246877839231714501458370463203579784538341432459580203020628105902936893925904878475885726948127064119623557293442145095551562477344695358093127384876433022186534444525683585632563686674253214892650238147285312530870991182454500764405055229969772881149263372817445731290947820561995618824791506265447378407186919874491720911141166680774733500528566589235649322915762735414292756982850112275741435336434522072581775494347800537042295335844640724687960870260056279100328022925759507901463033365861839743084818873062155800284269753147713608000832812839624632571212802595724093899656822547133338483528609945447677381238724040095149331458756578053090857200396869449360282669181060423784088483733541481358505457752302529736845401802105353103369904889045975408313744835973038715461645078396837990881865229763696755757871220010498914320330701912385889567321520002164379585830994195172741838175466721200969304716680283788439041969339790218494505295223821913377588347532020965025476049160498972063904886580999035277957732833403605401212773085946509237775038553887754598607100181688207382943834373348707495468926986629872287343116651029634074505392838350300024949730005563794177691117481434825505985528324495547528374178648693992391163381390615935788241388664703747504942943626020277910256240511808230254809943600595140877686983636369940357145952853120410224435909910419688575542507495662779146043021185612176695941899572612473833449816137747326245416501867242630479491710114771681326555440357628794622965385809817043506166998357572553110051406414220472053524226503299761041786921961639667710060202429443959981336565565653123248093997218307655101429833505186255385359948545556435505578319852847718259055607340590774068013102290781905947813436245917588013224767449893651245278651321658237221805338120486442843319101391790911583787786821610551468727514339770610304446058083552573977823543622839448420646168894957597246018977969085550333078825912399015323607607203425511039682883105255608257794261961331549638521839872573532523672982252799515772278314050147754201315318023044298699996148549875721298739983644910194541702297207737488270051391374431465834303340251087817607567182488568187085238634517664200471340497279985908725600359139000450707787641620141785898827678142487860399622206330978587535626561530713984714693251074558428499031717159661647732632209055465567780531423934841083200091341293074087608707265210042175730600340722325994033568669911598284853653633210849677720075552056766085744953071931957249894412730964322197020324693182514518810625972856628196774477196184012649161941865658570860363411666036437523825814871901542999168398220637498149960714451855497201556633586385233344949779846740639665423898063429043321973105412357387294600322378627190983345422375609986540676091527665771106372725151058254977534517025599471774178795685383613429847422349393992229620806805967481720778539234656722991691501950865249571094244915503198504915621899263730624238866968526075501962302768066698561971014063042367080466546367901906777481811744733435299986464537898116626267083593911641754019858501411166923393091838030292881481292041927362854032027585985075049940604417325758157830246295693049858127733533888148546806667271858866071388361264326226591729832045615277663036509590738200539773168621118059915889794346743202746865795669980349058806012927485007881812526205014382998317033573850122964784058545707698287997837017713919603721152952101583790848306522278853495860912706071145256115641301068133145205613034868388379589566667910134732824968659747837793231647930146778425923214573371176084081572863601802822663584245682641511877314134819282545784083765724261357029565723191539782488639496928637590843057610229098736299855161959237398724741998754217984703375097385268883272874205443230070338971049911078992407847948489248275215037143925499706168068832590703350202341422372568799652266206089000991445730485537754369970691193011536741095420477467297186479510692107801221083769978993156959645779414909087977290568646290681425428517127040062310717937757066939610388650109513640864930604033199587360765281449560207204647238653909963316289585423693964178574282477254266530979503434195851832648539366122589539209410940321597830287982408813084752442316646497153444361467329181860420143044914592592969417639757380409321284024903681876233524248245758183232131981235065721897561280147508447658994216041920778792003468276940442946843588632357693906027250887081899979889156127474587697217309501448559670901262587167098349412284265774287243386669256189112408717017431457505979312849240085824799624885355739153599244248961086317163363442818382389845941517814604057383623952033994197461804190550224802661268682436715369030397624700816475325011825497127317821903249074327421774784996674663832393827986484698824168845904024474127489602735131023099408299218316866984231752536667689193281729341985240201182448527591970176110557845436906486478804177963858565806870185924038642869119069738496849297869448269813278899825095456083341927416070199415306368753885504803848572529001802785175900328997193136165951900894362474161744520098942695103230888125636280861807820856485342514768283549864458272508439169748482997962647024529031080808784841508252372865736357028187377851516066837233906866959574431247432262661165015643861648802889786553628008390019692092098782565966107323212320376940266328821307012661084443189818811155725354018587812215463005311563401368817215599573578690718447275835000419068077203615485428684224935894820742004173708066436409193957377026730170809980839062240027306233197050431129035382261184360728585599925476428492666673703293041651484381420735053534029200278756454002729302753130207325338394432237250409244397491972157992027224709028502382601114476908685746024399827374752825346621424638504995942575686610032557300179476209774986206165917181004410571726130895151883514518760122565345307979431025022448480270297678471288900472267262966526990526970634966344593884496083995861737623380982272504116109084936954538999053924214247256343616286251853915627611304788227166167684279032968694733803924531173210433412936276180300501088609136349952814816715329572304143862998825679920474534901862262437434722149221974208454258854155009885678862522992726419240794222666526192598496275429593948414244557146306808314461439666764620454576686070213174468849206085831333460575994380124112835029939599175186458716345393631042889941280873324556119195830533798977351360442415452002512475036906892676019467810257820961058086300190426941805942103117365956296185476877322925014906936915900578811176507478784027288291295041483861909901025685038597243149091936664507004418007448354524326935554979428956382056758759744785093642621941552721857889334664392470139470026387615570697083430564014158211859130050858281887346743184244178156141709835169053969686440119002999923647842064330770221722122480283303139440644562420864123001306606813804952873477068795086292915751716629704181727589091619449492590929291566926431335057112165256397221552373926851365763335282374519590567994693286364993126278612621531906000509735335172520446768793090659036206744098305213467584394475536706512059841882225346088911018625277848742300199657186640990575088214174246049602480645813745161878413315251704494848205336930238520035143191519844077210875370036060716770213392443722785601931160863831751032491872909563525871899860336002573739672896030437006317874335901856702810911511883716359449651249927228836337413294499555339202884969776597270277792472945001110208527962732097279031260527544516561362234792438476555022070889136836309700777200032943786559748291205497029763850949888460514207094368038691210266909832890463148465137508795934473395524466877042766620165881437970115804007705623890515970750632178870229475061461075034978385243784943741170435406057820559421397088462243754107338194492853689640278060602658181223093985474832099889889502610351065465531638996101821322369959209242361710348272249242386877373709634083283714120491679737533922864298545670590727798746215926744617835003427692731364772850465422202016820369267989996450508066270168972354599920223276179267194918314636314178912604648342336430151064942864795970557624203181832303832161583554793031802862584417523651756674403269501903761550656632585089545704333299853078526412823138735261676631317849259313605504358583179282986213092353868363501621720304418518120943198329235707180242507046278616928409165225934700059196945918875428476933853820783525459358045686793431111515662147793327787177809298118044063498360887191326734783484293898716561152808524514608276206392440659575185181335184550988873971906848422942166605153804547382172016963853819840421772133072554374400915056425877361690844198721779687859299863274559945408647693637248635104460330658661310067285567084848227930146881202158142714079174467846584734862436080258907291264655432748730310378532511390691826640361086258760143539584675291104394266819983382118941377894936506212020521069210302422655752280119855448321735441320610597612068807558424409917256045160582632487702256986000762593347307885121521203655091988791638240508108359901683900320696867152462366817210373975351219401043662792849093098008427404069281700437530747111532457377381973332024850247708085442883788806363444557048899271418789465911783196360309950561119801063087652336419186481256312487544778581462612500443468045035437720736277823449009182456702450998841039611882669001516469298739134746328495393174264370676967573258933135015402930927887796706934892743233482832752330406716977563980292156678176340887996428723555785375884685392787962689220985803008461963526506348262188899687581954467598024778257883792474475739321495126640937550139337665919458173846613473110411517774589602424245510670204364908010299442452854931777269158527392302093120810399914841001931425991598241340368878689756401801873661814380916294114894492627850716013753637744744537879927358768951696054956979040185427760243909336752950407709421439009164454075070744003272640729792660899395164666948268459176388022811263980570928267313800116852450683287225548740885196679329576664537052423923827416498336101747691864401779761121456285349094031089966834285155654021412150937877771700723724622311197888944769147091585808000572909330336504736333767860261692313775877115382130409366288239914293136952876333686144215226502044246933706593172720381918184274260225436022633173932271672007558523583917127687197327522503596486017226338226456028663021379260950617825889140938940767291510486113529644058101116787452622573673708915580276812601090283735422221017662011781827724066712797746238308328580431726688162770051112948617706787507505911291639536150957710936056872469731691103941580999312519688187447269863554743724564621155012662050259682314025810568328282433307944420901833510248871820592034034346158951842897315026687068128711873867861262526922644647701051441640024678673764680368415887993455715577137383745341203199523871010107992847083942468386626011893976386291631201072389974968874363684452659614658277002602246022337117925064200241260602054519836904924655892294230931137006666501934296436817629396578861524832183396876520379652871785457633019712071295244092946624722795380370583170063199857367284587979989927528576597625627802230108949066200958309711238632036560817535432165246121649933143053637552453101074556763929087654069171213811167920931466502834947748718133708007783906875955393202941344655693392073366001174515884998492701812968006526004829359272198814300136030031333589615999635529433775470769401796261053543150520492276216863632126759955234472782617515932530914302064941439394296544121552029432359538027432761011899425509186260205767210651585462941541238695270205694478128535909280388061024609429239910829483123794644401498858987890981865855544103037789797725269297915873347078684930758881757959425036408356295909365429034317085561071930607609662315467268083899692126379744607005377494229017821735478197534483417224367680484795104586548231660123121407744332807437932456388334228600624858208780686828316671061946977434801820843112246800283759293160668438471289568432268886892220386988135642198007685618822881347231845237611070861737250786808383102312504080999567725012137805416611400849784065365747883085044996298517104579904740487883329888780606795411792884205826260782077261349148330644831551683364489348123698850936632804725973577777900359922155270959450090357135139025161314059967089962503518190349885201691065089829815500566133963256900183068377412908824023953556217225249567012916192833672577014948876878108046053758098234884264564901355758916698941190115724466638740767105844048389291080725363074282652014483947233723568275486562911803593766087056831035863423951824867956172140247966435694944163184396772567039279551992467988892270452232195687601388552499363355725719609705966612066565721678614117059999804502435456635797719982216063134518143019045299163663033505609346601575561065785273421696030408419637533439632550833599885358928702956284641265367427252429683733347807821507890640442650756363414592600228399323666365399713657540573342368704345470172373853108414556679611770873132006453335798778655729997528253543523428054557250400077550105633938247832571022808164298199607877002203271429696555823776283375761925092907758065945697384880458233435427866936078571388162369494219183388305042876495016812337199493654552386603092742219614966100531446491537390502161689882835755172897416082829758314059122355808477412911882764420384101467678368416847603177009715101128723771922699879003249706711132386832265985472905560180038636610027167327595611374308202978866836527323372637475734504764700910688657963594040763451231376937659372672204450372113574242622523543098698878892501415727424002020870380879460182471089108026632621382979620847504321288845782676172359124983990481231899653980201057372621193077954416831802441968242858364903630974158772428055690391040076200047902532180068199447102877112387796145929704341184418602050707262490183561004149947094440865327883835275443413172324579851711036031408219669308673260440974574956976944974076638897030443487451342050212383516036836799484839521622732264820092198203207181567193732418922545557529353070183545648234910638173465316095049579508074389198313878501224095574700336273572293001974268360135462450761827152895657757736156276280306208188220949126616842828375099501480252987393826380339653267282546790182693775570313199586541090488682740612225484252558476950756107453479273131039088501854623889105902323006645420851994984299941402817675704276171670340469260951506582140397969764421126108923354285011841808567996301792282166369332573639115091741181258105014259605927242335575872871532489154657985175930204778867627103698522972119292862141343149879182583761629459127728329037375390212562444058762619324941870580326036711280598280892876321223216727552489565953005654163162042904720069895141022186332860594973880435675993193532176297729000567838468915505430521120148849225266056470665515072933324442816078051566980246582017251601052910340717498678890445574550358201210147946465345747825180351687354002036825533469172014337839367051165627625280565563904562367903748288834592469073654816562902035325075697411434474413239041601023753324036419049856572582059832764805849393283673544367037886890483783707222258723763239878379480449049414098284247620202648713805288685433736352745443659259745669052283425681530259513587583987324271124906925514603196100809167512034152169772172400930610246455105006457696810209408066886389503215135953383482828489465038662123570620818044920023371820067490869577002046301867335057552875117447688505635291340598088969182851533246192234431943590562926733251886188093981995387265394244298546428329609471803348219761619779619537150342847150063720872090402809610898281610514450948738951194932883928932384560209123041609535679961644291008367878884984211423442902818187340746595766170201583138229594937106100519043602904847765332658800417028125685561639839942030228807972337178521315188622741899288583767731475006781576971127407311883430957697717325549186896215427162284425988093507640228263247145546646161717052682203006092115764193813339993377460777713848971829245700268632922683779615691272976397728163578666797723564301568243114459484905432106242811038065735708261765254170907497252578534953418298759622533219195825675495591462680622164097969851609595549324677969927633338921678574128863438983915601529439292836903598186797514494083323209125856181319594828640763756911958228003795492678030011034201276154419291278031100202872796923097367323568624851192498667226611031827557691233754336000583289300100247630501453901330058109321278370518162434880999681337617221977280208394613294216837837342567140823325088564140066192358775864484610648993249655876557784124210079791664579738558263611586437917157233503510657577799055490846793820502423435740051626925225062980797216824153623643067299090520451580661825440281733559930543397684311898578075209647100107547516343651130311251985980481037771409360564533156472313152035905109852183562835016040673728841787904215177537315579108941402366455480239312535453196897823273685309629155140686411237263340873313350951321333777987678760025857054195096344019169991605506089348910112199437652598480512890223374918514794340209880941688829177161223562686419335210187900163340267138742996292368267469249118665097311242371370402233453193283731239569203686800893625525266403825483639908878379874969332132010639363946539279262584695625394884858225447788898543922133804391379832451880427524223943897908435852982470469195880190394617709522341309815378195879239254657762537671752666464577110200079442438513995268821159461783416568124908594216455533448420920768728704014344610463803620341297531148560298246329243252342943144924908205516350807647426708696140342545024804794264531218454737772918411210950326663398990806985888387350336673707032858074404609603020313896799437615427666734927226530604356426071832467752452919450850545763878859359234985106925249200644745434067110024495187232632280805877317539685814959883870162549939394044171604634557503000052971281961473468232948067368522779277540088054115024751782906825627561581769451977714152952174316357712811154849992803138664195765148279210804268378373444499207698640229093171724621198098386458182425503506470243503291449533692330446919525470985376640642820540020579862186572401441022005008372265356341936925377124137099164262953231732335232768904795157920306403526675991209517991956192737299649050203391644205909792315889934933190954705947965967479686584455284190527847473375450077872298881282651335672769510662664560456437944952731859960220767848188781279781945337040079170854998456477349178510868395074952914529061114176231251563878508145453940333288935564954257102286301482794490875912894343572856043578163945916125376711223530594387284048939096090776099480868754444552942913548853914476610058579256424710389949315476894148246207453243660802200536731762480332941615152576587032690768898125295090920230404643502927939462890516610222165648380642139164025298585151013445380241428520428487226964506933455121465506915077882154986803865611949045322326830769139827704996619612859116134502269338328446119496571795605298246516210117901560512932081069240363709473972647739200280025778620795362970722754453797533236543535355059928764852745481950048648010660407333408960900419176141904993301930633331986242485387346997953974083587592746670612679132016366668156271861374474027399487613579140661358670801951121339037514999074899018375299552853663495728619877845437824496828078253827984144823562062333984470570251648417532962079689611048805530536388297878276057306080706221893278573144607921990323259876027823835433714218845523478438387942317292889665473441545221635164281370810181461297265180013919768225155106359888176500311795202363500140549218415217895989935782544245861640048706692579388778360112919559968681020075221959706508075698463583419818389181372479111364788686029195841434892368495805974583182659287882291411945449114828562110311941588977311042929623061156861276245996869341526966134664437648173721314964384618284261930415867584963041776188657393169986375143275105939988791563832671871593590159043462554373636777425605486769033979890817358103654614796441411745917736815398453122784835054371461730952468597578561231522281586301661482345740803022337408982446280307901927810544301494049094732016885117422724789220861234170199643905310597315381971623920459494251170254029170344388369094953551142939671006181431133430046348419048395386102825183263292941325166112882072535661851173840476175438841949384674954773528273893480624462778057221796354411885380855448745150267663508288402846914247301865491180352291929087307278427314340189974822392994325390395768787588004754524459022924823446003081098021822011258933816663024771002044489989128602206011992763949154251074755123391452132437561267345237190206490455649856922923097769824107601214776796997007072008491492309077928710141625555516837290034046758038003391487640092628109947507854182971824773359746150189573819740976223250396608870027261250979229848489204042688015822877165822701364906831192628247832862763386851738472647905547396150491406504898738583194136920959787804231984467030836560735902157220592129376179847122546906174393166712871256385273319619797570545820980497019657909027093924214624829786514257565548709373634514157884753774049790296991143107716964439660114584277749460995590332118549469019364027673824920321386256884480141515908670657410887048854597832931246147630371860363161240955644760528338028122772030585405250074692348332380235518554607328865851560405611778622471670835107893511299544317113149201486717163969674058207752272459391747696141306520519306243116025453578401521440554304490393744154655819067224297619759046230951674975080157135433215607327333638175270959625932956793546659410181352286362505312857741535645499172625665965175536299460270678525744387246294646546391233315432687799560104042699561212554398902073842406509586297949055151576972858338414086228059927511621426756385259285414448353732622903404040632638058369521620014650849655651308041380295794001195239779506403035709623557661438393810828625171160747677401327825024381987149934069854221677788764106867310570066393102256779486649145068566446803913946287463868784931265632291347745279277162255138263557546924061326068681229476298827014141186396862294027462282229721749475149605255709744726103517005048834882423792821105637585803147987859566142534945682386923870854835100989892262969327944479450676875785320664721277665076843818215909939560858111726361927453376239469773324065754983123895150422077855898499609453267102433042847629554647864630495069243891020767364423935816889087175717571481007328108309357712921888126373794104449786393413264122961818605700775384842049233164714927491787842069430299343597147308095973914006048897404409496506538523417641050862463966578863721741056368013516477904678182147979864941660991659572967726500214842288543097186876463342995985387045071515559508373977760001692330404095568625320340246115100518929815763738742395052868598264460084796870754175862472475031710748828610068289065745921773048714038389019234624077636678325405607030833774966348162848604846057592942622769731169067574947830121641011987493842131690575031020757643746829936672977932971128999500031565864668288191997649181404575814735693938775436116003133682261769188963463280746492828869264673539056512947017753618089557993575987534909306640991622560410149652546647628111098369954520315336409275863591140275419252122317581111771916724886247762671956150711166817635373045757855616664348908458103888457883273755496920802914952223076580033348501293156568461958890375086959905342813092952063178108764808008489681102238873516845098276132714915307491920317979292236057616339357882671916208411362860288060559002511210470080484427544815082342356804310226457874937303174517605388087205741831027102157768434648078026044304696318913191192498239318953011295993782747947570290930833828924675723127167079046310775354583857622453797773173031976350850272437307589622663463622364043418306937471703497667506514409798099874709645637463059568588537479363681422294754275745276411014061186599996002709773668447857061215776436492680775253829958773254334162745459998895871633373495489895951390329715799824737687728431141671954148744614217152653476515057145266353786380587881358177292761043481721997175362240173157053344827830036338490553524953870509917733775656226575019431008699618462422582081000204675907925191005340117494473358064114180568252793176562798713930577362655856166620033518192682805557550128320048980553667406668879305213270874677728024553097868855769791941945903639816886593092671252400105028524238539539882155325133511063209650285744138333483088775390762039856346038442409813157040549200643901394268448762682367289316414318976586718916239112798323132058338765212884802151448344672191721283321769389978953986792634807783485352063069431219331140938229201209679996548920671698257636064419966049255947064906434197808165946281881014054415080561262935958752388693116680500079425681297093251419554048849101296642988343040558055560860842232199527031285446273413539971981681241721938082931363309071227030263265034829843945051093244395539285718208444009105498670123577394521948976660526127926517848817891192869862670922091633714539068798828623041235353785032104923492576251356331246683858008815008446040568102131657421302648607025988258791987858633341269575687832123190330560438919538858483067928434207731477606024049411915194745252082621620649074718221486819754255060745232091608808764970495913811026765578281022129171909290419264358125226843152500535344388117583310128459964163326312828579799663122042111491400406008693077870981680291539513591957191891210262539628666844429158156930468152528991171446542139176960593789073862146732612296939009345566666516813583779366815599397026728438063232777585119607701125530685201537372805373321603975690896054219828490447324010342198153601974757766099801474207328865541309852971465574717711639025693499912162367446476588207312543551193438173634300066620641410508482918481801655266119332666195571750890751548954986342499787263681771777571757550534899047419455082564806214949854887914929926369531744044787209671821218442440302692831496606819217779051223158662313441612164777611072813762545687426066434464724598123937521058569483616207677930663878731810240703838094726003097303608302215253678227877718170156518213776530846430110674604708649632460312005431559739445413090032255556753437518803501576947805251317362207464014247426193842629658960970629219239754301952735244292530171351227985297640490179065857654302467165639581951770557129367274151900416345230648685253315376657984393139299813574724487386766321314647754732200075083011446344880318458333590553461875756907502371651299958570929123963403528149868283916603446103351845673153470177175019924083039070288798781305023972644644183573986126980305589401405332985443718269919442073321252265186831991003101160237050782460976571514352291169054109733870682110499274869455331888130655916524445686622915955276568910087912822560999625830399674848923145800999193200991040491195128979234159224013173216272608129125249187360860549713617968822654509086434404378829250962800063339584211224978015677382259474099276143838253622514718441868439733676356548479864122963794504414576350583574929147082511740667110992993816856037636274868122592387679363840850477501568491479045973695884113379255044990644541356699149807574903697683997692061521147163329608127451469463172857259250651030825397585906044383649424743909276103382109556030794188099266825468293197730938889267114115955618013810053400434381569216844817819268800216942368185299217892812837279189720685245082673453737503369974420863599372235573549679753200314535355066007902043855080061543565891329425892301495171396099221136604923416204882188752436163083590710290628315074061814072972751477280918805987224762378946869732605602206318932329426170005661224086987318049258084288607032647315117041935992752952136219749001881063025795745890919970227913808220818433435240011765915782926216814806193352393148308891278379649446046624524820070555860505363752536117565727443129785104497972656970067319051667571629516982421493935201879499714038682073023410807495222942649667907418521788529508156395626517251548399498385693881492723951414586120153336323175417424609853723054927073018984590618817758145812584635513825062073791436716185469612243930519114673039206622519464702625032602301142915941419198584172465585032176093832059511548859572818881229497809467070325310929873470520125971801191360517817615167209200890855827127996602530762359381447687917206393459472769160797873939108869675868954431985628217341508547730689516987480780088706065948310915826456390360108284992710125355036153169076962419356611648396080024129008296996721125198087921381283319845489165175780361273840262566916716736658465121527705999930393563898992152438879180775698765506542492329527195032068108050856543832324310751441351978683807852448034956813748733997365012482620558842620624263593307465387253771479536506042484996824114535588835473786054734701656567471185262989778174314285922802974659984119954418074207143619908453674139176724636282496656525894298973118112710132491874598086081569146791800232049453612062071602038719680262795059159374233646593255685177408752062971061562981546753001790499835102590374818532386298920668489361276558162858067009435026664957497366305021868533689039512402634988803854748794702087581664810998682645264545890243349039112058319001279394020253989333486808555690824071407826811058365056150019419262243535496026618663937419902292304586859333766375469983960547006879368302197030632157564804548747713955109393770542077700941559484850671566650404133937043231055875710665805659476610409506967022561939145280606876064233165440937367103955356709852379206935119270057880603961084008816446416017032887333899720711704012225574445553154537847883410428731821255393792649867773556926696108272626312333519093437678138730678206903879564486929454152048387217053400814264496381271729957639120217055598980358444667450114278194992084153860166270276009300837296786315746998664958272986501586407437322453956982570347031227279909069943238122647041970422462892175968258398867126376599834763770328609805009211939530630561297614677901499626512224474513852401658061837357772474035577749857993576977949976439925455557394057635820148184318207022773011022668836525454697655569827414450171341085585271162504660897879586864182628967031503822207902130050697502829521892772779769804774371530822681504639823078203925856813238101409466130011794514487984416728780579826623152958585425403253387580480408659789836962949938974482694565425713790031308345529436926097162325347456144135052156993321874155376513732621979707992575433842862052887266896753945995379395699125994775913160776280582494069267178088030468404105603532984450003934277262058848130324917228507448997408753141194223023157360893251634473171374662868023661219055421879250406769286553846317240364130037779153219952952096768098795343692373054083925927768471773669284922533530799383453121741835995792641996509814431178369672247147199268519077984399810011797067038001339981323676643788106723228826460256077159744784830375766085778304817927889125259788766044552244189411635241862523563949089831796532195349501629145484691696805968960248604674977538028761746873940625648140060454183716001169681264950194537491601061991127149445884130837214593469112294057781000418473711609169176349268270066632886159055208367102515880831403489746819308761813198703662098179411754534826004968156525175310138833405400297809802737277808766782569853969243348237219744545513423941365728251070517271755606153028455058338717738719553717623482629885614117340470653443856284289527192583469916963013467612559734177432244527833638791553593649526966920136995039642661307116702590244681860528677061617274361162170529881490304392103990865248876416582152167362213350161262542241616932704573950439120895260860488000994960042690590105743724816924433754387378535691068963252859802144767126314508324746904000561777749410051679871049491433134394426392218701406363492112206076439718235800085186381158764929662990069138241503576830081219832396306696710096411530227111445822261287392681234234965744221437072888264687771071205850471066871229320264650448008245193470624078812059740645470165867588288467144031000922766463162470371238059114496762580851549112743441846725462627685188393561278506583369525937637788488439327117977391823747266525176766690090280096098234230476211197005784511073766520048131461323083352955859763908143875328287007114603059313410826826611384830306558413053320944837121875257126915123718490787298073723079920294160745734562470273585600617214795663971640013815471734521888688395345308284659529285170863026955708205040895993052901858692035721023602771049558402555981061387068657674701523103498614511693397460308716003747074858494895876326536736367326039977648126560290456801687914127434229751733387395606702323287904705571169473952790232899089599304992079606678613401073672312010883023629213223837985854677983724165801647330018959086444731957618979749060311697398036898866579098167118720218663827567199678776661673601570815982276161514207710074594399676634435888975599538981015549150659193985227364552574109982959304303345378038501152994646412659722067115646779849712012504276823418809331320293823057230315797402169334489688757385603561887050467919357786034492351186922055346430458597795907139400951129213978739440292089904371373001080924646638868106720448672969433755058691671009180539894564623348935764333343866484673938908972069738657553012618303939895763056112856735525490419665899077609589244249084705306304076374544341787200929288451668442931444629443167788575165909042846488318073728610969499121964294564884232005173743884109912559356228094937872172343365446585854593872352871861938978978984092851869394314559169896699185522049266032412670779720271135699199829076041077216884558682744694912738717566879399873334336672351124505221559734921307660192421185632307072258337218057065261584925682934618686767215311678592049856902990025827036759672981506409162036060670923203356349006497836659249594610621538457347601780976019666712198427226165024415278798132225831594766774550110611998399717519662101711868642112333601745893256596748662875084782547963580584706141609156276171861362641352674721769320492304026354676659953452549188906245743866528668847788230763683372162607047202033274679654515199693360642834299191430067137110757147546610045413908362960088947764522959703852561390589189788519646262987445807365822776634516916070783739259937227392244557288165969798574541912002561480688265584448741897966992171125531787232941139549080221268603639551644262095150204085930897551838837642378375253728064203192044206315969045791723971693803671767673374985541011722650027950109173829670401527948375597043098816888140955603820809430122500652491390667486472869571014516689075211041170609970230740738074655223784266327570066259824112998391718477425925733374669129809178949384895110149535207836876299943351062497020963324857995819775003622591556994202878757396444843244038896288625393071263838300087472764136965098015836734940648342028176553784364668535605611786075786501411577004967757321679123936356981920413241073548909391544431343417960721850977482269784715058353159172673073920541500735100182134833953873901603375384018906026796589753562011415472780249868802298508624469170419082242673399255412648552055293637739044422604506811119486050116384337806567251956092843825649158654968002155911642306224703694621463939822270260088324538262128521921440158219034518762565731489080987972214869695653233587963687505922893872372654594108862892251280537355866080497264295388882205700714071165075929201867535604031122450502814236129996093479859338663376153298639516725471053664582759242479533629688741758300099848827788807569652315770125568179677716582833274716509969011664476422793326130656439746398606358048113579522130112028441240916429960225408442852798326780317876656624318454794095115560594139708550798270745440181760428779846389627192115103809760071406103754903113855147321761918868854159940103372697634449294341998116382355985058616425093391700482327243884669037294443538202425336404692585617833301422475893385020458494824054682173181499756292783196925086626901796377074357007880375389643567574911639711619050529724155026088326300197970116838684080082271670024869991752585015596590368818227754290335766536165271521092748292562574524946411490832883700111528882191273017340945670354372679393012364466003609342048442101522193670622057503288017725490846105146713012356019199547126284989834409690173392172564682762727749809280279782237173667940029953136920813719266891242022156439643816192431923349898956332257748546789744465361095771773580979104188564304764590669680175685028460824824231573355541911476331240612628192978842874314744603372300029986604564758763230881310033963483481606809765658145902281106398306714242871016740350053000737494526371974281476293879253924868506038129103437050260247901661786502057707804477463280044427404716384269935552382398607576241138192361290668448475608569430449459153073092670341374141787986313361504719394382057713461152216006954574172811314867447547028238106892520026936558195236066968091059030424890417104100696309232781690196835776973500139975275181586407835217728694433155792162894556050450770721115398433411805768121717580956804361657973914699442600862794868979265928015426469051187662590626246653276079266393016204231408219999013055924042868587921138961301289657350050759635218777420482833237187235439307328847826845818954586067115723895437005739914239230100438504962741407156784460766303320652643569277520023759474175417044025458996854117653510071980527056114422088005738679937879140910908937334552747702801501834422516340445458623217291475755338489387804980119516064461849067325232468907547266667415755044077417278421885628661998135725678786624676831744347060104984079946805972069624890772819073899848812529855194820229900804867170540417920328714719411710615159807405081422697456247303255833384413697040180896475187557251928112010525573214306159745341511314438217870043174565792240503646510717011309411313943145524098049754046513369199850289583825300983047937789894495128643517860637825227750608500566792179651743912839471182160635257636136433222236910914433216212952486400203632577243007235558536302030906087578465328443398227626686317584998637332183747203870560260594196274614140496784376797049758081427741582308021575465363058363354203247599211536478310014552428913532778557492171106689845443051989106071390833683577217268685946414777249228645901964123607056058222788416857433545331849530211995568637969929409354758579580999535176805353389074864420469760980268600724042893862672153133135006067716170635978003906637689373764810332554322426019985021423199165895761092636678270602210129128610919691707566631803656410799498784176738554175987612063967013261273648301438175787609571701317347789498796498873884511025558018766824556684961995729491266961375050568994103078924813654624500818689181448605759632930188341951901662560001149176242533829222148714378348763937807697634876359917275924005274678062219334564711271273600999805940730682133222436834706452607117710872792715064857685473340474310170958767908923177900483090370356754783724530595838611365897033010007572364590573143441945447818615763652043229303429745197432071640556395144306573128935837970044708679706576403672384492665081150518755429208638048621929707969463001495060784267141900824772610270926381235732154420761535734695029593380352826039139212502730099227315347625633985062756182344652678107522103118291115557745340060054689061303369936526112788321625054551448819033129684043035321800546581299268084959744772070433920464136039216693805375023076438075917860696131883629614217507393780560998703511865603355594624266070265243663719876614016356428529805275738051365408595474934806636506932581494214055603478561166627745324975698274635823937905116273719204913732087332616626865385091560904617448723863992989766042960328456957538851490214173761912757683743897485999209509860371085618131062159916035460200158635949172409817080192056787778312222822532324093960725741559596922924607537545661416302355855418343566845550902464757297558968568281635686674078383057215048128344836978504350801543729256360508254136379454766517274177871916384157955806510579300932934331177417795284772408756066926014050460991220876179514719444371313171367019487987933230400285452639847694064364365932759161313718123473598894571000577564948019614183264284908312294403856486805134241230043570856672541709102667008395018219218843051811171060072175112086899318864306267972245766847966207335511467247726564684212197943939937386641995658623693743474944362550649910899834639618007846141286632342241714143388254546896617500730839783408044722942368735219926242504516235894494286844110434064670689027351144154587520105031348350094057768748236025224077211089392605272842517557449513473878948173578100168050982455231856914437627186672189202962312526232961353167955558243010132274088072505609689853854864390893887367355482075811182912474812279828356579593528450419967924110207406524435177377640732323593777042894018445409222639155292683871773391060034525192624357024160019299693193400989419056343017634023363825467836930421789489840811704492430182767965200259340941911277429650817277359465197380371008689205418048021125391735274125156250681797824548737255223631319746972399442209935466844264023691210899967075429716168926361422639326946494303492351054744569340725484203134938937141778134194989552451899646402858159544735390958626111303116887707291923579681722110208748944246605795427590046474532147965266617449212407693106953736566323299452237887159068668355729494489655838377338681843571371353899621079096516800678811190759921195083667973304218625064723279845679047701597639792443746720037528182397693210841285424043518989772833065136157241866407769816182179647623160680614220669231101165976269013844223630380607725210391827595159873895870533112021229025767187501388173815569428615570818940427849566475413488024879083962048849484228890930412862521885357716106185426218338290116819814043380976643674961460451517996423039489122377485581014188109942267560576758997639375586082971011408326156406847234340486696818870677896161451752994738192506329464899588931522522496688593518211401527836682804963086007238269754334673543809294527942588710865900747013140804712703688695592988906400374318863195878929506985574773088092190818061417337769125273815729123891569676732116238033436106061853183727808161178962873396676217475598531584140981782532015186810019265681482507442061188231364900488117833012264567999326258373298484161935503851616304742895809686354502675357364121733254031672887764141412390228320903969517914303049096443032957675251884665335821191346437870972051564119741745391567125310919529147745643575993000986382178122374907303115266942830102200249425386809340832984494991805382661936398430936108305990804330044448792037257062818116718345134345520704624522544873115201122904972891971964665355218544039369857163961490922936930876771921551997053830823277166177160682859183643213454958585427581063413106329249707769430248193130750640426037049605102164703471421920727143594952341926397280979995145025415189004798477626683036596278735752773102421806624114676997783484597517571962367478344163837949685103717515200954048494897973754261270796991510393392385950988985800513676675673388637148314494880390595078724444759845891528969013206927884681116845059918382690313249584614451988396819974139755670788680285857972132703382756366242770345867951172841973264260249995129495384045238876312172814202800541195859110087812351918388027871203194627075306816548359997465653547130773382423920783016446074120570598394000637172118923704475758585450136069192286621642126484169757410182569494715816483091716318454687556897902240616590272966096056817056875006744345004159796938370274146551721801121808022052776687022644757985937748258608549467310189741854483210244318404407390293664982535129238671208375748097631114773879615907223917078929266110298373533285410832519972624706783559071962712955292779558417048709644825751413496347212533892835466484259670658772092713274357303711440914885758612850933897213714099148374477648123728613164079469966802127595949107596572512251373853795838016704461838565295583943814987122830258998979523417420544996776698447300574696199276082482778509007513047572646139122939320898921164832879288002005887209502796467491543423733191001179681288443766520111771230783967882717666341522303708745766874362493244340902996814192494793214171900687914556556545848299664800764383789559294111586531015799249606836992581638614091945001643188078137462160111014000889815173134857919243715498414221215904716427687822542799472663518788864934295505293060358104051511721280002881535967287895906387688399294291401476790213783016518934223008904779121925047775328647984897878379024490229343068738159859404565175520901331233276995531870418304548922442189181790758817313593877955411439377137545276482011286311345393364311358259205018075760253878646832283130591976072687889666570935826315482851224539330623171080331295537568931507103383480534053226895435959693048042644558449833951306048934507071405403326102905342325557239049298158147982948413503780227105541891852566153931227867700992859638232392891832724569385725320735299379764792663200183653775446144703392360434834181650161237438100189601604423511017596490557472301816130029179652922831279404347663186692727550159985833756086366452368104680730067361754087036961258235805519959374745930766813209731354558215306131270988360238957843931808925705561150411911381643375985164167132555489430709301702144863063138162670697791132499656111458637559971884101319216699850223104361543099906937858929218429771352668062036187837573312381647230865933121035528325838368700420079629741933227365931516877387611666859639651806882890824012121842631512637268511429655995388002983300548560379743861124932351292760060473911663209485626698278741721016355014639095273730858418549494855044069580038960824705422385819066020369793917806155618835636161716546091501802507352113786334863866121976068852059618859718397741355021987412718548515982081356661821895462465202072035022753464231714894865201989508051247518175295144960019198807310625356083717960977396878201302869452833499728623199847962685541974113306148192421393082407509521668706258931455049954303105792132032887965027188767991104932081430412890508215352924536479039519654739819904315254697415942753396217514766941981148226312066754381243224549844022214594122665574506083315803499961228880094037412788463634558483599293452840207153038936682252815626248638258294187812096060735959108141466036378096059727927649172340739772006721266845881946879610422959363941142067338266739674527976606665137261404971456395686067148546887030523928669479303723868056859447753285660136351019112315673245384718505666049487758688198852677670269969535283168362631810898956722998259004100435491508480041952634211278135060956833479103823655793756227938421978228785944388058632112279691727699814729330014323411543623101717411660313983729000218493076685771610260448728897442156662094788544322108556826133694667377541979820543439506594257905510170355386455063146623523140668818654765168463127894601336431406937628795246350192155034051264289570018533742966253283777048782234432529098522273466194014643529431984761837134650991837799920776149189210931939522115148236193819045251881640309542698374323160462308005908754141130186163109590769872244517488136238807720900153678515584946959670056976909552320731447963601096348808526106263589407563934926838166681332913177421405846216592954754400064168760007176051128669267956565344101450890903036533439482830278448950030942377123112975259236025153773619723387194697786742041512050740859641061074028254983522820377553607378647337390928985290523291434910717187841787960942773712134439887111346755138743771351678950900344364329021542410727805228395298981463877068554250672341014674650852425516479704953695226266939586290337511730574430154440108760979175897782660104091413871261187908046582117273452019976330313387812758438013433011844954012082361478365683009867395142834986012919680016476337181053418381438774220792652530223207827542942597672573877164744188958619064649731619628243286901333086808150846981668376626942906267934619563230614423206024297869202773967064141841437805174296498932176793175393858081155789047638995641829357982979000362203803165584153665493769188823053583199264364089695186253261049866527070599537466551645396115189610230159946974084150365169483261970257788168918956728714708286770059032126863885374571163528127460216120734838440125645440267572263046346465083138644074746808251788227065746668286751563319961806974588397883075299737923822819555068521309713290883284336448560292495204090638636197679967122267418983379465018093642844023977043880938499900464279996796935574654451151426133825222625182803721336996102007671164383884585125180237517107026428555338453291025819260676622927401620671557424313867903018473179088266542959693682276431037329593921001341837934762180251468827321691526842441409676989073889926266880454814388638165741622930342954052556515417307029306761420980979501664572548767346143236586808040703972064051336262083394570057701722916033042140742367969003608048991914850710758831412784502538584461345739337692512837245303412516564015006071342132102073742849418230145801853459702603631757760150334328237701633454304425834024699312421191794005482664197398754132506018017841009186176493064283351890411850977187901967256520258901455940473720873175651313301981108944277255158189696046000240201353990736818046248849489777046162692385576538956193189085643859122595168482252154072481139225217911244175335613700391798349784302044741765995531222546659805201442475878593430866740845845717251787145325261767933702096046708752303507489754408388244468136816678754823363890667249324508505848215403406404465413048790918061408077373157332827698649967403808693657848681257226572932601971065770770170073538899216189685689588994112739052027439153012859151767702848985268005670235964575367739836413449215296185970892180183823768798828165985111278107001506504639254633493211396655059720504605999916879409160772955404908384772568006367440330547965348504198010338169723637896899141914553139459488244110261658105268580884561677913373191370672737056101074649891467958110512535149936475099378066627489749140799145748265226771311914352654529693955137633651917328093446571772858643622823494072041779453353965909886822604920799155235843346468592914654064696379811183433310928243866192274222875410062372551314821195644146001973146455599250384873010959134711773375879979103248954924393354885036052185538172248495768289799855409334256839988203435982363546183009305604976198742571261360807405267640133344737746634744423361701919365497789164161075201643219865632740120024017407504142024776867752660514680876323665158158694515829616781705420727907314053829331452634948029318364730244522095054491952163602024007502350017832915696198572122016994242126126793285292481311828404234008891562792726504507308134372128857640696723253588368103255424473320667134168155253193205076102678250577331877869510995948095775346328455912197298423826570698587621201860258170548784889788329594915867889347767672952416306207730004932657473885703441831819994829711494077191578917816177239690846324001425002909199861042090012748671676049760552885020187314802573811917068194209296720770877611831904493845755990412536604442636612856211059667797667629570333765226568977575958989853782844245075241396470056988046127409403763112965682160337378277301616366038109483157941373413383962130628817778452479387277073586735480723313996235413952027113437656742812455516851061880397254375873795648560527783261043790190231045672978826562322224450189032628759145111778176514986893260336754444330651078835102807768748650947385480458470468048919541247950530312269881461143773810531676350944669856872071634638946229977412593551558390869184539276538839229476967350579100475628585426520200606673983565882049952235871309344349195307393607584162346225614506065296005790782291145451827998304812229122556003295471192787194502051040829610207738045321336577778031452963464036055344027613840212724584313651068057775091787196533852986207732605823088168902520053404457504916478438851696226756144448318378882655425823714308125116465361345557639956304113968150929286619925678595436304841201974064202019586817082623408300597152322860844786760646324705588861965241848748878893291121347262390845063968833505595648696495884399527170565461186184770623583565128535473190370454451639168611104489219113302318423379752134411371415244822284028262771950614839015425856310238634730650809710070307657689621429726130275273945646150702682519881063286561254586628990484101452739333123284664170089578429290969927330779493920993502172023548978977232082861843692507091727311646042357730420635501416301544144467528708689380208538329684541808114642362029293665356641944625871363462463184855447194256937690673126681694330695365735005762438498249625357802336412398701500584851964417161016973414266464405816188481226532532818902986440979342459448579958271855967920347767215264565192879482900290643234649710291099705314523904293675929655712310342652580774632803607695613095975839223256493391975618344448233648056812635565262953781095090623268567602943025764755986651287534352769472770932448445310261200588513103889796680036756303785836197650963571881189579774332780881760573022505659164862880898427860735928388648875418563344188892331933128933962883187254703964523582445941305668627298506085896791739168158094938369141757973408580799152537860556699246792172026821948769355957170936396198810838748655476705866287632687543324881385387264117807584473729822616378469023478269041802734814453679512764323384602739230985302519155301422366110595685188481761279694124597212804734545806392689503194316799105694726148618967180991842395944714070738480485685153504645886556640818918960299531010575903946342709655787309877675464410506398713093486964951086358754420115658653969461118965802757953725954108579097541869736278740667301514222393743742398438501719954737295813672976325169768983522635436286880233800735935363518664739872631529396285627920108388424689437348652488689933080575358331236709485822643745307369174639716545915881488533507660250062159797013294728240725691812644329813056400931140543952487511561487563239314480563186687860407128524300508486962925263530706756049882666178766162806518362385917000407287011557009842748769650041967537428454070049594922457428556137365347829327414950728218400653862176286938792129673618191864039387989223370556282498635249502402365827080571718679929938271195092098093191226845006070556982217676077156928678095423410569692689489109429825717864613918067492783615140164819127900424267341855863166336985775275549707390010032288470813826583151014986755402130789179645249613778588985078405566249245058199063919476530852910930422346799233726779331981471084656594293690730419541390023167230154415620984089454128440863031377135072033367190885691972082515086996281869198000178703451348098652560844459207064488310427080652823693299267148944765849723337913242137410145072162522908839641851459204146864709515612691296363070541378900670755831028683696682194329980001135660942649643056244367924994972401714697224216635915113388870662024665052638330986324613411200279779184427585582638747586175780098915094477352218108934719832959772438728655625436004373089323220532971877822542964432902151379390052035462733705423839693528213598684616068655688798403001593801819293021242998911976105738626958590091915309503361951078380356993714797030238322975256313256563397035373124899278147179542678822026989595524623884876309442832640526093160260436496259490327209677990274943656491783394910206861859610532630010979580827683644483800998892832817038388634772855926181390871053011460593216872070707689779266899509629340801260888955821188793621124885069025084877277462538029211026134841141788043856147798681716016028152100415940478965698105259408100115966839917344560349203048989869572592337403725419296477296787132151331353733531621630987821317427223643390177908163983552425587302557181810846872424299074179980833664047824557990029228157411432305726806049026892190860771775021752781656778705909151303788644826088300317931275377644231969984463619653260193301696905701399373182275856492291734085513203519052958978700222863797495889841941755437259427403272294704159540592950706665298181483475264450055931737764067309973229068639874944961257540915474319359912037358474895566334360881827195450221703233611204768376500501160159369039899980644404138581249309465792593413124140755254470680368153293993323203985872081016279041767183315881132899703762302683241796657223210257970864593567346227602809521162716598765866450247290522132325472586046743926362203112487691815557768872798061667470344788315655030733640319711299242015083328855609524138002669934485414511373341975900291038979324570325975294554266254925977690166850060617501179320975998660253750991150263216854730780222747514424589138476377802108564262080311330666314165190273797417978835035920730324154831664721900109755109866432421019808837353829666279529832795809269500914058994480209899623165656787992091203596128798422854962512781812215583199661386911236441409025501336955027163467490944693272613488372386055663720181202114373451886519377512399749827536422813185451203140766009525090914539308276076013567516916106426434415037508353446176907839091093597658251817658842372707318515402664572833457403244458282026861983376866192088485943103485541775858719991849096426136201175867096677447797049232379958869828268784690113931710687141649601662008655288783625875978405003412114090432686550882282690457400911653617771628462248875060677804791139757845635421941565959418364617145532394222419104120153919711510189578628412750811425569868611310672551100443724436352637778099375618772125918131187441523203748026334569526099162022334546737437727228910373794119104530067563848240399242366655713667211433084710698396547336493591096894433325430566269773407835459091281745912486725678377784722652168865195915444027097189184095187327203445020487755045547213726146863788516274725248126432665740301416067292169236931723451127157590412078199337650373168286764810936084988627987223145519557542570364196661914952039487943049937569134729970391025141167650278850491298727622120401891517522831721471559269460181710229126789828949512839693721802630932114755617523391457876036272125867792841524686639307872780152992623580072184794696466948202080309813785739352538027974007849670259264262713537693185905148875847266651173983669495569867112484434646301254095161039174837621913120343547648984346884692206865128183375323090909855336018458345581817399007973246167218368170294543487812193635431158902751762676607671253963705314151646913393378172207475162470686431428805463158720583605772114413300094022890121899568000111673220717561932802577602572057570553397874590890059792354158221775393026110595957356330786562867210002047606021434312798490875642193227921738912811390963772937357553347973247270483277076544869049518735683848078478858331892932706057821630910744197385021002822108424311255518287809312914286904301447103489731325294107272094102836512154702878574333006885515838035538672410818616447451086780704985261413019774320407560630864105737486641770230289858549890016901243200559237723343939960443464078601419345143666931821144863602602006649785698816792874409169916918368658452667431965121331567154973906201135252074573016120554150596565560509499230768956758764383563847146076915940557550904506451724601528294913478499844139346572017357735231799927182636981497132619932548595454781177209251664566491049270374638720385635546880394045278848045467116987166960811194711610757901290597017159040729737237199087682879909968782574620261373345397016586225162477088007327553507253486070423124906643553672648440536432455263121931113925001737458554921718284574897067328368874913592494913310389104643941502893388618184626080715545641569282675553305086807323165047202376423526409672920179028323262580956439090376865360190143543733417227677544555512090829163579584749794288907314234885162906867801336698708425343811786683025522513448261677600217662660511743316655099394684957796139442329343638987795666538166850930466093271951305527338696651122184032448903820547982559052126546214809910195495088989250871191953180831632389277864996597282179626697399308557951877354640559367866231970680202568839415152701284388298028526714982137818762573601220730783560386716708518321172812938864602947791999351364781736537918234516826826837875238596028093904570030176286175709599694615474154416581688872257782065450496369694068528149361763711983547864314452215898760426355232316211810447068076774487923742543183628477452611170523528147786656813699650950598744091523984817437476554161925207746553282465243447788872706515162839340990840353572880155161694971117794043250942620804934306335604348650221668572061577084771331506828000078735213990172930884949549721330048099827021080331083036449499900448344926421886846079838099008852789584777222680141894147557852372084113335723384952482401121583576499939041666880073022724985585301519843514526539546861463150923962780465291159260805707869265640278928644318645410352010891295360843306668998154323212122410481352510646965820340376133397584566516157230380423237524640904569514103298811163995715374511962201840874693695158012289300727904955755593729721939299378768925973091323672744654946293792783149801793104836824324634572038593138763768085724159913205372392810868908641340202493891256804142020281133193114230863773931454943746110316289997721609490156528338136458716851731531825093640764024009294573170310891174437928155581936467490364597507456256400870071758777762077823011958178318213821577718518901073767999352074197939164535243219332130311295474825070341990101580158218068831323432565786120362933669963070653055878287204984261945378692593163962335574938305480941967577819524674410317120320345598207190927255314162000537414227046329432949475183502126194178681126638130502253225952881953237595199139227429697174775943650624912032873077354076109860089451256675823741077430972341267757901255638342744746526770402826306254982141987718466311926599466830565034555408672807700400585792868819700696928705798482224442415489454827659068473296751509194997109773036414341783674458633523155723603928002205379934320379965895497157139733136720245429008401513299217012402247554764503926194592800664380932546899424302725550840309698877080572560548257344706435523078270590016077339354956292435812618922516556352848566146566374841232275384689233674331763148752919133257751716996640349976463601307174775252038381921633429913436470961168955118474524559976876370739769221418479878736239112691743397292296418834603539911138459438570209254805760297158267892227428647123695426815882285703525239286485312451153006646425516460193832983973079071650348999966034123839116867869494048842566127838764066920169910984919271224665784680614274446871730572547760665913493082363538611599069215400622409857914155248591938889201659545505497567267648252469606531772555465124022980324129615523206868277594178838631521663749763307648881686583194624582470141364453659616851992125354126846080962738524163333088792257154640896754889102204078395973055790583295462648412984398816827498942929621995965735893086073860909066164206963379654954657752905809770267977416309756305196213595764609214643231401096693743932944177959132801648030673385919648970125522496373650068998565043300926283535836158208453260217035850557502779359252494677421094235623370142937083129367874539968010948268840612197297236273661424726614119796482354188354655022112962495327906087185832883899085287371565814585818132192713225441059504109586997523871210173183971900067835075086852422349803060120454475255684602548224594611629631261374423687778395315589118669798873799038895681015369182377507703376531518485742715196948438375296229233295282220483263746065029290871289693991302712347456541610371269306593721491052262087608747567121981037175010395301628310450156818221934979402827921922797279739171226036326089312219214126433387025121553460606041621997079772804214970573779233348653296993659970292061592407892552594532849184331588631311594486413927248162133199912856294015982349151288170195197960790587187591020166678588256949988913841285009122051001080194977891952282451265788839293008528703128524411636262194990226071395027847098534820926904445909664120566434683105985324614474295819746558101704854243537317681683934385136528024391634831463146309071063225414735834863824437411372295566011928003874942471898355820483345232347856333602090991844578278121884721545829909520835032857806663063774441637705811281052582772978396627812789238432134398485340633552452319062496674302336401322587862374729967463097733885180398315619928494079409764329748899391538628334660982350980697815028383785881736068570339543020255475720259989843015335260300621813859822056048213331954678120298397870630611288272213239684122997808453772747962230678185530693022502079953241938665720501408501521430435838099495680896999048121607090097443000309479472734841229604098618500969039659009068640819087635430642867433360809872794978813698941456436566410635262176792201984925682367565927251622932825771332645695012445399908187027735401700487066130513824183921777467728638774251360182310790121584369437850798080756987305158476465282452075119438625756972842940397438685733580024530103473224264535114233590015850685836050510081762039434011707041106836372781675125785698814297560779763272896258223656697469460917837700366408799233393237225962019380617432694349266505918356483022376834735962565962113550437942306890000070891571895592233623101008486272498278665137205793340654243031408767531439703344553208437442597539325415199707798946380910488334644286424210595027997613048394822564790509189695300056851993801788527901896094618679461732934140793263024707416543793597039731660414243962978777215583283026401175672591832205847613460038823767525148479578919489992599050962669760326902014383906250711264509525524199842115912039825431736558272196366622517437461362407753638526218193486462381439759622341292308907036634240236499664541098155425027490545549164992320434476420145697344119239689248473916041853790085443308657321791957901528793855769604646332183880209562198059988788591017486634660361690066890590601115038157628256044228360953403431285431713758042957665206440734089785593196156163974056002729578262266414020304886662369567009677672851942514895847549405607897522801522356622415267081020296292207365689040589727774191384930090808433851850779685868848868753928260152078844487715181999617779043569841151973868262765897579872484568562495846760787713251713014954885874483595314776979826070398191126686957886790420050692981420225290273017739654588782067036259207900409447255735796385943662829084452666521493958149014717831510449159176955765910451095155144940673763676184431438422514235412539004195303776994143253168755159428224746191524217149769747826508207295390510428617134182028174398197690294305563069749317868712952488974063029980311093836863955096979486351284672409533985611691027846618202700650933690209767764639511298971888245136210643864486916067606533571011656399979820431055209963851353162665235859349716056378052864707410132723926520725058271805746844815246160019303735667328704696293153839108326368801446873978906567054338414768356948686370598750769474283098059231104952924306018999490592004289147680185720383706738937469620818518615546101739739136173445812110893273698801350141098398001181004921696801399260809806929556781364440254082283858060864901949869624188015594813577183874050317459165867380846564254669593061895444412602055951165336840523764731838899456933696448153317726342416414421023351098633431389989915992375370870676023726534588446109402237686726524195323444193150535245817715022125871721450159624737612147444164108316857760512631705002707310034823736863627762440267401656173494953322356082559719761408100238660849183449933989414485755770409456411361184805589780876552844306852051326508036804205008441579148036384410334459087551357967001497226536557946507497783508070163132995278466787792673754624110864463790288231950120817977304626641306748354514373743623205766338868062073245703918172722130126947797147934392226008432156975125541398071505953476533410397465892748122066732387720911669999340399001287589787245031034717477932557542781521660642833206753068083292176785179621876578550588213526753362042599581200342113624834230637920914521924111140631846913104492160245590570910849291688382281476018013611006147527815437779268844411011773415037622483428736965257967620435269146165921489599975100357784912962756088393099285091343671520894858864327264775986192594543184428155018110170860054984042872721927048371030200248671793840742075425006938632994425090842734604693304603793926463624758909923940885929754262049524115473495626618164756144626575700096464128938796820291624837278263927732759359274668811064569540647899173373668847189312809258150560668359342884339668492452484429849366791298779734906506713091406148377806333272886177478811514599210007118365034823150910314532296952575948405696020276481115114575677753883478955966632824326678535454523428317008756370119018207939017230821524220802858555038066585862237607110403384278617562171856414913300650843060002427769278601567762104174846555636382703844039372772383333151019983830063097934630041088671812583911960342285401641655629782641533947024126452312262637588372105408962789485768528811827954421874711195318809168588187339691585323877587611959365939464049023853959355474255727409509344512782527486737015664121051844176407723892125985024163870983993930811167404766150883899882120936765587456240231129331756865168855993866012277791413906240160879455751619086571642988185425712508908019082208418667872556628562017456142502266532404963131882389097413349971194656179976403871223332429456055614287689990667383032446724755726915589301364680302021346774662037869516278943353024235843663804677978983393151660820562078833769625818517321345194007753669161981298087349839279437134432325021788579317476727399058881883550041041355261414749110655538504897847892108668102149899713155130682607125681612540089749790143550153365135599249715901041073891123665494913376185175131493672227238823554368440539882042151143104020402027604067890147865828057794727235353821110938195150481589428927740017684080495974962763885071014636332149201428591674517384354903544435502170102818961110391135230076881755540778824163280492382226976979569042433949637040080178470769805815495042943509372659074710286434686195356074666482817987721675327109476334660633587208213511132772349076192729271714565292403589279332181268082385935418446147804893220469317624424461922328543893190913917453580667233103020773574510596451270289476802543616972152467182331113935112781870416676429366871999915580826241080537167854620240661325484324747374093764629095140695304403541866795734506852367023438293417059142824025446272083243192041745034767394419612394180322486785038285780105315190389226178933382017500283129468754528157877690824583335813463068247103694644775805012354136341740665213034591188462073889686807495072852937535109799395707890923823010420011744232325020216653231166976105585142786370480101492583357027799117727392758014660063637766960173023235696686583264835604123189265475870850312107192654526480730142739651071716277520169276999976990042360025401452973522124294177156879713571577124565240420093648711593977067093623425808921843854688399937263105897332434396278426884257267858276967267844168556569020023877838553567523795482050404977712530475600054874782419417354192431883187908021006620651752969576710154507145335347739483007024467840907047379547703576365170851511135245651792144409821188414978132555706308548741971244095813154859951226653929570090063678511431506047223471439383053849136314236216824681612588678494681645599111159955993434301057973396438292868543600418341204067050972575993358727883818917551600846538638348446719905388404608300438497230868689887303854353495587373139585094045998506747529214250594709504955586552061331385180179377057383319225501629365143984232732622252271262781426994243053407835355713384610542417270510489715622932185706875072269632331625888971777347432252513665295885474620144927840718858497070399714627305512404501102185697419845801045944454498980158189269443762893292666737550157304302313636732981772267955770660928532165164886923287063082955754541657989364607536375480529149566516807125128301929400595238989764373792595292723430907490831211597173354093565624081355484228385543301164685652865041459605746937205098487662425197609667936022439454021398028219300640824161008993460035438030538738701122610145053489862394775581691352106880596382757238935499851545438644502483378135859947181318105522082240787522966391778074275007669192790604721392253582112464276901884112390503169638121582348792226130011113182671288093202385033649688361921094907959922093932525469845602376027252072098299106751588207702590677166047418669819314633311002000211103495936053689489827700854067836489111190973490648800441461473696402506652368149343381417292264997147301341171826037499280964794950927692187142303484852790002488564602693591989821718172047591732918763135466368623933773457018566171245569458251414660824829008389985081809833062990038711841359877388061964139930806308280028795692740406063794013460821993938629219403082641773049475244944288320515996935642264267562465593928409286166102160702229673777336884508021460985216221026814315505980082933817996373059133621773662005704551747433762441502423368530225339792571223978326481557088066360525252092864739006487022966580764219290993438877056659951125036452822977114198697157063348746349030590919336564283512001928024438128450347517796706970401916605027805910164268896754667122704736128760609612594100702813113293148744819015975590266527110063590321014115826214867973087767396468017971576890199277394922525105634026241227993557425314835712122632037637700428126273764916589967642595398577208187426088190831060551730758155516472765286674447919150111749660481123998475002261509689211705131567014939735681142285248896763144228632931239972840525924153897175622570558814189065376269352363743682726528795269085468975353145229868750886172288025429176595611629580834353759489843310192419544099136330782730931278000410864062640119313441849017984420633590475696512113687679650763382803846377387655602626815137191437992107964136512607423811183618809564479841911126345184135886154818681374027787256987913522534713108985091129906663660897410092476890807559212731394264579282591138945910479727792777348902125021428022977132636128391270595160042904347955314297221688796997343069497206161202645128983872873322393895053127855334915016923289683924802434710022578932460701960857177632203005690187989701371913082746858975558062734046964998431766284258891535101711428086885910475839350897476022865035625575942157437107320417427644206560593038719805289353853910193622961215764437421446298515587049196352007577603716686739582882557933967814920173536905963242242696620641029243011519369737121605902312287050310532248049245121471298697683942761665390098579841619347880010750533101570869868108440380202071973994840888576103428790263232724976755344634872996063064751063086349837741661099110840940058127838720509499555363223008414723506025221976596735319646604232261919824691984934724407167598420846288196214558287892389264547222717159520465837870124263718655390395170921031131601099720256583659481109461956781547238530499303115478179598680294136484590127423616908482618884353461986772144367848979728568935489688314228172802727979019891989394726488211592764417181115709978409445908969180288275403544779057805051033405160712682850262185107479820899110644888212234518291158753081147939113264361819177587062251845248195228132980524580211870359733827955285030374538764956613008726393214126461412588378028845022567259296077163717080506011349817184882344816104799302630400746195952677593184584611722550225432442997953356964143029849736419459615732429627335807849126101846590426661843272465883212442559254913814521173662488569447759974503704564654161736807844074305319194313066166282793436541180350483066895730571823334805000279459334592967582903727519220197994258269480750274102892892595318432698944277310992574724150984543628072755501824205899107261557367824900077314471456957859248493878064602620692824406575576525195333332932123835561028501020728284511571123301118808811746440832330153655282577038544544835823878499894664418812130253069361487685597517297383559086001940326240816329586307610680694012573080497460964249057511148140908460788275896071586868296820386813405170880201072792569764005365818380858143186190139756407580843486419436989040191035870020383701844870819754835897878959660017853900597839858771073650848800671030858240920953196508759722508652749624507077887071058119504085111362669266682924902754089170875015890773417216728919893255588887231774710086824867683962670497778962566749807004525615014739289890656461183753371235926092344703606207480989432051012589677066297523438810871910317298422752293091166144371962419691443436933632897205634477431256466217663068345072782689605863486491748232043012788553138773305686466195529920627018226131309390049728583390722101015129305787257388585270869302242378918278992054644671067674548050645435103650174881723728461483576440595323898791705198797772363547151011208193470418153101979152204164272364040789925062754025901722047162453381442607337170669303871535530064395489281606390844687104932980561553292190349261650716439261981027490437250283313825609359820000927255877864804153778166540705769331216518962967843331369948881685910686437403337831938798449806925240038998037195773055184118011235812582234168198576841557610853081151804929668858943146282294338350727678263967491375124013742686339615226015031662278360523865700087384183563581638632654251966365582534570864901166782325540700567567587018713104690043092003888258453004626298997051371875031908178535338768210455565737259625248707069712821595379139093847983466833282659362816018733759728983641202933559269733043198670944676775199255222502383713068067074425472808919633275927530334052070307937417359890915816732598248557084385493887224130537132915357906528141947905519723927187483771651653326920827736264130571585732639417361624119547851019129137368162638152442062041030980519981505648813755418314524905856900752023247142270005486440074435738568383288417050112318956644111665386995053308730555375748283191963153439915591471901466626430017775285900206032170456856778839189325472893972624886329325152410684143268840420019734094792580641688823800228784984817581870836004891702297701874927753467375944910316858267398000564662461769725038106448915808466715132852184991128113586444947078652870460900754207116529743091058715155543195670351764375862544747436370083062308429977224765956773234131961383088581207445530680676900593799355889358333497680579449196688259016592197628731557488304159171555632406043253620516722444386788899865248408470763637494906517873965505374107252718657017525448356089738502559601802340811752842515809970710479116771703343172733364145567598988471829658580226460565286548509749482034970701969020318189902612781440477194600413937916416359673608701657610386741127506492364125574903244249789914827114972836525934078324641546347071015827359569202108327235187211072737442378297296231359149497155685262468924402978281950598738366300245427927421309996004663472507504931722694202550142937357174357103543196827143267735132620182784880923010277350102914553830391943259307721753767243660824793280268071727012094508194452441711282617090477537561033273998440080135640245708244909375976336791405025254259916930013613995966914692650693331550016321190428093031506633391365998599778791597914096053347911521986257257832358200559364852634527432266838444170744094723377948416386675698702837035509304679614109938912203990866731840345768473080002059202977920866873753686761266103728606669385128619895018700553386831489261619060502778784986726678503015811663522014169369510601993914002560235132892408586346691650800706939484169139906717790794821264354448396350014389841528156190972045546065960113350120718392618251760346819275647532462628114540094123217113745955383705146405657913795559253143092543600160672542305762501758091798188076653116911873808640783442276464565199881009638083569459967313411364962553391599841402068771141079969267382847817179350053774963477019182648305830308109874363642101632769215663999019925652889309459509806845161586042579529938670049891655570156303153294484043972843305694377863004061852149454320206875855827387030301119119992813441490218864225441396464016166801983668168171410012193188763542270026899473597508216966223880898949362856422836487613545765232497460835018798431775347956331189441201278170418196025978277813316220441948126975702366808453960991794512330451951821165689028974912225014452575541753295490535798573485268019076515568550272358920335950196429096291802003348513144622086564192793630218637245754583554455238066251639169068392016412548696347487719880056322954679310053764220037166845884203157181949192578796609527326137048515143909360624321154568551633620143926680724091313244311468128725030742872754043226159852477038018770083364366127210249251672678997119226407454957501852629365999605333525763972795007320583685194370356670640305446244786871409352634039987052330113465598089701934157394591175129437640074876878751976001737237172386496622229721905771743655625530417177334365086817106990686572155987999907818655233555543888820459504801628047332733682856773732077108749761315409062466315119762987603535128060603927757235844948925056474034229555795784206542349442857319121941379602505095259451509135926456239747815957002298366865782891782225910627795289350224221011814373436039352457536536798276922466390982676812210087746418267565277221639081011386502965618216331600495165177106725475903203470844633884364724655394589590712832752353333425663023451282113845570041409149025984861110223417164088078274623926946717554609120890620659481371042781381864809786199898225313741644069255687867492071632672787114235825024564348932974289664592705170407513459982619832146408263183598772580187174153890396796053464259315452484650766106252443829700229801512093044058280233281379457139636370041890223267910235674557145013868301938263343222999431671048191959850032524656312179338104610982794713761319179801280452773636076770757564008775139213024177954156897432852728748128416433682723446827728542064341283318676764352448079885635676896379124785202496051554133387582533175316053779486758892538844455443220344048615436010651793818725541422630994889092914741942899572812569013296143840504581144218175280282697022489438218682100338956263356275797591727239107335498376933311340361369836759145600705916163592680943479220521278625881191821512633347358309041225883962153740869992664407705225714095486540969456577417658463896835755071468644809701889752713153829234245342656826031903745913816460298437321580452834747851905230029892945673306796061817382166460966681844287742597847001418331529226846786357994603447780070781083012465796992066569893809774958628847892390537738286030694628957745000909037988253601096863751560601851830895708758404209234765697221217423393976576651158214995276726888423239592569739852414214833039041815446594464008623726703699671833329008038164824979807419019676197305168081129758579442585169877455413256406506582334712137798318224808476030705888120128278029051808883746127383454121174642662858644038410948463628591231118368627402609036278608891698860312281122906183985761828832705922907351213587955333842027714367506478780878657161813314844874719771519458895549484678773691409501615107408541992137367070729573067209804291008623294178598473271453030664055522572376489523491905801047289716649479236927707849816285575983232467221378468570914942621913539439985540853061919372079365601458784491833611016534865697561269686033367342572720564675074942473919023412036183951829401313954197533489991911115777013154440009020829010696437475894977671801875768900647350897166994380397623046401470796812107643013660257838343852412205331677861508873376871918484653853599951336988107302153653202837440305753667595582493162315764144855306205311997968282058331824669427736474328052781949126337733054769185339577881170775503092399042722645489575853384206999013131678595656097536200215467513056785331376164756702777294894309528018214945309251971117928154016511045019094031387497061519904300581951489071480588980951887979148795107264847701574390583237993252434524194595980871928886633457751833973285449248376242073861906415637327509948025074767244956961328442758740247031060423433036029347233081704954655298496223794072732945792573547548565580367154419256554613110839886786014709130672722790754863965920466002988767157750669330445953315109663114495476484165773837911719788047292760940842828601411804143009005871207656903305277301990911733140370966639941008403501612768452613943162550547139033850283673280837700730203864687557248876398043591788169117782957803819494376296280917871540255309898169980808519512058880591424157008654993908006687928491643236059262027781840434367097551715848357239042027961921131484487168731790828389107045876745760584377233813288378197292538908881269263013733691842839872117675416822555707498486344343944482138846809980730492654290887206723135914624149752192877216675357990167592364058312482695734026229095871392529819249374338851433992642306946391465591279795364921103068746329005636616582031585615559563669831580622568245599309307816979291129620658267787008552453224170672816732262016137972886384969740066226557972460525203135331809059707089324654453004038697793869672328826709303516323897816109419219911621506951508266895322556163010375785747327328994062049392364956348445150723861617123226396302497660395863826942950985928225844225612555593907142454663783815400970632264209577924394664723817497681046210716094099226048320477099820093775929891692176067347478420364336614870414670268605278065569274403488296990261191215117037421159127259820800703270776497212805164951527505912471383900777654211118620851045077057653377082792379564838372701185761806905363792941383178409989906987232307409771801417143751096913170917221184397130406916204449364648069446856837440145247403251577030472354057456562965558801686284300992108748843284060762260398537767212985318291984227512054701805237281858459714120514772947709357549969497039344035719884167613198338872755998387635838413458965614435990577839787347899154360569121212304393835312626083769984091783862839659753022176965583582187917626299186943831587357936309593728214468439673648262711598067051037998956916843394599376868736366966720184150529941390001494532763915156412205884726016333634678823978753947522128824477048799030079607182575483159661606313782364356193582508926327234955723101454676228576169291675076541524082049395140115670250893870323515780335163445877620654197683050483107358178833804548606850859618724748183299124925805107796221215837416247995026747029906443342229914629327348721857397533400810324402263950206953363274902817410925151106872488843156981261312917769784422045776352530951491766146450849144235986345898320892385726649954760991514744402333605539117521977220859591042024658965391389389378089255997789523175978162630165922679267058136631522119414292153906721562203867100520566453640569354894865472571504052050965417708852776063033515863808077186910561319565398442525632904738576603914117247378903408179421734424177011069820627966365632576008369595013565721470604550697274984509015898850928661538837033023273793669908004912255100208979213258917963149195163499734483242211164101761028510038812320194674232793883649751167208841792616097309604573360322159618265934519387466465857639135303887548141361873387706561624155973580864002004117292615120826367860269245880080452026579637786918110766220121116654970362375782199031236677053823610060964730924139174705971710458640189322361619855728134559051035284532333936415210149684021697524434679520025611698785656016710212375368694985834978577966530934247810689570328593540227097088635842624842752080509377651741522524064888561413610025656109677584312122653087386524620531575887966606824181125812874779102445200624051292549039340281680663997274924607560393070667353364704164704345909371735463633282117845597502119739878424933313919263769603512996811163942520126649356132470691592410532352288123704215180942030935324534525968091679113470317816838512516835157665090540602999273201295355436570456899314533885963565064972064633470767410287980936759663293554619601843601437386394507106440183802666570382665695122658183419506235038154844498807314284022682875603133573164848943447687844568959570410541583064600013137575709785359089900185569577935193591674033031530960958863881630058605297875454581145739004231429016913474118003215243857901536090039495885376641922501357002009365032577781770318294830963151506786160649895861359221683957684866308399134304264241773486421410390606606449317825962932466942461910148126557715943971432954751843167718965273208193046539140025459235288523763079744026797558585238214369244773115527903212011732867159965358807497377453843585362332951255447870476775352217373766588164681488790828339241592354659703342793970383637648814915042256948837347866695902886517902908606493864247931368071991795378667873035128270273866424352744599210403879684214245031698800006006847835410783972188245228140300657652010403905199615798325268077537297753729889774684963328484440299722863148689904665226120223161932899809691737248986813897730594126416358123730515606703348198416406833715630169094568675156837815088900703434046469654912682803544731438383241590009849213709544069203205407482244655432780778065306214343405185791258244104515286820945794900775952403673746633324827697558147523750841648911428056787216665131620393374491479087833782353190357700690143563748193597380075715433632459646873582531261482946403567965883636508085814634486697081675787800710405798802995283969974108969963648139811282822521126739983659288873964809987133755416740418840099121385009928740585824863627965365839225445915100520418543198649265175009585782291107247495826054298549613514850689528945086085221588322339452010370837886793585315123204517899218677427968973721895482892043166512438754815599730204725726849902484060507592044993380594873525381237381918211689715028433023049217640528140530995189288883659020315094611817784547396998430055999307247224596838227808985871957051127824789017248777056601728709361066474652469254432961211210110368202600195066773339346034354526106569007187008183720028696944222470537464410437778027561423260148375426488593465097429784290942807625644365648502181737532595966179494046971804554861783767766571538759963446911974850460570360072098928816064352319446430240500589241209827472103213488168246114599731359146283610246623402651094081018845246556169384179106254421283991457671752709837126060835430030109166336441194157159500057016014425248590654577361215795512072622173313659829604466836737679376227138916321800666361584861849460941998917318022182367536053435317696998915074404107798986007072176357329275766970730687678162318052263250217307023043154900128469620330216457937263993060648069218897184342169700267058690244767438110103938068449492477873918406392427114586527427212101990428064982027402486970738377562595348927108144228856535481962071510334093433888441352279238387451764172765263129704226752382069818047251438465974768836945981487212806763213928465204529553681157383646969426018625514941768438782861198855535588304595017618820562037231312142998907154434695510878107534417923133303983597446095528129158623635527098244973069827528049032761777262010783614647758148402192725079472346601608777802429110755305633459905427312777313735931691336822758939184417912676218473999221662564188104567329134848270323936929952490692819390292351329327243805801156994058391114575313418849058160738551599573111052407529711124199279028689752786841836606882622251599788070259849673819650638958059140347296668937004970129467253681902521817226910023793154506573438824756748893260431928291710208521053812839164032247709268239089501533226869321471104780801933890975062822490146659945064222253508859297641685183699901098265286120888389153471927063666928685528460589343954369396726485149301204649227134469511893949106382921275657178595354888291723972841106706056638840882619505465550474869496823200765115653132093587411512668140948734192642851986664633427065147545757099688593441307379345811279215900258880979287905650819695007433577918789737543238094428499102345946651518689056740022786131610765409492546730872035042494253979105483203432992628452970801385165247007262239558407677702261179387540526745032508887903498996708319059400839970001970263357544440366026203816782673888503096135648204970707874264967659013578983915951550698778632879295156914851880114512227960185789704377724714601686951209514090231372718643388981542827605990610216987449856281814071227061575784186393551834988805099102942716363346479632957668659497711705597264000938893878684194537657479982358903158040955886176205685146435587768569263820354234605104554121719975185167699582768954310066766372727520481956810274098757416007878744965803167872740329304588010535803025786725260950193017886560615885742861899598848952325344156652357990704881298550544233375466174544416349596184444212884239974222272823547785783224188536395163059685521034226165898850132351818434279802343725283847409558591170228123232016972194859446923798959880750127309707266470590476904110999614374459856800251569963025265574805657134551855612490854807442295193662210908933826799924177966232702725663834811693775422557363754815007463646464583024751587602228297297400072287361064075496073463860785282211748407957943959488548095578759342878502344708236133940730059829577100302080519868604072315272695030912452029918099843576827493770692886020803423446812319226957139427376964659695175381396078002939273995483631463887411962987871450071920617103612465188803924798234863402064003223642229063079430424069512324313349505433735233682297836986090147019367263374176815299096446304970421786198516069900531871140740165692420306254075272844862049390293306955222599640364105030732672502779455329214022220626647416585673818786181727010433750009797348007880391223414904985698476857862562789317256321433063356385938000419320037657885869613028905157056330996423141447310440152044181726449194278152878918387667901334295637372222540723586077198877712104972390548052260268035210853685691054367501246065557692596986262990267817937700007121713473212833066202350498543945487040380392911488317921894019904481319483047149503793804211406664873736681905318456591134261007543043549137275369489731987066161868249816690781807396252878232523076091249662589657666307691471626392595447349106025631822888439600466063514920887362970782868423381450117594453516221442653505255956729409146570820222069988305042570969739229217683864785264673117921839055231852544725634273438940789146609064351222649568315222023428910591771046875801855393894413730037968735797924832227174754491702994249822949648499222583731158882717419979427717355577287891364000985986239488834988384148212278661087117982862141901607321517394627827927549878105267564609527929284020787452770009248655322741761179824225765239203809122787916141512052357913771200033013702136765401506502112368053886959852649505570744797401136319839499144816228537041238982570673027175001487287377893634540977488306505533758608107265652559826961023566385736126809228144201480159813285610046243942094633951648092946486665072131173391750001062345926859560045969864982330560169918344110783633468691156480190561802813407896357836078507831960442451480203155727931718013425803308948717229818843216865526161108760826749465148873476752261245509809083147629158977657278672622007273995579829020051272867133569279858032853317644199148912567351107773276247562048753400960637824163989653182638616328638635622759713222851056070407723101945972014915844932476782184650793219126132342975267719859230768406618263562112336462615303863242494475450834797270258729469073910413856630918183638936733105258859692077533577300104145603236794479704925382850527401310012039409798751263857299109735103687173474789229675329085675895333746286103111929465469114805051667836589381725639531859101953609210993360539619373754975509266290787226383802312928884676104240718398245340148868807254567917834624938195335830120260749876119732573807855499653901373143588872010945406717556896002970060130275168368036432914418663362329043626029927854884320779315192386057550628122873873796987714035512626758691498815156369219010390449351540286586098537287426323559866769025266658765839833592959754990308785384361544828747573378077841515800421263653867987801107753721341655638440444710262240712229456056882308626798996346316253429303592185644734917360904132905832905933331821029446953898977908652212695547439984349759345289877085624148257397537311532566521861599928862598460497190789202883803830440551226810661276364265506213538218313628333359670087718670483174155884430536176853499072107562685870302772949852715726709327801367030752488745287996696110947816494891110422777639419513130173255243504454484835365271510777553343612373053182469584682837620595687518580203461154727448519059178754767673400156658418791625836506355898126638953987072480991996972516501846646533946682138733330551811878075725994942425766969532870131592219491284825416053874291502973983403347532823528717639523064229737529943981503467645119475443352991487469542877078307305954801874616178877085967021905046164617884997588541149963606662596045095340679815257202751865400323506043052313541007837594536473608638804456011348288506208766757169637096679217468871216721288470714146292074546568394310595507226315397232533853613689947708101626776250479848272381032879095065184821776500578723345913236579787020369283542592287385627809450252412749883300312289704731986878381065117191632593374318146732313120479283016173890457221439167537651172594044421874401410547291516233647242346857397112663069700452467669763772345413056237214481106998713312191973888393471544845873811970832133474210010981158484614431106176034968875595239079007680064793647167119834160243530440981266074794562297971563020638455874932141619278718184600892451232335062301737636746155131544341231009806981811858144412864648477705477845878103270836286314450431833246294588592806613073836526757193911647503049761538825073371278905708855732232829704058462835142152956643221669004855427211222425844170212311298023861054552245178484292667791282444740272203330725631330736037098119748871584518925562783094882893033248837062643322736423425415729927662566563517364357130773014457021162669252762524134544658879630366588349468970952879760450341557691606633239539461550492643020327807513396450061571008674804041797305959562741720777399377845965136131962187489353272197997048346891550654754397303237731020158584199519195112877373520144911893287664829760732892073977519621053242276949627829222883762797346996025063738510369514672750688670368201814440267136829744881111295989151849365484013392962428415404380462382802494141909791471862456140992929012772061388366351915752458189461044110564114021784028511986530100860716887768596470429585215623933216526663971053673126435348074930471224475317884910558554923466431435728129497671483661622845741344744719471486103530546294312000266258386024107478297715113542827951235612498163075380072889026113399377001175473437801769043023026008213493253375579207195400084044306881004308852127960967328136228883284514476436188822841414039181846412785543773725890319069759596773806949838785436100996066834486178277618894597698579672293689671289408416488519541317467436009401583282085256520890399646826704003580426231543995180243265003525569481802471840464730567414836936768561798190020003474268508398846609406609105488147485109038831061094756690417074472537247738616532798812985300557819909240592153142672678159961236702974375146947692216072281443990130395247518509834509398982818765796776420190968792510157070069144796585330834240158195164340827943363464568316395143892455081084945000635926854814641160320587730383963966273878407178294221216119231047509316008644181548124354294198088436733783461064266732694219517827194525534953077019172079708068785741205391943194005784457249716454454221660394386192471841616455356226668426728126773091519588181592733155275590740236938424932036118992796404667753752153717825887404321889260399388897933005743462719284981652770395905393069807242366368132846742256902980935785383229386546495033442111557571368356834917665555614663884615020638437765882166366801301491003927520569068964199893142172438699068431177279252167669166911403367469993807662125830373692339583846390929107385856944009836874699248502699847631761555036843939797854556575976735512619082031998432779710262496069472281208159369905156697792158900076163268928743116516164473406545484203474347172981746009731993331368840357665848648288111409959010056154910112503292174697743409471867200251661438348246600624923758478707332188494753298603058464442359140454201651719492455740743718956846250585569495424715388060012101974978216342843876658926839906203631635173998211192610697406930627034380796169290999111053425270499189389781714169805365596762441036106421849207073523862030797623030808789236213165446391504933259473282486912190845401719898359533427949938476093757561915048889996995148362887592562918272078593458928635634239134889846065556200462109296096834580881274063879479956081263428416388549518946282093617289113537105308794384687121596115662057119302398511833483885685829118532506466143704573691089872214634225624797016281383948039022635810661568903055386229810289491768370757072253294686976741583936210559918902777182999113678703421752760081442444646289438220447068399550180524168550199654278015310988777565880938975832396715184439521962064267920773847952821767842531528859581152068062958176802168579376893211105709322022345071323431930772202064737529406065295695113156339044288341393809337382709761856749288066439653287103884343402401693080826208998659126603938719067074358783166545142608984765432687050095907148444321077802218576481714413019720577206800785092256569281719981424265365762266629678631624526895814777788015248026238390967378692584116648747638356390573462696277304159434072823555579841627695019188660141633130388819124688405493184034953564969634595364162615812578331379319970185212767848031779444947944476207573930440324056840765372774383672194793106474122165760386300057058227604930572492945838548443803139424300585216717891733715052910121256020714008163020913391015870114186305326736626873960704287356091283616441700233240398457473172939068084792016871895217648193803193223154798835117445980585310461840362139164018609306781541397651586927243190005956224408762459493440212225051037177187920112251414356252127026294808842124516126056519174550720009833590023078622543184190051370406489009226453672310658704051024295302310900629718685771263626798682118747274501221864016765203593254565764969304867068158474506673853240817066513707435012105314599153860290391904531652198250749263603200919495487443721636673789069944365858238173498933936753446563088564899619902062598745112847922639052369980044742960949261024992087389176551661369286296588255855196921223232357066494775023034655202174767329226182463080018844378441133272017344773414235394667135812883138783123746898494191384979499450110608294368343361074141304754200899844543935893358393380328064491989562559530153207231744520060405867713692233371161673616213214677633302220982070143324081810629771621051925309038141517306270063524061821113579886281288690418113210071753629877251882795969104931540067498737140171682652004959404164036663755264386092754325972754141955979782283564524139250445863879030703789962360989036411491776538306936814342503125163795714912763005912732929753445018805161590632005049377437471853428102384508477513669323578522039386047883207794576326836902713112156407091238566854904317057185619886801414094566074137025612363093256995313790384235011845775406737644028082314837575038409088400272126928887914214940217538535913102840125450462759425121351753028860881153111051750037134555413324914762264121112619154572034958813319118121241302981550620784447839668781912592057015232766618097533791597454378661372332208494485848466242386197175260558140397518123473855187909600408202338404078658211641909901414571005752513821040244105026918140064453306603959284763208199244630504312584972627160398721664652916507051589430255880689644878165761494289024406965909989687227231333427803377136553595847343699287712423264080074290694479912360185286204687529421255041920580022523919040496620554967513911161919045198560885239021634554605683404441120123477394177060674546268502317933816196660626944496239264433494604167560036810167259246548163430895046400397072670246995188523215877717015966891300549267391157848811303605146197098341352988851671578357970300536014532048449717461796799691677373453122442921067947026557456754213637197996509202500921771756350381094905338415262924433046234216879491937350124355906644621211741026368855108692317673119680028005762168423469074473955724424376293775577969361636147628984094674383060007074951786932226353790445486532886656196513000647255306176343704772980217903513548165224377655728124094459962940258043197561465671419760758198121669589862788962681524424966478079034519842995989539560596337692456886817980815542342206762540959029610954798534131401031029101660509562614201592046736266041129176913237169243397423743182373136355081643447245719569482469662367071907543320295449801483736398307743458492485157338441038640608357472149754102151188818553834736056738178935870292090169875025913872527721817103021516360419350666999866762193623999534013369643654448774333407640275031670095969340255622884259890555339606038773474058264792114875137949752041291779986901750590427796428455318446694778121813566120278696673583536920453843002539278837262375699014963190667070403154542665533658493112839351728184222844239932408373050651345886262228752856940705451121966774519619528077143749367082953690602304240106599069941756153755222884806743769330075251056727009879896851026216791491474788180823235752426276288009506212831634014893630019821583550597273998437618926120425355780182018177131572460835891144042609057689042153560236547865240716741314493338765859392004267571558879220225945560285577383014564017758566188849100968477214573935374953685014670971274254678053088059757158272826082660427455614896267997994645553690709419841231161383747890868941912917564820277511281699385528488446907890813004678867368004694961038446270155132822087341769615702874198551514417890408106957625399757861652099793976788748280519924815563248476465066854398483151919525728941962042478821044986423152317155101479345327555811177408152930716255311713711749098088973620784399350961644795409028491436117066000847178992523148844991210918066932740561707908293430308749421883029578285318193155577287916286197953839168422340110587251653405900240263576961449699213597164013088513204672160602493120022113217001409935435697052344170592659495087926338333975675480445162449199772824457186615220689944744313836077074108580920666333872716004669871524960541452951860198316988153070543501496199489497246469707344820500148385846911085158998274446149767838412846761078708287887371079752620364437896804372496236006450018296374814554764764441739120778984757176131684268114922446424581886475734627213854378276301958541693746726698949279976796838496065429148267402857327487220609561558670810672441472113202717679662313880061837595691663650462205790678000903073487062888905845627726138168118990668231653969447351270460205435833763961148560817637992400811316171783970950406111107904715382524230262896709489785887496919747549991477991611386711726331241721484202092514367635558298871785783216796883287084794195030460183039305352244802366871621412290427506636643418602714644331517540086237318130901067589450800774992400305117919843641813134088186955145014558568115367864528599883101526391351004171333786559539030100644059949101047493944110915320260738442590702305936704384285369650423357339737960083032703041090457638136587698914059568474479245417380499057607153841374425369807734334923478450841169322558861547125960574752909933562137195815021775910577804946966271184761293274901752127636169419841514162842464450972929951902972152274910976655243853192664567736351921247940002555564827232762943605469573934230673677892259148966924712224036534145756384630003761039616711130577076895208693111106335121564803630916372341297781905179971915514034663506675569494564611723170057262428404277308580948104843670164067803508023418473730535894979276277909209322891051315326809255449219772702780187881066372364233103712669330633670070987213338139740656010385357931883791823694081051980781893085520666890285579033276261150245691158491073006914373439069403307294207633010283860034641523650182805951078486577496598455569250143666055415034199265036011771272565715538315231960936313539832251701754291399485652540902266457904843071942770255899285415703631124883604375686196452432867008593409614523598937212474014537627015460892570237472019653921385077060831176465549179663636536210425101844515006000960615808611453805033934473754205977969255223699708046513748177200681940573554784265656166112401450617036752213846754009006385737641174237999981307713010095758663964112440310437196846587137104001678276635117711456504843261720999830588490911605486777610135686120046649401578431254408738469428285294690721895914944831379798412234379653158990270516376838788940756620390765688510503219355086050219922455284272041905006179845280076739516983727205390386201582486534804261729348686749260382302078859575994517204432083778920911690628659304004613982295408368997258868555249902030668073546785842740166557413133661063486488821117480480431014267410770760030285574284236239930906934991697282216646679488198276878674411197205012288117504757430973498673291516427350920025833948170174416648517623540724207361298135180890101139005185513086348444389731758984400893785324308361332002526098380561574028787577859913740002830030907203105469800844141483822691270398504976274933707724627615835414855595063188922832555523176011407055849789339782564428381317031382620511825281858304032920637107944462917893676457776387790756442200297535170353442447682656527700806821237866341619692608652151150003718549467236103423858061582240895673920322743170461376650951306377608907386231612438246244223347696021460353743433224433033502931320741801256190957039955842198280620162730540209036450891912886704583991930806889867122589063080560931518423773820875473921264404811712104023124807100368036534666602194662841090288490821889530629279604790650708635885564944962677194391664957541547036502409503619280995669218478276618737225084022297626401931429155569310660722357695133731180720277371782007196579608145731042390639673925950485641560958353757771094846841475542111582238250710297672219464910280523310133991296004546526520206781070194298883263500651704085099737486255207744865452406431086549803866368358281523032940823138386981232894579600769786361963912473952827007517106031654888598200610584368364925480083252305531049912812275294705980127991770505416402844469941821212813819284038430248631002894433521308297443184826611683903320829868297824792185051489970364818854837998531049821767778256670796805168211081973723768907544317802512202857639413887051466467121799064314988777369737614010481560503024160357472850950292931730740088712514941985335863409263264397151086391697538840803852978024912882027319967544211544349156950494516234102429185093011993861145872453513915631070899088568223251224963027929576685527124714871181954308295263054397241182821481407396426934477787473320944996280959020786607527250345823239118111185889512827477238969742170077324575347756509543148948915087541932685699920421784870427137938401613002445223389385696417303484920209643854243128133551620191441890403376541831711890720934668174910407609287757785450624506250786929845104645782859240804867228777748756271339842491075658609622072181713325401031549265648224788270801122303954582381953881976858921798836838772669494343178489849743599013177463566840580466383241976220791901373024762874970331653820551303903024956584564972781434230573304067325289205123382350166114161862852378885890743440894434333284836500890391693731045206576940409497368097995344449347184178597837315991079850690902722286195940619139569253106079705381428218940254640016304490929901425737514911189223614465466016491007258062577316031709357523993102142406008612938991112861802506085279278814729839980220530408353325629699003334962599117624926711017507092745520757522609365325061385007078513308399202808195255158516457346770352930216839799208947394168298294868395395984053996949250818845598914515377320271475325656451895059098518739817151599565943584920935286543497318876966743062223065164158374140083540114592705464043358860786098482623805787989480195138028733992227513161508623587384700502244437705628662637179153679381449518651090195852050945021719011015808443912589518747309078476499638483222851431979377852022113295077426969651411950746363615723826430057836726212364267315748278921733011956201925326243582830151101911675608851517701535938976226958403816538616729342814607959547176850455504529535657451568478372462762641954405339219123655835199873893993386387233365096575790324463105147612203955214727831558980986726072555370322735140790364865701998391953761322996803125934994292474002611234370258904960626379168978998993622777741128320968039085097432576207520359158187064974212312812961588586981621464925625986842352712377771949660411395326880722478687471643591580390012754605526786081343104272381823209388810687719085340885021488336303440784316846983497278467077666688377693578263310886808108258458224910945458364259127130196404091238993896538112206494129078182704325697965888038192839490984038011295680779621088086764154402504176209938802404440346489259986044087697308347565568864177836574789730095129378111600195155742305141948177661523536079410048635879449261073466464715369921756588136204973453603440633822584826420950752985717489286151564278514172680666971327702187049253448284574553749087933246947462844226743998642409553294331103174404801831365066809552761712460979855228958815727869181884915437588863069468473732932704618437797842947710249835223976737410222555403592875724673438635810197575273426935476901499458548996383625152110805882600133144048387432825661683206989883582462272392897282777412613014757397007890594407782953416483731979699335202757825389176592911915576805058668028364764661010743795278379798145009449729769242706532608174068346215751979706513209350526026911645011463626775625676025904583683711861822358497084632166201346291158181862736512526770162804417600486996663440770918480121733286440189418684546852061350606700322057301271330846424170761922187778893928010248652172764747802225170347745383764342369039084801847932466113643170192151460077751351180649043415986022549279567807906464530923473552259064215037052413210366667026250576657585360368572369902987894007824617938547721099983000441689197695514630808751721563305886178910487087393157699134759480560484753915228468172137740143256504741404893794977428557298062626076062519312114869391395665957102934039085091149722382189585074194118631039475731157576020227281585602995197422651157374660985948594443307719128455728068172016823108083575937340874863442805019298329700215190260581800259688465615622668044921281735977591893501564876037083569821869844467778168481240344130245928952425650696079817548891810339424263416057403886199822208568657017208861687855707211695072812981221803146907853188773263915917928291553952381197168384476857559504651879164791466801656891536383854856417060598340803967770579859402937743904603537699252088933814658246210504715893321610264153720021809411740581093231586079698890186610307234738262316410734275451657297245268397863132152441329696432261866003738698005143208990569180365398977506306383322970300399792493930306294767504142178024030483416869250452914104553707810136386609680669892435041999936383114683882052500953082067587410059894257388950847818142269126172521205257088478040242885041676542302537502080569906517418414892780635896645951241879484795123703224946822170010041750277917479382806722889942369767231572055597065213251166144135562591906420111768756370092359067724432804348782729349404601532872479557916826317363958079161678730855908545657291761067550354754286614476325610231857891257281461856467486393407055582686431788673653130492180469266465962035232437549786448103188108182136723901484853123694255736174488040199921063891896256163923274331248828030630536049102816840192043391392594269398268640227373996877363310049415493810467046272547646048870175642986071320369460731405953342168841794530565131445921107279366187922494753502841116699996878103443801478949334636895077537214188912577962538764552451483334722591965041026281814498751459423248070480046307893416619488921043401375905181328616939350652189580001350547968622652022724816488516479394703846241935205030391895321662776289723890957636186664512232030761451274073740038475605491082651482757847296934454859284819880371664422655491908862653699705510500481076511415751773068074254678548517541734234207314176706758116493661582767588887014074531761093748146819396300765748532010459726764501358873906923744591031357264209328745347607497195709541411460949493098376276951917840434971609760807634067384241113939518311598981826331445623101634029656857182516170293987870059355251709523159088143069028323351312275826237938291840834916765720820094921874213911932557014428813238723717001072382417561583919062129036899799022888655866884014604336643727148888746453285934971433439579418699716751436694934379688692490981883947116779832062932937820379099515194162936680031152444759200011416038787197561479849261776354228263451327308346955689993380679994063848167416359287849187497542249908515344198879731420336793080079749301375225761704703770297377634766145124017178138388917313253271845186941028619547135074670256068357855445389514403758141130886417423524280149757451114281338335384136071038606318912445804332606242345552039983181791141872675911399747309312190300558279474678682071434207401798431633334605232160723665245626261812600505262863901267744262137209760879814945604216783414089513574172097247435758169281083616196494434242281795387390920947451835851781647066513379831357877025222488262594600198849610955807360094188778087335971554721440953661102991447659288345007305914653830525747562773222918749939712616830103590764800427174510233988512632829293437083779523456116249036382094744935172473618778848038619676145507679075998635192312013388146748869224959821373401070641709850694290814054835522388168765431529505994697159233335433185277564167455435651061893088141287578770318716126251109324398532845429933403954360358730695824762060505394832238335318832170896954992106461696440646428991737207671019982251232009731842329960615132304768535596220938188596308991180419909013636028032314537533157852455230442213196171987498378393357188214722708764447383088371782263773407821966602571718831293238073951676664069018947784474790491193608360866351377578539431385887620285886925808935582413219885708051592949652536982123808034398149733088511082625895723037186821290908311311327117368372974338710944545295714112201292103804358294401790390883575349677396297121550978914719007482955287257613633810598803986119706789465825930301570881157516258902178370022612648185810652573480790015258061885104652536870101569832947160939153934053783686288552291619685118360513787961879500423694026317120848566852961453023943639338644071740430536174394943970215938144045578097716689757738266070350930553643261747794670656620366842194237698279968014890384339093867099093438968844207927848103340085059907020295659232288534994450963992612738092519928069593200128716631162876603684844884136069495230742278696594500337037701077283495166278384164508789661640543036222631244817221048336074162725769875571252718997462653160545413042595829824059245268916051981843178244506680811291540417012972712749745799932581043308939045636481535584996009967427932602280366146479494993088363750711332440117993213491877658576089504728394612623945143445574301980017660295872378956884776436319331542840133058165998998097104995177303677157569536268764595821856092510335713148088047924686035833126859456605802085834202703673604500726943581955644483812001413936167510271623697132755334531726053007594861701287051028063068636866501291142868262875924628318142604974703931544250712503655761706961462658140729703758843251209482132508536294528818157138246840041858284794228705610071480721584456694660024133648924655998680193397875260597504779209530916903659439582525777299260059178416940896875864220272203953696247998048300444871220821277510784062761345057787045306076064256709678562297336497587500047615086633173023280889000093706047608425542927123693090547061753880939543687865243349301068981679942419697041252602323039897424905854762161333906586326859701317801799724210635956755269010962633328250681553565485239647342535038137359412109338217057143187042035329622169921795784119050366164576010873114026195266761626212812706252866100796739772442212181190839935294758744944051817451953853222357995924581265500529391197660549118957111362425635467444858330898798124860725374308669744980400067522905589378581204853112153821004007085329599944969316159748578973663844004874845587259913437258887060901585497550214842847310952981359987691011149118417549014716492058887065993628474495016406148198357805614289381241798169148575276703523379584787081549954881105511759518195731244711292349287167117645916458360592209952701311948324157959787853524551363795205926126327265043159543822534872774690926287520317797550951309697176069277669386206822456747193270720905163270505088394015796105507485551643650968056122546995984401444982945932064332946964560591568703368724361118787241187515220203828964891338945628154160175494035807089388547582604678034527435555532377110107330009593871072028642638910529896037578934937303090312731042775778559947579402653699603012106128574329598465769295943969153503138024602301649647099336517929136063946164838456463453899274541718634106225317334737577043422518852912267649594195393369466664019863578721639495132918216007553329616328685754883959189468418657734171209149272392337333041563348034090391660184594256420586018885101219058740674253348889063349921679600224067897239700098222387858568560860644280386694294288415721168368692319109914610545234156110061543077653485795606003804395021376787926876028632334501744732186281280465000342859336767165793147064736116144831475618382226944731019787344186906774805212090912111640552272593974185655926706927694948568399861093738611838449366905266048729954928829772979935586027129929650009699831735097845252529182215817805402969839176202979172004544848818834625600009238333530284528118857527514103958072917370469951529565505295385593541966812311567554886907170753186331193877388301960790955885053739913583178432253401711875324653093744460514685554735034811448701942358789725414883986661748447742381603319662499679257081776186258663838035728873869096823144136131642248286058781300250795985422386574763994817204460586309474375581158257024508433720208026929324570783444896480769502733226809139158161862443769853131713104978310503958033908210712331408428076415001089584808407963189911123917204486577846578306374363376110694691203905932342520920712689749288725538640216508996929109538392995260609734498578087664640745015458745999571273531157068353509415460605764977842319516466012044456298927559801138248404301406060130109973531421063296082833076077717998749366022738147584360847770787299802722000359703257214665934597948079834127515263232569294340616846332552494933171475133485430729413962675103763211585114369791575008428955244571477941040469401748699237483556663446625868772067254253371745587299855120887094198181094423831331953040386424945344415801962555240119479996394991716813378728455123702943065589546519777695169048563599037032142212763083761320703985996126112962572223678594575839155450995899828382169400940371719156988092444517195278711629686102594032534626368406130136557296690284121204310130987935071332991924571039266341430054270886682471182641524540451482239686276825393702499303244208918490237349572090710541595697649583008843689327917119253849607669502298526419337354319337878072572171914643244437591318086580580496318071286868443089907946308024767438905024706452251746752564872650616893708415330758251395088389285994439267515691607757928685531822296856473299133552439887054032376551205975307189553671891065716331384675418867385685560767395541449172732561529017002747815144041352544704511901011935086878650646416635929186444379803575032054731918611577618721899290806975662070519907810281606813843429930889275227943354875380246814490135770189073148943486220160251721261650121742317147908495033344188752426451212616990799551250970548258372000063630281379214709661660480859220355856707685617635553738833942733795561231807549712351727650539822331272995906655255922501336532926921572954828033508952856619590703015244560256802863024190441004402282791649447663135539607936071836377811813346594339929727789272406102324113544227147455945137754333941866632268705270858712665903421040183355552365988941577709242799251406657401402566305655723627931633565134536843535820324900267777876650635783845427637690773804981681085796390609395779953427427602471584639120086549307604861383337247344812890293653456552324123145194246374099516875294780692416418837085414165563743926810034149420508491455120714956949201634330196824895071789681012049152218079626044310248011229055954128615279615570095394292531349748892132209991113262781397391162727639729630114323332008901330303046512475885194148265001967946031971180080989425147363550540885200308393795915758471632723544815953635192117040108762334761842899690655615122234786513087323484830673827741578384544710486901691599979807692132467674071646376082478605437122958659152381177888184589125503948812074703910174052042106688983127524017527462509516937475250751624292320145417156483955944808969579650259943305012326842559919079437354443914442991941881160365419520952755063206870953646007737794261621421555833045382732643460609499330153309036528469056047753991723241098992947253421118497936696625591724364485277550029048963157956943837138832983640392572143802687651782124994503306585515682980295965525229337023305710896312886201415279601435501029038347112105520758101791413844011476579266423981536743898187257583271477140625548009458276672775512698218512185333943156501021473437613258572627513325497576209980333241184355544607644397546574687437844073296504172056815550633958773493480848526135575891328215704506373421837663414219824516270384563817679316221318214498772141639791626690456451940601400678990421383737504627766773322637863677922335855398814848203717348002470382187493486189100795590148352827297043344708734832633803002117787049282315320227189909530103427328503955700263744830479819343517614168101527792640937849354368952126508411512560569098381565648334209456195705734577953688149279486563617742765252699329970505609437685455065718930756266461383126574675614792763954986983133067338541124138832504932582581696186834729396333552370084308514020707606417144388084672046527922448070098844866698205927730652661502994957992269342546218075144373055415047315253400038422377597812297355059326125492640432951821083348174818639649214878166091623724957646384692039784843785957162722379454169307030468620187637195292915239475245500521692834948974832168044011334434268852745296890236432175858511866760133778322077699112260622624447696552084744351541524870594464712189900204144936714869006331957725400665086860423222947279487251545353365030124028429117676929214070023587882514804569352215577040873165055976284248593436387113452562493283034885000035493535116374141534243010822466304046117609265803078414758898685659116780265499909455419298272859358770167725900664951120738265604261364107395783939464762675347478570506641447628172276742541680268917603776781923172475530249080506219684521896177001229576629125099454800948724378937904682407889294215532179208223961446870864086383815402145075641323999432286236324578378138750509078174655616567194429293446043837408347357374337515286902556928735623103613938262833114779464678097315935912756067306042430546725010612862540715859446612342974715045804741580362515685662334453050196218089359556155752982195696530087148118608695124627837215029918787417856950285961807653582747850462623611703190710282098515958361351659197499665178203534922523720837836232032462546855279691787108422333853079595845692251724858981772631341326858335390745247877822063189492355960062092256952432786962166030549881161419829082036790972963276878805672819083287292534735198841071731800040931251801908952245494574183403889053208937318934019667884706359029591689333556537542157391217521513518058691324070331524160203271599260509118583652247091593843011222393562281148074423257323906003253188328898667373015539447996137232868282692426790862174935802150180997246929333242656101548686717564808106605074343843489003705173693767038804164180686138216994518417520424395369692231064977613231272274159127481638248893463663617603264249121640759675170949118503928421643868226794059615577694264187567761582476314921270067446147096442254396299385784190876612254724530684403366459246205610147324882386645761339055675388203580865158311814289870931349695406348234062335277601386095951441106091728896143370660250588505551703111235231264734359962712208669013812833634570947519966481269300672440305201546306132730518392696430933324271888956360924657913604460214213261871062042628509756052860787197154960860438382769354541300145164139488819001059311058642595330543555384107077510401959290665384270600001373141822288562081330344042924679172462916744964787976987473676490584148280574655166530128328329421798966797760241484923576101590657825241315066181556492646978062364730876180766231361345246293455451795771495909621287596118751601962544309458396715338352574246894460178282580858590656075087201853723794882004451468210106215056302306443201695625292494223683229336534762180161840570852465303141024602616756421584357155242242806653129283562557234161524341297909226288087051238655830858281136817389159633495623835547327707932847118157051097228112263109459569079118006029575372639167623650067633031383649003014519794266144957379627192117370136487290757601026175685405492258653056865007851809760942252341503360244292929260479490512535391645449829079835880626602683485399423963894612550952413533078753840745880024287287816023587606569556407138234761502018271435666392382002095833787039315709069749242380116105622399780458483655502176132948789988966261813947353519559173527825200482705391154900829751328182154314032052768158626605518804957196933039220648060686633288373005721304555818929805393883161569448785597881406209434634085977139193040484926268503513188982552576152479004504100884380976301607300717472793099611988495428053515931014609501817818944015118222123630390961645870437081266648466998180702594740628775446596461250035937985802300183310609161833504182309867709375498094570474352133812844396491269919823076365326127225105766577905051677365335503915976717917065037772037803610865980253609122026261027217960319563695667805795304178063708339881166134211433398072703840543885854328356372185544874026067385070402034575794312770313614912093651995112799169658511562805005848308728494439467826037555646904969552258025127321463789099385554608213115952125831399232520066265588849508684256964409060204400901265206331066526543263842956682174386497373634081528654718290439890130444810242407835049946961343523156700091844704544214610604976792830828997157711408495157133297347368548039890559964286729869930798521780030556412421456527959444496392762269334251576145428681072619953816493254924757216976092616924954744649493087279343470275198157432869208480907195727277378742838460591339397131886235784700139731240703270187703565279693584257180874254270040335462521193548791497843166164586124654907283374908165679222262571238139029517061798191137646426004672895909226214207076740755075648182099672481807215865665060652361474784226486845249288212028642027638179150838292598806105735645503288235632825971077350879361318567662496716595833076824848477060986015835613598949542085607426905888557548475247483363763046438378570062217221589899091211851703367803695931128580793857005716031264652798383312521079203819175423581643231113488534129141347257972503557498152837001100428704968502377385086592658264077999709501371539819435952441571950400122538425177926833776069056841487376456248175584499118706806083266208056673918416742616932503238751641069468970914229568366646939106791316764682796694696983688175909580421574186825787501771136534450001981913807862802820827291083849518378380365524236535768667212590972977774637719006989641238593893869477368191939327605897658463096403877440456798619434192999993402076958509197164861074134354699678263200581845517998753645469019628843860703399567637842986832318949421503734642020273216327542899072796375170001413465843654114994287394656975012051367435543484418461623800614631245447601790379577358247379459518327234974031078908804670690092026897028415265903203548936748515025102885211809355898840204874066531238341965452487754792957770133539388678110703692253393097263281342901426412304187356133791790862465463462384012954212398905582748548824843906663276527651839784669878298879172224494914948787532548446883624463156793121483261233968233476521850472082733453189007054045466719498386884894501714140111932812341685328924931608599310215410741652465204263458990862805767775956759013170507970141635285039233876719377713772036794720207927503023452858573804041791307483043340116574020734770582444246800588512995575462188627351514618920742983560276649352595030994726216475144793340576901672105009803069395582585248349901691716338538535615736773038150070486185011677288419091182395151451118662702721990089814080039540697205511539342643190399593525467850379291266985903099762748035671480826925272456780491874887887921492944656591527396302227380945172319043738465197232792309221122700759024499192402999374691394197985368701944859338021851009605520434118093581384015070461443576258319111876435590836660166214758720876056267110152837678501132287053659022800211001063019402334560087522876321624329655787362854946491291819508114773227034901285220223712939185951297361254753400792552347769307964315745814994387914397832991109287643406167397857018555493455932938800102679356871175092296926634598643532900463478844239427411861815199559837292371312711772127265742405044157503425793595053875633721943183737450811760283169203099641255919440880188987303568443397982383507854023434786876773443823874679211294546386063303044259388166007414135876534325128760930729996832168162060754449480967527927487172545729710454924310385042069111499977949634028539117979672753327046613256102380542762616795837458344548921678742844146099883250761451358761740696481293917415943643751411069214836240703677832433467853299514106762420344521960848567096378697060951536427942544338367662829646409947056599462876458471883965190479904414810775474763371577090832299838623453959456462876512846722483511221789069762834711716914636186146475989508518503785624753109384349074396842058146767898648954067429792874814016300227788257884202929444434915492179521289773529354206519919256358063386322903218986361420799725523642447047539876288872175439858382900051878158040493645246413071018785994160996435321404108867728775827370301098836574002288291600950378824727087058137351162556364496051773690065939548250456866642747439843487257606398978662858964950743744973480703217208351218460704808875044102451957210500893992345453295261391067657571671804386215430937699872343625614356293656125776164341212645564409090895341614768338866428361501161265797855307608424723784681098823219591392134561326341835773765557278681530385390795319110575341660519078013590204522181406378756811840650919750454018188146101621090866897058169910505201173756593557590649858924294985404969075354024682944140692164969102095401014677176226016271889063799318605020936118689193287613855590540060306047644059926026191529518520128742008712329075751492388006657451690775865067605471367480981591434723671509990642139216003393417116888900115153389602320633056638217121060587355142030858245883020934141258090391716816689185923238034034343900343763717785938740533463079242083403714370983447978567098290968966163643608033780180309170690659760741075940796452397424891975012131671725440223552646528500491883228075535862135428317462596439113371318790989503876859913630213638798063257224015058369987852917881739910868781700199317944730925499240560036624563452152767399125582888727237347033251494462395737730758011218193188261213932624826457144250473937367564074413019451175717775109514487983144996471295412737367243418197633751887653863044572191565445949724506697363858863104063985631923525345099294552041691749464379119725804319384682026791445309460782990704964309132877216769865565982873220322291651142800854833940743427343445627685068533690652828083876238710964689522874854451139772883389127257870817371141620549369174499930079174186378693560952679888096327986701550647633818187369769608936009878825011065611522739542239078035877697708059923510675279577305574643055138119589143208647559522545756282786731953453177694353113272030289116299080657875513955331134851268411798459977156916825035345475822018933197674951618061258323647162175427990695801854508134650356376372229877201878024642701037976162497293036155010347025212406250059393049256454187343227612460006980266023841154510978291892251444559583744448607444779333861050811854486811225036688627235443799263578296835610433887003530745177741378386396156088325602160752093630810656088771059402573414153021559902386577145136018950827486086915815156497326094821116449819344626229800339442998714206284618935360413578702998940244290597167959692380545560379795128471082335191357114337954807984749298907950669264724447151363147784225309233606628392847201352682452475659859847452719899641483094939829178273827001764805283653333704957874117481939618738485437722931143818644997534415991871336486399716295835179129219148580169444496798709426891845247258232802930380292724584697591442592489194423711420897797360065264948605040157313649182751499145812849327991686304366695927908201205575272838876520599187600194506038885671719628892691111578081500182520192501638921721574626935862122382602779814470913943073930199604036872887733770045615623354985202320381778028755153751563676605074902778700549166837694169703894907174458340107826090677850025165945714917429033102021647160829018825204679631148057783576149583624878519355183300595294358793894645043838274845730902155771827105787823765467638451235800604814655036231547058163069809148897624129269664273923495399650174345299187835468556703750177398619418809436504609184675874240529861305533110925620629406737782609538247789551034868299821667633695177677013320182011176563351004468137176615904429125743105302943219450109666501291985494402292362658658790371043904206573830362682360886465479856862608420336434475375555673490229731729577646666721614077364282988551933630661852164525710772481987701570838398373009752696192157161688446992425124326691473704764260102601956529195943969752660026932233810522717045685888854921043306396495867797369674087026644973427212105649167489316649457767761725853740980020662266063050301197697079300439516399900083504652459404386495218349674585190852266545347566707565901365726519530780325441196658594798105540180476075984868552612621559874857977960548085121789623747434233643776155545545082611156633354037245110788867996102005317556598433025351844865268727876886941076471009968899504825019008545079202463972285511458890806144766529067503538245929940673698056905559767014054557810214465470189227442920828149653980972520942730656733374164962093143381569571296864281948075829628037821269407783543685694130354226717055603038659953897330227984599196554960576884648519528742026352692205300086488604150019225265343354522118509222019817975244064318253205558467855559236492781604539650474275660669562298224179989597770779182046211391406459191766231382730228678337878989997331660373635663638457565182608053130647993874191002656277219459453951813269913071629301334247038460553737357383647442033554173399279255360139647762126441698715562778853962918017254508362325585697512525926197384583255311091488046762669984986650023943111333210886221914922959016879886173900618360122243242218878420604588020787275042040398443885265250714551251313590260101390467327058085957791800861353356945075611553550962134417771253719084463993310025021943033255778428517992312190941909625602429891269902980590366630296701997082309997405543360351426433710318866490014597044471631595238233736779774243635560407071494891018632239582364414123207111482904067433217317656417595085998634157228214930858884874862951740309027526867188215016844376103546362022580299720486476606126993885179419851509899471505555608280260706321363990006921023137000677270058906671196293333472865982711855858175315328108335197143072782847584129700617473650912872887289977680045491173288893628060462427922697155191241418315770904483022429830711723026241116114286113151140014498660141975340880396966802477263153020478006431003634718469545200817811156436048671327372525344814291401919110284104190283581869833155093000536906648847841632100456819850496508694998832646427754699562201288473404060832252693614385709945544389083948657530142907317575442086113311023315943941753848070920252363995360991421340516041118820743772027680379334614783141588147583119036724644471957496835007187221128041712050291382956656901774458812280012349023447569743868316385722885682631255652964141013705491293939196862584638072633911025422867343661253626437099218458928786555634211309678381282162244468333493802926104601114369299584213349518704026149736066067285932578715465376618081934997832341402633671953798610148371631272189197578070436645289104687125754063568917312911530763563454263186364638966179111300446402429742265564479316988390219904722805501652525456165132901692963242654804872243388379127355747423497446448836510664842434926027200137927720923811853760387331109567698030722156768535127806002137830496016955192452226330752976160988516201530289347205329520051599466796429199585970380694725487037977360536659275129068614474124803118963082326477046134119458354313255463232047892302796296360199065698809301747591941602118280302807668286277812068028551788346425253323902139237801838388179814127230191701028997398628833806392107607095071035694656597375885111300490023318242103512103998494176693857065672017727537396389583493299000565331351558259095390187398473372842778718173451044156608736202384035009473259180479215510932249806380781656089392259173795528569205731848246531413415224332987942368250695429773996180613202180495661650094885376382174571759025206251388752013432241432149828723186837358535003481027732815070956778375360998714305238822770571434619459086281566980218877851670632404841804659418639131061812683886370340194469582247322443792038474435046561123909783064330966063322928161295097938075429546005922706095204497918613860444906959930775171790102137736247183704441474846519618950014050794724163712298047404479844008359110732725677439103506349209776812692784652790670473712443723379714566475660103953953061890041421803172700740017381303002526391398338434216922564353083001400235554249936012799135168273862898558422197449740745627404861589445589719175355510853990680109469290898816287677014450799552921643698020443622143179243874234449155170868963504298497276761674907531818151353464151979426414305208286881464328669306992165517098068350564638365892087546312309279133926466664408644696618182088560286749276028423468383792124596564914991796196475862565711545501808969259319324425013257492051030913271724545989706446043027166099557323170225256856964339479117951287618150749638698742909285062048237320338330881819805498044843006764851456815165208206436551027114809109022494494994096224206486566600653523283597745755925424248382806741472501312096106270944463835648761943358298982452705645468294345747897055827915892509043982753610223114447519006495371383736801720703031585459274741678056488506556953524908298830009606353993891225212371251287502679554691046518400127909131327409365147072043011510709553558600318670894084177005762042339738739392408810602826936487076667381583294334834501637008534836947565960814812554424422699005525349339749181965373780256543847568374131815127430635273644079314935880937393238821717267414204805853918190674093032397191258392638646684427949918618980974168708234188572732994910175850249205061207197666334783618038958323801541598930743064282934875952616590618824561016383381647062246749861140383286627571509422320669998255046883596932788938948829650561389112476072247375328368669367038656029364004506291307389942202258842832258453371473949932236127174745637228028297658149281162188236369163848091591460705295692776464957039765291231131211964855463887410819146496831749701753850664771091803681711431196522330330476843583680492807821283756856053958171960151346558272442373181356086113059970361653249819402927551684822001405474270969966365970569678411421751986585462965643946435128140102401737677321686861818704917490368858631982756521950635072964292416351234935417623402742768921356183297640768095621444023230014702553452910495693512781849110686970219297221834439604519326288068980906697419730205966454212145250833326266422801412486144252060881062704978775130920996922668822397664012804080934889055318440071974328366983716406369172309558507769292277435716674215012069089886541297444666532573711288677180536177190804574591962997145855975241790346280393844192925392529859360878917858530258334365319253456534371747014960558562363931497445597991482624613472441237932753031089297586761583000090056335435716938257574202504817043602057007248754525727432641747243118569673218750613466377785000071022372080288621567206541772890302769420825995918294884194136815323022038340651394561973176482437801579193641803911527594907904862739895377631941429497243784398292469682523623110757845631056729353726792137974615627929361498668477069614369521439416846174901418555099256384579010046306867363502972852412563271758014784919716162772117512046893219680825881167038634440595583593951187379994497958466815667315548927769352300566501742596596004731804904594404986725135408117550955032370389827944318888130637094797238785166039645117469817640094134766232911141041772655749293941290439570928405158540828218351821771210280475833689407082477665451054355879542968848989250639139030142070450050069093350498799227155853510721748883092985663795249816816581891886553349040510184572359456272805898047944823423494445384231170931004419329615047132790605069476961052086151640504015811730591505005793812604167734004516476323497640607972129441751951325899260698648970849843197077870022275777514242830890484932491851749729436453136780883692524358949075299246052360017948659777588472997216677523263477049259866762396721208814886180356006961884097349263610762338336856501289252908077884676511354039537385064902461262024496369497834304046628163517733592951541484120206587652336466061292205979960682303676034490515713215015717569931738772650672207702689295142313665738892535547645946664149582078325030027705566227016460813300387716877194203298076556219349842022400840278704944474423725677102513953176055554059225015554380681634584700763108195636576963312081535411261816305176982167883170353065443527437692643992665744465279244678609975709354944328463393707143303572823753763221590051841013474165325198308860631829223620688097743323477660367113899627943626231912217324976827132941731233913952159459158404065172906511145715142241239080550987880094229255283961756602621986449256141089753585757664138714762221814801824903737467895861382783113173554118109640791525145396962171593690953696513104066961482561561944516866806878757779015043648152942782555809523251122995288397470494265854480604821889996369152579742555110025238115899033818866390582766865346274741393564174705264467982887125204809841555993674335392497653207454520030576000030429922523078943998972651925237358625101128217896800673210904006644019159686954068223254206616477116072375115826413544269205759279434059806474568879216276207861413020208394479069998814851517614939947748275616591910067967210692988645427025258470958382845700622125655819989332349471604998641165468742049940389757893285848709951868146380228060133033312341936219347837023286588467774395505096065111196166451789344545874338793765613334069503719765401903486455426277571058724887913201028873180379297745397849934990419296314179580118804586178971875539113257253054143415610507696671198611966698305108862072655467976347928339919544247026753838523691066029761511582589537164947074306197717274580533954507552260806528910644594131944437646070545828703520730519471542254007952160225885638964635560970970049361934850279825814659626506589218080753877672177239196883983274327998038274542364859572768846425847698295201815708737704339316715969099760532052798363412079326203486891654477413033620614566880733906064817526157240999763969032793771827093277065406385772371856873227184211334458474077651603737923589503067463731929927385661446590514226948475409190298473957391389853562825905937332990021052163759866516074844863197829410671912503805923252218692036928375319691835302104567098678572406631593516453140326552496245227814183955505179012896395840694184247741060899265052043734094171926808395123609092890018397257048339295390763212630779386250075585403227869586262969085418663687152811871315637909687827328998692049240085185022792094721791890735084505158942103530817104570846676994011653566501734393823911010877429602444759425194246712883902748999091634588977608452390843249842547345039822553893436595875353998125284743961801597078718650763777734179986692270138680198375427011000409716987800286742969190795195684581611000470203242389695401003259603977416554694465440293157219754545148695246308102339507463193371214212128552089827866468387761330786416735549951861567807317883401629729852805686215341949878236439597322985947630167709827758993414830179173106212677625930372000141222407345303542499898371952848652263137003056768739182154965163301370526192425718766971747497791926364810980525616988084884019796197686452411112187715330621468718725749625031111394040250397929088742257919566687093388220574467192526326025259236632763777342812961976978310445981905269019157054145595050015201039594400777256979090904127697409969582712567990591848392078957782832068954199657916630821953158347487082767259475264412424027979238943234282423363620144484183897899047197174474898935532034784789720933539898117783001276078286230957063938437981115280539274839503278855037183956308936164780451343420380941573184303106186971464229774566655046458988548586303127760414490429347561750317744964862955517335624771290390420877303831341732187663383137286552120268361997165147621768277309571077032024225971318812896842108161203652713054184692180192799716569970441664327596557381106044954540350056915915685091037417590805544443198009137628213659975016874621336690287868401089105658657143934152351639615976767904215324989327617350483752435167513560567477316961273588859653596241019292715373049069853692781793866928865858786935016514441211467007101699466778771843054330639762270329980414492231546214734579687154722281874773697116977772885524322126381464466267227672508970513951132203820874153738596289342127165606802142797554722253428147086342183736395970528225721671713201557811560854322133136162803382913547092621849925515429903835292465740228108357938051191077536755574558447428848618043813070130236797946036369704746116827942144909899518313888486837746288609615436895645454642184364097860768325419711140339484544403762221676578338464108495590159164488995930548517813347046988647924836302300972453487710629989761701949692873679240645182203356217340516738671207435100334799823738224734007460767164521629006275611259430248059065063949616225968301509609787235534037904808977414566329474254783917334055919581184974230816113717981989175486971963932135515671890217873334789615068241411936216921536163203773771964565445299833450950158724552708587406304799658823333687975617676641744976553418090635830231220985316828912417475578059009496626537486425918401996043996369004475375360535685715615845043431022102292548183123934210056727156968876993102674719891016706744878378587629594814018053968505524011733797877289878447592637008958090297700737447707166477938856359479801337699375217541477157323699629216360069869565849044615160159263461091381500004219675339201584081051561762413092077410389324353141296418521641503607037104934234177978738617630392474409244522675280089448661894722540759771398559728868385616893757694485721576567391762754938405527689757558164862246023161116588629538822476967852219651038254237199271856719502195189782094232157817370560260789688683302651177005175244204745912432066502942704022790623126383385201710501343412014260774038536849324287417417110375627955576369897883076476151847921612161860556156732701261423141307567069142170033553087979509499102512727341460922057740549878786043831061529281058020922633769645536767222401537072067807996155906652478483366788664327424741605327878465271589908987162580953701024526848348308057815500191045474131809014953675609400579472654845662574155323620883008910615092504251102312966016793143842252153354640708046935456393346388646331389066408008072709033349393820733070996561922640673064581120563685568763699690563982533772175518655480218052251013508850970563150656107891630724089774710805291435038712943088899148465457444448212378426441489111692606998678626527154686047426687480614617102487121127532617314738262126492929318338783151095550201949515787013673423420785752839384704160390720875561148835127990218883275048228861614770301449185542018813393273504355903512558625295539420600519597454634928859365682255534069175427383014599711141572266528144882487299773000833773159747876568144451073148939444303972348127575023539403780557575099027476623654365289862269501498277754230446649526129534175000129009814178390843776466066974324087857413793672404536137931818012238739060220006197164068663922106730336702080057860907714767169076606957457929179316917219777801251768076470594524472992157953029573057597262894980081596897912997027414338067719142445944218568631349809018521449843686453776295831415270043517912261005395744347170621010584218753576064005527018516681760363070086671221809847828544120984465638346256238874763076132901109461157778050675896498781020355057279865517166336786949666585881103508084151781858255674129938358032302344745539994851993518044925554134220231565801492268101173881584689799512059985380949698875212722590778775770709727822236793538406505266537747989713567624623933693491633694682892429654023166187431484837837231941876429368392468959199646247213573513546924459933230263079785974095144562928245190799350008280901002636855437337928517640151501614551754004195352869209149029711561280895330962824388161155605467072393970126786033597406500622853285740660618893827351696832750280039724100319560799498915730844202810897398804010038684205345884157318281245582585406018090768280926242158872599404038320061793332177379880564567242829842611810271478750195541859143670719301202997366584987624282753404138999496669302050907842371321224576866083207520212188766584918233887822227046701552961555821658020986399037196648489586496032000671572551692456873174261650657107498384820997182688234035629358399603024806297735498839163088767375239333194157627381017249411305147600387147355624176000869308475531038672421042589018497706129000531487215652765691225106314399075691022939680864889650065430834720850901938843293179213578844487881627520630069350472644059404500361701924507743338604630862225523088614860801582712712312380935652196575911666737094697260304198310864186372442910481850765539462723857070427200803851725987094791546840701130127432943629314993084010831760310300721733840225866936454287510872382165633886762054831174154550138083055597703361610434523273520313323056286605126604368880939923511333265172666915888288731103273656854663519755941484436808946166646303146341781619611939746486152754705871551598943967492828040730710477628522504962605787340906519999147792767617666838136409538071028051915295155328028759618534742972096011373393803316490501276846758681463518624234059606329681340681552714264625639957597041807008746475775331982592672636195145636456637269518840039995974308750608774779024645914899431574590966602157885423195765471597762698856640502980302305817728746610037864201067409791201534491365049444979930123818781268806219458697484701021773103798999965290575351202598253531334909171776117610882093896243631613861341174989539554865081688927014861249624358704982594542536627922695598753704622344121567096252097047180044168058570808483178758312898886180305222322515557031868505475090085570705855622613941119278686346497480695572443948813850107151579932835193484597760033256917466629627553932974919240020494735672841038463681902873639421087391876641668799427237047452318763741113805924974672679058103592112169653123847863386619150555822850684813758321542793875441560897081782387760250602943286424596683218512967389155688473432911285110532996255082669522173064483768606821120482143715789068785100828390739828465787164661089583724446144436863867636599940508860471255397480525625813051117931940673649193459788459296497219599671874591944117098687319299322575714774425641789740703450340165457763442166941436336300065934664688931972801964774710378638549752541791164484780796035997714843527402585742436051167010987109843334381099321437111523452277096396923745945973249210568050591045720729848158778240044795345991502382583670030042026093482343407168559056325983912034363351290218383341242828799888205328033686211200896817653880204295483926656624309783974667351564576925635251665763347615154700138551186423247637382750419013341430117617683950514021126885931846217938112282611405839044729190989360750843890033783608336681083193321420487941842899631693630339900847790432240896924548844430267734249144203236536960644310925640572651463180650239616013094019307018415742199512675527555592390213683937813932096422712597352983290637599844585449781351012123627208551805458626114394144770873260324917531511542560836788192861011419936184364358927031345486329651583848274717428685674922056450820774262410088167734645790734493144560498117277658788422772286664600735042015623781663915164012303430228856901929752208413249832261964256621018019920838684692218539741843796036826727025072317669022462223725631809655392481708493360960711763709717009943961318205036671989088216168661882252866697073130056658962050982222377117916196904928497293475571038737255292396567515407833656181799862080394783399623170413515777530201100295562635111136684624809596662976278431054740888910399842303826742125567017591910658336733968991182599430432495700273511853771114472588959750825987450843672597514393548660562031490544679519634577812583485638846618894517378483916041510566924744765935002632060076640648866677825684580631609078987798563873658434961704297147394938442352264090790313119813502006691268820676235374305358657549548345528100961000678282021236428295690823711409045995894136514901848192675117465156451564869082610741825240670606424914370334725390120469184313366781445537572734667853167853873060211572509344339319655919122823492662369007898986769189287874769712977234098856539095501284747038965078581599076770995685974514041529339031788511338596155396504444152161480150440215521563688471171342626369513954022412865423000634707181633208846984311185453509815952144468971547313481170996071578634929875491985170349366595731139850081557426277858333347024905790698524165450246761278588313435952481261108773445956056419573201338972871106451376975947642324555722855783925124307243717901367620792400644230252359131628551652859706136490716822010416390824470395476819590447575454444320755466881335973570385332052172670468093308930823594733003048546797042721624826104752960378662783636757118564075716982040084463563047330565966444587635338666117257450829015999635599938880844134617617927147320065130499362109587710131748161228433604235739167062847305327556992452861555720389978347715909079736185752830788689872266575294958122923556616576548692158321393950951221317871210417707914548857188073060038229440052021818993423972050049843701653375365408631280048732012104383301310856399324733089420159950811183325457265969227162722664728916139900799868425189245807323949422632642622939279516739809404712372817495228039996185442170685591873979334693277239534850840654670705581087087000124017840417131115698566410078613639524788004118122875911109373606427177885859281176887997161162273987384053493466880095792685680045318052896014465157967312916258891169549535098717578203115260921284409759644931833737787137600819753321125237920335029257133293110838795716699108991997959755480325809343728434470113117223203434215398838366031896869816773737963408930985386838853312104430320503203991227647604551865449995859125247476974135207109145104727911345706598762267941226666213418799999861967874797797443901783088959186342836760598794848690226192939527542643556587670180786879031792813735392044443257983460928764200030674657195419773740147883215019927754891499243458514098558521692358006953582133660010223175535429341282698651824604172991269714705934759224785027545319063322177428684166086113956934251591826089674027272581469198923600229974804035515345988127933665643781981239725213978904901336545967952615089528319884320631723482921841242133773542850470473456229392609715066023274946911954818064240590332216347966513627395556468708762033592915811532294033499048191343284396607390906531017676101587785223092182608855117770139338154291248101779164822534448161115525530236218798096648784219682756433702745891145801265271262317190789009688601171286080976310736122788492689587078788055685075852354218511021648813466930073004100938646036358621153079356365397364737035625070261809345268113166640160905256514165629789036338122651817492767868151297225966776644637820211765121663489630430874611260127032089975767722398065616961776826791862665842864830215483971825928536240221931341491842586926609212605142162837603366681293143177533875884741980698945754287582628191301741649670127605776940306371359927195223320996009091042932438454936256772527070952823755773838594879185075560753782202038531246998033696344545419873433206035398964175094552029779605273579519772184420941148441187013545710708442660966389883029244493901212408015191976844913035745754326170916429552540742346983752673796572221970026348995953179143089432340609720635385176709972265069804594852259477292150752315651262064625629212385070732586654179517491135971787977066254323303011722365051175634408438273283333265787216387488295920803667856372959225048520760954803828888429405132969107799566454957902364814441947712403616383190804193671371492101958276049089702796734062789368073140682051895480365644576565573082147715059677532065708721389133001153260113213287184758868345151439596717617318898642821887302201529284880008925041612866475798470831858229497108753258531212501507816302084800166888343783682101211964871952804245933299890332537153133440093182829836369415081498156601429467570740012504692130258880295118357907220978187773023179117470545395761134471169148947408795970089708752850278098037003961564367604442132985678340930824715696827895172719947171163171610208139142069181186277209226675914454074339108214281134362721009600639628861069641212018325684091777308272099592850159630849256512908970671570665965426439762468599380576381628813141622619057716885816691169682426383509094777777954920734131578133402463285049989511892435306076394068061180291669607029081916414579302300810309092614274062042819907879842165898258141998064856398882121677571614539438124171458753284434003745903269461588877874216919012183187387756227652288289653658853838875128660883240999309278645755038685869175455946314930105564047227449901451119107676157984786418436312817666827479683711605896986240955820551150131504325386725613041279907576603370374935032830167800512986829592257095222215510883827329235911033279159883912373406535594747425260914621207668986385805301965464729115033405261059330238035640514539748036004923176343696659737045812530244271196175360874919914803988582472341547344515757308473907011919727399431213519615140209953850725734183937843113858475902495995329484187136193154479394832510568951677331312650760150854868303730238286016870737879264245637991782795303203188285948028512480509046008018540244730890381967703150996248228714743700987507191873956122210166643548082466305793147853789778638070459636577271662595560676394039981212471686901794344064328365472004842223168686422261637426660031827406753808724611858046027799871107304627695132898656057603400639162740586042832914876073309760328902962697402530311297400317236422389245652893891304074412587478703884780510417624878058459361088554176595628179891290571011817130015128731996922852110252871493071040708428825271319140928436066547806531727970531796935467890934629065209309061995948902488565965690994216407703723295872181392366594321118481275106987370340698543405920519285438849032694017433597552022464188794368428218775484045148610318549376095214062737013192855007545292558158406773379130446843400887849425334314675470615917704562342070090603034515689178554458228064991567527612050724438462387791130618115764799413045702946368530772901006510829313700554565940314943217600513924375308391969706361259937432330750569321183687424679679488483630004073771570603361932033628086878557861319907199099676127969943986049449195465149508327927227306388171687294477993528674297975192700007923679727913510241587437312724023214640054971069941101502601441301686457484718200386707997180373057718526708394517148940052036035110019855755127286499226431021652373498379149362325478254526384788536058756436104259037371907378265186200110156530366307772554570934936756236696330939635857570056119014044993123776487979211400469992975038801942996808573198266006273914833377590247966086383709847752976046423108752712236541368160084477308629306876331729935655258553813870520783067636254572824481225134932827411554155225451696996730610315358034057560604380719807594307033494427863987963311013579628854808438673012713039320497271576444088128214145377935303339404660502372762093815039312349710962303907515120583907972328830511690993575108289336273472703899085295587630064513524219096540288550371393318859245610740727673853684725579555914034966108121097278595781644090329301835095214984345168689283004403273427884977697993739984784869045577786997373399441639331326565411406813179702421935776101795658609795830908301144326835993782881842068409388251898166444126506922202798934309108740100281142780377891229072154018062986837930797356064244045533421441251851502108640922768481926497027807765373430973050192599122894539139720476448196742310936855760724016725300740143779503182231287279816489580399135224283181317745177382458190590408194089796277956304646447109760260885810638659945182886490448028743356424974093701397874863791106560862582671228893307850994930108750527856434575644868335418357591857230608521822202565076502666216096728773315665399456036268822319380163333197221867595437326173937361618642418458088782413263002405815234548737941361727195806871563561049788029076400881235926619986341029953923356075177154838748582997965052143349830117563482427050230477205875282935893852876937908071882802633522547014299538439874562209793187453088324371542627489246336713434561976547332403530001140539088601914953665112639956519562263423181257052633662211273198452933506727493962942379331384990998111617102166007479000208406881863576532513518038053506621229697061720979763711566344034546673004882324903184534021690452787771870121995491888577062945877787348387333576755657687824947265078772900903542412727778530276347210489262793060079374937998466803703691782126695676202697237452121823315951655449690487360361501370649906562027658954026470403289024437387080651407881266898332242702497109967429127154112833829398526361200473649590073390864277944050921344200224205351984283759152321232642524648560331789927837752492797257977256323975346642851851110175811474382935262837484703517983961177972776517106242338810664691916309280474791073377527788902440164620413614181631997496548232475108714467931258583855569373752715082323167240919090294555748998609777911250211253500587770882214924863840276198788713582220611689051969171950492711852955074754940658783609304466635490700148048947614865925821459369054164489755870048169392926737242605594936094309306941599239036337501107909371302989758853873074239061999157977587675460053100443216700936837099690085252947006403428372904118896684549119981384361398760329035530868695280734494537880782945112168677132517572857048751436215300036831146789833394102595983410936056387255025966704694974894264016891750547387791103080571387717874302119861704157635825901418784466342170150559250199570934905199264162936561322219442472979041670271419274151256872840282529691453892931325722521155473563103299135542881489232639114913510463324303110969028419045436697665530890624669118493933290790265979363415326818189875109401421951710735543557086767488446549420417846299727895700855283963467385687322019949071531679424671358839874465447686533657047897896518780834079148582786574576687798671476085292808975548088835518381008839577626777067163382660797170137161054720260696579797170916339556688721903585284437111101573941704441255023245875400881154019497832521984652256516057588702561074932109542840635364117902015099031259660623256572819827916882850300391923189169610048582993713475272157700240206387414407635473499001135571537594976551393825360486705126763263916386667701593321096142420865303769682505689916052551141127648353535564568685267683823998546856180459641611304121026413724329418082258783938380345917078755055096810254615745110166809168073152145657665841199166557832205199710835706046140685119509370844280502729176663721464452257832774367532375052612648219207348391975144874681750475242170368765622537874105834103983252844991785752453796746625912672408334265708098274911104912248198886138569548248478884537938562360533441948565329147508014185298399077357357903304107919045370962066239810279349753449986921716467313972079030258469519259716427003781314088199110004486169940346525723907689587016361785421549134073062661158910774612332271749233000422852657771842164703578138693565454744976015942237486220032378366834759262381648576497553272486585381044463010827485454932508211684660928450353817360078867274233910582891811324608823604114541912336277398744986936900405247560949106973039487666982689276525991771007316185125592465130592702761769611567409837374204278798402076453369315326308362873816797666802563897611279557453450822192762046161887629378195798674051607995489958506807352449377518654564065985610593920001837826030428173603719576568108829482008951845366621299613079877128722969065507964189375003552127798616969474400314659744673042568824390931546120342333688674864215314849643364569035736975513032577762040979490520741602081434552658708475905605027661776941378785626459310460495941250799027010150034966169005961185819345220754116057833498232533131036512974464840664532013537520472371272935847485028304451071234348495395222833696136905014819388172753541072457518428303835193488343458222171940114889407965483286632252960495404702383287344695638560403124789369148208164452343772846300438453439570799750697479483710784240010643025894304216171497204489968159556035266555113666324680124120762050591260986843612698461654961330208025579230603340257027782704527656765468534525971307824393028421106210555325843483532081104448317690492986551242835709389417704505626665312648492037891885254670144821032294936021910284901274962939389941753305375423682553758674402955347534265131395183257557029255658736631071869163522440874319127041008217290690706460686086057411797897573449038933515071391361201909941622820295108317690350335910357278374072298631399630066011977709605967469717043771449796529125703951663671944588703451471336228549987961584481514230988639257514099206050228683646648609128084236421878165281569848358399596857437062083830887131133692081140573299359966046406261762164844860006354437085201961549601521250493819090435114159693612388920838607551521792567439600063665852443232258486840312599600538129071624744529097955439346358249898858894975532075003075621017234351644492633027314112763243490800921708502152362353256626174869863619751122044587248381330769732833289694636609916383065967607437386341192412070912885626291976675239654599913121891040987142748380895107010783392227405952518344037262002212725569893389645772413585245751934172085202547685842862715215276901393184298054253306338613015707983873219689889572939667653218361397464396111325404968686606211530156236033356904400253669768595685245622406547309398911193293797706393033932154215744600478914930656400046694113865349819163682834596855784878455442848880270569977528889315556894455301260352492098490379924352403262535152339806869775572307996803881710216345189996251308949720905707620305254513406266327169061431105687734945216155390086894470768596823220791606994098555475565622765318752556207951013761494381324655167916963696332737729692608415467453086308677209239069838775717512175991936452173445649070032902016012538694926798647119879416895137283544118836553009051831050922378261761278433575197320532645879101784466335069130069075015028487043001014928234598483837823937559366965604981955994274068217141755150394808959460898407164850034930349551256217586679421311497031186738865658066549497244800119294677076690465966173277347400303057978079068624713414978691969099194432488201967402426373148715557495678485647480435343028547571128762616414618301576510454861483066109914212644889078342039516659476930825725914628919778349625407469467046287906234235660392424992114482667893541167114646750633290919647314941524441211457661181988060444268972122653788773516763548831273693107099072628095617314228801510285743130963243429760365173475757488039758600926692766121899114941799062025960572590894610098375700387274135638374643398387337591685114504572962871282774877025141269181512297422436966971358934121784984148886195369805750657227680507259939198699256363706236423934764738653402038951318648628457386769505840910853094417943036674222940569904187565439312046494674967693254521722073217907650702061251196654755700057028108447598769084267898106675427111597375555766454729036103100633722443749512959393898060424815919018431632685167937365877938660895883231840935855233328090612568320466105994536726859930046119265635753469529149625923152089495477348274202064451164078473024184983055335639064944753566625359310493184177850281378741984552128477185594748958593217270363344338584663419815853510008918011338239790420872934120344895269370700785899011403213125185579586174849912838280653443672356641663764853426716858103192186456180516438097109131240511378992921041321657945641632505100671148984183456129426862792349083598935477145277823856293037868282852381807714566843654288166651626261098104806276137923595368976311966673867254444079730398416990883076850201198570591889705990755793508664750435730323407749930939061387360666190241157004300180524175811637966501652236951552489269445067635961360543322473703518495011662683160050131211660177172979808135622392694823401435644750506067704630454651459377186075996446047421818852266011699522592395280758147727365463457389409604624927409017430699186082261587976824595830065478031659532829324094388020144471070309274831662922199264550120726240910265008548958779451500967576910264262937127959260164858844797579804797658788507978113080951069231161561142364857929313553894945750281298272926559792379864050431301022762518359217349996795029834660767258218409053085414055579238246828868769719179407085213304938351925688828409317632380462151834876639294412800875196143720079718547057588310449185902474181082627150614358794550848309622332767859780179224010990777619756111609614380019081890012239547212157488242281641664341317200715209707718699489636175256979969964174853750830046399819868713455397002630282299758238880910047907834351501377486351736999841439255979039374712054963071290872282467267131178094682191428236666933232599848458583952761246970340910273876556823870647169623902575113929759308798687224491079818155739126350841696734282745837257392989443111940377119658874993303922582028981779040199059749260233563594294722207360682916267992631455161567521326215797639105175602942730466692029463762674729458335969757084822183240974935770277357775849183915641520233593731028188240318661305212428668010290143128023035760642787134059554979793765604732420692815874083745338839666997325115350471124223488644230753911548341650625396557911164905429212841064740656683936523660987588033041396777719894850185843330631572089360009783783908815093085501993972664398670095599092184199333495411315469080524478452536336080527159855520518978952014820452872421443360610706118933400072898778810233153328144651228895967754472974014842919469342836734192118236895622118376239070943380231186299908081847117355018297543213776982920233538634060959670178288834916467678659690483334051445527571639168586496757992361094905826476314775522253010283650038076946359106428102422574872602427954787875441784217100340927904773752869793070715871323158934084964046090834687599444793704700515036483909167617775322075038742975663423630337370294116535100165269408053214824193300826472200138463632020308171624342314061050612602644505671243438424320274375310015758012607532442285851666211659706877738999792277209299853836900705605898596204795912550835743501500382251522552015383478468582180788726372461357907648744366780017341385654016067198266708973899301154388828589212552396068612456831713489100268174631176663324580038638851091134203009748659538563136716771066526341717076306311952747464153082221662018939747350520330315770891492960496068009759422650955735575399446880063007727845020707426855777432600384962512103506953919039934235244118264799570281582301527402201567672497120828046234719963080225297373168020289618653819322849611897811527504382833188865935928986367487754516552384886165344513972988653879900422323583263464490557946682127269011397061752237924787989897616904856254361408150565861413659243512411592284391493592997021939211983202859599095693937914003794835604861276400427533815014648269835335642180008745766405196955293743604307833534149875150753866015722921734873612329562277028148781266477803942255754475122806450844724250609034494840971905271270018204167192005016240844893165811458071437982354984476746503674533032254134286187652500545252717951925179716714617353815123402842941985205691857898928439971525083495635889960135314675404423902882787083259339920656234256264995750340638042498476394639740277696297983743616769645499014101564747406712810169134681679101436477373951114011516593111118235784036828868011893562011489320137198989347565521354599584089202885754252303134976717519109547306544891298518465513911728264574625016969138511630408314069108488280680121196700423062022774369433878551965887531015973695495441974300305512132138815809263227844066206900694400415924040193406381673345090407821034480538766421855759176510622958830658478943322883452734521287429746363516736728043722082209527751176597128113287062114504180014242642502459528881107966057569487198516206613967816468221174612595827907532693157892404162675675845314113985628841702305130903753154545293544303806177681468282507132411748611289052894137305715277659430266500608576407402667078411654516646836288114760191809499271036264403819185113881528276057204223799842035340880457887151631386074440119946330226529599630828254754346738043493980166228060249775714668988145488324999466041115080277653782547368885582886973381974428023622777082885077755153842005480808748236562752917825366460748625940312407263886330909644292849982351215294763366741849192098702254060494225648207895675403388525443028834162842351943016250760362879735722368855477569375094073151714014432218120190070110449448365948323818335904565096697716607219304683318723896238190497078327056105980199152031643167056342297865541006724135423947717504400419893804006659264485480680198542131260953654006631953413976119518931505563449366817011572131686126511465766726079878109622463975752196369633230824346532788844975770689144183855085150549314287548281323767727371947042320268186550995609908460261862812003468460088331602414088675419373027990901387633384559114228872048916099280904322064762666999379066900379048518712030420300106298022991440860011147727336848817148370373421245170635621241271058714076558120305278827389056685860465910729763865924647042829427197859472697233205157054802229130970447003064279518024482404895015503955692515439243775825976814910835335383813818356689248665398373601335118615552911277498839697336501897334154301859412729419519239445053530258244355527676521277063824540714330584988972243519664160344516791237404184280279351774531669764124887637563398016180914741932935992603801215993273131440975728756639995098689483024635922828467736708207191302976815190189653805320167368388234810274332026522042693132993182977681336367196206957767636911477485318854071938699085651834319682997435516738754733789097711408464894360315180399012074965565384819927301281368890917305484614279216452363332942673625322770214600644233802709538604868817679189367294784416184170858177819453372275871585611677851643081532322036913289368591735624524051788483260338028116903309193176400511798157417403787331341995530275865795642157244961531489643752008042633684644934582431063605623702675406388394687695612514480769664533746219437842149458809596012908420367556147888048912181508179484315463403707589221728498558301774023192338599569340385160763369483699814833930688013275699017315331278285526537101708549578590748255688401064586732433471686894889665633116651311650426648514352367231149627334861690504306058170502802846864349588558054755792117279699233972814113530796485965034824037322922069652925229934785819023145378241563268684491158899910623308369035587480592595908238545332287784555957481982484660180649927525856303946731443591471488684846342058365476497759336188355062036813998225892316299146138036528488114406199484414831990887799996640412550273445346713452954677493625459602780556693956832556271201943780491671600470331887399285881067206488726564558720441295763990514828792015850309148085333888137440210048863324802869507970969120677783518804633098758243774279433681423062839258130188556337514526933361671170973886444258390994269995057531257591370548077266322216972427626947022141573671925642707900808481853976621517992224964883643897233987291914962348527016281824341640063460589856508392866419874634999898103784357831274642203611390692317619866141380536718470228975485267757551186604895785184577326597623833978309457442449524510331117091648834348751925133153559050577123523546268058782398510054719593160331892388774370187090412606369692799748168174212953968560730561274278592618013703851455983150539747114543596040104347455265658349753329164395059183262382347963201266585400164354349586334698454886710557016623242137639140541761039635928883277375821730587903856932995353199845312502383128575821205928447437348863391749939028809073606490819178831417397549929712069162977854691289871259618042028592649737029561558438561023002222578041393497280293226336228684525953857479932679659980982778571355233424021751212838572663821990118235583033165795995369545278550300312335285943596485506194836154435159237424822746456502633988868715273113110932666654785425842070006993154053314490996537612200032430136385099802168603988944127761620906747868441679233356188757023775958606521645428234254391866940789859019395580515679443447438808824656163458805902301245091898071943554712988483833324155253313665986965365383375941662595009363931227974318069047567065299149134293125904965196732931392467983221399645720494699503246578198805646900736826365781011800225299331023541399000310578697996581505137622548929191701668943130594369707221464889421018223478076737749210323411444003339708204990532250216903826680558404984859309103817127433546801754672197264708648099958329584693413566463767201895847541206592987748869043826137553360586226659758896194046829095920760825885595236589689897026533816712552396695394325736801878855251620108349282918042779968405886947687610055551701536416837743126436036286103827435420187293679540205371604467530993337423245649636695187732276704018462673312460754147340988468344300112892715191131366893330351849959602341527773973177975070696768332283741567259213039733141227063855157351593385011853081737340405348549107323680110084349107766987477771192744985609799153814637621257051589768558946984069825964138440989588706580144446602733346777689897127328248569997832622659687925328359692162508025831643772200241783689023656326960288136606620988821985097455367754265195113958211916271897416170033690817691328033141642977280222823376019714850417108367191874566338731207860250375915737166026110818105120597189260997055820196069343565042702001207507353026692206211131798044707689664259923798049349427274280634038895711243504386314084851814332064863669589530866308211471462746337370303558658046878793032774581189755587735495007948592166960339612196272940114660914751405030457019753931337725551387622806494737978517608386425257375846384430122900602626707417655168423254291353932912463590844165723540756342501030345890380603938400910730514960113677531281599688012886395537442012282079474157968274545734279034893574134060417255939523912555799173383364965113187682644266103527506650986981436434915791618717079069170948670717122380249415747625637530849688989696276018705126900359457191840062365160909072753714107959476887103815872145204418825447022943761993953689321662606944075481887926383140162261744221896634811694400478704382146089446479981895794208200750084268752104451299389931564016718733815045440212131727139744703746729655842853027671824308538941484843089814492231333870313952102294221739469549177367727926509085143069316396186831899656685122722606830225576255944104660820361013639291043263959708261801023624834288317822146306203636151173233181466350550465891712691691620548586980182966217317757596832333291048693903041899204232701154606676240949812047728648834142387548426329285082187783969303447729412997125284296018807628503982500158386980713942931483542700608378895911850049163333786965108644082794708500132291731192801583432182499798142519057574129569141451994769310022014762844906884422662952111583906671227594880553634148243841182699634433219810966788546870724684294994236241837117775963134094464677742141393891916024407158720689115397265633763338433442881738269965644432112868889881514573272036079571834639425462723364093640024590217513222465821605004240689257520247196603412805218370567755198960285144542249009997865702173280557995541236978549577327071768794950860002590210427310166132451035733742076280134087887065928204308472980043137603210355996197692715479073273270333372523697208435224367593472290585443375335761705003852733839666479863465257037897636815066958088204931113287947534379935009842011196322529844681607315981290048010281949967153231512070002086669082405062286158423315642792091443311146166997299924183779041115226198088296318671749513174554730011795572257022636847110062457592461349829442155331134378462747831931353885727789960406854914560011070822902259618197870450424299817171562245870746095457790291440150365598133350421796345778456494153457295339637996434514907489100984361919510644430053524237385285307407725566751002886763117552813281660498512193914355034612047513299670845692648550001178609595608359640126494055246729487045644938032486472692894725700506434774820954359715592628741557497332696343226986102980508045215711069188650062913907879003243317111996569261951846622499204524352832408921056913112215742069187366952106475347983089128378250152742743706975253175910455479976448184769365752894936515615670076786527522114865085990615391006391109936047293637340190151633220362502233427483961138517842061231525022331673313270488281925790881082818982489773708389291832544120275621721659163435838162471218421333684769310109312463181863159546907869424148310237980541935253880574029775439249159161243611570652832573163132734768724240294359154073124776772077616236872493391355446500221584182242326384547791368168821839022325667057529595768028908687448657476091682719062362073025159075542654068991850512218980133201773680870652915712995262048217859512154070140657492196455901135626180696464307014990420837275157361366172086805549090910033267155052656600670431735082216351446088044538333043665187244649070969932029439559955073360995872556293649960527704729978672396082081083100915813513186262252892004676661352352811416824391366690286612570297112203725290321211739429339185953561994600829030324537714676493042655329630474247589892443325647394865963330609239337040571644618550012560135134771951389324541680208003393639385020981189273554563462322616587374324215510249105784283073195484433258015965163864987451933708899899245331102206571122562549019922128939021512179933308356441996968215865661347196158444560132395999710259142982755272979895239373620769579845535123507601706604247859706365628425047418245878816919936291569192700874593127397307007043719596223776589743882001386976379003430639998495726352377285521498726510642816680691774600181322124750380973664166708538739576899965840153737487926204215787686925596701307332106657539935193955087965602299999086736423902345265652017874359102411280509568819253278630882039261087720962388058986623066741532654879303254349506614163229590915415323388932728765224284206347049272627223947489665725231379386100327915626073350220829616254963160738140243478589413929153221227145026548606785229966229660367999689578208738541464060555300098693877322202352334031512454046679725544161446647069329897255306810131044639854911944772259697224147715027525834736503351636692868134644061769017502393472349399262045276058558158302936379463008120071453656974853132452148552702212698408511813147900944455836594950747527764030857849856485555408048583863473724372912463536411254335140775300119429556885123439831146688125740100246223230724243177111935087048333828640059327771814244906877883495953748152970694251114910546085807050006338562667812004925029871787653704532007945307109751666672263769924544894744875430195944246473149940489549016098734391985486642121933559239924417764930356080505912898175424362096525814842469795477538325147112888688634202458066899807831519198264749641151403693281040981025599843782134484146172144685517586396360378541692003256527121140201472159819519516757685011844802389902533136368893235370573976484575983921253377111710522727785713576131836364498455184008695647593572968130069918479942395533510967646413225413651350042850425368184082538738486531337052051147114796646195826487914919161287631275313839015996423437810933746083882485251608014724489966573564790064449197222072477132558127603870949833063453020695610442125444123780944749752139616740721716145292330232603325606522502213900392135341008674252482559977739898373013004299410634555732912899593765037012998255327633589047927256674190111771750951506272450860880851196373479144316025621347310961141261745309745442990483306718893369175328310467984207372663420502482266260460189454543313181774726640647701361020372584657872947323061009786684909669910053513229727695243541305388566714645432158954991672898080922248925571120687373741358247984234932372556078301642324682313323683543192879127987397302136904312890584039994326159584598717092140716188915941007656608782639401399704779990644647188567689876694335798288877359869080104321512046556193581326355630521283224300308082847804951206739546252102586555873418580650802548184775019583863809849436999164631019616799184259157558115339651463856069011116403155673957464360527270643861230438081371751576330585785256270830285755611516097643066618500799434556276885133185895853688170681303534943412417234969036438249910279537522005715197867852432824863861754446874734416992389027533712529699474230586920517420891147147323444840815982867024430694523258971410865624673539956995509203206055734702667786226780927801596351756956647995592817483433653690196483575646994010231294548929310564857109122154795180081637645254241770029218597712434066699632795084955648488236682651804953028219109636474573069911193915632298443442803870460913807792423722810738072983298874459857899810136199058961124066214300391731651441411456848670559394192756539389526345824001610690529936431307611559840368371393662037365996929963998546504559907807390165622654957559535657812581518322281887449354866342881417477485762265966030065009227391317349260805273367086929154257133468816680930625183981600381121839938396261322112576913152900943707282995262818248411921508127781289513152166550292696755321547752685450113530682559451463384055962280982442760221666450072712476493526713004158394803361379746827949042866140958573963618155444661865625987071949579783072174700214194811160912205834574815201749384299123586581471783387059980821417376881716792991199287935242503935957445123297467821019621113573880982666735505042946653444533348042683576937161555995491313565956169583839227550634947847594738722058226340772840680283757107944008173362911829678612341128908927904309780981726321925128755786545623265364734869780971818459025751202870121324987666857543566672392014201988478175979860180830128633584758844229771985745448087976768747076368602530467620300960379124136094656004247944452560123032220059314132460392858869810294987384786519219744383037710406133018345448915766107914470226965033545300545041534156989626707245928274104445216194047865608457910378353685214296214405964475591746338888300008665644127683965299018695077378269442965501268515440766966668804057901633426139976431321271105100531726978608884556302986389540410900735790030280070446564110998272508524334270462192017852001943633708037847738297603062281878561809770287125246052633653940559135220626866712086865406170435867418403790243116552648038352416494764997122116155486837862669274270541943416459484852642515492315682125244345550829107624975799330494525374521520712921813231861755350448202342565948918940091997201212515073210323827218748700110186546898079330033164510675240251194145616471054633487611016818014121802982049688237839003365070849223517263960774729272175425321943811610310431996935218773630385525032237725525701185102384916282953559429678904034220304075977071509038382198755229202757305294979127490272168307079466875565943485058315614088238685547201070333110310420254727046688495643637517110140608521866613928573823676641149827737144273489731227737011432357789537425569022227529549348456571445400257644694754519105260715663254690919815421960123232050689327495105921640395696861976942834099079231098098032381726120595687893934852874060566425552048930548645189712096317285155272417056784216713904102408178164565176476761024171631014474423641949313418408205662022821141276035062617221869380238670278757958038056270888844842351144117913401729707192706313459786803277054442157103719046270644088518347475794096054934830472680157900725378387982904655347736009843476685697226509723299072025434241560664232760089717718911374139306275272022096548948190352993480795969119852852058689244238956689632148576404291645564345209151826953029157517586698710114637454186348944648161139922597472464202926980863873246242728058803094897996283435270116720743615525992851270454789603409321921183706022558159535896296967841103232753155739038721087215028871456861528380314404677521801304697264179940290187315177071684624886347868478810602339093600994559706385348063086882859244444666629419546705269986181837570304942278751788778468198371824209943695999517657076581406469175190429669154774336353375797945156163356533360846484993293118712747080071934437588226861234995378123360973867818455607506959728019482236386228648250421049195858972646672891176048861183981029064691441325402115104475242248222879124993936008309207636519617750490315466429999757303484743219619959755947824128417521251922952234215098513199852538565639756905450804297150323913702564931747857731771274419519290644048684488859528108150852061263056195535063691904983170378702575868601495965197844217805861667808958989163813403909647473505411696371327583423639155461177868779506118771823420484568562057810227806527415865874923709962074616503849263428745778479598679578326742551186043609914180243193791735216200226718616029391761589041749797783114100586317412810341466695366294121309169704502037060504848942463553591691680990295550789895914967795170181965791955267494455222391607116283083459151021324473206944612063266616292020121503944334370564968455906585505526312440187569142025751753610164824159460645733873353739438009738825432959708947508562373835841218288133774035834508655019988686517493329075121959169221838688366013736621240909436233031875875248228474501673700364930800919484353626182241466897027285565654492099007135443384227163604526880248622270001812495542008417794926927269384006654204058390828445344034552094810538639446027584458391654472687783109365909094996891885886478364879966312709543968589138429186325437368574962979136825770369280955162259985340159436846223821036063153100081646892364210493668673898413124386519409129924078982312466006953482635903132142613772514596759873404444205104017544582758657533408172546500692331525269045538967739197429325267745896695971598561593531003675222350054636786451806178173015086303696404839387969104051233002469967577257083473325852605434086007079023027528750596038755286709088953052512960333164017464820720823701372863946195587947106709133154226639927438995333159374780128311293310846903926056898411358998934796782842532119062636723787697107926501172619917773420488226986367878186549746230158044626254970771868929393672063938813142937079444242174842701085117098145806768947143756192776256401211604189501730865299490623081451820759990736649059592724547367314768819632665888573787334989274655081040315451857306865513735587283188946632101082071873805407354519282254173020360902699918568173823700252550677107470202635271338480723260584305262348819198981767047221011280714983425092735769899461488998476609587627621252468157802999301640361482089769655194097395267169664850173706084444479102110791289532132311020200804648149294443076181595606657819453879840607809842425897101732771849389315440593277386980088099761788131403994217386029516041156712407459731312740451370038460839154674874707194963069652314579248082496449004557708892414093121401067770161864496149467245813943204656432399571044643356893837313125137592399997241878146081247861626321021002556351067618735544751624446077812294977588348055894500121513545063818191738372648445727836199928085710408850362266215083149812605713698194950845277281158268756536420837267377980967822873190609616518326102114110137087521395748273866250316644948950033160129009980975916394095843127568613594195015159262220519587898237515353643706217688981854167433387664810514279442726750376984050412175142467990188524319399624900328856590410133879425864286616080417970352709971507002577838567991867897812947954070746222190554070096094223851369745387931284517255471235507573908945835148217980827354832560892448091333353875916179856505534708417407396245303173079558065397333918535868623726024672524190927125539216656349794418499849122155194606482688815620865012617843216198983906746201808785690966997875783641350498152235693967799005113985896137318647369772695418351270428913601739691751823796207250244702606947260632144487439126669235624945758704170137527186959048784283975772249458709187662052098911485696980285594318582164904348713925002095282305400650571595080777009579391150426709012441888730944461335853288993418695813999903479015797054158959233731544374577504205597084229851744156785801771491687194937535642943503100990224496618804188510634935001753808233185909902535591149761892949416138475344198165252725884990083386996891685828137452537919888090745384360843380346102120519422461202932802467447399933447854520596518003799988798317572029343006524279087035072743175645510991360369021854314461568765073978776344013191195591839203837413482685578699497184212292878175782218154103019489143822207645103108206437826003009960359269029846922923681833577551293676296805835766998519014830399054148786295414691652250336422457445390617136440215988209291917140667938046666647072914236221193781616131661275666714428205629755454162568849236498219522492680697303952776396954266553775467855825442325884119325902239464512761651724935278660762471947874476282808012355370564212936319264595625327580048775164312958179989096595102502385609671282083340183536253836250218218737082051079758644052010803325074918308799010527676883670474896980539676780938333380387450524184264210136364456476533706034771986835278759230972682230936553450182677211771015445098813780228997814915270612064711463128758716647660862779275342084410654982416476307741157181913997785275365423043671054764011806644299093169149537872886133598009993203816638207247592103067401511444467695772735052350259986029198265033489025868870579754485270547291393071928589587351983324702153220611973865852921507534102341419521446578907927446173862363333169954234291737983788030183831555151814348229911766001237527312430052076508471076520055590153201518374197052700649012566718076939089954850768169063619977832952961056756062845323271572466364432389516475725489268398557240824869223404263463114095525415956817085037194943712664251517668564577632562719601751391592460099246157187743524440375784974994902192677507496292773656906702027078841530199505610182703636480880626045078622451880414214720163117642294739023458139386829855183044513040230926176762918985930403911347440290837260335962507535167490041168986393230414731943062458306467528217141334491733267394076102417086843969002858192027840705533923327075657335729558967442662167700006673450850188428317404757632071015685962880521276855657061982975849131297587036754577476058340737525353020449207423514166911630805277506759526582138670784451245199534899251608453802769653992736721365916170347833688510470921950179533517438501151560573210806277008423042208315876447809941103032916256576312046058726044983654510578833715178899347708202496681813878474330415817468151966554634409164069115847542692651403096250929346540386424768545734062245581800725002412729624098108943847130057345638379254349125416125972162926115590274878856101430960604788180527532059170782819026675476851287410211470820703793472633546370327397121666719211634881303896661719649760523436922368965034292351651284839171049885532205763614127778917109817487463752637312739655295839386564424014294257200809128764053592933017037714694467559042214033529251544787561075419032968908450832219462088538019839779737603372469464529027783346656714587801692509097261297376461150644533259854063435726997851628599776983795173186616323022959038302296980679480959446581818666239550681519890013155080487048070258343937208324237476502653372185065106069199377278506817059018823554440829408639099337747957875068621387493910243370587050966866505827494046302174556104668271907337511697504283374791657616491395436485728639411037386886956369841279151431313502224460144873589350858879090164991507955753378342957399258288423150072627944398020359233185621722034342318796707628846403208082724160103025192050243021345231477731809590586342913043256645917370714261061146064119457486666613696305009367651435350676331792895725839796667725883491888383341316649069654064429736125354880643097699450158754819170185376456215396592439783417146804022759136280913089532411372306013367998032635854465466856336987713384818780685543818006853653565121808587094674935954562664045871110410337156517642080248338007958574261689995612899631206099905066598309421767306869330395755019051799699899014018747483020395657684568855867063756023086505571379274003910385443065554669561535942206676577066101526461017119145458561682370848421208527113353644171596004707943139007388926270164227404876721010190479904221459374180509992444106157696476685052994182835889002769266116950433352492391706786707975803628470703461327992826524855708779105531451660859721583949426070961222455673691802130616282719838481644714354936518641007152442889552268284025952012543221569219360816399529396971631692975891781246571722165673088673018319633187262534898183746418291423267920976638127631748232629849516116367253709093929258910854751450058246625110776815627020457370405761287063195786877942246878759380382252718274258257058932574308702203073840470125805487643139188156070307172123862938409271803357559423085623994639126652714841034509196684670420800172802180257495131968362130443698389786796380332169713059662811116205251135912799865589840973037112169287724423638164589317128278880710791659623303295057193744493304638701853496810763191883782446020098962187839786264052538423334180298657707346276061976695654442655768250975839626131893823027425944362685020147225280769966210965249043359648129247912499550737634128548558646385746357050226587689470495783222615390143948154039583344178972415013636811132325983270925464049584248084405465994436260037607862598055446280389682933822171335411525636485319712740447251149665514570638817928355728972839000815542852481809061860116311641251859862598530687442468224927184726311413202213992327170711201828292752739175420835353015973968646081472508543422271431607851424651403476776702184898216564393612617799067279045751685767008783622322256848028327509693863355819130618159399475721654872911712929853957857533624023077669868200155118638682086713001954253608360059386616394613945498522315365159689419297247126582103652557732294648394827087365760352210527193475296083047515094810380825174281082546111991151340847945014325388573758590370790881535361924777362096868230759122737856470063307815299349932308041412725488439783138842499264793002056299615825195380950312996308723020186835388076219253931012581707180763782905683218086412040479952832009015390266105645262384904007392673408731854231228225113588199767507135895369121052727271708791137164027817771245639208157932763271602990664365932370024815172332122969825042625616069559735956840357887879867228689702782419111916110491560099421352971413514752616919402559811318940706692717586304944176403554170659607990469257979262927271607133221010890322627893017242656111092265042801772858113284565920605968218972851049939878210818110212872844771179414383408702281209150889367980750064654972962484386495678525973205007657568789690714819873431263565210828636609449115894907982090197137282768746122869094990200810794720631565910241333268678725525904408940263091331680693751628219897903655485995215436662930944134418359696935989169144755073002727589915224408034610556697283999821121848073512644526685533750739216014698371743186825388916687932611935555014192782428059401034545174981086915604478010562832057616540125466806271504854154149659888931801070890273774953772695681453243831010226588898098244908208117594509424748537028087189903223058839736299879674865935760480390202248394927906101045170356271074451486875075555505289326991765797107010922492400458502368508813622279897630896123523076597036552707289705677463993931126752240677897203818516135069091210052134776361958433909660335103404520675077441786413939583394868387472970453811932506426727426268392388819596774945441661679508745616380036571422047943387583046604769589621649516442921392107113178930466112945562333860109466993102019932088189744551213410832081410943199512748767484943368701179581260751547395307652192941514759213395091614757579452858047489398113383105757733645447792378604063407245553490559206524819923145793184921166962199519903866068725852514060176132759641764123985049707992200537772801963170227705546402894597352293496902246361864452575030750630138846101010708783088377489668438416619963631084594627733325151421610344380354922443156622666507263253652865067140054575902644945854425923774101621617389393713348663907085181377531777305673784772413322440984949870789279390310463757215440898357377028012702422669313637821957043399205790853433582507852506468558899085950858578932370497079157083362689924809427329346217024324943505992137266561548827227742723073692708632668343285540095940683256842664616469024136104200941104490708523774642142327910167213758500044619043139177152814807839060145354329818519982469916725559288635062292843530928393709313630873639230405524841247734449856755958661939644948904348680673307491165329749590942859665692046330279230559428360188645434349995519202007546592769294329794746970255608622660510098465646019683725345898386530849804374584625791351981062441773098617673711690601697650356793623367394477552108375316329208266304518520674871959001912734036832270963578419337033273113253441153364735070255865412456316872173473407057667008353558202469154079370691202990338877589302294660019683000887998495985764097752897514903332412691265212227952666616518992932814351629346837632273599703168737987439556731566566243118567034956038179500692770322661010187012703957627315109876505272279658259590178519068489042945573097148331005656847446453225992856564426060647907034720195038906137862876772642674161655973273046503170218747145003162664370087769741661830952706340112307316866114317021708271304724864378507352542796135479026929981453412987645522031279119218400833196736017668282661300657976671211290673999269435678962196116920727211633383731978356810354489304916748052051871469190686076446848904593446514370063749499890650118891658152429651532931006806571104783235538047749597662793074573779869433964309305148593503350341030441311410015501618644963109310491512994995895911543619411165719707056239084894773976400471818558184365764438184454324574806184128662065619355378887478721918552393195749677426228653082880080005046116545372066121727901728538569885124659779827437527335672345800333876143995524154813781296232792665312014230695194557649228348672299857452653660889150081731376708071452310156675434778759638372594405106991344907483065216251064159292926506492295844544220535017587931270545258339502603939906312212177569903932488693835168977328174043303153034389013817236487834991110015999375899863778459933346196745295608355058501903270653858141760743993065689108260998925607721182875202444961423168117855247481211056856850151225838088556977762156211538360470472052289134125743664189188533346334774780449103248266516786752035581407603483605231589282841205869770082036508714460960307347998273757643050446675364610990210816467729531767996819261762359735999278978412363858649410610103551231701461430957929345141438669012180418233500393635287981717558193093553406107901093550658876313150681279202402319784318719855266290727211101401230008637370005720795777156850561041148817687297760410826895027526579751434883808707620997742891388066090316030663937803354982704421794523805750507968555024314349433773346553222883662569598624463980808786353555368150850965361058497212411054579771429286616888504551444961743648458199319206948609350056547207042618362141239727696714815715965731889247395351798744895763065208254351766313830952037723765303085345111058121834492784995042561982791693259534209396292469686084338623975877975424664080864162712397747994514366762140274279080755615456063577854771143864343268813602408127497777468515171514374135513082275334971128539516061833036808117584564620933486969252490740146079866660579499954525629160642484904699365655144812792741308919348664547899219333986788245196870933739889041105607263579985194037952539339845564691201688220168474867166954196406768483301023032672206933141238257959354839002032018913271709812932832549241258099779559278310923819619261942791254666234555517290017231526663448340979073754013348245456980347435811698327900534540707372424359336459923883960226328240908153648003653908702189140651958143422134382477265346831510633008449749026868774635914917172704835470501351090982158454939085108706206488876893509560252570568659748711041463389241993787280306729728572677223368982024050667304552062750835896946137058115383069489026238548793627086442048367164654165379288553265924638363372109647996628393446034010883813198290340727962212632572875263178943282275647423274049345222894716513520843034044870833015223761387078542506862978393740036154687043615549649723557564543087476258590731540641711907502405397346839966594668593566222945389482154084579341488057658787893925629365205838139716768874347313296204015593243400705870152942494624555898129516264841545084283262256654436521992656574450456058601222149645759732115978896467126856218935775061223774314881041472804195244926796934367682751844769074998462403980541089445107808460693143188342565900335686751371440066427283875145900479452545672940585524208244165157820871250720182941819612249634766218432630351669028941647165270676628232606840530550229922856602519428523694573265552692542287032794255873079817357524539182708780896609084382971709994118157478151209616202213281668349220963302219830654639265296365676509002467584825388478925999559595696362437002350910736476772576011645757373374357146746326402954807048902844642791486572982932446699555086494265549341131445375393298992988591577870718341396216117721119042250447852115816616266528518343583879515306853633758478010972612104594577683999719560649376745749651534958357384196151064000060115047912263437126367199411008732362101643140189860988661156512480361077469983934161356378010869480266832837890017314771969111304260034883238248124361955460607063882732428837756709957109051111367064905153624974512535945458726454007285230064341671825605669788380607771798854515144013129356408025511900362849033329695451442625031581278143288166264152783202034748469991662377928961741392830030995637981771051462714267426169262407296720230666034540297216068876302312059719163238064986973103027166519632867640986446822146231615784647975986312966138549118023404483581251613124349387000305104193657980108367780157329513687055601921571175907588918934840219891407321067218786939396778312584670942014481665473458258759271582935541045843252008877539553813322064803657319081151846191070611441737191903945675857067671514954159417051645519725714819376721618863118878450711474688141256149312230313294244967108208882647055009805474981086487187667940945203850760527612383844189526370994265992612817851619439489679184391556781058859370400228907290533167133490701544590983493672195477185015606952324826986632845039744109196314177237012323920302979804302188999583248295691476077202064961559741845243654131462805296084779579604334386013459247208626846019284174710710792298991883832838832693668244332172645407696303180755868398866210102516266538049730737920478132869978334589148044328437406976322000229110882895443707710349689478145827736614001636309189780877970423311131770293379502209195592084359385798726502579809755069034692225432424900442483768429028244223377646752079742210261286647013505953988361385002174569667424676747355035449810028537755143366872363819995661987496129543077998064388570184984415362405826902796007844362178102721323762822005372980618916864280851913390864362831897669275668315127147771579929218640837076276706949296952466132099556376086755946651259985437967030791110326306539414795623722600125701886566505842567156167614466210410525078618543012328910035647079828405411442883905368066782193125179133239375235560410146536091925185790562872476845561103502162378973766708055262430715768005444003858717566734285067063508373438509054306478195094630055352353730450760828773214078530144154007853722465797574292058060359034035765726975538145355249475878349037950652148193050584977956291695642186745255056324484933266431922226683763662823764539956458637809615839277325673382921490671412152925980345097535279738411316975498873276332829610301419833187852685811577781435260816240486225936374483651340694049717291739877120634790694001050016561458524581426712160090683606937329023198829071548605712408583406728913390464932673530522604321878642550672301153108722008955330538191706934323458570222913107054611408689404427322117728227461089223038992680663920696287393602190152888962061456286673089321754403716558212886318575250089387199575583698778610458949553532991585023867240793761213180017893043229433644876830094245119437925117500003491099775109684967056700086165786673940398817001233987732104047792324152932980980719350699033834177178030173387763515195614887671356308655319408945843956043610187049271101226782477486063442635917753218558635835500796197851515557982293602471205720699886137539335766504127588484920417266737700946171928936951210056020537113845206075050046668089986432072685614185698466694253258279215769826467880328499077162754382662518906967192770004349819106282450366292950425651506997441670709120238223455697102877017706607550869384029639083181700799634648877070714011086527382803285660644160374697017815561515554847880875333202552608788549643095983598491071442853079090982045180592204282330223629056979757558551043818210128778279254254515619110971526009202901600398237290397401173869750045678011871616362942631360437596811465071236885734995573277340989864949288509470942155955765368364281110843645546100293408719600578375084115911310984019872581577783909253822128029754131837545087310120885174446014286537307764250071461961045044707058736938557819910620169916277946423488838575985713756235200232535485787331064781621833890479494613886858699500960551946928432618065533618307004624533284583137817531316737885491472956790035870402725323796876455650947559082149828729730543627836214846628471373161135586063965532999640386346628408900468435192228045943077231157821862945181331466557426954931375153284522698229404735283707502422201364376955409854451758366747557795376942135057730789064698093649695372783357690838354108883640549591990053995153653671547036478292899455959386019015202209065881471045990208875997103808171127810088553136945268391142969257337361929521416782057403669602498523718954020602023631104196999043576148164792553330118935518049226462821092477013438608445036523417087613603791090075783207323102716889203947082061867904992782570581250865202908418717217594530748471710407162056298769056655690066127641792350585693859083286268812866969704331497530721987416080083377107732813393096884649141053184986068156002978972679721778804608107459855877118798686893095888545526671399499156198652438887257300162724113886359056295393542404765384221861435722487211771095230418996126601465080797139349868062011000633372251182912699606884766636105211137707445052694528953034328197925290726462977602900081314856312906949136094833592692417668858640718527817409212243404824108233397515292134921657169333255363941949533007427257644814515673263924827020258401431586821718000556719457813445392089460199302710822040049550931679348032016231217853244602670008655620336363044463863499156427664703215260885618584134218968428134433207364129384400460948677674895246473235975817697755876033593012524756322120183871902851410755014161408269845395567106897099695648020978718795015942225551016573364693560214462153676983900096959157609663676875362022438292952057202199571517610382699307489627599872906682875178385923574067548708757776140358383931851493435810120000588369375770599538199505977052981971045722337997559362179560986961383671472936542055759866135767038652238168757413376871331394013161639643923401872254270513806401834521747442057245599791055147020449163855473770122735316477248100889824024011185456013959162234255585894849048477703108384664685117730670608131819721811350031681774562290014552272369875611587791773997089480445797805497616322639818886037053298995442314440968913958772757483344013078098220167519411597914910236579370311148145366485019730069691701211376407087937131751508711483136053151748306556372585263967986372361707477092916341260479570832540240853939771621254810049928758574606764744741797153983478912294919235878204709927830451217064820740506615962570043673782057999773540026158974328558648572130646900103032129376376539298967442612355735387452916172672721551151748849616958329493384553401347484691960199555984723481847517906643738153932365464028309275791527286013574669215628007629520770356553926366887518750495938834275557039526587233697820851718096457043839408875872908351108631610115247921562739555585863290466867863877238058502715556334083340886859273027672162441004656930861892368996634373209044232632897825391182808397742702509584944246047736695913997430422604955278579405457802663914459784797740514809864675907680425933148105430738546135774790370457920018135965834510600552618927557967455324300761077074280461081239422905880072637494125669089856281826312283040245027014804930609109583222381984366157790661814736353227692987154613404368864981862259360717113878728705126359050371166361245008684087626379033454964269149014662914674220695549591823521520100002488881311873344757456017130226870161675391596628637448308108116678230088900402796147571699085711976702240030514578586418750618462280283346618712540764632233128798844872466954742798224520074077310018648654614272949547147192152213647328391208298241877074220553099312081915837893574523079106884809621819976578415853770813368740859064394773163154522485856417404382691846373764003683896596634219720596315318885276570691721828228529455625477400534548512107353093188819631675193683700262955204392628540561609834685077760813299948640095973143912187448167930176590379932685537248096868619264498400631762593514172997506690037227302974044818599431785772374894807376702005438458074937392240416352154790206998816017805053671699627951978037999024281934113026766991404663547171960592033839190842968742827051616548003386520650343786385994716104134072705002353331423828877124928643486424989156751965830243329588409783744992129698117699253389523355100361635716642376201554609153236641797319643452251836702221745121964327805512007815056829352555643537926026545798892510040580366676991974623300725362801598387357619360222477108814572497933014757038319935139489939644218068332910074986307687847420418768485857126916863396922711592183691521750138393317554632202183064760073527000501988711293965523881119194271488005793064128267121024596998552948752746567136915497109966559198527716986232288101320835012420419738534394103178079468230118036173476122271077613138737483333938035418170214942632524921355388614963002968113634408760547450553259089371889778313734594143338942245450161709773528561159619066031872189121888335371166242381599330301578362411471516907668944426061164704947535810304216828930505531578524281251050276890066123082846063419612347931052881651885562236999097376716905028320525375322312817086407272303955503587124994946700874143671539759267168741197664363957485203766571770659257260028533359055901222213331829266518143732722190005848873729348806729894440324424388480553324217941129970289982133927356150811840186115403604055262198628396147542439796064880680894549693078415207621720889443062341807736322005229897957938887619838320511798602248552967530513426943584932445007601696036472950229872730128083310199367428641324415209345682720490257128153186647039628824923809615107551431199811286110372509385765819621261052925209387728869644989092229034901454482615440448067795943879445014097573529454255953111472645246034067201514890655553394418193675732801612425735238772014139964445552747777957746052373293446144621916865164352181303513957906392330266541695391365040312524461410454265460579264068726979745961911293364521370486415031633395251412135126151306607264565487966837803648899965934280167687976872767198050228038915699469596825116021588995389809054301998557198512581565406026646697535662975775820510055901247919025889019347528040573538971384229314779364361508213332775453037211807607578545338559378332986210852075698163826304503565161592649421153183579288293917239591106448045874537771326212663850387231068862914062355408002123735334722748291088140806195575162921480080238599348619498813077733994974729809791551441850729910131485054500883652790730013038163576613932198997687239194743453767782265333731624988928571442441342915443884448550280724522979870191255246972412362471049673734366657263492318345361825063284011336006246433497668692991232790223008345410203031909005327958616145454921725210566389956994530572731901980575501895103923552192149368783410731302661781561466087809786738445386903659701208816697952926511774611656016995952592380804537749524725145093751097777546489122494634935838406378625734162707792988846990187899146978499390997615924330876570600438935015381048056131682502697647698542738341129497597884979612375511610594793621859902830931230728700730131175624419330529980279803186083787238371751072939279545955362208569593129803631690851288264206967932775943653844868076665187095760692018914725615177874533379948284810703326628753583477008027612092290449360247558490663887491884420922566647769480462492310126776974650667173481840940266508694771841655774239078690382965058093651263388219479208664637015740649879728268268758017392510196367393736460490626315102981579216444301748557938082941965508690446067664867162618250585873340532059050867475147016171436781107943832520230456239572890191893661553411683653803682434694125746965246514081463780598467654491376718734211295317741632681190256945870746629726562216407374417330193788930700145753410369138052874283718279172602950234380244829081915227611703903460367057868842136664231116038530068123647174317544471421234951513005561492988995456084482401610394178368870285030375254335040344582486332339025462306366121019085380418730230421616034840764643976974181781444443126415361612553737787400984375439164060495381514827406441324967179677703655430395221403889111580655827532223499987729438270692841091030208946824652208174369246226396123031575257568913315077245095062840999701226062989129179522750546805985755223326728415936119111869102070994062603810238047414627795752725943747976725837945725263638555360375864800104228034730209370366194124405089097706901586676158273395953034037094332029625208742596386127993339211385074334581233727524797298785176321451371979561168419438176741636019060334375295107365855638745935190407095008402078398451042229970348415155168752176051045708215562212677462834603749009226133509088636830834894037973229719124498845216412912240258965875353500094705351147534497623396642284438380758809028681633640122177293086996864421990255160582489422528766003349737670673171825517817310003607340093720468561606447770506463474350711705346780994356203240639277833055182443921962663315417558699774832698883293425968915950610991115239303415845222146943124964655709284213218444815829525005161704824545623291790876114274559967893768823302517027209339769098308880725599128448429442341582166192233489864921050635127656120599121312631254837897600112652436270446479368929459723677434611953246030882667747526070111713665045738140819211792602208647961648935685899551806203823549970635845301282730383607572491018726063722392100621156234922959082425324040502114757482623347173156209014542733642958128922763392430926088321215499765660214104911706666735651112793988778041529448222100534936977028370820822763134831843435564885348144486476021572681752466480835674003146888469181696933460756912215937132503397851216922303575583802708339002238871293864708864746577555534285501939169650864807477469238063087965282560182883893043278962570219541355520605612711094052614612546828324553216574151409118885574212752019235311737416443919766095947267843495250126229932209094544456029475990326697721406429913197548710849453639704083645685422365869203743079042385993955761113115200538565271623890993360834555533490391240823501869146174048648474053727308547529281100684134812040818256231060460645803788656255750849061248442566629528783228331874519521604497401988224101582895349581180369583256284651674233698397634064356883206360716929808524565864930451929293543666396379009787512131894379282438839750483872355934072000309647959720968175366892519911387387315209990569114550370406029108911544582857144373172090747429827452480308907814609337365038331825992806727586982683158243966773800726360485807502243665619347320185551982619557685083016179906797842293020198858984291750271367696963037036336665096546925150941785995566723850155749942904094871104879424854819960900208528666213882797269607725954279780314866274123628587244964695081334065227745559698862165970286305759985967291728213683229030868821988954967149938407811754482662478905752567646247667619747887187639836641263795992543071738530071826806220959332273815220744337981457895310169408854206386346111520297888426004179020732068526751012512736780853856539508262224399308207749079694446238435019519368151526533611364359570970033029966332777507560665457819354003422704794560794535597619927087937245267773170451195284467098043954189317465881865289897118814971303519357139944802730271293851403566163314258598144083002741094838963918117043248576349525660394745527462342280993916394199231133946269981310342998543449796610688230315536449598402136817304038237748492547233799344387415197620286054228221198206702076476533471914786925714815560703493745325857694711227566224243991036653350557378427236699616063621821750695927468726363620833008333268203806742410115439549091537699287760252652520854653858281933739555463786477402990124015010201792543022513429005978229687730117590781981183211921732738974543941286465329057631501879205056952643330090893866574894985696080032369058077104966337249003530952243704618060498562706054917658732806750388082569121727462696215070727577678267387251203579983549736054548851156603851956100884652980922961207217993891370727703810775855819338644604793850778272224932685145840032290508318391504565347327765096421560679266848978213508630968470890268123406705983777035715857026511339559347548445055842352300679528972371242843701038769875009597577099102534080064418110668095386797309886199305626775895794404871832047445676370035648802616387787772826703715498424602975089752001741061416577364461636233727293948187075194532329101347102029751616495509153544464574268861111407277473287090213898941019266391171813132541752203935988205773957593700219132010471052401325908279801705435798325129204783123671509661036182514124441527525673849768329348550314595137079171025071637842155457473087545057356714974303184559622897608868695688390129323194511410884341767948014183983371773117700452938894480369665967510411751292304105010270969757933652490419395302642599780567513387534721145679462149556430845364636101464607805714200222195026642786667705894746597522373066309764105886236847853700163645381113683683865493373060487852160001075508938509838338083730362521012541846911501618471622309545109713464056938342913813539173545384952832480489710518453065796843538365960318165162951110032510393381281291312981723859190818773092781677891423882602112237918504874067093317772991858940625157785141882971174743015028563576628370867698728649219494281719230480386045404287628879103023654249520359118851089094156166370913901218626280667410586286968341558315385146145471379038449734638328094012429485967561663427030317687404584838975523926267054418362006702461653286244892098218270717997529080739168518118701116609803224547532282433904688018427362328004770052604090915740810665401047983633376941919653175835336362976613280970969438104286629358823901858672545523135865994769738430485508041169360022234337523211441039271932574740482568116281774581666620231713243484361692800931438061611618066701956131307705763306371337268061275697948324409356782376096204216831309970060271739235576824110793492669823589261234313163788521686693394220068285672911885005206738284686002263687319813062577816326472048501453006860591630278708233230678921445922946813951380421641244877068400489190387854909942332502382229554074867438219889672817050543052949871325534842938152431353960776658392827182062067417884732838888564015128866019041581566864931223092653151090196032331925518898606523538097461340176233709230048469082134049058860915904022053249940813429190865231957579707632176876475882190844581379586744255781265462080708836101997796861073102694131176019250555378800762643460987359696855314971231654681150877761381495770612284267869628824560564788511379250631767962710374817150604521071184349929814284039444182418413282163285427803973854202571564915430060774978809293585663151013235481388331460432053277239437645734153756850063693738025900462119788329464126222523806695433373570892949145165572777064210127442686081177755288371258290514866653756549591266364912432849738778292477526265047053176382967381614731240412861917875939617364402104619863673617445840448036376784536130897722757181409767204656604544711281638302254917107531089516705851746339577048044896043329141397509128941868333631567494954377162789398371051851638942291321503187968971466657022845945339963183651292020538386841665265658774186330721164378786655885935917561074316531821285322044090447746717312893208497478108374182052687785726219695577609481173778227163221268945343826833876573758045556013642818498147144230302622077766650511932919311435144051411240792713143854761945134831037316439840939599080573184300840742596275363870206108102327776120753897612888090693862156515948363626819457575619316626246353300487756243834050702533569156015565513974222046799575277607913220646984106228740048957058236898673809759165909508082738951460059974462410121687565089446766173603722851291409632511082033747541741617359273316250262563249825939226681825111367537693574028438989341194981669290636780613008166596357445752149041916292938355201602144692542473727996008580454108196275820542216929465572542531940811984128917385467372487092256034251003649228968806992266954632199666631356226231399151067679177751752004216300610591306849501783526834353090747704216597211525806866731203932888609149053470102841716319172717356819707169741161491231492533351775254412360802194515888720221462215324431062519300981628767538011052951171076880939513921329892709902415489045108951718113662472316271903652137803281084931669605454953207292021487016731070170792619283439763508127601254430096641586605905634857488040674691239701211444008707727661494995452933434788981366159042519973192664207095264101304024333120788396100078624283555692589770815133303947048276420932888631013975584154496434287915259203991820194821285525620278969744529344278029914582082478180933767889584953204030355575265648265760953331501926512917730793193613717381694636416706599340805012500713374551483548661283568179073691766290881751722379217834015850465017160501226983868448401488038801586195970459926846317883618265307126323100604398332777247851664893562599363497190640395813026226948942512116369197780349693559479556165231907594373457663370756840102469051089935392364980097846240629164866954781125155371921877143268011148769587527901204860051901448067563300130674900528605728328362568495789398664161643776104324037557510293686982491407279875747971635599913011040992951219652824700436366518938465589326788085640569937730396647312242849719359418766584742454192983763801128458058053973267067074764205110729552979039921657449733310870002926845279099023840780340523733256880029860255628912562384090736721611903659847529414094935615062568381377496510724720126803108689594346177329456342751780032880778300951836080108784268326954225719642069983518290202400486325586921720204156615733930369906562678627299739355929213784769879253433547842373685323600104225867152889588637963603167758829309195863756366770583472169224102108145749812655656745320811827031337417181845440625568690023854116806918106234093537041056495801785124944606038476393104545006781785845163217061585744578266207147456849203723168861446640822377750619861835193144337578945698466766448528510136691540288304231628080538118118087351893007501893812132972268480198358010777320403655894284518648063938646291677327278001311215536459052863918010133627726375343295873103420205510033793808111267344378269237240969064211815786735275588233894581060132045893892325698280080405847938100167739846136883162200329616014571339114825225240639645745832923225605571082342678030912947212469371979543271129665812696499698781298416152449713189876297639326330723168233022306544235948110928683460729308255664671469183364819148776389913253502842842858692035324794176341046647965579041702870350982306862770880438377396107841050587354504493257846971005513433623512106858707240454279580795927228911225780838814717353269991730885134537553744135013826809776480243344394926903283224841674935795706333982599547129171815651651067623786929302520946902745246806449753662662495420819152435061849102625621889802086973060695153393451229519215202173976711515516019429228193289027012882944764785623212100689401717918197487048755281337119760252705606963915791142773252594864414892770960053396462660917492543307994894678097301327566826783164837369234065161397894284643761033468598422253503736649229303111480229194341226359984260416205890510781217829071322625703280835715160099632171869580383318678156902038312233701535280504170138551097385287951618900766802590219435574916497084140406295854709778011551337130838650594070625250071807342351264510152825483547765238842288430282015522217124900007460051013753136852707800851725302184990275133648472919314453712178046822260958086707532924882120584934262009769406832800293808278800889903846693424916604426595710303454654762981095422786738145077824780209661530126409600964267578761511922841026044141316533931417132955016862236462123508539993350799754335748917576131962337952664333563329660498641767547631985798151517097128947189617979614300110685774743271913157905129837109024628199950231831512090163936654411059781443393123790116877109208024081741851656569078963137907744879148383427989684784150651272119501341389210866508849597889509734107449493515734178183544729591980040246135205222675264494538509924467431550328843052240597312002184454586231856555892191851769881388604805572854065407512699663514817463459768500074777571114363950963407389416755364770724095341810131958045719019734341682700022580449469736806555170820883501908735148427922461819924237096525054973625966348128505878367801525901090539672636932602096004240824909584096098717234424668118301961922268843424580234920905615330933873932878639952472096458540660947363498119066924284034118845190771841606270033470239908145409159627626681969890471159893090665567145552884909017150734030942733948054806821796652352756681648213369456260122881117788466387250705467588467924629090745901940945449268001743983425500876669829191731961100687029292103527355700837093455753913276855214867717667839228358664540983074388011465405135339720088877991871531291526415671325406555241614408503722088360651734535668074650016054900562953128913830421331741805694744140126126957718544425876501307309161176546200995418459109317806039249872119149463870130732154309705398053607664394607953932232770119227325917300645398231075736933735689562099090283851884368864382381221303465818151103506858122299063790293732268709899318653022568148728636913058669915729479262748568673826009937598065169787133002317138945920844708007072581536898659119400550699387831407503541206951611831980805788365941289539473851347889569066310083472583318397222866639130910410440075817345323053690017913809207262426531776266276046316764717423204461994144779170431768344642251527168695416755095297241794253787874672032328180267300898624223494060567167589258136325899126055147512730452962553556631261357114816736292813428280612135751255836114076248744136292129894878956126193996989494159430526288711986350356105843336328865143308171137632309939853407268729725614026424015411080831992767160276470139267817180748796158813971655280381724030479456942016663681233050572847729550353039884629271084244517818423505305929495217737264631712346387303862575916697666017689004698082368550647166278391112838824881289270573861125389977064044838686970492515521288197336142654215554251550153146455696521008035660390766335425207391993513303027233666439682203079692757543090326180241887874521991637395370179877045818444682952564241225255271736458371545925370005486285710251709436835115263259681885719972002023694015298188636851300060117163919978363518326057878879484631488700745873098039320566894530736925122362877345795002860982433935136531381007486717622815269673178856313006306954220602026994609631955328672407530164552449662410741286975080124036845819030676562772606304691665129224398360417561754001563515212806778844345232172927319606487552326943411460478753712552902196308144643213730448808900425377898648866846488169400200031653750871194474024490776948054421419051340360251091107238459001345018131626261021746157217097941898500511826062453171005140605375887530686378672058620338586335252993612803649691852213762145510534948313249838540638553928890166758829901302795254479300915534757083692466317615909951268898373144491988011050282013917383286127694496292643853411603274782318273354879104876123436923583364831046777347293860833208845121435683125731554609548288602677225679621686223377101076510959567076662187082705714247285330791849654647720279994514278062351719686106595634589586356838860413337642544018318209434982669151307695462859023868980201234120672387945921315338978911786086752189223979298461449580453256124285230657839248912532891891992640028828974601920865787872435402430885474882841797213346412932972443901059922996296947377261989938464035944986158942842930024624845371520247682478704383763004321884055321632427770153471170501477640588443047298272577104478860597425482218774989174528560488621145914145334735767514419612906011002671158778481503359189890595285768016092137464562469867336879405649570199064512694406613991465510110395480609333452148302735863531174004091359296056878934680498663839417465525024841209354376338694271320136788432972623359448240388661663395613676295290481927056387877339590552364411392621351525756753420249509665710792588573010968490350332971060320915310646266674462767016361837196067104425949423111430221172566892302186174843832659956512791035193515364186872196841849591273951132275205535391087654231414531947551493936460254930928473729400184100764308175370243697958597517427800907706926804585127899372314832175952095215296939438076534257853928418793055193297085549901415249746851673498204032114465900878678438994963872077056565225702415295339077497834700332744803367428186353552877499468017524940713586972116384971151113134373958478303672755982280043130695368457604726063101406607826371760254421749964084536243701010244415114172329366384999591956176622091279740978470861054149918624108606803360748306521631113157284235355431890820277948697783936530303237510310532311062294558060444428660619422358631252699633645661614352338497906546552902799207380488832895013359728287127632486940604909604459662573915292818035964790539373628127353501474421475780467257662239665327571316193552445215755228087998671021382753003103477007145302334377506798734021159799016777316805917251170262968715074622375374400296161749661590570612814687676957963573300681285486608530968116538743198168607899801128850215749576760827414975536630545416199337425037010779293953013828464567911973077414613384951753928221106299845944768698738336997859556343345537350839206047936493409269766212868982376132087651974359247747231076463970530587707954496100960738523641677777725160626561371192651873479289411491744621081221831873912716758523768527396504498655004422264546797244694917431983077455646841124115065443973605845397987776709535312670324341194963554993446814795290965282090991404971160101269731108872170584944555369249863796102723726385606079189543625811641699592336094283030535939295638374934764761002283804774229490891497600352139718257801319436717974942498183753738497148927901693493309839360809163339853107787505734722652582924697118634635008939183830773029290615824095469369128807270409161634568004703516200026907116308060943253222085466969089629354508259453363710296374860814944742827988260147175559025693808508230438926024361004608027855208042896414242124388419091212876329842530441693642736130241431663569872515696422370028560338728038647800591204870448180189815253966408716312403117083163643751204051202256139699691195906880345610538748704432898564372562573210411310241125113039323961432753469860390365745759546573393803312085694644960139349358056383408917006481792485131439174267982494163581675361120175725158728535272631346772216343877343785744016068875661000756904148866459914293710714342162287404512158035754653862270014366900621618943077797598728692912324635759504971587437908125972187833222448294255337571738756549729357439775875737503900094394853828654276950924225897897887288866645568832082381367188687169555560108318344895872874693977414711182152192133905635820989677508881426345618759299999675040706560047718135962043740288460075101798223455938189270534833518655368843626396572039447527508692383672809483605182112290244478089582583339849068517901957083147718589245379584968377322989456048684064232621040212649215557716668708860202500041960326536436230079478508735594992936160243223168506597385042646607342203828295826559826839980063171016121307294299191341409592251645649720092222362652683432743608678261280420650370452751605997936316458677723372698590838745706476657155261928620059796868901457969174282557375557121948334571231670571408812131882776050522703689448749869784797503759660895757546980673162875236941049988023947279635691451269704449453730211143956259517327529617640749700267333099476645240100832488471856642190686186999682740614207975779766143469831033765616756926467319955985075323019038642364156688974718113303719629892918467201917043174525182351299843345368621300769136620048807166875844600041817586728014067633516710992801658404155884820290131722107270478891340067598557824895787462559118242629468103658350894001799041012628761770167805178638622209958582025049053923578690271896452564582134008109456507836943024157800317373280442763088975824906037200691732898656766949740615626469505923495154597998356268869901105254038631718913835548774301641796524602001880759615625930988231135465545739753406571681859714411989597900136110517919105697600458114163576891488431961848886356713686136057821957359173456138208828081214449556843407245440159318091473532007923795172708038658995759359214744835489408589419435243880757923504344661300397278777901215173455826913889695938756057634185716671004617132517023090275494588106257774430937825747262244058061084914368942645266447299511630478180762855582437726335690273938101651216192981225216309083081489624770964072608291982960490497566932744615789934249933399023814799970060888345506002610164995330452227325686495471152595248361073452706849225897141070393516087884213521520144667109525435846484904031245612429917402422143254062578474470932299707121072151239386144362171149042054095818334844535023933781451550806290719791236613876820676794461745380299265827381886964434456280974515341604344390334964153204162916938999922681633168602083561968465048435152946194149706849091289841929599436530707478242368754468093778870927779100225115578535474619563755634646395158360756028592479004367982429883852454997647250531184572871792269455748059538312538365253713348725724108886922456077521358457820123853348590586997379906548770012264601719513829286667369141999412635220874262172831044317661215085287733590565000689733837683014283020198599969480703410933748095497699513959234367002332774408889701313609214523239904446916439312792042717064347730669769169559805710920724038527268274329952286400033565928115595741332078438749033620761878807601393700673396019692036109603914104158680994644583667639755816237393576837614242928394282718258989136003351425053821750055709888413536736205323572615400552860220187905494274878484589219228558172211502187202599556836162576870624828156675646016370221511461248756435421491202462007659101856736829514209342718291293021758863127588641470649201839643080071298861375005688000899389368872579070488221744151207220008260180782912921607721170245904310486362384605748788827382783785412595117716031482497860163918291658032248742770217895001408267552843949948955865923780920423686669979119977144147048619382153758823599035887872989726017955579947859276948184950133548705519684220435900373660711882877496785703726428395493560144067495402475620092162603455857621715859435040413136294030112525280026631199430503921400823505676228892900624085824002298118179100498597658170490109246248079138239311268502783249560965552885071292856025451569477091298408034978780215634789852566450372809397555490341509939013183645175511818709206356590573762199257747707657235699579868012083168181760375109236329123886895382650673973386185051758915154585783360046888831989160948114236916681280763058934220035265299123546505308776414171994799381630603550032267660906143338577923170722659900279141589700649037468812723368705296662639108026883698522823309336387421688915259075756064584897347375517720128867436068014730608014713137466254777728760585482422334011436056392829974465104084776014492525838503318732555951541757140267961452619680354040304343952859914006614857953199628636294985670712992210346288762855175495500062009714104534739886764532731676813269825064072233202404121428469936668156412157762892390954042648088645210539569996720390643101126717109693520274549398951848287692151572821144107780724221426373779585508950471788560624521003390246598060211336112947981977467565287833809874978840956781739939034359533500964610724375363337197130422131831187008967109388581275680677604981281641008837941873572597056477798213270221370254275561394528573479963050980435435674384487414182085665717550792326517042728927070504659837770990642932818958933027637414375942046079210115444076509679604518100923553414864933088623287521897694378150611588261846941451713530297541552069726664128560787246147405641391458623910807569975518178037268529851886826532627866567275085539587378357146701334120510942610882130163673918248831844431500020690136153635478111470299210253798724567431279767563960015385033152815072265931855206929892504080484233644127238169693493164597268361070218808574642652597368445374632266463732822696002039241245631734247238409791795974508262190216454638982139150655853579799864889578191289996997548992496835916240008417307411746904175267748613437456216566183240345724111154477683084580577804742958971883408772772520641047555341736524598714363655131486580590008237594230752204862001345680863626330863079970205581792638495760350133140212138099328478918800159986087545744717637127652159343671915702036018291294366445496073905965376146173228823174477310381336313545005835364316431605173726951782044889712684677627987523282055910499549238974690641954750559951100304663737379690540391834060782194679683510535629633281173616640423630493198867230954888973338933265862523175768530222219610879260048846605866411525180010795188373804067480741692950608953253201251015922774831520032652356575628969955892989776316043656319038292664616802252044317426665884196199093412234274341703175685539047783873025807270006148178372906045469895097882886589240818816728227113763563162459490427098559033345390951245384407646126610937380541709900001920971226525257052338054455153005789463547540320934364697436402730756272298830093627379711828831825931494073892909001872346908464006484510888752892691924901830316456433365385580348607159522886541843591292519410337228027191188079339808608603062370961471655205110452009690630259003556232914872714813431690203800745002461788088978267595793013238459795594573520782284983195596147406804234647743066776686579239893674309731353136127286655921260066914606670513414617201665782084360134259734255357960037202359524762064900684735144896559595645452068683477382228701385063065836229159453527160357831240857917242388595425751605593706718248223068347615591118174175258652508113570050858356890990968736269085824295969584673775037114789977571918602553625970974643210032551429359270404741428779428516192590798138799290176983425682555646552545391945451264168439970075783551364690684947809521170388230813759230540566865898895539040484543027684610030332383051604220547395098165426801520393812205199299560465145714205245468942567801748473481987900398777420574366239811338880386900754849067086860030630566570578991503417386758118565120768039566035256831783774956894623348759168746222958600128050494310705554285508005203311898409334751415301541280294565139423325803059771471293485850605123708179394469414502455595683874507019401479282588169658088822315907948387488252234597864485208087418515010233803963731279673948611762402942554634752705435882402246694486810192887942421509480388882821486903609064386351210353506388260446441471178137424596843209611801381054936869151292614368102568679528684231377916236445476115781121938892477624105651842455853076945949896349182663259252048484747745820373575213089514684819404118856624763222201121085654313232783837942024927584057429675598404450437633929430236376404700070479719409453368530805254761038735507309275556326807730511733636284996663179542689681821016154776599401531488011376338015262769039297714022537442813658924158707995612679102350354816779886968010201524270569189180405259730746196573400107757542481105060577265538816494995170146503309323867627881684314048493917882996096574257729378863493832062161288558462390465725596613084156888735249080778070991403539751023938102988708203873365314002942659755094953118246848980200548508424866102312943849499148047726621240872265768429200509670889334691309540945690435671263262620790461724420065551968185981709177500646650100465750858694300497606134227668127636612868224037488693209733746563691961466132109639413107554388004077517859498619109244825592387073872366201363180293562579928377585262807391985812531569779546995330492481903355933145515260410271890638562739854418075181648263617072015141176314948971214767508421390665089361591992906560320108187319813934240430981162729396465413788837678320466171315423356407168894209241670309973716548432551171015294549006669136854673241754440378512430681514997908131124025210871886283719053154726407952992269874523665400792964540339930474937243585082040682335641339684208555638629911227873655070484677898059485279935268127986751941692553224285207743770798534114017980303202604682960533866783236785920304892958636521342179994108673949591363459797935268011599207754456290635150381533084881077488401910723095586407158979505803815939962626029137360868170900081276753113329782500051065942377078510939722503816900139713558836927201976534857139943130641708714463383749111631491251469193553859473809436131457128948561728558947797260503719466905538884762658333258196041749146029872047163826387208000309536271997997202716566564557139704450027437464588171267194552662019488553347574230178485328779999715973963699271341791746671150837390106883665270259402749365239049868643937896991090557716476183748933484182817845611423931064446090053248939722783394068238408923065804991790818575887396400170051598364679253655096244426203467792758826929625619567921505353302321755641292434099131578899604940236008461287797644148192960935360640338845055775645532427526949327389149151891626485910424912520437558030585954503441727185936279983834710734024314574967899327161265355741148315927926241098293195444073587176082363841973142984897298772966476090879370460676695841154749726228244804669503558940779204570400709148370230280353036433095900675881398027210941639091734876322349926056761264743205942572521890926561064751548695457912983641835445460389567898967321225415314378930653330833729839167629517251255903020495126351812609652202326110042082069143235985270444204858536062079715320475334236319868932594886754151309498397301787835558535060263361051789979786044268748335284842061547628607888732532201569056776545405450941777738357999639916180220374751927522852441744901331392740196318485392450524374534312763563463708245425845491479831791229146494866238590723000103863079060152201075514697945206012583531147016802854386286625251356856622210951299551334624262453650875897682102451469852084020116616437021046712741495831025345092700840123287557806828681383333628779978880595081708364307984676482747770505873954108046972585647720206606145870566197284743147546590516481638882656880643094910564861872927116841296736933453578335852643273177961024879782421673041776679356567044952881757202937744146301357892928275486547909727394398116537944925598899817733622171384383487303146994561217767554325079077811316715849464337570072951839470035676531963939202576863693055475709013074374514053381796081146020178411597756793918386332738929902210286081032734132504967053917058110405767657208159744206644284450440529731324432911408725262410211387736844404295871037271514895573665313627876101702135495477557297786763070090939884826186050280174131304870607349276460498312061143017669989067097107374358035262801268512567685733365532523705679763003074828582379731206871785649826944849251811818659241223185478090836184803329738957885900578697011600305611582678763590977419070660935864925199202623364440628102790472070015473619254420208992214658116149980101009333039207719274126168441846193279532370014846678892839277905687345514330784037772741475564510404143342054172524621868712576655478512179279941252071323565808306941678517794405031642807024432296738218594102137983545030790683992535330287297312031083664415903665433702909581960848781759040605334847137091805780011998086750437804445643617670373330108211033523536742145039363412047106767384553366791151741367624884777753377105983701897103976957692579532796493986082782688629826598966367050311382940699607172080091997965547201932414916951860046196716733185479751217860926675139981494717182961026294026761128406739046630683306630054361798332380511065455516369645120770854290919696087695343666595174747185810825073198534045949232631964206155693937708253479005584757181206944992978780824883325607454763183374730678600019221729600459684817902638312586772560612408174902289224350425461503370633451425409583680694050725766221712891393324204056056332692799431633738204573195087443777384641971160273927043770662308291987057006525814663387168658842543490853051317177892402109451190993951308648279817006728979648936382301616472566641741947372052748891005176124613408836006566281123529775692678315061896388511502314811513095707100969649543108844973754946742196906518407403657525238663417895748278210609186464440793621915894754779875657281853091971675650642419752465631317583664486022442993200462302551871069896983957675536182109415999836182805730005736006217944950779009035176068842510245141565051946194533784298657331381024477881962691091518078626563013229554606067131157816536332655878794418605940733878868498989871871534095031688607920648507322331674708793939928174067638978234301368886097577774847131991778982659661087856974133646726016988684955455773086597954052604528787394589050595403699139703003879219396913730932841464415438506555361249547466117073695904040933419519273672067894892391946739076353379586877781829512305552400983437823963216690859787985812809098047934842557804379845134732298146650425160831715970203298656616795288553692352094445106058110136211967937707691841704831052271018063399721104592007740869199146954819505348516652116646053884472036557879369590374322926078179407442012061286352787164826331464741999657415337347206555930504699510989047064718128103874358410759590170512469961224770238567585431439035252385153260263850089248023100538692209563168155003945116931132989411985731182668784829787245251436131080838792179776936359409345086619719730002427178073365473839116239218565029871797194531845915633917347764936589843179156372193588345294558172864092441732993697357558351016298154190387245343505428241035137440329985217882233789037781939201760233526722445030117564195770429300849521580495212202853628171733493701264750212517535893284127498771756726182042625210148378670337595387665234396079980562379293894225789626445808194487719620887158669288301075343362576255267915865228418092266099136871526762597710328584411093973446412098679262961540862506783669683611265649398585056981602800667943827077553043437520668649108512822502684149701914703109910607652903897845424598150889745397313935673390312992633385002449491834993346662556832790329755804849066385104138752033779472118081639467482822237694799730105429008685835800744607879379068616541082580615754274431505615848517108058077308483299114861579019661783316556833067236324436869553181870048978255261376907132137844928399672322256829537786455822596568057831581358044575901566303712040214821893703443399422569117019133165574461932208660453408788738938129539059581854440381343975787337435510915477066081189995219396907580709271652276258362472803321803252890856246084021267293799708277747338937953777220559361925945999356765635023365211122159701365364713529469377981880414507075413228900003979245409874401516869681342695784710223030149943939685137260207838125818962802072176742151023676054208588253112385520761064412854621766101653177632397325174551056168065109158981519144660587130262212658137722847054966447055483257744186372438987787096763711803103282982273375971226316296572760908150461298776415064682557134526517413577987719450596045088570297721087639591944549548963900520136552599696771477820878200575502248414186253700736565387946887168708824074868750182257691254764430502263900779222812560160447522636080389596354584676087297923459567872612354762768035015689808345544261501071231938927834132271987995813164885279419738060643120901688382629204407041413241642216347327807219903019368763054063421264008887174347068120396842994335521046374855883494031189113402064407681589214102162667228041712305588853125389432940782040684015739310641635528317317700337997951571149778114586350661911370359699096835559004502823273892690668083196691397126069316507096547644452476712818409535337047603912105624033652267182866029883915012245764281845560407341593873273056303627411282526154647240307701654220430653383767770611253156478316479494613960543349313409051589725846494436475376966532239660697506759970016160119542085741999683928797436786415429022710023040278756722713384152243651394849230284606558984794713155676881711886918032118226774468943504375939948666906055038652374406033650838050628534941560257692151093062732091368229003980316691530874258413072807282943900748011369507256976933702404680636626511824069114738195405623731308784403239730425185383187161350750016990956760082552505329740592471370927273560526321333699332174633854291229364973057687564192436472843349737771860849076774230954454779578752838039528087157485903072711193040457691886565308067566878784591663982352720847243794015691284726717704063605680203652109227669742313179078366082956958129256843744303794052449762231974342957789993923608434510152228139295928339195843602929662132925762205432506854803571293947250221716699376724837759265208858214957620490335918264485011848488954632814144672774463407640169525269593972714531697581452871396918556554675056440660741940623545002199318213441392289692869022988986127035897690491032036915416422056281293194633643697036321304747191396388883645911788793523417441632614940454425823928733963375482671844145391154020883426172488659436503160957181085900092624044897553111522772741092240362826404771441381737343703619985596548052951836714802588074193731219849173661397564386768954990321268184622104618986801389133078037281920251616609238798936450683748115298175734887940700975517140170754036330540589313489333690965480616193782670520893019594760010465242742809915464678959644772923147378056491943869711507303264873630534533466854270897042816380988685216428576452813539695895225387590025184848583561458272430269140637250380960028602840135729811949939180833347752084259982525127727616283177231495131908594286584536864387488052668655122143923423601083087893683027062071681007237005228293721173391744652036480466316855151137925564103613834579268602959700237105377648852561486363441864377006078032082438778707287805532886326169013563208546133345489654032378987910568583232523880767578484957136001809571412779543096014939607251430713515211496021673321452235658704497375399879483700335376222323654584817737522852810749028158263095021866965739668382991387462965799584556895200157901944485545231500954375752348467541730373022601012109246951196137287681791608224532236191171782304763834204269511186724296555666185157900602041170578368866382549117055536167505116990062408571834998096695001685733897938202825311831240368974226041033583410834836473479833974398149248421056646364343154341340490725295613751936644998419471875116919314679428273307644649551616826602708338546484218901813696777757219045102872638373911722196343294857703535213776546149249123959173111345914748986957940388361191209127276606105233926080263156836680830883483418816664608270337260900067154090647543044698712734399266268439960853089430259455527173633692609000695992335562197877644577941780797559594537834720882058986325297492260944570173367752790777503411257924330769963789325194896049950550693533063933241473619814266829774718423872653743929580683551897334989350368071343606962244564637046638088227901303772332132686078737712936840719237013626614881820175630506415091676014900047815808741965135861163135118196414697899780001174317258724874320554980439499512336036776923291759164413703135923893781705064471027004858107375233890431297644722981634592410479417422908122477615870338708927277262024008937894041200807317740362915059325890501033014713604316412515781965984233708077462520011513336711497727814300456059784291164056463010240842435429999610972243971101330019376347748341076424133529737714626074178503870210401858840379789193030745949071929721670261246552634471317922280834972073169127236173947870936623767651680651069593813978979793467457754236527600563746737011774273069569632537293842685775771749893662671781702146798207566254232360468756486115814334761981114698351465191273244104705638649576140423090464848916178065905849494494043052274927380333135391802545165094268540652903042129780594327157013764292926638491330909077480806993395559485858450803416192910525082847120585158222275668012667446370403787597306631396742342590474255377274795126183103685076067039006301849054414644622548386752924112561955830351825508503469485130036986691195534535426951286226750938929764149444033111543554615241207823988940520773387380783844948632701854862695932656888221601215519215446833850871565936642530528082661224864716148562331348782723416109097119280076203709091956438437810524602021375173410328861271010842362034041246964627351736042958038663045819585563984665101917130782197009179464481959222251667567933294062960250350302069209157657798857271302331185706175186990332749964958230217925081851216343498649854229516706683182220543051048704157208656841010629723699856489506837544826989631783367877430960593206146123721138021222142700310361281234901574829732903420412812963622024252222674625301098970543424416626538326507644009784975279022094787927631887384871551882958251698788187613700122755093394723462484210112573780606043381821552359360468404864116236607009621397784113763995606750203385995803822138181112641071769111056945839454413435218163451874903393926010701877197804885713166322711042514212591631163576567597806173209402959645510302202889404590524588840662799967713070120552090192346395761155719614472220081460013819349430623078321763392922474572320152548237698934532487473053034361120899488438698142677803447716055050645832564836886131445693725620689781336828124679172880965733204043276121006076798241664558050372445060074006449340171833611057744454087040499101833678364334949588750933719593672204687374168221011296569085839069679743977375616891347997255593271825254837923254870531473361087146215855312389985489309844352473126613127946182101449301362103320674102003028430522765922796217569705641178360571354710336485675806919469208631589463084218694098659773339948887209871540381193000876309211337477874986359543741739717721291277081812462774660494950775787826873485806321663751226940344122581268148277540728334885238701465996865408061037155865060438704722810330660506859652608035953276681314031951287323235607845245446003847975962820693697161637795193968451997120502054925055709488191748217749360277873843758531724387915238550510163536529897211969742420750923894362556244457986879182134896816669337241462725240847757314879444473086706388102722340313476631751141347967981471467320732405646217574117598419999007663878536453702469746135178823681070530398211314756592804701838814029263456829122628328586797572037852158538824535179272233591814761283241400672210777663679745601501756684432816835973582583658253694772739620541384419306548185968518377908557360548588556263832464353658324840759299070945233333528854424564381548574523528228585698964326319705670802961254878870239977462661218489948884303321238451463194176870721151768495532730905226771587875542907519498546485936548761417678647508619003229265399068900514140852729175656293506936551005499480963462067920829710695039092679377045201644884680605294478439595770922145284979220462754283356812149102616231167325768246061334942780133808131736485189680207070875778218116401258510278138079490013770702330917632522764450310077602979761436653595353639471743895568335750492196698148049782884596279327288119656394099913378432648283080537886660266337185229966343853764867528657639657401951154386481265756780145548491527574143660119295212743915634240014316230749525327915722499693872242636184367639947312773470103317473967730739313880119803929984012831439441552431735215801152104938152087430227592511927118314045611236928607991561188018669309488345424908885481794361717451587533291234525571415065630317224026918391616020872728309036202352307579989508700287644030400157410381285004447552024570211963723153696914597591857737554046253249556740603019863409830617490067826802623852867282129116531124801035167093161585679512883183762628236177762563084480172380609259512866581958987530123221933580027386740054746085903510046774667470488841364883355733165807880731932540347995995697864947854797566033453332290489426394190120216102258797621514325815632323320103242223134232919053908475756609915577570913401023479945650268580122887865935298864326080393015736905019223007910053178650634141324220127540792770635653107677090085873712921869120926741872257968569771286147498201890344109491519416432181105951284880892666056843758793316204096238627857997858739781944643784221391863583623142356781521230736722582876727822244728098875885139939352615417527799790530630231908114399313025955466485924451763082427803232239458763928588718398793034441981702198156521238903624100981778573557326779424578247848260025350484967793328482415444304607603471974157296139373379726566004443930557775235708871424036971579602954668601004546830298021884931049481743287383938163662598172235572457302337119719187227947596520622449878205939361771424036604430698303687685320488458454123453385651203284151855968745466339211344705736185569346272181890173965166068191242918326590435895111627862062155229458442632402500570510775181289963750325527191446594141575241394241440770530623942910768492637839390772489904250312651608356701199611291720322972326535883660597855503077454345009727870418657986798067130649817812506250543904032142919127849479293165033654323611203239037810432631575767438518864114558590761762589272876533259456443183264141674836242230674698069801570724434197268852042935662438470274004775107798805917606783689211640725735701499256913719800005992138644852546476330025609628985061146674634394876245481909201230390814575593031062356780344057832156751277672311126517999536294499422813969671498597094819530097922903570650532709520608572798848063398649398892991637834156517407076046885001880482191972947849961647230820595869132724727701254205933749709770617039330192715036585489095654438986869743623442675945580998647994719689949825949024260252321254975644449647153648744876425947708598310562994317963216992385552014949888452570607193847991726777478304910157679280683684951080735633904076291343825584067200462892883898477043891364683129667029150260421674708122365248706895833376912538895127388698981167281990653019126445287585749803749159781689718696795923348498333653331917347859845617140224080803632135900952092857790991838827100503939926757836259349256664914307480199386903625631891714942402398480303135062224505582763131405955222330880395348550299658721517524385272938885694555520153978556128004534872722259500864339986751615607567298319087887105455617722915386214816861708274800256190872573646696224084475891567187260660578659919043759137034238597100186929299379964460389958968602932160376532355043910380614814851276864668616986502138608519300431570073046824704625274565040864108452896423915350531820716718119352439841582031294922401328111194272119423794695023721501141306437882706174154443548579202580114121355894950355311959035489543643696095856617699929892364510352128516392362686803400040000491539171725712823100924552260272057444701849042202019360220925589077056740351394045922740307178606461779118222880580685142264987040817259643813813906644187658769194105404060497597686369012652609041182416616767173123065291405902944525246654940751938120626120131513565290552082927595792056131302141210560980963694419664641104563845725599376486534611473319013415342408448473788295067556893191935563654131791109760318012942377020013173605094346170371242561413684064207177075503875865505582184806798148965665597399267966703987507473409658801225018922888972867847472349781620392898206036661644454170519326400413485616348476192916652568593581100036078753885613816420068926496932606296480267186843414996697166990409494789652252021269696248148792344421941393583912708038754626973627271258204806855626409444517666767034840843084004454818164591063115830851384634137070625980414397761636118158663755220437771637693774508048610455911547971619442509168506975246590543615060997378733097373883658409960580509613297105040203123044891681137957675602345358096263713001014605630495532581822475204598465169318493059350703600050767296989296996572903685753501402958889031843795899515736238670589131109674241207700889367432769215580555733691316949509132965441378094445718083081700026614043126460081736295336616031954886770472315849691874340832669166051023507765858129253488505009702001160386717934069420657517102462960667281406492802603966602415389445612332878146410801144457419435315323096609834857968225470913972614890973772480839494980091892261347622734359665338463837980648386412104300003370322644169059662304380204291505827037232176440888016733338545633860674486452755983283077095133203438733867454223930783086921052352765602486960619281425881096456730224946821817174842512392999170505401127957189751772993900796630344757942302612957315149606668881973667706673076086792856035343840053313976718946931314015579832734922920693033782668080688887980408773614820256646420745741154658767422765140311262970286748845130504015233534429101584815550758823924896873204977923652378940489697632265616350734343121180088473316961567727643262910783883610945445280547084711419862889396897466533595205394372622791752904653290269026357505246917294600063965724774957102700320324878362068648592323614453898730268920130333103260310895139521457932965436363395826398282133662756524839943512309948027381778194143959427109105931419630883430330014574029223304712418771228131338849524414394687327735895971567256457406372230897045114475327338946287951780210140692970118671137657556227841536938143938485859073717513859328463664578127277526085135163155896955958591521515538005755600691535158072102986576002566237598712685628925194851922170249128524902892970791836734641516079370630495239863399057308856264262459205759647905652372956089329718066681736163591356936343880579090616595898442224783660988850897762688199792655335417115787213169967558859804865876417966051503941776493284441518310494916215054157869483390418246486636722430211183511622449714961127449145816850223999389700009477244140542396038791972039181482054230305642923394157231488342770526901661118709579045784066138183575997639587506869426288048726628770213571047696719377480838359105947146611938250961648096639046794468682603837262947043296559294171813167777395185283891055188625091239185139127012514434270699224960502736343356368662076458921423148718559007039044601249029453752904279606879169379106290537227097369584175664229056361016010028934945988604238726577839717508541577590187220800960197403778603991780041005613540655464684675750920069891663362032461385043146944538062400791387752800735424069855257974661856923521734740524803376667001146749232579896416481554464965180308593822153360155398262343116769728562399523205799264723843075596880196830548374768347923377574284126717237649986846579095507095478840494175885083933081979227465184034189671598218589736420375841801481483261809449523587981920307340213389616998063991316220521811067726145455673164147210558491838671801643597765274893682754284901106919503817990707119361124816708466254798825192770162667338650253740088716690972460537773626655452531139785897664243598118243100206493463679991484120179777140494595036154311402266324483923301020869992046469579378899615926246293220547949771860446467303478419316001574992803952887961024572436944763826369813189166643395153855208079220171881860045536089554035028763498446212342683113206898764788497347865072004851332954360726491497752913912428481045481910093169021630932240729934454345655617912847732291877801977908773384329185469973766278594689737596720497496439162969844809594560506897707841054602614033203933525669981053342412900825101809185937016577786426044452978831769879947678588180503007690846071578911547166661574467160635682801754328648965986868009543490557038250087891062266328905025137631781706408053293931346000227814137590019700818485635665381872623311520437467381904876661064504743588001312645407002458945255287185032491399059210178444262215709648090653550109940628954402563276061996476127530412434872859084032483190906611285620567654499525126241776995329673125333822065540320963747730378035662401819650563912672837855517006370481855409536855836363205503383550114940958408991080479908842778512434437684752223314856758678196940906736912172342670594540015712963937733547730038512998513202997740273096358584228700408895164634281188306531921237668353312439142326686243381043626032929950364748912424806919627976058346319285722867261915442801814145371237567566317857512451275584371141347015523699846168903838683930649623610480728036571730990880390214501126135650416225572704480779806573770879871895236879580125981385958886423918068027541692193959952937554871262704319609998828245321939812222281087905102758018282309602796071432070012298832072005171485742372955407196429714158460539688393971564978732215737331594291633849332544459803712042112303720694024447917013326080206992846963030023809008935038167236691784836075036736465766834015268028154931583252509785655890381900252370804554154602793841275303062978873281974326245293613049110264973104682660744409037564203019620207042767516524791242760604353066929069006161015360483959319769694441884897310593011718285988299090263950561073537124695559767547834504565202938991386868727049513183891056046157035959982110080546223184010787373579547068034841809107004432587869771714084126477459174803807847232254035169712749862508509551049422880505512933955575133509063160905165658595374684375887986256733661733792363713943291162873273182052266404147869724199778711166447834148881029583875482070349301742948534783601110950448322526715505098238545428869248497335744710841198767564797258183105332682376059940193208631636887118435342093922797414431953720978419824895473282097132795708077330868812754904869310384991429423005878623266287597494718375961181232561834815832103418269980800130473944641617911870711129016742048018596144732868269249582191251180574128446932637601971295352269095784826626676260718409428712620379915176034485652544014642758808665971206219885373320644472745472448238601362048756929770661091530780330844328255896884432066199457813427413373318553327568036319282464371419341511396646997838371690201747724867217339939141553449301015886048187642353256753323547513361187106034597237687765177909696601663242450745872559325563165764886358465784818692039737561384884986843982102703440734952711970890148724730856493076940992844951212534157834930597383607155159183877248065190861767148499249267762190921471877860223855961667602107971144326281243648155628738494694327788449027441893029763885061174748329175426907499420291670210290125195461934549173031571383966859670710412525876644999130952356587527124179428859129528540014864894470530592725873890461044152935710672484783451922502181321523903221671309749826969447609955403502347158947986490356200030056641862976313969832144978895366583749927841376972225724375295138614503548696964227460703472518710259545257000240350815103085600655054559222606311210879099106135597982569603806651622194294349610955737962282487614085995693087124540333904298526933525025920184668500130728669982032002612736908718177615281911322765303772170897626636635075365674308672450716593101360693941948484262895218519380455405607489809675307435644512982883583607074771166760614134543748039035571919884669189915330500907842214240118363851892680744808111722685691396064997383421607532066014877522293177687019020464193839622333048578418038006896279929781029372839864174032002004142311782524281607244846587287852221620029661111824492149568018921866491395021042024079355208625771883438937195017386912031329597997396527139086020494497469061205546797365350305396122789371058934112653615925083807670780174885765535272120762400187452640718950963394203786346804422243356009635594130054141719815720495544070256585028695143483286758465609478355962466575356346991945559272361370493708191461761269975163593323129216023454161341696718136975007901070813798455436532231854747378192378755905182408014266964817316552991134905763277265280574038628661594315750240840645403402598510725364680865835851539328500929946535005891460860665697047433391246297212410130915420901644721246516400670642124194360660399525418773587474882367893980917036848723339516620276833767450920575149299420842508813241134772738567174199332205499571595970120418830006697817827535157951686184070433931235323057609723984734083421181526930714322769515624134855051071535177252701524745037749559255457828023577795508872518013535146325433615199551352536058550864505326146608021970511087585496529204051856828210832696595424086528785143432055864740514868666572393557126413465115034905610738380502594747687398425449964634681755876054076165509980437803915164898608156641846637201907305784183341608950584096630482356613558084413992971229020855578147428317514873153463750318574412312218293725573868708161232172134762398368024649508301247452616009311313639152934289032259379634240376665070814268583104901458316651628712438067455517538899389852651063994439451148188922956638613776161094836265319676768179825424777335228720654931497121592505561967231619442573282736367375810235984016625815159388753099673286081162638726896469525885032408757669633760867871859226589840920237539421378031725254905346038583167393711670474985910769018587589682011527439586677798344334558920538742186623201791216928117180143422476126803594980418952827052206359487948579066370556721388916052400710177239585085271765864661128059491115974334259056996017073627523016321116246621717575965164608707647355878175160043306503408192555675632684520114692298155819054082852244458171416417676756661366415928130420272161960031794372068875102419839661459442252064277744585733284546537630286106532674143551794362866103421337807665115518671552893815972047742451097652161119707228951247375439275218690416257382993497731658795630736809617277715025429869858740659978773070741334111362434725092260816103901257321669678345382826549512280841834802148207808489459497146733474374720494550719808743793080355951582110795692759677229896044965097821610409992469472080515970864553341746013838680171573871199310328204536045098809092926473218328659281693028575916147886367050355109334697086428689160343971542407138149312573569885211575440862829740146534939076329039537256392948029663326739499101904090893560672866270000381368764032861257686081366339427742482599780320752274286819819582332989906274838556924317074933552882263796103268733306296669552066280455788234621864267644042542126324897016106065058004175267540142771171117930680930919364260057421876409096738947843665598783042440201204000172334905840867321456539167860412855242535564767442180936761712850536589847866296669582754458931987102394917154180873812793388638670357548681866609138813348110199816667971329297912770943126355350498767960492892204094716718527504767309509227469805554261851943004931654093365207738889995728982772740287226903821559219336247407690546888198116074401814140865541256667579479645875934757284186574115154820129265321057800793125014691162197619915695532207615388313661880432164732830670366431111765701831475595353214705649677935348886290971223699392729240930677947088986079933841258593427539534979440593935485750016158895576051227158333486443602881407201246813448525242165017233793629845534066927873535209488714688891044835077433616347505555265092487005767548951151374087060043565494732506231035030671821801130638538296683975508460670190842956408300962827802951073500598002977007660837334990966428270272622370725110118492269998292421067066016903905931298766266026818893293869131081266428839262309293372551301237317162409603274281011228518310558159155516428273717697838872703426074295025391818545192273476071741024951682242688057747236484924899011713156936840680832551800625221297347209655098312469653140495214291616510234004125247698286874465387374683930199303752531298593806114243050879381285253145067731882675191362188921124583830408763363573592533926757705508198651066212308846698353335034654334479035156067273832600106520049850440767314728692714964630232833774589498384183133228435792878213978543872252980926416608434318354845194158001965305967522261951077313863744981055905725199911907177163545945791429670759132627277561804618321917126111052522459753478211632193275709047817215201268849303912268074471028023790139222857701386628766193933949353752153875453102529537060983717617383418133320178188044485720146948852192174016233035153302093602963446217809294016453574029137839684658552255491613848962028646830696500562614692063324401573626138257517383099971243866994031779834658574045902498210694266505767022416161349197736156281316035574278479365849219380815969667148161224040483980158053785899553384329425332577972141776025506870744762318400587635127098377254364783223397552818653522543310406325709206342696733617883921215050454374539283845176652213589674289564585913790055497560839350558069770341619005299173330756651436878063786013048937403848307523524947011338237014443891310781085371463965499732961636069004414099390362510740411865061277860548325134876183925504583983738130924748499578120190491352444503859214572627476243392247174114448630311826162875766579077387236948007039416345970125055066653931169204398043652115417893253751838498382816817647480496586976754816497947350067520164592224117195510788733272877949083975684430168724392063445323567172721370047431803273966259487981884916192864218878400529757119285345911640968282825340283104720111924211390675446524798609083970079934267298129742311552347243494559771919854537837575453938544252939889684825320011692987570926155704134786127536348087907722176595726797656862515013175380870263904717848297358976524784860425377258882478451847915208097290314717351137300878871195764464410360965699100650903014770552834251154121181123192963558046976837297372709314082886717418538994523629143159385386364958677022008093570172835805591229894114203103642208913738139828904786485797016913964934604988667762339668845446950437431426700283776853211137140505755267033945334711950345798484989689544566647328602819748713399914001193928093709657664443450169709349264347355766425527507706357653435775320417430208676962341076343515115353287300158512685813101209168065883033581523657363792877953626217421689565775418426538743902872427878307805694588540481299235745969957865294752823987981015739385148574245403891852823858353146116303066564685012376144171858383728430716744371889403704534841416124005495376444702012748344793370833948580665545427470271155978806571069054613726672465489220094525029144858286504207408272751059073541045027164920072670271051718959590893733981584623244614196565854947472787406854907018559181091861060480060041090098614071651879200569804533347008572635545091088359339802827540360346248645442230636098847653521039345228700106417420675902608425669115660358785324326979494888310144826199736739381781432675781014790116108668089335476524404401885402149128443972556583146147032964034231664843829354395630673123042387081685749341503865324866768608411533863163265169111256527673498421067168176723298294292899755916433247762578897223431100726566605493564520930259021628955350493060096056604249877110021082374162884375270427769605858890732331302076059678786755801248957124819557533007676303988218728320899843212203672037093641785160619179713623681811935910480521660331707408836044191934689823811155723048309813901143519779100198871856415980179799247066262308367796892384244618590232133143275297575792809898100876146684149366084069288741674602833984792890443813275375866685329477444721366384712462249051482643580422711863210933311391040502615065450718417919787329495849697670862550204497865731227053461865014641696556448258403655020355888017278951518066810223254683851627602959003345590374238913067945088246946768195170574511121813212953895912045712230088657709196270712623362497312583735584368635633234949788986711497152238414612766052337865905201329926160016656135195691811944154449174125158248529615387418963251957853581608088417369189900231207177548590676776735268647072995665196436176622302565015429783503276498705432311610038217791802763125142136150148079231099841343415899506741701575373327562068418879698363834959553431766291562197183081504032477645422864058620834839812112098874172279030463254878403128705674365707614000194470086777046310786718906295267077353552113973386898480737337448970183354016161646149634645288623651067196152349247511041358289303048256288519715730487603991236738385755171888030676520803161860902041849551282451827237370787042747293919121838429734722333878956732345823112612776881499012333137068824640528149202525730140115825374272228411901752234119537723146523359640475089011814162441549925363784131607387531358086728407294997549171334861935546545741068561779123143333017147596116757084367275332929562869140599339573468921722741977298467358989595172304653649027899895708096130499536373657102394502525000141901797093753507229075372267000107919323975927787313187938031463671201381399963164181147231393106810874476141817768003271166989212529501745327728691934147463002363351135352527051483576224879667145750836529728744365787136771661408456044471714869542779665517718086523607395709084298314538862842947726227402958774335941951823249293276459752921171669436747056677815984610441052524968200859541157326490209709205226580418571248781995847581894765401573040151825252764860086162237638957139259892719664646881002278145181897286154951060274927514928159626558859735447897312506789587683642299575989447614473484525296137010080989189015276284801694336653952066641529911621517803475262758557136797430825774812157333579632281647367434459508316296635849545816967673411420461441192185978608192318493366512512074203922875909585421576538530941087845898018349226222555672692244264605734458014063424510974848735770342467984847036472802248661129557928244274399316666995731058848692094243301249136795446686807419618222410133948781285036094922446060749464275788327673898242203193534874633320146974142337175539151782740811829697236823551680839989091507140790066342862469616659190484864010505306879048657418606337925165581311424020124017719135048657379370823730028288735719864217465215753962800825588726027046453856695375065162119649689690218719211587051792117855438994728149329166315899454144602223719754902349347021124361885848622411597986292622640412542614259332353537535545464539357448646554238422963839963555170299856441982096000948122211014345840369257299904013397138961848373078821908921664390524039073110037013375445725603894677052282188046754366419918484205984743943279783137667627798759387272075560529947850378256044529368102634729750120617377172097837058183796016451803052757137097203717539011167963726993841369039655523276545650724285987172167180345722298473346900347988007672227671286136986900917914548098886224328449906076859020192889545474465837243353086945723661660270528938538672916066446676489385020271039192179482960998243086584248050395086910883816292205938057238838554858065527829745042585905888394456578056604267761291451446234837430586231748622610429436427004840238849025726604317020789951377859672044011920746452114929053950758431224043059569885829891317231192832511527213157261967234456356414069828813385996014338694289682814945983489298082014335119389906597890699458508867138359055746089986886098540849319043888398400046306261494606026268104474244891169473050714178939005025567505952366574643664653631446030015521758996708321444359869590244195890727050332969510951810663847908058947720516628231873884531570385612833373418339024468845178000140455972369084693901893641062144539201931952225925124224517128867435241891767503449015433043521933638884804866435323267584605955631034115405493133244069226182074073889842016618939385807527969245346408823925103787433544793675971726772302024683611717265143394358616584777037555326569021303741122940612039018464264186887829821487388562897890250176491479394705116589689269991786508312906012529227293563552211472240104990406612052335270458294780482665101499586451408491651522309967391042027501053403692853656936756018376042564515962820743952322528506305994151319077161624782409115494281578923906832204641039547918918466967439186333229867493274764647792246629616661439309574230559924671983674873191306585036998844537043400021148020454986345260196501563250192931750737590315371889837914120683234772418868810921380578889136160631153894309187915640459582911351793432087441169498075397237048788294332102026683392212236509713922629085197127285561982930017743210666864487420657897665048470595848114382295776523234097099870653223514605831170017538260322087884405610770794904039100754299691086888050448876429572032236896263708444780935250715462260580077417336973807795758698947347541817185592661454946086349819292807692436391861855718959640220326189038555471222086696609988646925362388243574592187579738654800787061116943533546632350020176439376484293061152482633403720430516257265455503136644979419883239925560039118700315517289197572787495210177459256140224400519465588094615024560423202869682769303012879131199803306512501967888915805652381061498848002522851333128438812767743737851241340127962102509832255253493777474205530589303865332864949502410079637029115300498958842561482069064596887581219104416853552879792354461884446816486367321824609451457363765852161850796159522874586236377051497046279693865071921336568173506849195416556820194727934503280401430202988220672551635408394240098344703625003944398931732007532381255521853201390446971160980691414980949298883357493137582131603926499403085979636386015288273282235833450082275741662481064334795677274285971623779363154009438579780716243204875255537911370943685432908311721996063848806182606468428690625146384040576389948252570771320731703644666057207379403780652785128682019112431721525728652139852794023298104430441961315489322804560481690021182709068643780368019927249130626421594516476680596177904639261413408806144697653381537895568313947445149079933999222477516787974060237749429672456557530382311790258833524092233349743658616795320027630276364601253916343971648368204916144328442592377131938865060516646617440929060061364724663307529236504410658926647102410017693638468790159871039936537773030824798403243269923201547441538349408997113121612075533500392863916580153188334403661539267531571244820699080587706816025682300860721928581721613098257089329023816254881050107070760132096243743486344462660459612374436007513351150544397470871303154615492137972135074051854394372861469102434918485801499006314779052610593977786167941590117352991069866984287908553426558035379664701763211749814141242999343366051353244623292049997470709034772699898290798000687846666333259380597720647534480130245246083343032298033594015891369796485554541001177730942662087168381535600708909665774496170829167641585037245827658783369329293628865425499844094938565808163388961424967821839737874765133708937223298304767795655056850510271310566118209502894842086294169896469652469561408166855122456655365854252139539187197625692218587054872772823369936797090102636155239593362364751299284767510704412778808053123690198837815207135683572991456701791045437749625528158905695639603362282893316950067276379046911866537772218764557965707650539072688146481052721726755425188707765442360409068790363683988945312708578292922296611397827743711072004908963185912298569762273746592172899179519027950525438288075059243166497203459115672694629882069426893445184899628272359549786686637008689347913661033390695069609454768901068483679780161661858256641163297442763349542691800682715917314238810670055107523745036556946568682555857464980534520601406404753351702703305969043092596524911193583628476820136869209869919709093177878829018522214155121885556277993481207002804284155818916812657225515994254986902591923758665450580390749290135243894368884309066718901853899902391940482937079848092865427512123610174820088794173978264512030651490217525593816048426177977549056737877991265241470433585272944229916131512492479942214697843256713833622881004511810407851395096404805783664253106945072557962202377178602366552049406566492738994973693122702273438011994249311898739823642913695161246988680659186281494078107230153561798390766238151395043083785778464210226011867564886980811716979474020677865114446945113098953300489413521096994916497646513970807338772942247807977328082252142887002318589967244963750027883369070338266476477155318650469423047964724299342845368519173715186589256701843559833461600487804293895743653039227232362856980008154363777360266169643010125685639413746230794653106865445965684849683652573073454298731712764653601256035226948148826879559550973089530887165665578233434496565797956373094026869628175888621604676942034053520008362709280111417592946441434206300287526546615635943308032607976006455823901513733920733725263126717622023936028767969251250755577533932196665906330181577037417387513638657591226765726269032714235282220048720529162427401039863763826356771602720239658944753034261123570384166142242561952078119116734657533308956852526863162008058426116636926504991230532380327934261358333695806242468075498549842664063991522733971723484012141530179742642587480260928429156793108984892503732140117769330204030057079662810492739160158434171471049062399048411722057972636888747026241621313105743548751299291792801226489866412245540629105160879857788932659213356873774979313501115052018694232107440268050783491539710613987787008201810898392579637185240456132629039026601084955496603159551983227116379991705032484776771078092261552070223296894882652486106957530230284773440529221318242386380115266872289375117755788268450817539636432081679978013303412297219783501602312473548900460663109336461888736879587460035313908325233671179046507110117154027680977242507197614161657350026156698227341506781742457822293603802859839789134285792900709699926131163652224775593406158958105737093017817662655585217264023874657146889797436839939811888944799553635948178496811227997697419386831379367524740210559019004001373884728669273523757327037066768223460859081929379070764670928903899916891293936751468513292874344311245963223691974298904228481541217115858037493150847575348702326805362045036854721693765483745107490833095505302642304896076994361898597455393695364038417621852431660639460543249560963510730348411612288475831902291033787542840132822641377040378924782189927570830769566060836369094543123541268404564448967349963814246959583573420933480009454183593911771886552011855130482757479037548145144117300944550268713559042609851364751444873857081103709826187961484874209683961988539342872364119624817721000400341074901933893418506388079153831373757651014592972726094552555721349847506064773281993559458763892722942120502966433319243289065802715572163747358794010017091035769681102729839303602915368735589562099921106876714818049212946826847208788596160846003298993932569365862238369459681703557428409877798725957534580625861540309598959229781006191715134892519743688662199150369366090256879606155845480707605379148538591823308503454824119266089981397916072642782912994340577073720178157375605438054082567981895128521491803242434316488938782469034538542129948139752769472163660649276301332134756745405987804907170169180372633714504329019965112905837771617715688971766274710295985775409010099566457921836674153735544361029308247599104316069282220672194724001096250823381506986922229601368815784987710295577683966069689850638044079476702770728053964017340541155678407035663235811827804533910788186113813103509692851068560971913403581519238601055544369768174488191564116770367299608378932958873847769029761794324356006005448913472976502041344377110420307292722403936251075924406772761575501874258368489129423227439473764459759276426009809887585505072770436760389382599493589449759574808079409317560698748574412693714708524917397591175984324967625202719954495442384710171180387852677046101388004071421274906811429524735284616129742628598546119656938888759990962970665678806165305665756031340974372090600790109008856170172562342886404047093308302330452857112520235860906778989775989428841275466275792681613117831888505901771008282666427317118788130930191558773089624528394209241261865485398971149950166950982386031457563030833684791935360771447041669143789474190424008117785826011523139714229069159676910317659400441661318970942849699915340627887328886858494925323778481790948353448327306163150322103367653452026861221391546883749744933311454389821580588789785111631028558751167780569569315393570347190288357428820428225054618111833166172505211266328150984705918501479894278563948516476930422083731667466417117657519048901274602225685936813671397610826615357268290410495117631519707216965683499348457651129538468948529260253670005458613284547290467954209299051783884837874164871892594827029091487379371660865560946143578199525935434804872335555161146914045110082352030701366111774923092865616787427148235154435932222910216571320863503322600670663617658636832404710632238307097657960862422177601831896221678984089071585945610506192691620718436556547634750899290216087682465837780320399237143528167843289885913207345876033272082607897734714572830542987610732036206207507244763797957600351826811181957945024046336051322395030367236113262594042450929763616537731114679931618067855584587011875995073824434745250264250062186964924186341016099618027289156420907942110894532117146283811361629819749174474213884609118591204455056809116343565590156172803505172601590471742181278186465856892371999557517357998444875274611872509057878763085037854310649017540770933515185833587308082059046265871889287615454334783402035627606279531822481967595934472530871923137991554255413816979490516056960481415224296783068579894929125935971860194139084490971864186053419420839025563857755332139275775061556312066824961485103954702666533560741008639463761877734587115249708397262041333530015463893448491259224634185529022127253325596317250488597300475231956009694539629501485158122595235307737018125665120107987007772406874267101340539212736711519655741201246591398641832592146061406793880465161617469467222957209638045009992107069060480366152813535133716337224363323919287540204798083875492805540034519496427903652948329021298949272662578816448360709779186223386759010381485622923115450827004757020528326625091922996469704605510311618608344182197531110160992235057169616627611121714697243989253399233368241739905319890153194342564787919284215867020493035763523262762514264372088330483826127919519167048927114910579768007070416526831518385884953443686115973562101539328632694123819555058781175900886537930143944633327835890563584164812053143433856237992674139762397752239183687632681224748948032760455720094813064700768641865163136871670353304468219636745010636055329083436235849702210704533123050522733651357983809461065645367484620371247235809460017154781098018370199133253611455840615200020916745361455602405275654155160737305445427551396981478697732876417734059590390739527954613120818112333698360322556477653157219840635122939593851456485391113046815872618664581208213086304472292773343059713690038089042205185175042543448837780433004912283653745894715297143096284490757467496975579304821359017746831006527828038892917845793131295394764828922083974068645992915401519524867683076422069487558228070066570927692544038399683802938760210051102057853943434248943273483052423916955202044841127717162490159645644419979535940245697835189847914245807739336514067636174287138208572269935863076845444232004744048093460185922633082494857469995794788341559469874234730246000532784901862407742750007305820835715054611021240517012462887842127102703788329013608857173657223038867134991992634175039077794023986204258289134296470829992540612513620207336622936242581700051664309103322824834030181110545719754162092080600655971403852592353487312029741461020659427043561750024463115589385892835106490024917713864224486035722179102761886286792018000614952566378681918401861167128527064219980097112755645820430954322181689147555100927803018136613202455554561685534842683576425732270773323557626014322045363708773786993945896825531222377842843489364006988475345883416426842834399112365372068316615346615132170806412700538828346046805677853268398341638161474015180948480097145055519165118496593427376694488927731501408604514473159237248420434323191920612059475130352867547935168796281758429805622593553897845013435589895525597712129481931397200893803129094462387687201732831353702186890183028024327698220331769073577088393885699996642089195206909538206053170681970772932452006090601130492594199314513071774185125002083540499772204801493181198629194675245444396263036548927494134323190531477031871206987158340275182520944217500693403306165384619182320806989265642169079618023961245604204355644564703206326962224365493899259910394039682472180241427300625846119357152989193855070912782975662019485352796346246508644565234509747459685975194684707692414809603219384155891081967268930897196086789273619753756808389110870593665210983397960415112949589747555495367025419497874939855418263142556405872644486215709975622104851869101136167166080191016711007317133677632291448565707124423743122290757123448738218555092845999520328127453775522095881153685743759145649434801082219869863575312187347896923903045496444265350392253685121576485765864508831935173662692449673211527268607802900273344728959871076372967967312341313047568843003585560643659170857325455773146903435270976090545270411157141176767768907467690653568122495545146147376344231646308953099043932719848566432154194032944966006425193733804187134061092218418433347704262304303442986318513420099749720770003140217702243244422407994680349005151970152586101958175080374733977769356619934994711085386976620002401464303692129335385129528084169806952060909550962536135579608117458851671993038464798638587051853454214846313974841076020890078613154129115421671403013130408038284473703687595013536798752890901538240151901650328541496943463742728868472448424066225158413464490912919556855428184684408002876259895423988994881689737039434337082187732897985184028467191509844991675691786968407323487226512923013267855672433753307465237229137841435235358356632567367613981890560793480352560242367211023917441768192102442696662842586492924197868130947406779206008631603564763854898334150167399785281132795678530739974755825944150095784633561455671379898958220027178514712011329941175820361664111273352182403007042819157167672199508040684690356077887600103891207911299516026621848251077277397627435426786267017467043475167431108829436493865582197255330514455405111507383077434779110992970514099169572116494253179596005590291489549345062817256567410296838254068247311665197493212776592582661894408699032106089616642020962490559478013464492610513116543515901469386219859408925807270759647795990200194134982707663254152475459377038240360505973541517940308690342101764481600371432913796342830813887158427038329475317267108533513751256540201699819060447680486767977083862825105818516844505665634693283357486253274661350758158846357159082760826237348760632471108697860094863460064706254821658124759980734858936620298357656126471522394278383470230190632610554959981772728180579942309107466850969706318220533921310967486666576804953664917284086649193422570701240449363330813797863200188781501742423665509347871820188173534617766796162060207874837251384602372586695303090149387236135421412959607597143160373805959661131293438669736430026434226697088225411369247300541026095735377967990239736175916574039090823789491137792179869017246373566338174543487520450676493709120192115786224565833427082348169873360239768769844983468025247545491255800764214754307396512345278422265366802087795096976961570856064026994626355982571756062400240154013734770527138587993716856529032361773094565071748012300380058077987754999683390563637868172160907278516802535253685813495361743159515653930106667959328136564114763562287175784916401537631044670281467164984734341190817849624657837318872292239735598291009394996885112470312236140867091896254017309826715094513075958743794040242215374953289287018811924576710269929665004175462453821234400875352966442054485769499207574662214309352387584817750508439177128113971864996424208892543748141092122523542949558792941010979539849868453818618461606491057174486834007784183924725165580510071388270335577662454208422761270466778021420194629516904919755553206160781257566131465179206427711006292503035969832519363943708243324527765170796921100248674457069521079904492447272063605365712398359118578950595245925576757471599660958340753635479611209123872085095824214638271964400876254862415538597360584661053106168167145274244208486127870768791452015708577335505389796408379231602327403273097078101483590376456930505560953288963502139188303699849342805732908072951355106759737685444203659784495653030462942287435699802221399112050977634472885778782750378885716525303284493347917108942971303924882186195180414279888339089702862364224974961384480210926761692416449846661572512898625351641312929262846710096086902298684754755547434162785718444337485906158230474747230319061823382285751943920872852602112654347173739764187198670053644006821005358290924779473228924553311223155126528195387703664993259416392487159833234811972149435123558601364473085916868607129577435680856891041598317684675651680641947586407906393230952825540331835839559532183671166853988654889064638806473028225854327812417041232037482707443874076279007741978895960428252564745134984583113236566585655136166329561037118118594760270604606030716885708820572904306560275212649695148098903342343973421777475266997350707157487090064307313199210241897637678295976003640380010505840554938911746800574793517589485321228857451275302764232112758699049455820942576016469078415484861204733711951727895444655483807669538080336531035473245509879103891501429061452422717306891880261340355806214950872959412876381274141929237873940061073184356777747867643141860387237615162802206523416822119091604015186464208058842001385734052742489014228272287288706012329600287672665624275309574724965413267316366428822765598118113227304854894777309526921075542158792989171954287507318214465054015475580993610207671557287875643190852236594949781902820794353621054456687871919164313240995226939320662816598030575498408739472856857587014284487254300337603895363635503716252907884952215588004543511293042704769030824267608544930379134059483544356372060385382928692252592035114931559201154280312224265354839943643943952590929061836849192483875048652642087370755531338700710300550289515694595791486336781715560177719095117402626926450665982819821374118775015028006306836668514702063196456925938126292158748300866084272107081345110436958922028287650375877919762966837674868959339106909107346142741159191345369935586511189042040435547264012643824138303800627985746662571194947018435698582537383383963891058715555942163124810692757679340407016195605082479350508308681928357090139910292985169033958166009904280209140630874140511072731226239412115785850217576773754012941131507793846993175494175427167638123481938076878550014663652118789199387306244325669382158731063536278100821031984558725093042420268428957182553260280170485824386010794573732066521638225094532397560680104623364924949304939064469418094346722948724874581732250439419504431563477762683748053106914328206347537629987356376932662253670831431850351350749636576652205171353438535581929408929605737459430095269590735930444071571144394860616444702329062329901313589594689363433750836257061998607951639946389272526864052439306396399446715384116104201201208766961051908928483850306201178469521598290616069314905018153053319893942036233455740724466289771640650622273819802644787917821921259648794228621513478884996883364626295175200202264435982819966129241100199668273520848540908980849297803513035657851005367071177394208192002379206523539834699128165396013817765399194345896726009359708884882868739195636987168417214539886789513542007842503740228457425605213164984448893669840416898557400839659891086506682972508814399789760220020843537313244633466066039775677325804857103606675577962681145385814932895607476724940051840216064591194497088208512009216408623940134470428925525391731664904217614868501509795997428626720871606401900777717988458200506674845011728095858104319243846212842278931046108009363436390178323445819776945334915120164751885532462087925835205787833610998233983096146140397784567715365753105179785267422277174626621951192809625217733609509785670910769875776643022334006029942691750796680209654016718284646892756668990662729671750255440115514602641055711777018472001921945922857851981062081102362180123477349117517216559931174901137576743254033689016258274779882235429500214303026629578728656070175561448416796385617856365559460940212130537310962130379828549517565333675536365548461262178635393249055283920207054133427916448636790420777041943118803984356935710488359503939496793703306923269455621872888529786168074921340175558161045029050390870292891055589722855802095778938694944133621209468943743682949985553711532108240241261317158754723118037392414808069838968037206710851090573537644922617085113497105418695298711412759544835641210434088403242793902550501023731430117218735455175356962775459694525998824065011088284404374946463791026866736772343245647237027595965581376297155163707986458453080874207687810221964438789433443373963630963090802015277710191853753176435379712034030657212843382050703077962749951672485122931640778386979044122658897364308088806400726247335928682191972527711570903351425462279252401101489990357050189566884655638106251359131414615965736460022737627123551912784600177028694922380975402112821939001115396230540925431293706874632883869341297213445295679825198165119179963639301608309818209530647326267668252557189048362276875904925809504560688115167890185903011922190300141503495349820544536084266105210349752693539281715443933469577962625839937081497536278688010647975315094027819542262092910893800021340139285318960346391529186649283659672695790205516670410461333645934507090053547570030004940452531826318921374992804778182776989252011456422405617932050627227864291430894018392979315818544654016655783937242625112689107497878631869233011954986520630131210966165454021513548786910123622505809794809550906772520971359554078875589911266451037127170952294411455644779398885131458441672206783118391750356866329309701254824311165015583057611069204897838410312074594411323260369611756567236427538600307473052211251802095800672320562513287764603502040830146544799450640192506292859512681468574895303456613146499682957007021977503693122992772667311751857766535492381773742644706580987232928116235213200458709374593208003907252948172439751327122957650821258272886330264939922864724988856634437694727079908218352486568047767878147742028272112915089350169941805440526552900642597482137039308339960827707942065864695083729277976761147778002102148201801471297704798757592940055562824505712067538784806377509498524210972211680562300379947829644551562022728343957135940900954387657538862818952112449034894451833133536905214726722780733463077610115032480848749929193399564331996288063692442241152938968948822352934707176505903543111166027368005032997809409046656189672844473257403198116031786570537485646843634376028356807378134109618618407419198512640198975841456330902427874898021888977832176160758430294696526255926862939122677280781617875461205689872056122694112337058759927098675235625766560461604439919291089043286896229891769653016807145841445729790258041826391204932808555946944251207450985604116498430286165800256421463299792953897138916604496799091777229372059583371581037121897841233982591617315072146764014148660341468252886434276382818305395996237754857338136824044789685020944028279498689987706752201127006974509002085416928219206613709825338992362637003234529489788537469383706082363283493921451664934497628718200148098813553412937246201599824623177779494944375199266688291922277191673960240341190411418881651868788371349843274595714733848326078667129687722943194863902379078317275370348599906733476559782088432826173003258995584607623816719624925774196014513774060588010221814083888726614854189546025894360092226685907951165535596045140874065271132410296900317660133612870057464522866801850037201880599305520270576105919402043422232418424256601950132258478122218040419395164774545245564433233546952478823831444260836094452601259205774736368449289261060284781731692743580848305530438435505477773276587434116752956755200363289876485211196106238397474596739940422172292836488734520576047505554282958741257185924932764610870394524803468875942656419156646026113356378453782046633852629357363197196149649260343611072474696839548968048903825792548115279342098335881434461318601405228431785067427649937729782153338135102980664313515837826662149612658302955176249309647617056635846418095145779805406550120055456194327220050050489027627377123104878313003006426487125030286581044342341765913246620307644529709334089272571932437374133935774989450025642482954176300942260813784225242418528150604533286262297190956148750544830416936693884457501195939172972048944487778372886860108699718645527325668231715729935362844846568930177210823684069243426668044696603086794648322868190009821285703759671870866479046350670999361150362891965364974981402774126972394824771094592192459719586113380973257851941126494121641493652076497305283805735656787276979412209196886140936731134515554827442415719415280319256243510042919454937905605826161390083073381959193980203863244911128501182138890294507989335326656532798165308690236986013036558105696965553265561539633346817423191788448163983804772501128341295393765950784716990974680344937101904820519182258222572586010198761416316404763950539701056684501763648937171203343309469100246893564076855419538537458972149082948608669434196493854530308865404281648173458803580637490972946708385443256834428133459655014927803555352773159762024683851488521039331903762206103232996732463530431072003344002151659775930306079640290246696933876077670802491950070135345633123722127202146323460382222069524498674855494315257788117539448316791943149603832464317595092170553039294261077309152637117319540480216887606504876584165960112194922576312337568853634654237761417493685992342226576814779709769265458210254805203386750952910687111415701130983616683578981599187342934046915803073651942269901898079604597788323496147398459826949027537598964149060756075207610300965915451949353309917325052163031574469313830659013708649121678810000586527525477865166136502144297287903763624300579591906375581466807364021455417159590808879547871238989705167244745251440265788619730376537548813309359792039344200856618355155699000098355979776036075614641875510752680075297086222277514561387630304903844111739869869773084440169263554426952698154600076914989098848767300979204915551227417594930834478852889793175412866734377932873361922294784808587705291808953764749582678705382521385867711835320195819521922548703191103965075021956155394908584221120992141848535432229404768547802241625406605177382662390586592748237885441277354072427199936040344032860618867082373586358396930310231941240141938680889857345085567829961281550330612201114880850288356162699536698144998610509483976093523071083180397392007359809046444269952726978071780921620094664508473218637459562830476245548831824078759122921609421662194373450507632587486518822093652962426115065234908932215695721152930205174046325433137416076768715818346387328523498482952671846465942053642491308604424177163018890559028366932850362534233926105288510137934266013582380090012718339124340786256645971602766850053579824096752764754860773613501483373285204928302735306620181522566790954807375458718295001301803169395245176445227665937563915506257506866679398860790476293870819246730417363057664217425592332486590072810184928362436845095291454904760575816391731347530602198956611851405723655522861717209236515988200919391156597608997155691324320768588537301234835775742461350179874166789346878463401664875493795804628140418121017341299658447875198627120092190321083741389535370792703158124354754826886184030604206643249107950379848504579527191388869473405778903553281093233568598394147533522034287757318415505421949341948633443674863102192712962712318587368971127756326960935509321981840779927594527294112965406289374814955223283056809900648023209893471170982732345725465722823750156503188413102460244628886045694704182562523956541249130682659758110249330372377089115405778353149826293419623479927848340921622360188143737234854551613601670211275811078257822245548478585669690026741878431792539939569526550779897378281065344523517350801648089031323924014594618253769014284986626725062521560722219656758092247527800634182455813667969299364714188814109002263656423099986965978702006499670364149866270951528124645368714801666229142484466762455017558980584340966343050149556910136435255584098171717764616141840979126473483318645054109605624404119718319159467049834988349750325376165281427681040810545792450552404514158097926438381652785427118119714809466916807154981018135386119521054479954836541906253285601058811203779893981507803295367313138205771058736381219004184336438822194315493962029890966757010102088614333792990692109878640758754175758412498575575606247224319124504656386039650919292790340761980305820373960418511742845409888202372393212344317150443740885559150679278015017182046835147839902951612474511234851974106230652575799013028236097210304938640889254055928086235689575593462062844549749173056870733472578505017443885839261106290892690018648828607753269148441804124632984752782055687822494630789462448407225144565783368461831810953508580351161296090339392662703550965645319565695943267823951889351055659754999468016784122697249700075288776898338544804572838979095728129613404732456379620508054921617875692739053784025419784920716454315900483355662352082275937331145645841861386203030834558691025814469773285859835611767840121240444288464272095889552809160153500055390932359745377207597193184499774048641848776635048299610961794741646876258232399605040937758498560422999033757449793848598540958400143193886752673048550822651642590222901058163197457651956007359782035768869691610276493252132989436530266631037750433149946865610280617999581417662567465102516142901448270995090879885332603975357802778971006137654700213182682691395504994513751814202548776790548959823416919419359474086690259300938267374464560893758102226295975243740217831997063363988063857852759202348641191869057401653508741448092025151405941382111237118321791137022617479852191516567875571030698755585835923144577826718356379760226160735000023265453699245612787155152176873814176318102586495295256161037791534167531701691450815924558419799670825278388466901041489933730722362694679072023226387031015877909193511276406916799297940737499155270273318629050589253256007243607831434274391317875887609015667264655727858943879976607098754275326430116901991527472795447889342963448922459185682825932252345289875297982140540562184534410293598482986518831039278492667437089392179593513839422188831026551637593731352588552165912519062547539592563816816909115764680477750754764299251873705069622398600507171451982587259140103415096550308149464193290021770697161646121255655184286619830810526451389540034111638121277694285690780145858653947244897303383539293995393085568368164530683665582388129539197951481693715153801951661050180631084712477937271209535575822442244807926402326402085676303853481436766680512029839878274216513055117565817741638886300392350314146328429511650638741452835597280138928094641974170300094602186014889972585352283339074696968046721139480598033233142506628568579239545293204704404690974658872989943419349209078680580254021793055334993660050020479032329197695758171282117074497118802229138384297064961221116426597596829203783108388739559191382684845811028748868088661276966111509691609646395329751325227391189433401061401666096222515779976342746026487114398521802679208234890045921967872816950718338871392693965949215497944409587403869713929540160533940180821473555479294252708295992389067625595557174548402046479847588350011494359482526514471421633835096280885755756866162669667001959981701907017776270855887043812779305606069569540123367411566765657736254949206162034711156989172130490667498069212301096943111360380060584452471835178685110398265485303171509237167854008136497016765409022389644278893426687167841990775040634134617488801139871725164108271332940021562996207147103023178614139635529697787517132629919756647490787372127759506131708001736276563364361261060067071523441812898804144920000378325632880355511699690782646987796271236724117239746725421153341306175254017342177366021898725572707888476191990978254042309586371812541509568826214058689471648525783210280227183039175027601260332091541896977879676229768836763593223759228506027836341768088554983935337826956343299788967587672719659731833456103131688435933617393024691968835588314558943721680009008228513020812831333228386377030490582755682413607429269374541610690084683740396599355158607843256142154767144058195855962473310859776105854707891289096976718333096823526759095462521098385594883726076733552572710605104945666122024118714728186687874798649018444220681908451654308199738588897308334957536506979222640562488861664579307033067618955737900392579575553974525058077837486173399178843751407870226220736525254807119721382168171101215667178899178065525410251114270470839008311134763754456836709995966933836279441078499045593582310516041019419707836000166121740354826274712820723427180130701014013251866362375769823187156713917493442698602226931011370610050886736439404245233235843835179907829358127689968251639245973292956829811694518625227195140500823298041391863957052723903057918145517855771928912935982639098717019397550591869228154364365458958676655950364968107732317723860292166757744806127048553713157890274463719496717528996363658700069403714413963448706412686353667309973361598145383732431393472847570931447495620571251389134853301821609673186972182646853979947956755632563488612249333388723569221446804757659495817927549030708186068472423755956692606992822187437367547919977743596884432501519478913803525738909252598990735133508847451131440540566548226553655031520306831944300514946925568299482273184802991694742828778267903415313038594964976336605587876993949831219696504577505964021589340992825335766821986021542226765410418448258912282473873322533588715608861408520856873537381527604164891909173543469580336861022680041297653001501000130923420071077406141123858736718445816124617994537227253423252355566267995991474910808753029317669892898066606129161101061824361349873687466664433410257948251914182690146672109817776757592316195316565606892448047102805358736474759911242639292756533030578461861172250917414474153784112525813016969389498774798098851791105859994435901952899307403566562806999961533316630836995482198543141424955375390575052311592948927639125207526833278631037953600926991051689828457233912407926078916239038932853934256807004306697176397970766344675593433827217330634406521216369822984493802107063505147128013413851004585669928101231071313764907428759096063881652935442385952441844142686571494270155256013043014945364312816301879431769659668076159332132386042511838640364144443835610750111713881273603886037181203819941688862225501374934491931361723054291450554107421676989476836885785749843018139185569489171339946848787723274380705137469896801955433910263782365407135529167957302880736224900913899805203423781725569742256477372043645502484197856611020069935694290069264220409957739889963825719416117805198635234171775588895803856875353966026916042495584040551199654564944573155775357280531172134887519259708884756042202527411337724327631546977841029852148830663331135659802204977363623993517795942951698233924714294786841807660708426799640698213537335773582444055410951129862345234460577630746106369560741342061269152809904933102394119714161069556371513932150457349549880564470915197941212577886434064593521702953424665945673955717862138525748325935331290466550122496186554519932581295319208467903976763520330320699481756894442930739174713366084491017093581444759834890794415829044843713282463536855542497281336245462283231249938287753165971183417766992526388198777173394995752219839318490945368380912634853261776507733393795901092778464988178082905462753297373338010884679207548882350009182140073166797287450211507124882242076365803212123881867514632077294680949866483311920734983605845195943915563952676699292529571021118348586020627323906118856620336530227254307876553494428175550724778325447674116490566134873130747399850504672982581394388716856852119289028439445977689487283852765009621944266532560278684255198121270741489633011069294347820801252520946479623545644281861952646793649563710275871924692993302670468368931827526313043844209881693439636816870161412978382335270591608864195567558301873977591541152313905305901926484007545353753889752937125708243583766706537856155937467303450655863962862836594484040567421154709217797476072754725843779910124995682554144302065584193746174912735437002680757113132594761753627583818591449084334517122593427362479659284633051880806996379795139988026804878865325071910773219284266447266413439922330210728820141253343184351683456517993780985543162246458540598177915659362695251121654038536614187713221224489968674227838078573034395983759786365593041838628705397546537144188205870727955451310276432603308702783803683015479751325149347382644096870487858559898219511633554160178289563245783047535676591499473079213564472411305325782547118507459790875285055686643965341270567215254260401146261685687199042133040567385366425279177662242906916504735593510912336710979968836446615047124818366445516413042063405391260701337269057678947646962726459639675269912640568155424188731869005656121052587358661393826606440129089507584451397788865057700628275135488694672170275337442752814177537518543409987507745602095813076508156897917535060571694658410665888173111615512937652338229076285077821585209196104565444137768966324235607038792477420471949428659396021720091307333744907908758176530546910478165505837323891137918450953552224694394481553463152714417857586303560057639382834242365267636070400413209163529316392842699176420571947711408915811952038882971513318531286189778810324999947221816437312089668663389466279043011880124445312194277423773774824516063925222813614063539876353647441998940414537658217813236191957748300014791922490445723628585999847642950596626314400743838045011852093821728501532425525411989634179728063317595426097062810163556833200828512791213685809338613316826551460930318587331311446565671789389111768665218874597574680451193423331844186475144827186618559917294884382970340067797102436577321983977100390676135406616193949037937106911770677951619082914432619746619493319379235926624351679413213585772089370751675155901485146651365528376200032330883113064482975052292137171582800669241520790062281995126753872238269373515362121309926376040858782883078836517119567639342951461056960557310656573931456778066905912998900650017699478739186683567483098639797685742543915188508795104165433592602752836093439082258250332242739994053946374419043401348086727134492726993804528246951974557636001392107317204715704098482891589314603377153716151808496555216236362616637696187888479333613861724907225813483076273803891213548743175618090430961955697330370927209708862726290165590441373889021706558991610692215243696160474504005956921338114411316557445269642623839821907926176173480196726212245534944360375299672992133588342736049282664051847078223020373955592220578087971729936531362313078595902847951913982164389736994700807507697173001334615246332896802728154997221172493661282349096239528984689304894477050030730532325864857203591655541164730472092527049542278169506907627290274596884769748704191724974608810262657429276983126685033751874004209711197525640457658262377064177501539863861998075086101348830816440538852320459064463608106449196039341967989210123322881092421822933264199420571115499418267373507704795972366832465931383177450241511612646543237045621104350542624562819887030895822051953395100082896434773675876936446979262449969005085071444042229964832364709510772574322119383119411774080452227664407987251258421550331871812828495425454004948461785016666632326443162222641374863620540663171440415622245854631642653234631310514278418073600638300998325891017729390420134961823016027344309772722315528822635860555610053045527558993745554869584335375513136492181840929020564080720671918765892372377050923504284085518650577750271168400600281005915642851207783520139678394536090493036435394259737608015536558884682361851352916609318243134107079743900128144216213475252418765764437085330171577524063265228928074265439869055479778616040338525265011119976721831417728073082215222386052811029667587513128020740571189831868445877031964434907542074838378238272239942420783984017247118190907323310917637212715095423905450290282957281958481727888812407334537872311842417272176302505662497616887542633804231870396710602712257755416049254811431392212647082270788884630534237797229293474142491934629937561991561510504623628107902498224171135514555814531364367351597831414377448674723397123611981053570545034320074244201698607410382459367542172607393347457454954738806856707986184268743324527084005266790340630125795628742820393429182249993020307519306991741648046193903624176037880815299004185371999814488042141367308081560047260171181141704215320707628254539713568542657319635631668097749680764350453525613201087346244917747506832053098327491386106884726617974157404354901254326091918380732071788995725948932258756967792712933943712970837338243756592790782137670856002398004742794338716285188955512172625311978427546006259156418041399611995416204899474623340224083784749981255313593584349283381908103236024464682684030601616897471634343596278947761983853028263879626022666829541247895935833996394180975198056539497148038700010578805170245374226818239232649235211379636634931756441164487842711188419664114115598789075657608599118952068601966979440663348828493468509195760434612236062587865814099346426212685671665186298338631144286170583166123887279566865156715096733833099066980098257264150240391753937132393471926224922475246677103649078863187428569658475109309220414723349959960050673077153863057079012115672024187652312853607889247491530637808148232767885893245331073908774289723338064857834704179997280623723832231506451519271432226712811088890906975798679106793065946310346618044668005479303384364606173187657890607997981755366426582507062644758240499163402004552083704921606131765628228265298540844829133238910605285759276171071878945928832047559509695526413633248663242382690827628677278534547634221134203225805197668656841598826251282190889277742386880169069224458124374380889396558651807162937347160556004683740222529957420285458244034475810662187312727624606250402326976319209372406786085142505377891480610456637152581212067503649269263121343390974763273287518384707082651518985093156779151315875240710905647989639497511194481648289240142938956751117774689965047022789484259430334343456197132801455150884560783427782746472493741444061107144137174515135291216150548446830351093137371246117339363937235434393741611651447457801836666574557968337003857908570561512305275561764640138969744114151721171661616249330954122578219163161580704008182120110605307454247344180500471735992882239120553872715390633089321625091071301483743424756394364589517690599629694217809682829665369423866997294853736604054078047907692200514420555336764378400401664946219754394907065559343263119880553245474284727822293153689342774767840887433994785757357621652018384065565598567760967252469564479345437664181460645747213295136176535553346178614243822804640160887208604636135744392522448544244864306484107992788398348707226105903940206503942577289812694633877420632538129679418805861204369412061451668061663650074559336497646276964789408489147254191986261353586852826652132809825754193237891386593555153590694776020742919511676810010652533113501596460515681412488062074832631236144906753567212334195727351434707137506746049459314356489030833388844891833561673508438133242437167671807599178119446109741185920188358075963367225232641743247536834985933888813891308042243229657948782267857496998543132015498609126500605464829156524132160203789619256269517731738812466357761878767989833939364882544243284292260935648785034535781328464663494214377355007027965203294581840359131614006779453850857655809233189125848368535422727302152342207675286754921948859334291026796475905048249754042381137272773835134898609695287043023686272089998442070163245228773522685176369615516243128136569852538858243458748952765653427966321895980412966529519341604963913438806819739242599625766324926666942334755237858850252732888114304386777907583090973072432871162425423951569004176396942960562507064047429328040631054448374634345599215648101761234229660073381008677652727228791552768855846424373485335996943723562330280255205327466580740787929831002737692756035523298838099820160523095680257993719467137395133589834531301241573453497678758961193436096596111857064960869930587789920868623386830556081516864624838825180813764236469157483621124171915979116758484438061764710348981787250022750858787929515209909214208497941351139590684512217587707113093864117284449903113365311682054591115014393402247812051118454908431609338507554949357576780994218090145482797719759181680522340515708512207841387091234684366675829425680349662320150166704613609126806287375466749987406679311229222738317084423960408938943978820329477702915669077015458989444123523073239534451568722840424233965714877211295028923232617443034018012298652065932354562660603989079809868821940076061764292186961981687247009857823937845945506956140270340958362502101758093724092047032069475818759481670140324137082044948613303253005247692710293929154903143831805352860314268800440711521671479451284450193046502363358501356263787088269430742371634499334958543585303729720400298445246234365969203527252411348053761627324784395683891066882972971110279990944579671801932165831212293516260131900686368005984863317190850986876545493036098340201051097757538175528653172159566104858269005187922917400901562861436017525863243692042457293184219872661485412576100619787970536493965709696002393288991015249911576832765020893280359022497643516505827375666490223301321588803342389882289321133201402304919902494149992378103317804172098439545379657407453776580032808738206709162247319915760819578362416945524488404088050973280178535291887339822092974201243515936539853048286648699622737731130826110110004853435485056254041402202386379570966515826556176490681932912013366023834454817444325156369885452194139054139316070249216243505102461149071055415752739468625338486369488843029804294177713406859573100198149019023573013348979254875500180513614558577927631518074924185684922143116166559132855784786764419754098735622969773500765419027485363460973671250689053564876461482850074843449905130900186542748812489270825233064225293670250468285793935777161666716789552292300945255483241339661561762864572866067593023152042677741931246263285011284407384036950028389955015094665324467505285964634367500379491240695596783177207603407440717078442046121433951004147706501054097850535017178593430113877127959741012173278096663999084239550891293549445264964698157927619997004879202031165123961757939836281133959234813646369733250864456859601688686182769785930982317240932306523434932442218399505960164186788706621639396120034432242073101266048815406119750871989157785970721494269031420396195782826946453956214687444516281421843879427065075956661931757720991234895012007385595871479192212572216222584192208828302895175500852782910979929253790388942572398168820288368659977670951230951572993504560578504435323234296553043159744586330116860652961639686133656732307321989935353724747531356622474014685673802811391069324272060092504140688012888420293395355712750992295691594922592336791140395974519231171557716451311088778494146294991836119827415788348177613698404036539926845587439538821670756462810609564975431380519147389084323709974729611521164290347217336476463272196271227063405104706352816053294999407448969570394458036653085045707236627963023497807312843848530179099329377558797335303357002122273627858156563384772182687508975419204884715963115905366736930691518480215534046116328200812969729793719340161133012354449838282365336951016357878018115641603838584751788979886617220996243877187784176190390735745563230324728219856247935095052683480257776610622737982714284621563445251816374155075184992385732222435065368892100067147872350608678408019010481709225117286211569769619914456123948465825375669115344694300036533741971942142769649872437566852499483332926525777122375046424602239400007834648894045902366961772006952725382838937437198201913336384026531169992042662354422806820120685950049590726894357231019496930503992078664214234327484444958377237034752544472814542187460911578184799304672311183114401520693152321073943171133837918818432848347374802945991751959826392682973742017991219127099818188286762783973564275233980062483294360328071340556647563853350227265084560265351260657284375466320011070717322818823263157264683738506796980122037353359921861501737305958770625560073563356496122674814646378019544663365238831137553286570727945075533186323771877578704372119094774017135352376338396773922307467825161525739696332941334082441371944251101190655907792313532684357593342806343434605832432262706228828617007358857491190014219857167716126178252268357282171234986850460567218458615540864198806342348674306303219575011677715534184353514310935845990061315084781932438007204762982065671723294157327392814182771843429109911647786690952969790126511947194933201681703409218497429380460947360381881567171816994882497715513573297895091323087878328334902580023815579073861530092830783261914529438952872901208245971318864543636799892660835220378165587001553271568645601761470646024936791638573838612379700669026237610815519325316932242452210511209477218418525674649416420154643717093983084819793590623184401234959021953398095973082064872947029234863052184464057259884698347331951797279376006958036364028164928240772048456186762822482083073154561513576291852100266367646391573688180699899621392082404554794727854073729478998694557062727311543357860117133440545786688088245247709182455702706384253928806187275880506428021067512662470888428648366234080677477439858907762756435345251060149357833131788037734460415942731797766910006822163159068016241113038120479547613910293866490425235967344658087899054991351970110222817391192614522240419491599333096311014963705254062853966079324436845567321191643682401040912885146992857251487856769029235361759086570639437516671980015708988380165175002975414293221464311405071383933430520645418436073226022200161909684743700753274120055368648593960636629359225896758276817138160082683903083350864400223659070655695809283445937015341880953823506426145289737611956875306014796191838793493957218908369389957542733613126312174709179428037286969196158561303903261450556962167878431932682865358233173422182265750598787529660621148519877835956685814069748041306563578951492519551785983020489953170701277679660237059023947435180168388683966688737648746610385170207202147986476153869423299345760745041620032999463393504029658676512221051970178798846974165168734946018771540428226433019530426229206167886667788522827160047402555437689663403778856268278910334073521960789394209477755926110995422462095168161917671424801977568451789766471898599161605163319817401672600249532184135288723033280613997129012014134598679218469548464957761839852828816716088933652610285308372664187662684480375369270585390602510581080075563507613493724453036527287431323578934556134874173777529706453323385268823209900332486989029523999321565256591193909028762599385508464560262544508798672192675603617515281921129731246974185208619467591181064783770973045466991379558723030801637708970796060525493151828614983216600015174012676898289189752716565329471274274309725307879897227934992040797948404962127315210738174814663498930995618457453673156124066094408936695850962135624758482816455780644791098830141422223739475951518288925949892554738326176805996021641098211715951418810631347322832678536818123215229578246331979417824794535316742955408447364132867809251790688685389151626838373532601060648269058904574877975880442365080992497512692258228561342385568909563049316829645932003330244300161926150459670246633112376389001915397560552977226738854311622686488108401792710786848842828993868770259283139579958921609452080290465055729407227795844023742608479662696152182453815845790791287233529210789924721703781531605197455985570122604943186074427210686052133477448352348195048876886239769368583095632900161993813320047466073007248143376289314234514813111193624763390963926415951270072544377068403081940123477725244387500340810907498284873725650343430293408233499087901552755036498459433936674631663899436801363857490849871695631836073644849216824775135484767057188495622483812980798035329468550316641622490349416129285200265228000654709692143425031078455216449110324187356130427018631544349204891442323415420663747665894724184514387561670457041514505869905890013009333602321772859760354630281444790479083767171086637948092733682560256759961081813769739927912055264938369679273565492054444219690369232021551272195200529494280234223992908536615623204464962334491090991724452167022514602701253660012027395813490071188864929733811332641287880850214612794680109117482696380605021645778913148043612673846401913326492744382918930747758425592759969188842193041762972392410892987952937503318179793977641365003786416701615750197185498226867369667456446760161428899284025827866578067642454348321476877300573167043579890763331388277953458189998151131984265902040281617993784096754242010572265198979189334077934919079642460533809327409522234623296718103344622227498547995620974307409941654229598788028647749471921834594585932688789709878316176664307308353584710882661845153556212736915002438112149122485960544477619151147751107665896630953626272915405452242248363176650607001973385398213389513577523003106213314726446603126643885140552142596117525624717612923690208825118949454706021677442623863069972527398001422504387448841287199721084140470755010774255050903984515771894773681261041724897422914796909735321717444947265060617902028655145668678693623419195346668032284986546383013493906664811368564014950175773699850798053151799772801237786392419001431306830381935648423677704005790381886573189942794074906380402520564866382345021001309875202167402081930041614022770684743227825475415807642901480897693390226747449450721463936802698962535057427864373089286833005035270370344534973825355950135879320624774442784999076776184519306318305983199583239977772336510868430850406714457592237843092800595571712300973301503653726943337814419595804191653420495460992079543020047630035108448860999718553812416568572416949782915814351340590369532035483373803157018062388694110590300376537845807042876960559094967493944988478430553612175611795453167460385858352958944568836104550187426372387271859005772302629383388685456461386904917399718569851692236437094423964679095448553393893588442402348258212180452495779986623015926885339568404080456264318425040047196392725410045520279947538760760868120786261541942734702490380207148948636174243056094993217646548540002874708462620640290674223944167825544536053212535757026482040655866501370115829709586985582806264404434324892415521394837639394511379730572302143198622959929942649106260333029607825890205373972383853507726311902646498211369021276004206992627493153790692827440694732238247739677808409494943974323214474609371069397042927160936998236142122905360395737028966672390120791898867835086286972134346192332729452075514296917610673752527281682022710125582937295878755122918743216232915278642369554729136630913151262969733029089950309918959367319996726384565663143215267513544069177197827843013401120420439123853722526770321473241985516135387708932763413700804238882775405476939455715267543755612984530736668242468797231106108005517452834175981779976197793993467130717328943358529459164100663372537638921966135694501843318790867213616856882977339545536599046822897652462396544419362765778742175793477905268536421194966922352178571197585847098127681094642321560046596608281291393805849553271987768084986603867129560082394846301505115624644399582749676350677329234157184890578429870603512015487056031201526613023511645010405025861750256127335827425329187122919426471437799410864867815970563442384783498684201462573228879246210130407874604386201886843721679428734645093475918140637690496014642268138560344288144051275015357320556175013947444861742394184490508531986879894759410167861764760228630771576392297092561827845142124596263533770226453047265518255654792843114436144154250739856120238650984890177911736691004051994012584994757115926558071244389376733657601165346480291720535517588367848547616765183288097593738549027889744163974619560058306145423390345038190990461492636439721163519179271901182021839356517134941377130574882394692049535031283460317027341854638404683537988969114058481239894548451650472324303437056055135086486396947179960237450851142286801023500895553305738853412487401714240976869172715962239799019800613882244322139759305620698236950226331478187131872620810048663716763386269979517922367074120060608840664062938063698543759824596342339441085210753138608717257455630159397292556504483660656830657136601254303939334534610454933619814685218761842272582704729283300571700776979850174074033701854392581083840781185717082847540638333905313249660287500136220756501550665521020896321482373761510140234216998694133217141452629187120372236392755952408835287113234659583648979329417986428145884620203117101169618430168327528576665093603449783890589032248368565490035221559902994554337130918045007244962436739908818267246870361091191679548672965279148312873285351268868978297616053696956122848185212267392911575510341197218827036721075142089214188676416927849510476397711917293628447542985066109216717222688609265762661416970395237959715355120202147095961960290763540502771667395230366038823636339358465732590360138589030516728661673097141042129331967375948678089708577344691170742891746802692306849571299510035822870354188938220976794093649600595445526313112343793263249170630385581965098168606031444043916793177291106347064470367729458967867391394491002004955816004473497458189363686221444789424693040390101939323772013064629268265693639236124673028414916286744395007867827551695878726464772145076295169158605767130834029911053038170509942874996352582066205753092825268068803109848664236015022565849186674780227223073673780439696413718248474268690784045651153241232970971435047444488678207575531192005722422605950417260102970705284199375317310407125757782993050385961899037481499855276905098152233680726991246803145033816928047961700331099465922155962630825842570970062130776178277379992986897578621040835938330976876630024739177541577865763940215222330160499301146662118984747222980455670974654251679666907492965864322321665936668348612165333248174821320780652731692100589080082063368131962213192742007136208896664362037251864512672145347998435441939374129198457599670205113424849768113763745001465908587823214585248041998055971037909994952766828390883187262711870453387424828166618394415107639753384285650741069404689788632009761454796562864155675936707722224101845876096962649600191611261329031130896470064099361872437560863643089049184328553974050244726582957553140427990637834458446350509157669242802938552067629886121128660089963814329646444244342931694469642539293827613527694409584422088044992545866123859847092961164720165767956997020911185581259772288859728190251515558070354109571965705609513992439593104566556346591138324179582269837484263937305932850493291903654579219523048250167499815988721777106905554347665646576978948730003494202686589243921377193296853743514926787962906013894629799371175986498559744041598759124850992388096216203857268656682237359240083103085392382226407653014644672764515627825504920811448165285558791995895550854940097255420583838909412237198905387165297244905307685514015689760196034977492142538214486292127242101025922771005423519984253419157402109981291802219222666393590952455769665369179600020139867415989562315450229505579347008566042902003633893360137978230753991835081617371354980101630224886184868084527556325212869380367654130567367133219688006624581814631849534291428965192690470262336973856346917314579232884541172323512109959825512436845188906515497690706473890762541980506610930125401732302298717973838249806178146434959058965166929067547195370716113002490293789025912406612577935875684181156902945786481181570581892377918947584699299776055490470631405757368441355826322921217079345219485798912572242992718498722413104145972586359634412352239602839180468253379082290593746623041807352199915489267780470884555291435272600368478033940026829788737204441135491184587160342318121697204740001919477869728130176955778045099568030476643843602842790603464273499335398099704637723516026264133481083594130536233633736372104396217573367587383348604358876231751825779349571801135201494817672028087849573385516286899187884922321874465042628853370394577980382233816105192361102028742647238874072044679565903653239999182242449289201322626866406457829952245663332407458789907301536637603772493811830601835857703319074084301518783700835271099311246999122645591870270513400169280040890207323065054921254185674431466190103599614435226410086073898218680193936678309405274352229060343133665229370477182811064652939096290545293335649614938552898436261100388958063582604217740762157117458456209873022808915939341253618838211942006316132679710090365496502345517989918646482494938539217389069493492375648041210271204778464108885502068482795132778926644737591146679902516033138675052000341937823727299836519062761506832085565439723207662903575085734257588106287167835591243618338593191941198529636842119412395359795386542120607577159745038727178656628455663367114396462862332164371756207692403399389799256824827455199761823405576217715350238379096924766745214933708638668887166169252977533145862958891521997410259511159327244857270811520087194021473999804789599439347880476753956542169064817056861440835879337505439673867522778846697874881134314726517586055797414497104189179228684197118545196838922808186495057316491703518410340184162919501238138190000471495272815917902711156434911488665174004805489324980996746277035488054545787657439336936804434927897389170367360497202763888938979788272703174128934718750506948896811554713040549708620716243323078145568489060453551435533465060710310084233174697399425629959853088022035111250214608311614416202619930520810779118749137534280326166299528547732482959038017928138536208437336868231754725149444059349588444497906675299518929052002509311903378671522841500331191524261314046896549260503116455246274435365743095333974299695508116510980744303803395462684315464320717611855051705858095670311061101387482920767029302718793698987689353346999559514044435993775009240481155805381605609733337027116220653135700719485458583726760361733478187179211687202451001186221253778867865754704481012922313174955620915298354802568337265216361955518091111756559946175497925536053613654119416129424711138197338682281358200537901879612929745806633758178876862871517814965326254788585261394863436579167589450409045104461059868748212824503195499469741880309878539624566202632974537808928894109656482849987042432219809711137281458292675301318959694536953044261571638803786832776490276635765952430911101696274667454613739170875926182689740792188015696060309988034801054009359370449510578042100988625310554074871444411987285577180126506499787435354461293324376534214457851171723970474788133805530671425775777315377059989058892469301002540205000615182908742744172530724830654023034079073834758415408013918585260044192081781692201039219895164713606992270012036679150558553809325539726223244808422646276233401601685533219123807990337366658018219337690744171767840207835042878881163411028327098544559958720371920488411822679417012212600217651960226488668928906327717141467222670016834687984088225560117271702381273086922817968156200875624577178513947173447670452327276155624282126220596724237364614769631479646765646752242519925345246802351665156643286973801338080924548019587972838604569298518053243842124204800139875069581596800594055642669936237342692169276520035780598616857585668070348576167062407544051498505108069600272853799521732157307410811782951304936459781279108658950552175273387779832859238574004195544507482865418495119314720422928707572376053690223329746689041180810600751228204633149220985129801149327377871289568387871870144506448860263200774921948225091843416791365816885228834549651241272595417499576811969339936176366516644962925441115128812169490837474145504788499265336430638383664787340809829832986712466834986156012226805285123731223786908559610817759846924066950652462666534281072072934943314361675360020138518490554215448823022303488159022042322118354700459295457125288042622666863307834595897179316111088300495870467984433545840133728712749404114282489616826411133856572144268837895713100224709672532500480353689970415192132235145638135420157668509568798200933202762669475658530376758143934155502774110438892816550359092269883360351776550187319893487103100408393068219014577286832041053562158335743611512781102368021237229363707836211477560843308131215420957938957249031651113209783343316387891190043741926952455522313248264885220447050430875365094242239472757635557013266863555138726004226086556336212900033922551074113368725328805530800001570736159901405519842115544484036480286358478400186411493240951243369951268808904550377601519874795811957512086591056414510478093596131345954702739101124879191169881960861349481759667377203173595575423865182408252151792834033572191515795889787825243208920154820587767955101608213027686878741877772593521918369912820680139191099734089274758965855656336978548521667665382134879188116511286137064105552604868521298061931309939855881238304280367485611754212913997191259992104562047176723251327475578316057291385628472859600480087184420082095507658931557247298893376807617912563423928396812838299213860195067671436945946405293411179513668394243875105122057654508937752798557542782374048611559986065454689863103791483823131044120358705756768571899163154795808066421232057288316189260386511759570288006129343853351274291609683469107189269098442740710919130581887488957647477608391125885012939802046331173913579688805602668927659313739770683662483645648068170471667176859081073131553918684249239042370165245181778289824485287373612158122830882530914918478338610472721093016173745005488373124250338410298772618555362887075601073369777599110413557745451950432205431246879825508753977198258347382861647109889426773527205142594341306180404850036488193344584800621428329643357393772999217044574408046964134169873341702720904750356373710566672061414882915866848571400737100608624897108014829843343644437328347537938138034202816573718879602531740832355254219688646388792846495215736989173072505068449507231127620019601412148338374147416001834860535527595734089424470074631573749408404818911933105294914125168895895002474216177706737672847562528057820044408099646522123918663274261252782902114074960042780335238520589487476580561967052354632978612058398678996966384250251926666727495598002124248103915288101716676832507172477222493801004125875922176870922713671363633487964848290425860407163377506973179456698624489343476258626816131379640453955387165202755705777276694360929945854559642180125249314651152402770800280278595107666366446969731854101697286309159730594804462887460884729857942435281230837239864459393423338250982503149837613155688471277896240640668635212111836796247305117839651130613705590243465761620418071340319841051267674943330868380389291744714853174869488643535746913571561799847225710998011432334722460361176678204297835239714371420341264426189313469517997646898215555409168741844374047867114296329438100241646884047802891550902029941351600496500023871077680776020801998446118027390182065847216070220885531166935232830975234699602164981805697992921233658327325469516957801823911375789272636875576047457463457465124597902121547436350766084697204807498945906612788401064824446021523575686323267279859084474171929865861330979165135364860185972320011014295816125745270605471920651600879082404592874897483867984492968464345636697900277341131015421267047317755295232169859845365411952436484059074783800115495133058288910102368330687760452666516945788518661328282163395547078831972751665901518067832955682531131535309630210406353934208831435211406249607356793635120702185892707699514375067032829057340527548494776296831740635478224694318985288333927533307883399144934658041754449232736974557999391663714971442055801565704134233699006135804276234766268464171955759926579850550082273120968384299554660490454425686415938874101251135730296723986174039882946373710676013343469460073878534026094305087431547896716505465160877843863267975952272870963478544849494953884833176828332488497086408198485568490286989366985821449374010870181350922455500225860337951255157400245144699412244776814652614065393077014562368154640581915829717839094670127383246022363940738821556335550114100852737609609813956075409221626997820290300093773285610818116882757417922890430721824153601607126967049569048895265634211787416042525236197970964103439724889437129487854435337651814441384145427164427157005659248028554107353434012650989227170582877892581620638876954599635166733144298215426955711043711521078589091346306052940294972481031132818867851231377376141458363234133197435456953391855404966794877865261199412499100966964214827586317635324565793783243714401026271655201783510842506772335878326830805161626805395918844799018510405584410918317259177455874034355375423362431198820867978781710177020370260012928609397263500649271632769176852402579444358084948088653305665358909652824593601604488696663591232249949603267029404467134650573794854525678272025049425433958843073200011461867924934152862050696392311325164080764019778516730319078812732910483142101073768906721467010996661272298468586827402492783851354079333421467815978143966856426410561278344546313956103792052636522511094196382714840879147580240293508212113738662251811424493032086406780346966037070223245244660060944299230925455032834120045288579664361083436288912147935377464424073351476553424924646285821930133919837436949140218206089427843254140214454425763772396822658543438485227553214954838871024215975326761388864305139150010000189928893952797787244641943128513937479546927245957360896016113010279629222009308821525115132007884335497866439428807753905176435004102344601141256041855575467968940835617968749983096597832581810541178612560556402289695033713212015930163819112692956380690256277029141879920674470814907637067853073420233110613849109952630847922396357523272239085220086876199856735349151677831090521385898948982796839296487386481014259348639499625746468604004796792943948958799696115162635679557395413646067304154463690819355455677316325686133328433275606970780798969131905571548477635071304873993017215166044162473898699978312960451749345480170791520650314706545477957268660439109349889832805986599949765310591465761669932584577395631493736429532633497947212709381171498883134080921638844585777036673358826725964270632148527724294293860472181988445224907102676344330870791776012336230151342343368074119430763666644847227264733488529172766095969770676891819920759176968205340935050496264765950680274285507696056577835992174598169405177000142746008554036170758483607684177676744693603388653403757223478479672813657334833056329299620978804775609604616156073491567131824765305174219531310404793571685347471900450131026237612408552204226083866418636464720827137384293911308963357472024639647083496627875148678593824857807148524400859244654412385935997380743822325283461873118688419194185665060250750681844790938853977030996017071087788603711408283423128717665736887222359223749609174355772590016095590745909869732737470924171031602543328707309606318244828034066825927463227475954649739921260954822443981269254750669777047051780358221732344941963533370041064985547192422028282261656234358012580494017542685324420737087456417012025050728827228195370411960272071529742183461060546867693031730028569176075800001569696719637984334515495451461178710995648447845916933453654654073727443769515593396160799969268984853397569353524928273966232178231676899299903329571519609294932302890470526564125156816143144161607815347237494369488416830554688255936901832996137779321078487984283475961288431362887225044086477652532591456760176542029798702489702057190995058436835532606428312245547930455292275422922761479882052181755638870776369033330030026414819339740300072559671126671985211018677489141349849820180660184323633818841363359992809608604781404009531923776662063647895863179536841761284557505974998479781566097953565589596563828984749466790018201563638643159447715304230962465330596137393690572896056922327080120788797601338181883937318153940335158044647534498198637244321282306346173556659314360338212764536520728443293070897584096465542886983327059249772866617816887085271673759497696070085144363510381417771947454875890769630300248085999428419896646621865543248058553404317287055251279918183852533784345446680834774604207064330876359116217292526524662267916840093803024756386710394689739115148377531971043481706468427894685667536540915312932877351103034156545058936467266990325369263830215529057094997695763752257480210672484418648092730053878301422486707951747246147912669536521406168647756762048380338565695126451378823730034004375808532851665662861076961577910405605436315165648585514920932110665288031436998745879280137467206736094869854997279335623398507897865382308050900863533395220672411978062772348866889047411583102847570404643233241203668977752216600580846247922932443221530383235402544906963917427125673790851635676694071095028796599066359621416540077065138114488908103921833069328067095042011077510524912494686712242905655432169142137134456493042836688843287455011409172895300593491644946393632601214372850126839483267934596930492484731721033327425101995730907486752090925775122212574366661179358674568066031644331694547977859302008076946190790527989427508349333441498806204311982607569361382681304388913786310908626230103467414972055700504368195054970332813371714628613346766439629111840109517222650432297852184799635059953373663493820968600865440822434458943004102594737967735381775935697063333051373138603235231432528923428629627240011873809361406583374455157422245977583533536373317967370750467069975686072689119442329066128264057844775550171763834399403028795038987479003731905304771968170310381647746863317410988545028630301575944460695811416120357816326476787090642769340311501081328329619718334376075932925518376341502992709738887694498892599667316473845452979184891550713790047281256167959628603581388803946861914792469288168562911749795239658624993918917129029514866554867663793100740639364219839627225372438377589707414021598186930913030291456124009973628454700293867925431852446886703579685309646373048553924881271115699344462471964585870341539505804185330076681144330559406664535313249029841610230430945446979532116387018318188617547304431956543752243684444357774152113307064317848542378304440321105973621994232608982770710448028376800757309441209659300251651491720659837839784936045125024900009363985227130253701100556558847818937260268615266554692704335507846574790133730337943541570582996367537104907117000696308911829939068340598412642200427780603054073403857951602821671582241222206370601057770338095946690147167434267804919085874085556312533474626236399224205433008772005735192653092382045231101089201525451590286684473594669064019832656027952947285696629514919777048028500702470630897106994077493150565675688917502929048499806782563955291423427837520046443934140177794450983646134825319799352833171605929791172848270488202523110975361570316350300295712321016372058104049729572560414323876338591633778884277614377932866271423107192087202385771570371027952665375466935017615711714819256361081475932922106044975974735409626208057146506296646334655272276269291934781557612179245249224864413812673584211850986399921434354072818359332544767588279094658199827877289812012132380267153641562691637529380305664129600518649986174533490708408382352230239450821807500996439037193063538725681658524787652898098392783775869254389396010333014355037593227359382240801127831394508560900987038811942563563103064608501609044704775554322064689381397866876895977086267307565307068151730316073941046431347865074680933283000485905756633962268832868459676290118726872096538901398801871397608514923360899137177867346298470640169762928464250810592608309806403014439126389889610515066600145457719557552945409806524465707028036274258097701625355113733006088852832184545010735339778543504377332045691555564868282744645211147234972075747748326205858387015303598683379914081216777441181956601805910293498958139540237559569752600763948811072595617274339617144544720802061449225886512573237456024651092608402861333182071426775561951782149915991142908011691810361183744283740690560871659884279505835110501993341259425561074625475886992869500344322258475037844173960617559614580451222919798535914314951816939938184598343455587899222748798072857100912649524620720588459728573900409455554223680929975753063944982842817727283637410168843486074126889348377224938337287483480032402019494931750286953528295887883560600140125501805624485514785812543884187336327434980667038268742991720937592741589903402400114390576914505125617548823014895915928043434685690852560547908447011781770720695201885034262258350806895365888798035578678807128229276301427455354634258698799218193857173096992123738522548271304738464433422561627494880331974599171404261766517067507790787489566960154302242033393935163359917217105345161563178476452906705922157892786203552719302494324520725070903837164789042143709252692844580611616679510107416507125877368748135122641999871007776052373247506926144147364139315619309200928746683065801585302827294991094786517394347835009381157912137602097720208016559979076499927543746226363463448432450885496538149158046180858980726493259414150208381293093050119457160110470446054978556511681667218635382552583914723558476723894128555809641250767300664972331722686353479298859553338234213698678942005857218930368782069083972590141144138017186855304588543848487999024850560563250892544476796616699011858405135923784796367013901536440293934766543748600089777188311037299224486582841304471854072605894962798191584326803875597925504856134327938585603110590649773344527383329463016295545676352026639247379864904938641144483082038597847264314677969087166798988827461819868868780370816678627654713782106961605938403944653891393900282137249801769979079909622753780940968327376654049945824651887314503811837394930541079102506135040030133849185386345830189826757689603367172841169955231932321206821738671218224977147284788393585912557131573781838457574999642888142858346638004003736950708601628159465120083882464277853730137807466284441579080164877149318896799399359094947737536743117165469330372762431801034990344749954335743326216209399147652988085515532339073128980600354336633679498587629461810196107221358127722708181622305290723551143156798528363202946597429826844896436666516221918478702687870143367428842204897853330804477539171356411807975590091889367666528177462448944525362837210139799497577664628766126212878457682132759930337632344761829386125842379546820786462651196757916064960284556485053190825121777231128246500435196606484179972080759333673843973154589381498814456573905399912773661191456640535297985949478873913943047132097072320718071685168081662364825317244224479528600493016238930196935958692610758874896182073506730652719944141232422026544005857152267538438121490120292672640818788095298146324707231624172269131086747680916552983987698569289519488250027817717705126048358474094633156345953240258748670323800616554389135348415107424074019397664096104926783099294402214917907284698841949717595368408462276638267268356474937488034661396448838534037285089842147104428042119511199650059980002015920319799399591320162265987950933588516793734434022859167483449114659983158962644109398947130836385744710895734854508378144556356616856994268014523655727418424495461105976946880641789151010325902564243777661974587952807893755039347263834461266188045649934563128603296304004491635520679727481021881654180646149805216381899496787720318256297528737921907079523182989035007546209440803364161860486604187592920317607186260975302378347323749323302572452882054934860157437907539429730832103052627803853378464816831498270803106867659793440009159806290607789350006076711912289614835952621015978861580476949224107877441605047166360939586165560863100718742117304147946735609736594968148495371012573482838831849147818404268695938266494464792684094350653238228962828746616137653661905977605204970898703242042504173027600164275404660685886239093038117720804137982157366601000649042478954422339974271046276275870729789734586124467865807425151126676214820837114823135989881766833698028200458179573265520665322343311734856292064075450367274816849945891262859226375595043362460882795686344968902277747242016422585251136070719525376199548349390755019466403234140060947111055357961122075165609755200327701540898919448195889308256592933898073757944814741403384637959760281077516445171883674131097017344018431278722501029528061352127973655105428838254978788193246076376892122465279791373373285042387008096649052099897784647405289804101962096424226747017828267871607829494558301119209030543132901741494604648132431628861784035949146075235941937007595464463652228978680318217524765306234407684892665823239454699097392665814647899812304779579506796739917208802555856806610183410474100989724916436979040423571740297271406660326284539123664989901196464471686827296769468931132684731462123901978576889856285338349765333026215182441310739012637407728915112620314716041093111129322275161604477874788423482803257164779596224845531702614220152750356891701432807281928336950559049558486560958520454297049541326809658632775248531245563466161607966158237741639232260934820268322379971962805007430700750241356724844963082954822861024705952314184630434426422318658365304535270741040498203155646979445672391159011239994170679698014285466482734857761952330392224205288732454896085033888251866331099450086201876977247595886085592093801283558757428357378121610011291844308927491607922105824147592888210889599492679495150440005635319957240493355575555838962467234932161315217461760909134124284088273595309555770487039066855989295431903537047724663623385903033758542660713919907833356893277553326985985459509186187685206722089247356579533938027540305095584237318274114796786723664255003303736433715790637114809012455726959620026125011267796122942464052390794052742138291805024553213863694575955827930117500849129064831353526268882058507267914701960945432887491550988530531618657795944112586855238984610586536783478345644746746845894441600248410932609118698076525835318662417355440886710984247170643726905376162095987247343501534701318562669246133862623184569923185681399182765897881572533841017118717693726316744253153004775607489239581946845729383758504371116402337019696478839182725595816797228441468210091868901700632719117061396287576251784521253198235017585931169366238228076125413323173838441057879393562145707240151126335726808393202760515045669516661143922842131859476116125619211865984836448102573988785543590500044922247700848644427231024010701730536550404279898760359478829081383183133590583893082912300653611984571243625079746586949073278779094554553163675143382018278400582187614594956149113181759879852788669300306145729437375273669538292887429697113812844614402981517621270676906218621268160444823661486518973123523163207830124541556316411359918503641003760017643283580957986661942746077835750596275705689254735276609880870046615444768139840711681082865785511298737046927362965432850817824317102382096732661055564823283806732440990246232653430370029443779460401348385453557707001156730510414141512526695965777436552821642164107811926172362634751625599424270360631351941635481891572046693258170907021422226788372980514176038813256670176259578474611812232666038669813652990075188750582986614055387457213354991812797087083462774054602069119730106734288101236895580797670380272854398338575135049750434353471208324349267536574345226890658726306009985474595819802338341618425725491963759771389598410469058882415494385750588837310982943441982088126021727642586899381529706652548493319394250821104664826603700798151746550594334705775267779655061230010927880698511178179219595608562325739656415600106839848696223023101832679319070316747403374975979377028377128512332360461888759212463258600015283555018084059154277836788576092129290211056822318137686109854580003285649926812602961136429393565744913567099469435426093494035428752250564228706798007636659324770934633829800407046449867762984069991582326211219083442167595167720141954293946773136012058676114782039505642903023368846092553417065562670101570716649902486412667611318018304042840590565187291191482485272711230784773213649447621077916051750020231998571276170678335152812131310293701458069807141737808120753797982231027071462464209984476981320597578890187888835683757513605869287160348889787211353797594261615687317749245072429443376431893215930011472780274711136081473380425833783414260985606734428426668954012252604641373907340713875313598504855380373554310525146232849363473179754662205998196639662832575548358341705649643549787878914481824378454166653366617227441491459700803239276787758482194525083244204848931969948375905001176344924472153928695828853207414181334684215774740761441122314123696707375647590012794430719965858622891470636339747583746363301214401168997108359282063336687972376502494615291070157759035531711519275682102607834313336288172376450003613629440141626086406194634575233996029542766789639227348574333157492600594114369956016225573435843836684934014627531034771607396114358046665424869316395319135188717851744024971456182721896038056702572761054910736771153266937138866301521103994659056573610284403004906321243958577062465111555691853410756798699729781886602847997017116260486241021386115158825785526880567071137421542881468245982146609907127755511693924673192177007237289462767800473389243558457025035764472123715203786105221655584344876957465733529238385164443022947698900617887175972355862010849998055685046369340306964603135883911510939482446647016358224858499916568544210970063597868572711689035186496604317664416581030352675232484047786429407452553562366694315483093016904438331351562803929481599966100390033790829231455562118657743997874787788344582025741094756320075081508946407287495857198833687093319839129916720179400339486606690746619942960455306604130713240825975267314907742407562367218940954162568219088326031813665944721905521537677015532643796915308720428307498821135083536688171789096539526929398489495136877428698509488276785723900857407841478553750204845207344084529212846559777035695458053277356979005961336488081469890162051371919285677910591931270910108644261803847658569179126315352451957361335182395383033830056910706077409022142083875645986836374879115417114010530621073658133612808470672622826149562654646512432833132170068881142580486926550971381076619501515879169835892739212113283198140644658115559941244689410996343060384707973478629127620206020562546510556564229076832791286794917683203439984567556371675163160400971773367895587330539973902524204421687079340352826148225020964200985884603855944448503966767990890608880759101129904172152858609374844566381747129575926618300514183464738152780112232415032770402800250456572329134182517022035479705900709298418519756204199759113138519726846231667537545559477905451701137417271847002686469157192460518013998021377599060833062626361770524385459546545238138728973306197643262940286480883094360076726455721603823684063527378728386642308488089252688500609574678012197147579630902592103863927622591783389696618758937268378307339192554396682753149585409473509100198696833084973083786521122248273656180574282344215668184603967412538235682420306354312992229836005366347045515946622937575112846585234990596541659926839645794884169424143962680374665050979103840505737936188691279825691010240603681564186103616440228593385246990809672629557531835921842774201952658283980840863151179728544824194992858211444807234497027612510738019627778269704942813505655438478933396289108378442225121115584749634861454516526480771704540646977362682780697698194467557533920112807984779881068371565528345419179470931006913411038376084649071942551399102579867507954967406642574689317802259985765364769490794662166923307755322156727857959177592938154814369842671697413855715547277540859959749096764006237317622928818830053436567058234955265755270997966728464959871506663774239265128658707508054465982715468979498341575249458804839693635661605455884363067779952476374576062490093313051531932936750411017435130393270465157574677604009539467403274992663874012882990425482027689216834976891169527781096439450739879811413171720852883112981105465442837849927807963997446170300906453062903982204079301813275467167991814962861291643293998532461458496357580178191447231305489849856888832681088731232377279611802415069948053769981678734491167759995344364172651146404768469537485325116813019572328811141153571776029773289752352379362865471368370564283608770721007735279343166902398568514079104940183172108579380528624295912457128534921717348104792762474763124610548017791968496430554902579809341422704039978171124242876841984266264344391518509712352141144584819041154663446141617025426754106742878682030375744748529277819564106300290913579030235899201616771700646392884402379926966146223604302015844939016239827523919170443450855987358121920414818670116818298606676611684445312041396428548550705956790818598999608718935855177629608264620213411624125236965806005121392061071749230651091164453964366350616181926718086150859356777105904434871060523412262826600763739594257795599524746237789525640702040281761475476092462702785432478200781614642861438632695710101077411169852584782689899049838954305689216032747476563923475505287549158293453595635251049510124547111871827336601051272615888589281889070755880988371922469310149855223824160757503331712606847250647483956534163537530391261338796479861113253727409354249611407356538159147716710856856623265055207061445519095836264449751653380905503945102706676961609237647588551338801908878011758510157091543420832002619473258537978071322944846884598898279546408229168858027396442134416522636459919234938612713669658923778176721303345335908395623103283175578218954738919148806469392696237543999098346818540180584536796646532078379297815447149030188784323889225358203265714912782972832430869103111836959492841776153510419785208705566712423747302067870871540685823219915000744324832446282019272103782024287905371586351102593703842858454561827609929423080520930517351812844407769508030351780409878378440181554370422352791169360077229135956565472837730467252378160750333482141778009189339099965764476559671646212958900055376213683459107391000908301988408117421565187332767645810975075227882186266095318586781696015823647756503111016452578123915148132846418290056338369119716633808657490807005083561350794660301835296883144070230053418197455851356756299088099759994757858285735083741960376044666991419833613649697566066259513218366030197217744869138288390291658173673842749629179315004442427553086677726192610110104397369923523790880908295830325739637787042681119092000295308273302475008752875481113018254658512524542038479481147977330367480775046653695096811229872497889493716690300789759412876070986714971671250104523070805079193744980528375582585485552444109832489394952638195168992702423147078260986561353454470117176845493438419907580188102914815426696474442831550482304890378174896962843014608168371642196838222075265518675296989115139600889913075605773210769226879571002188859727628754882950074727101722941074952538739483429871300377962427971013826157604372434511250491244360518213743090363430563599347655505383361985013621183999144517938371383615115019906758339088884850725164108692884007136161643025615480391354000898516346368518841438611342191797842474200266532052638597938600767317394732364189893128258736672235180298634137798672062016702263879131844605192672273446297024988704897514148594426778214035150452500217875881820092101883631954702077886184293012839220552747231241441080934784076071637876679540799130943105062427008626025111243215209347079843967878273715124964190188020502189468980095781508520440510824519769120835571605422960553285308354840871854852864464022837297845457542024749280398996479254765665120075474230746808999910205887694592049573915869361458714883634319686083203627795499822696742442747633109721549359563607000056249060958018595019450879207424703094730313029500645576351988268530219080727243206815966990290021527105323160503636978206796813827782164803738658280632140531485026325564226013306250876444866163624040475003561798137840587130733284552967539753118330569794251360144190058586146524676909493138356606908625505925952325641227908081126910419407228276685255421167578045398307497532540989823019909422282930061062307495038460835796986031269310698829694206151919448252760844443390903690012113474557667438919090072434911184687787962897412594115768970267095905447780750309926512154382574651278311706909784509016894288067049007766281276064050695382090459417395227281072121696665129046541428389429110644190189098581784333866152962473129503370864780271816256506520986197031434700044175207279423856052447513187105406897417586613742990090460592991458355123805716839329797803444476914769775945550034112301031237682291976531197615820746144236502631498627415512541660694465221176300642365544501979786587767349672884717788820962481147806252502863298293607286403257736215195559870270873860251570682047324591404391136786818425934894511275551966457065486954479603841387957182693668143959614435397146915068969620502442753053521937484210791164332804003717041698403312487221495126611513632044761984229308876320609885293504057481906018082053512588417750071167163219604680872770778268772727479787191389619076248921296299519765251152033842438033204839831842239563834652230921416739375202719136894598689025055307937270944706764742562473880481012571097435603251159188657073243343215464036629532180058371285245338516046532600586087024353309927840541450472634956456023151917357911852361497803621185455084142914008053782701237158704607837493393442887550114742611694664116603775468257819394475159255516438772049967709474549035803524123526138498133228340987995784899813055964835383977114319100560099671109850773377837259527193603149778169719672858317422303905888800152661082127159440531013403692031598177476406330347757896706277117647757947081634614335928240200738326163346124002324496379188230367023875633150447229360546939875645305064200136568143974663152434847429900562330821370406646714123470269979942526267640197409967077284241266717287013902200951128672709343053017256983953000446182273711141835586870597896496823185907740093224082462374251919316351260162925416909334744279929822960619193136923569820142191616404260742138953905565485389937208547461481457819680856435616874590547453796621475367003365083007228022005441020296279331506425714735220927845576546630721471665369667878962614262759740501256981988849101670695845634750398083763406988817837243431356240550625451801530577202741760382462835688498477339468347315084573999289742216938035766870649731117664124727790737665846557986008065697022143598613728721611550390629732167516265096672543195670304243733891905079604489609146420654386440082688720609984921599012626147188630772736833926304969940709262104255288420079588708182850956306243391082077203777738925321177730501730057554860706199177798170503923587287402728803014819585727283045466373659808861800192702605334549659032530227304834493564770523024221423838149574256532902897534547402076315263720345080119270448642882504989244663619696627354875014358613015945359575314523088826241464080787172474022388601570892907146446814387051855322982235562057887766355177003605430806511634038661178456820436585106868354974179169603365010643411438293683578510091563935915011407331861507987111346045887784288826444898958199097122452359703035129979446292474551020836220347147530207897229009698964569019726729385524903427600976982304780747750673921283844047101544360637865476332073566030423871133297741135765397286388033487446384385292570390253517387529557807493676021461819443983467395317875400438070716606507493379761964427035718372732241454934688876146582435918346306305499393456159380003912868406037142383075185091001455677935371273506624591249997939504741195449531364133054466921231674611077245742397943425932042586199115474010818661447029105439137397377684240176595115682892512612459195514929158225838827226801917790236433759887284369536644299722661953546915119353425201235989558492168911658291749947163080535814068928266783884524332081887771867564635430940591924095027864535121043681795111149064087081581701117242595638339366265287939370398237194576981193978989053179170456027227534087584694958131057182040105040327145944035482605600657596906521550360281843826223903027072591466370881989321036942568012818864774502242728732499887772448305828733449531285814898570830604575028932996970456726411709221031850832822884580352975208010297864439072350157199474362489731954398958645736424154806168596065485094922129856355372566428094264653861954215136765008864679124634743210611912357794221728444161878437022304971130085969802540825647556999443114977688500835852959116561750103134252195585626637943136518884526841433889834857943944952958102809556939011683650543582830615851988099136903711522662602862613400797840652556812551668508935029647329658993944847007402537528767368610843018923548499025619733286620340319495922318531687716602024721997915881261692980507948183077254877404669859034296149757426408209779983748082989281503967023488484506153598478641946306520280788365375125271725545542309589735602595382565292647459122697053217877677030358978631082085719576270027907280236558234147564985687469662110305047349401003223554983182892272661443612064193527100085624631455925556216441886188745653322706342634802491117209950583886620445374860961635289281432795777499542021853069173221211013576199213223556417393526771338145282490710134615551156875359345018872071849705652177744327152834645697774088334018224490259011666350324949725882648084944711874316399154759833263534739322154777178925258606347460679682583302404735506864987328138921609249867621939892685849828986970061010631719254734727252951716013581096110952249419547451691499050685315724396187045496984365696908577587522117005332200616646744908106317967278505468527049197188963617118932203743707541377241756754804188409612349707957184605822035594982229228877423284251006164924545280566327499441248446731154700301996186627021945372867321261645894684185357161101192384944981940565662690652392549943724046303172253500616981289843537336007481936236439620639561648061445015437340098446751500181878525722482141117487324190315446832753233709405361171683234899569107458109053408502867876719650247549925824603105770454308269854745630478552574877398362344548246547853523892801466696743638015234972532034105253220984651110660576161688726624838097135790884922632490580259169971550043292617862566672874794464859822996627359811508171510692692167882815335564453092990117715649301853698860058717399282133523220233126892837597408544945559900259979555316136683616579390645617273551857912246724441435547072996973957256014217263544754044188740478086451528224848141217182477906633129441523148293729003112797577461697089631327000106455745586626360598983390181134892876646485244145377372029919778820416277253249809428401805590229289462658239043414953757081173846297219469424921933376800884062411861723892515860908737846622181710824491005236325545596269693573564420973909915338885442264638325442121327224856982208314516365383919712311725792613848655479148391837709867166827020594309063247825284125063962231341163572176438234189021610794248284024697348902806059447528254227653585735626095770684564952178056773446310891213875805600372502873603419210091595980737674246387323559969150924131338332269635472411172129638629672048024138581666501992174630961138821918338260340727715991657713788045915769948269410688770676407823360004862020280744770896482035502132768983931109909325477253880637334297561360459199451289934600347727637508940259551414551084178238484635246271220698463615187191864464388280388145937606570115936591517843980903468335232918784451941456260242642213722627091874139638359429447783924382065567917390141840620717260924212107005808760610176136758031001128504391298119584730751328533529023115581432090665214102185503296153163842863610236801676473209364837355040928470357120605636386099201385129474478200049190758464189150128361220835984510040631660529807641270741776575785978454429208705915771010804638419393369747766128985324920992666374833653698320666711672532319561630446952483694483758667009983357962000439370848185286309972109287488088018311311823599672393693038257520027383674607145291084106232070430556176248031383332588343526545867752368140873170478646339059882245755073050974297593151950503348031661766272794502336007921022070966958773272877621098515932169998636788186699873656588843381307076037180156515470298243893389733606345093343808016125580260562056393336676295416927574196896105435433173564193662233866301227345929672238836725180671054864556737128002674329926260658271685469164226931126154620018502248940953398686607213644426787394491109869818869727984425982937342434974109303508441288008493497745684385612105078486228843639742764648245516389595741139251125693928813876455520652643945141417838426287332153891167277105566305149869171344190123336809980672329823863776073478561199762308999009244172609698948389274494300720498217536411760046275418227486540555097609594288414423229763705209148123747595977753962879276650455810869843736678100768205072860234413341207738492118732047051901079378798531804492507313748189208812989184716237757626769835824850598167032782132757462507148623192747744127952347888399554023011700048816518068144425364823468787216296078953111211625801913190353078484221709778399513695215181477738616423891882111843221342942418306995775594223101929565105884013032193516280051011747332260004660609990770010429340858956903966537078194565445221044507192839584006034675207828244428894552838940651610657900945763795466453827085230281699699537904386925720782407860809716865589597074627966828115128653073507008498568830299138868034241222361471480435358169067330512951762370140667251403075216742743158813223555111320272267054286311082319244986612452478847979894740101640569571890142959667336688743692530656082970291262156377596228480993150730730418871236018966649477845408593038756341270695741289392147078043680639918216465427387027324890300405478847709947649578305204188688180887324693864918841928450729009318651935360945815283728987047184915918185700757817805713006656855083676907702598588313619956311435400852882667361949346285285852753577632484036337606656594584835371529914464648279409995775467019647854062255674773196698832672605276807631946919699910473550469659793228798739437541932424832598334855948246165490286635752522740782415998841049112002764781993063973868034950234447190407101010342529612563540331902231995463702724541113799145909362981941268594561134082542536595379570931838422431562697170567576686135451255970602998454414287037970614159781696674526416249207353171305337200217235226171404179265873610185354208002625941445919494931090943681049229128803487174483865224965467534188492427090930997179465683194932361829655977187723536677927205956058472832120240585815583426474497689279722792696785256192693577247580934759830524340856563172089426948226314705205533272141019907779024557736715751712654848347541089450895874783589985615460790643542138615508842804219019085594696135381541652941957279556247222678621365784576337046796109198394604756420919661629356678953861213952723985908425257779375546002837631516714399209127206093300922133358584397702974002725805495650564695186227475681074078692327346553237916396717314393545978163820085606923507251262307658743065987928286268380818180786059181817424421105417733009990825311576877408229688158798116625584831847470292157829650444600865258218473307515499319850111476643579555869574443045215820721924243170063861404927907724340875212142410383528571539341362439769172435403480951892722518492828891685454462089159532151747740779094470725287996225234307348031432261145602056354250209266155099098238517985129143554620054588341549950808640062972939165059611213495271334644719859409222119375891963481221923717702906156453714281780826470172009874072422669769680352125868440543212382203953848207675343154606397765596873058578615303019573004425459494047687688963058754600516303556061403096540923825552173318994492862259393752069595177546683560630293667776961897396846366296235863975369150650223758683269858495295290889649947514518094191129226496420409328994043240659927467081179992958808825889416949156577312489615890407957572531692905597875864599904890900292166199642860609388016351435669694608083760010344801456391397287545590338854429340727050993087955065168135477377307827977802321028661850572286609627497230592502320954436977732604833066959019917211221536113345679008666090114263158479387228695266658216034072583538301717557799865390015183713535193257024527848399577784040570685512272107393102629565318105845861796993260368068784078346516870009407908892405101876563440590661510216156905691008727310459293648944831809616928114121495352598830398299367367575568123268347920446281731606618393717546518767463428519040524275791433635408832835630368878235357586281659437678984269444129340787673834002369440255313956479309300039861228679987809624252355220964154246074953411645149267055470744193694885160164140786107773761255438358467034855125878356704435381364615384464912944409994762615601286567789457534840242302050826360410298582976514520158896037545974322743767749691153039254212933518645449082656034963277160529538337437164828819304566494264762978064119360956863497991188021796448035703699335624329395598003578036494337942666795400986455499305891671703586007484763518249842441011921111585161672766783514017077849833765173709406923423517343396907448599906200464139534593469032878732731634371067674110333511752497037320929031565546647122403277157476494280358459183218404075318036362952745989380934727049858381249196169288709793743968406091362361375978326034409869849740892571472525551888205714060455487821035839863743133869443163094733421994724492786985480452855193602109954481798183941903040551724624712986102018703465918345972253897089296746043047685904716603854954166030768974835824453443636478052095145439719198698078356344711049803019723357251060485033805615604962204022039856564123049401647960879011081186539102647027665235843069119638225284742175793295545655052144291171996803399110255832247008926088084966201890350326382952553216064012845056345440698481174514372973671284016694103208567108961134539007369869037054929962730286286201441958285620143498725529512467316564252643961212993864221779071523314465325931637633807355244836527752193943389757270650103100414731708062629621667152794024488453536351512547055885259990647935899537876550773844924538729573896431584527045727607089257549684894525659460469498386417495028985595609985768334701452152784916320361575967804146041355984978689206467807583675750187797851246178993604942437817718519950340294846742815483930794936396917366849699099118189831805756748468954961545679814752841298219103190950696260974818352676044612751098068661287245490771049533281037651222102038368301830961940906028212188732258496287244167990579701386260177577887125651183527580584286639654201872422019289666162259271617445255983160726177269915950580157316629211106553416633426042603630756606026385525467060466443782546392733842415637209277934386009082967622825270765599660536762272934688424821424660917258609900841653457346242480223194487513302627001918616446912935802919896164565437824539496164967793881621028236487837081518168848866851236005703479841822182561172930898723831364363769502493303697109636305637517290582820177803582334312630540218014325932833222052668047992491788200070361998358158375156146677688571534939109595128160942584385364132370409613101487035950923302089820937731032196918923682587166403935281607922926649092878166842995642598050491387551908067833909998595985543270181298873715127038469855837469667850905400061663348518938546803993799210047257370022282166704873088074917296162583893911857362108060000368352190708300288989928354798156037706522283199791375567651367606148800933769154913954301112959353422767468920346930133241234331977962653504402156417727878879792031490436278250763523266125467171665340572822492423082094948334460748294621558760122349332085785779488253798730150992215298529493011766861304531878616614773852907244358494009150677568411651190008111363139019774622890003896723766370092357848281006485115796666185832209045441283075559855003278192142922778340359145300769107863616179217529823257962968589042882497680839617789733859121094403630628844670834549654758512710485640155606534241403692546450305194726663057865539103797685936367113362328071080934135209425415415719457706535831949773777447575167257968378304302534950266890110547831404623090071238875924325465184308908140055537828020130754143008270622932479078069056011926168915482987103213869588897232137315291352238515405677710466744192686202751335095680020409817798289786063189168763022255806652419992417800156484707591926072482593138003525618578549892166420464262295803017572289903942501636051708544315093841629881280569297964152457079672950222458135155510098138291090757964359585001930423305920585759599050814609167972954521131365637780459460438559956771946935928331632298917801535716392715345060968583877524957641155146652597008482513144016851258550790474829646945244939501498080901477587313677525773345400324551613964609589750117294812202426013042327985717980459025961721526078251142049005541634910329011022678644589070528466326305717383819221185419146088977226721481700880327795183613966991558477710427268943936577329258836938559332922511661349177980878419889756739530618637503983841517164219156511273319005456329308748074414667869696343130496119205413318164586770328074212401969585966013913771587864655719887161513553018447158296579294451850904044603431137818706194658453753167794016928034076742888415021867014844340644175294870384692786069520381982841841961804028946461114499622284306812638206394399879220726192276123280130733317276413763656307031217220365505610525128168290194794925938963698292997198677463773938493213134236262048479291548668784944247815282844445808895354559137759316164657241543107895124445274912248184300557783275224688896529242797566178544463922713658703568991101716207926320443849567022462999526478886449197394009962632893926107163364436153173215509924701756742669417665791197829424621311732169011667175052276513506446584537769478566631053411747616449183413338943819239552450670321103197169952691309782213336371153468127660610984001952670674053745185358664259628844615414935643817334069957450495466950803014215366032006165110088907136639829603273796399767416985360537987558699590778500064628957357532744355965384882729051959146182151111486715803856856913419370122205266645662640682916421238053691060773040180500822350556790436155992833186536845060550371446611546955923212519552295462197267347992618199700758329638794513198200232530883762326678964568467678280816154397258369026655430787183825481450681203271889079786257464387822407619842187995569852441694095964961613488653940172563030311175156737814331810342995046290754367161288022793623071169743746891510743672743569594869857568501188060876307008942439803786059096222179043403338167427451983801479562765215819290183807835141766318969401427365026607204056864718108449714355158999193825098026487510877044337234008448259443404327118610521158298124665936585852657294133731179114902805972279679096119804663934180027228953558656714648446781871343567727629495815974655263526705589460907981138354197653984788554495954083485776006069779574685851255661450907679255439874687292698136611630022327702730273238197773680365117191492530062780772573753961391248895213816549770079533816938897208760129766430782254522932028903282563915336610477037048812761341590118573631440371345194426339631995286347941126630544048196909929274300795977782798335652617948212181255863135331935933829718880593874215187174956274664419406704150969289420474552512617959040030492484758131774773638282117977132727244717469261875392921973500793239532814377260697195809128426641255756939297877211447707015055272899454527854860631540789938607775654121656664462380507793539980242947353734517606944514083292685436401196781571906946901120943491203500808878212361042173505242427426248724651117180986958669486585676896807584786807027200865151578784775379984641540207686331442113374190276805708006570638943327789941953868050965053473756743669139871211006397611889326614195109539357070109757915130500251237800032376272593898835056259808407681619876215903916812409843581731056597036569407761157655592595030898774073991342060504355746589984395481189956937982269277971261916649143016433528496234864718838167349158760831009400528629873307975148004721421081824768057643632925611956743832398702710809235971884038871761897401014555786976941704106871557865190398490580601772604555906137626850993922815075461006117083177266216995747734338067586800903982352820542306559621768687031576194784075050187120554697487535940899479032208008043835935512538203070584867095991861039889048130994752527009805061320692058943650356877954233410100091478015349269835419722052851239770595683164391306864759625616094526809405148562420943155210212470971861731424526681012939261738860824149959457762598611577046042063898486673196421209998086489258027373667641791129392591019039224087026976156336611397644998889431228757626982024404840541076169470545141938639402006540864047905563850355051408365845633819112981129234136677112137383241469198652634166881112775255273797096940352584658359545045030787666237544124896675814621587673094163413502296352808005061973287225321972318201142739735353786007040669358680532203541017433991491036725269016002058905834733315786336981154616659225033361529247634433412815269629533320234371268366638840503615680076709199660565398696470264224625639357194071456982113886258498907665859305250658720284653919116463267683160407671533558434651447156366024991258634841839565053539166920253240881425817371843688944481487851719846433679806393700931080658766202839762396273955638907746865677420281211327669538970600893739177552229584806444958610538311685574136068752876896177555241235255156062711577542647880524119983152307181802713713536327252021127594930656244576805636870260809071722489997870968118882794481753733988645414493228798410977120781085969491251373695862294101020998424908318887005945790360638934893184261668048391356173967986060059156181016667626119304801910592068504189100689357244598208173546558352156001963399314536634952492676564510622434459451834591443828464481318746014711526265454932095261132280133831190096880347756946520042229167932516230780821966402962836963085787183457068262552311710395017956894168841759274990199777017348622411981454766995393604590822930998674269376826923900161853821235284199233975247962263072140826715597355757422386901426485416571568598929864886062785939832283376566740296356726281439095766046719214429999221994349313575576787507598162172491037982565760065114009994600117781435017026261720827425894985705018561106233900797945179309939624481699077087424306763196656277513160927255872273006278435982539491090115088364392633078320113832212720522599402027148828789406841329793160638450882065004858053065089551347746890246650085306530379064229681741638120280059503886379671632982305928349886654815353371934336641792292086580127813890298774603073859334388272479902675766557409827615066504419008657769976460876227823543194763662420423901525855511267067870904440735528774448610932716411464416624477687487746226789391536754123622490674450287960728473227054292544688311441522468454732809745952376425643150764163035578084629840314656236741775901750698571788179847097533136739667220069407965736353302807676561672317439774070560167575365926188930745315073701441678001028916881520204297352228379641687853505501909744765061505570950342841830857209030892023046018661720917428598953495997286578654475452464658788092996708801784059066396632855913872222345826248421300245253375067980967146514178840551595749076001112597627039362366592430479782577116398719060277065920271926049841999950313061174117793640347997588018571582751925017900618424273272490788079017338491529995578379961743548437679083482475359361109053220158683703497672620003484234790430540644439797219224840936242362620007358483042046062964510163630944443022447415140677864599555427883755402328721582048324420758516041623521565621833183184263508844181039370759346876388074856575721130184989559821298171624924374895580583806713143888412446967871518977589488173124386490604103926230301049452115420315480003471181449435032065230423229253789909184783186175626462582194602574211426244385455608440618881268861584762370877567950039953810161695700750193142588102334165436040913537403341803832408910569878069526219970204269255405701441027816946336466064772358936067572666306213260532153769651948385261644198582481316629637552749926757189249108586140481427293156255923261805226622536927310819038763973466571430055648785745632386055025738693130867018421616239135109371838553545942734793563857524291572901719766053066130159780044792494914756151196535137200642558513488232747085071891963631812284186025366487959708790860403859562685390186402381960030797991112199826676689538833584036374618505405804123997528274443546906970572991260429997450860966082429156069233326437689330802830869221453981918233146677574100748675108123387096854593029077211610472194795795887820617729911604735207185145846786589397493516406914739937072302672719088020625539545941010238911351428116789779758231884228034835193278566432622410983152888353214202502808318762532823304392121713760274675531880716392791992096488292774253916037252290674755406728123150825325139557928735476284176831480138788264043642994737390665220892149462606929419752730068987133684797903261223457509345348573595549762003266492037575909337108944520732239681617354992751974652370741670754692850789240378500738214532118468650366257111313231690726018295680102155654310804397118720153023461218405507371290970388918380581604578089600277123086619615775508247296602338455519213976654632579177377171788613594635863995398509085292334003077035255251716090652255952050561381666292006742616366923948948212668866240751445508383437019647877343436152343432707544063520756183890520750324057197569108965269386931216309660686344154328875126812201497050942239227721825646110328933209903650560024382590073994616157577335385544034551991561462796471938136158471455020405740786367719103316120728655533782307923728144174359607563445827270261811973248389652731780610391176719295358977173585477133225250227671084321012964472873069288756249784522346483425887253568707706980878104338692924587825279732140629731602778117726859722924978535487230257215406073379194650012035031695153230159546672974782740381351275316510235600032724130209944107738485008706742406479297942710059143300454441245862386492561031475327814652607667195700211865951872354773716928436882114048679801943385921297285472106732900501254412635648652147594216587911970719122575094924900996825838252313883350001015099140405762237775944660711847083598251017417051597413171036295282039034069370415206894052884005268826295717053962261767305821639642868353317675060663601496914925019265829208412543438880249649846413495669064488398967914084967212240066805134575717254526457109215890364508888937756697396357657603545410966433166721222294142557620748866079046788818593169536204263709492237760219702250703443456411081973979318208361864917324348851445423211487669449714540411290278711868784418443318737300122012908142238279098704049907769230864893913507658083840946110128723740011390775846548253177272764610524726282835697566301337298802554233342452887753062647569925384984894234845511271345837597607597866685891973385139645602301263389055428882144558211495466485002094423323233206692445301347541856807483814190466294741559338046661195201633733092163903973612428429852956400780768648349348916624444369618969008173580832409516777759371943725306148694815795057204412299832548060463869768132786545758097204955321772245448556771756720630350214866841102252535331878823329364605559996219434697053849253511728577694004095484585599326712491232665665645552513250479910369742784614532116108384231373363030550901260181066580374244642379789694923483605877663947289947016125546245593794687409815055554123859409879665313778185542807090324317379866420641361897614621576850614635324258085902875516179261264535654379779495556164763400774863088120683250615754082169573617370811498325601930240234933013029779064374295511254549610119374992637581682907844227079281626721420334111516119050950294505337767538011974688053928155471032821569924514480680898215096507314817756221675071918359373781137828474877232707670387209068096851771200083099642602347877851401599624281259695733542893071056277711190813708985245350901765071082612533604449380016033760739065989996656211268378086152184080720720689626462363327707043725828014824617350964089951502947911816710706468559885522181355456894833797630367935641483385489534812425625018818696323344380540089258665574245133426026152070495660181629488076814150936309455416838797780793530064554389664843812731537494242787008267559435010702914624180610745862527979717587597754703643811733466126788645044146913896415656491135071523045830920368975787874179675254469213328479868954235735961613149259826136557259365275594457638020147721219832329389571297031064921707790186789180058814591798072939496629736139592138503680634696138376754601114690988409994555628531192172655122282999620916173936448913334707850270668458765959121759756564986096653540490419587006597154544570235411221164344926121963432486433090359753264195625321563675652854755727832007893648969530405071609030157111368206240961760282837410207875574265611991684051572008425003088711685821731562733660311240814283356405368025829098022595291604761662328228146148382109569515130151180567112387471876005418043667925918580995731936481884209764590685313112612207616409074896555076537328530308491043609207128685625677266649401519848453458445960444986533136136958293373013039087145200202917077058085031819430256529649416617690606251006519625254513712703459317804190349787810347912736523212063365874138501913835460005158282650627375305536429340959804596762792338474233316681997030007134200839534393737758519329390756479240526640571068893541228348085619751926824638239319893649513337971550832127573925515859335390961845515544758224427710592302818389723823498050945637202615685849539843673395634461691869059031481138986417244977007153588779470295512262524275989319780650356840564007060391453314650306466595317060482266926348953965521732756300412948796041878119919041390194787524627253969134700594063021333467555232692189040192896927287836421229327221159643713711296491305665037664186170441295450955128023562571310936708612618101443678942515554560678502848863391673980996493356567214036501584722323620517757050784623168059962414606715144310897624554864555333487055247786005640203868188803335762858450677207487725187691591366385603009422398591116278797899852529506830262988670256836531509878999079251135853445304046341205267568471303731422527704659803712492870690816805491952628753663525115624315928813151629891557949357819321140541440300513623650546553324333015198304456819164447884719572086463324378683786999301467706599288169570478405129732597005904728633609182881100886220692314741103562941590803093434983341865626844859893320231772635401700203156522451899989786632644221855038810838165418725310853109893323427733442645209843487897453161894216648812375371502906007389618836802653017691207740981723902692539872340325753039449706266019790724829977738019194014297284034709471919381581056074000180838006316025952832240310940324618532590471743920994401347749166025027137274250363023989075033268962477961865448204560457096948036596279716441789057743605156601959906172922877866069615367676237671140238186848170509022940525551162509592118062560644026077892260660735317210795086329502322628631585755966743448161051082909957774992432993303243762573182373507309154007021030216351697837961911835766533909043662465140103182668068337109939400614779472526586964701368318802414590563360147633880306157501768322570193439538428427698277569039837262536661180537955498607604068225070597297432573937504963137626438064948158588079863216011166091951234212158643708708593782818031163474306636700511881966000267911987234100643696429594723140058022137405077795188546866105570310963513940641033694839019835758600117957320561779064776800915759696017000274961661707400622459550844872754887297955382825742699446040214152105624234813883326728966369224426818236752382818770507395161670809964081713071012744165804016044166615735516504546062849898690213568094554740772577284262680206489997404506659274002213998913388984291627856903679534612402100105470962562125647003583590076263099760112991631263383957287563261246437207257127872273798375813534194032855267496269366491391611678374126877651359005208609220595961344413929299675388344333094643108755358418403255323482012874277735563596078740872769895654228193777039156805823461503069516261599901697838247938851478915293462893729305118052347566094294563794524405749817566866738753584317208726614155531791161222014251781213139181408917066127341421142939455426558088308118112264092258952303136491963405182864325418558700957948286955976161927192517558023920418166152988151054473137549613099424813381507749551643011952895921618515253991482348119349729864328393548912415502400219102110100075227852383530546345953781670952124376357938963272748519636179064127882544728195383472416778664079782801920700776890952529495876047871861559918622334862780302285519885042898958977741177805354426742630163725486652716438500854677964600348894169095870145678048088420221419152339300804081842661057044996828605241642381555883380971705095507995933093368194680526496007120327319006165187913694016387836486906906211193582863999044419551583127025627912687676668712222865569728449002574360297558183555402117704270582922434674064618617312164346856377372366359670072999179783594799864400543118454433914499243458311754821575088035691851449389767411852106960727128571437514099704290006882606486352240779005477064902558096338537917465005639097205963743748815867820349678444086285900454114590869532932023239930633434063186448516043007465936229365204669842748013072176810558339317866111719078571502688901820736091850194641223575476650086571837487071516850392633890920801349161887520659517545236369820828693088031011155913668678942679747546430115259979145262676975513818222472493717333230296659229231691968778996621194998260286909252071846787785371719220304218864772672591871209934778068448645893798781616426206622859480617107116742014591956786973278182605738954190545701991102148457766704355344870025930947972760046625598730693313034455603718132118788057789944748864597811268274876860513401836950886755307603634650998155334297993591985466701954744044119469354120625245294760729034157586478227185622235603971209309253863744072784169278329700905558719724013917401550678332857904996529190481195419258163196315170827129907495600623948418831304840454023087618062070139247909827487185445625360177724189916078607075361228713436985747676112141862081512667510990047479796465466129167563734666095138460634480429907568570047657366262138824374632803785545970916025593589382472429011332549056168593117587069439833659446147799103469733064333293737119961813232670263668333695866930209221467791302874927936552948386335724493137856574094093330393115699889383809789981309821921270181832356820149962411363615228387249108114132012365881163726675998076324229225306098776720441918042558252959122185809745095790860739941351228940444919721294621154440282092351055587644999717670593962141290436245974310171228432572434015384844468490824654021515790329050237725790545814253884484247708729217063192090097433133531518502118882241263618694837755692837261089497144523711298827894612882233216134456480191617070225530595512537269575725922561528417262812317028584494806901867964506677085310554675308295130047071365371586719724015183761354704883125661325364065147329988085773898432321944710003654613940347241554717055809456980068972231409007133900407000788817491810914240367979873335020568722992949048571138659389825780860948645498677812845308092162529976622241430379129340458637184164632656614196886632825111143949384239681103345168043238710976299632027566498963688917277436422718496746378963355028820579211890145209400492685375106089789479494075350930734533004000407937929735421749818894387078877610174252844021561136458517301176309952910809732376067246936091266283509282065433890366367754308768074120772203483222129930255187253144434331867492747377402876143453971551547754479107494201074185843501643307113993881896980352203321956023000797812693316787942768935980321794271256906303715874989191368593319867344239171625009999347220203788506490495155359461785768319929051493080244368325695647628223182653062336851058004558819074909324326992697755548790087801523835133879184768554821446482505629211240999121976406289512464773097201545595705313822758674458186032712138579435613082222349143359240199705429057983902330206113798063520444695759500721157543512332485317288389103178062590210722395267447095385957574048275347050190584872613438497713686983689017944037001407369519285973381062902801840079971476085964753031726413163687457725114718491778041188113635749930483830291831397341784377355714625367740712110839725461246669705011130667694162487876773788984306792895744524710453622943310855364747847442489096246530686746545587479158696479019793819243455859681209372912335273656404131802065495749980076226608773165772477286187212271700640313812521793887909209586862057610442848662880131227673266472302305703983302544925857588799093354505353517696727356225046048443082525861906724198561046999950524905140056823855781290230461656192150276327079572921823445450092925206668022299094881355925242258042025007822015542144494714446194004224281233098373424994955359357185458341375849651489588761781490535423091115239949078926661939729538670242171541518733462109150276454003136011708975879142467988575000715949336284257648348970718442860088522796492419572356491971622802460123844758267482156462165283306910862687872077480298384197085145675394992687722236114439393914709641547271316052958737500990390580279093332589057892974051576413559721273015325414038615190000768462190930964374140600435523533478221014684770318245411950281659813915246111595064159671242518366498446902203323214194841944206907372421655122039159845478179053222588206915105554283256300314572585373956679384139034693948416894540208971788691854002567453366750980144398371634112748263798795947945485716182582001090255129243471593848202610978592302414256205975155284587467280504779784766715795170580266296863774941011883822804153629991176025674996201268685129416069767199252325631725454400750571271177634458583319527060148715984756201284290088452647006436180649409276290985689745452052609116785071410078476537970634551259666441113569350316706379134998965042433334310652152870521877307526568507472560626718113902785521832057018913516551141514824323946219445511604552646093935002571406742037475537572337918674949582467130067672545170963283614890265312933724085044754158371271799185713076568941807296851540922502335852120817298950877641117187724944257343645545848800899036503857088478185816916201006441910450577191031271394513870590808284311142931417652698296706483282747952982306029493282069610820179512490938311977202714721222512757038522044509095745362033415180806249917372938205295110565616127567327786120004459034162441405234142786411071786469788894859350172945927179524918423162424906673324871687627446425043641636952061931528554254899884002272268771540193996812542498356102098508198358276963494156519104242796251591856811847368299429169546290478791693840303081183248710695867533291821740139916833504989214960818263699251832121207147171162257871730299324561592495651389409511420781859684793616133378424378132059463534268045360708086488752901292287023617036882298641453441074719502636216499346734469406048668771104301327758825433124523178444763264309160708761878717677802226632219762865138736200854754561033738078649470898575258975489717201746611643970034455770797706274183971618210608126843920475811500925165230721042927243408359213990129725310427087144651981714475139880483200435370135476916660672938538081393888434559239869238816525490448953948921524465148036150412232901858959073151104050372123401824164459961029880538616673884726271917295780820007382891481106569449770504935611320839372048270721847895225048390123485940334674644490914528509420837899850981259832336649641906986726471270171442238495354598318069522861211315433660526769926231615397349416822547672687128474302329683274807139014698451480611978810362113129137991471293315228615607375831884133033581101780744409566758430449548876853830082596026949055045138903788413124708620462337949168051017282307706663266132944585285352654646569855705169551745861719743488538483785216485720559295724718993182426133104924862498606437169250095157958485398641665066922548164570124328288601594482004151770799876636617133259343641703401619511056981938832062097906735221993501375394044137557075303206877318232973800655929032402418768614113380383090950718868088312104063358735985407965669985561964533868951437044182400321475153596526111488566829621806948523030035717632782135149315036834216039128733416593644162897937077703775777622135381919868965582974352067691492219482324990178533501327049976032702001526571028347681457558823279603724880986721872185678095263295234928382068298021903057751419366869236316101126802364106793534732900787914941086741818280315495519919213911631615060285324560972239943328664977931334728712842146267271655508328162164491533433322843488969858196182528630272249634142515681044303486072540977834122681150805469957163679597936754590505625996916459654781717057456789969615335039072712035276228856986152077492942919812185058252805723181052468326164953537318079533753456853368616224116574045130591981385993840396782473159130179462802943441509322168707069341541063503604711681706422690735871160806172407219790985412129904401856886035192850402322172512336886678370804947572592878888933019133623419931788387387513431610223258413802359928416558824026536848409928156455971040129187756079155590022905649934669648008044786729587550007967791661115026132321352810186139408385800303180040534382095761590968569114406288086066407152073901022685479278150153980681579597551482993269989521481464560581503030987750410062694003261034546287527460988228639481490590930374610501040101985690109262617847880417604512836147884322714565493026558727927467464951218088814776048727556689823769546667109694415326478280009614588800690161377467448511062370404909358488848959575356484892813093908850216474789148999163655355077180687549619715640374932698287875129752669436279851442434485258414082727588276386680113067795773164596572089971595643678729395603069424656968312973429915253184700419353048737799407031617012895546183742708335034376765067429758605300847533387593398385457979328265847120905900988369916222877814628382438617509590429760245329216308523706608813045321245477284747920367078829371459081168363873209103993761620167709500798558142751853859394531399942884242166538319478723004459994739635478894072654737163107187374289795927023464802526350731697323699321287768504497925201884288325306919056756445787680022354223175614143578298764309658241659618687377235836431557562480276455091474225931209163898182209173617572984223893536705703091045214663666200621502373404693089895655673815888383296231622150422596371924141694392825801019938861650398492171802347620357763662823832325973283469638259300770000924747731525014578037835451084239544217233498009804527832166343248875367642523062769005983603502866385856610302886821266281961817761357992024900821089535260946988499297535904575821671621489894813005194676568616914960746349352873661572036935815496723328956392507156378372595775207631368326329059471039506661175636348176846053251842377414786454646803784597679183927223056259787906754579221000067513033293236094341228996307532748802911554423729899459995398540371787136502102094672357572788020526033169392248107459988860895373449188824154651383116652191157293965098018117710001762651981584043725823679224906041497596994598432824987799059586677037026294166645483548319710295638406429632189680895043407725790546789522920932744843548535280553436872299564710853872841614655209471156296685154129701744740524401067398402108226861784607266882324545666566905430361064984571744030463099521046929428728947809148476504596339642693949184649274609189934879472834988392679097237753927577554125643884051499037385188935017008084892770249008155333950543132565181681131762996030467022610479551396840569794903566984596005994201721984648711828000055928349702588256763943716786751219366542804760746363180570088697701376730970212371598482281623590580424865042966546774465833518955473670958536854568207769505525008920442906022927517593343366301149431728131976127551068457596631185409278575762119745254728766919131690435867540024855648050738718081853056577760915912015172629197062288362428263197086742730086138197269369391697502995753914140201342923116849464132236237338384241157348438374135901310871480558631665354768970214148628713572302169100477287836364420637425366789404029221893030300025980925220820068438982563465569232064280443419650019482976077278597518764366874512156544392061757668079268625016873457733325912640455652391288409934045045185850028894581011337177113850325828308083354052335711727141540794546864089405786828641315424203890859077199507493863057438305876023588416235837307871154381994792812166503951918585612758219301123690567649995857024541747807853260865551111421418677107929821790011046673693067761237786029686962347232076761841449108600375435008837773862714791332088145604979794371945719580491730352927439040014882301027364557911887484723998121759113158723238894924570278976769359788057028064574007324213001248737517245163744514198595536205343819020531739471058987700206758183932891179062678707099409498354640004110476733902034828967055735339287830215525443279293634704211080148677510397654099302308383255983309089732208292823247010405769595719878348078757415494953715369227301917124135827050298100711132601509368932123040354780049866155525249066975546196051176860264732222710789867412400630774882586654621353613753121326668548119598142414306569569458979766280372268482989033290170781027093639656528108764041138132334140476729345039386914449219352647300563754451138136671387962773465873190093176117719300429462411001670401838617345280662957316324726658429283867436960756775588191604309259755557785041652498042360197686928867468269194717408032442862322508824274522486404454920051535596225966424192741547142610793646107135721797966288805052043601936067590033970307546176505057428421206669891885511131940623586298613225186626956797730122155123684530568785944439748258370284341622803930240807212090856651226488011507846756635176901967088713230624829942635834986772786079445374940222107077045628510230900408817073659691611904280355648667989435016594767757830370585819895871579554942064310789935927877131359421699305332401074473082105841453223493861398205365181310946899210037659853322943213400615357908489831211004816418654498288729334254197535674589903755984048507369833630856971187050579638337341029966219365847367376849986591964834003938348378337043857307776868158598457472119119305281758506167965685038726453432244861490632955881283254988455078595362051752314793493295656465866294458293104751191171035314309660922296836980698242904785758322533248501023450892495305388469869964170175398750068618627969242892392372320627068766769914325462294069309426552633252488821909969410885264395026689345576905920969082282746262864611385798810343472743419082805200440258424140058726060962610934944739059210465958544763245058821894056334767988969098793260449604991261480124647224819275504564938764382554320049461327810664347304556820134803913608977502964640919685997781629805878054198591360653843208848325559296150252680849126717528898355403696823144580536243007111116000060617571320602315741799364488149100467961202751729320808141356941751019569545416558151447592549753607514482453539731830722634397343157269371175786350531725228763102497461608236486882835959729566437239154380723807660031442961780256903385414424543273595265827042501926370671697097506551973500020063187392258727910807339943111457084804126328796590223386758666012789140297515249095556558703367181539024452764440083529235041775117588269573171798610828020060145014638839175509008806955003856175967346623072346699683970603610671125939236756442856562494850070020109712598149208964045740034963364202655698940525273632896457506809282221018820424576827395409352189275134672889077458812987266641351613178907974517950115306965210306019047163824559330615774550741143792925582058336838221571347521997600837838609908569176517376055452667279135656748035808185988141915425078287854624100192091322684284148440885371583406725194086112406852678672407042041199723644680759090851821326354523231552009608572659120883690893098255830819388515138408163146416658831723580218860428860028446288612949804728285463980890814444125093925400240334203700599173948853039350468089021479122914647142047880175109832232927707212341508151621274121559227738541756691138941365781664848822022907580428574353706909889899956487962958433401720146236521036501048404566161629136893441666901236376867230444241915521378166182378336289431594273983272798053989321582547782281245763406832221542987348429035948749614891993766581136391526586570081950477275599648124994304778044452928795567246815292244167883223133550815232212745162242450039435480700294693896903964133665092482978161837074522408156657866230283565990322429047159821388215406917591922925623434610172362936623007631972601110860686603472900951976776552208159096284323044167942202367669988660968412676005908700733566684167219579175440930496466294447866295525886869857052594519906357915387181977501330722858532549438272581459274862088158386690542528963487018248149398259963426976811784312453400086810457237363205468978002403744347283291429538344096181014885048613448317275260777550960323844126639743190316549700608941125931915440061531841443925077357203216635052525880876461917087362977316408694755223178204129586994631480430326901550686150927082895065950673295410874836375282662817183673334484831082050667669074835296466213690726849482335451479853556704687786711599442515372792754282218467674193667728659657736060383510622133420852814071089190686190114163127024031656850462857927461051535489981513828346416677212435850001390880657725903713076416835234331012673656130047506213594922496388966031413781398180589304399773966478483729938550244119582114077517272898676060822504733414554519017362384026611265182978823509333761061338464152644556648332285996414454263766661042877576828918447593038043106956645094773735323796139639317738933080616575473633896453597279574366108413600053452593514296778635578709245707265227382847542845852740980747326865664884229218603399961361730536205224154456731123325136951037156881437087712963420492807987507843740529517055503146103166844093994617188975408917762526558485239988607142239018791003776506880251709982948021600730286169223727193175458105736527882279843093227019163523823605265439276201684808159451584367106286431731096930316893873339577875903330715144626555000328415803244283823053930694696243738846855634497802055283886223189840050483129268760713002654704643809724570456728051336133815831626288434108281599279993319646600321803668646345739778381619318268521073146309770431600538695891600439335383132951003841982302956248062313789277473447032691024728664897244179984381683510309453692828622952797943196119264378616635549691352450521881214806729422711346219376861266773311449345216972026975882041269340622685734913735965295172862007226931499681946650078927515548152255107593800399517585957047018652659747415190161155719091167212886495166508949957005231216000661115938048282368012329793193828235816291096444962315562164175488395299886806264901448692940209096137205373310495570853975923949920756771434869825744113963367899068118478487673500046489836339476205236705863343898833715478676556711448452390299331442536504575941190670846993283432870287381127757011052083724029133498675382168109809475360196593043750963264968415412077954346891467222875432203029364470601852102222622157838865357793567723222581673239068436026991826265884723205625430487008132707484891944065657315547928845038776164792959109593226898024925033467429462333026174260185575839190430210118521698260302645206026343765692719824711624417628793990020858274110075649041984865584269476058268143501197324722268295428773133201898091503614844856177425607577058089082572128103473591926522724173086876947627188364421871439143582039988046579536528358136064710202951212517675515659706348761251920272428231550102140939565246430322605918768289714629070193054276815733767655751596924461400463123469300835189595199355039472174311850358000189822804818673591869474730566447241524558984110370790524761141121075225235333768176611261144856199561740397760044336307498446630034444901741922057017328203551212558513376572004679773918821165638734482502940974645135525706963951006595874295926896615915380945628846406034149902707170247279182693775283848207844808921697210947088848445347545463460495511524915365933379922336115228786634569807800798920270070773157028786279526649751012976672926218552005922170301392420771749057318516641876045172560301943269490985273682593533061526072467314895098536284175042426332505271719969172809595621778690545535576680423712144816685467201829619871816334161449429167537012981058172547666420697658058145647324372404635298957820374869238402447806754553820956723448991309465702885854888444764175678562452943496648172015607761869628688360623604760019071979295257160325553310950424211138736220438609052256868702692536680941660849303387754920338284933134816062147055133904351736015101683020444174120212971855198602539586490569828340801979606693792028900461292945623586561303839056767812692046409091055045765554681931771114857403639830942849584011599612323677172174253376495885422041043998915601709007408788125982282576988174360541237057941787896003926662763690214131205701634556584679873390551142748446614393556160548030581723392855413480959054044990268462262983902550199046325630825117033134460607591147644470147742101729011867182567040399083912095807489941882905371802953433219221221448533768658885639284099104752153772896482799156492841539781731757085080288025152377684828445300763986071020253270988219972534810624845058158097700413104496856087300165651209835588420280348715935692756072894401796217762738031204476241088716650019047860918628050618642860653806719919148469864231939547148785036115923932563463527159419209557037938409154892574859391206905349666447163627719897408904318036290757148463907193456801791404747959195591201813779853852728570938023179706158938204420970125176053075864237755262723219039008406647452485718064783215514387883988253182780317899939677651291446804320206008427641675502941532703508250999609959282602329990638180109038359012039883255303332436303572726616798100924755613373812147186400680695313171922884684674335995900178750953950058478990583191147503913587941736655740835413694873591861545582985621495343927815093935785011645357141304154243822955854677625883527218756357099246113079592940200904005900569030517435979735931176768185133186363422488259235561445176414352428537976701403678664768886810029235674101567104452695473427203084444392750575318057033169766273430298528679609062899812897071267492846854585658081631060135341973577806095244898932452094958688756224806999974838075363404733549263507181811863003839462233267848029538930654396072199077811416284425822432030686041472736416571093625305277026534255532337988553842785373997866423659701492278584969710392891874986709722895187188725815023920089745043930408930467985512710640503263154748518458031052121772668401901477648443687693667806277934663031066700520270802058641456604833831612685670928216314852618386491779348942636210907831440158287919562865716222161287669930764474736423784381528084878758427078811122143954650502144512029254207623994322788140250212333939117755015844891232449667557656309305711339030517641808358533081626920762248366423967432604270263977833156375149634722874425865451147443972986765064492017783964030352246572185525729590183990733730625996867829822411972728885157577748595535011375499232894867929341884031216822346523149061634887479721378840277374727737129329463791120278503231478159745367234567726601542652144582738031814623274108665356588127837761871503345632320374465383859073697766009910051594314122862995548881940750947471435398986217068980909029996409544606225053435830042758565882850926349589406893198614425449591850027940930379612448839691177052717871979036890593523793905151969524740222983716250644673239711876674821196643551044075963664120861733820525158351557614854138078392492405185913094354395538362041457732325000661646032280022725063441185546626102605057538823229142858636243866217624961757648548001463404302172694296545411898080110998456823771102251120296881777155706930157647148473216560174485354644348231698112649452916629941839687794335986274801207489262111177694883489553865004762987706330581068496682523118130673032322100073580208138212467294577713354224083848992088277321249426594526034626523307675921881495087379426660712506008716526781028750055058979167866942939919340515400816424399214578749239224098850635129801162386749995896719146784369574548586937298856837804495831381876748807918083900713287127453455642846290509241735228028589645903653076185293078434487876055951927072597405896178536735462866350703377490368342282668557079288143683511974203900857909351423706673667230152598203677732608019080799094298972101622663299651845158346716009387261593229138780115556675998684183039401071415545195650909651786421349771621946797626766035621323607040327796215003618868812419074920365615123571883665200511202389518405602836175477591275556135497823061650621853585670824017106661550045024718891461876218462266847445741048076697959598211030433924672186853412963560883980957971369374311083616553457101424659056904609491373398412922021883788331974802651116947216222424527707783642286791495686924727492703729019002512578851964236384982403484559258109038435253745304931806077159571866346743739325482012133783781326183398377370544704479455045936950983519326420455650968522423400335429310996601451412376972393397083644481771181467174963219749244449975240115484249477438373563063384152493107525980007607246898894090950818006113306854914942953983306535867237448415819212048514110794378299533301294804021332320628641146139268686141634429566442885938870895827727390021919140258345422146974538435578537969128604793052874589753483866483070690578943231110352103062435476125815110870163699039524402796817782460368255034448236007089182482719902370642282672605660408876226295535358260929756176167710663268833214180252518821436829018884031245530038790116898239204070123622173933229380460089629052164490505924000679658814188782587216859271686767707051237122141985946046661332282690699262337233184093098524760093440552916141204180457108423194065029852827898983429231470300375598329274394617748389471247076580699901788503482823313986884848178050271022222519733464636801054245020257979929433035334076064399153110141901233513374721158915585980505339553670924307793638937033834990367515028884757840383440671469086776835163177652724163448181726272941680310655220327666051411052851551068888555912264665816028695392811035006605167632307535657878244022610166919817196098884492280309875985815850776633500309086885896046024496267990946851935256961405102796899238809784056484157933174827609151491057590894946183159523191478398617471131900354902139143303585205602925915910467304726020467730139465263214166620983066272663948695398824459158789481648191865241843069075895756483606910524795414843296192209236243606422902957223260377658870310200964434370295736322822873692995445044623100506403009772485538188660689865121920967608631641590517166680976605600489970820144848395731149334587152124460829392741880310247619945064033208172434286510447043158529175195284514486086382874110700233534542396593502677505434755108515255399675410159277147322843154029747117254241040665793816529000377142084081392041346940730321176562711824435601623379852646868085817500428049520775748473182848276428403777080531071594483777885790782514442136962613175978836370647216607938030692950416242509715440873705505004857692216728267141747691071720145067662069556583060352801655341523986540825244397514226251519896785791353061590391123184043900112447804827026683142504850078924456899573300361394666459836354081196291260123066303080513112826352767868684678593370082222350318948538580847942361166956652872241153485455869224199423426974067005221625699415562448034675220743287414752210444148092353553510605428998750413970839796020057405158684696180946135785902102140736548777033865217840559426940603264812461217381558589317430831835907383772013073773712268940471795482697218902790483805482459008417491204356814671916330546677397264133651367006144278136471566025198471503716861761029192826291607368758430446853972400783841533010554995396363688639167403517242454806920651600672014211570790944589877449071356511624050454486040130011223264572302717705120726751372379288497511549711039104513160370909804792585063219414053489740029203372448777063910275938677814542091066321192229774453341694945663384880878807261501426830015365814036007311801315131032441198864170002860350390536808101340995109309828145884459897258036299024053095248668671817789940604716021311998078899813982578116336828508669686468129773404396256802649724722911882992536778807008340158377151701607048687663384326324460208994272557718307747620363203387085552714921603981173429853040622678059758864396336299817802232681577999168796364573106633928611847561473868474534105874407380046882607134860247175961565018967326243177259565681393977066836339131562991801586396843507029815419280447589832106766254750553377688361650437461110897389818938708497225135640244057125594982437243298457748970429931247975787946469819950509698862218463558824921856598839755616449735593024397795164980745134283389900150994064611457529177377786497680766925548601409356433607816743643441308747657886988731528901508012454455931393190984030268401819553767514874754194442571605892193916810276942149435989477394535818723962521228281994154878638746920169821175357839019538960663705148429406224238464967386225550360172539383351399730505930021630542479431275800470939565022789111448134858938291770893659754891805089286857119678435059616171733361443615471832062939153635820292101472525130833440740077835408487256046358974535568579283808846094111204062573416412677554289833481863235927297946278190928114704400701120100149780966094881183112856634199511771569497503646576598840040746916181880799497129961802544428339642947993037266516645711843304318254416299841064647178467520905781837100535826686945520673391013799835141172903141230048350723223242901384071364809443654458446675376691973252651572430412772630995482828987884524593519725356331017197075166845117868788270766136308220351862339249091385636291541698062013134687711379315261801318746227527471880601728076598467743492853734919323586533586456287805263511050473268328158459413582135687488659344145007740333945863920914115411229964230970369829318558925577004011036927321291215299797208449579437663957143175260301140332362867985493865742888713652840383181603960521879239618761433392064041014105176540612770472501938361052727299721011872435820516824963677364007581689333284517961606148431704349220825163550001521006940992227677050516840279162105521583664892538951203472520930998693473182967090812595137011936646076187367678631798039338007063173441771976238763540801221555905885272264170095244539681298906281124615718819942213941670599956384548798326986477023701845182648401079815948755663288624698880533975419532094337017356260698489930436664975046813822964798360825081834376856594857010476053419384131564115200493490171142290078393506829386713071257556413788459938106507052567055859852126987952481579992407857341510788588140177660128504166661017328145014588065289269496171000173088872954924661132468782509339100971725079027957874872165205221659764788034922179759892138703112711333509830434092668970420322941924283841807782908312759680917464883685657863790395228163250392353116056359168755148353172187233146547674699756679683486848542013238951664176532744467532666612491982562920970901898182525177440121599764199185720223434758529172238321773821033193879490990144503763449466830907852654128294419135203826989637977442714295789666918467844430100162753274066845172105819263963813698218901677682650480704585348937542417750634957357694788616910500390657690523262286623017876275808042375757338089063026749277700741325615513814252251727211357529831559859226919460928090569641655811028252731655438449447402196249181726789886929587643778430224520225279174907072144999310895387899934838667228579451755504282584294106902279788667816663640169066556594566774526165314919009849459739143241442390169506518859200770979262990632161826927031149786985378505601958471892795864272145188581488680648014194753273265371906215485034016019676632845715632782647170296940778184411778816658713196253364460459273550659561549072492977736966100792847007104267534632488514719380485228244750614330250822136203133259302407066678634436449921320582570721263341598617643462003388436727642458761119243404910794487263472357113636180692418453298131559549816149385121470271055911465709236151839273022013604695415628462182325055308054247935779637465779405721772220773814811729032454152120970631098878271457179131393222176423005290282891734292121502823907671673102768647418911718898484587821571889520064294995494289572533019029154155984850860855592932239191661990111386932279960237884794642317566089905188167731117237955807803668741094751551751058146309911447331398375076345391474184628068491614657652734576136086192024706797205687291499418785016875345216327192768210294916990885802948026949132949974718066818378184634258223251695564178616552004459428463595838571344767363612069569925282953109890181928969971514398896741134518940873348599115966444494886721438047568531036891863629654841619266575020129075886109578816603194914740820205969484534309600306964786306634603660364140980680940510774776114953179894264784819950687966016904943847926250076058946352792068224794831603289004358181023237933311750135872175226018391444648387247731753199953207522866233881815224484954414081966214267244652541884654496504847519548027326725122916753342957106426165667872765988333034528674279714263265028945780568392870223893876078616827634801344639119480655095994788715823987783280690572939573741512491994164699267722309646526213389045138610042608495656799334304628634011055523525378231027773548284727404401077016848260846010428467744428912930540440552016625016824844849697862096638864897684852579507653530596838591394548855934866500042414334101630844739837819958244800298417036442026791798579676420019456424782672280921952633946109804558457895550701899308032926630653908541883506185677035523639416220382425471079185344360243994170379981578827966877196539189928122098157079207420765523027638992776328210894906010581585843437955177745637542893249682904645132386570409246399730854704726942122189855476380146661066679984170740762493629312105352803385637678940041412134129961123941160485944256737062544236559919097895236453087390590142955189480659741309232352716439286247799641066767416531176343716507249682725220790950126282448154934174718848144650703458601076567289232895002819618451487102398900356902006615216286327637100539104301453838323060125360966633265208397923563884706572289312703818821072606954776820758254605457357466567111494748111205138428447705652472868739325094529803516069353414430134902771518529293415748674670637546736316229528943324837738085808273850462732857608767242405561540118252703589472314254142242212658536903144288691472838383261403695989132491593271878253489854587881180859531678019083568458393498427581611693515593647647725997461923502369777734634434734260889832291836357976995070632488286644191445021334758065328898670071109180401562478348473785617914610279477253768885557997945592392561092886591911938757835029133411239921591751422813167729410864040307154723727201413384066680510065046422973912774688942428845920448486177766807285952712723342746986069221060394584361904231186458547883395830019471713861630473227625134908284661337156170781070007923811366020271812218045915178467042457125105508862830773241254879236161327454789822009952310875728111447288363555498508987533973449985081014683079740996403997933008125279164843344223609797044130045238936398312182189176089292637324398794960333999385758854845094482082475465664851086827586602550623084434724744401726267921589215417399796290155580447508939969308668357939776064130179243583089880045857170902589070242722500348211576809370801773757866859779788876083772764327303726082886653270397893062725093842853897972479149588804470088007876343735406535171682244794360406988704173513656381440950233111369788498383839933645181948422000135900512596486323774743335821013511994754752721373349511746828010715407985813051431908802375319875228445617638064587342401405359464127673138014118911003972006888467533306190074355174576057492192498037227426365796669420015345914983900689085754851877503579160042766848066356392452505229365242062823807383561323773514103928918143672541980721249635127466276983695984009622005621993052401893217895947428110506508320734056638009778065440463472796890866664153550702430069626518465685010337413647796304718388231609856196090222174468115986071817729535986880911871236827751010804845085577462994616601427606996443410871488425291483991590887072055762996170105898717114654526777685873207062943726284943644591971271945870429056349138777710261684841421329494483726555461779660910527207607154831844302637608849025585801547237705933677977388996708498033929785053757556750570510639044751134249032503742808926326966059650755221922291056994019717944532464926835089035426818118610911799612587970491436559128690865103003895079424431314840191791236849707398079527943270641624692855050532554868215945657427913748632783748198735673855995223850916579302903513851109016312743956293011615832944607563027131104916519346984410622840445581608446015351339740116541146907049452571245863387216806724467562558307404956457978320435467483782489586671003603577648602374169878972299086296101525730230143201231273730251506493888968215655546771485176672513549511620855995181108397610130855700585674207670573109009454549089369687629116625751609145456896352799291165924482241554139711790539371432776057273838589540815635653946168877457022793411301501908668471103094153070119469484489089230386014432275227134621849118898921715505552582308904783163544681694476338211596223136916137585227752283809978472213165539861779143960052601235100780709045247365297999136472655988719838870259533185193867370307561129198757774334842246110689721414686831689961777108771218499916387792018510014267446810739037908700951130022847421555225627869326022943081276795686301423243709697855538265844772005034388114544507536223681576927677481068373319451355983689410682478550938687163159009563059486827672877103207854109070139395975294829797550825264498958940229354540798555777264637231124252078220815392775325710557081167823283673147243365673538865016335688989139038717240855107130272711782080569161319910314791595618024379454906405534877577081229615074246027845431226076476920156120899424716541042665685586314080091182641660105634647738828560210485936582267047204108704446242060783421229274304488464309501184258219392653015756474943886126642366371264016049367493439941078526251828305094900168381100736323593415752731967514228657261532890505917246766017435794875995334790475293169703958115621706854907404646810325493915803820256156995329826413868232721671419217600168012514482806167975117012189999398712847689699179629158257409851995074071852552406662193086219988691777414734229556122181228266940742672006044201906373102955608432532559722388771640448338668800976865907814621192028179599735393201721322143711673590536427208440480112230314996882998691207732455230799785945590733407612987974053324866807602800117643053701560727567426381639363827256739103926735766353487042478304470599531919036860543161602416175422595033032735971856711364372029560685082111691296580944682880003994799045605555469821702220416048709838615676043478878752089772461656038284618556725566744121373416443550579745713725491239034485104476426293177215040893207736487339354976551056635277031909050616860838710656787462377884532823450994408422316491730722828574149185922907653573242715719039162979979059811054136392902703935584810697843314198471210488345502126430950212970923690514188631030796256563604877308959205586264866638482580192580230040568802645331903667925487395706121979291431031808467576344646854439737481049407541965912660463402293175245813275339301261997106125655606206155455781585923740359103016767951536332766915764242065791382458404543894451966746047167413201177386197332384579393706038957026659746809754603360680245183226938809390908830385380455092962382250013749767322520020443982324952087036034245475103263742732103332731973729269551843704541275639198316174689216563925111443713835539417074952414787368338974637396215934687438035513902158180015171557643147013421898661300201907421405696322587695018055854109327761109021476621919074633795856288545840333077871474765237244938811062050167780523324454108150507364856461460367471473695847550810780908552510431958080010061080528118967208779468712175659731954946911529131378932599181763893613600143054743456830827351970627045573410895854263918958346362676560862293049627293319580267069099879216277380826150700884693404583646546745942148501489034997862708163570587425821298237589536841000934695068807624960190446840924378616598616585767487147718809423073218555324744048234398332245345339169727972776919662852690629105970121040878252639557155652419070718012625677286771101306884075170533181212530835605432100517457938739036822163895824870668465661646292613638226992159769506417659530166325056378037703276940962659467908268482629796421675085232177979078736697123720851878299379865994248780441520044402709733829843477065808883774287901166832605245094397046142742567331152709236145749113224718914324477470639688173467307998558963880486625741645762512540084795688429040567514481643720649270376946494249529823653248582705626378299242755210288892445416721267614281879109538931264580993299627747004787458448165747642861340541192394453903688132427577620258566158577841069403191732388005670180831512539573643669513807034885111484040487371208676080905281472174390234791522242719068460570195576314977669557749853833579211716880404492883685588696358641360652595919915434446221613250388576750429446575436199131636241870444789737612522682211876666693033866630393632369642946669112349767819576927283176782654309605201643499884176807294511070313825507378164254341076702819367613769700482802863936065505460209833029857164248173639389185158335285223237330189079782504159022827728818742947441704264230239111013732919854100394279067499758969593305135367563181909600532531102521543776921918102199834908389793855461051270637181253596261859908002148866549876025744441940898204921949376369113558307033306023323087867887259901960436740746494294820860094209152185896636761907424500780322068387338165679353411425990169295659851159919249286150657649902202046016807040469640352193536708991116702155295692121163764883842638938340528462801738906229441635542909954452284167285824483209907999375711712539962911289011728358256149883845682446389045264684580879508003204944258329197336782372231971501112891355895951703736727832263451843361787582599115474176714580922624862147354644214021625550529510353050849106599509035926246809483381225198681536708973773803711326175339234618926743858842190306970619581578791504948062241725018558968443745440471617532363395235156380826577569588175491346590342624319948767046438365578283981629971725279461750711357925329490894359451960136469764771468257729965044970918000086404341563468588851044838473656221680462228587740443796577052547834516621154254350254675883589833904410074227086423593631621833352130407472012785371746926468381001150308301591415692645246361662425808890561642093767800549717185747299815187538802054150979079166768394219672003976830806408196103883158852314691232069241220774802528574333647407654088497450889767245409951563150570931387662327695316692630716641153707551667239349427060006606995006144394557390959064846082810354022571351265159248299252539728911507651435422881326781287220060451377539001680743466050776752642993659929105775799049551130524649509655936843840879294830233775895575685719791985287421989235976599957395354403698003413595476392652940570383780641722948263604823413042652599852066664364007232506060660849389663265441742406725571654855514039015553644417056010800993692211503625114004951131532653621417138764448743505317268991090097865616519792389401770864214475291983209394783375025589450502308130207612963530201230451808484236864125539754078222509918842218309316288277261599313860472400608473608614256270640664508382737644572373759286944553359320536458689126170234201584430207178877848572172022959862560637039545077850392437874090690069361184711306328987701520826375878946670436999963602928320078053072920628918689101362067391411068008264387281082634317378718202213747180260525595305882306472342002595374809707292226422477525016589953083044878820776590523770462211157890875533739346184499609121539612863784219309885192417550756087181978944707635276283592113663675153953345608634211898439970608674741726498255172190390670393779868516094154014998404135728497601159554921862379425278768195216110413521546625919657597769530837684236137475774925460766579771069510394218857729984119779170333416535581295981127109782422390804473954040199071545550400752706980754059154411613897189744622764182128256368285000955892313345126714916698732793451299001143444232474054293759752870359778783431515945528234642710779449030574683948692464778972662874918049750807158148980212737123390275181096601843911113588374856063594620943350316590171210272845234555569755158752850596366333018284996194380493570580525119159872985195627464330182332879134589755548085048797589462604009654067459036803371977004310628548412604339047956273906328102000486478988442999997609064295155668851522794506166385650287473558250901019145595727608956985861121327742722563410589169169284826866255759790117505732072831476265342636297106279708822963532754987716045216810976809507272534934905431727774446514368194848168777371933057714792715785205259361214672179052606087398455462790306770190672249903276164841647238887114130415362300885717114017393699363607272691423206512553924891197505272759668549293222260103234180418217167712153375591985166276823915897625744828148012062148009448200642350789005031791582039349854435803779736761058602561252463533766976817677970547564858050788200687334139809488496253541450760433921231352354163372298682319771936904918019723442320556677196407752443816340670526225706729564201086944256270030605065730119455884460522877438886719658991622034985998393730702244379752746345770051363423788500026873608357460967208537886216748094348256625904391647624601117586400280959788654079660542916229235491257391895541111409481414267194047755866776239292252233669869286860381082891597045296289024109910374986715271665572148566444662387772996700142977835168185378096405909845195936830485983528216431319326995735692135495462160278306206163326630623657370386530741110283655352963311843209371622185245476456914520535205642612963757890360303420123755990620269103936818566892807271162243826258305929924712255608167318506885849748037035391879619313119654000875414643249867230030010303559168500896927074768263621679809961059172798928901108249165235987542740305416731137476863980691945637861924488280504467550641249075341870491396119434661597958619943939132856686618514386840034667974708112881251790454117799681215801647319724741446768535984338020335539633292330799882000665458451525101858656319116098147400148616648955531834338810685343084147570225064977930465252985908256708560838708524778386624660505255667894175192901774565348730342576501515774672911777879134508980552476349909628499017195496044228869935224764576024358534098393154319905164611908023359441013652846807840459967027900853026482345134939682594163026192617383904709482320694812750151642527044320551299020780359809308971995546505111479667679240034124555679930483444583619698365862264336569885670151197734518732986533896945515233020515742524560781072112452294959600791974074669989793526512908079067614402684801631776893248757668535333362288844995968213017396391204482741208755601059238431547571325502566461184222345869941524230356687976994577301792359284239359406736938527228875281750684839616696815604381900860779295338356377306294253278259182135249587723433949411892258420925827359754160039764402464186836397790302656295105290801074482540651187315590734402560328663535125576488773179577766737544178454324906613166828239151741196243592337022448249504642854426582550326124736303749585793156074507594759417632491778639853011241552046694389074208251011908847843375945748867412446462601809574804379062238536918930795339769399426642656511738980197843112972052096628035311480945806365166252376755357174914444142140951299767025488309124967421116397316611180362633902058161856398469789899735537334104096018786976933896929089601006515119704414894278020967594899097076063583741999938086531704774064532818758634321753494028491040262478029803374535603017393516336604599589062605449587635022338647198218979926250095235686270500519659067286765352612107343131141234836838409650334089644452177751777049593454429796809580341751935806114204752688018189168835014171099733032600943039908526410550232256331490380812711260562065126618232538141382800914480139728530819180567151551638020361736539390349276995893800431715614097633757660079639236820378508867223995080912720821732534874871635306380010774163127740271191742897632656629618265852999815980796745790229552691567073466764538480339064275074122708396345327244021939273188333993859897781985759700942493611416702634931844398049079014805645361872594516232524714222562205331022320100879116461336445075516810166215746722928749683308194901077830428087175719103777288987721167777778398351377632248471704285312907033163294115648242956217405435192711742826878746969939621660625573546649564649080529053773433438979529906257340438474903167654743546360234059242061163229644507669475052854270745594435805462644799529486766635371803862131893841068142660917099490142400224412493711499513613410294429688435157530967277884783570264569562881988300047690543228647753834780714598426824638751558274462936259937065922068856432700758304362971945539335052712026147898587326933030993758849422293514664564057031748344535628307530836139590163361545943679171832488724367905193835582397907904765675256144560658613691326931810230497925616488308084809635097546996597972626482199156783734466723757130128306761553730642508213199327587846643952483917743557710400981194460273143307907406049321303602692806393615603414301010323448726997503432904236525767709311833820571328849763820555843387325632928036794966488054143375229246514526360960482568594014229906525266310237748966817674946921800703761273663232110076421314484690321353786615843422227969847222165826220542597131271477703242310155582916613122856698004084044546172935764996653873261391423005033055111630943012144619182180413075647764991051160905535306775243111492691734935745571684419007597788857753592711931422095833669857586004001412500007320307221509042203768179877201983509411214645788953257946183610185146084582809967805173848929073476493216448368097922293059251334349490302780024556843032410794312811586815733271698032467213309554733617449083292933991955181716682628166628853989871300951807313422046841186140199379601770430888500902355144006230724251636751088272688455508591261543127016852485990817734029603210254867780791561739208269653048489231797215873182563511303362485373591527318995798484780385520615234909130023679415198129935427970534204545297316275125033387128715316196853197460034541828382573774853554791554605528872500036862561903242882256833738576699016325784394793442255622836301761581881259705166084952393624595374835453325220319372248742076615031454412017999008444017981496773989681296191514288631691259461458440941413875962957509495596898405280614332923773882171414838917146754861126983205613143814016577582735315096180745014445280102553423137187787000856860705736435376675054341098597132587869301817759297656111931359079169352445189068218538609574932478575924883286115283316734432624377775885455943155236289809517930237980822283421746846469699300300149146668314137082390794181551338088146112632120410605377358142167826135249554682041838772833593432746750075234411590095369376107088603816596990307798261615454500645572561720915600151124014595486848805299122245065606145945519827506807644370531185304006488686771127606421024818803403905056729109164252805382981108698883000811532282488458496323414486792142529245845156304128986885477882223495000393418627157369080485974853145570397476877851773834789089190637805705275531842183071937105146538468493257601240097011418310364231336143923600826503614052989060474973141308600288430323496528777740918755346159007770637806276662920547387147573476782853550579644887005477786720145460524118270458693181599271520942242732465646229576669645714959716667553172362899057268915886603810941969953314527297343727075616547796753036688696434656487660602715682606957462345726181421353269799911999607866214389292722162328617977834253432552867391493986756646396145036558884968567510912259082108144576808013548215158522890722814253676303589878400113457477279345336729705076035694967247828704748088489860470605366519877270104484308832618963481642361830544967963667130682630408282681957400519916836857390948249949664848135925519459174730355705642448824506479891550558683284543775464166136083315515485548239302212730452179872977921355620552783275335432670225517894803043555745068084221394919986611177743733587130277779056514580229370157984703461797043810071846327104830237664624839622464685756641993878584467804855653723436930930845008266058090667828185991150709402442133850058281949877927058620808330963755165152246425489064303567979163580293776688319428566220978033557307918925346814210225064753597083381024822077887158510020643543744665631486166186200986475783206928358330219818654668074692385315962969909726201296241194819716021976633190665993320092443871094137407985828392283983843419043056051145489794472397915901940883802529348699846777203657419193196312133746272290428774161125752351959420582108553024600123259771720120124422242842645262256283773091234836954876023121604098969435571458842681125685874056758727464372056925420371371581011305045753854164814289562853532911423430986420730392481765598583069000600078443520875183262170908378936951411069259065706043702221797087193550285648287809570406188396236404526214064517671415129400748694379724042052804867014693472545235026966600039903971656453603350791036295720575682403479759619102807310685993697610965489561812210727932535897129603285983469889323863483348262733647243663252444923833935484486287205936336460586601260772455841198262405515086714337766930313364710217675005974914504568189919662111529502215136632600297373663096334344849146630192676142907710141869177290142228718521471031541706750497612125021952872556618072092627153776148471223866959214825126467658284433476197055624644240028415270190803230084550928108553062171012932539587014478871623084676372451407133239029744899703181622177093636858241172556903821853472744373285014656331584489899457400304907069580633122107066364196955371562808674865175855739771021027183275185794224869361415676682353224076727916558834983882875179499893576178067825769574353497839997630635352390102652321517492350159597966978885250776387363324177990764284712493534970423437573365529991870677423126353080749514484591767738345829409299685327905276327957695581866370344434498717383483120506019086117904385939749806282476625995997332792283090472722855722641038352948630180465255254034012025881971187531140445697513618108500763599872185999927087613376699024439740909889736081060725405354804760265411217795464962611878038254804401997418719853080313993449278759309818059728152650691016468305218627988444999192692447271216273405433159739674862432689248157601517490267125758188428417650550617712652555665422833551914429289025922142100068951528986789742944318913945004081255266384863567726976331368510146578684942346070420635909636401270995315175077944732404238646921695049689208501368793058757797984679699091602847268365541462605576780102228139663638100809278120551839926421588776848367798541936069657366938469660502625645938514108275526149068492888500210981650002356027975199352867439444324836456449931662790684733879481297671010820704251970604172509474031215872502570995201055650342222125716893761160506984754573080757007859238511920806423955155707443504420973518282564753661800414940174480215071013337713680180584181375639517680500280324327478620190753875471500813972762612544431263884857286080976735782892590244675127532958136738653397161036064239144163442451868810600773069457765536903454982913644621514940439033848784874815155059477284647997678033253794980014128306873584573659636911780919280302082703859456575523393745414603131310316648057634098605451488391781899554021128520289128213587310949689352723140109804092556665707637820553442411490638814600879112978224420634566749424912123712285414527439819082822005619898496311298123518710340753967113467512946900748876699782938961387747338281527410440340054106624768459261785304685532078571407094297359313915022115745869282507620907340333490837790739109763478156454332434278297719195289464981493218895278909354171627014008985059366160772706238362061108216100362035447559012395002591413506003571360261101511560985946814975708332693630420901867837125177824008879902564986158938984367855515545105657181286807771881755614533314281651980424515576870662547812974047063901219668996699438820944629942536066291963429390430686016783326120297877902840997516742389321862332977829143280748525955443861825221042386051996118832086245539223347705413181945387892732577422900860864944104213173087285919878673856582511300198941170651636778574593248943429317085818661134363188167712100950302244155721833595541495588253615416811604145752602620978529913419053949273688595447359376645270081144979841250404330021842066554885305251548391166486159741070054979323148392215338598154381450431768839929592712129932340559159774253267916101769320496333284452323243511837646403057288578430877142224921221338031655866344476430596392603381531075969495904920355250995703191342630405771579789361683303741413319878313578871941289008135069457546975605654570556858624246212626847317158384567457783494245224580498424825629128781595217671863370837458160122190042688286310390241579801928126387811644697246144014672028880019004474122099599161412564041707593022078537793135521901814041400750584951260964528161466744944316178017024464136011812760179784079003276770293465610074383098265993315703099032911849495268422954555031163442165522755465953963771591763760040370765601396130615001792081551100693158898329221059698457969153825478349363706786057926453805885267020656178015126166684557406671321041263184466192477386262386872224810804597501742696846627270357014306321856508666718189092494716931312669135224892384688092131225606920184191871597901309819981374650070123143779521760541502713733896141293854083430987349692091444357648372492377250250508115136606693487292809601738297387471141090133652393101266037746579629369974587703352369074200710691273605331096596535226793099207554588507252987771361787572046872961339896959329975971071308766050008309721160250565836977869158989937761303934576888430508150938969313642744535567974703391674642393656074643638165866632560236020178270384134125219192703080119294892867241740220867781240919217884432801268529825741994242933736233769332571235439884008629770341550353304364985604162917853510989691426805365373178489495186247283487658247592560164550246091091054863457823052411321354229652326000819427890796782096098970626326292945752577234643523672103601390934863870975231629644101453737459506509689946981981862976270610065617122872757912910528867297726404836264867224310484500684664339833636239573742369598967347832991526711168217333735180157885157420876786400873285717985454905441438809373637709517846906719485367193688699595464095783459754240835721734210420772200696169826649913309731492348932647548991237442555797622159507821802108949964284082251494260406991782721102263708634228088298294930617581753797951978786942156624126877250124597401457382399107340123533863092448385177179169632863670701508835881648210199873955570749498693223255011184696199681238455154377722235391705612683384623382847350302263178255577286245931015467489387460395901551156867504235648177724431342456696981541795159831170640279925571753550844122962874840996253141025950365472337803908373038929823370824766415724961139993643447609539338261740407221724459327326709520381382828325860724494108187530189336496065246179994551326550298570557887753390771180580352802952889600937159747004397869263413649854480991245555661007458301045719247103951828100286548184174974576197472434565558667143098558037744242815363487977299276588882339560312931834213729611680884838076320918833046729813180672539071558525572807964458317295936311144754083647331891992998796897663623883178170383973018570378115093489548958251902043171887945008860273774834930942769635413143332244869305598678542220738912330237638237046600728064872162387895602263775426704435149888293368272275332538635578847424028908042365201423232641447023500793492360033339385556653712442354672153419011323652888742062941483324580384204875166332066011976159943472491680872961754818329749656827886325044001267181571288350562719303883134968800154674318890227464181580668537271106474860331012230927516148822384065704159663544087801683341313319112173993565104857127449778309799215749774022457265671503452305639860996558366686247498426033926466195352649009226379324898333354591594441015050410716591530373175203089218750714589333465969155382759455692661897641689663400461320036519037744069095775441961051909848761411802817713476656493289311933294048699101414506455925059996296362831321899505244120558618352863032419676728562465960735540372893227694412535529078249658627301984026430063390830629391233186745889837083091422486377217821725203760886154263760785475449569267212458627447634526687809804516566355865819969818386862379420420373298805699886560729400394135195812993541280421003393107888255265593498325437538034080544740990853539393314191598654503210668177345622108865379007011150919233709002536364516140256140047825732384913531694543463265070041633612527516010787883631911822999931539748163417896915414546813370966885216827607557519097297267961259575457847009404122186220459355738204584264183326926933561837894428717057142432903404739225606325956883201814585650570279639928122958926659382660827600188781393288972003072607657246354239329647084269544521744130264196452227059932757610258285847196774383014068138780356676382302191324949239290682195907869438408532616464876883304449553140409960029213478367875664522563463729148780393287853851833489049395016125053254340660796452835018161237132984483858671873247055026622664347267155241601253196744230016289812249469508983428874699280678588345730981507944483564438270907480170576901852835910611376661479747564246149592472418754869539347876772447579127931135697661524156672315456781579700647304068362042531741905718176018734834068073044954710866757332153284726203913436691584161747574353086604162321611051452173050555540393902178283243268089652679288407572395779525157291914075998263883457847716497703932278511738342900084120268802592471948382683511355867490288380491875043559452073396967196273070345735620698743815688841777436662795593105955375202671379371396052621033865380498561743576807446620889443519281140932065386535188512375819371965394165804500252272678261232759626585174436639299127202064531277669398889759003820191196946998792902134127506030698686200105461855728179028296149544701210294196039933130132306730240232075448848476612922229659584994342762310301153218524726897144895863324493593502306710784355735578448988476754592351759521359982209422311360098495822918220963090821629914375074915006846673131474244467956072912875051824795518960383779205757249915872146730464822661224090535004563936956478233081395144436053930355431909070914403804921601070112731250042996274286610826906773677642019201858312866570522762040284218360906127921654490164951174202487691626208791010377050506903280168649261682142780770719208577369652100343758041454311738345185301663591040074627461166120873489638738172299137369260388286070619634898853887139637343327461805416550262475849218821243769400277617642629547457384690792413370560216403003862024810605714434797804563379724388398566240859798873056937396132576354508458210463583065148128911840400796576071807155239450031565858477178356370801458130362248009479330999552376201832207613069086414840597408303957494769563688561938674307463051026402637353337397393439778314676598231850134056209870312953048044669654933532296277295606514996674386464285525841750028558491874736477269455847614822989720700987914941780461045991211776814757833270328193204962454042926256387951449439419860072249705352313018905574257843288478570670295268020799297759991313458048378978823194826216383185794603168845903101657274482643707371890172883188954661209683601054084066699621980883629780229070643006622496607107657925523566017641534071310635671713747233135573203358281440585219670164606365945372669333056394002865250187625532319629548911854988003855668858525322808820133417982051738343226686400974192614201452753720883949737747788915607654504184307436694633683061582816389984928698373536151637868535990688107640557131104205095388462209114097844178510164928600839363339586414491349533245365828453427860328936565225094600701953210379049025021012667212073842894284451968784533933242976108002021460571871482415412993638923737663495528149085982209136062407624020399664496594765861222963696150883267844008598824914091590245579020014060558838318674671295760322286545202799944406903797021754024122420798645926223884371793523354822807510313047776636008839845360449302605492775279397925338014666046618765523482348309245230280792176382197086521154560090231814283785273684435519967937172913736371058175726551375355593738840389736590482418341523470151079954514208495131577025104236971488311574666026259070598408615360912383540078288928812005552656390673551036476908101230270206086988315247543931681145599219211148570552445050691363255186051918102478680879650557322820185566583893520133705517224861325625871169568941484831122118195047148884052207449530985666466553893475177626340243205298345932335323584688168884274753956361447642434485444088362515807376483235942157323468098142930910505551025100526021453819770847853629831823686429708358811772038521309845957747194655927770235104377941594110233980313675257186488382066669106149660186324079934758134141145770799032252626884181127868896473163898434864158769221551160362635167065818164127621905598283211770270095390675523934514322175163686960324984595781125550634567420849140280624475233203985065722252452590771776514302841171398907002278924604287170940906161339637832619287475305919645766055776315904092206770760685766144479044709523196746552349812074624152244016923820534840076740114470675793640642983246425157064491827898657710306343068822027580623869050520018314285628380640742497108205446180520893523266946052232779790948635127146589570659332256321551530994811413513536042543600187312761655516026530409735973383202344174421758796739303324644755856695675502852996978081741527509969857084295905176809454039433603027307449860626713061006420491878485210425721758784005073079864620747608801922288279207879953336884367755901059142374238876305460067862561134539628302672235183807688691614454075403346218239651420540345625887805047625422918660788549281804106665467095444394094438339351021237860395684511388742528513818183031708589265988198106607279047160219582025502350304494012928152288923065115004650878652541307893474749600075045641528156816235667449751952431219236407054115784222524336044808898798360315685342235135371202761890792969232510692914364011786167759433095272589472336496157786304235525250457188452270374160491807810516655061915424290484848133575521431821788847522879735858345884239429382916483088191160699621039274007709595791425837469539062991342701834868621840901781591871256038899903480719873274254203820774656545754473352724551569661009829264845013418743514883360445392631264576750530431917871336762312959808237260051673354045440924416193666599260439698145963555618821465585220893200095261747845205837712946658461983234927889158824630945679052075553738297604720963680253519972926535415228083138321902709502496930055683425339675543423240053604661631601036670515586145221147707397144205841894087338721165497105370885512677928048506504778548059853212680815391008434168818096212627846374517468671852487492574813133997822061216780797529209774266914107982576701147825594700322830448736653985705731614182035058825811065645317236563003709714578329959092317036441520776352872293123288578404250718751539922735422491209011578115819160205883866333676415679838098526662327352702334548718060912910713032113453821713396960763827727731677213123129439663715667034360700586433351291681884631087306488877203450836852051343571297223023327392146368038232873361013128574295935509809158389814121108416973710505540280621751282036253824456914586048886658378207878325813088495544601996840480112549962910433012782283423396983753420485583390057138461676210246216469475130107894268646883241785554037978129620227099140890410061785630994244328347868431118056428741584943089298839803862829883155230393753980126834707190170383571584210308842427183353859187113011226537860826740108529181746440795579437100154529837421583998301347890092492234168403943171753817502155327161099003972346038054297575627167497286375417107849221105526154378132165880093609981372151909822070640645587702710651364259862405981714006156060941828476656223922479777837520292770702305688520211142708288561055448520380059439011583334161635551873025005243447983226754060329238573888895061446238826349386428783808421673786789856380581394589020141687598281310699554171814390945772992227786343714369214511828715100935875580817582530949969611568846474076000215594401589678310688412937496629940495461933030935955238642261661239599212201839083627054230449827303942294487574317251555656323590136980918322860509973719609474593878597038299745846633422068398432137062020390499712640967896811519823264729321685179740722560733566827314686375484606231858263008419283730065485644288259804456248472537463930916858887080468326582985810509167823794871962731926203284582518380394349473324587302786217871975627485803724317209224369029911048599649545759362851383706944323060581868213636834329049941419823065448721146394364766717756913109718636945497719285450740956177745760927591020979262257774618206349474915746673326606920724898361324438839184072163243803876535499184379637196706131207531962326589598766313606937019344872594085321635338700659546210720032440388981232039375467230627678110297407273477586663357829520780183386713265739430013111007112100287272401284934635030678962720963176051744143448681988783755492466130966622197170676717987368984805380799070334034191699885448006218069831520737039523847026722853786955700359905856570326974551019779891579423766034684197498329366586171737778183405622296940536604899116673864625977602777738080038637223401385773447132135358419038808366282395993131169005683185288097737793939423774422171404219565821194053517954812557341326374662034050318056758262355816722444116453540237286594260646618442569777478599318754879366710304797300739714683208488969097563350033425762349706381304236224965051141592685313134061763026210857341406605315161393665741352251373915479343249066711899104482625156237803185312811688131142108121376531646756406171321868551631164378043512404447196067812175632774617406029041485336635114082485153090529579694241529865035226466026513293396096638401248311891651506418698730278627390838501109303570049571472307527014778555731394013675400563330300799227279297259865507871901866446489620948466930769661931863556549992977673212089747221956964556717106866051632285071634190947983191872928448676860309220263598325607949288195941408125244356315191033553624905868340533285931356379854436214932991203205926820918421629684354937162734250539802294346716860508875334950601361709502183505668023739581618376432767276520161391972886023585993929642106189035317757042663755420417328882314228874161468319413846587652533046705155937275865865296687535075482355857831078792973982083330162167272360702590516118634092928725563966015405612969665650786657203129061229674517158940188935450362577134969492379287733646851531647481977629757012542108734271937665122273957993918899637209037549868264622276272673743014496788194935110207797504298894078647440454558485394871756656108132253045059780657219202290860460816863937424968250860062575921485473752096514636969308033760783762904810940021879443889472759055778339094878674679107434230399258016340448058830300538996409969321658422893825997708554174553112026389597840718393326445044754825894847108118729695843597928736212303943151579014113727593152779041822072902105036550745950382313607840169333334921957908553144393587830157777722964656580660448505910621781375451774514755841488242162056478199052827980047732302602341833221629969005969473400662944127165455147102733126008031632848719961328870299282344251016970998196198570929997686390811981070115925784124755164504909046328383980114763261445349545573688830915456501519587144440984591668337871569560317564939448649266810800250766660118495110462210537697599564238191823102667437378354105071386298330916996927314673280309149221335140017246422434701357502907513057765899947731775362080882303690945553924954491347924794473831668873146926123814592683173450027410943925316886304217769839601824252068858767041905014804471613241618949183500618239644995087780237407273354571766961640615926233349082781356061167630225780253611586169579081856167844566111651236042626295864211808068777935788554169220213739381369001888223525963509957158769947779648044407917459323032101097990963401911670207478942020768808021058441447191498736473326204534962045369450224984310590928377118950682021819881904946316604285522936250761166563817717080994724985956451910106450150947747657475528812477365346826012481657692711254283822203432371488735443127046900081553279114055433859678385265965398472151573293814659407366360511916436723203633624978132687839023406489647275189643386868198689775087646404055686217471689942590234323224390361127589802479995611041603267767842134135302503394444547673948828182685658981226349624726812867852140929371418444430344046286462614903204241936877454673378379051516096290202020353398812831828869415173085698415631951717246881293328621987830715161141915752930935560196928974366573951195237464806691520359572347829468689761781538679869257998004148978342769448253832213305392221975174379371360869279671170596183617503939066575656353806854985065874497606686390675098202531547713447011359571473649418815943195582635794933561682237742961557431206900494320870507316689892117348701070767546376597672300987483049579085528795735965141142304062751279207965447361905229853406499191007430666146978764777390017089192086242900412988217754602240366949764052273316057596328505014793055849120142667872720268076449779944102787252232357940891091103490243529559993110922417388754553237430415090194892722529247661628515757038444804993760543079192402540113262854327874557529609029184312462508164600162295814253675800302989290595490964174145770977901080417744575663762427901460393629473310948570346650177579601801712148056360474094091326764976958889332505465006954846733881903890146430999136503468953598231895030976536182208390339080441393777226935945323513482185900025759031150824793372851032695520663958649946929183340185083776680273712785382134232680485370008721944980853495584087744876013391332642512680874388059476120679229904087493115025773990625068867176087235247705519370338610779979261406516476248782958727493822866063053002245221649134214223238930692119036108469879458469536743950363052447195352543597843674313885150700044787765617990609466011542192377050314058051246074952834976799943792749557074758846117744400818867405102717086930592308091376881254304869835215227051480445418479175003999146801116835074470226659059733167791144318365751212799534101849075330447609412380129364605872455227245455861005575819200188897323720781907011371717428358660578936317033211727181255554525806964230031507296835289275041475918906310484122270922579394036798448179984843825177357603830391783078129702936251676353105482672592475019807222120423657319481398126884866910725993468115581191597299279585102843733624396079517844643524505716533932494592823376251051834948016727808812763577376417593324101639503304355954496593806079323208985400780523698983389489725415237375737337317047032505141884247171400136078557523568629811194877586834220143551371186692993031981214430394133334716393640325136295473961973313321943037033419466344256136816548984494882159204558293982879568051923237987872302561122630940148172871159427172114804731099113406316652241722740708872794980036075969862602378204962234294559812271965080639488224690427743481231724872005679792908920454011844618079178934750297319595556425624570127686059214826335480232107342446685646598577668814171942591338250774184648558542263249289748871738241765475991262064156855921169510109246368400507427536522758065524593624055026486290976592787200954747017328977849666187133936266973915547526179903241282692800289386856702854277992910230820016047464110796151235871502744185904478952784674063886674004950060208042305702117022947270279269775193651325354063810998163871731164348028430830720993292180873057604272479264521702899494061581073318778409245020879265484529055409451417829549136845135610422134742030807058893939484913874899633057034812024221891754027808277749239188090215917228197900766014752880900919026133239795861424228751892768656770847162198857629398072634445398013140877845899364172688341760971160596868039075029450833094145598190510398699904272666531235628141595044079285525956745578938288938913737450422184077139369763643714169761741622833920653264271433412137824635775141669756731023783128298219503471545078307521931621262541002134480766880519860147642650644856858265282589115230717972852878855291207367197980190603335021319983923501769942318936478210638210613626908501848864821609261440979344107292884288396435605486241950003980127667390623872399280402307918658772012662979718192496083892338797274474822047427354536765811834758207648867376182831404576300942580378142584353697267754425070418585720554164848947454946695028108162250818582398484391982641047803141673026256503614893619880103563963571330550602729525705338537986678565409618647210347585418776849414094921063968232109846692945367538835537272121305533472465493653756320356033364157732951071042491218103277421354507351187193653362400466738059985115490894869913689905708749610736750522162944429853591751240779971572686221151547184293731565051884146298638787315145064500141899959937979026414680254475216767349882983311624801076215992614052450370466419548347558148018638905640502030247303897694728017784209586062502129375909335004496313174216380974750557869386118680941623603897175207304985676850275135479836944629849295234864857719521478998670360971829007160483167915849716882388328586892426878283389615199370846448260046217614655040847263672865270051616159490361767403494256236356513691285337611169224638818707152582473679272333112815772302644359342747561505906391693727533499127037127902377991113673674458539500952852934330081801913292567188474873091691028689672575684491861981385517701337790793651020208513614622029186835694502902493406953927423960389991086140778076486663605017814213049612177239086477300043148401259966404092821862071921869729320007900017216529685708181967420223769846311632335924164947838670439682631164267375062711786935789850411909512622532500670330556375660092852510091552707150479176649138352933485918733121726408107968616205273546922417774580978733345148541759136419950553451029263832592477294289806445013362439081021681011697576602501944786136880004990612368334775652195165394081755592766840008183047324223208147865980476216555923314690994569541046354731284079034907353825761720975666305632683500206499498562452247982934127872769347420489901518347854363816714704616954809454371207392421235286880202916155174535328971167016374332686161429602239700104999257993142384439507082492304305215029355283691039283872348133246221155903202392408736168858316900100841629189407524041757862184048084415222934613160613449152663589259052836754019501088684978923581370303714297263667738573309725748501481025236052320980104466604948518228954423807976080433728009011673581415541865518453346949768418446565697874105620660040728395332034698002815675021536023797406270992769100423545600122308855708397467424494608762705262049553929242272091208739040416493812857457296482114794059846992956236053331020788198449876922790041739045793377136019292768473491679952676488398057836567689788310777746718419950083008533306789339709431737977230572038071055897550828080754424136500954887783368002238322035193742887182720636551602636849615024683745347569162292027922520372743227084411311788722201237922226525193323036919884263758593280946002587471023354267540192256060817740031507692326593700544830517508066192650570219789788444944995367611503145136280115062628139678416233374736489497819916016672535066777515245322206446847619626299320712854277519601755691631751149133485011120302757614472188606234633924369840612442466374446116272230617287499427082060300202714939838311714343162257568930248813587918513698765760746760194177954731228742282506742030650689534600753047880160023450243419667230313619976600604208895591549867278477593134177687613589002088176981440472206810978391665221421283516647111296902242370948543721063544924851316909183658671716897831368928635547873158200147664461217460929792735921226904185323978968950741150749437026857851367485249593860025236130013752153568485928857668170410562855488609363103552315768637201513291605427526196839716317086960949068109374508334686757884368920835401806943228668263227870550598558579731469117080926726387766236896610183837708399871644162225565697717488405884738479248811040742354881349047367189136998372368994684052865329005911248398283026162381339681167038217526629930256156978032541307467856817203734061260544704977893320880742706689132561265608659067650388658516861914588546999843778841126644236794649357458658027954998823316287003644570702413801640168401497946030855955280225376395238363237327669781129250604452622750489435319465048229511969469473858955866443398171393337305642647896999456346972794181683978660193380445931447527111374916229579907898605303466166138671261378275874342835502085897330649200682578590115864877223377830701556491310465793412453563100097868713993610341018573362450617881750737907552374631457651739439843348914237627270978221781675151744492413249144391330086193413027913819535253728336891713522565531645246380651711535060623455336618653886497072822489658451289617366798325858189650327815036337092205945066312605686419581571530909020167311890625622923959416085956748724765791166246718361217733404461253313940144721533782886596791662076119327560473913165859617361500163528121028346325200300177119545694028477185972762668975888609165244356667430684243807729298016796439073423137871904792391677953537241183817771310256070373837867450083150947784612812849729371446006647906194801511503291978161905363778312672727585704745926044616302930674346109236855824098254776480442884503519430661965008297371997343808518393499810240038113126875642693179166944722328554221394546944202319783363681148125131361923545296212784418917552517057611021419496854354523029177437158503388579973981892063042849256453458671299065510634859948133862041396150988835777199419172088519468029449797610636805875382346559789124482131368993149218528192292012083401210223513433218431740329977007485984632167992909585100760432822716439973420289488323914705840154378496446969218328262944074218079430787429794636617963031641750497171266681250625387039277762552781208192801146481251115936830488453935988321956288729629681082990701576711872905479528015921666207110888287304176911960633539007898996469392208622949974441071801039707964206531099264944243380867540273986301091429279058510905445423289681955384244575310205458149050914904274611190053269796830222705049532368320007497591345642303168153391340657878653286448530095182542409565173580593654613371541323041545540059535097740948534629558581972008998084185921169018687432170754157419108485419816549858681738700884783443770127929324123681029014137170728674479080872384574068034826992826056309150205759428143051572289468683309619289504753652357242298459696356898630493247617217358056608607080797093856362104345122060986236475681375562811871121486564801711367966438485766238000683646375758308475242608014398817296727706019946463305257331240220750761528989436048998423699116811796354140086902242731192972407873751601339426975012695020243476742935070908653858359295435164074194827881585866324362299603617793128824553442658740947113975386580853240956607238089412309851900307213804002161416325407771898789931390611332369355774839729860937851363392349118524915551103528401469761444345576828804068856676725711618097229838018721174664793461808296124780080050849888652605981702616054144925203427213716697583081924421399600581963197904330088469993634348917506610289406084913464885335145478854826137785746719408214380605478711360513119751798234343440797797122963073752804850478897752688457832072495424185169306484865768085906815929463073136453928735531032327026755026376415354690551592924206487255200921059561785610367389985436021745739682662631778705245797480887747096732115793724452351855416194210312348639368119084880436522094700541825867492887594198483551401287692979040461885394353123093563995752808251449906022083692174280870346639416087949279257449245021716957725803215333806459251305532220452080790319328419615689706074794850886801186267182879160670570804308683048478612933733834166938274677496951033790325163117219669159652271669951346896711709495668536785180760348970846460653567096574895779367221756302247195459210559479762996856618624179557291506187452611153077746870242362344339172122683482973742075127178258337332078873974655865518027726348473563034469756921599552062080476156948076267423133267760158944414023536453518403137886312466423697629236569369076861456018126618991462565910160596123052682379868963324000044170297732327320095777093142691385429014500680729202915794637691685386516432857695790552785877410775730292028241181295266415445418083928133696606715389510674045905667470626700939175357707423403636662757039356327130095435885398107414618573317256258239743594251557506232198926957927597179707838742521317341228679818130574425056672756272936525986180042618571902746381208876371658575023250865046978545126154543550903491374871360063487926870115594397608438011683699674544440264026512538208426724079009793379986739156871720865570829742707580507689375356970163462180940695627784429619117491338414084996914632841411637387762573620987629801303297692508711730403370469827477518345386456430928343124306415605168069492749338306627984545139736638273137420495062745662461546601946964335536749900852264146241581737728098428585745032820846500732610477333588892344640430442802575480519460757801056397158659103545612523912044260417834665043634276772818410449068948506120377920946594448599995435722874239567142618127904463885503482162991029527665399226481193380019505473973426975792024265779338898099527731846483314840209047347193462475668548613487843549642320944782419282466053757024819208377105956950390852296408500951702683075261722899398033946909481274500800688304362511000537013832012085176961110220068851147763381340341081841146869618389590226542351027917000780818120176564829620594839269361826435579301356895175574912124014108618029172717362030702193821596209146895060982971818924259254782816937851861853040955928534754266460966666643986994896154479041883030868415079137685395936079822854796177621600860829272917809781363156890693072110149266334462872305822229144692999758935530003993353147183496749726527047729721753370400049985109482860417366221379982634293615074952378341114158651564327216398115217521309851971357606771284541787967248959419625864132200687908530540026803876599598613741628283196989465486655758418099069055609671150263529482715664179988982757054097230118239911504855000268385155167845704587367130352869400664907517149720598950047330050831853826785347254740657162695447294329059133874443330207180707295609853086926932493948207792126779213298617888323335505941740338561802387219326267195540837237157291654321844646581827874758184713069209096435049672437636421146859811009049910382255420614445729780338157785313178155165908009770248530875417208262494678157776752448997654587588195148325878698996175773520038570740424334662177077690035457016695075223633970174988886282179180475385773615461029268343694274291520014926275580198809732214677857277440135187168428195247817758727246302752198923993244121579428567312620006346989027516369831367531081134992195339675588021657435906038360088127667645270592336991525809003492074510187305922684742479502179589866496313665807393386517128337754333788247532391200803537124023393537486210258990445903008253325549277551690494174048457438767615159070756830941309462207723276577178833078149163737369675859803668065930739335893596812659159024692256196838498842135154680459639014370360599739286202544435154068157733763343333055632859076265528871956006592607783216515549971674213785321923776076656063092025754920921952108626636484133244588329476551829917767494072960942767540619862538265406924543054545978236659054040844533095129909326159461940299195970732566548023456475499870930753334301247203782955663774366671221039438908941936680795977240630688749573174123723991986701571763465583602174238717397331462656114875480970171765572904010723405352413438546150992680450757636293702067820708506847936323134395735212548289708434570644382643257581280020818780014846195437252434714411725576345375486356285775125959251498248613191837037409391989972820950291569935720618420283773973603323251284571130572741233211159208204312909503507394787062379610127665369000913989083401292754977519501871103720840198950418594829112208936884913470008229467543749907675661068524487714950871397808675831292346894020174013514022294954285227902744805000457344429599798912778936590754979501004896325967235752747311299878793208278871323702666732187285470247397661785782675568535926654006400645007921900621551740130726996215626573589015809382713323104012394294839371529711347066111194671551111015897962770829703985985201577850635560027865592436199480032422548192782365262980468470806160781450896203200590316494284115826353708651454449859408044019794520652344934582897138870085188337784418019538813704738324252280618096914901749532139721733186817392731466356095539018768277757636932490625280971352086170014576507519739032135275328655387883744302717528650422061210336355024995338896479995112131813636476246965647235718857100941194082726968354240371358306592113629195571207434980411218952313099963381792267343133026474809170156795848753390259539531492002812671570942375425340060447139223607751991375356517956409692552961511546697502579046736331163899579410878345787894896681005426678197855931658556704501667770779483678155772494422657460566232637500124463216608650864787281188807713289903884165481486027271576122621453344954707778738464914807936424249100075638540294572905192861051740771983941558478757373452040278987999100630835318387842125010510849050798417757298573683905196663618689697254240469849354913519462105937369100705946000436475547840215231653662631593470231679971534204405612701398734982351392298913071871127647435558451180915829026667154583644571606979619588170182666780414601415651292973095248948724277709451671498184912338234370443216877235811183444339312061936620131368253671431926321663600648529085155040211090468583009873339025241398620102876409218417121799571523081858215175842361100865688836914427233385168966965894308635049316394570174172642498084558481899216199238761445789445078418148716479442510317504829303937697479758100266646295378990461548341798216663147936933500719954005227182207155150030602811936810857218143094301627009556808409479972648935806795094780018059718544885487489438137503261694769850367697468565860059783566605366392470951737054651861253254249640938996359313803115481776965110999061700566491768231062120161650844403691159477457163714287201391026955430159306984620146260282558885501032643083192866059172648072067528111749565840959340796023082968973155697065005438131827947583947055387038946185320490123049813356877256877273637613382175809778803367742959111336135108888689294639032429430489251906975585089608830708512539417006383271812965679399305701619420252714809722667140656420067704875332976727846263817520480915730489468508740492622085102127205500116664932441420657794508164604153987304711303628784898344193440458832659439818755553302256474125404310384299416042171697351455557691865188814367005528020175366945953482126485645067603837991030293917772246889791713554645645984347243690604564554662307401496917841984593141429987879746459313675581107782217888809001313155023392750482425310541420416745929135837383087968626094565783469692803488801433017403232750840924133130933243286874793066247252481286588242349915469919041673123886848198649699003804968821878319046661877545311892525511872136586857915504581709847148564918509576695248403092572461806388866964269783875610039850182676268403154849684926099191650245521782803416127686052810416992003555576398477412090084685082383012838086826658817604668682170420533138168131719387109856513900898004119533936789457677660527077452956844961308723853795022379693674810037012316401044863993872531448301572333484561342101459575657968234271072131685371082697214014523208757979427847453544531274612265200251212123054128579405741879775356823591970226760825406057183159753012437412266126251500104448021474065517654071565775381855671035493970031434531212376876591366243080568942415681418588829312830508714495741276857918442303221551456716635739541400977796580151616745517787715478537795404489528580264073712724081135676323020033285655565255339967437379390900453892366176372733581376684420084161895394273464458987636199447849941704805153746708666119153711668290225332860578370955083068190787666095605641118084340969232026462839493770596967472979073145876521996993132525947495743306698175488656681942788746270633787359525265765579143473975596123356261118200425903467726265139610130344936911442281640818214542239891273242577024584179205654184829927769771845937234715506650988405701230105360330794202410047811313058632808693894316536903772968120621305254826125289004886490294127178289493751890083282723214508035387610764667142102377178878256959392551540811194635392686427223856218455502746522366550805417638961436419940496998383596622123418975511597669798941500464748802521455923156635905465588887926360624025506470897336952522481877374353277027356486835864691692227081630973891601086560692288637134784924470099538722974329456437018526075591038300295627803122970926177649224122377367107453664180372584992625766255296037564398862793310063706921183510402279700618308051846316733711068853215383179375622756475196506577047165603042541849466040953850365593162454837873192836160333604123863639474549674677413018789410506692380832306618979094971703796506988280122537234782589823951794719509645789767966138403991464588983543511923427543227678243175926329176076164202195461778847469406689166374431410394261397854144600211734400525776118092361260834660012110802808169667131849562274492260328710311750371002101557776537652199485192979152796391352724407795710567060534366852979007029184874440265605857365181874775012408085312792693755425674104464345876512989388205542339814348404322979677230681065085284130059561914238669353052058211975908282524445713566795011040073454523013442899336323015718249345880365089415035878607679962913367703486505438580506054501370950461413235186910763150023330667840163159848599997228595894053044938801723851784764629497917809036525455355971088724218762458680849662172748538583386775929062058973682995505548660204909862018307443749185947248465878826714635565409958543046423441103447761925740741076516886229101958760360503995090943122222063706690365848225512999150793405967423834215067577992871144500293079206081831927965047295684680823309841435751280157527482125026400184014961185255569985548993543597684572872937381987422738403840537603559035457548523799035380304311199163055869425307799080876297125635390519115014585044706834836133203596514298387051371087981361329512890979217567454006668776664811902159775171633808029733707928379381484031912461993140971608817394408180383211825589421388788214404876962287712705288468126900629656265446498794001356862662913272870590134992531228254276028132530980832066812548725330408463797743873860149762121264584276041765705805649605768168001138217308785776846981703741958366577365360072104892430162548388151861291285676731373770878988908090526223019920710634627385015314747499804883598157949942391572070396115999299900194556997081995766754986307878103822587774989152972529059164078172421044851357607520657461437753147126681409005414960850794704136269803680930561835757997977269644795098500242165559278306378294372979647000056358109714136312804202247863898253369477167190992503256503241341376121849161452417764761831827161648665870814010652237414778749803551122776512707555647386546178681371409569395960971464865669659931463512527977981036867439098329899234541576148475118295359483202676623951992055782446382938320708296871267007620884546046195041491453876902863156468986159910974472108045297928540167176009920481374644252700993927288810122490355423257878003709233386492842065647635561662643973734846502928346736821904627005186958098775234045663373371441616032704635613500993513175511578950917274337679979830962279197281637603406994702449193274081532298459369785313573216935735248924506147585296031875944722884397839929078386058710617032860879149688357340575463758138600056616790779838955764244771118647685274936876132539388642004370131054127846875279250279640561574347254760818484088815222516603192860621651031178543904419180495663369267879016723532846060980933066197582985734377268816567274401610126150897574495412651415343465104776951719101605044046207117309810412965862599747245019202257347384470364870980603542783979592993613545540432182754041584334565423589603929050803541336295662512366273951558995771124271890632334950926020313779875425593328702652302434736809821645553285108223932697469739217873435804575651228861202249069380777775563527473542623823469056051781984052673955708706846048888068529465480337701938749397756873005586102321576598389018229855651316613596489836870026238832145728414053816341912549605976898534256567407530261433347553501930508116874533073538706097474375550125289844294374862973908851158709125018659787916863669964974476695760229091648917309596091624285162551121265981803940795391582666257226893503079469304827617632929543184134532234614189742770747054202267601057362337713670712263267295840670456706015973000763606055258556720305944544790801460731285820100014467687513813622567971496826716194471683243743643102916070643764406868464991242559202635090252714444289543791922713728516969079967423472519769179682554018546373181208755642574565169524050166537782435278959838635566405837072840308912430235661738912492302604575986189696108849927891908916442436779042711259023911907838073696973208600514393939573457835029865507709522311718765662726043837244871340484583512548574351150603885361323393748686663448994807379014184432220667167055702226986037642261263671068958051072838882051738300076864069593622273107242839574100902270085858203623731729883809076243737380214248899363760618812803150717599398789007912528649295217950559636178553208758232425533257318706760330349061316338218433143857370251539981714010116003584210484818820015737477099888922821002977976833708919926509640377338331500129115939004758927290800185938744577036959454404773396948753554158582054398910174726604608457614920024073187505226394132399204818945591595170123590950337453620507600096814332628144702081059858168874573516142565893522753866899074343475242756886523115683706791368604207390137880775957448092767449744234034194090871408514257852457410128985188727102634103587057250548645439465207915749146595203612872091180685187469358096091260601776997595938678951445898382457412240844339731638369611056915410611503912029929148164827801171737792619767241583416921315009816797778212482894282248504622443094984008004348162692587630734537892371580752970198802619872014270347183819242959225859870852513922571289214685584164649652156797386496509410827142610389791265913100190502496532718263389034220473835830283759648759615328654198334922112064464085789958407973163863889817474560971222905311495213310968029992202410522056519649009087260712842013317976305321964225596098490662144696544419805794543990861351610342023006688419755447921705686470671248375631778799307320872876462186925981118745283031996195457401315853867425903558627220613524091720074122727458918805060312804275564928843811508336066940947815045326559920680333009157191491638160605178930996919592125117501333458075906236364967569981351380190959234147484571795516833503576764869368139836907077978672073131822102005619902659125233209999658461502986312173839853243657993938972067244136918331289849908189161806510944300430993417845983329742422894700180233621292645854929781541884679732036412222323670950891291226245159238431491331852407254139767990301054178575872006656250154484835101249473124965490819829190222152990473615044632372058166809153098291149341301788317065826548590676115951440632629633041381604032898111624168029482560174110316706797971582233478378782836746582096776588072564618230817947993574357348059698557720649093604112141828416315930044972678502999489005417149018678044817604870559795642349650244207169246925298123642436920463812238692318805602326368712490517341032665794823648246709154506968558449825543238255868196069689841931338776348596298398657348487063301303577344435356288542573370777385696896095931885347173639108253384265085925288170305139110359278439403505240159556177280214147622445440468822622677883331779856092054164321557404775277726127106600777079181255796967148943765839781060078023555187334925642698537715146284728078541551941534149841816735849991593669494831848699143845188324850478587755407455844817134639536068445063045350499197106861298221605432886136777992019339662832797939603861572488954527694016428597766413958135715168383661267564588599393086163918246970410818055993479381867481908453625234460772435832834915557452712491022396346527219802464219063187018885122296313875572770010735371495703490445913710817796625129987035835792366039638781521925647472515461209972111419356564381026511854210024061764121598920937588170144096166275786938781964626514695667737291202094536624802712779149096708475531945062846355240572359468917760590725605468669824785435044828953943211015048230249086002818534253664167415702004229034693738856465989882957930341413975982454021674559285352473671288527454093458377403232911376037836523265979197208269350638096322876953574121714667451063888245557545474348826445985894686053876990286391663521494084911807946472067102200887643799541900163360343608537113528591333956072126323807397181308557989338281723973703739088757238991996010240783180252535923352701545092389160537055219614822714820815958571660195011779755924103122458441169089664864469672470667363084030176602504919235147471413638694190913179036970700582629413910875311114315903275380874028241751420812799693562560280665943069770888117828116178480084414984035772873014351280843582053685882881259333996601172697727206324092207035597657900381403101516813782146397575101248977451081010535849062236379764272426053109049242940672498851477695293065392492936518896728649351513618590517479539146507566183306913184151414463761169234761789520265485912307134435460610553912383626662615090772834540569984536015605795353858447918616448354184213357350802708264465412221384212865941358719789469217650665674218825799092203925734790321368956134839181295266990085999747487648979556025077137518195218572474686030930153559965315291166822611616292265093375227043277998714327813770469176464272722313960885981598151246093608048940778016311341996993270288743140193884676472160335594453378935264606838342954970524036097832906377486617333523412053946194555782084535876310334307996671534488783902073065874924422159003097794452101472154033858180792148196777181646714862011595299271632207250190940927748514848889941162692151883557814528638300008124242243208401075357475485274820471542671701873028813094233545261409721946417518295975385084672216167910852717998244838220280443175829128422166753679951221878033440249310880294018423398982831694173423052628890577951985256239166507373034504752685050417971984333517491855128397503447298576012048106456736876335028337848209531747299561522326983407668395671470171762303564714355685448901204598450336172301235582227695240579953564593557934126961559108585325818039180096824036602565728130450574306321958067717494797379601001819029133000557010698431250790068612116577634317810473664456319244132162129833810192261224015319562211364938913411444890337840151216397742985678443829750747094497388646014313589391342121106591104233717348214158615106152927098553964484585378936158693037961340848306552376970742282612072622028160644278835201139968425568084889359925770516088298251873028284406645015678058813850032679993151354654715387393803678843430672210378278047247530423669584743958797407748567746225883509451572846938496250689747966767419710856995247634321628134794690393242864421137248288586889506008714377018287099839772584005297408809322925209937163625260878386081397745844672821618754062516412351291382326798918911702496215918030835487280559854489355866519900979371673143905484550633577752630200638997142096849815641535725036429283423768726867775106404198560985056779359299604768448899236037968942698940621140555113719443073195101804956869704534286729539517920209212741981485292246268360671006168034297624119292763820977172338131822451121924499918103377167710088190050498150818779490899750760616589394890174992515527752790597179297896183190202583841850503395304999912872728800232573715132028525880062361903296804941111019279192333224813898881097073485638957041193002201384397481616275661066616936329065214921351237317202362655727632843360302583257665671487331306538942163794344536089588304171489100185561465718517262616829189560437952942345432105933722146713904288477755998519706987177645738413834670292336162068226579954487153418309784782150160016503207522179885442091187728545600896642489527554790622548543842217569323223552503833123448338342808698493538701897337582355314888284558697549357237570135215323278841748015121857744245320086957489104645331321635903749512762210367190963473518674567550768847197013492408830518387931831423659191399255157843374716828505058358711589027107261720182017686382751371649821779178633634523933247044801941866040058196422430866925194603691449164518679980854599649449078512715419377509940625103417694346670245827295067788532307836666087744396112883094829064431141936820925671420715357675243186167644318552537153438973853888944234295022013079353262275591591649119518305228028967207720483230669915541852912088787973140810426138009134982239090937242585428526182302624110405250462027832734541154781541801106369151524392341316834394692857190997008773206345972738631001899843052639819975012804591504144818243554621964608911382389864146024657439004921874205034194090870977558640002427210739822948689645297124041998991947842741146037253785131510820905705177318530330680392088434775366550036014222728095250825874272897769711478519840635231638903308313501482400991054364735960552792073729219939587519608947328195381474083746851047838768003816688338820193125016069584663412362575317575277362424682433090536292408964058849275673039343064583808411771071360325004558614764188510169880501585981784467280208034091411583086916815296361557120295345695458936483490785822264114296809466931706514497585256861527263054638051652537677440468967152555650024572052407275271176378501518716809529135843062091983097232380464188305791616890428119570928029113084833537001242392713550988809431336419073412771117859144685944775422005031362977637756331281265292022218842615416012512933374406358733839898671859579537777086418800313390039564909940817815255250232204194232578575740979090052339148974700648509136910322905854491769321180461633139423715553901275098703700580121185237145351894520208291598144322797581050915716679001185853529605948212298570560429941449712291343357334333618575318083633501025850161182737458462056582779641933046995671193539874638570544883652215795129681175473471218345836312431847957500752954356077936709562831457676972364591492195688163155587727323038692704121693117479348450120593120458812571223712654244202118580874453133364631550375538298927218434333579111210634582729616372084047305540393808254959428247886778468704466749727352511635484392463520540422134231228920451227297115954615726859943781530578730751530206998585324880630526990714713507842318472828646363120660260353060587810732640417998171426603852614948856269006525487949715129128752140016272943492685161279910755832290282912174859216619655050161281623639719043687889095751383927158134120608731630435992237316849350201568248878824754095547675596249634273253229362768765657634537413052731414153496125160457725886762695324291207228481136485884432903492395318298534214810098144602313915682383470694484378544383907356008868038036151621338500034978302478365060390614764290114826047176370654774206367112802296170687470019628571039291503422897021783282373944721842709530933991004218272271666255147406181652683658853032303756643986794112415991442100749845233538204479691871490666947747839310869013960603207753987584815930590156513609589865352221626672090581729789883327159103736657791886987079549777873824349165373971964480297736216817602707120538067890534645349648954452534167538530606980904627557388407296003896678974799968618034655527688977616531682360503658728870698057959997626932044595017528184415520416491298218396136124260998697465242874881241910889257136430361262577910452079552322418696945279236961597852409061693234349644493933981678303309396968344504411054842067107249192125990907137489783823110919054894749485802544873393747362093981346356521390516250223789604424261217245839841295596018006286825232454348438351229420108343538030461739943568545265846288011178771442996161482195950300003216583216764810912342168728295021559147078457135873411584767921017554125441063477346051820635942512370848068590831371486208757754565014637890083255709811115296091998290190954028542596468767264636833464529603547976512480645758642186262087230388072703998890219652834003617780674116779209099688424202101710323215648844931326797715193564860861305530969760488662952702408706639736839515677621446294568455790473263853431314565332999340970341572064430043440979113797062851196503578865949083716673681497135538620577746555887499182806528325267492333120053861417728675484781291201864587121622400385818710732986439804575854608431788679876426081256838538795760994947884802519412069804921423198734276389121346787065483140579246796236750459726572900707964856720463328799929035438258980688420602097209393409140493780533702047781471935403600735648061962569276921948570876827570719911897291992210625647495042706787496421358667202187895808951352050944140927782518896301098104681329609588181373123085492039975957415945217484421898938376836317862377018282218050901342603226377443790178569143256475603944773767344344192452736245399974677138092605261769691806748361801456582437840478625671110978201627345873963007321171773345373206100221605615775047016452963139211056613783269224514885202519014093770373843536212744243214992455567301895364026334560998924955298045573187576499534609863984945119020366915253088039172783217743291461526046286879273511543147693569030270057822419348597849003169882455019686353122154895019121698752247066227625645534638506247022547034900001217284691870329982762240887322783590919896192060831439532839872257763307261568058017955835399975804819149133251601131913484648493094217801000693967487587637016972647000987933476430281187260091464501191275080626256358493730323151943571022562755954046753895631210473749293322593190169816186679747991809590309822391532585612252815662465980443664728511643188009154322548442640176687680807395675226296539005843078016868908472044266633476041228695912075859837106655047846542537064276062630495207487820208391506184470274446141376536316105929481196731523017921681694118009345037042726519932246388023967021843585336856395052155426411529777341132729436558040346548765432349798999138116955298401919096621567354108937889322883505308883738028798740860111117409887940641794264986786062629163956192785055699288044528632102618358154765904581247682119540372864253819505096359740198699124154439422688031930490488550762327219471407518020809854384073799046717342089524022042413373165883400613058433855864104939396337688944908640726685497470785786799220873543235371677492974998181122573804867188192376243567211941071468134843436649374914608352497010631130739634595753428908985409826028203572803919271189460948624721881344057917624760651283504610095340161906565444339385735450427284071377757984532773822472875493270803246035592774213744683084969492329611282281294753786643123984537246034226435943268668056219082908498412061397202806563654907252001096150936696196551603559860812234437026647040619304106349027555120728141974913860896230406763679394457181680889415678278776979115416803871679148240681929243222841126743331401459184999574959887375982078949763722594914086438550271176106259468478632342442794113162104922977506325884363092239053297662399711762580938877360298198894230301513000222705279859194587522686715774639399587794698515211406875020844784524801997206647558978699363795674636626987014222027077363428369629113773796538199478848628956399829089447692666125088847142783470938174504305127529178098654589945115378700205456187514703625691218850600085168283960952128476229677232231665136232323821111886287767791720782735276723524691369604198333160388845625403805675373278379645443636719271669090106486261396078815001200492415717267128872940738818575720091566822320330990286484459967366867882020262628427036506549289761270170124920215940169178255365213399439327286346909957224901930179154329980408384735390480382695510455062501621773016662038611805941887027064651187252474446273354405225854700660143078809826385271033453035297015573428669052125498723059471831616209742857973286583307852000622094161699879230925487543046170410417530724189082527519662793043699105913509968427688788106265427645186725182487827060260691319720182024729519898670164603984796043258582339766701536383311659054404073443700023253167207487629101500841243534694737155101349929706337653954861780919054083868398769915947614311380870138187401417989673894222336072177866890516903003230268680266680125605824131502462580099218013665473766563112291016702949711881872749481582446476771138372439322755139188644102967735600675923548234793614041916623877663020811510996580549629342727877966978981574722997347181312344206315973323610528948148145100081751480876733775520844071815287513296003045861264946827474103481585044572226983495302970064863624958227249662629868507491195524944162699896744046001446209611944389914400919701779630967807246371953205833519938847120568874817864888712796443515786839842549832200453462088256374946543015480551692801853520795088183090288326590116757804537611657313774701797237983330314285485636245988379651710892836658672898108384580018937247220841626294639104625835268779665149725724706889272684024873241140283788146883330479063942252302358623898891765564626365244826098782465347908857359796070469370944304673345350102628498888192535366856173824552573540775868370727551785682682317257326285789925074774253243169259234267178574434280105126807566951316261544485870567284722450640047111470604070045500158510825143716471169047273406349001100400163843426807565900802488881977022438591909479527289897219758748171495952111513421167059648733261864858688045857587495473204326325673427545966282003037674182196464934935124041824172358279736856225676145096430640394376756127621780077075644965781049792367363213401050230938367637257017501684882763526065239057538020571912848230885981401083144775227465067691239756986247061055288590482339619549030468922856797797425430481790243703516644976846228070212038064320722328799602044809264566448738616766936258750754060039782581058742877339668191580344100942287478025804506349734650307113329414634471467058194846176559265904481217775703702532058655775748373419085010336463179219085269051775857084128631508835086779163001439436503005244808711549123847022454748019338649388916028059328960149620590863763404068583456339443106991486977571431645576100287097832598482693052985734467958453559121642277928120013090258761763318678505137249744561808065062917521371594839245492689163154567538613510806460963540382745053557693189928234239136603366364693341399928048995491932831145700248920074632030566868673728172589174141496773782237931141342344119104812261996751053551738207360086595822514248877354360595092629301156437730500705952506303193860405892755002734034177931696011884544031571097550624836507367812006965338050295739998641746618377255706431179651608505751811805824679545231989799833227822612918325305112612602400946532292089309601716182310311071419450117911334932803208363024586974933104631121789313719855962776643772243594837299096716857833521039116524206374075175722811418914757630293414546100765391908608317814345027377094304156919759995896069430810724791532300015554817888788537278333015895318366042671030194249481332305063048564119681880921941272701388229244693058274797981560152576066369070964456914468300634927109991468225939131095699388410194947543402829874673926222447447682933861165822842907894487044532643031538536396069085391106848145112508149794948494675513051818238471561326343948272819123727367848432910869462220698632039491910092473828930037053607928939272171546839956055122967592071566531956249100918562185010209030042489214555018768429531090138260773103658161824609290282373516094998365747011064837695250377426460126060520984312898676660743553148153627604877888237381329260495434494771212162025440427946689391393808507816571928238882192592916226804592790930774657459623034498528110389951296279679975555280124106505165797498679137899618758502816716910350852824836520816659147569357442351288810956169147793543433587989618711045176743722562718179425651326209498797539036449936824388032797529098983032801318671631940076281535120313721290265861910863560133168658124917523716335164992589108939733831531484822994975494871164408471826814333527002185009504373760328298976276596406836251698824778143430481046547017415244983340251547887441763990146728150231962816945551285736432477782797146994934689075726005501222706249712096602228318589594501885138212422180027424502959615071740598301632286079837511481301150392396302985755623841266216956440182286044549895059749644219489964205307058975789036816406934534079168394308110162003562185974277566648755911070061879571261960378690676056137922158117501022452579654945861458237006606572554665682155566924305137494983108233259375093669427509336453756444149637018398807741600955228221851789858792905025870627670982602509662118380646388462476647259650891863440371577643164816755033438968466653523318027815656219022935059246865461407598136472141441237147993715558947706072579170327001638911949074220358567553999032808384925881244514841518625740400929897264093477781066701289052722622305242092240850432874201654903209978558490029237424561281443171657037303342087488125581016156522801613452271756162510117560576455599480331305603502874084254346216857374358731147654884000442981020991398276037921358827853345645772901095457862684121493685461604376565475609332681253000656276270918413806514574472854838732268680899849136007062731404810931699519999905605528364629999221637510702527669512659269785123383410522470674553718795554037547444362947382596163661754704906693203267617819200590491574883566869113682967976383669254387963250937780564234205302271004049459858612494226408791503334040316717628987820929321109530281212559168266684590522752077911975898534113860614122780773876661673643393795097239276862489958710029950777813471463348177610075142063201832549964088935955087362134316664400180950816856037186150395011651062453525329678297616689217683788943076251244731607646400636138867693412351994457147371560764078368190008785626041001030771204814851767694902188848771561863589231130557026405401937241606712930592671548945578848574802289106208283334356909405702845093044894946733749406383745624885038430599850528548568132894024992530514368249618692561189732700180150307764066386356854752228140825390762033285681922217658597941885425285458235428263029128344004696329379880759987326399821161987260289831265174248861333475441129138754282089179465592226611317928296879409285235989897476873766336628054611649659613692099922312998295554499117147617734321133059017113033726186460513536023747395570608990738387110428619008137834795778192375729727736248923930994887017137486290121407543471373091160915055450699831384453505615266654917500923181289175109065880045691356789040903556253998082404774733588198452070287000961000551059021449442765156715447518537455321199455778654964192142458463482804944272490998098971119437448830125529561937709897431400344525327333140008051742198583902425495893608772006881325908924099421257226693669915140163719022385367522780074921439179985384547839590070501754055287364339746679122669450989072741280044224063070004131430450688867596952465485244806879961418597842261164058239975248606869974138068510319894864464357798934522746786408742769559753092157552588722886700008649745210868419614146736012729216070430976918588525153294913631880369767135119922288766631180846866941164388045149055787000922000475491137721370821364992390326440396372491515550239374834644419800429818869481368928356614286829538838397133682143980667878492370573932828359531839239977763294669722058813407814821345948363129466069326596202136753541649751420195037655778603074740795212185773000121337608506636825188178685650086194937924414909084527373834614821515407347802466966139461717244276592962218679199753410069304955753782365554396218631144323433483296933737191289369329024679141276453056660725344661438830677940449091323131466361028035371102527447916993294158585464271624487617177730262753845764200453296596583188160327555361846892870969731192726173528556568131371339421092994072574221619559074960678860166280754273525873304135791631317897118319330091115827311325611305044642556603426098851411302015777294377943143087370975729774726601797017698598194593236201344485581460543679860613323909361847445910013005526343269472018150011516888189696532332885282745943047390271525349562723116492814187513254340073979123502516919437285526165421161674447511240253288789272131227677207936457605018674231936201413609462634922278206835012018184797294073428181222988975847763244398839578627584089996931237313209856533080525763194964772697791609112026740632624337675343238369535337648073778557430561361316278349095486884358947952855782146851705939897320098884215877280724425143318764906405049483096727079967920618157343810073125714981892627861401887462637869413587551405594189954240756101989486952623297856976091514328188335160486072098036199252468310649995077151912971940079266846709401990127669408166384975316550814440917291269662211724088156623961367343728341945594952791424924996221741088757635816192692006140808106850607339874098211758691394950169120739432080467558143013270859353756062367161373446254752256370440964309866582069220083745663546466310618431197385478209070021925325753807992870527630779230157027318577004678870914646555900812288005534483911593506416243604054726246454062225350007336238290275777144054096874638826250906202019962121111904298387165809741807794753523626391123302669599624456752098346964388354728889057056879192741462565628756789312949465740963761824657655781388978182102208839110335936425437483118638790143600486891601996124530720039592352868255176832251006620444491486137779674173174107814592189280272932388121441693139540716300393262734754485370292075015437802236119015857525230140565466243577843389709116370846537021764586388662710904011962647086218984141782256487357155079248225213601028476916186623381545092406950466867909245994794416346683682141834681285090902807100214385033712259116532840865352053961940037328828946338491749483316410269072491009390298518477966362192288944019634804412478638419346896751433825596421776203285937995851348681654067473746605147892042003071532097646650048587836146861702563567053297019357226161520988798199265401611789678117219245457613359614901111208559577305446654770143661553689918811288643327372500777470356343559379533697220157243701379666583767576159424611481946634999912866139697513022487316285866103952346317245873790696175349148735345083938538454896306051629157749633837310219797577468892733162771498421753356848411509076231215790509463563110629035540534255919829673677015601643849071826097284179635594707627073152026418710711947885704100739751389400161987176043339396750294378042203455314797866349403045886432499067296541551428450925669327307652943162940376664630145421922985763228835766615240673443337766062735468284843150256174360158264942715817997489158870105452983782027091242552601129088272394789504302178623286720744468046615641611600567564977616449755933172280033074438552456624521061613419030850082441164433521558463824035140917900507465415587736031620547627846436701414756106365765533661221864832021826257996868079579575234955809788207604314720934199358139163830181114228595184435887575234055629938974189557208901633615750817548545207440811761247285759112412077433621278486692964286894817998889540843681577173776388645952761878804828139037425787599613141539303658631737615689184568682789203121286378778760547576858698171608709589290842775187078375879390202132384552308048609005809156701369761507458750033123933728364311582776033650331639712102780851792034241604057240943791121628091832399993148754039289335539389681711957301922467080896023782992587258359775953449625160996758006968669544406013710471768882297418187526390861752807848508973959251334587955733928091898402903014585509576972705167696096833091274207101745755809413802183435979883799193690031423693148412351727533575942190306125861945555156828647091800013619938776987813836683886115821181345360495327100069148584868388177359354594564147552244230144061099370282152095565240369286686590610420468605637116909896307998710162391836274475236659981356773593938060552705109450884329625956281620954230640316171095797685242175297107985508864345726321696167005453024802338569981617823849425486514685741974887080330941973301707111734098478896591172335493441306404885867759406319845962180011779753434558276770473813291964205925999486979966956456220663351641927688882095857400489444753501664427127351646941947843727132174412365792797847673999384188477399390501598321279383514336054197678478103162118017695638793755585607930495538957329679239261092398481141346623302320611218073461083594783011668712062843636737552211414656315773145686019763341528634063981545340005297333848793578826673966772625097146194009435821858446079184605965904386070669634304954742345665077610782904046299508563388968998903832898939417563906799571478140291408620071067855075782839397759072756408838154016785305917341430968211343744051032128190030355682798084506110513728803147834965290249355183448901249997681668858990270179599113025743047279422349056808387061410124020371271284204009379022144872171237654845542533738099042429850819744268693867611259721371719325679338636745708613438141346264938148249763327894389753925005572547427075753484004141538579173761645788300686123105287109072602853787830646575387837492058404169292368148393026141620778219716209461849175624990184270837906541466507079674959649955384186113193653449514541209252526967115640000277707620954853965232661260017360312728791238794467208026324220166027914162192674571409371071016909804231655971385747597854668947858111586034628981312317263588338765080232720702124259458853100603004592877847023152042994953432403175085904555385269284794971581626140365002532126264191338981948682939829592398363877582502669175397809762723302709584284686453018869890219966622212338872836960307645044720820581590174875496517938478521503773866505220578546001913307884489977563630667139068328511345683778078450559950314679681264167126711832249580899681701894789292143196012256252633461675849960040766277998492348595674575354062553838321542439614932470521998277807613810251429768026065055498449433026287172751063210637713623890496576024337489862287332224163188962980661793358077171198708265356524426956966588905876381706829338575660997146116621809944419585719597538190524845628329496046580727289987080469468691688138780311600503122761825020209313524446364555911238498518835310903905435447429254770797737129744016590059909545371660874616420166981648208674337864843932624258482010169667610591737636090440325199817003724574145724005208352004124579678415094750249401260143273504511067786077042321528185741221832453189533082817549020032799478368795619810711497500036548610176633063957694466506053623107163441035580710889369675658809381480104184767662974324573448645240564911146402484413669411540577968311065532867820552964055146415330086521329789236018254675639153495516823722436525116493552472419370482554256533818137717339414435897018024893120056794303218232015458495753013795665520827391158015325992235443563143450841774799863776955007647554667441385732825828242163502551768268773964053982104386950584280623592246916663155097201522787892470011543034890754464924250004332419071655011115643041137466780712396521403533657736986911958309585022123160149285094257499988032110815738434562054593223439186262385946245945958086058629064024856307586427896682131167320512413697603407229589330303787613043154717304996365574962051372320515234196630018994644100845650351082979614168552560280335233940147763678830973215953995138776273964234812936803842705664017383807770667340356760432831936877155007680080785830796930272958593263485971752302097785063097780534686996845838577488693413756486418836270187435504512556288985075082750336817951353866746516372772465616009238805098609997708759173652378056761195067607552133221830097345463430200790976104548179591200291646688504571492196949645102098657671099915858928287627576810748896765340974487344172568119361912203470925336713115822338374510336531229692928292778306326768909432176760918557861075214402671731150128880749238778095795136323629718967602194773144653672021624787754206792492068796998961918338155252890461328706235820685736720651833162510153292273930452577332938267053427862112619132461948226309660208846498023071667040634850496754116957374427841012206342871282447409085980427106382157225127558231913107542909899163080442094734632519400437141785787005231389868235827004343562292097061333644492712973703233574176362675923200375654521212428818748529133732336474596359054026266759009151315632977114805776994425734508796818810909113896323190333303754688013453506915136697537439202598579807135663924444468935467682354424853564368460838209551784797375381315544565091399954663105298474372103916041071636176314041731915488874600591367095729496113186512880957939258818540785871406582591339980246967566446817694649164028940218114559920756456673607068378973155346488923014861397458543626502949064845057988284145258899112377785508209796500417606914315986814951994125557182538914524690487994791384315718203805309742930926307679065508593782744683537731129584641100434307041477117575123147498767438726544374188770954299361498490953803681474356000519496726059475302362452103743032490708888420453464390910037598959518987500247238222037263677323018167627316797725555316610618357581760818911970948134913235856220313465891780232942556871124112169843152037026100525071710775791243818917572443697964413187251525426952888333691493489956775336381264061328816709659038795253608235909700386407181344011808781463160826770570431098270888839113335539356968576023581431361969081471985680622697189076877564445327499915221971931231195172733970402497093664040909938618062465249423617101384178126732843135321733813633759388560843890184704556014038498876730198594622057126605657667099817416668632208975949759805434564248458569481024325360809940443416901602310823451892820268981645380180854885085676010083353930977908513645442681866522966371295567517438454890818262248943623525144650325253085746881593736850010620253648181627392670968880131676805093755404685242405165306078235594077582983220447721580532131948519590593970222785848983624429152785746570361456614587667301149442454571123341230520438133136425391739172238767433124000160268683825850681934534096501120297303268847841047433603538321594911088177365610415531003601963344841451376219684540853911874320471446167415627105568049240012113131350822423502153416232553996754137714061236310557093991877164736189107185496123505651835331483457985576300357311531484219628156641893439522457459297136142307517481195903890915106585594984859048016971701630333051010275737477319269297370741973235900044328812340840109635024435417620807812218691562421499914230684887549994893057757942105875878993444059933864094491909264042528270179773904884756789533541512483765746897001602570170728175051708036585332569021140671463992413177095077909960213924950754434508831388185487116688703970321856821879032393262995873092066895713391249986782998573597978209454454285806004322284964440173697985259300674868100863474686870837265379023277805637760301213586531326608316776377308019207379769675615419513025348041595503602892796468955190607065889876972291288737164328446762960459808266557266635232506474629371547916904382017979379139620021941141902118033948133274950695145398136119248441485639408332520808609311535257034328007283931766487431834501324521030314842148916615598542853680709364603889644248527851454909458903653466344618619639994710545899316728201879735096960901399745260317434424903387540079666928925944177017021899922967887064511241797649106984919628650670475663197277561364659059623225569457542192597559978691196091871308793618993671073221340705179108753982368453513155604234055605253840342500096230840154900990088097926062651217113214666315387915571904752089956184278191807905024985145210344865267785969578723777512676399074397802974201079076047808494563887965977260174163564771042755942401262777297287700957817222784575886343709337623123969956570779846331450006921810460241484511530711997251757588208027769785266937271160601486413375397407182342847584052483881328572969737874541899180125371183279504089043478422919723935113479456672700847782671428813489352832015883693246599004243159031371038250425360463181665073327463666901197756611990662048294972562049321895312526982824428947805008359745976466561383481984783440235807012056713764440862791628783734731332778550959006896454493670259716687685097004416516808657428406879591038630289028387566851724539798236896303387787386064177371946586276069888526006133612479118719046351471856281178184288708413297189281454954052948776235020808382709493950588953034175174652027600646292159400938141340057497138746938024251136284552117749025030965568152314141987778084834719377377011662548346545275445837775337246931978928756163383138579522167403341933625566789500571665536915268514634818695530979119434669884242580863041447122511218547762394603172550280909029072776305594090206036691516863292720298096147900339283397200846040585819972026530960994764515500743423163105450757062963407224090978703549234972797959048793212422368908007718666800285483375562883879032880671909559764528479135953443159549188119357922481196730731286832666309831866971917391576401659935764730508096773147556460736038826041969658848529624554105060331056949575257380435931207990787506212793900008779541121153513812110777894023709695471641054646340028224060419530677147569953864901525170325118763015036465082677548402419623822452965746025797274569045841124466320941755608904302037641263424084945827242308076866462300957658875233101891077792549661314663372068472527752191529522797269850952341451542524046759411079285340630553551036189244183455169321629521710167401874237138587497260113920138612939333643907175701080669340794730456109738532511118032988764818018745546559344031797805678613871822199490358338789652252347848748333372858261637814016598828410323067674159319552947045561359686575308981187526757604962853126764464786164486929839629810748079241985668007012185634882673763551522480539127493206361452332580054132395153446208473182027956076689785986934549399873155661967367638004319597982027949008351731313281750548860873220250619454273770927757748901028725056514101943090009946611234037804872590894623342597050337460163708317526295076750132641918309140250357172277110520889745996069994053394672088829058898098449744188750342788447237533725243534822951690886782963084266056496767187273191932155801626995730422276441906087615164148155917379992987084389478995278744411943040552577307381796712723812874514521580905438448012658637624778331357043586604885868073727435377825726407417014977209085520535803330724316014331611759540420187374902016458159028209147352493848164962051565466350353514033246874858723182235735610287069263583125926443188922210891653167923374504505927081881392413211274538694873587703621529733372827540484442967267525670091080578374603057699111284176561210305202133924274429685266961609907083880728647493549547332323728254448351455620121872754468716981356648973792243220012523150779035426621785116523780292975246973679469842901410367130539715283911671727771782989708105798185913475299269540924490363001031164425551697759621266963239135026519694716449891741121619145601411394584096132980604941151945256153755407796681174679830413100072240358262801857018242349221297139613109787544907795956176318821399587695612315050074649313040677679364981683881946544576540608356060241237861274597628091516752160241480182285247802786023684730596412276659223745592496786656904836864996877851254647461256486934803426858648222461534613367927651149067428698918116471676963109522143038052837125247014288025250089536859208640283725841970482966358079846428376834989088902003127308930306145209078864626440885217638939587720186798587083609574995084969928957086134851516831767470338588449478695919393998434582932699388085302667003924729530334658642406189087300603501715134705200510323815227852786619822879227668203252208821815507970439296012292362461435103607180330013077450657319252399265855198231458964361645805914105498184335111817807887464667099695428366922401845039114172751043981643582128024121342742327439968170940118375356372958034281892264828259425647470954449561115715043177164273354934867371845842183891642075314035044845424106111718304962153967874353246365174483350857520193197409736587523718983517231103316687219009929726323447825342241961111546821179328808397087616342689924534174812772605922654490401209128586539314947402746156115695379450976497601875052187567344437696843810627210100352536163768784449431778244962868286419231958945429308386530369592787048412510872045595996759192017399051778044564878575761921286954068378283501676730717194705101462605731358832518035974976380826984819526213106226964574283075086563216252343438703981682674931434707847665446503481354402244856333944177280637056546126366622467898088312592738870816304276997463175039869590722574095927569704925102428295795375459855232429641254046437008485726757049348741521150982504211731629148601169429764008464021119355943392754460799517380956624845816392111508698810580136794958784144844826119015838242376720402051302716380770811224612820643697777373047558701478226882038580859554869743804602744379091984211673271847646643548456306894745861329284989025566407754395524366247228561703891431044139717933378535061695283824074257472768528253799323407196199765350869085364409853349665646209404214177528425956596185535437000895412933695903467048240239104130788218086504083939433517274975895758802538649208771514660288251072510894546885597396602697816675031973510169368357674116803704210341175218871473445522267106129042035385582180702170402191636986937821657146012097429050236376271773243870213880857355164493203026814675284261245962431176518805481328012041685666008606143596508750686130878702829184063301160929739207969321177359807678072046682145224683131287657529069301469768877584795043756510710745550370358212002822538885853880237705576692046624975572304931823399927064917474408822157879270697299831393872621006177083182318632209102662729527031958318555395270594692153807565997111136782467407993760023018551654354683901302597687549531024297348910936399805430971795292723771506657361002462696140032042321605250937980420024784538772598730517079615796395063865655555051029423222072524931392720204652266853275068724556001878853858683243708493354113389448625242266905814305092424691516403164811792775342515850217031395826721384901791600307201787587257840853744251317732563091567905330995781819793364681302939689548001367819887951229956240774312296285343827574415901969325754709905042192866489965484294671662441033720231278008304237294516699847909796135871440604669863295812042521628222713069016521300646228418820191806316838586819326916592786768071448695473136275529463307195615492360153741315229830117336330565765780615173196478433027012371700332582252951911099424425493454170209978351104560313293619087125831211819621074103658918247207811588177533588111107634366031157820905692082575797248731258022286422410502355183052547282588762627990345969313604143122897963571191539931698636877338035430704756611704080496668309046767352423618312883920522682734071873999638702479430658030170108734341532969144717730616359294297166590048630532388162579022489454962231937215227613578471449351197088556137758515995850402541020797284019097650528576459408923673601535343469725774325151653747519796359037720503571773691864181027227138993748833512610486877871705793049677629675487448700297268641118075226723365023659112156985603386836004186558887308615450365390055373245136400000636682882925524244722227334796306552501120740504920542736530462050132314998307835475788797345027392800050427355956604052762651715375581901807693801140802690342199558540243954595090786641988585277822105800442671857267789164912236217485972816130406015268488535064977311198055355345648735913542983801845291118759053110365818276123297036519217491497766461433362060735653258595385213202593967034310008035914411545340228665130368932565658491528044061769648894597647722547920774310671129944921764171403341251125776918120508154073968609858435135075719708355846334575879812112006341683135933832775869762936668960049694900677689366254807826807368869453398384995442689482814687945908374793379156884292014202577897731396353032080055849112037230172189713749670492419964138218266813964945196698078420079167199710577662992380824327152085025635623308207143406512538488054277944019619927871526604112865849110291618315253821792960575579304702271828941298496383932740654822851219568271675734379446449357011485178106038845886251438200433255611753068348360923915755173613916886277265884484332040524470250743477153408793923458651128330290891474356585306489899639833692786616940845844629517086948430422965897336099035448735766919384221183147598103620547467552498019241982294144927835911822398287888050277488789929595928600968438227844427159701043498605356744673990212276299438481461303372517290751574548287808890131972317436607416398271506441959435568988558491141958307228621374931381891574909428664850039513749888013638226296234123239819540670273882517972166575121064882384545507705002721076659223769640187312396363551016142168200615438479119889269283101280731640510204568440568239403534050624153005419780905035720574744701308358654439580048516123120765221280107151319484338196271738327939892779698580413246112890453660815135015881473197371822790790847566909251387797543485356136273591786190588076658493453053254079204963690891973172641547530217402800197676881623182570457274668137502405495866498780118180353926435478967442758404216833539513623920443106770403219518114264762317835134848475625876260877914001469609655322942911185713813926732709413016690749572601111663765277866652126319559680472934263622328150436289615510791924524408276965138432511598074805439742685946287220619651936640130640545818369006785495305647255203459353030223115017257435885523670352336650976813016724527740780134991254905969865495331894506060572555058885601734284548037598031038396975803703414010688942007183570985501698734513903763446198352321903426033386283472890682272626826314658616242672442316194767754333162179256573394670624919080645902759211386257268824249776135127258167158725465089409983392258723005615397712138178826804620033664993171522848595325343300051566141077301107849003846993329555269341229420022491716274338915163217831116124122449341269432191998150266460639922796726243498969189851506677485550507182549232169510602319152178222673808182205956882986264442437989784932876502562062443452974370602566892071833156867568498330002986895540758833150779193536305955104676202882350880734450606683066298693672955423200464143838433943185341100147976972454300362343236522225620460908852362710654807027788640275278105080464919423476342707767381321406338204145608669290202383045263922834802654408502398794343592590119319743710488153450362292664437011416091821345827529047129692742343218030322331929249704552849074837984924867940393761486688839677615860593450655205636167411103608052757617109475651292746858551311343580156311989924473720209486424675080402617883629644495612370619912219576372813439093147461697907716683321465716889120630380618449241847478154555775715940605905829764860180652002904956313277123716850108331798632067867116716660409915813010438418749747730118681596595742556969995959255613787861835291017508648021071846752052272883087545155709232183109845238782466053664693357195236756742484205309148887923008787418465819830377485953488305987940939492429777449358767038353705420121422822250944326250870085758553163936730535566239314811252103244560802774494990520679185392717322288574178407365313363676306478954597244268696612251768089314959329521738331041199420165709104972263933165899407828943617863034564193136085645739988646506589653146844201517790559908143808232859703051768208762441930047475963909552012128310307587368739231982454982591978559100365957682737424250887530226282790951705870400057302103790819825899761892139744074579200958872110069577712055263653101417306985653027164446538006355086337878285306392310160963872841033856084489699060766099374672533988438699759103285223932896591690021401641748386957424950276280666728873729064284728305416602175112214217341118207160680332817967607072062326150091884737725711113429189586963855156842115790176587507786421274432673642761436138855487259131695289599551026962857426937117442687224538950838696430603619842882733279365025239792624695465732752240488303263445577987557065493895568969808313160408624922768337879206606686398041630331388172194746626472242288808850039607715750565980569524883358340609729153484669821010302637687567927270164819029440198084874175111187590544350659580546473757044237911826697726828965253852783616864561879059344798766271946048383633648323708734335681030891673869147250988326854661797067947612811384911236951335718938826130609684558624575380995976478831887663172924590688195583326352925460935587449164838356602137635317411112217655959997469645846173690763079243490216152257933176421313982258856196771596439257499869250342622708883272691700053021903084616805407832522604452785632923225003805328850080081931578941790203152239414246449512089318735421624336915453476841830162542300313731356599472500125444184462119795396633688189273375241311905197535380168358708893218683202065150887591601605355968426953195335577646001428486374894917428673376707998382864137569942099802908076524727507238017766211169621567187191423273432214943855514144933457550269660467156595729654927199912160004730075600881043804670476926044513671672587719394980411029154733313036408953196489497290447598787830226226683755945367962420283213203237850526065500483098281567156313991957249156142600495432709767295540275075029703591705003392720489684134833512399618239782809162256185950312185434691168915816635091480940906980568664590516508929400884532573873403171220241978711712857719188605332093884225327559278456571236310232920683914668868531242445169323800552565594716398882515841086653742126953322594337125593812626873897529112776510688113372026483515525501497030756306043950938380501384229897663158209202367898354711587935911187710032881993295221263012489848563515248702267928734187198356135601811087914296692502104895211261742210410085456592373995156420531643218287473482778218535356236488234846669099515425106267915371453932217812291282554325112637045667394161299054336824226990084766185646392144598382735749735812299578136141077900636430829521851923365691896482487275327897696391699963579453687440467791932179474555326319802196827482541653414463000688393826552670541985334096130161036541997439612867553180475793434977679030512151511416528794059387789811348562635169310484207451881301154368235347879668543165251949781982272580683124076504210244120603129399161048840217080456217674422670224006447916432038220733484085750630419521889386947789607586057519830768129961461539444098168507375551086986504485148135919515827931161269600758875797230063824849831987108805083880922752964115953768616363606128921550432637469868715480967907471752144578979920782247272893341482747362875095609769919749650737505022061621926152059677107305178807331466882843276511953672852478175072871962402485540535308837227469555041397148816342261323970038840406123233689375028963997518584179190844111562676662894957391344586708812052814070766283967405260340675641483801350749168450996102657471060432373359096998013305735657368691830105037270241111761585542695460618130748071780435747053012127199474572926705041849807028897302070278017358823969469139126405225063210630929025810631612152803721060701971635681567929439654688183331821540095170560541720006139173030475699084439373228722104207916215606602031470862858814884382956680572675127669307650501917054554798754086057022910216460920441265627631800315045178155558259418881426212965391589321221560053407513043313723576663696543628974485482633130561525847816774584524586849048591696082322478798621238898834265629812537951514320862408309150748313842887471307409613783829086751110659979653416884098365461691440566550926697258589009791602346693376120727560440903258722398594184823463353365542916353416260915145585661475786753021747931704498374860068036409506738075912002847052359726618508837366554974367100479625198825592235216620930535579903380320645269985793602618270104078599427071310094956954440307922372692575621769805076180168013439131444438636945101709470545416582602529829477733834754324502999463733959292132755006447712799260330389466832178649239300433818429910728726790575474034894146905835390812176436299760310733804410441926899419473849825501942002384718988525233380637069426948216631000531415136742538834276048258793293536355529359989842070785750142595375917635121474005480094957985910572055115417254827197440215048495202257346827761840828020872042586264520599070090857838289018965212790005223781690966148299638452390252204962865760826232240711481827188675311028258908516784169494332801128394506319570348052101274004698044813591259576335203301117113950548117630006385035642790175230894064482641214756686132831315201396803067048943212487040519240964066623145059758544739428206220528244251411377964121733941229225820473620101793172684780354368110503322418861814775205400698246557642576712111834775561454373244367327413970546551229049403909181685568392081654066979550452048188919668224985633882086580710392366067381346412556247478690292216142446774734764584901916985296489540733288705486248986209432157226089078325456738498796097132941654779674332321239348804229653480121789586187039113099569400294452035662791592218009085373196206762959589558061004584422483107322512445934678396936694122242587780829537995511409064696381656401215280923009476635068103190277227628859026361962644621034970071204509698676308721415905705175409499788969918264006759774273451413900761422339316925168956920565055226716858521527091892044478197655656198017434131511333273379022184172639314814751586014796222062808533647376035835130027535324277398419428544062289908213437719819437359307379939003502726458171536816037745822821063020603969857159795391682642133131277602231055564434762578898953662397104683171470297676630089693800476123797495458501436387130941626020434332395200808294819816832202239715069613613564240836250059389549357349561877210201625032960311556345494404471050056368374446904712345232869947801139078832391604574046999291230784543763261246760782131696624862836376644500262515437862967420616522223732719993008254352993794793114616233283199370301082942707895982559686476574844076978713347417509736769001881588382804457210766542777437949904724745875270802184957252535589322238395098097505238810587000573930390331193570453875835867562011944900823658977234218707556425299135856168021132094155543944061654365459665340140119869732142417708165468624462279807162929859424581419897721339976056942893267752312464240711613727512543175038865855448163759399195920607771825259871140689775452589668543460387227236479067404044760102299180176629372636168490716279855432082225997298684421262102257046568484671127581245387893323006301202006416975956667704463929104170367782467002572207227225495734685778872206608287839136205030573239816117154941818580823310671878405806430164479601464977368736825572841824023438488845340745998285680857725618088096801087153436903996964049164822324244260234494934750444748024020463809607316836390365465541150762245332063713885449757481426842187655066577623156791147726510242482213905560630553706643307681076331597484164333911950341313364542909408493060945521504989176998810397463987508137293583466066345607123646694827201217818533458252863617765269184228293473804254000013222426240459853955400901414357187055307508069989323520329628278321680957372925406036802421634895678285429391295974154377168189054501102858241449646102153715374008161240055886205005098094686423034913942037032427122207126838956849928752616641469670330278616978230970325274522465586425073970413745161719328912258637748682817889295900947121823048608402808918199990937251804995045793120129031093803150342606402022277785416932355086773819675676645346052234952733438530327154567804566672409839044130902811705073095706757419442272085359829513270739831967499433913843188849829588159123163526460276145549014522373622809515065253900613476299544230426601111744646169895771851382854927589043962146598414901071834815465986562719313432563834125333610198036312966264429525408406660987336888541668846032083313191548159349779290538186455367651662380245039234235382038233322917311101069855295452663180146418830316355009712983743403938940839911074844393738978545474279220026381117268719677775521444978468523378024700178205211660820142072011551413159555161544055484937639147084271464732439035317048625020359637631629192560935156888146786425622779164474647140450160075863849188489873990837959472656296774652099870794986735988019037793724942396886167364592317360117521731780160327726785280553085580295250111391202334053911416573342341116797111681291510658474147289669781781263551869692666005446191677076850606206510355610376788446653148433305940221502763022164788132812782809933509304075370569942967483203155786477683108611156024567431468213190254134115909267738514870843082977887217120217575913657497283889459963861240334878199206634592033813258705661501814450081265416442372351711956364058361354188469540520320163198163884328638798910881099447592546452488398692096740349472053873526865943909248257544883076569929359237968340070023919153415698113284297003841297580043041561237461186568771487721858921055721896574390036830609361765561656650977502617433222289186834497617639662057618269987847039979548018408563455460132818211601251798857172490738620442855319694499516361828216623666952251615413147747905489401394548862835149170668583178111115459334673115017799234624090838217728255061399493012231457149960367338848105260710600758877538092385678996631102466994534704082183402438911422932695801895213879724834955104003073604019585783736611110510992847122917827459343348311060323802814536368001579065033820102233790340495926562499826328148511633709292411470105636169306379888579406701924587492139472794591504013978015926543330105698626241770809760423759392838816899880407104593182826752161706975502389886605009347208887896641468037025458778022525969101808169028948509713645881448189992378225925237835767251886768993334241029091810903366951160050995336551883663659629320200212686389233598962348783429973401254854756413898895926553506120449876177290009458190380003334184392648673833868863909912966947305959227244182851116449976629710979096294914282587149769896388326508194962566004251125785203995447126151445003888680369606522376995396647705034932036136254354009308176706392383687649400788727767568225331386671780935737871459361467611039941565607859587243060537993051788418187082349949120227778578776769546213212597591153512002390206586389843602617019274968969569911056443164109040644856360557151310013966490377220392488485817382768577329896032861670771602928719449491031848160119722489826630277407433870704305506850241944570253599161760144004360288764168801426666626326362615805742576694012129069981472517866267001750081501086617194535653590487559617740015118456924026657520614265718865451654153675355954448128038172906579997163184850446775036506003452984406504209112536050853876602077000498496810712400866721806464106698287324201280840820623560262265540494834570349677675752531003281757800190956016532382097424275673969304339881149167567917015209400424958338443400150248729140906194456609840931340493620544870469630754961671643228649927346120719541162045872338958102075614915042390767165130554944953751373025575981243331480443090349594012306969834977320724170327369295320877485899829796436169326698574867193971876740497310839078374351744232849965615437173366678390816440554055207499524202386330280732650802903314408110033635991507573448917281990569962134127733389256361597354084740289393894532815557069679872009667649637078947574104446702020204490355435128859552160969629202853981052376011175625514702583601103564694832264156477768742985982157404583713703026532261534442336926150500156849634437321318654244757461236400039825623838836554146566099879554883621368629857162470882954567405075577754008883697748389904512944086687427575261068173647709784760071697911810684809488994974767532956143215706912103428491574341651919434004623733780689361650168366656118331781745188767136700506568601066018893759475963447953111649213253766395817305220551032471209484069755594323508387486873511751962188286133566865437267204863198887788577369986756563709718538284334161890804828765566844677481369950659207777980543244501765593620210446278489340217047963756538848921142559574245942765998647571821036999363322328247175993452686499388159662603214799321481630166336436132015313287793778280385844036526590533079834080913818405641708622908360697154770655098038671554293426811329007196772218345134532936960145867700507855514205728281383003480020169284473701532177378817780633874565599976286074735962987031484610431421251223665976733225513253895560154230885617212876883327817592708792276215979762989248382223988813139033388591265971040281084310083729113521694114042497915869843883839125229546441746258556965952684552246257079839146868796542531084799767404547812380958961632363832811006564975785335257476013698530861718462764396251764296017759789546433424628897266048226810476072746709538839206390769486673047262648373997965747706960669860612000447663350059485966246673141431462740561172237089288841614024096267634455750785544529801308111342608481755119185538571598840449966532449042131121506633763411300749218980389656427435838875602739122899127683331974763394848338476426655740988030184027914259121801175869700321714655764277316725566276648664268495925821662546593508894432132413379663869814461403044076494874040616285007160531579940698585268838994936897734372581283758733083125965005398766622236800139191155351498007350113776742036077698826414441255877198754881147738420320845737448561630356818853341290689892882352390027147790807707138459624073713857678208031779092812882504888939140990722968969618391685455966445600058213031539148678694275508560342018590586883375592240650227762316431108402592579083181306086503014119312334066965679643952117338850040272285528923763958797653264834606048595122665054851850562969247689248012595367660304228811980324907746332969280143026715992206706249193803131006293150206569689852301712273059870360455321345523132487699374756802800429500195637093469677551023211672137077874561244437663311277363209607445187706090733294147710935254333159665097791493887995351418731257570111875550503520175987112437988652032510597013761031713725507148119835530744326862563542852632569306709993112282081618494615361947956647804007184542059166055614704055738502133782359142815337351493227358004073993964375273917293927848666536092302320915042013142416818497063396350605542014186710611756053798275919982718860913400980229937040907613145547681763934803631494859899982714468851073580876574008741640324261917839767690088999367228705749737578192052713890397600331962496757076264985699904164497862521923610513787672152545798296221777033680782990083371865481015043705183578182415388366330059467033047938549079027417749910359821196309783021394589563596476556805621020214725146494081196721698379426852354090513055612850764192827141685745848187607640270384382973495445645810182699591931983006811442002679732026207953104497738838602092678031269817343180825658917570249356064873233726728294255602482338608164716371246404283448421494614691002641815078735226744054979611637053538236224434156591563059580961718393768042074980968473702207886738175741992219041043098002641667830068546950780464449542733851444052294663026627425621646491063612934399830698112790180795789909726243582360926139296140388431928087940622362743793305211084270556816125215701714927777068427445745020206876728751746707588366955485339754442630072301069691897093571711441525889718406346243475693422264355327133868074641404449802436376530679524802602504750806934024473728383751940348360211461393523494575202783976928312256566571843609071249746507597377176452510961893962707387363639315286057098052119920272119100049628307762387556397379448873366180745955241706169821024247948603279359014691966191130696619718423535569943112944356000187555234958196893416499951789313452107318754548620608857702013722742206247019908684655102223959060138842461519338365099544136790759555068244738039682734102262151081886282803776236534614953923300013168724557092191948452529655426884113985345068888457963567889017579606390482069636739949298633337474605528509514512723364614986989181816862924699878969048630193107479938301169822920292158390162540077332659414396636625331508898392240194391247152552359350160574403751902938288699180375365529499332925455087618519203721567156114934828648950061727355430028424672000266078536629906058416010967753017297961187583070815165745395750188192188080398271642683755089176137795738594665626650779440912186531402322874392008019574745777975928827063058330179062933014096157196217721804559990674185911715831697192570976056536948742663176620701819066422890042741084661747589040155512383259985673164199729559170107573813118885791293525017057897431754606816727800993358313453908732131690835192491181712572916281813412002352777304799316919215107544776035072791610858090299719141720440918910991755830520464444416682514086354989321190821847658071617923698270757486614702197110952969476442234750295075576051709605732372228615455883344259800460517182410848065852345421321573921995565695229142499772992362977632520116462334581398998455894143886713302122215316185014272232042166355153714864514316974022739244563870059556365943959490183972329670116827079043015873140151920662567106604058492498976134291621347642957497988057490828057360214790857975892198337247414389514583623740306361472308491310370682402557995742808091764515842980137609523178286525557667772483142483848153165446319720957660285209059537393210864456605039060546618855290837913543075276320971639438379312804812108239268765396502643391518125834943024376120644519036926161905913270092865303722515345028917708596006914513537133206211377459405026429031004056944241930956360840963803711233818262648060241295961408314224780488194624091820543135106124321034271099985932692354784702514937756473893448098096810468817287261953139612343003414085253566945961856865982569112235362831349037356117391548310044278205295030031394187653921741678589787803202841639221104113291136197132848859696960048888004435562298258252282358300316802147462302796848598194398582187777720362655820662920267646895924495111885720670759768002559786903011832385067759776581959074207517906460085326382937954290280944205574516505015345464564235055335037818271218534608434952916091074291337396924981537359458066605528692434333466276657080301120139155145439889511226937623949639417151284099539088316997677200382727835516743391888801696928926040387077241337148301316337313889081557301622884384803536677470898057652289604541418910117327516662062122776208858274660707846962666771993854244222121700131843081671095380931350985362027076320715803391545562450446664751511799250692408760394106253249096566383213270884673719178471740940325596564581409452101979294491716033605279667451712007416190174665630246821732003578859296679411267675172613413272707561796993940069850206960268550026542674995269492120698960788983354563988760137866213270327818162393279491170923661185563284615307232992299295163238587307462522788759516499186832089488845959628984670511286819764949560681701392333339688547342909691673583481623593892550546031795178066161278364095419707695050065851522375462288801323310475121922624136786803812133183689355622847604913029878345566090309913684384357148102266365865129897879084543899156583845450924000476320235183085700879915703260654557966346138489013366903175350728606236543187094255788937756990395107578469629266245237151839648504991263849872946210221633418476655275559199519456085283376224268761035809860554352768480169127545804407910076081456568023588197197256538100903241325771594545609412148482475140689483971042503447855900714228338778760759469365576107336093747242634758931168651546292829331729472868660289880637485113219052861983353248851002323750159157772487580884934750292682706791019215388935842098217285882037239709756775221822819061146144970225046101073868368483660150988205282213732243115416613312725623561313626764232642219268424917091896260459517732405819578968238758177260372118630172267867205053962831866817006772886565001222044406528770570512261510606739485676247103798123741994198550352953224456866938885165235135536938152089223348095147876599486731851685247774249678920094931328304951467007478022896803869723375231527358563658347176476982529915401765307114112436096946474776343789944876862461256742677089837846621041015852481482220501839693370401496618500529505799946275167458185159302403643057968681424196983312757153324073074755329740783533285374563987532518293266101889604883938096314788587235134912362250128718065960188944114847862101093764699320400493584154306968915098434863845112453746648988877126695119831585004399784412291641697552633274035355625756085916584554904474114334042445042441904011947929440238944635684188116019865184447963321514801224327184425901313852343481941478031892357822400915661470892663434165026233636207112131795191387198602617865692858050627153856594723024328708141939348291525261381318877549301765250933682744678881150528307410283659158192762132303616038702389532524781178363129365188580029133613298445090579013971551442423081338525913985728366007917555860548438550090644756435053831913488226559528300993150689276425363102121957291010149255368353233594808164471909914217193731045494924440683351945778743146729163979077505931828685650640623434026869416212089876260046439484951278613269874318259460209121321266220679081987321125236362336285894335640857932591940506520309083642833147886685234813227970923418790246163779981630120117317210920738207248134357859204693144691269455626506462895255037740418071975228949167878024769818873315943754185766710738320127937241758030667855047453014567512911934245969768282882107701049689142449329646703665853885553001000191579629043863267986854331791116068764860119960592643419866464844450169132887148921735204430072069938013186270862683913487633101825361912275854683193721075382877616257184937938120169000040060973433941699755150038960695969811839881405890809731631172544978478728500863543234171228711321007475534552823967113191452116786173706991569955734126691950494871681440889687833095559000582093223311726002474908573626175540070166493473242795859385583952133369253950091322989768645594601398783173655926047370323622360384931855831594929987216092636009221441309934191634695631039800210328950530100442301787131636073622183813856328427195061994987181567704361191936607692433439784850016781063112497699192425027183555616485160827873837327621185744476828450124168654836366036466930591761176301494058035601282968462600932981297667539818459985420524731574230213087198086355642201462694205813150748838795585633482922620699003593173511357449268864002421782538501909982932158594404763179623839192405265859841902391894067488419138626091766145154848224686079063847476746125949864453215949069089874411819754258994440309516547860360878416011702776241779602474888137299556750718667006120161167624812077277548641070550549076927774129447538305255413141608969210953170150174600191250381382215541256913321108922462074587911266527904404796543698394103209009888182323437464933156620877682597221324240299703230839120657848271591733594333002426848570849742726689992418458867138877445179797144008236228228244621615504060500506149416596908906761782404715692326121223972855262668017747978301886926046815637924211919220788628787482620880071089863694456252866141930683794853370729082865763204194646504762907636865843688886584027904131533182657054601508366108050216096564966068771605557663010965357403030598720814763670104122986203757106381753340224861193869017900146784453847687656846873336520871274258404853788386185102789605053557125900799252455023382154318871480252400692778236654026196791837607647486797772522517294678195838378476598033771977846613395048165476396012848459739977879797771424820644225472153486174413531174530092008813386348287301829236383490373347018801919871779005049395455531948088251185020306733287501669400603024517530599102287415396488930718126210414081285681039464006696921063814707627411631828333312764094351241656516870190827082500965638733577382044780403139968671520363636893987409586070828290271227365269571518827788920921705936679419880715259749250258211123070348208915754022642211146015177834635103660446896558739151215070312612106769311902592398669393106722414739992118010004259582090989910265115141722156949971103434868320240444334209420939986303903242129465981554467268704385667498153996692259654655305796043238988124172081829115898950979210079300706252245875869354516181185331695382738449806458297065688214233860113776042145998557999129413385061836580887545391103033571188545224585795821626436352075323834485527108889148070974330384712903124762801220604762510650370804082691236514975026991960093612336083828655444384537768812337425155959825169116761261371614653315294502617669903656522189980574612777526801969633836490997274843146926370581179331953867999324737059493859146788923877010893087004834430782293271540745481228589096432609002734684122304053564169527640462232830850431010833428954513552795622371795988443602391161527064820538565468082252202958668380313502746988010259411880315716737168798812491783513832319635723342406037361681860241519324644046174987037511752143199133638421241662367744893864389939578708355995133248124591511769692385230176493447088489164702563218605557860995737776073291479479302175091124275398824794191675512317860438909534505266590138676512332857222215831712280167853078210574333307110371924055732476976102523494685313028596673690834476178525206163575576414071496905037905593709128617625415999569071293407157322055100368008592645696341996538580821049606742576780793414311029471799523926623124750387029614150002200779606698454694281982722034227934200003858204653079736006938670369702265952736776157976776199172490014938320568247561487648957677094576125365935653827946535522332262611794470602391057948710244813134035952172153572793458504297547322215243413427636063333951156288353313032187488081229469420217101561836595992782484324914751989366388371825343100536767816883816227201076151841832856740306361288040881501856695596541493707228247970989976879810839875258474822708795136458368591119375921338274228078053064862937892945912482248511111459932224884499836666614624556077212728096592085809504077876956864818095673427178746702284527029821425652590996530943835381132594552897545660224609594221543469455010595899192859828358095843273463048910480747808059537789470372324235646651059497692031959347038252482899451849077178484551332744703217909080152592116392793742544287964497240394384045374201661546417334557098520744894564809829302007424004310035354519375990176823658256342936309752046053745757646366202372992174004958896653750264388053525614033323344216042524767272811838403375004261519782804747632438840060123592183428306340966576462490008417805987487188569461203917606320455966786922181242017158141200904434645038094720674755515805298187507716009254839657213381363157018960846896079441891594555041053179833218714826219545553976706441085725096508566548252336677828432675042558316970081629470724361125179714029596173824326184478619329493510851467673085045590886099208522452636088717575813808949758090715859002951396737452275328567221330390572230868353642855177797070809697344676021328941266940354120816133441981457239977839768180056250386586251511942015253821511947885575906397594216564405091080479441025563638352199548870537408026502388207346984277563380561245603118802418076560613698276942190213485173993011226781360750299522091376835423711425381093517252599966392751239360339978569557905672568670782479785647738436931904599171427654690640772300065379393445189555551756601431444577419945732505324501395123757143050912687168645528588673140110416778278056379679596532476386091156061245626940382500918328718579630226924100221657860962612822959836052012018191015447569553151680121206865902937444633208101144178339662585625337124285861183867755965888923565529657911164505628177290227960610523274334509880655719096446333779235880657841184972983286099825716907677075605702480651853030461219480038935727410792939751468473344095422196978156895940138674331064547639485713864396718542812062880938039409865488916715465367169682593538640124885609899824094003067170724674176442054122790810840105674060130605431559401848885164412483014594144427281341396479331912803865911295857621207764549499474026025456739568295137675880462272204486354260645939600818999897994439121588032443688968110449493117537093061669775391546791421407882763119839060183697052184034407316173550967702750179774784861135388345100136352861534105033632862135131952887467678263262109894019655831743584558137504518107281094302703003418132841275083236331711913779863224785790630924063056597940779201688995810063331167416437138849457111445015777983260351467661840853649188067299856721689519172825695819921091372949207020263140053294140676346334397210265260315208533375714411345828946046249746691315719323836342996456309483528028046212642481517303880051325049621996489006441581893062392961169091401629233796300866342178499598117756462479734036579043483038513255054021004715898261080182498848536253831023731227083991918823322294870164030712666425734739034821156668283688340569565923606149168553568830143166253682399622194968622791943902496825233001057128143183038949684858402809214052401361303724858252819340148475404964891539662701591920835072350729934220497634749030231081175243979191556051729199912232515491815058735864998929473172021551022256913311254590127208761376800499281653820059229149085563984441386921474806524305514409902345242540818119920018677340357805829700490751373448331513499540806077475116379056711785464832305835935054238420949681287678724908901454251923651700283380592304368148435135224464458308044063564019932218910435225027482399295675355138520893968980999989924389497786669125548015552709696133570502897028036751075165679755571711650830218397358176431218615290693513309502635432590952638976396038085115497389778135348334863702367542745059755666104704081572141673538527459942401289104430959962542494429351087957897610214018479169180925591184089324368734506540087119333208846606090408317129213560785093600868449666399824234974408973732033860000963686242809704416101056055094285503787614393402495262727197947796494053418289593430075481069122816131449225836127255564794985430310772559221796925156889376729550161276448817779135565380313165565264680433509073053003572615225647701476034145687474177253030885536508468676325690465498514141003244450194981789227489039801840872169499161384329372158115163403042319710970822805341637119775653649694795350332348769710637368737828974787649379576858415507018999956414492028065301950170946191675179379996054382643983126493051777757476529505030321715822364887060557115599664086655830300081878556408058249503031015719844793041583862629086742315071810569614581804787797791080339737680327271010383164537332882228259280219804262900492967213803766777631618400113198294361101201080950471720613838003907511845888955168267048066433030980102961080264650419066885241651968083370340214143325931303921074395723325318538821312227184039547437856512643180502176737358747727300781062061480265605355483054338554509058057706941001518394853949638544109965288355993347154736051600825789900384179227087207710710920156672313546579634319384947317653396148662507589332854806358279459423270952083495156166792161518344136716598558049899994116855605265394864849578773032752873741324908210056140085593356067599423002498435496404452275589233993581180924717244516730141657114126629719299836395256458136350973967142077651848195836575683716127766299822885670067102780188684459672575188329445217857130662964212673912128198487231827350759388764910015827082702859186926934554767236416969481433669193380978585740290211580816492713605427321380478133961076871724212503060141358073578972120966072498500863980120942556894952111609445177696887530078169328692441505256680894078825017484184872230028321691929275134028259230500126808674434097858563142196429566568668562527968788406586038619216602116919272537499604324935378367529962448385305218101401744193181498602446510026365041402344821459028355140533441436425718685238945566293205859095184172212817094604735903588012680120024106956084887487489924916540436289647326674045958541247289938797152470401955119143103738712902312753922492676996598140916190753511040901590058477616118732641056921048487652257787238780526517250229805987494784944225790030366654009266681108920016748166007944821469091975771900169450801487525688468067234584293259619963718205858970583857450293573051064708650153391813906060739870863004337559838012468205396602368586929192194748540874684004660677612283690693487284158340381765909559564636964571788593907535231222139053518034554187982482802694978787771783364877082555382795287551860625790798690352474747815615640155132748604328616033298894518412792629893126336202391586897372770094876198447690754506480156475562716247084388051856719559845387591795088253923015968633726317858790160356417774370294701135644801556902506122562977980393905809458052953366443919479574672786004057730867185809300133912742869453293999363108302984279955968487548742965237952414043518539828622561875344717914536627596671889053006664744108112039707166616230744078352721941666804759844481696752124482510071213724461594685077536310186005076249968500239261338158331799465608522615061694050978771800843457842116176011378720703452783888375367221472233663163121057432389327930316519351346466658479485863265714410141957541447461594846116630217607065064570392737162732184305813179375449177214609285380314551360576889112284562183978160786174053559369551288120470745561338975539822873828207890953203834945445101395737061407659391430074807831216512631065067401637789235052093602211925768153103920189299899488924697944502495274270537214954077486411016231809097698596993100399847628485528314228215785005873403481404460603705807949991711010478257485528053308055197124207774688074908878994919975774999544032822137447163577110133770237180866902377502402092267250059420587093929601691496518758517325355964691027546932141389533319231034023848307589051914904494679454831090132899077324518058793150202784968887016851253032276231908076403833315293403972900190193780852421234458714940196038083283412682637412109152306374504675560608973746985490448958109747793186197219554434747147378747091991185581351552094991381599545614130515177466145622532161946154954882956653892852337408738741338614068490160679105500446485336964003776269063988662262199531039602755827980962288873636504077384833843521920046917244283072862174005981573381092047574151378528166552740084248367875577516649434712008676632852444970908822728027472119897134404275156885546577642587093131476945102120029058088427075508880938924108784379134617920376963266033193046715600814518348802830106840915045205753614278376015444153325448620508253195554213794717823969912192037698026087249768226122475111359146399455905275686398109254264867042376367171072196036136033286791143603236638635311066562770980845572173163114893765216842154152527073184545930761623543878762948043884644236973430003895318892403157235650890269804955843456869594949019193557701071000856704633596024549951885713302859594259974839365295272254698979178842444908363593127663002528970166156667900163265431663754560560125236033053057299621796306183090938048100866085375628848692339928106023440349437609618455855298266641708759067533936448591960475813109161280601037233865260850597270580052897364637957301750448763879491023421074518112418306283399685675423381211482033650456197713491675990632100667931032502487732371808596845881725713035894508926268226159430753414048803221878784333520584867833451577188025930634326832040906520892792758430427985308684542071210050417639558202521345297922013190381822869507118439551620876380873747475425424637175860638067712887459542465347936281956651911455961733224806849887110051765208600248200131947832082582647890650702418118499450842896069666642904546046136036328671759661788968732522302389170722366318615033279051309038133810698643944219802349537955658237030768262947815983327188974900770211151746940483997947544533287726223605199904628894998285120032032293394684719244921818700740975228450605555925429713257451737904214982687829753434399815009052088894853818086308921007781917987166303738230076441274105190726938242760349270832641210628826264546620912905034035972727975482009032035297197228233049746425529053151957793214371694566844465039815006340376572352490378854012632304276227018933023670093901095331619671878989929664893586602443154836925973966720513385633208363110478355450713541542234832109943129446276567125908176533712487706905628792806143564588670257565449613267438262957372832967432630086546123123677333724795931251223844322642923890278899615436509755868761603234269176192906265778067037519289528297478562186783559149380189537907721257980416077192036179626203495732791021593737230808017031579842660389388575503422696861753475350608852714036274849403748061659882489892276665597210229510286396838051296998404151213193837483081994977223282902507948686405783244974444970097586848313616256397328862449980675141546220820624659745019030909640510575213257101991644192642795313460528798634636099549193742320608453052539921689185157681882485063914031931211311683022611365391362647811785914840760889735059194445081680001008574477194343045547058139263338312020188362902555998299913366300660741191770197060382008887994144313294921815598278873116496997869003494440384722123658079546819509924917693344139845178767490782479113798824203662661535722598236114564163822300426850239214713121134959847948368716484763381638190109641606854923283623142948802609259585691903297203635451313719958368240535231616596510904144023960599561683207667804507702064983170945221927009092604894278638134982173426143639483460168230763078656729389766762965966936940377740972377926540648730210180339901852169303344962115348622425667960562504500176296493516363051291183547042217942225918391006160983235565093428134345402661522682022066789103928635896916532833768978606035168673192085750191523159655033898898217874404008029160656011089537599790521911450386955396295129416789422138283252193766912702067803979357387946651855970405114845332967300027438413453159372170252380802153671830638432869843720860311213528826155526100344654264298505616939022346246947542956673217017642305194052031407697766058887629207321162240107118257644965793066114262980781048828113799515201803055353771684107834494548318727175586677756974567874560176704083167193708671750906540846184028868403984017311058610250687494973063805254496237013031629659999743796704562517964267893680823532832191563580050146551548976195742156736860206524467686793647807101173800601130698767843664410199333948685960212459671732051114550106964011346939808444740288508484736085517262129299500281023473848607784848391303898513340946058065724383214129503394429762823474652600662883749868075627528336091748052100782912718665719866825912216556142432096971408982699041724449378800461323496888665775257087779030750672179771793861905964271733148383943057041876788842040071613782707673639377486269557191436693269015398293975309621382825297865997136532809032251965166858607077771653070944471506611415886567320979890276951200581705125915421498269723539634199870177434172712696662585723940828550643588969820329971349128325589160510050307915626208318620948264748958802083724378411353342465967175728785029609260318758446612884714434652656765398970244439866495964852391961316858177636965287883528792300612925712528512194067389002986742017296643074501207562503751278386509325008702019143892025418075429592035144976448064883180769530510138135489901703967324581509373335834053632715507142615420800618987626051888744611836973438844183358369409365053521571656077725404858123619764783206462561908503731648039069456769592849379397195771925657957942274870110166055656470993557960026729340460530990996039457173087365591075374996474092401187820031685005233807331664348727944077532848296804793298495210646589988572339196769214756349394772163871213115772862287032425487134226007535338473144095966565176548598734777477101539850442317930175626547315281481623000663595453569402905057819403293315693291984337312878483657327322459449465490810992909133611937085822154994778258774436871912206811727561583121252871648167984108119825812383080487508012613701446677643760314018179840354616289302443581489964001369453775821297457807103414898547593558149987670097910344939429763721746662043563493138208578692803701308325183148942486716343676674825000294766943786192882328623567462324482968266594004525255194524486651243483644062152027810068231954811182134547456575923840652639028008708986480843148630322895154176450753339333891105377045738071156213791084860201714125383925066418452880888574648847639408823925979655257878582532534766819228653793434587631667234195168902205797589815297394194730037446986128607057567599299831599864474534612722244240577736360500716817258009352375489108125205772705598947384271855064732186756943578350336511398778864473835988002749383460079691369137569030599195258724838076332206593155769018855570935898946755670183335217907057434752223137426853905241707889855280365436509654363418781340906795582180620004868430065121713640464296049484809613096384990834797386442710329262104063277714694424599685921265490432088503381439463034914138292056113265529268347218796914596452102032425645598529980022747311655483661722407540439802958429809879724437081624332052752791774211967273981540123483630482984978887591408199089618583590770155784510740913101468167337850336475114515178134157407021873622799053081017027110189611671356317895441914991904547981432570377742767879356909319076992100422163444056730525158336836329346937248558062065205762540798315214238999569769272548768184374636612986161258630808097691358428597997463962751891026093644814810596126237019552449057355364551816554002769028078407189259243913032573823504949964439092967744006856755165610207424194115750906661546957842482614766335450641477823235246412562175524393605811145163086287426364777787727314596058488158902870540376969036564905786528462260504333905000515242089863898949640084486648914745924200425936695132701459370706417506809163311621472473724457080286194170867614185166182083667143972638578738242773567353837105405077365918858411632485803137565647495432230445662096314951255158328270068303183196032314878768050225903930066444760629065775118344656895014520902934541736735267636158424104941543765827237293887786910767703310521282081521519200561645165762646317592958109428854492771396236115834056710230202026560133316310292086582957311621797362224762261928042672455905365013129808957339270231966024085709419833884661335286382533779294472984061369318901276376547314391627694295339819518271405725778764593843692925509061026852034641473912659745395135871680744051073370483598232822669533991162936870617333188903165544083187660384482941740625670198530397553201685888351355389980138088673213870278014660015952899965635574745425726886203786213218049651173383570115123685858364579713988731866984117270068034576768063960124907574415126604412125839942776017478216764442891887974800634073512282207279305547065958393574717821166433437755491078911974890158077273141593683937380469535661573642493493090845062849547534002193093958677272099618162898399537562937019949375324173242096192939801495164713435947689289389783288094824349524253796720313770654211438019271466399606993607262264821996161583035215954559492418059235289834783768759401808600254958653925485916537042123772398552988535239674370953265927898559624307606707731720183460793437072559586398067803191705353998956099049412399425163901691177982080297330845411361729626202531021376435800314564858748762392303094072620220257649707968977992258407256746849869886299689059372189587424714521263864565851420948741903611384934704053692933759422784261100710746565422929879182029179619425785253335579020788114214085392228510620427131187584008692089247561808435212840628349549896264772639439216833351017437530881111718134605382580587505131676363752461970805233876732612219242002079592996909260251345454764345031636110956618491958819614873516863615723997361386361879846629399004782779979008875474005509896675616959669542099417665522937471842948866604055244549188086938666440692938729777915953784734201920043507591375911919491879815256981403025938614328641993174024642365351506681907324919306783178400577727110190204167681283346908836431030979175724928521941036797019234105402713761034016258418284578126960158078174717407634389722861763260625222435260194952797229422062421999215488267948273504229631235661929568843405644834879597972660866471911046651994612100171182008060734887376115654799626679061320583836408037779311317131118863686112099612223048025766481385172238423589227179391807103722898795012961948891172299398524060184019102170894698624271899537462430062830797752005252732209597762436674137050747813833009809760644639711531719841659263206123241385161441934825072662686218235952415519057151050386207595332206769378004254409536654706110788611151118622761810733159351426624913003874672758556150772612785231776481078192181642588562175711131895967729521736627683401136564504708367217019861078343425962498525892607811261375660630424763322467358027942158077495824894839523607118570320196505518208870740496077987143240018056273313113985695154483320922952377375855269075088683226464858919212064110738423392311723870403973368265430912909066582555260066624160548623059795522588757254536892437825087548688986679514465889037238171494483298495029616890333278142969430885984838202033977546561175152831680734785067387869754084433596609849437709199460311954698608872567105531838423095320387530406954012058442253920705704918192953553333833672632351570350743094268616934613758228468030449979640865355268311248771043182270042243339065858758733718449793957405925373460495739411541335154866042618527324244932713420869378198742262314220973749253259638082754397952139357268939098325479218719255685619949982424970557054201469867350628893052277828083481189251282881111232820698038411373022101609754513866331488478340423601131493695142996821877205485458951771353772374678658816630847594892344698141462093139346552174658033630338836244682891338212510354357279732584930529980789222006017514994717814891867836074324123151378893909868306454127622590777142273395165753833328538482092444556984353863703711203365468041604141379350421792718499756299149454895671008063821685684825628944123132875527421235835510813812498497180756254508202062781971188410079443540479501240869982682754267158868192691284410919913966507691493109255332583462525100353803004921555412543957261239729159728841863045966941483289194039496616057287435909619226612460576609481262642957921735343912446775796368836952310005787130089867137735020338763617500072570495027295018749919208299511702264812965519244634139094866800206702825688949549524240260959417333583747126742670587342754077744660689949961788859837018536616946809378051357152532822812891814750235483500452144448795084484494496011188898721726204533172521896473272336861488592187803831199679622117433631289354152834912620067888449710586693641855121832541732045787109422484107468964585770270938065788736079593114448778442624220100334909781936145005875525946022400853719160526937654444242253869908261769258167581412267246033007909740206321894606792005761975491834118112712750795480006354703783193448049085646032483731566121600625377917293475959092147976774501609632251527138506413727397815753544201284960507086093454728578606924660421815159407604192448762594020371599872944216319281443133035086461318961913412343810807550898710261045897671298189494366069624510296401504157547072879930152721559698602483314472293658763268010899222852473030061194802860469650279724590862413959205299285656418200630558628353110313034517425171866301211542123243804620770617137143788232415279435965210205734634618172417612504016557473222442736897323414903567186824862272961988351437501779426188825947783303030103394322823037394776179456537966937063266100179885610667200693290696736653963742001576725447521340285459786941072651499497860794755764937845807584487581080425897402177913312355756792298214274725571638200061823571333281409966479052239738301654388911708463690408441092965944163046579118891175645755564045491033834444668412732013430228823982986306802622391000751936794705434248915667705120249268940248867183928053725785549487216796705732711180733872726878492975579074083193865706506430956052070851416510998910371725427638624865382739898035061922034986769478565971809168100767972591405083545924549123546005681245934539790391000106435345410852893879274154062666864468356657408600674199112932145691479245222708853657623621416867945135342753978033828135268260435182223946902684379894985748395050927618331072764107340497615735357683516952711524663016969926252629391737560746157159946933895438557168110764903960052192308925529498280329756294374599769825494277694383658069340043582294298868277805016101152544996533325723223424987660414747236752474820297435380835026628122072775143978591880424624141440347022037031325093396456298595228842464187920988535495264707766078990494656643646300074152521496431010988766654588593676269927575928648432616591884529073483992543491603907424372763451597915975406288791860322440203947488276075930790464300186973637957104022636378185335186955899019241828402224098831659797185297081748973276347264092890211620421544033930803794657061652861389286647256733569216135116020941503625327650536843914106838413611267705440996857455416524641574461429119356907470339346724784538349774499931444779810132212950483031556038402368926798890995988062741375121442631865764223017500567440778588796046507334591105718854004716429265901193590752697065138237418637985468521073669743428920624456583940272692755812874374125985451396569300649478698083422568783818154607220740937769831651234689992470741636423780687200033818487697476315146134832440346399688523285195195917107288901798640956149399512798201323977285588939984730821326893521803201171961051755504946170755328440960720239401858038531246550748311945385287946838513144493308948494710585977281569630516938011035081051331483242493731648840303408330961814820233090096436439034607640658286578462344891312933335474983598582628335432611643331980183460363683207919780362562652696181690105351527313780322547445218895426225782683613624653120858758808613050478606342758314449243315420684837794941808897067792611164517247213555444515308904258499199268914417271657368450422891587785705366524920474124255982935463339826441588263292629355189427144181913189325259182719610969139494404120057754065970472892833888933108421292074029171061188349888863361013604742415932374302912178200036911351586774901622812136927340558577855067707372935148451771088526719952974022572899139820389159945894527875028756879296477023817232395162048903151951217144623544541635101432388697836185927319791795551814628320001994486724758801675662266285839790270509142716535347825099364537552490094152589976220374134232865775533438841312068365755962886700034723254780934686239127360510363228824227187321622243166688973299877465260478814691842981248552417113034372567782873307882670488875759851097198438999832894261389101231844165560472726897750922452325404699575560093969711608893652535088484393640268515601872261332643518489482933221655819189039516624388771384633447413794186609927638315803139009329050282351581823041312707869009517071023052727551383554148845413277328009726646536251525368330401201785624401695249203473513937906328644737600580611424750252880027963178466998889300173084288674808749258449963800931375762594835121279611488872412870440041814609581281918863769459576101062062913365973981503286041656309057574809387596091472692821804683961843649143438812709536335729097982462165912172675393635343200937382296042290078325543621692029761068796487159957801054899165469804466037315669614876595028445238649686503210303057699881254333910485923266780923373835523575998301230427788470818482985474194617134732897609357694227402796423418517632179590370128715468752082768150441488563453554351515647477490006870686888935755493873667350305595836505387337705880192943075982231639522101524227629952337504098391021696514963993263761209169688842771942725132714382401702645218875145880537096935691197935596321280912199727618218115654207195595415550878394443382526090049706851713002430250644481182497159749316926682147978286127501486176120602806103928707447747894648481879742708046653871211289169917086043976594508675213373576580334383027125312667517698318697970269437811921088215852726780883325485092914370437780277964322197278325208255062661819513096213235896957675971641393751354019451020751688788694391252754696202424369952465800468791442864121110020050351229057720791934624064108021467269595405071560933612084267335328123774395068888175784966731105004713658107556065733536349243958348452601830930201314704545760542832442826991339885254036668982112432152241163819631195782489118349568375747511059375483490233607473228403630962723834366761198314026254478291367773839467480214273447045101195478494320563542340916470726587721883410773740504255148830557928951451753099304103613509862932637761788531539941833683020325403552207159926365836753179880313323785370344472444339981441819730790795248678195866460590068514128466159060052349742843122170624586232445125134012678387235648268285064112207540278933605712326269554900425210294578904729472219164657130340139324724087628000843053762296816245880752129436379923714299559559092006762052048118497970202035273096241533565765954226101638281699469009745602866894709042770898369308205863024933065972883593303540541866899742573769067868941924195030919919184934365881406244212519255297413600349171404583998100122992405167715054493704058042146291153742847878016251858648192812262360748468725928106799972402208398595412938566915435644930402691235591363650677142875633814559973421132316592870239701504652551321349533249343947590725314032179770801350904386544187933576767406631491438280681607008748106190216142797846021074799070544157068086507221877787442889136682479619864435987306245264658801278532203990966760180058198096986224400135357280109413554275212926826505284461849980505493638881821868146676082608539032795381645193489803180226722975290448331643952062343381271963751732082673975973638472879304399284026851608516619676215076611014623632038494555889659246633906941087437808706914409361667350683833209286947305381985770724873063260360855777554079192395437597558902284335306624213782113142207638986231123755630094091407492364935595902709306530079072532832762908174244482186190990740703107567762729934567269914311275526603921297498897113847047262711631984159695158258126418804832011606310297070763846740843267904632328214928091358871670164499945852775138293100235767254318522514930046742530289422089175008653585913030352144858798567838542744364657694645507523603071300186228652986105117777220488195215280553071560100660572254646592564474333264560291961231438510698646820677124001475927316400149754114227734481100906600587536981221242784850519082234077717751372180117252562232362205750022991806689008322485128894527209607157283709940103171237369996027104241227976737563992794943445521582219155637476098282504848831352439162873367370444416825318759610269700153557180811427694980004654378596705738883537074593948926578710629543359799601898404211124176899714261362877323549119587385516380895668320784073201157437112793503655900577278971733714635474651018704029719354074376459240034714651262533527237931486919273007869241564393334350001308892366060966726397483107880038442017274057538551211073875416250975523946379745220930905155694414752420693155173841283486719122972983703745306953982731807527191423994951345098447321950921322872287662483807062236660314457027531185620984897024862645610400667852307778369982913394248361438757019744554560332510109249175790641079732436270098001546956865887808563230946700008111327811348225140919229261122170851715598525059379782045357714774850982995045910688248117281823106473962532012236063761462672355390958233733184122407101101693334119955161091859871676184443140378616932308951496390256894627676736854257196209729720311054404725633060882838964666699291521267958787696201861773637032843648474358567627038970388523495309539985320164851712901035422025275765501265206886803127968429625682571033342613323188285516125814063313643197343814853654566515354985155158041886254279872261757278539280447675815190200632538058749796464020235952443686929781952780850927371529179008221933056790436074383970811480408593163910758789491399695369537858090500277799567465844611104906568667737670812059302688469206397204700815545067349702631692261753230975456768083452037022930888635516393626791126046943749405844508586109601729939531193042660766094206495215522053263865133497950736055604695139159096343944819067374598189483006339067203781178545248959040464205886738624831632499488439406750277121591838711101199293914328081283520854000411423058046277518601638425187769635352018108680796142724538350023547571846006905603987742144989708373266776604647172075915862207669372514376377490692791417493848945874750319883604741127353642274435559648483143286166215639486547234161340843821150742060964695983484204664601795781263897989547695502129739082267361178476882793761082738244331692767691654165001407796264869911298653562371731437198595083440094683069379465033883570449769542430282797793480705370732955708320893442024795063759084758482559315698789573375304856047670754430063530343140264636700115296342971618968363824773649748416897318042351583700977140334045876197729690607600267649632600835719020593347029484213144215794015970329274515352921490798480461568570103689022138096423684505543010728557786533546967500478942028395738434666490802438578722156005007117729565560419990676380959610961331271594956563780669631145760127437207653681850017601948998986670482730983846522865617711692051741106239178971871087114145309843696506991515930246437827525207339336315284427536820193509493273924948509317717092608259319132424722670457211868078540687515561546052534084508414983215724655264148587517261087350931706169285329131167299806511052297461603091878746000970500999777263624183569317886074330503376362036929402972143291281233621269439299164612935105179502001388688024866335764752458872366213238814908389294503508012840135735687976213986086037574871998130070675494727995589310777285461128878481129919745795254658412148397668099538389565847176064768853617613987424958356509911462808286225675487308227844741841293270730263373094315938774967544403830848471902255655363429092638796052633657882369723425836457747221026687430486695734720515809359257650225032109142100757591153355958368786916414890343833519943224347464353926873452830062994070094405461692563166593497043053027170841074911911237340675328528091033608437015453550525080166701981837493650478872545049902717797589145336731646130726222915482648777466411934197556580425042605116216026564455912501435951793492718686220658832980799998310808648844414829805017812282409714944029460348455747368819946726958678694846473080273224111873717407226762118905089823295549778524255372188926781390217723176008967285737529841068613655013831827742489122372818466522965740439043528565677103952880801980974220786742399972453930294522197034760261661332054970653150338870677878620183742472684247266605791142219275339992951124738797351480580727748006938557665046962770833733915116257144135890061242634162613303022857823238796761754125782083662530277015669649777849959178440126640061790438626710561101494676980803783682451007165013009371061791698463959362993573804095424880770728928445335685392578263864284710541654042632656848058384432134762534435945951429949890311055801764772675043016773542061654749114249480810218149959578047280922276409561487127861021534434643125623181508532440857563760143973905125974201951036405372784603504994397840747652437163225749133599967410427293982532489972657203728453218265146979052550919538778956530661755826966580259096564141457595545860786993738685067555617634521773834346299126998818768623652491489277173970525367362130043035226033616990561265122284544927255759516491195338678415998056676948119814131535546275288455744678685139233903155768966126438742974019069356332358946277774026859536061483604339220863059610480721269128236363505570316122704400793857162583024547239985253839223510791117287181267185550992793740064425881685583918869010134090099862366606437295650998684749050419471469492854908934626715559694837083643086769557961006091196442127216577933576775843880069815115226142307579293464387911303454126151078349419813067879310395811356411654298271678297734576103274825147760741283792438118099061207082303635999879757421683405129691450922132334123786562123339681872499422498724559201570837507516701287612265054691498841009714049738942978048050026962791395839972790616758961722581514241197400103343122304553573248581993793212404859951027047627611453065426805571193459973671199822479526683728246498826355612905583971205990249529496665320468027388818598624323429163890407410482127380934505431537859232459474023129021642004727987111173335197639714247209295725568714247647047258399299773313956704442333825969486367384598174682687487090181052472047908677261300388472407987373783508969941810624852322882032188415999840039432886687314634159762115630935859144416918667441288288834119802764236420422931388630221455390981802195636323834181735981181241173559351569251508811673403664722246191095872499600759894430674172123157042030206821458998389291092106667944087932806418274542066665270561831869691885123310233126993051141493236384872695933616447568089242261838179182799585323528804895150910981699283015858845998850629068099483760936928302592743810079161862657226006378061012126712111819189140668638745850357638710540146418968967439819113454262204806801156555263758663704823567485074708796160761400487034758909161242999857080808443535567018782312340769218752833317861226854790402936373929373154625872764644431733370779335302792497666827044733836241453570889278305187553270656648801891473654470757525557982088950010024093525179457279671986558277327970537660563083959525489062295159531967707811741790492139683866850671488587096358188528732077240499958439907578526936569739348393035443722160862751543328279512073261293691829460588202030716942506798633023401959477714470865613049069749666832258864785567787038881067559132844092983956595845510690290737562920899250524058279510080784024341596324567955536287407224967189094630452107740975369527342654602399486402044316527437312247125660206865547724740010794228187383459644335644884223735710900636503356576364650522956655623783225803721940387244365928734550933751475153755217986776417196574235946098936921848675329597755806515425286941708368899302483666496220025797491844578189164713728222939426883913496690351058603107705444751487875583705533466741243998226956040225515922553918579753125909416088764336199348172861484979486623054076565502454742134691730518541264073369202212550007259459307643224769313513983102797998137215790086377363809830942074583557294998175574863162738613996500458525996402754263743489681685840639763069327724171321759256033887783354817822299682955741343626485855291921880307130510196782124996970898543440682006383422091331795838696897110865661384962189432004566307924578502357717140944463512305225300725484533627281458283057456163631185263722198767489836154947065842597797847645132733657355723490090954822103186707909013031119943617222252939812501771005579024940308357657071656308810742229563530688055942782081767696510668234018813895426175206515145439668956626758049956059585721110039037373813504200563049813177379300463823686709728076284831345797866392689160717609754556957068484607682003274778513411605816090802193133450072261023744198647893876517659710358507963550165638196013278674029975168301298947462952121292085546411865082646641227763547523525941450276411943426156698175584915779032449887227589971999737460529393179258692195425812296724131532045335845879061436221429379940663423919389512791932890538724650290444724005985140549524351224941527167074597780094892024208027689919153115362294387296872416972795135572893932040070457429115822190232632674123130998586792248389547409803229502172733366822087745462293417987219941805750355561373480170238330846953116645897831827425419080931693150671226448888403935696755264330743316745968911563146081492690880453356186172130385045723630389542589890975650020085152100303137126461494355076768602228831632641802619483061036987181679746533199740375178349932434517121734060386532171325137279459243405525199906354032418483862710792261144959930059595963582183058359950190884880157395052803135064963254079990032602731122617822806242329112194112190476618888279694665075191514918184549793162973839501206552874876706121050673464128163933001847853745284479195456801187743623657666411184191701939092556501984766588602233544295808674396998092261181216961413893559599276832347632037469706994297287897873558178930636847686591548556781453204309684334539723846319109469084117032914306068157915462634988364365923130274235207582440648337641651009605621521309650840922728539158115043875704637467556688040935506356721986228274179826372524284860772875394706976031427180771373434970063563083662995555709057522046775881421878698388627283786036697734287016808736504387936435064512066276950630592428804972395043952814600530551721109642421687187193026381940989674948384415578326990867317032366365927609813596547920294780651840122084041619658064034125985343077091514317271814248779685347140029977013282744790646508178888279027294542384883903901077347656826627213232726196395317857260308485852705090325768010409324562066882485909181407487502437200437906413700101975117632115046844314476843486595414638434242419909533498584095598947814433183830337984961904399705924351708222442705242594890143595709006510223027226552169202879584652663247868631864979919728423926641934298598594116596549536208193002308608987260507468434087607025216745946804157422973650793389964208131363943992637662656725355882571974863527135210009092580669539316681995352481975565363533749047661781219243116745771011798103455465743231844729646676854442452311544240196190620688115938157272448411218035711851411134138454822555658405544534240952435080819286453040423301441731392280186062874606383629765748379341648169311325354832491110006794331936037533614251774911782360146718438207029204337318737406234039205174676477236576136614891788309571777485593947779689544821609177606018970747161251518354401389234953855604585995000913049953865351223250547282573845172372621150983078166081165581386342846450902331655864946371448263053942713455862479502653625649170888794444181044142938413813398542627148910704103359221298850755768925819222800256975691887011237438706405282903321503147828647563066594590696674273044366466665157421924239962133826685613800451903355660468334261267915598671812275518676276853658385319226371883808209393591319849213610879821617614872217001372063606368966821508532451848697949589585795837279172025926137807374024125760990653274614711352176424387443067813487262121473799178038784230809145844211636332903505533137579507629039760165444650788879019933773454454249898696216336053720668508566711985189723288660105348151990743520654956464600146108971213190894809750452835853500926073417583673891947480320963734000545824871981626239483620016437350658451401078453280668173278623783865443973273140673965483762347025933025766702871430156007444067775270105114788192342930806535179996140281603488344983969229753549322033934096919646289673618427676731155997632525190853939915617488033072339603291220278273122741005789464985607579272114278034334224817500740953137405790829419387103462506097231864661258797924110536238934870628444832661058432652356128914307609983255251391855035799000269051131587934288108650002947268425727473597102278935582037386381868539881970467553637624951515617924925722371928102178376185282948356650667523522069192383638684333413918173512338317463225767967928963202494564968077336033570153725678169599074519087772343570983822306280506157210094796280000134711138879347163392341719645430202616468252439112743226354895446838452110764266028563106356269982419662723532589147027921400928327400916941008716295357704266917699395581468525861939339113368870282353104018632454335598811695258158077005500559011946766753999505788321711242874955626744614106791953686208789650168238579386115249676709493434597666649114081149848039173608502555840900073699144546826987882002647937919928268706156404387853978281163167738800836632613390739995055730551451114499941677615417468449790196507733671510672050623991065981790234926313550607937732468688995542154809246045259857545423122103964489139736512970288373705692108152244559218937041346429792438284169674857546350085505021437204065774077548279521346734951815638333987294874245975438483149267294276542113380531496900011514570536374906675036275638969990410812568102413513280658888004522178256837952213087851944197842519145043242433830235342888879190430411303090353184146336816806274732412570270882445975402286180245935170478317472509087654975820497812608801023315805441261057852023047051302850700343905277025991194233107837977570595641505528586858821140090214105627237878755339954078689733530912767386158572430453001047196488811495817942072998431892701168287484183584415571362773751274005685468980512763192690181530704838233979570982352710091052890589850580375496816215200836936809060854771631369418882482076423507700492749933461265279842618739482925182090045228329912541494199866419365537695376889634314396971722590634829686010291828918305832768852697832446046917103754199090377123784016978722784771782860868646400945776753716951743567627503576858456266675350294234403674587029940006423928588690281844431474048700216080165104975648965884104392463308765820184139646002862564672097439564992498944880414062008908412993202335477413299520765578644605700865568694209942332800513287339121313847634255664872248683929877267560800660506789379665810172017731150833678089307499494841981552908550372865196027798938060669832745219824304222618128155540749267541505475433408832618046489815913091706226896082154484008054831620590442632166609597086677685562248329136445282749430699488608645074725964123262070050354024683903651271498431448866489643401691213230000637486095509740760156098234213678374216594682554623614790300456855726284109181360238306045293019759261403145771617987941740365434930704435041279641643907706817540319149918185426829225933095327437090138142713147198425841841185293460346989058490730375029446608326231446515449301857780398737420748486448060395471519280188435699517337898382251836782196867113633715542058381560053959636423268715882906191921082431597387376209796758940662231551990891598585620034986974418882519981958566375343052389983594788272148575414716019518260065265064505384406851864664647872428222150539033428591907891390122868181000995063393910762156739282611452839172839117604976946392441118643453523202184724387387068185627518617138386547667100596382831463263172158793515097641962357731265022085856908694099208233702186775559447936765242665874222336138227191431566093833555160366786060347745396154607953613755136546186475442082920278627725046790311871432675078943858912639885755237615351445161331600230184565915729635631523702183909727983922398058079739165048858942109625408175224820724394870622010263477291422685660298703864619934787274686741352532925063188190932024419070721168141950475981413585172282647338407813565849051833797222319846216754740737474348687900373915492378163221153739105597743019904669015268548799877599349259888254165700152330855260452430843249986832737992770738029430156649668144717245625389261827165307737683492053273015959319267204780773420599255702386731681626061267255990437674763941599927415240023935495354087808306967284978196614366045988290549629547301709866659967793675088527464605618525046998787367198160024830628387154569938277822544658374002128062449608088917567499447673680289303857669417428267773659563124365522429209057264549291425101128360294943012455325330876316585818496759912655932549618710982891509554223906498571742603772365518624150198704452109438881655489972854805802398787116391966180002958642907195721899593015497283314760632547599005756347095353921253578387639045024566225325485266702736865347396078314913840152046006649743038064660326387979607712100343578676980987817741035065892663818656247285033173549637691885080793602084961586951072079747181510899657018971968263525335182893761875246897778948935673195089936871290370715541635216111749443662049707324754746998891246845575596275078116901877188872790266797209141472603183962658402068425624616388636827252992193035360163189585454192068715644971800779900754090618959711226348546249522379217610162970740753220769381082056188178854417393091441166894265316576552179647998651227165112913912638208385985171523966262892844101179342714407353120923715491722718446656076027314370325754368107136424170928188757379714107574694908149490684830948513311594429953257478017273906510534114325375384453443639924261270024525862155632631312177542145170867881930567134256426967032037987739255739050078859091677080835144238973565213077114136886396407272956945929235416120401481040668548727423161902795230681699682312578253136067936287273611094709721349301188505541997238675192957532122030494579963121779217168425831469903075149660061350130742755786443284418550075161612690713687950899538431192135443528299985275515148663277355978506183981998505121173532648522137277551799400254399166005787552099906762641633611247160080814934640342720105560096340559620895223337348336868345324889063768060143053196813880101020565840683613467804079680815403460528339241678782862217005364923321492157693614939211504473129341111801056020925533819815039787887071346923800665782139047736090897301814213331835218116374292576362255857743784657611133595310648635241847670604086562252792294938554919529993281007774279274167256466885839002354878710892551434366371251896548998188766190708608220355110750407813926014141865135373039865727159442041944198636652515341389216213251080018386981738571453015189503518521974802550282895046429551564890292448411747876571469984453676194799651846920834538294311157777267967403412148432311747041166641241269383835072167684519539064043804058430010443777103068316727149514341648166585917029078995989473720241017010380449357480875703577068944118159481915794206803394671172964582658950294509735254756535253867197878960338685467580125633220537312820619227804934776793201768171980635588133044014793386326086151931387822491286871703925837173419166786654606617996129712244011302790244455671741365618877491644811457149896498478410891910441569889693528420549427391352749701684239268128919139831267564072665749546380419318141463277467421537230381827166626477480616810016579780442741484924345560587355429381578419100982342390941712786997604388934839826347479341415832758654285300865163479147714231492426312492573878493212668274188084374642323927086233900232634512764050784012827946996031951698492849129943769165890333859961031301783891330119934946023631879109717080661516386487181976171713218226920498314330783725313074341961930637105857941555508521014715366001396616584172500472832273233300046604356548893307622657231770740228436389137540263252043919336162655500705181787615775360866817838186642072656726812927164116735198626357307792410523944578259110529248516960518269938829579447980603168003674695698635221407596058030575896529905355352030400584840237171240564560221933046268977599709900407422502078103479202841213172619498256104660670077571096705735996894795612959732602253555158634898969865784009447225691564468857549022429707356957130011210162312729001072869974367970189821729194321658104538215916199646953461364862358721548288729140466989577471011128465863645980329241185141338019064475163177379168021934602559186803036921449854317540211702465680623564105236521430582022410484687522008440550740817759410108241573098095394296743899742034192459588738371201256023047150721935434672406697092039841665257443909816925953440410444703626039822036224409851300697150251076796636127819727954232556697930601656701944905409770698808508764616571060701353172681666849930273225594708227867101128662805120474474740634090372905618585725241463183387522846665967742901847573844039590154490859219856637129230246781720972511727736996461214956196070129573984484532481709863891539314350083478942252088920320817867158277804376982928062884774588773000148914951285277023276984672912264371454972039293547744895138173707252373445282514836831015950554129435531126002448679299958271488648383943351980318886887343104263285603967763201261921759454571030913809558164567930909388275071323806101148914916870684736860478567535759910067422677238387278775254766247339051487019417207463562246938046049982464650106596808019993649223081746991049379617475587722444226293179656447595425793124149545748006725146899940380802464085567569357415873433997984579187272615387473594750813050689669059851158036669477094733782334994352821987668319147853874038063720364614075719553547275019903114694017124736897762823683263426220823305981428640776064479346140870441391347274981844291063484513244035713605022049939176383231674398180620214510403935177023294643623766739445339807332076648347083870433299055590225129786595364134563993991720024028591804999203676889598116106101274415692418914141518866596643381031839681895169926972266410280353938413405481940603586252668576335700147075614755477252213921211946335597556915662294241011396816546291373755615637324936308026888182330379014503461047579151286147541271213190816489948521976720780115465990328851320419154141939474789429435031080032670895951912913644404385970532377238458447640225057805477253960509113057404818939651645275598414083777540556427976014127197829393583186338739471298415141086431546191039716919749580950516540726083744608631991359550991160839165740944239892476423816722913716098385509534685002449558106095729684265923087354801123519917149064679764343324745903702976624568747734142345501511763681459900822313339789009412822973673329661974115110439295912759109565290566024249512977120185819980166362364451479484056918660132296558048522195050007987279078572085199328576375995120781329325885116548792779024308623099213701920541690663202586391941817355669178862898384670007345363727011039836171725161409917008392814882355364207738115109713962041947557009435747298637708680754422847340863661870322405385950862998401604742736149103954444060887563340437812125542419762681315259665046064215809611543590326687390446202313678764408411977318114345850111881988811011747893489997647916831148068104739828037392525082230823204408944998100445626709041048154704928072018935912294321369107872072117399067817834016377958521321800900453755867111090819053936623012353176795953727942403470684593845103572227202259656944027137290715059586674095900113891111190185068558659071422320018832827736069419808241796238200408875696551652176801885977074223090683172518599062043750848276181762893761973159578731258731404464749723057567595542822093453827227092486438306421719838248985519769667173253817157576025649054413053406678818680537580880098649996501995678962325981452626918960029590070438684592299113066393199618720061686230705274745376829276032594946027967302277957902889421768996142925015811896179854527921902498102823949312345917427646702085439091892189494648058826230923845975717444719217709768900725891533608129833087178100438221740883399445820284215825551496942826201964531227471786064267029551567895871261986831184416369327793096597311044508144735109908807220686036031539757965348071584927737139378147631959485230993542178701788929022534694534282993164422908505860896621399089299990516773029942977001890664947987914278884806107821157992060544873440267370602731823234745627040531850700831467916541787029707949714696907632899407246394520133382301018595298571916620431766454383276776216466753827759207638317718046454322618522180853331743602219232822985238788161546093493509401644210619360168356739643795357898974336305651782544385060132989518346065325226990301730206584260215781892797434366403041575892260474351679280060207707211733377014441713895015787936869369064633303304595664011564228370940331094684304116951372648123662637148929571787438448755516787546960056620093359996584081733259759671369765196430277308926627177843987159791638401936251364779558792051197532183749334819519173003037520020864696056209425512160973068086764096402098428484465197428537248539661969870534569682951044829932943913090401252968159399651739889551812563562180961461534631202933442540094748453617189353646173532350386666151960068556396717239168723164944528451798403741939303264908864910872464969815697065834733783771176231244913613330214236700328658938085324843008564641569796589804588340414416303027803060447928571123347092331388565880305433368299778004749810842944521505885746990294176819406422029277912386739171016925113608722189531426672081839982686730708709727889328465007799495158816746466429879906406224940168506084539159037552183642494330085831368350977592029108164897535766247088807174906503568550923393365186544454609343843631920593450683089139681245316274032395610797041694961645280845133840469230748900260489119605088375736739006307983628570036576374110762662793281863224841720923092870947205368796314908410652168461992807754516797534823752059407131747136899830813413347399355722456905792538495801695314069920888890435652428772890784853591909553391250674713731987973440515438734647354811604608907367100923377636431627643715247737873270869990814740766013912694740742977821363795486752798876747901622093874907626833198781518589677947263281477481813166080157777905836956655238173901632824087896671901114428534307470375841140815206872788163980730763144460930758266575413798738851614991122792378185398807988313163196914788880795907395787005417553550425154435530366406652762206822069278073818412172466171037870661787665966235980039982200417956138887470387949154031132944708877394366374496332691440206464953951972864182284037816932533333899729027493743320477921295717657730044146363948598390267177102416337498622203759148088883514107257594657090668817409155683450279760986904107011398732890842379886147387601437977731804502428456909415310406709823356549029896084698087556484712630501218184156028496511144681249690125274969568678033334227542044424427497630622772155689152686773915393643762493079909073714396813257862625658735928659785143097964490383525455946807304907071046263659891586029944109523925806911382965906385076396162780564440827554418857280962714380220685715253852009670387319079803060666387784446193530090115555180599498369119853150691948103698623419675012257985777684625070502208758386911499356303190181296045513155894726656676965191697189081943178091443665300158405065168112483399492519698595956430595184846055957499149696444689803384908333801374632629585783661167547210637025291723438774051129041434789178654026101591551982261734764214493455237359002807882818456423995606571539627695609399760649493080379500237265417039223611896531122300578210234917176924313233224034850003256527513472564688389786032298784109230315758794348338429206741695692362090474770586178175565009432001887063783504626794290207261078490856381118638101702080079912821595914542509823822171207804769183747061853423805953037334238535645115023021601955856958731256401165942764810773929166294532617167874957096919545748441480188063493953881180109113500032578877881675485543235185503073379374236529752044589681813257729899326555492938187421723372984977507790099079944506052667511003439795264883025576006402326712959109671527910741907623795635279830595806822143774914722247862185828574611810832710364508002484859917308971608213822148175058412545001114756811895974574155030749065450300583814183305550434047954719405384162832119893535110270470561986316909103998056052179733570202512239826841036411893561703321072128716696145257179407676228964923994716753771143204768444824312464625157930959544800420487657430328812267611129887627294568920242070216094438752676081993080905938309172255684958707985495717937709289042121440076314964233657816860254071902239777841746642582365373669403854642187831591474548189752609401372881785559582812340644612703277184585019745470387889868842291307832924695148812674995882826126575723296994429745659459027940930831130383890533433509126411215737090298163576361711872291219598859348730317809453729857962893579530955252309935786283567481084112535747687577023855723758951438090512207075184216219896514985379923978007214559082688737701352691775077764287288443947855814683923446798417333445770262637420174538505963464319435202866115462088797998092980620102165385041006294523390214813083938467261845347152571358587317160290026942349007862434060902648262934213594073984397225548207995138979903015797019179707590242742813536930259494250290460657828777413701221483881482068378549365889939762766725101667476360324408077400101911012159469416855893623929049970202948916782620901138368460363240177981894397746074110896237698254978954060334648821599151129458122533050093118954988440448577956345207636078605079665684435909539563756385352898563694431864272459792204776560145167460168269735065246907639612076904058988567163988886437700532587418197333714973488123556727378343639381877428070119311739312383242691145426679635272607235312586719815091380645433758436821266551349217059646864912057550310879390482387199214451571632123114623570923424533893103580346228905878698425610174768811540896520595810210077393540975542206461932561644658666004759592673075063094529042561547184147228921700981580615938436576920159427647663233564977683352754337842210222863879518771551597456074734614786715722763010253856623511127122126866716317734259912991901969169889176759270257604832246191826609830549425853399514296880632558067932327308755382182741463614735882230420473011477488361652932782561699019889255206074541744098845265284102112128575019692878891574717734131001015760086549244334589494763616646086963144138463287373404459642814007694747930576167821177466664603193636293313912084663214822933167832421692285929063265320969950404836662913243337273435837171567985023754598704484003734727593660077961676457907620076520010952381334592778450895820624841790119362182121890834062765813150549808098694030552668017436983914293925415919467277999731976188885946609718270402041792865111931852003164862931215298426180540031740061875796870482177009398619386438287517739431075570955243221408619074175625091465677777692905427016108273334819979980584602137349741825495745231314447379663263497388923680903521473475081573571653606726054424843830139599605463665834594040176784404920613463114113726604360032613197669872605389769663030339695931113949840569678248147571900024017371195969143729842567515919647772746506167278870729921005143810258597168373164318563623097223042835775718605399408611470511283408558407387560998908583655314878679154638911642058255107051361087158225042266921553406174237719968495396972508231892389391716121116918317552275173145677613294465441706991965567081512327095253238920808390927535546090019193819997138621916867771153619136234868421721183455360854208301319619077912994759266965889694130580368887861727641010650501195237536659831519554334682932258395653404915909404999484495176158110134287720435082841781806507797891427185203222865932857416147802156570453588947710383259625970917836712286429522987838204411528753571822925537499683297158914852906180369080335145350299173283835476572618167757295771114443124004697031151265656043125365640547525068005143752263898531262013427454457987780658451243741369155395729237804929700778764396145063655937668103901587088550971388020303044037964067095367153898172325303619550295387132936648115829653962686229832241668137275225341151888602106907123574363583724865163423593147276447438523607487633966475258674716132737801039378806876087894115858823162186732107831846638696654790737499492259994339966637369067248964428169651554067619820361567376002665304646350336808880176565362161958746705219273232184496086844994871347788137003052222461509250839222705294392027605740108128542804999874514485524477140576587022364247977853987508394361369416180109179946340281055553123210512783873707997422453766944950087356273899731497624469049075471736612739951264640536638162098621127856819269029865045646053193016617652068866220301761454842080625359618381523865279738472507638748467988626040062173086641551413573055656949476836617153631932830551320737891926862317203704299508453741515874021604673670324750018894358638645712843660629950526889952392174996627175187962821898536808935394921396225182117844778103656561855646782821560614129537555023791996906918008638207110136725611101643278220059826534295357407290059543451653451992825685118551131644367176423161551252155687950346626118641247302014744836862329064020561302454785304588862614641738881876683310288012117790536823131891259312812303312738048491236097593351962006486825317868394134269534488221665708085073272149777147238864512793756436485412724923113040336263864739203481395827239803757859862693349502209347147143608296036745361419724932018625801396826007794815773327730971691367856489871133186598763931050676864093751202389215484937667136326519261841950479475008400335571685991243647788373712125590349963016419486656347458204397906634693536241379223616470800682496059789965869400553264775445076394658459832374491635949422325690952183027410159357116938139428466439523922647446623807390065787959369675092583758098457252346110265530217334881039704072600360525846953719601248529441512671462625777105788616659200605198880628150022617650544902564436014885500753791852830458402747089179387530364981003490381416057215327244764023934653211337904837287113891313011331706200938127726872183691617785342733193869801308980087159491321791955365577975107398656499786126262727383320389647054727716227517201653760223040784144178653690069839331000176789630669365342500167737750578447897264793535891831903750236656096483346752688557112122384322918114007731032310174381782288563480346312955934865024998818506596509854329202446825010326755439211463939195906349736627671917806377602505167954206228781748554083820741855119909259242532163153107126317751935670633939421370436103130740263453646841074792821918217861043150181160832358082041465774949716801542473172397989543020068950966059011232686369259721747314358217901726440865365820274409981394635019247969393277396995851764127725357630928376115461448370892916739017856535184291667780375683526259841277383832755364291483789816436954770309341982395113167394609072312185715749401843585627591075485477006486360825037031455134796905888526082968394369008874915244928172389995253415440258010082715511370397287607700946004925483913963688313066252014703515354917441875041691303661759122027836000698619326321835629356517493325469503391579145722917554996012177236868411802713717589601572586331392632300906592326452209757246830408891336691856734028568723040040625900961189895426179656943573886513747900796405123001001571270130783243339168237547856777178267260095078558125939632260050557836539677378192958947788077029422106901108399499259700394698810208120237116226666153122479231805444754019511155647762112671452112960480360644040382232019837544868480563880916080907536956417095433509179865255901346548351628751504642895849813875286791599356735651076853186636573824234229395076220569985142585313625296465954649094023162051938785916812394954430219003448703123752153081222019494279114698094842444718025051001263238954931181602365231722590675149076893855878151535976751727257685351009511226319624757449011467640943212514901306619447726251445085254746539959592470247707037225245310203957425118673531519355905660707541370832778677590539959667967951627851344532117134789435720844070626988706641021450100813877855689882710454235525292327064213923422462808641641082511618321974360692787756686021737969299871049314827681680298646748435230912856023921842172857206796554342438738546385929343458290434656656004306073764334614375594229324273586609023277840047240619148895873057150778160054256418571425538637250503406660188709463565577528866694998200834793672054993300249240661241133572013026519052338944198231787002845266797146308526039119555979370164493224182730281191621032293649207728629827992528679715665617124665532890326969150708621092669139666267050727694174390558438540980528121717383637196133643359249570066502414762503906796489070696027397974972863416690390525009865430404399402211572467589187110761908659082731049644280344197739882943531097846010448515468246062606476947920016054176287995810842864598553700614854977793671850428558374434615064232724991557031047228601063374609703967611603670292222615914599836003269604863367919939850719030190091890250081072975291732005089906162020835637093346863074522678721341613938293854706928974888180495476095103751095726105407742742335896196089827809073340704751817413964032370925352533873890596148222040376011286610819032363479897444145281683523279931346766615178099691301499390407469016998763800698516662968772038867279001659901808888046322881069846885299728974284964633300575975286851013247897895082192140240366080119926039540286608546649898724883086662850834399049235608198301129910674046316567064979930447585490747365071230518802069808144690876380038140264941859335409357529055833835253337009379726604945229519592940879164885942579205904561955403522758184701827261827791616966285699325680592705040862870687109690996570618148917118508115656568400558618329681616588832751860297253517988807159834744085502701289920140686753281034587725464147392294273525843844004366924831054904299439662524172074497395013793746354430915818975335426329771686832404142616687178024781758709882148037719067881163149487383227414082602276983228992181270435450326264602905507361767491693115472759040194457839828044382587155289353303955086240476138264475772278685105115204550894399171836626702813773897714402818486780826249192578938212654032680675127158474057449651593394837416501795489770404518078411512575194936489304120789736976219326891642647900359472953524375833483161557371714709961987040337959092708241181527001068269655046610708361353776974358108032826270727394489852116373405880877156385772969076162308771861715794944541442338896650303972320347755097036205216560952100916606519451683729954424967650921122378022208751406494024104653634671525946953977076031346517530671667566398807491090513093009570018214401752115638544709649009383147131781305185679089780524304319493051617761786758221650829618092967583516273883627603313368263569623217144406301972641953376800958996190287238315231951516213752676820898562896821324581834854221650613074338025622852808186197001738986120489248595391682719113788839466065316318792376935969876620044414871053781898936716330282279642833139908565253183669674121314645859650118389587825888710356955180981540460470524594344735256400784902783256244892656383983336954702815930905461358070570822182269068889606970012337729999218557157640255610638699228973065221420583514892120690160477515221630361954737461596288652955770198014798528769834492942557972871004373543928608670630572835287028017859164859601709254193554621962029565870821911995483691140840674576579325797675440308262236295976907899293477136918855818804123139037242958825808575657308950376906101674341807795769256655974566156814379088296929329110411128378787960782268808482239816185840280889622970451980495794654793178086263956441750495707632402193951756437549459707175735458548117791899878004840967020541369092371517441813499491062002330565587234107908329437609855405856762892146419092784016547785668525184612901299150237508144161946192697188338683349791584431380529864835061648788853325643155151200351042665391620320511562978961807471843852819349411349629258848801354834907315028377378627413575041541467059389417306943460370382232033381868328141555903465910080128615295242854773145758292868003603227885458443800110955163076075436206483302367270102784096078111744784792855935231217705364665157960954784530498497903968607058714221322020153965061720117361497156144016902921803390523688950789203904596679069558004648290707809856742046806877986685141739808669372781112874997008640059187130166966027529812496386208306939911862387472330021944155182739776868228607350009131201657390180815928741213569118290925519264293315340919890090726105768552464747188781932491572924367743334633054054283523210685205363310000332997137978982225407493934413974401768678638891125200007237994254586923932591367443040240275233032097931998699562447829565017586913316383869162546848011098281670337655749764731004392389967966153073256618035869586257901077685236818656606331850833193787211338196636153564011790110956757572792969404633925826979080223852716254771741609930663006129967310583619589611848846349546121841447642532876783473822313495443697971831450301902017465079643661748445775721713984280096101152381122486293650762766019989580647390462959429952989047631170669060494484601811347650583087034609415454846628448243905311692244165116621331336377530947896776476453126977153581732418158235468947013993302265926259830451595517810364123701126626551374997518987646015416429735508264113855188216041956635871136904138383387336023119012367115042629829187820642706630767364689363398313302615476304590338003023402468571305371209079441192816223824534162289411594985897250389207276950238448493526065256376334606083480173668109077880665556450562707090685831772863419055372686252501173086870240408520745101750930589364806705227645072401589762530653207121085796041472696411567826250959235117658289917642054288012581886443809220343372379046632547886699870420769277710783746593747980420345547779206966869050951931510541552630877405944691296446393416515560010185051970957203550436301988979574747205559918717842497125866599241927577635560811889785996149428433464552414023059712984413392607618974105158304130317945036320205977881013742004061965457360203363008567504481244790944529636821618033630397028108632590089570167102945549353146514215169201572002168297915335327116331964841711995439451647429895618472880815823794633883770777813527051116661854208092633380271098846578510313533388134290899495975122767302342484528759556340570059198530150561468592232750413038941796427427139811789057856400927657223140044299031267024731061544589607757755214710054221900785348440960701771622051569300209716453289463839778301870146666604891222421007110770790329299340513625726156401972732869579368433746923992329747141019124719989304596290010436297809696560318435107017816835883128059312354167879841965112179960178879892972558112819321509619117068715699973139545652689206180708089702243365680123627939332390752321595492217158768402652455939737926490556078463977182842762608875649304558311701065909891174528820681603860012813999188497730539954793438009680259104929634372894824494658484048533909393494564928965312782608494656386085860020295896651038036546639398311211233142098894578166220885854931369437233390291597799661497078990517288376797834976445462377697487914706900367895542317853293174324434710836588158975411868911482364804695852714962504895234798551722748669792948960768494111701960878569318172014797345345710757175850045765406961988688481552375422046452604530416830718548293588984724353466870412852293045648847454648759922017259368682827928248785958349161157477406551794148044356153272518805601238463911853148587123102171714058634078647112196445656402290946933119237220650182470397722803548320522765671359847597691080747343309837966426061187843904430101058141347304715612875364952308602427788398301346210073665812678175882642910887220690004711317568940518064337227822542241980107270293374941889541387409031233594398210303015457858799283981414338331922962686847645486642108163062130624837408281001550089860007017650028104511232868035954484724228383392227337809655626804157335005309563951264131950091072376389765139071130443469255443750151235909909848735946931180352933141832919965550592151659704353712210037247769521741089666267375639587980596688613433535409332349005929094917582431045870431500025519047063754014712316625527403536183736445026438100076481874064187153958546176905459613028570144794637937933209029259643862486801887066121370696579479224203334242149514019513505231324818089360743632039525909605291297568180277608820739002172990642173233480943347461112205728318788537742102735891844397197529010007907322767080686831826548097355280333172746953424246582321221433708661019931374866317748573165446411799678408250037022754310649535784739908614903734766174692600050362593477744309073170539098341568149030745111578808535954453564156303345882456358925668734617739615499173558039174963535391190167153837890959767680247259639422517262950326520295155039819702993643721162811241852189785913311572238716083463107649314815996463479880488208101776669035519144781055120370039012207331146801609084944296985207242133689009266919177885091179103796957814069563734089060873446179925501851596151697341171244230062938050671230694984035514869157610445694521132091163129233235191375168089696702093071537073142554290382171014845315501242822255249138125936079724814421202283485886743173330915075475130761112430864388688290864439660695657560910823778232313083023617377009640284334748629166614298510802461107891393711851596430610591127726966276102984395901848941373098064806213141049384456988566025403620949689371126170395482010678873717739892328086028649881107411768902889657121350792969228828090040630708561164454012209588963246717883384455337824443655514001373117284484838339313513903799560963012660612729149472535595304326406559503728695300995886296823397404080267695428446172951650599322297016548254463702308873053468420228192178007109835945788935140894895174980319808042439359429355999215785171964888423422574900949290660762866047574859214956624246204372618936212777343110810820136633498526200613982117980478576955914857718807005196405326895800625251128178550314834579437520205093313308680162472601181380603604731923995023183150938745369436837974251758639981405509819763494311146235589034316666632026089000198037724355170024764113938957457100687577942513318880296558429079593995077239167957741320934425651218744308249166811650587215061569346210827757583907027379004198439477057275911656408393147078453890744236679255550554693455542397585247992374243827150852928100455337255441808739835178595983168444980208745822354871679382399973321379600891637999079895037495011306405859030272694203080186793714281919364160491429260087744917098204486558356653279334060502998723794053601932517692504384364601830446359614215462224712918562428377588672123302358396967363512401191577934125370988716361350177224751961621615856357729992753765321006190529187613905801131530768591508965375811790272019084195541173648118510434020616549324360510214451168570449189403803590008481097439998934753027054781751930369232128541179968616759915648695569405058474314770990653420279319328502726631975370274932202386801766793511535207516601675722341854113017406532726928548224856079449438810581570722154469232156878946314436395834833300593081739374477085361503186325994582693033327703923338849170447283502563344720198511448433566301199301602116448521789048929406383959461963650502697966705618085513260724283323579622440358437042002194886483443678012154284416889688035678627858445635068326230111528319867209468074696712089302594040487691433207683800898030421365127924811764479027782836410459450858669453197999353277435019563033708598755114951617300391669271010952983585832695932748320484833702297540051949769383317550513547729566473085745369373753204600422477494184382999957903060156360769443952069852211226985729588330280248060454231141691101609525814074985694037293924900017497853283254947410811335161784029762552145922165740668098331459030269819505057403185464672118126030837882682968833378586474189930620203131000012287073956365130909460676318789251049941108832278685738162795678040103011055968827613313581032776480194715144294883577806806841894159597558692091088966082122332014613971177758545563450496140006073939584934746643018676171986233575450037352099760282419880787448162330978933907644000652279561451361624470439043569138392077454862215948458065626709846453116125317419313685669100593026840407545200475358927667442099251087736118790273014218818904985627841222768049051410229450834860572776332974320297021117705393677027240242152819778822596280415174919549921108466838072997997224916333972103356296867141905032693993027001960537899054825723921344735838233409819322212460133675604512170922615733999180475434833383451502590639507555935519049221792615733827171520605498356179889401841608335675114046558144105730666407962563733281437289678548917676437190202301122693484047516170364677588457623531050587636290595211143062446736826790339258842433446533513611245691681734964519561814915776036002329786475213180633386531393507177438169947942926866122222344721700775732334986786219511929592453474637726323267330205910776344944494553392944872166420431854314240448269575896875181033604728025622581601558729454519004277685054646378310220089303175364157252686267865638160067159664238245311550902611900696120863681823405937506826487223900946788483051709601150584060348944716554356928249514474885800499171748107873790692391968596333313687046409610941982156650427329579345587266162575868034183828644096286742808123219411730253257862006163576727614366638770172490453973541688433408242749896385920982305746661907598415394972446045384124856952475836224174356611576647942550482040891200297033847835884451624570767417389816565528515432182915556040701647501204391570341725286565204639304414279734920759363258691955829212392128921991903891550958026237902709096941839931796276903964139907302134175366618125620236562980592462396620262458449774299992047517306756078088343755819753971895845156811790317292968642458692216578274737288061054111436142243128337517071801114138343426293177052469240825949292236754079810553194211691032569712202771684930545029653052563050769470405554550434128788139135602242377872322578022296659638689447778973278652955536431059799332209761103455671272645239298238237836249513557786424471843329136731524505166301216275461786338472364789217366027714908423873865868098421094890153761564661662224797468059217288325794422316286374911528770344912427907053612521859320450285851206168333034315157720903584315664901184907141640315254193236156601194788263138226792299288754389969343706936411101348300032532507155145385948636957222956083632834277327619081912322085249911435306217046538161705851052280133532228143648315632096131800921666051680320342095564257434430305527156869361489759331970107626446755005772763404923938079140468780323247867570615600278781668268443201914670819111343518761449924122043863086247660486617918836056650831510215376017154769316477799017195767400223115839184043985581596961974671714114034607309736794398805578019651941504714866120037308199199463780946583092660096862839857553975430243391474015303885126290081176851427037313697071987616768794037741725027121881782977791719900055232200438575092150821059959316845098960920435550913566532017116089864800475779213797785639879369895788414644587888209163134441076830669014671409928048494182611972752068761907468842742905220841455063103604926157487286268133503861590462545215261208731465403606867794254137121397690484260132368036762687253490868836513724030208059670671587787879169708586298567089424680014383479322256571788080759125378575269666641139017000005523825621582319812819647189525951943581468206696729785847032095559293785258890833002842002949125768496946101517924121187638963851873234987194819251480645285819563510986594215931822707484996707999811487293961841387373081265830910499825020981917491900993328473247810794592228632329754745885907178775039968040704504935227220565849334247947782653187932267742933062369083056613566300841542907707408216600987274446742193704273458707156388466980817357528976630517017641736438250582728873633962964393678483823661463126384921314490379327576304942944197950410022356908950726895713588690616335484445698335101914541082398324804106451720006359004428586210521146227542901677443725813224707604786828478831481625379025718971991744425231789636045454970182317311180392559266603228606817175693888178086179541363561425130903349599282354290883636389058492782158644677615325012252322933043425483852211081563609796762067391574848639470607939701833060518796061190774944041496400390754764256989740321592441844782686761274690907352786727715126964395553775492673165279756676288315097700141671720433396033920731624405216108460000281415891426551153221827339209277537302068933466989046085557584000179576470652691315580396440764628000820054006783161585334978372959096019591452436376410123908867402632778377496739149902919097519843480358808264876267757305535688567282014686592721863735977895781648732506907661306710495446703325381106568160964638771550987145746248648696781848732990795413622630012295828771724061787293064841880567556536021708739333658240964173248514097571976313023019293524691340715682201716427240503990483072569044232030915791184854290979461901579774299621959986483589352284451885393502127450870023721038613816000008143447612287282815905360944112855572871455142834930803294369058561754136777487543948027919561931352220647349313905611790589195562361315376523572018189070288458232230797388444393622305426568944085682926644393668498333478442517485319962447733124131935600766239651298276906243450742313858975168720062416501292132557270212228494049526770594140760297812927351342020897027133319639580321159789261771032590295342311964976932166599411184767434580821967263663697360219911328655044089713561591801470422645203668880742137756558076470597791773770000640943564424533899061722123942374198613793363905148485551348314310303583945783314302732094090529595523020776763413958293782129010717094468715673912272953920738045975332790883207141572236902364595844262885341878343040511823965000728376733627679414840347798071591236877631802936901222642230923297696332944536225847431829331972920983792694615268355126371805227819226020367373624661536066808889402265601564779680893455018029839227428424244350745914428816082494205950763935308594342175017930500146790448232962386253345249637315922535636339297064887610631271703712232732289173295648755630388979350315771315152214369162609070977694952743271638587668947032805784751142337852492252420527782136938176355019298903008326915560282137124271502880623606118643526817776617528726407061915978134033713818318415230902825786814489591540857707993154218012763766146839556707915158496345153550966881181638131150435204863555672527025298823760982385431549469672798047159762282615959359591603934831420063866597270019958925627882149166701737954304098744942899459972531298482839480525222866908236981477603048005840966435657490255469176223701187985193604980994581204660291974936022682542027893231739583263527510360416700590243666967957648862861080015578686158314488189540699841733677783680348539809406253120570024086056056780838800025710093960315834923031728959531424544993511375736307021052889161869569404592533687060340082369883783248878331812880318202114950121750626765119750189560518791743916618313864363211065439317763711976587512943978105954876935997363111068064606669094556496380767666808423537172123263722301828660938960286464983616517930882337700388621203391748490048317372174061904366204747279191768714607531455456711204078668404445980566814459894729613500388577492213842794215320100994988655809700895932837135690841020930455441806518748841356907653810122691600060362318008607519396795031779241573722940322152151925023391105992130739060198126101307719562957514673596517484620256418970001371502825121660834152358018718080362923549896191808667903678038778126247244290991565961556056245065806377324076033053235259672988318163877746844103520384097149909268089832566835700705474012583760659957417878708555628148083796188606104783751417162241581752538964541814927826328558607316585500542284538000745957390931861865724392465228223958067332935061989974590347066376856616523725545883397447917541193780457691786709868967511066590890087480372168297135395073176656500854360122603181592957045571829477307886888965529158110633838369430212781671496897463821501895562037358720275776499969190509566183758758819513124333979428700174098361480939993976863459576028640019509009487830864467077987768235782503206224125159687066505086060039727019321887661804430174749968463403369849103595666846451225733328084096643748547874502003042603273441083681402084653754995205219478997180677436647589278972906864502754985312294895816007228622730434125547895823701010835179335717347875517251058737341227567552831701181283263634325075556220632580116531520009415462487557663241920117000386544182543002531724132436431866368768505166439959899320913865870351017231088513649224203145572173546632473322078184654762251455171271632024034580197694094603868827689793588766091136701299307315914855007458842642667947461554129852082569677480870589966521997473211892203457936052284650131663329834077192109551653252787106248691018470455001340499003198682878222525645269124882800881592205510960039685530672157602721112209242216280640944883326117557706113925256129358750244992000905755617042675007817174820496312146974231281678925919757298595978919964740836021314497939880314690771334910163831936664488925344023100098757104078565739505928622893581839348216592014544861045964683401714666909383661832255974518830698966915755367575393938443684829924748934140753676573100099406952871636899310841872040071682191290763721735203069109144505426345717776932079563049621065748947028062640848010984823066048748845697903073773264711798962117380434718827986863703298649670862146062231731445848604646758042744672059735115654699583049505760058290828710752027574671443137656637760502079928058671320058250835009650166612881304426103057661441915542426637439582287740508944657006099625579001055238788133827564795062967928134738880082566357851670984093777018238620350030288468843751038750815116378950706291397560008945478463245727260433106403217565840928860476819738249790315091312185367274800071893253336590816487504792558252467293866192775236766707891917518518843613295099736539372896324903114026272462838210878711906274706757270852748747838647381846942929099586810615943014723578514220298706629547423160405415200726050567560944080908969637623844736001210391356180055975994556839828184431989361144793510311941643796440018033256221365680044982884628142173458963785446005456934307449639307350158187576321372699933734834671454622638467936726982383994760859879669963481469800750507368131269504619728894117850932684295062434718682759554546066593233673625430317720735281779634551151307946788117360440886220133550536178174471785607384812364941882279806936963943998203724543164957303404584840979429772633728252638314872995814683283426551085388541365370369265268749107723038458086770447620992231620397007784523058215728731731993586009221317752194803891305486993375825716953855721534425783092883723426482575457651573646999287749574613436622179453996168260564460662855603753673563430505995103091829827932880674803622465469582634125800047140178824217291374932144979190291965453558289532106675062257543258030298403196855044348825039754172192564318799057152578924974533890926844786393816443644384816721606259442594681020948089955560225827382612620553222719315330702248407493666268845137599924642730723727527910029921400041900528134750921459643188117143027075752660770108850659080948907724153075661387290649402046634313054023736194173718823065282434903013182003919578013023561052908167614473255136261843627765275872893556808005243233597669186767902161270642579780507543846972346368961606473770454341801034497456386777104448692428454788354481938455290148972082228209921957014189802047946369496732671669751570535632653906654431382623479272517954277324894826968636601716681442720177415771265505945136835986617914343120243538499118487773283071495186456490019713182136856079102932401945029005071639050931125180325030830314827281294053810072998302451207249826186842548366091229624788178701747698860037638990831475068961937217584615335879572871121945260406557370823443905121386470744918341811160236888189096551807734685220253125407984473949226121569071558129356293379796250021955921370164138995639981489421609467269638377300098127734052328873347280158297698294620501757102498725727780008834338891295931035794111861328415005408362365353230221641456621961136636042206982559156683712240828139588318994470914251647461375694658206544173261162036562847211435570024411801597364640385079837316186914264830231275285271043627143881520607649183636158770734520160377952019621388482384705514690661095373927939288585674742687791164432049066965701849606630657397669209206200530606576188439134642600179089378120639643367695957674949965034456462961083369805931672593107015221084893661175376415330150441527595192614216689508469836634579091395938726737982686977589922931828587087728839786996451047621563034759783663564815685379333308032041273536558136763030941810418134908257726698758688886064343801429103088919721635015649254445239189462958343833811641058212052693063217083004137823779732662213081124714544993353433792316932239816972352677705948246529693489538826946495359228346087398280954796143185652058861026419987963372283025696977572806219778222269318846657215434926843290900609229201408599303046281827812417186505721702664954879929961270519217753599955735884736931649603033149270427309492983366035694498480720359575405335189245405434681418228007160945879991005108424401061860683743740520243002592971682198689067742114101464974814591914234456441791409665286059608468124073064919396859175852343517069892317030019174473932946379773777457775614012092541651393853319628126873005069390055011010431063394867249474792874659297349959507005503144224950625726806821279576264708967247357729992064848811472079221812254389065639943456238427001419459812337425637364696212383258778914414646632514753246763321454043458128697036360689535187644573940836438654901149991020504801374957491932489630212756976049932386432209974073183445929327351292922428576389792203126203084739244377677799128752655352185277071111085604218543160591991541480586162473267831601781635811142300535433941583984972402276700822640298587719068691372191286749672278037571664548919870117849748927916561709592832435594493520967938730927639891999977566942088955595621103087771187449338177574544723746066680544714108891266750321611825666700237304620791216068832615354723932058098050111867516692348898141565668711653669022559611704204074296414035748789318802839143213733813290800646268819565804670280834392379965528942565526775485674433715969407995031759627606644390765271949587369587525537835711672068403258942480754386202379787072034284417948568266396175560740361195241610672203039822758716986349216079032784557228252092083136070319053939971944166995665820170648332723818410105946380536012656781204217615181026490653693820591266195344813025615333892601711075895759107225595738746192159323465020322316730728206321560490850556415669279181850636443562453539421097371899113773628468041944520926424046567326731950983113138827570077855674830651998748096052736671206083539213324269817866729636774207609288659626677730074349915534168696145371945596688731049709391031255963756195277795242671821901200710084443355235976912496690305747017084149752681002673319003069172218276220586201828060846133683022389705578777178317928009619796019200120343188125743482277622204097246555209027164227269351080585259349759928727153209348531657165103403081634804712412638805086603611676624177926643174181207003702391998217415979943521316058491408503591327236633752146073448238904754405496195101146324883193931010492300381763025963892021094302864357787379502847903177199125255775208223559040197250823110176567661443567033253652136551570713734792671963276359351087120396350878490345102846671774724991785794453641777194888124757249880401808088714414471400911662647916658648796539518426932882931919340308607712371114300813303991626554982246142109934251456661478112598156776502415918288511104569054199781867808542494448257199861442765028324619181582360092567767734659715644772316703437577754636531560907949041899275379119513895445402163673584590927094323391680944731175992990889965833434230193561507341693562105526661582657239386462175963802832049781004830004053108492899240599473471405856723432474166646240826487504263421377480111438280822950391381694819838930082909142954910463302740430109773481398704093571651104401498895288178703260910729755148947701973354964891036340466651312279795717774352636507294630401112198808990548273193474502191896397945379755201789417837168009461053809600524274224646704035244875308295547221424395717353841168833798747732693988085235870830521344630139159462773543673564658671017628811434713276193875577271197010433568311408314569062343508460325325899261932015231525125317817562768047696126106081918531312739531798852686902485289016127581055222425865890379197570052079423200247752720280398394326491651335333374647968947537393544204276807856959433632741422435908817789889250329655498079204787816815966785097704206516172837793145303628886181949888232399922020984987872242411068940211089998078949175731281509688702459271821687911183757209795582057461113239711539035595115442668177437133759325549462353793856868190499864965961958892509827249011011106524000658647805525530889835504387180073137296320871427586035821314648954482488645031352515587114937525350719709287268232927919252442957122019213084537765382566160779138144513344719363419613634063009954126792948492575497920061246128112388034742324794342649242085592495640565574880489266758687334455339059251545616538015148138775371657519560104886030912582855967400606637088548408977400840073115384399346407915677388150586466422536661260196737969793031790782332728730119336906259157231514661726941798628166534883124487285212856320770821427636945246124779887241521215479117749238506341709387996126885012696783571455305672563035163838678830956047497596419527098668101848023942245511578624952958435277153527632310267307153266645278193635365501428807503552541031485507574423144882203343387991593310220064269113347593259740152452452796867731927686878297819006713152958879416404291316517742221335166929256783677709180523461818236658782383222301345508029243118886685063570729567146439777163178267780935822145659522540945375220876148334373963822196913734250015035917950579784163908514350037361215792470886762808531606932502746306977062097362717134589630512990519269057463909256268178244655324041714597182516225281912240638793358104399836410420579143236182944623657667065837858549259228121037715891818654694285172786100476848223179036220511543444222898984382228507877850446325083514948831954737374823143194230268818544267280235752486441255920108028628114394759675529751559611616377901641969537316577562137208249943804392594069609834652196191894205663103547849257039240886269174741186383575963313766961518169242252330623635314369324963014356949389515445091389558889499084722413361336570355187205865404424088177547140941872436188935504883008127344807358535771442414156853071963790666155641751016854566871814658409535690278545957013239300971615792660266751733026951800931163383725160445196842784586508859785604978070699774746661556083431822678420120963032861193210352252816474639758031712155633408484906845522761115623880805945853202424392555444865472022351307332546367499599950382349902704087091163491106463563547715745071863025788925946715439786640188503375551856498714025204837381454342419420248263816876730497479874047412392007645025598516535114137726115354762185999524355704386172053960210994803290940121384545225811488451072734836328456454458516240349184331328181434940075876152331765779672100213867525283863245833624205059145866001385928682276322581068414139505058148656928427542618327271396289688214818131666241327673142927633350608810012198342354144338987331533854278687320993562721952621363850498130150093167926050216774263651112783940087397200259881586643239269426597579935850027588832061758803927926097685487083353633447213139477442311335493410247881536344652870353964102942283772651716299883205131996439078466906671531309140911707745960344280825900619440997488167357405434769587777113653712187405146220163950647653001110457140437180928134905068434700428111224069927324650258871998074333643747060805782586892649246550956241979079490386762681150730891244107765600402350426218205858701218462290947263354125975778369151101780765898712407841713377355431422505245868348110646665415373836929030004713416518773022192904173117876429505862400179929643356339181446793819098593962338249899115619333691324592127312777025045665548736479345247532614658616099046165276139811890847933379599019835585947630092463704146469417777526907050977501431582662068326609068618999556435923225049179266345612031182487057922650782106408797311789959329580110301231372691009192077087344542807948727774121731170709139323563042703562672586916643837799217628936569823455726157716672237663039824790419304059143952123215027793329905811161533664703070372095532053241546162121314815113532354574857689387677365981859629010008333393744827111228785108702098097001780102357871308495038921178521578191783311992654308770159076725923802724791840782529825410396702439521969197389693430699349514988744287926567384962162848227753133407000504575874884822775197373005291734448803858956147978672516437665696982240041773911200063125554216403269898212345682317791696436982875912704144217065337304982788714596069983434545570952126713275691999566418835701633893029374299776144719137455255833615425044199098226939868008792120368952268729769592489545865456239376306532717027598608782647938426447200102691275006855765800403967264502059552920734171626579732827816717138315575745952916635017869218497060916575576615016134052909660534260985742756254567856758307578300632272769687991951045504535970815790716847015315012856685925000872324095955035821293608144024220379800666545518664345391465247522958898787790462022877994767288429019098117677430307235567960855964565100253007974934501103749412912743201210784177173113236553202437110111770250816290804190054457062772473280921477712533287885162692767340481280299598812681604653400573385636466255198175130018997735804255845085135461222927735994289533184459501194906171779675530842090981676537556632498520652965856824917647680738411002802685157891452380834635294118654606503936669809361763109313861856055104809257017235279144002818531221460210431511412150802596560630010946411443306909583625000999271145458980856087378952905690131741255033756996227441628968536398118703991113573814831581642625933915825498316320043806310067464545684476476499553992598991290244460018243686597463875003059982761307858983557654083772421069690513662361534836928386438511656858263648536644635608187129233190091170788876795260284716640184472284909043346863857476856525088313429064328591343598630794818384788926605855921304222736479814420792886831147800872022996349107786048335408186419792904187595422151165953937859572020944735196698566042754675696908495918398740181824678369000540578564293749191963557739688127997496988942717190863213285162760941552609682825564407953869800202570569186991966989656634261019106237584911660293146203942037665439750655687402559046620548356160840968351690293590598256213375424311454527917626100540153277403721707998046188561297845172630609291077690857028152519970291242640194276334690297567538329929459807302817389676116345374767083322431470144333184110024556538683711413979966691115692199414533527962847092356910923023468244651229059601317477168468337390784848846421722813045587253403762154142734573641246454017926524007200671457643722468040164675385612034373791525972689824260158805598871988741938399775369598788631913690193829792578753607527619198081714327050108258009953282039912904563174133147958584157572895169297076592421842946560927891622196576322986086198004140704465172107796104545562654099385390160040364043524616393413346205087936629301903446787487594546136315107701457250725404883203240668915998043115350904164719587665359141040965590354427641930108708151041566246715021969796860948223106036859171568889738936142945429129965694922639027504715935786533449969118504290067882733482111544218082891161456742881462232687188907482995293818006973657920575950871755429869320148659259593837979599573806899205821839580689980617841844464443712483616811892907276795254966673109059440266475310078548131055631002105539092370423216194981536290126676446884612805509956811058106459775755782293123102170650082011536059137233035727992147692865850137167182201128458462398529252642170238603800422468664431736767943589430567731188287349011118973335507745550136843633722350050380308750569300811385913271419177064767043386763539417604224815192555892915352065882885835788818140480622497371817246263085976329006988740889497257529927243257654119785790018026543332831010905957203351471851781821524083032791892747518322839440876466019294305839636910900223717382689003706598852603216073212312425018982790389394122787956399574643243982690687483769017238773970189466120561612741262787308116459311670724161845684266923332510577051614588405341281845447582420981239894796346803635022524514784407363706837245710540578174629195121766607647327227812536836882755096720465857061799600645240156194220567294305347365012199230370980551184915469139634168928885161619541840000516023108357929967633495232273109584994017634669360972294669912434348839694768974441935917815370721785237017447050552817448169451077323249525124033463144706615450352231907014547214667264903120253873017995641665541850553895517357891741793615084752085525063684929630651926445107684688983442975014519094889567866940695498248176882630129324508245334552044480738693182794004155514691421553833010672704529468484485918099902019465469872346700645383935655274867750699385757915558395218717933084329875767255514987978469789918275125074732293629052310203730805488911178168402993910267044693551048216417767650580127921429463699759657211379408710969637757135914854267939848893766364304085460158672453974081904296711204156486074200849385821676575654646840190322232147212673545418651536582146903830640369241837613795454730919995337964138770780113401960251206766438089979419118888441373891244615342552885815062755399663261355544503492646196458067018609483352976307550258204645602764886775538784855119367239034689395150870740227146272908389394412903832820524583302250234090668940814951482111961130334483799981079295207533481110529400467943136917991689303535339574587033490492317007182288584463740126177541209227956076901281482996497355348584044633707122259294983791484343423037212554199171499461215791477076604864032162998484126091006718053529508932452771792752399980059305267526360573082876530874326458614940632158720915832437983368090111088496855124598873083827674269912872024878458467324792324484117355826352881822205302992565746025426330475042977538525193629852492919441416704370005885167746464579222255006044087555791599733949564165972263820148389236988671211780587859185929969954608730111615613870498621249713987821864944535845694609067312439493382652440548558961669811409484267108191424755362237000667076201381586942189346161060348159329264578057716026171609947700173975782057355681034586236926181626515765836808989413808760519403472108219343124664609812275869819027876864906941649522942273880303206569944211967715604832707687719191326728181306721372633810054223685674679717850166898498835688769068158385526420085733491362938021733506062457751157947466024035856201213504357687652351681109611716334424489662255915170742045623057447096816720735591530248838267230712351619680123463990020544310185724923854890616269788062597464171130037488029082854906804557821405536508781562199356901269993539468974715647547798865761011741946328797831159483662650539641604160424845622676858797423213538842183811564317883721520864270673816298217623609002527093459031294085281223257099487501470360936447446061989300043002284335190725194945889525036246824186407954148183056367779396227426247983344069307225669660744140155313645003540465776796997897638803308003006922683909915882305432291865352631916832658496487354529492759074731492638559447962277242245439483353041829766659618223609815627070465302057089880336280439694929586648958099818809379186792640245787270036735128840302542789978414159358140479741648475570618261283990534189080969154377983156145601154028813247658549450700804226979625608596845443806145219075790184044295986786757584330592685417894437065299054312224393010058442276584876205890024548244007920698827651543825426901525505722147626103465951977673279481516051560571469327442673276765640934955450285634151707826634245226156819204952485200632954084069573295178273497288352114618976735435920213898693768716424022955936649217116233776796253603294125021902455042565123388172927494120535983321527016008319406609314444489151043021512312371233381216623897969137324065939007658580323756579412321918187112357634222334995227512531729440186863644222593160342175543030522979519408382395782516017016670975703923767132939475771450217165587815309918947168521742251192589020167001028181994498005247520618449241410668673032706406034018216289024293078198076132290535169837760211735575356442527341191249875361603902153530118212628056938348914676865199528279143963161026677101273670014627421746972199896300069799747179049376787830944769822535216282798995091064427600131395188963094848340158347438940401182423683504793232553882558531567904237733164579349895245027626698706769166690811868286526837436107592832980303498969974046416094194343036639667054407361822166275909569013335551998556906693266314632226858494612596462970076875297560279047064476104026520350424648120914703369823114219338655785460680052590581481643944081167687880338936110444636885666589757293557989697870773926035552791113754002928074606567707242456380450831225658012724326559354883907000378037865681303325579975203286043813821464256181581640177154427590087857709725798895669857743166854269175709926330354053008916752650558518700279757226110423793906629861804800852617519598321406841594219748647824404382448391283936386454999945067091948308413924602756990452618034474134114072529623453971467064026083169579482206414504911952313405509144907451254511534469648223337847270416011078570935070016960838976101893130746949417592838517519885111259170772946464333605965536285330963883295498730230256743459407029323773762616641232430132211124678650602884058722439281584232810107107589721486365377797456331542367742454471521297490189441883358296660385881459072606122051278577765574387302201331481518895362115276605860594803259395249848804983755947586610874805084242568663008425774254367672381887096339019264158096595348654527200365399912473907616892459785259048569784083506703094236683861475421811510965244517203523360645406373184436461083197905234971289117785613870383051545011421502561655651493653257298219336529094389408073174553791246923806725088654950854904728890535596856654227988527682297889349432556197077249063514993632835758540891453269415197607736533720348469137356355250579251751604005171298814581976206913034076785912226189417791557771030281425446581841053118923307790758870818749659953305597002737347252807985740124308323879175986217216626973953295957118451521720571859532254226926681652840412562540330919825505234447182163364587197775496440680528022655899443957697274720576799554558322581833912941280429911620440508639858701186227920278232976807156502940059363380008742158987382619071962185718671168879527898409726627329160107922296754509163829779159749279512191393111910781324881720717513969883630422553722624186815251096473194908016646526854686829306385887839653583599277756733663481009890324140620840799643133458161098452317177748232090507349032252193703032916734662981975573401970976845039814342054761592286816185672758900343836621857192323884276994616926284815668724525884487511870455193730778929859554331848503184344123789514346184385049257871208308436168398658931185190030265090228364173180320248095606059774801696356837734773478872459137037576602035056191362431353167968886171808650504290446000237944921657148007947803012535616361543319711874684447926657869712756611159374108349997642136559198730561690557290940945772026005384605784072551079586780543721293479624048290704376684265696248938755087863052331861708068265359043247063066096327070249111603816076232663278110864057930530030612696479787850460920919532047223787948720218073955752746063682558464785957374941174202648603245073274708567178670341908453764863616335674615932014895694296254267020910798244538557588903723562264213401839883093641789703975091694325527513065782707593202784503396833460945102651204331003374511440812691992756626114514582893456073296029954929296279065214915810590697440304790939869043498336307790429600428737744143698525208956594000637992533487462115773259797234240345352803342793534654034164888236462978430850709521635558924497447488735910225350259022860830290395203991017874513739898806353905335038301378307793696232928790964639169352250598941486567770319117162207702213721699750572220944154283439915239811964896373279113867944584117382405672879887517755910580290348177025830011232802814046738406922564036003649754838568199289374664311985498477598270308464244846467895219284422057822352007315449596835510774561730988490696715042606375080785868206440092864860688758492221522601693481345333012163058710535881411419667561518434339966964461051074951949565140034790365976304545927398401143698312411525760591977323460339674247775474398489785069110389447819672106998037320853844113038701101448894679168511134481836221122741624311231614367506302402778093552082882516030049277030975248164786503333275049441279905606596417384538643977192108580854183393864778051244466697949838649012735959273447707313237671033696146290184913426228720113596367116789585555881964231932352814038002103849608335660875944845940959271882931269491667718343484307868057003761137999341803758150722559158251091333191188361141828516040102954572370195714861740716606600355392147247997899941953273202667636491692016744420321866169625302398661446395992907966465525371443448500051616642049665803609320021262273216393242315971274300864681983479875219968157181106159033656091816390609246057953959611726632584486567323837781266210268963099972974420656622687567939635702830700104691167993174038754293263805361801883562105192956539286026878469544470786828273331762861835167750657589884862072533174630427438425174219171337853428090433400902894739436534081234482821701544416293693996855567344635978726894457942496061971897464483323644640373718917144135110475267716153611162848609657324869730937353287290252973251577576692994403661710388336709171304290278453452327510330886981754612620336270595972866455421906535535554223568579704304923991283296329477891336763093133331578427799699114438113138254084034593696859998719193575182870762287056392295970398657657190617871972632646959269869710327837555378438996772229537703860030757061274500275091637075326494519400111497970983357393528245708421781355840417958822199095943353005306521372884050007166390929337420568652027742976256474012138313053083039320272563076764730683149535370863266372721609083419137126338255833802843302268465097059296938114628854633145969033168312588471273302177838022481149501056699978371260549727427245656092509318317282955073708557570081637130335643878356837010577632434994946828042922804161457162524420423326241007618273446621862357046064675711958103640208002532613760212992120787694146532041399797518918785833769305336905870683627940597876130072567476550975899216795907114721771107081324479468662164517688933820305622822748974841912592846828943508728888243813302329175288387572675957899950433782816076085070001372691536086380839659495360415279422664569376608220039495775403311961484317001547841879137687118687546312427329320695706623956850473242764909271490374470168007288305635223191417202141849616586291749031476652467659370859432011965920522451128115968570679234895573743332949617377712421793743312845624373950812201304374718505369596597353158397714938902558655883724167029685199563447423070602683648262129867511200868288916406092016065354790703131952670559786226729337412529750705243134991708265016838216704720425026698424732381429116269753172636064524017798575710841494290687755284799721798934482559034922121267149308963782287062905382878892990188493190829096775574594241942289868568928691124972146173326359601935442939221528430521357365430399429341405216483459111796573116168497995037233420153244121433082349414625029221773358384364234171806301753131712130213619124166394662762994975953029117311019180588800654986927592506746598989714520908072719933328518352426523966498184585300527127960164609245091303419111200746775585747200285328716694266496389993703466111003083978951564378505922758301660949219445762086917404309308898854885563973888057338657745286445205272581474402486938412198202741236055420169799456386208601164547821098701963097178813463210038942796852093465820133563295561486585774462705272042818543128349266382393755348007678817676561258467360410941879096952841084906479121526222796893478565490615973449250014948062822455748144179277857834296828934654258865813469592526453246249143334301080019152820273391246512382365469777021687921787706683862723572732766224403381655336518113561900187685711864353729502497693037918845087276890817024668046670716158944301781162985399125032952040274408916877993902736503739376447749201677185463476599980152370079085538039039229074739179155925296623791526434195274836829283864014577517039913875824651318675856431623162284741787450736446319047430619709232126012260923973957771887479996501539309451716714234626228239614086989089493455778822021987431464030596479341176331742540829913963126849853380943739644985101068002415400302586224346180139821559526172370561245488806462633556135728640491400285971601637810003983526602024636970816017417442478161697288663236606255826066804367803590593157371439724198014354943895809637218986066976854464137259452079127321599213991634315549036195369425390541543767344869253024260548986675079802264909249134184067216624618238140813164519154756622505385974832603700480594698119871339188551510736403572986760159392680124556647199947855077911677779617420547415296514182413588360531747207118039977598945414024547130051767218991116367624286045426618685986177947712226988336907103187703833961254618540013627647703012397494886982784778789952762169039215743939948500914332793148406627333795340712538808187338557520920012010868148728336834585571908421797212626365877333305788773230026029863326177294763552388419816795463872511811117139778370888598361122933402775770301305297994301556426853598097809757199203233596516037952644928739612910225676030340353575363722119755338505324534693827083208259995619200850825443496290893549129542690311210973345129361748266826511420818139727092899140438866993750512052526786166925287225774053027463129593190938666540350503133222845927613473025965838482436718515666084594636971387600944487849130177433196234712780838147042262193550391334108751981023549146121406224384657182899812732674272270897633945223840692163353430460559287323713014733567000784680571906880902034854559327601241683936563127646389622903681224688938046889799003919345997023085780604478709776536918092805883623769285231649053025127309348755001220362468503252424695872454840402039300176763519008160955736555742821999520156533140687110088825831994275303279727025546597259378981883343240170497664179960304273663370850236720102990376731232734051561696293007169369872228408338152082035129353760527832051325249513039802382865490255382483131467692398721874373309756899717119294078600165576593634243622459908643779870071126978861807366410660719644440511588098271754521969332184103043130828780258671518143879352810810519236398668373799460781564381074956280010129926089805328843948772119716238407974579358000555082188743049810825662680534131807915289264943009586573043920143367801815153780783711637783367363102940820249806414506906272544903513526988991355903576702202144910152192187351626098528350011337786295774841316938021990584803491510282918912255097094875865480576246867789874302998218308987810875623217605330833857009545361313506830046294247234315574115367100489861129893647833084572303673892030721229339550076921109944448950599455805412539885496805312618199834058769170683131261747543863230000679585038508513400513079803043586205590294829522524173661619898314642044527622151512576909780753998942332664602948700889222852884956943576681380924283891734897864391456772606347783966677827499033359368971238178661043407109287326674142126608653025451933292121874201844028390642134505810350021125116508286691750928929527572533779432125221571373909558688575416003153323074734697508401554439361858931640945352310680615338673201887385471888262346092970372419549800289368334127957804240587418911134242963045188041286542000781335418427452380575279090329468757033520695729281070607159241657490888157360636755749070362413754600293549309566921377647071825406070226569584379802219597053291205214894340688630456982602690148363339003017117021872105682215818478076672330636198297266273160447748737679131360049134635358887690752684133742002442338387033813275942076251608832407991559044723608268703080302961932849680389316540895905079456748569813762962493407663510340622657881808006175145859927772805601028843521241536779178407850770543082461194352202122446677861936454274460024031649277479121269542546588067988211475937399765323888894047358633678610596081718088849851047176717448069014700320121872075780670307283472006514742262639307638539161011454564357873013850630376588088222869268651003891627654510955399067966928029373439964830499512110967598702822637164232150349774232981674911359242507985749684382933881218823125553697596220272300996959252687384550147027609910738130899476998421618128792091744436513070490451974605340227955432288774028278779486407283533448017630824214392852447318996066752137223181339820073770595606651504059159436720505937261318284581245762768856948475248510901329903540677037041906386959543052523114157945052969918255571655731972096136534151534804860985965593898446326738643139414125076868756226029893545194541736491109485593475423377120258159966519609848369676559435293712850432703089462090006687508537950970556194378996959438043276712533723726029903138997134272508248837861853924958782946916149557404020900868928809217067237713567127752274912168481474682611295414557945930831501641530840498000571280676728199823633120471729755939479211502402607518148549324539472061155614766291479884996544585204504978892393129119053091353067526647060184831093872019624108630053029657211835010292743257491224049614115186818996076720028454747283905312254907396138414217905715768179171849926999461862278119442544503953834320395872351066499312090652582525654268168677238296267851504336590287534100486812625725959666975972326805358828104284946955625559082041268173735628144275540390650012127434941213950070608615424940671250636274758132319212270917184274326304597745285336952811865830477838986103521825222103841044498779524411068678431790931585945650052424351778708066875691257319149015618026085162550187869582969572152157759818728887556161569892343666611615832064116199357689840135061648319507364123539639330193777100526909479064056688416440438719745845054370209137106859813179944956966853812203953840181250278066244358536628197927499535666853539850543176523698196343857004073741617947410453051411357948860759030184409205301395309196884997259460884684019827653008567145442476679733077027793668143523277246120906955064790446068480619812276179492556241907788870842263592681688357740720372399750415430323702334200160018826908180590708318142301192103449041950743950790257179952802105393678875640825448867171302309805742024873731674404341069846229961527270737568401147663020701351469381492520571164116010361333448253943319058462119559676502558537097821085777853507176447303333346776943555664835592455352352624939817793485686583588375247729778113166075719783791288292931270023325764427465593651813823922625605425237216928621664446970319144111489528358249302684948388198565323402708155949584149577435443828085361194864752573132996806815144662555500310432525791044481253855228490137232239354147172340794866344824579586338211898129460154743813659485044331476501747298295171682531502344322791583829501329830891415146030943467403416473912464530941695653186985223892405083779974207460760226586163202283516238871961169005901360743026465458388957990116114286438812496470633549515693460505381851101785006721899736732255055645820686738800967680964186101787915859695762377730109221485473935737375588941866880132600004669775689751025625720821511053202844628475481151824855207736635592573990036095909087702620119686294631479334919808401260981819314963738357501804562040942204682504912717291786742126666514249387318654369351238595410723188700975483841509244775981289752957909355570701297715085079370027486382914663335465735525684876651223880474906694800684227715747556807293841073397939479329674143221182961559471990941160195313741509540788844036849139251766957028314763993144558926169425944872932084575205542352528897203377920061524797346787957035769054300422284153522748085006346438932565213120121142521246790558926191852544714160983865365096874287301145469960672779851193236412672673649857705245062182568625939858716207124534274689483523754435101531999683321814430034163023889512327428669466614017602886714135157640149329912442014495600128432260452501897006518543279989347426653863821714301854794878368953720379819147274954962490366223474968608820347160733809377922402676670291721765552366923074223141518414020377016288017338304345745919174308539356236031033595159050220884349718543197934406793195702307585336463242117030759577759558446211960067586755677930323523088937995495703526415702554726133571315646287544969869013595722051565906295537780054189992787854937660963578187420840550491937644254816530208551771222343761869075734576060842398329439375370244534454845024675428087282623026965823995362517709657551302154852064610713640404649903754998093843810079296915488276561498788348660497059048041466224868224712993782750693520733629545689778231248486979068636141674281297751105622526395445724312970879774930193004258442900443340772770362682935127464044049235076344889680158666181053330368262490359121386287521013675560250319717363124043500261618952766082461114685323518162758895561173367377882226889518774283399218362387457567481534429343453654305191248969718968375964518762921019568278568730482234294594697526922421909824083174076249206645270726802212704732310130341036541937719524047787509769679561503884384982114663976562045138789752665759566067984189669018804516008788881221212100812114220768054480081784741003048224205650403204675452747942443023903638978178444039222863744998837359769987963812124100854065439154598446667394143100664785075502657329367449217017811222754898561775354399612931075570352860332518474021226589988910508656073444074838471022650326724775764325646547110002781560491860366319147213563680248364823251505079517359833772381731877277134995233896131241639754921486692683613728668534048668962693940985437445640405778238833107369237128880853388678258442182882004845278099720913573515537315020907593018260015281739740597282339118512059906830931551702028146758860590519617850015828000223260712184292980473130509468529431999453037428442354572369952414574090720964084428184178143350030432738423152143553668452543590843371592354774859104104805965194448632231182944561308619233875852519073234903648364924233864807802881857891540209430452925096304409836777664197532422700208720996890619683831854702909462846586502877064740097607930404300137075968336183048038152787573206546927190258492071719136655546540206732527294842360974108203147581074905670323696761051250509523445391629303109848861329610314366262743073352433186170448285569899890797312352716410396454583545184587413619519896802839188472800630908470905666138487716898433055938092821651316385347569213022909342021793424372562544458720094384345323901778814358112843284046180222028019253972810456554793720423993446036344765439030075635941150224865333564854136033081882871210824862464209803344337610340369480205090410022338835276336976061151222925106013644998121504952493493464368251593744539028341018748866395031933483126857559489401852623049819900260532125786185883432916672194554904789792116135036697683256062462893260251704316930623970984086123590300023936912411249686158485938373391827062819388394959368638059511242771708685619432181908624062145427176684589429910816280986812433808580119846906257037355397530013090288046882880309564231658463223534111052512676554632045367937939104594954240679169804455835004113805714409358116943687328705516023717780679989393331993491571337652888030541335768986695651879874737540571684114196627354887663172467335841828850595128427024915657920917070124789815766351514489002879302160831367262156087109393019453456825218125534417678961305311789779014190573077843421652064182835504343689332684044417776033296470418004380144809197978058827222915214694661102561796877254119610932454267169671942764529543258140173986440523342067464453244719360360992281889169819618476554061375778647114200430200922605992842887004868628652438970387876001515406839653710734893234523612202242226576206106963494315567439067400706909565285102517849309386278796910854995947812894773402219639754613909019752977940571681730063086464647012428138634710331768216632534369789559026144636855840284236093370989437485100901923808385133776294577232281507123500488306423986849070278712187870081698707901575019009395927085308727677724245187299943099716654161080286663231670734406718999398537681966311900693772387912260162595533361305246559245260946024695609860529241999192573719753215514258093884365447444785758428454062747436854942599175273733869959919721062846483668823745259291969594616796163503546308696359056431765756637887167003734481246360746264398539137889350295973707121629330631087680524253752576728176988867154221426285058455003681498087555339799473755317616505174930987470086284449462527478425880720104492641337316050196989050671415963084663780409059739310824414642501784607723651225363790178691379761038624817523378021905590975776959897395763348799732404205952136888174970604646413063000985623754080559922528166684118034670145278055576363656343970661904582379332202187831488869478129850845283327704427779415978510213928306499213385719881108134331820938508975069632811701214523940262780571271409040994054434062164785050730883608869380550471231451857288435113572574054392525211913995047624214785617477701709608124634724207798694670005552423055837418794687350160904887262413740175045778325188599904993893980445623599442134899343990073759514047899792597549635061413987272688048565419398399359405075308396531426799650838890481199927994645851028048857094186095931886566942941800338378594180850592456633528649607153864212613463070080201500356512532848924804657820891536242598795564906347025600164805697297889229961313884865979011670891733348448793559455110606859375664093428764227386174330436999494861387856587694501627747185548765123289705850420844254252524106121515930214193433022010546422608436283601428518406813677312552848187039566020424585211815463902672510458661434354186738139929613462406731146702797069880779534375874237082394277917046807325830607503691129118664823663956033768908514964323032288460967403322679844385969184899137420127121923870253096965555106486856384731585568582930476365570544106121602129420260210649998562885314253733417662472006672307070757381090361872519784701604107952171113871416960730118293784469984364696193377139821612212558988241128836125354751359510801427847576439744975439559726942626851008932138393499091850287905350154233558149524128251424555258411249667024695073779986246804213736381451964432702882620854616994453559487584276176553072772719237614056390008301139597108391346231031777590589425736354426998390116965581598025580613985685651538433821110641247504454773577907783016205498740082852524418048059208928049894170223843948202400036597494006859805796605874993989582430929849733886715845558687509542327922582984555065763417194358610687672452466210175491433886992315776479871956887500842082381944868707731294555278042310735918185792858457550312051651249479900094692143812779562430318662380939495290846092735633528541472395261097776406658776236281522839817774692016286379821698525559341778334108294738827140704844176345752726302547503531144991307321187922207951828031400538642162833543510460815629129203081300025156521636042908450777680571985886415937316148198547656147815389127860124121098157059960416831524605785790756709644189952864691501635528804493382644991240132094449258297407735580687665189673648979946045091983612878954619661961170257585467225688219117574730800593638449729889516176826268286907563312702460293141816296413011766700727935595905100313532959035241571271716667020057782184128214970054106987959908913032579256493879339112494036276714243120574638745098538382880837478064578536807689563383269266963096281698068289383252305678636921879948383979580857399783112671430241218134618549101681106005839735629838258004521954027169144069626921269320056290720052288420526262949990146405086207685082908262721822151474596465468173421025267960594383902172518261943823931554678481153418421081356197612886183626243786722785413525476758100514036353669082655906536982448180473858667487554162208733443864050754638334732950881554767234785637168235255188726068329008309935806274898928888317798563110544104447654923949919907240176868385022627066100155678029991707657742883277848491219176079340963185388326548854621941091017175227705189118407239037647394958609450183389978392309666393703994974192116211550190822806463036707623076703501578865341363481923867112557642629558706377406169458301483953304642105380298938613916692747189933427887097188877142827869730443731578014538312987921458027775397719407110056364866212517677249646135812055320136005329716718596300661096955140742578995360533300026867145165888577772706427638440623127207281336244129075294333134664737958665791679026330240079087112831896764326388731685689740296741636707920578844809833519676246453873927395406392895131568367431493331922883565862863897531917897500363685486798230831327134399240453462088659296077058693831861248421353981971202568001578895941302590238559394528974058893270849515816869930842004638259963132233534339277733845362890582767190383712034069357739392934138949961170919805381072263923800111603236242107831137126846863638750644827224325832647192138800127516830545934019517232079811246946096311223511305841046585514564101333460225804927096742680028316634441863423706910712910836211616733100813452176816829237662470426840308328780215208705022611858541693397031239354845095519412338327024910121566621327734550649782146388983233445823399055413670341702707010131201900043747753640135483904239085027647446957402370940391366128480778413773611788052293073156424368666415323017727441184384540985945358497839509190649283685745760376069208744892680981712645540839176492974805965094004421507189866683302312843098474954597722045400783745033847503310616454765075146205747203817592526187735950338548566062961196957819759372858528992525086725739865647322716740039237217651621758777168256318084162256412905549362818335338622720451221584834754556051619244202255557653513217992672984675768474336364727948899439285027763564963467603576040201650083567300935164413939061830385103737644990308919161109571776824373789131387774607953002147096328104643114276741553289180148157687758945457452884166064409103998963680953199087989628742222700969102988782933353984460357347387846276811025629804556552931793932035796032230828618359923913037808460544488826957832403119332718865928994913075045825833484786202948987829500483347954572604630825212508130280283362500404363020894282033636275713896913937550101696048745453141302733173390200440063441704433996791301844479355548599063445796599487025748494621091904326255158321410673455715285215248659029098880308950714349471748431011048785279057194279223098561203300403927731347523952418723795332375643097440251011991417141124332963662243268879966620008944147091892642726292691963344007840162866052422917569973799619175416045096785476105185844170214989636968984672870477359843875876245400135175589977866094597080838695832276450380760432344340900548437808198953580816101715709961512235075548308977441614345395388284360829607270600568608917403468668485710712819792536266271695438545164722365022422672814657884562037404592958108074940926005549490500976096931872747333144684438315362605672863858660036150543726634748345549354022585082138324330717196096536127005230735910423541468615052930302193066802527040931825916646141308165723560597783122117530336991665787663233429983464282864214316787054286159956703844249915739292252535813158281661252887238084220933844156222918347433467885541650595331984309201342979947369902034455274769893591335745788832415892010510399111503304541017731634768281177276693701783831150725968573838058359475839796551239162200299201572439623209228897441493485081961184035959569695688848201928048883251699564827607970556121657447232996467525468023736611096665195404931835421126395833636481236568523862634278040499673499504903048611931066972126942186988832707014487978954406793107884285704235324893924889201842695725767443077991017875580886707618456843062763880771944471915671227777930972751602162080360506479478487623654512228210837662885708883039034033789711272150449208816871476079006313057432263809114529604220298360302386617264673672362145618597140878978185244227558065347870597852303994266844991058690828119138610156022603488452927710386127596686687717057691379841660976907431528756940573788935551696194405745315888738455767906518421787538867118491360606279349809407064665355434000542864964032300093611761195692832205361128448353897905968160331971705316199654119227742433709098911822097802345101350118605439230491893048092590320082985448923780966858624449726040942207707045665885009390545901887143522374398805062224924249998617033950751928552280007191844900996383773454803278110613963432933881272880360848215480645836248064953321871538732006597583873164070339914451581972538141624118157303048731742609805818111481806628949373453865125877331486103295967529572546732606390147631484960895894802620288924072372415008272350429889992442966269299130312675164261360063414355609176018426166707686835687890451959108482316583805316404311494557552780561529735078694471694860020778885103447589396469153402713855669296822488594732808478452390770502473393216229328187396210841090806038730822615139366767399162226878880386407549134477727047625233787523104356241885948892891228476090804552083028454038272966195158910023576271363906591961552352622579530980825611300738559995121133012466615519611194430697707300289391356235276804264528905849794474148999347149286074945623957299795834095877663307969366162945594460538001920102365047875970487967954860639477109956785199717278752635815018543404226827402384692163471062436896886326796909265414252015324039678434495666556321689222811138392886304481590400319997268544724201863152925318021876410961389291976778959359358917188836368256276380414675924283438751346423108295654317179882754494708301264996911150539647878619451970098384419496577018266279687480236571212901779315724000339967572901124794372433444644952804505884472662796055399339708112146408781598837886841143236062557486216701654434805113859054524703975607480521434061163283278963955724856968458117528293437957961579016727988874066219717604910478798721706915447326137148519251970729044197025854101004113335091733968187513327483570137137985155561758985507678453916645260624257193930225167334204944280089231543328705239593291824587638736639096554948398149311473089634706271058266524552075272716713023582005190351124454427412001435364577437734584692127282021444564381094578980953104677301537383238636518815730147583360925592251032871217862669401017226456721566647433629032944292729717972892604587304192868247435332517784815300881677898843111098219317618313228837193402498736885211804164434632756793754705354725795755125872121137109327391736538461404884883745293955573236802225789576068558698577035017935193478355221781360879221661716467230356000596781517792976241638258939289676103805624504174711446777835012056207166971641824562964143964191968522381888163640216803468878702607170000485754747680360721618519668520185471203976507782678939555172635336374495593260877298401285607185829159758126019248921051577958998507160590966192366896214991118575264213296644530362890184057779203801641215607246068997319873649739126833395762214865892552344118126597339602746942189382552487726347439729954672846974314107935822110177009325797891567316551853547147938588811058643627605246209087738622197565362971655972310100541120015574123447689205180181692580863788940509009655949671952486765509910009729082230500750840202408240102478409743611751120477645204355978281803936694795235227558430154266837320005423436102387117850238255315303746961666991349554276260449734832472521879071545958377501871307500721382989135043464207854542021874122978085367054672187649393000073703914352603673300048866127596733541359817925179944128368905767694932899228826392029723380485252516753081464213173153782652587326266538112875409199803827027262213590697943699381305871666780707672083281540409418206755654490806005506396688135422103960812290733668598170238417111850569790282176436800662291166172047353103869330156502132710404054236572775841828333158115430600755442321073431950329529979962649840465522968852413555369686268777848982118231683177965384036453790845762233717047966946804813883927146312311799333126400816760658482134406548240604221467642418692357427734629449000265976922368183001691553494660210943443595362722702495531152489902573097798849958427642681591828222880130539406753446460420447012721472491539226118065607897673231630680597784463297059907100352909736140446923608829074275790778777910052304827356080641359571455388898052632087659248427611597003454455062985094214393795446086839920777695392217791069499064509306060043822505623730874898067587112752035850920206496974864328642449417954795685331751111714715654610280625342344083554535119883339585235753440710452304310092065375842737775414381689469120223650575901716204124750986380625610086836093050623708557778308562201918720374301005565270903201960457549463103134943755551646981547937002177377555276856090701884134699294422021098663983640660210037961662576529252003343198213621022477357852528660549483132342723294567825775490596315436545662964232305885140690680636272786191909935510718242747276729329554132229078186098662725268783016296559257163310744021660276914087534169359715305022375079389243342204476069678791366318876785358352553957503144083582417527231947077688183830124285202505219572291358790487605793755487984721385046335237896105457129483003046120341088317388393607821645329552664408872802855176736801665586576468419936901843832975937043977884469414157494101588449837566059878586379112170227241830309739806360358507972420941747388580992746825909040251429599839125751526830231889091129833356360982269582301935364055363048430133646061786491132793472109154895121371785238241165317530077033819701634294286793231452782585120215964317806116702340443463423044366946432211331121480802085861496829056747095227804735384595683026445218631438229731662511136736210310141762022570270044134940700584658878809387495933183456129755736836703048234041723299551318757949660222019908138601713488442973372569069514262934872330414803272396599587317132082961387742258819103939627444936181787851590073060527840582743673358171808328374923533204434294479924296002524809430364891824394640639295203421499265785715773642838951859176817851288524944290681762798633521226014706130461189137094792640263174844868861860458181233186162149083782491019824224883978039617497328051810415499139386681142846052823543769693978093220713197841726227613346046393321307551764506728987898715841880799370649860860542462544492908789690814907614307893392055042102941449630642215371427995732702583106889548290643968934469674328433575021235784420318751479002228111575084507481240602677216243822011079277972110400884629778924541399282347220998132894137984464152781528718345408407552006057822435308047438433253787283378305498928322254576001421081209498010460590840564784281983212741466849216720742226273052903561728966801651747656405615619701588420581383710799806902644088963178609796944696063519358947422431547594036907236634205131951383468256213939283732900926484712249346648171568019187976798146348595898310242953394426659651928478077603294541103894524381781358443336302594354995424611778484326576918908827218925576463200022001763952195445415713105611595769984917648243101827232545636775661971563228754976623911434615922566104330388238210961604173937695862221047936142287105450205265858719471714980872296222289364495786771215755140928027064163570395802122034507074709550244206653929205673237722818123309394649667181369558660517976080989450408701190408204537059341656175410820983247399505970178135122542110518571524161555876789732510097291738832339266738819473417411051429374634194687677693006146499760101728062087505601248805685312500274773006501760300549189841054352037597290721932866363087899310926409656803226045852249818835423508138613019682503784436420383146585031672749522718766675166494194219416740662697977980427745878654155656816885077270063514519049364103039987018736069883897768867839004261050862985997836977937001940873537741595036860352007101995888589618944977831436754908539904910409360343402329386660601431677120344685657703872808554734551021958320764710865715613048943308440254523391352038405187958322388118571724877394063207928039667476146007501708678820390199766188353663246325047111534044994358913066073280265917326572786369787299816466709887029787537934391257333744119177660629360716855395285415418469370960209800939891226800522978661748300056785984631568540662121281593417609108987942897750227360930610206503416614066348287230558370695534836776705923115617404354540436017127932092814493879580891818846858488208871353021978327511328899472907649221266478968786135517063828171759776240200518110799350596988268844682093352586089179492212067273888666623224547548364930604016397121453531183465948337392327183566271447471989898101626736536689689600478910478026466433463384947703596081227694101007980457130526508850441686093068644625392798376181655167062583743555747294448237857068040251066015847864624882614973847775605350074383974066305114537232445435365052230143594897506884102175119280401632226365833828531965685522321720288532469719509481446828647855197658343845682892441103928672050577312111063136349490626174837083542875240300897031770719081755754837516953442000366218002971550995545413778192707294692332041133507287612760976045837907675137269285938937949471103553657167166596477922709378457010436751363716941334683679927629509196521251298876001706865234366020291498558525366050234670226630750518089021058583814051270707232054806697126502752511671524314691954484198958813017110116587495125295657651609367266988907374936777152361476812117764462778233482455236390316848568787207820039531377294570958784277737078106889248542704997061462221011769539597922139374388292537837281380133377910164062122514545950540552486432169066275574708167525589426772754752336662709000966403706400486248746449401733793210797979140215483484141720722000054617818787621984479851505777222085242325132758115509637823970547507899773737403435162802524276061886560104998208085112560688026140602328187051575821515091449225341283340490657205650727360101295852326420970836172856909324176182511997503824971343283544723539081286846538801973462250921599043080820758180270047242399618036150419342261227021390341325237672401263797381839592742310219614328974119321854365004650612683508550367634966350257250993941138697560746479714424611279518910416169225111131484054523199037131655578727837085035518379630826504520596031572219198276462279051677451449117159026083404662436968959947220697304932380033907754394224622579249554824171026547359049137154964039568592123267933117783114008319810911749740250364696614065623968177420409965176417320782755332411765117201988828898950852926837016251970520045648567793918155144733550621892268409270743839182677940144754031439067934428342677300777332722293738197440896602633317036319265940125466646810375196087792748964648020837852105261721579116554054854308846582530678947416629325944966486321985090924849589147484984379560150940128585250647487743861552493238151822628648223647271095742341027169741324582271371520214306415294378266762545185042896284737854617317618492064405264945164306382450015711684114059485293365703931162427448561194799717319987464328082997811059869201235166260074449992508370093795169457813556330524995870937448467731479574640443239544552470823944788640257805822011600078615659825310600891829144475870061912721795143754164687484435189961759035454616726062118167246651933230997532408602280294757434124706508472938945934129351299308272550393386289429048262231939723749306541719413347475022881016276633688255907435348751492603776088384278821099968463168712284707874183882621038593111064917615717439412502382842153193489785136865773333844898069067082737167106167856177254622670575962589696547321732025400975285363751763108213837743791799151221001542366951911867367432767151978241640006337886061558925553473565373577409952519839966808587828539999006237871095943063434394772574819158002502092140896215540428880908361997325506240713845504113658690159837887047679172373846000680404052573639376456299962327975930994678032753949015313202207776476553137079730740628884844719980034540169105601092684220984964214995790426669803659178826441515075302999809187902850058736483770064611280410524990601434128936539306623526463703612665767698034946625866291302555385054192413324730726178720172120553166474045367468039802771314473394224335918704796384761577695171762152009303473214723822020094489380361803111530796740279310886370926770379589160953749315297792799607603615326525407247741930420416771420649182559518168059578054877765138008017649291181317721387538646419569344930422448435572012454303542666477342204905704160982191554667779591251214372201254614611860032365596939844928021220261490563020627621975190886711162972321443429529278027852658736503332625246292010986553148059635405320894420338077932538348516967082399349824691087845371128314465241140929574169093741365726858827212901614329406269298839311593327771982704190270108935292373114348376411931475559457872392808324033202676632614818887553540772820641220926087326102414914238821029881721083441787989106649888793427146486347123518266448852975238662951243248358655902028464488541051251601146259924032125627966349376502999138158729959380706890244792506830634146622159290159001640436093438539760769550192002474339446526483622549716572820476368063149909426029895419434614656088771272666365683637298662712151490549248538557030970994625042422166103411300676266799872283451231317456918023654108950569736064518532035478630832990228607805770718802791373473391512654687116319418853637886018789746434837466267310239513594750024809212881374472002725470774230410926573672176465047840642880563552918129450744752109244313977452533520542028978971288507814410227851856123134503407316636385165617288892429638296605747801229944009288185020177351876235118250630769138687580098371907084448009587461756856533183311546861317065765434436910058870625123514294404836821706169550492337593814656218840856343539895218361768931948511884395833180143638297575342380096842036964740441882510180237457231440399132809674981362297932679786358603490063487972257522626089960321816307413737854137259345259035937216883514056848525244699046859076890214184680818834546185551265513712714908452494782335662600951396224057049157611042318922340157735417815683404471334246344287892113471036547558528395178280848691440003691961329018009340238614044759316572967438327701726711436103970447300109279359139145488358846558790732198465190873656228162972628532771680887510206935877478224690244753051315623295015549586477371097618559630294022513504690475645446215414599506797537066362678307774232587052474278454852807889640222424015486165763521304568188577164666999023702700263438126896716000506498662602783486180243849237847503331828254563637491712814320510709164952762582152042152858595267276106963022567713360140442743191177333631931725310109584171729376837292889997237591552064773520121638967587320233865486698106074437351329758659446478955604778976163848349946198579880955699987824668255683621019160379122115237559614278113424050442746225909086045810187698629763011030575728956319637906465651888846070540170170438048939686860595494790832450646819976942982025543351750996070775398509265602960113724235515255661682674455773706678368266251335547534510294579185868326092675690718093267456581173488667330158353168543117470200188292705338103197263134966406267169654125910111255001563494384892478436763170401210667784894765360218089388757658445270599896824735073678452011641740458547863689105990195013185671510819622770182339581836614793975701508080285448073120497300817275777434864503410184048328346897168185080891305427188226349829426821411827754846962048671889623556083958727233156920907849756272766353047274800568689801667820238177438606337848677145957098653604669611330890230683858727162698068475834663977261712073684832518509982897161534131034638637167282821313430729012109014252241790838413604591137966894106440147716972449523771813906421821462538170143676800984209277365074801626791548761371875731369052659904580787337338139947852418382897141064212919563641320842862495617072133956022671334798257425413506714695581201615781733795532388338649287595566182718959043115278107452641651065111008072109765465671640040802461603047984068688636681678235229916702086663288723975614480499269010928000167833069337445676766395435991225601564242750159873588689793135135912935843412187248997737475115588834111858147468427175644393343661225220599355214551233436434993543865389712299472300751723228949586742030177637870015577077557929099806993840607459346263466864662870971684129981932481897230207408238264418637314053056780911949185311868705667337657750716547566867120680820679519616684414616990382192981529647253535791932160733162192853684738538604637693598911717327841311480691045426541713321896813062244500381878564366319656955006829542693850869724156354675127254995749706783635585501015672478452486756237184160326759443732677749177577667321056054693676643178015351681578502999771608701190559897603725073922595754823336694953700866415132131181368732109327074963668740845191067582948555803283777740524903219956133368203115365630114047571747009760190092993787762198747392181625758288719098658919094853293872141274934797254290454756200678307889374198690563698507749101363418888792196368136797319533133593113258595672176757154056098591094370541774248453233588666059174050413358899235409661108590073001444683984414485688245122864064534376783124717792944401826511797184261908877260299872433866861867555793064425664773571908328003920341029624696524508822856077703286375875647394045947782593973029485614841413730276280491737738178803161633290265882912633366190126005581459255913764045949254960341870149156133274818301728404628807565599851216790170053488671116868568052315230264801046500059329142418051710655189554598750013644411497524035087941466939429668214125561961955515374631484187135584384139500201197415859975833895828197635816957565961523205619796698382281645149324303582562924287810738488474791315140932093848729913561681324185190498330049526323491760708757403861275503805372562867756805532240080868949700488867205171802150078239704204348873638863327806954574415464590671913218903822406363531327383429108718537313407464000139338814255043224404138018783698476948169367063895410413500608068138319276930904329026177887726944977660057748815098399937292087405450296413836178852201217429690941104413159958787759983512015187002835033304119178439471300517630488090092088546670427975963774046283497435550871929602710736075955901106555901007982831863444725652820754364127754371246588020440908934035449802174649715359951077912004230672162264323361449094534312268640684410239232726250115140624441996343650420244291807248258320651473254020053297670568517543118599526271866817710064383788354260743454807560216811125834079877820140943186091302718194105159935037557446853548462886857570229578079843767141140192656623223626381153807515729458421872202355179704545159956321632751200855950547671345780561723674173029454757734580734083212326064960747860550254635400248570337746793694362097555630180805276156546400434283832499741538454231023851199432716858194054599232527248593586781368485524476412250229059877971496140203056966621635042558598211987349679640924039307226353477074768578349013544692554133838212757307830080617376174658089461353489660884485952821668016950424385249863957583814157124598429834574200410717252819404014111904738112080317062888368064274934268363000048944224830137397345493565313606311068105967530623002621066766800480157432404441299702626871497669499868016326665972227679009719171374328874446229959990995119303284716267467151476011287503792000350087903311279403412879414155938113252915154883776956250069105002887975626445405939433394003217513209889734950381887009231372693694185197891205472187479373181851075698163090513764701732755375654950734423893699072369401690472888933053195964934974449403263332856624619163037732789178137966241284733720492896901583009812344375178001497010083136647607423752626561500444838913587362554878384035545225220717682806844153099582336901058269610189008271156475217993048099110743539472246247924381332888375187281711442361356853189938577289195507569649278968363905187977376914776603332996179730378375771947138307283424748594293399963583654694235415856658280496243773527672334872874874344731486180694328487941507465331763413443781273901123649266992466589086697343216151028599978100041690897927503021206802238235942851655791190770316230743771928188349709603499178753117298405150673123443080088465429717105672496335500042207817707298091342788553868689687540319259302160129077030364961653510742287979328858904599154180752268180059149166381698299520230766340097163455527485558178067678906154158981980656108195323048444794502149331143397780357290068315493753206631164361673001818603318055565061761188223119841717369901629035438438907865177897114860243500700211384918810578410905227635436055541428653984624680953507907617564637853044643469935135014293910397521013203156881133316071452119146473094468022232498870586611323662879796336513490486432762078441395336059538602976262128803745259607224515648564593719366091631793289946572417282251627358213305849175983995322279462915163068340137619102577519355209533771143519025797286284053735766531533871417003769683625110050998919620757900830730963476857721925993694010700631047439347937103681512399456943063968779793867402852580543272197515174683859868251679687652078032382940595986710370479167471898389637607536864674384149933962436996597102118092822218964284923381984618548039239134091259336840164240093401391446416092431700212006821465746819505645798973212635703868367861224914407813205090354622046914612815244769930196273858358387715366749298050293334240085203077055519966613015230276586844462539662413676250508299727583560434684335768889568449899232069937084250628598986069288531480234651423288350224562400341350433349885445554289457839764352285554122766068578270447480889717949061843402074427570827596825823036450974616467086356597313672385432670396794394544635806365487454471493294377365079302572562863012347912421616430870839683463957341808733640680666489451856690711372748918729148515587949913177924517301037597974040056061664475216345662799783205038407979362289441598055151161155279664149154140960867392690295643624094914100297271862292800192624375502142167239627964947754391691773633387293247695832716711728016804503870518139758853393785122159671379323365883639519941572542063933687430707161850690055133827446038567498179400989908216851574880028519253341015944089850105748976445799003409161037643448816388988939022774935830957643460731130442259049945169782354112094236949184995002338632422105385634871134466948438969244679066451202965940261679369732526986972139253056680745379917265911253319066362962272632542311439072335228351083817721997004683518294871041920873386609790024212868716952717204956243809488983369882842187548492075823334377573552544413081199207095354161430672746644980897038981284979806522836944462964357036714518570358600567241177665836418965240474262996843504291705300377362213191559623859040403710875761342232466147891223208801953972650680918914886146636469966157463946695884473349672550701647411125148742806416565871485876225418498598076921714922966967769074991232553570734118408040711826501885705680515866735309793442050815200170075553350367559121510720939011992415685909161963685835274532641975744974661367267259701048283653783460696200374572884637830110873791187955506334959864778192432059889592285292726741936194512406143135648329660274653642475357556561431808654817353743407383607343412310959334476005424216602647166000503437524548729166908146861449637417361102202636361788798467260206095909707259779827798975252628079241663546048443197672484806806657030549735395153074079039543688010242964748537092621801791729546140382308227921147403732008092369030501196844715925258933287435888247814906171393097677748038111473404177513839206379747075999601555002732823150038805900162354519783742327922940378773980277235835252263015722333358035552123909120868176734002547011991915979752891938042078892695659317186433786666902466956062336143739873714743395252925274127000792426513176718515010827113629493301580644013905818064278225455271285201769741641141359909408209409932803155199289552419705415417554983808671642788249530265834435769306021599563634770311712134603075555635356425208198921414746309068484451207776755853547854864880000884783370247593605825590433234576547822046981807262712251363272941211110624246184067548042205000148781196652208819286586942676165860968614358753447525939447778813891132454086544710553395557590506330193463250803679348633996986991525867436049558659590779673539095904523078239226865961592360746650012286991131699303809727717680365700735597803729982154664024348513018919042176232497876391180795421369405038172314051053244971811933663216430372689055634932211661677989720379373604204199261683156601734382960449596689628833869706724015522291512100145149139809161761245856800959882537252144109283032508284437692696052433455327523390059708164948841966501613576869489643599983814374122042267743702043702336411110935135128456311934932366364603734475931717767913209686656918626822368970215986703382402427353806925762452656361692568271429302274326041919999964167630706981768023865098588182184859596260122870933649028271295706336845898225942458435253796638557839918722247698810526617437702773316499412746909883679154584177366074532740278718571367321538273589278672801146958934608273983117473420476399267803917708794487652426304825185595518267149905155015907034742407125571474821442272803952395063400976371403335230394064461664079354614492178278226518523114327283948496774317168290015854075902114068103775830395089354890241125595173898388301209935254866127840309673982502118751350766042230228630165854595351391303829725751015833793288238231608226132492278765302801952440278743821983357766304064620716969753477022566401862187447944121657497317398826929597632846111018669322267586889138074214039967929257996176003524720590123499950534301330573639350672105466595578658052343971464842555667888777338533840889451939796640381631869266670402385571371672769640713931132495874569074467522582724396185489373865679892214620544977247055827424805082748793547320147436922521533742072594842827169551722538293765016599730887015149557653008692714352515568037997567353184566367541149044491727151268557766919533502233074109685301549517965624969814733650550826931720595120107548404553191933651295463636035216135044996763609682903440883467362890646793590885170415560623872079861042635173219318035164483517658061065348252171244520159406134255339522737818051623193697277829938118462887277412809136374595980270812295309458350593823723964648226406476070324846914742137038871314032628654166162720533564466705518416048331918679826700902614126680167290550178090555675530305842572154819592994545368151397268441804243273228689910892210032717546613641384350671502078051220271564367308087924762234653881259427595101636146434010311761034088162628586110979804826881682239213417622460004847258217899423735735144568981272729357187403882088628563548897566339938744821894600252121664440697770209272960391049759579894856052230586624203067632495693619365300066843856067465752089976043746107265944163150118146494822915691818495459383824022499010497013972313152109464780892586520446109500245795965974840911078681670043832009163131187539593602951958474383249383983948190777617008914795715134079128129035150078640755072339656064149552090123410685907218088202210901081841679553583072333584854647443301781347806750511351225547472645216656671683129572229679770504986919992950680537886422262093380769920769313656947487676138934797826675689341366624787407022228325763597703860179995520683742720319706441556805671448413874613493900542786021373921670793580720600305694317897720886839918780823596260951049550381589675104786191192934514623774332123189902269399428642525094248055969632498715506134231548554030121100907479613857845981462739629011923927137344847208313767380054303960733770857618669965017728653554244092997699529666640212872144166582849533813655530453480007406392130711683981336604412739415009244694598171063730172178000229462122607183863955382393707695596799539217623367060689824046211081025395273188223937137244027148097595603279284476031859890377580881874827924983442759861668327460220783636352998359344803974691371793444357219230243251422716835385522513999944582390590894528841035873834530892875480537360469642865832830248211176219088360504222614893823003576628963552726267430770633852059122900912695990567647700325653069445068620989152156283826189771959239478743265060117598038360296184037939315110619604113218361440311490448430009779888691603705521792260909540892818423981512918148858279651852857648209674394948289210483100878509092446502169835373128682732788494668918519899444028745999680562832381089430724788889718533728685828940634076667141084440674350555886846256645640701508830352163307295483922198636359390194622846824575950030057626911671334258260667366830575719102187950678464800082942173802939779955034876584078254456946063218655225419420455180002316627235207822701834940124945169659461132630501457772898611505996401070689973246405912782870011597779469803014626730940021857333740497859672927137318490203053906789816288191975445552144044243893512921429081507202466017698252641626869473625017269476619656741360758786253599083022911915043444173678366975751803377817525662008540883458095937909954403834900194464430274259088292692289777197278498491106552246101467451706622733663059668814150688688265800846975356590239206253050475235107507385505045250391208559758886053647910423344360262215533555879454547322986593767816344384886574959717635711007008622861889820906143688111564241581856395412686724345114012809546083386176546989381320784524337158622341327138093313938432547037467744921588216389139714037176364776789897553414026168841089782011499605589908745764564617219774072841684222334306187670621117611560804966364300190656624337479014333677991371445543624284592191175437252026379793012437315136239477332068045007270587512033155090206154873315244077871580552274889397651705740536219010144849954679601480193785968084680586560893945771986808284119216765056134920084855708861401336352046912293742512304240401050824724368910970789784178337754626599821437398022810205764035001934921478496392669572983694390763062132534652163224392841665231233345354384999548471516034507527970877956566444365853264155663740061043325918971895231397364118950597390309049037017801991823186645176064433736411266076942210730368524318696299065818215816380010097364691157372008822010146945638825249871553237093476704229933435699293762550365829512949972415334174869362713855106484396407708796496911397244466519203199506081731145545898390150090585210790215355649469915920999697193349693129286545995091562320018112327681443229001542346399119484379181430939850055106137956111844114074413086602284676182857652874921322278169674796285890625815993778057603105484270117732886249971895510337743767260199961271663236087126281894686764786348856001588746231412054864303444695157664674551343976136766880703155098099889297242318293789014708671755062810641911008633729749325456906647624091726443967301565438967115616470729231832079842047285695546886557530296662091618634540882903232765961321450764259301956998179414952186371393748690733621122615347963816035682033162448814068796959617541409878611701497735594926606194100559486434345113082219063963977750952735584883573596244279792424067845630020101393251127544792709388631065250720291074916276147799301432680343888878070539948004324242398488255108207060345895284426756205845115125714057677163402259522802271364828559209601987403943780548710691405914472064562844871365736556715302877946429770333295314172198714150243464379496697099962793896484081189569801154212466181584132896315437202696066347857345674356168006902400640986050260892022059088801260187873391483826330602537876034014480495490317096718986969911391301321820513353604292590108927673957416739075961961449836845486622741134377717433981688484979657466848545121305006838790593906449981146812768021453722882289784629496753111709619594557260267133925551321975787352340602146217064405332730679111184197095036839257205903949111229898967556962948048948306058139437685858350348925019793510214444248099964599335320548469141141586878836067099995166809470028721769793233786157441381347682704314338333781761234047710509153413012564518285891481760407741476178701165690802376616965472527891101855294512521235989648218135221199697334389894146295210298698546100292303557557116140974709582532736784303112037997077323558679214016327127989873087254145850661337117225819908758665140576846090973021478149905292109865473877654881396651252921388102135898437497444459565091703710960114516989530603018947222981027290495902302167306748682747169489424018373417431287341200796244747078980825128041988489620486429879088381756791277656992820244242103840267879674495085665040427829601662633796972299666182505614661061132043830261951231837043324089708499691723520724709702611192689064408446496167979656110973345281031819748817910603138161979921297531090738839721082508622802259131855483278923597885498611583819939815332401814359061527011667820702293263772174184037029287989051785789540767025644898314350452357901363252646657860988549154110677985965492326080174650912001015504331320568797715513464458126933792918949494382280583084343972776041316788463847287988857117736517028526633312622245440507525326151308592767329180542760661570507836128306263119574441406610275312968061722767371700426024425975025952334241265287864080700215620944306712139835344305652192931857866283633665388503028650748487938470613868138809114370574937761119121669888256390553193343461010223943108878271095187250091076671012056712754158226552369097575593901020528030300085171383401975109054228201281570854932657593019035388401755304387664357032454627571187259028379912381619069133827625516701793200200950379447669113343140307137450152085985094543338912441512158993342123914948576124854229729704654764844532793411342201071603669949830762477863489539678682735505877201314539772611004778409533740736519112961421577258145854146714596288582572024559849307236106665727515547040700441208572898866343836407186165228927516053456153450077863555959630983638541343158808333844659284418052444178341325921433635951106286701076753494727420058957951033874336815727826580384645524684881960825901563640916130838999585686169819848426206104758970435160174491321489004126962100592566245510270035562183817931920836822217281684186561065266313114104204770467839855281247275598382132541745183679549569052684834143317078880712318639419422156812632095093955388208309928741816388482745871407678150172589206397194409300650027008441828896248339212655419245230764344204827470475733862530223534547829820237896707484717595615475649649648977406900776620951551981608598571125662570082899605800615123220782800612820636936388866659375448317922553567238348143182282689647284334743230575955276685651982255015631807172134558224291669507323551567079671533204048335668443820894610100929832781215960803462432721579625894763201619084334177769102966860413940869388372593525049697646580118370165631124772428600083673343948149839690176881464429014269198156797213809770777888853188699634756853253484817508881490024379410186140078048088363306697939294319363102467797333817388987053355523384394908150680730097593446060292825086929513507575658491426776115006132029457488328238521389372952247487632181050652880911006836916653402494829135471446317202737542507812112556549281790701351345503401564821261490890318744875554201305657225925320394331125119486069530798988612049559893362334465185966128438958953525918611484798211808839839826715041947896177568803884862547163658137513912411678872682465942262875935620293733027068531978119932207889863405814651307988609184908590431031142249188431239063595459288196988311853559356515059117186407444558939793071384663119989868934795362633907175113093411066195290428679316103801439024522728584300200653188839045479848874902876443323685254271842271726035021565955861483742153910636483222847113948315144525459729815500500591085860063606887905596257752361669180002180121482086542519111128187573826102563855910092076439997626207836397574072891579390753594231531094374965727060501522400686618835168857225311400361416542100262887620046811837421862372032629856521617499582084866263533353182110206530080074493017015790972336259542436662540523354585860007438428510488913149310163924066261836263617624690104902981171250287795280000905062473921622373180667803669191609531467600386515297984256187865873348406933741137366156102413450648603713536029692374470008082881652417217535474946282004831507073333202473444631863096549179383625246861224904448893494591294198338230670228087893032878286054284406641929911918553970417372460538881720130536215110612954281316600322728310632578206369043442380559651018204818218664415697805900052394714363294779770492901731724442673183053618981392046125155434263193383449203451909025441444906794674598664864028617682572386870673317767557454667604158153833466128777776963317775387401846684032819121527314211068425829258051669818492367512682791069160033719716192168098628059253751282272983555205141497752282297245658019863974249940635455009356348061815867769260243221482873221032603254204012116060802455156036081787022338616419418525591672316492252456943656991828882177191001278882467355832270818085232985704029999942393817273552981334778019037901739384410228445736367195937518127836119368348830376079621068782304971565926979241523149548857909002037949818044025594906846533275229252544272295238715188993288646444841407975769072225218934623132505253919776259674532552005534374479926783010355697048864556608806968592604926967588358504101356566158221350941496230957023857026047877033098134799931582045206109522165730326423689259940460487362313949632122325237608433155589838515430947961867257104644177704850250248013654104692314523080554958928103781324430115171298412272514576124230251516342072717960186799346975400466065711579000726999833568345739396294887479767086025845168920279851890092093920750526039580855203549778998524771949321336906614877805725740134514434303051110892901503348592071875655058876030403033837813592760739980419323825804716684058157631159736151399939407165416089837283582208500307981634645623141305717729402116307268354048715064431170686359137235176553503776839407746295728448813729691396329007498646362414294386673768366810473926537854357400031325483605431441922525709369854666457263713337154284785946778120022132064449373608927541520966828969400363752183654589565464502728627996697648354259300138708957208000361582370371009540998817292389178542012474075383990074344249488992057271003650162599383744302634317832985636722035635540233600425648282406072714932336659956234880489118840177134001536587735215688495687450589288143837200314711686824662321634533891940674347905232696519556814575630373769631482635091520835498091797612344653797739586700249574945181020873091541695178167053939126451806733995455670280756383670419163721699364626225641338234405577050266606725025684133221414141758307032280549276194799989564120113489524630063114981807074105962011176443963671263377353834857060616076309171311717451663728955998001693630839697336067013177659709612973159181225859234622881379950321158189676310735613293566720095376620622527428666088661712695859924842681352363474245617641084766385169708925745802769537912654467263916156758180200055402408740367232294709626024677871208559918300686098490807242774170726139032537258230564404654042328077107384685734409017900737042897164816743028752781266087824458162088669783564720674108902319287379548861071030057634346824142898524684855196866091039829295436326478288877407828888385246479065968897119401492556056511933991057397514489913021025783498918354826675471807910898021863129631299460563056819121167930423564929212957469480642343153806015070634848016356111757455521105652812817574697232573367194407288922055824627112962652675365262141174518582796657023577195839011293253939797399256438753872256990461934283758809631163159937094074431401003913149068045165565718769703343283723857837989662155457557706345503283172576844639439755139788817739900401711001324553202319680472226900498657567605996407180203205342044328652803145034058442689819946600674061742411149092215416923176655136094995477304989373946768028412356860316857857800445655320795473660263860925628228650217634944682962436959644940031393419261147371023652987104989443903445800428544044136179508638226587158868140353593072344421230007916204520275187824645813624657397649913010600944660757116231306678454100460832144380905843982680370970594952329577592882340496885801948782034056873879562103147870485559231619471317702544166174265959071871477306204842774096921159977194914933066096729316841661570823829262024258841212372498841772566097550755640291337741269062741794507812032928572299943288863469411376081801833185310375054235365650619141813864598064923362869393522693315368394145622570959006872037162711652737005061078534274930516000311129258403763735293079522375053202238720307264680976183388893916203303207188680455173399190046164120461575087870254440960751426765604111359890136788438012713085194386793362592057724486311413506937045600515253414625334465691189963723224284804409206307197894510815037761227026618240737381282389400812889765234951726264456640944057429739808258128641947503505578767981359725269307249655161156790447566484183407323909550212203655465442512900299017930480294795886256364778037203226655006567881083044876671992939581540336283638665490673836164452220872063277172355156007101728290005734377437031779465788058403761943370858502677897209762445578027022173927879400645205322578721082477154808108109051877008085915283238766540973289223978629643618721932688963704924895454798144926939062991444607690409747664548932694047073679200298400169534887736672015913833788607823361744982083440811598379203379271252451202496979816204069286920001228940483915005334268179599868569957835896441569295247341390705374664830718948593060897799593249342603128260283300177390462661427940124445724776060653432481311042081255824743308608732157898385762617732277803442177604664023740364296453898197422163560583182861138421191836827403930256105513031276893800807604532743784533968011172519654121756385488995721351831529668808879332128432186792693591998411287884296998848988074837402725653368932564208773291121494989956643840936425733048453690952781497398843846344910367252874301654113523150349980401166960681174297442737963910738085504622139459295407587946941219638603914816108380965784498876602452816535478080431446503403810400574985196969577630273388686630583245825662130845216986703405293168422499405003018527285265113317890787750355573222446566929740375250589572851900497220406568857693808902109015765456925776495064661221135347369991183758980997427963672934168133431483434582712878770733468005965610595270336987578170382859700147977214054978582720839070092202941641507156228957424002487100690913476921596641393450782858423069304303977392327427598992536110485705499412037003202982043316167116513664898551563850910788032129869930349805923400978196773394487857163085669770905122842208494857783105977133980834047785390105310313847136197623342112471423944268853774041365243514968843479698420239572778893873803633480784175836458161071290411296890349111214040406164660245201690178674395053902985159902102484229598471219261879635456591004211969358237014000120543352722088706894589126416443582445788964020404880869017117350833172176094787708337623863544140400737978310491705312357176275632712856954459121611195096791628640982009795057942992017200370351862829663168939395131788599496680366859880856194549427162646758441126743552900154101395031474976636186372744594443509573537976017696360437666984730622139592726678522772157106984911890073602491808598794696558127344323422132703216259931486834188742861842016840209306096358842621506074685033377691801506662637408194365239866285650656997994509087757250379114950480821119150914312626929918795564337070039881465738122357363752967896596628253739957267400134189600179055130229353460840482802455340485674898809356288431965027515786002921573280580934884194604773514719841236413882192034108054186378709349249612137618305138273499122002488392454224732671287415642899953602485781383830790628622070176529018190049295368132967495102602470376197714033667851698211295925818408215410098333714532877758855208318408048114315818300700044956746417803006844408962588481071579980646916887916038259239361915448724940987956505940466204857706885954099502852084295508087131095497889291912798557648806718047315396009289258668073042724443979194312876802899012113948903721913849818554924175968585038040333638388119932372376890400847345102663285392231943513404313728053682130885434305673005291045407472904598263188932769949100999653181617519661538897704784091799375891510960085487489967820943459494985618649684346009017771889084202127178917982271447228743689016409917964748662029412167790695453174987245376448443514112453284262991110027919654141278267973442512572098570339445964770749265597661494535997549340009042352332248947659024986729577268059592346411579561276870629283277721823050262588879606138443302805440874369771931179724435030567112009724302128303359325452259654536522170979024002156643866457142689173716566110437331375619007644147643846028544460469162361072556797997406814089089866294760402013471393532549791130601561743777007722797695615101203922702923100930019012844231668002738420237370555894609374433599212807324500550637581558898114846443597791270385799658248203183145595985182559054670300989319165423594212000295993481469596744809152887426450817138980612813480555643741224016700416520003744409507289676228353076210680104925360620673072826234507564452894383217520995513314638109022134670393415461987398561176855246565144793507605053484792126346044063435300201375114050964683734228046336536747119263425416771867975238028676936137581851386505946064007750546085406112770676779796625347824173183078856257343399663193910552012672401998279538757318054588177522342453670151735642011038321569005988887937093119684257633549576988590044833066117308998558927082055894767651658770884458653879085213533340881705682411809508853417431794350148248919044335022512347548718656205242929436062051742300222252273963226198545863642658785879149459694035098558922340814678923833608270707674337491727752422393892677415512727387966735734788933170987478059427824306430403433509303597463621957547952509541404103830871256251552312394883846611244214049231251845379030067182664939395485847224210282252010574747485383052888914078186569718893273896665591377754102622381425746269732642741622587367914248692910065349011204807628338558628412749367676987242139751189082405874249496318604948289755830261685816808324455437685221980108698617856485417689776054769598902255786002101833642687506034256583885364237278093417637713974609149772895726116075598130055705580746664702185440138758998751676542443665831619893235019824146331333458512848226755349700443895922564628421487206299959345957034231590467682659463326008920188575318227297940920525152692319967634022048379123971746715077148016885890447265320339461900760641829762386069696235084238632652409762361803813736052794280005444499199336665672510686333873131782594760653585507661106997752020753767518559815782258629235798907194107166208574546132164414860163902368576905768935610743597587569013527848537968999008581192114760872403283369495870787901550073515776365086938416822106839411670219910014146017788471464653839450635307441228247841948685434710005493722807035481398731984584349697580191199236927152565846473381321778609174969479798199144523973942126129889438963260875567768674309309801234313384789971290574856435064745372456171887306711715364443318185661555267287497748972998971073359128685692288397447780536828626109412274000189404298983836055492986287839363023693601918204225427124066374111493295537705539587201600165519705345443409974308563836012748387740293730346994051373560994398966310754163963645732837435446879186647830778034564889451823321968986647853734139038653728926168257927696758681991656583618570754176717666141388572742814924403427451196920936949980593445150979028673331480851734443363349481903555284709386661131138587638292661063807548413346131413291564375182625249029031071125224471399763632786225717948291816933336041006672043544529183284430215591985299259467569444307767029071093195746540447707879475308615434340990934871922961111398942425923967502272048806087053520251461710114884644410396443289887641048240836212713952415140656844797702008091075748112276613301107017979365182910928030462576860936586798504953216660797542247820898995953969798143432862906114797641858303798296852952122321755445553290481151602942099699732953177473996608602220776656842191121502430225893025022134289504165561440348519012349032898614806158052066505243250627500944419193065045815773667563814619248392602622569343354513168983884850075712239681074231586212633330868639110837401773495507980881519357906760603253818105643027857793560835214513981030165902665860972380698233195510415577529775140343916448843055172488236530434196622876903419707524794162856046055213777322335684255558428785845111908735056972309928860457111810060053436040181261213393592599182919272050454386664552510013702873864230512085029055702783452258970955256664775647492625387756061981476443519476761883427207943283106987551328618376381571688772519270160553476363078166678629873441811155054055595521831175025930803838749124850814110933272434175671880200305977166830608764348724604497891568996479072711095575732587611226898480383540880972520986024234566635428844138849829689597420008203147925227945698600109232765843144510353872091212400004334244857507389266659431225370228702625925319582935275603649751182842781291146839188381141278949649563073684907943509659274040213532719817699497122315824296008120675578718722654753726074803318612948710913416541398521680614608987472559008477494608373742299857976057457184780710787516292643977103679902374071049838234312349293340772898441601460772835254896136796743517081953485921292727331554127723866919310490531215582085654560802419987706756497365132310205843552879225454721000646251702783607415888356075187578473458240960612608540393362395394460933686746486764566123963909970413445441262669885740809657442003796340246752030556122386853489785684224576589158847572376302441153882187655452614366749036050038453342533405542026015835445035112092160421313711629324021040182407389977759449416756241799694508270614442732086887212794482520499480185245114359544665358885895969935475849807493465612067831410716882333972725012412371566858594500139430212449091049275975297360403841262759126125734131211963017875055757935351288537608241231847676172256364333229411266518322822283408454099803696006072266859855016980280678256017542214696188396091609600433261995278024360550454571689699880805175103261295468727398665088396694681152240734323641567078961745869584972533180006917733454203994633573979023198425466855960642322455378853616707466150073990717348551271515865049749511011399708615215782439999272932231072241535478972616652842075575797206501158433360138516337274692502929382751549389060315005022525367415831500571413858457609549299993078627115124675058331942528132819069033916204056558872796496264084969572040852828056135441270755502206193933163522595632631133413066751179086532691003063280377830651814329521517891777026785921890951708751703078264568476610017801135295652834996774139347194110120046859188092316340859030726414379391746188304496816498479262021145126858089301370948635586538767058332957252093905868842745108059950703209393749173837146552447923825513378151746430262432148799003910374750996480670320306191771918055650398813862751015642645121647065474561580504960675390879376836520986249904480018920015507962881260603031544169606658166934328083030582032852881613716797552770045587968756736580763167522066100588214085129338118873400843771314162370416509264711554229817886819619389828735316137756314268327891550027884906240329850946242818196933044097462809020952173529123555276520182351666587260418623046895293753975043687559600839909268811802671380373783926488446322948780984962707275465836516822556877761261720895127222948354768297558265652676200720513125110157360980730034920150565245156060685383302379927158265472482231540421445507104644590967854903723928954643753205014331997221065072581092844560464809317901990138093273146310517765138968957555847158532940190471777851748885214296591507997560125844486776129937758633980111267975116875926068729813317751460268109309002621888926102879269627164130833594326422756433524055375215833798378450429138913363072410044271311057955004826073078284702946367146034822182053021340171878512137284915912498752590060239437525021090795733748757898838188572240034353653254532175480205338410828699907763175195439004137471908796156589491740703199272627166697726690352317375187117939317042001615118563517734535590094620214777463664485674742554232218464264871485729320381352659463517773945456756786121260299985813415835160596367120986413344809952740227894275435479081466644912525132386631225498270201832007997681971354415133802327373270061233799284299330159918302098764859743277237572250136796538396690361722159388998044269739838291779513516038451495601659493429400681128400139805484971029903385371749060976366733929185887438559844555123289129660244337388606431710735371966677024695873357789461079645115664270469140522752889278556399487837743694099248260019078244150361474116358040413476175452113301206255892051930127013899587102896427266039469593811097606965807012033185465045952029922727514553857789541485520339386957162706994318052981849284594820732460069530499510787100465380016708519187408272016396112210417940740013498000796948690318028553481703644237088995809299856412783980851269741353088351052036889650684370465421257959664875782171743668772526352162773504401618865820870450966362977980075670218288752655080222594135192814434020656762430823856590939974899682166385389668819214729529400019838198576622803982671019357283250245928765785742923132301941568788473253751553976494417101661480958959973012697065238625713646924576660543218306036536466903265387273341995948618661946419644632076122626346515759379554504513175103045630000725607403234784628529520169197256364106866804183615731470827763673341936026718299051236895394621404384810210810847774502692130890052117293075736623962583950558522193809449763682029703604155710600563730037249649951460628865170008571413599467985268876847802466944290101546132354729214479490256478258076721421432804160555872379029811425314231775347179890480772566155193871444806688353516928561330532228409862600902039398064647607050526646085114738049228179909218540714051882146110491084790458194658892284411055569634031828821151811049007789807247786415245868582728863944414903361560880029031908759757027273355277749758166665084989144683364683350210001505910915439430040907179709088605028068564795812461105293560224199422903388529259148644287213801833706532893788453680683202555459467103139509322144277489486674940248837242339028324334791080233208282971938183046293188791403343712747802447563642177724942597871873653457126726866240509363704031019877168584279955535065517021864880884826166563350008076901742447386214940408008993956759748679728774280770656255953049508010013582241170684092091091332896783623759495574840236800459549178682415040596818356008807524984051640155133465972296740715630144759021775719506459392006934223576531373072369998314067534942533552698066264686450646124811114184907555308458960890810782171372749686239295783372361448377953735262405266135501893016072390089747816774953728271368463825199183405448988250611587457697161367611778888363931640649645819454741269497148973116742631752008466465182550404638555116003129867237484473782246884444536945850712291963947636772554631333899867228688538217277316474722465736584161049728176350887782896229294840319868364848061292846890247031611819950925936393320176287664815189546371292771170969259777271820005789363610303783671552991355381176067631893673344434806775981658406327448455549643399097757741524199173323847522874918753525360598771117861132765871106214805653550814765842399785303304760566925087068905971740133919864367206250318395854951801890326912104166516888105777364835671497486205499212204744692798177661500320951805525836220062094437709210897716255957717630874628546793598686835102881780866581296278698711928808719951222283984303315399902680633733526257065161490606356773240865612349520713655898601734948530483006612842047103433705165647655690001429100068480345544637360900779381363948598038257569403310394656448242569001815240334593653761500780857772723953489879244238577156258261178536177482557271240283557036988801744841258856406841621441247111476829879907058428436780507419281301570049457309026721634774669114557287051325182532699023289838732913221800304783564125335994912948022504862989825169412087476495655078576898676087492610662584285001405740459398156029372183301172936701255329600881888430445141592343563174562336410166958950911998557634943443874026807558697797716288384732432469591796278569783260555740942182760318220131123750735303073496101081104765346395371960027480073165347563827686364550306628411258366603154138894214890698069651079421188274464917637448945717102178118177199179440462366196813040906209646640051054195445260959163777041983285551661224797197440313827450399950957866202019811214720609769697326856406476775051340090114809131035552430559744609680892835583896796669649021567675612837124247360818085412157109232528123374222972584294291834298687573368117499716122407909933368726750751374158896310060527589975871583870715405939319538104973402944866408402425333547742455380292944445220654284405760507145164901832233420138349770782377393825530068869656539053031449267726029317507541040764449611086651661810341700525215103876400528773959380911489354214251334044289172292849839827787129700085399680937154040340340741193392166058356985626284898200364093678561305068454164075508893096275464236932421004296425072855348436260363873972464697542887139841064150134200853761460664355980876711088616056840539084550281395652108756458251395728998629568790151426781803789739485939621047391172631902936008595186235613514555604831418383344042009307511479534468382618904106313700637317955565152033063750133174502080309227284800827016014923362802529805914373292597189172737403094278151601227419359037946502530622088885076517581480938252916095298982055863800105280277460298384811823741035573761126043313509752069169147965653212941055615459988070041284563680278778691606603309515081130209489350785796184076042469452492470112487470236017191280358433365927078448093823041197623075394847883732326473293442464636568583280701321432529080253433777239996955877534820075362790533863507434352676041673553848736647401178234178920606000217944304284338726443745201860380272897603123231904280084234131734581838448286582677700493094029584629886971876797395833374031217448343267880083588516010237494310354841311389798905846545092759557515247775339332327935442104397021474501232978931506942543162648953079814346618306244393677668146492450032074969290214882719298827269992083619574934424320093092461366271219603582129003974925711366181744916151825979080437925187264255494369339407146228042638707558345002058780480914479648827164567110462322028775734882622427695204232943150074402559135401712373618332147690107046261627925232524987955324734448699607119061100967633794082680318028365243229645865690553280449727697914112340805938389379329214013608620975768509846447984306628380417584582111315944399998082863480439015889757649137787919894277795462883529826181857188607578900119459693014318805537332564463894367288498061820349874096155560346409915067357162522304697014583026072185091903669621303085579643669271868906400977992574722853479866926330640810500115422890733515562744626673604446271859197074312514630988222771960669285299438693629648847208884637555438539404371282874844637644103097364659604196115423804979194568713915728956748942003422858961888205046433729345632124161671801310972804539016564074215221593192085280354117770786417499446846030536268754605238695332600395011281211841937352857448520518811239624134893703981573115240683178219405969861455009564472001378337040949248648829813648877936568110842331318576664304031644075123006916405307322681963378329288234581500001621922156709372032985641300102498265236128596641408300093307403262764467831728105679298281857569617928733762628684739985852802638953499331085761248024252009265016631831079697856399151113557920742336592117644584595391435081593346887267827759152437289065444014894056024171656984494594612445361522780956130538543218959253594430095406578704508357313789088406196989475957061372662589336279123431336763370797714850013013717094761194857079576144702216483690979783946274064670743049608521304330247354744754558699360043822049866868939802169473142131098943283500089236032683467636901281110905003601866636828506817508573611978555314139232604822337647988234598875971679919858885059151700946992725019970197420823316891915016430271324324371387088234207719304924689982349391709395634752737880227745165432853293853943071756334394685372978234919798086330549364690143006542826011605543221151453450424455661644810867250625778075499173804660923267398652940855923809137898382467628694817414935239105498806332582483904080769540775244225965143564028705679766280515888857657652683755908888535674058039967915878152120280470105265787589422834205918170716115935647223116877914725775645484255508385861128422637423771036314286597329814869185247576495999437808602284837247247719921230494080087656201638159516334129571003154528232683567198969245487338501440136039206319155489990047292191189461585391844324009449452761335342968886578044664340651756467626977114074354554395106828094907096941662735965323378334836901424730390223273664720020563569105974417220881450447422946619436987445601581751620348364135124196887783844403113065466121380099657370276960969902477485182267243660314865261646438271092321676373043534093781265608179389035079849915006693772411837950861098348801072179395841634066067314046178542291926933965215039229134925727363744654278292601453673050960243476127885126119419447350490181730432039490775442914382786844402092717402446944434086967194063648360209649305528585313833583779612402059045625719005088559092553222370798706300766000752706163562909390208129601936799638137137922756451213750527442848409570675563224036965235341045812503326509371999408348350803377126303261337749770839702690402415037377922234499409789875115683695964681830384194712073165300352842872199065566617974893547565228199266058186386024338184453893894846679189359223610643108385789624288180380349163588314681606683929140747467347520214323195106202620435474925331168671742578270356432688490836157820707304800100001556995560691588934421836433873513885429278887326649887588890730758206279943918771308155084321244200116755898600352770173118837374247783902378938537020441168667521822772740456247333863209716070235690453861542159207866997885590996676807129481056769333526364913817391268002463202829639895471494167493582687991107679834007458828695811365196644099247479505104504606086097346650679911882135981420708130034636779499798872534773627423563238024374319097013602396880336932243172901269688110803598098256231590685051052614630566147061098547452976349319996189398801514119649476913483183169576212497391158420170164033724892726124523942590503585961463454157105784602526523192764969458211844848380027119356809364892203895200538888179774213207499793532861613692548010111027927432968867609435501867450239230547519917502530551398872815244748760745140112079778028991187488990735590404915448498755366619163768021649745265647731194607371059000952365109003887198878219533022639177422006299527689987138081232057479375441367091309441800189069235526290659879166750370278405007513615145978561725635495503333118967409482776757882667046879054045820173813193873731369814968653908721789163673180029199265198782625761550609024450589596673630099543405768996840378392759771677202292140536929237041968662504217328277542990584067688074607898417442073565658473892265731744603305512997731051157684979408578817072253207433346557709872132241648270676289861422007960104631082087070441308516454429773205492252640697142940800648321952327388508077913778545612425659269205243507843254941771163487225395217286206915685121573013512299109180009354117162399542653383159493974680093637481460203996704433212754838945632048249769077438767917802740252127347590697770337689805754530779641143974095056731456298723887758548519365417637641168232749727441489201741255305500134197063179483558681259307144669450897483221623975165696526092039673325450422086746518685702375351727749223184903738015057833474241061740006030806029168644098861565937058747785963431730884931947421778545941507315549672005154140624715356440200773385350824682744420243011541431737867988165656414808365657206871309786480817626999384854258851029572788403493126528480548551146758108743612595870433275006652932142917460856510086043108248853244503958380227940206008715678488541425634850588914033218363006496123185945914554015226119844506240413271140664421963550689848334489806630198558629710761535478647754363739157392833615018383579828592315082631518655250436927635117582443981209194213867539740031170578323993567243938749244006714783342983960195657496165327602530256965726743602093027818243277322467027655776307952318915443134505745829073957103326025127712065500566333688825260678597984114238490419199805192666797466333244028954413465829208543884619925086831679918800847360875521091909241197363339972349299229170855748761443806576959117705714211188235944790821517852587064828998225172060205625816775968676844042328099364547299596771521471644715297169724450824632582611288667526943497239425417362827167974029701761853966418428912449101126260021794348381661482638466680133136791975175299663262353735500049716818715016513261620284234537280861399593206498366343740898568236930299507131198257809840038895594119620015187815150477370216739725281669490566041203760445302974006184383819555869391866521265969602105808479554993571451609167206506528891918502822364715526110962208005504184255822373629780388229336145695232439478484009509101847958504427181585903573296494172510143848224367491512974842338093439138190211535833525069656118090440285848047697206860661495435980499291147529314381202601053499928232397460913617184600685632441214295305204328648282307030920896629963818185722046052845856223692579906053129044145116516148468389622435182108414731068821972008623702955334514891303545913253638992168069401665049778591142093562551554043876495527105215026050721643676598735326422617130943940674362507003169039886620030313220389728331130194651692032627458350421869913195824218792163553084749447941355670982117211399107825452604800002131924028732746978099856987684077526877375666682040301677814137605576384334925075167842395840917272955385870701083627219939226715587952693151471388115092120105039015209503960579769432181938061097950769261038516946779075725713055446788673911268835286361986908566709898933123121471184871274344714026337835239856911792298473233199078385077619719199959839399523845716993558700956161876945593137712888297535547242050192355058863113792252624359452700910333674350697322094038948929921419067934016040234691291599523572107282222174585495247623053055278467923489573125122097160748200780734025169769755947566606128477478444486644603559051363770642530758464255700497455573637167014983211069274070561375536623203755216113079443015188582522540933034383974878454622922794926156139473718827622234257103654488415911318736070725895180860031122674226812453472776776055858408438456269885864308728317133336826918156898248747422978778231930062152048940196590622397121198026789669472494086830739935827254854201649882158198080998229408723657143568950997081742960893839206881734774750976854993223307679142309031491238568141400645747212439469456358195971239982223565371924716877063291066830794478583604065459278792964644343762366124044893342588773159401261976894516375568343592623404670851907038147130380166370882818981041166070255067341514227164739830226878606894099384140023898358518546606843720090770600331353773857386132643045687544218052631481780781330646178026873400612525190292953896606716854738310993366273378355917085729488207539256696771027571715677826622317587259907293020945586074268586680638852311163235003639620502071217156572823214050886681069987112901435913064777441713077948860619992605197590166484607330723040925927501281446437617323382888455130798063410004103509502187280410441809169422788180658763616104507026632471055517661260929960351752738599131997714254076664807482307569907713681423525313671303928937661989093061447089146197521891500875515394472720944900700707317940232055540290298384431386955329187259737037885558905919900716684052578759907247754217605738681414533060990598615344555020054077555616531398317706783020616561205383168515767458561882965151408668022467917552622537693145584103104342315137929103014647388622249117101317394424500292620879906430407034031882279432340170237915893680372419407455424667205498320129786963880082641220928656116666458076446338515517597666025983450642827690363804678193655632513994100856420303741876021141606234546472213417256977030879238791728107369805705087104365148343918775942336000949947369141243182833436659401167326529146499253293441018880551180881792499794901159682598958449728325099661876551347344034706845528318361390065526756457756230376547918122977346901055549095058896635927870731929982858752644785832320540621335278920011136210895110698212268214646056515058160993340993709251175835524891660590710179691410681958717695844265056348423654375911101007877846028264358505644181261552799228354810060086314462162893728634977798673447422527606287749788870962979163480761222097710950090632274201860263012565085580691089638070115046098760633901603809456258155103020557123199855023682587667514909207977445608573765570619862128037596158960856252003018733306967671832957690135425828794680098104737418245569768291141603757805924564041544187011104278122179391784091079519924962073083331205339673894590887353029707150449190169998760499945751511532415496072339245144555566600535979043649707116576808439694216560399418887238658824401229186602449308650291880705632000312700363360371081314750644219182991865615378751227217680336574841059346676055421900056278126073056457223233298044965930365463716735560423838214650478085511380102137776468550125087661700826726348177421579668055561336016739020646207229954175707786082076872224472694201356459360879737720487045739842750386860639666907606977450885147541096074279257932905868866055290346917741447632744160957086430402508485265980593464205024601660867057280215064277186507078770051207331461662590172707625378338446724527532603269383063502563072782163510650514264332633822029876836349458188744509288697167877611204940334974924152956771732730739051177504031081369823601297727594120886884639687438002090299847209284936523791597790098110873500921512961249550367385798354652130230605247522196419168459404543893223487769417355812117554430239130116460440945464767675867497308897362992956406795637647495153427727255246124072145840420960448566256576397218816014529888494588644486504212379370865247067361301466873490462842920687718891266936503739713862230918361451901305452613081840617833364226357600441882669128847791176162601359922481353283975790122545320171260299781033723813225203589293885861081926130481478094082274047492925375956086284227239143653899886745290035538683506132388870575826630939535850321971293522299299837969216880106546503465208320519865263758555500203214219027466288534307068933052686570510021509571495221720640321320315402720219097252882484536243712243925128843506339850517839794288473977109136725929282182878079840879712906930876864547855800768854706996907130341883065275519087288655522918903147285341184506705009924837873641352892659079706436731257661631203752244299313943420400999385618538465177329512947610158678349264911503003013235037074031979089625482037977708624311489291669659917742352339133276432574312843337293836791123017652162282391735547745173492980656321979108359633403166988964336369363387306034153550885931835399507326821407490418664554744217154120018775618353214113249224807852214871426851102306364814060161756177749835274406472888188031077094208528717230348015683885281182507830795386935741306362702663284594710247676896398569334019806345080359977056084243638629056935364573211669229446575565868748751303519254433662025691262570630748554125415561595132137079584653835506944207506135293264787214050435850176914449159142503690460663914542517167478322927695423714622224888263840372082925733537290230094135116014958425102230529735175512985995817770139229466877103976460605234645152532766180451311042041696740947383597773225986706409715217997596557643203943449686743894158603853524412410143883644695246951059640175870320305619444030509090506617491196937220960076511628076602213137450691453235221365946164701711320398800846539663751743756002426156503666533057867814601248083449177559622034965588033108755901546670337722692829576520971372495854066427607941210218808353084369328162782368846673621073970562711409549796262676009383287000299129777229222985825782141481586271986901749096528809552479207167340826858325018460468929294711993411439665564277141722795342628819514987203545881135349849781846534942158111601817700330382028371462804105994700882296022842086103757343079033776782649998838809654013401791105495533691695023165989058304154585773565079316784988509083704914314349310219898458029288816549568470499252963127962413018891265316730958687638078617823430067117774270912191590590842649309939678032909385218019884048818442376441116029414228602838967422460833327364274947329539938103138513400037558856703510897899958838200131812024974003603816900332791853869279175433496273552966131980265441388632756627121249035834759983773775561687049694171114183907159783390026343127388763049742005986302785789199919867341724694064695161611644550467592993056686674411448498306782311750858636275893961821358928016381050230767541054789886917637288125765542664557754508493525801553175050042624111632015204514247881576407452087205268407105860856203090811489936875250477212632176467099167269727869802677238619078685685312659296834645956196614094852679309805871236319429839739260322511595629662932750574454958280360367906989189546757040427880828512707317435264479528723892807783834261703786542808345088335550532378983004953828942574556308094861874163890125057629549425913581297867079427991285341365229827941545670306691143432324844113371971725406611561101031438362815170551583818430805940907080487386234592124068393444733801644924259908238907337966869417332366304120340855646048010784909473092736775104303928370123071299028666871775955340390874217208246234763651788550431051809995875460020202534000296252093284801551965064328253036242577426825696282887293756400050035842442569717514416371588586806149621922829901182575636604705575591604713711114317997287532934502568930712701568924840239007925006064832779613940974705840540273252606440425365996240706258310216695601142047871518003174352965089986927010048936601010134689762727853388494853876403342534355100921016226798842843158927158327292208733840265271032280185655167530870157466726284587414142765091661926524679652601713360397544944783958212047741632350442125879339616378662924464540902192535163605372308855567477207577591104302868289250549785347678374927952455734743309251387214947550160288601487718471564768226119806342411167126544355488245241860453729188387586495577369996508445009323245115175875618608692787146601953916608703444458021837232871524808152899276450109400448643585150553450229871763603120725604232848755844991041913547739613389054136894829574684354223939513345919042344738829982363919766898923986349614365605980414840476318471691055489999963421928235692101709841539970475850143683850002548661124069739760474668363744369464416286233606090484719500907278868745847017308197264891480565768728670314541125055295141917688015539365899928677470256810465769558040969946449476848904638168695829330349962108574789836163247591817795193468345757000701032490057722324051948687606540175741343643657195841063748118040504857421179171208172840435142471185501083035027224826071012879174473314486953452716779906929422002492713237512983419000067976528762969754324962806709180261337896408551653300668011519613878040747961754620553627487855989575114453811010258267814569950330622198828546486293672505916505800842839019991916543082457748229901171797572016791042481241210294204055092801886165881773786796616646685017841186298741484415550618463493662391819202860728879822518995816283784736017445242104145692388641473522493685314195818616339697036107528186050905250824253010676757674004509490108886723494162092981174829979834279729510958505790600896255310607449147694341113171994060103489981784262717376740805848344731263630471437761220194609900395941490564666928586231859199820580574861066596398925290158571914244283531020962309032836375685510417142951796463007637364552733844965294762221669099240274456241092710028900174490025241910292501558059097725458311595765427006270732799439599550019684664114069517942400968236924460925765983249103203864681945004643049102972136916957860212771123800444894865123632676675563484577682623823213172702677199823455613688408539723805183474745733361300257116010260683136785622145099320793889427875790475126568190693315924836121938078474071708350434312044396695838254880210166481033784583511906476377139649542973485691976355188381601846804076778654925621143007073716699565365398687952136848551225982064272831241066933984994489600176482465715767310533193741540195202724537306207921783278930636969510967089801742886115304781016305084299179342587233464990279403061166180646117900155401743615386946211954750447076488660754408722839525744919649345671824171077111786658958346308132416953860172241030050669493941599056887953864058170846535364060390358918223279485981567372030001214675205767187539854296196802516693217992402184466134883698972211770995456229253882275595804799671911128853657014980340232511710005202900180856982174037770755884776148811431135218257400890011593445726030644719644930014495110942654320069308042070648674928096702223124353324947112124012486081911571870488542169267067617034555709503146897559337171391538023765528420323279485776758422814733214783531064619596502070990806005241178189370924196214006206016569605272344691689811252409673223308939980450619527596786945487587748071351468573110609513800924588841764543050501602270791945456695864374444135968547493917386197669436930092820582954643304592601999832586006388805700138361967167347573652102048228327610754054677928391932403383542240386596123655937952512978887568402370939260553163705992859483107408561772340730936059166712227731364709571941769664704575489995773082272548950224055534002672409909494885456584084221696095122736892360257030720023373696599180648045759792207110981246811669298753309464502183194099660864693701042755202705583398750950492407547480894801341998207395876104122975516120001804828431415952416303227033574238020698472889636872471683225234823409287341496856224772974371221040785603883216726166680842681331245528363419561025069637160553948779166816164437327431449912056704062260055353092233439717166775042043395839680387783303064109780582250972935192434515627750265566162462198216724202861068028985142293725527476347534944107062392949375919553089180577000029765953863361863911350294119747821873539441380105831464195737924764422580917432220175184720654292981429949028568027792557466963128340251136968421116518176653685365264717902993117348547397061233781542277344489060773120301685698421428710971801669236912872514477690931827759906210688011835919317517318362952871002196823737097736959357753911914566863156169484176887884909206148890814605642836561251680441813221443673131128226176265444753378821336751680025725470625118262247040537757040160315285091561530501173215655867065340588825952436561279671442665192606307209918908010682912472101441330183502455134773619160618172878836875491752910495371173062522790609020366149352856718810124651442502648550965125420495385222532168883270030733436662455980265523307304495831132383022109940225314713950348161713124237459939926677716359881719324249735301684813591377926976647811135347984591232612468353134835378486916322765403316295130704804885955084822500300375874354593654271076972512041065731468997491626981006482269095710133791271806519140709721492460498176183105689141091144110726978457156905717239437562236623419831403848640656599492434012809662864001842283880696557842690551746446104254257053121416755679898373220496333648305748844470144749135145223160285826814414027169213650604396495882139591992681388427759026593309308901608794086788035159802785018248095851486085665491690456713465922660630550841559772813285587908150435791322948563164294855627378755868685802580105120913008462998569147809225571443601257003570421390072366563107190981605486611138636923829770634492961004892217898879650363368824768272934177594780509852242085180826409405942937568094808873454542803442042539732184956964892318605883147875396639096816658316764520639633328453198946263497512226864360133390798652324521966499054146628512075096554612632822404283241740441304228477176289000991556400059417878247712956778043279270169019747275040303405076825031959856378264197168981499657994526969454044321589913304160246764899510031334625708801073020254531404648107403474056962007687490735989839111168637146480330941950978369825190378444835623362117251733881067420077124228642559952631169274965011198571882281011947539230015788234922675180438057888050098664303691034475844020773650088230201436541540242879279791680701557514306579594845029174940637402272357971619900434389641285190400042372909204843253728786850553511615397639698592831833829999970124095353857502021957279974634889548639680481753088073866011945696300209154115410501375774532357582595366792451138582706238835161287099394599831029830116516675511171948521240500477809369692666887313047825755936544838755172495700912370875856319531454739359452626451137007951357625856622746653684197423009617234094721931711161894768195074011989326043085573476657121758041333465554849224321573538184483970578940486061487516893313403228507656802970929209757942631400905120501524650117364985122463281534547311597578569096206003783899843966550830886123526838483398512273048223649964604478018061343027270505709825971618867939215065664977658098198690170921487929571741794347179796278675220308406884832010552351386123962648045572397553448792089973995548699898567654111831285559173119192772051004318496795399974646600911883640474878962324545289086813040677161667126891569809168945695359957910417909515143676498038040808720457848306011725277631045452389856894124870377629192998233501884708345749125823351326644839374967674994793557313772248794308074031345234740672313913251123734712653069547418879103216354602801691867521267091712070389850375456817084801934410306054747608743758340139816094413065815331506829702838395776788030296718202810938207419069092131334169062610759193060637184606171769405414181586541661667372969382358447795619578917719991960778019144570346001965198539883183064916097450956287367029009331956938167272476117567374544482702468909785671665175688596948791025741205955489412942264231575909593718842248701595031519842607359604680618666247609729269354829985964801988748318810424614841405217799465531934367110202479494484732835862649673012843859973395645421483959268492881987992642282220584842168474715542071688777347330492545266438252916664827680873265646937634831717629650667212684241163174492686886825145731888278037929461665527972126610772630992509332349139144813955896032182879111472245495407635735672077846588476772432744585065622744420808111622488381522712516093661041840913291645266299082832077865274224029436973215590467482002083373887937106261863631878458591707463858864653246978689673337522969179547837371239829239534764998572873420733975415916443634966921451402032711424986244592138778367645565897185462495917774106523883564574243964764877720207153496460116232611523665803223997012974389356946236665856777516367711182298005984187451422668379100767588937920323253467999328696592619037785799479627930084291806542711459332798100441273949794664003115675017281825769101197075889192770564277111514046865649800843254086228806802820969492566670585109121176644669292287689774213520355850944123418542175716972129435256571918516973696108499819993920265000847425943179469122141023121174785076161314869528786785035853751457323839053008817231079281185448589561003837459783567123727990463174598282534299429974832699510908685077839939391877793251219250848102079979884847056854189456281416584261379034848525613490455537028815365871578288959126266322102364461527255671878022884814338790743871570880569213684901575793083313369295087397650626392590376253762229425572869148892073053500279874435428489173310093532997033129048703950879705918756240533725626452304076105030245178550406545245688795532984224466487637022149208145001482847716162256735131285167644712996369275730171272203826348602028224812286093514802296521631780560865673274273138876694677450257330517475268799331070782123329347614416582936204970784070962616085698114220987401438174490499330790325154966175448702952092101397704322244867593253802032448277857155848453892403205896649178396640746297072508543378331000617330666332116629531156245726681009969253215804162289201647396189960276432614320211891248733564105348794992745715979244725310013783573634359597001614716398411215537315914503616267989405250391384976993221898094226121319498962021289531476968384084937437838287823397791914253823780474249100906492584295254024602739226960525126653579633326605672063375602336159323863691052575727002820678765741338486357852116290366840078399595445672233022188653853222787377615364660140202342859170547336733391202353305599509597506386196649238336302657701441316966162761713442068100231901435828567915918241461975298549570482224443270635535877629435675238212394018701046140883483329533356087701102008157482583150556409198683462274135577134942461580051332856353972914059059761091263293909845268415470325530981524745510683938540867417738015273296725871687809095861862895448075712452807058405234032183511011516161996216555430956188853831929770026583482251968552233104437155856244735627629662607508751271633125488717693075624270411476324444504904840502748614975182313562662016182414486483707994548611350994846811396716040955043667654271856669424610883205269921865593812541804203015979077366881483948684154203858603269071216687721916339581939078291078603248652936397216605860004486424500980396372813277555559570944230660185861801157161678523945673369900685101254870580246576253901604287163207450502888148446718072095980467517255422538274595300601839860333722059240234521316701980545704036054026690158043523680736211368996323586954052225595959788838059603866062960136217967628792260707611220620919051481759863338263916222866022061589020387484025063445931784749013039965164739483491258744091748514782649672375719817783187288856983409601463377922162860560077764361611104938416149674419583594576102541978758603959853568018281904416414323141651992125639625488165628009692214111997616351950983884508368527987927819798404024880669747371682937080244513602227947362429280221464997898040318891555791093698417976242345025906591236507462631143353826106422472487734501055333224314237605369677979448498532948993441912747171776220741115058506651349084073973206551347113981669695883738898778811101721332895186816332227790783824194632585856983825342648420887913550741049041672471010400433608766503921435690203652908186242894919850925998549894250444166475196212201577709503262235092102890171047399109204402297281867146988880460844536635150714638825852942418151833860877660300114127025435296460419548044544041262866162907190159524252671176885775712583682548897191134320947836695357554974374278057420222233491907694601147125211447784709808708095886357315182149658069820493682950548811433992782081225362146493621676723323785465329681876390367770430311376800050578109235549268912989252087405989992603707173521098330755018356550629665300452088272729547819192520205564329294834372583100397992328232212182465661036232146076532017658902718332229675432094656110180890104557194658381877548405347361763152960416237540065142960715214195220025253466707398902332169814138096407395330971847974976935313178021605725835545726757198228733858372978051018460440893042135119552973018032589621006209150936452540834824118745212073982374818313703907442125252278915193488741030004702471461512275059364263373275951340322838587842636730555205958050733028312385840345465795065608575751949641069834392689875327553011936414653817681279794113640686109785425515428909775188249779832241250851923897287658908627200658356976643814901448776637594177930499570128951541630222633566099082325467938033769655667503061269635941153992443138768777398814721925471777352525095102390977716161853981007637317134911642126933900417941866410300094516971789596085690273376202331753879296790279224339123071816560194759548912569549678224587679094087254304405263139935751038057171731553001916241673066162230331874124255440849261292964192072344850672172667387130350587852864903784484178147668111074900821917531256301373243043693655866648053247267765849742881276252594220503339854044364519788542261372355845021106961701346041697059566741197955597154024625144556138211967021918928923268598793858816594971839412850316419081921261490214966195230731154200437553648413762926785149332088928360985880698946238206019074867427224493500065807138529047287944745749409428747673919991345454871858713711885786271428922906809824756634535757666691364978047086239535493706101816278893701887370119386724456636443451652253068521062540075651745700769057050962960377747377897248685312664290537852566036538023380343364648324135947815889116546509781490989799276905984771083983008305065164946302901648269496959192787778237601413796899241412363735088683866860948295259376634543609683438171058329506729637799046346223245961478733047882159503555484904345498998593332190168683074603927666462655636924477257515614777266187403279369887799713037168773415504628807765489445089475091733687888249869191216791337421123126936353077124743525537368624216259356071232933836949508130294379367969363515767340592472978751021044928162863631788420527610461415344348107671463691084965281150641851583417754434901284640948408209362858374235511393835949814970212555067453100383296465489450439043423134734354676148953525632948149928522860631851839219104262869411874410958729352444393583695996082049047113017501392108732665676270282529037578856460986482834484142527543262379156447564709206995721651577910514868795869276246786285864213398404445783734704695763431674670257281310415164930321708868641328738713652835386929318797318887376485862039834220973716582471668317731494721806426750003402134419592684710206427534829940577018881773479749797500062207930494047514088572598451865821599979587484214386037094949862196888833777737950098799241991989490535710076971679739599147291891529325851267304252695377874297518398456023173986180193467680609887982964159742385445412438839061221898189344877946325066073410688374119782312006706677049153341533470249754884962780208037880733798362494816711158026778837702215509569778079462842696922307336722304711904166577082004666030382613026955408307825032113692535426360771232402834188548742303705673237122023895180051390833564161576247499272313168582408493196388989748306356809845103861720420255419659609152394128562807029758052436193751222127581627810850482189590116650292505451313603694318361148064828635985026786025413528666315402004240733108410281700331429057617138247221396122124123508751686060467087822458041711320409331290946911627978033655050003092713936925526501658819975735408067054634682072106163576961950911405757306692361564426536242718262745164052175422166895060191080479787001254337873989717841789122086856359581124405858911017492045519535346239038444386485143917020988301704066591711447983908916623765294084486098070617163945744353564565417892992888154465164762154526436466491973961761577905663026257307303137976378945998919837499908412875874742945830396789648503087430252684351441091325375236613738930711707115034433352120274735351082940855722527304886014791867906712695321446063316858666525801175896178711011402099003025140060214472185370595680759537391724953426165860101076052724684795120167635574408244893679730017091261217964894127014637129194435047433751269815332120360302137598087620303694621831597423994700840655896553965576856012947637865122491942087627754281153630036341898155536446422105921960714661130879606167621642011642265559451162756640294878760724103444656627453357940900027698359101037201653140089897281073289091874466715854148646267002515505280631346251962876936009175116461505670297095777381834149158799587466218304957058849465223484166114298608689730442056026672348825842624900798516789749768964894856227097582262983664606633454999934810156465859634582664139498533735511468349300954435033986411655899905933213932434735572865613771022274085603654380795657796632475636984061017863002568305208707747475363297377319748128855733953299668797651423282825439175759463418834388864987563131938158811216586143219497417191362156637721409377866296370453058699109230573928040468658414261394308361840212331001454799416143539362748934534651492202563021087841250743114776135056836005704313444396368982915379179125601943392541311180101530272363771242464436280209418219812971055524462647865870991843991383656264740712074211128808856423294844788979529116811594312626864185326069417309260080823600608754320128545854028242076415544686712746826278992851830510697593983746375807165614662325570447364928418983131496742719507414044476314575504856017203987078700160677015265827946018949014113208766398763968727554549838164548724980342290065186211923340633713033592921947607374210543091902524118974588167020073089617337846394068489568822277162096278309640448018763892687908408222720750639781998008946334095084299527628921459599342383969043211320374452810012166133960725916912180389560198875275703405152814744368363514053611702594055434939706428933525879141899101508941817902765669202760809737746862302000238746418911927526036559600780923516631482567000871819218589869037847900642327649401337895936996671432117834510188537657160855477097291432227232311747859550265611939234609703320565410926393831710407862880696716949790029599343778811191167706409445598904999221554314126361088779232171291537973079556080329364870778548837921765934878887739841478817119168329652816631633399819066814612977877498087514712634556385262081358033344816932262866626956417988564657991554482050950662278046019627087158577808131003534443097401843957272347405773469498773245940353882445773164157193958081715124430569835637981031320060662438217300700348688930910644113276934031311838221857735140124453294550737127658187648141397989489846222355723069903371678191854435665061832353156615011088594759937109917351063450224955412987953772305656688617540121621655254861812035298436245311976092461385747792075161845298908500897761993174664107061738609588497473920476927159385527451809009774738648252867202875116314696774665971222410969643397449096269446597248321017515579018378427084253283618102405726033940322527272396771535031595518269015364415854619675571121296409282285679817351480553484107646880423942100859967534052463389024152601581012617659686009577634881978612359004316472219623659560829346189115474659314816008689353195949485367485626749302981508434896572266943479291693842035309826207156038288954194063230362713309549179422024414788587178940785431313468713796736293201847978498216589086650361622104207543877804843464591231999910949987389020796012032461159435153671948979583058111178190357893927043039689410141243373066770320230685377714046205901456862986965852398453439866485370015453241440363219229568042830435896839088943571262383364849426390836392565957009052824536299792957274613003900472525091122848228291150452903897439125040677269220918807316449312690629835279766111748241618870127667149467089299656179634830270630739811115569626604091730111479730890989810549802847444976321909921722662188404576935533304702033803733118041167224418929035590020040168465736682353321252898706741269297654610682103239126477531341354403205263772111506494879965190680445962872348903394760088569054463926704434608776057672498970427482551895865820007565312707374053011117112459795838753899576488776092967911912242738434237074356355658857696233381053920258822368671970756555919886864024237401756951805515186256865444686368194512130275535474289145238286348345782039566275325223394808318997203171626841667667465004954854316952354445649412337258923573399797735028210280503252952196985501657736474364911413572662442986085506834286646116877661513285794354828094774511948447862997693179353867756537836260687348482309141179828413173484042465584294516908496907701373188433565354370828905466973325907393965804541525756869037932675527202130250760880672161250971488397301671930265703345412569451162140059713392127960121590500121152935270863500574827264918411463804406243069648269644723746730197051446839975797815756192550779688062454686582653491662512196010501207418124987565728110805763987256628596073998692692729555588699596050751564625346813104710810384525390237953707451799219969957187869476898799212961184414308653103074685824528759068673628277497811693168961048041141254859997793597924925487974204584442213161184678906052356464536123522729217651457383459396343708016878081037153573829825790347540098317641194837891785430916800993288535802716461681099152125649383563495317476108802511206656709124185042007860519418296219436444119508241786293392627714292875146231718268840498928743681838172973275391978745497834625830786947347990926703927319092099169068828579758720326654438368465031258095245931738331055856481679651338319372493890163610242327326561125267052137644036677836532367740823070522204875997477832641491201141176150743373361333753284585936623226344119283314652612794381741921604222974225203033998294457036462808181315269495131083616561410544407827807957752701298248297706109565799288090700035688191739348595365550465765708882568254856594560307720606902002779475579812169183232321655439562436453341839705468020700056350364434982976180483622757020754228176937271990369568937848140433423009642778185710351767773933409731170889194566399716137125038353885451456563603017126039014138023401848540563474112320096085236015446229467379775505944001039247046702682497090451783803405528374555638646855358097944872771664600925196496623054268796177547412493305206075511096417510779917023886118028144808908465161009269544256487379137602166508924840197450545786259934499243340001456184731450048409963243836117213882161952439032132733419673702362437786600636659387180999677167233353223604712880154689017453287120068149059054910175019105886388046378187676207188321016115603566981337735860124686586454072952627668493961890386411918417079563006465882678157380545718347128289597916313617881561927041732903923587448263898197302554298057297651703710403819787618791572054145987862626886202729708284669319163634491090946708953271585375132912550990470234061524244267957730454645097799451266246887323595031906725445928182447477128328729444596732563181578494324050277172289278627120836700360242337350644443434598665843040738063513446013258647051161055512093063807928360922462384801734080223204139460799650182619926445696115019210687109258912488654204543459475983123158896232794749401026282832354978526844492732627119800911929112037242133055458488420643503974200442272167733253787219766369017840759077963642697445227819032958252077552084635189426025707209837618752012592179098272511489621377845690371810897292705413666548201264232732592998893249424494071239476069351451090260703541092200934013974079980355381539649790028457265684001246729735546874036871690303773450002148204251848852819287119967418446104942276796565703281528263039763275317118550174584894791007694141066805751139782938616679091176786439943185165610042021774230712727572449091249103161729059902022910064128646777923205997978846336078901841298901827493979285045077340891646103037963410527001077885553725126262584524454969542385077775728170568702607912877194162058191046707227838848576461370882410332228062493617417454197287044018797848585783950087966903056284087213310348174083529176121514179412045403586377876050221143713235644537741187329310888415453895761083143921407627154728729211627462723243564175765752325826345699016937005982782593039894866207505342347068564453103078718928673898906198362016693226991089688443998394662536592455433796868279162661843808939900189328239394785535804849491780961272872793212898491844774970114498853675554380723120520652704693099960477768295263963345365353163318975281014779727075533888683002990339894361688638321566380326480999891912858941243422878946438085082532789226747218087125794356881085469579831146726217652102585290935190050403774529320638971487800426348787378303476452237085731645920947344573829857246371489453012366916786934922497605030773766762798717960277062223342379348263927726835252926129539066052924820615029258318253092516900203274595052632405654377755270424442723467864058800485354390442519952690026124726997120621914888835912596792676699854172788569422258907151270081022978930032948008171499142544734049034371406596001144849379699863211045970400529636029418473025822237249036245738504953294616459160567722781545515924857145532045389024530017513324231227843992834472677797454323325368180657807218301915929631464443953346967443221599508892135491528782178257454513058047757848568272807108366925399291037597196241246762899932568469664212456065883923850620177896841476331435778974605257507793908622110142596008035215692578614511456099400576940827450633061249257945302336355334071318442319463289373726116738650354608629845625230796562558171741028197395120227126936474827640228138426900531624990359546352166158439968803147123207040308771985986481963474373131605003177138666294835138378229269666878903029691541326271795503923494432310431923460953737347002339998459217974836099486135005245082798367877360202669454542367194541760853965590913142367309147780324113119089725315711984035604229242392241462158452740807952356719281043517425170145401864990886890164217759074452526622474047393182525189261635230748750261162149813461515801923355329536927157823133125488489960047633062808110504548336673375627911614130852986250812349487702748142948109300186216751688118405870392750052805526873547533102874367536772423748691894517767710034908272765537373287324442384503552266548056406286020215583213959140048398812673555570101009677195805100458562454637917773488505479293817123554845595050958975087596182539059596893150382267834992342600148365201145381516918744687038487717992356142799522684268632636998027398265016134835485453710561660296898083083574569253502864519149760627765499672176940840800751665946162657186873941951530428284414057199167780620080362282626550229518559172554355664160628118160619367954254945653374623294525438356977473598625579579003002519273119812844230567045641783437873082889158214068652176341506497859530724102097610827458488002192408407612018254071561174779178555153941333625205598612692203346777176265482832223186949811760052989917681557393838314124534134146592398988195468991657452201835287835313011997522792232362867567053206996395477295216194310827484539199561459689550471095519429832071007206327831616064392376322366546096583733792396580743873407787853628104541768070070236805013648239362127886545380470542835477173231352634241487864549453453163465262967154175266568493055303086252009380954879593105607352063633499055512994184307325742640487809576242606072534310860826573829885585926281745513846697437971168194095199844445462338857397032176528281281815233372130250587540524326463602959479791690466678025160996995456294238705990322625435707386587419368154014091294959820664126633177161307976264641944759543603820700950454529650399060911948851338578482922924065443902038181488399390105650227393199283839423186626076796842534634015776793233867520190166368693676138442753136515356788095088650061995320084864164013783536227703867449356649252197290095708234493036887186688403189198650472529939342649756530276896500267851474644289819907171387694992080818401188737019034752979286109274549404460289198584953684214940132366781831635648049450311243544598720901392615352516716201485159325072053796479993723305262266913979464709794545101821795252073725232191592647174017855867048599311069398726740065949667301309700237652102148678298422658575936712538769193046587579124094753930908330775285706790653798033440374387453247345628432899016669910654995158578258704175360910115337527170617367833514136987347484896226239584591406911503586291334755896876135578267559964307730500701543540288316343275622436646796625053317019474796483240203415874378829857731519726314505928899493569517178051135025850116179166834169396001018756456435970145967846395104555915275572574709365603778905712179959506842210426243372969526506491371011687599649342908387069057460652274316985195788948551042824963141422767062685753920890862486768509038461498693165557045907112806070301370211180522210122056958101957402308633302712578164512693011923890322908615250747319626729633574613376870374844097459509332773007491715939345340836684099422264386176620275851385664021404572067835605211928114484631954764057988361628573344127699198431021444313280067489657042625564161764340977766664760443872833152509820788644411332107794053385406587829345943118753741602458567449249574426840764520830319890778926524976944295212943088977768610484520190542108589951305578673062451616340815968653572618883147475831467481525291031476417571405676851012753453863522383002814114102298055739233543941854573860799374808029119002619952454116424294750066218054108454763930389544468850236053478768595381777038306941061748747619347613559890516495892697736205004367067557089012133586220068254457773659298979464351318980345243498462252585386406798640127729335618620253339984529318684817656902710070867794559626585794054417531554331201798904969722438065081632266481597646563763548843435508735632604352701643240107163633738202331261643373502176235940527564236901506055746605442682176812330287833338336058457915341760414831335661104649473813008308133734627558401531086245872995730541706092645255582475867001466468129087897071571939656931191257017832140905039053643650636344030901751851918943112677591472336460235400228526890537027066965933745334098103117322331256769220515000257539229631666998304345528470186036028734371503524110275959305408585126449293367164380068585612171170651725261863425703972004492802674365469587621526266571717643391098371839996569578292443386879592610593059972871660425674571611749770628784390213770358800512724569406469812707743859077561029296222524694435310675016081478398467869289507338226127070293668765889387429447794528885212141475983198851145160117931867126785710937167091967699919636214673999457910228680646579654044399856747567275400783178234213369346236577989420137230757364180626147839420177436338205139589785462477795792032061231731808702672447480951842069862726327078257842798729875961221688312330007641806738278118886124951607517988788216906164540307642739709957776867809357693005314857681300347237938154336255613911424600519246070461990824413989809867448201352158248959711812095409019840873873488898244382680551800927927932742403481583342107427833467065811443150511145104913550583378896959911150185889076436055402037848381594448184338246432149441873354450510030478270231147318778464660943911179690251827737922777569119196981889760455586926469729752558234354313060380100687723037067465346641099355067425116979436479358604320115124840514028736491183516484111362691469059340951293863997130088132946924845542250011801991205277762157152387338896756453611356045795483939086340855510385510195063898878303302277828138350433078903766412287069431443806009837103187069286124481610753633963120559858442911404256597006228368607272995123953774745929450830591697288186784330312558491498489302925437386310398221118431625088739707229447516019179587487865630275179142746979684790326721285727951859616661041444826766985313265610577184325168334866817337597338777389707047692451574850217031288321253778952713550165815476881767189798632727259318531574466936888286592107721442944854021603360968990692033374092343406144851484255856120360906330746716231243619728789067606498649548546860884438990349213966771766073341220847726045376987561639922273563574345912710760192716739437921151869523674096462850336734265491268248933287014172405561221629754164774983668065319554163394228905737278999606129954839861976999152254859921130672887320241997645275820046127996740349918813759464162444363461933781952688835600329588354235112969568658942061357796847058546304642466414803967017182445139538792525906247334501367591146731059109041172192033387769107449482897873667270796641384042304942891422434171444024743697508357490707024747957887032424083651684538219672987455212948839826995495933512322426738371254964233560106508772180442639966015894635231990277266233312357149910587614467647649356261810282508295079405219842005699452457215251951023033618451379938211313895458758440043203951029582473902342526844340047379027561210857301578094487099407917807411929074729242224240372193779958514456269814197817855151063974054924687647556349420154505874833492035817255514301834365960285781935239313310320513321552156503382828288304592032466669235169476212130327278126635474197516914708593284752449378489514671998445052386245199104370948386462814234999517581712391207008217840177145211716793809648465501152179948247816029778899944244355783409981915346216407658333412532166008007622869395885433168055528876803920191801877411145005987455523096374338404850629319631031818407758379523589964917545259157013715581960368055758658016351781780175351464537553234306940335373796166826782503698416207949409459531386387138870282623843580322278424503152480567783453202349335845292781535801549650603835861133586463115695550578546013464050457480232706342490783441282013454552654355845497930265397100471902908116056437054043448502940300915745399068122244679830076284646337217050897963985298911950069295888159121998392209861247949449206675273004497838932901767251660862131753598044432900319434000547992367812550871358136194249625506523864864587691437271116575026506291535566703417445185074080805560979961739890622209800663708581909472002029037413281280121774682075007014754866685341785279639226499225060764310671828630038408177441889974935758283379432353489360739160303156657878003249992966755997126288460684175346848836144900610503692162371544987797542971275517706857479433313059004208837805177284823666055306926147715040870273656903519359043573330032372850049042627757411696254457230097945133989527469534184187311191179063326461925511455869683260424649864044316174758305556660782263675152662835231663880861363548539124468044567716136078957337155816364887813649639119530434076662406775625419360678684926740450268646655758275393241665934094250634409943648771828862762701358401622887200870045738416514706526468164866594346878995014801250476460648359466486796336549100042700879986607762526252191477254201328941084542793962979102077275977523806916127041798087001995693845227536095256505869758458832217301356471948332568143413757028935503983078258186847995045729850272915533657352205672776595527140853139533753838126859926888228993775586881851775379943602993304218392643642672121296558994633552636357005283652195156311795520811886794200310675776572951868479104206303547259804031861414946845282000787884233831506840159134799777579223502414246410486056359505446710129824256004042111476875035199260951493179053856448648312307190362978910442859217912368932213367729567617382293684878587933836843316619643874204201633767844294119835715904860108057536612055683597045073196454622659332425716671551437660668113018776027029056080576007568264023504449338180497994323519176608082697036862813916763958815446270872881750491260024061203804162674739311616500928947381259888929754735409227745164832490175126147611892145612262694919318662909740147630521512533534910885060734279983748379864746602156432056656473555857712516000102307016396898395842031828793369122688678437107077275146121308214922732801896524277700733316660584816626131957761150075829410132477228747525102723056593610034047694580624300635974004511162739294646472663003607888676743148045166634763304880315769336377856991394444134762121441540551466785126507216621702353152731013926181054542779717242106888242449772185505357169826393550650434133838923315917775820817716707693400377441490617216695231671497479132449054133639626628823483183897872631574390541244291940281345687802822551444727096445100762825550592339648833197581623939108687044187147393400633923450258423449251467708160276072542418063406258897321003378477466982777712021007789214935118748471809516161577527256272080973734111776570870294717705196108084197298539161235560488094463897430837554629132267591565192016043092324345565491082634473399319132215511525807280233520681012013599766031255427254381998981180204893278635606375721308733087199489761823229878510436779389052597823014224565644560210850856428613171317560509699290716446984868135919340585090927737921772245525889484251425755166325927560150303139697780687548078665732509474914586200683288383540030890202103598930495609058685997886939760839767514603809864909640795149252975604888156061740540128212774697081884997111376416404619308399665774702682063690216514484936660860955429551135569846984924344372495633977489691524917956044492722521742918457203698777658422829445235838450924387228228647264147970836447138519305494697158953658146699407262268314373777552590623905833579713467963058413329934321292802255724893546406339302951021230741638395220108306570086919568902814723278791941271756725011044101874439493604520590785855975034740806807001136512361862757786045107193245920723341513657000072630288796751847587127197077340711501541212532152266018872913806257255848605243453433709082275886559909953952602502209397427406701151692235437772025517146937091155214145400843137147949199681509415041403257771781896054972066054402337573501766246609502833029496416285445709182178193134155955676366793373988798838697525487531723775514039661702879186748743792526177603550226474273918422289180403888096145849660809580239006038961450365694972424941203505634712467856002002056458436519167305087049891903992725859247735696136645564932834875086901884584069204321845131778123951952577564057883306030348821194070826344198171064064108350787102133482968853002625237602514453531521261274128468882479074848636986424522400331377868499175125098553903523585568901614778184936300204783652560228296933321404950823121195265356429564933135915975493323913188605401882546077061419261557997398347213787725778937420027739811306695406739996484626943330561403570296201965557586734630122444856272199614142762356296696768014061166414051558362577199838145448488407064765192656187919380800898385166660872444437793128944386171306765534346323714518357466725482870687344506986926295975701211550652887999400282209698019380281455488705325373664254131333263368215134687066307691941992575522069555693559735249414958427284273281597363556434788149005877285761844114329424397685281233183036364801799055932540775998162022378440390928945494904212974642010676991868470362428677685610696143225112606025542149194172987726600522694063689934273544388177193753304420125727649889230475733286576430598367517250638303875302553378679181733202359435712451846618766691521889150262894922078601298215375295457937455142158765193298529337257719166734439621301783643978183292323683338980567598872195359741522767472616415866594819107139257693189018495956120176190073881281878995845351430961293278384617674115942872343696458680002176499756818613088342409422049435331194627572169944535067774181008314875322207571293266892649631056397457415125342547714059795236095269884448890714779615021368595009282333204139656284888684805743496305731531804460151247351719103551100922989925518116414201026448710031199519496557447835541574687809328472850647784682931336549213239041355800435530587454486925506434385995988540683986818847839133729105483076124897399493277039024510099277112465114942174018555796539469648355635345743818446831500888434525323701975872787791231500760857879902892561656106307879721577707939375397111127035941421626886281968662841066759143234753841198103895177977444006544135049528589107436566533775291324137611970936936563909865905717403875622619987515197782158411925674792525452965369288188750715620795923492208944180309858563507047212438202833431632364371402325744464665727839613224374264061382157642677708871124434917990337785816076832161089126723825708016395750568435785432326048502261338415689220522132563595644708373822279835658569710130896430274982279906224582878573599491676146204589577284283042351056607166689162395089580694216282356769729617629060168524791588571322500992666907997376090325100102381099236370154231942598124271287530158423258110557717012270185312914694018591694375198267690797180432525939266880352938956975666112103205469720716445196697886921365655554489346703552828926181140051137491100022927268523120179190782143201549464651029416208851349749845332971775878363390726479930141505600707169917897467082906952040895672717528618081247282208826211788322169010736380278507997742653039932552286017635962830820862848392218049421078149949274352899394626127360565902739174851248324678461053687783101097161957711705094987865278080678053229212527383793111856475162469724489768363842098354262388617421272745219427890477651032160803351904846301817441490336490097184440330493042221804693849282469143982055888129906257441754559044271149280856254036552486114679624988591136149196804275580919638164616010129202322364705235816409577008080766780423624841708515849259947679135064901237871901157456394476621431569682771409708108123718328390385460195486375480436584016627755898278157956973821216657172996597612536032417314486262087735111136800153158355321648120196376019110886590326931537141437342029969664729131651458606357153838160321315146736930170356599779551812514753097087006166901323786991232952677000845357689264309017520031110357774352385663251305514611386509653208700247213453094130325137748351234977587437920665665228834076196436660707423166523199452832520740732616046066033901361989608286162268406727929756025470416514333584897787251571713082993444231314693991751444226174222708663879673263658988741790473817778854012083076854911953056664838176693670763026604163469810725966926942649295840813258051260493528490656907768157152088351702327055034457024926081073465143257316788748631630095722416947758557692367241428372110784268115742540683344005036268857287946802127062139638120592791305129006441140906167076575211918150083266328485867022393463633679209991207938391183290572877116523068994645466452204814416597225410297094617237143565161207772675531653563831883564311784526887552520202886191454915439348395962411280623307807039501206152343197665833851850223785732387267612138593608948226143454516558352040136325063309446407433514692682145139663853599625645524316119124051755519094901194828298623993685187768008497087084417901740651202515549371998550627605438894867885728685376384267796827189327374816685871752960330430335049114146715674317011246478198381152740850629301963587001824167663094233571682162275650547603469419724523671792501187899114965640706160665928630076339531993231946425916693926560441341420052092112067564239780559850324250970830708711556914420886159575744083016788668104409999830608517339976191394295465172363561765525904355725376339636929676632599888654306946044310324865696591275459988669308619522392327506014105816150510314382837005916298448517353393379667249260387827102678877295005617139066217364393526791314484343842497237415707158398813797223477228103448753902861002959125021026363592101716773293568719155205760034039930151566543373327778241810079848669762887655768137771507429962969625000981046118354684084030356095472252320567430935578354809272001221392729431835899981721817928479539555208755079651804689965538638681012686783135677466047609156749143558786311828291913517424197926870694593516142198259066343705038025738545984221546869429574548684107656604187036426987530291372808434181001416509663784351430455850277121262933984800272606392835857440538657612303772685522626804754841024473291897027502854063623543510137877931767365951667778606775086359612987263215761387457470766596953361686166195109197838608884711580923230111183710527191498922626080736881077744810959000932708394835784705988366214388415012053432600991289443678154338018173083706417006756609858409683353240016887184901218499781669646321287313121004514818621502316318723251569510727682692155084049674505887423851609430483697174129825809106038061108201931233113414730266754464554292971811657008372765104571287295155752396771828362938704300496913990926256217141491468357780722862489395752510021600399808709976041487559596536687281950858054579169545842585880365904750087893382511607987564809843513106341958361081949056710696027768919461935509404094740613983328820430193835630440823765351220434976236652214192812895700764892155911423240613479615036227677355131103006909590453237935216821349434050037353891993476502756519731929117802742407748557734057368561250093933485093929695940493839732781367703685238692779232906609543035817389517537091293616872619646160895863401935673820365481609675008651836724351665319083184432922664713405643637972262869284943372026252968896089197953402144333399222821554466921961034027619141837537621255288640198362566013263736892945335979073254497525161134487031105581417729572581670551507360366320387750036258455159485775892491465614689477180318727043008047815892277813903282611624664860989652013691586241770252760178339623056264495223674593122972403128685820224876554757628844739929984053745038374365586679607762575705489815302518984946092581667501212584063752283094467091637835217739762501707447932464905314676494325828578174149907235376387790236781572105824228351240769013410033969193716943464883901623158411630931189425998355422869362459114725252750866566007693199595012906292395292955544278541419278387182941159486547977701335360612377675174524107138032681608316938799100165219173646049419331804301633496129911585722891246099416085343944679779796514688898780525964087573798347174319966622631099857350175417454381837924070064086041446153097952767418218818034386236570539298407062030047923208688186097065372384640732769460331769896567925622513794980974519787658954935886915990388839475417819236498852542901983311454570924123151904653031035492013859776928452055118698077717147870376660412663223487188511509895825724181874766273100547635319232470341626619070727412090373673197491063559894557025199900531516060333349014073170997238225283595214802000618771069888461248535860010411025153246126525408655138365231854404998051843860181328571913405850970886042005300005801579738429425547247960443755014999738725091850212687849331940947119666964344567331829794952083020298492150932417750728131529005424284743792803956510099558105777882544730953701084607036701225007980264036934892112202600000379339550430467330928146345779519854761340183502337036910311628831242290503497618282364571640754495039809785139813436214976083221184356736781302151903733034632625683103276371883542992805618921699813910362074280184607294145451635870199824690925768250156557767943542593486391611052919992125873262106864632012739273399921515194986534125137217090814255589262249542942963831723291705506335651956019452271874694732097314478195688426170263357183889909253904301070158805573597198133238513156578407017721539511370566071249430202141225503882159141774197010174006759845488137587434261506151576949918880289818979626640491350636371810159750729402421622439298023558496111324980954805245790750250297457386148895220495046122548947655456001043521130719874125874163470568185561148931591928985178637339515474740968752507577531803626351393687245301994004267531829762652262464792370293040918490533950425873020866226854680170819228236460845941157778006097435688954694500666709713857006499420336280343657081857032671433869284992196917093207269877751080629113809734422564274269301183467810721263159765900971097605771267901217234018152991998106836484960997137288251197443716156387011415273300294964822857406155491090998571725793514008861821648087660663226257006744102342929186538822487667882888710176862176739546341425555577970299849090562267836057239359718323231544863342679461698015656710983483271299227944370069200013011286185289910223030214488512197287461191242883857717427653752488401754851724941611232507595733953385013592184480897535260219808194258642258545693008646207314814632394704751635331580873046237284723838487935695771469879300313099679161038771611038592040659608532347299969378102708816937818870335902713340786469495576919143027241760881120030865538896948588802878487046257594030988751722395863715663025792231084543915261519338734249045139961265368608500071342485855949832917544323417657123025693353014778387308232720861990204500673538454326636323726551355579523838124398702280258341770157825961820202870238228162737159311612201527673288911749667552886680278931048044334968678621244503420081048555364223527098737848896552610068627221899840990439417619652633528864013008030133761682410457191523138999321177221324823915885318734046381955101148456012354559459522177038802594612016196543462458797460340225765702520518706463319593351005541760302816378877306500975146534436613299955174225937534997814793398443015758722929880573453999534146811232816451975520776146068312204216590177538964091995796694243264948020229375665419346287868648564080857219168033266110994118719234641799725083874507667099812578610761594305775588140978293085011282467105288750612995976436573648181498385135954806568942239672079776496324130464666084262458543574277520271022936034214979719258604306956013403053425677635718871998810609404719899195497155731155011348379136768614855756947531350886991612107839940177409545566470955725303681301856767640174449338453750740670028312460828833391173386930845377874458744049532842024902308126055708091315482699552584596537287874008233387125067650547873387709509309758304906080705871204769183618616767770336908130619786416661918124784332415828758332816490413131357244188327154047619393402627653409204510835270926093480780801691320723461652321419959073643209137859187010836279979625598256496442536614881652102625652815220936649663677905916228464642385298598828434057956690277306992082056665904375733347568621529698592726359486938502230677784707001203410488585962542910119891990635377063133292466115725786070132652392530972474846855329789092469405178924353670595788305620259591598067302520375249537667971317466706511679859805151467613632005214256115527993050645617991250863639999421278657461570895579596378226165828594546994539103844386350617579462987927425269735744267545925686448292175386067555107335258782180216567604560979283493523070095548154947755276642153802094649135845646242557360265838297079118081550142165698941710123206972780854314832085092291583334204959409559546865323913933623556106565305088148554547980892145014450509517277658832260601530164251117114012778051790990195160099444346404540298522877783037719103336353297590642847910713255950178822728038144836918999279490198797263529650415354125569281227926662855050170275893620071447532535859154216692079062104313408565571194453475697352758929043513156147069868924372936239106582345219058468660357147949253345284662890519957440952070431983520356826165945198218879128287745600088967646265746854852159425266742439335058606665686174538926257964246026950204196517992085273717020061678496456041007758153300023368120333217149049498154606633991522963405664841328773860337313767684546224897429374509584776026693733132091649934795690001282569593258363633250891872405319178097323891783870862634084944460528284768132366822870122037455360956865879073326161623031519097167117787578063435160030721440575224288161242998379273307687434821141369082028370846967825958219980136998081808423774687844513208400292164249477206271175908661927861068111176984876025338737233188433385130592038040213091377789272513807763718667411330431057825701673629336491350724897404881404180399773602250396922812199469481579592151663114820815116348319662499693316482451938718574712037737099569882812919271074917114489757240061341939293663793349888122781939486390924165799185084475698579401775773707094541809580772858543359491679333576064564227812615454526569269471830433096740834398051484523661553243733584371131373379837560863762123741843549295667654945628445990852851001163755656033840453782380723979774882971314928210561071387303904840559870045651663327162744573408423557491435899676310077164166715816049084772883736931747881273066600436268728625842036816680325471603479272423677398590327620184528167207311592876018484450283789942113943700350277761109405917510811257623931463588558102154171247327998224245844411715035629637533145870983673221284756501768719933744183130072871727440460897677282608296113860240948604177432533087306996183097721842724454917561147178014922833974737933138222884881531687481760824037899182870037520985559406857644197535394019422470523488221826450750247512930738940085730685745538987491970746314139722825147964033028360872422025802390513021946199671737691210981789948920671451978508623878572378449591534680625850200126868855584283814121635979064516432558752816293321168190849883820966898232578000193819625403499690348708228859074696710339068087035258504954094837672825335271271244567288446476447776928234367153554369077257560763531455109720689816153769196170222367723173861362575171240225274451870215930744045538944638240596115205732676681648976321397680591401111438837277690733539513950912611537382705974677800636722596933550769608760528779701250041289560455364240268670210910070640564792477138318997245676475776028297863010316755680050813186329718536168722473868786906950609094807318922372670745101919448499527476310890203047531889625071196284154027609128116523982795930018078071260613791365490428806632061062086683674144647755376430669479239006269137088841649336608230898670605426587100473643269517968860329776064910522039302781268956758886234340558353432947793114739416830380625430150618606474678852677655132178433333125834002534145459088301986514418703995708166343731384856076062412518647517495298855806790505270685717241244764572943692241760674617820462919837336437058930271098583725433792379965700440179011233026603350762169450940868831475949570420212487619579379261833712708203494742856618384386336177421544757858345554707785895912874817723856990580185234439291408139071884721012182418010091651289277252365908538701612803307345079800314982181748187590690555424543531326203700031837913094406750549134169634820634702434379352784800155062972753286242545556886086783852012296906877399152267028227209364924469616490542287501088967989804968625806786697846107586727135185562246476211101371203868055138834631779922594456113859188055876153732810296273677862448398724815574616164766355062166584892931436729448502939657456578105794711832255856665090704760749865144315112839559578699010254245812734591769613863955668798688178352977688779688748418794663938049518394080512111717806209590237207654926764882479529948001126497233048390804446872677005621922610981505044841957012508156664810080378654418748927525109235717949144731491953921383151901330046278751704149904647961615139322449163445239216192656880592224977636330887410591218794806796866747978674165544147722480273793793327070141595498182468486421905746433799980715429171240887758582245347763219467094504638320266037972404396808758963814444291267256618131068814554438124571670064304604793454967668462561858283790382130447450486442640693536880765061130925254274763620201566882243972116729032554224725577502771556461025422263122478210547121725061079906771787127509313263666116733936371370142068113274350247271247446589566905897288985238854434210616595753646793250753987112254319169838327605368991820019555088523081531984560962920910931310761200030699678860649747326089383336708623709705328011754577509828022042463407334095818033461539934843531804800082404157958606236388557978740448360017903777279667055185884802393817008618905398815651568492312336539518355665060324184366526024006607939418466452899569625772343952883883085660995788481982375549983449920271207487831290758041054554830060053886508339270262843688351692220872002673597739480985523221434459294297201087014404989740247354012617797515487336131870270667630354518604672400073534453805799637223751072442506446586215154258774216349080076239093359836489561559622652620846261383235558739022077183050474957885232042629720758562193133814060774991514875261967270082372640102662039421882104030185510801490663599593749534911631823475759642043045917413546670784452227894633538262195067312816668620258003112943361714150657939474058930792823718059694654982700323699926685908927989010735816283444254244163369665464090240360649197254657479970975592972258433520197165433770403650286122873463122119076979564135614514031725735927216464078496109222387743751707244823480680441871057702676605196914397471686791780317632840716914673712141849097524314263803381083692264073842810634870250275967219355784764867124816329907305071697525006193301945209174019365704467977595412049412959458755697541631940839401063148277418624448091185770317106982906249743992988505396793068442277253730277888029538117625139916072391757985706640938696671595533908366521664888345412982335146886244050461113548067667973311688979596862047954930987428502302325844200457086563191963377919832309899914711911439079261374710978916897562960864924088725050963743519121388615685334111084264657836394753679754761831104931187054457088718279374373389486205268765319788430092148525344090707275636884443691511536066462918833639418036364808583252629142553544499843032251910840118843478998719877738637975727650236187405067782002496686085165512415393347893276912132932288325388521501020556518325537382175948008466707087624853255122955788283098054213783164702600604752872934348257606110454152547836646559653235315769841797065351212068784883922064436804459514499664058980471456455464245148673913887546860619509825723203967932394758136464561535483232531122611626829253786781143909456282296291118675854033900839690826313845430139611390656208631386801805878518326654082177418752615821505784467936951355746954468668090090927478873792261191001010630870030517222912964097198714959240261666484208121003302352941660332848303166442279352167195402354708994199941381104138456722723658449960014642160385601476611191614117460307807916856538262976994079843181039956364850913894804347405668469219704248248001759879093449719752478457450110039066846477031032486048221480179312620353598012581504296011173610181437628451686843276308349740360221942167131598216958910380690301117346326182970216972026733013916020666062918654143903815193505952767289015685902415273972656844326765287595979890109263501362507816999988801254902583537297898873223726474149186111992566018500451966599053334448312557659012550923725865653654271189875148607274121097175915711847997640776842070676424727182639429136523987976062936165381540130429640033134259224502134111869240749650287586048716843671609004517967943433151162899041686712851173892724127479941144950170355556240283385227061992884552370980874814743892705873804167216577406402294438109293717337483211831362671728985557759198139444710336860534480941128289193940118795135713641886560888688590427845197518947352168861959508618207770408574439228746230669542482040188341838186753467810428023483953123081632937308618353715876482678180473744291194181112871002698719330552313883931691086094064061467892192907196706508179862767475713192711677723815325912415512054874922697368559975360406933635480926874371837593044382345994409206111851081469252284435936750918683467313982606120079342534970581888111213048567613462741260560153104367589923528334613025795711651556912761169144847084142691156056798414948148919673983183057146667938036036384609852921335243171588225940802146529563900795725710276784170140296912840196048029143064318211216387736292275365985755971918401771599220710844783488160954016422890408053493564986851172359654450112383256276573669229665684620627635645545730690724706942293118627900182285264054107171188202748288422359215936320507282999783617430784614840118443415231625939348257057021030175339882565623607184398422013246085037439498550644172168299244642241291869744718016108200999027311312685125915723166573009124380614707886863608319813334317361309913550310840229883496960530600598100373317573232485947172944282998761050382140173078372678475785941415266613640012748266302426425323809595096349910108179161840463251482120375706158106512747678251252110188368386118021413361334408739556304623780402881435647993362600529785692515426030934644797684759931045499575094255395503158134274970219796043822195082718804094103378037468886318011570655800026849262395976782988524178963166852618135508138646850960765752728672138972184943625201563544817848322165289969717540989159660484203102284019814872602375012726358905303350671592333125023680556772947976338411019293969582428429627348972057391978229887652523024970634593583821253384039778175667172307737174172590059581580114347346313159596524661699555869973513843568821657428669045445288659609513657910598236240526175583087340538733285414830767265013550726908151090145778819095169018699459901948409037413123590355746878010474912654447700131595775021204204000810603213750237743332256826675501404064410087797223717017807405968843783397631215057121962293640219799702997463738674089328230456651804472760519884406261098947445547660569026748532151759369631491655365740035108053177002270026711872532593843239031490435123985232815744579680227090964112657516430154265644920549406271833681956916372189627870178967259313455200199310745873047853324743507456856057243501742819063648231086182410455243886620380699749792155274622969227679071325524994527293199242361789238736590504804002029931912437197094179722793328807576214782704608852455783445026818492648064798136653037383770635653299339409108291149302834856387179440975899832941714891111011075613165207687065778495098372410502296702228733740515792174658969326275238119391752705955792142202786689304335245652573109659263462009664495482764025413053382312906131799417929488761893037398467283601128940575923743881647270103474225880048490605745064951220946060450118725314200781393154541044049196283807364687182918626517418655021893799761523303126047501606018984273647270557337035776822947205756545148229506943354592148530613976838917392744080628005221479700296902950151031694205217273545616200465499613013134562618722808286238309145811677325407632382102345921398734957400601278410139621975455518482147837165660745516450840055998939123480812126196720272518922854691113320524320258253916141909629833980492817020292787357807361105311124718989298068916068315775487789105241285755059332133524844147222836126160336557512000420136568625187729388268827896909293130666177405387002915910688451126726472966667205277152980436265714507906409322515726127680249436783315208200339886168326361747675818535222306314184955762970830715487099459872865455628075565190041263750062966107120472878674910664681453370161431650840136663293763975610485159939621094160936904604927510448404920631546424183356585343889885937333071400056785334622798224419979986856339772210803125547601459210176580134966099150757674781884090173829911232439910230885390654540189771361608089654580039641717986341311577608763113967959918670199648303515166621956721067001355563910325582667639161396421032090533050448420638577520833409328960954550678320496843630955926544795721725391756516486129270466549696756733834435625521165315597005528494988636568187355867273920581834672892038752754897743755402656930200501598596401489587478983577173984246509652130323319211317595481831205049023149821331959982667653256910011729234689235659333782473312384267072524487269845570758420032971344506360178537473770894115642891145325913215426871429121749091154807274659691845214998148994508083892515275075596342621572500381318599728307799067570210386258975721294788351559261454704645819646043045868365208177042342367388662485720939599064782240348206956121523855469624379743095901222654052605164267567082797144824882159226035012733434555347674506794756836576283753528362858280829921583608715772475691295630582298571222991462416023216457173480840805830086900074949710240431958751960522923994246185645859033661576791398198046855930769873888822908193350622369104514199437873322900820229007182884285513848533104706064144785430639328623719547535392112299346369127458033592779301670439185331523419432104754924632015170293762329150055234462132231846107168335152542093488104123447573027932670794574626602098336946045164973805038279582837130272430796337686602661722875206678151499482485928191567847882077637002647077782783695380717433361494178613655031261013394032530659989479775574266090061541975946615377220040112017790496585212141224913817152393689125236310446538713709880979944816005291479187460865776124692585993668968565054524225451166203348072150583240263840273380159144314033403808350091748987359497790959382658492494257463242226391289411820919703684517336965099982732652337898733209778882861984198654381236773545319868128029348195926847241722776394354922930048784540967580203010163588841949697333364381391518194042953262126527457216587342583525678810323011602216731589788407128755253663638850199146464079840858047280719149906023672514871418073397751063764738317975086694559307626281440502664523234351393338424261140918968166145952680697591645750144748371752844169371214364248234479724485320591971402343796819260304963394213209115365338014375614481604592763713727057915881439941604482373979259250467661617204595662925860706927300187503088292600054909843088373621186886938896954077574015768785135788958955855471047834512393750969377739767347082826698401251763171066594836945786877072974083888741341474217135322023156646481198266151884463020089429697582268565640722781840111568006892713918017284335004019942841237038483257495892089453134852872618280953156146756976301526209439820181061696278334843334511720547718115535387034279761845344904595549144394719616976756424122284611062436933319179338819340234331642393484932703550918453074145379827055117962188246857950097732385084964813914004599259300139815702617574193575178249602601088721249866521661209280193746451776775448950691278650816545155148159908391013949809424774631902304244500717065575096353585489088642671939772951087647475572026704374150392910179897495146703418741506437025508757668492575680527189358739955186377757270542671946496350337943540011951945374714067311477697388404356867829890862287671964953379855563492528269470678937047533599591135799206803391060024964162975906038552061246956963730243773997397547927660996752977639972513602837768088285239089025659532498115497422208115762100032230866973019662063971112513345917146213633181955586542238300118086626183275586239704869870072548460161072730500835948148484950885545439057780655873025609758586369973654675109621135162466818530461445650843752007684942541109771057666040966063438286736340839945546980045084591501982036425625769188366485768710874458669222439059477246606075112534013147787755453650625134262627440645575301974941424082926449626703904883620824114003160182276412320679324267451609687581602373620777799499916867745274093576404344451292573316035068019251001068669552649271793783398108841605018993511439608736574355935837484478603768527793394363770641748215275860998254943326200109190724736589735956063190420714728035145550273739536438406537470728774336118846093335199078601814747426674807769605674478612110526765956548803173338374426659977897690661991748412373233127213983481222019974230002948081851608868599140505091286179545874815603844869207770258978030676584232212198243665656691261062460119855346269336804643767912930315675595225288048695481050499091300514067789717560637952515179725731850957001002116684897415625170971698471699281202359439469204856912612554762132091637519944461653198772108945315666832611208529179130543525222593994422841155603153638119557864701623500328843631785218673161852758294219793781183801683502199791751379807739595135359828310170953822899325965632122284122773688420739630469853026603983633640292117028634220183939914968157440885792026054614773931316772379429142004970380779470500427271300576986810941573319021617386936711301087157879896809973496975101143151191399000093335855959751974213132971411096247279661975088805515821504073565201018282935052360251708804319172585707209835272663215092483384746345122064792206856965593593739164919909084375554626629439014279036793607368362001398275737047525899097278948443481988918163096299901452971984261053305984465232572000390911837777749217291462916530958681340524990931414425147079140803461500452332582680641743011878015175607133435401156156217468666506768948401570924738470861990605045355826143145270562361770830368259233536270825477211613597414859305171992191397474660153764104767059296609531375805301259361186193383071844330602778892309670171974959968767980894042730665080167994446253710354345314180929894462387411374642812902947016756230238327992545608564345651210225820180576519067522199442263658447939404204017332794196124240430867944100170207955119952445184332396060317395468885929017864464340618373402932493179096222900737886374051368673722633638442193925864481272918363274940006290283900423696750234189869157325198052199873911867958667529114150132260741401358028193800862660552502436820388356880727156872676986402770896746626307261729546653887820562801089012168452831575274783740819309746007253838511104186218384015426434402213888831251263877312204877338678452379653279450834337275466902282828646904285968845820082274668664411135966663105483199636859528853357209953561804236588786867039457186219618918293961365222531971760955862573278086594710437688336530856855616160289589020530302534749230353918940062451455125528891583532091579741748930370343704240030662824975623338056609978321068815804229364166357388866403538432180169821270804183588029245997507487111869726541134476488122416856093137078431894186111341780341847614328281551093033856914838764229973110821951088203246368573129633643076503504010303315478628282164465474068595988720314469915167035462515961407462394189173925663553444367788480043220490586306621936768301590522366231818283486290660525361565001316165338559203835654580239579528619878202748250427876475949173313710737454043736680361403760596337400769040140733640375672960302676008476801948376253506405858610907618578853805416356120091764762621769791333462301787929373717398372696176343252840027903030358382509667211741489638706970350456885747764457501847258076084816454174818297121995423640471674597925584819471531205728141236695221737839781143032198983033914191837692722349037766355606613705431291218569664798798946469003779435209114174166755538142759044686431543384902066979365656481150011238042534858871411179989865710863916769173176052983747605004337587291517922974889354464951070796722475525274994846452675630000372454570557826234148612617989208820504179986850878933059674051420246943200510144991113198715760979281588219291464653922458054786028677415396851667635115087809098515558214140164879458837645204611945866117687259996833208654963438665625660631753805613568842481657530309077209255673854361953720066321346200935505613104873422589214643586480481883156831772909787468659914380897499139787332067415229478680506971545774768656175064990775876341702146639897523279776810915594966444536962641148655124064490682638206074840953174799301405298424945982159354713773981709903565907880553551941869238751218685071581801615857247635741297678464672487370409273486147029751705673377397480024455180290949319587240872099725560746040447308011365578289016684719744017075059278007260058133848589347066836906838360150028981766033559498991130944898792888354834211935829312203052424202339329778359744591801789390943990406138472410332324451585985015561080221758335175960630135017393138367448879330430648326172193693581060651706588997309933392170507609528886156979352417747666123161491722395279773367073378025556831772967445306499475642064608057495419139813367075830251470108921509617319351304308946277481274896298115205125275913265134813942494587320968317422967982312508405430037361986326015413141695318576936509662120503480918657529638856394991971657271207167534313487053158026632400475668349468759941723542769275837991224601576796477329373252019716598040469299636200729630863496803176027102020105404742682416610209230357701284528402219139159011165683996990119465491934418336040821123543322663750934883799314537976853720756717840951296244489960178760019881588859726206235378259401127637969683157175474804214460643342231005048154173607525411525134894765336049357220146698221050025324789655416367921967251086778626628298422334979315656449567398518821597471808682664022528523512951924804131711099092957957426293918207572083007301823138104613313139055974318727245391054278892184444406210377575110437469042586468982348396396441131965735514421888375839025558374914980877694296048735799677788961413817250227860738522845773469266589983403619604081073167862551357046874560636112316935868685917693427447126485308172149394772967731039420254555374389971058246366312375236955733454843441535895551137465058045757700480902935698488902102535691067231384393296126949112780981413404718798145592358722552365403066406057211323663688119082959576490992194558901765506558680935417789940734360441111850902544618322951005520002907842981312004858120728232643129769823208849860223877938707214906713486300550699303194960911768694045781515819572629923099491210903579621601548176709951399694649917259640438260187996882814444231878075233811119035029143995955198379412469644682407316242525895768250361804619198114145396566099077935970955837654698919941533298411887903957030666728369492604052157663107332886556833534969948906423148541611861903893436279854397640257444509982749814039281864614382453098916811335429938151363344077180985537475053883078691753951039167377475572625660643720136085430720253032000934625081380590461354544520210292960868685492347118978356340484005339558725944621344270270533013588511952770562010641341393376801604962556596042795477496850916578313719631700374155573597426831720217098974905107554267629783358310197664041692389281159191719523791239220628172395162289776276404272981033817348198506056434955559493722570513870093473548196520526094594576174132068162438984125273192317475955463630015360321283197087723958487431904077376613261196345392765918210166968558753573315577838551939161144257619722200007386819528567132655963082017603603648287621155975010193770547202876629764216239072216344149658653508425865664590542012684256584841416612948282043079799923646342896147280201255125420360021081999567299307510732067444743095574383217646187489943991988317906769994468164849380804117000895480762581504630410681087652771061852139502610423341555290923610353495166855119417342735714174935425349400978114781079597681340773034059152110066289780000775119271039519823458729244192087907324326197570901920201775768666400070132193436021753794032349843938999834089416176786705460056738150603112795359398245289692061807581467097072760412636451419497629421345346128735961636143851461079658863266510918647284810783545152553709530793602492352777535819868964876990404006824211701869030925546331095172358355866860926045429036239049608650670533597478451490908282972512423387020215035464580383902008738222274502733640339847375935945774076135898188904271377307463330226967356788856035209735563261235745396670770517162260415451668643348594692917588085104417008571835553019959626799343333032306576329266178540067933866009591441905782325291799831409532897609639830347267367991886937667705423820369492483733099090410974101855723371696345663664510824621766345989345108629587995775824932990282706357093205751375717610935897478821899271362808850414126958331173544420147273491974753241540703640590616195796155867754842939205685024408678681703817790974129313715594024657015460643651128072588943432651326646690324416588439988498120365288747328173932776804113845080470898982296350377036768935532719115275947489598360294374561354065158408787816605613103390972490377965112462023632357991590476285092816596797694699646252354367807030019626385354684273496957048312309065344292493493867751954400726526882980386544967480690586643492607393541645824309138723142526858868233607815740111088029690942597957403746794774795225758561733371746476482199514452564327418699016767948128661299394214894944962301567024664735837512590486639114282615322921018755482749577896916014694267397465313846192378075340828046324539513678297137176690150770893473626802351870702802805066130315629298825994716789722603881439606593965396996680487530094768370236810442445623418219745147868409465621305639259052828113205468812959632010421551270574629761665511653777904407964456340759092879829829626554367991553978418130840575131338582490077647079156699632207677825151428457296054538077068909298082437229716422055431739514706368784425297091763361645384107512607170474861727558381643732603297720280362393419085831387276187686146488880235026706698897981681684584208358862447744583321162538757965065497689375517413020688276826541027937669498903958595122601432549413090804625342331461116736934525360712426894802882450108883323541770590733751554820296215165481090333605373266465416751978337703307809287320688554944253456575723394066564376944332434065385198071713003368689185720289652358765128548519919697471155788903797353920729518978387289082568582300873200597339683406406039530958424923922042144422220480337469560262218979041860506523229801309394596648465061535433074112556449153447120975853913870670202314758610242652754264882355300278321374213425970739496604030643502896075630506910072893147373935319801984729263810837277482460619364791534273823952151223445195709920980370742745327048710332738799643438421742246753100953579252300396685902784792609102692086594437766654761191567455592521338281867873142198670271002926415424834584851575303221776500923170374802410843956071154999823722818845256372340319517188744938192281973576612383334903916692542398984756035022536259256560538425754854616260311506140254047823896397362558070286586953316187000013595030025141712014520058816111343740852252591587823799646860391396682891579756773169293396382474343591666397051778356910251721660705952434436081391188380677474617733971841526807798955580241599048463460309621711733638476639256094683233940040955641781169868408664537615365543969365732219087767880889844747637392116452432757592358562497612234091824745014969276872857335201989651774076440880547157603887471931607471376253776607347039115822228713247768743395638016148449656696604949023999459489664329929744201469308751879342751935487166208851186035952380598728615045281469625283299783130618682467476724198377074109697363919581190467211499333421171980790654974067457743388571947582884163710480067333672656728031596747093142214800254489417452670022530464261260821312682937556955198247149448404196875716116708013566493167918697591562984909713703057137793439822390924016435657348502803173294066095011063196558516393120599766041658716935301363433359821278214301620134876077950829367665899427545861315123814127979210818909241677261527739041845688787488390071808041577882453955595670349919536296104148806287745524799394320317151150080098353714318037555988928935117108700171810402521742030869219062716924796358467919459396849667371397095309675643118687350378802784412830390286628147811714716696864120975819900650319897582729554462529951531733838470218259247956188211479841096044086651919519991855996184117517724583926994542839847396437309199029492667923831419041929571622858966445036284092757858164903156056826596183829403417980562214068736269169907576650089207415462009895342355448213901218957195279593251297924775754136184331208369352388798405021461713510822351554439352125760413636459279296264477369387037010601168826964714809473818620615923209204179673682216099512508849711985616616064257785618098347209062191848130717763330111233990759500769270928041917842056881715858788231599536185748245398837220397058907765184565247715769600969796038897689837520375076652428587341990863498994108230983388085271233852570707113578337656075836362680755459033441530438843086606350970506431283690283370577668587460979358831858672821444269391892830103721224548631034316338815870655719999807390410370499510164012199816266832778129000993940755215453585658329916344792559911599006297184430990557636721797338847588444872935915123824712671327629585497160090854654761268167030308431411100764669357223823536359056187506341933736412599614331194219240725365899857499155561161824944748493890175182052761829738690311445616423395383378343137078858634471378906834204922305800733687599721846729816069557662248822397015211908644695064329402236537262774820376761028397975305503617557561012397603296428127890613557910685730078609420076034444910324185932582294824156716077168471882002219605315842486822641967107889557572352244584060636799959531603106613011918100768662562826752422235322340429266955938929393109433792501193642528976723389259327703681489365963221431295322761884959434355479620531150323111625553941015471159289324650630179486274510716150228435922131930485427171016743015321056230646318088416274493273031998891626890154319669906775792465629504392512797345298682572056275890322095439816732333475856412589891439911120388231280375787127737309784369784934713428956695555161977309563765795802321246132642572481179244247683429346922972955511827555253636872026453365952801740161694933616564639441541357667526017983461647840430499168461509185193710442151099844636323675793186246683174808694036443190109786218569451490027799256754358877078299722128366779671645699297018167417585185789866983900594342462617549703515543043108256523152314367020974434282957533334695528665827457413177896815773145089608081546887895224179677896144463138844388218073260219427466152043743334819001758509987399478470642995449221498646298626013482175425758214273845985629602645840739836448158878233280973724377171997566815638701014504415591743615303602956071185463841862384458567099049256411928886709798918387381311832895246121084528197318167004619868868603722296818356788541643806076974062415632507670195603013356637032125164347930582867192236582765819145900913357206207031530578151709425233707118662137984518487866097506326184987274795651878264120273894451731236395610598417434431443058440499658999141901347092999339374714621155452131231127217990118497040644936092216755189086524564110915226313255519656263952167023164023394859566031616053157611303529428544162421037238198435131563632774583704221922240864992432873602741575462022269780503007633458634098310079824255151878830846409019624854203734445529348574816473646779815655315273720504696167871000734585082670264293470236802072141783271247082745860908749266986907414071576894284911234174718001346586706637980266359286102672012865411439658762715852309412441207921365206172469017380822465188784884615940164692777026122696225008354180595105871869365065173116158673130957854113291403971146539401757410443918576379051885072874235995796369343124552347379067738298858870308156540213114525314638717719731470124506244269881153398172751478176798471356760310826227101854642162822484651468139748759097794558984414519694285983699457430121474368789960901564526403606128620913395109845665111722283133727605670252177672976681571893241231700938269294975627560812122379357908007947133132369331444442512866962335804469529183795174730543821112675099678590792733006599499775148992696416553151810913001591115850693819018063576441419305346797836237671111697253417217279985048482931948541953341096816680349934654810499757173496493211426361095356637673280598865495409576854363412525850089602509388660076752853752169826186236843267828147835243630615985702353002151043310772915700600067867008123175138659066089422931353199242690566369073598264960041803072668994040667332817973448011605300043887774315207898370528415015185884338020467561234614615492408882487097674900822823110893479017229774788723399573096440857858833413387583040526405899901209942282968828688032242542415736498464973760115527038769679791030026260459086755171191826285492265432319630284890678200747183077829453483896201760339460797033999745837499157787384443921386391543798105196625342864963793516123404879538782470142937063058873855880189091081220728926619875529154477964732747833466814770539109101828184661227331296979676606586405412604020992727830798054792485250486285777308721660787860349555176661614826107671940582053936696215006752503281988495201053924039368194945823296334958752662111708681757449623046668726209878115102046565446526255315259418819386636221886491356078529619983959589584545704126006143615427993596427565329360995170776105874520504963029351508403543823531849943860191601881811482944727727140716122460796854439686950750012381894172682869155386837778267281786645880450805387240655220345066572889838928085100258171214052658706632551168048449506057960167632919285094296557151168308715657651338270520435677577331814503597765793046596012254469709329222792134242076240297801601919703211138535640187423937535001781842512007623609557082432550602947285612884889991030190257723584070382920212530359635380370127966246335156058933272973469591712209432429623476554771643364439239750536326291487298076389715117611718378547304795279259451427365037527959980035708325258853892385171188222149557584589673547129983183066049651864981366177919671212109481501769625121640458166187442254659573329870984933437574895477896807927197589590185904894435052829447813729432079989282368798955226134162662094349858053787660620556834972811081225988670192556729690892947495704041865988396648591929411457765688914468465953389037714285213318811068966760291407264792974074123563227981169337338391955980940022298803560091491666540044931020090213057162590759634890875433947468168184698294556247223088273864113460655345299164925724592159159809641400988599580018229881463618219898960883476640113576581062189119497113554927112349665721703147504615762052349357195004575308983793957772333153639607679570684211525171606479601569112709153429767010124358910665514619963870871450835827083282826878486763695301894193350899648832909375884252725627588488691113983658008138695122873948384638958997738747042884207464443870046910431504098768130290067534197598728404401563607759437210922882230785265434016979853340379978625274990811704397419721058455668063758551388960078926648486726880757858027495882457328586746819309428109054974515524269596906361872864660944761636492266265428133443796348918011504428721827915766020123959021808509066259342110853260080466605825232445170720469399765265791759661810040115008001454348391237854504380584787966736603043365288353273876332663891527855756280770999834588227621410354571322003361602542860696901719764335012924102595559772876887939516284706361114642744571007933685289852863274882765487796902342867125125715362873813792253149783032546960274742245381215970557177341657596546183807584432949524413229439311628507248136580136789188030334664154893132254527223339069846229439331836524753622948258640399878473277177497353056195371175336621054518518853578826476695343844362311946188502837310465520469467681857348852504616293996812262130767205065074426610663007355149538249939602933455554922350559021217764190575168679766892204187514042815392537353129371752558059024590400018151090572370092782403008528883653017284037488403911430171469307483809322063160227597312921908236133875006104046443159724231423187963818455550337598545086733280024859059913587492211247502768910610433620911571189395156012874234678550855415775782049067746519052940808847077803157429351583518947055597133202769013732997284903739420501659792827978590758452468502874037501989651589439192493823914645508332500606637589836164625888963855519660864971703387336433108575489689138682540402140291677973877787262350312399527895068968867666858484030165180525529449508818603391929233602873531690784443280777749672222879878199346927079654452218705182955116321410579991996709450257895287080425576794662680921580284269155379608320073949674110560856619985227076567570955719388537813269150782631519334714769180847956395721360025873152338026221167267022295324379376079165880311563266499682202402634815553787909780356160691347789415482205256952114804181239218011878052151128467831214893564378588619936528486417683674340266356358795485455223630743135026811608898019729879991545624444262747288489186612194008971047745646661993912599059848584325044457343308671630927920124917966452842961734944668562680750036912021847457956156449262781240813523235078017788003083420907737652974561991535717116577485349442220556471294360862434256004391771384704156340591068314270909508381704612927863977986084981787008184680583786139886344958853354149164480807359446860836915487590368603991399680647771485335442163582863178931144217908445560171864987743911752975682393604091776785651416495864003425571017258500732595377993290475401360956383155178747602418977625099898096872991224585660735378034101647895195732272223589533205566555426678189197358248289580063609378853746998878109068731167221808562824245327430327055436464827725651759615512519913589305143592764288340944680970533897813991899861453560523500241178312959056385643076278754708729921529845162951104887214457562079283284980112615855523228650356049590945489576070889666169967089378254710167598254209135828737179397578445341624157147598556749166898808092479943536280021348170748278768307355018084759743366514482725284860639852399349142856901176336024778608051726749210540258618145819304595572753022602090107775010809598092326988672495522614206124803128307576034362754379485605500969917780486035878468752661084087558606616255461423155336538981822212228241169119832072775702952457453852738422218155036678786483376498713489584000113082851550261486802970671271556010677414753271099760995462386271631487732366657047553509294036567514025308564987136549152025194571274948108737946229494336103349936882346360585288430412651536566188373077260025126752296911673712258461148018230846933312547721324449797988019566307215289929780255645199155319944341693789678596144234147998923928753432163762118041745348536222682709178455124705237582740143019925143814969945547662606126428940883221524381520775061464254673147674573564249252436497134486463227208234674816537091522849121963484545677997633099197520018332492371233082218069436370830091215751358074677168779284243086402138914258419813587512616007388859153633671926982424309071500273951369406363420764572654707892508264585563514701689785472537750630138183143349368792600635421132787386638649663475741875197942854164562198165850169108130346851301902010428303504522146287830822165040436514573956216344433074799837302040747775275502297507661004372432701584506869143266999781677774949794947204343493004275843148682328590220153530431676876417426141839447192573598525788069684924625813110559305524622186429576055028788847606444053620188753678021152188431246317872154911144653931726124966287778910038283052859433271742178309482355321290348063683932041649884657017051809723786767097378410424857042680814436749875946710606761998468894266358634398227103063015210098150711540308287043607433432933416163709729792012535366464012069753646270731003814872941194023864351347562456182551339731640896597990634839610284144114747901137850907102826394899601717988012426174220998968722621034464609853294165544727033433265301485271047155375774831630993948158159971547876283855004811447682679513019864557213061662724752377348807638537271360363340942118535539281951142521156722402252158757577712870138760288496333217370612977038269082277150172120090354299361675910017963718441168703705443682525394021595935315906695544327270411256067044922887653261929834474396559154530259289163941058910884272148056109484619607996339873990426050267893785337593933227172832913517441219416231520799160632793850764522387851621442258335312158965278834670653801827303817514358311309985556035453941691961306064171402559622572244496371325765878650995643549719109336169258604859658714373964664726151842019987919045049888408051660720168018276010590715853756557903615844375242957696530510121988025148518626432772903297668778828997373551618560205017477274067994164484208415877982576165312910012654808982014109522619035204344922511587040373557274707868219475451472035511712628208007634351453749970185108095714457664734209545402863792355888648734328473522865332992365721666328075417932473774024054864322903937424925999099668875960666044169009688258452616744374874562359576804765943661608084128766620357235577374676952896593886710688605843153394086324863174187614937199742948484079328895038854844343475401144017706211872665648090477583526639381461275890268491926813263757267587547148116212307720702857845421256383119669930127951983408633113335384369440577449088028989934225317292156539533638556043325669109472013877043237666726187290616637079291893700955392250121140092195537849643374453588649048642026630840455978103321355501729778480119612055232898378972547528208926369951176864124793290413211391678803176758736341502148820543227007565325870102114954110797057988905889739006872343481208169385054584028060859442954431327810596810127004273177488489468228992098002048639599650010280323324928397528632201382621512050099148920355976008196874637308249548207755634077002519774992396377087101155153419262505986984655111203519898064671608702956274747491155761434031628470330466730227538288991281905647162129753426804814128495515248547055055737732103607574122009280685348129575674999703151264122258978759733959775777109741587622328866271514293897354782705471669827840990505098157264916425667191780801193469129257262927585399308959092065725573799616610185045480826700436117405821577788672352635985398659797243434515024787223296224995551774364419415918646330622523388420016717183676695846123220392947718143702124176107505589303312614323123264099382515464140002596788962724512950733284258841632115222383384126834874570062844502314542674115050144816073683061864353023090940442246194320758201871407329857072554597815166427227240497570622301142581948079330480946331715281754303407879022263229344024421083105774562719751448538656388124424908938229087227817499337020499284115160735268851651922968804766804911972802975845231376359091876390567607100163662440633658798054199794959783157214243230761549516154916768538591362618819619180087366094787861548932185403729521341741832308642915126164492980866544985305963328621430084082167678255062353214215271327238522437388585819956549085136633461809393782239377307300697756435599417406288139403338652008559578640198748254858013798435603031922769932697612782396169240741601609373189146628480096443854051332152625060849297826379181294900066056086852132884272814236331648000625967223359356407550330390609125298143051639516388748469730576594924293933699719810767144056076607790525909562578953265256658807753326531616968010739410565259257647400771976540543701915620723299234572560808356559481170766085566952604270573553246715535361475135307041222261208445721849561148600019939574595952848674276278576591402117481449967053143544170909241301617399103312074613946382749255291199620774564227965732547224289191128906310607237752324258348709032778010254363150483076335942696793519861204207903246428872575725085706318284104523098615500030024019821672111645313309833228903445009586006140383183118536229880123212568918446512182047729864862690565109802277385702745555179936168008268269977925171479369919295639134564545815029025604987331476041106892507512006339026588967794050063534472266692045656002533717995144130525705688510617863418873783311001317300351289047474931784186016929480431868966999915366518010009229395625153387183201124399288682533939938998720019087994418618108872367556278738793067971354478696536314228416448982169659247804526468421865227686592370520201464859748040151057462304967616371587326693507949581789403244049426673754561646453744073990544401163063131293297391140669085552270910555138918775117095202122428965718778838312120001868903515286525968269241772420258847169941008019548214633417720155595482756356692336153522377692022718000668912729678858020419072345232674967417013780049871714830828994205578646075188236899697829254961820964531573326615569987169159339866252606800854862816139321739787388558280183736009489532100723710581601803423050298983042876775813676311215263352761464042957366751269180813373779556244651835037529128732669634106087703374219221657670355490303756300002436386161166540248424654061437247443105542026845045965957445910698332356301297562531179243054315085698452439671781210730664345579419205111879548698526162169119825925986396653909342611057840329743044011608253785010708731788569996631388107071938032061797525965233677194147758612999050142768532578307888257522371295463431209679333422274071642416873102026383668042433325070251228708835940784920142409989312769618708981034898813298478330155888337950780402295475058798840698735444000240820906044025707211262563033345516436533164884745774367469870233491596454166244137738831985618023980924483395514786926433433671616325783384952225249595757052944937996322657182346332250127040536127823921418565732227675152558462498282925783694527177055765620246934527143529647362292675450124868608662265014845477347839974349494105397800751799950022247808082463020258707932488918241915741653223849087764385253789688805874778349896850165302881411199682419985477000494295947614034015785959142383744403429705219604018958399783493770636772847400491800055509462437599546140247431717285938246432652395994685115382946385426096028773702581439763178921353589772508070729105664119504462630359986656396936648978831117597191897174932008448628635556280762988685695512460868011206919484361504277768146291739094487848638246166709531455311040020356600324218736749675708051605096077326232073989634474368255023549759351475700150786315593362466499060037150526568580872465293907663822308009372443448825492658851304462981984276102395252213426539526532424062544342406243831702792101191598762082298928792451404089885782694292527740859747622119113796466172617361483115875443724237609391302383682520653892416951980843697436197536130014235648852049764010262700880692920064299749861694374995689389908170007485868384581294291241887277031426234680611928996597363739792685605707940412286036425249401318689585437636542197643099850019198314260404040920113979921421853894094376929872297057460413882379254245871914119798595383232960818525688833098503483023792562595723859689297872853514725301404148831731753356583643599450595290885021682691191420230493220586913392296157109223346929864922170062180673314573727074693976364222763956849770122051739318618301469851632694502072302757313218782729049394271738554904375772890489029229076713606725298052491507449284450608017919994846584974669403496311329081572461168446807861557465256696140373167977078597146775002163271149762440125970184223164493332707809861311847348809068635927535686357142165688493669750308746395877959184292156901718208472637621644024360072599536317032372209449784755826544027061256379719981788904525292406520271393779952567295385411365847929906049276545157906574688091836337689303034848570538444124975482540777063066995909621196586101698875770757063728863171333408650230158007997107529976749132701532969405575398977653382966962251243188930452137825923152098017633553373814275163172215109911538192665928091496792891163208838233861935922400473041688293513027385820746931711168519666548359552169270945100283661525063227050965770862998387828471421227279698406550680219577111741938170274180570953119908247435184815869262782758928768680229321095239013455439602886562618482203386565415505770651910938897200387444137471042606090928918760892513406869997788146718927976361346098045153278539038627627510780802863133776619403304674357769801604070481698795902331781343297655147548105917933124955746271643031710044901141179003066750214760648876708581088175407553673043853182864771322725388869977297955484638647768648824520000998160675488468754563810434146788282896743079351884084414287902474540846245072601244134891684876982861504201284818420238796458473182298771628901310846860785401088651489318098094930536201308219030504394190180590298326459458599684630529587201592565740270778534391903298529866136521805086594680496678420395128676382334269814780602833837536629030019786602061239660523379977260688429946380605775234100518219838529909303411049194137245247907805055010432862035754621929425157284330000105380050728060958179487256985607746403650215764226005650180351148932811913772416454133061099633737357872936880834500311765243221661388662922541809380932781347278973025297147018381987133693426013053414387698911287865231746369551991294193160376068529493281664718324137698153614168563486146567627630478262796774377731548961003558184717078838508170273104155741183206784133128996688583174719700978249612853706445902703324951267248672513815332115251754395183067982462339639691056069456511746460487911004147118593809063801811661485604747903655652171618899028351066293133572607204218315235463968877061377047373140424447487606317979118252249247223553219989263757077619299524330120140218185041784054264541061701629846635669704111921981110300996424330205818535588878198502126736767459321571957215824121058163007617478208347656916304767038405421170711602073794780290680064054214160396632646007007045860303629473356336099603038134582889674024294784588876810161089384514494011131587777845045703967074540152668929103011710412193154105227356324492054523997131788365211363414399151878341446742943127857881109250291594971033203219260268042586730098527752426163628236532316110655134997809273064324171962861955232236502889673291877003351322714523539320939214069781794913311801148112557184736949942393872201397295469451483859304395333254348291459574143413811337032771875840800504462148082466461726351263572558140268895589029263891705078014222445781188670661154454425307230277334811015146472211380589483736717882526641247792657545234184469795773676787778828002467868738852638782435871996045226018199134289357794496158230067896471826857869788024753964449695203843401230771275784250307511170697742761070713643675437010882528386501823761500315020553698065092228714898977260877655750563098754372667541298826221796858011024502968723443191793545377415484987708488217585958223550906671123894244187325177927981264748231004620355608445621494694308925433495742141243993568951794502066659235651804845816269388214500892770878145427986289385243588579405162097484994434891822889882785292971105773749687591111453087542134398029896057299501883445564580947528222842576116600539610059546394136889536987477705909402285756119212613374521451874255902012411600434432714046235457985216959360560379148393444545782525403458631406331630729684193894119617185141279478398098540590333763027316207112214039339513209475581969120409626354564317186164771673131946293384653275292883307938847491592037625658955380767075108742018479208771597255827357167871373323607043417379597904903271237968797781875678322995602679733698352366257414389452922828217531762057854405640414270685563963409198387428870739080333668422274945676619120575519419052115639330478623834352559088613831557951522189026365171638011907902265930919872949314688973249074864924079247434303977935055920274688221549973046006085929998229919872939039909025181279021652107963410877644182739392275414682314938671528618501778876982130720358184976583673169776822072723872508585481584289406157280823546382232428749755062794090475384306618650119005769331193351624019738501094738252297630522085943012215285688901402489187704368368304643799358950230614089918417950318172965882609089879464032565209726165619136588439514377511231722253933850581106771983886553845165261202760885048009643570128688563317727751110607816043463004207322761910328952606951144731699155357177043123811098493790435625640500738176130355897432269693641620826597996772351015063869151346703489405047949199712619999819850152893541760656062820511736182964199801868254287399600228322175568498190247433154838763071675612244741948716625662046627401288878066355583862945829065579280409318555404243894479275383680623092243309044634800255383807340835806115683954526030112205333642721611931302738492854741126692924118048927884095499459456080612524696214702294048916380385809385245630333512777893295877965459728300828968706924885617939663264929653018043219870555872261915991605796970605950632994658991773332800981740795793894398635234836330840366101208352259783933085536215136427165225510459155576186013220908065880818429602694737882616811625879727756812172038604186946249399966968483999922213252816016753587566272029888248165332593744165090300182740810533534824120201852385428973978075393987385581488091705139664002511107209560590882402109071489556168375971645624791357126287459722600110844471273849915686081415909174586673920965738583222854750880153955361836078816436127631540280513341475246060838689527071985530947742311294079040832906430492434332456901612721851228712417212750217635627674303025580693133215606043632160464657654830347844695423308363072667951390410249504213763125649940582536090485094974260351347637046509116692714161541767287505357239687041462180411869671059810482570269710530489212823740188054339385970641735750832853890168054030418899856981360664197612015080585200330433190775158744753175757438055891794863321443374286852189418432311571399951443058546603140668975302489104403249036724393516430054272438929059895234269728754515100685294018055899955770633557273599328412691448994344385738039887153660300835066077729150916430830254229408443739444600321975500134150596584848410457948282355344426917242461953243673864271338187216303866766736699039867513306739705381459144444362662512949420183625403185257540424892217606704864830023238073833914699268327688923852607745562874654110092632746512915039337612358708060440768236829024079223841780430399817900011879159020681709752237096613974270888471923072849314777882812603387180154769850465565774070441979348803893041262194995766292078749483796818256023807535955062293087025326449326437045193927930210181465294609050846878686333324942804690864677952345384433462685508602780047586856231827647242347629858690120043719921388209839689891011069815930571911994326976469161338360081485889071604446994513510754481362020280293331415025100545684335032328563074191564603716819398441868550186297540217541078555030639073557571677075650173122499022943253605208649605466464542523006229986581292374791004526306535498539992288991568503096742449377035348648783846905697628492397607035167714824920190404931106564192071639550533647557703154874646571637916179954324405099264562597576115886801378575467836383602919349121346119113272484059799643348543560883823460850309026252817495639230286386412672719300569066338838394139399032912996315918412060763437491783709195115566863163255691970156310783753262642005110697968388455657114496420065781984103626809764061922372895364228604914504633751864987338943776196564723870806427451128316445548143901276715325454746816187920839394519603861612482315482992002759153686986494735913588456020229139778464368595290438899720477009842629481707653770883602225870395697452523371738082167221244301109323748424330626015917541332266953470159459814496804745877255647330202765629651745915651960235333330190337549154732283612147033464691454685710381439476487663615918076515442505089264199858498553595713238210205986317460167878566781359686814917058713514690650297877354443717808298723014640040997055627678188647212241511611214081244314784053250721342590325687498487877847274008123185712079710871057134994968561188538619887099289909344675818574524354117654082920917339641444518074890107263048294175778207169648828923194657480990421139305543902627872552996562165649030199459367151968199171308974702514973599186383415116544009203799856916630638929940654586228659084400119276618418965195558438754740450126771218935695336135288861812399752517371895873043280381011901534634918714844794519878846166288316310009908779990526955032977517719819159965759271169745426892454307243845467307064040877644196738654291220726415013295451827688791513672395065012521194225516712266369976178264804274485879269181434479731518325197661519236188990810422986778967832717557218906885037471440569812047067676979538930076126326785930807845983849660533503130041317738892515176277294105767679715229455175744287867675453610332662944023255641641425246635581929663433201408862958732699666162610997592515208095361479940472622126444841389776257437151783867206683868874885671462402836345424595490869204509815540822887779351947521291736777292198995332529186841594363519979681001394287845666337660780105489048009361278846534508492125294723057723426815932958751561166493597508698374973441280810530254404590337413301190897232222556039654717743740498729778243981801318745130810908640595992834984011738447686819969450646993068243639222709707431228878103588556877738032507407868283646023741332213360405679937409363664062140243680039493618472373232738266355949328565826420569477590243051076850258884627094145213953036845378283034609788075876958080279586512789858219786483710902327637548608868892318607112122417079412536224400509856770775128499486203492218009346953007473410746532018435794662179027023451537574696936272268158084094651066440172415635859613704202628423559712195496690972633800288750542247297881261617707545022736575256221147778875729333185706625657598948401175262215624965910091101026357665507520204701107904724007971746947268235314472316684295509920668146505736203805252901565926082321175788184326587510551571936872974792153136159145038148391395083217146104930740420411544965331945087372149262344190684892445801191837690425811782319633829383721787776921571830361091247559843342442276396612036842894993834600732603433126503560877810451919955659479444605665077983741284852860222217918550298811069936130337533293291812647275497519724157485370574993317372524531478030441552203981619211354971244345303620437926294532398017467346713105031067036956915360800002934005417142452376305804103472834620414652677668949760577204689612490339570689953571803794290163993314171616254403415838710412454842013501799755651503472435392970496603124565194289815684228782814618233074899756174811849830763227094014715999058054597175099112273997599827888866243006947505183542619215436708049588207874150371918245473071703460082737930535991688831650003365821905915549019551690167972146475725593663324922782114260158801228197328203080233174055950034485335378190467168776907302646119903442860972700632643825763350867337441350022348412579476432615114867267622078304015764704397568095541615579408166185353828301950354111638837257808581230438864935456525157321345747520874993263659262861590321217424048593631282057850156181392904927093121233845467066395108010274192467491548803408303802105605285476858297004094716434015679034829912453596717544203315549032098313261383380865291711560490130737473412641522399499572837959668118167009655894383625821518708508905391041383610149915622843111336596118550967093818736270099324446487768399390641978695536156968384344659841356350739571038595519007958389429190057977376197392820269673444274876514492137934548092530393327591207684048193277061648511864402766470977648617588254838864181680436548108888389687204988679707543864537471800983705730924915028589032677462773870930679748110480413302983715800488692971411575446940710033986918725807850126973112599430338201145462919256242040584785865099149416314029903190742777089027515797152415004353867353417931354531376466746413688664919451610929197816433086598436068593807037787516861410302688944822772996358562449341096854007116170512219014765000831757744991879947359856738036813314935604984394481029437074581467557430977514825560264378663967883187574807115915813230053828585327897211927740676320241352479200865135956746837439427333982251504168403355426593462984490045447428441479484906867111447196622236972765150603638255446767859095249590072222856193626803994975955121892284900727555341648948426009589920780311011027960930618345502767151654526189994497417601332674809333344337726286633820745806755461309582912409817027954891619042201574194536070244468783359366381729490012670152893031384540814365641085622390598784145105115396277399358750178740052088102735568306865801936203931911945964201403856894130912215931321376567498765324544825834567460783061377030712155869017873455502686996506119660206803042595899011936599129545916313654675510185958915061661716413256852459594195529749101055908844722404076277473984090058075675002282223206583589047570634831252249654054324381698229171313012336651464117256208874131713448442955470256817347184189174985343103656526997510520384451935957361192054182657638903243203799617314951180672630064366704402296869577105409562856645010196055375756220686365547351308598930585975184286886443711857238384619209981986853684204987246371628480008722276135509534128255444057387653113056517584707375028195959420894374643663913012009671402275083808017496824706694436486168655218632756151428833296375195104300486217142942223186536114083337565725118933799876591036866702591961630606042351500214643249073503654970126080436626955953494678069519071014091147417812498990111803247631363213076724908746018737385633052096667350650431729456335314088593271193734002944591942130742017235298290256642950260214184357077041423779661774970102048259415315966987270118560953517772196861326153945196986558893086246911698903373621040573801891034774554030712372372944481882307639568782422778021408309819007165311919326695853864498549459437450040068755562358342932976590940131424093574941215326856493280359553153028086595504151917510218924107739333292977214879511510150433108496266622855921061561606644621449788770046761451226822205281001648992914232296560002566005057095902300962403711914206222024912157840383104572261731826797251850553367600469960661251497685902394894674562911061447944617854174508817017200073332515346427780373421739573288834524469472446978046525677487883341138026088146580105455895208017735007943120130427300067292441700478235424593251564762541024286337256485793141179750670102934899181073691035239735727332664253054246193765893776855109798861037228255598226825066118391988603660437344238112717930786321905132080386540662348786546736336819685376632451436529212840947201679618689969842603544266745929919662324238469691631446238542215152076773430100975662713637188166458663895620869755864990663186289698330022099488977393857914351848042690063804236747555409351259393293073533768912938769438371500820048603408192158556366051652687845953393193687362731151969721896627611450055092610518981762805167567797752105687821935350210115910015069496926184324512036588994201878732075522809214233037935665999925858559692283554224206300862607725968227835344776585367495894708405099704785829047924106772594333298707455301190681401384199328117973871016565208702782293633945893874420154888257259812949963114119877096971300651330456456188114805038351882617840327283864492086711951216402922764607150342890164727201475903384303169229274283278875797041598657481816422407688463295315773411329975707924030422511454927036052007712301361061964936216189042176596009841092950713431040273297963624223264667889134545368159216002138408928175320966912674604355296572766720396928760818643672767378352536264615959000194390619814219604677473105481032493769095542935708165402722643991049006186365768395726394613193959651899732794645237705960682387266365608618422378681150866636573124831698676553545081073514987144997794346775272012122760155592795120402778023808471423183190734227922684210859862139719549998054091132681652564974409792605303190576522473547089959062966900417734423892863525145745823965208281727563192445943579057626742361942836532304263977595839885588131369906225744214038075296109774027679016426265075688606712883574255158182862381452006321613122071109560767154280868034859367284985975033457258994492940939173019246868239194327737743380121096580049359587039059333186002156988866836794142408567440251045406244454096359886365889232304454288064717409922768248719691182136295659878418145079018241957533129335412929120648000737434332274429416325092919281410794063168928773173881133298338590796185780974549218618755068646839625266017439120758690322637847290999907273955869558257445594562959024403698472418688241979991658082225305206329176139251757232240317732082555296444762748797374133254076410566334320461040874793883385587924570477798739739598891918581190340229740247507139434829965964082994364953391755875054819182804175116389129837552486539664480258556272420822752088438142426129751162085067189682062598272052444342383409939780547118776279708965883895407403770223906201963199605131230284858745179609773031057234102482355991276293472455144454884277381521638273634923090077097891285612355041737193726867241059817500596869773338333664402867981418009332303693469881112018026047348942922114662377286253626179091702435582272195021843921054426105512966551506838181854423220259737359093441206526707536515221696506488480560381578609024652127220338330059287206570756593731640209897697536046200381809537989576876334515302593971487325460446194377821272821209658322016027266303518100144718387163684611850868601353378297822651996577597369673842059266191356039329215891144891598212633813042914977261004625633816196538154997996000351382122495165021837193430558357023260918958094184454090275782502216692464157381099552083025890341503595613648468386341238761257326088893808001238086779079410468418926220306908022479634154754031033910119606356395481628056440259279627283852380544185617193317866263657433729004930876979615755612381376202633352264078530631264184232058785268209539056176277044048961691879895706278542734701525308830058090220502537011473186407300000895141585626987856964835194897597215239234933715662462548969704853396769134415660868593838759597601618569571041049243926066456928638268361970970431947115365845701017157808610395838955278691337046445318559640870681797084230264737919914225818721167896818337536813215583629526044368478502640680162310618772703825972159553169647163708532062236880090423559378552754827875027177702746725543650860966072252211701233751287186748482039836059819169441161943487050732955169084100926115597581413382412201789055517039701749075319934124647504691992798802032776423598983338186160207693396119059644947786572736230442751369495918140990524508706731970847479143955265979516379688555170402671783449983061563818043624620453434566743080668985894597485684732557002890955256456652581527103531907770408851645374043027232211134052810520770732147079710908631585843604941890700026747301211560220859364434383984173260174373896081316021494699584974365679434399053019157150856545004183970269324245955713948301314301658726277811775900194474143111689228078481918067190892315460556262023423125206958442505899915285509567184712328572733091268853971007830456407622010283837649557120999465341051025046582537352146075567043132865938441481597584223981357915032646051940043435863462849771871609320259456626072973911274232556532192954758713440501593743870913849529019687081236999315063578666304490526205973736944527233583846076016895691323900338941853127424108290768850786406591002544078651320730237283097614078350833608507084395244738842292687593544321191866127689670642236067503066506723509222624680359759131873821932616908955356726334770797854150643698132576743175251272210839492629070164616225953117441814688126876258190735015967560538553502041118239734778741363663980674132107060924436386161038701708671182612523917059968913505651942089082409248399975472299858434885694352476588765738967176221820732350427827800533043272680176870090681175525196585206287028931791679175100331130943942107610454964668853381219429329150523087082905615505450784000997209339170005101328635567411856025338067287354572342198208314730102736624670011615580373118830775969574185886438848652801885809897356748549651285897422204493527454607251442943710829417561492278879849294516691688112662178415113134644477418758765513383835905557210948473097464060542201942302133249903112833687854792491523364234388473007275628866695742914049833552675672081417138905099734304781348955597061056940424354335942887951328675843346349754801146827502203615664898456321452751434247916904463224495299792329523443934519352108748441816501999017880876431143180811085636286679833714469829163881562583418850438663276717324605024966776641718979448603336929612295911469055280381016420946025389494465035791231922932349872690206665712824830568950309407882536728917701144780945235999122249474265978923302735968613623810536761526258358979387840361267066981857358165976501684248511195518076403690541301351301609273087726590868763569255608119540908902481403585373265430806024917069230692205679045306087214941413141043108482944935598685788406933411924009546537668778442978226519066187486649984389334678086041729273568383009524154631709321560083713395863506222969017470668447294211872311857045277231665749803265540376605547826266057664032907011559254240224772376833330812785445480797583154934524901292722941355431542707270603507952357608593057943510799428309701719426244165751608973329620392264581256994704086004533069452391382596435489835600873763483910726645614736417862225326351240766758226942160281670482202728430110690289688048386711901692566020163890873660436957938219400910146363908871738042940012060072329267906359709193647943985139412714533369046760353478290259590415230784741119641813507180050172065404182843222862079653959542298047482764935958623571116897647038275255001283755830221727774754075843357927627734442379129675868318649025611429054561020381507902555059937987843655103021853033698777974094213951404610818396765876501040977027096322684385740990891246442162366274536741537269789231472124113193635597289287660202065995164062840910395172448534323188961820290445653269024341410917869894169073622326671866440595223390230458901268852138157061546480281337937909862713923227664150483439381040796229157315627047218072959019842197752584888961843851165447399011126286195929564128312032718096200684545735937562657154531685911249939146979599843202664814605686503543352603212507730885293630680139399359939091077347659522045784840258341146388649133713594980830511473975800304827169312932801444215261880395782018776321346669232563122984903741711952194272151785896525932301318838466563723139797306078707938821799573474551247963910886293916140152068637076444771671807478271804017562348370243057761192476557459952676097059848973358281508194522568955966546051642126166299605235889824455364710964333083332949045621789606914822078408322424933584882363496527632384852982966543425111336340129151038135893297971833004023184813377556497893174009912810373812507741816059328812080158862921044225987611524271932948258785413803640519836278533859465722101776148718059879497458857115545998078422238107818555768170183514662848457301720886977584284223124754960910144936461468651632162216388102070000909390588831865153962863247973576787769457465092153663082604345949682042444956762690380602395036946920276598173390960088236224339773677386184561614760382111089230746633827540155888651251530327811423040019028440490481911868700789589599694385320113936668020909854620558271973129601970669132215693491115864177424748486934580643479966418184754554743570211618818111945291038184135698518352618192817544582970311155433885120528077050236717163982197583002484663323606311615121143073561694957658756026900335582297882198510712972153519623111871689203205827349960954436568859981651738256587414496995816297565059111074348398498801460210070585982281916007407718257575612992548355528567718960732454025516663677775555037925722178488311493069217884144325513926111640388256136425379181005614739783959884095584441967548503502576841454695268459349292230361979064717812377105073326469019574908493443074749804375659472700247596944064013057883994046448124261851659121683994898658202324753822944641066659359631868703033177515172394228851109046634879929495121649622515785220533913913276239157934122271459128352108495860357817798554165914679201482468408659350135348495274444748564124072793384007678396601386517814697438964423297965679306205358323321388809282260395773158822445923878754340932941628375742011295562979107531440692880637348209341151296868547081514940363155628831117226153480773540463767800496926823365193087059914078191248643298822847485149801638405263918846793613985002759809093559096794510135433102124706966956258398533751753875337020586340818411116298337898049024458715999144241805866829531040208269002116984027550984171091990302757228742011321959048394053075219067880311137430763320946772096499657589806950784515207531778191763500776307604680022089628306918684950660508340064760655141513876731607726274974099574407989541843359145268844837577180890859232353313881791325528108154023091209742897526090960886533258203190501777733632023582362372478519073472641929836100298383141945171079474187828634082517606867978245329558888722737352614238471542628537758655601023309639418317428741171176636353140234363017001324872951437974757014243509340071722160350750769736272841671889897208283624181143888530998860964182400289313278222330396896816815164158565696155693637707619204850607430546336222501447096681785257547124713693451276189993772771448819719401844669872273051942251840702711353794081733566979120937773174513832144622195916213403798377802906088030362505041306549093568496292963899370971572000298018375005036772436583514963807346300621760817123975764686916532399367443786328076684493367490676637790883942121871004849467583693143513974283194453418620501598064267018007630891963814098834598807714623747546466891333747467053230474853887033395718318796531958467888537132540783368026808409213368706970482950161408827427839197358582341302853964592895948912267223703425602593648125403878422783524879912139203393912789057871848045598969568162530316557755611949178963893020010242839559111103198755191290623557035954139046493512641785276230409028387264462665001886613990445606599491578501328002463282222747885301995301306386619816929715839467101851453568868431534356777528093922563348282295175625538119513946313095512319908737466775437877158903493059572166709153231978260037850346391186646860100169103735552318843542901426133335074483180404100461950435017765867056657589900396699242336793880737190082029103393570223276596140600235346148689839417929711521760797962938570185476633032270804656944539669466594235667067841290107976721603211361830508608048173440576416295842411964917299736965829946785857222327573838090389799945806402937256224633817534178147776833451344249343127342632315954186108994299306293523662948097354040040505674282413980771911724502254668181290936885563624356023852451058375194429416320888202896440656590813155383290631966891177356385459705567870848990656204479546861859466457918380045576009262138608958084551389013408940624592088774393518043144775620525162654586960144610942847559065969957517440075273144921821403114567792096762550162405272194184068672940289605748721630321074806600229061599036354337529790355160720333216068189650014662961377371866222552448110644586002151404379205431414489019341089913961745346669123060168605384060210076409156344538734552338261693441068787160276312783183428589379712206564553523433195242744522645266926199245135365874759934796950326881453467756914888018766659354276700329415421913689831969289377302272494517121707374892834814394047654956000516910678741706475570587421847043804041730162500449965596160192072518452307443016603938363847418413324037787120599057852531202902499369495816359549170192090339877628268214560220884249299506263910644376084725407250744803144715874272384818193999003603970570492329808767899120696044954870631665555745923807788519837627492057928145800751922280764645500721158317548842386165452194035671985179243920014165639128770590502293967692061560445196195871733565930778035925908865925239719975010843522385657938397905779304058091295899016494669768396841022744501410186503603864207586353962420684083217460059925144554666052717961101957702077027182541156222584853592942360611650756789031587766333936089987416356868613855331553153170678641834099609470318601353893702906667943585207128979546725156701696979941978518769102674559262214585209352024904570358038894278396638801826456022890963751675346337427216605650947139782102622807103469989153888339958033313654840944099043087921092632262402152335959012134594175770169105554571394872557592126219982166372741023743299534647306526028271706993742788044850281139998833233378052746136799372598191728908354549304846462576259401015209110050303674631149755247355990565002713669362100692774732411168831926462203577469692369743009316584094063611735435700715568335270308798525984755640522994107508870693325129203888851595887497498840127948050299441741969212804721570486273295769904267450288211004304689558872606176564717720806503065057633238404351754104090852245408497881037219248375634152196509994467790052629626347489180265973614615782206435220476492744493001240117453719176644032751806797041790857864912934555043213747800469739030889536705990609764629593469236105274862375444363747740220351614279377673391615497006248587966045074370962090480475324800049014083136031094498931653694049076616417744455395171437905823697100176466286459972413427563780316480218007013533856774063610889278512439697752413937171847177010393443103266027013554785537296539259883658467498712365108655997909495141454617181707817163516741266555298663140575686811147047492559877957469973724793892664744355790641663413195451230281940414768654863529796974897545135532019386806248339201627575659932548446707996247179891974893371852299936198154881619672787890997690145386640054595155806330993322452026942016598151583870617850785485847326284459452791434998844244435459468702412188256659178472367526568409462638860311088934212743230754710861762778774519188173757888193108312109048420344644327579500668957422384917265901923793930714126984323746852933460647605027709352042184052818694386915550945784972549795808877393298865855665607528158680915162068501981146134395013661461585150823334405065504865291924946016174146914327328250097413138017533034760567099768405758195703869570978474742137696944392319611105594953918470848916031213147191595381887672579828824055559059014417721406643122813163516929206900438168953103447293429295184449643868080607573287469905131848270817185202786258212302427413067268459508285749348962801923477540106985110367609083932366416941148074986704702963684175948673392198475145307427054448331915427053732940086930052168214900308080267843994217694438397633726183239018859427174405259489796370580722668306872496053497865607515812625190897255345250009731786498142701160523890814290448373269291627840828508140193411129717993203880815023408926352826080791496775189557882490474930325388203747781050203249928550003548735352003024382927395089347062406496491518246972739010201986784011183533258098488937697417019538102331782828016678400392178373690590577849328672288758004725066564787096150059176529143763490449554036127023236847999298201584078230626621487959683736567807967833194278636997720305378305506884596529097781974218589382847227326971343087985251485020563164518667621675830252254167443759306198659152325025423713429478637555048644749015243277017721354302191827278279673296011174040946028718762447305364481923079292140435306083668398694282938843050816530598520630553762436589207609568018654352078918554886470201288765338543384449702689625071387186011555176303795367515629243950293896446903305205429235824714475943509900119064409078435527654406830416497773702062854615067628642990334861520624959830931618258947709198747720908923988451645646378343062823075181645414951979016749495589167677956806450945061794718601321184221271353953361320312850287002357876111107310843255447152664248698397952870863553432205702802978274617953750806125905095320269555200933355819351179444183071478459610884946028993513149707241777582897686263554330891686753088223310136687341372978405036928337299729311587063767525813191486800056352803961309909391834770765488932641197569910097241543893506035688585058703274705794576888079106618252372103102204245720036293950452132447162601711532023874109770748804885447992958744392494004399511589319406238740601723416229041487682102529118534538852874259680144956621199941027318257868142329607344922172953195609609639137570689120968458683432929004170900675692372631502453806448469765270593364784781061326207112788742731037629783974487474031914340290232268470572373969280906772664095723268045344923950176560717026695618363274068058274309658954645250243349680731482905902141139057445655531026632788190778748635707977332580329220153460041360969138942943026423742366043917191964792054999916125329543103173429192651300998018035504962059972231589533473912885022159992774631236003447463736094131065742107853127304054204016764349366739565617444811448218312790991255679209943659687074246300545334346360474213697522923507320099722000927001620459273476968679488567586758274340075013811692281224519811323281369355539104353150339717691982282905827544735619587463471266204804121389888525967842956863654322917968124066817867129157491268685737991087482138360711720674513325953940012871250912916298447780144805753708549257031278559388173077213301292035734352838246265406025517550618610319927746417316843245146861993203997607132312093868199204828783477603751428212179498540344301295519594638321906143461474930299402304722464536518549075911110212240312186861319339038635976249883929417229161399880293808718278471552760035483956350591071296482090584798832188509904782126637080697559527635497427476963291551217480940191236725125197444121298438983372611049740513831443947357430088743223682336484856163480650950343868652837269156734997532662118910138167254724381273491648716824661559704499970759118009807705247057380676325552583513544455561374219764948218431877764277081166955486123641458261897812563177160000372513870991346348303649225866227567874115468011714411113945746152956496015580469190429431743721159796907088077800936346704071565952550705337691392614627833105284687050035722740487706446932351531194504337970730763386977586242875757524926322693844467337492043010251741610276041336806170069706520494962347945290475981655615191239397941659098997701094276485987247241882975165075501815056721776500813504393525393343577586087479965684037702770158701242773162953130426281538656760132893088800795748162451260818810269218646569951119283851017743196440428553248256476247166780689349534805234635316862593562409056966446473469521358771919908692492029901902734238899652595354405960848668156605330782346627256305866312675661333248134976833932262767614456904975764097458547534008536745728175339161474260527952132041660580970179591366291036266160412638466748847849175266502273397398088676870726767406159482179307188457512188824157801275521559747922789664441100509488113482828264293901706507759517997285204103467717839544381028686189130974976622143120751775198470979373717716082240473238695438299607714732936491467946585382930197372812574246388118361566550921276498296930125194043084790773308832650968804080537196562652247566057844234993553427454420964669630441487058707518977442526849270955441467395481819005464209774845123476169342825820129056795981382675663232475605320906763759580617245774155495360610418922891620131897135915818527577678404272789518217350945137147800079017757000420806798778354854202746755471527496124008612201765105014532463838996422447063825982608268858405947252383334000678694330492262069202297260440758821159123985273219702080245798145622834986486291474896005458446407961674736640021038774502042384268590769821354784695985830321023025955818837114697260572874770143091803741422859840207193924794101406342558546584075024176044292426261420232384741808905261397232560161133527117105417330248132694165688238971290559118994331874666731843686329010659657028865238841251196356111952076018184989160662741616521831986533066250167189932196002914608959421371599534501904632315214345376175094874938804728752643740213145751245456844476474370578130110905352448753194436773834761049741031320866394584699856663754600608668254082015898894954659715996911253447589645976881852086518088961154922459254857562176878715851389821054131998717417231940612402983100402192533185688404604348107609529640833335356722713481374377488043528243997781398784278176854816637075170063486947888595979356447109243593753523936244325541183075771634600719654129461264676432713056340212292906462174611051531430583455001572928517131995128376538932424906754674443174907287108861459315122410639824267051793874966115351802004637304536865297715468287329733109263722023449647463561806600069849370370236118030603016920102781625839256351980912141569012550763419130745818932992864465022242437964314187455018467176565582318405482075577724461678030861948062819284632436749238875366715375944824385970819635505874059093517082547583674012487510750603813844262187376600517916463063630999241082413166350848791179546267823530603269646131875320584485827898344182428034295664243091213534933101753852247813414177108984422196206258089792038034538577164671029171138498969607388048460502859262719547668755454374080007325659993663909531236321021022653675832051472513059778270882372659445737101718297309345684584269085234693414813400048425576501281031091206194315279097595149038792103691547995817794802557660168417131881902346264775878604723775259370087313766991256885486461853997556132797455792021263313498718488660883088161515994983901225372747107326131550116376003384676520894841339160195908955257525264189798646625238265968543437524413892779494353711497315324705489503052259153805188310342347505406466101356738050256011365499860288903919677255628057963495542186245822962842495506801394556587963158509031826567377769432609189540727380220051277415771018616373282401443816333443261560776934864857188824507001871151451170038065205609721132360370210033151910279919100310995373945161051562003846852933387592890636928176013155346401970197551185824343950854570330754146735597343291195194394096646601812566759022471247781881291621950985890446804296082982224672658542242591615886650614025286854097072971259051171104328892965644035659486760959562131784790605360698319478245560580761402341248583132840723841175702180277336351790240351716914440738487361020985708342305806623126178332725472180095771831016137920525944166761301658413859522927059240317456325272786254744547067006719981663835752507491939867239850979006372528625559996659720351588093850304172256291985431382850326502104425455757349956907463384355989615680990988056561349263628742192733285127839363696257523752780846056772514447508360752375994614284895513393864995285009180015855021527729515648346280063149922355376951412021385139802131772423026937517696105723565890357914619837446980748411108040367817306271004083584518637731068928138691180606638331970175103206991863439384608769429779554277912635419757218198464283505311373181556303035126617461719914201946029269519332441571079965389797016102668052017404191632631741814590863499839419822532909480202373885644481635713598381897225511531754618132779839767806928994364396533007047425457437036123803588364814442008562860045281294775032770382229514742558750556919508419012272262919264471652660127083293094289534598602051332558075669416281282668997360194001525796981540710995150913322482733163432320235468443342184162285916058455208374842335633313200053243506969321683340106693435299967922991142789186967870700127190419599861886745603342693777050215406415642260274047443513222371994004210712791114043043942784409882714154484029911233738301157923816616569467514667099828986672269757824130931166666279961750585580411117671621226696038490659974201704671065307286560536326201273866742787102015165152783712142309263670549514756206831904803388994534216572748556478303823372734752826569853830572710845902548509283670597880940395122836328187698606503012704255814410115729744850958620649241029361002124588861864447540023056087952897838311950962566690834515753426528620597786280428344509039261751103577713233741583982669812582565533070393841646920525448941935099101867956233851731307705768886631591605226371147553767814288833008255127283827708642680241468128769574411283383679265614100867084037166347427446342338088707806062247846664177645712557942524807945653622817176481946661091407662336432029531207930052636675794353553569700756146968548080515321654570841772794394171171302053720044953377031760470373531903721382917869614160449952969857443259713725830854571951820698214986263376695744526828213587436642691951260967824777190597965103351121075872315882765747301990514372304724025668640381727088608109326770470568847804931654608006439759880126675063114622762660152228510759211251479264608889121542941856132603778435863999846310526050487907482362731423198189677622216834050108732666259086491879822181219917626130401565346786167607676669563844019232981667451402485789246509566200906615403461834557320579904097548929269169640005216745039562371409162299892826594605086485621049107162088175506058579371102418634314144806128256895145903619107435277008334267762542949656374822692002461503472973539052168491179221117652656452748846517760102094263824411754930534055409022152211538930232410799181780173736337630685338384954502519393322855584966432239161515531870817271127917793448004333486886000472850259236984205087198155639039978412314958896626912462091795029210139649527981195723261798924698975567988867858842934028004156684296712277193098031806854469318012632396333856346878201051704261331077477419152688227550891541804064989163746280139034461550503835853081136566118908835418874270968438228275621753163651522987580886667795453442798982841880099474703981084381918786984204765676837563865289920017960212713304759894533082766460094700580628029049150171502030102592382044345285218220810702841117718335659546156259361289433018750225700520858593542661130282600380647089519502579110149565998617110365918543402238138835393631108673236092115649108676026720997863000031196471658111291136519084219584328411701290069688391672382780746523467438751598661794653502579310873257218113319749189286492447696367676820451092672456464669428098695885997684217598495720189703803709619327051130529424377604422371512807197453899336153799209984246702659474900311025610550437300331630096662578387588918867121889009985074206453628413023160681332647591532130743917659481331703956187312178522782264439851024393421790646372311853331626689450290563846608439166073232682054532067066349103353077360648256429668247954871159468686648816874770044644090748694267539754733229164963810353787031980237545075182968102287958815595333774399309912513712254822679738604926460053568505003074275800232088000653642002357251931163303405863367993975378495833952012785661795459658783820667940053033867623559406127800870558437827996272116533462895927524657829077580770250742364339521131744972821573112380626432309524960059024263767749873116869467414995801155403109304568064526910551898939236921931370772905531477905144328455677344006413350012090552658319901127130609687934200056307517495459757844905643903479634307100227556223043249151291512031682041489284416105161478495338838288199200203265217448988813216517748514647461145974381759469641745993548909791512331768505107105193747599284620166121921007544592876247249165288009310861775146738826807039146758636091472375035958385691411115673025024410851222662310653523190291914528881977584658552062573855521455028926772930113000527674169736631721131585963974916616725307332767793503488587786669854354996420885726199005527373603131582415399768119916480875462855406019950791258315697143192576464600663895878861119235833739243578502210600091187809115029032737731589726364867847923419151634509738691665371892545876720933606375840003912162454801767586483566749282209299738242397393097383292201686925125562548038418316235715180938375619536098263268089003589724795530443792062064752838138942250848783167857932259271703708666282598982027902982276498927396639441402120856254964359813431096024529703437365016565691469809887204251766138231761234093463561241539223648445119232268733122438473111494592347780291600744831224386403738506137011819103296688058556417542818572928889942815152652187264202766093560872434611186578947318806297012275780855353974930415831386669087511317986342258923850641039126081898177821763396859866104234959988970132546221308330912513532811893968617596575593342830311596430380880701330226811885635362907955598870926790273213651452721337158809590655320999214976847280068450463989562209436578081418317857395269943815112229003271488745106986115518630348831731579139541655770037938031157920670323846293479052372922444044330702764937373301735128445102515298012955096527912791683164608645103108986634301810514529247409105014489219215239551530744998511458073761989652065281683872340610044789097675354863858061889265572138784796341331196215832207571378319079925632873094381043366066461192416001195756741018786726856467493505404407095567359220336748796086379132764657137012560197569954409160966830822161251964581921338210904425486373866374667023201613710397408920896872128457030469896951220259170649743552026279150626670831953878446335862203820859493732907835961061374569346640874409002341390328405992390437193223456345844998219652279331915862229457990150365306872314244384339354607608828987075875837402174077694189620696487668389445585518891359865196423230907569365746820333206763188580742228264780795418300494354919237009638121793594568741401975509749759228386364293798322956190512147742994887731480496841519284443336254325069082778979877524525742537980719787047408136584596941119093514968245661305845550619299707060079164884784192210974782725793507851451674818338048444201503094339748154482453628298015942708658711768282878482038142026670064354478966156878694865812653608694384009132090072120090344623489641661880908849555069656876187856677926353088780015702220827129505787691419507678281245200159559290384441421824049387896324182920579569669641558954719525965343217616083362152619664017812287229741088398122814873849172402178411504144742537068576566021298910438954411944139314708691112281600473634167927433341796301303172362148442475576758881357957437031357976471915062282751179813144797733120946264734169167093803863165180605668194190016524820282216806085217038436030022230993960963106889603123234567051345604181371140763301820790862307410856285868351653493375827491061286382621122835293177541899622802759448472886127581922341022184381276429250039548136764465828863966057804139161587121053710289391674449929868759771688894134797543521357321426052081245841360125211761699041092190045055963136055427028546737448195825352237102372699485213634578185713017039681382133302452331345858803814497218254354013803749331906405613520127111244410845345962605900340968506820710142765200672607451491728911441990037186988313018603282478281164119483107316143099113880176251320531890348229572970729371701144551169291308836791226137603721676215924442936169406770840114566803179529688767849999577594166841672355212786693026943205746114653884023632291946135054178047017320147882815550710541649294502497376564986750321900705586673730073686232483009514801841337064286367043576836437338230077286286420848332584200457892592549353169422435422109593853177315771405671703731438469291487477717706827735925092412611793455348515641515838499627822059851248780636777333076640857702915167954119589136232665354914944889245248964523499198495572715242023888644621082004552073995396788794701804264896718830182420265079950046209443167850199225618337569409860827470545955555613563808124578908737202625027234500642682791781500086348232908784384396534214653554890048651373366022882083594308381557456621763962824875143023168343999762872310045503522748505208014049582798713143195828225807638882838349468318380371639090367574220632552305012589807548934473777817325242469085246710175537853060112511975807677180117075762023877223241616116478030275766604522334365040164396971106537839729243656869404180338176215768663220120561676460629683601392510554284084709426648050428941896450764854227861454997727429130790289855092597126619625416535073679100997998242573568692535339992121762088269783434872382904829220011978894538272566389453692024569219367979909562273747313140089247211816829909529131038054450445862721924445630999541995237656765224957118995402645900690580799194440050743574972828731076393346650030600168935727962934393746368750501638616278172750401710951063208704692752224299753308092631795952160294320261452149169717767769971830732947848698471289067647534259873474995576026008697690708898576671312008807536781454611098250488124266515987987774524460615185243797706496349641283242090755491885227328068673713358865520450151605203569485326129044386659995245724053763130380121402399201686903649111741458683174158925457289661283230712290946688276331842227620788068898507729720995213756031337595748184290725365330322095019421496711783492877865567828206361586345728850039901556932832271113724223794106827674133250427454676885314903454793659385689320838798608003842138434286147011901651855506692700889031136162736763583804753547753308200097655887216263293499132609151847544520506087274876182848189322310434341877180285949541881248941823846755421952013120151361571769242167801654880013406248466488169705483722803885647987299038656227190865379499844438420888798493342120398905043927125775607936774566909632764861302932657564645081796317443180951003067329582568757464805852785578803741262498339600790758775232168550427002259611635847278869354318801689304672581927462407815971409981514972004256690376510383605954260268404474357207725897735722684554640939248918551491209007743705275794984977207993570971147027367405387804654393126457428826512503986515003980342363999580942333617540584260853579387056304083655823643023244955320898545252429561189793549986370338083601512045514052422634262874233017014370024934537738827554324794495874889425861439476263058838771277614187498769592425904678868184383986581684555683027076222724099308345890465791043745493053528469041052403438643279527947967794796764057969384125202191908589349834348810106538272031761626743997258178372601539978510660546373968293861670697583387340414041414475587025902564027268479549202972243685294422371398793665770086520235204803928866350698808896352526093510684304673460910378259430251699147428604037407542243212870983291055249153360711648107561844584265064285464715816412200560115292519545306590658625923611057200334702323143898065634569612108040588629907660122456280011860173630496097959844614607526063288958060186059909944766157475395026891906370657394011469577977329783102051619448725364490379040710669683755794007591857289006324115436010273626979030453892620426771166922453360002352118880574805144799281742908349197826487251551026956263910559222659665488726171044519687333429815871498786321062489196978655097325211832764673470514509272026224799240773692647611910507733173321845993019199330456152726379260981432638383450890703107031685165574352196059050507713776449597750094969593267821880992425256018898076917041745550351234667373737089400572549242962814603519838525738793251709844996273598683671525626021191419765965399581192915979219264496008129604700279676933688474701424062826856351019258545383308103094076236256899982355978408009710589566617753457795074367488674159252591099119908033868132089217020594203738750360690124893238588014155882176031172494127413041005421546874756422837711718096273587572075689344727967135003441692458219833600281647037233578159296560511240851864887388564416045664073284168063651383378710533345240892389964742875496591979555555621319520905295551620996167332805913254017558531048292155842810590744957372548362477273757215708040633271951435468840049676339949901779514322053366645348964838776160055140879591010030534349137183892964482259420797319152343743539901020674483395125585505225805900126630118421405337238519492185708386767723850574257965133788988337950742381753425034610230900968129937224708553283095778047675455610062756738460627973184031093022569536057652018118630417567448566136951387296811332847747949252380758862646244915138630159358599172670682330505503357707740234503857778409249219419791426580941718486897664900881750496446199804430466883178622329445856080912541978365184324120099051845485213656623732843529373072012488412987156178950979448256549011143409609207741832318006753709627905068350515653137691583447580743357398603373810968370624504492650408470292204076351071069097323442761666072882448670170920259127125324330701831231128944934507895079491581326863126083727320150786690889082976910069576316033474775274112600304583799899278829507538310331288121137100669576100230945854472497712893291869520947456482542319246553447774139789976354792562068201120204565210971459164806727758242894791729166720776160382457611431627951441083061019929538556806357549437183531257149168622407969352209111823535425714818151469737698769169884314124344029358313053128913239691184117096987729167782544850831470628539415441294165058509468394399515175549890647181819497328959731285317742634721518545506610164507948824221972026651076102480248920532552748198745866606537446210696413340574657217252827707415827120304583893118943106805279026095303370823608451258798060030010187426949871201958246866115766251415033845458751426672068477570193017903052691268510751140439861917618742258679232542162561386902352997222833931709195664022773269190094464178357562337462065110812217559561616582835841675614483663651741208392033737464893850499291740923623728865268588136140018783614827832667697273578272342793150968538763286252490255525365721871921436144738164144367081317068969009564673553781015916070727419485993419868316022252555567195905514457073970733435940089297023328735464107714209282956581783474028401105374410492162090894917007026327313181296061521837288542239482549351738941756160523263897651715485606596099690102309466992094738679718167664015134262645596926276845179568542980234412848182380950217772483706084774571970428834024975188777905444997814650204021335806776544958519115537200661714636424892114276050217428487815387259463588670727202377270295401074705987534734867850893223551642828883158315288932621643719558743572767828765022925078883837560407513500470713469370998544016220753069405632959520245698411706923921356750522953677583488980616611681211256859699910342637588978810423584998411796234084175112127683310667538731576129909331314148563922818951109022735192649753406106880700882842046682815443272157056732586751546750267563780667791291909986921908641692502129650284606437721194585559859910972079162906773032242161603708449283645684596858928405605023524783168088216518417867745206185431517033890529984767689669622082239554296553376196367309750992237350064681324717050459253025268343586470108614707769313644992074516580387918234438133213658700653591837662196579240569029710575435712500703312773351359057504788921612352445340021365031917521173816416967594174717520744275280410531404402538118071206883588666049463219311077938459949442719399924734461921209740529966132926688447324999840730229498427192544145379887044873331168982812630769153797601389669585610034211245354864287045926244739417531838709547664074141836473151110221074182020815929991781341862821064414369425974604182424441596211920132131751604797083894222439715370180737653983907218224826696858886084467014778277881476826266632263505069742073974500258225958375666550620767062617085797003291476190734846558320699735784255067249886081937740858794105726978373515314282219320752628977340784815595741396492308107751016678338960100894216378943135816938592760976328671581297923893508268703405364012082547584461343585245905649965581467872951506225288720352961278898150948262113990732894267589988720983086319868895795120755301871553530549575729029826079808842024628664971636946507424341966257477707391172953081978160558249712908094180189345417212314877899349469387470706944100930420965764741236518169825632626063192065360099722374036719251289615324681437812624318969124130522708153033308708470534751823014798086154488707532234013977506526809867011449686697788178517150726765359979644025286610824271350189028695854892933213139582784069944490914211006421188622772165134607831022519814472760325228630258706247970729936082543822672103307336428322142242817313723428511548582054832224996040830362180944053271618146119962414476827589076232918777802412386834854981157767019118657083408879873457293937916936330164061579763145459783411083978322484847545694184385749787047015208238058111825556433810742245609002831308743801670910039285547052833809901948956651607264451218292469824286637719661664015331948957140743050369780900330107658377098948472289925321368386191950733197634866051042462850636879585686339416221446957860805984054425422489385494481796967439948783864132736237189661297158585685950198159368310863270813884694241413929434674215821699030294324984727190188647049576266604110351966756671062510736839789885776339272344457207326617858856197744462286391731373710382613151527343027588471078397017919408879662636684941214531934997252115023795134080899747195810066066957804324774780270497342847450472222519744364413448017533330428680152538073354453878650359996619741783621689414100518253466741910617798855785877893309711369536341868966779844552696802811164452105186204609916242085350688563687564395768560159653320669478140408610595664823515930641079318468165586700720888898034432553721769374991653368874404036016810617296333837780237749278318843686713380757339472539535057964045413895673413819885389918623798237856341109884024259700915850038620520819092435565726060069355980749689120464934033926742449503474371238357846761869179467776815742706510721453308466814528742601640274730629909572196530042132345742834944871082592675000428438950073725723251172827791004566375908968438029499005598547611594437308796156591011601499223156713955844753082631105263503811925877315326038647106173428536311287418292565424865006915889690166094275106815618095211459572747444167810001286461640193421961342182165163025286398568760038361623135021196049268026324943472000598974619121494770635865521199259564258593347664766107347446882951018632246588253924452801301579994991092643892667552743675455430660112978948506046226673490261322618699218960799278157020891427034094590716532252140025045250727825371856516028227118449541667313507328606051441870702438873922122987476337679728563185345188327545916781796517635389207830777514703852332253226391437725898288285552156570513373831533036147670637004181862178076954430678494859447631913367492609392904603892170598872077287325646252159634759536014366507177904602536668043482505286483887758584394210588996540924639279213352733119375166057397581689176879345753878477448882219590739171054595192728936726743953380943581982951528062250018599191946203245277547057822685994897757568454712321121285515975660617183991246611465538022364796358792303854358603979456132309912871031234416249480451000532439215709668680200470233192839613370783085902146147690603416927776192911375893413768402757178920654301176291257420788702613832731164931732053730550235171500009108840887348704923614248830986852805596991323649759331876821717091489681544701162739935198088484759402551996791489747555933789162563411023653119786823030958743397479823992881885376866983102787878474727397164570889301534356334967211323677312086026611441711620156764807430156451993269095240719394170850388921458810775902740421382455323814365048351229638340826873441618059010814341183722202557754205666448325662122807488184262899661965025222464031257713035117851617871658765026364741263630043848576173566587192282290408663814277858480308612337340580669707502819740501200317847794660692816426590700591681112184089135833369894865321373422482991104201549481498223382251392183222954694674622709289199044394950739339663384731409702273627642593397806691995687974002937944864836044744253103226534212018961673172276223281354498762117496956356537822972129846025942312702491157557689016085084514728834486139750618229436025112320205959595931856750094349674540487351687491875288661762115577984994489853840635997617483711554265580751555226496090832096075514857203069133185469999408186135693071428079707526505508629528133075006749017395558050076015356995995984023829575675754960521780494626832355175229558806293646801660175423070911740859478559441451042366120135525347615774370870586339060587142062810120883696639438772780865321839223075333470811545340228735448404140064312444874726331741424055782155856929870409991539755885336043567034278973159157586516190048105682643856057199608739705720799331125044293771491792930322988185120810659331157393418139720527217001811052281954063176983141847002839770763472947438271197496674270478333966587985637365613811871197813839767826337485560065822573847748195904958139858860654388158562574691602539170299813540687697031109965148405017390204855744799537524574567755542717942079930454375223888660709007007549652903319101841721830236670193305156332096142053645336535415012185282228407061035711655547683939439804949678834707803994508709927912271426990577813995953169426440135916071653055009911187918255021292244552726027587066950979143771880116558975992843317408541820144605451389240707392684899180025878193763009372677510940078079697650330482634560652583707033798143851550011546467190178343016341272980844627113365986541683610170135115258262540446187209984244143026974136469173990545074594872804368881438806624774514539903004013449181055050242147833757488488480155582417308602633199767748068483635979457503064261618517558828714813559976373013986567949027391516872688270604546364403784623292165553596013176054442411701404970162604795732228896692652372487760650766532700772475777481789223827948822915540328925293231269903326673066447567700643051285056311450757246997375238002907239762855849230464994044689330383267889039532354399062928126866375149667107240154273944335723807346436466324508150255095992090807057770289776436836559317318602810528288829847165632774390450813269943774608971489594107811732962277246564097756851099914954925117531345131790496878591491454827009894746711847028971745753279623989645605897967476577761531958420494322388939641597800663741682170830703284840665832133791566488830958827256930265683149552368359620497498679260526886873287977939371256866144987628764963847623611315849612204534818421465425449510016652843989905182288710594968888697986807764045784148065860448976805682771521618064544794581246534446315941084324978443445906757214965071192146833610919112748469358021514471567090491065185498618700731542565547027077624183579738303676112121877555246179148525725683692099568013495521246521567426051403717696698695194207387740553602938580922525665176867824029669996887488066623484687304394784277417435128839333233787509980263472397380671882145973581105601234348687935349150438102198696291902273641688164058946152079711981722156012726598583855581281122430670356136818066219175662471503296313780026586291245862053873987002032995364707627265557950772054494719472225111003769723264117804226395247030204702515950552992263316583668744976178998792076722650110980139365219405246603744367326673423735849597545435042479397042669843981809420785973163049343335002285123406839010488355440187456441050286976807153161704969844851990896494356384609251459734153010658247593082893431757933812716898173047888304375163773761326010139568707716583986450839262473070336392736313688693533051473970623690834065418467346163093031770659944246227119366550473730721331554237165425455470870747056527711881465962214572364132760023594889789722030188819834013491981048625587397360239250395233370197966228466823524558648527986869867834083354536777340615943476924307547160208127399651807189989764980650321363119360213959234623326057745434370706180754803621263069866861711682008663415100988999189960655441837155929383339675923653428365041972228005650109858244603202090001456775140965598209598337434305900050960861795411495797087551009222196458039423540229471984345131508925721981924948155798894862162216091515622997214523167896680610647946223973954334622850424232625911053582306113191339658045690590878597559175784993069928083610197701956676980519287684907042387715136556391454799096079215618194114995683670310377225478823074206589124370299772815019855630609149990109861072756754650262353494023346222899801697767636357641746446586428468498803662764228019880275931760088604854076503080724055170587386982695907778028633569747931468218496478587912646338788535038302618060769874948816374695263533827131827396514303252742950405982587374428092685111655794022250138680730942846937633954785136785485967610144368464316287593707491614022894720635968278205823510446320708631746664587900777092726872614565056720857724647328413657865256150459018604773796276474986854110068146245845914941396671831344560702381723514279612164879500649914639982376008105868403037221432640226869574437305348617593164413732875943601899849506417144803127897245751598487970926244988988494736045756614772284599764661492516594551253755876077432658427473695349292177252453570459110176606619954622930058590182658333703721398348108088358640710226738036757945935630444406258067569933091076905853630285616992400729141606921218977306063828601042841794845137890027648485883717136570084991807058312347543872292106060247241433685927540364040289654778479225902901571249053204948063409541994331385540353447291885393257567194820248880949575024674084459045720469192698326236321309267040610754104418936121281072429262451198543484279581879751575264771798543771814747650569679353168462634654714065982077905320415235972946646462152139751166220725606325904407356686344719441479400810715380640774815660459083963074047889253496831758020685233485963590033730877153328522754536962483188641828057141217472815466872652806053960192414723695503813043858880570362027132264854405948031572498967256689304436876948427650299682122401952579497757300729546043085305651268100062489361122854342943258984874854540407297214787015820627478541322731896672088308881841556157862835613118139123040494161213255667241984973188899624764988661600517827043932824408745709815874511069039217504052878371423321009669287853126851103462812521621492530558956189550989226077926142008376775985648909000434981550683178423572400581022554677778116855928804641099340301343866369740189234929314878621557705198507194913275915465124572295778429185617107075204095193295290239365163624708517178137119891706087188939876692351212466183841703550184946054263963844476295311318465897556009086762403735083763205551829675306779459157970585240828086830479069063359638193896628881404262878277588663159834535736602227710654645512463564314175715476160454073094957123905504926195240376185153396907309999112780205392578745905834176638214379017941815453116942749189783486850668464977985054175387480975026025630672765995446657404943070287436258416809623838063790821640613489529482260801395995857049786783605011193664624454635255994593975789685965709505217575625467421246062373142522291497099420221304313368686419138938334094674459481031958437470869361354233743055280508388965001730230153172701038611420917981854988175672016010335667775398324110554749463875169575053191638589051788863038873310149175140961495044177621105611545857032631556024916131691431390442497810608008450957060872971776253512105469030718878406908697258225953967717727918102700551983112134355889310491604675916301000068417719063237939591199084004196223382844222457185965728723313983150949076411554722654059898806896569557566431585731797767654909693015676754014605811254355854768096975104618208571658777748344173232684487367545176059288519368303038049553774827977278926088199574951800951898977352357790945844645469864301549917149557901798939107996788741926391737858057824752503917640906620008693094629492139991472466086796297609032971824216558157929717743587453163244170668706446537565614528214871309452546517637510998861784962422413489058420295987194961168597357401034911535931708681114663214316378255385878683527052864434981342889764695551865410926436421365208649986043362531592768628472884588997175733510393962708291335013146947733504415572194824789209122866049985803064032534113360191871395521554125401086137501432141213723303010979928489371972585753825802183363462499130611399991508047280703062228007644962093712963855763038915584341634716010591709412207628097423238166624805852262420933422560181680031688500920526555859321263780294200137317394563615161859731821087468606812780440724575837111170516200698627912925013248013985021020871354042435869611956815432697786623537362112865451894185694290070770797610645160600854771665274290502230250211635332095314939506329659552796020517234954752063709090826612737025630457111289139052188559845129961834494687501657145966144625217297819076836173584514697949330679604917178052920105644560144796740654216008961491757102638420477902145547836863351853343041948781829204984632499748338322197824510081050515455182073540377271192562737703590293112670089812906446707416247362232684261349401806019673553181427153898286180082938713869257226015734755244092937914477238298696774972043664426166540474875411964404950253652491308332653280044694277636585315536824575426761606031905053154076453287328010997999687085168696275132612437426685828852057987919126783692074551325454004693664099158743292241725237998611704734115119288827321369232000604491246689753677513756866708875245221775013136340485173279474484663019033325490258764648630220921486299216138002665919563913128239389881522421528774357258415788529752523222132088153397927435132866413773072988045681487410778009772630742934197327791606236569681233237580443359524710276521807340850081982649807460772773634870289348584787181875772127323851556768169105381693009869092345119611596229474208001454824636738111790501576066076205829590745520242797721685518234191000512641095833696026902724269279567749295403367186971147013765135069268728000390962914527760866454506424948702143573981545473656494591600596392901884993849238520123653055977199116942373733171269485751432751781285971073043431787585013303570121089192845865450153264436755918801092614282486544251335493789161516362433632263985443341945825262788514894735906704629942117637739325655673335218363162746063312169293613054424349729224579154855739579483542451045184886011915737922815806710812590034776374406403523113694912786219946084392365399303528801189762776553159216040848794212127669190608955452045460592530206679591316807062871182840905807747214973545227428036344522987384787049693301450283318823656001544538387671175145750116847470164854994961561716738994226070798703100023781516232532565651955247690538338605646786997053171163212820045492161347666937115133819213468810996123116212818194428646690734389094397529592420745241459990336518854626853211759316879674198298209181595958939156284817722491677390379807873299383676781862555827515011593819224415506717788336185715892995215351288909576237812799968560625840996634929039018430495632272376908611302431231229476991768938731077365750003534185492210791677485920846493723271196305305718114295921988433961665729766215157136329595834979124830409831245494765228126422492638111577950688420549896312489787084109653002041356288746754652851707743618070115303381520442623864870982568844129490388081899793624356074616570955279721273251728394515750694272280783112310664589175046031160862145534555268755187902001244283153421089463071720239375601714995444648280783634495253613331937094994350679466614370697188965183771869010383068803240955855603435644901048166869196223044810199954836304743521256787998867430318990134351409758554515813895019397684528857354925443954286344072123783544047949322811869595814894195855459405644183146469560927395044391283692084625447443652470323507281664792177610978584028249867070916546540044622883993478204127652987178342551771070277647987943768708504910148740542210446016388581007183098959334114904355325999415832861787099525165725202417167725132203667702142248947766211599509538307753778507557080340224950626260585943819918674466678055800594972421414688269833141921223032328152205352226802578237428030782482361016404952610763442764551025035266625360669821841364307689280810594870291412417043249963523413056941553022910440156324096191072998493645572652173646922497199024390799522636841376291697286348594648070604645668681003463362225830427972160775130566093144824195740836959478302335923166910643133155483204217813493824777994032818791759421112430936726812534316729937997873039613435920034431967849197344309935413549210388108022173529753086417823609501760617538468195965610835124174390969669859900696167519054660384761549474675678700857540860362958810053066489921391861848964204174416096525462224442973092990293946704238877656374002042253850621424738144955117025354212928001618105553612745366806573746202437050425451739022139201541570458898680954522499653301633583223830143034581600963465395533126411927380587239356261048685020704691177941566281505912166506208944959692499071693904235403414191605535713790213127782810552886099972929828804384438728338714720327745656398132541887799297288402478900093319549411878240566242277147073611304478720923740888663368572422639412446750141344489802616378548906884029775794293232226760022839807063007045104109293169902555831562890931213379234229771906411271449848651246653390505134643981313980829667666951934353361564743084768985437132225875725418204397719900568194635910299096850087753096905208359569675459603934726457270673577582501694628665434240421388058673265766644393088369759436291953049132814117262025867129281504501143942329001691699964241099564518277121858104992554864068349636860479293369832718361004376135702914431630260312469346617756440347235572054429446749375157347004557093203747259618134961040860614187812891543860029604922050201899578730556729561275018760034894948328754762089502969141672497280414479243253996044900405263844767404652088110459125080239981378602181462865930049915345540269013501139924645599905767440657743735584310907346178512547023856822811894255233681035854231420746783105969804930112896113512548353726486028970310877594347611737502036424360824677612130345228870040824709370397675861434227317066805603445312131785704093174671396092427968197293049662272719814596262893390270661467760865937622344820503348832285335924228952625003703342716764179656502539223063292179796401528461430697002254424338328447876125296869398558165168495637426375822223164592048738606619348002993018481957033917508870016001183674379095892772364986521971096264348118803722987224647732276854575795628904156341166850000234764344026746792503684944000690582605853912340128621366575427636536055532919420071719056698304307595209615111058262044653558836496167625018941068568050859329582176613896482369125812270996348711684908798844585052361691098697829835266868306196340419288736349016094304011050986489685736799441610639147967409824031882390971692356852178794978671778532274857313313666153583684091662739473647794704631719500491331311361672712068938483904639417053329254026681406558831473131746560310442127148107263047521174391405954645998391797052634709110378873320823871875064649150258731961693693178628384968949163627854157218117909243245831443736269548824298341827450745440216999053095222315445957192540166809072136722727488478262990726165010603642581116270769060487597378808532766749283950533836213247014304078405029543294344040584218483710538171818924932647116691455585657963897162382717120287549111921409481659062666918022942526555477673843585236132084456721486676193545854353280327988902098428138016678713356391922564810753714774825188598088837398956901027369731464373657137500016772262467565363738361785127248869998781648679659350956714832639186013796989937899527924112434786234366985148634182160786622620904767973052113248820226715616150001190645479223865148555021383660831717629804130138112840482397876390136901827352299199809325804249768533255311887951887033884264526701670394706804494530361711037493714547968183679612064019190552924210072949734497412118947987702870447824656427108924958271611509841449767705602139953194257326836301496940005923177937603097325067150238248484645530295800674330203470157725487087945856498640160746943384286195149370387499604862691609445339799604357301714175771605342483941447073756281733628322478771714825120987795992520131645080219198173270601899444340396405598062746044474835831593151203597295699753195800756845713119579755237685352827544473907285337017325820622678455245636318185324265420030569720360803696873363403635606147356404089722989407888407372739029429994908202385130523654182795463717635718638710304315670907220731319186911790227170285808051459982066124151702447962797220904351079472595334165050163439840167397794792272571570441090171331763993550480671343109718034990788750194330491750701030565036068341030741865386764022336421000734165430124070944626673702702323325596637724582981497667278657726047530029786735391005684313040620632704359113126915010773688054312375736901046124298480518102537943233388681774045920439847705479600380414253198447846136424395095419600224527977982016355170234094084015247629109378434646844733579840261533841821481426014835649921003867007748605291369528933997636528697448312951171922982736122253976219483105552495723870049156240962379984999610772246637797322349250454855536683125846466909884261338481512268411549803842012299866090651598440883334514328216530615013372115348512339912955649264262318775774579459902569189149570381314344379622323601653602641389788146192787394025974949341181911679571695711852561614080377831953032379254512430475465105674395379797631481485853700991072417466906442763836341180123186416052999775597859760039376278553405380347568241868364643001052271934551357311485874760935554683202060838277572006386944982455673145616369874617455077202573429534053490936153144631367634288162413550845801836882719825296461294578739429228276081230488372400284533783854947160841495069550503023714162134694580281843817158216948032526251207240434934954463459391697177779517221301172212005259288115013414692526700234009038521685344259031011661192182530373371520884950241878190803062683696967210074870554217695424583921698750666425530465553914484243354483919338623932698084029973244431442622064717395852740425117117858489041937622188308338957029794972844642272365732533686194108494041760082989717349474524389065734790007854800136236214235132709271810690852778932356830989550544583415564325299947722702374245365516615903537239805331859497954557713192020499131660714293711511391008131974649968247100906347433145736840164438442625272214055736804634008753959884065509832444676416388646957655681202756750681551981567981853884810566578216063844934191684874376587903638349194364889413455560915722776400803663348517638893787813902598887133490690162209457840685850779805848636876141468455926655874727186703767111042948462226739219812830981751984139154113856219043150765448430194241786841455378238560894492433952450183000227753811984335972877940144834092161472160249788992501460053492742262659873865997125815466690175776190753060481071183088127253207064412251970882234127601163171619989074559469739368137138290016803264260677761388284580980453979905644852193758720665156584207818034460217556097807752813177194193443598691349593324789065925965935124604669405885632614227146064535687235634808148230234863230367104570387081207128775206303250519989182111178833356069468968900514197016134950545042531875781471986364808053282995441864026514923253152185602627831492188968203282222882675956309213867593804442513664601451850275435581503758360718452698333561706983462447475775722323283218689829544939308394082575290656863526382639965471499025068891339607055919260392115658447593227479596804304811196782845041950824073720440266388308018170490822441342834089833362431103048778547951387545870178835921944826215057844778281695695011111901125329668473054778262176312550474043887684014252545595277670507947926874945384830291296094323288047920019107762429618919327531935748112603447236237355952838099526627082923814304718796913112611514676262284514375497174758256328802809760895056485984911648231871962677900725905686185962079296390594223836255436891670957411728552532187325099282448542023651861972643139586971283702648514586790712755802477571132437243658682763059743022442883503795867988253612200828600721363973191877045219822619655439537867634338113888094132237214327620007064381552052661235466368550815677057751227585350882522754506219679576891438604197057154222079468740483074531410859601872755753643037743904735787857184410891116174894104553784047338247001436812833441065724100573978872370592539133550466255559817512555419244099449469922456925835200720485811244602979314860303057184874455891446392616573699055273876123984600084678583594277369964284578102598837616679620519432298459991254354394056876528260180887375666198256201320364250090816454062670221724143583595351007007652988634306020506619112667579069631935671031205865983179002609457752481487009165044502206165826330755156903650620866487163726164557016056846747324366447610365834790432443879622550375490402280152406803244015391766416631976743441331013117980407838748031850764810538522362466736468690219710911750235824449929156036773215233005784127933147862739707696351102979118935110938258325411050237812552520119845014456256921285772878698252462505144912116008325001488825842886434644273323577413630257738926124916881509666019149912924077458369003378452535304376300247935743496500432808503402383874819587831537732344975868852951223273457134552560725323500885743060595953800842473135727951016298466627712676715563240834988001990462661055823656115725664947745400886504259322422300951401911028335030493279887907193388324603298491587868587967260268229043875544739035234566015800653804588198618737524201817354920867492514127028559864709223829451762981890375154625214045388237044983334470842502447877334214707532525082705128242214095758022320311500983284233394167983334944380238341241350144396320644963314089565061418490102017964722574586748837158882342029383416522396653355308036358831358486374504365682764439195395074652672282272297017776130381570692113894299706444447188055069700542437706990085703954540344329728110031268138275280795481215912311325406795737604638948249132521165645795628371994548254417211184339479598427349091681107568941814777983344985516926033193290541540945924118543535206375977861962010448888410029192945461952223361877477889927962741311770321830980532618324036838690723607203327947451716957322632750012666246690343730358112699909793930023060786405228489517208596746947723501468047379734775374653485332966829547107696360937963339380306866062527382125783534548965418917753590327415882938638911943587531275934612714450321556778120899657758697149147911159926987431797421315642441414506104107045359609591655090693037706089028809194345589880090475222501111242479499379112569760172621265251150696654401785274513453929890739297459326096467874592760486072508276365023074541100819155452451394286241881931144240562479194577556851349728659624479307883648695458238076811690784635061333672127122988227108422858553274572602101842803118366421416274901522866654082719709710951853983641065172823693640399794264707598975645991994122101070943312912220272854005669689664365972985793610583032367260929140814684422924643489466140393573804366887436968416601659768150552089797426063230929537615014008388028587698016628589820222282395818392825936487024676190071647001475119254328931347350598483500575835703002016140890925767990538873481522348566259345560114435154703255543315444168427408405156799064190311031331635053721895559086282353172824697370954216672190142768755955530654204769720309972073571805317547681723750829716089172246047474269366064275070372129896605021794323543305734455193923049025817653569279540474346749179698708349648748837734837328700235913958961991855594049644440849410708920673901552764065266768001738779653242092927161820251837496486218341708939527588254856080220203556573921546311433469384379755491238254442691992513699904617754586969644729139946261270659551872098995106464266581862571136793777042465478505249576681526796277288876116991945335798713463785722750443865391264891909905664298393576253697416011488275792348501444642563563249550776704957702093325207713006368937349017357250502678623311206115349082563034019673037102568898705775249374533031830957429605085305604653425666478067430200336338108213901256740300802675673893707324351582255734311212166076189380295513241963236171578481709395688826196326258368010454023553751761788303637300837644220392743985194261228963695652796220816332284341766365177143089256637266081404664666560148433823905290610309409636356315907396010087188346956862728435310427196918222738147756248561513447718309458715585623277566530562621644558266629015364659294707817744796906935879180437424939910317263232015750960880698578834870115066665107193153831716491418800252772359944238499685375746748153736239727599550291710214337834428339531388735547726681965786679919088120733058773459572704216123344554623839768186908991319966098808456318031437940232283359249019002465484604036626633114075707076605598761909864678686148544446176529824104517744197915977178996934579666949138414212801979370116076776693077207626532990521184480428228760334832240942993464866209284689625503044710652993251963575959002975461517821507847772845798142046290301008735396335197700985431880622957227234039739156834819452327609245305104090639548238113058882900297643062207959497057265274314005329035037504015022121418806523291098357932966054349385483786549845365812289726289722833310461033432042102201660351619364286658034126017387459298894134468057890525918752752115426317515002435152525591583983873033185366426205971470661410629288989249529628387288210619889479976692821429670070155580229121417081124224433561044662648812542519894787148942325655180883116695262345734656375836049258458836560044084435197618253667374628180401021151700284734694010989510759587214577796872557014620222437576871280323356388695885745146425142501577588733110883502424022801064629611810500758823713058765421703303855249865461700069774419239996127602412049659062787287849600220520846320788572369699903701763339524957941961709700999115618977597694581855740289607598573904986241633689942969028464378594354554536933258120413209202303517790256876209977737015530076100067466397580268945853176912752911723113283937343305447865532163237761350871999480768353459171421554802849629820798400508150404298769231032865569460526191286302205673467881484483572675891771905596776522520711022574362409241867678489570989212219341948034345704685204017675703205364505256994681409541146638363763424993983280954886546068687686514762902748432224899343813334551074440377899633314913903643863856713352090061402630740112660860329097746327274220667525376336302166538885955113801807662303243415808687403006719190838215501969498756476425828353117886466981604525917540802654151950446076247647383863768759892707296498062904147311177577039066367410113593285249117153521229854151394935217537392664868217561100469013239752580628607638332783203864449200788524357029773850276053157625149407537383200376784269160850827944709035842750331892841226644855469470349928271090996196134223437108194428789926646060802922406556014748241357797144400477310308092656849118139073728109412956015319173042783682048531274839970751645518881565049215264206495516822899689625139635943067021629758972715934474858112299838460539018674918397243239543105784540467990562148171074445247571507160663580725959767222162168522884885688127055537204576172823536014086611936589772400896368666712155794860470994852811808493857253743229358918826690196317342923985816111558893298152831613276876149306607527966308968362479224112031836371122298114335448372948475216938263807649981296654218037042241779462967464153419130775276493906795595476013809743341876184799105501512606495209291332393269420122569235800342007706628308299327979962264446607545927500211275750560214406168385199194821846405770857891831561129177432248688558620709674897714586395735367789766152055701142896160062780663521665042730098636010474924989989484217471287911303060417992336018330143856032095634403890625380824843183697500915467430533452299176083729445753570863191547235815602309381275979608049160978605766734170558824566964860782010789144970080028866240164203824375032465277800546901848500818117038790920864110785461777468317010928844358748207883982128774193404357811067405591539464028961432769569559930340431204394644537870439589873029083886113336660891932930686173846613298904802718454810267183135052893894465949851695659684473481807838861676482576743803853924496900308134496392867626631607910222757867992238816860818932376301119823480417589775754577585246944228395402046118016630512760131350290349813520616604039556734483478902333523169331943217234875924267607681338283015647926071728585466927884693584543341441084845001992139688318542951239319111799238182094598384764208967117497754234235177277038658768048405390573070086949174956117212632698908649265551939900218782151200927074573655204942590070878850073403260163594714847552043816593749203038358956654574819695177597291722383191950806702560005558062472212006529584445021749957238473429246768280269675562555449588670720162127983486120208103944018266229034396528225789315979675438629915256327320608964060829748309496105803874723126155446575138066220951366799803788631780951469884783278271084155126659251705343114495342306058632356682225150107781342379572919762171229310420842038818965181825310725354888998789726545670205470396550771794004831683445645297920397772395069976230511753745832553877203696270152031039279570120391732879337159147858315950996182962852288099352068018888075100194695113859383980970375189848955394001064942911988000240844834439498969360287408534392806089737269982595485632067249338471585796401348675984216121812783052771822812580824522228732595836883624960612276949757498742948543677108754981533738726213126484366351691265124295733156134966101203247923159566820227079494310814375433865326972119177207426740877270795150822556501158199298048204501167181004757485087539976279565249478132760734024635324096862155641160359832181978567462434417033945172202863003305862705705166804108690735305006235981594180933335402966933039343692747553273619960995002896783332671700391579675372740662439927977937106372914492060058786197842419371159596798132531521011108740659438833922962388881043324494904720023726352399859243127975049933672663729164164752792740441073721807010886725307630061562414842664485677117515031984791861433322150195248157846217323863500058024823711727886729368673987019508820435742527345238703548565359734407752063411831707710337359021139107276180911097092064213042089043708595191010237472375999080884177617668879872119612219954890980582408800754024089615004963114195876666547558985723013271885825107365742703585042900097271608756361782701325657403357452733845073427338117563560138373475831086563853926001006320470233315519940190289282306002727705946302666857599642240440045024936917745690121178572295544954862191443538108171534854900672610416907264848595042906657660342942588637198243109600138547992277473031679138902483784271389416695516536348477954899763069914626792695862133709715090963627695663349288557269174104427350925413089934852263218680944166858997267197040974227942732809490165822754915145452015249563273352811480667575193681410378739752666660841431211241595791551875815934064501298927111834066348170174825032666713948245761427473078760379155752235320339301897414478411500073621743002747974397644454455993021805067337332934992174872262376115487977447526846256157827731000636129629901662750501420191438774913893234798002760857898598523086141098992102718817819692654358740731867379975901114672053997652096405774543290527993853911367817197943188451243964157497870950468902011308355471863003101108992828563091460649638785084433458310248339561303246724612807138911395810880535349367588468355681420746889192018267176515161069664906450645315501347559279129855980185712978834587192905639950761148312440669385246776135516381700839457290497796772856014637385139644302656393028730867173541151825980769738898718819147694408000389349811242316161701725680660455238641862967255798112082738446726472255897773917925464119100342011767246738041266185863748608324444045274980242662651600454051292421512237620175646265959924473044470602235064862699514336461024445039158462955568561709236258841757608155824987599963085161637517891141035840200534609812872269777839929500210842725669030873170843556632793963137036819112892103833711614142722524568800181636423058887522211532353672016000481809094360223727314777785601114394988341450337426385855786109829028551892611688726304556184905224288890380882804271598435873137177297188670539196227327946126056280378074936760652953568646328170675012729968758772728801783197608690730967690575927657200521271379659836579705514989809761017782255647733537861306959179406163517433522002679669004348242140923010685671128767637222484247216472351254486054165441113139463475474517253551715496009936168328176230982957910911603352227750948544966038284615429579520348111321710780681361364292602574679851526192849445184683190967074797183624511524987228863467092869813475396503974070654641529522991094302680997920402960619850567582165612362504638812483807296466537168041896167592174519831351450726977504905702048270082702695910711052505489248499330592640837358683383274432653153939731045041778666932195717643891738588076183627344011423468913341313545803115342546688708115159713616447121497029455359230899445589265202969516209658646193421357908192266832055577959978837809088033975210704807091742522497680003987910356500183140926248386636120969590404918158256360705545407657493565501829983400117110119907102478018107789301510417735164216313518695271104436408212480455847453432616442166635890509799642755558427393382991708937977837636534263863040988657574040091542264765588254393880359411710898096064172558114971496463698564835787315051326732662425984912560840062654374342105659499185415942293265451588547804989196052780804676257889166447330738647579914719952717919644453288961561120234759380886729471754115022620179306564935526981116908818868410777992686370008435784362175551690150489219763439823905474248425867203836501447549256360446110884225083776076923752195503938117780411079749324783213925051043621538187113035457248114256766426896582977040376764054415299607493099653640219217392618001540914377041478528908866404749592162288400577109038554408899927989570544818682884372088199761806186669283236920706284737678526254723516500310960842228404283592312698579204716304854377059884313239002441446801090066918994114757685967611547725218550210830473745128221954698450503789812182831071530156500962772401742853590827223799392978216092300372410538575924286632105917197596854222877181036022099589594781612366110678482430742162628894040077266624551646855920364388846554905564469232962601044920956856895052186689649354062175737128067445451360089361712904376677986330356885546019548558517530146477706811183114958287250619251791007056182181059377795545529505132689091905279696569494801456351916690937955817407134652003166482856503582230693819248726777044587679855199881465463449889732778309476431588770350785091440379843528544803496487485447606935327448481514256072046790496116699256306289005508233843606838864204302571806672829574673825418356668357889877815117928041034479780836733490845471437472659830794819065653204409057019015724607661006531665868115714974147499971547864125828518523756438771245532858044905117076790842550676968431172223004217726038409338585525411042280455810265060017000926678932398888063551672125944332011410073830799133362837343156674250981502277626158407278460063144638630921625099853736532789207596674937201201306674948180472497687556604532934012344972097775920232855989849228416612476406658046189531777557821524887305122185598422267632492173112268958061159630969698143793714435262328701460394625576880721585410695504029055007721123872053116056606944919647709170855679449477030378221587878729690662447305154078105340196300355398876354098399418231964207078403336531667707128178297610259360347292918345037780248845999345759260736349649426820388726116433268815665983722156198299358945831809219815520588510077891567973161184147071527196766176203315655589555986008679104305695557657404052242835472235439568078495639208282479485368570927548337429161693189664451616617641878443027589482169541981450119549254435165534628064345208726838459023608712946074296958383098487632532240392241630010524922621528322575319882546596082591959899895084234679427360417673294509778917548120149461289004566214289623927050819069913141291280464508306412168987935245575287564002005190528915681990536315865115786300017211401141369877617914885780292041724831576429188550035128932974627915221691525429228078438101524347479951626480659864051853053350423876827188805230460846619727388402569741027974797650727753330278343715535589917192147682514018870843121130134740179627680674759793930027702343197877613561155649567885422168061424138031298369572949798711285748551704995362484951223880920024833108288385181912493714569096917300339474181562683924093443219009656287476470305227828357647858017995759711087241679284959180327880218029475534316995567937013571333445083650763984387898335515692342813630473438460587741027376997812940830368583748037405917678541270811842254706388137091430263991546786518784717624227747420670014504582112221017840873503664826469399858055742517142500578974057203478783768254904237360325063560702720266900498762403785540648528018336086122395614425232891936079157219584223835696222158934018822408790704543310634760482288740647303098614222053192713097423179431055193591103755031129828333598589473033258052199372115792598231226963522656634305954941629787026775574825220890011549354390132284116942276981673296979341278995480334467381802829846213973552808932645513700566667111906023309234495262617406321817731831817712648394791748926176913691185190788699847817706278933163546223929439725835204565507172811234237885688415889839372157138692356649793399431573791315611320860956630936869701576400096704729385899211818126880408494501544750674372691235877888996245674100303340850693154371337727381525336755762169871829672739105861789420754613922141712273170986049649273064663787527030333869602350960886264971985769929604632196483220789571697119125278075067944887746666669692914956574747475875066501053604243839400350220170081991147859387861796432184916210974842371507433077029241311993356791145838124015250339282424130060514745280096335330485965510982382255530468591294286470033084372096533108752692112133086198319757724245086278675258634254804479318784805075405850196167635555007174644474166232667665476906163168316768978497000195052630692844456518248793958845265605919290508914549213370273676352862860837086657735963337576333976642140054603543531672659398239802784658810120341650203426928821047886856748906391214530418316274561160650756764531404141005377891691057612104999740745083415237721338816181850965083624998670431749610209051126794064929395076182644964797170350990035958059442093870944789096065512271938633295222680274731140817765221852263924711434260584607593020568267278901892278369905149076820423414127489798968351450498087941772320816190454815887530415817592410758291361377055173560511192896643353197730751428489676406819582995987447359504161335335785037053122118241869071250729584123849595264896762518158482809913802617246891954004029420995776297171328058969097729975481747889712760193116959490106427724318541264531995645187992818045116820077075398753975940877953575462360537930304925756264764698193743984488072855771229953526687354630235572548085386948255663594122660017074034360758204268172487016871777477699271621559641931755394630937209495480734545095100372717403651807934618570595206672657833471990825494445236384741466252147001136638872638909203379944370004593939325925145160469706301636982493285824284959463243377026478349735007825657393167606480908944552148060503228349629788787660224897241645129339810750857497820526735031983476723839597189244680003364583117707792489431057581312608862588751128620694470615518306638798740000475299779957163436263086527457619940314964732223544003099606498854693487488577986625748942037396876263412527120155685687498207895745673807677791224623286454936972404316518389294106283221259145827929726953708922963199340391257963063799932231199310923520729673418831068123352675645937890422364035605857597897741546072571512303602719528094964293659800433470271391183479217199148326502713686368366637733935046789852661992282317258436117456021810574847897987534332216666127945358855380910359559385478757790912709723141128274857637379481475299565589959587482186524427569914008823062343055291885350430905501099997449241485030639861420453802235958320653166529088376463339484962414774609950803649246299089699018658269397755942486838676888918197922199462530252568648286384660838966513717054742978360684906255990024945084531767111907563086507334481958036427959170967270793351156704270748248185339424054652369610832825861575067399446032993083239509314756346539790864528735178769768170326683951093576541693723276420621889598898536956848228823931129235754803774194204430868222068414557118682539350743463250930694280941222597855909953823784943395835717898871716205584343459815854092888310006163422916815122197838925097220527632938042088430629622361017952915622514979951702208798541965595175015163474451641483572544988035593110957129515234592185097043676088003238068228164714017498658086102977949278043302596655722762890268410665730913220973523224031029467804586471514954643881128623166965930247558227858138259303178005831590623537700838889145171987961802401319936804600071213550704150902420964419421581252370528681492079823956779652582383146178526469175783333056299463058189964027469569880100100242582310128547517408863377709611114752625817068965630827913635893446036467007988638737403335881225569359389765785037266605506621548988150429302529269700455962360293536780903719541330107696274821705290255031038742646997487880846663287817048467975037044367407849564372481351630229088948814041937294434142399644432394626234968633182634475035043756720381783987699040033995818002773654248962423772324525022552938214535912141391218262326591990010060021668039082845357967086716504273155040393733921585082136606357542671195433014646864402646312232883132440583389835302546026624573871986721967123947397566825150755979366612205418342575667431049911733015081626432123064033815949844601159170965337780502905079765141197211201736115432773792797527806581752633477600720777275219793858204301083491310454325430788955720688656553479261046383337102049766845790944374985567455109177962423929236613896223764508866200836343629783408919201955545238941442101451599544525185770181976067673275230484622858771733194328611100578895663248998460505657410836351891888714486938381779766345653015017774228616558750747349269505425839020429073243777704088623285006190566977898332157274382703665674707033229228588652796926069872568326537686119687948140855835881871499042188907673536458711377734188258059473835372284191103587971174321481299678424584350823433432134367409813117976406038638425568520226057213626462887208110235350457263959302763018855279312600576218901393166605815726178035686409181530423420730640101904011944574692404526263149163439147021408892056456066245407435539312799744770481655838249681347791337027998340969125416150138234278664433672242761159530512841158989845985846679504551124784796180116696314332717095822136412246843814076772317235435172120070582046235049237483985969846034421590158337187283565003183230395960700248648371592850627288784082637749060788647619023133615158059966744842649624461700827845003623254783280247675301742111167433772430807198462399664242704441339907272969588230390708321726442491359799046707796750287762409216331030847597506890805089734054668516370086792178096138688100219239126524295634737014177339732627017313624534693375337134660004007569590978799652519514638803511503955902309200920781999096683639667562891015242250724874633348880573685360655478152617207413668133493338346639450988190614447786854553343797214708558878225158467642280436720992824915425035115336256188685346389313759588283432652589832431635663105477506966257274017567470570166968232769801692323585649139143297504280683920857160000106245675869941831435843633155416350473550950381816983580873517081252042759382319878763442339618692215975931970735713149222901819857903552824484901781732534928128204867112214213831666935142636938519781858559065818220633630706794261353394138373756610034319140679303706811185020018713866307018617028585316934299728847676629779272422825228923765512041952833626891602234171400667737367742339368867447771523518140009605234619093248408109076044170724176051391546109488787812716149987626785128566962672622545832938244953701327791708406483606232302805520574809625675574026853087547332765954137867424858650984888121735181128531616804516430745498961308557790440081875341776861625896847462006340247509344017521702932837482672665510234497132351928266183589082323650894365878560079211971097967139944572987246993303442826060947476957060580917724894571040651928047410566726765135569362422734150254791145026233663288337451601581645072496443544975352063946026890496908916374252423204398859578177172942603110142290772811493483747158907689363686411653515507347935286218598259194030140399110236948338204333722769715707663908114839844921286509771420710479420260105674659942792634306874332890886254517698384516279243220684834210959686773614580744760972167349983889291737486900327719210393256270310480979611346293031922584368568638437645988228624673520722871453086457055546449792348996181209546568906682017586770254828409961944678008823681796949538432962398008622185070059140464514946233914418617046818718570715423362428853344567481124433890044754691396357890110473430731267366986825749779075567547006900461021569251722361794033111288423838189691499699581572627406444183501397221296446780831109771138348872183650987172438093469712911377785641988849865929901006874436902538970689122136900497492004607086743482074547092689111264990247962659195041616385551492266834081119529485148859718412855931917994842470971077647845052563685138325263686319580646072551747786539999354526616204876817539999822541190104714214671768468144052116708514403204245990171077397791152771539920035421823012025958713587706738865925643982301192985150501537823969209356539419929229092159833512673298779219117772530938570987313748277786501868053460457727172772709913335497635781527146910539258357380372854094630152717192558019139829967678964097330411112044691290735988057143757172321790261638664221799756773246302276119785619972313806907446637352469902618275968279953500078547641308624696412627746417961438571402174134583735060378878071817760428379435120013050347115350771736659932889361233555543930205164947213956205878391453807171293840679818716526894426398973279404193560981963226966174915107449355096750955869956474463053484179832020360437096570946074611960466838104363297684739888316049251356827301847430065504499546230310497672783798010721062079272407552759373053529997444535702111843952130756630877018487008410127827109987838792759367642630834898278047091972416890735650115406910881155547353388135113035254959857152986458772744866252372241105069592232207626947334233652623793294299621884419563969254935410899979153435862271750955697325674824269330683128625331580974215866851040030705681708130752837428269954866128338239333243194313555909618796696182021148203039126261594380725537311763815689777422659113670709890469057985494131570664114965556097738047544954448645416271139520545876018519540722964259192808977222938420425146449335700570344763369374746010373992124598292203998087259540027292041711852851105679433332413593671436309906092893014537207073657552134619656321135381768643843922997522060744649486998203777167634009343999618730969980835996137982727203186070407578636121561238087755731218824771966786934426963466382370309151392631798496754403523182374104179474083383327340836734522740776824714987253266757540449877268902861171856747864453472127173392010346536606216190400732833144021593726002474367587283192624623451597659019104041623787725959631433147424082834803945543456181762236027378722114086216936764951063145608469061225677499350527144097348276161977464547336282706235442017942154316509044833706046962875780510988506177690059884549633153655528117307722184299591564599059884483179728972553434838824884608158519041772173202036415413998239524359333192847129147785908408060613440657212476323558826251989374431926431907935727214593148154465350687701102027547224629807973753200680849074903078293779977938553313045269562421362788098932917285331370703747778930022581198966511914190090527642465356125173065772573103565170642134079806895990931409902887219529356839114167156010764479897153922329151976867926529918831229083073986613918572669517893214933759780937795383614683028936234288806489008492641488988179919350805031708688553506108034559137876775717392674340382433891957702665335270825904086815441878010920651608432568600636398766246955445274593171406845145009671501405936349329027587384378873110199868700324287398391713929401780443845935286277477721326209851658467727377261507274387036403088291297056545684595445558993353876798550866285726696955565850729738823341241123743170019153763639954520207332875031886897072124111711591182701791491204485744906959163562968182705168427424081676460898311524091832113735781888608494520621545924660699707756807078773632000036728478075088163770065061554364007412481896471862701751257926334260146201714286453110781703879494024890251500946107332905127121184933051453816917791596735243620787604836085372988505940684346423193256603492937346847705633221167654176266499449961948246802159600102635227151071702386637675802247712028246698861299793265815913328993538720969631433079017850694236909917584120685654326441236031436015316086328383309144802722758464550659718602491140979534370434454515343840022486949806964979071426594730564352272109289086248761611113859117328484389393328062388855481549347226456483913825708691005431426842580835324010193117672519120878314606888461917602612596265630626454974862710706601179871947045573918843579040345350258202899386594522958201391128128361201308189292440834126962928047756004814257320988149939731464372784902716001610211160620741934265608860480575062813988922991060161504982973413874711982577404160862612704843296102887992881216049951322513225445766460914010091524173636618685016317242792520069889544260039725177624398341121918097315871690215531016505837526229337120204543406878883485880439710398315139412055139594767042059834330594137150379899516789339732808373093108211475069389030087112270406546268889491483367271425170083702045527062003468161134336553112310447501981306261031175845198170209520335554888757994452955315105004201383333794617214342120551176851717639929310590044889479605356004583443112232914207807519947455003166885020536516229205941697311893530251439459032817389859716949782303097700221341738447473582449854847191921967795175095295398693007203709234232017516420973614015307240247712214248759678508108533287996509496512723909968349969254174815802273703174700049333535693803094038259349450775339850946575665669543063070158057318718412881677590188930633371796629992123922130846800225729621892892527408474531399977167176626644409781539136231882276600689760438129847155637623039875511301064918519680919455307891849487967451665894990062807765083675252155074596162958270109823497648367231870945924321435978552310559628290174833857241044670128612777882360965275628889606220337613637445898313897778461777981132970377922844382383683008692775392911922097744272475403162911076179421524124811035274475656155956960292184771021739375019832186769670972811450171745681550507771770766788349923929010687461542947500970824588448637353705357922757969307166049044835604484262526853007929271481306521525086737265505722544057089772460424520709580992282449071446341336489045499662218560728036582518442656636785947787450748810940384374381590491863918457871961618592277616275882308256544681354079668975484976493549894572037828319632269043619803196821137893477497225848835729548935108996911105894607591952013613899084101447850912926443088212435650545601352868155546130171700919379744912746016339004402685194395629196513862018252486756715922533183428917727705046695288615489633510820163360631978724516834188954834687942279012253732402834736429646552408979652966593118345789210039915925758789068884413518489826571836174905051646790379245736921391766212512435311926352515558055065883919576047146441931366224262613448960054192569410314479012135153802325396169842194507942961791943372915903997591652224386223857629056482746645670093876624280659488453945630096592024658239700320054272482199604218332162881583976369082666655113791960592414765970207168950029422561256414713444463285141185380394062644350050093182191567593417996463931009494412390403353635849000996041811768008305709289886035723741308924153774897745505812907852134921765072095941361806833454692264159273146197835450287092563438399094902416328294517888521678222153089260132607473785878848474219341339788868484282915618316622063175188764874806157682223649339471869484445402391136876479362921679286602150470518826006282785987870822791433852808829984028604306655513964214167671723515026688678728233427375558086053044876540327337526644479789601917155530783438034571544891034480308678280101947418082527642533155763638673436712041778881963925368528817731134935373228305985622101531170152632099749422317518497122283449384155427873193401355062330647147343550989559002634446053995619425405832698080896053453304221943553643723407411054654884886041412822957610111197021642496099477246597296300131820152886126316688204664589328730317347104417204050808116654880237200016951182218795386653408991366578049773257528559428502917536213082218787926550095722313840568854343907095845757119515557105312280945406055286957391347251967513350495918758111795192709461137660588758426891034011692199046090241921627846693427922744563771485867928964910752999383733648642167774580441022317149152145630564432395003628578558041043721241342653671681477758826749531670746689871103450908794953979034211700684087625286545198948788479830574804602491621066571689136281702301835115991874681865267915017449253184271375003069711551428730193184339529252659586085117298306851392542840550839488167852368742276719860953413374065464254986728596391267010787258657297125435527833440171710290216858852127291379752509601068746066236272720759538598186750574104063610254004152186054206719550068438327863780046120165671479449857935435919668833149808943719048237802604717108217099871524838297462710626070775476161792808862827426565247922052395817584485577933093346283151582805681046760886270917410412740607585154500003324404015169848610254295418609357604606838527744908536090891201233895961913468151336108666390944065569949968187976888056076285957937948428586010926806636730347047252165308678788361266418761636453335524326543051894737590158386219366121771581104381970238747824314350941159121492099371672307465487218258512692880843979622302506118453969906806025835010647136960411443240919097406778020283977623307173613572328925895440263547519547228565262866495887683463432727215856567492465003664274985740229960226463900957859181141050832893837894828336881105903132544567289059811574638579842261133252634188711485671064063794450739354058247431081372302408034570204759920768642722402572384579366544027305537717494386702288196902777881986538020492467368402028410658224520669070270829775708693496201158034648360792110398491610353395593308030514005804920364769488810073279112477675624212095987689630122241349524541494218465864280410302702232499152658310737799447597091573618104620044572310602322854610319398931751849625597942737664807130048802270274783735487848673580421648780047196155470386778359003095082484865118075822367991353100862082454891361860230226870200686000115645124610503079987699454486892192359274659745007026790822793215796831632948617263410378411269853669479019860985279274668011622514587471366022265143275241508635247010501219359915982477984849360232288255216730062632540520002676176534693669427287994607787519767199905733524607098918274864732341284849940633958977987780268718980791072841636212729936853601722788074390096694039524047762310050803301238359897603873955427059576707725452222436892678096369755718058466730889469832649108521275686783808966517674937532992420354414718762670281343188078513952812785991937587284198302410266844678820640614024470829950408272284835611875751412533403934762279834720355032908278217350740746567749920341486396394104786162946980579822153358397606560401088474485040342808723611816233076804250381848320178302129354671788048179189757281922984469986702052473620378524748671587299199498347731173559212663348573786024134179509662650467212122006629126597992346517514621336494559228549819689322614957912483819636822162673693020270559786579517592289313753762799668274134232852404146474244044102468427145611807918433350073244481890316454939857559260985439540086398885657926936166639655098505420618112291428962632874509398085417066515844420892697207990077576541460836596431178198547318060263250429312278016156274432526176075019816708799692360943923402339929984344063974295963104128247285368370049575892541053566233613144415381239257495385690068827248968292075727528804089345235341942934602352522305357745250181939736974811011384554496596771740253756357065192808021688430532580665477397142032306029210898536783633804593097590010876938917876117378359431638873636892398990416423027424616338243234346388762443124836604490132256472675895404568300859834052874503208075075420193724690594754149997652210453256636681100582498776475629411441166644740301855635447232213755943550628103289551420993948819623919150125881813873413308214570488990591646209050295014988813411165204371079911245340115918745429900562398054097922390380787781634902317078531540765614015884579523296367257209652764802219455128147967599587157045326464603522433616819201065469168531951582854055468759235177432331348453633423619208882227583543109078385875256351378663913820739547700659143025603330770074997706158237044699480949794020134940686385948787414330719636758214547364586735822523404525685318645170218649534275791596679140722463383223177895814845586448556605251484670000066272570079376025941719817445752393001069392600233750071243909727122925019380004306598727889479247665806618000024993235404360458743036328077877305644300699715895884107934983153352822431595558775380988619141849008644700539419061122468651860307875777542166891752985317198301709516457047680178480096441078939322715604264423797308583190907127730316009223885667015636939008730009799519319142259059195188191388222027968391700269464467274058246543743383921743297142715522111368139633742154136263265764419867515323102887963894854523383060421938276070709735924513022259739668960621296753270966906581851198491112786437721179710278166375523885200379463339958301254454621578297960174223556314699787885222041275920089714263945114878881566684183220304503513584052008563638001635469294359827571194491150730973387206608216022617514812222594452231482330889523560315183665596991576328297061134556774265949680037954526954981338922511942888229031452533187302051405098509019510750425362098772546334408491882293166720736024109230660442005531954906648872412045643865585078122879224134226070219664059401514466409296844565509146394457978597483397930930697408297582376988281437008274365451164621694953435148469693665252630659455167236102168457097504425726364580032693617174783154112052448310037365041019378086145184345834207646926312816746456778684517614377975756164298621640382415600474754157645260084725670213396049146560264069585213503153883972293860861799917940436382313349684339790243953903064293587093154745311693835395435760188117811916360682576802418792075393375572168758655470708214963201991318621796239152785670974267483056609621045137712396903085733709450042250655512450017869885371189793518309932919361967205460677305381433541505874513977369276061787328315376177897394467751252491191119585239253411915768898529336530022621115305977640747178539561454319502693867658964164071511119851374211629590861686226012593479984899265740995595296595060422644262545929688303013590459678533673659494493010598912216080562176056807234718126494249414118306193049364130051183760475114537542711890656816726932524566201909338294564647413168015051604964548511041565260197804783080618545723871925923571883336530914833028069287237398689019678216820454876996221403021531722181845849300012711349197455657018708162406057805431108671607963643534102697992534111753474590165096129022527083781231610407363238215543695109936924474716903280103826216040595468624131226134917159918629358941824627025894760923927950980916406306437518155751459984271776937534056259039413466681750531663063417666789471136794055560592352663761939699991661392355483682722415469613315634261638482949319645264175432240312305431852151896974022020270436976300211549071415177155285260920333108411850455493004480756073455026168580321988764452135727344673948301602194910183079992281692564425499637917445851798792170743111369213451158994470408490984262690521395130524964331755136878259024141469715604223750669193616633123108871867639504324027748344438965284586009662248372773371568922310479247608637539345425535988998721546981414228730226281256772286991555626936694927286067139866150289388373724155647146640779270224534394732224659156134034696840802791326454204348074573497918842339659857343460948316577816831550759744878684471945755366648097764047244083909792553270318208697045413368815917060242231227812301020856176035443358629427738881825633179423535258308692888012542953980781642640960847438243554190207443976043946977230227133633104580771082960129173697244465625070500433946258007215872910506157735393714947156898690142618568909875691288159097913877122894289832614329843864759774254316945359290710047076173214415971837290089216055069296461946454791818325268879884847590499609476324453256379781205295681878432649705217420434586446285342864827013344989681027425948174741800686099841415972052208835100962930263829749864649243242686692643209348849656839418119026313498326381318828832554900660348883520639346575197218909506732664186571185311152406009229755054670867427792584488363996537319954084044161085679663949694993006625380568132707138234090332165268027076318894961749002207703597954654215096868939608705687283083770134733272236087322827049478299835510762719799609881087602357758162778448255446313340045061475105525873977687168064357678107091353671473309668981146688345828386023843248488500664710713074321699022317377572862980865123706822434985147317295661205459310958639617643568728254042580447764103616765543003838990476584705877897290401841287767798390974838666379861184511864952498033502299122552219648265603921558442815273265404310345533786707786413074749171937155412203499724946129957341448022341274169759730559502368966234468441309913143281484222636037177075514953856437018366396840664699436568253693921494354496158284040096328115598242046400592925036036597310699426672577491475715406409088145084378552164908978902042727590943609276376884224586182464195012701950270620731442982044595877447959410617326358115089687481922073460747437054103155048791047690151963016464812895436925295225528205242301411128638347979168479178471460539705589107811255838592796464944016822320766138040097421678315443661214045387106740771669453883736505317640135209790742274491515409507176426591091507811579459641306712291417842363485018007404034817468766674274457662546514619283583454277869109941919655894398725672026638199152395600979371033574570285085028540523732321991338406609852691095042968655226820855959379872719751230988575731601143160346497065629305713072265669613781530307208445365459642037086317118016882103226665696987700987673681095106135108995613537554579725745893401035001007539091578830747848633474875437971525387978940287322739766248094370876595458941736342304583074110314478314187136696331330791893195380822215402216067320289047174075552023422550054696617008744572587533233394412784535651326211483010389058187855321732457248589472224211241982300173852170750024129871711563534413056620454612597449057650815046180655950092493884650099818956549211166349192771031612415189871484766110944647565386103786499668416766662746411047780779821327136348315821154756544239477123167933959354889214193812610267436817587487088836167001122558679325904445973301175526254108351050237910386843368134528319254693011371307061540915549833318041509924218756942484496731210391417914266271372107303249588128557747372344038840870540594639550017309274157018610590539225662877560651335603277509285859775873230479681702655878135059606840358073854674840737739256191241542555613877847383039366862617520559264298627176464602408669233455503231619201050870646414099146144637669178345972156439760411780681881055947240747287665733234784751836687378910327782936049407930344254252931656885971528216770174678598983308257192012821769878071076287574882391720700814964794072599258935303048913416597782020165366700186452840240407916472691141233301293645719067719103856264730162540211769667113997106656405228460503521064824728386376725205427511152598405417435618761495620258680738076204685307995618974294286893089206602462545912278030345066144775866381411306959207781542551854633507056220708546979237974841676855083008457215599902307877444455402736806018307998558141774316252741430555307036394333640427898235957673696889840956580540635842069271910567347062274211732994722846109150139076243548838589900505848632962063188288587638776844189745873982990495524348214310261962923661167371598268288077949659515408108010767703455731062627915653929340326369445238082861081522555027142231877594364155328879203213159752693535089887332426771619637392006522627593268965766130261093560416215032014391214074810706918949072706952607491523525923991858038789214469373750268692918753172781753156546399835461426193149400116171603039233299231469672520186264620169715873941359470050966918218566568989520523684137933088552217646289177489974209755340404513750323069247488996557638946809187761175365608949343452013545225331035855002769023741702897420721728023269856115172017373750515200160568077650210060231738768770287690120759893219768589913185567525507100908556079020723980837398162513124020674878801656200773924524720028854585546177682243414050781837951944663141531550035485398025918320332051299675296440753743698133091165735071479168745834573476934186074400876116752600809758359361053002460510912015667626803546427952575712191588514984858151325400852854252381101799201629645026345686208755556559639910636607836857138085164990079063402337763240169674339387757033653194139993466086782666677027341254235921024161371418825434464325946038866938521302721426787677782875221265580626902819013724882635633595320374263798978091765632303280541173604794203452525249013271856474137414663595382785568807880286069549345322383998416367101180265446034604887146529418691228326657067770103103005700058687593132377364692432337353532870714128683321888319342087048688350224260036605698709563837978396385225030674909759661042356436477929077457085165088091129569861768827122381724271661367404085717590191602364305061650590753975378763308077498203679853898524470411256089342036213928414510981310272606787264879407442169528390822477118996593760670506215286519289005921813779315287420678403584461753092146241258511140907493805332842928979732714007184329852037989382644017126162196848165858704200660226228688473131632498550753138455105426226160753689248956196170084777826382327193109338971749575202270617074273449950402461647066187593115042324806027559486553866135383337039556624742477304828506723142749750989494398099014733424002445360891939042443915373802732455660712536738455787679179981019131632908702220624491205871552987031840086303423939569082643716826516669694886462329910164083825500948076715332566582403410801171505298661627820998081235815467572681186671955820686724101575434886010381491561563206000145319303730417879745036295654034375834709873502019619405160557499463873079222414692997884548155161569916713305991108736583022195412929317621115664131023444173354399052930869499371070637139979931255252798255747284841214590391501681949057033418825215337194865066346819940386912643525656823940268581866667478766798369322229342013339302297825449395933784163000032804540065101284445810703975224669714574396590246639613261241000982619500274356840716695785538312838694109464922395323473476475658072697774836222237218710792119166546147552337177363081256221839022880787497422369071043779512603044166738662243379487089823559286998367780975079989784464304721223030042709003532375221815363173658955117175737083840054543869705064140974156063716101163196899442574443393101033545268746329512633123859312529876133536928601307639080622426954293854909329891749666297811875842743377189786955546188476140531844338445355261463599230464407121296950038785955936812098759117550192969492225931135759032262774382208222321036633563073330869103303774529316865940254773898458971591517111019604947457412293651569956864502051395485157489392744912397921811154458346815182321130793591071681069481114762632171498425685817324497865389903435692987886238509369639604725082526173667838714163218658544478539321739615719208906232922279302737032307347368811639620979207063716375659590535896265632527136438706357884636219209193619554704792210166718691209793237324347868474418200433368852730257212439593315279681926904527445300275545897770158790771572868420997383407666616941253495724130951693113149583474810831582581367824966788995562345699353309705254329380157707326017272101708194012547323499158909290900128253072666932187377868622166849292458301983419990015948824981895526136442319069146433071707858680377417636407157586707239045069996104286197755724611572975112575835906262742613705683416159596721895990943561166775032760308519597673824893631268714138020648973574883736774926294095292930994304001192056259519848796358537862548200350781042297547082774655897337898623459062196790695608720440475811366529864600748791110399667875145406205390047623506679263547200173491677889121636415031374975327510084609170234679483441246685335689490937627597281295028853542065006601827966561207621405908914322858836888973457227253161522709114981085007392861383209044371049627590822469581201640813552402456269199791164914447818203751062078723124909764712317294892167618329512119275005244015036766080728728553289449048155045007557925296734794079847157699604006108895073739788839172970954992087197819204767954381543243062210275881238974698764490673284651240231803726061425331023294250383369511862763924766842599554963928022744696913233163483279496159382553084029397761412453385241599638277867253964562740496800755697039408674523551968269471315968484286840415829945891620645460923621207392755152242022977600263862889161971456486983802257815500815921771885922393755062645296563719239270039860179238836652993637275903550691068293375348253015650581368862705611002490184582867258317360092068061619546271207161273503383594909253467275336597418373943490929434336077679341038052616723961613437618462389764081200676417327807531815349172939380219571366387862313228069983819223733104288507154794490010578972012542431800136486107503491230317538624066708727319696814140908769789453664471845993922701727691963023119098054098456242850638326858275132742982484842505153585868792167087733777150707113512969250644927284089847161169491868187097740971903545104592563328767807120662391803889953197233212638268318653420602271294254093931857536102303018732882104076940545165416026569303220745763577563728917509629246797936063740846236345911437412204858264489117815545257147392453338429839980211411429059178722491534622984436813213160708628996961560100499668368283582660660909896682439137137029727661509043676026023668249345796875850700535845806108780869688205640952217013465369531964810327732774753794926455189023506805074061811651477125421639539771755602021838819332139274257805868898690699505689729755670054998821159433569288584582531974459783021035878476579858114901736912270923530569323126078114500796605856035425706082304361336783191125360062419389319739077555354707518731439259700986124952930522039034474264047945352006370630116358583658490362956902205136702338036544627400147342298135360303005491924695148515872258537338234063931714806280819820253425132945200219013255935447665068722090784392203435973044502201577808049344226886612478703435872284751522168719407529050775060703211852142321155319782507430614027830277649885853966175625741607727707792239194088656522007445669701970338647963672036519141181896179023531535511944723516598530929145390002636368712007392894293064942253123547173269241568021658820664831194159112492528234879528867210062029001743550056008985946104176701634400936809897664834622824572702367683658109996742366712030734237460067760157546735653065636282439804743459213212467583833303628487037189226541895421908691455808307884732230851093100185629451773173019435883888225222703009614620069946397987579903964796726680427426070072330834980878051205871046777069842087316880738876321610260914085805855655272416369732578017274768339882337931285822166448553342934613518069244340545131001562649126182372331316597194185019211279965836763474614146352488870915772867894065093923565792964672064615094308637093962427182730854982335143567204476145711958117995557348771644432970789702133744405887680331679676405118250139722072400141520516874110074826228042185691820591364580238660112309413536439810682988265984835937314742848144042707500276961712625329848542872271446235040613485188232491503787970068442223178344242371864994343617372259124685617761493487367277867230563828457302798696457154593316751501012998364419916313197209993001117562414848775457123379690391437335250052084735079301629101696220182002657647524528141878050879906042113875909879269583347782917558795293214149622653396910825173590030530981539251804913251464455840058577449985491617845326843787157632097157479126411128926077547294036477271630471371745546325756657181092543064662526360804941919755711599814830492841911242745918841788576545532232977391596131309811926208321194101452136975878778423122251276573134014882986051940112051407961504846188995606091650380683146119468166622353983019876102189182911687654324683143695999969246210155429904559151937595954777046421846580429871385690983148366000685074087082094753788191492864787302954706114156025350913384763677555455387047124398386665310777038442719257696773802634151197487770862524968818600357824987429729717809467266265606591652421319465994942728473286974358179511821828861763566755309640522025806773612312152979435598538410056569298574064729617256923208466842842620435089031644192340838878131642254113582411846245318444654607242767489393363146528181058268686722137024003185322760667733581533844311586266796793716964935425767362654200527844062291141715746885849482129425321487121173923239047502477116194106411047930157207686587522450042881382004569013052314448007424617123384745839948388516790575397387266010900314998199438857082757735382269844161086018051280694697109819300730971389811656848537020575721633459662751353883115009812726036699797569177366484258849020529310887392874017653646275730725588185252709130809874523455938800012744412256204036518283650817699591389886381813173226314295275463088490612514468050597552811858615433088762365471141597452228297528962406259008767104345542656913373206158149342255130310437238949733760017579619457410037133963132293209946515848469036816095752778588136484803217517065408543566774066614829821126146422743620132987926953233241210022895201543082122557194332494488006579770686412696448120278315116430574979376123506850083918366508091750749670911148077897898668276582290590109627011119802715500815392634170319196587781432440023948952936157174041160521871822875315495889422402198466487794065964629642254301165192186842651600496999916472007470922827467240135078204846481750320899451977351418417898785566128537983412160830835035300624929581365890444179606158185382684992464740983082924138987404748356521941250114885890539713965227463642055058588008530753306480675514380968508769116958892309203642318596592195858493424185819953685597803899065371854001487898154284182603176575407432438609129132798080508992763645665017076542815074280853323831833781515039733699927783942844313996357891117485884292858236943052828535815115654329539795774634359258658289672959661873761566281172520831524048787480185092040454775412930311050627801877619365248684408892154347850585416863230022887891383265317402083736226582995764585438983548942698412048257603203474543025997914337111314599206749441236281924741365081722278238941466758401776306183507105584557343198321168429287983286600849263269111376609689913601582072098285310303343278047523546650012934499156252239482061323232675099278534623981354611372380598781240591929113436283147423874368293188149521072145993701876921907132164707626310139996903771181074259790422964772339852812169533726424936487610646600148230132816445605421626029820748389823543898797655433023763915737378845534140833192685385845795315464235954249135544058889500605969621582273893358932716123127488605065039451941568460309597771901642472745419586056033138344708416793331826038177546245431929174455110605166378113383063587683583083691145319732163188088514869790619595875682419254719128170408978749164847829473365159274647354314565418320989349691237801198958776296810645102490637925840157296767167239503388646599784006884376443558352248134510688499079706523373433808592015023285028979400224663141685679113138168683371179662790632570387393807015143177849137462669928312778366552316639118051215259339785312802717261993632207144497349870387007973417774826939220734047608278898287644569565957458433333988244428751682279000726961620774239523991419783615388347703852127131860859721174585212280447096330420301719241948618406234785790877112144824929642695385681078663216367995914081073344820491838602613785171409210414954854390318653684130254221591500899049206827046310088498017606590054716061670854350380209300155234936695503914398106338425993205095932173570716457328961175027788207018046496809207968775575931779654406436721969781050939548845478214969005212645912846268489874023445986549948162181693788213479195256385737425975806469898252817055484905718496542995657562272227981300904410020069858109109510607682704152821617440484945475585210315564186614410035064646950792661045286717714913354764697636957514123103849368851691115109409728606298797495259836583703786556662623451203431020317468564183394798431408758085089438356468279385462757166308752445589811875914512516320219838001664275255019552345944883643484411477003361116897742620124196220664772865961887039143961922194497254750111437724863322301993280666251305998755848983561835057063858543092002512916385770813153413795008817399523986551700227627897417529757193256990599842256382168594487896519504456599038889854657090706187919927070580969605116721912050711258904737613144487456954294584540925510283892985758141739780910017764810436968248467361084934153147411239913879258611176415775168133278786066048098661065199475219986600790808955347184790629348926605819712973899751271058415892536191372797155203072001984485465467403458471279067617387692257389973705565026356978645643578298995437326844418731524029774247421509765137279302197197910985087884030960795045543397428445553898542815194574778158045699439820309024709459222707823727003121051910569872264610485555281254473545176260534752713724444849311085641204062303379434960732331359803192850180897405220696849135618315795767956802158656074933139692925498879652468424785860395790870679155744084364563309040809226866887594952624765104161535764371343161788733438571477890763061606397996444518224289731899710320258872065099660968453797277217883045175292259188944814614852199350632988324594756394684183624599547946481041020396766114098777239815528725175188899440340114753072568571908852599612883725075001748495280108643057289017543319574318452879851598464758529590414995567870844402965152538752635525483216113158539930624021372062801201755818229676488913181738842592952795656992648981769428165299129705267724947615850426040428482532719148730064228862157855279117884297053191673902306800085664803263335849307065736381484150079514825421559456509728408377788972706122154868349882206019854071114515989677123941501671461013603590519192075811937949533306672363334565024220028882432270537476084240649668578950918588830094328526193741735736760026991540843467178675515228782364591359916405384982823533448446644139675692618320061670853011025090270130239030892786148922124095818028600400717715548248016905106941990398223320515002209857522263943708720825297087400763956441254691318937551238659924649579106389925457856376732215823748418960610944299956715537811774932652435276544830668518732710029765498868488492425567008237429956094670449776225464274364653569279918904257912031635496609202013895758659574910023630038871351422966063933214640024839614252520180811104079062229685417106052591487528450328376642801155390268245289679479622213334553770493952992872046917118603293887102101547739134515250516990261784657965140129634323979703917102471461640837079294232539886945595828355326277209142836701850962787076565593737215394784268682366166295186405990452040512169415335210278181334337242818462466902158163537466060863246771694751490671687485425208646273301676112066428718630692770391444967775407794293772443912600480991157878865074765463469364801669748154825648367283213698577498451497042889098046305146999579804948473041094513506302212551704305888985490911040651888218813913009879134801558357028282647507162554793484640882881111360815641649348718542880374901898089691461126317875649891060067130698955446790312977778680255720095944844777167168002084577243577701017563602203468134397874989373248221994783182815318244703219705613581596913153422913648919467505449275347710189048109585136921481352994383565479701864565691257576117448507700270847577780882757178322909266550215096991498507515801505150111177572277834760662919162437594656091928051835163969874766608158346971092133953600810339895476088706619229155858356902096595213019114290859036993639456933539144813643993451904384660528123960201701765995726035202164610492901918497852069268432472903778809903120141952691971225658311093495488404895674946157014117128485377562819863431858699135641557642775528922306046440207079665303377497803554410635146088330655556395101425361243018857152092803267729926909086993137895871715502131534542356682081103341934635746599398347531931482866315382307076239724120091673076683504410849361789071269840448545919352361564915257277152563746229669663341129492610615595364981366304266556836068579980148357273549190329590805322221302714138819328398126286210718663019418677008602509723085275800134540443797154437501505949347043292438426514150569620685327376775992292171491835190921103035945061362861211018982789630282765008263550317834311620665661592366910478568245330535830136211197352983019421765666237563976679496148077445049763601438530413531411332135103606240680305994436436614669892633907410482858628723790646425708869123609502110846640552942199516210684076133616040545520066787473810986353146528478223182467536734931913123341187194421899578484483131393616501875236785857032145523374439869365360710388271920034919774128322705620797181697227447316435341974698885651566307217192297676723320880872277009856644058361073649697998850026918211466143702735120132753174976696703326142283202820216389299136090881762495350145143685385173077825049360844496366914187930999362284077052780583197716367702192147394821452176367608803176146146294430043413691689009941910768533147367019987839870502652460337766204153940896593850690600110955702284533803870432595432571827215007050667815237965319285583934740073718560526515875533095309546014760393155389743973288629961055540687312989644487475356133406723364304132858438744822096401090055540995752844217793062828344483694730333754165400614339642061786401777193427534212460637892807649577492561706083326267271201466873624528359026545708917228174543543838550114346016448682519928042187568424843571019991300085733891296089991723299833546642159329464535910784330906901216200420899494890243463978289286416267537947240612888289336427909846215896640293689498074077613958153876597133879282237754109628019633431157024359573911092187921835055106054813912044769371017821738286359254663552996621289438372925699606335427860585069151675286727803812195590210346986869725813185158473434118116489164987936318858182265116059940795630006245962699542187854103245128608075575833739212631063825543815830754041950272683705892613982950377624191353033754523791765495271219766504718449018711662863103355011473989054700926298380012385431757517361670341175032470384662453636533833127029404563376592405538953602994479242060078762175433988702979368848611716131401847122171963621338549148523018860604424045038341769912849106668653635018755328055281210838029943645003066476015438596940557205654765679458428818521301035748862219899305922888365236646374576185606800868251399980997383697192508101536749300406400461110414102667218281389009630044158156843508887064401933737755595232390033142239939228604870525388737527934988346590333453777081016916371002637735514111469071527890114759400784730831117937040759419137784118208525780613893641691991759301626615033582551966583316177917816267412356125358696287770142019241520932418827233308188684303505708846218197783268427163976713946196757493602138335693664613614308119675904818811568825401558983691776934127078535244750640150485888756671447948325826732561372766006645343103081780238833058326531456226919505872153460175096634026870500561902472808273899341598609946551714654293451880270055351793794345188994098507665320526584929705013877110378400182383605301446239683732187356794100859257395457635616614637162099646288404856806448734778872563729759673820439488857350581953416562584264449342257045413946020091781208815478828425317655062301730188605617526796406979353689407905789887526387449460592907654953168137085798152933727349132681971755824529011205712161932737629565737819121414859447131711449891612586754335082976630512791816127656741203294173422910440003573692934664738753634359271489185596723723652455341611093674301642795019077039867687276833244758801163765347987356068648828437848799408090915829085215842276049318454137515748541396242369971142039880685243307042327100383708718141912859299442461440737731933213419724075174569192641936022975602411996360020959094596594880613396168404409721641325916522918707017302366998836389169385492013532903496523917314932305489151462007407924042221846000344225127348046362836162899300917380159895078689384079426926342979043112857609472255267234954442555240065776192028404336563331706544198345374892448369545485987512855068217246522840967045564698317594334751439872614047476166955980679953268655690714372585495680058435002745281395915704447018524473111863163290692805106163592438341318788562684126875713602255106538093479723450032133957682970251342381881300842206801755684107264219690605210338290578711352728959695046734147715441034126654821829780823532833167397973702923370978572595316310703271091929458478318741737369761016389051044605783265391800821675188608656258916188614413362368525817189960754721198847775788481227430091649559437876523015400518085974006736040082806902956814763347813710926218271869793156051629113327837054649451295736962358909648893515814189327566585994634093288012497431810234636306500515753380844120400547880289535415680652754110678596247633325611561131407130940660496747728643519116989261308226184900214409597576886457189510520283081710015885433896457656096483230228620280624826963938356420923313859141250021158928107875290629624062796319617072954458774935641889538849203014087859291434216171854548457083368344357292875718957003189106240488317420632194546826959299112400725272405798912642371071230360672600150483277884441496674065975637079979995556241860252196808903197657530383984214922835824171373652937949242543122954950327756866502367282695941531349237569882961450484986906998706233579830776873200227494246235293007409082373622654776036266033065704853320125446690567615758977235736311827869887747860955457640141209426583470689278231702457808518230800417771118446959927094898904924328455217445890395738102700391403328092258857275952188945378453885792190802700179565128978392497773047695723557598260497345687342712171343221468588290724874597059198199166716850517484945981151405045749152684512115331309245693180450381994851471732394471744965599145133265196726236951931807223152355201325457222004916249610269400128471873661039987449457364237237851057024347814009278001249914586516936537728424279226094293888265723513720813194672482948841968332774108446866382939193077153222381052818486993413026673524783902902446821480538788913047133264936269658216216303027457448341911094531544548945804407021231337621936240564648105406367219412313483886991780353852063254406983943013051973301214247512087571021786946731215705776982081726906544300551012157358364571561164973136651575542442465530417513842448411507456641550243441788749110857928519458249347516924711890409762528100076221899529686329724519123690731942018427517157896637477683897101395486965938648213642870472188886987154557403876704270548149762321188828230067792107608001306608828713552938953336955331254907922611214328852486362456742200488705101848409839178841330940094386606569442872393762411501631195602106614664365109242246052091237042651491959784907903193835908427716945062183931126240585121321726597717071272210630206298630331878096975780166640076703074226890590750111660960678473476276148611384426653032839654584508554514746120667433242062425520740630889949277532611787796702928815715271625896614252090655205814253683809439510981374381602159728966792603466207222280760756461192908569005611346230446796745128487731904102761472343612475801253662283950411113848425120076279233915575951551238217030294298762395985403614070976379286024869149481648316002627551209696609600441002317981213646183392969163797865817095966781724170014472704111525680598199119878578792342006904177182549778358732559541360517980982547862016403730655470708783636089318177471925005911435101189561331407365372826347929216088477467898605396007927988788111764776304955624645558637491910833231105120505740259503254558035779987342630495275445790450879638794888667787075093729687194724236773659675361679900350926992442450831562643782062372824444304504880907277378073090060850055196649660695608005687926897676694841976500509302808900285027471457832406026358409840807894180740349567327323463584657698808026911815085453635313254781814461162389506333637170454368306955829855381804056640224290339281478472059056406317645817077830690129006536528117439581383117321815015867724420720711197901146910145038186309691984762939356621648445380224977138630443167325986828065436699975500814057923713618502431839976030514483924957922363031701451795265838119957314698155543346846076776841004203140447449180302602395002116619363069701660828984406262815733154472586667988844429671391372068607258668379827561756983865266177637105827803554632812946689165783939818697329819060172744588046732684267535239244257073223699961152471936573482977835378071902217570605810450347447058836447668712682850219904211761824377990275290796967490386633445032667078118474405815432031161046623753975457963495233840206525184830481525245239948804247926914888331714470328723599495283319263357179862132890880005971673508378954539908663174665387216365573477748387237599884010892825449632722590165678555153334958639974313233741575532670941152830545988148391887454600268006372935327292158276784120314951854791062874517914090746388720558810134805139015195026188682917889630775960372157635640172229506067327796464805111921238395827867633588502609102386537936956275774977480816098567380542622273448658671383583445337867714536836150486467760392578562969285793110701574522829233198938426847868342948474525194731077952254212631273681863469563544311480566930654042705520173767574909761033485820563172700223095201399574281236937885288476379216779111637392701113530255539341929895026225505569353196818494405517078209809148991164062679629740747643189058669683242554678633442050393852846964857785394028057663050161274154159207345374309026178986155467664743216752715556102356136548176468749603662634495755064334615200169703352444725619101989438794687777484360888426304511591845579463826854527497842910534777882256627766433523797256118450087115238355991290930514680580918116937547228179037589942574451940178446578655501997736624066215701708692030484923799896066321148845440310066750000476917301869097137912995161486935724825103413663549918970544765233606184168931387973257529367280886204628661393476830646722286006358575432685377372448759112820415815918749225154622626365946457588067649046902091835017300561745385522560485063027388854070624181597120665361789963502456642631042755177396663418717707729590678823692056445319722298050637269613026877767477998607387206230494662165162048942685918331809269241174799864782223733297268872702491902804598939799740067190690747956876626980000520965370439764021113806822591753119110859280270540942398121544045477289391199240365574077781261972280377494321993370999921166685391924791125625317727878678747741502934459178610632620490908388563209236635236001837346642493168907009338196493113635407590421457971360293046357738760689449704756569805802657642807270300366770163380580644565446952979737030281724633486039229626018684592973677997635747737059494611277024696685888834100622271326902514281031206511556500273461638884012899430147695784066160624069967869555813290573386798016341580829103418999809891677310720779898249472909942684146425292478216495149960629054401020140872330643732884017474945098182456258532586876016809435699931846326133216370172178423483840204701536999687536066433694330088076962454194330262430864905388666682886789126484364095229685406947245617522286688349841807308999159009817311891165137907565422835108222902269882764617654329177355205620738697704895625600939489123415397513804936581951953211067687340411865811921048659400246124399030331836644222575821540021598093765725557340626673361918687418569518251143090346972242420687448555583172347382663351426243849305267934427511761356655449161431853476521084622336332641671908602946145121723757904514412395222375725763502589885232617589606835731657251742612303152508103964445864557510279149274904169076865413921262842698138779780491107499610837335376409971594485761480001520135382541895156816575573760268790735641787616828204242426897163404195403541194040752104350966132616716948713283975866596616654381161687182451060399083052173432556744723563079096485307714030417739364080278327627678194717783466636289882930788825212390943767534817359744834340317678381752952904850714636064211479777903106944943294138127164405749484778840703615715009402039421826193158747137898019350091642255757136257855659215605965345435624422144363316374540945716924683250275913867822785399440946871245606558389284969043223434404564463146911942779657855413579412839566247477238601642362377187734849859613242842065662006658575890911667770083606483332905293362511777978695039553222283935399639992520025642160731657960321887668703540586234285132423558890938433628450133075656671168993440687441645768581896058812057847469109003285435954483352546695329138777583380650704926883417810643523151872997256784044452627352537454914855399136529532604019496292527554925268752107568104875035582377660567346139542910667746096705783844356412687497889714403869432747332765531763839466396152017532195537645441728057396550437262035165702213793657017724288826049917486592090863823784292563027480401353424342984739443845071635956547157047178137964695065276456424277472148004656127032139177880012902961499674819891526831753604545400426411180213164136651560067155183914119976464278993803482832350716220818588440450260775917450718638057454070818952940679210323794655396600181954303516918217949340919620131083590358053610611986452620347563650737007928080290837927839152743970291957376963277152641380937748620109305819637945592245558918057050713278062513610038926539193703422818704421507904786994834138303799479395444661390282208866658593188521315699244423126956528777269962922461378709716860280091774287030602708777298187173504862397018974845515428910821327276914268260919251193175293649625123581957523758921624418294673868667026082820383431320389300248967959524145296454837885393286560956777301299274326491550812166297574040481496075858538192423723781736424691541318640695264924016193588416329425719514356253390136863472251627634077642979105348916010088154394589059027512021806795213825984605328565733094881322975728827409476428726825543880145745043565013303340373026468889171772072679668859762125756905336600356933768561487971291401244004381039662036517183080507153257976937849290263105585700497834861171284553602692980715850364941301215620862759653828752036689610538518981647636038499271264782570277026116911419957680345634276120227965850617834914333513697380684863359366434101176480292901040111949754706640996694322690199792133250130969151516766000567609166016946558625075009971100587466984368442607751388430330066969333123289438957618473446987332829615759812429575852624564810254478330947640328461708034844632124799823277628425258673837251770862579785351225450021705139347439248944876321421462657657177503877169824677712765001717152509395330568738746553455880872333262626517699402992984098060645477592365555675135527216909086946374798486078293958390162262649749330945388010916072237142815910901319870124801256322210875288807442825262265562528052579118339012134117409860199363147525982742111044585012532939349140258687533157722048662254467687768216148595159763533793647264090070564194161698036033169081049101377343280222717659414802684628241205953283176792070244914230421092306510971208211299532604805548067510802376761432530941114108912809226383925854677303647610466977669252095210072636416445814851444699095103926223384115505530669157293266717229168641035230718256983484028819462573078550143406550884873024272350442222216057385996670361482082576333752375699287128928685545264016577090994993787314863222825473692338158735317876916420710318383699981634999025012112847831492219705184942293999623595868016072146454844081626219913401938578349241917865016063220877194509163154666069184639296471932921422656537930304967127755859456886126884720802476727108993676759763850477936069774001779921867570476229396487405695625645759582364157287643432972759437329496836316163141689338104487957562889038479580957461169453281899683982265189666619961328911606055581037033794138035796499488112976420973859980566708490135253929796840437173847257093456059671301692001482372298285728988308095397633495750679156100203246732687382116129474534210247358734489090268004664105073379605432361162910985734835301034039999666676281045949002134833689398721537473062490489146975273357208556025676991681078051029402827028827168658593141161910236606652638871882060608508343527945789838079814128761738300419408657966528067610310819149396926744643722488023058577039808715230694019288246535923242153516878775099707879436219651566583533016057580005052327511820209139890856013582811436741886068626059711738707618055814356735708916116525112129936155375448349479409579206146970897290648810284931675673882218543556467791161289263914845625564618072019305497495915645954522540895388449074747878870845321854468845850623485463367455036062973001318047139151895635817006078782043808251406590975348132964068551864246027806514960813815767245376619649877249113918256562961422176288779499574386150890026219774597016311234912463933821508694616422385732283181765267096029238651441971261377673594811590556981295732675344994498051077467399845387499045312924797441046957037421501378900431373209457735991937384340417666773799952049083265446242516497132036335159488591082981930302204191917860244565308810308413755667776161437899111413128698257222852917894698712911736906472107781919784745307532187268672175083015647161569040561488006197979633004616724104028551950810251308711041414780144624530226795170514773027345367403150679224219882886159292060303416993750166889284986984201914820397944628159197498609782999255755458615141899233888934223810111610731378505016034145345114004066798473149442958011404657453078049376650483034470622307035311838798819583333163608662914550694143932057215615568870292730092676188162532385391509274717672302031292062341753092442437572422743082445301646270663249196142174311882452622821785726634160441823127554276299652723108231439405866140448072000043215308708361525222524226612251701349631495495626514477797992247975084893427769870188269142184422898922383130898067834027772746772384104927306272936788260535769787684966759957061804015348341136637993819687796370223407795243739616847292114623605605077503415927087730220626729666653781292508658953695469465502037772921016909333365222852758816737401477848012443329903106035953942034466808702868358405824955494419128883687779715492118933501961554038403739638574638439848827812871837473970737805250338999536525973844886248201043581611080575708555424025746611457594749661434707193572010416041735792396332707926712955459867803363923277806390126430965025531743558585637354743751464424310202331849908902526154140418498101418469887351380711027561040505932645884937481620613166352492394250385053972526695878415077559127089192760116649710280360237232185785049666307777822913063773384110415741933945367140126665093942019637546690453122803944316741786836250120219815185933673097480212716368696654698699264926906926799986434609595446074559955261164401483220107966029945191928755082969588456426419177979689614278429252118958805902057472615677832496597134950285382360571383462414273984215492638587892238997073378177096096930968550237605120152183013496336176399575458044649947518595418106529744265034036726162954957960918957192421888230538704117258609889254105053575408480836107887027256066190458744216963667036379985817916228648131297021403335250735140231088265417625516641487559944385668624875496542107895891241527161869176587928222143146397426050052659413798886372433371603010009248484814280517352973696208462367171503301565736527472100861222474297142138099233431111268433380302058856728351343864989434581760016663098764447609701997523310650280339872472834895795277357695255238500649279828115972737822864178075955962217171307569599906879215471019408240753732485563634243599622391346420284100583153447504800108305414207195956148032406736785433613355840714407053089645064945389477469625111151351267564187651602350779525715423389953780756166791747625207102330665293621004071263216695815345813270855022087628768940958830031603948627903605655678080360371320680683086537840598937429462072637987494443936840577694952207974887306639507125292308858318323454561220515507321280867504239713084998506220247257419613577067928390246249343125314832095558202405606643970499884540399940804235637220748703429972600735684295606762749333372758624279901410507808203190855334816950102851432848670758898322552227000318307593828727385166964112442391521485293696158816960575650219676415235771255584774242071554716488072595114380013933513049553899433485451601116348258343659920459319741126631021524901829891133211042824108395488294082231324092129763512498686412715088298854081544379990936373391955149181067372220585318031344517521354991749233243445579404290237494712665551293366099699991531972591361761563142272586529043291777985573963935703922039057124717673941572106574402989254062958729162021189165399663370499605715408940792893921629048884661253269729410287052501947932447144562862364530516347517075297939920337478129485385782390762857618347930126847854799551097456546716626007485200505958228769418798511143174588223489315204480828476955578830449362600150034728818478287432827862096351143545409542627799409685850293546653460527335777036224417254190772346092672382619449958434511984274281496789092499727379931721312590802247825418641710298087996390219592427763412160594259820308853213858843434868809791345906650072006836725026423324508894539572819654577030431200532775302498291835112361407961340875840956333270335608592050355775355674768350035721589259179471083714654990367261696190425706920672523807930324073165209250366303881716197373884157513403436929474198195974345161270189862104522574790263800340753953569230292715818612457269091712534845874676944041702092923772913329086695428929302419798426911219560398253948773448273087444574941959857306574988275442085472436710516025692636479051840221680616472418493085561582119581832628598071044527604845121544596788908924183964639956606547934097436373631698711913577109908564882845999995261563447544104441358429630161424371702513853034953719370249096928461609489245572874236149150128072174543875639177909881453745490996984954475641113389722708561849932287763341469850233440421424201963361284770944557460417821954693070736796500979055978965923262840177712222479228015566613483171079714508761758271456263641907725681286238668278620845910778553261622497115816057728935496414702137714160823562885172507155916728009085224771501654812337680877438363384181018795513826557859126679959097086705781935759833577489877781507461577627389621075481092930173504858962561544236774477095888203464615859237136065174000876191443607230799066538843417075986779615602484380402483986170236639539117137453488400322485099857678442220680102285821888327209160919093086311160984368494728853607791844277990480457371273982186479561073608000533703143833283124505575893101047222117235419814004433924458453331146881197771283585709822981547478472827737007296037589755989115082949888765719527084123979055777398254387647660645885172609685198505808596031688054906964054592686428794121975485991114664816907746241202570055361508315262537173678135854117715865594182338318169228212424824369138114447700037824286143561678445599797137362150867738795388538295601361899393221153901081547432374907325043276541093528266182148384370321222410587633987411111564462619110805266713531303484016852337624792525931457726304437247296755413495031391679451752837521541409202258975668214272571191456242538992019810820998578726490104937607099642513142687419124430760769252755957092439976476076502607715888107215112197088094756939879382549229944593001599688101134850081245206197022398843884407353091936122829850895435714964577865328791965492715581033515853139789557043379107485953199145087977721803855131389580868638314013036138895710003053846606327112266304124319848085823219636654080442888279871147473330191236873029123256784819778558673944390256631152192946775697944123505252874563708573027662283737683489870215894959474803797169446738186407805552982539054896360024232563744076736765261701865486715820311154705668923853968773303061455506356750064283465242608133038352864533328018139471577905115128443926972754669491546043702783953552957334532557012592396605109549210656205525962059220515554147106731545947579420611132376078408942246636361935150687220432521485138915441853594234675006026996894181971442616184634484098160523848790649100796459267463549320978665347439824680325143970516710212597274253689822258260041364008167590043348377415883697928090436418515384036804941412698605890783806266272956626806428706072294682935174924492948837507344056670265964854449692710036018588847060496772186550230972669709837441991298856666864626743496750328277329333318287006746854606610811974216127191417424062431194075398875385220882950627410161505782561372637100779196143585901090961156180774816672052259604085379982437270410255612465030708929697907257572414236967268978575184829131826570726583336237115059896511812012318752057505191808690275223258353728129344833375951048068859564026373091600536290428017208616344216465211083824238920397672118791231578742915012928626180027606965927226432609942937128765152546439522794632179148058455264692640871343403959500534241702222664540105578459010699329156217830148274976589646016947989651628656174181491961129448497972760053602699071450651291869387363399132951214039624923056781902852101639649239763964816107730045171767678401936884876301981295682969623717645416079284899889532677035757854257888402147892185263760596125795391740738457996731713219456162523109960029158304279556504835133059569773251830668027024056347605686029110121816665506294175305707466502662529575890339271377145741964401271912619977986206623883094942971387103139475741524450870299059772327279705666106797152026976286280171427226732041371611515010777706943121468087622255486625575686978613317425234765581264935174604456002201107003207997766023281454911230888456504791543989742130039538406451740802501610703573589310267061962908598454818068347870648371401360051254995955597324664521329930113242546953137814287880688127648578385459206335472640898864626643838294654763082459647371163460264036464471395209815063464381510048407892313759269639074369064378885624510866660419420636626120344275471332936232494150635378999367511158321006149230572363120840575248811664435753657545010926219076460618887059851649132129978073732145396777058024249996203250827233833119437205629236288460162411367846576371532689078366917032564288326218562097464880890737997195057198798400925460008276871872676845699349055663842261510832635681921478581211664405615929643864505665365369238677105896940948403020934383882400215019709729890675839483987677622012393522804640004399016635880643231392262812801766414532591444678135699191078193916573190132411578248596453799360915073226939785426974899168651593821214290032941150305953006487930015399241167136344316191913708909288021119881564930352953631980534978597961968788828033507971978487813374680940926553730003925744304115940266242144696915669506074115167680690611187198549300591006566330321816735175829657035691665962796535369134102889200104636029641459233098322626131338306923254478339355039066062553083290767892413103140483545857717869667089307987867688909001457070829298359914832647294166949443127861274391705891610041481770719703899674385594431435099337059069660702824502597127325194401935147697802149780675334378023440788892063511820296057874534451435487530565424150601462941985377708183891133633225430802048787789741663301604917614059533179554874680316043180269870770336785309058442775358562467100342235534046854895195356396192532775944805023711044313669280976746236074332498272238819751932459640075628640145688908202990233990350115659432392497337416060420758544940204382536692394049820118322435112003786405182129974994455901085750218908548125971407279044721260974741706200335820738365938732286476786435735889853439908749695183340201090233002339267595921022481925695367255266255909748170517742953115878851900826947924522160457919777641310796402489929425963588102255136737218006429813063176897016587980158261185119035450295217712943502913795233324622446487367289225241768663041898763815685277899828459970153894090712057158266754777316144986015687752965700597982857623058977851748393902749569558011935036986283599808933999149467213976772184828782676737733576011629149218099534854147217067332327259466086324063861262494927549389356164229644365727940850599622345343510278752403138722442240540347333628456178159534414669328412918684156873407938468844164243061252313025641729428268569348487780761332935062488927988608290893282701847755202214236954642186172969031850056001199845871281220063738272066621436792612461693963086840677756570328611422721004675539304041192649552160070460964633171660215041173411955711763936605129024707038862095477869864109746000716715841951748206521181653008267731087043054926381059891691747296985470574169984116546868635943879473084175806134760989597252910185862411427292113394223782507387926082965880715759699451144540746746954617037241944745144231584136429156280096096863679760735906441582428903623141077086098771210740922176200994020034372814739922111740181177612607129501277790282776253373624323403242222884828188547836383030973908379436861840885815907727916477038991974021323267665162322867427664472097611513811185347929554466078539243628225953072638014175592227568829658021486841250149621031886433540287894583500278675308008691292284450254849093864401520848225120330954024280905712756205222719620122984135871227387202612175003080912016754321769187368923917175820770983363608453129706738706683927788481599148623170460192652221553194335368360421233734105602154204751915718347713890699229341014641452742197618094169900512933014679890748568036389109726562920439134340556843433452665753976602792124263376067374366329017811073293200965156255819232368472894559336984830305588772739742981331255797368328882337921745909122267287516354614588410820862399898573064222392811726826702447645209534708239059357286273240473260447546637300316692249478716002833606245212803105880100174354462469278507028219381681993778444860946310073713106698659152376761360115733935022978728140897546328368133107225544549166437399364513292020655152003991323202519236712540275223849791523723070756710517123337284177684476952291184908624546275076436545247823417856507542079237535583929347563054303149482387383624350682603185163959667533873266990281431190335871722841066252894726159845708455452210635594523072645528688025587961723091039676415213886517993124701633583453621505852628201169402007434267247433422439263915448157382802565021785264564884193736061472547884165936073923610720226930016247274858821101640979958249549571586247977322740336592931916026230228930121666064420824721233409276833094205385312509486269282672595315255003848175034816149133178221447245280837898600558900351216487700447878550839647584808573635826761571828776067268875536583684611789744297419786977818925227777713877709913078605262823772455967266328096121876057904556415647210643219005875808304732488313907611221922371906293069836444060686276486753838847990952051694104197835169775941136520270598919292194141300650358880728498733301929327451328723162091360706606850437536724107286754986749601032117607418554928937939757339769127629055305876487885793600336254715911301312944326498850779158929485510088691723543836723990800204975828762247247422565052548291535614697074262119906684681049853443569523345854489497412812765354555570614837343743367594845143106436089063436271447705026579550241699296571568000445251598880562694250998983036365482975862347349352423076630392134309324330873993926639550120602215211115813352045349635967475591703978258033230696091103083891643929275077542372226617312020457312136779747265258605258396873508986815566381781802167694199764742203953284835734343517653705494736992101634939556554579259760291560353603368590100603997116352852409821547980316021740192501727888437213201015967554174527937220063300081472807430765004150605039550117228716689274047392029683704743409236267966120323691837369471483707094921541530889247122594665380968343630144765167805978782895750109741082311581460974245619671590586518045579669232138916897089460667745250912281590075171286074380851085251563400178916573828875675299471570240939660136191214468211941631417477934962683499740027820568212396088463710064259594996001904893707526072253911321951312158142883744219925983325161706948219569948594525137116595526465805007754680082025464347970951314379404409386194527149310617250969941632439816619746704246637944003456474844650956904476450424084023549800347022330812201385388536953983109145042731535176712495296023245088319954867876370830395132507206674206735706128456015969994132212636565096544662148742824155145146141054343822444740683847574365161566463339748929178877360433445665913213912748253128368311489987558000310814232134253104455845231965036778840599534860759371053524050695376758045463142018274268138292970544722597089621366879996289462117632537410392010763428892491492707176925265500653600524008895750964356154480774290675249229881196965384392846417067034980608160358546184497254948404046757953670559809910758025427782600410963896498641263541889133360501672093511133774700430115323988175034761769625978507234097659199327100981139034432549218219347693671969792615559785606895035374141755619927380006617405821542392426458072909969327223988348527436312789421868718236997758381569329493105319504561838013768011482903165186205595839166581972389619979637722617781418226767583885177948487338370906892692237388484617782231835879493096391288541105453746233946682516385221778786835167986865438865435636009706561318808367828157281925146938546640025754660120340679120221295460116797156906539719479041756368811316717679525454686644198069083647943377301642613498019979788861179732379996315002680080164413966102040062955992430432277976442967005535194133073161420403765378033621026365234449339552942272984691275719107125990348375068429204690806992872054367764652920748662837562078701071819863764610178802575529415961049062420516054437223781622856791102504846303668489131874523031590699111623387655214133135514378805235247226842639590253100293514338705572235730111592183183718728342011564336548398897901561667082821986308713148336814764295488846570742853083644234893825091723979210603999082168686336424917070947820765399429981330259428011453477624257442132063953124756867605580024990335464170848303974768364291614295995328889668681025137693578780629796076155077560486220756202679534012047178530632262200859698763976881590851634387874902332372661260520876525175004544494521821668962001028041087959023447654254983368783168890843413132066519048436425221347768984712387827430392942231529593968886457629488466819198560960417702859722938042705678030296771282821067165792550638199561832014356561861820883841552807905753757223067288937199772260347228786456948128196386403232810257619896922032874904379506297212518439376514165048341750888619339646479697627474595595861500391611530665646021639881343085812763789081406575168064765787317225852348323969073077065582811197425132759561171900303424178543574241298594036771056554372990785105311274701336687709328227870180332117347199381479671981627606170004809935921122671364311085184594492491103547529692242615952829846496109513286457158800002481141708252638697961739193523920779893808755116421936180490523222222733889662978957137682843626879682006479912463460119767170879563492047593532263092017005920814452326958110757434763957762483303830424838972205696032413526131980851622734192941079669994878756659178165765103243484662500848081961788896507728075788281917549120814855460331785018879506747865100957067458921544277362590379355906188668371757761183303856168448482568511745214839754756965201371226584331093528480708917641966553360962265228485030558016372748160018352470055471807775722464171038556289777466795328595951767907612052924071749192618273631526068090403826643094750815815919996134820323459009267479261701579638892838831153250239249843643127774293535003480269624144311709953433905014625675522761667907327225952054857158145857404909202453676372913351025668153883906746328968238644456608413306678756201136424518262643039514782007370713453256509646831869315199079018003164502701167524508712121373559600703207680282789600380212792917264591864021934244654169835627357769815218613611680249165126879328647601399542227731348930702755761750594997581383589181079742681731192827301236441955132286506731757806809244193675956190034815692570463248205882625624324928632033656881908354672878499421942959405529122005556749610108954119504455567739384200867727579849467814918004460600696005514424221334977009899863643092202199048348476711881433629712834531147247835286551871541375017644387301279313434823335509101617918003430653770119736964760375034749426284378403035903734943527164002816537805779483001408937033792959726755488105219726504737759765551669747915423119058293675652093772264394361640768624058380574756894965629209822834476367877470962319132372960075264374878906134235230580174577192038546988400915444922778405884665692575999120747510140411244740485758219207235565616096390129832887362684821973158193871678604397345769902613253419309226622498761150597132997645330367286320257499715806561478528578540884974647945841462022385456646517898069763388002675022564278333269993269746758355045985284996224343380923967654617981740502074667450856911473393552325826620189016034012364254520485848495236719498058161675494406714821272951234920620357674280571341074048727221849384220509665492249918054680718820247363447706632769482722728385788377211265841200039573432476470636382886659652067810211430001682956298026472362007639399590887417013885021030884705799599464368120037268087453243695975415848291888267355470894775524383134558585796965466860577673917237858756864137609155622731469476221892274787899721036631130052981611820515829370872422120175690691487861454292023297321652932953061828063226806025080083243207110771149539237943010780298973577943572677770045677388121799360529426732602949059755464955227209463254972120291936555130969708861655139176829885525373801990446186670852599339583790949813743023100932511531995924954062717455294552702646152867519160266635709525825341809217491818513024916869509877846661115898344789291291549994045318765852607324968816403987981483253500216126282112986568349489310431203832359924670680102307154867925084551007627850904487284829001579135602389432551448650625771513663949439910595447015358025670656236530292593757204630823195181937740220442942078662520295197343797859302097469977593484883542325710270993015161473933533669757996429739147180721384645997005535059928294939829090010265979474690752585211784790926464492231709737542417886619622500451139180026739202237339693327307807094962696225975418255374168799774432946426300314140165778994611784348510968403934368272132052380277397915385727495336941304832935082227617553679786118817680731805497439679258915020924159209666808226706775833485072071000504084141322680517397257532425286430800252187896497050472387089815688585356718646859055458962820719987288495610145958811151645329305909224310894119513748180597556980096483390653537481382962557291535227280063701006024512800495570837429640218645518480459500676293674289375019233399245939063576816809013584949027652750883801476239653280405421371170588684560262546706410998919543392906728242113336301113502451396659852544540961985669106062492475241192156721186613382052831976901726306550747980907890181830732535971883844829838180267288268116879632406326305502293788823533236093941419955003365442808973294276173059325664747953820591362603504872290421917540916849664578657321826352970125326353118021977759753174724121325082119229553618949620026164403248156145722297715910912714911832249680991368656158027951670653606384816790210696171263015214407920821724673262191014855461832638088875936132421758690245298720525782263761803663665550866965066537606354289138358719246089698240569293339604326485117520491152038138727427593145178346360641046409774369764454223444433793959009570965946870949478267590184242288409832375988393379395449340305946309151484331839162273286528377049338473958230161805741077393568073972454084127472048775811317264418827224943653831134353284677051593038427248327415328748346817117814016003052654033721190379987870646535815647917804620150959995872996608638025825083996278955709845563642013421160649667035004906741356521391627897847158405615577597175197440799697385925624393885853932089856275042228547614949168253605485536662108631037466056007136797191679838848702255419767283046235431898407009436125196546861373587224001641377449689027464058241068805579061422697755896143140196482280588673729190624339469705256779527252352232964789771774637959774287317439284013737958896536078838518407532205617712593588224629575297205599240189115119309294988105993195136896539497058863652385701052116975527461144749213826897678549380892729989695711056944160783381578284394863782718935410399897732178650729786411338536480183502581302974324204672104218246426776116637915114182708388240720036933908893041885936053887068787098260882892454544207283638256704462350993183783074455850599701227900410091868594220822719758331022671140254381523017469868078947470861209000276876210851576823188771634821340229580506375955915952742610923705673069538640547341840676436507422704844963406336695710827936446416875671840391762728447482694357320467594439115057085943424133492316282149405167984895899874746256667059559473180689427987738183264833217124743135596511582648220056741751735953712472333280624404466925240128539540311142709015691389384881145119184888966917847293975262774527291090150648175194913072268466450667622680292764008167541461313537966714269235886584298290476796277089461048479135603703225582258922423589392074475254051811488521244306586699739949664169120910379762336757774293698630772471761863548157372471624845353572473319100089620936844833058164612985194298110690395902016366301234838521821945263640148689834025656223648058590806023479278078061581879828941444902737472688156690946106094227445883558867596741475720126979991458177612178315004573979511975943005134407748510041309450037318296456883164415853155369154852573342825888139046885650825390300461918749074379622367192316667098883755944029858737932493328875140906206650446896943501202570364263676164967448879966597371391979914843919100555199405780774432263160354945345119118736763181363621634393555850719384016017391644887890496609078367101558056108132653839705068908450977591496444247542522208367748644473831430149466162474381187100698174345299509729661783933951998241988382627218030780502279631611197194627295547822663464884243209132310788516554664199022438921706102907043612839255469660881456795596549857603529407246933075546578937818977746291428133349766960688327574154114155006557682708905687412411375113596311237937009964987602674724894887978409459803515675455976228829010527294702404079077687475947254958136930008871938354985031252909508307236736092584059627550217220305853904130285261416423860565315482731047705557052263877000857298967224124337606637467400911292242500329736423235539490249685835146934496579650472997555134574274117162305323434720197293986220981478105321979075760367223800244040112245713223678894371521474489266501457099560043795312191535485142627685270743919193567768567569186555505981822157734875977331537773629380178811594770830712626227236019969171125141943792454504438190903328563468782677903039243723900556257677640207571434078537067484342004263567524495645912506602186258306417693591247395252115918880440286446744197810267443102189986565306885905217545678318532161957298500401173995699767649866932356663932721464593949577539343837439781394806721642801186029633235048571570580608798972346588761356054054764058354011784247363050098464021273995610492947827262338887334576569549914060536494257493127524292493197527138912371507078043802072909146234258424526375075121030624071234160763688843417288239031235730714731935169358760291786461274894300079632129894733718872801854410067481418870563913894306933581660723023697034533844374345978137346245209037312634900923546788258361458843110573484885575873281418278477649547498982318582630216078046577217233107544256668392802404467235596932026649002555818188912418403378005316098913766702088568460252754947168213290937171837828025099775347067588425830168767704282725010256672583317745012290130663355697364363600346815851563138760498571018292777622759602928165873985292361521019017242423069893977033778271319206853541949409123572254911866068130228526988238666844789080632063106194331321587055637333740396753678463657384329235462742998831125395284939170461116294258796711828380465092328374685987143337841263028798311943071387690498390327194920013820060448128558787352384473458238141997794961196817904614727807115845240996009865617371045287002544397934249553435452016477110204359895948692800152814953670629643806520009236530763066122678288407118332724678231761291958873110914874426868197266477143913958697917768213483640526616890972819333283881428990444829342346351547386148586375040259189577988704324157342394407101047054816939852614435246324172942335866593222559991857795563699165839949206104894911114240631978001678393630809249432162106459239951525092781763917266328811384688359601971177923466409603646726505687291594093731945116817191882163650236419406860054746399680391500415404713148383500806444353397667835317083602196735171058219434024228941078997960620059575360474961408882710029664649209855767683883723258007861883636067907881630969600739788830896149018791821206443123144710730073377624840709245260256175320822134721195228920576413837947176829125074636962267123170774661531178326936321807422361078038054641942176476578270447210777322830898308564144839227243452414778932047303935550885091894211503470667144408208875210893587444382857743673697396154501556907981609928333181132943405572827109591548357644823860479546429596214881878753320605379215627223623524799263544387002389334109038380784577826849184571893892159190987000962659773709299714700242958789599246498068736139821501234042809720213963507762073643382331550390583038928481742542616095805006963375908747922569244668520105172023935503074096539452342679660211951863954030893038711307980290808186566168948365903887060552853529224130320191193157878630113485018729481308436818627690087578307540861937373609823281270430330792967435260128967445994330272451268206030486948832164541544982527036686997580049239120910636311114901439193268462040614555054976982915205285243092119148289120432892660769066069628619109236544927912068911425583524557623785634103610540254462351931973095049710269476227271902569538745950433756696194127712709109106649073118487567516444229002033972847151805380250668051419831059668299893074957420023620505335931729351929893620565419528757047139568289757065476379402466187710009686367169960937316985534442095955320077831915425064863701463434438895245883471035290117083288171029975015285115035918902357471226442913475625424555832571581957322088108294550712940921699056198116770666687862287882764488120244317694373336080159174030561415365848067832751631256939098228859224676566862123519126470090910338740815891221847736713104655624004000526560728073007280980173140223262565302200359651555637731355403845215005246071426360644724245713752496286920980188785535735224478308830233668418213070927046667506438606714271925489686986833718658177260034864407561301387811196725308479622108961723137490218807577837082750938951833854311811105172168359042122902741947050879871744663344907338947323976456350109729518283879658209771918625724945591906065836993908374519925174995443877062608091115097811605522772211911779929421258108551408548529764434173296154645322495367838829177027909243708573917035159294487962498965678611817214085372270341078642100129556542266021032852884330412338467270308404593355577345394679075350345537127644508108029228559674100640832807289661201124583726695172176001882374393388594365490125806804471817322577608672086783969948627637796533813180056566341137374251156433336091938114618053630485228269790397792935281469650631145266386426478587776742438357625345742394344285228703416455243972182313228945612765637184673953057213567809768760211605893318112236480228400263141077779104861159839600990737807512092756223165955766223100332020607965291543705004245421263995392599605710657061034758408326116179331971166006458763166215642574143582622896978502003973987235654016545117600566025675618058454407740508678503480632861979866075119552770321058933399834502966106770277561523149323570805138786745766526954299467783087254913060656802789315632454658514020379036008432950981141412669988370024321219303389448403423584920184215263141298537723609064974643483566994086097441200998490335596621266581152020093800231973913021544159249706820726588493424827130171894022450912511122251906445071880432467873154734228671866029356718605178193921897619828846383367656831251168388313369213604568321462090599683272686898538808949489156574464575669322697301007009362746951893326150788804198820141491415187324324962252409121967559033684211811566908679450694248687491687202288181342105690367196827276166824483445445947197244025905471414279397135735808091601221831821797231677958453141575368168302569903525453125513131048457039656391089483094858807865066652183481335963833262038107857476531246493282415044474575673411902282882787371011809682785242868080469285664205284437458669533404520565608535304739157626016416157452139100266620086856208963015357639326156395213433751706502704101283411446731859530681436454927974488833679051180755326492489651078556068753022158663215991713609993315090821034381051154222868286870634485774646822022816325523442191888449668343555499948554833490713390587010788759719128300159678085279092138321427719794600840303387891265968800458078707823440648203622448488780590692889701956207032820921321349772823375857324684921040668661970761495755558394781169647659396006433333131761470838116036016222081808305790578721634150897655874381455829289617430822612493647329851822627566923365042374491580339859655648923644977377471537873136865472599027024445566697829713106193050058950876301262161206714699011179467748472864513609186469347659038717302095388155494228091574796201879463341112697187853272496576269336296968173676430482187954632960896911365766403506819505920126224959073933706197866912871560895917890712805369852470792354685869263348765165816055435254719503091544883536248064157370077608405395179465665475991230220325700270980159809153016067994044488528578519428627225100035829305779373917074588891271310710891917930140111199396504376862747507876520746716653969724228720034478315270849716259855616131816034611851373635084537814514979424680970718786895166625612065319838328382253711663569422781194465987938407036464122060973941078240804767723503996906939743837909494742166940381120301145821354929175279957621371431639442172699238451013353447290359777716634992381037636597084359879237968231139375404730875910186260462538797415782317620233863791154340064035796400991066742495471369825542173365513218751467807900049792776082677144221750957048498994703708461148201917517240044285062100039631530376385242391371833272840572049221487725379269991079340286860362741254578417254190060607890618924535462747711081455966312591214684583042435505527762550684125253626059024218169551446615101956319276350173121044894401180913406944669730895905732205207836440007809633438246131476642225983312265154656664216560539024512102387825736291194698582148710385030209638304165890453765539854946613780508470091208570040967127963184707190563430861267289207154492339839498386875016775406237757561830027740482929489939418680255962716186831278879708745276274431618932531153968341791162160522366108248021477891137444471008304395993801766410515296157665954895973163699889545921656017286394002245504415019772635531543510607755478425026195781255917155411764714860071953411642672365181478766321955881092212949222415579094626719817126902083421631334304891985718738847262559224782057207307932714696434805627806292170179215662706298819186541060515754504025088799465912487001152902220517152607474114578978492609816468672672431999370690082323985199650330938354514897908588039417575956592171343382855993206385769780139004349008897273432066203805403688201115789031482331892459940266684475978966704254107283576032353689079483888448680595501658572958211377537885779548988603271439199391817906216587857978967630037242180117108822797563739540721789912854478787793060142511562586945800859348188158079267220100630512095749135793095692816093953692056830680475355538638349167931397351686605062836074296820820798197781357977875866305590378105105748134672214125221472285577277321399459408539946464136346746957720602481958760599470320376538164715744921773093375614659687843367855092612205213421326211055074886255909970330950835239091129316960179811049424146695168841767270346104070701177059388326827842466052371983729727172633058760325870349647982455428775456284553023963728623956023508431991946244079013736137624151404584973268479824930160759831270431294779836183257838538330013479873649988441296946936520674842908619221373341277730894849496854180317339125271127305488082283261570364669145718046865967927146383999542579171511264279226179922069662483675872097942004784720280604266594093146509630953297474618929669730308739634492851891504288754854674602363585928506771470602430234581567595670204072601814625873867330172012578101058658229612755442263493104397858491831565758148322938534107060662209992475544549961693672553650114951790297223757754935517253706343734209635833198146323375361406565919838108420724257722470727755711842033248868163754973401100245509757278697539894859327701128241254391380268567939369818404340382524166853337301748582759773984102292568984122179436068949750376399337352675028107303823644088889387431489032121445887452580083100528843043244761091045601212428648748732575859880354198787819142834343249515025267574458062611256608437790441276230911156658042004166691614632373614945256984969425673531789574656878047728628325571883159827979752091288599283462901125314672827445258694885408800110444597514148621454336693167615297265881828983353286753292962718796195658996788063843676351039151654799153744086128438561674926492335849737927977545381823921209280746761967631412282624263252707273242323468905106047844179451050228665030866230917698679520410727408495625167145496478959479659027520531616964127004140278438369433342778716029544462837036703018410167334969305873074306057150521136472590923203321719229093063831832805907802583627834264390034226949280101102113601386789087295521236050054629891244921675224591042180249982463969014629924654583230874436211240094672652621873225705809345471966340183421827094540790532613576591465009859485151195541681226066481724081425503541653400329148399082927381523289370248180793165067839468359527137378201095237933138773598961350633085487810034301183386492963775096229666211965727900758792040880961128842754968371776299249034448970420534947464204313238142260419543949842881720727377414790690910790195143966671668536324593834577200843662635429425513704133246116004972939056023244759574084124893064373248641301650621115131861308283203814549196341764764356489622408647850434121406488244458901069119808975199940277713675576535285279091139976499536862842317086943059432118008225425339474479472055020120453442937199916070661866577336806884997654922650560643222986418420164587053197068182297877879117820645122249275443260813174939177287128905820665066660717925246191908507057325403149269543133946062562338818150043703619196044815967151000834708230413120467040647925478258244550696383446427744808783036558341073880925189543232717839973502096302298915290063393713482798928929427993515365141418674035898855456179330473882743582085532165412078436611659076422667610239181776092407527564871724426385707747969827941563340893909905213329699320643396617326068751541641625526628192674900687162923021669137989367606455056119249212018167297054256474845435253073275509129814416804278605134538874373792368178251375542624689170640350020895812854690451720303258859641921277272315819427277416657769926302435214669126470511928225350323941229066644729435962646007042546102869496648118671251542923058298757273752751987914231204024849729428127402387896525162739162863204927948280850270029236047469193588709330240741883405197125933301384792524549662170060170633945872916858281120887130445372663578272673442649298629373423644915093482038872854030303641316253643621804045940204608162058236263467115497417547450745563723854537238593792767882715067850975569728262748018278950424699450315485428751290738818478850010645601772623929901585316071378533789625810449915225553928047764267717638776592543725965601171100101806981999634140696544815969935774647157968464011660819748759250355422232470210547617553301496184644078579885313704707738753037003793028214650542363617004838542259885735473150307531809796941846603329599454556035787549798695256310829203013838186630860636481980506612508375547750275996177607621117846847130050479581101299443158259699431056931549781480224722371785906145939965079550096360311304151481151086822484305689047046926814660534949797329093364830238643994425187246246100335241945945666071135291200081167007088566860790428320569446818469555682283832962042544356872073093601178350281435612982301720343394164842446475199745924112117539693633294196904206897013613287685685715804806911638299145244181601430555775625288461115383789521412181390015343079798832151593837315824923544338423878631115108066056320197941025766172436790597458712613301873702573125129399755178572155828680577348653366432129580594866623702849300377433696626725456896174726261923410612900288734690404537924324739377363463833602321562059650291180962563531536497622513536439870271606024056562271145079596171347705112195483855831844083528041011513345090022034410999214737165857801216527952077353993861506597180094866533823896250202407271595758166035816933861585391656066348817397322718788091420915944374166083422909099463042938226393542570538915831904617808802274118663648061545469454384190501892162647196936610414523227140280894274646009569127743366804429309744797366719923347227958385145178649180863924676797632747379440431596344194190357660994000677938522573853617287340177581943774736696250660643310052228302922129474687325812843679055972700478452850997383819756059764689870725632732934436211525144066003489642835358427080370910190660997537261194306242965847337579639612337419072153331691935581229290295574503500938510880633821164048917990977052960371800147039577198017319578861188165485305801055575697551686356034476647519163967338102163221409933935420264651638159436095774257056271956275790369812165586365857274687129735359969455764544816448574096129078069292479656344841411495349117418922954578157739873411473067242660650690724182778958659295281218399392161392178737733749970063134813304145715294674287075356212926115097086073157653295853372122723044960001197031797587580665508210983740997282065900637461203379952450564474501578818285407602422996555739672150074353187359427114339712680964519055740401139020478918181416738493581791756687387224603858737931940662511660816532520779283845525987633273683540911831792191412972345806440372012695742268641341673135213312159355969838763385995710291768490819633096615162401804073974365431935753027691999261759553385911457446700104742634182950026262061051627686305523455077095819501580387764029799984345540872670932306705225716786354281739376933223093348842765041341909552718190418656356286667634921153779864890080332778432247608040347043346885807884772608178949472559500553457515623340884783656857430882264587970535817328333432560117365093015271113238057072627679138863542596087137951412138322513501519094555581749712928420388821692414936326452841799858664567055810661073345337453350977797700902301785899560182493410201564214402136631474983126279064335641035220264759682849630763123342952795351773963237940416625229442600472992443132171146889798193265701484316186820089779229963338866737482239084264718755865692178356894426152221743311112610801744034012337036947133206256620620355028616298888965205692698723851256931632517844902401342859156933250989164432450297300273779149905924505884013271149000386588268031558295237990976465810582929579753279164023113816908986397997087497351932806027455072235181389708579343553342212131325804698963137694554765797571287006839186405262492798736116931370320680129605365999883453133998072458260175983408229831033760616485715858374196712165307297339202514770915139471883735094225657831550914039872063032368615821431209361533491506005485043140433118710671522819220919917679329752126232897335346954233546726544923742841545746190577678456582524362789924737024314588428264813548231258258477963091489170876261288665807941864633126415786110790718697138834507553490507339721767817687819423860665228257982773808187272413268825768100338036828098657887050490918599022812621084604132956878032000632804135304464798884207017880000956699130804463126145172019283539121289486301721470230500367119443858223685628291810481746495184104777378870080860634300769481258351967579994485194965330565133720783724503055508143478119630862465350032297080132279862463906343296126345364048451368981049580174182851033331033754652891491626507764498325015750558943601463895329426823483865294577005768644231901212038086646480684777124401393146785772062214416838240218207900911262677262588641943144122709287956503947449335819706447431996140903008919728715657775360293704977510265874514827921587842458270627820497663262175663345695821372180927286539647788963591385853395911264783735583474060448445077804745576997237596287796879313543676333575963473548346732339982378732670069360529618102520402408626305968818269065083901633240597663586764219416826899960600998840342017197368821956349675994830901032215865957680422428447119730842637491662993678652807735970591308156278861452125373656341813621480440014519734375310968563592893876887335268770865229257191016405614883257284049921738703769210101639536094476362135952485062884084563949506829287029414811388734799189679480752421330784522612378672188349671986518294054908394637439204883105546333633176687040756160484521229932273135079792715810285363617523098598999312122698973990928302511505286380807382999269344603813877679749781163111445468475835828988359115840024343361583788442198323866116531669015545122379798333047446080572265582374475022378058053395498734144373673584980214745210264461271053205482146039256343000732148151574068864850774108035787044097657389516173626316197252600102463502462123097391225813530060720679481405082825122906071357957553114610718747426273676355872587495672154844398806566752821518437774101914159659081895317982434229018162954618015141668471672367721228189894012889033841613979567104032353248048566278654359795586817294957826768847183201263291133758466906868429845493025302998549511266007869788757692882648485444203720448466266052627174755965691283584183334073949534267066043458973126752184536944144744164948969851760800922724422539425818991802015393320711620912584838629119681828828791467011559037380128150411633573525565823709023455288336384810301694901913259487239030915775910175272808833729002313214579548937310179295817928472194285906176237870767425389845687561130337954494550671635094963095385304675380432827436012180609093893924903243725222681716069204916723849418761183938329828206673734498567431058671495133236975960673527647213932912673421510281984227831883553438030257575640889502321416688008220350622270163099308903169945336422969092469730196931481119904499248859027228176919201133129592748662541812744996852014629601426832922135290416890124739303317173511007978267502040616928771091260150404840381904020771811958100374869735760238619301271810763160296246719203719577911058311630519722162789174159125215365261933763846021085026969335231176454477641224402341501447486394636251647037618817607190200515023379134857249841462621693007087116237677620025869825259948318501795257182481098503416577089031480495267682775193865706481744639908171079094678685907959253869714019073891119525101075039878850510273936934849404830084728688132032482612139647854792062044929989017965521864373584241099310434869428371601723719105527417519978364844277650074231195791252778086218208944416276577392756529979724743042145940902155496002399748362341975947827571488680374055587108165072378434589831039181056969945128499945151807664302888702696367624982537085948546475715647189237200558860410590030129414463786814099086771286652678427820046051607430685338772427913409477364533179995064474250210188303775958070252901515774235672009138596736822159622223874133357210490080435137234158540367475851687650073388576096795443694315904127739847407125310166497555185992962165828473815796986378681487881617716111498539581908911407644050258398419503771968594726291281190663200080773910948375363354842906522776628551091791983059133333101845267160511152465005274174624552975441141407510802482997579107707091338101143814092661263581025131290996357386783770435086165470615155205422619898261586445714479678260285800368226642521449381043851860087030248780904748447449817625928351601096693306777039264187227924696408964292162463487048268986758894172421160789768047389242862846184681879914912295450506179470248134461895651885494896976537087692082260174641617959169247046473200822266618305622913848915094396255660468565751081785837260808670011139745807061474717821930203658630401011724234146724951094282536876690315255990481912675759845879243025908187139793160512804769276685888395633807827262500159388759306974330826769751357770198120430263469582771587560653037632309623452951835425431225131914605616132874909018423226383538064782335760818267382039367876677753807389775853728578430630233158145609762345327225784397237279003313991004971393489038305992437378442667695356692132013355786557361165262451234306857862646566809277766658644842459122550222169606726814544519181690251949765237120411692845302532476980473420250647497385711084934693736412617913389076796761594841576604957023953609491240625814281391999512624492727277047337681396903190336735074903851783816397495630680892008498955998253105806061985719234286016750810053424177992989939363692137858269497974813353904545025613742327460636737210749011383659401488861059530795345127700964313961289954521782469041281230653363312361273144470115719898352795394819587167667741233501836779856203927939477400509223370840991817038817029622292451675387205949047088499463791964186821015144659768521570335792580578294544161804266203403872686484947711628111392596994409656782880322219556043257531006180693742358342771438468320630054160055067220460228158796294145684866653629035404500739537821999058036980851255093169290178737242742903188506727740019515852447267306433986501489822644326534830062615063620565297152747040686067882408339162417928805280990730717224526033870180232783100314110127858058367386011740076336391226268449061331224817325789629186016104460332355558910123174116517138349018936389125556206276427261442317058730399307644677901219768218606895550004591235478989104429852509748180280928107267250349491241873849644375368683371416533289000656618771881027945491150694097338143873006455536750601049261984321573330809950045094887397262349113274157456636855930442845017440828068027751726907964028758264401543710040504157998425068315279632443741856451845546939094375452147399763356550983451584154673127972890745596103630528029038747261767155164246834875312697197081677544705298959900820893867410837890595933149150589245017383217444952738025939891134376457884412569094887283854471750618481224319905787351062052369067372600161123037772096845438221285006228530424417085378560972766642776728687688424150513388495374030992884570956992469393565452221880420959537573691301278210877367668551868734487204983811506708763970215268205327763877009874597510438572090709869585924965843047056592442000300662166661860884172134980499971856176231125595838961978753193761957680020491019511634183817216733983826086108066405835069809115496682509126357299491735285250521485773668898858681994130470515261749997482898538937539206593787370725505221522633368542833851051141530662455621729170355132199100368429204676058431486712318029152841093481481936085500030451293932606439988143396493501269533004731541361521001013835303763609414487216055022957769217273173761757008180219868384154732104171908668470441840159441885229015805873565321782031128577027009163476063473577056731044393372186680161047153465988470264510163886148368702219530458623556992272280999948575587575707994045301976572480503938185123413043221795035956622405454381067269692909727105365920443225472249661170119541960165264220048139506827076267927830972503617056872520443505679585106764470863570684163936800648912288611684375216732348065192561411001570793745909062276703379209136911356043341104318732471759310819796872684605407462812939229724915735782926860069346088429109928217454614660091052710851798359786960817207761714785630691159829133313191747507265831064054975344018384886015009181347059787874094152123781649755539586937107614316213527197854995290302195679335928882570313624862212758829515894670886196785426682356087895622148063055726436297263101276290555679598849044213229409268571057354311332697254466555475299080347413806577344271217414801383653408884454820962962511908207735358706493660905894411293067452203705550431336425535873720434880181551661524358961481243846451073719473879721968891168864093843115740928980442544208822172273950768746058142749208492090988473348527015222024150272316479845091954121971506193516574284137518468149848906573426409801706846372233968703835691116788188476371639459056592202197526314295640665251567731017780100021747278655385654020654368730793138021431662001060262800707790487053707506642214353243017811246035091139919879566591981182780739697607994538546906627540727933254234736586195048617040061560328299142616928636204182873901320896377674517696215465167401037094315813888047024046261797114565015551649067078836118775546550573812332049292576142620827147125810019856398487338598831264563880655005843778545968045769697959328317987123217145836321013416997467070838160740985843728128211718382159675054936950872256877157680741641201022383406099361463454068323347287911494981338826817863769328641172516588315960616243405706424230964957920802924746420927407910772400670249250125106620718078802786053381352641944566674504764169349414141155014138877166922294895806656131828044071711295102384393229859810657487715313325883421147030850790793918796406175649655636726281490147392212597041347973297261233542801854638774487218238134105915585636702871833754100246189851575710284971528946045598834216045248173919934863517367868215885879039018680424547950822423788022049369974892429690123293236998297211597383826575574658877741655398092155483343839584085111523322876960250857864336917460027784544842210741008399820184345602167060871558099460502691188440029302834524288097742625087050544881052195480022138093652381622206155159151387907787061223584001285189432651547233361460174091316368158634461242342458455184617284671195434532545669347130861273933899776316282471787727757831704081042547877479298861945094574146592639616607085043599349324601995625062062339196050720379423593456224254352779386992271025785241967577600778038585731678813013532699059635682572883109065970531591905917812784848379958723394907689979608039825109924127067452983920019326200729878236305104204005170228464882599896856034850078149796588723119727760133275722563996249273321063067306060214330078308450864342143110473628367997827120336797219245478263872167626115907656650675352280562342575561898639209119756319909153119906554512628080353418917035406858857103662404868514649748703684976601002421191111663797169534881628721139214182282942623202826542032702878804533722113401785988789850575635059613785803064985754315717804842849911267543710250663589477446637308131083279455386623556779930432383844005887509532762775571291428011430584018729242220982399184508914736713548504867329482212697469856641012562028626212295108102777657828051063793208313457912657901954096451279467720743133992647333546799495759194465212635887840610268748723856976140151090409518178952190052100506330489379552272447830779421731735990781689426400000624322060078309242743251390602704893944288472887273674923439223952786495169886301337214896894606024954136406719225885504189020121460074768138202478781902186229462766803078787150015173892487486049008437812882117831945088935689957956642629309726056678795284342784327251529550798966506154901471645994606167942543332012093219884362719087047978158947750268761034510328279474045363399755610044926125364565372424256011085213107161880218493558206594142655558086221892922931182864818037485764274958147896954957475344617038654800543583586762196352920963441052921208849990017542915480925016210654171604948222548744478316475441145576905132646898311442852653809105667526816926525559390681348911718930910043839276456892548288405205036926789446580927271481603379945036968225306593142905713213591409289862516410143701398500711507448093933981203181349481992679049121860781202316440106580537642776817532150857502680431745071639010631978331710281469436748518861974288164858430692914546673255745601788227107178971080710361128565719490014179375907608208374094862130789883922435978990221495880415636959100491670187428005084507788209989772963710476201072234447648925320263996381789305172761477892946347879076619122706509267329260213040566965495344889459347512557254069358697247893407371610181035687438623174271871884312875484114521069589672604431222010676744077216237792317272417991815358226230720518648334354208723982800388497359556258434507957697045859529215530334745300653744256845005138526235088061115114222489057242163602922653537552562171152737697547954109516133737349081035390320788081328026820884307213378575651532137577142845828887330737309836036979340165419246067500530047630755343857331292841166454258187971503062676376345969801925761553083260856811841401451716976428351320087115728940658666135509117258429079973062745975424086127105165462431974834887886151727025571892735822028372299310101873287788772546803455669545859082304429264901087109316547969298309515471757002279154456154748015927576749295016357256053388210696763429955199963026045660839039488685913390530142359498353198789204021322972049238850956013509527504609959607081820665316829610860995280998909260183832042689935916116769939701979368931889573615995331353095369939982526857188822489094964567735612443708095906125909333671860172793806366894137396410142131787992549788202919122862869871020551981796096870017563294565513977591638129804453903197977361267360431851162893615466732897213687047935816947007046310690384012384712535210972601617420122775785942779630540019040234484094997128027723852084839655647429646995169553574821273832561594877123262828678053398141348082928775304344716784060507579605286613953811261499863368259641110482000630862007029104465834760646177560462526821692857346174529846950978822488362924344417791725715104413727105713401224523063967629147474380132010701964601806612139166283956270304896351722467205202007630001831981407559861227314856744686176795073264464148051216118913440570270444125820910620495517105075111441012021402500863156978337674581521319211220515703537020292065736374122098212096202601708992759804638227095099285371006858619348708908733203507114210924168889202491991890155771533758671201009470082422013359093952105369628176900617619918023715850255256270798577240214055898283822240639565115221880212677634589819311045310109439498859063100823166090140883342311873990081981918658243498750975045801305884407033962000367461133222481487033425915440344557753324223770288726991277393870515929024191250643724270907312165832186876707867236957091107484477764734151240331114965484218021580940579513376916947734892494608399551710412208546453738228290915282254663258576778387435568804097974887011127509960851562035350188084738113425043540033863373501328814421203153847268337404700477191487224944248033708913863618226383758836758094612002915875169265789487064479436022508161758314540684217883935802666809232944350895828602557124839569491216416964430635347402606225314330007266681655648737597757916628665828675295856417578226752744919160522557835343245053540336757199758293708740039706127565972847299903356356301903671881459748378631302864052038269286943627064784483787215756642198872722267917308001522472518986178431695778692763963618180082364227030175534772512284076461386384689447954562380633140201690953072288657326184472874890424939802886911128780312343964349849916691124153807787689769110607752100584203236423079837614931672544083877348589046064836159643685915113345002854609363305422726485820927694619482637770934136449405140507527102211243623290586709566433527761888625992278467859240823289152962416935338902096445346754523834438104056159907415817055406961312303663138375940666315900968841894317342909949118404829523714248873006656623128506133796080978359330580374795630954467042090645896000003021132536244263303776890281811843982557802395589265494907351015668009821862161085650086321243593496862637228165183464877337331549160915907878386490852492803480455647827935773164396626447290593751915514847657053190189985199726448526836864773327901771481175922324646112092289304601905582294459147769572334122909029841117230271299539713468476815182592696573855840115840578905219162972041032801864811092321636581432398137961168712892051527289130782294199020015070735317807981937906614035522448084898610854049283318587230489972514370026126492856205877231235068054151716243732648346464811171385858626423083025659631818184292811992536929612939640691310672390146804783125421127059537346780756834074875727229628565560332498499307191896211936624037661362042574092622884402598852335355054206851269470067056191981974666841286768653597206898828063957943217637511923590658250292624179957706340830883099564376137847989982232362481845604490062817459835055103152293143616832790535392250115817915187934986097677552828462710731822056589359191562778855020382287650681752635478648939435926576132511343051434444719549499593515926227742780309564099943238217519536848184638531826798918715989526529537979285156659440639690176119069904930359461586653668999644189766091480943960238467817819157343087240923098302142280154730640631257865258802277729379450418665953022456682314752552744084750210389338201692589042055923127470748529594477945773106707303995422497465140804907650113153132512067027129676276521941393366046951799566051099187542742852782594721615261343124342118546126973575666497304599143281644926673282153581084611785660451046859017719699684150119117627268976596633452805304764552028955986242670317642530720943413034506795622067505331973124500262815313731200380442397591532931384168027220310706729626269395553333882527511500940595338513119568825980488446964404231805408708677623895915675480296532420270224525268960804881249529532042679406043105335647844920470586842889273366346182991105716549121276842762830094007215459034805971977729531519539119935424191183455050926638378092670951588452406232834423319229467197406643870153341136212895606514243866130648397743793283051957649091795942974525438715346392057894991705226906895676847146398279280497852790887919356905454755029167982293052644564728073698412063014584763808806621411603930446368978385263971336656444554487023092609146181703342172748733543615467451627900855491974262635558157675462364509781520601728171585705369820998095927995818162355693598514654258137680890747091911246112370210459442112968925370991221872802436074980547312157775440494680214209959903660836232946126904309003140990704688563269249966548918821940168848296430660611869421198030519040054930696417826669902533863750289690114892644748970513465783332188579610894137857170106824987031170361800333729028358155492788365813112353735384814406628954247532746210296099835757568798779416612118181309534553420364348735384775186218173935058069883812638616944502505016314360887983461842472852432257173673605012555337848198014088082238166631352173271755210507892432585219984604516015424508464694774349456143087599500538080092468121688025318139666574439590780407327028434963665867766878714473097332449630746960359213528915711987774332013861254117935549896014631743099802330248377262855288269264889475808102212873240901459997451641045634961677529451469617768948681753197495868114075119144728344487638262702740867006806631280042882619095119873276992707279573697005580512756020858727353655364216134894453259613220995509434744729436521907596494787486698041335361099490802719065889832951593107735372106762227633635169761287483485056566233273664974846363531737412313873742099956012764193405522010709138999060783234477013473818631183020642031418068072108371405592130355245421520721058854209620035823776396235720545073168298646356206201465847631308067658008260459548123810265921459400583863809655460495460744949089435498493748524513670344905823824817924851170425733530017791601576609416545476037352498500315722572369682862944253875818287987652556849801418233049121936065647330661570059810837670665680927144356068414969004111352552522808210888326511675781960280875406613449865849734788745320582111398443226786266364695634153370847202268737834201002434478412776495152661854472979807915661755304718953509760651347989807468217241155360009725413142153731227010402574854434108197785784351539568299246347727284336450278084288420030612518533307716369928294418984204490727612243650171762319153580527296099406743586494459214273500598956697435888463948080146443391301153185615735338686760011585818825054328705076194738112600120290236232256321377579564870345087562005433093836039746858093004542323724766990344139232178535259783702521997254466804936729469678646030390948457474943992508112273609471450622769233284954532242583288401568937165326473142777858302669823788659581248139499269965857788238598592240249809796372593007947694057966673574880904025409114995544216233690107919830914909177284552530377628194970317858665990845259517510345226246244692442441501746250257956344007622737217883925158495174614512302354776144445817302800824586814796927950988056118596192284828137251426759674695245936853488482688706379692358289681688974407133172031353924926744055949781245025540901296595916488654383794089202807531387790053995862289933021142755865371248928724491925022260928305635417813756174030947344951294920784898381434401099203564703742176995775983784553276347098352156672263196136570626092483380263147114752520906116043153592580222016992682844913329320844664986527059448008809997683587724956325736728993315400410147581188764557988962249918076281832220116451701152167516802567745874240086440446486874499627368869543073881453461149188363872508973665569947679577033635304712582177880493865519326220084923040411442298192540127277658211782933037747705092098704697737432431583927056087953825343993541967918068249462512693754933160650215937688745217664664146037339571180592793161105765275187695871708843386261106214701784855725377521469167729630507548200413655717413820585626713441922238630231436670499075907157753291723978381748546416691224326860043552381613011128171035939912067514403854519065396140255645295007979155000397892674505265027089232116361886671795755327102380194163834175606442168918070074466118459327633084933815259611257824104963896858032169853303380778567267846876346735458382177407414242550304374829797760328493963005197991980381040610796417722008723814425814556433206904280637194583388725670410455453604308590066283767612060390441756576723073564988948930266402021409301981485239186425608240656319845606910347508876946949715605801262296822207382631242838447838730923574501090271630226602376976121733050578838836915296730985892421600135320597515388048785811152537199294689309634748904929892297753305297179619127050247571191638461775388704162462383112583915345344914019136530387176706127542616317530040952561186032189804579730857278016644475689621923940190263043179566516821591974808377043831648557459819202315232444484098177801531964883353170739976516430125922187300083773010121563561685716302557347704396724966686479152739286957812002555430340746462536274777828446656831438799136063542296068834582368493526339296712847409102843336013722133627901633103935846280357563166681573322744260430216324620554109667275858620409311441296097395290576690918574482212269404196186027814905742345838279627375413258690267285271410984331517765374046458438407756064064550956890110012213936330693933290401247147479872817320083211459521060863586535759622482901745352201097183556015693037544035359096555912954601792074581456710446599679237651385963623295319112115139774971555807639303640854332978635656193074726255979924378743325196274342183819029120993826490615975128249134480613884014787505822196863824775910303384169784448812215889168353753120574338932224260054939961706314887054976256803358290612133099696837739026267535111912034481422580424349615741269307104589358117520112177656647667463413347436600748991289002853066208824732932019624932070830712260533601310054155807604869532297696919803648546774123077454482255479530189873321584013084843338756837305998314504925237837482156968950530396435141887898959354473037806046905601707424215008165494474533079752319716171007307240321468433116753579181189750843749128124700831205274508446211536799780411160282886646710466198601122784603798898517621912592056875322476719607735380913433003284259132833389776374901566584608909800436430853794573311697808970250057696079848963955241110658643300325457806215584757482384871043875839548973822206674237861109351182514974146967163915496258223630272610856588050710395657427789754637481391743619143378926725644670897830066977981787197234891608873775680765790406989317118256973336593625261448427290371480528665659544284486057254916208569391836354994904593320304114966824700140642304239463759561748693211695998736708140851774576960159270810309557368622763492351377946901955451597992815895557501391255497811636065523707402184711020027148441269822121685958602459380424397615038831033864843240866906484978993301140475884480637734484275509667015738940196085033387113884579023792234241922300067507061221361917611416841177897604145669456685550210192987450842200767480418955694694901072555872386793140274669371629435734047710064140552357190915477054033583644540926059238978564833813889289787180305405896363440989255157515672162143487383365273820863212212054879657388898640277555758148956924816067095090015612789522954597807561784958661243230026999236003858775514345640364943141780911800065338273364262782557644682297721018702506432897714926273806020840665254506132598906375362053042531777015800998156833171657679674874277599234107043075243822836114624085760855401954772862916669633714937239061170778063781748541198751883203306939290416325524021386477607661302323635294402461491428289184629751104854116682808044260870277225960527775863921535067571071697965149483763439353613022493067648679999770346749731657069390068434309094593892407366048502972263060974886524424423951168868818139750816257021180658954055197891539138274506897441624498163585052021653208946818563120191705978937153927939764912655107116964465917492578323782123931218537082262245038360818274398413033910770290756939767942335895883029361106447224637097998021354103287986176417731822029016486562866170123537391086511518634626212170640214877511024551931452895803017649991559848441952890517363266762274728310497583949260057525962268708716512209279140408760956499498364191975762597452855585742025470316999421395262422146614359330134516831761795047277490613642569236279043851082087051213196506725534145950335112764800577773874088025779003867724220097649061314526321116464063033919782012832441881274474704203459217284980500988638775194542736101120654570791249946541240352372663809226271886118996382377034667364377383904098823312524303865168733902757119492033788240679421986927846607534885935727115607638945803088183539911299519367514398790506467218498391548243611377240704575647939975279816240195335284361654016154994778404535780781941617734273299068586601360378075557052492607286720500757880912114835321850923021005283252242987663441945123884793729225548781754507109091599323822228874779335271491015654037356621601355723519070124456890567542883485796476495816942759230555591455468098369294137910830897221653098252157382756572181678130935885793138496931179601408343704405319208862033990539459965045426687072796805607392875915754741502590436383433187021402289217029964100176332446111047556733091800926755064780818146824475013404307620537008407762040985633905228821113674348407587158154057394525231202650620053057164411539850431759234432605271581259883551829055614287293200782232732367327469610217606167043921702019506595727054501876607314863352430925023827466227716628574805615958259888042306852951526052282448731868165034802339096196971658570698966519113213203096636926707578151648910257148119892422782951458786381933249062565639915483463550182603294478449367307661387142535167402516723148169269624554885507481380459029329796876887017587419242783465935658152549999522886989988410552000298102726051017775451494937934970608379945665755942112139864697402621575976238973760556029758190366491202574195289836673751215640978141850631289376693727189887937370703392341259715372020694452678766639682413818116758470997669380840389388402822620738714423304639479085305589043712209000010751600523443969072377451568562090344865367496524219627128212900687295524659818792603056507773472868990172867114571716949370674745354546485136566762691906335005086858837844348665461512879789768069067948156458338916423059039357871865462462145934104376545557208048448510628268223345811810272811656377504440150346154403431473986706761121633430894548460472856053362828874393852521001728891931094335592098096326445039725964454636575179567228368680921117743171554289072939101669717063861077602933976361097973755299174096877965144591854227542837558702992976458743225227606493822164271759833028466527997126742281780722719695046376323474916839542040511791561147986250556711498410519760676958966408197875012054552409804247781382227906970027628345581569763562176737280401639625942481312217459655356152542525400584915159379628855093467543334997789536395733575454685060089955185666725083060673259643780534316726072616534694233711661004726516673288466329564785372254718967939498145410356056304476331062598130958552315604836065150701541044519553976484274419746679803295477020251263781004577478361510552274043320809259466666915005701951843084430712997554728321790395374461391833476386963392575055111652081076186575596227500494018574204845226149590515634681410501660090238721129065917018499956281149021411717572004390542876963842652258770893275899419813046772604200100974048097746382444362533162672028532052751742460692103158788634605683382281484620298636121095047024139249304980442647152406542932166889164811853890977551568499354850435441243687540385348145030323527058564749901028833284194229687249344823180053605628024545618732528340224375378633295466368695342964306601797190250534667600593785854324604216265708859334688657035237483718733442750206092810707786741826967305602092795851966157014478047192042306841801996167053619734375474447948972330199550961013886602417335665143403511320733170287018178601245390994833833479255889762058329602340834791516731482368778538120516660872003594660796685879425274179420728422084773391800605031802020109171981152252822921537518005326670539520321411406430351405659457593203694942045957411522846822620333415619094910333593475797691190014106047734900321281755268215023929829660477607005412518703097729954737927505290494064155674519530437458340502398191612802286714079913597992715466690989689543202093770751388401415571255552786955989964673454469701085381361513281502307682919974264043681006436795550915933715250278303321026339942844753094588371802629521536177450720883630964520598126041678096485123528935527160276614628546096995902425379124716859785975298017896449749266031198152705213963175123667168389757744245515463061499790634476727527303613519788464560869987025914340236615181119192528409024488175082975281236346163659974537599818756956546600899056221488525229328657669293316222595396280629247097982491053582423559401787558192994135416191884764929125580207181270636659096013664028849553640784536192895212144702912360921468797096930458171779973392223639555561076546050587303384149167790831195175887734430404212476704847641551494755394813315890693601976514555581155469924930462296870542820226329452749657644606635888679724550004669773390139602082150534028996296584622716527702139881169326995372951288367347647993808088804678225504838384891009062055722126217996164136183333871326541128536208462871390408669965325049915247697733159425106827168211886063289587054141966976028224656506838886972733514529177647868903755607254787321619740739945742631834864548702313790015449169269844885578510450098753203895372456132969492590695938439047438142370830086919678421497141057226360511810263870238739995220502570363527126811862381534377877036863064579172901681781684127343562350187222273259349945166046410081982044881140641443577788316408437216760936126128712927081562460949390548083873451966279277783175991265087840018412173654293635990931907764032175473774425375189615547517646768036083622062824125613548366561374147219378381524721566416794398261815577710267792607409912582881487083487057562007953968034432712020247061142351830427790938306538797677931265069062039898361752830130928805080028215255585196672685064529924267404875225083453899231150495052477855499377859567275046887782013599315555796004627943523652131245543946064570397973542998898257697792593634461142931409389391842087545132005559033623368296630465068959404277726591942020527057783253311572323213248770888333603407091334005535307836574031735333967615760884200535316161181463300849600395192158696515646808964850836869600307694056749584938638188178994533940628858899058592315557943008371291947302601207622672585007544836144446029791840047366052178344228289704572659758605961074943286937679156873359550084938948516158891919616815222289203454377878552574839799392724504515428760305973871898911632713307453850295523257726357530092508613037316414237719783370708075967218118516399307152989299415525438568216515685678145322454713028097061204637269183668386547071647647839652391800498759330278386022948854032712163329489713624991097162262208064234944756758820654276857988287293963737406889097833405660739137826233808113052547710580901741498046071871216166541039967488256257670647889779964897780766136269139514592241560921135146014286204421981182511298264454420132944941514155005996321211024949633794975197902579070872595952147147363707679370196401939471680340362932499049708744089514397286654390401349689327942251669637022121856944934223201544371634774597248785182001180079684823898560110725808535684119161879042733659187647483003983202039041655646902544316667075610731904762744591583953404939158333245703010804339689365660830491258924413180403130395450450585503754408887993175554049260484411912465882277787499327884595606047478444455902660751621543126033231056403520543338540448867698527673109166306146875207407512842543808408645115164752536837995781189808617718729344578883038555106693112178474458861527324112952365710509914307784887151308775779350799912373693323797336721853050054072584705454456943065605889353623596884246322366389106719014746334573468835060212771455155601340389584873998780210999418496687186382625817454114713395281573410874676271629754862331358043227261153982839514508223539635879130917195588998643456421279279658057900382805982341568779246920738326234204342136496151538535901203354677988873477064483509629873872214153879630744214228138341804178657597589338837077255039708349529383752974058349604785716950474727376784888240938656396837983915364789174771467199338712140336348644977490183168620783220071800139504058899699855079022831752709500608846942066036730648505574614041764158377849728146497913372333147060397319441956308356628326702460007034896443367930204469439793920852321481264692101322427621503794393804098314949198396834467890688711587066527986867978322588313726003538893913068058698375678704647141191629734020929279912365970997503035261739486580657176349840601521630829231969726509747021787832939868948832140913021756891738287090652400717988190300977959977115400505397631298043168294078050898999441655850039721083845108826968325428477144293473877133089635219408002681481762744633484597921535901854710840802085300877127766881444692384802071476325895976819030166016009920113502433382631680574025988075995463637022816924923303489167456601827298633540616579109959158113186814769974422150296051511009697382724782089429454542708606097139058267883174567749745656016843149817781505177038563873176809843187811484146414631993980415843253974200026833029437179418390053125714667089098806169071776245340396150530818571119029778367721654574484107970484529814151280920124456810763372204259824940240638249377051776565990016225354780598130025386457836753667763193988647577367761631773843692871315763310578062066036530162103471815800644209592733845937401449949634578462111301108422361430808956927582464322631190826992931905572984443446944076655557926671374558783507621845123514127486986304640435020793983144834392923758796349759960278672983107020016692659981073075821904659497612907494140841856180178476584682381433693169844579715089148088745323001872712580414717358118549299365645037528643080250653142447693665026210223394800249374481265503268480084305572771591475183376034729509392141280345557235307308439334961160397222089035205994972389568554750450573008901586107589610743516811106489456632382175674366555434400158141235385076729759670129491928647720101544617774303975886000955870956075578240031468941998108836273316793686759024048768651683719637095808929265368719147073737125866242194099532634181520820463781990096987860659313977908380616794201938230449176013249193307525228443830611254603654650313184970820933913136931377701129970640639163322713917222070078254397496085895541108043792423571258121779223982605039665380717186667718293965966637822711569628796531123801377100454547408148830406690195261237423706597904615156421429800339384424130199953776641659970991402076367710859824265714862540993034975532557122731525028230267828378230511210623087342958702115530236124346639058994164018665030925203218440374934408372262679824028651335387898770242573601799813189703921496501920252026823079171522208794862409866896744490426877970253715557997961827055755822933751179111527323084442330741514022436786833822263943841041971936903727087273790139968096631847047110700049230775804016612013564238686061194792297656187644968284961343824405934168577222102456389132868835892361423414665140008678578396759845325937685621014475611219646060330261522505438418427762836811354713804354447862731519866805300741097659564220615819674704308642701563927654777187333472179467958195161998317673216405198485101631044311157599506582032567354714474055234648254875431937390825341360363335593519049454689568362139790455852015488749692524597214073148417456239016704502110773583952960308418260261573511916991093942650923537446618910599564219335585007328103968845645463157361163629847116021618930867547332539967284160039118134643594720605770588046474719547016927430395871817944951990640239688248953033740909838404892792260516078419040831218223687888710176873975562685951554817370270475884467342211031781325000833390251188482798494480682836149746446671757645602411359595204981062236652778460214477986183288629582200405952676584011557619381341309518702960013006784508953136679367834140420912975470189401073890337171767853956336528981387825314645766527579238421675652408826344100970065416366662097269031972318701884767567271940578344029244958381356210906433950194127203087533425061059866072713488941811542246363371269874782467299727745618847753504201033301220818919532305498976906229982250233592818051729190564794037687099195912526843046859755060251337209981280823239808936057580395281785083551810058536097760676658736535869620759080540635766916300960911849529078788809635519477840661588718817693236442811222337187234258518856320223226965319755876624603509969226401450492219201462402651377005017417067058360828393811504914552129406391418131792822903391003480065773436609590213177546628809940240386096340771707697715829245284211996980063212461210961784033898389567905955179400234620634509177941920672895405754518238344851280819001241962024452899495737199886245252653700118334229711831024611447675496051227111995754210924862196379576189437251833734933181691398670275607479523382719288546759916043289871779449921216319907895285900139908982152387207751330920479189275921545945495817744732567637928012819827626205335496915549974457255550983655189981233082242144049631310241262442653829350611238619380970219140056887877760029607413734600255388457966493599857397838132268535452666361148970664111099098437721334162039258621775233476415076414498276915856050517298419731185116073969141755550801920821511425329247634726543376625793630950656220835120276805383501079017263499209330701421165189667011537586555926783374074187326276072670456181762201201944068937123228449817266925885043256526453037946730624715609756991629715414277794908748353155187124013966683887432964973961360278636620567870948297266323209104706077120353661839045055770202638902479576497148899485115881272051324550819837513957971141050276739809066868887651137073557071315248006891611720986588667079463464854338202818972395181907759786730137218517053507601325841346330319467917310616827552627433117949542936877770516583745551444812283228138706405260680751785767559690711200503578503250208845090318559114953673962104830535178120358546215676222217535175414514499688249250005639618746269828122572167370738930061533065965320901263995254500138756115654566589548509379184121155921824860478778629009736479741726111212292325410748253736498560206987927858123566519479445146117292998976007652528768633031357543747122297015892675091282141356155131486448024725156046745931408188770162437428069540371661279755989756858092896119595394325586234943924310212495958197262996048042819741437416729321919687297543892162976874931478795358099361926143760798851546814982384143943669209208683981618797886463844802327130793106265901763749789653052453531786326746441695339768129383376024156599135170906402226537252488433206912131161723860695582408862423222387106720357328579155400295999939251934245559461744477605781089826369000391544407208659689885553726936976220866038840873758210841770668447102982550341765862732272387911592166895875553155811642082212198727254063003946774275107726437147714006434774488672694406283086608523606845169642261774269312820013038314611456118322778917796939466155881375073557842512085472255211189628855899193207303665741213740365362450999339436011432267231504242475111764933374342425820390565237952049273145798481006794370159513205083209666286178424492564593305509814436320376192153756917139690250224227424947628459459867613099614731156350727485213682762481408169619218179504962813911104402475740130284461714127553621211282281662243953173971528614545864773867273937921994065263468630672995992715421839923167384621877925645042816173230426196442447029841316982251208360581259129942944025596066339605273204576627622877607884552348817855853365258848490376057000007314068095693448345179428240362679600062125338545453224095058629105908563171061363600318210744961700734235292807570988019216118882532192456964230514984371210869300822578828847635997636756866534948558968071907594183335823170938633702589334969959404586595515761620653409952804755895419430538976753969396058061644852148544822598357682332014335553994092807229523194285571400455241828769896078322581968557575230175731548284812192379689464726015557342253621956675255748992761870611941338377442440247039846697881165649818621518157964805385843129755381352120688719302671229322878376866294300122130699356259521635209498339613556286714371291460879793904798652450400589584344357167267964267691158018082111549612420343771940423146947954805073696622494900396220108681421583147514377503656127635947912718895474549734627448683815280133139093033324217720606853578513582128155034522910829276440370602542283128619558053971798493846824758824430545100720842949183203107623433041699103577919717460143627072287051514871209593999174465809976592333861510387313709129475322789669328336595262887417948421462625790449479437074965329902795651634926536912670927233207333411887297125358987051101902730823401370134701305116525176083118224870637874459586019376515534768455376849756117221986752608285552131085295006926304421013530748544205929877450390574987745362202885202527275298939131141505293481128748176945762398449618612931403227546715526297254013213997294294776235881937713471109929559205402615001002312939119897135521978663107305422185064398541666553330593137698470784975806068341712905748874941017364111626487768222197790265718561449364715727793479148930973481686048561671763616728286235693531959731346819107287259535675563757295053130822958108457317135605927934786671248814183429423577282591520267863175892557917138971275978863139214876998728121308091409934841713502569181102382729935218151331711595527003529096470313542629985996058311541503215540284207469586581183494906717588786658634520742698983905688392971044265242596810209646310323783092959904239847662016839169402200591139472702976496372017437992941476930995731719701472684798412390938305357987398729482360815043733256485595329645916466508075526665182351965452691539577332525329067282121604713193361576953195802846631865606416136645946912976778396688877778551770448558839706250304602059616571096562275619958256390028401612165090142204526219243396094121270406018209069214628985564836437634166801157398877670762678853262583419325331413822579945482021228467709499921646544073836981692315030282133119654552856187378227873034655891396345903214385252782275099110170520809047321061456509216184296344787249497498917399992739780631049051683769502263677830752118402772562430233301345773922024462283625312041262251631786658313986333308207025458506096041351998211276670924751019531059153052392237736906081018627134460103824564174780197108638779043772392769887687857238827367870912693140790361618216098975895041042993642181237059520812482903557716913851725101530012747998086705476594215144596211881017673974436757952069079273045069829821432550326640875559105773563302899162465758217776861962214595766850897340519220857518810727695932517614247713530183141030466771800893663147421386730598579590052380808993880021368241858515320282372796666698497787411873258363725181689925032671294052610539662605548314105724180584446634380428229165795784125106717851719841717922230463965064912128141605634190587011081547491622480569193107419130996652195752866025018121484543012895825430847085766383138208754816653555107295944363510990594925546751223524416217804515291251817537402702807774433274389256232200729926815900172133686141720824937529751761612750279962962972131032812888483215197891871988357569271812909232984776183049735688680274802254479691806062379343172834919644169936176097701592153645404879699120188138313645403433813995673507530936787167543019758883486616774174113610509343431265592739085255248487894974175049407037275223672255622772795178320745946946879223630312102360745336111907329844190373344257299103591599680500104754181363146603726264998940716293372803012344393525989531075235102020690217016131828840441318883480512574808478123597522946929516512609392625529799386453465121321444772836763871088315959389445399852278253305612061553231205591997585988501561642540883497579294101102717280631330167237473368914576966993703103693694908212744290120581480465623682243715464489899447247947016657284950197381662483242294001563501231197732907554247984241684249490497087171821182685663919128607575242635644563229881850979733178628741559429042886423495869582812023541461547271902667125909851306341383802506205734367567639878888611434886854552463841154975134967311217943259394578992573490045093507739418851939423450375860654061395174485270913771004135456858879089329686709276022219240309647356574439358363888647397121571407102713304375701659708364856162006021802081887944461047220066126858982925874010457775864663326077756743608706733978245310361987344544457793170874709885527130389810968215134925770950102607104023010126881410154816264610309460868977644077601039845206295837995600583223417092683793480825264622958665667116998757618745802909483911473135490863737205872014492707528301328086688186522572624477725116122333627756222577206371326246483161029388458452871099494371952802000417369082042607707949325549899857210801244677318493360265175521885420222501907954736736170259312060153804361104577363267329020361255140847729756294996451805752984170173934340059450953163148711200988070447622300204974171044780232265966043569820486559487885141763731414642777733053056070987569404997669253561000372705795234861190668170515351730660919398317551079466509112849307766780416143665523903900425933165129258274297662095378209542508334420035058734188561110623017925478224505483187032813666098214110985222058970395679942576991591331907668611465044972204069538207536315831542369199611044879204577916222350299859662829543362476099326471879668228790089435092370388334600263403367764557428154703358890749598424018638830970874172090627528368359470781880209663416389395213821688834047528116303764859912134753122084672811982441220210173725450763196570437436825748552211638109310071994682646284967976696170616111464039539394052332843808562202954528182682048377653776371444193531680610705383551572065275628886523367802048764484092466206640194323711379377576991447599348306523830217986447721214632547098477998987725048529186796140974073366174457722857197193954593743536234648471400398085071448736559770094867811422285330444888258373076531377819652217764679509895540411923926728028843597671410385340540740683675334957499210984053121117838062905436902043629606387206893209333941142547243823088326971446311650147652776228768837913200829830682114318512986297729923541075828922684373779449122236591488191758924711942265175601729179009074580212090825742980889730216215476892859833632931042639116974536153416215367769380959732384123447748508087335612761101667263690741997564524499535548979079680579826272322436001537586020493784583236599633296048703321540328731300597550670285328269771775027978178952418449973606888930649534343974889842483665741057808298209764215139339172181875769325217925862039292251317713426755326338769770499526059879204128897545251906403086951644109358282708689889358562417511654164584054775769142741826176124018859385246731273385985515439282203426409573670885672511931550807658740683370515107507112683455438823225552503398820012476595267835367383682654044811198456010289357867067393281729397873333777371413036455702815331381577369688080503539613575716320121921807560498219439746639336484864044876345417686319166102912597709113258467946484239126785645843859511199391715972603110638982858896030433354309074125541454647040589374664598923564394786420454912844500883070328670535108636190348659372380411706504208384526740169657774088077701437953924460932764733000224486642650518173056444156455990465549478139377453673615665444527264003990477424303381605552532673273660317629736347181524469084450756666363130775485675603410179189031823120924578645929158162637559609885034195873610882440123320861667880681209910285742071680742331864541507011398967706428038079632248790639904943618229452349443252481182034169876935723867521220515893846823665972498839989248993231201418259785404216995005782907954666157585120160633763966824754594619968512555564895722159429316528625106831198342945763478641411776197521318307014422745525119980522394213990566820999874770226604090539358541905903906958485213202109710373018915462741709951365112766877700220570337956280435022314250859267197717019899802750655741600161319963817041967488608215107056575406054253054189466904443059970466030597911849929902261619445077233149467079833688865390801661990462196462586413320138686303417488038948669333030991332689206449364123038221135599665493346609028075718539623406433782900379420689411754780542056706260840904471975687511753678539879914707614984730550803806226497093252092185130461431776012804029510473463022251141871034403199554824508801773650412922316361279988237472625916761763173036198119955319418406137804296570882853744391274301637104489522509533263974725380559656319246152813578594888326497451675754583637659785318660585886768385879717807223807139376369506829674588355854772028845389376640383286493475813413387803696050537014416922223606190556757003262056224156369219464098605656758625537968822958760200674904359158631942244288781842038746475247242446179679371993481681569445834894450162700931202134142985021233017893627722208297681977045298242283536869185175815308842092322699019210223241135491051125788285951126770066042906979243473016329150312061589423834072007171182492106078266319960782454069212841303393539918609200317743128206049298060456016224392723325444104662948471787063755539981759253163163641373836276538917368186531335861672836982973056329601927030883448684423725585439540854222986377250812622002611545665169622619385331455064941800844544600474157945507257007249755563428741772597425720204863938529536836398445767674068584498963821590237140326572547231702980708390181790207427678368559385225673611075825467549631217425503620591545168438440896297977390984468237104892814593372341788176147469933522489966926726350679144693841537964484444142550689675851324132539642208628040724170239670229119128748828141522103363345959575534290597282175743196251439233380380982155455414460890404683684947190056972110276097271746170213847271588386473753296314079684172780288357292694196065492770287314236070158777303253862197279748770493961419952762479713731663103327981438962392982119249779304429877219358019688636212275235260955235242090054043522307886426095368449731669332986726916326325924657831565372483221417161955926398724628852276726233707093958846922792009852753296727494590282676943287648121448735489652842600454685645164147166918764250587820508312100619949416359898033841612190117288241619998930260339872978580372846773124504796992635737620706563570559828816396162608444337159613439722807645846090675797517085776261175099366904801899875045175322580431431937809864497411245324695955846586839730719323232872923667056533354532073655985839290621377706085504129602582716156571117153498127662026768318180137741199522792651008000838166134689984936266172483575894111709003754740080820375961887271025555857008238886510049763237674099825412019152697070024864468364873934710704457198232244502203056298420143025435409698192525169668750460765149725984906705091718665506860378454307539002101979219269311528580212245089288975396102279200122370075800420939269185432879756368334692873968454647101736727081055032116032499360165014871814182594065725824185864121642733434917738174939309484391002351134655428764853520096785565446730913351768686614705766115579995148530314856315956794357580741895986331562058218517746230320288740321849603707167147035499472624634488237659028044264400085043540588731780125419377683889991007455032793676854624514089857488724114807152805621053072882649843833514565069597064821524019005109816332487044340129466704703874107963663028867607345745459513140680057452001419505352820209790264320912222176665481547839917073282213700059815797371708593874920385058015951799923477436656802833012241767318894773640683470237532773199372599608898088380175659952924929499329176381049379840344416641574336472103570897889832218146026454275528497245495492500041142039305556150031391473680601994310459179167946742349519723028731928615285565621519265980992427081268160833103914484405499200906077717569298813637830940734766655244624352930491341341863070890820565008362551262992952744705096843076048192916046460942759062358196456856115754900706158116651082727133012700565390716008332159917940257267035824789166591713995046845195015241140225939074100648815882534309357438068976823845662031569960762998628160139389863536863122523091791607315683273889563387949031637330500818191319321683044752899987511099558623151673844639021419296968684343732779200269906012932187590124498110153735817752524006721256564351372092400503357304561921643286811328904675972729925325203511055677513974252534906909918273418779350954857623748668832134138719934354554284698405696912664555323483119499535076266866176401532632575428414421704717748842471464939628152188110235008478925530533803220277926455773355578436721993912724337576364926467598458261146793136539629764422505446527735327879948264356500534020621098481921529729854341499540206595020959941844775278974595132010544937464489799986791309728490385603217373582285176783774269845323261514706887787818232904817109452428458583963619916834358683430455680082155566871632286745109632824244321499556850535634534434270048169227809673912096341575659191351268906463039892082245396683622449519877891864796923336471794965051520347399836954460924152549436348909716645688395324963485415134320172765071394249499336763084751409846182076296848743980385778146635948339087504943956506272453855239973672864151803558025090800440374418607450407409565127210159881604136076149513174260006064672416609783464976799951843200447402586549461639856201085083801131167799033696956555387165203961175369884025186702202898616692015282130072292498929144307195981998989772277631246053782996742510749555261778890205064954720064896403972813003757398052584501360665382552128981245504984592734341032621976789839761443513216552908594648521754986593077161044649997727617432101930660085398334237781052803586946451164006286118386127405697793625183369843566218624601998766963394166667811457722661444181163210746038869089878263430695504144131778404651806854420567706171554151112067944675209141612722390511793146253276494895368310413766377367244783654998506826020304599880021191006873622336401803502709475959937486118734961944162486693279032544021726549405091251147193830605369908926204342339294603933011444386612223679241136225003092853343152179540682427157100732037141118576854231824951042497413521771110378041359169393446108378956083671317111291019593548052425910304898266114286892006081839856855732399541391968338958003543069623640278240532031963840565922366564350407621367161617210453587332151512802091258419261224136625565142175432780421850431014162504245986635937620531775208892362198529201437035818755242869877743229963529037743266987681490965118632441468698436283968726914494995434127144160860689475194606539939501320428200590982435402750613605740639640599703469288286891047951682503117059099632105810380022986094055936536257567648398901139712406772358105350695101157338150358566364363863978409923830530629137386743551396946857190702659345217514452347790579757497887215311279403309840814184206858776548933501742520693181907645197293695810868668114863074590533948397801403770007193359120266266524995403598012755441779083641928788762730509707022591176856064399222976338469589381516480434779431194149711967475462258886008087267971787016445645664669463896361870965255426488832376574953143761096522975921550876940793491481424703073578202521705074859049686298164983532261729893841426643411989567210891753390376257539770380021178447550138957522891027072379180116468364799186716243084238660117228435916370130087454283087239481503473379409503822969311186881750837906283078242702723838982652464837147857586858088420545305264370314403931930095809014392239323774372516303964388517216459038312302700677462050334030398207799660073818548189782106333415642424211415722037599072021616354803060986285379549543590696016027470215283427725211644301248313325437602790581269145323195160228560992234827598710134661655459572932627159510589456505309962281093718458620486878715042249452901614056555089011699400748951705418059621470285127319414353838882649601358389657066472220221248070732974138517736551496311334768471301308572590869403630311635073142768843869613357510371267065805021270860084622149527481953582102870546724550250597652071327903243933131531620946374186045047393173397831335861584977940557291752420901104869951670627888163843073834448628298747732484981309536007861216115861900090060776826714147199426974539051971158920559152071067491594699133749032078087618330794151677810932126530043709641008043154744557207726788321144720063872402117806973747655981749381426889783952386742085563877485842064218072127574836099772904828066149902739900181529664619251647183331605060223368407094949218623737731277537137861499085662691524790002181893050446051503409625029691658995193348901742621608487350916647705478418462156367159221188029156276247667209351863446699498802425463303240325293348615246138861762160746432085542123825054351592880183175137630057830117534682193350642677177772539379129630721906629947382795657944817044750052378178844167185621992513641681823724640015944741400253730002412067711401963195000895503476695019634748537735282340382210956930576570566363980033495918328440531552979182021726775680122438798814504899893081396763289879291006019049786864429207709902791976301052817513523057173172697813528328371006438683619908133229225962035786669731883955681134482310864081249868962941448394150205433030544904853766057476784441305057750073564440512439370142804292642228895657198245623468539450472143924593810355350064693554410242844131251860805527061238923254743768279497867160480810348609650765679230997280594840897899908700493368547111047119513933159126558220502584036472254258656867594195998523976329643296716201330295594398027300934184542837124264781707910133799340770029384088229037013202727637394096956271901740220781975418781138300582492605349311260606528552010209726569103592631674009376661387341859325973193172616792728036081689714405617648227183158159308178088780736576961876804639733834606114103980205658509468014779441691330640506570493631781786033405883588943577632396079284629642259974039091634548437274221235516791791472897172254064709871270303798798269986682171174109600220902881277470785152831539694212342066193223666763118051641471672338184693314337346902301648586995557584136431547114632696575516668768178389458843224308875874746472907160700590714406146030948655607449668937721224042220425193118876122149840108902380151438226734261326459384845445708458469803517329561986654440468740361797764735515204751039342663588727222205415994303857403337611827995801844348389703765811644685500602557326306885843496477016351613699049198638207834054411391867125673465006165595113959335259348410937868495805769704403590123790048202846114233716614656464278697225984373904945380606763552642348073071554549518467219024665338292508383023232921832104733184309533693016268731440443712468991516332592427669755698177770240721182182331524232914247411583801592879012067625343453568111241977458584493226030307277663162822321903733173692902101668644821449892840979229214850874908474868029727296005769470801575492116886023908223303635057117048924077240523100879439469021025967198850580001392688569308276532063907129877564538865226162236854436229849722156311960582297305576414034092837744364512315250184589379969880768343314096180704970356833564073625262352589995651283548682254276759300023929803620716091015054238887523342155433018139245127633995446027459139039197200050559682881088585582516959341941256445684833749311400668895761384843562402206299635614259606267623834071758482181421907271914425268513645097656835571973701307249745496414460423741287586453709914485706869320178788497701368894196888827785249225341793381859340736483540073177595856628994982966320373276388277329636484507378715450249209172249752024362009807959541019531083694753310929668110699573499614273474397633405242710936510500296395726688681604659863895997885344829277039576781545929595428853144118581127075538641446215807510728108050769093366258701087139594142314968738967897662109703891447302892945842880019202108917529486884325029139464522996240390483866778997265003596464387723061710762204353152578600574015725567620787332406483463895519651504882955092268837695763946232894064891675165724003406994031781958747396919383649026268703234710150975125382182153646043698512176400586900596919281841875917076576347709154406258665995244477460558878432982033750521069423210068119291241509506425306514146220371918348540193906302175241132322696348408794970029927448799454676579727868136565376283613619653551516027963996682329424615323741898816658957555642270689605003293317823119211531054737012561794788921693510182919154874319625611166860284144610195104706818784649811859433842496946055071202193356891292305841304991257192541704448641601579065388289953816741579967105113060503206136766318906558642182943058376044192756874896934400849274111004635104793633688654324491774335845169925350172281965078736654753101856800701601970508712396038700606667372138088984941061361337735067555344488090308491094218476304456564811292825053247635784584183908432541750147523128585951139031976139096079227050066680240318565551126010730961984917314353840012698163172713879651997261886634754910744894800084392610039062576390488375821812996154188388612064085351730796024074475411839114425555385446282844721695022859358350647530284306050341871241751098789764977059325064733787982036586989035635332737553958118282664581502526486090524842174126386952195458795326572555489623464197540611285392566393594541066135067807144182454851605326325519439066793447903261582080177666998387893969509205753010073035941119365071344402276263523241328323035830628912514400201862405005767069549803609119142178054544659912111757596194546755569962197462894498138384611491145190930840083193358610647726514693715390078734563530728484740761568196415159898565518247555940421463498789583596385709929140572639295971261227414370639403171600995178761962845158946075069408537302123208801115572329257461252421570805759325377384024694003837173584038976955055218257548450066798055794304873180951088665643361800987061588222627446248714878095075112939190374955049107057706845913195626103719854967888532755983842879875487385337842396554855104936337608537959198443417178479604764642438588035006718487605914315244251889772158235142728615563968141852796331714703454446934013858289328382784303727437754901045328103419203303578040492751715610240827552139039208706414962633129512785201417510768659604057128320731075976919112156017977595864260454110916790199486891478334513981470776570588393073356420808260221062530741935762109505832657300827540772394388750979267072382792516241427821624354944056162487524896729996253659378579951918812954515369427975211347508290515546931237843689525414771149670762231521377641968500771689388186761731822774287102132089790982054847900528444741353928242770120611388910888284052386745906593006276044721361016500699036796210185273808508541090974459078358947438855721577004147981075030960658223154737537528345774475975249632504773366440812163650136562519901455153658820311299782090815886900359242249142241661830506972619400072943731468905161926414065529016821842264013214807679474338615701227323084740725888665447919056342943626989938505109409212351992325193025994132351571661285238208186879538755447648144306283185248744396466389315865130236027843031502108011544702009533534598379003438346194196180958869610038526771050500922294706913676711341340760895809110911589585094425458002507201851435089890496669766206608358647760633965677339828334528828018866968295083555633861211796300186518505301051543708760558393688381064288850920201606941524573366504016394378076853356417758468623202081438307525809934470377472096633911116238599482335448060729596760239889462785947621260815392340379504788261254931156140233355502245903498571217951500449815937787930051659551818608476046357700248818947232567129613412767176391715644342610583238061964388146343753162326304084008268585138083693707042214587027735415819625630055879824244398538446723922257331901172549975806503943634805446220009713326554815459048133706879860820813105223852644103806550321985484998329797965949026195813100761602970278857967026974201329957065135578969164991753829007030510391081844247288779124699000123117127421070087101834601458391563346164440669274104566983089903173664601820244938097230630745795696845239526194648531260873192862005883151155654177293374979747575678609030342710912098181998649995361750795960305156798641570676212416610265198623666034298558750223713431605167428892499847370314966008164581266527480690349560480600812858137204891934355945964395178224517499551990763122753915876060051439883997242779131653384257804132261140999971877613688554225148456786532940037999277878089121792815387558049611067447674641922497568941181577423655237348149238140103626545889344814117775355587358879477647352862911908747733960642332113540909834785439743452721566459609971902128127983349453760310429144166888961509527228462821436720156017990896142028563292345096165877568908347248507002479597993762239979023010390196669596618620980812091121272355891519757849550252226582782818813047572367128264030547098075559003595285156033386963553636519976761673923130017591387498323458993846889653794176066083944167599816194195477333394884826024886744161054392139818649166470018191197669572014833673711262817371930149221899864166583483411478277892125020489575488143863294413710667475510795747633997886975531637850258992635284949398762770575705057359342623638079753165007771619402566974232274750456295673479053056198801991776190494691167484772307067751242808796232211747246042389664462433619184511760109060251728940413361808598751650234839546582749674237556687063105356737997938813619240649231296715044968615997674280932189931097523680985483917225555525268371757069350655125614686485674554197995743158649494697779471564003629835741178120736399086690962590721072945257510896190179284667740199555362552738942088229155250236496265318913956584437576966738141046910473212859142650764610534878247482515112288480759962153069822432393620264011045544480888153138576399143742105537029697118948752445394311646160021656256073526698249420590052760202977217822828834695878085634629411104242074098767414671191460262681943341104658233037935370723979099366462544454132851357959526166036847352908481204527091984478812578117661803089490163996688399769377354944614395014878895472896793642407190557440229067887584824602668404151123322793649927857940958835259241326926408337603931355771182074375761948813331960881322629133451751722110664800294784125372918187783386150506450254170725381369289001043401749521867843097857160680431925246006489043344233749092629269211782529502852927254144478845857440991420772190867633709217407024684750643107045228125614631710540117102716579469998779543085311659663700342183171962597168249573708959356247104334101047354094677025228590481293477602721584818015195381856506577155338338708532599531817050397938277878884106221912901779547011001316451100142358904125756750262562991548040439040431022638419452073969627559671545107493612623890914228933658523898851564157785803315397145703459725832705602118860457606281758846185170057957672393710556793975883573820432159293922797038757172892024109598785116281918832006040580712884225960988221119064916414666669993782897262162592227195921909658047801796626515618667276389529549745884816248914704261183731993984577699889358851539485043131353711722574391859989555461391063681298779239467834001576358781343862176652972379369044835448387955547830071584451208326857282456722606581687998969104297985200396162261852363882781976054822468943333855279578776484002384098036761612511625092504455385594025465435071242560723480302493608253360399798089389974450797341728957428141311918437322588155312641795466593411566956984005875409827731446479521756272730991425607580485229262794884911692882860889098727469288425147369589609634940450814830632098949116626128806666431666293399237485106549724792021447046762102710149138835457497915973332366594520270793801754757260245221377566022245695145038973449872432727658843541256369055579864790684791568596140332869819234618997641831254791558698864135063855741499447955154318034362672871750276771217517783789777247475453208693582112220683695685854842112499637839523064068350280290400671949398204453454676816576007317135065801274225061542888792656704592048905737875711581744764588486673011896469886453783399511234022375979960575971228087687460672738301862764239385902184784988393274698008644643095413877938080690806089729124599263072161978778061703380194304610691645269518684851022210623308063770815465468716277825192720800663478509281927954247342271702432229380662291497353085419659496365996313256741283712351652231859952362591949847731866516948987357561180948376199143627714256397937438029963908337458095176446603862463564414128856033243891421992431087574705938739611077971011918953314056575107947586090574407759015917304651790616937117126925686962414259239905307212558704596777475464247411520932382454013728387537130081077570106962738101898081118134788810270677543517188691671063068043010643689751691533906648389512623456478977501725595498188006511171930909008958528935502510547693978913297379217558830947379806726854693440062588180016473420318143508971461843055473351838580955118860374801591088881272118018560226971889542206205383889455767930793343854073467599954961565424988145732487945679803061034828302731793043477424017640324544460752695175750275336487161740905276777048583747339753692193054813709583839298687965886680123142245700425552270694376545868438931646977903437168763353075891674319644053298313631998782797230449981420933754007424041328225390525366123087942084982390237669328036586741365120845283401673520291336038593242406272545954755471455387763465014647301069229422276934277384927267744591316845648156959856700471108473395859059806182026126148172746174316637684727193957170117404135603623691745901205301388663964031486753692697559914390998635095384697816068547192814487394094214123492503129408136443204627682988367863240226922495313439619338012582478200091524477355876611485190245462583593818405185233285874292386248010412628985964635609547065352156968472528126217790205411156963950523768904319054546065965135482675609814035435895904046981958608648558284389191460662705193678060762221364770730832270620295519848896709784379897039349837166297954078676675106492010036141257543876275882117463261585016378980906736140986681543484989347896924071397662418493071585417812729710880660700250602196451644163445386626815623454485943679043635737615249026016312174730362437814523367530448497995038601310775520658929405659689171829154585218388778517352543788689728544073101488380881584383739207627674383119824167601288866372276542121996510013168198810172114986043717914173775156048443997259750199948834320797203163324752046595725489795655789202340010966135521165247220156635061632325612647405143596359531512884751436297204428072182776267440975103457667561216680585859915911707841957646433059766267620712757006821143119030091047587958341723117326322051322392556701385555344365584835031298447604400591547096800189990056766513624565249694099297488031645319409676530979158692142098100007345652604487421229773496599443980768805323533479176515988560979537880762154254527148538340844252114695446822009888451232099881044478989615483460691771942306490109115666652045748608406069396268508438012031170181701204148547320097855769177296112922314103008575006403177984238477820651794416561426579974879148815023834923320819501856552163360017860606900213111985417204967324680425446828840130787347231168259085082575423668511553379177715064307167661074500811072379543585082079013060333092987734652617292901756153887711272933552732918182323129335368002610314973807856433996310007593104341131780626535854687213461672603341336715945560995388591630415594138072581571004182721227968788229700121875783958521968800543098690215524959465727066485496451656214328313959993608052050528499962433183837718363296801602959412534444415791254319053184375501600676333751057184742001724083219800881379649401868102167303487348795315656982987237500041568118792432665561384813381127287974923839311216867108964216600779583545451135936540910996543157035544420574485176395980382288753769816939459426746390518145691612811045383193830352702065185793717173365697021653008416081159097932739417122324232891461210692672768959428248298329902517001979354048869362964410631305843774741757451133999035378144886732081137948813147394541025428882257797068757518282188344267140541563622241158811304959498288148388728825305963576393117148654627702185006985945211078412482517548400722322991310412416966329873978279096854737073570793950809745304704703366470578857015967422752532044669168834213322535047137485046149070592817748574433996698665046006920028198655922416338120904290595543449370276903920737481881675063924749622115113883790890163593585836392786945780399645635164396688957453787388760726840506830562479855857096987741018095008803209392383445310202990294545552656882004319112466770139017883984509171307620731054237283408128796756298011147680037190526158358914451807587168352331278762016181679158636906728188635567115750949688068074151482700080741492068866083227964121265769023925048131133254491247927019155685537676356103272072284152423016447010564758660233691612242337984952167444488463786202094209694570260383815214534917462780815922781471991466433518117642905766608672764863214961435409604119356117287580529296367000155455628940769254397936013735591374618030689430306045420967484067401734020893015808697005596188457227012272732757400708328195886477032204453819306597435316238356643706204399123062873412246707313195915169736096920265533541042547636060722266810628270406810227878719043929100052474476874126972411297335496710625631401865036718247280416944015743258834908550784876798759394796859224119523736838148744879445060554009217027274864456166238028947359986756737109468259085725235076260570410728865852140237233689687860138029826648600411708463700258911582556787654978806733859765221165377046096595614944403155974252685921826119137578435283403740228127358618320024707078143762079239086653092680177187163563938105144052442792432722167823973948137454734163585407851224698000452846530212131332548678628347235958668621380776346031638290417079425769886690028872987983673966319794232408978682570513782157404099048476479035327152954801845120798611981494541775626996242930725657068895182864920335201231363009657843153713992988581373515302372023208066983872100451923305504757501953627457562307426460372526099606623027728492697971051543322800099821432039999255344305806144420471979654261630606071657543670880898784344193955863613821994468871982711842974057431373784660600421331368780522174973316663470409137714191712423662221171080901488166836294649001406071840276769942094203864008105561766472743853435380875030217828694435262866979827476180956580645916896267476907152197345582635538857467708204103126356697446522521494367710405363214205519874182960318878669736928379561378756360329889736292049568300574716785514402766599288421301148502427191616827697534048532442289773408660461654367456988146586754061909235014761848782229143217253344932524621740794042477819072110061312555073416009315015893643339979297789700761278980197027110710388690284076775703986031534408162171809703438550689399484648199089117856499339880453132447614093840947120907016369220051745934567149041195015843108520353981745175709034727098818007309349772884178039032319209263912243690411552045015330155992725260663504358440364368196698341034990956667892396336005272395268379872970580616157989205331874840478166034060330881033430497980200000793362834079503996633860685763121952654727339819953977915980592272121530260542182705814707304083835661582380096104187352824114684781753104813328796256814024566895837886450087553471843345218247701980505029714171145547917467624414875063216412553372678542479694074543303706083403767613547188295914920423835029666291642348988872604549785364080645853351344994713899756030143374613889533409387960282588144301055975861063486255380489760938662675505171106326955700441845926472277708678793557940541580983222213313688846859251765020800382356287058324066352956166264909023605347047659046920839782323997379683852063760301380426928599859754548390739106997743661752175923656943894631432735556416336180947154564616241353118468654335697993137366475809627443894452793491135896165111489740531775312004494287078152097077803899378124120328982817089244989738582744180524987052125901795676648725562846013589787222303191350045652197616690409927761348554762542160529148254094784653438296480846854024092442905804156137506401006586341316124343035588485275007851427514939885922049495115341965201828180228784607995152812423305170326929297075733240535628017745686546687260405057548734658628889937931859730964347303062448517517908516751653506731204211259906258599380342626235501906524273628427253828901586398435278461598617043069255159968282910170717812875940353917891311863130188160327422981110274625182878746339251644141247634359485478219564525596403680186413730294459610706178089153234352383377998117040363573439799419395297199609963087960484664665860714668374317760376011583841081292368312633268522507787357994251804939062564323053825688637849380334516395010251158905047225175133190007091940786446047554144421812997151139712422422914157562941882474258503897853874803197674728693208067467887796624178818458687499137162347288558010014431719937757839083631724217591567734940656038452938287793572102245519912326964880863034868091346865853983385255143566767695089451346851144825000333751718276918185666242697067830966146574642956331140969262866436763684566025438945975899874768107955025802411881717554566442836986352263812793258732369630242983524875598600187459954954408485429433162124911149600856604231836289156687691079977382313831546877036867715630037014082472118214740468980815831758745484746213180946379795934689686566807930483253924014293283765075833325464077664929726410822111159044203710656304870276161714153238497148843269423761854049540049644301006572550532672834506442134675038556842025648195090256852820320909380037865446838860995789744168546787540064431472272679373005899150881276795933712505252938981665090501872837769476364162617878060176900270905621252517150508561889264552792269748947552439874800588290332562277400100082247741463734241812411773904482317631021972446678713930860202137240486147087096549658512802122729941917941595064128527003328006184553877099776269304155171665580059334495698770980211048284982300409790010443673721190709892370121104556093472069602989228258422035639779794585935167583654526563307710556772839771185858618611192667978726672558241473294168086251282053642079786985934548292325632244796741291807943569206589447640229260046888585801201067464216004405576763912228875338933269042376190829442480620837213613639383338031128469245568322275583291649649781623150904356037460754664257954846706427177299308521939873469426684376463010183792552563761899671802831830290572467584558734244412958087635408265575737475791515996843036799746394110673295706478778677117664729631986651343934769871186354249078403253228783515003498885259927646960150076578392288725380475540205279851953467397724673184652923385070511023221943153032330668633589581122364585911702132150553774910781813596920124384898000449094357386024667507986953843321501198089642356452516407593007220351455215048943822225361448319405032256731535033065967584899538485402058648711628819744698926797611413640916934179612158544236061780280260014628534896313078966325328352153060321543661209051707683517336800785153789043299069992320329583272383132308813359184150983483224536437680118439949454304987498653383242708271509825669580802116648735626142965883086147722925225652118915115152411778198880229775030750137972253226113878455014183246874505140347803396183504989442033541862091629592825242113754532521590511784325081696361189440558052887278418386681604401494125079026661632979222227431757682687428552857761099628218222832959899103175807273366565701115122720359938767099054950423373007415964652496250481686226995339885624428334750293537826966543970448767627095153826626431208032178602005790377439824294608075681414180259401226364202067088918670219401189224372926428309500590593329098149300834978928185814813908328106258396441963167183532037581621498924156774825357545873721814736273044208248392856104343061251081743598700221927793862803253773082630144239632188474918520613435353851636015513680289218931240515410913543583797286630310224475108626549111958898337651461980628750509312512646321168538081595711448151737528251612893512947993870549690750604287272685029037132344523947071119314849036966701248869401013111493491196317233233379415436442842344557194420271799938651703689496318500557857507863124526925737639403977854005298966079984393032282647745902269327572969920464605009785963562338958957541740584449965445800008567252299603446661842365844453317192349803091693738887846886659305568411077795635507230004837368476270215626336666414497724966120631024542908968808597561942641302349958470106996245153451002837030691891282846030920402713296463704763429974947018046299155043269791802061413554322451552443682947822357860449793043189841167764880616151382190455173130777972158835242957340232498457579101260097159179453574094625097636147931855896619684562554887512625578032948481674114419600766865840637377172490123819650128199825254834512914595674899967012181833928084090395522764640833017973165737232713115168371536579785141646673358030340208769179873693164554349594324960760469121357612620010676801433457257786369645276466152029831259738933494810186182118155008189582427618163898246673899186872069750401033750493838555854450548372310247752485327854204944049683656499752249109347803003376491076779839428056970317368258022758431452649360932336313657573746381700991061249732424066314992389675431055309717790551287200286767810359728592720720439833533931704240251056531640153670404225214189665071708699561476412018437600303455038188025283243154909252479243760978170833399787373379389099715041753376264321481770228768556967935604540362657997613873897828883408409720919225662929414077923645682533801662915468065742199802011351686273015694518313050739531881825070734053980853634212328869908810327667073137704360825124095767973955826511904037483488099561319810538716261381026222872054012799692967944181210961970630855774543552556644972538342841765655161277937758980303977635668579231826981541024623796604589727452722555664913301695277203681559169459631607864149658039856112344478384386922200329862850512253106510737005240796536558755310547750336151181408079064341979408791455877718522087732711799563669318666745482265660962618178116451863506111523658709854990088622516577014416115419823317716277671015814303897108469938638023252824267368015539574697788359008342315067820620100846850757564849652057534118446878617622267162048486324104953309693213660275157252351835504357989327665188648402313748084857332483610251634812941399361984134231240610792061023911942500610945943639962535578323086473174464360514583582709270278109230756266519179731944795181774063166197039765720486923977332392709054185448833615765422746140067491643772208512864563453824629832036749335168128398761630231751146960697868074892259369728781835756007879271960815855959890236948504747542329980255551966422107310776081740419618587627960332233348562356012711526158211296457737816021916632301546207357359946819206420992292938084170488284147761827829805827364292526595899751828640876155104901281621084855787240360869899104973686529771319430455045583573568547456697739783581610752045023820279532480882905202293086798208469270920837057792579166382451350577353163599636134737403667530559268248879264080096741394067979690053022799280419566943833661113233198999174737904677287708587010529657499183850380575207841064405926085233446508850168747436667274084955156244040454566332186708086586174719123960865742403795911867300998458011399384173437371035390804478272769086618735084964074744248200225069354886775569345018461784301185961141024241303888634064120240837465213318758329169540751626965928034181253298718619984753930151604120241468331160715288614922685173639484648970443146843990155720371740401145945464949534940229436873716108563168506253086577151744280194412041887587558334517001300321583175831469634413438751041684785302892060759012217401542515024808934345094066577143486779475610833744642370049856059947424845319582840923208022904091364271296782326573438472614590170558599661922994454995157583738379777024771636964510723275369368794255096023088694271931876854279013996362287069054573050299704009464726691457891329675995899122117024401743246175955853212061513783007889469527172652093926163477682559618023031261896549266249674677199747004401931837954138371868485992908024587766500238557783109640496886217909393769180212267543568149885856475228048313085685105061892647318587939048755105254445603083560249784955733012180904630017575429265867353095094281953603411100232285843826388958557554191700667182110150467190623770625953648848855070701831380919088641681649843803657895139146809066908349882736565918993256283449430385126515786343006688764749129056610345473992666589366347649595695451441100656587774891645894776590743127414352796587787911785286780688210022844975284816067874272923071979763010324864122396963593682743984871956038235072572065518035900951789040450676450026633713894044766040839193922558852432852022098931099660743472967628201543132037106267552848972276476330857005177965470761913362459805672895619653867416420923954218848055446172680115054674463831249091120050524814569757485751003527540096962755645250902999483375190509695043857237551622909596180705280234710441988498395007040598118165792194490096989549434726544319507346507873372028508321798659659951338288662030760972989816528640103505281236189294218752967358404515339415166567561993362285658799851513610602610120875426987675367982179671884628835608678431639588342147549704413606787468454487271485377224118896201795553334115879744343327419914621672228397393928630999910826948028853443315909710841825276823473146801590179977227032674044053183424707385766701970746093971299574936797455236322888282008861931917923798007346215829827431166510904339988250393443076185270705020537237571898488520227343578618611766832496027944414914323441428073122465075308580715213330169278140509788121963139933305573692036605718874031244179563809765997261803074710153412965326453036855967505272751437221050083496727316935734382765822271719266743308935595465640954133399450704678024521142324656708567093865250007635451406256761748270355559650535622394006356768259793024246771332910522587707962829978515004831441282762622888771461434940841449077471014819040329529997232817648467948602392543446346946301492408549633606070988437802722790098749479713437741755994131886683839305541673081561830822679347254025171084685364301317235896187105320749013709008490728592373365363657588921357862000473629048661737245051820238688802089444344543028776391129444400926601373648713921229166596145279263097519433930770292911232420912437062253324035144981489441507156802637709838892101971307015330485173530161428237909173558866300283931916789101161216654297388202584596916123131652032982940191537298346548730919397762757234199916206555575995701173708195000394117232838230656904011977594147239217785787861157069576110878465899998263741270508772053152500865548482992124804454778821031339811109553914701131511887524602230543000860632938517826103050579934008043243970568881237523859555257048152916105902036099159234689099749408013109261548213006374694865356805648112635954294336908238250375137521339198349023171283609166024789963986035540834400909006337592837047303785114049646256392514573883951361730801903383654195130952258110755576140838062306951792081473109105473613200550936161768204230175790772698722207733082863220232299382344725107834673471513633759486641823591909573586252262609893060209794574297646564585916153514735052879335274856355740571714691578358559331005215638684933683109850751695334854180725639386339241335984348204547194280852585089935240932570606320596018886808691540369429178391962371529941951437836279212798753858226623328114867596534678510287928239406981681042265854165456687599964822375885009886160115954970092750269769627525188209968962123550099913162874148389956596247674227251046129319709932075088741325028906372512495167831747375816180740579499959981271820420282759097792373764779703153631849606117379382246012224676499740757854055321857370345648463697349930908154925596333086692949041495339397470819384183266020868695033131131686349221065692640779642030191910892820851582232306694076999649276450075167034320500555347621120250216303516709189708469461169374401931184433141294527884768110141141895783886464775840302573817950089068184272939042664999938490382197781039750856332767378653214320389671361538400010413003839994987873460728708330627235054042452822944146220933960645596633668938052871864197261620244644090837873409651547680214459757948168908268493170711789870535381702300107323596432894425139332697691660959724008384746021150127585152896510618124921630495034236252191893351473839572661337029026364727238654172233754604687829852585559860401384757123968162435475147380014094813009366705170862447753648369922885818216847555961644520714791268675945225783111348179965079439790361088420279249637332590048238089944184461630936593720662732012311938187946559943662621955990465385978865290934028107697269277924899155830292645405702027319672983939038096008984571793733159313137472030286209048628555474815643935134438759208146696151271585746644505255876405704834011432423663649326605617472117617516984630697947548050420090392680941605975166980354352101480853844460582079145587920898493791350997151653736233297118639345527717934427113931985071597266739460773306467897323807630349989668449835846194961031756243578161702507648736945873926990302103175630216201980753014517693664263104637222717636859149846125784466837081874037866503076494253757546127915133276568939548977559753662716543198063044355493087273308037833236632393817945666657248544708459751574369881105455589842982977618188166250904664379304698157041481616642901773394265546761420933223242994096320678275069991098332742203913542315695291844885786076770721407702929197776728188451244144636443588245161016035353944152891849223478444889970922777144313650099738666439223246481055928187032292860343327216889701074380077274912342352497452351659128017255484075471357495070512988879209048758290276655047258490538430580323820531671993252348646948473050518379587101275953390358837455669704747400530426047785679365851436608105397799737296863866833285701729162005520276830102475649892906340592029506691379094269082075018354622517547404244911592074878076134279958662840941552946480962143922631519210877657870823146398374462003027752923851122316720630466684450091286787306316807041396826792001456206437044855604382150846838692567452484386319989666779453748385887252771738959844316716233942629666408915798508403186200239073334898831720254699417984640316158546127666877371790322862267665440950513015142274760680300598249248513979992055671181753973359834784107052385714571159382110928218248450242548632014385177659936951240265591104790581754982019671397854545870148128596860218189151451020266753965620436180584863039741361137907674120268136844893846710301609035935904669519164588806369727632091310784204468698490712879451736430828421089604679189472402849052438305336742432929319388454189061930979714550388146478542224752180833281134934700641536840870157952480355877523396078047790860288986462754397324155488444314006081725050814986991951030111540839370921409060513240013736073826051493372255122927443621273656202396199694561627219880490249521000217466895743978832051510829738976802889187085603772747364582960338903338214386700678258874396919268000695234235598458103400419454832904984264135054961786579327493342898141630721023850231283897771696390944156524092131594552982908652726336230800968213767658948185309594232544121661912962744520892527549216413947915486500700110280165489718164831007410883147678197732645891188179720716690928080939519050764999681466459822430323446208761729478491391247229130759409170324417352952492478694762767344799985549217795187829268730984032712199574831701078585224029343113570424461852331725910013851938189532032055801336555055579085370828390850348338811507386930704489057336072269555441073757019166394185659484962361359858607881868203678018312607988276955137636442143556529968055488084854025163731597264218178885743173214283631700247434095475101473066749988469434519260863139735337386607378876668094600302857419189541515941131768849133089420292539237455198928557952410096226597674562391696264609561168795284049962447306499903493370881143191941749325743294398045031428960507395477471030343003107163543981761332934984669024307515323352192546386438781230952642448269022165041985220464862343459517537425200252257057133809140946347819758711120398447244810253635235817057187525746597296758378891244215629648841704142832670717382597770516505455181328369317063812332893001454379438596241895269491532650005582745630137126386051009931122180937565245426492697611654633406688836880502676773066560843847026494762366402145986095458048491413267158502839069487339830023708204063619179276424254307268824395131832016434147511045352687133632101217964560913140033499493932347476938279192727713978420494252893084683332012308004406276515925933469435583726809798756458836249864045110495445042526527430167522066718256599391948759655598315652891019277195473611352057483612802277073344057355869492027602940103102194921411040467182408860037156844874838834623815797962971209384009579647054623755893139510899228706370065483336169310468367992074322654907479931726974055945274619807887085934976952948972281750714550101027804161295469561573831927208692883702491354581664007782089272649351686956090921546744405214820708791847728742540212727550038905689477461066324449462473452654196952430757983917770701262122406371780439601147962862234924042271474051334470593586905819270855935451131301288454890651988623424798740788375874558687828797247855633330751160954914213578379737575821907615439798874940392061968820748728125640059030930877298731619594651618662039979825329429423993800428546945300833903717576492586128478541271622668344496039080680670184929102054599473519309913809477286283837234735527234318270977532315419729661926483780813906766986912627156192985777112839939725908365503672642556137219994399469191726587719756760676219726488628626332857654832170975225985237413085495111483606185246664851573336655987434060494854500429136882524950238512260103586547964535869781567526709421442865512098096215779459134487229451119826090732079886373202848778014815582021709523220354625648802737530563569371628760764325614140705745918526165000506235603489710925085682528506458710795585227638002286731535880964280911986082865597108268611472405652732155971732136201659935193069508560315149947689991227132292374997325048088595148622652708342948810741113402305025614516580285109961551697781679552084884814085685695856819409405444850423284075026249322695027518226963438004640508241945916130196929317471871104301876107625584999944826783373172257446699502389880280000797865710137833096000839175416858929335479164137385030055711505914648551241366596908007445000747672123485883863393415949473789723912143310234608945603572518412340480639869156205872110336710497766615917893556621865853879396222186915791910288198957389675651224012047525397868525616680861902793995856628457657077001152240535544213733971499287618816257117483443102288203440403900329814552712805361956761348005788801424234523212963525375956782195081636055943116256389494713962962647748411639350933770342331534759340369348765826476985003781337411208760126427122835308628381817193395701084333844922460930298718544441370353487680201506376574757406734533983629374181373742826565311107512124146959021098626793991122839738132970541765695294852646336039210067266553140913171404346861656732171052624612191046241514568848801982947177303322867326387921724986041079956834434282635806307716158825393364787149199503109074060890233454712434811758105438139292969428739412574851582965419960008860375012593808770162652027216734268344581635208791125137149054753443303844597273940611402426072977701451423068184684172828002276523676747339162536772164358903472731967021413582811657477916898713386339721253685097045634143606981268036115768158050860355875180530705049936689880051710821289854707914636821711376889094201266178138194743163565792816764602188200078390338237320563877335568829030967265475577178395445031148945617502163040909567924376942904812436348201588209782738047117244097442504882074893042693224015473422907656559439160479257084310594614252005572366916052738716097186441560668753752244735843541536581050906807711933636783952644172189043020857714343279918204972859163626066500460124644994437784961336241847240186472580081957192027428540199613092252021185654039321745330723853933850402363782157002711841937835942664141696792767638622500313616573622575174876578504291826581416924208144268038076153942885901943355059682407982017108294924810708166354809406031364027098302429689345783118033246956624332645027981735868908097549527904109646429959873821570091264174289038466594433194610442428488389447882875480085003365532170138916832881376896092289399321828489739044167490264313779066532873610540064261648894850602886575550020508450619336855513663800062308903492772977118286403608006911366186212921921054018989479023514664712135382387699863145596314853973788960641205602934919455663567701531255914115408053303835584157238445945471386766381289626417852795504268107797999086777902533499546515143003590677150018009055557922318303405224504727619669588195830284333163311932317129538627189663846159314031448992341352459198269666151740914090838556075441091833394751235081426324570454106572896688990347490673111864693615883178554853709609116841808930444726207665441577992201103106692700609198720199664490306825553041227176071834437804882363133064793823201657276845509011272734369528406948812511848809444660090740155299492514992667620641050419922277682133819009848997000024275995601618656995881306845852007005616701240044295586858725120899565208997104743655666347664512696202544628111879813579280106964741069537882495084447424354236510657704995778480958486032343981644673227240650706396458414398856422789133504644804363530495445288161524783494395030617149702296613134914623148528730013316028277358333200907893218499258582615287077094610949759992046979702145468803296531806177663837254023363735248061849243065429915093932805557730794373015587892319408835872800209337025858646855018563789918304138638489143163735056325382010081635324714858769843086960991410860895401657535996898866442993366062864568535733890277624526547715411559058899814969103311468069453041487770617965545930801545034387221851880876050776099979314335736368131183065578524872483620400197355729218960770711353341297379554613020253308269017296439385857638436367938714941788114118760791983851071877197044719005105130640281243332430763716621755502783516570222389742069879613363713436308426102653141746824176126224346190600770149557748531119919093074790053376055175716534392061394062746654106332807350795981350424827195302322981172783021625686251359589972555887558523925585462976539485916167484377066837956789754224311207924582422976056620793106392724352600874691130159105881718376530466122197477260329183841184055888978287564401025683536353793854287847581277320526975105030821412781653163718353105432126277855780092665582663682313478338385871329078441963432070637434409915168173997566961857976608608264229418651704752367779356373571120619061082849583427747167690255916346629037686115839938299996009874048217018460044629864094084052699893083561699041462317050013765728130723086880978166447883358646492568191803303741216658738261550027728016723722175304522933330701852173257115402404833422400594233757106534443529044934885804450325365232622749977000045252954916124857424013290153301166832142088049063640429161607732740707010091069551870704439444691505365739984141095247685841681601521148059249784793755234675874756924302005458039356052674400728796747409764482419301485709516337457629574934347422685619843332279929921382514044203661720336830031456094461914583966512018591062956821483644169286459925508175510550297812318379491274980164679513520713143955525213231985235020750928838387869706738584677983202285492814839362200612032552737626954740036731748138569864637542208886343978674291744413382122438895989977278544470740495038871484487981043312829032504477857337430488526891053018340669180375305239066472575366363003059871163485749127481093513790115215607869904900639039425644291108957998081882701836752467692462110144840137442934872758398524103400621587778961446336367445112252748420047124556991743841948829432623303104342699016120616732977282709998124940486673405905283547418529204174467794325341149371958976073802401069795817488969390433504663341381074499815057717944210883129909403723811088776657704468376358826823273423571383657443874347024308838205266090474619655147254400445846497177851002286434673372821338027399335329546888192999559641870500193655145193475712324252879443259900217382837544799082966494464375706667208568116179255294601075700492328815990791402788065128993290741131045285447049678746995033139475478741902565372290704473447279652500953992921545404371293332946288465336329597337709735244031430410762083312853716905578106166420303411261855699667593840488484505271550452858707157796313183919658958875529737664227143616704210385878238181590507779815250743113967089139470053891962879443866258506096040126838552346371884068677773511967744856972703039788007640550029572038162970353709349226461879408241784651146685774052622870130807671936336218278361623521397851101277713720863576587129097233333422363349694919321481759370094760365952255807530638024101654341430626427922873554463381238712525753337425531015862781406109672918181280437917230011020458577522568700732682854468633695481907668493566152190427027924728693558134839802906941010074266024458763400656348886413119963505915541280755985257745917922663777176999916253224034874896304924706073622219675832991015039311085228520752932556651535185735460450233093403359958809724764291769269853567990484284310825473585170564560797447412081942970421999541646851356773246654405122360774594448587104905605880051667385622455915439133167723120183061604251501251276636226205665243726711422629794523607410646299180353670679394518579866718438029947677637473627177755064861808603322567867755682900356803907761157866049891283327365791782886141941262715040593462174900839434653408888200083691618287067610316328968854971879283077109384103034063229975591581923491604428416282831878081624475597077899249091177256035402002506197874938599815931717101501059951063728448998900791458248734137139949012714842985096080152082614238567735948247688482371989598847558541277933145840016723436383845905726458188187982297488498812558179017982757157435021462173521375234077696786248225223435829969200847342091624697193976921781358750874923210313577618749030976769040578456143880921544405305601778076201503950307546099570592425181426510513492384182023913929658652758902416427943145096886871631534861760626387970878822768549327700536182036851129011925800335080431610265702598947083649670383145521627547814883492061186228902240015935223191927318166777583816735652475349114979367151582958977412038978704796242365679867345973793699042025028872385982273759395169335644004808493464053418491253712178897424766850839956471331142484196434552003662757339301662851295710763173707443849955787441347046021194891651758808041762325667686703993460279139646411420471521726194894364044139531806757474865435003285128515831452146931788528202703297668336418891618923458278254298813051374945314345263412496147828616256559774058442359128203950291790821781311098178074066282467063903829360273836710267223174424109150179767776182975269656926802918912751992998624815929980058776753301810069325286961631313634907154147514301280059653040434189651758540359407524733159372430198060646565807249190375905002560631448348184678764276557905715986562560104486801489506745650786013888024998963024730361078758218576221927036412884755334094460423861001760165788028279145030543171151105297305332915555961223915597849839836012238095204913065691777330184442637583249765071766666691396309889745095929042939999213402386861516446885633110683192735926098256853073485268282365596688175017789248115803421488808163632781926370889939307721700087079189794267078307769915559724826817194749450983200500962612090468887040313690604403192062475527433013540687396008890011145443342013110953927473476616977828919305863185596836642190640778772035574055609666397151997923825222121058962897537373777102091679479283990018285544312725440207496813008309459302260406669313964365839659989019561159685013347375443646036863805063848939024628536575522512622925130914717154390802525203589463075505922456236697425990153134131002055676155191238760431762079588773453239527669281641048369567127376337759156450890346002423301859784534542809387003687826749587560667667194024439473350568520602378809265060337918099313097987291795640191793636717580927713106799452385720331939058275389023875679754616711572341980646663910392558578079320909138879651772846772335902687045727789400134466693547240057349837631289674401120818092977205743002004790231553583693931823302810817620712572811801817197595700482214966150392877354254344318775232283370862029599382418993071655423486040560341063352792257143200315611326915761792671220092118902044861387565362772006449242021776948559357656459757933330422484903644842557838145924753568455614173902651668654911226640381936359825403152831422205717228603397265613016948260579599911059697956184332648202703142533276389407057825463731504233686108322665954905145751917668984007792384980304928070073969417167732618242091717656795268601315210075915836277805019382702951881205511944136959514421805891450033009676387054598818290983983883051893553365679540040954600220896749367159348968725948523529324260949590621217032224589130531832703677713507746171083811855641507421866004834128709395420134628707473835982689622691762432069190777827198555234667174599872881670330020888845247429590088690954238315696998699053089646226240884574446509498516802694876063013825736514188836684777561605619219630745840800922279114087299412122161579626928563195757817579614575689980951467902598280067854153197005396919081586309058181418589150652587364862223008539040067525021583710674627344755842348211982871856293813953451153281539384862134283846572240653571182216502785351936541894960419319552696926144117298515061256725666643554778615302666370894630991059496393182028661283338197780212691134755095839374227591415472942650435648348527619068341878232915093787513840558009677172702744562693003053724035990212286001199564736122904730484218399685936574221379113014578748735177546830427652994117848637056165228392020730551892322877507684861240589655021280443520999883060217484244433925740873134001984463699413380146919212922125714298021270245216692327414020442875562535901150836927107580146710300888332340660357151365323484539917210044492977824536106133990882997214008860137924919987623377159448809751733769035246110155048968326786902075409155346853383800300285315579642308306271468132048355627174642351971244812816681493258924654925540886171933407637852086027928843463842732460560377251024009000515494828490314726554106754414725038703246642723533435052463830192593449369658303649730027688885380887098817197124801364139409843934855362604394783110921911515682442986438903654646437971112937071062655717632716776943817368129104205134214893389959393504078453069189637754172579335680072697489368172648011763085136846755704704611597612152469617742734188089760602958067220426346644463680559377185315323959103672171528973306346621955054673816892552994623817176165966504468998790452802031041827411990690030064049139327891368816038858184540859770691061179499834805826247780086280972136306308983935882496995207879913759330229506415332026006005698311323010573198061859897035546228980090704496012800985450538341827600072675715243205330963400829698534222137001916347724687448135616815764756535407799140672973056723083631670962209982117900053846439671714996977605179449360418509587583968616269223785267178767666413472422007819317941142068154005605871052748709413917062659693420876247418696010478631566182091770802059298183693923925916077065446569431325284862757642666515648753628475638948847024222990534608453059659600937739636812475204866291070040872996368070898802217344465282371940799201894180233663777615541623599832277961187273571264960964820254371094901406457683031569089167415618908219895509969762118832308653732100401552774299089915610109782995463130992346196259873972760032572150737360914757631635484653061517183078459555256707142133209769109483503000349236230567444745409652802858824182781566775814569603497973877726347217656870608287456201698254886000158169498892256267097780170804217347703959191353502589228135701064412303804483479688461771920429283277906515640866498112948000734363425568278008212608888012176112902604935635453742573095235882243369208296009695316839401826379909247402177421109649536921109809212429340303089043558116881204400919205094619236299638063093284896813171056556568875089405003523731032452897153846976943802736792493311719502800672708049314958980530366265799536037848980459036792693088927500612843179197020821737886470721064942099355412973791915250985516990420732462287189006432940899609814482139431125456755889076958465850935677056030253852409565128709312932178328842355832862851997558489718162700104156004890749765094873192533766790641190552458478540205479214869488016213344695921098808697724830378238014328832112496910992877959461977105721336029038529874082037165755729307537761592925182074694859738408479536692082568466916190416733856091617006801000468838813444560423440661050131713099565570060014519899157150692537939828678620923503814284962986723355801447390436220145519180040757620386420978342911077901525448706218548237739070003815880425440437640637159920297975307657521685732059466247667906736214189909187044896629279619985957003560363672834973849169222690967286897162726998175076637628488611824503315429065958138444871050729762781847669116735674361681144422563850788402834232874531928251654751372553616501118549672536849686316105969383103977504309709680059404477979556990624366953538342643034881216581937291715066902377667552763186608021921929773709617609777495065451965967211512839169789158142344833523863911511986946726211911906320296993902357184085548911304537184237690564458688329932922633662293495827662867811725251043287403756620899195208248631210143081774840346526567941415501322439515058350851142437542887026244004241715659528747498690090275543833561394962562773945618841238377698098525855315618624826137961009844717250563016443344470220594225306301752156386442659856820541072092309157402220373846973993495595057937584257060139838199501963312255484285064699046552593357573088391322642183230640949331764812013256353983385947509758795851676687958411738749091415014839528244730171156008349331384304298032978491807593167904117514553318135929663641744881485121790642532563711097970014910093782895848114009675229161210424122428823356384907967099459311018640114971350308185329540288797138841251045273481224454687214130073417651329120603776684027119664330456193354882410755872446406370149595038691317601160721782206164414860335292761425158659342361690034813830703570938706876053166292106574114439423807816460215553275413399131461002099330300247555661852418782494723439511839601845346137849368132740259151135368355367417775957375015356572523170122481729952161418234044116259135177833075287285492920967441714631750221514494464160468992844881104001118483313272006171983481755544036977437499820583504976184607471304121378536770713501367689145466326696880865800460355869515147864199310472776581636764235051599241020493520714122751918629530064512402061311001552258858982667024075117181746721202905958753503365755765425979695394373931464387861083881627407369512584412677515804593472174010080097111164776977169101557832888372787565882829464877695813119724019405480443538033380077804421344978098333198449505599227395785280737655680489437593304077190576644777721108474536789704444511479369073114971449799514630492769168319191276221967266053425914442931526470229674216369001624470413837801206275517366201037673009132457593019908770548659139872678701258262030705995333114879534253889420874016778452919387807857920551493873654336533137827322791919261923383787634352809484248688230514108546654064524406680064656102795797668080407772898830778529995827225726334477180411108100499654299063228799528735917118012923030797314056985065242755438941726752283834979541333220407125940998961802366636250799152008944518974976415666577081577466065613354206118140364766843718025542573364041686588318991669530444909791665045053735692565707699565850774480540078550282847123618546670681055562864482033004640338351621690782029476872878645385931191155515113476701705442583725670599445518063766189232143839110214235644002980774714534729360601199495387241379064425363355312728204676592231397891248970903115596268279203449258418033488830996120776708367658907743201439650384520093528150743114239381588218821753687505062787503479240613588091615913443845790850828801538904916283703006342178422718261517218336410346336199469714608688956311112143183558713794143323642364976577048346936323018977697240397281760673831310731392915871510104761694507556678255747350371450804218487022877409105628419124687189206656689063256151513789475621846810327709516295368333019768939173611302372580161592417029133428068375816344948562424422491363064121551240237724195443545121306987216162890365764779305781986115904505959392297322782762781900881909151666560530239914442173641886756299728036439338575098785312903403135532809125302470041359641040889601230013224281414258001920754557888849220418422501034866649109007954945999812417129020231294193579153203264343664165631904655926249844701326155338885991174445056145632587228101616105819541985301522499790161445920464284626830227193619274386881257834144848517873859305965416389172646908467378560327950488046278305907032266226737220626508032211233652576127606462521283463799828295919294902945162568042757562122220067190623874536158744274468581227837969954453143844667522661949909713806091287664155467915518479379262322586556233981358917113286820069403120024678427305551982703385799343629439125226573347936547147005682848122121155733358884571273641197558697281903331685791293748525585705417146525454984808729870646810229973006126757037325925489633701626362171228032683887693792289719188756546700196813904936263099937535763723796756305568813642351698053575475357828860819277486235055896587439439077937806128685947888540793718556915204237239162635490908973852640791773858807729048427648855812941811275240758824224672385260139385541427990509180005160580956269720129683891149652981084995283514496394433675118466464613430810678948730716310198248130038782430256113825818186405711327303494062173689820314120692821076709847357864678069960128747683686213943256285850161958351410486406348023713687188143694446061242975537813401175429150175063563690788801044073018160792851815760171377820614784424279028186938691757606331473055063974100376463263435587841220821094261610310699744060260986882731388550164971839032966643692526209078231054236499965733178193464601745281582806435696937320172392141362226956785971918063972000890564108343553795346242480790409347450210768720938186118096875909463038619530402334200647628820318149339162475025111887499576490452356273812916627476018498147886283961906628068271071956436772381859112220766172455654979526378134437398865465639386514981602858365250587230026692045034077445549881157694284290617868933356078172647519290450555295233946555129121801864436319516966772324532933226815740786225161989724535194779829815426296136070480331357958321497622835924612953016213338532550191669384535004593468591194564839749885153587176396675233263290573262566205984665892296192375745584829054843274537440855347744556683156611401537379443912532344635512815326884731946802220833137978668410378653614992838706272957912746836605831104745028411576809920979719417186124562000084762067694250622594251152236727644995582629154078859518966942523683847808853016346598848897968061348787350610092703495416728842053766765889359465573945903399444026422593640726989201137325778637251700514566647264103754145843686203263608624680904672964217222796755021789860107259719930109399189007527815981343588014332578395528046073887323505767303740564169370783700413682442931128673763814389294102474614533331169056495505182963956747344211591580221587457982795213747123517817664766208020118124609155734876431004579375275327552314054139499956652546592412112791796943694185223333527863186764523576272308974988829318754580163163400855866194768911926586855055975836608533081724369982280857891134380131763386374788504835418194618659009983025637285413031051833458936140847448748845583665767841871342431301598319726895293204606234415394313211225198305922772393447355594850240062434448572547268974918697764480118941757231593992820022054611351565123473267530883752271409449525307029248763641828099659949742019414294595457635066694109332766902443990679292718830867820098665034893040111972121195239152663474459097925504570432186482309064724265505361211410072629998281843860261080032382562087049940588383693936491453437222174864920689034748221140015409645176831566006907354815246232908518026011945836636287572516421927627151776723245408449850163062710499661616020865854945660237780939899962077054220973507785288903371799375397899776397824824047824444243753026964041570161536068553126107239304120374581402363725754870819877885082754711301217114901561490929687220540907522089608960382333562236070696200050710687418813937186098935095789173487466126533611893185295899086914643982835374621454622281696916882296193139628426826003121841672347505459713884438406454170598130547526400532667445040100269478306826398744414574295052066431094773450517902530003789097791120905792640570688910549637488187957514105334745518417871213377326382441388988412498287853452124665133597224362943262213256452713137644331818015961091016852802032321734495801975419568556138733912671168801201041093405092913738964180998155357065801146064814390319395374382599996487180005514102617902108230179342176771955492940480844638518496387982046377097114226727346228326293166365492853842015447997666493573963888119341295968427108935274971243374510204320651193954110384705684557677378171837591972097117395933796317445632173450877076101908744544377136070404652515966034982993936764677259371852044957281800847420599361169912465478955893430490045046816297959042970697547477041963616568686833759959729162882055655249977631715492907861092106103432171148314673298342207740127081541686345670859299864553175078097861230994356911922496498632400826265692650721665872496467788030694281914311761275963110603551492018171210899565340132749610975886128114008600306560904213093425056419466166055548430849899904163647041894489605811601837555124855614704583038922633669180331195571760474843180510507503918938457091156521791835461536956508374448248408082245184067449142426773007283854850616434547345067311134733897844181019231622302714551161270133450787293278522133016524508259510357742553316577020458359652058719693724961404711448661018531063674178165173429863745479263240525362929192962527455504953153200664151168218865639821760705533440061671292961082956267410418093305738731071281138216030753945293232929461769582183640465260017316595995011868404475302686559734325920817655714517367326951681819752316242526246318472254188087993404052872115730499927961927085293056213290673126658568691920738136375807397922097062935197794715602827220629838120223311412956817572072040547481854130490333832203547543693608515471511434718973159636751565345265302401656553538097164821067494291529826583549549959937580904651083171027892279465117463289013319562961018241986196770058828577884158432050100469992012265819584026074089048612218890807950395003715728635402377494592134835928095156165035667276481107995978113619232593993196222752070006399311134372070255442405250694670835817014889775505458885867937380885983693193555489945406657972093072299191371974180678173514538878836601170893424711892648009944482986211012120618111345319992137266191157197050621955689611854250480114376094207792291374724530171383421814479201740466927108905665493707383550013299998029580089666814362021062438407691431754193310962467932244761307417217249778783080171478990183170842518242616370208645848152520744737109914710318402423253816020616498621419892304138251445891090045222463318504637014118830811681368066070928038797022313650871426941988928997160128509770999110642064977634989628889036366533650456364648251512318639135067249142875011020843544669521025463994857526209125908202455979342453198209911272675695860614161141591191722370147353489978341703527999864951288267412009176724050344412056160380585919082618221740275195753971153993709842847260018341589696909426029597786719229877919692239638928979987425789939588098013946252985138470801807514550411961648203916763577934402149963870533170385105619310450922537050881441774243397555670160714433474833126567873094270740695779836015198962274526885282896167855958060827866668340061396793525100161534005947529525381635046759584599169478566976546652846097716704331088143867633766236937679833451501919093218751761548123330299248296290424953318619635254877315640526181912593660062020118217058556358810911174227786499784684930111840685010041313199883484903477526877862476085390659497376562965641618907074428206527533443508381985343188186134992702284398033205932810753997274970907573567784574349476492537379480246007285848286180704220719301545858984732040945889871998353049671643815963211883622176557528908140931025174884890605036424757455676649330134901209343329330424978410569430080994725194269994064123681962462507610706192753894197023371360686715964405121923097878979930908623355708354793980379025652751501764470402538272673374324244553509415543671929575386239999536588742782256711811512149268982902937923936939495905747939050811454089929603529116238214061259652317212299611566549959316678402763375531013635150945514127728026651465291850103980864080142979137745539892802109199395506497182530185694037181769671254024512231146525011210775736834039877160809265455030924160643585680944350590442623787541367079750043967284318938513003836856388795521589907800479411222716170274011700804333770031248545604274658633158581085046423627389782347694902228775732697170182788742264106535678936579644644904307266829232919469343163242060326291578821662352145362841462823504398151293666339721420029931335226068107788912383427884609108914373279549949315865890126407183114255526930809837182538107022515792293194192209224592286709946975446389565408266108222696493768870715329657790941011646481276397126676556626800760682712803360583566202017097255290285606266276334395475283001047586554612304690681751987047012494153275077289376034354068206384259726253802751930883346138044815224639772600168083680405402555149997669448207169102294733527869335734327137728996173799329694836565909441827532706268471002787279198993487250895878959373341568843516597242716109843316334699302584231399740495818893067611340555513294010346942583867168664544111103920751121379861133246515254586504429219655465849846759206373930347917509922722735586366017103713664243456003445588144971744922888257358490110779200362395335990082406126068923919352593925504589779964789810438108548770755257291331579049352845784027223275040228697077110075188163690006883095370875512660806531619468120923702276736407657084030788943344070657549929647305513567149497144727687679690451007724953869480215637390449414901154966152412793956193869254775310166705288041782553968578179583706891142823019846454441549053197205298542545955993425637481994245988093732938033769111957047799223473594216791642170273104242840533763438827968997251229474830645256672784698823501059512141259790364819768389463232979579275861977813813455974117796645571823830325056497290859639399625262750644474461961489012772409257836140761741748195618105507173977747569169486826313983320420233489241656865234147584355696291611519187634524579607108950115874584969175222245930414861929391605569612407543113328807448885414857688494167074798569678023510773651468979687445154734598317070561830493354514745885642916074107665729760808606460892596627044886605887842455518518488688634381855088524361469744130549819791102264740719471142958033720976922591147799242218221463716895122446219297589689350103524762875179312303634167996845058217371297710318949555352452585859261705194280069943162509358119419201976297060021810485101205033576828522460064696380934393156916854301537533765336931518088381568208117865182832801659176232861428094808278781190167811835065630113017385374397167391293344230929466373357701812637486654245821434796765989156015422915096784048998513674163245268605913195269984846835303076914489013412438654614584243779624388383486104380203979222570080686277098594144775340929989008817038214244178334580279557722879166365871603906513125847263949710001106392622960182235785822550930590596462153635606295472053185091698758780411834464579442730732299383824265781264565296854120662470269241402621435232975681938398623900677253588722657130510343626446368826777658887203534105802799374347207630330965080000477703550134389122981005237477558380101969394498619866931643874904495099653059059611908577175828910843784909480036677509222817287788643245412806351356086778111358805707448442532351406319936926269820088563417046749952598439258019927505306346566034595713280861781690946873969762786714055353253314813323495406100915874280567953896542345617142193011681162684165248726998711709864785469741044975395025338768494823635543555364062296874381945064226754969113165595555404721958322242834093823166083964961381857442079389987331017025514101289290189034662370950358191931070941271464554260685461857922735934129473685540271257133782333468090492798035956805969325991305544822193831972365614631038666083045676684618331186415907610596556247883827107098723137231078814989888523355380047449271374600326650016350572624698768305398225507983077045499856547540769731296253649377351399358559754426086105702846969893360595084948234125838775999744283378799861306215577765146337149213340437495556145746658663988378470565665377193653475593152386742608127996086391635910568475036610669923427107911104633769171328665543915190739598248760512062675601397415219727682568956735173767540985052486229820299927725269505165747549283208509428545513703867095683209917251719817105452535392986959231439762349105647795244500826467909963664120461049341080953537935967234568689233511420465822135614435896929837230442073407166327752123213896910387962753600982217385716975789776625336558120472710057507358875762092417852086999886434347843753291762467015178515202708570900488463962239522437198093537466637226717191750773216287310892654010364520952563024444925764264517238623106259567550681461647381439895299962139252747252970200495256594572977741042606140188730134940947965371854984996548908745263389927442660998007176847490191245092301841222272621914390172399054634741275944457216819968527756441836894248081481914069524768909641866811670560096494557947871405518411250718000298032808254848103046081370501480043058243186389230136398581014427119755165404342083400159166187321549274882737279591500456330826365984756162755775514519504379990209480763233641596948004441525891291237389617478617872002488334019425802644988457402047603978130627307086385955395193366310013170504484140209915142693456851595784130590422448917886630029444001323443657478566997394157826831925774455800084081330108999051854845989331514362072760185392514780767635632434601397486460773718258122026184088929473320472460013067842851589477491032201563778792007083544331172460621563642330322461746911726879465278479836318504021404784160803351865167373906851217926381474597284995929727219788014021107913718012965927320828893781186759071909167551096161557019728149054447735565762374410575467905057563581586958338718027163686489835108201028424719445109152593222185764258160949634421541486574809031400783159123731025389606841367931190890904515590402977557908321064745926882333325162500331075513153294798483649373888395690935688977013433361064192233597962121406160205333986767511587092673477239195428039934681511428760766448604988394454381277546737545631285094913745703472507471683222224708263654079930900427922638472213701082164187524901846859098160055596608596450609590521565453395219185604676023179245159037431622414484734470557329596221487737149029073315369386318274853020364004809634129008777028790937160652618434920343626947433255702065659349936238247806207062107039078356096840437204474929440827397054534129336591006860642897227236056158014346077820779911301692396027118935832467672454449785017899606954989649917388156112329845302927326580603287691458364730345490897331226431860827296735752430005549436800207540293796252012653636493731404975130085025771396425511362139599986006966017307027433061284627401198976761281239566135534476419348645830301524091092980827405974572807697711441961246832689639107950682556307883902754832235011526037673059922939206445635876917376876301293637114837887449437277815933511940206660662217075647550667533314887868460551723977840571145119667721893822138879737154858861797193892866251514187154114824837331800264628353045569856427171399486960420154694524583147886908696755273499598110485246521376427495608839410229751479420794512051583172045564324102433836800435385323679709044566375141885783849908073300105998918639500137731184099083856317868509918075157637712425746680685637316587825447885391987854522478613353905733067120783270078959828761800858260457738406696213219967918122706955073968556778582397010204355528803715935551859272557690020254188083142316130854789738405492773996129858468443471625590738012367155071090563121944294198425201404432268800567146161934146391763246730546647265926622165595129337499862686977496600787697100385346128710771646155018015733252227518387468494528989428401543611143514840661640727328379692005126898378606001435875346891782759964550707298361417387973820856167477138881851483480953524578756873801799702411425524133633946793592072969082996049654682088995033217126496642560597352078293892106436418634972480946944054555611095638077676981915354816117442394465059143098514828948548928406296783952786754589865098101368946768442073283936998451440857793635380914720553188804328698712216349721991413940278179026166627585117033749170758292968871447685949191331544273135890887551236790928611538087086191573746426698417665496136387935727210190630094248650886324814046677922230002981698289428190350917661096981064087028501593933270335911038981258263404119571281412324586257361927626243749349375148290573933779424292778632202315902597661870225981499136843645442431044368959693976526214103633466911540470889844226841456026803471447646451711878916060816845116789081749688831199860325081958234807780894854084648744155119416810895108257785890882321587058009322002378469776929955878261661435015864119274219866408646900328063365073227823069687248505037640285934711086197051851287410865895039444389065252282765007095625190183862824024123803574636552123668152385317707938008784269925463313752403605189788324274972442795449944087641934728694113386038038227010153748384134453407490247506580964678429367372357359565253804701226847392408270348175923804718991686271493350603521098670842689366713650276634815341463889047262901510513180373631643832874068449070007684299490580783157017344792446420195515387321102339896274147115570708738092828025575544253292424101262958131224258066674485022824887694191470741511561575592666242167539565910084911049409685167645070990230041578194687552538553830862138176111831526207340438547792238890945254855888986595155836018571145808901563663013300779167491829720335498412458773376353799625990756239377141444742855787621449928021392220047008829273607855918781986316191275866626482576585315012220293524447496853243510666777741200258222601375976986869838763711724351143884127885533377841951166288127298064722692136864169017525311074582323417455476009309000930875074504096575466494595462785692254823350061054941496310772158564055426085517132201206698702819588326228944111744149868107832646485762320468691249783638943484935803638156394758892695290063401372317439894460213645385069231593326233528538702255503029330201452457978744259923439336915795016741413123822089074924661758938709929517406048542198980535079361001105931017749884269935690580029819363995190071572397182331823113377694616067815634205891247032406953989178173199773636002807245001738467354309032917667111009926921099549793959852424856245705866658495034579603258144381489573275622805858445618925101403927205298280653822745844927978447418263291325337574194495695748363710875899167788861654156464796270798396010147118348057094412468370344028296184521274686891669239322951500043327862231231829660002058520873108841052232723696450013636765796016625903812554572490297966634155827838305539126041092721370721834450769159114109074794658506430783771114747262847234136716365309794792927881737730289289988281837762483204924432658946455092084614489874560490301066228890162150525341265260445322813602116326989437499703879732443514945143811819013927676635333235748664694119502812787323009439102726253030512257895549320143369517777169293813306138218915297102474571832844958275552650301231776740280768370565116921346780032549237661443344862777755273280068891010527435363718195308793629590596122453951299997746931757298079132222356637434562933269389283975704445995681721443703462909199233644274145805942780044511269247060838008873098802576496810055032252056353943941968326723433996164914713629395100443684294469508239905871557852336484092312398224962654970644048907225031224125426790291690371808463586705050225179546842123239698483037713954036298858162695985708714231236639027754523338149649599890215944964699573411950007411350608985388258352254156016557579229663811603382293882410171746959092759282400866577698616661638664621974403064443733279566235751905153637057049695518898916828291069490012878721478032375861415502794222664159968597462192014750346826391927080306435728524628325196153169441090086416846143857675148617910360806065261462795868514906277740492887622108745118560196617518271784574961775771176360496841453688708378378779046782548294693520281412076415580971949035760018048130037800410212654662457050188390314963104746062905656827268261915315091357839844399076306697969466206487831298270061548263939287856393574892189074189745836156667960068726188885986399253264486141617701138230262773467518328480711227725190641394296371032567211881158945759221329224909196781926510317729366011528058682684301376346333286792874976914501542819676252900956200087460157238666985379651485627481228944465771501480005216017133858535802749083425447747567608365152816313505547638933992184675469684467903050618938486417831609150930551015757436223008898416009981523920311019433496195310214569959465886906775961113776923880041439502181350944444253632561552419833106444545293767004468418801899469070465651707853408444095011063611737657726135552352780871040637143410949683340226231114487023851696854962396479331706984804906724789114316952115501182778350529122232292126350864607473396157522482806388537442935328599669617760070700499656695126138433527981458793967540908581910195294050794330612379542459537446054136141533297651451447482886567473986151531745364661985816169344354237941047308078625164605303492742265481490394599209588612120192825284121213965259720064624316178854452329681166847428987923623380939206282591776211984225756060904764320364602334962357931156648800069448208210077448316467101358249090543815185730062425358583059268792865571888697140201149592203064473925402428871174389087025279565041274590413500883128169880460239849235886021637701509922979376197794900834917085461565756673995745748405788569314335714090285197476424501339951985196008981793180583200963191299006438738780300605862750240310552010140975949731528147356560259055612179752341560360274774078768888392514778235470581322709924457959300195579817046003501697655504542557863502122625731836297571922574127192722293988488073262379299867829364921034849745423987628996158608743327854507718858447204829657348197264923620658878494538964671733218303554123524401297081794808423454196482022519859147292618787812448652158491130560772893696157562872215908925174399170066036267097246661677318646647370048627834515020490938672613728496319656845095033839871537168912650859793773538071262082821573877358002380975773634380522593949258438848746654748832928547137493200132988517050169988193585669882782322907078609712379077691799278758397643905295779928141419848002935964343824913437503105275933799238006389270641623698838217135075549539313375641825613036883472023583387008033775414720739062645378780406309607284542985503860048262170473871213948485112133984448301335768284619683741342359902896566361039383186344554107738720473159764352217314211793898110684506758077978395752145956294738048912537065934305697074328172702236470624654592953598935924274792843129468946478906191132708296198643394382151814218157035692949605940094445172122572449047034845196428637328724701724378834214031893034913128508362816143475523039640708497148917468340234118568288949466663600906220997484338700989182564812486559780198107043138816019716817445999081300624786653140276676249006788129114117108456899747356748132639313111504032532899826376597695402742137606586544202465090859050779879031334746147773011765303390961082460769229343018153794452559174456606990299067686059142291630766740188848345163799760114938661150861533682040748747158412342085474457608543468866056858445406200677027072214702253366850509788061262056450386917292473710032457759955866726488129531703561823454694375940355422261422999532398154927388686507979086011797868418346317672600057051935261798287069328085860665654982737737030372781806680929534377205468475361671349595226322898383240457275837747179885977839179662277308610002478425266390019899451117008169850859096174855768857951927136146087916515354695007244009700570667320799697502776611332738135280675205600997493685871427259060000611510674908936054538698848317511059712848906246193996036339696267959316174504916822647295793140397182584360385808539521444366056532037560045868203633521067488547026914714790682736719483649045352257892337830288929608556464597188706304039695055065754521655346795677238958239330338439759917602493569474976727548524512060518849793178404455032082988323848371977865741572150229290486601817225772049266254738133160890491933371346450751865783633674950506110424196330196415146605465873327598380530960163640143839119264728810721189122506927577215114824230491485060724094747788122167130779539164755318833853582511018008307411499085400556881645647672489939035981559163603368382475181073409535184875022387975796665730275505871798900981007113462898164101160363768745121552066250311659723262300345037413080344891922213791212274607221706240203207044895091788630674691399680449304377169686399725854319021643803223166565740574062550909279981435178826997713990596888370121400993952689461436419522136207851805006853892288681371479304194436645530443285336471354748201825751368260922284963403932953482499079403820431747115086576676926519720600830599566820797863669349356111113905919416466618040252762425820023658517875463706916033341845965294288598055044989036099706390049750903232331001073682446783804380639853611084934404434762964268644621829433342910613901971991959900229226830650044150084899326889038312878593268116634080881576603358840805281778370974997976119428192517108943384476205115631378589993802554350944707399957477221660838926505536071141779002465216462198305808781576783230059951752048579253234759921269755399328000901159720308870492333106353495733354320024826855041963577172190347565111572800495427188662614161253668223656756414444831910584096833349603189934614859169182220352850554339609893398646455086336793454370176243720204015743583246952724875381991191860760051314878417327410764916188872753533233645962793984080610742135650757294133551084065593834083616959326662129265621949322274947872561606912607155898863700211679687047283590758653071038049957517357124761446238762008068866462785396254369738457596295930946903914659077572440891789139197538543902391635570224258701718894756310440904948776139420161191041591942324151651743977120957421275511599178715022237455760733519394887960397519870359517125835233025072282368545876842983952803175581699247882506275934171124793770900024320101050674967433465772518378105664767800267225069023880697376997401500657064746270664260369108178801441957939461447479551504372787203252414005778533736231574009128036924296461725897109877897682008278394440624938834651036941126797402368330156829380014011237133698319968828139644846130413778670871406473356715241460327646079231471093698445304308864081757165832423644146381002005017427044766360123563103470314300922510813888642601850089803733620945488376581176777571583756805111874497088142090858501593855075797426249566041209121674755186038681916185412777027903485679056850321884304731629044291765551732474059554144539959363273506540867246249462624013638882743452618900472414794210177722133370407958262770358660865437558603728786218764981182371336806450521210030969055186306599486785781666138863659261523655304956581940530045399690895434248760636717557627691388129663051199896272459888626636414603079175142051001904979150233106150137044077110907495463964955337110927975253533594592881633114172568411729241250111629502317708790143095625336021016111589432863655816216604295481750555294443571197452162572552028285335738254894545926381262045772137903866482040241337496664780314377675783831859400074906099395733385064478577728175010953693268575539974270818724576597906883158422208208566299222996303750486069844853215864600719534643682177159577592230130795723446319926890649481634904595786421480159217074452734257180292163959404719235714129841092045061086257822675817904613946589289234142189357576142418990062852150146868868095356260086423214005775328973109684775983524670484945848505040218861870043614724613838020164941356600166870033816993212593273807780803369666605206817152214335200414603504307503087408823897419275632172177877394681305388751817523109051291300660948448002006224895394604224122645966803288065247495501663379840704784873935662573547759011724852641045486396369160807391405821020621855535206484030467085257483345044628710747619882872149032425591989355274458874919056185033287233688688696289579342168551382170109707233954579822191628193033961993506086799067208799195470738459906381312390143351073708887507841897650612428638145994474058585788803309591250255715965481557773467830132825116947895339301330151403991764717007539105706051305856467370559870601785251476906978021142243099556928996398914446275363837562745917292121528094483937029554775546922434946248476244369081181599150178938144437316495013678564141491798446015055405404749041556795103950537961978415934163727729233226814625634786979257950051066415715684876089358389297040624432425474183084566264034382299232037521399019342510994324089974211403057553272582478496901332662357658576155597817959114580622621387278545050592306596744234402155018043258337618952465005031070598031352674219280438614050734495999251622845935420551773843545150840447256073093373170492912562045333888208275949476409638830304906954789331956398310906164459116384674000756834606859199869577428875992315667851322195853870006127980641565442007915220773379532747049641619519051609649078900843927406379050264863697079641139999011127766756301167684201755152275692015143641524275438153959679348781545738542614761766243819096882003435175230644315579601786832394970799876876172103888559950637206398011484181905480262919974153367976019966420087538716284640407918363626379671339936013306143624296528414762245917107200603437376151143998920583947784632137296045448366182597563922831156321356551943869217497276532487020446049123261416178737699036168850915497368144364906855546292493250329649716378177175974267774016997984600753252045590309503549153141205905826552832576400902084063465037934918706433807660478498063004795933172856435407421149218892346879605041995839197089347641058523233147254916476319264585093615793360870785847504741678603438140926992004690038466756661030396657298085759703695709705792035122422244375452864486132441566190711247578863857619915703485561013654416784756845652315199928236773446912895033266193900527138023952332463988399369687751538836832326017427275922131185852381749673664761480841663564242397400828747411224920608554856872332440296618803543993611894686091612594585947881770698625458763953462566605178002220715922539010216022730806062531720864211605398909007105366504257354358063477367437441435735564267670524013061163555431947354187127425030420498890922789365690630532640828791888705371065749444435825636359408904581027034433575907680007871745276767172615522496337962938414352018437587921343614619023953937147705624010271662047158864129943295609555481886357964879876603094846191558886107969420435320108682794806950375912625250401844422566384293498883821094759430628006645764668471889448464401560957390029104456716161671223001178475082576232095894529326588603816704754189291437591501717516832079380259751266039035397519799351271140643055284020086184140345761996261022609788438891595313523623328641409491432920571121459909200515463532709508849321150135025072067989335015863440559288605469577802470384718946073319027089362100905556210760541654073876831631319787901047679894291182625563498362409916561070570926685473814318517777921884351008601696242129673123640382962216442264709169557239985136318225198091557989021341470376445100147541158985232052448160896431929859725037044680122919774557856099888878188607322631893711675353008303931560343773589133366521382737282903638714541230873380772693830682977993754108292955202170613672186231121059760053112994394569064834850110105678199502357027462195491565145014679788053021517314248667301868224234167808138904281544532714065838775579653249532695604256220424509004854868823581952781475028488982745494747351341521553179106895998944191239762477040212676950135944230925378662782850913682332826815159886926165486427018227905403128949290022927435297518558729626474420190728936195662977855890729226510031427305578294608759445049015244170727671834117683699934081598356123346054896773716986672287492283685991373097095848521391372190181967617792405216344391197643542709787918104605123547782274481020558504761713487660864504049013199967305232306504687336882639809919220874724560325061930847470678971836591603335941524947932744179697313443880725859723012147003291834256594129471261658114102747071865795616599043596672297640816416347179738983598622451469771225165745652509593128296775482194827055553526484463206168024460087748957543300341364856353222246525711822663499723718480486998349506354400629163874862270016044943504098249758375525113943930561883598444067079988749117068226801803963434023720958124802089117579161778382306990627982300392829387108435256984291406626094477773984317905812741470147873897666996715887069950323633570095729790056307584015125674031433036614296358412109383624630877051557388446024974442251281084139655729876680637118896869430629274189845576717938430519657663223050372585308491234682406878845370622195564086365135895530205662800482292178367923727215929717270907748582551335813353200506838065372129899127265010887828073511803327011688569455134111719164546749981557075250496712439453680221991427481177125984337151650929950678233351400511612931967348433810478048973752456762571774558836810600311099897185150858588190423585727322809251116718176895170335415084148646600103298806865628874175641912975618188218282999691437907144720904865566581743789347567399216966295343937615316894963429468784022475477104878211593367470280595723729718269654797229264042404907626268601721824565804273253986391675900268363917912086676299195129945924738340123783504052842055953393984507043277932236032794696300959079765171875818072718260064934778728591531629352056884272858132895272811662767978260904000036852176986079396929730941088254444809548619871956859275882247357157541316301227039240157358098784599233467934789777528243463152573949387635202737115492235442205278283779897989459768189253625924546709156409535811056663431649926381961845683030264681483744597040422125397428753045355307580537862424440804185096949167889380608884502813744647835539739585987889593071966561698793122810549736194074491237249981233438724693662051754432827713576834605326184165361036201145126861775808808563750531161710786538624268227221410937230041004547819196748862464656416703797869624197711698300280224990806134421352476003865197201361952028705115963293841439813937187281834405033200002491549748110853325531351036257391667940304282835040232307331843012940570164343419220905719441208794557128622518680513771514730766515687672789789221504066403930970230448128934970394952828520238700945227948051602832922658587881359755510343155837160841434012676787879475872125321326417918792685650155726775637109910486105953394425429041581879271950743618970673420385823008213170637449364814199532098438908281735905058660098112804601519633174312523268731199497479226152237387027201788298536418615251296280342368806530214133023306643171971910303283164051177492367532323650946189739463575351188052093370705945222494502590488883996460556418073468417568393113547492879983933940463237174906933117083449522938343935690130491881283917453979495808895583645934175620061200853280635322441475375502955007093080642993225371863530359831036973892168500014430343037534549670151090140975924647400931159242369304878078976641847476551260009108174570873634801128148038252927704695842836871943922224832206479386831381012657018124193832243470398343072071585244631475081089747844713227537347247321428661904275890168356003798535621403786235828144083416396221934761085763914943436355931030887478724781744671583980043680076152252217156673531467746920827450770842503416493049082958243203954993152499926354069060212823552386071393970977716915255742134996443846606684474396333600029613318886470770901326871447858878172000177684954997980680296142296541611079321042351365799353586499342947244366260041208062756755475383397821017302121269923393339545074001952153580176771675054550101264567628074831173360084857156377097822132938483461598827832778093173840855981537572830060971346114438267542784562392326806474319090505221286561123580104038781517739857155710692069759101585837422028759361382647121622880853915505788981448818075592448394548513379058310853277509873602723976642587042401200447131531464306766504389930564637360083148613693214804905572947087275354256516283387406701342849791493703366373235249395954030293796215809752084394295531873403338284655405111779795061764968339972686879016264679134647976434658083511031220983656762459561826476310376807294378056252032815604651638211891666818992158296974900880804678910766833097578834465888009506617073831757058384066588932535393405909779893984350070127893387471462624047652097859108510472549856521960917161147673140538791426965975302043356027867215402898016998546696247056138349362941872845000305673708357586320032598450995325369663247998166453075404923111420792855043396137007549577762911703578284439461196533462445113422856274706403585763879526806521988157776862622813546925020523723931696676552801396734457223098196904172921434002989374469520458251264627636864580279526860381242061863574620406857127076575791912991763719957131436719088977741969354510878192647534897030611095292750181751596169502537756399838692072846348123505387837282173096085697436250764000312641669704285220047713554161731887176294837405500924250392962347283716417510481495820088648735033750580010027250051112376925265702824870614480719164951261568139612963164379204654056733188110229204793594736669252298170137778316554901189537053272548872150123008619994545694215123730471054414142078229574278630145619682684889540306293217230661226818971612518138640415716711684632692934943333655931406257947770545125836525561925966275181469225015189008917284326696154049321538170681896215645719072626018546618987979646068847933712668081908799686283116958985190124402675360482196569681492841350117454156135348146356353451160079305766378272721240563821818330886327740369429569531405919822699101197645535725729052825435463069472898056368399576573454621195184927499371238457916195114682993518941652184036944917160903088135639270225855232972221639215329631683346788030583744059437659225186591480508577351093162808720425132952688147508586430662045828610530752801463658018780930231102214475895170075682316705718661807039971966866514649189380561787754414349872673676534943219579259362102267065008734532967656846503954482181279343888535192670383531354345984779430722812239499243300275843064869247846286748202153468040746092920862550100267434337218995818832895501685100633697064982436035384487511672378772712713115148092342702137007695504532257893227823742689531179943395093669029813030254562309551488130510762836765664058226086519892079640513389873160304062584571740421769220537868087290912865006393443918052570310054475126061926559880080707125458546667661356403712135692688854432840788425844202549393714549059182120320431333025626835131290024568456521937043953080437295384838433426854835902047933573080387018995894259161686100011432964780740451603394258625475506614320282719828142523049660416821474284962715105220766209693810826842672671747112976963430303893191410631045433268972735915594009472991212549055570431559901077659862730210682732249530917686962145967146682190701731868814599577056030492161411586701899475543410212106706768870941033551646454673006402328539750501372701299761616797634703476901287777585266967446476142059905194798686656319954246782637668297774987670237003626382943065514845876589357060298175900830483159896117568457834348086315725598487786019983326889888419272261163410319788714982224035218664911867413702236468706727248935156607597996038321148355098466804943863899149868874639738137072482943611883357602005403993806655501834393990296886625725980626132740943228653108674138182209217027277533888440760140932157663305033416787973696745428632994558330226180750771850380045009797276390488070999116421510706484412614702256136363489000093514047650214909205799151050355179211788549836261843207670543192140729112126386612853933548911799728720906778567065682244020198139746466972441012262073347439849575916232834339629734695969167676862836730264794203344431825612167947581460594593629259081006302241705974729360440804975455344793957557885860267985978720721776391781446306292896130378909319299600007114196110348805308348464375169321781504574793904339778219767936737373841196379165498905269005385347371984393307343800387339868986674786361434524706560509764222989036276545727379608124998384455297267843640829195049135641708288581441628664557987213503918999498407136983560549172280200680178825827827705299927431952138241731329336808668648289895255065457668206339708870349430920059766371268871170807026584868557460952199116662240521963556437179570436856336634812769449728768094825523579669590288661694911084942446184985924080650388317426224117204606340017368599371396582108531144939052567207676341623206355328831927256678982678873568246332934354029916589309406222603968498812503904478347558885544962401335932234874332614275379065577189684164051772465395248370983982127473620919972165475582234954135287384441278029441936969951811113001670794933806615668952971810503216825210356667145680855861712809157222443860130042778702061162241097545762325869795018524783065880146385821800080710440948098457683621866308964055461528636201276586568233712916308929398215527844103792020034362746160266197401466055553606640861165143101579714635860785644386792530256866154326925427907037416759882329012464851711937443749999860835673958899790074962859907996489612491803220640243389700339545660518392844481485943734443705109727961074630105833204777205733920323204861902110776474811756981879465287482691666563990153899380294079517233320255565915388778741935604042653447566525760919225256231064114664880044992483672901993661232475735107988310165671242783314965262769699418584271855507405140850702198871058395565070602375604618191766560604502599209485674927925976970943888689128244897634286009300542709224604741726104000608235506767040791108926125601600526775058356989764370330090780884746011049952617757674143800719869265232356959301924074186046458523351343024724314142447813965043891451408553000568923705718908199199200913439716467544777847280861633690164453698348626287084731955585794090851376327246594218620043776454615760255878427802499611947681037832973132266459605826417515241159844182263052696222412013053045963662471687121637654060574543353936394219101534728577063376438745449555371886624772536554518074093355238696265759252282980617906580867338006672542833260795456081519304746367169806902273753142451408763536570363463487879320702926168377380450355261752642664460980322797960099284206844696864442595696244130343531437294313199383395178719210888929213515495044061158686536999136580182052749100815047070855347936735522378161544411210645136974943034684769499041731735360378843172967130314916867065534804205925684930755746211573539780872244552094293080883438691071353139581220310280172002803046125604712325084437224658391024560590379791955644776747194905701783630876608877771289763900774326623364828730056635182375003389686485883206526005568515318079050739679000099550138630659594478027454766104923367369005894561541576347242547685855945595625311820610097414534813745809080194097447466253142780357133450128062737511311241673026778820852245622504813974546466289244685567300028533889269378812543149106480942993731275877644573922037728537814806024577054008227134616187710574434882597327995512497723042078540141569613439118099169805477378856582688422903072399382132434830568598026164795206447694983326786511135370139532180870544994661216415062228103648377416249759238505248753348993717252387761305346592745538472132446807890012880877952918155540668106147215927044178635458094260799752778448280676484781743120171281527457069528820559596428403827275333477624298157952099209310808271573971477071886564481919112281585153936901204551551593954997800647114399502140901699126484844510883246404663439935694811019157649902255826917270185696094623488947136060969123131405195420347628974329678261020738069407202551626222684499036870665938538072441889517099700059012897638300808657557405142571997064289031580369302965455302434998577435660819502406074462588648239223326292811813986345964249751249942299187948760839941104184885407802539518717390032025356631128256753920703104198406611404519680405851397327963188196440758597572238063514677196562465241064179232893971559792495063714830860009937435901199671928723967882944133300587694530388942414032810074989587536036658606132811291682223484318289662715052885224033430236646523176323871604281704234186230838279356807310030411894257370064466104343714119859176768664172319625082170150557283259478846505135285779439981592803775414690156143479259836154293374043465530291500215042359540799510822689690968668659369148924371764393795624700998175674692254961517973909049935691288436200503456585032713612505072480827119610354589695149190704535912759695710889741838696311993230722308370300960306573926020670469298828287861115814869236932587439858246624601210108868961822803982529507834801121284004041976882356330364238621488612037119260203138592316601930528928962730019799661262990605355277452024276618415865524460313142643735256065921523199954890878459349201095427168485529801252351789522680415266235226091037497719370119320990817162827812073108534482364806401339101702563715803624688539928280884961497675488434210305880573509808997079864513712264473708603898336087688278283796250001214534215009035569119176083437132526144102448536930800239713951942882859387882724548285680335491960630038027146274023159654241414796148937580963820025492390597816205734764305956156460829145977349760775807737597178894214400949381280958933338627509984902238123883898461634350880738236940140827205275626007524312448317705559790116017048293268748466044307638264631768363923194197349907458917568582043045479731037066758221262557905123557477539803599784512877147736322546217832858287615516443930662896158665777621572449155340578611780534667303399313097512054641515773774868299896430307773100064186445477871663401201960737867576137690124509672584761138878446541986287861417013931200204595696031029092729159717786897713965442839407317889961685252974808813665413481569118275365705308337408445891362712855378040520964400808737654783068114995033603271664567295049462338820146039124228237385868402436062081626175970707179691216348745917092260212885157091764000391495020752847968656634998468929837979897776286041225434146119314870887162113803587016906351102884016175093857290658218558192357331370323026691586701261478690960726057902894938918832105747425629280684875827285422128825577061650597774895377437577468419943660454227100211973038945713611462536411683115352758515996342806318585149307203459493465586769005681768131101010319906046062577987861930564189452530233485384925181775575235292232942260017639996066810227589335587434818738255588506812438173991461156407279972796618066608655151635604390370741213331268669800409439589446434447063503166112852340799019245001767747001512372670379287209261815890415844451744317527372148893461844334188444826710462223411898450829184053719871122155943476858611950056378052826382090205402225044722501263919716403429490432707316946152696407171191738790164077155809471291565214166655347906661998334567092234572269410902158444580184647320204548030406138413963244227373710902272587794392453771203334789033678953379809467481017853877271498120212687982433949980744094455062791340688302618482543069358493026360561477463020238691111835499786053998414024189245282629370620996977709161080797714066863941633903235024243749303019022391782106614365752556353335114268757961131696233508122737194282172619003481487309509868949352720658967821042406205229884575226777391146167362543072638118386584067432533914101014589828023164547289942953542820372356560358386442916504929278954712700830140903703265664253755476434697787806296457075560235129743191462995787147887497162835154975220926836906026737517582361707247847426251901657886601675839930626641904865255180932103973711468449033874833080036553130351228297839344512013943739146297708795897752007994580826843361904311519102482406742468754446485799825729336868643723831912355059441338264494467347929284490535382756498977124497271722457108153522083901822611165537011014491219808585070735089462481926658272139581512181770597967372141864164081761785948690953075154482544158438680532248547791777141981514044613101901880872097292813973700927756591152258470151655948428300490662206662136491300577741055289883791069821698533934498566937938773284430828909637793146750339536532103757717554639406564920121873747398989103444478951056101248681263365127371472569735745210400642806269631625710740128855089289456431200762815310393973536832316203388955403850979537856013375069584354447172168923768267465856451163479346576008723492389266448061240569999650226911005375210208603964589864483634743231149563209312101462199897740737483220516080288499585897940273719611839841130153091246026554985922379056692312374777119497293423673736921607825401828255685050478354706294983164601535841428974418575121824565566647304098805139892150408318800533820426955123335022438422965582147787018377614160169457346855139566960498917167579565866883128622089840119607350952926745479457378924364960404206047235873118807437065012061183809787475653942841108783307753882653399453862311258459290188950941800651774343584494567438845041460589517909707105903398027536541023835347177669857754582750599867843430520799236179081443891738793741879262534714988746463111626907527671721620224193795977226185993188705748033674311371520582990737418835155692007546607829655084214028088488479722728325851105323545242099225925551842258055868035035708115688133318815122589081895854388886601824960657157106354438566345819230394944043733831578302439183619832599627798166886990396094131297631457622685770059345761717667533121930525758758885633778381838322242949782937502248296420661980994523394070682728962325793058838100203016810826533599634453245291701327224131092147977039546945001715438150951299070523553196381190683745365237199364872996949570112690615100514147221361996930946072255379332512750890829855569927502522687252900220269871854554964424887676912285871917461507246064471338464889054184860146111348919737372168384299105945988156939370951762117828334259560541450086592745763953554847464888263003483924175816501212531976027297867228356853822942137082611361198439393795732626362473549227548444462092796718222050933393249574305744740052006770277508626543463234262768065782258973057074938612799318539156151075793223155809062319507543018145384964965006154009224014949642446811522070420111213013914672258848548184362612367733109398573490922502804169619318268276168042995017882675369931949060812936931568360245817754741001948745684382547472039552848681977005271200041519417338023894882513314388833884802328131231760167063462202345944623969442018264863058294925220116188774261528161261732114291034096217657399759689864387720564557400697815139887447686213578519536563527809041751173220314614093530634765639839376223912059532896683051951952078260488301466704877165692303135747309873750755497239529521100902494879452745281731874201657654828930233957055230608555203267465976049635397718997059201661571700649742211339108966683237928334596166784827000325982878983966718920708540187246072829443883785220037163545043690900031980848883846440061169454280718201114202079211966487670080814046391147481534078106913874436188391089379277293135078146980830888306138745741447990818579822298273734675756563194511884095439508797111556169064662819972147040526539022682377035783143764554991913958623497100434534229559079242713215590907035919215703769219137322629474909741904443854902657147919182911342388915285095572065413770825356821849273490841107634795352155341731546699896749832733293115256493983344441115649538596190206191253197489731332394577694234770760341066207977478902009301628368208592121021611659323852603211421053445699051270425461423911265395057119042481113399972248691605755239524396314123054132955201473898483290353280886008541801544950628255372607332152999746629146880553637953941616028155071344452989818618810580460668717075640750901657152742263625358746309056305819700305093666891986332925162963235309467992095739513752241243508730783759479719087128079647463876754943438536296722128200763441522830217993257410616298879438840061817443300621807733181578500687063753142151335487587433649313894498100469800637168363785080563620246886407792851553865091127860602173539830867142996459610844441915373834926558432386086241821088515684052533745962802949527965195282392887281270346193078269811238927732482176983244253511079900023715781490280371301785791402628355595444400934470261220175952733773687156772475018969111254313080548077863733822433492420844376600868569041052845368982832885350325921231284931553942008266187466975427913518264029646609607327657624195039015042766778526220552383700230087597086869549404343875479660849572480938176531913389871391836390890394683291347845982288721766336552953389863173055168489400671782990568672733481666199136756581428830024182803834141092252370675332471058058671194909703492718635437660134675090352009625833745111583162823243775861629047012689888780915448068507736558049690717070501806718105500147341276709119605151602497100011765970019060668710101331456417187194377561253392927592449620903369068941342563386891662535189420537972167713819058004080052656769810200188107968746889232010524346796970755047579209596973838793785875613308558542504582869647549705139451420509382340043238625836417001991533755594071218531886877389002377498273426007446932991534777390642942486413940599311989092381238543148499895601711807248851591267178002423330923402001719735475300947345448492582566824051370104667726509025983514364352107795654506991057991702611851665589192467163929971249383269175624326495882722280455842958813520219288730278544909176177227350073362091693667528645670928235535012550764499198530725898106151588903519137922088690741396153030322538632915700345661492726131291993988223962353845724662128677999197527513711382372747095073030651384212836059501471657837806342042723856740338228806197637090443575358685027416233839779391362471340694049535184482973256264536773231594278863674445576233498094323160484781165733035939140347987981087302530166243619103153249828847349778569357922254544594825615875003133190750584794702690675612798987787241784181528791466469871460923982868142714568659231107294477480779950841354130314909007051465684178794528760241298646348920099136719494254412862857797868465811421658068497050338135299989931698972752002527636938901081305946708673038193991745418981058971460835504993226792495006411794516138013910392699900188227710058742636224124308313929546478977497611512840374398746783005836186242272767858505662987916895683118252032942752995573925348188937633671423108249525679065539932703315956085347437786335500580915864975618924794700769838948263583334838343325630459266388533459834639054869707499400407848385943540191728091203675204199354833589257393921903207374388401692069016243755137715881335178065161744787291020292409018494269166048339299335794149779533298131839918737490459908989472242765987567169844517093593874660611961744811084782102968342057456893690235813117210252886386961661866023291645704755356668225893358075391256225046015991093650091490572527897839900684503917930397710717917650296111086601480707857856318113563651497672888905493078278783444409773441640553537910833143187456339719577698843690026212542699683825821759035102075568582058808685978615838024194560481387860218267271307120872446907811118596794463861871626632879523881810684515258070550478199322223844468214282325739872142651085825137984992865120138193101579039292233257651723950096633760281482615014414210704679055309663470880185868978107246925379227265299781452250995841581314090754183983485638713983783676804903659828234114800438604850299102620758095437381553568474206943065726912252096611865471386612461899457335228863020290575594738546432321095702069633918571887665206429200241959436564319195939945593928918611248423751657077706882852201512666202473416166960917830210140045678821824453197219288132032643417036343234072316461355071380805066172077061756983433571231664820631719189920034098899220002054118397317832663388403398500932878441400183975666445985088089349619692348638392218635408346820441809963173824101480065968713244338415504750905684030439395020337723130852991353615383298273421409025709452945953434296928530116452625424486167313417989690978923468963764633392643941221537007876185794858980406345264219044963370523732695167086160521919136802924237870529830350367265941714031921958477567864506086796066328682786606439104913837049606287773442726517734872914402667531224036699975329318875639155665245254242413572539774663990272791488959084676982823597448606832826833373638974743872296103475736892792492498606960753342134486192219362668236482277338928761889636807311056454251026469303240491482976794782730753178552280652401060612948831049082348150891701292374984660987926261611308739403982334103790254101963666212723020409175487970744423547046737536574059758532338451054145793957046029307283236381363840411837492549297446383861173905862444683842285253648575035367822883446832447996143798254648863621583917222448467479883130059885083809401721628242983202735592557237073209515993199893582777299962837786430243468877800394129237651112538632440693799970244509762132083211464439059586717441909102829632712850080960532271291186248281727566790634827139606788567407579990769219376550774256724268876356450648517236838300791011111386175904708833950631495551198491709555866563603620814082035856145374737284987172070597037898918833293750914712708631308941787954826744305115332498155581677114533154465739254180307352159870487487735109029753306601044000715969729972989620968789238659501848377125124380464160675695496924048247686108258776662337895678880201123520676638527852384504653338252965767273450941172723258137068059945115484833599496976792401809847743855861882849383413508541143322230747954493851012356027069910244944805365125187567126697597545598252087241182889208433741260300278686512787883995274359095126105868504341389813832067755229689564954759707842135316541177085526602294041095607355089168701939485204097183794079719297963607182976003557146541123749383005908575705142299463133875366640627947382080251340285724381103304267645573512882391198574787852291275251720817225187317723670839985296202990890103223816574077983333860623284828515058264104770991292695914324831127570864465215069114356921517556249695458600025948930857219766176227196271878371821894448294244699908951739645030399938776404715226520303448310974925509285344538839005510823081151651884905899200205241132997776948118766177712737093533667420132138142512022576153593060546321205203507728619879940164503789107636822202586166903126689346521688402615191553327359394901199530424175450065075345135515188668768316086819020143209606510356496427075538682432215869829553905762595432932471494081455827005194333190975545593241443235302630664360454333710855587689580056532231426550221527208619958567780696519833516526291446602410877259288553897376131968927816780683681203868439374895133594638737837840710129987479048620966758001407207814338852709716428154123798104644823281463946183640966999106540796431425136550037556422216303187653689056365415130814380931547488654775344522778701034307927927738762552617614908723336981937738081253592570084350886435518289029892821994770964877858853851459043395315932415687542903024151027934469856044842942477085790575412017122101258270623854684453528130778360868327403114807974631210585573768495289308643251326704433551632088562764616725309227084722523760248327989114059590065314705070755993564654355994967931255439422675247396003016349330773129696082431365982493094364095604836973387975451542417583423696065594624604741214910829738911055047715332164066050174117861537647792280785414071492376887114902147483867388283160823300059459939829965825182370670038297736573372083340534926859743186965302096101154856893430803951435235470628710424565398429779989603909259353865521236322069715283146100016955270262793034563891914627049757755808352253602082613304161486908435500776775055019804955532512540242556716462438624051705764533864471977022075118511046393383024703694455018227296112171652399381104328020052465362296368026145295635612278089298176414390334669815394628913016795885128943730115906498815265399176246844083238657649432467225199946357700054613356345754223086483802392302819549520989225728402367509676115164318066754973291760272494452868578307021078709670982504082500117502577558639649951773271655951393564556944114017911520540052664611401429629596460394677410859946173627092231725380029156283484511903822495060785098144515627574395441961768554005643237830963586720322769941889632374515699455035900147403528033159989041297482467132698647616342914413452439675907997052389747707000638078267381006759804811594128967860821813777393690190134852961081779296022795519728616463362557088714197330834612577835564622827211236740430665514047688939209008753840329072954748653428299598991209108332676853734882833325174128866838563912324751857972320980290914152571362838991629229357735246423367150181429702872627727623087463320096247102165721413238121055124713588210503241197953305882143007003998541740272924819188814966096775166812138051516167053233810303002315985699132527277623497616290830784958217143843836756094818216414136275387945800118634427411973578456695600169260771034754809460085747143011722255511162905313030158881605187357938657803627817963169440635678472409331249452240680958198363264542300475878789604648257089704359297167874568861131869689217122026364412535497851394615400790735353949070170273228891906758309151352175101127913316129894992563993662907266642869028226198740835392199306320425060404238921061386830380766764989030085371630255471203289401710052432325180089713802488931654748753493013936271097877362094940617878211304747273403488769603315374791396335137161539714347416687059688264492203227914483942990619431607456788423291257054995621918284777722239426645756377312920810771244283594996935310183910530688615848407469448798089862169369709322987707042151973921700543621962957287030053576392093115661747307295726213585831167648373152353087615774814413155234813352166759601332299639550621056576798864586821414250362199481402069271549761352875876369878957292917187211736396865408762631200429075201732659301681467097484424924223227653082482477292394204792290551041047573265777380914909911911437996611630221601476999825555151159509517970408234246321621313736775766195894956471547232877797625339242123959960829440675917634126857341975868246698770679653871188875968306192994541404591866784642986894402966783520560293446300092673707087991484880334711146927326332950801575247483770662625594764043903720570349210832196490565877262969602239797409333784262616761860645665871321981537263562357576088987504022928169082000005455964821624271691169075446022284737167182601780219746549832515727888046278271884276554680566702137877860997339812068986083948806135682779576109705547152500664060360621878671001696727242643058232427095895374309998576298251032171827126350098528020892791645590104109365740289163823524579921018010144937565962300023768186398087231891297412543794447429670830888938523927566604593551118281129853626266290219729336326809236110012590100044693312246540351626352223474047981366288624663862658304576774735004003160622483783038061496103970689838672518886474593882372455728831264083907880375023961556708002917377141770373541078804113361123217838175255153710864931190199739508012465070140585745649705366140889932592581678376062590855397680443792715804589149697998419660403924761603694829675539376502696699360245910377657259430685965431750432246213177383789106002876720472109406989073012277099742395721572813527733633689737898809490849642021182171146324734127952322091511223601741302550154135071371143915503303928788685868421828959530868975358033810515779587233842254140233535516166669423376536940138862139152908723497971439930700956988488652744844364474125486590378663419045849175843443593312207157510262428312424442573691263424602035030617047387121730128858942058517828980326589286126354786331835069597693425324489906834154942974167573364502514245888368310927137829496022780187297462210080772768734330896284472425220101112489209996689045348317820046430985801576629888922561694808126679074576816191844070997296000925967297964080440252298982978637301472126754299494682965009275279233351784771779699111090881073541442181762799745083808539159807661035049189731299424896041652237803901356425361468557483713692147318152375572227470748350695432627202608969395138035874301894738158075704864748291365406236996250069991012725814770362490906589798886787942188567075368466875851716650965035999740913779128273824343302912135582235434925161146470762812644829603674911589967159889492203418182782860469237784436798823200834787966412908204757198918086689015614867262778196745292749166641759969892649038093765678571182882566819323530900524732650008879850149549703992773471881921937404666500680661485666916346819765241641753745803599842083414309305322692961107456741452555794629582370181621582792071677109156370797484824107109945406007673789225120747356754807353438436036824198464514173932947553506618293581509973818460082743895711134713232463243879587929544178223585198872618794382653449351585068243794069293274515007072311637300924897595871509144395789480327222377108654723647238379920875958624312075252865793493454329209955028938495778157305022255261511141178386072664989941628818218435234937199942291690713966143354725523159638954447593770464770578723314674384311600786861493273284372766803829790496526032555967645563203181393563300962867349451929093006408780930090434979475507262830827889127120923717647946512126002660570394187097255484305267756252363460735223271433079529787121227911121539317926791922198769461090702106073939501570985113745887428343219201460751627262984121008148929698932198263002285058566409508466866536007161440906079146380207663671330512000848107237096169991388150179890728404830028658167813730782603165274641366810170499581114880382399007346336239244901492934037252208478399676224483131121672205885229770980700830788939091082870448267917743370943356524382627670652172737022196207572467041376668069309026420988326924803655919904310130933344499897710520711823509101309289219530495329863698769914441862987127233081671392641193814623803304187712921587537815204978289356369417205201831413222215611159152560947545605693922185048219475395455504291277942720361959941379451079337367897610514901520058371253163410616471527695330665133439753503126844686315152744151266858605410085328499853183895163572658446497655812908158955831417524386975294438165739842223258065485866550547172708724905694837261351528840141134640554109242089504439653135318766323394853772517380729097016898979819701696598276152148576647006118639360112499702182271786022744658885943028358647872131811658713897385327765441958774427723453745162152416819787804584484937809964796603310124737973768319832701312003378541872243404493316306317082043066008818661273387093278125882286302927657387974295993935849431143072725636230147335379112006057617313358415342299049866905377747509436701844240564722657951028626977253080073480312292614089665366038562690872580031343723300290360346344588737815193779829364810231151439060867138460212167562931782154882341743855992574202746650197571771883808764271372592382008605863209253350992731094950600252888945769857530304788479898251571828963823944590268905050626986680064879159073368216505518296997835576026458735152991915235350515747110100508305919249663845516628810414489453430420465508793565737559479179966025766413877541744844951122552083079110954971247876380652139288394907563852001346187118892171739458175853026292660720736449474785761944106569322193225553625069847659283292935677460308107823660514860621284059040151906476110930309959710197283307760952501604165270790497465976348920566891375576756401020530958959823588219660633801777022411406003530634206905066326040741218172085753561130694564316887849640441461335150752336033903601069953081178560455941756105343481710776742209578593214826968030202616311648557004611551411948175768268012477271093061613220371800113638256780016545966487928890662565427668627498225510040511905012629094410701712745558599637346181499551310769753640936759212597031744184765003886749462583187124216736010287734058686561641341947599665588853888849138053110652482444325689506728121645020439124068012464187132317076945078465366945825103630789426029399711947660101576088146339186574213040898471771735052256416045920294541398862984334522451607145364385019980972253656420255447172130732418274981557095278879767004368084652195543214729004721283713568072371130811636484885851268116208083289394699756139567381710135704410530545400939523566675291191385840857640338321617531151916668709791026299526660195345127004933087741778661317886388312038141545451521608866966866053402836127710225347044249120212929355708904044665420888079513099294447089422384362140977161990586189603737638811028894093657429255725676969682929588684775222128703680224086124352426313134237107434124437499100526462369181560992500116078312804369911347568103689787141082120303129016199045053126426450937437649483263521704696725924581449419956179811376900422657915754471769383032502189759140111786088805728675840732160625807719174264869095393308361299247539619204417777201737699204754983824014239082977425184539108738365816134866432391685405891648000264255568840415183517940617431211277323136864613313287404615534098100557757508819075727831350771766895104604455712976478470608769538940722356322907577572613532697903333829381257609465041703508565744046015286264312855115848380954180246596995201741819540881263600791210593028381717631701112164173939556635234638736357395238472133388809311205870219977960815712543838842806100504392736865843529477936363668887567248777741841378015690096207573390515138125059788497619957409272411819318813668037973764408364640877730979614019196767796057806221680381189383454706911204286957414615459130996633256481685260054137257849302690798103387906699898690010149375636341459857910463007784396873275475167986402025456602682183870183886466067946289195543190366878443441094770079840667549990390527093155729221509282041419502892511430180871478736600927403499965069899961960402624528182268778555574012319730404611373520622188398247240120184135360436076775434950984234411041625389379406724985070803029583775581561330513986382639108621360921054914458661291856312802148051411418998197450259412251839885560494391536908402862172633096908169320966768164006568023245309121494078025278774574116429287231226983845675706208650119134801160439674835235877596434650679583838176391510977037377634701350872944685427401419022337494539046051481172930488987678212872796787404734691101908679053875862269180366275403479572067178000435542062329906121217687748304583710219086531308922516656798908805836690966805084868813652608964727677575312322679051889039722921399253747755969401662135631902770934483386703866869086008590913063009377279010985060845295594526347385736887626062981897236774918351416174398776755670701245061614588013230743695133165200441257427251911537621038759803762399618041378409279324929287258260045427532987424684042262858289088930558341484588968257810780312123025062877771704659350924256320563572523127241477073368359196054071799617018669513798457553411632311558728894314673795389553571582623446080506169025979093311600734392718472683553092961445059012703884718021733358643947562280384322623688401486630341446175889964108271109481280419599818228345194193730645695354412091400314268100749746169146495883134540194829815267390205184543371843416981341941745377029777663025727546185841865336456425444915533612515414944536618882002549125503533244432359767578360016372682880331948554654477130475563350109432073710865129694112018578394799108327303178817720821687488019548819709820524647289217961871877508809892474003679808384115669225229104324153380091047630726908973977502650905794148721417289621772177342684413655802365982195455251924212247017628658064178001096982137042277187123639496112129747369518155964949059206915301604490243973747698252387423406425933497936789616141940996260491080486938515460579711827966598838309200833902784138042020774398311815075864590722096237184415289370358555569589319944504807549512519371726401556251185762360414459002722307718866680666207380988716831688269613290517152626460143709931534398293068238602395879330003381965677710822440419012134968590599785441225699083766215177580417998965950732879555478582531111539059954827159683994209188028492057316322217866330693897937057950047811443664045045830994725851791626376059838123649740104744993459231191223792003816182331967945243642899084550890826733053811032864410723489674767898593929495410980443727084995206038858683121063829517802479809478265051947858269173347415359238106692719567750108948955820681032216927650000075187372779377299100006962485826713528813530432151812581975792776079418722341174192525879593338791324726677087546225431644333667782868912900330382655564709854582455753652968536520618774320880623809248078113147391019200748243777547276724088648585274321845364516124198937168618185474621234996172252047576264165032503232247961455519088219001390329857238611254056184392985966971076868580484659369029991603891585514521780890706139708563486864550135923059788666119197823715888936796482867896083134221365953741968453874811142325813151622808006182201541616559245295372081959143479532308258864520932927486523481581148811626073447641765773693283707005108918651397530009711100729008826602045473535876117240062512535052797399281221577698730865865448803575525031414748814368013573317895698289342598773792239517336995766690234112838633916904508505153162003992650680327991987145861169500685053095163239205813546257232902719612615856772106040954971487676087538120156736768844397472592223708831734410059417178710943947318741677632322926709491052518435589758385087134242921598332488623897528623217031139623850612800306921456912447022347998283137317225042878641522543767279230759194608978211339912769177812176170341429080015726745436514107641290694036268706597327772977445858161968972079540547312021925143647311299069158645137328148353011262870106348378824075800027786416543287067793614856313915603508972973367758219298768937018308866578912386412918737108176164046693811013033183382040415208099532370762775512507390074125319135676580330692125480320792546728406161180272419258403113499893226039504548239981573335601434858437419241773855707437794873929540653179738322209867679883410841260642470612125695629168393052562195768154112022693568671401779181327183768652228110803376616114795529266668743327229542575801706109559658542820248487785009463000620986338334080116187514545887745564796125649601099367112910748385072328496420744286849432538282270875993072825055094731846915660568476110160062958013270727571861289673894264791782828167173180597478972417183895775988296143014306667200509895514771727659982463949127486791948240480627565968097945527066978004991125286804373297037900318935069653668477649090280278566213537271452362753913237687106714558686189802704805353541580464825933848319710136147008432767282791765573103426907886170713769557884510242067261218917524400140185904245626003977884343702971266318814319517119823225783627561803743188761829059684387540859495902860364137746173540567127103482094283775164553333904892720759017533564068644503622756209509503961794710900785939586896270782070369731096961832740983384573080153855225827836742279300515719702415470277321388562654698018484431100672849120425048863238973218693462881452519579741095518436720916536809401667798691991108743568989553946669444413491448841311370458107084491687178454620848007943541684979110673793221348114515692260369432217589154569100922274340446398231504658553946003152288981422678655419395604552399016733262032095834994783666843917428970120012578410672043617207230356625677504814467957244444907134021305420906672535819520767982960419116444073321668358573004794863701502758151022245403535775702856791557318117316569658795214420905253841321853288506759598355337367574439472602367069879089999333696297376482269099200604416874360435447514501602368844845767879118204105359448922125648869330756006498569373065366525043851562786300877061640667017691355838460613547310929122979729081183327312996012465278771048471855065570546486454074969959642879667640637476372226965744604169752894060419524751693475963370188414804337492721936551550926109001848715066080043910232875814957341719796092414100593514380808577901709264302373607968539504113389419902227659653911800260595675424863614514996228524681673858523277641859005371281558509373351796294428374491804786149009092152854573653295968572581835874748116567496634938094050463106408262702737845817658971923688055541980830420120293034922473361907204703724940916421986772653993356479091904868048153819855667379207215649261587926446242067280447103583600659530648630547263042496635382446567260992073864410435096748334375893615241685699670339162608885687836200786192977348942374360180739473321780213778314265435035327108491645315295803004020591859702179123833890618862597932022540668460346286893618936991920778473168692698833158469098030967035708076691406080402649102763523840693830477700754574624028707637808999537540338746821898213508369249107541990265012373781351292468229713675649218331737816813017951637179113153327878764711306001738689575728146437305617807149496221293306888437015091985260749393933498508964888479500125435265310410537183389445259974072684174030493981302401693310048161703201477151532877487677049101466285869132433887046199283491606305881604972137379170440775943858342588678548055522391065922201710926301190552130241849511361110553481123336161854114692224409247185744640645145503185239406153024527404719260052336690108281308830641045726780060624507764451833879843442653879940439421320731714529690602551583180108195903709093828848179308782404607786909161667934852665592844865857500407989698429316928815143186103719521174644089318810615045600779775953162257729689508145348466766810290712143563662946282194211984010184118350360006535882723075343748230861816836155765787071215952526436306923315276238743815975485947153109860136574352704419982686614479667149480748602091039820344545728610293391907719479717848898966889222270133513678862918607399142994542506147936707416397185226247496713377714115030936136437223428551751939690188824007924038409805059897725466372743733546636976090578826574889590079120546697642311456872261131472000087683383428460378569120718655552495068417121684804130120166304132354352412059676886238191117145713715981834545967512193956023279629333273163063098453699594804591783989074467520489199560062271092572097005864050868015233492097049739417511194792390703161250429839053015081686569835948606680450558055378106361336927185523354095942237680553354961769547883246082953693184816245528027645695413278094864845031718840435545765265516545532659170337884803054270999896361370939971142230729914015005038915128519605167959306468348405662968976096427897475359744287130603351073702115783878347201578074244507398971682983112710491574518423474965618161211946150376646788336772561450489205638692218016072752990836695312421693474791587591538320308268429294636794147195987194294319726105326633536014425863211111232796580699424724598247811684925587056194626507706832969125671383538289179271443643421775090566803382317596727264966423448928160132934874791758481608161322186057032485359892212994991370754769774021897664431687557834897524114487881865438591586682192556190446303162640647538536007682111143704224986498865123816139119730976451993127068337319012553288008479787793305208554170319746810219415254785450620767754765867524680126866785286003304986305221737348024991240167129823828109278312751134767889814227873821733750131450456083093567516202204243873456626706290704320741064819085327682199778372615470567011339614473832424684380536532772549596817432407412484030342219604988788613226811886240998049173182794044861372552246280317826928382438531596374356480977067574789087604581289972522727609570549507680567076998225047190214267285508822215505048923735726690633176054029891570188691409297802222338370204438684226890692354396423646626862043379250945705882382524169775844725779389927587362099661856612203648010114786188611186604415949850251433642913645495776562370118458070008446463902115931326297614820631104607322947528349251282588545285999371138522911923032708090259676138193856298639699760664573681021639226537772186761201228313376990896253603202525655391869786696681246886483865060074194067916523333353953550621536230750996424590462446106277982379173089983859581480181707964416283072576259720630570888291453972250331630520404488108757441576840027067509329849664574639631531006420033289748851636149981107483603454762869340156424419761746474181583005353065439713776696239759849584358117473217088515559817515022307857745983040056183746025627852928536278711955560679832929519382334842044419953734380331009453580411042468341705314187101480398240861453906879366195236755931895593476453975700208546520989716910875886542841659260130564554099209044894607532640791389910059365977723720129316981384193241093974938180999519022519781325331369486211549143389849714193376158970194792083489812682235065407405987853240936403512486220103701587769745202646952133790299155785950927417239742522067982714839857828631862719749085504506323134225421314474492582589024562350251520554199201216660221785496633870317294794913665232723679370659834190180520985848527067481969676476489052032239623440223633772883582049377541085747535821906708135276242141408087815941390407161299506459478703971630964890088856499872821751670458883183845656669109303165245266050522886952667297059656602156020547990784593527146831979316613254544944965734837963286070443929243315402381883983651805562436790362459248852617026713379281274688343435487382276749532194973015699934056030326510799430344563171555742805492686935283041398534305469998547478742421050579522881246024068952958306665656266667366814011486409294359758301714471428971711961159024001774172550100734753668826625451290700884386777462789362957193834891539891372908073205121317882572855996090688256363008335101640636061367880853321792547188746169898763380799194750965725687055726085943005786548190112134049545350498698020433189904972795926966239369822230743387182120995044953619397587494281274073227611793413400517759920298478720721792055253389848861057074826678984857878689337619902295891622675028825869853288666099974182150619480555502629587709952038017250066691559367098653777620211764898092628671973078099807754347861772294865418605115069044862969829963567677621517475695099843063068835491509201027961766558144318239720099160704511069414218997667105204047858781662398816927604473115040363462652918976576314570732227333742763103872785229473673266821923232207233421477903892292515563680945340178486079108991449774006585532012651220772164794638328259023744078432630442170202832109420487796845190421095453207894421813723088481401931041645887761805250048247697888239854391032652113194039894455325386541494616216094634723001685104387760578388409192549643046342633211329854426162351747778129201217398787370369589136086659976782984452810019645993212925625372978310969721431315593045738781429349716156260213884427027830113149731188313951159685439349401678841662683805184806393084634029360539667105259263313646263675156049582303052073216281267877373336356601219032108805808866878331267431972171446269524917147769127962082572129889898051372030051128992726612374884396398805029172015632475391695794397201336725388897859401439552060966705940533674466465543069684671819052440877905670375754925025883445098446162940234069115152200026685361608492688392021919282134236992378799228261869177701778112423327625051142421530431009583503763531703822814637785505912978996748584759814918579437237927126456549383336338808924290373262166131423715070822969606190828957230725790466325781791816731493272464365917782990785825138647856795991066390241880186484061610517985569635758185700948273306932754558738757648420290921931859290840118152896945695230273718419637245529277156573981809800239348774006535609099176020046695517512157590144472058221644090443661626781253978398113947980213413309086010020559772312069618360279343632393463950061522186501468021360233400765129963131804599500746046195639264381701930661787333375860862006493668811107442898858035710662906056584287580773478067221312418593432082704447228369597325361264089959941260230526909464401195862666576884474029188276616492648939324876255946556666464900474508922935412243835508781863370823330682366039554782474296418097071883794414942829931094749697338372077410842954902086862648192332396751937142376107112198306433131725428598324801100608806499698861675915581491108203341295272931278097128530293856373502628708849136027720073232374246301455250357119539266499456921202683602705216148215323809189179331188801309979353351350729146770096913902998998655967556520467866333858662596997871093498703296750707598211012541627828712772147366931328926537929088857232344422616405951309887432205274750730590273805747861172635569045871557701858001327805807095865057206463059258961939356857682985044139465742103842412337918260245801800584821099365185817035928361409597340171990640750543728659652282853150451560185712645704641167374875350489009335839610425001103850962706273602794072593349853001756717836183869636667432528386763134865703645727671232605875595471022590768941004990464363001982251870530392172952701972743277656541388001572308099276471001277656644677905813307791953694575923854596016181454649306110452688138011258838778863043247857945090816465449305580682637928385473297528546705009270596141840128424504796172128445148303150632966826428862519125285626991790411818712936306469120327510370150245449417036842015209131450245698169983787798151147149095944655275539887550325595088825685589791753918281234235269521022035429864195823696203089953415686337896762837529318509141433317327613533574281662877832859356426695795633507942448417068686878413563709723256177635911696527667937365566345386349246068155532695826081614923247444076225453206848391504441933951443915844462102751687932721024506313020185200177886997479594731665526028218513913198736653920539585476655953350686569648063114223750573904545110844240904470887402890157623588909032050664451268308494540344051208143967491956036027520354245369895810391887299696692361773886532241540991135124816536870405988202553094805095247455183545488292265295072076859857660826430280420809755827788701532443496027124553324510745631459418659340202454793002183923882101130757838951896035128146400904572973336679327223416107990407983532707578824926412202219646427460751535088551294799409903609034561096544244728514748764110198606775172910186990808470551857695479121121023831354269637906940660729856419221677572591523871946157684280492125929285581480937856127464520777900919269347172678720489829333246909662585192821920736735456917854458599247820950123892351262880861994105526879537690351515462038578410723378664705034237291929164135648467843333689191081377181107610821345015511805773399710309998526267589246167929511898045036695305697517645193813878624436231572414497535492547668480890004676175220990332413991851876955047870247400043650605693544241000918785253028371584726278071710149325671211267802214022612841177076108843501723849434327630462495601209068884174525847151859669836708966077052944170885976329093894581980351873907982049054050332912753800101800114489194558290547822683131564191191325665793354413515355075630902843632201688252260108778173676705490277209213787801913845665805541326290512269156845449397038389254760377306865391442859898449295659885232736279705062286497494340337244448600854260592477775306616394337809495947888280497265853721583548471254836965930825584074228482069542996269761189549751208850783268361161533976761801632621417558283580329643464329150798782761164521462863757567626063139819645142334248251088431686626519236138773927603976728592106467353030937308916401103187966275478095927177031705378602715536218845046078808408811384966348527939197728306185932773583288010323041696963336598435481647944712927652398604088406134380279182560712101849611891177916235489641904184973964117300018677935891461238801971918786294482329698052909639425981267524234570265466299606263354043142528632522527378606635882417413768865869723426930797242218503472470223758339666960596216548108198280060056062145062330048874882813098282582627042048572742987310967317138696489975075990228675493285734031242395015329893814221954853581840755934102252924943609967629431794624750281846218455885426046779834503350500674612903105833672099269167867909789553620206655324519499367665428205694415723633379791959194663347986077497346103567795137046741810324742032485645279864136773900332338509126324705850219955334277928981431891928887102530284670557766005422888632936435633459810135407404371888049660135182005112079926604280049849995604067784906794430025476236024216734321560317769090674014146509811409369643495677843538917297118878295353450795243795378231244165708327120458778406950365176547372626991322987190710399480927448522083331519865691110181252486414808297567573239685676523303636527775807826665455264304739042875852191268247082965941339217299961619291513398831573769312723226818588528879445592684230758577896340628142817829247688420494312473885996089968378011685763741855449813666868986917418655457406371084413718693228237091155165533805632740308136892514451730653173093157979282049494872863871572606406339631293276936205016116415448093082179864886648499436115117083505770338163966040628290850753296340099279069823460746234504208357220716890848991500350205400588081790679187723022239979906386343141339821036377411376411493570140367453630053913566989422599765670672714847067504458606151291175099292140528418219213899964250543802600091562259478201235419730430873164049748328947992774529923098510879567798296933404052989527489805447190896515089306146445643025459987708146453311296631321143488765985720574336974709806083024927117979283173057293696306756873192303587595884273412883261417138552195866725308451708936187944339569754222551532128011151049498087874478268809949167838000196756222972528171812871128397352119355189148695011806785854104135327046631754760580227483611399474684238451888833372076958753420405915563477616423992203539095119517641433864486817257069775311823802606466923858106429444886337357384302977909807640476251449957038179567554931415335777167321621141305251398487531866768808634015586881014198209508069419752640481244788638990348159807020899275472448658448051559900399136266496951748460764672948021279857802490250972382312460071731330219819951736535357679509618976934462877391940357800398337941824431690041806396017453990623766811967050923751732128325975188296269261344734457495120477633140368864438583700001107421413587235337874735059352777419334174275341677583415211664830736282150245427888296585646871332422331884526012550515542700671472825678227388530154803452579592864364135230987551016139273171029969146035453876806661210560477071177956421935785072399471322469899396271790736280657423168320450682389368496144497917067807372352404718008945244866761357830822264352364084947278626858071174449437971974481348380944865966550256369636353773993222987450559311744247575207233672870241003811283148515387226493601893057458439100187641571896062967577773818690156211608857674456512326580118342813024827161344954576383883820379457108244176226113941566488774847461766327645660539656564564719656592720791284547803555882169448016776252285454240584916292699891020914419527308924578114075582353812694379110042585291137474892982518811004827064485756953283154046565025972955202590124652896193840948024908564261747639733328954247784481533333141732964173277924361562136145767166347985737381110909824642238189848802134049444011988304062903369655576018833486949346088979131535794340950562252851154107722728352991894300993426890358275081326210707792769308390070305182202206386402068665216181497475264672792164845440055323348908075232126732320499768829618124145984146600742879647411164738240217242051072925551593360530041454964661304068224056805586517195964591808399964955551346259124935797413381877619477837452919460009719632634325949597324837862934677269308154972630013432381859495726552559563131798063513564697007414165679508874219557730341781719323856204734852781919170681562131424109723386257075320310658759421086237785541045205295735807840164516074524095037639731038972258001748948418441667570118687235607574387944468080946595160882000438747208984352366806414507684138441973813781288387246364269706289484084807925830307470213807353862625821422406016822441148781953333901854890550658296697223595245595483428538732188280262268094747030765946987011203241880850884899125025734519989204873641044507286399597637942867256684396181351589005985722401935443258533275721075189480321588230651553424602826741574623560941619009662353658301571250049003037138256108525132630474891213531678124756061588404149263858556457308316294368773039415368328632146023455600956735102902643531936950377060629871072238038774231886855176879727631686899666695842142182920435241346120359489949665004782920074320870696293010571144452073812533519626772078136863019510265612431955713323119208987900927971562768064723508249319320395127487470446022271100479078609613844577577671823822941923109907620909472698643435452555931845501036585669384307059197981457082809228406899890438910342148550371571090976602843823589958113714911524541635288567576371429568625581161448326612804444258210353554524440919404719782981059694189204158823595851016607691426832760591727774766750573390493375268905393879251829757797342131364314426930926113626592506819746863194010905481319036877709967116735805348406831190263232288443890635753475714276422185843965142928579997272801350168197140943290620637942290132993604256288059663458022745593713525754092771758767463000047950866412193637372323216432149466673512470754530085727293623614633471318242004394441116457199349607248044609990122372869000285134801060334098576792321677658201037216609922012428916689031621294745040272525551084300287136769265175292129838479759081599065874343271162207812626141137462587116022086098160768942561039674246716473508255845939563221957457092925519960373671256922975625439686572944397167027513799569101031928990588882687192580329344014193475072290029373913230944668603079310509546414699526894119744531479758136491150884357116759460465653546555870978657132807565175021443676236510433552222534165220044353626002644233435213455845938248323141497711230350075823593360464254314367019259076570667125544688109698237851710357982105913397152646586135849576574438483608781131017207139780820751297144213696873174455770588587902368670805311246130954695370040119572931306751756929041638224940945946891577914738517054684078678542973049252547684898100482588102352132896213129530637803895911500128391126921409471925564053017102423416504913000392869021529333702425349561445759398144828614611850213498656736626209467906956518210214716485861427388254674059064695007149589964899121684793082275681018281586352732281517665144564937901200575095764696936593506779661850195900702315687747882681346372444506395499239195457649101554444149339458405465358668305348605765539812392109378483352928735057754880318673538364468169617271325177920638045314489959218237843034149403413281259323453399187099163942722479093873149362576041632585241092501504161444484437129782252060081969546605247574628252253778468887866055615611225135445312022112733526904056410065089051250545482982909262451162354373663260373704474734561289960884679866463301626864264486019014010796508559232552338834839857047262098112713833046392320012677594904981959325083995035423376144713029568255206999557136841341944660621879198523414557127227636813529805362450552853248201495077629206727653992923936173864133621534292743326408800070665409826568262105357995205254930111630562355327979223323033014249552374203407686713017625715233075793261619016455315612358338283619708374778280071033667821927058850091557683398882192999097255321426453079315066625903618686659528041252431271780851353093712702500718696160702812866828033041634628583110760389623487906394932371569551962080903287175696937107678669618666687923675076408044756172745521916399366585255861290592899600660729975825481739235994286712104067687583537784592010330957070268314420443257987039157722097642588580654169149081561853451893206450477773544000623710098720450988690903313786023979958350758766757215375764631453133894058360528339213343792468125904667002398775297763033947976724483967830537464818698012405227785516977689476641118297242421518205330640514669387453950441945499189159964011024949748605295114574160514607494180128706789423206208268566737273881192641935014842433273927907345993109300784096204769476873938094836197782851956636598290554547934017179498093469259439837373364218836688836459977461177662563113054719891821381249487607014097243652398557279287047273828272417134781165489048169635705610443890700930807770241036690951776969596323137277989851293165627575277161453679688712672972050037738157668187157462904104553495560341479566315161254328666822935646092446027783665885273487227723807327609017247547357255117952998292908539392844178134594486619431336489019674283174344281236172851186567243470116537465693047461526364378961974578510499622331869860670171543710203346677741722273903672229460319740663967095421736196468116283143536972026742757611685949530013296701713776812949231378026528618813134499383789528988671456020401973305080362358455167114588500352576968648726889195280247529344598777151585551055077934971714843012215280092626649327810893875632631057195048560910051075033918897177192367091016323331894866149391695633997381765342606101433806655126815383022107406439693995871440021247667077340754887781470798402322834243142613741142512937513747239277504238302611508136006464405599390921128435835264566213776706203149415767163429472693130770340958998147403423084016526986309842737039394792542523362898724110036545203780340907007599497996161982518573236755744930523942605952101067668954892281046531742064866132530532080470251586612065897273468902692518363958108888966555429688147324627862451989483068470497326656983095114389915256654532698551251008397102731993096147499772082364701833730985132696639915684902793035742687696069462012880245850649871579067920073072419281760060096967702154026826309363598338529898778621210731286992854140021582151947714313550804512589192025249521191772707095117726737607184726217798589523453578979955257226081035399806296842112352243578116964082646921590269092941514096742586203205162681950988466829690349774188912178418817711610480873260390052132632831826431775432134045841508391887327214185813638441548676586761224146329100383641898663264322708791502436132287580310033794138731781381902107604688718954350333419168546612096444572986713117744467249885804651102400833713868722247529577357987857693600940381596004496547250149892577326250301008181447258530498496221531463561683307099600097735606557755665374167550566126088034667539295039075706239103636130470072310393984292230233388088972406104518339958991129740647166517646850701414715424443105536466332079950324816782930227896340956492235585918159953232721203028395284707250759368745064828236586319787455348073363456512773053673957068333376788237780441738092077878359725179631227513614553761731879415903921843583866383332946684225758188767581146414912645163927510631296663998910477497837410695328462884621344398479553259080977826458356550582302678504617409177596837220172237173935597824607050420358599001430602976435343243433622770555115406041278190666509860690275601532339764159677939539907696781600899782880725245874093609391638541100290511586373332916596476669382574964114230611153970447913109769181488746657881540228433786398325210355129261786464253140365455054786743106239529979247213324677874194212099438160195814528403088659756646461436410159352126537272575258079612799927447092876577168244512304243330177013499274326631796864589320224795830618501194919498878534689074937861859687171903123413537426455855099432974904547385285641686218999713015631616027362941692494226366392992766135063358697140158189669628487511968879002931300269028004812385450557145668463032027399542891584866496660048979255734009526138354058698657260173164855136868977599066926412758560745940741383126762160276865070215570803660099030346782674331726600889516325666935174268795759129949318160213039590803836086985864890459207106747150928267626512947308198569026659915597102494011306128413303039456283864053613767324633817253176307999297272346132019904773907010436955848042651828988509487009229143256191537858254472851196175146503285184798351843938637791662221461415493630103552416198482387128009448425168014561327221154676755326654681193590318049944722013504307823348933164816456453397866715264796318302933369736642264015531551972330682077354575790020075985219871257333257096897734121205681926168133980094415233120643510653417499440632683759515694953006529880260595109628771167154942016038118473587566472028916197016169573176107617413185241795006753186571434026351721600696250879934693151093189188375301570065661155745912450206534501070704816995325098306664415990166359371649211041443941714305119377287302955919609145406625942221314099999926787162605685241389766546948309464918736467737125163764928409708372933705929955457792329422089478991321456842927681729518080475572547988344345794217894873903022887565070484500127086233357710021575222661154206992116534074668457986840476419865067167000516485657269442680948775791272100583931631171041005872301532700774336697825117520608359550530806894329173857538094770833762063658701491683724637283669035951713437056956479676127264788289944913569122459833735197047745777826623742273692754004724582952361178399741228190740475401625211916598868049205697398420374604797072944635511807156506097544605925137525412065781447646149777481739905054408019319014457619358578772720008477595999643905466263625597628175291974209387447671091377644889841133475819745860897275359606084936794882047278740259217543814120463571725678849511740014142134844278118106728806543243593314221980070696071643687704658039144602976995091064781596460136066093584507639894667724553819809849142532559703087947315948726679068417658300310422166699884229664459231812666353741587516630512703520226489965031793295929976748475374669799341557486031102863653602265248899587457291320494051226534633478932911185781515350057156338083220280243071465503137495120133412254471436707395441618094393133335822620382725396774751005722986136619364068020177446384842993942244312898312770070969588145825017194352506199225845011915245005275247522834435015917998583477376655820799246816575322282546572692712561451559093157424203542841710631476932840645551205033694855075584091663396070528382962572162678723872026609753244411532627649598235998741353186819324385552810922904937444395239566127404054655838816592503343559253198757988716949840668823729090781047941136790531847777210663250467283815709554127890469433236865108801037600413754242001797552098427515004798191926635903579900556552610031550472522728616240589829320321972107539470710092887817787384784373159727236642386454082886611717912056691860557252546737359855587006029635887296436276953076979356423337610347622458802894496814469494280987820062749628222908686431005295736322508697969513724506566066600575842772342493996936020985862995051891941626449672411233624388552489212032498957819968308229715106667438523231631989730245443745314001976495798446702842398819153231720769063030602420283108903695612332273452772893828783463232096520523379059871526428827328973502557648378420882256767364276966496787057599480957545821433028099070310701138583132235900917283434580792501607275615150667941322378635664947475928706269738769392795396404519146867707744870796803233516104841317598589015866528070551572486746347561962508466720513295701424560003586296303066463950487476104168919268956556085739410048615731112666224428480556796164288886940803517628599660792014838509639615844916428189444528191033103511840253082585505789994969439559105164123291390445025658592218863273199738834884939804338122691314088944941068609400598298463228122932685347066804886780861318436932266724519242738070379894972762803038940914993792592548029986072897347253750743776220600759143233454195066729286819224323135968882456137473833337846310130907296285029499647046036379955716504909099577464980794112633276480944213322279918502442758492703800178208770339684507861500128965668565048910409610542634843854757944670607793577493374519265739419845200112787049114781178616061741293499999837051933750064885805054247586370665220318912047029279806347089524390582452425481086601464159951510074886036565370796643463272235708644965972243347813865148692443575992218214862791997868652972971000427086988304651454464366825398257857249821454691769319237525032636753364805268806292375081692805976141299123896787116955919028057141117629929445515469252845202753819896104394639293281378957708547033387943754606919823476442209521684907656886271632532161910594464379266244697625612639174480895648452510833951076753543138767262514443957447563232921860177991190019076309989199763298797232592464453545877918166792268791176411547063936545919694291202322402676014470964190667353336827636064754554032850171167233174263174297255556225414993289512365332749637853264176037053577927499132661740841622078244795036647238227868150366461488017078658600447556607438763370761210052884938960681835537573012655180547959272106896261787270331488623038788948006908824711538189811114129201785028354262283532712439014341718660118648982247581530078847562135456680433957592022778860521093819095495482969314876041577649892135320119730813764215822115407519736810900143523775112719108759782830353562008637944953015998984732956944369185064356247146085843671722268446553077914940558194756522686150775316163901353451445261843082939339238615525141986307331352554252613426164947532428656479979503072318499262435967411369728375129600732891826355019220411249126051351682088102035451288273418871741522376556364668782501368122215521884340632119307042317012317486797898414717661487562652788526574213292696715889402186513829338816584635705173424794304255846436395698743320237098113134067038282076949117066851770204455182379237064999247706085844550087855470155265799732230597733761561990910205642109901259800824523535587045913955073839766913140771961968587290561013973232428418297993861310600898821189348540403966434321950780908036742469460468161151678241355185580088610216492792530366646588809413862306867771499841276959942119190055622526871508444779988448790938750649177708636126693452295557922540293867847375029793499390473106216904215281460394365964912391480269298209608741983179854823346065808518456892714203871672712223945187706064520751949942336971684610791055552983789832776148874141106619624596562796254006129193432469480146601995468704003592272760227693832426386634875860069018377220635490700855472536141950443779574216150923447200562200713420709926796570196068021631065255317786142772159368101784417554536490665955570138143666640932050407980291472924573004056849995760980360712353620369056268454354343278391615814639962285960864422025057057304151398454905335907059468081262048214620118127172270951497182943628903610989790869400804004588113056805014573002788540291649936835614898319944218518479253057375894590540990725193041942706547967609603427135034351685797757863145932229709492741420494326288616730611159704306200065378279493161570287185198985382728492677891111735254573993723572204539934193138648906445960424373534860664099609158130485123087885902762433915556464159377016891704188604637521174102313212574101737589277181953075708761295437137866721167289320860151206994474690526908723645268084804031536970128931903873885280692223059795709435648806515435626970588750164688707756273968443189394590171231852365889105311475131978564296144531294339695305749691045381097998500593617517049001460111030226352672708349578723967639295927452833622537515568505163976600211455005514491571358449039262961288813443326104077981491610514917716819397322680350739562888699502066895931334752254534462871556943317299583087496382076574609487719564468900184292256686052569889560385441994774731635958841309905798264023375277820616684894737633213421263701157172585698797206437330970345061679130939407867100016154071385572434625938280937858426013951750631364938211374541915029045987486063936497516724454770988442471049767941113383005951793218692916590822669856945571816446495887762910425843289167102595309076048464256342562726584407882434356462947985643028941771050605316754230635091550332907774883007547360935935711542215353749834163669512045917246455880827411034318052963342668507022310643159850085758289539142666581824488413085549011002789133000130227195803111182516302142449163635792329097465655383094801639904363493991248342203375920674223124156612014848507813297782337581010227442086057355731777993296364726272772311090205236380056540723943566273591592738756771610909947798976113354584250416550664279428049077306902510335835045912179232782380717529597973050942485892011333274107530172485813162756543181060238362121450667374716642099152446743390904954858029172638867242550332387167435582543324556519010246017485564764486000681295785810983981795712202795435697461837852484424928362625611471022202646059895491862933692414939422121348804617958858241943725603032605186226215529658670249697664944375016123373738402758068982443811879688223285978426100810132222798040755024495589964559233292399135270651220559688695624785115833155852186700624728497996559971803700266097633650139718009263419602540861871279564960492147478338379473222596293996064050892353794402252368202887059456439064330808704288467108525327104186722888928122790531036303125982411792305810406140197821267154118596736299212742173704952245511719673375071421886171639529443828784069354776224254454274741746210892348007163752397174500895662797771567002588146498996119923473384603283101443170591324310720694102106464419334959452795365350962857843879385414120219739539020508877762570311832590018029177301083310281276531948797933440260953061409697423886821334463800911279505144485689288509711220963947031393309371236511617382516281325297786927187617449615422254628628966230605942140571787694610863957720893406925963738517907331932626899099194498617288181275973332595966126400794585464359398108494711523526118850336833722703340854348640560038545201550340064052318444262910644398885443888529139106950765209229742269495086297863138227342691097916890451694857393706258157957497754695511628940988009923038541349349842455329218765096469844935549765646056761379694178451950617210733124555475762836088907233661088334189519507637057002171893797183318506014964849965007016233140208366204883121056938482560598450216600640503368129597248230009881040664499226676757159018168510828101399564200781159152461995498951494044917559197206010561839711981952250181884845182140043087190042983253685163979394996196704790058968250342061005461907137045448915295786856776269614163616818370464501752858223082773308039226996365556452572299095061632832824220268644949681778850555476516310002121796663689063862321985465023020733427436576384312750891293977408400681454797273640858705919158806160723502403289665153848913978045043255221703122060684557878063509090326406987368828355177285294607395697762635104438735534081007356527784243001488770601441432445095563522707489897222974965366396153012921570748996075918764310804710977113630950042052802194921500121043395777397818631316735934208166491326464572596455025400903283993221292816738837510321846617545024740772912334126271751348698438140227789203170605518444635310595699704814277412431613064856629317530468067135513175416257548365365886833561260768978209234907181184681749411021770513041440462258731436577123157867635265115387282171480174059050079691306509389518908104975268522877605808645662974149593880539871400422333081962201700302652675368494062283275759041158465862666843810665806492641941076348556998526563335813124764785003648192552920399000296640033341067417565142658051427559919846758210132964762656771757614746587971846103027705805607367608230171972450270209601903844442866806780250811852461890213325245918819244027052044868749249283653322708891096562716749671075917169069020004407254816658104431481122498665146730911924482996022989420784027695567649150058097233061102021648861413192391417576173619016120407791975436240209606971860161484842815579224297734395545808846865473870547035047243261470656909180699510225652641842489833308931724109598627075083474577306278114568977011767684321176131647283048160314223318714667385321507700966371163204538716749414103262374519476294189624348656035343052479698970482431259559143643169519082275871896107080210623041354111634982711160368764238500121212116533436573011036420133141234002976183531046555577755309393394192865398795600259740041520553960058174210493145335832220445876980688007401755016128861549268324211484792010371303198068389823780668618150968854456046284824741976059589382488268321318838627755044299844846895643249656369617777194559047644767431624691744658513943491317506705126476724328332847504238720077928317942814385413302704543577367799279818614920213825565969189687773075617385660352097938386137804782416522340252582683043470614440887741697849452871377588761731690899088067115342039139318750370394370752469916953616015950024797430253316748908614053058872083954610127614607365695221234699061394587297184989699812620116740264515754004633229962452846191959684227205825145126362043992439062990098300614448555298720758587683760696148480619319140578947480116711339775436581900667536722184343454225910377022980422216276902563289080754883665229529766896807725724623261028865616408783159929380606811689114434646293035777743308312222917939317403755993032103701188502112392742149634139607154261264115564735846449097784271234216380270312894476033252164289129992244341156564833893211933830497909492910964833333197135180307056236887008115438174605535577965632394862897843622552552325555657524384092007735641961198197598779166630733523784666479880917170220013687158228609664285313415480501764209446153640982954680569845330861348397278716761984186884170786847605289602046550787570038832251216581091933035972332647216376081649559047253704458694835039454792776781417353653806725660016799436738849801590627149446433458219074357930945941363427512113765561733031421509750064485506227848728213969276754607044047605206005507879564325450731905592382154529107117489987672404897260743986297905817695188594963547713512936369040503322607801352387638677800818271796864103960508243906702951210215263285217876473851930056103069772517757079602131996980060150545879683607601551352005912128364238985482034393332464104369222650483917106756856975695983020699046133011486106341738280135223627373133270037507410150459790870506615298085826612379587077524580731572387701816386432766973891989179536576339248752212736315275511814057980832134992196368068267029330207141733329192564576318096158786496456858756033767993352773222371840134884320451753191111158689910019546114915854719560997874680954817424399113710011787912120706536785243877127509919560695438181462493263468124376435915106093317123495404720640851108134303484159841736147303584012536625742598093251723906125759775337179416270252428930229085850665840479724775159226614450516885653197115563385126934766680292624707929123108100987186122428957283923612769621268272056692979757528795051847561661823791157733694392650399790825372027982834351978344831268272871647757000760244219337736507101284278852482141034544263481991327607415599344759588969447063210004568339695707876782536908258792148928721682740219108128087795715611320089904375809990429794431982479290971023007196720372538814306832947890320786611625276980078988354463524460166591071802795794204597487472104096313086351576805765319100939126717046681121657769869374501912325309591472389899123598970988095376712732598438298934791074546267076601556684095132576394034714936838959470810689756085427775521438464842232778261584880918937879072275932544179053430295456148097149617694062930772590301500850399052671539189391025017764303252977081068457270176887585870106108052339618136442191911803477780638469977694893854368974446901470508900251549806613354618495134824113014654307188906177430533553484784284982500955340864313238523497400589991723137843361962438935622320105507760661070682787253143620123645195896603391986070837118796617223438729792765292002122756560205372264808332044069169077759299853510182355403555879798168700982188351914262771655756107388990518149567167093893350874755966483047888918474213915760395019442931914846540375599680578868875985258094461931616172751331741583253508763359448710207201175462950203227490403314860033703311532109766666621920214164016356304443240038289764133784078983314775880514874536727940833739964799029411268315080266711614030738770226069247574079166469815354411411625013009590940148533829113240942959229072742366549418768327511012568773146668206905155633321647180472849161168684876257670900104763445428878529206995718323530914516547175263115009266323796491774639522783768674366956881389530555551638282875431437785749174886440442248460308551703494580578540051978074574885677118307568217283054618568243095993341903556478073942120651192820804177027262178197188399003804756481255653919203367720552042339231233120551034191761021846401678608196817303213631561377503124340629271958240709587416072651024853235089297246775214902486202731422398045905062612144272751136634938492320325311398608079781481770466937661849677116043561387568897634819721873624246697393823417497633753141524600316952685618361474806668799072821214268855380616697925909553613102531451080998984793651662892666350670819649754013954683861589526103259608178333024028828017193379407717044644972341790387296274186596364705117959700574508119044066226179061832860755401240632059525910392112705276143571314056942195863796049343453079182947554186044158679553030159404865788805204670872523910257723909233849187588677879233066876956723616878782352350664085491564470203007741655851933465540571101702685904009647108298549943594162705944676713222889730290232801689745920553813096329479306487314486204877454256482396442793417089049686117017983328936816947126317147025872565442121038217299872356156211178800167165115537343342009394209375854447040390960468048055096825463922814696621828865426686721563111381410847013084279601672922509257308340132305507185208786607040899574541160414593449059798622971187176138492874561297274372369196728648842384084846061203886362474883988046035330391725189877356250324214183298937975277392061380825151346371732004086824717799508572813051510671332076221610488325091370025994533167244728097586593021743737260551232364075336510936166956110928715820097496337098819872032188843814666811875812917219144635956439507230797032606469060479929177825279985131542801550499477796607894908789292419333581117883234504056663486537319303137001450368711923647764574855684758974744516069750700843229591927741694080603579460711817196257972683083664674359222935583000117171273954262349073198384727463944537351915035499998044579005922928469681781686680054798948907711547014026601018810824043723860873079134481806575780491469924384131549967647420103579654081547366742191473471786349185214085128642830311332158809766286083843274580571865226566157148940684582655612353651163153194886353952336411025091356340340991353062506312733156331628066974385817052492391045021588630926151377405472107176403439704062783618310615357662370419062754643492068421662138596795160640020344838605675424989765102502008529717790312981408185636378250837573644611482317966568640972567290190568361967117383107803952118956310152568854231764270757370498489477553596778330833066520476218741680926287429707438187412407590998668543108725986636237594932232095843198151761388210949086131550638084674074088883056464901368252756075446818286449386043613636254302357370187381880050455513414496053729816941625770799823230552999634507711122628351715417226897478317245448629072430031542619604385953558197086346006708751550158403704690858258803411146308075382334357880062124144800513224468480211398319289013593242227034638512200746511390353269120099657855486020651319696373856051532063598214450679955940822579633833480886555238291715852472351759521131647102342540891171494469632811557941478579676220119237572610303703494887673425533518312203014341517615641326580255455070450184648701767641617017173813747083148250206953606147851334615174776784853552479238610728100336013161372174384699516966370668125126576072869320422522469051432225921581723511473661536865668879798491826488766665368579723599517819359968023182826374290835336452803155583476377728195947134957101850547170667945092089924945417184948568112334791492747771679350045948817451279854551714416950767913247436994701888320164905048975588434164450991700856425495798238538490709357064159973250105708911504300890676725426883543090989188341161869861823227706454864641193300247630282360961776009607300016893579246204371822026345453014084500153830412071417481763427045213659101947326435265617188947295658492645463868377277313931125569527362956555089617428864845567400590245293937201074754552686180293152250365124326174280949932935151882229022210283518336064378888281070713551619886977238511588025745680328202100693727517204721289606144337989526230291747047877021679251575105524376050478403415404346068992351639544781732428558162640658955568891380447271089904570140257227673241131120563980655238467983128301501293116163673854456917234275145189701319473719715433203722974630324918840908453197360743673442259529258952034586512384214937726425653907956600271996198423775020148275903583579577917291037421116363979550551901198961678487766960389889487023689315820123835177782934369126915598126741867538355198337267134455233926582817069041182451100557453402080802740103196300057932594747860121588152281189993101210419799296801247899660396994220965799165444567341004607324471122257705460770456345562046454186432621500935371272013304605782471567450052750483991676031834368807045873594410494003166466332000588547575071669819409240049759726976473521146287118961818640965361272080207281085001781355275172741269244339351875915257416717496224244999295334214417374460488067580221411690926375361382606354207877741021828302449465793997659198713472265497435313374956121285519162378018190791959462392712204212106686519512084103490193057675083253689972162195275575281518315922949986139151925780669409590438366516879653217011185761656253649922777042320226530010922459384788021901522488819321845862808153580185521117294596199807907392434472030004590783568092685528796928235041979815951554596907628077617541776365306960962785809729939648732948296684636636351430320304661621532348783911493367885427384270146928938722334624588231885641053739997936438631325193872132578590913182615339251458134365312005705256848124399567679243790727474544711217106002946226115566424738423976083653355573890909665513742750801889307166208494957044727686010049425674767030553711715451060374852888777277868831433036848562100380860865371899017739733694330951448999527728421900179660045196586199850729128768609500730432478296865448143857376947749715022273740673671003882690188264138186601588738279257347539508071800149060134354591922457365813096387913796150437984396359004530122328488361301601090671033963963892562412182637108177545439024098359616224045820323138131084159467966580245179907203127106997950581764227440950430390691800826900995959316522376633965061603844586075223268851637463675690164680656424267128271734354029523668992365497212608375331569310369318187715767173334696953501736256639944387792563863328299164007920951801628622949692308342234772887289895386542243190447672310040673267340077941848436840830555185900906744221388522186737086179734563631013592189366770684477608975629006175855632067497158870864302345064992083279133473532934415908870605297693741834440633679603450025574286022695164827641408654493310054640979368914302965896501095695089349178857177098030523876484905080292330648170263771438514948332124081823502612950132531002219059073615140840110819848124848418721177471495377500996683014273611311824278715742695484309424844611093806536426417991025871765585970141808084611192575665911378180759566710633122796059390129556440716565385262380796461672916346294131128875321275504792957485246285909273251463408026869233053305805788903140680397807626784182541556538075550005530842800074274800780121229630094449822703129047162964372032720379158405500470335456948130101770520634540026306870206635307887758024755712978156769547774619560969286138564600256221261791405143893549412771620228596149374242762168602451246602519547181968152629323113739079199283636415860667761114477665820719359721341846614428061467289693334800313376110572003236907671671272507861523713141158906717472582750896877501815178195510906097609152981318720212195911177583113307670698969548820249833680956714832904778866621814652598387011444950087066785669127377976617078096908533930463268950795521479715971588681743325961779745278558830271777848141205200580246331055415993860101357029899473300464716267601419079762470425844303352048330595878297894293167558966411039471738287996466952385529414883198597533442275980000176939962023636220701051385983057869135062934986468020951862821795343679536613474706933894436759511928703088710875160727767816395856706009237033631557998587557603094909717029936542268628856734240774144651757636444236711161473776345542695593409542413843607538851913300104879904082499745701684441569185239292014356708004125944639651634135935931729379671985344720234956754033207738813860824770053904389298815624175359964384095557700992571299591778620328337088681490943842314350063961554061692337983142967564926837415034846885556881360444300440467571420370799316246545900766762321551765114023565706452858400190995262073996539189399269520614501714002767909103720720818421093669291619168506266019105216990144762318626972566861625418762515890117674717774793173521242203865402597976495985701594368012206366035011814989423725949835619884646985600106822844453174552655248206762657876441510605960731647105901346679548529304715911192135306604462666493101017119199946088914781415165552295899699763068450780067325652289144051117959183161759044036869531157607088278591227653239711274744680172402393522908774687227836286475846383869683188315158998282070178573702042697956473806196109749382618666638955221532558952245757260221835151820480329430350055131900752659868571692911602305482265807362636621209766626177327235470789686690814864767106653132613017931046008181573808610402851493452605106276890473137302217283087202683249808597953183499341319807714595182492987374944554326855344460204088834944916614949603269016066269856535045507213111422374708659416510056160862060780130270165557223798832746215439646549942810561205064714866060779471942692404940972253266439796638118606796914807121692214704930224267390658453023090405423806909959252152963438816511241541866793442183628892076210064108647191847638544338557446502302655419919206294720677511593500087093210932613251149606555328913476416298212125289994210148642307462051943933629041951611125753645520017154833453170239754726160023803987105448134414413810908125577939655764954370104915803566448487112911098517971049053664734799370959669834598001013291446084171356032452487473186928043910208671079958607188047894076790643497738767425064567947929048721246660781475257906719396756836025960604976211255423660976676749226336371178008538174940560574519357441095671403315643345133680512326471466145448380972316121082204358981532883147479645953531621755195191705511817410554933642242828176080244479115782865573577856506004006768605379471154008908179768272678276690864636405556091103533271770039875985339059036227113950835123251596237643741849547986428478204569747668380477589233089477261240142572846687729836951211025888430549303744565511345773022495967808695278784237770019930109197928423376931263202690859752393380185892444281842349746533420058801316692482933650449577721976926043733947400228968233463712702422999663061285616216451349270625415616812851078305947950080234116694445500577634692526259101913470207213928620601993038132367258833138155779239347725242874664656774233452900019394887919076552099560154675826567460803766151406873135588898792183422542285901076758937211656281732919898330113283822293544599496205559687843670130238687884352100793555898888526994492389761447191871684980326223171779719001598409004277164275201276725901624655310179839451337453647480853137899940813358538516491628499499763614885213608241296231312989941560169182017197798783981857917703164380142243627049038737902049280234749860586105977838901763178104664910390669562508525607248993092529480175876668314718193617459238560079917554002370576440289280254461867353999184252230537572481217958730860381563565084666662336460690172566163362663560440349489634234974081089323202835281247724350935879362419514458935779209195158031524554693995347121250630759670984701810830883789070021802473533063728705468582773456062582135151812359349063389075896969705060567556558841008597628129583878361354689596954759104693114021572258879919189011104220863960268678367209125764641762882332406988061142230160139828841037286650393367650282883193326357779268049741635651234739152872293285632189757741123700749874109031942268252729419259075220900937523310178850655062160499924555938971065771798575561799774260565627511261681912185692025168974828392785161475355385874560607633174231811425064040163578284351255998111388061696036912339415810948613499202548734088474469534605545476409036895980856916571690695357009238513489064175547426111331139858973814126399629938604075907201654792850548659469093405468080166198292763463049918924231395455341376573660839567275838672354909821712356655214331468438306140963093730448517899680349878247667521665038862885020422692074681817517033058282490030659402876086883552793518610103305163514425323554863525980367164955634791988775777229508479506469506754888820015873781736041985475121815346700247473751506545226365018097532845724074100558032191799763569026643627644703510965285171979781790621515841657735465628370308592098767242697235412295666883084237708773462368000726702826477660136160345460929113785413055775362531348699487529873294102737455315699285770424714881400386791212060389224246821319349767292073833948490578066597708146890518835136108378312546124436271615483866117591424377461927147386106496165481248723603275081140060428539212581486173448882102188736567046681430810065060133954852092625603891540302517741819059477994093463507590960027437886162555359420293131040908036501287814497038680190490839907732370714098259541067553136102869191414532746676112684968709668343816453743748127373067914971695587714102851622601736140942506605125467822615163614393214130329737682844133495904049918016531286963495961803017154972892084825948862982803874267339961797985630772951133587723770678716910741213664878276438693111103358569635906350810371886023021871135185486258571479860748685157695787577494928081716334193299499388237495448133262624385987669337001209461826401698752700748912381541018836383011676382336911005024132116054207816133154979297513675039912722273408376057027922896999549081380971092713003024782929593920633579895142642328370987994909735494124931737996069001665014189289311451215351778838051546556329179946167389169430333409133486433613690290056609317488091130509948041927904631228017765216463711911042081459269865400922481564233474456580767054926713380922675382586875536320494079962840962196922369160469239325108248164813073643748206275500210926360079037102419241954898015961227092110689134667214195616098510392819522995817749309141066061776500483586426971510512941852709084446405127127979597054557383177795448679459430332843172470606601070539591397478056009217143592236075861093628442873062381700946699449542429430196883677586483060087561772726860859484101552309320899690668792675488946483725198551773272463458995896016824867241566043661227910732993094193056940372634980033804565576969523848507036647834532061994981702068799263419186971034624129285627271041282669330602690972242503577488725242839272681009621184500463998103610457599271367472372919121714953065933450456880919580786657402632453555819598184019478352296571576264356358518244862671228224966454639191278049215842984917157829666197827165519225017265014454982508007148231742928831971105815886476152812325034775164222523340140525685269959685439547206446208112051132059465182569207035961064073709321408040924201511664183948050219906869604448688578897082078006487852641172951862377957770199536895327122773309593515707488828553528558019119246595247129130319633885048823931701515815918337625652732825200287229333244815538829378639493733325030274391101093694593219396155996214153517212676633785688976166122691543438011523100371126010806350603245360325985072837153949736525718010058402052407731477703301809986711717386126842781421021005019268041229489348025811790655400093906921094655896659488117107904726419331728039451697760901114157671857342340626875551921122288738170775759414565815350901219701186949570162281216509125792064799432861601043085926581959768259459150437151801448427319723897460689094493083318090434181370018607645921662801540667308918374175494056382210901568821194038046058382982154951240558476742077321883431511925541536224108848835198893111221882602527561012366578887425775094729991082273875115779668641973575093529510003458488256171776665309195989771637081385389202116073043451242588021887565116187554848775914669100585411164631354642364566366113368856046496098767242697095419740224018673341071481832574085064309854437001227494349946351102658107889019584141802230384608325230162998940268378438965503547725832928882271818394876833535675981790188923767464769179368478226993686890407842899504077963932260968212829310649759820079896974658711426972773388637110176095969179388385683229901475626485611383178026496284089144991967742852476025105533847304859066674052681746371664181965877103146977258891467584210841017826746125851664229857624017306016268310452427325356730523571424360228126888078778129914510918422444688070611419231572873136746557221369813092002505080090839436114660490179266174296405537126098222695282548716431741692105890709928841884489662097779246138183203330634141594762437982301138278040219272173150616829030081425618257268867402305074181370716167085506408579287805320011606798905767581376268068778759555463083210907295598579503369425149110419890783728640805212828086829240548223447318099277405713423589046786877795148086288681688997209635267069259870014160385058057124349536998417002966471841799402145788224633553482619857674769656708327349824238699634628184656295721642759850944927401580218329634889348397820609043722025287534000876742993138979320347547449076998565038134094829890955752072223932689906288851959205247059208034097112629328203673440139167658699149282923939812314508927979575198316466139804245988677864624712981850391173115162211701911099381473844785460863419056564387309240664580857108560943414831898204210309235672996922916863565089427544413577618524169519719480774192350857761724242296193592925707265229445945296292444436285505824436151284980008770045322673487140158416048981236896573182198544135589512197604908181543196430198505191508744257557028970351017792705667787950159385919460284996353509996992241332558988837736222370359396108919911049044580376571816213441610661929316840302962493088124210468760557735405810927351526608893211819536926506885705652710762840190640470816229914877625907904949007063828952658369536532929949513690183839242181143539825535751104564224064670725518631736713482009522536792465168277339422947333524247560920966846032011554140274180201067705453155222540939530318704479456967749988002866394944942808354839991348626525143757782328586748475121113974845034926544798610308397200131313644636135328352905738822411079160409332622357305411930789070726058216352892247557920462464881825063573520004684344322682392473249386646522690924255512206882722159093804943073767864824880722828943485119064865620494588847404011745450222625924295782975527448945729242337848515201051056040264737298685218673534716407425324216983476255787911061844943840262360324172870021527633573918542088594333109767471240021093813571193405412575557241607878140919965576417258940561934239884303928705977691628847328970384779140336321696916415478719254611742081271364625344501591901846758297589433364850341667649200173697459198785708448005141430834800112254081239534970903488144803045562003591756841940870065151561048072378368529614113828800939756850231454970590189607849318442280542048177495467376867333571403439666017407877940400476647110572803427264072624900096807135255327756883177215035767212594470579311414753530361715128540289510691026963389858359167322355815247709328633491329753245515127695172143231710377504691837596373071141371167637229296438105436519955117157309425838161908928508481515407414117897019809969873108331429827298898522736806932211057245493882189824595774079385737514832063300915285011728707900588701461442787291356505916670915735590842120744451049760145984526106103767735455477020311766703917953853989195042700407639852455795297444770857719986281277980358220849255047346199216355148913132104427629122208409017930605141939177175422052689506038771233167210279601116625069081930378367553666535921224951763214416030111479218274735652284182923126409715778244192437597577594081368209111004642787249052910446742788869731281254513650260091918077907329253105412443393551955688780177484266309310392973844271952536426183845583055312925111184020304997490681327185437407492170433977450836280611530149734743449886730966646924792779607705219721979831046927078066898170986128514180764640367414969470030168974747514082706560814188199653448453703092475270726583861580057367133357293903469963710318207902875311513688124498873954904777529113317463973107354905771610500290873353965771068698155945525188487512553192195604261576191468604775297663346176298804119968618968315775453227234382551420924699372798360024918719933310176099115661569989744073285825998183683123136298068138578548391167616380005579864560599050827350069897641068257700416851286723006055209302908993029546324663995872118085011480009970852890954804111843146566697718894918161164706327946815694239503489545330922874707971215500899436882021405442042524642736821631233856297223832552350349685395637454768146636810643564149559553154778637774422919257037729990560064416186476572552951223168458662224225084874841479611019982445429943025337379249232809818489791331994303447940189277576345487059182223480885574444229805542319296065557213036520381420671780996085583401314832940777210307284311756391169359202428055024862273096505162910897048969341395685512413012239984219356918264438567046125574111408692887848851463242490520166236262685796749647668244487784423931825921649740171787918567881294645569383551143598029837980650769515303735712861169749740709057112354149408712226658427107266713638142291346138520280131010894619211968987554673180162414426857834116489143597265009748139487685346979713514308073151341994856350713063636978161418283082718871576954787018322118091037734721461731761549437630262527446452145424979058427676650711005703527820780259480944802121329937518484547521109996642158917367811322247451548941422720537296441964529957282683997110052816855137342158019084116473974983248833242863773018741939813680980606113413107769386610362114022103548014100107871610342596345281314225197190814850595807485152650970346907173438789018715731508101302973915552848912893073128552876627049758043435668951030236158328695105270600256029285531498796280165589269853101162164700829760998127439246322401409820883706553251956979773194331339726284879116428731576081036348553312666889952826176993913887958763831585646459183460049148647313777392171680059738708830794584554407032019536199451411651164294689837064847514273517867993446370405852225532059064920025882306162313008565160333650367265139785537025210012818582430623211420008587762176432172950328286931149797692314233137437206496904609561448155073212686001276387344753935513636481976751402179802290074836417801900987111389329779060393731862422843490166575487904504109994626456035481965005640036178240631611477689137714985730742593041835866384095178100891012543383981694478276191029116788475444213563438291712430336157718625069404577032520974686194214125923684501251415122489238836401949019011276120618053139384189241154188630853811785739622939477963765045776909645221254886553785377560282292344871925767072262621277414633479470595224405994941106972909165938081220825637859371014186174675125595443143124643682584660137936315135811705967169737351400210198725777522054279392560445985600606922462350346539070525447464318093215471075023777611237387299427287195580920802247407865679119616429698317188224211779125970272070665782631904774500107915324830594380447684949275760795078481906263806345002755838149035091047213280658142259752691964041047077080212266017599580129685450654871397129755992553290303344802283662924052491339294209954946964281402665511197202652964915738759909310486192316615001837957185425684443725256215380121271641307695525579921438523420855963182759688877345316638652885674973692382977210644467085587567317321308354608960700058942801089150934328802684298931357665500946276548641196594410777246146372034998331914122836218052554513771030544969788312394444689807029417619819848709811810670539156243888508572637021784358117141880294242040376898639969016143816015880867675394225829884228342625678742228696814176277094091011920892142008395863051442687392633598627817780609505807465274339339133900070818162432605894706897300154631464649650532819793420658693672556402435901003202759473774844767270496006127606022892417114123186996780876019029211687669726335731534062405190332058291313905679952660509485057549779488636655166054959388511633431854013730491224313756249565699143820986370482519640544026958142248076161106956562130147697741462655400442651712303939042262107580973325181824138021053315831270265359911489768500767584044315774981738233893142202501555197771027729780718109533646546486600816976533063177131157933484000569002477274190081817550848216605227976814450682886081720448299027470526573063279097195218423264815491022853977923026461525377643360288547786631391467601940847062971110803597854953382957164885572351088062344349873812582729668246569295869881777689777449593173004644382189343208172854035422478801428209596081697372545175567414889037996731439098306894230918635266071534603750263595248692587129693940910048903500438575041240599178412437841464572734378534589938760019108211229575126169419761977753717345268813854854219361823923561222172782340553805702951063821046564080550716750805403753996417075310511188187542486386620226575635460639417152227379583597677566998870225308421989405193637586016790264025160465606322344196947679670043986970000825744349764599578141089805306496120988497190736277832945659652500177464937442259343299836888300166758408548748947138955910527839207993005015892810661934110859347879342093071157216668055709303236825891799476237467131866858263252266165826134549810582414437935608639637555134018257821937958092111265294667569224260960251962757878798810024961639346782086293234357595371356355193193272916693628760046558339507186554261444243561695777838291208890803575166409021031472806631027602167314543411071469067783738144617528722940236189298829082302050067831709943899643270612821277898876090440687221632493661539267548954649870393670747819088995155570993521637231830645854731057766562264427543760729684752446888291676440590285420804464470419699317062657802487947125422499012183075956031690011722006225586120744764865591791616728833920646554488596252331975390916042767663656366121614158934527810383019278582372155980393533194092364664128213828308596022739210672619925310729407026742232994708114769657319025396343415738005865667421243705122589814837315439954447424795109469701203753674999549967934910018312632509144695362294402250382417950068568979375292816979860083632443310078043113090088484067946591734803265253409676026495136881603342709773210774380240884336341931679689302416600575542307117866173504571477244695842785147276926223865567044113625732713888903437409313501657621596941479164303444133650246781983164969036374672283066579603235681778066483404373221142735689172052631512506974907402143813767975559714722373456405211433809478296586116914190373222352821219065941252650269702718400306432975660802202198739426764581409669044905997965598061292446030580217387909630252252522898107017666561669955441830332242909465141357034936851998439948685080073540382389077125773184374117751456829958231050382081722334364756038119193625912427850514519346242798623398828656018948919974457909481100801748903011808421637290267183290566283419296580607130755904854301728238860696643244197779960771906829467243406611694592023636184080881227440731215987895625576597474265543949873349970477205959035238415167346513866550794278349857590224915628661732939814182903284202943025260571187946101469497243386972018456795180716278843077788113394736605986182758395459239608582517662997992541202477439358761851055145524908894095528361957225312890751878477846848797678147028110097479230800630054708306103921733000149799535927943656608288753689409054864731986910157857278700993777033631283095229106341320711912217889519823827527299286898679218570115199996206195637472495272263234151406194413911329358608766909288536986533397528161161656133136849716479751665606048358398094419251186822990751482938280866940283277143660449092288056207672782009244481456931573263890391235906990583782834352462824169152127437175370532484041501064236462759773058736348946358036357261960660884244823147232761564498241883981646894597687825393615385090720444622881819616129966395058429904325019478806871838102072320362549855343744408494263990742053115748033966326785484924736850648192773002593063173807937311760283258110074275049236846449824403649359250780500086909736967138309963333745008198832417704949977293592896745991783454945235344822501858064704750219919646125203328340266615086433826180259399907254792429876476061958634387171259464842016213797477779962412995485288916298052401880171410305309984152512793503939058998111509615940380063456901214698574451542434251591097178439387621428225262331742991471121697737507638034399956127264287851733010755606484634516252499794909740531278073213456232546857673422200352516523818268155916190584557655726532967488598261442665864097273774536059919102630325517593319173784438922449336735133258099905282738956158146285841779220625246225370969368934637079181828867089128513270168881965935776039987533014366232646920122334014432821693654505506219641250357279013535323384720891089399810149583980089758434053531594960680644701701995543338969032964117137197879650309904820519209960608920545963728737093104913190745537169171349385528382008948885966135686080634036854833056309243811103876191835902122707472655942143590423259497077021540188271525046537961286644237132027562387659595462805332545485909654208619347477007744991060323207570413448037837666499791358704486798347961522462913984611518853629655690411883979774154505014117882835974476847035625657411949810074181310058898289534690505052238150955223502466328815440008714031238894222842004021062110002688018219068985194892746971525306309322816053033015117641304221023514909335354894639654996389680017499062300087857532934200735905949322779501107378459203913046285034367565770318693403098170686373227269952475934733845209992232850830183980317955775687532303717822911580040548713347190928401715433529238945914310490167514984695197206760275067105978064040495344187682356780153926862151652744119090669932754252225905054998643861358833870553388018901456970641792493999724250191458084892927770582858510157540179188602467172671422341723137828349742168909999661512076449607048695152605400385999412658642784766199887642125419079489287347161652784594535770723193225513115864042219971112038433753524596355290641123414154509584915856615899747178130684453427332744100383142404055749176317014673719293921645935194976268060328635109924376537959028576209680815981601615272554066284448101861656570780536306460215506086459373360432656071158259359200060308639374020357772701408215978494105107220893052446208884470917961459212385214229027171360527767436326512228875663439068233103921809541871417377054412055009335795610101233224864222900332184636418065476601927302688784529710064011683148002851925758036590745300031173622662001705225672578559991525881005963172321274734087345960785825323229643933573989254265873313210209831119092222811075986386509418163178224187873273782438069546084937786619975720429855508398837050392402982471814494646759678303180353996391682441221741052045629433165945412207728420209317900463069932409454225393345169878870426391605502132399336564178326160215926082380366106264856714713751185819960869513484300788807804924526561624009066142772174485118571953343555020212611313748346436941239350466113527708859456112226197823599956172537016485560078009586810582832296130874266762948848095467812717979302090837340102521598996659722707174547831264995033562495161409525242529425747322100769623761921475844853578533839612965518501393551872586315694237915135053683848166463893882949630715733099372307026150977110861224169519124419438811575620141724089768993626213104448789514680281006000691182679763815739298333433382639513752736746961266393060158507680519202622406374713722593965385132011799234397808940438467492144559512083733782906639599877057028737246830227927902631348040530456486300725803414587793106012728928818665637744905801834993304513505277391787107546053637646609600828829919883492720875693736894545342113132194405168792008362716178585652313185295388740341150939879096862306937108678917705243338894884143348722335163711428325347720125323484900050138739088048535605104499487502270912702655485050934067455223792224887278585666354289698641216936577193761906164581635435793762911599531109471435371109636948729942092264049843626514771037764664454766242205418732832540408183868297064470938464235543268215963523147858758863882790223983679206842136994328820542246961476331030259823344491768843961021117087931873625820951019257076070745218983676746816021755408938466193631946389515650595771338780393599492359395395377302943043570621860251003703089113255413541723825747792791815657719903951544042667979932021322613679707160606325088813335189453075164084164350198687592016124915410574191485156178268571629496907600037056516857843895060596167378692394366346063198019375499727174442495104483940347123809529480052217624376831724372476831828818613553887860712284040703856740935287740486846034134422446776900098530855353780696683196580433458629834207969579344166342649503020443195272157081993312262388546172357652209330634526238260599639000600085541576676989844627692454127902891941481017121678547476342544956455548875787617488490444930202148717597594408731985138896095489112929762424742353341207946630484392134477363092147084656005379916370870316732335466820868311612949559271447664090048843128690494596461983228650542445374175968420256660545460770453439402799550019617050946032949869554406107293979462527182694211274040753258745334950171076365662184093976884969028988165052512934174150247641418080280134536775793689142731433033252343865225733910277142731759229825947929796150921843243459541108007143962262659836545610896959150769127643661712337041762142418848357128763345509675461450785214619404498330056235122536743179095957979784040990422643142984810284510480902243542505105155871043432194663608735546741424352264015184569616986774621530651977653471186631876175086847645864991631420963590944074930881534614498590323618795504153588892324325977744237873650608612200205250269022240537783622440129005953764312378639531415348113662316225742747748911818109991530900842148936552933345484576442718611788225977532111815759864038919514602703182811308199476969761726438174819248292172000523489926505116254211118633716902498332906455529374963247765348441098911171892691991232642907428014036258761068579657896340481493227513655432088774826252585861472428666036741386515455957388454166686744978853845222649879611178772658624370280968610738260615893791490002397560635779272837243840757989892643338942031525656109079472406687277685445848347151408317740210499558392467097663533139619549841363166224494337296954045178666857100275215526907793111947686980572718539959731823851357595640242108567968773234187002057205737111517459517964595530252009325858534509979563509835540404237834519046022591026994682392049509013007083679437804979387403155457600007150124324598032597272502717172690044885004879557221698743959443182291999038663480866663141091714543685675458148730472191191359128331789383336897824141621474739532073944089128116512129655763696445338725357698386365098006743039111924856394470597225442115244863049846710811011204872474231466428867756797673920623630573049347050927565884994463012121518745190455144454792825974339539062256778667704407080575330315429072997751628983538138448545371877737252815580296829744902586239039385437744276947589161547802297282641709907326786897533174761529982864287195535377154084128349202349340879074376092417698404046981589269378385638087986649341003287433584552775008491282719492099474326424958543568794136569771077557046904928122730021848609973784695763628526682482959446721651775729946432745479233142224049015704187309901432460257565032302767643422628582553510442948622188652487404970044544510282211486389566624096790538611478043729742020062630030355357273576033893836107796755305527588333566314657248605785546629233494006511350621442442649198077647203330730883170312547107645457887332739506812777705931636973367279445867526535555344881241859302147853790690023191505262111958569809219782385096430247146279911560037077138386195468934742434869651770406088176480538970528224460079364915789065067042387227976311162645035557161544723316167411876644156710759506599267045904300711282645154000186832905504369995101660371943630889244995821205969178037025469236862698653941777784223448346193685376288507606914426387801200108212135044527120571463410409326360350333585578274703830358730495448786176557205966218821871364095539284178617981368718526539150767568065522810828993294643901160359258698850864780936040449205623165390445710229800287853710839565642977341721257154280016516218607232783813520707380731527935626897230478132864375905967178576806268999112552401648647522880647602635172244295579217422673628666311991430995595130964505022779850626758334468965367526331554644219819461601062543647139592999427635454651206938326620974100222717147977473560056089240171838399786775736229276559185548423921637329421750877089948978525082839777851204467778997275986753619791586606506504703704175984357813429558422057396760525575249304028107009484058941241330218609589333343520728974004628832077008152370844488318117693204035544312199700782216207576450408199918109832784533205904588583725068303606367162243563685668693333205474208468592027162335901603673278879761433209247782349069074358130198745991316351231872113038684503064407824478755362508787910942105777250379073160764342261023029018667525574390410229848883103883465398656724607027805551153562865139963362178073617313973036724834759246267679613443835468364179941026833936052022184890348443780165014541043543110336168619862204348996153983387479637446863217574080444711262326546133519876750246917243771013379965770987412736098203549919201516940439923492173851254954192367409028951928949850067330617554133498021236084869213945043405665264118884845542566598518953009590055963220778003201631788141888692111314597474271140596117105377941533775640459049874398253607264869927359218866212574198115885765582639588567020240445416377448013113832746000129669112897621906137534448286934102805905003057994582170236878201172341209400396286582620276268642582704632737792466313329893938328833410922713569037771287495365245796750002952925849769128800182118916331524329783456357812319631021293751074012969227716698144689662365156804226748917395488109778072216921151504483988269890847551116914469262269532106944196872226536081073957099252217657474080143708914236704913810683618672934753056530252917833852632804184409880305128258182580815720395286838816449190866925907225605309012218374354725400557166396812443601492832747559966795422112109005320725650286235939186092183317340081908106834028611997573451369027853886039105980195181225709507250109230456776893628050147305038446963187436832868617512077570788069530086999005372625099906431466407416641902007081226797263513772219052335439070255492906215260734514508793983804151117245314956798052474221980666659166439904931234048839033574921603557698160161380270015876167007054895875126930302596952257716075114820794994638781172241312874439048541619283186502415324087736514158484550462776368939447503562130744675847588427917267856166171808631999826306234157143304672814220058377752356342888855506729198655752451892559939466631052051720959941000581222560549096665101851781374231198197184534005195944866625138896312777164334118211568804271793533330258600346187954975306490293185718137969152857597331968864041976468554795691675148750609354055830086139268167972076461915032130612346771894988036586298695889669082695174009507602210952105446446682130071696425888298238987361020270076655269562065086745409817364408437398273224379906253145100455154347924822786701371204316809126522282103051602759543325713082170120276866203301671466032024331428251088315772468641447722770900894349269117248071488384115000380626985300905036981723583952392396893087588785496898590779957937186234422637861072021223733177467185050259913905388039536933059146833241821501428407577593412333048454298568236289566110828839248047771861125115570779989228183431957128534095432560745226840819569372622426509562809070832088315910632712998557745298439052533115689459027752313935305529589313694172300593414018447115554026338225207478934864534441613988927371198677340148342307449190584376659209613986411205899552047453819871080901219847741259480374544729526171072017257939843458167508202288723917037776163993334399331846732757020371081281968549061215675879823210611553850683177443075608093083059308569491054586803936777148503874686974982655095704200632646207294771742922560072407264178255471030258927693052122723111504778220422956344690771497232352002393471182341875529943489425222505541776627320114014821362602590939571646429353098785092351703875544405150902479340090064872439635006574567432041677315928071282830106008300659687028739754460760396264546286201851914307031187379412453764069724019994249339653220745916773313874142584034482097610436906317667521238688102692482612366921030348551851694792449201982746699226173668683954144846266571140008401085026888908619778288938037017204181748937749406447468555553284308151248778294502166256119740496964121001847906704641703520647673914326912983316066295279035754787365377732428292849306509421681329299123999913237535441705745037056843867829066907532799498124863258595693885819083674973900822218568518850569176563712516962234173350493456458540835798559771227736004379104257927287673840245647459847815805639564569812742654626842143902879384742295250248460790693220130764265862814462790348874487790758634252857151920291874340442269249659444190278268834601964577480678413876400696609315149750666590677052554886131739906713729978755135094866992487473210151015805330441559828581903511470683631732213320364620232496884564350356777224035196981746031741790637426414978765375104364213792463135167274998206807225245503360567034726893412761950950617161215373177612575878728763096669660823548420872291064988628305294254669027886454839744294903014919453505136152002418499547769549581121122709476116950275549266587588680413326582998352820493670367444524516343309091502460583404024579226750341223471297060520621369922576566210037589960634786852810708984232307154903668631354229962228276733963429936474843210318582879853180988839333874515937309114643373259331193102707883420850769730264989687119352154436756693803872600595953320411797225680249254760096569358938923366903939219266921370789189770532278347336825907303508074996129636946802611858830777210753853040226003908036428247707108166673542966870600673526874498580594915289161646655008691336080821527113756199374399890907700533417214218328418943381006018914758527047297405131552092009670651743194381533746092778660796200035703352123274776666077335258611092209416285903357257793543880928964210804909096085970336915928117666449334876184609812251878643233071366810670797316798986463677096354487286831661231745732297875499474836779654872368849294334368334539909770707827685990048882585017048776274108607337673547186292741858104743508058668722589070480301993245370370871873746129929607527796367046715471524235063462226036454592890800348926323215483906277732979569307550174558682856609134753762979881698913308188981950775294740509922796475731655679944082932580114159806303138819381205655480383083850652664881443502219794510637206539588909908176284488704008457450132828391946786762525372502398131663287605498313711141127408354397219306416727089353573323197442596899310801239164179154730038372575259939382764911959050213818899269685466919177260485710636133112633019687489726854016539181783907565116699220179431887515533147640106529339577089430005184135973689076001460338737564416069097948549490603433317976811896815134975964747194701328344334069841097854757634072856297138357694738868418688550320140812447835090944319673065683606697012445165238123555216008791194021638748649115999720903194658180814615445216234575909221634913497915403210115217101751487668471830671287186927745736186821296025378624100163617557189826475872304166259608595958236739219637747311835042594573867766171077007145092993986801683725160173329671686996572239411105721300874798027635418359249390213317222763472071913565557595592505524261001292749733617714423796363811448635516636079392620161709842540554445223413494519159488170037494859760248525293922936968947234463635506465483082665673657580029947761507854080651219684916125960483708226969630984638405775135581715821855965910390001369553919545217757683353964172931092887960477117439081376761278995967812897370746682965675020046938516469554164368529851734995634264005433266951922873932293918706981853349271577263400219678926649898828823525133146658502547514694620508572637714389320323204676092322368187742146640227573820319311062994199500613800002905130335209673197177680296840187989568245403713735043760131751136193154113412227217156246301252589016465472067043900221074191065385995193172784597656394115900250109941595054642804157470080306736311846882895382727017902811150467492384601050193384345894158500499994615902361724910622750621024272998878646278149511573654913750415891971002005358364162152991279361590686829349162871541730550459442687361503610349512147298472139628873320258324527279102685192297263706813665100313308070981063645427878471849552823374267757680153904776460239788575453289405886595949580813618352454127449395737263131360268158892410885103054566998159630565770593638806751876626131430651568649392377853378374530216558304210710414120969867712940199423048747507530510609586743429125407551511291434454096893321946338363153023185710851142218984708832929875646324215391208899403013570016906762720582121283480337706921194066341110170096788396505792073054831321020846640965101952268714136142049253405665833837444557531875632660911218294039950691377507257480567849779198946143685501580124707021775590075120055761344841222986423881031593535649574183514046096206266783380479213136966847727560003303384755914505921316387954101907208603148920085057639568639059131698643792455031843817579328717651459622151818856430353921230821873660026512372328190579429146033439827093950471468049637129593510937737767950385489330775456139987798423485582898126196017809219281807192331647902230831403390795278992545740977733324644487968140864828118806787517079153916967537571934670982598439930345904926537685772839934532918168556133736147278023239521999024609030828876782883675229365626924294286509831338397859796186938186875284540123228437421808701230112209111645180259135257695601485005757233447781491030527776790483216487345099436116858402158478362072957810150987856143526033121233737894336453106907588434605355345486906093903096138433817350942178949644840259214163563700748078254659120309005051767294245873831372497853648846890730543547095395684666304951062840801879775029310217075746908761974006694651279191757490208851242797319583378284982670158469444561069926800786494868294735678589612831787007972740247035277398215279419125673015268617390632049081294301581633598301875078211824227650664889338582439871395450046067993133518206666280005356729377741788413093181686768899305395742456298152860784087782139961944102853051118593800041638081463181922413260143732790210473070995158041437042736548620227748226792342386571537980781676500562898317752486802067946085399856781563668500177183330332249030837614738899792835349421384162980516305458948314583138102841496961145965752852165810042469677735195291779537929155247389555845748080007859791482574242086587462991749578164071232920316312131712770448582379596930708858693594011719914456680147117150292415472041662388136401918438506314842184278554721525605706823843632253797169557636650081622936151351237009790796481232798885456130181190665503751715224132149416095023857752342682948929469940038758406988464736035764628400400609950965338315619252006252996695169434777448525903501070638207629109803725128092153648387016481345944314872502963214708414311633688599433878907978205670320356187500594272981584656575072201690988807155464865737207496759540053595004340288484427442072329338342685962885950402473404942890787971421568212347070531995633993908451844077530710906094712527189171214299334003254643636913296723904361974175107696303635168441546354989965386306612445038693860947240870434432366966774071963130169076358354332037442562178067726451122781102734227301500224872042815355514343325737352337167197493343633113242584416996802319310387218514036616485355511174444500678031204157703546613261949253152782088899513026872850458570583908968184148777800555947777328440057708155459570234067457673971264274202434956227597050616700417605341855052939851383811672469841915222235729733802236630393182696868473461534514998340299856410139132106926859432467469707355517208688499138702925214253827936245694032896165110181220802801497280603146957843121507941539271318596101206547289603832878361341043153940582023970285287427854479071488450960278930432285779061267596285120374586248137407866924071260255710428885190752617586382314585631025596327605567780707311883512614909514235549303297262365154862089313718471203214536535585944787049381795901709726608641949404261484607119214931731910311876655837538638276536626273734211696924795726807627814714636147659150039755753377032944538875932597375429716957968962689854575336185568633839030511629474120977257716895401469883115985160523505709502744169306942755691125567698086256921530026100763812853574332169521992171484620250168331824047420063617853259718516566563190873492517127155563338797697449125896939920351319854710560193258336485088062707995099482522397479057858331938170541872764531537588143806471960730873755309927112251992814214244020217143380277530681619785195040829860340884031620488824848927212706469094814362268804675960100418879431520043995492575555125338409826254989684338561853098182514552877832553532889774894928179906025419458759800593444679537980574153524850894444792583317966172269518897732695816400662522944173940946723388109585323072286317565531780167973813549500860736991465879617971396663355300034579302381293669206195151331684899406972931457421235652376280032968878298197398872984134099261361005325202756290675440737770002669954563131504218237727912834141556924819848384976854243139650033294592269383815566963475035796270350430963846986346717576141560183878598144169367039316935789945749900414911714307163585719575681849063304163173174049868178769104043333568497728635226831889845053947072401785982052090843864839727372267798830682208103960902230459606095433846556543956991140548960833545439612055595624685319079592530905827352316836622463076847515351439068537726727206097865107016237393746573851330371313412336252869550544654413722176048906315000557712110629458971240809022443838779957301358914279621659254362890145550027402070015044918067470532054242543277315371986792513375028470553426710921006648194006964371102270434945520163262452218382964759021120042731369522703410084437143301558433655826539542266387966612959324802060580401580999594115937014034823999039728346745905583348068449580502862330470968451607895860105107436261330132825313900973868120863123481751611375699055627568668484171834138143520996934942566028240283302935753408687901084017872133532245309210362256580662851752992197690879043903748781775627393910015311604115617030285015466730096902482269101269234899105783041606367990905974033642133648821134646333741051907657839565047404925878066519065912784635829013963123836765052355408254834768893969685014089677246928341074499140328492997628594824192061387440387589356937418525107843559487112099534005201515341680285694009798650081744410541817296850208238086658293664849587301562776176424535097885584042837255142331596251430072164610281386976755534642903892054759710987314926754055080353583687044549182383082698860162002010564956883674485580875714262998892222376030165473556721100819952646700922433203544476408838846366966013155179533939357348182900377201737576598584827650406111898224318223064299671252180536159588796881221962468110901632947467062174196328390673075482638726666138631753823119894596257142621403489778276331438952117227364510485560481334975093524723660641125265466452522971527941290492250823026987340893974913648846134126629974222282319654052104882087366730138672082960226107006800680057491477955564491332603841701842413209720288271058364063152387646386262359875473772527570298761070405136017312103342141401805192938640960200030022352766763923928497643704304084401109120054051502664751294637741629415227145875725189772164613360102186768609621098737626749850737762128646788736574685256483228203632894050029140533771028170962161440140793893841876307128217557451057298440688160590937741959527619470900520940096468571467924106756558001331190342054076819852974781750168693570364383436126632808942859072935044384058851268615809576143230742432231263464047824004449708778958912642127307473267772322257993636086024915356613247768872531585202575514827974036260901589597261624122419608278768451488509496084076792879553178147870195617707705697842673048873504225542601179897339946267141672063476032800269460210454817587223816384653837296749109657675800846114408034365977953375307207247474659554558562064353094431893893164277717456471466889385924184696709286746191790339480342578114746635488614611690494142926522370769995640964619159584971467570630280554956070306677050597893853913034311447028394407908538862852449864512867345598355751616738173829816181438829413928352726976859636446374372370283091253759888467406825016640699477662961606026160750775472125593102892756445480665940000224902911884604263024577307535792453534592757164286642858523198801596855553687634734449748370238292548041915292432127412183732887997456980399114280221906855101459748579276218804054333153029136377280746665377821452011805242724276866277562439887845010748668202256295852319894699468057322277136216380130256301458965129382760295284659511718180317183081998569233936058444720480621669296293441925502365326482225441045851197434580132728950326376535528666347703517942116053795492328418634320917813529429133912280391479831653221135594919613902060082964160369802837036868045138452826993001092831266811256234814306704940410057204576090484925273974556568822234654377004061878064139014635009115238657305721828885833633094751343365675229760495019867744348697894773496133107442913828390912764831126088546924967420998411132132123800954187160822588524324042261245004109142141528189220154439069325662453566094487280847023742371629674310680320092958243749209057730721329040903796990950908449906160925344482305253372899153756068045696212795328429071993127231748006195408774320805044455516379582821120372369811962320852029184068203322645737058703327377905581607810206483090199225257842179830491363247548884678723028888284530916495771321106576708087982049746473332648795366633548847917653677920586862508046925100355647983679549678358054490341477542819155035045945653007992183779930221964772549679906799254397813176564490141997891004619100012782595329861355953667770819679098650395383531920574346971521969327784127995567619628133497882206466034684483838196352537780099586942924266624945141544548600311518660142761355441088668541405887362294053387272524684112054376203075029380123984513825600176801940036733887352515503332005002523428080699119038519131626533925238077106118327050777232115614149604575049053732955145271869829743324755651515315254052345293589600116808634031178633067963330192917861599726284678539815804706213054284242475041694509171318303050760065089834198900442420622658620569477787794250985886040829154855442180309530397861019652420939103117003550917128473360633607314537208149940417984987633475903361123904685887294474215433593450647753003350537596949744629284342448758489623612054934357560322322900217983620850231293499045459827097359584859520849594542029989025264588529052884600478028794490999087467395876177528929632533956273349137422995688508062337648206538098873252280589980330696376589590653983522627665286520336320577037520314315185846454661398520803966582896940623676426418926772806512703382943150327196435131221361375481105333725651251437770871071371425106180899145277346457042385032998643464575653972937839852280509436395418383584810765998467501334031443416900193172039247669474683307628908837682296323856409202876647619655236698775183280412932258560674862064356037181114793575870858914243174097814156346110611162428260861239833889336022738017047712579639016878246443829509630252803591792037832666707746551607336790127928558473694570907659390821802232526740613316151114306946511935953274826671972289548847116803922021975623130531804621800711609907016960256367748968385152654795453629074588987879514942588977544568782829136711806260313421818596559084213747962653682793365274906684207955045083021813032523260684861215481562526967612278307144948559147591708157557451408932529470419021836428968433418435021255244173531652989128538212535389360781859063723942741774894099248540149410963287079538078015391164277504151914216334927922679295178241163236512700467589725878270431953161870999683788511742801317851128157340091328031724623200844324970653141861855971507440424083787353935451081655402180122800249221955757696612334110317295389817198915432371992326401652623742611567704561142374317803089110040184147279596384087971899703959984241185493042196571302231933427206359787836859299754439566349435889846672046345488811378164614364917016893281519076815280016608393558386524387971873334460166852024222039056888531616525360922099617089148641709856676934945808882781462022592895431435376872820826889729242905500651477897718049088416621441730960537985396825404152356976308891115670100171551186250411781155513204202517778692346541350863615258638098117375421021295551634671808784180423684499850722161284319617394376687600842307799840325198399165003834788208997519574226113694173445452706453856333756875174651710968998822418272322712641828275579823646231260910855754688666168949001015303031368936429359676561975048657763517686209452100375671056994296408364993128491028111252063380067529514828024144607132921336356469143258843683885607998324851119480974162189904200926624058128355454155263710942821722375763492458079595222236068523037569973001718782740908463770635492772681470894494724800271219346517713717730368822277525425521192054002448808851283782885806923995204442724780944492065906333621893782317268898186234342436297447678112031927228668244102059180701434765865757495302571747134176927346998584041111229923054418846853311182390023491843546415128347085881159866557835198461671095425081641436029745938030385817424146353718534444553692354394225626694916724177354138685862987771405313775799772376556233037985328655708687967045244371883012389510608672237203173773381700564093340201602521209898586083487732198077354803135988131900062111822819501048050975352749220986657077767428873002468955223976914982151687122780908495893430505025348144082081552729084251861091469606738027601006215449736401480799067674523293091496798694828167959346923309828490643440482464254911590950575922249282667697147956216641670813327049002573071625733439950191191734394220665224505774827509938905222549996866113461041180351186573994421392772688166467851269032211967547534577026400581211865620505105915971127888607121159262092649390995640252974384397031774124424258307520608064655032266485543522099319984041183563668135890586819219275520223105680886987198710042495557219013822745969314757560332031650405806653137663412794298606622838280319889667328910869773768049868463072716056458773774794920685821683137962293329459017181172291814244383350134148104587884352715900242046543012914002944838500275274101510169038249400924575483125111978286389836023070957691480582342652758260343731444197969840154184071100228238592394337307858444621807541728883754960608979259093201918953721606561175425037866252026747108844453277760255580017834421118650683630901280298103485154147931250423348009626341624711739250368033319529028573407016025259434197443120269814494797426895632821407997906936509663976658729215529063918687566121156891689842621612186597597453310283011225589439291315299649033029541192339935997529419263653674372017602452357765443359699468383321015981209323237933899353051890682667542732163643423411753358694023779582392058712580853859000942491002228472629706983608611809534182571481886328050851153034180480295291428285227084727972079527467898150672793382622273680434766753395277043649154276132197019127200324184980563982255347284226215352121309844846578621547370347760669303002727829608686266304452336623269878663108513102512956260224367997957075199906545298217083811549389267045233073954439366882142657643454947104874275624542449338965795149147620679154946515270435680636288259222017868475373113752364719375559996300439906461502214043643461423631320398675887305605829908894286270595856658864047241423933411426216998496836749057137356221857051664361860027727145183435219324587377298379146711306309037880587311004309579681463631738619220885459446674082751595643042782564327154733796175282394503433713222577754592549467518907247800726698703081547201523945880850957518150172779309479502983930368060589970897838984668467463528924222370859421489307960605260179903597989970500870006682287827813908836291635173242476698685095543594876494628206856458782629656217611446958707910706612961470336968810419846398414725677871088134073184391497248453193678276465450463500197577969635994590328832227881602007252370860091713599688993560817098024860288333359897852002717785976322759206910332258875159637124358549866497856064158480235602939024687290963319734683156479660332872964017879009599214795178998438454643167564738312413000942541539412766373662015292875374568300709952635808867578750787588731975019131199073383233152126230513186583127230071860142427476674278862876428483694287689319229868727858214990096488382345244539341864568110495874420191519321684021046659058085503895311081351112066068623701870033924280423451764381657081565575553422290084466216389129271494541769949423959945964947766386293377187702888092328032028319365322236930121861804484232352472701508400373609874524316089681374376121772895429071274457324361179990704261853902529394639762897547576649039221319782084053090342389162990222738871098997872762612091117405723767889015999320462421431942002588249126587128648665772746763412705245179843832638863688561107911312937960438363517589999436687167040465675477812159397675362836326678636838315616726723971215819039133474943703972661988195925342601427549829938349603644449982241676021342631072473346009456328276252899228544162580489920548922438910562322242982359722661847278790878992857017179765017504398103675470069894754586568123423372946826810097010709900160276525877536695096237860902907310236514398004132103253046309573975361307068272216240077603972091880599637177322283961888186797213184904733726489300347869635061182456382257739822192807058450749110630094867436062153183820329807193656408318856118690841743606516117494300680501824355755748710789826632855918775427743099558967776792698747067384206052063415226393394061567474704772817111286309441981823827252913952151949201147645693971308716976226454638347092986218322132662200406648604368543670281519514609199648665195105200427902870244282498687896815217190911513724466951048967191310449639833623154597933049038771583780627121999827211087275696964345094343564768688387575122136380548769539596150715935544073728714245077562854779949115005649257689005767161526622452441640999151564219108544150873664532801666473903440658723781319499633916727625788951115356258985854291586691037600848741490844395588257819653858398836402095160008949989272298470072608005955873797650377296074179723788544827895594192173952453256623379089100008093788739875586092168186700341957839268028936629147851382459279728835268548175954264705456578631640597343109778313901409672689455089559029639451998746510309760788869406277276671155102320937066445795003474671873723792300004738645358760236327551205043524185732543101028486408348163771816483921576298820388495276125505131466868614203882335260706607942327934307381333521377240997336869302111334125502090396491403429769734714013220840603690365598553365033358184659105325611478206899347393754894161865652211613725966739726695599282965660599135797065447509624004937611928561911109581185998114537783498925100454325285986682444232966529494284365548436456661544297492186012147399151974143767463449133760282736768120838654445429093404094785586090574367239982074156393168398593985859465579451093467787793759959198940632854763873609861066065976910951463392459231332470850305677117741986297272422286630370987983728041723659457628332766335621108057729811296565087987118099442209074961578474934500844788631139759092356718029886582147127520202303611505884261230521081485772297659942595932778812276912132513527049343301601573256919203245875824439848475096405270747750375094952827802964039390876409534523540846002630085352904837706525835153403563664514155852393980999132926483741814879816038683653607495568332863476767491806775558726056600944839269313564105195895035530546470646164937253339574937385075136761172799021535530820928688727336320328099173898719102173231968517649586247131125726950448974967595080996204930028350322277977388637090650704853851612727722168833828408402585259444401255435395017324213678288708266803051971956045371153118268242041083479535442108656847074682334946918056660197240409397177359291952518739698131952417609964223649288763001806471756358072552895595990636097276979812308639779010142237117219300952364526777266090299311206430682241550944199543979155876487100621446449141764755397700365458242736712633078676371539549593402344567303233815089017490610001228261177788116938983735552528291311664476283601532676658900871169768045901965562655767037340888572558699548220850521053572834022191206589363568105810458247475391999405398432803243088305126790966113237681269600048868082856911497235119860849270651837844964804231232050915540890924609232719052326381473523729080650984280986315714707973094417419692451284036848548762916521107257814547907417596173964391551524182737459210225848799220730481463618081749059504454334347552301891997776497269123332724056931258064367468618180368536314789247629837441161777597565428575948046751558875086255539457173135417805463165840497687153074242522480037517465054457915570521498825449134727421568828838518823177377646158204992564137975417009031013397189798514841564073335863875301034474786821242689489360260828517243275110555295233044524923658852354875588976865418328720585284283923490951394838649372801199849069462659536626767113588701635472429960397845608937556505719190837854488820008295181185021642290369129666605313268229059342234559625551806380975183849822329578552801536543390673657150658865558482546880078474313162914804746543545703454798623805357264639602099377635599595247827972273106062373417726852714165539444278803112119170691732928956203843240707464990995586865657330018420556657330557297480908736630529166975988617029013965164336494174391558706197242417147768924556215697509670563760212333367499168316531758282495505027618177830059679086522900084109152820325364461483104775387337744932192370939455735705867216623795026178353782016867085783900932692261995437217375669149811604065149002457670708085649389626700156355418251393828705135447307550452160720231560012533360525056954250142355606484399454586028604380739874632286636298255183676053876699193722130946666605020324340794861756207639747665251834452802393311262201904292273831179464741922999339943909470137331926846596191816015531203681861232779949751597994105037787650497492641130516298690036783994096619251158095501407711259893310382796445930168635671524606630264623588297437426319806014158665239999840296781304541647142268884454453093550282447055635911524433381011342837533698467281071987418535018039399954422128665717596781441835444199364934148822718886612875840005002513539419945721058524099248252520225716288944217718935565067652289577957553253162353177636384756297921942552818799905734614254295931403930963603880225529410535239382096287083007131214429542472717469747542030423674922759276187250692985439718724198603161500160221814962290281094578057097341066664786305192596032048048046688594814618657883932949285041111989389454149588372826857106318561970860866870618098094231458844635595702536947094760953929067364810089200630159710649919381183765979934829369487567874482593533298163767551604998272090335345959965388880183646232526011237263973593328266354840983854712084830767262829444761738799923988314053266153970307691713320927152130584437178986805619569610860097937205325323824002608929260202141658463703151605810565438941692772376334249001598127699877627210243341158700389220933149580874879936001601303373666542716540805205100181897227574770302356202928595584965522793109107194021354826259262980363511875320777571917235681878020934923651505422511946681852963878890393059805192771647388830423601815169664996180312358013393604948944881831380283623390273239650675423028627549433011460246091067488825362785618258057546574246479699096173291045870596179522012387605131933336663140723576315668269525291470287283754950376725597207421019776031023702643908017484053938202004412580742579234117780175759024555227843150436049390632272814351386952728895173233905847958873647019044773904626346613822912672786404786215498062652529937047971691283546426229223363639674991794369013572123094300999717547774651007192568958470201337622864741987312805906003078822892768589271302293056327058850324268325852113808606755789926701427306037710245409035152305500222726178256411948603804795385619124571107742726045583002281551477818288319034748779685618717107181465984383674545111945010140059844369120710811994366378606971648164576755981546744208992981504045767956043914318504945888677655855327503624817430550774633786163068472934981512588112423022624499160766888096243069261753458411749375146141127441049799735845771588165257138904269157744515352704960194339643283306748120031860380749750817882625811328974385138962151621375435769913021641048845874835199824376875657397825112438547463203817444641477724384795426679110138128097685648317741350057084485016650340551635544830501979922370580870232180480255305976095198066792103860689843535412361994644832249295680821228347180371181001561908490332323243921089764152269341984044865109908559322116831497521477925876038142701047176201326221188828417532503301475243222729068263088448143974342371038588219002131048170534617701405179993946778816684599212736934221159875619447774591892281925488622290484536594555340781461032207177365454750015625261041513990605191241766641677995132814106302304453530384139552866592172426488258883435120369638755827967709924955811421451667826554181890797985175381491093695113387301531578110967622569283163174366398465290878400149882879797460628437593760588750027853581606435540064559954471364722056336174252418504228950345053927710250573256295464351650067090836734878230163553476105874315802211542893139925491852823221983538659636845479116513813245366695178559749718182088515193335671325794815488188786611954555399835339643608955923285862897432206189499292990275455497156487772101744706402559905674871144286169605258832744723326286998922064384208654522145515473466928457595415862986436205409787299959664434829063887652824240348006688205309332346526371734066554680436793286262421157998966691458664045664389676221910567890916174391476836937122996919171282435186933174822705928810235238821599858599722706932912108686566047590376163866863527442623276092411997662137646325667936375218020455432813431043836017026951676209590656317232801202797592661424747896575088828375683255414769816154257328267962963870671737980387103065958542035170106399959894883435499258685496660148504035733003996415876244914633765506922963368854440425742046979278976427417783057994046757356519078274861047070187316342447929986427085457940237609917528871262198604966761366192149459074092548963059474770258458875990458541884202189349614312970053241937101704744711426586142538988864117620681745620780634953709604079425631460819716251956822653747719700359727350035582239232861874427575602630823940510731788223673579786366102071205513775240326643412235721737706570479671073602333362838091183808315186391510062193814862186326902369586725262074595939504941493643943113191289639366752652997621166215529718812445752563767632367426990747696548033692450698351951015045080440066861610955441874179559481925828204749478523142674286465302266662514500535630486441490609052845474019246355993298478042843626601182906051742165688366150672523869604270428986797323612331877308450095185454567192201435260632017322613949810754574862021483879252930867601337601301469390961225507828026157320339632421123676146740507618852302163430056641508722430946391222014225979534475979934309222120969584984001014773202812253417783506689000144519541884786941287194908355714532530417932887090196631036489538314069148774834353747100232021303124575712717270531311165896765621019754272332816661287595725610613300270718088938441761017150088596262107453375216460834398339410649460762042578484860790335840857629929333328062743303813633370182003043117805604134543395869234021738831350215036325362590012724963510414802523330877477594299613702953974558080839457068383724555739683789756508289453526000175353101384373465809780201741027258356553239375885198444717525534529347462063402696380699426572214030637976936374156437864209145924326592365276025967153584684105918871413566315425759176493605915874656443524972422906837178725079515004452033221103184430758349058368323844914020495262293334198297080534665792955960498547258784052502244130855241701596055172717507797403762852902546089521499655659651912341971101252181144267338983562089573773948155643034253645694707938188282181402724379153043539817771652901997432777659287671246247446833174866376202549995903960381705151045640172872696312360445248026098662604513623140438026100177195963053736582346580223035060303027989623812867069538519154172101043541906723210254380963154146920814065933443368765452221162736506749703278433262390259136574326070621220924453069948215036997221630569882755349935449255725049701352750011910253907845893595661933279495720126919886773402843085654078576549092344465822822418616312469485458132694011168716083482315174670484237705200456770596313493476527697129275306471406784999390841030493438463740289522845820180892566537508469550814368930103625411847852958690751322163156792800903520369510996290640506902812043852396471800522225763426165079415382760642277711091059770131308123435868358284198287017608971147316696150122214028777038988337520252720298673495677775927113568249260154196780085024033123542886865519035995289134204190513472194600351665033078949000989370987014097223553565999498333031527015849064478485132718808383586895457364761784972019407511571450186013208566702046708941236946832733542103123700666496569770558499702251364746102857110072613326935356029075038007946540613659311117481556152776263417729996444579006911849486306709336950210008366693118564077447611916423061755638778836976889689100064640478638823207235562214973414540556332994601905598897396799005751942606655316405842140214923252077469440049743919304286088079790182373063355797959262895694152628403581137629519976872782047705326602181025561603063019213741965338191703065458149872176213117584792250124614427867634181698790534903694186527623233581526035253618326138773272644072681597519130087671681666958020153499747200594274364959416975771086787765370657804872389166391401556332663145811061494299046933897478063844855707750950501220286062974385510278292453426579286919513082806857114350547981127559454045609343393309806082885951322370560674084836096060452199422645816262840335770593501142743486258584242717535226029454223924455741998017715441534656508894641052229969450511486599280533612615388737611207806618760180927635507445978699563971056010757963885362839166727016121195556215978011571391961718731504525137464755045843726443681754800140475032639440539529266349361620036903467593231346176874237156307888796056022029671687240582049348097026639917012236737097155584851977482740474179589880226964003974983107154033627983875250347833877085580670661174336604145150879689693129704189821615422205129151272720135552239024182220961564323044138365966466761887634590593130449214071167606045401494294673154345745703695957747344019946871855789285750579637266723688720137238589132335837288368258010236983931409472689051335948217084885075527884907487274052180649785130843364876950405822231357308874589580866245384228125387888552441659186596217316803557127085599530764884360551775835632024843915067143859666231827461632171378848292223638288979077476558293422728816991867542117230664723705249814177144526012413960049449002484928888329245207494309813958965511624357867657289848768027712629650254659758771895415848814527838800388771118773710535336288917588193465418246783783579878797020734725529407388483733516452559841344473421778178594493343563687188576466410936715162068631130034396022261196709079957332841930387771317974024747672085736563714981025008481670132643234960719687627952517271549588563830041888103362068188033604707097703432773810979880935565075097287098225506343764752941651271910468097251529307991009684286131806965475384014909049218037413548459366816702083228200464790992024321428723943795054628155679082573587376209338287359727326823799427804342471686623139895640254980828708465696967489756722122020534047365844297816189726471085860223685732814766664207943786216393665411536671113377615029463512437658289117544169856965781051776273026918101660161462939733069500298636990463784283273892384815153680815975834650814607248371194563677002448392076364728648260085791193960413283382435290792247346320936974021411127952859878028480785066544523453740360321173339206091866220499909970086971980232139773772020101478714874538899847654276690292141466777570243029495689743129125322095524753329016206237123335528125093548242693417939164154737404766816928576144892551198797472298743109030446098679188868743379867801447508505627241875448975160520324796761160364552811139702435035433848875083753329594945881733355916713441207661136041699817256061370271986988727963136621579378481586495583072388905002713205024005391134527599458424913924000296654295605355956338215296487772886993186990766127484684505818013362326530773597301545868286216061835183564321492002006752409465590867099882319838107144672188244700894423040164081154229551568714596629000203491580914887044874654937389842991880496850312533152178861447862323625898563603554769787822469765776721399285058304070137819449133050515866564807644631440522351091800803979645888915318996923260716030138843499934367578257829065313769585056921823927879202270654752916192789607275620228370992374246577567727934239795899512969454106407433993053834863499127596594810025054801203596557803675361952637916170035881797843616315800764267833564056863809270502202591840814061869033512088627903413793993766967900292401233890276926656271471638286686738967706272746461173204700984310434143322103775309461905840499869308568496391169821959849656421039704049625505387474425162378805635098765398799869959019778685553128315927755034094684114632852024197590756678889238752386659210655979820094924842702639410512944702762081911573299726660402127480116915479630891177239692032968310005591368495446221810450634610684200972303867548053208787955802466344500566167304445644774348090980144868396417935718884098987119658777801617346006351889623134466265147336022496458671292713797577702644936098156028920878349563644046506523889315180893586490911694993595416907017388767492026176229127247707727768656342873101237251599911155651415862690840349089934254036664736907544206013935091604964462741424052418722349234908978738714260050226722233048847481067820704724687628585641283275369192158778435517257114476560549177507153100704814194382402658976839634707093532477345752051311876138409937682664306931645996733646697124484939532513930124059039683966085402453862900079872734391799041771043915033603622271816894360252129777557307987223893960062213012778766573531189434324070671520977800786556052596665175625172166284724089822521591445632452340811771965955013669632857804394107693130988059868390771552319196058103015403816910658808397167190387047949190271556262011233184788235320469001847882927042394019037201485770725094056631507335501931550046026777831301294444643407816465573897889428135717912070637890053995706377974569819704217362190011424627363879663308250735896186836411594559832269184749207035536775831787521379360383028826617212997971299142885803152100538398253187351583821493535372258820280213995032598808967439862281141433878138328701408293973837710517022477886552131820533762913984001394566326956725124978257005577617363001397253776010691574898920121984278780704072128151251690734474236162376686378553969867948155121164276880010722503444165358629856961611624694277579331243748991932266052666505320067993166975746386092260650028292145026908862372745017707340965078025146350835359167201223717372852928098029309809008613664608002668883903809262850753389650781412421576526719329753358284716229237359461172982456648602855011937579075618488155654403157195422005104618961263019116923966437012745911963294758675179255470203232507334424892104304631355777487858936254948665834528448357104065574130015705498662490564898118553132346832740171143733202977455130177683397387125766507590644117876571473890084168022890319182027006634655675128439147415340720253552789806218485977896932478286634519167822706590581446769191345993234611280196067514584858259479662328809272459033374181712382477275809914327146333164869619058692574770541872598363234239322191375835474770286016087187699216627567807786004953280544380451725770593606947774022392116504473275776426152195383583067131531645726656443820190518387560855615776683483830539665594043355840228947271974411604823150051476885406247737942977844588456458499006252401079581853883459703229479209636003031643446449652895822001296391157741839626155133668054148685066946871631870332297803798125830602617550632629047593972667090950365706031909053165117218495494058948981007047763534317598990115544026848400625661860827103712304591930879689103088098022527142616951598868364042709758785513235192967016086608897190247349055944463656145863914619421409868384846798411537196867461406181219154163628360703349143816313968043302880313547515041189614869715785420165427170180564178308428893896221250748729817835803807314735180377209284977407887112515612157965648702459396620954988758680711831688545082609195911970088777826459230136974129295397028407198981930026025193547629489193293012142598477663947267644444660173618052972590318729992727629181522879505504880330126410315781618038507021937455009197565368976151783769045766776084095480167946368176479310778165931057624549329215396445473865810960745634551230275485285543034710333009688417739152156528549229407162550903092727882761352995140967455704955223380440800356920999883067289747327120211586047720673308157971338146058500165983849682260234396907141462659234495194361469375815614311700784951546850123877995845269598871186729957918050220021345016718755044538504312482114458466795984221039487781997457065391711901880512687033941290848797697751964921764500347229431191438293826333147859909662981957528249318629829475155437838144615939725407576082466746906287546953122328879813039773649459362650560043315217225781602627826702018816311897419657068800128017261670771348362854130172804267111804045664041757249631245412662989764373143547128635477798628127542263042448233492207037718362650269886134509036316914953886686075969944587629645070100130141983844061738698331549413515098560036347972765593852051639605255995905187642663777958490345143835169003359431406897748891955035732005543828067179862786700888660470073172718381934897085733177018658847276647455232537014791971782163560455768540164497587516069681620975451766647143951352656094197135061565433413307079723217434731034832698030239194518871259960835830426995689759810430260386989786933564703937676466604935968989364339170394561937887455408580052574111511251483173433484112358052536842154880716491424734270989941654405357095853321442585693884422250220967875861004866274603829602286063140882679865161946791314714882425552432641745300602277553247762762561053581794018629548632989194668265440169695562184650801880720176704075820310601544504743607612854876594750488304322020413933087801695094525326786991484807639376657362287068575294640019241968025774697342128749008743010116535464778051090601678605975462693243823684119971742369949161700167786771349434459127152393230006852400924324208719085604178355564593017737181821185929527982618169111260750818537196670876632010696968188349499060009408196682221026536042644648971876236301849368021487872315168318953969759920236230192335703412910493154611918299022322684277870645453702603847571094432917615030396146480404861613804581482592702383830798287869963442152451498655095958459633721042818863658313795252079282087234083702606597219871089894899825128281084636336302510270375067356867943250888608891410909839946113390658358730497154128766769208077122442187153940719611217084212635601812442220207368684008788829059511375134592739591558645602839621969122716561481408232035178576333889310459833610902846238108848846489673530924708811120922906692434137146536405583316435185621823699453512054579874307595119097999290994841561771568736808544617632623608309639154848615251972336575887123274277659536751665022130063065020434705923006863941588074772766076094619236619524939773612747234449742711247536736373964550311252652045608485343476526171822347649682435718858644669025600534756242927162977306754655845343347548527734345938490818859011464552902275684485562789771386167819740989968859994301593393075288731549547610400891109315262184878636030781410804158130236967920928808808824612877433666869592584064057475749556997231450073056689229778976089200589316325896035880747420888564105471180725074807692334472247031663916452771493769830016843258023325231705139752326675528727363380067639042231265187287964878738384404748293113197632855483412186551496114173532680622263083492869454869741598245453262808645351519061461381151314135537763053570436582242840251136823843536580317295534601804842359782734515694211285457079885856475121738994477334118156851594493000780158562667179634782922093564249878556800355279464206415668816931945536001295451725786915679001423947404651777056622278540799833523287716404176381470917874686721832368475686730943174500745665127602910534702762312041269667104980012447907428077687351628014204367420688428538817239020682946877405094107177341354344445649150459513881813985811581249273269404471830391422463062835156120933060383012156363135161018953685045176239150833721667340305193351412558451602906455852619421701669062203306693467068945213333318278640050175795568463576516699490503291035613392710053117559791257150901518538605970872527239925406549298837987983134032821985411739303557037604449435259499134593165207124345830317838952776155740506420349063986256846960986606015269587453315056377499859141189430900636538232122605284368316930974243951069090084219499190084706977251632308315365073678881030313171863586084725211464456350041146029806418166577216298895787249107792497218432212332678430931625011292127251155640699680073792612178966222854857471247747246073163363211415598616773909897021857683074555515471537683775527026535788840821104234454728974612323439825788725788668478412031388773757759514489544859184787508452763374700186211101884409731869735081990867693867426365240261411238174767103878547816653703216808269547681459222689217197653748238077503215434140265174380409196616908448113689922392149292945260273946264508396271204036169352083499236597074213282457934863262454374463483968271167532510068823490593068107179168396107414448518549540904094377212314004882154269305544000249756741724274353460479672185485578146161230939886890700088924041556664774749957213976847238717922321008694440882228356870088166186197691004487563441108464997027163278710697507197320028362121810879665054802111981276311314004164906142680543635384124507460749779298054131292515022515106776716101766778742038181649787788345546871387433020391198722079686478472082748621696363488262296517361671653800021655927158961532450337900891495394090101501314895950375985779671069419137193521782392064538772950507427716627581113227585460321111904367370116224199065709574158273769138364380799178779640729424343033724248162652486087492672876368477370308244559230563873791457109998883225462012389888237063105206530968289673254270580553771724962064914586041506600947606342360002857862767647405742447365048290465417481752448712140153740375011573335259959668770641665081812815189982493807259642471158465249683203273412970662520661635740216918109644345526714377892095712439773823549397339184675905216467835842346441538990567648084192146773031853014255564470012693753249695604995587835780864417292655269344033141001522425166009682013950854284458787480757856016363185458267308016887029272440167212055194293803493007296912119994126984291180835147542708802121369138105291332610215728125194666469608297651855378445996173793972290335022183728372343717717476366237988964238017125154497342632301269017814035449969153016620572900900309407379642141690057753739304866850501192102148137417579105108184223834646660698794915012322486290132643158626611868843990793619544186901553315148489084644061838164605579856245241193603097807669621593033167860183725932590746174199777814431558656279830002301804893962501629012927648850712394264045146026467140058622929010770082449168855417898530570134676278247241640674307863148657651314276032916973169930843582772095338443107479167901484976701561581606303552468154102403208077414108203158658112051491422290029305995595420338490604249635032086887959618397305352810504463496115902486823455031539955742846441614647590176136186560009755791119212181494617338155048039418044244311629534016351404273875126500719320760531187333627255844853740926086217995688902788699279374507977987843065810474670316139073835690687012754441787112451235879124274371666119904836036645706282142668376778581251785092504765568814092517430345231452979712838410071112849147167399457441439671125350098671107344444605061302266172003800572333283816692323240917352894602822540306034030320519485990490384447021799583245485702955253061093251396049662766063876671766917659503683931459541168892385838733255349526536358763108149048919201381048570912394493722277685684113919631888733619427437168879931629916592544063924618134507937391114728801886894917330950337563046913098862374000348601378023774786187307288924164478956533321857836949645022348406541029348953093062558881934738430300470202637234910125321128284102194501059672535809807935989009959103774197831905826812300955557515701429744587847102158975921532699654614467543609791356458946835631946201265322624011176254563469012885335981043375397319046553507624914171569535283165636755033170077290103580630934427971562401733220918183592997835748430421571332543083656947694502790582568086612766255910002157051617562248023260893111327458153856346064950885731404735357449963977139547430998523096574206294783439283612491246487767606229688076266093099679712284160298641573555913825206966741477685877647501619903393867740190724846932101195855308538057473416523020621569918239213770249290992144095853866918344714994223863466261980203597320017931287483154326073158551315289402365019424437778014713780604488472175982050770358334262611434985686413216121618187668130751031381322942215194234023403725038475818683844069011814692334917061717543598145062179452644787199738129231463878391241195931492360385035973654318211431340307921121690541165933183088874170646318013775595936517381386886435733755962436035450518645675640444056538630971509491610335647799509221321671460497616196570716777362076043607214288941726392260947446359567558008841441115665669701901184914515262743289790615548574138062421124264356323823455547963822187588224665208122762785137499854943546403355043163189464261822462273897626259850327041231872410881568914200418314942995069985685705935747291126051592358018419660603851414786446172933173109890013499837615408291018490063767177262732183816065516976529491833211822452098678213906638930843421835452086234325881173068185537374319880652686615259385195843878725008491121421280328165179862358842414034096042386449639165076575281822944006280390440478767738697998144638807830952386037360917104828970570955794895160876916263053847908714751881869949313202433863823375474390863911719931199576907252793907005742763742902966390127023898953588654563602713146964069830084319685509065502760944721589893103527034386166958637665232724307996038083065616047136501807443663331452368335688004020681894991550993625065908053634353121949458227943337858643779635464586814222809053160105314572254106019382965846107968444013779615578038453236937610632577882810101377817722940278167965652620031226420480080571853628054445895350289571864446546982706310497364783573680716748452691084794172056937724349180355942886650957167679688618943343056435220321812830544500056419386214930563518228473939428143397014391697267349448928399871935355677916304709652599788332645507628598293720209709737375501435317720299237406800905806353041285128529607637334877543199698229032001079760269699553771324062720714402919873580567354169658062989639140680529353166523250798874006713809196892106215769344931253712853230141418240315474036619642343507272155024378480291382761204500010587576736474371471234283805927688411983894899678055628111859372467371080551177369272201717258610435980204148892290065632305813771856452788909485625303578215660722902904618819941807084505137755260213676191008334099397021038113002401919610244481845966770622936769876862099554485975450193490618002758921114528988114665325875839645028909925625477871756321428383109644954619068823716727326908063443617643485220057011476135017013660081533743971624965317134233809296195145061425172054096971311888432666254815127060346423706525844686035742279191499577857544696953943335284455836605097381580095777260882621671539829804572514231103155994901120939069349374469598012393145913934326371203361137982890872435420412569778865384496768274747703993638780121661933456662377868756588411312864285882150345984784196992293562543309591309457158123160274400988740097887880077141332904654171429775017579818202144031722304351742173983338985686999952936073757123107626735871688780855543182243072444208953032340601557189890158663671509566834152037898121840532157624922496749426298554550539201280746551100195512551039789044431807588318840633605644641344339684342831095084320233287864363025224818087976668645282821709423540276659522662545916131974884049967020231036295948854012481156069687100407325859584394968667509449179472571885481258680864585552956671526814144587345482537412570175225718770949641770795668110929974481014610085167566804979157022427266726970198303023157429004227100605200478786887511281556989784071622318531755721940567807817297072353804135342594031803802885017856870639974272077889586226330399483824263216738551253224256842399982394463191250870871527412949809567316040435039702349053557990981572657060308722347059692282927901021534340690732607562705611301846832485637736300466086367255595043671580972929766343120072982569250375667954693996678462795002751586324757877730420003680961548425161728147808242740120554070791120136425963905165918487664464996080905090932451350047900560647594822891394889910779904652373221895020474949361919780289844183542945451009246035798076329347589051224055637814004440433399667841508026632755711038086195057784903266600591686339680783449172554320711200212446812192441821483751968310582954051761196188641423954998019494432098904239799914179607154383902203639412610993413885494739702039235204728361065306282240794917474701152737041911268989692108051118333162389601079394423556685238556794850328440727634328147300618857115611584372009165888475183047963994662068231549703599765515920339426574362594798122868226227980521389637638261925004082897256181235954238264034581361579461159264066326822835626507658314826262993391954512688196029064534142196451342472089956736021009096179253590176090539520171548508915635730370578578698232259367956035897739246328415052551614036170973749856492013136870899450500173698414222620001065876264481900578581439825426692245031566497819276983558394923137931155398490084881852810214415703958401218442814113972143245760842941445581124915819300089001899816764711187957990604915632684415420522852213838715074635425318711813324905093179259878639237292246100396168966876774319096654718027746818310502822895870404805846958419439705418874198582922637305014380908993274009205418766244220458286721918243033493003677253435979394389393242386658538808787564412354534674319250580467639469075352182634914032804231284871284240456767006663260991962251054460153484910412726115173501094618647294868734778489714832097209918041840341803757350549023211761109465420066411457619244578013991080916861434399457068545704353949564423908587964647214211336959346409878246165967585546065970301591367889021075710698111556169118528311500579753195809650290038724075594602657852260809625170660278767262228028805589912123348631408308630228176421081077892246067347644144783544709654926880009945031943142088822230134575052454804140116472123177849912403413571707601604516962510151897339437257852580908625339031633976683833476517108177207069169811011107267414520526711119524385283292499300401980481216710789677176911962448438105935032177096723105414276145429621254525724806724070081363057944920243023336692675478438431109964039495403711354507731662556241947416672830728918778734715823305927685537690368740535044947504550561569454689291031732886719353886447703755027786415213495655857402837828199496916627344133271457298092986900461305722164077747589637864656088800349606875211602615128877164732548579703208390563036923478851178763148088686487647928171599999251327107727079046939402134043425795251333196421528308021215669508518757775901235853272268694529710624687462748252767150204682911275391580092117639424902090712399113846529627884175582011949654640522301928166409886414109711738873171065390033490805462904618650315020496602458325318640927533770168741618960034289932950161504516945913676962835287221595547909764512301416694158286139505230705467683991928866005632343466292904062184495762019485030612336511788779297189394682233648560532542688534877550962536885189070709162068578794990894836833904029575308444249420317600813190533631380828619348592667099587266448409788551053908806275454247260603855388031720342064680166873935806047316537328286144564786756812968004965648537466287192110341055305679393755608068159307303727635083517080200267131780140281889481023103348463833802867020240261122803950040958649891783954250261307853355187059781870186184237942482355433164592131559329351862052927952181434490204310430858505354488252437700195711753347868992503091113889340175790381603472346986030877699667412511317668536175740204782616070024820998399323061213462628227899618297166407620110538585588665309599274568560930415072442469942660089939508683640640300464874521463952277844438288562926820048696372180757787949003920210616749449119566617816745134884535108224385383936078128241338863161527836039449439137058721907982909668365944555220091892820591835539834641360448783800843671897870903571962481744178841041357292474992055542396533083561367536833665772091293861963558639986602570277447336674867618648916292685892279495285465465139207410921084757158766139516608083353481570712037692122380415573174055183499715973415573796114490091172892673592252284439256162752222192353343357480914632402589605635394409730009055952938204953403124887916565905909900781778411200312919772383829816795008750005138886521668570661814048357895126181859101369801658537261109077096873237285117038506032254767046955726447912134111172040751199111282643001355540470263893167784280787612896966519969624367215989312565077867999074570214434499299404038161545091561459977076214017979581464871006053648532346950092578348352833007925919468493157093417562519741949105768667083457970550140253904268113810117320750697347730617398712737849545890917640883933672050332779058584214301837950807442428966654212684518642873911572394667257105139605354675780234670301037128548791477047049552250580523694023109433990481327065025655875985470968601485255066829532420860796432453180626023321183865145607628052345875578320740845310417593650383854983714689372321539226811980695627555224737917418052065368668198220740837581020575656705201348641633242301177886345560622186467747138583390311525211550019514804055006919171469478465434849355220473935237754173489168125931449619977364451980563735787593453646950272522562784718843648153380193098897636467837422600613888758351102012222540607330953340289219892042358862805239543578962887083418029551850732671812910915132265695923042350474698933911162211806081580326664047444356883164460189322589578515979183147710574629171054813866420188828529077533537608500311332044798686915435704887934807440104321311701082252527724228168252749462540270264520421553461681648925012722512972472460403252772685062755125756590215986459355872740802831221138498657413056122745544594819462042121618010084591958744454112622036144120727187287009262928511671945531159856154319897756625299976415486110877513053103985571991220983075105166546712504273726229758598678999792099250494030413082660669991550056252453694612034205462575778589040699572777858016012488600610634702161645148166624786456122131281767958363528207416266835264318138764770939855817389448478723785742354165273643962769767894367026616664906231519096728523773634751062573551796820623207691606539343698764159487453998851203154014908929270950663930571121570141579263714501404783738795856318219147577986918846830715462369291474450887129621202097918747720133758914242388182338745847884402973922722642242183542793504077520734614510728458761202323598905838625022900217517674530690880151972019453500993785905368594174760971740216128003716409726786213711207017165284235176919682800850495072102546523639269658595462594699847650939487246030844879250646557794903212326824353380421340761106419836188487000921791244977251291415307664714427313577767783944888984023347339555554653618132097491792884059827770490492889534957453242123562467680748556751308283534156934330831981048623504165253440434399345676982223155458123291870836391438965424559274843575947154195977574598261428735461809977507647543188980640147125596646446459884090322730164004190091067727164723698165256690226602694923204970693573461471962526746104766532132349337261719854598831976604206115011323603258269723391673307726353172507588142128243520966818543998646119299053562510699929984982322065503336572037638401705660738110813335696295256408192426760616288046696571895755444392294104621367383843028516668024070785946264592430469428800229206905188910724375942164077343243229642847446166839393005318751631025833597821416417432295120010512671174438895619397283209075606603228716024579556718279994497494560074238666111513175274286815349763085596353994859297978113976463707900505259834977981509927885338802444882919959284850518778942498823480858016411861639398229082541861962668732698783640705837293776458868442691319459024520448230140102124448769807673361596445060057873618099981027612113204750978105716376020591041039396210705969213523708201111767919106719433551956002094492899153790732226794396247071388683458042433700487308927787732706867099370783899308685179953154810278999576477333417927315405621221690239395496582243656997015390648020497178551806556089956686367514062262824712162632219952799843348306250013032512163748708703439894768619055147809933975185685196060004606794283817890337347691529428377342586660781616791532307789639785961236791135966812190871106023638546434848234631056287139460064061171045548342205105342986195388142655798772043686795855090077076903807320331803759684734428430875474252737459087805750247069139620314498853420770977344933953237653156946528432332718354614142161652799060067103774837030511948910697188622155553550039057560183912286233378520973512796511283870896120798185802999337876288881480434932265225074935330049225095552908488009827109930636238546225708381580666281719218985233949576525304997262317415444938217601769529188842501051358434935395962265209269046548237250391203696439641947312101306021870393591067353543290808783904119801382552422142944156499700900494141982048626894018072489586799942937498668897973602067915432842174129438994000286403746016899345194298245484594880351923039908944395934905063853932126376954659738150588953794552711532237732944897904585837422241136825703695936480382419980743746944142660597201020235040891819512203534583875943165748324221238290106169146298343941528781273952574379092264913204413536440604840520685013036862522308036678843325762848996833971812180826124120773751814597753815680045629775022350204240294984220825958774354517938297207372909912700376723709786038322023255845391656088414108310114113243173902468090326293136386384638470775135481295280727638928925786164986292103129276904319237862292496072046516896166704664071465287524154573476858180807863148203709833841243731537739019621471985168600508931726099413208520429553757443500906802070432124498302575468545430528273264564882181551518004667015041680759014290308055602364473140870079692125223719638612020736681920475693995148689369521851700872029115296050245305916501193685042315194250847231914654638116232318595655617871055762225503341712027327939636266986900645450856367971626957679683314264558153787165807347862482477467176422894256377460013448940154111910668751480889186538343717018809960404356202965671511171456384286564731016707741320230436192102457476930288667902003772493511468184081964764084483411042950946596889255582363369814021557675536316880351005556310157433614735591378343388300332512281646979244062112759812723782171323625092345534246193599568988750218816814482202710769175039429928920242754202400589336588197046436653456469091040940093486399307423813196330479908620251171799212037052186050527669285793568577789631130216825326188633451835770899963706078039260508577934661414739169145584199947486394144411648596329145844077060725052300856459010432520428580363864513389022736635886919035675597264915478359376856763031403419164502600752396797455791432244792956084625960860135777711077497262615113261442724501603285751110926311976354030401074305665083970267345206927601916598616561043886103637457502290993110984601100153475808577043927802738246716415519151675956537033163331427793278621381277935916330039757153346773025760667553774709945469712220296177361540513499882005473569991490900956200165605019356959935303904694315114786492694552553129446887960168554361162529619369237285307821929329375579681077628479891808897826969114606414243791544025803471922724283501896337073141604733743879803483219810007218553540947099012965502955358391975741066397285869772569195008959774954798611988543533879583546535321888141781118493580618373211041523146435803778833497546339611648585509058997777888731821281511526238711764562143025727616236830107606915283188310475305971162029641916344807479106747166744418495639081642271707542082892451269574015121474992293937648226464565125888556601320538827214860267998457821014414027477713429220844579198098398906079517628769523278963732301068784636752119158064319231094611763076867893839926360758194762252210854353020380737974053110710771739815300859889815220533357402304312785913523160378270187566008886926637667000964981295229574715189244194803628398342981400133772100892273486515106526579525298130368582293285950969433027866405114289333243467264230670842542832636340089329381496977185431573409801741497282598352459383712690597799085218080049658127615674172920324827047219012848932712574989925159852758080484813563725440372298285428966741703176655089167888849032806142809369334278668499528921890915839435951394535914570664201254311986647391339647762785130932066656923535719611319632558305045247443077189129507339560960480525593736925224210000692613406981028230583833078787035930539148918924584831147553702043528156196665811568852023703342765286144643068907437878012162819387986472697943586520003401018968172321329220043699848041001949753363064714789884133310808431359160471539812874765109745339953379700429668859666108740900494387859572899811990212887869019826843180008074505308943677696880286651786307446842128672147863963990220148959725480094354082767538548120597588461899223619009113812201515152821260154347138430290646530638614264335286032557797169813521143709321899057834864912254734422277747370539041150639341301148580764258902910537456762428931141784102917256629452338703824308511827215655693309393916793951043984649700018411102489110293975957964473875347293914920804752475089945799846060768416658845443146615003467634656327832873678368319005392332649901275493073338354500688575137577996526149191113336643572399567225267311045330840537982866298064029837844692421728634656779266287734207983922455867993434012341283974329577827601578421321030927679649205182339861823180403389566680310843812594837664798454785397649320371459726898676865025561427021023452923642661126587309787860122048866459759885699506015066753817878743767222010383530343210219491096465079482926013364960609689650473279222563664590898812885716125830066633712454980899258907207040861092958920430841650307643064298437785747966252802249915894591381809535211053227438127280782806022165173624481435015680055678577468935222772784680859847857370377145807044483976321904690546777562562613773197355970595913846344416578785034017675073881422656698941494899027447629053387953055460577378657026084764406975532572594779126290671239832954691331814739108004658817857531312092206342169562565413107962268430806047422076819099662555707981554775797898890336393365954915709022720070280921285108416400270425473632858392416442093435483734354791854528554434327717262183627484092486190256581112991410557625800960083285507816827875397120758345843986747258408960363004690316977266044935355056542223306517216278651828759254602687560106218656503909341062711289167333519904188565576308143030798989822088379627905511037593658956995621076765103155591547995001362254445019073928950032859771939814639592686004533375863434530548648679586481726562778581454700055201863352063295739441309237181538967118125041000212999044386021574871594034496404441782498736316174073926928930294030405661418585403715726046905943909243068503299500823264084524858857816488957745235197222030289430318790600561823764676992950287944426689707040405930294441784404582140848250278649866837296837292510428304085474151197218920438125490646580761816207740967478207151326378704342998340297931768821377952142401995880302557047247036728001847918062774710699379076097740493608610352082819553034796289934427895587902111228042063611323608774826755385777119429501000992290312955837678757139341746064426295805059407549089890438159686160737209976376034141247715572605483893481463447444248524848186764451232821943420689634504565812807032352867997895183382892771818169471425318559975956755743102057867624090548463616691893418495073768417051954657827467510243062162212108575441689323194112268517937919315856182340930741605399931081067363506330187755333638266954491026157132183543501345103877720984730371755780246948431943870100888920647150075827404682986705534419930467945948758129969335804873216973527927580892421728526928572980136660990178980879623202269442611078927270066102462127555322393009260843464859910253023840977212901124314561246456301156709396718013405392589555303206207486661029547610974555292680811400348908710986096508641914382984652423097460661780872688612746327526729618439897067903980095496607089615242170213653374371271379633046214745906450765868544924052374500488443074030938614056434685737739903821277077913609185132124166915557787884935966044670913487066850274709396643586648887182680121523052234487223186370423732925286965442919524723165238941855847722931138942148373128118094477220655631359402538473838319022676452788246521172199841732086926494744164715359400034798278152472439551656999515400993472784830761808266747287398871269645976055157098555737479522314907277104631484452319527069266676981440511105451664748557549957510190505986862409693368903176571752200834401293912254376316497967643697677430119598531948880717451899637046574508893495250504416378717730958614514770643775336516849841454025722787748559786971162303423174979532653702821900810065370478346516492364563556533920966915768001854003969978290818448490154084708149004014938535407342165254467367642524239633442205055290190400554951227681765071809999717531767874163882816999673859954819845337400718285036958055928437843673042867403878107034540694421697053589003255398283910729613141658503087103673762965832995528123011063218174546850534252128629770312851510363054805797720880453582580229569531995952889231604179165757575595847517857092433158836496710007497325401200700167738667169813656379662243528482669841445670365839420352869362593627208455338106938917833675110009058048432431473807930450366452224006529037584228816158356916323633075013282403918045038997099795262048766298911405246805566161148495615270093694616144262927560363412057330626715389442277492186894130814090959770285645665370061281198394371752686728516662585720937028921484657764862374176818573250730928168969353569935491069336017798054771631899355109950440582161556853926413729647370481543385670005845831864234029001757618539872050456202435386408367806031880018998034688598463281506574170383814025655399420005766120721574083602831065915695040240256651657020537107707735247376808085570081448526831104079741541378463219733152355112234927961817201103971148009660459568848539059655367984437421858062202204366347513553442181115324397126330206158190458015718575947140625726234847674327264973411051594111954006794977823049900020108276993662678886932709907222204618472563915158048124228128327652564413532922710142135361509041446816984456294227274075296392261189631026690356854281462640640144771318265841703383643446370096363377411473441662048735874681772045974926873163592298960254869742874438322284848623142566163924334646045755459716422838730940733533838250125461369080086507320071542464178255330760474179939792669571352225429626847062463148412067207842920749139819257502143741057268023619532331488169672305302813754266129004948891500787086491766979595799948530686255715619466601777981776331821135853169894005580406089239768603013645694567745172868840217425019181221660517699152373017304863355090238570912620931548995390339734222355735364727029076429786743852783602351204042957419987844363678624823064257019440687495606511018474924287746193300987620858854145001481338861560970600006326876703286396834475345657190336008457546257825674611783050755544584258702753293918961032412010419886361630484328291743869058662541313455896839086195611627858146596917873309115782530370883016014526403750791950949720347183897563829883834169788534109634223375417259493054693689169438561996299312769397545317676503960091178318428471112975327360907656494026554339180508617382901250263171107641949839820241048452047801358805949979884505275242925718326030940364356501006662053075876258724514101376146615857934555911700160348481116691186188959302701874298399752324261513054052861354659931848903731052863813200800566205561492823700233287000169088624156110791030495706802697472067569879869783245667462988086131606324037923681883612952453900227404244535206455427514677768545632905476324151329021117853731451503902306353775834898013783369028632945138277411186472908995378141107534045460528907281958877881695668284630233738141446950935538318010848780604939041517277269307240417847630820848606014479991014308988145886027760045949098649384329311425123612131252520978382028506494391987506152022221629271277105670200122419117846883803494245119841423926845232993034216991942570091885539781689090499078254377481484048465900337026634296340919079608704643992997679413109663956964463408475842842564186841222085027237241037995424268788566409041733391021849622184412629163841946958544909493859096291554644130336063137130753537176839370504759759658552458622903340413289623402138048193633088844368563410926366042804094234536247679361444325964050334945212405293375780669873229654787780252425507345642380124580933407436889626450371000950805615095127978403763093252144906081103496450896128290145932392959662555375834249555546065842457995369446628933373176107575421242510454160990754908504971277051310855214388717501664330897291433995259060006003123523109542987253136464883870232438673630881801923369059902049427732398974373962050274000729519250867749055443051252178357297757003412752580734682857820464873542838803661317623037768408764432209935489161194806407634062321990536912653051361066842041011866475103251288697858610072743307858078810403975724056304715859139518674968769587545639681799796602292492346494840893061134269709187302943689372145424001579107050545323830754082030740400217002896654492111895315847379022323571849832858627489350922093357405630142195080028536609447988343776980307034395832282110689546866077188005871667402614056746289297360746307264045928156678979480169029354298869781814599333001188809998834766347697174540749535361299583849780484988693843889761430149396587300641987495853094602134900374925141635203679928933487793932055910382953686075693843007188901583216652583425714307191200414680046974931587124903010012558383990792014106326525626372885181803049844010826230822007485165863656745531830848607812495262178584476749180358494138565994551026984401916076624541151765989331722982873779795264808886751739320748027058436225767276030550366194533958317838205188577189612679945839422761628774215371055828062922216290311211097818223508898156874483587113855481967741460844821375086301092798248383485572554074490733137630371406349419494186620766806508228596811665088503395311514015983391402417820566325453517747388033028767839233144179082010915551662819242164156428034867258054057170465378690079254311906858927057253049987740291846182793902289348143494215741598197789217686866742366743817974895920827352446601026352780609908103254045307676001300636711812350450082755696965245690194320456198853308011935575960099775771811974347382662341933330754619383502287661371668848385991711221975403392851031733652024986855509172039893792394336818270960656006079773951587481884800448624844418793926160837534369863545499559725282379922420319681434496272612231748750075460717579315349474626907954616109026073019758329147268113131360140773632046282085407163862693313109037739825196699337376412161932224739878788188290254378196019484197075191696624938802450348906730059703509594765525203156922553142097435996528373881971317179419636000141721990226174550024520649681422135520131782966595879294781690070865474107492291712655636076184678053501095758136761921468096760484203900430739461731577885750662925745920475624564602314199272193066267565147834221110236482375144745216348896462636904340414144933292786256443304611728844883033341455190697142644016189376012544115656726710829732076097575193407469367629891204472381536239906011267578240828823901335413806235615453101823967115055509032399704745347100180884232473615726640198152443386869277309957383023391151487341847217932795649585556149741934925714453692875252162394870855105947085083843755123478606913125641221969861022804480803451582530849468582289515891619515880311633629116353523395561112588000339172950081556197660378256274790817398101716266278898371826644908274778493332181403754481686564688793245819731427022589367382810722819514370897042189129168645372534095314705045551298473749950217814157107674070073470973410335108562808541271021053082627126357886428499794998785142581838970831763153801396382226607537060910691321833575753613336775705011259954731480625879806301831593400903296460237420767720727064096090955006834383004413401158872933322561711888027636447465360601397483305001178869693179636693365749912596149540595898350160302126252006865403158999469546100743573499900365057827080712052315963472313147583669962935840918357096746531378566116799313672165902577500899648509424743976285432677121666000236266299876353041184414318685321951142221683092711677798296932106210381057668891893614302414316327715755046962736562399565907619636934254483641427861405534555969515640008468747852122974261374756209579196440441781248473011286807141244058770654893859432238650181546894653274283072729389667861295762785757318185155557242846461383033691224082516486381968822519694176363734283843001890522894652949204289959187298636712420345189429192465840435695867658644384825927625379115172033978984082408713007605064281805753577224809127174086712611268993418676651328932008887654688682973873755920194968614200714109959572769747884734391143011525321477516971899826865222491095973657380831023685615241579966936608409641733334301457268918864817767099012795196595296941567480254164080750951421453226561105022909661995923736765158638867604396166396932794380560641768056465581637022598411634094713646182405215775127395938563683806518905686784949015624705907479811099256028622173255412590278563516388654890169044018695708880234535532326569242366967082252579918928137387631482514861233021843225450252357241724054924838999860862584794175535123528648482407950775464944919405143107442110136254090792980210696651063694561580124641577863374046472045111910514160790512991120268360102144361388807106078504273832420925762793582771799748643851356676467629953902645598878511334114248247750622096430177006263374149284661542430999347132046997118275326724005443565408756202682791553712171833429244520488379823612978242623281214850488731130413141978035838652131293927675732822069231764003944737262818420273366617647340793840833991893290564603917442094820961477089128282342502941077422425900487952435050690792035514850249583475410846186930314081282663108894206849951408797979470413791422214885659074017694766190370354802158684758303116288809762845475850938392365209664131944611866205128700917663793939675616018961116703917468174475677943569011195413241153998012473788985444022405436522721530304174020597490281275473899633987804028526954532296536383236767007976057223570446633191245541812746002286334827633583407414284539263133698798617084221680632250008877292342256753607954426640346123408829990392163819874719308510205540401104785020835904714423356830571301336753732173421750411334522100975838931156187976388312635664381319240829516592184978518136500434454725322207284689163544847476586093119851581624442718732037898581924323977009694872593882100337733701309280383336231804127816312459979349116533291418800492468093896498636162729918299780182807994751961643869745463855976983518039476350268069125950374844980467888848901554384182395432520506846738679109071745272168584642419634468222350148330148553971802841344296512167125252880010562945423447898735457355209203332200254530847929806668568130840509582677595723376397083192462573014231952729557689317697964192378126704279916903288893122093143124103594215063190532552929014215853520185013371146853162169050921127918849114631009236135205331780971238232603644547611946483994802164703817677382017234032012484026840573606165351498146977077959605068068335901003527002660276803148459324967376012544631181468830228653239314598670341509465484336057205106256476028373323546177580207548427323813949482506267861575877485555751921777255510234535259277241064160993862466687248064100698616596101396744574830596967091988564753231082490677113297075737277453125963997759302649478933360367993349202441520626205450089840601850585720514603911749607891196018346831632253836489155235401577272554755707688292485312221504507403975120201710092366222209740952777872114612991372996317085258744047500111133200223501436784970494121683817515454168465903267924090362268563218584786901706332360039038280977451828975700263270257059148158889851124608392321119890462650075503896957488028041210575766345396879578022520555355004186549147536574000205459638840546685835776209578402062827873746220769544609872685196515916238817706863005283084383038331476612887204145244445953372309773269957262172932606825424071962316307773541382677918633618707444966300275448190062750438677227973946677542734961482371749619403951057706478607975318974358533546716025360808095199405835535118009057691504385010904902118411854483473476601473948922941419906299099227030043397089680942330466755099277236599299268989412428760034700823166375551017180756208633655152887315001267453077267181029930320829851802337668022661100632842217231593231290891976860324177716212425182186503509683513233236274800119856307217111004712284007362652484213295052937859654079332207822060253101889567180049640819479573745357975109935103655483964755630742541628571841511315569108514072321754653656410274438147570640996188275816713361115342695202442691330116128874577313906021506376081159317840606900519917816736130232333484625091835795502942500639733732736213904209211643352629368078746990138179420374266630759215536763411487087997154933065834953258927718055600440887523053228436938815409031705218159104885345049992964016367092125949147257262086289253358470485718382529686985750317946236996908534524405019443683781065887081326243364326340640254712618053180053368688963162272158929472059183185592220788920202051258951845348402598645599176373496627165033104926976822827772514568446404019789472569808436590252657407426364447994754807138265749701183895023235796429080980421525527723288845241894705370491907674974427400138864186760736137639411215359754817644277974153401747743293315177183423579229079211627232326242639294125601033221494469614044403772737627984003583790734220191882383046972451847755879446274220427081075395784485076254166108537843087242041593985449862744035738794128619521591375254710725773539568114230337621337610490164978031943963508292320420377409435120764092898959062848220005793435477872668069574579438307390764267573211038352208079686403517391989126512405801143658973653342434362988638534655404070423371991962785837966980115458754851642908547889376080977591532018070613901620482872629586888258828600793721468794341588866158005585947104196374945116242475165561063493703027219251094185605535240501173685842716781241027787581929873875317522278655538252164740717177698987549133231888871338749975735955156653609205834220868138475616595830595506080772328682034601242470012875072605648874298419383157843273331944032262744995372238549080093035727957730257433095203490780372628911024068370740378640811862004549139020831624122226174947310543575127934124979243036868272320181112280627263695606755347074913317097736857924941355234270348748775671464155381414002713143028356765431886664094485411089487186479889569765045025410463175847746731804535824318514263114918586458556150119301028417592760152572411174140037679640463823506800795441080284698924432063951050388927203249449472916189338239236767109237176453452465514619913231047157455451950996201683847572743325818131490673851476298256988037007155797291019253767728379397485178228091565370328430691213740651938468254411160953384052504178000094106809666725048446055344888727857272290954889704243400359628436973995903041928664329357115867867185749189629701395488933670094954498081508536384612476993849113088708828428038898239812636688718030871943526945456362003490160405481251884397310680713728722189202763971494423669230224059097690694615428173575587543286914176298148246799278987375674737483086653894780502839373484634886694633324886416483100218917243288490266605812514256429669479587015812562953299609240826223854918428788962668158207034473227775112689227263066883828604199539401074130944353215474020172919975209755034098991030998499660153913299957691901988033669813529608029803868024218835726382801741973134279652591594006605698934872728205081860229028331031378582535263486282523951122137623328280816150169530623941818983893215531629041790997137052063441704456435463422613740428979004429826162570548823740739438503593816364594303867795203981457546462466107919339991419726780840157789735448614967836008741285479667220094387160041261569752985825988529075974904948505999285476925226039851806451561686326422145539358854669300997758209318228848447063832895698209341770788120198990442572587049395217533182455569658770461368287676838400751316035673572100423459918868851689943877724979059967102072962140642080535687825271418220831592646061876198157519112910363145921363675427941798342807291985611910162789979515057612637899615164906298367822164608328760779698584028377726023867144091668053436296742085040654957344785807703735852085344319894430524349213373437778370365311346575072948152608277647614166449014261047282685050063947934506578305742695218493020650023772912322427341325136056068803059191531571021389726681208846924512830776744524649375426047212798255153589542352523728125098085409122457301268996009818052350490529924432456266921458066819860606596268810435734145928652422888175552417451295704356406157899879614106716139258480442227438906847553071979478665984295349625317304221483027219526284021712423276371709505848101306645930289760976363893128251819762366363333515975524606233932389329222037165207241279802814102909311204515144318418591231673059116771114290763564729397801574253095911292542810647455014555819783337861893187370433157047504310966001517196159960742054941858935093752081935593306162707701387986700959063594158401104607894992679419072011829707540421210714696458252226274033033997483344135967036074212062789984752372839503369370006928749855310443620676907375757314761749981956001130426978629624687356710307596015851901711517262779859534018479923739667489750631462000129710994976521832057294709126331684137261680340228379636307824036956410735123168337124767952334465122737001957342498410442512029817615660777024945197976641481073884358742959042032859142530773334381005992105073865715349339484824270293616931723035891106679997895784475809852361552428404278264098726217105226657026176333876016942497232002716710975387939541905457479047378421943369724874022442694848578631226493325955953950047657508624249611609819427400664571279073152622846647407896494580426787967701109065815046970576919642154446310181788438022902210041916449859330932162969102000976984487583743606158966027934210897717994519578576547444889726720031720388572235088412106508052877647388700887866639565377042110138564561043605503869977007872713018088179071254874714586201001347910859429081504516329080291672797753143783759216056223537578835430621605792306656890733108940624169867113034916721333461477571561612845359247278570311167358613668078587537973466802294169550354260895287760052781214081648855899135665594878733070660231177315295820424098431022446777002517521216390304955275458294720278534413960505245473057729581684422741933104720377346143179295617876262444584613804137909297839910775853258722474446182955116911776532418197206267042343135334663680104597667310031594131388619929531831510313134248132003747418007081671648208134966207589418184395974313403263290278165113308071095275786101931517582366258168033678616425241021215419034303301014884871161603719262280359055361755773328732404463348017125692573022727436137733119687673386493411158937656914173731174978279148286253096093932595077410855337948787564730756193097616637045788581727657743547295894172602195267315217221960736387924687009394977334269284058492125730139851868967180121621716729122102430018709587375536176130956191089532143801770033762985842925629177622488083281512804081623225717093101630372892865377054569874408567222344588532168739160733721526497004612180098313368567224031548650486686729703623378147339302807181606661475614322501555745014304026634120799012338340338559719164325012641653777907197308705270846541064675331277627329017487856026552326528440633132390987884407251207163717337537158628124354083509565392793037156976868448140806183059278939781095714171500502780078796789734953336988760140758653559725317682397988050725012401184162903347812752143941746434206657023441221253834593952545498373582964407195882398126874576051060559411554610479425671880533869357555648487408563698470306536807195489937995486644632959057793846524096433516852098323594848376961296926859262382282812217077959008243147523375836496320212918505938206194850148131386272003751686979774438550520055824290422414419719877979223049931962318259793215716457477790340546600119267667529100552480151116167403443421768156752499625582085675343660213149318702797022063729586232684498690927442774737424436400426135461699464817743088494525554472286809796884127270462005691422867831229040322017829286974743397927419852774740883178549986374355770338631776861146567156269081140703457125508392502601988187720193658624487550364821561862754382431070472377224370196646085229748402540885238784292700860382890389928312362963417154152816441622964910167837325946378024183148878670125649614506446945691491465066806451515156112476771541508719842281763508737074997716998170397439841687735169412147206548361615361759479121991133585654332289346749938991546297639376910135199490599522697075925212608274119211260927696513699979636139200831466170003004664586177570533811369411098056611301875811441062787308134888044412565077190204838101864439923286241805293103675932025532066868578636122694505170783444986133171453036612431690860486189578238508871043755941495901718831487656820422051837782794565189862079193633018209093066309102187772506327715185515502997422315645411639181192879658944157662790354538000602730404811043417915114314311845280985713321078280155750134236683098922269356655379050426670300255918016518930951225378308303081503289547676400813185027599561309197982826776972915111815682368797862707299697873830775000048254614036045379544602900549153727931464224819314154808298990135303938307503035576885952743968273477665307148259540690525715771257016765825003964603516679192868093966985254262127692483472709493072016202077570016165946543976795204986670394991289670364625981319149380700440760344748701087294460256768124578388779531679994891584114732460068501951049923571046778260718306200976056899808077390524514141647571105670933950617412773728927191279580827641544435397296891854620616705239645886653930586568120409821189835535093279478715263752163270584305099856814567948683776099726320166033016701059381805725730746555107284006208884329676734571082453532037814153883069967965803935990016364134374225170929448772681905711520754965379864334777841961778504840924493428771358322060803251236963084601082550698187998402948837687333276668210069181025198387718922864171532300116286725676612899845314268034836268190775920189179268086471958193025671016678062419867805831572315686601678423579470407736155943268211046454477336027853880029736947793564910643466483173364363426341908222546369207253613459998700009908455390919914744526333097709863468580404679765483817844663325419148540723311130342876386857311228298286672872675788819917343539062791172407674319895320051335329963958684156193857529863312218333619858680465765651248487566178586108238449391952786116313279897175652092731758042735641140262373987083385375446636846941241390163061827957514786890048523374586068761880672386616606920224339537646137002695820251373975699620754487199806703485954200539170243963810534252343571681741156927896235945680804866503123029705333699690556051723263108393936719144825579155290422856545665213255991190356702154695326716844696469833272830110265018664922220750808508963059747704259609686496522187414918195138330554521471792813567784204140731670341049027985446586631652837100226708313139771587917510064958636192463123694130179775393484140559975860861884661001217038088783782269552913451932198357354169310853557529822642256036228655344564160280881329225641124640501782480603102752517267836366783614500741096166559663066357788891231401404614288168595883784126400539053981525661911173419165415924174310204682018707556313094782960104379028026679387590426063701294220257049798863703905596958155947770823809465384757929922089849867055483079213194746518190431377402555188671788111824905519336406210834231794203457346372903277904085675724759193056315311768469264117037589820887638430832706270600258266856302685965397893412084476689889188104204614786267441827546132519816137829992535411491718547956472194463303575109013367853417939822794803448813296853142070405537457763982797736318475720705881808423385734472127494666517206482063845118849981144196587661662913139842618202462247568503741221718727025542370665768763703668458921350426946846740641380142153686965981049550886174268269278592899082561382432666771912690101174630806637560904799479837097380172910967263533719247278306938809025467372185298487296747711983218000178638322347577136743950329285375692297275419060575110542493245702516250117784892193909395192099706063623371599950893873578841965300224397558343602928001052384723092694662681460514298903618758118657085447301475433639821695828393088086361824742784344920206522665808192760273364781404846708373531945943091072892492358041135388617193266914775660120990117174971627273608496066502216811572045959713526534316384453922122488908735897234478169253190627680962711021938964409593162211331826065663293132214414496129649303109888195014918509018482543035835704061959637015157903922902734380119052984931613029747336486659268886067926367164775053410524289693036433019943628035539169410534851791434423270704403217145046186508260698706058570268023863055699939645608728749274472227243648992003062033345138822370189901262097637342194080506119833743127715487275364233947744009149560271290751050728625001942779735576921690529285650415788616113942690452825237242484613222485600973398418634588420662260321954636464337463704001518292903647281392995593669639315629909845440886681357352845153297280561142693749967696468381951410270165810057697792442483334918964318246210310646933866727123269390318137566542105698641332342751633212154591614078520922160365878101699854974681238057292650572728286964802590649223669825227281519462822299101208152122213455422159773052503643938350513484974967966807541188283512756790318314790899034597592785065975274580822698282808489624961272413296779622411819848741746473118513137586123215299065074039430105373015276705069981167994687629015050721585542302725687140515234110161350390473036238490178567695461375663481558911318884537086401184781674615558780230560727118236076293726624672652375296718447413057784578602204183398329541096843382363234170365029612052645920969671443536590830750456452520941088660536232798274361454127575686590702868563860269672899085728036575296075057625218401165778957523428964701459015946997980676572488753264761277103074811426203061336518144355285479516155660373824617303831709006060009304434290174891450404577170543119859925193125367860162264651366542019272135525081210815719664255632847826912386494479199261150612955133283865432649576607453411955605461784011046938969291002893616883010437015451196762072228393087206746017343316639358794864284748654457528125717294433732301888560932565425295570966834992947657152840730912954603418890431969712305429978674221565720443043183836766002294565036681435647426159437524111828532252645140829204853076220476578973483020984603853648510953467594398770656693614374606961234275908325264346449352753647286667935779693130739433548158931126212453659756473247675537967147639376963417665510342022388377368406057238531359392739283850287391242812704214629103028383546921610131891628259895155357229949770259773945119528740665504836980772743152163911421397231101276833646606213720489589808172638500110172462667131226813075483183112096209831388656693862786094027944210715710733527795498122706015573545797330241684084731138798505751052847316674164809982159695667525450425200457882712748733016340815163907499504047023922876955540290585432577553624804660375473269581995290661983406278593965601941852241382341808962649032503529472439486433165725981005551409167536337169080094302399741574763860440998530700254253995254705238124233421863713652677332131991470107039874634516223883062507689569342698227638950473043044729001899474752989345785782749128337027216888379255732622099411433886322487304961605233328439481474287548214031820662203445800122891536122288294562119701438418131689030216959583269784127868848932197169454880289962504705846362122579984741234422079023950938461861121214423862913568614480869921776336886039170600041696017304666639626250024044861669495318945022417805811531941272605192576058542397120603512980415369604405240859280885030467920605984381100516101427803349499119004669041698527007620864276409912499006427672159117965161518990265788976425311179572467389615908418580109158008054407283712944093870973971818805170862704530393836947684831603894063781396864082486172034744961670232664532741660264579429671828193209307607050589126409809841820722845546648138744767938107813703637988138690886916176158564801100734340511110938862351487490725868098594858112568782973526180343679567211962291882892123134366755814952938812931069866450905788156792243723923746930018832922790165075685888679378783572647095426075382836673136486350261654182188120602429045766852644110494887156899034317680361730742745660221111420348212165085308721079550978398255581965003735642628152022132829282538943603961205991287499396671277600040302662067830334084478161082692692985953138772500751711368656635409435218026001260544743242467864363071117707264106981794260365807238890847024425976025701572566792867338894009393089530093647420072690843418061845255259432270586538555935586206397193598758904578850347877912057619816758684633657765084391410990764686928640964647576421129736313654537096095889739693666646707916349501545741516603707310526968580253173533227834614703220787367110935290605008386064342612063929819309031413213990282783947285073188532299102007051339606467656922609716858341407026205863514995881622464123142818131865964327076598812688002346087812894717531563624698831279883102792828964621010524185416119994245767350408267515045430986264867177424911570511372227839699960680963867151634548025860833420327697319682884263861328964002547878666235753534825834151887706252235405084046324718131582715069061965627513552995945893818805970434345022263885198691274567338765308232540555353422141119227138035791534190688902084143135707844809977525415952598254778984088519054882311846149831634967530922269258203593887337268026051051014658798560256929525117843464097831966985027716053052056008896881701510704816855319748684759185625816049714355499865443463024294009690822805152349022276595231323472921610723985057476513580325296795741444976449705497352365938191250729010452040217124255885461788473778842191341952909572481136303364772729184570756175727897485856566329658941432161583145276095004464789043484381709953052335221245706423808370433565094676854105065695670023653148608620861859846496270302514099925559054644202316437023489537537783643108650726031632938857482146981774641997647356682781827936542281552233498304073993809083481355935465452018557013530723340469911594670017690685504613467035538428712633114872522074436898929499783889666753355957678665072693887911025791216132446966513490417746748283578307348343639922096254877221910752627327811910692056071900735166043543692028857650382912239755881087797502594319794972320256422867482728773900351986930908187209994002683492633225480915134412799005873572419021660565943161454810148209229490535992805724380686386340495450553311445479267602988136190340018764878796577620731509088748517511002381687130192903520695730908486708364280652292073675191444973619866828042651682280442261724520641293427830469541995757142962520270812750479726952763125366231642985709702368713250100771991972214410951943474889641376162208354070197583434768933481754422768761492550256202711573838444035580590908755239908658093717465038402968603876049292715214192885123456579411159783405319093956708445191882808188605281308160150466745939002711655083412279372945374352484743014316617803180232509512511367493845341465943481157399272197776631725611575130516704036832800518071291805077670117287838992158966906635766642549905727296255506441532555281957406098973963658008544275703876060838189419496817944792352706337866955930124949845918156267292896308937622442222248182947103167485211780371183726988236956852630581980229795652161334887619506421279651353295360703656255247868907967846487270675102114695631472262341231794274389322753864197343820656661891671882827741968164092040899736103946995459614305686685545944998184395634576298134637952024699954203534980041551694399509687950815909345509384289157726828588728643624618028601844682539505075102492386674482300412988398769695262396711267282298486012319334419501826031123929415702248719471351332145115710307148196943678654027927189225021117213690703035513609624931023019369759260671217578095807457315652749739187990379435417594447867997231599262868956789481420501142325814552031417442183661504372873559552599726891362742708690825040613603317521933267263906492653331024827578565614929497694835721890708589990704033332695278264028495575592411564058487014928424059016009266683526954246060583597779296245002373535649398638625675658581765289546513353387028991177506696755893059895545336706630069733508414363817107626389535458984020512060280987320641353228613578467975573442805468918547493597199084634925213543039411017486926105682370100486627211861373217210503050883823701603933341460371304521201752774109754746849376264242677262272268302584270407287181143933223108565389669057430367093615148439010161413219012622754830340193536891250465650543482341750659236689122800317683043217243217492652828094356304857670560595737089958049262253180944836274748613746232971206758666228076598255798212447716948467388177100655819019018361599590305424513808847809748108433359503369113079396991411084224223251344258254855350317301015174687235330251199410723695229444325465041775732559594562155773148459774950584019903797648838061999095026236684935121047498643766877812968052653686274048763173271993346940726960293213957900433288107817992088051976686971476424568394719045614173388821969666694306480214530463334996333613027146267747926401256021330969946862289575923423044098413028661698235772673092480469358436851419361665273961874327898962603093636875708489319338832280909532611700210285125104743502884176114078206032642166737823579657751099789256603299287778336344504823991565426534115237256435857143174884695491103269277620437747069608050617465268313904218351407380414259986403172911489200522385156262964048704929293029977076017412815808070392252616661601327178828337034731877261779375707515558426922049503425156009008620762608024789141876490694446088971643279900550535598155489349349984761895373348303350440727124389833661014386082789434548654912020717978653029511367883381252519843771156903415127961521286809594657985878266498155565863904679280662365703444520061539768728723858697806518838964784344341841430613671957343588868159146656845982920345571958311821045050684543919184862521073342001773846290200989778115591194096749865018256156071737388667157904495381706070452015705883270222520017027964087733428309272834251514019117673872678933274410877054398516769986743559285895349270763969106227982585647845643089493592230849155927548880595337234986650853371651403319543092755989731165428984201966318631615059639732361175580297757207548843143276454333663511106965579748509904212628632034797126372487438761686392438337272655679192454577078048240250386703870633329512409233351207179232121208044012251258925635877731607598343428942006173181523976755496345834198713265892322659988421621948952344628264055594160083649467078113906543163642661547044567537689629968198896478141488975116568658659946322008660322422614710352725004110461428542674863535521169105508880679200508456428598417090835039374708273679809018364353787946909800284800482854413409015623770514313948572830834510210041790126328968730909491537375994090141179983402868112269496896235526676666867203567151744143635613739997927003622686694347775923206895041520078327923611899829732594752344782075473985006912944002031966398032973447241067658827212802521655522017263212932142913914323998582363184910125758370389430199152073215757180449494753936382353149505835807814629760772497749688141444352509880312956810257978131986235078625935695901990891243853900395102127328508479345818130165755262464339890796469755398248777574186955046870692150009873358466495696698448840127987204027671469994754516033846221779366094125562317787956287090613178200724346645612235318175282526999750721879932190788742227910428777682965603005244950049747374642503006670433046571258788237914146597805074002082274820507027877466906055656784024422102354814062676518505186993401347124891171651740297104570860659508913709612873458328976825008937735903109576765352578565105918303619186096561511322942778185987891999240659625581030010282220118821495916726326035269938213559074340301333117066183839700752161403248090025060296346531138914367560924199413196420633428526904202066949884560395490140982811260133061892432896411016173306838801933213759923740401017375113198204277544096598567719596208265879870581112151973283082421813401372173592953488074860614971742113392069777906010566658509225173892127339167047145976794926292149039857783840036887849420169151695006307164406154756825273586787623984349188061757656487701617340175830952733852176368602664765045000173198317087402412879499652451978700586098998366489218346886055516819103758546296214421502973755564994905832601790344027920262660899048610876312731313325915821397512029579696619387354803759896102631906917942064324991381125127973275299479877523115528425884660082857629554498299242717231643179094242699772996868319928884594070961569639841736123837328594262929048123744478214230545470003655864767748533297320735844182956568723769660587429462653281335594146867508296540002855911623658472419401011563819220500798092400488961437625792439586231721497800164051565899957851232281962683397031983110609557266216682873957827995516553850587815288816392526271309602726615960637618139172185497630486979368773978049601125926805323668507268417243273492808899871049460738734022046452998209137641566804540601529540267371275012577865441618456229039914859153287284912803398969660047126021391415914228557438109987909207048142215007496950001816746221594009790964083322552849400367297957579378792094441433653215176247428805460450550173789252117437816769611783426667073596184808348647219005754594219138629130844645767465539525803369224032220668744517899636797732155472974856556906758451999479490363823899603395672838560545575402030027722455449242708239368677392570234510550277275222681996664426793515669164077284931029365131773700782940648100576897583407421585824288310546333592108189945099749247834873302917771549691836342846363584830735004803756750951481401973769491052154829705067561441880168048520413348203694876221673671106150596576228407027979572117478952636180876783552028916460456785775424097549320002431657392362896054239655203035632707661472675707529047973678050894055194631158338535515710936298846926533279673954832822545174883633060287343074172319488174593363608780813651780778820112544506133143006763565411882201675965510628685360285853586347216269965328963333720913994440178861223177884678235959679734854434921591392692009780792952302828929076326774473039471207014182744104949486403552509846434727002994619149489974945563517294811732705547293581314686573152627282250827661308749206892864715093761436338549920048450799336215710381147983609228605359242635710745351479994258143740507102819860591471839857415505111860544342123448709151897298204198849965940645504620923202503567892291308378635155904666710828950291796502275870710140988271420985520832011251803149412647261380217448344233513529818727752966958662866801265194812450477252208369145178241075474635003711008005755598339392316133119325713615081504862219240043179537373457724362715132885891703732968899026619210663490798537247212538402982189287256491967129758523134485165843950952435586074890483531628892732780402891547744910925436633386306406081211784307695660628364488323823444034374530815497434209216793860578562316141952837204062017861400990427116378416003215545081028837317727023482658846134692227833485949963701232472223232199593749839760468422078366161681770304907237798557729953428201563822499487079009248532320939025882159360760448895205884477981216650895168972174136390653308169382642153556908767989203137539649098177981169456852491888045247758417601808423435072047201925476521944882206695123150958889373330350279077460929823092940167705661838180534865310917664872273961971808034100955060686183643144916926920404784293200011564438321712553783921927630341492178963378761264077558016660399556399386314871299698493004289261639340981517421951282416415007005982630972969848486126710575265799775498716424918867688175865735906357901504268641278159639453735836795425812792677826464771487291665358741004015333835863844247722653594055392049667502666025318456356983692118045917975913376726352238359982724157254643778181756658250259670558850852532351375788265235803498338150324553312558481733477294633699425480594392139814006157794462482747045715791831346776980326052053302044377127940068902193733327132200115105161738911735384692346008551173914399078822391622038396479105028775187084712781461981863548915568285984009714955317842179766456530360142263720204667109923950099056584922579205082379708530276603753123157050045026722317866472924249977659692961238211505428380735539361948421622488755547178582362466009878471981364404333720284862228199559080934161320144269294488565395839967585214894753327859323135542182754345913996950737755523153006077850337939233554592437471563496624308665594102951235654461339626079074485463026780870988561533581678946217221134214812262437520232040755976683654819325765913540043460379615938271986144589370521701619327705070089510266114263472713188387881753188527263006063415742257434477053850953292754231214895995508322178141142360403529527209735175941039399391186800331242647434394681230954095225747915056518596924967557690946495148148121747505797654109307087128692898665161420711017021394405141068475739115542526983753659224009445842401306340409177178449914028398173225564108551835936663873263580799146667049285972593254632959883265552142354577631193018457915053054124636669151239478118552756855162437197983348773403630821542448814070584976773658014194262765892837282270804208033124846064098583171727790440201255378751276354809521066898358795835063231862809431982338638319171684518100201551368118071168314605271990387432524105057203103189507338859366794090510507234697197274949656052378760462558750067044114630958487574431292549634934902258850547496385910455534304636167803703778884965623443914695230196763085633758006023826667634640843747704156306901924188915939530167505565638633143817598487731270164069672074095496629594089029584422486734754696747563865980223439114122982723007738051979721764576548571952270474039188085178515647755990605105117997060110114565313074156637139527662701919108261763952119837234735932928158498230920553289502827789034126594563688680308331182327289298314347856447199472091963002757674905957540415938961099630437544541876297793361230046798070914192129205731638532184969687229839806481314728293686478143482451103815522040670216973975621298358276857248997238692293174268455474919702523647927384941704804101626360264084912279961956651582047964688528766924615485619695114496370319347839826759720556264971615321251560583593038466553681091229032826292490044436415223754156534077390997943832363139794368389108456023598545924487048769412451365699522272538209270096161334090175405233929378240905871924297965254254069975568327125871326819938122160451016216274885530678768897561617099902633222899501074075341065576925021669610085495060456098934981283282612645327401804558623240394557636600251104380638111321899690351794834047446358013346176836995844693449814270379864396074635807947125419186360116409769149056456324569930571975464524247318867037600766280663013149961171365453836162754191619762556187412051325916890421347103069356962376453749156744134787926655695266924222121457973305068649726590584348063520494034270851686722568824715435153439035372171872562612198406441500137436002523259047075440537603692177630991624544047272695806021019927884833016816201508051217205844398915584747991738118901766142831812127246555345138768215865534031970237748368723652550173680681814270768099108934672761982036508424137236450026913852166056327125171690856817389351498850527400173535475234531596628075606960570577012311449661796331521859076789595517270457417263684704552991930014514543138230406150555237290454110260778184240010862943856350589118945086843030654965827476505730668634617556748952911009728821400609182486068100217077268160414715457199501896485510908857362447910446647536815387592373769891829026921932144330941374406359008235394243644094483856023486403730601196680072933201702364403304999602410038911325634602489769491215655703074566912089186531666275979972942477330067940345656577486720315749245506118839537571662705595492120878801170215026883935710502020524362415566723744170601891111236044002613926654900375339232243866662867104624798940180284806440685820313121459164872320823267037703919818363892584793592197979274509169184582148000954012232730592419002648338754545403268229726583596878779271194053291194806093923710937363899172121200036337618698836402999650138442512983645022479108858574216696789970396690603528577254583926293601652016358527037031044084147571491126036379782327155646614476536036310289690799087251670841081503924264926480850248655748380608687058177848845328968431011820512307621528657458368958460205064004741512316934111380147491472415129786752967031335069798762431892119716461513808157089497369256789664851571367108599674406808942421281548815598364810529760858024745274256523722543995020757993297427658168330387220059772236576922339152540693575491981268344179654276402098929317410246125054879973586034299144117002188214509112006277389174895982915100883550370269467049774426266074797805293983567263005216599055806233344276768380355490061819855504552722933285991411264760640127234034162807643415337809607055832194178113436287944506753995332338983258552712910555487632320299707984832953047308312450104157598707947748791095875725879784738490936490957250363091532330467031698679501358383072148783483930010056786166719078238245000487928298229563180363890610224940721287088577990810072075550673819186433887175487851446827747661218526392665047781651722741115118606092069185209671867910769662657549100760874635515265237361331411748418927185614675492908360315607742740199081435354306681395409673094990398556550461579348175690264459339000121803305078444084372058098737709480913718262706169304731389631125111145616111893608465773339538845106049120950093218905708710021663655957902436605273965378862517996472073640554177365692740875674583065520459126737795433555816235573547895814327262532404635746442266535063682164251095815848457868308437938644784109781722125447865764960320787469903706491794869970066158502024590416939240426593113633708538012488505741698258101415404028154317244360013314372895642725352947330401550463962946002746451106762040968348454064806144220353981324533790744536703524699747612005240342993409536871258929017749765095479609372972712487982264049209939135884554182699041374017903404670647599322711105609101587230849063476459493967569659814738204473736813496520197206624438488857622011846337684433475235904872022734173845097495676379290933473174659534446130266812922820176289436958637580452055038661540469406939871142978585754125670840090088241685184516840864193716843290796302590477397877767539083521662587543956862198787588313435409807507404078674844087051106135327488222351709134543870371290545863086889179738429845468781838880736955207684531701180066223451958468329638723623319338139491089324558125273273491158998212441202848939962704722308643620649989646930300991645754897397450443866965120952653214313931622271266562419074578651858867027721876002527773456215004879544320156797150174747779341211500736139134745003264300272625219712754633526456016450869000969629189028245741112504910963076122763312574806289208911467799208674784344170308055506961951568905273072453068830950017858828666162948615051438953895382493300171676187246930832703201263046552825687104313566037451399086710516317394969247814480517990990423147998596272999533336579590722649445790914385809338616722685702525149950463330650401721744598865828168454008690414122757992165199301753380859757188725412526851514731483812219451519537514986250438016334201824095227657854356625806852174834504433878299021140678344639759142856160258190708248651784889979699018518365193621414122338617801139042496367631060025302237510294639487621954578935050124199815027120402385347172411089218860038503511836895855856310122716990173766143817059773063210324687860965190442340691394747218472378035412949342050441981596992785043169260909946867229519785049225884115087119948654540243986242517503605187819766852406891718343639389703961760253496070417911701791995822450279969245131242723234119568992093975691282996340270268501551128311658776158027599808612605297916239652543694466060986501611745339809007330046914605583913660965693254914872182444453895907213429237034142943017546645992266964273371221706485511929808754060673150101274965621184485103146073276144310770159327731095713929065073948355056926016933940717983596675292067396153273368140868163995033505734852965786929898920789135034344657873909739550163953597982116013282393448367688473051494033834868279273277911121810508465765693790871675730160491099317603676021504503260508381517705620729390770282842591667028585563217929695172760120671993598057628436925636207147734368520331662568842665395522747861266649746779454216880827520946821324740850159339877482481306223103054854653190705288326824074164250546477670535008112293878258891612978183210206518030652859646039171112989014927019143770349176924213502047033618499708933841454336133586619181224721630485790106815252707977104675292747432418125131382578286932384977751045666853540459780743197868290015343286518996968809862060419125041046674783592695947383749537638442758704693727707947521226196948957330497336644231080953868711950003998007672328831054998280023875226504098914786885633093363473533508377956931150600405388672170218470125967527929913764195171718271390439506812177823618024042290754663951935377798079942665511075046123166214956924071394135136609914114609092287737446491179565871117363936346805352607057446993542199168850215784251725226414570682910919344843710181837114792603453059786592570865875180832521374979721855694743370224657942703997351573484757380153487756302656741187526359064030771579902604242251329114728263661040484209434512893736791000572209127812989539847148426285358728736041794423933384614058112431058199437863471168232945513442792103445107231721883041196689768842873445709696241685883870459679010916094347334355094691984697509445241439619333853350875369998128556323666231352844257591511793145749275373567957242715516603986341052418409385361855865747847382583363792962509749009911478152900193228289338962331850800798533683462974811604378499301128411531323190336867880261508737672552352235223340485660762741789514946909480232501891831240409291405836609541602763926606353708546944581507962700152089098413842879518361047091188465896200484950765373233832688472067009327047273208812478258399277230424958022598739748064339607061326761066002717820218419187830913334002802591386525622156210694327443094787250288234720008975224800508250467801575072614171872527257776266596304147968686119900420293786419505292487880277709296027598900183802699429698500680872543130475685524796178488218179542665707451572544091038814303231498543291219462262787586434480249631192959805928412364661004505185453530198352737360658124683135466312308576715162604603576352070502292862869691367038296600810651711963983061227189750251972618252909064717418457194897472272328754160961927837817757489950057823420390593387099550155219137409366612295296430442302558362772298150772932567842440298100408655697429048783286435830737392101227517883243817238041595620199919414172304372463765350982888675587212239380642702198617320160525586403485913621545954579770819896842805397661348632477603862529906476374021231601268726992500055918255532731232953428657922161662048827851626831158480773705567134359734639978855435065247958110917794539063501934238132394185531732568388461104837274811347419957024636507007491150783500737707369375566235077558853218087787796407840254420364795194127653016555118671268631525540705880049937127508511476566682429662785937865400318354761228290179604883305072690748780202256874192126421412100802126071851677365798157793284204504519629628945333254690041512485185074472465473404358666526820770763297116175628555876430462833757184947511424567846671400305118879042666129074230038664882274024847072620939121603071733060009087584031878371625660129763517441342555669146520167226134071959504844111947870227259943268622610125125317822029073177583994183216128366462678829743934590427830856807922423920928670072086224316125229849256871239660891954101135701600542174707738571050040894246750128239956813983857731779632767968261893106024084879375339321027903254599559454645738607733012420863111555479724461792500693229132825054094440617375971658020435353462651331884101180844518818483167124836795683676809132377562139062561130972259163855376959260778559811677226936540121755907374219072658829840351667335934363494021696599200521402185847084892293337282897753671360640956695253643327448051676093749157991217577575052964049237334622282520873651224683762420159668290305205880890200085640700540066761825783800484695152019871839397129817092716751543800695466876688539067249874289519774168441399014411353075787033136164898984899859531698142271168952786823075828095471198009706241712086746937351004381901959608410177423014238753020398628930495187242031495487952600805517982705706602307100940952897532859897008167138362863587900434572982194115909429270982642714778121891011634264299224763323172771979508113917804286570433022014276991417082085908626720781429182240508279281061223245788179205841319839540591332925915163545850687832137849246573657369402344222784228010557098374016954854016085712472611744455055138301169940464942641616376977749619288140709712442571908626806080497319167298833965008016514992697688271904550333496740387681972198731153395878417564047905916470490729152452758974162077749651813296136055663790224318866958193808398198646042932034411322213099549765172809713673050338021909031422067005332314337590196730938910611455081089888527495368768931723970539823467130207083771583719180516630030782810200628699215882593885565686757626554661664923782024656838348698110219540175227403477372437736494316328241421293683321915364419068127539714045805137743288154186865423111164475538450873034495271892613213659848621943621790160010874830378671764976763381408091113781566674341388841778865914179036484303310378789414990281515687865273263801410465772793898037120568994553603640264245673996629701517293088584142899019961925295879097362008554269684181659220504680841705026854211468326752267110660522237979910039011871439604432093709081721103885109793926731546781530851026600195335277456932334458493569108614414452816706146354487258797552815820809226343557194118602447909679235562688321047360361553093209695864539850138327748403258993066482394009149324249604854128136588783888372891119644942680978923426200223491773087179104904642433917742639311949243384574683167977617692437535523684608092549812770611938367495941169781855095459782842704417578426866074774150939413211505575565058891316023895356356090810563167686240338047058836901161304405532020625427314584777976808484000826146302566801116764983065845109996174861662152295589170323382739257977327682415151067781320546546822036863153639073023014837760573578540237404642478692706463125764846236770567269136718640324730434564751942150091700667622380797986021375467697802804637852171028739082018771623680907160653145135710925980370053114447383097218980837675843978530166112309870073785001051388509927022269485051838728867651820408485248777962677925403257402025672318378877419782390845537956049703476451270224199903734974700906142522053496830840397399422789496132582460035759151170095142458979136491009660609058834191683963566757620750843595037971183196371205030493330822656948430347530001381109824380325656977372818553403221566708295823758602169435088016853291000692600865213854632639023427757913702268516078543708985717421807192150662983924481515428281824045182155806479105971027829135882556933490191020909011841179538146447237339893069684324079169519928871587076844357067383420148657374037416855497716576061756239938781240888338284638107614799999202336027344161358980210356345514744251639132527765346497680996182542381281894449203554192838096789313499382095412429491387273526868480878405688766775226470699305739330065803888030388044110470476718295869875702664607625973412007548680752350357676805143640784191427625843591982023560837483876477561673734652721374865053497142832960860249976846412331360606211167891827324983008888833229488648741397989811218968532591182719556709493648412900964665890576081247144287105951571170572283523889861918878664381113624644783707475591991108725323860210572137758448358931965924691910912335815202765491738996600435325990905353376482858486183827095510637076604818749736589882068887175496313385229722279378382827905975539644674031775971068677042652462045554836417844526024819780502146569230374717006367343749739512618606917950013613618480934662260780789524025241326152818653651029692077993288878273360345176422759189202163435561365290033465936672834716304358092423472220182368561261685927572369215882469048416522786434012123298898337092819526168823286928481460349629822755221146400595536105985206025358880694654661851441184944362923577347364101525524624720379770485545392769285089138060255435005943805275185934181981508997104413864588183416843820989148166477187554011614060665910703634954115468530680139846956584336396819972003559842309369440359329186533697412255744871009471128813051800846366901078249003423419566382666308998928998968288362914361705206440228343316859502814930087656695323472281847746319999995646123046137642635617264368900734178052027366519745226980830712034020226659824135412811469983991612187263103762343431407689956572921197524625087825951905505507195329798235257678687921605895511606074316303721512407398625538894092217709627101460689245979892611233845386240132550911636013287989392600725181181976300550491982091325703242658123128321589658505058388967930077296808779589313983461817155745576412793005672790667036573360245892037741024155889126946710498587603891122526262215635069310293177676723286361042723247902542697761868053287723089245284464517447855094348027973837590600652346459544212995436374005302445186264582375188243870384001380095370155876424512138519494305086268971914231023482254257750345006265514016139976543666653047330022311144332881397338986017949568322110737619162543479264038555192117264072460117697011837063588514939865908199549395978861639259965347992506115605629255034806425004008970430669579993284229427968971846330179025993664316914029257247686090374139620756042368510602485089628195738374861529320334342832592678713597802345484154319981296345294892947262701453299423819338636317639487151995422380749082549228894118071692737667218130817815271856695614058042361034593340375174561566360479470873254393101627204074439641742501258632972769349511663368761918653727160556245855358153121668812341611132964481333948112756962746423834218415684047468243447588533911963155619478080803625287946197163431522913815025802843403426255991110052518514725786859159140225046397500680290930734079816441155503943723668635682625138344544353720238974865659179490721013006559895578081323908472787608325195982175125494570723185640002872376911895748509802383923240652755519150308531307216918717503134427818304472586633987643125032173884752577810351914665896913708682318768230531051331762958430045675471883801111975568044697152921281193722396894744440724383486237574139926538383482762772886031607137377407445927227648386117907789011050636655388608269234671202178496347374617553197598467886983350641508393779767479616659689157556662253825620431005475613966242401326055387200079087732545480069624460485769013713318507426601113126775221528032370042540967068373890008931681956843161597881094189883257291021254169687097840369183124394904193887852191543146856798768098360355220716634724654362315900618939781028163630293400347353545073630387596324761916848836118958749940964844910587479449167069025544321838464976335095115206630695264378191252092973974291821937259549713787772451387042396299309068453543595201344882142481823874977490819788791370153108293270021579680303561685602304876315757106301129608269319764229174257073497422730730215482034632327549129024614932042833685101476178322207672868914013776562027536782874506681682912520127139578643535918317319504437267214766337530335828397968813855537735190185402725178064434006380644508268174685891639216275923697765937801899214085774359869913312759170894610102136238074938356375332437633009236170399799478122858024542429021234699091949288491507739372378288798682226840244140335224040617053197972062201258177687706439828824975704226000005890518157133643695316398618938451979908807482360319952308643551988781819268316196863388620584067304596208643969009459789205954536569345700631828413346869029698247974775211630381827168758926769968436520104451383721038014565468239838194496278289342703198042808322320885045035283335125405497267150936668811404680419217745038090728420616498352719005567084652462979403684386223493724831243648396387259821642831368488467910085102802268238816631546679652993556455056505402340591810480932836402642522873138134297596465096074312456465317778216377024470605123008882663519137153216908992010215811661108963963691682956195378808372995979249296037883259413842143133006673129063238876333852003701217153558375930052658790858096999436787147196319441545727096322274908448282713344154543419866568464306323338221216996202145512662666175550251536157067271549168398036128457714474911677135359817594650222311345222322322453469354251908032004803319033320398812462022601413284709722036247742682018104110124437762556240908447247035822795413899430087568534139379460105873575379452685236767126290945963717839004154277012971580563382711539266601824468005583089488382210764854680173861755846746863304944212947168626504574703525446335994711214488985786034615083096712207380167745176954190539625047331564297452611105790156728789401625405358661057562660698570307830540693905618760169325853713064350909439106592218608576400451666789919530036888357841074493300545774462789021057677178037504722650479088675877567632226276914283531433346680552457041720537217435940423174305150016324032893339163646484184445761818380905956455089135644960398236282476363098357632888576086352181432157635074048208248236093657207178360650764379435634969130228718931861050293459779150633886357306835765005738011992196951721560117596203858255143080409161799808698814850257518025449742128393641659734514483509001562297403657460547656294658018177538676604349414385667477326737920365925797784131900462175269500976636867958400318059664293489649568555868427842976382381202295162545460453673851942767478003446927248214960537230040364503807459061151260023915641369099548179698094335608437947852796513764321488425884532158798191850304167889099175043673154116071633432794590828192432039894483470920712640868993296006357797128534898151548700729767543563170680886005800679586145715803228572517082976446627198199729801393842670801923643701617652937951177752622222896389050414475256047808056979282280183838693146314099314899025478513072858799373688807752607401799088080909282788436290911189800022076834435717607971765636526607420773823388574261339641373167187772906575853198661611703808149574109150174645403600450269032196945761979586099427456079262736153965647395107612344632452715083507833598485996919907487734448909535745135883856835794370757802115204074545838641810346882922325939572936207282671250606808227577121348311736331972598346129901033302427780974308743716635990318908088592802009103014057314220817944574022560389014824650397144965222877306474803018891140985507760523318564188584953133397346919353082755166257586952491794128480202017625786263203846797869642882938167720590108144848924578031418208203153787231292435091450876106726861623352936677744731720939819969904178706249056107922133793762048328005381963006800669992881119721950514211167408612094618927777262695881058802892677422724251032643543455100471758844790619314535280263726941279946670210558645904082047581281414359855732006363374176593195083570854795202418858042847317172683201969427133896356499417444991914438871975422631770357476067712130051883544289840696933110939924321287059815229049734510738771149596867610898146351625365542761294006238853426776830220550108059895907942221839305337932592408998581082536386563204676789602753590870726752128375426109880779601096160029034782702442297764778553173135782625457328078699133868660667437298859166528894784599887048894427262768986865329766572729237962356658248134951236250251305479765663101512537048800516876674399485772083749501738120893186429857134863453996780694269962851028828990404798098712092523738952217846290423225809344976734571437183748347941935071837865741114286244120258773365652954504799458848275078501407619677507944031846403663395163885571212584959080094535635018699908676344399651009982954438468609566879192821999582858158522896376481140402982271636844277419009767424001534487986719419848624860698824086100259514183892704495975509655845538834401299014022351101147486130501282098110153260247410861954630223719569699167357310900944088203704502576821387363696333784011321449298412090558255382460644947381867111490912941921504822726414018642962816802423799094006289123715162098276049400765097115296453370564632601919507788714303358962819839254381093597736949474743099260878789876324489549194920969646016094431888489692354583159791798211590597639579535333087075575811968352205607457162854825289513372728318058149453209501797379600935052356930506883832466041633890598282524589594208743073406414250902706001332427985928521560299428287024548777430861601913380590732778789186268748475647503787704297109981793698833910600251957443916531767749134442457085478341444396664275080854519965490870076916191116419449273389709083562814037115811609458162778100658674549222092812263053153033237976054393707832604154999096301773822453787652415877977429469520230563507623691102484980792911136001289240275391765624298511477719363493253868572533946467828682522857976458457729905800461964086056323012565570281956997336172419339444196934558993088157558392671193483913337714891429688861166886763361726782450139602878888643294560475076165213283732206334410856341004374998488017512016128252619018470243928344135356377612134689623208354847871519800986020026044890328856083878285677863719193332701598131305693940177472073275430423828317014439774843510224708840017613699969072054199882475069936987384054388250375357681289308464635904203216970829569176148832005053700371916796954731025166392878675957426166873097794936093906669375109197180716688723029542924187363058806810147501971269658514382705059730341267044753336446092698169729174437926906702758751995762851548066576579890664711195536126586537551858292362883563555999920409632742323800665751439511538775591250256187442775245188288621511146895631671737587287984722331090463803029025368835972662721879902727389331495804360186102772449946811120551617564772960530169996020621070720192689122002385858596031225346398063151293862242920705637659160860072508841623795965672147694923170053151575800287921963826407195876998234666778277806485949849562590126564394861643243530390670251460425857644512056470240835586815136639882729679828198858839611023735984378388747393726218613974624875821777498687486803615984476882318454448731208505796262783070607020044363844279376767945203613569617676438425038113429407773680868490744088625375314856138508200570257507461243705612242725423669035736550810646601400914737002379708481126132638182062580355924608940433933525170157295628069520762809554246662067724935724495354171246266998667919766858420303358152206393145665482531888789466228333950737241286239557381566046115961771454883774500280726611133480245388611102734772660904879058883149691051140110701825685039020536130980411981401517312123551344355192110597050088185408726686862200488323721521619684582872535731710349920760315717158014228883065847045023461947417978871989583388179738609648848522407638081418643413170520806790507801445172111790404178402852234705451938716926154752449576090153143587105439369738454381186558999884030300248719725194442263447114700924346912772118798016600594487101876158403759231435529101621299580846750388175279872687581518434204247051729404959409268370277994784353933036973028393326993763847264623833691031806222360887194992399591346764391968352046784519357148425467922508869633960222971687969317455491407531094147651007475096896151910870461486035315979191134069048029752057745505429076658004091666445154950215471270600193780385284069576619556648652557547585108370160144191295078759634674415970699827661356261726233125365432771108132912604482177111007770442773446247664909004857893279073072041824276336086597269141899228406082466085580048218280328280406278684424429933154169459186877289687512301531357052698474796552557287264877952602009716779374554273799945258323252750350064222484692969060618048246045127887219002928363531503572355341075509733178829852218757414839952438344938318192494267896183782529935730957912726122888794655476099069971457234198844477820780030217180202768986293766129353622767227720259311276385994473013206139094113804268757489208762709471398307021476379517614693427403961032265213972511071564816701580122275371418517727198327810852606536525276609395008404810211901087501931890313889532999900582633781364602779665911002668721067332477757561493142553678738424061223053644931892844330599856658194697885888156139216900894353592656986504510182614076610043182702774064041279098279261252612632114766053585384238529726176298634193011193254572842690204299979533294248306495443563406489016289441371288219553380725233497870277919675828182943808461079101568497120212910055106875018636971846486165833671822864101104670701097684606546444017475819403715362418367216324621656310500403169010309167836353391753643065693532323033638376972219366107083596207543343745976385286316370328541644058254929686563363228376714263422707201131222103798731410777178592152097105716348625850557367810938939048537735492648596861214250141600994593019333248907057349373800574309012252591133452604410261223268430861669414065095542226173341858016331724591795437535440144594078404573732264585719967836287397235604735733131399806162782971429245944697787370971139542901636737829972456121540485302742246142924211422557774579242463429611504675141188136096681653543603564464853255312508171861773911904069992839151700281637760010092262907663088912392340928552263460460759414272410644603353255500130721674171644291819857804457411825033466463783337289983413590966329232099012478985226466190721644249847763143847437105206191196924244022407203477039704399899575675474966534276624563777045386070950164369167924468810319766126376412142233343517759866850457269587543348837006456754473315620648696489350206414668515842239744560054164297778640751333345264875699920883586894357340262918129019162265056203313512754905185857803689169232247090712109438689831883889000574703401313724033216585490203030703109986849463414533676515768781365439115337771063033113823919063241939234977039694684196024158529878434585236874655514528886797063063806679343793777822665011670034251282082055913254629415795896700808532147222098764442414376907984706486516869783106791263600841435274505195611044075148532652079257575526408159132726618728405637438416847615605599880162139677840378737245356009243544992327203112196171317642137458204534089853039960857982328245157484495989527076858624294799622876533602065311681873995205122247764800892870070275799926844860248747757623314272046074467881034966169795610791595223201237997746542521717458172974181199711348549415810304809213534756125050925426314075368002773837389093027951657544727714830974744737873014087678733891663331261358079820363305504129751352345471893616449545782070037108214812951319647910659005812634926120758214730127989848298593106485514987523679384863743543663585722389077203813435126818152639317087518581721834097362083554459493423291951430349212104260821048857912653725123538545012555225052284581126887521690010522828201016159494085326099516425877623264748914601288224977417025373027565541301326165416421376587039657176890314734235658264242929581597141474308904374571418444146613628466830045267127321920490204019936473799711094070057749950098137585529399599196757738868063789902358283006697373401159836874069992529835191225798657864701256172238919905695638432384058280687069180939720445255545214455057193439583247129184950194772137316641170998555492594044262731716613124672159708746931564160350479425779548183856159954424105208719505277128811135155779547892622510727240338525673867259506373584305383127749680850230667834340145026585971456458820918077835492753887070063689942732061351383387232323274041418490825592444704077637561983178625335387074392888347532610938282284145151247175003005010128667664067724880848231447161210986719337331754621183784261713619356076983467291400208781430878301547409523656478054912416835087245685000529684616556873736089935416277274261928468214226701548855512671554629162963372494552551531331975681269174652585763563210287680903852360360240908789145467602376302589368119739182410337881177025577017513932898674898558464466948540178432566701685007425113489678196145227599219355228377751397412527571358376690717475045393147304065657774219050256390862711659427897022595800097587912930863457795939732650460514871807129923070785406224689193005357102297346913905951374557319880785903213760440537488004367404483916616780975999658428732916369785508878010254146558102079124476060999667230441136649642133963272247016468140701669173509160458831901802646335428481954375795668521204913811839840252098820086243674107677354942976667832740415325642618161540838804132409161820273500905595456206704417122398608636715045664643962605716916186630356768742957812063328738198668557799453732776019126631888410567497698024927284861203255893260607956929337040006427661055303596337660032580525367857782670834649333422662681052292383705097025786935537776283090074407527531312149513868745970503781997346437579952468518405731857440375232728449385740715135747623634961713530607563118910953156151098155726652648490393858221654007258871646241847866084923843279133905489004890810620642972079868968832511458130096032848072475104002340240007153970647148144733480810856662157655040660773238565517965410550384234215774966340239011928280502354909629222487089261261463320374873965945309641606338641227963084369348563202191820989966350103061319796336141466475269653289277569516290675665537466570732391372640057484716354142074244973114617117687149566822565275706413602860052033705241999855955548176363935814919484040635821958871255659085753990806913702721288457102397971360647017017786978180863942012627807748886687030130040406891644836752011552757086862390673613854886458859843455389449553070279139590540808358440584173315455878891671395643095889172895617487569326844376409478439504174261940206860430855101982320235150906274788613180663049708172966727640557860111752842131472695972913856451402712020946757481318221304402213146198630580514731682391463904226461895384988291352260487476763100167916972185671466690455433938227229577565396687530253000299460897450007400058354491444281189533939290816126161818336460242734023196694803211622686155420896463148009331543838128309644168820881419955419027902439734589457102082600699676690693099903287516848124236967603700951868642565512030693747245202747874529981885337077173951737259661013911480150834480443424312935983831677384216268368586751469486599148875560579239580994169201918558316453929342543698760444691011903667551472396953578251023637704926973414151112253414108330005981000846777898272204698766088658444014002668117155131600865874147953044225102104644976058142322571956048020647820826600627708621415220336246730978641026371127156807788895639944562442644795468735290514413672547325915959247923670721469851771558492288893942244334897226240014279148482241718337297621208261274594436650634436156636747250507159712064810854233253650180417389233580881380397880332909329832831837901661087612422633550608523532839198194792268352746041390043843146517073850895204333496393809404972401754787070190276725687680278600545493859744615338865534437900393836455513277484680879451257160337035949617799197139578075104887019318558571915213958740628805197692545571458973054596110449474431884159267137049428017183685024332698174756130072444118880170705890870074614591417373693275563514524814205492256336581609885795762632888483968243009424540648116257652732925909531589555827578526097765509544133750025869652324602180966965592073136903231252228971134483734397771170853164374597433336321571878640026287114951693222757658175656465449694807451916213491725432290120711482787841912723190435764839627400360483286983821732986215042725364850403880341291409885757663626592277957691670954011266159688742480046804617925843611828064810179869447196189062495951347267430442379451782991112396779716232068493351403605050671206894587251210220801407089364012045488022429238401498051325482889028617190074502966298337278793483876077023081819792570122877039202531543115358958659624957834100173632457780181997192854968123236817486757177378580991841892064487699982977983658856044319151615947921695014862841883095933252163574012852020873236362116965256632859218367796020922166819284694117541964785963607708913528204419659838820235249284848116899307702742789450005274323966656271544023645248797740336703805664187162921541805086302225365124961530103768870723307514022053005847301245521247608644695285318524406379720132185819872936160134891702925227460095718369447703284312751519826339465931208098402581930496123029449100082320181752793625097427734675518667204924327554399167648676176219317217437464326864133000755695084442773761144844410320921564383186119282915916074140642006429450659730060229921950448729037995795448951398057759037669844366833663204995976716635899777766829407375734984842090021188251973857818466047553241609140936828109895261639584909013567055484097379094271596926117386858385225260964286467845826272709455267869403256879596902062542129460097501166705832193444239886295006372950483399867573479264608094512975701832896784401209755498196921399134315366557690768842168341898042690211785787513328444989103851003153332164775175156772839273802740287532958176889396741151717438024155328450005921395084899449358198932884886861549295150432476626776952732202764280487181914487972045090492780927464337524847031329513550499444765510240133193686840991144322464830758124566756895152786671375208171295316695091775991146619122382760016362897433168137803905895199672551201306685719058763140759624181003544425899697184820812990077509780353040347114104413289549456904990442567213044397383811816654148465359383434081604847695442247099598137295041884441513596624650686065349368106379348661165654447494430689173228587425111305355558425532718517287913434418647306989864129266636052507077818473088438132755013065696529881688237834838224377989186908249512296944356971403469511964680047335654158407848645913864110030478529702459493575696370348798534066105177728079023158052814524677094076295437504040187052273561170061930735815459228886548836492621985379945503404658560865779004671762164574384287874537817897276459358021513550989831382152025022537835340242591165446600148795990619506889817523468683423371977807706920898822359345262160317279273612955573209847753057197167354122709269709536596698719228150298715172967737403747989707663074798967999294676761011976187645944549736390880542473754995836590046943325582988297916562625460116420590634003999441815031633070136664575509873355654889135889128985582327488748071810257777596108960099025281048631093341222289012471951786086935186815850342000656582195157903456181014975919841057408767636659973959232946562502205268344087852148610908836267650077918108786913908618173349154299547668935147546687092599012916419116221625193734211827977568571682939768128705467927281106651886266332578876487698483933962217287456348645358360492458243282275225142620992499524889745531236085921221358998093816145693419952413223577879958514018583400194747052644270777616726387386090073170884799332251621067498250054529170398186610174541801171880403242011174283075044945034389153864557777138310538252541535999313711728862020710011081683613847704897606374425056568208701759372427830178871158129651898895077916699586866920288476048649087218676259519440777125791133732232422754438713834042439179364427336561575882986251879291462568506987849501670819443819814596699955121587033969311742166056111810090694714882486975560429685032168130866446789396476258625446943456222244699357805699491650956297947612839035320662006267958879350213731699626298514601045225502017770296947402769422204215175502340679957160636156818471276627705168088819100491420279879980824847301445206778375583538203232468391318493087936816936049017959373874255763238950277493400198587298347333138556999008339841041470455535994233295132539269400097850104297480970758185203433393617949638398780377612156985864575166022392270305474191299710291238305776231582989851210718392356233611420242906449936323042421116530186661311208942764471796381104921924660984553286301430376875103734839831924270942460131863052906408918534113033463059686608187689255502140650421298452062911128866854007457470318374706571378732281826213729843929847884454824757106681141363267859688645944863195355704781797242008390779154589826305433945854403374965819459023391372167776541918049485651865921581319921912144492142986312540371227008607519364540153180951769767450774917014438210941212484061550839827962732474872922511247941916180624323562354349959979185435337957670747225273269151353178641423738739243051975640482567630265778186193832350297098228683356885462619829129313693942899028981466681395578725972559718672886555691685808915982047335800680120229596804537198798593516231761659481390010291556437215805648174167727444837785461679251027155427541484800554394109898546630276943411830089138671462212268335420595911473963605082573165138089941346428134040477047919479582212701581321774673150590103207851154307543725117449090201244202168700346226544440532677731940255104342882169186901465548092496954354606829832099604954960971766693794711996369965794751066332274414485233152404562188095576320765534433123978894645675930971070938494894762695886829090036912410734751129804386260879968671756560555906018819572623477808933392116479537454097246891521234637895612686015572502982180965422521288032974440542236842271980045315908749482601399287744809818292412281881741889922755455666628298237230155376955092860644811091542288430703410789870315915499175346687481184985725840075269377837081468395965569479039829840474228202591853762094473909062539690859271249221665912110136661692686994943082704559290272071627471824205271206442839537484474407857364219359882731274148075177383035422250507248955192026687414275939667102542367870701240313128169223786216784399100834945030827121210801960594449389369635125546897663445158131829609963763087545686176520243596020124350371556060972708902692741384812256007537336158782034641987642285523210088452714770386964632777705430875160686938292927827110702023869056872307029622176116608375007516230988470311824664424622427949128427784155545048617783058262468120559171496337933238364685112216880671923188272583703464109624491002375035488067695215981128371391146336924926142167863198393672123674043430985685265704698482064414976759601872988667698433018681206259971083808194315103503332808314216362437580873263436267184102546295326028003024274942311046703825962799603416374096445535857608653276651867151038131545254701540816881605061789938107825486373301649490906305820488168739891946801098694682398319975154671786454467059655322252345506281901464613536381102549085286830995649574798575369678790422741824734762547669310868141680374481264982227918377256243014215377256406708032995598134248604345254711759713016500235467248261443089167268244589173148124377016515490984543527570595905566918523701480566400545898191431307435120708133205714244951329442202965027172387139028368764528717906920031171715378961847538101609022909563633764296787463422943976285732464162426382360540024875404862819105311697845386566911521849025854361587545688380025921881099940923271593488184206219477749999572671925427508139278258576225936554235157983539380797594726712106324796551533321682266186341937955453715925755364434438102072143153325345196828713435738912083642881476914561081642716308629163472600532448128550556496245308438105886943474614000536322818991962284956726232630412765158070472804405053439576372398404991889408161677785749436209617439258888151335590947996198215780405854695136742446469175100116225451653737668779884529511769443762911033381452134206341545440317793970494100551023691553872380329394797728354009470424714903455730827008807575996223963216918336201447200355455218567653515132609285459835927851503205028031500478731259859808345942326871362821075324501309125406887508276693312932151007646051634157444322946423818383505837714418427600485117641355759138271887410100050451390289097987347368187790834157979109985984286461974478429885765791154222882755358446023892571822213227969171775313181328899143663726943879855795837519236435182110934014228385248547421354985633162991264833322368398620305982967121476916123010322233183244533953285658098632061233295028201061973401886149062410164692834412292792718860091987877724183215197747043295777631150665332133745014530479686047198096851370361337659344409298831296823449425928064188245980410858820846852570941832277310984777685679829114658248363871503331909710895642632203550638094265198259697856266296336964782528181327304907456268756041777070102064684095688825911572036908916667673762087302199807567145566043296067780948213952850442474178389524197508146292840082323377140921504062530723716420873574864276555532905587216591693139988206294398139731154152144313485898371121938848143251086667035440094753015084363534170301537029840515788566195077247663223701351525182818868183160622915018603521257425739709553580539667837278370814981950213017457628165191967194777118543569143036028560790868651046921968462122809389918304021535298076243251862559647325864705839986784286227895835924608903141602454334395974890346369355459955110259933295698603722165463994755915105191179339467004546681480045942706564719099406780986985341034664070282372100072763465840391961789738513626941866904121219192463140191428452586781303051479089874576995558002257669213473748644676482417817576516056551040367746644000342027513979348611659934015245620590354948382266275528371875266728931980971228635012872496552440011156479124310330083155115120276842286885230212430687704523314171475730928522302792969989058621515467626168733079548316072113169045147186431016564699575412349187448545307548307250213531364476239433234411670478896189088486062981901638742128177579407891519322752298169240279689363847461782592977876363025719285400789137355972925538110645453975143490912297218615851096054886253861363708660189945841831430732444024221188851073176312754807254794189711618727418836067686901408546535918000914936588208448211645158000827639729162179725220455842512533614253972753270073623346970085654412746262243054397750942089284713990752982125349361526950435497582189393862765799906625438140317507713179685392822035442591026742153187167771302608867485171418236335934264977898609587052167285570751299138474327609571645164985105922694860408528451072765993629421493866863932346722445333678037042943278461351872708600261919809903622355260040234086633944147633762228827038556897267324363165385707166841305986486501896722306119587646935087036304811841443528299326344713556085279465535209766204530931030267185019841706517791938803021076804044960401745851648231764047253752481620242373484889448715114900751296643241577001491533262828383781306495853545572059422638066828058325749845630007418177705455267285770214486229727489709873097074662547859098488148971864175958402085057968262406180574755830621487019760048436730007251567987009060124150515907188076838955505605781202923846339643652206390006218360939043145632584274544655138411654071564256434642810556151779779074317303878201279786828090423502554175418705135807189758357997232321304408823449700050134921662448030099357510242994450166865146562746308553703104508759267570674277702393545927709335107679418121083330769156013977651149212213972765151993766889694612858944628099724765302523923577683504522111452354878728375410923300999243161739242835192099929282231155935170795267938209267056869018235624747516177250592789999803010309922257131458140625632583800659238419429699504084995533004699032454015845565015951709800638545896332027973415433771093937608923209955061267225067079482933316048818601567061734260101421523358891773980210184168315914744767626906861025506097161847928164562669479670772802523973105097060837260326274599314653445058535738375523729503434795267011826776407103395630409326366808348677214439454653260496061926920781814846352332628709902545957410658139174799675862089749346143426897342592397237675595824581606747381213902559368890141659684949448339987004835443846266037414788495825310515114658316770334455221427166414057192836114491078044859241946472956606893965190480907898828577538852131953816651862101018775204204716637513315202669555595896038405091566148146726542706997446541359818945883331795578145690268432229070402324613767240040496521611130437482329233103663791767481043094471969733491080373755010004833888115001190765589360463725721368885162599975451093504411909454012087154392848604934381413255012713591884643562128522491945149557509555365053470894089770133406850026549890951456196846661029408259764607007173785981120701990500165744753332316746365173878976628600679864338174614563081553437309722652932492111590908183418252798607417599384170007329858124937709057116017187871100478408352777918171385351831931460958355319239389800350229188288642258851573611127643703133507391049833289865632520897859713993827320102240250291743257357058296347953008947858235850134510109418784156460661120445601214682138223554606105271742669663258260813901684673125564518127224283949740776406381232515520428753145774145403352727469823474916173702773776421663833480158646774328361464810872893534088520880754431362719735063223525403007653759044465656868548146081459546908328407560985065430787785754087447267645057092101623192993483607117252547055444687430321363880813665649102960465204366040262024967547556348079055721683452249870865818174275361844922957590092298624625572135112142287396921486465928335057265703439047119394908253577845130207247219365363852400825070278747405259185064562574286717115535820145230671198189416628526712220128611813802807274743264484275572518453909560091767174202651699007984576135048597737299244091415519709341277746415610707612204545773322609044461814468974306677637869894010744692381265600789319986326101014970687559950908484294558618425168154433824487869707385318243105138237619261711286823094432108006339169555592775691410837589026862792183251454931143474713431748878484681824978509964616621759250566431109725887842346076660953859767631131300613533111591565311505441094060499645978956108550772279356717077595410513298508206070521791698352927745650410099302083254981823334989581461162726592062748842789701341119572614328622105617696274537205366634648949355288995595037891203326772735715052011430546538508874418347633541061262175171629224394096375866564519224981290212518494104704207189841023994212693831010771137035113580513804675665246104197455579832291524839232725017289507660430162243617051034126089534763928769971097721171486484537784939495874502152171268066165147561213323656453819127966166785744670181994387139818908119151249683650206608887675429007073734540408376377434859459887112121644144166251471590293260711708260037594627143491984711594818280343120053565080324471244416607638477913251119932934512458947524825192296172734051165623963584146134485742419095809605130913940927330775247675070491912230705412708403130145236033701635984837429945279316799439501572804801615212908246651661426158857195971060191017156775097699358780829319573366916250066982659682663523897768722850880741415410319883542671941280488517728145916529158809679582400828943657819880439662855202195259870799645920996463618174996040490689259638164589630719304662849846368571593787555076674953026484511561295631337875593087957455469070287141815827970309246866123216157656811970705107089139903575674104387900889450616597934960439125402874169193228726684406243894936647856483418983518862385363516985498476478732207672837938282844249737934367545470195094774126172603270954252839139677169810012853690443825884715893463881183209739622754648713162560753155890156687922477036662992447546441935375667212700016172002052025812917447929781056254234504626151768934924421796335297656627711571564396860242006737182706759620771347422611155215148719977757355240513315886706460155835853671290145560457889825460220513607629328521838950559719662780449940412458545747804062159316901955313326749113797164447811038152802454921708059916197531513990224750199057455598523958976159795530850094485935148615593702118599688185653701536560053378921409164003365832411863277495771175161760093532978582220752478481531856488682935349640741282688685306525847174959449602872686168938676513044081591541225088209237795056680827930162914886639013127939647927821650866592227023130721408753447384229403699879041621105150201806548048553417383478610719938594096178941663293872950952501529008990421686391572079918998492230432228815868167569540510246992412660053496447654161670222377536841104357824709694281093110650561876880803577777890712927895528273621757572613676294540277592021011203791072963528134425961869926497660791013921192935487473042057500700079500668173901009495620311447429176045522700811181299562649760742733148082514302117626642831501937418924047716021370037558195148544799902030296470370599345398590225470510682960563689563816360285685448371302768403505356899359071544810287120228743930812036088115288181963967683329973347799808554466796929281260962519567402801650266151533706630653279473243027786485012145340944919654120699207667168107283182461317860590860881212726510884414355822388402495547240190107693880426110477334674748859267703557421411856765174813593392402578725907420082961057432037988347741435939289536903136316390465483228781138257118960575498803085502005993868850036129983312812313683824143720011436801073565074650930776186820979233328191292569446124674340902804331729636495292379231263982845257682572449543528712729667829640607942703376693607358058736677026614398978573159756912039318286865262920166267978635501481918523946900698758197264628709796169479667279393698407357799056360880407675835136506799383118522190981022007188696609429670538808283790971195895131322941014252469430491144863630801358896562549786376370887465411029320669612761186522893818484616806643212793779080507707704753468571961867142058402230652301367601102008796915725190248005432988240574452729850994241279659207230331184692895333800645635104769519325277853746859170435205024942972646431632102351492917815556252506135035083744755664419346543714383323160269031417135938032589990727015708575839154558739545048247386044139304377947366603761189005077652131785015434430731931158158251222718800286079519536708404071078787918974707377358012475493693176683476502800019408853797174944821762421955715217348802154709672336109269317847844989939647455935177146447743463836842065281787293797541105724503341394056088443098638945813673958303007360431950417955824098874616369922784147221273900792942366975687422994013559389698185349958694590193811518938866241551990792530153658445225152923030299422324941003535988636698060150258965713209634397204882907077727172448624349573190581382002732521408030673690742430658973948389706099788155638608974607524317979831052973857978224889306924649284997925857766204135867641513666922611285071320990261479993346050775796779835289012660101156651270105332294025979923596718038401029140406080793111550285036016697740205650006685339697264708019637741633659443321534035967521235955414523520853522863637675372567197097175451813575181983862388091035025071996702859326323429293573366568141968761235314290253044252814934450410987541587937454239432668935382403836386315942545885160177276878360312579021044757983324487323740815281012916067947769724348909084110305040346579348260011018076219663411337968927289510551368399947214324230808022934211087495931315624971228440921327889442192688730600219214909767060417547071557028324194654929299139148042476358724316257279852979891868800052003463310945915362296733227631964882780564516322925041000738015138323938049865428166800542588824419456884368076569877596596126649350961024120253287573054555943624770547444785866154536028803426817943865909102245460690439033930782911597490909975525100562169667512060661349202874589960701322480522420252004800012577376085084651450951667961907834857474700363695422416460965309997620870877030864959705100901886578048341217123621286387801372453709480442636725618785455943435101164584866588686447406351457054222195858661213520789647139133017658302134738950755205646586272963854204650340612848176759105929131051813640600898387453374664248574717219737528574933114806961244103324436809491121677728995959609331416514403121178283759809750143449291468179921376520621599710686458006981690390981791066909860171881518251115140545483280036744891662320720658736189717092457032485297293272025921579075326058278142172138324051253111160315944948626385967594123222728933373177928995371379505324138629674551102073184167392125234893270417567227012695279286188842300018326853301821171309915442736491408138450212874890401554507395048671850446738795349782506397815694279663658122910908882848161786076048937056184876709344262078072335821616041511450050685328993017467371916068983147135473542144674168637781854960191581573744877168369227271769461553722608343038524922357744161817536329854467681857083151290510418155865866376643469791984414573624587490496966347549555160538029435459093454563570853269372986595065601470893718387634663743336298108185895721623051985184211815308621646584953283760293176273590341744391758689729339003614639503126280250486667542707442845641121069876024813074650783716022788734021954238632361096167254764985287289589150644131760856005049459349697485162727617751964500757336466510728182912072617519111671301489967957602127792082746539892839687118569852724038101915404918849302204466878747376279734040453757059902243020248817119191745463045218383087032701175287702815771994769826570447660644885998267023070532528779945995824100895472492668423429070549425794285238517135519966045163988045147234377551538234552059863831828613528555077252187329863501618773691632133862933900847293427677758342582014119246796351529665424247050134639028954920894290595237021572010556970045386720425045883299235910782201486426445522994887488000597762140184792143649418430292684069605494126252580889560912066046794141554491276923901810816408395936970297150149027173383848266949741200728240802976307352468513611245999764738157248572818931005009837635807879520534094500004355532080109036217512879438836212175804149319656541201473569858377540025868477874087052115150827991573205639425362003998310557209103204705032529062448686361159097138027026607023141799497397556389396533641042914832777395915608534633829301089642685061613476269936599514034460322221260489327805597486710887279818004224042916066735980764159361800046141831986027052003392611955879781208393073994193689908743511221241695959810567662971911317903969179441793586695518697388020092847648544712606322647590573840625674171739593533219731850481755570279409772146349655843404437753867983083362119737150872483871917305578787617063984220830448902576434839273562245321284703060917168753325595714719907619816854222578000295133521469635448503408436638076767513489075137739989156545740132524853091845443195486108705330367548450669249715181524048825121448241956430514021489475364211775470095294017713296704058741086209036888663775131807453373873042405685637160053009663925797953332606243581969823075869826999314746387472910440634623779861790108246007887519241935088879749332348122273620804981283077075809781449183074954973377173750737170335757392333905981579069455194764510865473188306247265963031855701491827597945286587028894485404089771115627691936011953045009520554036750017681458689547387122584400727775219557839993498765645763463347015187730551669510717953176683018877091506888654363854723010923452683694575423765263993275613936077281556594538734493117155539084532430999406712390344287497312734063904058851329196890878634710235539219364383506096210312484726177694516491459410799044927437832214619949715864185404815572459047545173919095956945388768008790132169117844684326057065167521677003634094648393140075050830953086552788131303588230425675773446599842987174064021176080549668290352382117625188378702578430175135296570957402374611611175355236299968662973925149174212492334825947495959917731900089316296631060190755289172837136263229862302610296835624600763472649117241674903317007951555989356648278957345094446167236651749703255359901027367749270863617269188858161827438811302574460965446072393896967410816464594446485086835805826262641105142999859455133825650508680635944875715321887947281736632298722700402674944366826733819108604093415616772488171497839009558047659631002423066437441347249748390994073464773068779809280558225210971405194382672138576935113974070171652289405225851037224491546161681924082465288205498086387540628158563042793975236618572679008919632613404748741984181182717808325883758804576542890393870595587697019940126327183264338045861068443091341976753621513034807709824687108674728154396847154885749169019317914928706571269523599684653511602320547822642992789212662409095022252758975123984925279134846201210169131108670642256000360757867526408189230194028179840229689354927383173119241508690679666222966821703369818340216971133306342583694171539880584127635333622555123492964172117763272382988914818453342088371560950006198460956554090619409975170934129212611752631920051200976952680919821195511319736370646720204719312808989083729572516863097464584574961745764996142319818577277766451488747131521799623445858408156046219283383093626702494746370096845453835106530963391667948695162905734566829244598102626141894314093530904257468412998954010524897191416605910056579925344204811054837220097337004686256628552145467128866876804544412192141823094898292557567560532205100694520617881825524162370267782918541943092440668636096554376571863480477553030981493448219247566280959870084421032280680464035066023193309761285293336575686066313970857938456679978472146412209793972582878043579986941975074460738151775611567269875288009288737017873493692649216801887402907463830816561743991861949512182965231838779989223674754582363032395517094267499010231993931650717045627797265869915311128987659728019418510249472789257138530022152416004691838554676104262353426492894421190980261822458357813906331641451808800720339759638183746027671264937099671085978902219136021146130260179632875735593750428090030554157893264624527116646937488126000914456431195858852812047161189298614641662026590752767119711387980807751571327027635501600599758476812319551336859830522860133438276037956002649640757756027975115580999257872822976776578570210881471312174210974595295320651135729222004069855834587346553681939683892321005628008321378120483190437606424760484589680491093744741827030204655376941580244225075930556867533947809355815110183120857374162148710938312239337822509611615098939590998978750103169375207452338800345376473402139405737901575167597556490794393923324814442825593335561567075594172275193703098602483616771690244241890712135337889449402392695691963442490596157622871398587154480488812218000666059135031524320344831566903592273162901660662517367877273411718968066493770826956891582112899907869914666743360164994248263662743876059869720947677556736255250907384987818920439314001774769480244322184910221043298158855203415980946025833529355351240204824075425535963021233126764583345691782207126263327196697611805296413579943314975497547384941746822445920017499064791967491120272709925873667886010914001157484888489501504976686009755998343982162416032808056489029435666726371591209073254795884923370355047569434690309124117824198174712697110583560540875466094971245447668462285256999639910604822654062840454559622855445513153465573099493938891481590396554968096690046606824033258991958068363792733910925289405682550825215333076091708837519883913656121067624104831893037898830319469126617579248853178341346982142378539775012765108626170323524690949966617494861504863595289275280165011111032990287553549155647325605850921758149554975528659624987223170400041970744945976254794390644840567980257554611707368761274710514476969387742186005670886142437642960877540314090397151689708041673516908830267209944961051887034614642551920446730603654063003808105178230784908108111367891475125223430598318408902511318143190317767123830763784547680600467342085788219219010178334436761263466646333526374933988694219675124525470186603843036999972477985812459855709366583904176234724286613798977871231187654145320768672441813292827059797240904217702193678121481699443578155307749546401438721964025248813693207749947213078804945234786053063484058590176767089873661530294162679917609289948886418174998126121764905267134985084945369457037452176347016366562947548227615084127901144693172419725131864855880057555981836470457082610246198360094409586549783263153370572759417755378159203491307412876558757865287518802904641908671410027130628358134180218105644677211472394116675392308335878943584984558532606917128478118493880071915625891266018311860869020133908437922514943702934183276540400180592950878951975341601372186518468356441368523517958847529119228625190583336314921315769994227172652692649923391227153865216962101639878189479154426860010034578301589611861711429757446255117358091493748131652365224824217796720210634869886849113538178887826092155496523394032796551268970829651274965836529330264439639967863406631677739758213737398253267081166375250300861587144290981854871601994291819794378761927539686224918491048301241183868752663035408237949894768674521791499684610778480307525420713801525336247337071298309916195715046389746884148571463656474686772520107797731932292720721880216909433906447777652228158137595859745694722214787682441892680281957490551765628003931879555134345161044974322577338649695075022259896431966578625725591296019475192656856782169389393644450309115593711434311047384501649719083787379738045631362455760415054396935950690385095918512921988694579090410748186258027912331175536295809952269154458408349752799183806867145708159557465083947288590860529511593881937533219928373205854451607596193695348842967810727030120034745824812624538089130766270864159784918134353956440312430254831075685893764932845542443239452574570767158074636987573978970890211785222926496958081219148158367047913988729163491555295133883285281946185189397450274724055667562727346466708790117627481850109283280347382462542866882517087176249742678709081987001098933421385279979828693154275995597157096582413374749550246351179526574000364542625201486610895574114423703036247017167696421561568732998067758034256398383399614725331510031649246477240225606810086103016759041068575729206041831192201333308987179657343076679741765735523321746820970342523473570682088938630064456190434316290811224342077207131060920519550617375672395432013222225934430820846371981650828242386822620905253328339268149445783181549103462689989371590494891666343888901675591234636513846541370386550802087609260516834786000889748772165115106165415654520405990776817790227600501998484291843430800789281987020563565036510272369330117335992938287537296336307263762080409540859840920158190399161271657902020133478941588715729834862830795301718220781948118375329747657732157352235172232473688434201513535864131362241429198993159821889803264350221236821849012064433362416175402604406556416502594709021839747351014463159948176722575893455747394129780465984724659869308910236545590195337723776241578222785857517510389176235915618624213329707554804943218406224710709982393329781292467007544051873212609721628687249704303615576034381694586509478153823580346214584714929250422189911678329219630667082954922599490893842205622989704133195611083806336474983306507980047212209172361798821173533716835559843872555442396108821495136810645986376567244157228854995279891079910677793100844938628628162083360955707423826990598090249162108748648811589797406127806675801683920874103358611100807044530214812470890981383024819755975095753265699016774518924759898008709403526143642635515389873934908049573251750308466667295615452397878428548135298727946867730803473381433423535787977168167322212262524398595645362673575584242702169597329345163799840872136152180316719441774966524753122248598739475751810550652739898505375298407422143341196590890166131835482759667257530170855746671992049824777698322057815216781611740082257238956201028265350866648784004420872130710964696564581030385773842764822500486382016234820744124634835422286256173678930763815738742270866223150207207599609932653630603778205175577711836230732015647712666195050263885774765605433019218358375048326591555485655913745033068655295821969937205269875567681254328372527743997905141307394430052099766207770151740888073082642472930193707335834164109075117325357024533220420541991479503777914051232961724630109566798019034822541208805426180184084374861495686735434800811440472962526763597431162215420075124304684717487150842439464080242444422257438755013071709007126771279895780277975788752824751446827793202060663874786227955683225636956033354388024238595537342536505436744083417380996256508041161345294402128262165416559746916566141094678611851549867049459204204107983361240522487423995861205567672392891298745811050402591179265675153665272630947525914468737850240032455366081202806070346307733494410933379816346327740594508996275977895856918284340024217398871346398179568555978995998555022678227249885739298226279453986124580000403360625451577439126051348098202154236475023770578493954135788813368933088552460076954835551357455817329366338340134882211763430533329996737753196270412732597455289661390031588749229938152549990146234215091813406519446151153488633904297338263948561301118782480181340924138420261933993302240351982538967965806414594903338695321241982886316502039589696070806954593318382424943557256357169336779815660741500485126019548392598014391381702729729311004291946326880753745896806528124117797427401055201382776772359930542790936606105767980636415910100724268917987723667453954560917364491472938620768903834306330189481574297562542566228448885884569618002759375758642885458830716090331015486343401772493505936675264096060686850431948084220063508177054291969031803615515580912820523117379071036964763970467105172850223160792815142082148219258741093138473576928629414007555596971768278261989795122165968481827704985255163938865487452124141692630067804153967454188270934545106374798892381476662748223990657545738573557129360655311180420018777217039346811772478796160223588054074693324988860035042993655909917093094417584928398246662319954562913164368073424881971697569052270081909449385511934579408076588107801861464022178320453312351971288287063660805429373116213721580137987621143839750827679701661166571845854951217498874249549880372953675054657404312907716068570699789524726442737712384217418685949170310031719125311964725288993775358890818702514370034218080045696726207750623202441619133074442441119193705834963068964268396732138194327581531971198347958380352420810837603432732734935464157910136110808695512708953684369598356758749673805783181261908098681303645296822267874160433262159091148488839983777337384610668947433875964937750501588788749366378238199192185141480125404128528414992998777339753499285829122734252948115474935872337344438138438184077223507632340334347384012672814824366489679777413362142206769863870765401071530695559914463872876998846659367484109294611538282469741662399701278256031126079738308371632851869611641101196375308763972576809827415581803810183851707991610194754309822340842701031944212900513945632488526728154478556627656887740438795824671997004614479252340773756074113122590804406469109562748791535441917680577230789417951470401632017575277844967271830717253625369215206750041891344786561326238089074935289335598571485091469389932126151273945369636733422591387297416108144496116257406729127311843984649575181260098971482359122986445303988079075315770795200952661750405328037781298316499647769724358973553184706263959259956743991927474036337586255334098796306076089524266809452102305700814740529407206431740877169674514293365349835211602461226583355181311492523371046093986677908941927342420880914888468605350863776443884027490807338176581977886493616566693100500862023462495549878203557928096382575715484427654504357321636731652403225059991983566527916518833309552845030761764652791752684952927617437213141821665717123195112377984932733127631572074297466386905237246486197082968102194442463187961484660532911922552769566717784823903039361813881461933767194058836580151814532608307952798290623705681474248426146795036500007643696679873488581893294576115462001788169773847359344079120972401926863553084489094127982610027715051028621760414529285949096759551908098307525857236961220814716139514276554889044103284210699472541790880692847752706810218417778971798577611912275374690717441651419397312784191658146227691834221906080750692455088495344809326133604284784822636473658189561301131010732231595773690473923097206954318217672753600664512337490262999500916465912964050345411929141699411898426399143319899312037107328991210151461284051158980665945340218696338865533442385541640566206464485609970475340417314873006144517861500435207844666864704200747752701686473638354834897986826753594313300491042131530872993434171424195741167955494585639679680450132297954626741230029805826424279013245671072308647173972654259062249156224038851554049284527459049134461401435731132949637783331597323267278972478214429169797803582247871123524697506887275880603424963873489887504140778073249145736900860809195845499458015788509938870068747770454199370760428538075119273231357392492771789352025920392864839549723777302747154379245481498276697809189227846280147446474763479080866135048173676401720434856033496287526118553112208412893092723876856692043008616004948370899528015730694691842374575863327768595040709509759612829793905665962996066167232398025081355405319138640826253145792572350930695350831210430067946095250721991246494681922946403487770575992414099390292970107084036951092501337479963930723556723851049302359327563475969637062864438380427719231279987330734899151614850707439786002187420361977920177593063338246090230820296662529889537403027598914288839903239080386817789534291084629184784851801671124268185619406650720957715836430037971091559547610801115637509789578584777569260583529989130231497379840928134237043371641087486934828524416082222215169969595955288084416410345183992011750055597505430053722455539872758584935012687599808853629799297159283880625284165640735249847596112105069728836732547764323516455534918024211906888100880041623371543980565891700946066878867243040945903980195830100880005755039862916387821577916989267991808961531355967763564809679858276948384240221257865447249163626921693671964566781268205064074098733537267077824540411309408250386763522073854239193759299860582633651181363718594467633629243473969952025488626513814323612513160533790130796299766760724784094978506672746761057021138882973856905047779328371376288317172371112771599002425513131161105945905655509318555850978208942173065291338011028586043832481879539008626672272522954866269097416624925965366350888790823972667454429063759839838187618041976595368238333307543284557075030826398385966108174266141431493890479967172217430872059396214533234516618379436449235331717914008889823984425815095893242240205034547282937390840343082530332748780659912467383066789873553335485320120470006082829414995410385253922883880901832035653851583071568999710509259105308327431882075641343063613936710191656483225177914168999579157552916335810470216253541878395552653959349177100249814890778083575586741810067231049402566051581150397284852312654198235781392416800219926291107043140840755561318200970894161684166064001277872218945240474328471353656371972688866506389019463276695749733725075423408603886480534972508109046028705706913337296599197674322849214547995536203019644446644213816111330481214492868982329501560031267096078669028170405261248718022764889105987150772100189910774526253227945657501195842099521481610259946041187140151267107794511327278031124623978428798563732791516122271325451466865884332937452278545845096010723251010425134785771906915725316255994378878025167772498420231323410694516178312644220584685207584282370156912930701438427654471601262241453046927064157319818528595361361701979573879730612757142949234630793276367976918882535047528068521449618658959062075770186612253795979523510185419986946408874432276975511839044677300320785250414276117578465419094635754337385767009791559805505703824636657493026538106809830773914940282099126205819472390329207878222860982543575184770436461168538229991888359632182536617444968585774096092938496861622733877409622464717304453729026479656578292436661990661790379949675364635758828376011288995944397044989932481744981285977009288247884416627043289390007807329846644083773180497489635064216092198975318640138460146480755531326426895587818263859244790977925969108348983073763139791293281394673359037805806135199093107417159686220743904887655314638627532202011338417400570391282164938864056431654981840135122103453427080129003617415796360214158524257343791753433093211657902799227442466494974841941826412121139036957254768378731563254018498464758341133287136629884057994130703616289366003521404998460456099145408145864196924366739918664825288963248965620677434347812011719412811876943833045617439105303510219861795001837612545083742013416456158256242986918523153332615526880511560945985003106054344910228261109973991708310282457466258552132323085523794679623396043109557635891080053741335225107622680318190317929377353603850046535199376841091740402630175588993954294874611264772498871557087430141532949915597366519621333613492507904627533857471278050005642845214130387228795016658033207157580566411135158839575089213064736891432529955148306560420081006669198852302147152342343260619311621691913811179371373685757420554597194327009787990944603710638938751308417601926275438004905366229908990368231105514623579527387668309227626450249141241710950235733137299959054244536047653821332409780592053857565142714107080465996662480763308964604666681763240766710827529971623646778660422926701246171312262526375731274882529169291500700941688187555660529558693660916703529456020389873486771628638982236838543935830984060442464308156950333902090645710624550886437441741649285509508340964271762503577345455035546161366098299039741488486588319599022316560602200755381256619202658132411391714014262752410328781151231030045089863957392139989831955943852870457475891033374360470233053214025772153371149485694633486377880443900130882527152631747900646317905203522701217180537277379635811364098960927218658905862392457434282926200445526055746744696032365739259848398826495157226851407608764063847887866739097992702107046130591207150221734249644578910198277916739616447405654580510354698427168806772029185892476453128646944438448646788204824324024857997379207523189761165339089363613865532918821386729229264026750842109014320016134823426330553433558817894814051469060224917138746556245699698200477855338952600477001202679541062975345568043686713428010634323619298751247211168048152453581083796343593528299662702902735147384224326728653230791771251252518376198882268359824377524172150397860207722498219515356800509613947123926739899547009783867819187594766395124128502496753047400987696921849039766318817337968489415238602732507237288435736675256300556376389583383488112658279772497298854550928654864599050343896224187247734691288443038716895764561182233183363129342126189131069652750538030938597178774675726654430759374185110897000553872264127054526776610806513819087876225514790173193232575842093974766548123453726467737822636337394942828484117009791799615834341328970452203488167490480762064794676302643227126923709913478699112628455920020599523877054472625971873881331896994048259565539340482449447078997230110689244023744242215854206036047779743602908580714814424010738660887246535680837627295904051476756154587864893418555276827229993056353587786812363027285359663025585067997577594018375797144697486431209372554343749216348065679989146455638698003139953205589845616959165211443143689058263613802176199638699460867459158219957405892913611900201520662082148531360869274076323003982779108562524583446324207583383472278953476980433122900859074387245081650389461943620598784229195620791140396116573920514856268447577172816105122521446242280151074392535403019032262476531484843128299310560530129458593626340249961115345748120007900166460189545116686491610914795229713129609232976671691563367002432770689742573985919282216674013371832340974091421998059345493399248947897574937716224109039425933562740584187242081566194988510282649332564956158716550348628178240010511000270674199003600056512733936533331317875275712250253179173987949282942950796055283567678474178379446416770066748154503621247048985830531374148648194443149842005019039120155898301998788369946682526015716237764723981108626527342531679644409433717952310976168756560189058674920596062332878645154122240434341960461564336831188606492547918415457876382647207901712547380968305328915040980117572786816040833108503796066850495207911786937807158269357374410693238578276245077421907450155195207974690015953036233146585564116222516308523027541575864679124842711785480565830832372407929762295408720385358471558363921760160714014768423303917073033350961483293506511663811517569280405833978347930653077112075774943521851337846531794616268838249382162125274416604232153814798487933866622594013626033557459559978733490080259725556786224553799779362139128252093593224091239923741044495064342009645134989953221400413057573346986610597228897012272680204335968039456906980395399998611637910425339413322320882599508333188490101928693569133371624873728173582604315764881886613534367919438896695992079456836428331318971395134087048740156603528038674343754578019157244515870801563962131161645262033238033413414710821728341250744531688583852419999840707936985941984292728332591022088076930443161363946873808458846412086569415304780381374249337970511764203632699046855828949461566487050502930376613357974005922608892697290362708682959475258039994562955595584824365344559637504083738243290604754553565583281773444729700383088389855326960167239565476275004020091822371734208109159075632208129270500524061886833000907218706942372561180969275951078161980174114615562186327106067015203318015477654602459670569805404588586377587549689803316240525527785883829702717834773869222475076668731416762598146292287075421653346861887478528049310521112153875301977424186315580588015256357883834124669366339326147833958005722530378127315045187247798578328645144907113875385035230869810399917879487647225331670173735169559889604094420114977843011216443243607455411846932595384090050688307504870205741126899601757893724900072745360046357727964212882510444747050412438193638301789635798302878617020769882518411624124299654029706801118268866085525656555939974185434815637293729853166247860839584914155635354437521163912456447081888947505711345973051285580917022054099756934303737986595961299254894000166105168552885937349390897253510612690450699154568086080629959511438554924513655932941688071343360420636431728463028114350268511926244851777826547034993438228065971038352209997876565095716571947683272249541558519686478352363399272538556255046272747589493927366060703230870227494480813597266011042576289602401074390711477121944460703451485674870531042234083330327993501141927691369033786756002748232800400762940028963169064481202325010516969836383128060180937548209055101026458263447121592204050007036350123323241376043668007905164938963169698756229079080313094515765458432917191287197560962495671708429991777477545341964925628391499802591661568530212358826571982466968436997138829727582903797626834830591250703733110246079754477890535041616277929936133321833678896090728532274788235632428740711710740751965359198928459466518313691206850548564684216130363286685827891288347866953354775788449374736027533064163757112578269784132705965299292170333582547448592867863278368517191410946307312349375209213894875833670043589233111843232212150814323737673481767297091163909997757132239211483104123844287339336488103513789538235932614236216586198972542721710952944166278914475988301728187131983785678863796569636761237239925520335989390412905715972202177072787692322928819467328851394801924530402095290531697214816653339751204144160196946808933138016568040554828780301064800181953322818751625817375708750907348470544242426315085766942639268261262533752525433434682191548817702820998527449165190604638804006652125432641129566613123538711623034407020711934737201397844805754561069417285464669616296740124480606453310667008413827706743495156498358893331087362775418397923575314927686742659796581072763332982043044481098978012187906604094493488552648116630701124613216295753259498900649649352790983880349078952291405117365996047665521500339799961997613909622341854693641555331880984016674256955664137688795421703274528137516252789288469895583662824518964205197473482261275225256970486723485074034488918974756976021606260032155683713183149323878458382740143624500483343771742586010616199835416309086444196238989609122970944115867223655513566340186938853773404962604693027127766652169508467105990007749131837367608363119252227277766042196727023783468735599062743725121758927161214298373264465039345970793552990403263540129427351374337104370119762608999737533720962066353465314695109866469300373437224135866310732711107740321670802662233506981098187948601696053548160615273221660569071613576947915585552101106585539763492640584842335508203509588844282204897945268194515906886672821457684329583065020686182268638348992701970600105270195481857000047422156366573467382016202735837816810313794827179945185827204967066061666900261216145683747291190561637571680391763653258950382318991272349326375601158347593735301407085978333125767050179113761060402795627322603628421606568261259940853224101119048186252436490286278372851233689136887372968258113299732996755430774529951612515482815594462697764238027435400406931157253361524774316718479467434564268876158744153933530174693609574099856487703248251424256849424112309754008394068147382648799564805740382240089193631285773516600732709874626791766758572759126088468624964145181434828116284704294505962825909374840136028202709328729554782126340922580687978855368111367210925534244974556327921546864274710177257876077479113995662816255182151234718522154891880561363613705668438452958075396953240157676665035219972504744257455208392802052921880341714474009958413871238935730233118503073339007219208324330867835499348517671747996560210269467092919148080148298081471940792331144484686460885176042622546685575667059757314783432109973582899219491521691035981175612856642562454037332827029059065733461605297257279947390047985731045615389869492859110930365633480301549008350306054670234865646586906413590789673441086627096365261226216383980789707917942033726236320145911854048568081673993128935025507789085510049505953699132726068008454367046483568110265744741816559100077868191673055252316986164343927914646150959771554306098350256593406889015242568661146759101928620663984020447318754514205605055273201607185170098513344486429811511558304319405446009621261874362761139966952441806317585803762630174384257763055795177432865418271073964444560824348801106488375909389642941040253771277488525919115253866880423086370478930600758278451058429237839099079054106186900702153226356967892817871346639230296651782277758836927979291212524977190529147008275382629938524668446808575582336331944864368834202792405431399577314957766480133866667734249110158950036293364881666893355586765474202699588914838320408116915596617237727338331392341416317633694942316373894730732377478878825454745316853535793099838273948051635343803607471264819902477157876797939956612718344668664979002607819927503054754284301179882285704059230369793346583284001853190116997271322677498575287342272247197879199091548815301703061006206473807601969804842195650070089463512136386133194178937247664490159100528245663638073668047050640860012528630076602695346918048561076415015166531349374674161498187427174568709358351250424058431340904772911019565961778333497911137835313799756089059511641783813022984696242434719776507881560916567086766814534674831695780360075803846765228412460469708157518304480860015137429074121482552481140414509314249748947868226276170353244210415890690303952721715199523917185894052705792604290049289686980940492057721127727230724555124361287088640109878343601248481941852920713197128412936014373042607948877148837340442319410476909737075335558773007412913573204823723233100453690223067685807894338589608216053125623235141793215561099333162239773680047034413909048176261202665638697955411448067363370848656150619104129500836294121659936446001260599266685092421194680446418513359428637609468496767824703639224743800852431499099209325146684060484628372873522082015223129252147903338935256896989178857476198374978987224727187225812721517825754858743798426426516756833232908643739579100146780996580081498557228664845084548564670981025802806958980568130193009003539608742412244771759272287380798933797390115307436320302527220186198030081319351351723430054077385910386434950850203268999968376512789627685018164293736792754846286857788647111523661948298474274726949567094413858281831489780306664934159992579767154170008045642683935231470109882217871511301856285499506903917391248383000348103700866975930118980600334669147266888184613166483402198080404738849885297026886317007747992483717967721816266891775524986244973760619481281083312860650288732174394385961210912654551260845159959514022720395216614699169964892934857059156614442351385598472595984936847825187068042379076410139780484854381417449861506693705718699782063999996845212611668309335674020804680372766805469946799677560747659544004548056060764469918283482285744479410042235917803045306825590265020957419194719508138221393792718048209118153077152300183090993706080734340915607827634464258762344920845464156432474341319818102825599207778225238142390097067330407377030030474052335097310565339045512413510374060052540399360895931780510806859982938769229592961375135825194116871071956717263803515710908483333477302173211439944855653777086338035891808030541462403699178879807224761222738865641773851236656342881054300724481209781572544560724857204966014010113500666065656110423732681933711706353340194984548563835336386195589001230290371137167294024022355839359165628820268157463868389269068662649179236661701014661747519477377756859270601574620550895296295076451365974654009151423376159245787116090532763219373978761334501879839345908621884696072515925076033652265130172020698419264242529945260153822944793326363202102359848277824645079142263067022030335842683142275043920525704601363466562373366759914979821380388389466485948038769730196578693788350171313002207462964109409806974055188769568559478259350071025812983928039014389816235624501366239086957365552159994482563372412336400084883921059501335799820800550457551495535964712570827933500460638580128300151584473898594462053284778900314949263209050190600774389553323819384758106635502468814376681249668835154167941691930123703852222443856299211641807320688592931450400659106869754913993881700863037740074232208170129613216248463928849698674856503036013288483323743611413522281084159173696640732603908749685202392109653074108368352143523757615724939844891253112923422580595476413502479678580648591627385821677416518630440976200399222594040082717281298109816529037735515019294076092365498868325599778155115695545229835971907000910906703532163261880148713772146569145106215047827992545805287226714196403121997367601730547985346305148749815011321167109445237787091191748034694045281985555094012530959990797041189933380966768851403634031469498428726671933079607171518981925411528911877959824469496224773287611027121688719727637800430921111598201248460800934554107587997501104583500501085849372859131961246012101271388584441826189569482215694490873144137271154142384261497507793277457744771195925865912695140151989083740030625202288663307171001538626631050813656796581613344897687799361828556553899845356814957960188698858243445244057581872259622551717431173532002432556435532961844885255702350395703170653093679254208522978484995289757660132347760068953537332633114278858564519964946895612751020035336240103691120914122782137206558895130537030331727250835816714738126220968713983849265905676990922416924415251409147197775880493628415175738424496009599811038602127449087888082437186590447991731948546911746933996396449057908854711172084445517410061471970778117120318553021432585209891842200062398404901199706322667280163319148010860514900928445330154577528459417745772770523537762386232182154349589980230558763786304722742634798309866518722229496339249437435627207485575958011582734600445915940305571030405087279953411776449437003417347527729716741598176662774335971569002408313173145977989316106771570227838321031867818947610197519145397501870955410536844713781665290144014877270143071683378139863047280628106703787043340901179899704315811685267899648486778436267467750881676574659365605935785118149933915735317510200987870377382953236769305080350201501357473356228721019983947572582456987258863190166708644682013808773298100595962764236196437128623475162951641051920954504362040504501883640444181056158117797439481690279319258718611807654699704602034374308451545384892563918748136863041725906814588234034841835537820040838294562453280107000395241209505816333889586453827486287704025237502441885928552184328776338834537977458954347523889128416040829624089183097212118793679162417548491708941649993615913872526811878101779147204103068575194116403120434214382365500787890157066954913489294677995384749218791886918832367155007336604996638037086525711263149547807466911681215857613659030771373528181040672183774408941836245855898809526479680688688091980784312440541989626610840864275689364199792486211647378072639737146489204250218332812129739262870580065528964143846009403672245717696330512200167164860469465281263612444183109857150605645436810205957471411406774046117711083666630004082001890816134057915319167828397035687322443533207891216812295636104827736569865965798159228879828030009774377258054328294737600578500016852252538160775060399792968376218194809673193159313595440503899959471636130287633812562262025277202698929746799899865026847817399092313252310094128309603649431377517000333554400742548770566758493429917250506825570762927307104706824730019690710784825290420338805165477318339162547867697916953905206650472761816260370541972139730568077511263460319158226832380410184004770439562873573757146047392474245110986922066101308055488201378118034302460674661628949768446807046830652627634325821354200412424834981471467399352148200010269980253352670242141103710579970388478024161738140665237027371665553832091415648336975165012477926825143630856918833999396331658419279657665122934863470141422922807807392346798880531156797392182626784701356764044426541640232662899752750339411827697147344728504441901556078691797827658551976737804386455055303605215609575711648112574891918271750075971197695367936562050952155017351250613419749764158651461883655583713021194256180631998216812285775850284153068694682519818486462106397430281122976121288413643365883979438794127949028552989482098227712111791805675693357406126807056690256839842034187318184777538399522164328703084058188187673171072789481288700216074225442200165879073371456855398373645161945861534582781033624845134578530494554809584084247596751740630340247111207172110033198496975978355246258157953200583313910266413077112487576829757953750902219119258435952003013426223245169859701101988529969067589360094574223005807241402818774672299721587693881724921619078766497839394857078581956609090282805951771753624616018336113019740652493836762069959004381647083293392862208502668708898530350555689824553048641367669251679037673715483440951100657044903966565753643556939699566841207156838497949320715065574796738290699048047774576730272521874507544935403758649064457857033460364542074227036068554282444554443321680225603606845628701608939789952274205791976055706929693560584554039426433965253683039208246284862771609512789096000557844836007764302527909998475563206644563519387416123829690694370341433191561974444720693748924789250090697201904232280067269616719772805071320846547030110695215503113213745775815106017606377979640187382461685488019904090312726362522907783786120537918039237233912759823966059275612473966725499930740862484495092321302454040030558351423680952236070274570408350292755466968393984802184936491717886293792540455519895115140054998070188642736051103086408734126367034888745107387253658213410802280418021561091622506484627018469499501372745072324717065095092709557307720459571266604467465374277061822301936380391167655662687276868630687210024034441654603836723517826677870725230034581992564457967241485351055049832562190218479824570624208285903380660732068286092033287400093484465226879347726046348652785802112095677362039978334084698535471843424460646448429083285481402584932570528036227180329729657689740735620364035135421408531117844742511052753663421430414841205209541742735238987449683319267672757193941575984087676105276252565117561583773389243613253780152245724670667294965825314461305798279901762218137666706732119970906385905973977113555557833528776031235849955871285565892139079835575455610981582443678705992546407283588157920125107169631916532902835077032948513143924581693077558865274102055044821790023970265413496484152025981196134861431317464674446888992559023587697121388793276696884409116022296018816974851426596615688010777620154084454019647724606189700129358670079698861164319557881680207258668942014449364149937318403832289587208675320115143023733106945115401600143976445925726335112139130441098866714795520781348485243052433048235243022481384424253408122572744285959473568782505952347875545004717338514658967792751995630315738968213873082988543702558450824930474002755554610871663518798366561744260278048642531270996893322633591052511475830345799831170402750592551256839611157821737732360125938540886562049299424255661604933638535966670593623141298398765212029587713381533860229149545304116531083650552721414438158812980106648696188977861055352051573164521959767173696220702188948126148476614853972736752119244097257664684859818315830749807285877422576073226130228072326650530549363322500472032526880448355743041202024561274803650370719294990459378344040044264132300606123874708938886510889381656022093899298698856459506504440025478897003211427742313400499054041378807236942106752248112187546577004594069508687755028452325390445499514646118103916713963185116548048003696070889982344972036045695414895785490784740871021376172491946217904952849671687219204243857774650046266738831782422832168294697305087067873572986615048220231505218578300592385150675333539562959082605834522439453419941893674447764542626225952271532904381157262628427458796820967261423720627750768264098039797364244183622954794594932098494256995096059273994149245240268662019498303482304184328471306157659446364237557594343349636393092052171584616959819114286271383162122142669451289785128517766957863971951431284138123529011769146160398760662766092932052969781840933669576230514899816695109432994806724302043148957700926304011491236085203049373580751139620240084038975245017277588366347889257141578271629445926307623472908184592214623948621783167894135229224438618263648575584894685919229948065517488887705746941674164575945493737542083805243548858770612367313084329959175412911273429378200652949496300424227525402041567029033947354331931732679600275383090937893959651510105907748059114552602462363889960344492169191710457173552053500247310536061581912931246867838354316320616863710774614405870656381298209429307906193245832524585858141741735372195227294639955059663192608483991283980050871931640109563941744687383829371131599477719670613738255436736746302037803915830897733698435030924357372064320222415681599105358977645471503960410237645095354490573985665265275104122174908859866554016449841537913894764388134815784484251625568686908808069300320606095633208495048922523251673350858978177525962397241560663621034410208533412304155486340848166890778890245880665155100831261383634185806328339862663383715825174925444358317292338221029720870559303725846481920650546958264841991273145600489265344158522549138162077921924808847325298167991890697046736253475106605479101372758638937249280870148524282165644799318492200372025123742251567665861347061828576062131115453902929283680777204879825734140281649588966380641388860763802975101738510775334493402588179741539416649452440481983710309072833450635284617953643211163223360579596019026493573582627697924251505521614548250192427170449594118733021218196753010503607856864427822317806807123469598146084992532040903555864614983508882994207634402194601574671973519961398288935690640019947298254591218787983698400517174468824561916190310564329505496288319664413629794366610642662788069954630389648901141209851709273674846839406078016926649407629459977406611064387399542093814594372330785265293276361693031632230649233425947772109569644798776862643232085261073973512963303343979278987460814164044913207386086009049718384120415473961410179056542450286591927131443106547160204744167043688722588430047373681671953918333026129449619677363411317368202305454629196819673481302494505153806331217115390148784947447123376112178505095458352474581103097279679898271361394947678626116024583762866196246399404409363950733277009701475316241983416636426203729260799346731065740255424820109074852897323370920416512026308255050529525268086022915416209946612306378723129592990522811913607559287678597875803526967052939491355092927383241951687534342186403462160112804822663005051187081272748675931733626055944511051654279232931163047019332996956679310358277483090582405412606897109526087836934939156236785119883996823736566086672429705797568018898145963362724211439682740913826367311745639510495620947919769453643618928868666022676863875088185296780627655698370856770356923188295033640473678763671071354039312777921446195316129026073003222706856648896039495797143142138712232751872486717637964995213491256334054096181948156813070053037691888050868653800118188745641129096246958009028509340755397683792892250081071366891693593961134031301828466696130748461140980833095864949350285528270584997513354178424398845483908734892014010618664620084959415797239452369018061385564579105991474839535882426230310964624689597288680547782183661023169687017587916112657785702131832147489998271740320785475356052494769937110107903340275556737272427842460366160715086431018181306873623911683522959458703100199461264653025170429539943716023717951079165165617988131993666927661815944112657973875512480256682115162640142682503696585940666944797394762292541968844785820819553323129082115768248323165551445569512119545838932984519189289286073550915479870086540485503281970136512810591722226385482279874578523455616913885938368126878195151230373515170116929534101440292771114924768569729221438727016831715314660260568874489970264865699137418694375702338776590487189369169073504964208539129652584786879057649744857642755362485496506406107444820994026804504221818862678725095513504381754879500452057519728564827606561677684649040009297294773063237601093296713469513317912169188909452973931175603088558563080502274900412416526351794960769366429679201107590379122404062595993657002588119360623654110199084629931849421502253647426970130780004102774952290607029491836614066917130320679405412719700510285121754167038899948618627760663978810097451695142277886508434418635363123823473185387236171698167021321228677701084484115922900075158721425460286651056708179778723666518477362882744494221130733210743696425557708309496791231431769127733061143525245222599021419168189213556617513508568229284979057740917131935666011151096154651131293682053826831868912657226758888101853810275202446957488561608758092040215915083636140050231180172024905477554966993575399399411815100007825722206416090083375594723636551497093058184566092995879335195200923582594534593693684626406879232546342059903792383466422243064860011517409842570011509367482869526525133225816551179694697327609074799587709491663590013888793519701113133901624091452140069130879582001543846037285892013717693428638255997245972243385058505741171932952398540868770823304315238349783079797025261861085003100405515300332527701457101958380312925018945338729209149530179163104538423184281214648702925671830806580947783494980686559705603317117617830822989474186718603355813523589500868907427829407343242160355835562491592293492349895910850563120385024021487457337881566922246343851780127501163335770932076142938117073948985211149931929735391616580401510980399432949611799105990538776911208719896696535639534433237098181000577787999957190157115650697033194744581280720896200004255789787139857321608685771770380199675177588688967887077401361831468943133764057140496013028321904438656575145161077452547503527320507319006943320395025955385949308033141465357124182210934029259106945645491831765102002712994927198667532787492127126500000144363498602333126697834686690247036885401054620978115548218985371567410635695706064338740712663494182171334719871147504616221693739287270833991312093163286076313005813887747563020006329688403256863410009853549691070493448486980676572952425535266549340679018877373113391130337421007543577820805349291975780986712558696953799382873725397952382470584624577534796049371420083560580031116901099823186523320053099359847945261771475851674329720499956581707382484137620076067040450646856389503767527842068049586310818141373108950917672441900130326625569392263016266686511374092003578809177823638066256627428534335796505572939243724796037206892866844701209260490262992126904580385874772003336376972233475579053584157992143189075764242735347660916247522682219192734877156864095392799596720472849627193475281297130402700153688550270846267117885760935355970807068501730828650384859132629031439763458272756940602851497378467940444501158465216714107305024168123762043466945573433511308591710712626303744193927009374167495135120741901026980535922908417034666518630799286240380631642963140696067311511148713739963966803513911867630774322131954282160347664518322721215859610329243174937405947328854100764758118105158871021848541532892873871211981871945553228661176732932011970604842608327874872197727676632568703175195038902152159179107496203323053101718822303837962502006204355085726309333699973011234623543889058889586638231376706928564862487310433506089543173161350524158888952977634333973946100555773436127559991756194551196944449790136865128951306464192029667481946239969885869960971104686313357288073669514713493603073364820630212089301231668332591702658105636824777028568697276944338492126078639178967934774438241895923931762457731163188905120632783779119796319545316733426991816437217163739191565511674189442735790993769318309256982692429167238792021167386887932622275365965296241946095137640054314662762538866174515303844056214517397803199040070524142050628860006136339059612701357957840312552340581112398480483817545954062918370005953048818755767974085377649460858525434726161159072077839820306036697855907130909004367546392886596699273047694335594135608822764177740358273876463084820999057521537118152822897586524127214799337807088128532608336795937013195517361846110516530841358127560009968797488709254744276309697689358764002628339931604028196796336663545484202344284031512971373044326830096221925989150387665847223134704300136950671360781162546359592645809795366067947836986476564212273524825210042741403715091743354757597584212391156939976209604099906773748140482407008768735040374409008684769141639647368155203451814522660012054870341802651542184642507002235360162854069471030649640888858305781534154335074042752348036575720842798092347726655303371295043600380565383460818571131384012027483701731517917849374143805352183835022167108092848370854343570323293384818360672328103299001102394296281470208006973779858637911299004193362742458015378538318344439781740536031051455464106137745034285314827347700776332294903453681272330214606205030111706831338222259257197096570554687517715439852287539309468894579073583777413697995840461949371019026782190351994550691904142573631969996211251201045425362447520010153873539708176217311807354393676192632375885929038915845163327583339099767793587547564797416942767815536960777708928187043533501665985299414008595009495080814146854810835969134004247238542796123561828576176546713170900793957555125556776518762994934808186033136630659818856893462555303194561542780315130493804335301177955020437438925068998654710574039474921027859905312087409110206794112091812523800977076185693134874342251703638548906561319855341453763467919555461111270854939609713279153003757760473719009415799507310252422977602410743690877941422757674391390072863171806856846091720867899776344366773096871204020621636660145162359899384309689559065226101117354957267062773005487851332434341478907910804527807464171449741219783175625981969442035731587812737882423507610489405719969918290226149739370276555543527643426690709124842014208542329165004408151409455305706702550952347806327518290883202025538285876858744790466747866960975494251016658231009856765125280167612984717994397294665004281185685608248837819154987145952771823908532698222431834803031812650560412818785992701179710494509235355519967657626541806329204502188450564842905724310053124984069033992278268393998066620214720832989288567264050441219620055706471613746227899679760115818612366085952638412035794657858856778729061878610908688118546156496944440164852444726132944394275846953755951517101423307641926404464862918565764093417030798624466945490742648720867475075590613200037496703165283309562815092861426036697604857071816376035364163649978381705272041363206795358343182360633009877262943948558406614505237471106591791293265051302069807185441131805757292067088068059988045785821904766607319723792136738707140966262246837306147539789605456848302042986197727885650424566136319320001017437120482506519494584015656215890895902675613717352514976438921448722046844404085082560963928497475455865508745292074914097899886555742632674460060493588299743793421393364759295839872032781219223959586752151090874278986828185087202112961193282308615754685767575290237672281181869176899890917985197265404447516639706530370771283001452246813630939253960931103919115622074944644551122801607287806244181266966775533238008135546460502497498850417204602600780352989150711291295985310002895651080128273846847349717836229290039307634778772651032683333161989119607134103986090658751270566320213756871845790553255237719761002597940864798670145174527890571645806212885249576506737114600982663596237958122092679378200637527941824038368080335216501497641329426140077491365428176676739348141662734529158021891636501059153250582799505363888461969098182988132025956635400312823854473446265577889826578834180021097474670696127678894045623563309305688331295464486048084322537102823868731341426676852786024955345664565708448715025313507307726431891137949335360751338517667898832929819409948365441473961175122233072340976546386739763316880444810582003691737399597892918467837692490050971358492769224056394015634165979012951160243533800038097344089894267488122046126916262496991609116507508521612782342928249684334905175612864023888086129815781422323488088512106412957170617017332015235748920435251061997625403419535577822007334740733558635555079126497118441004856179159521928209502896895241905899812385342605175907024808841538550056316988293035691283691120389886469053830026448080655647693786993848955933277994243955469122825181344511494216859859531088443574867205737309295824215849923074929818474374639908211332532312980191797578331660935830620208194094058206721583682605120966558225612222425368963996268107319496496521404954366191480694450595880249960933334531979705921116285567622722270649742587399271847079355763978997515858875171503805519842008292556095451484732774259977711255400340655800715521112676109605660804528096887454466070701389574338063241600951228363556866821296866814505218297865016197535692755264758502678163291252469400852817473472069754392380730965544939053850614759929156716738717579615596645102017359886591881424602563861726098049503194671919739812068377568711516775133518781093256445527234787848673977368863796702397746967722357983158409165562004931339403517028645280638030316782030255556929076325609435093599132355945836237714040941829122456859784504904002995696821451157320232727102830136413701147855806789066888483032642967726621512875065791946499073602491256585929299507140412829406757949777095776194245143073631809648678687988165448976074807798865208133694056253138785387924318680431619008727776217980658221075452963951803819869941001194775942090629718768350824990917607991954581586575379826864843778679385707380452752078827858256894330646859458318734811781491066043417512819246124000683357556509083864558908138762091032446389712777291509982928732700220831774043151602365414776851514642767759609729503975396856626801394112857238050933484147632798274595284157555239875686885660487150551628573313132713194553321347114690351306842595968710608579118712923447513357549810230759906191589041015928998258117768829048294038967550454290104875904631716292761011441438282012716399522046417094617853527133615482028814205716423591270625696191916520647445081758286593759979100724236711901738973040064268656372696119743830334776947058101133031942732701067121420439289699533982756633654670238469968114881844823783617139248967578367186979164674442138677149971098652794103363977176497139022737466066103091693009258992259665376838039020863055814813738705638688761060439624231584618335303750778416554581044438881457679450878325182479262219379754389606949551102307890550065717574368600213006819064082141740608872696629200740555851941505821927318713844156443317612836536009906831310872675668108549417465528566381298023953108990524126833663379312507382703371369796300530440774635890930118940560197424776922342338397240915495536324187440763400047384122623135106807909179723633147849930559908921017492029299206064151901994099932335191649801711348398295115038191276344563537568603375187596213819762837761766875136291420921226850652564499954644642740768174827771518376497978237704912385332479284588511074353780240220578843619792580264940349750783202363589686934711897954923703622892681134354451441556310652971823996679312701407753986110415626579826291446612189579398705861030871718652794920635536618927574193874436604187066978122121844465405804267123801092207353722208156332649635233335150967517625475174066772619628522466513837207378757567958866436740040687450556096934960668215916354504640229862916410058116629032415962641211209127358409460729666199734222611854925446143303574663864730071685503887479049653300982912484549624395554708648617865135500837830511025590842109927158120671897404279196488686949061701429427977675999645068315827029075237349822587639347059499196763277570851559529643444583125146476578877266907590039697653575114244561944681598105540768713327667237419630721495823107439643474941772815431567436659134047631796142811471661195020352588687224739169075122635090266685295753268728255071313490130827307816142933196723290539454796550533573113447948923257539229246921624703105347407149200120674764987697331758006214721636493135891765300968920493198883144182458272769603992414949667276572170138109100247132468911586205640637550224649758165173822432111118014399449157506423713801969430049906276515881855703835389013976582804783681156110579842138145768702973759524131645955696919588520701193416489085580610796501237906934473943007422019989792486051688492640635788979153628703318069584948906933858602536228391125923817580341322722723454258805803672369483705177903999364235192297946296466385542601479243491372329531211887483945713991238347322924848842155568253223236057986635753009387500431862676145149947995786028027408004497346049645500833427463022408969823407396843789131221061696213236230323237824629343650920831380424167028802097378210004683744085638692176111074196018438380605003682886983759727619718685376148446367311150295994060081403754936135839794785317010665377378792851654546729139239612902478714476195071347208670555732535063568340667044526540663351549603470896198485844287737423522443960198393829802780839850968451128814494028993381162674825871791914648699709238847496600473151393951070993604997955212704155509916257199623482930384396975889109136191101059880684015748947954060598353234098742471921027907738625820241577783047550525799543530902323309025320029778061827047905263465483004034587375172826645872170200661001949120791173095193392160514171207973249404499139527166835656414054791076521658721975396441169080005284488338342627693389149926534140492748332921970853335093207189400748980231007694875925320252242685604705698459352425106311447156786180038759766196327477602028405395989570770633600107045384329810052032943003786121802339176301786340408326777940898727217005091257867220230261387550984254068168650960642595697337265969676400968654369823945038193946227113481582948739972061845920250105421894619857491751839704580440299189731813855596836216527162049930581393507030442350738182865060797558627454188388106813524105878148542270943212075729812448739738466924179776412451393564921918114171093324102683741494222606218752831830131109080078973278152970688533186029259467788156200464212753663307551833973114891460210108848802713190214362540012039889935152367131621935401222849299082307147882730812272650505862743729362134101516774878618126555416035857970936478121720345052449926964449740514041081518148786201075755482007952987644560870768665698669589252373689154782382046576200023531895436896448066987687636630102746544299214971321708426697670079155582274815285072950036695832612103322792000281861141199611646811470579202084728345897627273122782701914073332211121629319179485955725989695379623691881069217662621604443019519550109094389971869843552402888727249991070269604183250218346158426818426284742780461788070409141155907999638104479348994959896074629501963691568090496912381663786433984182279842334941030171456363465906521987594570900346818237484338619770663732192830784775835666799635857595011151350451570042151054261789622255672339207957777609758198885637196103206235625820588517763275187657062529811715750630091446961944214712292177937030657635040212595306692067327744640282130514951046002806230597075077728153801421057666953597615478507194087099266762125732529489440310589870293098015411119330127938675423218398500152028115499002947620159434124380085563947753051521374192032340423899868210349773390426977833164364777541057970152204008367314347292298552328950092704180868577386298329614977149534299828379509309474806170574151330261417519075588994352493954381807074383570470183051361067837153778270155290055184955878494741528275263804805923370440160947193591722856317693861339269056105779744953764375942259761744171835197539881224848075796372410748711193987768105419631041528326832678514675394620540669730212871960872278564714918330938222873746062549860733475332998888003013424168480982188984185728036396056285292733747921480584771593942322122499968382096330526208291480013658699059563637700289031175476565667181297816370253163054558745628559092598586974370194536431624024764454253571938147325927993437085392720158507512537433270671672036869520588380038587826979936402439924022830323425605209958345190958954548356268111714019551423789579381491560544289752310694259844565202621263426636868537550339778455951039359524530991552701591952564466501205209427917975799372858835373021415848934688879137529133891949905723213552567959448997209398652211272022708579518941654529917694552353719491020605398490579496560726340166774341175744250719247664319430372144597558737813449757205229048849607428170915984262434265043591305107665742085220472172521324428244250110908829239491389265240924905386754303054896261626232822462089435409990528231858323967144646265405851230818098663665372161916372902169135272505112248854869237781111376307451995235265720574910455422358128951350692699545688997521916549313886907073466415605708882229767558135777594806716353320087478308209309915526684670211839333333535805987715199310429864133637104624155820027269973947028028272346299278006968761464246076094373097704276796092984627306626656739330879193526780604978243018934673789180550558523111277507988081593188077323281039612075229008692015778683037216190974396920486115211532307691140264746080174246844111302183247699357350962578253527888657876922444915766686782398510946990598557725693179053392598626865180266028234443982495990167105979615040742116733877163310065814453778622467815928059278745064874654108080868661324734007101874109960285319229363773794505126958049810815882168675324886533274366314778933179765003096614467703378363600838835750253852367809636597928739295164027796367096639105074863481361101036072118357212776439519750632119158941349356847932739857592184954533782704564464082398726751077072979051452643006984050098936405729884490131015311270245687067179454516791001061500983872126928388865700434165489115736196338113146911734437148622104805253620317326405851767649610432033591209414684503888248869554751268831743010024529757834553253323640834704757848860714649371092117457374800181251451765752751820686315716975710247276678792260965931630170711780098177176557958329526471367817177150982923110724495386564416722050269382791594960840083951124180968620392337026813121921137232932838423226667342954629636273703052697425622705703725206614985125100691187168646690197995353663951616308480247777946266251164809762400363119782228049184380947128056832381410080852102541124945049137146809057667380504740661862023835930095749301423199959849988752151179738800984286764619934673027341523743412092466019172957446150196068721579331704479192143700145845688799371224806932200116031726060061177472354369176607402018539811836751860119896235322344020739627508102172197195705875551631236605181065804477803652551100785515981260938696740645191299205684057658675402694603786895133291857368578654086869441451348963165955641012763733345926019118717970574701188186306260395993561340981728078299040859466538540099235225061907693865036288692347700319282853624211110029927242275901649283392181638819528660779198619535508877375750648821995447003326151876179346457098480683578544237140889882782526458499627167067589991755569907467723778024545514243593655118927484352736483744468997999120535918554988173255460498099972466288012314794233142040589063620721929664170111531222755267154810849515371143218310449134200750042052514973735430132699279701382366106965708490789616502121776599196432368256862070549188674639449621615394422463888626023649911218086539213052346901696078008202044730419938873660266171354056097501751362623383747444905835750598706106300183422480694136326054290297689946412094337899834308189128644186363194530849746033523648836369733040305404063333274583821904592072855909839510207561560064130464618053138557586556079664888830897925069342256191985888468994475065575333657896174203954807633670644032895145695340475872399559881748640426843762840597826859910381712436867250620580433743755014072678279107387657335647146807753003652369154193228370792208630287910198517329681127978731835093276280019314025686480343953436447994279852605691089369150870935282382131687616984613987978719052030470254968487762190765154082574205504561294219617248829510335779832904114891896160860302180950661641418213022528638852634358236166019072451216583896051968730951371192506997635031350096931377916864660389281257822779574681894629645300470938234089074682239454528084310674172096541050280254730688516242316072481206160303661370578118208908633296271343950073641503880678664665937204102222185883755329108445883001468559959863493283568097273970317822841891758115747241247616436811899749104662286427927997311742684666539337653803242565929808841139885254854339028713225142854115165478281707758522947876661808033074536878885352120195213854463980669743029402676151482649920891358792034045295092913390707252528057255676553403988146307590576700139062611804134891273402727845107391804579187082667372493842903283039253915614378760783468532003097417798401636421208834588260744808475399117239597383336415781741921451254188620931431625553720109462964437296978266736937875913219655677968881207764282029152433469842544460410081624756887046641687630907967213907858810157632180337428795280878528358153662236035977525440735691570795621662922781431578283041285356348176872095471399259544749449978781092970229050041630469104994946148849165832878757048592827456895057354689886319646977150942950649118077380532812918453480529056609814824888309352743846369800842263890643328552780017100734955248777226021459245644356059170614860109124245626951644545228356956020449128350848068275666160830879321643515151811365585659785689946248960473400416435647453193767549509661620936972899048572187164156575295612424981995480963881923026581343106658497843201720749700536278191890273365320604112831313822702159765878228174850372053735243624351759772525708889291230535288657571015578991485786743630241634230364324693693464946959812116714981766624746316371595678533918811730788892593858626312135498650202945884506313905038100554227533695863054282533128763389158367750880593890106756318872053283460352625192670228025820067109661492804532128687520811864655843345303135900667103494879502307563277029382042836566012861766124391196800700083233861462360561856109383286194450111397845574593177702226307595491665059031546002610180440032942762388865464593008540497075711142505684777507396668071545839948949571972851931057240400587813907651074523896406197347657992506874789378877864793666992876296775669535729181488512701740111398969322915273868694481028179806054307591944309359867661562781273716577521883170759542991547199066227556799552830224328409785056332303650105093292364011426867350973284025784623284830003987572467632589634251471179327819653980632278547794203719065915252087466862999949667058027205696106153062970808459835395053423760514840953556367063683845056487417501287738059256727636952987254942109254014722248367696817124498388893281964647536217820208091030679985083748950116567575070202952376679726420803284833782387711828615891195536149399357571979800567544573150471833878979860841727057578215211225902399383672129653937508306514999385679842375735455073916160637648444573796937539491256432877455812952784276205605927330084062142370706254065571917054357923794908307297081679750985687848071586325925945635286888611026862974046087919143283078151223604870289627501385678495934630678223240492154715055040233068144728213612641009180674568844123049064958555314669562459177091432996659262091179550012584816662378813248652475167050940553868620789440267158472196779373132415501443173385925985276504238809857028574716709068933434308637934176305575044211324484437289845900210908012912693608367026700455283400041768814542616424050763267748447893836567372753127311174130334671691695968274479238702060580667379900201542349232633586955506253665557859734136541701366840671491765012407593184506216768958972110197872683199645755513667217353166048165483817124892217103343711989906753388445966489602887037479727419691017246161667838044234327334844038367962566030373604581218325566006704584805701559010957896176226686864203998429770338049951755001868818492605134118175416812002141195745800495941347073028130373728620932008451026603102569844461174195321703412130777205215016900564955000086660514060096827105372467429652702754622999128455125568366749315273927920195590134954471894154394762159337392955604358920431326452243674726849511074741600237547240317656813265829722111774771823256971751841935337027339292948959718465188296247208118283329390783749394501976217235908864565154673746164593146113548476085916281827582389861971554471485470847856473501624260139630101534620526298147494010819520879104570148555079675606074336178994440781577442457944157054299048437120432154631957799392853580527053216798266915416751064608073598431440482332905166453368793221215149348531197925561555020117807659164215256348560369524141771806638118371965188873484939662677292922257116385631276092176538517050465622214546736314713590753546362632170226617068660463658058869628604394734193324808845159441402610299331905353076373145285597984623980103171576195150859697933768502383803786559203568402704078911758876764071671667892817173872437822323677891532348141231779547031825704344010867365351563652690289024749380752252250405292413184080531222835338418806677242548530937882480210437465901939515006836959429751160620761022652338459311580157032792313376148982430276984371541556115158068517962504904498256215097266047692505200433584902530548575705067259223614089344355231767538539595580754764660904222675909951720662463509661670921150818163153302905364873399267054565744491956469081853543186071719378948353882445758119461343721987840858364935903869326706722121183306929950338371802332283409617815139330472946657568549580767022616265862517536039025892868735442800181738939700454231229992848739847699157653977279744258650509908998061588261445819446902632386147803980010477392336670437683136450628819690169182865615720259326575137475640608695064160008353387066240298127671653062872695480053538387176449342581954316104143940536389475255431036501781031620254699882040057209997255058838628657105692201292034211741049322105912534170914389150811617220192864542511047043302807053518678711333121459075494308151670318692718361082169591619440860334862886831921404939884655027892163435813951032305985262512907676279324270974464567759052405083120818589658824937204579240798351038330074526731339941714501861180991532121242255572901517648576138255610307538031699483780739691597188247918160472093862267101568914244530160885279890747324346791589361545283956293624827266147175823909829412243297564036318516646839287488264085841177852908238146974378895712076788017363622104702083255960327036946128110140052178595117682362476451055435716244839207321329716028931141634801758045507724625584968165009710107579676068351872386513884330334393939594093140783475179864887107326347096437835543294137479792134329726280303260265178531132603273976351656083702974522752358246483362996838458649261764600496201069343873245053371552599526457581987783250017535838723906639725891156355361382989139859853602243123569359808472133303063715256818572585885172057274049070647998933179773543045974281700532427453465161955795980705650258925432454199836354616976142645603589129606948170917739884250845835474879174610829791959627257511493149279105777734738507771988120934886345770506171004169116956002709653921465177358796940445155386487727429754311963582453511094971631773568871692406099868084977047876901809996300619550386379238748165955440503732921167229245759323501262097356369335076945748236171948243865107430560521035460707830013829903250772091782660592616892985070994380473690445287827175512634043770578800828794680429624141925143392126277868082790055144143164302498505286996398060423582350695134330270634140170530980753324149709234437319622432234014199804781553780068022841584545474655952474915550337766585886609795535781860730462451576022484698455135420339129910846166937692382513183906296091827030349278682402357772195414101027445532951070676860221305048707778546166313609884844538881877874164415431038082263668380835800386047417359246996103854937719393502431476092580424645103088080541349358192079345380377365836100459472128393625140920388351281790454448177885582744177743640522395277828623605902820506834401677048388438004204764337997716067311886722899902990693787806831237687993685023344782845042412054589487191249584238780528846147738383368814309966070624624036915896441289593940015540026344421659113955289895175770426977614620996275726072876984592592469424980754482090961027402134160684368084686662447313714980006174546155001765710781626535926066098153787298165608614505010185112814343597889991511388910644160887408193927892504348457661235625109944305943947668420467373391238486437956679820246683039294331660355248637126417703810498603365075933198707384599221568790857722755927047936830260704861926847350210254560917418231370971819674754146879192202734941257494642834929543307305077737540633383287757298551791374250017183884003634015030407751692531399797207693332140994249975615278449675368181152127390737115555153112134538920537240199980281775531402443488880436768302884865252590325597585714762844859731114509300350195336423383047657893455291979091464473332898770337169196276759694416978348078866242347992610382328391555454377107928272141185379599808522866176756357574786424867214514721496076549878083417105223764622599995696052806859374904809717620588030069889152365457432999409743476962622949997093572021306320504639000401463134516485406006879812629034845936061223876432093185090940755271930982899064586026811075716197182357418037422347838985919142538236977617709321527276692995552166463524638048265411455923544742113414611301667548679410051577678131450637648190589655986603167023173271475441318305332633903348431915900283164264667426474459008920948589753637782739400698522197227944917484775876509820638908496312628845003885234546052183767770000814438654042294773726257008960437844520977764026012678409892999758841100382630754329891661295944326732435126430943782022755578983468867336892638597622228226993737895062582952606921027608293956838653319747549236415521732091141018421296357069061906140972173360389156046727473938785156501909456789525313250359468085811350953922884872839965606476189693464237002936142215672664130561599682032815390468919322471097767112343091964132545866835432947301346542359588090388713549198401793468502354594260714933913967479702856417628989193364319584968298592773483508849113184980613675980753231789127786308560240852403396190577340615919992018461656644467870024748283134568420049613231627824470573211831804067508774104853077438618804822835913454025528285871312440933229372162825215179910584210274275736351734810545695409647504122360515231420857454540192456026468680074624123151039772523830087636315928123260841320283684071707572190372353276337989139479788169223939880389027784836188266440763332279675796934808349848828671184814414080709284108806170003667798253101214146360298727300402680434549911419128432505408357130547069180064286174113192174856240460042401000502329925781469335771281425067644485439602643372801417365228306202100889891937811841867723226439498310528477761656084220834264980371736128306842084604046489173681521324660993520283926018026196845728061047564512792526754897786944580126124546555490989789338921447696798481765744061111017467662947853577246785065726262828763397426558706266448163156558216745087473504795558022330793322575140015440360057778805395318454243585503601298032185661721111454497974573487415370656205703264578102366364442592306659891980454509767148712774346583189522383432147128791398811289652531252122621735837865401055134679546810562247405174843914413734526422682914516885808544938776095574280451936526907028578497892507471130694509187051676434016094503944153134357339834220550670717022790141448795911615612630099098364595140109920768866297670765499077343283353322306831256372334115716650997010615457792521401688167562221425725526830355980787409046866618707097140164336640227939103874614659337584035828285426160893051615668941096992564230337732945242344164795079078749855712772715565518903279000111492081600533602507293645829921152296121478052828448840724702016009504356807765539399305322980926967157796334468234004725236277526696108483456984033972792466753274644957907423374979528052192775800490185251729923052563454859060794298916024202088644824134338311030341533774285444124994366085398456056683681223508790727852640917058942773057492277149134328040893748529955235038160584611777132939123781901535698417465957016966658529109160751205472514317298413184304993946741857387324976809379989431775587234508809146000543013159974931381599106757636784741055698288528156572115880884784956728596270109288342403906135603422266058231688760249376528254591444250023418669613382026366158256549693317946549290544092343990094741465009636966215956974876191217721736000458598236222992775726008744254122887091085291083952447937116364804341451216728606858574909775946667859933281933937278743640469485466410631261534665937628521139088506520108465203180848694993899891674136259564242292648884664331734358356045736790478621394086400245048387732088696872129780443664780141716134698230174380369924763195589982459298370277112690607187547571920469240771730332735545606914078228772441950291596182124395848426149038633209809726371304222660286725593300044975897000333926089235735883924890967754248668734215202967537136952725595505681122153327673498068889427446595727503148810621492125291377380619219541302035749976555801286966127422624568580632707274837597302661683445577171755460064620628768026760508412197817473239341366464539000532390779453473744488848184767153924372451477314194212933948324622010287624842509650512472360534900801108268077186754576271281438237976804578888747727294246788084865991473340787088564694581125082698482605340397453699501648481637423324222551018148170733502990959731653754037254970521664111136692496412383262690933073608569338645544838372886932814275131799604521471864837395635239093877733610559893227083192716422500301308282383742403159577158719408650428038190644117493662770897314716876050256103149099597275177623783179470720234089183336056813249036393296026894787999244165923392071226099581731669716683017261395960374540837856402442068809560576885320865090766857153844033785046720957404516836544648265765622299925483818569996442978701936604044334314854264136669255700957522706340254567155528408665295957464951547361743949232673591383178977697367778343122524817107690984703803462717868138615317076344384821733688002001387983688015759746458418884945349512666590638746434635336118403465412699036194130034606103615179695816222080676508157129226748287284790163246379499809034480481305633432563206544812617162848879075567845007601761938505475095542874783054706595595625384284599381534137612578341938998858635192369656344077497937693851715695097726252467994921034802352657140893297693799505054333797984083444288593945321540336278118204057720708717385919761338685669910247165917845877735794288160648899781850550669742329084249478003294283076862404063333798351098767042134550763227645026219496461945685577908074962767472201799455217250413277741295982473991151829918687903623789554823174296269526169234066225322122909225511383163620051954075495201386975852632787818689698018119959011268358579424894274602782547224725696392840666537550272729760786687533491414314265544719446857195853492843264736630108841838705129474730487994634811057485505972171192010611322989649653313161954803958747131035341447785736181356536039397003851322582162943388220314865683493111764802272687627115924671457712602133032360551916849013021396982274746065587557187768520615755603046239424808282421535798407912357323816264157361040867770845895208330982717273697359951468310024314961242448187430254303565441236593901357607394548238764251834626402252498410887384472317471301364199976702949729273196255221087819074218568304353549573443941326402303141193367854482741313102058198271985635578261630882594261659154095873514338151621055970665585446915890016640708822811038542458986383272809468520772915428234612956103284905292951674920346846088953514040544413732803809695700832355550165836670286494587785368081760000839344206305850165487309646273430767306129134690013287647680711460960047526045285819921389816273056564147708082150328884283121031246720378960179018633529732989391644211717521588476134446936035081506422254942599187368708997771691664630539328821012987428014789732488742977918742093005816273599522431740522234275606345669649381398132167857853860391591795272842569840944915714644677880025185421388127232211993155391133587702938694624875937708955447747423346474570608263286226582930390091252351792527348156026800811576169921427989693830731718937783114319398934046772133374979211600833220596638701696911105029800547679149323215977440389262646532616554931578390494901791675554972905841332588246863519326657057080665392285301586779442358764251537566775564149456409541957268932922399818126788033346306515224401027017162900099401757776417498593015238698224410872616480550642217858127250313836175791119690564037537728560637806938030886786100719881895096843032983683844830794033041239992935280729144620309447814178298283750077721197173409289144026489157017000075749536777698187032214096691333053549204954602830481733657731999612797311064907208950235788552964692998318662752584072880254501602254148677654952529633170081910422932811733195085890653279713185312816727379825647362561072803962902696220839684291882247288657444738031195756063300062509695339250135897844407898561988110882932006389681904076150560885397539682584213939659306200154825296836695292125005625483814236312645999163140523906844736334436072789434121686119418836436916401888291183118765807810317795346624021062338268774489568350479091999018908588927103053606205280606998630450783421791977702345467898607148991700874856107552678762222986590633490786825005380423398088739762544872660005483290419846488577359123584662206595414545395360058373340385683948997748435260107413083911610586779544914952181575012129612526939784450403984333224032142450130027109714649892714605430400985613261420625346393972719180389823856971536796738503668095989708727499466706658979833483189945864743739470816769605276177590317598083986784066130852836455243652438220530594982658661870572245052086032695078812127973667635579273306510033840870478149703557803157743326296885022556108914403574620682217300477869528838575257881492669453042872487601180692194154414100337924020861947399981704803175916065897861510070602296813169867320897953699676540314057821858424089277664852619517067454507566716954298455113657872054831168941568024232361044578739734995541284795295455483210847591580880981380925594081919641594224243904229785083255738206466068863119043984184893521260130688156473958438352780767692992313702539298241701348243187486662601837375740878264838043485483078179534299792933736569215799168307841107588437896686117670362598140648517971708467126063310831127122377342652989719870718812127420546005339003302534974814708343149632071638333959786727601096566685270209086358729336458491161421643591986188429031540085348760087448153880569468217951275749258684274193844161151480068746601755404332931672698345059141919516432167838782501425024024757712778053662672738725453550866931895422897926278670599704414155855258303605197907303913696983755649596809821626940612114540244748657288207769873138549813465309444229390138635835932718085238064549489109504669332072535667148000440298407969704764974765785104943272764603867948892032589361982684508476567205669927354016001834949935192618928661049629085918372689751973717338899478285147571436297068907678425740398152202416743387332153193810513114327963076904794571616161649293744036987613718091857082765471686598125724664601143477372506459034632473897982408933232708325892356046787518904280290747191287573210325088016488462452048190738147362139661756469909054985902866661871894362697266524307404879371711069448763499550912637097743973298542421364487306274345157200854616092228161738077069477020693534203262266221856465027349804951560988792238159254037877557461162791282694614052503754224317291256772239963309920464105687579121112780809289177101667853547431482977531447492179535919749650814412272004598057886470296098374699576774267003576292499784942456741050424626263435813292998957747517264164043652052895475577922641312722844686982903083016903232888241196268412538204319030192610004408286827623523665554511118560113901094655919129154702087833402149278833302848065063738382686410398527560713983775994619921547673988008287091544623082998564658708974799462881630541398149636262537472205390204227732125792494077839151032490942231733593781134452803081268955478054019154321937129577028988759498990788522761184694558151984304300316226301696255697362473700044915997566320386886327759729052910761856440059601518823836297303835473450413193773666020029689748098088468663231036184205470697026386118295006505138464546663797369236834479899519336627314645058031183934814160412434652459159911891817836421579486964819921768107297544678339049735883892445584503286284382059087245829029733984940866823063474141597240930855037709241064851415471341798202250577027080750365454858721953521547733373997782280962287975008587238289973057435814647089546452833041363036923972263820081605262708188772931399598514541708593743305232251200756119684196422651164111311043982512193910044909258718881078840135142610179665811348097357202078395083852104607997814587632954742706993200984308371389191230297116871077588917319128430301063473404303313139680652582578396571046618925412457876807255766154174012473617579742640210649282062861264038247634593586149703992218690799709848359470961161126110460694741028455996010275725446066389105555849767933336396799768108238142399879517761226834694916623058795825093380139250058418199650415271089238164268830205357963169401703318365167592829406593868145032225862593737104974208438843330921250957156931312628801170010728187624139010046020963186666362796393891479582581036859772727434087185117543688205821718958295886323657044699338389781085242065018008637903929780305681688463162356080375880421428620573726899603980392002212843689063228781267481723761406706997136541178182219731214003692435299639709756931568578192616770993423014160561062584379519385171317679365745196003232743141652824330812209283036340469942224255484974227369459982216334428822519571414669393316214026955472684094198694058249936661165258732884551915919104682300661597572277175872726010432144450194205705525058855530595554342246830823076094155612118943359235905164365060099486636737183937332686269367962813808057304737878281867639476084150876113719356561525327358207260599750406251480230338028711334704288922115064140668217062225791021664202939549067352820115168834884180474437075832459256663572935251398675418413806940602049270966624043680460872474278598832277836389812073665673026735227664023877956920303972665257672321790368591211505414331998672666684311451174218617725858887025654110911526452548312208323670660667237437313607583650244313559672310691705579305159950747586557041793094933097508405376631482228054919821018443953946004839409037698261067868643172273007310720735961048399396237289517207199502981034618543978909147529099533348723597861300347944064975544360949224946623842887792518356926859356393941829241334082802368449600287831953530404230017649726489249986556202746043468300660499296666437978148495020256059172222026207479493058499291851371295697736685889311444394308125273693764682360379308647370311030746971095545673074544395125810088427438588625057779073430505849326396098805729177706352047441212790899404482105814228653968433953800789919523325902642711216118212949093872241284771541939451717162784604611779633201447895187117057454632223266962284406603099576914068083372560095086151806397304448292169259348739337241998821385891832057141455744201661129293881687133545863959864859659579511822549572298784210058909102411232299840139107035672733726121808818202856444691765773819083426912957461401437937716358862107997715178133918901504046581084482261172669302055050477477900095301686031393468296028387188735369485259056947806357749804467487801429379727705579550620906246617394205815794102032397341742867260381982234867522706156653355648676758731006738250518706198460629671180215506765472499296458897900902830052516020567349355614882635459845108487300486761327399188056243759660614529966931729931401091542793286622695958992292966702545032996073000635785503686279099604120811165409134031380184929776024723575741108156426272186747315948650526361391115771044168637038217954192772392274767701974648973242558420517361568078607408887777024203408526877389449511898330015922419397108828164730360445126636656372891057460152980122683217561041612851744397794298584518414581151130143363759420490957414940024255675996012012663016700994903873353093824371609948126850734177399894956902433043094615895122608588797381489098335248262925118373471346905448369997702251870166133396171519458516416972916690931856961192485832925548869052362500334042569723909353163779204204149942393617759948824039210847446898780207389371892937739707967927024332588637068142484699532922907337398541544702911167915775177704373707973115946547349278290947630327946244598131076066055013976432391105293715559986554125043498960491229724833865695638427870947055383819331652429761511462594160426715291916825020273337272386950154397851037545494231448235760971859165586606094582176381828425144371887474557532323291654843014003581573476463746919624283987812662180965363466136851766666976868435504440148182734497156216299159397570466601157325024343674141518516995439294141529853139117381515334146650044269659685611067580113624478014889413908238264271884515475158208107932690593422975992711908845620902903306364334237262692213995771341624457749354750302356011277009848725093584635524383445487120346826473176696598518554908718121913747714216570949135182241236295068420633425633947694967015247396228493272547661393366452601125993196576246227406921788661541448034661907498675765022419953407400789010837200799522424586331893211306145131647843853269364607663328162587473594832283785879871796744645318745834059068540301846295393186689773850892185482098012816172499733648319399580029988803018516040088804391949248022570122556426823962869027001643125150935157826345475431327399903675940557262134483621830440929214600666104489579227318392693320105463447571210433198494220053340636306130062162715230255966513411296667778390771997655053952728756630441252350634703317082712622715793019855398415127233142119201024321525420589821928048219903309432812060896396747179234518018267583393603084206193146308044435359167748049808487736309395507748717100630470457673755687457211580919267336774349770350130932256635453016595434228670845330101464367026690625019008213967692337165577115238163378195743239158219416110014350730452803355810522263559409354421737541485013635185957549936861046986125388880610714505047777665309153282763117955666578769259965085947317414856440126289030058337091366096376988379710990847692801880669572073704471981908664047540561245183277399920381560252414087644828292204054522157299745705969366715876643644093407085094949466202615887147337945564390091745097532512054064226698679435491128494102385521114093844414619611978042082059451828274248583846556956383084710925664706913219387487634980690058021030192090294789793632729021105663712332090143686747252755051455862424398117580725290019408775694188177009253441171762303167432995100378141900446649545753032684018386137082898460917362755087655231817254910951635877144745070540029567016046780155691802521198673604728370162596628995193472620278188487900845211785710865539929849049770014967753161276008764226489751886618813283341521030307858923832711041648317744063539379295907847327244654458417311520313800202678196467704889336959752743292494528731613929154607570802008946535957440313300307992823913385245154993565802804328546104979797801976116314694597601462221660653792897292925401324133153345347122233212282578583878896206999088513951477292208677278632935217153521039475453997218275046821561304062324890469729677794679479800531567857199540908115376345079807554001687458558325184791489487670888734857894611603793023918176026131856907665103025167558552196769616988069829428501588386228900620179035998873619906655483492030116160712825673830851750222585152661912015184753785386690175076004926561660845901803749609665378321674841597253400304773219412922888362372029596977693044980215077095743337443845985080910076455654001781184784321692801847299803231195211476782392898704405174867349297336147142708409273907362919945662708941253500187430083828879715753716728494199425895196462750728481390144882062277578700066158684256787944542357053077762693088328367906389701509075681822428906863573727693658377183788597673941713373745826672625384927514170519249338174073362644107115902151660992564600901865187262535441990462041167851709668659933855660312700466874201269416510138050763714784141090587104695501673464280544491477466930421083203136761786400922337079199213695822348979181568630256316424350134644796114952160756882828789370689541583430141066031807439691916684910950265329263491994172886433590875972789557919876237702528753605973725829316284620324867348418122592429661957605066541631265654161119897194998699070474347630226326219908766714405916288201878855845156172241417613705929398240313536580948603904401015041134156021161752791956854465953262643345371583722572212328695122690144874088430734791679239597451872170994263863550940369907032989105116757098046432850948240090271630330403395833621623614899968652288235820699497871383835875208950011257018486001116000045731077458291335748579403169317646798264737394984832631597400994271454616352332607812251881095162350023011553091694036043079983548618561910788030274263354387676601705672302164488076507200217879592408270843203262056976635220362904158404763459917529721289283177648801336013028480632018802684482976766469039676010057283782734126090610057900695444682099479384503975970568738584872901023937910523629540909793918186625229149104932443662407258615903895371279025654617110772049668742377853122500495295096073169532972181109857406461871120249876247683760904631415729121350244673116806142267876237650723442583860009558592979457728124118813172884728211905741097648521831567793259314527765893846537070672882986013955317657001127297288641679756285406356152882333851296199103870885460892728756167564643118588881881620049264636196994410406967909919223494238028536065693043183156793793694665480361057167238816391815939274844950566431840215060136055854120298784018540910024365226247259258739976087746238764589124994294970052922706975809043804610499760051994387731717594410238384266845225034373382891747553667332737492546879257990569078175175340727649473227588288132426404010142338019474853908269249915630676327333990116127517835978110707914771827757779125499456510172740864256049216208273264989712545017834343949924945493005294085931629864337956532825895985095016497730971204799720133337728864575353710171000694368482567703845122412242260145191122048995940646347855524623070812769743220273513903944446738793047690032903188517142758499157753886779971984662835901077300566868408355540903874936466092907029869667751921382348732562013992642203843320085391218342763581848965015504163598555108426578037056635708742754350623222932172196166515723092327790592749114949712500910594585714601659130503935219749212899522462841965613654247243341562573257431113355366604815574577306749326870394682876122022421844384204402372455725375951738866333232535185496912657618587546088725645989295127944176585332771526827267401941180647496962399222185919432937033205850648743428699309561526950426634929009958385400402400631282831963659796419676541136546042604474543138918894864041403378285757438050968446749043332814549119749281890039057523570886157551552876985121173509449158345492548643808476394001242504848721338908374550481095112663331599884265321475503674241711966773255823305696878458040852048205046964230934496093478401829937930105994045929931202873281579605069460570289835142134644079156549176998626443755575916496265941775961140042185530620942287051740205034170448216666437595499917969128164075635483983816076323463098676191051017989190912751109091723256222465387834735235153801546390219912849513719005056192613099454168101859602576090650580580920411702497720650417742421774225636842536176378553942957790494813744136572672109704942301760262244584547537167706335902038806433511054912055144596264869804750312421640104246339403462327042869116345320341828749804575595126585567462962639042501862025440320515882433622971172053221118095869911689613577140650923526434434664964243014699944570248873890932808609154383116206444498217535196765571720717177953455628355480676172400174943706445048213459858095895824238819411004032844216607215472023222302924296232809583528114541067576240401846020974385207698482659138705476233967874575081418383822992406763723049964852567649883784502806009777223962172020164679741416976703155190889076374125109617831997503164416996751245439046209983665612965964433412289922303413097366478926102017496053497435412692262251117196255336072482904641870161346153856561557873620839094504506635829772903499133126425743838648781665996307482420522916109826099414663672761280332046529164968619306479203545909276543785966481717215434907129087793940408250216602557560248362165584140577689020521447226965010887958066592109643987351566094793586900326342460934928960801344076427360944295986035415410412328545338515027777560983441043321888238017471430872735312756911534383200225515055569106721125585216029444296735573876160483449418443235216007395096329303976166389819024721906642884495750347006156284833285458677501586462745137162879424236705101156656798518151808931825204662382813892033040605080459913616044724845197512442557700161917933188569577559366466205233256270300127922093678694996007008656611203630476483216099324054180383759859236460114977536394928383025629061666899971261358070349060136262462214534261632554875601754555111992670745958443402477188282122825945368914074879928825245236834465470653795675923780718326969634503801370233091587019293461321047864614662988761572419535747419804901182264887010537424632502348497220526973089212602949036183895841736381811260482646295081565969562912891529519919893556907199093666899156248990581845642468557586094993602747464799276652742580476197226511512928592691647910454388925467648648299921365956926516633393693209233140505631721550894438116022093327255780372254856411255163834980186335712661450710260484932520766149204420777756444650535279860662641756741742052856045241465257968074700712293385254950345638585118884057291545091824174009610035265453762160091454190756640781660219865161746972297856941920797642784765183618113972438035886761844744993950434174659614347694964810641343726830426265435541043531879098923355250879748817774380044745635066832474391865571511472384714523593197332199706882372366969754621766039596531647272347368543926786604488343993037131194150015798795323989689533263433835774747484571653509916248332425769630449691972982373642293308454272824505267448646127163587047086142455227511885882131976294274878617015376583345996454622063605532773438302701156213136330297448905338366119356861308403180890851211477038483857427885922720296554188258003569340755487364184315939113737474575965945792916876734489109660417486329491680611875401192408667518257160903434323248168102069088081141104016059467355107095177508103149207810124228399853485455478636516405166517443959126767596566365343068896383043230056724035989317667651929907348842817340663510253583225830912343431302606075632776841407665024572703266667798888099068240563223461716278103403532970389815917495202599098611808710930731249405671505657709727063093917943592421836634479144734806869292311327419116322655672730892569856357551672046807174420082462052668263265763461624114761067971541515836011118779924163239115110217161507503780546712475775533320345622186077095664387491582927564906181459600232858650081502554009373922500462663224329569992417035058282544639649057468874390483690869075733153040233740432373551611151166739983086980016216091019683419617347180486608623120284108799195838663745892939889157994375221961004079587251501307450533438078317255595869800492951414351825053856730516989784083168123003736502635351260111043250418160763731100867987847774647696442312486419531005590192312945797669542648442254378656021317641238084248447026171897844798568992836400983021957083465613624954326117203105379232008562174046472377967127911662086976263124301765557993638509175768855065348825903006284545158955892944795540140124635671537004357320666729226087526091581324118910506770038149069354774539052015192223520117999085999678873934838481598206552620021006497768992873772175422898573577807559510340629993715421257944899138434340867732015599362966923197378848726590383813975545595136171095079393484589131448353647016080765112175811847698124498685127335193537125975875473019316074522092123480134716741688373946126325151681957669261457217656538996845515386310193143881544815923413690381480736889119710772333865093761783275449291531082375163874803782024035829637894415465892752547215370099470888660340292644027243266896653778895818640789139692629124537417953351989288198791542517698361543695752165311076630873038670072763774629500360981148309556793744097042930965850397479226256198016336645399901245187614713783176452625868236274201866539291899516435079137049736742634262237505277197165178481486505060564592668776366772525449062027604568886535679829326221635922236111497774519843068630368089801386791751234248108336415056213088346654902299352707906812581538212740857537592145048118111528741806634068521814781225769408146670912505978034883624131396361400220777211212569903108798938583406737982168108294942548170379613130409793995173905056805575527124133660915973948342770651831624423593662661679593027040916860105125161323583383428153605352217821518207087986605310842936844514919136244106284166909009211222042221107220663446847160271912014848936908151100976105653062064540032116060510780432636032739189527858725617516742308269699973837301332190058961181947550588243466209706932031351768819797083785832214573954884004460471634255836877675394046815447442428975283562782168654212462601753343514374181303256731175670615877104354869827226221072905965473003003800516883688537189908962478705628017040697838864323468290366739960842257072758139639704309900257913062161441960927630771583056924364972088575912570928954700486998131907586966972359599502910238077526219462812394228537531799570186418333531171796108735023995718389470071736922177967065768242624344358995369701772220650227537630807751731753207477307545446555278035043594512482808833737934020957859834329338829999858881627464439533033101864282534302294166639918646441561307930527350468097571368000110473850033338724489298355053152149722673347443799583755326363964018962653988925193249358938568940174057680422021767632450018080827234380594384592502533548590785834206046472545791193061739721215883866513673476800320479673468712739083162599858799848949957632486981530443846241269016106182499424734192186110216314608841076910161834658741583510786517160746810936131774418273958616360267818754673576932737168005846399502917645652900114553137932484373157627721019121990813012382447968402683872987477119095291064828789303857668251418154673324998544188213385716590658339487939483624565685070612885531502144849910344133396746061965840518439630522249755549619253280558128498223763496072399433472803637004461443327864110313854729794050272589406037803773907548074939931502464921048567502508788549202547822706343963771258287175330748395154830065228454193542350633098841923396048048270642612090127403986465002790223269275034215272699201143412738371486682864633399946667793687847685363808123421161995159303708656621142069147860099350790859199694829930820536075034600079439360991736449445829146952001184665511877739078270599589732907949125682782747316717267877038115766663310863751071370034687776393181943029911638351881201182086521791168985067754086645107647978760965973573093757499925841420292799755850055923655583163219391611926122976719737332109442612027382484555848733055586994094645758740730194373090294475851489952821224638876681724690220954498841280716976197408949180633983718323014158320100603496543263309941983024440389247946692190687111911619946572827926101202435944124787725928232583290358951401202843515013885820611800003169236851402078898194205918424603682493781050474919117746142743336661853525938183788206923000549550958562261305785901012903728318506631807083347331580990902432926895735684794081699747686699632890912019987455102988288140562876632256400223941651716601671599686426832929980844368833724677566887735079777193297805494439967079652374862556539421938275575965939166568641574357820467481158839915606468229411727677052312718208760241973340588102854336347860552396618976273779828593159332732589062713477238271358818089143101513155865624125162943323819758645497078871033011079123849908377360716943466410177964434049993506122337646347134083731852967233331383896118119914138449763434489956921968305774549959367243264725436714048449303735961090364492554173112128293941863017656324659150992550511381764629901817673245257660721580669111292833368200239054129215808415300230902794023574602233295691382555067716739671293340333724254585817404119408876496518951515944248178052957913235418161998626959691012684781208414361293792464859317215015287455061543328240978445676257740603255594052110717005368352727785225227253767562565487802999446479558529614773141886612798115348358782137880284623502695857056497185705578894489876358576870777502349602199759142164503400103633545764488653606857799943511651492910570887752318161871750685557148873974819698012463558451153207356675413680602251553112268566409102386362350187351010039903763898330559682485576416354676271360810851058992306852043999461738834158097193610611610933205431211280872822347077745650273404447185226474481004878917803037458869863392583071972250036019450384192735683059086964957707900487315324724857417376597348899570989564958365207456454550413951710466840408055756456206497371162020100961625519504322352924879011515845665812404787097121789311499244435489374508600478388840968610586822543580574518219282241318460776434911089054893745280911768406271404596464708853720778201750491648492040114686769987222273181266076236837429933085530434573772028772850791965445109837162664606830839357855152694450477211405067049064890272198349295615537237676367920879282175248343724794496717803415531593017037795514196287447709097471280902047156091906426457077308629268818201862691412407361744227101957046726400457506515962827120527694372919644133644223823437658102954330672268026747010817814523957831714428658433040179326163199197166412010625052494408865682415901060637848437028450142168654306812056628449224291295957054030710006755416935293391488961807907114681352945661494861073561282322507473381958845034924415055340587450556653191368307824424733437046915700246252734262684280696863295764102320725941594200690766204832287484734158896446973707231661827823797249320678780095291261873303826711620994529158823402936846016136060964334523016942066067008042168939050290267033174965269779004863177760030520410231791039495503666533326596347541505072268887692150449620247564646195129457364610657323488186333930563047194274502346684399429068865031246686241796870510528284329499920588994136466508661226025305773826351080066406861865891867656964675562731487401773365516283589456883987565834293354390290848209305587494972383754970032485004995304452089359102227751378062554097066889729646064209328368395113390122668845480048315469583602167789373856418997532570095072641446033847331262758323314965475772635066674088030723970641423916602947477179766911820745934743001198187296793243695805960489209118565010641708127825059036340154600591663621426303820370828056766593159889530409271362925153279436151609349341126274823677839750248316602790172212835205655015383579503791147741346877852732146598513449772285477823983024786886465152388342667334274116015308285324030661240152932094083706779880404656314161901486542084440596489876494122365107483838708564767031655462806161077484210168615333653637500909883916446634702586173781362777768731436288391547696455843118079877165671207961722336584462483955476892604203224780059280810709042213610271544232642019804181412838051826040401119403805344439433544660963807897996839400041035612709666135542685157871594920493916853624656555363783150965454062778992319079232127938567294150461562064805658671315959533622511409103429549051638683043809543219281365167296798076447905894149633857037436887899899748768703190657315170255464180161589135445695752945603632493823398035080830040376849655239287731611787036879045954639084001574966091276989526446047668335433425845737189982362626285748737943732530925083176928310423319199524021555418102453063215728072171944019540726947317398796763166604546854251068545087750773137787586924198239040679161092407947532996092596587459664125886178296876755042480035271048826595421392338620764740745737679936756714865206949065774653156559648833740747511212966671592085921492519606557653838969506450586049317777110462611649163915447085603152755829083412320116803152993790985892771437448843903306573563907270883981043681972044706622455373156939087977432355023808244520724954932752295567796110778726475246240556659936502005498128439582981775986390195182699362370742381023164708947168867575462568757524253685945969365725094661270802461476410180726716790018948979747095875129569862499952713633704542171891676061400455639701766975434069017136924433428762308649599647065842459083413109582338479252955855989623702052106334415116836264658131948174098350482018840003965460205070414130707881423377472317738383816347924753164694255139194370638878875140336425388008563740352419259942203900945229343464442620549210252208510103685037315493080587214144508710266390352598202616925159331215698303868469304266860542205401335502391879962513744498877688791371925094206054719400071188931080886450183594808880160595237634211961503914070049444277424384205772137246842825830688247965275934068602678132576382309866197144656567316439553119492174236413905945641056007155439636349967564814782074282360052690189375506438103864141691109764650947009471983532334800626563610944211310141043224129719518884932741732322054486860184770827906934843666830614187064742116650091710475093915209767328560488486978392615469759451424216898012236382748325703302520906449940822165245164442786382500253674801519664390209269568910313208734736297577798416744446883952584300810259278792461263971132355927518072653369714025258621185168390756330482113211597106110809784105163760672443000406289645145961471187950629142995168387698353052439728936446892939078925818437176179708373091183452215844232780802346722037256661010169217874724992249904933161583217276639815969591982421489757280083858527533038737270052190451870150395200088842948542291668672200634923106802653722733413907242809565655909749726288916122887436662100831281465854227966555088299452726433087941907598571590613860622864538898152280188889661552002454167108744492222765400140205863439600840703776768112748973174382995053518509032186893447722817863845551054014434372826029782369746860889951876235385792501509937909455863470221759208661139639308840398350193882663718737515000064346550853481877038557761640323456838503883086352834373935964657911131671461830022153212277433079287100491440190638489015673721841904252768419250845706412030887595789830361123421752572778893495979864040938595105142530304173010563611859194151390618991323799059924894851827282658626266855250469039169211267347843545430787083884066319677003516049109381716295518289906253339240542702695148656844790991702623058733165603132651233579225982174102946605599706957421558963939539127745771160373677627779742953585272723891179433784592510037262142049440594583880619779961221553585805636893823833500772047486167290606412490773907231867978620671068821077840880544466763081305170860717548995694938192109724302491308395984043509593795357933019351781992378840884700409726269278280006081984816512332629687501286438337907278414276456463067349031875937608463544865144008276336335032464954262668201531866121245796237850419753832500026200197487417906172716493222775882017088751448586008347234996169285202548378839845625313932690761837813244907085026765514705197188687699854859194718871865626448533234533758134863496393443910862195777331782907656386939454968383100647962756039159479895714556504223780315012218832507018010898002403382495724178770388417772674236001967472510882428183725642980544646751772662545302952251396811215039424649107728534382032416071821307379244680878721986741327225490793005708824433555898176586063213532070177877310623335435621757240106503876817681442634289280158965579129693266600720783586870999975715696923473807832183778313180341054208032477883898602318210368504714774682649064360754121566755382616221976798218699021947048538679937291394360611282237218057618946181581982171043531658616271199997510477536334357854806368560947786988415313071731844393726139285764448797220245059778082877024989131404839646305908576375737411223695299269700351730676225495971885903656880095623688645701683155887960996681544107612966087909566284178887917087392938408132792072487014955423023329597072310703641351368754206701790906780776831727348397559380326726774695851972924695349931907021103950772153109239021880203351779480693019214532023150372599726306408319164471881730000301221933485657077595480157286177519204630598210552265112322457166919042489021654146658326535078179819623099212687031530497621015273308946200870659215322511557227930378132611172010700540180215958711829684281950891047076095672880095229663450266186912612744398044311296352594674291036038169140811520181746429536534667005948974813851418479111558482614778964047171517188851013834785204231113161599728255846706062805479697399092575668817651792859566759928476234878026165820088119652133136607375968521001891621845799866440380337012834732484771509731975141881140331189973291404964928704047904256668043018377353174613282064911733210827454175653703350888449605104316438463697566448317528942272320121171331111884121464686644765854598419483378353281725601784027519420994122283066781442711412031119890773538712984990626192727038508319494324337098023739795520181100144703885384626274130117788869698912015133526728172060019141368425605312703073235048597998856865007861163555845459358114437577440694617361904284144892366871782699008289091478923215770802887345175531439333492405296779805624670486114760521585441937284209048802987731805725236964262773169297875881074562124084500216697517643200260740743958457674967298062092193543401899694977619445783788325630123579325104591076620489099879102964374180657830980292874446554974429167066466899307652909860791745951164736756485971514164513679015704344610788412683843455422707985677860995223230898439683527613693102963848169006931376448383384891225098398842713275914450938661701990200609186020627920140358417229218985297260135598941624076535760786247807093935368166280898853070459796725217954532471581574302162685623315092975856810900605707551233150631294483651723574013943936275367376775793785502370657200017783185560362954503285752091660556520345524187088075524109120217126467776061959194775707152559451372599929233578847250172815736718163681979049217351256630464922028528084833370950030885286181625082799416559890393507834718268678271134575657823836581647581115143413698989727943448997917769359907008941960802288977667873906686207958873301640262752410152353182130112590195692069244306744264315309057721900367355710176565733929246217576581115182224196203974124521168859894725098889547457074341232721245031107954334672985342753130345461641137021529751542832207343575071424920362286372570759174352635612779547358476577984347787003900224991550079919986569182473287545142746010861188114775008613134505502372127016106035451596995846407658130697978785438828204419335326950647570082293373680737363016882612577480692973416960883837892296362340567844016994707333052420942708700911644108502967501513686410009956918809435810638773996698717371918151836358112482117314070572345913997453813649252318733935343557989122214311003396906629672454846753135113717346473642365157135435184928819111552075765743748447299734588151698782718719476180904366992262748749850777633592301158174767270917554048230104227514521183432283538456941383535860605531449998441819671362213533127602118956259556071975584067050405524856532591309768876561545614500426035699075167670281454533733456405236560055905526652829414877244576713504189173566662626338128494217639293010057757016041468824247929356578979679004176742384949418169522998719355937584915607626249691133438876725006601796646466880790519699394592619350353994779941955757515707133966318399992002457410757364207093806089973531586979550254767950203242249927868961350354237225186768562501797330126609009753975865563870634907228497733935153280721738554979824905401590600700244948851304289061464044898415092060052548290022761548253718456995823257747726146882320133382952150625655434409380362983167775845438452987734528615875780943765533327282050961604114664425925561191563621946847039932756191576101727148538766321976081896128240457934653708991981121281099747150705129156582124537226410344470886882015228412888075976673724586930856012885750789007019605438987860425450529373516794284291589902225437501370659056225291203668910415260632135145112492256348052125673110450418669341619662078627012336937160048898219244394640737201471437951602684271200134083470094343811072562588474149841460222926994117287967354521579458305359024835914354789551056550332768548356689609137610360980075139982181633905076849259535541888572144007105553563239239891270012554086705736713637141537869833925827524203538057497833986288040745808255216528505826236867940643625724851891714852998810291181078223848884822116790389275944612672905346257949532253637123495808551140125873331652433131244462486772948018211705011630890236836471012203770023322288003969469916160617667967820396250163779043703114346091361147825391736416641517604885923705531305394150732459758102328304395577539896623147048059035734815135828252931418856982069532009042756668792670692855747558275052950679855683332982141101934138864588314669108864188981447607019998707624160107876983627668333647457278993032057210196729382228666992827249311620365137209926236174894513478874220995955073443692713554796705044213391402918977206859494630712729234442521249320342727680818721769801672925967218127149714273124226756514536466502835453667446415982042544421236060067570564117379478005245727288230655591878507468574106701260786612732061442259590528139634633511041002793218668842686251806616786857906098236695365709116759709049201774850881275127075181913684074872905411715485845268331524252117346765611875345338333963335199467105089655694300240930725603620821179654711566267016421998426248713802157082685368513310641464358601894776582144781438280422918119243147969218156469427818050019453657307148371998086842670926158352801305200299461399893940355726659984833304112776461766522437071614707127189069692315736081285880952060661909828332241162881082573340306648565861719260007470424912277749810035925986517791722919918470388541885228080187455853980928612554320080491925586678928060260056335283975956886774431410001057835246737859459701201736743636313783241123052626514735398327450961930675823472252304510249177936443249766621717731880177517744943570395175630113505923573821167064361617325012549091648051638698089121555182442615662900892537596838076630651743205384993644954647012587191533537989164701974757192171814060014405116738675206309431214750762694608126980945135137030980434806459093631819859175891326983460017776064917735997768535757384301027482443783621647927660497237598487200533816488269006128346775436266337365123285793196967929360611502849553949632052147737271004860924191652464094151852187833510498456926264837393226705558053529482000652178033228874968340555649673653967011955565702036040186277500707894956042196530560270488148789728940759205491095270059888539984866115967067002023616824206135650199981305827966547144351507858592008825346200127057601815835485547409379544467737993084637787058470031871541926088369493518183758732154157324838746256790134424272890686266663030147229326896087906365684708376219118934885846008717045645810346366125730668607110962903037023349406366842876816158894071129031956534356385310267012318077419391571293438323926251790823639365709190535467418107413843555476034149403642378385662581912541761292662531173003416694307693773173681119939258263546142858087600794820862489625121588227707164048021108166141046774841139036953664429187892591204116626147645096326959649815718193770931951976422476364285435337897301459942820971930490663396773016654548339728311578945557085680479744042677099893459496250006890010258753250666776172997314521435071975920360671830012098561476092445932867598572727484196453624120418722480481900971431795433856049941065524393694736229602689525585796449090650546332992437771016841719257595344877696801087321868847725443762795175460215397772380499945625628286648078282117057529892580084111243636134311140853961812389946414548114533313425812285927370267753067589974216778327284099323890035463511224634693595800167581137831917000040819892673965353433480745282410328794316404388749662127982542275013161630323117902616656605827873731405843413315572401999994958177088223140012744817055865602081398436489491983829094617729809802879590649877024110056553781549474395013115378851946409042983072088879568045207999698075603720845786423538116635562872440727784416868633663096455705965096702560530972445779403646426662345786030843250545382502106139046968214607536842501571479430089085090135697992221474378514392386677227448626907305835120661285207957922538908311155734310425535232539037876849748313821674123497799193433043499052621162343216844331856717257430946483430437543708575004928943037182805078602052420225634727445739664870507769235674547264050305625307808447795393364175746886480201500088885609563295764747778140671875462600683206362727476452088982841243067416431072463244602187659410943319258895787212246831162503410742466106586797082026771033804480448916103006233494974392079370122936432269439740566496693717912694933203844350043992490124817872506028962565380572225824545194794987914969893579597499869978562892061958637354893588307648491475402094310836244117785164810618477338763120880236163780366138982516473214244078109316220130995789123453219539536062736447009361943299972848862209975952559077916479448730329019847611083567570361736096955266370087176511210967792680984037529281820702304690677309053204717788154096444890013981811734668497721022319357947787049544266000403383252160646232919902988329127997666454511857165495972668523062998560104483086294377618252940631024402106398616581729524804399184900864919945698010147337090321501850039310108421589922560452507957119514635086863934601364324660059087001637630253839637692418105622893613711061852785523944485246620160188011010043148457718479815274089975914977055253131798890405689080060223693249800835445035727489231386453163802369187544859195093263239315183532107896816667775117294232849702512387144624941272712369532546868240807508385264337842524852269377109374045302232788008742587285892081395588111797508082155565242328473944176188484566688761664666261778150089159772985999331188186323784825719086367361756527050294554627375778595291768461404980052028159698062545500755751677303296670557119579023906295101122858839033632299872590090027777134889691892041651833995106749881149046836421982816246455732765899602918910038600117372892597732211617614265881793425878233139694692365826366786752363464720398181977009523825626639348896740829749649391358661743976838539135168688186092424355394071123408608601406277416982141978988019888474043580033027734227746164516525281835900926091645938551307604661639075156332535322740459031743827602474678673466828858515426811141805558935300782853338700653550574281335519312563162006256634998655011782109671899312585914206013029473007499242468806952674367638999558544784889212625908889025979169629905373244782655001595736169021156035258290059216336969006501230225729176210247168502263053867833184661892344427042791863196923962287357572840022291512560931366862745319709736252441478470827152146657488320458320318081732952466461222933122454965858865878988735832497496637435545365860009427880997387271282789997724449414187581883301670308643180795051502715645401108421582714971625562069412250654825996514904251792083476597227482941144456277465441614889520864305006812530752157206445356601514036291122340251746260353804480010441546148450048892908646056872490782754216388895360795009508674069412097211471320029059115063569069833147428728793907580313342549896129960455752184921475120253604316471775879253430344689914329843684010153398864565610059641767891885249678826536953644694541519130215602787852269644590334362393968662006128227003988360236609633384369401006668021459376104454468988239547410623558163907093730368433662789775695680999586623801599884791452582773534498802493382404255168275866542566394065396622200602487058293559542967736394172701836782555759099283425394863356470897675963012622021050424083311565411507666948898293035377207929804821510167655018480876756314148819773643682172321476940950735606432278304375523147493179575117310296549913118043435844804629931364780300527746522827663546443144746577227710028233055864357289614488784537575723943306308425420689033175141639830772673917256862416334203513462200335590121797452113616748668123673118388688319138944094344762927102466705943774848159114924495165689239850612213314083497519977713988154451410277557855417094901767967467755503518902758092257170853339213176999468117088924490367431254312521592821826447174712358684465440338436386997839345349041818093939600579702685498589272096049266535702417668483464491286149432882997785813076931724591378014419773869121751326120466668846586050713886584898332435949703187428507351124124526800144577323215136948948299360961287968262668853243682780099400546071192227199299598929850101723300832627831220380997159237339468954024985372806221551784835570122625543820213003267041978871889123016723882155183276007427708294958876737243244293857521869435343621064947983415500708012059145765261021961391419106843359850336191944709959133505624811261040001906961362741171968686162168242020597758862865121290490363282608316324883153233782151212786564314360263661055309215830514455267627116844432219644705583063638633683211354507269320840280784876640848880228805741461073462606278626115992867583305494393088113039114654747854403922886218832212744442641473592065070009569512995773579799300293543259371657263995473212435203627028648720668757240368816383664363177085301191346586242656185384594139889763613690308515108436770115078339278170029906585721554539749803659375299739886321157161721759105792729706902376750589849369978609368655927821623196142516378355713594244485627596173843941529284083160022894349028455919973007517120775391995048164487864593577244601329691364483681015501452011007630327143331734435698523077108340975319894780552586838070514871935281779332839139613398011286822308097918534187389336863701027048935831665487338933398722396875692314977303427017259018229454302050979206736278762202939417807344347577460058363213855889857927843475662767748019352770762330649236790865447304442266356721148986840428267186127855908379132964287619014611854345424624282509868801758445298007140605481035099722580945663640607742247901977756770537453113168608921223153440397278647826348026651198065256215697808649984095376025434881084785926719421116840780184843138634185118517642032846939149120557370928929539213184810553315403965337497823518835878699996096616363822955782463055996546745506830254964422134529685876827106184643354847664746228591351404841416383693439325856401435795496090848227724310020894367692902351732148936777251450079353861097372600347148697387412247767037534690162511082887039115357793619410729662792579414001535611173004860524883071661449215802754612547464546979593006562665597505003455181787594843997695596403018904037427674259351760066971174980929098044875764960338922010084898182925710398997213048486707672764212192686435165689305279849264242745126014280905353711129693167406205333074240737251219574169123952704656735970079265455615471544941796175595293073136764983562452302187127319331611495115629570397911370140475709564194987217473017688411061969110450729316719405392427800071084134584982334408482650229945913458440654292491933918071867414700029201395333462375443592188489786135392340517431951439496395254165808845096989092976831385600676188179281501552641078147718021508809048065611509108377424110171533689293189471131380509336667337451773052757282287329137823931597995279277963344796117795703759056940021960291442494597961505419278184207174634095322587906123285432436721990390865814776609447775027047689747997708136012993440170229547546560029041076990362780126958922014223296475444895138185604655727404357354637451155843258819089713887103579242799852346107150361238424379316398666109060733568514102053340134211770844627646189352235360466850874451461864947906982131641225825311870894634606225038545067372971894771228403762737279521838988740432255462797256395130699976397613407574559139382974131802890067077942895785280026666705543238949003737701551128432047456239951131516375211940036714703666038518862499067832079444776812982435320653441567074306872844435964775317916214202474199174678951633523363766572097986191118063283562457997035633863954973474249828133844877545912506125422012593824873870694533442307453768458839744634168519242844936886597110781162035461975643779824381105714452940569891773401657124188462868979804414677736685212708938842907329745784621464090971487947827044632064051019422481451792620368082924302899211670165116741094091654388268872492966814988139346258391956691795749413393458194786210792636797092735016615335332668579048151661341654427904797681218345525571969589650466566324914012730859076803471654483600192297022998491962813934767192855266819237477467850065136243626560108345241979055105684953487793222222181283035215823141193428267284550555987381474424713495429691568069187919260895454417282992863550542231194759357359334156981513358770862803740203712777698036474381628740683354592032605739655613324163549812624901992649158813465648836441454842621072627773133698190791164971905156416988432473815937474195759252780862361664467963388359787863458794953158477549502851016406798545528280474430258258451969907199189003183615986790032898013176758029166860924996798052701836198966119363999863335304338035663962916552861863839280553684359293291512030826100156752752442390552519895556702900743532807760555044978004951315782567247543535557485712801002723001993168839674038777536904915735521385436665409587291610951905256573879267235861630714894640000118536853391363205631858668695289334611331909035767866078233709084401357334267607619490008932512009649036930502262923944802862535988822703440932293886229355367556800447735476698693043360759551621891538895564682934832699316731961091013110346728326152443213234484128711266289500088530155181473052403803065560383606568599009121661925447122307743283547308060661678043408205229203485090952824673292959907782747380629578197661207567401457989559175164986688683719012357042455287903048563673165963298677519243551321616756320529188470009074047743979638137558236181989404119288984364073975748281506052566064424382425628416657608516482249756125616345607017450848754785783392417222541350532545846769399848787222486825070038156269164092469014958236043065150440736865734979465434132474885308594944505998470523965314656228223706084255060410837123426476418142521794781101346830997496053406297833618360701605792249680022081196570772678535381342244978230195481118030097976331891536323938905348005605276897762484121222407208756582595269779657255462673913812257327484715630796873265279152625026612002993768189676587171196952915201780812278636937472689038571538119519083862303921620895147154613607086058776122165261699414065153842351678922164900254940665818752011235468244376288916887158774922139270037822669494191128747558310740269775510744866538367325725290518102067421538594036347965651377587175160697955491704890831207300106135789205211092269100217753996780023184583439122853973569614711328705419477276480174821368699014341494201025893185371187126739241290639136573504024716714724616807720561782923238815231876370435590263290921359654134481269363746463894307350437014562737833003029953465734854017113768320374875714862267942725667221134839294566103596801971546745724300208297667052290018629459551961992199253466215413264084731477106944499416249335056546726410899804429933367182867881040422089888841592320462805832208332165415991531561176374601960409988222970242291889982185005249270831403924049543223674595634821146305481888444667612956054951423485463393903309919088058810545569332037542343556439250307245475987457900564485459720401547731817192283082645838799433144783782654319506008046837461613471633654720277707903746589541585966907129346363180919674576959380582365261469195211929747516051401163471412660162054851091299801630481828544416216110244996863261541573953739841563252822832423946905130780992643855245166100706321865675452548922317450380312630614437354028806019573220924382808723887437252282142867094447784688780945559559983308793426276495308689142480107652301656552596789112550284818113007944063069840353770583386681097061921350832276306639752664416025356863811667178410777336962970427452299333247143562650132731206175490386183923226628397479855968352357758328226383948948688293851308011299972857014007301748069907504328660917347612838257958670106197066564504651381620044750050678563951740291533154968262866614968663087134331837580877415315106832724208624599086855048677647639802914647163760574928821295235326264502980906756534632714937183825586402348107672581479198643506243725847398650914695316367381841103412253940497064317764832195138876094744652102568663577384713340747451210195371506546803336514871232590094322171329444187308812256773594219248489677236430766200744166448378700775012709566453013102185270882466978650072127737914477064701547406443016084655483362031822843194932751849009224022929138502452903773891475275600644199139578203273567629717577101278200893561056053302542410000131213328266336076098721473659437732736691758126325107817314872685015208456906770067523466449403877564848084138339400928308315436741503099028110024753747554508774632097130050022352070726298405956762817597757058308138432561188544342874975919880823744681169105142868821111452821256841209925697828512662817351038432969789070812171827548873930198656080634360810471624837713869336102652671191063715001074812295545718660299143359153811638607743732932861121831781140364868635005202213670425630913787504282208644469013940655958085995355977387343563950393266152609266707301799304679483559540422408904690828835830002398764721318807839454017571908747357810415077204945548781160161212394575744826116126859224133056250587183999791023300853306222282051475318354145173994410989305960448545938507129236736765272493809123718670574810533348305945037271164965127253101945503850097875513558591273675266701157998242785724989359793090399438134536821918942962086857107869484378958449633963206245781784019372061263244714440133573569780468403407636036217591496030507844705759193905377669522604814593489548923834809788568404122837521368717882888701944796085521071608878644604018618476471665830862561694409438821562743150380264717303560310852111330137756332674206528139608248105813732514873241708341231309051081061226050854376908777477522144893470460990794161379202813963618454344205539283977140653612454945081003497375121955199124460671749817690112945942107800053373136919867357804990383288585710332871956354002600613388022319000292233804829463552864283314369305078275566248426299089923149320381278385906188881818587788839137008803831388145545326592898188030446362605660513683858974036870800851976051982754022122266341301652408828440066298989572681232719331351739903132958400736014414714401898323519668710815739550122578138448252696762367993221535350581592467307713576250783004194333320373336996417271699388493941117158231267703092516926325720259098901702669235466865220231956688477558568100653378563871199394480198048805643130408885240335120531066874256988821299197410314405387515594411481064182417160846364099644431696469822208132806757913930951531293539054656743428735538661553220482633845753355764569812383515537589963048354675430392767523207635301601386533785332659164980593630040778443341768140749435528012707402311841885513090887849179715767254003351210833635480915192763373630578574811508633406149842562134612413305180308750282012934589230222548911940739820143278484856210325770306177424299219588017259671911701137811967730825960704388443381020012486106243835695533456816338678036184984734936089140815116939699244344669228636915504411041969400642026559723544768379554909174494204543823910643508244898403293252203186389660630848001590309200641986994685080792630550399961941058491643522470471361043143781040524501772306128696014060974946481605049535435857066790525196709688649253008928567942641253730659090168811146994890120523358495217197151068390042304368671655473915566239833567885272288715661087011960868272322380850485802629816430086804481859882362318568355332605868676831699597476028544579559906773230162912291916222269917701259480533251134847031980184235224919104044309461470015437203880609398888732123359341871237205567013265352881929372914250052498124390922659991450140005391638770708795227443867056500265708868059878144700012923981327183160375528352341874868964849056206933035484693078493980124641998205130195077238898502484150151078694621332844346593398183318014686915379074698171667346860932771605077889729331427480567030432191706801383752931080036028651543607128915349645507178207758789564778269938108782075648192730389528070438836264338335020036011561550871836247015144949235088375602071965471359390946214750262102683259744696235546978242906609629206020499709248229879601800230409983344906253784339482859649334348189503874360801657542173013211668824890122160881200823812857769320485448183097503820653175955327708562615881029730002567732043635433717165475056053785973141681993734525108972231208123614987460784941497271893705578944161914619689042242633599255799858705378013118473924379104748643631862743620336264185504014366485397526393636086148437300720375165327800843067556709400933364757896327565612410420112611879323665627088853317060242174044054640733143555572203790243367468879703317131772650515859275076502339127239783539311250620246780152675135280020175843287028425670214573645885521367933273194652270226994850666891513967450673397373142448017140695607011494040861684728194442363292383713676924207820568522468126823871368639092698886010372043818644069750121255775467459378110154782711264977236307424399309607286663058182294254724375985111994916715920881703498192639865577493157928574581643266574577306935574191602053525310639375989794178301358480633238866201294391345899460515759580937056502559290720567091495183337655404096047459413761888688627559390484122169800778785740203275300626982658982876505124224148614217981385945051795195124438868832972381151322908249551641116879744430866530204207081493980925705687607192789781349625634667317990893628005476041078203014296664216276913040294470221359367192684589939822547924251654987447449942697508562563399290486511396132037981522101382114157068407962470074950844088403224477023683509008476011379901131204468319062630389665691580895339167346536765014654504664872626055846011729923366795990067599537494361215296196699335181450915861518940596624420374844845174176738891377090615661681825819575013808605469113036641141280933545877830085488828063347531197018723888754261097799457282165987604884429611002208424061125437913064112700415375103358516977914204890389654207622436554378515040803801022586901679043772748657743081432059404912663950277390237545345708179800394774754152740649659742922757072468152510614807762241767182836645818819902857809290134195426747535091941114467462480245709006601470578837058337577756893309124526989380852939976509315684887863078542050405369411089387133194771462936251014799655536107757380266351508051500621080998708029677870520472771809193551931826956887850528041688368605939264700482187995060564375204387430272969142855304150652194749935806375875410345814591855660337343967316360101349950972298618827547746621591585097642670279520193693409153701827367060626906408554798382229222352128644952456693278983525013729064590160044894823036600572523159607656482819528852980102109933352375358749091656062537121421072700459649478145518231894604507094302366119887482317965349353351664297027778796482610219651190880764012423543756892801797732110289851650670642906949813825287188661604801779484671412205492441825905483077431467964581786468902732154856057362081633760112730377811824803503926653203760162394964833882815514038414154280833518295839084241203743661296497167738446608132452498556064400228413032971002102871944616238455716891917696090476782486990972928490306159850614162617455851260251227751622643694137423515047460894241688087148396337139374655110042897563914020378742263401846845486963077407880058574001453653524418960491332747010140456168037387399855315465292253766307544930907354707375368296171217162462331207673968985593270552427359019888093825609575137665153505181510724476746489713772513704393518963229194647827719111049235902011556490580707327395620400824958141341412145730830462044363235263066061943996663169992449754321214762222639340193295155531033574915312536703296787734428509059333595906248036136188489505316053775754477277137437661758027997019741759563129900327652506119008657695221772041573648566585608977335492693601596063736857045424427399079162810289236873627323459342615824376285588347088614558463900366762056024781304794560825878699546154545924673787206835847072000635812975080868699050206841128520095994304946531869744937517637269188714932206633417229181438237417071759279137874755782884053127018095975500118876479270392468550982776845576343578219873662830741685465697746382685412344823297318059271444366950374002031632254815911761427058850564146538745585101178704047087224130155881458581657910052801234118245776834330347994353375924153625253028172655554032810084579406916877997500197853290691180130194584477834964826624811867344224874832616486277081088213783985869382663548246205393772937105291192244639767145296142020053976079366650007575654896088019940687644000106172027590072452594645973775650022452719286470026644125032035358287110617690193879221071374576145547171240989801985336104565685249927256636965475010066571114244792597284880022657931859144092385676489201102273687675853654295570669734869508538164790251696638978816653109711625772268654130036427187048844139472823662686809185911689408671873917969798164482675839916150080248267535867410089983433108294749283839159620115084803655236364618227912534870944221467656635933559305828950909102248033554159298108931116731960211656699055200520652277268004065870163635127004660789285223697313398433604082407376062292107632485581119753393579024472233312933437226570273556261191197989854699188263552530633864523067806070960355256094030671075788574585205100822416734559288041451710099048358362482122626781261215341214126312620616706555505208297886912821417823247327860621391743017375911306943491202074934905162190980953785622876587678088188176105448593733848982062030763016061449157073216098293350334981119071619572342183326809059764295455538293265231121686429792285581507181433771117575547225754716589397628739938169892313249057003277436335265249099631021784147807842088905341501669096301482914071051223581787784254705609126800338834366167603674713062139991348241898667994920968892548836557353371977468938855914804260899839949752202067481085058684607988397805453922455708773981500442470684426670159049891610783211913023964801168758345094113695062945402110822040024088878316838373241461551163811107547732346553279013108257469728200502714317234979116946018347403128430935994854215187864798699771736897217634782694294705640230137303137176160984736209293138830976236647005335926767595209595875321887891129161906764760325056824648350088551990833130031977335861343816731208671999192649404612603517197205697928817087475792353408318688937017821595836579358837548147155784269596120100466901223699270322790968649769488509629332739398813339437335681734529935029977048321125263270110624103498642553735580793611440913959494905481982039573525905997269574214429405431549844325141391191068701073376387827526627639465237060655822614506772313258600497557236581132066724954005020069789316949087778120187231112706475728304759753069960308345058821845424338223646646229855494408912510439330653056763675566202884150841725515099051596087461309714767354823146194145188859331386747625825639289087450163925567813384664039571486720983200261534136791038332019499301620279413913974575946180401584300871530910080259483179448463688766171675460487592381577925319166708972062283346688993674126121037227896644754030427716753324543835805396255443653796370185808835092091391687785810224356160095842716181551580838992213789072828586707309220200246686849118895760864802090920750871577842991885032578272680975718198462042858118766679268922871848834942018662112735292287499393329087333153619946479875328929467260214859064571422670391009419188638033330864702480364253580190916877257660410684942470482605785239770161075254361235355168514939065177791252209454715374133485279737510597340974895791289804322236776566919731100366693460160045833963886144410681909205833060233543413204580708077302255436004989693524363346489597900634265624111198835887975995501641035193015636503763248478805694083158757252791232141404339470735812094468341735677038577694337444570240763967213737847438611463902219618906562188357819029087495020221545431870328474561984551542794288318447628434080656229322870035831733647341713993179966049059213174877262235436214549270089879955506223690545115115981418367108299871948805040636120922929444979248964893285866390690161083291097046147449183164536190645002870207812469545325846906442901844026547675893235257619618011599507120975722395855401890961718450955163925773559769804694782423556009857770566519952600442478951446233578939777217156876322634218710448647838538212716717609121392622389464391327593840403376173007163787829438399535836995624094526741551150171078264662758545949961166956840710034914585878492648829060366556501738865010002662674760446782849560271143601300616886906236857055411689396927309881821919336140366360531858125948051524465117336182447208385624216092395155512585749698322395897597380206269259123263568605599786633031198735362089375492898960262317676385771396264120401954675642684696451463230502194420268136626694763892215690727200454230035264533103196397433845023517063730000458868319592140210043647465282890476866518091568906601604430789404596420191289545952190129535170619388704955476849161766149727002781099724014043024131716683065009715857163546901905318726041873113126868069281326502092539012667569415788151047219584501347473602205933525292250149570627613768325125704297264849037463077185683213916308270416065445270631401818202624544059988042396163201974618896230708948109563407430265913576035611099139537382839049902114250784524548139840905292934441143727556322761825721858873524413121378448464636154098278325449358873555420776653885494459570174671248522411448187213790909906859550291003646946261655016630362189267893471147368442188515799144546585141237422208297093458024004364161659883794544796685574378389605386699582394408285601782323544502726494489025458267799774105907009663549942232189009775796761040892950633553726902835112315837530388995094614737280396907830915652263290222115406062224554572054749259505863192087167595487962466656579726096405440848428070149800644082486226213931188915916673701370538034110310664923944172936654602551733626011668038819192811644845301928817948743146958682763941546701008705487321351723413774553788645366119899027538722235514298483404907856731084232049917164137562127305323693269903493751840345757150025952115968763409310298929229746080430016771995225236291496532905588891536037837259803131492227978996374222760227697635147585979743192827291091204697464774287885498160790430827859307142991352616212157778885175753056790726877229954642695853064913792732684059352665044978490307974262293661341625382032686528412322074926334940074960167995662645231154572875276937669220221933020013007968931087348240250554449150226439052380631106958207337060202821868160901295169530507763395539703571141188780173916381425450731428824402714001619423547746512300085587763782023210052966850769208810637500319244398257933993857017580132619685016260657884354845083672210136777903792279300073771778030474839508510055583391684772423719363292890017577903656001689131443390016651291867507460558211536798165432006062814488594074724145001120786405248018618999256559396765993468055613362246530989490502204540951863528637253977171567662875952485337307409654593212531925739464602423464246704597483833177915548748661934964385379653984776824067542290998100220832746947556131430283061883038805718077565831393862002601784150170941946179276374311879306403136768576157127880809606755513726217716336552566597947530946499436334190295211010650733697034917503977390058312277606587080343502234820814156562023739699472859224295778164811044202837978428816577385843872348802017077317684339553883339775033107619816419931247119369856605956076640776509052278425073455284718774043798870143535771595162289186012350023203246098282831115011053724892609727533247745873735744174602183994794689856385905210721310423031432520926828027105509902249145371120336664809615682486015280848773935173991572162026769200186212736744340398073279088089971111183261999515967203133267397473386471810179835996865255334035779771723843910273169858796451160788888266854444555808197214300566761612910383518720063841070034202690610055877469646826827187946667640424465935455216036340223734908821153064148617525375901372060859439194837339138815561008291185138310464684970471778545823622459038955609190525617345755212428052718934205819469378046766600108579051318330791320770652278649068464420650002318072458668696186920017887326796530604903073066606538542788451083425200979829924667612752565183587229984306175319404770501078048201762659901580693521645578770563223965065523623657152974933086800500974990245496377384414462331211736419096788184813502816308132113849044501857741555129937815864688540099350570627527905982829677035778513904520883773252128087729195047991415576686238957578613114994948057716644097925560998186169715834763089798038926563223068218584695378017706580439400475467996443043580653705018807961488227181898871879098888675840893325470792084057343082120415679651422605410501896633214499586870190932257142810200285505084928787041418175811711193393227350742687841810624995306749423212350746440771862605033459244377242525845738797060264391394024014502528253568668315358620509711399826913206081926587321668500333095218923567115737212939879151581810713258521877832534959339194644651093996703167640489381528275129659628143169862496175057994270114739249097335644582872956686735385432040005580559332728101166545593444214791417899769619608962773787291665438273175148070110986706766349080184917656857269440607846498115809672205272548401551016469696553681174701661599460595697072972764667276950719267164106610870235540782669812426604034921560521515005905585584176236568554990621358142864968614911979184666654867675735327661627613056619220257859384235842585908745920125887722080173606714496446816877859984009222284596009285658764111736769756192198536748731617804430037691696718673719256078055561301097656662196410216396581205700732668161608720016852508133874489028064205572088919676897054393273056072207681438915285279928589338110199043576603910475963411672193525735063986690799837085099927242193470996046351226877134951488935591942464593545737562365125962972536826014644186668911832011744600722494427996268990547579850152310048572551957480363687355218811208927454150571464769399602293290057016362955057697347109811561544827333127500182159778144192273763696150795683709191407993047057639825132398492782280865174113609765674998617987697776144388027374889075611130292853510368374971351416847786152120722225448529015492798151966628015895038236340903532044418603145761810568791880503639352099105576605798993741611193276267371589278824485175505644151382950335917053204086603533903346609599737620280087669042126516214852535457807858039968926666275958251600457926681765333799916815262899225158966419868768542554679554421102203183137284340086962622390012366926224896115282296532702248794833342764358324179152131647704750518469160759576807328941273008513111891903326912346575340186705243355588083263187250859830370205341164123684862214670338916020668072043606259933732709758829548685775327506671301152838987336758450170545409148196846505684322513005919937489238553137766420689529218605188860092222640506190189513093178472461582785064559777237639953123119771126818084958596124800057832716296565992994618017792251814942190082247638858572202439640959614389001815384841266803709674030116750867220204090926228599595424776809720249743081884381878311939220963477642431300115167390629491372688656851178278884418660103040553160565131383678735390489994108831941080479787202274484310896707003997138478494571395665243285082394038418158100402079306797344101255697801006112691254858211756717075629543222374149328273976897675895930754086049823624620672016904694032542689503162754427196811527607906337531048721641627968673453848256785475728599449285038897065694588916948541003744686404176432985100646671472878434885311438477221793643734854961418971607295807957427041569687566391682627104097612960811306593471619309007472882327563059202227026874581509753265797959040788573033418959674339249726888634314711147196016372616183562925350457382657573290431718170988340708880245554480436534610936860450791898764891174906568740762824215364337845872362751497035722360685617160611257406474216426545014786218170366044390576835514119884100906732407888846016641877531934256894602759075292337670428970771442553492676094318604128944127086958253393885791535716299611564208614595749867978742226596269589008462482940885278504135876030995396574304187714585155587999109904436053622444117237445293062868900947360168217788271291002981515062490366621228950241887588520960924908633119914031624807188640089923952851077867332275630832089484889490342404166978029342816430618119162138909796452197132581401913189443132210590351088248342566516436217301101230614601740045721759602249546206750029414370254060597743121770546004825618837273735300797892879429781186634744644078108728279369881531832628849006412669040373522817185698549433357625958311017041705900933516369182471193208651125568630137771036482677184845465194785738792280009437997810302813381712808883027535706619427940088874508592175496751039046845261189275253117503635407076575410145988250474346047802119656666381343786338959254305006318989418038368448935206609191913021492017161783111073753159428483471374407738342596720224652267389812880683191640358495261425880427791832056590958572621822805891396448561253951395392043929771598091783629332430694244070202969712439228760527636158939063918170434351538263597844658403387260531793369924274532699120882661487470133550403196443318371072199967796463971502492619489211618535685654835687317308572988339438956700857742812863099175740446879163344206644884637869585211099684696439442792880967542364514311965135091004428815610520984348175723523902668790240165913548305861395084955325863993077351877579648930972171297437920586530990069374328690612047090332784615476068801510164448489682711946364798875080876507810698926208425925602401737177604199020927180473589472089319812616110898383647761496021017853266393077005967364587722532597161219543719179158979371180358158161145981464565965029394676513478395194427680314283077193925904521867367444145647668037608112181735349109594663569641896541057333522015639190166753799301020293376366661542757891074794412514193474073491049217948412496607932846239346677644137998223336854122486307585441371687443612930279694300402607435136476143463819235142210912700681149799645443097333948487183225206494528295396978458027099360666891549694160052065862652616350332194341853821559849897961869762736213571338338263212001470882192736238797330728970712133093997407106605245602874215024848968522766074817679278326474626685843682583865300736368902937702003489761872142094797536600057479746023320559673956641091956179704067791842596391581976010158189818719743145691924864368043769437254696260415000147225295217367089407805093625412941614495533762503170115007797689311236510630967913271718418091193697857190786028390357040130420336224523364824615439569122433920361702329492852178301574281018324459301778044232909710501261102075129350651420253290625237049618893749432721174421850754664605861929974478028275293210609745053973625541650844082593611850142171380254346734861006680716865774932254290152273392537795313878991112296745666405025924236493973219998740607430131395384909817390978699685481811922908027110415803748810817551871997929205088672989067732345886013716876499897474142652014889900742000360743573994543317038688785742146923502124105321117094102562205672863446955940733611204855584543559983670438866489571980380449208428735237911654706866058258745205634708192789389277565307586951838228481614568223257981753627394532712845042795087786528393447026456334902412730865241864935289924446699843678684965081461544653817315643826125748278224472042799921765948834512251336695531059172860571231907865116380462489230718174347231113039937700677076217209198244134187892195329101390010334336261370047871822597457353975337231598117271385992487600841919552968464172363944766695171314376077394304462650395455105359829411793772114603959470480608876754164003469841616231550131589821270510327583480803668227183323595020145383710050609184834828220207479297706863675870378925468207160563151636365452089419754245485650911935606381233553031716176727983009104298224448948205880688599659219369852693686860521135140429442752848794254603164953188612753865148099105713880031590737267371563082975376369712989524382030777311937940779829209504665957020115422957937370647708765237331915699388009391510561335692487358691910006228276472184505711688797605036241253029922530355057952938664983587943167515080279209993367153573613101701510705655200105571511629263705972544000242371029005943376644704577033815713437557651564641658045237544054221761871702173895975333610928157610828928810696141342740971493558545091687900036016010688023507998314126413987340984959557789891763576843696853178024266378360685115544695713467681780142056393435036704636512966071637242107019222067258572253104621724168623632757764557221132282671468437283096654184228835552023536121606820589099576435543557006066504632739604401461807206367282630466889107091798050023128387090478885324328454022282273859335942856696378718400647410653191184753806879193979066347128181347112141342476517774374291079039455284688176569173354520695123006564711740520188334726263883298407099105238873168293262693915915283436239748892574309555044006195295126935129918749787258332379745230442254947324951444130330985803515232419603186862917169951377502157462111166496219514971316276988582207145205597494581591350276530180553528535423811423130625591955249505223929511030746193869633440007192335418283882672707973653845929572627189674746031532748955153880907698433175739815971152172564057550435984997054924689135784708255447648504620098516463275076232138680903310587348115571856885520760770878954739677239571654413097965622237613735585808679316758929769962682526445196997263604915466871014107279501499747713668266553914489180840146129061277334255659828054233040905197123466152284676187738802985661577956896557675708910689750365983683978200959054441099218960456292078714319417568099843764389956731245345594861026466657894840228871049554196271810110187445164736973584824349514345475487418469151430242833756005624799044854853855059503141625259068853066246418463059493912631977979700757685578642805285282476354768032699084650348794389921659389049371933101020877139280454918469388176552614221992104938188928223924118372416553383386905593664220237343161197893250253325640246453348989218543164274076697925485569988016910597625039490635756001474452641600811427133631683520280768765434183111725978222676803221176253003010715229585188824902425040496696953542026357100233360170983048238343311440951378754465086051386173321253243246071496396250906813898116526371782509225497089704461896531587243726108985197999190198939395043595564342676570008606217461814515996486326254202987087740388765201964417794101244940725251425334573079086312338752167373791241328202660235209986526777582783516177603799159749214074907315012739077147533901373203057037971513742551888699169685219484062376926529677064863866762707814827019069683646897724902969041778716724471271143122450634125337373885085614736973414264103906854947193819923031357253212387873943857774834777495362014636093945716512266253321687715861679106116461616850881721783664652040874339843390427890632493423544380460890327043157093474771128227600241554948176769272856032145825525663170974906303029215946836973479172802772364901507730043495980241687832966645021431106093808783077350899360913642106069086866759867010685485365989535823854176317086948623143139857965390583116092757286229426317648608925290001376968647798984937786150251030222091694247519676526730801171608806928390671131577186956980740472181036049190263651338730034044163604874685144023581787442718948293072725925848458554918923641997070045579215141699868108754626995006577196994604072769928291150459137842193980132780800610239242959693029369439688419788482590801787822044849650823077160962047396706119043364329559390819123876532213132730636756627512337680832119295221132838675189439426105794873617808521691630637719657595206819509903963856580522748802239986507642424624473808205239873300829067402487425819114122481771388373686763983312506760548209609603393206318600812749733274450084795417617509609208180847179588167005158071236374080595703208099223478006501838859853286951287860706346501159707350078940870431818391076804272749077192131900711538268650333616229393254857260185780541000820435605779029479566666888166452564668545426995028197852280024596445989994743238893784863892690276912500899016057331433870434592722318164010384503171116108625658649621695436738482272231024212313207500350533400724035294196265112195287043196107229019297383610769316314792489299788950823744203795806677058736662769258813780208271138477530535254152987987486650004794828003874044773901250888146854743864654306172677966787802491168541196661659789728795315702562908808293138895367657983594714119522063773451279926881293237622924098994133130212107681556257517402638017435999065310333952849770511578677707643252608172484481719079997397950689349100100268079229491812808984266043014535246851200156730493698129471621555998367083562994841944924825887858668983650135855511992094329498273979735438626328045394531386689878834025579334951062276443289031153596363219155666506386902787532507491064707230515774248201694573446934682575957295268183206393147880102234216261073291246546583923404587433561933019247211069106966310589081703098315621223955803450159356198031833369960724431678694321923154046214797150045036723468074920636517205715829150732984614191685206192510056824763734816402366438245399487309181384675305791193930641418464912794408607798851111390631365116762254141480923866380442416728153046090600465693416843565431311138146345236428665291913978043313606215731023487475054591902568699880728175085838025940113400364705054175498320880980086107585969273184209490580732383465615633466011180107508910293709239333986964159053483129680691321407109096742516908890394486616146781073756485909860819733898936659906086077160933266744793960332184720011054640041709312935976745789645047762824764969922045015340966611480925576111776710173824256725037883678561164363301454250713032008707725552187030683193161328167386666406240147523927787733662972626615275710511101599396834581363719400492066570525857839022494347001990470873376767194814563786046056702726466523012003528298231738410447821914387397214716191804496536343693448933920556974422731206820172524277468520249471087697587942058276724915203131015852230430010399368644926748360589080542480947632259844020212312291741917497265247824090670099762797886848980265464754280204834106507501609258556679521041267088817394145963904978164287581240545720557224161209916484714618231726957362917043728374522049046093888153399167635509889801279275069197085039125980890716482783006672680428020241897357326942510897239624329035142553092449042773468487282275457325699117155380185715488714128857020880994926455902328906336662864125797338822711297862554114841453992942408420287449540945067307788057327799926863429557118417538570229526543407849535417924162285859347701134187590886006822597600534144890451305034533405476320770279127431890333958538060178864659357473833055820089107920993107242370880598858046710679864176713227105960020454571419982020978247253077885271872249914730162476471278149841200450969269441462198630436152912296192865371795918933713098294705799878745024647212946776351732683134636323000004154314147478890724996351207056211008340929041975101172641832524243985195608106455858006209735162386915771760308617584405623162016059273979077569284965032295764044896657019549036099903389724848859479657113452259089165799720057373489116262263789259494540153359284399430118655312311601135488425669400747088303382828308575194976595763274240647257212184827882559138594176751819086203848785747375055779290749887988369979269448921382782154994324873315523066630736314780370444508434013397876905990960876885497884942284733168980518824869913898783048078861423204862535370266404100520508774452798241236718301140789312359488008476434170221788116934269808651872825452281415259489479118945573718824842605548972140499433513162581335576315042446429227527285625201034842467101053375096277793004357065087809530371187133557511195425843088891391261920628164646115778688822092816021489148201863030562682845664906324094389978801825368286698148099050280534492129774242526115421423132923766824313531864848463780905245502494866142987352305955564043131815175997925101571936095776721732597393011646990650878373243232683656845129103042604557459014413645247455685101780084001022338299878693236626806198269435130280681404813053849008066726218447344795826017615207994749434526599936055437052336054115306800131611463439429214421447354656433931664435010562477545152537973074508396201223450191466210394796083206337030024134753360840969947541547288255464193967635407091903680106516543212637539692950486843203727558959397915241655752351367005176136887233568476409200782525077041962042327876025523251362648045241984561658561640279893846058048233142501807128946084362209935214354868113568999822952091853379211796779625141236332847976590584051827914637053118940783710267613481675375532031243641246571579126708096612958954669361621329635328441034540249180934928615499543948555414195058122396719194618930275123957346760182872565194241425520475630028853133756863962844136016599439799741248430930044967038670328126552222094092670320507093068179623023968876142515218589600955592276719145870914287331784190094661071123005109367544776732543751905124755842962494201171751638499908622298026482001502430399650899759630175390779195222906980835823970660998557331941918223494940039099408847183800291663739014682808790698373064715905863382143915197291892522871221466370894659081490451468538190457678896497739948186093911528326965461796922562395375088261968141241848930885203320682887108214472347773351222012052419438814621680844828241614833262516627939638552284752951080748354937823863432067022183468981815291310925147363134280093563118114054153614914133714009460845080173546985579015437155562266718152362725105081197889557376774758143911065586446443735686094279821246048611677356808346194900110971540669941642482892844106895924766161199348437935935173232920892727326038566782483364551792820930610687321209106401283521101550155022527841340993068320867444838292972514517703744836385267924886442852318680184180346408611150731697902874159870653827355428366899875272779545662156788002915791360839046778061832500809008902378452658468353284901202542202209574490751472743548615727218917879403976571927375394034824722553013618172010367818573724814170362976251417148652783607270985689766250297464628526919268339096294484188993311642035670470456248026012922152734832644411337099547179138800936026951213361911547352449499673693874399407642683685095038483956870193290639230561986532440302601073718742893018221359535853762994247355521458732082099461851875657425895087045358780522001209962807756474030041521789868578964822103402424919701789199010971011238267282945763214064259041486475583420010958247111633826755686742331174157827816937281237225231896856370250116914762450978771507259785608304718663952562168646304460635462321005928873664344107879981140110836301513781474293472391940847869337398619049624757376884858277082830005923095395620044267203638856886698608181812887214285003397411542573957583777153443940996517990752376744243369237534370294561870419102596278494263605160093233131519995410089794536149636958334974520890885246092044312899605769275999842457448128563208796729641594449659444128147350090502378319000095409657645903878991584877233713987431897944990299577108284078442282453247045755335853563838079488508887142366697776867594133757183810456027856739595239546708690680919742334694484791032798312279451088369007842926991403215582978795475885540934307997582454519846666778051884383050563137875363201608108317791519083080902835138796496977859496127382676236097092056905482327221259732816600087941762089849869278955500535435771237843227582758984084756610246012410596331378359213700655743161795812492799067321424682091669928024925042243139246036260142224325177550184175336380397394008673199512738553446993457930088977126261822705838068107267854056966020496855347117190296668001197945733289138432466491495231334131687230631269228477759122913547048196150471959413262298943973402577592624350446511315505975967269977676913760339661727818361182088497596263483686924248722949365771521620407819397511179241705556135381127500663316697105116678177520847629955457541666580615530706701314309914234436646555179326895089162927785642201487826767595119770281594554638192167479641848276567845835158830491926248614383088127110310047870341794311718061579486671630091766869795899180511735539168383433550205970135220993143542831292460278529361447474957419636823584749708665229418323365191217057735068324988635513510605559239507428008229952531791243049343430565862781657704701075449996831398061499618204460617064842225164098257127019684067871906125300028591666534708896427939426861779020062286629593436073040732847256241133372650918177907524683149478116223687141603236076247329096166826491676290250199167613057293358261740606652650233395721802182330742693462041419349112228485186238244561615346617707732340161776192486022682071216656985951422085376814153292913002746269486693082904588949757067049304308601672203914484591354176200809303835497468828345889793945379391387164933101392573001685684388524824792808686496855870149112640985080966936931163972511482511998922119784856311845263621606056367377824828061682294673117461051207190641284115080562900993121968200321378909963421690803552643536857211004167653724624547040834755508464961078555937598687814009790015313220178294295715893881699380052089397923885701196533044258709562891459071718840913097517476454660498016171630452239589005542281391430270603958396292908374480909943769239035815406880176944101420572204514632107960221901948473945671661962823259909460153992309641189388300974843702367748821104302401243334086819286687496169463421446602274609633794069317116120276637547263175658029319000240645137325847699431115290957914939372819255888039226015171017777391076882141267509923887629192405443537262139217886458425998240959624382923786329109713777894564795382052959040911751062336355740450776180577036719664577525534844503570445500527095575766985269292166708052819723390042018902518445542663340304125134078387831847857671477076425400586195279719643960870974799624885126724458416837751114193764862156458723712993255849420533886626647668165490777325481815135581462223310557676157900073383846138238682011003176712982194387032642450717727650405364848735782680211257890990758855476986073090214532362698118605335935343246740716572290849450061580302918919981908524919267437385420858565240475629018128603448249279772503051317742859359722372865006405140177603312674425633487256054223724931773104025983240384243743228940263343059533774786598323601929217879849259905435805950281422557379130034886147521714596084300644082748607081473748605137055849033085753400251975762530063786561535425953056066074815049554231863071180921360158589267299315599622540477801722539827830553079874463605293453436078054267577449199395680311786189876272721996884424228215725870053977817581769788775414944290676738294903240652952305027643102107328210311018610589277207033396784557923782253621476202248558633185533008308592617313238414361588877866518363417217789502356034307751832575331646093810982356665722293782091268753498313205124640571857156690390163988760161012170895460605719951505701443107755187756942477455693734950937189949478106051999583100710548801599974985302866443307740115483942916636550571837246852580200255777835062656643156914251042969278321391624158477503521135395756331798429667743735312561843872391903796035437884842420088946177959666495859228811260530620820549379832145095197400259935293213482020091236353541976096310085525721778376238160672417056368761282447858816108206910182231598506155222845870902779401751553033828741532369364550697082919851602025343076841192592882353874154658584093592049544997841313414696455071542006619309704047763468508122033406124548420992170244109852308850264882495053337728182131873680060270509944304869129735450737557437775280499367197022178528412211569072722846965940044605392347756337038616028091896803926547508344124428845629112377579283394368872503926025741731352015874961295652988624395325169195327880796394563122446638428557149620936544685961746219450666388551999802744635811878359910491533423198839803066384539939224379787262223834526284077922074660922111065893642342194793753824651815732421908167464148367101532680074431378413191760524150949396364718403836086772460360110333958436438766293748534322708634951916848598814533190994694000369843294031978777288022443931089436233929176980875703227073661615112472705762350782285059154982519780374144504087684470654503029225376199559126514550725398567035374032233574528915483441194007294473743172186158315446860598795385087169997171960758658234191608711778584518856568160741078916743710755928935259969572447718313619230049698065162260194595755579120469161180197055526178599199145148129255856875601934875985206806635598112787643737247509808714091005645969449263014302415455615142497738656549401259476171012016551251627677389898275197455271519017290345830121283583277289292869669874182069432409931423455987424248572860551932795471084166823675524089806685476846835742000250011392413559909607239991628864988765347579905363124982109535684162222844038386579749949083763699983506648063819340453237143513862572409028883431015155746555435165159135402491281870590274048036958162361617777157379569565026550032011391094117372749803173254695521257058676866411273497662068090560499182430945387028799383888893039030530238850627174192721806467026641733427992024884380002603370200186618307697037247807454444585406948771553177058600474157726772020949105675548258663546259647287818823740571852287673457606774644297921936615165086320553510973790729819740144277705625466426127662894904769032614526851726219723161667682242995507408837806749331830434328559948061723607058340146705690723451371072981649398161592849438842733293465483362113790804890147698367439267380009589973164111693571703176387225997634593820567533282946383211001321331937507715190486657720441381542901177023422063254353197067387467180849616953893009063257328013228941104529782917799646195332328747931422031041322038712805760512674956387351091822072283015926363179854834193779515083590155523815631674004460974776991566717162247941454340600328007341244695946072812941476776064810827479058397993031950260870303390919008743301088164208198251830258030580624501272855217753347042331829020255242704291571993655452686217199818178378491199943829644456071945916542778609217788970142358271208482768789701146835871345879693213600952557823869544230719431608309093673564969641503610874256473855670720036671836453201473828715173831730341337608065798913204264401490559975424605172169167887521292274584604362602202093579940316885008390837750759506206858886631144505009973796036722102557050498904384178336101627926003296692213671750219655678119911932039774474282487480527735178411178875658284076144970166900722343010091503802244640903392036539189968150945215503822439066466753685690631556477404119851241895844432571365966331760606785560603182686096292718653153617782628830320789753560695414949166214303949957352082785030775261288848280521886986527655558087667879328222487891856780583078671587408144917408960200357882147227845662961081587851470195488147814684428225817411421549671300032975890394943726945646755813807553967320533858204118184698852094037964030830163231339561135196707054485670367996748775313757172295144449175026419939526751751568491554390248093329820604806701223052164675557311280664406106821879137921670318929261799139606785289850500142363913529956382215440955865662897920649349456361867526668496652388414237947239660006308972593967022418983542172402138999637100528486255010079402089105373308862457748941718358349191751561870790017040505860090986429081708378954805030380426274999835647400183122676510391234248201073739085934761659866598766442883841264753375478296138199605076492622447209523321581838169980550331711031591880280686488025994414758942207660218036535373391079598828746389976075070364644451814173578305168685083802625139524051301748727596287975990038776754764361900662812872699174255387834448410119283330931925398709564987778937686155578706653588430842903909695283350493611035805443797995883538325501999286482795541581273932133972163644392976783694401517470405375563571308975206266837104427425034645960315718259587371911128394169043825272564020407657801429336845898982602084719600931086610649008141304462791273706270042125759860494684140422398146300561145422308728312797151152494412227728874962333671563040297375966041484093475046894012086356474166564647922587182245688631892608940312550429147733480137715604237170529843692248930657960243229112332500953665152223051934140320850314310296746915516742133039969315996807560046153061907559966695329107516621069518097483473111041710502168277028543760527452383643703811026671496122566186970608815365688129608379473332406846617318639171796025599119642554161891228497648645379972628870825610390440248396567255549451649455439243709205228832076380837067259159066480650629466768245815608371247158920461187835515104772812231264408774681201641056218758304319820348284587070341490066398663501216571386543098945618548005091842860548229913942428512996577622336465160722929143086670595178113804117564588038549024665181358712832238538637732019654410361849912701538387746328704164311724541817550303862805898688030304411104034324168028804302674254259740088464633480552654593665755162008411420236017699390481945908283669552203184077030413984524308603502109242184810293566848751090787119692809924158300030749581740449342443334780521936328624278841874266520393252718128490916338621625011763015806287220801044872826316232165821385594107375802111460583153416827548157840883076525192099261614709398902741284396019917970775876846624467521588655441573341009001674076898327016929758076732773824791520080397627546850398572072818117867280891369054415481937638057533352179418378254320919283131667865114760073593294379790475784893030124371771842755039932965791941093140727253466203094865184892653105421879138057750694164584370738452957016771784981926519945028487416290379030387718855154595246029710375518050513816459014221491569917467739519005727968524801805995711998537253518675200483795198994022582992126093464196204750649067267908334503600233911649681588849658272946388804968137718333548279802771965767476927716539789571833479285244676563994008901527153769956933156572079226497927472768539250014006493168657293337670383303305834900330783944709515413737661391186705498148238864651163640448680507976223782937679333439034048532555255982636863354678681734294718764524386433736917297673892477017965716044788128148545762070477313572327888506704588648032576342093927833213179163240029328315757256475712490719934436757553074244968650088351609557455475388438984400494155677601566362669433865072896291614149179307396352805019664209570534253039103362785314184585268149367338815282803084767522797404236855084521835676896816962819176966242899334185153890331917060938852614051804100947146399905435698069657855915527399769647050975168020793378494297175832540735421139139141463620811424209382744257454276453222961307110135904639859144367997567543543869315797340824595702082663815310508225981537125831859609069478371437782902651581232877505398241434269583054320424860681777265211029783176962915825361440733421931132173324660669907713293237651309996190245057292857963561159725334464303915190341626761903730159287045216171464578058967211786704421715860597498673537168890511099513166587683817503684878176786180972875245166723728806125787886827729086920470143369613110555715928297710191965386654169536697706936001771285541654584633535135535806029830904250601838682253169994327333750782813853205234643238936714279944702671502101293379421357351134007158201351371021666155260266482341192937479965823161698413845922711913273423357749997834040393385454234679540176717162739594489094581816511017215579275771877801788730503301910429211285071509750085016209750560994127523524683263645944824445881402758848111278356424281712832550128758385006575577687134736328888018734012949001261069484653775527445064794991087800252306976880712049724542041109001855290398526990911253259190010549181910830048685539339681080745943396523254268652528957676310721531236050687368814345653184141158228547494345683200550035174806578856377754241118823952145344831731845394925355130310214739239033052727486939304798542645126348468328559855578100634609372125620966217607123909315266134786472504376402218529199156289549316941103489349313667077279254240349349804669039552616236680718255626922284787176538230026947203736933096584414194788481665921337978559559401159668380571864846178136991650423056415983666788190818451646566023546579616270852494115778083486881450844824718698971767527027991909133494440615369089653541699695591369305277109221637340772587650840130162634407032090669191823370769973273580181915585399674524883554301695408068588762350648758056986065491363135436864647846348925379866490287060667068744155581037065051320354301316019932884353854888309036785980953366769935347187254651750964249406298587041563372229693569441149470417113055252865997382423315121339530307393004854237885762206830503600697586347602953152352801390438439614981309632887233041806643336217325230940694160042537737554115102145815048050161017276591024551266841332497025607114850955449927852198010275515783301793034995747253060644406074732164022238580362309693062529886299748106861301947725100092609254031698271447588636551952793429628645812897279454384420738662063038669527629985845873927919766433517731514381726259873858677208408712405126383012744350730703820760058081031572702839511678161171680650253075836537140803761866237103572103788283755325105312912269219495260145841905566866807230114393499079801453331970538686359190283038728713489091902600137282984017667507958972894082294725124993302756126723428434652741222162521321640776587716671344033979863341169944805644343201718760577028822043047406950522572242872540116856719370026771809224998495401321472778701411155542231484586250533481194834598340210648865567108536323453273734102001765969429620463496980874440834922117587632265991372099081307173570165524968656658423615087351026028218051023378064267510015229640897192416817698136927306559110741228710232199051367979403895145456976303471590150336320816087354076197148285168890237161366791660307728832862181195948935184837883532502785348343434131634481282559538186677505823478316842611651050725148346715438357915246519745538727351230964174498378051453811520398779827561638162431002952867170028295855475026190681911570293025882433218510051836768320266747406599838482049800220910703479107625902586185459434385786360570055832007557243884205981713400065626840718110511479526143635733800580800822622832155938741518588095708881342800182750176256022647914900221918336263076260803345889940049674872482015865974264897139115675463301907443893038002688901960908174169654394874389365913232776756808622365083128397878785486970479731084133418270910024852802564830687679698877564605894038863390202363017624513012718510507914958098090071816223018348011946983333371269460693493877193584139331448972679914989408378210280306187475608768185133309327827136598549552632239308732530554780748384657603329095554835000300669191279728893535995512300395592126656690609814332887792159366876941658755150181446320570767574151644244406282151282300200025170529450008140768158191672590377783678617683144158790611424366064893258902149392709850386025728569685269499694322035937799938214362410620587709188469051176000544267754541128422315513900082302744292662658696404935597879364069018501608957140069008352326660969128318364177721752523798977371767737489648940541092455666909349519676140860097074521091413928339957197957823001210202186712918450287559055911254270541147415143715467917518042032202914989451260094880436234252040226530300838758078850661792994258572718914038922506359457402086121444373534745340436478972533284053064918288382235267556198108537192623159356166144336179126890359573298765051346949220013028464372190397687681833613104643586344360218245965515820041618842864097002071304397623605345641078322994623095733516449989746006304698877623176557695113065558247593340085214659262828355031464026720239651078692168296711607150252632699377225538398183877663048982508187656346915312292507031378025188565496867852941966011119046789707067079878320508834329386665828302041106025240463281710313738163686659891119067288869980072475022379891505858072137470936097831154335008164016611929324128067780751776954173571702866808360495777630357809474236521110159330923552371930360606586529156727526021558769156211821684243212707429319515935615446120456044815462164871301348882613119620368985201800475370050899800675476298616691561244518577787645966035427571457182433430960117468833307413792775422496548148340716689023322851931062694175063494503862167818598480957820937593140961253614096049046308409704479760359454709338282592438871231418212832525089352978625154623389509018928811449845512335651959984451714082502192422645025396182804219252958293129802605646707586706367293365909859355652547723828406558884329349165910138102796215655310191104866109887032464176390579839509531351941854838464890334280209626709747639598365807013441796528990758313204457292255239378460274770958817662102825913748513372123201332553857312780681843235367098152663466909281500152615314248798378619166578898744797955144929815951395076369850356954282458811084441868470218021270513559827447313998231447960473412805847988425848773152540242592186739620753919691918194947096309586300820166376165212362073050854793208385608883170949205451417221839841407039767232775931427478468229276564793561611184319504139441007073359446226367327834351068715690022878017813822412148068645367591685154552447048243604435439692536805449270486295980478600101404200043171820354788183686087282897092442458374940407945052772342253408002000095928484273544001833863415103536301853948283937674007311144205359325298463469754651955305291236739858698687705399046000962439774545853883430748982625279009193028839533946059093059092741761732880444358198819669654399625667470776658686581010828835956464598589763993039841582562196886196693056543011674963929863408714360295583899778405505709329404292250507626400735265427920947943692106030108124633964912476035924913962290224642728924765102803033498789022070282754621886012811245345708637708453847028546194898574703390464992097663933720335408488840515775228527808156600058042673266824877793296741377553830224401952504442083126454633583169038716692049775922970783255655635503400706993402064266578763651037309128892413453824549188508708387242668339311260464610203759270660314298861278486452179687002307709414405169044317100740352020108669854584597998001813427451585877932614615054168011132096377458386215381004670607304073505712661453365071898813729025719420426299089806830191368391373331172423318724904925752104076289108137566163960802135642348675292262731420209103415150629048309984132931094042902455116760804414628963225206732126803297744622617374070995877734477114954688265548003429858283882179223027256622089630426494824241971428321148596732096429804793426539134558809011972058687386273331827138337721971504973869687125616599641483468766717864201767616516028531717687252602072630734943949437799005129800624818670539068260068002823269603323418565135588286006534965117422068068006936818176362746589823975888634597436795319042869374140238682615682937013759262020630752345521890914120045122005840531965306630302959703384793095642092588861003183444076402235931899852391594188954631906020913188057863479680438047056003349366061379116004633281359064019940610239897068812069026147021082599157881643712401299311499592389025484906559766216295841145057463178502552220661164235560682989689792993394820256273112024877860565591823343989182859817169105966366624318289943224899280194808875817253766184364530739082872599480002758521563640807435638614332348401809455862850552051024670990816625452495913992805285173621576933052751350915705153693423678475027606937389690135399958177066504627685396634299956088327514387439544007965793492742146790934930816437866306782180902892382861156485148204067478078059931365522291665336712315052293930978734739037162695793621349233516259999439730563935134636023099923271438997884301634228566338923275926120564599447726785057151521901709257610402271209125466939823020582801328593602384619292939214300932975446783284384251098442983444752584372006721552678434617896897230642802475495891919650942361239564188053834036299094652654043439978962080080169464873006740337278913806207205935974192480897906925617588495790904598516758707180420575408359774241198230963160391235886758100030486175557037784073892870894687537207378699737451835012371700546256949912485707712936859772242191104084723671776500131114198848218632645536038932673662380047324273970499949573074439616601298297590027078247281898457795021668844258650835516833935564749900844868771493568751824077373673788398395682039482313935262855436061896924843819741942392300706728898243393135581171451264531403325142719735834894049571839728346802601836528079250089699636145241687888908221378876348455496540032941157520996371540771254623859583774508408109837179255432978908416023661696683843002529169110161485460047039435485116331338089874427153923325596962474721998678118363007656924558231400366235244757139387400795156237160937548763405096945963002134126972371248136640234444986445859050562169181592976605516561331235176575887399758931403182232182924407541432453126949364049269913286217754611959719697217416626732833916829706661417835398776382273670076313227067670718385591154566631118170590309871924484792994273907372729138661545250463878467061390772320297858868510569130621537053876352954709972776382273394562552925253201871593286230903206359818154953823330562914633837608350924918388473788643489795076621151269837851930888985151531613514055689356309165683957493582755026831705596569317006520015088134589459292460894950335153670819261683583115611790855756263077472490907562754025636057976363949601571662025274376573840379985786929092037937581091630869453301264976280560818898577979991211424417920098204665249062785859257631696882240005807719098977387707563995721410319576948933300336441768067540212484260603533176638432803618944752081543509141523536838752427927588435265511747589153171490143905408427666769599578463811206047666732212133628898572754571966146885723108073361380469946186846847049646605163718984116208573381809340562930115352962412567311594354959402616073330761371230543713599074436651611313497941267041087823945567262260615922153405710972907978011304420853493501636264341751654530577701322629090379121300208792581507062161527184004097574358476609455714068320405732299747040464921039085513758049867489669166788634943681036845348750756155863023794033158502257991327689754288834256297249532312117183419581636208169925000501653607068958409919144030763570685561143743683056407416900318440654677205577407959559598842029432545200617298429859835064595852027177478870229014196454846336549575107929799188856345784873859209932204622311266132126418814401784458971091977109969641914961916882522551947697168220364813880316716364111006788455890197683854178439433134879517317302508881035209276180632120261959091212896180404023065391048481494878574144004134455910489357795160030678110587795595459516342521701340905443854836743921486464218614886881616511338875311439649240063867477755351694738491141095682632233924911474906518519996738571026666518215286422519630870956257788881737730922255586340401919241384638296882139051171476123395679939817001209478906456381011189055346002601449727881557540793672167309093134605265787427747705728953931031759564815175878420337135376319210361653902734062760944715810775524168345489682124263015569010760475804678163586978112842651104234671607859434033554104100706887342726594880280407993966676909727243616650442519459034739586731903352877564109255512353008141601055132602984498642305330814008127147575425496175334110559876587789522852175088548290515847205964152356121908622344193717019174267875368095666085511718982463787288750891317367806818676667723524592293980174050335557812509382527503833566126566798397620467521872538744153048467594078750462953752832796747970218486733769045406075810425302478973787759681098138032283820939102152960931990140699598340727176741813407521904914119055865731472476449268224768545962274053468326470065173465732155922149791880921123418610248106691262562991739916548977628577364533754453306084666404452132200492760139051358386499288931872741168908826073240186654969930075147088328323513775350884625235518090028775486447629442177954891602911236453854305295208074273433135976397013026620704060762345361882901208819479999338355039068223798224938595122663924636667321436458952216763440282617853877024225427416828157881951085590499767051414593872067114918599946302263685160066147796644424322110248165477025628995575093703240560951210541933338944174676318045472600930202602379574406388580768135987536272213985571079758351190451221632681538031710689827626050968193243996922218135314651347233042523551671602311564317689933299459407024921807715264345531140929229164097065009337933463211660079575883629745760399065586914492807598539476072319755995532839630456500901302969250839311654269578309428703049469962056346665532667926060964889492495173734017181031075166152075329997804508944905874797246771780965836946832018207893043356404745069091801846024407102627800547008167266244744004830499374936120687456689908968740616619701529795998030953586909309990723014890967244939870769399436820201575561474504866571761668779125864491770768659165131338719971518969089927542008734682175571705489855371273105897065275495739051858592991154378443600944122546518475725411070008783931025066139175300269444228816684323932264487995656440301978244930597940567093308377580002768572261639553426568283821249761175383030461359068671206982161803338575739412755442984827427145129358294339869950550866438314066140739460834326000920874832760356410418871443507753771563514536497659693122981364549452286063055492783331095104285256927602839849675779591101664949729825637329843807736888032926254063147347850130445870540129488997185271108485754256011063890062556414809863708742318145888350182001975070477055144366807296741246914369587877000632249806066484917020325024812746497907537940098609604275031875297854371608390918021714024332927699367779883424486965072868977397036756202612856625655344738100569274072822163046801765168322254346639765686805621359518540902837489780305804388883615395675759411055239051668689403934392144728243016697388814799533760683535590627398388359159940786001904989183061689322620409782073688436699262580786494722264204812777654193424513721056617100612191201794208332206111690104962338209779494410352601722391088760697882688627448255819631117488486587964447661583729608589760483978300039895648416696193399700042805598392221835649016307021026909888503140648347993011782906575584606772415282344887720640138575825191832214192402474373926120643618828896972726980504535925468732940860731557658654214747537849209219973058266414708188789414238719666464276700209037369480940887756639924703507205158640224668990781459194946766137296171090132801276984086486269122542475321675852812994403125611044841801442630986737251940615829020938681078242432659004762974892956471538958582422149232203254146695514087420955298380358289274684074817882373462673871118304335502195077887384820821868802701920170837238217478403962096204628242505917823256068156909338719526933172072956561814059141357812522356933838954457911256100175758268635746691846042030619682477773056875953784813588651151058042144531498456865328602255688179411365917259872487207641917481975326063306153076732284598973469203898051847841495164840931952561107587966779332608633252247473705192349696421867936917393380308362984217792788199054324352164231959445913380020360788251238235010275521713363649159483961153527283767820402741229035864550063201927246878087298717317660703673584261274710752026576110714366068888893772218974727759996249535572416666404682212075305047738262185087161466436162896488406664139215294944135346835079683650010525055548594425715252008467780556415262234485528949389414406696919686768146271867170929501985814655751320524035864148987636554387522545685992209277904745873260189704696123046563779609146981206064703317779024136444029267239347699522509820198911643648966354386812028540546216597811455168891085410623146923467664659071168386846313020148574861085490956046520694074783426688237534133892262216410733638971891385776558789423479703915197653376600137466827030518827213857303186143886657037544359186840770156558591738950159085445899172862112089597363117456662565282453647810145749353324832617535114466154016665763149798217510593032149873906094659842436935479284883632789582203884377300597698608280994709630924252909730249975776023814791979046402683347573427657044995092697488808837610885205527823085339442775817230528462172849344339645130895937043786890738193684092618732236123545295417462435861502086814182481876442410190206696062879159811728068015330329928523272236425562647059719394581369465913758309231797222320071818402862836666143324707159477428067053238639003341482775626597379846231334517709299676512916959689542378757313975393830336266684580453438118800555116988613382136832973435369034556355340494186194940548774003723952505004244186990409958930487276487000458562670704443213314232819529232667740213600788585061514260783688826417928168323470762235337646993801844243863561754436772681471239825820593895233343634901063939055166206659239971624038287929797112954080892483946220321472816186231564216692769089560397415711165220545086728987768094980946604377601745029106836599246277711811905015687324106533843510711135121054099772304031740758970893293819590557359620507623136877841860747980553703810529077440201586982205810348731994747006322512239155496705002111215251728942826154737098604997175875710719098558531017583592166344765344594528118048565832529724767095580089344469066565971217804838397269401192788451138475403565973554974566091679158335083040564906756687745766612823382736162421651479225377866287334530410139822101194603018423733804377065731641241974245918285872449850516188324579311423071874920461985716278905512617050584284991445751842914078021825558749857454791181533929845044847123063304390110359209772340135072477863410599111182813944743744232215890291765561107644235335288852058151883706418501291087635479321736309639525023633839098968848090698303197610265310477225479620249853808123605188933318703025656716887449954286906376561194004037618937586376269417286127365848171478109694578107249261879522135324337675482003658235331813481082247855224884073318424461892086442108935102221017362965392339115508473806866860661516855769298007995829772609915003055880252426695281021901509097267282509950902954563446493866651613194437544509313459171716129943172951449246677226416049963779735217113949583553925317575496951170795136204816835378650829878703743799480665955701769090391183583565789726982960901575388263416839337780538762017228527373484472250103472450451190021494446717403797548822786526300665237208092791349008856706431080822812700032666676135746923381153999315927830463067971326652566186513386159401245082999534089722083487633460196625797375786107683639041614575600286206283674320131727822033822518828449162705313799347552944165304711545789467127094284198544941656543417798373920446134107589228249460471293753746458105249991488351998550264260938625142940109472755859665303831919386933433563971321800320905929954496227826375976430336914463903973872356415766967626130450940230650661578908200549065558525463590245700076372402296640406002213435755407214165046862589745393797984857031986673861806777369846242853189908040446210275278922210517281392971562619351904934013189193462604166007179963202744555162285673427668018837820562432104283512182068068379840083147592140188917581239782619564347817158353305411290102080089090929244099658053644576134330870615844027815186862862882937688626727197823642579708316080285851465724846310711765411100582527133932005469520621308285106293133279004599752383219013447548507695578005582771115870204177519999604133323817601549532577497109434563998279888158657538084372471209003237614982033194672991005281906085465788989988678215332693776915064042102932048627584980779569367270170242338938174232028798343462266380978763174973691842481448247323773769119448994835903155879320899696313427247314283987248768784930952019452735178988873997072684897349194096789001613077252708267669805141213172474212296241488609830243223560409818218854238271227308817879568719815641668249851213370960632260003545499500158570379668415916212372164082515966205406929149687607994527984247468584269148744734422158833096542567550553203329041945924698165884049955725984868503107159631989265779427919099964007387065085377642930547008816230815729467914080001709386170233144251560106934741147538636499918487793411167289154555137770224267538274646151728530730079133016154550698418286483072738361128693609491817317804488244277708673488933411238811533794332168177529934558004370395535015635254002477238840279928336960284563211976097527824453309313790529191770546879561192094214666195464155833155912497868609736871901124147405503156622318418896429259573810593483467560267710584939212280475313791107305763598117536740566488567884226494156521416215877476304131982080972774790176389594870189556965614161313222835973611445239059127236362617162010128270714022498118125978614926614040019712619200308916382630365810318611203566796051003387218180850010698072343458471012234812333239782665455962019313815424312790467804886937964521920341874382745789157839383053864001342572371599765544728233440380470924833375161415041537295689411877158346173712310029899926748778664369023827910608875893425692672570547286265702088910693704333350375739034144253440922559087722281719177942527955865173678756422770158671935263511813768927655414320795278235664813125896282727206657713397000996934558573691255534665655803491510970538735139433305561937483373726828293618798430000200833610963386678281023025786099469020318843182629983920780643297522980935829295988857833817439700145680704751785633400187845600431612046168046728335498871881833647302367640039294703175135137002298032984245534364419687549570546391607206582372350177402607089273571851367864105848711060600168766951019753463478292883112019570476159411491222668071619825661543594339711080064913133407856547048643812006312965475983672397985983638438271085332088965971455240922296214890228274867336559261441569568689319893070747505165856513541967891518054366070700021151731992547165149158850067019405780323449187228778477851845733753469731518141566116936338840682693609712789885001854564980166068820271829324043792812446722945304646437442141616689549752394310715153237158567741455479911894584915965018024471672105075850633392206720939633478433636238358797438758969380079662245926389535814698794400169929053350621082016316650711717787928138408966498900182532195989878771840841246183978392442249918014779435697997435627518366952397956851805839304844371142067336199164835781285996691598481586777430982705909854515074427197374628711432653097784778297064588665674113538468627519406504347077044405210369218149574480312884998465457987474433876655699156775459032589572589960515643597986258516461499660492828493975128285192426307302670450887610923889164239328939570955478702707334876151120867299951792635415514405774568994351618907964886382176834699166040848534878483249175730942189278019556676754572261012399741374875523041662796097385605835926065184444737619423625782461805710752116074630296957011676983949573241837113893498828656541848341629375573864552872552052278573281955081629840871862543622174344034233847976592137945532761799918008114153080220519883915558581980710162831344681077584743955166088208809054265482583763485623524109455985057076839415221322785057263368816991099490849910450339602487204528214530914383860320122821608506113527438240608786686235407146800870442606870276445765314038384048509514237975133547098421432709302253596521460442381784424669453898756785526004885549707909589758141983876853304544758512604984950642771338032034339194630791218638351715442686431735982642724798363816617930677289906988274988634925683754146126245090248505645955501868987898182657176763859533018878006115207656538888622838583979652642568452448839221968067475255837742045379824246998692829791925597643677064842538920607413017834991472532672522745801540518153949193196938989048521648924678685357186312056992605971939778214200713832521080747784715238390361677165829177802731092788329075213125390232405101753912754312155646904477623221609428936380839876769172841881566246285650014837509576612699047249103093101214297839550760032626207673735736093515870761521379045558749180079281835279760359702415670054850937645740075957312231276809623180352912351248670453472939263935484861627017633987816323666732840473823882916553587770279394485305491219399929315044282757208150680958173479033943182137042436102167810137603923109521811730059924854792632901016398383873122273720759123415768357178717062556326638922994923037749991953412754781248601001963911426691611582132216404536013020787713527481326603163515863240904777428559748456680127790435469861642955748847343040511738578475124169054227259506183198957698548474659419618078114989806325767895069127842711480773440578375387807300233234230028531353105482580144298427854871919077143374818059298972195948056788683481356425541453630775943752421885112092192737714667567045745131711416164947294691105252493018520792387755245989142683712887182491894224367052589029798267286156347610472865759049759931235217298247113840073965159785021441212009754216476173720950683175464507086783003770985844973039237515858200232359842735807391529227893246199127348878026206593230827008059012497810381971380072397828413733726475400071905585658265361020803566490329941090064131538852360543106797207753869668330412859634554900276266328554283711720868243774063702289606336777629431497369824649920284729799836834889953412465816754818955192640342854874954473019154622563382612163139002736679097879241131935702068200080895650542514345605564328707918384910538685989304230371442052753610519717082922620624269332877989579663124399514189497682929250409170769866843976847146016257489801147255575359273409982610621091700882542325751354824796024545397192771260283291059379568639779567032168180214037747591798698254715011375722165326493801254441770469961566164886982953448171241617754962271402178070881520568590092847619875003310738430502093417713001218010197977365160925572922791284802364750131368008992712430989430094210988858119704683185234259742001675077245320459291036340508550522340111315636096837079987041704046671577515632785552571082216916656427664212875589283218441414018184146277179514403679340575704087619154343432642007723116766220034001655572192700608089335245159170696378527308599208393153765125348706946791760310263166275240476333966538329333035389683797364775914115763555467019842444382632608054749272489264280367451733135542172987737140718704766162592371259223928910646395729575823539941787835004676241083874809882423487982284901276817029460575288228075804475105132073032835925488549016898330239572949240653093551104892816201368975482239133745385781708052089456104953204238692684398807626737888591954076538741782288136604837797426230002765556249007754261281625756528328828668145219888587567147983839348165247589002545250781136003678204522962578647226300467753005478427835084755185941974389765622481292775702343544037148331099654335001656648124303366100530255012893036464000014953533812688647722462680750622167278225384980807382271869856930440682814319962491389415000003872164461065933396722796072654466189397866770078108008605282824222042275117605053864798632689461816170565475479143879446821654197833142641732779758483230225451109918089568120635402655497370114542117193479915358744486550659452980461614061925510426586789944868990099713774999107652989673367399496483956101310367051943994317340864549970995288758031688033772833326947686361304284837134833014830854159855250664732298378487920346393419615722210360339829965598905779051556546634593389688742337729921120360993194304704066663194952581674421253697898535898155261303340554306595346502840841483526812450336936292937504935509236959770848674399966403289791593429587794904566944109272604022199853730241830810967925889254523948258316646809920560221752500616022423145274100376591271865456812466601257176705722267025984953351518508466022424221418222648520774979669601667356562500261544445550967488514926123753179648365778865968016688111709162634134792654975289149477574302845186887031576449936734941533461229403025390684524792760675804824521027373280987578578321395172879724207278791075195566668829791449404646487934076340391977342393396461227630518944244100431511854807100172681374104316936604415609080056129703173311094778425102562318239724950238946844511253000524634991572191617024292958722825037439558431606013704446003386351370277985371905949672865135082676573211391187434556681537912656748595055592252195103709846856809391999907804065812386033227432232861080628757931037900702218502768672174732670689597752603882324387717507185349689189778329937885447603779169595037424246004301120264006382501233107013699444820494582916892378604124230533948653994500217389510100889524826337088782002166260318333253074612964766947555016285201670786784796718266490442255321810788521250989018317904488959121481581818883811453847976165740443153943599207301045436349059776731118373766291348252907181931496123851334159650500511997019215037180435276127701197008286147222090800306637449338086993038461799374314768303013275891909109768465339714707345908191388397411000898744291634156115332553303309512813452440029379003790594497284776916052054263610713463233480414363712674563700830734593487306124471020605168861833426640715290545650297608857811314247813368348416325159289373645177146586789131040626208099476468354664443224470332034533766420592081725409851449009027860237361716454379212419142206965231139377741148042846741699183390869975738231067721746371309823508871680936749374465256442423902387871298999300564379267048737835730817970439246342497906170179973200507786184880619236756774086340689536868459468764887025331508079165089385540658142811822218333336234293504220401158779847169859118466112100174990717543997446579788084197664164552606268295588386532963384950902877966572046530595592471485224335813441205153679470005364539129103395731096220816272558349866884615650591083979800512649941921897020808460705061559445239159272443457788184019309737407673771401028759086963114978519976603173735450406805223333035221500362934181589814555936561190531290980349144580239123352013516533559819844585083678383508787186626560622631432212368327837835635332948148990060439875171531988248301343138654412925527048860538415757721769455885644594348154532443051950709046131814503795840739973720304459719823346291935180963333785462583873690884838257751145946672736104238263747626118177441393340888579575640042108766160476986486048555236929645866394950051173799876685881588159715259702593608040079652075244827636696409016530226782837818472421868876926840528307395982423403351326352788201373501378499860228172314971113926828884066570718145821880369847995757880013659009784731424082674459527600573227672885895578005732368868098808015838960007730646040202724678816096891655841741383137394895753844004488698146894522958646783932373927146373471131460478979076376436237367763936329265766977864412964439485436776467795125877623892072428669397249475238529333679477237668891419986443007604678851475402647913925566534810162732681316540445275143113696861189547370987312032245537848813654657038854101810667890770626471143520553306375584899869386606931409367235894195308491990058156784102126444499115458556531592331566879199633156956313986431346432532168387771608104026475973343472064396706099578543724746493449717668589293756725824244575889080564024034511807730114209476982125602400407588765833026158137431323759907152527575691035838818530305648948261780338605894897761515398332171969544465590776834201059230720741556217037768718107987428067377556097453827214828761494905903219919210220545659013885679419413920123388375056088905607856071964776783269344011032989583395188452133656941844584795954135749324052839730715704414549343738599858982144966170483850928408284883405535797671145138928007897929342045600912783128439936763757541583983807797972477048489971446488649428676515082187585286936106622935065047428565106531782114021251286851647594892355698941650374871828377228780338106183995276783291198844736326346811519906551660398357125407081011863444869177924669606647166051240759037871632977901625320184217201199530238188259540432884879174851886358490326722870898738613899291453339558743296286281443339562419456589575576052426090631753316617290015872354932854326673056363603152354938630328075210740483213905814672647871101529797027282383178794824516474534337246845089397654070115385022080566263097689121008134091185232452999178078869546965640791510474944274314310636850564403986598468417142277282054660408210319987704224508390795317393316315415312903959958502050162611470926654847686840919705845558283518801772245605044731418782992294908785607445433758364905919544645970947155436806596950214267560347776001345201270154730815294469518491764694491122513602725162366498355650995870844764374332220878665553281097917349241153390130722429229824508232437645647733412838189376124150076346269211842671537609832395523171321466402025142991315962843184537009525184442468162510481485914754760551238267001618861329164656298444122899174103265843451934549566307032237572952089712903436987146484876272256009173023409824487367359086171598980542065241668063211682959450771292445407302895913212294022411574954831198947262094108744980841962527179726234441673824898275628904685151488335359113242618149264599734018148946617199293160199824711574630518731682507314350218379862291577100234506745071490424484493164922174116148015165687285022808205105617220824173273064734630571920519745706181681506000771952996683503757862354245031924825490782878005899952687798894695434973139780119193382108059785412952336553995672430409920630855130477896227026288695020332792368930372445567427383663552839126988775067984263028268190398356417944223120366622250344868984043401737569751120162870359543245950210479437215922795300392981747581430545096369428665171347621730452436941366698498908007647570977233525928494314616933388781711540110596817017423969132542585512501542929243339250127869818823203800080658058150837603380700095029489922359807414151796000857110818157132652083568827332842846737406650091222447445726723496391525029690182071136151577415086170836414830794419834267124641837982850854425636215730453245593056487890651747567936900546882911963924879206614974506550188693045421275093637153376563514268627393400574022470964925724235121305788987146104992032919094514548118351465256484906470738028698244978249510762088066208650173553814936850366400780324577206134448160965208243707013243068419535562093176049686142139715308788494399460106391875571478682158028578539460676288326184143537246165013235393711727486445772731561105450158979369747289873052361540428333296549481936440612660032833979329787448132979074810666915485533821093578511230063064110683176304474706102525211120489675815251213284973539123428418149938015452008198146483291736214115528073874457655875035394351197076274452252959182446858953020132581681651519093351071754724220775859494881797425557540209743288169986181858079074302057357943565034986150097999104636807945833682766063910246669625433852152844122352227723485032849397384432758646633960612065122295101665765602328805674752562802982596142754746535474971452678674141094920930500022955595139779968545391005595854748469145733703115487850920972103416630086895859335153395379770381355073294244149322589320927438595945571673657740101257558662211188503739192430905992691670706472500894379903358756714023827167961683845357194261818739975024437974902582614126002598546234940478927094689892351147315034430151497301856919378196820029232981115114782804326869455449846975709763450834844321854761859721143691552217411839780996287121642492312305430166877624408773899453118813054433656501677834112278898475846324073090169529845476221432844366584586013322776946450188464683359422964785915863215119339085649659783268905219257736002493414498456453699057558762174056737465498910083922047353439489306837712864938112730762191565481692483206606414422048465348734763686807898340677396984518111503077570637117711074344469183583204898905537202499883936329825493362937834026020689290534573819277006593860166577719000356219221840682994415497997625243960068995626579402148007840353559202000877610303903318058019685163165686515576901327183592098539912124515179149792428567746744882771822992885850129093366723086479690269428108423707156994760881887880694099816278154309060837400610268094520515981211416974504523951050196580771999263019784654238293472900215305798681032126925954454772093383591347503200532069520991252184013979222688317000519242648874181262109872634023288836038801200545704621690748600900789300070024883452112731429661034507075825788063578432952626963431787259284511560042156811908420354138882420787760722339891252981206981940744862827830706651869659750848006073037314774668172665904748077156489510083034779559027556475819816676016264962911557558123344047738644803007990410121756040292672288377959218706950183469623982857129163815042085252847896864320701025925551205666179402329848132713814099876019412643754750712726141350985017408096886270428039546209719199993989979059341676284876303892282520545132901040143610523042761848884592428688838362979485754823317023335628542325666504911347705632563028277542846528856741330245153510547350008614376773401555662113736882157336824879733510741817422065964681671900357736570095686329571887037694235180104840597356718568691458990477144082604430418152973020214420134751117313572779322847993988150390239724303799976291361811737802978132365627282279396244933551215933023202742642904040268559814209722827713177770067471121758676636328885346703120077071203873122146742830624459086352137116493822583995635818567398983628776465814757031297111685824879113786121986329844864684203646584949142630033313345402133565048017144250055297911694151429255879266184390810678789899067815961575290962502171403310166122187824287199007451935402010832467185272452035010082704450960420787546045722897573525050673832537921604386698883865587252757283719664430568509089717167647240859659537599318502343728567129451044124347041488025518299686128811053621767014864868359265746391149010170544498124159129552062923824200537624733477140520482122582924449988584824162184562495283171877515960485444173774213009420853690931083651253487444085584921316854170227385483225859487463989210735097028816268386202860997646692925039762194907373630833575875359875068468514201613737025678101352539078431721230431479191283791953751433430419747767534781615164951186613240849822979914637638998786697840732344007571163734022152862636822568823615071202132101229652881926433706431014953621006198832323544981770872173951338528102962981226419392720252318922567346832207816425683371922386210577617849730708089786784684694878203074324725098547104631598357577756998419071865237045851159710397847613317789500426159039997144805356420073170388251652049743968060295554924421687993889334092452405925799126385024826121573756606296219360812231621596061952047454571149469370153943862718430001350998591216771673964348226927361187127341812282387513509475503261580028637525741201451884596861440247748321509339019600861722951955949658679518645455858100489921343148510101381788503319377455524899047982879946019702229010401604500971229246483166856699536297526655626534093101273707330790361500451815688348379602165190008615528261327181424747436118821466091276246658815358955644760479667873024815459078748328191815095239650027907482567187284602806394315273076077574175298398080402390252030731595918189255813622415127330042812911618909616908090846031499736893814305387263486924797004825235444303338314971476753777819976745657813266610883154968424715056313845486150661066003956115986994944484436396763722001148400480326531140752728234365596840894561136483417514336107052674596703544534349314662241158760804083449008710208792032261329048077321868304361561507028201477475793048780805003029654919318877519123847494232217906783857103751231773171150151735794660717766441460807879466265606249694120986400006979310224343819591145391578890915693528082118221356833479785326030321690322592717785478548481298023429167277294098892300119613010461012013285860904898432070561568798614781728202485926479901131376673572076355642535886450815495398498629325002849868348140126153733121319306758711673113220114585183820362049298702453599821315076670673510190735172804861960954043663125111921734418549351898587673691437101413194925676137192553492781746724781027140459196199055729202525421204882280908334587930456885004596188577243813473207130301622348136729263184100587184161767282630632542595818999316860527136400515833204165182809321858345422542442036993593706340471169437614020207998138309209051002863083821397325587268824301821323340551217304452655410936091988537741890802814316335864450363818359540443446939845203518888841923971351592220795959779000784591295239491890467006189912671558820395055638300571524187711869317550304319825488070916320680310130794229045754076685643885220442219202314158571518242076036766559204597587052277969916176189904799723950913996419328180035105839734332577065557126393946590578708435473411467657652163028869618464985799890693800103964005718884160143242442561548331084493987143954428040784385911316970965146186508728677653526263523584220737326868579209430254764618912431387417690211775728849267754628016820396994162972252660086355173744883398688084200304071880645167668053495012963682533223279078280856129818781888066308819614769596834768462402252455434911135878081391122123950182481058076858237538791790486773232551078397462551473146996730089805784665762942807692722103484045834923223511836419701000305991417574016040367709126788269160782658390260042176293755945238497755456839344334393423155490033784356332821825337650108201613856438369249609672217933523674451647671144165182350796456333819206127178900646080600580718229613552210760858656493975024119241706081795959552959749877907394256483512820478019415096128261253632404889387477235425250317440673410223436232525177510358921473489704434970596575791283215733616533937401891931701778425882797876436291246601857135592772791612506113461220396459188566946779664572517713222410027764387302311235036974344237432583372076498279214648272958028103221256088110394903017237609114831741706617010894623752231739069919859803213452779381781903019318394155140130677262098914251981755776563687852208334547176143710949782143524630404503043028912915126195144975038028795085671702428493385140288005610857006311880005250634581922066611844287647729339471069393496474922659504468860437878098121159848761632494943660309760828066236981967585810078068316416694294039372262014642059880426678039691832019936175750318094011900479947769961695808997718353966436434388132552945346510084608220837567948014719978639064383766695761755145785425366609602521194870858223455447066080155501460543218959186238838206624124098385981445109118130189659289387002283166682650365665951392671144855289838000647098766900975356252136437605584963568566787250498509077321387440029895793719861713055586504443852203437680414600114055537503425304264397040321728835687207436581693556349936477738966693242581179184522375330698392188438750648993606640808241884274090532640936434060554023919843482780908383775264768279631366975850033511211347762306855283073789289530703471842685338293769166307954650625960840506777766021325404238407914842630689014777165505638946106055859889633295552000995847941804252002971361373673867323182878662377501415794339229648630903864240705871308677635903238860089020531518702408662133918081516751076990188284612043860968321879917721954013780968428217214592300377658923958637846408914353488246848730916072947032692056908228253095729062873613446643439196893124408969800848297311376048387670167562153724997036116205911225337484952013466857432146303661561348846973612255171771442095309185104650944000514614174266073335592664883378175131222353938441625220954920283077043432263079228677054294008676403282811697920601182697664874018784968076751492971709581707425996994729951526536812625400654079141206826024168366672860492385828061552840365115133747806586945601737984885850913559832938576304459018886247357771751717829960292483116336972535109299614906744372069270049983609689109945502591599819617353439934379928198659739165089316238111390101381009602374463373474927576602066494953047811024320528198072826440701467527205381800398415803676907913959673282526614567172110895883987064414268417412900044327079879358746319907767927341693555196643991307445000470376785235676708583587745380424969154225362474431172982523067405400982149238297335825208367401254194784817602768225307156400626936447680166649918974484254790728603195818132028317372054394374009210856697458621366854972949469843501192718504057155827127331563947289448903685852540680934081094193574496084398940737417094861329904550589518790708659514638122546631342261664425692195211122959544518355031041813673882041507012774243892470484821045962184398399930153414273444602755365461445664455437044956363472353433212731043043733434282259297387560085315509121226308576188938616162797333737139172756151225645076948385237158179288849570161652169978698273422350581870616245740616562008404551403642652328305244947169630926923060267925094390995346857577523334372247267992413785920108278137054834802019671831002685532310196090853999786624502388135206570482552048996540866358536196956358306821347604421702399199877312309881010182438318523249386497942245871628263304618670206079620026272152612959068118215337666887478255462751550441422827333992079678430248702155094348185488339599391412135915969703776517396409540857135381439555621167660530839504874902397694081703073397827674869525905268584667293402476750707695821219643080269346419334328930092357048590816971076433534372447509034782485901626128866294648186920108829801046558346029044798557976189658259700312040109457587568498784049898313008863976523378885984774837975816981681953893640322766262947348781426732068363012853314819741177346341972738450789652726907625664818278248079048350316400564201043188007963933043391553339068599804870892235629615438499803771818255829552215625666191774142557380705364959028029979627152928623113552567540422935686635911022026922000513136652394529394392300160496421803226536905390954647268275390788559261187181331150535795293935746031359685498662402432769252638768298377850457567258935949539868062857852755179803652039700478864562339242873455390661521947907572778877148527668510356326450858244040464393576065689725403176989788500954588781216860626615157276536676855254686545268027111385775807635431132919636090253974860505198607775309290385726523636094037103732553914134972155126547509065431276243297918719618813881851052307935319416649448271276987821616184244614176754987528837215786422851438131074391882852323234841216903044055887593174694323523186538389613753566320681179055725447933030297202821212981844568201216360796261958602660678795564870575352781648186865115810332004485250724010977302307359633191850321553312644788936961692579334680888301434266584140566294721626743929491051312792766360641358257057042904429474331142499859228623929807810397035513282210228393702090096029503866481939761710937517711683036545945642099910834762857168670261038821358659272547154007613385369375387452518124843338459390048553504208068236574435297098963359007695062487282213801541077376445023004434816579728960986066159650379814065186058351943548679418090757746900410213179570772612039696059218316312418870090818920776130814514556274457972030865913218684816586801841144107448534827202591216917686895210110337767324170020346528719845604116562644313757622884304611076261978072666065079697276325108473024313518051478179737258666330292566410138021861852288195061827203026504931006743544865786796381671820661497411775644741113274012375984737357317611761269229891172479543486001482409645906087973210544429344450045378930907687313647698568536504582674014181788643684893304791280274895217196978444376541702215092619339200379562534762729152513878329383967908204152747837780884248991867237356833905228703136274432488485613974470967186793992996068696953007449990407522538522304964250269407849607944725955913726671317123727809304320682803057805734864054019554588015023563866565217832636415254425381804370797414367684880462158712844022175434735640195680588975206484152117978868381400788719316944865467936936534760168413345664707623744403759246028544630244769039252688619494674142335306170044659507915648239377259498124980741554585892247252657934194369816069669433554612720738356745730564759723885471194844960042361718595516811224226083877557075725916163854368593138142853000767954440437648911082673440973533324185662833921459412109810310712717436737109958620622424273715088229359820008296845699628882402956334727597818409008702733180532810206221021169523374673791287004221508539719749931372817960521240323557115243887734262766041357031320339137168170800042704398194215181857411624767166621377916679776353636456443514640728959209864439981442107786764357545154996764128411647240552073243776260126824155148021336093901022951609966954754232854718253149768553390032601865888042393168873446942421003462754403083791157813312194446692515881523718277146035772185103809221633929989650777363420202675755810574064069029840226926358571957486248282202750088196964081255309356481374173607067596371499017745814996108911770237128802050599379426982504579098242292933880854181719914974242482517015171251270579397190178960716834416032324795471433792566317318596589377353456162273501616918457132175377681813843014987085315183975306560090107145723036109417817820648698354824836537367934455633012546178662705046939423918613845881630901525246861852341235924234300128041698740771108606421830759506472054339518852948177272622524222621524959915774656742868566726022934477035631413889039034059945471248683619356071684062992549746479633639591097773357630191521352637216759217673755194292499241171736717509991713606338925549217365438977545998740402492637757687859231951593641430296110978596180816835318297299269892702339465448544651672225023359897941204034917205631150562711559178633838658832347959165601815796497476861291046069038454571808862738795193789291081436288656463900190032614924204746908371248164223202520918072007376044241035560890865912411079334108609885429065304841981201797728704646457888596353695347069781141974111362992777030521374179077756193693681369679232112468844410327204675859197813078895442653908998184436209783878158797214967170760522982115057576671894608969278725892029744694401937346424852434150700147806980737691727219908182952842712419966407551224181032605981064926592808390068345051142963179761811840626075275482289696261692457092409950039741811786146398542335359592682576724193820663956719652248490178078302858599908889789250436263248634737640578246151774903734931578668106351817262695599268141003341679515605902382808507834744440737854516692224520686097322671875621682961092105848597327720816788841680920738784340663654087878290384108017350944127235375552928059213383494321510747024991636050379547668549576489254554256644280958844224831768794001358694561827660959940186845618203999337062499311139062938558973815196157721980314075879009769057646047247461989323128939936907033115878447278821261772062624798693555220731094547764798649479427078518154787270186597233452596734516025873608966908100944197628888276382198326207054128254880884528506816619887424895076147974637344511889814627512272457925294092899136970729576883205377640048641567412592326013661289048878915208084877191201504548073586014167093667830678304518047388569912208793943662231220743435948987357647223245650382242506188545103505560229636997715281665077021746569323067853181034228629219844165444361173551184436140403020431338253242574509520399680278523219817441181489485007698112824753192023905780741781633922119053116957940758387660224840163735918317429297387752034533525820453245618616940516726448008863354063313055323038438825692612294863608161413328944998831550110381319123690155072976956616785944421923503951344037678723739799557307131266989340473254345955738120858815951708232329699171526707063418247854888362286267381031216255883523938624687104107323926800162286038909802860904171400770187614575807801744992445066777919965824392701108199899299548133711930187612705316382192921265629258271753072694127009077186433867779537700123402914983163887818111406972245550579867450628624873368737154520637026180694292683287374286263281713883723277597228595497370348916492925567349911400742739098162079743004963370927603671145794013763503732148655120995269810158101864141436202521969910128445012462776921031143074079169824511338042005029402672608037516070048567939643457919101241028283713793236899595721566650286616015776494221446644030230323487106213688144371286694787778011460057065521302892774466560750279022944149138761668819938515089993284162326228548873592876365673014637673634189847472706735104770301983199831041330743402756309160583012158540879067380604096097633258215069744821500742117146278412264585138143989503815930424210065708833404589928125458613432647841903972477670738692283313941496906761218770413305607123664542430852518151796720010772329883663253095559035431984954498967469491158998941145583828231841003376218836414253878147833832660082327442276854349617798249641148645615966519715263085592009551244937427043190322472299287474827977673678420023376825171278514133382618473597154995750561262045425580249321521176189115235049727448520109847128665325866141258587701714726635177635330561810120101023349550853700504988083163697872714884307179035476527488199966920022913716547007347414472265542450902129260308873548543628133924865987730945654028489972682221232309239440951110987407926877268426754094852333169360266880336499101475255599609155161354131168411535577238139419489036689877007766287143156057246672436212952498468550553871246022661994211126174733094648112642613574614346123697089873698080640331426513879811954940048108083797189010631292181637915970795896000496364178260296270662410980318610793659766983694363474490429304375880330938891427432389703856709432811478477127492320103641272828300715767236241418843971942688840570099255661067285250885242101941628098860240541145207360101231223671572111581676133021938737632668593224291648600050359506481158332915588236748385516549488564463298799945481535673936194295256988081900917864174216726200935640492215267298371329348959826910052488957766818740778859343983734433091975664134415737577607128990723779806357652655856217805736348492082169818288506247388325586303345371328203699249746561536392141032247284173580024837465024170152046231630322849566066574422395913147989606616894892166361996670276898405175962633447607167664323496099574130970750761889549056738590955700085247309631303971966879225192075106720008256643759657142723310078793694986976010111594752964992018253650417660969979600571642416061640472341584594452951596063078727033645123295481428874254159622535979856600721467939963940619327444140973507394341520058934236198967158919111854446996341557495650530852970876954002795551306689285009001204348328377961698136710696679152771276219353299253546105197666122760702643722686284045158079867136958210145780996179730770248800028549089927748649814389920587854088872347345446387369454223444309974010685886631566203145939141868694127704939650321470872004584025135166363386119694720924800083046093652046584366780393643031688634736849584490050408800222971346050553200286124473177323350221847132490171508905030917915329809478280788365747063359616676913569688646560645140693637154520378933276964686786464006565229362791695557472365294228800479214490051732776509442486659670463148355150390214238105959871468833758002478106652129165595760611479707886843629327787319499472504412224153185922953099216247560559415734632188739927131755732118762293895249619681525707882261584527995899294570482588095364184518756327432498397281867768598959360871734847652943821934534008169747500170789952515356343501831700463346567782775239763454774615851865208810264502190882002242162181283724392931689924219816851366614284212327541486270163288039046374478497819399636902130754163600878393048406718304166408391861302785167682947096377491148076794826352927207751418804921807500471804195892630163783113211494732142053960805967888145636560988992586121050888955310809587347376937033670683921255357157791838670447458299418621285687468122328745838550112939025044510363519786974929875632592881987169131994167292201531234484983894256504425529280226492600004069544258231838788430174056505446490346852514592351466569197185535114910246941154178174536616878463594310418503959135066365215913878159117384679169365278588066886382543891239317074303340203058990747895254190313535427016498882384920458354881955291113627305304406489517836969605042131995268868132941470321058570156385745177634729829423249828082329041889381662990667963356020132446456542765671285937490415567428111054036934105492712794571163500382624601331245842370054775553978994958860702016355919575256604368741611815077503367835202778248978282439096558027656198476170866166646611391140531698097514269419623979613037111159699374710998771600345497212042170944777382132835037440746951360661581067016633833142373223612806818826740922516508160825026854490337844959568078244014686895028727402574985179023905788387761103049064866066187543938644236890825124081386166696196686754613781168511791416810328312489717839512959865624728458718159005045496455861167245621132276180705120427644276229816004799397695735855481249069110680812721873066144849426883168190104523413790837759626848217363265788752834542859096250574993843421457579581517701494243477102830826383453606940721646740793763356490328664793174353537291815994646885005099896193724898667967520708842004079479960759562450386479704556336530881736864528144309657819648514912560999116978742901618745971463027668942595213255394826353548803189246961641692584580854356930563914513196333365354966549934972257816793086740606203037958285385133639616085592592478882252864674909228966634377134901049707705479784831525797942732399306979835643025252397342170005665899675501661845979531708989923970062170598455706740738563696740327490286340752600433296586387406852938515371102524477918000215924683481757605779980282563222605199913153620922421630633479540334643955001499831195276440554162998918564032337379340104054693755534642352042868845345379666669394870390162599174990358519906391846206771374164607403035503471453225474308509209475724402913427222069136128540079672218546482148675142284340241525266924971456952101241410138902272126771436210961542406631821199416571241992553823836961155338580824844567320540989051533266527129382092109345700605580916066628594270350143080103143263073342113970541907056310003055697766345067541156864503106864063646864500185086650027448600858120728290958413659932470137136133784358248693658185879326226772429125662726290202803107410658647708331408471864331296645125603879909205543372118015242917546011679154874020642281077746033233558602290935913866987828858891653303740406098693765171104883715690431760895404591477016348766084477247492520906371886514710793302219294222277985744740868406594605016523167583327482869198947559761538643077173084478507932224846163704417603000894314130257923086423903031974996645841322937557210517647358213471069168811021438974035515309354455090489647917532763332531259403148588357138812432567626279291560095983624570511292686933823621065060095571997448072149156099897375239179289824426527988857095577203355350513299799795945378048939770750925552976121102547808723365466906141777520586986756011526365991507098321063312430513051196104249131019649427828912702838588599955237886793861381146672804922985611032107487857657445696986722347919901926888628429132548372455943698807073822253493891112082510572984125394647603578697921429726348770511058846990093037170150400533128978416515432999229566029181777739753886592541209249771326530906342379752560756225879338773556763328955653269251928789157466693111101718373491039410641461634366436653921407087114205633794116358310375070432114794836309279303165579608676914895419364355500412447343375978743146052932067470001927709080714604040338519171720573239884082735289875309115415459275350127591738645431781377874838748678983354410379740571802009027886160804041357343173310122764749226444479192362036560924667738317735877183298926487285029041253750948929511789203760572310304383069851288099494771218192126300559635599130232637396118550017972029440909375150948439546568044011673011648200245895602691557559997304909314729741371332342834283975333936549943006262306391430027622215875200554966330655291308963811907128149029609986999361868523759722300323262508311338223564195010880122348986830440241238705233797401528855631960529983832061506375145932294337174946180039821743544447238955299553338886094749415695695072276531147805376727503727874814295065600640622156172669859431883282990464112935263188219383687669195150803030137579174254378068516456262941347104433114662028399065101422177582125703199827821021099553816636821357671369894569859147854030871582679063432020141601178630788496294554078715585927097053589909825850149249475544831837149179227746780323876975735602386111389700094507117091484299815909148448420193606340726341558784668968323373050509313415144061191808560623484782152221207679239889646119712598737078352926446873656384514329887220881508928552030975493006073973997433548885213554416046969149425943228069913413859955303536578050495736975883109861817548389186988302899700856958520475116970513569126196122057715232936880792391395464710522862141238190384687192239530851376868107532308431076606311047247971565949501070081083308396122931763851908199532934447105103166111240648017370764713531540878210057326528314160057618432676574960489746673333994009837616232458763358336509075759736702983248474737932000560938518408518775853862267214885491761886683481388718690123732310765570145585798731495134023567358273202840897965605671727205704700114331489663578411653941485182600870288525594268825684087372431702991874329907045101966791255794156731024081613526813916760135057472052983179178231969617703554478781297092669909141183389737064151748109629037335604931705180148018732394401237760825394428214284829815549764089891628404670176196843153900404294497553042622053248764768483397872003133609765244942254743352722579257432715343940064029616912364720486698998489547893639893335049492191066339328797745032661590274636442027810066947846655669508857225402307360426667941874364883521352888673380055290839427969224568585463599337419600112430588085383548915159207521214078435137841259107258094575546942603636587128139603394351828790977054159852544605975387778681438341257721713335248279488546108168736800264554471194254328951751221169599236639525989300834507266135956712572744015302832907356731296931333132836708283564709708291570399054342697651804771229677107217575052504145933695205651404230386617480908541577128794768276779935095391083459910851240155972801442069070629957732253684642673159403883826361071078569502834003537182301144266141114780340678191191220309107633567848325884018776344818956563313373138802262044258988030778520007422035600346686727135608239769575495156432592223005226800371576934656840480146002466908912554009731287811834704367439847230226561096940048699740353689819410642341389780827916153061284781242917044898147386812370520632624493742338696264421560001357709912271995457089341312010412823974897098213791057729045492567713250565150790538701123435379084438349912761545282518041210872671767659186755909565779543245534041379138770592082079087456435420087433461187669080393023703242179571672962700049927311915318387766595224491480092872859810920308585169596180140313002504201053352057660777972502638902525784642155152419331762712316591197894466575824323083608597956113475822980558689899040610899872902036836365991321056724963421976124352988169720960991878151521763028246248337466511482185620025267506996587566485657721813239503680229633096658869791191807188348856316414410243453088004159799658585204238917442395992544748535798761170589120530338847033874557673424257021180980537496558092890615505413302626141024066932626605105310382892054542418381425061857049113309742619008049167773374546414767321770211857758341530015699150270954817354989404150289711179938067976761818640251323958565338164182531150092744440046316876191720960282249051631049062305173931358578436743975128779341089109248049868351735760473582739540672537799139730361538528044310166804583696233425548460239645550601392893221324431356130422863331480348168737153455150466770725360370265349451650285906552069956316348358122474028962670865643856979735681769859508233859944653828063426263494168134165145017257552035418318390473997441366039682038564620394996806089115604750513218376177739244143827061525632980089599845525841513653642492941257269470792362535694723552292057962888663784136012166725277042066040496224319811481836381300119035306743910663187832834384434141163496281688475816599354180606909527290039739128093057170430550897173979338890595916551204904550437910957127565141416576889848436373133104007423733580138154944862613260815328186935362152820237505218646079106221992009013992490646406665466464618814351561780880580790016325801022546394391692525579564829001866678163311622824573052238231733248107021957992795610177582606705447928506778329725611456942195393238613719439856833018041966773902186600372768526325708223784850603771264670652845379263608644849712991357543178342638548835518502568310606928184444490067609853898700264338395732207717131170186905233984905047378950700186617478754848410988289685847515268473210434255072358846222377474791073490733693448641904801548673275703135797627337849010829779872231001148194311672673069021868379843312944080254240867159548277614546355426204960056650279020709032611039980397845022432469900981225733639058101129486320590555714663281825234315754917402836043201484125190036662435847784135647744610202866922510248709854869295712875103210965878152089947426905465145132500448457243049431502821951111871907256244017716175925734423797649672626889594803004463893444691447124772472511520970466741868951487332594418294796933180378401857131353932169310036021649904343630352917246145111301079079886610116334093632345276679463004809728900551052566135016804999451371582573888181254978112468262179239580757710682181887225660802143750017511200178148873523117397806199764444471648642620671648853037452838930143013368104261945858698685491088834822232381028893910944393446828878285583360186060197551425294883409243566742114926769493101812754218929634629811146618710008919885215616889021632919581935620626230815148567143214687398109307585079753232801335115337807297289717490273186296873421307449226344637997565106163445005585732650740687745871985258619497871805740097061350027754227495178303315972795179543987203795216662224009377353500817314649971216378725192859309094766711050160199091542432565374609486601377018126809254011463565348257325737374763947657743046274291223617570475669500829971162374631808060799550241235982178541778740588449846686792234174681858633693582027571368506620540657951013103957280883984761323186741177235414935898572039385713225074102547467492024108801710933126711838635764444771861334055056725080408191315672132968511771920578190805313965716900539219328628363067437598981797747066235575566094454024888325016739614915767593629556853314097673836266530889555080352841024814603721078225219488640622701161031502403261572139579126013960322861748310653758329363481684134901966130838512587289868838827334141748519561449068248473634848720324267484789970741082238143101650527762675471129874047430076069325271516460777928153029071692424984829592976790532114192673417424750926147376893783629450718268267357329232252055163773459843686188329476790154482584190337222802796889727221430579942195380665058291598901111216963134500529566589380517667420921422668284963833245004316771159349260629403520154575005814840749754487480961414077882191799391100179103859337187874836938038343215800687034274127722874547615715998909632333676882048027954791290471244099593320378287737900933031034700621978163643919193355014091925130528578985640570469106315576663632128129165568266327500963767406076005168553677206126627953007801498318483105281926580930524572468788420659602078076543472936254169785466220081932635567710177247004060716740437584179753240457524656140733537211855755088551123511662258282428565637376653037006752024061271157446796453568367368188053208477288516034444027373783321760452751000083251234450226920215806759458077093771699628224632493968181057521183491517895731408664587436761737926084844428004910516925116016611617450874954580637303788917689577196779879515501708669496710005941592630413669087129815134952003301797758876373072606359282715609871865137851061198082655480210122126331780751947662687107721507474861779742632607385524779894659281252625100196298780210963199174834179813596978327941638509210064569341281316639848704231614336277209853150016283157750049601956783491067823405405289874633496271046688865796373742985346434912677691908176461763698029461152607514080012885980437198081812857133712883551700251676874948638875969530196799124458685990433267787830299517107807678670605941091000644603316231849944087530614907569209508589248455103296804896194994076298857761512884570171562704632663842838217692006840932673476451991625385071708858573797037605289979356197295419002212652079296487323029278121208614986628869043847381090309370242728505899265943015900601083555775372428428429932176177682270824069885545876097151636285993251911308952247971332167418006905128853651765897109795225977749193904926652704513143744209194984763259473341394614193218029816268837722477275120235807905582895166578996416416500939547383754108842760466659778247747266389411064239741728301526243875398630000031975564027749720546312915388649402891154420973999393303446762118320481665337921542511910935955236126338659051454753003201084356487190244156368561937143706782208587263532383429754148835432144012341537492663790256877846509157493950579573960127702042354334539419563506829265683717238804224988873333836781175666898866885055910319294742499198579258273780205093603295426822737350277372594183757784465125472452636351473247146959232721734004272197441880398632986340487737502554143788436048532464646438628443166905437899470285706402098020266369995317544127853972006621722926729002044371203301274887208360089094982643294098836394638773333480137497507439119046346146480723315283433818274775702241518950274614741373452804159176715131202804781501636921020904021788839591926736041526437688847987211978471355809052541722746998197713863892540093392642652623361172376108102385261727310450567859112386192291932811125727441311132606450752165981043434506224884950419048862810064905352516321060274406438361214881488550621238846323681222189098063408511935367463493870887291710285305471913582016818050579385720860741121297407913656453300774125629818388708530024428051725764261645035092390671109835528322566336499747334130053883632149675487876030446613033665548397742817116565566084439795033196784937896852211940687982525162324423498579467669125160845459096584055514647457065321479312009756637828728131718122434131592967378241264673970505695662373366464389161533043454142216100711514211805457357636674853155212004949471869792267973194074861880088006868607949521686401771264430512062306102100972410835904542474398368352889464573428806359047803419822711315439177513876296680611566498369442811259167848066672832204128751482404374668227160383856570510764143982808469677349209145688078900032193312389710614724530576425558029783129780093012567830279659918952718110142486441576045977153250769206788284603052731398026206620009442065529864035011993929723464120826784330902269632728763329849154028879659592384673907631885371773058568470140261225713658116006068410513922515848819955221463750737363944286698028150477106439173918429908571349713953009201237715028846263493059168846700591939153181256573481465121153306061276547735563559350540711503389373835002211683440340229730929963866935399190569680415940149022405315534741620966274521197153990844799971044961479991236803164112844022149005748980107255861909142223913025471605111990768288845759508763955913381826635180466013659128263087732258319299236923208621540779252693586603204063798468828010347562910172464854399363622107231473429242600227970648478859069386799714820181578201264223251179330743526998959169306434028825716173680533217929713970497775354089186018450674331923069875051701083751636778541228953447757437987600380604839484923583421746109312273297977615059960575031743620717781853269625280346554508614203532635810254390017932154178651561755946524174452768078638699190675605435879194445861645217554816987943640340922878576556238888728800866413445598413555148810592410933202671350493283436765625179606569895204567207186749565225504236523264691011681447656163003015715582528690199629587633626537107041885738907646158723435368432033176920273870249977351776680202935089867631168768343411012489359618185432176079706402317091520235045371902251637319944654912150132620755170650431904443493536095934489791750899988986971936853594204325094501792381094659679203662159993819189416033241873367627718004892491774604183344509563576069445426227759830192735475350934506734036488095492293735571202270632130905027047838728480361500113275371102786539049220824480022345386115527917202944402434829551014136782670347104689064908189708660581578656863368903048942982378028493955897779286346485276545363570880589303534158575473250571364593528430127262517391091692980449201951216359617699626815500343751106490549751647717019366795049919248318641596759496405957045380165767074292536982303265612877912491243708313672758453509496530464598418031829458694947800623583765239556507204149546762333979988237754897981097365952708544602073101481535357458179290380863863510511494704726390339314530210668388668606344989333667634369521327005895738331411260592050969793581615536269713396153833271511120054864739480216211592847591272657313115633834000064432133280698921175501481761758431417421486014684813019513001388927041701579284526873372218689508299712606967739989517489766555976421709138589567523622114891996747067037331852441612348849258348354812985479028335372776745062320587866021711478337374036506030625133714853724993525547865433880237132469732588524343747273632291277049767034419614691521765483850398115952019974596742360316867445482618196669046474734307423276076222310016557953214763472937335473789446898543896043383194578244146251822621337365405168974735014190100530699841894467484517838896465128267626641888893146647312424023992225519798244048391760063073326963000527133842792978692387571743406866403207381686381155793908204637245810846953591751010182068696041264868667977521678486655595882105596295138743305964813629868405563506499867538321391404885197078419628755956206359117021104578836445240575074614320792994437234547689495866781352023469457768961479916024804399481093065611209498646292452789954907434063167593895273113223665928312913221693988985157334284807788664764618954025400316182862621574741032589783845057309593904040266756008514672702002906312192091523316196130420596506778394510214281219783973252692752495513505619541505855533481848255462155361574395605467844352290680654057980242921152933710824268320450457522136941117112687556260702045464366593410511929209592097119075969040634929371338247455294440678807775179453737619712805134731280581657572711740975120381743175380824108785998758948408637040667852215350864425513919076126604984467233717862480723270172676868035065726079299233067206264201327384786526434739474463492660603256487037177197874807032307814007584090595084026828866431009731305242097046083988020276820029275623474142817037249801855336257758031782799242127869397412037390353417742457870594737545087300819472652593294677470187034905895154808040985911899697873416561981050995618409201707829061049015638116062985949473483908948144449173645238106434151673847203797954381923614061256926105221056171111789543073133290227240583410189144768882838454707955201131593637880491130020662345242207183909315364660932073758435878028507868457400132896427174148286702250073481258475783060120897716683122355842811376519624602337486936411920719900970396031254216649851521983351321929273385836080026684042347072469846326105642470676084091383094398799745157395320556779629055237829364447708921794606701205656671241346994605824315798089792965563302864165223540836713036818655260386353591821391982142136232137587908987748707948866294769611460941713785164650966402682841858181655666549408188517406553301020216550586757353236943676936407499406314901585921279677409955707323892509976651030104363797679066474249909786959663764895116865937394277891228015422842753560426658912741211067629074016172632186486040005413197778548768459046540246212889209046095821339522658648869598724773013738541732444598498647150758919300214225827258136980185762027319092211381203687389038560703091893621376436749182784918558427045969551558328838865074437832377445378677675040819148292086746666936723194906583121947683813225366741548558418070217176462132869918963590326999343314483311999352415684563979603434465158325389088648051161370471023743460546999835211343768229838339147493012111897768106379339294867626113531671161827521978659183675704801380197159849425311090130245290008991606817780006697305404219092828850237427938311894338672764990204622374489735261105436755657446334030552846151269510270859457602224976788927160610710963946878140669691680781465995661923604173488337531603563944237177329361440310836228868998678886816376166569538722608836836587666953000470328163203671286389253250661741104246296871888156432345712877325130452806058231525434311229309329386656183437309687686250722572029798394132661348117151551872760994180696384058811583720577770904657625680687337989475619860433199885296976927826827364588252870472279604422562520041605354071180586215921153203489345019623095567932570523090298071787186184061371172651945056652340589165501987100244968545065868640871057099550352212573441522908199546863988236471053140141010505093417514198849356410743646715388302306015819866903640816742154256611277256946662440386262169563552612022903463342792338794072725901138493177385147638213205173965402000735996710905125469452962297065593692997531234788162511001850850586318010043659456514095961299423353089902688278910498014201752084700081748420785591123046136289792984735712519245699131565803314303629502197784269794828053724244915831793503035767734186760463638424128108767488885132373447394362938494121887972906658056215871587681972006778219047271016172453735645831370483546191170102875886980094992921596624764517417349670114775130551828752459234522969096817900974050996833215535781489256101721635867483438288811779696366988187158971996080850705104118594723940756319771603703759959291967813463985358611480605663583283368142116674847468539345968490606232341604405393739193572542642474007140959489167826660771270717770490747496730182531500669265290661079115915608615076692120544701302774734915625093439074633662687136300686375294505506752508448186484828069689135714946171663043490286008211196734304879353548600111233443083767481428711999498311300628717245048940740332914527300622791418945847993700759246765103252835732918905857920271242354780211568884167621556825869010932648425837896371643789366822097786863799303091219147721370146687040023020103986107762804076677949979433117503126745124278263876335858661688170132968420633612823179235862003382880669071870271629705113837568393522331648069429741592066654885291325068996741247065680832946563486291368167823112956873358015668945244546327141553269530579564665483995111221456727751900778322158201959737814755737089969108832597912432055161885353198526780740419891101806097034691570558697980321873059372110168127282619009228282300568010713467872236647577798513150389848721090641523546290122449167317457345442613356552460868524067611870095524171578895742267464781371655877087996965620630128832742250695298566096715228106879603056769499902084661114042533416939724563333934534615381577663409182966650653823717006551886121574276423949071889077481266317842454423904520349224809975173592248595810466643240730311498851050709890497192111292574400364257865360433380389424920012118561225711525073406541465198447059636785831775936770491823426569582378714812500741671168262096898107347113042761478851094565627143918683222059234287551303455317761826811677305163986563708752604286483397083843723657123915414257507748636479591971384047550563673023376256512227328813516334579907599782235889871049011886169064255151196104591016200757172815797054878093179537097834437964684464462432744904901005390256712896630569260628454534258791179111454854796586691507367457190962271751495634287325268519330743168935526896285875761760127738859188142607596620020804001419786386580788395509213877836284802862696258939813369734288206369445381564823788724941499164522358899103255980704113728290837646579306992584786845933239306843692822099890390964007024929674644538896983884316134351963957244896989461989811701428260939107851612339785687480344653985083128966124939233737697456869010621008169846159674163728833537117595929362445479477985066322397027797359550956664651672145470008769407227196595577514189291919023241848513245302378389878374505801697765349048172134814461551833949610409224781223247368326271612492476692939893488587378353958318828425448760775040380450987879425948756076391228445977919591317423976825671982853353099384773852596061460737059161710493405648526264430555757310683593735805667120099225238880648091104441589820442056662047477216466177576522160831549800021382820275291911613538996048476631802480068998093203907534692865892382986944553713399604246316599286550188398027776221566293651245121586383450998738396609974333244423686136253387927495748874124829418466390575300760510455704248863090183881489029567279296123213741408141404909248912560740785450239842619904497281222783007644196979131153077900903840135777386504915421271036845453728867880688491072863138202884434160513528146269602094482508067280078283226893433993849358242474576422648695050065090239391475278910496880821140731983129661097180935796701305912473060748095909524079544249757907257909012278658284284567378213461146201565721193879017790331903192276913361701194222911789669723729244581698589663641534687327197318039452513831404967163172142854343902840709871217095837531686228843229525873053849575380445971644364515091890480675337281619262013700505726044941064659028676739393760597772000908761142707412256006447789925094536425661651288140701017256141222238887084703457190122792730293062068361514328612462657682373125775829755281202880301153210915168776972666072153237529532316535105251069264587885812517229767635220689208371119309468892769018774681325848760810319606691030823228754586355284831756240150310336471633589518805766951518220781511636955375930634319862051402864040402446470965159567581626679816972607894369664323690580222807593168531840802346614395865413246361710009246784935742911861419512173801668403019664150439934048000404978118459800244509124836507363381604560628113843387882917318529412122411025445415149862825233659682453241624736859138877448597044748753816994799825038558850458439188209458653531284729789957723993978599906895532043738640042830541884196080219865512676227238972407221037041650813695025674576647318525354122636390838434184241130335470477362004392131807156973172303389404654282279083029840136269279265364267548643990595575785786342395167350780611576890550632159492958140330690360443576389422475539812360124085261757138029764571312651870599486000380668321735669064619868095642287887490841661028599362575723302198681264092944712619942571872517805030892105853283158304911398765856837632874919519540896612876731270111997738262178711891274567390720587945041426872826970708274625550347923887578283294982480737249714115451068417942711687954123838777250830318084788750642536424344114926641588406000163662162625352077359831956024999239657306972038809693666946391103019631154924128631751977751232256351237131371882132343723906449828365852612594984821854392675914235593755264503882874075825476561590049939631593231591488127546097020842919287761002197305914381829605551530186563991082637956541340701083015130294717073995036771213582703704235059892154486066114164501205520565700954830476732246356139261190819729804759673114823462410908603772968809941066097987153470728656819294057777023216372191392799873722520339806803036019049272610340439812978521138206769757764509784942953536477092402766961757774294236751113255660786481113710996893903993684258473393958097019456215686883969984418698014676590381109290542805143599565184128747589504343104637384175512585946925046550953614997849787289540549353678343059445992734067065950109473890891412373804578219758896701956348624134958795426509645508658246510250516448738126870478496525620783604359791013789166275482572021564374710107192661977824576462686437776219905807111057835331532784350335797521868604674457076100969368647562564934052032959678251417747644455599432286425102291136535502328985519839766552649819628298464758358821429677641642842340001835341794741693425693541939804634872121410918063136575942750841123470818951320050828101546917075240376287679061606234281027299933363719361111882321756226040041919346060998307308351679085912079330208912200451433443086704474427272068704571394711154909632033961907234900987609717515167111325084867177112508931403187086238443114805044434043636730215775982377685469906680002575485651771007374309582417697272267594048021898697591501059016325578936987698614810111918275186612216564620791067460641003875888564170071025516526944498974307701614622752432883424053516220722738466483705820508440286317811340986976377797508077353029833086281235954969435756345328626372642542358927560802427124800555629919228000849137977460172953202038934127616836112117696527244815400731648356416436816861464293843489157367395024792264354456822185572039050375506406754346785504030925425379186060134228194234323839907827506444085618318879486434820731282381095471472099273526720132475756055717377089591549104296729815544119073814956646832541227511028079252209455241731152628432814151928706380828785776232461180963135854302071371277402371076675240721874400820401948413517877665224170287492911193769644475265813822594121552056736070745226837041877365579369950312516520515436580086180280471039470133531237125134648766528459069197714149622455199543710365554300243792998430507113240440787913560704762883003030846096205739230693361899452764441667545476401882498467752050901844863221267104270145389676645444711940955699766827434733069119049221102937079421457780285157439716797277992932598226243864889938724276247126785648294654584388567040353786060204521847838127095053975639456921849659646370777600037189171675281413755683450820330012071779909289463520485938074589948765951431668275656969527900053631587534694310762582998278423610489648495282851904290985509732085982933604774636379972076210700529630954025034507273906240943165173189147391460919100772447745982423340369451528561312954289684736642579105595790647033975249830994993443877114703931453517061349041272335226794060325308363763063678290154552183679141465673005893440716646414182947070852295993174541693084183754911863169465765424905406198177953747956424903708267961290610767838344354089784604103654886690555786700705429520673737270363642120618913891637201428599618037540547182197308118226431721014932425394662417859639895810848129021678560072630395906474701524237353415826837751002352722863303491530185479685311830316698886293409575323704320190397834975966800741260779477061010001468416608201559045000019432891605391166068230859199117563644129333278139664196412951183225515483536647731094527489911053439274456052039313781811122826294667491951047879183964367114074282971494768141366260529851599373013064458644628672802173618797927873341753824254725982511703892207526874255727289737522753636331132798928673085033103667203693262453417896131335824639333001116619188580415169043305260956902260022979679093706053598444181939164619791525912559169811159026011304411522660867832029733315964180590377048273685970173449477879997840181086697133656706262287910923736784133937216574067374714004484354109009957888323297856661584150867661989697780790630298559135744974427375972991525022975820108476059310850644996078778801588834233809132204322139415584387998543956509049476567547176556223597794451247714143350253077436245782337868734232897002267719763611505810621138022603728799015544063645850398500742459893614857251780804699934020978940750554126716205040769282206334245375308111311072562366657671127182564953406545675901832647547178485584912679762242964089344253813413833527330317380569715770119751599905976100507110703480269365781083962328999583219120839110063392884573537916060456332714008705814756984870864833025861368934827978916183436784223162087670939364402873750101170336813724786426773803324104046058085406555149028288290645767149466849415997268871369722874225949874287375458387349800798726268425356052459648622378867016550294683313227605532563136071610069664888912516577098817807007846686196186969341944722693935172783418153154934031300881648630842678509143597543947630892533131297718173589814307766990231825944736381156970424090771742758120136122523126802525170679615262126365170325875682986897526201648215201661634267620909316592855226232414363902664747591749298617919680945719565998457024224891385328850209997068073442901928638773976648817238622862868893274045555410036772360191062204398325835245600638668462417920014617230108689178226446506312384244880249679887289756235659952655288727716451627757777892846334595498254564292457851319469572977587781589614363735022064764609486898872455535180649359942061086595507954005514166565986498035575424676452848055751941455391784974246265182944707470528029401901913728535009029323356387199111096256866765974993804502480799404368937357641579336041736214711870422492642142967604577837762909414687020755436630582561620821505222663796218527729554502604048747860143951766441693022507917241464719518048122521510538582436247579833709170130248164182181039082015014424547683744318104722756829221651631476002783123263815802607074321190224942107265561058484112984288675548366323483181561638666179715484014589146717678344422913776298477754932305490444818139249705424662848182279675391117528601176825644320335614217531111527591064450895151665420862905766475308953511129891303105344187430503582385822911953435119978618347257682098418742588743964865785502561807641784831622886308059112835881560290002049921730849886156690409090875436999605060894696145396527303249915397902753450991584528410891750043944423645121764432452234649381950198059182268480917854209283705080456978406154387159371478133778756019952680893457761361139383208746327649109112499621708592474116645511658362370948158110632017442151653311568160187330945212610438434957657093065892233417941222103749586489355591890955675040816080342170736780153167044809546075211067473853095118747737044695121277696688464068635565082202893124595698167872789708755188147896238820862509231994674375201849441527014568998805785762839621125119950768404368317487848952854405854551513070570248433305507850769103585744315621302566416376407403690077998185260310671188975575610263918368430246149316867696208483232376113942504863025976309560981137355016494140271425670988131521513831284452216228728522684917841971071207682346654868301809173714078859893114687501680720947330383705769393567849142126445260115773801917029982191598960428650080819429427756882602433675199382477303161773911364993031495434181017496785433027806166678351099420236532640985970156164361691678315775421420357913157106229561823587688746057705384548838004594595729333151118601479923370417723454187915314815140459563639958006554212039547570153450475592312541818740478363712651209614574273240569086290098516548665349654037834028552343718303457825894080415256908545376657297878354330990378196259550697011399777673030643767699216787468242303658500905110920690804849787965425423573132599264228494224931057557802608794671085657234116155105188230255788749478238966731217352599327157277512334782948567256216570141211767366589906339455325400621824803234029015173009590410249382316470810850439170128611162413328278008057974814705296097531701906498414332518599883978165614407360556862534420639665660544673874766992531201401139348255899991743924128311951295421432074970067919883237688850995811401786473537146721009122011276774435250281517237798496203282370406505923132890820907574146928458215453118125038088436455053547226928362955645407365721903835361841524329389618944930214763693426257986063156316345879940186858756562251496658677222309485604900729112576435041109621407220868904338851369614862534235209340402666535696717983900484015212148758708834214979491956530460308770555641980072750879095828164105579167424848517155102817747364910649707958024180498763988831702460024420182344667814217622287762973302072569753349496704223982483324821252774513443949837032439007859727866432814412861466837250085791155977363638249188830194524028742092798245035521746556445151411649245929215162646815664090906759135613033451861799577178070378279877832903817172711937413918118366076712469504836296190252904608919889496509536504133806744261094355445339216280864365743041203146192937839868334079992781616078034890826458856145513013413502900189836562347998729235740751703611017565091718748438914966717141238791775085569370916136700098990220748270623610894836472086892553300075615038796075246746053835049126048934341762229435618960090471395028923057566799051219871674193432275424064593292714415014896751235723568526066773769941807582082195519003904028564970757595940326224472801585099109669288645769664674135100207624061066123701491220499809502189014431900458644154086394465216810856429005595702813990265877079547001978370520275904739463149813206308777279264795576714921769654037703456338644436127833258614699816167058440870239425279291427051531249466955681526063346568844135300666484154355693173276960974121641982716096219887183660463616129584265935342332280106968466895739825311546421322841226842943213453672207930458759317155689610373952038008352680776680543286597592149206875799402898468895288089764732700958285819733373031360516289184610575653462495994840388370775220189052408658875903203630183542230651384968691854585338930631451802460534402742200591699812761498884677700969031000340295418960536064129368899014941214306254653816922582618997611622344185791033425382291270088406492941207179936607807376307181575031932304405159030741089249499183762360046807944929509487914671661948367567022161832753363744298082386953752427106245242466623597694167756271768433625167517426726985268556201190358811275832592645222670401722526538612210381888044487407681376992163318774130047030227174757036603263626089717937117157025033875927722399206884864340435537890418505196957398149123094737481722123933976256071049994181274960963756914960811390371389299762840077069023333471492418191585773164274039673175477047597541996274232710859164134959498284944523467042875826518555156463410168142716185752756562523021902161691629356657872626695292483876696023457797661826098091310298639910047469152372363552687741398709109136844745351204421079902282412720734683367803250919855335725870011649299263432112858890815250324165137828568993700966585600936744160457523615183133508730880706240630928622733715650687284769403483407077918583667862555073197429089943039980823324212252758984537714599356528372724540621784291169146630433443198933652679509522976313207604090258630968296387603591018791281170390176201866331399580051702213985872381610257477612835153706432638111068922704168623178294313875416307865941364130100898802013943001367443098060406962048524581328021351410388552672422656373896643398809709686155476602088444525782654043757224335680399026063392532498633945776490502846751321276138440208551921041452092110427141891697770111112773025448473857242873222780952673181651685847528225226142413869938035224889225710790472116355672001146762643448550081580698258237065691969541825577010275372289256187835798106692037258217279512442242098525481765751732102794125777907615088582402090093263905726254249813141620343412172674648089596090795630149530128332623413042572751561991239987884800175086272623099075001442674978718461186299850323859422306122229371915407109751961223124591757810373681534523594749765859436721882709912801710134846134139883522602138074890208323619586233888814697656743455417206251286791446640868935749497455329628355135987998768269031289582218464905007207205489203296222498566533596250751944772637155286915156034941501999734551085405074008361571703142835140463710566578361723269185963908575679484987446141581457751572095488386620998315338199017757444608847773476210228114329020173882008483317043288598516204535325023723725137287686519048624380584564323034205460108538865683390756352440194169243565785442572171344204573300326550674354777265035780302085585524977932740550726529822059107028969768617736938097501945589055501900963951556913419210311160229392729735643653662905658492952963482022209525959181989935512724538325617378424811992394613210963319670757130487177501395582846346643312399187096252672826232068244807858836523145694648718019183940465670430014256553404406722222235060152326943768768763698100709750382262623927559318338132947736359084527586420043835103645325212645492658141386260776692334180676467129150227482145135678532551475470166989474184802762845593762906107705208686994682652750592966732665904119435479046241735358918741422313309880213727247215783408757489636402736861591040602419345754961479245444925083435489117104543763558817521000113596297790151059881643001609782542764483327835307192246394204127733479297872005727167046842123630062801061810139594337210796533878603098218594959373823139905320080522105289648261224179295697195590670798986155954123873710776880066883997464070304317193652818388833174429863073873262839922029820258521969849957766197915503426795962606324157296654806135908113526213519095538592384492679657571842571480557344767905654097180305941885930868615113889907875820389673766362881364077282697771146204916416813883564358501724491229233771801409506180456471474905034261827033408506594854871354708037841904915993168473222778986733213861960619680168222979028233849089565403763935941337053124890723659211012024541285346866178956807959932690035720230849357200037652154566646968050964822691688556334193426391345917920350525845837713206071463491304762806318111369218205562742780640039880708099357143523115526083955721155846372375402602060407220085921750889901503727461570020121527695758554115226679653611154262284747868758914007966660173351068873096921884699007226233084774490644783660497098894024630643238951889758451827303202156553700042936920615884810170211447936968797052557873313309306573558581883924508546014830016947594319052286220995351516741445273341650486821856209679911647820824596272059932037753431855567940793282855559612822755164009503796645046668787079856666533943189049447031646243836473027153243872928432778142242583363620588124772039011261177803695337763475946168192085893154544958855816881746208107660395606046579756535278241540070085432884694464138393448189997696707927615425652068724691050780291856996833102654321904778292272801095527715222965117056039914731264365183101395142338846261317096261195433015465691348718570767382907355711359372800172885316262226826700608884932839440743169006865148136316493210721279788464450061703867024322906251664909157075113263299658332731131851570027682751470957028713059761947898535276610477031548707064236780235012107957310561402601333645772246303206047181950016870810955753182134305231397752826230129513984550054964811299715269563125552070792207959884165029108634471109313008689297737750552424600951937724373639691007107785228958968537987193549815674675379740459171216934754100503346844102512732323352300139172751468087145626978554413627279272822888211985768266509262044225276723963780593188785791954668103589823398012618926570489858160824886753562653945080139294413154073187910013318892188605810435687021874698900421530474499587667597319353060050847526862131309757854685415849326386402995755208526770155909871989766131875723095746990021100427233328713804723915117333508726819722687168344449571052048042385254861259751433276145549709213629776313750936333673775080242598376594524302251867208481440738839508143999535372764393723228059873312833116076870004830240899256642151632905523572535313096958677449172615390871546085169769563986262195592737849284619853676839362020153368118888363897216932281579050708540627978100823078038775973342088066990486779471457322448167640430881489769971861945965684193506536496925166638657216981537253391398813015315045938029453074565365700490131380998401548214974874951608734991188726047946094226386533068924952239595201097675329354384273899717460839960729139797201245802764571850462652256028138808688643544569957024721434872527129685671878377700795660182928538563557336496290131803029734213110691153733081200759401364538003535147377254288585392118105123552661518760382895696609125316079600436783156874338471234976764897247405908579120496490779480970664022548918545361043996364824557283329460603712054735144759497813793323805581584116529912911004966234460278831580182323176795158674325899530931877850573458869477149748317125388684866108134802882049618150835911987469839972445068172071370161756408178496512564276264541510451008758805742546426715778348831602253999761612147864444557611749190392216516706191506528649646390956631710337173365890538270232779752684661096347382065134368182239128868687544122952952984629031492447944890447930094989180864019724003966819960756976292823349546770503680797078843078112588267150943170199093319475924078718898322914606283951461356618886827528788316470029777161622995036775385200302651611461957282661754941590886701338271625272337647611706562466434008895720600080557084253331323996346804661764501895665276831256700659817578672503144684383791558624438386644558116201210778298225233041808768308825873341151740428390416561033311673881227824951572815568424478056832519580508080038245539172522887377205524726738235564190364951049146881485985796097023928158379518862614813188429862266686040984777925477531584008641095721967367987294004173499151142332637044008429774506955376939572272964047570126971289842666474624401973045959355041582156903370572084536367203349051801761198542453051890423637399172393435814381728718319130920784192259157355981429883995306773588478082670745799076682283002488583914981974594965297310320090549799544441251124379012341424867523754375602322611959366904673305694164662171482655762970566412840119673562245440911639631642155082918520144682601470229755536191239003933736719454448790737009710661521645878983842104810948679162027420888374013534994195901041255620585464463045270232337976290209724666299263262564344930725564461729926489126483503362213730299061417439755652720488989367576838838270532243944723538726125069659442859682675707498297441879143378435389898090099226843832182110359150829418075057456407877298196209767728724754058906113246077620588088582545940186454566365305912601170968420599157411258897686976340919130520819280752287953030571702503429931966626058830986965432453769768940600346119002951211792415574020601845842221950589181948324106124965007303440492702423718828554117820821026682796910422762006689336990161877734186813017029037552101740093507941602293955862014434174249117870204928389481456955095649226581292668683540565434586694941866160357570361248552835551744849318143178268749240161285589290222143638581385488419953213600916655702681821726368940966918682205985479352206030241896511068433441131871144704008360105999076383638415556043962597029552415767872482011201413306605293482643910334783725715302176340793099406088153629138036983772769610629468861661744913996400842406230643557558995938194023860522378672463304807913640525823687212437919554595403124261621162766300600712338404526233462472203991119081583120857614366716275979214723834596753477196841233148587192579792660006755140164132473962248883837100592784764945937397817174535852690570250592792164936346945461107870511125695897512188386820410202813713990260421654340556547611925505299434206837392129266369348714394166900006934599871317672898471398369219101087652781855277352869883845968907055068908968624306556146643584593486494787875889986399755118958205607949944150203608324143379051636705080314062686273966668806611330826177506073025979687853030433888383447878064697957625211935255127399848709692183698303308356991477622512591006443782498571774171842495640516334976760547366272884801133642280802893507658242573496832479674505741885901539773499341222116535061658470463163110715582854082900658920428057584482448067041718478608738950294075856848531114443628801662671410264733562212414454656890730341550813894182778783254158777215010935117444929470682761092171877719495871856992665674187520625493622432932494284191252673242632032575135126010092140368895055016147513737458914897659575961231236709679221104580788643983928747129013476273241070178526513265404149552040300033508307201916652888163572692002137150803833983123838865266388293345443173179659041589786663296928870932791430749073373713804296045252109126639620533629171775533195908978631942512399749400843408707105531708796318296377784211232377121706380684297923908575362831997591794579989465113354180730196841472346179818714406919023258322008639140250099538113945045561654159124930955929195675636368061398696199619347104691844960018465996301126969385955842485664768174127102614718196013306219196266777714837417740791740422606254331003142185037736226079384402231448053344662559816215530087884263274332982629289586809587597205853819823821977186674922503738263233664133378233797128922913583061679533183813094203656770757941364884753868832942826468151476482192632056336786489786221424946099796418032304788885974232158822078289157792015513887870470728903623392112539646549859266146372917686952096538837868721756453678120627553994827833380023757443198244696620334516026858298586043134115039449101754080373691491074627700767830232215135326343335772821200122792040494687675187343979413229432712481993001623584472058238033983055112312576148846172436973785198418441139683256209744132927548651354011476191485494259373516544516470534412475127585910112678442358690338550692789630522594505491758338951163848109112890383195558796686815058723228747441424200015505279860008770770956947437659379680236504013416464884220646279185679363940109871752346453433911538007199323365797258579483780318703988205720992472875627640522771511334084905533280517578570369012816840018467582930624449648679391007220814220719198553007162150520852075535286990453674911238104508726361286033445777756528608814449553193167392370661198368061765108897591183157848690937528205054238960206422094360779634803992727664362184154270712619685078466868211896937142483162300150009270700787424733608887113021021717529011520135263634421030012878593022650447301238902407996415557668686811048486959369903342246770625546790638238802310027210337474773823414809348391592380573379629988047793894980088633683412668235708489556411125776574618462254485455920879685236467593822894541462971666856004633472779928285408030006717942951715453329590000580207762260415373199427431218983437972866272844004635590548440274721175027165299697499109183078598164739564793343829768707705762821031557273055929207432273872919408722155656416236407523991908954146475941060065799696594470998848711048070124374652673420184187529328244723857397157608396293568253553544287036122968182845797560526771514311718455040262305614653683715059842833941829727289087182496396098357705937888847751481025759878658134574583582649664644675575299904593824337564262212996767109732264461037447865312931142997810764243608509665810463359980227413375384497523540142480172326822643101976835612452463191472850730309203256328673122755284280331322982113206506732932147673660597181993297193104713598660669976090926420078087205274372576247210833674226922341317115510029740617841701756852559081381805502606843880854113099251636407988928473839094949298376886189058588297451686092907105313989723541602273057385586506018029649890174071112736794285303834484950438340487552117495151423351161058094898613174932341136518581344615855157957519608988267838240429327145658756829443400346345300082699770876010529832498130021432247979143911674944602682294195949687199272002175161206073891550814852320001155238910236514212365439982223780227454336338430638188483446182459065603534448976807999282958562474292794784064448415151820623741300515634392261138462981317353642737991555544296675424040498609268318201044895880670291173762321813933545139356816142837279640643977613636424647521047399319519076347022929432618803752047328028903145083332464949200854451610199563720428604075997770712820012217799234676101683841688884736948739680348035673275093294573100603274382878933160567891931291450393494396623249411038758983016089517919438659561804251600701346072595507962952399835413414017277670595250837025025896702646832461156836424654245669369573188812869300467233916624588614637475576735549709459665772382529105919572690362575494546494367042248191060456394398025266049828380085268920387595491132874836952030721180440895985412913137536260437767479984349177368493274803315855261579489958190491910398938248065456641061495463005103696885279212188208121354649250812272880593006926845899364031320628390842535957008166304743261225690254402308137700554548150077834704257774468043781826882319653036014157728301543573342392305912466224804640941568863102798674537844651190719374955265101033413692264313682691223943862010748495964867859227136329094094574384431836923092303541497681288888696319693504256561913977409437060465015999861501691635930617953432168875624210733807951951493966401434483462762802785814125584638818082935549348989790806511964791159156487858828841653870799672449736429409830421450291481681853256626984764806662839181409491355764631075553484482565374454562157306315315187643933094515120830046075438925520765986116003857448342135290118210381897822892633794778255791973882234010771019633014978752993204682585044443698535529384597766506471194612204277429311463354137964125589083256664648283690403663754499299846382655097776433976388412120796229093633659974330643038132093094135527695116939880956934825133896494394547582075283244640279867763149356742531911254028062444875432860919528449370649927089426328406096799590171007318607482820922695907023285920079451577262963099262822529824551826646854951555946025263057212100053020402123953336287186451274416515095267312558322003427033330398252901076958179638124013445201837002376321648739512566195853829509788452619651256422030331540868251482466201136589941983206766060896827999208061577346370926510180304381157754460574634324947219514249873957527314637431352015642717592853330979644726875086307103643676800424977662275914164120778932072426834462074041944806857073432717677153381945335787622514879752799689606900815805523022517024989494158396267970150687219894575474039876252811079930640288702597250459050556187831951918864693613218760665364267459364886143316560898466832354755195638717648507245025632777575981922966521013843746216761622939841460212030316798971816527044811132656515987537474099621801506272492657980297404552565811440754511426343050013338890431161611463436549403004233691427479472026908335960191707850729676845088595317455231350736813812940416290750817386540703025245519294736762054514333607821312344542900577961524574897732683873877646887409391185341450249782929499235505538759087402610433153877872160806974205634529347764202327825296552239027748712522675726042324309165825695204171460214485318529692741972695953734531468812814956081739428561058911502411702795449491257401969775788118482743385093710367517152591475730355548063469997219850116641922388146409075101207897260897269425285972798817450554496153660237319520922269332260132954195321489051229788385348808537519447670417771500113792228320097555535675875084683386325774924437853588746253907300868153294046143089301370704342597865308521409876285302638169623811795616668631534622461056050184116526753143621316068717148683231601208213077840645095198594809436029746867078647125570272864950269680721338863212886705270385296763249892022036624549087191291779088483605083828977217570983541509000335232194992432748748132386585363783893321182686490960815449008078714252997615911255195836039904880502343639997032321576533360104103946104540024490969945652753194037932976210786743930415593773832128583306727055081044608076224092961962490156624125506793770417122225620265428637974590156742959891183548793661404852536786429957357924987162384679093231685594340160575466988498948314092004162478571202782808972347528910617141667411307257320675747630338372987603198703324477595023844144747104964016535214994128936552295110988506546695666943340633062172093632376784964406321794930094776701321580056964548797972942901611403973466208212034136073655704187353138315151673735317911135787977784206986462364855617462610183997776219125155686067600355493970212334538528669129699315598817027138262739108479248363469359707850607889818436793906101319855416899316080587013779093068527153697274959284834816155614735870573383968620237119151582918996856394223854999086241653946862876079722479484878096299877356397900762603109732965511999695703170393249671538812557268732389640208849656533437599758989783874961469207857188798200113224798013521094430579601287950080932854497308352672974824562161713619738623747736218835963250668022101180788094384794589636948876308337001327509932522615007792526161551909787822204928768238855022554996896684917560406304673528282959965665579045947047739026437840158151825925007261317429478178711185529810802002440321372695539555145036851779425180631994250713050716379405640508407550836391839646182397202638589071932719412021709941451846814025577679719377347121458802368538449490719975271073520129862951063934139343607670399380814238222239837217214644640519515173729302711695767121273418128000568856494463464493418147115086754603116855262194198622306671790912263890585176833849671220699086276979869089830384336033592699273017361279798325185258373119171586237967373441770579678714213620678961212508689835430431136878642415113604062661682116009212995321788640542295041411262429102963863802348154727988772513888469228218537568748167888212869442086074943076237651716769832031414944657460148226840124156771628247885551941275824009584542829224312685477113251855839202173673792631614920542686999225807371823827543315306662075587101436531630302163819756166974444925103159188278976711548986285218740573815096076864054725976652861283424716048188991319174466720276513968701911308986443216991208689214676865563946521443935347392437759656988306374734181047115188089671729302161230937035412168179616171913118390876769585232100127932162402404660063849920104919372305953916763296378272161685129566187263292427608646964794033140467265388836272451582925115963834787957836234979311607935161123068604757179731412812250736513991830533342216764611674391920946241477801272624964800014558729348750862174580286817354613631088886275851478354147060015441506487670088117313872412744518610712118578227422664928627854523447958514852997581058499278789847889202594531924148187594870778169171995614194175195286828011080832490328105936875258909396776323789897496639822901044002214483983980051403138634166025673230883727607498686300634564901908552664383419089265138982363536913522553029713198980039771450359244169762311164209028119008785675533220070719401096276495160451690319695362575657866354594803325575165837550312459797672225972280560207253710687511803765648643863104613448091882899508414806186734391103619852888518764195298350346084948315082766276241299603262031043965002416225019018487585926333939910989969394960346826429676368927703893224780422445259959247330322531361237361484910003972996340630418178264832707981427126354472833647923079023895740741622413884249283777364865997804346214214857799743454296967041777270304446847624915720791436007868618844108405176907566289182673927966786893452036760508792730435670790165090786178434431411605145175466530444578283818916909241420366251623164538775566818467073473259015832308908904857446780307169429468697516895931039087298800727412272218225086632421510157256504320765472094064091436082296668607732337477047083860143511641767705834971097608906610296084858528272453710303632471901772765876619667550913946534420556696243995386534713404237523769668598696602024048321419134122853545404479160882597357599146353523330742873511519742448316086221421549681134095947112310575702727178936735424136560504495025579615019890930285808389081361993270245472578335466880211490183768848811016026165223758066200591976004660595666408421168672643864955992597968754625096954614316945106871918219466926865749150024341755066324578026571626177850360757972050169189990989046003013181276415620957486009244681525415797720091155249503025584744528363501570185228411400403805782922577311060390883343882142075274671278930297500353943688685588461301768844534688977850214008620292492770392350753989312987674842291800144752966874303242104926218938548405617393576957345183484461835034750270681411802442320191969064547040023733946862869097746661996144481137115633997857467841542008616950847144757344913632573787534179086051528049959827911361612803314762398526369337796245715150165979147430351824643432724507335454550633269538650000324031274598403033785118851313211399377835324634520388539415182931447403856447374542317341567510339803967180803718625915350765573958703447641741596672868414797238966587822870300431329319259845418576408520437772249029015685941795883035505874510117734999952927693069975147659083029543504188241457103920692809142882610644505344322802124264110142677764120948576440493838278170774649777075197110792046966610088003568980476644511256463077258757832086855973578880423038573520022318530100767731548209778855327286634165800524937160048458084110633363328965778986953025213120383015600430942108184841125919928473253438229487519370922754525506123415573381180101256849639508848312287024351846120786751456723657792800782625666033475796579714172260350433168726065396534665924383458953613924619879110984806454022403875479447125287038608463001306631759962491061688035378358104501303159176026430111604680476839804604071450965047750783406884518535493880276451753907226229568337903957920678107962071721491103603335784263387595820110627700099467503845210807365173697260908551978651284809212042547525280851829928140873818374646084400729438599893871583235899107624185466132370825227806635630490067138420790952489714680358327718897471012063250353141631943897017042651981394434936963733952557890784653957593285606815443857384188855071253742355385643609064765129816659246556567135287217676026551453906212203154704713731809840601240654592113700976213208385773888318978842253650817021252314083155098296056897340972180236370240034584138562902237206423333094352948365254113227091055646785541254110370041072150276671641348839833373061356365036668825825981744132393612264127916379192759309712689328626932735976107048151840908025826453321892611089184985746894781721709386523122645758251852850428108472455049994261952475342753602663718505868849071535865267881419356401273325400316854640318269086034224490759857968181696106263048358963448888860142717287794584479143754103289746026862457453328268590191054458821596682495578918069317078452325377025502080715099060926076182392499748943829594976741959541608307895498877650681823393077678737486641908344059967793410932582214928289212810155119159275890015280752128045826643534752603003686608406810830601173064000867375001010516674242522554761067498807801073096660791676221379773146242046905720111991150354028430529259956050603464775528501699914447254780431760134798795096976511902137156310248824565276378713045201141475193414300050013606557656126367297097291895515411323171825810630125601024925912485696110928892416870172542580527324851914517368571742388483443812775469861374582152321429994964133517066549707309015413995412954544551433061964682153793497491176366104431284775436518097052287348437778501155355907001872604124918643575457816593107553602138767070160618699710621375703655745214159090001104537707133134834333342976531502695947592340969819725161845946848502061961123702451681937983593568924608482006055231245682950059089594280947465825470875153403314267794810544712902002948690016965845058325956010520498943908385506476084436231814475830129966362786834336478047785823005839196106223585371409968772556157782983311360972626305787063029633739768749739595936830486872020137219683032820063505181962890888784347061785539779824582285519883168572749798969452773585799582106791439164918286312738068560338356373789917347948811044778781551403302451414826538710091939974789246856508575938379735086203533518200038416268316473995923253813888359916613922513331018855149987158516796902804962984965201382909130368602353212329769052541169433547959208411482881687737911976956921738266135206306275260837685284727533194494248684725350693520760582288212608308210148762734190047563038047793093073340369117264336725794924276852491066927656727048964945727783061310519523908850460602437475747029785424196990049468344904102084754003394422676264731037182048686737215051247408744894002183317859346151323183737730411862709058445311091132012300434224182936581771982414239551732061390207387960760441675651489330417535896757085634315844404549436525925546182554787968252146608308369312748014157296994344240631072972035955542176861784031098253432234066957488084618755149674545643107589395108904547755831887879933165713919390352406358421136705605663527220365388287436465720479712574649071058791084140132330003599348391464397428813546288654537618167884908141267877907250856336126780130707047981322759159797857464313248656841399812185603683068867353373945209942081158091605242131128506635494282491143904417857401415455198354669466315624381024336453782480982792476174197067818819088148389552728157107926068305575082082256212743785444405515698809485612438699995728807074433758354415913261236845009605349241821932828015983939851682893517886440260153992559934886221543006847032644320660182800447621612985050821556980137405766161921658326691905475403952637098792415298521524323307529819463335253375118707791819492817104335673686788104216374413317946537070910814764458623381074008344866570127826394351371234388379621909845108730410377523830195535762408115625408920242692670230490707610786203310567369356887717461901170068101185197668803375625306178111918413069898684976002650042034102544793434051863393689061445781251315126485392975626533916859649611971223484334620279629682593339517235389535667249455056077909590891135283366165490559115305638709148638586400847317210345745988023991462644684035410135652541026734397465750915555848496184473798280677016681020289352838539521521679442376287641923626677780936580860818786233615623716153505992958138984413879212052597054876171354042104917369421353875683147346511777639555304331788651001626637152717005899109498481545483855260187442791458957398756584652025184413353053390654558357286419467723325831475922645033393450490788192533937790705653338059479926157812209534679407853388000213959922508619839672522142819628927777869194997051752183806926974037112420768278351713560789803728770018235484176841040662709536407186230396108222415166983558497128505460311881825289366385871164132692738775798965083422619075844583791657752740115091344788476487589079191161010864991284268959413663541617801569083578203037770547023767520486315185144662940231715870795367063467905343821630466439886857564511075926985148462758416512393725538923413763286095281415192119825887627762764101653632534208135464690987900540878580302157215282978133913850381017861461963140947608437187001959836249711001065300108353946347476623609763396633086919242251753347605343021084880514199796834940648662336788160878239524086417800956433086670729409712348176494242442112917571628574751616386678221654675976292824207635938467231666616768794214137392039077069441486666487830189108751462974733983605143768409239663937868929460488868170447761562939721585255829419675064034988173826634415447831360157278592985470762979024230037726603338897261395377255403898786154397605477428180714294548590537625382072426359125116013373993363821764966949576692336099946111239741853016677785595391518009036263003477303757994392670934857590393318406860358943480622883443567369088059451479383739975950826842446436199838222578028451696178583650289541222723739819196721204183031402258526537616177139150450551399196042514533437658068489249235141828278148573984450838142875133254605214559546766580957930846792729269367412420284173696951664492794003923259741237883203154338930603271498789283610063210372969895351243681220781318994989790734304771805122487102050901292576661481005317487883159844006063436266151083775470249708810144063744965683396400361429396828903320793815262478227012810999940689757468125809311714475331229401616769265878595415674105362325196437337703427027090721780097979902129013447031323995623580147678088670289834305208997619107411084747711926075192014827906492045762842856754940599208057067204450759172711951236325773447489938077390915978478539586075729145205794850862691219047193371283711327672619534319668874743892513807406414916674038029937446573315366393190706251275092758149376061958241016299372862542548182374752679561814726730273343805496232964595490007470851948642443796344958299844557866139341085069450041713422731282638184118503421139661161953072451965106987159687921212322338717298890773396007550736611250876659133066067209561376201284359223321890685449177675863730093278279646743014990304081789039147739811122938460177069485662411333874003333513695704776257638071201145602978908370746904213668308315681685462007069771996855591947955867713643579944756938314696396385482295834758858601750632951973525074476680164228379518142299840327690086695832395079082655996751394068739170605731011233357153596022010176836606888747931898304172868977963314073382998159085947468118213739215122529588606722725021113235497629971515869294445359938323587990711356990162017736936996467919312436100042651882200173657408828570543721190555777797198341959019526505578897083505221575079652149549965245814431663783388631929473371664655252446509484853262101055018234792136856246593914873837091469277443539524024148947687353908156384062545858024124027675895355024978716789429140857657690249167641565121669361450658325992188988955777649525378490737633948898413708321859848333825250589687738420461219352486788339079172667533582800719921903615239968361974080421901910904360515341662931838880959104122422221393531338643431770432973857578742488466669875489131583177056696005815410790047695025245540673427938957640000802329102277466917350802260121985959290417704415801983111610824753446385225924459304190705392871974229746466281301172362660918011033678121669842488928386544079319604586697194674114202624640811670725351868948313047100410300532334150996331844607595747115395083826643531580416013854409212602917339038345178761360289237804508492000790324883203746827923019106981660858138865840083676093549113774757148224127948393049144944021085197267120781130237156720639972236813080670733138786887956614032263719162375219946914939788764081000325980287554144788005974335662784183851763274111709502945826776515732951411884596592028299030677262982230768282283177798514102932059062961169758400345941840982758220855664649109190578401882374851808273848173974209537608163651031004353881376272221852261757710740732235586173542551866883452570079340801157499947502665331949738945358891046554385427284769129284078737143891895598399100273424025260091356937608645953902319840656132481047133191895600486433119110286987028204819710202002639335796449614459573332037158544586324477118614363281646260743605710373500495639565217005570678785157948673408721483665921036045540050995334680045066107344844436727304957228491007524116082772900428634439299232112341985994475016790681146372370934239008849767856889849190479818916076749618957077219523679928827320659142566317621494790777510462658021051354149997662145288308210445312638567939617194334453465701829345808804003693598469077344472828569729087238791435700905869233573330576733802004535169091372967677122371889931123661705516904793446980735054325826628957611873698464363343758381227544948827212913535776263503777750805994764478731407173351351779412943061011944746812641940099751932146585329937122336162526370133551171140728788689083888841312312955103982071264819916550292076108349376229571115420798476719465470674735481639653209645150236736383330405383327510867939889786543599378042062374601299328577734499192195335518181081637530620845628332183389921515324396352689682365647783226030984511368009376234238860213727410422031026878667487469801362994536511713481583091099859513261470310048504127609981607284856177551029581844186918699598187434223862260963693160269896881160912153681795249346676084079197899272871369770477666742272651544087038662417909661595321899792540411312880150092024116864379881228814518011478662698428721680010014927087346157948946781537647915298620769423170247830345009117857316004253492536247570470789867760192330644251864830265681078349459853049667273891631997104771093613206975885307324883669133911864287908137417929274703276961924204102548221981679921024755471232870241147157213333470032107140006970305121127677991020669365911806883446001674329739881646606923715050828134461350880939011824560887975303386615339501777659932875109669898108337294325413361105460589996247301595394758327867180574109882904199790818905440544096159661184550232047976923061307828605796499443474477867911986177899702221762063570131623339158661699793527272005549657571412760227042851384204920499819053659063140139440987445135468157815780123686606908292835505031375562284667202755673217070540870427976752015356670383410672669722778919916248875763210743494466126909576054150577128823479643561236750356371850630077040810927336988891358572499546666781940072938245925986124775712022361157558072175083480933446032236084924220292968736179009227871339971382293600089456628785451303231894573493098470759728777675100391943951518269379119313634804725007205063932585436702135564410958681330417284679456739024290734820671310801925451148171398798003985970883828727051817841585450043805092294440652981735155633984601740942784924957195799860713396369935086072639251411069446153731031756124290999413607210392668224437341025748314655038581106600407382624963790244164308170124505875166308855581169799032292552139505840400598044385933585618179092192601873112376863134620902557203745679634407512477589783109721646193893950944015387900520387554405206885130800116156154207017572471144420630277500703331503952801830584720345408344258764162196126857970497137899131131090937579818306177781611807620013094250280143134798926674771631072301252488794678026520979946546242970544891928163491850728389220728464045167426619853895851415121530713579823015870288925245145419548796446321620644069077790595705179869112240413205917835388628134577875811840098639144667149907217701286118078333897985943954424837980428815132085493443232115747181636613804741874373627462818391295896656187659686600295463274281271552573905132342002810479354927819561846015568188772149604499916348048596527941955353244856350539971620259197772903830997148188890948237102450982340162504971495034488808704540832388322563684791047373544296320263998706024511113109258969037337505625836112937739231354738794808673763637858943024805102310610269377783221500201785725416872331466874005136630444694418072308707991292873879769735765696559237317894905952962792340687331081887634560838996799461999054255596682723834596736883349774100833424792745552499949277310274586376936223893176202643339199690004791738453051016856581479980089116026045805252720108688985131032344436355021153825340895080074198758845103323842732939972213790198619480315295076612274299324721843224869876717648384701808915785651657601797203690239472345732558731942158938655208237272205317200105649219811329678264944279221824013645050393157908949679059526854896460648608349546790403665744019800818426824265767768184270913869886836288933057468469327958063234040428610226007437520729521174864164005915549441709996606010092868725110674976278855823690394607347243232343539551481333644139110011967943306209823674783916288723544326806904641064572460566171845159179792551997197659043095761111927453606498383193180566407625592620529772503268097138816955413784787730539676323569720871890267842801587070254991663517609446862779318669284818654280330942309463378291306493225575308624680913800906654889749565624676738551725104010849073413338938140873526879283913052256282906258134065516106473745014631611770961258813153200177675558158791856170377917567555442998707340583697925828579702604570893219044040448531487712504691964692290273068617972012715215479120634418407586791537728732085108726361514401769550281311300070015477822630253700813308111595948220291700642895028744969845171996112588363615131683391088756168691895569403063126077101218330242352912759614442909761235965114302605048477060250507734302223303652892880503758341356758647362152336690601117574625691743776080980806602336314108942434180375338344288233784668244117487723437533899387184882750299068846144507015596391140090242169608877000684666159806319003437576504587276912998962294176827559367192523940759994713639664318183100963098745556440506842401131908963308735557586417099864268387449858444729181682582202531843953398085511302728195930208517292511949101435925278011462767214726011629521027632670857974995708558905950388647390098293469489073898656244554549017700209837705408946404666345458322394475688024696086966298415454488987206433896143229893951259277796871817775706737603774593738310558824571479053469722479891661946309442217716393104472286468459468416237237055054717934693404415440610010460953681790884214374992083296165292909611374371319332308490062977423187215824332040037445735059502620937872947602803733055235259277966049635350764567724817519015800525822241647902719153498939645451462198193591867253175334885230016771591672616510094716265527862172568879031065547861997053430022409940810117847008927711830627334295971646895810206530915552310050564101086938460683379010950268861011579644002760261830200890692367794650360945351448991993529497663257775018074703761777400406277868100014839692567154819778620765886670458017809848853135578096600542785409651037915597408246147557942056375133108954936140953114865315303165555965373000418187088972963627644496152462263517793382453937008470063751183652100676435414254165165808455764658303016821627531739416170419275364620820592846600738460320645867497418855274242913886020042589160897322951256062497840135221447983901515169456046963557632348254394959647176215968055582520313244027787136582415422327293966017790605300374299589801726706619840724370887103039231039838494355764188843247461491203567373419129411979057410387940025517726658431860067542545094752666253791013048410091388167516069012701114285059906797092326607048530671933522917190154659938208865955657164070450536921930863152111511318383357442391199877316421736993764919124404562155432160032257874919543062633450546884421742057728476055788457272251065271873929590990982305231827907686326650024743518155512966602047374155603491004918802057546788067775515940947660079006039284325756436286723527308727713736487126946869428568121904682357368084608879801229388679041114396539449657729418718683007185638727719162925227854398229305576483161967752192534828707448119127356575755713585805208051662116084934109914464399367557444137681739684710408275322926691219353286066933753635458223011908087198299322744920087587115630437085352159392353237067434244862447870919277146596122331466675283592901698911690652116325468911713156851644179376163262348743299574819481019900379430469468260375837584910405583741406244067865387616688138783554637740337358628305756949914067615075677996898747401391684658606798678430912698095145565496124881043422073359013714962992326349106780795373386860786706253782835430737913949211609642587620388845028492235993682976476232825144617912443275365431354472458167332023286473434971018189209947514765983928757907840320311347359203390106275460113829815952532683306329929529886902657429647135713435233181565655333358060705725997750565009099004660398244085035116898335588939056607452900772409745566855424936148973940344933693998956824857247402149255979627080352929846299594831939068017870507053107195659076414776680478955576535067596713567700997940682319401545546856499507860729724170769068255658241413993701956249030469812253222570083898274096198769134235511616672448827366430767251586544533826852684977198777808259537986570476939333813317915513529075519845257223540008682528534346658142389711466716281217571840649123209407677927042249949118465863419482938899921322575335024120532491363466420361684756430414723439232126010604451632228709082391967015967477059063357728039723595066964728585132248338643143795070614666467539016484379419137685261258291415092249362779501725141211964529382682799085300953143928920735938023946089402016376146156583026496463902210608687203608018670330890709026461762941255125323268891426767509611511892191945229554382779309125983426845630826801809808125466873776237406411021012102743221980216670077354012303559872603117946327373646038515741459870051973965365391110181743091803561935229879362197562847654065454942942905280960258261242085464929938481682475824342992290757342198743300320139243000689276476105478950503284804163094426306809519948494394508490299300627698027615441650463828528441616365844979422539337288172390099816226985553088715335156267100234660189100798619566440852843608211856822835528960008822936251286989859364744741270860359490585981140545823827169553525268856814786927212656850711467603673923323113608182731984439626674239870702494007172373693644112080076227738369737549059977075642199624240526345040374782709456507851104624846385549420932335916502184604849289143877218081864298970406146810715330423830342845676963824967232076520495348828830314207716461337707326144926918336387523522534432304329153818047248486990312295285092464798565786012946233420344706311956665635162899946977416556800479829102554532037996751759243894918630338400260453917733682976510603353436150533460437246849760532939480377190867268115893997580252016347903719318003676104822001219050814666622296656830992557056053493411648330476403636414074364944928829950498439237675203796980854536017746689893445358747369229635424894954827648777657795556682874750240809523472438000199778993091407002956415441246704887677883935740433952526823455245660707266646198104695956954098303380899605647633355992342526454162913455550281129580176391948879170786722692942451857034728578312753213399621700464837818721018470506961211906772011136318553587108248261966496993981996050764789280839816503846991400032354529900741459582782205574346501843047384514151565263628363691756302504884391829868396040573857222677094870788438637084785582541141568197099792275162306179472289484068968844346890708483811865430016334609383656310554225681501024782520507624695368010802535782275315672027804811336768576988728555599277039661967492785940489705207262939947185251633372686481554632455298032897328935056061382570077210708812800142323195417149808924301464494018893903195784821344428797457037269351815558639034714604391412990497172537614732592052363041539879161248843639217001839260016048360316175286059882486234045273312135374625803177472089744812660796162123928235753871241708021157416011225039542153836162840847134934317100810391924744987592116234402417845122506809155632289304736966819892949814942003230364476525141210472578017766060438227966544702821158657184753322221761003337722437733687273757011086023324440525873373025348061720101328547634073777618843718235583666869834870490444011513478593753688138588819161103710383335100682392973729964896263997018729134439761001500569616519709811957230349853781878562910161949667976995218780832818516605303534896715852480488821588698780614858777457087067435835437622639393493763867095473795418250670439285570213585370525691178594417388956845062936584080364991010608270058811089645333393368477687210903528149868699818062016711279576007367469478145074291946076632476668048370300571264167669262698284965728072447291660274691403209705690099274936909575845969652147202335221023569327910734095419386102911296895798344743851416044452048115386775205424612944615109518105925996983955759750289007835764169671894902075123627187345388475835814780336064752071493772054437010044418758912182878512155161169361362471363759012010480648963433149084770927661997987451570546788081198609431556734911955076967758331088582088939299076102796529821135529786148377072474116905611784467009880656600270633278907201924905972061960799041274071324703698496310088655765132801396018791517200793271095164652754986729977200877217040929294021053638576603963030272474463467570881878769824319894443408941179472461634412018972069631130625925382192320514487037077487691871054486254497385658940736561230459887544401073675491514092896586547338115304865532671192225109340391637256215054684841277522722124128552984992706151590642699172008350719254850976825850401509548619378231915833039783495789584599193668421873390095517145900203256075595882890144952558908086041850080663813817351796782183829401976658167774074984771936904558109894940182127062328146869908005332412744149160373893973156184186302050571073106073752431978706763863823597833210252748464290273586981391351054135795330290780980204539147280395576218374389561297701289884756378485711564702427536303773040370862284825820333240652466325644116452098472441233365997591214739789566461354126145705118605121364572212378983531156395126149862264008695259357009259334800049683361537748493865334843342731770476409222828499847715306637949015051810600388031143748550786379988745485342830816875086626407610337164258691635734380473040183222273522726783459427270301463498803020434940976177144434115427147705336198808786031130263798698062164593660155510655055942701164633918027032108507312525969754231827307187825450106455313209190066312923934768591357413743215553163907589894633985813918697719226234855301344863659698751944487610688755797838707852453024575799880946332895609936117758452650622309721504646121419808190406110043076025545783497965568194248223678259959900754155690902859274867637772751018475371915092027669327790173565531253226400945174725082767177285095328398192374191545939334052108540187703207629431432312551690820216998996639728199948933767273242154161924022333999969350551991431978112520923270882686143301476317714250198916801598933170360551615240249666828363065656204551744516718784935854715943117748442900819334107334957989875371592151488008842414312994284089280291605420049009358183750043808078866329768931590728892515520539746576202679739824082059426712235783899292943660857074655301069510729838091664420806263904076567883207470432802426734069837836643041412902900228211326094037343586999469605031705169248426213985531963516324163113514065392812863498430950319178457850356132111431273452205771877197940175392778559479362381938991327950501974714556879383498400356558492188499231208108896965876221175606905362005349609665013022016595270171351576094851756458633042801472865235002731203732839599303131041995896535009690333245778274702932867610583074644217605820807827427636820753757511120408873412935866811943829734857050886657538817539648076478695841905094976582374469608409833708417533834426881566852053686371709384056616155657362224440621239863166131898560833203503327234522272468055823655360895837231908888349441609245365038475234676152583623950289876345981168726459742724285830138914959959043689325200962645598208909711834259732253874274756092457612765044069176351415166733398553948529811204757179275798253205172612166297539046900755714585647885569278924343452989686340188320042910068382913149364752501291789725321470511577313723959650816412595421053564515436004827068770487401232602790886835832133294402778223622468814414879388559491467854378877876806908415193446125373895856644958731102764342115862846068015575015867114599363528622699166977493634314603326686964220329965176834292672354330231637181911155013210804378500608762064456346348292579768062849268968596790627856661963507922662683648714097598793674737022875576691736186543227313168398736843534072037797855193660665965487233850827296877958032247098466524916981306025055989780872564195314336221886695356435376654806771475108051005084682088025973093178613949567935272553534131059557690137010487406682725932083665421769799076206509323098030455455802202530521265964886120527851990605274124789670946409918043345754645259372976591990919099661144590420906108138212525164056309795699762930133647376859795759134142815348919866023837689144018186591046798351371564796532768058489361245599151340937914531579442446004657700903707708290002944868486628585554099986736181624630663002836044798840094983531161324562853147923603863432105408926969717404843208342927875692544140567500527856281863678256046151619847642117207716301360605885390062199738115768863112433921605367178968717630382068344766882810823727439651381263960794206123200628665296167426800361367093045948997706664460703544824503934763281572193419834331777752070007432068442312292014921229629082252552298919984685441675194418631837020143494600786420684769332239558336620419588849276330967776384284377905438976281298587873569500312263107704535941491921067693219005051650339319568895929308178357538882187057701240336628643985124459147906802585082516300593069102243881421214013131948085021712006802698957882651673199415504265792624668575886976249497164949205943514917542184521596397533718181154641510242455760031388884655408566147359658784644555537034672336811797805940182148600417551805994483537869837481015120746377490673665115015869997110878931922975125379092304612103078485527222919000696146824033313255954542774586554069046984696656816801924819822010588543311027373863520506852813392876720185923780575533993092411427786900259834909454414602292313944423114672715208422464377493380062631109630258230393097443224754682247641758999842077257042325503189946012060526212645945376845759361135014335085449661948578333174439675535989968771127892516274356666840065133979346121429706345190734544127847873274665381055918537187445579588812750383036838834435879902019129538401069783935319530058115778824326205601398865089552576527148185251680673464529011896407417406768321416110114654875631284708921682267861395946713405208999991109238407640089329564570434441139008377568932795195748127267007332679008586143132036100775978690405168276729455753812115964296913026460151131688096971472878746488519020071025316079284335525384955455408386074742869465453741833336144549362931772065285526511006978330931708914664647600248803831824248941681688526982230384675057080846428684520628700056154679485151896321308381314042583087370278064738003457414234621887829180105040419496433230558604241788714612389335663353522011139230742964810118265004108823544115725132463769172641978984190491103336957748121771965645300912374542167100307000664470956491888604835657263123332799113040506348129106377766485437598397136606605565352696936594679325564786682130040573502898297774434384204035876855214572751739425188310618834819306289781493232818541778096496780341789775861931018058558307944346135244092439332367431316490280787696052257907710504056893073511388372257104893460040849754197409823789267230690642971938782923232249803291310404221470189062521831629133126088232594015097456479246313538863487947996302000297641193344245638769758527413519952521026717340603669295316207490797916444336088193443542362794231614676979699248686697323795284778195033272588642554946962534111268860577575980416899548990988376792006097448939152200688207211006434830236954606923230388336255307910562615701671739058950062596300708725848199224240197046860449799616816861993560244634548719372557723409580282630534877141810447483686453843676467185344884520381833470164299930876266744375054274099530511314973815465292423189316223712994347790695331479128999777327679407885059185691253429357281189774665637535856382568487189615312008355589196162866980475031696129408569096496582412583725256740133121144810571036363074351234826926789504936129118590054529446271579638683830495299666826480819262984254806363105269659898157746105167388056083960318485310249463010683770574609578956869766636045936520667056776470234242901640271266902055407000840291943081373015273249539371717305531745841906475687017728262123389876770528400557878999436904306308625560325357635665779455923571411325770047018125244833330709460822270928684678831165226496015450989641929965135103302106675026551938503625682017127890285491631152776904391036975894038005907585595604513526797471034898227431874010319862328061039638627293374613404215754119405027135464049435660674350191986068178206011576939255147427129896234144246024169929751741415567173869249478055204849643691585518366941251383208140476216353343963417415764571564410942421944061715672527099710978503898043379371593759091367526878826934113454538337096898570416533197853525584230266411220804494296208022415585655471873245172824761651564717687558915926467801158777565736472876171697151764964333238615855981215664167655720996660899138016027122429535129225460708838830073054545539276086951432069984439649757909942529961660989841827248003097303247638289332526319537452542101718644085903174049216918705357273318033872173364144628994943341638587259147195946460426899046236600088665083291020000864335763847935050701440605385834460808009809223877532505007671739128679696787694395499196213494136811730306378827826581277417458485657912932431354092389419597576682766383077014410476385941427293916326127489087282905675622820216323518381051389223729089093327619786940271941358798049534266886769275420129066583889298887654947984472789222729086713383970311330415321125725550262463092319244867292598700250991306193998082832531133517750077140565043569391370494739527328148403667161597947716885652580994356510914565423519073618680544779167671929226346655980869318755184985415171637144058372176977461418931791456251527235757210912524292985946379458533284285104764735078701307898527928535169586536112511532133385629503591613986052433002902565142589251168205259019399408862471788844725945528317383903695675717154466990052371121086168496626612003804553596063876816136647525234474421318137648267901189547275358139890119252300128629843980708473795890531980115644819307996359371933951909130632714340451515644181965822847349317764122540305328619946188844760935310769089919752420441319483498689664348382758917654000907819681970123676430709442133131293287168695893497609288587589993869820846376223251990793065495595017930334049858627498298653120894051759561426379824079103981733585876476166050826173195759454513609387867146046716846734355009311567046180640798302603627998725217951793672081787289142614746674700657005893852644385465614638760354338504514703073868628935754007716886846939116945198111938408576395442611782346132533746436863203833328973873499241680656784583541791637669616426512420099276219486711107784205274041463479048809413415852483202568866008698346919432982649187814382784163331368368759441453600079012885731790168709186415808443694140696324524259257808117629072105162835896884315615660694604675979428653524902021508263924100957867690587612185693120966764457840687280210255543775322687774044634694695936195914989019226222431981012689830580477877463793292737502964595870323760954542124610219253051842579508194459643279208753785194482721548200874193917707243952842460626398927699541155487991276786577379916769125047827736495325959190922284753405114371122407759729601126274595704989310716113089253508322183522835098894224046324464594008247036009625207801376555941526563788787869521483707037357320361368215421086200224630077965848228240311019426456937482716782417926698648062019988157072299474718563540490609789520977204810213428338075110776609939883778155000079287484754307374401838763014092426164648882571682412917344200568854171106593229848322098553802812637466209924943004804282306855338963963486001387983664359032526468544914520548681105695425119167952820839131673413829375083315534256459403634701271808133618207539900634911203127629806606524175128484592484502971716850000317152504493347611634299235759340115385739890158114477126316240044032478615559365594367306569493387067075745749992387405462500624390733813832973464458076191116015085436976993675122720278283288147227864472457247826968036287059417736200463580725201418724155268491189266158621876676666000513023398120940062209239951058768900126170519625127169155867058959522619264579088424546902257862031206574233394785371087595810208372971661924076578859756058368582982930442521188218993180793963559047125576505306439538676175484592970048423961516864091936348164766115982929656355196077645079824976550980431367169872417048541168926588238294564006594414025546138026748011911014591310916776631454432287946460601419596669843002410317515644059029163955999204033334265211699763533246597316828189588561156714641939256687343929610783138111744777572961562710168731817648422691294321975093999924851191813073987340258050303318631176183522129350284050444432061731516874092595011898701602658810210958515073793847414225965188872526317298013118219430142390258777421487465852477849796895119124929741881337243419815533446378738442934231019333257696310225380825339841329212414208215506724307787631892359798789609331076733440217537902238739530337550853732553842799000641398313702656468002589179222512535805782400955000355511848142870878158570292407759740437248114873270043166288964890434039190599969391997233001570945715587930565182635714515103381738431700862557747452395299742971505102308339792259009665978425466623751251679338044617941066586629815793322635739828174453299248805898532197596569878714138340569821982504252569130294956088946016457221184649399952838455023381850939124284220350865027609293582220242497098337664592649768501824215110220192581454815316340357095757006971283862869317038050007692340441685481498380842812990072352307887749392152105720037268918846106694488238551289968595675162266241081311195754163836048964474961465958519890025748679449113242931503607841317099940384791121525617871370142353900331623693401359631518645851812849495960692481533527049046194037088801200754797935662983942461411934315739428573264350978961514839608614469367432913452828276243357669248078279695346205278920652525475678999697927950998154837404668844945466485009858117257408421067547754119729336139070433104051207786697800760214281161979133921862732741955012768689512094901585155394718424604475253930196840797947809075528486922173587905933723752940322678290622418156863272668895578397651711430103869820275150487419063871164886219159633698442318236901183010888095358343764399198660814526980922718228155773613529989883479666022663469152136947307045310409250674591464823320389694704477945764701258241508671550409533208965154260082646886778819633397804077673357488120053523326708958709095824649898538600657093352252356039117517673209886629153023012027867542161494347485692967095056430338371101545716344040621286475992873368600175403990773449399429546515545920227831268030006760492755119487687663862481669381883590784853004634814494782925212058213537356073008337951751766613754709279873001873354146913912906534177866668130289688296860419090755170217219940290722093457206510868970102338685522271593815702712372388503451960824343523679967969699945793914324865159179944983525850722123483569222195263052506541677089226084024040104700732655937642180384931370919310536636785168180899266871687710284055016322831638121491665769122542308738124654224736856947788488430342926292010392736456550025356207343063149820686966709460800256035916659968008005517840708370613708108738222600750073484293896130992503002128991578433601002282849586612369462811616360202206299141007680507436350866358307390264065593984216146087858904019228807893064884084124663803356740972084512020561423089544221716392579258106627093319967501329455983396463007206000889830518395260894570308000084572315130565879106406024949565584738730198418434589683147215188192239476363266743571312009654728377395569606310980330678492246343116603081231541391272737773570178353971101369970498911196807847773189744883516918473005505451311605490172562395942583148850464762478530679044216871043328519398111062024328301795444211579042100213992026579735662592728844162751341401906847466366792582250700454926646534443285514405510534200276848299394471343601799439988030254868935008398990875327026532718002204117370902026508031756298349946149763096893174328751367593846903851930273036641723365664483060012366597649204625013547697587812504867494672414559183152711285688837558248040046465646077150295866288513001007870109509287246969525875056399695703157091857570416167950500650398543003874227940097548283743119306549958183248455389456438992860740296786663499799263196501266485280260077048989069065994883688576622735117053043988015071771220566806112777559840767662207846428057403932079747877024596762070623930140373774174718697222612042744272125051526543461585977297577477522142952839987413660156309400426884645205541775733728626619616616999430643284346568455277423325782835542576611279558275084147354008530249741573776862921851148024589699584319795583593056608572640055050414259433067090654423047146284721378387193431724617252401366347989720499045893219671173505872221975567185386063303480832620491824683518172692332088295305640018274388450430258136805997694420830162259895744742528408701561647616753140782575257636264214043636835996902736553246241844388380336766735152534441778157192672173316364659719858732164710166862371961163375533751553080152258581107550048227941347593676548799895904413080216111073194933104284894749773438755900323688958250546668964508824839822622446896723061882854721182959913963474554793760980326256637255426525764892694194740058338402971975938315011005922176370560883636974285157321711993545603494169052005760205786351290039954836250906759056529364044362773784021604282779312695056629203298763439552988377043383946031773527347882283852200284171888627672082421876485803225379441882146023421671748610920851867884313811658525180800047038757670852010076909925982587670310337301553290187567270839664044469072271767398241431687326558210319973754888380359431019170082763723119087385940998326373265282573833723858292389557476598481451372924284196771594475443669394124815482528173347733219807254570935731684098641262681612218970024493261512861431838461581632980173868536365374552440659076573572711563090363372061430077204503632182966204002503618178552191026102301258604625288638435011842702289305530996605387481591032979617289708963933091939967090143804895616334628547800785939684999214316887151144688304992651578482758911270855838137568977597406752000076677926648805275153009662044732265979172877657206429317895308416389860982862521158445139897638217063922614505166662981937704850977775971181849238957481651357181924328570592630039042912101425873444245784086030371926529357407982454285271458901548738221505010169660713516843301820676758282745790142594931747254812600734310278042966367321775464384472556046488847244514190199694814935396436624731379217387985600719904236285304484903977069508291386310007889928836001861159967647973935197898420486879406399347979890585842691793508251861641261831641856975514327055356022586705657439575181290929672426229594684796036266086591938047869605331497079329694348446754707394899118379734858402291123618341810661766580399847783851604630677857606352510804302613502466829060884389656001730384962705760017698320434703218911994340394248163686716027628228626314591844993037734065654804513892267319184653048522571355979497988714037930507411849791507257865141661135178410817397392728487339974248342329818691360219146128778912423218295075927280950449678423013432731628954700245182357182925554013644059579247357242459632602538645688659588555596626791952348912009034763949059221812738173233425440219600912442830429239291033423900012298133526883074067621073518346610120080370392492880406064394595770359705802307586098290425283553268863505340245330727146515736260124277694942939601778747296766571901560568890343769868039238712611209580082270651047430427766153968063823256967443049939143551881714260842679703833807036825482031521180566235915725101799709321181255437507610149788023165050089452375520631707998764015922695170981040287425154955969589239353430393026608216655587331753400115143456085851327675914788865601689444462808257291416134972281573281405097337477288381361426274662124055130602372117817586239081204203856012042309705259715874534653715212327083831789557779877575343470142357260839887136160185159880829502621184055122398793384084050675760726090373167373361563052565635800536785758420044164206472317847614092307909297924295703597015551666887994652255257000563035149613559542479158147786378154522152907984434284252403935460064131353236243908022665813804725053745091296049273358631887470194565131631614366386030505676083062582670485155250941198010869930471531062565131778578749132588381725068472016863783287180398701062799555706168919259008386930265771516765963779307826660829766358602659289504639749863572911638122539999699410478893496420271189855948716603944587427609648650911512213028972245409385607286088628043639629268498363696691651059411559265850773842541729395613079800476089302140114876803675017312404723111640531012339297757869054295066013305525759269493327788864861884425401188898726026413796044643902231104344815767162818906662634717991830436545691905641919315891050001965249663063877546233771697582309058900454441844529971560895405490734281461150570554065882226227007826557481110539269840993524499238258937228244540057020275823146826772785446137003869012709299907753842895000979328288257291890003844234137820433063184912969267533531138029955111473000907050187433893844862125031978715304350436738207005646658018082512752341849380902351180437998818847753405276953149138154185377257002687824936673966181963193341735699560127319567133989938646740357966629343219879612577442950291664713301319131416975334523610228010050446564397482481941565074992973638104574143419128966254215947743236359588641221830162465943855077468285802496765045768462879706021328794013612567761770767242358326745281888586319161955289949388990971348569555295892782978592424499745402509052509628270182940254666854156983331546685370896877291383706675103244778603839130715694078993943201835119720603632316257391917033516994217857813404574618721138884017620672615247004691604995243444837553128351121321521446359469463753745803007109463761565764722661304638862949454429632262288403962110447350051396678325842878792625524126642717990160823203183639804753217674360615964401036677370790780806679230529938530757473156650543144494238540000469650352858133123596094533497308377116687114420814208556305971930822046248918565058510734576868406058549395149644413009911714278195485094379935169400456022049375601862726596007197827044951332282686835896245833923131391746969606515605279956836911272997837529219942418264469390887522753731743726944543983611720587193750429912595689348390416097390401710392905704409024891837140227654044941902910678716315398286219309660901942982373907340995870270470075536668158511118915947541444930500553131510450704120917970881640390279015026852132871202139256544077819155310202326328608625357300769904553502112104822857381997284581385291589623510813844370867192549738794562645842757862323196512026538432043711261932069107381571483738021013395851714566170479580673514609876035983331437583197238394364134984145569152028344518064082915708150249382045585897887715270038543231183934081698099642159104290023919961233068229815055285965415528839461987148822223095019320374644410470171893798752426722354455738402788507583699373201619055398474179927303358236095771962917622175120640450094826455563994258670948796096508229725608800632217532868846970426167025670235482512876144353040775152981009815214267918506075806027984016158191313472321608458742159388542909250182782226967859549570842851513918328661013694627488593372462781233205077823897009566071735840789868575700089625929488131441686154387174523242454467043939595940629806449638213460728709227035959222836428733236475223781469514909024704758421521690697221298263056733281013276744584713940679771259727629954395199041327990430165438877561029374442505660654690368698739004376204969429431877091077023001310929019019721070294757335770735823060563424691321263856317613305900074782742107125394278884706178374199031779235089789281376060466790262912201885042747448903946003697724725988025472384136448546763619306190312672969878180201435794142775365085468279385024069132635221634258745800674341627616730382183627697008947790308987320103054847697607904340626171498972956060416659239392329971678555493910132720381618724014195251999901524689515978773488661859649663572539243560086807770154116183286061789659327331496853122961085830505263442594160995911545530529536949396847723250730634377722040575537159474627178673231866885106293334551305739669432251813239193144976750618654700832446378617119685769522156278163248957717474645846041292688219643884402532026543766462436008844702235715194651809326644540554771744638498479991522888548323105022139843407576464449173495209346512832087028705100785520727082209385613757790209766630400762813233960572983012086971740216569869862533676927502342743828609393427392139396057404919251497619884162120835155961508779870283959012052034583652197226493918911530424248322366091175644658993368058622717078764091301526429084829852012478924098267999539162877159763098012858525685895688208961463908087061526628276692403784177371339909459839920475548601500576346762247316898392212735811619573735569578580715852205539107307864574804747896897313619402394765084420062558060481497865669563018533717791246836120107987858157909354084870119333192235158031306917313957283310422603144595818121064787540738117686502246739543527206571925766800453867377052202909178054235182918986906338595546139281233403087036635139647731325978336011224625979570790152769018997485772649526768059506479572068940856284444879482160130600551557869097388634787059244350283515647539153986742015397895305707725188164719127644596677824516652451123443593804330670979545988190032215500441107484727693828987154290576325946570329350393774516219950316164475706350353497044164896038429800966297534524753513459460029130204064334456286355922230549305144699404065290811298702696330980735406398698343424390297760300839467106610338776372263947492145497582879352243754366042799388167283254159860061583409313807622679251060911003196459792288010802741750201478150850942457757720324049018444343008817584832459322688917695232387631505126857700994407764211553406853377958112311579586660663493555608529957199195025703637857194246119097343355937962700892840049175896387246581690814055495334560362052348981047197520326087881299724781505549470283629204983174584983965531711149038993613207702700142562155422192830271484431126021061477987532185285341463344085118093569301962307708380098443560618158287253893450041539714477235371546422116905291913762995348507966944518815788434923843236886832616742065834495376020531231885933111398405821942947207361576870305212600149112434102951791189955212891530821165241502846750145517944973053811892185795363029648228477867076787434332562214948054498819021510705200938758845288273164908904649128042583227613421814049611404773174429035273145891955398340128481660898195252270817635439259443634757089060245715664391203390287342565290307460039221798312264023447152947229877131914998327618662266800312754917111440571004626613963081423037362991294834457892860142880146829382039675148774107283014859498368098927107573642139499336252777330916850489651278954306833291591637826503655661353775819243383241213935873090557151787811200357079759925459500879241251179015838801494684099841742541365145237446081142072155384142494890249658136701542001943864933189381368460277464654625392218859275202993437945318326156649025979220354522284690556374269702997469799683032030595951972877580661204590546545293532511780850977580858590557943351237409400478983584404700839383636325053810859348157440398664091392072132270036961610711358011071994167696596241559447846369126972293031930228664300832471401922565566770341815353271664045673119371724577604918680309738842593213398964255460405247151973279910810206918825866115131103740880996152529141892139988643618670695117832359483939581630180511706002184647323839512577712279174420459283417682938475063321718686653139543556482441285870454223529744850218064506796516870597703496353402786544655370463451976427362489527012088983985146265520028818680499750037394401324005520889442305057925349163434805433774839696079624237556387611273360463350326683369234091755779767038921274998115884978948258200009903397601198078134233510876356908908411013964441264426289322608645057830734895159105557350180913398796322958462422604776353104654206218835908327402291654405146392876727440199530326127894683752428696277728763947033241533367392770476592366203361242238540263199515897164448740371805862175069896077052050780801388629812286990479040674283423512815448421584877492033179518941628860632198263390602708034882875826623657972865242175087812281180848632044856658399057107836497903575214021082598961215057659406945327301625942085661879125816215720444552587002535176642591945352244493145682916635211694832635766321137542945660895043285539364104544683378796927861656349152341542209870616987007670420051828871076375733073038213156359253412867984736322757265863265443367695601943829792171918751907542073823501278598829641564878896708788571650941683250058739643110312118726381475954920421940202172522340166794070953335072186901824784491777448192418736238824004444998634166733920065736632974103123185424377100866905976253388881231468634962694380342567207132860858815807424213747577639499039366513280884428660730248786242563608263577345912069436936163792719606185530941464432318303602845542716823958009561796563659459323377768674406725069798044172152607481192909741905810653662917014780213996649205281442665859258885368649557432906065678817915445706540225273634305729566587322247019488087562145598606056244087173023767329055236476812658934236938398547188052011636516751246183182311080081867099680518621245829169509849877122806688103708465710751500661271661203435204369258206416273950843183890948041356024267586818680538643777143522477510972289236319511350300425566840024140713992733379582852032570386772027064295108128160426479381675945791351053859293078766760895355291333035957339443922153303999357882655341647102860077863529920196417632500611757509153319249147886854825987806964416676412713521777302486125606892463088178043451655846932877326589134233110811772808131788719432071104208653331539862328000852699522475818360404072526549112801498785947811990251015305306716683207749774174757029846561380090998042221448395857564327179963066828401241669364124144351847276737609387855206084722863757167735000092196940035510036895061270109469289621640650948582500197961940831651059620426788778203780704674008929071795293197169261641035826551841224367103329272109359937684799737214542873938965437602521306262101787570938749978865667549811889476694942795718202614459610316272604487698287635886999426027530916759945772829454764872511806848840542449173413906700808382299747073014980397714347687508076900368529601288960013101415268138570581454627796555518011166852837502811773945189840014997327998773078846937978165925426582432435850503363180945446603538333829544779195101952794149232823547279274213574538054669314562700613379138963472297961145222984310529841970113089256596833039860546148470831022225099554333317099574003714560499550085527454352869673443646859353084100732562091814731812826800906282310927491243793781350626887020503489841175033334718897527567801674003790619040392938271657375806132455562046461942550995902065577033218469343444771758545296184910938080179094940616755698210453349318564084648620310684809461682077991469483285226952508465192290657559653320536733601723945601686235883797917201330383542196674166584973222460108011979178121558263727480211199791717649127532582572809774740141252640025762381879357931059866331717037855691754178298164825341841222786768768948706839828386632220262585544524899411312536892997211998778329669969928110507860616833553581901076928463939841080250098898011257084525302450084671903824074933397457870155594424730379481099620387401222919273314742262090755158010426559869556008478132352319363565001403909313445420452055563684313074972861809761582043241337056872180269575657651337356770727847258057858625537822649740769916374982442022134316882113732392459223901389462946705599402025503641598176721582882274452276412448216913456391808968178390611610582456767811950242170892417762557846893353549737410074634583761675941761586576614452097329698681825963304310665090266055846691150022828510344510424458353827770739389538789383202221249573672295647589771309019254698861308692450472889149350075854256076325679484028012402786206668641634702295790696798093473215628326593996744641730297504723516359057863290558013883650814497513737779062965095296050476405913249574536801522171768287241702406595264026804209651431282971159388748808656836231581904473037766523314458149369414201212452260072609588519866677728229364021320996898878005657790896625273515256798348675647657495343135547988471129374345976371783945054408533703508089941519479876921463896885745741181169645494010188783244304811732486508344259966265019693743541286560442286234051804218420516354604707317688897845829380355768183424253593250281628258424000507523299546286357360061866837884998132151722295026754463456071149141546975097391348157478724403932948416644827120356345385267317699772390475298125205813188170368180489224581812894933982769559753115327332983754939408094399240254996004105449382914562749824582042730120145927594911136630726487306985974527469334921047383250943339464011252349039537567500558273272418542266757688898483728501184836150323786306836817024937721275197372237513406040231682010031978335593751212930668786003508682643992606649694939786729759101649800327272793515140467407811252339202653786358577396444722508189932597805060489191956139235745044422288813105141990902705488006192035946757662593766764878219354721034436920256500602775929027831481024532377296093506801507587877065110541046499433084990767232285516900924195166529630856737926816117794850599719290363955934922841619956069626942447551308763821758178484802511623233910048993750493718678480132234723255666872118165659232316640920187520010274420229993582158551895364107568495435462693310341983866358518504883739648849373362278993419459170924859380670560046745476212036111867425534276669528764239640395668489786129462380427253318079363883151986922896389469411192470326594898828709910705025006868174353692661346613490392973467942750011497856796415743276390028482311709309563474546606513195372960262197165468726447672825374501092579123011903874013073229437647188670546932589652661895893949284373493136480043193918340144168059390472633206356586723172511040489646197966660226440967280865021153695616913123599957145007543764505968714924178906165938537053433958403554294042335230323215845375378322383469599723945617518171504751408916546314171985287990090841985605006000677266756604818136601237094024088670362729193718126868720653730468989976599809758469977132430151309870028747373268245277212638088601506800828079324833188302810669259050960533496467049506132514632538064209525813653316473260922010366086939751299599171459853566648564161312351357876953489084122153327846813453297147630689667993461122476565160756130844483188536651065234190878432861289375020328210580456836809272672456729767164773214169902857154198286940520163212216821899548418337553518260254826662949821804255111144014249739702660393551723065959828211079223062619658639434188061494245623441697625011239192160357024864337852571527127177773921971893803448597580053353455133267104498569169336270393483001038872944892680933525759905416530583334422287843190051432327553635951818731958751854729439047391124057084743474075292686957315889225735924722630992430623932274176540662245275420424769261987427504864621099573397552969453344210068765280331722396756467500985917533627042053617460910660843031098218256155246116040186689920306913373745426927505858972082298657275947866984855431324143401155189150624453132576585589859256975839684019783243189612587460621709288324112455134156242107623767881836968885397528387706627782840899079007773403570065146041675085732810749107545154609196683577580319894758698707043896779165590957249985700636033955191011366527516782822348440425636743474299520931157409007777465456817345473431612851649092491675957552109475915094367206777915769461385204227598391018746650808176826110549210654451835742572530223020298978048382358746903533675405658532746826191631514927625950593509929397576037013181594115640627830935622777786679307376432782069738574427631907401001791851584410503420368567960866048771644133720105297665454124413212660951515724834358623718353236340324735171271825202538819311722920735139142346197061387370278859517330639234661334950219904931854616932662493205017516569831979782418896931904873597408995063943334090848010531523422326358989211019486582869020211484962018143633411928441709140112375663915576107073730339641660169209533068160135336028561696295355726911757327920602919554768223202703689527820203376983930101844462279803638866470596851026554174864196096962437869848826223653086922277108135670774656613840404991519387579059161281732648731606042036684799763817649464253069957607594973138512862511475210520905924584744527463598967215117561211932150876507348484257049836762879081719098347588084194435871420121211854308047800737723561722268429872247638854228232867054346729677337067101147960192545001622631879986044549977835720029314114954739636639943937162170966969190743387576741177174938445372363480243996795768795937554931121915767619805328883705339088151692515920722514457826560009750175751507997750283113171350559278283206681523161550409325854434584035384047011796824948608946980392554500319158846758549996105303327387798146094002500474844181336367360788385850071951021856477301874721593654496810575180330128591583680440364032633004046993023658808712959693799512490836735079816279004655028602252000854818713342929293624099922505288739433545622939970756762930512877636230852193449251787318073912982910959059918013664375207089110783767360755967006265808170263875871820686650143696815281400945883548383767974591329430110873835256581363453640039962275607159432802747956714299353964673356016390063740196108470501676333208908565388273001263803966193383639076229028949982332648073824945681080150480293685491589363525309774756552908297115680573168618699291604686956444197523893323648670960073052769469476255093938008430046961019127407800888403723066523594361525649576659071861605116351540748614978148759332622127649443325729890597899407335317376650201019277956934671687399628407634146430657248205872411849333460426917061841435617352287585553722423111560320009882352829571893105392353383096170704429583590819816303394592310655157385499537477248158140205520884028065438979809039205313851524524831267710923032262728318721560921855099488162221385234206908822051468629029030903183392568459540649565714882232955343469198397445077336460467377791517636934000078163001447175818426637971340780021833981035429111820461656917625310862498491786591319715636571688301400897163890979032823234232241636560496277115238705772835832631626739786117274247022857591102854053013243837921839146622997498517244030980879656801789445682239761005565752127613911219344241535820852163784333732574222603975860276803791109302652273038926877149570094396225782038591330485160176976577260467313930261826297772602914795137462265791625016785802790489420338230899609749244510555967763656053660066994258805710274661962416307605077760307650156832344802711868250483451472543614535490862336352391204711551592265777485538950958054356594588635643364565619885029247727104184278929987367801099148713379815675269779424243607260989578504779994361791684883621437977672369353355524188892531239329094256651206711424659693804847760070043598588989131987751781218912950038757005839605524754493934316798855893240019288704458099700995783854174668604231952360768703180139300097057209929022165228638971611425165599058735506506390527200324645717111733000728112218741571406290241072776217214075974694048297274411705237336562118333537896599344489416817577943792757248223427186108129971639084218669554267259970630192737520806719590659146848091748861228678162721579460175354893090645731472582138603429098528197714002759945084075022730233106459985825605037624449219779119341373813216729007391671681305850163807701648418923906160378195512830056258438410994464578134470565180097260599068235808973395818338836984098248613527421638375986617527157696043981230272932733125663162463820056808721341129447997643481531739987363379876619490033424706442412221633158048902648118274514727674854986076261736082016588885576968887866756916617072879629880585465783927350742469029157215488853046230128609161762906083083297735519714195536847525545390583190779451048855582881198986215077667329566175370169801822323595689289228048917057479925168922636667162068222751195600985503165926919779839987842118016157401882189282397985144254844308098313771680082865175518471041042492736815204456353511190019261699970902631626254211843017347574469995148735068947206133713735011219861347038534475886606303639009199897295479405885288341771114653379894328471562480288167465086350203030488244194138010227651712995814741405570693370328610308700258803337748695012762634473087889964381764591271594775915623716214350495187672182143133538187579470963424861159929798452279653174835062267216149001367790312944513210021476031952595513354007328565833461421615351317798675223574577602224684086824786673659552865021290574589429287562729959645337317425405131753608126833674102135149988877708166269619901341684369380223498332612511570027903477598012815825394885336415356203335407225893763459293769972833279737416653272685486629021205905186907868894407188291958048330994176142854419390816617068650015447356186277654363271351240186159965966127801335681292713214120606825321406154438185300539543251804244050690964953907285862845300027675341797642114327784050279542679016641033024980799095844925927886373675500599035175676912441922998112971706697964439448545508473707496983097459136814530066735077589555488184195322845360115642890574322978033370187051663629999518311601420684464023585537430690355058859982246469070471615720563194813872692007432468870522664978390683905252059700981585558648042659866946896470432414527814588567496680265120292530097783842492575101946756796947858197582690782704264584249719416806839913829083509293861817354613412648947285215682852705792425885129033563014458657281323054855488624781695407028177858811195632879747128348030725691769131246316757672956114644145946461732350759670603051349585945742366061892646288288632886826367511890091354548359245728284775428519726949084273484869378830351399119902614492820844684159937087327312721542229802399365103571568301977332894774696055807848076069012444292456613501962806254627883434087313203892469222978468330496292353974103296946632424601554919479294877309286748297927451647002829551657138335822675526118979648404180729426261281429465817864443253566346486858337710178877184886218425234054897337421599878476616753826715586875157371966319600359947794130238822469113329355684661203371761723525255082203696040150060933869883263405607891206156505000905077195355628329302652742190983464363032833068651128152394346069256108799208793724760748461044101939499659177436221896249404025063368876537479814173906425502296228006865264890004241668615027731019067641027221849318735857012575540186465707338228050868367255367437307686908689979158934396849855708535887144327388064910087663955273535242595901602581808176309484965623035660699751329094563777113220793457347963293471952166596775948953701654382394018369000768793476488290781835094066350437919610968589810431062724737239026049834428089111872834247926865909411991784340606589924039000925013755017975491862387639868200562026565437520556657277597233121032526118581168081437904993265751841235784796983495812497912209014838616152652472812678087888642378580573907575914202867052459200349435670116731953627077982581776907861228088178245382704390576857625320225535177440209076784631870067454240326729833567131978793347871732665849852732754013511024205784418576854367581121503978822625114410952744699224555770530712536783119720298879923547330553304997968892584182181745034822590632301528490665449076785956298409159916636825883282099328561327641205668179376027297761982469009980458723056761595428566939057879022814019956954095197928019739270021444755625638264536453084762423457846831155278202512293379033380048264805796353957066657498587434786529418837386839825027404666619072623196921709609757346988336348106935509611511283887296337758085845167390694462382169042121523511287346889807792562512706728490979780616496604271779833895244283273872638500059214194781388717125211843266470163827280875286731233796950870087396905082706319705835046201125744393434881584335172970333758091822417765527803458451491380943916312272193441877035058860302663800164457841810006438344255519250405600313995142118066950725890943952400287657193696740090149151848283408288824324959257320138608497911166113878339161684306855727935982831767820487662139117559830814221330470897044454472140007152843606664340184140274578648490344237620193405906295928746973198746398502294076763665179141366232750436336529785435949334239585729854096367589021609892929748582362175146250412762785935552492276076062994878736385131398235479692616454394963918077871525839232647597606827007659268555426930189701531952845654228304484530199027035523869096207963867272313540420632853663161079829357360745542359751850731967114188725730916858057234372628491174714562338149743545005610059377703686608193273198310259895412244180361054542556717617397163746638822380559019474038708593228234227335103395691788280629336549809579699924739099377243537443195165106114933935701746860224803055228044497143728686358855580214882252570182025483122061140837741630418547512627799423265517831706278910648208784058641183482471137757548480612551315962456661175101458702799155965582060149226480318797392649389031840440117191712972064996603932141660236830378606405254013954318526766802361395549852977058949168288599170523329562726291000246712326371073669722399318353136804724682666476355366864251485528492633198149143699735752520171799147131527724346926333485202518449105004473638116862336581297549111516546290619090618304964621229372371807263064671768895137319949104712203883839627753522005609172576733475488975071187905406245738049127929395656897429897915772841004286639704029260577702776788097066321479088433368034915762469325734904126772677302791255137101957531145173999163481421803463484811890691207578393203711711006013811921332060140263177925688308971884799747406395562154294184201077303748219505301859287689590347494307839188079357269796630827559165829656607587403699720501819314037443493017408535896498706761757434012908963710672665304355460543289454754163624288548705909027758928575333490354515415582677996489825142673381655201291550580212797150378092670409961179013742420032412055897746186532406790885534441273110951624638099992849508816839204385856443386978924460430547334485084643487317870832674708260615878847349333280241425107819907102725271100584724599292020733431642333485335195859157202290324122846738879482994317221946368910810723958203516331255438347944744923684358641956614396133394746502783067609097430544402228254393078676513301366816129353580437060929285072489488582537649006555590775295461209864342539209679261216609559107154727461295231914735981514617743810179115617892911056975838817333899523134764304141139427860868451127861213881867534346932952969427473561254221341565855877209389703055680818361361788657784730060154825588427165278498153936283955102614196613730863099659665851079184583322897824587453161332789243076082781344570987644986331652871763822665067628876688684286952091969048419012434238549700331172904524767683665139825945313747446825520223839699600657529321610456071337315278314083106615288233901743529126761847406223938321105314731873138018148388523681402941561214971039403222599766461877997692884106474043267115556007591388957624456849175208605865707783569665151756331869981281714316380147821158355186768678085004476594292202081028511858572907284065552309393270646312264254519621006333857178038711532325682720186993076228820641844472603837450772099110639348701942089440054289391961398946341383108821084596078403234946942906419345015710201830835241923811892590587887615118597935617673653068680775873765127444844217980386645294580788859425279558190550829825041525884965843248451074367862427103122607761957404206897876004056029913192052545697502188221666033141281563417054139545732231619959838926546578346504323650931564305080802277534784692398746738019828383554948858791991382280726036634490199277556163772049489469699951431990571477157048251769778709250195597387869669763811518900237334014375898272443187378012888823732517869079910763316937787823037993695213709549145086713593202236508168751464247879673225601817239894213519773687947002240885645919390915332013363349977843416856579868983829723193329780798215113773437491594379558687483013340505881438652653079864276271975651418424699381952963026754512343985275035953877316417163826392146560621729430275775273575706004965754903299561010939783734274850227397518280914321465872849996866020214756363608102602398629577496759086429934497763664867464214919723140797560804182102611252169440159771007121902837037099231884521899440197213842167574293540979599042649838562989734523690959876379578710665729728241613308179717252330394922123159254966403154029225469953340468866922362520369692205611573437888569910210710630521115656868067241294538973294524445733568471618940563527674102205234126157305422356735000891427147665986184990593537711250118536630201709872561902355494469002086345519068570991998221900017914989319807489258195795829727691455293042845960852367157947501818220021324980982925081075223900699021528985301792684528364766587552377690908703461583017526445618974934294886790282614182218309058546842639059496077693475857021425389315077767813241230386960279099552754258633874375974318034398421951937925419548104921739522894339334093482043793662458556702879379306495562695992943924048407538481900154601819181904937399610975440707494825836307760384503423707598714586370109622938361339876401013538261352206604589154803245269506986745794542605386036015009367149761591039161208445029475924985365609675103093232005171924310424556728128883542740329069092838488475459014361854716274387206618336129572954363379834767730832140678117279536089470654452375408705484893531244009401865442270664753232246720461185650509336945923415602600563899725284612352391269232122670673824226645711312538918320055775055678755739717376189280939582504708140252099015878985610715276372789518335846066689455477385271852022685544607895138897780668664073524891330085505487285493072328697817707054477556726941276250168603566434582181462114822372128725836099875917506208507226288876727097222602907819768361565343528812633830544684873770396902497895319170089920803966187611012951258067665493692128045981942730846329283399182739195432717869115761999806959624424363417316632807783622718433848508115204533695021383387857727478151058233901926022292701630926700926793993954544831241390409729059105836893575514463848332538538800843672163862969457728959975972787649451821211117079622373435313751511505270817853474830329384782563810814062964968020319057152711177840507845111238342943787864404728180292593754898937202671243877646864750666630344539498405780457394343154142678732262379311588527118673039862093644016726081254093744025292887644816745381316843623225656320895651742471125422453030718521903234077079677988022721545270708608737698909775994354597338025875718945783276936107137572026522603344829566429719908491173198431497841857428167529205587563655731127377790736921196922616626027425696287080991682184473941078703039359086863458742276477578207051601395763482863240930843426091733190688791893935822388726940394611468749702686010471540852238883897496932060780208383488362312025544106410975814657863070505415861468122671494264389739044428636928303423050527748538533984098099572258883973160128543158912161299229872025873330785364697097010861200756930181332634508960368758688954844028296723464896006477083873913447819550349933765501967872794138523545579388713137994269042515440401581477684793082436725060208336167615228445533216187231226791992526181571934083363937828416091965230672753033371905127169179838211301648891778864955833813616214575199456804066618274065243849457356787984142141131666579406810252302526053001280720620091750834622311402525347134504493107220231219539023698955766881238380370200983109449724254771458151943531160711087248906133276369138210627817980216439509123234659187236267654709936501667408809524448950749396989190738345531962190662568479442329651763386088772541339833500872934403728710912317972725090636074314345208775096769853308314590627478306434487782017925361695361456994612332913101751379345218013633588447116712448860969531942880790312198062456980056321567156069279137412315582281337387820803381536336534227579220493079286542432014754793152835075104108419088182115631126525024839831862010246266000284228487622688551423773882862900028589932813010832125422970950001939761460368202387952589587477121569110509000679906668260897499607321294025882435195420890281407572638256059308866189547293024302088737246026288458538449430799412128929652319869537703545021420285953219306897492159417756887223176460070631111189234760549504084240100278747423760005633609387047454890652427412508271075892024724790455681148089193386994128633319753842032560749815689761756896883414903869067362005379369854951634513768207712311946596711981753177726469157763287305290129173511311081044740301658395323003823870701900565357020971771082986305642561099635398080778624177522404357250070594594514404224263431922341776475260494800763886799817961690951865187321905941257009996862176157700029167180666892687782197349742402552813878689341066552869359745093868286813627165890515853273336972238509773724830586632944913698733237552784672576956705057769126907147435401579501392789128831315537830854047978526600282539790712213197461038143815001128252575622098888079454922143417394635875344284698562824190517112587057930784246038787141195233832961647808995575757098880009188357156677691020667390984835869274411789639882939519059043865038436312791745519180487044450861098021819134225978484884086337881921939280047814916655829746848346687764373959033797072024843268882647012545854739878807983754722639387098349069704016675169694708395136936544093774375860145361052758992126044917523737586057035734056729573061047444604436397323765911331465606416495067424165421300382114140032449213703617911462078605240465807949559487275181875990724568565958023982271989013769315723619757677380563757039291628968672438020379544069458029431412637263442361081817919212688583496708792463968302954281492768546820364565977203232229671502353098726231352761242424476995469990167035109301798629497272376828900243111486365063413175257495355308941364934328990304058897348462025190591344891746516894599269612849662684985589665721523030039701744362957190072087607617799155414388097292403637538801690169795175455292748124797068865473803839630813262566747782661564398858782820904935086979678532760813245579712734681413675150664185401822164923734684215395861934035540756020873718575250678992398135286593198010529302373559808003096989081239288570002257639350950504690402847971812508487289819040093146423980249341292696339105287535298643119736727768491564219068972259028931083826272602353374795716015617225046923776184204474029613167664766255076515034124601414467969115322182196490467622043119957055731855327451006286114798619711249045865873194670884371441855946730249526386213059168623442556563608179763564120324536232880919960458880786075716531001242582211898624409499792432836650721561419607462684890504348173792594816696017933535275596429597808995620096456737530939208046749486880197495880558679713801495585569816298918847711533069147498226336606152533931115135935559355383050114724632420228165135595586740164774954748438061218968333737784861781448950448710785743655874826690716817134481191024245406619854822298155760244556539476477293300941239950490715408136928508503659910641943294708197124072081245257733342672065974273412962145142218458932908501195163335139343855873711140282319006614695221627047075647578824079473978856451598370381865868972919103747173119580158933597771889271096462848261062675252146003312289711526734741902962828592415716938277454843748047939662540977999652525357997920736547608317842673057062412761527182461805570232752648563313207079566849044577058681232785914415340821159114790305702488750381546034956631332857597291921066151831125396818587611244898943015354209979797058513110567890361483753376649764940025002232691544468158558525497579952994920952918153226653091881261471423097843919586106594771794857307421273659346132967411542110530148217872652520262046346868112283267740447326041949354639567620344386936576826028288313105822369292986591314247576309882324412508323145434444615758375179928633286166876233495968970254906416038666134093813752948943316542014669950302466309288929127581079706211286528933565806452242753158022974103012258610712207144416334725717630206825216434203585364957707551364492423472017676601746685485141843925088277484890915883027172405070155316469977305432883811966907945939149995734271908795193569757495152964059481894826665668260083735229777437814915357626157770330674693411323239714648778042101349029512576362252096296993975663253012455929034284635542155023759618384457648866925078461964410101042706816927834358610674510203702458503268972195026916173689108995769315309677428590816818755058102838877409064869464149024093823336791891819665010984276586700759831805171682835264546192261549501159602533912792778726339868593879609000301770440090223727444788178460300189369399272917769866085719025317647935420658497431579198588692155875502753131991267531940509866715801275050464212152642114062983239243052491415971514625639502150498777964699920802856198960843738512496452191949610062023219731988984963768926426829182969835980522807573477796412435934037707440478710243793300092949639408721310059888109595244410763311609979410623036604549613370028701461486545003485669959633377287202997434893944425473768613892148356980090274666989291365055632096865868306245724984815986669005656356659069854251027558950877592285421140313943713356672370166287559615708905098884181504560402221888455604829612352713948677758914029611815641311729153923881932858341283022584998883724638589701635061824189580004504773946140868355109539770523769526977005927931686202948639950014988546550124138438534167033709974369073445130514481625557650047489622065255833506430131545732216636016171561631931664254950175396542391599578845734629381503644012705890553264961424864649429383321030286821630764514637318821141318788965427971913903832942498788384291209100839576253845431056142680236496094934625266031641809246050008540101133318697837955570594101599354745545130329522923133199685512204745317164886977606955260815649504419878909005254168991806749995323453985171016766298643588792219522982931427523605027099961043173268286514466768488826703622340445821103611526081898843923225844457602138095105346320028581740081100462642961104355985868908401725030639855164704518499612234535909028245683593772939733112131595863452612007405652091947672503339447945361636067710287464095853609554990972028888402312190136680284012991503474285635825772653841950058211047190337802655948854598645418230043750248733017798826161328671136624047070937162518997763707493728428291780390181988474076984442940765894920297823871505444130060725163103267964482147256182592637643241572153348839126068748898061805409458055007603170343360541734355455593243236074482184613690220158237554616675327986610070600994546394186912661896363792934256051229126524758943455521140166482086638421950671439597066275397355356780347293072408280787227197370363649009383906138069550897509182476314503388110066066005332080784208796119820485056330510948906082434456920581833534543509552479280504346499344346117525684366416140763727120633692191848795539891571167774396968237829625706298541641870669323378739586460070112998504386008783247966818017676385548114197715361841715150898549328514889811896091533336273399348741202763313562565635307280954756844149516340548790286073237125917721526639448771789634776834506392501901269880232854708539175361589183681717910683546125938884470742667865081351083796756648926348638227571863662765086504062010069042434764838265317204071850190091267137745431224944710930204508088377008986645326374154929461327498390731343526030474618689323824784369457012558464758575499306406841064945917045892863006888199460837964784477668291844238179338761713300297376447117437213344017133723844680637125166913559186937985226452235225298186568578077105524297408562448772732921327400568711056164435044921812524603420089020348479522708170710816613055587052016162620077377618061752945092121460207818435476784075972422602696348922592424559654657419398960145202898379329629981613074648342481245582094706154815947680937925677171457538279993093192520301925790992696251974213538316259204457757245986746171875292515599670620824255163144878872914915071521343108580970509336825332437590016309282072294735979507591463639607748309943838315356130474906961034103439616885406576607072922911232199379472386806584128354064671368861712543538203543120848871996299161878170505703212021718395589798155295221647613524228231064323289830329425594506054716513310595933932886990874042917916180672382402851065463728283848336096508532070393348560061949777675735699439870022786074438872503046100371318818036499331691340123738044396072887849102909232765722522989075331217572581822637711394285479239386688332359983187533622656916069599187438315668918946732671228147398178830370715047016376495233436233856721410336966076265906677506489792188784393062307619486813722152389568231602423589713804810760633083865288324831963780969936921132826231692978737428630476890437409282856739999765286787791494705261221758582603509307070641321542165191681376706464053872211935254258583719496180054111154476482561757934703850851011813812642279635786011113035134355183306436584871099151438801726462666692247487673328971226036206426194535602584723406931041476879369072888847707572171272895596778064304327768752978443978365826003829864937490526355046001781852510965517614880714945407257808365570473876358631743697619097822312835223456454571105926407152891417888367716128653163168790168867980320125991069473028690264651102229317756083613502612025069619514108503665784708363417579413642746283480828827753288715580595479581874151013055309575953461370363012164085946655530483727943734904711383274912553342068560734394116865071164927056392944826422994708394339198434468384464643479160529539669157182878465285136575437001690628731993988318304138614488429358297796759372190769289743759070009789697947790610189392830703160344923117497457957299313866225110061532676215623557549887182708362222521662363460821119246242615346049447378963699932349646822572120676307514643736819705244184953172516005169692552330706040627738408009895277757456183788732012286349783654438553590720610100064376370553900714142613832476116542456067705086766964397297695606135604487985808373938424383420320484478611734377727613306276891704654608601544541981979149755855712687421779196989448871583845103855799113600883746352580967324705648694211347902228643692171896467068056801036633721441620472264713834348983115077723648046036709045425495082372186120666281176842350871932328174084069780680589375370517055119683109705494029054542063771482588321812565380671733520014429349765976588920562237071305172981752023929903521908791426676622540396674409250616119153405712501993887397901649186573733304754391682629521429485194965370007443984155733862409333187112253112463975012185862426776258729193253825715333127114395730644322316823905833793941920611460728285237208721075327790482499436193909021352193199269887775208760965999515392225815940643230581146369094557234603778454742836543737155834582481400309891517871921700966725227792190943334770601950764579783414275535396517481983633992136873612842494385624643146648097196418544201835021971175556595940760956538116830722095936097897068942875129668128853938912128491533271595223383550134407138228144756879493525712034986448763522988487127801333456547553765707957878140855699107206308289059903743402720398122112147292618388764654781083797925282270614474465163972387049325640564754665859348697491015603796149228873277240445764500158997701135664006753891117096874773365472974255918020808531214181512889940616146409805948201601562012424126431973097148320085554866586260550198500082164763367495184463395357946138209783893010691449992270979211703248539676989233106297003830498041826464203953592208265281431197224651871353942169572131154257149881653716684263966825753737310714372489258088065111618413327359274807635698075494311025199978518454682398531116745780239392208822413256232723647848649940240553261048548840273985777138430239679434297626029763197942149843239114725222130712031172031294014860777858837472284713391083861036594229243715591539980876290110296230445487016914501070563015757567484019404824229712252139523653440151492450240386629600690838593346616080460359877792315421449436747292667368080483456580032374395368741503440213288351788762486766317187063239991398778935207120523692548654512173913112309154819110707680509825895986086969516345155969043130202846877808086297586123831241981837553764345178356432185191275107264214945607861933517035369028591573291730982846329601444195818735757215886857704597971774497827352252872230465733221832519719753276837265058610169847464337254331328468271878393317284692081120413789637024069428420330054050519217170092555936647505445146416457256178838886815586521686071160131974027054638114041743033295394017411312380448251869868014043294062347948235767854870118098143173960607322424653999069953024636755508331775885450087288835422748232365791277652498252016492731120242250032463652620844041977133665127139651446359546076066486280196040855587697955603248920509708161036873112803041354456366128613899234124745248930259746389107589278155598614726294949760585473810428519783924979978031231018191945688601973905027188292246354512116681285622808225762319683253218318988329511666634131386597987779379927522907728128180448186237461193278571941453547346759522653139164677492430864827620751993122896162937277032648403483875429228481882836136911722433319995120399994796150836085264098829836038064584830558909216507658046618416542590936423304924384304490362268406000001102891566882786271089376614756977562186650423650332018725648892905357954999177622700247517049914461817699277060875230160759319371135219836581648215905927290662546866156741935359038630565936224454658109876611383445375171645636403502029332925156642787187080113587348510708729258752198684670229183680516891252737668629087597750769115309627489976120690316570215789269583931879519582185211697310086794333319316896283618940400558815279061413846729059434416636878652513955204493470668469898781097847211571765997528375112287924985662613998097542860796931695534981438215406563130210276328345048001742402551030807444370595852284076147182152872189867466792636848971264321840117114499648632396584030365083072638295541253160265624611482333884683208486881112655960795943165210611824830501108168371733981844269100926525597196924267561445903088476640374852337239740182381608141327502619354386789973429326011569637022394166012202600333598555153754092877348667602114158644016900477484396625601293002756823624063955613373406823121069642418785983774110044795866751271287281602003096225206046289302958617668705938977671880325830071384968105388122240574676914941874571340609651549683439419562755332208257041731476236440658779536343431236626041182290180487781323283710871669655126133469262440129095763620650770920203611901957598160645294207974998099309386014736421136969258966668931075449429458909418285568156188794969907831884110357466440289085258130146245404914413617791661722614030012474087792078212951020143068100429094046429864320531800429411140105960370951434724835997558064394249578358521846051424087895166471567666619963844103640563924741740565923106006761574538892979857498773748696967338960736443062006764008143633433442113384045681644313957609854352178406420858690355439134996050428445709199680069147833156141801354969954600457854757911101739865242639721251325273894982605019060814810359122343444662460163067985455173466174655380881234108647055910459722293554896019511797756654388721702837503018328009984028502161148634017409132917497113817059249821615718394533124494421295988272186644190605031039400151666636097791627590029978488457345467035970159466224062958633408153902570202383549057046316481615222515117699834079521957807710103674453648508056547307231577441002556294959980137772691376758148259196026337934669009552054357522035312100449375089641545460685649163527835336366276667304522381622170622200178308766188204487733404443549058956622160659683256375320724734610545614837006896986987519030804433862196266264566991371231247481618421407153525986874627182139108240891949436250786011027144598112426958154766929759263759196010696365643520305444659107711818175519210998145806214267939376706862612867324911544659923071770686349282247651161104235618007697283015879395195952082144182486352922213108179032602604022237265667655187394997347235191649629373992729952475996689449491545559586317516019349458484184802839232493051560571458847863995503372034940805015310096700434765162903710023646987555649072442738961629835219935125738557135387313218549430764970330397873003644244634328313777239940564616791645502913365953599863606512343532531920896839237549175756220895353227835568090761910825132530542074340395908810930029572615952685655265688985506569306147608393694680837032613397403923725414355017246552650689030078994242709730515614720067277686686519590457109050603083759057244581425092665508690711066568637692420955074156919390881738600934593254010435874098848471624539380118669870378339610634029981564368072173275443030443325973049111108088090642532089477004546060494085604290777511168459535898489753522460558502285741721297859123615756390904175361409240984402825512080598926908754080041441669347685901412819889735515809034363574120906561805926795739417410276310902459005189908274503817325345862309693976978335071986897802118359482689167321326127634788866232663518650890371412653979917803215226856821595649466780123819909721273363448760712960564178994492476750945191149623630154495301917465005084327776324454677697323416387547981488639734134955022167507967424649393720967599923000618561003135421721537702730252298286273464780951368418306233957833186572974320568908044030890759760734927373437615436571907585990513079714606018593643962834801897254667057337290974292351258105115898538957503911273542909643818241808738440973993184042455246569700179284043752511217812083740898489322364549694439217893331807120861106778657297662149124706307501420299847667381892060531887855897040879604559973895206095045615352144555141789236978900249705661125382732299863448055315048359254433579584662344014932267507399608150760306792605710640185961936592242642773098872450744384251383202150495032329295543103298486924196182621241233148409436241220904019774549502652401111247225710100357229044650983853543220099137262598301558695305797884226989013429363574534540748453624236043189697740521581006660414800150438555360163211298106217112700375470089511325563194207995485040196894586321723157890514612140995720613782899009054819552178339435657260638764924026690950812048544665713832737415065225173366211700663707094494755540597370280775369881642854566322523069963845134996857630930765403952487189854671003325966270710490589894040551780724480780413738737676372824618213880044541131015125438475315841448826001891868548990138725476363083259346686880030924965251393668829743789282811261174585576158356029921534806022320377547840240567282246176727096874880889128544435353346189852064940987370680951952730061144208213524019775732561482451714579966890341366885027127467891931611452739352482656590947003887018274249791943740805176273767615781323244683655226350947950550385902639153799672893373992508974336177114424395593554188758824650800625864401747006879904311791194811850689435309229782144384456554696145767512930030649744594569102880470631248128350624172441507056777151225380047175460462658647492929371162282113661660677259043564450815890143942168457990192233995256493545342966926037603384410838124239280199017586475710784874887152044332025572790859402818057773093337822579302465926068324068691281303777408265049755180707692931214757643723932871890845858836609549458742468073260779474401341291477473761295541296308840740866874628969807031216138345839977490072757977095576298361302140508238267455327520703394021828458575145509941886724344196487235327223664956477167479383583059389331837473431648377167642788901752901252061362751463391270336040035579689061091038049751886999253873789483138405839111658357538484952306236521785586885021590898722886628069688951510081826268731548486474182666057073164645443204629127810404788946698903922052494874497933192976993507764371666177248219362935162468850540248552863843234490942020564506684753176011149046990939149283856835774771871537440154939190627279619173520844118340633833779706311121547646200166149799693486538293717422063047224258902116438083996666399422400542961491596906289310472545610193398278407631010441831897905242444597031249419397866562637839117543757479181012079742085065335504328908345074903534327668373022835537534650752031847177869551029216162213958482194885153098576116241615730248639181719108222723644600427374878345389072459462673796562386787562229753143065146663759161882239798727298404120466105552773713115212362503128047041901104857628839152365862625018879074179137407285726935718583008391965281008845692552836550017389700823276139222372051994282759226827438049013553844435770557662001621232906052118795914705893065309656028473744870266788771878622474238844419986188403804260593657547716411785682895033595048205194848318594748272257034772940408499316707157834731763456532430621514031589296893541690718618685441093587257677475725685117275326378721138069740431798095807039512056864959292613110380080752232921431970293630951875538167810240524491554610090778818857618961107126302649664326632065814282108390924374880654530880542106540024896356327231829170341596891319771202677030427695814481100712575611406653152973712765525616232454344009059949810092812041980567398096539547710103500764928643545910046217001705378827921293370529321015905405107238498970966060541688069246352503531295238437731147630547888188045591896980949389836677844134443222275580040061711565547603435498316340779910915179967293728767842955239916154558955339834034905354340964645855137350265711742454877882742479720980827108082820854859615971790386600223376660838126753396074037114182572775975131003525002074988833285867871705966361635096389759664880349568839772752394144169922344439659361738847031307079141459793438422637277943851778273504605589407746853733776376966906142483880262586854258120229148455853161105431354237034912821636616295610982652860027391548085009736283607203559861967895828157077721779721717886935793672872573643946892337142833579331760295004516942126592671785591449001835158416766926995457699149779057273980816769026540815528606376095676301080976479049630142015427171680286602699584337636864170510484325629870431728194178229291698587319391679801760080996614797961704906689721658022243960220877960297214187445472136165290497322681480754978074512803370242587413712328256415051225811687143062691883425573994766942269019325453245197536878923396620227469601524681615765388008311236691032332062885467237856776818598813860161001538781074587019686474349657761117483857187135998576708236217237092671992933190439179661679578597170382233551022874187522646085255148698308804348694575863718411030851517990866212246620231920658227772626654827143419911349098664399637536672852139842830921581548125807451422081497166307359724048830886173137491202510433438616979217712216326021418488664572271747702894696373875040243680090653164800602925912055199672478779418532448053111681759843589642392691220743539639449937787201828169478086291337158773386722534291543746685777378567606739038144497533946062360521454657135527282126061961873817707101600005683807534035651920101418117576084361712642652673997348777155641862254007569690941444219989390158161354642549267044789509503560730921888790593428424220678911002672600930967756635875291052730981656842829535218523060642422507381089918662726853245944786002429161310541213446090757883506273297845210119863062871885775939453176148779326182091641082070237614552193707085126030780743968877382012256009098182376616646999575169815795779170408635964286594650131349493995413083091678977529501340875941691374599945652653240500081756394396279903287823018364448222788809217509874074325563709903671530867022823214619590980729704471575977753885498181176219079235578281375207684291610201517774723035170892382593003923722803018772218113065131500822477613529615288995319720701709040546144751166896396202476092498571712929951181822948203861596463343384896618511037214944581056773075390804570835743510765693571849005809448682282967785727656008759779659669525698942152302850043430809256440628188402968291977558771428504681617362214325515064993022255577962899964757507657975280408304032633793466280679624945711675122393280654184964746433160193348242894801225318586494592921498580192509107600560029352890081086729632837776507940393293109882058884474089495587013413214867959409778495838219651546318503963146285883062361584847989904604690279670062885792200384518803074061841601289440368827973782170085771453483250014813696640847196803858365950656891220602229425645370578140396225961654492199122718449739898605170765713841971198028292079066514817938553933616127039378688785921631715208533524034479120125510481136799747243363174425758528111280154269283625319903085464151711237166234166883730250567682110358858974632726343303265848767286721546648905290586137786946473624213685089022205498624455731751037675475676862221743328476182505872541311264493459819905698926451018854291979320472882475906569726138951343899023600982720713288905415866100695330243726090414323829731933069189784705680881476886773323181272405599438864986527984341153162924256347622577618473447882673967658803708548162608697333317198051738180794346633418768457198797602083211973891469171369254657339066834543591211909220661184865866287364611999558032281210422771023729013425340079183511059119735940440023434754232715262434212048074613676610486170575438718267269529496626687004342013863528651186583308648759929342129466377066032974452009680651310229829126440403218323952194193386757968584186501839625613555846806480546969140987474868261564550294294581399572835356556779016239955380661063137382066174034890082057052336758292950764954565999296306282441168358668825789059217075684038829770082393953715323615800102443137650637465278583564777855590944952552277298639331631355252148387028948700050558267491407511859360660722914515731318457040687647180669200608135168043275984858318992863995373680581191887602181158263773250211195346327235300453942808085169765580908442283639081047757019060758239435855872030251779256252550778428227609796307991469262469040929301076545421223398036898950406087324409456373114716103707769342634007987597682058468900893155123583105725333584107597593381764982930798417047929599867016982395022731123003074781403274936398925274393419820523080545375423345645839734507176546564694062141922535436511174113266772793264618058007785752200818932606582890995841055750217060735471929233852665079266781714684524962382377260499952502191352931476315273230305910396173819781269474740414807265456059277968422150154577573464848215354364405881885322436438191047328961059295349681390641958137527926236457616611657754965697121988093194809255722555416262211315207540420010364984441603342181910752804244719633681139282308764731759116995023696032693721776165929955208799414885461996030017091875970975376049951581940238011679026706593662417377709288224323923856862516889950185112335447016767970709226256888524843711084046375263942743733691487133171885309665979173245937517380912522083702193234657589765596266878409679867491257630835222544110051160386773918289276254255288847523337013320430722759092606580123145980386368150566677518838393978569052091285006672195595690559811795486556492676133653884375633443200874906008220522507994306546565678338683829871282481122810432241429055813736245388680893401127865067787706152703069033202998507986354108985979407546846007858891037046758172547381735293539325396321119635263086433944398216117642213227273514332744017134761653716518193903055486206868141336705690043954650302277224737001819355021110809083896215218394230797668730160367397206154619213948031230212674417713033214054985838761562656306250393607860007154041492221945417272604950097035394580563180680906453299181741382532131990978085958261695568258164301069775792234377782944404684974906243208956738087635988470791316416943146144300952446870201007574537571116815053501980295998301672439716146288380810297495049068392606231888322061415970185602623472744488000325712837189325083571143116326468200353077872182098120299963900578526043994093530520092888135910946303203859466534298470290415047791479796220321900986661412626643277921231311103890049466045582671108660692752160733359995243875846210229971030704615411430467358001226792727470158049585607689076744182400049002521272877822032119922895382986837544369267110614780802687162157682224272453166524155796620183735725373140859168525231765880197873566081779451666341028966237187294351349091639713317759595798027555570853685810533552234038061456330300564192359674316070187114124305367438271668528187133560239643817496419378471765540269970487163451952615273274469230135571769695111722982092056477852907452812837152135263972618395848580840876995026307058032616558462842835957293663914809648071734989529730261749553864719209244950203985421863010660919101003265445862792850494837712730699171686150396452416989052591638792299428431633071394433074459889449948994396226712160350353377402426343867977024420673255301881889534584430568247146362826567677517911639384295575897639098563439524267920156450330218535579258247266122198190966772825394276260983291159638488687411290660640922444441766343772424340237200243303669325894326502839964956001494389213399809023557691107352525115803858913935195275264363528588080637734330660443601911997029387168262146828662727001260583396537590891091907710755165169253411190482202693344960570385979114999053279240740387279755848185651656429334400498853545088082246244383624484604867746240902820684304814168330232451714065313398777008206010754495431338509343349105832573786568033101510512034749345253213768380590080363694469057778140531750087697273930431498236559319610949335349540169631907022448102550931541089702826755132765528315776592574913886530868067725422912004764595518114278321162595200037380562826176577617740238365611948727155043441711425592010144840739634939354235408101992137682845038626954633344104611981968403196006470335019350211331836208632187045998565263006619929874031794230905144896996087144010437136706794636047370961444898791145634092545028156695954211324468075339025284881458413292915102046488929253942920959823564338392638562616068167950884573699115088670607150878552703062588266702315765623872160754336979404190532581925517299175177147806553223081874451767486742903988838917400620008317028908608603519757080351306454449870783810685182000637624753513996876081014485299474860560758947530836863395903691558439222569418438725737481722351634506848089088563543360158015542223246263024012914236177163992026467642917045093487623756756416041828319923434545549076800372144788157535131879294938497976817395152724714800438240093969071716476331641558843263873619200064615074322654085357615705414824995166128295547486082079121634730570397144201786730103973697668369763587921920303052507632153267545821503137425339106555018213261763319018897094415523802379036596722708506903140268063559684886553312769707861768968828371061536769265051604539319789142731405227002980368065503997872259366632974816776472291270111041177239260222313675687812955535605928247107519249100688134751994484813513629600538042513629704339665034574847499598196913462001913662942391560694416170259148119921337025118790544553129830956507060109553293840391304612324586239125133114055020842052917497296620891265842572192396136934392374221342380810171277556192027619231116340061263554092385026343449749374132197294615880355551263181475296879712855130355168914328536615306894773384418615368449055288950250016315691046059538361838660564120004667959998848457194479615996271126533106676594690878847324447360018252567953900119506741108125573178226487963065260181935317638371890742123688894547541043047862355533386169678558356408967298298780126004046744252327033426249820584096561254655067450250214146893344808202161749057732078658348610321042881225006385441522882793763469095383801489689283894771652273243627106042952454868802330194269551536756053630104330334785679680305930061460732245215199312493698534036293636246415241100712602513664447412362513729853803760791972781812984166346146731652490132568076107174860570552630101977304824478719077410087817208277058217130559103178861526479990901571530570393562649006086417325873511651172888706452800166165731128839923279463669327157021303774594378612796483518092298702551956285988213787929172129336466141606750529673248152725079185213786290874716112639189411336157736451743393893339026642501798387576105203211066582338720420921760542433228497119137812392867495395636309741423780906660018206473210789493338370442927814241340325522644717274306961339608973516197191386912855703042925061886214789649971298540360069780817656702390246933573499013813289445896018864899126725096908642811213057469313628254650379391046038620080882181782166717369381664583030942129715242006501354375958829720428238063028009958484685681886084831544849809735649363009519178611157346209134248933946200296038722467736930094721945478932583561896194555759148683417162400347863164154866032246732981883142285816230585073001139541253443553769782599709034944498381810527717650415050195518709841950136569124744397069786912805842354520303417142546429290326987285060039664852342334167160882947727787410236958183468870334561640831069573341509902366707741105992104763704851420775759239643956377965978003273796092045922827397395961396464449501033299212885382425151982300305250882234498473375747253012323717784586415450160584861444498546574841809095002981383579944646613906761106173691932597257716267027517970346741587698588950544523710210672492711542702071014654437787945090264235949075525681643153796511607279707887619523535567749451917453056005571455993580659926373407501407298954924011907918455899121932645929657743729321859230260497183857835814435614214960652417713131943295398881865847270310176997364916083497729882894115142190247792875401912031036418598471271420225030724846388741545333533635948663468944515916683834919171459961280045847799337097368012857479944666599020622092204688461885344698144801158867348638582396031948635832681658561517688649990766856459693240776135943747001685233389895853152110587929552202560141475019783123921821447648776382117365778420374478571566116394549039925095026919763251189548928382880444834432989666217339044826624167058841520759182572668715661788258000795110496500367461954631930314835986003851804876033184921204751251015445690519865700589156099380804531836150906755596519856131046892217974232341140181308944685012606430818231063025850360989379886691627996998210366683020129279503171226753632365570336606328336105251286246878087503153865003791635353719327720300343196284256295743540320715669817287039150805272793885759403230467735278916888894299182467179161911566880186886714662794935803475396678754929027889114456481684285180223627652161004389878163463416588433002953416711628862873431613860437176062290985549719700106513976874349649544308561223869373402637943168312286434579181018346178494725993006075925005941369953822360091668951088695605313964652636084738265464159661885987413255920018842553471140040098213844442101084441899664302124033418848446901808226165011534848446915009091586970854242839647530840116862250252163862423040926966275045938818908688842516445962839958555604715469478137868050293715958750445817410476973865396555591843494287974226150227583577316521585314857614213350224171444122944747055835548805125658080843316192019180073533340356974649802551844817123017318411690322119477443645659717816805954598656900865988554407470951820739117870481307779853800926740150972493723049544624940560382390626947790849199124495135671143537084384008312915648676166472233313230151283602037812063845315358264883503801981928342938752534959818954180784204941456565961263471704980964751346487497762491037807817850964455842929571551824062654260977925668137813135055309557923489445973138591086482664559811445377375174602858529030524166050549611187889369426217866345529874807929800833593217411658030175192605998865984113350690235627631506968006658904527101139424269464894733500636172099136755276853256138057607084254546485750770686226428679325567251838389342737664095543142723953318702729256041511620728168186801140679575190348981061772255779639587339689138599271798983713371899770499641297711318141121923475580442489939259769227593977725914342449828400813881742201361469715025917422976824362672610825539450845669880871037949924712884614788287952584359019873518183875455649747189150235185517359858351696110199505989480821412403419352167881049722112234993654319666885779468505707392509470340227666483278258500184106090738844646781927921953247598523023998576842535951496471213831040304046943521855655604601539833365540864675085111977769582560949838358315843945656845540468702659064899516404113603182940065724399425269450109477930127505051874040937679218399245198046447574601101197284423767278816727625029166655756609784433603291170511878164194159635644015121032901516197407063622635840621882762855659312720281112169077178706362779096405592814537116087741958794939902935934234190605301648156004805069699399800225964410825148549396891423932640948586984987902541948374453798059071108138374445768482156051304157929228261125367665550048574967354685156215361369637906158947888655057034153756683410610112159314664929073201926634916758019152638939489778450219277811196191523807540372426782374044220021829294935913375385766189805049147119281622912819948596990067430194128013115792181838967068012918470503208879704035514791364210751778841043941493330399083896583140035924751006921751441167226984619263374951277833877339372140831616864294997265220854769247372916950755308715109348376745076201997537942930341405136566176271397532845624836026329931078558597348475445267435067675884620495455890795560697835110690071931906755318905127683374049217498641541248693225870965409166259491294296479372427323208489583347173859116055163022920192547013870473288481135288380641538130538522445819785124724010424980139137429977445879125329263782809912439538622480420613035433089364301081016818682621908294658715815457441548801313283527347131040065833894530621980981304345643085544870663064812555374291256577964646026191822787070316763135872777370624108007118317949661776530065066460941437606143825103208467734490253141128465607893703870018841459283840168346786860115393115579706921882383775197762457655878600637547838052270154253182162021275252770299435875469136556043419352429618196517457876192391020910682255400650109769949573745582506265767917241216881962368141049690997473249371117540220421282617634349060908208519350216188260085236612713829275486731817569854775907211899511283835880291156039651608651702757238653888527075693833145872909052965593467913210198965074814504296147362251674232547566019524175766293030400649141589912211725770088111661434476119024091826347052115833568532177009210313383863945184816771945855936495129218706728821387110178834858409837447329706681635452658046323367787566955922647689254073945748687737903567475368619868606715414957346201419770223448111587222800797268813458603449637243620606208944844282131165240784575468879384730526842884881277318606920227691139171503625735557538465326155356282472022787250976332899713563980790328893658316434590029668547571120986089968901994964184462659657973850860203416393115227376952690561120046022244178305356032588067547331168945836763328189412009155451744934972455613629180780700281019301110367888266636614388534147792091691139434234312874159176530744882153539085580097799594796577771339014038947292831561744740298749436029244446398867588669878260124834969237496797004843953331495985097848004539205041222394383657118537570578218756492420576418898290243268442374535567789289573483170538413468907317914536879578698589422807355624786605398183187487051409529035149729180320020224477232828439469585521163853368459460359784395922630633218594304263712974921477174457000613797226609627720419928164142982118136615533950392905489489316253016864360980935918848028876226839121434551621057423188046627144968038128211517893142373118741754940564549387276120573049416374855932809105978401596930551024077447833174306121653449376464426907742233148507295125782540073620628218603121257507821942481962390285714195355295450615702862010895790577645116192957612990045621275479000353451133633321542002048923588640714385449610767970626531564474309880306840479657182233469909075261953957622956463087967132330916278381277474144053327658870207642116497625789802039262372620678606928933664227587385161770302787719331502410076178293201429604366223666348866939502840511515987864748076319329515168966529498442824069462541226022572837899610779309485772227191950889843782579352020553181783758144455510089713637296104258245087475278290921237968468768216961992547698230192810760338898002189905111217998835449447910075557479226301722662423205987111306463191379355501369654668445502798662776081763064190264233020248202408520461884370665203400928141956868598028657404772936464048975772837512893066018700620093473145342135850834404136220684092750640126031246093788394343485710575282379053069572527381663029391865132046614893998256830325678526784632112773473383385029673513909874594998780785362803297516815657424178732258409251193681807652265445008178230306237191522648324888604640126474978776317441114263734532756977914476036232992334421383420431955570901488445761376084691324175771486066913820810657058339721212268710706286618378431259145741503007027459260099013267751878148256474731757580036345981991722709129787704654997335522839791766158706848366189900093978913943744406580825759158436322465779335927978925625938356307648572496440259514856084881334182433005584294247356523895339141753239631090006715799583095241174659471639046803130339950859934325379226295860500397633345723824265230956525088090351223184954464010158830421831044136773296336919901445648785795490746917330425562526775399000536127422256927427930961769867772315335774335840779058279732643153534689413557551156515401022245634859592946163452475395887867429942259571186458488345956807367055967280135168661337504325781109303598164734598831237852339879918769326726728602180384925223741897794666468054137096220878436624236642615016455187295268834761729425641438110599073967152499531291128705364998774958327958755553866212005651873029092817411316724410697810885195801857960453180646973851940904899180866428498737267256785699292925757814593476873599137435994815233941521605213770975563279725706219889133262228115625284368002403971494592817973875259928530426363489076491378499869633206286149285734323651968461744703118159302086165462258431213230062908033794025356307670861111140902830836446902571276774284066901581037693853017050845490726956691872265298543228142225444256129506840842885255019026023433319557664527320870148207434186077098619296190466201869468365990761005127472056455019874678054860481344895012515293756753486102537852788626242353819847522607652472971462419457579603230769209898218719221483464534664707708307925257592943289660288016479511367812620132808088335814603641162905098866907563538477615372661653195989188936923291502624513615612031764664075303682224919604910838917010689131645107517176381518815933420655562566647231583892458569481476366038922998035488363761848164443081503282891065937648725019602307003284441515373695117478885195798680799475317340068486977081976999889890814657704469888007294536948351071782017005103164630108569815338558102142731680152847276405739999933335238259689972861089935508335027375341390714420262932748134881735593673865380584769184903112459174420999622272978619130882662639247111994286062713662407618982651141659266374803285172519889938433121006820268833125333774302925336935334549653620180710649201461991098647812009517013950352280928195586050772503115965421922348683410983575755126443987807255972435612499608457341023891809480392635409656548751008124350630869558409827451050745418051951796797880854589068273253146662839703627000778434488597614367393257833530527407814691909847291351452703960448026830035233295296975369457408120042853715072737007648173358025671095578719861415292928353088314939468891586531643081427265761945487307853872165881109566482599318981494735976833147793293816248265920878496089459398494546742263602789187724178870894466756821661938075292776050780325130010969006677543533904162832555541074970791843835447204239868497503418453022686056607648989997824872354704163383076635341803143067992363141497802596451887835383248189748691950483148760384765865564126348905502456755077856834760698664097263257862249456561686998632739754787850802265708673656749757526552746404896290030087915784509715229876583945883387544484387203805410061556132404118696658828676161689442955403591770093800214351684567483904783397293080473689737975255653733668689202216254095639700683338674442919852411761587463233484460040656311456295354401065447716148696163360342959358642407184588150432892183099360356368009623893096128751842428390567011809731251112511104039236791397445850058332591170070705990090152026300648972067484207641419652140602681641016471643436282164721284778097444629476420725129408832652615703949200169685884347210478223678550570513794293981006235010832819081823457696754500185259980607376953960856925576032850242434651146762347385282947317215386780962776013380901211287531373837174386596951452017831862528492266229296939069950198642504533084990838942537704072983749397595867086890158869033066048366010364479642237671375708315274154443299460130834059080543045643561513743032932921175720233936996280651535022570216072730638902035116061337937283725013898720678253987259596937464401915886695606682761798054358590291263640970193995388124789879870851567698481682670095720477374300039185194916457797010261588661718792363607868123085320941965540716715136849285299916757935026199895151443807642738610584040085556856965484599450886382574818562616877479921493017528096573910158137752035162493729709449928507279662226782924360169345242474185384006114237114579326790885667259431864418377121478074136806954949934277495919940343280816575992134572125982431823876954812062122698493869928813424409952320613337732642836043193325932165410070033258634822789343431119149549725385021718881402516400998420067082818739673034722070685943305787115874322961953919253325593247542760212780505814890513542362241384179788266487870815622826220548648990968491290156183337850830879901705239593490205278563132322788625944725669645794962935687160834468124127417196986037185601243204344471191868014360017325978137578118895419669921209394514701499331210433761392200401784050715866332625614108490235888689121079118159605686994287461064013761432062532033617030166880468628210250625976406790462953230000038981746845367497142672592217207557779639249571485856162231835164768485666744076792500361690998909063139906923112296002493595476283043356747669065030431704988338707424883932564351522187249279074687597967525967555566486849382701217718209438422780002639085470783412760988684044018024188749470042906877176119783819876687600584346470175515658706269279296330704123762158086775025608896579682239832812962492305927620786303780997387451866134832178653886683962855120712014354550995232595782849400327895022537487495173740389834466826213838869425513218538274234265925172974953812677623683391479037969755738963571498313439440384635150918716481424737119957621266490554740930877942565104868577500970055561998921728854109424486539806564746644761125264561190582494216176171963628683290847352383558772304979906752599209078533678121475979415334211037560493791469409677227832919341088537071264389086024986852309870176187766168983619855638411720994434719096531885481304094712310778512451635275910898784295706624045250265088327018558442717819261902295788888686925505342896423407809540982964053422039310310690598250435143384805906380450251743539701338989582784626746652453947386125703024973376358580098724916674710820478896961307667815659293463937952166757024675503195361979447773118995924315376227207300856520300426982665465085913385064360896608925071763472512377212275862650020399300011140487006615101813395475689218554285652434144504084361294167381905195048347905314773496342508026316801477069610837176861975272561583558785160011855710121041646599196649125400446863767009726562013254628084983887438213488339755414425028844338321539843115064948669060243525922602503186792153393003494582990340743250615260733939903344146597225032194525683859432263604802390533644984803245427341103537000943848658054919310151895851920487534251795679570990602885706892802648219088211331211511941150198267611604915611761558175372682743840923326080842968738044383050666012500060549170226693833029192263295223741685197194356674913418765044613527937093427824302696580514414548584932508342757790393643416682879752420196256749556536117626256941480202417090221145112226341182068564313832047282310782324207029657844777376535468712101332308904023975210454469875764654145659024295147046433973421757527073617589593298438491292834623170435524696633335178434971633667677035526388865546012060939207401585583778153084388017156869728783226954506378453741309338633516685212881129555200330257158643765151405882863464657517129008116101779509175978401156845404786830963129113489042656292908744570123985549701690959001335656935493993530158133900601438101743734317909980816049697337518568565653313056454999380192268607882978212261181289720466845041524170040400210127638235710666655631291149072627309796661532174151523219738167337941394992268961575971860982270360949362184584153940385287301596176636204394991527720988532940026395271282899700197427674140261250930936789265944395172389697210762269082764662848324346256008984453426207975694700550576583230273634993080334161273138871810205573237753142218996003237751919676959570184110876473952612774942960563431142940121157867151418617544111357426257777488772956044381696332694928286257594083396131595936273846395911580122443073404754859381927609513821980646773745917839510244301754178853725669197833428812756646679845794131638320289598946779460619880273668588698315007781536129133979461556518659889830354278336436515264281236007153502219031162471968909893523217819336376348172165836105003303333122669482174550509033798493076596884426583098008974107948175324935878064720358390719544376937609835429904984419725736759561827283077536615969599741285042090408653888586476716056086029515520812315649004569761666598215066797102038724581173753620644737216094250765849978564838151514521981268632867708547868482647142546393111239686683563933497743213273518596234890848325687915719507375691932781694357304181595515368847669180498600138280363036495532944334181774318900757463735441208714210919963128067596865166912626542722513116151628029450918436559393652953433996549028564934542032583942620024768567662714945811795459558931665901851127573293172005959349810001933900476424696366541403823858369666272774367888754235458051527910936188318438732495870907799774165807625402178949661324093983076289375725623292501249644005128215303636589327715661731841134001667676948685986465437971008390557498236907123116258231487349157375322825446197661542132719369167667979078994777275650993613195411747398852292984711352031582093625055905034429038639750550771275309609314644181349000196819068446264025528052662708478119765405972247347464532567852831982447855181109265566771684676322411534799026148310400568828500545378240900954287812099190192776868979305201220448086853967000199187548956994390117844798463923801041358145084807753380057345272770685482479485874461900336694235204642209003371209955535610316412620878855524936413237431417303699903765045255972472951215834351076244026456600094345299631054820439775597017863894812472452664614905974884612538563090734131280394251039656752290575164825959809556019845330202973376541003918276363878018042029041171962678607608687507369042749523106461723081088275623000252292179714014187482595520455765261051153029097549948252419957487646220579690366726888560081733013503225683406550996099087596007509646697584513360470460758403233643478999933351474937919603168891828859229297495142075624195749921264586605888497632015969601653658950414424641231825964671359986398525023869438796991938563469370668283826526777643904489633796629547708993181740958407209430295161084715310422719741918548629530650312986155737153786277936094173800996122919487011432799346310211777833597765506247192336687063033823223689745691700297669834157895327550063702747351534701297302737116255294690788830058965636441776892905986564456036161535289774622366873017400360778905868365089410265267196463657076761478594033689651143949194566143216959133853706973458674689539372592927401705351811315380711718287197772877735661739198939347870809679513054899517683795682310706477692377585284176847836997199968604256288314785450240008231470315340873682018519864349581928166683875000493223844672077597043472161067669690121160259499036267946591642458758453529125315431594331707670025019959336984736802537987772571537053822864590942994631492800731023788918773217190701171462895323610070659776962793579970129148116072959389042049769814083057478332114785348407526413278755733234670459988619525693934948991106483374115149704118480012477939277396585361530636271935890839932339017104414368767643226716752347690487796620914129119688170130539275589018533247930013988421984705117854731175480726557960436945555757510677154110252925826111825697046211836572989761105084630435770407469998536645771697665457114418215692377567694974664526140584354576111872174868821192999197866829977763044425890629895160617132536911994329047458215950763520286602592594532055520003375852582283106890639257932186713008054097856159917721322626787249165066580008198239273490605292184904363458483417279664930688170787023056544126870952593862850812690647872660236546108916691617063302134471246694252530227913968768956286791174949647106598323746901978292539178172026627169794764297709559787375467890574099580767635739929057941941229059464972151813361627875202722039992195246758269255847109599357158594810500275207053389256408053867695957672905411148739924704893021585326499933264351395691748627869637903299787987305812146788121503969623885033102974642341008958788663926212061117125752205101420883141274292797769368740132578697502646706171798443811237020670209642694829368368278190915700627874119510484700003521385833424209234036994831368595355090712186814769615447466789673451402321506698185578193736333552935515936613325602278224180268518826160073936248010920861411573630554506187659476233200603157132404068711778718980871455736523561094414128048362688189419616656719831411978454540278052194654161683801471849253521077483696098499916238999682306781149596057221485861261855224852229390562766868920154572622722056423874218576368033849087407208292572557843051187013355372411072876549560106658538157787562585674635853647797658364010575278053409543800571353251251954577844809932600615790369341425402636973107505480358924151481193434557995041419130775017822389153920500851064049795320229639303015778505892543220775123075294907936062909896115836833605700666634023420366170332872756461639499459442933844797332985236976372547079975270261802500788900706773438002419870211834154678760754889794678057419157962525301386605735848335828059491378896684305951292349109096387823897021865066088673566180729118160492311862302492827706769812989031816434973194308517703080089120058605502265277134395735157152093850395852452683688313927347414371610102846064043924767891665899697304267030265512191344728870025763805266643835364547849106906898939034780210193123550582239356659219132905937631125169585166161494179933137739937322077267900145215991323657032504361015949161017292406102923797710931054271671103057776078560379657343845488492354109588227265568611500181541582401462386210514577552251696605228091487003144941575735013808974980796840848011885135757263863572258238867517002132973527707962445532998410945574795986155945744738329847297787519299492857818619956620960608485201180172790078703999819436313265860719923225139858334512326783352471989450689905817024709634376586680784911899008254360446770780978675859334480630737493676389582808951371178947643927863387071377183757163814603408908139501116824330361035032706480193272428288530522170694943933707531065191118916737547098826756504247236192467101027389761206618276647953400957057810010397338717363647908239619680097951615685090385051084640644680075651226274741947542329404391842984571422306452314483794269602576332181098848320957524955057774243885464631131792682767684165041112006450104362109643008707261255144113644475833214461919806222438833919371833643050350976612405815947537042565173388446743512579184639221364522934440895912926669795929797470902363786823528235489108441099421301240207428897380524748410329614824098921159675814857664140333354847227720262697542164879796175115099466491293857363619249393306409538840871649258062828794752115113704697486255993049570737145730759205371634922390546583755670256631116886677251319523739678050429873263384317493407548651289205683163059325670841354079224198325832520016576292969396390636751949050967537774553541817961816048536979037805273290717017573216884771875638352007010857559660818556423408331514229400810033919517688597451474056210967276303026027863784156026814563580667092137966622748328650553824573359922376491550359462272943227677087134204711688464714184783744312391569854933463260620141355382506564187916914630848224840708109598553165405210534796895747800687675756686013311829738075818252412869102975940049724660505058260482774521655584438344149213728586304072475715703297355273042945540891286925711174174896202030980214008643415720128869125387395911658366227743053000104829352553772356277272095246570533294785763188542489941559058243238774247959221125093916733903362643331435553496748077415203664562768731519386812639346212400768847369783788281682136006918036958736312235782059953101582010496163595840032058161409629240726321925752870046683188025694495195748336205822978806381069355242957909130701649883968437631457815745794974903640194053385036964111347131260131269301696910083995942178065777992156930761537659654696347031981037596000683226895355121103848877111971612300766255000997749000326740858847929917853100932940825650283507659213134886100284638206183152451067086663888435130932763739885250974273812372153819996272977568583226209147155146242196133148394323482122241885086918053948620279735822194525291514445380299129955229028859690478875434765674249862981700730396410401977850393171487891908247424325108319225619534206469796175840647864722701144041346334814073564405876776468152394970561600387049937838830664775360863275027721153120176294673952187641854257930040593469328327529144641935908803039801862798772579491439491170735936309305569669102622775082075131212310206346210462636508995199665161391241893501977199359867514848079760724962168654873144240628279429121160272097957711300115795500794398777499597418543440756991838658100484215113575695657905641709830196793484614514959995627891631401617908032659277220925556603827276223464575169816706860909079295775412045126899296761018096627267343557322393583363156344045737280263416314178679787684447081905524234986060572396238854163595084482762215887424844345358676239471931345251543454453047975589239669895896204758778456150086630105600012941824361436847346937827733950723186288696037698766348361891193644872326265443567426655660941008304440351091568433515616127311257624368711665178374541334152258907803021964109466680022466213787113258715875830810323889015089331001943053151594367578807862314832357589266436136841865995032928055512629354459356489210370523674163651398058418757356470018341329209445845681429397011700846872913464740391707776479862698097119829456046629760420016755266610347403233540860949069685288682410218618296043958962343993919922890161553978664290021161215623417152826418582219916349913478641732489346816901809908377198298672105679701513459587693644576811863275507521418603493727076932140522194039240193907019083732393795899912127356465477288538516360416121798643719966353808907548235674111137801468798300851753022391416567978084230066430058499457110020703018986443423055927652644687367602864925710513991798057626320233670212740403785315285608903621594565563744878281106268722381296879767447753165533844271716974011685834511165393985716780562407324979007871090182837603040966068272794625798661323638512863499203036422762561929813947696527462136392265667669093148908955945555808104631880513687032232938999429205035063416187500635414611616390485716658358624964831321208542610142067777864833807198420439603528658988527681206716962125257819785153168128789725966367148105410311693372688333860714639866493087307468864542929774187072108915261366327419906371606984367503923024038700904020078777799634319538538830387594379742864387126460820763844998334807080046815315294671114771560191980851070751521930826530601095805086977156691375248612893121712163493566786502048310267725153853785354911672836212081470019736087684485339901181744508281553345292729050870517037314935614246812171717387059371452620266154591562291704640136225122307501246716832234053617464962515895673276567775224688651745985158907781317773610170974750507888380135778344760339504756810010569837403608647458611841575146165326104386506513354859720159654864087795796367177073600407291703050176664382953313775552243303799135544765446968018694132096940222622986888980139737251511008569431163004795404092567970333139818720501324403882313489604825572238904501806450104297017038381336564352653998641805315390308496045495120140563716177212095133152422312548151091702298952096236481560782687831565355569231735257480772950066087316537946075070694805291974577585392602845783526263565083068024894673209892919339561781703206084667717405059818493666867399976635159636845575670445605911432259615052598217037281038040102155470708105530170252504836723920560476378466996161237449565180921677624560336562141618132330875150448586532671628220956490617656525467693715742272016295057358480515772595654886760777259923241556728143081874627851137351576882552492628292096506992035472145694716173149714682054798702018325767391402418167697542239025155948361755466147851167701438236269111224032489849819784693955991644543069123150365237015230899746142287358555048026322441296402831871096167428511262546557092699530215652620688249606563856462045441534472846534025763176057764286005924576609133924608188974624976636259942763623470722553797422016536031659391638908172212439081097787279985484479986610509166078453796595116481268095356150619877967856144773463581671434575715034098253877797233655344853199568245066459522093678872266200647302022012725748662097796335053136764864145421237589846546371066692995313589209489912204234957314943991336541708974883992754242324963623206684067548276329892671083510094107825895066722214035586717294658235572027741921354728532159160117271151121447785288848812842771784358469661010568479972281708802349673199478914001228847672705676328172437027055209910517590260135446624753731516832303312850167711900290895065127816314999996187011325167554761724032135411804970707846574580146756864666747277718176597855148224784698339545528391917468624850189156747945878140896950719605167060838299631505503091740655388153121371903267418676280210170925244883326580503813763146610796570044857887884022603839213243378068283994573158175977355224538647568984622623042382148167055433290993031543791116558697715903849258923471717949527870976455685002801212354975638041243107124749669876842954823422323878214245115873907992945523695737329015128406921508194571003460029171331911175965290524072616964431891005535235566966335563708834282583043510956468923940894423778135212623232840574765841247975261013126215154158138587560132512932674745251425969782980104821343007571169626409025723482036686171022524727732983415588777724291394816962098707863916677640626561948713196766804411901861542811242805624156214513222069443395675998222229825095368048989636012840230675197788255551229463015716443597915803948399798398193021957994477786110804533864053568150932269061802570117448208975379910895170451267892234740698493116628386931588492099386183932544883442579883016727024629470544284116013010046426480576536640842762883397663739675582993130866805834252831926320987681109022506492669239125231076718445909071166528535793042807591960241735259775136109837013004578054114135265985235709098728863524746456001550338930242714702321997673560555900754121271498634019418709111555238060455287583533741041756853556030259685462978215773969258411171872527389247800013547438694245609638547721779203250254026254007356761435350819006189132617715535350793594226067856861748690895937925753757927292799168807187725697714530112553391165419830078546680291527829431353891136000741877780019663962890717475233355517773319824754607830969561887484350192657982996136520233507312121599229555143418675616771183627935919393910716567060059512910952890075477618611227542144821491276990328320005825064072059920256823267394546210214190098097140951959004511348839010106697646578879475010277455012934099248663879259827096633293540689611757142881338576315659518845883619896335578537374924257872626109702253776779831149662708898072683812079316430243546081766359528852547532882241301419164968847654334556666167159433069289638406275742358155379801559418443303073892785164614114771068915817255609172171332403604021757525888981167730269893511160614028028100559870508329550059819929002442436965917041938490625648071474000579940932114773797867080537184045970947157990850498310138624084285278209486648655910233043808929078272300318989641646705507048397203634465004377254271545104460313881108317530704487343892445031548912149919662605985438803501814169311354089021010310963154461710230990996478891152264822735169576683127221077717181727935345551127478508245501136000562864104435759076499141345846856045050283274461398008161351470715404512697568903637317179205142141011236307667130512892432141388005944040552283299538772893218005331756810464099794428614600410395883290365349772113203762639408463793046754063464911944891199565546709699301857728514986386503798445082681234549904913119452458642517231644084486445240003352118808756003038743930548658615130352569099060225473032431235824810404091251860986204167043796407581417491900581105780888748686952043370777512329400597979521861433124409161350768852501782273381609240030174197153322240891984793297230354038824766877700754696967283721094376344293831325143358743422543749283997115993130649274623879697733983376675437437160855764222737437827598912990733339530558281160015670284397190719104773938207327321318999895854188699356444334217424576510167792714014813457795758678963055039595799665476109785042382740340109336227543181543692432547407716798361607813502205254685540653431709147885937662774366713893157124282394492231642802612263848063132393517663690209444203672331246275967740291967089741350899986906135720528580506781807285509702154611260763676332622608356045872571591389433726888328479909057920715869545269793854335531331225793027409254790119608234348338651459328902636783484015443191324730610686365831254712130468033455788106365520119055900874633359047468425477950108580920041054457463684858513346532408599376365530384580164561072701017245897451678290886356692334000636325765341690408951800181701964644917382087784789893947993341181635188056741882212608474710335005900637541937729281985167307804216804936188708287199860988526176820860577536348320841988646038314785872133499313614602061180129910259334238419947589091373350359412914731169984424186651714547440789842787615756490101063084438723959300735239940781260817451199607859019607708343118998448757462751559841908807813990344844239929777336466055818159386461340172216380194703583367670720343876969678105481349543057645143939839104221614188902282992343441143859012042653820140473580867223920502612375292760820212374996721719953283141353719819616937188267144401433586706046625311015101449406923122703324064885087517874042704939894297084459550731773445349676845067812698204005871230106750858105148981435980736361489242643202176459313087239497842586463291427964860635674317611583361283335935503733714397426770424690266534950632266130986569388467456189755096119305709892180586309680717479933823415643094816687497807970676208968992897461326685767984850384192555582744741634754552124702749186246355575344228533224093790213025278629419458589529648027166114934399126223386896991034503605627096217975008228808825202401889512683929562644398810738021663781403979495908802609500930649447626851148958048389815802972098587927432402999883613971947713660972998297245876972877437455465791370703445933764860093564039757396612596049998461102617227435219203923551200941279112917346273473020994081549447302947288087471642940255378248448413614330078644068511567635594461485969978250254999080651502341212441102764480105573408338595981067050890439473294529499639463884382912106632814184115424995282771389592996733374683984985852391954736378251586773412726546575163977135176400847419160421848119197048753019566078454947992072205735129070053076575110955315729269095597293456063530095855230362494491557148826956288498515519079285680831930401347143315901992147405829823647292680390204452297876532994839193134657622683450764181001542222807124798473036188098145813668132327747301394958509261316316983368742731382185004904502175776149931175059955686463125335134830758584060717253184513418047473010697417487104178697122698084031162952204314693431123201606249208072563624987167769835343490293837790110499418474920831011763257853466506146754983515728543897852806561582115355833119662694419997809316789961869320551389423810060484051015183277120051622049089416742055247531907987796165490693691698230418370543034509705151417029019956779095524233893329234416979300210684032915925765326949273037559215787330340619793408635798390239778705101856069278800467736815707107596808874336479066912520939049765095778676074293413470955821154534201465504203012083237099980733583976894344137455523641093861998550573644228068685395038649228610855206208852787761334231284717935569413290846238562145595039581204039436420126086397439875579232333049989015902655111062055718720288914782202462580208960073068625830805929816111392779541934759069650087192042659584340591076368078107485208895664235874304154273584775031133322241907545368002825620801000501292205034301996629407687275338683310522233262406596395676325299215664697915688266255958216260208287739591818994561400428804764200203199069941422186686293793391611001547708798427105933051763721627657917075774145306618759099955859657738421877613155801532981356139462311135921869897479210384478007146341304059704080601738662317563032876199192469500021898346108976797085429437276909267130266850503520909679134990272852069447266742034650688631977555778113263711989291840479834457521009115922571464665853730053719674828320762248215105424908486387592124467394148907404852959693702337975884652781039131783641815357536491490873564021400121102515954638002938780234795437783987602910105280170573218726750484908374958531377830201414145961626878993621450727997156540631633327194590993995918642892804930431864596508589549111975872550362221228054639803202043568433301834805172969631259893398267786780073820221336990022925381862765612918768308573627699712648201647874649326684321571861118813697810757662821488702915994428182732531740286712590966656500658895602230284406447082782997271983453597378316052236103657371191579335193241818197107059218536995695955593630653917041756494982264214074049943885595595217722623297301187230081154228519686222696553846321726663307569563692190858246062958964833562816288378743603798309184691699011771143103192481205840468796127080122158807948401253650242208561965683358708373342600461064461752517500289421205843930823629521299145563713873429693986267504814926109035712209074249085458580539699207341937786044246599230882358059390545537661442124478531247934598061213629738906730321241020221819527348411582433464499649829596469822284150692405269455479560858533463641186736841611129928347449138557086701553753476589212805170270529605775892996696416956867519203813259892386624115641171951389444857804574361001291578468631262683327335959151203232996356791807998657662905135742861395237259622407216814336705358338055069214959307614317782301745827112383165810020781006680811907765995167772419177856427140677727752694910032372887261738006497132825397810779805830945824077139430976282930342208974490916146335648767325951999054058025837058571762068374228451310814000599617134822170170280655684571583457519741951204284119205339921182119735405181627707834174107575343859948945163640702736449429131815516768652381501004081600716178141761371265621610199116135205371713029780614225039702098584810221516159324184108580622664122726179471886320354963893999172948971958736610725736616518418239931027695466301354852301420079033783454613842669359048926147674088679228376998267309483787206534389472894178694172501524282427737590369816683576570321707074346793480484508838266672369091666394084310570894422295929261224972519325146112018206759667912931971749846591190392810321805081988765688827394033601133731685233886130313608044675998237942921041379406921580530414662411944145562350748633095474804315996721193295315010226733073684187851034265732097857089538489101553473244572465163027217814330361448944961831711649741404094453205276874646455675764016647702017608097892113168804299110330437393174729637304479596868428237213901071536519205303223305071753833547471108595899484587502318148880502949589746262058902761665748183549654095530200821861642545935069020774815783378911836467237867857597927389553281867462912172135312766772855905419342723558124115465626398650363355413044484215659502448577806367164440537380258863522577936988086058436035597666901074652341277495813245950845176116939652895974921661400503988620581070126658726070461979406933300089193979255283238087013692030806326520708887075927867464393320529315630938654850898668026829992111983765428596399276964537549609576324372097974747429359306616356714823588774964629582016742576604660400869756963215421889016492404303536487001760232335825806532204411314643542456307466081451967925378116693381784467013635403282978922154670186387525540653729517782827635767641427270452489522369010972440805326163395927540500643769781934786363452083372140097628477924027104156926325976697886816782608915159225065899307595232249716957186018345646394842983909986590888729650019075050135621610323999408537433430740282858193875910141356123047618913233959085064533705552915803929530730911756068824951263594018590540696180058865219332449244850619444975669503726914373788138771044813795264150877188295476739219351093346680871293927207090675956248183841324771006743320706047044769098269831500663334724789704899111810908894438043991001996479802571051480953443814624809698476618952420951117280717551072406280165224572927358976435399491910821847430734971442995558163509011162891841813603467865643937281516214322135580875198878444245493470352841431065914899405799396257620210629167478261455890015339235202517382299247769843951066866881204331210677022579539022945970238370171093292843750367894473930363700121370349904125374725714087446682438648647272022791064027580299377056058496407340845772268142943668819828722898747012852502388894783703220623556494704365856664536399819983998897942390575126486109535459436728026794743338808439694526777229934544969380408381801922215629681081566936857758271899588763463703850889397899832459163678624138853272640305765949897292801294795714460003654730891999809665110429873570334872860988995398707152948414440932994133864008524976400505974300832711431885947651331465937707096339194198983559227555260717134197603285405986407608859257812028420288302651228936530722392806134516146395038652176579630457015938421553016569640818970876580235457994177051528522424355317390079847708456304432401040649847419110053129124473040739362630926963743275521217904316108528806094972438993583185213226763540057986952582089054774208044306045118380567654951883672309115012766639200374656223690198532855523176842739404970783845673138292787790462066652058009907924470152493320564347353466980617588644779459620361249128946556818584180821149748376535277781189864055204149025620775699953357423274900652918951052114935218656918701787100516534402109346305845707485449657799387501706058676819092430660148574908376882649881338675652204787496654028206648652346762327440808845321840744266828650190660128856816312314494554668640097353847988045801940750444500005570661587058154832180369098033059433434249029500497309181897111804325135277844529697291589719078641787714552820491859799646875101252807265211161432686195986896299096188153543224892365552737423297545379335234055466351335371539730369627245948909207935881403993285738173896973403287487826546461061300606961727980483074809243774507581969237521917538700503918992822962053076079101558000057334617955072836526639966795134287893651199429305893184352547640505021673806632675913483727650895551645417306058790382983027565243719074051924384925171744423060273995241885105300660273742917474638906057722566497291691235696264368019633343425148035823445910037046053364722545914192148194071213048138015276879723213852258004735463134829161949083434960938210593979538657616446303683142341771862079059916714539684468725425348870393457333197903746446445265833749408626070068000788776569073769825465498347028295018027471232601011907828699806447861532381909738363262152809508888771023239649670380912370008921509135526836812750939126390963012851549590655231885224467947386096935389163844591994200191191342344865183655015212926406172102324127033928042637751776057501418963078050486690122573075520806449079204448891824261555434141790020897378728239037979715737373416412394816324571621946321121307868605559067162070045296234771053067229428371493948810998445749436933187234464561056711873848898670737870196122938942075702928310313345348567851781015523043925727416089180210129489722428262775026624138922459416953655081257921825099408684621095696963391864873905122415225277249003133656458345683842796329490254460312414089694274303617059441359454544660970205155379012799087226083706195465494927226814353554870036298492024112322087873664253118763868205148507605658103197166363892598390099312460733421120862788591184417491760977830098169375600946003345784939968593764740485383376304603683129450006151464961300836202209914140415569633092525040424273077561892582025548498169103512614550389333888950284051006781630111313438089102881406018926444048348291088495705025953196337678259565932307655685319557096000894252939043042254531690055768512160081057143322465875666471324580430268990339803310811388601093445591212246980036832324392489538392243554258415336540645874246623485200208147501287471471489792740536602979715864260936057295867436145983036707046071448052420566032203409359055221858818375917624592868071234390361799054595460889337157926949536854158138178955139025838919820644499116431595123150284889047225604627865984511278777971526585574163642873953452146038000574627551537073999230432206972121625713695901263481007614644630324132144395895007683126680729863256779781924653022662567810926259171976045204855164886262274203021735778815763671641934520864726757984092727182692528546374148827486853526657056485259024310183208459831596198840019367963711747858371214193768565259750487680726332157320033842056422634424039228691141287982531540205272999678516445461617219641947585250244485731180470997894290109830617802725769988071585819456668545617239913356687381642181782021629276048342087562036732439388017805106491216962367783683404623318899901374780382213166584431523203676450072734778774765158082453728403314743737056559104307012740177470940600696696536792109500331000140941004321323784292220503341820176981455363615340956621127314678185676368516464526727178946543785512009924887810230412091555512250109813455026690255039701229068459081248169898997385841772946818186270436372964693649048954894496845899598964165901792306549084024731347259991250183183590267892694817254696637859594318759012870201441593415643822622022875082073480290212437305019795831618718078933625767075574829372175321320911798345444996020477593132310611612181101071590371782492765166583911369315440015923743500727542958909305355721148584668501282707871561329309495314226820074960823006496028107349670002397404394870386603999313746234732994336760987106219373714651311824675992460098702777117236153722981126220922383751540281548024476786915432522502036587134931073796911591162900260068774940292967605208254691899491774118114959669108404341864077297690314165114629482892606212012438996855613409237746110575965299767861128133454055096301295840617989243465180571508115331636851149416088343639472616342231897835983893872666628396159957482323356785220645355895555757206688860864112524414843638223382825797142552285689383617157323328126267193928005110994407129770653900553525919909197284206000998458729646566973277969758165319887005249010618891386210397963949562872839218645732163200012919521535676292973984146737551886450486712637790550159033477996998382928612036873905062928398153715283082314958475050788652367944170602080039451217740869269654640443666386180763817934692665404000422115715788948894764699135734592468519168325663659161477078841546485663104020468418483468058494104350524027903566453676685404593508001237981132783722892327162860106315475469615742688850495378407811457328347880654850544243097941580147921751910030917034549692078112358090017528658557674871838342905147515578483771183421668965677335745963672007391282255185297822356261911773568375728469449013022436355024123235680257869505937375295686808301138323368171189192845791226231660713282800637863834151564194671185527048554471806234460325730188307611507750991592140996047827983834546099299301240861598040235144706386107972728880339563198526048671011677995733470536451839879179051591955560124296753962970449906724029260301890348044752449724853681289486943121806796485178384517308495599588415120366421264207955514507632682241645006919369009373625901368504695569569090590571781304654566661837444152610418831236771787365666098717214754178751280872076761382710499730328875666198996627333421562818035300741506487501277719364899486518044374968739930066979722834564476878517482862353539588741423312456951561538475787486054715300609081089027835705382912777180423283696078923872192273363137750935583943464566794655248769012912081563540297062664715357932002312684506433499376619221218586946301404674157206915620438868433353777969999645338221988667215721803468800099065877285000502182913671831311909653029958450402323133713150846399607655525408432031181309700520285077571406545533090497329570188877663097403733543396418470618914410951373873266117996473756447784036683950878058048697360382468765735182814890008749874392579098566153200571974914070470418359277355972475941459764656869290358585385428073447417268100394680215565291145866652336126222428133765659810496142726037431271503453494829960756102066525838159593413250183273320074854677018669690530897654883299482345968729466581435977863708382775222566575498551451871774421665309426028557878310074870299600160051429112228409087495785798741225706270012223204096372302076704605868614117077271914905173006647301519471649045287611283288119420840404108957257696245070423944373547525665290758463201447389880639507265018643617398560184597791279526407326607507327001026245759973260613986528642356669733040506740525045592846508694742578038941772660969495303383657235237027194937232895863810673285512379970585881800730982265758062301920397389030675790086252096934508835464468943901027798457127296531406553483049465864380277216976641539034613394694517370062079345391692464536661425548221737593154674146675543141619038790509500734991887695939334118840708105736757163856043057279145507563447680356449331804696890959122824022291008382623642995501465877202154464432108573704550228836912965079315365546416854432711863021335519426696039111454884082510179294308496803386389608526063642440926288379698027108951329506911254407302737030035780903199787555674782696221348617503482810317407055653617053780363162525193614830649565623310370990543684555602911124885196284450064940289884637808224901833523979131229322070328317409387236563756796364168265511923837294140311443653609249590809864858702297579535019024260352323724499767602097004911428204133615678244628946045421569534442306398078723147641411599180158092525662952605681829864576143097679408862291413955149985673935939258652922756875375804302705951359463734565685978754036386995316798656000561527144784323463596685252987973123960776494591533664536850192684821716375528012755180628003747037608732515904668442670711276709122667257585672949153566291966705122705175746052975070884956487423856232747021815644825664141446997843416648770348718905963680256845173452959321403585180623689869647260234065004697627748786776214101289339021172658706151588545686193806819758581158580939079489288471555234248818908647875135220768692794929475872716475043403100758744100902620104606991646588059773864889355590999496741744078309188208319667952552015064814017059926665150369344924779743781394387029798974645424185416204351893995696963975070282926426411458723379548650598379088628926706703539969147122638323775586283329494146345406812409221909229587026043042730372392420362149109997975500802154548946230679335738558270913155968190035915229511403974186452974765317509216775385087859768086219703756073188882693858518283934357464655608987621318641465263909462375011943217990917941135952720412100320719901931571004471011641051210473259364670116377298774515171168608537310098587433381427602033621924722931606328414013258573448139462970536135506207525059076254297921306003334893614336964432052980993812685170721812115175439244710652682353615532968161459238597901791826124575180685133652412775278658255512315210579053301236347699563498657172131125403042100171422508474774295796773726528185958806786512219655000238168785555867764615265963748401191990445381649114069543293715853707394927687344974716004376991987239575561668003348446285502816094703814859529868495869975953965105051542441209188041220467552929988067745217665150109411032458218534835291804139842495285115943007034387508487929745107048061034521164549089898936883098179202345521840545833999378541049982716557694166567739382491620315610575845860470964088555924279084700399308686745854137283329139544418405827768577044035059707110773350473202786438557132695995760492697599621338466915191614673555649087937388456289239698910559373277896457418159380243499442733600861434581212811848507224936517805288073174499715756933216140985654442386670426299851751941113756496212219917827033981951929738751349771283774607501563044038898575991730920454697139724005872819059068721944425589962874532947514466403310770995041196881415203350093767182514597089117816936932355070570222990964481405725107479961309834409482896072817879413558193728087871784857887545555930381652645003433785857135079054128387993308435396343985512951456229884506238281710484726322137895178759619299781778251543496296831430436857293380573759805369575661329179828370880283521424060916150385136421781110531385633473694193670188121401986566155813802515920757575638153274083218722979612975477641968078399307845250995194417212573476188280939081125104892897977775956271766915283941742242165130083742300685446671570237915019812342939891713441740565320285245378869348289628378626349977558672080197687037721460044961534150926781116079478486468726726937509506354062247429935929620090200768599477043108146817795538884952313980766636126756443548186280880446505350774660325006187851033024473598370691751658623727067899333332992239295257773322471305704560989113266322578339057571485732747204284356719703931958738377526154985644567165899543589908464613742226744946765148115858083266446523704996255475761002128598321390306713266546553856262609503675659447075122049357708333776617251216555829757654424097920407984944401826074225891626201565982652715165941303323202503212458740534118239865839930284921016677975390002639941022045342613969738347433060606456410823133322769098669677671673638990817091603745024559276675377444780456744910521673430893020931951913397121384335185558815586556648920928348018182438038255436842784728997832548953117636662180428756361249329599024606778508243915350162696874479289741859577395557194109236736874183025360062435310809682216327827919502778969304645072150231716939372212936661790799701855407875556375224627791825450228023592439925372882452843999194614776902066522782317669649751023296854598033894520436259287408240994691412244706588971109720896825682282088312416144354519130820801340093708028828374454287727751865846923235331822318180951175294435139288617264703550683181485424502294407750977737758153792682618058630574394598119420674993686327318021371957733688572255958951016856253604346453609668080733879353489769529049332540191526063969382936879201144520285710149190449140579279304743232542291134035547606824128552935110652784921879659830592932829292593896304860731241846100613480194033260003212842423371162490872319864840175796373984356750441080946943263137868793312456507797498742900776106917943472163854952561604382858842530131890811177212500556489234323329012351122660526599793331224912248099662486403334611808969420837493480416585971375706651937956058018787795488245619384421372593638396797419351818487038380330892552815040347428103897761232504473403298156281838847784487221621134830331434075019570185025281743097910454135478414286076249221439681298941533144317694373399850865614946801596575093318390345877494680593724609400298636805332111091435317876081555361354302122393867904425532008381316024254843015363279697624748826308756155496914479456069355977803190225593279286652636271648031815793241342148072634259052367634514077926807172878294992700950460279614916281175995739588845949599821596920839264966711927456591415690804280486154374599497476955137551961442501580765332461903062485045719328624044412774597242642169732682288158429941208405671160067070234569463395988536112903539398750847890762145146145632047890721804940693701411689057178323655650565770137124618821676479244149457083429237844816280768699342641278790976244113889393339538949481392867500048319043202867068584324398080775956563205656315697659957765489435102323038063186023812091525228332542452256741616921801284615011844483956128351112123708010700188304246150591939510749143519014504822240477542543166517715525469202428336362637612464057969802217160894367269049002540931668505752978256526407730206036657579603836276657852233110501478157937422200510041487787997770803082128329470585385486515843432200965444746586954137080222800472306547877900471487571697547716193091431336195144798629513997810372754523823879070620168844467246275052335362162128350872925351436628687196463368572346290487897861888672020371747845788911838308088565009338160995124956943696566161108546898884699834991544315293493367333001251948960883310728338004900423123197704868113353289861626655855965661714979909153684551871152443556902518580635746199806609031084557802105573460942990621708742446251274824021043768810980775504454277815189920868293606549033652445723334436252283128898639028466808192049931516558574858422602619040383434261078984615469919553218877922057886540163945234718938286719610744921571910746947241321044615692798917181822191807146662102876680589085551383370473135096732945899709397676054290566432550510650808489554533233569735218924020992009155241177253090351182110085887979887372220706318872289513236751081716734149936922980147821683436726854649374931993189335745532659698145950608538136700455577067971096455647818752010228364184364524856046467503088998505728144968551016153638430415937206309777269526871850139118965137349597642059642382972647137883476963405904350877864728551925450824618272487627473504713451197276292343374988771131786851515719169808868869057238823418938081810778696077843396703207165727488782364950934351010029526863068193144956762344172885040540454464792190260511777905956578897318893017542317389025713844877382316753885310805163387758904769157856800181497203135845717513733727812567059604968195923993645476641123099935568774047490288835949802623080748377052155293381703863284945585142413091467716743992949796813217734806634089721584556249882050751125263527161173304677565277447456981965053059688721566556828615897361528329823036890087097776609506812892790863439288993386010429291188039983677880461238203610969863863666119371268022764591641154222675942303026648649863372503889961306620655545729214505121019160173364292749131400619178413025890715648145288848429273721278185335306519889852628203248668876445938099292912432372982263348971050873776171174961244326578129580016423025191412154379321171447204803651321780558719179383499572357996750295011757245057785645449544683525154757201763250935232655546201704138043101645439860377895487333011907932133528179388402203026698956219193704520129053659584609958054217564519633745211850522559815704567354308125283311503310269117027348633709265008454824161924705831129209666179184930330171840842138439238469208468327167097061824841992029067209274330823140847600831170134775877267213836341744704318839477288085677755082314270961345674522696729646862335591932785521702163434114507916489175050927266480179791640269828990198218238342644345244851878409439373448558474330831974734661545068607419836372238386449037138775709623063794025499486973318420923468268431631869512181497198433458743849585720389379618680230879503658088282065845282368732687039794203073981852011458077300852283597312950361506238095763918661149311999525228379764448840248501022628325618829738334557716444577104714784504401323793833444111943831036153390788451958899896488655389402601313521348146055370301642238081314536994793451334230325792489528960104252650524200898347187023474869830198183219003219328042228325536084856271386251950742342643022847981189481237096024251119758576951059594656968352009267650864140381772224562772864654493937735174587151293852505048786859003452084055270828585593799730891479480208384965416120156229243985394120398986153475135147395107649939284500998015760312166558434893154555804719101280099761104711633741151120678563358531761127398996927854170630542034712106663572167577034698919925590081157540454602192747064052121467434874314509359133987272344237330176115875101640487165417471247124505422876702420168974871745652565073227149656378395299499091940022842472059301661962649353593859916820290463420759323055221539426290557567509776125557673444327917092827469455239019323671486317958967122968684583701454864997125867007330486446635897689489326955531235161438302574954637680136523010294884998420470599975124668129656324550098073318993432187655792205652122095280902720769405847889793421584217979718410949854325976309613255636648965949756563879898089857622444246711432115092169066301332115621316914654151271146924906456903643034202218454558443619964102455024939476396401608082876321083743928474261367030932249017837304028976955269483209643889292837680982939643127225658085293087363925719553420969127534458991724138836628748669479694273577404395615671306018681002090463781651862874629815750040339582388315044343637245124947315698996216255918507389555918673711834063993039486079447334872199710660440809519908677204502486822079481903259169429398231260970682525323793928183068836574769879580058955128001075248113528590172877164003530032821982717277027470819804294571662218746669442614852754778916829931216602948674714632650990238073863261055407714573081678918665607131096409636633422340525586894411862026864355418551115009790632307147436806879278687909487101720917713597797163951894986770960596873520828553598802096649328042552193940971662771984626258447070423973440327755566814301469229643912746525249781648847233160500283580317363663471354539991398221877874737742907328191017087216997235603365455426020785307275436758621357156268766170636016333931822505946627971839968585393140966029635481159665341720823003135295636832180033630356880851720333660661100434011844161334363254348970077363110242359565088772178486753320423923945360386938741507966020401190441035821296205897686220260338688032513156735647603452023089127355706198698052679452817381580522535556648621926892086935258095879808267327315505248032910557465991613552497124617904801154717208754412170267080416175390733359993196508691902799245045783478453023286085244862966430432359128176145169599896369642135409003580231728253614165157797875787591306434287555017952449615588070686039289465064048848992398685360858533947475600026014920524382166217696951381173911134991969998172538916943200241076577179118628150099396711692856173992426131236482230567093305986426187404527082108015250197371266502481219839643185120788191248265968810365074646541237709264538665959936408873078037811768005848745054929793849446719913418919581228529695822737362192058239698965342180987118659040115729178708849749449970080550288408039255283908617988877219919307240545608052755960411553710960129773699866954670664802843773854985695316611230563349067487745389526084426300712783036509284335747706638754786478064656778824797528718104196668603716421786917020629337124825605222090667848471918573546642948099847928279148876653739677022389229749017810189545706553185049641731867556163796341016123393319856169873486821495037429820625189494317596775503987559924221483401491003255860924053372192137331814879085973447760081924239389967913839472654891383293833231165216354719333256968456223044647743939680756367740474742186160961831994507672115095682658704237215148735853516624453632563409584990210718027439015839516819953899493453578926238941526145332376183612165995958034372155033178742441169683289199743149500242989108309687494816772306934881748514840829786253499279284248385672525482686699653876974451676329740430483644122018853738282897083351137970354494804124055084409082937418157014328596022677806697370105248426595197808584469467580415878859354823917864720780342214514591933373522130924948649538361791598137421093251594442737911277541272668615855722302336337404974760890195390336174374951104742801265975752638815225839065701328079410445893015975908588344895343772031589372573395560852505279992093092600139724019861309067913838727483732229186287059775167759202529263073678623314441550700242686055419326939812774914491570825844666023407011645184379480866242195360113539065535559773819172651188594105975661213921327661607154056473031357385825257073306248228655553015467489997103972854726073489708215445480486803317102167277857795144487003602777323076201413778595080805189929032144193415838870282530987161837233818478988024544398728787413383065329983788494629743718078278032614467652935453423487812824745206243526811467501906256405725610451947624923750027484470435006981337022822129526766320695052351685382004009360857122503291153069951579572774451292507322216094908299179315196968107133359723507923154780322793376309923190351584183706037110539653717631516884889797557450661734297850407670684416589050296305357081380134614993414074822254320192701974515892716614751569391114695495680869621470639500701340948636078861801398541808212917527653840477976378092904327026866482645713000254962828273201252078409594948350977360668909541147663910738593557225318801840806555517335675760115559211435704790895742308130060528814483531193858540300579593470277943769948932261408569575702546320168814852546762699469814794786044928523476040859336930530838021164056123536251804641631979628398558054899040587529205338769021775847491835801551730601361839469452582617776765307464814453419957107442522383295372749515207808116843061112617818177167507475451773519882760831908036949682012623106111652261660199077949246883012058356980888279060613164715890456258719821297189196989083446813746830423649127859694308448181662056690226483030688614030759094926815938888656775387798272348042035305116106065178437286219310413379328648721304981930711487174498628222665010175892189659106062535253993052496338581238408270066820129769608708647817613326813533472118619927340916639315279537650206203901210748959020069861877632001222532106232517873703878885974525587516464720064344875462413949551173218160369563707734138065099026870414970440027182578259960540133660098045236517050498989765860618585097726449052806701801859448483878972260401125495191823006597300525383649195485063384813115545531904464364500318165064057423920171697208328911263927289632844040022636339237659155808555244850546975999354476454880763219863554139250198953826784744660744963099064139270749056505725334523296912893106396951791107538406119437427993124947106879191882289209593468690348819620876831238645764091252859143530046302782051183477772549201358098442763291478343288605581883748134458251894067028926350013511191650337431545287317048977354651287826161407558460583287384551346496697284074026729045703768699468458073080227714254148527451067921383245486776853823664806573549934066106520793405569950998362530010346096803442742863417970746070656210963583961155622867732489292347911576352750895278935127390238353575191462007143754425200486867064718097955482159621992573236875201214029908705823387810981659985217143799358191859602780224890685620844202794008221380771538400715183713687438374662881976148965031772277229180884583715684415426403034881050957151295106901821681577628740506504964322197643235612328881383691665813055266234890021372561004679347837929429663193950769166285641406334357848755508264098001592100801817384158113820726574243128981219005128766536724028407919539852337243029930465788139198861426633990461821985105078694631499291978951240251522943150892510417125558586253410526510023562581059665331142138403851607056758667690991554883077189169157547658934408098249381321166735178811087471591467567213805336414462406404191579405240156686945837094891487394866679826867700175980691451581998339412775527913064431974542740563473363424445831826958823944483227066522642012678136323105719107950954882740443424327023183673207165185485362300727043961224091696673201806437009582265700379761368836627850732643562104209791562417218683764758151212206650809968609942217148488431071822085826508769317732901011248366288755977707981450557690577759196656911570426407323607334370837732059015701180349415833645691963419818549339492170995579382504485748958281655846481807873454844601426587277399628094099795924429529227877363323976535521379059740843396681183775841819210003413531806427356391941282716628324973934457059065820700849545458055318147861391777914647946363071638884063505283743651550532402424072451000593706696604744923223043334421235505805117137278097370813613193843371995585335579833359192710407627950497023441859916725988784559957165925469222158308550343103567221327001292025609365890263028399608594290826880763111323887430033092243237880356628457951607515311819574187403130047308263262435477073583696628690216296452085444571385045770494565301547317099563195008807235591272176414515119272817107010062243511461312099543650684790275047619631249048171409357039786057599361957764401504368616163515314451442489510969054427525820110159374756249641486270583642280614065690072479107626172988365517687595626953326501577069072716655780318632228829261011249646039858924278713072331110455503686093898921804754163749404480409788717841134748811810403057317533539763029630664468522908302959367449860856560369573635672004657267908109919180265416159590747249344158461181896130880671077196009742657388586673910733796628932756554664091775160897729227871292494166393707554132087209776615047050449718521178781667349396003811730007898541085692111470835301973171325933036241437395569653447388923105220875206329300040700451751748358278644281455183694596207643208955119122929436210299051373226289148352866753810018051145442699363473410299224834033615439596251605309547384785477423613052490366558855162864064072552902574207005438180982248371340644768043091688008746158890317591926861078551151848185216158815696101300287918044876261266303229228850720160454592467544244519317689446886608210745281483857116417170397135379576664400862216578713617429584010232930065675018613268699035464573402002152729348334691608660895027183433966961282968574239473480874784084953918133780939606572229162249162065034348367466487398683771848699062232605919458228149443021374769031712751747451143799582154642218626892732382860388075440362475615402230568938969178188606558315203046845294826688118104512349736614088853132133600382617092699868271287055343852538376362795796626377087912158078994797383521038149420793796921390039286478442948976131183535564065082015258719652322447878145813575319068126799924972672302623291630692054996888071758857646640524227181901095102856823238110023492545053080609622040440370281465371535706724250333973809783956514427881083673531848767834189949561729635806850470349460750929677778841669266547552591131203065249129674734146860494990210049856806129506964938825392742021268963397116504350873029848642556765557251160676189970605595615160756567500029034121848469351152269822275874080879883103003283712405275352587961634453795067047579803777261779622240443950174959397085974938458007329992446625229408019155300591330528420791789938295673196633127545913418504619463146355454709122973067704969859191218724688918271439715695770483007502510603284919491279009783483757091848337675208904915971764376625336655392399023006124478386518442896877300620433900916249732373863727749242143033905621594709488915055057571862336071253403547786805546636483680092876916802873261971703448400750230163371790153708504056343423523330841126310373578262899558768406740802732728590296178561518138808648977505099356855003355761687565541099808118668528550627631167238731152287635716799232245604373601908793743054077779989159780681202857504204859424133552708820377435509877711560771153276793514821762641862615839280728985232250295998715944161281098506235666507173570993134146835572395400438347227883146034114683563642360759080681270282721026078871248079845970002783685823581102046131476259779876257784455360470716927520268251296793131901962696927965174547766374003738011403891300867524160060927595159320194730596579977373970920281534986020992869522331297661896207552904353262718235095260829117064680891391798039296758056786957496687480770274623138800306803083276159855928647186590845258290063532828841412999226956864353625730585771993547492005537602004274439737406302788543755827266646289837475783861880030075954222533963389437211159370189871182943382774374468083888998606910690701187572085266294753123741227876565021371679514743743788541341858052943054368286360881399383023486824120322689540752879968527234285195574735979354123752127041701649033274210553475849343977547194459399679302051553806090221615270561464044723046503520719277075564041160950983171633316224592430915985361234450954382320840370335081159192534692870936270919008907750595646028024122805213100952613483565673910947402774056849647880313598775889594187530673765108866752054075312856022018063158412076200342101232917531510883898782459346947149148804008990662812476814523302442126576316020753147513576112954039242104169987644064236184270840992116521789023532562686200786901142229799048398686359607234209719620186084831408556679980053037976312136990868282758674352854926134503952760968519326199968924113139783159809211425748159371902679543258588777364070814958880243348631502870636174267103793968171993527602515316475100590632863878770144822617577075288686901572793962198901527974814695385969709360421612525195308079263967499178331966093566570977523282136134466088822706231055623200925676338448277016239206236868029337936849987299983736068792750571454237426988876602937268621860499393702629524706699277598118796740706530721713073966231917896983719652487698091119815493043774184912357805815039864044780098328994837558930951994880997612203197145542746717417248987561551281024116024825486401285004848974511697011544707256494866536017876031952760101461593725240224409204561492110866695455205303531062478446758071610210662429950775775447239462467367189737604187363462627211870032531685189464150499897704484363903685307172057493516914836183283224449930498041183383126617590037085255970185524622549126165305405331901892542612142750772806103374340264366932425142464751928473023655144342154800781227629359219991721995195695564655712371318258662831240754685708536072572926490648860108923530250035092268971974931311108924832832516958883362268316852335651895446999209829283099266861956834766962774268980158658188271147120967840593728060047203887849547421926571659519172351868427258606004048529883290026934708912991297575900576017318374196039688363738229363213023403778053583740485832079878190382304690362663662497384976158314313423647699235585238868726932799272783645662200687118255053827268584638840221736365201076211296512486365169040736868030513072609597234535639418916307738645476452999456374441318352363824984566049782807995284026010316091776192096958797871811499233603062286988048187596035070172988433346076090292453630713627464910965960428364985404770532266498472904852222007604729474844829927411936572748815620239607062075489869892070480866043706014934206274839119677223799848739390419735135589287317581882115564974222715116064960767042602493008822190638763319355995245079137796163567158310843456614664805811058008991114634340091580065256049031129644235580942138740262842682787289889839319939697948341212686828568231602385389311358096635997134872958102933137895923009158458324896988357492573901320913607831556897604588211801317962889634901709538281937139967985785581685910391653855410972356498028633333781725355493011440086382649906025992717953053214916334349374853843758927492889527254161850517584541349688918381017227557890487439319262078966070149277908105800770687546882302347347407225668433064958938497772674776639729282799104504146474541435846676380048557819743197972141558766739859251282594975737637507698512301971674609934674676616596308645579584656633351044249732222796839257912963125515263296145646414029983998653235827891979375118437492792386647198516548949721195871664115202652930180023664501107741308707623974291287491027436828232683091396565938513395442303761506914245068709618658946918825451865946540869472200984559553290385657868318054414412840132663254420115406671207172372234706352947958179595144031540335775473096121652359502015254464685702112509288461443093685646880454109138524179890008460617423828948320199224803080877863484685127709732402620070169740898853622191823045118767441946515274210426845551640970180140502432452199202253647825343021395328401776767696441065935792086830157381010372695191800034829281325825609700457039073279649571955889881145542439233970866482389854884581439809982471600124455279227695313623654867601500589916855685040889226538951032523045010620653028839511585042298724090928519945210717745484001231478859460467515694390174687886731692138777425138382893258469369870524026083995666383087673116427446090259337455265574637997019626543074794240196032858216632991090540959221501488691618915355559036735061571854274494216903618493320944793919544257284672767727784193582318914141908076518256821220745162742193158552959419428570397210568203231499008784481219190671410076188407169345181290413077107314741571286398668799041741442699196110904950982291381221396753322455051603992839193403707973656822541199261730021317286075425746583685342479292498792845358624574344440715089560033982377451423191104069808182455375867164720557287035674205142486834242050861571781141618952247446790413659597310202711703249040658610378508413934959532037983322556512282354643782305500946201899889644168054829180121654126839788372137669585066824678695511733327906479628128137237833025885661194699974685514579688217081359663463810365968739121693554698466336961681671198777694461457670544835015210064541122754824981013430065885924718451855158563061317641907740288140643734147260235519926034615047546331509703791585853202893440227676899574181850731521847814799143619971077695873048526202572668841912287886407466851434707976722957245265332260752573376976934349480787651327318706619305630283728026073767779218165183276834409084136582406194590248991701606275240212961169027176355772289196699521747168539883507274699685317544718991659644779592119668376981592699515818939840658009348098025327658549597448726312929090845126390954191041610501805362773898687628025553268861282897361732863143955567655189626197630616934470624670798319612840510807266643688852376612458284082717531260981762398631415022965710533575222066779570618694991874316752338216124810988828030010189741650902292685545209049602008994056204349767152162411032904304216683548965677538639916761603337708344294403893490638756751940961705837356264250310904862954036186098155125865327678632732175864673130462863573034514686126527699707544343925585282185140186574618482421623309996009574019245637865533399248225739848909021180664494083170893555801130749939278872636044016407970794153499642200338570632635824633611403741106980596617140603249427023397331798254201698227369362225098477493421045414311266258146494473004309090627612056878656792195222583702406247818786813746314442062936282430828615203180866129245340073403660462627155625278930894759974777614101932412989892740664558766534817687849915784327397286924436297587467247936068460189543465018352107761019990040929659552640791194908415152815603486735246628547146719752538756437304682311415074368509368660446534212263739376970375065253983713853261626970676331948869769286031743131034031286978321990829909096890053298614470115665824893712314263803547722515495395137532786471748467293111372876115440150266977075722687770653204998233866369687886926960145420825080281178779620224528873056103787059996733959402761460263203669363970807869758569138127094479222430085589912998969362736535804665686940547837134566978672249036481618952010055363463075563972673805064112821539679489821982832240083682811292252197263447038794042970054013477665303500408622398027164772328051851743566200267269617100002505141244358809810461922504018335578914719983396474190416762368776492056322161834977359916372827417242626105032267859780791112416717044915044554596525831040623780343201104553435664220683874478015709735109753482202099051918495547327853602948358470190080730256275708813172374559717271852737772748141553535412826569321543266249989172220410115681424221704562934916151484792120355013271290193438103573715345871254829029330484491014142999051509797904399876935067600419786055929180366012983614894823112009784250746966448920412880126541927381040405046247881153473804426373192984265585073258485171341397646344075814033960456458443964252551354494581702172913978099838218773586500912194951965100028983376882947406585656127081774344434800041122031436199206194253973455945937428557416591631440398377324429215869909958125977623403150225515352853408090238159609292999451434963885107458286962149591487646473819238448513031211239496322191497277589224103997183184019975465128677738122678480530716327654179154211268850420230198194461678601527245586595189859912519514705215343090881095638498503188915754915159205884667730388485712606252403578286760068223118445607572647456893844904505452702618140044166809963808423753084108966899096847064017931261722759238063169027529088137046604210413236567953763236914923571827617225210873620750346459080539312200856536421807719930586933294588537679232803314019386738353752398740984341126373527324935221569766825926782116234252341582840080038860880306161914198297355723498781788684276596014502472033340742780469481752786926821224310166498873814212992716383077110812701466702630172807830337260559153398181893410812835358107138948607264262206242507456009410110726934505072862525003527522282434346798903448523301137232358092824782882234005010401074177886152318453275721618207665213315713536086097140435718072277199838600057489486021656123072616308966863219960030782864470645573881695495814020818748959730457591700311743880714702025710833535679568223087285767427698925161641547966571252748095520824853653061758366237191609890401644118487308550485604234688694093270036144768253299547346954094698856707675321806791712103331976364185485785024359848610096733770746849382815986249676132716948251169920303151738237637647404680219298698369771372092468593283251091542096800796109945516106872289618109834691905110488553098564318037585458925329664730788655758357898503677617843842439202533767418147255327724872988709863780362138669807629244119617874343965855393974984938931752285639650187296772367109949933386912124035202427757654641663481774074852734915340485253694403004818093978786294821994390313615719120949722966424577064700125207173999940424536604172855837295828637599335975075167491300540449680912643060579316657650217617040848607369502324137888991957468715788709422991966334876932325905223841326081335258149106044000238694750933410963076474077432448086545066116469752132328121499417982252291585619200293942898418921613681205539630039587854314335906011858711607468233342159712508091667073698553341554004417919515320492294292192200129707909796312795953247452746999631060878158235640940800010575841064089280725621117707301850353310499685695858439559448023011202555285011398994604619122726568838204419998137867684022387109190671154252256282144860649714602415314952274053189193888657715002821614785634862879389135640184518432639523780737260615040338450419865615119498375477222077065290512795439233814557170209772508895075577200234586844432914781194175807827241549263500121970526529319556827839882936511498654023186656355470090784340500034673032962639396632410787341297032982947171556737851088326666795307609499901885992183482585875851204718305742284310323875034355477402291312285026377955195570534744634677764128896479212800202170872534535314438221660001863728717973411612352780153463504096547263546438022810330793198754616146950460658627328551788889673938861026448143371929618684971692334882851734348103540771044106005460152701004716828892189900309224047578274206055369159184928159941637736801042861545999266478512230837778715968945333052509767358395806191208805587943689648628597043746503854925461554984797128409746084038176212791109497820831793562583579175288731145893140749533595394758677031182255822808538776143468741316182262828349216448677150983299527919773752114453372771277674271631780210085769924305879781072190285424739404558354292592447387188902731542361833868843629407992014592092530480732735234658862873671749080117761147926300390301664299376307824384670844689327237214819110825994847612758172465269189959606626520272023318000632660076667938598149798722600452015204275431423693752101735883678438351363406764931263467382049781577304503384260748439734578386494920887328230524364520834577342443221517764111158956886331063092067662715704810132279795649398754041216498587461018349047108435626710410942794492557331970807795194532591600646480011441950277490322073218401579879037976263397910379962902220155073666265923571671874810650273062111631838712058746794218568536388152492904963254447700746765076225040011553646185577673442291205256079388403393839037348005000653311735906281540148102619221238577232566981628344123866226248081238449407777351755753581517500796424480643976559566026219355360863992935459127412986634638056487875405673276028265676793423313204848798856235305706582623363498451115541410875724819758521280856159634609515865206958990512936024484950920773120369199304662249411228222858452804463411841175525319632602189179060241416259758170554211667840721973517886702712480891050462427984415251167047239123025219375196076061918385489781173437236507556185490689570981496284108423421779249096529901970232085732546747684512259296767941754992955510310762198175312767991700570782203980725088697591511066792554937350044430861230526798855634821531149522472235175355044144283411025522257330428712810915097725577316390666203653321398426382030760641553319419491786327028544778235308923376146055871018848641214134369010867054392943979936206325454374948989205277341940557519210772015792821188628426062685953383684239189348716335568860059383962490884554490385652331864349720579559298989891848343838969755649276853321014354303742283700978624532151293364546182259381759921351904987479138071430626615563645505219253601630759673766718027983833688745288377698621754084277685599360728872319885276515880597661807138530818409861639804413601947655663403208617934908116143767392505086282050530658686181609944737990883945035796248939160393817997256105016662122446915332324161541197478623301750432236373017690743597782532029090407435514429126446476782004186473468912485724620983531270184620390148165971239188412533508750002022029737439882429021190451333568373150377209361711335226782661586792575203606560181220726914488447042742268686978787535105897336545278453013990734760800473228234712391177922224118254330211421083645202437053071984394238842045501805648893381283622030842358565583494234287451255617334316791864530425805768929861452352651713324887455963155959794684442138480400890702487852626221591485126691912108863806087928740716188537019131480569927703315250205832731710929413775613468144748175560353983359556976690095599601152489012473291124348401130960540280733052829887703706829095429331543800534796328380545834419100324962165375051906173128747418894925741537366858586205077298835142540545263132550750103280506490086936290135357209956563609861134886864040150548465759347848011927731779346328231189600653976148656850284657709215228306102439348218195103203041167529370487182562106960909108041154027509533792227650033145336404159917843441644444320449462103752451281281968454198980137015322972513059344465926624403017664057765554454170882908405624280600544413506576159815686654991151509184168633531357677624864445945696017843542932872428004233708427284746623015015736124465334182462354146473560298267671819166453344108077383974950752746638588765468255212452576674962347636438932167732146414081462606903228046114629419469890718394358227826466736173190583316579212610119915707541919003475649937483426996191396214376304026088365554461877484618281033413769256472528156469758778600904552284373588492924544329409332943419306892084210903117352464399477346355358662388175925428831383810646322317888082768067147751036053621723096316929953839412684510619493381777353210430904889136567722513055948043152320936160505757417077832384924026719546199393027173781436187381497647751966095064819449547639111530943715059464911010007812963583635042486242879380110809651612514835656833421992055207666695535381852058707505455104038340480551090064768979989013527037140099700397666787851339027038527026867831288534608067398398373159608928853646960991328925507918968683071562249318166350406927826713327126431226384506423518412225246076344486403330829079085786967590988377046333327666372924262093958974106375561567383395601120332811797663953540325736903395074824226024185809124313274142024621145262559219060471450043624836393189523683851109780725137371316076615623733129365033811204735771330679252191652705914028497445580764196759225535577338802782544267707162428155270117006136562510025341598279823923333767644081728566289780660558551976583416212419335270181215710092155546062374774878844098270620138068772004421667761721442652827994836161536268616162103352714576458371475636441246570229728544751117411592518923857484047004002640464443770223037045368304017791143315167812957465491179402964355121995024578596904003566434765367006818647972784220230675343610957862709986875484043671970554201220766915958446871466307942712041403266397001790768164973511312047697967952861257720740408423565644506103399573820470853925638352054270337485210361401101802312915713355030705160267739404553440649466561677888197891186147879186945177345160124378684191720095300615324794888431510957390267222636984193229657754522534831928832700747269059356660641246969191606884920466931879417808913207912308911794547601265075666722513186543052758218740669293202347409855880521797954715759018479052174445143532720842895392767858823824698671952357084507003512367090695738059379723228017837885126932399137704924233561611453092855548147500561237628514622360114511919775884687861955320523976699535845105056729063459557980523727533343371650766836562604651651190097449075270707815988710232101331770919694429013711031643825584393121722999084088217319223543485302320902377766306994548852995635267927434738218915014945296280116716196665958796713097737052352693966504114174983545436645202022128452472578690260016184562190353422923360908664258726986003709631779842377039073837922567511590409736014997333485719369382040115823909603947719316246294619336906754146147685693835845440999663447056315601621004600987821305732155755931627756812457588256490400530239364037645590183945582781927977196594502115883091475658162324644026979089319937991934418977411380503341183035892444934911923032977499504913702929537024817108449768753491132877112959619096297845186240653126149190662737048030312468681310791235360094200850564485081707944892897731725929678983378228707837606049825062103241745537979887353275716792567289164848840907867052800629573685390716370968229501804194732996775287055783453718633941611781526001027918529285099801006122605483880066973338275631579647538511923093112361172509742930652701086416485234440276659678613407027305279999068987813242048632880629448025844308512006861843004381805954820628101921744338386118524230354704288678068870885807950147505968885308285981404989480838371401037934203015449985642417980082528615780340954207990762236247908319928821832472252820370400096851646848097349213665847773191035657512482192371523963304285981486387573781681219876846705592153131873531490534128904554705377452796499411297449852931206023401038939842069754908386578576301658483855723256957426458022928617281404907783816697145025760038057869403264643048133463848827863773533610325705815043866229197285279323406873284018836575407220264190526584410292225785648647059885707306542905172824433986130779951038051593727973643099023126427092237777457048178668522655597279468816302920233013250778391090535196381790074550202998075325552146108747934870850489455095242011859306252885640480272185079998299328894373055952488633612706586029575141382667020648945911312085770732960892733129720284699533866756329279174749605367213803164802091538626563140334236586758155939103765072451295982318351621270986575388703622251241265132226203364604562570652751441356541750294817295744891754709839426655938788811046092960309417754741190338478411856818187684723236671205163659633648398070487406649801321159315597247054620278930034786996833476594662588725218082563669755364848527901873561757447381719099366649356143795718008603187924027821728708173380873896066680605274525074062696445876830168802865251006505582319634782723835846205872407088235642078677933131272471517926685588272342503919615286163562186107017715465196774101023344574503761928553899428920902991390993000096429576830758212409974707244774637718546015013195078974071193176771301436700300399515556963491174068265837452459729324130754309151849166317504190941734992981027147411319234298381675031014322536834568212857934019471977981130894449927321524614387904997781817080312910713410705459679460921586369841677629752936602555669766701546729194359228762086649960736567234313421421232210318908202097185446531804486592494743870196089984760009114684250947092528610433018162795370087582257625610837850048174602155246970927039927928525560846923802401322468703005297346178398267870416443413413808917042151071232465739949171015214679811792949930466472977368054603278234481350387582298635816058905203065732921935603497016738386540820109840561608251268970418210482037919394502664562592728306468577277376767060940590560719278800971178261793999491742214886025043722071846589811710122986624216742532239615943115173195654924731152301486565529836287908331867438727662636782658299633342740424478772934724074378413933825982469648937985890928459362606637897722422791315178725896951112096714032267675287438588542992252262887363980372393161478620234131203006471847331876912584239258026690051262259038981568938788198346841228413630638571064189995180017780421026850024093971398584256505564171936442514774182171890006824277924046451956324523493017545218378040290511793938527841766170164395918313422141226107234185753103337356395852399600141891069920081333470935222073073077728668000154577174337355180428865592476322229044759687623870877382774269964275208182947863328913174541250951606592354873775693946650020604552109318259998957348063718467270316567215686492576162825842763382967755066258841127401413135272938063154384725334443029429986772677776659773984698039269428332709253135685477899717487852242102501704017372534433332566195733926880417782314680372113635567259449358238639902894517970820976368172827910081775475346872689723047681703596231745384454819031468155934495663840246483930737775448303799848462833171773989269795932656971571242299056099728336254427168106891970228011476777104114165820102986664270135702285008307113327779390769733351164413107211772419757486828603604087460942441179096433234231056586199739523080547397766596501298061469642740907864075998606257187931292578577694258591092388131474679458707784284364326209529470203703212095372343803529775437049385768563458849798940479087509560688135058697914101214852305115782895102658936440613513831876200542065561271460052650036472093476183691928997364230343160616721993205784965376935752916737669885124189167513938547790414444695897952727800451214473695265900600109071251083392077063554377377397020105793984581104999673921867325640538870138988945384884827775997978521188781596725514479250023410474197173000193036752848679551778865630334553464573817136215628245210603985838115243459343762594454150918119874615567428082752097488863551819108768017033412282933098467761925139188001186717398848806345673597402834134907174658749396693103959011136478582967293299181383559303297422542935302575222775008712111363483923284070325470023722413244283882933864441867676587577431476595736998211799084655853481298483405489204306788040755778192954243068296701614368851144882278875844626011417634439409400365005433090150241187443263658138020318506418750576057200367440140421205271982263036799153199597900110962043826812985990729972116625232867123021092428606021892453816787326810997476248461923068646357757808143933758959574210021993543433031448507167560305719188680811755210141812504536050319196630255692725552761345404130667286765270724994278845860308343792746157759579741966239917702470645557690956442726115947339867356945992093762436458159977189481096579529545890150541169249258637368777260671051795007553557991513079220023304582611823920238108089551763062798336430054486414127848512352554394549134584654340753534174529119453166574492287552194512380466187747190854292738687824792697949972831883096622093370947642359476494563521705059067298924019494722830439785140778330269600705068770624980025868355797563352220361403656166938435171079450258659412837887399330651394368962409627215057288665845134721822416837269591324731991138242117548477868569817257049578704932398891379663030723927386845168742353072864034005671411178897451641378707725698342322465643770013613498413526641899100071984095723140307787374251780201122915431554529602493580272427278315877608131975199755556564944166995956275442657626895458960490575479470501709605268350160491609752507818740152715815537953200711295165704331162806110928916671104287902679063513054993855717325642759659328950618538582032598092328359248440569521746021984192892021502278296506077537522118491579894915965550152878432017988737752022521336162227129249790430318634008103390472756980917822897235158697000124731188724524425809899846066537032239721972482512354376714171807068638700252179510159783363501386375331682269968227379149883572289710373639060979214993421766314784978916596331398225558819721826455040173360218763546488914099004919589039773622617007326517982274995669682616607460565079431396358804230160731410816509100404800659677504028089821240899475571593712048425794038540585664718294465112568051452614682316969957796237808993913383884865282526907664874947146775311511930347021093482036302434664802038176263519676220339980011237280282230225970345643819981850157442482041422839676119684216510586086971158410121537141447287960005745708318774684127057074368502930814011390490804721846018707205886677652656720536836470930812150189985314334150564063898466606300459761088939672682012870587162106319690572435703065061913865170580597969793517677182843422165959490705613699980468616123613725704488739633355661398518646770979478970530495573147656900797920929993383246691213466042631730713630237846900312658972810669721373503345265041007111187437194045673864917909033475451225711137389933706139893035395633440655351206946590970323130801870908308342310308153723899447587721977567106323596775590905699183436153190787031365901137020279435770171103168055522427626467261363247332381541538984076043906167693927877093510635352894548351602055293022222206527147967707752136237163915030096554333106477036404609956217183275349085725889199635595017504536141347539030489520245427717133891992269375974334117423899853499571533743731033827809417350155165722768929593571576998362895074159794401116951994522082905833860069574574796777645391836171915983569609658098196593523215675337234315194285358378199110480980602689315408144182571667130247126047130194264158829077591745779342302150609673591604075805050696092188172210165692679113939601880233211231092306493344690454628943038708565136320554440470635563340806582441073476198098959458153846306482285851064112230441175290698174986667844781606731263205894153671263537136090248787630683944542324818923038735436952629550769691912582269648411668331845065719941125801961277602310652259013461123225930730100056672771655200685741807327790040996262663845854312612348643219836351957722686906445028124690093859784400681100998073351733698775713756454857248984712874103181507986982536166871375938122444258208874307264066358355217534800181330167574749974001377038109918406036218235032271186471349737674108049995975842866975264829273101330558749300384317777851159680860484533438339174348596870586736503784353776458272569596404557450512459818070814119680346778437647982821092185260605582978076927271854584804731041658948085920185358695013351381829721563260955085249537837979951418484135835083486410261605447786560212514508240385775205053841353413341413693860002470110524014278163065658508494933833036861446869753714376855936961156746088389472849068553221956500613635880292418203706732263673767619885702167540689428976354189041670638104555646583698572092410891381702309605018055117486241229998614946458269290658703296771209352525296030745838632041704201891819460499303581595750123125122826974671130996383507034697043413806101559115536092106924107371311651322434806813744285855228247140048207633498971434760090048505054472035343156514664817267381381716964139233755399246091277476917021375069984161047179512824436156540440134683270627605002753943061696693844243171677227701887889265645476667295941360726095954654436034730805185399639926993879684346866716950576144536136178753973801920253323265188655803735526603831827561409445799071114546064659078825704819677558128824400292689877332466090239657878248932969998972039706149339060000322258543681926514296638471165676200828819205071109457560810760962938218570375757625655630950838174184039749710451415980173239418138211276476200793275752130508454285226280109215879574933939188966899227579260099094926166457223245831560594046378712453738490098954747598638847045917495178589377558305742818489786950121966529298925033709820386316733899994661247400948746641168942781918022158709246475784255613107611970625168743980600755057708487445368226667271718894676296730888668125363990635327996726150847870127385922550934687961400636518314713751200407192177298188150912948357159529235017560424325508285234693111872327791813386790526322617230181360548097639573307757864038306218886963733450404593426511323306839699267088616604993225005022933642129015875108576296995890568239368351013853156721477035736895755720830163894804355450860210890640556682825625208725211752091340607938532437257458413014667923263564387176968436009879877672110873750438880550628567254004047725784773163413456410730744054704437529355528231908854870686327397379205613954818397218079983934138063800918902975564109104572168845995146191214961755961576740726190043170765417838159888630184669977913227632161061561466731985398643633568317468241949770063272932818750437127702455449610162149973830968604691964298562941164929917334372288224505167594543701179837302530794751642490184825419853135385191588053624526025898879164623901517974118450681108197611981880497401546345087207853898164095176517739544183483977079396835825187708430627558212990515082781991694696271746233235435483963504584052341379895747094448321863690973148363786211610167170862670277527902690135793423742200259786270338601328501807271701913551378881809624508825474145873404080620139121352466259925730475166784160447421961314500843508362912319757037801411826313465960809902776194231195579260927303921394238788530540370326392089177275442578771899424261355805751298590837211042720398714074560601607222540654091147994817802268466024134723741872329702016418738405980601518515136255725920377746269231959808686494818900678922335903035027284881361770699543481273355778953735424503405184613226863882950720294326050289938232560924485976336703309532064859982926782361234871831980248372373583906733829176187581775860981417739788413599989055370947446952659191825674941873995607478112162123199747534651005221247821153122480442472217607169412889757112142444435483318522290278081891099999122366561648362515126762933040779284898176044196045511104277792419687118573116147459490840948161969546194107580483248780643333250716801838269253726007700134618153216344408556238473502654130058971269821964371445332269443571293304263994178127422907480929690976276727526407377820463406551816025252401852474164547946259241509079755783582899646518125169403140531204558810556729472033454348271794913738734966393456504095000555026266555363658237588666387434962363050771680552944613610100587968163514180717377697099791855432731235383517806579308285821351749834273311631930103267066587806764450404686682444826419567396981691934016301390298368532454569927045071878747069413001071922261105568472426770512773507766834320493266948074802461310483403403437104351972142701619347833853172362410644213541202876604794104808273256819359972524765216936672407653265554603117785073944057484874913442683856975208736116041644525705076144207855257992677426095554894356483105926751232957530513468243509456027134740963350844969445125029398719501865198439865355356928269892844431380294122454163490343166638397958618579119408385291083385891480521670725549428518179707753441113886363082735958779537034550339657807671405968169565783150063515439569341071597984167122263073827398851896184539495138418415969857095831630492009760221752047048560668895762223900295934250436308976468626036742168955458220537453888637338632110591957176929986396195129226734756516337123109852495698526003649993917323049424317070947596365897667347052060279058164308942474232689734596308238808023933449758611473663127050396586606681499112747029745959286614789165780711006291193948509537699185394832293375711492698687617766361389190498821846009399952632396493181804537568363030201093666805159168146153562005915861234904712244628606542458810792135149231440906947308461936712349463916968810367379619343539767607197796946892023043688966448072930978836175268430905361182632170684319631377332515002814342243487299874330941075994517341422731073080461576031515691445173480867435638126977499620878684261162682505528192043282075861097240975483219443047580911425155358164139664411802000201658859684281768865093550745524608169775701113383482493337116827412639165903993951138846373084178699838816849061005376004542521747750420944814316874929031496934219894540730065207143583142004875442824447549041867545977641715464383919014696785639484367922002717248904410670497005935297224154090220026990178535640217805321442756103107490163970556499975419477664199643743048060654657931192706438178995067797574338763577583218476278278127880055021454640823434352428741645795326088924016782081742185633278277862872546504902669739178095710175846534876609892150343319140162889707981767097181267968808523491880776181955087452562897007584964599700463714247194338580798433690139888408679087576540465433706139976837345204159816556247518711154796359335596915723663236310917896568558892089395854217899656266035316947790883199699205027403344043275698711691844659165707071893342518943086312832965120019560902202845160498214058421329918111989541897862508849254467602959231742429063190669097224521187279336215958263612568785005661717800946481740937557592757497966977797587202001643800204316976213040242268472876369257790164292579417663337867314079560669798528820820864672625573056702971079651975238633305448914730098378759348912744763542056395713385944675878398704254518597964053122827980846830000574644601908074376955553103895383940784709822443352431043803621424414762229840428723368411008038206302342031810775249874844041537741131896485340742364612504518727559206226434047481784489502788078445674393100832025612082905399400585869603951979787545856057177563985459107463783095895302150688383466445327658476141296230091833042583414308362068818019055795965759924108121645089921771825815329812697127715021593387712152397642286645298777785747464359886686303980532713504579399855843963740395841426451714891855036374717021945824509983430111163199373419559583866574230675051397408818965892201415114460525323993581658276396556296467663239140868638841352407793993610951354609303928665885391584708518033338114111147272086840571537199212178150590653276650323319339318497680322599850020029987137940085212587753150550523533923969630349931271690583960581196195097357843568353114662258764223708816603955908107797604750350381895308120235255394152139961189947007229911713697832785536484465347378577704984756019859241330461007984496815424505903855532091587191938058440893332091653830312699981326980197467558620653260468739168994454620253401493263465248364098465677922721341462782394358224494779511388212101430897233841927707164543700357762593939442247454329442326479206911308119894729034235037422291746358368747594062376329220431766461685009630813511422133912408559716332520335757973615879867815508628152460194377407370925622293718409069718123327578345073209357527875777778047745867184096207933182104309111504059815526449710149685125037290162057741810993477953298617831569394167004970333712427391558723775681847904853289117076308165251461136489063148914656875632732609975455065648449148321623696988936127508875263359095301065207612269174635719688691299862478226250649583245497541398775991037381352727310596024470902104032205989938131317726162021933004648095855011196730324927165782476593892311063251090284187633872340483609464774673940227450343026951216660301418314657227281281092738356905032110906412001976826093933426794315961152116697388729181474792702954376510133904505133171704419615294651447505135288613541112579466233732917687450439199019907967188095480392911827620670440771001437252752813522446912642825260820839876488963279147218071850972011788726333853071855310153460060566036582372055463809012473773143476531004346262469860020304593732574174693908580167103302353714153257183920638680100423599260445982186280186166321820688686213190562659003841483613261355913252829122358403294926488579076330703148175154387127033569967928370098351627598071888727838906450082385197356361899918458451951907922730500068716232125182175508246499827504551170781908399316359051370360475083578663594930111293646872326298873981316990879560934688445679633861924968055215669091120328246097524143151207696715737624700252624711094517729095350347072798376821288376944213975932084028992461705495234656200618722506369186522587044789787656914034042243658586798888812114548531775214827948709803557818401932765546586705020202721174136357519957133925861511983605903828730021014179499883247377527699527060678849129254223556467299517117774195108805730968274208241240973807511720779737223135866873650586110513587568313875747255330728123249547328044642581221627865766195712297722772908148057452067883969826121404979427103672640106771069019398614881556231269981455820399161383386983731246684897485008008755866571338377195638682841366395467805454458891476224104402251870922919440645619607677071383870879166595215192602082818970273250967941596029772128227416993334773742167927370268992748072276500687661365921562176420549727428804381047950584259138286205258457322399970892954602141673012621640954172841692040371335300470262294039769800897645427905520048403875706587943881766828581357411820254612347446065507025524630989893298141084276086136162178611382621268963224812835046696384153673480353372284244085872647549102942489359714872106168929722566342755113336657863441751893803900840521863646928229995447005390200085212035841864109837276799579177877319079747767746858934736373939738590071983752047798904211675199003906004820370184025321608761418859672948296059784683307410636143573832228832081189296043119031545098584107264420923086176510807280100141730125552011652905002469286750961755090231452938788059838822248892981667670360370141113620509395248685628963559749852064321115717110339871985619572316177082923297137627307476850969585854779388289605256099210481209819392634145427201556227761536849369749172317827956198177441291091062719395781201266527220141236159735043181008527196210835050687928536250105287359202139006691065531566668785741036444332193055231742636168783686532086869021565077169775150926391608260595645215952666681819032385009641997078180169207065629086699938784193836581313543543185378226542617413834450884477816334317796998975241105217996888537822370279427856102636883741667235533490252175719952939687179277175690503059415879324273419494471673588531268045969268278346418674120711144574573459804984295440824389788740192259676623068350255634088090357283097229249224485265672037863568769888974012281534504706895195582168778706503542404086612990165835897471402384489261686524285468405024884760491890120562587529966937004920874176789929061177410092990124158509286272252215638237391342888765537029991706001013051372094394221799958772596015682197788199876838166189807318530650230719986547931820919139165969083663235674054439470285943124870048531840057773968156302461868674034847082208939136056743552522143846943454246815796540211399141689624168918305790386940050162361351579015213527052284600007920847496897295820968588259065665414789021290415290810485638655695856829478640190726587047461459448465709423948824976354398377149596260679529725038970667216105589257797858532382026849298813278163682900461689093210890513665976289933701636424823089545565530508910725008256792445628773992000104176118106101135904343790803969004690800750747816042739327354833447679844450022698069186316354574124742660963019052814720845245823287014844966738172002753089401404117481368566714748477978493714450796926363256142593575212435965978790801021159033349126154082362194511090853236117901626196098350356138678190275658106748325970726094990638422628543880986889994100565845273528352405865239338425972745115813675118171814681777739678424893757973366854350435941782253675212610020668552194267820935555282328978725202010991383312865117881678752219941382719683096957362310903154402466738021000446954842397304780279945248639246367892817302863514175018870187347666928577341390631250565787524449509858356043860499995381650374853744309299801846124385612491880991207494012290964567105296299531992272208065553177575866420147339282434586419091992663167159457506039710171888556471200559022329055719784086470099778919582571179713691842261358026230210018158688079080615369574776901422413165124091411154351049891321229853275061773835954767325855399380048634473169187939462906594226741781352176003139356992307986964867989739548555089756015679597098497391175333579576840910319945427829521848248044130797426997467712649841490941332468340429015086497837633389578796098970585984366540017537285396879236860567860648697937727601308087126735683128576533126192927889861032223740760521842514719948773911755654530240819324335236356536859318302004137978236489304888436310675077106652599675831824608532105858762255025852694764418466369950111902416160448762855530171277397449012408233462101248636553712952101054727915721011604520879443986928663288185702839929503253626260659472019619808547119893402079463947471276762119671484215022244293621974609811192058435091463914129663910723637489492013819643078064647666056563663869311538205859175056974862542145968006037322477262089865722648870057545257966428962027176730739159302222364368728687785748095818199382126050457762601831479691496227228397778014054139862364047124187283552889393933936880097530900051483644741748609544707122192468798398943653777656109198984231446558302408800004835686250486052287009030638603400564865954995273301900415757965959529573358173653688594779218484715638255688434080903831345458664726118401600550639787526676124463144769058116352791799391059283262780699232500910347056361409500703481832775754710425372780344503989107010649134658185232269219332512991950500198783967017916086256464737416850505865680246469447079074667250626254177928040457732522855775550809848934638825646863640914979116699282235619727064283424449782449640491212934111967041986600492268140057650720363470838296440113494122581826817172600659922843496021491511391030816008266193438694634819107613169891672426702960470930348443041544224550301250600212254043351901636044147630367823553182670046691247382266144934566019077908417869249091328191427596104618477803766218869842874263889648158361398367368061441242224498446081912088111762602836673904757459477851359846686699929486213205262413098116843101771856545808131959895419956873288394370535886940596201110279590380750713537284623405462882355456599494726068654026504773473520286207326465159680845298413254269364702438386244923090760745220422478674748684131505401028239832108330671645808040634987018420069253084916463778446134294671779974880286022045983232578542610453610366535228199909959055831069878860044621973299526082230360776784338393341831843958312434601772246849695186122953700505514204721152305509334301910401712983472810851268479956103336349840150801810208034932583330313206946320817574796606236023946783958247351133619239650416466533168295030263437395716549135841300090397503933703226655413955931330762377972716871269896851809201889601514502067640791762983012868613650551061337841565186426885667358326578560139215192552328415109869365058938937931246413739031166426508278943405482611038924444858137240710675248730956378803619865626532132922195515054680473736882801110823203080044849922860884107894590657428014148580360973754181277455053321536157790576858595451971596087996316571672021444901039653227324431539750799436793646470177438431670776748975236710433534764113297978538333965583777883883089144945319382771602799394652275796491385774981340587557103306307042133648300727372809190325868479496239486360873274522728549920618210177903195617823014742756814373371049978995624607458630180399843102333493495786913774097093231599376064487814227543114805316002771219595071003558829531787591798309770929345001172727049134938859236717290474087642468457858285246947545007515229888190052687303083928117944722733420630036404376109112609611916177417307636771306755631332681404631030291752419576255950388582505466582019211783807965644966795494336252760976455979115203219407220517994582098452417085137941912537202004196241990443840683360796533858862375706775986505334919551308972622076498735504316152150591167874742046997270699295221017967568816000120784843570450591878068653245184854319523704288440417729757176286574003725198697172844727563435743358248912461486585809580825040737315842743429546269554528653164253412791428736044161624418944668160405962810353021563001065268278127500695544897254856680970746207562776071072693694215329363435789298378016214135924676970169364705831853300388700209680372313676556913931832373603964515833562602736078759218878572658998828411964117592740354955922453471422383055041679663724540008455043841335611551011981525462333631892863135906313432225447240107424229466299528777832225415153893605245622345617867981259456285474857778619643025544843229569881980078338835195900376748408859235309659948502007397841465142168490463299263510568379091166418973387597352850839850992968607440534115530365229353363896841729587302988170000635599342632578991574286693203815886223571092440007617748964101629968789909991574208254416585473492405489631802462330558220364332920212466963208003225371938680408881253399079705766923391913437205806177001655782531718303265410453949706769166576566609008486215811654762304792290072324726531378368442725130636087906097933331053933782437621080901744825674920724871052531890140908444134474327293564784326934427637911143050045993061816177313856007787648687302760086439141691551943767507171098970268436802852430584148689543963593287947229564862804459350532330044119161419681327881488705928687926529519257941286972138541902948850795264762787493574954119948270381531175924270464056581763986718768969308866963599738293975169573585932727304326809614874853242796122149958463669682406399921788366718598822737865151712537499151091984449774023915482806745407365342080905148764517227980027367465517235769649857939606875572342212662923013330578357915038984812611197167115436963312934878955254577530273904687737655369663578369166142967972249352058567628738960763617782825314868433233326344513711945411214846572351017039902947647783259637440136700454684523757197667487391169850066367426371834548642087787227372384058557353392931781575798932748241402748519969610644048090907597475116252880609978562630039952939451541451635462658531422522911292380501603434397456618752143881532212254229544225811942590456947418460846848778882457136337538668963010962063104800538876052494613789708476649469672262695331555331385795232365534868927035565772119171861416405117075033289958463460398156158091678025263275406380682014592789612711255433702951263547785474814512048105220148162978406386417789148013260787431807303753026310982234006421944094131741420126382809723083613005728080578082804651307348031692269400812424008735304700076623096362291044199113969586343995510897677517349165310517400630819100776062010579949913757569179540112371481800539116436937057422624578147234802284312644919090240834674254770913543516824399375232281985027364936716355485176253871004584770060481780645559588950263955122541725485521081221910902319199554281486832173195530353373983936474292736255548130731018350668699320180786075853543360383451223944611675371895285859991927213610861717381152547945053076505659242772636464417826154134395601403728506139293580932589376050334639055850241205946149739192672593678596381005909399068614985397806634196702598248145646576680106637664905437126931728161937068485397791758857571319673541357938697778409453896316339915017054183484426460570689312279178221633959464287406282222101902328812216558914578333700664315762826707673045756188036615574166494219983000655804378716857194026212259355906850808800259876292297688549151963025370855315173729175233268663694587324085023306236395727057195877129561128887451882671356867866276485832881547114034294921466089175127248569288501853312752814927408228458313039779983048862759641311451493124268638293481259207446986174755544267669680589010834246221315270481487710984933815919377028903162273908694339011923458813254311067339951209383830132858026254013954658031375863117201241992266247901593776407311327760062434079460392747806425654821459945575224057769735522221116064755292449967436496189705964391718049920914799580913667647439393628136346609027489932471468112079387740434054219339012773963199659480106341240702469879937249603145424338009229750564941794381678399728482839345770697931968539833484363463930906797439907376008459411573542548179399027138384363048095311460606049290346559584018522566480148109524341769456320217520865651812776180529190860731383538758891796852906550475895125449417986861147651204029052570990323432093556684129131127175732240289103889630159454078107106971595835906182837904754081316656604062578978346062849445075931271041262683515466872549773176547288465127673389096477128119655799256673485185098718474641868569934384321913628652387637922292040134368355847629291733843032513128981197328764053619622727494247124660234664729603681942589229660777995740528389504205530037728261694021137491139855944536031495632051361350989740655844220480791271765176614131628106554318386721394916269990348270781370976817236749342486136207078478824005853080352830343295371190446823018551429817128624936515955257281639281943159534005419363569950821323972386105298554128710443937732130280426302546179642226332433373652711915974002943486737240017789771987401397803441129004811437626743282924715902759280997087190192276527404672314213972731775056525439888940542326507069308637258714422399775153501961953909014002046879750556350039072504296115700932630914061391556539944813024946547614525827435595224662534882687008632774981126557984879995597186658158345244195831840521429944857724130158418770641440069477334170237005972675764954776062372734944693304362639616161913633304446634128809665492031347721196379580798305458344070348178618006741759129483743265134336739678643576774698205193964314838195169515567966913626720990401732300065955415873760763250056691254212127778788913337935533865314809565253447338828026526334599196635837154120740763123280658963117972805166782140451687930932208565335985690961724488543976135349888507461349701688537079284716200243013347936336737597332190635266464629671758478970132730123369015939284227868254862208749434235133319330111160257657679875901723510515285031097721718303399720968026044095398683998630624235935453037800822607824198720765080206330094393320097212589380265890564727568233861782863184740874823769137169068245099274710122488932734355691386151703627974166445862001955493843405638077089149361194158681266758653074293833307812515460417789942015815890701109030202857743683313623470744837368212423520439746136464573613260199977191843348124405727735256308655978684026502412699012250408951574826123960871964387367247567069728275627623586525699042187278080145632609422212108963130822608906700178748568901835027549554546157338353404486400246214102089631112837646748397635788170895244420294664529321177106655797959421487489516820437874450211773640868356118514510013770534779438978865470228294492954058072964246019947357321427289316985085793691080752523977541435049065132353579730703644390760960052026580234183676678794226637416333986756177565722469129007841625901573833959081731512528127076185341492507521440845251421809794210860390241460637746793513696330089686284302726379475233445695867202437419607804316294838593351250044612694126069674551589633207119821788663031969332960826273822608815877434343136890805996165326739704703497057129888782179766817647281626123102954795794720240414061999690805007897522515202206405173426504518126777885109300218787897743888485681460427614463370188268478117248756480937204821132566894989161699473256613339352598229465628592375958451237928342365629342886974100775009186797466219305992890431137555741627561941087927625043888526641910213711521911511557173039786384750371275058302497830627421357779082419834678693594439764478658105142202212349530219482907876917320138577886493672238453341809347844805883054938042431090261591318013991729156308257906353924725355255248115959622939311618358382644158625198726837819047371552103616898739941624495306437710978184191708282909946192874932896577337903682556436085585011429400721302567909205261888931042045730005286931241993667945172084892555259553475704112610383807130616303063421817721094346312368656206899757066084834806213004864591262943779442813711660863997689873282451576592909121433915371758605682222574046522455856239443138165105979234128190742570447077001464996657254346043594665090626875242647692245628705483423928835377639650125562923075387132140021085481470113109251625789859579435687517117244895818209804665610498082936763445511666313573615456785100184327732375202834935601977154277799102655818176240851880886591400988787674253225479085483725214893132291608178565673478639233472805743570505717966464617032395417187238415199470374129991919878993824471648562672271539362114777660567482919787523758891135633933614456698224670136668303053481547021581838056308604963982050403981387302276397821550965616796124139098494947379477144998433992891110888928895141479987358777055528283267533740554402066505344234800464576896419125650173615896802061600971890472115533493567595985460334318152222615852447249842197143647282225775284560726607353426784481122185744885318269096127991404252114343904209805410515027966704984366364144891795604864627280264153552509611318814119073752264206951543411713522484860883603979511591741321011388479947123449656953650103485301158205823810320709539916669304298939524037663992719079555221462845300995538652214855769517656159234234968163881909404509359268262905199681852883984688562271150895052927109289104435221062788259656473714248416260556244011280156152169611691350677742322512862174256868716194322697321184515866620559273130311706222560567814593365063737414127879262225221444688521261961809155090978767881719950758142582818542279720206227529135609251956017733508700135577918120131382311178768223973071795627784163603497271142156599614442562450552968371082136478543146447618607682525252266384371578314322852002490092026610031480358274240675765583549447185575091799181150634545915945060199504413918891789107890226969427787860450756340697111480876055747048172406519797280692487857893676705223855607933338135871329636371865056479280866456203532410695776771114163935450473540395853550281258503513956926353354288412315252283824288458374665234811557033151916965971270194787613465572926296116065830899991264606208672394300211193597759029514966816928161177144547644182402279074885864885079140040032579093789439209762583989089237491293611384242085974435546104845806311342413149340056754309315769347941171523006985069255942627161168401249153752474747952738004357292327247301092788051834409920352846929080496511005590939994437624686454514220791578583788482751772749701542210772968491535613307867641275775209336457901761162972943132503898357789943591458587139183680891247472093451379398889881966158810804841237212001147426594426072797488419917383530265516772765588873248872699634712308774275983558829616247499781332350389325233614512956114296956483256396374332958665469964419385667259041550978405720459902039999626674342903199995589557398411047207073975853498920916027437644889693402328649700872485399126491562200346506003663683959389870179569145533361922985741256435609150186104629144870474932168618937669175840181874839058256544105418406311549210292632667121974682291707462704785497000680749316532444588681042306880678571298949179393885099468045301213203015846075755733129945879424464738394524472521489761217804349596451943633003936553252306263644409697807435825868237295373967911910013259047755190660607542961891844240560623937567385489578453724465967665097094014263832999791724717475645151968303991662187888050070543455559338498762288572823000566513822808793582163389165455222620105210747379266699751625148016960731407066512194380485777135528552448161395269593675669569702811154203326342133670036839363877455274323171234940557453801055578163995980456663980669062754413272281011570888576455929012540547306066104197119124541008813174704977329023900340949809881843382168784262184837127887955825074605163489058288776168206874466370490534830272020209948915387702833468110920654475731618136903138487020876222390556548519049610716171072312676577001269128795370637906898133424889902099264699878871608119293535725596981002763693751288054741654326772899547681120876793685591235667871088119467670144632984844313615538102537781350174108726120317919624012928761281478404021408785657595117093241378910844914599741050102144608750722365948878121576165377675136958659386257451153230877020923226326619621323239955420802337363082370284087532007646017961349890566353310607592441694630871834623547741306097817082107233046165410485459700929113310343967458429938802096970826618079535020420467988694292952329695640624431844530090681918822703770089194036495137167638273796296200479890877118150130240104473185950330882245294067971958754327931453653295405296558500780984105624180861347386277276778116710856496872836624383255407204893522182723670259159432003090101618956961704438862031000794629251313887144360239253800964854320891284120455906110296343815596712824725085728766161188119044540919912983251489423455496986677539978367800317983938402981128728026922359707753236905922720206130530516494447379117949357021635147159489796027202170891917063955482845293245185739346243999052425950549646686831948976612089458694807509371361726242482954315594816691335200003385261601788390879824661412718196396769869721392851289808735851696093622840773771905676735928900520697258895538152176336200430696511875117367804271560194711513614774914163185021459755258018904133804417948727602282263484097096998225875069250906756649063577477928767644244106568660329820594984148523402938692175716566317849420090597239571350233828584673147013144246742910216291736720545130455016406762387217253253292130984635893024895422922503541704363765327184795890669842425194569535926800194318196397049717271134495562932410726051992246280109519748294248702919117184389528716103379172134571325934502416240904162806435447458703961261840820660059966922460379696609540693150976739974164411017518206657667275564492314013028840687328719322635702732595387184861658402528302248434859741184606421682202795821088445032641292583606938071841327993233168181261861765751896023006675158076232842733718113263944331714491189719607644451403407274064218411430241954180145038278124046883634413064846789023187438724927841935652457891676134546104922221093237967412308995330273015873825077509155673653095958349321707950084874681600808710358771456851961026428740323109640294703826622386836753035008964229965638143866175640596701825239610584582184954660594886012769156154249893443532184185182774514888486052600146960963473770568191868193976829117417656682497141698813091528323380588788737212354310120719421104009001821903945030339637088382093597289943843151746795190402840978309941212299803110649036462013384555296403554126176530916822904526528112237104831939922139838595280160407300228866768119738740049637663314209651941117183007074574690945267232516669638732909812364802434193417094706426076643823313512552405307777389163183073906611670661048607412217390879558528869834007823744562400730498305282792524597275607932345360367167707327274175126862134465532047871005278231135547338018044333320005483061884516548253253051415906784905200416539642511481936698604893319904667528726390352592867228323967562552988904111756061174829196365544341033326737351299206546210920660524705894556465708798204483100396754350442134494129948392071254870409853252929031008195289462070368643637362922912003329378001810415845025728256887096517456040320798842032412756661439838128500369394045362705726482191451210051581802378709522564221049622901703739000482969378600614978207431908577160817558130565073613733767517194750993418632013171429546248723657497333725826945699898366445059883618862986558874791353579154232038327069305114329504480883960975746660003101655183767712253164800842909668552093738275460855742176644109668316655956079937040775234568979477516098169572834715233351293335666815347691348159054133099575400133301958352374635109998104868960966291657310707254346358748082063290268925003867215176848203293106511601817805654340183735204929086894436878794313684379108576636813080686414791262245248675911140187394759216770359567947956633132808944246378898321499967919347579726609719331868864056317876597875091771085521233815862313134096509271811862853643270571725666547315238187462045062638537753689693780953791028084412786721148268051566176973578597878948577824741639153568351272252127237459842243436112746450476364842022198670606885549205801371135737770591376379645171756961447470198075992911103529132742756180309489430748377969058063999749564291148863009220899163226150601862212915797040791064745682819428347826995238073545390758403962631860090803108752950680154389173468967662739207878258980702900229715986551248092139614825097649793293324287316426387776093700837957589202364144868398027129977915527229402987335059886660777667369763033409931712085806085840343435215844341731518562368681060104086746300628006899859556474116630231759510253388371851156860992023977738344523559130610648784656061075518491135126271822959680151158113445010371672142219759467771718869076785023416962795767158252183424443478859552552962569025877141425997400206586234488842351307142302159038232564667967031075656297203057051278745352620096219409436651161273855332082286487221976453137345864662627996553644171840850761321602662846505349433571849586914907372792371217611078845675406479066129396259645883528198480232665509941673588987585263657674348689688228087381100374305102304289974758414282142638351344544803904563984664432092137236991401455698045477366497420153258278456040590119955331666200402991340574146919085657087572734100493331060728798098165025054645256531079017870952600393495552247395158640691636241768340176288731488484070921758296338699568284934854897062608845009494510101615404038353690891431067654093584864839821918825114443499441217008501716429003545313780003305981614746922726886680621454250903103649238831646067114546057078172482102239949934022977448984833237394907213852015187150160329705726202150553735409813372311099789739861698209682884228128851591622809707156822981651072885474478177127695699455236176857610255797041273695451360675240314685807380139391791103169211393590337027145358807570818304607525269261393461551293459931646362792790637796232638325614853387362748495150578584128709481241774765837763999414996900697365817727496761461897520656841345552299644944774576371456897486146202575958595954741219467130999991936213463586319024591683471049309176086472441852638530767150963253443751972858780439856556256610949397438707133050636116358857798905631131597546413951253956560832964522995230760206495904904875524942829743704844279816445324036348249445967259717355695958527784460256115026024594966863901580880224755038849819552361964425302461520842654561675107613258844243610734229120783796231271142414252528757172529331813104324383514079498365069980254120279071156723140920429366098897269540476779787055254682299807047799132873247492032365663046060449681286933372358978419921817629621623462897555550594997710565961298509420235876921028911087242418374792403788178278875899946205049510079256176085311015295977519897909503024011205377187513220688752837897818338070821149025236347961359526120501295054117044309314726142554569119023159992336270519666998165328380439669457323493462050873987090844268367502716305863976886089330886723191146928389714628127656305801355352885190280063319768161849629555339762579833648789452724390223374196159981844551433815691091513809717690094160657253831814748488276693014855185105242486045047596782524350101720356039795660421901124865187314153806201661986563942727801839332361183840422847131959488854891414368677183084817700258578365530619212145306717936177372507067393238966717842486665899364600576229819339710524017829932643431133909331204945969593745875917754605581106572026415022871824231768733659569282971904988048221758014489883995333972643280108548085819241680037745876766888764913052244368178352604441594759390638880551725154444520664472570055774417740595291377822005043581525380084189907379436820422302257843844277564754227267586946831665415690566167934277262893934711452279993344749358450957180540515512152825033979853381519606947726424659069005289439739525935845767106843178957081673458270386816213326975319494661388759206927978033057786358285008156801921116933109431012904913760876912101376602309442545114435343575709678851171502327622110480941616643474054048054388990717340792768798691349106076817695435399206402019979380927762201178601867463711081929740201943180063801657998967895663711965409435029786327174411725768287269799174316903989437931136639665433787084398752867553073895300981866814633453272880897584708959598327504432339638397171014170372319665823769115038113346014642463468569394199668581754447456473631356489427690944138715892264200350147872912539971288882789140435794915978541943402534195873423029656604976501983961586695849348157619979824425667024074284187014521335609800893275584190977688656420213816130997611835336957947096051671216640530783423772321130522370440949277570924298626917069925779612807392019803972656566729756232333425030907732902482794801400685695781312442661920295466315140474961249554458299971137317824818604862669894246648202064996420744647234579931661825165460764008682960829198354032114851381792639601966497324070327780730481625543495629773073852488075550789218109506095524405977831564855425843548069379453890605791680629548965035594045217611703399542712115823602350671074619046378572916556769137865483239238444164117022584580226670288642952987149694602367432741574551206402343787264186423116529325963261462640161714409421679910439481705953759756827116832781821304508457240713299683325194534094501933841539129107688166142403871893296811042297809161721982092916193526668150039713307114770980044070779280623578231967054730962041329166227538275188722588112768224169769112414405791679678145386105246483986734810919923647787369978887385178952967550208339454849611425111266574673998863330270675661314024656385064059352529575800745149406584602609007447032848844534164143986983913172386351767421861284882228244475137070607718438508892914511921763584455081119308533009234067540260883992291899591680107072011309202740327090710017294473767430646806359748453412261573085660927890716464230680507881211606983938073689314937489529701384884866417086471043096221692433163985718951469958450674517662546726627331818612872541719955998029228623553600221844041471541162467446662260283813195020056684013559850633774903396977716335056761047622674196872371789869240069254121043506258829151841491529856304983473791736878960686028198894734474561149538267479832092202766122402735704308116132221896667880907379410724102607426938704710000064584618513851031185112467684615897606601809267780164501774949836445482813464155678629867551789279976327750109833457226132078375491812503479263299004169534507083655618713873854143628850285190960601366662627133287466563172422396012276184058943562792324674949857340984221711279406491374396672184244086002406742641305876457266582132469181603261559848247699000185387577822137876031788715603547520288405466512263207827089965101826273613728687911824776754715496260877023347910131476808774164714202587496113871477721313651913360558673283472081972629191504457728210647984669228134860161735933476805269529024190444917523288096933722814866866320312400874261354666367916486643052835229046831088198796979553783723746035440203034290497617126153487205486131683493275161397540868557946561829294963748976750982562577520245142205712316962939572653734427507064083833461299678135635462631427381602067289309002615716310228004517391269289510584260021877866648004533846428095463972021496120323261681113870374836915690752668359656999554010418698356174188924217530096351565705091790875765612049872391941285697794452143392155320519602648804234342010178738061022908521096139292014328462379697025683118907862065260255015335940960986964668297862490346575783295609308774813067623944816673469364654075973111943845982807107360627138356011968987009388265555439872644276858338028037239815826739069735821092903309011531114155174176668479051060622303276415714445484982329606901807850765008369245583203916336732194257072031039080978424377294342203397375518000667611921771061174359291602206138981477978043528900018104508644090929472207503619685165047865512985523032415867748884970923078372831169007740291954389347902795104197612027106889746003091482097228853476158641220749918631351267266108917143960042964318130232283572297523192047706333268347488325183190476721922597692640209729849265560174377998129064262331424428996278896485347999637346918812812745219360148638289378513832616969087335245888154025665524308547181293860624615895842172919054181937122810893282117388753906341412945776885843682468874039924030126241227684885889938293941703843726721603688461390169549311522230932430052841035910561610993991817104179564318657026500982844999109373847095125986276994587343536332996253804838225720953112245969464298573126337046300404854700738986425193017464058812408760866071682804859879852764638244676202979372150394846812545107416272227560235808752296466882974629690104689269723265441274881399287118352016204951031047736553680621143507711470155998998062920628027047671194768106864497780423445467044050199672578021562948108202443578717282959017932505176658626361118860561864915742284718580831704051412782265059770653037346171762682525590332277028312610202388348275861798976834728643905621648360162356063884922773661123795325974883614230689342392534783077384214340967261665312999505987603176185583869764018511167584454713583973403104969633706493240131761606715770633247841223622438765407544357194701340193852216579599047640801498170927978666866268067782159854057646844444620187286592275408730125124217594630353999202133515577615402678124958616574652221268877207080749197453072919979531907973913911931350355243232416874248020519928285758414686254320041092034674315473716894250229088137974359854224484155102150916102854336737370829454815112878010186603752932443010513729625885852255804601224757061729509168163720602712729579927444065136089126931349138454193076950060199669468303205539523771061678833624397994433256678742678845740050663013867560700083643756808343203273785179545871425496737250014489078950740745862638518059036114372599376418754756054390997529603217283169620233483319076466176441564233919738689670822892425796096372778090062663341148369113163648865040257963868545772917553193488795938817706796112584580526908180178927084125890661930111126672554460765786487599194881265167198848152993420459958708298442440953867758869594305904058199837487006798721845443436655923474500668780002945764601862811625106095833011136643670751623019265590384923776058705369422735542143131270491916434871935579776828649870827116584415067168280700868089100253978041000817299643120607165890953221735964234135669270110249551257461731912185157572212567062468886002132267321474160111134354058128892181831899951439355229683739995149999904106200841285665572242407768907951375990281043242435969792353776655598880124543227766861098571569208180319006864070882860130493201265246794803691867641941132392146683000340457414174479052643592974601642698120354644909121427041550901872862331178652478726295886858466424365616784105895295398796117262279854874309405296114028770598543259295300335629375398225817646574655250056170167239697933837973462044902639781074030053973276332076094207070728084229483930991334071919855559708847220425668002619681165187297071201107627959113765133816451757429606992681872088907309692200963473596163587336431923766408816133529342568046651122907442861188382604612512314300884870640931312509088683643182570983983102076818807874442489999886906096070783165229306669330236706575457396526947679647558459808308952172467904362844029854320036602167325446957084186149355708937094452739421622823634361815554679301640766425267470203260975214421940212318751522922631858150377817457181024477551598191355390918555492321233992243228321421289478604205806120997768543892732618488117597306126060080779966531281227852324744251004916087219617937308585455491250938020598122223774665531954905613270719513421712058307845405085138359172141575531403545816156259489489312313942300967857607791627657395568621055142862307027185379890214127105129620913188203817383586824570849144088551514284258919221320574064210604903877265477407219273404209006067612564424075144239885220251450858822217273230005017329630450356254310700641312900368058917956675488954865704844695994477913738144818798527278727031722038337660879114123328120189497278442182024425267755733063650965623741441677550173634212411011372584112713181800624275879191685567334378777666187609257202739646395975836246159143507316827299366267937959175638704121520834798298909298574247049691548739338148947662310093202609436210746512632418056945681434655430018345215690081154897649009748735581176380456547533873583883914610052053087710579291242185563699739086804821725570215010482560674876568117385564297080810955562920973005746610608534763883694963849225612322453080227390527338824118266421949106755981570638216782120374379099711842139129127513719981120809091847044655110099899542612498185658685089113819376492419876576310474840730968583452392041486725679637055399948480259981359532248122161427186097353135899372349726969306904432968429940138382645841658899793695774953898708010375047280979010632533707334230924191685452236404121638191206333522049433485310197623479028230610624358261223785655310043560035205217138268769711323664136082834841883314402387777889288710988128592477212946347353712196748340260337297897709587431336012296896354432965763089704289848754087531942621892156726814084449285202433658298880932355958373220877951839550676258998373669415492343803716245021247561834218397928903830847517240958139744611776255832911062430918261304481944555340215786166913800950749014536359768403780879741600593768150021316681551202688171676112027874000140112172801346521521206760166400598372260422014475292299727700942420819700211864815483256997022894960619957064514566496323108531387776576202155900556237271122166529862213308616258869999461324968697056552715327969866614953472833755448642643589077541824815126012156781012718514355314610663395603173017534127801887831737182546158929682072179635671095698412365202172540792192348474933900417051405614512817389203600634992872949455142856655169543870079663237281215706602756188781156601110816519168781150464102528705255321334969146872313021555427855786451419023111972788954550290502815163491250889672624170040379259366316637567316103993118065201853104087422297148424121032815340832914198698065924353092015133220587461299620934452519773148907154498389202215628341945970747233155489394904914437943140696726656449238142671379643767058251989147451723930188099839680853533409364275056520889743821002333439066374188699637432410151584645118072659202075344177377879127395535447073711744076401417290264128684159278900939405782753672643091788539163874547695973024279611445073215988425485834466740915785188947085987299032277193873397200552487550679440995481651857042593705357384828572768665325235479013847540774307076820449341137155585242037170677178147456120127359868935501080627053785720136858098951823841619424062923391402942398871846395888285578944201985530617921309205419497329600269003267578878153369370480538156721321650938251249105240984631019093036525118507741584433227548032966920825968852762337169042618877577166848290396782300560089233656473945264224439891492891463625880825503849981356108955079209574888322652839220921873837658076929088819654854579679712019897959551228697544224452465757267703801803064940704238608734907017539078584154652549035169551530842176938238062294441856852656964815906309260480879012360535828276070118228545190979032309077621519017760727535766706520629382283529749816446202713812900227887879200739290936447022640810748506903554030692912482301860211578317835011441964057266902340901533477758664610849108820380602268892547082846966868803462718397473167577917861622874840010391480579894024225045525365831841027512642971867428857053305901069292099166572447366497217432690571876114414633574799007913087279386193525438053440028690562813876465574775708575869016645658189150148906559842239357905146098994641761987181991233883406645280928084699486270596872828757617532603370620933933427001792060706692563650722340544944338571357024961240852229854853892392584166869512257415724263243428618586570747353928410033687365687393008038941611143465366924348348934772750789838793337917636349511164906624898994403538348809090208324314786231014373133723936740984906188153182557217153579179951302488561228440721025855384195674968179771971505303506930007401115823008275318333765710296733415866315420945319192058429529689725753710273319146144777015714240049832486591199953203005635366276690058734498121802672306391293711798703044201901924110732456463756298182508816764348133355468985429713385233540649368705507762410799104393841671917166869427270294615620229957088752479158607239152301136422257216310536983221713164858465123186116023897660229858529415960001427218307945225224902892954438261619311499541853820807144066476294759113409504976342956136034461818061789824844976408803578889526239482783814323826428102207052758557579965443016843946920804049195662777341076748881879004567622231449967635768408160351765885270982410316605815608745697122890746833672494797742408573992159391484128251714117500480587594631856493701594751725423796143527194480291495588597471226388799678759241537245548092215210645301337162159364639446869134192884055891851578766615624573550038874575139898728398810418488472289070165371974443941859462994454214477131412088355040699362772122783189001665164325151532707652351255368961971725388420125162394520820762077633926418236623930644798826689161394391975535719785725807920677055187685182206200566426766429518379049892259831514316685774228641672571388468685441876365235683732176347870028421427624111000714001480393062260227243846240121198400362289154197881713483715491111829351735592507977368889502859024446569257996012101056647511922908035984842612995747392475150605314373254012602191505736040671596330394439201725242664157341634078009329416817011366469963516180715444838424771042425755515003150588110655944094486270839463943814286007124533170754519212954398123043054117090219349496594313662770606145859038166763566757074095310515020115023550357330654935448436387612156999283173995004592139381367181745420471141802618077919763900940676752775871222096743859145333322559186745031090109080681086449468097863231754625254834769527264383507567503193507484164347561585001939561307681539150075956760290547429685308167090393011242010984855358279834452263701902735677595185576487868406515977601376518582664246652456492861167796543635248728742070528018338414879407838501238179415980449459927307787548835684174890822874255501781527834880608685789986551500979454559982681686261824985561813372727815422656357641703174042146623883081393237285694137431229977923728797481575179113405081128338981620361196138141830969032585826501424861693676240035995592274747485651091229570729314202140027160230430284942467159775186467492240105386059233475128422790878881742117084883598375944775745342347283672332464804735087377668486700913985426208715445886119964815304917707497814833008605320454475649158009705830963792858272589395926651936715259417010381260595719805583287301719878854106530629338972351060651415893429871692346686214062840019559443542203533045596064709351649185576575256727214792903948732743940827324783099878464109436193358949900129011042914782669177627803365664560066914442785724120165364685641638321132715275468539444621571684603038225405374552597101562969894115995466172387466487149086773115645062803822688916590246901299364355314763441525487141711650381375257061210677440706545776328478237975676244452844761507332120502164112911739073777619542965492559341438743414694276001120419231464563226962571571117560600210529924591528891357416252518475527242392531369707036534254636017264080850589956318673316383134899989210626279215580253308592257888060073887453237291623370841973939499800983558703415047486333717902153832595324233782779542670149110887808532628182802493039799395404814390785772224441313089052106075893642273963352443325175973532440964028965288021668910118741293441090369551347015196625560124202786012240055273642036027596325371833575494081221586443629630572990837801335214450237543689739945504607123301954585599384487691454485584038328067756292288888337809029725375578985370344083677862512340619650599699325153174652273888124184639146990284518852146983504245970418238872134970338311449694032872278769040561001987658441182319037114166613719866566301923388187173273459897947027084256220311747484583596412329577220260490421298387166374690222784719350927310134042770409123355561713790518635933904871591313603114062732286871017986732608705023065236071218025904838281925459381685019035049785099415851740945236094942571454890468170594713354673440997224418813764892739529823055938068532146964764848427167182747772474333610730496661218964486329476210042566175669111555318717025775122360324526674591899070333229679908556229469934038924551194247658168360823024146406470205199662717259186984650473348008824841592057810952920606888260695666817154742850261145377213401103746698664556883873434357685047808781962747521914933984911064834988596524176820409794112369367585062435795856824925928602471634448633525504157938086234976195806894545573717318408464075334809405656467981211690326419024799953690135338669023067144290084141465348592037132996643651915197342329265363579358596780831314006685288166910475748531432044546784797280097159781514480404745457880315328380029821043200502425958724448670486068792155458410449819625665390494328727701160111681520568979925059256507387472144319698517607366518240445428947697125575112707437591070821725099603775454549391456124002395690405689198100399240223267152287992532556102690247195210659017456604785778784133000947209193729054056184510571664560377465251966242509494750901169972278157536327412979555503110323081933153776312348095695747118894120965203026274180130781990822719522290255807081439077075152288366095556193617939103825815369710644600251209242907528747584345016742681755404351214872228477653406068196250648756817345549214983036825362280737590772731978544215981986621897629670938990529973451295812324106341826697589931031817979967505998538998121898499574857070606580497676939008763170268559063796486030746729530331201294729417108339034267005226071118767995048306492409234590180766189529122382190642307309146071456284173949907173015432424805799791442230009984207601660277756094407629756291864704509810809864195224546374261633609445409858105070912785459008003738593000546424379998003547213970550631405619124026894135804281859678153623336624644273073338384942336954492537865252410868521643022450116707603209580699135839865373986705916928076459112394673929758671089647400795736144067313041576781673645972192536631049649769838567750241189778221286630513084200285325042430656490545235518329906297762146197441214630667240479739223261984284344893117699945850481436711241513227492405617818355765565271261699434184333130175325486374037698568985209683688191307278482733672442954583533572130113142037010126941580643482953791124379913570396623897697843823145071807614421387967051103196198655138734240052891038830349033207131242929985498993291218973162445399785096151472261850978892702232721978070284368919315432153956287342181239676791517656251337782975273680492968193725700313392326204057116291008693057460106596421420680198596262623476883445969769343195432130675048619909013148542194449239669163160763577409944368164347190734326351628751515573578574981325987608129435302299559651163636401844802651249116383175074808454533319237953462329259742912296977440383818321944395789561894955937842407576757442014558262576467249533138647390436945316373524033875521706178184350632068791865080007189293350854495137291718419846894327526757506618713393774990527632761350431579435376799532220344844407132194762543282899543632408164087578326988848774713481874462801726620371205867656911602581685624368570806593546791158459856688840208534684823317936411357660354811132303583720840193755669646882383044052064406318631090680639074209219594622483589355928610565719452194350377556622975255881800025130395849284517645648935255790140483172742977316464674823356697257705094315174902932034833314405647056095572611402604667291697174187617335719100805140998504796387753861961719756721638681127805182809090552122162756879319416778633957840710046824268320244770006039954424171354993444212001109157033492073000284387226059236360449032178417219599395315995143393616557992108906320979365111353319781572801137780673597584306741684859928711849883883989515835464224278429681971666696556676173472685521640627660215696590518426815730679465431536089752042540937863500250338243698077481244056040884738225549838749629233531799009662102454354743343989425813818470056162060319092761110581882991255015078432594909325029840038731381496990093302997250961620476134160617828397661855919225662603311691188821057529676408265039176215948779419293408930743613146866993691102796436883032943232455710260943668930431763460470985413929555204104144647676554527181597133500351090323734620774612430255161605037861785215999011029971048737070588726952881216330832602445058985846675464366909411702121538187421724378570125067585766866134741803447163313480375262352971522128275379782876093138294856516159058995486925955345202003621717531765629783563737901385459915553402209394773928984634048568344192970315637595758231131636723569296076426579257400739979782575679539016344955498765052789282626792179562934552119777301705249697901300975491419264203915448015277179042449518394756795088934170887259068183870083148451067748814794085894161245682035576197148626592590078508721312746492828042633323147226133063986232266916259611031277417247860452611573736772395715580291298257258629429874679203365824511257108565225166443047559768639826613722210008885495656778177152517604754984509576959320500353100377661541641492533543277812368892158166818470374976098822562883573164446924383805911611364244359382170955998606323649479663945153316404594437176092386864418578289888725114424649681360603662720861414457309049059238469112741880770189743521913096209052923653767989060261283760867909543649106421530396173502997594775089927329983567210934788770111050985479005491288170856926685415198061780217518255642928934327698304865183972765744213957496084364589435147610898830895069562063055279388893693596377051420521277788199537266020205814463487107314758265028618171386867317746052898527108903942897363474203948882063904960652476275530920017937647309852590607516987397555903153692862850409539535114735600733729527706136763691054505840938031917307576887840562765359200483509920911740801689891148400686998508713513018613293544186142956637522001308819980795345546817793128816212044129546187514976942879694031385270726721218582344283803580540481809459388735332566446270159694063518916089100238137340789637059515604832652195696944472487215200902846790191797173943706898158255074834902061265205115827550016205544520137565242858753201948824608016516532142338634031680055909848924645007170439091989949538524497793739602387143931120591956514358585726409424105323254333821678728567204583053439641391839340450194864685919636344417606930943258976883829739019779359877317771863800336059185000608664681389485931093588982502319284218940160504801852606464404697091726547080876405830195058945828572038524059169712301580766135969883479081080774757271959136996718401155416482594519666850564686482798335163307108116540216222804064683553228820638422152853001627990849228399119774362846161549506663282612510369083617214992211250309278619864849722643395304214277404859152246263724709551534243802904655425686395788330985272434155065357306061388483587626940536906068350980545849425254945455742939113085996401825248620857010794348650535672163783601654504412595045275919342803934459508622791373579531232545407564051200064136321472244795107422363355445866595870157623767704850541283545778419187625118392103709880758693698005681884106587291125646218853301037983219800164539868814789851834502391347142953475711141549865557273100568140069652418777309733464035021411650032264729625986697494024491493507208831324189605680170272985510474511141245902991869135395017386674680247364777647027654373497799027943391898458922551323775066818725873673603365422002966736346492477364192429466878192856096104571350066067233829907151947825392218789408725286230394776138120643139576871419421812950720490687787881588246964410424338037527878220808389996615881593425383373273945760701932977192259574869371500062470697287432684125352925668791837510497729621565329761151110597069979172478739483078920004515437156236157645166517329625805874596603571992273278114189753138188413305812964999304994319330875683235115504093327830622365081893861775049643077944149364430890861758617374650032332443999329019208149935654066341382583736434617077037620982649625201869393314502930228894661396392686001194558940905476498518692640596996114214565112168032035524218239976161611450743680835422148673148969997419163217761950283441071564449914152068472151650887618622033461085506626098006026998739597230283067606733568449593861715681458003869091560726476664369510964318668626747833784595584936484982654705890060118711185602898201808743242603851017565933531611595540130847550377007249972580654900498474753782670177106375985983321294749247776257462429593035746477362272899889344548596773964403962341860588042192139979474932700652247940508141167033743500779916108398858403330997392953416072271763103214396197833268550631784073458311734644995470571106281841093267555494516158337787321735897754888431354504122520616402917158444742160934130365431874130756812835620117607217453624866696385864462658110376852299762158569336180510412925695861204770322014488871783731074759362985899926838518542396494437017922469036132949837601421644534433991778582781813871790853866877353032846852469853572555637054689740547797444294831420747135443437994120267399232878445240576648551802499138122771854812854036674287969924524425777255213397298380084564963284831391721381064501623606408415840764569294975871009543519652021183752899276801176791536963609235883213125025389362710987540231000225898711332189045345250949409739077939473948157500418548428565789266893093365626763669306924641290324662821164463889874251174151389367593893383921998121526562362770395870669341387488760079634709174756880075492482843273600986591625334239955884407640682077969005441800177182132590340531242927435869416753903887373516130507495869556866190414566954467775293035726709345559497189731880172490722176410690200520726632086219138222052113593821611564143488698992568945008118930397954009341262846858273601326222102450511963034583728725254776737060182464535372211660420564556659275234778519628309979355081792104309065639454449842075334979281136260125693563260582699602618602581431012657920197448871918187617213770362998110012512084658463986454076581833060799784186716922900062087942226438310642400261802364323839981134906838379472370029354815319339731183625680920978633111535724355585539279616865338318940526537833371115870529930666401030399256715563306101379695281771420788755303706594225915373992507695630352242323315225819819559853445142352338718547648045857511082885034379014229178647562554077724996233743661240347606905089107565975045875167083312890301208219902058381450353549781302521060381926537282563544529056274901647664684809386626430459359626883438750396599096702028083873696921916131226095264999135562505959884184721437255267918841008227525422001984169715953148200368495068658376165783644167060403011867648586166460310963202232434365889109464778394665406988306669790165521565227107026439044438142543072076028280511692415391007127318683588873598869114148290735462757995781490539626301642104794102662122659415522787379958538338892175704183808539871350973904500705130285998377096856098662520969613394921810072934767447895979875171671537526303019163483398516040613758178939801015678727043818702225932342400350633360235307117278354766114895942068470469601676964495624295817084603942713264908170265368865787536466589317790392912842129634183690245295410935922871818042018768689293553447123591824605516198416712444548842375838810179341419605836589169225686303848819896900634105733882133147318497867357702088517923619752308778338293051627399207455493935712873998752053110584627485889009494200805765847405732636771873249361641490323650295136076804509823935552217343027877150174953621682941816195084305084638671026678372253786107473937836860314447511233365733920403160463838543599360415782936335490059307135299972479224893324726188165426671990803405912926631347796326422892960747025607325178829328092285489845418480425383364982183614200204761202626631460039269779506951619601229950736478557282239517638689136005927526913333800839564822473898875754560300269469436754284467361065384651435592593626823831024906090948873089352858096168925682739307953053822842655436953649786739559290015847778623884178520130271661361232423543966671836498336177291387839269326775617034382126595238564945918014602948451525327110966263267612344217526103721014667897907290165280402597298665308093758398638453579745793404865721313518602003794554401649460528377764505139602054526027211696257833684457911346763061738369264016227734109671950214996250780469999207526011786836502378841027775079255824058543968730342930737018837179721419753995958571402917381002792468266130178074697455267953143106367113492951040856093842072169659558523005042234810891949832558206542892355479383141332371843666620806760137131168369708042424513707308128226975081205070727971991439509151052680900402639106533160093071538489982592715779087316992727152841630534829181328398940567789390711107881967780425771880056554586954915976635950276885985858932305137059496846770651267991542094270854830925397352399641947100208518927744160456189325467396528651304950744790605259425953486388581686288486517730536710961677289278672118278576948266982602103893073350710927973987212297847528618419674942745206398024406523748633640426920880815012412313088958351360914044169442496577385160803775569453600559012438754641593790640753630865565391097116379751280757656376672292899400145765808222457838243393097679579732480005038489347771038163895422187418358052017387908144178132102470183467799684588637964873207806940110063167841620003412930470997084978591554331643507485388035714295417024233895555528400559261342237207917878023068985987786958687897454176393476220554522192107720709459186722676789451086198148542756090704636371626097704728587343869101698885031213757464767271459573931059000746408857324070406230065825451042765797476210573277870898852675267088276714224874350499713887926985226916657759640459690610089850547953488312343294838793019057798934032658466589547570213664132530640120364893677009754318640810162398534179827723954181894861898697081422584954847990327627472220696273394268366565065583342994282353730419489698078122095951534652085310732429499099225080337125945517614993784474449974057768187369654004051607760773957413778166342124774039744932609038067163819786694554258457181059075488002608325806052704533411137481489452435954080045143676917999465954665408532535583638974155414177570286024611107803412084397636202406625578008431236331065942330998944461844938142850781881242870385467960445458949471573578429885816397979129804612034687684610470977032788836478116352414459554624787780679756082061655773379801955580268026172275332579971974750127091097031240166705886675913855286916711450660389355930266061374050382436959716239203749566915261416088376782794698367772490895768715749589540281767068457481573061746949053274642273937509851949349692136553117023904369854186869850352285788676065421727261057135075501801403555023251181512557996720953663705233797927612816535882880824316132874955506926718064512489107176685410003666995829021717314261742919717022817641387045505772772151227694205850814854377225193108093351296861397520362923219554633027518532952870353889849409702102623527180051710983609473618296694877488953389734986485193021507870699527219214779676368808506300503176075165721358558595016729406200118039788699948964928401917782619069720981443763148443811401065336581062154448137627512787038932743940461510293875772913906162340265121770063873828738099419021301832001203980938536982478920357524830429559503024925932166410412775910106289351709072512533590641125146835343848157578272474675130283093897049811991093190790357102671036217349706874042076286095041915672900674040917086570766759567187048454534225065784955436013558338074914420370428344068267824971828308777253892011879052181683281485187368495825901552501510828536682108141845047406218936959495122853192206740637430685863459017174945585376975984635544794748033762835730316266164003023184359457085444900949095977847348839630688316229011897322238865492796749093784348181388377138656867837459158696910990481022320713967259685623756698372140122470776133328124203693149394937890032552753311644542412506019375476796665723417083239909298823630886157627312903031630182348000996045807606414045005810874684829542759475191093793208350851977206472478558583483441170921806422650214640560715513804071260423702775488400836321177568396818742213991450974249229183935687796278873457336269661164166562310938996472463544853747682659423128058874305020936609741038807851866160035667723777459562691809903878373907212950386124904576718893317056529280086229850106339598438789221296022006785456308345921690205527818289227786380460455964379470262969631734705088601911195654208614179955260432386208958357137801742132560830955934059200123694541698514122671579138586231373740239926056741991412821446339628738223202162659229806739520911655871009845495994412701833373622389913079300083433397015082769901287097278633945936171451162459134020070040543140490634152297414405991387976578919564502483693225540439888355516710279069901547147706908038529986688993949810807964951900251873637885762300432084346517289921463054485346406641084172234682586416405955081547722739241053769185035096241251776384416509851057715248689864283713666366075618444509814231703204560148160619976595161037858638770460987066126236000810135149009790434815603863234057727012372185285753456892546749991147281044414927260932157358774190741845643724932076583666723749627706853704674191704939085301268200247590914614680357017188289376256772364534147174919566311487438651596262926275602357316788670913037228835307548262153646528854512038332776871337566857473454533011951106045678128865143793763863695761128508233445729649330403455943711029943396941047735282473210141873891867698589908932557558299020393024384452830801184127372449725549161499513332583623597717245866461522127452511727225218611610807805325448316665334020303923390828947084704417128788660917096509195470448185044917388231336871055952546568720192854400205074864363618997416461849329729914762246145618319636846226920913238140658404425097244895685909752023282533796738880508867385241754692518653073841225577542295724741292082158316684022533094435127080351461891125352156117769992726597195734537852968818358772365331121955397706938440531914346591861521165373331022600421742581963261546840789558477409943717954706277005412610945354444920114190864239263105465368248324390210082603474823289505612686041977538263899053492646042394272608154996024657606966295702174724174044606934411228109897821277624539655549157416318072778715819225130785861912371089647681855856339536347121984462386546762919145052932227399344252710960500024364637482838483023093661265236151956086004287713462538080404313867027371756930942647492893085447096641785956396202305939560033579028883060049069199561991167722331899201547704654205544861872973446618275563592471335270328647544462232010617994616154765967874177517005012933044361798497113909658015994131301542424288412108138508333529807863073870411938759141250565771245793558177031536444811134171522913776950230747592132215180707818384937967135741869505684083593258174276672515819559635072548783377718281031526884592163683453250913328548484502577316906650131348546575403065755195330942508505984572460079617284763619278546356987021252085065159701684885792741586847560102124948297948458774015440903146242718443081089914841953158575349480922971098405264345023759248516633734038245584343209192784294154583092958821592357500584594951074366024968204730273890322626039930343820416049939694060961676942769507579130916480813354313722003568327572989761491612106123579079955201833786634930730998640212359635511807407104328318403825290856745440533995349773575661543587904515242089281062818400208503187563691385889131642681751294307080566775645713407418795280323572707345378062252446683303989361977157629668824012003610420791968371425130864413080238721304102841756395084727206378005279687046809509700674397513604778186236554191595122439482063840855736512628493241586038300573685484572906356555273439540128210768542387888503829298405506531216871573129196223539836067683023410862357811070403358350320044633828732814261808310990978508687777735098884572136752741852906302542575784202449283983665887321627065823112516991493767495221331851372165398170330582187440802576742263768501163802720631999810141506550694974094503777300575212730921295790769897615820910144945377206953470681027867904446254952968340325186933961299400044091183378475832759289374636283314691959768364921897655301115147588005095211388516344122757984116301176832031813999279003009699971432639827204931899592753650889040919947130312725444087267251757956945139650397042432495909725088515908733617521358755543139800877986782371868510067461576713679577766335684462350405290763722718334800035231619425960703162944899776261372220135645018926958021905011109322392042910546632639324018828861255273016171059673238587631760208166071313908761456089849839616268394348996733722821074611982060817766252864342397365243596389082663859040700896905510039326778234374876231527280256699734867084522613215944077937624459236532959436977182188295864888758489694961302075858875233524034689620460034361061318622958167992031886526751405804890117251523631052133686700155284652547130867118846291155912490988571134610662140828546907125356265518847931299024596592024416969810040036600083355393942139584206618142755341161252642067898461254650204636791695749593588116935410209391348014266499121231870345977057239811038342628024169015223015496423536005970897537165644816359480577362057079565219996450964792894755582083205399970997951727108449482318729102679368277551780186445222722240168574927773792866413795186009365052629048253955852783141434871773364190367854450244417491436395747905662941593816055498676665131328269457839251058166072871076469478843357552562506321708352035483177350231652530647089403036940008286783954076726774658991033560475126716508531096735249770663744811627906313525776368615468567457473754827617332255744179602235068719900971069311646979289653055493890955134782416458687127162238375573624493931543782896556943650110923390671555488813257738681981084381884255538953998603329408259683788276560970128336355398798943647236185521657571913872229465384979415382428879865582706827434936517717422037890226005253022026343270020145388161851487834654309572566493598316522018337108499685636693494812189633218302094275749459435104440555428627331863091125282313219252360125781829427621871150366206506610318503584991800601455562779059570450396778650703000330445291282337705731873618727365539179225359599695800305192137439966263626807787468330541974988077230986444321233116581257132787724093494733690196553306304983897124020286319552033715336157290705686631643726523112926582740139101092844910389491219178322241112054356665771279914673140498806442385725342201302115955351483241755321711546990089369170907370742298925766890907017411046502135851960517169037156637189668751440648973291174410374617347153082458062658065378992731190088297271169481793542881398151880315806207038598208400641841379225944681627442924843470586232306381585239167493187542655916975051909269787233442510342833349795631865692668938927273140006441361699126520635293097844095695994141151927851326795232543625586993224015776053505567804885109130793484805605081064273245150882621331454808242114065560790067350292537475699787303161740213517712642062883584385625509853312321105740479193197866500791919066052508749187667998788582651512118460086165304544482934254713098014460011415195848789578846831823670150858402349538366356324309044394817021468050859354886760730989570490292277802211885945473884587790746293520048348807994987698890645564247871925534514482551516965741182369997526072711883387736569893273855034684149379358195712301832451018558756186696759229300883657191919573966618482049415084085495636468275377100899876867629226338856453879438725006131431656530785599224789531368098322887307635304387337669163438138650693033430536876038398284061739934069393031373162961178492692112025833621258935062941924056260479287742104105585656046628757903581233424163263941427521705873112504394119221562805498269291330253694102583102816952311580673983338892310117601041497056886224703089287320719888019384470043300236169918660684013079282020271702172562517837975095654035891253587772674612445272241445731689129057234479820588160024865489341344820243539643937206706215782200815037655332251334775598189003186126631269413955343550521195208898964097882931017858224022172520404216636333594779496034747246298945377953872533222131628376160014923357718237127626677669916486372931855792212710703420944019533686726713204665307466420474768105621765505576392066676793896823406065044850317817449539711377805877226082034941881569022125337024952768743368990712004779170409991264411282502351927230014388952616923938676454178394193020834353936769771718954514194779931231829524089163768708753236851957656052415834452061562466711026629626450856530038107633047431528964350709348051391477562398290554607730197502153440987710885573471225465909522523737159371160020856411077938029385958711787048323339246551515165637260377148302412079078471693762999713609528704176901639711837628559311715183647165715110002673505064334494971342980780318197844603752052005386280878875480705395781855810506249855035059831073301390715218564254529226490697094997039150112102323424433639790251731254435637303533177453638035387542630201774059127034115315001769933515309568636702681687555153445775102063743206271146225367326414305165814592258519973964730471980541390372537017307476295065922893432784107704837241507116056927999459631558227331149370523502770235277733922628616430135650363646853471725648599700662489952184943359418956650609709487831453447732555198346207239224867466406797240453975861266323970294079097699804904028545066336922257866437800954682812927384485574313269437749501610424926903638809475487807058633828349495911047926569709356403133187572542387950831468763125565659575006464970940011741276516662838631640357907346228496796625686966056667204516901908851080108849183962728102783834492220609315104981987970259832899682624599776114909264271856109349514165014571129371122990673266735027469057855999770005552098759403840598011796407247721030992722324827343984692246779009486720967806300127411443380503561091209697822186161515637265391260418821372450561305856042575589190594380913418955217136729142737135601681909907959219117547185368837567117839840074037584629971318365351612940712846725008527519536350211395658683610894811999201027480163414011428344124373101806847235912679388344018334956286534199448268214309632906909317814687818800505217186575836109381135124543051145202185817114553970657239244453716584571823042017581338111706761207801418919262259655679157282201691737589460446548940874182905975348528955278747355467897881784977132515265718979179985321095369622448942943984670035555829418385366189743652323936105859380141442419600912589243363521229686543107571133766231713690602942892229916614200439889609179210820810120424705459519036484233999599107250778957934971978029177643826747421080930312940846189669592822297467384033040118948155085617969282623868249118338059468862288287510331908944066264824969214955360206411584517003331442265327751234746908190128890919883720052742315468699827940721254290910065502537391751852449693364897173059397562974184889600340965731592700811679814050555356809232242267432462084101953393123349215803247393552932488392699424173537588881206148494694525217716025648596718898773593334533197812473298216077941495123809110582469567524458010805452061810506399409584055420634340284552580054236802004358139004843158987481608176272754456121152389578621410800997675284461804033225229065862466937259384034455277602008314690718717141772679365675354912990916864015230019007123697147427557908344659914851594159070155012200425624832555344242545839927573442607735947915794738012506304964932362387792838238900084476845299133051634091851380381210502051593543452213541312868734276615931637964275816167330953339112867633055733897407512441666437072041208414698918173685853519207803297445057587599766517761882663000053437489308717424862791686281821069575214811174999535419160461524198541304702793898704574094403132728299777583849806869343081652277900673127346358010788019179992292252303558592553388619057417473130267855532070599647746331452928423163011937841747012976606398815571570920375867710400397293378517593548639247661341680572585475348147358384018938384236041274157781080249802932293939091414257249795230979413835176240580877358672588513650941790926865304925200564775708304513006876652534166808630240636050870490253860902138580521669462713553252203028352369640347033853557293609144773716729367746157810332615016009569656622987079313876744617692386551602901624482262584836324523469448187352284611533131757416714329083945350199629723777037039098128182743610235103944776218203454110212742439247190595652648006084798829126899590840633706775438440897804882768149394620737527010546717941781186192747371608671536915444633548521883328242890566765961108362603828442498645979913398355463953783457581116665442608248211304608788588702470188537405257600290653812526446027756441175247274583252191179866724895280458818395583267810425368348204617215064355150266631585542066383050250478965099813667938675993497567876134723533210708355241840283155975308949892752432969403535596721731269537795452101767064069497157334541691285971847658257332114396315563663058032883284551213017337282232818049427847890598967871701827929501636724010921484154570867290843033803551306988706119434940880786026946587908835847664579776866358747757775916252442947145507986324842697418243856296773988731703099224918501946129763570015124317831355916800966830178689062360613627092923264027698400338635801164945552938594772932721160378273842725647554408749566742575465098295606089119990362858834789659980162300770091162296312947385134862878091155994861932726370825955135944410504204956319522059409761890801832025422082088477963357300990811032151206733523730990840420958794149070921285646686609649081719903852439797339836651193111303972119845184134618153815672189199314549602341023375342187423738428532530212023483772018520579667559758294448240659711812622172206913840597088122510539092129107063719939533431164157544348389679986399044316867777849986890955369296225967832027617489967954842789137209669933067352807160004456153742091388397427010153951106886027412555808279018241112073433799249212561201304898715463298405627016661378071772829875496546911862288801284278044895433887435971497267507940572817357946799403693624393675590523842934157444154920864212715388465647447657939784272130388409871401859728276673420392420323736760179320088108246671937593817206692082216472452989031863757897884961134583665822735189282618349672358692785465469200397968138682867619349318230794364063679383031520626572747891709906177484934158543753572718863179561390541582620777112093604684413455512312153597318978269000053944975209222782687896242867144187021047805550754397819637677835481922547064559597521762909760562606981718420802647218506821140299082935771063074834294029915589455331144599852118506037802553203914068542742848246375274463322860920683434192621511318463084089341074856389947985832256883497366358917245490703192540175040413831588940947886455361324450359256773049053586801246148762812940508388564898304284478143461264448705041443759509419001725913405602879262811235708000727889283223685734996457869060284478164644326044362787573051413676959029498722666325833930426647714728138067745937645304059425526138969934745426850172000376080488543013242672466760887547127393532633877576798122785001424900356081890714424673751336535342395490456123941815736297758497554193962537451209607594954824978177182172282244739400102264929497599341431305212822803246592718463828115044993701757200012371244061874836525854720140439167508026370968675823310006108357129368653147247802132798288440947116596303696126212251447584881475837472390508772817707429461947181890996577681817203265836032266078927766579778959105687654097418467539650249317104438133313426371561015733674546787665887040460875856278551918323987186506553142997474092206826528145915406106854285350908038848059431768388518621180940716793629804466951065327129392291280481788893426053333842487683986169490423468429024685021385360688171893962773152079013811510648561510272156533075976149921913831200337264472538161914490664547741555787838827387969911007713151443264364969080935588698055015551929063131893292302668189699506277822348021988106619053192482141245450439618024888036547713225206566351471652276391887864619576053208875927706619519470480637549603633275945326277758737033888061458700915143187751026436977813418693479565341363837065727238870675694346957802097318962092700015350995048288538847744275427286177142868077910418790136208964660807813543544928120247625831474104167683206199897361493716162583884827419292024877796593398181855124025477670186890007177128073048038306174519694826165606594891018882084519083760988443139029696795339964686485374835372113604319778947884437636829674133202032025080929275672355259960890392025774392291996503892478840164049131613218703799719012634507978929729851528058793877323853122286956607752117065478269194298354862189148015996899839200908303343240585076571400092737630305143064681470172480726275463758208961668578158329254165657779030858322540393298824838694731598120601488717330355823214217395717964060559395410010130199194418955773688701026634354524549837731441385926904204177810256411590326443767404942821000532000387454970062912001347364161715888215370158445572656185555702343749791049989682986272335336506177236054830711340843250623694919698341450459144786928407274154077384094783139046160658289357976213588825829076334189607495262127575260589321110891464268043808556273451471265734575995100288615110742984392333207352249323663691022811763434954252510718625457456579306364376912512953533585346155712184108398069690960473996755615300289102508561344018112060335205021455190860918684018818819046269970814694589881081494799653456202198324985099740014577479280032100506579046717058454843501264749442330425125688340285748010482666012570155930602472574143761404450332922077776658600538677217380473942257291067348553548232318862526071875431678846511278497918728395549507463198107335991461798061177949103503555629497267909331272057523123329108327709282047457896255940581374190317655967092114280507504781722095626810645270668136987282966167005097960849686180648709283539618555226003694577005070558486521542961053636344982655402422431763232058856056051608276992417490621107867446285527295780516432763240968218635088770354842217592771907773275183695319619148305779865126392918467582382482476796585884740566941892989069569187331649152365427374697865980542470282788581730021215548128204428809687054223822107996185915029270452434225772364749709567781565438227899802872058160081015912796039088026054848896214526656382362526017134691218193455649583970838453570645035779134429888154762211196354107291888220836523506177576384833614087394033022593961511099336198659353605677149302744245263067426055973445014769661052383037969474888041478353451289800990182276575846512509386196812143044958207910047866529888752483531044827986853092826428208530113025063341528021198834317178891820980357395597322803423036750099970468845385533273966057744697697324673075777502037774718119658715468478459459954095087640422063621645964533543512968743226213231942815762636628973613462380457083910188159300093618279142472377908336889693757879768938580734382846259727188206374483982860595453836737083930766355431249725889451381349570641765733204761712170947175241605045982437323866591980223357554817037155280591803999953621859027130547018445579626574979909844828553130369336779669869329477261074902292828165958292164781109609448139366238579633345656608597560869927379963449725223680296192108689212566943910789856054336815382939015736162516572814996688872686443345097892273989729317910167530637779130480998236128865537240549888242430059846771235582766422020567776951321267169939046130480684380749191053099301833162521810256023852450648405546806945440823850042615808714983794639604106599876335868697386860174930843385870414434778655858226836111022355898650126145548474723263273633138009144076636265554640495007567451770727249174370996271538026542323109143713278133533602588968296509531415854874361479008063692744932589382921522521159585049854246561555448646685113723699194114728110980438240228058625360310586323586810270054825931430923054949776207945615553643557545299196639329567524394668943855295096656921192421811461501925133282115167184992507900335987223342894128460813606480826897821765303841617921200172846000340171495490346014306406220119905128490701111135584281526620110420587995512050214200344776567202255915366732472536609486049012872544501650681804025435601867178599243903525064211468268325776191102291754530262978898996617439615958137277836528588265102597788182035549088333589076901924905355560856558904899053910816341393330946789874522020844486160578737737060676384802573758731730967832222515423473934984033131427296027360554621362185856162101838663560232011588252713130939584762579993909650504861470730719167067776773726973420734218565549180127583471225228843084970983383808513654623328753725558803534114067755840826825190112112435703821301128398386982975335457242196941597534380431932383384031238487160619703423529952411673424983437359695991706916979664484897713205799817628245613799958395819312942621800448286666535936180427258590410230794084695311204499069860733709762500804688171492210420605601937449641866176400079550030931349109269593394040823829874701934981781141838704632443902422909227521447351722261930121819208106263864929537383458758417080424868054060490678849882198199010380256763677572487568497597637085231314954621762026157531367348159448469710286749308491049955528917235270013666037031486764480668288800955936518843402947486093071964404853404548261583552678470132449730902024521526754298532764000819701575717655057931173047185911229947239605531508300438514843342825941404231971757342884290831230698298716838560002862511332563141723311775601629763421774244898237462736007833753800563125739315851785852034795631776870058241644121879350864594942671546223348628583391674825997536095089911088652490189991338119352583211755110389358314810181899188497583081393157628498286666443980216652437098042073285938167131480520039978632151466288992778639624599840037723877484638884392610538070532440135901363098216764487383933526841364939926631196660542299899747872011435574800764371539286780433444449748665641095991338080918249381049471918914886457394595653877760593763526656802139253062777938579646375808635496882712729796260818605756521053047835592379365085676215769590332062524620077926731137986408880551061811609295737049793210932363138232978593784622278392384555303168210555871714347799311704518978776384590962489108999563786181912713056734821253668479492509720525956385935069181089843869565032814996773869154005889061157712910369397896012116716885256819585361370205242972693377972714426801958860151387123070013495690315231967618967270323961341572519044519880200696190272088098986878616498143428071677673119420065772052745117023907111065235566125709759052441867259372537375791370290545418348505620540722177509559540235766876434680958322074302217361330750369145415251094434653100495201066016736793560602911379547329763539811985480275631376493909874629917054514585522635819735170361297242212448281917576378199828346194830426957690220812903531184070442611297080177642246429289358431201992527091514698417825732727242533250855374453682798791276314378050546735719949339469655990482971663427029152764760098406908725729345351944019936264416881649781773647800611469119814266379968677419934341120181906104593847310895131391903436978518491856015836258509097525880913829910451255907923569323827896593430107399098652018693247417327545285942242852538551364390845305987817667008554138261041063192945967019640134960737346320234191957653138640379104130826650585448048582381312275146629159130288263228447966246358291050895787466793210652680129325308273958687617951012867209615789404209968225521907473209695148039933986675087573445175148505148808638954562951558554716030697519658408088649437341122207871362784954749005218842929358872995278932233539769355667863249031671645910790209226120533446640563417215964331155539831288180080784939387867212068846704900014752297239169918369175273177485489410501683834253669528115022744856828914365522715701919455145075140268124895797582967770860583412014546089968889164875037684025187192387232481147503998224694542294609834496702733493959933881335685797780886119357069959660551415455557341232040601853183616650870765234627091993766607882297750376631772449486934612782370084151259667368112398526420953077506689279779129451578459473643277050523288728625977701708494755220640275250294011271864005484256916632861260358539167702029471824625642152378506054651651489521615418814842967183146527214758780234478889276991751539831217415944009438102881500163521463713281968484466962210441901315188575704640512574406705770074814596271057879254527601947193293016999560027531910937103013780278524228769924137735202141144280021400452733865877107716144838379700679402859506895911573292420319689281376925585937984792597167115598975132526925991719779950882264114212982839586297820618971993950235213483428835769870175008933683418505806171214043769669098958757337617500547726695200514939375170914373895152998131209687211625967929091663410168732998190380647322311441932599564940211669887376732896192991941953308833400864854928176378133035461584885408443435124618893843190722167414302513868597554008047661176060818401763542892698005704236460792159661756015279596914178156176072435393048179309820041073238180171768241028384024026760365825490231023495002227821249948729382000621712701066329981505351616017583034118259484861204709853792028475715947065359414596483256159924540636565220139077051381432475722039595976437087026785549863370720751254244468455154357488356714912414400125752947970261091850724866718884381605560302214491399938347288892233515442404933427478262177305202172922784426041159082909790384231742531922147527184278128691322094804596661349439098623939868781068909844436685303427485765306109394403501001073425008370874201305441914213281501130632483219540773229059172027705936688193068703706296457820402228722741680260396385966464204055196221208167337252297341261484560429905859717070423141076358988705742559059875571729951451834762883912216206951319848662120274108979611440939490137742628378915214019828855636986571635357612418611695282626203237528416317011100845391554647119850867576209374320879920972130657582153364402025972293076038175652078963946554006676396949681114934755621983330328662795548064873141803711706565949495278075661114814125199458022257413976667853769188134970313467887994420364286444248685265687802668959795435483911808883743031105008797182671346764640928722308861375201368230131490496840907149318423256237365561216987870078194546245457001339213374183204336221890480984390266710315144243464302597785120272793927087345325137396225386243364209306188953369696027398655508828154164134873306810053578812820601112135289965288847090376797457537607583119041257234223633376627900093183855137678376975706092900277563104647664021227600701646826407606684649710920500493523661046069913015679861679554309795238428395353207899046313357811609556525570187425285566266572782261997695676528073917661699978900297918495457209212212460256621616398593261744620638590900409236503291190873041804592806505254799737528684810347627317742722189387805221546358033581184856721867754288514409495373959909007532485312791548229141748009895088844648006127492824136028554505314338324544414615273958173478989338917527718455893030578947092246126022298218802427700462486636997536611161313592317946230674111493659055419827815465799708848022188823172817390279319954305012130363504506879533060095303134294430483467764551062005780699332301211375772570836892566836101837631731041713389280671776869825655164795601022940238617931380803662580657982161098398130105957043418621452175018289972707376663230889602151542172157189543016662966494270641348028713912666623093464772507538541706506682713351378901670426967182342724692336416841985357358472905771707907512445710206108764836257419465342968899930390835553835743170658276537465487417035193283653963729147052985812667363582319719759685494132729019353318100401982427683925697301075484789355834152502450978558083879829655958229577029543044271369219883914292003900645177586193255611945539389271985219111579732579042328703490068340230973597759664513744110668483414146809823575990492159745267615539876194178976517917022327604379282516473533194894640447604710021290921615922946189626991082917176201403965825035224661937917567355211035192462962847083346162170310955263440525846194659327992687948368160212085844256505816400210233611610413501170728368140224005665520281535679904497775516759383935781093811804671050906697834962440534081684071503941935482104778866833099795964652102067066434004920486186501622743237086015807375235933925717219999056551461951636160979959303522009466614678679092546005956536867231119462709427185968662169069368644881520688295174517298646311561934654755781971896754863951683050037427954240389554415084636566590914296424252574296253532059742074022266181082641556116832286004256728405769697779996036099467153021575523353002115566698872721177263521807865158282820588956777719634333583155531407445627347170765818183902364344003179154176201968146660432119988178880295374023334361207168148988778836313239520045987759277925039215398545413930260239194025333860926120696633230316710370127114075351062598839217478394300641733442369499135094184653782121045534563318197357391175791519921818049907857007153856744067220570625266712985839850887042137383867463392050280471175300308643436418091316722074342037311069324705668156469998807861925223977325011563628310356851553845701753343014812846863411237242978633899147289637283320756190978453919141414783756300290235294621462901158686944505097613861069568636261969167702832998372151833183862478501198544151556369708621134830502375193135438154197834706836418097663965138287363769687677626036660800891960255575748456715645478470352486867901807085650700380436400977309452503749312738583462083479047163032568909806738763387508777659625956278530436632865040877588025124529704195712854112800951960536663368153362706270761448481950405430402633634870391277265385088913439514768272154465081789307159844150713123196059295499472048531677526112530853651326202214194285824614488544974809474927561099456266979340107617753541209212927455346429853997720691675884234686769071518052491653557135315856836760092154419694734954714237301865668298592834279460999122423168257805132621160807294427923497310216990529962598406667551503840310910191381793747755759324806096999097088444417380266346950377046607819162937038147128403497151579319683781067195368301979317484574120921116529377358028471623430598606869558213320131580066103772907474479340017100423644338419410254732213575756627502314865871887755325302666722433210706277826524759581110858052406550875754049921587124367174324139362373506236238846200447907627004479523692104658365845693120475112763473856340233228956129375685264263265932054331924688238209577752493618612097132645716220829125995711911839705619194640958196327235114509477341356198216157477346557576406578139779709074278626758757848364081293106741824273196841084370017024626759696628156852139973530496040558898696446880403334898771420349148790326244234933061357030630788735729596998459715607107645035650087761769266532400787003857128505424145541719080976397508374217485478159382267044097006529879548055325357938055393964980323542864484496805325515830343292746560812677681627983703419795521520165838342447874551043747694691092982665996554589518066497618039089359467637214707340789616381969567273760328841965447195269550200472519507277385267345066078451682163658698933062205111495552844081846729081744464441001823685282177197009498754664259032111178202237423393087562623835930326930768094843373221697996888027778954730950669135304574396339099196986193151460614659726159377153319410977010272812030781187876540013206433804526034927945657573752779575166836897740723009515951631879654405379268756060745138934583305895643270213792880062982633423616615552518013005662464915328024733490469998685619001254586990367506920806047703441844528705645314718720836253777939691926306258764019714448684022098549481569181509782396705318950688037337553228114406231948738339434121035863447466502537869859432953909163795388244981660105115587912416101620347574512788612404358220587225147916179597906863784721513517082131358095748538560594952348521857065329376446295319328374504070290634921822426629116131002705686734875027779878120078496325655714991774594901546472804114804350027975774042151556860557016680914466118583779825535081073301412311124101323657432960901516054087088892778450724602805470127204820452771623015532410831701875106413501488638794333739218357591729855859266968022740369806952043300101073250921707458718493380205946363429915610374487337973229529836380153382018291340156915122777141747312950693140306185743079767845970177466736244203731667284256090199222373664262412980674066518657269457467399055996697911757150919690675694986742067424844125646716697971553156629662763793065873377530071097203270472294820521175774063698794334308446490795150840701932832700683628310327278971442640404444908427650613104838255826196880785692110007575160702575644306065698147306060985785454910623969881458811442635923252428858520011817031783979615207963756089639350493352550373053213198022225971884640754074617066650656106581159066854910039928884593033660073582570087221668913506068405998115593482839812108462185434754934377712583579521194179114774237634785812368327127506233217609374017584241338545926560355515505329232341156471521608672977291733272270192961953868846723947405120541871449446958363797666021180515744813136995048749166341649323539852255663257322074862275022795018683209052707708808144138482142827387295967616196105643688430281773376066151466677897348807864893592641466058267026601299480899308936442275006292676162426513730342487407858482215943099602561052456793427798642382956470959341384970248161110586909531292932040525019052851105230409174361554277103191111115967841535966026862134417151991719591934593438501729449794874214269864774661813256988350945285421233146050324072981194907643042094451373759829199336852296710121691927198991307488457961192056942156630381515302649691001907479128099851619086590948324570341488518904392815945728208279659410265628647306246165577575982799702833834058609787644454709984647952841348232315763313102050183446745799877421334159108020979035299907698429116567095448157395941552820425406378550157250077604683844698756514525026080323233056035266702413109304001458991399926440688258570651014862314746374776334171987900284503016538773133979924094742034459481049908006104795447435465364675978210034986495001950811677592624629425831479227737672005534767508979463400391921700700414788320112065039704297348003608780862087455788899817501010595485093710602196475615819995382874821392100467473307806352041469600086192646608663604061912179010862593343381996753104700088900778155552262597778968751350077571302287780435565631361611205961908035800738922879711636610348666617806951205102000382134667738706311619617119496606131622172338965517953510023752666629564812422835730516864311142830597090325793267158141998293394516243019932117203119018351628242146335675716984567399199004809372450279310390105237162774389320092312552469905602391934580143780541108937364434653939657019685292269338891389473749187004944625329463361774724024424864832288067607767238094650269879645469037010532110724071344709884663511466040940595663213081310021236606727151649880040929558787959698399394246832469848336865439422223359286604527566616970640996905877691964372891991218593339551544352363449167975772220691046190757064050268556056607528370636252720717017717206440074180137759468233877948089619284313229747585386558411934732735890418796554272524651181666126535595215771507152786051210996967195260713396090566575323083007135780685445882187868084259280526372604970202879387795410900855402568967828956832148936225610162736015484398504096804498508658018154806068464204895781878985790942414135038425960145624657349166994793170023108073224095785901803104456865997042820197162793785821632041072424379590105274970564453897152023261506280472463222200130592676571897528502982497267538456401047515374446545494435725343771792112201364842195520126050268409710615184579800503763517523205722277928068551617269442498104891645237931467212307169748008432794240235086884987221983906902075604165907840042693034973583646581527542710035069108134678579164432523381148387646668814990404430377727147828199784756814344229846627511474300280365309033503323374328425011095258247324932789625797267163673426415664631118015686720852121014627458147115428156323007433412526849640265755666188562039254865277273571646333936863200799300268457703361103473675480546052068699524590079696458521643749815636072555050426944524238487814596604452920954441240955259093625196225051478805452020472690682341749311359475998792821297031146649626008957457095468983060424552712201061720760140775075009574088986208973156387134417123182441785183138158069542740673082666450418648530140795109081989604196608425934370790942475108937371132161590064042425734536772947252332191889231997143864817885198503553739892166395356717006793390638589968991764424778201107970068461711276491489488516204907899714578292534277266835966932324352625453980273657006687364033864620999736016617043456582638008627942603569680354813856787276373886178815483492261299621081408292520716196766137165364914922620196872049651837716668603215330396118408668586638025819508613189246423263139615026029490471601478372277814745746705970856663936760428268530515082155745875158991624763162480609736978919979696130013201284460605737991141785502220778994654265475615650183336123845517262026574557600647294418022892187042776285049660163436610573911712441219230883683737373452155889561034506460821094718041144392302126149588693342587479463135418614652139569044539969645689246818416165605754736588580672082405814207860461233505133303117193173374846403853976522431944551456296184655597350240260694111638675601152212235956120043076868155880525454503109119866098715728392456249442424099174467753847621367992273849108070886656277124459608912622747301864500525358689734370595972323466699986822390944679500242672548837742197478533519572400524799379700585223742623657518533586326166681035849845716747552201066450471761268045185017520143364360661118663392794933734517264484666360113696369671577869870804929459862804047681537692549607010764095109111105605892526343383708345290702179629074174109179070443290474835718737346174250533395374817566482338871837661918604184898925096976157121427282145307337827432983634905128337631827487422125977232733004789268611672835472781883715864587401443427775567142460046886187143806397265117513918918894761103762838892161066679292227543956327166205504348159814076108377324187457304711841466283830973721921077813429564873974233852095268484059937099879553915620064841147710606484028087540087011966229764893495602737101288899854866156677980131049677095232756178399178614178561394472938989061098631975691019459512669746943819052891495283045655656991225302675571692196850074531211323188889472015953740046646545762379921796639752153665611423068685642931375832938284741913522961061987637024126006352619731915128515928427211047962549429231209418569424563770407541325359569530543252476928280372067610762755044306311652602497411411351482910168910492879146747157131988160878709324577490182692547236234113964849152562082367450888457790816472422531327643974861372274956794573332891923112436185983572917361194960731138961202101910527129877546946686517102762352706699935777476961224195214805972350706574664763072013344466979888130022922910248126008935854705194651525404912848775771190124921052029623693993012682449115776530404392365511957509431020401496764248355203899168024263157120977404091876494082881969372607404681221948455189535194674742135186248831469239151185705697261692631352000235996134150977537873897752993881196121272931226315113917468537606908724570754261435301918014453090562237305849584941783406874687061104547623459370191201813747749067682812237356134581399329960949611773748823181275868007283122446046239639273244314820097983380740337951461476696290553920762365279910605505215926394138715111295901310787794584877752402576138930216614285650365905094715385429989744329148273601351449113713295813456471393873694441530228498362473414188384693618578411304673956673927511926669447823927160455929398391521836164024801604902792170217896699412074851718000529633900886278001696581880291213129303444901217583692649577604635957518505785295873650724695390745254081721121913728892959441881000451089055639762643905045973649890472290516093215014517006129881924190999609981239634029634166362497392850630833094829428263120325892482269691868107419172829152332699900643308878376559331097869621562065268486564263073997188817215559653233595894646513093441779621809693114282278862788299183019453589750165693331826238826227720573563244324841679331978570004129544471273874849957752169726202844430383322440808707356073450661236480461265735668949747817828615998588781170147422818324998907107224947869069253116845327174305244978715019991806162202148619929926285807119355658534728965878632662875022625337383864831134443416418258314940634827126522624644958502349264350106155606709994294544210764629584903827775171495356916109892445748729114037987219825477360315431002949777673680148087924305085353889760496179919538178843593126195624109118869087441345632165898122276217614382814341033229878465299245394898259801300220604766017301465944868600568815354450862692457003679635120776214727573539608790196740959148334928240161027510386690296332123460434100153372238069831960044951623084886784904716203256217971628293344095461538826779279352714405063745487847477762753824623409014838829662976767783293906096154773643822399114465427725362118222038751880722951671349551570249454918052967654579837199461146365915853612488832136247365161181308041220685325321451929329947976987160926730758908553124262742666192996441569749401701781652820359621849726724332220424836151545272619797923500420200149057540669851170169748582078181469026710922019550867752839184950275162562475226951286429385506920594951972247196522305568321905945318401557314498836773613382437407540074486085991945433329501470964944987365386250937925658155311712316055714366145910409670930636817055006324276150925365615734150831560274104961533863297936913558957228424038128051006422757980497469055323645513154435461033622993580447570327940941740624111488065247560271051495822901009143150482919561742807959022323378045967953817708728390015244202560472781518287188121146308026532174008613278143444917073887868141966872696352076494746001761336861403895898090911438467611262102781684778785350801570955669770074988111940078251248364775769135067542215078005595390510360745536847670384526116137556761081655933820187704807766105236375796853345897519625559528589463329939434377836194103941120063073301794407193987113541679438838666572198099972445813277547558897918918800440302425376140926127601060264211530617053961989961335433323517779613870408878873237169047183041338597735468811330064548244951301250127783193183911385972658751753337448420635344284753066505347617612494854660548557098596434389876183958424402944097310778315278026428603066238443640493783600672021909706158864689125718214678721626997359420394913695574229596605742310111137919331586346872988647793201358982553250860078153345892262643218350238938008449045952089550674847635166393635109336113553322022957477512906854006665244425084800176586969319706035268633929324316185223856564744738147599417746713505438148504050823102535490732009200250375950078599287353608582053030738749026506806093300207050815217665098048516148753118986984982501460819161821079759407643480725681117181410565954457746750782858732156860585914469496776098132037778987124024661599795921550241699120721894285189952291743173229870402206162546258761848903754275258111313020993917520175186577196981811653438746161186640617491904832965889642881976362606351635183387801131301566620141637295254329907336544808535170737616898446162469340304296615326005403005807472536406934330127253742910914729891015796578274555960703484862020022498528683050021922887633550557532160943884553779450169442053506465697223331647199693830667455177911950174777277613282093408102156159803814674464396191886983974280067752321164968682064926395341772275503857092598750204666484529449101716071829310890537789431212598997568389040995582255658940565245423918988462951515790856078915400936042032053918916583336343357744627873923333895783066057029362884879178326152365319647750428963895067884837640769670814165817723393263978901027489112418210159774712179852548772203374929641822413084350713247226212819010805370499089388862923570516152443888931693476804169805424252152457076793422952590618941488296501396074206248392757101163999224657120548766439729176653474853729411167377919214719500664249597524192738863049317129228234023859102768943192347665831651023856046868422992084638096172561193561930780955255336013158828337613279369016189204973617683867364707894283053803360072860403535147728766390039570608563131846306890769346976455886798801462981626269500129512836243303673152336861774462396702562512594413832297038312649695635655240012331450684814029108203624232900177032985438503211598331382385260090972639853286469292995881064992857538654934052363160213412711505340985136310753764099220884664393454115184567317136893518241167593603357057525321476769352427542316819173976590068336705458333555865621295588427101785963601523455749526379686232822213595472269598982945010127817995668050249924080002854932045590322271075561551179456119401911258328752885462524312268561134215915508340082831122552232236882418215082599643774594140556967678329983743272269984165917726542234466571778401359245702480995119912906034580761516992945803065038848992764096905116996491598498025351719230530339774373910382621723850544014363561584806421870837627746120076340549533708790397146480585005193595165366016144478198395839953921188757809717983204598885904602359645152333851494202728983340061544696087858960644205678764168512374132135376369231915715231509193863438184238773155281245558087087670059632502954604801815490443641363290084107677285531270238346814092862465711948610210672150314057980509251670651190654830400029130223310067462911104074468621832515274704616580572614254485812911884828981989263500404366248430473290442153074078656455386253695009959515802058517549976530013735965623321780693562699562513246912929892199415568906375178355903089676248934498551211682294484675725958617993847275564830824493108977998342153418244321938354799688924264161532086605040275509754158104349968255036479663226490170774325050105243447175489033561026204995088721244865314003038128280234367289621474781098408983575563201518274936766266137391386804344351576192535255886712244509950820849840503250895607299160333798664818330285448175172694563049007282799651437611829167127953113013592075150016700944931913784593701127437207358332461816239131996333056850899140094470971401131177020994926265853419568384435354252877971938273717251625570374609602655462873810927578822996364996798716281148683773117170158854219143161754961664848845947595388836337422558162524053639253645461830111831409723750165408311641542553232343915939597153730272053198450358937181883403129635213379119030199634468514269394947769146496897401200887647456737828454527115734735791026135625869449286105712170947967874718903630130729247943653883425124803591539886471863222565609879179527916233458331309743327565113616928060676705869865006414330706451372810173138442107286775236928441178325007734888355688288139898263227555788068855930461756736162512066986843697818322717160102704175225987783351401307155752613945264096189825354992838319157918802965877246549815172121184163055174924218419126302211081144031700826028224923908026690923160740983359744423832243281396028393214963686628909829063708102678606045537851202515709481551247164432508236683235647208030419656000071072020727613938430292920838053359758393509082206309194919593658624703871296591070078149772416729082862343203047842556300543994687254611720484988905458285770415256247437698683007172351056568649239061952136298523006028675408327252785298897493075703440063004808250467551949562159786307835425281588505838394621373390306961035890203147073412516804734755949204898110380714549532377568320413508505027432409459596257699768474162989218815719269003395334691681956171942506713225593406688094489254022385315080816921934251889903499220125136891348012928972009874319802462192327435694141000389092556594358005283848550343597076302633572962447758991856982239018528298801881843066690675101090583104972613015563038418319025293491071433807356247932309450280249208481432606252493874691416668899556489042400952404744046777047193255405317506967190798090854628395334864829329033939137743637321637912116506484342119176847091707744196797078986257037345922793369620239172781701498982526049049497422603673110932957945245397213498848532959044214786966478220172206414690162944420236853544135026735047231194046607133380939173129000883022775688963327676732421384774839587903627224698022939429501173810973311396653013156194652271596360727753665821130125681378022600097486446917992203268336212342294470260933104537245821251884903671400770839600805954229275082027714376969231221816349598136130007088116638020157849066461549949956387810646002738372004404984261957983294432816191016068783993834786609496464850314508694042635634366350386461075334793990359657001394513294444665541773943942755145218094146760245371520545126511928640103015657305949911199360414093351356298745016429790781913505228824056558749871079564129441337240884908755954561220946689109896440708480959685417409747178870492809694853784905785552747553109780632562082702356933540939361853099318095368526560062271876610116831775207487031611884114842036380066101159420889279573054807111109613802317480413285752977758783444834551851043581885095825842617076110111173882706597376157416943271118909374095351193137279941929942854811254765025794096690383200680239156149161855898322761320474238760936106753486108899180939124936081662383839716936884069431513279804938939081847734709837954419733502898740253911604202171473952640241178543819219557037364575026439943041343972481576236567194728713091208264441794343350165277856128290140099941351921570062498306474120296472986033766369910821136671153282280539838183056767020756826117366808840720837416276819533272643924980272470260303182752676969360388497696643039875690888831432133877579267021655907006512046521764394070023184633465548827451852408538349112827497466690709087652792095007261956660387426729609428290569426769492834483821971373123717998063615855163183465270252818047561011012266006285820713579236737225700496148100005167147873036330690553444653682814953324892041345834476133421182505204317146498798733841875396026158866349077187613848160225497815607431510504266315604715376310399010946392651911676705567897331405441160788763633472933891260121429920706318043661334887708986550785065170019428837818804412101594678825914211613415558482073540290802996625332544036908500030726004940985369233096495317131004637808358455910387812070343036519258045936616940654121663632708108424741329955045390533495109028025512587236598680030277878379970579160319086207968005573888983582359128973026200867667833602961313792551608073727954103899349871235986586542148501367694643829771561690103973300844513566959480462458165819918630491157544435953527224458501171502052950616883683455825040036604622706012727107367377632930769049622336279198302419853172780535011389125349101543680195156314478476972597512454504889005706252357312838306088553008815277288421599010153239544120879907865834461469488071879878161012350956792955649680890372059256881249756740430879038984378508224566012920770296414939657206706477177307074699574687813695596135754575067050794600611268420476109543862343736278407299435471314597805631845044215609870478770837734643592762781899750650883538223783217011581258930342171463833781985040067665296196463718532171491703331381638689571054878295434674028004006934586672844774270843137823178986600324571979807847397466677170236623550062013303069992585892626013119506700551098891825952753259089176939724042526347660651830253976114809521770389437589704143328742041293247560136895912965373903205063365290239739424011480659692313376911854277425414402701268052755341449937723761405496225272284778076940474674723885357442646235556918079342427615242859168148008078991535300864001636885827014372339057943984587030246194597177351209527636504808552501902736731713309553496784301032847653006086539630727596092177866148057786798810042133912707667606108549598997859949800982164881254430262260499789343752689561965749350453132649171418593525914113780209183309002391423610546822671637843205925071578276887758629042967076174396190217421832972483799138772421774226715996114912032494316096690160868476471743195965518295946005642050874754842724686062561179300015314597058881425940359269851461007489581152272103993354387294956120763366144204590675421375410780176050545502466116433055696961436035566123506616882052262776186499772585272378614541278095407947950640888384685745967144912696446320336380672330529821657006213989020049851833994819926721010245200926018610503983684381922344846180816122346607246682537714638962887400583699594618655626792990373307355655963405856917618950542647943373588257794659634739026301413919699168913428471801451139532416910555816044607754227390900279300515485834917088680660336446463817589752949794660622744972139217298015041754559970924207440705100700852392069847780118572138927474736497405897572746346591979827351144913560423625766693627801115756656085728991544215837708912722424528959559952059740275173993290361601638546480228585745327401459740178637088810137483624981207429303805976648807068862755109321317591763240478703944970941040177178082422829353279136442478917288803365633715150002140535374944788112407565710453269439806733850218126280295789166099202934394419854110867067335653605101850456868257732851986829691165110403927425788896931066658258282037815830827016923457050712810353858124866053070657444092914523265444219026626891124133268786858539854968648907737848325099872940987557100016231675091919285589293775298641313843040549574013587568750444412467984837175245351349846267921322915257234295456383893660136199911265069855145587940470320839529953732272700782917928599538021042965860228960412870404259281700136536224815473317142509464955053310641990271634242109685387706880576400224369218929851345468308888670800102115756194759544937459601942283550435380912339321435469029981693441274971126209878742535394327651417971756641889317981088368116915515008985260634482396008605885723496401560702304040094284687596338041492332543565476862248904529378425192304168317659444629052007423412337230885885335602238214205880726433152422083190725557080736240511553849485001769860651853499297800129007820000358163115306646760979324534068924148772027965343828764445198991474655270535424448173287233786977837188784366994300530430407645091277813578872765131730659198496769929349405599791683624597750349432199976078296142148145974381149752178279727443132682973971858589196286258341216730500158457399541095951834640153622707913470868940192605880304017308900217247570786298128150772655703039267026482482112998292585858942054079664366867924967356827929882060733025577698793947933378491362318838712421170656945054690272475761003984966481389757426071755565975847690120678361471879090227804842676331571398675657511964334651977512235555740406879670712148897859840675371923157739442551340936594790798867204947885320253098348753764634073143633263948618081065771298491102585286595420298393254478916440917524745664753954402477006145427386757453759288476715605657353829931332711106004362734548431204272807249464819513803804607251027922601052515158400787855594079718321462934420750776758730939964535606633824984875607833076032974115790948520083282088553318759177545884520428388957943834316981785199756042485573821275349841881463819566738172469582627905317857947497502439097443243332973265787347018864789682536389905374491355394435562014251500808056636638241530529636582973846172399089616130577268679669150560751275519305157615444681220452321292801030593898877045932336530707476734133634525273757055210505287401124395117792188899371949690760596177510638551117274253976671228585833884767568843155182234786856612505178608179822391658339582607800823694360041045972682461444809682769205132521841028131705121027520810309457164901274732113271453720127633393097072545045157580694346902114272865682884540002031775490413487130190352827002383239227415787517336894960988766521280004038197728708298535112424224159987193530594468322526312330320342567435997547041691829971159558971956810630877389456252635535516153788086219917075993367566592875228253876670911698367614176869086505924818218387106591338283795197861636891054265983905216858513729616531446392092922507225627265298013135105234975285387112185414119617921210561583967313107464305108201422716353343731975927762176399761783182140417384587731521138261463771792432121208130104638256981365061126693895965834817709061272368989002100200296730596970932751287407898523184206114177297026398944536755309868167790963938077792827474386039786661960220265429725487259907613460123142424037997118513979883070393404389428332026235094876471915741053160956681341927640511011859849368239372247803296291647043048953190427111522109477781198395694531133287468556410883896759103344742863576580577694030054456518021879456429759649843356006333333316118473369359500816707930486710772182998149703433668312777569651470324968704017873152506270934970494773480012324477726422946758664906090335007485909312833329145697909951012793125090895738022095835370829737482021515737839655969067724769197650883616297432688119666073329867383114508423890319938955143583108385639008835202373831732838434486772319904349056271244144779429176533629464458385433363493265510125874735542811961842884991374861751419232700294404165565208940086255488975219366565149985654917773731200804088267962424613202565173100722046466824120174838032611867358109743893896003107691755187176880498828478679309155098703627886732696679696824364410812951233307666405396154819683945407995012253301436342544832851958621175930543126257092574271715882450077657014802130015053077672476097430137564491276269042449481567267762349324817314567268383885121856630346958101762582893004501853835327089961174125598807630122876325453686653463388791892380895118770512899360378457241846925565839142220321681845490600999214734809982114881412313128735828023892154382176633907124083034127726165295021171332981728236847119671926851824394185795521599420958691887608636335808018047591960851309023787522600759082044858368864694511083622024888335596790156089939063501919033365916424509942089494922153361894840481621650250748901642446238466086080654258591605423143526524527474675110403888889348870780054412178805957786369040055637642697291657973238027021773494498632302737584678851050465069637940534467990385111581695679651060667472229515855906578991856813260831648267294139680834095276723039130315282498950194600946320740397822667847412107744044873813364083636755510323497831057253690501777688823311532235479746508386739488053287297254530377504727025717222833575495223703943302672598610775934390431242146558260425945006256874786572789660669674206615527683611579273650450762817107293352974339148438065569831853479770747598466557192747095871427729248401112772456603929332146155076951618802340949311113029630501190285816804456204545614081828061081222673143373728719765799287544470595375549280069244056522414607199135826680522607804267007993653967967474932265331166336635672013376718521945747077915714793301239673385492166064083050548576326974482229024352911757796445626812152961410077142931038332830445798968290656775053601316818196795063175923327353543232455709007028063157522397931227178133882713395110191429706398891169132365944448195985576263132901590212415006974703829212298923763114637039962936671231935801323097852943400931521625903551808087675925243426068833339409749439440259699170979719984856779812046367532501152830858907035210003328113706125159168806389740640015877715594281398302735595821729547910174951186323749411130588132956793665569176295958299232974276281884123517701379725074207870305133389997448808546924627779261570138221240743759564048327397750291714629740444275042907363643671181671179150685419876774572616249118317728949071638881995457421763136330199095285391068134584957821698836648033829136703568879883418231240627807545076532440308707716388720080084611884985011581069565312628345656030278734297644601787919763178654404639661335886814482476560393280966163766962762566527762062654601006424083119080318278752228037001214368777666425949820385782673834831703669568857996287192027677420729634064855520197753957411114665274618375380152453990181156697162723792799814688360140133412292903606831764874155320128986291539346125224374860849078101441812904375349930462335495458506416699601095527940844641145528236498772405498648949902038502210059481733527583515729745354066694994051860266288852039381794946948723084225699250330085043168539739809467766683097242246702192809262455481827843751479668628579414029159465224592355253404415814767060405039214397820696739941083847312079376875227540020750444305865023078767525177455487125364835108742419450213854916403172098006773313005842279982052493452217650534119763472711421128641260908037216185731627021368398812874694762714123683277996467973829195874821664929460552115767064400659504355967635690045636881586903880153348442659306270285693249867067309683825150764303098437216049949251070055173057684882982223627286697909628153046578163811222323256585610195655210478724661548460160352825699987413260184056895134149631062390188324060023973194427781038361290286503175446034991398722671436243938776824651685379526350725164324892609748495243533042426961087794395789761425743724773928268958141496786665195409362355077461325465713290792995982547597677580048302095704965357120777582217261429470879138213234813425402114595344726290487300430132546698380576488338776761230865295285704447825586093683031887650871085808410315111686483581466532529311225664165297263223543091330507871281689388976560894250522778188135614956118849095496552277300060131898047843082844371894786892284507474869830674892743149725043381583035065733788730607834291935715971713980229368077096058584186641287977124710576647739114521176578716351321510888903458839294046693351275503546144840351607055452109723610541605732362425353483893040631577857833033224765728353646377330811494976889982142329315498144001743952072330376813501721928880128313394311755325153960840420881672000208795120873494441664972270721790557277166857626018980769311119076092834319510811032839737827809496213172747144713689618894988612903317090500176185902983069502812268994465219274575247255257490591594937673565862808062527254446020554950341752639587979917935235620650777503417298486019588858438875751755210438885430278524123767909118511842364915731728362908807152939988400901491803822871020232018522705256980189113221407194216423862367607331229634222254212145602091238059469331400565486372201104503412171897717451727108257845563927087974699936510350166154775529542181051951450675841808088142687883328398804779630153447265099533465052219219219023481777398169628506358776027142839016549342392453302767175373855290014852188277161946244446161869323255078593548389016821342191117033012982296730114039790192984595815193681412565258620769280060158801306093388012925184364348414351862576127121878254873085083568750677487545831579319559324837513051702952790085432846806984644534192198546762586078852951823163709782266705046399653502631399373037802952051110958972054457208175100918037534022509433280049705352645904817684658184459445263523984552510001889411604602807546083496387355019781528647477792058920064626966264384928258594131753856907200632254828170410484318916449285673585103774608560295047762960222203365977934127389244753216924228864696136452606191295654500853534115324003300578300262156227449991623313331596508905690458148758544078777953895265720888437524336794811880346600034671376191481386361875521891039998551666172597774014146416860301443677807507045725771623816325912545650487626811215434155701401334016550514940743697638022318872399673166144661567249634520354193318528582687655018384940351640691275436939706562591895881643500691427785300571906718750859173831440202954877502252871841977032866407912282747852641548645810658619974819460479803748779702190069194802435375726784240744183672607967675927729413405034820549415110689300299529174661181452309249527553399756141744001719797491101069838626522646946638534697649876870416144746989114991384609315030750655656808730867664528729774935170740202787135653382304190936145098388907653514326452657257179627536240251116078083915828628194036249031416187648250969935778517887715160358145903441944271496194133047901497463816407549431228204878707992834332923379494451386958187207585342669225355878937591800141603836185321820597220811574679482686965205797492776408356027808158003815508313185603527866085724380267787175524184129844606631367678431103602152103578914349983851885101283586588228542007922624049150454751812456470463200981466188520766974139052454518346808341555413527976723220998513306043172114664144910125007952794224733881411140923968607833920439806447001519278953490676686002246691048184897566533348843239563075684301150985555159981266749588165975156990960134183198055094182574396751278523040977697174363474315284774729127554514652510149747569934272423491603170390036691689177676438643819975453964957581595376188179628482940026541460549818078076744584708255564512633479944303169675797337777787702491895044338869869680701010072078892634052234951114063489536644047117979067392910085809979501612727321225879598789081331467824244780082942095014901221152966918077753213980412195045061151743744338003845643517119953914544757111335413803829017165390801817883045226541658774358507094367691626644520707431597044459089750118711036408513324719170760216348583953220416732899704135706424332770705204442973030127310438394453080589139155169635608350064901557306112576041007432098828789079626519146073349923043044270835550743079840131081639793164191099046478912571857213907966298513159720276632656309468441524450544658523386198872844203910601406727637310490510166155663344104305556212018972819188517187404937860835477276173298316825295338000920536587618281319324286542435421399829260221294655105607686430016303484437406478087239685828531549260341022421093764637538836569565073145404468318045525958833231588454392122257968592459622933815286982711811227283722532293728505920639741481213419589272161115650464745895088210856753354654816805110902274867668866184385929185344616774677555629925480170492140800335501231018089502991424606138957857731141601817915513181330766877826318947419763807859354767352838301761704719487156658401208193297215459398545619524733345187188724887641996860124181585941149489360687581643582292915627240129091045258043369479419292644337114282528540902240380388906413016737318340567019757473104609983664950135878530808735898947030445583272934287115680709631870216145939325585140796380726604319086194376031154536177467953472222711020460170304554651394416231133266392610632975329131083694056578118296631136253869255850977390862201809864516278798219800243220124768268970843684417777204934774876444349430797472692668042246136429915929989659825167915343501972217072820528318922476623213758520176903013162187175947032186214668777509790367323383065172491159721399273238897355406422995319345890986280599213756384697787866615227528569254997416619798523565396607484771390676419677192938364795584148203482014260073085416689383831043519534276540879718449327168033151503799907830870648169807009959866236801924482635330306638806936041499502420445204526123904910597680393604236476589147393467455059046408464230609529760741525848640495582578257860226854030253781826866882055229784798333156291837186285815788936914937729761854502095635002187288542259881862451044053923687331864635361554861744245773510822549726531313473999230860052725737145294672128700258441212754122015070084586047367264402442924950459611180475052137658311026709302026877871488087462002476536471305403698363771188669390406259367209374674467367095822753841424962345591503064043387990814217229133483601036255103067377040944749426063964230784783811614726696960936320949397590576263597747529907318144249674744610347109083692461802192874643438672088452063051742798290702883562226595412739122282736065770365179882762021619378137887882095992394999221881739007603302065946293878683985405711852567115419776608808744444148999657559501159626010289791058180511510012184862360153733795979097155926230396252864979846461983844327234514545938145436880621165908929971769915561826558421836942335278002814194926697657858592591863513963229329442092757237340515624558491623082028250183964620669067990835946451103753199974995902864499173401722920776705452662669095394343982087373388651521265493483830276277153474820956227052937561560630669863188535867661880860867535814230960706233656587802840259809497875458845852393990840661169379056161039366062497714610237792732822191092852458764700911921564466118917669013878662379427609154550148377661254529677490824883008247249854159599665897646349348929137106121053451564775558530133260882590778856502806494730616305839575403696893444285060904746988662912015587612422655037649311316912794014069134048661796647855401065393998823972492474685244331933934421982910883156421875669115261936122168906572717582343663811376461464803367383342091995967808625045145501274153233198945035156852880423720269619295556362533446821566561208756637281494006301137371259129646197400254838768121390233932522376116857667056813912430151920137700992219592484342524657047216465013265155256044354734719383515508184882901200155103748365611776920572260779466988607860995832100313420478532862974959822162647620256084684459770797045221069904399419774476986671585526029210575707842698947537852830198676527945594864405276267045464662075337567953453266748263639865036370294231932896716750454015020287695704626193800384089452025416041525823783339439519354587362578824838882974550981556525632240672092411934395201512048570562824164260214711390329243274647100095443537801633807112109028751276584195172616339099536897200749616231745271374235854955481954043214661985569646493812416271948597184663107245808209813517359799250423167039671574704318315350865552256193266786067597851766148948259290971280195912574536885122357308414279039231907957707930806078539896320161473214416352557309184815510507716377365493485238473314719731505414977370777827621465009767560700555524330311604506986628706835847280487935050204231408730435525505217501618104786236240559050005833488326887571995182077688416333737334488606858703673410470898446881483007882305833715297841308217784968286222196635816829559317608983871831276235689281087006870039683969091796522749709641982215710328851724936124309263556976474591978243471290746403842371800016913085089692127142407363075445961764701566860700891640431240057308712061445547446572264183422294707127594278221133917464652873577770115994020529323223767715664605706019695864241184281193219610245283337741658354985701974744153660923358279246974929558873620173984820802768699001821877858757368104530409605551174471686425810995121159790975099671358969715595560825674447482045632931351834329114455938266377642831376718289074886971251351630650091302985075353038023202762475556837109867410282699707081020875119794281238427935635120484848587459194260339592046724183037047029639645271570162625802951681422070087318496128032829094198926235653929219451528864058327803873988978219510318427545334385308280916714019558901222692233824290898377374927554767048301683824932079593957304351063458421188244346934262780916398223050889549151691500232915366646843866749394974291851786129605126876675851973064217876725773465313318582833884768021796681775717020214613527046205406900033412353248793561069346580431630251898104766629141399710944081034721602977715863061881217374302497865883013486292305176381719133811778224931148956996977843716778933600708650083171330191707181015163451743107422529482975678946984105464925772549267819986310113520543309426638527956845287427196718037129393309179454921623543322277263756497194133301256328765968849458205148469137566884961121464821430074978385894170727465929502523363048760105872616958981603216911947947926773993534330522352157924175391368320998969743497488432137297776701427276918628959436322321537900985453625386439740759802070308110781413633869262499891358569509650115562766919116605119239609545401244657757993381898340333081772913579245604806453536544778436010282326053060842703665016750509611830317169188082393775334863185536293030197083499131515986373756825300494909619811742819404619490980668537097881849578506015268530762574845868978338545858136404593260101346529068191461287978129070682479643530350776430235727609764773555088355238430972993407112882927164641625007807462598007323620829474117811547743325817524374835114714352290155644147988212550514823012735191835256747587928604322018034162096559178968382437398173592951803190709344396977626394695846988194011682956171540234086776669981646639560539874792211403692575635337585370494844806185976528568082464288719606355908238326322588542149966242540683991241829873474757798619200259765731311878008952274734421671057425624312852072210189470041331888501273677784769533054265519905383752463008229824650035796528053329531513613284998636369251847622275738970441509763216923490027355382672804286175560092784545064916553707747149913907708094278189783171471264902905277433935366494041024985039448167636177449680222227283750060689460158769733882586002780231091672750098917393110812013458044896887070161078485367524375908531197760211393389518586830228777284816458302422257643729472375924708977840177425677577099801897347502446190976238473466824284559375477878553217896381666785923948314610421366084748279970919649549858235237395444764555818677451788460909534586448698844436325571671109134780505391998419341103338802334005328251726162455038048890887147673129930958346458828674920801967205023049239759246454592990435421762940227949541817423776059208501668411460026028408440592537382926071558368026558436146140431653017124981003502449112164266888829607110427384144654510081364386825522309742740078246386359133342154120143909773559330257970956060072135856705001823321211284891198065096298575049673148997874507291201075628968356342879248560852317844531947327725160769524069027824231578200557460533855392183193962665520100936570382752569615373227881020949522002735295520538334926176958733043146879935704380335211995328891955572487447383531865513644509800009280458205069201820476593791286695113494657861185936797024441222408419760799354485732127263467824623136716328532413588375804169890296030725722652802816069356665021960172104059792151452831373696834106580765743086602402830357368595229323685788363409358423792330498337386544042505055627964587041904041121446558332285740770070847257338052942043215113063877305190623664525872687174055627778813413113773430552642656162422816369176496066937191385473188176933371503462077160799755755795185360059765576959547735282428031501016952406612755608776152410186306605618383358077765707852448854355820196718322333998398844130261000486130978377842542075200434973432863769990465886857490522210037492020798829330126200365681381348090691884417603744749184802008281374349344648840976075048842766213167112547669994930433534147684621695768000391026454552673590547447722969047885789062722573172654825295250988221589317328988431030429948753502202464041794037538299195453917789210513355986900651787739591091649383187738803303323894456612824722374023271877426949362463904053325756840813190282473322723689369939741453595662390990556842121675439457336575182473516804385780348440434203842951841196123579023622380740099372245291596048802463765327595610340162312095598293499122661906101757149198670462839541993069365952226776208355027766355504158891124751820104607465956712153919416569584643086290865607931470314572709690515044405487712274779756179950565914511090237563391126912567182888914543361079363044799257520939410686240075678694554480545804293995273260314426668095495625921413210507460445244899533460400233114791813188465096858388434396911517563510649886707708842094219989593849763934976725655902912216276825150702823732379243660896073108931915480446930188271313343582719907160287869532448635216632536346598390763095872217425935058004442839767615260485164056150798585096095826175191324474788642178445256784979697645339003602391196483581302782556555181223821276279764881931879763049816622675082845526001281670335508548077732083584225362899499426055426535836457937767764766389436411606665463827257081826163990943893125248002272396499397636748307476471549446547632138294777035012523179207583631684325297836338656881188299729710152182290295212490724946758764072352845994820657653220465234724773875249614699199231417500436405286136209075262554075527668439990367969521444075293957216913580443841331677899305216951477935800271530513438335358743404868371655387465768616953535029381435623080818413033837113526851852051872389402357636888404418250156297720534500781316653650652125182721954447773268256877501524739203363686939582144901557104288942753532940912176231060107465782299652711486700278016077802553607959040709001092448107643209392439013067731508429245677069453801977227831566085283513691762610333242414322902056264697717196734322196197890193667473541982979564968188762481917272454401887400007029305603115156409485533361243588190975306373452278167605115966785747071248115602721222737819598150205206409953354091894159884531759838882090679299905039859011313106186708735558700045166578229606391238059588368217937538011228233356703206188207870900296120988025398767145173813005599620238075034056540670185710978670430747829682635817994599168829274794536508821263166798542797864799137072689810774795949100395657269087842728528285852380723037788869289670004206171119287704528498277363710615762825586619589679596132051123914397949458267481621964596649003692195667352478868798332600485236532052981127281986085372509790367348993656212174379485451486056028280515321218382117333619580878274271972467001002316242170408385213415044206020640107938685413601339913214813419871906557289003418100587781744780292243076974060329188563030651191508647559494741660505418832547305674398180177061731875990548699236856816988534191625726940255976612438326313750947009552625501536836987621423865529456626188793939082832706294136956124993175917639457094608133896505809995848388396564136584301560468102183049093470783868365695420401136021895932561172310457186343402725827094423371847245003572319012016289159435601465169902497427968265367187921793344434109362487729360156410928347479842651814565839124185175669569924893914118288914503326695419661198228821993242869498880705186736677852104946846400063997787283902246543823574152166287102476960612262845997020224817915205339922344590731771311175392937309894142484647346133835739473255011794860378906211453326394135329022505432660133875576484676805501111591490999990421023388608732659373088400969587187523318054914340710146470566809512497270716422546214939602919868460776926309183727237517401997117855197025364780208249786349574652610966546914755722870368846888652097319403026544966304969281407267686730960841160700175767616934903900896203757451661208972597300308568076687453492436532313526858214611698915947839418762873182463672720280146766526628227308925332624368063287248552167939718150434712933414930000885171131011121183657388218230723974607061865931834714924282800042954326097001447916452340420805175094788731230778550596147022323842173868374854936906835602723188318714126117925011312030969339917730348051438122388421014500947585899807223828544900071549873261211693727271928533308545246580100037109754933396703772567263703662639612952452780530038287523938193663910503657151870344290592072838697436069519846705633398589252723540697212648068345184217649561487880877592036465727800328668812172477743123202676963710215775237375798906032881736030138199251300505163736104639014956918848680299411495229666965777258896169243292614789365394223759548494336228143635962573700067043837422457624750122884618420497874966239405392840226364252412034190984522303560715290029416843427571220991644564263502597675592088859356657151122046517058386430974211165338856338078738758432089216685350631437036032555530985557067181940449063709929641883384308640034523019638105335761979504920570572199384823560352323934206864301585677372361842524649340690908773273707277994177538800699816010973664738903565098486644501458803690380321098702011323019195891655869111364604538466174501646465877516656612062084995137891781057953545773930120863716851134525803431388008967555229923544590901314611593169861763695728532974312148836349286333708764609712113051009506768781729701555951216404121223621146763865693601114196682192128181652790084606096137300503818255872088626484067635632466485671247351232951666543986441684120445933166424467682858150847570307063378602604605498464767677547322184869640847645795756191624951991267083616636579017900379978629945632837119357216421689006708712326618540719847317402203789071746115018972968881366437583661996303639528127432738142507511693817829437315763798208763346353364942211892644729947466811344008529494058251442127409394470697773215473332923915311126740430794092006388789165078770645399620952377046632319933310178190624779712885986789762562495900443546941082293798612014777062637349631833391945359819440278791985858338520628238444241320573800401046812849472521134752305578080833886275697397296567936090425940178409044552096179152994840840147752179071297879881080566227103611515008950400580122679056599240071503030247115081367260102954801502917859786694726683167402884780808783862973745522148572593554641968810072732224961186315806285796520559905078967243040105693950149688472969414825826229634470927222361591761222378495930463746423865340463906511395934535772967436403617350442929137976624185438007697763817581888304459375200419968519065179201273166292574407112423287843412765823603039537194919993185054329887154381510462563769488740233008541036297061770740496981261615790439605727055797217155952939985963436608862615187017936120227256497285832459229027162435502867596686384410235693050498395661746398542502435858780215039543512534695069591284504821538012688780223735359547405252768465321833779713355829206435893022200974424798981708073806192391677099150267796603936437181050337327615648998562993983597955682741583483845698303498374682513779270568842467911176426435109650812159117177817527251208753950506182765761968600285722214679753275238599949684342009096273071518182971645949229861186797738009990790101480444841312598813491945680633381849447678655348353458566959207728420406576126463482947019642536053402880804166883188277087605115831331647561209967294867487325000081489452453673868839234455293179506640822004566173427159280197694034187513609797347463479561474780579481813247638405970971277697356133852902144338266109682168863338434212591905765362306668326219566219802910143201521580472402799266241169131631024884638277918281526418826814844122445886299102979138927583944676745690224432809672961626579818266421440021742734010830811348793504210394092207498255322918852723852116922766287995971364521867470603903255349849437026493778021911882034021973587256469618330556252567294150700065302020850831808936193476740109550573904169437308969831662441773550127824880174311304990034892847238591029114520479690777988899777719719751600299299411558022826736275832832254022993334255352019222800042119695195903290123215818618872169807748480444727306867999857485154535474371907862691729831288776323839113272746760852992145683663740125498637936115642109454058525472148282511806073685150605970085799543212542956452885122124804641778561645590462493629617198286981932065122941985396979755035179470505011428421517901027788096336657216610840404244921855757047558726608108574950074112358352708832884259466810850372564813995322991623929838730850220315011916919787806675064386543640399859510212640558690643828273810377170461439949904459703705193974239351364963588133689299355555953210460388857112413958151204986016189884628509574445122413988717084726390472343482481432851112420410329211725175655541650749728228712897874826037583441684686114653469926010372298286233790515976761840463869365349068724406636829481534754989133298245865685427377791980812797315264735894634799854412552531662524425128046184588786460265003227156045568368332078443070054864588667234302990933521270554641556799850538895792485109447463933687056142854296505085501916768707023070652941862459678143194514968030479614706490169827393852172926625027828765902377021438169315588524857924832366577051550620865578353614027002109104945695391964793615940205712466539890258322141372156673161510477362699943388903356691417424194162171481166929130106105484121562414273769732020256547216082955819841050419974527149731250797946902538567556066569476067029176501028848662980988404778733082767761234804174149271148379119543252081745897800721197529997947131786588402260974058444127094164261505371504075272468723367532188810470876307339593060550443751135526161545573784855736048904580580637103931671319757981386228685872093539685033012718577240505774299195993804680160066118220588224763258555249095225754115949899281315284945519846230153462398132761040829041904801945840167474253495922467082417691416631122858206214508488181542948774770506179410729286636190135693921078593223026105973202640978473605208397633189156846645118377069852961299193086846835107366883765279729833160611851258200264050725584097241289908171666598625935299780849126520126705027289770211250808882295949474608823762162644941857899039457065214971443387437380270475918293889946580395492000477448710999660702333628780171746274041581109288573070700190663103078468747294353026764336463309053976143232526351715811443612320911614317639704468626196386733217848650515211402253147836438440951299184183047678315528651879457311696784098510632479469105680721420435139645342326131288605994782470986991827054639708599079544170134982551545549066923085977932774384598249675910482449634747773835204591229687807871590585946442548249612916535484128793753335811660526869403080157834580086310273036268293886727749753487702640874024282122610244173900004461942237342874641146808707680350186467890289621094993078320096797960174777427623867762596768503548114606331739516495594146721660587397220387145324273682798263611912890026197405366002860855016735772614237428564348858838290968112744717034240712419876489111636741234527565621578124105880324102835982238098693455197069714367694278424655709389595367763811405871388933597825593691412458905562079912482961913375719478274838535503978083015580177317467786658916914752509137803559892937464502340776621385464004000984078241703357923783070407647847885268480273555194526876422135657647514858320267996349953465969507953659504931900958871650075928973139562439159716910286271230141825344340526428889723659606352932888998883721324200918837726744906659626710859162800959438070898700284154052883111227357837899635890483810052571589197528164807613228538890242109522985396879159283215571412664701575934003329732066682873188929467219143178019087826670556706182622897782204359054481042640514835563239098291076939994414572468484889087841523495853045450885580706584728958248216257611078827156102157945230051877842965477556318200223313419258559434284730098312096115708264127783847468929010957719113345719019313320400954977851713720517265255015746330946909683347836556849767962771411390699107786121521349348445195572114963953135785454393965663417854037745014637709367246928759025815198613052384468500729464950099877693623857527130726904879117228120338744069600437531035411492623706146894760521338934525944612724021129342123414432300185129019859732629351599746503774549347617138485861598970634683171410611915334541926641756496820659258928815168720592207285508704011459263004293510700667640558367648131387494427725293603722568925977818645362746648944929521549966089715023664400073644511553133295384518942595708395279720425550112068317278298301987897256396220246927214854029003657159980987255871374967135273060833153891974954735757087318578999809148308365255783961117640094277356694082871209279077088191090989105984130319706578614990502688872234326107500053409784315295627812312633071911993194558440501049081444716645432326637520772666437678554085607463619170482713465609902290377147535320795761310461032314681766822516649111378109672854296295046875470900514789713674571505725804591298322291760370743257447692125162583547559306009168211484182086773441231340215128189958032429816860075910268772162282931714049734469103225516842197981210487543784108719459691314418690962340048498474997708697497770388945698714480272648481406485464541865174548451423425399373049215576553639593189211006906845974091343425144768864234986612600177444192310651126838988099362320729406747945590925377595164782065895438603911992118320395667692525308680204623139060856527887805586034994644270892975637344451830354603495915230923892885301671568503827627041717079111254316526311614310115358302033313105791605904847549730225832031549257778086506801263546489056753797315139755169097458646523200814656994064226237861861377009079985865296818030458740614597700636120594504595256032599818347421912006798907522237919781003707570867350763481517477434606752833075166256309320642568255166046331082173855292164427245580918364369010678873641384657624312646309675631075715914833156501711652640024564285882571094776145852866627681074775252207882944196840460922421473400155609097662253700417280465458757590380821781947503031798992335804327470460580721494275092550646163895293293211404775738659394730575472828857951665686582887535611560532191798905321211260884791732083025294562375946441396072949642127255733527195275059169083022018052291311538434434578257442755035167873451719465379369105726517624253378018092223627792783299257838608436198770343902035013917074907541142036123646385392409939356716762622772526210323178609134144027219487714858257240525154616047066260406624096976900305584555909169674840962619198006223683855283735700814207540277455478400892135165401371093720105767333859557709975803781753098959475235370505035678168734463620245708148918952313273311771975398376437035364550599045021412718981507560874727163314999779458217769694114091855970568694915333278813810011738263230269850411399684230445215649848550486742283873843823507219079152442164761818955166459632516944021262682652624167760935327057780352211746837226506571483285441165912377419671781794116115252646475062276319827616049596567729282821963759710215597786941855077496107223246983283969650374978904234700320588830945300702728343275958098821206109389175787047669069871330598011166213395920784064669471677143444224903441749380484455330305335915024846013459651971262015101942662154527555341468161557779205873066828013602235158198519613352827955730662911407122887426681660249983176227967579834034620566241476023391324573673810467881610199687867734599229379510436537131530977832422032370765794749829138132107890161492406056193355084507274417241159470994508478888375219847323950010917137234641944496651757717585040985963463025797057350498010720908876945954978621161274098464343588026245372290219572637059910349590991651679480390536935326154035069168750059401140700117775780370295885465309107358224643528551272971329710547546569554278210896937284372605348618956872100541669729179382610916147568313968254977674681276645305355641833265962755585429699573739576167921152274419356721335430159301026549537449166974451638732588502670627352665134192794734594955471847960088900412006739027684866561370352095406065353681361347333689238043695083927206504467814002401241178217933828863762437720243135692120550461751772112847133290028280964591505823309981774854816614433387300591707060026322221626486187186176586063184488699264174626100076991047106895732887477917179694951155422398622267861339452195296457457640079784711895594121120112311620251828063324850984559719758233358673968955017960914801863949156609447148632985486826438714025223591650851750812200256335788802981383242791445822392628480457823405074034508107964319967894848783715297968908183043689666873652677286574314340649532294205156260158335966605658418228642084048595623231817779621855989112028333868738759988912197864437384961381917067792211812501820190723177130554438088248320434475088138302501261185987481050254850204885291207121261279209590777516835905695183602084273423674150827802957784338929968986866056184921919135352211583399681854778932197307730842044358959803523337165428034111791713538741797682746615168372604387032931736585802115288655372639480233487227715253312385307593111736828384858169093366039765185769793694148086309566937015017644653567383409025650268019346824878261617529140311163968650778913347996655701592445566168201483529972923259332699295880096797237122425776163125042224655788630296239466543068147306553431542889735883733225704613664572533643382283894738077357320638960057313428137999927246503966105517783959285076350973421003594160988726709577669026254529347299550268319107513318520031160368913452626452125579146281659559598144695827998515076499613808831806170779128299573456529906993974889419131899593632251484366888063330343811120041681705733803616151947088673461071196196045953881490009493348639423544860111034126926370986814467763556326455431632748130379273680177405467353977099171300497444572624292188372018878878613855322624176317714008873536023626630173275662381669065891309049853398162676864624229834334719817068178020636447893426797690950959014978529357748459529318626745350788180282504617835824912470831950474485079689899680761781894203257053980063705969888632512450393446726461504314590075307029821461212392458927986594581350014497508004191830836504347645125121727938126354363864901423755741664704649301694619906553815820980061037976425156435121741459370244318379038180721195395075129732250884401656961379500881124285794450953794079515290147209571321503630907777944750502749281657846418085128389015895971548469605322640609083806364783771973005620433697974409198896532811039282617708990886020863052778303427886120108917187669749121059447907881608747708026688776015717825200168920864447792340844755134487934576249730284710224411980542616326913998894246705965589298527450184657464559863045809629052335959312990979374947556267436595609445064443032704896429234961770507139947060640202313666197305666425390935534802297177457100419144984920621964373369683289665158464512200630879000966385529174129078112038348573370387677100988779138117432977350440996709720838029957330946980630713272846949063745452672609886225183293552094674582641641313323535631949280886577059542207831729878627531535262427321247334224366183537828162210188630246176061062668942979129456338517182128835282477561655052972375751681556924377733944041773015948885887241005958132959846710796065866493944350179827839502140903507725383525723166492710695858533530954718009351592998324900156654024982621905647242340353917711180130679248391858836847600985324655730968857820796191208047271628651693237499452107037138095527350741651675669485625183757502956999200898564753992476221742689521132337552137874275586649586333576321242145123854565250263409164512272971122873316250269122309615697013433258675130671759851990257087762077330698293496999851093024906901320832094946404166810384117512419014609448933088605488713401857310867338631697568459008969003806037141390853002514351105001158811411645998069739291545770411275484741893879866106444729097983458994777035445281356913065498657156962510564293682495634005310991174304836191394474245497680540379558708433341475522381321723925890017892304833098153717362072487095722077515168962348351574303305708725683445668041808824458836104884566074628841912036657184489564018341864602707605630688814047016894928561275302975322767668806806600705319701066485247185669169410751011014776791397057998493295161716192007908717280279456821093586281910915510457078840155327106449562699492371942275582142525790707721467516830461337050583681811573353527301552327970696161445413525378546637145385559853518744656897957535159279002159378577896374178385032560709941023353359304352725975457364778603488783733734547409966025631569482689669871822546903262974604719541860512047447375142593054568560891062244786790513815297550363281388549673270336133819158608762041978842602008793728213145924540486332616795763321443665117663403114961570392485803472546493180273624313716686526818754387284467728126735780054521352511155994801128012847014001600424041302662832298637092562658449209656067509262308661874294334942508431487479537220813953814066384581783459937336053276938133814815088754139615424615429047134481214750160032424328824946697286168906934088175157584110502633342018320108688113047537284707296477633672166359489251822717834259447286442164935405617534879596877558833601521038180532924473850000561805492024256763974291970273959486393670159181047383966627816506768474368046338268989259684270070497487616685606541795644632090760031218731641651127949585676691515079886984001119629967333294280542606928159240929706013962404757231938610243626121912304608066687243482308372820214716071510690028729356548911372941494077435111512154045945169129564921278636528626904410298932726779101553723341820931784300335355655043545972543896964443504883177657785844761323779606145934913170850927906818474004902093874706222495543365865005018262408567024961580526318927428579824359500998740115465404308314334431365548503702152392156634637971022182890224124690322393680935271484018814076853095126600703484011291200736221591053761340326719848933134871389347037756784301117180458602563941929810779877247645907660606797561023658794244312641057322824309384659587418641760345633334591752718309816178186025787369094858949407980371849040460386121745493380018776695717390027193595609485857326478822652709852818018934239010779303958143937518067853345249972727271098052033340709627459468322193721263237136194205693024116491568843288362440749082935637005208205251613445610708241222482587293177469322312231934670247787341348566933756771033462796614999898384485917198467494065426807448416626166828507345739334440739689629010949621971857437941977250941778649114807473983838588015325455943039427171489363866648161847279326122868513968829173848174080155541955556528320571492308982450953281405237518279066089837879201684379636064884396726471070747108848165813831166341742567103155317508166350639647682171168557948663361100394202342649335132525038930442933215759380171174876431081818862565525828919582460886236481891821537315876279329769676495191037458943624157553087683227524637552525188100184680172626272587762010583343626448687445863487395388591329092353755896421768745710358155393721205286850490856586695640175892568263265181080151595269224835836216610944291862459580171954714109600625849596230334792771100310639632871552868137669587038566798395614282780106380828065052764657026111046925399317473014958457301938409940428773742137613266593734851489292961750742675930291901669080238614068238546745308744341614295467524753036609778708619524650646191403126195997804189472965450025541022600338217750069807097591904303100512734213259553791762160703057150418500994180249544238232554413915469396371950005425337873546153908034098769754496099849275358505607320488067911415214406893032134989854304897280692710946974034558257608633934374461416238228146785771869241445687615232537142455878889972967401628079440376689063287666100668603097878646808723909978221052646417785918172585052131825945285866944291283229108192387099422962737918082210989643565632260682037786880722646437403146175678698528142009873725394826001925189464764298931817560277464011162660032240999411954584393955372493510410551742894451504018598818040417572206207180797856601952490930592870563865325714080364773616815415547645919928053921602567894289562167698305123272125768127804150805765359117698128386755109022881849671450675669004180224631982191384436016727955257808533874995572140372093651649236170187320760396117877647668520122062377494352705244407474870824893818040508147302589244308935318597012637148442313436926266594770901574199386096661440241816200918449268397940392104511602703342578587227728369036516000806803181299841757154194243056358110333496858935441824979273401341576661405301301910882235975886195730058013077584458726279591060986732690957779468066118316508149226124674899700742721518952937122114908590301329167683611392400220825340942151822878272241211061412314508931850218881225681495448434729739039762975902085015001389051521775649711199438160778227589059441694562724351517697020282790198851480150346777452796418638678087447784070187878856450938485558028159659235725447279104754601916253422183528036522009984841504918643799646618699870501887898296145287688938646631424046911007525667737320838031528953691764166057927164653278964909972010644043739685035580744293503312836653616882092197540028932192669437230456863572078832371725845447253863584169766034371948362833709886316540189820801246135205087545746300613923603130523301979699902195388364383588627410021518006239286544875666614087436849816056828816676821132501863478965906528921585298410976275505559966832636228058554827643908012239060296578126225311779299280103641392220201802550086175919589412998394297209398836851712734126539180831840221615959822608929478514036285992946395879835139982075019991406038217628986703639232946070007038690503681461332976348020021144541693883003038975178908731628057115875116406009388275922546222849184364630969993711123284639183623220734800307940448108269799308726042602273520333765468436530466531632611576460952824837671006272842998755964973138220086597193492609269898935530965976075149733027117411417294770183825541952127099526751968571165933177570008664159063730957125942778850432068067648918642085704961410356444470162066867333841822679983826145345142150771208264035880767267574137385051404732558372983676914361036293079774200719534209167415701628680995736548388119923115334444577170595917322963218073218762277949117695092765850595877754292614667408711226834959696134099138315819469967158653626657540579553335367550167665399561272590134965210037847224059805477472058749794700427045274345854688467982361728076850702284168164631613090508772883731143618088233169798171627998193930325337066900855036540174412096268523625903121455557634308685832228738424676361710238794271031157373259633666478155317945039253083591667403893389468742276475648247266780677615827964909696741764330564105486683635359261859594646218375940413508629295477101437032436115275466423445858660023869018781240133942529650123328329528505325282958968709572565079374585104902157098373781041619067910978322918611126185160822178861996443242288062497449592567999326587476438855814120664604119942823127239506216059492226971101902255426417495921490910443944002088883376116890203500815830072493583443654160235975133641517608884675069532233990145063090475982387502964576804526860176922707589647908018561963132982990221608387352692750092959539712474017773487069152295325281777317237303227025735363833065935543011088939160491386660309523551818186134997490545573288189313382676914278161085725562166513276940612096946211760612262342614942656977178378758583750420359178960933010560917271192752331621238647907422235324523129225816975600523577796777488497025588274523823125892912914237321123924143491397984154573619450245584778631942251211307905347283095251421391336794098019185056462132572596867494784024961199425464728449290743193582020961059950006228062909766162473289887326538802095134082436191317771808160516080721609289477762913986937690138183410340347349356553336260619492423292653233367638699302476744944965159739725249831376715730688114623410432340062666361213316523136488275310255977028766754673858206748768731198592952747155540286937067023944197953018472086247078451253509740957011295031930388961508238516609231567399690151838980908768473470661090374917790247883971263239407963507018065750542428134342200324789535968319835054336701159249927744641537379115641022883495956935539074092869545487984349616075602968459093762340660121364291541332047810764747927789881338705391207488369643419082884433982098905932415539877320140250374585770124985902648003875678400542366464343917338428096343240860635120469374733426801452165989070872743880222994535516327264186808788281885336758655181868157723938362672033451143666841702395450876419689239255471574935958782702581032390346779967460804886600650515054429758756283555938023092320086983526263097346849002391452886371265355864275871801604037175879413543685201437516218516117274185712687456257740837435417220279930531605368529841924994029133240313474999581817543857300430029100822738302635995895645189951461965218375969367561714946563908765395564971193554613958574058316337776251688212687561860069390109204587407941062734655506616073901429628052014168564961091494938477062645986009656834761597072380270224987369015738046895683502736860261889173834437719527881132900550277379014025508118321150883756981580568425788318850670017907419528444325776111471934705136256822968287264362090740175191402082715604274710963593999289713985451484835029352732441610798381748127895183215228893795926521916544379935273477761383668584119553924697451186901216322366518519923997363359223017319893786687938353460127571026105388584712656060375611040602497022472610736511971181933597329218614552769906364939970708569922772103530184903319544017377876638952719024527936613392139206724931546186262293422045777298686177705999707264415631290400377529876597519843325847089444913938047733620514730291701360933808227927096244208523347170150360195336969207875800972430752709208365153836539972849526599065496490789567474404407770798069723813885206610773011732654250100178531502060781225248867844261930902202599691131353824664242813089399649907952831254013052304576810120395500400964195252722826028444690037717449178582333035157464721248734579826739368721858180669700225930376070327973519393700540758610197632702694366751598556314033014166582293109000891620161308662890782392245263554439906716188120320321029909794422321146791308762772043581001764030658384337459238975167067522483016149739990150664761248348642333483243668836375333844926104421651068496311865996530078965047625127203579305951336540893129497571770086461807903964500214213690909578149814659528997360958413136926110805439561220430492649995190758145246317043822385201617644312606480569397096649704101318189339362967912212063999079491156180321129156205065116073212718485621445452378488480159265067568084020612933137923445905879771389009455919487097193480645596272698810664500060783232924953972674960722831354437214059486897132295567675656538382515599359716659089992307119257215412396521000377325618653489858707389563870227293651820038640041097596083368611583177902157398515160405753008791771644383953715315526574239243062322873549837002343501456322956835585209904866555165362546895273730063641326336084865267489543378906333900526436848530916109662753763169407568731163914900443833472201359227231984453819839780360460723677495351732934465759318494218950806159792861624169676156929142406290554536185122278532443101717623762516360750152793148835139684667045112249110084806264886815732838099331330985494759478626739943580381955482566723656018783614069497839648580408315503746562560214373711957873964138169078051734058005822029029736082003439134057004548482185637751130815779970117131032414474902342192013972827107444651297505704776450844961592265675458236826681607609254044550505340685053493788181695879113524149736303332342074361422197594270747287090983322922581449702181544447421821606842558660039025355308584776764814093273746023059148430888736710938048450772844602322787291437988420878542465509495986008599390879272479633662803253040011400897787258674105138503279198331303230611652117389551443595522473655846655248351497389693518980237097213984594319251723109932313685726266682928134266317571575154775217242682128141225687203171903618210232319793563087472453030408067717416434296529006103913021971180103965314339621418613473271389872176734556101683249921434066171809337666126727202180554898549652656237061560587769280598603157531207312766565221107217096708896892993931354173811450002247435487064676236159435821985029150209623585042826146806850036301589168041933777147298251402362906209872875008746171905700098687324813025970077607625048970282382492668187223886117578441080123471736983485683328757705194924555195777840649725649631653523214989286777309873701216296472751155020074768158504136039761378749120800585842233216345492287485119956473610812377481295601429028725176837668233525547579402441704923083525253581891221614114759269343563834983115362567396448356638206151272820927633918697320647330874181738521511933689102878800853751805858426342364569260349997504145203014158738193847614106174076773658199986274590846760944680227588771404457883144298159416637645432289516774435305117918050756808960201433259643828929678634964407315825602654642664988412366262905513962790386192603640539157582077996485113398091266458176604198241826366810046828284077695492458084108932679287984763901637997286389353721403994348014673222165943787103773282834273538480395259659616800093391882618543140785606218674672113304226687689769824584047209859531882288251672466179667209798202017932334616622166564058172793948799454708704689408781892103063315563561204323077451114475808841314303855670884518575993617395772452077558760113960683667259748862716900365671500763007119605798083905406117874066894148249504033437669474151352072028597233666518370147935831129822889221082106209652697698033691992602936943722198944706157084841602053182499555377629154598147771495770995720502699461132773736355135599034974353347272857381906738138957384855146467077373410026504457879747345922262790237663311531404457596806227341435702569070160933382093228476371057463876194920498094534939324163719890941461504056933936082336739559618560855041386305911562536584566898027189776189786930315440721489920256418013064099913587000148229774327531085959648242516840259790254462950590112146279628574680647739665557800705951653161243070924182832790073456935951276435986350429241637966388986929193750059274434615179596769583526318522703842060718217739529849626866510809389097995126041456660011457914417961522742369726944459360305900600303159060546193384267550040215019659392628607842139757163377127259174157260863542377801907160405270255782613988872964112591100086987254117512229127458924382890263016218374493858331180358522820990427594191575351460165322883376583226689450345336662501179581143623226491412130122512513424518504516938231446568718296799553061924855694687983966999460141292928737991016213172112713570285327103895631637494638676440371193051114440750303081962532142861146732150985409865658869175888150904518435150111918411523931649759736388718472331195805101185788518729994865567245627116363555892243349855466211418122873976947496714124994426339760290177512273768682601906818697957985150971229846370317998596822888109724702563097847267757989113716045152626983640859366856807360489435747734166148763758394471016137144669418563177716641122821150659008088950990871523326109143385132523134652993889782197276059751848455374253786362587402190380021304786502251445675779814248177341280405262757419536216366235275470146531197275118266680893892097832042917595715054993895676910485609253363552197872099862283978758723626346534076780613349520311834153069032994257313517308441127249326813892643953038113930852599420703412454411648454393629607913897150567460662396887486606891496583913394223088144305161985553796398720847763715367891301818589495110607518981509877046598467722172024271320611332820103864107852621127297667181222771489707477508934269221314241875001132018809993752390918500983137209407241401714974773364289508508039911030896369534759431418005331731255653776883956743505443647888168272268782568212684398815560765830015906093003056920164515260759667115696837827523103728913952342092856158857115198149917083313054625244771935598821770537710374414979028130234738803565621017619886893815569309517405284003739664154321796157953382675374843221518008096254122773864248939444204105899797941129187521909579947537490094680918940491589404760157070332991045966235182959379852936924499771814696662063462773703223522758491831207396015565847680717788672417902458320642873822258207379324521855771418171936623945947530398812160155982752506826522303636389381065177118218521507412880649003971752005392082084877756637349266696797414147086968720064320260936595596670689763533329810638038809405831684406694827341011492054838819523069708533666737352429805799249426338935203327413096755127181942575372715115115408227719380307455487635516504649225822241878316199827800933940900705982459760743649982519227081601232838713217621945739105933357206203659283466624614458015067815292474219470000354502271920636395290574857092917007587369379406082634857288085135253332984115826833789860176170225363333433395350781587777272581005769433918023506044883324796275461942995929421536353499680579526550411919740158702838125442441142475970895772336611058129776565946194597020675923945264524417418782648133546486332982044244903552151551345611666728367667723801266010836583489241169630114879489022885971240574078756829351153990058735962444167630727757088225372409272982365700677522378623373820220194709341704914278600958987622238281424411427974025642663088578666759428270029014371074103498178393135795209558718371806067625935502038094835117672524839415406662233872023722999478722521818485710776817224432414635828013743895924260760861882747707938334950519290248490501442236836699044933483974320058531594285128278570267860863612238312148124441896888405708967868620832779069257454584956211089980567658700257228783300704669139363117414939500317549050759643575207832895286136381320242429552955959276869534293455672620384250176863266999334113209737206662256682053478610790141348685049207256862462374242420582895947346877320645677788049834051837768885862068666746373276880534516356582061662201314172297628224274871502177606608795557486337160788432200865102672272063461561303825690914669205064034634541554140712429000591463920031675774339487764136823881344421671138591561196204855990192448451483944348487325628806396300629170678806356915611728161606124627552598086723062830687752726114387310564065393210370819334783294999003344980676466688268294826194820677643866654299130167483986950048903711132414208030628887633867141825336363833549825485293831382538796668112012188554190675154249961208274862116967441562432978429845461117663082342370923035930856505779648457540372458491056401772531357976429999731016784323638685313170938738235468589080546652888341026651994740735279896085166161960620754213068376737192752242836868813833788049696302638603147761964323463108545281067896178535140557495867802879980107762081483877986115536727056932585918806759823470113937769116538925468168973703977157542738227345174337755598012109296891209525781692491882915448912058625061008926039403378227829209740362463868393543630667134918660817858764965025726254463649913900237014826246547199036896399036000466332522533807713943685057010340975782980396387829409059719468167838825684737550931545889430232747656693396063014703132113449774715536945153023959852819070765244768850749505496755593648998152818383468740612173213437889596613638998304081671813979391635160564138912129415651527390164619027460919421568549006470860152319754120596929247048372823650435305621375842480342775085126261600709186685149588689503243999455101413161398447344611159161343904749815020520915132981002176493475480018919191091128011771900220296938331836167642730684417003563891782659523904601638034740715916244756775803036880735158154602540483593335403125508722588241174210930964693411528890033583726487989350733239470887761969638172482921267891811218829120795132100630806707040591054538696170579775804861860506806597417645384928003976808930972705472000915184906108363149166836907429812258887336498773260946000061018136752793499034404093102856189551767759330562889591299552807013568505659235743485715505027109732728382911036381668732048824796277559571660980892341891338906564512864789018275534091574956909256971258703583176187679436938705688647951223267773992030576997940694576343956633138377923503566636406232373236694251259027852358700893756231569178980199740946679375083291352077506044348397169415007718296902746740419893929521108929212113274042927762330394846175814818535739659806897986846420777226857144280026222903632007524923004114734341844729894367338256763977928567723258539801327178494328504557591359660939005801801633291363707219234850004766645380673918072679540633597982135733884161124110304154460060064725067241122194410879060311880952867872998583434892405032583625126624997196981268675411723830965266216512835924119686729840086380346429790526079528817594564511476285997549588863459621821822381887556523413139856623500940214193034218435442558202104216318989473009111197318636370482616407901687658688496244939922149411000472354124964666721120450919113885993249484228141103920908312943943368694659492774013134888263580081692172494495327241888060368721713266506738086263734727541180272480484126987989536608907973637712041689465986882439270299684961523852147896177825489383437637204067876823138583093702020762200298215692889467432083451914160231988537951819794624855654600685971864135716372803907056641447567183425239884893003892435847045665734566531009753217210959989146922549270770149623768200833646613481166926558714435884429468906886316394831635867974285430497209778865414621135184562274808107260323213740950842415104198649902843491936565102160423496365864584120262875517719295318174330219231395857723319158366086572331113614989353878551903039576968220909313484694232186858785785660552028201367460954680186247556030005256975905060386907131663027343172144694551429525040235098209798998243516268046398556812998406666417677003020879491227841257379412172425641773345927662905226150441089433504202127024259633087381486041095585784463149426162310371156720419998404826183867278485567782139008004846779857494046744433537067438781482729523192942151490458817225326782066155490612982960509895744193698011378171689597916485693008675942004061847525885326109874213538292328042788897681881208090122026908663786760463592071149528232248006852882416449677898176979079512929143874017883926717639171216700748754863606383747096980755567797427840772411522612014412748543697101481431788283392565560033750398956410114724219816954439929111270450787885394314772321014693261342861027046635970824380967634811016498705341428330231280261443332645594375142839993633338937063181369904589906726982249395277222217688875246304637720796974890289746500403492561790395934333881117979540962318663952425875695752602993952692568416778909038990641586677099132399891503053234533794971427383703105275670190266925027334742667150675149102533435192314660745060685154634354448094385384001084038480572190269008753346945327826927925072583088376138024130669383040790083747266271338289854580806455295664247501705577232582633349167380822727397384524591937395153592623911819959364107013015974957194825558306607153764871289533006196728251495108384120970423340360131819986243110161301050057717544232936388689438057069260063650806846394222666707283046541777654382532570652801071753755801242927662445745475994322132133372597711188589497839423968328714499452605509271630083964680543672704515708631832719735362222793260628209191111430501623451713403842010197307226985668528495460614722122202516951788089948423058301413270576188720478590354366740413500316983026701353303209138579959854969725404228006861748086079652539493755726422057572855816680899775517339893796142762247207598594926976453736573408350889272482399759031564225582931761490895041912510932522374703729708993577700140653552886352510339148681581152198765806611498222125232377579302104858601036031299597465932277267794000261321483547264318955336849910496401501365293024665409451983179837515114365452420143697727586987659405249051418443299073380142549259680503257896785812298862824225502468642834082341525519547407520237817415776450028397879765028331944379476753069968461702547281973806551389053016191193583672256348697462572105215322238414097289233857686116331170509888939784234134751681822742829161391801057466953279873170321767565382404419300164600882992987717617281385738372829550715821299315361095244995202622762220719782010931548733444367971414243601243467684552253382662083168110749600190935163381592290692147848956048132445629745721032935919877716525159623788535835064659957011963511554832993487725384578635804705951755637371454390291358892442551959744910541671175691669265599821255353363969849987189561991006869990662921944413599701413792999236285605708253131343529672640387271396885134654410291921658206347403898365416258800861025047874218151836435269421867239561828256646452700097241031848331003995218102734145507374523301403519768204797004803352895798075352409674632464017842160330547878541213730378714428034795969905455324441645652834189817990242153848526451974618593852541073366829635580893309897727637305954719250210450364869059920893840041626511672711991663674037488958101279354261758485902841046332679656717790406892974278012142100353749073735311880353959985521392913612006092646871202271352585338242944814491637511295339266754798334370669087228419495550306572867174261309232437146456184211321129285860401618657209354839142026491982315605477384915075857890159630040105285123818836416100498418519622404380215332444657341575721034305884408526597513661178373819438542873138114876796204190498313821916048483464012362387589980998368852189076185388191513221639969986452899070610058492477433017811215096357778221913931959893629251134416119085308455319861998594291873785648176923321708586748492870200888197186981489732935473439629941939262184942394101567612523465170948984427927617879047261362305419128772247726082930108371360611191846762191731065387938951175494532781543462092687971828656518881744269538197872925832714715602280457966641296453682431139143660959146330981923230681483050207913588287215215180398417632586539004975271038751937758013551498520992534787670871374253520713803213013540611408119579833674446593295547653689922058909155413014852028397578590798730302113894258956856735231615314896942337689464858202927691073143116341597847581236491708932315489348781641366143649401652423574533271793317033548459803065293204410532780208160979747839626590538111602823634186490726366263019172699529394989988790716540679700780723991633480696495117423673379300012339269174908068253301150271538959189324521169046082506063693311570588439387791117295703604291072924368388206885101652599707251730608706078653324303926413325963578504090407892534757489147322974798752078802488923919845121734675748239240730395101469147245089460940455609824934541234979307763989230628046346550631625680404106965162879146032381769457070171911435045699897565891881223830917401765132877582252360978969360736316532491390181980663889071261800943830451965312319100162892944859808148026256662704594348395458536781861599491344857331823995926819975328244485588993102344216052567592726182674372472266741680655297134816282800254903314852186474088272501121620868446375314307350517752752532274910371047505466738914443043495079799531456541914146022638203871817045931674671637498448736914632280769346323048857745033607405073067163792854377408897086025968578305739546275671264103582207907002712096005550033797246275165802985509177885325296201861170713159373367064391359620197606802738825870187935611918872396616886691721038561580310832635576613180719319753426773258716459254132069487609061618722136966459063462342529700669880152597225219248933811842060488974752470826477514345261341777007802470919210505792138557115302023927861553982975827669509861607444543593760949602132297914370479170069144857834325325485477084350993863408748329060307192682069976560078765613240912250167069975305537102607689237868871606573142589683416062959594185171573907564017848475457027587561605270595820890753031488936297005630341462004807785043541510230396297733623986224125763759830201761375694098006188915851493140179916219778170868314609059167050037793715197382336920943961281638462669656390950381808673208050170300606635029677561911063015331369800742025208256307951965856781963535080706105326653183229561187932754306309339515189838506257316756872259115944283638716108263687939775693244659113533362880476839624419263556606731132283689306518545622631558869437728104626608692288595962974307447109356605904642000682671848102249413793701996455681509956644716605068991207272928529654952056557646229163164961389371161545996274095361499421267410286399966494474208495736281007158810281402314308374791078192229977829817407596800555585196671077743928545525188702352571976092693579400271582607265772032081493430871395808379125726206264771037890181150401753078905738026032340884743640623716893878981196025690213706239964818955811444057812376182161066349235687862617364108589969177461916057635850087100739627714782721775191712469848863516292846773843157572720582200399577535270865107921038355395193270013633852749081226400163612977382685001113142210983357010279084069512186652014137778677364546559318912879558461766034881892955958330534917924512763151937321432278620516904310862674756056486393545690761808007421940802342055896239624893587897996051158911620132520656991829972906151311843303002435350971457142493836820749687766964691285266926838928495363411806065965871935623143110052450783988215678908234222264972576380376209753663077946790096878362985702615681312998486899737290355658518117797377763257990137300262566151878958672784040435459996236013179991935342770352417935222660621408474050767474440647601978759881098059274150194744337150814059372851213290186273346624325024083187950669177336797535714372711572504809191118818133869674840110976228337914335934726724910435888548081519090507337855907031133050141704590763755178350252889673184809586348460165845276008836780499256525142000040041250488742012289011403266932761914798073727107247046710680174025351456564876663118611304740840374671228151736078903708661750902229019568322188083712121254909131324488445869176336537874052070046162667514911433303113616312905982142552446710486487421257130415039360213222521231388388391767051075984246874756566711368093670765526463440171835060885567995617314372928466834099712556308959701360957347611776429350874474103254213604534152424398208063445960900163392160599318221918860417399019059111096991842428641734429076272718233478035651228595214752323585370394843355295320104397825735524103757424948510019601316685553097890990598876817814317817865974216821610726160644924661158459829419448088007373546202075174971367205579741747088031131228803470211340354806077012907451554058980510708299371955874091775716954327741210634813406556756346600481791413967000666464840842722979321778480718295089005574028372695774359674453284735047943219080431793407643547334667189584074399696739292199425683343719170589259648777236372392999184564940379288031721722968216138629233875762505358977775345790993198996895976876400524496746349698170298263113844930826763273342214258301268270632006332022997762184312085790129166694252795424911180872256543570860635489824078478449844189088017334320704676330139345843670087168538607956021626287355784682547888397282626429364897767726885206378965839019004353575128035317435768389631054787952148906069736225048708002291454033199585523187856394914600971121634375475303171897079025128088487869453458573689095402740005452399285061390625964946293987988811606781741591038763096652004336899846158862650335944084478691672324307034079937128884962281986288200338881051093375421723207470636327744244127144580728271304578145390505581109532406388277904238271221583506478752503345597713895511809174688234980098170436920258757314731674086679977498335695302674386009614404718760418812506625784344936054869843675682129521720082904259479462130421032319655146693973901599806397713363158035305498013780767793278169482692411339462785423705157999879847343821286096488881722563864862511561373808585565963910136819872984123172777317856662435116074592221719174715204696308740744595397992591421962239646886334251895620316523331411329113134096612986123516069718531977960958147740572600888105844478952994473379941257997530387914832358971276331053057156802048639616858841104631587270778998328543262457486813395099586829700011909486160074814065271672189756834673782779144765868365075696053505671374302472145390013184464723519087505709186960935482216023869200203409536020881638970552821032311752538739994066320230011163249370795725388036305250908225214187450979891346904435853917374165042942196500855613453494699183825099521784191265451122627657954682220085381579334771676520933424396720106328339181048097972673153835121000834650973498474432679033210272052640318802406315127602496647608652746355031248334879008420059095207924586275704031566098737600289285483565443925838453741256345076532216274704987235443628612715570775559555504004651358151742894273526718145066380305376466626151662452407817769183357947089772438309639691337711840993463508666156867322748631625057934921405928683674270580250508171067660081734823700435966142671402911113610599262604830186470830352821654222626909697209172368278841344346956525886861999954705082875547610616166783415569181332673936137407872024849316464000450138636008565048664135415145062452235624187671728069543627444461574206521341478793827872018969184866079978243474359826074170008962003659700325574630142351684911117172154409945254745102860415366838240739639610934471041369910440721235829195642113615189546485867504908816524561234990344231919759565136193539888962019194049654966150856619755968468247085746974339878283275377572690718588614475924432926118800717214905070180006844022785512489878773213931547015235106108912405045981449584469463793095909173295022991555327695470339971287433207719849259548844044223232459122244031710971332692211367849721961410031406641317700637365826916469293580943291067323450612022320468534225624300954238848210739309684743732267540352539625900262626354724022763933227423714815169442310640255520327038783517309045999602714478495835629889265416109898573015666509303118658847884253825643805581794682339991248870412310791066324452529803471294127524473798426390824668957027809469807654988218325075166653111777232907803438188601260771498944730435508283183795441802065268129726841122822929853563564169850034558022975922480848371937962026190838131301649108738200795485634585535978108980449603852052330962394897081078135547226118266631190293163166804242227993250379394756555524094417856358440276859083567649528103614578647091796063102395181587267899970769401993710971627498879952025685395035953969627761647820436847204206922391142191685202507400340873891896201686512047240937828306163268259031004726931356869374558748680477999995221099308121478556998018384974329990427982743828211608414977739891632390398358755908630154376251255025468415472273381115987338889231090459998495896505694802679751374051096014900818791340485894068294405931379585084974260287483344299226988426524461287218058513809812650700585936093795182039080459752627662114518739818084245964906299328550331469476016522364408482115504511948058290688723400939399591954822281767723347950903734555307806210456927802122669647894207263768959636611002224666386517890155247602320025202474912123514578900804024917895330433778877438046229599172128095579211495943083813357774946141470879826525963747667630295392655834863547395340097417560791094040334994634978926934379300958418975533169888279818408111419747539114910055393129589643036289936330886901590215136365266974643327406869828080807450489935765592832025406620870665059982350499920829495096750559357341790062747571111894959577638011888936277475148715029815792565909365154708159259226751509271187449918937849371157840534166926870598453900334914769176418582962734035377956378896728566910703285287927997565933753593167092398973378612153774339803943496295063794391124172952131800485731438837962785150794218334939940175330775938949489454940477737301431525909212784449266332963040960499086818460185182785991152378008391570704386884299033667073346419162494455981324823662445860402146483334167698921841038156366782795992408371982678187967364116556752761169830165766594558992316607609866635262176588608235063004470180648139211341166800567521117476507497822366990104054851705754878126040781604655936478244485595522432152080146670949956248856544034088425403687168373924167909938801089415391849302546374379021406516399574808168472022165228945610565822478771675757420925025696544362307122357838017000350002954851270436349132706561635986149764305547034458557818715653070616028764410851703812134352571684303645239789509708532250609878339780831413739192622880238071851076825186224200675554160307326516293425926801463665806528706999120436945767925209618136301071875834947012833215626816218052237863373020026744768961075575172233675662665323306739820259709048268588254800588911643299802718979029154039865873864409057337332519040166965067643747253653075683353896831696609118119584841864785615724002011523500137143174110723049890657724435458986879739413282758831104090523028178439779654975692528729812580071185016549403855883601948551878492431225161611647148339251980028679324329590233393973380940724908752065393597623547692117754065717757297997825543688555831072474342431855743068483718335923903643011718860728727877017388849843230808478144872306133011723470393843264534254968912477273985731697519259224398411121701640626196836730290388855273206645907163670084443302803390432669459723147502264616227352386409680042013700727517682441502128869831173340287830752734053453272475316047540387407344771803547338858466628030220812815826411047277382602836223184483608883776441856982837996087980755266280397210756457776229086364191427536943709704738032498565642084908198725276046953729862072489817819324127824326874480355745404053821248709274757049790237499552542041156978506999303425572319691700168927262612573053513812976104430701470500887443700672087773663669273154099733273996516626600440590717218465696093815237361569514742766329773979293364694778355611894272424097883375739667318027914760749076646619584215506004385144959473142370740477100781539997317445817281433940666796615528342240465142477491671881549820862106766788435138594791328578438609648495616395055934533116769116658717627042496854732178563588665429711890996773532763754829889469124763323431262694811488096589063607822980497886021795325996630420226569731450974502293703441509426996479780018503027483121199990580685307482912857266426638357819920069706615056293094673496935580215579027232614467469172016434613959090700213380781530026325872540721316896221110507084511863725262698870085050838106214616615797818750414630546071075390530136238294911653155756245386906545161127537748516949445518381966549665614309441710070607010919236487503672815248513770753972271257335528236515078851864308359124727549159029758783873111810498548745726526957230632705469186565431595827014137032224312652223347053222120903116262065244059709859131103412679182308818982386600511313821863611769939494759198876760853731798160614800046362030128077634046747374997494277268458436787941369509635444285184387907574765713240894015063783232156010698291010834585273618330867039843895368714805818767114729854575654813251667034619862277678984639186929264789413102393002712307551211414463366692505003360618316175756439363383293012109705084530650959332783998860228307055821577955114967201783489010881795348785555597472343643768763272725392355368341582844603820475516103109659135524999910840826671885856714386219010552101407702160298806394236847523031472506478751701923546725291979360153049275322887612727255603188345437739238246938831987207866994455112267138513457426787795908435773146427295818156301752893177149931680383613406141214546098043358080456446563287348962581539771175387184305675180488627466887445863327536032343140838172112925731061570122079117377405607214299130016194569248259170202502734540235517792398625299258244335669417099150087496948839599771678558949500242045156534202023783760276949390320842453915222639407262050427822557737322081605479202316680356034990841071383353959329311692639361156494924982507988285358594818320530160411904646120006252505283074875754527707813498319838701104652787207127991884879269423564649438447987036422647221099843833872427426529822157210501222083818367509792327136775558233185649280410504095869794521015357707025793263659021034721343430141674776209702710129736702465154245718872714886273876900781199035602870290544225992667179549125153537208905074617388817856929432152564275849049386864199779755728803915707390628259599309216240549811127226454979823760501041906712741961851282469776542846087811948139221405481544429996443414163606042712873679179724152112377996738923394819315904254531948281451788342415583965465132753828015768821893895553697880618366275752897670773892877691962128822417749366466341563614020212440891842663232606561944507876323001395483773973386456838339258201476249106464675569040957848292941579777596547041483295029868427591242068889928140819132679396485118738369682198004670534454789086241132720107176337215470189329552142133456738516756275503044922969320516788053881968291392068760678036648978788743642106291088503967759536870017476331829216767966189978018652041728105036094949071749662740261067951360446872835943875777351727445290843819931094714263722517105709544472960372197758916712898278392592090969003894857220671687978672336027283284207499183936900077084576843604822310110011821735375097430149612304967679358794641903570242151547386344727007418624873010783682200173860983820049479334598268332633468663191492878615738584347437543512342930192166244924071511718244726288308944841089102038595945604023362343069473850824975288530339370548422638865931823483021001634917954989088634605308618741128927516524126890116863495234915922057013802830128211224125378478101363876778882309857484683031126087457608377289107286126058695244023923544875130458802946181781754042343180174454035594144675261428807833428836313553319845726908260047873673945241722755276071206867015562419394947853415782259227715649015294207905854520602291524915099854405769410187879198759654114155420558462495663423706897765405826740226245248804746781000459810974165574342299233434254759261304712898146289919194774479298514045624496973018495390677034493699703820341864916230368332060758284241737030833267660964058431037141889058417090870753909635296631441196613845663616415141307243082360099837790548182980672314814104132533596233989806667190002008901766007658619762947868034022051647674396635088828069055586660041417869595066368254053329595821164119211589833770238855509406327932393029193871681664345697280634915337256442984439447381547134667209647976943643892613338196063949820457108611524309568796662527901775711515861962712099038775962421208605446688681832498740921099331595684016042569478238404659436895799105246775484485557061072947503930228548081533725169767433045138871189197975473989655337969819431245103302110645537601364471868160131613651016989710319836693920791966876123334060584393393800702956728689499609159650035768360140456994467177227196920705830728707021242171503918508936374446631552104335632251265968368867635534479565273706285297654335666333653408105337419985571654828540278402646410371348956288973311616417504951147910284290946353338903951959271569744146625680096271813554964044317568771757767299047604946434787932295788731090628930579513899429713907607776801515002310572050726996835159648693863552505642189214414457454510862106393184685028999234171674888169686776173160776237285418833915092606672046819509006758356256362012032946966093226603882542753120639445034580437315783142004167144969485442992081717820503854718083418848051003219161255631716050692846583549306168690581886619809911545139949253271595788699200703007065257840678991625258328229949654220742491855016666557013083237670051403528150701268957715941468012411165985121078679698320366409268489970120885286332590498045625075124113751547490262407928535788820167156998717371891407103978273545682289633433974264557636094230997359958777067160889965947204862793014987479133879134701908245349342271207514848834226882361089476173848111948432020178200015276075877827451387300540557677845230860903911991015050606968967344185483325424945328720357327164581653255202665611221961880379661480185300431056472187520864918060110316576338119808747095491267891946205687688900331067335471635926686259629372370103412793432530330562921765448258008070463712297818170349376793013030349813447846848934485419235677442248215685371673929746217391803185347052415840943479274677608724144739175534133334253163361082539180578029759514444123380000286548502385886179455891044381499286726749120254226649047286123478467437295809461312198970374026976970201823085399664265576028501423832860821709091498369762781666977802234734982329411356911300630991545003846592046879962914228591073256663568106251801535228710212211815494175858270070220507699050362574631802393734359897149380186365862361102342096182870715189509778644283339137181304185698898061185527631345785146744498602662834747146019531007514738668087516747720265097670876359286236293953774340594418732293767761730611018998944785502506898105090537887798470357762713839401091356657632278221307568830937462720948641894089534939961585278056222246898027747458534109569759289938840237470488801972582415395780198982088208589206962752990311387862361794414418722138728955989798673625325649420927280576960924971446957861887454506852619338995836364725021314926338080714705271082220296980855638749036446381017689933131697015068320591802652862575629487337674586794571048707071719514372917105274720846441804037143434092262216843749584471558847111835322528175049895248057813977788473479981806712220362717577764337425380317440473792203080044310734586955474990538091682624639726695410789464559037505397423208782625662717922269913100270495314902701932105614788782736395860187177255313374507826394241205035225985484585936601854760430875622274088872646094610006925577146813817933161820768711347348672994149305652822901421695579943916598178347209050150189437224811352397563806468116555561909925693508961705528675328103656631563567113952104819079424118947000042892040145910083630353099349773973651009302006779897568097646973833219196165173356140951804658741747410831261183949436662933981513066547893646397749083555932029949171252063524044255230927043684474332632579979471841791197660149788810398475614348919662133211833483938751772019032356079649447185837067077785570502667618741985106103399364065072938973044742418508799826406898361916732024908740149840997962935923932832121265493642234644207636058977224176543301589126741754740151501066198067533477128653020254355676406681668881264202259979456940545896902531650641797933498734199879480957344489772526713020702194862132240342439292200149075419744420491654231141852942197968722130846769016603283055824010688091569964701779052539523596032075166917635080944881065957786492240161829025734013264890146496901020810578348773865745472407020900782584162410156739639647848620519539607254434632006942298366032221474269303887842226141811510359540285186075679852381562778584793041250951516093524049304208922628733178382575907142899256745919327628936278902747654217628610807401589749214806257338569860245429859837610055226220571505649926187490493868727285261747940171833435414967480299379516272579190158896271130505961789811776801563329138083887562803928376416156539699632404778986032210703714368948202316748119280745919923736204709164230668822979091375404549202429928340753527555154193215877804756299647727144450860557671606412564866502338684867581829902890547848038727466245241911646325479884839324872343071240100174786390026665742720283055990942655347080072950847281364819398438310201705759515320131598415971396983924039002051417872267503795520962387136969317512718705661921352546589666127471930385024009591727356629335295672551984388922631868538552455316916516163705734281141414683537482312206867823960656879575637409416914346302764775054796577545287787492142514958825444865905824624004555100726036239248734736538784493840893617679774499908347652300378742815452342934748984397625682714045281133314475929645709466903858090362975336867594987681670069831426656684065416052871408337235404428811912852679297246366913957263124890694535243751593640136133274941167924233676358258469395605615679725805546412788058364574949247307649961713456254301358180759996463254676079289764294225264713923674926543982184749100386084709512182481024888055564103045553170811689111365008381139604992096172623652503134721064100359329886504744005739127103619602964611024576942153699531200656285391604808588505930897534295700380836975471127105986146436793261928890201430833660486519912294527402616479061556437249532099223122288837691531558546364751426915522586501924646123748701250408419957188833843686062335844057062449193210150392599236084808829573433437327980697685327973523323011201106065224850241725118283575576878121826156641158795268876560422023100083759173750612399862733474967898959874761910427821365243284394592614133440510800611773341640250345961508912849482640102362244148238399426911030873230544768431456727212034543186457567900801479338461620523818643158246167072711022001681703059382908071671292715588284210560012398742470066971994286214010796868623822613816670916833573193603216749308141810563256131965842060306997604680280564129705293197259829469703416593956456493278350093340804255792958520547198782891481502034648211245671782363172457066462026479651459326302685556420963195215063532611119377757168461640011215592150966752918938004676696987714873700549094654851025223295762500235273891002754540426932561416116596956445674232434958767037478695597169642803105220520376444356603597024555144974715360731191869721232293761437409388803677037124465168552344793880329803000173088843774512547932322600821640065455640410196863230334522846971414525413519189997182688247191276374082151324697164513980241671132402777186384740567418943529999673694064883206467254987776744737721953108242353893383012840337159127959809276782688594572626679020488512862233934389868825184415148770671772127340557778638703297293048892729857033654251257980939185962267088434472243021283009560018122423424736675746047456391948354763222164187585568925847070515174744830204863584523410299386448941236758081974411506926260921407413971969619791731155153768879714662009917535055047033289919864238461755124571816275925723767325068775084556942283382627037246549710744026076877460612468609947969795633668973026273404161123913560907726489392901128531238537027487037221545595039888841817530486101600349175661142651617414167324384605049378122110998617389489447855053937588532822442037201315196837634596568370476734029306989927888942813924792453201746629582691399753664013772663660255650813104923742135946798460339607513928858173780083136611671222113632834657243313533631691224857440550758608632296807645386441770558652066924857249737119743296429765529301676804571481115095060941392624722850994940183833298512200791975181853461430288253029957668122905718418456907730117549216666710036889358319300946928425137214210173323839139935867706243685115376608226300178002938405435660860912792073134190631137787650546365598485819242419253884852615837780883633347277697209495286649815085836765550911404950244878560947683819950097789464171593421056182042259765026060089962975829221899810850996718569383411734441733646149922325453312099527565910179749169503616894950533617570926434782383329868011343355077411512345704801113400460693701250851238702853745596979951339952981591712396166211758764977089512968467875124224122958863116521250646991214752456968691337347678126983573710665286579851239577809195784112774900185885444275620856846645944886217615543150709571994088327323876029456233153374140724925054201971743263287597562707484826525470267948891175395907760822681702428042707786168541157153989596068259848723930321404962642775659893763196281304863097114427524452994937833665494333747613251088833368971335229811082741974746865754983666234247586388353988209439876744601617804322782149655824756019295514251294193591607970010943121577567426474559518487611919577089495112009455390061186597111428357742723197060800283927975996769879350352608674040707239145402303918182642750002981428905313187899814753878272052801527133457038306117864588057315442881172720608583824608945466295816505378856522688033626177982099057052603110009123502325239461162868614498480770706767365131460481507470958019796651077441912974305665067659660620268429150893231392308121427850547069573055141037187808801917068203478059677263101864768896998214726586390366351041855883901290266360889750208165814483595052805471733136724158655542862816601081509487636519946335532684992678324760797911409976909875485156908787807469277754305814185434298321956330992258067265139948656052541564735287464996330051336490536442253188913013781890343919648509440018212848897927821541254630028869831169227804579373893842782246365432072755389476154096457147799511140537489737005847872505261739658452216021591420326351745981915201119507715772658498474541112323668454637622992164850769744236268414474247658062773003726186206866717885170576103811072630596154636771488098860809300315393988691699101202522794429592985620519343472527454722927061802412760940232457815973812100035475671866419519688925288584323129028652815730513018594617544207210818043579458877957964293231493025798450220655341956239798297660834700641002275629694517862806473001230758315403007031528124029987768391823752861053402347898029625133780175833059223669213227632319693788277789843117952478205420276632079346035733418441910253580014363205272721791652249343753559149735575187335628058130482665548777592042312023805172964270188066637783520329405999648589645884054808800125812835186239439560331049294277388670116745363285839834694734728752035454959399147114849141442391690708793374041758135205699079974107219507714731941025660343423912120278393204839657920874233105172001316272816764139774016984084611507273090253793669805473540517745784810960512309474000360110334175672562816123205642082490591457202405681276354889610561118385853030238652541050845480560018515679865291012732829615032498456644277288513203263207170482625929721476342842379000203963435491480896187223884685586724524564392512026615446533470656857788800857012811930061478158824799468820372401933494039369921653262241302796250808802305447443623568341468030314597779805830656232778761061486871734143006051918077385472510388562323134545462518513928885257858421931278370229546118062818207490606464491973026444881794930868382869463360349771292838584726678733839673530667715841510747143075559860062931281410517260545663505870079169004351933821449245451878036577938853834083762929465633749525643686326794323072435161082461044923652571870434723192671362256215189974852194398397321029785997048935146866386960694186205436515535326744219220951264247197786483531015324897599032764211937108026567879722036256207270280901098269131251200535025560595097003275798040782162565272541973392113327778332385372502293333560015424856772164067390552779960487543835540122078072900026781791928547477937524595908843414672515444120767897159359067610798077973582520808756573567412508659036590393230174644257343897006979342584258041783034887368359134704555501926903063543665022816532294357293080407230237099028166126861581514923161528873769673857521687341957120415355969671409967976115142348106561413799795795456023719492336775813010396859255084385493165023839248178636657189963673479103552785514880800423902557851375189056420029863291114084781253588564290762269756387633562909766592448865634028593499983267820397042106245345628222010370756857273447810625003578374597805886203825419947230190533300472613103717937086387740215018834658905953483921328871107035226570290830008733424637029589411098909987992423842155950693821210413233954595895707760420980992607446769325952555787128571092180170840042075168284750802722041252938495527922726726280624337023138284538045800843199597585714826767327745614688160106379088682234415226094548191645227290169894300207607969530320980205761991582571684641551872276949905035781432942012490557006176846534457210541258835262005448471527895577489249256403242730822717036872537208160447725420257653046108781522990848906438066670168304184722288651911969247259426124580943872557210803922187071853744064980071781311953505601392670085314263758893722222125574502488018146652681161956392568534109731716924195788702791590282105066477371408000475576181571032491104808656958564725165999075588750901602613128232902564270400205118148062082415402923425290226615833120998141610767803394464713690537941337564648146433251194236417275894448331459541654054860957970767531707202484078914573412552325322794005334373739939012765821321166281162088842011592968001480230613418175850108169030585676062482549863678599081606849110412354669515483716660655863519490422055177560562150728295580602940092524341210899258151990420669744745657963278200227406886876447956291768081408551762968352495233164943436961328077154108779115282093911027670680920533062069141017345881931421492585406001686139349988267894980424983309100704466950793044623229553154991437760854841030679793394946505615486914037239314539058362158480815056673387538577302438178370092544321571308073229661338508908077646072071120309768655920715407036036366092736036360734261598508570721280735624584867999034359577835599710083717927719079643274434719939389859170505614526238655903225665182440152047750987724814691023486932135408460637763855386825285562127646993121414261876130626833326813292959353360343293031561942191611624534963505180020636124808135258566508732339699023255357640839756795289707629654508140310889168593381805991407190603556765004023736112485705464922588400528350871529416663781625983802111366239808815069387333526166221730298142230801104139835256824546387214771176374906723708498936697265984280148116354739258582099553842404983437403943851261967538882571531875626630713898916794686185026501728212434821855789280859911163975460674923093042540690608735651455393614680938583421268507892810164553164791748076782652185327310622948614840594933598657282514755180463041646473369835093251681473128601357423857948986795070414073175316892970755241861067090908433269928707397010124916551506421795515294761098106977982934412512491566220272323228049257359398356992932433754661405489239030203314744803871832145269533416001474956734812758258802667930166749536147808830134341901749595524533593296747621041337498262670569051518301527820341965243218772953545868890527888830820503140377682186499396421900561811781341042297962262218369994028535492837376578864662769439714916076746950150788523186465849147603392219586459639567498591225194517725514199740186500018702553902831244853258505887161363840167235154027846448702448465479953157736962585689898820441695583552351523903279217798607624448418861730205835386633469302797415790396237638108140500456473187795066258748972136125719853472843629055155893465104412214830210745771510058804257963066177451378958115680372354476416736796700490008653467682684181139742822820818135216532940149527089096849832953210872688363144457216281470336014320981632194315240632629693729941190451172039247565742100368863737905934031594836522511070991783695875113380617732082668428071770600987913761098610835568487776049054044909101775172874575876346395617854302184175022768134877210651583037823035758118926201326769609789568841962641323672153774887853747348131989747214381332692438011305884865547329387050473697508473359440067915172778299448367322508454725251507649528792326907259216900411068896306529215178125846389024848629301748965339460364258430717288391733362016339688991806209260223664499123176006212404961473855208868084593197486693151478405447589191855211954103722342593781822353497127202766295063392233015113132776103672793676972178519850904246585746207431957493728979594627583464506251527852778681607923027476471289030854389593151355392368271625900303988261135884420125032777035359767271885304416915236670139564843754287353791291721711782928254184919948636034048683846088495513866530355715473788039368661310804709040996574043894299637564301974351818376698634666278623406840440558157880895864454568784139086024842676445858757025186717903232452310928652483003100954285356921712786987471267705554387355163855913326045185108497491395338452954317061455948004269179652150307801285247074739433600262097512966395941038049416740698025210406443295575870746215193968691615366879434300852951848397266532109138297802603973065896654875067637022698230979268760439360455104462051233249589866311011622004295360878386926465794221655218121362571690692443534429489452956959366960755608837233629977245056299096211284458892665874463148355759833728336058254626267869891273766350352142159694160937101919054182348736136473952682499920120052665513233494892547339886222366324704704975344105710580978069282945886645411147190387826634277119388795167761321059739940643538895222556072365334980578032211567806324454247038217551948425920210714514406607760353556318398393694663835325863849767543412462035427102855913182828309109699550165788203109093585517263338925605327926523079294154281237736667365096447343086489944525427352481749693536660841821886863586277281916608536138588141574061524922581608952899670086784819102496390371037351644085706045253987205066607464444067906212835310952536304526117749012394484667888125554724780803506173027719331664196352932690706730026009497667165550139645550302194029300285851072704701178908022100757154793186244840867963933464260533842826912523913740360670751528088126662360106921735968989389287594128874769789696731204529890942531993825219732186925573403046303065072942237716844593326635300333138042621942045151717085971547730638197703477463048785939559404883661269704542702919054969727809704629140859565411625212999882870928039140927063366174053387429769988611051015973625074588092377061190886928411795931689101337099879238486437281410659638817769574359383895081382080676381569398226954354170517715329362433407639899594685625582469536602688242184083897672522584179685599189383983907717166695312221071478559017417711350550101036329346145859564258858713793780473751725375906605938454791144434003439741427373614720437721528010198981583107844511311585188786992281217429188266865668573322456536628378696069700313542501094185215989973551092195756954383056375188915227377351012339346750008643304071818376216810373515475706115776952334071455995359691869198284673645412255248669175073505982050490126456590263788658021863555411331811261268153415554996331702257258150371939883751467983311640445585983278069441569737840986713337135215000665128666173839137818800210949540719966848894510739734068558071673124076616990632246717301622986661385443614964795408102398562885327754159186709562293623708352805580981329745650559881107899894134505156901813949299670139797911507783599783914612055072868103903028869534798654015660261617363237354579955358254546617265150880605460998478828467435274288869792923777405024171643954152141033243354424094486594189731030855391222116828881597325966897513813726317559317021270065546350281944743332083879594544840619771238465378439782774341215107352623412082974498459545411626523829699519324653536156791543338353831684757005027772925738717809577618322393716366115583300425644955497114345119934102124847753559011046935455955598783973073987693686691119560120430619621166457717182438198601019679042851905127227474423546502527263231702523654915663238947466355424358484677734924811133622690472749761306175728114877202988120950755173411820451503453234489962667034552249248886024899471829242752459815268054589764369765238847936061132681150621835399390597989351643390659902775759513323660389302466094416965605806944253120977140926935663958655746090947619244621579455861501611233541025787318537658944937474051272878750366795756770009897365739533137229304397495462442856960977388562782157913120394113194908800138998743451954855398305755488279205722904012293127162673346591243596604767372908060227804585933984046501207838651072710738494591133927401065939307576141172650730054758930760082234167235125187131995385997268020768767823094838291544767366854298973702994067591383949246838105226774375303970008191457935454901167325714481972321844896557798659183240001571444371098685260385146244499249242609460610827071701253843519670795715170659341820147497878028749959720107964256852732141306072381083227540486703686577215972618934782181752357201823657508263685950717377066843655022869165372870381189452434542410307069228457798217403503077958206723057587855813822039306741084855406231201236732778388287633508282126381510121180540292343841199597269696961454245115957275389339977707636973845821173835921881897201792722782599827378258704397777670899276983326689552629414652809298385670670130013807797263138208053572055374026081820047639145022020385444085662609211394556171080710693306531270397376235680090075179664673178430990861600108075065597389385690434371446010498021629596701635211415380767043331540003291976539861251310653152666670924627445329536687083313800736894340401154942393506137594060702946534668760340023152668460513980095882505520740617536688214893024135068346821712558168035239551211193956287571049030874788063497750620800263774074234312701416040743541043766531011359267544363141261515132562367348547793452529185149249804046810564303560162664086448803234160063932148228871828748193096265977809610958829704394342392670450346140361598939821763205378404742832159940828376748154134250684131339929782136687660726754059490619852094998275682168973206867941003571922648740066272078551121650224237450814712140880606515838949892624847057029043057447013350086562135973952027683890728359081076841894227943675346793489946502944572271177191878710533380936215451323490686293145531986901578774140970339396666529783707266425618008973375313637696845111592276451837513932333037465172040567583032458949798962081771397518934230324458590867469764954807594698489950811157477655120686219179193395903474676704886734843722606170246461065979035506337109171703924483234164252440147386481843443207178943664514289993183355606836999885100387190165309611766562464076080873884499967483715055135401784935546920411119501689933415602567377346187167426814505643940707088843888685480935106441432440326425062960189458241541887030440579182397066450323804757917066667715378323047914608143032252851455764993456934501386143441274238581261185544080795984967275410042310460881259893188683266920992628456087344364850975861761972113298885110680827497667244149643799202691063954575563259549482529142515757920118700060557850856595763859219209147804884669419251638652543245204407447216324034289606834033770376961062972191237159811598088815150708143231571683284341008438253164633605287788186286868884527814486206572088948474391440211938918867821140577965568512506856515641633856390172250800529436527678271487786633232645069607919187859997614899365329219631642500105915159625127345490775719955099748376815349445750814802304607235901982661968135588422791082033415841611765376711073452542283984512502381031197744239514302816862939638616403813378606124192633701079034779951980777328494727252114257207799541564889021531425845129101204547254376540190648328063795364351957138686242876946444185115018451183706534897166377211884090143189789357911762174476775272802759354099996234554407171474710387278205791098531963347396864797824533111022590480112910536898956369844312128071945906700389911707482918274972789421829522938464763327941315738370134994032370438398349246655633899359426817576861696141383650359247735310042050913136253659435320311483181115869351634372605497234193831972317234814518278107121177372615748825824039939027983975408142082652405533492606973264867359250098122641452363206614844880408570125697825732249211938566084330017104651359194475849303188029145720256293872723684375289714057755056820053860745516464332340140764437252792325811057737034218511643002815311217143977641017939356692943455549387719075528190049752687725195412714806237464954942788390027314540827743241762587261788327426331383446562074399371089431183769858318631785661011937869014165937925738987150107660371651698712825343473008980275115100883636206521610659462842173410573458283043795354305901915663999149873405134856962334771124367144631968884801858812758066842294711593899940419959009359302234387225459664033757697685287944292781881656102014153472760210444452329082486269712105289541474545657458156478121391266637761058728935343054649563500927423917456504770223807164218829329758818370881038558377312160546222123277741480710535370080790552228870041094600314004497891092838728599849793121467950686091037123132509980241520895410931619796324757772896172728931113420735104847450856713191526159240721721386914147288407093741226639576333428735897184293744141887154682293854499226803496682790358186179463251561532432556437333142815100011271876450885177464751501133930841933066589935727174853218247321827550232684822852279141588830714340172896693421923775666833455459303681218259196841267068791021703782894113938108079882058934484195185004706982986765621748012482270484487999989508702616643931601896172693852090790986944214138123932698424854107645208233366748754518348098110607828330325241257364388906999523327156795626825534864490339962748961924246952100361082331228104595883561526936320325383330303576862807991597358129518842160989456039920045170813675856226153722855665221583817208449513465817497819104185171757756702187089460321708473079102241363189902510935129200862328044499151262509883574298726230621048208210601236477735509208538287245984829643290724337273837311817501643825530118131132691799344191766326976511608005783445003759147334519655666153455814229843945534688719393111541530942487121941699153572331319669647756069366882128335775993445026861931776764627634326090869536862908350764610026120332206261853698403865622560244543035061666878635923082544078554048148101082990053590077638399343946382502641964816111666572320560874103905091048831814342964972298328199553453841554633051341866833931236244172487728690630274971288576419512975657520303590237683829871361957116480743773264524153167122236980209231138110802656248548633053524958318377225536597693218307247527699070304630306329124419448040595907372702040246711847619407231182781226839944267975805179207448398053556089521760494030490193795590372759778252422291396027219653603110591014633111451561414987805121785541465611052056787110626228065101433151144442931198762231329830385696451006965967448897508547225981586757895627683136245979432767374283621458285572081054882927359722005541343529633595512701486306597408989406757576119405652268122965734659974842158727304236563402651881475344933731524324948919778035207385333759415709242463187908367987290695200047278071379450649332568075174968533634589233181730844037344943824278849007113763041764626298631010673367111062142460663598652397298881199097336206374832030664916431704323622481049690911239678116351347709040865842064352986224767952829920072027692745712996276402215459627582050156200265336706641692910408791622393475060508830661874317974904468836949394224731288821774916631334724389293287861888681216535941646392980233449003483975414103001567884326651003663196967622954173143045608335066641592281060617568179828822987719910074587874300727542699333902201743378574571860341611142962685342500876413096865323374860820962423027554685134194302631936497213730162333964936636568761819091478486706488757544157994703853332658304465195204598894785480574036101612625798235640397648254245534341528845501535330361032741406962319913249347616023801137215925051352648773077360836176248275996788174042120428636679382403231246063444353524350342412789307398060939016857518768980920121041147712894625240559040750846705408434765042151073575983452681235205067119332816857053536446038317600315131050549047756431307784723892771709115616146941261255547792322198539675740564216963904679758403709255425571217726712364874176166997619145910771207992253940523287969093827079454559106711700803329808107569279588074919901933689589527139264106337352076824455304545518447100450462720468626198880411915340999940647440137516593321100723464359773511010891395038101816643036944429331612301800938122758167588398812100327637979020255381566127746554885168867566897888862286208888891019428982328943591038092382032410064736941466101532504364897166810886549287757384140273358120500173991295061400664744428769527261931457580080102055556275565024515627642395417768924392758087321150346251707581415656250285847287113910484779829551153958679395386998793776214655013556820143973310187887107354443702015353582814655425504035417134123041001897751464146716815733342856128131195815575328267406251381568100210849692780649076938641738847437105861051467932045454929865079602994061233223883432809135637677073230004871497106147027563318441930375783905575558086733885402933311050828244762918041163203486795295052090409169873289770365316164076043450134156652233529820246411823466231275611201250812728923482997961235035063051930262555159253724824506037606705253027097782281495552815831009677079862344214080053853091463400851854951826020451991972337957403726674640356748208386469350098419632758285618826171497866533633612058821312107685512416054830253552811027207869266423226045615096139158384398857444122568721578302088207777817469523685307537827902334043512915944988415319559455955106184974917423103268288205584983134056886994979242832663481237509708049565939073979350229438260315558975572215945166754470826859975410457727186281448230575871830750897620484374724287511927559500704167980207586189005452494007609914938127780030443286976238243752906159886120599398939449702520674625054559173705331642895644295120442987937879635515006417093848056549887920429119516633680228348293922099781467875977070451463414059238373131397990304721166680602527175934897346637586665747000132229249960432968700932168734266098668906074118597670835614573477426621645405916748501272342138276426716808231813151068117552187434044946125373183587717570811474891108501353415895601075048549734430512724659074081200710563908527380936937638487052491594377472755944900338623159479089438652952773333469280753833208280677921098918665807104620114369502519219048761301357964610021010057566058428582471507480116203737339775330226398608456846577006365234813496267253801447536280688219942888102387219610857745699622921644993730926418959372845497411887519634332381463642954202491761714267654130870911222266617494115547078074053627119687826092440182483436083297302306243750764968965207759924093240152126849008773558120990796939127453494840378485447133373806318799783216577947451027342597024775849921807731172768301571982989881010598156750076339725520350410504558957032106283515539169816980174404497833484741670709883759340819788154752093420775502579552452442494973302014322234412059117395890940564463329955369336944118575439595130243112992923692006349121192266183466800998584123342620169935392294707365823875345451331861065526825726384340012615423620730255416243282048042514505625437735794659927446485539476293617760661267847989542769519953163434694552267630367620332666423071863869032189779721255873833670882270282881256765409486417614013008408517604557592734194851885212878342991126602033855776278954745209890463758891575765949830949540815078983851530006361095012520917602729455254481164666565364844567734970046480468345803154277037454911438122931405059257214912201996604833690247743589762906460967590144990358070191879217358907977994041071748333563638658538837807534275750180749973549088604405593464741095116143537706742865811561782705300118272479052235700171275506614416625242655991004043797143483776698486077643762318437533761165305805481846745119045022625623517710800425682475041370421887877262643218167090372424127762913206504605056933879583516031879551009801501252212453260163798201182410411948855927212870278030859447286517090894748788392602501337048936706907269372362388239686923201293359107800995011508806912455084160377345026211949343961617032075072800619715312252562375201491648538108470100668727848558014142555198820031513538006357968877275558211695218365046004481160387142806774700400408124235956509095617394841958115889449668989088372970345586757303343106278291152394319533836704447212698786355039290665540235387199293399763014614787632014080507009872543011096222216882584138009463522469541393090067810644320049815474146269757781240566239139481802075873547975480826559854943804225775738149203287165287320661346105066961658113453952846203236418424069101703639441112368132602196944080343911478642280075699534696423525502982669530093061287265985901911133942113424444475047901550694560196786037333634229079742262482773816041372302918495818104952918033890214830566310311507896749388402945459132687033737729325187623587225898320079452271280768633179665205462424460318479847613359533323868434356504473349578174634342262009907181166481206939039876485307023113838328911562718500085429247884634816215721968152637941142733808921460121127639319247036211577963691038823477595009896143519308364321935644042563078829281046059418441752141216416520521787723120923822452153841343056435282711498707852102377772405390332146498730837543869655532367938442361212479149080994664795681219356610454316832389369487024647950625867340878433868623544418308128669022769509499732726029525431203213875736915405012147678104651909802849387454929385823581257583523623926353100750220169865079310256959061385951906503000614689597343975719255630658303753749708068657170973917242522652155400268456450707924013881724017798775237644834516715865319394900508379940458473912793094314270267491334467754415347084576961096529763432801928567436055041113039524554949310659435812059712762201820911799339584712684082844706089129389843198679144831985250819185010357880437367241363485520683829303005151040002604449449238278405716484833055580437436232967012888435556642506262124936651467375377843147648203971553364621171009538476495978704145933003375991035575418482686491499122842018097513296079947513093488526937662136293306228635201083732455297303886809991024834222649608693426478609977168987997955745190780293192953567174418096572381822461683392336686812405344144977037059181619702688066098734224892974359411740806161962471738741097585179515534134793082412943086288197684195118668457293367525224044106845283971309184812416112747492939615358908261109169076044693520483398922956025374895226470655483635709000074134939341096556184725500231420472695108638484967231310402394120996504427600271215608091114269527975711056897760389490100234009930300952833087444761114636432891141640798539480409163637867746530495813372679134817926217521727520007378025327160874522267666049217498943521573471145289972410987940423846677623681971788676189018901987661894463300244967548272604831460831246147317328650721348014354407037593410532665172854522305032944498965290586448305875013264393953272548614036557831991629049018614233471763893205649618946554121541397062915273907203573710474793757358519961994291897460061454272636652700308526854982805018771596048840867901127786297570283755400219256260552238030668919018590857833627671965324405855969949100801197287476240331408055665947419482427806090131685392687642906754180213438680394575572390147665589371851805624801828452318229205178367994956771605892890907808686868424969799739825817878731176968161191911024325628911150257688543073357121531734101556972912424912067260933547398229350558826869109797139895857323793587769316951270650296645230459163747508445682729269484252636709350255262291037090039936286802350380937393527914748581919148381618797175431503753038532852460514665162428345639883204646152572144880769314894725596694742439378599332747650903141346833176887690351332711950319285580700701001609549221915229448921221224967050682179863833568222367612425390651428166498681868096755868063018006835459281473030786573885448570178195669922714607638415706463579948384728702638889581295076369937725243277486054925223106402724023989922581997907794600372648348841518548993650718786727184041820139646815858316228772782334887381447345282800141425106692209739742187712155865355867197361106209653334989313223543702114391644815507393273621960820990380138136184257477286662929138624284044547616525033982572066297324555549788395833598016017175704225495824752355240468377824000679328574698818074272832667079440757075421078898682549428452618368103225452152911847775806378832132497996080422840627464921159289118447789955404600682795816020164945340792599616451303821352716394358868889588111014568295069833378722089606478758742010132849795941506018171825964197612534957547786386236614895280289294330320292089072944562874813270720633945568221112844311785584444997218709488297836588880152157163462651450872564441093176768490586033274066078776579771875635106120208053129015963974921005910128124656959785874194945707084334560598557619787480756827292250858771647884423332522970238551173723026724990975401206221176686579933076504051233154842484858669982611955953234595489594614198022228301227550604816674985040919805647694190880183998655281375260160452894215753467055897737458042734925924204516702246960361079924007752380152365481388051567591988733264048914388944458329494898005087717098977497572370371645422756289479624475129594786921470487918316590753641582452630653620209140983567647880107108190878436519418870920441662840200068869635469886757378295372446600815491798367624082957046802857983670723134966960031680509610234317535476558622270691005640839455169943095880508795313467062679866551035585274919404443646737035665194199241870314734595404115069993424173225600695240313184789910373444148585286919056685718692982700609242700024763745043353932037058877791802286147650229851245294771586446817558739815810842717078579846270430277399520454301594114900397959978566842810101816516340036153209033131979141336528866174781367811604223957385317505452452405937777820187846353073052262014760611578338956428883228680777375614582509142550114866136323474390730685520026469861482414008941107576529746120769048211335810862315973610453457840663971461602032492636896532895708779475406671666521159862053583369320417263437551640626789536475261325919814585733153438570156127210908791831244290119065584427749235823533134298061322549507859046356566235935857281398420589633163965913142619990801130182985445653858079377535423465279068163504693612056262764193306757977032309280613100922320367893118559358038923392223883994053816255751022930660981509007316905489887776830164619195803750106708050278103980697584843171280015288548864436002723937578046475620147185872572434159978145954998729386292550439884918082127955894441552921278165464951615481927019497532411652203719646772965294304203074417523756164825708806016294440249119662423685168129111467056251901429310104189022547480815468895005268497765835984587429639348596374667032769581434796430449940110695275985629938979291733666330409262985556023416809013751379571247763985221524344993418023516846646428898617990402293656124679544835311174734432226219790266969111915830080299819915979935884308911454513138167914863925176839838903516938110854473808292706590055939007454113092651750684577924635398207558622641624544298178046794462637340262068427211615545909394693679049550317424902711286223601133689066006234760494584708935883279556924803799508197552867941263701612923684233525582372176903063027170026970973199157143769768541318846662899829942066985880270091461951301075173381232033937155815268196573674250952543417221165831819620618172617882125018324120879152621146368706972191322214516984082142913327417884362098301503950477999469734822856302704449704836141067900994573023125988308454569337812941614955075291009667990697438425855077273556187941969018542331591585286857011150265980030801184630780186468028548756317753343876191498938616897379616037807386986859567470257410081253563437445800450071958663821849708989263757023816210064945367508603957777399129869954772759148551227431336133281698414255387037554941212416325317134102277774739897405328563174176160112489054165605865782101752334852513097422985070734674762283940792592791962705048061850453168089271913372729497839250817661278302026594884526497323794132938614158332581609575561451718767686026010928386746956019232999156909914499334810745788122154225920762374976483751865584680226778525887446968373263800654078941916010720643828586196806768884293507826963167033323472905908465676478447876755666490992313935946406569846093381655234977932227216489431894545334351507624598856403840479444830856325027145759114705331663249244202575997837616395289334676076225699725911392488161300768794238606971750842893665731872421997775605163386879475921293812055370621268289661350460089468420124992068215255260806733028080186506805689908800152788856400852591642542183551882175282742767769114694560224023308260201498363612470581020153947437825355201827855771763738952919589476065771665889154218108947114075503463774949901019519557937024901155261431051299900547440222680784844411871930801091635625371556665234955925004884114228569932677047347327344337798439813156386563341177920516416841341500533973710192884858421048623036494961043350665041213396104923362177319980454158804267068631257692049743407113087937094576668408401568525423939086760475893696523727490438949065507272883629722808909412180986222743245099572826042120547234141057037484642705071873446108260375227521969827412652907728958319013646427190114004033844791466306602921004913609954173795538263763951650114527879025649462422975646552512293805270374443322900972401276974277448378988785355025036359414416468236165473735027066283679165563112360848520399926625444445556200766019053179596203676601704093278398828674664902831695492781527609479678977202489988141167092441186082384370897667850615370896021822508941074192464370588596298613183783552825557917524993656684569389412395150678354996371051195691821038483803201771625658791080231944512676602851253342928509936648440671381597847679751043958249026888475434149607457916342449233201327113059010552629589037952362611179701611424260799676516796576693033294129503203525395118562637821505437957342858912517302246545435457705240182555908088089698781811210056420862074278252468555500534681985007536716180151948728445739169085301189362473214068430735333462643295717104923194693245901416932067805068155621438816111899042030085550423248997354547903148620288193181216209628477034476387295488134562895659224016111791016579061880016805714913085829732089832705872777489040334397795634418332676716587135206184844091570177275841365710976329199614961848407115874803222443733344593590354390457786110388425297532599550645622479973093237683014545096244882963381841710725649065680599843235477833880295730269882923110365040140554117336560797938769454249899855864926122029925248900136931152684922322007778025709795286711275108488349820049842812456561803105195891288535966623803600629225769526174112024759578261254014657164052238910910462886764692162738676202296241489436365103072345662200279955364253297593392037952626487719778087734149775723414764779547893675689168482162367451116708637439133893765702533735915825753431696701616466191705279508136054526219618492104805828500002922322099348848154966107227051617776212086982018429997489116130191570121033175417747033798262232302947114797625440890377821170350806715811236244659668051546067507885742955852542942790117602842331501890435034078630595409803412235353279611191504273329173679513495838555617318329590502026385123373286908283393062215785638377501054720628645284211032761846442344947014550472521627021112070834151690270333531673258120076224880452470998022507198588654529849536516684590004875942231977746178861073935135820906376174059793218025400924946660179250881029549498438511720021240979073189753708331742879409763102144714898175479830387183347739785717265350164501189245497613980648114257469212110836511634573963302341078370250188729000552894805012187306475278223173094309005955776883591928712887303220927851046647989444336045749218332073884108165106746961546858538925381766720932744856343679577179153367752507904099706984977460836862944925235205208131576164386406886812861384627867592356231640516614063783379878519252554237755576128980916854965578157107110455227145196472700197932920537871362245703001516088998154652366811787067752615847153601353760592758181705523587264399897617308312003880647910885436430860276461767016773736909467563476449242638841398251228058848676755281580628566932306352229441038211965196736718642503967243267492755512175241412192219090771032829395403900643930789237613439393728990322674217077914949113562386828249298897587044907388364597181783133380833133524743752189512557867679596420480081772634951792658010558296597385451966212258872405482075793534565458342769266212911094574165545710043476598709391277656790747978988393394700799142074133819301390358418429160383802148210827282435437038423258999167105537878181731918841770926978649374664255602326935733633502192699792405995332730859192675112081044821607462076340785396500814465349665625810677356201533292067688236755043393368483322182913421566155540530820077000330627320939851186332517615679132471234381620397371305735766758184803900936248921822842374151742588834241421005728126751591274159739334932406192776786698051065946379943968718968272610459748353710103892682248657756945991746404335691173558800040544304373112205213332436977560319610674025972494820841225639091377151154124053371571332333959918460400250667095706043757151458344055733279259717196357230416786422799825816631247140088070269209305779042366674772206249647867732595429204761294309526182625345833507828708887979591385590174853089034980720405190450200926456264914902654149923160088346546579207237982718246681725805253361522237279941244047892854893709667174208710408539285175781006413133968934242317240456641887596354556675262623141844812268410969849881283070606190299327310842022400989995860078112318670451369864833859370855947198695083372293858334552997137240970753053667514827445346764876801048528517846347216707336336786956114485297731619302909925092499798106229546740475113290217089848277573765455042827164694645262722536021802980997258515204353422348955000668238752719844591825947261612296309555146103447683845820979118302955027245069134554076747251837043097305133253740749664025684106544665666363325264290969011632367944888639313692994649966517345223423827481225394264104861625824079000898954507786861633837315811116383688906654636371491996087105727679397893542945128567101315215592695657337794091977398760433824696874102257648195011162644016229042536896836633405700919863359646132793572398264022373686938186130473375689068279755586270566468159434574406848019963623288330663250254586551616160195558801827778598145765121305504076813118854305470734813002605748529788921065350376407832427579935277121236351499728575577959975609293928351348899824065115791084702962668992633076472088416389424164053667588172807117673098938308872045348206782812659655729278700881692008705976475348577312951837073545593319072529336107673785660530484604639756524488177167732734238818473561304204965743546939678687993809400583372187495665100347964174333262582632616578453469317732744806456691891677359431997319850392738392845799680440269094455121370647299549547154398719951637690528901700995303762510814844232796420169649661070178842058963364506753927181733854659007798851594858466136328183958297340882433441457860579133206501009127607557071788961087946053985692680017678056688918385256747669906608567564062423752905053212623466307365732646588325963995682428242878342542670012292555269951547977859702061077269293845543639819968819382943912869101035345869078211648981805696592295038444174581879687772487526055515170678319112964490998731853845289761070693120741129296764467038664622746098465015594171937851190077723343337200810653041581580009931849525519146536565701170355134603621082511777066458707425026225717770265167128169974408156477138712440834856136572819049100281950672611599723527870390278500074539143749828991562465636293579185866986191846089580547389280444526472934760510419324636732645158472506877877694322815438114456880551817739418266942401778995445320046961643662395665457519403147081258880280873491441143455535772794196205331701797271021236277253094076555698838613781879566261865921954164934667479997819236688905169870465453066546574621917885485173415340107150175477423286443973916621400231536175688674752522291253906838930979309402863707106045204973506900338220080863390319812034684056331872481841939114855650262865179087293880474130877342243132884712639415350369688740011856122554486515543488472578099555703372195878771003538896249370464681771245377075363485584247832632078679417141862324276931700343024069028325622204160835783177559300140292450989184849101708785231158911786198091672480843387997475589308391896081744362016862278362828022779010004044141042762126288344847462882909174671796465304852616612338586444224979880617776427649121356275465704603616319781732105017866685907241374138583262042421481083861343746739918788480656834243757988934677130157610767683913261143179205242070981345390680176442730529507009634749697843262175756183831886568153471798513392142017925899020844625974883289049181264224128528512843593380094317644396279715910375532050644977660260907361428534584565100894304879307970231713778420759727084240549700718679259355632334892869631808983917271133199479996043360367151156351232265907363502220206807431986634415170531418229532183991724658812422182625213820751847893507530527824945461079089820931904730463895160872489438023414335080833939972179862432580241612142223605730044809679814210178596773312931531772082936130522633212073298922697570522357418680131537646188680362035183086604857543967711966842348771002002583179389318610395996079954348168038559142737595438794622109958876137149041419386591636536424473441591383806749658741784933596430453256676259875540069798557559127386236874968510563180424566312391201965034380840757230793129406659302617754241610700155863879666275932146085852657238241721566874740768972963675004873002039024284310365547854600010363535162418718855395289447068834445394123574169560624093103826767724179062971785976242113335867239105853188626928820766503614715852041948160300173599100528405593451315442201978545250015643086174019463478365224677422520587055662519691719633291604857045717177646001485700124085056565360591454131281590017448191962563565798485083893012670293395152651853506543889904591337793152645397674914986636384072004282893493129597066954423982373732270405821601488844632199831924912018623528737087263586684384237390429040909554585270155140823839911536390657687327878235620532120458527800112806125212244065418959254876759536581950710430381522276911912585521842378111208509441001063863887029716250691444336354715114657024603976444043877892486546564909219718234912854367891946382175058586753377920924164738327846210541025544369297968349555751401112415860159829497207087344229874944036494503016227906281814716868286558812519723681957917788876083807477152621251908186697420830819481508628786766701194253157032069533868924445034098977612364582247095650620487518744824432218472373848450745281189811881052593571156553273203264173428729326792567327746919123884063881151601133419403215160800995798875043438496502877783432480173041971346182525769460863011643058032994863605533084260383818138019498291525642741218682957789117358823099485053609664447904406765538688756705335288079361818361137958158994116730274358562762085006773449042101520821618197688830891448793465209204069791910478299283995295774093775047414991648053197017448016608348120475999992503563627228920860386742803670064594535250122010924401059390613439136108273187545721672935819266665294666313479297300138083702621424636042120528767663268765748447947037196799462081675924734861272344339187721384136070732855086463723890766442962670335959823866614124606094808588796031232810903431861096194617659635078847355361152127289825846100177825486042410090708339124447851075738656739944322970055147855828821313274432547938638707191043588021080137517738004187624066746704260878065617904383988484460240022167269128352149691022336546352056420983967152517944827527747720971173608170553089823576315220027700938562550978036650312677978926661056863457031033106411261652572865960439938673975097600947266164988903451709625906943869577687035514354916037390065321276456261145734659583640278275302177390835302103263329009317585362195946243844307167688651559419824339783606723357428196528155905045925783151407082227986754857115860215204802454311115356513759736671596110137783649539681555267024809852046513515613565259921374296692453027611690599474489162139758449963959542284809864329077867208738067831131392808793842475294288094694230865869217026810932788607812244450861655689560575351665375325318782618459013930737980405855615472416245968321936452172242029823232235660994798828643217393977046382514120741621425208734593318321984925045589118051285264735429900625746628442922013290202297431369129937664096918275606945886895923185568498598440375366613020557869447265749299291301373757039911200540835708803496365152680576680994247792469223360273205464220820583603600319249336554530978637079291604094572836925249770428591063699645546242712009051225242428606951617295015307107127472634082554430197837217663009573419038888447357796378521787247583918951519302254910800199017202392882541720055139590018239617172136330245925331515891531708213616264976413385896338630181418135632538897621341005205992927146868000780020924013394307948063250369985824220091296006864968100111945888670741889275344084530440941043262534787875263395402210351794212674227919071013096322370417372703636423581054834886748733385267646003963772888670382133822591554719943981063083735765520190387185555489864345001449713241372870674507668158444204921245685328805005277210245534242406910429453952298151203499892386294353788669299229191902647617853328204227992838591509721817125304666772533497115097970670880584509758937889651173109341527602257946324363296286272506926951103329146100351553117624912430886878650800952700231418987539744631219547550753015075489314266572287400261581572440247949548501227572644486139410150501108392168117487363513113601713731869930745942151712280924744029016932765842236756806473835881713902880329934510468901018260700731534349472775639967333040702652844356573658834053051599559992752476893644083565466475118545631435443930379794895781035089704855686355367425514582685248811593183158145651877645721232533218771743190120985435158446826086110881192824474348090563713871995195881404566158802970802676161433822556838483769093238791530551960122941290373720238836268317349715268807052971147229154215665467207808997215344293486914936884334910397127755186286942499396338906619542077523790889426519967982094655578176809255879990525952736569257123518824890784635847132275652740770845911068835554626558612253006633419728151852528552893767663253128171770345452422525742556860297701701686098048079558928818068793814570299715535394440089475651915774112891715648219814366815436653540687669520419322491646365718107192681700299058084818955402593410267869207100604659813975972948187509284238425577452331632159183722449825507627204744465628016988600774680402267609514590464920931131568411782444417258827935793725312696774301577671468658928265198768383849205575276873034626094650464076696496567296396261481115372230997884537707391443371441507661274436748929299373136572951589138680536730317846465180826861211328974611108743327263352438280538607311482452285074152119779963120655585568552108073085771923320675265294982555609311689270433121291484713778157856472407502342579316247239553342398804117146075258376081876253932592001932123150513839763814401899421827758470519865002715629239265436224643694589653877992799212926478624935609071898282237372338281136774432615004566239811582847454149639096954170556733845226011874906646369175818438796788435870598064197742500772186811663619421091135524841294632210011660856249962723921569600224620309190980102438412060044355297010407700253731664855464994951143103421219587837574491485342949720175455684847791359811458542514735508488102160940453028280023541144880386191754705525913988487734705294112779465891227448225242396428662170396523056128223999431433228903484161919465924956866991328918197434500680663227753517344034956950391883480568247074131612868818214336578515871956098343696587704969477646666694745593774980912260027873134052160439697274644042869891061231400700454144079506458383533806296322400023577449358441757134329638557839173769411004247990715662028680827851861491900437170963234794769720573140563602562950296422724198422118513145420401505694163532985113853015967452821447964415163775830352791559327962124022807945313524427204370669670586618341291347825968003622201642076929798954697053410876074790498259258416060331886236413086201132778841714471036511162546987704750298182469939644539261771497886654905458602727156716215467040391612034952675090976513683745396432012660939612888003617768050086079483638997080724797756008207387305473451679998888468936556816238251603125770934604667534577982575226918511616426777710853851911144428880288088070126664536548118363100503949745743259602783474333730491457787352399056688761744694032866968688816181515664417191960834070980198733785086732848208372341173846470035552381173936012782582933030575498827121980721154330348530034726682977485813483757328266580110047145851650832335365493777294446853597807049755773649681093340012634268406611852730555299033565778974010175292342057004596774411873048121020477077919484285876707122395953992605875023181628282850208722357120799417258678184424676391179511194412771844890670276460915573174310668131424411061082895346994225270536989088007360310482274669408723479440231466365738170216774446047508259019107969820215382376586571802007854953477315227570823479415059526071108312430820263041922811702019417335091375923910237124244342192050204918713798840515757249989310655069317579877654087623331870208504855436393201245307872527855163887825276462795749246052201911407399445615472606324452344918843189710475354015864417786940876580699469335052190220737111798876654495491645047729450136694042025160258672759946808089063017957063028925470107592098240997709635755437023279284120640900846407644294868454968231315852913694446028067237832748059171938659228369194166767077925505228000716884875683680871380715183348313545258527423159202064103373226983075683499011237885493006513654166532578490342984047646372536637808629756567798074865228032674172848514538833790403911241474216511140658982261396804932689325413449938953696309284376497639653373611955129747663272911843783492076153105085537628671147745817621590510270151485884676375379146439193521744766423991245658918518125382487509296556725506935415761212253452869857669670991666270634996947706586606636412536303051047043746118638364592642913244715496943829761718467967712780740018105921108680452522343876478885445776793387532166530230298506708994553809388659302162496546445749846629322071010420821499084713544330423263936163650395135707038620585215005174023521925069137639826832963407497901688133092573393204234481368195382241230224081720587250577251607747672786247507544211980817635513473511025801726938905874140773280714742967251812644427528043521842685367645265007356102362074054554623916595552805710047233964479818240110093900820876391074507601199438906516617781693252679434615459037280494677228097945280229621620704466825538891521710398530820718219767268428645557155127053014428432193647933322233283452008057089360079788034505461092261093545659504764997931139414197308744248689222422732913094570220533034918903015603369605000451887886703654421138444145670391344572669663628862183146191344122935985440544669419284059397475718626699277111950956263304506099047891076873364129442622160898994908132142435938173033383540564783596542193102114894846410619518122196575587547743923751726280705681164549265015636673926315548428933168197506134924026991065932569983183204962442148888596706074226196002389966100698867042829737185751825302800804635599453026808863451503955170477596889517096559786753324061730905564681190748049915014467664722353241545326882874228101748561539880936551710435259165888105265448473763394764002901004391402813059046716065024852869777078294990653104919580308642858357635279686685296353419700140553427899383722945600307105632520280274469761341858228891432072274442900393423137292494465414175715195655650926416725322861958618819067286430763424093667473000332572965826262736116297283929304991566841464430002887202831927671309960903776461361327986092774658311852798544601622265979600391945880108460070866943631394015636705375109299628387254404364119428996414930519533035413637542709973065743632127855639914298821114870098462899582834004916618370795557219791164366748144196137554832649268702036810238542564257392541243714135583770148990159690305215482059320148205885197091927923641852242582598992893553435194634875416088718073759558034544994071660491228113177490987716307461414846113009695380346080003236673905829542775811739992505400246841689494556707770380026793536664079349067654426895308736336648398919374993764411354299266323729154980217659979502259687402474249319085581855767271298968712785443494288388765056110151719018389509540499122627632767756806670762118793671603381789907213257522096293283901238153359627899001232760058590076924280742434212439222917561069260022269370005333998221654542646257887472776277181192762598312166257901024339608011933266565734668313191497440723412425305793333858714628565845484635149736341267697640388920248884438010327523825520424892601820506317472513645287159805740602438855831313175510422737360686366789789636504466666591838456908756474954406719693692745908517560895301928719938114056045118650148246619181522869455891570003017564675227311576973797007623364948440507725189005927179378256145040526886987485725785901133535319818727260936010329552034084513579293321759015463796726818135707136617581485705950982347175265525824110363917584042507644092367375461163148999170481694076105858178772794693686035014217441154783516871600946034415967309515687795135646516895850029301222068630543901713605673899769888913823323102439345781787216883473653630826704449765315215125429672051224124578530337844855084019023886627648979493022606114173687325411429885946063193221086037530756806448021682755093796011075092299187227112951858313280329795236881394970886607376023470849007486781329632115248748549977974542768654282604134866867828971158133016438363550023532500407778866012314658629822781369849868737924602243008351226497876532973812200650755971762429884750613999175322645485783461561139210586548183641387359748326390396664832529721736625048742298065513214464124380103343949046578515218882279410178040256307104806518895890905690992476164420533781731806144965117106938466625399276345823029374436114409454868939022295777812771984200545848285872894033774229230679620705878804162273278215381654728033336581356282893538345377323332495372790893437686659075148784873320891903759509267860793736038869034629504565847045465380360050961515975633249884619397203053957091850470610862766675155935916054682739584850315678964048909515836642434540953463479100158843287898636734474549497820633300320129187639134357866171311941938820483386314874450472273002479568948036517262801643824772212861863628161906666765937941106805756926708478564893146131633924515760795343726043492625604294678855188702100745190850190638684220987219239627943660575781777122302180585943408824919367384816780539337810289591406215808098860873158140587415933397432017097997917798793287329069321736926057030478352229357252225941738328297592450589810411131275772561773320096342388032847925317884341312558924537110696934992943354002451542318643352866956851372251735098412207484973396859835271717426214059253492590282142707617179059409092812959629652786883166812527986250529441926201016483958836410885796910608609620580808183924823823274765704638843076993991311071991587057631501963740189956445200401786771061637628429034358681505803570996995213747718374102154879498645745790832487919952114674655748879769664860027348285865309809635859671926507591678241072157128992684951517665629235960567450444996057874949612587999882090433815535238919151879283522727123822971474536893401931156530240074286758884801757677533214231905620180112550314052114543300700239951432292934784273012678482398899304696182471528666882460955601148333194615442087977149685508483956906047091693210362478951756756907167862803551088495352267515946480459953357456724627873729310945118384350936521555923999264931561739169508983651908802006975180154311093037324627649381407179508359150540252343330006579912065115984331970674880055687658070374422387359030280029869752334895099660878203916963619650001717335712641650891777697065535630326626058866081836190448726693102713647842984251562432556174028919545619281404322149540216119874662959948276939269229884957520514108296834404044088797044548407614672134862652459098029606143396762626400752022337308687060120507277629425984390014603912595655989189693228124133413010431819471038677541527930410071608396271254012695306365718349474104495221435261534270476153058436658278993967890794303757321848218213905177793069862324170664315707178660900692561132686203115701745700833790441405742642696371491206515820001206755371122795812780008005679696700318330278555050708889378757691671176952688551409753425512183325822460299078123392885231426397225200073698072133274819893402103738099153302314709923578105882885248568405158305581341426074978704095753565698867425303875859069024159715759031657286978826722729779219691142042204520743029383276767681321266025908324223350010398862863961144216112547339689686717793777230138431051902221587746042461108285169349824938565089444550011773677671816809054944859103603936306524854899107693924946740648522047687856013311178941784568444879628414425760044264096049917536487409697124767255360451799999603525299732723589304892737478482889519324670748039481298844473259184019637690292133518148084451518506921120343600775736065710863479884898498658722727826037110119383325887986825287395641725014646169628293267726066374590730332929212623831091775600204199042250280678342565613691309601034388556367332419103640540246542857606337494755460867120318595919075536093139424630394496046533201820003205255546354156848950277975624636731165930590259022437247011510100749102195842151399251929458448198315466227058413659927840289081786884299091161404527999964606784190198741217776632490176021534794975757789576904909195212363151212118949810657615378424627876903449263154148035072857288505639023803541129629083386841320198074061577378597673918747160335767888418989859246887063873886187158033603518554369768435090463404134847451072725864071462518280070282499805856874292802253588815463230895657652105506186080263092946718365266278582284109528806676093826133262108794442562016240453134868246383854710353502748561990288451284391329367508671992544964950168726974262349405277342124685519043484644079691193058592515690510177839852834009781594728056584326863623612977389034873697680370107408401813789895652700940409452352739891729172977774966536931413066010919305489894920381939332424934313100309331657744622670895798719067815490055863924012530570505560898928940792895186051632203429016051171520133943246314024843923793888635346940898253886221472112796458426907293372950061909169034392109700496450779021371313284721939380913061163702917716392600366431243776684242172634768753144079482089643744172336046985818369949266744133850203875533310493521787101413807086861429839956227784832737142447708430181157814329369913590834795080732021022193226817066530941554551940105368404466279358547834751974610849094857539053440057011504995044248774311560987228477916681098210480494110079768159330973857896258681067861088033990096948867665485736082015069499302901252673088366372399530724362403738704922274333646819803914056821696939709380305130317915952384537747924176508240596792213720198535079690721527336017975635181616095493708946208914937010183054834617257486666207620695816165502598938843869011725927945722835833649666038199285089535056829697944283777226355096409130460597120260579869607929143845571812183211647668066356473286413678340826512646801023884474228381310709614881488368820599317771644564711013134249561023292551151600982232275937670387672048054340399983388570476837965345241086382319290785240801074184257469366798943504471007713723224140008973327673816532055800952781638993212549408461380777055186207025937532995373686975321759089295386017159296607569914850888547650291153208788988779741415301058606949225658820183730448174558081316733293049717713811063374852508077795811337290553779206384732094858489209455249891822211510473755627641952439731364228097432979656928411793000912819751437380849217654072911353566568314238622858878574850025103949811217323535948912724943142825913438521640782726483447450803290345169165865478825442600546810074859390869752551869301445115766431847708989395803101756294632242217367010204558258217918899350382352072065030437607615619150183084992689506085354134643426548217466229592613968595364028714486242434801878382089288319146894717327925561443776524522298569399717508332725128481934115622188004812382992946927377855491973117822248005927688591283420261517002421237377470221139567772306324081472879062994650282237127433902776198478397944468442292967691006371753384413135223254185764489217124716920928673523105229073289156996926134806711325490334928384410888517901253873193604237763436478740485805915064238601775483786839441735476479161197159631916390214944071939630686202272054090491509511405292061375892572507703563526621391695265143171562942194800589194705828427106498082090095755783766636558947562688003157961661294662535124180906037595776708092303926749220694678365476808719078938641994112977566670193145766205568450171021973527503802251458041190820452950575326063010368797382340519872932457075372095258253553751813990888588541154389158138674263259985532770952626788963640490613794273674593123211824400525267882212316755586228228295718298674424040504554364864091156050656898832373447175926167499928185620105635746555907886435448245949623632087729201486163745580000171047629819746812782574107828973029432461026526236976063759719061607737351835548918169658288537545237079831831416751569769234035960113503375873782755672037681439893424875770183513863805984187476732845483169939650458652836601850610136316398833654476338825646169731010138744931614920804471401605401344481506563931541830127889509883524513245957527868360771688416118100762039585229751455617994481728853958580840495575871580722643830451033787620672294289127042320326970668316472885113145275394247367108177773495452158267179913434204991655180853507989189930551092000197544378993419306968506275510750074170982142129504578076995152731101312826860263395477340141917466839159020858381228990330564664314743312329135246747675916547167586618186179925117025795306106724747195144535477522691397537747793199076283624815246858571661589148106646974111293801188247695271247297682766077567754035474965473583359323729546652342664022208455296088215121305291058111572635278251460032699524085601846637659461630847378123466761982527367818209259685883527588631809676307449965595219291467217527591619128234323914597570536786089567976025569980642680991010802363217941547941730638638032339420645577547599703900196595860630427016685537933093346105704114198419532254939662795589736891559651671020304691720129480316060842995374915907768918379874647204733005201893113787812546267647125229179186054809378639008101424870878560520966579079437478108415994256422317800741835792741672310690531822799988123186561037030425702573515610729097256047060046290240514562164714470553439437705722977533574183423628716669480128296007827040720715104265858411758134233225199317317792805650173323763043487684666398841282148163527594957102574904110173300064657082308756615645642208672738212331751351555415787044876327258442132402577990387157064752400928139762054931268335599062654874281359346350847997584211821047099427420139250779606134120946463502414751209809460682295745320057394705716879272256036368745577580122650860600468657190393444170356055684326790116546080361751186380699029350774291732987252912451779236251517697805836970338413204820314535393830208821503949977785519833306989463207591464526957291624413727839873877627804497912043234995590640311116971155508903692435998968656027665852311385378452472526880962168095051003622199643369741013686775025776104510504230519342828566203185740779634988021463105991856154355188181097668065484496502866740923658341272529680456918433272924574278396533651736689932800732784895314736627266540482302609958851053196466509306295452369791035477456359443411942512378041556992983710830908707867524763062973702418990434595999319868376948981690496862950055601956724264515658799147317549920733953808308370204139529252844317780455590060792042593494937069562696834147190471794206415119330928591949313784618397116334379699312223495659780065359482607878984658525969983441664028206307578730147706438127182027689335873547662426246289239400928167568801973465438841091005652456595622651903946018219814456879634683253113887444847972057872395552621798103655061054146374654672183181129633139549327674393846634183783163521695574479671486913034653630573089244378543481043541165128801183613632392437324859141130391422713394987935697964902491166062176117507829444396914501274480499900108063979804257047420200720296278542464674180671360222554378924429394402197779797464023994283033103597637525892283988867233860723510919878220031404743304451518757610587275110701118901491881202251946120193232938267077030777308589564902261187005631397264712866034305731392248216804747624450482719066330220985857535194107152127250724422008528491146092302419025567607478574960164840939820489017858621824621138101255426277655105278413683258594132114045167718829491120153631006899391443749985231630082803437528188164851643312035040275557797270201774305166973579850288314366590176438723872855990857657178332601322465402056947230109947515908801307453565327837019179715515683636740579835637747030354493625804823269369286752049528898012594666633496846753731144475887375078731815288991503730782855262599170814914000242001759702719186577008844655425860546830358920037379952338998522197191867866769390721517088156880813654722724684375367020998715444187002866547230925322634523493277628040382611244156184041843979817522784668315511240255829688690687335580324709775470871180188116764551754541576402270601775813014595145969380968248966638239439072918023127211187956241848072980720058655957965510970652521258567388971974788679352989497382471632894646956658847972902828507789570280003810602404928747787681529674377919347890155994876564685886521767845000645153301784821297196516037911029913791410676707696035292837825129095968476527037175459783269967568788680142568726219254270907383518925556565701935326933580286086666330051624869461368180687247740394475494832953594992424322862123118066581117490674447955047329901876924458446337764406415158588789703365570445551253127361938673890989110531379782122162314844202453119789177905567152388517026319435389986546226752276713274208135459829856082563586217616676061418138561791301862810213143664964005152393034406739672871161277292174479888076135780749265373456978502839603764148102648784371592567325832278613095122954625130109641456039336803963274107346098135038430316264099909086645466889139578138621980009816469526480037013382283433535409115223876048409504997872297193163514779004196764644867520711814682434132134626500969414646544568731759159331211083586076620683352733485333648177937845252422025540182822589299783293490153818733395904405287406139017178507971348201540786955805155461194361321942937786367084451200291344372203226699316428566579730366673918982144304554682189544200616491802697406153171584189123536525860362364141362436055694752857508367043325384056018718793531342716859470065719871620829904865519423698043954631414628960922528324891727559585446047246939067864587460924963348937468524661548059115229507518674093412603877079290031572362522307119898752617509047696764848670589410802475787265565667735135030904297766234822269552000073950440171519728983107490929729306894294016488471153377682914982209073956375684648492631224626179807265069221342278610815322209163793575115383867758462864805594836621449569241960390935830898344662167761716003999510321487667549576850143442002777331357267610215248053928498565157924972252788472027886724919559644168150995395615938040794846507622886289432380270108898354523182419821409873574400111469629755972639096817891799565561068901575863147960102040972639847639672173907015099949748295434103052242020500733874262649704910433301554925780446972895671199850358288105556306538487968827899076717038956959951520029319059394575193984220253579080702968252499458027398649782979686981776391423709326452610978184472322366809435455185067937195573699996814644388215516577397979619451033651210622409712802294595972300949455478669364846130703209037518552895840209693434012408831200314443676776113157034434479152111553080845983390884375904817476354929817017107642407604533705582387973187135569719034380688729545348644373227996963156121259727577725765119146185419884391744869622973723045697182502166409599393305254530063982748850964998442904852883247803477249908033424709931913022963662610633416979415838279165705119646535272640335703704235130806376810020276155128264569053692934439091782137685348527405639203841965275568527469225491181504127938959078821460450077924330818379523433749644376205935934149986031078960509887588988887830048363184904487047057510182235446975499515034122232815354224342506908265196150972165714878769594395441461923274140254285305414312538022962531743556193388030304749429144585700085704070466827241165674136382288550881731859483001655333677239755327788496607987981046312152110798136215801431683934126940552547707655835285836261339881007795522830632601806226441773234168739669590631611184652055499874868636328699000923760939976283308927766014504531917139594457484486389728918436912202034815865468941304697585253859953718348201698180320726258919716636021704430101924538795780105421072655981506636541372209980767996016590664938722988958720533160257165528214781780406604449884077620997029924606835191618733031926780804466895576855684029608405693381745656664374520724738579499682813255773074839987134480785802405624837554310960275000017038434004124589893928615821532863547767469092853011297754219249757213878559707207374358277527323571800906308430706959537252037525401096656574434883942307578615120132470686832665857472986847345166355352835364477255268471713617367962619723095166099132753198109964674784120101004486547906227273740496096231089549041712388729877570989716671993661004870325571312870107994097160528021590830244229045229772636702352280000468802713083725731709535449180402637136357905038611406588652982537455242495313050633398490402386891859193242431065351629067694838232383339003774454263137797268921583081793127610967632052279650663208867641607308189044241376245547758934543004333236531412614132988932512411373141113436310423309927284752065433458453696237845936100604618347428894703650721708991154708308612869448410463041317966622010483446990210134222574416666572989971030353946492382935824455833228241837821679448923020902060642266872489291257939908123110040475257418128887514309865749208377759573161983829625810164048601597037665625913818133344605691796880996411058549764664639479897011749710307109260745422395954442575876899326810573078554169036567732539034206586676660955959839703759504866978871506948903449676187479784000881134380571615083669100736142222868316682746559371577148239998262273965418720966709811545101476337925302062592909525379947476657897352944710727006651313267203705878144285362244627500412475589568658171595277106843183427058894519150471211705692273827765903843188298536866541981401416431974617991222814293717238814241402183666156666833116549548939942492124496286152226827715479964619602808257830431807437702539998132436662437655769555128368238173432488249063419458280985707155979327856222612895965862424121738260331222282794539706530367849934095137072442857807878693968309453228418067590927320013881658034930744069200336675835371549782391403586060391051098573633617564220392741153242310381788520877274235150397212868816840976608270603425780322009452085642932750889595607961883894067405887685364622069615306173780032038302229072031126853038283775843565748708685843789570201878657298368998164039756529189337672938406459507308506389811503875492070353190830758577826424455864620285640487256740377780108636872480154475402736254384630085115619813074004799015301004722800804608918024801467725089593499018415358693259164651756900637551285375938506658501586058960724480198864030951488369625562675661842780405220499642864363553953518742336562406863966966094912670519395028800078339727565087322655062119652556366255517976127583316885411822604181567589423530623061158571336694080560439327967866838069225806744500445857533225140501427612298031529840054064299826922256949079782138141807273253569160166355368036211397005962786504516186850572617441671206515589771690747755275543715357275109186709360068931031553417577565919513902369320781416483349046675198249256524801030295353573880220429941336496822472227309121127389156418901874138435567868461782841559204110200188463324998516244258850749037183224005938535869097703282440741596694858548003656199834153932681335566216354104729573676585670837133008305932752322034238152414188955138337944244001568044267250129370373243214099600421824094794835659565528913404642924146807453949235378788057038266764136862828252777461749356660286812805178548543247196866577078232173964518137759698922739578975786234793075129337116762448571897845310283423304564397443503475938707930862801561480743859637761136123217147740037128493395287122332957556375442237572752723793362591621177587427313630568381162900063654540107229402822258533900933601484474512293404627821993840843449146144008630004040106848872018007812839906178341253647010376836885726782695636512027037214489843528128783534831218566137458624245821219161010936841054407366060709196999702727430788312940284945779636172753380828214415763799565602179351838731909401759761356603493864867868691698724876894629934055616429608833215301288742614814491136743001893105983697273741638835875930829752725019418340838187633016560218987827034580023864351020119371754762645638858670883764530189808178846268068382628414814241960260170313050336229743869203554266872135719420503506653451280490607386502886719861441712812887002508064585739768052073485880578383483721622253324229525396224199009456951338612659763295126211079446874079796241469657964586703142382441771516821378952006823336607165038350167026503222707283904999175073248957204874473659822572656355248528670792559512507121066594808219734867036166384669435189945590254375728462795913256748059746789939068875783845460242008635224671195355689796815066149830114588405603289477228446208101979661646005566897534020867038082172393671402730784035890649109972733064602751979211286316545133825921843439725208430446437043175720866907864332660443671645612425762141256258710987752788767614710788654693357775554683468002274533903494390880390692700218552521105042137284071986460944542270187555463514901721439159082861687408934244028794030905335800099965167561026562880665400104152840941500247888271469117705485549148480822805910971700660847094923889517205700790759847624932217535458762423435779418953721522469718926870484668055621181097886764736141718081699652659455296997541354542058755993828820036804883803023473575668776739607636175778477316833156786521733535404454982269428799306272417797245540985461173238765172425375281406799538336124448423239669325408410005769952519980139048824624736136118510847193417007971690765818099040233289526645611685259689422619860733696855184919865858684387789000899675094096751650323156578782928874401633744310048733110609340875304068803414634567033055499182907906942049722192494763058506060081154552329602225742081080849106766152629801597615286752031319760994635899861466891880203627018230002748774098198262654580695927549766998221670044976262099718953069317617736088547713355425795242200792117068680527948555806015671756730500391910469527915197131292645970609667897465240733091103619067839911679072969431492674363021104762690937696057165500734833588093538587746042400639223163053274231983311619942230440957205687261149660987691352675565297561341517644551203038251555129239547087652549520010514154498277985468795700347723126125872284587672073699752523554592828947345716420743654881415571402270867272200307125423978824772161678576968321969631558496314459173808963996802252239530714490230933786360308953192490214037732542591254832547942888933783221297171032060083619995684253221389215090410964106651143998494934493363021658635112415588101152113723666681135347460435853030813358116341683117374994756760935414438343306396079242285554302365560342386552341789732673882534871147902876745948205320771960505015836861489749918953019398139901245223555648723008376565955623708762851146930762373635620224182500307726010609365288831992803770161860095481559500873710961777551481176127738026264458263642877741595426427258325924753072174338498235807328671811456223447522888526961814172827289672629005192069856479541529753812416298835139453693806788766998229891671905028964376005911701935070654128832135574542698050376035096075679324802702050583105021923182534636856314590277078525592961834101377651776674775825122027982656923902870213028311264272462529646868379693753699651685507227473812265111015952249947158637033871901691806778661261280754483614458678828011724176271790177314379991664407490526529758481526582823292921580026998026268960667127906428009578422831779561130891718677394678612579513258168925053530176870859868038732573015154634002743685509366439060581003519152096669264947188042924344225284513582358602970444237888950501176643058175198210912645528660524559441645800713804428914701960247853317347833666062096449347627492344768565635913719715473952665105722779010014186400156708380172927769518458928498926770804462945288289434190071364861299095752210358653598861815643589695479255001889153036974426547172406779193657434096156495861217503679278505583719207252926676766342357509557851175378694063699756692176744954154843178713911699111626531255011882201954708915184993951509978644699052495259966799115668083641846139443919645496622130051695631600799640907388988370489791344872255846118550050760387119208247198852925807412647914432160404872642547969918860124813600729057292153571434548735985365250635255192905933229930535820521168922407593688340794956109739564336902725886233074834921315972992703486554743469537257145061115899519182976572813758522753871350490397177837944298821943134993291224257875437579616793975094815279941344888038150846742485142831484573098554005298075077502488888654028014456723529354942698371882523160611719548312580928623191319457280440023972625349553800827290637093159485471034929490652302400885260049777472356696840448179936898170830635314711067898402754607712180042076202092189075117669291379307265863646405173955420126177390908367317180152587315888593066295114082366448726480165697771173967497858950959866275928592964237986953409298702755604086207462951928011942226818085226598382148310631733984899963946933563252952150558470835603173010339886786294045850485101069674163911569524301994899628540982542865988762315242586448911516601465989728158533180364760181814730795650583091435215918182684548529959555290575032866328744147297019277099747449212649813804098788823598268327459611621886592937218801238153781976143665386147183602263830837282337201894138253833039348255759894524082807074716905625130318816004978803363467183260536778651633443741195576881940407532601485765385397732476488224525961119438752925284479274097701179741767243830014758882649533642651665386213330626453178569655330023477428121487382721039620086155990945639718510880418620731230200309816231424977556171858786026179930059853506435626072621262060237884216971947352812329081906301805601498733137931543437819747944112038776757790623897153561966175744141861823856265626465964396565216224297642273631839207687564116628987630419392442896417732153618547515733177520074939019776271614005416770787466587390246274411757061890126292083117965765585204787325713362175372878927502327976668895367679777290092805554155735693439181632696503637250025548669582926243827143091413690976317615975538277847985845350693930062663695324652847365301800247343241935491874071316388282707707862658708852279765539156367953071421861288553810581203193101794453428443727213856039895382259464802202959374331827444022562067732416714075913771714771415627536540113977981988833120376218466107214952469622030023763799442252592408224454704600420457330676208817771044729867559509442088405602772563913340944349235915359975093115899265077749897653930344975914504004966591224532389129519235916788664996327164261074180388559169463545915822225598516268434623880393026892515371292614321286312009494500198585228807132008723112461874855794480036155712417318869571583491015080384086045661163916052496609453546945924401284477516355432444643142482358640505304004411500199592085535205312131998091543922538352108049354828957316988726697977232865409745891497802826400885252304003450462744424722040141584871596866320437163123743637445478917830338952388929802949816797977358749686410970249385795159696581820720369685983976985224343735850120012693398883846007550697143946349289505302191892210695506727180730860805486433348702149306117354665293565691237662198691788662544915409479401414897625218185666652816635414677346606606604550637054674037750560588199096626044087867574370666457269986621785951945677400405857949239233516347231934161072463093876937150520809393695470081699020954381926561099891547208222353479187816848388340056116066183991931699451483038121651833717115923305159228003257620641028796885449002607668373809033314163729036645184173494911366473084775273611981924330497348994017273466350471972722577367038317278443444141066625799430276461056059811834517481483745875589208142280824954209245344874321104151676499692112328940423634573620835092259122505534101220587023658146115406895739396851167412946848951010248360855459446523954240018965078246912423915980493891260507964425930868400373669470927650796342989518204638429698766950622105059286988074293407668243497106428149776461538923330871346048460562489667920802088450027096064487308151488365327868719345206608463336534163918539674700225447270738806360905896719828533868407792887687219307384816869793105430892090710249213885072680645442644048876814784596174754902526666680395025208567593292165199093024808297482280572931558212407264496725217934640766196379107588883627236644053030051581080555805254277651490458983652535956659011349181969859543324992547582847196134218884404013671789755616980878969020500608769851172508872879363668682708240001771325404030273715039922158687215146985195704409390929847842536482603964985449783006989897384270251421084510254194861095651090196220840989671165293679367796623886945487646330415543332159696334692871659578983258336193798913038211853299232832712286318996397642785550575721724373904129989767454518461572974671029910610600485962378095727420746344283511265914075896483911292289328493873622237647739734861497466710821988677200445220973447967300940117214597319229401737879789374322632580223603655730306605065819554966491385226520200242127916001033872270874056355745914052217466723333744054680826690919197655467623786280257301672237806814643352724723838960858960407900742813189851140655471051128792155513600437609828717814342480244993983482700863628374017159741823712768512207648938904770528219906318455864818043623793674642724538293262377395010181508317615678317947105678934893902149490168184700883708013080677324565256254813944452122904971473689769556427298466949269841711106925735327251570960199798528076524927172786698445189811353683825086315539595082609698214991117719518323223226714752724481705755901347318482662546370759610331673718375621351992976136154185724491239704141142658278044329022730460926403564706571806202425512287752956838743014409453125813076841220964871114767411423307288194458397333529601053592471900630078429389112643180508143277509407420913932916552295731815963632612510156566074646662523835131469332090868282942514349925905921152341303610437231126780700265730712209111528241282768635350971103972444522455304054198839936445614792896511112710146364037266508014300514972955713929587129465643223348642137352831597307849747263191955899330274211626369861960353404386295917530933891383164290131974873005726093570489904240109167381495494325817047834369688443557383986701529032092191479931321786883437251059175398927228704894076944531189630531090569272033064197414693468309598119146622451026939369789193949512731788615944428282578548845321070357541954216003119899707455694947197543059284293213390734586529997417163044240439827420329312839096323306172225647911405844391254333653585312855257354394962393330235125450549160901510530189204515933769648803119977894943102393522098441001476364820322472124257744188822856158091875964473169900099298111303771090153189666861880820287943316289000049307612176607935656806978641961830420505070028418949883310098030376392494967396140567193284027698012181927808639768522474501573246200850674725876334179396069117225871407796901313115941718499208691639495472441054599702301185474126228803993397693054144221548939365154259372249051755057338498439280079627051354618490717802301612254813933789218365603237269430823181330156448286207273177873997301086565331260638375580915220484234864628101116956503789449149061464259168887523026799183330321482923677181381688162474816998586968308074739957522837714615563435579556318755260433548732250825827692853851253059135877892006553744453226754054189985356501762411030028752885521293262156144405974895672997458360455504689460870136269948469768472311367172293772528727123525456904402241841626911640923062204588028970439671528127378949837501906878221548791263634829148695725406532299229699870396828413875646354203427134943951223560801345373087836692521185303133917835642427038674979310662342707321944847936289590924618875640155879171767307317182812448033782752590786385174775568795502731927923636367112632958113226805478182642490021492851458688668093345123800236184009926495760891644999956006344586868365880935733087280933062605015749406612754482347011244399587826264347866756671355866423037185266741926305873624720611638317290067790646997311234065413150128938958047574579147182633652580299190794628896569931672430051006862303006150506570106770875588710638330087357672303549307114705341156530193809057039716446067322213759389445862225595961129228047723245067872591214163174008279306939031857676504610926581978519066042135910141100264779432407336661226527729787268148287409089801777306685696778644413050912301660228362691328019170513673629905073300736630288595187328680871871115016994847658323807559022312592199018736856962792123043641297395041976696180000273616043546450956504998700811573519511705115858692367392399440144779913309220683910047316499241489340401895048829178235492123911319089337369920607916472712675612769118579749219341993295282479758857949860117347489540346702925645405841642389951988372719323458408985213967281842783977755561258400384750302480540319012865984671558543307784670586204268117762462078872192950134619932079237194453923966067042848844207045303101454329236256036548761735190793658769700242995078571277115757554045884546549186796888586744169881757825485607384038412034768693195391784872147905651813495099522389362858182251500284520274931090355745301592146342512002659232719393006396375820148751068705049261117751809543640834616276569303110062848507348816939254254637736169873586470019100291530189610059725400362406880920926094741345167847493571412916919877475653748797729389807342587709801717178987075699916944224727117908187073771790221009466833678488581708430891710719064523819382625641321905248910780928862998492336791168794620483123618346638056317475693150673020550224344671361836916934998261791913893772408669153208958901978817803610498776912215983892204022166535613293923971433630920853691368761865130567909617897015319907073927895946825234542738366793357776310164798229307060667760346103215556450714226289884660318722819216976604220343447887564588158359574303624070503712981868364745281527822633683592013253541304889476047367629476804768948588641145172096066015623387838442352165444599406700675424845809178664006075737460208905988257954191566084814537469846321898071955997236752436118717031969912815076997177519127960581354431506951182170231634665234492624481897492635403685178272777844906905176002130949298239214567655410110392194931646982716142643630358439748107095403342610627909016710206388325656265735978941000333498889312169163164841679200440173293752473600175067874797253813689152277168913087491750730403817410078038956903450778513369233707412993367293217498786241268143875253050318435998902547764155861958202721126282532932544927025157540200033636634803525697081706649502006107606256308447268215262818315545143574417709719271119212316417902579172273901159433420418133934360468402213715075128373044163720273420002975522376072285870679201613701615015610740554090753913418814357522008084920263569890938047253449678303215776898301747197026615535948668750447139110606183625904047236227141537253304258579142386376569517997141595854279454251139461589375228925422109529535267893481856733614977350038344992990552394061371293969657549560212838785722370150630195156311052600276401557006972417662286364794441676780035116792273185549966623739368115077562081103840575179654801412142704567898659732858151440629080611862626258767644452188280930104876767988103275853799821444695395610563924838630226985509390432824180231815063443279106554915763117914148688923022543001128536520344592712019553308114123855260213672313633289842011458255657500765853376914035767202484897694066419733109302833424645185183971907980066890549392528516447090141614064044246202381796855984134155502054227955204702862755032563450665328303717165087198651235092700233403434619093455613389741192108327375947848393369665988225577667682899991592203957700588138805584511945403118453930379130316799584536940288874638375343650649462500781995199271025641525799289432891300097735532483913325313901147101985134710423572812306738687112738600407621293216480786325331479753060264941394940535218992735642490971595873140180274762783783860742593737150922509033078918704224445516856757048049517721592336760754704077164514222819990169311265185156723920718873816589437902902325438163101808932597674040596159022910892602031789502153649412793405530918986675108612340926847024565713428656052449480468522856427762338596774319250105652786443735920154895119078016145555243269454428436570626417458789781919693166720473039736398654678472715324144432522719277868913608954701355296753427984293866032554851511843850330497020770991508580896461523036439978899836453302587382718412043285480697173865927596634183205161414983694729298306051387912709098703115964912990118649486925401594658989235935635773409072273445469070280865721584552181819096382994006328755295892461125767272966798248926340060876989885664278197550776734833025331623229644482982314065403278285406488056364776353367391621315114658233553721465399057958863051333215810153528551570428201017658838585712672780781524340322573545779508405128554745050195101430577781726015688214299923901024574695545969399508849847119241251549085875624472608957089930545377917013015826313305960082745095651691198810906412376483907024479755149802999149422041439352445919904180067264485671943859650256238401251505286084260997142292403111767286794372522360752959558280293945613657657038008100738567298342423244821095756848896370304570985670127288629090166932167452801562996171812810150507117600739837553795234447343065146831129119683315761741320079447894369412816099210446275540715549176705748108047558101301818594360591242271158856231470273990423032193447736955330852696641578992003157733031864289180589948409110626020517215144084404357369278089903637424301982177358135522351304307678698188254320086896134190190167929257675799438334209495545330814494006781693657584899678775319548132984229727979526872950356091227389625087549896561239654290421010206011956543391511324019931444425079764497832723610922061340895818736261184365832968318693816948984674409220034668554537347519970242495600534727372256718909461988212149574477014820681596788790406971322993798940887914802387642587159109604870052485250161015427094356524449743222424740905479186251033001955249411717292237535650062502639642345440299846631417921598532339812136534876426796058656509162597485602663903329994551820233078306431532669292779610454000174993965221900047233988023176139918168653027576983748272852368403925569523871207821041418706716101671575079626317652231376643575341366408693189225652543266089346164206371118375529911840411422310532244411970513291256412093822164190699462337541966742810201498124107185647432506301363641516685240594981838996158347668059339896955667189357895805008018145247283098225335376864720441604504213006237190961269658627007949917678387881232072780543796855699199501313874797525025883271792889719936900184323732472039601855768689116175312993727777707236710695099181377534525163090765329730005380082772808650963269127228602837347678806944425484072958256410765762075391696488310452755294879686993885507323372211839110711450083753917441536891369755356327661461891069679656712047351562492919841717124650764481977804147160663011963166210183446789567921380479356519878181421236302976156723626404203194033274296641825796697834650851798756656220697193379044715097381438777521889979345551999052269800457232557818785648904303809551489356861286038976078297360624402897443084603285135565252990638756547492918077701459781443106872905540601759506756686138470015588092098290362588072887062923690106921313010790050418423204178154547783123377546713560560174039968071763629732674759403160089228684505302696525839248303270611776590861884310734874484889671841848699783177806449833102902394711892889579197082326423256278029980716391813502683136461252317205478866571720148240236774170126948568164772364415339403897701256352366525486010300871847638713958080301667072270768944739437154787278255430754799914930755057046138423672773764512725669147178855896004933366297723349372280914850926426297766502435750993681826950873709873907579004395654689212619628593851207145815574982191603715405018531949262027427594585439977226075044805912478356224685223002272475375686517949223109545913582070722894274749911289485813173767281237215279415391541027502637705043927565875985170911567508194982856179070587205204416638283925774249880138308789617625684245695469384260221403067602457715819821916454634060760613131483778496908735324162996015099154247405205921178808217755535290758901833153054359272385650771732202157340198156705877025537397140311809109487719187892295916517574068281180028264466985859682282340086466357700220360588344125471226258183362301944439746381672357297198887961508772952816887410459754646633760167837829881371695365642453230675343807964531498771421625985386222749072902343289573259899930602877642253638117169585803677943492184027955193563688423982122034656232937255228637093038406113822594338025145534864243677190380680813221413749776065003599632853025746599169883833008502076710096663444939376096919149951981924728009075399673209056868784910420719853436651711579493906157372775226229440864529697016830834913966145155949931292420622749558681946615591602728210809262051710630200393001924324952339217001090288738660609167803826266023737365467566308814223564560374601651447213867217411287539075214173461129189517583766861157203660895183582440227329823933827608272676783739621691587766747441168608559970895851099299960660782042665184063123081654650037050188959591118682930463239794680919500088448008409032051902772811208377154214266660150928081631407617724080566570654491632290377596714872243279401303955582682973691184472022671441858408633731676068127255815632947760928928836228080457365242353305375882657865083564191260393501525500220543023660138871746233033093731429355081879384447240034313551151839475868584569774181164396676984807119774572307662394828635880958228482354581061091153513018479291027860337874672985727614128844179237373611315946993575849516428803324681752659959494098633981003510341625305556497660498493889546537299817521420570839885828461187923556319767915405985377761100772501253942187467152129817317699776489441402227749352807081636510384599579501723207277352315056141588454242787640161599896613847843302863784931203262487755796361477006349812894139714263569878994981457563195556696085380353070902814595810414209009101157474980921963435674262504330868686717054869525864600417760439822434060840245349317471107192205319350574040969473921123553291254615137081535372494747387850058494303596019159131246787595478762608180888777799196849880930561885685035116793167135848792658810132818521962537616203413197754047126723756305127191122147640987449465890958561096342686690703521080778294566058881873289035515873003189547413366516948451925861002495228575145116756628730635781090697976609951659188577306132129573848220588000644240498269485751138998119152217342270150869926665196806759346056990789567468810333581486351371520562804195083527767317118097277719490874769807432655800417741562977487712527861986139484763550832203518562912200679440504901761832192607353077868567504270506259349763488882720496434854777008953147029007395272102971610380170673276429344541510788647866347375112500177642330237423941229072307007971094195687263873276391992310749420500800596557852510237871310241198791849074856694813911723350337605588207638356900099674742099984676690067737237685986802135711879649845081462554238921909129184930975449787614179279033026847852873216368080901549238254144040320862394903436633864371746360384681202269360067153717009302220969678808629490637108822221526736108956381176861988094374589052250258062610185648569677106479298190537886381189149880065485705027933727772055426975559673882893817188214461959177879538028586135642835563895972246223818256731075747643418827037011619710886728027039170803981229629060199670816244099619900214621192483713941705981124265761347965580918622919952335566617468505919013159326481669453191941908360598623220620946852475423841765212488050327087227650500428126659776334909056806824562888601690761150912316659393730537846602056711449769790284504349001199628213914626881287622014005370247714780610519842828061159649637599967323784012936160871075965761668006262864380559310701842243104943891519931198511903382237133586974147754964761274393907315240997855163312269394109231336937033170468766974262430920831128342779989593676015880156784381466401070358018644933106838240577752146233835114425492983966311876337655371535396612343407334638546310691694798274940976585168326093918755280674486210485303525708200917697927166015719936656261257253369629842446084141026185257175133609864443073504235252513237216629482355471093865509853492071937741372952699651002725533781743230193063751343748540514320667478976812891598786974231240145761736168978406783748070277790325696458800486264626863059342892187057321166098812130707221503099483239607220213080999104388930633457440789226871592774546218285459969384828353065699554779859773101904493615825695133628620860846780299305977425104866630325329657890738943675521048527280590482638539195589755705998538698635772840970194116911356820321359383239242562086832231472867322562660924592014416520188314334508710054043575650600415882349424861382222688279017935647602532254513604343731284482712267483888795065434861751477735582489942014771332705384401138150795248430439958653173862858095499971816942699694757719071200505710640685332280169053082348278125453003168752102861326094958154726932070538099390462836041599504156744183647874384389807916501955873489674303115903342120765126482579500912262394023220378425579369855563320164527194084439375158283076573894537549400850606429969566767952051074447269291138180257935035300563434650162630635393739304247683929622240003625429421886637460064881929715552948813316407702822463321735845962600918761772857825320979708989263632746503923747509653581713977665685766501244462438453381593324648252959499627065069727435587888553295945523386274250829951517261257273122470829252806537203494342137782001952012410962354518795317088109094765474039470137396735832456805431467536445810033051459660399872595850628565300110662435813918172191126242051929710067877001151880621227158066003738292246214776479567248297265219310396260773236009052397868474842868895380270844127890165962255926193971476335808621800430866032436725387977024697238022019300029109220054653113255364470690749004893396585711077677961566566374319467636734988681549437835237490872091324401766856341732061200368547560749680723542704916113084967822041037993134356154920860933293548005572675385747636891587858615071887502552358724773426106236943290217611771557130479971649741961161641943469056009019232947560380550052343683125726085671321476229676515512157545079764426183074272583308873898685736019717242146112011120513682819418962629623592156999595563953212980057176562665288259883039130445776564415522843160527701606453771205834714633662446642512465116493160646769636317771646210078497012078507031951376386622251928196627845437854371204672161907490146579754587796269779249183835440303168482121263826040329909993621489854817120215116841067926160268858230818602876281593854380743007116147959876805661564229259148052513759851539627796451081340443846036104354614575056078221726116579954101869203416481103430622391593023238349268873203779384219188276117916597564887777198651531460102442276247088312965111355423829935168179824475386285536718716952639227055100276378688542461065986473336007224883543943282988323189889726145107462282629682682788004419554385726846207809386203494026024130320002996480779732841715560159396891540711996320387227458641361777346549745421744757713599847119089201895279447886372329312140750593087223369209891880876906830723200764889129160302685341281159994463057567248970774532087888943539113942161064975004901525280093936641805610551432346818303389425945758014419601864690337812532890749219732044776409043463313024721167411689680735763471002768112510002156321577236373663656004828847856963313504514136336562816835348489782954915531494865886297747961556076768568454111034269106127597215665397110195090329306270860411403807595309114291391281133548406781202251735049393031316013417552713119942316376206946779617683883505506120292269438134009166266560616526490215044739252596972627898795630633376423464880922730160117043112601686413147777201648984225332271148026997474980626746332582731514375948783764749365529668458910037519146433760796408085515303691371077180260736538808775899508355081189314156108250629191255400144468850485702921619254585956858190110612094199130670503337686506035227296499257964845400561729898436332620272026878064820570503543286757437519650070189821845867378552193821629799455302332885534940012335927784831280176039246740693844776200502419886605059759436137746857401219275204510878807713472085665974512392416299909983466003145551327493390992596847857249662884889392874893695422419896377139832231123705690517110582601406033358660385859923987887780304079632564679892317961572457733628041062809127624968566552349522463590511575483312640767751093994444477812551771984498198182235922619738983511049869259190538779479920502559244765979398714086261159209525422006602678827619322146960972147108202132724478455226926931527865798990225152264338554517309969956216967876623485735677271612974944614067707865971805508864156504300384479075352610414252884153917891756233245071666813624864866955346874423413180729431499427955417005019801940275713650390551225835648944312146602614997104554315608402381533475264215938408025238959631131346212136551419334289847041289288009318384568481493268699322238125328414888021673515136007250789067713923288571486376673524768015126598773147508244961075960281089555987991326082913312637232104875076874090081649204910084879062945127148470506971265752183153366740130442992626059061188434120790987120900526193629715563906098707527057042738917489303797914821487958975648443400032053167699739350209691445429243201653688392749928306486048466600491419250634845216347209936541366989769345849627858943369667967906247149015300615727673230360064650767999331480096700673795655920966409084327250608017835307212981202888809886058175609503771853968546619055108928331896513678204034407872485820477010921455432519397929509083090070343989323556882476219453297806464035644668550670388872282663277142502082062419851653221689773351609995423374775904161335861386990922923059450612698218095925185488276563781239258721660671448043475799595812674993510608766200913618431301482099313848146833067874720994756024425766939341615291484212895878906884460280832445067877739597240910137312027832773963663182272941980198801302671571012259878092291223007532239868492246379020176378133196933744266649119740093399749951529470498095360449464362203289732333436235168148191054313677124245494256092628979504602740172959983056699904341881072151829556503670559397532353872034711535657860902192244822078283280917259306100162528420452364054088153252070464206103712834550183913321272450252910895034261643736220268964219357424514290351103487851994355954263735121657315715311259046947746460538813837364666162322204913727727885565888744036251158631478913716602131690060880619951265931134211540439827776985795374225615953731486829628533742448405460469202465581319274987445317536845709165694137482467683189316834583499544662366979011447343641846499721676649292527624886017649717552854179835276121144667548473296266570962119611146440821469283499640217596464990472785969328720313252692534561414086816888995598405576217276490593887628677977444431633049781283859627676585293678353755047162183593587310217102684522827490182427089849545532303866847843496566261367812126730298994138428974652312426608692841436821726678899561088703776714431688500931878683384664128992019897347530577464557990651361399770654860718280858345725139050570928432112621340327235801412018718392434372746399179748198769993629178330490127982231386916668216401452558204380646219799260405522592710363158746172018572914384390766386641101136574126697303692642264845723634155242962287406657223495677127395865620056362781656725963975739258064739872304367701741622187247986234207943360176101892338914346416097087832456581591809022407941380001315315978917612237901854584831136801409302397996580213542365357956845904440593924367907264392808616930145620060995328896261467622019899119593613184780165103207013805843341029867903592898186327059603179287719098624086627569079240996659583617708948534470595123036239987657839898618206579243618575222863516432795721196319668158413584912673197686806086973583558679523697268680192435056745060520243173624251794554134778337181963495190304713778976627519225424471369067977421411542855650173013222661460772869458285971144294999677301965970900952233804273534411188673182711514227230754997502264551084434533235953872752086595187035171190329914082091226044271475975449293884781233315362198087780480432507857714685645709973385142841362532616864183530131309019828792559956837249864038699764050294059370790743796860912552800113746929105319747293530012306488416849028092905992178403471815872385575288007863689148210757683723018762695823853331023890620070691190147058072881464704792218414025369406039442073545261720085425081255612566173148249626122347688949911822938917197370140914774491908127138496563124553660750779414348929914348946163940620953264142439387657862316405625736981547842984313657133147111752966522732962371684314267439144521605045137652184727388722391149590398774760543734294011580616162454916664680383224150451131031666609143288058794932043286023229279428032952914019034483990788523701428457468720360086351928537106073201425744692668252265878652615306041619002142425456498167873212888689980106557118894714566149433589877000006604396105072336328744038971163425414744099997776004188262987254277993956072134233466816842206932064529453836411729039684786751311572864116354420576338709072679503555796164623110292894569011038527896490164633460459489592750437114144312794402116389205088622301857999482891043793637171679802616498556148680008529858256676814514768317764816243396387485400163806076638089479107834375684042931673108377044531616646402199925845736939288600590916367071556411016651482646148394417752848696259800398570073480786365656009910316242828700539062422525784008466745748340214540781830309779241896939036241344788164038850753241591187702860758624676289066618427151852257889586921270229744463795050940207200245050058120597718212415742661865451171179419001335598881466031006440953307066366073857928795630956872142710306787783115855207052810054769029636007985597285940445605508581135333440579578845541065397132634958544232868362069732926628574551634719594680671644136505523359223620200668373558933904028218109867947974799049791721774955110100710221425134798184005505660820677375821980484526988169926699805892281454950685991759061747762027952217920417547950246588462482353784136730604979873177704872590463124598683463845432108326976095979087793789659512786723625707843216129742448002741532537598755295992748341319590102658350163140705104740501954093388933318445633597588107465429568381042474597709456857075307195150027356328657584004446751139569691725314269193106918472774654787258973243564380676096916376660800726762512018907418929051970667858418657560088962431409194098480167829889151916705533218374218333253404788717066458566810586081566512073905371231750750754345160474098415104301204226359549779115822398208147118708123744435091861832505931230094177697603811114564902897543033123881259389613304070494473523713393792008963837374272897692739607072991146809670117992006654113449447647282074344507079699009386736682715435042250671377234411271994039542468861171719195817762997965775305120799375456428558115028040324353689338392824507337866256248255179914798158426345415997544402866511888841922816203715010004090713947694970831928881334347077349996702962359813304471097226307498355732317324661844793247144836620992203540708026548782245163344218514179445633220372192255410799118154039355966673147072212971343550496113244025510219438940371516600918156569239819954293521909044776956598790838849795159517350580772472426395656804752355632802005304237458914453202905698206557940651078826292659893681664162145173244363136059267604365807767710304961292137123567136245950166701320457801927429618490350893707108284358024091805145760224551404897450961842701648743251385700332467521390611086342789620655478864010472271363173377531904886337223454596182722697629733286929030004896816712350529531472151207242870530972869773376359919249258939494784707896888396590490714729346701957235197268921023622670528942353898200703002176792966368781986690285367204597801150185198321102572246072447337455572358685249419251306011463613480741866723795239739792293356627379289913691721329957047815355254135616970260350232021204777775784429693069700421834045494842046968960774264103061159758245135903910943720369135282871600474496443709346339016652308201975606663373234539748981857845607886492849151494691810729980053491681429559016038823528236594039815819172774230001927082028332474509036340024320702878340917252504437225820365298760604186789532290955363725280479803346508534154615917575255136497174106321596581964848906241087317133185499190512835289631111326832449095590087729564605912637000556222611224434137210473258346426809987884898191638303505578668472869239452687822283754303561491115928224830538876057210573164921919273946157564956818709157457019268961906577455175688740351877627847975826710692805862228455183155569095121898058297506453643605858081439063006295677834765493448044829132268588260248441932235261641448873921856463238228683836279894161631426770448652743339412015681291763687689415662957125142024462899091235932387129198755478875890292979877642296678605510379792568048608104998733470956855099782504836234986226502263877192908018666464584024466099799761371034850793937386563544970226495521931357291166071576044291132547790146752203134272090447907646816884490029349678007648294483230115721385787821427765185317381015341364799972349578407643507314682524987423422373068492964078311626119347949310191596775594390096018797949366705756871283200230190309835631402736356105211088952922749630805311264548092179276610589840995817376929382274637520742485409520833927822589313501057346898104736541466897068633282304628909963862316723822365018180358576899296366723679175009601608367224146522183934102151009545276305361834157952744404635443993993906821101641783737162923814066201456318086888755147759335737135167084099310379769070377013622051153150703218312944943795781560287264192716226280833428233707315284951699783255625059993374018717814213021997596570870974935279676013006753558703162074257176115422899269497288538254082623112058120097666827078483575515989868243838162193192176004882224499173655006627194558890359411995242673625507357927853228770962934529519159719386984186908565335691912583181881045034917122018834199918506123053674532655077556155200961844418570617054861771770899221545574721414265057190723943426452488318970955456430772756244161013480604939571954549050385455373001723076087515446903994634249557602515564227629788980419568896312771215324207102367284125282824776007766918043677043420233484451632230903030338424097340356842828458974186360796151865664365793449133366254285673143682605391928384613371399896803950031999908324303650327664107484040802472510081559103759324499977487683848986054553994083730302002395580082696000703433583375603689073324819943699138538287648486640467766380852510301778614094951634013200883169453224747743028989841202247007335401885621342976056310072870595178356076466124472172671812347295374384924710540506705059885100804623932845276259718137562218109900259922119002450756050328119522653999370365240962715379047006000523311793711509813888885439924192094113542870384763063714255871945650287470457948269915387837133588952551069445669055056039641474389301029551511420292298129221937078982080174839012120801965070264422203666492372617096999094007393848554689094955798424355263648903232910830564947778629559628951565195270254538882313518027611459078609139949218867306595085451571883820995476033957113884048368116641848168563493311549609003580273505559968165563264764133700577956512493566376023409782460097178656008457299923274618475894535438239912575368525777236043964166231127547536050268114686408851880024663657057471827662844433627503394017838188581025752850257739318412743738087073911185946510281256900728232137322094763944582984632375100282613598898146468427580682596397504215679631296583216432461111324949696894651133511537189482063176437485067758050045103047394325114177622649869073735477843033564806462104141984822302696802386704094576188508002289500849396455947368777352068114978210880741816301245462594817254542252698959381061418423103062427766073511608110820590323319087298056754267907633884188795286525094876892791365483621354862391410397653181515942537209315074683533834331600531838412530409615538802158018786721004253027861402610375417476942015752688298425465282826958315260455648375209016862157278364195788396320552314507137808452218483128269151030389505190983124269329534362651105522594068910913715930963624972907772965940251696644743102623391382745781604220127778526464711163150199063853240501058686921296747590841373521929592704723390893751506627129737493696226771967080537278567934215675158165583546217921137409229317979612100274125025335593387683887185913415238124988292750773310393220934929711827607809205236033850566204853840841721926456331140492357671149855846468277200561375577203118599809838897057004783336628189090188990789601330415371236877463279543160675836754195979596670667148948922781945422832867301166358355656581779747526834223611577650883134416353841854752211478462951943013234940728787111509782676974498431907204438772986599570623285061864823874648487471887827000973423857039042902167952101048637375926804270543416945317223534301520611036546279010044493366591873400076194269308864908502322214414342949847370686534224068690138639569205566473067760530569508109609357413707274778735774985380286099626569762950307901437157887835952605017146408006562361015507665914337502396705228703540650259056319496216208721263603417863048784159683584787436598543120841799297042100272656960304918199822104236471773922955286089358135265857476081831899836554856942572357470879073120821467652052493176125134085842103484135641279331729942613375626756064533474232873884974493221737118790259503793536287252229829320709089069491260876215861555845892216116168637550558581983716050151076666698769149142589698544946738838271734243450947705430583999266648729868650714626381478201869781909399022639626539069395849372682280623538752162372255058105922937151502688069971451156264479258460780987819210922261291736710710659508808842209253465253486303070693975844796948248418850964623630236915980104467711326490519319348611086055357411731980603498789052520344708491560947928842036803003822485849167825489673683489900204964531995095347609189112910095158813148743872031862269046219276176863772233965884545195606063691960519230996050373274717276300149995010992598274660091266304044935193209286816186903717999303297190892290214717557073424049792539561538267105443860097663409115227653271129893388795116162687700012424863576370931946784158774011905915382024599586390266762784294354166956799634427292493876101036280870126822500196815867296398129074749137722525604784713147764646557962566179966330249599594133815560772974844008481400232649947978297205658487418423427260388933623180529436825297151155760439604256522944450286722980977392445711672657147924714800213429051914888091287736925843392744467969461987255047560526631037429784285871760298781633605781942322564215576107729407533437566306919548607463624090774780371973960218158098209484282325646678860614680416404659850149759594701668587901765177074887974593560920091511030538892952616189827761434200317735490960547108649418171235459655755861805956551199574023484222626315881750644289771398689638179637317204119124123577234250870258252878439561258819685802489714499554728000729449164080101910033815394324526109527568200092110803608381489437447864720692929056929094907615175098013201604096873786279853012517267690243719912332672560112256151854252870497518850046935585895992603326303774388666512140187522226493500699810342751859708790797263918208188339334247707647589993241652050197997992267244675852467440403247098504189327066457149008168252757626305015966574120999514467064425945316606696093266210556905927113580995791037419351071457602699464802779706843415785736337330965166173642502926466324442651233638845528726087040588887722084884363820145980231699623699085894159730408260912373901384222195179755896271801779969282578509002131691036849735166753035098489131975805528940012638846298551678419234038260661469438852409122746284491975247609899441520459423181441801171096917975476478491694176053210625716066078240750721293100029387644007967098028478604021207819027711942826331455559837797780731974913756454414653535724191155395177159312143287965689615478236986492195562303124795328493741949566969105533696385414230593258420829730966760187131285537106752155090669172132505243435628411429034203300046283326350821891881614283895508159672250572684163732916051612886615891515331670542506093398477457344420965970714254897719018566004637270270442932327774562747078261109124933299605184314144759707970770639922694192243396569540201800953088956426809537300326708184309751487927508663610246129067615418868673114375521081080698186402006892294828536757582489154094531562550338369925837588861118286353349434068636592287966618385667079767728007189523068408830741295453822428654757539869974853945099521326741737464886999747996996293416591700829745811507950889755901787934793943071971988233241259713534541227629584198629771809466690279987561403739666712371027005216878148574542781220058821398646789132406492306991646407463237655504412497729825014649901657093235355356882432284408525680212320731467399582149697921384349659152286055082945385273972246989845695235729767012823380284686079767609918123393661451206136711927875818937149692853359098941266162028289809916909790121399764255178697261285275436544753690160465842305287140449438423198747264457728406374811934588596455352527120778033539553006428053610661212504857263549334637074546157832452672836190949987472887404275289124396279756662081557884031597213698391078102911662908506427520246219518195971772875179506169752882537000051857060415303815408763108318005310886522753462058770552151241685957443770281298043891102047769499975609996668268514105661133885345688116731209962685252186607254003493263033348160384015964414332045833659939462147207125539625354829813708958911879359317452315047736792645645989934541462652035014254415246293036524265585983960800884335613997859775717557679973654123790371031209944500342165264981952750267325786160769602939647068531924298480481992453030949207562930343686234676795250633383498651527310776431379724414448294449308171583281739871754355259139729873178266707048050120641367944770403174086289451398179022859576737914828989316600423581614414543078032770119857953376431612424101252698568977406499021206886862330898207470873493748119483608388988145404008724703725336499204695358628203161142303224410692895957000930421248088481615212303934894644068396072119671029948156852800213497993171092526215407242629090084073554111634826250350662652511468602245940607997528063962760728177832246883396045566533930754493744428321705047645783863549082112499249604237881496990736449287352280938161956465428691116455580360485483801951084793924074949868513006986751346369242787081882497945338615600515051732779242421198560891710506342176149390340576843711355445481441393862131263400091745383558329949624848313655941433925558219236692460633354547145192208326052308457649572112332343919231824098733303177003834530467566701621431709467385380923572759049403162900067374383263032037353707664427311591254156210916981904831419193813926283231221789428734323719706249244514517023427153513765288760467682243694393375132943179254960762476066300389909229680071093108176747246286010369180511756718438247366964886036485371740091888436812025863161104211055605750577612622869887408865353819030158624749095741490793315792674345221329361293828566841834226638984125873587484895455964519581308945619859784182190846042762191819015993393401593193249113320819426603144904730480950973691910954520337205142569984539519057564011500445176194301633932269381030647466177304194215036147613380645638871175739107405234777559290072371752643851557393568920609260655331951925666813666733892347602467096304976265141580810442231294944956035147314661593957982450932175335946860182620305211237359426459776781867501364050434055276438446720154777865393151082272599975152886531147200265795918835197477975273084096844258986773870506611532114832742980034686608392240802249672731116527917221213290263907401084883562839678959739168991172873941286987803345436617537648239630888677165187507916621920965562306004469058782568596378796700760732825381527455708674832008188800584926715996932198477479546203140513010539390035467596659638402144153029014531810629279017867898291893064433995200583603731322525148078752280789392585475897486162385008662979334437341410169198296118643455802730220300816442540145633560657676341880906446206536408980148481228700275490814418599847708669509414703702090714168881505126647254858337960379646938209373731380268590255315664827749493908299055162924119733804331087179589458551166247845989865980819142767438259533875303626124905175939423344993433326390992509280470677437764678724948993580529670303229136789181490712084617504699316110883894214821054752069579469887407387843581579953911803247442851377654966208741092245004997687320715682069334110547061018300074787829080795629421310276209318437745766835506685164072661387076504143201892777115233876284453564426813617687112333935026793850496930125880193426658767736336148327986458679654159833921585205320654276661379832758629903926262633758816233359706600371381391519159273458209433607615835880446244705679932998946736592845229244972706959268138068082468135947986118561815945815679208405956989059977860433227588844530292393607494356769872259404952763969223847448351976438070991861978756679130121626128035819593254395324678304326762121553268347441757789092651961573788348400725296682674705477338941898136895701423073747508282233791029758002383447977361088783328520353003017343286495402098951163795716054834789500495561365443841309071786316677730113906868552626528590015738874174697598469957254656495723366464603888098612606909674067183720072189054762887184329911898824296479805376758716093424207976821836624594636638863708722834313903808832560772694058622957308199436300417483929483826725224660558294989882229828516486631505624062121205718541015311958133435896746587609558812420926929249738427371943784850709395228323179823680171520789543139687097031206404043103548642433363205618052659327758025988825336477064508422706866377616896193497963195310130954210120172688664615292997892742741563170428410063011336219742207495662342737674197603292632827662735330694338711667795122812814371111325495862502681435036763324137361903673314439532458420208482376247420796882753914359047532087044247481366323390740517011115852374574130365966388247291734990388344611499120182497292060771352545176306600688173627794825339090106004209396835338102469733959096130105422626570191336510452426299700204501919330070432903624313991584539883989168575650647035127080747904055712510585842358586803151296109037034978875824331333920374901525866233559833404683484914674814969860285068193694452573824060649606964991802755078760305367556452491364300621419130443819796649189188603812810482084463527022479373882807420552614936889753345272339799200033581433056560526731175888774266394935809790521590482689990583439041755618541650454106406703442829286141581953550272166474452858047757306676743344345261644240873690421626125959966097159821539330585941695069270616072979235867423813580751769715268983902543647733099207416635281050083164529454979139430885112351811849397931223208128225132867025278941462561612240059679839020283532578321527835208124632937532700430349847852381287872540996692993393392502397543878624735036290201819042809407602252183648128105088277909233801893779278562791851905094725693976601901128576665124925802631781971598218472313653276417098712664343878991896362640257624076284859872440795260403398831443988819711720227530441587633050837641266411380647832335666229030668871606065976328766002460999498409909814633423003790875619050791655950446389369020315641669418748063057959577516836890950114424937649666369924870281130857313260287613176046604298787378740602897987355117886694422109488701841028405446579415665982833624354227276576103507402721298117609234639022532889435870926157593513259634422926049347946752000632831515019570808598792787077481224102692883873855289572308817809978235902983952685980962834135070774092907988798105163328793466897936514562925786203264169015739721748776740431468974806625007866918795426953160062169335608351823096901827319748916269229097284589375551677106084638019433502610518193871347472582436677886517244882066077483921823991022644220726790447925151023197206913497230812070501836627283630123240422757134564092215577444170199722644761057776846509920686324460305066920454404185788351188839312188687198825072604127871833709293337954924013499434240683058449543121993527204709483971530504904180880818797099362864425068012162824244924929068088808406258563645503858821316515220068292357176058788995460900071492077435143082994040247632081426858919803757541846528849443682228181054289973129933156894703610002692952801388066370483383034762028218649443420194514816714890902552698116018634128158300710043495590431678874489536782099538966493864216240620452100526178963384045911150169180727250050621629184154065060319780759476374434197670059338257601714348511080477818858618005123133608847406756601043501963886106404777979084389374484146596977314396538561988473333313413948745816924824838610371198583976597780148035070975732220102538870546967278530932919132385536116020674840924166049644136638827532562277624486614559046039657069884429959174095876277580617099604017527463805072301706538448535302208538985924312378602226307183405470759300855303931069003078620811326738341978271061609905039566840026505305525280803912992865355861234303660133138733575367495328404477221832518652495493808666176057164311578673452906929066182670670225772683481834293085850977078463550545030910966437761248405514081059659654996782518640466106344727709574841108880572545063045826838259241875948135761854795847853067069250661241439880984081969036099514833675688806641050907766053107809602934098048159498085416204446213071647920099510794585556254159658585756775908778700741983801160630255482618229040037350436739116979470160397237914983181430820399073037638356106267073733249843673476965489015644591990775850956352873203641516530992001932474909665081305209179412292016930893370837046962859085332529264496531428858011963299305579154001360684610215621430423357178122970173557595386172532026719317929829714849974002113992906345017076534319363882076645765718454388883800154934686798142231264614339136973172029241289477274864491694397436658976152539560034829648525679695518360873267316214504124868535488748911194927703079578823980662884342859304321918434647197714025273358126372064430039172471184048010455540203447574981792924019782163504964348636389200120195214235574261846082659514231019643357672284068760719690985417441392630606309731524549934861479353657711333007107932146455281242503263531035306866046381689418539567684146478519395466783288475595153792362119550274993562252747743004774080670705015426329294278506658833615243831159021354045922596589225263787277246528663552747497552878109687851009843696935964553066876547579530347234573808876840432782658270637612945270643472749752583405195475519359550541250632447800249628936941641383475233309471956131365734107450848416616535107215329681863794398455752632741878501165248925114853329368764241461062553847894768967988809137556137848555444505362435794114915663951546484564073219359278662436703356938038470443377963314265500769854838188598465313829957312280665129355538350208471798176589143016047052513131708532173520941488962382465108947230573986395179599768334983587206881854742030551781629812078356928067461807654961464860980224287312395243375597337338188393892491178883243229311519250533423675535858398721224877041782969742059543066643834556544130773108330765614209568548699772587549894548236993368283034915977370248666997756619244083650507765906563244531660884544905808900906854030970379146376205709448619134110024986935015509688998372917969487291630126495366178450416162791911340500314837370289843855051064773594656581991093351381931863105796431579229340949665646570676290455764922787942020175168398078311971869894037300439814478470213709629371081278037968084476113173388994690205956021652255394693568751380574533036903932901499021014721087614231673967612859519922844512159337240955128218971273394902623607400973536839721439283271645721823607172315753977786620283749254642747181795655989144543930196190371166527292760497721438061887076388917808302464526760091031988608838735439661047881203643253809642242956910891459155337863451079086494172251818588720785111233582889782608709770445509356606775293729827821315975462747890806124911039318516622674969544722057577936068931760080392604787034895005094900120340771764494907744116433661951009374478644225039268233910419074256185543246726010363153290821413052640529703839011694018728184117016581435776015614792909338355281499252813821795722033522348541699112685174436917994309463997923716024445099858105312174710926265505755718440766246513755495896561555311068399152280201625601483976401785867841697375315714058562281034133582905170825670648726197474230889035964883805311276171983774702572736045136757153422996700483975025097329855244285060817379654381284020236413680799779254413734797528396351892714980508083179682010552152883912161764135508960771163800390601800917164702839791397780589083071268837154947455265076530950931190869251524473445426455809317360275322268628652036553186534660421839239485975256750736377962112571323903799545504818027294748134643974339818232523707883535743632836034692137362535637291849553552954615783561441677305095932664541463709764417510614647394646015755739349528112856437839905378439681417836263608755506268641383319479777441941126576522293673606375077208576345516379031487526767596536574609996118537820240705893938943457159971699947869906558877856841822613849904731296821782386088724363717798736614727912142775013087315832770856751805747061909478916499624441034662980865845000634606136596732345362422130170339529364170299038974832053058059592137858777831525697668844624480502174970621377460537771944410844985638115676432976627073157886314271699494335884228425212191513497245168321340604178393938856651629249521375379029544973612466635263076875907585121577335286577176169745809504052167624880656900544619080912959473233394965285287569034630482973159884948633842047927513790170924910235675200095170585312722196335097709117113014388977987853854423341711651546560410953742158925266479582203050328623894985731482467199253381268831520052106248102163094633782168124269369106211709669907773949101059559149423750763863020140083871477106804515359803084099567459018148576958085050482999229690647211286948131684165009470122133893175367108764736049383894614372685884300365285670434017363694911718532696849321003906367172134454224204436075683392716270343958035649985792344579656375594265764387803635386724193112209078029218583041304058772593469195643637288074958977872641036851711589467591351414523339068056325313458670246449625437240316222589429525296857738876740641731949349396267377324019273375372918213401385724313690489503605637641353346647651000574864682650627170429081187577252305774375727068720095128237393786993882889194247497411796012346470845015376691504238473105881948341894183409801878370958595463681454757812117090021352524535101611232961265642143838157597827973764733979657486624520753921607243408413718533665432119963776354820168883144348709959510654348940843260108617033829502124460139989139306956069026746600565754527788636061954356050181165093409608431220922059581331504504985668854740534773756788142591534513564830908737723980585362404967826437775151790338859764987036652516821505450631053128385570378861224937323095554972395504847941399011047771578680681750812988109401182846959196451125492651849000345968839672881937397809976888407695299872568708241367571802466269067207054652272677683030379067451397608979444630599164598363403380709440579273598761970856580535669510358162994688340669418135447436857186314287218449038810466494358097479135869295171957515643344739294839211362269616289212363506220048398144551378284660793387838605853075401807260630143821370468721592259479776808732185365778908483119503741198119664958680627050343540476073190166578086148531811098769447831539747700795048238200611956213190090431793952419911471383461365066453195575288541890948893267522309175532945167900443451920212912606632353182331383369179216568455365672574301477942997999813935236106607228043118540166330656436838756842191327313538272358438250328236887597375449312161732834697980336192608775352746238180559250515092250935892059498762981290751919472823663692363670372809184342455060818482159002486179143901973746641267366465736238847643776294344205710301921552590893974180011117793758478158338969656278404552177254780335832970340838881961961317500042167546501859011376613705316131386035283275813785444730570125336921122859632513861948145932182140094004183222382459840720484597860556608482690502163933028428888016515103777995326074086734533100776712555389661116091276658234374824974952266447694053096560529792534546384122551319250605303783524293615613956498032575749004582626672332844685874697041794758422561083380600708948615242725215160509816485111599457567345904361105217685951733106977363715598359122842457967104931953951096296960395520832220546552949305248186862426052987796464683315011288575955519483791765241604133261768342095020241393286917932737245440967304572544276679602339730495036260433756261266109266365099583964981108417586096704154308314684267049445695543908782713061708932848994788185473300437162514957719308062796697143222442614850698681856009098932670354751928899095652911332900050525881163634589072651061800380408688237274618662996203573515621723824729551063792795222144526414244588326191653583470026652412566811399741643123869792310501061503368710839642774542999612169658111208785354813233257077391267893913066945623305265195569777619937075493735783250069782093540167929054448191401484957629364985414887177703142719978596408763419879149614890155688840744686949295972512049941997897410356105408179842595665963448967870811734835591812539165713677754911837606897047775794782213073668234761311201461583790367357123873798195671996120630080406950413443893224142705436698534248554879601955070130225606991735527472640583601517535824875205108746630996236969794141364688572435629530763473054543774119673270497794755591338271064476876395883323085839265508864972814938450338982522356006904657771486463670675086150595664592722023830109165316799517893407904021844222675859573915239551359311362415403107036008838992666780605418097655591549170782581976187193630987644308258771719917018409881673417911057431506258680504478977649468035272030088893151589993072177053249645432553745071279002066750272926716070264968873520395314664592236770054983917809710678674908708435316355135447888884829331907936295988081442375578278367825102761253754025461629920214757075103482855528077675449370355070365336574271236881920965254658547517255404421616141067076362979073641600215060471367989408230509307300244247462033756661997983947199089955033913947990332360742917832236402492611975786550828266893869722522989284770206339765010262669757707644122491785166362929111675427048473539436761498844745547867690159966586867212545954906559705169722102117995920279664415139412342642819226840418428277799025248536324428402377508324579118191531453189437294148791608597920767819103661277258998231345076840789632904989156052661365729847672968974363498299994230216625740818702018515593530079201062470715766295824200344305141222826977423476959846610485336160521608956513906148758736652784125668733805865154881991802598046696716846420372350961862124771765650456012388093733126447922694993375531551308639296589509310160615808364056234787340184557409299212948978815452365117894985853206081652346772845536999105863753935466320950040328893259355152777671003871178068723941634893846471089538558573502516674547958082627242475462152901145671887148485247832224549511909674366976963909433108932899750304663308183569473989949656983019014959949129717325192740445071613881275597437061352342726480474052889489916134969793200597535491883568589902170810664002222311332360477774519787544662949012721167850264254330604659321226596083707956631462582198093741446759349032287993153025093047741337612821696797849764268751281223825266859507655463138961437422704445723474382749592394409182515975010693036462363259323409422107566764803535949364344130389654538138311909118656255638270034372445944523941445587351031565511508837011405563042640081754457177705743724357620144732513297925888450326779143317587281017470736033490555418564441993986058650486049872382372368698752606626290731590693221092745426687191176830446232663203524366798571610221381416281329641815248301642635644193645342320597230610383894038585548745180564954880378790446522999087741054655326195427379749142144207644391375597430166119021230388071658348673829737003399839986214460434043710400615846171980472111517214116880278834625414667853756383585456587789647842443693850315564625318356739638699503679272997247851735726296027532855636456370828744208609059009270226337111233168668206993137691738497350893060298154987248600012730799595249544650847748111801372821357568564733188947074509127358907094752146197676223485354232382077462612181915135594019798403247536924368468391252730418832412439333013234543917877549873458771978680782594920584729161877260826998616331715499069815690007924514059218389034103849737700444152681209498033221344752963740973266139526799059931644707379332239358014353280019257330172779088539900317540583396787117825689911560066283296459512313507183641470915041377935539948400130445621378193671853968226338422260545984579398675724892578436632128139797687943507611971898200599062816989591912685236148440291093900268775912594497142247730959690047604242646899021151527026673744652601921147864157750653071737440002945879227163025153091152907854008424160575230366405413528832619708106190690816818672975330436101592253915426300575850196356931895007493963276136472745967085561377680337921236979745069950446991666037985623142533642098424309620726039975602251562527435461714766927690166607920205836258477625333408195004792804662840177991346879565825554795112338074303831145920739081867183983091834174299637870142315625472838765001236261316061540231871407608877747526212408375387667886962571642233061887849210912244373469799703589308756001428490346217505775608814311738895134052986337284253023093143117700085623408229415546332511946059165154286592320904329828831841597122380325518821960684721129747877983236180433916933056532059971534378334712342410389185348082870481335764845734023294667139657939191602417435202293108991263374472821987560279849617675693566084959847050692896863869582592288182640555836480404100209464275846690151519951789757459051824500407561549172739798289845748215876998744116362173827763738800797223356832946754568775818814677939213197224739721380335734563623375501641067160743090497804018400122757901982492572021752759011372234254218723456855594512502351707918470257063300648344526467275152895142774260643306445339608912853910554883130551116431859362279222107555025884931255618862868459934159514615423710223893653041396159341085158994517110492472797519420060919964536343642813013593636158012141362798244336779485755985926250876357618408589816819241731544527364303495294037215687341161918035346366976103600120608629920521427121269071616638979767303874811040064760612934176522622402968310953940855539560525345348776956319480540366941968654394569680351661942609173408774975180140975086943772013718933590838982487569582249861549462994056238914393336771081955665835997626310660023411521904774723532255074485739898109949822911769643586700978508570635335857012041172447322202816995582995988089976622503555169483442935979653080221114567677735166179384243659006788661523200147572543954886991664600944889896203771238553854126140228877332730217158748499331522752921134629595231474186253209582059569859866239033262192895952800617825422988929381855371836747999411669952553021386740485006678112472858593489810746317308358097890346941362670152342392122547356337315229067896972159215633767925073599331714923642937869380785929376971646935550987280243544471881326782138764072153498298676492156300548687168607457841927229931191648009632254585566593712095614743615626934225479186431449045882647017491305015026535153182058494833470217430445116781389487153439710582602231374660039330385278286917103363906549982982655913658997379895121981421731884734637125472033485208202365104820768340236373004577899147288135289390523509411586594972098274673927991376353593965279294561088403195293533299548150562578430476382141982636339898544505224640036472806507104068351617182884327033146631739909120410812005722284812640957559576068149573627485330855415514229803747907167074274074312069175899663720614819826775238587111184991601404364049557449904321293086026026646723305487793076016656348721970388043730136214766507557730060490224164588139778428537713093488134102360455659283757484867411468296144993167299562993685789161273379093266929931394354154038068400427521559593123976647162021568279195125764547372699117526028598076718516022135774344174580536460373695856004236383478999214062780440081435888547813177638865183360795556653542774118504702543664239163653381034350185854046659122232624371455901330257112762972542190391123923858298502030021306258351597540586899494148147965288712819918408739085651061485989406807331204817432800376936505575173784696412080941107979612059580377940401553988288621385718076422441275048882782250863552992540459597479107400121556045632309751263119093230847408184762459953694344852289823145045152265217905754428852506487549054354892765416458106432384881131284988550266757920343963808179976315134914607799575630420930417936180679829505145116335392401854015923166763011705331937982504232030330173285849090152901957326213826981787391163228662236929787145436032422728502918621851312443374910214012398152414237055990362746373582574829176252462032963018907310678487167659695456934211012728301716318063140319991318636025891396679509000994035097502725163838601221817615323483481928494398885640491331186636456307014179068343646247712772686200495138830855962664683924979236804528984058125529370913176004624425839258530297379018558069279214037810536854894634876105399703033432565033365229399710365332129090744307232663051540692594869983405791365790178702205751911703450557035523739836126629619455255592518948652224056714890540009189812410041556607158976221140995989443062305193091154198368865257681554171094267658283792278634729947329302676824145612805416659605279761889918514081986265773560557829887400762348021808563327524569860330218525073846368224077156523714196491818818299285670835177266368966424097765930953459215573327323494732722508228950690680537312949579351094075290616226601233758453210932850906456737244452079243714235647579056114642334158412383998974605313375882934802203014372012248545596296285331393918112970795540418836967488150920076116939447618449104285808183188173388213033598045398763779772276714758122792137282724912371086632693192557289365996041493231999495468681230737501553979988519096272425136626341466982556683882656245169538499388507380699094658100942769702517800051495940184629702594606419970578138492648868620949709674042900663503997259858247493636699198696471025140402780265561233780029939964002419269032059788456994192338345179780490059195834545997896780761299092381295756882012464758833243620248927008247846389387732718482648867145073688587591271350302012308251352643612847936141736550890311629291025098923720390799748208963428176519490585872483564243463186563694891768167031417726102722667204540867085570510180716910870776847429311618630188050347196024666528107381336700652895524599039027022900047980541527237064867964838453597034452723756968712586280826266032896246852716463580648102157418233427934347196239513851247790720093375215994986024951416324031325181179769004330498277651669325858029884547497968871471728140470836764600198191885117472531499546231700069204690138095620064056597484727475129229216445245194697717441340025205343837485820353360071607659620442130853795831712105788433446348503691085405467125498402739132161847434148150881225582009573484574521439090447573371761274791220849358869855739710705979438714728048457799107832288993577254932861082950873175291555810991833914576607955240860730428398586246334740038172486282239772289975939146065986686482212664806138162191575181272067647061045437132209096689664398625511137465767524530473206207393516011713413553241272149278040613231661947793809129298759482210129189253018058964492035628845102828597966362645245381358942702527351655647580975157123020785611392075418520543136271699106702080466708324502688865271554722232632440480085446141026274376758073219308014012692818549625245453452264152515487930236072080858727188196812321361596580389979193435348847350162966471570302250293209209939325194364472287968712085594065504478784541526520917197109882378112628721575838140196215165894521030350307435416982843610354934844393515444052769712144474703260314736917926056317324966725098697680006494359790079512712420094278607081605597306892298054845259277638010880580967810318476517955658446487556320499714750238558518615849056862415771103651317441095785196837728093159131777514883010534501707205714376383255523799339743152020846937643624047616303881521665522961045303707545353141489638587777555261949592799743601056258547736548359988800566934953138908207670312047467983645870306655764737177610660215398175455219598898963273224665134408286477873093427537381434157197164299988317845616381066428979615489579544862093007410294811005460586660118248171809169661434224322865039309563237151566223077432385888188912847819075624240499766713466489032073600969891405707618978482612916474638129141211353348606009303541810135119990387536189887611594104434948253406130842472326862246781922178879400541245979407875641652434208276088637419118719384013661900946167550954406862929657678766249222871953537244578800350560050083590951264948312721829022447279436288117252591405681945654216327255875194766139019885429821153115360279699315893270042376180523928602386050482771475564890697711065418146334172644229756925637974496444295550988408580427655678065916727659639444241347168845080834759749427254717201210024632738330533360188011319202518400531074361236039231954995988096778942683736285570556876116112533732610197306686112660698463727469017865710821618607524172476776834800713233418687513268567083613526111399041931967082925735118435928125345784582598256843925404926629615078475665943827690960782923398096450534422900002800004851402813164244030473082321227137488205558944296221139469425289167700405324351405181862061973048170735284171111983656530816159825631525341193509654973838108814938005547229935812113593889364566307278910827186089747597489732023212698398112105973973050482684921723523175924421168533626724701720240289741649462425711398269183611423143656012153156836009699377395295522359894374862312354663648612632170952520537582277846977561223039695674285604278341836380060153283892418954221121263656923354596847890778833435071753852520499878772849368207849043616927252130270957016634024835394261164391017093173080908172960045556413245190944540217205050796130178695861435400699980108168862679729207517545338168037386278624376638222798981089500844474827015143755234778954010692599430821979590290338460393946568426201710647125717857410789343805434198635108758956168901358485424459207860216356255829809602741193886755449166251166380796117716114913438545919477338959644448252718644871419246263687140573531928083195711269269920339510832143913149275298716211791924369403736464033970911223523493456939125669557501559805561815851288429867548531342400066091269268116518649375772018580585148852032075633685595203678121608701021477107809074993225313891540045754140055053342242303574860478969042331323215814438954634107051529595584004670696042511093220517280134497320158445331201729839360447337691050497330336732716916924730189493744179042274985845790348279274033425112646830182471505458341752767534325188147810645095525831113979327822805830388168013786032564410432444828161407538336684986304201478539999248167658046972838721025602561586069827254846258179090274980962067785370878735716850051363666726043065824282940033408464016343434254121832054864551744031919308117939594903405830013154775176634507130322787206998558832838406234634099234433895971169392054121994089709062741618208267329616513175717278860993123615555449562492031012468572163346853476514837346872327595538722252746653949184071188244143748804036667112353574878266419547647005020336332595995455089369217416893561472849254425480157129431798231384304551588185331225684738310316239378565143283161223198890356453211146660011837947846233842775717245669522690697143527943555736642295149679216259650219334287357084191706084390232466958630426061718804853640727211679981717632425894669424426979699150432352794643144613939917781923502810577233633954493145269458165910163548119979233575355563940505433654155066885482222560126997433323612930029053298940052976783255170632834911968853326239381601158544870015871508343323687322039281422189916522059117804515125054735120669348622923273833268399299296285995355750825997409587304690399215404810262050229390217803258701734328962160040599237081635416875895886612689055540841103912394989496990249693047640673532605111481855834796627862367525257150743058195931165591249361278172045983454262774578397202072155753878551976427901235114832371490975323151225570025415649939301052724910306315667636704879561539361133308807460023975009067525267939736839274907071319325183436718676919692393849590573406222721433391662891365464579129021603399646125843510728905729802588155994045729973674837500017853103348110151070066538404912650648727985003133111047868954932466867979465841623159052879459764214380829179093931595273588091632226291265346660588938859038164082290841855589514491481999525086017985283023900773504940274835798260694054477782494078246208723851052669962611027522877342980659934377483387825809206833973619353068744623338358898568202245438750851669969773717795472451802559220170726671563831345614496859213135551670538302001986492692167306780989770089271249847584201031510601482386520680868699105787846169573119872268441689592992602534595614777840412460808850204058306430975526721719766810594575271737118617098676234429925903903706267729482025423728147932042438514345458608400780218512081813158000006902466056190545007355666844467829699409526211716763405275306904323996014255976065999990367271256452300173023156331627375267359766921510588085900920714933742306577751694847085515797475052021759041215174500770406921378102008413225271922872365068589402000651777607022471849122790642908364568493280327705894427588288443906080395842333382870157109665735457192854941286683520750636798419860072467328376923293571467431452895212117913346850288217796970580251112849096564841396793789671812957419505947050503468448821616248213390394492993224873012193321252849407413126050627302061511105674032649080360367279637589168353812059766103394123211696765356113051293025413388726718785502749498437127320474009234430429464536273822391154827908378158588788233306621219494412649723910519411612195976509900249744898015220227177672266093492308918103216602559202805799498522497514504542392091310698240482646690597772483114587834853138489799957647246680593019906623462834630034849392357252170897028282668976057891080418004692953690392585877545572672630769617240248113039823693147930708986301837858896696266816932882121129259092320633034844996484984898667325020052037364811066115645817049294316207959454260912612028428666334295491290737425349581892421125512096850045424823174357403489715852903309168986722187910670233566527885151447453010755359641610879600063417774033456513109640714884456455021593277050300166994791130935842956192514515116556553402375379421753419069975495332331891905386508284314711498275283784667927245116876551207372711101947091833243729773261966346702326124992908061632836607942731540543385965473729637469800462484570563995683577044692452250569987344660464851619336552171279467465000162454827315852730365913835638599033044728790138315892797367536875443845039069875939701944994368429796096009143415714446517700289054601707170738984632305257471459125600003907252464008505209771028229333336769249172437196796974790976133749341769283272977829010187565375977269355010826771731999822894202771167008383697717845133044462608526757760392690797019631321934031182111232549823752808876372809072645143796816818273760813211973705776255552889015935771787119411114835555804820573654866612580199774903987827674430131544102295463622870562782837237085447094854549770381866976156880184551813500885333459401234023342402651975913952842651656335302028851724563686967402735739115660042064715324766244258614278811907219435907715543779515022337201692685984530591892021135726014460869159947294665022371216771813019829732345157538242028483968989279193381799775384320682727629871515047140003220524127368872811811125801263210791273758065746593651134707501486435858245841060367195307397224342839241888775764943088191246341494749366459223428907545382407140773189088866794135863336316385001869579274029377307943289791505745752834404876772591764812223055203162010853308788014163784246648999268203866763275687596080470561290891426179534889962177241778701092225801061990610784307563025277482680802175158843731511561864648185222767033612982795224838030090181494189855180349753056325844783632615700893500377594385710636867808399497085095571599600767811858268088812839153602069703391211740940547025100884340509389301703284238516638155423312969608631881270891330778736467246759385456428180239224288440925186511065572537522518375868828655036748638986452126107526840432287052650636787441247608560685055769627356063701870095604944642783930255291652240478688907343192500685420598889231884767829656594507768920063408500388129859916243847473694976704822575716310950819613027023239216422954868154900808981154006293451853109516956450330504669851037624648788099027426971258696754279210795761319226921851169218745572925734188767109476354166486466016596691808194759957125831157557718207552633375130817872618511060818276408684958624661739333540775552959142495155981257705520655950833170735568611086416080853936928927792141868977497610131464155339388636203338934022599552215476735101988896237367364330356597755797817658566691476307426306917831953666709305835292319662490831443325415605363191548940228728555953008884400173798239528688419422643937057708622976649913484703955749633523581297725001664540801671725764823735111162294844676957264436742806673744268188098226117572709626781983758804491969103389963992321969293355080703792224544417035365540177583694185371359500048882658529670955553117616878032509200790627593288568501852110558040732439504083183515378504799429096658246577383923631027428331233769408467323635925444838643005763475871031400934320755472587283143613699460955920496970478980466572961941438172676611934007611654881644646248055047762109683695041536587219211698203373501098765039580250501326132554726446250165735300579376009591911808771036278952609046542969181602471839799890671115749483956990496173587903336172637163523007874936898751358603536281214087448863805584477213015966745532441739074108548417642395759973551868690952484184719471734945858708090373757303911450492061047432452642939042235245267408694347696585811544757755234274401505372968457688956305469181512377977219354778587477623319570053856437694300768902865646473259919229982226071974534830620448466556432016181822294977679834832750813755841788898862431582303622656867443065775686025628919553610370715477075351618154582689053232168848581122859433659302612294781074202614693140054382455927354077905218231830894041791143648244966826523132873220551893747769945462673664002431611982721888724167868369371402350922367679584725668128451850561014576178144155663708331741517659099230690810242758863245853906014094000254636429155145145600672437419439699948714124474740431267908108690379308917061373249361554182057232556224708437275804310479639416555974022557826556105065559114661349388035003995387497549035817982330300074159565302088405828800353515736371697149763104802697570981218491484314090730900170393252133760199654050248902784671386048945889975860469463394410132357798000619420438177059981179856019964578052315419921098236796906427743191065304398913185847026264205151181443535578363597168744917972511966436456489223381979150443345438439571264512800290778014046121904538192801587886542775318618964293410640108820834159479921257869285976260316040885902775177340649982899320973594183877050456847230691021579052543983020976145051045612159142729688743662428182461237516751493863329247150322809958107008902449333180349838750843238563400849019518124252620497958165552848865571766492993019183034361644527549957145892000423634058680443389831449248598929429541221440811493552638754086803793335960328621603349030304744903675622431598212842628728126720293111096801355692521339342558354059080255741909195732810384847143284535569843519130314331795746559543829579100874846903847626197442872516118558589023076332746718211366162943155683665929520909426989514077012938605974883765217588177067218715984124846983497907817962376124742711646640871999661695576555165443721374602348592815152888662919099254282030367607175641480772497661368076581434452945437325175670515575281694885376958702985751970339450281816483430608723514677724756271036045924152205487602173081300999141451757886378323419576040618860712218846701109752932025961807733522309585372220909761407078570742694705852173018340070920176297258431204213298608665729434915775246355177069473642511366759841540299251651818621736910702394578863205995971653561061739621674508034981992095587770502466033633997015135972036510256821921592321099812500104254630077454241752413461422088507514730039526810748818386789954889345239825573322927075489378042171225777877646223288013419511596643050987368508403669552722528219954941677810448577426713505282756066439128998071203554675202985987436462507264908227612121247961258125815017422606037455050930930725553118148547702702307766625301155328572457089022420600175720813780649961266449296199617841773371626010524977471428308167579861924787769741639025470927759507855388161284675252073713841854089618440507554777041146044084471106264775365296095217828507737083894417629983400797497557366200026225310918143413350982291385810249327913236548631217860365853802533373713719934946370717247709513990919987562819669347995609485901905145254065093848801602353336452139948527028846106889149028704796179889142771863548297595850408387638106784290271432870718598392816793116512150398343527120872902335028491898999011409086019788220821689154078556499413896568409080474412931446919471177474357500300363809284255138445026144710115181401815800979867939129814826083899053055812923771944666925781174427735505974512341347856128362475113282307424185790566608534777048247153714379015107094723301637888167435524430690132974418084375842000707557232494910197852228746076296254332832917024467395515322749732488050729397162839840164709740581637862701297402500742867049219559591710171426439626965758669196664248175491880311777783357089674863843271015125015378556643631346977571882952182728917479355764908828328860708091490959813194599852962764123794593048190951795494748725830673569448000835321881512224164614093219136948055873245084532797809748105603776241460306249936104160188474782741576353562445508726627795185984587355704158233030588139585815322235417475999542953545795541309791769341662193858871854922588383645531292682802501169052105900210171188290070648153448780368301962960511096320022272851463765767267146749797414188075185776797507904439320208211993549070109142551577380404623080970610693973917188755997393520394591287797038037446906479363005281336351064370567488345877136032205620098804112536015399075940206986031494391530752273134932984360982888565202981696496790954718846388707343681062291441673957429644162244095419476181073507646022678122372681909684984334127438179912794589005378340143480839916844627148658929413960539553858787144672639227411242521587916001644564876255532229865724541192163736812804416197745720933841673011315171390509531096111094566721196092872902237124127367458583504109792496898283568063063716753269293091734390234942498809020539117839122632339308451129955185909158257288038169285156244398901658377312859277080286436719547419070207219254976780099645250461809743396759342883144965563847067607153117213592682661565525687760262181776222134515543423150480866972331014548142985716185906016646843050018540637719771178892610750023802360206907164831737653096557265490842434678420097577782159764956426194927447374402686420840467396581735795951437042052352146260948536315329502114180492245807926619286154954772233649027054323973049297044693297048867420411104242018930503443165125972533268193843897046856345543078800732586920853865309311222008516453549167563791888197915902950635202111943025028050894931492697538529899296184302640479466504386553983690425209366055678086703026686280563460203486564335759868195080598878325348347786726054509645701432988758268885366538315194887898735942578017565342908162964536347384142311585006586609855481811516035278499366670556290780945142973642176309870784950095075501909675565471433944576042223165657095518507954057293259853606259178281998701832094462263012001957842739666334142432360479735153001091135727258870129815105603252598089977603472818372946961103983871214580769835467471751595889614536418774627607075903575296226444810604330437623198604226643089002265352747137841120110945732447925793560937476488964962132789278395638247932549714888494125773467377432418491137141271944903394701095917169433013980674357770661333936104095416622289758507665727820121199601843325701169013829782887657228212067704662256597964015136750615595224159462745466599801082665310453047004407200944080195155411203992741735404596444542768897986463254558732974102108755516347119874011544023884520376516302786133457667436095768887964294055514274477832567350956303151350153276058752839550936044796934873995740749291707636952393488451720453241655570549250271754063955488987314838171792923495568680202137967346280703489174413739646115943323481548463369181900575478035555589861991194528898205254290248967688439594788756439377914273047392438064693324791607447287518178024326094087528855700898317966282153985885125428788645839255849444198777730069523870304721930800595397496807682550622605889385167461121119915956107329684035146166314288505372900942117035294251325435869987775795396514411468174327398118571783812386755525474129882440890370178664904165226082715841968932314415375625568110749595434228280975615229807150024289595835417686707735513380850811772533507120542702617294059506108931726932663590617063129837963681833516960256905455818965859763064185327157621237666664507140769417297569408876473314740376200382888093738577321091542950104494226999212501735583788063742868803417961040138974157085656853133072734972571794986378689286815973130673170369579993616348257171748697223609872979590748309140685993934979866595901510603603649630968878289835785494474434959560677383977242567058914070877471676422678129930778860807368650643163014019724763432973854167750828258283720519650617197351449415732839689680309104101854257372389252920446933271189595407190783363232640364174638667729921287938340809772829597300892977612856194185388186156433875945551791890623307772217562432455245759284495369971524940646616080232129876456522120922778879374903285405409386111328004387526541066275234996431893376899320305285740795181005070055878732284814563248847529583727014688058397336123143144224452260527450087812019699765346314293401695860686497951920058030840809876444610796347738692351888650295916573557249105962896310514636968847320072970897815940500919570055001112953554003844202819555325179266973376074389328201873415183697404215700972462016318173900967013615260303203034925499769572558953846698312770139918494693664865255023362787789840922355696395531672291618232678765940054773283599698502200979926114626888450120215175155461930879208959148405029738903880580027619616789117511649840093337318497725123297503827080676165364252263276109647585807825268750215730229058241725350430300970701329522002910145307145499004116193390101440213106734178385477631284942414726901764728044951930086110981620196891981942915045985846734521515386265043521791652457328277443608988513181596897076622916586740480483421651221461990634942990953748471784566387595060831544952821162857318147610309008876696174970595857246951480973751435508475061016755162360427647438999083998656113977435420752867468422809466457662692490140586845222028950739083171336189735945505480051559562868111661523463112850717309298965714738273976963090860354924207703126440338141090592406646398103756762612343684656031499949421942110013985210203200187262478106152104091462400561580109605999980173727934696362117039897727002847387522705473674180131820728088177516361047141989383150335712549319056847652328490119569174071273496972809381548047150091735556871321652647659741421515426847861964455205208904026779531196374805345874867804206371197427781743828505743684507565512849516895412074796016324345787010011109550511517540706343189748838398073437917501563041478114968026653081661967857262400349216232000926593763424113833587371466115051992816715084004673720282921231800371224793283424882838724364897248982431008492623919915465520412871555887778018701845014042718694120314199327689606345581779617879189646462542018994339456279258714430048118188907248444790128407084944560103352930467140960430579422717850033830950796675882952456583242068073620188356630279424487812938455674143858179746123987001811770134234158513145627957673887741321921555523471391566870490603278987318692171018201019728262736936866460847359300089984509784191869291276505161677866272997497333655209219471216608190373004060371505100326786728433778615215143770759960480436182201654090765351429657180525880179499430622694993646855422483891304840721237355300809821485660843708904448189287670778567467263575840537727908566258746733916477969144669842779935978625377527029703478175836353307121793490983577445924985092230649802304703021596441464862949286696845918294916019993715360679600167686403403719378130020739480130370267610485244393924304224921816438007121217907362757206573959360362578588403317798834706707804127835253677966176571567949889980500684678441633151915522076853713066715673076206993312277210723453441063437353002226777346869263795571389566582572706799465186364306132497705032491195612777579737141142436968579092610997812207414033708412771185675683328116365422842330458139708185049668339000692264869861191864387892731732836133376641591235644405148231776343200500666937052121436028573335396804830735502797535910179426519498959903691816523419115762997508690387982621464156193511006022349816095609037185714219378475350566782944602071837330903949869408049849550011021732519223994414374265624615991175392399454206959852178384812450308985304693259223981255439243830999836582058007884719964501612061114695762737485005182859814210234686127439681768767081340865600039502245894028778901131016884471244890445666837264782607004096906764107952100990979177225605296288266409313050966070193591516195794471225712287178816489430695558876472526481445308050935856059832505314840468416518610466563735757412636733032020538433415623728886086830489901179428868907852696498104657790341987136566688081987688812738332416100860571328062214553897042577122267671698094151274827357097479213123473768365764622412205819862481349055096997292904190018837489661419385060319816276009029979845425437651662031155796337619838029006185129847090726260410271145704568549636227072082405700546096379883257033221799004476246364576039109776808839453513021814039455636939180265966470619598289050178915528027586489605589318605401695363901155988760773584722893435794219899534990742899983470518306821384448017635171293447782636964357271344475041251456408301727956392638133107544980716092560201091151036561315977640322599508786732078246173188281745298796756916908749957068478349360619560691461071204476053403826880993311943340235063610520164141690341034435546120345348474057619332124505563232255737579988057150774292556601533122252574859681091505178426982959356563117794952120442244364638500287890035116795352013622696849528327182279001180885342706825302876614660776169173435370931749314081018720776189514780205679274850061478190012715048287897280815943617840282532291453860925489252467181699526033312880340221688145159711763721932540895712431248200881898061844241131002350012229557121686288207358335721703635277511619554683786403311034095230049474408048803153069090438496153868825931985450845080628538378020436742665688095970524455999906379620845526480534644014945717567206277747743365920458861638143699836638326165092804119687656620879716285969827792052003555012619638586735546505965198751353582574959936930398342919617454212605024176415163647215240016608086669974753681718204778519592134701012989258714938817106923882859656286666651799538500966074690706664388755794931847590164499103336045118557378276305434056545105323764802902756610639826341717285579381727216502946507767083472877974449046677212106931075562103341175622706336685094653229118237385093562451451303552190397660704433971189385197570375869030335381082166029544061734984860550295059262529011006226806264629562453615402475190298726606127632393311954058678707368984333744698355592874149381853177026639789137426043345896572200423327169356221082664679278813708269629827047230156369408033783414457968583903573557176322785098806531392858700149742430650802810959616480555643647602563892790471074176791540256218919496980549981347963474209501221676366251283708965728821676084516121758011599107829451152174880643246221491294255435580406627151293542661984647440262247215179963586406312747668311104753485156198427085579262516809527018150089252473709262433975295162371720275697960470727013784705140326936772229685447163610681792215636855198329650030583542487254270177194049134511221500089823251331167569135723060000150800087874866996442300229372670448455819893970650586738519259333123861328546307624472457077710970658536753879866060229489337139365240498162031823557485029208691430044861446725649192542024273001461195649757152928470241753558860994175628045593568744977078513847092541949501177190883844738166417896671689818279935007697283269441505689873946566997978497112651244273092929355367773493015364869935730953280861252814196280833898158817572954638917484595590422110124894227401749170770513102641091192164330614863677945565341765582264523231609533584138455615804405309376894052165952293697375076673674060628462203772686665006706536388288149853501876838519832632579143575143822429095344381314680330539725774679549060298021949752536510970918123573553046123373640581926975932179279379287621651015290325586864903722876779494259369921776118852279122856621406124607623469282932991402408786297450030665625097785706445339358437493683939630165022378473979528017489445781271194011329160571350123859161083305569465294268805248016630812339898372207860838329284272503566601247798821987530462739210899621727114633850876845074852033731925545519806408162350155508741630950189402093594340819577835455666482531079197268219204753900616319307193968100396478167893473405654993575641506422983583753067701273490994096723172718302652355997234629236298020677532534081371404760611099171696572505249070009763399039718832195976747273725273580736143025102102390607972302766181625378994707382987312497502341041142803216193093272867763318707195168848516722438227752984054343091889133278338182653008169343580988496979706618971430483091854934462426966091338050727325232728287697129405248347648326221366125508688055884093416397073448506321503355973154219188337510471683692068812263731888710939549753824898905210613551388678935988822523152989331240864147629537264000064252814572102572653394766926701365599133755187583844629604913006570100795686297957685407250004835925001828498981524143478912328176076985571253899425439884740933110106445971632466258593257328243394879654202065917449825187917990502948607408956015827833352811557021668184403075163887325493576707075393614488428646240476887398069826965133268711819927219477634088075284860003249471498754075917289329262779375961234511240227344675946311007778045984940712502967234771540147552649495423148154358963748655984795775319627913637131602261033058495749259180865862498239932036001354315415801361377220179423350790799875767930030034231111797230362698051353069871906935828436921164025944980188804734393310998766919715764123888223072132159089441715079619670591320181358064061403495697200438167044260637832646173774104508665732599228661256807778490040209299301734377871089024496227767025690684047206108910115600243507128633399853079452079276612108851482107578097518198357593662449009693503637048207488811776054085670076226572071522065177268331544061665433656060967203904014434404101975262004152367150913210081518695325022057475598253852663179557233095884094698424221403755879547293712600155512626203392946392152764611001999800780446143534919990664954812142273887730719513724670005870820442499730587145490188748050700221940174596986597861658369942689651858408716884289792731723264788251035302041362154242096074393742034228065033793611282566708048491870913935689171731195511355871581688052285088799818167381845904097058857379830690762374133903512805062470543344220696124551546430633180915026513076906439586425313435241410792519066896813286848248000173962262462500790172472017243545580454241445835196717714490210129410422285995543737853577995425457413844546454650579445417715442248968676280972586124118971944252468251897714715152625449971334020530257372100014444997512502039112065893178310283394645863940400708164941752806111985592400573759603593327627802384843605507180549135240409385569204697265829016291627546307459368595716645908567663279686566350930847351337812471001901741099972408644400025112088178444548637490751240100067822344640297010225005455648122219627732514875129301663879808610647005945220660309882308437983262442910800247753647929541974442833952123319118308681416254112937710391593474353342806540134320423754839871367529237492305629001998502303240447975908590180489036628028748320824414449646026022662335188935337587124765866745775244774447642337344664850818836891430159008253148089162331431166415895858025415275942659319853692012604496024817164404340627839176375907707690548176225631719593447234347091074502519341876383973029249037741095177893488461925056929786800751974327322098368634154264616394385770492837288715557151716343797880612579513458334874229381729859991662839698367444421110210503445777504505191768183667159508586139554012894502612105419592673197228338469703322155983532739204696284191218505899278313011519407291943516362217261903387721223740911914026638877465851256718015935974594103709630108574954788877647866982517012535200699133990247036103474563621822582261708609109721559515237998375539245609684303107053222811947982343700029590175628230582526329326793123860799062924760601751584226681251909228835331244925969663684377046863810088676695212796126683920145255327140027192360295421739788846983897857548435430240765213378981657777138036701567009849084369084220393730193841473497857256454528033982740036800736979501934738225386397781998651421163631470412589567757816090586195834769429995881932556049132319208537219721170311216642682684534530773302096191950008472979819090861752107313865665538460724497934420542368664550798673544978692135704970382520707459387561617819711215880643585170741775022047193822876555897756856842213653911602196984856048754403303243735246527431808320059459646796656731579822513800348771527886612735778244446329188194385510063662216859575640898048808018619977572930079556957361775218258255408696092955182720506733791779059032697332856472765027733721334507635269094746241123215621604271422239322018972898685286616907090973406607693576343490707496414453298438048958716069410385888306969473392665189858767334681041403894458782228015535438433059565545942302533675919033658159359390723547978246927800031039552000381041650098639383352047658935794569253073103589543162263168419641116016225214133936695627344453473773973429412475114853408323395242842596492896524172764176967209560473402094284403045488148817198966213205479667874749941216017173491883415964395477103761659337802375021015177490204423796422433072579509297941693507033289937104011733745450785761079790577809647565853264908736498770454338525913450781390745832453593514344203873776803379444962807134878477984785845168662702647226231865004272215935856906781861406800727710145085468548985601997731258874118429334512274630563739529725860270956820888627113037740171644747523992278958814628434599551156976570225868403898585899979243410807935820800297115929621753357204313796694255258697227598352700096148106493468060916912366963826089269781853417610367834832648378232376467154644991517410707407335453426224485380596434279361852163460948210050166620104313314276072665575487703024084611289251546213705798556588726032078095367886475500375103840546073321103817859810620518120312799885338591559150265112908174611200226486284392747638663627890123686429380738466428148031323690581238003612083654615408564180513565344815413174053669787352356762880177288241491329071267429277997904604572460558914959427059880072763867015986506868654854741482234980336819190369548361160211515691828492690404671571717025337770568925285892827141398594338363757476985929719744678341520365924034903897779479665096213223106820999873411787205924586633311337870136986830856189287812055909573918189155257046862686554295951179241984200432245353235899383506276241357980807585434169501241380673744568546776473662328302023481439669678535183179381056920357230199735589326955733474761813532580846408987504682039624756038467125614947322568587879600625088201562618138283839698628229225209798506086623607737654493149609911026622002701902846825453684766813198236422897457836606458552443679735563188499344116048990351613456114810043765377485256517086229599689244647848064554817051680083414839997691786155122503447685114344241956683933266640341938839318800262262877560906568414533338204727445420877499243190211697118667433138663108754501336487392305148021813185174593025835267953849858278973098236176780645737848608879327267017500636531049307375507734112279038931768990921063573812178467530158287488989749682709896050216719284910697044149405609736728778451561919241590838351501164022524363497254865893646949930883153822518829908235226262876813148177000054821617192441584304209299069302888207531717324288806742552066139342809467553808481963437854797049533871775733399685837788894978500300573141656365230338045179437481459490372446546337526857107407472378393677329839348013313993061551491330068414375764620789390495059672450494598949980094607019810616771982543751187636492861738997643519124389303699198479800665453262980235146012518063749310598552488365163167741367906724408157616574557957606289848054297644015770397506783077277881490148086200494845860636713050381942869521978264651481418172545728461627825376193155320906295744584997039752719114972525162123125822076904019979158663996358107653568757241216650755683948828368983799419169837108930255136643566034973383062320194669805308935231300826680566248387560534801315169647384778504096554504513531272064471881013593358147821170924650888370225625792078258713251433739440981772267993256714756292217422943990439469782358044514931272314781322907359730291713044683322978285529151147831981105451442533388531739836557320017986044474463345809566479568115628651490370616485199100993041274602923275675364627025731657270824178444718611331317567914809113176153746695508322547797840968118414379712059742879442220149323932432732775472840561269153035376630917624546645386443675198653411155300007556625600770535707086023514222720086869919429786550561787952692810069462840953786000884412154307011831214419462408640645602700388983840932374125715058663298346184376568332705696715258330750227715143945700516077347252573307565618822429569149090216482749627148833303862781055555389774460689877708190140371864708105814460204495551918762480619343841681645730388021369702370468940385251051010485657132520736618934807745724984643562210824668261936316047311599566865283374676751394585557165894201442603778090992952940233127346167618168792921212032001597407304176817435765412923463097548348916653210290819594266934117593951718088005388045957140207569685094578736851329687007399686770737764798383320392593638184008676474855862978489693872480524143783816520467086893814657413847346938339729766038614007002329844735505868085601923339759257885835229258190340924349410815078532856900574595010398666857644419782971334327801101230663462626323013911170525485361117705089250516865775861327471614481996851276240493936256108361458090531845133933849273285982551635700486256801867491189609145463267204618413524319502579275484512031709423007576049555165680653925918736696834138014032066259360199365874366691105029401021188241604112296983829754236398082661025729680705327275960926452388961437836434095459056204223048661989025721427489005372419478737604304123525267038157864515246937524960829467136176794923921703534983497700710177106851213028740156935516874686794710965913212805724585963944260357225761184444418347336772541730367692228135079995504893826601447973993138876307565686595945607026732827868162644910363250690129631079048372100774578857537120407057262423286127105794763959367811576710559296612925542719152365717779273889945523248565729906601532348501523338014106991016693339212110248408662406902861528859520362167576733630019988260272694258934755011131753965185223464539099847072974537856235165645530150112091806109961535129612724418565773391526122235004100475914521134762359807186707148651930114118760966800863642458471255972753539767318593218056403206762549219346424244494056484462085935876101988534557815244840211243143732194717939185527958062057740730731119301865265808786201694931667658211538216395001772194548246533794568025204334326723303588624431474705892342591487303804821605159829582383982209662740667775928959435767045800880064414241116691612970135351227258728522266380319602912528618577693939711063109854668403735603497600966354385970166322319333835554596034622873771610890439489032258305287086081698972571223596613059557556047596356064041111902153351822628567444055300316686959281102354993687985423128679487805123810236983867321741455957445888375818927572534836282684256286426185205515699441608281913851594953606946615845386809352731027320114599313502719138355431489353599078248051893696086725916464429203970975041171005456067553575552152181616641531109980160977178712369603373131456463966464506165492513073521377450478831165661112090370496448736642231562581226576065333299750543648952404707429887266390023201103694209862151364584617658591484476906224223863506956266414038476483967073092938006341781878698656494608846585763951186206123977072627682292785051416091974741574804270841678952510668130148623570245793486950395130068152958444818957820728252458655674727482936367208386453169863282199532812980533196451456469279747069826767801599931815542849580036428649743784770816523685127764283731451021216932305637065329122587369725154976883365315603945954632370154483235293767461909365160471521942799855709068962945766230709762368896636579209375913750165602895039589606494678112439037572288381518623284056422465371834064991307519290028373712674557683529484598808219965361771307579613934329443094594331062226462121666801219660159233915875369069930664935057587629662969781322549600427344427173935774687484774954352755950588453781541696875443099460415351668328577915461791712756293640832413503276630921241599255148063412518703762190530972156947244204412103682823012699025410243898380093412188096163481775463346835105694954008334393248959891481289867454933926023292865758540079070070216256145055584039183487103902693216319041471474508566902414240310490662331169772115992029116183190720860717221413044210955821008242642424281564682391537752636119381922374030462786314908500559276498648457116591047015381048543739428634744386729503740103703197216157580246380588083093712450403060819788506772475137057710375709683032827332453987272237401003130361484577824170872243888104721744092937379064074050859388837512748897138260985695938460497422270565301258993442267564369237735551738859454017440976516597039443045866229605242849643895136986407905608460837560772518470277291012547302585167020433529017809178308616851154951262677909786410564118047801980256794164434680846880104169973428823378975059791885532533140083696229984472888326701819063041894188566170119149939961714393039648414418938588348707846645754910092720226427192071379013520465453513939997787501089272392296112020133190253542196696623947090386916941471677224723778106932954760726448868011243159257176763925590781086279505265733335767598185408920675491281920261248533297271041915577125990952635529082019547325086700915903042825959248655617557056194800971891529110722149038621625873803042627291156778799938168616827732947710422730635390488826706684346864611949394244170788364911707983932095642699269459347310033793503250361703345070007914146391265101952370884686307802822568881404542504554528273506476981355964826146119200785493495218714367139350920901422106155782935015477217821207583875198897052180032680966254855444559650028615158834286863991437504521241553318731156416873578374484644373232646109319744524557029471594134840574230661399483618235664420828230469627055237161491203982783127636604305645276859409683915906249535024166340018735999546313428201687758509030475832557998871206606232471532685551772409201651458184988590418961462905980131983309411614553950764590199451081163016470655000826895309680320021606637271918852287696030750525112425271972161207567538099571926685569800974014731536520841752059061864867695775114318987046414926293017281405864247384865126209088983979895007513889521718902203304423564544936212402142830373793956407792512295963224117452084816568406373015952047416223550813097687733569537224727370012056452986175849537732015000902381231391431428361339531226392091192785354991948662382632739461438443091987173411755072336340670714407396133604738281302931368052868573577383306259328023874441505658954289277088347226397345568622333477387102784572097963057904875280344541363726322393150301100071260809876026243207687893101503138527384273122347208036971769395466551802121899213672347841612460144994106912348274146104751404356056442655750347638181972811190500838612274346363922663635228474742206141425506095853314537734534616033203120647777122658392203639545502598286374087189238266386898538173012169617293827554662740287203395793908790431023332402749625740977371718884377691323096800509854502665697245611091591711548362419652438303744648492076536914707637278463571174068072462802107804904273968570970527989910546109422945942542195895964154003408071840397887001437207668281642227070297089504800499187935710662676683981079236925671275243717193329870846640085339249839858650893689105190093618737625577298632770520821448667277453024945981920011168256801228233218270538046833648104921549987623565765127635085921331461664143930258590390457910368507326439428038142245835356105883518057962398760156494117213603882640707972313321716992858976345302882399346889753419518391478505223737661626203759462505637094768053115750791099915994175166084379583504681062312665336655789286637031518287878026341100771791115165641066710416844203190204035260893611842292211664342478357661822172016120440506850590558597689968666658265460785822279327403388097574300974040246810062079382657485380157022379776985005236443638171275736148717695439224968199005805686382777167935053884768683772305314973546022484542242027928668681843880548006414570755193899853380996430774407497021064191761775176447209095748338587940257810689485957318922932909215632787628012865222277712362669576441269121306956913797009453927161775511715656961987411938437846098362988805640638247968181160007664946928204539615108592012736239713550433132311510174903824246421553594095113817342193308327726116811728862567942675295859900322023731242206977247833878496071316472899922336767962246793310735175993218023000037239346558209165526735275947041433344345029681711721266730315359161549258436751959127048210087448195096388602043036697724782642646261492110307908302876299314769877308259551465940837441692985251727564998365451823252316510511508643751106531167065919380772159383734307509426236575855141290102169941046144698892719762025331804385242821501942298513315036178972503593547600947330226359723655570799204354023137553008211034760458946290713172692569040468391786962929210679994980142553951580463220162854797731363738277522220647720009092646641205759365838346415140677169401999727570783720362441513167128920620760650349303529515023379376468070116258710800741972326608475649417124312409031927350038742832163492189742575409932902817441297301609193310974945876170378731735937543546249138965002038666288360513430322845854631375429978551792751908527522038990323322572337511918436658183254570683053279721400119228227937767924824420346995609540391225268077492922993338933003917049050081861867689430044249885371498629942077942480397014929820059328942406848803663519873202507418164539535129094290921646658863547727946661288916454870578802533954839610984056938949767906958807633055295842903515099971074994190076134142621534218709187860069959400662351460214829484885476583966570062580877429558568421400054966500474757502234214682611569466469292439238528606981846630496368333483509151144902631598938672847004599309421808288990974309893729001927900052535823053644370576905865569701116665290198904726035186139311630448489985477444375196372632051873811419112868255668877853625628458538155803364073990233822781318088760874235436973885465766173392117967647686809172471611236885758432875136421318497413926110619503362821730683115784284061109762191220136555540461829458044138575765724862741201851353762241759727521597432907476655193832298220460463240024092155781442877608269003057499232702038257771828848454823454808559328911734017731701604038638824368309030507194124725075165808893281983856142845398548198901395447078021907980228488634406783613442622123533763120540920181412540237123163047871717455900822798247378554100593328686383057799112313772333913375126571913921350566352296774161358042427674186829828840575021821309647519489914408155751182482922880208234039171691041189093375792935181475474858335476185563670455866206246375283500980694836160160058715619823998997984050908828770110285283173740465300999431741958278794279107307194157110024211232076533639746373822119425245470268571151420742364619505697756478905022375917425757380284864015662900097986944184237592803505878451075443107637443184651566224224246218061958991687973388115231748433062931747448462643441227831426392686863660484696916481349956672359626638785517451651025352629835891405839709081445043338899281825692662493187881168827924249303280333991731203440829635011641835075317021977150598765717793483852565623651556429075767728967594584004215650043918633213723038069293033635851612574236154427879788280372649384251782317506950149455529293165568897066984312256587163172201002074669999819270982263516344837118807280309807551708088104091938623096279833111383631748997379676942127874226066454071576029346464056388790181994963747459871063272086445354190320975009028883595303916099574068760922440969271041973956838489348414837732134709241344211462373518198453912447549070209980549100328369444420989731111449321845847208244324558135786766082608552771886293978627964128113225459027215156642946857772229548389357729308024266586371324029140921728626506704529159925486805561589266314198818193738987000158894461297581556495451838277887655386121054013671936670632346358115286468667962926086595997124456865501094753315503700086173261916508357231347847096201388396121793281316194593233691086909675162217070912419940578987838608982668046412288197868404830798017633068865793367061097498434425759152696280497167924451769917448951848127803056267549525989548295314068346377005836350639281780925777851344463425574016291357782174841688922251848693079426483936377501485551210337934747238443524659969945600908442784482065844680921677507969313795225563088341599737134390034200729569203790556961259439977381736622551420745663663989470901081141795182891369850958095335807640117771580800358289847401945229615373335272444987862733774925850067247689021101624644171904382698723888399752587465586446655962929664407153662790198198603312585110990112582701135115929969564266003312110265048900497376648133293481296551290285800450046659795982287102656499578246486055386384455518077375626748597411276651979786781556973828620113939855066547300102120972136822604545296851962695852300826248994483158715480947686237278525373979585385998094978895252359018658714846997866425178081107522917643352410712296472706893797888879949314162506326347967639801171443669834513051095919318541425313122182596358801133670175533699205708161388088566004124746207240556221253515855877770153557450124507096824833184070571400743683288696000551121866007621921563052796420476853771472186487010832059371876916016516355321452045070167441264827695406304281621299757225664823601499682607285909539432163612880118445698514081134413813109840964658425133859068921315440792685158702988040889749048508267032159994786602575321576473667960799829639017236024131622916890524762293308030947426701669934451203225604739502165814057744537956544712078986607676269488170009531698782725583318740937228300624582365189171974967908170667602519332601905825384820857486361272056105494667795384021421024211516234207782805195036168737385128948794624587256203652739862812895382602859913988931076652215035860362471625825324284763330878873554074449158811587452473836530043294144849860751364612718821918258572621301766645779341259301879267324817003443917860431540624447820604595928242573479437914577660300325780939470857681220618489386523223099386339993562059601751084526747822310999312113141011878681414415248693026973494726807246261559910662599066907499717866983779504945897601723018283417119352383787331396424513030315010076477238687053541816531039129384378262085585700267576863898079474115991755794499764886608985493527740793238873902938722749242259497814536375859424305331720115447253994323438089396505206820278092832730129016906576139861115982133436427003077491198126948806521222768142948790843284128690918692735616201717494513334226958229359785574366943257405061733301971595450624135020876801615570445540405578910167399196601866706115294811738757136117216941291506907037063833705090646682957297029313566183871581556362774624312277721699325727455336203656340325781162286812182913959356090721693539098683125001325756796898510845923405113719413933852260514645400214176292136822146919960147796015361178570119093588651190701962737018663806750115283697012802362905143213104039254170455694573704604723695766182930908314279218760434273819110513741979777306798049017569888184833656411258477855364888197762434910172579519953110010617049619210765872704571754972670607897432783337229511503885077428338673105223293821940669681984830063705830507047739431336457973440539956981798795639770562004566185275601359116586894338530780857694682796948782113241669221346587768042400905429587211983507288519863501359753486788590725705535236345257415982765656894440345229780502781457830160853675302223288193183818525603568641863685420701394093494545212662270732100356680841334122687055615691988833726089551394473830984620817858001847205342077493308893075639080668775526868945730011346961631074052216720612226308970173576042916387758927109270718973421896031729195993965743262995005847309730280444096638070006786586023491705660560334207979086478310685378193155293142331001023010309522966509332963549569028671578186796304973890053663354255448382969574899129248442133762500423729290750915128993220302968047967809181325332031985348078710402502179072686768018818454983162165130121503207285406414160755557776137186469912583270529825019816293411886642888186513894039450394826403943773650952719085194155375375741407609929991213375031475625686604216387596733076346763791615483577771592208467047651803354420590820605042140402344100973242699173450926381891819620192868290044506721832524265811610929854173709086072977241454465678371730463787022486018081773152369240125760524944518342375811177308050150833034565822542509779368210987875709725188050142839154509303656775406252236517480962898661329666718255737429045195072481590577674068662098016643577003497310859196843212122607907336509386199006759109335496841249765476219445579700629360837414304792279903566763435830745356740426255791660511467929900487772374201939646594257671502520471160800257549372108799473249889715549751550144876331603871255557496375434361818231049498004619549309148757490970291538800365497623379221105465434686192189911026194618189998797108985408379185141121196163078915105925790292878618439593694010193161780077261421414584729623884904187650419885548228483572019687490990779773295499192652836696475164907742850486298627656301396560978701965994639755072035428001869591621874484758339530148270010590167670896896187717461751350047658261042007442700038695918027722155492855280503925953396120373063243656328206024029695760377333896253731103937857196901583029483987201615458500544506703121212461730326893550587278938575441523307941419500461631597211420824606490739746977049192332232367634092136065172047937305147880854327961561730616053537536925400116995544126695360795015333583330093084122725105213264683997097207475892643684404144697505299528126715363705135289039615533533622566468623050566962830593736198631584027620211394965568489111823902402231478061875843883940152508199171346023361575933087454384102355910344931427336389521045669855065957772345661895069952481781701073033335578600772466470267115464045192017075897407490884856236017415316459174889504207134472805311747926365680588692742416421999483457323124656277960516923675306600722934966507373681952735415794959762877209172712107262138306462214118043211009276983285311087926346564700843562552945211733976161180064623531109425584595251472271138011742664483168985415526097887368375205175672792365109980577697736145117883409234459901475049498354109647702446033865447560686522356251615288358755305272364611253108143284415296095546288923342998894995820929812982415863790778695213855490107189127528386859424604652434461029630646761525767928355318834068772730853784848724549476289378563405937248666561272400058000408867287459636616167223937011081799509906718607524933882245168657479935209593396515250392673645298032573353126150405920474746262568842753193913965819061200537185353755042155373265252358607750082742350317091209789413775794919750470039759242319410330345339667077640879585898438742941963138539158122895120225981425031068932972944240693276209184060966357157384415801877737511286637018983723860700770075035104140019979269626395392023556456481328459358198415843426484379136069874851656460347632522511002222780964343923090956984074027434390258652760989340628237884549072928226410706489563409295255832278613424572619475343265106207083739004620866210484856458641197738947894951106798698060036892696219149901253708466255856984679875025535992329619946773945938335195869260092621234485933694064500845980515951293472001359831376830950749274997012272210325091842867796156507552375588296277772801051685116692283603416422078640268928950626603773341013803131082189995779689039031021806392969326618554812282889835409146634268146033293865192263693889052924216288724076987273362779921489082809406618364698432368643851115893741558698768351536558582539489943522748496892121681117731416531851804379357798689647512850353608128646248611732021744117174950777898505882274067307135132143099651075033963851040398487961280506849891657890409084900899039289033720808586485895377026903655295554271292210669745376537512679575538073429703251762747041420035505496510587541797828540494275521161024130449253985620351891673859054639942508346217742338914986528485950931653317383866708492637155781299796176470925756740244626796572893039914876550660561593829256169889648966873209443530049554984667288226480196547754223187852089862073228357600068381809907600133154021454888164398763042540710745091525365343021496251420539793259706613024324165270056653403502592671658151668310466717184543542222460369155754339977787661671754661155830066433968863011430837239799576486163446620198273768113288152692209224440139712129454071440602655836484440737553466822775082491285809678533944862391147565085987262131130632910579733779352572088219497134074156540127554693898511481633378064361134517491014060291534720978723671670198261284826511606514507403356029558333266722930442574755171203877307474108657058610349654052807980006290656010525873972732985170933406603433794916933106271431388236954126103767337509779318407246327020578358932783321007612101941707565107295320588286315073796342543688655845934361130999681805894611454263309932480361849717300555067775109446301835039773605276502418121268440746699216766663402152120472068212360064609448013496169064143529242513383798604121719501426248530450612930560369194631302920504814535793620290063096309945753221823755359927870341197268519137562577769834326276919708363494424905852062365394027570421831532175559191075513140148580002221800230410288627919430986383535585788554229540872535900060072835377589525473082257603063480996302111242194884056086823225405571404264440469449570699237993323875404614067208659664022870997171403213334216251195143147525632710156883774445052738929786941570062538624394759731249652028966288599392986327661776456466190725119206544490595767565874773858772221192513436718181516852188969313137004776501857006567369994402033062856055436060305717725681866486620222342878401592235767166036701513714281839001440113188904833124286121852970160992651882864374328054073894683514152835096425169482662378006706581701250092066686141965447488353514549886623852808675388092195102209963193621665926450338311852262549711017347750589697773241056400289821061286762364419435332722095714602484095071441667240344567700192179591622953627863341928298633194546672330477341686303653381981111142585458965989093191148313393135538049407813214137621951703959211935383604971032586465488921350567100325408892082537132696538670931324813083441867069952830314204561165121394876938754555156294908126020962818158393416052937833242380214088959663723985364207795082681407746849193896943775660363941819591021801988241288005037230519314828780135797613593465261711702915747255922178318528217821078779013535075815988271355199425440237414369950259064682524736013923554235063728419473414531333723134450333764995495383218908302690246799527875068213307811159938967772398781648766781771989353326769720400931307592662447941059430801461819606449083830581830266257800530730099607631241779848463014829398367968837769156270321039122205783896580405541957525365711224893862999843181535230113578406643345133827671614718357658292386276787636822239692000757480678212225150595331229735556110142379371702444890133613291558189572979750856931701493285428430415042814960693508963950687372322963412423123550863263468993126904927862779613832262574266645175380322494729230972101020954219982604301623976401466332145856250634448166277880641095998074117151743324370161439925705369861661233530151196227160804452819122098220634273572946000359074013630066759911436326230733405359499164923840706221130596236896456677820552464168161485327502009259219172188714720164764083159932564576285290839823026059539698068102882363073025740122777284747437651279022552245434907037043581434906540710355660893758842271006677963400084089100006979798101771361901377264478616199296820533893352701339310732090751606041007305764821550057412442694009522459450441032117582489779776843612349283033084978269022321308637454963664363983486394042944024248656920040021012159695205254852963762472511946189481289857345010992657728853683070473248505745543182578833515763113583081956089715791367307815138234765848419472628464136256483506557349965556326386612476671889537462581501035494912632388240721867865001180926781845301060108339793027015699785680700591699961176052769266110007968684713403716633292968730605740992510206588554646841606707611825357529197803164712272531528846184083268310690484981968604937378807116788346853193533351104375238489110768713991763187918944838423754266525954722958179502859322615460927899691532318437422259844731515534563358685203130009308122902717929860419925811252913250541073184504710051657078443530680551389731679647045774145076886371150771177076451497267970788550459266103328902443116522922929219954776522825770767640714974452530826599362274995838668901265548716671301916102381296305300014516391508386568058955064382720927344856042760481289482171274437430937910781285656858389896024131694228980045998628450497395919982791535599624540710497484151075344162105838221653445696402804284942710431283986258168238288002218655200076099755638476436359814979951390290892435686243861269874866344151432544810483427578653426871419382688348866162396965613874427010982475209621044627780574255342460959368158634659498147399761584686129578762530117455283924983554435452261375087604014143731586169122381329244479208710481808644044750862445261584806478624717608512897523904984105797522028529584786640730896341412117800365798921884057252257778794435784520606304855566321724624521741580609443869789732443446122373988788556136907774306691517606319303939863869483911243413024840864162731554944742348010488325580773249387587094518088198098175308062128974258573136748258539800032911342191138952976333477018634689203692366384672435399562019275304443012992817500563046559595709006058885368301157583742977664394633811978327896313160661168448995274664282300693840523008650860151616236476705017071501846291808134283432510143450424016168172063251132175172639117260561281110729771617793880817023806131662061925207822001398933802061339450042865420242346325795929092630697289109614208450552833440387498702580276765323764114167560926825207335197339240138342518813898325251108460251867217353824299657090427838004785416925671435751942378157534001582128640685546794932850053329043722223590054114090089429357384412943067675217848057188871480219719388231841859890803250185309390722767006117898474589214162124201497234390772914144580099826495251486325642821756364759519202225334821151543672532665054220899370260974529168045678377100158530504783246490962283399368220171445995238814538164243808457955867603326585655767829415213149583650724279631097177526372882264120261829474291068507261990564598837222587691542567818796482037589833327669223121097042024890598975321139989108373089307611193276079843523527030589936967766002014709946679639861268835012147153076576604429567580230534034590558728084966022898599423528599541935301099393797988525285874789749236190059759330938968238250565806952496477628865046942090084637477815618099999606816001273097691873779968520912935471844997349532201547787689225895594158151801137337505682411704104915975440777466291422824749988408100967657950505953411776326659056896964545800514219676497567584481785409726149571166911608909842264380597015585219435781046024829226578823778210658603506526458740693573493830208173784540759219195956304214568295706146006554266076489986195716506296464946389670482713323716488522632318592183190886770531913712334052956469152818939482419331917967076410859553551250728087491826270982991382397798989043510805088222239762599660669562754948217446055522226171814845133425193881848587091799718166585150216279620294031050503064500973902501160820658897693355540556211883354295449656258014663229038736703393356220169596269325462694096130581545932588657686010844129371180143778064921723895528975545971690345901508695088208317634493341202911627894726593037892556064910553964362627655617015148855131275390021356690245814050647358828336149680866656343239109433217139052134614611277139272230573596974263019771417574069896112503058341037053036018805091839346528757500784298759853347379596096759830054851602592579898686165278576655160582717177356655072843713601639611473383526417701482348557614565188284807550366737433062400999743816011740986881944715659695141704277015657797538291931880177866964949358876442095813793345218965393264354400642501312961162594848367926259385020163467500783017076540798920092364082949894030819172608876271598977214741039977096180924159405395559631481839340967765859619422086780114924745260036007695044781536351362341680315327818758115105780943613556821124887273358568023749725952987909401954925284934626494952257040586709430852125439090693152788821972577987305424406095111417881067820271402311023468087151422520095989451775540644611651414985819631433851512389608183972506808737744070743409670760836079653176916032667833159767030178848775772771437462219775685390407848138266952627591998431591172369627034306643941508585962560632828913156523118464030218140010788596907889972921302996550065592164941989453882916696357511490752676034423170910068452686861769808518929839537125318964117296578667238358333437137761756135249046332257374151769006838857291426837498267785043965200196622986210695746374285042342494702515394878247667315859303301138658074366583016999869731690637886289381606214512155364972842301926058410807691907240569007480122168973942203259355055866711684954074755616558242671628331550105046423971515317905996695306948808920490846349948773834734755816193684251614839686099599038137436191791544579827972881851836149809582096505174461064223700893646622650817680631120540274013025623489181613911682957597229836728362486539494184238145429928843655157563665819931136648626572513108752950954676407776371201819462050475747206858511769550238317592444638056660234588129318765357138694566281085363069441645275519489960129344259221902148089390873788926926805768100203399028563279412600657419725222179752191228899438550003700951805039333800703646301270159998820983972563140617883827792540616767847482786606287772386688155274639272725939523323457112089736450061377613603287438794796956997843377122647440615601650520865476579794731717733094465356185197181328864580322812668385460956948928992173691810718197341002426668426134789685387366906075006039992578286866130603648349893841007969917340041180624652715365389843572495142329980971880568711161006313582793690750701283806188288641356107932941451139069106652474924869800597496295295679386975550682165171827226126961928341963182074273055851212459756924265168757311491719946654983133838033346191630550286753227087543711925847909407034072332974673883049938212764558970422220498151171403633957652710035501504705949986669747023023659395798005428286365826822404886187040341839783328062623242560752202248782269635664606644802542028674477399577162790870269498493374590248364410463023619997165191541134733738297262621106324112853274972301650546672057018542843374317694451311531366848376074978847014004162807812031874079141070619509523542691262337218792056449767559919165892505897420398167147539151998909282394854362943098170974673826342208243523089615646280738459720132344423358447899530909648360119448867783121931574593857608492584476306588248839436862841407674836527969694368029366323223206562709213378745096673504676577118024975379323242778820249776122547415407710475395062521085755068025619633301844659806808372201820422608937772088054386834893145188837229412367105344462003354024672065784535865510492960781364470249378472428275897983622654341221903480697086793975777266131836189150217981210005196456969755409169979133979775274640547729581944679336307451617775722893574030218609400961381746310181876201479851069211033470090725325202672457625060055110702706866675501071046126404866009002117259826561714484180913512865559860587893022412654307895334182568579343343611970072386740369012028895202025210841203387229735001862587551456933806097891433850156025446743263690989754390643447780492894103662098513849060752693768622653846284878150104757850165569227016937966254798265181251664299312267353839354800484160053156123018133341868710833354898028650645114501021702252769206367585413262395936566178431712309988516976008127983764156893465099477044636246874228684626893757853732926274004629506523792198007082859315584234564616431372523230645890713023007338704624874016566657102660008225623584498149171088306356078527360703772970721071313390332213560912922521858630893521018796797837053780276453529230012635133856776755662269293198782752343627269442550023704002707181588366254030276979078006589300087585964842770410642066986885410637298768045883095495364074083594861398323164885721313276865648721956660757278781458255176792305136198681037235665746860435126389646713934650899492319550329346589577391740459931186358917573648996013395356389670835534911692228051419011017210720892754965385052088646405061355374966042228316550869538853494571150221791203704673366588015625623091216467051018303143683859464247321677648436734592612540356692651470021315009988069324809182236681158854941177582545882167759783622302933435551615385251630385311166820080309466981268377401229482018028958913751685502275876157290753401964295331699471900507105388130207416288060586768899080211422079413377871119507019890112363908016978151811313109351946139966163321598313889839521215945282546759031003966191792230341878469550371071553112902762663381851036429658953322526094387269313851188337628996113535243911690751970201828903042953272322644088518176267414220985572770666604208944266551293818427052348752654303065972910228060861348666082144358608636337281332920480337899182146618175310262630923407688536345269882803131256552111105765325745903527793003510534687121859233418127529965248080387103318220313881815886727244464595007344635979541491491233782805662841543885148120202429209596450422292438245493555897967635304815078129079016957987855782601692345008817174901262033666733315794155525290582789664931551660604025263758598381688530291621421578226856822662030043843261074929071844678543960304600269916581746039455004545595185643394049592750637361872228388780904926041209512503443118585740130755355388558012456210597870698172884293287936094676339788882640163586706271785041522145101574077379449337487314890182600499446605554688953529832536461580329102268432144945551099677333080942580123850881697342133366371261442041977577031629197297283943972922086644425886648940878183635760307966164438822249002945913283535421858942432460176887374334293927152800779925746707755073294779517367680430423593523832122532141093532551514080753014723643311095880396419023216750898154883004215485252031661398507599363445056041911380729620472437628442609737757173897034559832924726732776563767111449674574895074543433209658025002753463337822836303395483442010335309718300203909958870149034173329995370492980330023671569462683624714351169008762423376187296360496811023454090324110118524858855369636017714588637882609192556061437777449829968862035627302894884041749633394626884530449681416972631603706431856509806360258686651342037254246820173240026728009365309465480566860255261695263696724904789009168460191655915994491959688736392374522337377556060732383155287266827917792526560490275864083355024776620638528411480261094800750517228486984061349534431658491714385668532185523289206029498271442507774261361522048645848761704930607584197397672977085978688141933706089458610759404434162235303272496589584665499576223177299723745397663702049611964918301596794489080838818495791782180530141152824163844370164648254193467801152360379859744368910419387602418362203713632704718145101080660653003872828660745947231381232123349054203712295846248224665977632819703490034167548964362249697743859169313654666018777280174674569676264473781553380302351824050698698046859771061283051649296504345750673610737849507108893782577398476701377889018642949738021999682137241829987812889961158216560712492919812550326858075079056491606663882262647384833054079119175708877834138343357371320749987383606870394908416634885770510270215356028339489259568737065112658357500649574288473875045812186652702086628912567870851444427388884324486333641679921944608813881385542115157014598583622712038375762953602421057739704597713600889495792677596013306670456681029666246498242119695794025264409352935961088943826063926984027296521440740322476223339504451370259187438131074490310285799506269854382524225033348230214714673595874176560888813792603228695525102679564034511671933110816480663613861918248386698186079860527591257612787192645752645574655672089352270953877815809708315032660451465036195598471816001241631805706294291788463678375823432836726699474803802317982849175153318788620799063302176412490179150859776536981789747773987853762501488418472818984889471606197885323283741934253257203053463522318783229689627395928469072055825978223474523867463456754013008945013158820110066747822661593095489437921098998605191744279650366021524887981598345240147853277625473632369965475956979213565456290412594348390909588329893688361594468926709489091865686389819216656508453255809833424132847726589940495080289001200515858015853911350709342529458741106842539084444666105999914943947093806596420240405396676626468654686760377359347169641858901403281207596188956470569442485772316706419937826154815321467426070675598789728002113192958478442711085124659098159621728548454586706761705427135606467677762154051273724862342179304534562384056025984471728794853423209073537503883975089947581122456083575987403709989829912721933707067425066971372333581705566721633299140741389545551571950555899346878756071477671500104137195282446247625686771740289264433900944224775244299123515497480901667847296537538331765246556358582020747275592510531505172901949882820508904290255909691546090926380447881898566546556683239517485190847122189078025576656199053413494196284234269931633343089869585104407506728802035448810080201775168851441756744221631324452958825875462966101692066705847960484935045925895266517320721516363798768685862437085154376985018940709577986074753195500827105323682566608527182617624415738069344433771594864195393624647222058989474288027083207944811321602551995680040285848565907090847683371393044843900834356740494479677978814349996583916637235640609971408004773905127267334434915884727208361233999773925867234600807995718780242214646710680666116063901152160819006005679738645058024133018345824863261245246697878036235021159625979705841016374347235470538875935131046439145302044084431162513339644819919700204801058972026995858944390031280259595208168416958570965959884619485887874945143371248753963819604893924887577520022181558335274235833118857020065335120309950575903834381133275668945119057631203525380537762703151640329703858273109526697539335836484030487553321099558086801043609772136810979651042367625805492920376792019094210458454196543050441295981770297292959085655429057237980223706214457598993978127900466501339735214452710544506948512930218064800424421459030482870680739838039978940822453206331337972066711961990010472487542793294823190449051196696871271998133264042624535226664533116080989544225859963887124195218163477512992613652783166935745674171194237349440906140391749078264602908352907526310955091035080406929355459991153807191042345920794836556413896327865496756211645243727233893767383657610486670470565267869811076322988482497478977913324265222322413252814030662379401030344940780310779312765919817648204115821602657021581126203560973246180151873861662408377139061288369530873639425819070824402601939027470847159030487447226461695179427018309159331614804857421222330461755345228082265107232313752853596588021510238683489883598018783680868001742735401145900242956278932673449198866889538108105562022710424917072476548944827226802187513328690613085528196935940366909471963830960198996558292368289575913789841037267553969185605232442869485782220907466601232086493215145260625454068077580082408972240520612328929770434076555321478357653180712079192592013527017197104682980820410173817028680024896371689355314553933051638808987440529357791992219377175645340122268248553515244916526672823650242835646991081214958262347952661852847191677245534692302620387927271255349818386813343678814398093621292509759459724551996672058809012794882715850168451974062392041575554968200414352496787887402467459994564964518932565093004370237413057217144838363808158864342554401171913635375892281326788129115416254953540500808140727643725271939519237620999432426814252613321614753755202907442096787229226264373281218023427705726803084693761995880353856570726439011314466841304348023727585749386568804096665466831528921003630238041150846446473532027925691941945098044451041156665288919028015135838980021764622456516990975246752129676061979950781585599956897728545611357432651082376375641753787220095914945194787607786737390764777229005068842770416475049830361150642281317353613318480293523338633927500486317546872472799828155590340049041004182548057517763818185464529898654091866733123616196402628559846222438697264504488019693239719609334299364420575883465966389456405881095028399019193717131419170396791190999793350426579620045814213878652846066948488173732954339750999430294285329187976857724561409573447037587983494573606927722034942192118471926670909545279009741062702740590809446153754520664484079406884482630870913546157502085271062419496317080104753453114743325984759165796370078522726043481873143214350623459957371607041761137975690646162188741116475642712153676682683508657255666404522316711632110838994946376616297780279794914978462827379906821759109858992326318575382242614698804283233346756960595263617527629133603370768253938515734562231552292189495960119201845166276954312833679788966739239231884838236946406540639205745018342200585738604979357347089364743081910845562847517668305658453133059801767043591683790537789787380019619219358253878795106894471525839447062750063478369078174400189839841370676405218528411088402550258779071077003280376262442614518774474711220588251891254727737959397993767649312623049063833196668000682646715535956730648613802539512053867705696000597446816001025370972598316899634268585643638266117373130567315920315517340290046559404664872537905449476193148915529348586742206440959172651646473524320176052278313087964624941457548618738647229686902833255386849081908067425384545569408504997828350710161995170652826613695333800307482822703004114756860725738258080658210271425717984591166192087896346477551399907559850106247113283644588927948658702284709215746658761352657736225838753765882343416039416002745993807850794089301654093800513492864652345973878311636941492803613287871724649392713038427310038434419823129802368821796477165533781355006685095464058775764612929248621912631624603747058480820461844363325421596690104314890413495621738483695006808715362641568470311240163231351292718444908816370138377421183591559105066265361453536800685057428962825943849740157482948421695400757400692131796737953957951769838264482881936455131906440791974814192151602920278080463521144090801542675338511200513148024951157548331583661949385818890103063623003925606844871615888818161671228580340393164438035708015476469935968704138739314384794884689347422244368606997220893798127403313856654549302847832003828774964552588776834320115343772155804674758486617716323242108995569250965690220249311489096042110565682575118514826570028706699286060779423915901439900264483282614018544651792322805485721678969961647261698218455480821057348522724907739138978948677464677653809860256591989507771233464782924891284944555037116063334304045764346506845532364026951097525224802116286177144348299854399236826298726278205274675308907113602371532291302884010232996676205416581417506814116858913546037389770904171388392642791939238705156080566835138365785552181660224361608022504188011265863995584126872057330797465201994314865702710028117711911057497855303203897350134507742322043856305817471343594474970145158434293481696338031441198309999074682609190864167144483639994380298098128367634033098472064602170366909003784531616977576670035522650936519913052989278653299778402307974603761276273636713180429101210717061845667663116644166419215809546145865848731742407001428046148108728636751479814611221044752284409361866710546123851577623028077379532894717664017533575643911454983853788223339531884183534165931158789385672872214226741984207883439527698689400400148094806679131980646294277564208421665425505907273424927726526783672934038400243287227680665549197086606895678082750853590202376467886772705203902243215963579949357784686975402520352696266484528902297195587368728658565962202261986150280554502989708468550968589765662402607887953296951439013587520303047057678410484074029494197639528123863212851846627962999064547863494346623270668570636531981078674876398964546647831420811391152884524307903884342553488280099646671625996753894890219400378683068926725235434642525456956595263712445363921050372660108890503219366697626165610140624782126880108498217306883166829662014685461446664978931499615369844795044664602918854136189493950587844642225319752680878848673830357286407507769904325610691456485917008676135158054561433607623868346101805498993096048386425474781292546528272942152494799803278337813261365450137658824307051828654527792703514552949491629927532998808905127423034950808554961320649678553892352259101383933621564985146085315355397344064073767988010861178961305819666198008029874813354173058557484639075841706002587252613819888439096941246620007389551016416659208351473681485082948743530837297689534280570562025794472149772549930456304244447504304182562835703938084693248297208075374201172207925711399014470178764358992444782558576659004297963438928881551567721181814393825517555092545709659782369377408307748523861593179842292514370983533765953311135444022381061663270968964018853127153066285664948053133964007855189282580489198272215256389991334980680920251531589451768559422022574443658096239021313791152641524134107695464351041265804411381249529013141908642297644492331325805151755180946668437809490853597757430826698064715496090296940892963532262298102757441899050502832611780323412235593295111192520599389814780292693185802271215266930603509510046382300518849290850519116554463712821119225524025992135156788172842935147128121734175560942685055290518254222894756068561079185904693111614643184805165103933241400592915551077242534729378346720482012308031678781753370973105225568379091726507398775924285790406368801524102323314518692838231964891393579291370684853491411358715168831588081078018906970347161519319022524162249321070533426440855616401137578267146329426647823886755485112206309208777756008523756963587731136060869643923170745193389121359552992316564762170563404759777735446728010028711063541244103180148458832142357598453182016423466527154549441471565687252890718484307083386479743028343940964396490030601751241231788626252141722210933984861176398949193301652153835681823867547171415987613484713789183406534965832138153287288254193808945879752600920419392510995191993755522658751473935128009451680247720428112334167860869663577796615172035488697680436430299998661560321928537813914986843254804873963339126871745162405595838784245774046637551053175312724596854290737274381427968316404731556915568873106574102856558093164854688954890989240671700328064935954837534351912604912162084384316269471768723473205819462175381240793594926744260116029588847339859030630664310517491576440144178859035907518954014187996902770376185345963464051364398081395269127424579187642504572231317822598999885547641664953694016192036085145768694047635964445458326473094886040907612287525828366235916221336450529381798969261087032681688597436917641473042820737151744547228203457636454084827069523788604311696066145291836040064148754761459349614079834272920652915082683463497998933556938176626215990299457645729722337434149488684680544869166552501936667716377829740933060291428518772661270069636506819420339104477072207583173183423741675232060455074629249833242630538685367354832121851607608938514394850599831832952730647802143333557220716179654461195243035814607127081546500082963566063941268164914158969026142130295926495435057457932522202034498807387552107915814532146425938489549064331027971843239281413504302460537292768352349310145253622566409663115222407636540123663461163002902905466728004914825262511212322096091630590315766526817860350126407731900925472382527041968838505353649915136149614233013285863112113998694306867889670967875654724218373581914482953206030365863595522060596744251748930455111927223887919000335186934707271165330591072202736382971413805317688635316416989236094554795943337733949850074790958619906189593914476258143851467538127341363340396129504419162104144391130773017735439595950771965851361063495139485339805058511848283216566785831497832565852977440619118860421109785045921203433032620900339951220153659242108250906320287862205166945962035762765487613296438722288607128763181628017867068244179581728952244700633296894968137323473983753115736983575413248283097569746936842538244807814789405515265833331554822705587899866456942589612606895865508285189340003683803121938772216919203971445733245747933349483527052025349164038470738843798346306611861067627750306129719636705108104939054968196461058693170628350181553220987721294919512609854995045121743022178428862335098713167758045863357990038577282711611883781440781755355956390804440655972305326467798994718938731090193859396432197638788123441697386793461976234471043243841341943605603818101733277208021799002416643906192901523140820761305351861582676963312914728973168812396183619435263699941683622762369105522607121273321640516260043073978070867407991469567061979366373651496145182871671090826086427948528654663976218355614916684323921463657921756181309650748378760578436720140939991956624482892626388245764517363955854361272523610625407609650845046316519895390932346872579369454144121011145088092917932748678456713560315254836132735896499445391897203589404667549836432890829976563553331526175675920931823250784064259790473112178328711365017140301229729001427374662155632009340767147930108585776931807519989535048746791305386178438782012893592423286164721411823874215475186851689209610578904554174126708308991708578762536468658245262022255260423838697679014716299139905809831129561581354950458961255793081833887588501436603041278726308724822824089214676068290776987056943301171561621684834651258207184394338529658628610791954385285131106982283543191461716096104394607806953177387835465794503473292532966440429755459225237890259944506559586751642081112158127105484899209376103591110379511082457708128585903126035173274673325995525407611583832518192404437070055063769205865039708398551741435176519132628633748433026144096356225586160241346394059188915695463802870599930307123291734392116246508265071068336499680557186777748470917358398853450204835392513108192381362978932766428319791282907763695076062423811911269427861816389308663258019636043517870477839853226278766399725427538791095692044896923371207227702202949369748680153870770385444802816908889528786165435373436427989900261699669496830366103212010709306789894811852381121314398299715099786067533394916493013253433266914423693124098680433029892527170120374525718385074766961634305235991047399508320699743546084878483049428974688902023130792113931517475598392233735166929741975291184273779968399564114590957191424921065163949515024992101674775487489533885943039237266663144842745461080570097011604223657846770537098148085422397576397940808936299350015888500338688418670187596476477651559096234606539105158465383942703301214423032165667908203371187620192957129117833821252538722971512623499755088794542298935771162669882775056852367479749380407760530697507531897835321178410475273662379870249690915589015100001566148055958590681986487085450015490085944792341199521537066158052185763173241382618933467968493014073052527264572983893860975717861698990142515747154561374100778789075295669731757960636074170396029407342618817122980417552970969390839633917207836706812049206595366984836247536580740644900270175374849601748284018570194547363013763744126861717092209021536761579957717818649597351143277796743815197129068698527462650686790461511602467907028518457367967635588584683362365196289682667400161648473097959235212269445516214371944060312371243279584246308097542484096625257565604522374898356044411380709999353175565764738781342506538316823935606026472409030812259350480218055890539507566108583917551365815177819880732810899813142547124556035514423702654234106748679989781641750112871681374049555807625520227433968064761200076500899122271156476410031110024414369070548998077199883231636197393238465969152312931033715548182406141217918613735985203409987850317644424417987280136051464013611111157333751414558424970239879050122715536387783368306038535006350816343059065950886106147638168567171413836700589358411401784113727507083691004164096007572915923768320199023031401216928609308218721365702835791317054835107758256418566273334005097891856446500876215401120627912606190179622990416220444015708203477906923800844831135038383308391583220188208907337438843086852472000530977417624217014030565772244804194913942457296952592414400437191132900865641391612950010368910057426740921864571208308533653568078787861371302754840529639998596965125752726568793855875520818918101159925514657546163179522151894508349937754293681436239418363773388276696184484648815846513481847459349809917355224303101178004320368921834881090142681792643803104604550900844781149468129754565743399203233740056121511544863875685619219166014216647103445057464949057978602583069731427284621524787927377005336095935269564454270457516446060687792465946491105686764037149321171466311918110884530101373088282074078166977221362735162922357319020093933250741647682847391659390697160763952772997914823589343005610116234799656232410671142604241366346718244162647714063038352634071271632208267592702412365615712361327543793718465408884886345084267892473910847989271774263578586950742551419863278421433844544703012858482497720445006044685676659025933276666412137037272798825190084944628889561139752896593345617835960995548008999008429290569063959175075923877717702115861978915195278643663375370749213948270644930436510017356421993510900015129199504458395507681230601118212164659813860403371227478449228724401662968713970763568638619352084117070360563019811775689657213631968752370135157857490230736622391501026143671844214018448447698141145710463174608854586926517888277761194439179099715166268190160499400777596071035092961889902527692755094253657374088698526811145689228697424715062276055559208360150291862303604129267209509587384765971990479500042494853158964419666458422006677449443616647647291140093900271951284401617874858587994211290450347667983578983495918761535149474201747220560868825356475566205580184213955485463800011832233152131530691317153450534512442343223472765163020280066534958689071964074110815744144878447951445728531158103358579679190085247623632507343871648891084593541332006773790825818019144876518980876696748864708211854677320739276387974069676304885012008211386455472278656831479152572770505115267109280119146110766117656171311538106651248589851361697197102114424318860803245126850605401566121877619039047243958761127759025885523997433091703154988956967713827825851633357678780590580087965180588370713852049122089219748203325826989901417222693016654822198711859985094558929248409957402065555362476313170536862978200107316533312703664952504282373893055635093357455805581435992423315132104652443026666809160459129886977052737633823254998471868774838178861102686636408107913743362775510704783432054768702900553865964362547159641232896734995863101682301850881687944841797438768971484301251725636040637660223364002857895019246276159122956429312521585908124004520150431707973393709497620119787840454914193114905297183668983724313571730276715575673562265330464475814083049314633351380304151438501060189683832070205198383436983427068673568306049249544504975426751978594710731939646896270353894355143177032369850302879264088226121233903352253265244503221784296856115613887435356803733559020142069099205771363255331140260930992805702874722906536788896786258252961265455952852457142686657346929225700955095862817611633931009438189710282984291974554324183564282354632326575940240371760500727287580804628944695732658464277773496052197877033971333076833934507937688166814002082314105073590852327310787306860722639149689623752308747626130367689281300986091916560474216409282088917456396752694695074660616647067397537209670577709594542181356858348360743231968546215556692800535040380418088485514116758919178678874698592681432134177519918672487453958634290306324206051402763667262404232130628148824160491953382599061532192686459723437197329767556608784188616062980181448841974316281742283373170701823193120197944780474651622574200221225224486257810142802454372473990738486875051438142562451318289007813111295787259567618085369167895013650080595459735958757325603906134590403367147006995809528685728630313067464490585166637413592802428621004809917796411793498497933030378841319101408585854785643842107712273053171696158578506635251750967156593704526820931811320621130446626472552250097165486762598397823979735941209378947841622785130103057901131710978134633960242567744449139601750882664066206498436264608220225552994122336698134542331905686503819279042530992459871006165033103486544998150465381891269107282327489792778736140399587707574663550650759291932151218330689530937481243832629235869216319773348194574636702338510322023486558975692227964410110864821984702553475575204886096175030711680031571621703957367405041204520269692527700825566419639820743599580661402450707939198195073447421263019262690629565827876964541116163997172373500532163793711223036411417630809310194323213329354715559746617779403691515804770818053926017618156755408878124885613423653017797902808950685698568573483284104794779817309080697655959901018867131878180547268199508604718448564341873934508932974021070372030127317454905657690065568788795292532295939542400666360920839094738208131046648536839424027976140514534087866586816593405909723413521249321134965406569327572150965909750768650503627820441675993966683335113104911540160727728841197679960397912901522681551033023334384311555994000995394281589336991138564034415535284625525823917628147949350411149462520289111473451345894123393567064228070189163903603976237553174669951432705562910972284919115830325698849475908409234239971621752522534611461589579874808010097138584293906170614007757821395336803033212040708830161969291694592575832296302061435600668476623487118710947149971901370216009287549202828071520652959566946456577145585420361560372468096684008141360911272884994815092758255313291720462802264724688394953445283284137024786734802495154534852332795912888475016301263964482847286676018097779364777418018413938603218884915330863602252402621377531643609565982689751856916776583466745423095005310778954590715033000772953811129324783503933886714951792498889287873434127650155588094125027327284279063245376736224031848923378308838330127872928230499897693015549813440270651017567218836159262688512750639418938790699353103189789874218195946447431071358557397756275052627625128598149541197135287430055039654490298796032482068436643644652179945875772042725130798859190660450793109359435493972692803575759162149633205285788971173263619073808856187765491300672767970775640237789771626629117539521919467609783394340819281168215755844142902287266349807518309206796938103636877120460548806019389775701137892374494482008746900056734920411115819138526950266017907404325474442798813735143125920034194917195833202202673881828873232279424618400064034744717608683175234959103567404353708346209778883733244857435598289483018116433962215350810173734214526461575958908118182713407788644797278905635844259161747211987239130177563548633104004333352918470114121787001954370686486100941734971541826388973926979412460610130478131320873463699878350629234196224318393160604917048216233895344817410819223264138611988769909597442381593253119953166334168297505391696635478550455216693165937619803952090095342862083750526916138114791063045549077886003522197891653366808045740407714706945071708082468176574335618477110124627136520286562246699737347539839536337307846052532661957513247677916719833454350219044451090416531446790229949572713888758389693358731422728002130361009047199441488981932736861271534869787696673491788388760942401185882826580546122696289224875686982474040918674106144833025156670571791545798765344890421910838319540913615581850619770061851284584060544036274345887787228762025800805064703167166648140671157218056826440226156452159042256525517136460910842286662396810293877377192820878066189252279665653462926057711342507081259398097928695994407421726740175225691288694633502692490723417356800716758116768283467577209418280725803831087719692077954163761780155016165098133315544094381773855705936561192180420679094052256190337716958699726479151726417023239788732256669508326388708000444608555143137122723913276697295453539815813235518292288203975985122422825940247130445012016320360621655952302015185355266814774035054340960478671451609163870339254074366741054235218750218420451557976208813082177820676673905422265036197612871237372968401836763761034625454268334251600085817266391631962132241562177548188391649237496526787306708228501882840175529219785318817061761453834906189274440053256720872249747788807401615650812462776967911338027107911414018506421575252069966180794755070993049816730114262400281050976052098028888372313879052815479810435973163323152849330733803702609638558231772645328827790847639353786623334164528983112908054774806803511449740249948233474104434044254951684590086196964012766323403333157662178141709395953901173374438738130020077451316562896025146123101851323416982890603907974925231716398644681490309082989463239621634588201390998851443154214653487942604754341959504255124949168971922310721610417766284648596839390171970626628920627284640582512729347549500014614692812519220697723953235564250283273497644339248154933285999408038462953115323447418022779062249063216344081062897144854842869048910519033008205046058018710627630236898667697820208070214512286273718691078258776531067566202109380632660418558598692874772444348273238162972346390086541747511705868543190474810581863708625687601339067753852508168577833261184329765644830463083363438381190205197870590055668179537421232322829230935138539004246435887601245204492788942684069653094726441046295564716134081722590896837583000376028955385032728167934400858461505020600381372108553351024540963550710445024811971117557665065245354950388793355843786371749504226569102295275929943195359036218311676581106097000389887661639940760396874864446602685973133891924580232132456891715640538699931236308277947322002834447001118018733257393996751791012931095669263837734457300367880333914103475101982327767753762204689949468704460164557780275492109901071496228825519598014816779820367441781386616811181692705212859714080445067229923074697991523991569331546401628433258865139140229164020134524759798107460805815227135352575984829803352726345546422104492952834354720751096685910127570569349671226611375735470419075507338845492838514185320118700854519960017087641798520080282779978827725605742606004838467936570776178374712555516216858560506493144175874701473564847595091532287105726926258069166571394999469268250544095863561808526150019117180501799128546198287170039274025598223322889667290746280653453060269141448084810612378773980940680587358983968288424334015374637204199614828948557941178453118759322613850066466755852245380601120770581526244943866388974065204972390380357031686526236597190800444697870549975892409672413238009341559486178495922196760585504223336650987588123916912963796277199790070201342907618695719956729325076590536733336541061691353921175368311124186486912649547783527987287206141184257590489702182689844369248288276193609410624935964797876703100156343131601403139829522339052976415042565783243114178554891675084819800117433969993749663570619965390939640724408400365857692339413743824238364921747621171688240588524658573544123159374321369072461055841533824542769682942207738545701263541068795554363469355260609004786021038768041664269881855507686620929748022410837210176260073885544696047037894711046705040820771310619622741860571853284244559567413448059865035170323517983393585560873565703572324659731122618175476123308919485382209588609989882622282358810407640085121867959554914739905574748069375721153170500843123577768674354579493978834873856761014787055981913173093463520952217178527132310405900476042834021504830091917319246334304448649802575080857812481922149266151130482532490347791260084093240515184114630839271226046012031553833361144996844014170198485096172869526027851373705327000878696151491321897940332015291160129400925525390299282897720030916671201733121704468056066558381665356522344012558032835100444470737163834783335064803946129541127856213949169218920173085825106341321190252820237186867183788375799898008405594693182118595110746892164343324440776587658781322587083776055108054185397379453880137483461540679291546229575514927280577171553241066195638839999269450300365875446007552806038308815386388609506247894831434717049273515358292244310891681016574832791884237162665157325092020663262804511478012084145074404670052492620298721572955909101686858559207235116875054250255821132782911984835986775358147452995030214472452150710048751485189433110072690369753366255761836547869908277860092172180111513923485450601158020513844877932731722259733539337525554041057998814100691663193024809297395651210941346768926804753812937852949082977332735794614850939174764643635714746439741714140287191458966976880228239708501885326222686943691578802547971154302774234127012687185916392052134166198446802135084240237064136859169186062649796212048500979396727677218476173872194767749743824677009571872258326373460163835006360181109973052646306851106684625148741279123450791130004985239929178858890950137782049968318970667222284467350081550432181810320562696709195094396113342913763198663698979955859086266815753535744159815961986873800811664713148996975601229722759380978891781842350299617259911890340398674311459942248555771211854956747247496857559523642206284649887671678745742954086543302785227040927813000064408995553870613081288468546005652209338127656195261259404334636122424723756018429286063212770755974860473508066472488742821921430339409417938181814428699294738277508502932313859370315982185144183046898003430334391292697481169669002241262990298129943453078122973541162843901270735132596668847778083395548105616375174097836716501343786522717399953899747702780929230811841671579559182364583816274637222556137570101464158944265940342294921424135372000593763493015583461101700032190331755450746671968989559562704495570195260068006995651270412095723279658059704341629700233371806557966359309651319787520519606861927549830501950358696248830236466700561846014099391562576800597402228059162519108670229577048350578367551936851635726168324727578498457215909601744264119299093721516950313082280390523163584058363107509505229697185690538904649980405203529417378075753540872681703539029302733942428000952465940338283067648997572469944529730887869061850096065398118307489519601629470500946535627173326765773434871627707466194767567074163381991664650177130797788646734102512183877505868140694829220331028451081417358984921461749834492102162385798971347783849848135908801945259017019556634868719345447226324440809353046096283013883952045292541809508924504406511669335170643979720099610956478684612711384730793686860604020214650837514257918413521090337315167093044906750547960480172750974418576940542614022360653394134162375719309437585802114356774466039659900754685964339681355412842819945445216749092784066738846484988446776717395267569325472562656598286044958132599987423502266024982485613391781399637290404554243799711082330731409245468708054540831264390321368222418240335297282533706927770087874793828725441449810476354223916593980220627309116895668166161206445495286119840761542350276520033897588240678608404181434901345526832453798045981497794659467683657550340673265586939475375088770373291418773806903613411812087251223275588605246910581647387524113201238767676667568550113619110299179198994806277179028975348783216450282178171368529954367314819579277793720246028188981197361935339148092232977285919885976628760870133836977801782353707741478434163915633240945885145164851946820585901161556924751332326146091787779850785194804791912155870181284170206987698579100856534461341677382209715799671399336321677009261730742605186730837755306255679080936516080920429364162873024331485522990591624822827240213806350644251972975948527029403478453185353417098058159545293564257671635376740599489271677254980113916492616069178028238752790159807914564050670074749625416303869986294886208619706635955502589503090443088207421072609267331495640383439839239419988879831881248901509582300823706791051083821740886643606297691877017340016918637215680119847639925691893287882043796997177349327353876238059274091048415638473944495548761921934808014940653953011978502987991236715887374099103978373622569960850969517996788547122890321353167334394105244846400500107067578908379806163703292357549211097257245805777808420534207329194745399351479905565236991003428699107715037020011278878796482198598973642919778685872989434195433832295436235393243730706756324191152219913156172967393019142611525862927113787648431337004223936849321886223976939794022471253065965752790939153535749255117547287231505210046495833718470808188887915694346061684481723327520802566486200759090758921670638172127943629690888685586641510158203577208331898895274737782573416778847131540074017911068877482614308408187619803926696415650796601656409120117048019394660941575183324040321815043718214129697495476237359876165347497016453484358710696926829698753374723667957499403075364009888939917512710990953738242223947084610182205441427525867498721135433716333090838696150539191314559778780578308365457866871121817540672141777440753780635630459668381348619148824892269597183838181300364598514277036589506645319633825539584132654053973480254984679347200619842159089174252052057110042185002469007340664631959906457549885939962905541765626996033697169140196567145643521481425061597450420036298585214404829256529338578862580330808606953223682598364617208377931689510857332111870723003082486386277641824580227586569324971157094771298973257890229389068497315477518003908040366848217873976632496690551639031057065433407196555263421607969500824429415147926060978296861879758150494731115250600788718120291659181142249681235768885065620182891174789366516142007901801025866700177015270253676649548802001420860128297472535502216543576098411146013232329334678656955126729862746491442389203009600191360375996911098434493268994599088017295109156230279584895034074825777362616203479549099182427745783386938738930167176172180265346069987027910988845751235355248507322290339424198285741975600048730174009538340274595302486610537970209397608052892235665751017299546401174958967894352650860032835728469163430599942333142129451412702477197645711296586792609044142077380792198012764322357709057064904861534926968185520241839829110459275141863638181522320232822326080192183560642944527879449373368647219357533255645161851878352850413796165064864963807993544409453298190337663114788849353420114310493409910830641230122191691719029216227672532432893264188647294656052409602275797922424714234378077449511168390174758406098857608892241897102203056219860376604454890966873327378726888830451540341537023167600917558964422500624151852750157484310564355165943087166876793114301702155797307109982462514159228087554090177423337847071357641209823234042671379061607220162696121014755584792687363153754470973589778262192319230007041417663792007107560901180915655151710696797223012509127368504306582209817704770797549809545787510720377421121600453566325760691231526002147905360287308489273022375673808861755037175320538882744251795803973082651771813414054452118142546325195560892516377658688123525258322311431645095433641434836065183346989138956799100428763813819072703550624966284139988525392248190777677630562577439053099540385139877939275133220874524585106446364614833197581929305567829298975249606306687178633710618105312113153637277256298871281128428962183552212751603850163884229798350206343546186273677659840452434713482992971095617185587451793924894948489323121752804580895054033295946923240132743259546140309639988568722507475661796410951407633025309012847317470349748798674353328894431302825276455351388265471341594086354270873671796830789440068409584004461098008832861010559770383798271136698870953873001776932318691158688410076256012988473452098146692872209638473458212002731243989756528404236007193115270455772977979233714762440019084234495278511271042733638335728240657052714851734653521127115136653411873194657056708486824513075346974308791980759691621080945490191585981284677231162441659971020992072798189578462436407922919895757765055492025255423740764230917299902289320416967134313354165989227378261527880265819281400701945929583855696056883587697666309147527125571935370449026267802783638325974444386948156450954816186207247637941426737650522901591497255754876160929609517873920449029745131603137020153713473454826109386404749348172137113122661338512381769627353823542607497259238820470540385339811409739657521196086587481604362421166819734236227937975528831311388230693135149393135278620104104073828146517361488480928511482058814093549919042915178755614428771996186004853940311363289906498107204823065555013499621742601770961126470099078746671801153289546760222869335965608713715614268657181095358886411054451239113731964208391509556025060923148109956591744096843882818019165204620600037865366734394552124362372641263480705687330992559185191381641464294238912153147673520479253187699326057432944271038178294192234007324947164020076210329478158741283588578969865745836254861595728826045618016791149913085665164985261363293832104550995818829775691670952787144452238277313762307832088624249378457108613660882694494569788781836657434730377997106627596253422672740208790942605459593848636715165025694098682812437338795649601337937426285219479053044097171969136812693112488733019191239196605840875912040481657429759548204717778912102131061374872411360191818823760201552434488219042113155386956912347537129052839842178256954164283578822889855805926198205709536520672107981080174357801591720585360071580949117185064392083532091418847864797673292387534871846997922652712029893304948599455082297113187754256496845131642760852407338420934588563732951051792979132865674984549602615588334276770529981678138374624045915919218413470586578047302383644870445972616593363636342602858288449964691596517540708281797141919164655599234392336341362923649755602469942302341083087421480393056284984805115616874520164344053806393459514057577430221345602538613530062650893407753600362973377758370954521102222548881924348975090100847862312461317657833451080401004269492673259846410349036858575212876190432692682759645975461912272644302612391353166131507141309061494534039244349259989056257017848189471146031018122844831326208982507943160167743622054308403760689846968871925153887407858952775188099872224065273882594244788178917690831522848688029342141580079654645949435711372896976832066076891950097736747470901326704237969533870061451105590529897818376849689114619682097632328425961827340384501816069347516447644142159492990965017990672170252716843301515436136718769159013006225543177586047520456351062388979384167341136207800282271747936171314649235186395037742394481169582705728390339730352531355044920082706203861334210094058084769256345532855068742814348615259075394880086453040626107828426068719460927135673001437683531632657704048063634248449469821774400248894230201847007015363552960435006716699530534967349253184115260169666690138925179056971574305283752237211338143129414523642717435341189769110376372729379639378398977050702793084073665123211156350252421868389037541667709226540850344471189751911830392824004862611825346741177209858920799947658479004021611355862708828370999743193711451824600831302449229750667444746209404188920119398723023757065974460583614435786412651836249344766961435122176549478692073729688709485936820084945585658192487979784512461225844801931666088197884521482766135353406767327525163682102309388299651968749256840381084933244998392815586589604370106963840496958438101881401116837781971168415819644534294239000658314306799457116378152287620909108306598066292368209245539681276612131832209709673897669005590716380616778314992644963403332115259609906593644450232796716833357040122946202665762354615866132442337987957039906819416389553392593213370894833043015147273759684098653275812672276848465063906014434573962737318961099576159761124658326514881373896481808447493326768976552684222537167523843486551585314359879047396649420543900265801723187899245675078498818156840657011587056637493163537413318906618406320797273227273007536191270400685586030584216846018053844081828328097579063225135349843879476776516367229203930329716553514253045992459094792702466328071112458591293535834039519948797051754222334515912240377618563120964602845028052478031178347081415251687495353688093912873240290128355846084074678536582091359082226218045747926759418846569586254365401657440995325824898709113714307493439864179703962195258906618086774687065815773077228475962774168426453727708846368390213344744262823364390613321911233004602593969618746715946322989362484959265041170678637872354566983487699927010249134136732629577592231675859783480228145298135526352016824422607584955760108595353664563311741268142978100017447823513074421579646959847687330202657555936157393385428793720534505074129040436325242408525415256568906050325387394747002754671558490050395593488895691629326241998744731568355565879375856339995004182306858672065431747800902033369995873930465494701306299846735625528775456908392834367441252773089761560068951544094365951234684272547397429665088464686525909370877305291710882642665395156409576836217899478993002234970633217700239962555856145644365463212817991851136442712169794956105881758482557038947157338502347409310338782226831845624744081720858353470121242823789323366397359542963657062131769049664044769824877968808503817943945130732366629899065574493213899868040659363989355993910937446207378895180518541487424456265943449513233474684018775405227328347977409859328107591759723172542144029484097097021518372903475523411641242345033612126073307133945023221283629276868450420907070425544603931985908889141264730721694914077843908106944910273388568055851025198737932344947385322122316726328861879002989351268219841757798495171009637775366413209887074658362065819363514687315056851703534017719640564515072942727299729421358540753099007222370664751302791120333073454763735489609190125491152277586816766113484371747312921766667714310650243886367396048836367799496249432698861284858997905892180530469230695152004093111146383318116232126831488237421941259864164229562766643965424389853598649594745539519812664874253015861446860179843735900809368843133513291919854899357140408146259375760275074824738672420097804147236648903860686532135749503392555385894582657234904623454934614604019606580160399187283495468155582190724291930145523540009692687750381142890392511707920805571995914582980591208368583180558368826926422027380667994074415209563158261514999839074886255757699392969706787633615797982835656935590847165435561678842004316299523438553243690948700427731899380971505108520527159341322645422971297156069387832136509724443233149344645022008626606069307451291349937268156965674220279248794093462845487517381811731065407483651407350082898008923859568133333620377591024032574367623228566811600553383931061601495450619105208175202172888685576205022446294715304770337022782859421189593241310392763141898722311758387654058954605074412167012255244890862680700856151507347801901997037224868296820499086035125489778570708623525118971541386078069557359033860071412471220114807859537918914768889313087461349986245407783573576340025799537882568615675492535464410942680031229952615435466218667426478681402154108227387961315775480424400142957474858371161960427986290098979727462577875522978742306755687942825273117803181773134477278951544020476305064491805055438336272613182470232258111339889668098949996797316999944904326732268369501123059221936183658783131601247612119312114850588851295983011680935118018798169327097954960234831631557881872392919989984594575729993470507804337285995002824088032492462906425908253027000410028287591888699896173582756267827077319331348177505137353622729086891810586766206811345236393248447934254114685589359980505730951892867833804116122425473097081565932711204152914567868063296612634932628841894747931082591234409328580562666079147762704974222046996185480986897111060154766365196706932636113621157174453974707282664122976960113827837615790955875019295343171697441457760725315981346496457428949738333886645521648043673165323958369177483976134264161143356950052561424996464450531246403514429120212323682790780600163893264938922243879104395691147251637131750886274108109555195241898628409888044985244357417733949093006616229715309803296477201911504413487116649906664898519960061214188153269145729402993591727019496036859042382322668887885407660302498820571478634001225289202636973270287918657834075237712932507025057196001344081552018399131401619267022434086782366481271779038209732949278147222225757268907687107754067926727865130574879226447946184389246136959313685840551741770002295822126927344537660216687594392117104973037816367449343292475844393172733782966387799032505669958774705878383776966844997918371330738192269722671872569304944892541573114721397470222458478006855284563790112550684921390805946118705728618818125455432764067778387647391285699131634123457962734688605315282306201465762369214182921054273253462699567835267894966711364228123834347964950829666658077748040547972451958034670072656731854915459882946194639846309088983737420497965644333237146838601062184155716582652582226839320075268864521810903627128220899534485717766845388218093473292510616770147245485348016743902284679558394878166870667455575378085167958841940277118639514088536369662481722491831882894117877221828638020639890019531450326195849707205517766024471267676298435043808872226441297748039609641587169463574578476010360544727022592230427890790581708749062258008451566939820734222953754430141089823797563649840961129843341390495504233193736855694825333633883900539368151864407971942579157730998147797631091017370431275959928378580790464376036962025836194005238593283586540313942244958295713549045563288294636398010242133528706156987626603047527219388993714958675065947777927054950087672535228192375287467020719114723446613406502144763974796965128564966076935119144237658675893996537717109978973832281204968337147044297935349689086520255355741523477370660712876732054701741224783547336058705763207070649862680074208790890509209077574503392828303196623927004550012785526952715452864744093782589976718700851433828265173212454865859917550110375871860402508206367740406481487297590992090756660713055826399257013989813748776873830537672282958247864772168802262176208915376666710417444112357526929025431389520170602483413183981653549197738281503628551989298290479780623763515356166007341633493343484708798203960638875266780716022937799217107667710223944164582372184834010669644818570965905823375597034220798166412903622858030827408585989380315237269367098060280808135391274538058892172705305765927036376642109793210023778881686723322892631640852084791079517502241456714548040883537463161615360844967313266415760099636477383402110854578741428285427470457736611802328794954790432350792038687591531168812953265705964861295368584271428161766641597276053203860305568482103872310488003313404002819535634681776404784491920277445454567685167203329670077184910421444432655483654209231933125586117333198175595639119880245721908819085915612324990966851241587278087792570401347504577269650268204247522536657162023034488577698958999187414252882410908550913725061016538789573050512898022871922189314829531686436646629189736773641633071754529846481941583446328943287646288781599860486284367633774318054722519126679897517367995867131057549259596901951847786764990593555322395317774961668570195528609475127200158172311659504912028221887939858197922227938160773486859178598051384242068909623309911400876554957209623253581131320387221733972779110949066764983817136543659572224825220934404473038951012708818920243225495087440735712775866138406086457855983370321932224706025911802384663712734281689962819358618585574084848445987927665405675107583390122068461200311816037115558866142257856123552956925790306152808192310598986612982097924047354649768419183993093708738848553618619212839057243826699832860596925138316467733556543453684187097334203417858806195470208742582692194183392977034949125570574326776472641258884110900373850532749792338511992975428768522409147590203313210736693833404222299594588298823506606417984177156431656686968540364069505219317568502818724941149602539232135611458421795655862902391535319864559954406785298343756634257552610416755723310814248641971285335161633566538825656819897626771312322311594821367138388902972861457701270458301902066744691660563380093270523446451002612570690109576873569464141351446857998317392899669001921787047054868137809093089196045223891131615986097985001466691693752255888187293253465482653156792585405027010741494699609034810078044132829517549798765944152800977003565393078069777433198512453996090502242424379181783491148237586580054946898720251262998584606956078186575252329399634134038563100976801210881312324173253148596128630146925413702970811063389525050137835459199003487564612503634508515944361872398661385358529380503760282239465851456410806493327063533853350493505387117000145087841308386565227939468858162287912313497607568703963309116163013769895791835524938390704823351285964704227082741467136366784837049054963613312184854748157033635483148395782319561360367360481038075144609254048927487394498048961484343911796813063563954587404322857272784143054649306720380148830404502021752774625545076504374354570892478993412338139276409618801987863534225388281903155204319236639784675151499632577622198519126600202272259419429436083855218508694058038323568770440892453247088994167450331546969879357112854680404414385711616823372235963546241687009417994878213764793800130129894513231513586823308207088329008085280182721070203724059355608579502453606181186230120804847945892656073304202380913417892058113594753455238215124541803720827285829761421613074047811502564380396585206879026433232425720776805207773845419343482747740777966938802097087580693197535507958722906421281557884845672677917508965684751283988815429555154716633588006462707723819953384807677058167309970909631454051023715880972332608804415723981956682716998213364697620884332493400618378580841712667496331049024988287184151242857575613888663424968476894991838030094718848182975558950218066660503949127228510810224723137746819459888506182817929532893169936257635982765109829142171018998832416026001750497176607363746977447606683032992527844896090586614667069867110889299269584797232178744847676349938180329291750671652953063209316729969322512236645073121556363377374043361438647806579433052436900889448742959756663716144126266339112813677186219593031663976118506745190629574704300492050196218410230448258767319291507064736687018163499314968679600397248316342795433721070925445420645893526398695296953592276908497072661461598011582021227978259939675765759906095623092054316243788683719805380865643247208724399252198138281977484305188079706710135157195013745932016274993317559516958361921204079530692430971189697874098165218629586113312826424713984357184323793545585318012803897518636154439977241103272271227339311201572990595636075896316503781604888755163515646227475551357587597860466059416485829443379507429910167996837361641619045498690626817131436450295792225695494877797619227537267258922678261711260007927433132515664545613280236156731358588238364240268241753535248149808728722876027825649244319763756847444423565815974817708154859454293275825748963601672255355340549314011000306706575583337183610968518808014855665250113193652060918911306383672183983971152692107846144807438099332031147661329449640914927513130252861665109766472330751361481157162109116683929131935306437379263945950545279804146800339401363117550891622165745383496346230463772622757553172731564695896147186447284005783841346474065795515877360716813317261232127532554791642395229987692748248345304405613235757426580210361111744918286652095802738922977729535728770614251423243051284877265184264916523708141081259790504307607041664218187518529217675736817141020465745357682803662358332878890404244836142500522549331641700978144903022065147314400547986571221714162233550413191581979055434746158402540754008612980874791702454628880272356504470707008199591410282393986422318144903767389682256027279980854671324678387962023362401705538660639100672042016497185088737466992670695167600392045825697865285936383647481544843320088181507304319345791846818616219073988295044072433780961969547300857804973982900383608957279135235576489440226369219865831370783989719622974571639932085803265635430099911866903251928188248663086303523792354555971247502978344692491983834466497023652264713077045493760538235428728016125940900521677004953189001158198713052535526677979668226789868154035000358942310014070917299462457456970847608675690081214795665220490693805757656422659448982925454068622416604211206685757710569627811486684549409751451578019073479128231593466151463987090296858370062305379375685534194989933322822888555790480965131020339164337523071619695918272883945236947786367766374170182238157771934946335285866225201775168183814900276990464664715588866429747370329867365635813930855967437962489262119519998089728092025716059823707381008152196384387963274076641522158362100617707374089481427643379469137361055539925709873075444124553437451025169908497127478861669949435999904992862572592194514166783035655250701132059772330443908936338189193768327705471072194910973850338193145237392473519368323382740726520103520233158142770355309965617921203761113251466438994603800766674911903776079830112254698144080653111838301370167842230934242528076245304591170553832116537130863911544603631336915741963089176366699801541064088902459506708164382208428351607587835751688377524712619491492711298016266851047064765896438837052442068886517764499480393172466020601289048280465045804770529626483209567581429900223744492345615639822817712907007360003714385861443107720069773353551753916894391880300152416033895102898574066086322899648971061144482164990124279801041110475536149407822638650051944352291527548404997850586405315600155579617098978352944701252719024577897133371379347207026888952249139931847752029241511409789211563045148363238379174142837144992451243815675769291525966356869585362857531021372945737991353745734395448032108121892830242818696954000191941066834958189814697942268305290363997702731054124093942883067762496367593224857936068037171859340234684346792560842447894282472950781955408877641073355681646329460194006063233422556268772042101942633945021324416641354638706114850207137037667021553909531230970756934353585487221296158620402363871636791617423503421441394394386148355388021983918415224597865172893282346311801188087705860658950588886662755905444017019309286834041452746270740330617582005668806772974531716198325406798796199792760519637411374381734607215167511067837469941575283789627586036163110324482631359044966752679878347107641268780295620144621809431602955691107996376935483221366854036163610680557876905165537668949399168792771889081873008808808676157094896830984718283012947730686183519758930070605070086454743657268537123734454252291075944291420089455911223288458586105539575738840645905589979423196932375345182281008529803406734074676681363534510166953323967389460008365326972737289475939056025340201355846963048086264426996668318399738671781710027457744390406979151567997483001315806510803051316656752729528209273705800513199750445464296835638427699009410654931550147793612937372016568335729648896770990001580579468515743984329683275721133135934628229268168502575395824296564222305884024477323960172849259123279049557262877930213598954940929329358290244393944701088112210686106139449240798841471514057860412976936882280539866437147719777522836240388236606681846030987937569968865632198566704712548912751350528522760734637519358029371528994440473461327403129676575715740890862385006811174799974275323422863317271735017007724067219579844152603953807372522474057491059605122936478107157444595700740356519642616891735158254963103390885189730156248595926677301380697688775573171965851308207522024628025388431996141412650218550067229427053282484303441966932178288494345881039043900927064694709934638752145234897628933795830498530081755262362853117432300067753636448272557717629836126107688343597206688853854393241578319820686711223293225260342389693963756953171946289174832432057331493496806818072288451455417249906042100730300920196164451798381554371936503839098055629924108346292402272996392026499073332432228917415525082163575206107009375564996601925245210891848135299980425701126633720778335538646109818805012272922354248473157766315883350549750410145885407725155085839911439674566625124722092268421998394991357889813784143503752267969585285178683568867402888318246507010098083239309796730816114047689041727016416618227273382718606456794703442635801659268676385707164897427809615441605428938530705190169877588229173028217117730432176431943463607806754039071076305046603794213485611597162496723963583196180865449097827391310928847917748095637261205075404709824194678022929189406188467945464709866160689387631364583888323456263030041190387326853604794001363188358560792298987203278253904287808775368146814146556901819993160070993082837883121322671926402207541436470625204376300051606362148375894870453398862939657599758241965242826760841221358629167858834693616814915519607836414055225786712035020445492308802872060379813779944284200734439210727040832730257160112936094564499605724062898754152328416979525342293760498752480523332048253750061211963847843803911770075733960705351739641242446076882916276807088333893700103235451133011469494725396001368789579420765087347719757403853895390821218737053560808986517887429041735264192450201592622807543819746835523250816794306822845221099538515206815285839736920524032273507139188070770038290610573770406986327017682623860244784750585438054438230896419495754381560835443047950722225150065184738312054083350434445468155257845731206321066210569305391921769254941119873336835436271169824893597839022964810721479532713889330772573296204826699574002992735353736920233280626951010512191286419116496099998474145547972821569061008952738372757397438746610863840196200753535079499562354822691214128617359880509033348391343624415133627183054067917130601302899723862939161095567424946215751882063976811985140442005822329825061818297119885215401077329785138488339446270307647415970422225978693105231652004515023904003003906481148273467969168363858987841209169864451045355015715358535232001611936714734980953749528446164118797427598089576115137380284367853196299292755539013695818040521246906790235227375213628062538995082849779955655645126166586054971472905204870983296886218765549306386754020770672260140967822800456649345262986388712980970516166208460993273558294066472165842027522928234686285095380538606897200264688718960965482572320266759335730581571229189539493760858707866150141165291282282325242377008714979910152063331468740795736701397094571053378090672786763559923833385652768360335837980438404601313539923715293707900755494566949123946056208346811886549958983449532909793622264811735296576800534126426927367482389015722452957361872140126194323816025159013482735577601542238156888453676586215082034174699759883510837328132652442030930798655593771411676120063633542599870857178157180148352634791467228791086779946956533645695788584362541009965278813990169487437101999264962397024619550610477477918440588619071964410609200328302365703734471186009785308938704659421483098493588905973131108355288151281148295528995117197722945509049052921657717843032035654734384799526408925270749223302309365539719777156591822723724884888530539061730540875685456457246984091409105874523636887390514496504942591687840839675846486402778459738454480422200233137582297126515954616707366117724103835008185267355408298468933666791966407409172569668146097592543135642327814852677574406293054383767613001441758614487445971845867357372249255003539223562905966154127022100308955207925966616221316638234450673056308108614825708138715608214869291050995313621287988079220139886071741104593024408545433962949693293871666899176998373174451375132963532008083023193643291299485438166044011862726068836201209477190562869761054578045468478452274709768264416866272706236745642141906647630714066412107339368629863544499233954913439564567121530392258583065110798574374857720495503643920319619929412002063598577975386203254301024704165211863454614609042137313659238450441106475990231044343650973687386662854526897142399035679858687674257833994908508392972152576490230922932119183896290409117128364468031360560301050539840215112730925298776169015087803786552162610341543878324093333129487127347005173773966162315229633082054372276903750981564362805372123486438584534607738448885802904226768862701295270861955561689129769340805305000841284658024389018028253410525458555265468725763377186482955152802884359305884701563124096351421563877218594287589185642163279900106363007371622732863645195542994101625838764300294838931537075896448694647031192993107694644081781743112476720348587561960799230575554832291888308839378998676329265921348690566461948795486269928634244705503420786161100325720392510442794738191314528990699185601967502476557404569212778255399549984013912791115275568681639351370316597938194361279691148567807491020094337119321835517854424314305930712374831119010130982764263468536362405131882820464382208766645076813634718605264523525687065276651366673746884011885804591682380597576649583949649720585853784913294313490513839155832870595391053871442269164685634633985848427871956663224508976944518729596399625571689862789743110685052646031614118842232293402164941405381258933269109030191891929773700547582145659675931455238589503592536693598074798974893534520952741020968642781596564153858621006505070525544256909058227594798475723458767829714964267483599398606285200766288158106137497989222785849724094670951839407419253702235986196982251997364942185074057382621564611459430359896103912432004657535480505364420768667716849378268295716515332225156987631050916120756255751680739527713190368981395828463411700574290670902046196438468320674150044448046142270056126494465023834580557809596099504751454375978279786603209801100373244854875759337391984676977472805404625565005816092260415909154091558879549634123712352622052882651082390759737517535343315459335880516044321182132038344085672199145501196832262060499164763030370751064480654118457622967086422156569616191251620757700054998619301918313505902180668752318403892887076190482606315834541012657099620221644936274449210163254365345689659815258382402012352983080558256933341948126675155807251163857033313387806213398313541869279476656015960948237674585816026039124107908167074845691289203481386451398545178000922059405092133464812540908345595014772152912347512341201018409530009625531420237577484678530489632408603081152323874377076563843410240931797677555772363472814629477233552951604337474855969495873066190137645331212815393070798557054816068237341097351051162507156674600003140170996654487692720754468631483438617708291279214471803570476317198569557436008030564707611332174480082728637924546925729840154259261938787237423303946962928959572985319651654950607185245521784187773427653234466181965878166021418068129877732291288430713660363558017061140935500262238420838495316693352847316265932781580280431747951380309251757296836798346769837165831948991828281514832354980757550125861691756384710018789212749083566991017780201099246357694708062240388244845710609677079220557786060830041754687666188793192857744822479797101290499075523869032360990016680934990289633313683027787429173866962886270602821576775030601712637942443573342393863065011728281816996141475062540267815809138128515569019343642417231338938648805579382623841843044692738246398109881582920528078888880463912456012515534485851364907674801983306000346734123731880955291497227498940075971053248489023619590892768840804642964395637535035718868232641071456399811120538855297974666983266794625151171268375459729067990535695307827109078022898814259200252555699077592443428639967111905091817472291925965639229851396498940916989239218588201697962159041620132465967290697452071465710798938930277779262743038174280679203261268110645435145782935391140027351817643748041880051796378183355707835056562768974160400251066309337492262576577546727905849185719799929674017030347216581394751863258312202103902431382107267505066199808579350092207845932262264384615170001539105175051050795740086916172588768393921001614961563925223440287252420491518911344574854075226449859509617284886504935041864413275146724069138769015689337321395609490501526023221556448756374792145215408685806866812621795696793190954120576285737674803404913808169911505238704031295580679699725432174035701101429379604751362429881744656372571952744143115219823721497148531914797720480617590891622242158956009108235302196446051276030644401453843728472223271760317567310877605326220491812822190737241808515617106717485393632659823170403467098380239343130633837852607992676148941000979029496804550069624387761654774074258638742837105849683475312638516380659639800072316490053840676967672477877271072819933899572986819051027239974625804867123014963545847334501556241705700672128232198573095800039351812050158291487629747201196214147265890544820581495282244743297347257681536563127478504809212090658135262394417256117207808030315199290383670742739776224612251537682400128430578453514627119947631388470224646802245321464988088129844618372102662636970968724431984311566692351854810768392992435168451330389531995484903192662184592221946273053539086611016392566087325582649431532166636304294008546241437953743613131653283102955387022684186082965327189338636912976874734389339293928064904726966978406400475953362747903448622806948914070549877842933682775684740600100279123966477744365008217378793675688704700372546502795529581424924063783239201758471113467599970020740636778209245172843036498341484766916038897653544442131021286010725341544226677909389964220241867744594750903315698196120526385635882047996952302522616955502296122290201745916579283655982124201729065400242445907862797726749214341492014126642021027498015383642305979618170596545746344089349447310087169910904284178924614887391467788767216241762589009733703969912285194999462728917045185995775042800302726924566155591992152355633336694764107656339704877845181050032106205718763376982548442378887006392529132978425887964756302612547284357891580915014968483000004050416598458697088975007878900751152000627119616802064996879403540047587485917660518200730726805981670519245462715474940991045873780445521175544252328478355462706740361395453542845074584335043129278326121124741378626590380364023464922119444531899605949176051907105379817666087198509056338828121646309998144018625409609243052823699918737238124109932030107681556952986358685245524740563611336352552920396345125560616062677010884431807481491482114278882262658817680808070584141918067566789849278189494098031027669628429852290925328589190146139461559348812447353921571692684269619056393123321406856388989609554843780698412965612336826233234307686027146312684753132476969398947426113161411576647860784882045997768431487231853549290462593153543317676457914498215135896158976678639948180760900939861490012921649791224895859483245584397181741246721545927637013511387834650260929658847057812503520727402485597098356865367056457632719553941060255989362661868737557970579586228900302735751001790107050560501020188461341852027198466225633577545544599015845376765062014767019146709956161726990749707740174153981516541965634115294777072763268434350639845185066379370431214723256580682145158164846664425125750281911441956355312987385090128462794948924681151201603855939655540699423040013815473386021602169137396910300790811745128014585666273297137583045554364863411957363222560171083101882930942122090303987819823531999105554788448406317596181751238527672435795150928995418022867931772220532662860693330141224668413042009627889933508971217571376280621031665304284486631821599474196736113024267711816980528557783736101253716653306483607766103638912480813647017439891938941556968367027260262956024604526622241647821428479376056199534863285602459216133337350800828304989730710282519498847816349316069201679705675239007426252164372104882159590812760793667616742220459961327363648266917673082324847490662680694098665394543956144054306902395928565206055064304659015861914338790889507753916752403797824759081854861484258890296062257635944828115279907057540498324784581104608839708716469660394162891569116181977044432996172634959943890697337931432389712632540471785602462193902582554480414356372900342490450954817968568454656288818714717738017656748765251163767685157740478373944868229609197851451834806947904249615669351046655273216767955162609901585672048950805857822958126500166217542343204413723743489811388902420111141186481547575482668696653177968747610407148804392284820642226343032412397028823754739656556949092264585423922358238803646058323251102536088486687002178687814694398225782432235160097418019820700937540876622937063155627638526913541923046468051931197904941170587282575941542149118120305800326821320158959305733083059541026259396474204895852555628163393279400816466590106856832326914921530269766246599626824798988042667368349455905705064133980459244043478301245577664385768528519311688520947910929180760404642605105682134478825178744733802115751764989596713465107032377874228222223623221285022446037808339735652228372127754167963770535418926776230892378876721793349494914057200147055720319919025354696209540000784914251957631610679028022747420419888021914909637816111476359457938588270840122348187871888083693799607345956964261247759445214982645524397765923682270138427772075044765806968939313167699838185811844796191488812079297790892109495389915306505959925150941793691370656236043205177081022357329779952937487328352664847696783602535046552717797021301451754174243399153061353360994584030492415406427413888533697147263327253556806891374199551070035401457209129034491543380789935164346619315144961126506074007773297300766762213846022026076048230204054658761297088616306810266148397111832699808930493677063910816743324658782292143505954177355357633392254682088015118529759704674185440486306357727434235394486638677299726519326336536872046587857929929141943168556784356984469234950008588229554027000170223774664615365400290119736279340390017148046878117187536084351324104606988842008180034099123462630451518689139786440969571005064468423783374048353436421753747500900647300349734783395169087411532081818262545856854312840459473968544958103778946117572910111139628029025003751195148293158903853220501398088238474839414608882824091275393840755171774252565556080672816042808938311848930925522000496180123073461119340181558413463689100472482615968905433944099330169072475316609263447247210124596260959688470387416108927082493241902012528536832223137277168142777070738909622289320340601755010751768865033967296738913902409122734212075069566108256603929564424236769724541650961862013707778586183323249514199220537735471746134025280426640667363353786543434164520352466499596740351733149974029262191694482118101019643505257500032415874400033501272276534699802993711649799039606264160505986391294549460414164435957645189668805079187658577514053200789775438223928925501261889535392090239991810269056715308555376220915039340268889671460996688184476816617565322759862300514894872502745549549346713093726325821284303048665045029387751027531939216085347268330676108789725242289685942802839252071769500605029014841923175424361185506924105934996067036786908683555238249319919815752807230487199218711912075136686484209835679266564837460758417940927742444841257256829438356909494987633251202945022027667790632771963032719000680783595010920702997195028627022742904736510629792684621323443556261168955469967158257667794779019503164115200580695544323004834132439632196352585926626113661638197263412814818507504064600083835160174998542843581265823310591909388951115383386261925507846419245654929490370785532999038548648350191531834577331240036048510226134289081456231884691964087111764139079664036654159717112036772139855033931805797827557442063983953833035229545071041645342780617787047761621325853172753857985923429036875760238737496040939157654825014463614275741794642141561336419872684291121721045487086061447421828694033916399412620517004537568361004739548143793548146714536412394837695331807484510531821992027142095923915285925144312609453119144505512998673740733455714590961948473742629123998918797253961612141719013382703768516609987355497797777248345965162308007089768490001268096277072381849903423904911193473992943521533699984363019118399998847649887093318955138253844561010558539369232054628164969865071420540345564189223581268842837180077030763903576587056895610163974542611464548887184093193115206532990262759380582661893580621464545680671711864413445819221513862536733922985269729806676263606082834976504599742753448766314391643698306851149758304477910409236590690094005602798899014132882997691815908060709040022318500745951322099804565450020607350465177830774099015753680898929545781673567268685026815725548370860776889240207095649837695977351554581210416276163839443455342719069561476711101611449582269567882467240054549654570898827936794468576050430115844134953145214116269543795489186797282883874166807096907381063754567839978022751240805789243411448956872507247403909233727246765392968064679069866237325912835646984731751821221405976769453601983446628502382791343314785233094322058295623876002826965981577429170883479499375512749653950508525602431249911450044665536792508122932127476115262974426898559889889262403132255931357597628656892457896787194722198441574075732123481346354821338169145634766227169476087830664030250333599051642218091492821138287358487859565217747993091358280441633644588764068850112969959364932824127444993578923096839903168226120881514465433591918364122565622594700387015833281611842957034328858466687294409642289754464846692661451753505713910809499225301860683196000709095718532489988275723414339110972308345043645523170236414327222609303479477252141685764550311353320491160604987324743670509320650419164388629892451693682997469766006757826097209368981330256463921520089391859507997397528334931154851930831227514985544009805044435938132251032747311466749813950834187851232480118724694301531698344982440627957133717227783248528726971172938300226980199274952386021915083122587741590318526460134914538697436281825373749081068387695241628695390048264593390091352626197961812427228176260605268241493527965732085439688186748801391859192698390321819803930348164615148830202253815977006127086722877672345830696990871136883019670995765873367614177929733948946813809700358020481546844561865195685110009697013473491140026977044331069238139895650529490055395485532267530267974500570045193321033802510863065011497966698176484564470351771213047348310270637497978220586600421272440466153571881098160006762127644619862674235527576576980313664701423134617261064564638439211407854248638972077905020300223257984736382018963483377714773439237144570684208188706292987876720018692463008766327234655484741832102101150026003740266766341366808536035825426745484850312360644341109312622619416231327471530461365629113106857137549833870249005348038607931887895520970349585399500201881200047187190004806422317942095071328332808284826064563010358816074401563866233919633899227084798715042679632482237762734212554617168326580716444361997026676106797751976241515342726681989613184343452518244392581937204290598188062787772146827788417562176472332309659900603263258597296895825166991873283434621708230963644222504034775915496097867427849740732543852994356543601533467586017187309554688921861202433875541958311880655382061361957697556613359843804024417623785749088718277202425659563307785580023881273322574662573376285896104418769774684706964394285630347561780625459450940138720563964863406213894436846768627496332908324557899715367868195203081383189843768379112611451165780737942176511741880660710828153860168627029641122339082502778362990403200131195382919614238547040109392946600179076755373198104494445559656982163664480214172811084660428221835694193559820937781623910784850550989563235677788840255322847328765144357617410184747050272629836601830699264969515158752090503017930675863896534599154631269226587677069716210801313474286569402450972377002408160336161277472639018502019277649627297473878633135841220872185707619823927126131453408801796960828360793459096783150361244733613841250857701050329226155804846197904750799030715453844737295373997626948462573545852888047569021733986009340315908453434017789478430846812002179351645403377470854681006017877276938318709203596172646321597986898696144029359901935250294541043721091770855588525180759069424176172305509695045599724514909603444299525707781124222496572427915605750430159981941444068707531425092641878671545674223149490939996841907555555354034521317076032239686967596867857564908126152606416970593430100114492739124557136684213058350295871996730475871882069242285823294376745439143638020100383419689005792015774402370886569583338665973875899766274942093137982361827158887404019973182130595107771522465064782151228126813817158135429127713185926623212973022068116113387865906706838645295489683457393181969871762084000678737938206423982335921167439724088664001530016779597076576768397396610357219657812047626474833815925487994858321339480648728514342328904904367693662185047567744496928068016092487743223454364663030294248175984611680787741479826597734457669334522656081457266188450028317321766282290872325411716620433031236727011808302422908219650406220727486300466052307858195424249564209299224616956526208707666483347964757567055805633082455564714945028524291693113876742473144966558192732193817884459422042155738821895059010011768979632348129938635703676744802434838604618517726858335579001367234793998078122495588411460640214021640149645621823445254223013580204437813881822615455914496084534753671001607028181993603168539516838253086319628199717456333853085210303289838560762509573709623297306706377567450424903252474305392608537490205985933155780304627563073894955578871849486191753727714088943933870890776341284319155190786733149502128160147239011811326138811851279528191542646772983823106934125301197820960162150782203456885438278559592330733036564626721188149122323370653652148533856598299118846479975572404951605950868073992608970999311854530744443887555267723447594960152218211869690224575277278936628010805859834676424005014106806130575169558910325536944204444979249082545151353235130193962337819083970777421798818608231042817566051197834564788698266392999504888199432766572936462991763518335581765799184793110559248912859052658084784037262721798278872862188174556663541926041486670662374109546464951901930131303863808180127014289454885725761823740701003196169331523764565500316191566031889463411510172127089054473001820319344534012945552152980491033560487926699642021852848244547050138939856579811976931359570269347698867030957244455993113644090752025740681037494042739416238864215940616930553740876576947352660919489670655855134403881780737497706924757101277868521021532875418227385065687072420986494277825829603908877508008779731835637528612683220361265099545406120481563256253128104995388192756371480231708082120926669838646047404378487316912380202967155467405485499473410279887865527758225202252533107345570881606374149524797688094354506254398132772704499470626113157166697611507719696952265692806083843632566032743987673756765975250427439342804455101319989782035511551531697408505442797228046230404821716313489452166446694369169636219509156676211614289967839854833320878627256980679338675492562165214618612897837818317052378400264248194963797992428899099133094713593143736609301705860701524682583699053636615737377557568767671673367796994427043634262126886276529431154669232973518757906887653133570291073080333127648279693989148310373012178880583284255465195835084198897593313487638124153979419076787422956548314371576709864194192772482105104972101528569590105868877374825825044371708242959464795822346466989544147434716217852967434203935024812642418427725576233808237600916972564857831915652128274355105316184288647477549322061772590495955471708010854370631081616572077938227207345993272642125846788039223360232084271660557373241014143549019398330123138018946787287629754079028063972269582108857513412215925976617997548268878765669274128733997679140406971447001591698044534809856413672936232273868060291460498503545577266555681907472455065919883985969913948632313984731887228303723688489648565322294939988450674084176247625702116900597771443753520567097623097971420606601488431052056291226341521598882742616284915787748119236363605678851759655437648122393487475466268912675252711031190779983148842468210862059785927886123725085487537138108632058763096000123567908334101338506008494825326892656014352608446922595538429751925355162342127350850070329317864141800911650174526733546108916731432892768787431220872902870633421669391214381688311131770125211489317534868198348868408870148931328767684052867913613978756403821717965683272667774551311935324874905750969099289273569441654280202270656751798415424897472190354637658418296319598317992191833368768945081962554173852444807822986311498618663243960843006425920871304597131324608716456281441564069296458496284718198666099796032958213602576974728232296234545667830157923517736026932408157505413502918113097558749095793759878310704370774662926716862116874245126117981335466251309779321899074572915774083447659205679436669114694266316995632376650572299544725774584766330898004791951472552934438289454066459414392275597152683348122263286865037160470952999833440566738347852885218422889408506386687117066660302434798945205172498658165811419336786845035080589308662581579157231303248186149746433756775464855759168377502259759899963080604284443289796774155278079632159565131349945073546697874675017312088209750037495819043755174144665097929285730503246820679718868669607149231492117629912392769049067445901470435623822577768473748256373318458622087205513447587432552790356352641423923645426118637648559741965615768022647863176521127691271139044708272811251848844687919258077721846949640049726638713462002668160001641151198953627607318348964087039695781846298290012922538606484211784081244663825846299774419290756656893119753265322527677683101729383825330638952982279883861976349234726696232867267415230340470732396552003834585595599855959582834180202699557711430450606869557988136097733652646713480327087208258200952524866526586582737245465457065754269604586486462020065616458808606443042922980727150227234960347896905398043260312706422141413016632717795860589035981810857681128734527443560497775570105735837064628943336040604110236271211658663614127020615701044108656748748905356019369545405187083955304811309931931580104921051594017282413541089315927635813763011627361814864182716086310351442177365635398575106669440591035774846300068720601651444811895091986781553431464074529316291272273805850965454983627257850239772782571379180723867033206075664760567992273766855972483936223497190211932580118537824563133478127880869676202650929831379454892046759265800145394327358201770407801996357139843242573227723925934099936181719437485952005949130004275911822348449300156269996712336157671103528086358742379406144259995174585433794867042597048408208662792301033359794479181788267473543328704801371807271147083318164706773642078220341109721696116057468920125994743125809567210408943423156281097447601161004470994637490625987524365753581152342766174342079433740858298198290846577499685032364009114488128918758110590400698557455555708894138517945364394849963104560383460096019954830284191245002070184188921105708802084047112227953351109957926316931163113600234282815597919231997962499324436350486023651147421530012218805244536734585410116541139234915795770957372101835994374184037027853329233880487976988162436819903041983177965200617192883834772315277290238359774021122968436302756411281646420151033856230647145752658928870593640240993935311540280430680804205174463009909281404479970000005941228494429655966551040476923294284010732729478039366418939790340361662500893728432658674943633327953642718906387904785454111723861920813569365785458835755907146492824209546420180373920770626514518695508386394158343936351173987022779611920328348823284230370928130996128922012510315052705269516305519750069184681227403506882622309000670142016891776954521871670668903126498506823684002728320533647462127559241722201078684052524413076848585814226457798906785800731130214607895539362698819383755916022856143205538874815869986237334989347931817348478074796097509996031857936524644303158163369914530495875708868486633895272754472737866054933387002442108160070210328952191500646726135625131567673265812561384018496497396560775964543727256110194672965078862246885289048061427410102065503865990800418343142283421431677325015818009247975690311251899001839886605006651533735087864122589681331433313119451320737211659839892429251226873626947092201566642030959607915574307422047728711414099802074378019115770369392380869429942499216575085124216674505718184948926099118323766165817912385171838322965016904773558057447404486173429636377333802535757080216887780181797518034342303519093950329614911046558572130129734026087117737441519486131366263718789573425706104003232735312308510494031240669558862447444518629575224956750456153202192208869748261941386471093772281492884414895176691344758624958637070567571924229455055977193193040558914097278574038685955749543592230444209234241244912088232439797206057283814911869477316221237705071546993402387548263158010468753531273511654543143471076870575266748238109074555206884929416407019220100800033859747793278226470668716286668061527931187988929942105385494217431888788923730960874836569449580095738296418288364194289573650711633352868437751505590762539086070463303699838676811611661236281073772742875190933159212942039908218872996850408286048898182982815874460385041833558823804994425629720530801327072645357437139747346012215806839120536559808072097863286226014492028012217801055692896964729880579016333190314277082767375527660951969520357629300784988882429209205793594022322895476333562523309748476482537113552523039923773722093767404269699745182668530328083957939841912515403487279787596466196415929855242083816690750171851829791622922688400120734804845909030912444470384332612596252066123063004959053937325549291330660680946647215792014619478823561719595742326402521439791335140937475981386901596845995151135791235537339813330616446319340628529478112204117772660900980303111660184270269693598801616926932366035026711661862003028471398556398012349471196354163956633737021419444506243764843174942697039694541403653356790718341218879359719883234321637727972887543681420445085823178504602829038570539645464771671102226236895524203242303450656561549233435811134717695239554073635798388458334761419141393985139316194909163528230006651264446793612302379458551777685883210456461849317549379005455046908348729225318269429791508486742617905535265925406167300853469923502419789633378210266736332307990790914347041902944038367680445816156949754094704234372300147060144648575003983576747384533053484347462566519541255058254427209479067871241186850806428155490183043219553883042535437766412170966913577358655035925837142287192985968314156017363210143810129718469931214296472694839210756568478260972641129858681363009817060025780510509036963640543695360190896742365970302961779476675095489200415081776475591457226290222815108219048934291693352133658052682825782177666200364612071145535796016748107321962266801653159975320961813334224800449072438535014283583984104747027615668128300315843992436774250304643542935832557726691584282699998874701320909912619613621875589156352381351753904857555940200016208814931742828154480021647988776882800772470916726980444328936329803827369693957793345686503662618019364119091233109905029976651700332488078014989439311206135464446931748629167042143737686895989467611039470457284401305379236152686311425123622769943231973936449315517746962631506422588483292134950429795896264413455630880577265271609473312799447840940167505001776215850682202919162686351406246078760845648925917149439377518592893177737964633483980269510977248708988683966594267960365257466640605522704440990213925655311560087335407143597723164899006009510883252424016455543668871145634675284277020591664975830793478528072344757861873922640557037038836785709810345314280402565659299046426915121802285787060025209044840762212106782300340406192388721259820435529082394225646360862309292061516270317025209230063066993712586056018050155257228266366864164097365297760942948948471215313071586153514843486809893242028051460967163953728663656618982097276159123814530338934876242773533741170265527996163575885185637643188863725254177927880266813927014752237545967471900245458484554076313738696743730006001256306298604597517602356730763807004706317400650961316791624170054587410624928117753527909940516935882343700085249426329955956901960276721362287672067881878657159194717861166869154541557123506957734920158025883689601191147270043206280412275234314715906772547824306819355520139391219429815337094278717209184306831012844669073770562526473819065896480538566403131343374043439162180373857582700298402726127975787336829374915245435436414256789379527775014536036611939329420836918930248984650779979567989481482235182929691569618280373990798227158185275700026138677897423746814844566971747080904589301156819358128039087424181385206086120897111734042548252675216548027018373116876004626914970342431125541076419382360935522603922700390289726944222484786861650630651896252563394880384751370714276372220913213890515465739143794298875004609947549542848674310270944562601403644672875718281036135389476971026239370882492058908273583870572337331632153379262403302122507232873742861271958677832687706215722005203099102251425507848310797291465785959362233338921834476290055360967274685155113405262712558344539907570874958704163602256732982683245187835153021842850079113714238334741117315600667066987876611403164982644975075794725352163214273733933789765107479371925196654368597580848020775668169044039384986794712392551045005438529540612787557687999284988026686142544900599980367025642100211740660670159455223709015297036599636333668853896325001278932018225657917446611488168647916027234210513723375973940683864414263284176703671265735125436918071599694635404531575632579841016966408905233752160803131244535481505892806281487387977000440511995972511221288052155866186739803597291378303692551301655662580127132268520379351239920497203045436246767129686592087471202081261985825571950934863551370934304603922679696719129562083769282263709223839558595939947086946704860116319172436786744067141263211794500112320745314670052802566586863069643032699393935640506838510038043330479911709130592768050180201507226931575454510299757077633023126103442205186658651288100055015101057769198567528591903447300101582392655600970944481531804720285613176791534371916790730338873300622304328846652049473271093545020174177806423524767055141627656127004327582282907732607096612333792958607987748861890836095868808408318459310823563838440881533393578674772651380651858273637092876407847291088906808837959224090929760915337472440826156941525372465734733973829731476025275161327237545749255959874223459008595033672614533820579400122410595234336872115647085543579450345483403619277874090105598654084591300734639009144109282429841242963240392564468085916207508827615976248491378897870442015091253370217881936843939485422256495661360545959787615016352741407408342898793949931828360356156503268980688491934886015322940436905068979849153955936161627262369130842510247886608700271288851015231025940615856639576443063828850873828367094465115073720573008932937691360279197106329416858373427407246904266516465582443394104406335042255020702185854413899610005021402378288599781261262469442567069442316227561755073390665275092118287483323318291303769094526694841002453678987770893670281422261954856488525185641402612767005915182415716070968476320817580084272198124151630745723420734109779824654264867566125989886666515012523037576559933179883056025583037735004064578646032382238693758422692328136303265301922564499088276406853772264265902887360130950256637897933498966857963778947295022909219645939961127571954867463949130912499714170745744403258188039054216437485845198588675936119153154569177678236459964867656886225469950985044752438046037687140854316062819098057884307416344874929221078894600192487444736507609492194637943441968581227083127157640500951193548229944655131351055589076493220212996690914179950076696402888026674701069714025217411506984221424302362719777163479360303670004516987382566072499568800552224936682532649863210780541606163460162011500617995682740202492748208712988237624494468402753074401118260932958994976966053972077129458301653341458416674152095646305274114119636182129914970962820237504305940777708791487176319486999816027591748565989863576817675514446850407298124881574348330495052888458341864444155460785834920494169449025735912100382051568218674054461669998037813002042592018161404679115697601914702387267678476836893005470982373918917479305075029944542161497032556074605671663710486508351486599536403947064340459866171619989222303817393774195333433255276039479923283822754640890196369998039406993612357232242082154625805660306551595072616399713985010419270397350721277501404928597154616677634162994386320518563823939868443816894858198446471110335511473426221163431894159992758294398362810329018869437678380591360221300234040639933626076596039490152210019869369888994992692339031281223765016961800149722517287104979863918189123839253176875360448213935426322409054822811021431769547893537909125609822414597216514512887001944619883989666135640222160687589855461212540170763290946892967334263169683680071996662718999409023721064446759559345630784070168099733153280480854643824854775782771015737802587463593552117202028907967656904331274348075360969260561422947931855531224236633855700579955005476431544779520086492690130652024158233996502150711808349167442160257744326377504677991090185920684096706023317541969920597493491940078051903586096700204575331401200307240263917655842271537372799547354346006805494690726681786822063314882323039507980974039030873895146159567581246653374125786833104388405729770353144449433915608951293560117678055806501351766052643345983558027253883423841791158525428273314806299690529850957015262671164299760325527748550472978923668883554454165300205175315645140073390646050665552371419277991197194011816962913648901127820869620762265567467080715312991210547210693866361529946516163622469379727082990590449166955710125375805287005896069818899408053837143404677263153556272338328040092319279416644889338374443430920787717694515878300424166882215644368846055616275672203352508523011018752443919044535805277918533005382699908051553646972614291912054551180113800690123280273915951083512858150666443124184588485761296938710937561767061624260189992326407894174564949638713090919663243324436390325181661846739588296217848972061799869622116660324322114266992766669617721453045166452854472173862243045888184718195459749943298938705913193792213238641145914126579420770628946515368717048063089410360631438496394919616266918187759906799788542329336758692550699235380278704095926236598431182476902358455933282191403225900973653428635572537368599097366800614142052198598474698446563829313385497566207226692610492939378992038493578489908466488332994035213983874749712579714640425048729968163500021067408217856862276066628250488490630518452336271564854844746928468069217500066352738515284522317776254364052115197809198081012116240629258848190261500984257224143012280414949889132054174293229641070700681735511026723910785164230698538912705024113886457891203118024379943936856517921540172462748896367587020079521405492236277808445358231069942176294480546878580264224802186053004603081379083547789866242003317212846998325836364622649783475903213022641682935489911569925191819879270178187132214901445352590935270813349770112167485896248550505005848078289813725392995366188731841182928902920177649334572410323052893541429815482496221438574502877966512110482375360540218321506871675716171371478118688649340005547820730034572656474890548212422561446366075232543077969983000394200571656668806088230682741222804565082543962740529745700732188380000972433296169664412981534836629310173911575928099121264641881873141902890384824079968929614032182235701000562149941872361026062812470172998714596927235619066360703876847701853173874709559468062289478837659947014584529119369339073414156298782080123968934727050458830027918714623879845098321105937578631214124621177582675665331689452563071125340213067077839358607506425792845661880132606153748967110350704390987301518811190458277008671339873544060451145220679102587960259045852946090355684232127309434698022544188641691955383963362732291176116928809209362893964238793339112633837960313462973555410199810364209296352673834564739976462772752217429521108964023585978845169976565695533462011885047721173224050457737039191104547523183600509809403588177457613234631481292898578861086983024582167170253692727090145468661472739051059528697464716704430929679669934863044309722932685022736966828693962514177646814730631270241184216878597695609650304769550961047803152162617050081785524762430417478983514313666792658473787257103770280866523715505480878088531825568249400631094423662630943213225021320028118524565478508219689880560451245485827875917086879281966783673892567978954699702881217674538465905972347308080443832007727491880828559188656486278048152234192116399121148008999461285144476476631170772681999962286511003581055440276103968558648390259207872141973917377207719986509662199923823419665921628629049825695487188938228799510155615792444185576477105501775485959050069462358223979312047513935488077356189172970456710925471346393534744907919951448733462412754520981644043342880852214974290226340382535992887066036373783714963888715975435258454745628805577518784261430700737283953324198142392489418659137854239721324505165658379673120660813956770006178140421855942913467623188653524281967103195730100707421684223940920966156940860764350371712789352607309584222175785856771307383504332972658945898878317632217686078071764714355633914472523982063168211504049065544610251989820782098470983769903857894876220665725665909925601327249879203128152675813385211022236802635554066471345016157410267029204256506975355606998324674620477172611025640468889244974685416063649358470197525447223319132230157183990455408516046560904209860507699142824488563355841846314735303852151855254119438901589760414300276601170806062661981331199073604906256202287093243678485896144325678680539371899736254267783476200483371335281130596768662704720862421621218408534797875158007411689782107694469195750864421833713222143948208809352251799711773252741109420662609859254973746372168327390218572007291150265303418847393305893862918118380703658846140616635097822667640952435340793157497671399679329701732129965346943152181699862002978078783925778231368160863915609049490171307380900057964946862760308760871955086892194475335335830458356060585981504781107741943227269380608522379170537646711996142468523246612217936067337278151630522259404407507808665671470714378232792542908975836148190165073640568029865199234074055259368650293783659648015321845243779166005763190467183266968793805870463492094448671693823611539133318217570260132252241237843946647951291894576498454332685040709936600824121787144832972129236451288763643497286037399739535439953443206992253512730306813204485157881014298259502856287978731514166001803137273282835838484088088850463251036951266331250091175647548244445532187709796582641811658181625541166655521156833956917043046890802781489894367829058152682187399920942948447899067640928657422476250698225327218781862851474874215798025956964489370879006719558602129231285159041950360309047376683067641658994622714510387411243375255227554978784739119776729610182189379317871482684438517637322918662351693372318732732733473470619228636101003767623914476270611595980355199776718894222504143042930078037417168324994774193191960783971633302922511299509539360083955997886887084441921835302945751647409833060565379519204077646193623553717271098738137687237265799518600972930422636530299429121967725748755852759403423257781365777479747561414691435477071173666163623438968240531052755065965814958122974210447619824662524322473243462134630262453809879195247092199331690784500295354125013906415378203615253040113808734668988162205199014010149121730671083370912163186437874743376070171323066639050570325079139466185193305707497573789894455537580944479546931360036401549927170474671005149772565339126952662595875255758827108552976354682570780183291206793623267508516620317373378134419996157803581931624723114361862764889935311664198047265895206114492268062093405040565487649282016889526630173788669085816657554709904158973562792635728876290981626994247855622421727340908245390293434350137919429261098143212081067593704352671157365763790264609875220161423649948510971730496185507547343017315215698216229166811967920899470362661742760115221735765158330733595589165648436015120428894656176361610630942910398781968620191273330517379578301246324831180788056174917837291027924446566051368742405807687442777313058918945336604505898315478674108006380830036396879327618765311104205307686510858906897797297215364189007506778479133049760587209491666746822761288127952281991002687402434465101985209095739946311934642204940446075650739597692503873952610584225105424836928427055430502973864782501320193603739498943549427384131029840578606798945193082960461429504851899189855127328594008854973646269469443063235283175878336634377168115268791304185233895227797477823265505704341470872376414259458145973341880074758747013886396493585003152548932928823068009974945261340252292222046805323854603289475529636320681223119075214070502596462635152940884119088914183821472875491671685100111922929339353164975333580376014444561639247463656239277301517631442591818298628915240752664785401819511589545117560335371290815724250888024066386998701490639465742507022461780615392229429193370666445414776357014989275028866074383983283480921307788035621200306486091787582121846352994293511432735339592861177003771077311284830273464162486275050288569105843651214095665142279512983884706538877347538834818529449781544796187908399087433754089968371720751173969676284182348123051843995002844346752806382181135958286205256350644349773975474099268408878934622935890568984806426569018704221903437794353025256906852110961711248342921154233578454836759447071983072384605057201360445197794816772318967201054882898091224715023392662161347934411480008312086372390808037878090528275913307790440452585431862643623659890516434006422977970081911017097050844578875454330657192273450338718963507004947816747908428138713350572493804554763872766621394028421373020266732210323638840022420135516549438811615139320259187250304739287713429500719805610820653219956673113064307797566057709112210525312934594036522095451961736714262485359620227813592072682316413376769053485374844860008174268922020640423743050985167434270293874940723253228653674949602022490984190847035467959568348723177161284953982141064386069167625366163769514162929662406841370197332365471392322185269779017701442989684801939938761829112611659019861807964347598514903810060965258698492386508735668681037028148514085176206506346837631045632016820495119409266770659800468678173444253434438703372169433212843362349941810611095685046491924977035069525784787810329010823418528519452813267406340076346456963827652139605771986480377716275712400171404811966829233315825756556608761607904830027483437200710359492474233914214137829571661899808991065666978735621259541228519491334406100564057363203999700224803994107894972040033123422336753083354615855963066245938931453590386747002418349804411774463512269163547755051693903078335845346391684395471997454601469028802369740798759444906790449334540495473122387476414197379745286114237826204212877687497416685900673655382116386293416560254235710042767382599306604980642834099570009784859127823577762150853247709306789631745440400631710104482267280425572934645685571320729319864810030963684504628244603532675602495808426661407292750395944412132344043116688732346626895299404919514740683717669147710318293629321247757269949896284535395521594108524949256499908264330457433430885334686124723571572233232422150824116140663636654052618043294108263082077088350204407439846692728395470717842294643014836873438372605715502685391338024319400512377613442923322645210668596278823480044735446603922825161481454540867056284360981217472743129255899068219151870736709417865063972793036907373519584688483591668624874979819131619573240885224209705397660028586864902213751185542557314084393867298462208543975241669869441714624404872679509517668375382817974515736746291454858550627637099804969197332675934248053725660822358732757432513566805525854423173496856040266233038353476574104560871806304378248179409609757576804334688412046616925927378861988303275707288162749735179709292618025867455958420652548268469000549371428356486701333032015253990097505517413873080101374356732614802123352044631903469504275251231229287698827968229614238314865029068568527220585049379768351828561645854856762747307444821918706136960933426014689899103880499236406837825933108153972848605675799420294998931930969752273155634104989224182845944796021962590046639023233718248278445622741628602697988985369430795920469914961638963475227299214190923864598369272921934484210976148359027161503114638607315989297349807710038354207163410407241553266887784779293554850159526570199399677851056441820404347792228526478393075133023641859416587515608384240641777019048247141737493640656702742381710387199981769007845946051648407244761433381789542255996333811371018014618115215758311014867664413031427788407127519139381361055751903806124587691937003359807005333865572537670502927158903641661112541358615610700978073094327925531270011595305527697354449410568789159609717042569513277338946648523610717903991325588507313025725263884180438841999003696296497150798545066501967096551709133618866675450154210503893567432167759576628419999658230658975989642327966429600603002112033832257777589680004417885453193172734110999728925273064165134719600809405942047480184360015751437075620612760791122845006825555219767240331380075088048130295241829807925994090137339899924804666799354414888150979183345365043885623728795778517878291080123141110527515133186441400287226004969470745448296576160828880779062637196402785431380957431485876567434746287199251884318426428196046779651126103336279433868635609354362795161936387353152133124299964699090600020671082863712656908587273118868411360929652802817485744306906339841881531122093636944687128607837032625799629863715749996972872777151575169651819671438064818624024113065770635868200100428667364891474473292044440212632686644628668123349988860241837032296978141099745191903463795556568199858250936790298778247822332336179722221678940027227505115983061167881096455462489973428451582521512541910304695317370083182589203101985012085426382797010069202141601872146772536735771007074252233390108904561825059223921442943813946585781486923053633255481818023270083647987630399352467423103444362327149257302895063686212473326516606887411405749037837096150286249740817451425789280605425646866690490677317930918185590862691732538375164212470348099263225879442591010067334160666259449281437328949860773885723985324613925887390338941573133029057649957356923105473222269745505597612694193975056199309376356219581940631197170996467734285147140706978273508406673840688716139452672907274811008946557700808036302908084673850727803266952542331829924134098086299679516903407828114150805371194055502844558751010167861834264442840437233597102170983778875475484495524612444726233276749801424699048265480200191529470999111869136576959459401257504754755698492974214135396553948957353027555359640032296661750613286501937617907631242494127545895075508649318817894163959530672598534134142017829103180546363158267703962807262278294111044716340693993745141977760675442560705642033687215869689174010641124538267052171479943483813423401006020311911502581597111776098353065100395591794400204241683788210101709086084123334082589801907749377830449088630850315161941871539678863961688526328379691971647603295032641817967013985882226629788409785569765361532914564571682529056020654972643703851658931214158401078598068432954658325424105790565557814484147564289788511978789886590779556481862537988348499785702946838085748411718211745962814800960835444756747126118766539050118882865936094222726370223690236904168630737709091005686999125418017474570959974383895017248089026342125522542257066559039274924675756284059819887915875876019491385648659294156119764566786849881658530256801306817833015830408795657701859517071083391502028772959542049723892400002277297240779967988702680489791658934423615283480491589770640552839853245206123531306195597376871286860224132868799476243588777290517340884810980214052544014246041153185565109818416549005673958427684229229246272528841788863953884836618326944445286728351870794854172211206010916659967374483752035777838734991132346956476354470534249277439160949785082413350032726379309928034678055485207454496262641689599831398672363220313985645479027637713194327991344838439492554067315303771036806001489153818593147213795017929910937406013736153542976331148725245815387674354728805315508721909263938674870665253649902209327569798653954720481558279850112899897118840464315119530463692797663626662644049002297121573346085961548122224532585133939583364728268868957181082307960543311792058386773427753022922519256500030178936976660250350267458148696835641339844029811808598044255164570992078006856368122205299921978968818540605200439465184888708229913204331120903535270285583594729994134392189793482418421962710896725500990585585054444359459325598726283195161174056072058882462174813834051900418618104751052901351030032912259844362992403187555164384370204630579241680163388580440248594730368024182162206912909165724617134593219165323145212352506098120339908841672684360098235542322728315516504380098062836660303510304790858259644944010963710074865157854312081229794739743075794633842919456594110158427528486040080662611822279734433327116463728247427524675028446717541392732289147511305035545260939551151861930340546117850765533004330320021592307035590640163250396037924637411441484017282333808372200597427099128802564760647136056902859664845365442794482806597069839201490657758209699923059202175676594790513737840377054640574513895565277004419304724867292461466033116859484292598061336730680659689488314668953255508188779938365458826202621632649436581296735802967795978267970471341171203343331178850483239455882953028168986453627466552161266959860790866533564737730521210265531664796478725051476724017864340387982681831900208180890841480409575722925157376352199598733880520562751370797279496760047965774386300250542286777857979624814571714633669870481718735069365940901553494542472719248169765732025725702809997360211667388400418350355314383856705046794567119258314429695839913265508732859442200532260616133970502042681962027773471463684702368419236457186126795819969378914291739936066955562462604649670403647490648108452512210843516587783519771598374810864263913017431541813582341611930563847897207139469537663475553236706134371862804592355904490339540768374282329066588108408239243971020147701321958138795246101928520605227551955608514769752466478332298140694808887075418372394953396298109517227352028666453368371428206103537285308501889357095190355842603190947279539420445311142625944591351335409689001425512440309497805500007639592628145899343431608744760364848342990719550962055786511525734114910266982566369029098173885386700111630354923898465912888031049843599829361974110743779185613782211717195903319340820059649670294730447338376793665092467035784167482991175758821240108867624629120122717311384795148537774535569655762203375590512841626729522080245902028876676468338927715944477649620816207211689047790317909095182111132260493374323984810501236418200441123394981379303573410044049947506054511295135133979988524387611404735376802045374336507489892329095168833830040912271704516032715404657819507248983203556558518686481937920833866373581057998451844478278463375772077839692908480982137493704518908418473043720612479843622371267694367119515785833502108429805373967645805722284261156177886264012738905584930941654560435240823880183357992114680850848181529182777734493682143310377901277187331461979042508742487157308804358714679451090952556198286997415231714061117139834555034236996057376244374436785757473664447511099000120922316299917271832989571252973007157829399403393032351172632654316964513361580732003440583483536869672764696653379402117982500537157436117710340158295661398107540912788627018646161525292989284618092329303672704507876172550674893072107550127478832783105589843762749519922468591562218629783076243381219699969782464256045952988990371256316972564861020607799610443532597464021366449422865734987572489165441820051811260526994953554626930963429579568400573747382145396258707921414590387452154555098966009965113205245122799342878563139060826069062327715235727804531838999259085261911164267481412238569064951977374239842896432976116414271310921126183176410894280898827790836936944374579146544624863765005906298513257394057917238327107437720062229073016981917348515798136174934494226049827833096588742263675055349850408812197705993196023115662685993653448005671808727926111861812900522752856354520655137898678444825219223356852479953920304217973147315565391138286350309266430883771638125151372138741231784305994176430532149758232622779821176377119958701401316520565845866306198913214140931537547186651604161355193130787871033231557461367717360960347495785038352561934182848539709010188184352616536467215752682448301296551043424719947164521133055686710338715474281762221238257014777449236844958406179754886973266633649747147974111911113033220447713306995655758011451197554547959929445729637360011925726509816440381184271388674188263911456873430798382696167668864716635421949507211405899108682807717936410197962728943521940820011988883219574619754177865066869384985683179329097354775439176412176952568974144114287540089632448299475492125954789624240174611164736010172942149586293053279973515878359455020975547084794950639672228473556275980917149555318275665698782650761754253688090387203496100483479173754163708721616898899301986994119495814401719753242968681500355833751919383886405776656705508909570445979232053677267960680201348084240329117989521574725152694857757160616757187701067800628754241526302537490606278671097291565665068749754350505842998110216516291093856724442382203258245003096768527893316678026636797567887645490790200995075025795829550870038391929087666316895492313381936622225828752517351805218075118413082632796882783647377170486815841558066467038620419165597660549347234777665024653352314669842655205252887214746742074292240797168935202041415664894156333130308991822637073632464961515917491844071227539530774634749866659525812898781199844946911266535696996607034953267383561996006955278003715809709592381347681026929465742128545466751825052371488506407266487910779334592131868094371386968236655014565749511413206313022672242720423977448534729527262506607487746726868355572463940910029203987880876912341790789046215280641403058256542894984953265161998479713683960821708980909136075173417873912808293735997424266406410399186623204081449010956063411648747910721931529899942495015762868379692100689130761059731654933852414024605718483088605798452059779723941307419140421133917493549295817333821515146106977844658004675578747336087372884125509261403064835672607172024372610233488731445025058454886325019697462943605705241037919995613323121981683365513054678567846523158536977506728806796131562315274748024993453060731697849939692841693836957105981874444485041244684964335050622961914471679626313608564825226653645189969332965585456708647383729737295163061994215095898341604558977036336746838970089636701891795768826102672450113116622486855945125593805652633011606514585174109709909736385437686853847942782137643099878373054162616027348874928348423870662606775124187399106319878418185154879106027192292462493223776471436649918227279439652384370325472521601291492223970413674902858007793962556257839169747586513618827104943341430430575752057274014968554879255571229117440685632861115672917079248960470050456982889941197655934833924691765401858316636192987058272786002372034498232286597243099843736429781561260166855307870931942348550230968605681692096991504405546403708630527878611754139841967798625330476730933762202068540033081929095790227687120311171533160478831865069531079737510526405851736316167110217724922727508362017593777549120195606166443488212135319340877393628469345573935295081920216374190832589066629469865328585024261005499263516417881433262858834442728830976762214006268861305325498940200259741436987495452506707264111520703677662744969262943356781927733425166302617096132323392066575515965970713747953703951800583328776302716946805185666810826625062541387536752908240072677484421783691290489917233412528102510787702933487779417013825523780164426330638247123430111651125689336057753719902615580944827173632970352301594376819503271015245076358166479448776835981406144638064064784394105956911841941783131125504307067617603711657734350851754471516207516788540296969526025766033516412713365866540234947435864889654994674395136296786452606203897729598704950290751900326971379990665785298290175869206849800374601077415792114051341346857840549236049650744097702417861752640752405907484114396824096687748344890358235894375170539263962697837804185335973457931880182155424141022650526390074764342646875514185488551916319095355890669887421273113916973933810193608695652787772781910640399789705876570234798081976547759551840594684372471542620966949850133573093735174898245123599628868368380094436984616493803105373717629334450809669206862871685152817159404808007950117491218853283898343348237292129193673812307526417228434632092865677993717188800402795313683096669590163780210442234106019903903304294804191446903715185205270938692276266062190520543817101389641567471712043924824812561424958572000266130264175710964823377632403089491357411606914520232280389642854328604516091317804590568991457879644203107265759948461443856897582534622758034113546186081786397627447727435245009828080275981922392997481295670455180976350269111507842124708607343366217016885645298578582995444569725913477496636175121288965150048514811805257405593738806172500377848968332220670733292415761213126927855388153768927315148031993820840590200396817543299385988188941345425979076422955717559000202424221816356114659266777986373799570212652463292957682024475242169672473190722906321169820401843174021903229524544367272511894562449533618382756922326786447832621644761214434738405831926899912313984904487608730289028459881816134125363410644711313914662116996212839714904348539219806265767137047681632388030862022479520388181410724279948024693225386063294851992629636557189272202201357097627825750414337539367575874035497086446243559276646400950975389414250241759138492757381916850547441003479718544889011381303019779029253403527695054108661865520222248803279436194402424881418236479736101399563518666945810102647477852391719200059707629957410009187668146835972408039205114632144711569184744309327334557069148683288702058771495491582849973582901695878949161682716615287015537983341600586199353468027274581197496965028064680390286678272195518920047467120177419859809682857928168848825904314934702571467206270000655793785954926868306593117940361731556758246169169225051051684543713171092204958752697985429184942348445060912917199087797459414404334362699945922751968560664787212304382662610901728388996361985642575425306744704568674953190162319144324760352419255730305935375782976659920156696872047531280048380482969800224515632834333433728389430045431684151086754165583424760009552133557889690053616569798313056229731589232968004044475893678166749884159994111721692753285874843074318580289983132463508919383440976813963718966421866593274575574581612838689607965882538418095663253983859103195712451671709430619349700152596120056980047148926497589085866270985739553767940013489405540702448624012620496017966780422108120999381197048234837465484300311110941026369756232732371688802783224871795544308080466630965489974723806850900872937854502994034857234576651247568833110331620935026536754508726826201171563766681856316533803181248287770021300282795216080504523284525242578538453385548240783170178454237303130102745547392620959700051251505262559075236138499792772322143523342532566211235208482941786840585990200547323600380621763539536712152339120179526523337812821131925078793753193539140728252526497737184036676329135459626135807084722187072045775396181330552544773176889753993545591752639225007662000974211050470822817521397408332530699853227945482815879380790494687203960184829127906962467971713237353895952218484686207013185721763748952262279709961220016010479684190832171695566027365275507888729618466649154918571875243408409343941668879185061132313799396388441122700713363513509658165965032530870553684374763164653953767320939179141844432489301435577631620123479038377384097291925911807748511821701168396239253134304144957184451402372925381222902932834621166679813949733044365925763357081937747655136489671153067341766415485605019458089065657814454798412463782670054412767370465475369077088988490268969836090986005812334918784400638190073652922197724948026561392134747244881797487568235779674623985844179863329118779293336314117041897398077522107418551502305390248492250172861059934421816518801393805062803860321920026113445559388703377245242807365246028630099214702868310230541873889571617061351784959923183254485009278480250600854125774890532664065414325400059263153049051397296284281790307640059020179955013466300066450727786925552016776938383741172264287640980848272231268415400065102908069271017687901971589393837889103010557221237696815584337403263442152906855844877305766735146350281135755988075508217556524402811550348405549429108756149790997119086567704023410238912526137380906466063477939172494853454177264271324148834473244978587663832917067964845584646091137482476306967797204354464144902562880367803222664072062993351841561795284446516633397470908625362211740007290869931571783148128683363483692093000025483842085166742029147537269550268563486538971920947970687290940977537165039431770431614590406190361070540806769696348308423858568769111416923705028811410943235902845699504684690811738748896694841219199564229312626800365838918061253556137569439704960116458510407918039660824462564419107903840612895784112778255354527953836301962015513853764840135277186686800216996292247908138797455598110126327750141672408488492074960534067806111150984993240893505711744355311798212107812482123796387074601427176960179545776189215698682337395589183739895407293478167638575378375683650860476506544895929320591565568989072233880932764213334767800168377797082778965143257856121315266941281109437403033983077278794107108350775396929704106421426717451519206877881260066811673802691478465904307199889746642620360200499538298773248000558217164755463590609980510431841643237638957636974203790338946353892868073047562044491753833202330124347138127266003220465062487038879889053333523385423825178860209663057153865519516443242242185393727495242657430909684861776781331340300079799029510540328489565628943216997712271525864095503127482212922213421276875395731652347353525618238084888288467387910496938122324471895195241269960699539467476340056437638911364797459904664002750354334248974374938255402234234837913455901234462707923307159499712690172552441961008076759410549232980467984920382183571112056054986854208325942639932020076483894736824993000488555607813916104757484772353616451648268139635154187913223542684212953946091468543396704427172825161596476537898419882835567030629039248697652290377080215491989235683392170298825391785488241100044245784860286238389630413119597013001823449720348386364082096178765329122792490578996943985684774316846367044076079486032275747913723015844726271676691460930411730849276969799800800652259603678405478090153102098885134208078367879121951695275152732050292116006127971347931257463100399878114224600745329564157928748928917755097149017221574943683487586343855174247825056993655099499314312053703716763554252453295313157740130469922430767878068823449614286892371199392246815630194429294051994675933011844983564577410283746075849959735419433115372422200897772214352795423161204857881210976578254444225389608045723658493544862640978152673420842657245916643982794244657892459499551810491155905838300602665922647496068881095897923963238708372740618828543467683822392303371540476198959347116834231097879820469374640027640866444848567565686307178573484590022371176873235533168713031172572489694800219416526874848816671588644381169569695419698288501533220794913810930021333721771939593763614629521697899122784444899652912450774027261233665396048965881789651578393466782607695915952278625644053890375981792058090610851167530989355473451955009041799070771011595516651099962457876213827488390289676360851855594890684993376288512098531085662551238405035721425755226631164923454478699566053082479197186982006961509863259499221880768931489120366815500815275922028496624186734706375023739070016705669852003497592809789924845277376882537513092666840469373552592024703037637102347617176725084031858047627623979562627967513519727133982345403207603980669119561764860351777395111121498353238130367734942117364399803667141019333502229849262037846515311141324041332055267747109390783735156688310418268315152893511833749235800420816336168108257289420409365923325372774453555329407470442981184410438975323754790985282282974633861342016237710475548791263157937185891390387095377639677998009102016924916068859356988143028158499222969768336887567913598619626225656290858427907070214662815402882538275206423417271692022843356303345065294296542508912642194756491371764752907573048422321444723494942912187141552072864252954582045693882247682912407553823934177659204052702094203472357528782621338041019124133661941880853100254184151969982083518998032943586306437725103204789087094540113553612444345649966416796876489410355879480900591306542314855548875700935871523076273592571158551312366091760825051566766261858199175038208936187594390873301354689470573920538448408871328193113600465036623837664895600169848666530387454026785491252843298157089373660186940703762962019230640052228309394199073109077697772987659378429576547457433394184544185547521372626780480557376435386843767594668425991758932704794499534325311333497602611549632783819593284359361807023489121403979705692402515829737679876518478778589529814079541500343316994566306233702374398689164067602897898639836126882411849855416772841635469827043455232371130705357914387818020719404786466196779412522439471838936492217362211064795796207107352729962075710422382727746408398626732898096221529346191216123715392212941195986037357049070120267091971983634272430809067833192610433188511371289479207177565257086791202902672286758803162996274962603938614570254836294955621431020601222219597662902311356837511152836264927594984421305903861739222094449701660920859245886229050882503396345474345575098144772728274455909883431031993096587116411291988867545242960900500923300856828265661112911604243806871499848212180620023721808162762544094726756987494887360615785577028863732778110646569249797179248117866313900903117266783423045421678918253398562459019964323705887852972176143850020311815722074762422794621434567398766390248532602018914277701222758443021114773873023216256711986893711357428418604416330341011397305894325270045562234350251890613772102833751978101363775578948385956686821880787852826950798712641812354656798803013218313618018432875249026410860316004081920361850551542365453561012562834782242835264408873084109840980731873932219096502812772864878517685733249500927371134759858561674485490768079033541291836971652603716974847197100230136671174335147116762895323639473441030828068073242078436017296078529757496347201320241058309322882664258149325196532867756573457608443530405143019326352000812717276535516699025700292806024556246217613028179745570006753333697752797865358665322168841986835565294612559264078258283225113909459337587696367580499300587326293048233515470762467473167448172238613393408134232748247454273627463088187452113581881512542329197631067897096822261771850818659077817731061642167725338215942057180573257472555169664094397278084480250629257949408599403686454794671703483946007325674684083375593330823639259268266348009898642263074967541828138280423725556097037903370817073214222351317892381459702567991911664524709939554877338222670805055988373204104263928517823749133583190674640834043922351856555314261481696284460896493287039724091997805553904561207421184472572854329362360208072728935625201080819735765537042102366798833405863630153895413086013676326779725882692272286027551797258468494019270937364089864849266335163261674383294363407027785283080392132117079783682371242813387376220061062949999282196415985050252332434479881875531929589933003962242906931413646388556164163680724581096536472205946025419927665759997774040079997224222091582651321415568941691253661745751514042011580115547831507089148734961179071949200733948115868414538547182215999763336286601575335225825760939176747101803206946845256923753753566509970163894970215162479361211871640321446922591855238928097242581592500715073535227995180537062281957960610710356194076494034869403332292947868176580628061437222601035044928320165656309799212921398950482809028392371225425271384705217556453454508389907673567264483207693658102997038232694674984481487264151399781851456235735943216635987536776140888976887278503710481727450288970351598516863064961548688921676563823883622585505727235689139146826877391641686105953419730439130208115565390214199781310503941772212845560229079366117496294307737933936371971007605678750355831971441955603182199807050518161957860476102334661010805599203105689354093350293142835258359170802646425535109233349192512812374228992804996494124361496467416143690330978496847808134983248300580482192761829828009677082671782126796074368123931131043904543341083368310796216616929143926416119531518201017288826613015160077667483122017854907786294375916393689387268433818077080909277116836850637411542556374891920293353262135379172407278637571170159803888037916307920921449027623770112243058865831853341548223419505117435726745383894950294617729458109643942375401144307587799833193744007483595353397686414988691916163339354921493783232794358371613048776883774885233002648854342523138925015126164708525701626575684168926966982657080991015914755479052399377083506943973908182296550516535551018556080116916846632876761286759302789025343855160118286774698062038732907430427823797035570786292985865446837419011097308086499130001558001696701964414073844236005581669451356480798019007769465690498324766181206027190095052034986794679917418879541207335050166584740732544422337690791832770006890422261250781998048300631830402777953541141956258279203597795713999900122582586383324175854033400924084593056539001892352311195936418776448105459398309847750200557977210144216418358993088216317670916610876919154137763929098277683380765904119430376485210878380029405306655246338948752385961270955940148622707424699742081152940399231356144122816053514400528917601261483096905729317745145034457597688049754929211182097012611986195999221414934166258167588335107506407336250067279818936134832101879498191526914079644876403940051392365417381756319410818379310514056993683102308888425682916140205520045619576949889638036028873036353192830530883631199563796143841208091172698109990695130095873936846704960537477237837016560918235626385091199958184948138768455390362299404959315161829961790591079446267843363532242955892318208434438899295099436807782624862966821729331140565231454888589218526003315550346189294787477088159204797555438161492327569039028058062426330492481199154019676554024553619933122366187744684572517633753282780551758401058996124921331854291616710751107616521040385485322195402251732871954559191973590634282933917647612736018388817056339428117164740751972942474220263161842011119109732446706938640709305426654088144311006967392302330790582914079733646833018923017417458948166608669291079237612116696946112841956306424164448950155508413050979269516873562310040687149552965631173070996011637988283730322050996187159327168618854788435532741920835016758957842812232315324216855522832097723586160187912597976495764997793026269471956038912635296654084824636280384341211689325070505506095140037355030067349407507104311726880141440937142926220947908237345146930218186439292233487473028404362716733353129522486551094875547415468704703079029601357485036018701183265512001861118032910527720965588935557766559385251630298325939200860301725315402143798954872875183361637079493359191978080662464282496101352256316692183113829849423260540798196094941992674173715045278689314687063548715141190071740330039130321596464430772277498766875634568750504137541382874951765368858116368674737144712896016680722159360390859315540080153005545927814746607751031008472926555148182765786819933660210124288887100939443792867886267124209060418486814270379494623659621338716629501062146156773503432914554914328340451942526409697259869125894123119929008748806996190985021957006606224887884809149307315176169520602378631830180151300984418252795069470713063872280261217608564581970117659040376080286609077797227791103542665239702309983852281168789986767979613101309040898528822146116760346611489227129320999483089542662761008326855237111406926698892936279871672933358904979501294179178065947306106785593887619590671027819276173371674567743643819146149170694199716273010066528476837575711424934851541103871386103159631748887659722619140714498531474024570571939400864109436469197551902371002880729330622377085694203189776177277256769971334452820877668807097222981373934905858257118374761420329550077432584120485525585483911803579935552279347626948055903874352419936592988992385300668462879660717490241124799502421307096746213764413700340905861926244498398304539948440349465349357104078514775798195754082962956138005599430450375513212078471323449965029741777035699551246116025633795306223891137419939977860370022754947707632821184268612583756211296807437571460895894729142508857485015177385017342579801199375696380741060583344147758513711231912401415429256592876492248691233735323966886327597751292747926818371079839532074444645769364535368295869489496567496917792528180288322650581344105593013696892095715684852964221627941701326062575364498688921336501424121944364768195006458997799844608254170675808884955810174589696823952905021952865937459923868727073880143971904140605596255133078503857102665677143364488036452799047604833883447442624962392416943590111539904475315459511821721826344482422694716808675018625079891376757937554284740697711620017534610012604955884444795560297939487099590870769955268130858929286942617151239111648494679364761756049806257994975020889579250038719293625438773810279002007749575032039429382252695260736735843160121716031440118027743712435436542792337501609811722596727635974836580945822305695638940460704172907502046882233567523953880753316467845844592820952501939878447759402922539541330186056145601812462473500619201602725683243603065958191403745888125044183597082985471803380144149921379568156134442174052285545972099506067437713874636270550469464119557621329820333106874013022514151387904638065212801986283832605780161644154238142743118606733032388034131514675029733586590029908361586943653870559686033419168875171544812118473164927816426233862890109577681729582204832010623953662454161771306844478258517228062903411303185540053482664594878662920393883700730600217460683013208722628734546912309960288379838364311598909704851867346916985007491833603925509830081123696664075928109462233627033009517494580583299059179698238070963334181344009793540755791244202576403637960917098097830899483594087636192960691268870625591281349550810646555401664197824701872575244049561346188547734530476643820441256419029032924368515847256153900187989099774342425366347108991663717980126580513612730337203092617307696186660871594317288690218510122879209949013150027629365955119631586801746606442981836612500342687923865020524061242417884718336216293239953973280428679622996133502293175116952548967450551067745116915701185383006934325727673982574244940672668534214224749000871169569780753274292252797653304002313933973730057306495429816369037433839016407792103101223589983822329352003119717339995311087992298006291229576057401283061634757022785536360225089319878366775112395606271939762544019828731683941055901917888841371413208417639725908065961144850749421847706385984303734116087930125988299065870882230894632543947271584906350396980499105981593712889667055030232496206381114386610879374005286056893116677820306079539646975955411130526521189450670447822713855547381136189887074535109509167507273513325160457183317882731717879501250347972716916477541138625699629601961705837681382000865966270317513839052322316088007637044794731888440039877185561277148759076093709731891147344357498663646254904691181876668623665517552471116154443440640339965065793052369584180221891271026590545232629454777383437967306570639452081850036893939781359039967861170752511733517558802366795153438742674008132044273448957800101300484934307424060182305945058205624597771206789552659779646924104848091819507176335852332518029949654985588991334957555470626084480646236010043834311427187313391799508514872777950429976069515064991798776350543144877664643989163470434134128876588239692002766251289485407616896081788934729420942333023627927172269848476079820649885647529580399026666679045330524352191523286941153886747042329661993325023837365914119960413050387132687068206337361472127687408353025308812625658529478847235443418691339715589384998202935205250448626460445155188114459042318656502352831150999574573518961961988619899297152530741256526460573167611505854327572530890567335391180249483336907285390633418184184527226545549674466761785414727834510537065761365302933360852694446595366528202849928171205476465089675104366738177433456381958554644197608703060416317520011220045760566259615610792786461943543053282986574809465096543734577663128570519724501330751707647663298442752617710744008067992677605210726328075031998833087618338190968965162516968494431951371329081135876822967628779916917559753287584627659115660940624999339769578616965312851395385855934975498607790594756051089857461821537471709810823137768650431724112856716052442650349723107218314454733359142244463012011307574002170127701603362632755437002076483549389055395526323365559755749137780933620803932334317263991984624334967591351479479550813728244532832172593505090274867249944590204347521273486976328322368838699983526738096319426630822486017674549438963486043843938108557734301925884261342397382501633338477755774798112582308025251020960450911078031108252541604271958041590928730800966353531588898924275688670787440246383284447950174573674104631231848480467446330574671421362025936206437815071335186429022108048677936082403699450380140895886056088260804941514243010020775212240707061868831079320455929289519085287306146221389191579167011755041099123283249558545968313558575855926240777358913547657003320648761253593649439434638418526086623324140075245405081197189798718381224146866588352015415902611197493330334294477490867945500589606605905323059175692580675609020944702451898946802813188218312935850135855490288032749294440416583385660382682661814113421339420210593979429298564808687955478005617136387594789163451266901378349501535250435111727582031982942447738183455116443980825042835517802488213350302483394722310058167925359523456447594345015952421159358654472894118271154861712071631927610196702566261439808501638955092261351586124901059177254101125692976642183424711386153560208593826328188756439555450713047891358894036978996570483499943437895792864086625131568215939226443778206672951447777511433433052862143712770712299613535877168320822537848657331201263777513380510828119470214171201099368860377157476889887156460362625022247439541866496461362806083412482029174736497879857375334119357638959714371763248884401423939766956553325125713241428187841949901413835212554163133547021308052894926998953953954954365423653063830473044342843779910939803064493066489014098685595969288590569269463849408778603717508025083770069245069923324145702439501117709886998965206324004862834643210798111708175851510017463458246940546331703374929489318553291616083557644004317139903953515789908368052223883554495885961222272775657581586564469026990716853527957203691092767796319187747443887251381978162366618168549042909008485232813836356816413801138785161670265825550603964157933889525255942228161136992345827765295132489331543702502647241352779425029152854550654541764207087887805108441786992609065319394938102591832330340517332907412566771531340638913526418765306172814843322716121441474678231295272844078463374735125389230701395109495118197359208310341731449428695980747651529506982545817126313951730082270720642859618204354390144449197859145031316001235545114893404769753148967306286479041597499497371274696635784738845386840966775019751831824157418347901358935113156709149762783378827682202557760563724251197239281826645094842094558370278244876457524944948739936263021839550073464454853627826048088018618409235341972801107574050014059177733245842013585296725003357990263639644797770250488414331931779710453184556869680850647857195345600765780170176709546319876575325998150751414580209064444781462788519467491814677809489694009165200330790420991395470424769679217144313951870053343082334824820979340764286500678266900241333518754789359517808192635239188522824114728106830808821632503169552346254565503041538074190050701438196154860712340347048869822905637815633294885673390024016788098506004859391301160437132349417147204431811244283479742345399234499008052565476139977056786562569301570590470510048175373216379452746054611144854451478905978108035422636844602383732698856052695046893755923174940656058576435194197119562625216614025356250096972398372436864995737137192234790463566699708919205639345324409843532759153588631259097548123952769539998709943826737132320324777463462341798802630974617855195441748128796748236483379595088848234661129486220540539085936729296117287680912468546808600756192868923016317724646259962590740147406714517035729228679193227594945574170450345741284392580564900717517760687181652194833381980367470426019414622111332984297159326650993976380402095591102280373663735170572638763529106358337268014481681197016277412136192827959969294916233617701147832221022602032386732477872069836517696176519884421861629199366674937536360232670018794821242157559307587725010079274385246578730902870876855101878772670330860713475695863334749487562083817963175495549096583844047807091733716063725734581112485012831024841502809041582556392167291029844906264904171776405279426013468830521697692438141536817369022590420942467067222038381910959835308236714171500977416314894839453431166028049636491169256824280981929082312212950008943116849797164373134405633842197346341624736180755915095443248606165938204798942916498109247835152698926400314389689679384669365892154015571226176743325853375341350299161388326599647249983652309250732246690732912495988070287337778212519451775064348233520507159179134704321511006804299905582886766967935183484532550927832988143981580634465371395329779656309552878060817218069037052588185061941740019763648564967056419814150656395410486713969562276614307706652639928551956586243068481056853671109949811332149034231749252101177609604599684876892341592950370038876732672382844250092848286727441780147229700466641178414097446546754267160791313660208050067874830753889322379626717016493350575174562664894483856794380258190514848333908604202338088923714871450893383246773597417127448104869661610182080785694772917316071463384379311538869463306892717391506050523066994980676921267050942131956693276623493891905261826444583782577000178667622850185598113362809254904866954092632931846384122881682878655085702356438779591100578166671773609165395869984961923702326688765949604146506669976595262631957846332329989844187694937960598230085364586004556005154185183407450153712965497649782539091502538516021078504348003129289585788990185078544422996552625484067866140927415622533933678394145524098239035105601421357870378909715339576744042986012319963072209994246848263188259209949735422510472952144645808128770407864331325905493323795086501086084921168813497612250743960160594123884006156606568357464125435716976572406196032813315355252511260577682745716502861121448171211141597042593412083620603223649375773088198690628123134731593755847345622057347764556984422226344740952067260903773330004338640160940237064882039067346761778515637511304546331037689681358512334456899192821306256773034035511577958739562681756702230811235993802326072603738269802476310866261077524353941021366412916246621775658027437448399108181688115726687942757814650765182370425553909398730922536352204413655681764350819915210475208357260381505358886991582171764427698669563176031478975696368118057136105722754000592289920456887245015024375307955267165717667146738641947869428053404163654162288497622774769382219911830875353767094508614957819647289241563507222653586445345084607576898753246652885678911737366802817110951634429167108434918308372856414741432761853303529753921059897093007232835097657740588749994962138414339576062151196790949377961621257816429630808531285279781070713609312293222518937416293336584079532444217097192189962880284452136826974029186420396888315066217697443500116342510437886629312062138221376578523037115528994870271542918124252049659226604329005595543235163116385137786024520888613492934581758071544779998277707294503142240329696844251786257176105047430520881751523870742549006672424091711284976847531649234713022758532037614601440938176066240029723429075878792384091578787150953717952112589643132937343595730849308788852661186788615818597041067566462142005565792027853342950116380048963565645281530791567354403116979033570191224642897963197631136558604418138010262528765592625340984452761083398413633957395618639068415749940863739219702361840544517227138885597312796244892217884410935406648552733661128563944364870481550670737257909346656140216881440306329923993394714990749833553755538776715244808489109050436774047060510410460091346776664733223597918577894664854941697630540621709309580564907747664951418536778762894291681972180252532205230865584092972304701868796420616534018145796379910517057391368163226596603946830465213937889457877251406058668189102627909563379916802346614940966755893696483085660867627838080703624496573676077687055197025021879736576179283784228903038872669704455911192551186676374801633271581051414875594552922737931937491838945168606002051186439691216571771411507425794295633624207414957861694152504460494566315548023497300198977906901827326536496513780029471217841661833993788641196314556136527122458952630931242367427243683452749037847058781259539638735142352387650687757635991970436812629243220092713099418990206968019724035900575018108136177567272015485841005917132645369955952390578325057745543396165460291739912355220708390961540073848561538298287475999585036215447844693637551436654129747054730327592086294045129538557410877399174084440401709488654003133009946385275061616321246363869056656431523778625924464916677297002727241599838654278896837782917739110659562255455555222029573888245677312986374563193560813184959159087481980670748313377959857119274793412011140119356414692309252970619437088043612144902074314869826883871164725856406060945300365917948118136411386823376211285960789902490138713419313776099846558471956586392730691196027780224698769072771193727025728745269505996809775883387777931008346636133857499220942108625686514710684115894129616301895890328127370773376519686333762021448805435300756564407461752695276060476047364338487831356087156548205921672738025618158823996404891904110506760210011827085036814861393167145699161095799325194266508907668009253247097202726928276235570939574811392039835959448345630649668182036500247955827400486069656571837857461230537702635896944603622198892170762879290937424254854113983979962040217601449890583827266430433556755291905760416370126667238479606720369258678914821230097831360252853553335052094458526046046144390168534006264031251056804736739906088915038439937488099399034835188167323288854389371876631158665123452555103334750196958051401176725869214195999194449444875818546041750767617745877330469866568906496963570867697366663819416468037697786666932645948338638543585911534053101518932906554049525852240610190355727998323086571078085503136724295487299085213555616459007228167358111431437997117169812370970262899640130882702793723982150713198880966904862726828208428656735565668164497800819262032231023139163521129519284521789240116982958515569274723671191481889293233355537899589261932706977478587945229028391425045670262704694157650824385052198866372231042111764964247367559941008329649172730670846396436319691974769959579922166661623840734984344479314028780700322509379076024439920072057131483515836008929590317063076390527762929037329562302849287354924441602080115283586931395719754876369943655761183260588989132959051818585454102883880523814658656375203416711427958027197434886947642852282556296902002378929025471764149849564958775554841954036076971906546393567692225301627240807902231326836676276666819449858073582336259706379946556785640537952209619999429274066017228357200030102495921643726819644348322602960785231093526896300141371120769145085635104870670271587715091813271933845350586587310041426575262182528802056143617582282167021846537548817362338328113894973637331867951795534847129983874503523420903435813111430060599658490086287299366303757023362668724150152126956169017661937080589584910339147657797399097999315407447435935550880786471661702742365991843674602346884160807702137505598475008078396400733410748123848961558878563938653111565219462185968594758551569406121969420526807990782871106261123669831556709310672394766606068721372561714404644003086408264787775593079129503829396742869882382062537518987036413423016763554261223052059634846301324417319134858937977523676935143794226780197658567270896047099232931568449715613035212651403400424601498019170799513116789950252385221949236427678918525236072017991981770451295096140037027862751105671476604789601616899615246012963567379810541430413088043807920718134378802555519761804200670806544469111722483015453677889123274959894030768451369487636857424470807656333720959020259183720944816594747365390991652483645370829112787554232237057428263053991446595918318929002747822779427801215796841796532595178245454806595609727408068624718733442309071992302423559074220730076489181617707983278915012111002693974021677534874091639285420658759217015764358861760379364006274194298433459806603574378854572585740029317785441213321487263707374531413647861845588988383187082972369921134001856063921596497084465908465688849698456082050865629472460835388128212604176765553095778381174066746644203394715632742893065098773359313524589488427978435522240342814051572399248524193077595492991234973462851569643263895338645678999252017313097727231873683569314036082116183238845657215866628459879948103902819498943238685394834799692764207339747831584855550032157664777050312131386798536362918378686658733149288973898398158783994294698246110579741172530649096664912019143488557095276249547327796886787334703147363950088576184881483725403680280158103013774929728185804522507907630936497162875515292306888487227285852139520396251142966831335539097151757052405630434644546453380875360120649015446609073047885158569189223748676899186116939928129380821743055334943172939359230984980806725145354665836184659091348983168849712189660133371245642880205604303778791017488759897110780317352617181221421458002235093848953242775879623766777659273867207934435364534558915439250438393761215745061244632997133851948376126481194065101827023716127551846321449321427519151525783771503307572848502255310449763711904583152413248871474634038695962020501716741389461372337080417888015625194755979790959949505855970462595045070253495860049526979005253749305545671837261963679641455670675343180534140312220832665526281703743524356085416236426654378171990962729862919994241315314068926787142244408493192462427248704468657338526164806493784648040127039281092128328541039063925730400251366536817089898028862819223329663551442631645366651292156083385720754579986481510954922077932357705470961414694006261480049947687904593463197857189307749769175044682450563592223823382998541581604004479827274835886577027040381855061051997302288206338865974239225030855780383577925329773970764271684759020200642366943009406168825222201759339556925475457088996414336400169976673987759304402086066996565667311563539489016976825402540369373807577080227880311662618726251726780927970608515363415032870499800236080474368110318461736124715605290559683289205828921708101836264609982618533827787794109472660430930404965413445151074158331962822933311174734736335595632454159630924807189026228648019330540993410269734731750336481220053485323429691610708754711474085727532808713279788325605598443157922639290987120081181639987603741129577034215618467448276896476849458404670500772109122312898382985369208455332767675940682656687664113653622187064425863015714135309493101264610291883871195776672376616517941716663207282562748757994939060742051933633247274014125564525865840926141717830085855001716510444049635356046946387837024400183289899329706399474860070301410764113164565361124403957336139958571793560399241543701954813380616303005721574993816139683751869609209296541365933639107421602865672984463453035913932364838042835143073348426224606418656000169710777787023360865451144011869767469273934473569659230837650114572689723266629983623198532716333566844097060925823411976284176585687397691439657812459115872038830696297695977269640346853302447337255017404371927908746057762046600661299589070566658976143047733553290487200196437288438759594444673845856276070826043022106288227187280273759194148066191565999769802843836140756308048558006601649928962694684111552870306316573031004244332145263430443675891859002737490999708739552078952642880636349625048576225172748625471006951601392424451637302866207246841290023525315462910542971155608248576885238411439206080688138332320729689871265627660620395106175266356409264471016017269286645891743827188749610958333329136058709805476091039764383746968127559028754916915687408008659667862594660361887719034579028769310221703069399982951467807995151936612264934791310451588646535365832444817037560351565895054567800425043791451412431852887956326654310261998044581727123374074700399215328809670783457513131339282090175597357378345207671314769274886548752170817638911086472023987206301002493471477834731352136736731302531407212960119057970824316784650220578034930105838914586958558305708286946161769414796962408135031561972431384937778655243821814408755758199054111710476614204650885801802741068909424542135366792197367018419960838692965818581299102275283053536817653582898438694258087537698338250570967512871454270720339309301442588459926204592926155713373880317196591047404999199829215829709775027712576643480180646277785757421678051053174839842349078224778482107686522492507546481680952704556749321349933363534889366712413927702911251962916301104407354594320893962197254632107607663891625054920766958120100774017996122036724491010253910038714258938936776008077118529943664897630192300882260774478701108995777026591277528926692053109399382907059806690644120916973878556168858529628478251152982201571817741393804910086129057969641473534640148334106760654261150681581934771984171216276550817920173211076127437262210253856113567048554135344938089416474686666590422803207526972989290721347960531790407455658440138831916044898737968984038914892172385347998196691814269817978108432903528029319679281012905802791267983708709148348135635948278937380476242344314553013251886751740052288140314965561640056074637745175168957916399561053093906383437702934002207922800214058118177202566473790476752196237337835010667936448415326398070130499677455943348731615063573388267832921956432329720311875686349167102191999857650816002315707304444691733231058920820852405503196896917573085270916989237986219395113959863282409113070828979194319193814938620256589780371293965970988840402937078384148880617392998392597832763122295439000779534529731965653529396105490650323712269243837870665582556318826546276525584105960212810343141316735765979423371592776807476470647553592484243778263280809750904141143059040705251198783843272522875813442714581786442074484893131796293568001051251107332520657947468752054755534522611366017126327682946535998230116791839630426909148424221491590993205902974114391183665157544390013259604404359074782650403306918664520682705104251398715561346204661076701412856940497865627259306676945097951781438421037266222525166796191530064534129114483226956955745758487817576979063869328008932346025586826362993167903252701338846655337291111795907866731287269271526445004562097844250573864560196364599895963529392570172416743602149056687383457863975698926577397705207662011186685508382524667265861182251180112427085254593324038593020180671786861826009741457023650306553313920850313268425880263045887219423909932803216837759804173433170119820661866114804546435325610488567609012892977592398136775018805034740077954973194596956439483459314106720382435259206243965000858573598418442291909218482369208079199625072145982620576961325894638921233883101210711749592644819175889186571330851629207470832996739391233157686369604872167596587314590526330989396191083350883428183399164717805534133696433147617842387942193690890098758560581690772280611380727527228870412146248006435417759187880989302792211621425861336814759743691219508973036744142169134035783498456978325914153977021247418939114386824245383676373812900152901969561065504551414615238938692638078800556350395881781616230497708811408543375456162811038072759013234532488793391329535969921771235588617035545756171976808989104225901759171362848436283332720491545255056670377448292882335764254635746405980391427166845686143644825440486689313008055686564564668414858023713469446675415489752545284221784243667674551157132461559054208111056560586605492710921869788911042042461631566578222306381626593365923188132706411322291605850510968260386423816879939135074051067398591485574378598925034081159950260823458256020356175705822874436833101149163718759002770636134732390563654599321256024498432545784452374051905919196259542336467309716565384097104055782337428303018964908567838135730688518994635780372227107404411399080897600359641224433684791029274758074551384410355059048861279680772277404873032698389467965140153993112352127062400748750242764745990226591063426689170758314837786794341504349967799451823718875255462492819148955739842318446511070144917293955872203939394238984550385262096589499101628282566593135098579941783147236679728189358147773693442676200256685065073640139147682629702526650887023710351260735349641834689616858678749576542552706169167862241714975501995311613284366170878878858727369685410679892167632246834274824380420916997090660224217927197678860329563659593191824424818096148627212353630102127726097972970335271960208969356437548900857058583849905840095434921956749856528513632709236355574400282755466655661362619683798784388246838577964452338223294622373063978208270122326216113082865784336407778390335295232075352581534683644823029902464094565190584615610900188584922754079939410411450712197601331071691990175450360360422331786539378952431689699353590166895755626572792700675884016854780955099122342136752724302867406493049175380641582524442766019247268097329712900003437009989064136494432919550712547770103580154328562722656436368751364805345836244290907319354667414460092798358256348146302771234133557253807086734058080790862623740474693928349480861463381770432589694363629308273980178039006152631612214910913948894787933334715108667074032730060639766503022654253811333423384116161495072240190171265733503945973812853930040009276180781641125461069632596551655078969907799765250503132781951349544474325174158189247847915198813369257163808056635937226881964386044714125010905560311885938431656081646841135784914766428807339670412428152292821716720988778642065622406006630243561638454387103234102259074137720061164119403107800619647633636383738048453898748004811773336528538197689574284427072400817056714312404640719407242326510263170581184081616045797107676086396154838827424062891554020172290537467052697381963385396434937799752082779475451939719048408443409003325286358823719845579011292486917831123534838786985044927585409206171855366072733291954630360930999128840118848457997427265747531123247033845970470027581990243249857125887266878241437388511978469194824668868064266216086756245534076679740482666220553304395407146408613659109176452438705396550743706879253503318565720148122105241648529540873174003863218689107641380507484978196274292440955567658663292244620734736828129352366820995891278416661870880096528732156892219249549196184044501850813715652382892011507611531634804595222581503574110393897596255143163508797701800611012474562278870103202896581327002910636269354856996428854734543944185824388588416372761385988776319200995112226737503922921578365316930919922607750730408311944425411456942241866657639627634653965888716844656294988241298911159946050260553671986171334344762607643794626668375584073514840478270647720882348431360470824595043072155797418342773228275666605143767861441507968465544702912546113911402988855452594109907469164715370681857016449219170695030287217936534478517847888855953108418332222322058368334785454895128666428411006404677809618446571655507644538955424142713316206749484213200990550935230317426072367421707793572161544550939442749138483257102973437533334744928965496981512559990713236012686434818466714456468963779712514009387234326131757811765959366988510441785407350433914716491069563487031854069504169492781909285245357875071386966751097889522056521948884599263274175885705764180688182002045687996321982884364185577027333292638142113715832114635768868562911873218450168717345724185796928271441741893677580903869876415942733138377205143076544298341809549950616475315942967288922652216783529944091896187935282470787660500581834057266461443962004783243095166529852602209710726821627464500930742932453383134856447982355705939375569770301349112284956416581322081151016786353553474959742888975432627697635042738175986732284845419554207837497937750310599355322064099952433337631208447969786850358388578579350731455900392338665285735085578860722629626471636021233482670711386782673404173465391307003564289670306838298453715246926435160306052913628572240524304954300084251947686773295745606367038858564860249246213831911111205587806282578200707235341864473631437700318723170834346618003383359422313273030615377134276874429490875315779644851499382692295540114600286660930385617869607299508674850763498382395405038435070113520198803398028512053164172052616730968737587880317278730041649002534929665190372170433941342595877617444330658472309579027282647995083335725193108425439810173518725869802707805546802261193214801533555759921597550780615837477839635565088379069467476697436737584609377044934289930113621215386865301453585262093236418381855957348945517039040390069413863669110222149098241307161976514913176331400894300724428062823266605186540342987018576576973160287969373533022673806473680845626095646231711908673398877236465108193959791483766203059742664100853719611914759563631307470235101517277991752581473277769849333902627731759468013880751353287614533356995411038816449164720514752758969972437174505147146047986570088337309401992582009141615692195363213677825542303555387881671896271941393709083610821891944107121289007280655665144440688783721427961497546574754867027933910225729026723383352453641816994822667022332018069907518868746384817811475258146715193507784313594060528305305039337888473865085261499673910022245900049593700576977682986579415741787256071518152878685869558578462004864044905035859919086024584343966163112297372352591242033855199894940857754873871044746837501611122308824527300260562802792339151102386723442776911065328731140010262005583553187562090259959058444633912669757344436299310125716372383461975086402050051976841042781788653834140769120334650771798863889633148512021498828368842257220391380983460227360984441537730951321312067369070549286735897278016088899167270992113136251300265681672500234415437275101070621867027342614962171419416019984071319763063410453197730189781734239171436542190445204976773687102173208666986723015997041271254699294627362144419407743793710649985066739552537914879492776924333672793000080376550640065613395670738040179657295628417657950779363348407307248275288063711129580236523418177887140657940405614522970961296582402466732732049414343368537019119788545799384839612027220105218949378164419435581928943416376147302405430995910814637059109395882492929806321394161278479894218251014266727184800162395579184999104431604242607907488683390096852205837564201144816022075658339177991876699976939293342335614481188518597814747373267777436080656071209311875506238378786518070797520148479846594285482780172093150488256965462322493919155057174987053787217561240554464066447167760922352211120344024987902724464156225061542752468659110753416751842775441032153158331489566123411902267534544071891875671355336535905261672477126318566436198098287834848308800285822460444160864202773380550567318693947520359282268610370433260243055957068884456925915845283084526920917924537777236717326012397930957232496519318118100354626907222439116551444471537911947611977888550010753504500198166011333988625970048149596237365490628545409045288712790345133283721666843682173150913241389076804498100593244711680307157159329339904137438278334374238259403009531328520252189205305139834334502952562703723780162315335412080313028289702165662141318188349147636563488035867462212469075163477533265596503485009993408120257645607567516821473247199415644619173625002952344847630864990078561905217033934709666281307435980407112645677038572957249774036172118960200114251133059803299627959935351763577515154936037797984535758630008867694688302765021375062281366577200442164511012572792112349732119780284064497657627106399296523023008531363099333639855961842905559576085884382506047147094634685309574184543948315971093774057780877575544862342263858356187853512530039717706399721780321835149178107617993576180079935836771757381374115666097560696584858859496816415947437524884269358545017398906717069854830707854926739265776992731256214189338841619786486767628602075352275939455123497741348558668226441932261811913570203894380714354461234884026805954003385414209585902684623228156932273386056239151918596344232574745302169956669460425941914433299031452497230683337370080808013286831128504931527223576001890010454463441366262308543455966948693301228193096294251146041152481463885639014393631146806387222983809526774346357870718841778094862861064843263949335500717437743921056610081905861800324172592261233488855987510289694807259786180722801310760978091325635527791740955478822304181006195728511339935999962954039356861766175327869646729843568283423288210803702920216712174165988340922616347074428452824374801386221665325094603800613879452218252454973133259095207166335269800255380743558883842578066009793918206002765039042716701357307123938297458830730663166342723819519220106148512357177490714379569955886537135602727092198358425147641107139226401641422821570127422307007022842865457159532844831179885707523417395370731706760204052520055969690107217244829386057828280166750681151745954950099347486069067222185931487190617501333947200972342928524756994946282769257718248593023879358110898549669105910520190384004653171676142664769241007830996045680012572506547518001097825992910341139219305098394300676092040326743805877435921190571990652547018914422753455190145052765740995666378844161641810012250371644604207349803954928829407459703641516126679408122734903857435074295396583554093408305027068121213818241719460679403080289001823513536890080182745374760341152593494945810948121700395069496701920032315161150618656165400748076528579855342539114325523690858878697730297091624876865857387728153029418863538920305813645543120603205633368714032599396173963731005347425489138574557722595239505423464332716677273248342951416773281068510411583763655946483261794339169137185103145171663898171708060174316442913582620636591072014154647438478085427900510910035587155611978812797326879642009819101639439728299620722820872354610785733577313675601191303096930288201692547544677972392996985943650182708673422373015036028912274769188991361780658880452870157215331787733784968750221983438310343437639898714525128653543164908492075701008657397094460776365291157601438080237609499600303080413252847565035705786953664312100909832676355004534499393052190648368312637287219095596384852647241292002325670580735594079826564787644755366583346338601511671438156832111649514888505054724610631095581453714889024994739834749683163820934801837522029261585971528354081087221445422863840641223791334647311774575488256668325889088057439365096486302509761413171388753822287502398962292199958927950080160606075026330344653930747549327840709970479926746455087975091869485563305361043868820897041536072408993034957877782403148524748966908981743516348409095718274217904673767264938266078856785442715969036065943217672650647081083114537093392281470720383733568644814859295384093787053225937312820875062127034334657990338919062959808020053558803554888970717529995202116217605795442831035994439311396315320400124427515345702501896719669011955328898731675227006256150661556742131599165874734931739375466572518118361655264102051073786365285473877084422366815792269552826769140002026013435207563959378043638096200507220798787088124229048363064959992460460742665179859848657626174384239362734616543808303365269813556497154153908248041999291487042125003418878882082613157244947171989233781856622827396754558912622677826138384092275110693436604255743862920988826954902424729623969599901068280127168290801070974169331780739429085741405105334245729701053893842370272532390940758014521844801477049828975163049334356629496946524495550669039556244312400656123805876919632565483220961772742350433723394865146698021197049125735204293552318934462945197766760835913364798088323764277369170622882834269625273693357164185418885683774161501508346097647262497749022329334240305514419271407740586229450227238052767559666860919756484262300828114723544066524106467956424010743843767717721138768747973700446158346203972365386726751967068936107096742217676346881861755285626874985696113751057723866435070969246733116524466637103636901162016313929298871320366864310418388714775883817733906095158513646305179229609555847217471173403139220626721203527929990026569396429915818927257165619732741410329232812935546571523698350352823551734278186011503295076032556658222384940196864982345616887310067581247396497729242711444348413785433271218880849831616096233895010927152010959730175098366322159590903529082348110770105789801318294655333761076826364698264773571383151327893582681427858381712346731647301585163244251108880456911378032090334898861725439107186416556486854632769378653321006525628574313246626732267158086245001582407485663858953850213668129261180228210609871782807603951904957189104807188934684276767740191693296200726052444072626812921254707163444712835726099921078278191969663528114028614734483245675750070040425252725241861163910719440688595920388633080807069778023257615263956234839351049216531620680948975147678332614292308863620786911091946383387596071579894582378830564619526114432641739714471456336138199603203048287220863883983710375287538978282595497327659288143640977513751797259750379132385004757501966033080953316105076691309193569976038219108861596253682116327737102259894343263513105593306339997779072583740763017681104458661310301493957475569565884013553352980824631985162805621248382576414471207429877228363101886484071298068957739218570592696479921965731101748036216693976240803345632392849136871059402359044129425485271922618724938331068205796166525978511412149945719771757213221408913851100993438637779925676354270818258011150664174844319783311878838592035010766679680855196661097861717788697392803557214408993765738666363459142358168756599976567057870119375998583032466249534020418676304600884836078608807328222354334647332689631823259752869881568022398296048760808123560477792161380267091199653921985926011979360663511683189758867128888683030062009179039661226933278990588288814659071083766995754441298642175777310033407829496471487380084784013995352327888492591064767472877336150063385944446334625157331217547354797131017105388702948320402720644991796992245998251110159689410946515463056470838688987746042611340756858550291400398967821864999042298972242782939814552856727128896594501344714271651994819166761677950282695323569449746201321621499244049787599432916463413140577665598970895063044924545990843372821586230541041251756300632235155472624250810270836055305787257757247638646512523698262073367479814158840116008155389432512509444185309804369573120368061940420392916193007693948858972953413749043945028166016356866382485051216532013772323305030475024959864669826329080972806761501466486225481145311655029038832532439963938479876713968831175301262795081624252704226563734603103222433821072650299097068565643533304434514622068024304700411670622939984301961437147071547070879477658098635700875561625039453093579031627052828330642555298439584751416760688941312771269747305920978258327080925951580583901439721533227292531911914307684387642761416739143429781120288179560100909564206129215495632876032296639040625116227466602379668229989046180183877117852333308850805936175078225731423115523146931198807594066491533817594018221686381856176285842214193605003395265258937577729001102342890421279768348122954845536969136037760036701272932263096091512363456730924223843376240813572984585514960596079866629054845564567942725965146494271910863880526204948939767744309851116181490263538801018678185590521355455586647980733298287269108458365907260864580627979586825547189378663112117515956106748129487294332155237645484296431914056654704826479949539419062895808061720876869553334179640538761840510917772330906118019752242671472049139111025159349369243799354526982221153377335602928033284573770191619376574091080148121657616940030153022571774866362781509688185693168589616337036845990562347167756874039987807852495287641585203005394840376359559814592093513414456914830775094488067203332609423504554081406843720700670957501308862128109422303302060710059709594201727953809164769563717024873357816719431340025615309936714693491436287778511350158507958910676783782217114706341124256738895209320255858698689525561390384304958885670047300123911283266929319683342176756970769039645537598037563213967585859362990687962477638957502954340458250636987413973738875448832317370435988545249433256985317380958255812571184168962681443140056396844426223055145205151461015986974096949617215981753348194765384119529115874547177975128634540708985584532069893945556373699039713449943912778785990918480998420503795663181685334313677868050130816686094439303835643238327424359287069862345437342079013613534443499973871981231718461045357966683474333473644984308075163501168406227056262790947756215069923035240825380614704629559826631400602361726008071504562598506592511899573384370050761535354565333916077430729588043421320440066511106629102063587141812977904974517330522550829154306302103928327391131751080163923226046884076259692665627974366069062135078058476476767079675412211891459292586461489969401544198639759211670530521339812770492836053260613150121035842321685749652975279083530815224458466091096847886303352630482784211232128295521402123966478680737590961936282866786076441662928189627598807459339631780511156936474196252502228402434518762956165033079951200996058417841722686274381817833902153206184631131624972555362590728252772008037252867001286261144726044987586290021665779611196773095579424297587921673096013522638135929912282028875866879891612063638975904988962251945589510381384972918454793584251479889284515854485364913505361221190133032545573106727661703654308516463872551487381405675528055531189519446501987949293722388543785160045423036965668432495380640306414641284131591671895262557787618697940212142002050634328912102467792854153908899236534097890618632608543312285401138007974461225997962341877239901437785786324558094032806946240251076087834602781120954478964519024595663149127346250910989656963468117790376445495017983989486068004279725542799280754037672892158069179016804132953835785625016057973382408508492279043568725626849250284203338955933102462235170856412455265645016820578501882770864606733407188143559194017060793669222872613581721677746533717519053743396066049037305072471055210820615073532989655828735215332882620626869198180809206261610940066486735398028979081394643214956773962117326169101596105837251338688135299044666320923190604920207707464323806173991977068117390858973118512840397509676783877732802293941421048113036061242763830858286422772811758271844913605818080038506890557529998801772553856180303406539994340861616542183124005259454925414087556412772062883964655444619158146449610851619514419191982774140380483125650615579369564782991901858323761617940428838032729017174867575365126002435715858749451160055857198280202914362967466726463256440941984927647392598287443707122006990579959400780244911744992720233783127138383403948205984293051685842133242028117919526738435530991448784779682884513231737902547896756073196185853167533896159277982409034213332356704666067387023168179094411579575156579894873708843318664593655555807378517094808664054224271962713181605810053362651346584188522809932425742831110262473187260424958844793567674008468484128547250497826501902704386832664539771488997989157851949997991312802412340062128006419593100545623135336991476999586899008027373057065189399410201255716617835284256639598705548727231514799930656556039310451195429677770640324693805847852322863323333574462145429130159451001144654460085194452007500037153211255860763976413474066482712794305631071257750004855948244888816892016545840365924634612097268912027659593316906858833283373103527716267427821765457712921744842729806160189331365428733865691254672523110031008257010602462616854184034910165333274865408345984692094657263023785557236288370905310510397162912753433028908142196735790614526147416544387882387118748054252757023217339367061558606607563572987557869990066426219556470132636873464128688324542598882282277129718626761232145308848526715649011343936475022436647829920769514892095840012121214274167304911602337320956488912116180184784027812744056858262104323545173657391866427830617790281634826908072152272683866816102999683817898262235269243663030571788950524357707179726313640328123393901282325851880578880052227568318864330591189758622313349837786259640819682737504833981242415823235119319340080804352860899436827625839143792423166374192290650943752434785795288596268391953821217871285499150926027630451923923572579196204510846121571397690002354268451337502166273035034316162973775921334867016654470339416091044265812212412881316814328028328724339037253274224166421193233275820996258001482806965221813429543639322528492002208553957259440053592588230723665863595415329058772730978838431275607431068900959976974197972050870202297495779423897049781477893521272927161525511212737553454239975292484162826279247555102640927743281684110655578386441468353926627194423629104273224590490849741079131695055849016361417995418265944315178435495561034879478045488614702928928528171730087397981820075969646896230222004666120500880401673473389980668841342419450979852360712401408142919549554090990750196920751652021270098948844448738341918280085395536226095687288282825216644517593648730716809227932984508918816513056145828716785418523489990065063316429941599482320074296867178121314402670365801807256447797107625238984958409235931653992745896045349801231921435868753464931773330987719067239082428763325013153091511496117404557607044957245454600006615090111038589686973379396526176730454708767108025139909802732955041688457285337784169850928238701138608032961249657202012100004009645358178506101249220207674403538467287305143613946515778363841696736991902868820893646064352660636743322693162041294074787811006545248604260459048422629163477496040875363489699766284116387171342714369174265099715734063983815540966532499090021008244928186338831377709457073937993732250831966039725236036051201908256438899468705366307157025588399863269827746907364870985462933502259511352741346640632869140846098344822200539181849272454871685609408805904689200989046680042550724357210989018844294333487098681720462123610012779203902556457448664167715288072568488261100598976313690856211974864246245806394740784152009979877870481190806505294717700502469350623097284855510742894255181304557226316892576625372528441706209640453783639096747160744691043670981271639902901450698387631423769978619647119192265433066380655030118547559931273729596925330070615223766843086178588339387811972252259820128999786854256944058203183036237543439584601143601127340841350463344992862475474390416868470071563181289973420775165526950550461723419201343421126222177710873081462532839816788731091989417714498626635084735839627507106103792185936813027989651888020496826478483360650995418606048823996516371479626018452156669065144720157916771426870258574785084801781140342158974009131654254843932828023428450423330261886206029465434486166430792276878890536304820160083377833057132760337542950557969527843330241858914804052194317055107941824606917759361875162793404992238498458237288934658088574664831684618640537542289424721066457912498300165493942642345567162766846439635754539241363736098784469498750886557800966791862464600338910509747581469577283606882193882055861786433066611581334181347591315821389883087563154360653009146458092462047507714205908800971362810547653575691493768688716195123183267497590581492776790547542884915169751837295814628170785424974745925367173643539636116126567240808503869997422815076839260789410318407931378203252056843648309381243853818331387005475359407132483812114479058414639797331224869040912019402245020225384637117559075862865402681867388609098481122324587655243489832899983942827815205792298726258918874660896260503086117901135377503543088324411700458167410320771217992719304443958426523775609452149682783029928750220050512919926331616548925590555313189196970522720799958750989480832245910580090969036176227892466725426644285307714189970304654782296878627858958381551201726780502728512674208696732249742048050738469821108223328720902990114099789998375334348727986983325116023194680188973648442069933962109524589339981157284866279314264561905832123288312208006664868623438025140585231595299056738248837579089393384248155669131280734919178485496480370611042492361147857892569382011620712405298718694528036192024300853726905004976284573552756663661793546033788608486059925609236385729426981241181441663456616615163688951525822080713881170953593574916082026220482235959028871363525970194117826347794595242879537120154600970092561712016974080383184856610476000737039808145623796238472958516224624497953588578780358938850332071134847926689104910982253898385564083808455747194940795605409519953599613703876342714157388311768629212756968383354443043198426171395628092390674804378463899640634553950122558802582241039591808710210881584118404918311819948623851972640707162065891763982807952363873153568744330607179138665014647792824211255768334933956980843633178041426214437267886505674605243459209435293565476916460819792631136582255771471245758584782111071544341186328088118207839246434716170795882258504344861628379353449933711809346664061589952141632003804558067681438151023269857384779812615354760834162436478270449018903732618065973076930806701518737257955151307720630007480243367665337130725311986012407626819323317909196123598228132599530010695464832391494823616398834395793319736051219664574359117081203468233574084252424744919635611783495725617894906106050928771767531865506678147900336059737808935100816519911589825161152901568024100741886625158009862081884540296782589985261288337808305634880209514482757501823131791033638397877445511415269075030158689370864282117627079653435400237917452861488823693506723612840171896101211129897846314204442356246746799612175171014377583330872001537603499866968960213646835213257445073080175828832706154119610633012846105811220607050154003233411801070972407440439343842832699171448856787050924249001419430041448078130538986487789742759029324817805597801264736456533014092660702220124521493846684858026558206403570563828077537887972297473490124814606583105399727097555697165818417027179875411125901806707083693060169355068710264995046303180124479870614082390247724224058007982819438199633344810314083192067381339213797274491525070262722061739506585090030655739306738182719798203939503276143818808935064678775879128222798499428886640661140035274042342249958542099637910804790067984114226247609825592630292591780849176101293949587029520168465169262153243494691313583225334178209798107440373126427448694482262223270242680798403080910475871663612229501169841584635988152525053832342907058121111695319297343058795597381087958810375197400902792252592013063916531148304929058769917334473240918929058084572193692917708831432552057279952037752811714624680309091376720617039250714922162861556576557356499996162960375777208581247423862678594475286546471674064152315484363389107170945766496409019458561620898933373133864234749092263680268242425410968879437928656026492014319515972361376388456982503533649514237265460005924173101124161796128232133046719189444161305827780616321877837816420225107531928973932612408707248460643354007077567511821164045490447596014600611409660823802683006735614720399478422509672617582195317910875128102226604240200751794191305134817454287993731428770559884572906302878386750121538477239242019213117315247756760377946156592588543512042996754331463689681032806891801036717522536535496878424913296502444368721091789515529322135519342500331227650529595085463321981801056648546893304238067553902297694812189787400622686201924130733297853978995659418564897797920786329549591382274484140375168401821684101544824744502046342329418852009354361526941463803144610398287177290368532842210813003626917793322130837628262386711490132085090881543013144894807600341281022027559376319894207461387511581888134402778592263702917056160874370253976006843046150231002025079773883390870902783177389584079418217287331410782455411739348171161149688312020659315235098345343646741246647503524207881201878515649727187841437281047079509322616879368267835556255857094562025892890307831700432652962558829468222357341122611960451452199153812082615016072720047336957351780378947239561090198488623218894444972531652034256742161504907944609703258331063083686982024539732424711550437969816031525552685427334386730594061448285846342592976485688656389294748615409283140451228013118830442687843218179573452700518680412913469118412371821511612190337148001629673876249325332634220290418460092331450741529644697438234913182938357308565703979532138219799262223049957272923335026117649773810434149921998053068923235933694950383223553418379936186864313764029170531134082423065003554864458948270988645105191530826541314034638933041579735677351258640051941937089475297720083951035458564051565487092406071437951597791188748180482809288497531249945248797065949519602736010210179607959537818215009899060565771254428523104035973404097758013086457788301317567383802032412330909938540493071158084747399876235470120444583390789331750179733823082245008281899873177370338849167007890391658941269642870738311647159186358448043038524248574751490180382886956782524653682945956705323758085727771147397144768919828993742335391400984094760802845816216202502301258661817652806601455123098036516484218514178189429029323408796238659544714206432097332481493227728100472118978189186969428872823114051378663123771578914076664958626148707107666990410883843801558178550367079976511604155558885758817333361162065426762995901326508950419653968378431920680682830416986056655168026285138458086508376640272107554408731658661742919180705547570376213823717691694342202286061561958743955938688855296798547396150893993736027876498889538943908608547745593271330896120303077473187492712745404458224513589728174107771239544305519889231800817138265063529806694601984830562928627494905554091192915778921455268369693820901289270389497850420394636175168896006454313649489821383357350771420909189743751460619126547906232002268686995674438210792369685743986120688975225523808830865278819848723892281016137798613393410067264241197618332874487312845000251254483682131680885795046566072897272380566339074149731469642931502159971676205157764744206741164473432383708241231646214743984779510124334424872385013998923582598964946312002654347400071908381801372892310738831283192065637345943229137625792346746841082932703110083683815158498345832258763748299709360678213770744601069757822831366566514667880453237409984003803574118666660265707073288348861030180143650098360836953406694418703383094004573120223606534412827974971153888752148866232718962759927298977387953888164453017331483618014007826468983400676484492716733673509930737805854518252185797308056660993539389892847564196863783077034485372694480558378315487370988129553408528030354635507764180506683409279749224113055946995840047310585077649941994357382995774578586185219048491876775413230905696931221798757030399768475357071702343115077620314438130732908308815208319477108354366811920235239463590233678596664633235106648397009671444482350694406186959113429769134010275175486494534760990397308879594212930337908826878092299016238389726244245012857945451722946949462284022052641434274809349867571472395724489285902777811801306368050277865244490292520730718402969625605756953960536410551935612608500827049493390207071468391962804212773623312806118421592286485827365001147246480784082636504243764820225120860759251713789429093244131557106926894963245296487551021020891337692410353059992498893006335541368125222509950113520117495736344706370816793889135441497759927314867114044185355129420837153241301080072543521746063598487710117048533913773595161944053915564256371158695910699681481975181266697305779836120693667830022781118732238135655654674972555944473295902618453033556713055463647489569883090120860695190624453200200014394295435869823879643165513485972295071672107797125421256904585725691923623859992869124423426231639603987327887060281377956845246513699771030268064443290791269469038836891702393485143262426203977924268092169292346150566180536731790885542508742892209650533124627401847663283091225486791436934211314142557602078220160105617531780773695656136505924916906177933391007538929968109585340835071700725878327719500534003896040393877037267369964216584004910976108839869621406766789973476985647459694671499148330993417397631614705634716066581984764244494860873280420673754352552178066162520031128405062274895385306578120323926364112704474896809929307947488650605406685800105500320763262596955638166945097137806569846655966918460709155660618726010514162936792628847717644311435295339934275978053836510410733182893061181459393184655059268537469059160415324721319224575235104268315480966490811739364249419818679292892568489841716619996375748044545998698990876655450730895200251994322821564894355186830577300734721745170319024748239734450491629605756604020004177277621767153646426103650520481312075015000514788448062659583619200026098702648356471698380278470256137287273863969502882213685281761236183217353094869706556270469954421411371801079822262362632626290948988954834091567995430813509510147322301615183680787590056577094892701518034166917409708286113865663105303464506499625758111375662374082957929347207201938110885238618434701670831419339809540345340997024222275404763053548291497641192731871395075227545459377704979105147511018157023085351531624060335210134116689328285811712303823088595295235491795916792890261285698555790515054577272331897873190396038318681094319336985549794873009207212071228089008592778551175806107765401125744605697777096780340540563341246803475545420080826564454576647915540915417796890544939994211137299678655423792172736613262182961996167878743881816139911637715796425800494243210455840515523465392582720065408754057250960975989565937550611519606522925991843988653367979908949107216550353413381741361672132301668002047468628227154090571105935011614393892206425901848139406836244051710102784718050939357439343947182032943975637556912368223815348291147972071030165030750212265226598999472691881833130281118335312995341183992488787423949289862363625940795174525582024401195383385476252494215866607843219581566013846424084270292664088766874304050428664665980064932500617480867343439897695141163966320550458090296894539586497428802144356448682354731170778633463788636534873273099316382920489781497726371690427911856123843533187747472539506296328392703024980281049246449659910999503219166969040985175845890702844050795690376788545989928519876773766672534134143783141837730909869854846931002213379283300426499163203892412891733412082394829898416436166579035976484767888761447423096129974682333652272846538358737466015749658400876217486155280640757633780452038283219195340537690823320220403950758896689344055661896827528919560411034298940728218797787604525726929321520299277284958138018034228327639333615324878814076131061663968005473688581214192203446206617365313654354936571925904358192078401597338676369736905429671758594119648095984542193118814134064938761547235492649604742206735955458006759389940675958548972105440555623097518760813856806828028567004541418322157011109200222568831797090385392645642797332692151645169839689677393132382178426201487698743818949302434860485144013962813875397037145314105778257547267544792972510688501263448892692896962590482610235522778973701424071690468127234706469948813307059987821588525810128927061057983979265843443156218093848259266783262204389507047723943518205963233817572782531941203164822047588254282129471520482837372226427620578043446687035134102369848654165485268657977024033029672830315969255797995262076832118492562550226872883622019465866424627530804128926291140354308293684179792310419177558118929818004098581345214922362848474158751176369851967849979369466068847023789620400237969395986801558471063290555892725784542840235895550056862266339575841891078705217518997401826270307590465195741511667966115578870156206477321013364309794809134461333801965095256128521065881984075109945302439277199763290469970042886388923968071787556254033737137340644596411907985592504953139141972399864506467922317044735449077795871408772259942190169090364555591035072509060792149088404160752476696889557655503817058222549722050504645996245653460080604904123229981912626455369496041763582500809772130934807778994134166092592300564727909814686997134027862257833031032371256646709874933680112784006436506654659412063684919454612735156030629266986301669511960732479461792709453825095231635667027788164202653706542923112363517515020795752472667982623080991049455059611429680927218573098400145706642691426520655059119030329511676532540201936172499115064894361786347094892905383457139801136458195002681936881646970851713673078275078315067362235938055619258455644567086322960717415264635411106974714971926421380162909875054469461486312476799541091271266725496492177085067970476874362660005798222266451605892171975193965617412929482024681814552781111124059618962786040899674958099361290256684961439538466888992492280589217847635409818016668753392977527625632464778568744184137878204832453863673265590900767928980218243770311948971707095860328499566787746238693327623030196413319477675990634033316899276329502554977375946789914872684320727244964168411047750947124434304214703254066851384563778957147602367201259148376526950106319844672362122955297010291758890671196442183830806511333636103412297603978620824095370966310696617540759936449117680275283689202123051343241955718445353130643488511269190049802895116453644980846445982164478233024791770815002399695323296489144575923995043930468316396412744846978772503902157200877701876688630854969658087952876519458540902408430212297061723081991326223059929418776102393309196223829150597280665814170744165439476811747174181624661296901367352673869659634085535394238591134167198162254846900040589532585600070313958255536971156827843023993352878856418574267615082511102526009563041335816310603614544978482177473032422593595536926238553221218062909471657010577121683732977085128265356128901925004326653279312936182871774676070751680533471358100050780602926648534851343185670286815530236603777772835872998444204087859822721514774684756183866719051869265703698945307016076147775288477711131401970315760999769665594293468256274335905786852004319848451263683605155709574482020498082513662729688777229194823891075204514777477749925074628062826627546981670574905731558951709944557724957505844236054851117968277144058287454733549964785157514725861309894536407983994467035611771786630225237626865439078246159854830864680808611803929348925771548432675462327985409873453304256221390814435966913568277116382583035088858179532182445260270195367118220942685625218522297658506723100760012883074122305432190464919944139145449596822621048174186712628116228408977094537167481080310455447020711355908478514142584873314454467942240432586684848658651280331015780558013627750062576689158990064279362957967394337231781716408708134202244794160036560464296403925581352559192672523973606500160942377529457160184119962764825962745126051502492869815792431837195203261097574828312314090617641092844480481837675524666103581024970414398896830342594596969093588217792379940466757490318633574516273832867080164364558593913947350074555437647453532749828176890959721107415769417378572327771111768491282227259274002974596394024491557001891503957238081072822685129466819962748012835281513800034937335653267684945640003110470824361093792386124004559221446469826865060932036790327192097728766176037418370533697779627082184617321743635980842837678561124513454039993420549550109409929931683535558966514983929641738913125958343838266360697272433153287108746469510140163432905401373786149263016782691630545829667931562044534276552397679550545876199924473304568454993294480865186923158069312580045805696985018330877078472591385606053885488124393500329090723868471980168544440843490054707227683136689703665943636637636723337238681631595779575944244848867930844105063934303681758532425470010173822202429847162775376227928967806310898440219868833104309192587355186727219055017891576586261794818239291255407668431436516033383164639442992387949124491559382904142080633692344981200888785589214788949135286967713879932795094243616112951831313332987544848504452266211035808886630568085097788841266959855376098209604279229955275145307463052890603964981953635800201783881177812505051120165412430892730428709261737417197189548606756894471851062270384688795038414236870732660084893889136331525704057030232142306716438792192223129654320143182248856504636563877749694576317859755158297996209216247678628399349916127688354893665630141957795227829893228953680934862682894508299817407990800001397359608650290860947955937744310889618496381498882517688944776101008967924505844976711572862454003437570598722391050659236424877451304138731803958431471520020329827163360682318257420178932649078811692248353087965997248080473210690549555135764633042650999394359952528449724348510416238039967440508668389958886790174873019984374578901726733814731494818737172798317858489651233108114177131484368808162164818728593467626824484326075821653805576211486220173369278792392913458177197706053801740930600338109683074129945125979786417321541251839315208604336678741331551326157223484020049162193417732397860070124866640460743750698089798853331273837701910454894530897093297312724211449615834300621530508728083938169362105692876252833316764250782061482005464477836944038703665841875878427659365144726420348668873810995942585882772395069397447031290053075257994273974831696244166824106304089219068398476445515357232723348258014516861370010035030439067448856427209448222688765452386925722618706999558119751829047872695607048315975656221758086998572356712237209390284952755374913395928966301638254886487237523330267766380872516553349101499076355311420015502762207368653332406001522092808935264732441687767142166018246115986197444911370638526437812195510213428672932237563632049147558618342957146715475965844938637162075594614418645133581318139498973987029951679894896519759734348875370534873900789626458724209194042884622709671785893135892077705691502662670787525189116085610562145390310245150628756261095593323818438560255821891582121683741349753728026874215487885910120677972046762568632035314600126497373395499550008099337624299722456263646139114277098686534533594216123610046716827917608316805220098192588487844900574125170464804888721219691381084114081813763755997432095223167774801226303488123124812283141187810345605543956767640293754471206357174775055917670322732392177593459212891762657337076191168690617027564873673015745354382422093733677413595291249642087618762796401083025828310391288169778696545072367158092160959808187595554692978201227520187800393718344189898560927861563379706604804400368073384297854957991684199330759130813521649895892524555962632503603145166131360004122107549315748410352495325910308122636129764638458914505389759129103804478709085510163657807134310565223253545535863463651415747757911514260799404331475185534914662682053801346391541566919317338962716639754474309274988047611940659416338865562831055988025741294162929349408012204967503228842100117402173821677232701340101406498641434487651978482004867274542034850585396377945866010385425853511575327120898581010376329412005428104172479119849352419254577375980535322896255729449094938784285475793365456696903994327641888257503488695079957223059256913586295453936833624866085546811612312622434558102831581136932421947516580343532009123303028005943325395416782794259378757410977574898414424332914193310276968535660477470403384554887586708531693072985461848422778633649936659373170103618805496623664471920591908015426186102547691143134591223959798231525217611818198682010055032346920732413297479866230751191448719495634831618318393159210256315084936256290546490216887078645895629360823877279602413412295621874933116618111616431927317222386347186492035227898246880223111744129229189253905025839900102259616698720135745996306150845223048554302430772999775781928019978373346929533820031715424478935880038166113392340120445722922186701354723259980591401329115973742208234619582539656592946020622219114076599113903833692663684311330850248421899040459162830316806190018285607267383217249651429921239709004704438685655383552254514402081453505499913256042028900595609939190458769407290367853069506881628602123967509994894987294427076893375051977735758005896354999029415839259393153737440485827481755615926848125023596333245583301168226927805251142044540518681559799529498936059595351887511615884903797708624645673195253509198302098390100489442639880429833229075436345336733502745990846392030128968487492122092517045640523238651592993691882867972149442049197963637643918265604279561216822956713603486676460873703214684427251372955519678970670091619137688564863101729113966194947708905592980813806381581675642358793670039728298859041894734122194558198591195627245691321886711094932725536789635735712474443143102091147991056704658378566744793688436658003437926183347381193660521839498233020592670033722380298863581049237049770662618596707272029470359300640138213228998956945958013313809906355932593009758777111013570543826145970379629145429776010331959948243074685723027171543282701330930204942564281201159181597159416949061256045134128505585900174790057383223919606725091425828254441661519248766088181680259575513326331967362872386627435867807836968666875130185307573102123551972611640811767498336513370481487317112719169948295674049581824718879634809896019736151422117636240751670591062587327540962118715152732321231490373599753575095432644856151943530184997500532736683421793412047938294748251023419568233906731090645096966277602968763443670165437180744106189660153815720236522205372058407896750283360960912757130615105151938066840359290095945744617030438759711163715757639907162091267232338705745936439209376829700524628293216946532242082820139209652894731024438526670553356591185827294487172566800785853096999800358558963883892991343763529944904329894403126973907850103661860736815321304773168639754897202937214721468666609259949164301790219447373123265946995319441132570753497502973770684935577777625328422677581154252143080126337295623464563121112358618700014412041435590662798768417594186726359674038838324103494180115862446480251700185436942266067882390831087519379833280352165382919377197818090935163112666760223454245082344740819287535242878989833078227312554604916561134705152308722251177628044244131151357697788324882724634181623350993844590190895523122437551624719190558007369102984299291323766160758012468605503265779794049204253507618278125732603626583887990463013645203793950122947177072261964912105212925924282566573513852146086161570884635573249568917310324739794648165080683100750301162675317607455479294865440676606853924339706149638231804225037892968992361359392233538959326709158554410392701840886009988688647545297428634538264942752963005862713463650795387964391976062671313038011138235300525322920163228121277742064693493159962630937080450229903109934610381441755987138097549345227090570591009395757677385617966063212995954912079703925614029839704696694504715010769070448661023270040549615916258213792671305362704246808683891380680994211639448646241667171587981984722869168331515761846489437859647558070118172524469795232856412142055856130595334237667312975317942113716937048549977956812798585163195704454507171080179334017145642188724126117615870181976507269363676897185875354780078005115028651002454555538094824490218442377305797498228225932910630252057068558410927077299460174275474356661794900490120650927866829949084664735855126689402657783576133909875973864705113715898862707757612462017758727717900592254652211404357115939564436176539435812066993628458956865407508181503711559839683086592887136324746880440518703200674575567014357749122354161293372758847178992475411677428311582864324884875817206419145409966643777348536401016370135123787963822511789877444057941566210125277087414978288442186828204750229109973973729817969983579589192029598571131004653238080692897940699532908111628109311355242641292497843147731329745255045976293428741830164320366102250661573793393995866758912491941470372314160431171096471911848403644422554167460773669340595590754457314349347072250319556602593864560073143990139282529566291395637949130300068904731254823213792121924333495715087427781202740755612628063511095535484628335670105241497580608520015725812688778980299815112112022137638174274032184155335624436272472688452317164969984816946295284525309895228908569606073341541871860028526329637939175806305982106421340977736146495676583142024908251959314454253909541141611192635523165287871113589510464077381913965454242565309667445295866175309988302817769358634018945135037873289554861971928116619540253620166279152030768804574806469141484690914065901577087925982606482265017494310867908949078075619122745269953284692501998503058359014259738381417622769947090549607623642843582405425488156668383422373703733406417790533698201832542052446540664415453616728154129689162886563813251511684588316103919605494273459182882986115466348177086189983886188269900312551394145208398530518288439866065908491741512014597788552912906197204626961421204448305466546009276164588852895563304366433904395140651948868414651434439978055132243959938545066154631205618344192851077778561955947836589775366071298301099450550216743384991760185281325648271169643608772821264084723801354840159411583093320905814431334683267395855174031473116257273643089285189859280565713442797508858364553102335780103578817678810845882004010320382489576937424865850198942725549411982644168707604764254110992110109699485866860187849090302345564705245773702885823991980897717070966600818861837228861560463871983251275948835429479277251749043517307916074207475479419822974331341325197279572199939828259437135204555196019882836234575124379195716972978677687253891054195832338197088391041061111340718840231295424828027769199659751148682079058620706210887915533858203388064659024762341169984166757137038403122841879361017106149196360415126741074184570197865847400590380758008446508031215950761655172281194797866029737786492221386268578686335927162173018334925286108401540715809248550807948800199811131198749569078869046792719797828003169918030235511353403039720372383328802136112390027971938293539888269873104939219280880207843971639403221760879636012383820038674217899636595049752864599177159494885506649078923639410639473808469307938736632147613512577227483491010548173267939829314827304128912091161631666893996167927331900325248946699831739751488633256387152271831595798096584524953287663257400283027878792744741915066544433129820281300472051183876078812245246803667956596605655330775613030369335221186534325935510942690303198007458281488566047341124250696319572123813574704661933365334645379724104799453825362588534789208784915456168964186094356397557199726947242259158408767652893239321601016491890997927327747322739264817639143789114278372590455117494750610255580149290318690937818370954593351896972869511849440271328200373684883502395844299226681064864947285221071592097590830328453850002702125663450673823650432903667429526796894238237804013152449956444186386621230432883634752407894722220084101955769574211269003397141252779627134224457450997430500284436521574603845089881638618564823841052516018403743511918739535656708382033872748989771375644777541864657498337018732646138644803647793797448166809301189608726927516115432890852303838329179644468469339038455443689802318146685141618164375452628110100815846678084298158436300470796841117665049312181454305530235144626157790015770194895614570844026202899371024033167941445099717443934127012921770647086307958664688791455400255469259798039818295860699487644959870425983343897054885498446224999531838855521936301864718665183650056934803860081864383096795066186574636804011132499940158845826661435259209823199551252029281240368447662367639327821712105219306641836052599490190872649669942371392211579571906189468304810258369240000917112381473810609026504259511936231648940676540110342670821517706557517711533798488706624360172341247811517137343526298728271063418967630118665160187537484297174113221740435842489633868811156541400445590587960882755877103675432593456486461133409201635683622322228648581540937274586813115774610669010704555416782329728294875029390695239524384602418809924425646872153321730131775120393443094225077176371618233959520252793007754183309595133157464125784161986270645100391171770059525726753936727922115024640167863212972564885699102629632011620462240071835475306249275519777400208215596140961311064661437576105124790812017263756306509277309851623021872454629369515442779537307812109851739193128515276672079651727425862842696270065139244108564598080340077012998065613676130015721120027457187936497163261992996289281398862666604325795470429273019017118972017657595512588000440565686393743681099463318025585467046521060298902554316502937247453472240943014104366047921140093770318863688801559658039633435144988304671714180841394364659074053006830510259338729293942408979337211638638131032687675641953381618039961359553716471798635557208689605225384244828185711111176183374593100289340582555586240953812351888716218536139758464883770300047999035655382481336343314331595309671398010697245800183224802216219468422199300185735162731116461185590407536991139000712960744759059130790985003534822376167313274461392519026049012868528391308887433588376802500668192642160994256193562707175838636269336502477256523260657733421678495291119071272015010565740201568805988367403731906027346400048711006902902660896604393757123396435088314945542964148886352979541534529075184469854840155221757727070488949572502752528854499822998844123119520557303000668405676225488826291259372207874577984067591191181383270660944503431611679544915548002976792377344765751265608474710937578361439779869228138144688970127285815747914558881333304904765415579501855044323625571215593448609163495419494464894985686492253257555805048226682059140786903094188533642159855192004346509076393616125569668003962967259667351718972769743709444250577506655927065859301393720950002556562596575998710924231340806646834234295351829660766794286101897026912699057742756619598794160067507807803148474324277061070181725929346976568923856527868498914595357136929137893708933992123745579714104445938334310683726037590769027333844405933251031489114983845404303491787535507500877026690872410387922253700132318837688206663193751676998356042748723092456498435793930699035941717376964227177146281436856376917107719397360791742280973709318278037958967800642397565808773144312243592779748982850340955147695345700089597957283509805298002377497049827745987535599050294444465699218957874272319304523706261877374292937349896694218279878198394299601292149891129304937131015909904320117108422632711286143597928662999398738045809972934436585599238893761112647501703244908678200782178945473484089026713326385809588954936277030353748828754098140396353743439921117732599148478573691526431477877858919261670881275772647852737438970093171624190888728744164608807613388427326518062459345062438750699708464776042716950955859710765513988013467783591261576799131962241115361670907796995832924322693529470283598619661050584462105189635436640023092490368714259509671430573655067092899693336137535446661012032841405543157753772804623862496312582487410028760702043847200883304307840296337848107608333545880802955090745893481619263983601275272641847747749138881335593815117659927405883829315680145535702966174309972730730699681423564725129767664040393329266257561026062080543592173902606214801545395319887186204922156935843450668668641102393174338811124661047102955299567797677810261916110294467471353876334234718164703768145110542712368360490071061556312660656120902046682061412090484381642473570210843845426700714858628915175313271719818614924142292210320062713853107346055036729007339909331130537750833087504467307494818877544795135282666677293571919716475262939784798386223997622279972238838418044771446056127872911384329426518583718233461944589624841806581660814733911161168840009968903000304352766751878905326829809303202282278506326924575623586800665596209781317429655482061069613637215233583310005213359181353938198296939076410538590754943983525058295679109609963873183229645536277024183140375024153317835911806432593686911421811998029529077393826936546824522063950101416194139370275754822295701038160320340859435872370090236329854214597635654421502451700228332723336066654815906768479675878396555630155660481082547311137129206070509699106070302190113591256602088926032922072301071621312468786608489515660475633180647081068819457632586611366020421958842961068393476922967577947485611638210687853914088623801601835803982857461543249550149951724418160592252484500822413112449398289354603319790811446145827332201277209979171199327001254693233801548140093753856171417570363118630858856949381717757729470359123699821043888715000334194824332770077479414508934880960239572851008710926376783382279288938147164773666692650410603128611328393539122189211363985461223986246395459125051191361229967467180709651905081161051142730859277855321264110284085413080337497726953143213275556262359656253897408159126033696808148053291104222619967971674732415051875248285731989709000555782884129696504728137204964729937943432966998460407965052498862946749810727912496295853567770321312745188865546897451977097694851599956987938923450895775396796063227576188343294743304633002299223012112638951000100846855851890951910658318412907672684596768140338648230027662443331493169448121285295101973664181936370529114273914142713595823532455232280114094226091659598258701959478379539711727329256819893237152934789596538149763044583114376612020293049791005967288258488070512749969762490858870590109897583984683916656446740026355287632829756422196520274368019106039836762330687023378403109797635109255172540875042262263203753014104146291771392021646670277824474124721136340961136333823521678863068085601342966304560664839519210095730597028589864310513263671635041808261118040756728527996491567216179242491191490507179101915254997327218348284880523361678396761757428574894881756397041620602901647755237043774984680660209791257521778541411048268758439155765759896085978021069316208618096704601009870321157123139579373799750474514778429636851739940041244076391048831237968042347526041813793681053820518076619412195754784586773182285561056534865809195837354765452679339425866149569169825616726777436641092682670303827356414580148795769155052997013436107060241791716327657011369823791658861880173020441521857127882959540304220405688522232351941838233851378055169444301484417132779408040712384868003601462006717916767664151493371393845450099608022568234197554709563938852062186806378946219561915833800921564179314386203689120086845668351148502719820328869505855577656790045154434979248153965429509118203873510673623762486597498475823753724065644309230523413011403046307769928143196200724295823482878384583230537544846992731471739307326043802734812222828610836722277331229952243847996946566118065271978252790502804933425527512820285475250459863833786709656609303236915664978038177808571056336996925820579049385800345299368857022796482368477258596814845343177197644129539578618471816382253899035229270569145975833700036213884869763153472363669257409517468210363431096300207589599859369567083822286070079012609399347616917216681843191416707357013548761003851787095779875936685758462779802784319646575360489601546831699711404440040585103230842613197440037159548981641353353405918264759690712881506522808385855775067599490034820020156181850235617947882592728908447876849208693174121199610464821907398928209504730259160981874572730376957638937401807596668304075749126254273700242146153052490751012944224215253895004537596193062161008230936752019285630829027649442056153757789767120073893122418896612199126076492383453417252493308586590619977759264353028049218394955945113272407300202873320518952807724975317126904262429422883506086035804096850326223247748148246857136638398279934046810826752291200682113477233801684608586606935324930291096141951737107970991686609710075325359572717287969475882374206642706209439245737161066160316147163561937982868708854625304795928632831258799883255180980172986649655293955424628854490139614642175421493389692599105680211675471085092829043247099677607607092485578633200510692563574046162935536054168291410808946189737786626485850607543455328436450446833592339835103290182526356385170609495726064527603379517579335337336114978910943765813975642755288420015480087014412021262352391590976249719737016704256611374715740911779855797559740768780312084579833616413613747983446178638722514562875142555442655739108626452559177223251436965602818725812464160664636147644128568521791255465059730175066761692169619259755032901413503291085872046057776266109183646190141926551109424186094096489728481394388721524249236154821707282865484349082649016808646024182258024237528815104980514668268949201247574952091890052793088647349679952479391329106877027037848438959817551614743029211382335660487057967272432359696136247351796673881782997750773400156654181518318229793899985230891285760676231533407644370945610263030375594198782724772543990480497797005321036289712535345312304795299714255908796445413873342135281078246075185451128097717114116112087479785374089759399126818007777090849401652702629872443688379725481664848408237742117268119871953944919556678263681773781768708127327404465449234264082858260618006553812040820544036046064098658414841612362338084641781143577798818479711496859723242131794459179182904417776481829679786786486600231641977146928269157744759076077873252722432993822021920621256160649218323748795825175032275397527688991993121585397198958801279069195178231712553251148499688171279867997051066971694102996384431273756599008937014998712739739223902525269943569897254608171272321461508522882617989066102101468364740213073199536915772768051566723468846647444916363998213119967911200248092040578907573701391878837945977860912648917423226149144568697303814063836868638941133932142524568235095119470014293490194279596065246763129275693790534638598334160411133635115104240625064261043505439713523775837656859751111507531018556544526238102145686123109611419396188280153062143507465530577933513424591179193459079302574010323151532727283535500945438589374018898387568276329100468846434211512669246914255044705703486153497100554546325273337921030582210735126243397874317740687587977540463957273481554085398849034932282910960668636656604027357776855820298401276165909046385859796040866737161180918726632240925702364812001574858195896017982601521078687885558390917057449227940785126801948072589568534999227426806197948046463446512419500546970747052225948891914155884454746546007002914673342220228092417650999365095554867269877253284492225240475631920516685055145233442234382592161912467933722490389539552259553882159328487505941050169931768265836912679798211691962066663970241071901079508979880035278343137861819206450140059882416305063775075676537174671367313261010437770134804288526621252341298002078059425210900354524811319088937937871999144907271299991298849975903047565244633495642828182780879130845522190927070665601691291326476577836741719430614161987746271902442363570561476155390064848147387756218355073332180885045747668466300996880020649176020095590500089073931836614633035687376900666870859866405763618089303892459241903399933704374834840603067037280131844800078394614656462401015723514119599217883757035914960328943666952586157482377179822727585200316749296880498150731510224368376454148430498575621007992548291806407162682189385658991993917662349892139495036504765379909603521034426359771225951993566781645235156129454149257463254539062559230793885408417124663307724864061843879228310013638722932453401061388042348542567764168686928873829220413494041524343185250242780743587176073088734499097590100566267296903025840764033680899540201986627991699325672774409216745673319082718466138282868411053771617433695774870698024461241654719551440034371769589092441706055389755696472615512360241052389154408994484245007832503382987292993999711125613297992988027493623559004962343710900668873488776977855891570323112019491661400040566854415435473096894880047047660713673771062744349711637898317810409798926566208090264564443667633941966294887156010620141576863529549679299856802301930300741999686367297541905859043392976623121157078278155351420538075342028246422065988547437149310903948872566255531727414840175536919612036291875543306085156879586026135489352444306477917751207520965026760987566759132514971435103377536295116992083013046542807098572906351220809213904900149170109781001612273982728295144468882415487564312166323016132616101735662272126214450752649756001235766075004058859852086632127383247116831086907909607798423925085147562400243212110685612865099579860838712917706913636768155473016246927576850718539978937690659930530033853856246362356430944765502255784992855287267324273185574090289486143931576652095828986698285864913776901953251557853040979678557060215979714599303700596815306253144325732049906519439071477838248804439551242706955488617197245144410306063648334071338516668684838831682971868655667617996490711678507961870327595194178871679868967389573431224722669741037849831363960477503364738193323365365896385798558341858654798035566823749046520116898805312986099211058600871973768253324032267882453268748502894849481495305698971469443596737467670754728035488948691888010937156209760147790803564832802639771222526504781383918179229776898564452342907893580842203460931859162608331294413913040477977248732890685178668664743685504449478727124782891150299971654166218792076942002181214200921835115895853695927358410454364550364257866342725251363233352071200110630532354985159481194492779779754492048396918135222100399312779803361021194153595600191831192936489095383817919568601910408677079998139625067697987735227911305923161162790744112800624952989674599429491352068443293347844746137694328566905909242663203033416184980065354557208716469644377303582648713414821546056653807446909734771560188925323433536403516299784910244918640483753159712205624198683968671528875705469393585610076589011309880224779106873370475255928033273663675593777558040629586071270319483915412093863897567055930195941324964890467658730883409538117515614353348840376243921989295773142744804737528519244527282303951928052688955815448709709543048043231147505280232468646629786459490427129490535324061697524612645300146046919645089889800870103707682276436007902656593989183224858901515710902367138840556753145240569788230471096339678512162645641067935597991267022697997638441787848473936962529849425101151470303483262903681458244261193140955133097981410930624841382742502918217826794583060040584784883970951534736045274299863087210924287334256119574018638768065961889866610768829131724004771345609864529106754934540802687448814567143870252620121995451163192101175618086335387484308995518992277161408720195004701866940314528543492499288731538292792321378353642753542531389652206314592215124978638457819497573772291253171296331396285431627064183887644011598837515396652737725261518245676249888232118545141728068523827169435366697573340815780240841529556541568554171903792300084611547014664774745964485018103236045224104691238955639137359861510862550335910357304500019498725503291686477622193011255436940727403980424950403441528158884507385175103425104661131621351474242995660418667338218181817219920563724192191145650160011911367892266134458658104406770678326497926142811040872189855075510142001404929929719288403430686693580330897654677508697189531222224691342550935954601065521869220533198774725296846330733356716683450158380821877821874081206391952616483454458510233749878383370164339891362892849019511103194716674819117376863544643882700226384433727783930336924081102120717655090635475738830403146298487996196380295735481576102800629798182925969140302576595305217854630742024434458327036854849512211296760782928139453199276441650894782804785047012051479997849955074234385283652106612681431269290739951697351191902939772646972813562548651175755419362903160852140971366539614365073497721901137490732957772064135319433218824232428449038789505236335704508670208059347079649527895996630309202812828595259913636668437426681231838551015150105956385645465672814082844294092559714766553748250457359338355001227547959546484042300325567447415578075601442504749341878988010596197385185522113616369918212426267326217215683475016016501289000340842680337244585878043184902457732661209696067636803209532938825403508547174662785070373563780924326323895732271940027328862072479507298729059719093290127137174278985438086850918572358259627192348326260124295600137468632119272662873504084057132175280911294966189159957883383487264383176532719041938233454079317889008882439027965629127675081804867322829247730072561408107640324320756045302150045588124444045001350564255597099698883289805799464624828570106855092141644031743260368209201980449670688010062071066262895798103680588120028680722516123019792804126489092037734665240923409709781135000693227593618756224079740840743308399972052430452194318291779185347065236148701784340422921502896906878573625752951328194443685666710670854785731385302640017932525779551015052044141946840139166741389424793195991378059245159275699337276691776693050937443382122671258918713881895204257282795770830420431728757695442522016675316151614681510776073863928448285855024412508506905112284798059791889458922394915936719674925688160814072484971046582667655738820746280525285020713053568187518603217642081559332339156850110950547287644767753512316272576585109795329478066603826215807038751267879469197609634200678129604442657681130880109945047922180497798822928952870921400367884473086684422205811404828740729473074109347193798168710760442902850126335634982474089784777442068828925693294734106018712973890203358906185089754097782517483106810835285397884311353166918801415241402304625454845493026415684418212890182162061225055403439774173576021731402767373225365775186072158747571828118141422046344930891414824850239844594646434661780342191904112176623196923973838177623841500280716400015922358045307257756126484457261498616486701904931579884726174288464224955335025298231968818416481412863069422265701167763357740414563619974205352538225288456154499951505387274818564244960576997144793071745657628649574349555726894320227645799208183365597499539486082644635892136958759177265260412840057517229064158677867479831688773632723645094215982121999176812541163153679592285012964387452531020081976232740094840138733615051514911767266963243127741822597989545347544929044675045486662018528887194640856701384608516932864388612773409802588534805107699165780211527663691691347904304565145219772258493168998579840979972364967235808000645316803262759889405892761212806866570962445903823439518446512331529796566399932271354707916927744322048232865573327421329870752755136822607118256901055009547038307309772187234842302641033885186548900879431136750645091246060362126252750501565037569057202576503314191426010283764126094422784523240374479968184479064713877662635977448818151984231191891382681723796666408438623033544907528239324404645607773206996653560253264999259294851454197452384494635308033097868471699540321478609151059777870943498886502526387368399327424500836266176664893482144574391943128291573803829279707281663466778182410625670802632584339133211422513888179296843960191836198134139636331846593484692707561378762758535513110396842961617624108579176954128379771939807733336300318466352326954893289814760018554981456664413935745422043866221276416880009767932166945594721150056765616647542029154220797128988181118191156916683530870904752334947013508937914748480487400446783316510461179779638990788083565705229752006480919395138063309654690495959872977606109311984183603888193452462300215459931842416071768987936371929554201310945549225511933036396405647182075823923705086152200442476103645755740931278814919289696648774903188178857472186101674825342059770520337921076080267358483681390704414186806612598075618444428466699784838012735473043903772965024166666123505074441173965157053352979579824454790048031449606378670238736392067532820309688159637392594653204104136336675717146369263753374896839694149865134362221943687726244491399988048350453782964150043780551894784370451136217543733618747894146256937922021122058144254152993379122686221267997898410006430540288531012270372589709638610297884082664686763530033226667745473354304568774800406894051495984554075347010164131566470245215470314203817769121817196085607650865798648856367790319500508365555340731260074769395058215121055168547673569867808499024967710982811664796265086987331426844412040111694400752265461173731683790828893426039566461571996875128299876463631227797352044840663836444376982132428053115914814898210150606713149380790860687861452641455327837092639428009581258930997965081138569033998937206876540804094015554798466520216078385811468556636044290665330162640163086566564350298133309060366729671240849362220978165843462709368594619117180443430543762447719831849717530417956157861532552511602282141567886952805065755443395487835959355074703867002029269432737073889195367168544192268765092626655609451005333306198490219539938537306420592848886919510006789935104738476925338030124755347054145678592967200211459938904306184976023124704029278406772629826432137394429304080974915741867127008604199882487547464487551673763810821403259320266498524181499843650823749848650341865722821939224825404082510375266203341264310500507150722476972678427885147407076359809711080512402813670807219453023222869266678191319491641412538395013040678050734230721328135105651743328026010520701527339114646812627177243697676147842926680237131844106057615125661367600555742981182211682036134992479876100609265367671162981395922997282999152797055951569625409654828684501659374455848899372552330111955305440240797895978545761285412737081332703941670519809075927619306746055146043187293328255757560067024190901575967758761098359460446821024098681972481241968565833781914063041321265456271450857872957768918427170341118877737211983400057474889694067320126310782124517217141662146363439596739454729856710413928734710978558306270384556184370560967451903198406099471107050904528817466403925312049764710436533669959504532696696058617582079357970314544000814092216421362640664145318026803948043121826672956747190332885063672009523378411635986972350398758475140364984328076517071047387606370779747446996243958178928361292611010010534581498762777984633621812460233070162173065257814494653747443414017614493385965394705429423732120714222974359693032379844705252437884324139491137360160809772439840688240395537855951677856218411250608321260148368360291046169117818459711204020077918327823064361338816025979273121067986596789316922903867650167101593419190342336872188666431282821340769058723056928492649155087567544929173296562642296972977704348753627988343565512383397071393158235982774389697976919501229078198618419857236263813553269988400531661218152569173411630326416251344358582283462531968365911610473470436622461288910447466844137763551723273328666785979052486173444265931274777452791000981481336490361285579977637727860666020775820242526465535792120966347733975916541669212189317312164425185363375447909794443408695827915376870163208388017089864477881793867049596978026867631564334501416637624305168382902541865296924932150586893125563123903275036867855546194209139381784246432011777506519064281443496227505453281067025382325361017384244047187557017972538932196319931579442011201135635833122942299231278488831823889489252997446448128735840948739330029167320259275927555697924683105904375106403109487846943434296830611586654662148952451004431481000845611751546785457493463216699981601300079174024375759627928447122889927969814982989190654841701320817654849714213606131018030247700943253882905048587000967609174396712041206460200322925238510308663909839201877052081555717580872158595834612299988327835082760495159414589678284204910448348971919039440798942231224609479745487285858216453190267078245031544004494006441960768571191808050739707188366650332202126492721463680978443222681672782720038003895327219097037832152955843822652851403676121392635684539346071714691270795228931083710335863517048653590858730193797124242618204725358769097343530140574690889804975240818984184864093363569963264145739842418760117362099317634175332241435880520518862189801756209991259007096141323165266994563595687388309967818433006608553492689794669905980295127742213728520867101280260387793514292194768664788399543060952707976433988772558343907708614616227364759641394895515813837790024440502392576813520911047143924297927747432232241224482555638766541386457987149630759963993594859775577873653791587953532363300152508748867981262939210105198005547031189612576234743430443048023321790801529842553294639224459497109139300697602655047769206562919797588270686687870503123374054725679217845054081178807213875094181631788086071458281947261477598063205886999707141278115853969520365841175487349961699545942154418007073729523874504448947503863095289532336937688044482369818280836233048862000027649837634063664988170632752616206006078099883224329554706493833167895117208615703145688044910819143189119054841237932444790170576699828675149917885204925978629324323725766650898395258972742521296230298330612140537838769403182369215805315461240757131021028832144468324823024203906496275454608829727649097011879917298142060352280225987496756500246690044174854490037898258702478536864688246317686771268950417871851633833532259917972728559829267025259219710587626222974992003546987290956123516144745530886961019408368505619686011980315268787426589119022125768964882953853457851291486098340799417233784931429461783541892982910537076257630152823193953669524619819493204701180511548977728237686868889568287267611214746977908169943491140863904435840086504665933630234615582250258749226269160618950239100709432314495395937276014677349142919692439301199986271084625205715743989676079120635883924302433211644274747799994264714545591081700299227944234311066480646861717029086679893869688396355825717885425882957837225162941945570841808238446797075670891837210737574821166154357510305579862808480586163435041654446298656618827710464704738214850110459119355647947426842448821822948676061784484710045903493187176320560629425883534528114550992551951291862029102578449294502874373646304229591211788289942060426480367335402769647664503544993393241217748089865807305145010138379972480878253024369085584431116944143615706896477888036122767982585682387150126862576532135992907277023206592188487878124790859558405187620902883222354120094652773637274740340338571561724949602954113927001599580068539061864017290191213613802530919952514760081941449332477419134944916689863100903310555056238608139322628180064594335219135453200234308455923294679607796341552947260392157837467850405499647809737900067628350409326468085220715945429591093820169746357759616363629825866469315277332612586016014717545540006432569892370330637291762152836247804152354261204169800585597348108808024061029923098174798851871664954054620650148313032957346145980532968375995926446035505881703264982558611671361208547384007984018867162370964665313775030117976249199953114481362558011807450203692551471415499781378765718357723138979741410501863234124215046664658786152711350706551847227925408051864821710947671150401911040730015989902027413813818316391441645048011828770690859084029902625979025837410841782554072560131793166215893961531922847271592339817615978104873208035205691815036479034771910965821383711805801069340510436976697810183911147506611853465624360298517928666721815653712286933292678763452362594927328883936237597039013689929250393595974419993567380641816597359325463285882316907909766791434131601298738562949809609672786345942158565148660598100104176333932642862308930353145896121719003909719845769132407727631427678497947315869016073380693752114849110242457425548290922989095891261725887106541246867139125303556069843010433599902025087410393919295303364696678343683569771753904654382734494393069426717700895630701378124262872157494675911021160112682873193378369212837926258429497045819045594633201998243074390326219535830990498372889116269332198355429428001547663309246490488028895821206231660431718353595593902680255639254924935281678766397635529348496461754410468353552177577720387419143735912226837329093394480872345306757845584278508312712481247258917703096305733640747107149086668512056655781565224693982069660882894594143008607792693187623157553026489378038515018042749419067181849896397363715230043302703392560795156828350605683884243011448611835423082993225387602704830945382318161931363108871481114147353936878862382532201763347674581571373218353152420878569957785333147014566010564447801300113522814455146945240830414883832943089385447191758110319264330454632589896833096066696336971644666519525023840282204257910079154320877139755012170462388816731885085031981358107944027649525247864863144682197272028720378064812069125984594080138615335044057651385726388376448637557887979847495907191902522632187466652473907699172441392989635052187645959426364286852471342394482656731874635375483546991363712601998630516121291422897979832754337970727661256141001427200965233896252138242217761959559828732490731230568229317251003042926595413875405766110351321793646215387258302684744512840705095409302246440654551545193769426782374886079837888699121477855060262398610822081186152292733137065938557590069244572047538263714087039283612255085998591499905494854305325880910763104670764943677295891133466907718324367968475117520635901561874650746350882348706399991424318563003126549258061777731090868043444552147198568553293976139219095575038693628970786580087563233318952496889280780896785829733445895630932565876206424518334749646782798647028150086949963507770792429545831741696081911496281017657138738157550459499612997673232614793964139641960928374376695870921354291282005326708843161338683017767336725553526852245130499989385988494370631777610178731331750188341804716771846154304852577139809713292412580881029617557611909426400749459018887720105928550550873910755959549342175787915254423095565465481681233008634406961180469602612780468013130238411645600869431707309757417521526323028453888603266307657127280555209507659960616789832467803067419755500843954768966752893803969406372201228894350799737209265256387391740028150188590706230219236737194396856187524064995137727028333315577064352686485079643812614761275056288733402274092026828887682086411299253633983185562733155686051529804491115501784302497861213199992687345505931693361540008623698689405912573652387282807542670130667653679789933840706828295411702953317563174292426527264221926053284230750789946895002364725636354857885667487397214272845942316833806353306373980142242287742895668703683637449005324871598021678865162939425847178279737455208482791543187130597015984571956997891204497720080688076905643445869409461116192570494256534400793103949584550350183992791062610494662377773646047739533575220382679690278371058422522292720920023634089716676676685325520426985926454292275955678691824761964205127490407155950128441441177556273259937080869775006301747038043123503713878002619280044955799372125305166618198192574290110071171837345716333889493369769508978273588791354489831008600991762852730500010432090475487575042276313873236693221127625767377599063188189422002555478347000151432905343916288208871059585020007962145322152878431529591656315064924394357350436742354494939860671954868984112214186286536889880024397804486053514895545088476990538173985240189485907387242908333394784670292605146284545006710636057393296538630622316274459314805547226862044036139629577619979583398690254813192434566143106050173718706892006486854401754830943772198609251166207989938784635933333550596838446525072475359170836533874257677995289565919052499741296071722683756299629443339109063612558406210769012553942993747157865540214759009318729029498304165111056127813277819184403087729284192081587629942469053082902853845520798608684453263850610186588644874680360543851392703316614192498303618037486209877864289005702832748926333827855395227166225534333067115943132270830928114778945745861098503413289539834862462051356827622556616961045817465563969515156771395943234967399435946173801316201538314557575855093798290879637987830029866340932633415196774140059137304878768258051627912323755841797854225060201601027519334105595695587141955118137531240464679098981398097402320250630877179817420040080780198640722044443841135755630500287988730608323639290017976746926364495678286417792204586529638598670245907188073762240965888630705427736004787280041821880338607683122930664226141976747112131880730439850740998497821691979949103079011102013056102834923079755458789279081522559978841515728218893473874495198641173550294328235528813417434763138965047715910096633489084775858227447928342197014488085533547902304372330481481852268509463320276384721757882866786355265431023131068400493575147054199279921048925317093084843289950010425765730498009338614300973641131316226039943567417899035151100398731893914033980981946779723120699817256695198749623987693553471776230626396574373936434414902468932247909331890585934041438320586502019556987624386053833489867662876192249931738354470637114357711018208624019366157725507644398184165672378666260717353797712785698326438903704873311863001452732737481624363809763770055566257241361233975212691758995900605156706921478822155811093338307796840031322434845732673427093840882252765135675394763398751022313463060599414537800563016144384674382066863739299810144502297234028974323735668819761407347431561183125999872113342425863648346249373350633337721276015958962432048135453544380228343670950556447472910178398344394253038215776033014616175368157469192886272824400183658003960723849226600179876046468631896572232041451370631285718321272856684010097221721618692375243800945784301690104378183953497817491872782446953151683498227293422278797764695961725787855437874508166291368691826035361912135461857491617615703671351100145235830586118957486088637052744431366661407646012976957500236928784932950385609304323428215169008470249353158263038896859449913569209481257231217001684964649725633967340358263387825364040926196822819837890419872236833458246105532516031816734706482879691321873918714277107662679033908276815048469809697328227693332435722128444288251079551919017935842849390354300133195499785784299470867681789885828720106504121308823795284463110952766764156445025986496810874960788058255992642970180451957050641376077330312508704685883639580190618145172976115372567123696824073291675491020028849770919174987036725792972116102678201344459479219121882119507690886578357630365320867710526289883910965693794541037645286846044442739183674215846655121705544256399445920351825940593637445207665379833856033047822332940489093603207213349467117048643628559417361269835619383803702362682529470422547807483274503299333305390527105364225873817327753205241757034280009532952764191316838553114774148534981813915662420114931569069531868508939862419443549135860791883768670516045203064339498928421912837713135499239426688692234435447669522859084863228179457309887118238596304388191208803339110439746878532398154083668643942516424550744094561763020666969126067870635522418338261576756654188104835655196127578579456386432601975656991161290678572059044006570088748347203607590268934650998605664795429900071183463233681499149731053575844177635340854453878285641871260508809449810783375585736980718940267461378028862260823332797818320041192759156364629776277939581902316195082915291917767172507442312548869917403310407419093014510528556570734725059554090993655282326528366070549578028241270651118833918497933607112503967658976309604211245816891931112905882829087059277256021557589730855895059693165880285732268930876935499225661713691910309590242964671132588735297245424856495992965978914187647136836730907604596583075904967958115304791216607372027965690651848854441237424783052490290355893752501173129495057968654063083792005996744740001399796558579821733703082437213963019108827422220064310877872659087894351350298946001506964412138917328491275284377979785097071996295030500911979949831414184688376156324357621462006246607171474754577013810197799318933314116766085503817492262664313566757302803722325895023477590886373888897469398122822206287445502231441732408912069546922258119862937455100563826303712363061887290869398620591068092507954654413129264522624678128331088537083131339795774053410226926454258083799459218937676680702597279670439565826790354338778624572574041400271218974542057006669917615183992082740811223653598044910037543581991513261632577674678604739876783602301941668083667738263629590104759113126390071347798252694304750459070173343196393207524887852708254754737432152074771805987660249836537074050236608325405407849730521597629154459868499007386950936569287287722066149574392506849132844997543356182513590176186470867881140881956411691012571690406520698920849009301824474634205866933753074380133358581103598486185456538227539028342940178834398815427084035504506054548639191388205098306356613394672049471281620271597874854628655392139101185590438058413275290416201336292447127711684595693122009749764927572249624675450111800083662508975847521166671668689650480417363717587592984739355602787874093539213773434665241982471416863082058090597372952625390788821603330681167625285151866858649135491073275711782642128904210686989691062336301318136133612254892580111482206494901778888265287046704506269770258289834982580330914065359526077843757826806725640612098185444976025530675136264399400526971170452277804753015714511447302731564177352647597519382047747286488705160555303411838342768673916717841880234435387138759512164909402289939405442172104547518105754952325424750689972166621245121704279657691212212542913356130341423262973139025368711637938620468707935832883124308290761125927153730408213547548571928169791251933391031682379700249087702275457392477219465352125493184163669588590471893654985887851582317946405496443881178029838433100116417202088176109926962232654154797892502432251232200031686494728559269689315463283852303196851063658578182984080386802947377770238499167445968534407560533173313775517693333255979880390831153285919102055434549158156181242368334059613458188753171913331690317490967386571784904756142726242525630298984070413349753477004115603756609293363530451577280146587746465146572004176665301102974348998067377238161172287504516145589060429041329694607616729450589406172585944554696809933901569368099810773383524990558437826996481850951964334400148247842479791502329838154767029524128398861601695440577307275217061130240619664471514941609613982903130132345265068403830439090909876559568715415608298460074739500961154617986172538112817276680447918610009477436337048974964678094157233497738339722827711547110154483318366716422634897882468522957247607559400505163439180587169777858514841042727393125714602605847540120497170022696423572551212764503712409505237743289226947856724757035852920798015052067663420670749170328250363370453541283929348950854223113516327492470905948496058717062492556573473173510715145386540436735750055622553212616509049401575026563337883013665641940133195061444235416146296215987589776623319140328903659233056459142716531547978887957634769424149027932826029721552868522334444979634761040043724002463273732771120394472934858672081628128012264480137188835863979890083194488989129760506173443895915141320443328235438847231297379659744015841299262734233281525548731886114227945576991635958634405086163324639258412495739822085069681021341470401307001306212425919883973850650982831812567061265004603760729921241165217086247330308016735834405826957122652899630348215558128179616041959486088735859795163021866844307131623130961878912588679416282548752182344956198702235182625155192364694535364250489404288431858795551946865955493272731132009362944585990282593528448053450102440437421703327694117996381422085170731000651535141780876427062280112555667727554111129919443081952071563435479490878953657026135681373403731071702026822405850900399135114786788353622034754947937184672141914079037263671207528345051660430316933536634876044792627019505902945677751164315882648513931787758481888676225818088027448511265659803843935363526270849751633328003459535401542793699726803343673184201551904999522442291600805840654142818520264318910287516891921647276235682720191872385031359116603360885374831388282414523525146119608677591095389884097291985363327701147791261176529038332040890210069245542861429509898270576825030209687449379198496270612103902580055242737893476092329278804537502818911566416617910109984776962802860584619467190267573343070716566198981255194861673868595429096891282001380518302438002136255320013460120915033560336763307838340449424674017615039565726654185797366980637657629511525629754217453536700637557956877821480061470927371684103892547696243511400459494583295713467763327083231664616891384699826734800755311445236757400122833435815431902691734079481807139248229018663266124312645076016030951879248723698106303410899819253658259488682910899456607116992676351828136050909565552232776364825253929533270446126768855410256087929875305829497440918098636267215381574661153050902354032975144716365905211781010734718193875996705508462351993076134232098804011740662272085125571415368207905644194359809412969392203936130812610126993787027634385323631721795519017253798517824540436651386431657403780771866929790235297444241808445087102870089584698163099014709545206098377692739456126880863130818224788765940787949828314816491119214628776858422083499192879599286366999211522994623907579893839883502993618299849525827799865027042677104216776596963106893539275899375942966016819500747496688569819349114075665041741841889310043949289911001811282367167672119736414853890485644813438685795669121820226521646580551111867582292242244961264985103123535180369462657025776653784954227558072158347982033583361996011929754777114475686127902423970052000967522155081720738532788688805946515092097620141469892640303128686133135411446557808582202833261821881494375712098237412644736141163114275729982910090046163604665772784972711157104349098480091925431585261943293314531536594879089648994235541842966887385383130169442703626302631119910132157287901226525487660275956339788225748913349852592825435799313786991983813724690923339038577053343594459696107677243218694284365454337185788807414196185446881832016617944359359060419899016986116947034226691819430875125312213616757941020056297145341336556128616115778899525926812537387986614758831037132268231626373434081575093894040139408365128189717123830808959055142616432099613344301481759249460092779887145339600602227927195189752953072372139053452761806760581304059185843119460840338611047010939099239677406905046071592117129076471892594023742325565990339711337583197582848974349504922085624550428406183761324244818622974300030306889833433738522150844021817231397325047785285524611123898985659257271483094537355671295885340166454560558298178651477903968878930161686093478902549707177697423308198391633111703691734005664112162052766862154285926749904185796465056014772872024297220812290811902699102899215675413193231559935413688862166357586596712312813018198284406492401184738413514346189339295732305435807081417166102841279562966186671887626003045668359154077173705118629580111256851379566796375948670843680658162387880309780596342086414584910793663533919790673646426599916126123107386034606212588701590903835547345053363857283118071839649419289306980103904237685898805619181296345840582302172311746138388479804956427604254027145953432969535502270821065734931530347146257207290686192354167618192966179914664338481230077301962650096049712693935019065074630602797207587047235445884233987694643241610875180290786520353038569494073075468728071198832575821806833630540532541695557593598870834787813054789992202709009521213488882551057683904543011726455016253397256308926400996815607505847476647313114549756564445865877007415816071669789108769669575953329455083985327480195682260290571573892626801058150787423306642484395519180901331268261172821739305036611486011589700541279720971239787412171996587452159487601420427404804308484697977905839321661689785428086265148573342310241105176995906808473594916253893902304477884564585443659511423704851649266242880116282866692480237279162512428770513343231181732647613950210935155226968833407446655888754538466504535857146306906289239299766840083396188942018454184518257193064879677393965696198866655470253884351662254709270219828914646536946434596611625421945555648528728692016407968236633991201045574308451499098769299634864190857469572843655028533732395343851162719482448988372922943633113943549958415501625892316096248512406881839455310360108667615171066146146405521759680246654195261640922820962284205091537336394343025563262218188425051340448555892329862255058709321705439807215044884340023221195181017818121592865969279849401288611997334197582767191442026238222009192692690992195277009491671384150926870028377186831671050104598111471431370491999561134432675140928910877849875702752871569407963231464946324377136086772492514209487522555061490535581285684719940173902372897392667968743781639838150434946426743225188564502586840011707630433384946688734903198736235292345284353016988579954503939417935926039035411001401661775164357653486235447188880850233389903022589641903818403545588787698061861766940328969710807152533717200755150317055939725696175931586448633737731935088533681259256657507927983415254531701848129114371387060385989669236224039634196792473116032324822688936732126890586639799448350401267753031352646855646921743132668863027696131021036909258647331392947848406385901780749182262611758715646106554989401973301243884558964493091659308427963571801961304481792534974833623936079119814910537614399393268308268851356562351977713328981988417892695412696252573634515860204835238882693229246293459216047010506659521857224112255042027670996390046297726719796974089716888253683553105056878994424916307275401001543860244168593279068690264046535186526416095703683213105497945092399121414461341124407077355369745828916002330471531674211583227857787894109741240374286803403725936769564422329361699591841239000004359811189434885861899350702356726264146474061480444074806818209593371767833311813142533887793640341668205729711713105391555871753795797855741742471493998310744242310133246736687774081336154795417496343618110439644049990706840914307420998552020611053326822212036467514504198716160869806494795978721247465037935994475831968209568978205615327703839971467093831884615111174694420962175602963731896717375260461607745901977667395308460063043776225148034708533116709539583457058819041647802772595550540527818539883004710789238840821224515369913073053835631491907837811747696132051454857760590926505838108108625519138338308328946493699298469229284729516190024476960600372132265563926855154497459992641131619711029954998754579061763579155978280479049970867318749701326066713058539002491317178108047793453733221474784843119200082950972876298504631624528732712561412561313817010340022211463010226239603567597336453759029632825864696353980555850741607282684425277030873901226658370654660014401850139709032553395534396584249435784695194343288064925729484409681850363871231477730952961056320951726831410139437783101458674314799364111494193801212679022456284697631548740037541889755274140283384142647016013562247523503359389221178913285829382641061064621666910293820396212704914942471048687672988698109343546084309335921165282041453521839979513040090257951602874153067255930876107744870953208461743342527057195787477523491801438292210534410506700200465904282513650842874465278729539214682807546956334196920260226838098725972755887215831882092181721728939217989399867025047639129935372155239815965964315538370760398463527226268037072083227490378691612286549505473158860343965559728638543730267490655329187869157397388197011458207915230300526233210760207641775789712728999287298082326832215411848884454579789583796215130047933723569558341081362116368167442230132242859426611728250092039858810218448773780727518289716196677294559836663303512955281790994102821924838070477750898073027880290027148694071796341071376210146612058751436173769681548713175493002781527261710427492073953770738637291702341244855220712745445429602917676102143098225182356305648204343776160037639776978577841582313254966463112934298982839721592423237481030825247375745430201817293014912094099029852764978471983404795785803549184893623490160711310422554208799185949887094460081973446248474793616766653548852087078788453508482090748241798143694203102482088180109360471931389847457886528265706796966462866595904192829351909976228429341968709832987175152750927434949648940808594903479572279871759942731221509699466676747765754528970456614128691899023638869831509919237079416891964247639175737360110274570425016801776348215814827544532805117984981290131464199796574496306374600059031494042534747831689229184554436273826167128008437428380079772672629221644922787032515722339316825653642387048076167292409401529281372415822287599240417872510695729220564178683178506650987183685545594708343415551084041366775143435906182116894875306419573528474793031508499492942128054201955487604558087271983782962515366400099141670038610252055149149738034299831932718745307510430319704965940622874391855368111955249002200667756152303443011631934692297745812763828002098209009258585470233026877947020432159659935857612686048182115917007435144883129108178315136141746661173833491256197746967979165870122702812795746161879286190776225060188422757502931966166866156056080820591943676543077563122506119865732452394409895545925103672711040899140153202804845659671274420979829751610324778738103666917735648015856438577230774599593159107378106039365674070283897809769064603607105717478471187623318901305660094607548175832427272472837979288593403935086840611256701090291413592311037262064001834130595981805058080552703703040224415959183655108223740314001325855580373240827505406989766758424754241337325157276229188181026391788034757872865101243069124841688169463404936711999660837390830385556324635938358712551071723712342146624600739118029362296536850694727838691086157682993066079401579643243791198753706459866795373876967097661333639856351483644468313098107677316286976089680581949412054242877509585294346174348749041672619356679612032486197952157330994694899021628216933148040573655698238130211679227352014018139342120929634880697649860706519233137235192118032339339579754434051695505239892163880287085260354844423857499049005074170666271895316782102173211563389504379085244836390736466811758109050189645386036428379965943795686080377818133121414360408058943722641867589400686214742190578994620561315780845320060676975341363975780424970662219971103167693331248693054640108399751420755284706009941042179112613089006317909244720699862557799723985798659172160245132783200977281669063458072556233114603770076501754950397770137279010715735716976008406672968100526507022279356184021870804629393794551391547835316825358726547226481929431235539880865283363751156222274922546682876802534765035196975206909901620329081464567486053560933173260637275752525329094493285552622297192655024124205845727356096182788504951543119891574173645773193556945907673809532963955500224414593699914463915755984483291188348799939433031554990226851354189186048102069722795395305436173648025526061718109978244752498603046320852635962915001586204532918940719671336459092750474235261153974725777628839709421529730797054729277389737071218598858356978966908461022869669097502968414349557652827544608962033556103270727414836268559364792432944450772772533516266831019299861656437599763214092100884373896250810411049505004219246770179137007356822889619454828434795238133853349250821861463774355557678528189123377095381010232618088201367110225128636997398977572509732172576206112061845652946947241617565555209734282868557886682101725975044650642300511673626890394261257553301138728296289665106658821714053421976901671234164873603379873013731208434129967753531031088503200403025444502381886448082535332750300524215948737789942515632561570858190055710333950388274163784547793533409505385306796381428058988552057696341888988147791202317965480479988550389578375697751239749230337453715736385031736229469238345706680314837529457985540391117569998755305139142327937329780149885792164686263342637064683979937286369095645053581158817483208143095754254417999565488009190396816142493758855317407722333358467962990587478359861481120263584431061728393101927749795348976227367831125014133500281464207251649555312030751667815252585408019974478129331039217179325401822663337757290413120804359747879479914829146565159221653293750838355940910050345221686106041024652420998164369023446518681115438921129061290706106492160524888227922266026599727901805677160134662770579982634240619457488918182635528961795110333724616378856323728057795823853479631037923056882713308099324402913622593185023667547945071050868881723124418052263603199433178679279498218656435768446046416800640046495773559947810686070710196030337016828782784923956571124360308057369129563741634043107195778320632283671915269098534033534875284468496400687474530052957837612250068980234633187334012979729375843580561070567334343691857756068672849879747936394337689283120469989442133301705573957539422743068052172474800866374549245143431480794202471199506994422697513125118317067089806593346121465153898756094819275816460668644434307151655824337427917164668443351411206252359851920930459122839892987548046385582920975391163749928179542304636668776452576268777617121758190267095508122138129472087308183593641605742070112204636496290001135722167695325589182907746002561094040642811806696706780508212831752642059373207766564735885514044786312683299400936478468512034807753447363812039059938510405001802282457917900568832386965247716155682559493143815162827582093828614949954956624680612862041047923954576836362029252210102056911675829415561101589909503850832865221330558456074239156462410437857244402783823355295732160808381615820443617604864459198630258077871309057170640685787666744003912657955722845238490255862030831781759590941712270264561903638763484084217751522815140795550910435295478714039677068944395679501332440864333214015704625324364477465488325131623263439818441650486647218547844680563774659410992971470091857433066616500056576735271359799769689604290714557201024810633660908053823271148529270294897893682260449851724142225700864821752371386822688508717784979187684373448433232026742636894783126574542812894746163808869066542894117810108485779362001072738686421870635310400944736637006490503012465588874730144342550456034096646716950349090619844807766193976161012112713143400736509445350797498557199804863201181199362414155701565324697162725110255179526040209891387098655783757041832646740541943368998142658393328014232785413430917486666740308235958085918547909676031660781553790365900560992983137020932962525658030325903966411429122962852564325989210668564183917865238413177587874832527096068581622735224744216231027034430578405534856359615736967677995200497681561928182096923952809525783245009293509841808623878412923827036379548003433861237723914248973604079224571114187211347164187224942272904861798675498787086328978921835910206076273191501441312173199191342010484790214183752856083757973230801800798772261904712817022881860080502997099633416331073859226291185104638178488762165783987589177882989302038167418908244290290444690025854226428152759720627071539330967917263720157103509375613188650483922092541907609828849789335112972965164120627154231312079300670596101511555630692398253414352335934658506585918606446657955327499995644071694745344349415588938306883063717586328924601882425228008028034055995773478669415583496329205378865288603143468521799252645549339988475652643677966024237143717995988468590766609475080968383481276009088086912913332683910258974574302773875566674582071549760364866456308097891183704189312241563665637010813356834996885930804646609784194793648201770718208731424513110406928408127449254402727646819821893834071523230907428811652159297263746863554996893148056930830567015819578411462162834041924023404535700231566432963128472401957303626633911994778665651184799658478726806064761259380005910732753443195376199646031290351864520332214451293620200159760943673223610047934347174090543655582426885063915239049397996834172560848846152494010650673749364791566490590843264521347328639177564443897038536476353880740002993871715725010503776604216248762346901810749135057382666588285747418042668378649881601209045464108602111277761083229149096780045160338951500183276557275298466418169944210025069174281068662921487443485285344866254515192111760009759790742076954595701051854822062339237704052318249073070541913285647160974555139158579401072809430386288666551241827815846672708430484068475074006502019902482185041707618485563907649082945675658307867299228751965508463715637100936685416524831855064797971072060392159714614474731447101408049056276197209210425630952161154179295112886122961241566077120094856329864140594725678348147889651323558791621216951006535170418801986222591674388841123640201260361801877053187706201764258053596383021675421879012478693933034111988507258289238769693146515120308045966790165754184940764682241727251393484772531550941486545930773121398382888194728668098744606517237087091384798779260041511828362680226914013263868450551932954594333182418128018006626153626068108362504406623758072102193716742575935861861299680723441972659361932677158065181753793835878557308177338529733031013313200513801408312447052156395355897774234750350023987717699635847270928500373173675219023070698521204610937468173648009118051798607568765369417513057452720948182608336377411258550010045687659978769632259933683629622373712692238951477096383763343569757169346151062550873598301381908764294641753544677625974564638772925397259669398425254073777427972413923127468577656974452380172954018307139456933681408584944461059493147165654830733738924429758668997452312508598083308138623367265334327792377904658965068054494996680788651852880255015826502268056778893997542431138383038310004534338892053747618924151242087067112848743052089532558065684963933936663755383789607486743680476223414379863779731527672667966223740553959207186057305756887395344777225466675715142644870429978799788857182937195026956193507847499820420651560633083184601261614696201522293028864692788634940289202034799977936579241856003649514471500450247613306415172107819841356030350284271481965637742761197925006994455796807432889514153979308992793539172071868656361634403833139127467105229320593702282450086371323479938150970682308172086322917655109414719894382589041859661172990520277103909434183117946992634621879234483563496146400328330361988061590799341582151430073267165758601462258669605533173651951028680338587810198342755451970587889373920483080412418019155480727747114929395815131949668450224560215193107843243363564968790628409342680630911427955339430390914376281532406545817535557562280362796816037927201134625551460599059830458394984763794397486994066507165749277573712713942598348745812301522208156603815473718743539130004210589015032077850566910900320802304816721953057854844310705810139321115831016555488059578714883625170997343363787126245301595155915224301739279328758260130150301892511095136779904461952477159592281727472609485845909081790573821258444779645667804054530082823001558487647860257774030216543156277299020759097760789062956585014174458559802969149215617406942585993696728013124551694371418709233629450872758532188248350975706802564608304137924923060439653270441286777644026634267535214275158524744194145589878469069233608686442057610727686946989076719700666744572164949153906130032408559328603464953254486433155098102220499869828373243597631055923294155467161792738993717166843523022512104485632445674099851211030156661258794164097786242455214655598353391981578310328155852806964913570262563541271306159910967317469418045550485518074004478316614539077807771691876845892765250085832030425608534451996750055609279407795191950006940812114324314357781611176041557237846340574827103028763133099953546441321861472409770128905590144733122469668587142321281375472512702548643932078181813746823979562376619809605877206716799152759802414371018583035477931560341826091964535083234569076446188091621978414390963415076929361878326176363396356423112472490977258903002498186686497645148047158267392128650918458625484334609627738044474223566417421608054262350543216618428096944215574319301936802081492059382752684844622611338386461687965096987213314819682374029481945156193774135017431928733716474055099706664292403056585030348220168814110564145525426042067408077383447544599439501111952403307766120735325365583103754513681238921378014801232047550697352072324941019715993281798589912290500216916016720573318100432564900495324873355122025279320785790340709536071311206868453042941208833006583392187365282524088718205337985149014431894535732655800452633879375054550839618717210138816700415547245475881533276416180182826106739727678946171823122193106639599851630159076215011429347508475963749076653013826758961604571906177256684852978379824018348330772746939934308666800833207580129448600544163404189234894251222892870680115753018333400800835410134062979189426925663553436643547417205799250235676165176245869294143120903917925984195796286973677261139921439147355884506610238283512801511636920781757100380122762522278218547771776850491853193932190818427241939448882566942749918671213737273727709466128913953253692593638761466407067735279216772818305510007656023691510513419172502418592947789966573246533402847232318405590079926159133099245024194620841072396160869481225283820788067478925514523986770590833467151636745980493507232524430562335954991604007015009032956262977111293860443571773127294702830721523019009644038634343335171952541235712998104052993004805324023753499609931407559471995846013379013941187275693952174551025317666457580427207631615094905565437075144511315003164794786045944166525169704829657052047115867918872776844838958999878764368047597912250027929397315634363290612918376140118965495944487134184024990161462045167331047229790003459447796108312808306973289881115924484459918252509618377246622068525962697880007892564722331787441351036946509205734564497226298960053494873004034313747118778528331802669271831488466009347675859392458172966912137838422140813983592093396703236667017010315365497006177474855566102896202110530997353880945043623374211295903273842091846833303796176361923796700703029136498667782394626354258806176163112529423184157137239939033675527805710354712239687318593049134210547953736694815227275959345350274010641686068912527847263913600906320207343955742138987155018958166083094883116403375192768951420132467690389047035687177785663762157469270232040961400620295418391792526736690518426947599153297584094445922275057265106537894711301460676651646385424199298395197439199827311636874866383053283892384210341552394761827160698348862056767573274006162731752431504448623981955404745229096870987015152854821090186573312077860194742962587143634095018888955451189400410175379662721084525224592520528417178252208973113602361308170750547800419555355534522028817423545257495348342164650335901805964364504779170742489534722833210074200996234003131001653327821494921749216716796141194359053319363526633570712587517549896882077738786802061180186146134447434434218335914414103979649565154256913150870837760176610406533949308549458793792313707294920630240320730036269520943827248405300659151751298145418089834226626796954075451507680550152386894571617032670558588499447938786720638624954344863798554713285337769552932234100573317480315200492685882586482219387310900283399283696845998358065965257910839727673307201169025722229898573849124575346625099012925505670403373545784267525523142848367064308943764642340489646641132356620218142562769494244126782355382562134531231081803145297842980067744037318490763380339393915968040963504015156711016869631688447801440074461056180591267963199861719262487983431854193863715838624821206349868397584117967137226596455476794139107072594857971715534780740855989004809189313129193664318911330612785718473682615547953130897824277831015976681389965067504394172272001120772203438284415077053409116399303679896249346897610265930153523705514636638739811616875757121747821703035277809388350675404046440823018777798811160049530158850498118455907610277832383568083605950475843534923360761310115686755498518619320741468737157515392429038908468797659679205553639994191896395668210388507044612324613211589231962222332603223390259345125678655773958595327900973648322036472517639420127172402713989027114330807009118947154668643992661688863443989601352389371937546724036592526993761709018594650912533502278328290838466425580600046386630458175006390537589933774426698078266770660480547342289115195582686855746815287702390587328343065654318496766959913197427823275703843409243043558034533120843919048064508109751056503169486090844317594210838399491053671904271595484109681377195701136491421826003296414263611142472592278923094619419693290744021121337667624735188375565714948305245722459608983845410659519564191851131652548246541830736226900090504489823322024534257794717389039627129808658699423987088151824143998588720679769495471727070272604044877122604852871382947614441899160294060724799430614730763438144211227673401127990627703407220901154145320445527957816712540004721497707409348068743966133093517305460933445290243581515439789415453113230296555234281934538431324102903702531569137031294679222421905861652307033646288516583952783750950092333824187641416107466176394955272312855921741539734519116349051235931040025103657611332102419332522547467778151887644216998539708475989869109034821567501062019159403272024193904421217183454764244517380386818807898671398676956153304220643923023809881480095825076283276663389196342697880383660032438114388856897764353327952033995286504971308826461678119314682820877852046022416602322288582447268214783205913018941365542681584822868914640838936762318424294747851703588613748228070371307429128598174293203335038799451564330649252054408657239774918857374644545609158292031223638440867620622969952601723942779635532162315328354721350468882663829739669369892374724867779750632549071473553925893186295801025871953208835380365580340064742467749275123509547561329321333181704076983636742611515410186593802443539356131744377595893137615766461007280247231090857268905061926469396102972159557384307181816904400289194705832347682981649778160775718734271487376267624802187069548968430133360087402742604509073868057705501679204319170565482414579473645600724050353027914148486861069339306688190449561423486709162620221628597937588060094084897725785673164537214357858705381703829095158929405770780105370846544256445736894295526284156874895763756838385594608944883005158769957601122245082405115529672608284395567405800545765884009041559341671037714882386396443844764274632257613220331280613161650188996958001960442779704530233133256180973843946116492449833921560334976636767996374458785528069186383519607013031795589407615911832612932795381237433678328127259948527059597843535626596608790833507049544532042697922205743961167031479915490835891821844856439601942998992062043969492210334788247825083205696247170340144026349966468035823946263192791825675913645233566133498533917254446008204681476131099666225670932222625689732030651452408407835786558476883939375828338812892563642620792551320814749391355858925811123488250096847021584196038896572161916294576756436537522771089925000345689621613630810809046665121936924323430609908118549861871473937506340889964956882199018692938932005001897566380081753998198171327460522086964407144869100523879970999246334491816214708951379255380787327884663477951968167421840455232109726381632912545333182706102040713274509101171488342565310369028587439894092613501638999950961887946946733035331216236885016174748323535888070805392102217367617106813287487356285876190535077691293445987863878805915027252962195203665046567831916809269493952291344133110901191515760000553394863318304324475678351988845316224336530527035045713965605093821266421538564174156286815793514029516091660712738191512772248375415791110958703736409671243451384849104709473492703847486108528194305266701352367043799887619482862533141770156412267365905388164324558179273343499900407713386661629572246449737635901207469974273656570956786586984349106182227585127102122447169427700501675322015229953909313391375983157874078925231121521755127623751104590263007153416115731126040292132791031418096788172746085236334654436275025508117001160748093835328980301350999877611278547137377491700260560668532449532617958063135666011050061203588295345708954506647118765870700337650763413491564424252382353797014145652137217628120484515346753924190363555215314802762976336939920889977062777399764090876923261917574040129373084356917604470490810207606741321269400442255265401684615629282860921171397458292710148324837454261128981451606426729691409208731244180812690403220846117316548000941188486952724002994086680195360710330674530211837506443877655516148000027699867576499130020737118984361162673547160213984694859062885739514593004295269763909728314136471967801874815275038237014080052805989159656792612899929171277805739634940328645806434603960540977096685146098577270395529404224424262764800896734363194941643331882998055136793714360111874463044292245781448967342893441893806989425189305902938865896054103476285401147563129920435589903234630297890870239302012335898795576677900084823190519378957390349874231584937800248277437091523025679685739617424600642396878291986860770005579264483487368712665986387530136541120010551119022254584044730366132394991930044620513364589234170535711578944821016177378382472637830664019872154867452403945556158427740163694698030408851564801060701724999973423383859514033260176332229983906406118765944766732961595976064032679464219970409571136112480976090960012658847960654501953275133572878898650177039274177630611205497628466088837927049377445835479878901374475022159384714494290527587630882536072321099892670033197099828894414607616299981533604755814267527477775427383738679372628296478995437459706297232375819936400952580941437419720593547873380371881081025313202119418791312254586129102853449396871503385164790168221204742947810240609755182772595992978050061180281150280402598243925483897809269124932209175178909551379869688540619395457992361967344524901293173277254396470092864409767181510640674500038275282641384756623963282370507754844805551179939266479482448756751943218894290231877875056806227409927644896654223435656231087965562520881504476967885238650446077109151000671426414664525067807722783549206307656270216383717877926038683856961349814932412635707197266810212861777888526801357444902665327766024830235055586360928422458691913701065946591917488279381441843413787125309886067073503121956808736492222900781013135939131520690282411197046160650925874702326261632071036569257190769671413504097246708971528706611655633771881198605526474782098400377213484668955970239691416970474908655899630490402012299980327303989028364256445242711290160348931658053297401078387329338268661844807456452024762213277609167599732287665442479160736032709245909016700762895477647213159263027919176292339653578159007530412631117512013207920808437530846593067855356011344548023549564726653717224924790519829706211184236128741768846019642555504345674307323990516858499998597162473647522657640619753123998330297779580143145620273990019821187158153523275287461765395044430192940730351746084606579831369571898687911391736659394561910896583253731032441890919141720689367468680715087287065396087852595043449072288951859679683815731112902062382356455431917950513709328495825391900219369194542611089730987891415288372700437322854377016009303961367220219894651223676445288681509314725824900789778254802149872923700436710315282304926485937868772131450428670903320574244534527609343237343180723988444008636085769135225631426593187200531073556927706351213577004819780500399223544849681751722147547530911747031268354316337812112947404949787041720359415635810510970098609411787148147415688204530972979832659610470110401412883508021062470067051231080501578942223736996771790602795417617880580157023116073572773020417191536767566539554443104584183895896002498949888627349011743639284112185847269053052157960564972129276703446359174600863696646203565660529817773964273896137395546448840576187059532022136751959994685257501960901484896720626620019663475008317070203152438342983592833543600636007030631121948288101492155487652730894779934731520681343851621516846213426153865042448487056236028456533217974842831866546751785211271721308019117585971311914801773167400650970471093005955074389572655470292472958234928436474777566396764749366794786704278174093116143713622364233036633043439405286171983030423470430459358760911180716456137107741197686295842655845976762293941340489036441791677891855564813187502048550846118899721237292218361245695424498641836451274590090466968802254623084837967986227213841725269415514464823744660046943427663808638033387801438529962069021323198168140647007572573693795179191580205054127086897030055081271565839645197930465572285496002577967780331511982898960453038014804426302628548922583897969987916742795690709419671513427495882741135316126485175815736303011885328282036237112206793576882842565322201255113352237807822280807603874161311281763673330999663538214678215367720830870430169903558860547233567005921060334686550594486007096964738797445083022401745535467199745415667792770061726014862899478176393699815038883573584405253054441975556346194324755981906670652178865817965548700873600188438044598048391880859078723302026443934663155307751690827933626253539370415807906419130619958198946071237505665794009775571656759841812536920570996427069717511792106460770753406340994545569071236529523084646483485422010082908169561519586438250202794599364044508062329559678453222864068811429986988760863149419568216944858043576872481509129566211822927304062380793504356792708092292168845981282363272517076306526918715505125604190730324035219542236107258278292977412832122938922562948452880542360964048428487308354938542875913825612861081017171360734848186222610769210005442116987242985274107381603572744692787795852452754444349600024989182228470165370110722772431538139029343871417383574746207150606588681980719845803927337650492024154334910919895144570130137483737970403660291499360779039759791755721813605759772506417954248154872131587395355460947295012036721973620398324154017687234143105969996436632993383395232851619336393287730464279083531851306617784295658407505425886227526058105672828537481246553625631679678936520159337353115108195920126128562593255649538649613872077746042161854319041677488130518220718417992122620442550670868194583068521220602020557742227402582884500953362193800574950306487454540559316485741791018013976909882542050857480868106071528207221369010391299416882193395484429237760998952400404331848599859521973594782366961091276568127800092672530688372187634881811755951079803526913881241453458845227634228828646491418403633054752369428622745630204258083619194116193309154758423743105277056461041893148521342055494472406309180021346784419462331720992318296633605304731897349410957674250010780057266289506256616990454470171143255886080740843726597558647515922940449074121241460857017828235103309645372504960348486976428395699139728969300328760254449338902126757597724730733999190610296956907910579022730888463345962941772831608150105630727782282804982488041444355495619914833664341146979022168690647957181353722578960560487836415671410603199679746033593999495458232305835928071777585381340825369146081969495036769527103524570168637154649558215790048892576212562229117963496919292385464774561484362364495993246140623677682572831928864114552460303542709850430192593126962759371160006368677536946284624877016889369405107584521897700264536417675742177888482656595189656538338740242974957849790167318725080078593348153673825820047421572516999832244768931848570821193366520092955649872592226534803195581386910488864579996728911603525845615994194787322931658925033722369739672156410547893025909323539406886906674315495321687811979438286366376624943188628811327016268521331264977467781215011857981665248707377035114444819406288224594110762348308599871669541264339762648398805991737296930559504020063080961734603773097840690103791370689262472253824919880688699133997453684684486347299780161201764605761738693627237447547346490098196838817300463626068598917185327273367027256813976729225116569778772641322716017962702016363185326606301811927381694168839794779934006890768416187311976378118088741119754755111219336118483024962606171154032718193063758530592500481901152585806397410250087035109011960300440266315635051937907974004345603198016779722934017515599684423847632044372662655028288125549092322162402909575269280790422915748733600067171389679109955556684869587104058060737195259284638036626504229896830936035664131446723535657797825796590389522250034772602172775275564141515344278012115633290672784314318147051132979177443697459507412367620945564601584979229916547503264344252782057805595126123498360113347806050234738340645494888439032785390291093232452456992360479452044316169799958684145349128977899652847792153060191906235836351212649046380412461591298042533038292892249886038251003243690315762397399152712157812429698995326063511413329902060204161829556297793993497113541763594954877776532866365795444500413439737830389579243631445393752026088989817607939737018494137516785083226615937769997273084605387761587592944266033788184221442046632322361272910990093078301123590359039852873670514720822117698390276337725979477134435061176142940037832286547055822097089545011227042909652282551758305914265822788720663748802430041547502137734502875461706445541164150409755937678328658531673256433519649742450737691836263041682191431626697584226664022170450258969345962319932238560169237088100102969876183604253708007154287325289433183231586339138095902775240888598015086418550810944541115249172717266769838148989667113249602315064711108433485169365110557684351878803446552682856233861607688202557892086000099581567898388756346275706330030408132313327773041808173186240680970559454381742966345261938052087923712383311348996893188195130416468166602806784621621088901406427716701578512722376324640454151751007755308612239792030360201311897074979524335312939759508341265416623740180669896488739779417222201290456011699921762811708605326509134641075583427580218375824114049774668921319604528487037574045602251553754232971389777547830071429076470829731895431680659672339490687572088990618393080725574302777167564822198778694318271025074524692516403947649929269248816974482188954138299075816146613607033115915444466965011361882849958913765309118721102327715973791347090957659244041008069455393452432965098507379966698299296856098183182062796944691402545713055257776099294938159208095415517718551946762354158839647640887983096828487580299222479615438103677589390666236227806208803776194042655836360174438671607068080411852806587462453769986970447939237954800459599402296277765240956754594993876284348837210472945691602504475093618023165115972015847235229450421404683444697633764588342372914616285069549053086303644423905035419572866228710280042247906067457586689251355478724984896907753022919808599880958888609397659374056660970604498353822145265307987613255930389155357386135321645742956449891098174179001812034426106494104382881844261210613301580967415637727700646013616980078691491441907665474308043124324604867553960160316110486040641260736186750678021662812783847326130814635918037578842917955798460406048104834828009766395682816634091481918274721096495011901537899028902974327994111960412494981395015602731164981779273005904489761441613429096370827440164082447697075557229879704894625721774501341055356347341211775450949556686596952783573701139616476416198595664978507064502225529235779502287705700164427700846688843732372109761196609005352241936804936874568900923394250716794767386967549109194019452854585628509629124765642485817134447959103209312447140954149973267129563849982118915169009261501368714363249202394223075221769393713968888349154559546880902065831086637013776855488005114429019854493514245822579653344765585157569315673857433586525232763155397898154554844921158667716264727787429137123313756786117480492925194296502164432010851591790586455576112530002529053452372915293676716548908766593886717354897720025898618657944592633915056263954383837031540613226536642917616657595988556119487265806709444468473060165521388163762296069642457694636812794507339496633157467286833476840070077222507089173401531417684794134371337979099073727377803933326784483047693182566623255925712050292697396073691075031329129166732890783244011818943575351561462201589829005440021245206201148770487776225056855765129235056046141765030371722848164960415895000467348500100851007513558016184382038662720897270744543566950273258807587990150950598527952194580348461394767975093795393721820755234882186359169663618181356493424883020560177187440406016659830762780830363742884078116512745799096255673727984105040875781640163426121528031123053825550907540841544096486550975521365728781595682294534485165643627529437874586299680814201175711158671100085589245643248767794970611038297839905137192209904645799539261899283816257817705847722519684998460566709086220182374276869789976380542749783944686208769741960728604465171190099188210073110134232691763237679456814558384634499399902030668546446910343680960421526848681232308021965081712042631156480574646776329185620243373242385360386698626745628038526849972806979100612267114113222531574601160242762059084886415553758261853582454048258699690764668094484966154255727823827536517971728773814785339700399847713513959014996095986088304302098911767479419210628547947265509752717807874643891529904236541907799810323388154608674819781898254161136030194712986409037449630294569393571769150738311857483026562932383912970244895872531511572573751137506927499385731468991582516317614637878873252183180250555194346065148623116575733615641197584180975441926675288283609793272769887137029669412555785987544542072064468485907057876007513273355086034388087618497157176599079325561086403351058538024555600675442066177452043883906118126780200278894015584761854573504989828139436626497879284631336933740829609527786627663155410615822717597722177762947096912888187000235039963560462876945492070627342618889548737711351325232200541661566447591191227232576610655136700362350129957052873584215839994479642277810635345555083055528170255968293758312253143700972747577674663686254904470294421473820936257498245549581298496273638844954053502323039265009198377306232222642110658470890261319420947452794066338916408933194203894569597227141189277189829078865635973354296070415415292292328645320865585820058009238022587118181492758629339240710917223292148579466638587919332409471132649510040716600185959397292061666484982890722613900096975505229021027539849618427344875288698905999290946265971903004487331817830644141892574312729759421660207960613662155233153533256599845395115385984355208939980400179507303741309637095212401914885218437595989000592701581387060706428895230014768887853388124491362685654422580407168639795867844367823070873066694355852812842491068920890804278492412354447806638350812783773804445361796264626143531913851520155379250873236109080410611247867246051846695304623524139562405509982988846584240088051058532207659874673314083393666428655024262845127298733904852429261520999294688005351489192623108004049259771769926225821994049776986676409953134795637000249224260912887953257778958126022686650181299195830446042760640271835316454364849161117127690134506210351161439198227644026827636060289225410161082407233478891039382423496992897976300858939393861586040756170636645965933867630731713896930671651926432553336869393033374004420940747140298356499797448490789322388232526878533926204695793204707949677769221789370179624616806475066527841682158268745389584949200837441248650722798489180997127018135536258067434505806624705406957625844443626090934913788104305679676603480900182267111820752291901142167257837887858957565280630907540421394141267306017802878602390989353187346899418766710954732304671822572848624599930845808913439491739483922177605760561944819749056210219905315954598461629617631862184642896771193195734021518698251754699866551451337702678741997486083914593206161835565420688853168761147683189899583813937060173669022332180211604445121914024167075070660033491575080959043236915338842854215844831588838563052205677549096129044586751470904787473280183779290860234462195403096685975263955269189228811067891021247636680394044232525058451124924638426032913629853379209704995986437614964308259823509583933514437667579049727604161701573589833961056916433604660756657928664051924090541686782785997459154340542463794649485597669854211033315666932413293342352549190135572045819209431557987042318889792300242387152346794243214688565543178022087858872557458496802232585244462894765385447687738140050161553278868943872382913657920078440646034949563876522926664586904138141866064027557648961086030256529741369868455497650392259016577901409073636153668523116964195938952895225864896423885979116010287982773181669360478555040565607060020621120871276407941169556009476262122550797298610765647699229901928238688384319119790018994983883633927272931865695208732570119416459655434512993393054883550182464583121517815295455687978699633018060183253700899119054311675848937698450003211630686442155312676573743832782535631299098718016338023180148268918048448565660680871754701201197224435336962894656763879445702589273469657062581721432481170708772152347794742607032673142875834890295700194137822612761465649132313317933148870086351581651345971079358411817693087638798544275589161124447303485446800917506583699786937944438368040770518175544298324605033503238451328350250978770954763439693157670489251984258284173828346676823302477111061879632201713852856555944113089971459809530676946194921478330907005708189363085663946997572444886370736099323204019060046899639189404133544027089490082612346873859333045918863928007874963526957309800857840423925315182894927772620306795361522111563655648364133955461620830511163221305322328929985028838853982459093484546597813996507619753865927870996080121580590029214562815187865723749778908924304880892303813684299658482774884275543037425222464727190525590176210892733249553244766055439621026179068760381169908262776003975237994097060316344670649757664201407404742050519222799872400584263951508653700058546637583319897435207141253622274804704530036349472459857036841257254882221092566632080703445349453227742235553085343308220065048731222220329581649560951074882612467238298501435364119183205807759241879730349879559588900758450417898448143015593088429017629831846933571394499615403676374088135159242589076502169422823051175084155030166467643982325689195154310118299924041812387452427725572102425595867270810680704692501173528853991937397128531497099192224650398249437816113763341263574643668586557617849484704853577503873904184162888313306005223703956451769501132919664661019474741630485924520559653714454719034637017808660204785432933572588502225076078049388763958615762146374479723887047257629315976179121376351334999460532007035694323089676748012421000948717474977273620971211150737954581293815860886608073105625433085755644908502633990042034924147110518235297941391186504116587282446694316346817117008240798928505536974953060408842491744921625606332360524789184769599227113769213537971625863133795945682016183535094890835093665555293062681653972007686921745698269453304366121928447472544693686294883444117204062770000886063149172353124627147204214972388112464226391476014169980164708110491163723563365647053279757309771062057763882246834501320148606720823597908076601307390574072052871058753664521056142897571755026444761371058286346761056394762433764292204368490828469027356045523824832437291077175062810915196745007885136025733487173819255870945161456373994364194524974721509868939725166137114342553498366013418770619924139747432483769223457326126963681089649650616441677640538366122136228392621640306288044936144716684711928240733589556045993554068714867772858236426226877159541806879484707070472393031975065530504739850784671368430985011441507872851115505116125633873024237894587248791737774186088138550158055901658671913073676939333802571026669637353429082367249464706547583932817360147272947567181335630490506664902604531487605208180396365376982821091182370348314844813695825701280358638579044364639271143078195114800295129017077311436214432638018360299335710750606678646870089886331109170945208942226970473594843428610248018703364293594097116813166567220204460926798752949209440193998182331547017518014661618764870722473292434710768174159900805991414883803850666024814434172651857706973809974210227301935134897450200750630728065265884147190744273101905808791045288650960024716081261427029100793400554246779978399037729964305498754106651552742585270552958864654112965733947593648808141431826648869387538592270275792497737331935700851961139863391382191050270303672997108880450111610864243441031273519071486819367198934242822348264916804671770016668772076852864058896925178742899215865989658473501251176208217405845995485136660145156279535166990368386843796822457319252820298493582075881005577967122975580447524336443523071090712386697165949147742975252831513603964060077868012540564033744986568440056699016298598592502581276911047294768110785346508249707440183332447687615946213423181109060170565464883049571767104910582740244355883766645497827743077967656849249018789643959227316235144737760469138818535503914573029857838684584995598572877047967880710540823871074566231830331256001493490975908471588391994476909442642179748535437602601721622381719359335850074935939354568835997172635747953557976451773864944244002211188039709309331417565158439939854713597859496978342795819012054035974771736348462940991396070949235975682477714827834467816608193907212821122635747031296205234986130520070924914542595072531422755732635356205799409783462045919095840604954345964522709123404334374834203366641277696962446668136848152406996663628402185225473563367070617449521426904271457396368490145666012537940394185235338039295399879730292073467144133478057025681151481037336207049588497955770613921159230531781845538831548275922041498720812569853358937583164079523144999099053469365445375434490578150711821564022741307620833642004239450843487454477053393186238250735359576994666839382767255867809543979774699103123789625052234302901282856960721694553147648617964775332739031012917567186018762526436796042826613864672195598290203330433751356091650232768101847330751063457365593180892976783239077918952781411888971422252661155054691134218297005354908539289723148506806946964388367193118439951315878144599965504873216756230965735528878920621748891304728066285336577370789696762916114267656868799465167141409357516344573528085068557677086824748139808910037119923839434865673972764011017760524656905728681258577713317533782060484816552349925189231951179863812145816736010413693131559860538810278070822623740178673349209625724991511949613988328457420333697230532458541987007637548789328712652920103918126496829809653220766856922187339090444972614159707504551818776210550469788362605324768906842275054646439139745851287347411422245562246689881570596348501292660876442516438443325678401092880426798359823646015918166442999531525677608873706284318214472110685577152399800722197408783068708449569212056925273898175095902700784701247272235941166229107840862518706480098721034358399707400431126921713458243017213051908261057524913868502308337787730075514011086693003006348963884239149453419779331400547026519227236013987141567489160127939563353807716133489402161549370681556915456353344592577018209484117377062044645253121964782685795458611973948692572242336026939977268737404627680542064885297636116171972348926919242389359358697735925663904069978262287564166396339296769342254079051067709003236088888634664185986920163313738419944552669100889551760962171601161915958215891499812130240412990963661141534776528435754103894848541003539884680475392273482820514139668328231192658080064054001621929926401756161044577184277852076865312609131526375022883485522589446677183192863004196767952190030259746467586537538030196223437586493245771259496219018414685684311472976105596414249905821794082802147921757709165768001215895581692071024885726726601044303161439207776609521167889332499126448964163567439014209728901012017951115171267916897109559200228275257669323639553564885171603871467888329949080560824474103205110107487571293297623943536187924003559791577674993016886157444779429406295190360670257240753601566240327464690686734601699034095709176969785493585879300005456544342787106661596603121188490708177507342250682186292109696831107614982175402827794761876825682599746153938122383888539188134029892004441466154319030101438067033499908007549045215595324341161533343866716190534327815339187568788716851589053127988705533104947572176943087060844561095757888631362602051292097242532065587584163215995190060171041958580184452010840074493011584669152111257136826647087378753580401607606292904433511785180411939067580755025583024416789222204831275424679057630610462004656547544812292268105944371325053421556458859691021415882293248201209947982755934994983578598858839398963486547113305694840709555429957023440156280180251900262459513124990486945405136806099768590039845757062004763560247583823562970059610397658819123608002589496738312400419597489259905411779350274376294994368828891292214647749251709413471306469312615275510103709466472678370362708625514077505074318033998616499548119976181235496113829499063184420423304886112433365504251049354971105892440037421550509048948496119894080746259520652497857190929674222792627550299393651742041932423418518546314701441724783111882203974149748827764871152736723769075052914715221059706051045297710938349378583359232488115691264461723906878870741601445235182814223534507477583985782247294464862653964070739320710991696088435045800130445203698327874046726601156403621060753119062860620236417454603074227649752227567821774401721520242336889570432723494373163773697151224394985726010091441476875460923030951735874827971500340283560754456832799649323980069462374827972774632824188699439775157677543355062354861294460319623255820744421072885807893051010792263537105485449622753029329519542040666019471885778203918543323639439265870636792829968940222118671388340560692274627359866894822581753957427759517936187919869893388767289022821171776100550809928206352809619007159778963073410604668425165707367909487033479116999331905081492249244913180958361533269473773589213440028893190329002736512021268849071513653827989132848815543734133493628609853284858034631043153986915443875642910861548850677662498187100942671475142434609832538673061139718540324212130683494526114028990106012690008234894286709385753088216632221968493580912121003782625212170169416191300495225074926084942868546022715098529416450433921587748411036738495226685397839208052704993678340475485853298629100361851062660049556197357569469248236403777342833697015044003422187950169209203144705942437601429940418488158022311656329944405161961064017939904740699809642505526563023499201834930428720867515535715869073902300987953704234366555801474853079384633958115796528029775738397720875860612949998006271907269823441809148368859451558866499255144168731522598137434853202841641756238634991543126762719805235940573498444041623576925853646183834757657180633809612225794123018171314357633811619641890833004215228778001753136200566393440003211052941656882654058025284156734807869884696322588994179102596160673687532790732162233749411365708874551255629126479596693850385808403229008002371278682134476358785230243450160419306994556547611912355956569575379754439861310947416202201176995454040129305568065160348719510636459647519642742889791170651874409397357618705907374834591134850207086745426285888754698255186986075157379100171538378935078916899102534709409311307643248826578231640543499329842590183350631270654068899480617622728655050627530378773239166788836966266650041198017941336118952943442778030648847705332783112531723604091964426655279370876200693476913178810940515740673676541155097501202115436560178381462486671256480415129090726546521732707559548151687704874606300316429275301090636495889729770573268122935774599761522594910282401197927018104818805664153811295127712823870008644757154267024201121517707755588589243470678263024112191483539768006179687465959359312095225024286336638373384118513080133504010725822432503081324620934807458226537422590740718976639180332621535440450299828836112830783492280125439283644296897534188612610975428282374488558195514810818499655709708785758953301046336229511613962835904405976980809372968836771337497227834010929378118184992248947962677248349872070777735743004269636873012092853998989459613217457150387414941350914121507038483683906103007554207296091404194851246063517563003234131738567229096402619531740605084075803395594943492859319790860041266121730237874103255304227396990326916239098749186489697782983085756501176296024591932501508032780489739584991452589149240062752340616737260059782085466641610223643324711964165151652996519635989099873620726455081633689310970866748791238195341675576218905793259020616356753336305859878705910967234191284249858856534351325907087562226944600933079362419909678640269481471638985811969254041376405907343871514709563180267481855825483990085735325909229270689703947004536681471033899415881038571566905140037771172450949665651735229844362920549621959264016202327038852734316034585748605409308573293973108204706797511004774981376885790160852096010362101596512401866802621667320496683800604471340326802143004860849891309157933643934706813054250408150026307269251379693094006775293651956713679554128453462715466139523283657423705134963918762189281660002609385017306093352777727099542002465497895855373992721224041175864523550742057303454358778774473682029345077718511193310302330549261670797999890436437121926425561701273771141043089143827839887299797776479390841905547751729535301114009724771489189285729699274087717669808199374417678729414178528294932651280995165814423282382312246368476264953034087590924632966623387271832135726499198381742871925084050823299744040667198845474079182679843617013824223997898632548258060892701476457882457774287476947464312569157446591777305107451034206670944376380987333478188393350100592067366508739702281763461503061763350697516934524139050901830054480237181308829023638234586639919140856443331469016886891219667496236951047999433542590556689634120624315708626695396327261700573333606435706132331971483481617141473430649386191048000098418390228919521143425856477213340121979499768326867529649761467170411666308413195374849494904268734284497906927220339576546393196793079364162155222526556322109485420401028123449394229317532729185259231197343837362736620363914436602685127325678141104293302735522816558715254493826685646185989970361736787367908365310191373235558602192516356727612298941113837679923413003987231936361747231789446560388938149781194869345670367096045137230108589774227172510438645027922173969153485937119461110939081643085191291321358125834904152524979714682046402135644568482520763018562900174180591991637300773492594954919835262915707126628375819780344244908267316076424801302731511193159810207664491062758077026245227011284765091208812230972185662028258206527941196361900858594383104664184366478178423664336942639369038860102982415801365545680268907473285694617958270013953579823265502976643893827437235727804972490254173989279070654736050664070680509445985409251086410864974328872865141220763325902212879268913060666737681330986969098637385884553188824672595794447018364889317602081110225738408234558138665545974594855663197278921757809905338579104221015561074724754336541908575101971551661497288455575546210121001856359448973065204455220927736717260178717701620480011172138458931256818189250853808865751992806590709123648036008386498472881326493707413328211444446971470343257554325721956377733495517661103834566626878657358545672548302213186420951685018113954251291771823449740508166290812347964584526944587718655081789462260660387562091730607831354824633254026211491086334433116557095053773945525255791671284752310472800688168982313098776024740261206303248371001942787824684438194198134086291928558254254384928709881193453148192032243611278493817874186046843258374527223424716805254804267154817069248639982274133746097637389435943462586551303121997515389132746681602383592619035620533137434008726079602559845890099336639440310052881815170875158321127967972157169442687895594915037513269030497169247903408913149550738051283862508309177617990047996913433972911360519064947935346767221286203898451960731685057468539177626483764239667121386591465376335722514591704123841628358890516135855834374388708953159303495262436373725889977964809526157159233204446779360581495601825334097778775418901790900941999678636114949326920998104306585154981084828252606653519101000179073529634509847249031268301400669326721473811992990231896146982700231565611223872467436854516282357252422424946868747252210677139807709223276379610983502283545463701707336758582935501773047306132041522282377919976332966325931219387873178580617100503519849266347016412983680405243609456538952083572540647635917140603097081532448887637561520311960162230073944067617250004901654550424515835480567177346678083728943641182078864966541631713699996661805164095624863829374173669184891320420803184825203131401020589231454051910990614084863550628228944172898526342031013449947731329332181164719019817908216679827936940238428711344504552784617459664771927464026357540397709304362723497257187558810373991699576730700720634221755887478576549152738296844007193446011310242236308238366648471182394944947196552330540679657614040090503824776187468022621406291448087544217578604120664835288830822785642506565032310455080042821282815983250623699727591895926188205639310542970242320916981525813288162434136964195592111586008174474259010713155002894530862811107952281022108118273670586420396430128313642904436562798683418399828101143862505753828633420538204136179031877975370353479826634333190782691950731180811593464490987985389592336369858991684346996732660266729074877292439499602667461574898846200097278087506449255305123762404722827772673986576722781402980732104721556131820110552023141039524964843110136353363044898839997384521249587197979687150367871217757348764727974467130095829902175428190242470631096443054729690364384043631686274578979427409297595096216252903237998828843144782135812242096705637517839537565900548617958004093204903110532231521745084421203710426314323921514490080111675714633837615333013605265761784792440115060585641298328912653822454323062736494841615919682880348028601964597514613224650132516516184348892584256210631495526782035090619895247145211013125662185029948767494782584619664565664890724651971790308144470475576962989426128721686701483295790580565680538766798204801489051885204439876479322984709833302349537093462241867699372756593967807850268598570689197224361365611332039544762478549131821120926601089920618886152335001397699706540355313489233470364129823547840235285443085672737727487215657209544314148221888467711764634696105475528303025801224180361610156367440019057922782256089531949152075865747582847514652513290600444340916447927510801658688742266152534488384018493321207506066682110137014426923711492195951684153142925268101677120165704740967770495604296173726051137210954228039846013159777306312618157815929051728423723694966427039352347219006417340475299070184481971426164172872279208828584065316188853228719348624552551226843106631775700324849283483742293991010900138284652192785719159436515519713593597537099011367497915531914688689883451238422741750561800285491395993777136347607557278316501438335060329476265571732288986973080616905028728818122933298423431396887283428843010957437805008128742186869943679166298829676313205845146473884905535598329528095566080869461260029410860705879472070574673885928787772272588571236279658145484155450158511495690052172791267242337928576701749285073706847405298958315761888662113339809105380006098027754275733491208256886649433425651083732602019966342373459354929603765161394618350321262619603320801493764448150239560233402846884732087759397029225495422526451886856609802573073024525377427492823765847116503962788006893490113805525400126121572545917639729389148592931538779496093616318855889920742667281409282064944997745010220598838864585241708191011805733663661017250955334948450377149329299819545640015266988267010052184776132456588107297496932446461253092013048366776540859065863840675811383983359773227880238698645933237161914911763187119849682528580003267699595959695115841213925173782405707010309461856035969267356086153361212100296636317198105928200710731808355229639509295858059473481172265495072391583051499789907954696766638226476508401512065901190321802467828832132992681686121209162834456352463854448350665574779830882907406952478399624311498485026261991843432825767425678373543478348350183390933012387867725774744998588520816029437962791102873886102527937461851791901446641029940941529047503220757646112366561289562065887422352367266334724261219361567088605433664825461788907578265609067007797473378684388867186429312094979617410132626362281491968084068323644617236423475091762906289229088740296787511403143339171931508484170769103916136894000791660779853349434477354729369071771475015776362302334747155816622342106789603761186865378855567808198406443829779139991328689205253781241587012977087803163365590948911495998036949759027574647033248332401916325819354215332954733752863039893120513224784484769104953272772034892694401405358033162674176595941068218769733959656771315939103911603378092857534713666190874979820727439295025892758540573775058344691943198477923287981816558032128051207555672157927855806729242978319619934623332095064338886475797725865454688491320773361916487377219620863152679485002168380334835206800046565447320436619219399673241462256222446148396517326645961954969037095870756360054090260154588856317542981880863216202110146994767585093381080139281783013430977685044365738269518273069015484148915992285363709782232335576090144664748024921082705189211577407482858701949734666007065459803570824047863251513471728342085098223376277938043846798969285219649087446581092366124972032156235204133869229491911935379378340138792825477778106212278932114151730337745814943930521854671378000716843146125651832656112479171967673422502840991173130103891189148753603034361123527465400073418679410074236364086872958848873497500823580103880520240664816219992463395664547665110898063957743940201113662153008738282773266514986980189928532753935839902974327395186937064976104211616971896695733835693228504639546112988498546871734566042272564540231951161327638447746511639473008003935400080265901849106333750454812033659730247784933798205951767989192871546679281148880487117635108434850895042429182793549527755406851664987859903880638895765230204540191397138105333028657609514190009909660970161131426899779356327171780098511067724673134597651514887032900942392999569101109565351017091752945081241762687287198156831229535480856806522562095386656446438574859493873073736995369001314595491896467538101616295080493466889622798522976875782424809776966964488568898471749064128826826434990960873844326131409195863194773614461108736704536084734714444901014526478852687789289277893159057553832757495971423693240161162146858706210679612918039914535430425846678252857400428689188461048474668365155842509737901494499358020805855274723807933958605250401297789090420213824736030302057624281305928446972406903135034888021066888355837433404066686994888944398099726235838314820236986182727953687744306806840570304443132781343068367909357920026208909399675459020177128755309716171187237347100216809610491201308593278346954997034231714020114381462716020127712792974673599537504527584530667608003977009938284055363566675341203430898867233842798055436416795820759078623415230358767306968581883793469168752088211421119886925229585157457434935496726825896193715063869559348491008732013183742086642323506957915845386198936904159882820963482488783922580422591937049920933592065703087901048782895630015411159151613838681793953668236541388083988792377055562307445543838393185647392799718178576908285375333752020456596934462251592531893922779258334019071717648758028444515254750271613024444271439062147148680759791793322408568089757274840311737842763838512298053311907979839633906396405279800083099118580819142584271154319226416801468873710086225720689872235301138993572814628377544063937604244067972179244813479992040027702513274061098422268980093952864790631811456777947988634757864281045319144080629022387540069668578819331658311198468027350627238787530961689891410841737746887838672415128828834959592215243244006809865695931974220222806625428956090827640253617978621786650039660033525462661564831365200028946522751270543167685857568823043607709869426631199762488694346280859224644768855597355993196562085534579902309255022239143845507283813264462361368629745467039880357270819691792357398322945720092232727647726923388180300529218598393237954312972389530745625644071619085576540166258868025315384272856940768848411354302878201537668110130903721709220198517429052114477545020032464902297198136694458474396849812271853796419183388980702203230316210792445262539286406251946624670468659694197025809609607751476228188244718397893933219664934946339010679246777054723670843768611716004412547345578462852946531495559721898996373860855015033215677837693997316810915468161698863443973140631517493164695788062604977246929555966970737094618096337186868168591957567029500556023948200978463324705885612388185451855126121563879995815096515337972591045661124303888827511037297055559992991471969117658559026525978110054932639815481426031443890770189544495608249947983788489927279467760896894499941503588428930809755394146992041095566694871201076227367582122387668764001415178247561610042873051042691299360810417230538861333313049871901739320637962000899868039649473597438275196379060297893430226299935620665239511338091914674986407725964543943834601286512608699248707806598917687448693161479434328133466875686786519217257100033441742959898561328670492140645228668177229905793770008095479420760206343092904285708930617606760530792623480059877954297034997938992489447485549500223018653009897817689688927966373059798711404259207626091288483097287548072728305523271813275127143835951307474390799081166304870693159209541771745778204548480857094980512232800111363405090806177614286367134044151700768259921256873502025262691881268372583759992287321398675969843174338850236713078058529587063595822649720002893097431213247643776133159169949209819126107740004885082976806205759861385294669832022289829995042087416712150008292931802011723033854624434927437887086896517011945110930782279422964410409558157467128699790695012723100647731982782841423341989262681785746298863232923494630971939511642970875947453884698891153544667831511105252608923834503612902956947975821729272201905043816325506594590270968405637193925542210534559915585873823559118060566840511610006430524063853989030448019133391906251965351192628235608907398306862525312832469812804239429105448290803804847321096257924047927893175397833258149597224700801353884201390572225210147480370522816461260241397994649598842502663091992677681287207277917753964053582698902695679786024607709080106169237855677038059130266877718427782782718471655239399717479634222121314903012433029987017791936804701459030721443015733095703447381467239793354710238881249112025523203883161275042067459050807087425696004427652368215122035722562618995879474269494009602393892014613406556443478753411635754944526807362180152180227152387257446416771667515531831456427195023274942039472499353056842035841819283205271002047329135941074354072348869597322709725813213582149139418336046939077804722905774053734883042978713686267040087754035645143140107498776567064296996420429911579519003395322472823024698036829507546478836305451594222077706767905006993609294509077058504847053241344639303836463598242290643398370129718633909010197188389112758951843203691037111394439930305550948191903910136365005447768934733784613855442975118238832701997303107165580524939454730501062000762826377562597788418762172316074602798256049208818422722076624204918897234625308988672628472832295533831054044239057307305930640471296303161455275013769229303642425038494154563523618827590382125135032721528520174723819181321532800324825194742329894887096063018900681945342040776487968040883513676880074505141053905345442376985148131319254930849374328543013164071182657165589531974792508754223707050822585479438408532354353108663003362688270498496508943860851626044648628792391720358257475761526543318562782765298941654279315364227475246254715141185090630779377568984169962104937658484002543927902735659155063059114954842553664074896332930539668570735763203856695685942979529571498313314869075638798171676302116712903793883977364264255648621894141272852161094019601023276123405413167105246628117464240449676998835311187232421978511282683470975657520423830195263328015111138355270776716431835668518286358261404524858638784290736860082100106311597306448795537374075848653277803075001939830901660683853969049133637766200284151926813276294716900837141913551909357924723508835663863868694550686411709073655945612939050425704605894651810837953133630014988801015706892080386013493622684361256232835491906103858187934654368117079996568695225221505117898521205870534857114059060858644219160894132063354587028428330651790212459634322803671319900706093356259784750550072607056028302818817038532750613374647498422012626337484511513514846044968097100104628178191243045542118558676414551291866775457603567658152071362131163239387395188059634298566311776677037355995066728592942726116274015637129402019991551701257486501104015571018274211877326345068977096906193510041339391369571185820893423650205741006490704019038646340296905119697874005462715871075456929924589921718278511386269805113166030956599862434382303502298025243656500153560408629699339893383356885171866353064022790627973106823277236890411077321718112124909697704996745672659264542357419393834744952357263442027889653292851800892035016056957615533774634161929658961230422081066060151058692615002765668556363108427685009541491347337774452491848797738655460100426246548585446376683824797859856959418192868822798328857501884498134566089705490289186072674694029791492147223089207235571164056825035261261779988304187459614950695582970040452831181601583271044396425941719359271856876172663561856124350502992431744633155079713177113490694576243181491592285162552202511699138162934660309258779803619286304746915233641677666365954279283334410825379969423555824826912511228390877861125065258980842403009656990898129623771376208154442558097934990968294980135468453637653291374274760299605747535671856996539611402227456213344521129995456011296111228902797811357301605793686847732230546461360888972055855031924673662399720155108555252564677789238892317349372138130433154198439892262563051206119387604344188924099023331888260819670170511689735635901856571348926639027817960848483254386439981070054951327218195051147712555411986397413230779190464886878709235271032166776682935578581854612452352449241836052011109304525291225410445538958386214357126433224251147706789814656388729973719564462603385578503541107116662690175184241258434094011123712631960276408498443102616234531804713742205427909729096391913605379140184461032444867083503944851977579590859040374626343737873080815650785584674700691220789813684119344936141990055271612869926332228918635659810238956768789004527964665774912765606058800082675879244108481990512168102498210568894059408234185755678240028886461055992517626790312530544474242911488802774125437580993432494612755882651181674123101706218120535159957467730730967867944926097302190557371127927725618321578226369405352181517949253054389450388635877550199848669213741224661715712449518249873862732759211025881398259657380067057306713452888171340128897675378077985107516149005340535377785446545302643367521331397497137505805354382285896265610472749608918423399308881900367189179824425650063171533023865268199845770073612031398485357189168169843653445271621842651482620917878002345639202964279966377332833481482748851617781977300374755637869888380615863201205965437423399397151013717931651828526754216679909924719993287518920839015321696288359691972004681685041541412921495737753438258065069247824701823945891685763660724358303387708192012056167824424738834171997770571346849887390461847200215404251300884038615878357511430989147598418504492318882378467812999798957015518687385673819444998689004179324360756559800014794621033304538310034594248529371586824538772166768930520492385087517958441009476374271679380965318145857658746202155913141479870334372171418613606000873117233742878564198726646211807823754706448601712201314545075915893480998044929014277004153982077790253832867106960418790760535517414108554108599966159955362326493523148514161766265347253353370828369580036502168224136211532706950433303908640614487116610765260456045466652580267286460993513444076451747077333782188985500331819691992488422670608143953631933309942780183170818410101638889448407272175314671554111119099784052011335760207518300927867350222794053591041747930443128757139755529508052263021777690065836702546331540818929995908823072943549951896263715973301472007021646237498179630434335125383793349401195009836606480919200829661788484792237246912007670708954385333885792703563098499947345285364646758240406188519014087823387492763439619503060108709537156037255927619426745730025604178332713177922251439002884323408245572020618439023233795267215178999640361303606682838722676199078424737069021194797161255371224132603332793157588640408285139439696557124226927781127277647878658333815819435442273707672350671973465909020857832546507682232121845600009391329669326197149598899785600445751015955765491072754829735506857716380496415212434083861081762448745323348529384422616300209241432146328395687508153170215343408655835129659322310052688125116544696139723175328350049471872285380155285773795090402968878397564485702014156647940018870767904221486723731770180845277376291510117147380112429026885118590161413005263523243758002142354550899487403667148811345447661878990613312115936693706293529051763824967757066798986041694864110713411460743698628102085775072430563262143671047477695974173909753690845495546799010053541066290961488504631623481521876058331610298946233496276857629888932595826077307396598018271569673840881516904115541361448180784113516828123979702715954233877545830738900872463147911229686860391061238774995893435171124122559401123031935569820481558516431344942570652158837354432641319771947896290270605531848465062889034108596681340242582966944327081929437124757977972316157162114641592475336290630109692530177614688970205733395869374493088970705024981597650385243465682573729494763346352620018298165301849249680031413853445159958028669291321509524980147418141007888398042371178847332605414503357607670727424569772818292472719172212423998203017509930703013483249655543235691695985515969268981646726036825557122565156237802970106671026206858801607984386791768593470153715915766182920323965169702444664490508431121590300459282930194540844430818901641646688362766007895719243063239184992625956195034288536364694870732699449511372211083577014086485596529516424270770077497118748300522623806143134555700436322230897273119173758614412744360138554448362674911895164825252321418744581772763189732892969947870471143506643425631027575674846097955630554624607445314585843232661127339989734343681598175621693264080166342937731444732287613302024029405060103599242001687169467444873353251374455573583178447352140940534779298500512790609283461409608289811810319186877294216569015554120569581173960081612114190738328861915002869751241288631708006791729293768886395372235471306531198572138040629719410096662054012910484203979209703171348516552240759264425161654346306276356982487010333605697512690439824453160112550187184568742416692169243310289529281593019679407849431897087621420206711925373309972224342073418989597243412197337004677289369379167734157145426745469217253154014810541804127686119831484888802665297320707565834564754153251268761951777118380667523422798487326761079223690631164271567128785729917571972296454480058224050537233834401634715248253175466675829784859797726072360250479131581237156267841945177668393191339345790943887789241157714715162110605230906045081496466918296079279921278460321832113020777219975998874915778784790354429434351214018296205294007331695674862452330265541867836651693027434371759818307807949995242518078830108581700894525595275455536060880428483795688076877358342754103961589737823416610532090144158763164266350827062657637536870354321742789727081945680950939573314946480176200659611771781642656695998766365593908399897145805969870138457002173573213039624433996579770119605506664770287749895718442636561641446310716855388724149597812523568705896388060436281498128103313284408504003428419625499018604335186302231892589865571959377926425949196934373332630103940821260683349117939338282859196899553360961303813735085430940170427566900834005978197620009944805868418211735108556392515765630570010490405560829160723676008973219492220270361111083917931581504189123619138691610939581215340454274538432138632906214906175766024401939039299472053892535024825360355580642299396659532744291850614653338847472695990605287892270175202420009155742891033959539714265674292908305043585664055674356200804710442428323997877081384707085521955432912926416607821382060235227531146345642069687749275809415860791551102465457658063430478153933462746113119744398996478717143084842814196085547069407690915245150047452980654522448836197864177961603981685393105273921499081280392352449957734605189522745389430649697148442995279261628659908462404398497906983776939644004209482724917598890514960864103251530427807727997853016105305149636487193298607957851391831005344224874574135763109099649054780341582265273410614772051499378220749083537260002523025420165585976986968829865052359325510779243163668805511244828629267897155527083136813780449588574709008959055962153285635659383861887949973594566795305452633013987862437878410099583445042660741226035706666988532252618990741558684687822730545545417397112870604131641399651557550317956653390571284111845872901698754657228200260613428573954176777459932289111681156627987070403484572349899116152649108888067867439168463226592759720225850093394229973550028317241435189822721764579596365871229078348018349940547061741031900182340920431472845370087374526602092027244062964606173471999925947799383256451080172811467607682588469080834417574608240481466291649787468490209680213543722667709986024595865299701359567169106776864709001656041471477707612042386631864680624549941583418799468881732489934194092066725462975116492598046342903955525690046962426646521637235169724737639209921773972402006787130466802932949618017468329320774609429140633346461980875301023109689223324974262519544325223755920717870747681177059689576525239624876241445723876307270911294967512868552556609319417568504919557892569625257241863381162765602536067664425594248626025803525050297341195177849156552371638299468153317366793762151925594491771155995897896409784806330672911724408672994090699083952597337278385301014415460524981209759454245105335070023450839610624718429721534279682224005529834183501810892304613292975513780157429619774677215020010493004591027791969189236815002761698800889777341433636377210158457251819015440768509017333706281186595743616193035507410428560855836994222709545317713182978364846708269094579055457285496756744806217848266262392132742512885148434739599427143919354634824929892502965222882515121416856973683247428874462870131310992107296937251312699194368448744477340690519289709249719201055968677376473863125887981931006544388882742868643649363077180595732871751343688877668822575398362546164354930280137533698766722753435193761972548857157026227915249273932908278958543359159625243116999649448469111300976002660912111607987043567152554151724263236782350763901395880427652067605652157251275606697093171258865738309547323763759921231764916345891045096372043517285997496276336583016311503947511155583269350452418694975562806596462815114105114059180925729775746670476063238030113070725107476120179137451994898181977647844124386535662506397993081999791986162396429869703991481483420977496554914985222170320245371853224679485257993926340154809879978954692274105057347020650726718708218532698226922713334553341917563684554060690955940546547375694062191969031637717969515405465755563423187538857961031058168777678168281342525484864733337812472523125954357451719415555396567026260061228425002916686397076688311977358310739663402819221692609637091021134124801936187929203131951869307830280630428123770955074694561282029784581411818446184034773876852974874776149864591063289032293593200390505172188845023328172563444054037112168775127864944239436370845773789779570751635647894959675498819682868240627708791631045673649022403252333248085246810170864684518708842209805835926425811654208219567416730031634896547033946121239991875491748599527257800376787208552440194334132853926672606791033884305717376004973669543171973004845448705315887797526880534404125592070608836376115624177651545499374729854942091536596721297311628454498053346680046480197479747241431151033310745854768480396397535431325615885180003249864432155179737060124201085652341361209464308891188492998785368499131064973096556377125829298800277337306774228269054111007393415718784108460123875653980171775569225409877633797288401669170788198241563653375266095285204712239566550791549335808556829727976639032219811331589367302940669204614133187272549720299027483492024079790728462288450637677703028008763586392093772254581384066316921082124043953353839313417153539933022859585945284911810599538415292430236927321560617114259037082554445481617872771037734835056525838480583594817683850562317730219731998204004176795586700825193676240862583277871490131796196001081734731862850585832719207984210999156427624398119595147985723121934871155401339402135986510256214344178187681717847748970690289149737420765504148442917113032697480041399426709301676665515072673590347686494006124338660924439829284764955395958275839785702825250601128325369752495470211716728049846625947982269854821611317876319144428355999599426285878214920274656773308304002940017736118194208682561841404381612232125770852399390873719319804001681762078227257014362196606216310690183528254958885101647969987921609935428084711618922891723226716552975261558912492707065933515793778556683864082847810987860983962736906956162692929284665795537973094567591630059185342061903294440618267983140455164004899861617377534269092423792040683220668232927507231527863606557365061031631800350036520585851862021286588697231335646055454781841455697567583923416416547203902697875211552201286204435701333492930386480779425517593418705739233836869553553619821040515676882882386258646616057159705748540485242957707364147663508279107867856976804850026319087841384239583991727426724019872791107711130843990038827916768438319083218899695864210317356419695613099842429128064357037230820498150295216440566240456480507486871053487329507923657629403295269057491366890783410986678939674173995328964617717261233514031990211737749947818493107206514963991723426302037910306516025504143904920240919360957752162122310523035291335281890100557905106593482953980123179615453659153895363498588645974039417715517188334508582681271026076317364396189533093217722383303900284611667061550641905198319110007181604521955282508096206535987788950406485746781605837679704934397634045409665446160159721865011379480079027653607140773277046925717683392221258700084377853029604019568953204489205699068114741185690807987107617183462668258408430583410353498027899455544420757288842106494048665480500661241932178143654541555069427758080120875960655145414481638725719373951593075180409612993347085772261421507616591904424327160965476606341652093744802109888705592500455272260173965622368615988740673954113325995663366542115853659279026231798659471344904193432600223398776840879004269927387586100247446257878436553295012902993995294186117146444835592996941752972553090794929712487535392309520229178349857031638553949817141338874865026293887318660021317104007685387015086861731044812535953475102515927987304828114898097670926676604995169650804121281930639993191806462107390835963455772231331524308516219722395387573772313435258286606823388106457544420861864753654559172848498916156318309342492348207488063267999026672308570502060565433068259963879343879564332629139374237887716756146465761445812783799627886418464417888814428225445061469498924279980270130332065026591124375071142225479859059184763387750810193364103008626467857522778275577792901783446500211465085413203868443519105525550371766645225920668831406592079437974406174338905815495285353633164065159471814753638532190372212973717250412302331675927142432412584555326832581675279924552685882497416150653311937729648921530617838685030180774359516361354818058561398209782920344828433542154797347688953956718956773854952907539596406258798970621644067975814762306157894685984868703055619366152803963777207864743125274228787049036016642946776269245089992293107872447026497420746831514637047761850518281744567358687589874246671199747473617463782633428510945196934218085090834044192169233305897819749816242261817230560278931663281857305705700881303238907067059387152418546918978953530299665577460251273999053912426419175391864379929283164758744151363645367423890375954228142004376256296968508106676224959610736124358472267298766989804730035755942452875152045167835237594914264762229826024523665920801173349416117873409843012459256042517852624961999683034157711568480861211328520387287389118926116211972736180064708787843948666182627569555826492820736588825510199551139965327881669787749356059499334149894739745213846326557043081365269004632458297019282162626845401832857121928495402266156449490564569711301610281321442788909322180081746408946197029955000037348689302740678100375342004622705767556657502805249969023221846510577960838746959799335925993297229391886422603540427670457171686020107474236727707411908128486897818538820013955458728524099628396746753617808775450798302940943676017927683542716565054083893417693495194633307622785921676119200020419614135236504219447439141772559674866230654703815531926757209830113746665740417722738556585799773272954434803274660279991109195618055301684995395287561972383566878995077616063049204536496824365562219374246170049194192508328580278836613713420401530006066615158470651791271789733289205943106357109922400375791126708285478343833049172070217833248615065068217785177936093218782705059842076604100036710859079892161367208621556175524360075801390577930671139334880573061522394443511221873070403541058172015295388740357106265880923916280147294517932062495131235737673704936355959320036018582030596110729702533577271292780042955599260052138426375071496406176196881913512051968182200410171999351179542976332017950719381554517216659124156212333522070764666161976609849870770110965426623441682397306072563211594477315065151359886348162853936566442243721083479982415678459246333609547704836481226490904370858272792171666092680573217959249025069739116795227188309355133314725166654201921151446945786404170826170625678928131292111711135130514512623472001911684615730795353749784840458280379929027871897755932465032938838413411759973376328549154358863041765066628471657043136647355348571350451059920527208961446909525163193204632842433021815507209246525639083631494818779020076708799292414978828957102090418162941563625934084751503987278734271864601627501138481012213035404976159330981374288428575134167086285372946781888909381756989179598685012404898142484308015344161305758870312203707062651166250605732192690732773431535189367424121033074077392428932010758068374245335828918572485404985260845616041689418910528578552748221440171392285429917960351487130590309607361154000584810672539553750626710879901322611989431125933719357454350122576576994236914474473690585549806834264660122340508297330800022961770068808235234803959384212257227312387964270977939187461810777811136244322550242493048943634364077863453802053807791946377695228589445131521673517088253923931101760806444274542404865150998713587128014400795047057533726545187075359139137012371577293678391456480843495468622082606948002895376251784810206185535235603069994186696785622337278670279361082190885205519750965856113156708331969502968045690644511098231532235289732885750799576184748643951537390954437020880261406988040400058984697452972765295806718003845146898151186057644933133141887688673077959287796969038146172486492370535772645943144886279500747825245350609691112659267048062978923570226561277034193563895934714597099315068849761780012128489070114983254736043471415177429095346480413387709539603556798819437925487648558977956779482844390936471896835814180910749425704437682712036577170867626554432994788198217207286583741838658067671881010132516865283498540526196786749846251887062913533255013797358727034522218377696793335102107243237202944609741780068773636219450568998314445645363263125066480106259902262219599733800689718145917344239086552014764496337405717687692077344401675751937117397140567667606040612301987419705305914582768449137020422266149027288965162117814619670284533455280507826329141817608438050620126743395832767769045985131424714550420792693244236590227023234566090486172935765792624073911357927149630335821587189103828526359657027997861982254205236721167368691203128366293475489481643594005933873624292894069183213069493138378367417706271947505356192274840110222772295902392579328308112810077548297695136690857472692186361306316708904234886033195291732669278499191733210541046433583956440411618500890500734275171823874410023231884453247403218044634644344222922167717387140954302768026745732656713553987842557216144139229921576554881899032276023491873639956900407439398239417270836559246809706940537502707437215629430193822035607458552237430263939637276902200249475561402428851241539999698290210801088859282332218123374509389378301734692046771614283828966381117056945750725578089104405453313627434499174893339616798414980636150871903727541004096986836727989844400124901977260621288989694274778594955183573689101948577955352112886095388458643879295192878625535243828699145840935857269069122891557628912549834660623717559373725985123305558629566927080880957849506159183357618366051897327684460133044201224107987418987334287717715178499721900756946469426665923574421863864636623616805071842607083783413230780407977968853634876715777393917941450512041035995577267792433540176441126903307883938927802240557474364027593437923894058925180632353543074820167429382738436124964292100421857113353206999160755182516419961395292402768162751199808319193884571828492587909304286840429439405656913015164086257166473480999448623914273615192495944544359300763937210091099305041380975431011466215618984445346378666712876945011238755030719368832858461739028775763699511742287271428150207988004341440765083110234137955023339973131684951886796612105554635266274990408133452183779419984762202231346687864229172651252405575103827993422110753421962567155272421221031564867988378763146456517110270218466624460515781626782531729437790397994488941949786123846554221428089592810688778088522157097106175905964176239929847866128451217416701695158817561886292898061188605307978565929702774412860143516671536894886468106078700491721261707006888290602903378411384733154744937537408908578832958076111367587462640637519396445730127852152518357851572677319734660043300636120976730798752632472023968193658251837698515228313688555846358139368260559539556888921575272467841289005801662110510305591318172185944157890155347825604105837608055962533116317989220074426369221254376680092762672217615245161807944530829778197858539513485424473880191136543055169806657785320564691738574355397388430673382609574967106306336332281536514893075802800237277105135587838374591257066596461695224981868029006421228130375992446362843772179250839103681725516913844349588640480237415274973945712230363121713608615968607982067600542931711025365025578878955403740776537310875648896787591872202885350077680752359378319158276623662126892785208707038171245580044924915427370168542199112666493589438590669141268137847481817768290074372389802281235509997688758069785007125920811344232960881132938383687253660661173837403968339894677183384776096337091537923786503424389873467206947490903283521892288937918383864073379770002197710769000216351153336795104918919543143922576360977756092028267729580534530901833202516888444625810753794834750688347368584636612723538300326252634154927364042908275996612446114390074008111031241804099744090780199919996453966620104998455975455734922109487669041981547786900758338345158049920816279775004270048546865821131123034602668450580824641584464417028491517432219349896928580206979320213654879600342101790365872885478733382979562227322366427907189158441368633034452589088631406636103511201710512784427428542468062130100317485521493828736518480860393579549922784899012774802725276882354335441501255281607287388366416448455853855142186484232875701594040630860853292757154882625044269245333634750663467919674166559943203100105494054174696566655517091326522401305973662004212164756295640486476454194823773582724082625296041195137022480711212836297052221726070952458780686632970432342671302415324179280587115084575719337827362288912876215592249971044788868632755090060904068560828206078399445313566348423667299907261958071370915871232844621212581320393193664035592271250396354018576226894598502223779820504389678352019108030905306217097367210120941718733772636972276630743976892135492726250082782330562200328213036107963461209099908707850965532076077256151688744233400667087611916778423166025651163215619576269821821885490460280308791919177601330589261957549135977286722154470864536160977259745162277891086195000611151988885596579745522309498392716699101065073775658209345432927920273333866953663112426444133607616379324052506805092921390768769364214662056761069710267504674926715126611819428930796760470788467203695966471570282170083626868896547427018372099185232597184891684267827462129029665533312656695056861045714961728959115705507529896310508600425166967727705985231991933068612633858178270205342873607099538967569674013990211291174850093082575486497745338717799809872001137842034018507389304754069088257471352492923910569618963957527126196410596185718503223291258010031002512352656997124386534019763293902190350627927713174949772072272119074231848441938196653492379342994573483742926596814231295767555353951691857692492523268355014431803323266139410280818771854363182580941028014464908369077754420562024172852860805796540605832567961891301887823953076254552374806526945516194240379313751783687018644359481231387935749657401292964343795054531444612137065301999761040454781979828981601379708216387787315969293929620683419869621388070101450113850511164872840094199765976325313472183392104374389900457322380687457460636164982176793691451211141614506679297002630328184656609392040110691133412331403542857728921074412198454222181565296856950328910356506856524323742595092071812201786371233784683176982775973089813421384003181733667583815451898702939866084608970315011170909336298355442827347385301640001622872501917071989437304872452691426698262897295868353516777407752803215331070744996393480338716429819622706618460634929769039646473513099684788739527412371883077231182772789449371415865041381174392039943304083233714650283206268962139192248196711667058058847999793975517659407336620711895783150758046227047029836935274938402872865760051122706116607883352790083282299050112914919016333586937679328900831614646039576456391111323430290727048170595997169710716314258138637892603826488689435080302710557620772119030924019851746201304388185199990456845657904071227208302125490676237531928776312674724580291016752407472714085808821834619387503901910751091825807959795703977324458223940809070079185528514766711607788587147157477119225068889721741901104468450342895118098318616834574746809467078810329658341639020740686217741543652316165543794236466278613415954793761982531921897469408700723471888060979765344328533170751421778586752483720404987892663436896078465971745096903827746099457263564005891282127290320789949487364272560323141552518685441698948589780851591505792556572388946304437855084315490028258439393723821152990663995127869547473614462173541705735678489602375883131503060594971289964194269461611066192251517141808257051683555363168109308728411927702328519061568167733821420472480801449322951773477208677924790248967696635207642686460025881618492049641253819295426735765300382336264169639701737566487275614521597708715639409220526966194579507742104383286789250495877660817896786217937286399699211327756214999392771258233926390351426345784696110034911358180970013076926192753706543186981043715647469323174655587167545547200505718210258521093844500323903151850773157271090176993478404925925126021804308430847918812298271195238324404569731304630346873118844419054722657112463919033329878951654488351837206827889034450208518326563719140636306767371622215445346121255636735556046874559493754602692666759955102442094218770588726340507265154020418659199795209846468272182394055199467437372460273149334912079289709364750248287768294318313399656165282486019845191412370799494312593888488066937515644346338042213962072608218257226270993393846381274997228007899136986253259169860316142248186801077990801528942435348895184262773168936303222160235273367480699301253865972525889296271083162276771432140350378313974539500485058238590571964334948664553202557334647301985532338038497476926833454399668172550916391382906112273942249059853336557478858894037829299252782897538272875344927253042197989533337654333461153459884603526928813663016503249914944248080691084358093205224572028769574720605024836847730481109109858683421180767057736269824985988517983314079990416050396221065078287275410124012227910461974885752454914357616983577625878767245371517904878049820434898339277676076061863322497990264742249162806638704261292401365905240913945788829145635748886121163836224312328418025089496934800539458192318103944409012689994004544553388041979118408849039607353294275214905475695049456761367990126378230507693204476926019973808301921063671214974135715581117578831540671650532443395910365038636338071054561196150080798155447808820718031491814119651587605013230535877356118621498695453243365210332012862080656191322652041813068182771647899266364306261633061451571187072744252114037441626726709200527183452140659250494547563846847769937160056572647980978386048030908615759888810549454635184876315247670087324026970172003906254238956090033492446985833969734147791896537236375464186482902250664494619308989390570342685887783061161572199753121112687527524935703946521789654547736500253797455929678851957144525727030020364735943963616810778880338952491713347707448859061703745553097112764927067763676245710706440134621342689062623863728793376855772723113672652384983279244899344059502936459800743698598188488234714980420872105888265058351584801346330075013570084316223114728167212480394736641526367392006675082615110279872517729035905585866899838462229336286894940201728243347099381603071754391599558237842108443149782792629804081314966726315298213968288401460846026060008924089768738274254406281405089985493027240295772714218829474305430645420066894401857899741237254704344946803453276231958686339487835798242181566179605743727687223930737114011296558402971541355130745708188458310075771419679295418623542621022150805614496835442553348831233054144489278329964786971545172587548235004148076329476662756909218719339033953047752337034876045944095872377415495777342289646533744921245835627419519283180941052004130383094026439569950884864029094739878317597847577065680228925429039494452967198227225113765936710257441656219392501825376775950589291300858813360946204125126085728465558968583247701691861271252022885443934934498880635709080740554001946453487632926175335589896446757910762268675297311496324812504974941548342903727364778104490075716784367117226256938622269543897569609586929832265807114475117717140075845192338390575113814514791722949335539494023631275407428579609008285001665093064739324455153095971480015324871684336150061052299094685103734023185124624530890916366513063291582317014347583885787928609511750446511882924060526581931570004871422722895725977098026759604945419527297197680098569941673868074954078044933834434963333615051210302231518499401757950238832371314128817033159367037268554111405448622798396063191583430836103646456798679315036587003329266109365129633472890022259041096237667715095892729621626009541520264214600815199904819274347737923064637502572256767582135070523966837758784509536968659954555325286809271583886173049775553940207891793333179520747568331458537806695180555493162593952522138319139681160719056915451153531715486183641523269146458616158548933460625225000043251190760108443974668125317091878416703879312588279847229836610862463670446995886334986246220806402421277530013035440581769654756838637220808253562329126187288962018499636467852892403397026946280281506041467324641992703108205169664759185552127242721326235235169176569809992834815112560805650229123276045744786788777535005730509436496174119630703547530691133103599067981543246896509968978473797868134298500526040935162383493903502495195852678797499274683580878890882577769351627955590637798963165551487004515124010698587279261410285722258606376290658348516028117727145297833046212101433664867359738502818728702999703352405804145969616973445264101689845809933513475161426322764861697344817166037288868028794392690196582319071366608056792452289058735776721829171372437459233474327798494558812252304284769246054697406109024287717736153153879632601263375654374259871328038237065352362005532522503259646153610588467914417240741333310387378964971388074400738466546123725482840669598324700911719031689225145912495310006095170797988497929972010438910234097619319630298383320705796293560705902131904647198015823625279389861950468124265681332723181286023178522366623976597092537357616014302829633944712259635449655598478302431638447518073218514111320908778623115853545226515613757934732094255189184014740894563460843381956626599475274269627684302736304151844368235742314996218941532000289189706605808891223228579644865471642470976938941063118007733767512824399722861698650022923241441679446458381708174039401571627190574480442621335419680451497468451588516685948674303962885278795967450988174048597930434476723000142036727903656586558785643471116920920419888427559630370217006418640767671169527411277170841655204841841312180524227311195601442110974556111572841311430058073565349769887498363159822722931720571752299903338120869600436615649106373683988785178070306896553183766146483561940601448770160717514805390488223288648250440258210532961153568836377410203846907761276980889727018668694433526211229918871684928313884050232153162608499684781710572547365362065631131842885089408256237353209034889063456495290110060268302942406252836645033355546144804568149427008237682734080876571823721517772893070996671565689167525039066194203954614537830159365717916770853929544477252058741374883571691027413419630741871505129696396407190019311421294167912532495693090792239357129885845422549788208399640391292108223495444160416878981271578708912322382681369667562635296488018375196340581009849080260373905449602071015785889624419325680245610199837926602448925409220015704035945868534379851224593395226056674609677293918285826832690824601633575067134832475514534003097215859041593339341848970307691985507166928852473712880142031533756341659972243614871019140225976565179469266627250186098726266315883209250527046242658702151724076421592304764698020365511183755527844270959677774101591531252956828881422504817273909572200505055411740197298506401604041487033483252438256557973129286868681397161016543803284017636492595981806555546156955583756068011392184982515010348973952780082895559320913610414829721079259131300529187852525261771696120502370006556906053671047672867334956116078625197933132365244934872696278099899294343133119930327860023281185582864895240037639505689266229582555467758427869080184696115901385207024172747899936978379741001050319128631996723652920894135756111134008344430669662848557994476932527196406386715707439252948665731066109864094227177883771606319755759392095309811425202626606688195162564956361226645846185478807269212431911235630305053323291004897936206397044812203278753023013811676254353217571362824562667711854690451026323053496484525795163909296175631620230900399260103096269943453431678050895256756103053188676636573852223335257904351177811597779315827251025988512768659141338870707531395032867308503162695847870607592647925003789106658133098033640370660347121988827302777804628342686293582104777908495370460375297518875643685734270062009428781424760474385408643184426663350748863603134367426177622808975215407426720181592027968029006195079751823034927355205093259902436372842839372991227843218905384214409426608926837296330114393923298747420670347108400890823077089028650910789335486441873031531419644469988439569192026944468560882135357001542957592261924356262397539291779421540960002354934234993982039924547270875047670280672972566000841220005399246095434121827758870694677179995386327288745902959927828139442367629423190038381596925800056832147960591693276308668695525891076275116318764816042647953194161689944448438812542801533985410901848834050363313750361758919711666212545565612767276638103038274484975175356740401191294512900946594730644618758363913694464524116374650985844203967825320449549688440819102387311706070032322248157869634905640089512815228197790895357746950474313361274015614006917086651967666690694672814896173088151774017978866872734560668528253812888048703103163931788149017118538257425751876225121289500686098289265885727460600900898151514676515595725355308525925559884627263646148180608645828219301749630484662918422234358147257913124366231297612469275613020091656705410040182988178707699388994975555142571823124215641699545598194675834079870425733957611127564864804987581311698258616304970401225104435511156777800308686494188651362449754768958309144161537293250701213787736342829567145308624308498590870156052860766184030279573434165453113887861051226715418378524078319022000848380089747726953730808066264991513511467432787254239404417946223953206440375524650187285451529523530175367388481733676612352861691741393685652897984573806691600646338801350999507972086729991331139930931543304569133909736637531198141745255386982140778692232237963155532105968413256985991904150141557203361905797070925822546893039422700356646715509120173624898608651772832187591258063180594091233643623222893730099701637519158658703984692311543305869150958935365670193296659548401775335137355043347178820449415367971426316232698252043617718602398406093490850848945531355330005867940794991696179370511389213998073679506394181150541294933718756283015750956443236579540803855531319198347344706989528183332212542828714432400507765213193467110545808395809765673699529259321916606382635700371123149084311269518071469023593300512079809458662657715173574747907525336739122445283614821693582910452239352131097759027638041014128861480017029230546706511992811917457711615718241310816160486676956667589071194920710213446501489167781683024468749411988875500953985208006294630673831022681135890351426670305054960228077113602435496697954579232171141202326370538252994934793163531910924913290493494109451314610711751687113124234377792820287937712623936591182492488696603355694248942195992468005561622716417333340296136078950860593959321005463094884327855474372396475943686545729171182968590869419330795685743645130030678462311601726612861881388505106009373446659610693963928446939228076210615286860616036181977993327186720748154380824490597535557478169549491330823139808143050158449566763622441922534444245694298428660060662695353890412196211351260439419238331176631688487523494414970086932696076802535256412160510344277945181889258537982978328790063203102456138249686539930567908505033248227726316508166970564320207081336206755182275817251738273516273088095889384758875575686107051626869497663608020892268782509405808792677436177913736975855829535844363049306855576118596551254591333504165552949419422913494430542962759184964729444995513439259687512021653803262637188302709417580068552280399517024226878520062623755270132798297925438838172244067001836581228819628805936760231005812929943347206191140899506359994809445145612986979364498138466884097451953678744340246697178756238667262818220909994799319375427496899672205200872165755800456625148884113045809465001606148747956180241496067456369127465147734406043495817083728166654695954492341019371011339299355377480936041220989991398142102776686961632064172331926314884134492393549763837744085016958983217571623433675574922287201262597376231340017540390692310588678253429210908882428737598191791667652565486423237700918344700236712507989736414121854443613689892792070785989256377126356699814276352597714309909637468373896602824328448145061788998069814302598430269545795691687767956968455681142840689764646098929375262220439918210087297263647944726892693464033508437043521139289012939204359390159735191781074050934962004818397570297728719017547233515965214498434177955426233523143131691816532490173574367548623119865994336294766071004163535752046691603420135993833391371906275679021932623926984504025673283525298945873685160953304457688356936965612174003911405972823828285955448917621397985916270739833598798459128046623445838687640524468147871869961971742769978854357100915313564676002042778080119709452651691069443801361128047400049491801745265311086620746663759838903139820215673878878372763914439694930792180748237136109472750912682107125225778059009131453191625152731415209649220085703150300468414265125402429330618113718316148850175317541914198911660681205346344454993526218034289947948062419184193731345766397529637331062639201123529145311040762092393781981670029096892534307869976248032848325362220825923081551249598310491636823115855984506974262605735017779120962954451733395335037334564918838401161421372327682621524646900350720543934728820401923116931097616183938357683181360941091586359013527027564365379564352501833363428142437585408781171977472116962141436837015087539908898716494357072760709960502844034123989228236875276229301344662058497668968901398271399607051847864535893039188253274285080310861862886433001500647330733576372808587388414089525622007600934725559692227836282476689390740049750592139205280530096180794671976750476553030898321730463548131909355186906330816079519715692008616214781345293190511712137204703976867361645951982863937560475642959647750996301502131451963087450733925878123871411375001685908276609910266408373870260338174640304582032627569443055937400439559212083806457216906277655351728199387714900952639382316113451272206868876999840909603259557887613603460452872234792463788890469907687844809383586605029762693138168505663598378709765861816100873070783705807902403955706678531054994431344748875902306479644476508824557060045731780702618408608247901852834400094636586682781185732936075956948063535910535964744626239408157760368454963955112631526133817376431616975581452132693998979476083500118236587476242578851040268441704748363067140583585573942864347199568852743260041045197114080244399788103354916485914027427167684130872672272116250420931989607166433051642954780858798758391958194136214809630076705791518353878284898182760938182626046601488702241026881672857438350059849828535531062085520240477118747853843052263032485001492335004683776321970399842837717725428925243797769438521555179489190947270190252241454469053053556040476235532537557386522460629505133572019429827371331278310849755293022280958093165556420011247301443084318851224690274140732933153492343482834801148186152531370193969567306621872830476119219499958514654060126486693881429171141909035259422949016941337734817234784870560902911168783303690976282719110333294402210435171448213538509777343638941272995849021722122696625213598932377306249813521976083946595933569192873784358780665119383938135477885165414619195818248612449240618012680286528641425776245206356577987392455593477315265167606496380476517053251828631106338724614307929665811639347228269543908186982991168914975893926493572573292654907970060988565199870975988771739480573844713164057990107768119023253926230591431165659917398533961041016119912777292874842128410151175882047990067334674978175562508222817518112486816621045955065329035618100997453821378493369739525894614143351219120005890746259857931421077118089359161483912891168668822911782561184399488109353134125060669496355951684175416018886169924943297596333239725183810668424635378167512046504947699387914848993876373758054522324229314720479220314031313103800676899796897433074483825151719683768640371008378723667563982701170345015495672526053760637867520218808358477781311582869053184850958381231072209016745340552736104027127688864412413965489271022747948057017453620835940648317338078667048490365257499983244920923957027547424759055123058541441340526129404343687116901747083990867745430722101513654516072643326869491874585937789439390393426724568670379326691797061909739230269910445632297659466756598357383936196884560834712813136609091777291448138947230154882858853175167540057320861662808391533656364346665334448423701897484278629659080717436911279950336686965156628654219137862816040542675453028936506720499811114012518557591337015673795984541706531043918828361808931514931781521615653921837629746182604546205697504769736052989169696078502543069986583306972630421716223661842127328948526639924168723613853176388369573490949117134280934801019264529802963788128122398024368081060694505784675312530881760252510474217951014902190745081398886743527647159730277022953515906914375967273281963198297414725623933825440193328991877717770998751415285553618709006260061871445170411249853925491028713782899920198740112742597903107488975157613632918999762842149425232973301175565856351543765354509552837426705212814311465400674558287465002009541064066278005488931879038102376075769473000888221684063622968904494739149268687655542732683273223674135146365538808610408891802049508345093444321633389919313455194814950562773538923851092673917111505075609140330283985301118065138287387509337798093179487741169970201137079979125523818354524602930063202025211833023053913353318369303332143571186285753532944322360430168364611091924303928801322804257573032117844035664892979670235976234338093865804011191117481638876327125904126480488472105925020895519589643283598531373210517433140248849713771340821034051518325339686033717076931467734721951921982459980078278300459086090575765771521915044691067500681104574204342441664327613942419559235155735632399784238992974059014640513594782378959677716700321586278544058855925981493319834499133841988123599408362688141895376059820882882791067676409610904989572137280337864517387914776069668948799935158826167462057800265106810142685352459083774312109403055506149610668788742637253154335523976871283481954089050600208852951359445684700540010643213303711102182139952238276731267913899729387294668091786690842002118334887885120761407725145699768967790014765923763048898708902180067150726372674641447273855620074192372200146904022152449539514695999622867246666708012040872523173743579025274100225576605687691319392471024574715433732212141663729983828659373499085426302038376547289490602402912380367202673731444752015974268062445207060103882157387289058788067982336606169318564984288335562249090779968580308220656829197108077217288943813724569044240496488844071961973222385874974873025548119331396941817008430722307325776862425010294006718049929415549030949922275771929127459264839344599603868159038388391285962734957696266392917400149632778604168414869888988831284268834773672618638044500688652447682120861737241504759083740097618091967912869015689784498956779909391428430748564396142878167928797816222665510933735709512325209344085479391635456363028807983605137687111643182288098991525601053927290945969830812174804440370204219151642838622268772509101157108278900915880295193076711120290246601661333355009330376203637007508647509870270998546581273740663897072906311399354176336437115173772461229638609019407589322159150506228589130760704286937419750946657156545165146601084292940899178186392663355473979241908572845411581292486916071038024906070510768023798297039170167810053117597658988132542320573736119101698332144047903902554963446200880887412323578432685035358224196717109156861960908438246935514194195969132772112632157754519795270154533167298905075870162539395506840766084686367067240256089337903416658084392152589436127143128580038699882296613897909601490066448081817012957782200207061122395075169043775671947861440973988520557682299271892241156602354168972840160289502922720731132374797870505303011988423104268995571682057433609863989609534718419797963679332394321292936552477259294221435750029728403493831919898966076847949721509794094194691041820729369014680449146477359155855251130837000652868600356137961353928954919457618205219844827233699871178976663159171382879403255299226770277080208053652574205323467004472691837128121708863957923169543619586339338646599895784124585901773207395016768017357759226037401285173754308758033235133121370265648410627196713979195342501566762617852280352093747906868870013631709919208635224192989015747135660908291289038009423654228773041646774711491947129533367530873401152758682591907541145606880528058426593216346238062066522915634804079550638188436637539707225216439727135747773594198845799696970868344257313340682179270405609145222326809825991322251648150921319375168153467237858150586521529468291899473151396880007994481188370856320949295352912734020196886016372730589083066564669281772173283058255326277837041449323140111961322908665709416993823231166435810402603934954507791694959339624074829955367316717341882051592832355878334137974979429609156977805434183140746918094362641841030582354516829051970093913051167332579600470966957606495304068934428175511134933532939197885156508341271593350333271384277829823447218276820236418730199818369813230955916580542972618867233287835498492133751253846522656815044502698458586761263913916021826792202299328559145343160093218319492886930101324643015618443188766797769461743010487135182726696044792648712406539362673682650016858880301386087857922015938165743895837008089534770802268756897499611832667354741458974174446544999467608712693021365313235877021091725875000975079160702220417736122904318653427399163330391390671644328131010755670032617387249634776876286885023154041085260414488651198495081859410904498335726506758295394489191860181038010955003041232132833310867369999496757443286353628940198325789302208972043205595217860057345090850462611109029239800891093929588077031206962971435651526654859973537628395720403763292686848705196834882033977864214122532105168102158000870095441936358915824187828752108773917565206261053588499643548369054807746772417136355679337517196697446206410149056430789177693736066612461648121932840918733191444750406335819760902004841662083318313601932886072170066084244111886181467912168224018668933304241838722535429663922972962700513081283333025656869423755663179151555981356352208079246501430905290329343557963257891175504253217752826749943448910956204954416496326378701440524911765794949719307749074367071807689541928885188608902669400089592163057422910530429482127018831557637333958608091330643375511877623707029260738825569150841291437458108493326289431916224851057874480638511721966323059538765922733531486961010246988692708756024466513855216727333860569529105955244944485238550102741859495392695671692553038147222883205734283232160098910096286113183069055173718091307804377745750134068564032128772704223172582152262583753065443242857929699436400625681422997568702699501696067139533206822183168307660914883213838245729019588415756814940609924446794173829509270847893557084357736074782414321251850945237421384147963991915774561791862141134662860875733010829362278807015621163215750832109528689253410824552749134598499523137825177888404200267402512226145079060370910479779841399967341652486561351512061295159846559168508318055972568209084881100606351129799741529825173194485156846563177365156956078340325938289244163249046012325320627444517804496816997182411778703050379731151592570186846928333657423960481924712137537644149921890028330587088693914865632192574591708543751538377406783427104193155234781541181784599792016129160239106777286274707600485674445329856967085818777922224161109111749058145590520049673860927565016140811189031108736812116098350895937651024948826841509939699487525937945831331725734017304954586677506176981724978272627441625396056840399107240802676636568755289712432098302328679121820135243155809890222154725153723959363199722311629231284661001996214816529555559186827767878107742077459895313299187913768481524799053965103924332108576996103401360575019762901496411241230423788960944334696990247215159733923330808247752803616362976730993910848835154056333294687281060782576387203265152598942325838182270566612323697506603981373977085945980215284441468285142096486672118549090583429389635076204964632522338950213067058835273662508796364816731087133810358497948268963914486946040903937038430501561213669349333385790368913278841528358257522564586565607700761994652838929916561726827690780073512520383855464997698575561370124732314157664441897136330587032967513231904131155185725074753053580974292827610022833309250321537348710738773547007617092434632924367258415700681101508177924239813760606069198999517549171627605832900933247404761864474080501285298655947666098066259398295792431199315532658952940764926686649708858229510418659955925580933634557728945618876971156597144049057380589005684278288768430304686182999853256764351024001234279433203732067686846570685959887377919908252841467334047041345249543810251201466141495479555288417206915232257315412658765195637451264387793272213604640130932775621155753744600236061290216686783489242531269613090096939303972998186761365181985412148476100283707619585357564454527898732773743680222227173921820254014374891801146037028219648937841673578963678997688693621820320788294510328953058426842917769317932471962444685247654697445908050019018364773215629503549529801632664247613948005823829621865600396464902813095981284242941232778819258650369134035715010791000484242017289208801656728544746445564757146256766735437370004716090751990285559338570130387891836469509224905985780009020974476774482947754346427690250384342931861328539876156715326551244837741396183740534985372274546327405916216762350852401600299224839017504602514027794073003426876651700728739244682391125609124820466640022647041312872983970644274913328162760329596537415508339490067886176119440275180144499114703812759413136318443484910497166136561715680733938588218042501466207116197813393118959668015630351432937589036469885390959833806310494328464701273073066661190186768846014253765381620068049754158084892082066897971980847586179480747256260561048642343821617714839158905761199270406786274077100873803121238549835635970992853821487582545388814566086880257585283315020738177360388269865620306372435297814160838289857789940634523399269631409123719500168280606209187825487565793623113490658308971997373955566223144271775640302246039107159249973065983832279789531875757196659984685234998286374653244393883324937337387664292726817987606923561909328422530032143410695213609709262246247106776903571058390523299655158850306250754111631297314575596518620015186954416620568372764718278944645949305894827858537969990697053650823650181834410312323323843115858791936346159760207891051767426113103938398251684378664243179063622601004299994240916700902448725754978813592310220323128407168565993578588837682949635732091486358858712352827990631462440632664597344725807604262854123873071124869160752491309945188169625269771275318968073138591883823736291825884900557186538265228343153915278581598208529985411619076092501126253236079441699298564368249085509154823885172066290417390988098068573255564079113402889279595289456673392943892630543697912941720469745451506623118938126439869526788573650809931445838718199434851132456907899653747238910623214676412778140749521755948415130771977772971820921572885174162507527939415535693448215264599377354402450881515516584056407399524601666947016387489568536795282253700828001080098358725967456582724828493548799325274286681026735432707484989121363531761201499675378771189222548337807801328736491910353938031724073497852547487086286230342058397193353197773231460931777083294264561988287642408416917779976735291568531761992610882346582591092164182104633213680518659670243802835384009181804269324096669556578967112510338993755865408219842394920589224187908374448367315594919929430625732077897581671178459931458116082419876665603922917443460407833019735249415002505529951275963406671387836386504599179999527657689270760308799695189028992880023410882597678117283428739480952007411687683992532637403634138046759051713042062177613959282291490299789042497489281907898670874747007819115413971351247262559667073366295980556711842251870064209066292491597771121159246783472094660402255369716558051542941769461311351640570033020458139895930104567366789924752188178688290427129738865000172454811505282636198705224799951282213919786173293583759352867861091339786933404962997758632198426479821783414762801988966901094493583273066153855726327306057080672393085970175313320675875567704022356738766768866366227911105166618700050318122748822939309017735909704257886328288894791032163216306967045274523846508293060767192604324268348252243532773476263447409981557707569286410499359528819594699919534851838200241840454450303159097478854460858311660679046245593911934357351263178956734896141895568858493889203613715586050995762475590433053385824635894362130356874893371872332640995021050832769606000376675205704204049344106934146522942960331254953092269035085186022344772762941676725873219879670287857269930768428272622217501718606138629192516584634982506833594529786896603249130089923161431178460111405697340905214530541125142355753848909595829567198779751122413841184390459172164518724954807646810377616323902018214672179368014606279989504107505899952991805475367046319198729749223451344899826625420460953899064042715185636160272253334549751139695265971069489485509819373938145054453763349720305045017654853068038991931843690839310429383149481199117848097143696640505906300475091950685388856207335092941496003814596928429461747456548860570237406310092014901796212659830424636929155404295786979011815206442329712722376044574487268313054045655521023211114538589767095087258268256158022572045670874210195634252693700258096524024162475828724757895280299154476641446834163457696284054355559822661590161304847357778075040407364705821309672190151591730810117738529851298843456864716480172647278599068247133729649590622901874656920513927165571918411045402521724344757701765670614714329374075312995412129874515293067009718645546853162587502722044892430673637036328291455651765286069444911814605087291682511295134726999742124546697925156806119104167567979798419901058502622200258788901133693154203105353301260689317365180534772621560735645814889338201558268871888084206740176311883500141474159603933153738189447347863307605670370018331768839131358912144804274970360632790265595586323058225151530655520018481926762027015249053592995943143347896810345684834704084388447457910205481631341385730513595218927929855235432719374032058576954777498050588224277281847703040195875784710686570969652726763930689416869637276078893134423877918103923361873783378539174686804053809181069406175347195911393576607075509109939968910878247236563544945377238333304843396389623755442086312684897046148917585594605992457944672518373614307195009862563898114266456163371545517562247173159257062562349097658613442205778659134658464443285917509700205845531404177888196170404818420266958425274584981997262757899713250121919864756460086675375227939922322336662101289490102824799448441258751810538617282251930864283256148235548789575735863824791906671327842393079969311390284177469507265659649289679674158290382540905475081252612091209033316034525252811097455534740471737710069625047223628636983463578098579876891913344982632323063074518573982334052208088795218004573450882098553368722231652289974441592613026198876509417484952783935555726308776713772329684719185207878056014252076872038235916227470099051931449259289790134013814950435326324636816577462433498306752025393813114603601597100045558020530317959512889638355525825472211833472836922462273619601683710014062397293691767704178241377511523287768257404727444659685452397283685512689211200824678897900866634028261899601124423735676873907881612994796222376816362723100259181878745652182305100686793415380323855292748556562986597156952171230112120467165351613249452743428354142921343402994023938801327005041870958030200402731515096549184930093385992446130412171531636339031377084208169466132895590410136068748410725617548233826181925286892466981534174054466606306879623799262975404699754869793887210480491934521849923076022963792578502458723085171687803247733492355149490327740521352829898682202223914248005987604375937526844108607854527585216948502157112940140486706903878584891621950047394375725979872060501543236936049281625771071792081637051337758813819552524585449467127621313922727786501660847239381855750904079669528352152428508117952212133873368368093059598365150034010570055319811765499013897729491379892595300548748955698691350776832742444683191657026825943713725345841100338038408662445306750445718089631545518396027791963973902061295773720865828598990205766721828653940488256332047413774480471232758434826736414039295818518717988059793735352735383129038207405363368129491813486286190257362146579972107026527953896219343502960225771725123592158551074598503717608415058664156874337243142439044425472963929777249788483390541697097595819617894212509348328262782815678403982837960880918216260247135756808330604357627839940714217162264151937348246714911784932527415026616076051581659380103726069923324830382839511625000940199369471191745448527090091432422546202414584252890192038693019820267672009479216880588010361556837163965763287199228733757266850163341017034359612118260229883979640245059237624055844888152693148552599637061259671257485340383909581294587815320625206315946023844781830192117069709842149580934724155602341769483203988948371823947641201697414847447584804346318661298554161236358113486344136609258054682140464176079091768725606802132074553783032057582822997172393627375976271938491034393984672234644110741326308651946224434975431503096012955826800180360783255028532925730347256755081925160878180954075759936467521824034628046635539148049494211625909219177730922074958480250406579640166134052728661545601491396029146417317972353387656256889556474840612523304354154087657282536802419746020629284640497542069235679748324232615076067250768519639121275162347601867029921305688551692336570713308478475765515850067799642804595754564899966359394221607265249862123043608568446960573413200905573377377054669560375675213157981561206003658996247171628980452558269009392246922952053247718393452219865453644397005371441099851470510077443355119656641275434305157733775628525954367440036874873359828309640948151406896848801566650000201053319701456130664172511809692598343690492644818387179039298831088226244501832288366111552037303378491688314363072165512129646639791374437318113506583339025014398626409422990082860584623702833767212204877366974928106654743577359520024883952967261089202654906686754265970133201792168707864604814698318019304095094571055708037140738488241648359271157092215511824143486595612133257138091660087292584782957175336164170199054449325968410526333146461911144679225572965756991757531508478662097643934589340603842830699665067223967314287931705488138988935711248534184295704885015039034921741287493384589469694938048169493517369344033690566874109684238187850785208162183551028695373308495861359954078328782778218539898906455960242193573104261497059951687378848232541621442762036577289373884056405687772461473020174187377644665296450054740600783920856943535701560062714051367216392007141544831688935581295571597756154107581888815911613173240815448974238074677106583813651181791112287035622236337348732418135909798543874277413049058810294047119178345578751887420274977149743601371521321872590300502040563755692076205368151108940695754850123445723601394057695326383630543869744694551473309151498655496062062307482286294668353616878525381219159623546062338252714346361223080161583981012658215298621406242264330043066789123893026039005601138512410175897455939418795723358766892316207300872034595381741069102849675934682682429424269891301381458761068244429262765620945538498165775591688245121247498040998288309417403657186155199982062094050981813978563081867640924693779704213468521339298477259179997552226466215737575214732746930280760375843604311614608574547113870156153305014317710632452502854463101849135001003397910672671151154979122128404413350309019054646074193314022975541639378407752914664880890964073950385089186388681314759993562813917309600535302782966240665403874621613155231091373261632813100345710601245098281733460689048186317256550852789836840201375038485117544371266323211152496538564814774698329681707325851993880907888670474689669918979613159825339347636893902911879487460587152950502289260758988184326268136654356952243629216099948228152737115371065382697693886971933937133098626816464226253138545874239800695709965828263779329209133820113686184224104009630850729274408583616766021928989713185207882400226314186700061252116808577938490100756894000427929778337983674337919489822164543628906642235182458148810306530231137684637782774334420899959785622436020014234633864011719161855081622370521906199171530942658971486093245426212839346206956587151614409206820808680226255047997989034137550942063270789715606239899969116311269604851193317026218264097657020078416935000382915614938556932926885075832895382340927830863547873394250787713970923153950480517940555276865435861208412699568815090249247993588282461513402613646061516867486492035704037068777976523668849430414084467313263530551765486929678495890696247215335256412285025359492737706270500800467002695715963619888863647246757104947213987259865394283211942617196975285693461000269430661009885150988895074298624133742089957295019606866474520040173866279684113065690226170064489593700206367703698682627128952413564789791588909478314382450420108212086251192977876262413134031164131125087147683245436326101042799596509097008883267850258678706992581501945489670442490111984195558003338570747311985661189283057311678410651989890475550939308006364506059353373213870324186246010015930524920701316708765503772070626398580941204391912358081385085798212590839984807145634874613135532860026597178111926076942841015419135172220087246236302010706741251947831773573352395263609240075137182987147732280064176838242916816452457400308756112505598262311762794767275529777212830594520467699775170984268910798773944908401571544044831772307385560622877348363122237066880786611433512990278045105733831197166934339126821751238180426226937194934942712734939360020411592422228741488622659780883264401995570499651451365188212570865266403889542198694661851521091242476919959859893012570631273843158036994268980655970782225819270605156291516719217954752939623548347374646951491952491103052450056644925685346997942268780127479058922439826378384461455485769922828260003232912347723515585456743201278057604405526964267790600736252542105210729062189847243513733262579741526870255782907880224103252134891382399677752855861879783625014893501765318801340121052889185701257406042723755605260941097685411111368051717156787989381763926917009306570874158512530653316291808709292754816580296064925474794424585037109661766526007573521495963379987103648156155565548633960239968746615692628031955297394788590442282244162366716609100227251546418488794253327707996480898515728411505394872415319180214220770289219619576903873517912110856168985565608511548918754703413217331335924503320377990850603008286748901159742939085357469096782764487927106404943739729774988859348656755894105284233913622478863353063598319286839135489520672571642148900380277035182610870121538046354269373475924591220629436848962442172745421428573351413084913831476340449786299835392253342330917334141215159631091717763752663432516789388247306305660919818444872461202361510729155402742768552016847565353767671848077042611650799392373167779628921082523402458251082810893079272281020322537049601665516491908110013516706259495609514697181774143257116551179976207762346677222421130459958882571722332026543885830858307999751962123755605517090111869622011078074168758498000366291474257678035360137589623294929392542359688834989284043164048948688693874044124280620898869577949532289925187854712143616732907335303214346843926632052643671477597543651127703289511257729687337752905723335437162202346335651989779699279442944824885526056070617518735755975329293644286429427388577617437071471467618566109483295462670225766139702229247532854611215414796792095925244603447543380631543472429223107758753448103886388023790287431360655912300714268698695612464334689798116551938079929981603659848918554749065053106092952088113336128471677298822848981402315710743249085269929089509095283841250421905344887502049034867859605632545626798493314408210821265664306678598208838907528199202534513540836450996611980335368710513902392004088898709674392026099250775387039979107298718763106867043703085262616476702519712983227016919046378877213648765258038631679469616426995156838052575893359187103102858079334332472357648215553994066727646792737841247740862807426409917114999856949466120864725013826379200255573953187897432541463218635624610953953828994732224773717581165075313828591821745263530036121989776781332871023032210661939441639208876900628791875270023841783780728972125750729412281536207146311503546855244403438730822045737356410652237978424396889499140128835993930793921663371562240439719403165734513411319822154451155000045454029312844179616040322898865550942319306851784342807763466130987178632354714248366614499074536950517203621052032294999917141409801574601438576505429666329980095224037165422793210914791159932537245027042850501415921520389787532326823660358237550774697980046690016187411354259050427571095846065074763759623632056155737389751284349790413259605228027151144877545427572378206835046405577309380825162642719090072808089682099734696059837643199854803952886272734045939319746130478794956509446373685719332750314756746166770924955361867899298995070360989937248880738842926428751543338180599323419629105567593358979639619015861493883772730074966167467455048861740329973958874339932898428516488769454851087543300416303656589940112919295150554243954064972892912083652164139162181848009628420246375434295092694998913502602630600886868320992740283752159573932938212876289518657779346530787397133773316317649510252417127180547116396802723991578936733137179002949549490304266750862534067470555216715091973123251462749743681319241885678723748494137986528996978337115659292814543647089628988404721721340843600093171789216142718464296421983827181329463915058152511445405267645020820727875299602032790223065401130210855302289067566966030095373807095056232603692337436749483085394895720644185594803530907726648259783681766971052123501291202723597386325276125420524025695451654997666021495022477405572404265027243520015377534498466090677015270475636055311206362788724081587114405165411178572807215683531934407611112934213597706304159679563771436301959228323512016150152710822876090986222669707627526098255855109510539707163942876461860746518184777628074510559407038476530818277100399448768756366062574176995564393544833742150834263229953856892869959018685513931581066555526808475836029377517748396102402713545223929050068920554812840936609965911618651617296280162900588733418871084323778041943364418206891204892188342667385939299126399169607418118037322455093574366532731188847196852495968263706315961891579988862047499582546622014416623380588779392995172255715210568834008650232376201744533296243361427186078003867294639186912515700417234766503951798445852108490485644357270175252447180122978056152534430291991461202796734948872115324028990821888877034422816804040661362724781554288650307183156964639951029268127748453046100839645355641182379006834087070575784736061835838175197863319171367747957992425047053187777892248527959411493087012664003104596753280289925068600947488808053710281482871018437364831891710227347405232869148138892001392687010965935406159128181503705850721162507691366138302762176363239345547622796318663201012653135720811082987016976023283543354674847485380615808889712821727857749584112580043212209981067814241307751340425836246534792967152637616287719101497746002534201958269303200478338114813763418543000270202013434481454392978883617703856321952592384382565344598305294005494774607817335980718926985047572375209779760568196063251251785487563992793040242429305831048056579146704412350043880627464492013370929926447801385536249505252754288708751201877393525647674965360450925255267803284855285860955626683946770598537835200441973854453634403799887958754597289969262944511659478562081895832148155577560840591444642827387227496512104184003525066916084615742451510775238336329377633196319610755570148451560847716810279270275058781580137608585008514092076507670986628112347191802022228274415392766098441275491304327509721106509749147449839066034961955010142033902357116008939259255725086507960720923728729585438461612751061415701016070986896003893319815378715646345503717911724133890626113267914094547256782417955255898635125875084954232173666160551499229229432748646847812314169675146941738669921453691869763592753995042910589116998855852388533060104679906896364561977591506885727032391172772113353829081049067295661217268684909314073760550844121620877505577040438089534859773188217893353425432394871183064817212946028892083612849950542950833574152061497532099595481119784827090257239737189134052814853885253339319370908814538858939687278721241715280880868519685589802538097883476242046125795851717366442536021332054298065078133397797400575220823064487164888264718113696844431648601869782062627350590350086527855526138529331394172674743230156395938099643375476241416784373937114625413073062341406214462649578501181266447628362408021082100751081334551596960267208733641491992489794875931692424291948512777616523537343422326509062520858420327558684328255399438392716550938230420525830820007316976363768590255354751568851247901190105966838835442899483925496129936097455067547785524735141292070891633446364551083366954870986771774621252922737461472358092628376641062523951776650672019677441788510010913653531229519575775443936240088174899067264918674572345456472780578774421408602215815041037526484531855566930971076150605812902695827247878201440123363102743135254144846060197367649140422921725046199831084575062688621450754644010927057239437151793316610531053003048328158692048640146851938580056768399591025183658961328082243302863487158422344061112635687201263167145831723809973478023508573591350402787163632021922334252080775796250903992719990394609216310745273774612635045171054455984679763302428694295516015404978903926970842194102209453617084795933516977368052916326521520825170067994551383574316764355070519790179514577151199778738611773102929062870580667983281457254150628600411538705319230149359277485537799164093360431817693270845833341284052864175279025120134782347716103638806071334373198618039104190348743103548896769718889760182147309011763691974514662697467333972061521866659841732079283785741728610464136662949273387781814952190465641643842899559979501501445557104001517006130889922592975659038032562248132725710668724038288662942745423756125964980730211755463534848881391673587528605337664681676814190029616708190387393004736981219720298797384244516129745138449414649469358796631190945418707183908502066233884081355431702040041675644383295795197311675451601815625533170274006710080282990726143169363712470148030917253211631219111089515923502024255314531732767438028230518524076650561875167919482828214697719799843903859104254085166740968668234930039553032761424244456729235701982927854493684260734412039036849743638962297941474436658687052685268846419854328666032489878741221635875731021845674568122312827252145800504808226347681476026130333545690801273802936032336128780488245692397079567081556552035367201195000020199144100085829435031272951842247862345639901031556279524243686080925786773986946374836146490431959606776081314010450829665597011068031566906437775888565147547377096154693656086249634382260669504106035727749938236734078916153540787485700281700427571985305312405875082601067306628821569086698355759046163317973044033080004297138592159400359930896588716979233905131827401321848419792432208228007615310027942013319542798870928287549933336944131428719104801147056304302089037111643346289262930628558509038115082698585246493440352576170677861105716441918455670268619042041628136578086450831807053291413707336474207593969311415406736772766655394829443564540830084443201228522335765256142455861158077906329275751273114295702166879528362453504678184323997590812161061084184390314359778563101949510168464537040784269363868319738375324501385765238317776232736503732124712784821634541407589051161896656259411232929229456413399577850459393702398394180521290454883137912970156979870922205756672329729599195748031752011164487988297729541946409003528598114676672635295881610985876145375790941749427592718223189850864454735565750445230762099794147123097303819413418782719698596467243130147645712894500084610056932590500089454534947001723757673215139290889948604620299259479349803432884967351838450538084508422826337543907080936438274047175160727701718040455659772262989066872900024369939168655974862495846898023376376787476708374898251336737121396979566171230517557265647540815342440457346370431187806459685193331394052580458281635866433906218237163690521299853456217334060341039118768910094555814349362163633130574922855519093778356578387879714795216685039589908300859064716509909474179832904260167913545366399233011752545299429924547643212877170840039762776015995059573164646816417843732706730431498910280969860323119237676920811516869266282804238483414676886858932939785749828952243452869567261839715531248228787536996138653758398241644349388080720019922564184200248762780824370173465710496400015098201211509227205650119745280436832809728955787317377892431866036753657345212847146785205032299620533529305738395642899784856165211877238835796197800570441824759260033572525563642805210728969263036570832102954280220815682280588979323254350912660870516188018134765394709834654594433561608042579830761433014997547988324357195440787702765678714239328174943769781006224633148529510895522611943679696500276441762759681522984317847826632813715167675934953573578971258710639378675700193994130551881832990055206535308160221827037817225788834338097007967718644533170367393647267810891740792590733651134761663208077318257352536805081177205116156050177260345170116439966904352202131812290570072061373290482597014956461919830758659989029346246244771580385529924143397859288994257982184175202483094516464421545727473231382691302982910144089021162206831846411050223732818337397114966045729295651564391390366329916705323435972069940019416827144995025002197293842344289567050599647389154711564449383382750504786713785069906176909430140174372620795306326381950204395755320660445836550246169515948389332952897690536254029149782256400912100262383758738217163286059933511193751438786417395210068751689326319942569634040513915426341172560374775062588543351849613437231370998281073783101485959572715188943174656666112251509892172765709017038228971137149442599111111020476163633926730104127662378656067182895977399437739094575498599816718658259680098263857233064709618439436258006424535989931327620550748433187978185269024989810818830659935181690080774860862699067587316241923101199069439475957982517608434434249380339551134806232877505580127556528907775319111237197491823274451668190567573174599336171659239309959592844293313960985369234623270329485533169783612884239717073304321190170631865633860763196497199278574394327829619327455875707713321259461817219737819582864060726851528190756624276036334249519253640883974074245496952309267011575713592788867391933077382965801688279216740270322658012578646678967010046214260072456286613997861262715808963468563630576715489551117339779299326665672954876841297514774299408500447551731148267383860786913718516041302441832110085982168274903205609747148789725395742012992531230389251982880726019983505583987157745922180729791490897969852755895292988205818073200267334009976403042223683876549662710886265698261869711855556887173577118019383595486808541773981063806274199763543316619267233208725733243534855407580307631166784995965458263562761994812219598185072273200416500183642454783783907739816938050003409312456418388599145339341213583315677544091906065707206325169772116813416080482539229703125674739752237892827705878283630645764205820414821665329117543540338332941975962375230436376793300691438822632154997543664109043334074147358830222191817796917220148897317935793906294149827003946536864851132738996508529128507268412966561486404879838926198045592995155489998536461651904871165792170624050207283008981602258498636919331290012168827127069183914789679736247416460935403888302796605598589751016905348787908550665650076829358335413054808716359281465511721931878466924945629056957471963642048635965812981894673307055175657408336357565818414556984145314616767997790728064430040760485506135738809256700212652500432677969952090771843227249056734014133052683375571139397640289073456363650963034703358895208226111754718977360846957410024143282190887638275432998867933278358005665843953463500603185866760999185583519352356659173413327190535257051409991192274891537199702927235379994550134745273784258571478478990899929272373499510591756879731115884182141526606265940519571118329880285441210016050834069689722839470674638694472973506969494973300954910501044411133717279123185872727022879938218287342977547395452291400721776239595559389316836347392084053468841730062615024848046519762832476277152338402882252758563375908307132658966140117925203017692445817580309977480340505423565792328831318562108289756523556075909908676014003366762386789981074547069897253971763998471056572653947317189078818762686799478341796402566147253873256460754175647596521133332941856708820599602068167102991695145341495660506987071016224319049422663781841335301166387600935630720869989651986192207596150394845533920121850230150040004204885588728134941598047902362675860843939029610142297494603370212574914993143860793290288509231961631354840922511432538097348158207456749869029081760490473550475034904393211891262557455369907861597814881541783280533153830188918531454564609715517528736346921316335810834941393988560750172903891791280547627647268763326270244369281788157999478118372539378498072003442305566559322929161774424898218388128252203392377106611160613445664376254112630365677733095108340991014323205703773752002709833145469333842174014989975968684255283885414798970913989993895263994762844819608310599822710977347847893591120946997731558242083887050778733413328672118840403631968222524888774706992196407566398398444763048076619147754016398596438566348566084612801790376927605607374182212384266948960696298884032582699319396083336468697765032291702012808287157780116824494649236400389244388695026312029678945485334205090256292651784501064456870128594737181646171617417868641438039962421761663744142360810014354805881293068859563793020595676729542574177152045472776819559100129085225785290695223146862273359872173903364621972918010973032005505966615051663770830611495336647594335973345354840928258039544625061264871878527672094485943246868653918737755113033593136793184153451446998374682943382991658409322603479494133638466623882812537123655100883390088953131611922071259405319862108688156511537056840855340528160419296329871930481758985597951572850424734042258373047813309101530338825563754624760350028853686705597356438984415425294713194096686305401468187793513960562207976896929487997306017836492274004113298546831878629337105049934548729923163853063883480479771662657041394292234111793631804082341186054192546738812511122983015420006872499204326880799459699583321422445538134959075361044632435230117070837594675822877381331436919894870372532788999755079224709495127680617257045924495077830097948531996335297724413122894117775550512241086042431925061640943641693639809924688795002349663518795873647386948356444658573639941426043426502886852779132663897153774238724454059074252113391023164847212565748788276484174201710166012853033339669043900286680988669571038526594294356055825279922120897844302120825543504865364374494571503961212518532848108204093625380122577394876101526376373869612980754432296977089858167560073321385795200035366458790532498569531735279050581683500565722130204827003132990193648589753654052465820009650911373142370992104545671373355138848128919715613584801529156569031156056516520345036257765375041809534525684006825777972376332466139127433007223696339396293468805660450129259189675785618987251766838189946032532821841276626569093245342946259976430146847662832861652620490980140171110279179862157406834234648971261883528563433265197017201133594425277712245421578457150923594730571970176338088896521441247240384278557231485705835657581634526159657060700855114540576158319743674100802250139663667693562313391593062236424826974463862140880996464964797361967044152413242079676365163972199733468138662921868632935322416566827516937790332331411321710647890429623162273588879412153972850522326681570019352659969706630978156610822509454070420215138682674342217050264193845878291858645344404979404362613870967843296799358678502021677178188492553703209268896871156035890648851539450526755952619705430423128961387233851014696386400676561702894493971386502775216579510308467769906636896149774286911240043844955957036882050970053111938750773697226987012812692392608475262081963507546144341613758472336886747753623934519647373289504613548445183576632420529601977419397744999319777617322328071968585281587638993947755991104482904230848103674522686116902222739878836990684296416955090587650694321840071935815468987489385154422179734064880881119706323510129196732317883154219492195497040161938944830706909596599789389486907225200888008367107200823964869098676618139739925932592086917178852117740330983457349027977377923077504481826175727233817985586826666683414940936069419001807923204620062744870404077475139487793713993396017392813619182449287493246727811825207397692901481216318870156902135050053316283400472127416535676501627184585357080227082013187094446680915998743997962460542313764973790938552215990459646445695368061994384068181855298802205808802645859370554454659123062090355605426408296076976235474492581794282077619802814669152727428984574663105407095992076632413252182348200563653719822781042138864480762498995834968663422768518376268315002914530420173528889970829674797098069779140763359154940247413101139960541969927602191032588982678350032026688016025544715590100531418490385383215781664126796309909996597593096967222995064891576236043358514974078513060886973813963458963959115297367665143189886123962136946363370825437627357200104598419144565287583076315313855856496980631420120233118037088202454224485817351767924423095605116307091308273015431801094857079033360038692381782434025290883608234682619264893049334243282681882287804315436437156600976402652283548975858680111967930013870044917404375420185295071186964978766436156662963680993065788837189701827826867325240283682274935457612456839237846641257993710451221216331255045724694247825087570789258237726896592055745209758510286124746770989434913172630016524938137137800835414798787826391395944681042661940184033923044130645571655699811529419530968133891320110838766525493147554380767206867390836386157775985774476146657391763408914701035608297215049898994930006883910581863562087575102635691167266818266442427615749006140479172754864953552412692760173387467051756840887979478160021165811631221041892102620705261964184004925509920286604332069192360012138128568683170276186937668525320177490284033968858218529983972123500536459906930797827101396417673491450501299447270079374705025086399620506745015657994697695902064000284715683205538677835450992647856525280815622854629937822882883178273360411466884692893195148094228188567871786841756195859165898260854833452692425917968543101028887298410820949941353699057701753437813840197017295656564422939666249441396115466523520181698984836240810752430523153935675382447053223389052497139532859400809067406387585023560781256283099720995972638400163081566188942052808387165578828477480327816672308063204118085196725329211794702943876579471560810068655518838772133501441379253807649581872878731393173464629454551457404260051822920431064977470462792184868529437031673153491238299988909662473298621459857709010680104571672206764806650646949481963198524643943361328919426386718533894135980207205863630864158337632784104578629143532401730183902645360966687587882817369153357464749136848558807943988352329903541738389534192393435756873968096652976926087816436257831454917210133415576426434762785919616417689336826724769799288970907912178710623791941014737604639183543463559865968646185241722775747123109959891603930167671833106813866322231265876868907780450368178934428980357496667427317411818808265148342385230656165110612200949191807690266628620092137572744917154374987125734976429683848454655631235110826571995298648089420458320188184428561560421369176035613290681773330241778577623271136681640590218728559527192943303776978976486924789481343527283293177049060013780188114425560967540168182250684503971174233228774158126940410775044084650221629157063063106382984094101786405936867516465515092013238006915144993085747020399800230284288548671672015621408617159171594020143096373951890791623639816027215560191048323885247281228935211651314260806662453110756807995688275610095294776870069429531029169818323358966284664147675171348361164042422527754054640741952983726386324905557738811701169720725284791055848488941630047294981962156046760675803522503772893442674119468449711146475896352853300120968874778738217108279918952195640840547909999595674625586843750888473276183801484771622718077778153367198928759786484177885276415022153298727145681734549610586922688341274439372445999580664877298589582856143232111029799064695400095128904437932242382799249892291443481316306869303710807071872588530049574960471521352823005704908908140750155760428952057493708381814124247877623870794150933152578023300359773107767237802603181889163751036010728843280405136867145833068553471568013593824244255312283865130236532323925259013167688332623564128154770144662338619445411743096399128399849584103424067307674368842884373608189430873183083555352546413530315456477655667204185582084234171594133679342480090163977841355709038726131322756840212881319871698540345255575945221793287489681730053924050542599245054775686636546873812147199239957824303800439792844527371923714791148528911098488106185215138319143126465325572828054476779046844742625132215365391326374338429653368162167200671133952270198273564912928915694884725858546295039010530000590859107849883902337221784319901898217534714428458773380608431929111571858449645100069080949118290531877575683507915839328165169373018247385120990943461552660389828700040989562058090466687921328688789787265257766531747258896413648393800145743767889519998141977535926981690867065442679460875426252785039774769413546179411901557273271541264878380928072613200472241517721125704361885060913623415729522920610923539072993193604354506006821549173397087495946985324238868520471784846177941027720681368347369988559584843338700646763870264832548681386707403502264055236099013236591556457155717196901570426893716495386282955589038024314135224116182778033223330282038677325549736858006510621375229619254340505200428497784545524057433907768287033975914634248475777737299007358231196067714735176044052681405104744811920991597466697946063438339423387564992094572429904978866871952164126918785611247515864208409155617667545180771527717097184300812571971968186582754595507758248274155250999528734011327454123400622324868855899358709358751998686328160387816613465047612726511133798065213997012712375953769354166666429252910745290779514173263378308889487109148162110158556771737026236644866822061633164939739907725224088447377258226433846066307897067612635591574284985505988742171621848725252915157120454012253885854932192223768697997413592169297707824012453290841592991986853123419454507167766769748817507456346039745532934359540245344825778734610858091189366741368800255340774361598877195043622310965667351380025690352932663124608087274754229837022885675711567707020174971409611491317888720522845973083389742073132355592932235989913415178818863516629543865633631769882346752049010826967901794341346033037341176492803623993112841346712184952971344266057778415701438203682662697137020331646697768183193415855789877248385150432288117326481901965291487711909357238590490189573114865997915130871258615730984218119888350982110614003199329031099375536678413150656076646629068507115052670553791318339525440391063290950620359221221709527859783204740953106671649163370766357254262892214947959211101171971393636063068666311592578420619621860332351697276472362947961863609374721526736068257377092919137504575867107647155792203754772086186454868964151763300166109634385893797967504092044809710948405607989815210616872160963583154480344892005504245471089005988633260951545721332928978717737278629001783442110016571681687561246912101106752533134400900302031207514493921580799983252438182588881353355326211856510380653698793922545652545948847519113372997794836232472831815324628346134258291996353234701006250702620605374644501446151850660675781765326402080035050285137835518407896532467180037457814790354448086201732436407129045939410184651330240662348732846868975779888950734973010811338089486433726420728247773598618995931682855281103849706038037283823585132587347118654102892290952296807370835681110512636342851210659675459902666507802833904863883853370214638043710727503935448572370243194631133955194283651433064287506726283449413712752300783097655973966660165800019392097169529344138944516701163211565052694633727498490823977723337284329409758921432852755512174533916535720047462963351451506972231315401293883017901339731932592618374499878567697016267448189884554295051574388432728390316365151613933385083801558604078677334977527169763906452512605966027713295452598008572223698730931126875123961740177850045173338072723763486236737896121499176846326018511841011052943288866545888225357823288688906187781826967669317109626859503438828242612511206651715947018709345953693492864379190022897639000421759525923865542221344007122287332337693513393454605790819353746790736823850938732743150173346246024003509938273279637922601386285731021626911164699646651920684169062190134785556121267634499939960118026002960299494615483292223328091060607321146289371017619493460231027734444514521104838250256581904895420303063307264816807630436884885061642369545084976021197645010069005291355597818701115727792897172968595090886439621367167931416205225500388218617477489635115736933554820039311698294297807279754243658534181303970111879352831713550824124913638717130754117303979542338566143518150980324602243921027883823097634276855385506946135456227074359534854584052908455850421270933927427839013230763418534275539693130124243424092246032156493622045318005063059072116305479814259485591630031283576640937734147223775330585584836083385184107170114534773333733786268003607820715487043992390131132317181357614304205945877915891655986315188043263466800426387320070406907221503529172869306321665474758452478835745167009953422998359557107884176204578620051350267413929459454795065438729228911035493407951993594226169559695109908372589319145987950271754158136600242927753353097489309504587872437726326875508305846250653674019722474889068636976334370888011137479458191898489963679490433025571614306486568379979516553685479154985001526808283327835464561465171836890549679230923658365501614050590161454162409903233904236323637836715258756981155202224048832176476059228706999771932461177639546512009340557877253060971448087410874533763148838116029009382106888005021715424972758954937307261175426250209241836506564851109405883505397363601207289330798480549141618849469734232801568396692168532134710309171773259581319862135229045161820224318264565102615574141736388263353210117837919937147512204522926137777702111061307403226023422625637835323553034772846830840384474387332262792008789963595631087032475010534288467925028968654482083413176785518601838753113792803358064377791239087693485336251477082566759575134818108102645449168722528485195083741580437897208189131759660769890874862693078276605090948652583293580478910614347560497637912413050072605370229318771387913772668647246933128942500306075726748958781225434746335230978373816909663686827944722929329093663667025032713528438903819671127008619743369244658079469199790253609225289497463352627418679128244653241713855182449845015590827311976584568078572078775208504734167600084979233827188923907487830559316520764905733815546236714457896517937738026246820010240744152469942109179294518942036187203246221815420426902360077013612659983924981262062570848006059739106864337270900553227945867273457069756618104803521832822483722774428268980035738082623705900593727195567307433473119800602839087879852252597087223568016299327259063775685364160002741777586740813393989008650913327122963306149745922617283991952851200552436836896173120726406950011820280043572619134860470945975767302175279499632124718836170255792306691960217766206302636851021917834370778094737587835849145790377342773450788529967656873470173758643106767518978302342771850172104085256002499558619098737421574051410832846215414785283018185640345479219168485012320506199610555987658050920869670479105775932581956086154900478541432081529363507532394899548308759619104163060753138556327402497774165157135312660393998055474028564398434886857695799523732571511490447005985076724607008095493439953810630089897290446735872045241251988581733074112958770477861884396598778152105923999050993283539731613727702242286613882349994043955555951620566051650523970911082569713860431793506647437209370470005406817433995506348159068476565266103230534334384402687909399551934682130611930956675699661612916445557778680718128763983690645824022307481796894127031755895191961180909776607997999756279173904873410185407972747587714061368913516152499190470191450061151150417181419736349407476203669068406148806884695174029133545540640676979263467469334571280897472326319526505594554250412234100431910687378820219587957895468392675244286282612563555601268840127538872526448054166412554550988943902249066864906250150541700277226805438181971072716480825449134347791020285814506137341048361894816625365492749405628667796203052097317111775387740949452177843608136681175286778720047423377673447797365659550947537022688380184688839445917257860044541256028922173299577511991394336004574041603462129225080341552966494538428176540403497677866356486169923745314643531161119021151970627682063863543968054287344685135110848543361719542004691849507614384842786334556006369074379825942251653081869186510390186650557181327247884860611800828867475360412110311720794371792027062583412877171757336491449337407158208006075580880414348351592427529810038457732277797254090646850308343277991900392407623020529087162624526591250382210987965828706089017417875617828768867825523070318818264784570197506314783572280222162447907437008919558764784025095324262559649317068734708468816349561875710464708378374241846006169685865139183761528184331699591076887586665061477463499760379928677307695211022195720233756650327891800980103305921189644832912432295191698981162211638136721898811362701980295912425745888729992355790372615119471174900379363895395385485971911508194144093376623604500594615828281358111179539029702961267236383476812814617261712562951174890060275030133092510423369752303293919103863271628691801119590275523404290197649007114900284719962888790183511193557133488968479193382301195901490477224139176225776832368168146147341538719220540364895501352190678227450628784140306666881510997189832245552266667330487749493455557872680180660589251230176884232896088024093925004618456123159835305187430494090220649936245003828690092188717735596953969474785233239016779992330430268149711702345714656773116129779491802703522031941526161901976277264448689375716442910620346426276088632149232312778334973384073595114789626649828098667690731127248781752168006200169090747962423478131799684675227553110313600816464554063461584425461415351964678192011724138382442178086383851061794139452645508816276950965531748585939828775371052627337444307003740226888489484459773281976085474879656129247293379849040044878122903379238548108230976343917754654571386040113718807264326416853003513738661538299935749435260103192933157356542997780380852779929448686770594974815599549671056302418730766989419088058199879454573234571877663748639166319711629025452050812582450013547404956783646146134463333759545391560071096885274615726190766924600388931909991694712641848840117263434568061132337355647815581202582230577844947202118306084430468891623770606841587940027164712851135189350506217790125512028826816600291172345690559013915037091107622640510506925572500135737606186767422518774603905411343019296146235079205038856783215348387449965031727150530879115029570806503778145121683955314881305132946902745063506871761478031935153065132790730991952394358374067560407301061220741299730683735290632357918650866436342845232917583225238697169683357708108953248474897586803574964922105297132934393344376585101117198181149532129049337178777269512284048774699438572667976163320855467464050101424159899074896349176852239002926496014034172316616915771529025386199985590985341749477922749616049196342871409142799563260695407198884999238457711462086769694488418373630061037164194449368726893979432423141237249806642179631091840945285403921112774024841559427458126654453585397143846854376640013777411136258586691786495568524998341827835632839544084016008903838889364849041878247069323390555165160369477401142328132671463265567134382579384357814721174005480681100059442130147252946953555500423005586871047567199260521453946677627077336871294900923003018192275433533589585009124883604872116243861458878835950400199426974720234055242399099854082500830204167904938334942834770436792187101071868086815827631693945236388322524483376448250314599352125981342727094660105443461247943654272471654309138580971162509867730383433395601297686735889830901833975278895500299253315415048661283808237209894349921539683215354896801793948546784042685727804652326704707985318488592528961609306512319939004822411718200850916162108713618308355830727968872316633819683045158262261701222349860329987153446417315918939470001634824349638498413286986884686629619532459134154196968262782495915946137465522298762549655553804666366988767399118787225554125860563958093635280920867836854662336086379229205312769349091924221749384539671467646733689435508425925794323719625907884821361390105911371354248143370241980052220267274831051190204185529391825761289268083674966574233444168500483050518759059235467691644352014300358953280621265957155578632539629122256709314171079549898542371261003304629127513827682166906612830067145815504839533457251726458747883097183177362245455195119511061552709494833271132157499352849157995469576966532898218173933623020456429114242945352929589579453771246732198575693044073433731743573611799557756163067122292632077118769961170281508275573506872663992418061672100049742409214373338030168446408171901659297204717602154318878557375801718433169976574370859225725525251383166872154645276431348846924937276654966347300097387288825989135686753669304371404866254401089833103804104671877511229921134665229268278931260395336393239234478441924094974815662417497411508422220430632512195763535105046438932925620269711209754097741666208532096038044978864911428581947532432327697317494933543014396867840821075467750071227187386004622866897979148002569616581984545919683516377840935453519356930682246510436226325156173191676555631322912949409881297489516565977761988236152689331384996383958001026633897119943389364623930917284982038893383776461692526726898581287988175252445863694644845400879859998437610362279697637822783326195765906496033541716745061497496254626222321710413590110008749287729786073237174514327476659357571507009468565151661682347922002647264010429712895948950738003270846223684503892169693640516320802643401247731931038792964479235611250848935559412345068979274758928028172007448526499618801202353874263161623855507203463873646369336131769007666999658675052049547013695380977664576998233741642866921638401656457037312477121921406875226456691840067588785588954208016186779007083508306761610010806166926574007452608307975696956495303225794984114531608488479013739987180882719698374621712255261504098409943150310019250532231541046200073050730355352143888331955921407207306578908668566602375997747126278182986951722299889901175315538810201450687354612598793300178327704466216605296808085709834873187893541184741072586660372133390751026881591641164287622756176249778891614955126738849475426045447520265318959852824269927406771499484148112088823468317908701111373118444837283027857315236185547797632144507202726129006561971903626406858574547581330500720114626605786760403234615592764704037640556136285752384526090124990453998525827906441621370117847607681669343829841894657482129504306506397629184336806840954125823432620782750378333549503912161039410037938086889831694618896306536763646871984735872787873061224591586726054419807947014413797813914730347667177396330701194223410794423974160947601326611273573547212016124962454282332145332810651740474446348689316100620887769732398615630267038971912824016703976148519517245681699616910034444560089610856926234792865348161670168003222654211766513923995299919509896054885868038778362573364697930444926910523517717834501438032288205903143397513866824639290496321385969209638353419601061226965672440022355188501460144513929798700143906378169910785004502804153414311101667537262987438574135821174570631634473272600614572512581077500624522258952490429340511887889666114652370403538039296625784739352174362206128351890422981300049821195814071658430825670585256457225271777631162572359518079018013484547610952155708955237574316539417741344897123506842288950236961418445684312946808439644116709736313135160356883545420400460296318781326076177003995153017774642473931136410225495076342562282691995840071318870086019117971994799110937828730584122411989476954060614918874777789619195959223153589130219084265162279081855512409672160951512215715518480150553367565427862062382261698245154902467020549334478905590155275917392204533594644333488601861140654864917245837952397530267946345128853723626669466537443936343652167182068742525551935712295902623448512167604714499748627667637996002651197754198944935616884170276234952714530469538532773461856415125809702493565979016841893338048910945501927747973378931645417696720075420596746564032078391096802492790138726833325851387830622460848445823510708816305663262593049449867525707659750110326578536380320236958328019243497858272848761291673354029717953590039928774695258591528723574262059287277384879411576948934585664577650667101220063732531710470738038563834996576471009302367582666467775411784115848589083731028994571188478753038153108745537499657798997588051866158367509214720374999251759148472869563451087480492650658157078280563476072718055075884532663686365045736316892313292622592209149011249037157026905424947964791740871419868123292511778559310931335205004945380635870289042426903494063483657062793495277019799917595222585869306765236186854338696710782412925779414938357756258309443624451542179062791689588863653422750194059908813499876077535036992069487296814437579528072034026929811373419818011432873114061726682317945712723617920945020993137696619212990807550329164534610014957229917301301444231816402110783917023782370646899345564162515054978134517887569317543034243347654581601844260022387089976748903598902131921647229129769041580789711709473626195809053291057233210421826672597922865546088846328669885869058415458603234504230157368969872631574779190210706144559455357330116015854167344360280906803547265969775580374812548833583498017118811574871499494373753655830402771107551405335260241509081338939945301098083550122010353209607514798816601602223382035124062760133150505741282403069039471417411325203571007051118813479961993012943338148448062730693047236842491219506329039400874633047698976336822787040864318535591388602397351564777734322382008634171123672564735226461766089742190595552227094372849279595211596640038143723153516949104443038595213707908766388876810210715487960956448371415534595499075174953317385408198760786210384348424323680762160595636500906715862089912903324646335628453769815607166150063823568237149992289384205353533274203243158461192174452019965397271747287917313994837915656796664769035172368747048834076318464408580912875565589356296418577365430102422160490919598134672844973947860650252255322702078145258024918075390952336037598658477209263552098917519368164861063803840352947548356802696637344278853825908456522876368067896697281206849220241593931246667631513108308202133398378661986240197260662627145706493234528215419536278228584622222336650259555175656002569886837969446330093056211440622011510061283231606930203482787827997632148228560920660240463224744731191927987307824214822889081047482542796019326723506849205916662514507234533047135571704321859774875767821679765030916610125353916538307552637435387013276507545360271627889253861054442068676320052159824578822495207369596892409743392582518901948251545085615221904481673012241837752188865991037786817352057092965804410091895153723221848823652346462176347661244505549987221209468634897133350142850646604084030791126997291723351317027885392051660852711115420943395468378249511244738822831728055376567000344850693797626480485577134338494407461159338722714898944383368372636641073448276042628695731708387313274043655699336545651697234045019014713489465857062815908402252863093987243796972283645882320288611142168467578127385379181882653371669581940333002372373599134396531330765384884259048127814624664128916243892427060218129716866180830936534670520748467835149558588917162828155487581470902349392909809948705307669561388537292940923503291199582527879425733652686917052669415672483698266809549883317274137768860957275129109792084076134255280095743701867212693974305921838217206904768781258361971148114583139879584657099303733501063971397198733953818404556487561600312321585368085037257199778444269818402127145740634830536911462902760192367100440428559720029730774464285187611307362128066658698338841603532351903733337247001287229256608266765323650662180478852273899458713222509384003637027702431716763111575306753377657459292014637652928100978083411356687312965453528832942875732538149981630216991289715540358399022152038177313918294505008136602469068929844251223815588794248188267568069658045111056551806835339873967331766164474196858562297188320078240582041178820971967675116967476346721883464033521657276849986409488751087321299235443750873002668790712528924452041894963091430105964277218097174729425541949317339116929520327018819213266423455820881214547044512249191946405413666441599505221056086967058427637890277208530600929824214893819884924325613003560236712790824667218550472858082289569288997196430744988584280600454367834337318250035486774697132908042938046075705283359262110374424063208818967529816104990490445787244598364706212687872243601496424667321735434137169605862103624672453504728763217742038946550620395087648906320760152402783097274135987843445772962901954908747047425511750223585767985365991968643640927089588180648519081076615371161727136694902754287287881958537993136963688893865207603360979441166564879994246749322530310382241841295725568995037477250185385517622506170182836215954179043883325178177711149628137970603512074328720728305006633246744035909213804482361532549242732692852663045572934544392906673576113724978821999246491682610911529277497536221464844283638661721641292871747245238519542405426110541114587235624976937159898274350023191860007083626841189303812736909412320362546758510038934555804424494468692568770189534101548789610699978120748265289996226490016910673977389466908937896009432369010512309336582126779329145158961660344015772457482109266420911841112125050604489418714875777852868610401615234802006625902908343929028334205354785635137461876968750704735389352984238643611777750816711322884545709778006218545613599519994363677000257354632603756421998261382804795493364785188914201051353893736032781160115270299822909582287663162756698547644911796759705191681100794746948770836227608726987825792502034261437300324066786067623121943945220465068741891800670698482635400955730721860904108020371172296716163387959214745381778026482262419713410648066303232291487271932296270835143574059926266995895818743796581697165551125198719206849759441243532689389128987221201992289174998629857217449429274147028051427877934193517713807504189855169458699123459183779427411903674140390617661036020910545801444505560995991232402286067440692594968486515658196724362203997999819737653458390865955450941837880963160269643275854282321229474638199328368560576176178053938608661330649966914794324072511058188366939311580384233472316816479743519924220932362526072072476205322995389985349113706490429939769936657778958946020083092672727251716076282188394036754964673795932396217736511485870965004257243966791382469033612708691087481505517785933832677489931500022706187171457660385780059900568387033349783640868336295419927263767692001788284118480186091941786788289988919345760146921763385990601336682546489024838944392095571823696104897945821790729693079517318079496544399879683258438393889499371662155724692766828224168789120490313335343644646418448230396966029027455595999581152403118786786203459419550292781237079113566524076989529635841709002796666626483827158288026501377506614474267469655496244896108617217902933173408544449750124858486420636432567699077072820640971302181877623063434107910158175531492791313658153349952296914889292800920363351812959348025015351567351748731677582632430618458912170758083325689797014967703860253616587912030373464850245846426163730024023156660165943207722941396806150112090068578593998404409934352302997654956601775866314549763452474683210004461327109354403214856324707662026388372970568080284784937885147198209375279927576209498670792475294953258636102910272415443696564450360919564034360735786396421844704998972187659276323269796535587156505982158020538839607204580757666573446610545941063959491520572919460106569927938155766688978544255277843060736119483759356237045649574572654302344059445115244548439045858655600635620814420566620433350239058781079619222801693640699037695652620400012216017959674627577791799800822470046894663660310866107003282065903997699939495233952332179959768426513776896927991496788619228589615490350774857839555804191533781800195268460076186018988866365204238841153054926678793720097570142477312652654791588801265090475398128215502740633800095409698077610482278723576601849809907331748065321292242973014155189540793875889909514749324842001394017968010380154398610131465611459024965005535683358350620194054028166726098163506869044527009629480111598381536570730157801199169524107807062671984227112397933631321578310801580949331269707498047794313566024549776738272849442814199628058785175061481833386746750454329699155097931093151671471448907971140098626768546935147914977605299229768903430633136867848898716118816584462367771270720848217575376455013134453066583175011661820481420745490341673572923935954927893390482067506442815137176339406289934939332309029895356858161787044982946840853743424192005824745056411243725712293928539102959840691458627246660698998777040261161787378407000029856440605789344037655693814590421507717773220607807780807174879640798205573378352413986977243989256485197847887138388359114115111346892726718447731692298294518510057401712263934041990564716186224650416869646600311436625409807234335088961551976797575618774977183211520785791140499839568698976193102545570523708888879242572664839296378118031966116189427008014663780203326585925568520646403301803198423083747568004656836697687840096115509080361147711536307882342366384685052031042459785007986748353487361144007253610887309292779608188948017881428418059576076671909321519507955597271920492258837647148322416033389285864090138731925018306745385430905966772430943823849047946136888775172020231236527056793269525312899698517497774748759658006991174015036353551848716091391471320980451564575855154599252865772318331778118038631339210202401638961866598384811545706250418504022847244412877038420365697205678146769065386755530168698981530006513439472570120927932385090989661196496368728169994703901621196606926828667329569580477046474618212130704205276620945626757055002098678840384470110856204830270399274617365291230511379287221006450730005922236834142855438602186544518708908036835614256671310086368106490607402289222558745359184415737796326127197365307777816136448040235274083731221547708568072122839244039874916719168667323724082719706802553953231143124084809411950346575778623116764538169441781091046970748207487371171186781795240376843955824089770387266572290857919292732386836371735557549440541702949905107637509519686115770776866769243625949781137814513028433776444730032345851154411431602371047897858684823741746561570063712655119987052161033338136821497368554961823378303638236961061652316609329819051242994930431128824377669437169115389652861023095690840791686190060466256328850769293467325880897174614140015796894778649932545436683979462042747615165786756375050868234389432242866493627632238441460822062479231064039862692325808955887280471180767186997195639777254711645754556523224201383889445036533533538539553890559812972563168044875064061884107739570997524763345354481581705124361057911988851666936694887576558439034484199245076428892131080966471683663948725122965875417104449462879917504022795860054650395258977371981272658272629549555658873837721801161556113892547404036174573286184843494418992740584388390931419195416649009628722518858513178663707687519175123105100204411242037333465336730116016786005001531330224274597196761069309236941135068081336269333364044316437901647263862979355271085823249843983531678350107700636343647551288290553432624243694313380196610375227856151594654123329469247342212639795780586318014556620883519617897169179433303773631793442855688240214363690276238862663735215936893489260487310019143443813808896326758679445908268964357788901720791875733320900170980939698457323972016534913048258701326889769295237843685735847122573676952497440830886345623033899661453273929443851743601720689003171192018676049566173982387812608847682713816897525410613647029546352239583436528875775200168689222988560591648737598213309826152815984645667813830495262074859675527845948375045791189132911954923626239356412196080773457809386882202910995010361610700269744676452649145793331688480538794351131450746489630269922174853487101408182819248066467614471056144454516182495846650572728627408866710079127374134710625847026122289923081976484799388665016959676069137392271075406790544682281795484515282338072239249638164250445350637520347825826398178616527022765032948032589132314200262648133404623487890533180293474870590103033355967227424276884780795845573946106596747497391321469208581920349768986614752829458467598550140858229024803601340208165153406291891424666137023054142010844900745545259295342799476902229069004976977072148178608843462875750027197035286935452173061589874344776765467148328615713350468097826584338133340220207466197736457169260685582379015006943662651096157116254663248998309447002025799913900769930439958205153099191848332181078814954994235228169770204714447008939638036817671947993241778747557385480651057909512207775241561827546557613501390052958920293178548147335089089720856599259270110366972402533290022190364059413505566747506588159027465527337268830827925466749494695395550531976251458252444417825553696357357810704341889171373215742239199813599761373396781787235725050757594090194837433903960984755652515129235543150760749743882157619745387094274647763054856494205257601773509576308044803228683449465239702960659704652777748267692529585374702944346868642340092197628788896944242199802409256458708330327479366733426377204617939284487161250437520834346967425136517176301349843772972280099412415758698727392950514092502334262791410756203765717014908203971491232398768251305216988545681936077591235091285035687877230714264795367415084288765229051597056326148979653451414918963377895384932950605639181263962958480982438575687966529880759163064222515303444054960726395834959858981417027990419204390694569113247986048748932783145254696354072201867989192889667027152371822269278998926225784066559316588455494946647729413107741718914374529102945704160680935630295195013349463883592609647192634780188425734056804635293653902605757370766458028770346718641680894456905787743119524534118289479680597116535604415119436287077041439085835537623826307329269033148954876642761314213619284800086812333999549240761621173934722816016506396102734237087590732976851972617100499964916552617425026566720215213090963405360930773527052173129662808006765190999672953029177290142940741402659438884508927852658651553806558159062917281576860404234799395890721585920630951050141403761857335140057471379479165539176207579384021650395544103270358878597453125363983894313119265943210903515309252767643517451878950848597195716600818408333402022642291650062996628883102986275781547685484546603431663886138967884590660318573346269678731567421244398208386252348612816349646946065658967618265612952743299298593408135527399843965190089017651422733140740991553108846085292643300508249920752466178697734374461710672630789709172102588945478849873465287786746025108440597961320126661908061147676869548162674280920849447318987604408213357417972806542979159507935251737698257605399910836423290162045505310639680551058481537157813784171657904590738053639194757660334584208537928155448835818800641709149863974470892764026375052064789516181714129333216365414788315746606109610438122785555587472461793101302979548520763391785388637443995688345354751383301602670429910951728276205876039954018069853061794938209956401733079322471923072190653448260598486873505487201855998921623891181508805790407052623916526097896790590073722351349459584625892387439815542313001041237898268456685941419211538499407668990926722722567288850074966642234482102916604547163659971057638338190851019544265961779482491109162211913066036745613191056410895727622831083360841622773232982116319661186126151073670999879656685877370043907163589296074986561732845258089536145606349854866807116044250593145785980131438737032707729790209010378594996696727619921490973671616607784411775867006266313179719449442664142158797500587260264121315780601583917228228686298174966383837467664973132609503728691462316246002171562664105787421234147770871401547083553108817105614359226547839006277168453855698227351851115647568053165556937878988092136602462585497166340004942846818116592180178568411906510875787080233700154868602333316330050190771257905371327353042732600590604503620176823678325958567966007810912407939461492492545050237262141237128227335499329684665352461727529981659873894322064537132721597663489855157896512899540566155851739393304098944345106230539727510899974089284331715850682294484748979648070827609326781461289200863597845521680891866070424164481945969809236006697382748620823407937722343826396433980147791527310272395174331943529324892519743394477709629472794148806089793447864402376872815697262193576788340241249936251561971878612633558545866039176759174480737407803470439789864076549151756226765813947000108734073661843729873783590064147918747677203260235686885395384671279331842669840642679036565015941570030673185173071320051397893955718126201115773324730601651386308126115846302345925958439730606175481887562333585660734872260889048342666343052328158133753388207348632424205730218361720020118115523015759177333293471990850085892542807770383293583215454295349455131309111516941919220390321493990507304478297059387170237830003368863414439752190404933835556361979057975423023423759702371350126637664771414330927568421674009483413760906019211467513203661507547366761913050229689113039091639928769916076898238318990425076469336104304086912538395145822979356333340931338754558335025933722215086487229141303424106096283651702799934775011411848883302960487285058038493773071210913207568678573880637308033244284331941177883727389045100181689232389916963782562135633065619736536718056774807632996846105811169272821469075196567871194403485982004355167903584252255124014546388756340230635307481826407864323827585142304009703295231900348816971031956368008037359465776550729661944363449219002062427259922802123516771284317376567576233645334922989818409338208962323612936958681350474998304801553523305330096576823977441136631442058250150005781817436822779292321051511349016554078049511749749583943579484312912268105781442181816804200240537084011585466495575056925080751518843169692585090478373717501711112487967171719025541973721925197573186876643565144409950337589156992118741244260943481169978259941706316781354297452471531151080787390296901754615179052345400065575040477170290207304342806870873589399977696746937005133951295201550826112170747138599701397103583010071729651010374745951717678022527057663734071700154058315562243289824995584355553095376782263762121277818777998653031075945254231817423144197196341595830449795276782057528974028844929615166202366962998349166206163013316765300841861558185824463186935096807087033199612489207163303882228119748648405463156931076873407533064545819757370875230945502899935907497411374011929074116783454495773845964683537451946970026306904394646254417593653419774462272619007604449227473173329950818849443941234425298222035643977377993699934603517225614031742420699469234965202553041187724311596819320427871254549719447264166889397962633976021366595411674744724332250176178630323551963492751086249726069149723670495833350932793103504775750341327308919131847265264474842834860727816338459599695116478888975496452177331871002798082876944248061943786232815717526508491262493403864006605019798230201683183440185209879426376977059175908322273677500619605730534465591993989716449069666527593394100931162712816258625892341476843292686735954454814837248517961866218614661256603942257788656178174168799430647258253062489012823558850485988127564386964994572946985902172638602308265757700254315626844159910959006207287037871640309296463168627174997442174450608536905613796343945803997971296407566626969218471127089961135696406585108160829897501332858807900012641522421953519208882202308368299050613704785279895757739699496452645826586634603282616485463313426148743803152945429453342921292051788451258525123964199775671422266943438738825329360639296308794373471239523228350627124448145463014252065285749708167647851008527842484364248179913043489860341021152295810084628650635332496653955278193378218340291722165464921285280460955593449923635173393834394958186774724441861511111975261298487679768731677869291589716835407981769035932749739799570513542727264653946941984564679099281915528128398566924539159221520811454201835464649994962685458742918913092609573468990569033363450905419957027964173605876514809736783061801047473020785436740431283514681489421465557542826816028066643432886884379682010063195829917912956001148680913764076895186063793761435429603444161718901025027594820493452375165371200583123828461152566946506192027533637435822538633911186064364554874849879290612034873403939353173357435306612328198593923848577724853572553190563324388119765498339830227150681320737449293188094939444772460756069634112130963464650056824957418242312637529061467541683446617247516909784572903096272491211859702725673521164419781950435207895305212797154472630315946135626696651307455484050773023968057952895087809639485461960199370075301652645090400942715315692254754437950209533487966417964790968170487686764055343053449433204044153569510525642273562580769726573342251417913844721190937366155245790466498346737869448266575411224380027162598468904763423174867013432262772135452993646648992042827525592842136368799085041328488045353571114498841612542659957270549921306453195470135404102927228197662654700647855942596646037057279189908643854885514993531787126350815505529196533820527124649370339932244215042110490492721895232957694604713232363525573332061065087641227150060562832597277479778775124244690111647907486678134512900997886996961008496663108046565792636614564096249845583126458360964709172557159457998912505980283488071557446419599572086012868172833119186211230535522555757696923795681657020161587180842919387453934401305877543847506745299049168685432496663979403297138784328408092621622738619798177224805810100053542298785159324322539476406421287615887697844074964638156184361543504106679428514898421471342758018182178373339190254257052692260783823371170194319610501530290032240358547583415132930597736787655603761292170615196192706191965956610985799883673292917676983891995541962701673314734742958332016173795746499601661877779725136003468571097179618606283830834214741267219892506985181093209289503185658641414942982462886276223643233095661514364114602578079491360889467610445972482012249688096967888922549010361110237429933360153444497562397572621885733839014428067570454941989935024987711925763891934834127113440792622440055846701535902304951478680627707680033924199933665667315136901103521008446352700511884426829657887513284650397905325769130013099382694127254238067793418757163899291036692579037175767957619426036638667785586080870314918972318436047174932604810481263826142617969790729747317846430092546803372710843754781914818365327758386961412082847082152226489638286967354899059700210336094942312918734843211027031537428974121885202580078447890504771452404953545635071772656701968852832904094290242481212742903877896192534037188111042512033479272650446002034523103972274195731974157890094432109616651252790878740649472957162388330413739882902976204236152864136862283082588440925878581721096802291056446157742736697335998490825925749982546348426308064470054069313628923172878026172218586078784760527288775179808770220835222288326122753336232496589243734758658750398583135839239130179402393517159450269966593544394987922337882682729649253393394609135454771063652413916213597687127302579011771346477571581158575419585558990037139176652221995669663317379220306032011881553567310159762124108756551862332286730867794624311594066774627811522290610355468134937522499264630022763400509313007931220309414126119537549750852077847772470277038831739646397930886449742451957089367492569915587712326240246241894093799204150119898334409597826470627976050943748242214793799633138643839988606009636745230605042836188658312424386054163695852133814487342820620292335490054394607780798261909901527234882252243346325304066359824990719195258529701782038895774055241208103707745894824219427333781085874072337662005451409263330413566501716297103522701268038044500769220473261760966299049718563063884393323786791066333979315469252916197673207006480561223781408100611715819246147020214355450149009013670711126752278975002335906915639368704054147562083902366049360493125031222008428255291570775938573022854527336125736722491200550551780181423291595864368641535068641020442378570866477579138214922466905578843733547755662725098250464432645567717235759796754425190016542171076514685952809819962099166806962201424639890686530869841851119187813745402498050120526722894529705499589145740535229474437804769109338042140929814958212253332684869073799296658598115401354563240951355369997712495823371972880358167245576455462953889492022578978985186173949596331480082139718678281381755609340885328631380889669529886063472955760200864339127750498346407351436624997210511907990900800484738181359073174898342880558537262257568250157348109636612379740021036024805595366554106771553998796185179978069612452059836361057261200989802941141074604115892399449353721746841478999078284440486707628538927728445043717244354387942324170263794312640416842378984591122136066044507086421633121569064352440345484544101932194149043058019213946336830956657813290047760138488769239085133415389242766050871079665335087444900183625282276210785149981759953405034921178652939199825255590152417823214640036817965698203549988249147068878019657529555007591969513379393073918638650936824174584566725227582932170873116676806628266703573401933657682123685946144625112385056196908404015151811681755524401857373500655761287378859557795991599087687354987971923460458272450004648083460692877816892592495838912455217411087985268950581327532592964645098405522684608316098808623361212846057413721790763600712606221388806924067603598185193468984611279096191446404668468175266392220670607403958848110719571686179024464638423278002488406441258807137932066244707918322682474636990178365771187137174301123991758698596919336713785589962041789285519541158672986414518248972054928203309922116062911851848405986815641080271573672481063235959336892532929216582282479607462010421161150184972588721091130807666051014238086323023906208750227130587253038857578111065259378376108508040550977535506129721117691162283098823295767834787171273015275803976110366813455343182603994194593213527288843698373906714600148322792482725880222005316371804448697794686970571108053221956313351691833420106692221292172535532731033307872352700536703112846945420347347676290625405844353873514350131274682475043614741459790719991066634953203677035442177252347632331643716102128143957370366737412672047752600716344467374923991780781938726640383148282877480008936928484384996714006003144361394230921927564680564815861903910916762298785697353046604174177836315441974552148563113978569168561520205218778874286842625832826579821084270278665040144171953179000203812268538765587880144228022528584563302022226657435599740484148520124301452056606247519009246978061085053925703214722935322109596721569195502457068998916420546643957241212340132200961702746411043474444644493787168343349512957661694636136617797674491360661892743901039143597574221833465301328591788926959656879615256720397403273470138659921127743100515280168940047854083914772508331733204247288854402159189348689560415761073688704948559616571156039778493348957163267483828496381143130521488745860947526686765878662364294027594951112326323227859876696420620077460338351553533218733332188945891537796515290253270917845855181826751748597119356874888954623402787170141996980959260306782599206687398481105276267377311886488471191439802117168146082020035851078057234073623599486727692440817152553938347920384760657682837924370077658266406221610149755734929446599029761481952464915097118334875571651310222541513529777478937734076291377609085662819943783472553351465186017863417738942521589945921969489685170032575420908939687760402284758575877768480776834876081668592216229266109428489315231357257881971590705527214286576880963563101699952350478355853519521980131046987596011818004396810425019690065795685385731361816667834453448200086289867526103451707020150310921593137502502252069429368526183397481596698742833646831331138502383341203890017795702404912341229548399111593224736425739431234642881529232744545328589068641432649535284688831161834053761709548134934372681221438138459412112701913738560423706391801841245397339826380930289943396337710335200423660312283204843015334125297760430520266111323713103030082284586370445891994868011998061630700558739319159718718223023384991677036503705658614241034901402597605062182504502743633800503763463071342572877743157651435927195759178569669092792952155419756876098117331595257830543038877059284348306301523514833788106710502244687278705016553364619535991742586313206166531784051607139679648798086365497003012159924689456796103069159961317380663340927030738357249145893696474230642455297165049239511062209363344205318719661753104649704157901487162685177563908160496294462266591973053238971296662878908747638251859362342221353124917637205979421268086728914197762711639047168685509861869504870116301926621300038261393542711506467655808451921502865065860643677022532778970069316690786934076221377798658736288975966155322799732489119004068159860208819762857547507041128915670735288213033915607914001644820588166518556443419727812260472699864679525954405724132658296334916788832723080614812385212720786202339809067218841174223748669675396917486769359100236920611919864801929541514048832770825097562359540422025155892152097923421961102691740602834711523086540332714970168731899671400552697764747718832229465441416908493123348411907800299901974523133200532269845115984043804532056878154078116715639797394017077611423221528971038141142780714256350804079133061919912757761008275447784986867035766681584373966154946603960733176712295214119737926188431914835071166594812147294986548559157033254735691591713279939507202360133342496022652151322645540500995444671284420643480666374292405794440280672072721646964168162676096051336663833522485513009182139034309251675882736485578177949865862014021670539183733438650542565912505802384771593741265275160754863633800427321650886723190857634811680532300198365235997359662133769921778256037401863816765358195476853631587625774290624977063574542253189977333124317847957171054524757590485859104102651431501252011853634801025136724934176545357125907973037756204419973072634402041176917039575262273377361700268675734320295315356087980446348636963621099762138844586453479134510598786585646545186827745331897139136546847462707078671362543459374410118022912013908914737508610364893485635393373453217822128708565404714901520595173691925989394657193803893095935402016126936319288704455895205325934385503832656331437897545802290288060265507312826386300106577879707850968837036308863812189054034597863515881738640554497205509939945213746844523152371686397553506206578666954477228733442829782295878406532749431989789136458001614948511115782486777998540590607080727106391549653275164620275777478330698872934732041469042583385908497774011994976106453068406725660338354493660081622172424259492881531817559743199322197972300076560460726605216357113203186503357465336746972011086980078988279733642742747686484879095257837569804317234689647014258518554052874341010082901415906457344281538114167345694548416605331680961566696412499139054139634491582271712020141318411043859025334793686431079116472968906742998034451438272862324372977278413845282494502232350031595217143592400561475141126325523774540928025562430510527016744911240750520035239870780149699166848884391134478025439200812995241032891352789043551807619611122836603016143277661419412219578178272022494080495026204938167589995940739996712270570317100307588661427416194216182297885513183148715994878390079497673825157169207160605401124028090021092476532229402310945881739915925741995863753093434506319669145639324875729239012356447076688055672682864377811084571456469729890342699320413833629319953764906535432508899057737358341926426361562508244629464099885443535306982819822901709033486445012861119605112436693263673941190219191190841871913901356212991006381143188013367878671285765367758033432381686448869125361273458281542606042139635604447175383885958020812257071318357658417479763433245250119914499604543519074371604892371396637861109241594257703752116520770296838075133667811481282166414242666802623437709162851663281177078412807059870564869235113367651948743374968996800447651404873031399367951436445822580951424568721550900182182546696626981450290616188712631187274105317478881159454602648671046964082063496207518235961532685433315652841265594760054974425978299797680328960321438536652388169020002022689658971008410846411949221609448484508896459435122726034843125015971379010730758963405549141433430937672197824744881970008522640338033193155625775131448164716413769658188513754474114913476207999314964108767101045043053611848423346109312024247845827721930044647190117867154097352138087298085811327917206714367212941037863533900876379046617664184799063057129435179604818330603848573585465049528997945625556537721661380252907519512320521077020453125264205936405860079222791052938316306021066468179711604366984114759598577589404587973124838266137197687829930137213502939151333637122132386254240266738199441313456446737059602036787608688794201395336912787588181903974771085789673511968721492020365210189237782034674869761536746041566423871590850202415329287690891063616609030128230729430690671941229859349604169190330853581861276922530084003489158494885017240492435763196521950821167259727290170202719982263492963498526523840046897327474823291166934873027909844863048155487259445866376200560982033083534165920490052832418365284238213260536097297478739133320316006946543678784768267647650126121877163119396167591738199956995950260110381468132062912160203215303580802204904633215439242955152567939838910569055571810994103166056510966521795941048946473540765037306689380847927941517204148308120571101939059247009509409798016752791677972067158074580335902997866732032729990959302065066083388150988077249470553361179660187479473024436723955921780954695862521455517325053303887182553822331446258692733910832200334559982858468824564959037926644212798581107317874866098890153456531122892870330567448325547394713590080208943740082281787572453186058339559190079652396855575884688751271208877378929301415736065903395732021911580281273301723203880041198776085022244995017511440163693702603798178099863039686568239531802445963411065887638062689412739607602408197064800333114878918837808576734382384219297784506174587031655286031801412487682836046939082703855014424721404308811807864330337066672248733313922212884608020769338489939610702959017597781330619761987114986372381982482052128304443997845893684525797482366003865832874374003736765124244448661877017324996548524178623745284593051740851665634315115841102549722074106561069414402332684955924649050194298555059694031788700962373355120346494657946573838938819121592660743667049358623983248299827273846775257418673486519492729463270303738763794513829377204634923828316010026410007753220610166174236206610143448436791533813989880511949044038700860432446736389650767409231933906040011280638576492695151598595207958711770555671858770769286428633868246737922760249222292360494490117937312331520550207589783354003822767187232758290031030410203179690808340566773723338399231946501350579763659649508609502247729588715912067191836708568013573316957170780389253806932703470936988219496539629205073383634116578039547554346120221539482105167039088870859228119492669105115254539131111486497161635512369760163006667718777909361032925873189407211883523163907230761995473088556381359647680564660494693000054357407993734588293236549288936285951737211270520438331603712411858984227317057244867454486920659747746496281165586411212059942364171387104566855344233262974391014969906429521844814204869822788224059230536192157677791291004599516383302449136141513094715786797674941734814763700343389040411114214599284759743891596401104472119977876078004340605021149664954714444839725583617716324782376066393037882175977086505973800142611126244225466188015474977502207267466430229591604026862941165446048383304037646717993953410311469353012722563393413861443757149667641469987462147954401569088391757335399978921024816476690368729502824263039792319098757505325790397870178290801684793938933333899076236567012599848176827424507756636139036315529410957840684559856009949679626926934051038632079711297029705612349745541788875324248127930309746840274052415945401997587220691446628911599631238197359035169655350664577985933816398804055122004421166568961116205912029639975969062167534334450498792123968929599636202597747875454474884179634580964980145028276196134706234511743110301062510514146954604276111767379768575477890666316140860454873084238748816130282800090782349536509108635935458325476790479157255510481401990066288872835247727218685832772826064192235659751588448857180190494795988006903243448624046723227628708174152675853980443579427960245925085259698091480672069495147685996307141426220914706509267710915154048546831057012954587745553859158732659793153261588081312191515690581760226313860323593304112142859638055445199301210219954978420039932072825188434087531038894967458646199926819246632226715052459870046943197077891800532366318159447120713493552275309764585515796683315911551774687749519742869977412233949933140749948195954087997880876019665191859982320756816400971523593098153368883676940866780313830793916759761515813181022653671533846036819085598037099539521339064774337974186816220456656207238890776940452469602969833971691715136901608753172405414762541583965594697278389654410883261030407607980217705678429634563064250877278599001106558247470178355047127541727652704553539663341843440026226380772329017504323214562775104629101962833449751968383396257670312567488471394896858296814090484613129759106203193865779736962562147137540958483781443107869701508122200908542977093831146404003392945397543236146206446690629870520015046769870379005965349553863067883104514226341882381200758060792272981376491244274664090697539552866093983459888241088110578519291846508517835846485590164914631993777840992558287301995064218249572649992089994948806033622536076540431686896247919910163789130110178670668636754673035035984846045029821285822625014605206917981312684453608227270521304978772609420386651973750009529212345490010937631604507893708467050224131115085193839838529337262168336172049766421188842196019062728492254802842595912128973153619595795459660128935032139276434864748493706819673254820379922851325127728729342032577231284114637751373703710076061482114924722891706162157800472953569708326635967748587677695352419311869682900362964375819065131239562586904965882263751868227753784729581820223419982465381300544116200414488919255349217730715034971450851677055549758360967753106273486348767137686748883603337156756053884758348861274568057298901707641055933205689863571451258205659389926613943446412205355865569630757359950922474767476007201448478589421064631758994517563239273841947168869934351152466818329865325925503959310362043416452887868110618039361809965018146712376725248846993476511537627057177702356085509038524765881392816813347099538777056519994929609618616406094278379715164295504324102303060090006456262212766479657314009247631926502724739897832318231378831252606506127881639442491140139405148160499258599588075617205065994290038020099625539742382110999410199418041310951676285165116681452967552528911363802721375606426818063898723850596200800201623307757197635573633059880406247184908709088474130167069293012269691306304673988149044643086566200016849922012581894510033811862169050650372525822503666485768476530899805012949242636463034038085587020055187374008830214286209228911999738781526351892705652707683637634757239431666590295078772445338365112324862069398041103620281367948358200828505066153803751458944573184674203012808090297365453817436853391711170959949661302681958994248914689503190489216031584888799116469089966622574937602561692172192101211604086983484316534249703440577276323016435007851281476072926260911425367804030002284373193943750832754852631683200423604431586554538761897076321376058968057831645355720196209201241582047836015275381279660555092462422760239476433511864134167832701910018035059573447883432213210423393902402615048248718273985208920492513214317562842819925023928180730982883993134217037027125841174684987674077454382172134006017775078168306077077704589805636919751945256228105495291573254167262035456535345140207564136109888487788848796969497978192277984870783749478384109800308123466624563635213190794630231919757510387529561009583532576696565008674416468571262928504535730073281446807088668921618002073117214394874439453714593574860122537972800814064585353065909300813483692177126944970595902782809120521938206326527657865968649817624377640476116880801629134736754833810336199041317908821098799712288885183248225635935297836763707291634224348231003821204798090971074587431226794134059562966207089113955772084797134476038875117691183822789784145118787484385370805666212931579220546866977697199696711721371642398301512277452004024533457053135942882050129631867117004671752844710615193499489859470049316251436200155102094299777139813989297534686259176543232525484597890925172770547472178137849770798285182439635641192019450094579319805634904976275530964569231536625857110950576199869407868291754977623683445079072937154246426094247431283408429503997591870725352370699517663357159515854795759199803138943946225136265422211282222650175555990725204285032660641430861955679421327126857248264859285187572620163695465303343021751425853862314864165787147839351722150837125640944879291306963323921721424386744284130170283908859226601782087227916421925734270512813522271617098967579685094223669041808549660381544982423770639483914721781723330200484490534568124260111892614478049650032379872334653039168892989998644715739110831244648106391218512902693503542824301526530961520529401333328294925244073974727322296427262376538873804388064397422687098499193322171116487122412988265773031581959302081861207782214440159969011997500439355611289164299973425746429311520174353296764399297436551749842618208744996521568315108621270782385464989735163213082229690692725413229559259435343991669063398841327988731264449109062538470410140407644176243212814986629788275447047969074570521715540417758121217852656811996891135316145271432344791100574549998407580471021430900542803231615792814375290556788202189543347659658982454140354875564926944368669804422986277913806032064960532492082173443881449349883656690679565616093036136965032087687140693188488942490259705913889552284161366768642275541952030589664778399061346569003495112998965992610963584040368898158994445283935763683981781134673206429559259614264222756826092299050097923581901773310485314152654869001783547340995087412032054269568547070883981353755507229637373335405544912656173847364704136128168722289104907705355160862086905058184114086082728342625298088268076875669680124214921313727783092569569513112835884007682596700021666616984140926112558345591549084322786617093414416937118817658157506022819233287807198687871941338686552680371279906225830592612793661917412605114116588595395366831117386687865382307434728118846504212387875774303204262823092803591595803266331667147855465053344640004529297864175339202233730486159404857155242139602446579198894424346296104210406247189896484587266474487815697563872541869460782831759234364846424517937662644945333319187475767805984202448994609389603572654247673691322116717719007466970606376944638538866736940216613163863188497981154265846294232242911078952589758165422686269317359350923579790117311005793822675537371383476861673290812231336809992042771464538900535236391066843365666642998742923785643917935475514717691219938960625707916473032192585421297864876750785187918272777033733482991977363890452828078831160920185387825999440194574832861591406566995727486468423942214922460000436291809710720463445034346628821051131238352803569656321343264489856043811739300820234581941158230605548072709412979866695210534551336132642849499006899606721536720525144328780195028804289537147481297501602407825219405645671807813079873218724856864575918438537342903279505303098379011013356548380971811853506512996403518723982477226084965668686814252426535637943772946821174618118436469111088560553004574896411609711769214015012591654530433800296672241499383468451749607904794430962764143628771694283227987484945383506008558417807611197884464360739974027104325994063684773483936344782384772897362293748180526163380655112573113367834560764165020471597472668458141019838231551042619468713572098435048668217220535775519394930351646335374027306829876743383173571293282476520879355510918704936459604484581919830244568511770842405345035181526487691130388831403962236050733919923158178774446712300836357225990763163149693005188831056668397548650287807041147818674489932890536033762760652367225955279491645368114712332948371614983411884215774712898719919405215599595152643475505218516723117719173406603312419488155976214184462264140424014666041970094073539551646091075186463428085179267097609768900186419609879879047922081456161719966670448642977851674286524055465703763180938019455797016548494227510703914681525606444494631989072897206023157485399004988332295079496532410460406309449003429887646514286358161632417745617458784149957251525328294486562901567914017822803699903976306688848679409053700934704368916956333571155715956428076904558483403199230902080290824888778015610592910112472322264909953209261975399417048053763123346621743365577807455967953567898235685682727653072979850690003594169925715452601984205532538566634560772952606353618828651944905238881305464210417843533181559545550920795875856924920360975317764301997522157396437054244053419062103877365800207027533076209695970573298175091291852500441526175020541790883098116429411242568497279976660677492734145200874890606272134213907952190651749088203087784503755887208218275798938414718665166334944318804687802826395690730308393820134245795163017080618777289595629968000262497645405063541456796819510016186935199030512078546462088773569698686576076369983969672666708778571828826982369368312038367408082052968609617370348029228355898757597522085719968627480602193795962813259576521341912730575283381913339119008341777450436065358760441116709902643483259470142237277054299806087144267226875069123753392777198917288224837211929708198903266236986366435474882134359498612269272281739926673999572030538392789810043421878083814122580330255743346489503574523801549001478805890309129954154480601349422219355120017280747581912844340824118244985699597738486982392643934308048449469280806561382767610091380628884940878550674516410022561655421689567303864023418839526523884404346568020942553061087411412580855448879195981484888428897411776620023754623782380004156150201002968057783485803016044922870179047961947734506535151470263597904872718653015463818209507022255442064676885315532954139628240259962788571866464754537854707289173825807805578843503035344751673885652738114570955485407568189727565473398285925921673082851164547709064733741166423932731212702250198796946401989926908976932596508181720271295523556324235725448687373691416302663752666630359660644121019367133933731408835562685116232852496240574350441083953974597503144503368122460951728038748242104068883952923644747137198407798656783719662123267556342128720427308228465904618505651763173380635448564182488510818820761168979764625070039971257905198581875426498863212936723460280181323325572194013650427730549562609798467252178880238487684912111659227855546464728543623116906662948267873333031488649543259525874883360658249376315928563154753461771906989316823001659196431106828987159545911987738476319221523845296981516584090270634984090133280175167624371022977353410096054382932466806598806285334117941475488652338495095679199533016971711344541017006604427627625772445245189733281709691394399473272270051241367006921036654782534390046672861902102819651871847605789977380245503985617247527300817357782573310494384535884185060691971752607181014157541623083571560473749975528843978925519572374096198403524458698692795600638419526437303505528787884389192977809174438853562690010144192417584154680787456589955132630183148526047717951246879992568703900005702706255554250681517261028794359165503888553407590502042743850496953072988245630264196070710257305103061618919675791470922849556596149377887560094828462121943795710337800845044204717431907457114111914052211640066335106799307788936215482548373150131920812150295866803735250909956265342744170387052649856293286281672876809236424240189670029297749056319322940997524465756008978624825991619605978631662375924552181505452626264489414828729558515947291258682994177811133144678731110547008741651523126679101406712759162963499029358246006598380616864019840452934934844837153142461103988516210111952600661432209106871805461968361015892957462933369571223706857216839509344874072950053217020693868002380208700234904457038118458888531146377674335501071951586723617441553206323609419252044918011973441053748584931227402932740820332158479015366313938379070308382487250089846037597071193929012063856698351344483622321395068410695859146586791508220862813566801351982709386156114413281477077205112282836339528621864979492434162368997016261379118685165874845398864004244203014688250340642637869261612492917059156304171567395017335486957710015814279143170123175844875982645338887914520697298689006222340747884361038692497544627751749270749306806989687632953103347677976761618902030053217189569661126602283942200982575740881117435796279580800288954429449081007179171728669766059831690159358463848295258106928847063687408448541671089544538563873723021035926202179442679784275716534328022815803576483935963799395075978276871277101420961619665658764213012927562626699038773908722184662293102405227466778334366702472154653149085973331793399997062476834066352044888347082874091035412523541053680500115955491747000733039632149637203669955221653499964695197451717530901444298413056888826149124532067158696996160055033754647866388641949104669018351846228681203682673403618795389993541310825924232467809302085387850458083906108614603246681446152670697472271849823621154929245326063684213911595337086846800201028831340830153586189501352502848211870087063385944496663578730759349119506063683906637257989465373597103569739952215049556219809824409157250723555928031400274926608580063904628975535048268016556431197932232684315507218617477993484289008771151378111074551911260307258489313835391040350607594884896700098830344788935252729153425843158166602526616904855609284826791239178154439962076881447820776853521169477714096327219597591392106311932627313412404158621588517222403543866429145622544511179198591077198214919352116954113763357732848718399327028123987475778359229008223157252161513534249913441795973605039595311417090348369448329457822502890769195183490105885978466801637200256008651397612937170063578858295491862335109399362155326624642624707463528746220126699069291231474662976726384075356870303364320485663810589418020893719157818605225246312938150813314011013697575680252805706219788302799035758676225318736106173121020182761152550933433448693812136027147131828977068341977612245987500693663963655900097094169831674761072392733818473221929347286523783480354570686641584008460609812310119976391716837948753299351301029320109601036289495232712535903260319582425362308960370911604650624149790981876208442942123841104159838066255304463163888369392478865987901251508070542641242022203347874490238216754078282165455570877374258262058946009914446483608133914526027821682181924796264213229958457042902873580429342873192851475988208959149180874786296974639314451176772039773760180504238379852555372883508145721171459759518525919672953074995791025576805304962078427077581308752467426093637170746270555529331762793559559115650751965845165301279654089074383646535709182117070092484887285954952525782249200179223376095100739261374673730445751816195508257668046907674573325334618419644209190452099058797269471728901205829028366352261748524559073627900948246841772770840699754160493153181971293581980684203389154301059011281888411390344567331236480048817210418443364094549649496986187116050491806321978293168193341555420153079692691082600371009824061325576913971459697363413519349980460333392768810996768294458256640425353061688726821168507761797329287099116493655970468946746452573980842017191233332392203986132306332605573600896253359756233323055816370078111989666590877066573297837345373988172801366585282134703832055534683313372047725259783376473254260396497057620134858461126977736138186094603669954891523760828252476873697555119869251108794545033206720437711248464808539591520109559558232302862049207385180903502954319923352459746639665232009641070658940975491650803909132078549836867493937825700031828015546502065411606489671773005360318561830019940857892304727609424532233537796016056701839534742480866404367311938701648961448007284415328051322226207988350030780616979097672633236132972772093016399511304581137384847081079888267550571709759657585807250338601155095153411225032469318363331134151321794810240755618497963698022250098828743602484447856684695633652775256370946004640563454942327501990194743737189913794911292470766207423756966700342018800878327520229661843234967119397392574762797730429538653527116938910177655347694180879161475357196378670556318624090489655493380748416117784845705236283729298777075690591185479559665983763053743437111511625193620925114674643065367125430261331198979174493428824222270267077794800533620046618065896218312171900745934703688586064361502041166275685883510370028711507466704189789202707888702043655094765937989193390317799774742760141941579454522764085790218098109030580410353153868779818149129907524360488132633031108193302679062144408399189060423935390421091984618885059159084878121323624182485050581532806195367007519937964120852734928516807661806177253117370865254153774226008840012671834881281816422985237818757604825390086438807920463808204168088009852159480317176121621226736199850257102113763389681766548459623358713850334963971954702248298898838430291977402316747787307110103377023315438839803949840311094069747628782530564412371663221857958706594579164088541920017862002640112135714340075255617255125797904018852181874748076071329296633355626043187927585435347694653074071764566697065037194675854204648090753586263913588981856254805660911838941025391711939680975689135746979644832047509368008458957473530797063007605295915947134258706195132652251913710273043570472267206505149246469484333092301033344460015050616271820922488131842103245038564834708157722803778718621102815072990243164670531438784920049295906753318306709047501083801342173906030240851291237838032843921809567992344233262325060565238097185524265113967634359537733359210161433740734020329449387685219191255791671953154235945265483079080080438513263767748310610935211320091361794010411119905770676273751560340533027576787618052376212635788764956382156948722450369581126566920258029784467339304064698140640230165668497641197755226316363970609660531274475149852307065783509585637587744927321559204826504850273603274572242334935816626892268866594938505399652561582341076959485616715916897814612562871459720395822749757582452729511352208291414906379679885076380651630317184800659620960773274318172318748418174787188718155493119197028532670025045842804673257338984498664324481662957861504113967384789076324686660536160797804161196674285509138045279566248630034891753888831503055849970199134643531627537618597130976350917764711807787502889332860692846289107554997715212377020583799997347872154168526624293709653569403943668906461331038286108021499475093734875823530872244796683436008961625061414799952071033474693102426978827780962488369077372658923930581260115513479661994924805910897108809168966211359916919383151781692439727830642168020952949204988960403741875420445384695115877468093142200992085495703894394596218351416025637044996605587263855147796601384564133228642562576598060831962667215736743258434046718345597539801173539118748317806260249338200457056497386330580651279609532879509367106327941439831963674031706482963639729557495698250224435443824024408209848259053929296832891706837930938008892759082171120007888457351954344960618882312992185447926772537018908915379506198191321243871789866985688952297435435800968477366879283768577210451538307865605204491632982114033785510346078125202580954844631743766523031192245929586449166974414314319445103069546185296463467376556351285955242848281151409403926992078203722062033635095027876861377566419343026760458489333365154380413057691146296901004116063589397620771035704823881193149545412494170792974893212527947522472113999578424313140070935171070622211897484347890192558958757364302610593074825940770229623673163982652498278636544717636625438526287763453714452187964422427494719112846564663523311358082953598318422935639741751302262434270166308221546471855781441354519205495469188691142525086868489219724486562068939033618295531778556867827851418341084027829319243451725546033143375643000747272419992684996926322988832430775419200679566644845224264844709012391224101402198440120339565263600882224937222292028451996265515905122907559778042305482838502004821844917265704994155103449643092055337393622766131666320155379596521795100815335258472981481181697741951884669182520016408059162530542276895940283617661055869303910854172325306157482388622840495105728820844422582304607399386285631204315629321226984447963210263798338809583073442891810581723947406139856731521747871123717893525657837289132272293967846822384586190719159932648214891724641570693939351005923194303078352638578475470285113333521277020426255615778639004668181803590547974895348197016515289766516354822827260530020349745222092303132253746540846086963018171400586712918549439867249691337866388876397153463544824308931910050867105500304288552872277541670072608104437197810685082734473527243982403758455808288335223391869388542834320094103584546622571468784817035133821856862511864153926071259062419814687273598768827834288064682861460014698395500535647703392507545872037956221985592880663810401077561706404291882351899628858760537467463545753826028396861166010443258374428582354627608870882003897467019035738810012486639624678428421114792349973277264654787708242440370829051369942988939963848163927826973758735011479305656757462445443037558867236351558694473870974162134128994822400609380071121202827102952913693211290006793108841203749811316893304485453394676127192068644293074610611431071899971763138478164073708060662914563748898650533119418667179417720288696611773479973143368450205806422464350795503658826904535240511155700565928565703399839420853414780632118352605353399442668872058961925748999986510076784890328392649606158454521673567986115496788592642130380331945159310045091765298142566366017903186230838417761974120458493811983756162238840962162924250680536760887643107529554272850422146404460158076429918035692883605202727947833752852743888383318998999053838632706889037907427931127551447154719405498099412909680678177147696374793131007909849246720511117351482634230020120169091260377276291982330575907854143553813024738752524771170034630820541440504323700980665115183436786138261989475175752223533927397821118361841580303190497074709942456952323861901369206067630636816280057719165814552397800581817171344464389902296906067921144794634874181759411139143394292404945255239134755750880726179992749864250057919150110628838989525770194798625564437431452917242867034531829439638421316639534087572721924620692827883595334477270927986685749971054400517471885378266737889863892103711940721095823451924768869015678622352516642274815447965089586846285279784243389597823985281026019320938419009466599123317008607762505112590623191134648971448489768090231396331554347154594651969547716749144536649884568128345793030232925565016648105620675262548008102669552988063969885379753440484748937249328436897589393322926288214580050767341489276604416606786892972477180537574223669039513495022660456710707837736446345120413558253035606953520078438225920129507873654303273532530295900636220651540219268299431630446428296894708365186237496281129007071901121919183795825575025896266125996978146299049064119031276255924480346038524897922122081722346118281440340238295133324585004037063018540817301976690858850369685039915788052986929323229880332059740656720165930744393931513406757173049388729619993881098681941196134901142156002285697393796700750956811269412103276453967597450187897554464340120794750674441234481444705528769910639911493668834907958586047958518106378242643750407837354939802582399892932740340642127325300906891187972818415113336766216642955808362277731233992576291827448004483928668710293725768310194624362548352414949640861993751388265329238375439249558707231136650122968451050876809703805911915193713577464226786238091170208497144698399669352350622206457263231355103271385276462111474267823985415503390052086374072204494925893487503561789910900224641286814255251283382407292757245150346033314029721349943539380102967409541160622154954162348925840599009915851426721862657356260789834678692174410698022108968897116917592011889019853531768980619059016238228111164746776611815205394134850919241813853212368672277753829326510252571584658343766924187773092191905343292935869489371074519527196589731673902224262093651401554301042015128256324640109163226526104726911435133748607908497400460855440945228847723100175739274536825540345576278693612521539002398463216804812027612052470081850738299717199914782398932855492660844463771506966976316556181210181782561800602207310872944937123350628868391513997048844923363441607584563270882917857282317073043821160137495436094044327264946717708427987961668107706072783647213516411026730133383108094989590609820766370184383668536064960146289615752760655212158371439284827174044187313174075520028814639012861433328232128856758240264763376909752413942943487428755467316523951293736107692206716374889426786110834848925977702023197480913386642718988398486796839117159373600859207899328234288679018911775326069726428038036171964336868735767651618546328703916472863074653007706925921884830884097825408318729450253565799178568135795351504997802362643221236125552187379829206903514455189585466617137362582223865112179279458583230531706802587994884944201131707707193158458312800885572110152573625770412598088804631292533259525800431318275605051609723907945602599113214958830604801023417732198288446004908713691757716139843975850975156207683895313062406584471827426414326149923671398481995270932449496614819064255081276937442897236679638162732952802627803574622472318483881779996953512316720517303481013541168510232174509400102484868571355323277345826321867852024115248789706083867152012611296661479089395285425536842759987194316217430124093357205116890307717583896844447987368126329783569729663353724892220305573696560175090926115467997580679726230466477844566811824555591332287579446430588309017221214992237200485898134392843837217714303251525869133456604064314075119028998537079985824310496300991393837568789844295348895719829793255173788682527997767138957114153274512078322454696419604644280971055003503731139695448234106231634962179863714205267868803379898538405862376728160905742605589307632816264930010436465403979590305645903471909665351570899557539373503850077951715838002827599335744552731430152727233667651249155727426421754245649715418985757447483883971876111488212864263476394817857845766614764491407001986033562150469169965793014672013002955977828970223233289459017983744971478127763473191059066046916287691256922825769299965371263450293265153404645379672271991950982144078996950240451450600100569881928261663990088951211402561688009310276273489508716993878626064517457569095202686801081099648812976275280802625217181226385656165560265641302226890304192148958335932960204475474785629108682927432773409434708927991373854490593772171149311308181888516141466116048198341705377046895112772267320261567790665478426314872262673684630871623168007861404379706401563482447883756206757847082266072254237006322735919503447661845684257448891663652495624439066699709597058891272642150518548685783790072206624879915187825370008898395868831428253652170270717353141683616963381581287705566214410706172033704789869539774404858783861322943447799366725748546288520102993456948166655019816136868177206033159088025930340924949855354589112461818819610323457255200669367830520647229768671209290057163871877756858385930919022964565670633353154393324993859732286356300131847827793262922689169448811541052693180817186640488300349156987091888548330838488396822880589374863964400425712734122911877401576859539538953991242755459339291355344919076191768027447365789656062872022433833684856476371451782084946103869037495152972713656936522164294910697332645754932752352658424221540587075645963166937174259087988288218470328085504361264436764306444140436985190487541088968865684098836669656756002481793979466967135792153628545962271209878513247272835116871308842760488006909514970972881854911883512988670872650951272544996377618574785072994425671391609009983538026769826267011971928945489943565937765280296992264477265998627605343141980665043209278117920188903824004954760403008296021205300549053243452869607706066035002380175991897030677345286102628493630664792174424989843746910694701954998296186527184969611020760826037249277908332610332421880138597967985546977954093759842912877432682188926398493610731883341736448612372792249599563460888079524211123432955884901283293958056754149846292721104207446439546117647640274003654008665671860501232485736369913937542836162201566988440531579930228308910825134311477627564841145530699240178009830704621073066636571431360439889072755509884832169982373900572863805833439604006777093662984922766471712571563490122171918150360977823538972128376538998479546503771679483842604141426255460255030868445593399479621618324864864263440594940865152600491727242723407777490984813595466501123377383228160155306729350458242629828252600401993355976997712544368920119987387101730221167766307656502159579288104447349719863869258082676724438930270787474774838581246870313527234744188761309411988608718278372227721246551250099254464500800328002737149127045797085672211293505054048635580015569309629459787861127898680414335674030828549012205253398888700749933149347372682896179000614619996094302640306397407058277045276262177830867373366052908220894622440828855124277455559429887761412235005314160198100054841287927600248388617044793183088439393300929202791504895994129324759882026974542467428455082197156333785768662974399446768419364150466151187417379638912163505956599014733408591855642443877411322607769588759506319342161206144809149301469358035289897760598574863307769230042945271712351834799095904437044979079151938885419082132806070954292386250794384888200961966488587918387417484596334891151585920568804718309965794185938236334730164000035140012478784867600722844189372425330102008810992334797942083100536068243443439228131176661667630603069380406292907082307158920834337015930320549216548930889592012576895996531537325285621228145073452276909813861591047372519414377383106134894128474217044958249771640178391239910776725997887599558848098460631375650349683706411266584106555548081911484093142749803106731719045181073886112651379860720711443572832111890329700923187417239554728315637702573836424087646788652718157176262506373745275243426389057520178741704406239068620765201420393168762244670752850848922932240826117313292102141765462359475785555629172357258963391933765412180745724645359663522787015583443461120588135622825290735645090620794216820333838170618853754215273581437170760104157294547977948877653390065454787109735430625810284520567089524360266937555047406067797148697295110067412146485317162706006846169517044049722343028565846130322883263796743353656565107757969330858135233344772282752148032116290688238705920036276769446944090807525463157226301319212547797576649186110606040910234198775255406167224484128201447628262865308388278039496885754880286947956173004851704233612894303341324243653020860201062968042937219466551373454740739148362054355825667993732471148087768595125807086686195418973948147691873313510253138801902253602018570205687430883053594111821650712757321694386522627458765777579555834140448166340582670835905078351987135447895423561977933705267110224926253296738786212032684181064138031336704564932862070321084801375294488006336313916805760733549387397545506156784605779634464693547090030772398677022382104293266770917173814215192237158531679373350372653367129481705552449408781021252650552328131491501971818740353145198985894954219918161577926036989018082430622875795109632329316148642412498963605435594718149588731434348482008676683326950220553418329679927945412748411482579394721957090379655588155304385267443270456661466852616365385833166898107570929424936987891223189355140456402716190538252516072480637311109786659339524006784628254077468822012323716740795720269886772153679132077477509035372213967535326314946413585672451262909492870453380048936667831749002539091526553913543495760716515313268531678515818110508217274956321710203943378193859404265660104847034804403868561241041720202449926963762613156760070739023298383831711308808706213310923176197510088340276873081380548714570104259183288808279417282066504690559008627260547814283214831905550389752399055901268202665021875148512901946330301389586053603847783157315399593909957225114448537182028558651394963473379235001892538646294015837636298614941709787508554132182919471638227072406359442571836107440996033842634370221924797556000509882058596848985034471789163472339428527716787003327969653321942525767294088146734541494607769774086049032492652311127236233392768514154046086792332318769419620981528338216979393413716617692805231896701421109166185954047007596194867338795612081922453477504585392581461807264560682213162380131417248955796625940521221950657009101467411917335101395493944727133323330782018688396009371348466721515270151612868100857855644435599310044839455344671771505993203724726918034263712464531434557791902154398856231811042608609996156372023824952553544386038366911291804641857789169193340157896953746252272905706466102689005203232065957584445981682353535868658023181844921916079869562942025637011977815152180696133060914686683608622404089628389279241576822742237719576712013612217816889108994869389977179118358587727731326165537887998549135973288199067917907347385886556289672621397780587128794487341477364839464380113148561347117132774409980344245463937259916606737066991695095572322174864860182864337791441021888454637884248169791035807044300974431356825243141382960949387626984829726741588482158203902400745795218997953704840662035852970790348138814443820863519159148741507195201949227647556104759777166078086704016287488822517297694128115436762437048313874496788817347940512252277674370389099729822460420202159570944669240549853263792955118125960849222161839595068329658879153474747401541074685707973921025067834358891896131646612064345842903909315031234983899923018216429852562009086856740925042494641855003625190410102166155857171895507022284086638046326031498841912653211036695221455092450541055424285605111332515841625625580677568194356058946800599386087738292481218340616957123512953864517210727744974911412575445093623038501052950590119794380703960796563675051234812147428012254603029308057880438270792469624011175653450366407160030868700794875217455973832135125627658996889007454199149558386806195618519269014021176248766100349586941743035779949648909930162180575226880379201859047900370528954634516066445399686716534690463726461885107215665696770267445652795699226040949014519084296046473742552082516030524590133971251469977428332889810166369932858716933390626325032567370522765826938345737531898603198652906926796868266558452303706498382259064756593071374550303410830999185261151184228487369962902198017378417258878833852585373328041785408561736843703101579211503921941763367276046939689054598303047049119774936444488043835554210308544118840697786630523900635649415512705804724817369498827033517447049427436896066478964131729961841294545776382483035709707849145076297662905768521902178615038714827798174097818614130296358362184466527468946574837111353426518526452714270478106022956332727151762308288961028184287748292022772801219430144748366458486571075446347857571573403917265377450482236180379822162171759866503044842538349917434290753498665762024913207909842247446046803779279107074237174052017345357384319239533821923025824344526522443869158571812899195787498842418279393809817607031135693971446958241004166333092098078962363423895052854210730242364326118180154144812716110605567767562356507090636516546689949091018221755498487516701759433458768256940918360317486700878068531516059026952627254038221189134877539809741661752513963651175552128590320611422934389111832258762021960193788555398535041743360199829481290668277213021685691478576827143662860815689997895872290252589295203056459146313395575897693385708816229843099951700936808536782694228953381031694809946457110942363352078760907452819701987655444077667468890081948742412590554225378629496677621884094196214757225483809670832004969757092352489395857579200236427154698802748746360466450957730083958598745426943227615610791454771164434650829235699370108502091304275354688198414237517568540520008536328294354522905624247901282292132197949061895949333689902954410289230088501001683732925618603049398920967846419397785228662375442862291433098308917423650400283676486771141861834959291611463354296329822151614284013053977930209617884524104293553867231348773916812490505899890656643145196168552584012163316451647197199635114414612313372452733826988055344509088104158565681581004667193517574607055774011678276338563027561396395211425739423274105013034152359198326852593687778999583638136787362565150669382125010339411741293988765943317299016688085757461553501013787551358011681815146189915242164877842431553502262125092607135586399520788779954862886725897504466650003326601370090235576348422502771976158408652416620283487213073335725527442272455225732507335815628358862773576917400596811087679051861377323840928142659828848696583467222670671243202387949674113297504107251351361856774400103221833858341356085931093006526574130941089987755271921179902372796042797127564514703130114265446448098619174714014677280844983229984290064362321564924542380333597099282027327225469243782789023481304578692612970521937621866468881931040366515954072615154937060482279571447729469066174000844653658140392688890458745363644356445698666451265373977463119092170094399069577691731089075168178085745827077933384591082684196196263732537316004507582064750108922169261627855471101782464294855897719249736357289285910681178311881023008152660837371351928367591301509987356966557715717662700597199102611522505398411975383614314402540546569005170425708193232868619850067647545939350652800815842918515219312953502154434189438805145080189597499110501722423718971687323699874382423381660357650025757005168823165375471013264236877533069731072853886936308099515998134208814996735036689938235265026211336529229918705231137229655830789553011770175145574925262240344648533360151864887511649364295810242385734141812066929947877273902166745297232042783794540073423125593847232131330359271960862597194590846720836460737826867049010379202528568150503140697495986335612159768284034874717699608995701369704986705789181783956179990642689928780873921058791768441057974330419829574046195723777842988096024315718305082677546779430173627547293827624318625370702167228642051254132727577513086279582951552237838537263859426344760879961632741103447450477528074032451724731632825711251707536406989809773045654038829638763232393424532194294476421049308653099402220834756199076041292203489624793645851658822318478444348430696593234401687344436250936621106061727425979406908096961409758789713749788017536275434127449917209865508947098636579919018720121495846052465024001948276264364896211538209426545128223547106027088464823002826408837087792883059455422764653277745598515092449032049717370024206398460868969045642255436700073761575838412063914597258528135793431418259979836245101602520503138091550991260882529638546498829429619369016894009182884322941139507226454798498373248991780995900631721695996897451564083287311450378825932436456630396350256723843459189926653872462812096296369001441222249554619665033031626586026796264864114683064682819316900763845434307198353269952500982927727643308908079612109832751003585994696452862004674957665037865723015330688419190351491473508018664256405948425373114819138291413887879071565786392980078731798495403565877954801244001985931003131952838212611448420532563963614777983964940181095732313967530065946677605157817332221475354120418012193515916116559768242303342985266835602908097204602349233436595035392110755062476646695814133933166104546735301490448507286325222952704287973278824538879186750219103538010509529892903183659792762442574004442700773647482910309866622977640249690099476166864561282798959151984615581898611851730849977619063903986067734759744160868135513283607179735973567311790471505384305685812715446251910517819724985458723214902313048817453754092050477304836681818438848244488760075419495676641030131241468940609453038953890331754960591492888457293581503648474909192778761554478646756001058625079694272118094877637947237517361763065550856836513615788595126368231446426634601012489056542810409054056411703322636891528198844843152597820038424575603601886686309289620660999595491014610004451911475776968397953194883406944787301263640187841550607771647526837660663663213367475709239663753494005194812968269512472894893692350940048998332363557468030247684300114412773930363836369910855727815092861361341223313498905054970097217556508103346191726791200401484990330125045364867280732067470668114239524214156713596818561434629889153518366323644738063753912786490788121231589730162697437381398639637375077608392364488091704390761323905022729633108309218141887679298556687586072884428652991856690320035299596177699412298962680831333562986085301069163123818249098557849718248676788048103533201100422364655236273261803763763775482296114073871885669109329400035894520167738001606463822235611188973148015112242230274100457385884421397441004467706024982748546515367606667828734961874639503433451743912391818158859728948724180473965335375603631136108063851882229063706343130601653705315036391156013135347369717035248043530645982282678112789455838943373718366707054052202410268983161730407072420581179560348767295069169219765803397723213307577112658704646472456509762458473195247363619627966522623235677335341465620597789096188787917292684976858853275536756807063744307865790230675190062151769996424938477570598047035321533782026764307144718535644161360740814691390774572126754561574478158739703596826359868163791736345863346537787760134044728856101932975113995269958808256597458476443066318470371296676305925501429705965336543992329950288047914332908082203101562784510451922943381917123298941232271792413991220576332090410748899217412221067893632583533525994866903263688420596360903247722240029805497892681336149887887710766558610179838271333321193045088325078483235310746030186495293744294752116163773736899500057722708928099720500005307156007770376122245587758454820608391676517144028655519362670511075352715676383383869769797862260050994009162459807151557049393288162472830142799808892078203830083512099953344542305523973577657883836807889153495020381979694381966300476947432294594951975317843130691542312556697810088701808977226157532289723587122081506236506507511130322581378529682607030997576926252127680460397026164114569470724603457292725540819894806827787626635908056792806355489434080470246125296953032801731142244478510031089546901461470552519623932104265574596236057465365311265996200839938639041317386077751409354038598185351339476453762677865851719121174199450257258230157040181956054605688617392825065851864866172584495596051529125044309205533030651349640032134693782243057553329313941783521513353729367741198305660794646957814831448850785105288240242986091728119136069954255187179648266699045151939025691334161964195371399289531702371051686281841350584993627763223195161991055856098155668105944725051529535306300313365884981297435307135008758754117041234505215190112935533103545677349067818754191737292323764230454651222688898548309321877816731724178444796710582707231980260006687085768215364695872860557278219536266664119717043604145721923934695632742678299898255099615649495891572889072023416809777771333785855677733155870819949325028788440259958510750665071214992602093933449487960953797108767508082336429066735859491957618336838043477691302682921407179673329679094405520274711895177725454077639711290996809702923173426152221158143910702560960585629071304854331668311352515402700828594231702909826923597731644480115922513611061537659365103114188318200155244232892476872685747510805356619683575953209327966329527734879525502028963391181160696291106645187702759651531113954176968577513753631178846549966887802541774494912520057823259432423627297247282410830315673522923081242905963930721316418097659688405085856362367206914694990488588364015090014682348101741034025371118519823230696300795647177595442067847992943815133341844396668900049290525328880473698356528080789783176491585151756572912529376690398633452409717524163682762530077747058516669707691036139592752619286770958276496142928195711727069435877434623270082072247785367194103137086320920461720947021682813339182455421423470045767984617290513902831222471366529214412796701172097184198091598683472128127646410662887962974540335248689146416367509003386943424972664574965448414635883522355316431375866383660004005501879845055687095414905627647555895901409499716062662891812592854220966836927436199585676613666092401607730467367858607350007949534947176646468356541622974350741535943478333450165915867212761625729270785180728681135799100008004217218937956722957310532772071948330524897866709689998149380072376135399501846906257978421069001355251125350293952007645794994516938286642159395766874356722629084992420795005506424548983306951551253532688750031341401315976379042258576124296815683370308950715311821240167410274291997799603309711502728490532288145384156240669668494559788216504909611911613713664896825563397828565876603418141590083686681916107838292649566671657369328377637464693272856795176799522532014774525842516892288521658936491060132825034481208006032401610356906422779137487008863036152630878208423459888322093528261902469537472925446349421894429679715198724343436865481020878870167643611389758688189337770108161572642528436563167364099205390432300031097023100117248327848430687303575348540123652555809515880671996586230365934111734089822104112401297786391822817565116465951433866354722402693089696266066323592831558699821684184406154554798601944764103667950462136837042146530078300316944930531454473984586836219075866228463459921743400625722277940141536130417019254663613108888836867441547466269034198343591488071804619764358698269438969073141651734482994713382244932605942640774307943803461090261292587139091630440482781164168164981996380342335824701625162624065050727817280010097598911610595181990233974659638622233597336706975331088839172408163730749674438932084950533353651329469978960795215128741953891691527798926664397446027103479020229747004758678419067238492465771831218770094998945953231052001288041290052514627127062392973434785963741516845300426101494807244825877121608359377594564634511558782310531961353433949377486391282619433521055481256368618447811176058912481452203913190390268822486155135040632248925815001194627044453075136515353911579524629140535494369491137359988711844157277094389831849502161727286816389699643926323290493666016355476156234442452801165155127321542795968942349886087629861859440740733837271407151549192019402762289596392393574240577500332043401006499179925610273491062631963901675914640115380806998020739752845335942182447322401903047859741626176354689157008327246144766351329126184179683656469668559115837198810708823822226386040757069020773157955793419248847491793425307605133069337290835978786789988002702051515545647019185143058824025111136716006858084697440496167710295785075581799844128450457108028847615130637959497655829805190504831369611780647920285273710022846194835683147804501775508214665107975611710336878355428700248487773024168588561164604627594293916771458813479179107176563888960174127746454514632973487846570117856827207307215024544464843334800203801592391076400229787618962525689025532722336307332753433813919594277468966721679843492772989491946887474508223544421021459784139236937188716428682966379091380388505849447906852801528494968600627302147395017256496535031375937330035096825763839976686168392557142370716481892061139129963726717506438657501705518502470711901776425679408693247978575620290331738898653973806579825758174306915211728181805945812511433993356188083802042303324096030567108124155275888103056717738609556238295404381378283516787689700648935454645625622509940572679266046236953340245443725632715669462701905812393919956848357507634295407692901934669785868733794816395859317065847361479501232528143408172164967044674241215672995377451139124281457487817620371041453764946496701080701870646828567144927609089835424398628628054479008485918556342509171104070557479113381539777321860020623537005327482795182133505692116215044238088443101279115515951083328247469037059093213095941268765352221092789086499076239313309993995906118564738050022605897815091635941419252840166582374847835476388079292790796323655314362052299646685315592212988847803922174621633063031736583846102569286100359849650232201529456873560151039527377486413699420457758750840447058927150099646142860668410203229854284416757416758355391887425979192139982862181550953610035445999191865675905268500183797817145748335947290151202605554459549735605034006101630752639197420046865205096056942380453238479420839253280850550397547528759150498927721971113821215082837950440946228552908371375233485279210543910686359869671258584215084582742152983366055697307845759488278709869455850112210735903584244191995486629538011643494110999170024073101852059982745023582633983079048220741702173933342467090305491638523597830702435238448812671520851133382108293797365421750967462053384513930794160292919885391709938532416882187391999171851374828311981543524812859912994784329839647188488226994040985129418213377220315447810846758840141440591095363913441699236411111468487450327501222713668104409083750891517896626359204793200519506084300575275066332810003304196289912996220056557175660275194433232981214454125999195065235346557018798857677113238926306302101231728535780521713296491216128867334227541519100106244818693899767761659604930562906959327254320736750165917291735089320666085609686478252739737095373810546493723642811042466494443645492871295457516803919319220917677280846429885658430272153082549942042288227055065050625611358840548765208403815285177145430674264544554849909186999583641656286240680806123937997542017713863837076846486173286501908417605164321777029727643171200613510094758192350980889670144102305235278324898177727667576252233606002909918785300580922106719246059413744887348049478880855219678930014638953558441110499139324458139113487102030351484677727313810872279065005856416551562578409115281431813995634478288746220314513664488871569053924082804722796204428328360276017511443024136000371553453688358602789507077832711650144042936928102853102186987291103432863996519104236018961475539884185466097110826816071671334923198440500612445441975779346561962843562785753677766357803649875331882125387570887947622105403250226232544426581645214361159523504347517066638551620066652859161013938145864565143658636927225122447121453024591496309365185216384111007969572208097494531128971410748098102317704554559346662435000567971970527141551846546074317806012386952321539025563083491805478618619610070642768339412074552129118820974058311921839502381527189753205443563093788306454086379775790785046889692255320709048913281145516130827509040852185283498802898003868134385403093199851261649374280402198140941043319339078632997582485305126089482811749965374054359357367444200262616841635647820225024692648787430215596392919168921591194221069053772294379757322047280609636052497476744509092797161560713745715673623570253142985791683537991781886037156661947881082804799454531239773584734546183185524315730917439054103372291556921987279095636151536053072853152620529151278472522053163041071365754794399721259379948567597185583249193838411765650139089252907785532858894523629915607194517243056613526133469900599868062608357509629532315529353345194007322983387830689091362379936859842132595517637162222736248102502553555503591662603425918224599308030108612984307408801945905500648280142292477043888864514218809310617382764165827722236868610017351247712557629419287617756620641008865338916037712119514932005763946518150327483060766796171150667454782005127026764313615516081598127485366067528970147193286971380197010736434529285242731621479743114345254524158025022455154303246252923637256238294685994709595746186306671737768630343892941340151837391129903282319271671052416279645698684232561407878865241780435067116962029891526396289277645315849353658751974323709310333048687328727644243026252055080366107682463591907772542010183049294544382170899470020788687947555242926978489275827411783350932874278875560259674525178864072143159776596416243929019772508379235202559763974627815516223204268465008145623849921668696160470032619353878485738079882816968928156602851596901498558628026559315771168825730348088752974507403826794519277866116874724787618825083064218623405377330561085670198848700750764555750884241410198267576744088380259115833178060794138980821683403813204818489025304403697675403938821838130392692014808757915628003297103718135382631399050874648129691877657457236978058823817356232866166370624993286507764417977290353142113652833306336244283144612810612426084227948292724858706447379713909886675887130538261833216818971845333989265769061806900216490092118960910449665983081497429460726269391626108902469061863278476153856045739064561153719480614861704561863794601245599509971492688940122401776679727211289082935507200690176254067780121265060655867535792212761219393372092238781311152185061307098371712271558320609107405446576632181969986798104986413918272600643291059691564380499940554306120622262758125362687377956103104620985319096803757017100219459837568637976370793620020769783125790619022832966762331003106661867599469834079798975081197621442741485974696497131960254805598519391767490241093990143137371224530749115072641529195304867605845418112726847133818750649708086293541747662293428877482143539301648800010883416286449665854020826723692411953193235723342649947150701431162942289112111537307041100069018423905852339759364314065324084038958367033985506410541743378304543224154583077897561495817069765734614406033767079721074659620148297489410125277332534810814881335279402728069075667050878058822161273034262474751727097952892037943683716252203298138323787684560583138055886979096442354967858289195556530859458945079506516976721919354861270782920480958791748569397177537890975561057928918704582113603515840813308119984601182221421846779268505737251188970884946903106217527965196339674675602255613166678359218926107416210907168043055242218532335131527788833291946614496589505632173784106977293651131233797960403400900280483217399702828102889047686479218850506898458809500802415387427938988577107780660975250218357064663391941289234612539355848332674451631585431604703006043282394013839901185812578423240536595622471654128816308823376830579834761274384322549711574964784632332292660850287859373820753934495152825297438232727671450244601697098722290648393893449834163110158899211118102462567017215741692616122855009767523658631621047093014324799360199717700203335878336973735894621322963624600901541542776964135018472496594745754919353315058805699307244111724807714315064512873852783072876376481339712556368730028039775695681683260017816130004279014142381526273681184195793650760874100125234049657200139152159351490392767679441049082357803673524623766015780064568285907783641948034862337324399238913156400168531668971550765408722711138238207605313066383002614903192306081460654589644422287191350918752920974311447902500487610898175733496321108182241700747022903465075418635070855857942873635863209538174032017939089824904744161753706338313947792717748305521077409116143798325446183067223516144697718388042304247653504538467381602332842356988003103739408687828243684789620539466451993266325242973723657736214460203379946822699977263112897049852135407246341111200013855038216274329614186454961209086202915113102552487550217725209714036889981594982793709924217155664143153793483731869524133772108887097084443068349428652469293001382798259546444302580575071444007360974686617848243041321668181529011275322374397638917146778726845654699418082709810509193156578824798974085614585720268903360301801527119562447838353414749177244534021460048960831590562650797744705555441072600714077325590840901419144994392645460218706063991633204577310560825222021203356405225488342825104928558724113991138351209751344541939922979224134368036054597504976368627830967578503064101971792013440999337324209541042510254373183184440865719755657515566578632241621518797502378854862439757667025202272404572500860222187160287248982365513586508248273980895586367247399436925399470284097691412010161530769783540511177848234250164220217205618547752962835118209286789343713134846851370599274231808269104817381045936490621405720512152539152503266708832736217232838326124940216467025673173210410837434067918791032162555943258239352760494208546065549540243357972930843563204050975383603832540755947100535024397043545579354488740412445232323264730825836162220348124866563399835164484403595934023498471158953759331592252757141257997143871721004637077057046962686659387128840739572440680662954767618846339457859875452071670096717868474660338755608571652307438346436844092319698293213332126884002742199719794713515500427624244464431527977227038402629958177675753847416369929600157356715014836584482906492995521332789797634274733525406483222428516789952266469929802172813538130285843047173772706403906616616601959829939109021084479823813263868966486225499035457007405956305934068307010606948821474728191700327223642064887489545914735131010894216436636853126162768943939380792012226100244715527854748889958168413148749697154566913535060117700593556853977839853071716754300351014839933585808587581546920808258154982164893440749273746195447820230775762958870926091000735348448507227064706762936432287439670249884884904132838530122141856105693198972386914921089120704152865302707883330529785074301549935511684885458408245019267391443088223858337354012921415241496999693516443915594932520481934460850321109212399597166171496980975761072286398655629099214846853031314685144837886843955112464928847919132436976768133537347639419597870967265266510800726675959493744830110441466436599732552106719317204286389387400510397803828412060339637178607309875014528225166158074637206173648859558337846332050661107200546179860616150684815559662138733869548004073578725940002874224890382573176180902493789656864474377213536044557018395199916601274883164970137114672020849326701257456931330727492138448483556311350726435166612609561789405445301997093446744297604061839415835032919074181945508954622397044387212349086939993441540966597125438715489886683223793041510075476266132327917228278338155861788034161434594529783201455146720921370052168579363817327191210867661728248537879275012175151427876025730745621377344040141323084402872749861511406141663176852458475662904622994853796926425282281248214849445843482186012381573965726986179308620387786779960956833400489221428277375375997025035754273220806706570340064180005933495115456903815480610945967326248290694644316796264381018193540601190976447701440968631561515575611702146719308525236001180161160219465564171084320473456876611689083835660184782808082928856988964420626631617514069253687187423843338247533935241867623958979501236899625679263011589244535757951938583143608296678199200003817245136287904121076023343253195528351838362597083579524060444552604559538620712075004219714736616629697685681527674943894398296148137153010068994752209931687095820111437791303307882479420915391545427917280247416330010029552116042276905944918242619312920627655647235325736156313183223162756408213155502130979993848472172788396373457888141097543695242293459439585475102702138870596252957588844048621368017670448154156054029457520007269341223755376964360809921524747797600762284878369892865942279869493822229458640861166996639776323061431046146474760844148238382230759332538536755067705052462613420824952632917154749426249195431558682490744462981514383561056834150750665658810170025175525628670618120242702652101927148474391952105277917093758296737005466987519108569466001582340497094184401349694029352377633304892685667542775649748805285703202090386150131097409656830189348919281001098165734857890967433532848165008039176887606724456264950041986784537785434022255300056839050810015645091077416447605039263792567021228116494967716064527625903852412288950786551386492020137767785176946600047935109341036709317421561930851106400530796380581607952922944517163925324101799815630640000217066317016868075090007396337789006730905677184761379641368625159069731712724637360177344241268948065701865161729995891720349195024277777141100225222448107497466235551381185674457551793290146736055668243486585267411848640686549939049357093682756383789431065279232604784726726856992284607713220334593575976200441998558828303524903842574515994210292159518000228968189545274582311447098491575864050203865318486286611509579914162478618676772807314449346417135251633118797777603418126099245249810489689049042369383468491861720229575068998839018191567234167504419966023252455295185246648188459029316368814613017717486018913137593997443225405168966219324378140932700648609120566460725518966468300872337583584551612962838706719554141032692527443628457735154059604238945860792845549766874305788712550433672063446652839989566184284373046234468800399491077577055954028842702331548932940308720740596586478072844915606973528943327109202843602043284101631536202160997107631925644409894318505781193556324852016034854367746569322115869759441888210719343381843372776379569522477131860291019280807285350674687091166256269596801067853584397920680788741536152446103961910551012005517434837644559266834890842629885023254898679855563084369685004629109577619987496626099905806521179740623834220894437036865948414458184451029202169383326981913498936560862632452019948588886651370623332812793015151711165403717026105798218178902712596376792405341872183440942235334936433827142730933883157106753291239468139477362472749120966840979883401403958949735545287994920954877808122451192084397332411301893304074591698583095921996257022638729743710108789632849195951054478791957706723833497515400766858616204487266670557127194950278066215763482446015079404721728410941723819374166540981084386106799724788659133503834582663314234844409884098560630808274981136472098192150623133596615740642799354738525113315768305484104096986391708476157799057393293380801187525932426304835801749569379256459094652008581081274208544504229147840966254426879163146334329975051572512549329755719143362168001928457718131010926579010203399866733187037658807073392858803717649529792064140584845457078411776479084180969361131469482168139048072637242441006555084128020084699762804000795932819540817794211737932506915129676923888693535994301704852087798241953698534940667061708651848458433832405045610760019287147528711473269255774876748408779014986386324247198510755485010967503726440313090054066898747402270686622243738089626533118779889573767620837742898434443516852258198685764822561125161537257913179519985234035339851227500057944159235426905044164700855327771794944854913948627615025736320622305086074487309243184425720211354149444868864375638908596975357007014503731644829647550961290844230803749964468371232494007321545987039856548910052387115042210190576700330610003697628164863977085894431542201264293123961891573733546621995743522094599790466190494189300110861357207465108631935088968690584101639045883787137681446921367768333439754520479358020089755152892980911305306206705631319105112083121161175731663229341004979352294893846481902602057370842134137551643110110607480698565100684084405986047184175637730870084106624076841786636721418512626452653784413619414847812150657847511694460649514510430852663351404788270501956645989598228710114578772134529824553220181485489001746622772769629713560970706941010308655114226003289562336094690546445988456396565386793726895282961409815484600214738166011743079583397980693979776943060870143498503019868987858139931282814231709537650942680279922627344476991101756820330798470800808250217587408992255555077843203743173323776055272686905200539463617318386053556046229069200669097116160932731740008420019347767221088332137519303910078154824867065707579554937354016475230824871452835239810412740000911011542179390665124525696962725729158164703208868201578202812535259940328952370095277082499834966332886161918929273882863454995128485454725615665647620017729646246294156652444647344511974781268004338353075257680784414745713784662193887255602135466945203439923481272660776908822329959763992191058672979944631996259689924716879941070945864407547293804225519661986939741511769794655848006006096533583623015317493691670231159373460941332914349135023669456180985061331635153640101417355217566761432350799741864657569133494737607439175269212121288693141751481838539879648959679441182008800322402897695826725983705602294950333213078718171948704964368039569888456254237363143735425125132444368812239412126792838087648691892910227071913471836938634048237678076156068134681460309767388144377374618245809123790831804389135483462687662585440398391598796930605173422741367927299601782993021950188360479607981769417521562948319574118519072853223443065008488582718654246992067604837679865993437643006740959945222098180293553610195200526286758595396166996345414464812712324174068374942629348603471960957141277731874962421170749984306386120042028165124481267249960500151367658900093516449790523363292810046060531597275441375069060945029413087929849472687698035702101425796731757743936158406957426712346815621372590551555733509492506151586519592076413318138234396836177578715849011457597737019783489424124671898883207362853939192663788939518508848096278255633782378022127455419567821924977430665121569882474569623193683333017902664434164252476262280832440830311871036190287276521770581477008748319012782252510674476929004559639221047784892170252684086061034735035242875538510356744396027428421435430374925093389794872155380660633437312934964224669581830781717140332321477806208315177134632802007996269258932395461455726069214599929222199002188136471131937545646783091237951077729379044141576611328467422919529053522554016379296038009371505945420947198022322520246152998284627743006625740660683085882670645753826171973642417834164520261220284752219681718229566371721638903116150839767149009969628370253878800839248808506848168748999051551894031487075708820654767387909141560890863949170510276927544711338056975165852725197092804570705307656823814320906425438831061374159835130303303645383203793939080486651148594505030914425305947033467726397295681566697567614501748543187804122999931849323654722934695084972436854473684773415063206831524271848102421334599156764442606608642701075900982943083233405251790896257765991885314886574836973513083248234205166338952816839431315733871224935648852164612937627647610446344493444994763162488099802121229234468352115224690692814118166525849178206766806978496143468765272653952068747776859159524573783929847905982165727494964346490874240710530312634339516555210714688762913815922260809873530999526802042575800044222029125565737289633206256110753260455139495904071326755853146005629356258054800002902597266314283768094688502119327242301049435119905328482608185080520959875616035421980839537356433112848701615349832156492662652630294571002640990228646746174591193593152684023912710460368801943241592258683423332246187536615050760434708784151279131600643808868686068552888428178418431175792186696261196116857666252399778867320373936351801437382626713080653043196331985028096051390075033352051467113113692695477959342064516341898400069216717980887657451536774165711775298391895250344237802693931324582916462342749260719717448292115975694296635839184321251743928841597487870315705948968086176689088528217420827480025882271923990959983660053816040661174429252222768407996046303784316251766661412575734182601019737604981474374635374663969561762914775349715083931300234924303424679606231014274216658377395544729981919692871770914745856688245439524886727277788996659418176529457360397226785590747035594264424704770833984824714574738192120859821918690662177225204306752903998891359611873793493907861131915145278260604757453093712565330567485431428261163009444908266044954516953510265320985712820153081322081798593427722630827183108748689400320780989598200540308250563174044113386647698088446794451479080007959609091148566833829010526541262828658048206007760614958205191433243847248271719744872426191350679920599293140058598779016718342557636827543022292366174512333046389620440389835102524344746208062132936315015649979095167628024673513017814286728307407033047620798306079875771183566586310221819891268321605329163492414184738806924096052999439796668530493545102785041477401003296639468510071487814088883803262423857442163727022593477500845681380985724680042120473708172928654697958120635838304254910975469181891605787909576218032532853088026111276500591481301767178664090531506953031016588062456332191982807265259899046546060580091517881423453616569568149589848191813745566134771514299381950386765622367698970901125409467628877304656800271422505917559504136838652187961850759944948183440894025128791362867833784189365343871116367365239079960735247989057532371252338053016438062957207834758431336500705358941884228927476024928755221736011334680897674639354055058630582116345985006866346270595902864974530514785471134410339747835849266515438213821518324636412683213289048556315402732787212829121887062704005419085969344961049307367866270041700718650522066311801654348697140163706096142487141286391694449056209983596679576137835541954544492459898323197049865257465785787836860517538397043509325872666977118663100801394071516374159083153070348353065908331683900609228296477692249966792421276266051619884458485295501952577776701253707322213596255779138518699878269853718677042117517588134908585012091554176757851221495305988515031135049668402819909207070822984656265313610755762478591710546281425155873393658523970891583329352218186101043040484825383608854117777920210635960649096363398077298371374886656618320918007921957861438854107627672756917907954294348773535075777046433109872408270968857964097246951758150853452925864317953672363510037848247222709944472327759072807281179690215126805274191474246482006505948407549805645407100722175585725585283702076400517275760313242986953845971217174821397333334025135282782177661990996471489515971066262964911137953267283137157881461056294977865233153251934844046391099864422919472322101194877997009072410352009310694065998237275900830630719179393950075445627661827283497696871600363503080731335734095143058858374068607778633532036342977822632596590586216156867695615237495040317929933668690138029348693594628168590883628843197747805375236891531998641222656331092756839967504986404583841643333061772921225831147565807972869570935379837874935365768145581499200012326414145933302783539306490586175462118054774463055195004963559830329158611452863095462232507397947358286541194314634894674997370138368282945232340638595030999157098912950926643685370219631498145086699850695788964299160803079461204580456728326251953653992860377186431303426430282988431867283312138115685420697155512662894562365347334435092612564155229778779130637759973238687932451435643580168060559466918425561668315906060450136002021865220839153893190758963034003416223525842486630521607648097673132914961142704563510272012475656579925103745099976857464426139456777147751817206882901113378383062729966540017545352332215568839812913517557779748246457448956482714450229060360020476104232224591365559655086699670140771388036751607431919269083608628636161118037552088931782255269386685547783722933877967252300953555110801500714661276613826221415545609870017353476549089581763205119780355948330051435387902820673884316426926096090563147839362612105462589487500261351809159950252156625686342777973461752851500666500162481825537497156181443365696764938315710773733514914107284649923055974738272318033690577904858228967822834101951987265835199523935659405990211560380494356120145742439922029378829927726326812170789589943405070291989496769794128907182151299796257945492910981157374606633652220298253819589101881564170929570775525775741840519952306413953219657215031590526732870755456133658174992453096161031396841595098679844872858154536005660492830419470216905453442911301923549492970833511213960195432470742901811413472082913464905234519239092511085222938167284364578343939404178238688874464496954515545492068504325936380868596778343690555680826337609417408203482433015379144916441611671777465048469925653927415352760901791052927670919370984853178834445523302288400811081105149747083749472955678145953687289505392683201014551257426920251657435030035265845118284496189532889670815807846178644070018465404135621589798975098132120303490071002754380216493509092390412713803997472093680898125119224070129810688802195983385078427438202701472562113011694552231067660188787407032126796575752743927844334729258669030321770779343753626845003997214839469228426760017994931126449001488207121067387967676692511684046951729748445674829753173208777289193805387949980448042688631279411602907417323819285464778131632526504691664267844458330384564380132397615914396861757634329719387257524823627923172465939676551838386885645084854009930221403832780089011134695934252275683322133547868701423669424398203862408959528841022737070747489714966440138900950016137255349770962040509641582141341869495543239087581152372558355204872480083601842025020841460798141301047644463861682430077153303973712596546512469483789984437246260651186466506829876079373933173007288494645422237129905677459335851717659268845861588873572548794746230532619316409651913342361120195220877148912539266827194771265984668361255094940169873080424300149826552367247862266976098369135661797673697455271820809771008540126619859828934572399007883343741267400184217906995571451950825741619661243816976947791971253118945615847114976500911035902861019752146612377612653921488375411255747235364757783396767609725685439265578196944165265654710673693669502024378763493686736855787065870732353972224423848734232362298181359854004805046722910731045352060131085826203915571464815081632455843096918426182526940091758976889615672758269788857119973766620706429551584168463049863931794351727095764503621506471218885303786865501989438859330387784916407698578678687557068400301316362357591906112452969166655524641897659747460609395752435504870515554736012266116609939901950426910945388616216755310159669806319477183357138819821845554868167806078738499799133239678513845237576851311101039808180147273522967674757437591055064604086673523562470680612717644331358310585886657727709652229587543967383182652867176444014669958781391357862255116415713788759939867930053914518678533440865676767412520216959815701353468440316253476582941540534636006377006008524663932721985299662998187114337580948293980764527198421036433521044328961451096385771406920896024420312573448563925291694687101913278412143763464472354650517268747799692939454974984729816824352009305090290122918426238602131654102950157373450758703650032772738796207773989193515845270620451742386923747945196140681664492405984598220688140942196121245706754597556595801142547897752719862238466313391170628313302488479935705152540052396267493048398222768511555439627641634119676504182083665158468175244225809336095475099242470605869006422913369523017798377192071325794348563864798570862734570276774534940264278877297914871322143931034006207964682586037587322198395182053573477409552375800013978987598107811734739246629435582733666104596561574719536193573308122918984996193946429713210804964587423560917976745957584555385885561092459610007319731395489456894623747628826298679684793111976735392186612801352604472845492422979637541286563326938229429487677736068210168371569900097718627091313279631433133002812236839018150196545092269563036952022377057211835972166899255044484796264338457489552184359220194346864435546342789910985206400178036476590222839393218957285541059844194845028260177132280390324006256310309973141117345148607470058317691885999144953868078216825041590166282730503273923630938932647421826909088858243626817664380198588060970435033255373599990249909745644907819755078801143705134013725373836863038832014875699276028636846802626128013082891136322477221922002689957065675919156216833376982528442715179237577808671248330723808145795488539971427686904108443288897629867060396265780092491072122678962098791588785427509645253452304182303032988475661437906144999503675178621067844776698821883783696329753786657961554247486131485421044154787500465993894279669565208476977253431691643869304366321583569772923603814794579923511285956990051683969721313265678717427370287129737306727905808717879970855788514493523519045751563421930473568918828405986821143746279901436727359246674540928364428923199723087975406221809806424188525307316193298628036622555161322153865573172883520985281914459057115708060012278041906809400704941846224639337587061430545978007578015777423398010619015896277773926543460260779552875702662643151480669529956235268609820357403491883723405791253756392827216144119855976596379786343075406299035939265254968395632545860814232187718377776516581824985901882157208375909417583504097358139252931193414408929824372071470544486670325539150017202955209069438149830395244981118188394941833453505663915170613499207289930946174888536357140777254092185311499481254450413451617574493641080956798244820581714998990258499742369533767384638695602357753966420752339976382573134273669903935390287453358037214353140274469269021615441062811681307022532219727287016815048897694532105314175507171990350909535521374499377868985496007792367403348962246557013824872391205601494186390032956845123148045159901689495019624783794832799898037244042603527342853657845232790889288565337559000173834262996143589775548244837787958487104498600494701697353409397927461366808396722515855520636100790293558641701747490026878694408756382517940435134826673177111162985318853021988668696164506542257200863435697035957655708596964353908048394695353916397791700069060443821970363999396502858750407840111050392766006155988747251306963360285563595991506670197503297265846325657571955404902891910204378573175850101535833568613390049900775615760763621722660787262386952513417474649727326182843201970234895225950024314956995610848928804872920787247817776350870936513633657343077258901522861797416081118898029800870825262168157911964785062233770568156034134729200689956508255291323080532129357376910936806881721230633719720987826192900068623547611108116035247321271061404189040617032682063839864260534090874266436001037302726249430025534730408591907483586170524953675383964107725307795268794857815401608774375974718317626541748871061664956355689645909054080329127251393735100127278235518516972789919677300855240879459895613363180448440787511456256182717054880432127367346296491404765551982859704344279708912920499444088012833861001783808381919036617802387646464875199135415980880021258578849078751198484416577335454698321965627994794269775155108885741395523229621315755133753498528482347783307065740228054862448652206486014724505641281738164977999408256190671358556401186377506303312268816746883058306339657364465092086527802433062452361146094814627789100998047534588294568190425754826699428134963324832657025607427928369086554669652563127273738847482006964798549004823451113592719414616877119675161980854462723914818750833973379976834149060772091277593714777025832538229265869578261719772317168768845533884279594865137305742972883261899978255723928538621047351813213813666582088631752173852397802689946277249002837263883636180448123558850293143650991163270819874994430609245032697581953567505358918724327060897192260450493124824469161691316086014440054069258627551187920404466734978590538928261523363546110047685879110950731496197070847299609092753659897982780981964683824097424350332965735009564412572789416135612943245171160983780888922061589218057681160643056452759196078211085796425426773853910166407974079175578594561059222739002249807736558824620332870932662766877962981686884960331389533734377875760969402052195471749372107450570632425678461621607439964376009721735511727760196787166744967255839844917073297759171569421001013344673498576278765161630616365602679231705964622561171486474272804287361152430192011775704054688898091091531067806443137835001098300194187779205635406569205287282902867059882593633275025100427834087431655613375268943707744514158930661576473499683407257556418648518571861583483098796782827667945981124435018978085912565957040056649434760697945029114398488915853934608095850656180580565076194800980111956551606194382702485824555546269309134191734304624682187057260316124774187833105873971492149982360510325162304799657011922101314058494118578472740614543448597813812105825306688749905959163532346194259447788316911393382725313742480773383805606762117138753784006998039711301316018674134776391608371442148813414431316739740267399769719161672863581388114035354242567342305237715856297452471352927008000589540876479006674025426094424905526522966139298366804067893250982031083506070239065447867069843072673345681248712172191364418090806514972239890086237766249924185166222667692456147436859113378527427371736453208197603275233931093397424425575073782831284070535778325812190721638122089270256721683096191992875358537668876558071713181989017908542658687074298379049074744504266980097836564313011094432073959710366575554615062789491570666909473168191239926318584337183398588627926067937751365987449029876624019002923256366705674533194704089014503134348420148825918757034607010924388923084580074742543975836538720119469849497864582781122820047145401969981152533433987827557110814638025303533472315197215698275506807726617354207767463070761925958209547268191506905968688874938143934259189474252720985715222538885127199411984022106964256362329003778013161819343737463786542307016584959806869368579970082536760876291807296622341804016410682089225212675221933140342099773416733771792638533978660854588166130961571409436999107506699905349069669979793670238060902785549136554891735614610732245052985893073252791797209308087437731164997020406013565254923594230672036228728388635387729493224053596548564847537604981807385700270785112917611501768948119587240330404417317546399195696628916990069256033712915688421025784063050964778025468856942660503373891656142324661618526857981348190480726819915237110240249992735444606935203446718701375189374196133835792120593439916332024054004093385399440299348398350737025262676589091829403837736729186573496331400183883516407714236953345457457697490734582523544464948200789053538091858417491725349204027776083228717497021711201762916656006353608080458123014278498971225454595198356107408804786079493277890392827213046988087324447838738832257419945245991947357829226502663179825473438315052181140988921802596281395779808584762185561257044673391023494387049747243455475349824761103021396251654788818981933090475817214640530329361884017236082916274155816644031100596965217408783166052015895282584111557148879658663764857118888603703729722152809008675755061365078246563387630965079471113393496819369442000077847870030996908960201574508981186126236001504861772846068601459316695666866045704582992135861505328604762835967748588424261727732574837776629321292362612945786131454733274018712460927804283630214418214276911273844843675421492054543731952698258649184296115648685653420301307263644280602462556277672553636241666303455385965332995709683537454436355754787843074330697491872623344265966664550328719080621317856255241657971433569141893206149094642450760573571120548263309131216819740713316215452870649223303602256141322381418169514944343726702930428638313784852423011200988609063768431375111729665946075573748336446051605440279444077039328284883622267929520011766690888530448229664659429143031867518783484347863975532830195097582343627509149953668442950491715855342590017927612795798841138150064131418384034824905201143445590364506448033221763211235684711451055908143141447998374521527725443889920114784513378551093658507296909508248833521071047241731374620050449534155451115538136603598819734943156078436958049777370198910891346426835328105918231295362712898793673962613418392845210735251925037563650873765406214891647860001738079803363164976113773815098111482507226022755658161803619100402709744134213575436863877928965265428848598799892261472439757748798311691531358980801399040370569930690446518836828090597046717139520388454263142763352117249368789469632406214927963528662737207281631524627542828552583335844162532557696059364496046096666225384221623839150919548180537706096583459770949476150707252683890204669417610496584102203243189806737958351686400588180798282845314041596802963474481642796163405211754753882054166015866615739726966478752752502525855834321641108364032247064616200592559377128655827229922158993801082520679119697789195709533337128129214527335928446995672192787808912028719037382624926630443356776396218172395376371962465365940879697788267143654183226117690828212421822073894716266391429732936893530116943677091620353167504644420301890610635317183004784723150010691211687604621592287189518243327558669357247211289492790185152471057223226842056588981000759507502192725852370207975490492180565694633924474684202616908246057664481144185537541295465443716133470928287564801121156223832210207882874559090919447444072094605709941935916510546560529369228604981381209501611874309170404062463415087745805640627498645638382190603038764615599973567300795878949748245199528089647691058971479658596884151030150376081585484682408883729915435358226014951096857141010497095759719280992382361814706107230154903489001349749187463552398755233240838476906534291470178580702927290029927408497468666740472644766986891607947076154154459586707849007106173053473793933704881324098111379487188031843222279236066753427639121227141506469701299582660398575466425342662280314094843622842466385484169672671507422172837824346219825674518375008004671955501989324637252963146490687267801618736180179830696823470230149019428672845226669285705419299732510110829374915678086073199012505557439138295255912065851980486227847326826358475782632855394934207970816780552604496108331707861483674287327696002434419853684371166954737346848566695765453024861405341241474985772207683873059220884159680356355545798631452073434869090563872260262322518241468878799422322336603711179929426181684281734654960586350307811033289930249010633251231088229910320661676582414743081903060802221973487814949526868715235011629191591152893732230914619088522476495901475766141539440275040501757116956713654084957743519436053183669178309748586331000260073702804319181546959300176703462476376498775216664384624813216620028944266527942151859503157700167277012242077342356011831610303387544420584795212238869495162104938412912122483679707313391511783395926406347434337460201504293089218189574101778161538269428287088311148753399068591050784325376171431251949469368579894005692574858447858545196529742930560392080064023852824183551530511124685851825127246871304221108709320091843454581350842555316010704612820273556862538300157326077415416118647744289068266096334497729606504420296113389699264643798310387234163802511097220042506058884777355559891521251733346863128116428109305112471819532960083763290604020190495419661313407261207166864829704780370743298625677496875790258716913163774672113314886151264635232331892223681889270605978642439135939137553280880697026814668853361667186106987730472569712792062521570216236141935265919748273979596783807935975485958003495440240340340621491608741234531873021913950555424158298012131508593698744706735659724321620403178864728217482548585739297871910383895622087827721115453294377249973156197929697103411027583762885277958539872522483251998464643208512128522903226615002448328924508622093352527863067346748406824192867536559826733911410364193040216613661262653504527787385389532269653013212391270650346959804126300560589053113388448745585553532219781837001945912807310071932540038050770224682914157619233371717739800398142457868380839757845119738716820597125828688708373699187950261022966335603541071646131734236718024758379038347252832711650196588903190455903838386175705707880580965269589915915424084388589567722830572133183705268208702901831918637132924240741390034884080154054531627277662823489899463834534885903981048149942232788463660507953797567790689469583220802157383284234769573333496868898514670059390760675094994179323505410875505484764798752679093747904555998498658008961489540608316027725953663159767755210892478218381464715199264738520019656447525264198551956174047799634747601769158484371727671097786289384939096314894399526364456666070705214633721600269138564027761937569479034861138298491106719523481628394980083237770909160149047902470886109490989026772269423954108986296742503540374876550128736657354553255749244328678585332186245992836431184013555749759368647063261486851152311222899961248869006465723326408121873775253955720195552038583968455963684406099693445500885411301776000702011188556423935954311743629127124585373201244413789588902798390473890271120323875332354842698805429690686670253435935859998760464931216936097453341054528918252270504191667591877064940146271622539919636045748508550783021331506798777355613907463519215060315490521366300238570621916539955344814451070469937370502872401877596457548135354581371754937660405348040175342897900379160384117885663204902122258688683538211289606065606927398307213140762462304385777781722440996008301369239807167192712813117378579479278188613615498090843554820405078007047823735934007932248539816787602578109481284102291343133484514774972711845330898214090045185659635571860832022307563656577688076266124374031335050901977691316073196301018094451588903416577629374141025943666266823255915913118530531215686112163356075937523756552357648485893287867805854565300872747277918765084011098726015052156612070487718500074876841471904754269666051119104935061226570909680680116585575766923903099915140589399597387761084172325578070330812122554037604825627671417722103243372438051146248245853177443984269203309401663507554665870723835690615905683604541428452519603797750965447209412143221356383092557939731550922114804870923656796230874881629355757924760621483813481631696557480700285303293068350260583558318241590717201679690229893161589972814419368473744345201903476117301807304565570459085862642382995742722915983717979140528402040886641272520555793440027031197425457794804954926881103151228601290849656865853638376724620858011760431422253016017811573898670095798416034774023176047460664669112173243982290533517490438989806434977181012345057900274867441099475135217358125550115028741401894242153762202780379019228733137082226635530655390644634353026698088981261124869670339884712130848588057107981814027259609484166761729063303391885040265785466381109949373279718640830411942543074661241868679446891375265024237454619123433967224221236247300176132082758447519808733898698189433185813448103536108166048080463722142743821135435348665313797562514418831170922901810748610519915999351808436485975956181849446707640538922775529025738974598978873747773583598684324244458712944038599474970950477802429956700574867404743670684196383938346498140056501322999694254855418159322790974461634778909137871841935045328365782962704524957696115436150186030890063056034377084095679593611762158669058166466120171632830911115315188855950592545107070727802474553927759022987200072133274414190134003152738260837212798964179294782341523845648733923583247067227365001382738925729094194883627470359541177904818505465298734160467800236925407826920009691673718739015030812636795246995614016473864383773608079255631151037747735799676947104409683376476081462853183688876562806715741655829234427966279663337948422093098058098418171327463630047616613740023561437661928938538891916944534169697386624210350339042295658230838464980653563598681028143959045651406476820520009865344529149113037250973298103856473830187160806651039380654506694267796373222508972847156174180676101709507324260836955513923374916919010334197142235126383874933493615177903374303460374425320306392364601264965387571474380483087789856861313171190214564706807541939860786908758710546449125483147409777837594426229452805673259668261775915703848705371171415918826179533445779926754923591879732710875665384995228866263719950797002831178914634587513265882924037895472939717647366462049607232485985462254665437019753801805606507449539513362766048757194351479935750030841340046020445386845954799627310158370592515506786640302290242835959697843317254828250822594155971229867993631326117076989259973893660237554949045235905412919554643505520052052454299982308066645016580681462729789183563533297238598314698434469920211043189214902844237254731161343575123518632539919101372290562786022590673451473717362747019191666244930542214662303025951304439949251393355288024415999264321305395790042484703756428005238406763227495127814942468030394098751773071094701988461641027249575251120139240040953927269079369809344019158344661888248334139921689590943597078137710253035692145422314282286660805704018152029976877109992203606729060299576077363772176480074463676919992303393516565839033504151654248560703005417489506905030425161792763772826366992493410064240549921675048624184762297151741474003349183877634810668456257307194349242305784040538147570554559740692004465198396093460376971910975878859153859490032039542577059721978851983748014079133614097309161948889027513702100699827649041259643607724389283363871150815076218979544148147213699106489666829168293387732831266597853007693960677178025070866914334531394177858205106708368456504863760944464320313651970517140857219052209122312116028952284832116604092120066964251465704389536437130969159021347004131449788752455786320464646865726458129537525170522256954974214674430156565730853787889365877947649430026539367766560286449512362189309953795021698602810569829459303970185213583901746839029501965232283542654007574596761165118257009462966883120887368442731071889567739695915153906210022203132701854087844760581550146252164753732490749233268965314862504691910565285988865822360136922707736244181856650223650566837740284058730564807972122489021410435400015391076861527593067946953721006443551677294844932955607006946459235927223198805492688287317710090303069314536460772313881878526690092766729557811697362030604377434749663885454860235162882638215606334283190156635166571647727265724250607181758328831254474680638537928579989893151265306283205567036847723721773204985934470008577282994762873329206616445330185225822691664623191121498524347574482746241811789042941285807712356533518189632087718793079541026871233802407654480376654331877214704065945391290979326284170856689339887086288564917635912541676798865124953968412410802782285267435521568661908390419074530137290699985905763967769483181704361602490901354243658953657374496850119729140856422636963949193309333524572660458962231018488661674841308710431601021780765227947780104785339403279158044759694750693712308304943781221970747335033520816270401455485657761909235151931083428389183718740631213851680607233947957176710736174045555703499112199390454568228580459699177962866366719324772578844681168083022632341972360970160915947420450548421557643459469364032667340716201145949829825436499190185006465579907303776458570704602182784063416564981227721063589011662623993710757788803890289471024710796973032398860968175527539278525691685846667640718081852707265116180877646309580708587877315039214839134919941382049887454595516661283827644511378445696246712207517689663712263257822774751259567828511097419271693814610440381083599865314459332280703198499161620795075490076412545893180418408507068898087961174439919367153107608753453201247240453585122228531348249449185134911354949522484069265148813866097336152184449653423896829775388414977448286922864999995948980387052369402439705300133377440731294488076131537761243924658513097601345677766254724592154120073371608400353265785956373408467510514605860009040479910951389830385282419055899500211572402879037156604021575839368995673225513937323261011439876148174152577181977584529543934374615581050028177508603445123624349257332857514128684542628996010527466651292737439477270192700015313343520619193820138956037159502438786231584920155204371963143640615295146438744402368450785077639426666925644222776488802405988961601282610190334929822610610976068496430256808329353692023996251183152313101381566720284218719091995213890023948769295713733199500075086053639571698988783306750554883512593033146392687592693045708143990825039121610148670477777024292172871528285613872612356515701515166183210587194691521485375785208243802981809263084549770200611806563010645246604183956892021150291585997542281769106478028932491862232076377101949384644475025388474765110196573769761922566301964963034696481142890020610883905818042584926745392022400004909927552554701355651568724325449388306867021768866225207903591036185742083453113668851985960635189549801499424478289289408208278181379004181891248020247415652167348952133629091018014576496209886741148393394847061817825820264380177380282138901560633000638808389531100344827826361900389248921095869621628718528085324509518262184672760262190879200738214230724590519772686903374254229543898050617435393742720995780987669590553729363950115822260622456987776199107265573297699069562883461901658417345200695106581130356960199041065170407881825570608289676066516315754098848310172122070644855215411150936168349447964531090482156388852200649903957675548625148093563627843409803995875851257827653580559847460703128872816178426020377750852012980899488397790848252181514112106183235951601619914050161840218631018689318613740524844918625106611024308703031686472403203085398961817414051984269127152150361538809698127031861659274846664178409502123753319693219940011466581988857795500047346996218193995658397491613695177053530785520514088522254534122847556426153719899847244763536610484815959089944713322158884602580857273100898241907047578382648833448547143819322530551726687721960283316760779727785857219335962024067889397785678310613252545892199583935425968749674724314636354956692938737111629660851872386410169242191256399362187975546431839140985515439161756643677422404516381829104195084881808798543190884060388113016091121347985876635425116679645720365500565651196036597833757274909332441216951882011030573004286773640235119070299114861656159106095971805146836774207165862750803348168811431982218131556757335956448993765416044807583994560916196035397541031826684937900481516012292834795170666161744728813279270776725027776563333536987886198966959513153366407422594525365585189210814774469359337607240820141591529510702484826067021098856004605918040092295261181340764742336770238312882906409232668760212072610922343028697713182460389071877028000710025038810863278105523015444370022620178567780627576967580719563155986977917915156710767794777640644041424699089637915946500007392685163294690680517788768510035506024539401269677467511550350173709990899717486654842860100986558700833260141832292463824536403785068923379544098155017510288681395091208902659917591503204494476061013964677679940545689413441003211518682948755842060267539583873740453853594422199140423431748826692812943447322452608039264823885502207714938824902391439404704962123757340038034441325935208606896857779509523117913654198358857446209205651029388330945217824972987919661457580069835087564382793486011037915292253906546683465714804253536359388231064765167222082337031701459436159804542448514348652454139041814443213172929948580659963913404399557212530092431431865433167966005022968178805885585256412851471518453259375992273399019747512325824365285253594299593179901986119464645457392566815225016841515288571741550694070927205295188872482500236175797779569857361786168054654060585586910255654999665397104888148928950910188340994546075932696621905544987395217597240778257690329620007696620374797675819041839122168720109438017573930514088721508037209386497046957586458270685417080080180597833005649668970539030948919849488769700000578778034941991028977438888169419381551536640252668225248838128955009064214552710261205875050477726857156219558866260695541004566678425510224935285425535025511110663167599970374875006841485793514450536058408828734779270413649812391659030306596872757235775659234684617490695932961864129288361174550684142929448588325085687621903322572605545266500433528493883161598067009211019242383434225961195051234202714784024031291913433686273888195997892714550545283284247338955374389861749223520201472130230231504411139779660646700792297183929361309593694341316134402524437003407809024626250526042602851296768178808109180038470208577050028400205741628623485217635817648369298124716990278256572409200939415236338553866585223197798328553307041751792315127313124707146349285752697188066463069246722529472909773260811726616915160665748130198443807801577942144079846191913187642229147991576314138877105948627557959539875336734002873850339887644875694563378716718013377246134641335423529449797715011123384855161465234329481953316312141463971083172993049838740706394599594255370134716515640560974001247618947358607440109275800186729065038113405341211539509861139446245831526828738777885576315804546419176443257769121478255838815212112808663244286133440358628113265638227301708687382223677044142371243447042777079549856955948422220051026252373082745307965265263908229602709835679094039693437310856823372765195285094796536434751766126100252096556531863060489265964082269384538341556392037892699561713302574812704704989813392415009962605109553228298660417296942043555716354715526483072470602858211843333870162991660027368250459831015676039836237230942918074370666459545099632492837452337919846681197963131176402379854495832200205442022250688287652325904630550954600186376666282564343239204086555884215223249563040960085493388404904330808228408599548512597938867776983128859635198186795247265245783671354931386462350359514237859908120606355009677495071999321141202927071541696448540709517609078224441473971011885006213593481860824199746622488600111465953402632501859021752554721322921773517082948662623977824199384176214772966548427375148592331884328069960411791688300280889244202868586658725542510265769370816488302159217334307091126647471036340166285136168107766584558327040170734087079353031814257223135728957037850569945257397112418120932675614448724077332460298095287609843536693637438265209805653758942525430809627255589815597233502911307670575210927255081208080760874780771096038723297012673187992355817164406209551841306506377242062221721216021217742270332344636774165130657062820735214004463108892406038382739106735930226812309243377340355793892633481395962365820742589492731971375729744974766797494483937963250965889724356883106832185013062529465910216841651668462374035047468719197792001817148100810107001057128820678817315789516188221262169109579569315742823258073387857845129285023192589867737340208420522372527826771843954471330733200901190622125561063880995582543405893949292069052521146509367448905920000441042741224312980109845015872660498078888517455197688282289168192161253889479898039493899035688413067137105516932756415183274625569990437404981991240870015537081598567520822746991347244172071124840018973967432781696972521447084982228661156022387440465809602660806958007663536656719541312334972895659755387139944738841452120158760290466174145098736033892867511518796653928663366091219217668268701478663759542502013275101434237022412129602759091797850724146338750057916564068107124744895448614556254728843893443427931811999440093128398113377985678296159410114478382820159676714242235355795585082250118603332561901845960898797375703027485257547277425564913541827418792968142924049402382024969492930423473175126946868072368565900837941747836848946335948093572871846364992734384048623267846965373333126321434818615959583327249683737432701305326690735710419566568873093615464729432985377424622287376483814061594404996266162223032001406161339645763210522287010038023180102962853726467261476748553157768435679660449952960310628646732964722146516377231573521539064808254450747896114871724624786216749898976878318598635283044751750554838368030851482699682354896396300297325128942177140493297657642930032774726327124143769205228192387456347606798213518402208762846785789795652916913015746655862160009616626033904992958933004364009054976174806046643003896943952046665078045592496357802639822812865727342018154516990914231014860907984166296224109903724315148687097842055267590699488540211654621145368893923908972593844629871932831399894109513011743364817727182523326232238697209549177712866555872440564025438083350382294576635005330655264026149145499225803896061456146395985142405544461216884091572472272643482986779931009336463660717816801417295456725002886412316895119015724184375460354429826432785602945066350049956268658124377903711719329648158925619183592932572511964529844695362110221011281796616310282208362659927828388829696377679789849869139175374964102744137335984073524201761213548356021903663819673577989186946179224494915524100570022578686303643870814850564862500411250878849061306184898216338118823806886780881559584916555501214441432229523871666411345451066534516202464289482289007011880887092210602475423549029041415917923037623588964993505730831975764471554470757894827330096379307202865457531569521925119617266321586890930655854024248881850243254537143433077985626119388047714923336192441386198816150294337920388811047257332799236957963087046358712053606270244811516211452315206269754038790855065769267368734235691676734936060860699699552045155952330368915129685446095017287809770471007822897981962489829303709743460737390021471460537026790001074125620453837597430719776440079503077418531617832571243703512108669427902312328905116116227726771298872417584539974166376883623753704774725649792193458347622594102092555722872728587766823923013346107177803987815087232120764032846523203452961375100893529469750210990392550046370557903077233367891880201082130293193860801069375234420351289166847535926935600316162718239472179606706796613798858078158565299337980638816318254400749331654533257172878235130130287224240762713606665660308410398181240283827618409556585376215201567651280649375267296899584646948114348777313627866660634638939937346871999949336781200395635474368540702155843001501175995012913892124986549979615552162839730065325260774802270866694038351538230539423176175425901052632041518539860851149592003114986720780323572994614183414381583764195844991335736414570237729953478330724568876711248515676175498040283912035879606772108332966474825208299020760179519585677447773525137822591024282870813514582661962725105087870426754625550026729180631109656234079948976123320935324903304536205062892371170169984171689994840272303868404464901264485286390677458490451165079855852906939112776879076825357592503371675890821842399610058607556990360320209762920904027000293844186958254020176966093334046908740272108377459122128764035592940364593034198822375204767571084956282245950523793628010047820248633576084058227795573159671972526617548605884613812787072468262496893169033579367693584668509972107283063675470471082526876113801940411974629361714833418519125388820607046555506966350673494202979300275380916508994749499197117536990940370021259890744106535358222509046969527873944218080426675803933217239750166649439372572569238328495726211075920765068489691045307005845925803108239864248468636505779817476009701802853601238129375361971656117378477861550184729459520064983831839034792085396240695693419997386719563241476777078388198567991878435281307203235004003959159581587957494222506735698093339831131976415761796689945078003640547461887254370490158744536088901628722974928245861525289997282688875416451834393738185415019243329520382659423392731270693877887485438031511920130261619003884729619756838610374818644446463805286806237454456383197869586550865836907961996129615992509710076142285747237850008418894140266884405113901425645688791319353942776246448004755990313938692755211181330445323645013721409841667033200113683513575860896796142046615666809931497527122556506368574746028658486424027711910964887786367225826404426619351615605652249066101882671289296158870833818898297326464496635356028843161711904769982931682812921830928546152228725681030572977729507223030146770175716290007272400793760336265442722130677627938427196738745165210580054591342270057887220290409489995734640882733221802407934203901634034152843260724651470582647297445080639085538381623663997777063359969123052755758085142575773131001109818675174534675615713572903762720702066393605307984387817833271303494828089586559053859109477272146675063988164327847428868026601342837311262741548997179255352486857976523155650759105516801365228722250516838478075480240411579540614945494228504879765864646874774844560135686180791371628845996095140524636755808425873720447176190413885234456455653395165976037330691514838239293580669481364274208265016298429833690259144279779237049334456528562270643826012291060971667947769523601794627576239912707965890959730091392914348431495522294208857274339907226367784835713425608325916533228092623643672034469321972807784838989169572181365543519693991314534231431574172613811833757386335940883291623384804688598964005805451233825731049615125083470420305508834271582588911012633646709763579381370501383757057696793392385833388203084913693142007917616001775697155291378352100467772945094728232633786019643035637767441525222192282184821356976491739700747262094078332141480915503834430039736280094477420057123890929714550628976485335395884046684349540904755580893576154683410175138417227596231199354279339622650311483852054990867072823556300220518129924223898499388894369236646643732755058597181344111816015173947406422580762122568654333467565783818576037390403337691064844913377491244585299034408347663089081667073937561065275891428214210777128976026478677252429165867533303068505254840317241957335923054903804067247754865340259468643720968494566776065695298083351211483842213991104005719702387053956408029445963927373377074494047575678239374756634156028190610722214247697262147931825082110909265483976934656667733854763913361293032606013235033830784536692187381883300496168699378382502671089757833874744560532040010365352556242508646886833678430412919838211173081440769058956443392985498364345492241322853243542796386613976163056478927496925612584301404095751815879175486362525042596610470445834668569354435317548577728576624386476812847818312852198604385502547520274063515477050000209746624348481290372291934859311058231678009422392873466903094772646148716145872999679515741134729353362676792742229374124594828386128316968390211705120874352888933624753876103644666832396027593331298310677858848273932833684500486674270832285265072996050782150362616116559770037933160135444341191895475443904479572385002402559626790615358167721389559934949918611251386492671333953711469679427960740053233172606941818608126187561426240857246088973367320205254039874851255901850018632588644387881923243955527935147331442186740228232038952201255564252192645690131341410523805472017831278814308532497159207922998067526813880479100813415913321849647148806683287650000934010884504544673262637849879457273772565022701063520242935401723857019239714514104499644791132756496350934835109864793256468780611718321145961396123934694401031662050176823880061911830302122790118844431897175751331149864917164773291279284565868844044344889824837937445224904921713996797668611187854760119956317896128428844336100987888699847015410687899272136853532593006004799244948832077909006090397872453294467271298573230234731600981006136042547494218586906947491166444879956072718957358138448153244121138062349037294036171878919724268035069618715028208786231020536661249653126220307812329837502773510532556570237391498357225598378196726557175071935796576962068854142886411668878310764982958370911261993930750773987749091885626404101075184654344369525130119875963455990943610029841138340047211280122965082942253923326938393669618517715468558475933765858672857214279719287373482669870125545041350686696864315552478981494168530472484286918457083681075728942725946560804645450922402362218455906341822430582552501864792077548809648943872074912361353391008581993322731894982451936976318584443374926126193168152383492814731007438070743608626148104276521559270481912513304893250955544605275531313802844635917220197146432181340063537364348071192448115016116022198799538035131112286009330326958491018943336005348927833652100574806549249657594345515710822090116025969485874875811380505833327118064346782611999415235527113027289605447441790575224866730304189793116579739649098066259110880325313681658863539552745036048110265534527954681502773437798690107162709118331618242943410047591863486525545359432387484308522077004720995565819525003097569561746493760596378144493615800260114291406980025735960920099375336218173680233509108252327145234583665278262171154098031039499492356359751605077695763954189579968146027682840755108330996954948616017799204240949007451282670479592482191063376682793718160863182003195180414234889233619114950134754221250481891917814327687012100947153159209080355108252525081671971276716910306775152149902119829470719313908366641002737375833772183509571783778806042359416102265325648576287254746801846979394309857129299814148115213516523850913678654292941102124924613106179868810900012726275516999369212728483208884090815284476595117600944235271553881306293581597986204871924962724278502415715232545059307992997498404110014066678695343223110043560469904921139645780244772531957794022993474129669936806202476310379773051133383335933990605835016236903852674577633850023037250144272707475404995785412493086904351553914117274052439132226629444634201402526850726209770564447229462005396736200886733671043078013766903491847711719100753114553742766383504414689266459660790642457618199382006268676307170022100867219631876544557305325401221909397143451113755362363413802662843152464772581835714754172508274445179322882141434103946715204830010343834222229119623283769113982571785932806618287037413992401986827934682042941191948339740804587341058460121247406080279909541376073687060192783343305674687172217130697614436582085945108598565850476628760320364208582121041354006461564372337949116661694491211260856595116047255992786343869572032915411547800949616278078857527218032203336705417447921702713312015057465297243198193402791166176516016008302496763969282110799892976453412326943210702615479649083558026428706014594808339649993298298899298711566755742261377362266749203336307201342122015982275944536735581696255610272116590185914860929414185672546583299063926864753929972637225658627005510215674884345067902609725205728234996767443296065758019021115779531787017580658971745624846423607193376909467693930738868370442321442331624201217888741011762078439217998195309464665308069553134719440322184076479509193386042986938496848022723251240557703265362217301346999247396303842911107173001118627062291727080536255486727304642828396358479897918962693657928522363428869107822378908725169689476002999022455689713207482285894062733968606931624409598216251429105918152600740842440601848679496552735148283234582533915380659055520861379400089291558655158810396608607662860831062724639294126049757393880837872519975081796910742496830271159323803592585996310541762054339083004705680702076809112070347439611910248498139230108022577757047994344421443428949865030659637684560785687384998493637574522417764040845013048291635272072735117064659564664992633518900857185295861055513436360887632557841575254261090208300980328864461751723483111244503132133219940712525821868541692384412119199138881876345222753708548966010830313801477209884040259150939534989966929777797728879049713996333169981958103049204984716257345329878854950722860528783401467008721664981646931827806777812997921437831217485108509965784103532607516814054494608949253646304747010002221634502095010686743598606779685461961542827710685425225735141657257759906632138081856627645932534692928866254135070844464890228534249334261183807904771421775850464428097529367637785057198603965834061205755004883607148923683688998872223506750212358047033775963833226802819287176571759418538130821518137897562542871536578589790790679618281284745817644216858342101958856869299953134903962343808116129052006294303419714157163489780871427886506308086837146304251852672823228956356678406657346632711426432458711011091209051183443413671892544723320007175355890712037094228464634706592458185241559524304990486055438084590738876669005907316375230749362583912712794548904050132249424319358438292253304709642945788606855679339959009699244512525877648343465738813329796009210526894664101843148308269343098568419899879031838563231370970466246277587580960436373291028479922216152260808811720622910032518937570149330227645651025716146588523986133388234573001223504726796260760940769855134055236568608090196941868860299020151496420708732284398426391261210701710975627474206323261032331022408476313016697496503302897184992963517259007118200529934992524458522410577494009413061584546015468962041336312986942558218780897800608330557024177405694553324697071726475349568485073610536843546581969438203025443941175824539197421478143101048979589620890567331927562592400775289318377114027778507223037288233928462418706424622872139593137351204002390345644757317921466030368303166079641671776271931889298932575642981790930387733652852527729592291063170145756960837293972129027427310952789585290382805350554340330739336394633104072022791430231507760931691493881054413508682627230989399017916578534749100550144256029448602163328473904879231780229741706934996843637360333550758168475796218335562094264656983597556686581264558034451860764981435970166568539182562462199478323253157161154946686559955445105646306727276624413123524816562563354525664003325966338534650572602928088705130337414394537664989065372139506652911454764621309774451573246951612962114225597307379396743800343362682251598008460797077645145039747520127223679939264931636983731852959527708773375182739583995843222375890110698097592024401609845318593836688285036771502385499884238734827023598648170880347785096254622739930402596657590938985879787640079420705482857486262440777565856991235268748535956817682873185142499170625720012862651304654634983377132195294570961034443118620747379145544593670247272064415970932632808139681413874495970655079658304913777378093053942663991191382683098666306851722881398936832031293913261547930385884896523875474146850552492213022455058887576412890259817202215094496508591363741728529142288799619148067962685794205710914491825475823155346817389912636635876544267845017778109037559664585772953983021604771377112263905311265272437233603872704184964586523620492134166563242312674543186342090995645885794003315164331790996207047547847665526024992400016667316484850274392922833020090313015257135728073374673089077140191434360907473185441211464008642230364851609966897319292449278933923500714410137395604001201696337837529893812074857527763885075691996338527261788999088505087984825137226746372243417529294644761821232813613205379516595036505934576317342455311865383473874317014823034075756313879579970619085297047201409164338264729926012508332955829120546481074022492164887663255681643055558732282577910311654317069076594383206349058312631498542204251657549676697060801186810157384507288420163479128331369790288912889143934433661719848786852848640031113297873441211607519572348351328580154856179172973634361549825250381350742944345268684990775599213678998188143773123801235987560041570607053137488791972828114932022014354819545670683344673760160605702249852487020058135715475395230805585869770803253031600845712964846551479381238086693965107038222311507134042221793815667117684983199497598274827088782227664337890154167595313076012254776690176037086686502846061383583388860450574468957329561730414278713548440278758987198162616929801940544997341557501462766837990079361953923543949829060916124113648544837153038585174932053459284506639756501706659077473522119289281826134633076482416074360743462948109544806013109750265038136462364009713322678197609912382300282213582858679063292034004763547054409752365287643776825389981854254742827926987577293853389076255116472355462466770579835496294228645472036932579575941950218462710032341942917638324860777222427558031153536144009149934806882378665700721249463107453192818063311774427798013976700440787245312359363856102494654452155743334772592891956150048873173920784749328668522480068407308973085332197589565828196715322823404108696343845375982791349522622840939385333012061231503942023947179943390162906828803420747710448554120696352442548464278966939750061056364379108096148667841432348989981612156433646586321269781845307110732570066928762218121848357203107491819083588248571413512146451631988975291436802600681873856346251738048633946615682233307189994509197228807345590827807736010293453402764545699328655436933757145470409824899855817591974262609269140217081770842257792266005045027936146210019865883506461646342059717160689725587949242618993908131352519693373609772833453324646335488303314521073033456730894774292129393422785375165191280359176385005252568765791551076380526100058536927486167579169955526317773345019740867864549621339587715319098789276861759027904926145776396213898530172486735705436356060101952860100391135007705091173021856201860022892882477258639866990163924112970124259467576452930789157951469832725327130068218264155086182631291814900737114543514385475598199412171624633011314344831850892128656225831028663028725052719833980976130250321743561002379595787465189668838918690765090957218963306896555261584783371762474022084702654003806147590689342980075831944293572054473777096920804132971131841690387554769664732616435281342487434681936975651006151194948529493113492810473052227057403648043910689731843829931132746873335087897539876073606694757246669541877489865903238241097904393709230157406881356003693224493002820795666780854858387932769635348398697335802950782663751420852328618860950668680537461596223694749746091480140217432523049596414742873913517275455507281327819475170309700366546351978957754301188107009682768345757540226044325731786259377747352719355036882857727837198804112023533358434007846628557621858683639965938853167949400310735159106471671300119815880004365387512962095177051633025210315997632307422647761913046985138578417666456585497992784115252085784480619202756370704519625116410685577597639205413609390849458358842815010717553363679976925333517820240403136956475645827873516983401126119744736874450314259659564261825873547669684687831225135146497842140696449902286623326279656234035599546852065130699051924471302380695973791996767114851748190383576481180307229080172266808862575114445539191820621844467369071516736017866325690915561178129357918099307918704166153346527212876287578515948629069561752194019790692992664173115546445968900613865264311555900490705320208531586681067057992839861755087122351719389774334783725624492254821495330235200539704618890186190757677727691469124451146031251739348942280708428521485238575196561026516559779869485407872360256128572388573523866498658431681463277199733848952548896965178770683647457658215004460498748227374422316929733691120000208278717636544828695652068906540691512452922037316069451440325114659457285858968163590493520285771160024380858540233787958786339771576547187399166872333272770464501195946872678005256228426553051122736627035242553715678138357567887177475842703874926584831899399824055770310450033942000375934879536226872471574553887285221165138635107281069651069931316985247969375941389307580776011418771534173453348587451589063918706134251013009027001092465032542883250640524957152672023933915379064537348076041311523468730200108972611716171300867868805919942685380483631774527639153871571672528094657941410675781023888523400394089688166204663512292849169595381753077780171460939173918756147240843809136837937281230920142134233990284937897382458160119462344342362882564856472245785383686473388713403711002080292751869005643982181366259542559039259131575825716688655537994261519811253531885054694383708850858219071067156060988703598538412346545608339800026549916694227809965555948605396645601238601501042333907176415275576540811604545043396745608155542619782745051247749350495765701133029581319930387321038792818771889073364508275767014328541398731316801987974683573265177922926587729556515296906357598796819067780581918409975273495707276870073635247709333192561241426987900619858010543244301586993269184481167628243947772225187771747241755572621695771301539352341449576322854270146548457958800348238712731385393693046658203043995716171309244179287572094950528364773242853382229843930497141900303100449102901037406034135013741828534871714743430526448815979293391939370534594611654389178249499289007853296878128319886760616894315383907621043462881762728533037335107593643983457609638289337769842709565250678964431710892044028486204605499973299890731382252165010701269945586085350168361927084449378272057367539647157919310983673565646827454995970964702508550624072276553342384190849452011571630735572765568683155188184432105663113120682672929903362306157671770548673955400911834787527746812788764462818410393922247196070206089059112827251158790283348773361695243377998047854817254146519713980351225887312305951097482980026723007705464472184531807570499090901878594115477464630546039987443827455255383289459638075539767121075420628237884084884815655379378421703110209087309508435658728147673204100217150465287425517697349106500177454887211152532015342940376190153701172084985790369906647405858418092971381496433988170667129424140970238638127936266396035102456159451698597816638262711281147945570629532849679288657899827706022143035195165418293969220072609731591929618701325079604354588403649234315257515723616311733776245861921370650741306705304745485598679194968695887950378919487052281248718304666410693977933188496984656230506497229718168212929152381641424114730576755588062689901740369282699393422335788315603640943487453244382679983266673413582443717865172267656759924826699401230979260921253827065717021251040953141760876687023646432336808743699578075140846014446059336558207321444342778243695911901713054322941654317216778561538223276138659778714401056742206868692391431466699264541375710543985892024322231605184801029322940690682568656939417819029668122675476074944130758921171994266445481959673219888881197032872703442073706201239174778344483395164225432662881981754082173270038660954833542771645576793944657658729627222509778829235722730179216006333436944237365913694407028184711888132926371222166186586465425041084353073912389917662256641354321441835527473461141132093442490367591634353936521673857379782827140876250308087627789216031238583944134571370662835192673003190729310773734509582619814242475866072051757695647386012411891146239309736347411061678503423748772464412180347949057094412170804743377340316198110751798988953938458132714469089628403372997342246582777863075064155914806238196616939478211146657233283883008570847146211368434369562970853353229538727551779462472156509192910680535768681141930014668689284209025156466952167730112010237722102628120330718946594255315540443360096904082064156931695262992179810997206333316661952998698977453947828810319345286609857055855846132067545559822259212085539086238778638490400336647375473235496165726796165030441664234509788129842466381838819282395798870706528499237811505982674438057269013030150380238682615060777828777946598764715316536351020057305178167110870738237444948776022495708055791967921326180002817837708409650380457780744499743669618013928212080729989302535192002042974748751836586511297713183907542740335645421091444664332470529572379331651064955891537783893630167781385375586322752713190315977128437305826143487436879455359324798913960867651142596124151040727700977854585869863802360534284694466277822330065072723041616729547945073021142310764749398456738416772666674020294014749963292606787183110953907459383556344588078032528182405307314941290089469950385251545193865270116516981841851684871566400262711474332420916791250137584997583328121112366038389593906719903211542658557161304780629875841839596239399129200119924190858411096265103147204416707870040594320852862109016886961113223559863174515910913312938355134688383075603511496576569523757477052386406575287303025351907973317872636728601398824624134484004404506534351481004565416842139462954808253496127953399203732228863456657874284823781185314340931225875231983983878833378358072350151572077084998121407135542660642303856915861685559831517569217860184520233025685675906886952758582211537764911799922428300513134870284045405768511650081584502017881451360136307928080506170545004444821603105808585199546815583831599842809295926486166404852347451770608098280369303838176262767500038658056414954822567456733862328413716981406799289721530711764486637453073546101776031627998797955018056949790419945749534946957449411092002779192441976312599126741633038245599944738934152888208538258437077288708871101073152110017682838968258746185015758567905014582867900648301006790946864851519971353340644804062928037846837259663924664317377434051952488643473048703443528957859684386526592481329687216709260570697031352527658570982000812546905233526789748397614658550280253175228771055709150627834534853098499933423986385082647169648353773931642241906909439488443051836395638833906512668366924317631079124674718688064786178947039823573644001631622981924426585312115636461293382304206780948386281759435945092789504124121606125360284637594752328593397842280620592639401493784921543551079361154034048780641266987285849727535983698474664250185772579520449097037094073603530168630315999344987377357559263400700086423604232379440402519434700205548017470367269563164146999454073574575206913107829118441527730916140632202930895282531219998248640515904615271975779348486331202910214510337303434026995153613255023558688870040530568725950778666588347448406891527147354657761346581365918753665298554393458346771719767643919811699152573917889943386033389686184331168771253419970744384149115431162204585223935446942910892428354873826910362973235304723655375026516982012206897247257946105606532933233245366803533718446827531145717247360324728277588400313077538899839822697012501057001781155345696830651600666337789027773571028326809892084278676746087267148150752977120860654356363458787947731706071867066235183774728901694652412974341709309940243004383650759271306813055921831833175449479256794139464993512209320083201050154724783072196164966883306974308126760111370928168089797228994278395227312065497513798531942866908737843483129886370773839518163727329950971807616616816281405983958121828541822078866976079035659865356542262160453580423143257986327811972025453198396547384085692953797028612680012169424443456342433044965607142424454811911519744006521784256483870184806879813953705414106016764208525597801717447922353845665548507371848197557527557127770259737210127882686934324650659259890885630949826530681708351706127507686350472987483060525598661961090766769251317165293901492131762020558831725638907119567268461097871939471071006272034926371410408180031629676403273326465755435752237338626979991923095732652091903156901609662983757108434419729598176972460782863773238083019117920313704677261925635956595814699453555834156169574364746291172948667997950399330549641035815601116555841432016408271782998325707062511279969272446855830867782755060116777894992059581181900073939694030844307174256991250263445708228814242006692453318846188523457350898855797992606262962069550760384064395900044266694750305437159589893642929838750796103710602999626894092431956156507130558686809741754575802949888451362275509415940286271360741120895900138377327103383656864448418948966524615892141967151263821016990579837535455968903108607422217365989041183014584903818919218829453724311103918629371884866972322690244629157595119112527000308558625931469404079093686687801096920186761829230560775858162756294074261518048013684037726311032819357886510369037950535741162753147484475142350822368091253909554640284185989514121694116796129560967112835117169314464315581123422746911667388059111772489270208361197469577883846161503308417370323085882028463693131659020680814291082229604614541511054693114048738800681775091962356388941537501252092674218583875294031228591555252414611570077909733906205106570350190018814573133581497915381089974312492146464224616564714989807832748060812769981528158697785179849261219355923955822009949857141711064498428509242313077736784847138725631403848883219221708125073961029829751176433565467146403517689960155778726366998023745172298990334515128136473148478947931092606237101751282191533187824356539487252592098573300046101804772072340758257597864698610235188911213864494418810318360734949418317402966246641107016704114641211415550956011733839945170919256447580025938663997601597837474235414857058653913990463957428240918335768258504447971416173813067495329525519389649280944017494615191098116718241585769481745629125565668430361599830659008426312821248643039230250580097336685256277868491180951531989797378237661379573773055244948952840283305143865766369571992458620987285051648425482267906412281145327914203545970587346034574906612986068946258623654908149800792683199381222567276945383242053177862353303744217614127692086904705885400442805367859436768567268993452362780305039692984427413477815787525350685504047986721768214577474980124389048533030465700476599660988666083770142324502261979342382301516681157429852706684326687412910735462318082788763852445585757663481176167783896102880290950096313851416543362297390810022562006216559262634668204635937540827696098335963072153931509321197379940644044505195469024176633999628026118441546460646478959650913955602161712956940428564821443428555762473302099765579381534635603134939469732268865563477558036720631661281487260835579382014317840254221192270988837672088302602084718850237431773101869747603802398581587172164661740325542240787649156921578578065563844959673337584104949044589980883116687665853423646108813890100263827017353598235239055870731884559648752930367516872357457238519488543343519383162249200816423997383739172866917144545747451532536597862567094177097122068759155024214583771587583955947760162159903869414146355766835859561454165147602832818969892051740121112878801157722876889978645901320983506442743726276415839410251988348443341471567394930787297263502992480249068239441757196115351705746706546325645816203363408780106806284050124495296204429252124293030612996149398218620523928606111978088654906737733520007806892704064753631148496588622621378269192060782489944818630442608847880263592452620002912385871111193968691867189443473209385826334557971865962537987418940584876713246155512451232341235210615645313158011340570594906035337473605794038483681958285739877570138334612783032767156846927568933148063149601133324529084088380299690160703902185125402744636674442227093577694324432460757269273959846709470862231818829528545908413208989279609050175762726204371417929581605660128673257575998866727328216162237187103648813984988181850013913264073684200047676060536564166269476068125987282198305268493689233897036237045540486019339527601103194225221150200584525950918855734017084069888516916044071393926322008334407298751334403811827352869866998005561849318308461902193347454436991414185540353081510244358772500803498836083695663289602709908941666591127322124349091830492761594765472638524111450760290707132415619065899532302110426138796840421931148002686793784073667005847726780531901711028427526424463961413732136124641267986544784001488960088133935189843635702537900320093141651791461461452139395163887980469083944892870142483628147847113530341223194131910025027995791791143288246594137657307887874935436848238231089369437490109985586794951073647442988241244128643286303799330448467631497906265239442392500728872924810604211014169504932051801357729361126276938126951039213017346935892069347696709053772854600693477104487883805313544503772643488318802285245907820388647036464295574943762078761203178501401324615352828788532001747097130383603739614783378956238304807031275040484047162294244406041074684321210085895992566818618200956975381093430310865667302306470305967870766423723229189987046713580417528395614868385872979552038606382479276513868384880932322912071970692975391791186918828448440837470404877902676770271505763552941879236926134666553604661363436111556391446708044408383085792675177036784122116786551635995418145297897914336136555480299513718475931291126795539905902848118053730328798135588881805353032938268289134202103393544484077451976089640432889017467685575683774259639843364321665825903488358715044845775393167928305785448470912010145412712468203713329203174625678420279730068317133545953193211472758828917551831951986201831954320359841620005491203394816559339798292466238189415408641536621579656660464716974866297349569793894976003390160239087629317584276249204237579633971633666388108121222807763297896133067831816916831092318643989705397959035879552487028965496237768893983090561813768680630381695828123235900919334713846775817457678516950007599508145098535619360564189321987366426856652584847914729805737867217493325075222035129941506700648568016781042791435548263398230010906916667860977420510140055569252807810296962414852984013365601991710423926798980400426347810678806052273841457379910095051749208005708311435487308292525164496383863245064573723718620444906014470515682038935373074474440164470895468234607154149111273917897943515944800797513105617953314246318875692231366178349934310014741573658779463898530745137499622353346128224789191642126332466808398241064289882761220691006476787300603596949500534150246738697233882781536025154357623940967483339184897822822922814933789559604118707689694472583012984483604010353136368204326507186170583147241977417108755680400468095531902057386389272325085287973998216316629284969428206518813079723698162486701015416649074687424916568706423674613075057256569318260698271044307240148013367780923546667212318173002078070525525009271249732612255342873689939543233991326667657745239026002922730646660014789813891342277266619249342547357337572012274725895340936246173890255390284369012247651712908021185344382435507342330107002596359952915317120593697129652102548359349074486920965020916620978711899547035178598417197452122833470732312182407267911935641706686375448795693981881452373776105588188798445858465531837698335141673264056242336350696558341003701148510086666473691871382537384155380072752978196047374419115521977380123174506965431827330387141938601982714471572296476408473940891938205824444266588597279083496710523902407463711499611214594362606802842004896868024555224102220544793698776933530173798929872905672959827949443388058756774026090447059307901382959250241043646340000494440423548043874640989471251762377967722510802021313538058210884061353789465390176165042169749392745256949543160069759810979883879254558274790145133599144615578626777269313248616573677949484694045276176706429283295606867709540576687052947938241346274147089050065308406259227469024318503327505359204937583381287496578480122050586706764320672717502809968761274531517839610168191167467171167916286364938112617243200856802001088636702444721597564370898921287893626660815743127830583378334204344893667693446823283375045943218569283418511146222297902895545756253500912820039813556455591398839362425734232701271727253466096822283773470629020646107410073475107807679399994151705660851666475601874406336608903892410324657425731538915716725991353699241234946607880118607703977273992880846493664109125699890796955937766095315448811733038544591777386626470904674041971965596318980919022651901985356083851841032712593601124995910965693812094191428476351601405314018794739897155065959286041230703380565883577830677747315045861636720667202256419138920680102251655991902981689381505044528027381879139836337571145164518622262063640892219191049225675357195052157230644147360003429836817620558534231430817553150805736296672244328380686157466404226843696495871183603412423677508358794574925755318161746570950519070830204615098539223441733292446004532969995330051121098747453771489149785170553190077332870640529540155447527273922257514766942900699800305310550314034137695016959633645504152580733186372972407337248060584098852945917928370466739491953363220707435696797323536443303445693469804105920408816276817364477729932625340428158553118800664124080274989766071513687794140334092801850765523538611189289272317183113411367419114420046612450094170302650266936051595742164366610596349619725510774295138406214339517252922355740195931216374402244881426497087587198772996364241889174366904020933532813350250598335782537456666243678731469218040261545967853693915831840545282741637398884473724938120383712176781021309996380565585183074611189253600792239864842218491992521867421224647494740317932122875396772064378837139675862236392943204245285423310468039103029253343968481365534167358333447527367446151738480063004311079791645283670702982012076742201208511349244846387063178979477277957615353277821210978020246834824127887440153414758422104536473025327830244608720988433765428433766404431724548065635470501275780178622561008671646084942360162513512522152720922522877793472068565040816633382832633334149002058816727458803670862144884303394610890947888500109729159604852126588043059119990733497814233185916355373705204445012585317166809634474705753101935306270268159150639489268944603906738835053595372703075131513153358542303408180739156513563394692212300397612115552897295870675666863514168538468718588721408765398086108441783515872692415771561294995636061774159976599353356975569526010018709398775368969358929318755187932132936198760370741218585235286914363722713270649577536500306372045440797767752890263200585210580540872523783085585113408834122023736449755233743918205796283228787923622878731376169023271893897926393359297187014980548187132313492341548538241890093271901710208498709885630377368580578844363496482211624223707233560703383365232814388988186694895472720791593849150835989120684806137904037072946488145232001623808772759422938563755719533281809228011532952663424047594321507849237650464392870780677757336631590265847571450691526587965012114990647180290428037014236005742156433381035053836406424046216523045153919256430784859911884254182106111987817476508672285730945088655654292096683471377275016914249069426788119722669131534658474869309402562039857508503574297176970017492630710977131557738619406165606546690141354638440983986698376980475169170130509616161021622045250820538837029342944205375994312322760252928792565798777565977052378547411056626343814539969059136271650655437490659167107411115749914334009572213339382223025011916788675053431324716699484832866160031024671059447582755459006960164348008140075836446937670653808225473223532702352298760803504286771310610052345603902042029601214224958071808948325961678323280106213466263669078712315823715677831856823485808533052683995680872641979459261928914646501036834101443143430936119917888896510880494315648181953258799395898823585402293856787400105649074905923203804903237008057004997593280352141516386544351605663317821119584192505486492718678320869327991042445719256574771904078678100930328477178986077377949663542522005010811333929939800887940596020087054979288271894887956570069848609906263698313945505357194169765181327331057005446451305477725094258796133106862579177326820607534732488028737166166219363800531581225987214142440000752666793366230723719088441686654868695654700541670480946305364661826673158198342340932075017658319422102308692759176346314784584695506449197698946074797462452314083293740163511774242177366129576311032261835513096658895881939272502029471535606496169215723956702440294343204471035894824332810351472401475964735776440810813450195106028471653291468897859412774883702941916561071122943184063817876546022413399587986656452508173923276447173571680669792274444589158298175658018704945475296818882158733356247058181232958824671210204391636997247654465745817030581968977015381964784533027818652300285865280921891426189679736843622990033945834486355733005557643927821710571594042143446624999630454528989018774264302575323960232811377410634119766516271425617144229967831306545768636162798392247091989385262470219481122494307741729622122285203077009924922053896684717880362286518903177521280331235282760897855641271507220134697949027151706952219960802439613025951886605105505640776368936685667376854469750150349072243767361419731746860538120580022502832550546010947146152396600883055781434406948764948015280605441847326565317081069825687648639773466138787684058605266186276719864114257040250500254985693634061428121810770077033424773397129370047461477432781569913549996643421681955105171469195460132319588580373098997938783363489804281780203834409470427151726521983583545623392203506493650216230735064278604545198579276418255286296475842193301278746341699290430081694118389882208833151387688860907126842661073227125455420817114570135607297495121663710058053425642550416858093131936703389920689922359969924915253022552401991748283825446524697505469412347584165956192777243263134860599832248343730005739661473092902049147092138852416248293264435790645434606187475970383908682773338942932549591754240540696772082096027326801039216094479006088056202684199522659209531657426704161056906258680942246377436092492629683855984651356136359416166025318589179405180417825091135539480435913502010562740255688363035756302931872741881804041338635895575584455973552190898348501665618745730676220204756192795247884653224938070812928149096738233614152774702729916780769436366103615341331234600037793860791618079760395760504352151225014544427964743334339312844537704175970890245277787199960434877702159710317844621828094444394552818747763620740269741646667293792499458226033682433509960280480517771435901025667966243629871723685134065454805586863723733852513994755953174118021750875905854708136945329260146169859298922263153102463286346630961784108808650447556443089866393604614119738912920522467657952476781769866423293411999883255363196496871515429221788571634530414530481145330205102849435867164818324384424374691659266042860103040225824703030402798674323776350736873379636971035440153879102932631716328207461912386917944018478031777688081589424739430657370638596034612020649593099125547654026662683370836763432020789719255039147986852651902971066140502370584460790332468700499599691613883872811933350756579223456419734848514350030023951029405953967308183300487282809875573540697822505820119420853894453339657637508256131152781643120064953236038147430017848296356602473596011033619970643421837362697894231394847576420318827254654813535104081609512193643185786343350153858974694113077884597639924175762044842513441693517431687998555166732729067143021386151198463027334142469936752613084524785443534943121380889403413967816849022984815472605990801270573413839550788361991508301908397871666003736524965421246934442701252143900921668583348936424846224585693759255256480163617099874030335110593513531221232816471249190776394843560681016839866890058702967787566703081394764513809347436459782430609633828311722975851314265538951445746453393058144466226257878091331097059472855420604446888821021588180136052248090929959812199335261628548714227561102499913400179782143709231669577106804150155952546623286351712199644720129718988724871278087113303664118486633481449791379736450053137206119245225136984357350879558798202567130016407911294430588442264818942253978956490121064213563115445379630542401964654675369033446665191713552713938531515585742099768571999236258473407472650988643308790620301417159290695623772639610026751764225637970780793826679757429872829752182748293890627961717908117099699699101183509342610239915003208342122728333539264100807266504528676265772485777705897064606157561832947898858856422130743102542864311924100842795290437253005245062669448123610407744137028883682004767942163677701357494625989944658274890281220797321925678454945678901410031383320667049718932345165353852910372874440888858105613458547097426433050011072054945759663463513579471474990454143312548462892256933630087197762610365098834039241066227514027134225439149913095248265435165348724118187811833445673623839325488160746916693654753476156233204171474800273296002275207461274734050999856070753321511860525444739253592035127659856046037928715066275686040995173831130485195266540026533123175882588899841628753307426955779421134195624269118410883538008706439855132539063492494022043992550171412107485191913702416656444105204009708271044677345023195346885599987127124280263848234836269167129855526519664149524465780322282575795183021783714841624521000115193068103829949568409957419723904702656360122950094184707089435058564828419911331398546086628048269423754485292876303128396977673906001738367239267530869965205885188581044994289369513771346932419750549586111857530413631862018537699377008800859886233510493676960970923589662944169013714952456305841581342569815977532442362117935636072719524074028352691455924513857736452832676402901393259643229706175372845134266754883824230189407550664485675016530989433589128542200200264262923296852486797627374507764154228588613312717446223480853076541863798026549468950903664261148596315276759141032346300110409433978408978968583376700922032782572243737205510107952982529161328926057330495657493734362345061459863336886511556371265573804790911153485954377503465866546901393530767310551735101997525274650341486562066591409476661815815601778751651496938215240541091585818409416072089462060989327056695125732367595738698157720854877051464852670554989155205458159131772779073105000320923802335171035955015698097719841020305384335304529080827032442874893671579652561588797429656424291389852567290889999526532381589679659744633184324712207631097535088072645878575635674644041843451982756349301557472302252033060500238992209033278384759657925170550048343620868362503471664548701099135918606664587470392397379863020818619793599437658654331425884650994272635364681741201268226893604848162114412843921183529348646977027310413485510170531055548076698325658460007097728498975029475533775904737653786065125581792821054646258775441345434264128587610678130389169431206095238245280552606325022546996283972190953813308311321927761140139467109679414031519907776422515022461000336751109502883554539626822778069670971755961929078753816724490957578215789597434614997665312394450508010707722198647448703175050503023756704827492403049899979677078151642836137967420918893282974803129747384552207761575337683602825921074873580741520698340628900435276264220969626539954029910068941704915547049718776536921485752747020999315537846085557889659522379992523799519515513178056038477315458266790046832854272336396299732024690116101870297653472635963958083295571875991197715640011531617988452654770599913573428204253401307480270037828514965210702905555650146428035371834903449076330601706063430951238990051092315046077873383663115777625463235519805868870064656838136997388599763499275113627373873443523542351175394190542997217787424622444269615019645867170813345446279122325703238221844967460065980689529373561244693882847412643034010746560987776723451741962658409707542630484379572563362296670075587389999773080467590478383208746018913602656567750973666158957724414721384439019069375269038239866464885166266239982419519872402325796886205316882808925589952788643443173087826717792737242578330191938897598524724032885391220858943189099430449990560873770007104945191486501957243081840622783369158803211049542274168981891108986542389677967045331370745099972249825673203826734691494286934631502468263044480570944391687457795130110159101193517214905097880716502791657820555357972688295268281034423036408444818792471119917450378228924352073332702549920710615792751053232227831283277016271362523710993906492053758974948426552045656761161753997538729286310926606590800534701719090221002162969863531587211922449063930560308400366527205258463558594147384212959655352813713781539682262146999585973256865978117819045919627871474781045213502005731428968100416898417612054695434323233642562857055379253715313832119762243620665448015938596486250869969379148752042048580677131756275292829405011615677791654208545621292087135764340165562126270550972750472430093985924479103511228865419231579547143158331750700226165415931187894647697466785173933133120817708683159141762058300633774575159535370952057910500735521102367876009691551714387310205096944521554635722493401844282399404894383442526275359616870386951232980059958051553195396580597054291274363300744561909228102937840167624448818893499567241171263155215042902556534946366628164825682525850108954531157517339668148055894360584054860149594267619192069728761157238762333533784297512888031879964283769157553610136702424495570905731970288569908706712138062754713093592284488309750940973477880409269286690645040780957543107926201808186526569139308119069337901892195107664494240247290000049504439616266039010433165237301308653829695511328237099073580736350955428404503155219881967109715653190263961837869408453058420184185228154777964304710089289245961232781571899661909692013331401365758599829287643932158247906422217716779950156321043976296880825471252079304293172678342418028040504284812638033104512069189817804215205121770399474394572668069324525817901738518606343950555421501644872364231192687349104474752831674671940979168384891011647831381565178208322773849983703109448874656029279937756538689118292056049272415536523385752367940214063290536916848698903005960013358618671511587367020974307598902945112554189310993610042720238151467170887277658920122300986724158639512002151628530212778942356859298370105913691995926677051535253727928790947639880886181348493969345479780226403477922170775644350762636882683842956399983849885319644213604478096228630811237397461074430287725782676322683287076056804059278072930206256508514356270360050378996845625301443588834857145490061993922851715895388135000904224709163152726583191533889408670613728955364114921062936741995522273598543016537664628974013367670372864598894897631816807428607084904984682307820787305477566738737982557199798386451354600393450696738922373166869052552352149069475866625848913292143759915262249738576288733214076587454096203706000517242082558119587689367289855676076560839925426692908757241186690381671792046342020845940277957189693522760300102214589025010707463361492308438143696773764590314106682668756572473502174895263144534110116110325671798956974596849096570710754506143984178307832397378327674485828914146840879414160631281685110526422810180904489471881002293651049983450627971348461141401735389448878720117061491026319210335699797569648202978970569056963881975564335864323478234005243692626376353407864579695419714224318295161811265967944113456947971831015006637509786110270635108698176250390318528118779224653980609342289250302375262582928256648613543808003677851546977695121019547687059157809047680238779688748382334388933735302560890045916217153527273004104868682601319367450422569305695244910987687707745328460915487271794544845655767876881196581606712714967356605425143310229366966705924859106807819228010492591212219658128540409195188293353956448677130356978656536549415117744419208201893526287149386022344261351083409850395894907324373993268248274017457356055742162378581949122774629406450983598716384705476526249094039826693112051120795476936979929927331716308495669524698396729884366360386546957405842303573523372414995611104074360693208173227514823149650369838716932029991431154088721357295559640401943730028051135060089748547491780199553435309656127088171526100832081303855876331213666427064281433568745073814304364501901346315970283017035545189149046210290250892896603043363579471726492339142820605766665760839693362140202037348202376502886491763834932414541385194317513180438748151615727353016423119715022369094723873645985855714058673705908337735928628359024919393853800830776190226235413902205376476511223745441475282255654847224861899477826415782920977964302274391581047654601953392796010295989894553564283454038249205507260218639914305364188238226310230271351308017311745332937604513380673172156829137124221539340697796252084312140543128437555501794165402092359303493679964134933247678715943482129731121291726854701217176709581129372774146456909126594513322269808254511360710711823325714275904021594177760680216889233672752676809009408020112172157581149530599526002469796715424767508808662401043332496496457420118352938126816709781486247066848619316230642312337211233511308540396845147866352444123594284662703344393598604334803145686571904681806687279295203525805965105642508153546503085568655799776814759277606420035532166488860377495850129320278956276060167610733709841612422223866185785254764318469735509070054611551554164700089054485141148352487687414396311699452015813812340809208396620223975497978367666658304136473165688736936349424680811398886539534504590411632216049683591282493502846168287569340494953790441914357887369540160269379472184202407307332254551153989241427170826628418926172521543436430229459229633017827550754365593819803061267452049172544583144203289771567943707408985629033643317834634385146012577641859352928150424486974048710877615037069278043525818926148834914500252746992206029218740950899588877111240319134834902552938209394073909990958863331658699699769205413864704348473283360500817792795556477230501437675403392502188029985542833522872675261052078612930433759960946635753972007126132035405683729900858064390301536448449950083007177930574279454366184753072744171116974811738456487760934174118178311284986441252998589082739610937999331799711534050516539324987105852033882591882043849657761062026120723226738267649854507359199511793519711965140747369724897323332843852568168822491658945933066271052955488158800677599057054701705875677721330270505310515753539599233511429689486675960493636851211785822792273850121838129833029280193670081730566822827662332598761211748626964772234882828174864294497849146131324687118029006867179481728869090609557386983718868874061978620260254605641633372479931468781995605120493330869755757600004168771798407433217052026611125647269972151766115636883223099860337241187781762985240954479023407686593017755579763096988675772591197697614470143033589366482890131366374604109789395907308853814881004573851961930856855590690231532352294528762207027879398871980289312666862692849295764895503032280136659216306738572241419999959676026715862924974971565083868905606605702474100541528207929814217591576668429238848078171614767717131544890930418619004683827681035347203809620671135987574708183552344299854801488654677784980990548544596432743500996631564078934953780253859198099297760012492811023654726625136305245373660611106244540495452386228218589661850935390621011542938397534027899397648327475476427227771181720462436871193624096673880344542332373832886202158740026516428380595906873848580590749628049400703290036616155997629000783267983987815649747212851163872507086618336861207611478204765158262863560910233040187767201154518910002650343722155418760812042218285850013786962024352504205694053933715698165138574696720340167788270897102130485089252742268983991018546750912779701664371439618836785086640325643294010499374928329155965466994781394442384412515985806002278487289653670626670693621665344236958921569051173377626058856134540029469302243207567296527798180672580413536872210954267526606047544791497064470886138342533405079882207917424562106021917537633300976424903104241236684591946647301064690757706986341668750162378221020388202015137343688817025328734960497361160058000735218393325166375442186307096654180607443153858017194626070728814300536261361407132974620114776540337623702763904722722309654261207198566125501917393659643008446539165484005043230429025779730919647128042319145932032072040150170094070960074478450194210005716735408046304615123183585635298949482813434779830220158503798285561332409714169977068079002256682743713732922111007433656701503498090757558994400209718935874007648934688651714101480163707975324283759406796223869078694002554037208314449937364054002672416086278806356600155394955079510562303908191606878043367374903330112992888736982738660274412993081974119741083089225427792025885371391782508355095390076982543155490460141233784374500690175263826038589153528766333913481079483313717419780474182354231248613706188711114449178104764723282000448282607765405455614591424213785183511616006079247717772403885559832271870780375297336690305683529099351084706421030878763830468731815108562146458608748029924304050545996426594096456993595057408190132995541673337018676356158715975063543306488486080854750965424197510367396393789857434706464470459191236144777963189176809923005428881139792771237782167222087479463246394557168525351374755826114312738890725477973236968267527034757674310518622930257348433877237160661917129500738084196541850669546739781633927612268097475705603210052878127498786511535160081027491803897326791848405218369037637134608522163558539941825551007546965386164842171118091292114113134940686068464529788110244503790347095639932249319767361793444694015429479462895787779561909064577053542262479377840558796433629867035492817334448044490010159989357617830344251880296340551304515430997909499389417305738850257952258422748716739031184142217848234192062392867066997717203530990104239787342010148266190635164980624343325934664611879142539982713411312167786671646304282221088587332247544480628476484978142400064784838930690035337689750157351448730243560668531640220377658795026426517248623678153078714557057301219406323564269778664447335809441063978253043648197775341113369682374482640279567533513219535047065490634091873873246878839334002705202762425855650928319377070385535791229518556565915975738482559728344527521222014821131889981363988655456252305801597074236577765760950186068498016796611947375720441684383873262034147465144371730771007823986575322109202507734678413573045858055410385503041431665307966727290605009538333175531630102711202128110311441978750207395216305846738035883522643402482511558293687351341408636459850756929991985373442481300828425626743174756751405665784373147402035955876692385295750507458234185445054647583344925428529963748755989797358704306044509118760812324217359333145633453782243732158106764293384961943900705564505977976833473928701365319724227500292429048988690951100460644472406569300379378492968547559671105292371668834138568860705594877187146400723367751526023657682836720410712026240460462404883671935391850648460488278366618882563455923841744111711749425203194330920812488396996096636549140407230497254679619905413553352740694704863547626432309761960376721757689649104970353961970170055494911257701918135139794406343426521570419534105680159059410988980186062373549749326346039976147257766798390464443643795934406379288650116484384491076424055286324340595119017720112117930782386293591151718347435634434802256854343701423384445544290510026398236108098165795190488622322916170256745153241726923662641937771595442120187165688423790024505255035925566154661821408584577328839077010696440202919783722321481711501774392414718699981945133617174806958321280431949060258353752403243445937749893659302738780544437614305937592137122077106172384765117595941137611940154758021203062318991016665031058524245861871901675169431362225198853925889732461660919569061147689429295587908590995028642310919988414668152780721144434501019248297059071452109009792590122917132597509224241002256540694567172422313284138550011281515402048031185803320186982084045649797192668450194406520957084558067158731821043156678097148912843461754251142875637512334637343293094064159508262131937962008145532371565861759963023512316648493702955001143536509384389178144589211990553455903658605508981236188576265123242575663575471476399574613746316125644099696059628828252170862859974648688974778548172755583123755376970394642250025128459597635872058510375835224009945059317864502720157472997788001751272550434474447955877624660353879249033999217106346372467670866629831730116915149209120986418475847981471733393827161717185490671780977362372328678451205139132689784391372491465638735844128490448360138799980424824735195756914032749599643944045134184992367171557545593958592665479228746184368555106000629327158422680695665358190477411213972700170423656972980586800431874050307345474774281372731526383171091820558985496134666865565983629943554174787225309248011172188661646928373276445175429197509758008709180509838517443020683900001085974072933069598853804539812470562309309623412319177125816430181589455374449546682133222285270484226440977863644479919643805166307811734326124455795821497629462282142704290257612940286950639134496569296432252142863008626816413000813489805040531973182304811897550024741511670425763926411060580825161816041205408727840036773413627092204804605844609068455388196155508393315509436024034042248428259215052836622194200489475479379943282718178573595659679028835620578344981009912500323742718970690134745492193365608551411790351733059497140383151315972312651154616876947923463343367917158164613434403574229829733087366376411280236225456620862053630726923285258426618559268565962827150282447486750443061381172989126362692267721892059497275082308056029957618487921646914092512241421822386806845942174402310928404715881172110820472174965585283911962441979619418199107536068313364875621536705307219085476952803869557192196682113955287939813019873208275161285243275338555682402427322899035400067371846414226921118798310575379198445692153549761284588068242936113521214118934347865306874182713800339378269466416987804299378892445576306555634939368342769558422565735073019438405050702551365816072256833587946211825714329181555420360544314788917120199669197709657607592894942436519091510321473908614556506342455976654686802437690631583857360883127715092616848698814149449912126111859063873732684288726538891533769851361557768787046117700261551193153912818167942830003060924574107287543019911597041347279981381474932647707502150135065747725668436794251401491556432034071417387944244907612179290241975001659055003893970751863546611134355219563083513137622393825951295221295756379824724528921791288277798956348599985256563983602137117061873818781638886550151241640419317841181334604389168111104301607094362640237778395297755194928963240417978692225071733619325278047359742226052816780981333697703495705736422347239120340803789148836684432644810957819126954341308678408943570483944277854417319769828577964719018993595977178875085351880675783116269747065891225459971275660922333885505175039020229701476336328705392454943021785376986474255589651632539916373421290940022946591984470105392250543186294919218804772841442196577341810910201120797038355447896621188032999674039044240397573517563118711120696512420038650818507611121915172499094862570574709131394319339497331639927735455824664624336017818735334236759103469442562837950254783951479944454786608117769694782354120937071492934245401322794950413228636791959707199730279893785843498499883296698255776726887632692643301278369652133866701080967571571644650854065381405605732941874401425490775977902312511136590497431031466960887479917275701509924127914646750699145533051351115187381071148321791612392132082838430083818570972061590753705281568363080744046793905041430223132296554258292522301230238729657008522465871949956246445493301451193787957090511783768779711560581477001602470753104554975630744919449726732146210841638579721254204008716786706448752666889136982954635504275301853169842509934631059543957345571135907630701653832055105514256520697080722787295245895982650973171768474342100109552876431815503417150671971813033708718833509149485357605195817881361781189124616737261881422536129982620251138177355936370117524877142737947534063987236895413472953578403329644147921652222770834706694488380705856032499802629534545982521183245463642286359402726979108063110113412748097284328383578387124096127230649689947556007972921229503173014015188151925391295198676238316787204239428441380868448884071625490787319215231761934665147557058740918672372432842072120896492462083022234239513046434061531516317389764081989251015430114376114889745438635654657947377888911642201201299488670100817098654824120920487996658390389464333141138822595755473648368298477837212306920241856275710754217630961743376840527724635984665169447119966809404705275496684861526402159025457631057408260531174002669074353088688095646615859887058387592092187815206518914970509850970419390058951549548328706737559080140288212116500874043215899620235404148801217534689412625106145148991373084993299842609768941339425679612057525633015389650012101018446283955551594372050962422801894207657442155095906403308932295096161328637079252011583037023461813922663424904709743158793622228793524417787765480608471629393627618812833151227521714502715834484765703309744037520557835017917660779456740977616725685037759061232803476749641842551617749997575174228655339228100170994412710944253018974848959111173465892023899710342335651457656725353369962579153753463697636662706694958561395908608179992615350384252652932327263147234920717410382437293009487935482641025619537655980058701665607607268893717382705627820979804733310916099142304321886063954988300460568952106365835632281233317829946269944634960830427706660602848137591645631967451250386781595716874727740960748015963156386093679805432441293843586570206689957244091390920777730180128040270744237196109063445342097773398087096302331261050781942649193103391793881738338278040207989497137705667103303011334298398527190943666289216518420327763921760016480044834158649502019609712568455134014266623355517360379617569297041533426091037109619617220219339053137400040177878617168609823186642103676116664516138759720637234152993066356654186758890166437189434584991057924676854134191660403351489816471725326371560957340979251115339855453814403281165482501390930062598214167154775807200776045717124592119204362852830657353908802173594322118782402563540912303670461339353242787314769486374653077646222788778322011646239509150744374874959139673486990960114361712421152211129788872413934835439808091895560517310197572934498457538646644673593102480523834844332545524802191209804969087439520546092966176070048618958372208098965303450661569212957727942461261346692281250769023242930870251491214208645464141003853741407718953747285442732835259105942765911897140684708257396536402714311431637743789762677546242291280131567741947446647284413447902242081642692551229991600913233215294479096720097466070081134691910547049219569983544371103514801536900217045528754621581917132341300381775884937683659066622246658831414666434604355821165474971134413184683257214250811996671010562827327463223990378720582109486374661918430531967306732631314392684319911795793545998651422208001856583110065562789205728752286325951901976074233422775599693297009595211768850188871039592766613657038523519662697498148736319066141124917093977765152857470443979522095926493270699892251661596382913868280062051699653406032601617959247816373096839847658185088075872498302903183928702617439966181516528536775568879591105355164659516184691583141610549472977647110560733651945741258720453790699169819902001368157038525525091533028671216908930994638685714004386604350618008870147460452027390810528559409862929109013425869406277909526511816390169483426365646226441386677009743122106614245731964892601941756388035044564249027578790398942354474373808409628730835125016295505861477767114286551270258426065668880673811563995957122960901581192737910721424018365408378764019608186191261958935520100246477622326013923603509491965062787123053805353701553277610836490899094666041996209910603234104789915057223742202324632070274895022784315283102119002736148348949110638369395110888509350895844910650120997707784461685875253056362400899472062100975434222854334603786715384009074131137979645062571847408307464824300423493042749704096431146373621459981278139644530547658356410321481783283074726114354040776582303114488648178092115100271607135006165822683935338317804028522552859807707017999011484027614485920684481432531103524970680922892069527458681917835844561845006835534920275654358305282307976302070118001012215484320930214688069916744843210947969761679362991641966885835893569387904966850048558067446029738461445889713976855926681725394254933844533318176429356800048094952159227309595561605127240742544524957446352952194898965701910975581333037612486214945929943283859383583410229521639427640559122585839637883168471608722718261526076372743232674573841965504450315160722143235976106539524299026848740475405649422956166577007824904053397211881322736090503221253707201598663071882957937707595599631015317954835217692872471432089210676422156097801113312722230872922026749377896526820816462152231428219319142998471063698729213380322187797759760185886346256311758640463673564156967152519226802922711386384063789690250570140907722252994977490494533585810047125192145352337680748835972289296668731353206767865717670915833399167469464371869876717098942947102161415501781076312989073531161364418412542317932845882105428659246462056051052550412701923744139200358325409810255411443526151625466103978250408812924897716109908332734139069216700111289216936164057370259732209268118799508646304193287118684345758614666972162304606245765507423439464867325518401323525905853559298228328099119619302438806093388816973392642402559425057999596211191727892233854238757134975873870932461509701150037537913628083487975607172434051533400523677504299865198631543791412943057726729721397555022476640270229299068177222589755259468259304358455928240170599285901306985339161454537052043027900383053286228685531114545456702008807443183582550963323268587431240373142302742325075495895384811056931124842597042123123499115207386423096483696788664276154901933898080852329978443535697604485098304413970221631547861053852743934626614297646883350516212700599904111026386703581489517032136385686502929801363474137618507480394325447042149299251006807488938794670136636789566839298916895748129616774342459688605617711483467236776138144498220451501434489755043400001300524887857787549005593028517578824524368919849473808930834189912902485270107393072792528955232044377846636400457263062797649675221368279607509164331484156677154366951228766922945571404627767082057228221353976368209361551422885903800492324674825119452679772891159680327878191105691377165935618815023031096997479287322334805867441304218639438846651414210536930845992666626574775871868655489195811012040019304899448436696867683232243873438982399170380943499113718259044425163257583490810477764265737057777601767309633799604693983892929435692406171097506015721676795390455104957549627152962644532523349462933852770107066513241912061590923909548360438084502402610845640396331406630296419123889527164304488996174045945210011895540584092367019613990649094302371627825634423815059284244251247896388247684356237123656571051816329049183118001315453850943167611997340486920655493651298266121324974189206827142948147005861643930968149588500203798784557576818676378259854111524545614204965070519300683422177377318182706835129895843439656398505080353380776966918582301251225498878489312251933888795855764277467625203056878071424717186801845673944863382884619879833046983938851904530356679820208389645023772508523642718168009846187271393072940452547206117290563423793484155540434992944424293490245753342526384013950459728933038450507886310659010094254289749154909769171175914031191497298832049470311013674340800788735845920174818460294796275310441093626225692536488144585808094519583659703156724218948556507928011009487636239324035945947597746734188780420958699537570202418508188891975832415381919293468735017600502392613738155472705392445819805083842933791775929181319435034791721994721651059274236948393066394994067135622099599148436529637901969700360581683964622268186393515745103749851728059551468139937125960104172103858494401385691752123636821928947157012172851297621230533783625659827787707978383432052531229720645227230219171307848772472561603075543612495850804164812851528893169782206945633348458004351393485528015768148279005245119119549361257356313090629256851069947757151053999382487155050616843796562992725524492914309993935536175946359231165576561698546171871426723897844132097923790566980049137832614700503006504531267405628319680543050669078564366669214936130038417033152105774302707704299781226389555034877714666707605638676471560550285436370866317833677564375837080074601416094938410347227009865308319755139147426029913446001247673229972363638576672917860172631101485452996750696496490840440897500656511730748922327031354612049866994954990067455463355029774300634460136935569603682308017793657999819356933081567237289835231249540354118560963510141568874801205613298896275333582048721166317532828586910544327202818348332517165646222379146283263266336259690509791887613331834432800817258942631219917055248572489660004839797979979854714495189899162877406286204992109102508344041918980434897646064698194153192904722128608421979805510811407709842324704724012173784711525709986884479855414040223204879687583438434361761791499058285362230043824876068530408666283296044498680491307314599856280539527736434296516483149046903808343027067333952443391138898988238017767649336058486647441560674554976045744618766280101206446078148438392327527023524980968030855724384090186953186308757774783740874606695142979759709343513493795390438642745105994187446000468243195581060101932493347244027695193897731843769011919634349768033431358134784831982361275233460695490483835072397600743957793417926029024996157997746128696338761327301617463596541796385916696230626301666662854710527187944994443851637729625664320515386744836571442765729285727244678173052073318568528523184836310632172422540008026338327894479020067554544614982884010784394241866112720777038948586694725641709810939056072216497370573684902968816753083649922742919145430785786248449286194124647815869447612842986978877018588961056590679268346678822204478411077510051572013068199317951013334295738592378575470102386067965333449322238557667686746401593883892660070219497049028798642346565674494614702879392258842558437213632708449444789033887414248780852265703767423433611712414486215378354044922793358185954389541720562309602030476827983065813006704422563194622464850777912278737908289729822326749724541743231826582124303808660431836254263882038942559464073157372960135542590196070103683429288689373889373100790017733439443414277603776437949890317111884914679740030498432467407979746142809475024546302384510722662591097366824237578113968559751527518136130927098681628179222669306700231638121723074301790190593069554092845430504067360474632123089998508354635745408028846653663902642773789514874908246801398690159107707092584576421612111808871463219797277658918466164424097161832927872908669324573135501126734286302176457467505862496250298074361429844307356255391295768495303385742654895448959197562689329579099741985775189399333627378006535813565955937044963507068549923581070959863161357079756528602690580535195367555743654182069303535795650905299870430886401375908169226499357937169717459558000853978889549587693127550775064104295518351593454634278398843884288792162786967091341034212450101361954415447509476911210338402778186484621109269971353647671900819353602354786810237284114404992435221649415711224707176943010411460829098602222870586017131233589478487438034707718666326533495249308508449278019857841207279841535858973874434673026351708607218129889561722088964757774380819361053286153178020591326358773897199242150643127814401052683160370639346515306633545541430288356496993391062689859631009341782169301710815850911562302706751783132452972711571966329077473763677089301875490293159611069442468600099004662186163848522737356331353326603370385542120317605341142411902372709257801765925961835533601285046251200607502735578476975012575195730731890329236751827276307213694300802081036231090460717738319080460546227693392004197889329053226675477578246324952825460682039193898922732483972133598171100944331619940322325768861257518102133782049260018187295068338992250286702260271280741729395375975174933218538014834549814766003626388062661865314281203130728976585306268826954082154926743773429059602965994056900556704791449704709565173833905581204527327230112021338921344813917591175346829175551381155767623613253407100113551574566780626582197456490733893279940062002604277389270148745597479294528612948312205185738089087921831482801595923947910386942756369311895161954841853002348387088394285676726021795198386641628068960977071937396888731468870718052178899341071338556190578329363854581485097129294196868782612041450568255779870914057707448368535495369833299447628750583946800927035789769040248500119420885995069006566914149237885504824841747893513261560843333198925380661859104082773716342938406964799847363669463518762389243458752658928007011208755978855841237988364220092456655522986922369926996382189528337625653024940339727407426539267427946227695445359225185612077749441417983096968788179865052048643405131542289120940980192883586639864758417281914385123874912153948301732725559908275339581192907762060472033895090375065046565112977734523607822759023992404857251907731576838723599619208685767574746032841230526056701131744922820329562468853164288857125584346632094587746794753059036469423934304406862701957554748450531139946747863750235171102554521846253167302734573946126694893538608891468144810279791861077136096707475766725116123851641209319189861159477248069384201314896548966796624512482802994188089715361931781264418270357156180822315076358172050154604392058427359769060692497296918095229236853332464124289393046943684980932280583505593367098094193633573131034626517341181627157588822694103461654835290453661153080949140150177293526507686156379660038530304750474415047782688577174754718298939586542852846838229240122267701453851342492777565703237532802723531000998270997125128231166302694981997442623902066184671092730484699313719213167990224706338867176345918892599937278396651816007811792104689504163560633445431597929886659996390296715481183232600570965548844052598919670359105374934050832804800075131297030405303579407597195945680167261735800232615945252677167163738824683523558566772662726770834652341532063096093179749189245918378273669731208027940644937416626053441555024375345338490609868265094403706914199480466888297189149511020351630595504074530522859103591463742003714302818402071173123665958439886569295064779913479408340800279462316307501839809378173541118513077759502803032870243992131309894082931493440808987500346759846704526603244814620672253051387990050309556560336974643947462240384319315473960413505558310739446860385516429594782156570883397325760509884277954266848926833147969100719695430516731460478260531839636144239935787358188932732009329524780802211130951939292109772103995011146641272669199848998524326765109509882869421549714800424588172510812942015584008651550923040003950800341284868473466687598785121456909744186640525477031992191721401333412263324732645755471015620557821084979598381095877883864942506097574170211647313698267923271970668068660424816452638032852471535492118345059985432550110960074107584861445901303404122748836322618693067249343550145288585659280117512256756153335594683812937956082068785064751115164187258747790276173168295512088271497552376634116780297620851782551715723537381837164871749451918542073911625739193070684952638792744469424028648273617064141143202733797642581923277193204259285389099856162279598671071306036005117886530648750160227914956326463292122587591129944886596983704768009419013719453645701124650445859370368461299936809330794550650993313534071526780904790630342681351270158265593583778078483567768582042182001318334226115197326806255689163457007043758416892391386096288897042830670116236791645550868131962924241506479806555937756403720028237430823159023156888638996332718185535240582881963282011689551703971737150252399745038570169624904953753493819664418581587228014890775152326621964769911076536284681409749480690051663148601090317614252262291866148049283874168319476232670587879696292747496516568569608880447484518844529127561603274549066394091362398387775360304269376017934604771483395505412411780032720978845091476886139461807800885096750461320710625606282582780829495052623377737120265980353452740194251710255718264544360361606671129790002206508902908135428189997517486770771548052198189820457455273000754832813320753501019117539933268866723173011355061835198053656401325939645174167337130768278773077430393329186454092315569379206115544950329387889487458977096970581745829778037381694228609501386825881008566920556605834899542195811105471862802274674414450883864906723202551471141095734209419465178132822418907602695402059323832128060663475087907286893913169851166767712135364462152241763618367938864178300726875722802249641321833798820680030576945544076698925434428619284518755380076674149677770766593745148750988114262770840889521794321336783530337717631120612763292216731701013873230728009988933527305532989868962138604142454557740799219594313783849501265038444522895811987401496626618532769981694055032668044066361905181107132535732878795285664871101835802824153127621900245981661781928554258745263827089294085169856015400868920069078887127503156425768964223272611950711279743210458217082211985416022103502117390391353166879268400759246763467225637064044318617781703556154590319071025655082536958588685588058745373706629688704972936124793114184952814571762250052751478784883815258680040883671199261969597915327058650665700853211559516091660846662793249882621186986297002576009890895994182606218536285038526181080702448575092416046608404932257880201723245543411577032343337293121367091490735401147170135344829917832464268578184259545292180677524276173946009030720977209131814329435680067670790077606864751201843153342696922920100280131830921029322165336963388332868849448971903963733243179332656215456903216426194968173684331834073724000102845028194874595567311670400147570115899149982722667583556963605310092223612675866396973272274052766445005641741760035462954046502076802980973036594918125584351530293876765856119786677438538411474439383683146537846206211961954438813366177503245527031021081980845937913803925844246508384134744103531498778306949493913516018952300975866822415210778158260942503438990544940459057142638195193346565923665832988171988337400318301202486537611534004299983937377123585979671796177428362664306132261958318752301450096939114992245574126644997031988369525452104319828442055347183720273352988462729280600205821276905467832111312992415635381859556067855591509856776210362183687359207777427709282843002140658886602038302647405528344076713323897280632430169333715399526729589947837975286831775672184989867221537427961022560171187874006032477839619729978635414148149708284477861560509200279648675242058106906921037409561598836787010172541956604969793122546698421079900143698505119323362686497749791918323240298020435591494865209434378009921349016444537451950880016861464939106694071933428744143652979221151287887940720682818396283340656261024924035894060719657658242553870167423518170034808423148595017442851901311216941360271456311733528243305770870933605009182996554948886208897759092259688676539039360264525550861562391954072721325050901098497875858454092967600383993833955627385443917161445145353258433139931973842048843658795632375803992440134769019572565971233558909275817106441041953845475111054647384773896070007486402011494538632663054455150166995746140815522444740926768188998422676854119321986305324226613473389625252274771182426195253074814431495037009178804528688107140440336124920416210973791002179558881228030640171493801277387166563867005805701196798600939957293030112398012861474250613469571765704296546684167641001297966258990899915376194639779263967207610384406168303569122200187288965977274714188337690216267932327058490007291498338799252809282932149191430536812300460108644403533886187153394838150841806955351787843492981709743978866650227088114191343065879678528772571290761077858264432362020846984390618114211835964858604095579547136602450556264463541163257196416677796999324846814756248704741837826874743124515169400067168929347246429005129843392279825459825159610019717347871689498552634919648895785024461923671898985912384441826970118423158579927790759778714457566987421527844091575749385245713214639746400117706750091657843107274867839476461385309351519386362187614031085642069851269117855316911799632922137478366060734253413070513868104139649705250939823824371881252813764297620417611042825227578971614731485167188561894491464892377296275001652713896645190924612037666424057555280363140306866005479834497350581325339750311966372733360315172956331510383008214293880983037054304940487605407033302906014838234110768861949902378391497259287108257932436391413051077227803821700958985326094598473832464471197980912187476022346825874814767040736472923262272065272092358318279021052588996102216781718686606681142657368153068103764609840620131075075208080348995703206353127361339565097512254775180410308856563699617578973010556901680761705456680926313790113387826703293569275255469199438360711089233020319127979304761906660737844936800597686010324018206792095533827484674862740970112500253450640679542808866398626509578345948425235123468355410786839875924687551019071102640234570819553037222353350866764098097892893857467577542406382516395254131788000935813332472610123652779516545873276253168988451960340309571349511730624177139716515683561681948515453252047579190601322141335305585972262333279548175844533119940851517133454448071891765177892835947780759571376690444609689035925326003912165202196044221437398805426495435257701137362693064260530253728662002025298260459415696354152211653987537340513442024997753815494300799408747443852886452470433328431411739752187886898041994609188553785750504091588541785029584353733189722385409858391888121830238859586526989655447041496271023747816342044787001142995598915120901215614196193883294267030141520832910378269566160405172845192656671209556152128531763382262502489018830108439959300742099179075736395255347090140905174887190043583038696249916383988452783905047443018607226454825697076082834014433149538083988186061625044043056739671892399411834183974985206282309385915383052307348271738654727798685251800533934013399338850975786875878562595039022100234872689629672614507967723449064897914363887071309432265050944893362788554202929745496752093452904728702527552155441821737490588421615809207842908282423300800979536437379741169775020437174325595887872409783897645770307357444924182637863359441464306353099410447692102981756920295601748772710569413400461554630188350820936422256914698601552804401526634464964458743550410835048393393817593800036786443577148646185538754498946070726813904881728315027737963870945173618493413582358430494308579550434491171530319880688895299278856071167711828810438812807615500632340203409219863493758429170284565080946946379727970250273611397236222396115885933495105300438571307304820554721385653767675564665927817057854272116317216656293106703648514067248736278607387489278072540301294529624187723726954349247264774157836017861598471276067076849443343606908076648776826855691326562670520770099413439613796816166621714693527887969551705809212394208010893797233399544612912105817120299311208451455081003792318700271404751046254998089084624780294369616931961080028817049129838454862527236847593589524582205114792356435939942145782130951327530715826914771282707752943772488382637792629207783951173741240833990160844911392558099491943260315438119374443654462312212285139372786546662948572951466664507598506000386330165673173989251883257280112785120515114852279505346212558296116353689686777833051823428926530230410850082329947188111322409125592197126596202363437973663481373450390460967721732663018620418111694228780118533068440433033497932038296133993772453722825855179827869137177025551537594856570764995179607726286208600001254895628974965219877529232038453704813999446558254553911778223030708809504842729491806901546671842624562841255911796200688646083962100307245747750568543177570874998365550088130562899513747110388514428096751452183300435559290784626715462158743990940468961101550452233581172474144788301415320927762152541948580181032145689132125371555382249426750659327216894873503971512578521277865992296128752199744535529767090105902825980480520455851508674850222779309643602257492358881807034738827664289346486544873567178460941214909810054273179451223233432357818013772649551822909416429404306495268342833774528966800217399102733563402420900960414565053475161923672020451259174645721692669620870311353085104094811734053081443685579051794840102975033277400822040480213168584195181702728966735058129567512806222660066671682858796622289029199337583991338128794365174343146554983632883818218097415734707608533491487002986611713896743150850603463306951914501392214496730273683250382965597752703779038309178750091070878202940477461554723511759872291071477316884032654028056353228186080533066805645336705875914162808103585006393750264189552204639003397988522394584761691043950978135237621993500580376577605657238533578927342330385338086686274415751781250620945096015298394858885598636588229960948213680403587243095720249778490912583789282599618880744885051479632773370459558002414911463527104338125528936691540012139735099771735052410595878109760243987391396432274843248040594375790360141629256430389441094917133640057207503442282625497857052151569200728601673879618772257582536246658681618770198098583560151363407634323519954905386026970906761840218793027182396799875597537296445088210672672309345164111095797235548767107404564617423255464291538270644200575437023340022222083960039303702484476091987949782011936370387378653383083089901376849505605402253668703405183254128715999932583207005502740361543690176067432067582708306173162166472552841628144491380313033258197734481243912247354980579706114666601559721128440550281608031532137893017812335521021607461570649859362255680841842594292028895425252292901386478933640497220984798828941425147232848737739591614523200679368388996339540263181415742579867286489479780273072922956047776441934656356306722937846340244944371877766527024883435913584738894247087796196467092007409933951951503451816800950389759487623005300116674545500671664798340065021301184868157477587694898561980610120259334815042683283598299639580637647116151576474060916288729141315936920924907362726476065382493662407534728778681982063001713037969499268323704152225528353078288783545981133342513158846913359347657126392435544443788768462750691226986450953169857928159832825314828670579799051615560687142792623825890886874790507553906286106400958877127321098746932529545506943931968334778853646054769420976548399814955215258199357917130229645866858392236152696857130068292667007360586578586759253869258079793226918257294673833022498617454767259008466906405049460379170860558786989634475215473081176309028871738056158688794429936089737090448814991614658497594542532144132822377146834970009696247020027007651347689719193609967912917138515659143445928410267512051438463104010728408830364031842911518798115516017824527193596809740546153870699531778412288882228590008993887962527721521030369902991703056263813003861026872171396328713214219284319028147552674643942138387961163210339583490266683949508392060145163745601153242113232803800202351228638793676373839715952715651631339797173895325447877350161648977551645954802649128697464071628939623709187976411174882632739854890654242035110560276858410748557360962528754594744395733292443247670142741931438925471783354932952759467197201407474640502999817176540066104971901435484646312269996705253563695525325122725654057299987495657507644038399662657881815039581149998482029320695853482790981324732004427191224217375215892846242229975726655590736646807794219214389056457796051850286166636643218552828468636947068756422597646955563045578188352224802682941484572967014942119622293696207544807470600742554625919140921454566206964454722654154526694408536483613302829991675891325578319132183586770256062714078432795256908555053976216422468126106570292078386268971433048334912884697621396185314379694227212158811613507013886866985008582207206007914359652078920198194191201892422296529582672777387848226699918233952188202552420544765533762935189933631405912854219475075685240791807415881005104986313172741811248220058864373452225517719814492329605219099399013374018358722952205430350702401137575253961560860137243487437361043711296212822749427981299708509087232905478051558215400948445245352052203103838014723677675128942895870984628293497169342233093639082190826309906220126544771436704892583680456713049992211413060514787812935392725225796980780437815621317980371220002815895500107018250266430463422684032882967937391272095660911604805735805369778597140228514416134107255104243883325774797510537456381931095367082842596561685152189106834186355130751884924832965829943290079643606092826279869191158789049989259420555700051171308339073229625850532910606195119305864265321300455732918218259915040581728334183687332710952512043669974870319774129635689585469235719455118709356386134581717532592264554619530062181533589796788867866926051561193828986119308598960215082526419413986654032849900479562156194153329457756972282865223956111524818881817655521429092750714009538728361289948968672956399808566049271219243413349578233977067217848445659492579586512261628403946556203545432366551160214058748521594168469710672401178630414684949174674244986557296222967274564119118110091569096442456599893432128301337817143213482408248425090522345311328602523373571911420956328210382691620552497167973802887224961136086417372208816289236695096638147818343823444394326362535759368869048690267382728840771548397614846029135809040708049903646870618683975509563607950703772306208981839200756348262552196662679120903399792860630365000317923918916844096481278395063121950816916597631371610771949065225524873387448528863810635723410817709942432103962253585446400497771933612020711177715527926940445226833858095057575966560948958305168840606953631636805201146350737837356297498439580617016348845009988017769503023971950489442358552058480405240054160224918125547722551562635341083758379001618628054931860386191618935689753774186517399847896292372651501872135476348217413573079383217483621312670138226093366871089644858088382075926657657274813714838190293694284071383051004022074987615314155189360397558473615405741548892032108699990919953974450124913675694765757542041647109907403659462223140551908126511240039545692223496426199527504544312761374054616563218797460067598440614388801048599230681347048995327639970129582119812757556351427458196951076205010946648743713271803461395681388712033480109609586902746849651716798116662726518582538321820950456618939607162143290422288470462988574104525520072184754112076797724239779194473869611058874933178318999862678071951558148548138960531481026210895820501412818947420777120458994274102115798218017465814393362998982464666421999556863087091733257293730252466187166393755453748566695650845504820419789336975797215888160028688266199301974182363373814363724634284837839871632074347045853705090583347134435396442657091654027378527943407379851432000747994895865750448742169207780482925134555819714124020515387478530100880153275722728074637860779359724671809449695275748818599090259354095384191037861030217982440494934628881310229069756255849592052661893809256220098237953780966924657108017394318632120439121222404701201386914096315269530893004973963765265192607054090029777111200562683657702770626028046249517666768106524715560248495549430397290321836202314070679051133831903266025729228501866509198722646471003566556307035518117418864705885085646217399532316155393622300383809734034533324945376281427137953711820453707584989098885193843795194045103061853834392930394663655314768456044377260957181818816055160323731566698075663671142455526795329137720375838510751082651960565158885443803681999807704356091314237738578460900741402500660650248822854650129107711990835352736093751880239373328474945526824800138574312375926731941479718314150833686759657301040699686866226481690784975874809636341282815806601523875872563244819067895580722113125702856419648604986303255581910807070829130866864362985776166143594115018234361076720035656590400933306650586050958306740903719353935288608438450951926449609812453747151294001806801382792922107596519936459042580143835513376140235036373554729254337096470299210375864897493112118169414791246840265580604288428288331671089817045283843802979432929104368976046631667647921894988478177831946830458266942378096844740984831541350884275245367593721177057600751289304092903294631720502719898827925904293836897313313909639857722352630071384500660624743405698006608585312058768988038315756146492119995412339313550232175829707806993270484425532250528463084795584555834504782160008565020498180595746636734893600592048865013228797018324504473143463656521046984466599809752590246075101650927889052680337866503381833839027431922441335945956285145564898543096436486323404632104145689632255427605092563702538607130623595275897790754516530607126000023204055002166312811829890983846210491815890367611633319292648711577439252862696940450874701979081342467372828335622198232344321470651209765995800021255465182212951047814935764016090543192992006282585029544864385580228911081830037577483822138413555443735431483514308218602059642838746921545224049793901487014605801726877612721903126400804978039773929532146226993182876754289918812954136971183075846737118014776391044420554530355959094537543828639421437311815535012867304516973605245767556807044954236620636407243642832075123904570453472375082887859382513783200851275255612966333656853001772380070424374994350165569270559625889521345765989461595446805617982423238067386624339146081298812392531771776226508770521297523706073353211093111069074933036271551385550485476971149531025611137510558970334082318833780008512972269532325789398265240609682819096621973859328483859795199518462970636148821856131155798872222641817217864198160474627531582171884479615177770805464150494717361413003057551180179689669365894068783789259029254066286840419208796542924836720808768622956198114465000216157082905278786816217213754284653909956680364573907288905725914777707834948973467697892321182577317819686347270390080092873015789300887205981954625379294382347120436415528572865033640521361817530116295375231626720791066749512308178671262111509727830571333196345221211087691888680065561393212631546326076313556813363267159362044203535142369218510024374468413127553138147797790923838557622729737108293331856172179649987085728986672463600622952511533634100027572522608768246684238034548960030120190852189808928139740155575209935158839251926324769800210520920389396734606114648395710841949823111687511968497859728413554278484968483158352439446874647347444181147597105512242396743134384754106437550030176699011957788976287598947419056186919904609685824954432092205732464892405383851396460473347279466201598914666624815029118565732368360057057309906690190733284000902398774003572599938727229743649817672895998075323062666771916365284277255575598924570260591181305669028673174676508252407636943829493733171423037865981348008497867888640215654823453405378944015679026237634044143461608926271300421149919705127760020681418070958709320420577866470129554118937477885205522944462489400008860177314730107214262183270292702842218961783966958175627389592107527678003554263189972953572221157045329940231616299326521309953681329129916725834563169176698275965847029656330975045202433540337561353880593188132043602737355020362328813620493549869978995411268328245939586215165454158540781991807457239247797554401650750049755498124752149291268405841216411389962732401745607496666594893468504871131313269535290674414071982374750453697611444087937335369256414393633211024544678452249033081353701081667778979767843905280677991413962702117313301636182801175734613303670223391767774537461814343109473606239417893939485468592377441041874838746279002903699566947379206755516112420512598992272486347062016641744552213261940097790906035356627925052828097401511437601211051439441799577528791735078866216935686964012115278410992822296600692283766426222930814030991342747132883660599655050363111750689141437736897434588615117557818524434829221204562621958867716466102154347588487637985651313335537543117744362813277879426247654061829797949634992398682059775341650319574645176385041047219765580378422394655150931032392768968502140463950001894090338782068188648236088320639422704965563036652924396840595510943801672951024174370772020509620770981582308260433449721658042350251393796394826094092710100017710999199396444455464335511269701645495102055932457705476544014394907329452478391195679916053884404186069363637022264528224605251794573367572693351291297096396854122347294799510915663508730875489689222260790437154228548530393001124644631318263979779300366285360856837159348407009412084107814761447895823746651792183952622213953821919304657560962202206402065115890718960914151591970303642216304485702551696586415590586379266805595325463044216288163890526693538604879203167774185207797337811302323771466863041032319205020112405112569648488453080861736477588747439141003062844070247829868916302430186007585572651300593739780990626145371089567248675480287950282466712597186335471846933426887606608154909232492877012847968060536574767946743674070052499286342970721002061976254860464379526525536004264489092982275292103327455475682148376985808024450685932444594824014918790169693084284513623670970093477534649056421725862840082345602932520679753233480133169916209166323732044836176804664741186428495758490663824719758579858343413438628161061273312104257138712159544026498123098157224724462628785493225520381771347774697542538031596628907380702848538372952171293846206820494881718568095838833740088377549890306193259300934311327480834248375880424051006725758768360355573903120583422424938701168632827926648672718589947434258016571397807141740085276464302138743271518250250106249572339182090522685989387670289488154244174641713850383342353398714138190588651219047638989148490393362736765427927793493015677038082122142832612723446106621923150906798508740891301279463878115000500312996093961903656856671687846659727252955861432283079043848115083444184681084222832964205167891909012448074295101851633502715039313353606183533242311088956194990067746457876655999823027259111893768168565395415023038299082467959966144208437501946314912029882431490738035393222197255119262212913197511582208636892712023157590089957622655597385354802023430618397527460636324691963529958729956160039459993112382469898818284930984819329076099530426494632099545117178727071191664087126836126990354976972040254127985978501213960068342675796520685871251240070381873550195291581989074775220278951232669849068283648305110097024929684613378350727562259236650502866240631454895483148325145179831161972639106856331492792790822256502148871075313228594728744516314806115587887159503938672351971743508432477157653827141796032333504646850026745061990497954189071370997168622919695632809744542592780367447670899696738571961212525586289446551451219930555832634256506560672961263462102777984699784299744683311993950910369261685560962431363146120113444416054974961237852780163417840630144262194549503579766200785503702006571333187499276681071504800385438415482975243879358456843299056184038142609543508134208099401905304316486118700810632723822484984243246929515796775068742332103395510712199006762038139756389611650087712048336499473465101432509163922656196707469784333071499070208956367778111977544812579154192869527283557001679867173090082233267603626839984037067460850348279956995916218914249423094944239678492842319966010340546720103438042482397419641167793312062201889936279071254009842386046549371334621112247659289857356947365724917726980832706791091997932192269169272982519783157209221653083407347487062530171347620130267846672238639826353979025890404116581705609845945338459276641089601968339103555559856261161331282765160776759647302741825523635491838724618332241032499229441850448896992595226459230068499688744597135555095100916662196886641817158180583667907612470187663389040764028539279203552595912104068838132771910593189864958393484160872681065094514509279778194122801620681309417822031670861093125945606386622099454791957152787571736742194657587516869695790083089029578974572002282680814932094096187068826154741812389803259956960710778098041335322375799257437970464010409994869179950164585309992453628192381682866978728528383278731687676872412160725733049906826807156650937004232979063277378729058565733854879370824462075247448514588046398912863126821704618807294414153322762176953459673906353585351965119123310440056961120677132338307913142114187381282740525732786250911181310494339851061892847971840649645288145616938645259804997804884668095095768049620928310668768356929627043560535275208091627536734548974613622039798377949615485638951453791140477416270205961040676101215580936911654944607804892863147269736933315247565215023918618095750233706862949102809575531626722498803299380146108741039682117067046095334683452562240862135853801239631247283738692954803775633463109519990262020760831624612651480134354900031813598951511926453548227137445375289182190313232175483353013523811442323250615231749298840812684466725956847470422160077644520251152829511194356237523231199148899622358521123702667198065524959563956521740544691069628695509764630926277668336116318848492014296265988153543896776193659267242661305180831025355994837993260303954262479052102520507160803948643817759797912776219025303335458942247911153992260112043413315102330269672807171890366493008363204566455601693666813709767642223225246338279179446068905027919950170076687767678579968315471180927940531228830693532177940725502694079227456724873090282573916489306354043372566164724053317603802749688464707851940654613063115008013796858954956115839762489582482245437851524311308716811984769691125226938006799944634499802571940047156500409125861337947026701931657024758710192843960425686037354484734536197953417643024976949614034947705012357081230841526125748039964436480157909933646544234305320679817629785075113329673156852995409194365072081062011029700722897655121969146124110461534877126206218012177369619267655296951437275402248939694801499412723649997933768488497429192233520039641194124153728235492508000951800108773621013088992558200263432245838251080634281521595091075964965053657829644770727607725004254809966392387977828273729609593150210043085744463356038008855108876536865107124897014362377355695537467451419645740294129420409271102539055795738248257819424495974486782326312453472950218154407953600805275823486591850427090717649463518267312901575104849898491486014915262765257963819887108665774725692378329098489473643063637546495302138627413955072253143198036572705745142568013009318629006857291716427499079593583133983354227398205387192577593128419898303917343607480190837827604805802664514252314919536064145678212141752616088671200040570385559367168441640687479782469020581748366415740932747446151821470227864220344192812445733729447329260267199788121789710489771764462007044951054367787706321023104259513925140631220433481045732575166058041775787768441798365409998042849847078843888251005605969277141483953827469809274420866397068901136183903123684790350128686652655356016970133357161056688386261327984368126103826575912625595416603435218657234933605541871269639338655226994995584400831958108836479465800522283398113395953058975738248020912038504728539034655719712546902669776841088340431810634416906241876063962752718417379195125708102181878533187083175986519547310347976424929554443466706925739363757586740385966600284044317440679275606811731661713802401720152255055913888716204380619768626431311890880549325035419560975331142591319920041110623378105505163576359057674550146721032051047297078571454649891829315001526281377537787687907662913178362538013527837961686358178075925105199878688734591228425627745072499433645503632567978840482006239794970882838619081815955436525766675568370043686345484917316256797694833641059079274196939747146713242957617112750252002196209275101309116330423931738283155357273801796210352983517094177610844481769312552704534543780809488487482653024053240876045433452373648773965146596653432191558728458096311520800599962100949168792787557939085687634744360352474998183533895163480653397555938071223144596248859839487643219960838398022965419332487314751324558524651555636350905226876412562191715893982622484743734581329710297788741463127749198916277723237132219553313465467452545059956251914805925005506569924072904860906643414232820249106321957615202509081807597039530826452553939782525068650489986777699464296994829969829868183307180877654263237771595673486280895827633362370570014543798991261999829292559373007478758379162226147319178877484112320286854607828690701481231812494940550688596634211822872741503945884870324305735581515741599134634159276787883255148604459121390936479169615517782072089114087464212013296991179973983514075375744190682455352163160038260571623068723789079787261578755290153742874817254571862934942177936739418481435153713353758532604996592423761539461610715174860320498135861523334297061637247966948698220928386988380764981624092113856461632997422910146297806595617129968971028776631930611342327983004398509762089287153382580227405111995901012799103062672947495594818195454477814835707613606163750728313755439865836393536812779291765335109039829814328428835403760130378742137434456509098395219042337813201251986436740033300876895012682277506377043732214416887445801707469400745530705364052485085255851861272134967770819088511966620904297368787586678016141908994372891506164705234863288586639434834572735600307699802785679390126779342402130009247756880208856444230898552342796118033189446647553436883383548403008647130128649960132671949244733741099165670882384308231501205808811389521237469252644685117810233528796129000109893794855097256144491129433888482419885659818925417085984321620975699594166191100475129940634236256083654628793196311290570691897179534672604979071608863943312439802304775864693938465410571440965328142955989277297401628600406576634790597998079150126794610415952443470256664902918619124219067315832843921700648672497868932275696340459458812623367847645403986087790450625710208938592197631836767502325133865695695823189485056697985193263595442299928297536141290250490439146947078715294327684683281444578433842076646502107984000905375684366669122421468322231618602147949667216880212619115219834659682276728939762424389509602553544911106070382127880797452432496914798599436924044847810345797070724248760766633566520374865103597707854298373336844601265510708812768226920629636524080416059706772308379171742951278645107611209662245861082543389949195410554835249147789565802784677838818084233371398603143024615862544338287920616480590843826606285971353676725595021875043914727326825856264736923874350123667636180532994124328413956687250254194303401913227043957621411002111108919486686293170961308601521432839481592561467828548900639214527707784240617293817622231029991166885920003408592031033835356109896065300813286489369325997343392692314156334360705638116326638898951065859625524121235132205398346007495687182635925307462324700533989366177885189983850040996285124361637644112047903488709948587744611991947970726497879185887813442179949005941454949095542107243930470307290098234212577991201961235149779041104115159941709935040581213197487617652758981747549436207676278474463194175896760785772147500965989255388559309547709436321249247626131164407460609418657206171714860468141315446212276009634089569963829182132405962225638994892917055374232841602763653537818257826096609209215560100097586156393167162927487941368538381939305526831859373646814234985291992784939158226559093515479601592638565513681361822310124023856803845070258786787249339395265653612791509266934468597784456600605498900663948078567877462263792739741810205317645713274081808321664365227337104211861407194618149002921463067782581143659158511671479398147389016303603873457182757373115629437280324593988881143802311266345833207454094185840713808911940381745736213016517675290860450416602096220625904896418603965280023169607825044864777176166692776604543833937433135341577125785488725890317796553067988872812151708141850230191512280374664381726218585192966588542136004468862174295270831184285343493273531800586477727285759418391155697546455473728317487498166977892299434917689287555250247315306032223274951055864524529752062649917766767797168734475132784712396347822638603369345444408696536098583933115678542879582154134613855577366602562204619053222770867846147952067353681895609125473516902004135840554633506040590540009471429172942360293836701730562629830746883862168009508498685789577020917320670507419773567937651709028451172282282076103865373536025941036462287365638534899696200036097812687722818796149105356534435130125337411545541337118158673617965855057450468995124202066259414288149788934245131732435810556598506823965032328488833514946065766205545177312726429948451635264771034566295717304656181597444983666623925289328232553289109911538567510895744773169141478129674670042893846974128650377385787048166428685815115866809493739196739629220197526093621181958449347060904499766413449564972324215196265023364975248935099330386924884693473496043313687519764342073021493699198420904219141343508906512990946077276292178542418699281601241247518129769555724517970837327738530084664732251531757004947679738585767540857691509562368344814715252373548492373024815059427127853837322113383272949457103193707621078411062535897795147173321343265972936741687590635821863003471665833992393067264336354961199357365879776751138528474750494001010650616617505813506449305735905977907498346323320310549605407654987475084087122048709499746716415481943221156013714699679286940090677665502884210944791715629431351334595326634407353830425224719805459158513147880495334560582405595092099519561829782701164745750533125687633310479399916899341806316649807902217432029985907918141676536730740611929023118117127894509826801293002678226402748362277691950071108884296283751998893863321720431408880913290824553204510801478521388361303318280927532375389986749117867658545467045575956702654417518325522584582458632998566983427317813168878814243719670552667374259528229476203719976549765938111460266502546713493949063682362324067477824936307394480510978017435680990335100682184441094359969493425039929291520389180286474630605866410535733031161772863990565283312429770339512998035132799422029172048248842288450241736203783517292182522142823263168149764569370904940776413610981052297561820190328804080257297572104938089026344505435952304892537663349918780947584595105357301473281584862146463329869901296183572732572202151600481005479853238260716420706558360762002366181099598402377206785696610487825733869161128093047791684175302524738157435739417605053416297668653746001805665418159236227065436474203067763514380632597717625719752825261807350741580506113275495949600675159568919491991665128569160478057148907519584752229578673939261924867409754102368752543387919664840555951245603423134781774816852753547581727539915987184629769829497550441357671050413060444893163446714202580917894587794684777113230233717294130021823484116880358491070194402366696348624869631306200077126071642638243655510737158349307074892617448057794197051717487762751699680396312306797397282133690473547653024214368773823604345928604576082990463616609918462888229187851875426999984512892138955974067713297570606665527832418632001093322603787336395088801443651444369079002167208316186539172581648123993006679179333350946576421686183236199293680514055496677220274238516664300059105710438944785809245553331253882601757011588934482176637256245601080805659825482430731455151394825445713262183966648458981602510113264858350056522141636475710365380445676126560034765777770033624874834790703812473038043996533705057710660753282944996390888726342735008923917683807576172330991285522453040398233378236373129424075619790227812083404724181216726470657812795314054235059879582553469120906878173828177239619412850625485064332434495125918201715922449608251324308812296281031679239310143725784977275765341121218668241398296616754244548371656167429059692801742932426039211477878056620132454168547395161917262156437156265382703442492174842923068444919966342870240563727455798369409905062609227759968024136156461449653755386004392972936402408588732093400408601204675418057868522902416275721613496527009785150717418953800250178243649399376067908607167002727778223038644946527202879144200517999384766344222900531075757103845080996589752031134540453966059496513282586923577754593055483893017542256997705922536244002899255928680635419394134649328633789646816179344640079802307363787366238070811894915296747690331094694885060279827353497419061459047479759735925956750380052775605147974313412279469849132890997903671205226765391733177637437647373136202828679161949886111638654149199505061803548387157860359145576770102408612437620275134573407731520444499108781009934162387978110265216162066553497372904507583676280317781297615507533416348731909607078160164826793517578348941564910870273595841214078261275443588573946964089256702478241880035214587811807386268156341114550198738114684727787726992097873703154145392606798576190926812425507524361050590292209145258371768695579501164986028730683353131096118299380017863157378156774958902062874961138508156372850403318824832349423305465686181054005896227558914982706016659886236638960560671020794251142497785266991137129761814958445727635442879433385737413257221576098978973221393413177208305325549783508250545358411845432425672630310964879140291976644700723408247905317020291146323945607361614774671271763544178441683266670302106822021616933105616896783938621882267904380394312844069861778453783525167623147325869820529112241191205623440480249044532458292559369388303429940818195275466365025963385004187646587369135512354616009349702754869733444202481110350827945696646694286919624005718110782362670654850182722544698181168889743536847356821246814181352717315997664161401675456230283416029310536872802774273661660144363584344861817886891503631571172251673369032142302543004642799891382897843546299559236068828192350960945163640702924423977089865123287930344108875570579830781817564760809977853407269811802510905906208504382305515713398404579716104459569192563848535720359762456410750180185256526996378288576388595890821232785027043442249554048228040908649081722233604304848446089271209311154121835546201905884123496549352105774108738304193567958526981306167099553073510562706738107069845939973798306498883437142525720256147804721951330853724122640264959916976449954729054994175518748251402738304263222713913343444966482928809176544115053627411962676604643202123865491282515160494753334116271349880228264563904316966038620225565207065754938757351380025125407446781690639903735513581855970265245592173822209295136346190097322828077597895246851506401319169601904627647792987943112078777336660087178320214202084450269869576824137179766631933391371062475795227647980907551314933990905609305431020493501291400911090604357323884787230060103557190624938946793902455200256669671695384381130035224672405282870728359100198675168388481308667171499785072176758491972048351970683004866238022893858339916407070938150075776413742605767079586507149425739782732432341628203425010360496320595664836739240994692478034777521010802779518556870439143873619441035361275272867639362638115333449419613811997281391728970056221877731424497331468211724553594462288264696551432338066106610317241357842032987378151173123633514002485897694574593938988397486712104692250676944304544085842374791476053222719618957445044554664312924075211911139673535836890193107332505534123821696364262083429185816694585758924121546504833230062595758205909150183313893698620231007559602095191102687660830036906479876981959725843144563716393041588201488164532071607755620717980237403957092287516167121350471513958773836004980702955849233217870515353209700325195299382937809695105276363196334261598275540938517078333371206223368302968795296643386280224793295060085768180040064697465037358159292714898769330559886963184118771020984503821685617544398629444871529381811716646772614292390725875713343154606716267030283386354191028720793585115732191722105343588906716496155107793041812560594130763116225006516977208700363942952991747763223071218596917718505072419499106848885926554478362311691908262042539680429958736394371370621258966697701647083702892879818057054354321881381035653769161217565184679592377484146630585665071199411648060332750582121188707204353201241379052349653852525723676254492264282961301212354522633758318197398965840608351740797878326412465352721921929315400217655987064389221104254345304852478068655162048599258167310859433992645294202965257980428971496361207243066559781704586182514504010241193722799523004275754720149041825263667769850553912446187957236917928466026724870175661875612883651848157272888587389391439012222883360766273537876520668733221909904666530000327283965052553257528828070691263036374021916909441492536248902912582653241338391298976285238606035857453418625838373566776471482944519047724974867844983445473749617736876350218317246467786847462336347080862605954366423744337745012751956921322987938980563578283729160967967952058513903467491992648885013024161159930943590105914687087705197549630749400720800392967491744377071577627096577822439711509636461225603132686139790128510143962369641324749049998282659122582369360541612367703219164757403439113891393972325602820293481957961584916356694190636408686869670014986417548730921313578598853199711547829837766123250042127275550480187016600645378815134408617853574726583520996983177471711071441223653898431896224804284906487508298250411619296805510299928169188508288934969468540266005628012559358835312503874839944314963955712858850172937432587533390640091090858662596938800496424821594668013631663455525230256350557381395532392525707361006994029759401693916822587327268783909105091485699435075145583139596491344900958182271492540776712814219218072670322570280515196221105972445034823245113264767669805717788395177751388487905262973466102324741007825439078497392821571895848298222655467709064819150621867583184059735479621709223176165326504755519062212609489819528534263521407456302046817870153147628865377392103463014520809589133196415553034521539622704346656567649117872421946427097993579493336181282018532299003397822684266393636622646373897644624267827154056221593031630234440095686462714551494085251632564340940884562579220425214726740955826657233640779252639677028828463834293186787403287721904818812834824769143732920446329246268876617559343079781090117876301751787589499111252205204382155662497136511076145960880637754285431653715884795822438584191489625952500971790282835573951005522954115523746260072670406701225954095073540805230176085010638818188867375781687733952653589026767998443021424619153310269436646492179993642120160305691351842357665908887499221593190045372377135406165621869906407387139924496932409354948186298963457456863133925182996982314130050563618838928806164813890722298511176692033480545149528117641347247397077924572865924996709814057039016492100068808271215490490235642840753151123429929975966197172381682949852734336609167923146045505543121111891720087869456868085472082166151437176587441618673314779054481350459937039478859567402832538664971610207110945564941598125820601464157047117885512815678429581609632313621027306219455454766821479681016375673153331750094160323464104064464048364897643081242265904561329145219400374677577191262836422244372280304679149829156135213063969464244476300947781069077121968995069165223753938800241832836132295052685486919978056757487452526693839316596048061659542316095685383941133370288474355717349195187735412677785568609977920404816397976523140548636723871939170989044514102695567688773352438529232840504662868434607002025349826655881667220110156782300558603123998050357532845298064031189046060025403043502566154647444417674367100217872929264733465470738145930567652097334522085756368785288485230748741209543069241550261640463082255386601332348703480019226496202740997415020176840600721919489460583469817551174475290583846947730055933367062915591365325982720683337452608902428819949623193701523298653062880158304593758383739318949363192633997461576476270951700974529871161021245272755416113105911870352431804223738816255328421553887509590919688649436267652607625514678106768999527754202991171579719806867057423750722847305149902591280101090578650758852461632620850983570641073895753147211459310616401629893078013374035686650981653203435021798026779361704057557420076119137514177005024700587208911199362709366409172246989878454877070390403008829521717265317669851657542447722604781615911153045549371995127193485050994907300440596743739806720256563707829857732108519479633686211530558090177327845801908263426978499483652997060282769163499638448503611392169873517937143462790090791503163571669485660723375112420865494923510303425524488426308455839107740351543643785463050168272376100200861221727039026721651638748901790405462501354881194163633468528577092076933701827780409368655286084503809262728042768873013376571449402309673492036744257317805383047189457192467577628913877609798702690826951099961836994389311359322260413021829660368273966113884331813550576806390801759253053617457527560765931644891784065108976784689816968573405228289328019904680855929418295484041772349116613681207043707740664778503011459523645871054455556422099320058510640132332865618797260173440040301510847818389152420585350471677380857431126409045299344203998401498358806665326448658542987047195192710574246534351049566728918855891838783283995164854939898940223160240141672513950479522794546541918029596218766441899237010480801530676946983491554504865751504041350009281830506131779919276654137668444559848552761147075047991434018032952058761648575837244486735843427913235296535519307099643155573455267286293398850452934147944288809169023055040682871215769324364891265916185329533121087941875189920330149614546090355653132487754108299826971506947064168168233660371909676922404115811080866453890760861855161061120693184372161718369175628435835747225678031355915109553158379228727885791515498697277941777792273945311226968705471725749969817368305266017964868463679087290260655594559209637246601942292218435976994448410514015388661294578486125914637617903063693424802104109675286258961859929620705703415470838972599466011173221945782574756148364904992013197308390079848603937001311025670019587741242937526695429868252214037376181123059216389043720006812955479985967657122204158017619086331946222849217540765356548904814164917579526374652214540108859541826762187182153760048537960885735433416124551344088576342496094739401264671217098070661976150500188015802007749776010625705832325801097501431316443676253144311363304885141546701121969531856833331619354243564934422885406190355286522840602140068618628243738685505180300378949235879102800201524194436467952935206340676042784920081436257868395528151586122536108647992767665950689111417400059554099043827777662610615236620196768130667572027899439335962227054264060680381001822556384248470470201704648243423297436658021432435685968316372881659629150211488912490642620661177833510269959497367888721192979506182687704281893899959230238843077751380520697170770777550803034414504560839658370943746155859069481668741819607436100586146770253564451439445209517564109951449562707267212640459117223781242357547310582176139792080593857851745778219879859685463452112795658011794441724029220749879113184133235201638003020884551708084702483714230453336668102743518702396894593793640759297313626976953969297311171583744962087030730736021461919620512575647150853672789776367248471972972971841695914188532469356530696624195283058499445266464720911941898643232733516359405913442005543724085840086237351860957891956835826969865283846062047649625458334886945330648873803548408180994107676479689089929783848429632038848356183136708360121915374307154868240103300895370156750110088538385978362660591515336830598884014383567536393369384831542717007778717807402851085993474485734711808011235700645678098733904194574425287113387356929676685581533618368726522942217173214586205391481013976645817163269487792448169602132183894598822270321275210203717350775681485688785994473070956622138106730107034040798557984040108220833576456253779592487135425655673136296113182265587584663129343587589454810769128777934590235513971728879069863927937021464708590890362632910017571158520446675291770082393445630244454176428433156611531286559289943468971071397530549823335446006912558285040558698120395691009442807851417817050593830691268697698709815410834398799276836669235334797387350381360688042125948520741978406188304476248307693904643980721976145775197567587956144953053320250928024586021229606517887520699032099500706186705630043684305116596173099044943399408784562009757336691892650707387451941985490918720186309291993575639203487554601626267821933598903742639279593799257821757213702194506746116676066891044483379844357079206144699630782661823658461918553145390389976072314583883362378940986066657540541282683747330081168335814213249082392970340297966040218035429962588301105183807649751524907962791208808731402595445586183813839608742242055952662543963292032958634068106580689247022465568583650304987679615507276068332848328501428247712570155462567627886428878857470075676259092194497807081840998613927084190717055935819172879662177285214831154252460786317930143996985877961891512923492201534454088934559455873659623452516824314807347756406015488395929442276386268774899653991212744791599394444236773498970567986513445417516765428189638400433433403722220019150551771925551452029439611945778129605887375561118003037136139250442373953135234186692960583046114268961096751529275168513671658043044530178434635773202978190414750226593726044772392648065146230303962214548131311538987211784414879234737332928421334619251234256981040457132689353431762322077476538963810244427239236357207387590783985695893032500288606365126622565045901532105431264969343946081726429330983237373585081810862944344605045032324655087570940473390580535138255819994801365313148418899024194014488322696139476275593280019085614763795759805761132795551367383679277454040476541537354048160266246961986870221140022359622220877973691802848762717854100487616769563640117678434405246180899442634874757170967362081291004299095049369763807098505214078179700206616160683913435873964360430121430411569751988769062614327798337236102501133056462718390898083685284430983257240710975125043576346665806649321496839722924163698540696189598551623061063153802477762965109928789520339561545826706505435477660085937462714372300123979379193234329799924225650188264350687411429746326398305078723432498495109262125077914561454616544796125078924845246461748687229963807636730557335461419176647519724271994733866753924709538899433011481892630611733706745506970836372267118882533888907075847116188702181523998110102346913331593602197170801070228163948061162016399601625963191391002309723601931316574295581038984462257483448080270234462506429466334779228664441397671470337720551672042587808092319745426164962546146705404998481749624042420213961545872287291629539538234004203877534503367841442678366830430059962636742623356011058509623764932089164198226492543797889231192292775909269443744055591220575637087067330523072526810506887545585454594586602688117722045802917196683892730055455297535692472881330862463884498560616618665567885384370192683430340510122726772493029687800037632571895297335444339239773484239383717078760316533245760787421150845398519155707285247880987152130766807955149014131854725936304312028680086679664765008805799959963091127764078302211864451849453798623375665661425858287765318842780070187678124502283675028274215356620381893637181122177017795459741594801369802789197671406152609322299636307344775868510334873008703211508874707620299810227009138282044819416127956385405032203659353247038296379489334368816387311536840031180010275863004151699983221123731690439829416473269300274196724600798725595608465330802549183578156371069534548186783259505300505516209946779241332952946213697603029771863961472098177274502837251683091434695794855554489782817689469420520413573344766075767835063125762722908481483923603737614862095490917240111561625505008129423886195469338681668195883178910331015621805657752349900772171908062327622753567780387562660277570141506517581286174865969889148277581585733385013202609437880089010528945490137948676784685141152809609902212002563499647335047155186421958788563368618565917151183448975064974324942311327248061731636309423817084291376352775113680370267807770541726757666333312913976615408562988148975029586136218002920225350980055359934906283422270916424275777675733178727671795794824809823205140623670871221143065469764583778056439817982568975141654765698170202556128699904803161314222808160161993945092694111291194358518542009430589114533303726526064234287706433143601648633991144901803412652259259116049469254799633834733579485420060360849891107563147406678714041144560822721056780753213961131952176798272619388444459433777418185072466338649880448548889373525306942575341467340436324206256653271426411208895079732383951081539527039312260448316576781129263484800505362890111254280702120057301051877232287624932150489564375455052822820847700120163739845974919543088006464703855366917225651841432994104905709841380157426837413484594543554450291398028624907369294275801575734107752818502966117699144715287873902424497310335164782424520547585699940010907438317017090774530432984832754996741213118088421638330277500245534919605215875766782349180457606117692088223493905968366682452580845111022779746250692896239892964671171753434450844061291971807463578209832807678030302555424634479298533870143415497951080961208219042596195034752073425379541627610915966388486697315005827789132236411494418789330348185732025586861771775846088503882624931207522196696849266538843229443354190510525929212960483831328983869071634997411880191008971176716021540764670589307617127546908006694458175132232506670425419620746770638675127597051725439565134746997228636697110778775688363539215798926578259611000606140689604127603835035822652968771363655309969634388681187049440145069488819608095710909300391092868456681981459427084281055318632463088242627200749891526188718517534270157416184660896052008913717858864035749368609720959294587288902551243714178749146124788617733691676466715478337750638954393357661534590528600066643485346374946961316430841429506852822795026206410565650255844524501280316100433628531069493463822565283785280320705283018347217008135695131979658422561909200210737754957109687773850963992343749490081998566173116316320711096298768839784117072281034751469819431824394306420354149197888322919288195676413109929969554383804049399629088083895125529379844367384535685560783596481621850449635241795729686021405330751126872114330597256800923901134892276446348981795827581355838623634402883760106991214186174478844066486134857247263838437474920114981821119135662376443180746526981096675837223295646139615041525764907865818905987831715330852735785834889334005522039835706142637945218141456907623673371368131492509853002331420683636767297618325378176884198444757588600812111669094960051687170933058454798007245780274930744485668080886052022505083540002473472935802089627942587854342842425453027002961548209126534320536808839291498550911993918440677438153877827890524305253746790242702012326623802632564575096518925090072295724846141712554144146643447554583461773282990130110478013208538955019757570678884869083532385644735691875214595184714444873699210497960589467276739492278579865013723046029563997727868958066799980939156187714564494798256677339591441205456449811882108720362401812265279637551327320400592178051642726953618819864060116036354096391377710954903458698650716907435540245166377836483722196870431706668106006422797828425738444608276707801383207978091381297704754119053568393141661304295914184286319674106170411109326797420105143769565514709101077930766422391310884481224473193710114127536371543204597650993244201447205846070987442049840438242600625521694385706182972521350200305927928181941548203816436659338990788271240842146207132824099147627834542054051483310585572356897101471244394697635740413663150734226325534819094923798784042542812152706609360695908261215810368849020512225266608301301137285791084332189798343967771526123450792703729438903176097234770340593282274723217030155873308747168056526556143017951380628708870306510632155333987096803116444870460169430261548661095431542774647212697940918003059529710515464127334417369585302100383143632478136543334438918469678355324464246575222425576929263006122253827150145055374580479147988750135358817143068297919867295942189529542002285184335371927990353077653363439258918343954883508095317363527815897830600634976123976650298292118106653192766364428952773081122670402804423829314274277386551113985319515331469995215201639014909032930924962095990897419985152384962734977503875145126337608121675203718136862790687952391358772132811118223057081746781706052902144895801882502041829686856896338679641229254230894322411706323238788587107134453137402273278476133159532190745592325900253122230643533606383397058057277814223592186707758095105262743149811576723310993242534515729986803524525669644164041298067555034025923817811094942481517862903603752671357611959100467636571084947755247807603223267800233000471016944699751650479475621274730144821947290532803966461781280063404639926786301597043332730346330763698635407931009984795658633856508540515383416428393543231042661779205214440202588335077233409178223800112755271287384496116620404021276138391578778630059161324151827154063130743118344157587058887695343532818512248539859838436468549735110055075127991713605486935837998178480667445954337572964983763924404439885408909856208689431044891099228897532783032882888787266339462225227804679739439061227882366253051128194614749376854981152220086703345120177789017619370808276690173967715859847360530291469273274885084725732851161633167556944911917604919971037955391878700796845838051699215083394686408490131955690389080180301832243650492746620081844119091783895969078536271917659453209364008928849667334516146704279421632592662957663832644943473414303279887166587873258155491155008756674927002608344613094893504362675105849950381072710846543318886694005707278128119437465373733148301318040098005346869060233361734421157061062973517149454575473303125119330859955750417790740235705720061825527025672758533423453357746889720994596280756292684118090822739105607239858649090506917482460024776328385106805423488494337967647286075555416715629174547526125805280083497742469335147311824834612546495299517724464012184878828542089224717046784102746250067150712914205186352827824613598563475714070986356407574986742391002260847257144111988928532709587602816206771793415100535166613438984539614745051913950794064446283818088336825366119135990611381134383923022945993756758039498037085328849278388757078604498238628504088553264185152468866446085627586702404653387420058640805309212995225728331381774889099394851417894598645984145538871584091650693691507786706768398277586886712126255959580801421906857139103139396410301288853138035629677328767408068625530134195865798034609690971912950737843638840820823768566725070601260539209763659495332990294000159263941861277877011196576517743881237095830698272306544134781600993794589230726378833318016488274160762600987953712577032976792440431056557819922314419611058608418102078716188779925505681200244096934528824747330106214384888129422518079720242910231892953713256465700193001576759553815977324795836846522322083076241048334440479662259072591471458103803709069804432879939485986259964808050720855411243119100049425256242416306169535950881708962062661535625161797602200985243572004700704159880708793228473446730763416458086415465482317913159455956368463445746275720865304912436670211483029031925535799698103455001194093640990633243379651148454372729884008801797875918327868680990003475409665485478585035917688456423256004381568785450020100609123425445280883154621282743649457008387256457798023737678076232969446031510950020780007471770271726125444723708266479452040198875044696885662724741295090233076936669848522892761659651744956095134224617775181330614378451298366403324814369829413939764497021192657813064214833145354632070480065914844726396405116615464336616509959475440725803180114213396861758637317557488197102774112822007172769964173284838276178778006109107928510353509689300687260299406987106993658373974347107566071337621025800300083418816551908134533330095062733604908689788720484606891559730626286932382329361210273390394299660168609560449439133269367008052266221697038589087015373840481285450864954482686207496584444839622228882554507290452281351424366263252324462836435017287789824109041396023843692571434239642829751012453688695814195656150516807004611761786024798983914168637416694394055064236498285228835953683236916868087386312288428241277906749239188063028298349791177351973457871508395317791702566269504686670937034744258989072885813362006524548555458890556699774786388388665647926995932359870048399055532524310201932191955735057904247659489148726129053834835935066810334480988714260200280747918699610201199288130245571463267996724839433858997911167500408714407221794006249911439324154973453749922194089811285198428780139693368195144566798981621971122723469163369324915427327749512280272636101657440765252323024180214223205108538298127077182378657620848742527080896178288362739184391844076475617826998539863649704351597594887718177207374051467537886336580089878041993833699158252015508334353619790181022673266332628174817134386135102219868095962085454857167650901607477733209765849635544475442339144371361404823301952777599006073338007538997721910997390136134230888937252873504334967570614995540716296040449851528631729989713916873676810981156735215792612432667938098509976288483504423632287128477250325881518694307430297606972748960405384864626792073352182745922824936474001737611268160998701648340671878889885663058561776252107178906209671547333157842566158035754256486824710991734034736323704708434820776054438099251623183981302345037089295752554585817427097956887432750845541887545603987878097436429962433630927900650300512405542097620026437059265782880888545948584829161041681141255206891163585807276565218616228488709559367696021289278679584309211109794650303774417380547921766051799890539016917702111733410737424362839437385670934231045006187149503501827014570995991690711739112080989199120858518709697448565375916156401447336244404471020139976708262198184044121356750244023647250634673291054200673361274053658387010704032234645943667676395969243370699396087640086756402703185690030433660909259572387367810945189107851454207414546792692523772709000162822489358926804416180228739252685530561719245565142091745583475150966325566713093532768621511444752553808666454270187540195968569013988376499500129456027439819309293421242931541284186208425728985300212050859103362802383852753099105248247443904984019862666151100272417302334005061133070771598337756729850409550151447528790763627527652417767682958718347599606408063167189204731260657936151202447391283757109505811696668216342418160147505885249195284367123739825862003805036491825002094272405741281504082120027270009305237085499865219035982385834562970751590807305011737097877386982288672205643859060603977793627568128885349206606265245243586135296082742091183461368581757729575264623321679016989736320340250124650318923446735856663943131908743783517480070183140332114268063813493998144875287095251909295204566974545677670032387064504984852719763632027564285590699029047202513784488057913297969977559306710683345208971706301349258009607538967282712245630279844005482314306224993570632256314926146502149495332801430333113803920872920093229710746967998490723655980693432500079851082466081867632256591549544167414400499779239325931598802705921333768309833535287034976067575400569814596988764306484190482504854178308570351583172256773409054543419306832532503472683058380361763709630074370014982008112138543973617957076878932655327504410081226368177917459900233079456485471783923043335296250663438072473293066623285563471180185732095219608409757265084244179106255179054323512470661177186039770752149009801102747817243056406803553475266781110705891693075712640953480599432041334411023459108020058471430964199528058902730694318604318697435912946145042922123131864311048045546988603410813113485472507424656344143429549981436269416989728492443647640777348074681879937293276176245943644793920123450461230623413877557446779186106985725822618461692572469403467426068256182625514404724551142612334320816475597178963467028698279987610243648651814851095062544105696670222478642739763394165123157838649445802813962075937203456492727467036585031937661488826413952378494846339500162835543283016366892294346596640680432978946706365395466106686753892271921107260594392551451176225132417369992214148511413505548937960176549605025336926434305422587373192715046122574283453180161373520701843523075020829140491587385207443019185587968538605353824542125533123848459169582504407717194415565180583692537028026051997020030131630898827130881770965994435378054560388251427395517638830263493256427145828171608076017999660351757310402047413496912058900550611896955980464502072924667423860374330899213719118402741289687862392216154604748256060437293405967127253272893507804918614917349193669034484897552462389831477209095731448992202258602183737742898712911282817315970098284296983244716807940324114463569288505417345158974454670487690259496074772827098216162622770570162961549354597665670301045809024802774859039151007290476959384812899745643168206378090061990195598877000366100953195794920580615983963321399727918688303055803077528041950796327381752886787212298137597980402713094145317569697394637606991185905589072189772015104557527502101912890874200403474706325472506068675746207242213115143669268466443217077627746494794943703583179531387471071313333668499093758388820477732216973096152998753096867135444837047381514474094597558267801636885537005927640622073806038804479983383528184185443067252973055335240590870069712740378674469301519901690062673142041548601912620854715389485584048220943441923024142886409995837641507052401728167441892608504421792474303241466816420461672199203548716013501271936096781230030713750919130400408249250656978359369163147519864880912094244200320353745032961369303226330731512265627093046594991941792506673710393853024076735783847728743081497192224632826292684117494226647121277514439164022715824926687384439658646993796753991397841083441036426377622542471170653879516647633298329630086285405147361372242434711124930947324963629383831184057540146285699509566958757418218577585756838027136905250972083173313126049578145125554263462727094241226993305169693833288469688294203722741545574091210627470505285374085090097368530662808305983080916847374418452693465119666421630711143585246006334167941771364468384673845898768749558752773884175095437112823654324247000184873030262004710104520355296279341287480819722790184499977951237209415457550440380207048264276555262828952628630203008728761192859145058138411571643066729069633538467083103950788368939158446260765575501389671125301638995938024637940981121685574084927776291793935708641087485709579844291298396933456925924898205487491659464879302877150753837512324986538712504045071123311832779098837928029881903567850477740851372446617118083246565299039207444480124733679919994393331779924544636364113290989916154312384885446047391412379227764326105950876868306043954924731764174174475510720724443191023535539610306800452665512605462458209540358353654706108703008674447316954111968411648397907592815248957050707814491293039491689834932927554892315857787666099066640273898109642546788968633715547262194371551902217327415817651564915771733195821110929896055447690620565368647469773742920175423287233645200355738029568804444027807927425470528112258633126055999350467307856112501183034522070633694744795099396175704706068590535986318573570109861622896913421330624437447999659165262559151773437771619687609503231842504893015001628573739686639831614618410670192996779604541193567786930860617788315942378845550263547432762065236194299844885914258947333082827786553684175602384910530161195200677709942348731572478879358008883609044495610330140183048103510832730244475482244246273315129855736599947011872353518273322950994796591311456595492386926552740158375928676174100780335203811072557404605741465373975155422699906499206565059680123300472384647592276553538169701406267056426629790307347782135301063127284716517269672500929126880871699630470133452584493641639466681130895783337891796182313855609598463159899757844187573908467682119859413515508791027974225394789978183739064723115614523629886642219924573434035932548209049185776937855796408265389872812642995147623246962641249704278599434434810466009094288480834326595831277150580009921121762802572023075893900974561973227327835444375007571523051941738115852253474170843934010836211661087540394077282118804579193059357139113669641752545483112295752869584986027872479665938779283066156936397299769025114138807544840935104185811711165857254679614581402620777478657218165708226944715467187627521658174267682497633164006702491131807099717539910870511015040737534041604670180460710993407281349834323537353192069572811574319075718745838921923919995372682684175315525005856662478492143906040957703200627431454783678036789652169579813969414178613083973939332211941495924062626151809442313236157377122123114582731230776774388595715716609885823221106442048007134198447723918840149750531799201057697734044048018211401054047861499491889922195418030708373346369104730461094920849014753648449343016355719798426491460980600483180794783399815937947725016903816449927202857329795379377001666581417425563191602755682532313614905065109167449836369918810023917526369811717608698651109132649300804933821312096742287901426608325809362007394610831386512983077279967827904242164848185598557206147894325677507192950618768290789246618499471084883763774641043932344443795930274910685714105708919679258453364015355745532754050698543049278134771375980044267117132385609157827374213475602694496218073502883103106012207562334366059320859934402361179481231217720405661816089244876192976905107443165896300383082730957810988167472629544321391569440607419487486177392932094322148462595052621266058136329578716856342288515038072938373293511188882925256505344814541059282443513591755436310845655901852487307988853298614575095817263545292101042567742180751405147854064761550230990713911415323908123068086299734423912516651633556138254737101623995877499084892240065536227705656816813230527833202221016063351471604738930504950957842300601855810984831172032261630327675723273951771146154909750956154692832851068295615074053315627388933037233194824944689664855968703095300689000613504049358064276216660884817297782262752821875546158814450209687990270683310283397823861389176297014637995055966829245014345953848951298105939599242424812179255897512055423033870176444721214298322147774000114750482769397424026838162537714649818516441313321029257570914257736171340272012435883115711374665934732522037052542861891508673401307060623780413446337846629367237399750441572028656900401018297636750668323576850259220221735083893578605977083252195879932707560661987869419872668966872613513443764557181156374604071628531760008605450723291619644609762203155383944505730782000641880388620666635626517252853954267720817276280332876654744529993101012876410580589588451685503391699798076794066436771741273967288880152739972850803511288424070477791600704562029015592563178074165282948149281280555830208062351362073545326189707223049453523399222988945038570021759324816177440930404614531483248502497833539436589914916554830310372428613944128944332055941867148729966988242145485255456892176784633567458206679157531704489809952127243495477911541134875769942642574750878879138203706773992291672327011563685022962074017430296104412267153989074702967762210345639156443291504601663735497075043279941382695296637506382620478261248608114663085673591618231821161406900438605025978257971012202832213559494453044033796106848323335445178201947161099745372411280763345176947403132743604983949158040003887130403673352568768282804954003319369391930376094918066660153085003193350662584823773184042054989234305339834195538664339207131015321228977594132306144202864311171096749873132861466317850100856265335367242634793567990592522791054551173602536062148781429075421322052061437798625932586801989724814640300241008609337548380652674644681672100076297562511348346266948685452532774381673415636557667654261895774000551418030648185098316887725272063188021139342668770769262710295132183192527517974428818041995807644383095553276123497022197348366177102053219731392750152724638468938585472525245671406723195086724320238709371208802924610600851875260150839392798643142700721707406939797538060449577427759849231015729082592448892503333120933717333079194770976469032227791367076930363720772649928482293058077577195229650122222354504042605765550825976979488717130354060950583718000528266252883522100168664006520778787169816143903896365522534646422592699149311065492753140674519380037010031212056640479706958678850620944075925730881299632261541851040315908256397010777418300291826683309705727214078214923627545547734380673928782157190584167439700666023408214981745505560225034612036911269106354893930672660086030451265658084181921025090507239939741267214319694180635311347192326459306236552357034500919767634066190879436350199213196697897786336830024959736786182953442872080596516717959899872792539896156280502182243573534309150458439520118223537687960897834107868615934489853945316968594520674876414910821046500082237313263992582873657652330503673911184482464714382781328451957684590897078930785111370829448714220133183569632193927058317807799226101206369293220667014116155077620606098229660157182473093665897742426656211136612688173227321808072556607280372673476189557946682818697307249944179591019742014266371368122572541629761650425532544348581842119188922333769070490170356054479601995288286140845044868384745282489083727753748689169912037054325036625843812693738157629392990859713320893846322963316163425655384069442949385577941653975727526548058995365311424625722265393074173313605212685951525053614171893653299208679297139236527966343717774984978309642412848434085899833352825787711484336349011228425400230962987259500259521542139173239675898370908368035494477937579099175721639999786774612058553556041734118310422486772630966204408522084914591337873939278220509548495622136341998037186862119456837691091836219109021212791919267902316120954599381263852199616596830245476518692583845874555374824013482592299910236035822086251964528053491860569463264922827539417698096041949172722121766787868667029544222811648787425426476218179007122718053367453984297023933457009788422042418746718491431067666497866203845099226186778467395217694506841800454882511168358715492663155223836967344926711879882768691685597767489834734424271677152510686705473319900835049151457853552079818688256361953554220414658461276660225273199800823957280642720114444675450864672498464356865547982891659128526400905550492439762037828795935277586340872512062839058699105982333734998864930361147267082077466435896697253296986007791020639773431215186509893075657050403913943022274843326053738072454995673741254002004401436858217488427493147930804282857026999567386988281197950967145476214529241313392037717069625655696958207221176341005489914300203103986264655020620466063959726033417620089188995156911404044628169715798941842985258698871564818682430757838810822410152345939783769681108513121276479762826588795572342236692841769685861036487198441044973931159957761973189584193887563564480126938995078431230362536668592351729102356077151835109458631832425075616598774983526860387209600869909159966266651019840441107538422592419055643694468497613474452794672489388390596574598415154903328000067884890556737996153087034312928322576436008202693615452588245232555406139195149491455695145613462249660911910148393935498425940281335095096439415797895562706998840166802801250822013324572426958533265064608476891729528701692630060884882745269746682318466895535467016326269121155714690911910108695182973226645194760652982268354583734161447605777974406043702250656381108110460187595016113643877420691857305480583291227953864632056316190546798763497062185423019733648342848755666909466848820977972138019237625254396706562742491376664641887493446815515302119866481586631387912440096375281516197432061584023362785005583076408150616072903163138814478785873255457245400896553648109044185513299012424662026713382208497629517973655124811066716293807762244987376051682110318371890272832548704742932106571994025853104786208915505389118529675156908207571617107855160714008972436911026749952206920164025312088264749529440949593131585077703096634415400535046265929795477332279288151452763558037600140299493654199355905521467634133753478891404024215832272028389230246435276730692138105214636794146956437618112520593750306812113863936735618614030733143431360089560247582083290752226199081433940897529814880456771899237064060807211759080443984008219596085112600992284805388851368059615540837268703447726801994863382670738492898801235088082016763367919955422569821405848786999154367258651207842154737570716091294753328630226450371943615643998784622853897882651556278559424082996803872935414859807783596807976239493523051566056743154701556268629439082138254300999572612492558223759853942962042839857963221771469121143054898870032450212752714525012932855462979551680601403484281011304450887639016876114474653712178286972877508113190791701700217926557454780845604251638008845221956124872955560363112717284239567400695150093300346659696119697453238031538751441639419713554159096509097004645622610382258450242000997439590683599474698404987402916579120036266032238788698542002469957819493953904479552556480030836574153644980428059819365575166517957907812204290053819697912945925421506302445426616807729506621785463832270454029547594550516330900726548357594073219011449500142299247699888125331623964075043824689451967911738844871665451507796787183044886581398624278912663454948318335841646576652381986736579317736393770679199081784667909427391126276244430666678069059813345555154991012807896356853080491791912067326157128031848830815069943480664568095637630366138469314898591155189199340316062949036295337867620051727532278598457958553537942743072836097447603204472034054647629058169669516527054440327132039595247195130293803817267896343044862575561833565316662238341900668052908416412661099968515015356611407426391659168261415917136861818474926589112498039735478754618077388733212725309567820680255846211792355371646719314383722059620050194630455208263852727699546606583719697407653754457639566445438194297372700648984729843659527726814294589542310591884326195652422298755771342258997956843943636288774128567695732841965317388670825425527994373445339865375811460343273781584130796884278260308208949996625014689660152022734897378221591523448737475954744691624223470065135982656488692285389074588949987037243653305424243455210309894763123495427356159521265669153970072888363938206905491411729687107586506546960042818715978965747468936419332184552401330937548452025471718150803098507709991147226863976505584980164046481999775742898335971294671960228499239136206210752239910339084323489273365116869734086911889561504200243268946738275033393046644486697448148064151733475262343822282710240827127493428029393792595314990309423610588594748623279892159665278623522812332324007892300974249417964505385847631329456712358800084400359317749901460316364384207934120127270445067161465094425327970553517102840775923930978167388740803704522248829378524873944815628717969905334773817592454446884096981173057025004679188520334485587066784773398874251150355066956474082065484507396854250942486485795934382741785636405169793549276445284573489292884566123167818713185754192461881826422255907878218712231713178157380505804566810523681367789664863742353970448397502392643490804791941122652376752768013910953294414145982213694387715712599221816768041940325541242416963642681662252895388799376594354023789588067650028593653710908322151936816180131936832427195877447723439451102014045394960105019587148500251248081094917954070945803246940887176861156403867980765904489381427051479357760306895192929462066019777640853223242843288413623716741775469494823293029333820432628869843874341894491253158665594898740767031059616333953689151813640258978823076165960758077223066444417888407746147993872465329990187368268268926673498248801516794812244012723123878543477420141765664735276294383434843301963943481227789342620387270516896630193615493344546619884814504585142430413181987301995164815698206764922994228991734106172114947742556215436633404633583466071594896184718043503915278501204573706238682885856002322627219423296278396364922171547883918243540522346096771375904359402663491587033915555173383082480176348034649965148345687266609257274381326532631752477536425699145881802193748324514716065535284302088663965188840049396802028326446799035069556597298625579699213390245828452703099514429871829866881606975988323549540585646242080429107381462579205234494391509986025973448945920766873340155552505558573456211966190919049287876846223012928000357601950751933573045446371829054735672510332016872324061680341645393605476808110052153769351528546597895438977675640621997175770579555396662709472238765193196949543652246406971079422339248527400764641148257003473721005715046273491526010118019786588083042364809073223963306823840195737709105197333156425400818870421372037461233002430482468694825854376522348813361093338669189793410360409257447622063212982713109582733360824501388290318047435655064389626661571486585888947966278490932474804932610117826449639413362656894907136942762356926277568524843782876591529208517738241797867402387472046470361428197104952976594400230306873245825262816779449757496270655952479602556760888353501076519233152681998636519730763504137451071840048049958612637447871982912264305124805253390915832163931247354648638450096714330155408732523685812143747205040560689531498685122646899568179321927968054063942484071901355955892040002791621855786126746878873111483740405967461779568955328152829444743231580655225284109167798438356854895825493616699224906548055635889092017942465835524281202251636582544309674436069380430242537716883909925918500570121072208911806107082945726281125735347103521881508836027437053193315250824521118348354112818382803188614139275695426331984265101503355149885267952561013109360442041861085519651204798271946368798440672718945326293512653776794232024683149575140532438829687843716839435145023187034959872898492357577820783180620132877145119101073643430918158671679404435649022999205437645410905017750888402180564124140340210190210077814856740401099553187537715616879495313369277670066019759110194786153602717462587381510807195352709006148627888636719534938213680194117201472244723228730021496629880776426542730542687955270162192348025008806010847559234065487229687936742032124461206028210607281300961697498102000641590815080767963132281062984254092954442434745471826498790576275066631026769157445915566764624983205858576966654141713793621029836326789119186833491399605280814421974794609665494667437645096193003588976597161609550132054529135292615864046666569845537620135410643476046120956820553078641818870028490198731462159522270162997159999936199656260169844529454001140338769112043127200587845972699578701281188918192158290222372822978305419754031051580242260201216330389932981874574688751307734504601761723240279376816465486352936173118948220334569628271910495629933062082454137825034717559955614318682336161574516110009874972959580638144628586298657298396975845581728300308125731805145072854732070354567334368370320315665093540791472297943440950244030617559206136203721631704164336034643003393090135070797942701072682561224719900411157869753737835612192970947946446830585612037750942721263487699347952468712035946875459545671738542368756255331036054880170765837858967947292251233313832806058242267006265581342338124003036995242397272835680966084097959671557923899320333883349927845603812103148745788676001246043679542836479717034475970309056818839421821312016458264166884173282969357843092264167445512613027585861531191918206121354481252131867163579168196166916753533437515262104479242544602471301917841103816392213246731802378060491551528519052614523996838199978454702307508675566814231902949767929009928696718163609160439587741501776571101701622581091185285217667116105789461048459311957358824643503861129181161225654496706941887243766869311889588370178121602985008087661561894433564949908638123229674146680641374542357981797973064958947364937883749712766375920077710481491634050567002279733423300766810449347539399359975025194360508788242325320887909982850169804602285285983907437192674269088871089181330876598390366207013120962454651592591886250359393563106669285334520774771658637243753664367883843128773132118480149397296292381344162802782059154379064034926527312272652784638871337908965810908955188263702496800937173916810823015842105807910342937166649832206566941382058917010654831899538939074038972725975583337888016344279072648061924944549564148572533315245604850546566638628471262232654014151732643002565649242890294348159810767378503566044063722157106456896840927479558221446431370075505322705183388531170735255623456229015251248324421055930353746603387796174673391925366892149497621941923318679934983326735231391146140384334672067636613500401831840097403454126785828157000137933180147598019683173504258285109137178970129298741673111092571600422834738094728765795206798245777771037624913662929071095966584607962527962031248060957887498924609148946576825791374726117232169861593719141340615979242311455132122441958147424445506889454914682099761861335771409621096873475318811390516332071733227605520818489782437395395007384259461275134762237303852781623604433735858189009673583668795253275543082124765877223014013479033557698451832108891531878944471236973801220768436471795412979302706962299955971798403206835773532646060911864068749262687578610676403386759928777692586926644219360015543690625201394100483054827108548812810531005591230744334984717354290166589397819150892667960239130309992327103336279828083898849828357656845904067919936938008016045903849840134762495144552234067113732630494523559527606427054183466375795900132376130123100722419397508723258538442863347279984793160495163029265456704690757350442503719243288052641457502663149749244594254477668954395514161081458538543966632010714733158691279025075268021050870682101170237629350535926958301224532008643834882689955734295794859462144143434076428091429883252940692683028585801029050143115452574904701551461777877145441144661819773529245192163406392936774529428583647023633420231626054036723751484646878174693597254697708710825760210132704339359305006422040871158954310638137718875338145976794689896300564336915968997897402893797345445351507268287887974780206524423126358714009202688466563978234963677457759952041897825920543028549531072635030556025569088111208109590848926642260432830927213475106874123408705384393589813828626614124025791351925301090107677023622427670830777840414179034737160841101511719479971970384185276364293329421477713221367912556410651784024793402858672144739169064758085333906584005034313476560082612864924964836996481528613638796973358918288458920941517741050857375967965471557329330168752198391618807646506644235230778986094450666059938984664942468366970542596336942379224273503696062301686695648878467308248110727861018818120079284272596237495216495184072091683086170236106047855717826235347489024441125073893499026747733677772758373053307854078145715584459411655091558588344824213766391088786474159709306447538702210920995862287740855722409468986629001107424062231713126116846411877974216847018434318643674282031150172633466715182422746519102609300882518958637174284818128294215306166958074979763572255879241982971069109242753545198951162245354407331580500381964095226188275006066710371316945192473804888438787309637533328181360015851544030510427726641534846187511197379975208813452490374222408219330348164654006930013897571320163146443124342932202559529371911565198960830937284591869235821590952835902248948204391934114983615487069469730765307538379594032877655220638981275899127846980735604933651833700346719899130649280454580219563757968838625536227210708416708072479399644826424488108963202425770025546237023055455099526128330654052574795427357312566740507835331208772062045503448248038121063073783308577371442297239182334159291987133799909264778451960618339295506011118697853524425259524112000213347020458594265871956799206849850804104549447856954525383267248214864604653018304592086324716029751490198775335318574795932324700843395883079088539730516118183736565143036818758105206962432439794605330058372742546984197063916511738895618950231727577524935210200989632388757057557995671772255186443047607982669631899898447595441769017600991911085325873325656376601008130973816351567598371589795131277030934801027409409232158672749295558556435293581942788294596733973601646661793372436328674987250175063130004336695064710475343548385101402007926500244905290610106468492441310955633291188983416868953830693114753889082401004629869999037805714724558963227775646078050954352002890591514994576004369755016604570563604883406250138193707676262079374912757675060351843108457329713966290369154001847809676749519927747580153835098904419460895495761225757351156117837656569003184967777081010018490755859845869267955540612548415000527408985038681226516351647677033152229598816853904596017210078990352248751161458191746561506988165990764275280365356224488805978536496549468510884573505498700026270822189025638465503954707853565065340219523505407551282535872130676342539197560701691215032265202853996298593784880268672606212420129309558641139072041655600847900581615705298034232917616538805643789834334717432970926036115785945782287346840903857590049653824439508778582663245587189848333179823861268709053163338092093172312576021007135682520040125304348583940565715154133625629755847680970884617460194107327551359729184894269369723914593961671042353067608930381002768117462096519489492694319674302185513484213715455437438041543003819813439195211819219006340777962074512877200501640811712939729060246509621303481532110441125000659914466816620849242316742259015527258198741604498201800652221764267319383718965716480609942444039612874509238325035977193828089763538619635069719273808487317146557587064944454704323373033056773249791663040350377912386739331456667245217772900822948334972970901209792842282736413443324565033767256423282387843720855356773772259893543418771989947659303710403067983306402135842225950994367648369543781991032722097133600820895281777515381766933067222065995813492758351066265133444917885661490650067779622882779673390207553643267647926579381197625491658221562667499967539222531662664423741187818217265392724384334973815072024071505071855406086407746925517792170033021341548452423500021111327077456244945496204487974279338433923037685806768877663146726613929198313833066970338683232371430210733308458149581029453889827914680746530693626721966016780525843665106604391597241472238617238033234726937531411968775304921178068587263524189337430768013377701917577790532425000349355468254961408011455236419808418158845356766512573116309278350986747534338922413908976238582203432940774578009063440813583012633001000098535289526221978981060113734872540097680733138188152977595378087503127280227023072861973415246735519919357793623963876344445000888689400409669316083477663638389023649253393198325206367695547708624821763660395380375605690637850391941512849306680067832923711176186702568961893312046090209925567736237607319454846281652319956559028337916488215801246312232357499569257374538489644994646448981617318014311082904587171560050622378074923738887483807943000980748280644597384535287762145388587705525970421354952595563754339069937119223457587167702779561069612820978881215648422272928939527623812811460489460726025147287733311461826079560847138627439664146409730914582404622542479614856064166639740417435143801979718848715003860823184632915749205791103143792414256350025350826437782830654446923679643994287201749363630468036232932726376469819431148248555107300652895230425185400305284923022327745738788340951643842454314801857555272472562340666626904477364392993026033748107874714444932754384714785647536211980272366070061521023321664400990472360539594456811615383205272767713648073486795629035485339919608428173907843185788917710928910685881473678320791820098279774527992527982631085110267465409501207849860119148849019763466825578791475079902428429458942200017726927853686414953635071806674082672747092597175136237536376449963758092131767755997691491880596437792093038527493616562178243335635901300419083151284707274391092471483304195541315959096853724397486571485208490895752694583571261915239571648764415837266150147055502354898091925074681721001650597744344122935781434352355833180935015202003395226415372377994045094799283063314426441808861631549107345749635320435935309026077788727065901343419349424965344701045076104901727597771793767582956593612923795302326442413735183946472766067164378698031503952873521424334562547141610325991681015740881960089534790088860110559806565428283750736089073305716740761438759973976697893084244469014486943493652699659100559766485997299709240507034047128597196838056848528594474568676230226506747186405271485309835617312321952154187479214506044884117459747198035299079224277163447941524939522758413242441387546446148444300081182139296344942140713835768603058606892192760858975468542305590348978281170483269637752489801318131842690665057398005410583198834292674002068752998203056807520760074024760966066498228522508813499011268470321343649529420345482811529040269776102677535078496881618518244941965183498128201470882100219997627609374793480820990428450843631856099367920234414706897644979971443531146523126721711939841966380883224144639227705781325515086840388652926011144075435944811865088565642336205183383756067658388864014941286719732767717234695988694015416724142695308634138217442981419481434614504796660951887092984184509490228404612227947687703867051916819816176065070699466756914028039274552802509903880950041681457420725371308716351055755504333068578053696652444134674638397657907734951476230511183414568615584077922888232949550087092044729237846234376407557266270468290797950299497924022729552811452859268151151117333420424725303365499648475543770750755394657353843704133171259861112247519531057038173326670379579451050082666537550605916930829379624160296103346555068612486559751616000226582387086943626919582689863406588302436522765164575514971991359704276689605102834038441328889128020718675011024337648643522444516735070795773905103546375890679512761886789833319274797008695617167661039166412054799512047499777430693000851327617940792808439023234601517411896034992308124555373829266086616017125484342088142828494071241357739350568289877755936406394350809145157998341762314530066788311220663007890551037561576580293252531232829022307422096151432660810323006959968312676603333278287832828877010810672882249882440133993932703876555926494141622642091673558791122998597617393109992685494085014560942778684023008074061661278971521134553318828496177343303269680477377830767554904756695465143338530177007264406749657196712923279491552519631364823560709936324341438833500169964828999626866274586732871130402896329372726772172465839893370334465427290010127378388229085292564703164394956271719790595135985820551772302970070705901991610838403411082943099965171817372981919015278373170897281020406995125617546416431630227944214106826362218067785453015340793144198964536377802983152549136208248803529339971306117771990284829449493549014886094571571802525444323941828517253258295666884509132475386280376665372892184370029158759448753701639985494025061908630566320834992278758507836836863702928691584258528716893710272864369156451027095036654066831841542631838939286116730812505503974633688840035777827700210462760856712681055298703888542303939744184002677806552545732094345656804251289239057904526348596607652518262575065281776503887602458562641262716457551179045855595210926679475660730837802052037411889493664146345090388834033003907471722563260595940855181306338269664127913275342500074815739891158841775823081880004995160759438778840855045330902669127620072273238200972641873275727119579557069569090655625736672496369160631017328489836118121500749025372082676727694754132830801613657344361744729076130517412226558158657420856088584765124331943066869600807740967095805894013627007119661242308581643812292185113363057718401001820773391278570642541769951101603146050028429984360707613713848932959084980505375066498038808428531830955884360475949770427844723387288277513939121530904321532131795200282824481221772923299308872446044533261692913432747809620669196494200073368447228538668047125069473548246391111018515454256928910667001137093374075423653000269397322737422054212146177183498568661868775126419468629014938942313219246832893393794109332206441564131982570311117357644965591039898582505633849568738531007892872752185029677503786978144671607101649652144055964099062487813177239410802102506614379725828315921098171465588211702740731883009767362489241882787477012610528949564731232788700207326061648837253898486289514861748600079533785664651855699072080874782778179933156203905564554357098395304708582083297018948742996823117584791744546956555025841502085704057838226583134455485006029205123445053372131139941237427315902196240092104471070852499943043783876603494409912309876353758157223897204314514064875559898114690020848111706964495393805761966969106488206216452132150017403877802413223720853445889878989673261987296677358883369547435424916537931707268259803526654784117190530351326754357798255328991499432539010532361503368971658991052143336419253758390106596064007784539706141952696197327770986927462716197019068600671298329238775013921069809109489072911606848932101140091525813445824314963849333765355319916377173047729841017405359266674180495109914537218130373738159584567393930386066142041359569876566100822007624134379706177388194221857304737179422549842157720492115369177440751729659163287034787486133763776666929760067390544519686630807679178776106407013381002380238673114365871187527788751058452892194578725848184563666152363377776900308624330273858134874170511313141979897814162946317246851226779879378680950885508737979722878573949896771247415226914636291998462441890276797464531362710778940552370467505313646070126663135654546495483620745007055046339009647972538249952986883148632776265335288352462600101889672677266135580378514337991194378352998945079960444429950818210978308228849981702698127202901554409107978088375902598290707358049793613342199495881729064802611761925396832067038284675989377837816859356509838863888250191941941640053302942531457015161706375675149193715788012904084100656870533972156240173840546762328267528678985423263422504491790094296572227798590045140351887080743486931645640347482666801021185270871655702717045511256141254409751524865853326748982492884908176667539615637583760394770661952127432436796541735038830275144750310600246571490621838997658503311126217075967652827580068706808240526731639555262626613316246155573235067808343617113367123180753561387118548628676970816101837163980434643681322806714497268329414221855442184015965855180153348574441868598483044541239042927329060225979612520701584614391431924307576594582911676668235585678267970080226540583173364095987807980876746910770072006754336733851066502284194453675649052900186538982011332958985930789062359423146683464415333394231687617563624508621645795644500694449684100036240556180578819004526241831028640314736458712860132995115825770338649017323311165346698316274813169961816038790856049582527133407890841760061142014552238999022788952723259689519059048692094962901429591205722548331978839330211680187701443343786084478265467559254739243495351045964477973482263199123339635454572412556656797060058546723010445179275907016353506676206978768255252683620776635757968491264451076947776311230018180690937564086276939509428548091967019762541032812374770651139977436497978059793682922206911309712602404618341363640005293236356228672774450031773524863131835217987902444716636776836840833338045200999459218717804751215132552469347719980845693389869070851794613261307290839468755284790058390739638185299890149605152692078691067391768875821020352466086385453753473555733415049353589028254682304948123172812567090537372051946446401194899165782631154416219136526875173368802841113900392336558262092962676016192247710355883343602716191011076113956136529891305298387282567923929133529327994908568888621718225058376709372724212948063158038515368366144394886235745440671770292660056925179457054114949183778246733422887235186337866251521822465405339124251988587932851494623120635245856271229603305843852977893343681342726845030216934585034423860738286389487321189974478764548304873883471576112166711340046783789054212817753110192051584521556784853021644921524803006721602173135557222493811523989297587417374106092755478095036855148370752257487716751982825583199217238042285728897911244447233941834583423708548305856619560734241172311636623086459438649472997145400758971783518508190315223020263246878992468580142163318532502817475510186888568460331543888650553731585123625438645329574466170172894601769078023004535459283059807513388651731537825526452513556376684828190237438539043943168172161457891256462577382688354388827914284276150972801069008731570155060454068856485168189349355351789360674377247353621140157433513184761517535370831813586186526359333989534530193498791185996467010626392497989853080062704779257972705114444865577073497573907293513593003555712681277479433895708111854491458606526292311090501977827894214436602984651282419915770035150976978916143715555367546681374727002293754202878776105351735395958359821288518562219444700776448904081673254473489511355362549666685044848099076536902868658235624570020964619399589052767011818537132598127316176600470767634795069876826154433180747427365035898741371575706795258809892274034793875881570518237105983751814791934956702934418934603820155275577527739005100800039236078253474064859351664643896806956528374342164450822205302641363883419054130996372772085914107425431752672851303019836387204742073472822426703761526070494039552073442284535323344672228355823332877486121826370052454786372698228230856684396081501250175667515455410230559746567424286122092112673890277988739090712779703819845974352074169221923552694690827037843908352112394185656672660200789776144870237814602086232048393563458434441860291950485471483067602977490444993121586302918014532826617796335984618537092023531006223488296259882501261020456956336856890088418117978282376781663472885050145628583573861312924565206863942910046124232248562929645576160423967036359045155862109393901359776561442711797049923927786147651423720435177604585756795123720530558250890859243716200766600560518659361161854814768113576751609253569730560785447220990396082489804630974787767559099973054337721467241004265376559351968418663934883750605149164107073167323135913424591132788255131783301079442431425394564769107538227677392039287362633613314881138747590015390932640556572966415282793664989755573438184217049569183314027707848496401320505627001404586062098576175832297819196375622852576167924372379574696477591970661858445189524765339137713827196230125024913676179017348872516169203344290605525296271079640663160600981937795452673750103506764045775559760615911300823146131181269786381411563517942009464891738499869200799099445659374799249070604410963554009859496253120673954908130359765138400285064444738855891055180477709215713655992874928919119585921966308598668542720236375471361317320348186011844476177280719333488213417512106018109382387109075843545982051728516685242993710884904230949773629085303933036344296634107802674451542961548118514785955723852163621607243060984928774168685903633729887775500517024594894344603832592523361608136087628714406711902175502542391260209316841280448677970904423359731958991376926150085323213672745887677358540578705825239964032005864695796433938464513482035841275456543105252436518137812814208496769654406476616012606859832885781252177407215615734947683002817984809229725913617722345576007909516340925896987802107267739979290246229468946347151926793515348642066580791978267131418015090601782025070808298450488091997451932656550530793066720319721191396483113154998840112488908747970435239459192846440506404020636848313406332996154455230319499857392429555957862135291191723698837170791567873140189990730819002045173891821324141956364772106459015536231548773349926375666965024623514746993152386458428153803286566602218643204266149516547588161343906910898629658768031951548572592064229939693044899593418305255279999684685985996134944124167260984398025804147927849578660617284917747615114406824692941437125651912855414702789003328349273291180599051275073419579537461225127693385791775229297537614156369436261827718448403711037020742237894103668930738106283084406354300983436339781011169186250354825738607600333040295930717646650765059062073713124613748955124783534692414502172695885365540538717549048901657227543690344480376502978418319168022483248214009859630208887924333757740474309207302907127999214065608457745648006339188416180690468439121151770707776678179620678300263448615376998129625642560614773530556401150396599952029923511256267755574192407145972659619668481363674380976202630321616912706239819451698209476557785948624115599190974912552231488744488259645603088359771355059363647957350518763888359485828994089139891304975526785206147845109412860620567607454683784020736208169692474526836103957026198751156856163796376578018361376179314333127736329907426347036537448670240391855245718344025814299037106244125543074301334447251568450692880175298683048583370718956574703942314122245552429841665132667399231191839678074759177871883301929950300104336292037249891922283656699629701400786232470563723797187168048268449229384739258659131004081047135861371212806149323069645828527404047632870208196399259532164739704384930103064332599278444375638461444811617029228118011035933642012364333712584292720072520553924379115515138588756786452542169666007500781534748924019045107538515912991462954560728781179575515915313488247029537706962472777065118683895063289750731972243215871862730485321170974204600122324470674118215117867840534730673326439039981231952621313621311966560687313034531128797656956171150721881455079922684328148896288077865992764035918960525365075924962458368867423636378183309322717721160814547854001620991985233595586528327945828226606183070460003572207936333445842164833980900219785759255224336626327576299061310285916397264244014558369106532047354197036769012360509838528914225538494144424078149487289501161843282573154234718984246967771374514146647808045138592648777427333923245842397705350670547308323497079744840920919162714891391250561199452799649280592140964260694616092948408357699396207857781813027528110026600519919718778251843561438620639327231349675270696015719629524741088752695979594251704960742959774564481562107979768862777900504701431216663858108633808799172019432574623716750761065421913963128777892845146941310955969353501832559111538935219144788568298166426600070945934866073810448605697296162733892619671096584993721774345687194462783965353601191709211946267658159280307419383100162556412088714613232806181134017049937843089514002144013620930482630761688771285767158060292635686431681323339769236354365087670799031184467413605749333225459830085404617806116468079162858866680532064718362215500082071103995046335697706593481942429698869935140796032435715995053965474987299508479118875510268089417230379400761652778744295873307431090033175965135549174162377788450877169084634182163226914470502162669405163780553066827701067555632875845803500106036076142099630098053601999607830839294014193038952308408680170134521405854442427488827937258296093541498926104538426655126326836621871396866258634204240065117414907411478800190096528429750525078992535432247547433885817384930096805415629139536225547395808794336498749413988963984285523591516151505829007386929752785436162009084369225178103068876077049976891718787249647351618754393496786652312294125335175625104403434918035318248346790171594822218124456567632534687907242264015061120774719083090316400798297420583577783899969987727961400448242822196269541097229791405771255442545120997600276977518353094119175431352302495574018179545784383584727668416962028139824298967078918598534405495152681232502020036526584395826362321836204748403928332037286781441062492453568510960187740755374629285243417685628924051759749696897152976956894916742953022837319447232915485817856406601110896931191216944061519676496868439245456388801057040749004964064045388340297557522068950807629360548774064053044780602625895267935420723780761315659413713036242993472358557207626300019862857506807608251436928814741334619541781122281485471161940122273342161881561386299040766719101281363798279420079728826610860100834660480775690626475614314971405968228873345052099292428822621922378566544119850583275342540495759927535105770657951868995955081062432626854903596535024354854710259814010472709344116200112007219576387525308376855120485829656942619737841277328085772245777819161712681375745730771775695291327878714730752469493588011162830059551284107370881662451089941348059790676330373640266356881425246243172160044775469107638877354333813057878713535142996131041717408495262272701440079372771918789725383719816829952715854564472629322001715737747766844694256579375392913923303018274515517947785553082923972873143466844501948852680432616952921107405321826038790087459212144445320843753185678647956183601662589503362231086552393529008654317037093267372217304192345563015466887512329226794152533230856300350242582908969826272594207262222248413704698560262102283097103134288501203634823781554282111528244382946649003663725444561304190977012124115987679773111900839192444143462632973033352249003081363251903614494846944762455791404436981983957424359279289007167226150793218749747852218217809215757788499151141410030112923825993243605897001774076075574803322645864299121236957427996073446579064443918486668099159184887564842508654786024766934899048323456796923557192133073599672263805003769846597168621683517979520115713603761292348295043999621975983514482678373114046779019636769967487355284658658504638997034132302191004183815699402620629415680438107590559707184743911990325652081602011114103243600342285608949935297646352075398374887371173437525247777232052025014052437348413102508695489180368018805339907066870009078882734060780261176339218050325276025129776178283083370138787809313060804501030815393757211789281370954656178833648646080094309671554563174115468798869893857776067954750197853917161831626318287986936009174908321072393345989663315606372977188052921455431447687996180059739434434599874418045774798358777464266286443494432990600840360537830736132164377832638256420801000017920523338723099752488175192457698623828049727581163828582072554522988510949799853134403378850275266022745981470092138552604156664110990570622873110178386488653810813151820917682876276990826330257583537905125968169358867837960346819582899505336811340729816445036651588595213867744516293042047009115395022817068819703183246241386993820665526000286261063543196111619631987378792117770518761203919494436186438683971336092082135446469048334327838278489700443113473404592693282576839043310171573771678955634446152817709929304484111041757949201282900548985410318296411297933431704856437202502481416474535750142777857969774073548125943697446567275670377382401171568156348507882130227682119280022696028658237108774613620699915146290688417409533370740694725683165061744471260200446647040589347762815025051517612188909796472820140256923861890517710951265337406349864552172189302469284455678200046797870993267823315397804446454331517994252794508092437805288813284201204646949923193473442970050115358966629512924739543791428064761043311926790542430101280621179075619477559923390667471094245335561579389892746695058992643851603252539983993256180751605828634617710946779591767194639131441272894888503413256552426638111919209886157187400626786611071309556092735086715808952729839687815397380452978419211284167297466861550891641419779706828666442023843468517138284960795174387287325158404689987885932925696491372762391458655614772891189226583204095910771810473438436388046911860953894528053000067583789979834679095629751067247893691976425732561845541580842727706762359303858863601081498609784352247605405345953799655765170345430069064747393835498982468798096912742611768580454617830241168749696934665777201205913965964849527152960844433799251817085887266879359454594931545938855908279422496706394577825901136876416147187308257921875991110077951616555403539462735940993866325293161977853002470445333211544732174502779187190371846170002812634881402837355309914245796221888522870831900916794248957776244411391963926752184656001150160858548958113309380803785461135614462925550088413046394676614263407533447346444679585695915147988463019995687033406847344612840606219798882389156891243313784730901533180747509776321609602268861908473033712328022224297597338721042727343867136112062012376115655419447762340572431528987378097673906216523202836639640745352683636283600105186002168440326189621788330443431573948460350174799215696511993102083010945741395242487031046913846777952436350013302672414707866060435783204977642032707276593620834099154747645621140506531472423515411721761863096735051312583473077765892091780051316164033618990146724652406918320303446976099530444884687345317627983792371748282012801035857563968945979389124727807282793427037062263653120609800233214471127631105203697140882317276912073518538077666576157817028156327814597229186649523480083206871389403821353563652342902942589800975323615937697249909631220167118359795897015919486170513564262900838571730288936151481730940961195066454428963989026739352784402208902460189666817455897908207016165142206705276375603117736531003067474791205009474285138039189406221427169726219233966550037136451167263029950068130884190944302398706707072506083630915354149275340956658919506964224724576705281670748303131710343423654461296686535129084957621645450756570901444643045949386708480080468684171728034954834085940641229763362265913285059252473790108606146504143426748169991894749782402257379001309242633343615620820076877182330949402656761106854609433702028793857263488101311675808700048343669759526797029511245556293198135850062295242093398537008572488772084575340480639415160798386203543178720968152991537373571103560083213939868646765888531396623704233541898905107216118170643570061535421098093956367112888694404303311510991189869893064871636939632207378786645138430866111237352624355623411676458945597598935162403866719964104994801449083149889210683582923658744388411084471501157838085817922083906575090327569500058084170251951179099537148142966938990896176254794280336545543559042560472552074347470691080147821493937466606861366115209662046017084068346168912469674953291685097806045385030943639209731934468828409147433254733115844285007100835620909992814039080251108001390615069179891545769916653529016576306963640378808114653839071801551121185142830370326380004291476039620506258765666402620770043547682731736250447974107241263867992657462137839039323444274483585268601688883915108412633583171347387514950435754806941159419500953440035746095175677019055742061052729327247810811527923141147341994231152998398987716282707931632091045995629611389449822162914050828287733340431058262070027484306046809368660037961975684931426182253283483367275319962885727354132342050961960382570341671958752265847179831580982143146689842937770888517720611763624971568358543259553600551863222846646903740907370347920091371851010665856128845310626872472889853471044281176490036054355809845287488766745678260409693832646757823227605079668823241388937249440590665811537932129003714424955164853719037116860134332902244058455045254504707152350051234649665317097481815249050749080260709417912421841006051614270235538857133469400206925085509140448486690918810188720335705989613638984865789263659877381054726208857325303858459472690613792352391927417286179944344159575555230371547109133822612842976203750347162627096321966938855803005888968642607996967580016789012326276177914455196040200937482593439607993455360296842849397013751390872693250980796904655032782091895082153930801793907900242719993747970782860138018201214998087776341945797561632749860186639537965609466828561784676440253528643686945586814964761687722230734065528937742793908904535962331859242379816689163944107866592331061017249773462279903856165536381054101658851128139869662429560381896925793108165598916265622391015786537187062697493708488797842227594374637123488253529073240709743223214837366324246365079452789535840924903985360896896128594731511665400244730647877911263498670696082247213145756275811484742614947946557804267522042121336794484594010478724951060444254773081110190022254154753627592896208666385629933917031998295917403331810882168792860968118486867580932456746287575203801128581197245429876882020080299072188780324907618942650088025993284868042192990030917622661957270735176985472350701492675791908846797020400110809104248073744578112467552977646872886064461527716438090567752120202154479262945559484751842805137352051345920428703147668481857439283717530594979347256642924895905286727606656770419071562814171445433839436344103501619673534412218354487478617951485322734692625291387880498088532337408087628620190175356858063264782647206056333931715384448899590271560744653194068132206315397791336833906602393464936111414321516041584681868082645627281219581741998812985151376090357152649917805764036767590709740478800634152285242392127921948731087679459412441750098915755394878534779228293887833768317196503936139807859466762342007860076544567798858495310128827259236904457431490914154810656922745961066178992861893566543865454870868009816040888834512625238615408388516352438798303043092112683311538476585711065448704701466072191349989552353974895118762247774525616758018888396803609669221414043240590756502066201718089033697384670907435028972535496459032971686627011659058711560895116198158378880928886643533807523910929993651529453025983875605570715014742752855413428027031816945769809470659309398065071869409055728165157423378866928703655795497093751756880823332989928467790562908070168355238465652460311200757632584527439222401593646523146886808332536798022854561388851233297439123106493166019441046733810620657868330732960941434990922206311774593707162499848109042500824677915030020710354137360408493831747304909966211385722336296551712035676365890166192108878904772868696426180412875275099433249897787400323779505996547622063006525079316470881891101988734749553553857021704026409204569941841147644187035535622960784185011680343583147438750140922567330904092625140980862970281059447710013497330981005460718364618887146798760246990367075792998565457631883524248987012973524875974480489880500807016676955471341211014926538879155875061877252086328646723662409906709829831440912261356821959668252545475788784178774293650431765715990802245586945276056310500332104894269989723553923984998276351629147593236249505895551940420967900314385767810307258295866946850361609676379766111524909186417082401387671682637361305623591394461360648107638858604169850880181333677363092827257064322223163767612070156555452224646396077849312129075315840401277597468504771900102019746784839551642047139188982267689960071872773522669593137613675095578079986766937306967277507063258184347058897573496895937364945860037196206930016930150698909459721494760971687319651914367483188878669137110395598378027897165085796957033988422719679867710381911000501926859950880500501656482373474826797273012083099082736137385176060563976784624919501554540882711219265969832975901990601263337813808127986844609465638933439605897677826205142844483118984925512396695431527753617835957542129058610535715408214588434067785569581184312388161331669164608731446208266344754339804395682701491381057331477410233603416764022226075540052276112348680367436331144850009839862271001216047174051108068235338238406902364217649976544107517571310670907289030083270439306064348651266264423980520238544739950569374880464692573371751679565513436909658115884811709880141072847844954302518274199873314423593951136930400157336505735719389935689942139509708461065182015902792745027311488121474723684356628604996323246815404464944365082300837958508686970380165336597384862619056996843944383931325176258901065191848360094366195408152089172918713758287337765395403732620188446495037167818752381234848564948383860847239808523558320328156834932727750192504344321210209341130946086792328028354893246704213235567333095066245457812840753437492926339516960108868579220008539676724554379629494387720100402601438710116192892759057354463509392687560180035216386492038734478675636656363853347934517429566132338358901028318789899701079684265654679368649408837494993234503046800315442180818766753733980555240562817473309110225929748281400304172818447039456818462673589027385266146875579776927682327227058540655743620132807339438549640358413553878596130007110392111370799574693521035619999522963280897696669632739187518786138984069220116492374946219710338932935683784990628074692225695781559512908922243623425285093473794295722885694751838984227297430739442313757728114738680015258198552055586564965266807410582190329867669723514200132728236442237081367669627154360342226304938605634391112167208395518206997976607330355358724404868315373225295440877636191596897372844346426632209373916806282032230613662467611281102200037841545593130404381650564046578975072843214567665847843390021263222898793807531313308078975145632474373038048170527019117155327109903530021114085455379073091166656148160730003731956603162011975308413849575536096368736844841938390383900157229294775579917940090176870665355777861330534781829474950740209358299964363006214572825408389798814460904647488342141342123876288614775449445419033389817537132883026603678656489664644357795648575922167197679303702623309151107986284273878334676272599720040375699439380682432415312709259583175902786546230504310123153963719135850048224599151336163067038774506130033216944976196175272200798611207322867400309288330907901323336520970251868853876625878625702321732905002034528259496051018162971232724750576422799481301964207295998307661121814864265371637858335081283550911499761844741017117599448749697935601894848995187078962566311043050414463555210741919389825181356355878465489102812680478912845705321204222330883815539155256166945296410049238076447894809269386502540178421114141065179390463302294899833514354231245268975698742947212370671403700396222500964334686123945574404182142369334516454107323210345014181330250007180669870558118699360532528497832493307069925178142597366718604044706900560434999370610022114546992895981400800225065227554761010593472600171577091581281601472546422184420262093311631611271320093759896965707725520426816015891253592762073250700251604907824005867481950974392729009222043376053071150920958234080720755073578542131032584166040619507195621064544708462307604445768273876507651416315204768027231304961414547420871503480497123006282243794490514697548232907804648857702685654314679114653435666456240449277843019933437324984528686616767663360517797319359764784283304951034765090368971562398580787939701599551916733318108829514392631046639051767082077867624847728595577004275985713555702241045720911005163357302069663946443174038478421791062361004037922158485539891604738248644433491100454610066050109906286969437947133396196507553068710970904750038731575034214187601187866848229673177028212685809433553961140806992379579944004791352134194844947044131619308998329635816234567946630913783173250881574210934633514835744873178465768747549077653204324079637185816145508587448550565963037110174154820777558469893815041086753049775024485662076365972442567016731012353096285200627677978375081442634819382416603658259511602651087499777670981659616608723599192711517406515864792367515500929110530005617318398864748590178213779915662983991111139627793661680372522103179030579411830104628769079819420232238344012371272651239977859177968851227061419978909096129424595663615275915533441687316323474653670962849292170064141959215970915917302995662443012452948276698332533346351333240585712394441681517922880244095103428232677303856214796821419516128067140342727480085537493204896082322689368910530696306299467722428273016316422362854667279199088320982790606081240993931161079947994341076587609772360779345985512839904463693655293581864653064129330370613241390285724156120442547479140234384613931543498414633508904784239734854416120408569999768827250691530160920753843854579690921882592522572676047858990868408569006409385948735017484174878951733242903810537398746250966775162548571504334922854592597968685606311544283940331819867457099090730940793815802752008723250877492301146846010034617165646723998963330143316301058398992506219803171950415170543838153591463599124035764758098964770410051105439908868796228043768663010366422097625159095815136544157806639368580890053927540278392303525526779486609294937376440040768213033509535991682525185690541468013509337907771065205779818911188471215480543066522710781890925349267518798259456975822114153975302922778295131849352285193503335298134423945895400421387074164810754517634261253737126951320930683394227493342060045266329457743627266153374575064042114356707692220195860229761278231980827613053551287855911873278957055358108584263650203577989383988914603846098336602494471840830378248587527884441824320540660719371290607653364123989340786873301417833627671834822088149246233334832989113118817026996679158182076445170539950357189791972153644168661352481685562631117147151946490392398691130314162964809087910068254901235738176534183297444212917449684155944482043169363464386300275995387573070185849299116820259295795371916283485169315190620116257810237058639266116730427763038819782277669155040004381395130133216117651403254883917303651671897221624069213904110247492091210730987938204368073037037444665007817749794740815495332991403785301672235272434592410032075506861102981327795537627729393627845202426657147405159036644827919954322527194286924499183650073547724084350751408758876672996455058083317980290985241951381406058323599910007898460861783288479363564309034356767317546222418894185492753115979288340194161367419507420429610608350109780062796824664836202590611611720502699006105472652679718572073236187096399811052818854442645133342236589804550156772261958016139898050321570051003117014732807313095523330643625372315547506073772616669973161984716723341133471282562412146564586334313446905129807100395623813029754549687251082741611436334096709223982800366298215226517653434856830928969959133336864064373236822273486722512166429208062557800136884563932759580466217239810731729952999378150520956371115434788530137192208220638925322210477057614481380987794263868425896123563239894771266502034850776149694876468510910586029832639408295270577796510968090290608507655334299218530313761337488166552822415593866501775896046400279764644310578093454282116280758718637560606276614897355337696389643911783181568623519190021280170053737640936667090940269078383569093237269239580783462810921630278983519455815736626564179270040020321717795920904863330768907605612479074419902285823892398213302058169734985307608109032183127862029767414367208444054932881443902359833355509522129232055759848061008642620173298585205608223895156130074617608701930754195933361153650795214866748543576952540021094217823054178729315682078939465499610565462037121435828445923983055204404018584131444161189407166473655521357019025597235046562772752793394895477183519962720739935966058717948208260039700173287754446844728063172696182738951353030395209867889826670768803592103230664828775780333577471966362188610425038120338341730507614264194801566895947571354368530995374824888622415790920639573864870830030641269653420688085385152167808959166697222827690099826006950136931231391531933294809250670236221958862365204643303293806598639083106351586433861418128126464467206403926134256243055994651976415801475326005392459601348340210597402392289427653427466704326053447186925973234835669379732025334882670234821113948019023288380635765323837652231837153906057596857647714283425600709727061062371820718813118195602149923737937938399565272460443007243625893871217076506246456940391637693398406626597736907846748468844434595540260151246499338476653752476769922970453508538448372671414842769229535427389618262116817022763863203772254744644385808635394802088616777964787897299364715922187460672723113492453264834159743660594083183825798498732467083274309001555957746219676748718818319167989674832290808315021617552953975437696678137796541606199255959782182997523048864410451201833648526311405775083855951336300073616108017926063308569282652357919156441285519884500120468310141448204547141036946510579227970962514084439562049828948256799999801937450942605077642849400298524942003083286626416524626001299646741044103997483825829734856308978858086199479214999034942544278122380433012194761469540076386856080836942330465922675573913942257669385310317280073196720685305929847719967090217738211965692944136097867665580589658792256434012597211086535533124919024783975156470525770215701477892284028006551438716192885478029378142968432919749917767334518673963665271950555769630876597206160574409629205976427769070381165326087250199865901315987370939217107517801678533732829284465848894661613924755809430055448652652519925724373094487964375814994935715294056976761540876707613955152281063566916882629638329299945391960518779967452365482587588338822624510474853297750707470587372637314788664867313838688671403519118992036131937924713892240778814362082420526448712729191066066542693385667192536892956176880217866384463259132246755488279703063463964675921863020775672808401531588672058680050123838534736421321544990067657976100640689164902558890640461150657607260611896565843129955103515559092043843202519076663344407932874965637531114355227692177335076894470347088976236241862290085020413170817917026553516921273038642769687143731436012449511934525194449121318270410113947110777654679195757979376321353999597805425625317767745864534941813097092695336447756068300077306479805692428357519537824427180357492737892691775756250674897908211080342015418955389401291483126661354708720014527238254666832426716711704349958385210052047566463896073594025507773440962975441821091515929878730519641037790630890124613118965905550314612967056671884202012533619514344820784677332360282613776260705136539477678529035354713643617128681888172756268365544207814129795198785113857696053977352847826436005915297520518241319227738191551971413820744778678454297355655734812057752769494485619553625735499863277713636806331832619478468629651550161330312234727027766925462082299361643686949896456360383354032974466514917365221196614248862872138599755074730025454289809587348810621728832299875565134913741889252819417146389614690960475203150059517162434221296495833404837007721130016090234021651132172362693495571084950011411872064231039718956266807218730146318277704808013645764846981132701452842485605880390067379321016096062489502367351889569848572634470275187660164263697469540459711703611617749703729016766264822260258739649014669565324925716895756242008812571920982132739332284617070866661501426887184804842575000112153642944333113571723539483318183428437353340536543763054277365071078707338134599829018979052417065902376407209903601705246364766808550623526987596960833251815712962457391888795712381899259389066054327061404680706534095454379439434516689475006748818019046208365033508542090329489741410898033205862488893346454997094932652542838353329090668220876493261162022303076613516168287930860705400491067599695215369447801220864256992672689451149586567842695592469410374925547015324227393668798794644697062797709573735002988179559145261990064806072257958817902252564322446830985030825329086973155798946345640287644835296921707749418064661738387981861839022052008787659203152682251278625655375558974812210901762081730120252913885388854629723919956375870080861294289614417256876699174877854167008405662664218664725463089288338772785289948502778295480232377937645763447446885056587977963942175242862030562165627785213829284048738070654776911497640152676344769829998257123364833072632111144086633084056359327607831302244242282347943060858866251494334686964020190035296864832193392984722898553211681769711005469507026040556216031403399349958851324278987911844094380124575739064852743498596857482854366328965579603620211759071848258512167325987785024093937248431153675312895110452131742816938995422445033347742679681889786624634747053440856993199418440800279510836017423559530839225437373944040754943393849434879816533516465163500569814579153042906153082492261802954300359466387114418663886208129045042314974608123632715047057064502071080393474530827621923810402560678117527539778102025984908305764820503727221493047854752188488186180173526303940135601813947612586357782085116019484350935553536518885725912253343855117666310797396717684724617588447864979822824574279142602401959561878641574272208025874034761818895998269084285417581466272915555754190363896368872349423368407543544074839939447788375291048885035538431313807420444099435643324305049294866590266170317175610693952358121049984656090634436300432778300293542417468624629019117901359222779654226436779738962112455337175421804359696448643626559586355930208966417956613216192074682249503505766443166586702973221399300805675441253570934698069718449916194860446628987703977443059192378682260109947756110279580093502885893085652574517433247176244652558424059942923332806285564384428333819864760508975010081572784404952675899885627253055141029386087297456548901910835797870616056840438168912682375942697377639563149048776739157929444256886959223543948781014568709825851567448845300518249427123660555084627108828953447502335429912140679314286790839056366661176401841112374925741915626589190183572119913138501112476555027592843996129890658942527080870693008969191315926254688891753456145233480415115934147981188520962496132518536832079747272253869434490196225148543931687600060691721593443108757873706870652408887144817398093118677033676527020195337260944296699288309626635164157408702501367430322127846008189239331769942544454641122674505517701572868049756504259222868492958846976741230043195318538179674779588528626349537381458044859211543444312809649648230019353268789788098609704758660146352415412154533926887778262570946819919523332127015010572064277766501338363564354343668090535208452942474802478264641979853214240104520888304832587842419630613658608236573973511884848185092595097567339820287378578091302020229279956309176633419677996070267043343235013743233155901508062886690628321828620968007560008202916746378673531921664743207603168434304006068899239058258310156614680770547507580749778381598504605563709331592410411229676908562982531410881725994356798061262607351962530848082512591583532209610866034264878821662982809522955412415487167086848217024864845241582138555068568435437832032250542336147002080311697799546581087879250989979664743492923377365199944272447945783728684225124134325124018922125031100292155046997817197427769068433156013734253409367851874827521878219708054318316346447133816073392937395709000239566531070526921741653877896919416192088137211649378331348461927448364433213888713291579799006882445822769642029231121836066545092344809601711407916229520858809436262481966716357745924973152980476078978708207176914265358535842695944492535128173171906969552394965727265962837968620053724652299437308009206622327916863804664012247438393122483465082103026152944537362709973613308118598524605444096512101635937931210333158199745883901947511225283928929780011115211994852545771804221294698309870599661484084674969935798529402068291112444548603708749598005920753445568099165376815685460857765951662295483964685926000067873618195180087278604520631016595590638066898417018682576926793080203644090062641952772774774178003468946626044368393657510394644652546649527595942041027798189836208742892317243994544868705212097446686255554372439376885995214719030394236437059485602060847014022782046550683670843945233664423226542077933165220821409469046575795675871890798603665349572843279580177190173086645581950567041576501709860977028815331120113760526138336440687504714318719436080473618473124289389035159760847633930807543770370253044430465338588418748894040635348364832997992207674856374160216790082822453778294759335846719106807484205516882735283024362169711033457768387122009663123849246167208895213867972514472395671611144947147888385299242784095307282537481960237592468196939151216931339530876649510549417357439377841293121933212925275399077211301693516140516112480946548891769441860883298254330348685482577507680491883456768869201922988805567388827211862673343401993698186980982836478974783195601753315304991963240351096592940764142825067303365444228382932930768196063415898188626846527443005830278142729964884655352781584768054489685750998080369271688866670017124749744915150169348340348422380365719231347510508454756187288437805580796862840977928854077868164017926213093166021202187874897627552313292327700670497288889675999744774104266925391711142352170399959797490882034332243334994201245408893834731606260592416881306030013496066031400064239007516797074965248287902211391802347806554473513541984162823009402556026969737907507262863467106617261010437897918777902687661402314954983296044124908478334430942937451111603139149369104360553353333783495109735123766845061013743697383724827524585779545190753065972517655342474255426255810189612359088219052219691943119967691860455537957020679502043877049672119677732550191290101380159904218101598586233668898586577966290903082382815235649621904107599860570448902840007531240324100813717410176692034333252993044085665961628395313783345683825224588245572902095933024841615833868566788251855185002737960416697525614715944704891212920917549466493455204205990555693431301779813278854274747594023882858706564875618374926688430590828507605480273609201787291541658289223464735691407388006188865900448429075912026694812755130410919586281856339044378746363571102295811957129973223577460974269452416943768872894416312765117908289995144543595864756241928286965014371743596587181026907991112668899938449991436456976371627578802049908818120397717883659717577191792649217484911918585505707929910565196728593389254304404629493600048755774209620131654499519342975715427946851076640805558796824368456562046849065801333034949924969084623254787118836358976549191106733184562574139762047910879400472521568624710367499033715932969495247224648453047285972477518228132482243947038993859599282948866922857942713199708995382859447969678713049519032701097417658083555548319796807726677936219559019264615484585859554702919804147987822123367818291018548858899120495606665465402087544015182974988248065402711077094495531852891943415946243489708860980443703720421006609102585207493674313755659579372350973203247297701997220656458891329885140225944594767906856919079624941741853901979225667106058260759867605870355210706064386031021161894431157069137654535833631105559460632154829682791999805489409386106136449689751008673075409659493313694930514681683162871643835415644970330415650515696845419414237016994155498609973805599531704172557440681912513630358564389741094773299121897173584136475045006285937016402642189612081402284049166322517279656732072148044774915572716454628199328549498833440570574959845908976806229419600371606745784941705507267917401839031362166499812316670585594588125391094594244366404717809149183443219624690880647730059836587435932533922744505329736681846881280333015018945615140870537483255784628063053056709450838169961010980263252146896971555854436634949285473777548512408216735192288042868743766731303997033276566189988148244119165325204086271972618097287999362104731945048361785194849621854820574637683682013234210694487854361104099424065664170130916014786780076288734438727747291726693692844619791121545404439106721565109878180215642207264177484918282258680289576635444454683604994816396060873984445718077349509316483715406258792078452035764713517809233349410084422350549804917834347670620309773620490797202244013771772995380139251327662851870627799570223563088651133111692038716899719656525936429869425356333005908476078792272735917356180944595196208122502084339402269353508905145772726296050436573618732125338007394287477434744175815099201628116389322988928240443123533174365566598810888144653595154571610316930948941805395263006232663792889446154796016325959653415141298850391131147864784415457872652324472857626327760733125876320522027270623074845239333955273761935940656969507175870711013534897033269934978272360039565400671277487655696802983510228646636114514793001420163239741212473115817297722790243489359184659085930495416025513020703298065632366397490846757580216777444094456244507462686251998012302294653054693879156917829289366333912101012723261483383915785785022339548195996080193268038533191727897821596196132665553821382590546025533831947007977514421723296505523520357439629847773671359885947120301836235655526634055685878468873763444467538844439881105524110984550788536908488339264975147188442687674843481961787937406818328491270394024654929084566178013025184363788380662924232009172893881813371163977906457556601984152962719986338453305081717409624943615402951056989723426821458042699186099257726310818421762720536909993428905963183419241933470967017443779445371919300943747406258145209986836625827207238669300472557809399727902806081303156558784087779511765494531720030906722021004442334077814038068108195523504667488522783658962186990421434955114225350855812594820553023272857385738561243991878079886667106554102458838809043859517215030964149255722858728739371669976580678849413765665346904365153254955084742901462613542698652114565259873268724106637133550370720739874421940475670374212591283150524921811746366125120743917241355866928391314383506806874255692355513052229530635426770361495923706605684495426991982351725310470785692304856328528201676148158924608124483315782170081001325557300509771979355518991984893830629779010915448905015153768769904792157922546158897614086149626246958804351514213254084710896195361993968879720113386828817704974468236076597124832544523894800027735207312653093879017901875094678550906024134120833113633273883997444593960409148177309496962686088571640061420950961395829189172519728242302197287052846931802500113724469863076641175875065392970291333495300444941433198691004836950711868149454738301559051165347206459428038766550600138806831488381149037237590606596943974836674059977401301530725350749210262487099541127624454809844125233727392564588499905292672217991352488577061061060661486360211896142964302566891067684862185565671110725206800992019928923084233606118962125717192758933715970872442055507084861629260439555755764735219668927181698288204996054633549622324900840720291280482974597545758774493541138312192389421934068017210205704455923949003990990311860064930310089672458688137815859436909353250583256518321198410870732977811674887881592589781587446835666422873742283743068225318630025551861022073811274788136372933716305389005974761546212268759811034733601398218568485195295568182878548102969940633460863584073857241039747088420103478795146068828814328194167457191834009602268301709768192991411153290315765191020033741754674979232498690446437418572098199445875777337874646580921171139380243417594998844657682710256588540977644676828259201489071967639453818432442578999619848916326424423611013134605940583177433987209074943936430763727980496455451142507664161269755052742366953066571589787690582122801215937510245308416825429996703791378665050501518179522479441648458148380263873883224735440225374629495000146864505702353442992315717215698121399051846729238290043260669969414262577539299132395673163165550143311266750517998851030911478362720406113604006012837297617294908348525422704426426568317552358693915142996154388911083582571041125726834089773857706754852415168176396884780151955722853491236444878785512366797965595248075154539573770711113320264822409893840013895195285202544916654054640242252088228619932013604096346760654062347132859426443324245220068439557595041855130841157637507655278581372398389983246160640285105490526271171483897665694147018685353067969547338174376354787691060374965716661171868901404828971871438191992239124635527973253054844876546666303785910536091551629887317234238972042653273369029752285239274146661854727376394319788427965088716060768287467978345855468894667024066042811664195888843998040091505970014262184481368093688959940275119983153248588669366727934160883766405417140360820037556127562398063114821658443600562328317683485174935687645191987689174022615113963488938968508398979786519555127150096717368828662348168766651727987167648044247534588159973045766436395510906630744219890501488454144938570017139588795224506370152733052512314782794088341851577869079869397167013149145070227077231893134591874936996343346516759738515617195032875711157871049822283374138453149989237496447506817659444573160026924707923177835817232293777088124305511801576386708481882845019937010391899485807643851024757665297314054788487353302742982353942797937459032426622449303431389788989055720149309233695324472159438440106279399033841601440476877272739216163549816724553800347130396657274112802763668109781392130729713506868241213856098738580622632104251531612470169721053311806054977217176151056161557783874371102441444000394660153756033973208025535680444933783671911745792650949199158398436452226727308145708887570305087911109410561581423539714578902620786511116266794583804293286424238554778332972890840627035628607067123489363762548356000569819208714741160787224035162295829724454624252780281170887215549446831942440169418449270580839579574148984336056347459543555233354288929260732704641865783910462890997153288522360341650707300349085907124002326439408044234886591316765518324480253916305478172001714962343030890645199432813059054637992889062330528051058590395944230844279499783748937158704162942586409039160477122974621217101861327354508809179066212643944569984287337262355744677162803223231774818227597976966669021932752449292931061670042595489863229853303892252418362373624344250830247006620052145802857664563346887865732235824540790589890028701445280708970705951553904117373480573202913363759696794379384436051246340030866970214827951885408858927869912988225246607217396367511093575888918549059305281460844750936632648773645884248682654771205993176674886437353828616530591189138161860065807490325072921896934869768860843801670710492185135804683049842838386767444235839509122046414070738240528224598972988016938913231543839797326041339342233662151688373218200620834844016387417382106703755767901621659864336611065241447713740335740873303966088950967215578843566848619234066457090784204052356008397411800102411010727584870671011361378800130085411869520441724018045167307612662869521865474840720438572311467699632493884263714821994254952479652636676490805556429922678332171393580952900487649514284251748018238386213368833709043191603674890829266398057478691101583875641971165549714117341718094393515969877408970847388457667958729481343806904311659531875783042915810708185557507312447674152704852564548417737891936137682600719090247987042032829747896365352942135921971616214696217826177817560818566672558769687925535501627450171561837502848446850798350409380135328346625567042215309430359604278748509306331991454110308309844703720893572436955574612930039831532150448352237171438736700669554469579621684793689964046184061380892051156088848248817656699025653859562761402645220483659718594478279318331972633839867540534565426302489310384677698875954038047657001607251958406208127983836908351444017087670267360299584459071975614823852449397581985610505687657356040193963201119772827954999950821169550610812283105519689920793515861649346685190802734366138856898223209718619395850143625641391612779648580323440504607915781040588090903725757911633262402497669901317237247547438102184911381296015586723041283640485778031363408822681611610959853297943127215360702494453429503584232648393828582648499051374559966312992244310656312504589975159366470172612784920631425200683110620281991671577191668171911524844033883029031483934678144692847871644724984450623354266720321279073106366402608990359343328368895403858668326643545370634158322891862585334655253944027771733848856776987870140633043132352379821284106095337293568115791965154650239493127413843500653833452173783414679594819002288335714324229413435898810506723047292413175225902736370982708689250805587384861718367327944971195607585927218274568248311945866453223019171536145236970518639978424578617359349290669260469636222150712837850558341523242712229351192786565379923963425587025496348613889413491015946759559013862587310007242277495520770680829692612284532585241538238709825867813646676793507992100801260150362755841470149667376652055339700049301176465153014225491994352798464911234223800704147200294099133590888945584550101672959745062698930763299404228654542369243614803658159005340319435686796572410976948936772207717306699338742427650127179818306163210884640527047008997542647387714109448882817840119950911881376073253048126742176882373885180163020802082978496924007627004472464567533264668519118676988364981909823293373550882388076470369015194877100249631912592955626651131125169213335235815578674596366383779444213528352659837487398692347484280587026257455123318347406048477774114371738941996063328794672040795368983450711399871915248467011649187228533940136628017462593661691232599852150230266064334045264365090854462415409131505930186273466885005678584792073326938151707695885719267458178419400579907776122628391391745115433823008683001474093934951185671275730249855063575501333301314092582844865399594135704920348117881034484737706065270834633375419330250534113325335450053941339437118878332625650128204061740588946174076936755273793683102126642000496501532509364232347806187919960934611236183908079424549592369626344764528185649906996072468134698914511557949934487179760700895444863431498256955144878563357675981652119641085114060838113204310895001005750015059450995519604615108857358634466932686675171127923165458419572926941902713914799135776138793116239264854933450509909084480757009635761381709293407684114408143744389185658226097281253820117058989733234605741521657984441659694764341072548401089811680236812580645254132214590737599908679325896067123740715195196407223308981894637166752312208346111577401862537282176043195979537426845398321550039855919796435356038829191242536197885878070895829187473243767784248713300204539607358827128475382877631326607736182750310674862914414034756755822212750112528256738885468356769173298061593733564099950625541840095715580095202202455199719631332361407313231877389061487559347640260912722104055782404481015031755295171486462141252772426428669539993744035654820197403462066209154870632909166772687992854324784039683421730020145981194573686630855818554831593138450538454123583734225680124044734732598326612743356839086013252501434834243044103714940635599107812720693528344958956625102085196277574673244138408053417804347276677592862058210558484315576049207658623904922544940035002546748455778464959214018756433965683598219306240012592323603153014202974611932987194379124364184365466438486811931492692548212922299199063660848664278402062178074532542149634469852840448051799913344434232985443871046550374777545407400139486704709694598312240793639579254621502454628030240814108677663215542446817289962333684228933087854851146204038212219928080210592155294593710492455523027524110948942667681290189643415701012669229012777292300002887430918251679691341026711206505948608241363708201066777760486414157302418528604955204866447712957404595510662312109215118617196055934802858002515675727327934766959668528051667982129055353613207996145947365942582166743019395544683998120085515876105871283377140002377481238898590870050207103360281525743183115641848195350294579501129043434871298029360333094176460286714847684711401531207997739775770920886707177873278580785913244418462692630935182886815012865055796712454627380933102896145910673879668979335168960607979728555853895794065102101955699961394500367242513027574221864936712418342109416086806564009492484462399068330027548011933936121318264675824718925115051543650110752624614703749293857378916770763138264994561384928573892276077107445647178048171080953385424250116906769535227234855313939306002785876547237134054818824627012443805271985603773193774766422361190897666384644558974832900727707154912292577443412623471795412608924353427081577313509116103777378200697639816445163598485072937104797019662431222035861430017345179501325497420930932626938282724386269738532652820255944016003420161729594977438947066408140696774255633232677241272952938184538141817469149136719565018669770517348281534982005809442969977852264623961934608407103843404740663749803990204247980146183802492165002068582724240153478136779266154622206617279612719009055545131875824933365163469512706430422110347535323300581556664349205799746964253274634438431629677928417324877967769147359648882582059785171240045551463026730210729141704144496446124700220607958267940447249176523943475780473738692137912524201136391224701867500802828336376315646260190755987527101900764739017203636907906279050445863935925438446776423392551947521521988919049844756585166269133249165392032656607956700365387440703405182848269106927114421862727406298958032883637620557445670230406736247003476013754190523245929871860336514778545641084337029704707873695091746481468145578680994336650896234758905221163922961172731446089907072030896464416130052418948648841491625276954894231398489743701693626334072475334298114758560629671545016803265640392815665344822742427059433184217108246197825633462543778965463372505479571502845023468338002881446906701832313307692035886661816212853554879020555576097927644232802871805800513197149544510773059764482580156554821137942939795843920666392446752045959321341833396790611000834040664462620120863208737477576171093174127981093304865617352814854004765253203546413205976743234755843815665869116114198110151884832220352752434705432413154711321613331751884660806610773595621652515847437635825646190784655460395313331725930246390771574751253416758245229291774419730590825980034394411423710568955182237129637041781184581243736985771301711912843922071428008431511493590911265195461473274900401563886910652893870567029169464597389960210844796328143693076499089487822805739074349669372163669337182152664112003751794801395176263265772435134998134036489153806163626500355364041167304430156337058165749436155389491242064312675012174710865429356158574105238350802879870446755404670984159925303733444970209816439345260556870973397228857533316824923531017068937119726894327925310824154913808818167747047442598369304619784195351298562920969313372144817312091538815699668547870829876291037674248014894724689442757813294058874937027363728542284829191552690968084832460383317934271997857398333336020038864505851794902262936283446931091858880302888221699065225956054278403077533734491660850606941099841581648977221976368482693745238296798088279234752772149855087654232233358269014182943297960391061234126372404516856320204542303549024746467085362856140551295129667906367917391171402716895065031412703852074671322676728917309510492934904975628673519860639183582642192142075693415079072998839766287360402120776248774905367327932246860973865888480709303205785122475404829082489951728994328693158083914840704045709031953081691187046197352876960652152077005479871442728084073912720411845290660538070609689548827441079756609393876476983330181493640272479689557977865013060786203121023362496003740232498901124409496061761580888661231020544090043785718531815940622705016403363363381335802947371286365259319411533877798449997322595821200357792446650550242295735585308769058998670325767196758037286829188325567994641065797643159826217546195479841768261759774886521081116315670921860410541845878323909940384410448300419481397083005821572892372317138214978344716528939006169404975920148667473111519752016933454005340766989815228543094908260867497828790937797833236649961118232033941393277616719595982020878158510938845695576795084814584010241830357961005962564160240668710817904848200440376117159868336157097738124382276229538372910304163606973269380283875894876379781929306128394091690710689565007573961949512805808983744761312302954680454375175578454485383112173334753308442629014562866315631506277729847355817678771312048600761273371127616652936680550665535505170116122849894777544105203282755918282854421819648370036372306311678291098458587547885169687415873234116808445839385722285149687064475812616345969844426364370872936077794776125497773077777011407425654783824489539567973203010923330844178855384255648087601414501063279363299659860534354640368354696506139172095408592619523493570573188318905686202468594391772455935760877610013651183248465078780913463356309455434401839320034758379479651471047241687346255514989625968726926456044177124519704372113434086522333869185999172721291037803058333911039391240504296859616783654801935684413344833448442553035415994865977305429977920499041232488137329912249144441409707989645991288297706856987449228141450699247534088524609535974426470217628152509325079560221607437520623326517542793327343719823550320338512740307077126643078561998235049524604829532200360392957197307038359213192672934129672049647039648615672139786824797278302231383041654702142888791120240664580354980696660344228711203708928872324632084201607966164707199905041597008861495378355309888151203066235441338684572929953593953505227752598599218781985773543511583402151273380767726358101194757519026407695240859494060780322011697838395530092124346438545948489435365522986855358625823431582681315081372552390392473947156935572509767520711833537961871166334351781025644233130140776132580891330625069124940352228194015728221180442910573537336953799407929461343067433839413374228833578332441933371232969479142013078783980675225483923319838911334188367328486042619383886639605984689419098755175938537978394732252590715592875397820772347669281135371187072012190504948244140469205688259472924762226670227004494412894426596589091910536271038064066080269008863884187578719514352452340158504827948522525143580045034413394901960251152586817869067016983562291131465981207972855055468340718186422954252431863197315252256602022533288275241170621599581047332682617401439359046356186287813078113456579120508113636077632377121029736966373615878879594241816001206869051507968669279542530281438077285300017790900988946959118249177650923303517185757359826108339817514969223060365640217266491107244763806580650913506019086043656064949227257344101138086110163282332151305623222797376747507888230785392590034431574253832517865666597960528666394106891618567530752869873140522881645316454908227457874147016419231317931691820873410877197257627733766557967246253053167253403540894996522733447189901628985908612728950305316210161911044663188662317786293792259985257021835442936560240766150308958980729932299429780732207266471995377656023638354021296990511287955325161821815019676649736178583030523211499228876993709728675997816365488223797829904667069376941446029795910255647584704578214241407319221909420793513586809793749155464900455442623060375103844594973326773377138708303875549248170710226786185638175370091887222714065859916511183152354345855136141844922754631624781020200568739640909185553545150459185990535740620383929686115048104175116200927038551537688698253444888724054165613415345768827502323385913197303859318947735368028650271007244320751761743920962764673538385101478340440248438315023440763073219288307842946626188111992913337299699140059337758234363626152872945186540441773581244472333916558906970783670249884089864864561780256979274353319951857180842903881685214862109382360899568993451488808915517925741010641438863728125716635818664344328120260102632297135961107530408948236354207947005679956918984035757921675531783190751102295133074869889821652373679748015238932316994367465103782849554259536460866016705014413012294724508004441655899158292821268842108662980020065259307726291494992273390503185123981663752966063952406674948530770876120448774088853719277273410609538782700109027145531323495631946334902362371167258666486275708796203558662024074765883942523965399818612583408104265042046198101553821126093575760811974157450379970339469712151226925371299789203869002262666645048947252412894807759516414993384816161046790008228746064762331970703577896646734066713851592059474729362643208307952309556885295877695472525089069421930220391312888466023663014769588275578053218347807497770309841251772996486282042374614399561594380108349276377581622005925893060060081020964637202312978546317278181000800219212172922751786865136311891570648538112758401126741617068032466032590848148358454918847367560348566092178970236859025120782325574562147086388180606185375249297268309187237555335210261013870083283728750956372701209987801466408962845887395273992117844204666750493066323632767558262800133580271133609717643234559502113127404011564382469267575075155152006285095975562833344010325161977785779769619137410372968663353636223048687465770973553889545086677255140665722143440832170271418058764965401270184190945674437430126638491460164612894782808739402300603972502704143507046456119691946357698116472394917399432822181044027462315735839314421622430210909305935946720912491585612359106566333291647519422310840124834324352359282258400475949920811407433940766506463437546406352812062841934034243916398344010712300757122140911059207362438666326979817291860206978893369791610125210975807883524635310250674501400477171200890481605891233859227169400724934245925188009170528656719066810080506949022763087251093762119008963843343020604126544452974618074980929912671267256716451095852627337954626338445791341081523237192613835252152797271064188439775549728180152378718074074972609249632524499202935649348872866076803864452871903767986212012691439028259153997079799699622826794241343101235471439247231936438860694066975414903968800397114815660962622977202888079725265610862537291277517910365687602211673308261902217056232509384112253102155836344163109396457991609608567246002678117245035909403346595977006537373656959127887864599219802766813945970710558467347135383044726254899638615381477794420138289102289299301459029809587488404955881452586216999017979890166023879120774467449282000516592198098854020176118150068481087951291792102720000927521933823336939988174880093723313480077764022479122643189862280574812168659956429902591757345941260156114602753274801636222821764924316687831646435383242150048435741795872891196538341393448429306442468003887532008244698732337970271479634339007844377617158811236177518547534110113498156761559849006695473263874848250443452104981859388942555150076833829258810297984954431721130188691879939832927181886144717961802820329866311869756689934690518799049982251648063236708649586017423141016348259484916970290119800967043602964786485013515820891624495517607318783950526457275531396785970080921583746699972085254132926765980671549182083210279237301344015500144291717662020756723258480427450755271154629723690432528126177171275745410166184769337462318829826994243377995314191617417424700531271845347014846059060670976002895926376211400962224392949944324613739973360187026101193786087480397980878868716897685225466077094318513517036623597018368445710007852499257925857951827271942944903897316870666921013539309150480355514638875238567592844831360651923777300201260199209801335457442036483361835321880242834439627340452213794026126918187669752310869247633988760603011285178434101707603657186938081136434510181771655371811449124968545736126854441380761301796944890427580623444395101628491662044983234047175899833809769448514339814837716830496998627967065698498343745513699683687560281773188321379472317844764669292399593755564066656187047192555972216315020281603651998210015327065707178962268985033513228312769095948760966403500198589474596278799927135824685034867422502596468090722001124243742829620024677782018679903977444697506965949087292999172884260808290493451015253982195305053448276886657336764913173165157249939982590090952720731770692390391440563395701680169835690161043416005538792867727717450673974707976405581767565382883378612270248099766533917136788877918830833343132318953523847515356911044118489593253624510446599679335361111812891506470284798999684507048453170861041445932621857169687950766057975399586489828186261369993890968845849587525348231835664480940131814954275499600916053689812761772265100241383850908153213926069214145658381688126653635467936573454290678021501790022195269539522739054591115176430935289421567317563119337666599754536591905427750840882557448361537218242486054198720522103898351308669490668338483280882835247413894422216686995031873705755925996086323017396840507266108587931465579748668748703307474555615159711684883133140865747163825733233038122949634325565382937099305634832037649037829583239897554621642616876399046074664822539251045631837079997388195611899154497690360988469539132680463644477341185271796328035078312516189262919258128119895531132963664263701050966824623628978686852176261098548595275281769800103187267748138487402910794427422312945181950487797664192456526504814700490559603248241717180845498321902903487005023301323887400351914420315966883373295688640988942500672674069531148715762316278206532759734608087172923251687126514107928424764905662786558321028910629481778038247370330742828121560635038759232833659060311749857284606237852750330955074069910251017072556204074748252875396207633617444558707460586158021400537776131590756732837181891638726883139830372787512467866804932732851421042346658615952668280446231479845990108007580678354394890931157591025171058068721465595338852887409007826054744438643692825551385158925009138609055008116088730620528330557388475629584451579032823697279391378217575102690309412088608627730065689198288703626626899115245577038945327503298322331314511595550872760066222991645088479560184485483787650394404084982201197622117842738890648006655245264127471400726470749740408873039481919610328814281926603307668850131266809306669739535021726482455027226251957383251528387052456227421501348199743430034587226112212188935103062618978550386576203158850996046824312492529596383044271261914476131862483059059784840678096250348821546874536088683488799845077442953898079971331650988918387343864004036678915550983418571156124878313451172465465358041924719596138559400357648335767298157368705388541829545931206565839821687222135454567228524009976683728531480157862111192320126336490314684782863748597379592305636313055185003421299037601868978798494461218778691637042320199714288919854748087140872446542515561049744530268295862971609860238040800588807876831273659693969634552264609691542388372891509009504928734688387376391979622897184307025210842375992216407531854663013870278959477516561459444061950107394681026311189407031742756497446286721150882149088304162870813750423659205178534276299734353142007955944975663029349336897614036748419893420694936382896532361910815011836726033520176999977740614153449836907938688829583194617236737097129960174621612083868861922430598821555740701104346582652747248536537264623687962032200114960059226149328013890660360381744154514338496043194569881675427656770899725389292272610022600828048522261438476688242657386445003181549483296197308168233390020347970888296344517192934310717435277783272633391463456439429941055886023803451980107920837766015489425902668986192815556402877747073922351331605354002029487913967950481844091681076577044157775196100508521282951994867745375879922049981554368304276162978804955822499641295425747091423652602591575218497740811608838955936733361624408094342677859495640612274290992516034221412044900850484177529849976736110196123573075083118552866093193214502811018551106505157876337469250762167020598466112317293670590710717188084449979943795732621382386945038402463340080524458364595919831504946195241371095735421866706015164465792242580519500304080197650226341546777704871737798856325943145633852300016235944205867880534603490305246364863437962179275024584931393066053244717645124727314399212938560092649822276102623640669435790206258100004665981179765124355956304484346186246260114731184238909067777600589322921306302742238528024587890611036119676206129852132912919720061261433101449424754318757313952030593864625141541616658490478888018724727739241269776538110556502787875042172033427371019857789727450280984772150067492735636263009327658796201774352390842064773095426992486101995982628952460531562124000480463749543298198083657469266659444124328396640966657991692624994501361998533048525579156089786911570263766611179154363763866997818619753146366814836606566237859284199606271949595393350532638565682791841521320099031661596306122935305941233502682552144549118008154986277053468202201881742683804537039904018048794720669350631519709110206454646733834425183379706505504678994725192280869834758988641633702708819602415644914965870281077130391816799191216066695140824021647786561301608394666669935361207388642789586626332637581820471391575136394867515359089476998142404042299051562733262676156924393817913732565189583601661311039457525155036157875553583343018972474900793330002982803221580712665193063650594869691452075279241675671951477428379730983761564897208161531051249296261511716795065567704786920053935562090360416810174946339337572807767885801682482640015618225368022121849861580533147087736741495899292883365879449552074071299897283256498641144357170442862284530178919493757901179791733982783826559693005712499669281798877491815764078767457272815148900697762119656473909476767101932186039835670842441797922215020754443523254367632626830257338293951168465387638745542985564609925120004483663049866287233438146871398557849223190225243504379082410629549269399380462541905077769684106989526921028384844346939394643018143370133062600616824540087451553413937369022959382297952125076200641951766283814796100160204218712249940172178954950447498034964634027458081333843120803225443634827149410150252524036143510003335143580911571564430139023334514701323433713760669137560919703284475561035862219248060856585497573403854727791509988098761237111701854751219007090577667555053452197115978656416388973758958944908214872252272082130216716406331966036542163636745438460377070448304039294676995104358883257489886688059384342829340442796438161662553558806972415420237593590850654002608085122450475171618499719470769957277240076485225782761048783224066899571361469396847430431775340477024051414432589931306660871747021561863638357285809028018754419100248329110274292494609715757250684963498858957479209646179802604099072824595447468985666928099563257015514147148132483878960537331580730142150016932737734040658514784710975322760052536303070828688255935160244152592489514147581101046699331593236327647669235931627382456437771327777587632272674973605740742954636434526766032779121284030427764316107148185762570912911884628017654237773274585035341562382120851499471607476883643089399026587445931392712938136512164046721869791289941419649829070875286269013304769767975240803992678439422442842765321617143443195246029171890237391010471633584967795166215845249547422213918208598960863011369679922259092784260396321604570732013884618480954360091184401512343488357159701899002566941685258164767166069918997333060923853844726743747196182913624968462957277484834803330263144395210169342476881633744776501772732250198034557374679971667716261581036055620241526509511716868052721984909272382125946934177220429688350039144342848346733951356094601629041340712199938277985675706115684435513634904475949681917579169077069789735986089889364748793351561340164894666372869135728058862559976233080483701269802964505988591375899332115526034574562978025812905941555889411633631502793638557392137682965702884997676508031363607855781829914057092092026444133276200762421799585468663759827808256669797012605366049849911701091350603426862812910840335403027690833703237959280520253443486160038909760292947363439618786779716778164451259196090993144638027015911118668064511044890429646625647089014500264586176324771746354482564895610011173288491885685091352138402337765650249984397197759809992343402513355556200436416616933875762711802303831072752698803497139075450408352547500103478868827845158363665256870019513326129490777504358015803169931533721989866833163320157572479302355125140045840728314830787788787238447609063621636650754772200646747777476716262939865593712554862833863394095437023384157367262488115524407113128411757950875990629162610961476993961135391634370621044082051220374951783448714889441254587326631829141493573884043133950520974927638119277434866238227852830454848490070874571443756692139672260479685041955506917935503243364048907339058070595086208029916787760979319261643096739136992606421952523760198934191477597157788947843629295834059711594572432404217900198709141493323843118604454135076159871499033662998737488943599169569379775368485888076482487590630408195282071433004784503059690220068946140763803367696831428636275757781612639488613048777544949119872525113955437036385697855027242348962981575300058282949359575820969307424796431386870603228277795791996298341495210415271720360235114414301717860164623085751275478351694491044530341523258751051216997198558949105504586738101852227354838990872585596982775467531308358728159538033449089088245232379458362392131610049136293866675995382412764127366798483112241924040653322110098010239934992819068721730497628513084159080531078488825804722090997166068786670242423910958791648601382308848940756940551417859022397420650310525813700451468236733720079353743404174704118034696784341533162391008231001857483175892845150282538314159764702082629041324242074620538332708471709845388311611823137332636495678633656046037396330623900584530886731396737835266595085507601186766568306956566366859397796590170042308342267398701612571636227843825293689136814409110958834482581248807489524850737151322243327082241257935968571311156576464818173123985472936024267222894662609745532883167745074697372358455364542940050078282201043162616517162215664467616519984336485704686199331227931450503104251029025384593889148540029878107123029860197965521958335663753873043798246913760683148621663652101097602701424842795034683699132622751462752274986011990214463782057838827581455758482254512752906454598336551948714399193361494858095138109286666012232628700308998733830484545701147336869088217565459470083761704555668993298060426974426317432601100326321878982158188011787010471844042092973589216365863975295389139123592484893399262960766351758748890671858120362123808022334744768799903764933492201446166213195073122646532940379648163652568538286628118005803804193452505065150213078305732678070705263268608597596593429607783262379738485027463436350811065033689201219310443573146152002448562932831691934220040282620415800778647775337666022722934088801393832331963160044223949900421187768388317074001366742332397239190518905538262910917154795860644061110426106899079904469391905902921000858667974146625321530418501622888262798010182321535772324848692640839718845482124462272171320437288842149665400508096501281192526175070418643528668074768660859714627016835411079058157395819370951772102726304995983344919728813866119352136182988871867334832052468400126978529407696671420441760857631540605524754185442434259658702753332051908101136981111958359290305721020132088904994939134372647411593958569328075019257951470924089896153830490710826481685767803626882899224561779416868719361775643576777828914419781349639620987432986065777051726932048084433469239051171941536752268036200870410528677274355653743309717583792172714024831939415889858827466121460877340070791569063134039323812740605395697491869353208909492963927047573247386344916097059844588644955944930087846335626887868595031095550844035365969868418063433125409372440306242422672097454799334545928042392642777140282230293084409893902490105256650257029723777153249779198619632284839764103090005707579587634793429091204054169632501711011849714050103525421344437613916612858841379721155626012312242169099331905579136906570420590375537607347201497862828552026604409394485200078912384386861388000350692622804635384790335888538308549597625040144599013948545067755954696800673080315762136893837695486489454869079380961111721113227239269383974480629066198945006035690864228302728106626464488610756587626959335077067185739552096159491336489904253954271711463861427516412186209117528194495761301744366783320473201957516830290143582860644291059411858378575120532202135312147920917181231898402520270842338181485948600242359331318245354817249685648547715919784922262668796160265994123319711221024336886269850568347697828399968419080927399496337076904366453703383285434771560461898138149762397981117770232470518196385270556566001025754463488000253557019483070228118856036085669624509933014989628150307488748976464481270743194004824509050479682669497003239408916221666074482792426328702077522939541956561727015087205155011428204976762892052881979459187614508460803259306755320706262320100010145453607050201353905273399236620985992102974403133023508997462774425108880640833720051027587417460822948527705541082081358240971123371353098393385195125983932652194114711397170314810504508294533722371636976552653430646380746982220663984977407746455941613540538808961054073321149852250137036849083782416570131258303076265627900814821984732663369615889742773043377919495492883646699686330480854857390856813101119280822153468153769994080727488537348343439635545719151106886096762887785398914328115354557347883177138627435155119702249778654663396510885526618910550818499105736438105189643144453707137619210970142594095247833246467587557299643041451328550583953439612826047720343888711015291268545349799086819970597417976444518965636612921716858819832326911619106596129779893812907104772501340342304469911511090215281895126423252827854110056374549311384005442854821847376029004043699670498193227390572704819267166564756683955311730792825703377463174815909894698610241012549274969063802741499121519610997645050004181283556435990635876709716820373364008630513643216457957798488205923992511825036941462359771116530087861028713248632364435488602203915726386924421590808674306477982799629277978127132274169639433075706747216138259839680445272813469453638060578834115520529549850608380233934780938938407949678531112029536496042775147214889001950752315494941418566370112191143679020749079528949845741758502597478549859231993110648139681523216061344755825295875493747970288801954427034614056957266387548248980943717738196129814314629360492103292975795669905283381093575403813982743998101017105349225608701111508180473584270595626105445046874231627205369829050465434282316757609642325548893972002928541541866235141935108637970007980598986980864980534628935651789268096854285608173975107284507575509725921024471019250075065069046079189341609118112656433390652637677714223971405976797640517139860137630438373452266556650697066263970570069269990432805246660725684093589317168190527781106119022972074863394912344635966006505505667985322789122522671102017873066037975537588976736684429331214452194353243694413333247345551752426910770322862217863589059020195365662581203418818439150548644282757356030678356583130134865577965674080609238119046990334955069541991630761603710088261237665475906420452093712117939682618117245160441572138140500900879159086872782791036537440556983439412528129269294329298968706242313975285920371736285080468553497846479437372939823615292387846977465520443283400501136923786233229014772823646533641792168284050078436533980491864510936161566894030119576158634721105511522026107381057184136671866841054079410076373641339255623783210949920833349115083942229275396544737659890397574470062679447297241901329308365565205640444310602779678156852810969950651301022876999112976815958338789391767018031245979579210827948165363345227473595100467471889897541070543606709859605381901777645726323033026835059866955429725213672687911097142852204811373286749391561422812399864684616816793058315307392492023596565420607392740741236652657887791854867200700650591028205807280536101164687619255277406513008842309194172622816026223817050494097469113316310390809257741144609492310826972235845741132794516383212890096391930996720324440648360814387094478003294076276087530598478304954871732450759960558509341797238760094511231629673785160290602783592906962023534086831294363281815906780765032423978406765310468099517811011381831140465839031192772470407981367734385192950885056135701203860174610161169053295021932811382942856524304809976578345581254515327768024976562575327066698518962945809363423893892619052278653088139513103665379093945605921653239426769118926049870245180353755411622574325781833221776756212289588558911535326058128211880005559521417477784246998181868073870588467706967711089443269007121015299920251031550078945354915960263188644206878768448804171808254946301339313487896192243735805766828314420989966306867972827722009794168957631731634413282706099680044140222351452459430774320139890224221388578613718864321942199827053106659170098112655547256146018190469666336529309447037310752154217612709601411644086186215297111697961420220170583759929584309053333488537811560565250745118747516641807448502175181260577438990862251188612231329916092588663368010284124182442378242086438950730708820196361647868404751591672679605605548652258843399644114674302303269451715123089199907575628786816576298400788265330380724877282226217681608134353073958380186584385695752167314269377170207703024081207521236481587829752510208804756481102979407305846312762521395690602911811527554379142313597354019053624526053479842706821466741095615432314377144399531816786121283656424746508315813810351405822399161425226848010248258412732432990313323703638155516365029690388715831716189245124898684259702789553258907811544490565158149716243947116480925976495946091703419102027190790263782264783662524392786067971131742979410009099101138782482974596667870691767431489593577488168735688701215871771904385088140414006211397421172979812412755450897112304077262456629184650116099263140914301700832768103730395711636779711528765041348041072757361514815042082747660387852175477474209390412583067310684920199680375817133424993558764252369451454701494569539989135352546332706237403495598705338093925288333262846609531506349504672322535978755877301029112623112654414104678180967642207510656599703496521991389772419383691335988457717273521302679925517753819731989218768712143662399608592866907083361546298757518135765828579066135507475110716785853213007383014755759729887509144207608975869810805041163818350151591560679507420748572015883657273843203915649776380882829593408968057381020934874707718314631928853761240484416168245453958299346441118478944626216197770140318540567350974863558221290231474013464931574911638345860683238871677791884824893534163376468354701129316447648013495097258929897467018238136070701621451809373535377545657465112584486998887744970636761841538540597465092718578842096761032531366410795111802818163828090683234586590854257884573234578965288845701335948816054628926119803460287930650451140099152232954622575399653504325256380235893790997949896751022397070857571158417864607334248591157890007494526387782807001030756838874477808912744567170220558792970501382217271031364908925868207729912569066160246635793357273545843971893413372683866566949149276226944006873675852977326609970332873401500697002469736340474051673234427179925536714516388641361311239034693160877279282062462643512182314339541561659384719462511045109953456226488710081669990807104022547115406773102679046466439661049404980444259574813163506143994478843537729961537307140378870919038415222985887136350927623377686990679531078998083611164142899523763580409764270582106931686602006002224026206185406368149150395188556968942693395615853253886655785445292254178219587648567273462145143101163320828446023473529977542178008131172320137069982350596213021478127190618074582959211481699757151358989356171184424260756711783534603883544121950836887201463464336310747599992993376249779073332273614219946071359306929619780965483996468995850648689951558004715008731904215604077305372930835656727106416148277016515882538123682746219148469585503914303032650771376468870282077421835893877796529648231477860482480774838560686442263253115857231036560391920826137722299909164890555154418900721942257336267209227050352058680134547582271052892375536273700193814625248193292065298740862865821126648380168010800407442203434298931218879080225821650570356895962921402173260274869295200567089084833178454243145883814235246025118998545418253676196401718038570685857668300805122668086713138318216393449556194968135192885869253350178872429504232418614160105346153017961744064940592350132384246431208651744124538747734195227880016697286180245040468665717523092607269950127823871862698950028680210749119477299799215199878068319424983996374056819003069305679332144339605243131245732836001127515125546954653532534597371361243199583316881493756151628201725226803333028523779812163116360728545419413244473588924768973433707083918127749706297875815364304255224795079205469738994185196360320036925551638202975315552917687594781917416792640478784160217354459931421060213371274674035154863033266397274246787024336065351954435743053022672999677915016302757860077755254381750767916808245840237606552078140490923953052645671563214875918248976406124248075663691274529544753625738243134733863659061529545834190332167111968451823281889262657651017066346641485357695819336995594660469748070877337986134959083125142592964025632569598696070220255242674789142085855416178971962504258622859552727764584933954677512429142307780255467110139078561723130493240085840738919030538446775855140355998727416288951742198102831613744993708415639256832387933913239747994797804172290897458739512641724494443228561383498527607899432563158015773082895955565760201841221535072198382034452168485001633578708021306814063653321936910231924000285155719504061831726500229358931316066212788157337933120996268056709819157551155732918851649073242030376115931367948990382559258988743227545615343090942869024026949852707633623311113695111800206328671618588099860487952281330104665611844874614217530935157132748436534670996066060155696438838244801178216673311834809015256256288995009420953964325103771431515978729141872137032110642728058950464132118575609211248155955022125285625185868798805937474370302760710275377686280606116946422752621763859747351883157301929463568930772206518198545005034394137883569950236503391289662389223439142999458169588964890632738754953129356725590829013503310965765713693631203615503918264094893164789936022822367262368759030696222991108445246689770302201323006230146710882378415500676761244530996871888811978844508365875670060793322416293091622266091678401613630927460198930988366495246217763623413189975260248410641709284729561066302544263709650206946518009495916382716938426752871149904373575756008061168271505832656104619945688064912980298953366258525709261568786977810141325051690897153031307223586349537289172331913745868674504618121694799950490042394049424091484095653122089413366488766388219551366588372389204335260415587464903757778061577809567895657115635460728879729810541312477788724912951461250946994514283654098802241282818114986355138714330514499880795589560152338434004938771010461000066252609074401919786960945817658444104202929376648617318307774404060177223387897896200423901067150479722401407832956382047380874479137803492250540896321843609825953011574000805048212920502637413427574759747521895753239246923309351826609203211359252622648517184962980986286973559989094365050997838823905307241829223309811614099211664173839778764288554090113570862986365728034914165798254372424133875803708081282917926453644647126617187599749060376855982187379129393491434079418071567509246295630968589145932544713777726340463144694730684799349615977706668693682555861973995665419877243719922306974049873443883917231703820261531106154285175969377545606957997704915480455595395192466989413021412728695488283743474132649465316446452166206896694234420962623508553744394211773212290904031765678401856558558420211725931394447752585909358851443754753170572114145709306991962998930995197673991646885244282751955473708280074490677252429354243521033170153603196620529446489963904766352296537235796478598293436531957631376054734429125495552465635543264114457095041146383333786087078581861370344544164937763916283107682559248345160944348440204965246773604911151885997841851271980816136588027866304195832650986372039921067001055975053324823789210613214851698954141906436301982618513927534776386828684851367560747040600122021114354996355868815374349510983826634199160492433377919288493759427718771635447683827483051905493769859842190387896370901647203807806042657032289506441386264338455941854446569903454070594275088998969126750288476591606040052656393098287525397742076260440748899086431064721307366576435122214836516116373744131958399440385133642217759065550813234202888339346719874027032956010648126319198500712551151859172742236158383817881743275012327279995265168647603057126237278637196394745064733063958497020355616997802026581414801140224072147390862412193907730258650763851320955949351156351494052659448408334095455265513026698015575955479239013581899072597388099943214028517643037255030976423443584951024306759615452897410495925725888974172770447493996702789399733960743953416006541714272545139991705165921104355856881030397251769624128850890779998064220964383809369780999816571280572502263885245950092864419554009355088221120008282627496408201912473797264154218028000465765370858209592890907690235701457513504752730479386251801756704111390000355321677910810787384273176188179356628398644015855451316688188195046178430513793525423380748246732787165673489424121648432390119213804087306489065819853724954129545368853858643485918848804076724547243090059286743757379807302050650235347631047812189428733609590584183212561114302096275148855669818198948461209775395846673679029424425226700075083914349643096906645394265874811518084263497758423939296625520728930332364180306214457498496677008619016209396365955456493406719312525822941446226773433063579985457861496119594327057514940033037078330127994175878419450332531840102380229787536734931741962174025924179733926878290963742473098270300539055370055829189574108180021473126703246986830583448097762244686058043754323880753981677498781513797333068298350805515728332109435188878252034626225753034182456079327010438534045795691365067874100689526052208899570647733406416242907820406495170073651128122651340218978346970874368706902475692547846845007744636961300865534025209385566104848070961417357138255775539877236373951992869853294168410087383226354969263679514945616014603365405050085507215798964052871605787426654700714221599116406284337691232584113965876942278793064179273578389512688536814949604788405943676630044651556872462267637158944811433080849204799554508611177906699186804634782748594917348880963064631867025598818698679717695880011367738818000392754579475715367502303379675552409728397849323692725955972033340564346345122533704265586412506243472614346347285405599574685925203403562019614120028471500919620170598536460608749340958654538580138209509876458729691922269180999331114495844905893899976902165438442052347055299519740099181660396136766646197675603439453819668398047126450597770155460310139855945068609753802175012621521537216950297525876003106834427641967881410531929343563848169069991315241295914026334176028382923013432995265184118116608224977186838713712203675957441618621555787097314474804021821346793353964247129167092000383909997429570063456472878966130541586197691533997575802011625931102947350913658901014127979281901082961017416740603924208546745953584556313299721539168331614985202144037825010769089709662051160234240379812751003591957731405984839822771984868404290363299502093558595938823878202877147587357093670951206686926963617170123417617747588187408994811357316877508776551124737272798523674577196708775905935577219912761899054743733911057615398195701592803595399209685470879521246769839481451080433114108973157637855880492912823400871879609395983659654377931079153071233377942306611577338111835856953293424817216718597224869033645044094013168873959127517017096174962186117657154428542138146010708129829617286593277738126317088292267770169250843629508142585897032752025738035879838655815326821909801859064097771665617353072583533672374071575582109787224117663347532176146371013214581555186934522227380331242746345171017323181097324178906762992636497168536736295380509127070983262853632582103540417004237070346362724714912652522994114238845186612582278447312375946823760563322871228177437831652812367922694159217907734238539730329044160819476681604207501370082376800607695022353490001825202669423513914582818848150786654354877529008206773862136592379316180867159013747482377546292319631715201325175823610921707718940428067345176157437931687065503122257417327901207685916870313627839865685438164722297450620981036976067928339754360030136633637199434413658072694082446206710507965833198538315342856929612881099192056862859502544874541740428909475671674653540074434868668340874087751791401746218775402566679060943791527751926920270753050619306945025048110689872160998784870673852233234387949671269011758921732823723701007696754295377773353990209808768888812595458346175465728259118869987328648442738322944805164884076329473228970356722506947187538804871096390040184247990278634471385437655940185994122112399448934371124336711873199062836618328784584134837858166949415384632676361091709705230286866084627603871369442807356415454769317406567981664117221329920888365445619448861729967678796204727609584524136327531361330363686404328790789681606655635910835712576331795815816771255691898521356381549424767046981032121763542939042428896400949650064459255063435099404497513999593357767271443404261674195939303234329974775841128281527163726113314916424256077606024452139166288757802926456659674737688884109196834020987171444602765932786466863471221345306718274208675206629651226455758695188143938418698640555195692696715694630768855558885206276154785448107123182940903870286144437016211560952628201717416713039935746268918536922038409488163055924766090712305053748567726293693858622145152332655288307326482353497313575150085902059589997896218718490968679823268546305459136008591392292816513267070437432120904760391874702550857077044582046587866361362806609360125465642238514958911622341544712665152654174979977345446705050874691544561247471480035258691900905034198560934482020381760504376131745852571977053284365932828249861078962287478928391889852989324007550458102852135097424165588014158385264029226425930617566149181736515203529837589373996205578791518928093681591384373490554542091187598917778817452067362515803912862642712937617586842323988467256754739762679558815379403981548121853190248448084985905695393925429523661316636371492219321350998738917607725232060993233126495965425690464311143752710043719300728412328061859920765275805344357108377648390069864929949119671840628064523968869198817243059674504413180261209143951953698777634115778302843010889047724374849045313767108082819778646718969234717144335108238419747422625648036006814511306232499794661944927213365269621140085849798637072291956076880876259553517323351885109237033525491515191929440539964816863071956391230471490842679115589552470928367847933498135570240664434628580709579197879499378315700109246473538401403307768876845264695976943320867515708081897263211721631019734999596477465557022809206270876821626560307250293667016510212259281695276924477888855792461458373326771143408759029491893289710792614317740283579770005335922617317808747282920655836396101559396636154728322738849392915426017406206014087839157749288245884267334514037105706297119471390707278373767698476393659552286813443390285160039912252133308031365047617184846723258603866318704663060677910582439269150376133860622487434260625436777905293477732792122544743100422783329370119367031790761341042947049956723665399405099937882256032058670863723223779168315951937530584518777010563019062880746713076845355736374536891442524266237547016545714247431458511395644209929084452038890562789826091814608999850287930455125264511766288732882304097555776542474668661710372046760190533640616468261122699958814178121590490813116230906215114017323541642313250919861530963011332710522177297633956634577412187720244381775824603274890205375742842773250775682950756075323306942055318712362689246650005242092023974492549931419900886337351408044766405310401451239714912415794652417284005291302263937004196672248441280211035069987395354653424230939043138580173105816803343478552603080186089100003715124334248713716027928283590519573024275698038318716505962717280027137512426211148652325304728127194049981064192542897301277881637134814732678086291028167874044653723433925357383907623326189256502488462553872411448195277274368758852890850288445374654291717279598594626553915111215382293901170665786824376059999325787916116921006153763879458223643743314891844418875516587145520678438240634603157124287721408271238535074714470806831784538909224416322458636785726154443691894937011214996865035015002620322185249995048684868920505626983046982403248027348424724618597271444078475019802531958650242049224102017644078821744074666526559800262128613546201033451358488251670805432063307647262526911032185289710073595973239969984937681468937558825164746687920733819581003723737562309076458962370274875298663422780831554212008548578343182232738686977199033069459844394890711133571195429860039092025132839837641758842072849014907048371117475401374609803826225595272082559969045599246066788763323423271824944720054770537922366001090218796515530244383679026815972020192511340744755658110230208512283471127652685695647942121572207140401256058126373015714714505684692902316912505660605109077726462220663238514685590813926998662186542331412947964833882871434195487318345224953931740333677776049868370409483252125776495671524552077658787703135327242761196533925762341060755994005443290515479054215775612798694280325991375205066538377236862795160506202178284428991128371662989950240898386359451535563066528886288767203976702977296847348534705730210913759885579742396105911138829301737818358590358785583810803399712642856712372018826409243114853455587798831966520321884933943560881882899760580284791598339213478606917127730055898723841817728174002792403175022272015181833882165266143855590424574589009540100622671166221260678493941353854295995810578792267385803508148444333386668606375892737256616706647755741831506852232088501819381401326045969381061001492457865190230173915386074114845084573802122119073604195043358986972141969874560838560558476038094303467273461858798430503123583695918614516730765255824568129464785134696706303105138513400414178944851853619113543789525302948130876197091205543077669517609536027914257799650784532198098779331219707705966175917452263920109084736303553923088478302656235218852919880952346741792646753519607023130776103578017118288252341931681622109945952855042494284109846546653710244852845803935822781029989353105773301339389145573011030977999936934473012776085557953061170898617963753261381028558047712226606962860574118047114572414065213137714165243538954090749143854582411773824481150443138979983851664040230879547266587503262664406511530106619337395087324058269656382716251041807111294138892920226910780312052538718915032157369970775084346893589918668006760742128257375074106656437609478593178677832051200897482171921881738273619550995238032256967476474100126986699182158713676797546795867709703646986359297624186555223268314608642745912318111765228789629287545221150032979195367472227522056097613350578734309143336251240651676771217983784127999787369734392988117352728222705059227969781821859917129999089097800864160575631054761822282452408536759054556065328564880877084003908107041620990940715149648467597009394261945709895741857363345069842231563487853961466805840155305984699631763026465641438258536347373096741747002811965946816256793842109795382529351307149480827032537563771149070580032350458652945188890282610349344171192976254693690947841592683114958404671363314262693803715918713742084290699901146442835746018993800489232376779472821676292312514131877282221499740712678635325012178217888157731119253772613067360540336494670919579346300220008539160841336757803132187471474097627183001133202616772891935322136048927273680373963552028545574150279805823177489770578636018814282673697976952714820718910612263064876705899527023063692207337768629722215213200274464708016959316221516622760639451339360657834285374095600289357608808653131629229250656812305993149405710722409739594466698894292882128912576705296213712580468380346927999964258116993529159147509297987947972007199928915069696883044100937378587236721399192227974635036734210907355359332789646460525057593680298800687395333348727536947640828465911554745984713239079173463606593963237446139777391195168127940609531795756201691096237546466933674225961640247450395088547362416079690683774823624617029921963772021668920861960138736811441621676950355920337115376652192125722345442037102013892840439951524255670793995402648477520057698543077903904509327610523146980520511145730394636079118579600204303422730825023597552636009327719486647144209916688932977220664907262605962727319608725976499524878560310866205972451416299013576593404256763381799123532119728131423911307031920591619244793771642343929112036784697961306000007855147691243848235654224313843430595555969082536840897034017525316419199252572603369651475204636264968850818503576349979617840508994608517675849704008650802102956694914672351401448995758496229775730725366715542743565294419538908665233220239076480519240032195010444956300569907499835621648761183874678172254197817435887348656349241816855486750507577147933733022195408197546210575406006152467533038493516978994369009657572754401607823499021383438266909119990799353150354633977673869880708815761512753752691724626698977600164317995301624877445409531394240412316734447723190534516178617535899140201838097824814483035156225179272331176478031712086385271303385684307448504673981883425904664220610398518871045390355192178133960167685114770051909460080289433571575928863077494594406034328601784914067941242315869803759870494842529830277207037645361541376720907554464546410679369362538143023115997036465370791364549365196915276973644463760327823204856118856950834283898097285204635067612529188409337581546029836428297990492325675093142984780204215763485249915383484579838111715064543069286869043075026345160027792962351462918164765658826919988200144675456813146293628505758866311889634423605381236862484576067525178570870752739951546454983299835702601662431638963043226515298110680747354046522161092585641501680577762061716805663808139305183834378757033585524557584312121746868313777289903132542569384215654544840766113708287386929365054672196478760878813787509240219116066451106552241840317768064483047488503359769487212408831921667251320009828204776313807332925741401557083728570840875901896193292283841460606614961261315160491093002056854165839556948663104929248063610200490375551508197067490157117564910919111393673467123647463475360187896613384329819838149920154261069511123168832038794258668427482383787734463374891986637462478418367982299868341342390822870563876544789449651325042770286944039237279294804285065614927183995584976779830085845496543399520905779709862280585996704701723414034102656206125800288763493314635757628072885564264766441090500892329011157113471382049919926359728391778715475808682815051712345185203450878413588203939072720182454436509951266414646943831873670823986236871427168819959281051156509599513804210738480634334871334294508289166598966200287422446759353586310083651358398229978838962562793057421518826081087890457101690545276840998602910583699250437456027667624725777777294688674368828166365203805328982360618158870903899862429381927018700020559951596700276569012634262773761517140406673275843038453102215631479067453852963435862625639432472570275882796607278567370005374618727380151837802730194906589205112424928680311051005715885176899454415505660537136999123458036105330860601817750196296514705928937324154065094178277436401348338364497087943176042730336007711424342223367336447277623027745206283036851308655014945179744345346495391762090275850243576944538387243240493173629514266700489916926330643477605205547892179986897253737499642083923369892002531003894081802848345775463669593160494229042401888338151773456411341041819840700994350897103827766121783031687696197191596568783524951856869805962771869929490878961296072796298364323886160569906312224932994975017644885931906791917464792835272546948612515562774705493718047447172628915458857395607176621654892182037485531765977942734502815518073330832760126328849807251415324484076611533126935297347613523646245107690738437002893217820060239259321902658435394727419619967725487436306590608329562493738560847064188030510854237839280555693441905835513438746016470198227014847577322703685081770661121177067690586483144846957445056815210437182945849899790306041357952619400696060856802766055519434225304535788550191534779405844753359105568491556719671986572857496383223286013073685469702664650081836155485364822791835520520131379289471091887446343989054186511774548074389946088917332718865685248679913326967010496570733282970393900820323468811871514212682397592455102375188827067605912366758938366272702047162540228871985646162815941367339135087319179351102413461722208898934416211932734757908892785078225508634809570037295006679108336513539866933088419303956495946606204950725891723811061621507275541068520385964093091318521328204707763253769387677239411632758284410720119713240931593508516700568500453643284961824937948607439646308584412377469375454137064062957485424669751638546251833312564084188857200237199481987253855096119502885327706956188419264651752752067843600985563081416601463976146297948488884231645509332794661968874664564347710053582430039293589630876915680427647348583738719523959012212032309100142202440825611549386456827337526280876423870202997458304770376172018084209454963163671163630352154869177427136208343765102670100489920263945574857654262933540370987038150558574879133009099683256052426106752193000181507665054292208273975452927010357643579344697205930252390272228424470688488764617710956778421748649608676547554047739981830776111131425346431602095014129921668382751364379591222236871875487233738020508837779259538784387990335764936268822866195198436338743547982408700386646644628074717560965152785056553233724413689800389431499764313369654764351180332257848426919751715674430921156389433568266892080498639868511461129756833695594722077617190007059608817524866937380876420087419727067302861072333257882787982615625480600394227391360041814130753256381642696372390614302989046798344278779948057890947681213500835190287147855837476848200683282322844344130258386213951247501647383204157376213577852385721508414212623581647385743381137988552957229172438714398856595448025373129473050471380516248753278095492987072959255521889189811927021592616353254067584102696332894381739649361576764344081421192435361206789697050152487973309982122096101329857391636445393565345785828150111176915795734102663956723436186523568134311582405134692142139504608128189172720867530842877908976469181698038535313884586433632135867290532824481670674678820720863384411520885029133085605087274593615730257964495198252139412694449240329799493223743420702450746633851841173822790610236767698265221429161551436914005011458827580490328039976238237591539169068203831753836547441254705035975832708236681894546910737145666675278042808983291565558761257348428490045898162930832439247675819388202967084533857444887683266477377692422419377946973353245871019909222521684322808733399404563172855337434196883045850182669115414168020374263280770061408164632791657601230241052654508664905449299083961600972882449014715464605226860167315427410721975306356265777704593388122775740460491707763259616478312792704067893693167548851271455615101687901453220676133826586336190058290195442304815865372435988841602555785851970502826296213776195295010846916290728530921691949097855941104470972975676993850911741269177169065897488966904589692420675921823853215023727461274122827521166975367909849349507552619543480351411928323017450238919626308029039908641072720787694506972265001811439073342077144331672347461372352109799867919065510360223464152905939686457772127145412531028616110350720962803195683594458629140925317563919890367289348451303928329811565239534967086940694892633552476294217137555029948806745647261397924217976151148849148057586722225385297200825105647356681342447819351497580734778191802557927292055836024132598777401857149151653931308742904011324655887049496251692313561787603401980639523518236085193054131995320253022502057348658390211160377621907420924632130562993269475193132108150394242621301006764861422361690292077569096534445315878743320531550588172405479812689846465173623226097218906260184042336554925296745372343672132888765523590758743503767919484291509260273489358023450137076389304156467464803695674282848656653472814234065511107438740021936921312671453185466948618650069214703787742926210273214708816544432847261757809867614351830502995393445016660015448157752540076882508727060281215164364465270164129031805572654879483375796490345625313392028000861445618124053221152247235143152750873094671308766440746299440509260555876839849270640898559289544073473600729362780611182842015588704628181641831830257685467478850006230033874630416995608559851977380325994084013046268610013965238478341179522865231248925604846646669606942136555422359840001381130276735765728127557528842003370358141864687392580901518148072539901510908889068540399763251197713239946048257327606154268816511515056005264685284494321552565971422895021486521239818197647074380748906226897386345259041510297964932910986814879726865736041664123809219431103926484050729683857096157206680076676235920033041872632298766532696897800522868437924270858114311911397858408115453114199482056358193498488530910003257333699530930822830025573681428236588007741468084450355300832402780985206136991726124401508124480756136523748428336818943153889384288004011004714429534853563799065490800415929531763044672521948259781989598512406402020577143191855072839210191006309282898510130238185156360442940766946384032675573437265454491082546569341420013095289076312437461975317340779359566150652183194767341015955124300508252132346350466742786361165792773806740236083920501057834790715428043244022087382448553640480009270394417905521521160478100758461999154464112650393069691068946115357749440741901923638377572874887587424215322998891228783637511361986774153429484826322992803740773491995046809429234678879338526215998981825381479670204502315706743967158305224706210039058400263144974263850520268350862081945748709899951035665161756456145862089632815138582463634026086929669329272420342254604996467810267960038229132920090110948610176089499628011863535466121968201258085922893175148541793509172041967262213129448600096528394417266527380976214500951651449432595378135309490326745473234302081818311490416832832582793673945026336769141492500962317303617827664515627224898083029104279771733516714955959454842836113605930374139876426711731504160522856581921020797775886220954899405621592935811035243547886724464994295038465958178081839354819368587084672546123419517137981880538507712722698833376789551228817813351643162416208173678177120710797702758357089894227411348181894135417705575905431734828995108600761494648053846511066501437040176328897770467681877167148934773959725716718588080603241293021746607906445907997814063142773052304397466839628750950454937001156462946872486206111793656886366597643439291630331243350259097361991989010598785906342926511938713438747689794688284416933661735364667031711940179235275320478172368795283034749944827867784314773361937943278254942922835409045709994052227384874144619499592899929765421010073594378738281288683700304755695992124694478231471189331486869855039519111845527462836476416960364368828425005693208815732858724729635220161714317820432373208077246957474515395510868634866068796087117696543474743724647075022151415279408175148063782478037234362602103116221057220039966360122809341631684003268441437278273525906202335896262228841172610050885691028103631221187666559792447135797594398731591193042029688773080610597854917629671266920629297351081971108410859538769590382487796962844027397877492154172383844160384392523740337744623169961196636449814190769813531907688277674265361701115292908411739838014697493810403649159727010809419757298200606761599821948661596644165904792980330589854054498022156499868455063852175038903756202645759630203793773367772866275633168292902539321264844152935084965991362358534786761313464835766823804839819393744621831055820172817614271545806085539764992127321948095312288392473704453388093496123892319157589066269718216535751259621025755458692163696013092637767321970164918379924043768707162292084817137385705540893311858330893192088256184994959500454133980726151794085370473285475268038283378732909721298367147268399457800134324598814590641856943257389486167410658970280709094535647991319413666015067362590643358914610732805142765908106612357778817567317530956594488692957499689444290670945229583251925556794120098225344104061007288837877707890857630147125508642785866713512254924298482098384056840159824655131543252365614529732205562156300944268830014230604192093664892852018784630361438658384006215947377707148081069762284729147840467269788571872626247164190935981265546401389880786308349324878625244362950571094512018642327669493375637442699340827162449627244766174744358871816121605826705514608094788207291487323164384609253107343714780676964419546794098427286690960069963244859689711536616196235428226236904134195583376004095066239013974515439670335524800728336752694702441093278802575553052617991426466490221648026862140883876796136345503099862291012750319537040482108813830295048868828609969819480092850217454751933456114926087168518418674105227120382715466003935738837397591254307514935635017561300431268389158652914698286004160440362027806164032266505667282740852452175721791793877835676455102934477692965699951293075424762569368922306832340345120527133406192191080032494235382873884540950619205115702188211328647414096237407268368228485196077322283102974239529204508437462605985046094754925168368410476869048473446387998471477864539167467959842745418529424291340785285327541614729536555143320684842813541204907941120520416860452336909308266379234440287312552040732238076039342606486468065059721115903030119095327537222146351020194331479533994990891414329519665066685592894302706249201556452885997007032561479052338718793275329914787635251522699193824071973816210992258651108780496242759851734312560209509228520666322268271582374809043274822196010001423265470815431697218083133388765106383895320597730330980690070841640240585007695343715625714760554154731059999085562433640999022547534642224668978416607486884062894262118291604379159798302183087290377555096076244934180313068454634319266693590776224848669298763429043557458266399624014484798067768775141510734071664064924663119315918935491799520947935681051560401274970644758767693333008269878179096127099337121164325100164361078274930764874834012392021887283176450667899180927146726848105442868360490968744851196255124928325893433953085966824994196558538502304632548345140249894672272751935994483125209861694010090254594427636285167169880682362683827494717251394510313199785894464038110208576801143481427409076108526079725865041873725568703675700984573413373613384796693125214790959999852138763258387774802565310654313217538106472146726877762054164938319163535797733774181442550279999720713922545846279322433653846921799423169711114438888939928886015984545152024903110328887678807739108387126262770404439965482429646659123282508944057172353285140140582008462759595262604940133739336363498933384658791259341735131434335677938344207109567389082933163883808895834719025008690720660228479159734468364628484594963485996637856281518920421795752560037236465601130824964634478772664119600009683307855892891225033602416692022325861116470952547017945160869557468298092782951238142918753982467113290840308223390581144477122241805508581370049704442729137755583553037207539768935274151158851331161005570816197629694811456885813632397910994959451452021592315444910312331883188771868105701506425368561723066090692060770702573006610662059823495173479625159237745964083370744689239121476186519993431990735470786964203506602431991490963820366337276431924542199243633394459534857923609996945528457780222073769286489701450810139810974189860644114773743116972647603876218723284230681647984497249997498462852898038797441710797996311332731479266713901991295581553416507941725006642944768045769923780605445505355199487247109134383625042761431627173575875784404453340038920925808919619494229820430471948030912254014424201892906197696895348503422188463341392010162368644052804199677482338135740685540136064585692336691679404365203842955099718245404607903197277344380028274110080199432707076883916188809058069419349908100580089629478515407084096749726493780688362062566713005302964918142644310011639761455418545996210159919428789169626393847048409468667244183394258982683075692037761646482335639357913698291932466264988736047464197422084636779507154083480875402144360967883352655093017553928179496934007448903473611333459178302205409047615300821403692872436186779070699074946748615415238562690268582162463836264549389963636452043601368450770372364036633064332945861831309722685647624671811859970111892034341869905780414572628688272107967749613671162319858585199787346850612887669112344429127739862795082675857535497718045515419026333779472561611842455333604697154184812133367380073340232179210674228202551556473275816871453876836492898996727147995101798202191476718990138138247555500235951651151097120652082363929054487545958284571137284415224369676682860227955668990656504958589611321696216493503227501462661382370915414606226747274458585966803406205245877344091662835682592567897923188364526437276200945760780124297898052140532819534623758049461556070846133639271678677462778817869872984353385470466231483132950800580558001527141282347281240946896661531666139525814203360893004479698799289544343984133514322112642493891572702128976123911347958308895387832843073418677772173904179689677849098070554839773908982517157181172984211159353913922479586564614070142087823387687738998949572824967905766599712527491502915637894751480370149873669182531238184804780513115017286430852635655035462316136668662706707851500505553481176388459790668720910565931792652254043682917500768536061357944320870241866049486539576308101170969128780500661702142119618739681288950256766405235542227544528140938124437616481453332169913642114611221123378597260776937350359582887978639383676189666794125031583329808859459813158925266215595576659673401360882067555516333311235758801600725741578191882075008837135775969473825542459446088953423570972741461419023967259168767612502384482393572220960449238304496037321622660127877631749445677335775847981028256134041784171278141414152742682882569397802463176298377870449625560793958053802243007050097802033722225679104760332252686800038467066522398935339342665035154949977497183093916171694689929805661734702118972753181060308515341202365219976031660570886854031704784785088764211204074948836727387468894343769190060308610315575209946265936604242099821267998791932500873790158583092243244228348826212914161433884069103271116665729886132927861063768676465735436047261536088581326307202095878775282526553494154181276334035136446932486953435421329467044656589172846378390572899780628897964063348225617370902066106673305954612108883362802701790689247844859639417122106012566250534754206521724685837584687106634855924828805199996947998645790235629774948637591387521026217887873588489974575238698025509201304625429220967808180307010290271267077264757183966937304342759815789988310183965417143200059700138338761491043642319662444048168171465586356645762172463787696675648704689421316099199909071548044469966152725020889305643201058876839529800245768336183353823320601126486707936870919900813367534133720678433759784036150037304770801319786644975797448223318696721712585632874636952132580148304327086296286997878451353468108174106420661587614947134462092303845574934869937868761468259558450576975130835989596761653407164771041000487945819614267340211436467563842348194952889567248564884581217930518208340250397710028369137896517378008883094458670743273661355146688358218456943954591381461618583829496033068722015967808828166409473398779811768698954635426626190368135694737721850713967618675137336797200894942861229041742409421818934316072482598531897686129871578182531449813657841612799297116978144445389749029448198817435335358011965203008953832606160835653751600360986904160839398359272752366338846008973587238565690998926878863408518837127739404290338063487134859268340548639939815251990054147473970825476644109650125617469420774724666038745944481068009865348967363698078684475663287500041127588615411007175376554300385271894258369013929968507703512755632783524285324548375461370730085512974448159439932777428522396645050184977261865934543593916186061261934736224821367420057191523943368644320862589214040346139381652822196455460476040085753023106905172392173604315271889821510936937577845694907350759180750529082373362252380112689630093436326131335343482259764992741124946057596085555346476718479461319402906178982165240980621923330947844689432859459922048781519167867151526242609600193513850761275578627961500172536564317798638917429271161880869173922668439944836602198086749664394666176109057515005873072409253376001102519948723510258360054828371379716033434766974611812137359567608403006537216145167875880216055992243063122447558431902682549476148139060636973219018459587393739933898704826266389398934371961016423376574086160577361038434039430581763158863398476961147313004024596247234280467870926829626456473821301574470649848569659537200127324924837516817598532250988513881157568457635206659818721265663872826076819263935383422955662956886190854278816793183698851090203146630454821314963347721913954577265360016394596617230391813260764471043681985242067707350767128913262861497389653171320511011472606716964636292434400369248410841886211552015656751207451872414867355887977240244109498076013780383594006302855717111693371523301003380115741272455008144018757991560213329041167268340159351480091624827044695507551454578526670470793510383810662236209236337397920076901398711413063448081072111776345215887471389888382955357488703714455599736808782885713530436542701853214191241148189012473815140741193531960737586260231152655663948789079979368593420717164260235825014207273157269215459258253536769405974365992364857327427358695300514103123783064014169832437348228895365369556376350767726289899745142266323469205089978585271559468074490900239451238133827396431982731359691915365371889725530197117116176053726158731953407537797801736792912516759380794361707162978224971352018085784107020999036888697195670123210944014177252477838963128409714882812871475944263109307397907484109841513515416147906219682899376932297147118002014750346295311234230122593106204994048848162919573700707354289192469822452119996495523564528442836769422705711373830702722179583311508113133402394212191398192072203303863697327712125873293616166903245877018687671190690276623338823706191412039562380770812405750878322499825826421272039657242160346374741696024160457376202465516080637899052061015634225758855585808978128037228882120522735788798870381244577808103111136850848719020794899813361785759200849292766264599186430982607040973320417989456261288937437671006544614022755647723317473498615280391740840879776886285220910487091253212942959140205886229468857780526894669715945660954837772824162903697893006829700938072194820045552297937552966871817710762654978380838256940891841559454224583448252595718795393997103070634942429877556371195054704049273947350422787140189179114377177734658909520634276551317526747927919930590981471063289319240564470437088199775331606401253321011631395918430864213358090182050592667814284269550777346459376531668517271621074588822409706679352874973694459551546126145495430098619029368775482204233255169510991557886515988245512889718873273220789346222700256373537803415059870631535810605266437671167483542263158255951177238806536130019080540552722098471247679417598992322506619439417326213690483938717379284394684449630849458075592387842231815187121969087875024125496219205590028356668890919030257894407171710687874629128340555956677828019150505933909458822880240014080801219477020281762094511949877429266985587991446269329673125618010156864871371992937771237118832319406270491867244880503387955367322198255698709157929778828229631780354241808324370448671853230429440080053996027482447686336335804917868792992779404187037750427949228745863587242305932776304188122015319627929011386845237543623486109744518231400926904084694646858439568667478125333019140463805898035412466926737265455619601217675912324079460939021603955859175759878322226753072809380605455722335518767414093278506828303353168944732986911255467855405403342523690723360750617225896655999236666970544361016659852835206539829189646291497039593908983935504520009393806817101706120683561246609927029765134939288517719769621672992878861622919826915071705824764522532452959020113586412800340609480990712734794194903741397003078573988456585704920833366563544953537485919306321036688223173790815613619776716330889193026184200691360466004807184498438041795534781461137156634172328598965199490408364248425813233786087987512771338412015023291200076630729194207709688795194358960962746677409984613417581354973169398122316587825329100098835138290811411866336687056523564122543764828625131991262056423820872282006846605913702183843837701845848775537424907196815044262081674662482707231237905060674492438454677905182666278011013137969082704681815988783127195190466534013288229077499747337332981556673977508427399820583443576907367033858569759335961980049702070604231545932137991904310853228214377598268332212987470409075257757056617775727914231347405267678781614831926949460602586144111249768414281230441641268842722095122872149132450480432982163059732461443245965775588331976621913407838197331191630892468723610862246071969116571807360185474550826783814003235312275979830136395033035310395292031271112561522506019941440982246924390575305050642900392233995392744892499269577696968671395602141642146671599494333156188380128389916792692460025832253120950062707749311813815602714007835582514839691627296580007531292944894341806773414301299617323897821847052253344721406735113022584335562225499182198288904127558639888534821829730143973946716424566926991183678557221592878646956304070799339297504552514051649196797773928168870572213356224965198971431217432978511560602228678562913037151482455005808833835936695756708766208910439448024110535445110589724941666195550320740931164903369932500557101517190168183574672298415887962502004244831183934071553884582569774808361449917448755143747239269591144848416308267232670720576471220891428532429181342653050176638743186529846172555003199392393954974831748625580810708898542419922010608663405444819232532414654208877980957986568816442971726068300422090633285885225090627524756214818545920829263300826037822577908096519079216993032320114771753177634862298759328310271266979163130636280870596408368724465718681613726624803903321580696312903929829746987698967042513426561675628515714770348930577675108661629940233138034377362240710569646342792671513132299489965891558466807119860642924429087855897042578129045676390773132932610673711767436350987008402149721747187898499976141864968380742417327617708328687868567481253370271687637217854581977075949017453748327809097160745585595139484727237973720735032824269210397310761707122294885103599956703572963942636930155808687086850834912845574184175630270021862935266851539726322179669046837396856868349760271877192459918073492019106206264904742888923574832903538065296910091573949743017990386879491551083061818714069237216506127325281712145027669495201486268724954065722390438626086378821710073403302390824640141205795669341596752737167877980560978569616385909395503219476492205375716744031259092548537912235369147063759297323258592241865184989115470913187868275610085615121673242001114540941400755510776965806455655499264940996506709597589702690558245781953880412545073415698721137779605677935398149359502343580512853147097901573440839504967438834074938493711962803801093717793912515548139477004257759812411983202701612988687590568911466331943906199132078047805676900289921299435514893866094605600849286064070648918824036218668469532993028609457680626522529248777166244126139606947606189866928479030891489786586060842724790539132961783088218330158764293727474630280358973862149343870302132406106280073494532107331009332780519891171286700798494353915957582233986459714069820489204018739983572023681536753713645306841507115890864179405157791430721740168910588324127371872604339787434208521139451921058439072997945036044283704746168027937796763189547716190654937868982817273709473620500341243764646521259494593545671607284499289094159525703373364445874954691018854416895885033711547415925617947293933172897581006980879787664018512782445330748606899792294661038377692675871491939317720079513419592689774533435715717507268186867788610717275128225635580429042642469106030923515059840021197378078629640022682995010970174671680736545605029568542225318328233599623449367503701347894294392399438512016145836639601204225863767606130943499031214563378156727898668659937528401195738720781593393285477303543153214855071139471445803484971562377463763760960603403328079965913997784269696040735416804867583166885766955439497129960031322154469266301269401816863767382926794908411673717460000664127898386815183619537450247527313138893771391572142299193234913058103374453784689073341971282237201082433512510500012419329912588718079652591539327821177422888433484957706966132342269767575966405781559869995893994306320314312488026547128051969464691124921645845881492571896673901059059834625533984399369668666656516977784892325946407610864661930000752480596802137056702945039149747662965041950773935747331723006563376024963196808846801764794801564992724972670789779295083502931579540541346933090937273594612913860193028816193708009733700936202003767070752468844986100253269290795232347551657540985041029470327525398311067889173669842010415849975840097672409729899093921255816972750589929988667583505275876774357577624378667173096410181551421982096428604230005828001391870677907044326911077805952076498940020475874642744230914348928033288159925052255579233501452399340434429554492210975687876019251907160445811499130909104673633009799571198247127260660303665311000569604218828914087334105672978500857380580945112780061819594908718381800936281526811037815970681429575170546271697098274054947168486815277724721826068820489176841419841110976120957279597917260618139127273126000916583382744855159280129588279085288320149643000095377685487478836622944642525285336877443945779624108166553777778061377433865320783065984661060938050065840291769382989037958460239783303861097734536896469797053649071235302236863733265767384648877869265856391798666230262983087371925503701964788980133557523336276472734482598281030390563723101681511954370210684762233821525388028498236163668241363543845888127187391912575586428046991707265026832402305532223104086931906472027930442573357776400169777084486170482544537702823441541953141857653956289308011607720061348835814529129236711394727196521116915308172085091550363535436187551593690075874019472122669305749183475129622122723464346227497810999523372379497305254628681423184586825976862851157590795773036516762751060484894860074276106288078553464342607568434963302645930096376465870848214780448221164032260677503405059325526883301236841188151222849827737178960328539893019042472031021783215606715505415762245738803429294168462673493023705636260658535775930998108530362219110528367297052647388413484586098421936789473920655492905424852919593214431102466538206179162254453491594183151528049586807397765396437727207992953660756970672886270672994813982354589196891862124446474700855581525641159065248482043691179125390086209743580933446338875433793688848085891462793971698356723436453648682502102501595843711070686604547412437533677140467750236645211931390264281866478979724069845986003490322928842323104895907962089651116145730406379416186669739398361629109884574939465799430169551468245123746863579586193115508049054671921384252781665528170765403872115561619297270027672522447905256253930869470448828070027899807862122959014880546157267145645720980968999077749265947732521064078086649740167449523443780526957818517649526454830420508616234293062148858331901960442230669770336435719911755172931156417106936729763862725116990849056277401329456438097346698868566471163751448120925846395077120249835633720034383996651919465246702007280229089254935552051974263450252210009656026020719011663944595495934711702973895599661553503021624984098036865386517543509492686601155313889046976499161084248020693828175886876795221250288442059507313717543282774308358748594667930111658533488708953131248375118386621563507688327660968454987053093005214183885339622954416403726922183370405048497695365301113994853664068077914149327056742588582265984064902501160049115800140345975547876078961007514866174729521058815585267566899499760730329720186269158309094967816369602358371039117751149876876928023517140477258951230850525601909323768459584092963337671212474700818642306617570396568205065216286555066944605187688892517776599770316584447359467218770694309032582369550228872488336941767703758373212624912624593721046634654270108864406374345339110675327445906964164147111696458031884115324947240709938667379462493708175588474921180780567970303609079771883245463612186130709143162910954273490595128888582116013512884347107754951163260832036036359395574382196963728374882577952042001953617651534192681656128672942622602766928013039010951348028061045130758261235008070273724412986103238161209552589896863868541143406406038590405240483444774611416705821367538774330582049123094916083073823075852386392619190366457977939945194843990742849230874047451803437411278917202794187437276645720807990389078460768418476751892428524417919964064644545356421531458792306066716941379070736075631771411896843484814074091516510022378486972828373190638127068961526633329357817120198943471610412818548129635797655202821065438349494873814732330464435525435347579556773966776988957515942013897954027245764485777893907023563299440343136672363775510869445309600422698581483507241897483545374743543888143374657859243158527778175272217391474042458990417318829567640715109134293445583822278359674956367050802589515435602852442012499620467573547252487896793081783403661905906846352313682475124950450445756728868029044899182255587379863130729866751759486558919229576853369040627985113949732223583169640310473742993430865718465896715474404062102076671174242190590969635044152051800778878566539741136596205451124154881199166175828827710338919530390717728203051536890024090754671931461863882229156347427942291512992874976335448396843641827871911606616193536204873067088286429397012284854266439083928083227529153885585628429630884761434118634072591244131217440775925145405898427130126673106897928979667216886438549953654385126299647598181214587920711764855354417100840174061906120668861016458006460066942210489607494631955269989501971198512230735851172062319942101867103913099036716170005582286397250952960338252839717234609833504232776295618971874748089750938870188558383313161317994401454299727119374559235607980721318539126324245745713096519413583941930736705346175899863834047955043109509679729860090364424398876237333390966546595382776143288680116645784128591139551494761987730521796384303897174636305186643406866874335186545130741850038513150184499322734294584184683069756132207909480237252763832930717718588797392992576485927725911862033881078946731832868257498273802690382802018304082897261052002488494484682863980871054598475678017438923207703261959951465799677845655219472072015566536984594132883826959109614647555485257234327245434276453877922093875633711089372238813944610516619121766936287906638850808188797611279242680735546415135981343730006961550980699756116182432219689118135636562328266302796135720911475523038445265662043238582228359108775128311194755474456248189811251155627694289222432525162051097752786606650687197199258310889892545328697663812687166541243844493628085556552483432153887154157883831764712274013898972630668936770266442686406038090560127320475580069814679774499043425982605243933379188278138490936183529975609071024412872115080099049157626546181368261272627739580560983393721112765645292980289222264990546222513858651216632605820817908080741238448733706907253622838908867661429834007051966865694835508138292878058215810926626159979458542279173202515798342403737571126526688353985091419751520668821705481525418059802900304947983275296855921121821149562402225981435623383022279034818615378875604511877871018793452940139932383377792733235131994870186864522598406980711262096535844658796383547245998022506847670351998877947657027435838956856339302140010281350998198691622001693009658720462433933220369982843898199468002277651808579131865408675743292646185656058386315436334789302814163344675517250846602344648794315710991870639015576556912430367347795650596657836101638316345519295597886032824718165148707718857736367813723794143103202947399217466529150316410681919506252734069444851329819529288942640928234616472845856899527871219763877896740193359271536988991143194196745332340813364336983087805442405654909725361986626213924896372301363375578217798942992646087055329599328691736645190417090190782566560664618751511445106867232637168224977662237991498314589732558103540990481073927774449588695370209174087741908260623627823385953265827182802407778571098934135211319019883133160833785937045587168969211977599022569606836745402613532765907176907924781915069096345180545948140051375248256562215752080403527298655921126252739008763359896702365522991512141837211807549152942880325294232529468087807192376901612559088873724923261265312332420341221027189967162194640309566340930525456399094015923070534471376851623504873418029786805919957874523002029978478038600285049973082019294538974314343206321422988324011893088901518162391429606967330033788921364780371250812212700631993201008991094786526824979853843198576783273091808402055671967244362096138436535737881001441425874079030404909327456532880209722729775845981632761050167487377668206171092848987826417447876547049546833942428157657980882220440781630819750703312844270247861520410082507939032992859616812231718439360167555020718892805198193289730413687078085574755415117988099263045574568110388631786395808440299519863457978292396763722141881493750372270630017041111575703157782753471015321690049031585960515545221461660162220357500876064498684541194605521076040490236977138750129297696120566359933499797492513520724837991243189573667738499304322243689915504841548813912358156594819349733568397327237436455558443939300750445788763337031327131942264921459149709243853029963095685385214885669935984066585359871966421618288944890042442896877355097405920453335587522950006912432709249264372632755300385865919071917952230651781908620475131897382507232705037359861155105432717176945599863904184226617894070797933756670335883255241642154467211400807868568836958648213228841416930931228199600613973921390042206213413619357407275300787817472256527816259736402314534293960654885782439375661283798869544718114460102793128520229532132300038453151240368048185742677832187519101714624465172535137990653477229339463240661609807021257477955345299082716328012027421521121281793209848378292098612747602756378107801608507062211746084657267687305416975114655155385338766964368972514501094947453373300167218769931768889219734867079931250491633836097091362585863845506528537794163514941277242825945971051440759639780627395053473322273138476468561734534988607482908140536347962172985875418879693068596773664932894465197499603708086201336626940904923605733734570833864614364336712857381297836701935549133477119745293230180383758870930796281205519377211546746795171725086299508360409382647119471931348929376804677679573603671459772102996962432388183507473909861443560137183896128839966652211765444314326566919901498406171324246351629956768599759552460434203711091990117217047711037971239318127850962221697224355330371737906949559840622297142494148096516081104105347939428320851197503246981852549409595963548943214211045514915196044026386690376178766417344304014566765993627513659747010560078514010049975491749151828183218756015421912062595829248215317352541580905475672702522503815033532687122225362819443394643269512421346722942476626218404970674772047793978336235285937846835562528115150811846401329343339313062417519763165613204351890221384393917286728851070239235877148077081282672386103156370205260112931251696753913545035022621635311217411603267490534354356768000397074285984680283825807431322555862466767103467293481411679986039029042971950314966324427159122097359745302140140070176241361114911352964068098647820762938360916129489162149381653816586256739287351121242497783783858026700746253079034748486097084724154669192361650936125433970027247615982796889727403515079615805194279161650983141717198928428757899691233524829642607195639132037838685044374065194811228765439786784993573116063437911405244744433164539876842934617290774021390545128972748828684573943284834780824327480103005965796646578847751248915068990822135459018221611532308579734094558334221941859131399105958411005012853785698812399311185897841739627761542552459162049623751823574553283352265464114620351556959481918598829464317783794584768146079313377412102509489464259524904864519031869331968240591059630043966667107599920129643087168965992492116120965562155825899453778869728657459493151195429726379007047089874752272788704316290587438200327065176286148135473420603739642976051905903486801119381446158269122506646855355465471263238033162814198342053324014108576578517709762905606866297175105358540468028903870897333064609305764266203900872005858565007520648832789633598528322072204709633369143325314911867057620397428618354809674105031274525859429018484146121438883736371624725697540157616953639895360557529992214003309445359142249065328794839924731041444363364317270786862371520708610021627939807489701893172207550224114233992432314145501852788755897439645688487947090763913253698294668480645106756889136792360995412398042318590124970554549470915532458461054496471371908848737608653842927142076455338734698787502834202604926333180722672707824956827052505569793039824756687949401650617098533816414673163194007908912935381990235291324698998911975230633921063424168497528206501830009448074018342921941154241791767736847115676583330239778877338257778597278845636077814004121022232759601718632157734249966966145817848185923556479817467816393519314774748219292177222137609477880058289074784981758789273620828212148685341150185076897952722455335029623932364825503042658090834962584392950946771028530673372458048623491760830155629566892842375208474788959709295300461114061839170801733990593874987196021238670350841273267278366546286902095985836094941665517672165547649364535471361833854067520913055880910971121355364638244706320627822248529659905536477220837603736734805893979784352470420257789687975705363786465006257498813542138175369475629642636366113034049692820262144884511189572633719155493156735426201611749468304403300198846217406338634548822415034618631804293136777482165723710243358876352997244231054459343353491202356326348737413588338686711871022185142849146525833485563526732642466439322589416572557123344863152477006583320033525028720667929575684212625220216928322475600980086712786578791121384219761001787884189161474606304977846681153161458787223334373703282451182209714156210529980089820857177829541076799096032029344513397816323991620288301286553280761257963753676578248896701984774749436134784383935357182311810482688632704859217346076370278615216402082281237984154155430527307299603367992114888297156383225681503834281407003957663506276326286585197119389126114832772697242669124010459200396505035879980137891305489624221944485383708950483616256672279302276813717643041926940407821368757994701091124079473938761019303607175105703279013236305670376204130922942652945666865353750018008998291641329125546499185429659929579270804668065240818349131312233905915558803151323099749994469586812411092846288095499053501570627047029118377327783003011976916613895986940170959582673876361588188668669884333335563428600057466239555496653055875844305103701953603860833135122599342356078964593968363978870743692374010528440703089734228648288792971707095907911982866039785692374335510432261386762671197123105215293727233558836451901304185411874757006352583893846034508337780915443341488221505224603897499861955278241234349500690118003856289404101261129294222430784246923305523788656941363006347852636222297386757773078614357102175646926190968699027096902751219272112195255595328258436873377668902201774271287865614406234887588087713023950450244034086077924287022457083583581829637677297701662491330676289134749734746499759760622109367748591908688934242593711023712029211786873047555280428402445438635812313134116978270450538811715519705756750227354463564949235537802848888708826273279005324946771931914940860568752517883962729411171897844289184244138646880056114536903165596149877449006714400275553245536840916990353223893300904713568284798164469064864100001121077484381838536751516592840670413952127008169991177992486213797860698490966369351726626590135598568089907855904556086507794829118869409357029570937717863725129387372767024131839305960635718923699391521225743615408857495864339566503019063852955323536685321417890765428146135353003534819282487550724961212167622638663789632409533049591609945742401401324763654856293991459585558289705263930708170890115962547825104004774005279564298343561835324735858615374487072567412054213177400897413157837748916088947274211800784568293888147809742292852000448794244009190463536110927663358825872377665660404670373912960429446935477587952206224967668820717051207380736158768526740540169598086822770184220839757697714269794372461886064475845594595408989734731381867514675389132498529689435842994491107551434518059909514215257967004223723319981871530935344904652652705710345447294171566474250339762776358897450661125467017251768778918709820566163290547279113055135540051921360485787606201355437717316319561404873490168873518658444086342316913032024173936930193358385879116989912131608252042950908361775610897703911944273779687792189031175608227264704906064289723823582171918309982973029083599877329897313912424781140236536808304310714979174867802740239896723217573847999485827892562164206887546809669775778906009233208473890497491350712851968744130390264132125717573291348309174535842137599936164948012025174021556991760883989530496440188525838076480407648188127053362346459688924587903322146809255166190602862291812256258059383032926208117800438397056348069737288551871901246608027137529815604859850132124836300011514717241325706282414967757591005658687564876757448372960504173187100922089584539178030820774857363864874571034809628381592449601086649259289991429347080532241892545316385718459348672767196776810841648080743888316591606910932734758870283899811669015854412123518187049545640742331707859071949672327859366292976961477834957334358508155735374191020598703494024506467185036488012182804926763046886601850947215590043499328786250532488740282288877406005696994840791167705608450939811537696510063910501871096494691822492415026967923743416153602431434000534819946650715218210288403227597724322669629312916010594207139239942646379926593271677217544244093166675964198237950964144126302263733158490759384112733434324451255705725349519620786462839592349585099437133473287402427763495713273376204604099665248031392818438726893758863507672855413452303915398699016743314743428323883942335026298566753258632820802358048975810232101282487926006690221353825408149218085992208800441140509164777592909701797748849832903558753182576417587303586331310804228349684108045936077655207429820770954703836958252178388586381128046850049242089540784364532751004941538447737533700109261903801078012551436644257808780023365449515050941203363213659229477974654090254120940360397426086402826333012101730149176175589516590872638526691779311220996907837605836675892496130944491616173831548266378407400903012268041794456053506934773218800757221082131426718092786771989691960269245976116530595565568129446211231956225432112129676943812756812241097232112608493398510020235751916573498578400837337437522081886015771430056127639690673035803982580446594800309727044371017288818403953584255821287488784245156097334293358601336231933279879128287597684537909599355237345646435169949694999203087678004396468961185486423123406623299116516808614092076455886059275978833077193194313067013380498261931763944904356879510059310344437533835100035635004190697473978898208708126317717930685779638248408952035854791059122044253867019928222247292414960026289808467288923353235072643665557241285662292443167384225589454162415338329446180095392035028063881994827952375123887154653407235646656805903890775007387037605132314497191488562726548445612287463982227123896044059762257618287036876907048392098888556408385142898080435195883105972617816525628493077402572564685209198843085889393699531948413250719535342310975349951307118043872134636010514780049576688463416635289593199637890047919181731169560293567881745363236109674672135731358770125249615681988694256063407972397060953648282547293789785291090212090934835699983087000607432003935291174804039445028941889014449315665255232018503603941983577337833245622635426456525364677829689727032230892994224506546708228307288918100303991483013006212461749007508310337036929903970090278902262686288410920634291405479377275956947475586082636129242335838705681653512414333555247861284893455672154280477786763375905705473867311028642854133134614828428271531079630247129825237514568856146390041284641424728281830046437277086587137551061062382669006617452681384837745326001727251218024130558314362090117302834203287768896192692924844772399297856767590813305394984872063256970643147596728845507756623795938205334384829382604986443383731092453810051968547306988405404451235712290196473702955675222524254991962503493596641035966380620542366263274028696044303201033460922523689512682280639935373215359595876195419386876875832371532337818869033639334238526549897747818358639375943320739766915691323422751231903791091753098025022130946626524147200916672805722024599019497464599925589371273430738563652446910493152548099316282484597395776157073236628638889704332763314120055845762668047008810934561720906838384982156460179576137359910966239882953712530913560240557874733618558084151996123914176242133756960963684423324685581668126844453629934320502165208556683091287479948585438570506381737604084489828693166732677492857535634964393059888189278986107165267049918856983787640159356273193334240215928076881144227783526918505342337450086286998446469089564417935432821008052311469715992144510747908978121502571504282121817343735511551151900747704958077182498818299626028528237458574675545822687152668095095836202310225395774651376825283624121422752269392612624689572385220633079393493249651065233509294712329525564882588257301623812600491539174919638208927285009564403106176711094635339992122837371592025464666047666171063675446101000381327030992255569691784527512461943630467686477474485682441503798523917779048260279264284088640180166365645822270538641688358386950514988585383987090478452928670659541378232458957194980154743114307068098368898870924963798912751114335471584851273337416323411778899020036557262440145120845416413828414645024020499373287820623012688204249943758003654547796865883664336645872806086809398201795501703062377235634570839234473442012303351146717695126022634518946150042663932098257083344462622979773092592711291896137332543785482168852542573072741367578510743627169623310123629834809961111209586907783012175909798853695271607294801372821764057453013152324409652499391165491614181063659620237713202134840580380682290511339960859675284972667067409295290835114140938578736344338660366423558465588545031624712695952620430794154409538829039481973043916359848693826497801323737353354340887630177938900349238187825212287154390184225557912294794691384908524363537751804632654067828734644340497986490441442827812512409782972477515648800957799975554757342067782499189529324169168932833100154780994103172544893193370980554453822932640517860284144471680273525093192517223962466884330320808109588379342733162327969144842480673230172223653842249923659322503009792045948133412951384888005917523886022409700783144230259517331434157830936008960739929093921085054806535769369277803160071112787231509996280940089662418973076534063159521665021690618929166154924077083106091604014392130104367106666759008107009554444867797703812224813769111809133722091863211658035957343959268896722304940204576669084162386743271168312865668346863183400111374414383154791338871254130973170761978318783572560325854758628527641202128538072866701539344723754918341647882738029896432046143226972361753149547813026159290925957972526068423232158670857067156038701197710028850995252004016904119630090893669692115016970671045009934824332258271475165664379476957576868011124509597631364356726872059450212726127788336944046558700411446283162540959706011113901876352226786785121037260428872085834989962163419300957114993545811180922083717175582368079718620782581155766430047891002336192176591060512951059705322702311454708757692784891654708437446093405903563063817249913311060598781508768454184147880640081109357659829441430404622975414857233321896866585041142583789794913599261386886868627835695677882178327952742558196154644864511043204932641807900772666284253256602204602860659465338954859875681603790201426135575626264575763508983497702102845720870838263544164055938093250182043423766170786395967133637114676376783187962323554486170355641811120977782694376859756082324798730332143952981518298186312179792495412092923110293432449903346324944438215301457006428015831047447232898625399041579996650046872850416660792861064899384702391618847466503902425589991947518961207477586067263752805292966800258566791875540698368008021518478728982593435856648612298920622131780627996827859704604728782328768046944379150835436911317966773167008755129380845678804014486664680490391776934935873314394482240489359439180374135226473966612479795664013785985718937144068921861845982929749697653245665344144276059562065388702105581086137743470390371248351795569805646603016418859709973681470393521914126956441230995550651513377861331221637092412145159733617227641274687086901285940198644864283111625641075940635305696820405291462016625473246694454005673281313308119723719843294880664596167870969643388312234237679939471379877683870469380295108120481599672635457732241952624152512319828227127797105058969149666507257136809305720404592225954521415398868113146016923763139468257340547804240479095169643789513540837610664856917508305323439608018325095786584328221661618581272088144586459775497530203051460879314145134486894581337071385749344094920336668379555519493285264940746687903032439808587736398364229628651775137089404369741788227992044027059247779171579459576982124472762627500533920902072480046675103543905722702712056893994009272105032234178287098299661112552794727830197013059457445011645555299741636679243788213175214096591752354661237335194444961815271130228864155774368715718390787995667034197422447530904064771383534263894036139547250273248098058492498155052915941348968855768063877893660599695828553924253962626340702981759653782601489796606993212354127391713868936325596385423556326677137510253830374724598684183226381074153295101843668962354282620141448538962736167829775997505996559926063851893473541581492929115570885458715405078796293713530297658547623498772382241272764468490771753499109761379443985116716980693110100283936534683196982106508833763218103568554082560056439862962055753498703832463504311304700698028281012048292871809744706093065404539634611668690394015531895942463279660168863643311418494502842472480599639807484594857399274359407458599655005111594991111051798805583206171794258978598405350691383603998200596476467150898791349627804972984419456265065516363975967710062814514393952322660859199869563174273582087534361219983548398667456018135431446566677777910545889078110643483627251863928146558828830985343094423225833805889286648358754789083013028883841810030285131176004561868467989074333365438280141520186406492928834954754019502328595848405111908740649113713657362453422490423486170992849985659876407076378933825227262921805019805227714645555390667604391937391382496681478359054555669877012025054638761293506485205580365431622569637491479602409830557810089761957441452780883490432096437571784324129881300328565437586191563324624743362856309013992735602515539697154414362762961480491103123194825339200251261924771842787087421693049975233363009013802966613000219180713360402625168017278319412798934934829322807934406583915330639197785889353132033983619069417799763898178572230985504900046189741943271927104614256365238438377816200078841791287096347625064619628277098145683706472563329181993712344962130921016936209617023521800715752907211478407720067516962183344300795610041230820343066772053517770116906475799106619752164307505495169884893830741467284343450030724608781586190819158371294774239102667586502171711465693183888889897161666040169057720337164348337502554411051634625804792717320888643306232032841962608944554466142762475389333663449976772917706046341732043727523683964295972056586413258227276727249550640825449211829452491132349048597228898025069262919101144898737750500681864138183443866231769405088928088097829831382008857454696044110965172656986129411784705985953769871507347755967697025086242927688188013215888051009997947164487353077553737531951034705065319128641793241380322705520474879778957737715718188537303371521787356630836706005655227579982880527912791545680398489974087396588017632331369158009713014737453769110759330740495689360405882270289114901599558403725963222984357327698864329757821519106261360276661468479392769107453031451414345403247946266767028532909004541490745556316033531706539176342137196856337046453397268279715450927871540194820194840019224914907239418176212046081980106476263689491762219240050125896896086401982810097297053991890448917512810608815547068900793644097324481146621401976257157779256280127006565137067314435473564410924899245732485907047035860884384834494821260217453381000384807976844836921093002675895827899167336932622796738059588275003088596786325891791596260930839921878532632503710096210421699866866500299642370742794904966336935862668233811451873751693601730989412954463264484310548203544327379123060821799079440628484457731041621255417219588049215805788044082367431575903130790112341639587510816157948340637418539617473790895703804218012135916476185531569409383918075802613567908875215688552325673732911608786052276413950663903328820907457874513270217060332113121125875920058833227161779024811871042360231623018813441625611768654433627496349425291112683958968176063115448018512833995888888789855013660954759169979048515773800025793094740042033684374550814402373176645356332687500818424865816197035240614690469271036984918198113291708409887775217171697520665043312505009022512758326680701280607198511728627335288310222653124827584287640224067263014542564736873298476174959427162808389722902501918270398156570759220607731425666894801497645042096076232328967239465350675152944614735982943384655890498525098541513542194240481786543352152479288830082668179907748662233705884597036788566632149378350077129894666446113870657983011395660046680093959526233515204701404178765959016505421465499662588990046810635630581245867585443012734358454203090529458167294053221247385237564446073277869376174285820445756389197983431726885471267311541832473009393701962172570619785739326258605373861991877844748484924771015434866425039422347001611536279657761946272174882056901695641670623647361837809055506106852429775760390585318963414169448999526272663092389778291099800896159716193388190848858108870236774349394682443763053055467049319596517265729573979829335034282017731123753279207962541994469236902918325492378292074686000224330333167684662941957955404176588219074163060554379120068562195163297118156087698825142546863684055704765767486873531300233750026275507179451120748978727760173907603534976850993692401644680119913012687240587604366642034516208049405248525293805055602497622026830435749554618254143781490479796015957005242290160672710116431944737252635053625662241877443023737207856232659005404192144101266680222457671913198721020972218772172709960477759571852273390150906764961027527110088998738271505884457242044388170155630636144846334286899686663758911806345394851250750927964830916027255704420658226382087469362417665657803044020982247832923488583275157494447040010053507027424887664722811681407351304960774091654522783909057870540275812407241505011301484578908734458158982782731078778120127770859794052945593346480045313705227802647308457715555758556677918332882165273302237249235480695217919258758388791139685669170499534658988196898551202224115509496782175188823249029213947682438687119190324259886081695009788228023665786552271396352905309233324743360124902230908557802961329511129514366211238954503569506049376389837419337434072878631007451036702914392218821515265213768660996834012246899334804647984628391053397959962306382232482914563471635284093094656848763064796302731495328844323795985312115707290770824569579963775481537795838068987989875833436073650413360406897844200718149182357582679475751689511881749314962969680476414460761766545137375544773970344995908698674231437050756969891705883700262698440333563800192612016925864998442822643339629668538938456119308811405906471908328789966257323745092754050570712661647726036828154520854341074694233116204436905223982165345443254262541800400394388720278346761932802379315345218573257066585950752490564343842417020274155714078813952446058647212203404870705838920410799647682024610641484056112997821471385081744736684526334122104867487941149172144751336904863277532165685942775263081895517791481141327864864735013910875662809504864054072344773256882911483179112666828573004470480028048044129731455641716952301209814583864718281848466884182380454692313567466298138657452040852841848749965588906476391206015598540500737691368276208352513497504831829964024184568932297425221577478341268074406132233749146970584111396379969185189514219312010827768162947218915576288686616861340749018059487549063957226995147463199400009765615122541217638556730532374220765931145858958916457292802827318367686259788760461129657772967145329399095581942039858685188220657291027913443424036604122557075253870985466765258192925901013564484251549752297563164486731577079849577662443611374779432185989161844408971353693483968740911070316404457017521073642611515652460030703062515071317330623680598023003396362420298376401565281108619009001177602540714781150313165856253223671639223971755937674186235955858894545031937471178054112965516793397124200342638860785340332125198508407729730186626751989363127092145164058067873489153940942766057455641349055364945447635710450295867965500985384144019083798239277164035702078574966465356280695821449193658977429132093264660618730160294772118069452288094497011850425512329675793123596479668418943186762311174517963779872244993121648440783350752066890684336940284390269668011350869564375651645075522483735566040605236005667389560182152742789463282690706068907807172532673887262898724408132146378363844227108795526939383389959382494740416860899418686420341663586866720682982038559750626373131778811071934801879183668374445440304880558068332787187047689490351015746883510517841100920223302097174142462440082184417688038056348215026259203987245768751750779915428779679617226405358862548724150720982771043283990955005268778200381511025779400010749215778363815573385084790689845193933257713674656499622136029156161536954445924896952229846078620699612566260919244808603031221970746285784567944359089263478011184774432743190976573521773254802149910637479773211510732242174975143761533080104146068321686195552711119992271305828541995705721280576729256412301822858421273738018186889409918588402441016554242161654902456726735136513200951858621042431455854590366880582353407292423872558547398984874677011498346938027392849084838158940573113403968267841131456491311783688452847525160111034668077161076002346124938845468236068831604677207515053123840840081820321687584578867114283094502973147376192369979247824625815945386904091271463572118184548187666713551246707509314168284504326082324537909648305956667148817125646798428559430939729097362309872549486441877688119494277873849200452947431714366297173412117131743343068475474560111485294581778188920391588974670208167950680560386854613311560432277693581519914622564897142394105493052128278265851599237740508871647428152527431269430582941602909503714299248677745422742490104164105971355601422696339673205096317341470423575844025241380552073428069030434576425897925053100268948020204361327854727720151106765831097386827868944867789138144276726537584211763162210948435850877010150721313750529848667373045590075674508093596070017123124442977596276843517289588690272179094178565445570229442132406316510291005675528538203068222606960353615209768441241975187440636277646575814087297441274903757312677348402844027152421164999788690240498731264086683623731595852980428800475514515928296440766404403456054525252748381947617291536472816589682904365352167263878803573803259322523726872586583131775315846616869365333881236317198737784972622925567212303309935703691532373048861185422766046538680858543910065938264546167911183849142492852894773085027677360949049304577948881922667038699218849703013411507115727110690601405078813374538046841490389916019834671999801015441178950669751547091265055132602736843884975768501898796597233588351772053307831427379308428988728926306058417499801246948130035433074248147284140444909008217508435878157940709440309481442740420817885327274347362535376115313665059526555208874058207543906660527917691432311615456173213905386708807345740382472084975926478402619642653164903863122761488473730744729451584163057912762804429680816863864281264316581962918922829786850686096796506586230481144817651760427610843654907630549462198699596218385912978072969560557986848396110160123920094054455112685160415760465880699917664824295146425030435825776977173779803497522929296589197106183062423007545253075125963737378934957095863634415141813725931428149951095659927013590883247568690496043412783441919069285259699348699049673430384573161416945768083569270808385708796533739090913245194564913122718758041286155419161879166069733677193447186251459675271261541522473083361976645926770349418782533731509750855450163869495914064106147080902874832224305397996553986085661885051407508288285866515697203593291359015944231874667104602195739236055534906319875871757169715450235649188151480201253895412171908831569485196434224478357463346253853075362685076925804180084604720088379592054604120503941680570778040581309770162198747236151179092950484758732620091087916589026182196813813866013499053272131509132193303504319708365830358698235293266875501755236528538721685716061217601457424617932473118294313426012916285034245974273837384036064287095975723580016821757626007113416295045633176195566641814563751417772886047605539824800207907530700999411528168372707662170049683490248273111615848694883259377325800400208051934049824840333538453700580557835100775820021490697938788015328445321224392625558164210691912083986157082506881739288349168419170211161981108828768003377464217335857280102531249906720708204452424819307794871523680596051881291272653294608962625609692622001185656440266398999472676629579723438853016234358115081750426159395603403461958003275980851136396072314862060636093220130482387877716867085832499344669482414919418354152984088662541643335361753582785122085860060656754208306880173581561500303501504664946575710938789660047051686160881419040135650174369561410293318625804475319256994121694530407643956146345611888725435317439388364826701038189594348351564699028244892363020717133789136901474297356905915881492070245919738249524183342111919898739699533600389492740653790767455027278810465893183946889234187708453100169999438194182146164658074265639652417270105039261044823148271613999336989329295395506208090581461772386498096622471520226633396212564515789644319504804825450000517340544571262193550212985015065119526471819395623936122985389748013559245693818852120236953585718264971052689136214577448805452743523800467776286467240741750968217293790445285103591347859358867600183340044245358285963133157917248390496791634075112144516438077495258135160163740138150931222303237050724618084481427228372988453796549674154066953838455422682932785061219777365506383127345737761030988247711377581221452612020128460739252181426130935691203407102292000055069408426242810103002589747042431806497951127944930113496721782023232668114997348634503610029932737906182559636691740660512752190291992110733167788122258994044227975664910729200276648185453872106801239446652947877436839472133948786600223959513868040341188969696790700389612464536077549669607802325589691338337936339558761203944567347694903678923912563347181580601345065478856685228431985350922894536296729113906142609673877707401523906725839262744068473469129268268772900759080310541119827191091936740384488054583166612343505173678866360791989448232451876817590731527674194928624720512955807201751874782209023890243518208415785465849936718132182741421653117026117547879200476319457877710727559757008432868975590827697770465433198928687600836512773609388365419898107471999048599904685107231602087767480070873486561165077982114720566106794786382836618113044699127986130749569127354454884235629504065323503045232673365229708800425727438896899711884966823174789570665246780034307518851963893580836674424669397601762651483833358574354129870082870923386423453874893916368048115116322096744055713318213980613851605344955215348808263282705071979071559528817010883063327145161409888384753313704333251108310663256500812174700075231965576950064962754597603922739175810690535213946394718758833131586879697188421427592641628120569193724763088898561895731618055397639538910102303989575069625238191710264042588684372692796623065092797934958516681714658303035877650919073775212068823324129808904612156512972777019171602362716659046272193111045232510221641776145136659701190982346382336413050246843183375462665079688431622679754080008543767543301597873114145150461837817292883376241016970385773135965606900957361600040332481933296228573011268478555302204854136359339912473836348115200255793285325260594856750293660058029300510886824117702126159216831395077638841897883592145245520501870367505192256308294785880682888129298839871274297248035066757126678113684757676611214826625214526979221952476196753756323384822773206040527910440357696196320959122088779496664542739683009023434349040652498462502163720026077582120755885273732193053089131384484612170619374472078698164330783432590294490585806129061016070414217081967968533272821450637635765983852043174619173344623327413447468518254300821441126320079223049984358830627810852955299085938102723007554398552339789774963200199805677276975408847482672620350860549671409876108929441552172002322615194652117070152156094458613094054960883338125183327768414974014534910947646062663204959670778925417966758729367414528792817473845016487422776936128291692207684650546074578788127336120163094903967816172057440084194743326389238424660007671878515347875027110587142451589521959697610197575101501193184735004972437754352850454277610765182618514447834097225909398229521261841952999932243874768264051374729110511423714439861715783857673855912615327740771296785048948637648015665861356608527179511915765797622790206774127691731948966668535497177146703714531906387786932911407003950201128099439044708748547833271767551191288962337269469226350522315219682038046100580335446828260966031131773719442421789567578816197428035658879628318223242738209908098571566722433432801538717987271615971227494552284356058798546057550025680835285454739605620596741857120231449165155654224452070912344195776057098561068989791641886579042784601369560051088903283333464781108782840670794831994908495082118247036554818547842851130361633703387096532461889675096275298746659825831462575416581030039844478538648458405379256529954718728979260932573753512107950454913176178149628469412753066047147852496887021125989942540842147279404134866877284813071246122763768574981972153489378624538797452880869589399603806572049839849534891322815038881089362739756847695332268341536683140361277396328978367845641484377058629741341852143487168937672095728445190827920406249429834890947323882018973847714905793586775353393053117284155080142177460723267892465235743670190968706586245440480941605137161719433901522865800200493169942033689649271109167823562202872489012816478687421711117574391692477842783692742216557461477181593458893339565589658045686449162235625837844137244148244776538295028529122287959281122825152064582480335123846772752383050622241782650350897879933479354846811876189906178760371028078342005224199313535533517264247080017223731543512911303740288977130873120753539958357601117991535828391511980219915435730822374899392305446739683471509643917782623478505925287493125545006337862682113537390201311289309673868493495989836860677545163551157695256480275284535849197225621755211942007381581922956634688424865938067604583140938001054648972089243502551525572223639680713630791857121357832156889335066483483947760987697561169887474161471245333617764475554743635133206897209667620854350464653677862768920830482089619761580550933057604535082907258624172727110533774872611207324091735880844634546838261277201309279589636373834712853214761098409132767101458927089061770799899602285967649178520389498282638128409809891645789499999466558678060738263899809375768645372215179024927897604711172902300757856885839266800784716901634424022843946709823540270840859946375369345463381705235009068642654335227651071690434630649737176000048147200823439094519967603323949494831337073984264035624661110539146158614768344230585632682677265375366919461617999112294540391212355427514218843498463098960715191042863257800619754954809310814108752885940401837687416127242414574245674396709098863338962701720978139357168099165961212064316320980964587796661541024273705970358092046854742589140516520792795554133284542090315406480147202202737504930433262643839946341786977376321100504201905767290564110997195811042079088688732078026672413720168245690556679938864497707053594933635059906879103437722341367778382267940388716799960252081662088280100066352749338109009474871385779098412107959302106754438618663052731554698876299035708775551364382845184300089467532660710267152610163376667427237714714809701527548663814582018256482290299449585794041144971194769366291050881046078628372429221194567449124551341584833061674373068080963835916695309907596688349142047912805978398479355054065935104496608232925017785149743274686430984078149092683323676739312960466379938885158941000859893064034621806967776980663964641530858383507892244824197948076671803794724386618224307279147601428231382370594428886255202585088499737545872737418580415944254487916288981492793194729681546980462331259672499034377854783226932069650684852515034459986294041457621876178085731368098469779262956300050954848339807560461646102207998279764894470108277208437129675092428695290499818641703804369746601295266152737485210589428490395811458609923499443268315261381165909694847308296424959915726741601914441722956767809605250841869771611685088731910887183172331120090702354058702442942624243953943258516593506941250959427284411691705183694993354464251999220801657359952629643599720197688088810496852877484100094155117042477320175328964835422896135730853098918426348020298454551987084834429626508530237789927172889189157566481841142136250946907885135533300401974054178720920844473349871258824542459578825922431540537074540121520115009411521754267131476112488832165791065087309680433992984994485657050820225413437097736286283217080895881852908879582699901752698617542918994435311756701056285051934689765518283162440797287638960500270651475311341572715782379046398410039257423871834503091501674316849916564894205006997692985305346807561457300874793334605134552185419569907979399123823876454809877801533117076329726986461579980275505702843967476522064861852482019390568898028500626045081582445026825159274452360101147262927941323571641974752250687592200926870928056841580761145642067827931145880184657560419519392805381939673723931267097281375629581250733829955345541397098505359685121473657876348159400073432747195432140634115911005368184602350526972263828550241496244713355922699914544730784437000203853240658810950671947874233459306410613977822838851838768360835016220980223433541785594814162249500750146868972582416681733234598558318716283932408171597000625240671767410916326285985860800309755276212857485764704068900504596850547249470243065412317768165910377018558301101405004852104243555097423208095664960508063349247798799215817564766880831299104645360885342527336726315187195062909056478385003921465842769845119308862937990132950952633270918363021378602402715208589310745092171816753981300751517527786078874092153882672844724663327069274420025081892404737026629148896608177664481093780343453414891473600524935946041111392477076198559941791124470022211970538869987042631614828966359423125841748444673858496387699615808400017888315732361446811413020613250019704013859343555593981172909766543790978067576561982839504489509668601553879609248083938122984607671288878358019743723242888793253777363295345720286972200555401720922552155230224556040930318116969234499439376954463208421838100428329051470631397743875714604417076022924483238774071432328679493586245146954524195771428718644113594846095847890455902943140177541918971039663129342748089879994531518855095430273529433419326254786355530320906143007940301623597062198186878102236788334513673288364719322716227874621848185793286373911002445177269949162524827804200434085373801759203336359648340843267527343375291467995862084662138498445044299600502874611486274158375826036615355776233244485098456282307373221064817247685307052577636211208525434966925059956794142482135523380449332451595960310206779035664709951050124044827807501991273269058473992513156856654753440110056634978908143319048132880925626311532052953305866830304724693590004458358060961061718152313122130606303303297539152871329145210564939733009223690792170846284416867679219332107877389231631023895296550756194205485351625402073911913387237236093423901886056266748496060808494501770266136396344310434271117939800988747843958691183575707362510157348467878931218673396980541660771441752596554148561982698937919983239071288390586062110759460537846959567440302782115265445327378919776631092639591156502322282112542021125284862160949736934278367619430719301812020096507265386370132091009245518313637593019505817395468379894780783798856591058702399076577846669426334513010210018372949345577939971105863525960830408373453850905209357264290254188915166808237785835057202911105519885905342988653533692832184247219804606332337964967747208772393541999595198225685205893682245239367135420942681411990298915536992962405924667744676950617571339403829605863521767313546951272541236659306300792127322258839663209125184174028778256052473751015120356922447911443823448890626978997661879256259263863016193151053819846906136605288345900439154922938785150466163642405011321321205495668972303814586985261171302767641655268321916762548812465751630084883507399868003973712617780282243223193134689378009735264680496029425374273494404245321499781953830738271721005580181108287555534963029505679544508450635917013025099078150131818729118828409216739353859614193166719125003728632280088264414644847710954661290874850618148137528699957613874775207999732286298500670975825320750644517471030800083160618018678934236997967596543682884143929795319788510710615798214063302844347724353896518869155181559988740095532912195044888202203049208251250939164915538905385199663234407331965099570874339494597674656569525595460343915096349004363691247035733573640311116744452576534099502599014598390691718367173989300159473977522193905659721167270853688662878100684332575551652846294792610232323882863693631592928183417670639344613330758303544324559456177158637958854564055466608383003901352393234398799791607374065795643105317123268160355036218223377520952848961786510787082108039703957655748067699077470883201081690170632154010417969060292769490192078952312839608679472677136797762264563513415957800752361273813096959232170574856432809538802542629030959362179157171797755400123042891580083573679268522045708048004811200994359434109680745479075821172044038652566512593488679324475422068444835013302813269259271263726986225443584399274023378571912042514600532178342943643189388491991521445363102652837561883868539169201309471391088783794087612689256377499776260897151830180250786182963789555709902066094724706937396091617220916650873225861555615249455247796605816901978806217895923969862934031939829142258961451935832126011041916774078305976417913250736231749109121323761046636274881759119793434762713685193907590416689229790004847321984961873081068627241142079758136611294530240045243481363580945932566845213395453916146851921234600557952777787351158196656841870242085012819781684725865465263351561649486998411291292194699000518357200636367565529773032431045347762381396986057385393231486243525577291934830158629830639781369408180171943791305189483781616363333740808377723628473912040835926907214244775185674581955674916669831135664966641388667782443999069039837710375103559925656582225193263369877397119067782635709430818203275145464180950520439866379190649321390099957640859197876923055776079193402875307569841606605041741866085631665575507225912324994692936458261374228302735740316117791226745846544789800757942366440904659581652082347659802871058369651141889351668175251712874024956775504710521818455073893360840116804679785779842894161762504289355769413329470111958881138880656530953754518895688149737800486394096966163917279457122023243470788942926567526512080414550025557993560927057395765464737716638631319700965669772518912688400214070582736930177991961228238037869124278286028448981377036171556574860658409274234959746256940417938127496028495020972558490816744633831060537373414512971491717735132338735438294684741817857398637237477439534936814211457882033139276419785463762760230511132738994570832369183935196102586356406183617664161249436446536367537587238823472166748703971385651158201466038586892750113078347450597819305992681048068041827593815383720160507577390033568195638229739104123739003736236038573135556553841838009839381307325700971097545801404077577532450172006594182535633866358609251607767415278165898712555033624298926006676067190730481514283938098504590583833937349980478599733839180653423965326930837326503513178252598255523617776181081425574366388587803543794154948540041248662841353723964819906302434483517689818954558499648265496496435316682782096010630785169995816207742975116482356904951231520042338476507415272981098457115572594631177329767769941446752204231154237663109386410668080458583546046622155096361899571688058907548624878644505786953777785534851914205933686101520254190859660164295273136805084354800699713752823259344306683515003851574004143089126484732343572414084538391866895816210547938840617637512351078977063940293731719918840763537375075439384382981267423701114320203351361857580418468129433573287450932120527868260931004404622847154144800917023525360934913327386875021663149031730809330865153900691976875795398346788766626415067605728763799128380166842922519532075122800060944868723436134224308758858477825273686606414659073676855458328860332244756619041189679642985613250727288777882184599028083404924212913274422280392073961166461985339041903677444559574023131232988968138114696099592663316765225449001831968796370190340580878258245835965833709013293116374783036267256518205662723470383185392477381831295692310634664326111230259184144739912416871153172741307909141989531086326582240844515894287062954057053423484327206948225153024260458459038824033435659818474571006099910281524736334968085977890171294034200399797989346707002542580033471438467994744455477443159956636060121388851273648423492342554665577009512186975144349379634931409511266278311140523871083450863588892407368464035016994326413615142468944818532682359492019359282201249814285914740299313139119696565269518648676908080916327279134860937245139760639716916112156752260817525070661267759524268165604784094511673120883895889694198023763015535801441524781997286273086269740145761977551039549321204407971370118261446028460479452208387708959015316458221549150406888571248181005555786289844140154483344403582186499477282071714479040816080124515461975198874697826613834713727285448115700603013352733494088058990533834777514539262015133894455028705524720796368336133231328458965621746913136491008656285381174430310996374176626407597148556814554855103084685096271662587366151238393067915464216598064746442930858713583530285372039383948566377617525553026421610819963540867569670231754160953399781662665260527119019530535288624277376207342288918222756041176915859827260624658058544318550765617040861888844119006492325862475702384809439145380917335528702838236177902568672498523257508348876076134502604148584148522105099062344480437150977695009914596210522631884921149817791054160059905459128264904214844355812540047938730008786040704794369847547407293936765246830178789508947214096963798478831678103020763242681256912778287827563632608218304937545707179633846356296246777425198376619039523606263414158345148698946753946515356244517756520835396938195482617815885972979774417205362775799269189073313240669743671076346104312481844360129149364333928208829765680923309508190348859273010888542634420532653756898009866418714654326165288368426626964961116696457292542742046092789319762672537738209072033431648725014953424391422545125596813134151343949331262521568397277194559866285256869815979516218235602931395794523917344873864136618586835011180262627960185626487056286498292737258583189544719683411834810623952272669087311289902273616531470212335905577149890029196790153909939873847299729144543380671741728075527293399849659995367190525198086263413496668252474039292045187935087509964014341176021725332822846507548390240878097403821517798982091222106034090364433381588502001439233451900967068700619889119659736097788036423115786592402603683086288818261183765863008599127297831302425864081317662772719716172074432378980093494229686989807863110310627277549517977115628186853985922900083029390710909750171684537721699031727080060002726260027964516880013680466817485570139673497114150977888307300085701809061118282218056796110255120737979444609284891550737733140174924652142825409382447642428155713777881944268441630110808624016708841757269627436801201144275573536464317368321088283428092741156070902758463284448741974587135995434757722377867862738920484689511075640096959710020726879898305741839419045464201716005844280713098407844002635118438562342443208803607145095354545064628459205965974200136072795560636850811463790548422610989459310345153457838539861257020039589235734257162884196154678202952955113065430663227552555522037236734388918357207694349351271406802573764090859312275251610547975634976286462992769321038487461475234681402488003931118939595662201226461942926696381130739843871378008022300137530607984244595725347230946424167761201058612894735654597267125648301289788375969527436515133795122746841438248144638581518724354263201625656966793129232255738062491279088379196346211784064798372173140688781016842123142920195882934518856496527043674366437040477390039751819158111932224896650886552918692359548466489774006567751923988169943928835116262508423487819641063443693107212299980279417633659061505840583488354869232550254658574528430194174548507329036184544420749098438291577565326698103376647334551688983887918043146474015553618160774924794592787277059265947227334336885906601817429031080582824401122851706360256566245331357456763395691366501814482673219178829570411548251511621251631581256653371528176064854695165872533172978845254509612782889633552878832835947978427288077096222996812683421628116740881777315875041149839991169753809784062267574025677888489388452117987054844891152302736467634060962475221177576452797264285605962146104250392005054650970180579874911785315177765493710219497327214548874092682307174069102820829691093623132422985841068557190786328318483408778337019533260417309481814900658515225612722606720872165403522769976260446650290113420918314375792575876891888403720003996509217338861799194954166076238873217384585092833382019209925648453712287855450641188157123303523157324302929936107974092023556205414566563160422416144982648687135696686097508573445004920873386622479010673482409097148908532473372045455506529587183999698125994447748758199767450290582532530397635445512904144471716057280440098032880553480223358724453116813763523873190907019091941462791597967284468573035978862556892148431246680054571071190324232680142157794939144048091807821176142203622221681418276112306969561756675349212147891755345082307799678412807148094104791461836851469711070997995765498036079073110867686757037088720706005433519615051292920613226859283794798943145248215755220349805068229405505860388246535313455609407382199899550060869315871532905759682248351971618602572291944962523998475302692495897045280233590404298343996610658713317532362928689239600840450772743695406457799316689716152525841384908424214301957280680393636554322617250373828185789783497118501224327696334360240664048280222172989192689727291080194700903467001892300175136504649581985428183337520354361563561318762595001736008970662756034509336258295163222210640234768912213164648499225278922424669067394865496650874053860382727486470527751727945897202140479608234516419324831564571570275627919722408843519805255897715653375678161950636193074011904762745891155823447791601906325485111643760898713961569816645567398763224365456507209784906009538606314438793893023721598895270625897634647650811129198875067998644372345074882095378287597320806347343259139725888229533440886053809996547961080295926108259451167275084710969023864083151084363638245731593634335153828355360109803687637673930541840451846997892009748254490435864113298868517877455676858408596165926292514855824608064776171324876639778008006862364502898082691944431816564435384828478498103527030762630181344746374362997523692989443264710858839244962487907503350554302928712654004280601148015589297983103988939312879756519618771465901639925185288028940613436328139375488538359514493939080813713265066950839527217392311008459348245453839529888531589370725242058824135774408141663659389012263343396242014814847489262183693851127802018331286142529587584352729011396372737860717578043929886778280476828407909786580559891064870282501904181091987533373341037165240692004785573317716235313666192173484776933782974958133079916639297959908453180049417082144647868315874954584744734213579041883830593014266532690834397862402833660739160335998947758133036323826781410316287447229715469705425219983703589895815319514643765086873611844741931901446386178146210613082660303261817896821659060772183760403344666014972872869230112761709283910513229545485040250284606754790563624829575001401189653059224372806467709337660036843793053891024647611559862879907699931958496734307785970309339099236723504911014573818181176039493155494860821279689198864130619694307361094849234060006844575136700589679854561722847123457168499091804257565228939044762670663249179293557820459208817768370894110579981733345946890150364660981435677387614666276895388816373469184054366954011116197625651822951124316499234180694615319683928548851947320564787926009824049828902727356775042266483865060867808289942413874357432014046542891965483008137594680876673063638009614314945047058407753689835516667897497435894291366707940084804473655407882235900341331619508196678973985755169046281758656811852213898495239794546516036359534039378991042810167810762816127313782308591855225248032553253045868616359896419072136368796734518779459442110137906777199151812739217382603676862234008202343443967300632236899879768443363472237964483508400049550199193414564486204503918268312394037071565265904788980632442848125215564449511805700567890921011734079329735474014247512188979384164627640327688782112983398254409585450663307262931822107102399164359633321028085643149135839522319198419366224660616524854466457126837848950894396586107885443729897207861395987374946354019745777525701136792106022407191986004741613402539824956159782194384435667772745489207564506397209128666523669936186359156963003078281890698226078228256259076227795210902562185487786041395486958757386670312329707490937019966954995985336831766868542016154595674071093555275898360893777175159145998649283002613079649570945823051159433708424077617165051931526113259894374826669576610507430741277697340489467969054079766125268949219535750082119794745534707571098327714208199900619231995741077181167990433688156649658504808212479424757261099758407535326323766018553029356682689009899913573158376935319650904825675538445354467270433786156455967885438735684656185723518848232073174882267134237752347003218544028622224295672187421710752042284747395546296223823302068091523106124892268334120357663719703120343605293081485852296672910435154670564571576360939064122316495157681601707745110823064699525137811964824478993387983018143027862631080621567600827360217424648361527986097660404705879262472378666599192756208293481055810797048383716911379665961729697756460092803061365143537610285857224500534272739670577984444946043931976004896844742467823487264525513010751054159755442596018079046863857767797466980833098453242395543603772269054752980794271711716174530054222275113821747179270233614478268023756958795935835422551173248154252370666682514553106161636442735422593068828236832104695163250984909304679315062718176578546729366036534170139654065904777161066559489702392282920615718841760197244318790396824818421454031904603994357262538128166198184476647025114756753939416448919168157744839276040909136338138434369078405327889635366323860345138289542938136904480084976448152851717944136032644111273261686797081007999772152700280983519655669628610226800559290556514361642479484353812454697462332001900085462787011863129280893665296291783111624171613486554127148425044454720593337206639134498841825682516639707724487846347751075325374609408201329147729580714297317523824866886916729936225539633005382009763453485308887123092074470442860036412211630780130775877930413249595634764289482549075604217718558905330410461644909131287808957710146201153105224975769212717717405530267900940040326086990121564094216016816006827501946707942859363074233537409480598007397244358639577176127702022341008841272669405464083211756407242384279845255156274809656498869726274283458450814263472089924448817988621746446055508183997389242715077614406264632021097113056449102103228982314995616001009451113793962694369552180431888754562196525755755144819125142102966128102447666547921059081185606924259083468588199162575800063461769211056955533749790583244834858767980283933427238705884894807193202588839290388463064396946309564805109658648893671469891022135500459792079072372077854487294724543291383545716330427855646025457300786874552864485095402165882487592585091790431637771341475686857557187211702971786562862626555415656588094288454156820951411018678374514440222354084440802471599510508005949885770208633436970754612706961597355943255134036731495025371484906543761975817189103845708068983556378381237791948203500885206617887969353555007229771828109827537224937154206023377172443327835896598358856366923280625773926639299206727367868510824387642113884373532255692892903912677266136164344996048577557061166310285605845861623601673240401337574227318457487682462754700661493859054362416388137959503866351922647177311355149215580580183492357537850218769628030492220737227725464619760722810023377675625039839769342765557664460028090496423460447344669214479659311146354904264989055866834251156391927015434111864714273573677432229832073900258371309073096405940815469908264369373351787670436725692403301422054987193949396369101781175188850058565851457087618658487632218344755241713079917137124134505587456683614520542985329909512439798631091825365187665489567242549809417164064866228618465085149087221436442628417468845455289486498618635475716559480948951083891279726842411904342870412373559405296795321342776181456251071493569935014145134786416958320021467184444507365412516020287291033519920358809471642309269640082623219294210329015132823111421524282720363302913037929914395817123015511748173316599205948299679589059551972630466162702929076092415050025027233678838851781040093074165640395557394070383455654908509340775714229072188316353036413533973662952968084985589305122507045327144653046888881786092977256229914443156202222489530590405433973681918851469078954392170622860018729769199236765255377998165589981440896197920385039163947324230106561343206547129297189676281256969819614462426222583127556203700464156285266240032860128659685912135717112282222839311047866780753161310233619469567070109942807640235113607528379744938690385716363888492377561014259901977282233617269604410578083287422458777166550827895420886665841201254335132142899520954263026200034963552327264595941969029173210920021128822640524196893032829950436245528206477536807342619012455444399678901173679523189794099045169751255521612663077801150329087295416564481288507131965836000905106317779277547434588502507712957740543930379109499559641261910525310946744351202280819903692287927439144048365434827323603014371286044263549689569744649672456556270469070453656376868681253477143284846966134985102496112914917232406825113432762517923313813164516970391392664704035570032496498110936075213379851686816980317132207885720707042353584168419450942831021196350189924779343036393494709578488551878725661361751512510763738694447909769368428581833798184323978313002752456507278359004486198121694796371814121254837688005328978341646834456143492924520164508226504528709570964024720325577119392247022985954952095715467143891662875661369809757297053499902635794614504151846438535160352636920768140926804143562861890500267028821252527812354914868524031135697431569890620193435098593130189584373145290353681101352002283211514741424067444303807104068844635252615455184866954090518209893688751960867039003947290201599844747044061774882959528765536940206150360130367211294357886074985192048911907536337374887110303650862943499280631038158589337431842351704171414635669385215578231551855330930848728179232852415102012796973945662274991885388409492534319836532909614812515032493495057845955616594518417674361951074956789232115031571614855229153952076199493652504974197582388433649862680501918762014708570015319187191503673274265476548549172681161329319996748896324570877915075224866534818970305341537603186878793925435844296140604785336320067077781248795072896286848542494863287309767668670629809756841146950591456024014441990802939421386104968571323709067119993298689128181518653249506977700993964818424574333003538311518343961068094633418543010595572997497616563523157091341079850146794957868129526495804613512584284907763300892283155563536049079452158845176638134123209045029511419073879279484934769425345732397984711106888864964494355118003528440605471045931267160116857425027999620155258455783346647097258485956378177747233022668617014170511816907898156411860238001777320121551601490689289394262414949917659562043017952699235864690788738811853330301550576839849252894174179684922663833240647919853834136710635226749553476476801643275413305612746949631182609469877739240488135678228180253945296689914154035318379758656036422117162322543804190809641294945172321291807399019571506614918841841612816992413510478694478492940850857653609010845455742806739087381287255140750012733525602089559775261932709643540218306031248091239710314079904602309073542064070679288916243071612644634521206120546859147274882494269309415766160849622223648650622631628601889174252765629664023596086899584210889513442391211657471393984549352618577677986125416611308947890262725804760612169066965598295632134591273528983851802534926521677861027274948637817335961331911661421608898264437202927677479566084295189910398272533037250006316912871525870997684265163396740430610015311663487115197704701946093976275795888806075940039719096586978646763530327946994636787337768277641564713751561241598067638004698969937834488409812556573253792532324959156797899732798993581072131323430424062081895278344758577804261899324420242490148811478438176844132828406521151223966308011814028274655483825139970698198341304073859937621949146108276958574200062130344654969612481157365536732244664809158448560451169696729766888151365236641039231247873878475980745547814225877834885879636536831314574456226673490648529904595390789311906556646411399724357446702870330326842967431650557164172269652883598666161174319520803306092831719235606090397291676630594488490797735727805513815793754888662815404080893838594647099113720278141815161701893200673556415079226308490004323408492751371259524829199266187011262554197592269829880255056662904346299926088228697665696668372466487100871735089102961639372346284280762470452431273569364082367903886600403310466365612254918599465388690301641780219845839023086982299940900941264777818727864791917881670945824184841698876544448355950980875166827784202624328369598148377802683852235844611041676005656135597770729240430807322351562442772832297373621497607293985773660999638452325298647020470405405046700478194564460255196948441121287747208911580761539986670576564805000946874371148694124350814789124918556214109394182971896860444831327680710744903662691908446931212585236087443519124138596568705531504731972489606885445900674904734917063784368426164360188320266472079565035999221450855863430826418256966138727480337784324253635410765145270359215244283323097576646052072898813111264647734542114423785287761417075206195754827064062599802392025469275105369809410717478941352311870596157773090123021246986971849774803733933619379402756024143018528740837357576013998969521601927302429857190252684305567320135009697328799101759048811263964355732548163888883680287336242508399358633857190624613298311608995574293371366065337463525458022750085699965506448111366585309919198570235192739761426131675713061039357115589399165861896080620728009006873767428012806551486227932391943676504368705960345995806064672303495790803636354135784310528080519902599812284171579914337558671710193035887139962355829015268926380421445013967290382945861785796192211030747967442039282526089435146835669512473079190641679171393323122421142436889216622081848646868251845772600229992114102365020456039102800374563447897915788232454765213141462756523143752013977543087343423511872249509723123757420863080813733628315259987747500330587259536654178440159220753212844622358382488219030468084966294556354554586877020658938752314308848205912713887037517808163926986094861194550214646029657715749123613610529828412839986855802716609389971303613129903184299625278178641988876986579256804357033513007971012761191779309314584391697054027303358811906874484732975889747315184422324674203826101394259107049613823000914687985360630286613726267936633424170358333399722542419135310782385683780312961588069516122282710042190324058628903189711189602845571339753235898250200814031561582915932579576487492570907903396025296600011011047493746498815034089202970457957818532190601176234913567264369857535082011576979223378328337891544115099810545712376253504048794163916318507179387124340455742207454109174928526331666247972970698911589355479454098001135400683128487452173197548311310586376081998633707317341967982170792322971870202546220862248670581876385798284686168063612242864426956899389331065992321338118537641486880057812373664760982530315920268535688484260097912262721009514411928937450847840956591478201177011129718105394760556634644451211995315530662853531497013102073993233962629746838731538168152480750459291083515491865010348535963255778577385639882090592420775737079165232310578234544868656478349460209941993998198954660903276931558609101698956461282175519723474079585350519884679161777499759394877755333118482970593979811907888827946149973960084074763408817510567448100547779497741403043389195723612374804121208541881082207627560647803429007705569859822660653394293503979468901410942757324953886933492077352690797088117443682224780801712367246384184147147918777268177747958734002258330212275033091066825283749743189839542919850271521033091123140751625694517177936350414099033767884812131323851613397576817054151633934604377004859332026263188787086213911984533909754461759603784980067277942948185535141716764514453588058669997786323706959911742756378907506911153167147364136563624981554029488449573600149388992826416340131182007597470179191973250275215554295283892024929545853517458125593740644555010039822593482111233680851449546052108563435548952342005070394337815015891595674409058194178721704498584319091716025925103990340894688258506876631193742622203069888881318510668519920220195086782877065359624270078214043276331557607702875484595835805841641182118791433691393702015455869380416886297901008911338789769426066186434587115369008621468456031970771129314303540946995318187552385503175680939401486982483084808490946328464321033573860992964118443737733744666456179191682517619873235426580574452828446212157049504521213527025215253355376399072631965433629578334331171180507510446948559976419176081435728943193837070616719355966241181557685612110220943011066832689403167597332665518667061161338899045490644474805456702778197434734215474316156618193775536875540583588583710174031278605438768230502477095385481926768835172342083192563914680904017418366851262441095997620701350279608473337297413228471184709152119386454492537923832595603276495699911320231056420157315870255593011925244162783913107117665820501575817256644841694700672737229198696978894499925138755986949940149556855543722263736171904418594204719542456355512483681308992847818847148403415472017059669493297114002560099303177459859735835356830626297407805583556272706547307060028103752056270472514007888823536473152427670116182123574882233798533437385954251768833447085127095962470522534701735712261160100469722147183172390165361657652020663398751301356547242481244552321969953770980384394418177879434721161899242936920305027024272161013802758406048555559875636356033149766497159790624775001327142978755860674442477701171926747390700765777889203546906236248282173983930052828843036799116747073081935107834186901599775620547164052306318580126084431526688624616232711900282338725676011598629951138629760366972514085524429712263424615441513761607858407661609531518669225808184712534644897392989282004207017918587977936912733256609054766607735563032923534414978389948403842223801118545326748099022983968052400593380766768821496040246955139575781811647743913590862633552125216060750103861692541445182251484318617729917187607829695704308168492210658486275102704652520279458531478860693495134743232974142359398464883869053838696982344574634448140062178710146641693874519721133796801450155271380162589531530621500603569890467217110148682952154652394631985350664015795531306499480189854990135934927304408296363393352119019851460959287126363722548260011187119250401640137525856286912870951002335083897799737831357890634837305829509763476640664017119688939045899915340137833133879896622466221630208613809741756017467345703632478382562284924500751119108745913261416789946113874771674188143920434231987886957287781557327358417880364660008735273802269144074869596720394001327702818655488237589332865499060602372959229394623201005834479932438156395458016153600277265205249278900346765535439227758261393993805228318570664198524021266242111915787773925915577891104383320103437763187341943931059260473574138376103797618495987023274676206435123004677717463133750581403175936465219574501689279550767116562321418430979806577502005318531006301635110090520979713102624121447660432944245482420739414215198250537185463544669527363531055418607418971798037673292614124183101365155139022553365655269922718490303359752233244422329329814725034483813926952585591171466205122338749797451624024502087565140611636563138118613426407908753515029086025689271634188660882124647114778821502282625630073485351554581288063668087684259460928702801397285556735262910610384685463275686193950604498981617868632521828213752051265728277968756274190945171965956219413049579785259355552526734963088289194413974161466943094766102292171226775158071401345197455142453892801718079310884967301573320899599446073002336646482351407314880459816161683083008245859478923810336459373960477549038172417178664682097710414305549037058549961574375695243212324417185234210889904402074786047403925307996442083792130875267033170325561062156600193144001520630773402125104219415123087342330576483982797744737058720272381360429400797418176510071424146886936306669947879839038051726312828922406026417013029933978750214081350061061764666210889443602551204210848820337381126307380383453381188369658108238514942907082321912890522718284317054592759603150394657194461972937245318386349287180377372039820200789853601020459464750497600046910096943973192611763216469441599777738125710175288725787544565186556742165185847258934496220932004913870408555869305143283076092082497377911694293840999332407484856483059577920161742517325846907042960499033100923052680421115182259129860656472525563283274795094657432189545542833305077357087164985386365643639101442198637488468505981579620271215587517975565359893008224094408561397820779046233998851199724857886132837288269487923450110555708036827890168130296054661650504295407078990782802947106134900963818348701805178653040285411881764194041109753242269470253126362109791323234813373765461708189679354289684257396702546581714126788420177490151108310621856012274073295295879165734169815513767198570914484078827889140504768804869161262226775374773211442008142345678039810840138821791316601565277658913863795692858283845636795509423353337029301636189145370591551860154321589789029752045131933764352634355952292881053613531324092473138498006087263541507718872647505432913345842556080298241176096046693100338455979164136990322077197848621526297042473135082213496534887770692768620727752751167626351685888651649421713569691309031818652059491074924932613590426719715025684338251423771243828641207031828937090945947384524269503940834795966899169630564116083893747652616322445193592803116353245504336270857361372317012808931623153701761211603142194182003455034570914858764549543230028669661009988468155658570469650323160539896558947544068553232387424877819969657699640807217061404953361045637319992679074026733614685273432437387297648555382336009999528418459836659668721926436539796755548602969491372591428534944964153574855453966139846233728883349159777156143000490984026283292345377034256992441056239229022272062032942738536681055911764847241280863078342644311487907973845829216844873988598735593710724381231278851752023215699849195073849133316714188933831504097552460785335239896825911789071522280281965013825713551133237991063055167504653958610930460796809499640130646386710849828604511527882657803658740717251843539629078183219771940018638824844086933486369258845468707451722798695510275856205667561812489937627481691806460628102673836770966518768413354357307060449694771193069615843985617535077646372645870764409804576090127533872354529332186205885800750290703810197281674742364740409886930625221553505345778436506065080891918118888489457507827808778984415883259403526060037393487479187665850464253082639985377384490711668286500550137880739011173387849276370434978506004095988769388712783459046389931561595409704114595545466523511640081429282249455641432492524369732831582165043611780222673134972993751393200582180581197221110723288153487777617010748103581609231664646453272812809753858847302343744043687891277568057497404232265739644448485742594050173236672513891219972322319089748499393456928425562917500715317388163244164569079943807623583815091302135147543357275962365022772435828081016939849912617168153433611547189345818899570546023132693824919036376804340165112100839287954937616419792981782947295641860920359724404529000522447295147514213809463332938101429457953882657866573366028987280729951375082015922853463497964376592086968095395023908247567347792691610429573269633453371242157137651749116827027924368091889883601115458548396374954866064358999162650790728658039966741524634897935426826988006692859158327213535717426953113241786722299684653980307420683572660897388891910980948159148775473366553415242979165578281479867537983439787681665408595561897478911830829125877068304378263795428956223476203007207219003303670522990638735350262496849709574908600029495436341017043958341061396070060946181368224332070638998258184263989358076006899472609145593168175835791514113304373199724952533256468869531459330742242162905452480780270070045069066939205926680689415661350231122169142279500921855906146022907535835198087266013038479554707641820602443934232009420011135447977340853498763368433232017938870113120404840213434882118852487207813726561974392275802763167422479079560573508843880113919680347400856604905985099065315369191612729345611555293149082565633584368548975835913107033037080540958331920065711028125745777938770479196274641713373438568476015911028261255022413258223849970346995560280353255679133787016369416929996612200694889485025493589676473136997549525031177230109777039520616146517660171735949864746015442013416489178875078767057724913587032203130254302753350169337077669537650033548445476511512419061652808312950767136523277506243133470725592166415309812095416955989240580347945556014950724189835269123970153461906010002645845485201898408281093784381871580077660899247833764672064885637199590789503566621410921666688528425307119522137775931387248424817255414749859554928645093888630886184368413020751181663984664400166772316045483540225496479043979070546727135389103679539480778226006219658121757451077508777903706322089834073256066353250589427370076861798177633991690787535603488809703686574009974698695011126883210414978041077649674408491417715795271212163473793303899154413185816427486333607419354578523277368580692553519586835905225475481387093795894986977505002448243636222946228474422537266547039748456023803950960254198245254338983453941809644715832533633091043597420781749059342568862991178460195102829165303760243064128733451046954983495494318034218957058320326955334992393408150104318275105341995447899319430433718481668000628384572190227419468800910355211996395488536437401841722594063134710302124869891189043722456642629531725404215126626245356862037706990225364091130275863822822911412746388984813981465300827499337734698398096583227314055489978614126161630343625739819791179696786325219339363942131736162787356828507937895947386935891658945907751616527533417569581578689521861100090228057102973943896911117841855405345272910680622391357493364733193197456381779412630651804110977343472992007758667914450928512653343866501110958696283892853634146818992413234477867331066012104174257791694276836685955286946154816562332008505473981686532243363161822394003298650944656943573021103916276275644756729407827884798093140128631815525811418433825299966048335165316855424420424981819074669482158472714295996947576048083766449698350099423335187956065970916092329866830993676013706355377427764093869184549145387515104682323229928585271992980829378123065698558739277097817158323392487864780838366340868504244991633713284063888357750838552938264304018903260625949771946239500310132335216812049462077657861225136002384674643297767390544041086909568971987510176134630030111719725330321736877435175440201717011704177869176936326693298168019380281448853143938609261615248686776001862726719889374839164621691713533354658421466781804270888201922808425302895445173624534691565248020454732146263253757815571468068370738534822731487874590703255982500808846369822720246634570681804336514013160129306305803801096604775485850887193686294489076702227808029663051431720320917097414691776574110720694872600582547282218376131310199772570539917921755010279968144499048077397086866702668992729887125392792712688040306062121078128337947622973939674527985099159663805377244746136251406854030528876664856056565049446618085907307304131271177363116120502896502504386023157453282507572886530592780851039949460295311548332029398441797401961688952341787478146719765178111809678036079665686384454694313229155679942925210142538338430176656614991090326808466134020762287412851798873816990030241633160374109360055242279637789550135283203869296728235378439183396890125443004993657068226481250699140880636748360815416461702959338789427108600507536739956613978057702204748739791416432111569461948823101924484007427629426372991022047034462982188636387616035885952906992862042468985862904405111193433650604888417647466329540238154011263499051520908190499789012567602332868540163812010956332042643266868085702242736789714920836537607605714163286102135555515922700777048499284601360618747483820636915844701081225894499947021121872666633739268524365983620742114601519153499226630774963564334600366983501794178652740007417842722745953669172562922711699435257999795124275467533062394595918262756328612683209259674237612121030295515258255629559498533374005318613223255217958231499133633991130891588210002079590599495435667103150153996028779770493229607712784748985749073616609239777972330541638051159798896830424268529134883838818204725324444481439566060172373294986397457447769369149433154024382323940422296224216344746064090675804804525087849609533602595027086985776736061323808699936566183592267584715983241031595646021209393770224628480552869414743249832789897956250360067171763485007772930714311218272490910465033159032410125663386441835543542789068230910779937768819541447987444218339565420689636944904972845716942876669469948046408537025822516835280307239177195567823829255842842992485749239822795423223844317738692971008425889280339644190480363659099512951791359553850492151083929150710818587208228594213672747189827152206831309679593474174685458494497256485653805918451005949282118724635516309767462252971368934226763900272290046863081309829956528115926798341540843670724886519886941855289207864693203090762878552138501880966693898110670961755441416329726904170603547709105496587589972520510215894753641757340972773199579992847337898217644753782947563500572676505787614420617991757972003601748061536649859811244099761638041578278372601390250198601785537095731261482273991549195325985971609964842685885332494107193611067492819659897643934504356374285619401339915552425940191649233341720419513037218866202958307735705151222565831517079483189048456622384865879103405579902127418144642037274471071937751829777394159927092960198804578731615050272345569896118229729774720011675225791852865838804961077735144780659330157851908953393946186145294900101711134356883363253778924225256365798142482810889546673415806185669679139322753577291223831506067587619488200510686320102795430595442439999667270376290625844652696241336361135718448163181123573419776900464541401806582811928635056484434671432597235448773030237077591180913753972299352838813951882975963832400139507311098853719651638169412363756589991826906232309445570996563402915452991804854558967908316817289992328638450721148453139425697353047513206305525887370670992401164956635793618259640449618037482458403814244587174592269183951097540323677891745570551529273514663457634222588211262161473336765932398373818695724534624353686508961580019962837916809637832113910558920230062664877256742742666959384548160909891541112369128810914547873386419757761555065526818934118782683555322073515508812746350130873935202700809184380513115352514538151456619669464241154093772871331851071052767706762532489397130702740444605797518684500621099385006666057020810719351364321272349808449794903220338311006457457868210392709243670999287272304187120965439230990543123252103753442275595313082449876915963003139969725756481155308978929342239962617970348247265008396632212347951526913938485498678584460047377230979710030534447690164350451808960593045162812693455971515046089854492020001093562425253883502162361514891730461354507299900557814070972914076413250872651767223086192854524061108823904186399562779704001384183480600146706689137311251119557081596167023373556527074596405528322136303547500024477779554379213938404660881615728681038604497393409448876142161215404852116423770509176032294158952107472404506340438080200653841399505094995291367979043996528558475874168701184866586700294150665513080712077538280976207521329239914463952955866898891190098214568095592005341948757982199475151719945271264570701295340112046911063980994267881062671877962165205356616667219876906809736526626357706192435400285059469842863069039351055662866896870888345058820028852169067015833427863310062360572531702451003428104596212309534719858397095799419520843932507934614701319481930562402506750612706206326241341121286140060101628347661655724639546335775202426577924161313113859986915594731933243491632727624273209320617298729739588837662498375212497356324119593473648330435109264093243062157495104507735446960352470168089998738115762499326191216378342048805415951904802707304112701302639863834581530856767689282290051070345796816383023330976261126867781398928984166086713236390671537678930986119243169743435701998066091382406226714638320981081722035661714240437656937377922980842070670761158010897960973392082519411962736794069271563615436668045729449247412841029718417496610849410118556368292592933267016546548582447016960864694723992426641980848319064364810148983334415386316800436745201824265613312840180750030496646879579318244965638378181555888899882837242781372135107594547145132952821721483323155474011236296473028620115142553602744207505488701492085113336249712024134923358983505977469859935184227227055023904661278975789398927623596039943026116220515065395307315706128208730191258234006730513591924819474990597362188227705144106253394273895638802887628342478483406010053020500605385546126544975860393134106437954181830226147748359505279363138598557257949868215823654136593586219896073980142083938122134470273543659906084737171684828156446038564967259204246908586447907136542151362093918761464035862725818358609845065169006545491476394657403625256693832793892072049369041761197902079457652686492198030312854957581888820356954264956880365121587820747326563837390643371760352434415118438525964430863354979457707876256435233729684074180116219716873327089667409101346605960844089342346020454419897880457877074227918079575639100884706598918040703441125181926082285145586521085731693724678614951075629035266972784328395660054300203922916305107326240777417838440032597352382561407741953109296138661505476877973960915661384451788785899830773771704075591289561895276247934082819128242064120975773977342743450285420407839368037861182677454144822783151992249890957845506898336689002796822768122164725552805273286768951044941436908496151723362525567256386714084403877115673682345846897736419454770877675662057351809324701429663137977687330352342940593832599897904642373527111040341125167898408797604306835712144243850018297198934596082863498979493180001424363352685602467494915662378453236730235462035735384973970187426294837000456782706292631410938983128519255051288239100824827475523539201678091902836630928290968715830374641007514303108700219784961370936989894870900315686286248777244422608262848804424514342847934613791820832432591667043756104855554536004802665370079860568991619004085698128233269285852976628051439760375356427158266146104241910506604663480538401813102027588232009045545398097179616182135586373525347379019806981082763993805612779547551384780666268851370721560809031051438167878557564501129070254392146630362374214003122752352872086289610613142664428457793909913519177754497212712707435192149271314895708779617898115314542887058625118998575290389778071516801948351181856159601534086262183623049932699228437480881007751666132975553047348468314981547564415804102461703266639390258448102722351425271175615663817389347793428958884568537340928226958128318242085480061189179966083409627586895662888447278915896761272811985404341437047785728755267020497606916386904505033404521759440173278483462510384267432109018021584891989744585642288028477499839374951567506097274424821310001657908885742274567394563118401740173422635702099753978770024104165963832313016647302601461511148139612861266025383152468973893499673558509369049854510322724702714971063552788567677073635961684469272954455387369981244153252322295004816036854279313260958862567047338248097236343575974300491766878701023643971216114809202292245889605461153469779876718540180782678919158197325946589884338498964563143914383574844377038907583967794112212792640367639059095172777335685088802019526141849094644451491328369657140062007493951718908412290399079589421267205379172706207838063559305282343184754221977380591503633405932973051076325752899599725655401978352391240349694120071714270165205905806903715669452956559559433815994753510565583845354054130857598607367544981530929282307845581895869334934780201375216016524874333592940903358735636522718758019482054777724425322156026652827905359481316496015887581038940728374307768360354136856711616331089537210599771091774942006279950111663700205507970117620489166238904036449242969914575583916879429967855335787775627103881914467373305177733973680024242983676332181052165644531688305265980739341980992187802581969526355333600954660273459675892184280991491468674104032675871016365384017010517806089319218184514092659722684212888160200603530264093996022846851258459289692603782320531563229671631760628146731484582402025656589145925328473609185071154480646242843472833050563076879888203728751808827197108255444860462619163378541703447929212537781618374526821632836214843207349795441498750670358385558382611450099703007699755964871254775694594167514094781698550976883065478008901234629507028334391682812104170994475611395343867104627653643618930198193006256866683566821168764536005218392679135230614847178014129412686299447434823690972273072959270429579112086243420223459651386189750832347564333327980975134314770887020695643077292092000417021132083033490486662721442314037912290664531586208938639263108630079215863624542709267574728814372540563575490097272813505693916599756278387075138446924538708333411407013551564933811224293814821443757148033806824096012890763225195380265884402626962472009766256152502851058520323224286919135946107207241132657513080300488720068673648067163637033203396885033735952225232870285395616414199648091408297821947054699916498013054607202571316317663542476256808811643100704324881110410795709391209787743856729690079413444569293929099492257606591848518029422996935070859584618657241457660631567548183956392675197578822930687218869090598475566568154457923406370584862228377426401066676789059568847291716328420828192524820791022511373126057636136200114039659196377400843054827736909072137396487380757950524429834967772374141823897673279500329041591019826427802534524366397962072492428092058780711063692953792874500524976671831363299936164491131721064226339628600972162113245785471202634233892706937722714587938775497993801298712620271749526574568726763995653968257327269933203833873882843540062683373941873967178489786997725006698106742137343588407035953643246055154500269551943999638193492237899279274553780420845225310148635656813819696629270167723506454613414311958480538308546408279930148951424753432514710619128451761585925836037440960438227445126334716193696793982479295529397441020329749871861924496418439470455348963416763273592424865039656670221637374522466818243016111653316823147212195253721193279898302991396837254580879934970276068100974898732044342287821101368708391400247934665866400596640537699205726286130375227074211568585814397150004427463804906049663972934947904163557576545452035984149191975171311141434869248132889324608120187641824015515494042204784080690155163506959980374435656011923594629394073099887292761312163914049421782368307889036637085254322373472436810761944948937786340065223837335833857166296699045206772471869874928505648660063183288659705730158326524308809350736125367923603039064355609866337263141970032920475320485414885253798923541366412613117825635892517354388265125790526842902213300975573545026901884323477715121998144058222080116515017086646965781661376907332049210330115970657225900584505675041834485009639641353087192112793089783248702780537456925053774017871523419966571369453183418981072476991656386414728165034090806117099625957209846893899968693249080755076999119805495475327941315630276260770216304489204121195750497607795841249002587249712501715015603265937377126372126447972870209854273078038169942504838352127821416913050650844375991875391624377170364458851594766541324091702522100557759267026677088098036633529161979361323289389854004988702531644721749374757336859994437768327216433704517112027675632622659228612280116016715012384790706375134104428582193581636203350702378517466277171317688851977638776583460867751792360417234704902962769403536334258011580949892580427879504246783590440814555972118568243265700059415964521799495450749762399473336964496130719731707362708086500045489141173166464206410540668434139349167695311101775102636159730878278581959332324351747705353849240686280143616585183291851115691011240671444234216920999586080206833523471703006896008463814536137571806760466491456706536913038827960923575402902108728363787070682365037717433939871186395601505701971915950129677994057583940458869677126318541820089698592350627113190458912365866060761310767636456742134884319398396225146412318490323252518963879365400528569298241716500512337105841549226686980257350126319749617450600792385126983651757590051792321040388488421365593183193451392277069088134327407392817115782350058052716964756722611250762921791535956067109416604443380425577361570987479034877669564137636927678596807848547756918657022583058654784803398980133456656825711048825017122095485235782233405934994914354097386736968518560090512794390565022148455538080893988307776544865380434646137449382281642551871337435238095486291857266520341540223197630826389430468781812187434487221949036261903073075755559812993383337616394585357936933716221165026757923652299973782130901875151740757067131691597657377306337585067854082995411457446154901286217934447510251837007150360352293796115394528977159071325259729952760967204428026162854313752463009521255411989855981694337063690863445621768502470345151049767550559086898989580494178910171366066357296327338408519144037929422436896031161964688774591776688707829875219931531898885766827564427364917406140568958897171877356644457746063221519715867056643729822008448359819873452274879425008261647689567156890319753431285320986374257114544133481144216422919677536138476097872331147751560408600141080320171451963808266825622593440917041199553784894851691481404073054138356641348080260886442359579860475430954279919871243548822137045708019291128216672411159092460649809716621937014608658870174137379487923780309235253425027088489765933510379128127078170318468430734473920079811349179834483629816391725960291545220816689101053676519522405771125532481669258250357914451005714347665330128318637957005473569278795421936769571029584769308434152582066758918448640560582973590704804574141597851853283526280322747021382536522613179142660733049578400264099473230615618778774492334718062635746856050486649838908050567343122185401928054610868671212443739248910357546382861800871862679478480815727071250437275837134985835200569401144879218858561836449722199237006307384803713084004938593865027160905009902786187494656807652331377318378347946817357800557288208525415649960246676777596134561512295147994561902189435489917133205499987467672495620953734786841754656162050435267474419931312155431312176791461507034597014189889589483384489025215347348630957211106570814333201550577491785308564896096612132762835446048176659484416303302920856932301856217010957112683823127125526202131349735929883209325307739554569914325810005581438044877066416665884451754126065736860995552238540099144767444074489659644417349275297187639456174210379016130429363043618210606743946930842176845038178711168551056960882095144282846131535506778845222843452512152701553021945976727535292273369677933856774540764221404586794029633563172377447390828145434887050576352853057249697245479585721637547978114830032888983308559818640513697523872282690847460126115818316812939300579528391168849580504382203713994623692223689796452597746959599343711071854945637584943596151575884915868662756671176131809687629452945884959615401453877621515979996899562863947085188530247119230971426288063242668875186060113699446037256307979031594656183306829543091588198370160262146725173425513131478603724548991077828930991035963289493151663194392789750644499661936757419720974435564263933848149495669086086118482977636410696131130383060430044675700375872770700002287169750548906029731446866201500987425834657172380275531445686069493437105752599874512193339438971105812902160963961314487420718669955023991088063394170816524566132525693309947666496240586890663728661515628962113218239395353311132153494158184404084140725150978186728683478969313927536155010456793099147866319369703130911847706977115077412579555374681623827012278121569374802787787441485785625229156295206598933709158500837165269493639235957787296743470737627610419675861804447480863241279791460633175968236913017002354486255740767753760132896367950422664508091851774076025953229282037223088263079638508793360390168649056524898730979479541490571910554621461674377306131633601901574360643127916483418814581097303882986983449403400171607985433556692303862841168257057244075531745894779957341063542164707114766806994047047651304523185279884842354371061950678263897136346367340731918884980830066227404962337015033876260493951191483920824077938710797428584755487848213752481541395630772787783192217842507507992506710699208771120250635871985300685388952273369165993985894900500789325740359851635357442572773576144341756233235304282264679265365558780704795627826299097081602549632098060742932771102098168994821024381939105184854633604366384350980023282666094489398590689590544245951235616857709432654969953156877042545435837898517326484357822111369626045857049173838248111080572647157868950770868447869039281928567142444571660899881073257368765547148864806398678595845638031031936852157384986397115707343681761648932441366008962048811091145756983920057901947430724377624988697088124829459642153497747355472015618662213214858409962593243253102304291772545540306486427611944451097574498154007864138267274888022848475780156825832347212089463629836456473706387189166936557899181005504368243826748489014702478826611259769177889894780959088825516303454444270513396925939381835723971724964809195424175135297376206482655015619692386748487929324821019761064424550137299465828401167978274845091840896957299573654024552909825158249592622055530489214148324230354814122742465001156550963991472223226935392292401816452201711588020970096165645261291334840333654352507132785108505809345905464807756950831482985509301255214222290469648157403387059891898843049461756923022533523788855222755461821502555904532817001412562925263748405353269223685270342885765603200452074454524893936858361237397663404235187492490149724940656280891663067548090450486645376983765960051281320820902910852210439336439751314163377275350692792661556909952975433425205932653091886669953864158699136449231159460974414344243253602875197571399431130689520848302507525614177082726658932613433342257644778343998369219655021539500949188025358137756027972871001544884083017130307417201900633261812540616464752985324687181236398350684596136007864594374430968540303530026889815169388027147141632798796909901166319097053295970169736542526931345261986087119560136526936279453620591969475613371212411189545786505750660675007642436511959658366586379480936701841474569564446921655416738053364128224431677052009340139914321596681595098761436618993253088092769539376948044185736168107409748608416513565159506287596737668462537636753568612818677855887460590486326807826722301516242859522188386082504654156139918496575578399967639286258559868194873358875669265137788340618118373865205174607122339197203624740997309208060956600907387258590984405961694996041519121084106979264271549869682067021767566575453016520760904405763731154083548406502200889052988848892603892354244359386449773277195995043502972541532867920856272664860845393494162692769496793231545252375724337368901128325162821674086773311696977885226933433319417444539145884272502904384250062340749403067367629300199528609341155363529534750165354005071380912703545475752785595455693560443393900842497153605082075549670315996820864521725062486712583747769946156579700623710185770553515551747608355418305115707696852291349951633907359559757804362000264841003431882203295086519736054317965402633869313855411625199639604030262468776810279253869976172937180701430639396768906980849563860963691266563058231311212240409415912551494415367618320935329404397203077005752434615659338921292442531496326027223176876198675608723383174549657657816022901057205414483476716099910424308020175163157992448245020438889987343421550581264895580159826200783057212784198944179546271296322522222188989850531922540197196073926774068818529572695434725615958066669282475900582099390130481181551888334463608811652662387718074220749141850389647759379098838776768805225566769035016207584464531957272533967455705374711530893017887644382185919433235892133375586566632359672633330017144221078840627887975409697616034419597439762584093719465763971274439150192378459796932534397630439731306362829251657201004243318077565099975943521249930296787332459194176050376988659326282188712488426894217318079376059967720548062171613616041831818459302052540170080607530487622819401132375765548386714314283656332829240525512770585159834251134718196818979110510688475068074744453238134346053307981516172358102790528728930839054993489745507775004237877021879871712486288844481197032312891240981389727548042420954655844819326507792223469737278976740205287159183374116771732333091799819012457862449994995112439911537584860216361582098908431096891033251663050298235876867374295993181846416450841164435615006629303398388880884494680483760575276507862048623040147325567579334119513270095170079837319962617664310580672939808387020075316836090604657252992411280275897753675929916627776057681244552688631807572969160955735530461025952704519474024727595633972605198873556512567554892617837489082465745640957939666733285256378425700508084911881963537486746328542003588817220177116246186020305701121988068602932329515102093909967533979135904362741362699080668182234937856407857568013045751720106698321947145327280709797939871620787087281701857578147594568689973006769232366941645773861025814916861075370391647111541901544268450659229580879214837173020040099992115856311775724677461102571635455537687260276984994427380669214889098335383988369171367161694201655882815119620120287393357542958772532833716255708593039803953311816015997351179865789752523562830929314143675531909511994114579103893017480223017624587366021101436575990352790816088010640112972509683765546613991755422935225934749362623604077585425598022801188653470492038213836541548424908478102939748964404265157441865453677852619362467498449732983805511822105208026741689546373045584410966282113989907145331496434771421125300690264528969055317625700545682633012310652296154738818263517320740734363958154540020931843272656374251677393381259774598415363160208018614566821160710679952595318570353575231514500038998072187136293018272070877175138950074421894937248295757500697963812512337215456979071957147586386470347667583233233798243547381212919863182250467021464848359961362872044861700298469883535776482163197401925899507680644898227062260971911344759384705585874683833441293152607311720191257679292112885453065704750846204420485278779856199521270973861363149858432597536504354841239313762987415287018494237543431522931442255379561172345868619852030365056179497528406431407870237659104541132971181542687260896342744947275702678383663428945296153438940367740511301112311835365070957342792139698889304648125647499359447396111332511852610304388413372567846434033612219244005171869817211901415779832285233948390329336537604156989098186449518381693787996878552106594674890601434387716926832167111691448669143137256685816013095756503080776255911409023009017749647962920791821117804543506604348349643071440048223156979963520204831507724633483208498073634451939946225627768495272050995663020664278117603389639661973358533732311474390649574879142532962105845385501939703421533374334303082680280317068829765132025212865922566680053524907403271380966326381947256295979294047547067480550879682179905104232829481461167956806119070693676095679360619652689668033357546958908565074679089464392246127428029445187640730889083848578643159065460937873665843679622165462566352479252330969389854355779594757415076837660271927072944190757255718741961266140425608987230731412123900872899489544325897081272777770833643345215722979556752576683593371351789539675411504247990469693204107195563409708710675719011535223299957769771036974414668873688981737980977178709348355023476627714400193491284649471623721516730819276516291748036913480901845401380910626234887130831986256275884680611189252721309196270035207650117484196142430001710967199739235688204902083538220563748060335286147461105984401830410097049413843202530839283239910353133667049637532933523310016705253474681677717256323876450992855874684864934446344654520941474975067677669092756627700310153262863692125005077064737336687319336238591311507186535890058582896316172065787130256035224090521223482850106568868578266498734034397756555985448469750914371254791623692971717007800847265098547133797119988688182925313255322220940924232463920922554676463333283634343173363853916295143987781614702332927698166128133860209071540545399177764671607580272336064383076912405684807167043022633600304389190406891540981187754533179997741657024448902743770565196971497904869871662429871272929964883007222705529029596580322615391857697170668806216919327892232150103298998228685518320218088779983473426698315254001826572461208119639160975994359806092034411840940647985062530451998075937118443082080413641299288413174828627980526216311030981182028801720922359032529390049124992783500259356981041209925489010470910897176574047025518921653757700146577405163235607198361537040136528413755571539062373923511167166506314087169732118282578674077132357406831400037857416335018544228624699571488880598738511750964907857375848746099724922856652327581582616891666746422158246884826989604834957804486355959888399792938380960382728984565886981312594648031952270514471955800434015303694863145448024012199067201207679729926566729269188815526370815948737702343511275309643908779285083961983317046868911875137162208943565979141296700297931147545879204895712766723103485496449080974212133132794920347483380378437062517605386042589007427477785061909413724016505882240962708707165851454027799153359806830279359184406220366367345622228280735091804459124032647739484611860037714429985205061702518900277390584441800903786767148374578121088678067786680547746157759035845408349886626575019732975655522360870121351150783065931545261548248450225290035626697347108985075613885798316780157113544286182020769847949391980175258501494130300071718586810981684598776454438424655176506876998800543564053070854959865636006822538954827413404472027214762368731991038180143449017946888147729754782855410891055682471110016476208437262220443296010969885878936694329810170045647747371225118527793243246910537891649286178757022057855281230282628397418476084167150757250120549424822795097067382092173409340947542994945147522141820456612464150883951331540615651878792839326889133100475727019319930906440020867629718594884434761583583736085415939604860451460100597568464379673333236957196544867792026504128250991427503689427925669766754374249992904096565820234851575220985758927856459647345782324315670959481003796038416022701776525077494736434484077555691698521727852567043846492493232031612759586928799580572372121386472091623723072495359258798875392136555185993063061021866692854802336002840103125497320700535089773850849010143891477459124892219301077860972442378766106097044848353790346513072502154488555970734419322799315628241042694594458695182513692333253183006180870848978886715958143138446946225114977524540018862538019814443191157783659726604529569842483687135159454862284584183829847474191063218017819672696063950837214324981937062314365360317244534561505047663984797592504043808184632446276876542033630649230489357977362465262799828160196618605781380301866926446734909421882474954107516367027852033777213069267094238493101384749467346479006877079889517877702863814030570164038583386189029200625685929958091214620373086856706012050201809238191307120639312447747767872140258446142043117090920456961817856309486725099541009705056665494461894922177536135878393452997545268981426004466934992403778804314327946451229427912610152291132495362680533694595234705505615448138922307294868358836227319443519621574938918963673735302791417585490864272504813144026481447395528687734132286421214068890892382558177874171977323301807885706401691802828151876109172943239268694304201372328555374000602114335106430310002009880221841443321832833166359696885343991191594159369220525304361041639524811417618687192968160548964590040618881118184434263167653768096159074833069495531869773161117928349698884438799100764798588844466923511451623028658651588288087870158233249035420915625766520533686414343288195784494131308834578504561797946182995071956160166391978588097984199323510741299189739819671467051336494942085150136972995456702215300823632481079888475688989269099586595292065238334048448946799246016124063482199917367162166802354128651034379074572946603913815320504315951210207578287701913540127932627944798399639568831435128429810455810360406089353340874406827946785191688957114407076264506178913481673051810358906405350114670520462548219278093001221075978030581322439534125063784482250738983884277986449967316223895360402560324334189458678830986625128867772036650194054882387674277595411886967642828197293678896648807718424921672531831159696660384118977133478232692769537374493264426094193540411546348940327571400630992813864455053271820005782430235974739435782550039531095022762931497582841609200202753713767574379722350187536969423880673880723937258753123264933727991418166927417652815507362870675298591555946110019940929225854228494128924751727146294633968235866408647647090198342109927186452721194436098228646662668240282408131644307567395195300099256771009364736315932794569338658804915220881304319850004451529052475717865516932145438307936443582600288861802825296952776413684555584215652480898581645081906739959764803829166805770964239443222214194485226155725986460521761609656136576174309324995523089147603619214601155609107866632131813082226734839802822442397645545885613470012011567123139810895294424213397382362727550754131982026563803662846975391819493913394094102934606621817227176513714329485671051371340651835536677890700948551860659843448981561276153375548905354943902091351256967453929650978543715231690800081576241598684298931382657681551076011953651231081456894433575799094631275976603589835503141982773238262519147890785814353238140475683564966273010623249586089408171043556051744032643639342769756774348499725229013684338524148037408026032361564645875113443061482994990628959868326367081776625565263376380542581410140642193661836656909179346314780561899659356130029037437730097793477525919398026079272367421022191365513355452287357298360540881443879779501822807510227228842051261321903609703173987002484717500598180259925452067279773794629605475435762850145811100824363521476997122819708743348902836010741619648655253178811055077858521808083741478003424489665224913633056007485394581749254993015400349645104492465897404126056100003273737218635757813337663919901604508532914221688553380724196849940530115968830167644584396484321036377538275567102325137321360648353429661619736334484764733680290080027061930728641095801943616352919106045522397742633800326616859310590940650813967461521956842973612280817342485440110867436209507067768486980643167754141185958330601510162262757380668195475336014600190354944093381928214522295142299295016812696334512245186029604264702694089239265259659208709271504494301128530956331813534548397295879185342917617406625453807270793650560243599008733914783870168113352615418957088343483091714089759033393039211659335163010397751838897229941758792447675813229127725364504146948333485333053305768813944461223526468708080913104462157652987050876875617267138428035014324769357072304568835035530822066961989845005546799779925024511496450524731408632844962638566603237768410553686772728516998787348387653340251148248609527933528552371619151180435651371772436156853961192474729111464625309311395176035006406181712438580804279159566385332201865161595180422269679112623532364383622028840994519801071617711193657506641855757377881953547511974695511553484439815853135030017826571844500032177003971351193343991022725263055000573397886737276286295245485515217574553521643723279905619573260447916866788044855579605038711714753372256269655538803157297128835332405882377767444624069355362050774051322892876442586966657330363050618994180698504401057199687950832310398987845601264027990221945368371932968600481049307139161256907176369064278401497196401173557829988801200564697359845147379161389768120995144016765561071781396590453406815011377391723479747419708417794797124378802042509283124841421826424362966117013748773106955505342804058957912071482918850626244021149678958084034343300722819676199483927181234452485690915115533659232531825492338914706719193178472721626063207955957477726026695162072485725235723543111657881970289214800800029251658496249689195987565145920833158459818817307432012034121885911640979304669436237547078933209993360665093265169871752690077557350998536752673877236563460035443296694916674157991543768721711291510241729097660827332363374564322029549013179126420395596019802217376083713192507534047851653521021009107686596460827361677489531091008420469191912355814761790655240639625507212652543939508953868184902778493079801150035266405592838522137352565443051002815915389722038596039254049448765419078845516228739716502118409079480514896164803671924365685561761289747884358816037718155101128657586200809548743107744711827075535908036284553677159178299373062734382944465202940086254520816161336254838256630420870858417206379010140437309006190310318557320978810738000065554650923616945765486902933183642329246081600935011844226323312008460157801920193093260488677605508527802212929375954604541125726349224084087609304793780539934884046024954471669813930066892546311656818545213968931130236213649518798369678968602561229335013795174638941355846521534002927967077060603272321868828000379079388522451407134034782683238531317426687225536297754761673442100933840508294866234326538923942947501079259950878359408681430885595177870912875074167793927071003804542608784960962792607421116085814057523638715846453170539889128575419723172650058734599872479484289938967548854766971488489235051862301547632276273634812835047373604792717220806692182383858369201142448452519263093542792917210567411180843217409823056682168109694538106098922152503192895434358236224549146957589420022380886501627565760542552607436849508828495733085672989053479014877815171843479135235677861139727260066244382445992281459981858381178585820407184330549837954574506646863103032419231898681004073128914090986776191940815027817557992399640917368127536659789822380046571834286972099825936500370248745164749200458505014521135559653702936064406836396670728607850574764896942081914204915828444510028513118750311389206276883299877220157616359530671664034369801246822889226363725020527297412166272512149338815546843693868525883428026719635118040584767232305679612829087751366817285247675979662097074211178794132515530990918863070267195263624826117452433069715553472599194638785556780850213448515248206536568090092867300820907821621050680917597448752884413879083389599646829070616599362723297642786365164070565699092943694688737577684241842468891230203029321777544533381681919061655222870570390531135002831205302425759318754446615784674471978066387690625913583549661901021167644647876536781328814614379336858158511240565093902178348506231500101753498920655430269311596994230338634006125973630959274896857149361848427992624995194497682997302719705805503028920704530385305018683158442517228734798681475240563625299823542007780647510485029554503134984239767476507919907847714260168255997277200477349499729603170881442296849356795097175562076759235656047981736102977586206865393075034858555018552706660661766200520346543551151276199645192348959305749385443301770562951611989389782388843695821129633664339007978011754084263752851674732626912596490430681566849256017015251809870181147059339185164735099872541203815087542977145006518281287510719279723997254545686551226184296348796510176564402971600340902499669672550178267570078384383139033736090204671219486394823440570524165391192627032112025834474817438733313104893914372016760153127529486836698680518207814430804286802155119542277318077473123392813814127642992167059275472317988466043151725302465135090895317436232241526827658889440836167553320394759303526981616695753278661079768718142780361558403501285923189034335637870987128036427333036166900902405848984207210128014759217817756694965970984055090529574857930508577562131591449461703383078430769135669817968624655647198128554877585860439641797232910081149315470820376929556414258392916582163129026226536652337618970443109207981640933765526509753078347162030504312712000015172322404676115040937857656057052693253965887951703179032807966478888735283445285313348743743358109993308405655202187671191464487355968224494019865555960626592060506203093413180608163486427906901693987241984054099460671413437680896385605987094618690677391379734479324734851632287429004444687275547947722453115338143780079284056472100279337145622633588921838295854037357953299089847850383863761626365720777314765102230385455928076550464349678271638666139884433533190333819673321173592979087510145011946159922621209272603807604608918999626372131936274334435238686105629749749138299371342864553404607593670373695175066986264985193532531510035227064098137663360022431814982170940274852507590604988330043463129154983953407577676873918976084796139663588244688290807026466106859536942184038814481938825319207411655693084759919724674340812145469454068290036161695111305747469901264096394356796000643937019837237261811350956249218694817703548755080753224406121386006618692816489178540101614681527694680187918122334993391173161650916893205564622432567982841548724138429605768584177573111250177876935680177801948529016947132770261800470765151445226055788716446121413056304669807609503082009451700546565011934496092287608652948608444132330482039371273452810985718275486119441739408708105342779795380335876269552247396814885608062071930156900931416028102127388994897153602354890116117357893623248338482886837614413924394837492614583064245656489850972880494232177613668254957841283001774340801652491670266460605055048017647561262814711317118652528368245219802717100712559620915765973913644289767327807081117848462872825129981034298354283103359173584631922796097428076572103690740034743928984585868529906284283903011943690703986629985765849424061164585346784781034991526276547068501956878377107209804562477762526893510166943469354715148080042435574690900716653911891003610154546194869208616241455309841665104747115913137006224763256210137906891303985082690309163908130978467521418860346650620366964317683297421226458727058053236089348519524045570882750909178648873489900271270988199428007271806267165425235434646964493726548660840270331117890096865946605336416924774615941483788869954625526321003528804167084539309556109968206554711886219729759030269170176300870980006248469521105059655153874416690046411991302350425284971394879044132295485841399553938705040547627832813390975897683548781011018330852597188585254343135803114821302344607247705031320815325201863115522685276088898315244206444379546411131699424432530930351111553212475971933516054114440006648056288966517703399481632290310532339438022310906283604493133545775949385257036963179949604427473579658241064364468011608761503563154377827478926223508184966538195783275486853740649022052999107605976228722659721972593047382458558094776978292427068757444712837625884145620666552478789742223872896423191280951265420992289483009113819767603336908140897197944762291906008573896870377269891051060534520196667002449065727796937380349024211567258207095665632482399942023166146011838425112290164724636350463453749190298752121567498385133504708144777323993727908518583959664406092356211536408716235626789476248498608264952109781153469881390736519798432344086643038325668000363475892803997148714647885493813216961792232094258293251889100017844991975224464930760742634603557086979527465200990064326257328906181975961365893677092151836111458403013066294355894708115985386311917576507805820253057817673993964406648922620685486529165991433394021796933805235858358862068012815710660498306046460779787780267403431272243971344219115494134072319880306044857746210141660125278419618681058094627143071103570302420311369794011059259497915352203573310665817358881720614106850145721648945765430494273037217017331135847018273528723713086432951566719055476736674739926360711389245677804381359281614022179497553101067514013493351677171025073667903783651118122850396567001034407969837188331094493865887736424230806760786523596678420943601384405715890198697522291344190258592505888782612478096066849618316203267607070546909061712490044701684218704775068372888544851523085892478301047635427151918932941685013535512613373431769734358098286940421630958588785972930247014437008332990842598893409530349568286039042041814908722412171419454070063287575794540669027800585951307600072648198773574733560025394732418768158831276053421946101179970202618234639755464660964727982121647104568217149631224815552252303947797016210619921346794354054010383301321713909984438283804357770704922204659664425881548351503106000686998164900021713151900920115675052722426212779793951649738603461099973637559690945948227547384781558065378674777807333320229158335757345838948666404620409287049374809571269014199908213782531472820923559394152291754071158307276907335795159151582085139503804041747083377082071419698268163896565184868810308587460978517868601947250765721307884448255625433394078522969533503198533263878146807112593418966649948380630725307890115475997988667247117475069277156298219417196171909450184570606764063937527882945979783284743762798219187145878268357919025141488186210645661421791728753480625200339793253621348500391506467515357125636978857953226189715590188016663170787910456085013455918187620014045537037409136332319786366136550521071028108250771276079952866211132715518454618956746259264553619104512880194465608013331529067396106651211683532723848783163712538285738929206057447908042484563549873721074843483009916120401670377319202155514316428659837428719505002740199653522243287043538916088208880415886337120178976050245141893733804460707923245512668093423830251163962597859245616078638146810477625086130632217400977903620409255564952340163337726005016175264453089083374544068418882895070522757535432504105356885974019799483908190268922640440032047866989132785814866797332571346778573647287791325423082590420164602288655899458002096637148953793696997599322470884318066973905715125300335269047298912725593854403524921267999919475426079757991060046442688288015062940409956868615462566828521038221417522737441093398956493534724452484523406693493874940948129742691111479111618388045910375849934321971270877984669217649487754534602180935777852602035030573212818233974495670572244450884353043576280079508490055058571283240209162895301770753609433529875936914757947553686971935798351219413876689768226630064983684581730389089703511936089027157496261142768599406826211582740249882988421101165738711654258720042718968083561267627735383698426347988830276506393446508534024924024029012912616992971262926945862893083983864072421692992408391426172776113083394665379815924587374988078170540002116003497374548757056517832126199886275365666104918760757047522606548598779894883219171811168817393616399883312517873439503154888014184668342988203697437854139726717754077634798243662522848214564219358286691538689186529358211303055842333687212832240160306767892962899660692413149941942708054767076626930366989740151529548333568669079140701147037186829204847423225214039010254480310151598072115804571388732389961567392040193830811177205655841315124393362842442855140787013033149320835703470813719959574430432357435678514032648045753396166598023855213744744723387109189366965424931041512946162841057773224888425875819297861875616493320846351797978818143073547202099015921848105731387442043329572215251488257500402512693150507132293717858760272261503841120438558780060921018122407399079672405116589222276642535691565391736925281612561685830429805653322771443905962206173704287338968606036848925060544138274813401954664214936512703233244840698694892424022967650893754825559427792987940268182997238826332649333945138963588916054693472874737958577474717417507382396254169050228931458565146193795649485571802132379203426149209005297620457979809006749025546978296528397805074998064691317148590363110462701450593611431631332881341253016870863529035161018539981583199420608224899596501293606629502400194481138938207944586288688710290445370437636430775321828635363173097442417874658605339004114755351981071578099534750291186776790223145622967488654317870696848441365434724902741382409128463442008009048131455817848267657541580084267840331070334023837746983020997262481584246778082377100042536022162613860391327642577677409976178190176636488634758563029312905258208699232687947424440093283349545853351743716859918304367365093908507258956520450158886927608903405212548299291854326809733410412151404880514695234241895528145804845454850066773688147053490126447900531760140970552945120087071575697890121359882839930235484106859021581951901478904974607855114102516186391482237968552742842367796921644415218926573036695066556294760116078661187049035693925094412441004972777455382605349438980340064747797435126033712579144506863923353761546375367260846403288474997872696912664424102012647679023085060215239978965548368370825360337597547117771961686196611339170511008449141719357682614406736976168639915372384933182893101320495731325874592300301759879136593452797640895549435011761416580100539082029093086350237297100498574018790569950728253942904085752583500569944515262746155322790123510115576427341110047175366205252626708996268626462606819013512256231624524855095074540551907167412553544023163619092051305714283235311789126269382653885033314369351696760353716566920385082641605658989594608544526178589814272821151783116118985522224577519539478731411814489704827397743528889214347700464957646837671344080717513542649089854385073969551261145725717191651106748687044599432880683344997828940815788301697955629308362137909185247876033701634700636049951000165246075575182790239386320275428506284079122817706756635639184373759814772517603116538716545807358104243562867584684616257551196905783652946391284149060681605372898293556239178282563741276842644590210800572706023033078631881584601896300314405446470190534240305716481647075786946543969172268635929974831443289364273900679531083199267068286955884294541644711346474092871294590192756834231419762892339953196714293172667444184020641786905377897227827351241435332466540514551506874293451049277699974080772552911199985102026040876533987918483840246120173129766990937865819045474074330104757537748223065632736670032217449844134228783546673883180948623232803932796670018688561037363032011660971792730657951357984712215291752129766045426297873781182452743698685877247658617534734749733892350873394814119501091106656942296350597017178447251532736517897021826754535719562758515984254964145392674316711704719953692052796131462295096097670090455280174470441306126330345236218059984969313717067149596644573092151189275212649717312532633449529792829647115950004064365641217815990407885032573727753352598626018661829400010851708026690998598724319749842461254209824929584385912929460320012493213863925052844289812533633111743069305563726204642910420396571083854980630317528670201283381438932148574753778229750989992459616930363249190846108006887932129125198686934717609910582212387825637091320462519822334741473055202726367912780741238305489190710743841996076709500069375342657175307796209453247325810738871757922776125620973851778844803608022806135235964080706794219928625041198632381586149382221747367146078939086953258555573450235494767865211471416466499144938801133165191800470148767853181197178466903614675297506696368832225291232285843487814768575892521639712194471798483744402420737559900600973184091125145174061038210704654050285797446990169262421572812673566136299617742297930065045217769508231170596910749910047717425929191998818138783041388174711874403671677606870904374532205946644094073606481579443382642485134789567879465725280825280055901961034932539946076510196137697296057190197884078857177100291725608355639183755436728071748569316229401508164174630093061196539442315962115681237561892825278214488379661407823276434774153415999801650009596087124775424557795300603587914060082569608336028207699600519784693608713680689283914273002665239410653207820799950248900941262039337441132187353602552850864290301468323515172627396758266440402192216938314724836371854275443593809864403142009342309326659739684767408456837832409874969011297990342304020799744146530590891838467682092589705207796224506278691962601933905289064121943217722694345541089319453702673802742813823856968372510034449900573014569152007833188528607367729239593225608306193063767571171835752454914100066566231419270546000640431502787215340207335035361646958087342914103869981631338052748840512493405159847187774003302470987249514108846445293603909850453175306944683474271695285429886062572600142342918513299740974422609457343634531865748890126308682871576328035018779013350024478763258561330824619720899601287184788935960230896682678334488358266903551339026410215966635637434441221097733802817027492499909156923627666097398251350815678768175948550237407086071295463831426639971575051423965294312645050533491475757540639100037269546813505476633257439053134086147130589254092276506958111956501802584424605932808792834258708318276659109498751904007603216732542323248589540768350308607798006990223206467411294335553890222350432484287149868729683745309963774768606089619107825638813560103516213840431074923281381517294548094209270530532581203654068410024218453085514400844715540167817906787858251502619576361893002570590480989938631890942251672388775055323198843894613358412091360009681816575760131016028134263838296602296202427670791440972706858924547793712920549406829494652688548975646879724577472596089087534075098619789464188088474327200753441105278999703752198397757737703609548369121330507816907430938505633499443397517025015104441901800993125552151385006482730598296351366140627235347289985846799494864936480152403396990233623685353114044029752728936854903447438841998829650371367870564911013415475115243153957941852668989074456641234254819906074116723054290775397280028146505375722128642132915932714878040154967879387021104245167037040214602229298650889663730685437609230981301028744294665151662134596824808500468639130404472708433127044808972550391601407652663429993954467606754186857601398119785271687245071495041791071714458494147453184930997303014222915731831450064865777215127130847640676668892008086221176894485704334392355410153347668572604555433145504397802953101209232986886688627507028489930034989057205767730056999732724999908097311624106740456976863976191523057882046502797844748742961323474659721491381151993354778261554576743869199602381471214638951455373615134851996241746384578457936687122273199571238832033325668442750948407625405836188716460677158877984753566645185526738754602679361775570241095018835122056676294989786788935431034814131900921639536174110688976677299627329325540847257148985434053547966939049736613193173829384096063385250952227659791610620192453086304335227897487481547956067780879032424057630478845062650508932320176053327263789041815872514507754219462054665613222741263227969653113467781157728219227832375501636342943756740829550552896431517128817600124040024198299725530005624692167208805263256517304553176727286646128654653469906647925988902159875721366920151708193091976481316036525351599575024916365757007800166003874245208106546994380673645013494007716151593697386630188873070566128652123644724035388856621428781220388799113407777106724939217606579202640063635314171094631200249711261885157767374158147520307628661729819899254353920726266480872999946467747516623676943649556886887970837780088557408165962587021326780185890036695867288919364657488259485039658735313746802833846744434595531346622462301026807779762282520456990872821616585207163642322562458493800721420397418477998361173931006502972425468098797378810067969498510895086932797252207081222621477347787002521910969781129122654224280618662959333048141932538599457401095261865137112133170066197681729647508180166718187496999339136264917342008814604124630152667941587807091023384601980656523987345772388853649296166718641555619331396335493996709952965488578763593372196823494481722972222769775199098786561973357554915309706170272001335744291666656714721516268146522315440791884980744724841071935110525226225305802222435662318184800654052321380855971167430397593750600592888967905916625480910823098231570085093834490390933287669231586481740149056424791498596969892205577045296584655514003640958688933676852934853300075765765811690972463822853659579887363496497771691508161103486056958841050654757865391487361627776666568840098886802620112607060985251965266084931608977857649699792009080183869576196982330074845954892804530711975589652617206188754878568506981859569329283671913346346085530691352925918031357843316050457599101448886792887718864072425581145357938586500059134614516375996379862712699949914768506712469725592394022942476076467841980131910256108177220531325543505227790306927034169851791365896435952332033492285340398377337045955319370482082118750604148398438688074278415641077355797700804775080337527091071016545364687285561921297605031803135305222298470588720959364521559217724952523517820338386288039371916177201340019647506326185718102992579879445294141072987780663941415876787916319485637157756229332354942279176988791972733745352395456719364901090685689122486229208978781573911963323913417143963425676692932853805441510220883868061166364570035444883316849922391910847252843680669697127363577417983965375123641460071305386959678006409990215272769210128128283166808664631830963261277170168033927389569839072381351589839496912932682329070509662351026206245051504702648863243600023097877818166428597638854227545027137926312472410726887676074130695543761899721891299677420436795535725999396722150819933250016985846269184409489702743339446998581562595542372826126795895363448717166218767619749307155783365788630751373217224281225030605835946415399933610107692047075809121328040138293365830469082191397917645558731593645421818573490492194006575261425822414979901797228194610167224491904583074387417519060487864327391543037558684207649985348785075240080758583884296734552283547382846808473340952585234086612887500456717295940607575407336873154901333790124203347572925741519596345719577195692826009903132649617808134078143437088706609170572587018670089364477242022291353462960119135190691748412126843854402441579433108646723959388996125731129930259058894273008814529767396241670438775290578746599853201327138208933971534442626307720438482696825754456285085750695603391269184008939304966596678194361725054972579267925647333786935293492351316688276160295526864574953839615725756601218768822999502750048653177643263767213074133675249929945692306259785546135410694365872158835426441555026225216946360500818119251628881215994457592901867622557804397326684198883370143873314615708692207897618128462496835693941256382034102833053411657098755966918403939347444496417090342840509998710771420954508371507640752513529680511260849517384020530528307287951891085165839562750975470216782332146104638529844384328087968096411748132803369958085100836264979282225535435219377547770956815975597430630955027794603805606336851510501445687361615259898291784570770180579012176235472231389272573838310199189411523673493336182120445562143160761515049081508679660251193523847977643900944843624781643783989465248505342079135465839732378500736943849593019531188824822630028998676990941524942597193091677236680139958849729192317568961659921860612251301437588863008831448080415563186751599970918425160169207870076148941742635419636542013924348536999815754712935611607428075609031839682737154149341987773098449536211572719003858912391356622068643215865216564602328977347636820642344038328475122439448599260455764472509610127761097136877833077192871837351617816174678634744698987911689265993047173908352336151347105393494863570716866930484422643105545640545580696411757550779939969649889031908957595557704125880336854224437884042937067281561097383006483921281164526076412783273423544600737905234399208382298263910831581126128449670229380687418256734667250381169634376610235038011813608408284260844765404423258899749939813734607893240740006154071246402590874403569121028410873140658268774063468452043087405647131460773042690272681141968848339047119979857508979947766668036397157508667460508322436372220613296156429790438644553912144297781829374935522862119707014975038653728224474585779085465289767153359811441137542179420402832891261038216086472268957261089654845887682270601564592316056975212579359950593118168646105975759256750295195506626923637520737407500057781945295934397181756005543686877318488598686007463323791255458592870276867582838653014952414208124243328536335330427543006782275364782674799062784047328830674294214508732651905642083600068912669167397355064829424177864045236585507645707994017089147607775316428140392383661690051786479866879325328717956414767471027025205082807491083986112051418777121449239904547597278456640240292148179441599492435891151503144211625488851536988726941708698317733544342888327912011936476678176097786940588782453360774422019194332384195266913093763542902619003161505762446505615877539002170882836212238677407474306006427662414266416628455316664941693364759675710333039843585833876531850456942102574958981887172239620981196633229615804857010984443587942064804417050336104760164483737414317765627485087948453040546342145992091720159179681202828242279789772066500571038222016976165843881583806083388912796341764179904420155989938589252857814043654916480074370730533805724542944833407134354336773468556459274440264726047889392825750999740990565061313184493820194383896443121887063679405281215850808612573326232799957646973332276543032558913520998604867451865425983393637950256454239064165186193657607494680147638527161727039483057671108885400640347181997268738869933144489248201200592121900479317081863853825356855723589016124353132814939618907104685575356233992918737524864397088301694210282978758702230662350609944580414334275676599636865228983364830122639395555557874289225222288434684756330304920818701284017037746558920638219989957398250345818828775754858809271909790899660070744759277970428382342470089958223545544813966901137307269809826892649310795361666989754023856116271008066008440422287416750209141277929491236479545057193142342072610141162819867230315205752165756797893266059601013933949943147248091249753987294777902138436388370400823807323177892757862871988162545765255469063508868977328898226381796168361229812473414979410354037643888287652980213708282037447654199785108342544113726350779324397989036576918298852234838164683726037743549115509064941859794144717821030457843256603833039836902914261435836606207437451477518414537043128748873960901997538080261983233682159358443041524396199145771762781159445648122598224656508354286218011735397992046140960886650611390664521458437663136311185797528778820398286002511957118777050935201507738414284216433919276004486653153193831912375703089059273379278572588401194440999412497338123883361989792030867025487173567545332469893230752283759766238002481441763923590018573723435561823559903514546328358675966111198756212844870400463992444652067068101082787510885610737723665472027210629414150183559755901991648686140323110173722452126605465461292340170512900215735483054297684724756834310790574324958963446775415080547566045151316717797611204059456511877536179101757149548594279569698742715074716873540303225854515967682114288028750629437578721921418400203677376203304406514786488594766780609660853210110574907338943419276552656296442375444188193233312253770259059698941689909120684304907644094996804528187855421945978064966376221019799877297430709502658517861006985125532327479237862473159014458137385247392419578154952728850171412288030420409682769119732339139231504744891274882792816225525803974893058098495117896819941212764877375814575073835431553607825111084736191431001160677788846654603291209181451190515681281615967731933669998031587676765305655045237241364086128583021047937839967177898097119089386387861852398657051736532177070491336577796713731043333328634497395622734866109883219810744459430847209842647799504266944824451050799019428745367554811968364509645331564753555750441726776302775112293054051836700717865462131634708603346501759674237848965458985610572105127691724695267449969290942948673487044283334042042379865259452310467299801218870805444381482133941374707480580857899686672675197883334554274290744217078422610171193626183120503795872973843214473069295469746928662117852785477025299124592155863399706908619810145543909690534111483192884402329363648347660205538716157745712539000509720746455844545460031590707528898767747426686447689854839342654711919355390827568439601611944798592037898640403445555896100441226315164827759363483526776268715253042218762337387251722875553225219162427065911109616907570572156324624159031179775860900304608256419205175178321099578797228561288567008153552622945340019944770616885144157131626522748129690452831130078730647271035936946603983521302438503211595169435537216811512211253257779686389760239535790507355295646619105127363295214618796039498917319130909014461287738697278413710860685370176605804986824396851224978342377967557136925022693187807640114281119223538555327202635736996270423654342544533838577595444741987603371690159635123192950622653901588536370261078993090797248163438036242863274112519393906206558382755679240627600758160172222516488211693754817278201940156645083927200453335236861893985333232516513015007715591659388291374804731507614487649231593456256374711931072742474806083178512388618000877419223273548034717125730072054724266367812990245389814042127627661846472525135018502683174560794336887156523016781793196123530975301037102370687049141668478806883679751216542088295799614913761248298376921579446219623670216924802447176422963706899981681005872676803680139780361836862020065809763495887773731620038118674295180821238979241089027057083514070525286564310650141043815002827576734829738909571516361493793185546248636623601122766802189354184199005259854221533921809656916998195026720697913159530382278098113990277579601321581663746030273273743651590662663948439236814650052314822943279813984501591952024520559341024215048662910050932540559310856980993908256398399098329568956084053725462619780059346098846011065699212079752168274423962071658523517567742617428957460305623996525534522630831182787242936425074961865559176037729374096995228509659361896331443876574218700922004374211250390703420746371710299232631948145057722942105859832002448759896763893087778509451299683780996167824007534098122445234431357137646420494029151068171589579085131131155762180653868886172676727047093324019112375816052178150944736308445176241130378529943952665798908894114238026697141746553876107273010034032777899726589666495201419005051883855997229710095669676896526786388833416805944290391047907673395909561982566978244590958129333052528874890672358016290593112279146446615044474985078341588974046282455335924160225558479548948852851852990037941055522414474790097424410043603406205012193554447967349540878709793682633314921225413059395593188061583062128206969250899466515676892495937782474910998595677951345062067678976776627903101482353469230189195541149935510039992482763912320634654423080749481335790082042303329964161922071061757386795719267342170218774626240165998952324279520159476188866704283612937118504137409907739194004143468980634665136402792667901996935230497617373450374927825703363859527085337489343013139375277459821714404206190237300189933072318785750324983368883329275256134940434779413247307273527160962866176590485390729568308030123438970013640960951484884903441084320544458541093215537441732969911395547015642839241315293504777668724967539712526380748683878004246175247957850073699726846593985072268209825245568630111215912694186621736537107593057767671204490908527651159140532584207860418879445546785125880401990501883407018590034934088295458665900156776897086152934895799497338890763837558167207850071888238922247602568058504111120914450994352748493135925349148889173804941228718280460587033052935735112691665259183467971296609309295775555694454775008897597119711381133195243049248855281759490336643989949134516400891469399441465910997106184381876931778363146673266871119909782758551508466298539027630548802611455088705734150910626888243563723234788168470424863630145564052300902262693085190800275706792368816360022046262319256723031511323400521339102311056640345511881390873321599745441153750537331351626647422754642017505084598245356081154907555406496858489488878974341308515011057073668019132007427584178544617975956824076047794959880790852237276450912980916712622328102125030587507468921905175866907225616637467534565552785290558450681324125252126351941302660823664720492871548890724229559571789123315084794671189563593066680493989757118557603692329902199318252631193159973289289255690025917416649736511979270440133740803030843782614471328799085513219429494606831762465421099764693969764374209525165688527167297007011513460974529625140518401279217571146406412172590960896648762419543960467653602439088305929220362360742194248812908161930905974008704839868484679468832248074351504882480868993204838328121576883484078508241513214993978514202900959243712055520645383575606810402802053826276466389386869068818124354005704444889705298041960779662616324260204216900318879918400582467420484381837062870333265068205200793249239621695682872045331563549771083222518263994304560941422188281601125293083793193573945047171696018964489952350595550482368263514300071560511831933745825327294607545424149004506121797819333833959296349203023713534083922251810303532294807150715194372015791168387944405893268498077510404734704680634359073977906602970204210267456463047538311790222669892421245975005518556980020396773315379355525511817950520856500329243144598769967108771135098976335980557327116584530552714055090557342311890162432018781371588696353131409464386757452791090482970546166012241823800788697171809671622617129868319665839189628731609868836079317906117520947313913660644973178590157387782346308232639871977859328549514520567232354772307921620383094434859154357663032603361417787773310972400988440898762183299860933216398481698397839927002316653441764974231926494712462493674187884299557553704673698176471322604563343053690207708388138868899068696222151486364416449559617323181623704104036780777018120198806346338837370736892185302441080823664439713024038637114267553886940960227941175776920511978118917095408617213685233424313454552041208947113733241609806734469367395472544371245538623457173881610941909532308428070535780124407384236969635344988785337491385404369736234801884180655853137490538139308369407607622109469851187778789266057389907385834963322314174810240163463232692319108241619018053558158909238310654264337240104251842221987080205223015801159401349463513404079208015161829733928464646879724746564406142000017008666702955062735247570539639330132163995907838859380548260257202203266075344813744837110901582758102468657166158407265391403662167432412783002788762422836245069598876241059595260415129007429879424649014748060503968448265038247409488820956578881338183653585756689010931941741460577967576411612135276665646857943752157166690384603478445055184447791375632573281838614962780096958214069589403632746431892710908087253778369431533149261581365400912829307042350158656007708626864592464480359613344626775891370034211949307684846759738427565123679148314629208441975416457780740023541624441460724925849579133627759595491115660207313621331854013328341309003971277282450932218835937519827410547113332805419592245307537918544266817239646836472189623813939452895682854725760978305742503737265399562688019681670642450445650757603141416945116073024237754351017236218935600680035882865457567897314708119352242772324371654309114413547940696415961540787629772907100473697531016386800950629585647478811853596729725443101228231053049227076121111899182354583746826199805060083712921960120949245738605080425996739379628935741945059515624903441652533135077501764319143657882999958284775158024904152419007334358626567164630831645429900465540745787099932746383753536890221991839479580843959786385553718077567621906625555630368647813113642181252698218969895608239453404932351055271191479205280748386114676365480242124713667922974464546804937742496074693834066570253312601437915641051272123543189699191859362285814260403642953298783335641231633044110219379616667817456891610091047869650487128156079443239448246582672047901158543568250924464814995294210782302458320881118835904139041725076720028998209130516340180593346290413273713697121607386384620660334233939273257606686631815490709941216228275599524026311830957499709662127339973990019387359308674758515942809153598197277431405791325289912730321596315301472317319894981660694114586079174849992258543607482112794296604502407693138855269407325795909642923909445889689787231397724740763335398259957129830278080015914306111352891066760875130261621298399197347537896106172412274197949566928384996613426490202679858539307907283567577857600399062566848037362953545487110428011252786972255807273926326067962140351099360583392234370516857313507393906491854454191899402439620571004836975383369785840928877588946171951764320305177124795399725334744849891063668458148697773481023822734485492032526151128070841854295798210054073809258278684401338638693755890387061689224518809426706370000522183338093680053893865866067242623982766820277479724423626488531158519029126210882723762351492546518040826881688782892623684600063590420373266271621375955630016106373392624329454792111584635754736474159224652377670145285546678584807076861635917920143750142076206898124439529246794804272422765589857631670480318891582640863271062150117286922501890127510658580529325741749323018762963084366134493545110253004250487625887828428615650466717331962279021507893142673877706176394737881039196675762739718059281282670624042774517221200521393715260788980078396896429050704783711464144097068421371804495647480098596348161669728078779013444828619473541793228726622117444809732168455543832832501918965303790684674342214157972723364085040976904484314239567567478886523469314702171480335413773341450446673657320065215699308747577899444561599029928009993769254777373849439617999752176079627180761745793446541183091539107341415129036016069462145962711521390872328378577309179113680856922405416036213246548828384222479652063239201267373031310943194691880526967905046860429850393669854333359951726572046395768241800857014102927753383638599966893075673472150792058034816558309376659811750305745611992698995073813712153159351782004925493874564035786487386991624059109113467713025709233232802338552291756177233320050853521603958721893933194402017067291674931306979093067290460537597435571099385681374916865193988341644159982130815834876489071200556227722366788101736291983265816446698066970633637582531300260143053881920877016958957704277334966140400230292919588956177898428617328642743667210353487429076131039072987933293479960294419860242204361172235467173703735059156166976441535231017282250114222369174401348047282413329664754082531875763872841499409976606785309373510859186530402824150570559498819726188675902408610913521656540095906724537860128422492246774760894050272575837263187779003261359660905355639082096689931036712509406780623537734755711822426973630303805577740918630907645951514341771592820597165149269279282719242788347714357979829358128479755403877888042092252886572139118580334845238638046322371927318510743094742265852139155900254262364699709350138745219526217996520410402251994921835925648208761164064422991814564123965285301187730543095840572287834802342733330275781264275514430894785796576886212562892737361993982381086193347438520650961632470380477018605550840308632821839854635323538404523664902024558500624070261025731838686505428613096463717591101313203117015886651302686473304384652919134702633403553925896731031209522818014392712428935271098720706705355537003682289901696390433569466292864621952908788640427218374639601552924375106858628049446123383530569590427028078208409863427910587222701437096501508983138518194561614056397046321491846872636084864724870513730886418773383630949888488768642558828735057920723470969955779321932473797795140619696962896053693646460486378126297746367228845716516811431988751794092045515533721504920395520797725486705490721617085963660055890343207492686777066317073755244198420398521138212504004000940831118888382405584146741388012468127273991098540897934164076594407675636570443303604994103793990186855915279562421964550019188500987299657676744999258173760288433686615608158110570908607871763677554660701598799741426616783814865649451362041276105642116411460131885749265742712104503907161864324827523924014608132481765098367281579496198937697133515982387302019343386208886841546367945722830014432131572456860036561141609436949029745532644363569987573390495150674917637142994332488264147096460854005407354362435640787034435753600999742985786112715528916832763696925156920181890885384423354168754711160969051590162060603475742944470361444142261172288980079903012123909746952346031153066840893045054094523225923670360712405112223956247467936119351882352575660099559372409647829458907765336422358722027256376071600820454563196415193539208165338478104229327878408216595528539372918292517203167671394951887404544116445746897879560254051073168150524203826589083083212068677708542495283992319236126960992073861450408938147550533806771618090627856601369374050172140715878566127320439690976556145139953426408150333995910693044142597718450001745643274288117032359052013078914659641808085025215670087876304152612736656691277810381462149532919606318845587113813773622587204247730831403703344455545453009470648474620406786556795613527000060572463925240647577917055002522983036527444641674848947773133586723302379759814789246293661769212484899222739303468027972269003810319196717813246496074003565572843835471439643942968731183162796503628239907787888733144483586261646980538341928750580340519412892157317885480510135584038831883983753621171282550600143205029971824564538402941345261889104254772859871508485001586179043701224152487825714826959943800904819239353637764448142091288589379553054296207357135615961598048352059746271554548198978158388242577692853393406942440864317386497993546739654741841144116417129887928290655429584840329279309625515967790619428972026416019330878465125322608046783996954821204808777232860929810531302749508285889349922169520777427338511548273864892331040118795350385306211052885456119327782756959138329956576758702861983938218287715130365781427691293957301888302015778454371685837942865073241934669562962735865793871277408223506733407074610021754641238995060226279564837639347250201056894420136140733067421247070616931996963916551108728285863740737478561315457009854474148368258760195728240178364678778846175717575551241770347592884848089275370737191115047422092525118883243380432653884658906653733832694447181965428526966082223496960605823676598115350695981751274752160746459565985992880300337944407814903437399590941678488296477043837434960121377190089187575133608267218648596590217521379172660929840803321537006345763931638956826498358892068690572172281438203399936125262166446250873745676673915768648101669309147123254544828870826398216368194554306177761156078930207909373795156914408129841249066812563893728162549631324642218060864961478172421557392200407815571148069050235521721575225612058180428288079810119293343538966125871678130174290031648140930922234910649701104276121170899772337031151123619919176790092109703428531040208274270746815560352997602481271891709766507748725941058898363357497972364443933716240578443968853940582917676882871375629105125074546328619259242092570706174700076184142738166046259452709231208551282472449394887862327637373435196637361884462074936830677110974458047440549658498137525930854000817369771846249693528346289072499534639356387270415222895385765178584873797657523134487587818360138519288485954552165139556412259821929367779993747100582859940597811865990061070122625257287531537773095742299524625470993180551142933698165050468028823075297890340261786629206646792842703429317967702568773629926533325450087000665529177651158647815193191198667913865939825260069124612698308491281492737570459046799311860440550410973293888523699580717745342661749103878219800789345764384492552291179847331667241340344877898775962296753755841442845553686472215114858636746935903624248893458532832060025240427011923405964425794541782997861396317595585591852919288202574127989026961692028982238710495041202132673309757550650376966356961343988506158063471132563662406333084920694889668779044985983998024595365806966403740870320253983012241912408032615106119544004253711385965955376825793871210620425361542290985307968133884519878230358240963240137103840376255563910801450480872653538271053871542927656293006408229476090635907281286365096792078086117691321877561560561610378923293038342624512572862648583439534977637819096804308992111501969593089499055067716768295244737671399872788131445294270574282083604252312631686121113537903462675610672003756872924965276872061193404296591808443905247204382050889041422230434366832765816530905118598557183037660674782052491286878810129364361496308883434564937899101417087136203690839943504599855997626179139871865710455528989707215193787992075128746073507137602307502917745443999194763695361157153846764414121625057646302788080666938516379717487077417730976565961135923883644320050238900176776070534492652138247097102848165388483178349450764519288157724425917056364495379686924125754268242604424843817188306906724263057601383299875181003143055240881965979590912889873168423690947413898267869852301822429397649065156837032440831376878811868716146860827619760228939826705620141721581145862490203440156922884743787914541380790294299303901128036629870408975306738920549420869626255254515419334821070626794991458032205677860284445207571424267552032523337316304406559349230003023849935186897506824129018016880335850672993682436159848637179198096955629979397691458549041743167327535183186879025742797909878162430792936377993280581504375873524612437390691583398155409973407644575341474355115666463839737490725864909262895134739656480799615440569977897788702677724867128912107753447800907757336764908915902551193929482037502189626488912877165687636586381969403694215661082841935233897733617209709047269114233871742075127931145793001518394882504469223103356649832507785135458624111516197840970859325065398705326606064888957190654877883155485567069902756248229059158618003231350333188884380686372624615624639707222609929529275962810441712906113622065883288890450237935716818925011317379051037980786387640155818934153225749606489058698960154315765380779688041304248651142793730672712246156261232730542989175976854342608411487063097633801136526250174415904151482703615528122182044375011934089304849062600504451800764036803325469664983346024204723914768142885875303196885355173869987769660313635064291534902438880819269244950045984806459478860553102818506320559784993335469124018195598800214782862737455577869577699972325088680877094739758246045025064617123369304850868062471797155568876092253431806282776088267371730740010946962931158572029963816410703154106006341283966098107931681233774181850926631467252315535381395864331566639374345846929196128343420688354679117700261404829417519269676479726586305699305964049831004449621511527183723774248368576690412636477744567887260287301619873331628423825806848974859895544228529050470664383711124637021102594066731075085128301635550613139616665499468653540320889394121110419283599353076507266510700376492182271097871432407113994176944233529276028836058879078503800110912408567899871351009127517269442583849482526154391238756999010586214733567030472884509780764555145102541216093178104156286792602316210472923031965376824742813576585689119300492412720132081255326111417828296610366594791182268968357369605084483504980290840187946178738072997339094128771046595175374301589063780233974850737315432146825185194129890950470022730541737994241397169859412585398327827211288937282786341803075819763838650733811543400738974962118591394462940954376282583719523087849910458218806522038371764122263372027030538176456960449432720876330158499306410802233518244890442323086035777066417906738548526174792925068477773799867083493087088606031070596837805386865760676668553576934667932340509630404393200280258236414119737242043361241338340165386140404520066907911252604050740730081770624169119250489731336220060786407474006869977916823831315883656106378743387455299484868002064573314740649954261455200183123298690673315117969902434764603281366695682507301425482643356020571489174943194772008858435351191334656594088211508389732173959227138498548810905463588233889954307337412044677804053906916193507324183354476526770237042479472489226636168267520050218728693122304245637704161688522000529244581903625539510262356344197281498320114946049704565508615822570721888184764931060062960516731762953823405801016264465212571580958318278135856521800057386702428385371668234535456919579755360792047578552095737822068077436338093935387552691211547614358675823357671663112407502374502085224974904847045597120582784560866260168005245557001072328762329747374750845986547673532384010338950946297775385412004430589192027494342996558308649839685069447250581656064592574947305081579895750500561373730040530487042685934494063646669754453305245606725348415104944160338878720496725754468007767635531709465885631299189707589242209658277578669062012708046604266127579042439590733130853887720749687292694991768268273109201069308224936941383947332712428986956918955890093126235631940778255819724925117304005221318901837901872098215416383843755139440709620563074565696607431328224459367459060685492759321436202794817525810147561550303323665430698467582808378407236399426652304798830118731182231743539596194882852457995506793798482233917328024172543288755341336516683885131230195112076319926452601456854903562815938956658079511107690510048347230901003849075742063101778895980941645913543242949491306247530585460905064525395835774670037463885282820678452884151197570921707044728072253900332920533538972123290774688417325403721828361051101302840736256524447479145570841563618027653790126708026793736605468953546694380909208858317758667385225441441808292701841092260738563644053176493631059394503787993504062743659567551676445565225863449682591855371577204546101573708110360145156685921981319141403978861171089665801478301311635450426057584825530547528470527269297277071315565760254251590091687835310048632360336413575821554801287281632170272683615522091324719401646138960658073542009435578100622450122656893123522225738627016021318156598222896996018885124016870079026945105824190831866449748819296910136874389517683933840757285567148069836320387812530174212399140636635797849876016433950707533063470588582595354148611212401993839235365028625738440254474195523564881958785379690545514666326046281887524220909374004266463791331874912911530918774212432377520429940885371471226676690992035159595560790091123932547154784981836684687735911181309101244722035456116090551378347662652721252567545357008537044708274637364933990877898302037208411144092503097582373503192686238136457822777246794407498494028365687172989012666463130941657645328826648728549910635672834202161052364078556598675513454467575117822149234914910278212700630731580822639718758974392717055426135249287785725369320648338720385689915955252742608062024385916893491304564257975857412576193362968298034593115038043479871760121135904038653315756795300463897912021353312689386030365766069296606037329853523907529212187248774160905685185145137676984944141058185214969021561488942411082470305793446026510043184303851532739915898761813274796170763985833751907657636247410948449262211174092497932416972260578877323396591860717741879776395272842572595779128052731857987826802508378240556030993118170570524368300211221697412424595190454660441026105006235299634414682700860880183688707363054870529215326197459606489835951671694888930602143442101860193362495961069708776189147905221663096890620912596739395425085342025488018721321469891207452347780966733490579522182390902271812875060458247774811089560023183792250949994661129849275142076090153736658497485737300639168284932024069595124453952666786688248975167599802180125028518737878741503289684505613614951020025810174828928290655468702923172336512205936862380610213926492406470040863510796190505279129072411770495601899172873728990348317759605441005734341606074631128693510046840098123400956164167503751042935994394763311946951864292318028393017868098603048126063201599938778500818765046897481146262366413254481630363239513335615916211516357726968993854976981406863480657076492534839216274090784648602778123474593234075128173708030501736213100994855895248779726302078880575799263894132011213488201414173505289276820461127271744817554390357125143282779299207728103531058342214814286830269975455951755231601102723581454368307748853484494393305551325951899144975390716701639921556834833671674189884264182473934610501141589716575255866621488541610172250914647052941982786587401184796558082177997349542742450147639031523743470842289322446557279013572464222314611212205524423804303955131615691624252964866412832571718511853075992860729952126462680019896651287196180017368234399315946522335824078200432141836304193576587650273663575234958666915943131420780286909026792229098447200797609454192565329734404051803641442106048705644740546806882696653842928683170073258963128203673451476585163189558388151070251314089530041230689890548192774352335989466333755192543989718861349788984345778367517136847282435245593234840641156642671002839865630589192862989830801095575007296410911216891569348019805024142565127436648618704133716650505540161655192113180201598915256363276124020980811158077070318241300914803304576381257074416936579614903569670720844767779919388182315689924261376857729348415674521304821301575396516581888013656091284559690505453697859621263024774551038452108264945134538960362774016932791429424018811326955177037261303758455584400729123605538593101674840539827780968173296496392024450715043281404147073616204624903594838157688059270739518342254001414073374055127542474608476602079494442800550133080150303936924890366405508381928711661426091335906759546114918917196254540648874599980515959338479215917747601614214840212825115036438389171760368769582509161012555115769289498962328829183506198918126136929838592975891525023166812168634478449246556657504260587201575471565851254370445158838433806983589257522482190533445506786588338857621771048115149987797123541090092781761860231808321464747359100858716461581163181245852574469400917088845386944741164130834791693332840385842636409029904436377770349092873100883560982529193410012743177413113454452693269563405169096559256001376285804551346533147030251535342522290957724059242454483772284955465431042680379674021680968200807978168155199207027689884964860400476730023973483955490393606728801975870196382853835090301462969847398140358429612347950210810266797780921311920323006416859699893940329638087115203468520054048313995891560308459040174886497410250127415107800006216978757406006832016026806517849230948815208580147473071884109521167050695777666555274085645032490985192008855730487481100455162637711166194572293184725121824976525109064327381872726472875616252699149762236948743830244869998639505837075427927721737715529579921385410576511555320983471105007417892201676316278560937983578973086615853238554065205363959282187743962935717109136200301720941530199497942297874800361286330557057668406975561124588083004434693278873585516770795503687579804327175583609040491371607926332164819575639823837100177522101285491186317407447557497706730949586361512429566463115109469848120540506430644583476744481458299090932247942612498456269004800931530090211186331907540904786338671691419505665809706821795608779195326812717247504032225170397653634808978181959339897296441240024842308653840600878485496040206668418678306299092374483499350667593078608290114564227905340200104195033964529553192842221639614911095426627548343770455880148320481519308328546948089933516478816309219981532218815205848436454946586128660750839555601667703136287186977959468720377252603477843571006528183054071732193192361457765511553818697413563080319589325269437324359066445850307210942374366564954787590723991041424313538694699625499285289900890128276962444240644084300959803504215558843494692728294593714289723449241714489274622858790461916333542021955238328892927111630591647183907300797342685698120120427919298956731802815678080545886216409564568337125054075334034519960852094317488370823538345068858760954070954461134763337793237832864294383302840620844964830200816981574806640662986761236014126352306847960442346767473973884939855961279791954234572447389807482870345085441660209973542922823697834606834194860328395192870056508997459652495358750022187737701658313394152487912469340771118444086314566187097000829841359402145739064442882302302090735464173550139699398804115838916295500044088562128506407097555692449958107754476012166284922429527662203202048938641307305541480724869707790855271678099215997340001721188855573101039123685569153998360776213729992845879950370080457679954436258896149773511187501407470937645057954911252199211689976622666219766575862774019153737177122612318155271629565055467615275796297455494868707563380920976769695056783867810152731196963452045181982626575627918397222277528517702876130772524687400402609059485125444480970818913494222352998077143158273883261354186499517621410028370091638989776207090366265825812199856601980551260209716340202043093364647743874113240029280374033522185564658225245843956090825693202524618238837797446469151376538002665086447373288032957415242630738515299087984219395522969840372046359133481866256014223372342987722011213799423101381291769872109954903845839975851780070695803452059418062514936358671839076987736085334893552818923555683540472704951029492436578793870548288719785805081142124689507557960003655883902470921440771459106054230147321172376637608615835369720161755986861533095103210257008269489423798813098222291580032379384954973201524218503966409679955333100309188823854249139272470220242625027314327625116313554644747003629367881377283170808850604753860362691334669620169202222007838510221849041538055012540283676020433074859651817019611112069619420744711926699856923486581332783159316661267328316025734062529604237100348932103708831336188578413312274487038441754820158685514283647168857848221868867735180193416676645453327842117366620719681218973132367450531930282302865905172077018569041681439251756018461014014411017265601739985403213882270467633544234391069354057426359281276922257986940165494207746163729268736210207092170538166508585014575099161546244967019479617781589977179237428306950979656102232983379840108328931752070937185847496491063256953722461259027801246752782386557013263788082334123839090067342873068654485195157885985795761062165606735674102953032708581102709306219028302460203958249940998144846505169074552934881530280128926020396901018775636640664884247581098131349169594902577124997717257638294561780331813847874696350601857880013242660209563697861313012304210999335506053542997558230061630544263506918217086791959907239289973332361624581761357792911931145205202816057077213020610744409728612142149807054527842386885807953964701520754754180405020566567291196527189570695586726802716284617566481761043703905193867864560890242314520814610289769642893752060427254483539732132399180519509111311480491218456550010968449282270622222742888486767704101389101994299994053337010588329969434212164943306798056397522981114000120399515470123363655804350016165142584527214400052836822489794616065296526547679391923261252256092411698556124267766306995337581683745646160484103823500292193777504320451390985145540426168924032036504341854512631396511469286148718181398653045061384474142193829175089136228205512665297625502659273280656775778522872560731623442565134757191189762453336847415404544179115329077051061552476661249120563150133566413470055980103640440017759338383701880394123021167641378767541902757662678645461575566722407303009294874265357402490336002343013249336090911615925506217150997967785810429721511460805445808885100214036272503652424638582250024805140407031613462500221259009346572646727348381307686330539553188558102989655909687416382078224988897477149571235197706224137777746049174359972307433498188016079129843222746519790164647926067076926469864284046875380912773912762384814825239236645164263825291223225905888324479872386172534811276319222214429542628970927665532418523235538627117124675773249328850595092836203901732378442551749773758006276842218689632454237357416647169862284860218529314591991114406951923278762834979501588887463777695564908812515367804358141528807797338824059606140294313847589719353105233586136541277427990087280918845089049221972358167552706993608962861009201350391748781125498952865443101625464894310437285409568275210166750377058941349604603151709065915598704615669482556753259393640271050380597467390971580059317473247215445068620447059986882654618541791653758994458266884840978265725290542494873004862197937457780477798871753910902198522424820434054607629628774580717253646062581320402383925532978285773050814660019318749782786141449289001341415926953829582696271297728620249836704486474521173682640654780857712104908636911213654817908765145888908497557906743827276513541375933063055744622647891828004855842512744234735536915702147321559161597859004177080922873756012694373455354406305024766696050841132102764490715352750710419288158398271826159668036527478954980704203872850206597826647560908827240284843708485552319466675584895434693466462826218780368932103150383193431677138211856973980876001408650198183985144176821445487517803099668493573392926015488750098355799025411873411696016967705863576882786773760009891797841874376083665808434907879420068244167542095946885793279135602635609689114889853725364785430986390890228127625653456975567628695062850561679610816508313878839045118078952141213015311106772943045072964040875957447465410603892652367916841102030068524257189856417263842362371504175951926610320226208392746841347736222302998695058478574403534119345156445629035042379007264199366076916484640259086659679479339681411493864047511406929215208961169154752151524688805226242271027499163135739087733319442690504499021098001645364101190409980192428423523232434739744027209318074750635851976172348695599623423458470331575450119423370520354960056371384599303400606552444795012047234530864710720599638359477776248848551684261992174014056561725995223071794897971319233721413692129545391523222379878919957250657666846732723550898435045475247788502351659288692700226769125166124767298765567247414959239725508093214510496744678953887455986131929403270097160204237160948933186262746713581347967867691851883547148575178975993720280749431796738835405959729600465959141406612867986226803027938202152897586166848671101638469345713182362311566371166252368906925197972676791328142042494779467908477000395034757240826278809929554064778806298324454242388974499885004971855790568839669170720918495921307710856568421106418019560799566152133426605658982494223240096199724423376457087069672600298943571096911852292933863242231360355233403470312467559109219749533389296556943782973818638593832990209843435618444910986054771784523070300031702517558220734842865476945209934636049479519404325905958252909144928977530963782648017579877162530355548287399384713618567000726659456269313626280705091028323765139604660888970821260202134383270142921079544558978954288082415783844659483584646065479467808873318475460218424021910758992936050413861658524632782598337168501625324211518369245225616579592510719000909972540614995710456256988158832896183450261260534140619757482556470345487389058960352584074935390693280527156667452121518814935634476774257830904840995905815745160914992503839380375678614736477577340839147112521408028279356311258583186366169327723847124975171620821879466737296247697723764209341750004703941481781213995225038320439821899880193328929946451649532210216631016013602037001046783881815607752542951788622781997607828675187506379387546528878497301742852095572828668940443625221215570047736351249672652352237513230064537868918219098678126994530964612595435159915795122855346823698116017866249949708395044279601577302921784871495226646467041093701037795304110308824892148189330347402006955187663089090234459710896924893141398207518842341422001886887116241116949850636392215139922225593284889729145430614398334512087899091550528074915589187280946213760798498623549421323809662177736237792808032068648210379667894343300668645556282241074146716881637413599994521083114769246706457646038388423656983694516435323545911495279761410929092938416547873499848229396015481796480439542824658063904418536966061902080426093427158600596994560622895354962496456941352104214951012824274050745547381057728505300517592049022783936325060824453999548021729378585086809083542436761956558653841721004580012820760664771692805795846629854910369535872319909360529530785005032249225920276752106200074340018882628055075601523037624647588224424818657952028155525936271239792161988537766849835548914963608954770088798840250529985250889938274326890773514334320126284515380564859336661048156952075343997055609611235256024164852420628699293478258221084234502332380889071829548376891775545068701698313340698652231490340045389502138685670664957694041557163814364299007118062228328261173656979402608781941968815531092364718966010596507560016818370834171370426739918834738387614134893752179328379941499327498102675848206939059829524023265780740909349557867952396387874077454849654630068686483853034116479888019618974051816740102760522315034398792831677642077340260629135575059896300661550383066115018167186105224496916999862327367457774561264200041745170609222761163513972330968999922038404302196605664393820847702500945578502054224007338703058945661604160399830586888046595849949236613779909050882198124677658190835185342085171879183860758593387459155334001708497736988072166399846568230516433996467754443447049029341146597074560117195936055033497031802707230792409307760019064531749703857918235737349048687513984648672162376854475925999312163153922571241496639028460311212784218261843721149956641790214371070800051583931397538626117985758683456737365349101838782542871724614395713007564309182735396788703397616160705400112480271319260585861977510663433172614413891864032811897260716718362277183497578757222846871229937767052866072792917063205632396958546231276921731598490930425755661243395105417394708400947442962240841743254622839874466966336357441950919524802411472146600501496627674374410934419589828001930215444693989513287580292716374060561502743084823285575025912197214544455156320194149030622875398595054425024434792894824357061410677514280330066996822506606278407919403336149462843074122008432582011253396628342930698611851104359021393551854061541049973308317584227173834457172934130630201731110879268345145390831915204083053476631681261225792732572812302559956559674558887343145321383827965629047620320913566191913943072497139170201647962386592981445666313040080103773839095429974794708935784017747628308992778845230729051514999032765723075117031530877670775841483962512605838338432275771466390519599367071318850617653663091507648351052923241641441587613464114469882535969885322108098121692388356615192284821991210413395199970941130716141033588418048553701218390489890968550741230092901818048751753691430498295596294479668663123652214504983254142615338966985565432361489067854114003076195763975989976375974193126508515412391333201570619495937655278530196820849570631586904342199194741339393211123233733056701309526181683719332998631085972743304930403528121952173844739986162778686663645581618886885129382202929967759438830572014700121107190939483317609435114154558525747562350008430656658759464811053905060645366743448975447004087481703532210429463972846446662467933743684096981310100474110971610926265687491036459401180129046112760260576190072154661849834161980977758959203840233952504847541310126318137992203927381086134611913747378241408335957672472628946694301603395924242796154870731767776830457905224711130531037779867125327697286548983876711572756887341100820586817280060448573811946099248141472172119170590306869014651259252744480879267712994134406614355872471308059787481627371265788646471585141749274841055524415882042848220234710413836896341429408394608427468206510261206434189833654034880760130000244484839819746201705179362019877813119325702817805130982070000751237921554146016466461870610961106202179470738946259615274108057805299549287283493080726269122929276319748297265399733742037389066018333175002677586446989814758042916102698729299130545554286834959390284037760236979910156628253790853604910517240455692414430729020630794769898616495689596068261262056449990014010726853341736853823440563865522475361367588087041657174843933270782134077964575678934553673896219200216785717238255150331571558525924565430276369440953852781122926704763454493380822862206905525900367322362376273146325533131573700742584478226456025719561551457970116419461026564217230345040825686230192481929993193426778887554682070554568525785108059123025598173401916225993573120691071220184645653307010253559631170531601960916629377409089351074263973541738932952170371567417348914408809689473704081118192748172293023232920625120193137646254608825671756599284100481048930828577086884615353157268140190294726757214554065380430597879323037275589563827363528879057864998570514955188510201460637739826431056184317236668432481960885672699057390981876573375094380388447115583889851577549088913488262836385605365192469468694288622651250201153792934794652585927327981468381079269173211252236154779223218640347039829737241441982789719104591293556698481818103518110189853489075736319162968429572906914978402262661230473053293561538323916519547977304344302893470607319946615452145527330216327115215152040227411304745350738344786750998032647007535170596202813171580317303645951044059018159029681172931128606283263509666777346467308943539571055111071808970339433493676063930407141853495742374934277605083294195026688415007283362299302264975185190039250911335710069404282938890483866782265606336642524204626479760580117987296275893990877389771426069782088466199271715126250834049075506180633327467524493108986133242331072724449659403933482030562766820872718780487585875571970693877273363543158119286352423032067366737205686263188005322303878796480502195279201609345063053213251622854130343826119544047580992965476048876503401229376738616981657462899868764149309796641145428695158647576980876451933745030905457133436358996001537514167160183928144862676460778071792903250318621707452607825825380008391674198397561090679014465049060503226069254820813831310667290419380609664571176996712449006253656653506041720622564744680703703890333525223297196067008616571971783063753816496705665304985771070262253998311218640109944970792107712609361381001958097416248011278535318398858398218711017757552364596163637684804907733127563322762980247480547803699713148356885262711354238179711895409987516806991904992106709406604350071549227549224600564588501424363072567581028896521290207975572557856815400548291128688710278370898443988516410461548292114856692940210202595550986450298971501860697717367098903088512567637130671353233953310427718730574975124405205607566064555477471214448230458882979835953022586879636619869884726605676935595977185353442429350618164119552068493759136871601215635512270375449500247706015871946465979007645844654160130780651622890451873688098463857279332222782477807509807592341771846811529368315101260008465690529999840365040362962112855826017663226342474512119481467267818528869817953509039497396652925544941792157118255099703111872121394619592758619350454812257655302851609000767143741175077841190814999813369644810982691781787541603885604721812429055111694839190012925305844142474458426499592661569853212620518763061318401176381726767002902442756982246804416920738540639563927436917044828779853678548743068923239494110623267908124651041301835205570912069718545951512462743064505632751927627906259620678948779291013149361547070111301725531366832376599934931950204505954428413409950280560945272859341867431283414469806630268120632376419428509878714691662442129082717668150371810996954042594347052293130552149987186927784605105218657202621144338555194188876879082151233028234421787357002099378844546693173098298208675819957526929042121699380224793083323266241863850844952870034884041325640181800150893701562881445568678982758942340098162064385624254338158906048948418886244620021629015140956801964294903058830097460873091589798393397886706314517876652068917896503163258312552254828220030369200953107230358036053599455650178481508998265536643105979842422354324992367257804266124076414115924652245335478021722729540178681644128816461688244273452349442822593920868952342725217296921313417523722772966191471929517159492260119735068704029881318697470807408107368414952677642748477173128809415135820554237571916923144701448078321705838016268127645689140037302584833240497122914787003693168693476042574258722673493636972124117720425100481494116899901533158547740971506375680387382415132671642841210594579696452377598784456309812505813350900475206882033668304671450354938385086419109520974979520230563399702174738362067198841628411214783710032647040800292828175382110954678638913456239054461092781345689819570592034030804820576017844492766530005842187285152561178077056712556968269228050759551032648762743537222599951028927346668988206721102136095741398640941314794739405233801546415331484211635882913152309317220398132269899838527202849725747674892529160074750396038050966298648991705932392374541400964194045719333289990306051265688132043567773555315940422331656195020569679288081093161516198265660596758592966372014116449936287401332333874768441905902854919898393497673978069816809917413056815293634168819042536192691161838105276283956018688148683355674618112376825656665525881758795478044934650960847854978024506764930985057031651706436823208081632869988737760653047454854817266676885848657313330897036191404236031431632454177824780969504479328915695246752664343123039808467401645401245647680171790158344468443760633338295233487221970524588326186035062517275720461530022755460327682797523121586751422290881866949230798732427973261260465270343172080724152287442772108682282126735777715557428486550105194125788096135137524263550234225133792309174481260718808960485185720980987466759426556793879187963443377634284456966666423641354689474887370313348966493001073339864725488127399503852022645058490093297262590114010727112620922784834674198504286112285993587080647302801983257300959326346751033451816900655493670647959255234731650246676103303459711430000913794126240219645623531867872469017243532559021597696159015127279596512454151947910169226370606253545707278787894966118476542354160404454932615497096934746791766215251290540135771178277984085563118035646081161412991979513449043946688943784039697123111689355998853245417482629341752870475245943442065820429047354552562995381881706938286187510158161250916290030912063619859254256779659423154577789101495322079262983452070397039610492728046775842237169705458696559657281136054314831219446665305122040031813215141162886799429715492374583297953856268456645899666807949202700221651736234639827285506121065025203452276021867708618524711592641785879271179443699267924802194062105682115646821244758350783292978737007705446908996048500356989504750781222331001877796119549949613387730725783819251601729022967305434519933158910152870498770204310942241889933322558031010402193166809104324400152104314767712507046473691562689575931894698601617057409720123466593122584676525698718421629297031056331833365856047602100275896163428026101304304573698072822574427868757086545606706680881983048440947378638432934496923237370267378188270413431812881360155343438969161379533698541704191648964098972200481358562080013349957405596212675281733833278515253144689923267256392776170627142010173974788133162333488533953780411972871329912100522789254544330182790207333032090414013590491347692734597286141390479835017984395799427937671181382079671973061630345877387390713676841267618602766726932486930636112153343865932087101947406421952998138513404584654305284745357747786166664733575171512929251756996124015791130442286981900588454483388664719276920737724022827314340769813247937618877653313439315984006501813780300043309281168997084781356175070649277661817303460880185595605770846897830974620674321531538861477538885182102543758061949870372723663690981074775154482965878844350206068865940409707825752460171428572020469251123005471175799147422005440192035986206408164149677401485488353298851080015182465013052294697874836224512895064443851475162369346367420644232258939373242433115405300820795885113210303533555060235269089415694467797394634550967058326999063589122011313017918123444499220825391029699986234514879827094995101783355729227925673589596871015248162725971672240452486269989871203331415998336989795089451655654876136134597656705075939437607926996136373210328264311891891377268998535940329795706361465164459566308030920011287878769094217536962461051816029476849588038921772426262088863314214276230153805246422597071192538511096912444078137433813339800091311291975957055667362725066185694295111570777597000055271416209188842341178984228353499829904003348140474940326600974558557412341562259448133540319762675439075485370485830007132034158737094304993276290551246497460914172870650575263708364534017458644982548395431447652342525633911724373537242468377326631439932829613982444845954082382255337589509455566041436390159997064123462436850633708070808702433637353071287698829590078793894746509866814950103578123961630916426394955505853459353540769654954576091785978472486851814134465459701736820761090019803761446191701139124666285809656985678226271885811848131813627718245367986106015013701394851752912461321616213124024929499649495645969922899764591710102537212934931480625234813679000030090471663527183685764255490961068382608639265860435875439502564044534106307218179034576601790550586958540840916025537897650866515505089348718378559787716281134585703035009667019616102613306443688213083189436583628636414807310850960694449606171350533502380329035045069178473726022063103420571991668019102525001475929764970645810863991792141416139752189556392946607712477226138929756137339052457552201602776360720418837468011957056039970572807827095211781209039220048524897920930313586898098570022132446833738857718897920934317150374123184520304149820685338844437898010566435159738132507897919114573563750230486601004100110421946075981892529038158071205539282475010793308426026328475820953611507589636524267624320855259801270558906247181278768959686486040318534637666315675831374924637162779666656316151943286132130262204825732019320034286606273207493681697937585092407595226876989169314465345160551709003973496053412261458697372993658019114925953535445045001906914559564138393802859604327098690068151064281363830579921298241635619792436374712906985588502664441444171373939286565147407416270336862364504056257972109221299831058834553723800544304902230487829976220809927810806021796532926069053859694224889137225998973604021590044778127326688614699762774071818233436100102991384643373097203706837674688283147303520492158067168810184686200364693742760502854683600685030642585667851883697837500686845439120219755687462100597095259103285403363027311112018468196767669345345120738019381380266481958618713418351572567577167687194392238091522032003675548726422000301552821036775269970061143726232592769480742623430821622755741297852640758049166034273103479380164900724436382413881716637618969244753821474086609931550618026497839101518870268537692358669799146238777395348792404556981101044241073015965301546504164952261458761302662853932364408002048814572924795127209194704139478810992054362951919268777397604265970899822999174780963126497163137590671692033431530085712231843291304175212744630475550775656843671338518395072310538109151826515586976657772177897966142647854369665971042461041290743019743514354608883323950362260516082173126272039472601437066201159456540189810251217131608554367282758456891542258409717664736149377650664081573077211500624732937043643532821476531386124061768279108134083806861831838743321273827620467925691538022560409052517252015077660303925603784420485841877096385926083688741908852969298548429353249322363418026038570455481766368819777305172689774929498069840810640778226362091680496810383635262954994104776721180506514451410975254027260520330645790993990192574239164123220516114839747728070019545766427396319350492535811876632767075060949260251778097474886337778031082228984447747268302714330178302438478482674796498061413386314624053522022483516527749438983962424193345394821997894066843952084563879820129391090423660731464685168134728748079776269863932818920423981229685941684924565346681908052215574620036630258905032008934026103738888364105038219419154102830392959703429655553507409307540510056368376755233578829467876131372724942095646254238153557844796521134265860268075291385100170359612291601641054213303124136809597279076736369279510458467369327260100432191321440541450779071969572539341501984515456152472077481891253849560767058114585481733857685499333408854290998002470881677068583609019969127113388797518466533543164062229368896970272172546420652574740174779057793906815134205170455906651193146192616395695135813414466989248153839444581437731821603278326586752288300565326419832909589863282442490625227454820058127101379244054867003669677495849394909749302392311645072650500309588349432031433594156725248276424749325387710700313919408366952017078177784193683055967447831581183255755571463769287096499034502647094418561032255225688896043951398090151720234526992067469219872724495800624355441423718663647878920069317503965282291710599209039732579499807936008872797465262313893907509825859337879970708966750998599042019549286880918026245150921361701027136044555271070308467375063213771509510276144893249491556781405993730121985847937177443839000077728391412211020117475025888378274045835815451215278304666583295864937613086755234269016188676143889972949316375898255983429259101341643310970452510063685317280725954978391817464039558408327403921145089047140878716650924426901802442645534491058186945117499421714199480582816794339855444493274819648756324913948681472339897340930954772236360546655715954441779064112406919566175598060447367067789637766503435682272772390846496171743814864681249830280619028025346025613660371530203699137972371448373193028157573200433897727397274357029461486550540424196881009315861348603745072073571822467154513311790008711794592882853916598808742207092281126949853386357777593243813845747183124048834239212002635611099340449185242057621107408817635594940323502964682284143305733367564022154871961270089298784765856623445193530301444787819050198687669143253932848700070180025111736369103154882530638815522791341249651332240421420301919746985316114536820621784432917483693595249016894687247070383433966995101125047218752196344700238501643867909616668960182526521896617833288668464772782707695947793976841053813011332186230377372309809412362792480026891153852528746423564403854140478007084253640077046690600900550509045463213429010623702151694111324564837442145035056027107903629570880189755424593325424289473884991910848430472944535565523428726987373009063105618993946329988033898049292387905967304927360674774983831972830454406400985987214752805152575735048465817201246023264256786528789433398701759917805180496818549749036274054520051047943700607117652932043246241977483653917846355440544518811720486985087030804091709210943197903535581074965475861579698915924952277605701212826810576457377292695955918198030535477469427625682235319891534631631065686610747118111086466772396558846032147746688560520275833406250865632531679255698392699559261524116144831300314702123199479362474876523646995336635531170177948202810685901364864471557171282231802355926583736256083363853921702757071997742754133886503127593182028298664807368396427429318929122236465930366596778251172149903587995156803160526393945020026851059273390050371042823789279861861460090436129147350197600581248880166805412820841495735041738781479175047955617213289536650002452422967443810173412569681693652617753926434517674226435329646828162329013152302546568157531631166454463794120142935193999010273805804306325985665789845580140272726620321624226294238090573716359518888934535972031154579455606177645530576601127081817315913330396119726204441238193605305771473150925317939529266876441168128371461865741119052384614017684172990090087652435742997397942629644957288032000783567079344522410039221636608634687068446764122032523963930076120053955755327806578875304010297581166325547651220140944213546137207830872578219084755306365609309887547435794044770991946788622769656219742064001487846723748272923818732922790727023110125992615361268364430197183000553012288401701039796575828596646282671712606000613482931218036314887582813232302112412825012448920765093655375852937946480154562718474000232225728866314035838860164328207396352355410704521702738014966650506124122089049556908775322245044937513818759752231198495062426301352272171582276495433082113395494061695205293595173332622235997189376171377626898542467510198982943955833535467399189744185743094145174181433987242240350571907195337240176116491352820528777543351283150455258671057925405515311212330405754513046129041535423489508339568380402351647264157031695452500576782415526749404012611940873137490861171280226625783477536757264447094184956827426300400195319021212539531218490000191790162810872634644224623345012047190621792459688647098368794429933123882531683349281260617516788077124103607662869684583429818142586543055064684384406181139526335369149250121879312081111549519892340900830315036392471088739482479969639867503288337274011551502612041071448398439611165249456443508276127394579712525145082641884923650644244729498860976612806156612757099470129780169331639803997990863400346002624898427042950009056870452785008214209677797203194548472400678416469542781336256996819009160673251891304732952111555752384624039988111985730143670949997098338916464993500168782434752752048087603123065094338828695213969012675968770136293954834873247255603061139808744143905845794886649796765742655256767534850730820606345335941970537522759908241228129157356124133055872177542726200069147897077166841462397325953817954236276684585061237096334152491025331551540104265308859371833917133175806014592624985996757674384536504823180317066874833320957674672969180884840982695625753923974241246799671631111186416115909700812510661165940616637395902639015309132738291264958558171902468492343077225257608493029204643473746900756634635194943245021951963905739311386483003236678176080822565891354623858047684363676280047364816052893954639661587253013979193953303515453515609668013811065407807139403827857079415712486772615271514115275454077285599488398831934496195794976761723702689722983565741531037231200627831682233638865698701348305259887250568065877734434496221798231203889929591165274251889695520641626313847436871455235667505295195667076956135384371509772868638269838964831994474634140194556410540220764838703394047891544779322509739331554392845861367735032552992127427024551419480483108809517113414236220448777109485336815998160916998721844617786443927894011358837996779300292783340729602034642221663369319214950771603206306589961026498244495534130222090552394185336502070851551698899986450041362450605398503956250550955013422057550477992686481532507866790712802655293520181645825304804729241355239185908466386691686833545219625809052274206006001767020476502297617387900444964620399527804786684369131241157916701071988145883523090911090481648401716244684240849051133917089616027534943598629138388986650858871244335116689771236660553178144311397105527014957774995799070980616166906885309504453191117907052434661390105904429812822452083130437836616184857368575484430868706716103488761824816173660952406021130631646495687215396808602501538214411134412223509690082756778063124433636220806143368989788135452738904694343228855769526628082491748534182043481348734575874067958451255035607103439962811769081597365461584417041480799827410208702944502302848014782847251058293119480849047502754848861012113316032483181530556050284092416220614873930848789450377890719264913294790168799864606406289540079790515460906949921618102688603666773187069588018484052736328625329925591164406719540939981919031072441968353771514907578446408138106996422685762487912664993084438540190096965883065388545975422295129677096596985759751563538140341042298644436592123509740038077228982645359351962919776377055073511078531653339388017450732011984835401176272701830708877595814887124656688638491382790728371835787996127702666885961645488274328542282115360882364422398877450923197351451191238527107941559770607883684419086167546944700350737179505095244978601889740294527175372969541011182393288438966194596911574158819358053910743397059604877113862262302420934708484829380267023412414547697633690814564105059902836256115824454285575493853999369184126597454850032966141046956712895455034632659133575259014598714365584256212296938640126032957090526141600176067548705777699574823555828424888695625218412633235977329120957607258625297085932559736812123078675432521514094777121925496983431943741330432688978469021511834719817253052333143478767266145470968952255189426144452340649405523304638916548136562593929059332007341527391380335756589159097879554068218025924871246335983029392111345512813899503410028200210579841245086204965767155654741170674608697689595693422527354813533747923598988332279332090353738036097580463155872821191495779877571893494673909048963053501015036684517254624813996444481518742673287465203056606477226088921382043971195094019575533896404407598399724321868862331078413696716503764052869254837621851685730638500112195354956599431537081321894521835668671231377824962159366382153019001469866838219916740360840736748265926019138588345614879365493003517353774531594887097939061909337068488434749740128521278118342494007210845331723043855313784706670612366484232773463926338664983637803240730068344774294511806457212105366345182503252200642958990121297892013023249117525855865944807637744836114691117162947210992836017188006783842492170097774850509867120606889246623968339926856241912312766787470289000890980762190216508432422284748032880755585293745635106823110266713300314740977845114731290239764851856082014076026467364107211537239288764149895697142698976453557098978140758887633023747445617199281962893477211282814751636894329511825293976412422670765770831382354256939656009830794115079717045754974591562134802244757543902311714623365827182827625304889998223142478206845877538307630377434046562801122683880078407916954210054298679557706064637680578482375204415202212989730584704889915419615329593085353722919435295094884773146715100957103028150677739776341649646842661083709592313234676230993255733961272192445326860538129394680225173659680560931986645595978286051111707397522453890760319143225203550656846006493088442690078346544001992318439427803296028359209364230120730942394675042027563706451672075082940891617940686664460623014895614259926351798311239458813393024926852335412417617106782519461183380242873121501682323988955631320381933680791362856228362848369452298308068233892545383655899395228841979466372159184538513927013501208664200916631009607590837534914438753602435276742824558980753734717445824657468611317449561948765277359078142538530561632900494774906485241477835123488119669924452737939625636899842070478791746241624723094443402429335609476879855958747374542965905447825340170869262227323533353022383619939923343733346631260821311337478204095855617189655629348301421905688663724225165610975980432778362556389594097801548085263683221457081299935623917400504345527552341921936401517180219911839539746744579394133094042610238987281507133980369429073037320518658262084365383154256098958348899591248995605168921391910799665048303969887139849886249178484728713130202996239515689489336090796725220924782567247406282678080299723137065220306469013211996107811853881691932195564210198604486528438476581127757312775054428006089734563967771406289503776006164446896400436936519969689122023350856544049984211995291368826510605263200071974104844350412163097952413647525118639989174433192188880302786688194167396481738437617712405056505582582180646990693777993450603733724374507363523036966190264729339728490845140788630928795054549882963377338677906687488847647055026841422096206119483928781717455835741957370995016857084454226815289048381419683061360771505824035715005083806316872306386465382996649042418910687256750485644777336873156866693843562160890138284897458017643869727403920040551509413963893541929492936810429857166617329648756248383775588952818159019634558023830305830452552894965345256437502173263553199379478334434426050865373640663130079210819193188428317924613691300073193036142790854935633488710805038590910567187890547868584710576852174503546460236375723360936322778428252375416118957483046002103933877413922176826000691210037548642687886013737549688097941336014601954932009628321225993331500476190060615868901003933837012623644017107245210027910558329255258954831252173257890525455137134897138152416867606811897004878152604113299410014829546216671101181075096203392211341560635043189208563890434086526132152877086287826153582355111141057354629206871992991356944542738790253086227989277302574071064694784741780177403110530206085450359889908398210309534921657925426478626914259128687641063898359573861649947186861432699600721473907742123753848686470600584427943377396673575255988710901776969678914299099960423823557265513768906005490481291464070153119540012276013834128378866746636467810563814954113013542142221818031996701467758101210448315715835782625917543368474794920815722892834897458051733421386090505405610672344078003815683841375200650667022264875078022816608322437861708505549700111702544241325337418886304074890831028249726182832988857079535917096975666491245112160098830543378389259805600715923694605793940073177744363090471632141848245487274130612421742676732885998783979953986431425106314917635440941727738401550108466280541875709397827398679569119294835009572696664398931632273419127888989785849571508116367275884071525929847277901680211411977129843132030256283421954402624388499492025002402502757997770366821252954135505451577512394557304825425993243719619479232683441069610021328492312247078824780317193648219924753031043190841880594990041533690854361110808757492913694411922304665985965815865843716615518647224923306562291183061459688367519989424936562713007516277503758111433795410693525958263269971002064853167069970086879697493862576346722293755208988416072697430018064621975282214833532221515887195590141277440543248884059300708026843906575565247363069907874983738333353108811963839352329819808693595996481611427271630578818584636204216771531942404840710755610042146901667207785378907896967778856357002438346357764458917271761811187307499718519258629383243656758857452101545349461440193696400273933775809834871802067328762822189790877039212341032903619719699246171715352153299882263474378117301078623596057397292499531638498741176611084671744559462899397428785099147513398464059636683599363163328409548887050596606273918123458660190722901607309001699298907075850970645996254519051132231779990098371485109921210425303353504151326558998779191435905619200765402765384340291929637508349019864330698831931937734481160058871750621426260873206720208089109960395968767898881623191432457456173684664735466023759940832722764912098771595617489363007987965217623434656951304807505919099286159609342211846588811100610207978611733433306728628430950024616653130333115690634047003741561746010199031448435532899819842522966768239529401629772915161294201465867260269223463348677459869798730329892557223625386194534497502383588811259748495021167211365191288995397509924536641949930836669363113623219128081228192256020685019800021194616024397424203127287055056581758324833993800023621999818758194605660728536079924180159377350539955780134702748843824589397114128191380236051670531208215846223392240853230246112216873406875498924102444621204552094449394787588834697094218461713418681031779954918786467644592823133662558724961190601422216511183525294678994981889128917391362720606783430059520685495586456169384629476151928784731612245467583355264544879552538367096032664309572740065143322647083001885177324489497099475860139775351212893985762562408697402932888018892958798503647128275782254798348029640736099053094330655006012088436099272159641791235249293044148663189923473023793169230314114900979554058085730416015049834188164947313342858164943366764966683336585363945018396703848351248629395019075613071148888118136058967871456223772372129059912564362795639416978568355004515074096461696164594565379995111052515035584553452225419428475162970755705770253133079071900367615462980780336073979491416035509962975710849388556856786400094108012379565498351437017065112220576761496862980922545192878728507340607646072877453753548301213957599862390366590321083143027958092591609402492969494124527646745599533247588666731603294579907592339916755797636140532252908052658423778282941370479637515303304989089187424902711941897905331121044365206624584238755177172649320599076124819044937267400943753312065056044475716016050745189224229866696902783334835393003743515888479649097829121185344301265287132576759720699019082536432265539871455123518682365792590485574003903312486314239811942542905213696447543608782010888430823680444094071805777641337319291864602291747504694728050344018175497062447509541533110691456688463089601216447684604075158142256462623744528124375962365101564346403524589526350830322892910820046152692300626693443340462725701006173259529406712079209153530469002349736390246280955982996986439301927656045018899478711416041372242590811799036209805929174394591286332104272440306960590441391509446789953284737172143795581837431164926318301792239156939590705599862549889528894790639536396451024811411001832696279217353007477656031747603856065736824081476308149880319328933467690896817291435048834591368525370071627204717127986568476942889890983082283480580386184645753456880848767612833313723313936952835725901318956970143939066367357962400859498969072020604293410401765599294949067378032447043908434647381960316509033845812914487901699171760387635882927758704757361209591151385184210661514803943017590264828853472887303729001691782243098453497280099524953434948990264898076667741437383046778595980913666901335389908546895624940054726574398284795862512624146471489399094680956738290583771650930712897564005439734832332531048267483499509476319560057794563468151959993867967787543770816349700334208960268885854878824767984065127060054055846431209064920259074344117805095685588995240976967325036071029359990231966490995055709674336653226072005887204056820922701115210790671562285883789386793724486217024656318541736914968384967667103408839533325285313904915232257110765844806824514539365014722670342657530539731911767103123417581365885332289655764925024613537323023147381238863448098575973415282784986437262147413517914607027997065148027668477553498528137576735928720764736366947842842896115747017287992913841688318804884052967852531255731127244351911492617857224064077634449736096986949422510711913322215494515683306927362192833754125720151585571640878337508026537982068118921947963160925046293198880344601939621372122237865475118646291215079729629234823585548455312779780892007000966703409005288981280036053399772491428625953698147789604597748865818697383016286491468505008929460613922177470774971484724037058002980610642481921783711629847601940205377750076473922556965389607078904203785010218930701287266904572305589995071091002700129594807637232895352306466402586469888038506181428487867010109160052949153169614316902888598102277855498842103384897830228014393460182578709669664934763058648911530383137728053969207081812380314469584130230856516334881548853123809073242710215920812696869517759292079179398451979651014548404234254864720356105503871038703552381780502024061202463015704214777721518590298101786728158984005035404810063964906381917247106508731767779830345122356191650153141138051856322923088413377125817599099355955596360326389788074167107251996404934637695059026230762937000921694261956291659787385183435384805396629214056355629379005614419512764723723409332171551937787418491801365895410121780561463531676897427737574851785016011576576051763668182861981468226718719088121240990891178340645003259814839571211752094714663357957270152896850253678535010978851963075048853219921957612686106727858391265267190442723251976450518167603586960687109927343130175172506669844238185205803405763126365684015288283559296072992297671112009389101879953532265378238197405074280316046454252214111658509524751119523540138676974365572792594687573605479361168476086628657371844006462322411494099766744412310443288639312104460119049261608249453704102649701430251412731079646772475601184118739185627592429342722528588822716827690493475682516340432194338331137267948934210364196798316782164642071815149867038409995018972311071043424104412150237844545017975667705193585478856861110343028361498389862279022094470657940667060689985040429195165168189604746316743209960280705244358956216563039416613711567203044419459897225478516254120007383826578537146192857104344014875734802166681541192885365939023238998353583328368236782831411250200595078294954249951917822186078352008298868947075552794121955976711597154653392645416820378609023326908510651630976932522140173967765415524660081008003024877393124369511789923062688668663319079254602099226642493152020065347786265280769179523822217694377054481610420834913253645942268338104089377727396369819053953678764929862254418366369730835190254339848935488441129138477119755551420081408024289780569047811380912339876603528455308858233905688261349503078102656840891724707813145796124006687689704349249283635916807170264348224114109780060442871623822085005283932947222271252297893123367618534652226128888530692393696975397122780647425109010965538942869758455307875311314057233305905343536779255865466383436133792769393112429079789341532866899516035162927119058195147511914540405088694106599703847277764672407170852997162335254186925970270844459159634340465241057972421352493727319300480898416062321652546673494321751563624984201109516589210486168292989906088161430136921554908631331270885950198644835075290700994615652537027596298759305974401307844387236001340193778766696607807565872660242679853340306993698110457792322132395382127332583086846134615688784655600625313425676597140504968865053554674319895925550308641676410165810534753847288090231832562414600344637243370474979759665879270648021270451083196659738207426245258266643071989880952254212230515802467060322238361155057784823385262650883842600341555925942925225636139684144953655493188688005000664297245970321283186900948550394179760646280956858345693707611051039001818626950546267485391900709722609729107147015707164659744205219222481273285282828098689708440526143390629761317543968258610648887571313943833782150562222226101410780815732219047939979369208590568655767994206268850497297409895349783973294563617049032159099325505195087860087971762399019126970637753295042060242666740423122874534770612159195308336938489410797080454128099339062119508780213374857797812972110230956730243509073076635072562294628599837590503198890674920737014456682536509387332893124862610409429389880637281846816882784689776903202026561665568463379208536781121187371044528918338156159742945134357307409547309989069255855660719709270273101263746764924761983558229553104408123946213723620593663497701556953155027034664534459603614814478147089298583052294363172151472080254058682548775778754123996611006455810950273393969257857600000577377957519372429841146865358784210053156318428135301504396953999105124025552847662629709723667784326841657046652645782636927173735340916229553057320299234568976960866962599902252304460246625374278381483251630873315727402487878748226672770902325412700741011643639318760723129279572010968490104914816412735074450755796030087256692789651901365822691610446500682353530458444754267586327401388838166238448588451227359585287154526599045753472483854292623284555192592580240901026753453931964180148360553653261507712048997023811547548534670788592460967147650593898650775794147380087599924497616754347904279709222097031393915941787027479778435165062304037110070424482436226618917565736339787695105098082348743789823334745827724397080801234423446228349308246736762899990004286686630491982913513561992840208724141184587282931718884988579799457012181623857135670719547235370893177940626925392368784772621976811963080859467682868861946945983720895042866073791390950960639343669453670099418515970964389982966921539597975587201945363889199562785991793153012812681531177334243525004715649569592624197150879541143915918099960251287299475662155120453381235351128708819869021659552996861957804245997298266104495606208118976338377242052933666607836661792586709120664313952239081745599059862257121604248120119019559577905569482862986318226000372327326954279682510666411870028762629419144298249150003280002659483130074351276965914699312339046420770329972947516922896232068228801305521536854646469382941019752016878257436253943097962204270253072082179792566266270656300853934104518854385810900956752160349564227468589068657900693000474048820974535242676999628056940638611320518533247405045095906673379866936368209667048474196089815272336579252975911302413272551683099562943390835357040754374417316331024339566217370689221179505669103420936224379074647060238641944421289335312115170016175944334445154226424744000291497963514421305295385796259872287252116732489340494878500210077126069959355225793261737498051097599017303927806965949352395452094942876317168355156277979989984055184097824974830577811667111922811314682934215245598058490554648591621777801755701365907750143577069528767669177051359830895940534105864963307756935872288538441117541090221370516426250528181970424127639751037430644817246830692453906014234622239126123432145435883075642557507019831546453788157027106008299438109106061319312645355929603914099381455783929798304869176116623557757895202875664207955688248582259567168551487172598304544400475915185393886109431659939837652596985043263430107101862909939411852492118978288621619371706223004207471720947134555517433667075942712737856183960357489923890091119844528316909545608140291558294429910474065083564490949780024123249358083384795839421177176284822008226456260439647243268669159542464655673556231542814767160991448918056554693287952777714248291520129111087292728883813159813626352616366300723391859279763586561892687858037325301286280887182939247660257128661471596217486918974673205762173646690494403246392574542920332882978262000761981677314931387975387672971855733310178116587738386464457745006052155012707141802610404205288940640707021869180408205932889123136548777319806937199164145896220734289367817752596585620284920416666018381589000915754341134852903690800011609975929212330175323057116077989343632696266930274957577714229243677472307715891263925922420743439619732701457046861222979592245559511958138762675120868993804472620980079045593704295474750824703727918998244939335955138150735502407404624163375868836556910557479690756258371395740572463352687644255787149451132314467322106546055227055570873003926334464528231195184837724663176154949886103959833545324215494255241964443112895023925221002813132283059297143378472522099564525745145862677679947279013431434997384784188325167426143562790321958073408593145507199364219485939928275864547521580987120381808119191138844659874835710464143678181373134346694771620188586683695904077992332398295303307362768363529609816708103451157403622336903295031837072905757328712351075319137922847220290272646228209580806911650684808117281418193814104421320082351050391459689256628956334303858185329409643083452220356925241823436755544729398065657829292570545610560824574987690930715463460485418144835791051087199558012892989061240248577818568095822811289089145106390332222603902450678026230205921401051991484342882769211875393363776879189720671456552721130263324174969446220597980076826656221947013110159754117978517570012580668050287145328525244902609919637601190954065012556068349168835361638871816465911855344506425024296517557917166443052522841498485950049559440184102685917645254485079540154922695900250125985172216760186290115613509712653110575056141045122602360087555791503796506492634039508146383095327171807850022809309634414291760214142908684433894782384854128884742170957204375090945524585284491184719908298943109750079138394164229005670562804722698637566310384089950466372538923239399146537274692506280544946218244633497315004808218443055465248204669090327416740558134062855891232909926842963740348699986182741126879284507074922045175715214463531103872228243048166621592938761027345993140655120462343469972935480689576972723214654078337456863781455032871101321480953648976937368882339548216002865982482010267648065593789385836888729156001360115686527100011421024692921236917015033122700338311855584648151107913703966239272667195560738440573456939509008810130143340825281703090367408553292168173562773188671077386989448318637473212091713156026246468639219958100682054082050091112402291061355008144153554361061964417638115707206937290519409199233177994689383537137731088528976486017620920979133261747230101271398037070354188096200439273024920257291269590159604386158036500337085556894636220399254658303117237172231876768653653176731936121881229538356715424736016096626668811344695340327932109518583613849175273207004947018224852838238054618671692542281285711779503800594155881139896672557423046262830295591019227346460731572319769755874983973623137006025147532656846021017273951928180279203361861288418461530475834834646845548501500074887806809519533189748683474628954636809361269590210391467429228767880094461867441019121083676005813777709830520141561999940965026939203467527983159581807942622029180947773929434605923398337261298342786095536629362068745557897289908179220708297848528570531563494131209006383088927742860048996318714567862082114689116692080812354208571507301714272524065687437670411523478217498726893650826569410607589751754943596993633831409596348535259808975534875196140893747029490022074513467256194953143771581913007718778175133514098433003273650037824527810092509927664264813834694844120200232205648722842082084939112914490459390511573814166225637073423861432097237100651897412230688242630300790416829644535221639478733027952732109387110916969731939285963481191754260114676690253778899248519460932931963457153136539637265842781361978327492189949665088804158348684804292134943593444640233524332010636844907341068953389919142299323477837898568961743563197812700414228313880616560378555025499050946038298935789681070616532176850635198511597536388637841928743665601531208283356885636150509606100895509788358512700584997808135741997867666911361610130446753706636583556495726469978361993770630875985044855469694760044767608482456563844720519593103982471688891873149329247513843426613914368255220238625779818334988019249143408459537649729608824805491985749508614877119326420580914791252242527159182014581493673955942514335508877487090495574634803287165463305694788291808391159532790629927367941422231480814124179386813484891683777371548273544483009484932633769568434838897322736472232381116545836614070753661982597229469416070118126047942876365414011805399226108079582555168696532494070299353081103195951547552929420064000573330439435368051990258715014037164525681338673867897855022309275774693556652165218695674632253602322734526738574560134174987807138609497282106160823693467886637530273189375744954321083146442283912209799872676637825326716987805629812937045179064743540261587827001599087601317424763792569889450930232455992141394550347220752064544513896327194069459182168473383367918654704057261236954276051715648703694796100406252578894683494373534753982082573248653676008728001736368271598240441237232167703981265815735476289926820713310629456576574639831888359079906466861814052587215791684920932248513826925434811647132417797928106370757822280159796990450750485624446800550714063126558076075508533718336301177349244428681513874775802020697325743212450809284001657911506278251002364454254758192790645513395243679460828521858388337624371480290467827065736039492685056998004157161409879134473029622729580004781375697044935613045137545492502240903474970480262988151203821296016816220433700591437184364388034447012217742126258131600909191718517774837313176545690388826298891275053919239148217114623087316518668342277027971223162162984497048772683834993865859834828420978342644770029734381844103378244408873569257116560104234604132130463567853568252758240944953101007946138945206925256379552270111210042142138010788746140942690417278985040598508390468845478268270055268923053126110967543961134402671982350247538091125285476758071079592452157934232187853900324083054041472105155109755977010809319427850358116372006670760789306195301989469569897062914840333439736419765640008391528482324341203872415692823426944550994697043985961546220968661480162884099779890129187760957222179356793053424394306917553882413035524480424070926792942176724282854170971286907057751856506698964094081185006437902244666788776699703796317184460967458442357061476448183623588109398942437341623162822256378277724561021110266885406936083416048526998858799597091165843353569002777217787094547416992312119967133311910985417111942460366092325404273639401143532225626329670995450486333753617371099960933159549563659930109288944133325266902990221770012250779038585752687526090907914995345743110115823133463033602439853408949389649492235253776179438810693068846204991967965490375686957348765941473437021612405055063114322317393892604837766938890888845419600768950748422388520928653480914111250140769425358564043873123948240245242181459671433152972162279843286691362504917589677951042833567856880210904537689781480944263281590801856409638936193825209442167793065707884791420003408009955177489027562529507644432337693899871936632727744175326599916478804888175721592292434882674861631984592952797749447349982708218615397495180780541992960260892581521371112943247701263541771290495572035708927416641137026519606947953234793309011347962430166744025618683909596533026660492206084777181658779128658326185497454363391855108104132487406438796894775195424527681682499944590015034565260452685987965756551612756223712633189767217457369819092490897783870736782971231978894349694039960729432474271971634578033953845889463446383122200180158699210915130868165184328558793650227811528290543835979289828575493580686864067435356971895713830263782105269180308374981996999134390388590347324088492779666640745799011356418170440643358244567101460559571462325277171385743924626714323467927417760701227008779214727220938112751987534811969752969193323252973519948846785902827156653842055302788541941979468286392343628770030663179418766745205612815215262061789667143505392814506160401938966379131136352497552575723909892318308853485444204868130771916028109710866096230147207372360707184607877016700953218405980828504081845449163756009286569449601066960667452351173042027389348415429900448690092575533085509325019705624174612941461461475519381682027064472414121181058915055024133883677754478423199260283424482878018713715280546332558111079223097853937627129776058218344094820791982837422479381320720998260921132199916500780437086570519810365134158898858669519207605305326062869891594237243375690716157109099290412288804695277279945687729475981040400147388934209873769327591971667150686649376102408610580183399115541618562800394582693376017405544175974947556635912717059814537011225637203590064160753521994854346060448842498267309841147321075965572241316544781270852722209522428930777066272871874658113952459261344296550651905197045848908955638517036469098049632929261141342223327658805819011616276624347794208966535493854043457300307509659324623480517895507373311169984846193080185974978371850440667447165696340777896715919456332422320611096924605411699031664474564527070323356101983487411943132682773473745651490500476840734948970916338906398504825627223818038610850593570792609411929072493470147969022634763908451208377440039416397378080332761361449350326169191666961759256820667455534002178403497388101360852276010911189220098852944237414863048459097301609917376744862386310808665536326441960681093895410169728809381678546411569441236313718256060548541168736079849903308401520240681183839453064005479355806534538845114235196578309686726474466295603916083695701091207711194427253870589293485743250529113671352378136317629171903639568301665757221145311873329902041236260016731905466039897759106172851977278510946007648964775289149033516196877480273975736337871225247499752108625536984013858255980433853379475482813473927704447365613202614217261380370575387878689433514705543059327093842579872791011709084977526982273071318043820072599536647078070737255073235965163625796577706495241393866877740759309825232055579375231251755609932383291059269552475693447006673602470050854623609609396691896059611429690754981713809908950435195951995722221098228708472082333095996122178350270940097295639802867931032442800868831960431040690624746419384815373610078662765313412141976083862913660909740569647773653773224344103850312756172091099725577336175890838237175238235175842371056063284060520047601929014755198078245024322556050276429859886889974077386144289812852540408715315795080526278348297672042348972096018737953385465971570923297041830057804961973799832254594824500679336952977346234280922571129110116864312529827627940591839804213736617764971939522072460575643079135029299929966362493817834607585692841380113332170363172482218924351303180544684620792771846545007506758101328290609779613303703262684353862815008261475706003926780771550952070520772517611095549927736102961506324695111317613275089152430866549414833864814450604734784914774993662214622257148346452195231515206584380149840430227530423868250587769813447800220948290800063558482380768933584808176333818381640087137143545848596566097907056304083825357875680565158517162090255191676711995767893787702585646211420467010266344086219535254360107266313367933458449142891381053885633500689687569540782593476849139315596032979359654790151763490668889025273998197753707272256420844752994723757416533516423893293730442782720159325250403044857947044393372742438358383216633250549463097633764819824999968742632308426781204096103192410095946919591752461313624495209313242426585630078989008083381068223088354288573896432419683808985554974477758258193689207264973309524784891890103798950875083431314838940665669431575297774985851482257299283186344317646838040979139789655016054833208316466664350857399142899077499379265993286106548777899764396258851030067525885727355492525268846355247263040082431597807932765573675065553092667842420176456957785628727862428458515759603052167974769906996889647283217730003499591020297040484385605294159609347386792507142680821248615156239527569128641645470219010538558394904725518518444765954597267511747986590364309004462025953089149929419481535264173618520895565641518364288771442479683976269582177032028017394205963605516394345520268616827918785188736112795573306340451922982415123069276434552276648502674098197394781594013294978654160634167662809022471392520820142530793622921878841868134524699866527273488477850732679677250614765356524010448688405823164653363328895975728454831236431261544979833573857846856122905367337561767627273456497468494169328380256027479546271223265315339307211584973135888270161278045757740815290471163795994451922467375889934413487830325990012465383089759608529340175707538322909298470132672204750908819192204811650290774339976109426233070077230627279532689312451861230801060651801194161324515202805511176330664767890397688400975513563185942001896690362713613329086238120588697059980909561951800451384713739429687137439874685194834209888702403899398478445624586947897695710631995629115044627038233987249597786876415220747206834165380402199947689042824391873186494276633702428815797179866294744247238822530425001347654460186906651802817649592786677761689465520558438697548711658679862257835672436548020194740949184225338838763925553342564302021840092555820800726144098222253761847781840042730769741811506666772948661638771925595511861971563071249946946060037212596371194428845608438531522170590234099880527900029743333227541980129363284026650097922294384518986760464397786298368864678387566643777134730666166401115130163072885537679763810099796183184054998064244481171683660903867378547741920669826277304619665752699705443382799565016121794293038600566105031406915997576966947488399167945979672720309316856199765386988739438180270528198716460952624971248918867428180845437362422739459963089962917488428836452677782258293044744935368119389333241175603750433534730076311083392881349721295893858843472370346693175391550526738419497799618867972904510714767234366993678122903012750114997461170974257866665515906430588314921964009713326067688898545964193804135820039472510490607140462469053831465117469931171567515237592154609619156082842204630008631477024538573667998658118022720988276519575167938077769914744984734210294629877237267029361778551345459588605102370928964087382034391672300809566354234699041883905238442576920495210147870779575810805384573781050236948219155661236456312179798777428576233476674358767822457146279121008404267846879604532773682469074285910505227744542524337315570288422507325195476816249489009950496204984643295817303565679293265541216557902352588870653424260057900765593861543129940888267898495972239439106876458194399494491613930856067119858458151103549496105269646907573362265823646854990917306443611729454887588287799201591079144364516762215567825245181586136537833753666333158295211477297437842237310061081224531063230078529096311870519902258987576328795189766963536709723711267203016446523603065256489933303677557502561415109857368256703253729819889728152735971042888404105543125918506231285434817598762013928184687694220782656950951081680735346559449155037684190558412045171815225057074331197406283773366244308922228304767093823573091468060777807947386717162695294585566393228385797500428759978253317665137217711705381608553205051346077915707992516644040926738357032194567652591620628912492862684910916635532720532123402606349399192153814591698231120828327393700388724209986941844987451208346790346529191335880374410679543741102994431074458101317897211995842084161142008186306371967883129108661658069905997842768884702772507155144510004168416224538058531292978966374334700723425243538557065278513722317222566159359238673980661199410672164649719559952697876180659934072969708075284241639448158638030116232678170949658198961585163529944895243957791335563405527496210717782630585483582173508572329356172520932405936753605351857293744939351689696366454281085444449200263435319804855068130388058606634723618438402947175641319305672582623496329006749080857787356447994085762431021306684625839409610512035537839415660763873611954227145328321983450468152311578477384500311016203166047202798170612662098084634080717353904746003681100598302951848452294304737719163793808190847981991768795362773449580017604706576504519123534578917710983694645476096538633617155916522279325242980116266950235845974956277359496599296107661383987233667150374206345241184875605451387251746967318900700400822928113512561264664860421105448516335961037655967528875148183490192738972334064273463277497406563630792518833723544643891415225386565049753934473492784371935221249583621700807227505438439914751896130557052802945626345263178417430538835342100483603863194265223517043303383703620312936860843889143368359617534838448999209023271195175955050056887081574143893901356110030039013770922565809402503834942030317041173899349202783188608308603566478266934082196180291683113248722687004236286646554488463086237693157583164760736332434747073081365602367931882852150415711040417651908975205184177804089447825511107723009491538060729449170528737123218254317894165380865344521897906464129306487647865944564868242021569457549137418953396693302158027487928145131780847173045935055144976444149717229840627967698483521756004673540180443786829613439308196186550573938663052708463471615660492854247725059367039020829059106907867126656475375751854203991793656627571943866684278136269628174406079444581451155170105625907881764642487009064904350027062568513023082378040167906781319073390051885834376930399200426627520410139350406860647326357923720888479957843985370782517305741395880235462441266126173685324503294019452904213732322977487723829226093762911941656685892418376035984604319055265130738198420061436507888619375826386553952876700518801275428922584680623017524149354092392767358004787166755529726802469602587473345055229509136440171899168816677188062458110871323911297732261865386779232127806482257829500418509314117316171306729808710881649745081986376556453638134232835148803369598177417666613895934898683141720541812136829823669755272320379384939328116348157727683070619091360761496000062505749710786966210504671763679900622217692933097094476304785567484278944365123244504349568839763244640318714552045383661637264701861709809588123710167249392454525911759417036379211340317496022160770000811635984505210579795670816356586041286951734798139335598609981740740136551811778265342255955385811018664887902589926798213848392632211637587019803447310649413918492902651497756626494212356419332508851094699115294440109483358037024739765909628326055881238296896831958393719212477267672487344257320651175049578093515734399566869288206587835953190468564282769800006778560743095853962392380587954711892402752944535643284621353570821829900360567908641532299318359888495165862906334487905259380692316386855372423427285595638197772905440438919025764934500088995916354383308915868711392745637219494555349418982138724862658624700308858592422426076554850336411907922684135911656192207024974486910578838588240387751731394731023522842800873473242874463952779456063993772499231493213555327497391214895306504554490713291579326424486657508205943382408305042521047653736629080823391261861309460659822187718302655593336787211679630135501551284279703366869719069251425751075223915839535461507628980241537048223731886738059337901175838283738110425117750130687708826999147741743997728667316467076526551849737683832305657341212087510097649004665561699242863667821213445597528817380880681119429261732337484298544667071324472879970026826712235355727888405987816370815796870644009897770325513850338333359419748305425886907138042903264908849321689142061573403483763575222047584262900219811991692010205334435877516663598917305402436620685608031469341169560436240417950726312704234378699336619299491428968129451551163780527713521121948351724222016319952062757874198497671204997741736650458173790364268748674060025686963901218312918594058420445551936376462052766886373866922836696986598733950578357842281394895927409156285985573177123599308243085545377248868698031600659637712094410089724830201229430915608698083225246325032866790163502787309300383345361177937446953838010070648268862674871385334518887616502497970896210907845100342005930957841441162629701573592261142540817449496754811928310879422531009516917090271757018626265971013000275015090138857457865916951462026336287608758228399658359971122984821611070036617633034394753877340420862895711274786795160526199894456807356031836230975537804340996162890589728491157035138705115520447904252671268831389840700766386327047775288793927049140614152997134268352017247285706850939878667359807833196964260547138148965327265404305748668692378999482029330616794037891676715883327624823052561228540370439408312842114544126909513482279957222813722761421447184507546623216109021037582345246055582963682443099337024272866654607612449525459348734636219203794119375246691450941989157027713148084715018393068621225135547638207914996766158709662419218680376138491148657584918169923700401892277298550596635776999580631480170911530332370558761068257526192716949259061347272055671959895628712590729083247575906670352035371383115572429041954035854765850991970562193166373681153287733104104028263073453166216301171827705156101440840047398485765085143677073715952168887147761836588410222313748033505841569908560815306546883339921448452525172942480234840348002598582560582552493722454776916401011187910501251566935487890860412312393113741235770405377589714952852364872583779229794592310239939951043846170339725269323021409406559556968657099818165091813965347736170467632206592148391570536295017841703846825452744161791700409248553955441754223981493659903475801894911539952448057283315179435059736601159779978396637250313941447718511346827316606482801197036408304627870431355092399728428590844536675070405540907796525225594464150563283716769534562136816127677865367464360160777046478497493696973973082197723190963173597528609326872096880490633792613598458484531897772196557452271425161251639177944730819928739049292841940268882335260161043044806282353006305816597559676822238047806594208349042918654428635743126195350413690097513678029642702623093517655374247950896317936423827690678698867569841706433396259785823123265971818336521642567841413538615037485652435116075153448062703432380937504933109162505931001467064577095960090753866728900332225665392707935902298524735261817127472032560721434621906267699906943146239151383087005145681426877473338741214211890953465360534110412382047719251261003120767046127526862683362300827769613161481253429569320691620608765777553901495546816892862593667533623061025122202376052242035232351806034120194659939101391041172190626607328106946496832643170459286586416471651791760821230559837320658321376179207033170055811713973439192473950677264042990102409313475371224693896115097832193981744265311413325850876450664677186804417265433165688298069934447621435608152097589934974224412299703200531092746463765648144109488427387012577196339172732755210178133481005171997935885964766511975337363078002637690927199363907240898392886251681958713324578854544574542275997656666355790348968878512155986941692743622988846960457874762050225886041263496400871479625946651329231237157999255020526424089052421792806956623075028794467658645937422729353724249000148675372778358071923422089707118113526688115670679484119312746896473780481142491320969487966060896474362454024415133560454788610851835492267115888433024068020303267103331582995315329355493156675361295852068957480168991412833641248630866281809394803816465638794771860682936342007172387851156611109925766333904503753707187260578620357464210483990979652370110625388679825527239800748355126285234549926079602407550490477112951508882615745625059770895657596486912856651589129079524278970591308394829043160815053250540117114681808369988890146026876969749470445139785225455121753470485815812805036494184848458952631344795386401861294042250587904907349192358589520627191975728713769255116831398708134587228528718426441471945388393591573738825936637917944262322195888667334892636236792017275040642512158594778049580372399384920538345200359101797261805001590959086323008444688121404742615261463987932015066792665931493109650596445405083849852266439204182712659041660079469223837163920705732600686091920813477703178372927032956848585568207133975210229212173288007070399338859614614577202203493072473495021457049209484972914035132805510421008382594454409092439760520233407286229042102634892924531070851125317885523427195474551937052257162405821044738139764951712226841971899605878003880462630762209573999705025819539571794825506592239727412670058745150848426915528837996015574215812614283791644670923828424361068297241006798684637896691052510948992183153291354687334843305976525006972267303626433041297592756190970996484513386125136483287615111225542837808825300125993776636538087607600069036122383002219676820142128403928225621578550023009208845755324766722057329099880253740598003613584503403002872325520659313928458945618357745063214454097082715648193604043455091619908480188129892600911345115448728052046935648076670794363331350336729111134678351125322439937604977562889503253054541682296230262166395484772849634196974857178603086485027519902852215979727228129352366420230920726631256503817324588155418412952582176463627987594249805832143167405307340232801652014796584914522467929923636256307300886252184734345659740915654395672260089783055323895166019031144376640859242253852974285811332377723810823476849318011483927642199481502465682829580598230731747195453120562953867023249274310487623509797971769493038666359922126129153490821802010672810829606243328924242218410765751708641858466523956610456583103525269834541391339526514001406861093925670826010461334618463781678007533546866793541747890318233577033126829811710278296065080765212477766694637718580079533838043921736601570825103788659379022210708347449258324966044224393494529219989131490467868437419938137054856167344171106913619313521929031250932046240181550955297795564144123147873151484377186669502539251280575051788653090915458648232528000147795480842502096443014776550700758319245316943709413361146534222273281605610923267648032947909087950449737883998244881471187079011010079456276259226058263036816846426826666456750495095414446146351557499638560409280434258297237260104228616675533300552780101813210992503513208942332418081435997643633487242890507743023248696736632992989908883038503377952702242503243877700816984374753362891321275851151692769370057469364772203656606392621519337148316638266901215315198541227655263922471740349809157368187250388378085701052946010925926358037727905960747059972164957400062049509175649516421500408633743818133624315544071089944927170940453138011989634399490746474184682182459577113367105464318661327540214958759398323577492135574824014995388343952789392833170954319560602579402464450319132115732068599278330163956329927450190594486019585292555977995460450806397812280147829138043287076078137746399760175470026484588928911574759017323463303430701790960542632769952776389737554225854823866665269686438878799355031115784473227679899886095922110116263762157627089128948243808712211249695151177059061396732298535823830210107185010433297769131203658142075329514676276840760899679347593208486550822081417565418842713690309222494580685068399274624538471085231444522769515017969788201044738456875281087311905710347407343923071877906467532842201674867400217466110628017787406933945994821256856561702771092228633218935646493086157613882480753552738629036906604429577779444614719248576285164234688847399443060378848485623019103249059422865436876488869315564638163335554200127469844072332975885158940249089506419910405630553787416246548244065839599677156524866831160356697248942987159876898939700982541162873963678787428978961338535235491971727574778874999075385462598631369278350825698877005387305693332723491206525353094623277617089789463920277904771073611188785916415068078740996751793900124766401841324216802287956467810119073998115129195465238993429047389919163427099657137908399030013116633258328184999551593200694889421095760054171486314653347079120102845245581371755585857283442911503567070044232091387961132606055676110017482643100950650826289379488193034453149809942608897466209922154448704457219836669197970976132638773537351488383959266315059664225167764939318258278432426968465103249691689726597202011064603644479959377373874944248352923596902630349588750888566940249002875749293214702950589809280680426202425610631140377575115410109053224387920496157287016078620588030193741782323188202723237405586283416022889225355734980643370203990177625752531362824459754788469861692807435377600999043280607239455823302534409419275837703114792016467168641209846704337914947057314974249716164559311507026612251972416112084104844011367262089076428138292554910406108228980126321232975804729575872639572501842785735019414555454933752879783005080583156489058670296932975968414278137684243808693715541702100264260720023174528218468487642934285005303983326382145816106400075080266476510316744418323591817065242428324763361261640731079443869312408281005410697231104497551010279632715782222521300725245974810205378054677636799156634343318315038356914279094359635898044164908012515952438401259784070618063612859391383178651563068352629344466964457798428167468164068948023463923548207105989902984121045563252996143178957214989618036694535987221203184349808280233643789063052861730582263003580610892164531445962925077545238654629076327759547805730398906957553199395553502399988722615736609875761215831505266951001076713202435095332724867956192715196658457474797470141460596129944546491216998153498132928452984956261496901520751254289775488229379808188110461379425807570498289819590638007224427244331182858151289327404030695668885839012736488402041023795116002601678834975399628278993588956577364688049321395379572642758608918048075561441156230302651618862910273064628089648582330118559193020575473952808229337509233792698015328866020679933524586908646707712326927957666415718722948521475378468290240871843039994633965519363946355101018848779938853273473467370607046965637231269006204463818608971280254328792122971275221154497072099369447688931570024165864731584547994598284049846369663174260470485786375882976585565361793218023823179155115393733360334953629867720621685652005541028825965783098681134373929518603440774759292884780300840400822102300404802720477371865050455614192166423555033610250045321524475731479521114620118406527383194736591996404393650701315779492912611628102563353176625986038259873536841360055457549434552763091041782075843534432660595709220878115307122169338486003435649761842007000446322305349733934869438348451420467153613728428230002898514301797788187572670257061620597407569775701377230823718592773074307710705024969728454173686988774137026416678897982235499203646507825312793013885659922193200656252199006198166110825834640327053538583645988265557664635203754636962416787599242607125883622982616469125834367038709496135724148024258937461216068437272442125584854317238902437594857117565198516115981599320725030624471872240351708687811104837239784620066816141282391058360291724275310870377488001181255246232826435192220219943508926129878063340509297997758727337169179794297610569931298158339672220292853984857334913597072021355243632774422081550381756996979306827254104125255756924064904702193285745765488745648464085961380235636825671120544218997791921419404925449474908238476497688727707871392839982457822961317972261068732779283696944925335718252272272044365734634991303230845533929660743332480073773315698912380901080684895091481427154678530336353612319395172219411829655054982962214859705061310234901754334489908968849523188335165178909922191028478125598295946851014985329775244875082970850814456504741694158459613857526373209123140021950789746818712606438880874516145187782036641342883412836761241032095341805189651328596635403747394377174317303140115845155495882392702665546636485026568635813856901322051173498657879213931565143489934545941470038047254992548965644101340524080921588194125501365201324399936797914481516073335646469292045616449140122558800432657788676926436887253546420120976057791575403789855321885036385968786738479406337843070681962298724704898444058024872167980672830171256665954376268458001324477757295819532209123251338865521120598664029464216364504532782059639837949670674631849240461290583751998682979652704770156452675142481527359805285495279882925705694152242196883933306786829816879039600688240603880794444988914046123681928509142649174606419224480897377222835515597082200766293730461718631671319382010012164669255754094147416412285696095790227737326951380144880787707033518556446350228977361433566260181880394351953631804928339636454134803658744438898730769541241940875810827598336298447332403059033109787400549123507005700984816828051091156626256064139145987332783020216938629597802395447579915756925781393434779778234642436608173628153104961327862712714795922249516938898286975735702405492131479724765011842074975505533393496497627475499602472377766335468539210457536585183669578647832068479789331202780946064092589986318037110454563222744453314151227373118312903741002517859889602350288879251537650682467751197264314971337512280805579603316713439803723825702465709269376666106632870927010533646325425308711437838949164703556081717766346513396302946398692062495024485798297684951544682507242336930635906344308038993595050029518043235206247965480163339640041724462025667124978558307580758978590880728916619697729531500942357295206601424116647948816555699331325436923021613822061197771327929506999073928270119167243786462919162097142732387570697396085010042798637969861615849124245790258909502926325559283642475623544851277692032208493013164045828258193860246333882037871186364166880849147348791394557714553220272054542438833552327808332750997271005343943270478028592628472698316084609999251160617452463240898570539264252780499010519150301213550351192421266729245537070018191614954110919578512729813309284275264621975108884424024903950776776249768785763555391563781042085013203313599412425669253937331099054893661355904333356886797919727731176389544838423387105517412260998157420463165024148783653095259567891568363298958320892883378101937701282818786673317950902326281431388151562423658071394955624344439341180856344865061110707197797298982633070215287567305051576838377025250483170398478365576241538593856641081099310053124525287409095325860175566619912090928874072558354384986698051853008117891521584286840557999979573490949640400948100602645719480025108178317907243358139761705157270716128174125041077520959769041672560648001814582502620547060887594123380965283255297563314218789781006154581474102818344585248755378774494084141665149255146945654229421512320312203561207353985818807120693166617410910586778571484506648888223192553721948584121421414383728159296148688211167082444338838168070735663567598848684538280540473797229547967736220638722849201445292619846696734286813943445104627475165812390324175941283069512880668850225512430847706423858592130976544775288000837213108169823049346201702568028250494827676239285596249404156518944550224716298762055313298137771383967715991482069512698649025242913208200700266992754756698448189539640323320993903920413992774424903132725306229804940214360982888455468083788948197328028567043208327766031046663900191304132319754796981561720431980820636897478606201500551289736453126535191205814950765020644774989270940269768739170225099596582017998259180540820260218877827067504857349678694361581166365856241115295671378014917505804693717032588816092811065309069337777575738216293870063903456888642841799195501685057759505227162367807881072025469877189421982093279774010587464289536642680495888533766128941220946913027544650520281331740787417589592171131543485271654772942331728455163261285177006043122041633359450985577374038256173739534806483442348999774959085211802430315504283926823860480245564973403800008513563014370604611760946368544389741401629467356413334300541617286904035643396971270957379423780543035410893791760868916347141376099708630031937252920231801692671777603189612641372790300435449229392466908893642990628681547203242896813795335034353551787702107095622304857732334025644363123691919570801434988375816869595286012569468368275418677050692102152586507071110286922440173402008332052175119187015414915117089193388275079432373754026334296421695879914957953829670400166330789875442786278805238799015689690172354495484511718799111118113989000467845278369220100082838367554006104139171154696026380964634379636527769345094207237909853673948167726859443342529744366608541442084626040137952184442264465436163956922929529520801086259055557060246806975816804215662144088403384306433773863730183349604480782655539685602523733697228623145365217798877045964740158381735006718770857280382032710420766990877073366570215513243008889407539723787877045812262026596749794690314708200861532945111288899977744863988840565493153203110507937615912275586949758879735811176784562661338264046028772836608702671655408715447458139947203514537477399397848873371988447306884070886253586607402847363269014124554364845629524728295424928613854329150253656029262153113043007228701114804575522801182686862682532581899311147399881625570840854211429293448717844401901949542711787243916713114259592933570275390407860289093711890565989725570881352987814033746945594798464946996015857619664779947496874240890714641359430824148592946674818760029583711211403015133385144037015507549930314462228343376024401427024454340634501634398092459238043436132424320114910263577749176654841981955542594130399826854537809114340431404883822534980645816155834589250171070297627792777780566018922694250865055751633002383256280016879605027123204240145332554238373237766664115244522893000181531726627322733222033030343878269442776295818718855239616726910887288091441686336584147271565658573055903821214333383359211252872618390387980808664879668845639204112657777550675405975998482648200863555053369236865508879156099072824750191923318089704985721764887562885581941467330671605929084901995527535076767488274533729024704757013234741701099569815602266552543568359019029976415073732253991643976168626263991544458622867899690496703409659625118090262584455487572317857674805818729282529125153755742735284748924357444847447702664615759155934879952545141661730001107772847746689028978862460784551763104189460141681179471850466509384847607752767088917241010294773137789084965272757752757275382936701052148549046211966022664492181974870455026436595647096803485624306282100252772140841259525673075272799344727446978059755701477333780791544539087455789500430051075667718333487398676995285594853094328520562490028692941670749030212998706321471305287383400935355105974827658359504448967471333010228915976264318268736166921639567601311133438266218819824380530541497326887167295299393878402515641734083318431969556886249678752573342344069839346275706459187084341487248690629143241048374077497809278653918565236221768551048318080764267137078740357202264130886278328015297625492302051244634733804998800383670069807248413694918600222950223132789208576529332251731860813856287414154582293437632600903031314915055622892605982085882088472594660306347273800240120179439105700469413587902576728241821642528481844360003102351537400700410517833240259922669314184683362695606966473709149750161792378584672164501913516757607875614352437908115104826667624358298568969895130552135108855180777636645423218558635923602580348966586824142892929639467125167240544681984483904587431727174153936013700331537188375790501576352300124973393805479952683244653649848604166053969641961138560507955016738608842778697405936582364806791336144486826654315431547395157672707757784502300363892017716614497255768282015957836028084741532920471996769656521114489706607661827875472327847978447376578311965788355633756431212335483147445289955774860466856138792195125687317639098843565574965820178445134203802481215213980398513647694253033076390614083692967484029549222011279926312423305774693565520634781067120904459626567336157441858892303536719657705480836155570354150216418172983447831293221269114504418323567150000963058228013711656158951498116252926956637059623411194037030203944965801166531448846471953677153383923980047748855408874867868653266893482107245229688486311518789015039353785746630251390264249809097002160813702458945133817902104394662781530420484875585539298687736868095292881544948855993759605826257098999635852396281255138215233061959419654238037041719995397921274454961454740613168390491051937701796445864360199378744113133844942600043591733752108306848323408788908677079283147725556606732003548304926832269802616031242539097648681177568529026414123188442517546996120499141800618352955566595601022547968949120646803218615973832433143133903617408057421410291459597686559838100990097434037247251901149211042603255003976664508236652561063061100307552808857457692721552170596080290456727496113132739808238292315576228962196925860668217133196242927601281689544795488857384156652321239799977877828141969538042666353982678109506735274088066578304024139751211939954569379631094181620691783678422812316493278010756549053902532106335670761420647374095423162905969596862726401865779674402607026306118833346309993083753197489154584245949833957501737187720175431689496780119419216765406437757524039802543226409011568803919677113746653038474683653863288816087231095601525905089450634488355242995051757514527666591172360254005361373573751035841821164447065033784169839124847597062339152257476346942231918246099324128632354466120699656737739648317900259488001220538139425469557563672606400245279093459280445616487753853153835578830700267538439366345853898411071062416058161996583296978923693870977602312708906884319389773841358193101741818726586070667492155530350938522034931283983637558512569159809389801899683500998964327630552456173780973290219676400256003722879123317788954579494430203353613207854879210378460857176784306558668286934285468457174489945096629839527528949495331907801152242336412992780892969297868587295358630148106373119177387325801306996111216251815196768116361868483472712619717988613605957592630671701699233130381982233415188928440505338957688780316073543330332214285460187512911525427910797388697233279266903444171838136476645669311393311658582997990326986820912691229846761599103525302556715881618736537906746551641427953705500946568497048238216770694850297018016113452207375171362256539055353647487994857270685651827828659333163653861527257655013578608829596846154439836936183048580025453273572603350946784753614200697372393510550487008635431602594733192341188193589119145916851627013987613222435819261644418381317768309298549850329145109709251607076547605183371282771887110498301070502018600843320374311097946119510650221914348945306517891783626398015928129623742375173211466243694090793075042902197526460142982815445912814961874119266181635494707127668967499283777123397185417563345332400420368552576681835227734233701906895552827870744430682851542025722423181408813406664803666174847084271599377916991353989849541695447513438835738600870749515058442497030698381320421355451862259023547520899083754089782709982465915984988408514474027002897302602544774835944732580432596982652967369359128484987176923995105551451039138711293011677775162084014509409510276710249947541089809874370901413285185844849680331237576774361437882182021718227816221460940518119825916912339387968950101219358426197707213004920116482038128125923149526613962079774401588120683702586347967611854275273691309229276752046340361908725175173764468603371206754846546099990769675678998199541010309411546125776167816105076751194279243210333584768950026019340630033540103920743999470987377463340904045682982480954048087510069050781861972777558972095623986060332756967412217935252707317079527809355803919666282053546435610027305229920338073844300628228254609813975784064209487410137580233520500403602758889404220128584197182584205928531333416988077413059854361323002692240987676118127221630547134122710029066963173816700761210708745974800346595570552755065998328007019144252351736147900520704424578572433457833128954234029309704039393507083262003336866590238663441187228926745465211125925199041666175809221110009444746555696742411140126072941495036061225042317390192616379902657015996370066322972579054221114713918762477119916387019467191133337658232046773279130360515576076707857192576403413300512150539302640716005727937946530321240537886536436695390607205783272826129297913138633703588470133155461930614327268121843304230257286083839374433329120523765033612551247631883437869257341078722278236436765991511772804062023414757354888823596460997428854354286961471905613344253610185343876811060713493572771196967551811829302591748002082743320324651401078816593140939170400264699310604986778317209620875096250008085344170620026630658391660595286023032860587502963373963746493324870849809158954860520401435266313744031411476152463048251388426278562926130134222309898823355374280977481186532993683552571702605536361944232545506320021263961917381109015316898308622649841818678333834731367626164697044045729573238579485823462305724856454754825449219616429725281650035028731378031065073143492838251718387123834688089497664783847308729561532239867275565662567210541033339916925432380515747487210681733846182992889648331961175374982256004251542482700048964821584194952510438045449174635404908810848571783433767148211268327732682455653848555559150974419744238832122238200548528066049429209915456724434128986789929367886971472906886740732547463130015473457059962767970160352854994805445766297281172921132159919551445826331262648513139396723031439498774529530524661393552217314540870908041399132386736308900881759712282784304491543699143584496622591854327011523961100297581460678606736380546962789803105590185622744756131909878934738349220435138497930759893752320271780060266233843511105764599645276158361163027625801999092601461732924067690260173579039165013458893031836186584672893918870154998921128974774770326160317827473220117725561378679931485248632801026943911006202827037534776670609389141719384151327562203681354155316650244561010698808906684592790395552759606314781365192190859393411777778521906075644859831244148991215738763063042401840281088038800798042605730623647077706178269624537617717089189127964179859274093801375572476654774545048550082249361118966003468504888723904747022471582478232076989583792220929090172231472340352590666142148361261070538680747767959523162212807146718082711204835292712200315938868487592722779943349461468321619896157723291439409409276239304422347888216091565396657771180648370546529870916366375398416148597167611538415134569255312861694991276519537807617515561045600794152427694886578685039320259091353303969604636712082741360326559526712458214020519154661499371009886185499985294748825376105241805797780130716161951482003271671767623730224484201579981042479874585502203984037684693000592144588243304786259800782162726788478460503068869598930786348158284101852532932148727781539224983962105348932945575898445360770306177381499889171639750331503428186764568070575561100412389617264054405866289225251858942681972517115413337348237455626677348520313709966887190660896575135220246990180811498377452219075119561447761799350516570576975303401869387407631326427549956498007445943848936593296780398645484761745319816428931414098661755082791230258489705670699551653661358622527418797087286859694293815048288332228382420957284120685849003384009880456180755844823540408372813976714607267025240165640369762484992619437832794590875743810384541031395329603951828901724429030907709119346157931421896844946736348449294690021816853921439602230798792739786977721978944333474372616677568873683987492245430926334100818664121912627496430641993218177814445496046848961195337773592225004840204948723267210071939979573397429459842697992743112403246461479096106057859254547160978535103939266725972216859566976033733341559593638876103750313693311608366375660893210531588168875722618623056497116234136026950005406746848383951795030602970199431163801874064619544692014263111967558275458161950587612182632921960906209929037797035723236098889526754763963891137561214937645625040059053907841544835605337767074958362430707007559989355542270777532691833488057455426561649257804166047894455228834400187461797460677652791930962445349685179672883154878788225751969242047416497630875308679272494461920378557779807451711419818065669120022746724878049310515105632576163926073027784886390752107457440759896340895685762415457560257739279415812243416727958516327530886880900579017015636374935700389559907426782205549743546819050226062862894980232713177012214016855103757105437962618945642731463572732449113520223057469888873570661479250450625126807345561786326075598159800530769216494541793513472202064022594927366923000802780904578396432417737611618696251156879097856910608978652746979845618015985959720916617888167825626838203702370547767834239700941086206749935777530020186894910292755739894437190069667325343393485666697066418985037975866836862636167356693604133264115346386026225893536400509148419035455124018099965850452887686790849807721885547504514558333439881727487636309802397043070804550699664001075859055161980738695800445838236983086585742671139331613075520648148187747758577517968194868874176991719987047413845729349246607554556495937840366531826344576271120497970811596522333447840216083732421802748915779824394190112924961651037119775528725896449564568851453915134534798226040489265596049455795788171723267313032177508476449799019110930667161758238124462091228115186354127927662725650339899448653786099236558435962945384035247798443125421973848241621228518172431312328747092224108218129546754818282415779246870695242830071176668023547156188725802223858408335347724436478335266508324626510164041837629171664575915166406428934643106157291579384312848869549026281201975386080583994801717849854201671513808989534240650434007069629079718833182938398619504296162563856543965481713661897325390206469162939615374995451514457133357007707492718514367246318166281854870679391761164183619969628688519603075661166380310345359767870039680928678052454058962460121409764018574828304416311083758833579577929538380100328089361561413173770494998663977688511572146311827002886664526332056216235871130723124959344557786901308788143003944526600788506061256083549263869783775027088449835112348927091274848201817101065386310341278207306854131243683517726289086976951389718382666671323318535197167462127873871039632838740881961792412683904826070216124566273399853234390402563933635980614752407685108535929910126989093484635814456987186095468527838013077322036671505973499882037239814403253820752591151733802397388435078048160524323562905385680383453897287536783447239140435044097517482490329864803063442831264348160908142264839374503669623080257114807790010943900669083794300066581184017612615077897121710041709827800959719010185232012326530941615920223693573181769606990216124234287918301625438400038782705314490978326412751095567447297673166215132955305646965790433824159156690734901214067878746588965264960957354646401221286647897766049271029122234454631712112828093460778477285185425578533098919737185888867825832307319036874746083798572936996727527227970424711977737406426089009178962409543425048524126441647941270033626004723019291381950291673447960493436968136747366301379816831816521686520457903415258985638376368763109774684734007263507551709030379411562272870917704824001260962178299935730112588909590976446648814716708980024659357399274799977494245625457941614265192213379453152656166253367338102401553809609357721233713490572733343444629118528268828105196582969043659973108663309661860622491418727529549575138713416017190621792865121829159265790170469294144556834335888472058651936476932005622280941152700952708073549908123128431759667063400252414647577311409511017072838999066968242545693985579713881277616148457736846864216833032031875281607695376778258011651951988606030557351050587825507855118370412666993254184096509233740384961408719692081379202773636593024300977758579381303380471678905496975693269809387362548210237976228718506058060367749396665883431757664584897334725861579991345500635866394135913156088865952394949095198476473844562616106720161891023628182453189498656880952320563838264482397403727316037401752471832344190860150416279775541361833477322888085762402290877091117529769190637824628228768859158632497031848984500015253933538794228938530105250802274002724406298337962227396273228918924994649926617151702615330962840949872138702084916289039668550875160623569613162013901760879146310595922005228335440959598092832252207354206505288643709796573505894812627704320746810253417413742060271125007848503545324899062877695674573278830911285681008465508171535844490477698328703204975578605191397947222242650703550378599561811662203277339671520215872667751833140485729061161074255553639461196842020784138322576156366410634797887063538357106283266154958358497465499077792913553721620535930407104726742564992865449494666608438814262132729606706258193008624049679666194896737964400915220359260412694209144297654443264973433857996558647633240479971699189342363803581173667314285150836946255367936271170869356342960775027747137446191051247882167242784465828320724030377671169585630798426749110588445229932221712301423159626019934388612153272318348595685614686408734097742745434988228950824333443456227887049223666172477720778269127252941997893751302660604315795326441156917581961591388518673276166970103220349805296598934363788473149328693407045547872503963505614769766245911298062934266822396942210251612831930803303117615725556408110404287965434855425203559325613352197043854111074435912464554910849570380091531906242074452315172225024344159993467273299428715560927695317318248767339836805847040746213549287675984029140525938301313189505990985639355388247443567343370018521949195896567489359578156561063629438461556946083561738184786891805086198650114544189731416172927571193747347732830188169040048948566677719598149237233416417641749970467752248723123949958653506705043252775603822886502388260888144848288338069598211474757653294779726422863926967036860452880100026458805947234665845094599324659434213116227231219531175895946891810852836816596739072462760311074589825677714648498882410336219519752527784598248047541554207402621809405364855567565455906746443393376663582967678588499504644895703375983143077077849744806956834606220626252507244012796747887186600099577942516296712479274540418862763959476250125260946623197767949041687169384877655844263622130394075418124956567357790944229515851770235320096897751517057485713187805378075460796171187807787394955026371207355609207989443642711899985109685402641397098273851171925011960114625340080909366883698399417945818882426418098560668264948560157109606378666856954970215976399374209742104464412443909443295099549528957637100547767373216356470017288303857088019506979986845169159316474503221128046103909623159534583677805332489508124955051105702277329660575592651961730449696877751036392035302073054183495576867672887947518341562397675789510426925478716536596356441770507704823384330635645447954595123056553891253828984894708745695145312576870668469335192538783708268990753333461301367590950492908719778200619751838718087245011879465586862758499792223384827982963264853263587437920472961212826328414057512368148057218777693223436135467534279546217717106184358135749612368562969827085327095324980808422869759622607882891274896294348777621510014063415028841494422383940103321032302517638068213350740623757583142589243841896550860550529498295703649773167404402172687152905582991056861571772729342876313393940771505554291801160880607666424436782252774212879437885146542354065547391085308917328374004284270445187205237242144316592752164388285959737001610878981633573746153300172673269915018569248587067857165483698116223171567339993664430684985180558049157878395825329273137767936256792352405278560412562236508592863340302253603378256840938041024720000460265175135911650410380690941732717638730679647886995457767182465994022277629370248208751245879068789315190023893472458244372310875538081597137715308346326156552151873587545959317227800473527469729805048944768976870887172111857828586536064090945720171024378600357757694699912167651143230054135086384451971368709369806781868668930220664806899742185315392787026116101672245525806840352929495097131516900728691632474682566640963454535081425716759297027484844278237883470431674505399299729421642946737749745241613981972868263052077444477013267517359278330498552464316016282217983150432915032175313673531868962209302742283719991107231547329860506077768250589349455061227876691382338785100564830496085720587289416759426965357392582120906078277076822300899467248687330029635283107635305114116006066947061412566780046411697390570400605113980780015517812315888562777587455149930525503649846811499109869167682321730437733346634078240795044501028934339796965215180815954455908321623851204357542109049644646912288232855922797085252166342155043483853224238755285771629019352187575356384051639505766001402231142984534531338248774930435605116878483816397644862729676454277805526443844346918548832746992691102193027429178756531974956606741375678408093929268293134815007942186817155749060868409416035341619008462711205381878666362599480016558076072494696584549027962204765992211861461975591961164016365862521097138575437190906305568712244071969584314081947580316705681898185863399023232189584770517906215227134329492600938890247393782743942368137848553934577918792022173081053598981213699677653309610032536618619810850135741098488361052135124221893621851281697766942431996210142509310216615145203218113670168448862014061128235240061989500309084507649438032269185052657813352249657170962305343446428430856277692046763753170817001513061210536637457206090319885202250524603587665037229323984181411237330302265716542579149604806361343738693690379996181696674519943672066806568605213528883732907335994693625352471363807981157179434233665796137054184748688831247725105138200775689518981488197384038582107695650782864785681844963975324494824246413098364548304943865010382026764120194732706056351732568155792655546897993749494551928214780890673596623044231174958734208021917067366324512591144441159460009092765893132661076780823916599499265772799105084700968876411788054470947601333811918153851788718617107051910030773869011170138836129520993859904707520579780438162509017792399017020441457941655588384156943064755643429611420305061843654443777180220594284449176542691160646793285041434954089422441338645595514447099850482987480319814044419228175910395506021766936479312818292372876014183687067161760304858740483487518491803495145330600812746378805407337789436604447726257952908389110446649212161948627649295645421988723637857265508567668177028088817312224151000180571596648318628026071343299367776522860082013157788502135354090982578900382848825507999020820299678500404433720888991484632726493569478555486844383892452989308378403759474550001783918887501737346715635102514416322567556673306025180433683232789724669550661583634037961316961491559779514267866988276575230000676064737160410093495298728962132387427475904137935769905647220633403245831461562748141790278514690155244435997862240714957315278061505460973021237248060288132505066650106654324010257658221058286724601786923696018609151537326831571355773867170116710003542146640736342226993418801571800041869820083066636842484610387797350145089500433804881633002992603888316659043933281806896360624984415962402316808455016136704793117415770707111305487265218789711201721526768273681271560840833131565930054943582316157488447508492183714280910030784645943958166765350676739032690517278308410107994145022168356179513990322818212300633801425962623613762685697572430457144217287296045171737858281286690026576079216743193439329502962216664719712912874876918967726902633828277363578303139888263776953208850026781180047466801657992007111713710722435678040938436606102091990076418084084602516670540016530280662399901504915561764163518062201390861784261709828187625166721791267668794306852326641915545034303223060009807639314750540728131664251476104682932509012836315947244984010426976490478610408805947488563951381679863426199882202176879843844583820206989973943229083412505667402151149798838560884802488161766032024332250610911440783045641768160173651963733234378015247312629790080398630683907004638557575555520583209634522826260382436574407648227964890790507589726169988443116209535471539153122122638909931974101988773542971545691407375093504552500073035340733002063003241913519527994172695843987813967485391142502642420579922719773954521300323768989399408919521612639362890158283180181225854158191994720475280134444230740123587120219436876813653252597430379550187213974739651628495793666428932617648145843948738898042126908130231573770686680363893530366932414993229180677113412363303594196639853951230216455665584423664935507257236626565768459280484379025640891147991414469610134202568904362026370713220089008348730994776890932469623859775707131026590944655959980220929019812029492703229939925676075376911032365861038727567854818317197333541065303797108169209168798785142561101216807764976427188397959761039283772747845406534930820671401275346116191024189586501250167093977175756112778600226231612281096335295882148470833230381441860244432658679701456552151274689415049503209143865500894435426744777785799789202760656220870685616581911972088563328008205692120845274845687905077574563537730275345780189709417781901471036494155681009208392439233389200522153878468482340800755553420754768586767755401582445853276608495320613573916634558249578360867402877614843419302870239835606274339304298612527081898235811150015522203833855375960004848935766228789131905294285566731483402607294471609001052244885906218988864907220023299448598827328094807893180939645274048924555099974754289577964283214390407270131164130725429513292170260009130278684820867014019201419962604977757255888971654951989954580986110409829263544113166022306362993001802407004483806165808957609395310164450157703637789236833055440837733654666552768993251254558119508012930798843454560029173980374734209980705110607745882554752585685712123794033196180219670502657484236001369126187931774264731568332124860047238675763813683393637580489488691516188014256578434369771534340789747969678710191915125882332811010518390409773046674963694120201707178224965407859232375965121472863235828912991728480852305330488386178002502173785381190231461779727073733084337790094001956745289661446645039267313009368104448242736767421575994288975232083068423294829057367789206863321565741697052050109364573296964403810681582537475444441853911599003342413373232616414065860127161528297036703133956908522495391111832714037722113819725202608574882494690316637038490641526117730154373155053949795701002107004525483985439747076483570466754809962640651494392059993219243257803216136427273256673845313884952548211755263807985072612410886369155384777450348306446150356508369027393232597745768821025943121101054864741991259967176158289039813396863038340063642885082904794137832009162137105428302536767605359357720940046417995721495073850145627549647795817181499707392177568932432586026139518092823879397784908945100888368471282965918151894111262819521984242587182170011865872729365897318950475040903997848718111363407733300131476767258030787323927451258853946006332595163676315594323805054148157059789808019444630278586494564415701192110098947650844616144849647753190072889080630390093124481981806811062480855498689974998388913420201193997858185308454098686448359802003902232234801470799717530547307674970504793165142455659102463280259077091805053739189722031921624809360994780684911947279030749021486265078112162411259593318794172946250123779817204608571853669719796327848218985161060903658553896606438260904695151974382694147141566231281116379477612684846713440108356246874556556473274641220325462030635659354258154250942027577462358577133769325528839705229851318503879672862242801102138232397203393612611593781104914934461788747114153676922819637269379186213121904936355027079389930382767137993734737259014055340037232807665912430452074101485706807079523313817355750883343571701557431027794686627434039333015540192954867008374406498757499525376679620751548297258419293344567206079774759823461822064731443233785936913862336782200179662277832862966841447177907474541019927776861232996769087261729936870139482290370343481863290902066091315608576726121424886519265543228469834730329303384250493040789993667961925797394861497552227179324281445644074938973301417526438059743345193158355597105761117780681823682706171464962579541557247581731219574496306494913002054370053288169966394998917680422002915258173626810417233274710033795998515491999092324148780274050306526287094881794706506404654834236357529689240795806507134748411228527420144797701813431229501441152214357619008341483555711932257544333696545045567766705436187410630010309530465646970170824891085923330946914784279590615756391991692667325607475969838051524721590288151642142692814019906408638995752166475165914500380789180939019573096309655315958517517503345361424694558277893527006809685061236583016693716272842183165765306502041016012170609288580017275130854340623399727746782628044872629870477640213502133334005319460029632362712091238182137097071900836461050145520940107185282065241481681000257325265152280002665851842406504250971609043263308751419006034032598827466112868012380311465879203582046312020129110225577639339181745018360393525661803040610396085730475600823565118952436362969714230701455471458424658449985818696867687729345679551151211528272743643765729044570043748209085315007442943341095095864934229359494652476447781886303000996349008743596376021107351064838505158073115332516896817859152216526731784128703621530879648197561293596777414702286788064225626060617397724634420547136058153372610420811811891801509735043141969090350236319805229137665253894249891365140311159048682140294752784325938254828549324205442562702529418354060793624519085231196319473032808393803004403829746658400448965552881091715361585236442518401289074837071658597351740544765804471192220796831048764833152736286151359325790505244976652465141853236859726510506239644572365590120617508132674439141167949003446219207825266420427080480515685171458565228759669634244383414307259467068051280390437948453742573921631372129798169157210608445429078476382726896389370833570449114650946432458589673989579025730536348294766952520455578818975686874339123803935814098375605312689840766135511030496462387096581709359239122565160490438318700017336544520614387031394552570082008434171212535702140583385881182492223363238266538507653238193733504349418859618863532820624788184126661386696471187662006571679796907231273964536261920474567339553419310048672646762198853133851868423439868706079221291901567352938953470955051948518016093957155281657627850470424524498675372436677156386170050791987999667309773517594146268001272079529301270067653349950710279093639883913597622539146552228664793765075090147609993284630411164510415321370931123401841976737950535642849806005554925893553073625057305205111054283891192698859124659746407674398832938756284726435081934121285720858440048433887167259947451781476349076716942346660767364179084355613209106526099762623654637662647832154480972650420322469146236600334015843335538965307296916259758593316502280768809728468107428909933713142486113815950808224792886368051520164762954012139201117604579835846175490914247439037893727397602157245662038804030600903350980331312164981807924401727566953304205707834464101013246718188365647852499355930784924619486076283039469393872833803188339107892057259464472039223324482105506305821863303305465036849531084374016715591686427642208231670183066143506224038306580718047224724156711196474948995644388042401954082272358704619697805234071648428702193209783949452396561304351685403075309338514041002218681122094533216044791989020619522804126560969713477912602722576452087303185456189751272821077333124270140117529974030814608626875682528269067921628457333612312156412864455162708069642630187245758008729281111908531899156938139580128806167706889275988128476301197505642100163779819863750580600031321521798552231472491930611206007831402965932831645611840106586669103804463301176089868891723303894155206744302257022654041193070550052567786685993079223216819559658568734019401556987453468347612154910670513563559390900835246915698032122203666885910906986202191256633137869485118110266475992885549880563799515197863548671018740662239623165949374035433529658473160354242855943694031467491959019799538556335507862777737331812144302765697827017954098707314334085165948849526867666121816028451208068954913613002213681369541331736006502778014357019060548792417030029335239120714327764740805322261758731140463865466597624135831712797085495373448037973230823441814550562766444238354080950794734245517505535312498857169193735270241178443764579576481213814346294813646074785165058512106734672552074717675141570306608488801959046129899539657349710351992427824625719744651233680793500972326041327314236068568759288732730073383275952096836756840838187028404640441523031334610643674954848490933945682255037307750722033456149488547798676842003785823174347279091803449406018532145385101954898184580902773887855640844153737231986521410042664658326668254703688119074664390744410841136126085003951421774741594975504264632309574321473452317284751184839534453294955373345919503712408669349565547656360970680399229698576644296090231525875314671400563922247300801199282157545128004809695896785673128204495149764325563771425965500870451449492482577542192603912509436093958604614622825460078829902664429764216739832843569969772609758583336737104406512522969471758347300897289338690152939609743011350747380913004910373528004214507425456724287126739461422486091920091479355155632296415728616081363709747320828803681975123299381090913413557783824771817554186686889641519111864431871138222825296642647293141413924698449399911058934344960230411343719694006088024711347813385199124840010026941549670509787999183001680818792242239229307168891932646237782182841325643324992870904585972083998269487258650612651857655101987402453974056051040439647024197155631040712652151321827830315180692135364930061802748222485077315246498853823489217624630504850920488103341016063896271021398702235521070215406631398662258404310165948583225095917113644341743972398267533317292670821871583576510505437756284082146689857219518361957438617398627768668991800416163405337941904039012615372092394890219387353971093661993099384661318371667140952519394027269908756066188221988838997882618581755643672893271720475287573584512055154696853160736536705742173343986510390326222985594653947965250927948524053820667376389497906924997020976374991633986665697986853313897276968799045369430812277106693669388119405772501066905412213005594120324051576453284600531164381453062939064194331578290586442333530142718063561368263282012874725202589864952898421274361678205367688360811546532467460300043658008174170756029593288283132592090993253440004522160402351415120408051706830863808788500994860430358742350440805321793801151366589662831801861792923914928078062327846423702427310482915189482769194709516882889264939343989904436180595089153135029000882239500913114862074066468966427078448820558341820746999687172328449026971844636789128113066274937598873437662467410389267675820479499569802315184464864603692022970983375373256844682499499741427538903219838489300221590618210518837061839381105071467712543210248175315027681500739816204923297527133911627874922516376136169505719220516446724486450071342146657414776937276332289719691977395619832752000304604293712655658909882659250605929464637653213540422774960458733920691896840671940084107533925098370691320142073626003730865652478971070326088071677444672980271091512939922382919267115814561019396171017672636785169911074212705034877884515315474656709153989496328400423508028667080701086771326938619683827634767912771817464123956416998151356938624569965376891109994169332927797221986041412597806101025403205282484956720203627030965957435541487171025268621585043646891647356968241315964538350217335185505886946946197886438916256622542801449303909963441010632962042635011922287377068936095485673846810281636963126920757726909004369070381920164401091479696429821041420209921971090192520329069583196181112903271329402279064816848719890311497266273079873498326853293438419641039320391533784725489694112136993020552449326849883561169709900580146328241596267384828509855039434936839820046508537633589280087702934124716628821767248889828481226296026292439139694728997292839827541310295226972166896371679033619561376899479951248040624233529104926996110540616892672892778973020267821043305299593753329883602209825967567586515375425875500452888215033636928809890583614367760543301233694458599956238248361657155412770747431445826311841740864434355317394174581980397973753063914243477604898001796721601103058330039432398556734570764775483449696072240869067707632808998054583544337500568687952658518800974330697507203614436090500772363002916272504692258173505232163010538604926055010126260178706982975470765017910266978567406795187745211873624058249213263538553712152676235923941216174169686222047687850660407560726882549056883884255523205751784032707053737992319643542554445700265633494522271056174284699075017057187690190093551266497630810270981342523294796780328866010231250971164031941453480382340814679475673893915409778483389062615229657401797562353377250781721851406639693952227165981813700750550460447524382419705864052769332356980783762361765696386699044190340396294401733876902035943634888157294390532580660213540729141260962599749546201228973403457139270837267507073676202465846810352023937277494543188099096426349737212098397094567317320236103417671168181783935352436533602079786636903766493754661712037889449372586161704305576089072523551316464468484787017562710708003394436328934464869937944907522815716770525705864619243821305812928607560991380667043045177232166565424555661580867237412191829052995851224082581925058975976245748046885759761939293536274115387108202909577967459936680855829467397936713740280418886940868476794591900015675440171434957591006695171909124522708002035350455211138619666409112778217053812043639082091008618592212743590317706781276248952850916640495012389186318983238231805526514697701463294061534364205619025409333534591869306211515247204169892289642665921568045746015036399421087931721985601734711415912964654039084763146507371301458735423030186001781169406667528671138355242071538017671195120560215963528060176544080798312324315173365299619283425441244720357516874011738242608197520474465802096712992562897842395583653720894468756190108159624222202608525465919367405657189970862952858878690556069710478082380746278639263001488602945734164957913683502765215921266416870539847968355632006373289050834167366811460557968809964350475778539070915950267729264249506402345392266465670045210209848550534991034673899758826764397668390713471092873610043326799449120475018189345043493761129630709906451959493307673343230249164822825005324769028225885358774176931953904268313047731944392924692713897806395982994574230788321390998191081891271832308364591014969410600323906204478062259053064712736274709324236590009615227525536069473788114091420708271764143542725925158614309184782050341869322971750416534948215473945158324786290652827342284001968921774374532435246704468637624544067330403878679345409118996176071980360754690781347904748685419514770002203442967362314542913879664908241210397985381648146188923841725608525602560803060138905758935738891955322076004861771195431115710356306745420720344888153305730820454390988685536220012421886940112668493738331287952374017259466128338030716929813003648135030175425135359522132757525915873202465531940468634006829257231571683283446133412625231803230191789593952416081871168450058871761689842169619865778324736314974764480737873914215406312551667558316790026522491705466578797127274253973328463336331958513075981801800383809141576408502725576628945630858229722153776043269955626132709592712716534790593548254980107701666736292523023026609771301808311810028973388517539176070079366202568428336032550747223625997405249301761143780223182765449218308143510170433842674060307247091907903805403032793766043043279120468198611463587281164203425311864080406708901952395203496693428316989339996701356917218344063437803475665101016979751157075546896647573106645773972808075402196016129111998350034658026355685197286167645260407520595941930190847618385928665471643413272280644640986611857425217978485477988744578764047747321386118522958182891604750268101419925720906862997301450056449803355449983332699000019395374152384026299429814737219847683141342430951016808903378497235064385839789152153609874957576303085118831430181680809836697434173144682657259733259766066079242554370461466192100074034843424939554644396994574667973375253610829454746029964965293981998449461399370493473157684677907193446553989733885322849419016955673208678464320438289020915990522903439635753818621671565956289666236108960735902950582217239799240572556584525154183106937582104353196272616283645144512623086133343802882194174175966311727580082086844723367513055551375475207963888673749990203245486661510893297526956582846985821952412776200650019368346600991326002574224047800597171537061338170527415410065344156659609182988364827368785156128398496108653229431085041368003356353592418797109002680431167935103727799275451049983131214109784354669728498167716405106850599103535110664011647028160589694244046819142342329567117560885403349058385322996012477498040999020991387811082793767853502307335542708760455997840885333245700738471364595249095401952300353097753480398319368802024505424043492588935468615083357455228218507558460057453791984677843835987889255898060617788554931169339002913173427077084121844885795067744305448442896422102575698996305151359436938589573439776217435438237698493851385531707935739925871874183374928829596838040595629896948366738686173184563457770645193950638411815553542975320499557862982335080884416582895200864188863975711102698725203072933929918015341886267236877414697952772886459181672528901774825841198176475836274330680339191956676958572955775078197313462966476877195072400865910425517163471743148658135312931042501811613663673970092143295588122453581098459803011081675525375424277715770826189903984151821353047002513439264573650494355742052771125632237774518482160820475437433289152984847072116476167430195975805504103667663870172565835005938019653788916736245180564141167104913657718759890671669829066995701781829992274476583360617979294929016223757040828937371578165364526499480270299161879102031239372167309178020031618706340221467639340662319989343794886403403581131771676959849303766096641127583228908583388282152278589687735834297134359897543142084961537084004347491619271680747650459553245949319955484567224779186037520563459441771941077514305507390300057396482830500543519043619921750677980290354925878498541589523909808505515497886055693640747428651090600440981972634127509042560500608613336723138267603340516055443902472801800783283263772030099045931580826095354036228571004822920908412607362059354424976571698912555085483183815346941605475676334542788847847661684866175609308348006443546036554295709919080408020249018411400607842365050259299632406060259929581608512483305778053825360951974160913197367974519041302341899592615150626891516994560864320091390396189180693413904370827022865636685881635286014041175876915723347093274273867860924014399403498760497765580228127125780533246367763126749536326390726492369131226335773785494527804327637723686969942891978310032053538290622560554154297138521432819208879226738057896945440314364985405342567725332895732890703760327850560560911599125539550627963296523258564138521699935449639233554457764152504281033047834901430398652582053683594820254515689692115474469971565563522781831666618536934256593469562638985931367745896715983726579512995805410437161675647091734252528139955091974229199413960306625026886320614980887341819798063818654532397425152665323479319157676837925143555636737291233942307148768420455920902761910356670425315848380906044026993563912416128622070129376800746267450814364077166979213814283904901485601712371556209162796801587468460906711377592655180197093982406040065680502344419510232221549330275730613674838806532593818416799831455621382537751444800422673574171991949682989929369313554645927622860023814700198544535006455821158856163436473090125255967029373368664090523646145028723517198405910301239937436220862409701006513895303773190266842775375270686045306247202772860217203859816140380043046444135022633088967880407149755664319698896589932462163934351295786038471940959933470586503720953134505804059448537792047805037831191254194581397121370577265328079442845770216139555761909175699724101214525262150791057978838751525989053088651529449713422190188588760602419883634666992447045803719921250405403554814207068236152244710494426694820658471017792607571733779490282426040937094440346921933012813209236262992920490648269983748668282659686846265659661309200251021830738054156003771943043538902655929304878924840724783918744291670769612997355755113492480003331167921311106495797716388373543758529305623787945490181923872909961071017570883913543256399020280988702097130084914836005754361091006768483258257763080352458443378197595880813372708394332185557641473415552270882258895769675180044693678140164663345604026448256430546146971632209313995574223463180641106906440314810286354447959744350072308045488866259599475556967119401410850008735536049943853246717809915564770350403409189304045753899903013961050658966495392344191796421960069719661369819691645010604052202041835158751392786469201759742078898339418153643721954935399979131298842468237276586594882877097877849229145206463065192685221984637675574868489799741320776560023123016396414765078456289277734288021385252133535584131370575308477586413539789740071576388630423217370648452793083645380830506236647151992191638606258036408500338576652050515288994678790655805012422302345764765710708366964562442123700049098640734429115319789240076656145105901360822725283406604723202783189540600995663595871028681920065131017601524836244263479352314752087357309584608273980726834929669350093455955738307777997104379742740162195741810099405754616251515626950363839334773422369842472740114328124181987307722735476460879325265347818171576864521643925785292686966423210242853951771423315388715356874421817364399693984579879195316876469504434138513206257714770358514534736769554796312938740971273047146277629082537361824376535810852136022548815646825316538725194534835265491012717035743525990439168741159208747080070756646905892466572868509104905479716107511714806644278532537396907244703892480724970483064499158473830062357572369563953736184922230079774689598363252583426499481229857871667615442172301004496553308257345524808116909766439912634865481888738032867289371805570524971429791827962126275545188736143911469700584276548241958742441221891932889392581256834621827970017978162552647777260930631039010385051656679125887621820070748335734845775501250166889633855440751516154424681610156955453811002587333996707710378491267957449188234852022830483103909587029410583830198945116831360915714411286789789441371776650575781471863274248942490135473872010710466892526157551189092460194186927822729440734672962804040636235668304857434748276658242970932004433535413303057167017574017610459350882971305567283379322308139674728475637969930951137337025919691824091248363716552819614916020410002820772333698384861162482225266096103044448631698100512190392232539804163810588151488963882118737653497211422610314088541383361687985160926937573424420876883701913742309917902501895716360712752956358041999895976157088992076490839936134850053048094890631644615467145308177619792935633161841675054475277015061247580937485921641502932600508126411345082202153444608366944066896469507223470057822138998540477741218947120351237671904200516681009683879907189394834696657677449185441197177140910370855184087024906992914490662294141640590536705351005160548122852127517208858028706226156049871060671167360345292037993831277114665328895875782097943383685609607793760669760976535409016960472350658829070202347103562474996802012407137777423658661788764005216587286091330318905178540769224193989183240474169822166318478848440948910257866024645571841166146728914852463842676385277837375841563664048378587713691586077780585112738593789467938034624460491816099805772470032042360094797071576075160112205959428326076294260955094512537199643690085778385508294842840167672121533664473509903513661876027713198448222868885949064372547711294105514081194101068109791374212963823839750093806305709810446003633319808425828467680137045614760474944561208312631634800905113355091232771619767648725428790096652334145359441500147818193210435161219630368542670727675945999906689931373889283446906432584019894931150494786398303563668598666712059825143360921706029310596354913369000024567442897265129867834709232300429356688437376643961703235268626653562899444481071858602457804630289582507296903352110525184926105129878709278615888195885667579827717727380187711085105452120711572315639964623438997203929493965135413595812410300000410791991696227619712946220939658831736032691450594611822753136442126006153829672915449983890434430511694404520929925977518291448094941729287063140797449277931199792191338481174292015596844545797976680403717797989225533897344309016682027697552045966182047926073506509498173616650126468547059153988839905144802631064334674207231495602696353321179729340820780669752913653186286340785781460685902694472798091385411728785527912456835686211011124194430161452890566807138364105426547906402777981327324268876811583058512058809352892936337570275797700386436471215165258019781523112409348402506953778490738635062869139040768964638917123105466027221646642511396546561098356971551951711532960941415048456688944253347756419853615766109232280503985585822134097798221315438902087873450067705954406623930357803182660502074483767126033941443301868955867626207831603768627241189098422796399380318507883737415816595209566593612846472388478004960785898498492892239289161453815000569607027165936214301631409560246355921285324461410653611493647273621264588940571145763049309115039614206520236186621577723398769326252181801002406043080989743650799391719218118209738377548396769293684862150496668611586145984396948577052169730229070027192754468876427146217929311054761550762759925271020826147721257866293457729302214252599096985343014473938509741250287760182181288091127004124176986135982125901284988270956124750100778107708236225125118180727352042655415715942457849844091348895326385220287014575637312584167426957570641400832400196170139833313592349203984979291990940202511463599959224718232369827746981283135171469221121838038172402865187430651079374112165868446005241805659378095137605534663735124574559980156194955483127135122350202044156299837372537013387791964651831258828242671311630970676982466956240456985842363977616248723015629557117300861009821938178637191394894851920101676844659364816222056908784655906965824057958407192297203000296305341111544287541480382116771498103473717936447503074824580700531182924280290052366428784137133640883377152289361916306419702937503666858745975428955453368598732206653570405888071023657907682273364790921213128527492567291814677949828727951036804993419835288288756302980045125484508993370106440816387999575428409770979645226862986402929803207319252157760462861203532962846830709643274294259251689332584008275418672628635263772406457247228219727061156201583723334975524577882680758325793808328809372219063569558191048882745459402627574644606326707720882452022703173934167003289676155929784687694796503043729871935073872173664119727541448412120804102512183101528950658575603069899094198241700319511550484066490082377561910671134220336342827953870842079447673924692583835749168849593978618535037028609552476164866539315019579462376060071665790652757389322403879611735836512785163733958837471408550366775999683843046261978344700925398442489371688534649291127249288464252354489655311374580602394294264568094497468059605301760488312127693408428690227359509995756143873087519379310549005434911345239411795987539929489622186053997063133142231246241692535376745221623764468106527671810349318485659278111848562819543705845425658347062409836398403656121578472609702571428776246286203401041125915156516727217524796758932119208554998260427558435818785103601805941402963261769597991758185498008675461563890709653372220923170833647195256878642620189717917631081539447230332146241084312370950179385817011365659009271431233641941816876918704181083179558250805930975622176021556771369427148041779510798264529101038117882816755300387379935390337052741287554580568165880260894894625834741581446221745706035723445931006191102882227943003669328347579637151950576593140547639563050943194549228053398524173388075857610552041536574417688106735712659035932537403654925604441941154497428345610894649303318776746845529005675336129686910110569795729329280993277301818609389034004318661658857621216487138356481001059725661162768480870949072760067734924585539916994672758047596898054737205094057130692996093244557856402200239445656396528601667059048882584989690956449975589636288276886054814226987938460976331298972426834227655790423114359989049502916624969561113027606846416516752127322829348943643823620168138537518128423234087071339177413644879318147277318256262876071688604787589391139240318766897803035820214228096145976051253593183530898587933636849646011371658563457284676509407869692404879106961365220210785523850271189175015267565445518481809729554543675784590602577584362209121411790192368171196901744313545146524282720013648593597561740086716738032467114915258371874837411054741825245764306094722914012632347869448086405142568202315947378570999684945384244475936036334735350595250999724612095714381997614626177867137104339846073584623921485199013119491821651699061471135173606374617430910407602421555198383349845141746766838509011495127126762152214713996667126274893373536462960226126090199095878981793663271305461861186208564953849875345298441291883370056919216214577514163386669280863950811258738256495810081507625250381925386208399722814595135725783238662797907043073008761842562965117359270149603599692205100017939002178508722913722659374975375181275120152756645231031120672868470402709374296661046032100175853698782108990754459090569236154359320599266121376572619908019109258249949595330652769036714427090181750847092078263085268682371359894822683807289719999521954683156626117510419147286446483274287611737707791919311462366948112121954333389059786720485227162176152057728009128623492728565871793886963550263687846468845170123651184629493692745283540427897575374797456533852699241459604363343907565761033086395996337781771492608401581554519065827506571709861663346335232453824474311461355616964923887380195395068121636369515746275084725199152881797346625131454156949052673389402016387592577628429481452091388024646194623077071146980516613815789583825267230229721744567050367286999107651265178083833580311973051361063555176514388426078939857272313775164737398264418789191475484117993872064927232253369807631513966686153250155214234351489075366031654152616714316499751943694172154017190717984872840128697595739871623500923267760945214449098802527681324504784009079284995564958086690146799268048231297020389758081516041936029045501462932800305114741944214835117048020388447463727470874325773768898114189115103227032035003327330877183748209692090474808028543222476900579564451424909108438096007709102234625337993722766461667787116436791167421296511945123519538936761792550659875935817905634027528686270445237426159798671444021132023222362718301299272524950410698328430727806271534081026605120335344162091602754783769063595835744896483666366645102008228276338136862360893981266237559044658478968735076631282138845916568495257720699968794766073944145788256745860576847206089853184751669904624560620476880748497007791512798627032226625795595356445826354161577541664974119427234516927433530010293664007499477924508155424681364395926375624167548862827052105940334459876499220864265017466467116215723700280722521180186744095049478807337468385936386185530211384030352762995028414436822768457562696445688371948401097565623374407226598494241055525236819728198057466430965944923215243751447590929649199811324183813829854687492630707280710199920817811255501924760806639484867850197090986386191781392968217544008717187946936105147460501103359240222609583385051400177236171834768127717531149210664045961087059000423802467523047335246641326518500371369837426806791568429876532393938102432843668525583884433326841741598393358345501649945616253946287080025401066541967733204539143976796498077865435300778734815156392221880233928890719448162959553728367568079013047061610228747062004226743290694427245099667582493335756943780760335954340577927654692049412648399969621564023058142546146071973268541336044165874919676836423178328212323397095277807070314150509477878790912361744840133531590975326265409042548787105854016614042376624604750373079927585323826147601978598440568167110600430578663457882541945938059357032237351884602310881726823586491928910728385199219748439696069862140877355510709014510823477235801016706098592987636680265597695837032882177044785821532948507847949811905627956433186672291816228044125199897286412239936049138319731808211849286278530204605388634174370201679705140157027490274026603721813784427745377109069577944474061658369506384225352538376928649050300423960909332098234675905003608727250167545056996462207416966658440794130661912019088366105449365978276553990253499211552842062737352466475592401138426434884055675253417493026081718207101891954844651705813594214371181327360528753831271198046633660841998236417358324612112021882964962683006298527245210445532844359714128143485250327899922972208280847399119708157264097415258796322418564718896448653670512682873460080143707109077807056062297798853231817445141875811915599660314170293964286301681320098938152676254635926330064145351756390070443372907586718907890177623659932138871720841423988626625748972673004795760020991612221780249767185446289052998825336608563866940144654300417581495594518338723039748341276920607537949174506637604514745386832314376416644817634735751850760901039870444099296109420854401997138044086138012561959112206017672897935679793689710763783971981674856736155329434952320655973023892204602642128909913028892746131618337369985833694524748120300282425666359136780885580296521315937274772942273128268883623346189084026795088050923141738205854596475423685025474408738104432145128679690940561627933252258285381685941912073192616102570514787638091988653523523124059766015719741758334720169808158253674042717870091362098981146769973661720359555368374271754960539026332290263646373936361279831297630679410187832761974992191629749329969976835912328813426147742101366383575843501815841894929369214339917546710202540233108268591565508788225917767098285344985891188415794959699760611447021833132796439202212274060277807797721776533617672911033166771605194276843902756239768135328033361490297866395796695646636026345179300206317932474232822187747181418143771144718500013718533468135500308751651699657756253005444673529423913879530319160149393632939745092937161349597095526996010762226577666508009669294308365569149899561980984135102325819418528525286888809011607100050196338195186964751338297760392635543529650565462421674877956237629778190486853618035651087786102614515370455601241563512889796563767466071428737183645229983082143995946710195008761479645804041475401608382893561380078576111838140230863821156262261494971631650695048925073911814840995716785186799515598904464148191651944787673185046795113533657671953624092297424720648405329704083291929736867245925469723699837025326500953965914120973346276868179341549220045701121206881952328833779070991326495777331181024934362995673510412842596275138304358117135417648994676919163523076350532405230387885428993799912137093692731225863045865526048121313724152140692952156012387916840869730049617686424464263215774639866759768676849594809366775317670379674323253874554105669298011682035184012843513409152916969945883231640742900205581212613436964549517513186991862478675648491056415045824153859488936202204867923101957951363564339830511079414673993791418785852088972892961288823840853271846837403890126464883114041679033383219478987438949166554404391415478157901346931836271625945883143796551836478306007185723802806754164266971999272079274808664919301528398505473474738941632538840016253212801765106389472561865993996700930964035987321600891829218201881692990945002345772865299166032332103491421953641884797213041145534144592937433846941266848646588976388211675495710112933970657477634161932751391314387401384649711199871232091965615043898768074392918007507530710000775344876267183392082785819239050480639917735137634020656191012853996133224383736983322649312109701776449352702768241105736575823739650805879479550565486148287202245145302470838235520060372235096035314730292319703242762918487924187579086301921922205109302852076865876300249343991493321591192110248417524284042075940215414035591683571811670368945090964713418225177980022460513316482577476300359257913188560719155760733967883098638026023512705291703859548937371061338898061273895731961625213264566976568451999096606403921403556900266929715310147758153277029863661089102817141645954114013056590220416918329904995345828754075236655705815162324551043888703864503161105891265994274774234266596834956541555091354407427973146207623483372555402190167882089098401694778618623725089097296292390392068058551380728258200164453308181364675864810308937189387867333765101451161333271800600419725455963491738116476105713431212507508286907956530733096881877350708849424833974914704902170382950218958039306152182559018733520715290899094140931490127332361586072024426296284070225135475834372143017540452441563115146634351893354126359724415761892600697628076807226153294538256745762660369419042583429720899653534203864286689594320015673514953432048494820272588753571680718739079622894496485846426101538661951777801569719587039533424640224505937717121675974751939528965415920911225816204398901937550804255236670791090853016796962000857925507409537175373728073945123887819126393354156374426021358042791701429233306383969622086986837656893785800959375841387368639184119759999172672153327114371051652668136361785077885925648202584752818526248514182183071671203619115452341643317382728840275937616949668339252195195583784403874321306088813118814316076085346733646099770608201112495699135674196455921890877199030381807447743295788845063345810878414602582548530309881894575649719922969540087889540766273966491510781634253301294302834852180350461876352184682668409197971942884164182597207124245532503224036875188837548516118149153034897019231906550113610186319496813727804018791520090285731156910820342442681472047307525018081975783859971828748744427399514552619340875222243865337118199604726602641571836248333697229469629161508700826273011829443098458491298047660916439749171306659191147360857473588714992239704202882106530457807642353698163069893522104420249000928072838981782237304423821606165563500846232535080440275959864456174898774326559857219164320752559619460678746216767007050782922831997772497973468647905534023424288796187308778828585323069174990071393438240158100968869085098338572766322090307971004803747818057650814930662395780150770690056352565189295841243801432032484637333151150795925820481840484552126885503503554644765913561954393453608857371814546756443370544953924992870424417785637335367170987416525847961605677361660151145456252669324642441059068603863568682253141886128398334851787868270858349833461984776706478867704604076151988839328390623044535719964554635114587527693474820416794313327578859549630023436500452166842090812657237055067864228114564196241378383783838794358986629682032999100580431611028405237814866942816132371332795506741847570761647079211767874882094658317934272423369866628464252072767049781973946165362550877754513085297413630396564453065158142014432344540716214575148572238965124327455591963577469783869218839858459052884019281945717260718233192426166436639823269919510670911530839826362077019756555765503567584461483596221921543510027008253012492893073934567973012473010512949389241358137856037139657919966419904437357642922869396804542504878929592008428338083551386093323737670798033528013868787160462035682277392211703648528121039931659752492664368876807401307479790261048325001355608622362095334690914285057490476474577985182412629897417269714688564059635651606379166870812546588958124443808892676097741419908070258069942557951570146997453606160515659255515117267741334340022349330634903865273488184989921516759665000144947309105555293349957853541345836307891337113382675110107384470876123022620217501356078483704625613663423383229369568588328469457428712410055730511809304178935499128244919814522002128864940821467522798863665741703897714700991321741753661012050616426733162313617357787722311480234286607523861013004190985917789848806027002072284050719277833713067946967555380171462667846682019294601154416674704212628971188008885279161122258417080076021759095758958865370620461311234006626947579969458307264624502773265852557147411210032488251585757969045025991456081268363100400546403160584923523101137851660429779119221374782298413509082737200406076848604662143204255260985788045354068958322775460846383795142130312312262405567950266115019968255037325204831643254749619831570698578447635884445056459291861303240008082321373101626851001175138897112127641799853874933993838537262834278079155899826568857078927820892844174840976253360154461701792137613666314400307031222381615447713770067785407923921219498688594629642811645099702223086233420546528774892245339898352828167770723447432859933572666034256084649986861118050795808612830622074111305049911862500939925253554727782818506778666754699645298025621444772932189824555544804403324571033237058644582805487555653722216631253469517911584476744898195565128366449398579110548836725472532973760787189756292294902827775543345885882949659884578986319606224868341901560754928174761156053086250733135888915097369675132095998791945787092871571021711015559538954980843954979336542066895463573250074218911295993524786114366621780287854039326014513331544494974200531487969468679212020996380314270834960419172412953498848519440774833769925678593187919960786719643233492664796976172191034012717246342942970353333641944309250642145839202638356777346061371915673715220071348180811038746969990740071416081245148110878860349888306320403063709763229536924438711069049998826081214581001908740560333343385065834937690156234519307192959072144190443008179944501548352320184474143330245123626307865193580256741418931445918823923579642897807609370612673450619743256137020864418107922168975288537333941501230320497308500880951467276537406877959006218876950327352612502022706540973786811360948957645369407934602450712860852957193031354032736668505173941132956358744006334884544826424130553060560468771244668446974519150740541319202280975355913132004008945271592898588989655816128154308853795380993410417746550440556922231980889790298621597509076583100049504823438027103626923157354410545776199251057372856927581787312688924414496849071606768018000424393961077494595070414870413262441384217618591163381519974912161911713022554958338237952383353391245581374520941327802940430285688017279342593636225552937608024036247756663659191596741985299871041426098236541422715726997418810184940525571398482816092652933137594355736788351007475368634999979682407103284241487761644769618215880843075766275823672685429920751559101129943866024356172396417687849455899067773771185634345217417083718852678146879391136540122092586965655610351794178689272340076522567303749532131651874381587227839633842430281413257337170302268975770721446315333234450791928925853102372000255342589192233553781281633008227713974641951247324918509229578294034108633038896858242782048182052693620697510737291097561646764663210910033082511950058521224122230889006275384376649891493217081343384722058927124839076885412602834997680128137452620595582875852748003521666216918880552089069059259494978871468273183432100470500052457196707141512036762218666405038513974982749896747946183561919348012394106077046849496792166424725088358038385270688620870712802097589828742955643483284562910126970276109418504800933862098797138233827779378012906937999488386311956471820377608517307217042926366510877384595243217594754965857832897244226361562612776719680449838879616069875679071979391162806843710359395317254651384649478245191984457220181011949039181250756231924292946106032950305303415893814893585896235391510241477139900979036254492695911943667446863800462531269097397216801990276235838337780602582164019849263879482261740700315261319232675530205743890329491899730334618312695815100730745263182455459940147517885793871554098676735458156360032713954541962679945884881653831472222416869751989434453534787755433094054811467937674423737272764752838003854914141783787232825076909904430579415328255369917939735161530507980361318013233989194060638388046926688505421425365194467658467491250902763271903910691473560555542604202672775755584778097449554560679608505569499596965255908255500064034441489257927279019434203158832806380584584011485245233021313589028231040450952467717274396415073217354572485575821668640153688323732878167482276507529740538898048031428214501171680145253877441687959476198591792593178428543240603329964778290964703270784997613344512430272321582395349179090092776948479407333839505712010727863913767359492610000743274640165953630333029781048549044110133778180657666922446842529416057106125173132419808498373838982487096737767253743577130292267685456323956794550823534417931729276873406874336774592027350750811973495597963487120351759705738939582790925220393809460762025046294571209493668820579889001618710912330659438999868542001933817270611905675491394137009609086602250580948160538897134163946417151365563634322202002041388957968079379017119043464999409533307185913911732836172414393987425072140960678496719353964598072039342976934437820174616727769210396749432251778489651298527871891773086670090644184747560520085634088028907045761868234005374615955042477184272224251845405692844634243431403436738871333202999107147303738479958661433989283127777132721877189637960791028272798841896882629785096869312040957421227179332761374317326871611296422134337321123065381542466661278592773305316843285809033927258434316699773231729258926735883747759189307620435474140220930337307293540911425896700397179500781338593250987125234149580179960188155133464573242901883559928604883453169220027717343977428847147246439915315149455293217461243509271409699466080628247746500040065501770317121114482358174731164779714947450389878365925403725089521687917174889654726796147885235373013572189805813521285495084065249005291916722733701130100683126135361940059571485233379985704394846261560800852535265358558176339174083871404647094950196284799857329319441706445109939039708043656893418799320296048535567580321977513852797962473686387885162372160062312410202158089309381906699242696699285418777888569123754614825588563347157473984068707949985350728360196668742305842902377774390486479288217637654817882526468906776565618928863053401930522100437834966842285355223941058044766051250533154259587456952926261701765253343026451551616175319588653139074366203049671594067978001181336677051351254858718486098358800830848162816271199877020677808331669518176221566379750665388456282328502825098607494791717137353291956632229480565660979674430032875645624230625277205230684460082953718157488485940745624766530025553055509303485350070337988741407530160351879417917279093801498358926984333013877187237221901902238263977457567573335260538558903091247174677504667621629373288925086676044982581185269148277984819459401933123902539594645866489075164289163519148816724821930144181963225833665196994696965165659014082308032541196891551872046733798951986977331300528005336916156232505333553859279520498294579857198265611718373069232183980731884402682014195452259971899940968271546216249675831889542112428328043170280006623473938579391178962667259134599434248757034206457184065359377997253971775446861602371670358819914257327488944498045201194479741505901008394414741950529991747450442555464442253846562426247531964845785781418056482864038362539372904044609497574474326017053467228227472796707655300685262353844597512442751166300105890393567799366066281954446506065133127826311436604626388257280446998872880363293106344161619783697125501028297632806009294024042295613506537310620370532608242335427368305760072310344293913856948171331800905734309506529546696157504214729190654428208669817781334048003058625432456782103821166622893737436286105051555469110776349205514733122602623966347381158872472674209126667622170524390070634882636248857847622917079191369463033911057158564750258347219799044519073441804269235454725096377903717590328286646133660393708376763647967565667646619094815286230576763572564945252156405532905467752340482283107141064023736793878219585492692787134173232475416033075473904316338920193971533471250498740393021889603323399705300790786906956166844453011731740877776102071554924746132412492057944268061414036207834745650980759262396427965172186572306982223013147070138214835160448347837992072147089356237853405971850618178153135024923750445338178882823738071003041586237115192982356321370711469141021968434559927621361838121309990057328434028638916304437559703987573718180881444063300845475997943042893070402128486374359201066465635748162495952425403181509222746284046975991651205526818957453439206826717228409803636181944548083848138648358892759754175179454527766209654421149576112224628351655691006927992040799710831534790104885643977534876426972873967777579339317284980886020799846919153723151418176768281433535309020679499859244545439527428930649130008375844776140637159675044606963079257904555403346007575026233152128223984646795583259245009069172577256452846171962106172765324534468461121912250018196709654614563231376914209575666576360589241580833285735170023144153126695248118171383824332987584148426989753318386900623804283770312408664088094975484287241006414976805161899756086752334625252603405133665303850362222665473669179346470201115827691292684121693672224457492187798157602285690793207782393642066907141990151462031470248480898522682293547835319048108365532329468667151114737922293165260873254506727460776077270236145929885166330265729552896688316233294096354562827301767125030741194357722961782274772727697230076287146343982637594591746250351085972733874277649903755763022372454966063384177522933644698914942640142003441044583660356583390113064600167489104962343922773842347228937804493735968816392437371932205771828343971329727423251234664485277975114335030406067515109968278221108101691290781666787540879000551129313562300094264050782420933696079168374433318834004082435423672724384317163769623118257429302083410783058480545383061134326621631822828847592226880767330963570262100494987511714607244872178321682771341727850913124833903169683068855973270135153708224049343398705680985998555828513798009004376716900261482044531506152978183612802019208927104123594815513968550473252116212208531652512936231905973334548059468085903395060529789923395075770040137698369697226418750929077669705415592518625651762151614372933316365022456298799406175736366873700260730832952111646237755691635478523229762855828297378741173041676619593414456938501058894604280303323895020508232513072674450481567291720033346367244178364179892774535282855107931904057576834764879574702562762810477312342512921488105980202400855117308365557168699551472684304285535831905374601449393386102220181755309710026647676728685184425509943614254433429612301184763967248361738724782472158234327830549542900158559983047471083730244126479997039890683844202763826396096500033518643648917434723259150640900163742609791625107225874992645323597222827398217356230745647704368420882853459813730170195832459220702308050035737134860131588465418139809418646754490927793580029625488275973287368532637778170059837038420263699486782799010858205484054958926726964318529213899093597915254038996945606944880926118561845052251706223337315304592177291773250833135820975312267328834584178412170735947579967668390258316151331911626945132141663232879512445201949463458962212305513448708808326085769453097190219932319738299171060262207847689089508643368958661992344865652875557227261100517697940532410606659593886616432588640089049193248795621359512382216872630019006783999643290939113883375295082396054046486404716139609306185255873266351789862766505574196727249763658080215219600722142832598373418142743608581703677471053600576459244299374933481965593773494560780392379407561165397477156775555044842560312842285717153852897723760164886263317414199457867224759790254093064219557468771149899430525696227393426421463438118263141084694777510127736598093465503515485790316199674838276158639903074980679627634884394324317309398363565825426782510701528100498838360979239716249770516576823152447754963206800579949722163649322528264203769538173650157381514102934423849608987832291947126516121843372760606530626289459867436201746643680925609065569735514947987892716282699137284186234810609008018026472520233270147897471484654241787044509658875438221152708086964789648492528708991537568427805558455740718643643304002407779426983525721876432896379614142469250196639717954092257846306128024751323751242865912294659943248606242048895213544330875076271738275859236961610885920082262604191281740857765409722924180410591779047690726167682821907966441839590980161426503559952333174527878326822018824901408544890919356959510950808916342788943961823099185424175588371099776201523882857493262216296484173050093502375803746013736166233096359551806102081896135215499636868305443673220952880476975560370218130957316449214758282393465444297504230732886264265196230656526435038999348935827439162439870113888751267146512294263675577297261731619790228567706676499246239961474422793097432290917118548468833878878277424905375951814876606375589200880493953132650845317554582118780145681682391169697964135299883826882131584318250483215140013029089530901717025906425377900249345815004638088494386790420291134124824104637869530804736282343273794344973273320152003838968937257954979904390989075646359479158228554548884041159848277604862403639352421233065226980942790816701950327844394770990330072531152069618820088939961595508468941245249404455489495687746836509522524684709135460867352148750202937677347379871298165320638319452079222849558579628375445002803869930633820896006165667217366531166184986162716864621818489172725829750792522481220571772571809059581835158021470098782829036750335899227369413071358664657569904256732153516454937574227116550574031431358580315417128121373391384361996467992698165760165473445493825328761061218863927862577541568352225105540377600589170750174977854759317711284581188342209701010641230270278369567424928633744663300564842201988774673717380495204754846609241162177416620283312582544120191035762087311802660479982935379148288774512843378204718132895855218607429268393608800120624461616267610587017728685717379047123647912781249579616755491323327945188364398171980205751127762061258969764688747995172047629496965112265917197010628511814172683364382302788366220207046276428740594151262326238630490908970285359524644138434044184921637175200090657450741840180136622479140481310787143589857627394661513308238627291817379287242015310938342622960330970447876613976237521107196998286726637680902804015994743793038649452251805839933616049796260376436026551396370683677255334759057211531986159876277565936547848265943154388866717890437836321771203787273994163283254528298206185590695913474005056452089197543845638468054013163362031745910883770624238844442164693704909835809528260973472661666466446987266596507092947793910067229209566152708089761226613370867362007875711261956953095507951755202745503145377002579382967514967334900126450834484378409475034870938183253204078742286053785438356594407732286628683294426308442506248968758907578875345160518685079606935583415454237366613726576587270683529204781666706885303072673217589691473433316405197825298270277045627373817449527791698451360985690702363714836228380831510120581269210145422927387574091186452649320535884201336419442076446176572673231367107945522892727401117160514186933239255013065286394378020419116033103110764741562090194358748131573400875176449289877709592840206641468056764789884903862299013435864553557900536979636386990981374395053463899214373006739940536844273046371111249229202150922614755498290483896845876421898630010135590864196514181375434143985973215906613183136526086152380990431955408968403843884317985472790714806869032644397478852492981245815953379589657629286403465998140334639759919544919896644824659170026957338738070683424352239342510077433260601445184254145514331196980172039318259331788982689306563029362144884944888251687822074411127757813813781204783670219098092613976555842716269710916872932297081538681550566743014572858954870608365081242934855355899653527909192914546279840187051165969326753072800391185154308267093508379088775815771341203206052940605274982524812259222524866026431354194859105572185850429893202219548664527474830062454095748186504377043378817976564662502873503653227183043495238295658253274546891831231786772736255587729400952664114646065229176124984475544277857749475873794817958702109500425564380310440512872763997075871225096601486018703153631520003461216222331771539445219676193510128600351351949457965846260893606718904129987494718298740462708315991422902927571106706676580293106204155512835437061611009947080888158336567742267208096295763030829344564398512795265350151391348476956863921567665733902856706597677665569404864699224236194267180085464855974809128755301231777307525347800227937748994261319069742883756204614553705069008423004886769238899846391601857715245678037759379099918900117114600461981216977861875727426051258558687434990420131429210830933693837586824950263998237056345366101698961305878372468390097098664080988744808728821345581923356455201925060704033863324079584166201631106183299993419777928908005774801011104082404160692587415656115349531851621960542112918776521809603247012265240022408634967700956408222393606488789177977172234295277617355017560519037991136118684159454812124401817778233992766675148753514676324459632088010717108918314584450466927486730523831526216468243405016728748846428827861989935093524784454610457049823851218561309676109117293378015882224640318806763746285677197597072257620836916593367231097725328873222390238073368223508152188264598154415602653141056525322148784188978803008682459451831866073091699587614014196873495723440382556314072367912591153399625896291250247743462366946490756048234930051005626833408134096473131361434929659702481116371252901380582444766791202864658824927607531807132993294281035175924155676441584296434850801898071960602610582038766362861932248201626976736843752054635577377964382675983140204255039881926434429071735233651589469429083627393531387567239986971154188292651401923692795502741907540844620016600790004678309106807205450620490151743510027305230099976626261088405615508401796714189238814031816722183194402364990854688057791722400049232599380933971902291944482156989679395634733008946347237930605899877723725415302869281727557452256942407673256268467735421025631721742251907430642542077486838889255639566301648942117014025295633402812956336729836781317124694252763237743977444123118075706483190742719565336068097820975798383065146423654282583776542388805248179975090205304035632010275178134129550529569584769939713404363968450381609470728138844399123144854527787981858383912698376901309061339271605670174584791980597937888398112773911619515225080896930785134026073277358371448077015643542089885138067328286085565723437968972714711848149425349857727963134204872919851124795927786807455515033812170598484658625185933412581360289547189557321873610695178931592971089708153428966382009958019753193286335815092635778330853582584831113466696938501016983209120251921425435345069432329964309629281224137178103328863568600778175262363233449855729984413279044522634578776668684561305743998376447695627834788804152887119360862176114863537564565346529995244807453791819681276666641077430845618660753178758246716819636393149312598905325400747426629256570391388464804825941300918917422542805690614014019025616548152091483668357191033575221908626443453670295197215444812821348394983810288999401160052523499001247686247866673572786576618810956093831760778769069040384697202331980106284458406423421432061334025929104966477991943884051958108061829182212935065379263475945398569574362441907711950116185033093368449685293235545756387340404227657539522607968720526128371351049185089314874372310567615256777317490614088249367054209453420071406602972862835068162055042168447487792847502327718145703474408459613807112671860895305326397641393110301584339404804325557425615262219511402840565724388593774123252127776263232417084506093883435114141056605005142277116976427703669719522535566907947133678382173242112991453899398621884484258143963601557181416211476762539549492121673529707064453854819231986219015816425927741185656400681834076609694156817816605037429235197294298285174378240625592462559843993086800013408858529991186110927253645662320613981824679643541650069265299899739598990026413541588855272701950832516157440819536206179877249393459895084273728001892663871648202188986148192312513559226298705291219445619285339095387717002890954172526418729561659136817628956634515524435207539519170746298450392430213850759531891168861499659640270825056857912368221563743408682615676496026685339455519714706447755660527432349919471515086340676445982859926258399897876040895571001241160298817275118720050009629645897692122895491873246037132841607110366641872642723024697020058315531111001041379137930509729902706959185132692442198934394360044255745084685845940538920606258161810813382639816681715286074988890871894194865278340503732340906204204327179632049488722619780678147191437362488584828974321799261848920145976597597966943351196047859393974940310377701372238662179323588631537102709910993372371084608728620308668095638930150493104021998167935532562092506465967805127186123657984612546956463211411537375787672480468352873809712167416593695003684879527739190965170468090660710992249561275983544770993849711036873654647881530024553383686467047999355539620736874646823294913871875950253357464509806246096258988799459228899011332585393953340190836415997071314940290028536975080694088400536062352028146031932078988844952109178561848177596186796031411630317872724935944821069865148027188666763341759620083142184457255696059601861375023162239021640635056211694673350544782877670755202117341757098589342907120727566574680921109183152036386688835039855479505865747395170935946983882674205510361460008042660402535550918435916930665942763408116558294986275129031416031832037092888745581707413688856971510217541888239995094660728601683867679925900272692755818386422547542947828332644672252748070561515963255146815632720229928610461173419050938066536914036370257428866160164105479662059962535271224266775455359454365236021769241931947871384852868708831423421340198502456016628672924284877864407021391408766451154325417434251052621795251923975372840966885670325080377521597579240515740563705211987328089416420613786851221496962966924179138924026857471798429206452645983646804970886943418189795839976120213185357658260648218202696383659143391441077968519610603233549563922008202942599647803976605675354611874447861484923424859407785317966316970537842937948754452940153965548353340204608086227904562300861176530196629094521608346133722274655555046947362288139674594101387856161310972283723807897250624364848241013769806215981098543041086681228494377221499997491387524237602374427301062812578506606368895176725994615478565103314792763779460086833960356210102555272551069309551883640212954821590298860528757406137229167712870170879798967600809084194511650280754332228928759026472123126003001710532825729743103919753243087542689373013777395189036826006787734827948206713119546639419769549754075166730827311489564319180066151355519898433549232218278784755492769453707717704402841657607224018136791635451669969791219944236727378321925898549158197919676931756037848645222498269632844087312563285250519054896424025617832788202694177563917345386131310039937795724197178995364232904934416174775634634169596368669942648258263524652807832433423163362970524661391809710421967422023543946767889744469114334437257948429157922105006041680273881540710734368007758019657385684437564680442289673139526778535344588650750256970820806640170892156726591115070401311557556080988383203251246599681385547699295505272103370405843807964053238172933698802101018479638867886521633621505252352331178209402288035636665532798704070469449591359327774171055438715582069052978697963581369544592787815847453290145586614193171495900402241553567780222907841859760618498008786247866614113343660064490333725370879302229171593262001417461695603860845338077030685927377773656564807490348927489279351987475424206936505488236407616081574231016104235753672378294056109353794706488438861611068393551394418130010470593934165372609926536605328759846632704577399630629586152180077661814992059393291438639579428744634499991216213954206752542138773448545068845001966173110781415839549187912083907879515351015921967695609266721398093451202312400034051557120933752724509623929287870660828657714437569091731842075255442058653188348528725591436921258608109987623981407107521750862468340053492598170253196731659884956214914156923068884509418408761429797853640595574416686072988004120585336668961761137890277959030401391179421066820561488537998228817805810269317664560792975898862437384415643425028942146137411055661650983787702339893059278481997879081215474243764027652256305709158507977952525425971131884218012293424118187016774623974505758425171825676194509020293291539048115994774305870657514829901148091979399760237411779987007514852630211946173692246395398696507385315432481880308042672241571387029717433230058283250471317777693026762791827210079182367489683099666987708927061669514841873461859986493325015025944722124683257287868873351812994673327578109946615233930332660656289251342713607908172395090026464685826099616945480795812028075536547694520148224223829836196664447413313172085789969201801737611450548234312286496701176998054172212909683247272023152802115550514408793588433738169544845135336277756707543853657857597606705846314279221050752456959792794367801634360654807498880905461462316067211078213984904831326111312456941581918307637723050088544091578649729364538866045190422833296061983219141131378818614225575198823419833225891778323816091602235548328606563148115758073823032706331829511560568746801512855651685372329002998649003516161566858226533267134671803134651122298777533864270771993210005236139187325655608189169857274846020006302265029481399899566316163653182796735430676199192353123208532657231823786895085431745314602391356929674998622914712848261657469532596424844360890601926407579341482192178662482880731144002805711789605282657151933650545547819082807675658441827660424892698571852169662591526022679107682993648582307912335967680229520377006714070568687307660483423684728711601205284824923522192121292338811445896929502834397261671406510026781520528963312724924937845097001625528927881705332078730600667843439870618287353881318451949035293283682504071223809085858750307229367545238502726210929286234668604876187105475052653964463484699049134348544231899170971342615235671057100137012491098909821585032197516227922668316082320454345552276324298461588985237290111785039046060174012054244243221246202363745765206074911039467983924565003811190533242137776956728657008652559846433082847940094265205528258031875278625642169278534901335635148093244401382198301079102825058683674054401541284315860930419024421360825335331239651764126931309150691757225877989003465302325510151504200882900526694422800569318642350426407138539294851811558279451167238333944317363483776082614791646705419819678722644033027996915934029997483324680822896521919532137105203072125411925549538240279827323362373081364038492914958820237708733220905773224270245247842753550122425864913595128633715944337371836359836070388231332211300794378540844289326671929350426418730437501913511049397023597362884010810880910872589689293382081898478914578551449616893169001956871536782417895128055821388512215246284302531580778833804643589755330183633610655654018539801124406463394945199342831042493851931806327010765781431264140712997975729384749619917377385070941386499490110780775876842828978626613610536538791142139686897119649930093804608102715198459280570986162414413385480183973561931594822212253213604470808474761969969899035121854594423284874212621371837579609314438935340000778668450821938853580169217889018087618521180007814423067741561040348058300545423119507323130438964743060787578858193769182551470635341362686313348072992122564776804401850688459311988958649573953324747600762038349358309812095532409980770350248437419294528889723706971709245181583036857769035639546715396980138324724189399947968867356127727537328588416915773598662497479852304048396186147840702696550090405008987301354891939704514074110700725171999195325740634884922548858530122082429214204299985860821264901767834775908271052253737549782241896093489140720724246861305221093187545768867010882540801250070362043137134188024898128757590227806512452886401122470745422008270655605321193561866014594874308824433676850446610136993633218858595266176673458760919435980904663230474246637296170215217652098220035436252631463092491747839887642351199234784522704788905259719118619663427130425449613930825350308222699783598314294676189801260954953080430735028426339791887773393889773328163587411576716194574786374770556665309394637950596870708074790922870989102924472923759931396130950896974418692189579418658570199852071390407081549155932648713703980820614752114166540898582185585491492141957009682606943165065799994678598361448906364895972222281296699958503973918720023594469776715898526806273443577851053842171071636920546811973627584982751810671235551572816540935485918686007919726215246171607892124586757344603486422313534686727446070989055187626724518155545015003359758366440508964092034384938167988708372901624586276400817829539530059386676553307868573310935024481947831322789841398525948285918377945271942539726282142656270718643930883290706934596561542460947442545996615041446971725747160612629600877862967804821707057545471345418459559550976064985548558180857692023799992303030168712014298655446607599639119796965324927711062375674734230583339243822197827872311758499912916644484280509794311267516273067288089205581591793811748433833832430870934146493854381002377739614033893956615901480230738565043585689399567837621442918737505594595519181777511690844618300542505191202583419882056793676648887143748907348548784176797171685665582977208765590254204296287883757121149154226521904038266408756648389974205087534408025462464525378312250935304528543489379979594414463368512724488545969718914271153516033288230588514641753416386493376832310332746718673374464959544290981448882273024107871278948015192764276187534175694162977817658082002824648811357836850621074674353360848899961735028497378607127769868431670672083197681610360032868486319199394336545177081582219898143989044277964331578264057996441737599452475189305972502085976761165742178692029827125791217705881953820771820917691266535981408927332859699518090363817179163752713500961494173166856504503793685491498950094498543024195956491139830278339044368264197328192524014208362776957316551933015052708320441395554190589208976430636760393138605196103124310950762047456771189716488989565448723986033918484022472173208697401120561263597201616716264090828532826393699182608670154984756895126580714351481697210877128665865770140488478226525950153663882713294638989777547560426263400126640433288921401832015654230718337349262630875572452937498090117802193700791922840277792218989482437641631582428988655906703259200401452169732897487492874371195580926504649142559366527115809722338991213537097950121426260883331498958857574749451100800086477215234224153626053555789709226057503725498232522934622480996810984905739690296248550216365946625931758914746057701103006164863567445385944210275688864436575327390242624412172734353698904487154384347392789437549863240906454129891364482756400903052770086175943107318989056758692169656921600692688357301778720198692458975874586320621468058576797605949991436495745864122235286152127029170555456149035371773432953678062394286089269537544162755987176438159846585775393564930173085602693108074914445340386517471179843852806237390909588085798920651554305965247040401017376247902398857370946210611302836434990571752982054465288439672631076411137813160144251749536688469115849095794141761923702512495867261812803751709615450509873908593684504702958877013768147339563186618611141150134961257581353694966767941469636773002863879014873609127821713080869818057705419078938720009124178547892954137136064041635615260039424878301460002415489225294745349531288363302167526234266621395547278042453401166191343050038224903578669073358813484681589092691939619368390649499304340146273153074071652316989809276911766433743852943270226986468517370527860294816653668542123219222400397208874901188762750414987620744104010761584208750810872747008382500792798402538465102997259398968991715233130673199460556657535494353149753590208983913375299417471494397769146585320072607733996564897611120469859754418295107651818588413258500468190930419169596351720910644342515399366500429415004208019815761503196620316052784046038908741541880585560539087204904705698263586742049260303282680086323040654400277724208710388155999757546854371446892904663070672997553578338753724325395962340661738818593616584320098533724866218934609373027366697850128049843945020854115280149584515024636025302228929447791080914006578435519086452903427368568915081553257663012644913224397213529409314606739577006676360905000580022851031808225025514790353146419915308919523221469868869667038041594108385615321802236234400551821252199637183123979239844642469943182997427623144734581429347272953143272615325483416636915197206108112467656674164631578186378015566449875891110817274590279512708502148379768972483366427053747877984883653175853886487474318769316493307057968286124052786857143418548365288558283722495117812237858449462324081058736481880524773921569690396400283034456194118884075095759422436769565041628912061018029648900946589425055879263178966045436520061651579709561362045114750183533719169141529987808304560834285017157504916989838272191825239097103736152644334221847186358322897561400571745710138896916856269660209221456147040022139291868196578955033961268504089226271059179519431611088929154612119554429981494137676665793874068656216335530259440097406319781426010373204173239286549558168417315825962305415636438076026212850296041265675399189055701413445367830819118820840504583620480400100474344759470154775728800259365821761289133433827170437331190226601449114902260351285828377747702866983455839215082901938095877788461740037778384752338164347139291419864051918166539867585419913972852489123674201033947377777838138057617671166142913219033796391822345720931385319953941217945240209102798770450973900995814197132206593399621589198253394184082867379596573697145206811282982536830133641656550116091524698668976859606922148315640724249665076359055590328399660310153719239702306804317759343706840440866701095445084638701724159789546430763006549754918467444375723681587597241874723749155242266472291694189120978153153758405376874988641958693806394597614007813323892567240718185463668013109288393647640870329545736309521281801497833142814522497281626673742181326205827390595128170266853328710802072868972359857429424651559189526546068316006621746011047904891006431257615629126327998131553810140138674939018366489946809571455355926103876236890123452968950626945886539349559351820560906558054295042448064429971188407433898706559115135842618650625050618030754156374907067806283353707276882954024644751901611395768770831534152552908931337140358621101336284150647980734604730313089918069384606586142220801577275447815456144611500889135817334551270337556252848226541950349621715827212675116664656941756815189445743420260807405573041398083519383754930641119764034751971211276744429043906813894896492429736444137695739863599558976054156353141189524406714326622355580379599949978377096445374502220227163323763170801225137597882053536994712361958927597904146686002639656296560876951744979837687862763582915861082518436474899702495596871391087009124812144645287659838957135278941358386179331987568409595483593346331834229363567388763551688698837269159127719660174664315534536719231563883997984244645354935663182091583458709349055905867538572158835193608233368904224542650361405555866539690799535927808947891689407463946820346251254201047446664403651441504881111928864371885344134322181268668040892859499561374571259935395767147101598379983623072378435394285057832545130952388726512234471511853031125873899234572417703301983340266844048533338016096214501130281914839784280424910545078475507882998884210203820263223533625426546525149912950128596461311171501708088241286793294704982421542637759949762048659428527706378599462362059651397455225561288489455259012653389415434221219251547965662106325840928356511665357972523830490476441586056133372005917532583832735399551760336894360283638475652029821277536274255986773853125773376689053598438768716111759669380539062568790540197554693047889133793227291514298595220017497134445626576793332192599577974725097352917239325321310001376431214998972890020552790356889217360261549031727067521381498883829148427299252271836322641370208548311955751657942037358373343611468374441216343336148602140847336844776837861820029307449060466511875432426145232250916248540205935427526745531478972599690473413562498354352029727861961665626812628820412964991029417064061576006590952742853528595955858721041990328443652818144034495142967547737324253716095377727598496988224108280104294964213274828017041353490762873260714958112304860620804217142934242472428469281706698887816896776270474537536955107344021004353644017069279000252142973321920710906451509662502652613098982543223089264356002771558354137297073159638262085190930354365501752767031712839881777079319238909330444563927632285332379114525823345451572960083126030924247130903313156671715491454089675522808014748019621965186373009440560048967176476994529553501877458580237592743861796488246296271792578642709318581037293726132011044211373543088022392835772354468475379271326945863018089538193887971893483795553378658408181653302943928082745657260244140588217785934386816582623563392842874371002871371864132230017307951351594892711358208199524198884320359474528951038482141102729330362219308994756667830501475921718545152729700665654763692921285292333160280517329582708020734813254259284027224813487861546922344651089254642078453960419148719109174455130378012940254276207125247205166517509004483412275471613117089325327913277199850780099051952955903234513627322680205134832809331319720483415130839877942978225279899267297996906429397411460172502677710816606474170182662218296025983164667057057848929791211255828750254991993846267979670220642398144122377199872462334666579802541795426377394203134317148060575593755747923471232260201113803419220103045995033506606895618188809362468920044785126602091510849857633186748827982264304783148758446940205117475049489299340898903684683678060041255161086696299979596330897795411712721141635566670551166382455708932931128968998919483884602616957844972039357265095014967742087292080826037131050939206193918473185306909271440274355841391085482252691770586216935909473569312356453537294505389631195712112829951274135689919092026472211365531153749208638477677436895506749908170166164285110797613919641711199703635161358644149758983018549901649164435352444015532838694001964336426450087461468060259450236794019381258300078414964716844545496365652659883813324538627370402647197775523113667002039651238366334425753443733899883099570676660267103984352692317270306712539988579072395672915368594883533442981259111861005015172006893631034313366339036251859424193483886091523767837791898173009112685147974224252670815041923265636265292784605422623271029405821829423860502907722499064328327808039233671508029785373591974629301380758220910712059363316026701085284176234515451218239148809526250747113980404821872383594442313796354332866028389523586770882640326723880136487509316873222588973483571274174598567762649126030755891078175974153521765820667751899275694402151993561280915942292786260802996393920562433372177118301959467664323496547928984119297595567950115657872269769976413602307320811072558393490422055054600725098644805546615301053221842016978269836817312694389585681181746946205205833888706691912991838799909743599280902426953490368684359907926743208710467138089030786257441260495288260905326680317185439158914749683314534893880161079315720328119416220035629633016869676929191128413055539040600769808322352546934446503409299747959936251926559852254700033526990502024707923183616321576386568236249994817047326577971863433716651159279570083824406368256270774237681799353810694856734829916608800526956865147444695782967472795000575746824701921615196267587837310370183408421155841834743280244580656765767134939431877322572121021778437045938093128111712004971639409695706145806330613197615936141442068988191339372993421320686576580193958938725113269270263216363636474214887884962896639765853357594974918286745780726039933157319336094466809434606365459052897196376441216129853787221033090814382304551633533366687840537150190800415246554143078658025217512034602959114596530795581136872050649424775697362487025268314441095742249088203278205642072197219622643214654810378261579133318213618886318371292767087802122930681945649280461914905456380729638536876691342817114745118658958936285223340998302652406383351261437693392403161727434539028613936397376800459080977092279962158447393426932611452626243909523045131629645944580793366390083228407653039668208397964226983604850412271982903475895523488558286989979671786744439800932382980721059447102046959037537274762505221670571561841803697226589028295648030284191472348978967889559299962603222866063326558485780761332775545558259983757323104467668081162256615122170639310011312685020643138785808937025167955974440998933922988535999297403427947318923109042322260444686636218124951878737404334676617427483247349914298071115899534166493211869030471420396939290799181648869048348329699608467991722886520396599320515852406664937696370269240201213599018784322261752696449120568032597355837664461193439268524401784300571445660537646599687276719410553217171343973812750511389442558617861218006374696281529025891157428860430710086032291192868860636241795680204967882951667014772093555890070169899102260779372471560512024944160264183820502246211620885370276528417448662609821618319017652010358594830105789800229882262154651555653392690236707221472577793147379354933926014101189888314974247208414396243502191486480060141188947351777403943204037643386432121894869460801081525183348491453365344078041141663819067904056410807430272047949476701794506417284763753503687977316071861047198563363641488077522350678354621906928564291022259457413517468664830789064559038936191598421508002091229388742855714340357280888025121656982483484562287242002932369078939273592330286240494536099607989771196013813014774395136718297716553927637402081765571634190401970892421330110012544051706268895038688728540024689044328101986640554665452071144739571252404943761867165563792122073605137950686333338612662894053298588946539667396537296131730937827266600025831413849431799250450693679445522636924707258766691630740677744820960238661110660885310119774369191026561348706201766496213183205789459013913678387673776004485462490221465479586246159021966717103079259069832153869793973279743326993838593199810047388289990294344485964020347619180603203688743852404034476016936567241641622413269243367403178128537886216033011333011138910027913262751619334677654575659305833134379337314152030570553994351438937645720008255803710728914431968062415502864993373619708346793527108568280420793170931985002570795168572087583005935042634349868084444052976844025782043703427923836481716693347289126024028705906443864884218163163827914702860915608362942500916621687548600842253236696112048693002904113447997650607533692741319698871842201235925445254134390886798212620551986547385818085910589254711889685989538358568356638006197588712530851614134390743561404085555703653705510290575620393072269892017166809066165143686745958032996667495821079048139323849356274409967203778353899292649861636010307326136807387442694349727625179275644928224951298042293844327686574284949565754044925774518915823716870511198027589561681049175725715955023953591752729120798917366072078797648023780930263730489303329153455141418713576416225035073892827674251775881877697639080331322788238211891664151041073615953883273594387792388743635558201403236048614425258019833623909655929501750938636045876794948066560971716750634420278398524852883717205034692889850803742021674099243258083828295812387811069065484481548672220739733332988205826676339911071783683369884671474415289928391809646716031755505144727524960258519798576050981785436628915451399274216331453459824230484398112136663447210942126533564288851419684032264067099397412765810494387519187638547347745362091057996356515219181328029435459335680026285044062926690531009414853613237735719721991519159497769013680289988950203192948970447577829133738860471953632880096946399798990906787044588011207999095213626922696342683740136264045992579677924189427501638740194040806427442211031036967924365148882700140305128611790848120947764414633815351444249539285104473638002918822623078350284278646029350615840908149205071716281678593364709040023579421297182626130342665488861797487425776630970609945979322102550828263135804603874202071617177441606503704450123933060472241330669248684735311193598121327934310791040279828169335102416655092394775703422466749650898253834916230450192998272999173240848442165658784478332773015472324487953741698540692571798245245958733579910059757190486436774599683811205968351615425317527816449628205944506000916663475010486454673729817487917975562103465401529252596586308845604071768397826564095922852937118255655453274201015491191575825446847245067872746327908827545278661872592275956153622390999054076682258972294985308057165847830630932673045782642456916959726978442441205532519157448933738785268541402883645868963582727503507826420739624326223805060174352302458548832577305559530278566887636936102307661547471294920958824636384327325686295968702714275027264200992642076754492472190807319218196279935834872547906606802788961898779006843810934047369179151132840692831557873090962459288294757567202347961257231903997374077000564672703771860943200581829295332119899606039342834325323869978860348717795386117033549693183531365498859213693577856910924854475345453557076551850385478275667838487396847237236996502493947005284298663278316852801375847197631622448906108939334972482701311964886022070005798404899513486340706332423883598246285616716430754425199598218183380077595691198340172153035095341374279756778021434462601076053644170917337761942985663117332565922530182360902645683080249590369162950772319274791668661403097836655547229698708971284297013675136342218682485599569746342245068643769430211495526613622834255803217074456525999747310711483497911617780778428399120432788948372451201330775834777936709225905871264630339955560903588313330594478066121486050304632422640660929198372739116405107227298485860184109039637598891772590049612822267827080299677750906418197887726428012793163132845868327708157652820139831570810231362239877511632702862212843540064980005586051751802973017241717246716621116029538247917993071279307510851069604140834595024895586702643903943139863730876119009944275593990768386624722123012969981499607718402324682666252163465545834861068912429088386326228024931798248696134182411676728844583330704501673582078770175809065182617139559386314073696732835959653380770830200443575853532840438786500288421957743755121358511573481099029356567693306723428403237686239394944605748472996697202050525766595244797179218263585421269403464188352701545865341293607613336423531447168661806063763483359345075496283861585730772051793272611625173230239055437537399374657658100696020785191455589859864102175051806300908422092912118736503816031846707636699287571184137987732169028356697084233815189572182457626819303025578439198607687723253194262539374507776011180961975384333909163065439456051251768504113920752344579249619108625557545904084943251284434139291703760383932983312234200254654572192989063545746759348214855539192671414858727705852753844410960007595476001918330459506167841760483380545722979809267745592455699744908426258324113873479220959979403640616942866971632499492804566787840382528421142676201838707102733651472784287274123281539235632660319996891121229670789210847186496005330451406741839562369903466494429373395294898367006733983622899598963304867533148606715218796974866003645953178940719250519601017955385387225298627068758543580578107799495659154454651849990404617454295012956818579813761397552095154652416249946943084760262782341768028462893600586618085531137483918361175043945147767616381468602545553731810658907253026295292474973520297540243678168965450866258518745238632978539836602935629439522718342489099324953391050471499487669017656513162470266368386482808610347056215580827743905560209439991448950116190856152930973534366734125590599376498253815698421809109844589972640292071615760070036348274845860381925053249181112825658685851080205308293153216495568753114962594018826520112665460787278267541466456323888304277117253481217154775318022020292715847617376510532530714054072950227252389617275451844804944079813760546766369094886490604313296640899647211215875270710005763388729350994825148171780216540157397306326162791980038763951181073570864859905377604557215609101772854809496115601975414209317015122886961420269362187525623277924515947503713522865506324171351760330245503198002659129225622456166311622435177425590760074894656215233326739241193255298000069973727140138622527008418340165802502693388529633336373222358033377302779624165757957982597469113279635342014046862344543556292799115419126127764380844694286540804588324121131420697270010765912755503226591100443689511294645799117597970893420853364469450323490080326768122158687100185904804032363481131949026786719855983769106905580170447891803978380145482096782556488630573065209527758582791552241535075319257000765672905681185663735668579207693604472064507379174241480277139409105884735249819883016984167689831469706241516838133326450455900695484815527650553256033747363701768337087893501640341925971987346822174322103274652316520177413360349100537672217668826559952348890974372000063004888279986482981306657880069103573409624254340952920695714544974564303443851920672972307127906625443253267779308972627268647092689286624575265838593499468265478402920086478205181806407835469011814651018940558827021422831394988103200038816830624339931232917374313617846211193695658300294378725015105117909494475372654506303829892304710754353059282989714932838596355583939585375908585799835486176896113249538542499064577838372658798749897467748174575344466188410579417267276324080488020160953982364081565902122268285659447969122910757944719956007008415830033617544706260929003247966486289697089934032190919373905264884618785880914204454101074025329775650429377568497960512264553756048239885184625049176895956494370388671939096397120709966234384507544187293998614727495320430530416732117160287275884228485723568463378240555579655762766215600409421047343969577768413576039127004923104555606755452890446858232945015661744841598492921146987208350737749626766623456750481650168038020633756101289586248509246176392565657987617079770241923000773266148540711294311087174691879456903135792789083767491549592243771366552896445766555337077387628021343959856474332856601966259893608631848885345725741436560983168805958299905697040848935186602821927511156377429738584790909833196859927137993153226456412480840026583376582633700159091283499733376452049367896329648086130852521281108350166132140747242953000032868100496821618091039745807585535080475411231129786453910286577900134457657396794035096764383161721931081259723957037587927564446211801919925576564856725272649574401069739334487385838316286082343218219961424138675650112024747414608032980451782836731918261498935758631387633439474772832544639060997858100253212908934606111396477376260550938010292035599046330562834194207644670442108815588624621466039283417392401033221526875292010670615512909733802437590666030959938741184476327050669331549995186439188408962666698532469760714042257639151256024333518138303534530989875388219971139966672540828346044627016490550704966080343992947131339718509763758938230481037094115647232513105691577173385839525916126469672537156775061854986280151042312427845348035756653505125145795108873582964232235326657429416308203178194251512796086130613951899030539141958358501663999592825057241003884859626359620742764120192212122956098815540832914421102711863037742913634490298056668173983184592972108443327878286986465017956307257974110290806317772313309891293268479827594435438743717170186032914533140160714594236418537480954949968034128897085359417443790988293691933019475976997110042337981026594811476370777162244823019549005913049668923718562764652238082668739593893875818240626976814331160463265095892592147882888383033250621087727127647522926907591621994782188431914353642213162912712228563580516581225432274269810854014999841948687728164938139415019562077231799618709187579307631679980892412282967031318236652540843752980779504841932497241920297547927740883580973682450720832286300500089645027673544392707093808974921831328564867470797358615965733643130123289123216968558030169203430748295439667358478837554380901551884299133893784057824856169444816804984978050628702669420007985223253240482508781007492340908552885225271509053316816618299533786263256841757070317070943337388785715898117288257995316709499325115362814096102606347621427781058320074213277187208858893697462780534436674381935091982713253688743407683286594805059537923679733479760164086255374003604928803552434608782309909219521654422875754976196847598359008865451648532792305546230260525844063551988723023745108387874957198807046990691851632959927680277742671694000255658689523672613632687554358537218553672404042048288026493850836841050833863524673925345945548696838035212117345116341008062569310473248811301356704918224222000450901236634153889097564697729418367066588331808570992470785384347591508800542396489715523128430343384761998049437471109454597417281280472526581456580986875226788597424359980342754991730692549503400914461646891522639461331629192159125405030749081582522362731497025458299157474283753082878898317099337587706273458114415186457465835862306228321189521739495940719441555062712885828958009052967027875161380143316837374324263057112895394998678464754572133964056755206607327003468096976686288176036035624316815688382264728391902731862015976784094579120976080843141691747083563333868286990752161438298637950869354993286941580243714691069787580756190182543271926999752370485988837294149602727673624935303037016367605753412650347057393567589999341187535612951051260581435648864820576249901770785218614444400145315750939341104629628772100153725486650630087544224800628407514654080000812824714676165623173979485168620528715356845266998793345192530836369742304359236577406671053530359057364055985512944337118404951939905568427233920923597155149304384485678667786441134063323800534208601611852462874544887963781247070625099902853800257884056032661585002914592253804630927776328991444562679852165236070167853783495769632992088524651133896030408364502807566557679877355085831368481385276475636145094645313621874700810451124576384072319984508513633557626957044874236839706097044661764990816576184341540720104645283478663246523994838685222240767774111762387440471431745864102268943470161135718079619359609293166148946821445106207266686173602876072285930561282538160851572464690442116720040231998631824134249177748178167249521850819087688518478944938674954479495946280520576267298309749428028312214833319990342082672545734270314520847364145768019148781991999908427166948268667603414542664366159154124033385040861921168270190270795856418936834874827725125775073125649498547260004026262131447810610788685058126525990679201670160212755485677057874444798217406647286877090883464892886187510522921946071713018165907974439428058201887246114236429092276342381210184839058549594745919640889889493942680783840258472713935390170865089916798424795812166990032038051488770768422394112660049473092544966826202328086065565007381495624097272325811369795491489635052305770538940477699935696826096930998097426082400505006798791697334476199346647139950842461003481290345263128533702022395131612263618945161161525726722939708534564922070480889067423756249555156307869941975528179987685817171002958424312387486130459866290435064623739020429353862563049545688049294193458181334686269597940380235941578688610333923213740835043952604961785679070166886078284874427160962386016689243440340120560940256413741623068008250574484859889260668924739780497220535580533531440767748197843169854711773287746473192625133898281855540341383601923046951769663773865244371358856953737796104296816097147379359821506862149185234808394716943409498221101872397589948534442779317485676168047061192608717349320766749539220470763626333104116715743840579409499485195435621193464159821358081039394188924528191968397451179548354412642475603934495790325569848778477095228209679765517183467502273675493773221874775084746230943374210295315632049894091981543731685004541977734160002270396700653331748066364362712269273287621812229495532241695501318294403873943322773850521331839225327506654587809503076638836590836727922742280499803499747033885120065194337942684683654122884890043175840545560002762426696302593446174820998959017430653913882550742877157801759729866148535270279650008789702809434646663611593250922877685920993972025172632892689975029386344143106165866076847988229604023147033796854172195413187662382548581970447231199388188982609152333267759600293048541584508434040751695611370037202152250567413030084457281186124074755451077586595950905949551506682703133465972730919931937473929037838107056944594062603670790207756582626021993300835249021912339606344738562240881958202882718053561386875944350126151534106624095090224507525403244203076099301312942611495125355530848198984816639766514710876665440582495384131292894614657337593012356690722277905497183371411496743846226457194018324904794863642142163772573501694164476365403406183860599115715287450424236813165641901679881627241323402683545323453486212753544048011407985825552552727474873786545410795821961877421848767127168713567277703630446224984978945891111045228868547629224091938075896023232964274904767186339643917789111821073542204305588269202946585480234553193643357295715533497128750254208199933683435033403365641473491474684191574728688504214597696752116008357479524353086310961401933153159183112915969830250207621712895829083063395129330139235979619153736645408332866806325747199965744287107181605285945097557344029264662156752565481184468831040962176574021809788067324172184062249276534456273203706589824633430000919450791939620888566886808486821988585989109486065061851542442892480185216189126397363724012605622940522101028869049047963974103447257113809491398992273132108485632893802860727544692364345361698115157293634151951646048950399394037479379087637981868134423462760480809579528616408285664464515450602276976314340972721246387335204395491523647020378956976646161156555500622422724095045199198720079739368577511908853026784142105707188063340976107565479127739335280673900619284055251683472522341595583571889949881109733528679226514406041811257408003041042214666862207162344372116138078378345200716635317471323281693664985414759452574034981116546215621334306766987916107470346170025241134587289410209672180497735308478630879821698814493821146335426409274285570639919923153547175818961420489620240598803992753672746480498065332288404503624607027437666424614779237347657308584161315307339936233507344296571054932581435706237496351946435085707793184134264386938348114433571885216655801947204541849423707414881502226937233610704638743131160384518941053838457168549502575771828731129213005848770419121174837289913510198364611740724201106945138938467670405973032630792083988214957735557778897660508181316845414137207046932409171129469167546121523885757414817211307064693692145965527514650911960705666403173837767324864211336695371391023662421229175056736417995477139061888693702696520498924559869851932636216134517293493829947196526996830422218943102179331576934175127170688670120374094152089350214403859508688432729385141169652983593515014373191257451806056380912281569189872422285721655933311343156508240545183770800180218251198469201231308744808371867924520131266825065414428897255431676660688749190166165954676426004843738565122398699831583507685714144351473437092909051370982798224647069499337534483717812476492755097723973647386679576950074817253074220377600168891593879097000394308649670742046206695739965314585947284370414939581814508735533291135875791339840027554254343639798946984211996153602691482061621698795119769789048998759608685274857369492136343190934331147551984717033422364572233766392946662889915629083421552680303275777988035530403179238330666782588730955673163952395628058702099511461151147373403165936685588922757956570428328567514700061563445131983139177921662901380344511192673871178578182508661702586889700763463608894102747241016960998941131314588176186632294995169572249473167413132455343063778676776327777172221995169879922552863554886793259377329520947479241044525604934917609555425975145850159282293402733867534182178941775466350874466545466885198892468022869901130655945900924899686704230849599775361268429904641427966541954420961967404283912792738535911102980589678890350165476144406696655051158610612204576300451007038689085494477928723693352688867345675675318777016559284267407150053656882060586731528571365181740531468242501825625890633638465716130778945098863827616564761926108821142339550788142498368636433985520465655862597641611005545326054104802885723709850617625630728368849835876382992265846932171209636739745823470716637330324695328640910606612472034854593775153497564903877725258288014531970967895162385043929713140548263975910034167064413222679739234107035924813150895187369249902416817878817149170076802397484563368038375492718166600802967519827478569831371216939308458357843869590670351967616224097129359612155226601277712862077281504215733676624536512616833731724703027250791151276484001166307912582838605385612130758519556720347931327703659969058437889712523339501336393818134109384291667975353181093356234500943247034531105633367971584520625797480454155916850790672479139765408277408777006641597773508276540592395407270168098241764420762719187159510520100794378151010080687663483392760921428289853073560813540708818278242425851484492299422161390482431245020466084729186483637692851587258871402129360881679955206550958566109854017485265940861797777124959456389507282659497793129978329849501307924763676931615516376105984088858939935447034748595773694859065050999001645536001458321034718066292831373059380510868110814775737555110493839299373907542724593261464560578940254289366817537316944249491911394142172874565382590730202382435220817409732994610241041166886119883743836466765376225340396123330181101182452030527738535226695715840022081280350030908774206904513809189403120153651277833339897194562518603149097357437781734538173311176627553330471448456546588887344529125064759097218184203251712436564036165678490576345298316993539557061914518959149158962102982131478874203133410434864010759701725725941801877225786201994849415791597064921433231476978361434708498093284174677623783656132428726918934466118320753102368869502067633424414946576991278647894775013157390981040145559275181632649687029735378973784887670814818579281188403077934406634647678832049626606061443519722276373275135345633523829901101963089932001504496148612848069430881967022826332310795127251539604127041682976595013078355026348919290164591316140056734471862096542638687399800519373367293758945536619496199477241290899063461210049902372100363056109587505390799410263078230348795812119319452628856133813437847854617944932296150339197696212521899150405669217014866851301365773672452359321967671057920534973682675162257900151592595525525175478276678312956640138309909563027863246817981120534166870903462210733491631609610823914173350582265405947799125297552810583316586211862179765357013151686717654601305899039573235649908964411670935447398230046420652250743661236207100431858537369891636503399021287411912716218700431371878061021762286567799055120879539832524790405711867086566720917668857207767440481776664170426547471290492851543088656572912184873248434686657428574760383767596818174385466699473921670715468173501527613504272617091953647574474770957417864832674291817747157099954635094992225734640083050713546637307363815565572963026451959372563020580775874965564177806916455586290453520818359463252256511067550982822462655146903079865272476701678968106102637045608465059408833235849001213732101821366525226444917954592980781832371286546248521068601385312427344684069574686943746692816088290339533842383009750005291253802754878116192792206838951391600255715662893922763993672356451214050850724561462860089542448422098733402396578685038669442402132806267916099570177856573073465588770217759749344970971791607043935961705473912928969572325680413232645745411319513191965158817991886691146754133821067955138268647078715471976820377358183058925429724211298660810350577098746105014985625738577529510518761578218655135499637692915231643873892082960532103782187755082372566771507040648704191513259953806229969391762464494522576120385749867995950806138972692764578388756090472638132001003301408058807635551562575908777882542434688987525190154749954943937224267349819066156696549104036681971446109972488012510903306248748671455537794747357857414544151477943227133289815969249684099118194285023134089164250743943444716103980935189213983244322956954357996192689246038623900121609710803275877421829683314936250695741522390585315797870572126118442378792294040913563704713555516875118202161940006567581702490596232202499313040163426778333621885030327280153388099807742198628482191483711735924079876627698099207317708221674022279739301954531840538158576477124141368838597282141909119844740751419635289029418660444668213322603028082896777865968965126470684892230842413469805156214303887711027108435928680810195834914626854366319198355543352306664430144126109379468688228981233200587543666321523430330049527908634491628188883156393821748500629594060137914560666089705391285715448819035752622600800361894531577874875514400108852195735659381809405414838961648555772573768587696793576311100802529272068958899283491858909468895230812315512695654945628092361583959680044758779949225720994450297909240774983166296263168157162619585607044973447945486017831315346528694489959093340553370526623102066733036416059788452693302416923218850331743084815456390940298488904863433586129944469784925490563236236415476615317529859122151480280681322156745315692359930812578130073651694211280997726472549432834004200610616847475219017146462992626206259941152823568687378271925302971217083762939238819383514556275220050546076307911664958395771929989714657418608624549673428123110998088876091902145950885332357021626254279097272998863893360217149004580845077414525361890053386649124129561213406471800518279581904654967710967532406987569404065881145454360052643016387006693585141987194676200829514192889777515006167548472282903082380166225008614264716539771912989263303460746703549328208142684312978818684356093924433869802418799768166025112810103516062355745441691234615339157571714698832669309330880405371553197635078835053630802687422757878448321453611676433192251479902350615189267687814644255983307769041317619157170059147994378146030127278791731814392279408390358316057030182396507875416696257610540804725834407392297421890449683543216409289253060865558960502621623618660287184794842267360734288362238931418530928077195704352875368261038162500130102417797003401347522720702577096955975064212417632562284729717262803306671667386681499382327680118885894259262614276972344375031386936902334250952654727361653284051524979958223363488437430336211479294039748355179091669716488470370751378854342245795612124346886018603202123803321244851323182138150090758654614348656951242632323982925992621565168633108083305338278606940871285145242754742839306259824092222882720793913713210942269038024934694586543611899802731136393320709015823343025192592490367182234993258971797037727858809531724349358749326021917637228654092082665332581385542292891158323349854811610146505962821754370341964909414345707327326601391340691928057614606794548576507781844736072350569089145876906260980960452285851835234137451786820493099708918788448730199292045180785268316323888197635779175786465384968155577165730755960051882957978044817233527462499621862980555206398535615505043879369731483761521094305669073261237877666024795145058966082777875791336846379240605455732237728576743721568180353458327434616998801759704535806334303233231189276614249129503394928386780249414406995088197091794961965264202460656350799720977905599012449805590021781003240303798653243394359190768071347540867927871634809513875562325450307214541328910807892416229110553119836880892791000549376998218607224899789517101527977326903384461818227221057052476331800720713171666382688177436891265639998493999925240730661229319863041658763944607764075668340447054904711050127491917486612931196714751540859073359393890142902722481139348551010636753563640355276395615433389121156808081995071199231573388491647196934056489137868377626318944921047668764033043018061505227479742974788547233393418797452022000705932657518045169404808123537379733327566211217408863205133137486333622066499928376516539495028350230759300055298444055677098520614024731974000542096858421393286460179325309646324237794564529756990765139657636815967634429348789951738000608052743746677359878397136016907026376277737519111435846021983943619849291341252323740346331146390244349149673562936504818727736419598271169922036011678862112041168961397495141471961645424410676885098609316104826511835505566809410365063636039839217416006126582791478272522784927266718861821796375005706470881628439025589452916085011593213327036495650836150844070644111940264355822699117645107932750932197688831549414926501869123803523106161767516282185523225915699171181958614290630498764087887269725807388260536041950396555054089167833508809699946825525282209136369425586870588821845598900192699838764383462064593580046191057836719113832626500710380847117991765969856141147569404176378751261685981414876946910563808729094074343911110721463861745153930703098335776479374449838546336097345754141881186300377401082285689402526015124585346844883654149061387856498727438010894763138542207903409606004719277239879673913049778621844230538983937213120507266092525862332466724368668324874125146798517558440231644726346741586626156890465130034447814174260935945370486837185401560830537253324608868973439456026058638693628362191244625256737840533385400556173586802988897469904042177324052668566154946220047237275372140992392707249944755718002621321877866639000395209132825295012789941989355361942419613298684706886407397148711719443639724557146355124817071786827708856707567562922361232781855825282346241999876439144579755708141144068782991378136240176677610838212273202123727965534658064367341520100696159349549115745835015109233408323649525830011707422205640004832297572187573717844699984450713625430397962199016409861802842102286499710796159124358273368304220170223790511278347648293459606743507180784974092683732316613626995096792821450147076183457346995172426585227752777428796597315726646291680178984803243150588237229666172455591021296636125227747130134465652136772545045611011660115861544931125381320655875372451088703128731612299015060287323645714641404578835060710471485994658815570746788742469919073347350440487695373675252691344158241866698033706981182178425966850800929351632124491205186463520477256048754208804763147126978481658411457201353717774185650278096833750945871373685483393510153938841417838766224594104476987194244477388448132996003790896807589768518600401522407402776000181128376906269412470941486761361195229627818544046475111638611884188537815912492659211932241940811201196203679954046565660471277780903428129114805268989082663091239022947424687903433525934305456748494360663663594770889167504956648531559026140332812330206576422667273513398866834049456314590033859132887001892301917874456680319244363173292825260009499699696885804953020060466636381510674625808136051737829773248295364710940625787333462183204314044969715559579149312813864041249232311754572279738679040121505137554479000921052258242634662426499053806815336452909188026369361414583067941623837397472265320437459349035945196933320741692282352382160762416674610527735808077283077578436771473765219552866964406395238842418248730084490146794290001106554471824421115005982331953453195900252913072297647835625886099238157965151367349702481282632661673840479829665241688273279362608121891000780450298620777882574968410779373933362252760946118478010599364981598246744717553678430786271450988472773753456837975001933027361583258722290490923623319521302409846891582791139321005148241818056188568512153058356438420844231997749012053376586373121404990515248340597908960820807770319453723374247731252446500381897509172625353213780997804765417900815773092539789148554516535337112790516464984748884293000917891159901020373034227541584039004153590974818851017451956568676653987800709713015169712825024504219638924632955968938993808767289529985368207758658073405175942588882965572810514424288493208856737985102747291526593753306029328142540273234194018115531028542584557893154872480008957086343568277534619944352876390265105747910864246920118853664115899731783177530967370319341695691992343837200089667659579615598191848815078820994122166578944560207145348275144530047301775440893210332205371729025010888549300671947965292333631943445744123134851456153962690229529286828591841193776531527158816431137432945821919312932040049571817690785194391931616135035997898692595795543244122375113497148371764890346505509994206989412635912315320541418309434173602671900792374070058645076707944687569023592708337829301477199205975675930941472776664931282154417709124811561858884921059641150531802048107638881169713052853187073356009569083902659860534645336846377036889591063082598453778468322907871952936987371370744584858715155479816017009420994669694176652595535329891784791900476841215867870266567102949836636211513836772697739829315391287767523278594607026616720397833420836618761122868998902987116934338978075385183078885495508245188579708988769967683405077276028541759540188744084443481478778660466450391743016647754300143765567123177003557807250686574371247073540484250453254791456862636572573494972405891585737683762272995117017656355709532568941610950670518749517001525105989939694416957233291976164367468359531005456586328572371658012898282094860216537860291998246152401610990145290730520743735563858990982925242723324781245622284394660049642085362157360733058273494501657190038496629052202418464222019416122961865241017073246641510644692738247942244259353127484693948534964266977031271958166583937650133043698506550296238112095292194232983608341394007926965026118957676562444580890706047681958200608275965268479104446225421179426734252883186278378168013294748937305989379921291616532211364626542546966516219422723641072855833844993319930608656820427000515287530866958907549531608383547396100031831447072503564380049060832495627808962521377320881299290670843193824579570737930101112559907174756372364041908543463711666923785208137458121012709665325450594082741450964942943256782098084460584438559615419709323275092372583438963436533944456865544337932359555637129605392155863948823116487611897800411287912867270602292427008524454967837701634600003544024549783785284184833939378258725041277880146414553620885862028276380999507884872957116252509914730044670592075561696938094140166327844995570478676160193357720227392571677817668287010338971124982685853470962001057478613126368323993157460115197654364873753261181005531879610455343402769365695202814831196696152929121431310685014819925283118395638638752428000789839641442889402284576822910964593415762105234322639564321785086181093967404581764265870707818778128942474327006422566246053557317556880931247357703126644058111646097887198400007918609722871404317604295462680125628167074070907585573978806201619338741598698516760038217309095799941872908217193021116487667002534477587591676472076278595744154494716308146413485593162375377640688531990977360868574778702646347128068861410769830694383913356218937804739234417522671141864032971254393715042611192157771632732451493887127323712161658582127291178795608174523824740616888859565772164601342960973036485052083604563611991548623898253640587930711421834507866095154500901242598118571140823266220211680236750361720400358420503569360552229930752205961058492028757623914751926637159861031681189146123540410198610694398225036038243776033340205193689698784858009724434660627713674681089728391959151519725092438263027598887867977105612997810577877774066829415505100648503296086258576791568755218064006731388926240318917392257516166099076987420112783409845220011825252272628168654636772050647143129447425718247780566491242774127230808002094582851514188585527973380472100914977577117563251116913806248260829034282083441485635550271637644570455892017125479391957186739830165911271633176758184127520269363800742704671994500260095353598762500616288381807151543417408679217892167289556218735353278648622396174875118634154003723232259563588093439846951633123274760985748274595647368949032895900517174186433155823540530768529870956040272427019830648529175308943916763723270358651576094509351241044294908728191893725394142545142917634189729016861439842173324592287822574383947601016172154036869891139468496033890508755066490991738531737750608326736781327648550254040374455765779229807787714736454164854639984487612685621099098217375874415436680005162097082561915578205626518985093366220988675866458302689944650222129457447868989767479034301087906033709865685272482396068166625810271713595247135194877712893982958604872863941469697878319277023790139755084706524563111709841949168204403704054580301534372247111757227284010074017232522535728190660594919690490184272205317858725283255198763792766239026515093965635449246544116821449407475584083074180957215635492464384993979146754366921937294943777904305183074213307709449873456124168197610876610129600381972142458629553110469397081715158230983846937491369833044694370800614189632895534270400139348067079469022460769587457916702728845131385374988764694036774819479987137442452132983695091892424360966742339085033859980288634544264781627835262350699745331243900144504825172106366889182587057129492922311507192789118428574355075176942435105239434751460171766690967588274215235558184109103188283159129846100643718886056959194709095158045831015589095224813080431320326285284331255010651792823146926707240022406730395061703613555816193523924591187551043560186234185414606495264112250800760689503392833885815509593661698344658627281890716216534243244102051033620156360276010780789519025938149480724098864438986948432687012229183484020814670409864624531347797205762058885498758469828245327785755529746281654588616785356645676127873244385858037114225353161556081821061967058877260853822411917309814265575003044846937162255205335035322389589676465857165273466113801049139461263160213733416372071687325334915122749374507616236215499578523858330296467774764819993528793405691170265206863193370759963418754255498571142206698185969840618126135060199489695408417682133332150521174417227167334158889727540219852325937834486589941601358630592639408095962161508568704767863161237374723142231012942828682571489272859853549731194138632572288556347664683557165698616392413907098514534541238875670925799530903403472838318603251014565268313277872136760424706680185601755989654766371090976146266228139029126530219741731907829664164450413612705471002391110573211690301960908176443422306515349228728374931363125726658084736265292301616954020492056814702702714317851058299271998726219727533311959294971169597013865455486392844803273389691685731873974130424328329320134180072278795710472933554332045617039638263002610188750313168442087386046630335915491038243869352260247139423151383981981229696814858545437305724493680177091682342876375686438627950114624329283285491905633432148191249637544096282576918570438983176009044309079965043430267020608445059105072810530967330781030474546294680472975712443012313080641122051905870640845710205320110253996259581637978012123293343582797908463032826115019283301932981994410496477038789921338456431951394971178835172464012214178197621007195616359917672543151901318484596249900051389247023279433601037570404319595408399679024612286554927281023872207898320088769419428204853903307358130380970806726210998692251075282465502558599371218094168053081482789431128540930259977454846948235157607458366231687117886480245259951055510885047027607407052524095640580705701673244415351266047000477174448527550402791965050018050257192833205189711476280348815760926049342993062457963283525565834192495470790052697517626383980752520218540496978295043583926735327283978251376012489527404017726649188156206280844195412472220220903384995775094827927339904960306002133716741196026892430512196371059536307185920153899444039278389789642509807788424776315073135756880600184370788600067958656472089437622331096339567716785263253106396885786514007439107503313263421896489594697987835035283921978839652524761455358106102241540855553125098982898157376252735750202773066839873719172335038472761809454636544128695565148749368840535313078851232659129541723302211286762190002925664257426392671265004047684563890324489906481782930817163856803212523963234699516970308745948103673548613770274873938643479197793597178119262407763342597842635022749589248448967736049315513627011145342409703449910267708048005533077462205744270322036734067612550713626857283230886763774574977967049814407428958742798054460141232532891177638136482415920709047292385158252357768556505365992848170134885560183536798674333552713828625507491179480600286191461566522509811949971352153566542643877312976158305801645658381216205649088756623582454191307539667192644828414615362667887674076692996829588626945396694766946198625502221907251991501123830282953201388508965367954332048192798496854072890538828551691492600965824773584009034396907333520266129069676900442966161882814478945026717068037502689306289571825943650154540622526084067875506193365742290341789952306065774445029522824940963008030764512586929788366361197072442211401506636593621208041447720097604096129299418260896710587370452470439319982310472404485780533231359395288580712085231543479731219881346857303608237462772001962791442860176629870947398644911772123696243325008788718707608756282613182411633961012870492418625647350458228504800046423075707413795545034743714283114670736108149498741391861379336696913631858051436270236539862106581620930679947943392981346556276857599535345157666283719338468456978191505462788744490385410011866692770311585739368181249111848704426322460635384580073391153047545524964936908796868461655108340943177920336218045227477387716780601773317415157532769079395966532925701045394542008612087182725956316047186731525717246267676043651583310098228612028347085347971988043819925281138435758284911781301838135479420682429221450753239150509152142792365973519180153158067089562007566586202698710652492837480691553071990387065950918458011851012791187859508531700455125296737208376901780447923685931106103995103292106496392535989320065750137530185475989115771728049545795445555739571017854468755966927980072533523893223907807979186049908826542049265176003455693926442313932993958621991385495504659700442282409248962462777783187866474305394947807669499311201808845682431080716026250475331225931858647268729996412651270408826603908033539171371513441009382233023550846857863324212977391394014721147688935953393990375504006520335143671183853454220063824204237560416377003481696971749147927453980592858881359688769137309145335464232627257243320537822204917999858567041470542411764928347295635175938213936321986281493364033341725689854385831848737593896369535090059844877466447409851363310121100053783951788434090905786167866626415034094368730373586873080393652488414466140789972812393296577700486103622199639655850650348476314862331445010605307686451852317986082903854732364300809561297445857588257427757616442567740126034187773639058926105641145273273777749415241424498530850792535578702890381699607444966707534766045451740100927037428977813733340119383895687414424277173702990140609498888478015426720151594796704191159845690827284813449859984666805753186861657174148844604121486612745438177814290816571139667787585790579749596984083024312384075995224599618649440750018200877786133680069018676199849278881557677208338967068659327904817942551117402363400143946526757602011739267551156149975394547668367714393492693023826044068070388401087290287751475355043544722640466015061524279350800851867846346569396973947750163956838370459845568440945028286828520514560763637092796637738423505142280243915599929137253641029555946736890480396844531149756417611610410921743797546595361856809843704518921509842718154947127196979656477618367763763595703721209273509659663098730704206751366259792206841890367048191180060773168931705522737909922025731081215227267697966408752703189941562607867521731235770309715133114353505928618463926835869357375820820851760961072189207021937613970804432453533190809897031841188385831115072057558788867893141593301118606998437930880322845206464298100373423827127733968532519706539577499054481991495175835388587385446938173527340828215009718466260594005479616552832996901579306441085346412428479192085953680113492408303470850584312079294746863483441467461341834796513145594448913904010014808831849173201290469030730210669699974113854796497634332965493827453325426580227783045601674036347199429115254153668543980022891907934805431560004961568846007603696424905218414642982188174943530898072693113732209477504783866049295537580112625507036592748979120365999478287783772635869451502793212845504461560758123304780057394475601723241676807860525379750897283462228246607822889337811402214417430753951235848127553540696644803039708264552973124508396460051687284666230708232080199776660101195001307772000057008187313009746074109955892661504551009566089002814655637075739719103948386050896386199568692140774458943371718772297464663196828014568532513785346150890096811029035570987310504677475349402599517073845643342436441818982024653737817773211634907680282953720800075473236735777668648456733174855530976461972111866562475996600020825395368200831715638997309385888822728119170737008928100790712497207741138410470886603887578162873531702645866269261283230477884204151606060887976891129691295456023985542134858613781961965034898882950310289888087744742448140513684185325714764306531898375659877149789477412464672536897170415877258347610736399954229933464006068730059467805952977934644927266595699904547867605361672583151632232008127436367265148313246151381287553739358455447966810286091443511898566598343567873611317843009787259432318367488411886549503792996209994569548428449898990913479931640284087725439599856677858129407478753863098626761786589401751466940115649998970748436324600662121820969868509431361635829244235499063317946378994593587453801717179256816246836538985140346026944747880318577810291495559501784576873503778591828021884385411456421190293036453183777574940422676785386215374922658800074121559042251669702707900043096184998975437375816372338604618548959395582111904369625052483742297898154420367978913926795818488819202037023917085089619189577369786335614762112217894202611106377384655895163284766185835666533232882140739960361072840183920240964652504047014129281422193231642572652715464534666771589109518658617588506149114397151253416774155057908146478123760550440274404961304160021615087261306823267220515250481449005412530031097766132618274168742080942474343944351609586528282237023654000777482538443779890410569054112392509020270507743955218244071716299599051251212714825334850255496600927159509516049236491328766084021791664022007100459489686614417281374496828013130476453802083044562400724180411350981070029172933308108560737887358616089716122559511899648465451115353224167921054591903116599009560402428395273107373673369322249760717038199089147402957542870411539312818867991482147873880901912224920364678725188227668412696075120062283168787454648426936970638626320177539429661975524226491384756436670103725055505274963590692345812055571240813767812717841998383901422275060195491812913245682161558108260521483598653813608825001512594348267731130639284149334986761916766230243944029762671637389373361358482033919705027171960967618258088726508679049335255791151323439936058238253150475896661126363965983850035726913373052551772794390546783083880420008119859621964214537757819736475523072873967529144616204538546203092163289254197916760159713698630382433934554754291827775693075446799986745007429260598069874945269141913254694473793406714780823493467386972408899964904627992764129716085499494216010249929545941758492838617508935597860565060292270084020514949807527226383190964162441674426543256813198019179548007327030764634367426782709817195781432892230211212037978820132355970721287353356461766349711007085189117142766300830901345180620426176294294515259554851656935203811092172729157332065318040949147505586758782026610353972412027782189023569805273908195528930359789865127703809546748665066526354359706472637500830608733035431097928112834731080733308495056512957893895442962755054203018304493515852337992313587136753870044104516117635705372351162149767304050321927823329488923591822723841720356924272176527280639643606012350878304186683524590342974994168464647590747605980704397500604921977952234712271966821813862279429547775817394232268244808311478317001041518630371117879229243566305722711972004580156048759578359742877600027578387764466363660213061756580730517916359726271875907310896738990991669711521869639114225910599108097439481828577390664542853769185510257650219840492553439399674006287179371831476329889245281801734890828085443898144329266844316610832179291809443573374394122657172955400733856999134835065687025285668290659151866764318372564932239544340496190416511532657803328978207045308751261758669693897028455505475843604150112267465169296320962907735449245201367087485463850557514882050427494423930888519057870906484723880667640584520146885237533825768139379023873764482417939216679392804200134365618896585928988808532206550666154377125743348272905375154041929574350352550069307541264717074461914950863609520392780848369386056762176040382665937869576199123487711921465101235999831355023228034015032199836923846183144749997105572894889361182019703796127217316528708208011154334610085772923686443096593705065789200197924192014833481295158665707302647569362540288639036237844427700060430901336505047647075798100154652033049615877765286048610778655314030258937525987366564971379316347770194434867330765537916128561447998696730181952375681116265967411719079489353952015353434605489941233401110792796357207987007121203391986396807197313818646873749652454669888662963728582850564992822746471177243863575323566797405736845999294086768105384925382253306968791159228279691607275039802934765823043999891768403883223579391182194968413121206274752190457232918981906103081239777937695923577033665972060351889119928448729591930749364280496354742238770763091637153144071643103165557958803817238131336979612103177569247716063102819390501850856434850800895438297479798798232929964178214930183062620558498223286317304488458260441884938290459743839963256288699326240071229419711650368147548686106968646072008845171455033220737499946413837456413752623810352299854195345377753261930570311435847335155114398829227243895916714433286483438029879258920092408823563825750181785367635199553781192926534413837170238072379865903928255989990111872125346209620061787384471386337434749410412536045066941318622956444599846881592027597499267939859763116862447582599670975576313253015457228100601270795656403980095169349193719381710242297426078544115730864004977938087551021507799422041449839819326080143132312764123128247001736354228329029876105409580250280041312030445796895105886238279119145639120111543275010147265744057289206416557327466026521781876783079466083851108937860653272493999898904543819274819665809044849184336059847507355705887411049095582726855916653995753783178041768600474583163478514809761230858539462505760271677998819058312956823672099165085753677326730485121512443864199228479115819280250905652850212221703837322219588555869117712275845818959663369929382760660535502127029529970116345841611938425282300673456689494088794621900524737912518194100557468030050920506959492366134000216037127436318886372761334913060681316005114215993558219062915230373549208555300783925899339065550215877957079027128092908807758701589864197788922031719380304013920414372098511188384036029606093046566540549248701875180480421711213606356092875673422974989076436454958799732389262853164475473030627835087070916046555894223255949664178999002077108648003968016764230960887576439090005335345002531237159206806300625102520128068187658527118336104308873908442298158060101214886409558212330220398382027086279688073477452792077174472214428658608023744382916152840978200908446143531762789512010674338349545630957123808104958259188277396945590375899496465185697427248777452091143434093989797290187187405807629538482253942655120147311994102554332788404883885566398284044206835000545494240250232055189539909888102927516982944856191900359175071625790565353481972821979519826158586267855033860636876934910301616589105351563914342364238414257199473519537318778545525420560221395162152350963122193989228727089713046789362040606607389977422849117576013563079509129556837803240988465231998452026937062862053702904030259934975592246468245390214499701270081556813130772345033002780011203727686186536215421966768163629722378513275850364241414831862504807396590067095191918138889869794016106438707574675052838607300372796075542701829737163278860386239323901506795791550213330395014948469356371461849566648903718953958471741964058594493692722413606730697284096654131932274571267287315074469659713597568056211931226445345195195495646203512291271998577154913980279448534760640222919495850921510119105125389217942747145724993169659863371257388484055948349111059910141930388495920973252092410396579932945064138424437754191219859677981954717637065972221577453618856429787970775867664423846263370580143023362026826756887351775994931223656085741454634292722654188993298956694970571883121100435589025104214103343410775028024783703459256997761243497218105046407841514540516098860689992619637324086724177701242966948440251795162724425054300181201534442658787079368528444361612350933585265466827759220336439122819402277806038466814331103187329748758095431947965790601514537374298977994380453675098256338854768090878576865386521583761008798277836689204341903641650388490220666924603396048921279052204535841760359977406047426638503528583624324177611178230029034690536281033698341817163118395799126684365698566722331359929189562986038194430422292908989107651554187613964409175546638202021830612594379454788686509790047911455784279092886006753321052034528953268349332233070084952657189476814436614520213355699308587859388713657480734002270230649352937571058339665086469795629171887227675386186803087345366181324654210552554018969286103928531250458205314174387852385772609154619079564434950458541945332104427031527989647114047868724287961708159588655894567791208633691409314804413702776082082469658465122885926162800989218470296828783976653307659232285440625530884552023871758693717979770561265145781271573838818433386172685851779018918979771511741196103974746430771087582761611455435118579417414280968967042229097460908569529816906378591755215074474553602694298267318318381909977612840608405130179190439019556576701984747441005063966119353103976884510195445946030166928888635698693244222051837942752109746617211334917502035154628079436339089051722753126789624339920694213320482861109842802420543556072154715621909071327534613977155935588375039715643022463961331257031889268384343567794684230887318619582974636023006928861038826106542739573344457728875992013939142024125122104548685008611411371211180888928711079259748872164278213821060439074365953733843131322128075371902224574478404203202641004417945886193080299383357756911679309287103027697077347942863189227400500598026799825404439703027483270272620152505341657629666647882648603119715614552478331108865520945978945948152536514120677055069658213119416959604695972297025726499196778917818999807367723255134839262339820283045017650178255833302241664138384257181831874877525388652344817076714640086771089431995504369867507433056289026932570331025405988669910686076426470168966943265236903400491007085521995182328383437458996277954142105724271212479782504859848937902000819483906278011594822668905451299781464015167005603690429411921874373049656911909864617951145605491776962029602837043588621492301318254896337245203033928448748903867545622879577168563596613749400320092920472642678467354029295543914181027633117026910455859935344002744458925083761968005025595906389384582989924391775619195864175137981203128366241585227212985743652188153062510663454081359911303543051767329736852849767005306027293015793289497931615277285800791172202673450293605318060760968131674802728777451729601693386979676127161624195939600371385033086275002494858254286741005309456774999573131293141231716978118276678020287945955406839015399291163861935100647226991017173328902192501337637621172378656257396014089288719368608201541744094496267186723788013962865801535632220972802506863925614913069666901777706118751106898309882081818648664841140791729093512955526857332298384811494791368497662840405230774662814796657212477544613257971960158616484475318471008780631369938346652062390858479691531334391366546681808668027530822627062043012835173442106593636040766095964870032769626027040241016784579826462875877934062666604441483008716741772952852438687021629860623704409722673873199765167687123258602472130041192296074794967153495505785734032890849702178357309122579884526372931602559146665759436403714000168483187677597776070832149940220152966283194006636309957176109121125698147944795005415223804903957494669981341135380384167319099116797246150517539897461767637555630023465225646568895856764353623079240855981536192894839094112225833252047339512578172968570253603787286393126031275828720420103322658260300167491349287482761250048249615970325053170685935478897602068542708958721804138691358301128261329229761111151445385142398506549304916533900910972181007085053245696642065382485933896381071487270698059508454190450433725655700588993268872676518667494524793880473727967054652164552917987998118628085658131648259427258824769230980678645704551691665220324168614437205097731849773938460162852573746598473162486555626382565935675208145271772622810733767891632218278488545547993160847595290687390866003222732785002878113910573912525967422540740849349013174596923316123503363058771474673342890408571085225268762005922545358458223597524710903962502869823428099496415412125102216371701264940999546772691078482150022603525631731226376999763492778336495003114834781011927249201491644587756911937766975844954299799061112464496312935728854391599537782804077162743400800808708465524862716065206627272644833204696446458242356403698971394112331440619487079205953932850587254075865955072665699565473221853333110925891712473110699822045525778672057539969893513943948658412822575407498694514505390904523171399155273357498153696330780503052688578919784518215504826606539619431925124596440472997458258823194080882097225853564932900917616764720685647154447387529309368940494990229162170826172589377088580088163040170223173981882575000832272406739790466210387216011803272992172243403792227356083184247957781815786126032277038323126828555800722891348135454778838205067278565200751219344273490418067317226802321839567571316282161464894808015042892820481538916272687493404736665559350394282529886169751938450851710803677915357084755822877451535447188725331003838355167787831670847475957049037121239055145317254314868159329269433719720860442325309460356750707034258905270991756086335182572819302632430318457267731369450364787037078838467868752441823668347147362194847674445125208409537723155408142420394790013698868900497411215339334523882231660460647328938984412184691857694240385791728068344306873356630885330740159120296275599661194193926800015341469986913828510550717875702772594661077442366214033094460163071069095804082172428545551440950385131147431757827812865109516245393075022784940241590418045028908696979338944133308636723087945141527041852782075540058623608414464560291877962984964210169934853475904487801598300179820231939138359029331872724211347357526434720358324842262760483067010349332610434301133942510220127298755920568824148923092276996567679599663841731430637968523984830964625635801135473217379564884703022322510314720507368644731362347194623109447915774784689062839063085314375495487303391731566848720772537771260137513479841631434138156447650181415533326575662266522352710426020212617904048023756356288030802044313790007027235779303176301181042183427748590918399439623553855567604993525663674858086579088726458263308939707454011764727717458448843346686562952989659980051439036296595147955391133150615499340563482348348191827164175331360639231978622703726904317647855673838110264814723626306930520162711392623997242857205509320511039572980397337619673537661712061772003835134359651831545581189551790436792424652879796387011285002829356957444198828823232395040801801541547760750919432643354071852973035539704302404150855456195052752043062295202103612557148366907021834365417180195346899176654860454616268885120956829177851874953481806719412757369785749608161563639970889035962633193262295096733771614143114582557834333797439217351416953219123841710746243131955389402230861072910360368688342064729708183769741938289468885743360982400484188613602949684919184735834436286503803908648953008107279649194880610836603213291923286644635578260800839069516315250816873843553169354611713774792739999421503441996478092563957206285905348693841212642922747268605497046990251784811647430747326317421033215630697779589390747468011499372069894121685356269370271259895477045221824870349266518148856507861511198591343139746435959077400278375672512266077596063435834396280034221198915919881417232378977468131722616901221088548785076311092589076443815884524318486455968057696493079266161824969103288930530899841024601270692963009236764885681001204523972581482761229731599154925745501758136837842241068927107297233781875024989681140477489320127847258763626758546454608719494040608516800505656003902295320392242128946810033337650894272179386868017211175242354027308672970839016923179648321187578241180595261906662633451981744291214490167663280254514100198088118273580715454578489754511532998522263563066912352824825213965650579624882837983400129788584461909352470713839929220896992628488153167510201302329106453631729120655430736773053830801013973411872765150073904959006920889497211504803333742365198501232079245180542851386182587119853714351753411245132016704030869916351065514054854631486842652628613355678360311183200669212016426165208299492895279186669045794153719405726503786018425708031449040046064218200507279499676502137342332546222431675057845351002891433085432402859256489726555731158109935800446402309711461293506022152854481494810887863022970438717003065619944706197199155576781004005390365180860145285666220636962148817382463404001086562707428255304647553921115688168420858651458410698908323280853620763272730038558799922105117943027287470349294207077149875709834188334692613110415794258177913654784536613120452947043517191735309365675997190142293101591514900059138761404318863876399864306063092562157968744954745877159612984659691145610894896583985727179672519319768464435475260751835178348126737738285889196702708480362068835181647512426969014919343944580579781239097002773361653574322949338156380909261901736344486535194940586531389941073580078376652057476846069245158531903091230137200697200896368235865114498206649247756527766513702303275653138372474714106021154246230235613155257671200299815480534681625056478950329775529195255721822718232750480806523484235327468128315812755124122208951084396533173015842670660330195023840516533609045362614394454092261345792148210912337740798577408008001648479046571034111631377247246707621409919922535306483049383970668652119717468423202086285364931014564821941735992934584735827055147012178492812625972975343921725152262483465978332658541588817892318272240478249949709390667699394737069483984862576840366498195977015137444340444920417471562227461198418146487824076252561127897468423545177411049627254282018460147366473781021165496592617194896893724047924604655401909264913122367411898639574986199587702256997004707554197401070037584745743792172551220272645269801695245640557133484721632992726606209566848397706360292053702139336758449021772076313953517453596746303947209748260180269324779094136864161825473238379520230856647054876918077932821284278997202183462294182033071389361405703193646871610352247504407164096745158536474188526403666176519794543433300598305672615405462599055612760434427392703063962333136576385946487320357307389349372946902217914543796073016564093761153104035570347953841656471734866130668931533487093741831723792657408903164392942099384701693449257561430744842706040536576787899046957335548757416755941363220324964007142078606922602492713303507419746738042958422905818186974701093702210087828330402228942856682606300993754215907402650279230056087167297188621234067229324821663317358255539820087698888262217761380567051789535187677439374523622822574624888248391894836714415263654553921821482241971449926786755490431799535227757933525401419833328114877554379065016217292943910694762280720372152711871563953124193314744935038747513593775518962376236192174497813564368893321431644505382455286700354522375968060585258108022052392473666919700671760593013500817459410268354085897425312774702362156567654828770386692664421637013446148695726630861509266293355964222553079508849090482173961515260848153588519956668051504070773062203994961943524062327574185175846990818933428483274736314528509397945421357424591212493036299782339313295006922486312634059619705099228683227664922108389659623531866478012453282666608072402327268440385971820477174656211848515769932717950133306530348361473920167502425699188698834895583279520228675665392207053508074820567044006151810817666399967271892687126763706220525995019791977229214441615430078308957531992538905143789776409966522186607917574511723245541929593001175142968247770468999681139649960132436376274341807866441648770259098790421638750564209150108406437883843110892134907534372439013572507590474193441460981759812553444035633833094403499974979660377748548797397928403175670402947147049009067475119830954396166775417767858116782995646580600487839987642457866323596768350209473330639132515327246701400454921163223626174396275681530623586350509816204403587043151705352422547276011461950851507369598155329882411540481777198974084350826284774797637933732946327545286384190143176853816601877745177383079598242572128381009381581864525562523574134069983920879322288338766813831207504582117457698721412333666773458658308549019959764541081507011608499319442658804524687987771461251805312702285833146938615265664945284704987520507542081166594871422875101840293741100663741396531217408735209190020886159132673885554870033512112652533168554961875175151905437739191298952122711495094338962979943660879486730086295472643698113843242307709954651368732306455184721800642618171683553727361827413487560969026855731314446290648853127004852439519447177265601922808223070252189953077903981264521234830817221328296629594132573571128511194857011422458550257687900940366134263554551688717373331055847449457147580333277094465662323611027719702937328780558336401646088017659665214236622911803715563835433104235169131017293595910146376106187522547548160917377109981391277067074301420596644340906347577438023946960309331070992865556140994588932961702614179382851118556548422442448534342759285628458944839129012956093634685927466319652167406075434814939338132920596509133080219656349373588355052816713687262291253724154150021771765714269348129566424499869768800733329696615464810430717237881354542649556444526819364699474377642022353443719001948673532550413114789671764493734914057541637370407396061116101865135267621422500128025598659644398758884104824133530858888594723971619601612570290678673841526201135479259786878549290138416154684330285960149168078589667691839708914218471697507169668338805548357177419178690628165748674489817891210448239145219949328124998397154119810724986357963653996914637317568445394473403710204122587850600788651983931559130303036115339375656985583357675012589582723060226035639121909508614353831783232305406948180042577500569895433210339395340765053514006885822045892236249304543123617215217198176705911181289234766961195492122040617494038790670112554995446822403733915238909329586582492594314450977923814780788177295186679480953199403526970216332447160109121285755991339691075757801359536561199665599682228421252370280739190206140557972778800453321285386414659058957483009838729038959460354795555987568739560731757625818467414592791540860855045509208055412949253776531232258603252431334061798696549041826856021315546981588377110900064282243508984465482424748259907804709957364029335654841043749343598684583177728858489659865550815272975105620351031592681794524202018407929656366556938315500627131957796096281882346998592422255523891840008284471741222939785422096578484738976199844304123920928182380122356520167030318309861393308976874778996226875549382709897518412590130477735375704594323868830780050585403873332674520683517873287377881905293539728490949470824946303481933907949586435322204799894264136521876675174373198194533040208205532878054487789369892005673758658965058993541474588287553696515244416564027718814690633996220365539625870064521504123121351713770780697364370950416373417093647712152057897002754199955962545796910670160934466880900349998908726225600616185911976621328754319944709992520730344287948487855252352047226483611892832703322033615365208849104955408675046352114785741895470483705771102963424078127293259618887614389063318346133573327490941184989775055950001497859084322821526233672034918364517943409318338338150064247984149461512135665845837912539658973300898276801549440239854908044657834341378400978197146550463335352985393490393621154871925350514444476146978240388434984189367169237537564131008808516951517401025158395941052210036471599215769464725419736379618269690234185064519365619005597615269212049736795548138667002685950993921346869561005959077664836860091868377364061306498531709820478572685121511174681183876112092167382649024164275575628533922284422609278486462475564611428541907859905543215192122065746925622823598163021439382686920131829136566104803666749910874237553220509011950963423645323690025226515012430679189475418470046953526586209380228891451854740793453399947056217772329770615708328468551779390651668218687672257568458301400947142850166140981144782458239188502198388736530446989186283601315268593655074441202806382918000137344518857146659596573256410048417403669729850944288282920374851729236647420218446606874195902967337973376971703223036044246990734818588134714554381502425870556394149340369430163792553698380561333108031474075060261471246210459076403345920874696853146454207562713233764074299849204918473326982127677209195631297387586750894989769771380606346647357718508439747138605613313925504748734765721716047484521323235315245731597043684127760694771750518575993432630904083559175773568862338397857745758159622467887388718918649646993374019841997382254030578858422968735209803673238605822493277592906396919445141104332005736954910651536522311973800161289650845811765159810326189237754733010149850860210188413968204722159086227234085014449132443018747747031879219775730244301035493318753412449161755725490269480877969391910386249254401597999821277667723417111528414969911899976497688779019739888838530362752966560815276692836382035367211321470419172178801413776808207438705324908260943128604610351996835913346604132955960487423446688686695268465312706990623016879469727078990151200908034411192308633954097947750060222666602626991718649540954041246810619588058049656951708816735723080533127806110467739084501103903317739600614681435336097355492288365396229837582609194993082281268363352425476834953313951163983042362140008102179631817787183102568421497388683940883024763886403264782268928413406466460816567901057975120996486250290836234953843366796882239400185346365047909029735581281425307728492717046599727184238848754847571694438806896739843085058394458990971134255309725851846826640081015224187110756613396725045257977190551157625311520142548983245257042577036689942263070251822701501018645017895654851717802798656894088248094318386075893758400363694263716947119541045752476131609491413215423537137877194605115964060822929358621695897614914391392681163391062270284038467005563941390667231564595350041362488994190096026853280568018992460865220880348484459197745727548636292383095763629243290420114455078840478846355269397395772608692544729489281416067310624718812607460636468822363543271279434233731020569695311113625989636972486220781874495921108195313612895196603937727443897564145546931858561742113512780317462468311538550121535670043390890963545060641403328792320503656717279500928755298326916341515810624018003099040276225131819493698028066064892714282067535988003696653629201389714813670100542264288547277051089277413392046034331535275400160243884192297991856155048855315288300215806976934102041612097231057819406576707075135681914849048573980258250126459638201485807260708759614015694821338158123388253812298557124620867975982719326541225390478206069060649962600856143257836818145409063103586573114868504813294647775663644186815505200753874370910967221001861115978917589329250103053026061177795947019878122597785876917885071062116133744138049635500188609296357874555495594608207450762432499758533532366696842443776888588533016744079419433860001662537983708263087339832691732330231659673531365851751886678638047901980407058782958699679133415783767225615405430144303439945463061702944785635142860941179725898277929304690782599870345877019146871853912359199040825089840355972508956570496622699704357673469903885635111403315454282705460673865788209252165085340811743275705642117444297346359181924544397829084752678326468252039463531992812008378780448717168346914590813118455527114265273484967910668928702418690098909902342715245230028706990834232643672835818795562036935868110481704305838832056474643732613583363028493768258466601387743160402736042440161552771594133899744402647175857153786291657527431561792945541019627982252981286922163490423387916156264337478886594179596756174482568209073054058914768234047881694951190752170280710959365377560701161143570833357305948686262097632486771774259320594178285973087663055982050891433556289061516810448760557493662296268601765803230826642588368579727373393656185326312319940739926653643888089236779987368708729690591730403056023609375752779655883696271205256387086911728030017222510354115174205183700796969875693864062427829409743854683887211771686909321564153202104369597164084824256745675450782249344447923618387257538206802648595893494149344872727214884952157547853164936903268202995905239016083553246827784074434081088558982592834686605256774446519316646638038186504891219405236447419998138047885298055540076039886587325585669293752892838810194638199557812303211640329865508811351120487727327054644001438850846398070081748317533431599823130326212090767081344271103210609877161611803624138719404065563625654796369807380894195613321632753755670795430289026560722965911224105943766283496633165265338023738031593836315772139127827267524970787964837931047447903010177858317311399620990685815437859273485505117104233384778711462467804642516981362750168324514335884531040621387410179338687181808314640586441564550846770437859135556618240840482488593859990613785688298110829265174959053250242032197240689447971054445783958174374767753348467810873639334182252595290169944985578445335159262193503470154829555872412292675385317922939252258826050938552268088898912283592349155531516444596224283848342490284969818182418958045867482632629658280309811211895414710750534502373994591042430700568400087676846792059036737685449488674516064635499201030065042980355020704919197838933721869155333627616232430632944582553189012946032609560333710912317020935264600705023914202363166254021831180728691665294955996031448825597029533832595955205034902188094046760255220833221823168842319945085800831270946751129192410295433549832150174290689496828924208306312536995479442322843421798393169048663585341129083947453328051709396093498319076024286610885383393961871367150094196735447800497226678313967708485925575396236601611237043795076861234191293807443484365918913129145388881479242431541275511014109138548208897747297733777650465949177362715770264712446085849854071314190787235173768677905467335273284940066077749878673982696002717923220042741151305255695651562964406966325806321856772358465109103765557094630987755452631773746576665777771916730282644143575930482706084657838899282937809974934528862125779085490166228142228868153742201458450757392564256740042462707117503870624990962315386411411895464809115430659544559143861339653633065753503057139716458361880146162718422002208165231191629233033714788371766773449266774571588823687513678976537421668107694360565730820322408705794067160471990375817122473942735849510783148987339189270064830902470323381608136302452309467032890793889679703743742507885321449548071637171168699194524720623830297288799081639125200461097559671919774200654286366222249933290725651159468830180382925783982347925192928294259421513065724166382634761540527482117267373561895926076390921326088591012884487266110653214550857614477397385193474138768606516663542384609614736862429411804609562662507955108199766892751070938159182187530934417173536111285274132012908065730972820472503990542569453374530950970496864730036401626797330770418074395376048284207992650601775945822536076865416585073163201302194250748711834060963778127742936223924968596362298151359949509601664221476966163638181098755420882459838315584114897845541207469592022210407601406139711214590499768238485047468651808570270563947707854877580409371919933298083950196715146483801311963865869048998412444046642959789744680879079627534816367382502665766476382647424584550581021095661285827224742494858743179804153045807762101540991540418036674658393380680743070415531197617702253564280303435259037880372947459082119921980425749620147178782269066197311986510021225092343066461426362175088135922208042598369347497723272772541634880463694336770800357101139824775202199747269867060511995397105557218714518429696520630490390970763976025219834940726079845581884013938167961136208816174794611817796269644250369359460036817322664065194470739588346743860084309538150618644095932746185394898712294450669990973540462575084775076846675561193902791867606173677093624674658571146326250819990599169339408294199735322825734509392005796459795019084402356355732538121997297014854458740187615144039690828623844243042648414096141802188024081979729130823667818796995709301296085235410584377270532016096325160315930867985310002016270850566884782862524649463100413487068915464487290824042185124896379806692452836033600312744119306339148781368966064251722595382488117449311761134312174410677106727471326865649682365341423086567914265780329747658189072601997881453481862876400551396911150615242499825523682154986442774225972466522050053234750704390562847177711329369420729631926685432847877916583221391043000154394106848762355518736191269486203043888112210502502707976122743675204986700913661136247790100486851732746447201941990017494366886075980597956695348556103445755151685971455725706280554369086996541190728739549673004585233980389824106902083519050683727480125551971776481646563421423852311442371419588460637148689868335177276744330483300271721607578037693566444767376848495657389669906918592378740519531384388335906562931810509629535296213465751849413450209402513665691059046556646890203261406928638064860962647660696996297485994979344560870215539420459741550018859879600656739501276623236730398762336139617120205509556699365445046253719959266161239938035200341160514598728286381883976292765021432345082118009641590700507630125619303718363747248178549820010467210190998969081512068465093307215534280518897315877313336773955043657129109260986731794197448785582856402113116071439969341183069104519664633704636416732000322468493363166497835514655135406359090458504810580232857969033874568080976456395535618737501912744298208705125006156337069243669371071939804693520393405841203413658880438221454583633146997900307747198581943485377928540293449541762783197651104549885496028671645317018066033810157608936137220574953007997456675265308803989224448435510408325169898584190994121387030040262261369780803212642366479007909262278567539993402912440860753429819677176238154169334049857213010542259455303236334663582080624540141357560076830300085121024895898550942796833661087791338235748240960592456822775575983380709713410939698832063824316220940916898653567722298134225365937418574152869141946827186267731845867631053725616588116887052814454772997043603762874059116435704241678389645865192921902962542049839636053129859958361986642080726895427256577297453694796446452190508492736415704846490245661476220559026509726033115819716221542418384877606375570987710932929198725953057812341136037779037478589433860649582722014745202635288001442716286970225785058668968739294779553356811626341858603201926003275857430915555221372673157498618692488788852632676464616815668908318961628869806665952138222908879699873761201766483464638298940553254286405685140206152497542963977426954526587620627927112644608790681248386802135929711033056081533724017528976118869633545722708147666735241929935062514174565614543456926840670632046307448115058360321451071587528245413053393756076521893155675008109378856621569098770164191913576193537112117578391405295531334305032685937167782000208097557933435480041804704961018997520775871675438152107625824248574369859778019505674192806729600534908539488549238224876601528915621656931399720689568207435560713598248937621207081984543529173457613036642139455137234249887494600111967459297756534646854004648074516787847210802315019959403692154462125630531134567424832440489411667185382734527219731400568165479867662876316857814500018528662229911160586407103549948852885172300184364297886528998692677765627305742637670050171383864413848492584360660366444123067452950719772018881962046486719459597434940319532051956560901610902403145555263995158723760449586320647146944436823323313430490449934633224570192906929592916696303158569373259583656142566276845178615607692169227474985702266718363653430681060942250434726689756532358514684270134932954627098159046950100718587718892018652902328461570976567538148234310396498313288308263210692361179484304873047736033288279727500381070169401084012189796127611287130821451358041761123775164397039446033680198540062464789358611506694746064942120914367778261576036388040618942538593939017799516588761501229410999171471761075862246538419016340854484254016066189487007730016574630943315782082315806813893818467795076122432466518411080982061963051751973978921769091307529829811207684914493371727245827236986726327320889957563641397202315047513503135871333839207461898800022641726130739632194102386942182239303736401015948893968910652006926208740921119348044742477726796744735992404583454249225648956521009096957629018518929279450721468060820942901681977110505781862418859592645736787459091123774274244940240510614678663286193665412938581922214437995729954864493241859629206172099772497116148642067287431658472677908166418955755441722524935352130772518781532581347282341956922812965786540689334517755238818926994868942913924861026337134032221103550059382792328765142070321383599291243192457036291961713900198621586270191160293502577266704617064860164057441033094333396497089856027136772219583061879040147703997727194907080936765668422819389000816166580523702469062368012445665437258570230359013194540733166836932449619678118662825765723546603179431255028442363431371987057579423439223626496153603590090098590476038929178539608667863054090366611223847689095702322527429074745441644435413536725610090370315673360155855401298899125455728123646671874488081586949205793252935874560280379468647259878566893293238361882492267639651924936295916192544515924494706583223609389968104455240757151619601834087652214846099915238047729366695972326506249213162230635345312719939892697265788642722771434664007868260593862785437918454047383759072322168764042611285103999562060830221243041921283887532575009567940626945143634175341749457912625151140097919705675818195379961732109345373519215691535161429754236243565382910201222384319675127326416746442078717329615689678285165591646261794358672847479684097104887799453025879997973794126475878747339458561695363699709657122143257542012681892863162516143186346903741767178793850906626680217365819420148354653334584279193577463368688141682610725311612034705917600119472084624126143984235233733556518179671416975773706584452553614653974767898643727861440239840420414047292296054322219233946254876661581187570670920009500296175098496828034306302165024271694687488288314510937124090471876878102579431763641362646189352320711477481633626117556629978512560694013981844757912634542777917975695459962233211203663136560965633819813082521872208824042238562567604314811370719860165989793302719223207898263755707418874474282068301184126502989927972116292265264586137432293439628333129112503029790203963008003133089068175133162157641229274189997259977953437137445161283434837362871067630432843479123832064411602497576870912446320991468491457519536174419806270789227801229116341994108684149478882550437377574442466020692665168042177314049512204347343528606185195736533423000885101018962683079987220092535823775605315989368188477340066612880158361935047753102699175632476326796652194195801287713021630245734047136384476261788539682248945657958037363132453421729764052756655119322788102677855608355072650727833313105731007360833852635233622380447577530501371137069072270332836453772659607932034206494386314312909183173955892383108610212514433835175591356433521171423697627474434118792475222007547787086227561465639107007157650465633667364603671589182324617672583894292389739914969548756466905014440741104937198318039593387241269920003421997386989835625753561864394863726066128148917844888310750840267967949008114659221055514878909230806763586679188361543715473629215664359301280555787574239283324204529665461214969287957887885606277653665282489736333530708966542447314379766425374250099982961053055437054006603374090437256132368578315415546165474262463480293428219499844527585651784962017705586715639179985330803319029579067821068238125804535127915804937097396490284846895986084273697208237813619194194115341809032767558170288179545402543467612472772166494215617409136152850726027416448916922270686954054989863648963921876747761235206443059228123214670068514514594838766594789968043870832846875471602583504597630239938264724840136672512024629942021963795160476269070922222615869579871468893294242309931526563565019904434472365323342167218659213551764377805416406744015448388760853230915717940467858832864234752242736684514543100964859401068221455416903517520795556584896987807436062954394801445509167286164097151506351640045317629870156167143940112461163401346389774906282326335500713819544910896898465774950611510576521023295987109589092927430365319687073707815755880443682926942512490175545575719677290835767172960105449895460070547806034051486456286878083940129862743945404913834473999818715294536132580010917754367432920279604809920181296016696551829503277192546847819471802369749608931024293823054807980052499831304899116921883088523982215910496823825882997620212655894873029814040678856844791526999161245157129502339372024635638889727798615310855520246405955055937248488464281674862146638361536870257170888016953443020323783503636278100736891925864165933934100291202691699934219124800154947762809578097506373054204895060238359340710165157848041073941750689086574613280368453470043423536670428956479493679101496593619993949284863852736559833503711124530181205778014569962118875672807904587390662026158450493654735465251680505668831482599495921342049100558995112174250992310148770439651336776273873296579847047440554159973927650007081122245289097829914722095843874269378649193956052700792117134566154946201347524856086453925845198620193526447118718049657188056372979874100277024314301493160579010378560337622247118271261967534597972079217550910947573916241022187241161091456815122703800602993644060043642559866481487947142989897328788630663704431792630605721762046286976056360559545201446212740263807083731354848106522157152962184550854432487711481932920888444271652802803069888430236175810496401666267627861348633747916990695538154592377369355242727789449175880709104228573609553764729575947162012014323242157617532465133313731846026913177743599144564810621593815949421844400120656053572130939692079325227531477590761861789481932531757551802592655396856791063023768036270945060331143058589470211904830959788768459252880680358879355172433835628276928340758244997905185614996019852042294602650615353182158365261153908874596168784167652175664271543850678277931481680197938911149149822286683425353589513072345531839860825057619133254956287750148454660621840772470513796874129089197005799873827786190572589424077096361994422378238739825787247757251621577040279012181551256596111832668122117764726168701076385847995411955983499450822924927463895952766770827847071662137655942316507299748792152787069144921486168534100142444444167811093375672957229214876727604955868935324772859462959368373577262279109044396569585073077083313136657709324449342057878165578392328326506438973453651307228360721023916250667201513032107370298927773198527644818977691626276099425087086037582208156098734191962899220831752614629503343816187297080753809029559651105991777553539297011656724563766104316719727761835292509436589351614335290682670727694028199187374441592094364791382709543755540606748419571547640460751317348255193058019028812276227044815009763489246387217320929655695303624569088949636758150296648446682194597237328608099225979766918182878564772295392862047781615810499702348575034522692793750492818377013403341224125769392682206566196915400691046929151279556828360358607155769975866491109642715542015623441564253216293586174168282716117000504176251629118728439814724824724264044556101480539964403385922846005499441774641620703938406910681811497511523746448722467921853004451261943099164318987642064367764230500777126588892973025007779958020229478725036752342114307709824762889429372502253919270524234801503780910277795186331900837132682873448708270065226049802109637356553274564061731074402598207065996661712805506447816679176985207231110000472434607209387896305668027563114902724221707681693888364717727849289338868262522459771057452374907347659862190241098498106786733392012120009935111386310190199102637021489364224689575975932059466836614252083706191119969721337057793838248445332045185113973044680493008439526719475972647297862024947836216774665582326717713488437095110075214216489049149592646983859010980240739017199548080650850571298512758130882580293034095307070405246636348638234486849720616616205080324513694180812641073902599373201874106322567090068566922423306318613831159895678235237354320934864783883843417099775663013873948524722301688124450008452604001112107895581408306548680909799398129377310965342832948467218990668675099139683451618366326646385938167875923722658946118950954306213431258396362530795601457427126836646867702648541352988769584821215126293452682868944906684923510187584448848131047958308526403824448031050030715989687687582096136623538831255870767679049106771521490891491528268105337109258490341941942265605533224781731122669195658087047587840073260993976476155045245990822239083313294163775148446033321841734524720411374776143547009717750697452618723532991145758345377155625997008628837262105224092489133735983388530704396315616722046718190750875994473089205651604844974117550957387474628463128285558113071251539434554330027832973190416262477907407546387833472872654670851313196647702750753521945485730268214269161098728297717966589334938647209896306570251324791481547840567016716338806855079772998815688486124158582905300925744935948967095311053278312353890244398998494002401773337349524775933910101642469699258608430959885632879578640295859864637813022706355657799909645372840855470724930853296710557598553581756253465588341974569985556539043546007735473300913669643580680300740804139274326443173181706245730875341827022911752991080588099070243518112815831577579570923283389785607507983259535628628392098901199709728468445353167643446576991815081053749653443714927656230035452907027606870853404701606419782539201681328453288145313313450209738025616486567635057833619133263423816178858258311921795293447909110345517850119933984050080232875417715532291405565410140989484949993534586190616190928359938352682515865053239654046977893912649975542173995829906570965522851277621802218420981561405950211628953422873801156239087773550939590945058482120748980692360487830932010777565425220290352809230027900638704060484890990892464641682770316634935434320451789025839966485112772759199434533523559164320946857581703457320171007685920542683763029027566361757292604655263949910820083069912331671138726577632405806295255336916379943035636837410316460918228086027626811009992766462193317267375537448378244469707075383656410161131292542081595408492492698067615742629112643860196523578746872065365450257779695518824506996284402095127881966890194435125030422831910224311889815721934279522634615999979075731443254505311537657202929732536598569684059779437961911923972716769411907745904557279898762151362081652413446552503258648414450109348406848847621808997097922188919489384604757633387463919512307843700296454198398718519753188438486041533707812557316218825936282587621187553234049718181100871824935137999889977608297459497937448795489369830119493752205161259932809731004699321842969298511476833916295409234978050260143878445746312069794096859107364000033888567815270034502960196877333049712766360678710656597055007887414078580768709091777203234881507217404030600967790843944455763425753859219922532391689965804142883577659122880293407782261505754682451908103303111309099827490521279385450198262525624147246806691296887168471617863811108418115834982692534871572215540267222777009450005903556640727513465948043750323785214683391815909372221020715330431461023527063114268804929814099002845729127372515733005179383199622482380921830324915160703172892963939897721919072200123404684887225916644206748027568580887684799884186053105949467243650956161537097591594324688287958766644979255168041924518506750861357419831333667964415031150574084295633144081029206789054217044434047604590505538476209991417856265544013005286877403597454571373979569246970947452362600569970595886002173552092721708393160722737112167572147604124638433987665847071172398011056200073840983384946666204833020843476494026679459765478005760756230172962451222623809045187473288786814310116752204766902604164562411833017272869272649164554412727429578430660486087649714919300377766750479965223612737564863491627215906664985651351281092870275616815220437860798164192267802660672048098979484069818769915647336165138095458938866090485463449021928060164649751379327934557120864752684049684785892643852016341633657779837637962378138160685470308570972125204147488624568047873229788808565472502990481470214793360690680899056282418444334833264686723985428523384503882276934865180295813615036345112350747691071494664895165190148520885512150779665238310178776492135522915014191351888670075079609328857081360255246329189756318929438726885335225718111364346354115558731079374203794412298561111022662290540543056242270743374196253035490827540210929277153013104996973586816876344939032856398229302201516716428361245096099117017520813087053095085117350711251003128465037070191607808732704514447915917350060003503770118936219167168931551605718659378544015940328688680078141698958461148414013423439661339364820887336722360531983085205766075635236512515834613160957007285165822533528140999654407929435766604937949641114050699834023828518094041320097372394153947751498873954972314448181047196367952375757737867706965954720109869270771374162301932841466181115431235005973708041497216169804084048877294564968727355123103641321544346102607163145141416318902055930154992207654868878854312682839045589556455098247458917225190785572097450585196568277110734044047667693152615152837144961788671580648225221606887910272425098221003500849836359824866529841772011070609081074616918746704182634217496816415564977629401246748211729358591408987947199166099963322054670749445729369953480690977710447373643955241419201069731710445344967893635914221428618144986214681545675461514048330647372188570882636617350128522527896916494213227316009039443947142459610175561781611182546493031664924529319632003595434693874715418678464540722219059133647274612976609992118117821642780290768272823537466310571198978160244004595955872330162984404239367825112535450993231629083183873817905393027786231473074257696824709265847808109645078235936461548824327871217537433890472069822440395969960653949510198990583939847020761971391678536444375013611503995758660762500038608027965228656941732081143318432956722717993641420741725981960978282747802552246489019358962562972077355581348681659583921789528156154601862720979683833199524098810969681898968420686700703110145857200948845273020002645530080186476846861356832960051894888395670497627728833318933091504850165654721425090232820768704419750255269574946723060036185960887949897540790442373025990262555295962539541423229367422755931139369882425510166432592504412966380933830165887827146550788083501349741531456499774417146574779025590402473999306937446371260150920523695385649943638294527236831556198145341862335751179864615399425815531405877720666087840086854025534752384762499945023829609877404523265158214212333172719665522820490616171621279015278287877398187816299152098969437284347855072582842350992805261300356362214866617286030600499145427030007445035435049329691245046529131785250356192633289429253764782362143342283166708191615133545191610933291191612172927928384237489984814669208173274364669208477250180977143593084498842826101185893209628252416682598837181220343072738504819302136933002103139998320814843643444320170859410016443014506283747001700243082435376680540537536974104272648999097120641910838615669678387652539655795654882792072332316294603390061219074718559834653649327017453510294166177203461557140671502793485803543493706935706503103715595905513520244652920189093927811791724813254307235805701364191356031163855768677028029237870815925861580859394040125643470382516937086569333873642448019517021971998606822117837589836053776206383989562802880173742964310638704224860848260368489497830975678549610138680311606873335862304085731237913183928213699154457778897995486749829559575995592139023204484627821980541803073443121011278913516575670237254199572245960860873996675391741433798389770199284586893433664147445032220572634260883672217877540270759266254744101408052276224905151990235363650220204900151629522503581792265208620774622401003308269439366889574743387045638819415167192183148373048060492660072254596160129969291617393021563077502285210940093756300989844793582900525800861027720958830151740088034837921840439087249717574818256283078568035750345426440706114003505462513145939001929887920043505053909735548792740797209419623392350998465057233542410957502617695533840179620565909939759899284409348607694882466019036341363073376467254649093857234765513283224745269266407933475227110774784390176071366018556850020414242957863574199327473509974916779875098763245803004274942479298668826165233511316333482044093526506074299415293870640101550025108915238129637562823213440533777110563390951226520987406098701826537988768888078886560782215301497693977759159498970129347874495196445487949279519385379888621594159483655476931005220868470177568715599301661970411411591245028742728411852641108200161488548735906714154269835019373500195904022120941021133644836254412321436656608340330242428143802412704496675080064486065156119138714258078202640723654438389695380355425861500158895000586551697675886682463555312455906297746005878169494897206233778505630905845167317274846115958295038806451098522206301906490462240272764400715038157075024052848190685691367874554571681094354275287353025860936656059139493594013019641828542706926170198998351704150125150438289053395747630831857082077980729157719932087621198686943708884129867436922998044738019132051117634813595773763747844274692711128955939831107287794572748373108431907102775341139249047952972923393936897894067314592150412163916634714016571875592276702570234477396454513747347793486442565399238738622329766476329628476420236049716824895586389236050770902181016740978318852228318820273049827483572723569623458963137838359475833997761160194339128317724976539718776435530346049322523096574355642096113908988383816602638147845218322426159375016901176216631137636382977101214452183740219713897092550512355516434924944428786067374642487324699568009007028380601798363483450200927711540901891235741230268266841424238777837047798297270623603084500464447956783849795426545182863059581793455372694976454856296774052484498266395647495573106566729470776387320429053945304861925148065747906470947519192061241129166367130586155267711439326387610338338616822327271092745189331923750158307321046420118012276145866615521873568212389790893511245576716727490002915423196054701715821152067163410286597281203024726415361399449637560204785885539483629989581584817457591626972076352048658242022357067935066624358566146363863202733455291044855909505941796877778158235310831598262211452154119718173113139308401923047659383679444312081781368967241912857783453230005718037977918332219947249946284731492112658161301724788081794908481398709103207336174203142514661280545691387292930095236549135002993607345463352837369834851159612411426594488445361511283123921571210705192703041369951980538788748047661463264995888230831626741746642485733908033421682340842320034358305037720793079245320891026288007453811744994039149236482708515808516537139767677490819984946559250676931696433418358996165749007695447035646934984890985293383500259089060818368058704849260503568641526336817184730057761174818399209641765073169183418785255085637713481927133329189778362947666997891101720750235261026033332660317179730804611507107053944381735193320359400496564670909318474148535454622382868042480474053331436550003494182025730991948817157105213353696693766104832789670315605047407848325739725831245134887039453470807790005849798375353062953699024780756043765414985422404091858609793858140995019005690318407047079764437142653700736053123892233180170627411009156207489325800992108579517524895046657474168805029987600909325593848350669995382574250055027164090275262517788706204611532709094340222641878979387548710423700724691155953654964847053374641125483551972253258611550044043665329500962531540943821309565558276461395020583266229440667292261085009533182228000007061115226724126193901084706038808566446398878890251385911531861810947344582540142574835796660689384305780915049639183695025429996162311629446565320775016582640619626164177805836752840083235989343088871061264688923271020002760807429427917651767105057934824976886777512358986895500641306570231044277198449128515756035560661033168137951279213011719812389382930896822103202936199898775175525040454914549776557881194111133834826374985220694802699460196556551485729576782577990193485377024152064977796561453470109357115062437500587315613956902192078496905313709786744831316033815646486257876918579771372430807560575493281443052098687959371652650180463708885228874947047936635578054957261796533261367822783779045620763332662593066399006000458032894386463563605811260614103397012463992017371311436501091941372214037343296198951829672336037263439079250997561365302043092893526583393474042896816697900389964425043481437432846287617822671366409868733958768037561999375301928788521628867126243239736810786222238912136855181541523722156131850658112898945179133022546533643861107002360587398429808583573835556806538350925042082770780804819300810279516799085200611737580542190680982794557257617212249843165386346878175419194986517963864376044923451769120708143631020050094745086291703360519816095841556089845765164653379804051103321160396599261736056572345817416370272895418214274651256450827820752298508584471233681769564934458973761312192048353894040544580178764979841693054934461263531819210642517831090656059274759977850815382610748684021752524204492268053049123931363764065735604338810373610172894267278301277880061914087257768237726328765614687857186290893289628280658789615097724428850182925985870059766984211975311771728501927377288008388138250506584393325632902583381224440913241471280811759529724268784422119906335234246676413558376431522173577792493457294537184217792272637653845655418301722100094363961420324514575144825117399063492586818798592882438826645414607334667579718305955163687930817128695136952912567769048561167067242725199279227930951948548526498255436949299703561137574154909045195927942832131171153157461776072237800780636127894157796515869084347429131227437018201743197081671758390033240679710074336533497788787998854637934855256700174278801032826015941019649649801610700608512406453645422126026435441653850407009641102112963436949662979897289061863490539118952857285466686769877072939166623568811507281944573250840555725182029578194559313733221629390251581650484070352277922931063729449635878587671677052072794046418943253201174644136362832132007188037354699037769091277657753563845892828942325403330381128229915120735532260293326960661296311676658097174984759214072941562011678652376367907764833596262010578735602929608539084865240713241113383437423019351400633417508076006734937396084375013528838105107039855928485112509132224856044425647941870689479761490711905687200669102974310516934230637330697041396077533573795568583063446127546991416054663772830092415379546768926579395825836039476115364177870154055783789145071328823809539970570679119448627240512477597808344378924206822022378827716470025223241141415175940203789213319242175040006156909711195458718434619153534091711324911737637778232717636265807490940367850968871139092776619172370476692817807567644940731743950353903336045062858984975564664219887361906333454603310009933808458111743016521841749810014642439573066333392011652208349497976739617646378009928911170732686316969753497940457384774986619362524727301952710452218420397266391671284006587494971268164424252055579747760671775135197024882592956754091973377452846068568311532066096690859228272166673499352857660667055196528045943546041129029452144390254055497333073270588367291543635908090330486178299428385418738129923648738525312604634104695297808491664710214297674488140595487193456092609639587767040084569039557498085113457104029305332706669120046626419093278551637681129737977423647527464826746882184753972385789625990982725851146254689413714004066147801551763177369510084688288933351698095511234934528459243766029944505116425928307460938432215842004498331995531291105020909205994763372044417138016585626580982832579419211173041035614073991004107408689042518232323214909795757815041880895257279619490374282460729507621006403359189368884006697467419070265863382172310365180226247514174632380741045435121457010104159002422722518136843886145738006937298765507126082006856471926209915438313783799526252239881198879440952777771774720632957689353501721515379500115230077233238119556656779699201627037412109660797234380890600433118998315267823026439606734219537350468070479715781467422160828507054386711905586635616273925633364445393100714135851527687962428412717734559869421367699688748455197835055044350035947180355780129668121976972576096594700681243027443631510080677554652837612121458551393567413183942737700497668429232234560126068848068306866684677185624055608342376116387201506057835660099965328207105320680912763711752547104137493555844641172592982489474860734159360487561076838595338600288719927568425203426683789707448371936228802377524402363328508335063920511027806267876540863250062264017236440024841670608351818827657596126475427342778127506288232221625700310250315882089592717762019493068309492088621074704438689973279284448477459538561951992566049682424521206264468664975888442592725612100714036086418633735668313423965163729603968049551328290178088458290576999755528244798782075358409176204977019017677413466189378899956097403569467264654012414498516710482583852586900252249207760515535941307502376679753566976698784086862421631227156422682997264100580061074533016790510031663884364991954522885525323039260699691114517365763143218176703979221600967998376365310767544551889530265010446406816258731702836850752260783411029491030413383799723715649267776663456304729878562342378690624544248319203772516797875473756397561292677794044581208408104437006892936833592942971089613079923523649497163525069857423860863982339743919957501615384225756435791966368737023463296571509547047570220959267983139246810475726656261013706616432054567820112473454077754050921942819915532157140857665825984468698890338125963634895549947676578444896126648693590698468000465310371280390663986462517311083497829928688080130264509648530440439082404031430565213144671599732500680415247662519002162529864816177792194313392083643682616367538098387290469439321401347941290528459033665413026657067119042678336957549006810232366528676274759157432812351262259169285952493375618388084777841557256586708404631585849599019274559043657643548134718983797125116570055653314582717381125536696954463707960748772706623400053313964383881019695011772441330322314014034094502772334777969879097973260765722260342698763697376220005838135957595089855557229951875220359722561647311088042433451715254197476833171426623478060414494531560931461575679517985558538939329435259068530890130878041072675384903629737478906076754665057579159497206353980069900312229266845365096334583207234543952255221662747162406191517120129412567348978591992928575224045810392657678423919464442298704637943804449042043537998985202936614314009222875292035845718198754710895622573979819475888174761322787057694844244532547701278803316905205167043031435145361283814333776687641117623402144127793346069078449640183735779554963625690566877097640860292411393434002836993422965672536098934015633211872583953763180601352879468702886467170832228245089512155654492227907591811431436159845686261572504189530108959499974738205181817306708464474822061151489466550786854195500669374674825029952214740555121773144128684068301964536105375199323864490039496879009475496018627469270210285820216035754798789100230350654556253647440648332805335988666546226505471925691658126290632619376623220982117964760156158880053127294565423524367703440847973613264265922346612472963818159836586216734131948927520201797357284007411306966177578426971980797945556108583544782525040426949586361055627150070563738171145077145688251129908351584402873516606778350929322776525133452310407156161672433411737858278259791968075369991365445329453229157026271342539208339467945389246192671438134947189759506349547064238916557055289738510372956593125722603737786810024161372278614629913023742478114257538812957393483781439411945743155185888920819882514677762799169430850776269579559862348221059223390560160798096729251136434116137850136154648685383167452601855430968039060470213147244981171531397155516129149924679768520503781810830368225357151699264305384179298790515135963008069926510495099917181715806306272668038699589257956570110839216353700175438501753034708899399610776549251402526235222117734394701035137475514445517871324126546650031408664991169559898442639358547261501823122094691378255505055644653073521572034588692862220859012281477305907975399292649256714147649396329367417938167268459199801980786442163382334052578114527884844167410600124153155512169874249144448692813762686571895106020075216789758661291016613944531775830896589034196578806941404200646243825052244343193522725066016334358241033200734078797420441339105577863601111805407138627366138954439249505915511930585391555276638506494294967903846403110256792106153687288540645139408326163985601692730904991230367165211753831915902089992753248958294212216974764304798839903026014692862022982440696503671585328055913522170868959836397676415163577603177103825869064252894806743699093856529455308331958329326323475568539635892860708930711108799265423930190035665956746375246695002805345682101697256485189757681745102557567463706609624254571594624610126542488706841531404387035158613089996258493899172409240810198650898320495196046034613405496372860417394489130600113762488629435563183451569231845286828356855309372973975844034086833936597428448933120846816536310436808300671384267041139112893244104532701684298034258027777475730301665307664598571951550700573938814368068048219174355961833275594870586586167904344621921165961597325439772539339780478038994879731389682743459036616060224592220898295427040448661137843904602411202592368749954497286191262701538803348334752518862185962519723615812054257735614549527857041311237855380800667173296879314537297961254896656113353790068199597576429129892109961309024731166243631325524885064896318706104801714820272302078294757400232858377820415983607343956639922838170691085974832648132641987362851741906731380927336783713514478016213452705808081307147733726049881436296087238941659828641485800621435246023198525950019749040352816173773069108213752727232969663400035824047604363789721822126423862405362556485872123847407622927566660938307860680912334933777507723885427581713060208362330537102077628389252946354805476003902169524431119068085250800261607127486659579011670460192391320066175742513404098358146796977126270106048119414825881433544987709803599058371629681509875667380132090292801562790756996609459814872418565615569489882949949173726576493820235171555985344417364444426752194796360748125785379668274463692569525406258519379160619102044720607448491490101279286207922433364104697653245633492650387728197930605522865305442309375401658574732144722116803361853214497107300923588753730512743836132765446736286270246056116939813037779056952649204675095952288546439930851028762787426657220733316205355425409103359034479079442840168170135073099291513377798405266213886247609315826606171444631576643637281422088104794658812833915559921556472459654475906071018883513350086968182024599743313817210688285352212866533910840005537134854610508878676140913682901385500955770785501417149128813080455378732386027053831780822443434228281078257652616637504782993698427055098204176416784630323570920015020164320392341172161716804062641960478866262960435367554547315326563104297836107709237605356261197509831052138485177063807929315262419639743173996627453595293347807616951480792320081444425570507205667200304331546057080059661452936824245030249645881780810075345988820510552639310272959407776744850559907856247291641420200756541702262997589446971281563826509773995818741567593802401093892747268277996355825973929339115462420173509831545652003796385486541213119981402934400817369097758946603622507984863404119886268173281818020159821046137790507876501724692020127207803695034300562411330301698766142816520096204586649717012516357448061944956148037341667655955098515578379939433950481726023381311136540328324782975613081366934141585765097349202083017862902306944210069614708023849007224413870010273226221980937081750485004254700189151038511713300096065645288467544662313950269881872423551193856743730229917214074517552905887844167326532169600752374012575865930426674618260872870469952001871333196171419757011362700032314124314351450099327698740116934374409082175487254861059800239107016781371291889554378337357719620468689219658686493852734103927973485024212116754417144336778662528275286392356418672074628582889649074979913243515355282286710842985335729629628291616316446534050377385595337299076648300733303637845390440719319765148712594041626385464112848576806188816515591694757984095166271695984122564907696975172000358892767871941040175545700869988736597529222686316270712393295492860900112115606496407719906425933288506323240434329916963153301457578179464424570694111499939883243157917339790240728570223639550071016899658148993701660206018689747080175539411514953403483627537977395782906403073530790470126897358257202897686130170251478296030952503956294472878257043949072363728334784896434263145939074573270588055519381546815131716857637881761126141548967087594140633254598096864825889875988067423622666689227006906712845153046974339103998365797981986588163353702324025500251640299449189016321359854629497092605846188625831562032654826166576144290476901227335093003380033843417422875282627021615675586606522415882021272671391228794428479164002247045086273390502517054388308681702444653198764440658732760286604847432404979348422691375786956814324636323640453042228295316063823095714613757204662191341358370603877260416503311515131780888018421744311339435570047516610621507700230800152647185215001455437904309115718364562318736278107518017381932864907659260129085976622579965261250060781772680475007219677727041596157221739630337753476963774868821550454474779063042724898086023799798731400511977868610398526223134209067033844724573186570794657679463350874920087697352368541819383816644604735277552232827095374609656537025022196408921849401439003077270228010417894913084675232507916788783998441217231064810898066387307954804473637580313768574180318360193947038983825562417132245106014721760790213355182287048227925438758764471781960882304957741048778695732922846918974572039605948836832646520167061047715614207421058832748851411343971880107945229475753639682195824456679869971994958961199563830315104223074912642438662398195487616415595140634153112796073668430681170400591694375066131627416703647089807466593831241340884948097876162702535276435661211966319927661357301455664390811078786635171837770786017736220374862224363354919232029804981064400249730547159114881799489526242954593416647562894417130066501496339812815294665591280454225876003354743676318988730094112507914871937229111319390738819110760508117626506187476681687352281832927283286257391461407137490337210321429963614922819533659750422810359121139344893406340080282109001422420014652087501707752364844641604869385099014168864568988214582708858475466766715387783280438303220904493904197769966749261051399698857305141409991771417004350204140969741153050956175999940647284101876168271273585727366363409066841960455979699666567980564943651032648829937494732074695523829890644045784249946947687133702371806654920151544507730550421887804853828478243102938986835659066629940744553782762768168175712810387085310593973369905443745700992351680819565501071542144945175760542511516002590596188190094696055006302294239855608164824701599427680571380936038182090215854108459299333090770051711455985969747895871888405956675551903230386270114594877092604253764292701320327164177862812961313006503262639652198114548042778208640001525584117283477367810650295530910624879619627215965248542002968963905202284789742487359635419878238850049088857311524430101501418031357760295517918764495461339463044416548274661213216310233367559205661771586448626920193065731071215774107629992772488850782410259087561935573911747123814277074087993997622727495897418888075415788349384957919468016667717712920461752270684426502786462279125188431043308556013193670561037829808217201101710978292247338922229998053725737476568737349705883297457502084036549872343769009743281046142492873858824754700010966196448983894246819685285203099004629705559788611295814460046827007583351184276137338129585558687033805013979113093583500309458594115150322156815184339442815031664723825766406283308024502315858395665886635075061180796267234037404059387567352071533766315166867835801888811908082392646314615413993939316621095276434553258765216768274586007592377639459159677652541588666558128210073879627388535589405668980605269857684540129268815488187977760969533355498910415715408942826604268382676383623187591137022992888713239489521386869820759280218973111021188241830116038129734180895753514546619400537319876622297300164283675280068334081980796404402475342971120683914826134145715732705264769607196698650647997776916910897135843795707827125532497757390661512726926257879306166722953503058270994766715614814910027274830019730621782728778645213154400862663150117527540777614571136083823417659878475839619611778988383811572794289166492480399243421957514241898641187327880370668298839330459110491218828399554033462247582254330109017821478853326873098491543701443643871720511346434045821715628698051487035256927894755050705096310978171088320728643109013910030387914331135949206566478330038358386005276589643698808433556552919550089366953472932961977690360202472246781136613600413124419983139953631662029805034045954331203685606528441970897235041205933431928750228307161341940340280955798560435577441947547834156511083376433970079567093356318350767685178792421382365737349940823977357557282100259996386452473745653061344075438599752382117458935435645889942344015848833073609801778434568086143946492500735229455426670208475254313149485006297392115638019207934426527569844898832404343438890060806095914181969584519897634144572129930366980672172921146908255439441423689488548560973682184755459662379898390149594537348543170670794880846869800914952048308039424885143409346832607675792106732463420486184845222749028107387868683832191499282125474263823933218532039117973342400691749667072032175420970021659616425829725314402145047588209146414087736770978159147504440225469217850572139982577949437016978569238103935671152384043373906496436425434528717376308984598729435981490859454614591771644840702045454020922072282610546225226291599243507233490707864836767527085885099166259180587368528551182151240777431939287619686058679572914503788454727187141039889752184795376213887772396137670071129576986915770804074360123858954795735084434105039771272799573875171712436990237300107661031964604075142070543517478400553510223721101318154024617263683975521387928553699145244684843106642388793647704412328824852431270937445913695231541891459716121426890602965288140743291517930944736463285467260303651438803976691148604844537113033687453868087270821322005888152060915897362986974762749728526933952531835795896293203211213817858399812018820178055935149649078333974162104152680763861857612915128040575275779967200551896476921473506060753222618590124258385862945522495451864636057454442352931990689209714677416536403916351754205736523587855605330519890636691980027255616039793022061544776943903912014029119332465641863806433020921208909099822851555352582783772295392230823479741623656759182355124003274025388630205092177871184281714777457615195244691305203361050772274857454227591005702001811408553729167689303269120691086331670324568366558110635655839902694428667804062207555749075546505919927367892510336662843934491247325355898795758218967657139730775779690782746315194243278749368428834622371833118773503553278398166841993857360482772242371896167206054295226891371027629650903975288700434075020502779656771339973327717802506039324338799212334764304812090478547286066173672789315192425367192323244796962238969090712072801851832836892197606867860464855781314633230382399110671741348704695160708532770111931233455703008730224710292441839148362314897520074094295178001033245268974125677143941807698799516353801354834890458620356244398380104442234173069460093695313406719518254326261248453713074116047150168730702827532610548944069079463684696850945095661052961678769721424088458747423892457231635001487059009879558987023260641544732806185259425042213560156813717730053756610025544547675022265862407071785628259062000425463515769849219880244963814034457085724657479707952326645274614744385893282294396649831390056796290279670840547476200345145835337532918167657857188545612494186982177807558204146907786853901311963568219341236488788048767102526028684960325961206768133157454818470961578901072611421595450230094339648222160621507866009656303311464151998388954709185596787339199468547997481264654796010815523426265050533970033053743846620501539526124523825679421091459046389581914822752235707379725844466701458693091516346648959850436965564551160166650033750812931979583954496561982855028964054562450862646918013299004191923917522110246502171543699817046234857649275187940829087876687252328781440275381704943210749118717295742449937493409980661081659903306790066649836788382667462845973627768093784369158507861116148062610532821102658385156820645420829524534630089511371345630008949709498529283841593577129199594926203598821027916052293708123239735545258150430732050807387548824443993265850141057888199320254290616517074884869024451262570861613528865875384070191828062307922896358466915129375204102391957962858661063262480917604663378314547343634904156243324007923494467091219281284241114085648356545484946029547799960042879618933528128809466814845822278122497078389483926599683026100908896961628593421132068013524326186940514912039542093304533894129733703510074266610529729047215127179737285421844191535710993538757022887399827675085094231492931448500969012578438941409105205220066030954731761360021557287190518928585181029288190661100170496581768848577128082634233854057269817551306495664446446403681346105887793554437628325180342113758443039535445060059108220400923550646746834004667629876662955089591486017331730798989510957669197877252781142575621474416012422497198478048490904454980230981279138391905873523523094977018180521649624414611774279584075728715829990046519847265116090793197966920661925635521956543325095911880480197574865674592256382410860390673519447945839069278827427806370889609610684012197768845809230939475626407236685083834202093463191287466769677077959182623567144772697443501440912844070929316686921387186529365242663467721038247386021622270388156944449738849140670520645971188832187164891684980293952619217198619724532483358443326791047267872881508827496897255512576730669910238849306773638658180250019683207758594208165545479739769788273136892500128020677413519166896052406665082553663065077258614729503333906001725619240598802920346403985317456450495983136913216952648489763867011713404146654959461375626146761782833926094600475932136250513416507875200775946037162778327990084172572026606532360678809121645434349810698933754473165004943087556745634599065933367178761141495208559771763646724364472034690454794783616038496888869420398104520177506049980448130054951467307463863672101309969559580572286741216907085393508148572159990077736423907540748498462000067990245135335742403796571721073794628490858461353207139011844808008284086117154529176579162999546701206392535534064107626674543180611766090116939104851741237022221443554701877002291995095179354239785620480788237190879762876045735432144947325804684353557306841410698160569873712806875563057784092726070346946374048005522120811207596219903711963692038585713857933387001087296813732777130714854667096609093644126478431119643717180614115906632036675104045903314951558015009095264027415888493418004543621683545225749433031097162592422807742071715880122059940574638685183589731220051856500054978023360704027473388640370567301385607960318778705150391379681541265637027903305626105634363223100625526635201811762440975665326863822396096887939202796162668708234025067592109922731216867017613680999427034825913908692777650430095368190685743538737416826985720878176031996716223713035361748342088555602413309713349764414466785171689254660765157588738770188194771464984138301581998900857907864495171412479479716268270449199783830218956731572577692444821023716343215220734851272309542355007778990526629582172397493454196674906639913961224485532718296453941983323663988710421880527529753286080856046834490957834815785813613965585572030647860794691154947095376875889633743125342154052061565514825873636324243920038653315403180189497939732984098536574978537273764720835598570201857036870777810223210656865340186719997914075441665149089257986126668152247944856282360585849141147147687399193097983773877301789462849739792472592055594253752341869465466509598868531375810831279697731259823942955608628478514020805349084099272813206509511287616551436037836164338957109839399586247593128883488775383613381549493832578819576762606999579977013581823772466552805629749018914682560127049877126783703312289118595814586793254939881261972901130500366733819851239023986700103921700392384690309827988374906810316919652788777215884266699488673148542593101164215417817499267672715821263077341321638055264492609648439340646436424975934054975082292741120682430201853699890106714448724531403354337420006270927729371819838585313445887481598949425933626666975643019962793412934272580124289583154682797403681240651825368422207910982846469674901450165754837565736939311143495544634778770783729740039924143042790234162052273069984658438016158194113424565242717076763020947456735375965057362767048929843256682557785894582627168202474585771908826666626457945818826558705651107194828595896915774650775039386662278630162108731007907607686395840097074229902019271902359681508420400567621132000383113374150815464337377822462578273357251376858689827483342215876786954412243665419881967872551875159680808146293314011102615681293763280268569346830294569861688876202298329320822175437193875514161367959532408617266269864588910538432258228501095177442663172910734505900608744252898015761182054746235099959226448857970316154698819247868750475945098207563384475954581721213960545229363951919635886767359941353863123393427414803118504157599425336381789511480921977210277883829364468832573222583302020864019532224197056162585507353377110282367828465892514654634643503288570271421576039089609409363265058018206794760813539642230518234204833729627004693771207085119563929215052531784189579922113216760343629938634790960630378311044351090397712476961707688265778252589531385034650947395212564363565378261150152712689746981501999859938989853442606829907385183535923540680510321105911357054003313602158106491510345543196580767334188030823497388431322404221235258096796979907555476331116499292129317165113932203984718304661189863811242728142837498545406389651024746485838694311627882378276876234078994620449287964014522438169922408652729097301065137856001100127681110670503841252344571966673182352558863722468880981811448132109921098564618657809852682259777863975688271028748697186996898475642129279880435287335912187469252341458070332194545258126665922345612260230873495191993399256483717958025460923098452935973726211548889024371652049414298155651304559029147100141036580532298908701538968176719831108528237161382658171925884858188220289659211543679485197965524412678516452403219392974326833291416773715383000616650615406237833166149802142374252327241996468778249451957812407998965419467046449478163272068886026776355623733386821381073179227596378504355863131340704053580468129167853903925739817053738378713999920221733296445026502728686838630477029928602623504708513374534155564430149139854843274434338148011864773387445361223146169409226256675705818336647409627530016682813685188942809364894851013837388432640195657119083154346458460843334622162655527238932113339232089368273067733076673448180654502581335002139713688671357907389678516415072855042356927282808981666626329502339269083016813863493201979150322878774664662632594568896872165065331206696428375075431329013263084111432467397604443543401768605382911276002177769114300270278941900092720485780256270651513975930496481679360913532003288464335803611805504208578859916313537882472600738261214342757809031281384704559722860645943629824529771876911129787185583597758630995984218949333992511575869633567268283868380719212854388018231424080197605763723456610315889347627090602790439027939377806299599009288336130194873562035173131971026491424316453838245987492600454640765847151644329296701575155818837225317277867320096435106761674835383955080715751345947255175265315085067271759465361089636170363964316814302120633494121656141366364249308249068443701386531957335551712554465000111233635867703507404842278065580899197275695926851975439621244278542971351167663773582653639605900191447510104520505040398681547418492118674594543199537121670163279085893938599702526883667991430994195720442505200226658045010741601449570948147561920577342698076869864144244355337270730134678109274011940434943796574668595223971999777914412258717726460579254529784383330505086491999148019562309027555120428272313123475766837690829250349160220477449301743011058868022664154506515267089310677081756754195441934027357910854198919225414099777664962729718617957819407686516833752258417278723528804549044652125552126106592580923106949071881713985668004089351049276320895813398276008096787630308768581079756925634669836068528977568544492561715008811711292671144896155968198512879587944336632926492225527704288056135487750349318750116910452590043288235365757119279845922139081764507245121566258440930133005963619906854021550749523824427437263582607473033212883483190851302679294228309974234785878601143701671696453313607348116902140755765673360593434492513421239771154938494139471471721212592269054667099900738076390208069555866053135645060575237153565394054799137068095010566440665830776644785926472264320324745435156056753441099401817763864012119368401913547241435118584139966376566849600778431128567376690099512575138123594166115483455182844566484352634209907735605089484203504232689966803902983313611135921571544558615788549446375408936873393794643403540662268492072392959189313851026160441807056549212056388802691724001786379927708585168584008528976267742389676117638848754251753015906391605654183282087051875756607529313402465478669305993582808643916244294588696894319087156119972466671455863687735607770759841154081890156157864518343917548876655309788387408433822375103372347245643170434147430572249350320182751549524662209651990322452448473896323931270825516397626374164341045173916343983707762215804348620119726252995100595537372027373340280160745116204214047728241454534725115253906728809489003531940342281578380656147282201746914662770279648186854909775671857237416948727898211707941916208834813853496193087152121484170662214055745777391675833026503299963357580007280094891263547667411776204340581554607446004033409689527855658894477420864227994903346516543611996516370030086763306362835808892743395659136119473919906618433188716724929760733428808748611820725650716742229743695300529577279901317845856183929978033122358994609688646139535528032293309727199203205550699991800286968168351788367287023061631384809951752444757159089124948674539199819077964880772231731990842681447483483298849872316896696061024429831190580388190759554939637950565172347495417655790903305155146627430009318704008713063228866353886906613984746601504489215464208866104015558321837836443729995760053606102220329845191545880680346843436985013014349166013730798897599444280180007854055884995923745143826539183787697183772920745476711125061619106962466311327209292540468777707286712671988684081572322980133530939430071261301546048934950795746131227007640204380976753640166734595966875014502334999608859451430012502515673254978883195719697081117883277835181381146227131000136524710681049873726427268718786695885521875192052832560252674734168857098948577908303503456799116253553094411687303791288832846903518403408817903455267975796930105922766708454078986202609303827511396603751887398139886656801314431111878318650416158436371276347835741961405191001139963030962819960900792971823512244690452732538188560894123940578548121660966709385767144378326956706167306146059267209771122460102623010876024082625308261854246247316673627332718175671646604293611827467932762787349927018989004934661266781622060789789178717933203950790539477161262319531387681710572952023645504293494222827422026815789460309020314402113187127873018148657034548703039072529897317394634926797632633251290250712601523721451487506457040032090878961902250965928998604050681708578325679530765606253524648894260834530255527446326144107836960714724743158334200842400660142744389381484147448008825295731818868406563449161409310099951039352138800731349545761567091011809084165285238368913834700561438110223156031774582325713125497448295847806598121427613359842323954097905953245558685648860039597499403206424135183513814197290975339212730493979856344654870155700255504749599102282481449377731470016939190343008293845734505191571888397250764631631249949468867476703844718014163414045182840752040048997034027083103513020486423924052974131838340294405989508775144964942292944370233788496396727791054191039951470944039446347631050932066195406963170156511141106535454076886762347649163348267952410835046648157497041146133201534852130540199270699523443788248560929994698996729817355590116538861948423587281199525467640349624625339640363511662406566057541322126140778396789217421672561420580264252562905839076907870362752037820131384071483479823289625339768375323250835601798329051390964785197284485627612659311361419374232186016035064353949822770883228751023402597081768126696285281030601182302268460429833029975645211846896857811091782954778006352716730668731963252466363448381083115625850506780137461673461898123539809705516459837040961952236073561025954478486821630317690833811568712668281209202411470790961103945908270533659666427929817222406753181384751674582186137489740212675593634875405882258201498571564644454209018473288252735868175482795811476884032321948833281153180765939815381428485980482401478312894899278656014440658652464372624443261736020108150687250433079040234682217665801015218140219780066792696820281718865195121560990766608169749783476319324701271534480629181239432321628739629282143312176777798305016819264829553145605690743481732390095859085366732208964317968962226489643768834421339936912763149068401137335867962588005949605864642546343831795136773263019648796651274681730540805745485187051361001416159032185127488233172158114775389464264321795468142758217725462200140116047667911578263855303079955318813826197018546012691049074231462202240847534036377949917840089552769826853244155924932922775104927682456292700362405705863309161669574463755511036391132351453328477319990352367045802152858610641739220179702192142348469817161124974321325123809523573008749376076683534741478537952296006268769430339273896300610643285549825393591322459568032756072102760377300003361366901652866268524858223379260464157875203718444131111452135216358742016641378938290267960674790802922652596701889628958192780291841581660174783399005323757314162442017628615138307814933393659410677568175282650878762922485368098518386575152381758304115883110919213310170910818890131264607207114910860475448812946101157137734258054946681798838120983441786576876589196886913900530042048278569602956635424702154840226443756994650193356325300532273901135181613602882006723668590105535952352404684518836600301440804349916800811189138202579111975791751517196711049713817968429896831024856094238893066876887216721595561365198266298250360768035089471693991300204339188395918318778230628517445610761591127917834834665885153988416782189643995882345139250530649108656009658592716826345822285343762544667239372374468332190312041038672097896065979747455012627160991944352644644098697191319679676988387514601747512739384624089284340819106044510644965085062015104826706576612986984119792760569750567531778030383678637950336012779665458722146563992220459548193885724518629888562814266629119544163275737779875265159154250290323089411344463665590004760977238616521423186476858575715901165174585046075970261861020669998249724079791408320586184207776681622104721338439990286972451223641092759671997548770247872142636477463803767734068851805864564043838127955916269715627188670343589516552250965512747815908525476072700092219560911733666615321058603081592988219145360947322796184020896503223938194413924705410090881872559414804589543930127574319864016118593203122083746745990423674312841512125220492729043366761020090254166411423660313494276015420897128497291904542315487824366588107953913737647838781422751534323130271422952730984465377588582171877226083388336344433887382267825519103538971420871437043660827655752406561727068143588673582728337203379413744372349010099517464263389609905854316975530691397003851858899735329625212489162042019801193469035178694280292808422809718449423903923404498659295820032076248243662063717210165097503925961342412695875668178555899422731672979207523299100371405967982306840494002365255959238181823112225272974075206697728223417147998615759497080217580737401951205346435700576532999387729084668329127932914739595139600296571419256712501428784033327582313248535283481684712467901020094205404836107076776146384962950675486121787777451556662058599811146754425750882605276362241303848701910104952801200031541798235790100807668825007356597626068811208744815212900297362211646240653395367378857247711508152748582899311534345135296765871570370534985400117476790604868010836487923937246501032762354083060467656684075558174154281086797828926419205430606862027282845744881589446527400442651523863516936344891928971994702672251260200604915888183848236102169019181113652215514006447332231539480302329824519665372719756842830242038716708962129167692018083210874787092712470656659695577089437159190128422582566474167100940943702857460368313180922658117637811191894390328883780400324229031452823523514326725516189377290122310253759311579974471451632202477221200385983079817777425965480271169824602764763742302684553484619669260510843355260388341227662243599003878078956929854173837842397727724264240778483579813764542616698431512558357263063573078636973904520582759303369106686021400721707336090415619959715991908136480287332990038942470621431451953578388142760827910536730475021098429664396526060211251161231175507272098354869860561096430359523618196586394450400341518446782537073231254188385540707311828858297699100285996570377088383737543750843147495424766208719338727032570550850119185539447411509638801719899233173896898620146803513407527507300732347445325869510764476882181365484644438650574911882272603864101424974190498920460084074842393978134634855049689473285213085258478599883884917652027792445474877142905971826766955641812875168843481256433824028803679647935279977142242756443507473090507327798480981763854587846001501926042755817144967646200681233779258985806432855055151375420885262468192858649952280318322765057450996440596547394128650209086340887261199178074634855948731371699205208952514374686832981086633018075472573517140524968184338093445942440825687460482592621126032803855173384283889184589891960503496691034760200992757916918898612045545994494411134675587802842485157407723490350606259988984101814887606492248690737939407159353401175447629283471081393202999288996614180213795071360846821724135016570914275799496778576006154562907107885464233524693203958154514752940258378796398233602514870208067207276035409072732323727590707075570813003169808798854502027465392561737678006404477937671388812110507687503653342610313554068293529084654502561109816545326111320319052747968028118024432898335058729063290491850096471680011852211172273072018844624709392988142295108970225705795439375642861203172507377333815935515418664677504351203446342797394830574367170427382821486017069524139834407028596767459609790074651597832713769739287871311127863541999453597737525114092720624786092266191180648982339145773966984051457212901030321567979810937386170053436816003580338974107653144236620866317506017922399437406170450613064457582326566474688915483440772545928230865499039391653032731047880941962205397140033231603016121587367357035808817025483383289281452582037261851024996343565046972768115168509325830597348555406598923676566576277136107473597028440139903005228791545875954648781456020395948768097746406383127249485928461658220728684589927329013059940846851710965516125240666636146539423727427937018163105388851779092104233973937475254270346407060736272594048519671213379171741936462408160364940114737869854667667718310465069127548851144220449493385465108249640586298197380862482401382042607864784770347255664215855048760573776134195415390002747700222588873554802118186489582006872776515138740993158771556258947450942755621653229630785670675990848223574031542198313419704860600102201211985318445641298467355678897883717622498965018808637879901700435854983638882577798032743137254632325665100938180241079679060521039826478261236021936845538137692628862309148083016427238594340576433314686356023752169785284299931210638746329219386253829067488310591085798140668028233235046696572549964672179909238868789473376611979104574236362350915278287498891598328631018945339691515060743885614787460529194178241432109019611445574160734936600761366460061249865043910899208268188055782046221847654813165466726245524135337968364775671693438054433178816500676718654765380729567546468363080614851837775710391605092992699469088253976095141668233878656994857266158876928941366362703622576499639007049454129342352072657336129893461930899371265050694792074662930328689954328710601703071245634840525231976457814998212881835359170817811321368532528046113436205334946210197184763507322020416675387009793053706985714299052374491017100430947454193010118350991064329947174973713169750537032463407434705726103363092202658693169878747093132997861149983808049424789875849590204881975482153791563563952835616044842328341080099996587138364639609266332334895741712280138385541976988839595886131643276173284791694215455350002578895246116770632050925401864154695284068396849109507731673510562829798624490677966104195817600735760123372694456501807824375153087874853978819992256847001343432207298279785265579962359779185753073793888483744753719675258414478280711753294136931375541841119822373361955866068196005014559141519975009172229319136293266217512154793105270897594323990669335111898136797147447440791524098270084542905047863264048034424183969065663574518504867408033383344010097640156936651073664013159289342705363771561639806725412402005839467422233192537724087214305001701869768340265913662848556038644511319539619183315636459695444073357365863751738674241095455558909666783290919384902901034891539443142277313080214516163885540355906391818520443537016524494164176755939424131014937525276824279090601554356489022432777317940785674749027500187044299621025307846012323163117436192865593300674061547521571729846815899637445140829006427372177024561777594296196475789635145550730570942140931866797269959037191437924599326115101813657145417395965080933505266553104585468726955943663810976384835994427775168969263771335072200058589624636004939404388688853000647566213688427064672076153063726008773789059492928947281579124594638449550989090781023000181832363136647239712731108688125395011104934148652533350530567457985986005068210391257355248252415804841779534294975622578690338089066967425525847420598054593995696905485048856296079614665053302630331127926381293982185225738013973804634064194151333486541678782754703349295375049479596272179590903177468758250896275659024129162591565585160578028785843229360604072786494721092660328249880637786069154144179579574609322185114105069348862600597850777336088408813901036998918240892747230431338609359064697950400572338309090892670915407117112240627400473964480846514160919138592394779212223877912291526370167618027953095393278568691967668894409992705043161325663667102637509102659348350185598243571976961453832638446795478745235736583664801932507381497933338017562070136619973251172549957562579040795679258471175096355500587980693395701177714554453892281738962993293344689649173858987588689714257633113925259332278434226859097633857667931295665439716864290251159468582495034420874396489623148627211867493819095803287873460087868472589831012874278923344625238373427841925823124116680031084996777851051044528673374840750722967604674664254701046920675048911533925064110502747577257540735810184971145166843844267794178370066254202629328494203560722417229582232658719903390025421413529417088378213066726408271684556942046032293895613844467287054592619176339538617999082431328580360502909234752011639149985416954382233131825158419503259887134954829864252943800170507804689426928685595851379028282601288874702027207556826944197729282658297341273638015668036260559601343992579776134076520309395614991668239790323058516874331736163388399915348259584117923422516002118891773466462446585273149550713746474152426114653689604644945532056476256435596217907606944741015776015180254505988387966795806834252250031510768288468002402782749117133832353986522136334122655031752015741134259134400199642443214806004402815560985860870447388801168753984857293742371221115146567133390049248902220454233153348024269927725870786896830402093647573044735120858934625134047265975841456219753573222876699712671428581042108024950872666013308164081268714494152585737009369076027284920566510572462256303259562825768307663850204036091651926401922425103467355186592224123887077908569249421239373174254191080336298361722267813222886692557411867210418322248208538794347346402816567562835805479606076855479442211372778997404081487963852562965052490817904420181820801982392071655537939564660350703734351211367540814984626331166340700967929883545276337897414801319487632201878635782635148078621533672785251946387590759363079502748618875341819144898562721251221056643883714498525633793842232682945335965479026460929213054165867964958132349743682456225786070497543919868717213824490756280903387210244508701502143125898770465933867664483377759995861050709994097804069545163009159033410777667945945795335992366982171169323632970101188112165639769863614086755209609372077434370274544501348574062019001531569624692407960577223617049993202607447512880259249427645597470807271474936920613399387762763103616869850440712881517340850264023397442808707661962382684202889184403728816238562768875138298832603468944653270630421191369568875008724178023307234168969442227236345265377732025759830245165200915825796682144266353308850098893820016447811353605979596584543856010934242347596648654395738675480476145174406041284450151380340046943723479191624931875910978510997518413739278522360638113549343860490126404039071070883465758133763738245164372812090793048335080464796974037366100210320077011650307405238726108441673828515269502302218075991459049972596301243196625253089031249880554859362820721033976718585960720791389549144426802809937273835802168722368253971612096601733041014604658604917664311901012558921972450182399628556381294442436640914743060242626017344586361956010366158231595230430602068535393683302935760900940910385896302823068430167071308606006314407454474824369335374000512621887343784946817555951881870964837079217454737370585797969795379398172484107181669755350024700645354644961528631310408080928979725859718383606577548336194996083064033592463379624813436412094791755724945034010098755197705536263250825511460233314153613107785220525488352561316186640722042318709684042883094833808498229249087308309072889254298528760429111437540890738826863592548283757687684947472648472102488780646916197014762773255888201215477297494293359707927565100254721610561763460207590786049818470261356624805991868016998933762757673253854965393503834611023501190297104568439840780097967856800853669418939968562500363924358508922519516191200864187449151151307541897826506653839108713482746753281156143769893386006866960444609293217728563278589424031596594084949327394771266250659055776224586519094715667783674139852797869984962932255262725554623565061844829405082360492365369316121898354151268099003453674389785032128608532344761020455681027530981815058790383344629027639221666073312752784323369340263928449231988885090796650623759984102271474540091740113422155760518857958139385801295313566926483841618372464466996782585937695354085004037332430477991221193758974869997375689593966090491396552525635501617342325425560411899361010778547133508647277409597318323432795579438959589894388884930013826434347020210710083692910688308284748000116162510608051577039955320889515143754416862508411445433092352248609102141143001337716095069962699698637514445434417482937387627898888923698304673196940526532141918940908998262009906759534781876724407131229064514830838378832171208514448114390221189498651508698332172722122026348908867010295039603785382894090182211759479835578943123285651862207917538264115680225782280785364250952657713537369913321124999080052227278743853620290454155363564110504036678880040616671291965157923381714347338071631263528073155570204555829434905112826990094750400366399770670933689353135325356675509108178556304029550266382711229541924926365211179802955915831302632562579136538421047905753558001674245237308119653278177612165230084793013660847674530237849068785508809146588084083004005867599300281421980472390000057678642458685094915771269510733589428371020037586263245182945221483720557429082566264113929322510603390790645458127253376020126968845989561661924489248461397332538841914057681185380972882771572676547531800672305539107578361824937057953315937363964347303414268693908345065571385840776783098628596401626111390444663243192703306309279941019919824946989836505357932371809268756502509085038387733574150644470757556709551198281765892089945764333320149943532973132994975915918799639647027326489615415445597796805774746043064578235189016024604187203014472575801901272146343656965808522896125206075082545764576705652860068564536242022573708579380208800500189102824940222534129083287990810007190408602320702112755293789424848575780234843877673952003564874795444896310715917878967619768278227161517254722710390014549093026791780116997106071086757313085240947987143300200683688622489851425977399501029537462269242573277591057503061101239951974052509113365774948509934183059386687948532233230974102985496384470318904618225088572255462853728920479522189957950473442580766445701998053333844468657292481144718077599938850207588038425418878039090460705655687712945201562831723925302604119489605371866252891405994134587100307986617567855184529534305322291483837832294555301977030603337144395846934928299483552275178079224415557257913775021396672068840197651081470953522450637652833540446055154798664076337976913631758102099633772012341645365317994653704491226825057741837352515765138520650776385559402640008636387047042743041074880221067994653033775709468375483632766014348344223867625990283482104818310210526361412267244715922277845422811739971184032352724563341602354699877990455401634642726858109587244701754773396868576306627192358322660823316723715267066906753144642652909931521149583757044954309579411139129050773635175821184949124533080624436195518947842279175693450131236486686122805091460766865257120168378830086867733833938855792888206034968886279500358931819865601697114830531496144149868120306208325330183243878131803440984096421419550939091000346719732174454867710022569160615139921150999245841921023818529729603760535694744627190583981444290590825262775117712294147629137178575132764960521863077216232811486434905296603598736922411990749990477483194357116075489493898457760025880570948955932953942097958911686336007734064271405241769647707544409807694422399845361364867273385043323123469630175212164617693034478447729817214970775654896781379095286683494864200874424541149316060855913290900946097044724595069185858214079995883453819307335680914429427074511480145071444186803942550401646865651553371228624396776696158333855528072703665709306085343933465240670593426726809472351451937524519586712402377761622586235962574131448434440097355906712395418338601928053419762256068785484528560228030116464670664285806458814097024857196699768979708994984241395404659170057475366151042418815670198566941200240038637487633030052622418534257835047455381240359511451941493635176032216996624608611275479607546540954416975577461248982935030447197946879791550878969820846314192462213055462636795943057304652152210398612766539726021495492116304654106511921172870349940858622375122549722984199672824768945231233091613607486109780579219232754823741341737417235084017948931551106409629923728610090794423459763005656613210739536472854404538027812772175873703722344906898815429679962271658107505298703330728701512461889811588285791622585403796232956371887662514747634008829444253367573546838214238576326684708012196618887650227489113332563258300127148853704293660156900197525085396127741689496968107008145954735862022029320015327747121358175302496421732130185741069912358820723121882975799956410949120715076657706020724463457561046692258745201669830729903501798194511163064194878940752606123095904933840437383758422321983618102349412536753278216801063432364412873057849960263030739004548507849183458981271564655987010408728616059032561887241348199354858133051509145119063404736053608999410713248816833330404448253712966391240890744759761542478598456507648742089633658140950204776510329723846399312803717738381030705008601788275297273087379333420612771924793336182870258380060869122736160152012772198401808868764965804589219793807538630125302290629897799929440807546243793450293385117916483419711579011944270191519393929737458826758078539408748515661292521394821298482852665287762982047223503727614909821686822252766848887258202923766236693871350924158622932189420033845992159820007303036852170636587005441203192452624848840750783231741911233239832100514731866134328849374595732963488889267587876118281104106314064665466327767372334696066274157729624849290840354338818093152062341398586667593234804949561574847089536286631793078787287447600653284119958183054420829909806142373542779284967529299814706482063734180539656793315208290254931155953404448273406945880380579046775592690198921304625498657518752004894929136566754714256591825984394930892823523285496257742707499830947300538115396636009894433281667560006580630953870538200936766211277568599261663969738975266600303272996698497915505315374805502809837124764455106167881340358110100554279334527566898740881913397340580066699279101270151289283423543855187189880708272838131728214395996003276325157170747350370166558596125929289415388086579990064916562964395327160704848484781821507495837250999814570237997636929566356773236552180075728039265839136937537536047113402627642825870999155966431230599506886935151719432925882093445580090817723702384338586248024148428422376659610779275589056714185957064450665658546116194919002443455736630496773552932734449330545242013824151450930838183331557414024803559120159473822897059072079679569465898665502451836736066005198173184533184774819084901628861035347032453305753801382644486932902485268711593864665522720760780906739749362952628563322841919397082439283948037813296308501983968152963012691282831006822498141139294770669808872261603378131155195153377597407701591481727142013858519209190581122005675391034574406764407021039291747848967594755201186787458871695985202149239225842330023499239944533980769784923382929990613338753216601634306984178073967030139641598365446765015720220043912712343905006159321578807999938936806505067263337247106200864846187154721568669128444955247907693437897472235456612907309233139891059514517082944897070975353386346722550559962027051795890022474723104189214152379825526929284770413732034769732271085474245071828721686170299039204526854377189157324036292286959846544822528278820581580093439237809590878509794407867464329034295338053200408734526945862490465327682547352838974119199632153042339342988490870214597901935578873570035264687468736901460184398136848189489409475435499989049036615267308268904755812855563742298042441957401620185633997997224880580862086675199416343146268356624289029453584858547831836129032180646344646557680248432711178827177370166978655430202563090680609496495689087791538028801276448785211664033046988361740537068032017159741701519480648707477225480615391390088538427027256829239525058032593154992673876029556976804076313640552090907815341248311133968335234268045550649882333456705187326616480674263617894269407325629523995481356086822854771747724718940809897685045912067807352715650779262371065021049639267263395308378841779794668212084480961328687813231950211587985523285764657283689685055368691597570108167518706914112593856484251986316988230765779775687944076971187332536332838002519836766231119461354532609937380730829751222557104764038146932224224571643997309857992005099851627051128916156808831493276122619947321459396508795342650037695525019546111823831508553085874365922253324448429757742716007281884945057619639466037550011170434504752756359183642941969635785497296590649860941985425290564413197415464560201771513821196091137882862090053550282483321404299449653414343111169985527565150482070289975512735800321073235251993022232767978617084154689712380589919442961068620387866780820340112032656671376274268888307060883988992221168002504316528515674819564895681152762592134782851060538582451575638800956644639396578344022985299405557876165260080289200414448186274013534448791863003234713859671257599394366881928777206468108898011455338218836010879704722628963453382912437907281962458907578611063882533651070116911712089913783054642642495137940491863647263958388514454243347972241858375028721746490348406267302817851009709152388020327664375137937505224645037915783883552961183249697392588564486325076839612636335635567769227541501085011051149350002325492524892506914468792739853245306901896388183101689701830331240108027293247961485601339030665129886361890524574835827791355852332062740173813871283180349460888876182982844896531128045943394439011137471834425822644308936415183440682923017428050779736133698620715969721182714269087935082943849375460631383771072078486718442538530783973061610931444617290371279113767301292913315872344666145332715788879590603800984428283657709861173324024086986124797379847005103886710454229174251278632880888029215982540656952296628279337155205406820890103918982741698045238668924646224982318596048451124204694648255557920066631244176058408456365784464454777247831505391071227939390778411262815578300220758524272682349273370322001930590754138984149249922102126411915608482264976493727639209668134080406248608753214913857796861414781110051480444018836609187942509753634613401077691686310313708346221439179934570895530315735417251622498950620126926028754126183490870801414131455656783665760512738393418057835445126526773456776488448109686450676268942138950332535604860533942499346006453994012708253708994158684578786788282591958131423548736924822428479337373468293743314099312485544285360418974432952745318335038276308178975680839983404481490383072938694845872334577619412892464185988403778621615213886337079933853960451643817081445868720076847132055960833345608795160662664215583546276612189404870762770257815982128944766848218546979066652966595019307347615845319669067636744489530823565933970404091924870089535046808691847214561836245080565937493298354726129708644017774058615278022522669634535869894745786059133754719348678584524604008798401689343871999759269228596672033335001009536614124396797731324071903315095196907516407996797153732916669988464759090681658591631983475487441639535592449613914748011230827229166913368382420252497777655019305793653423558519727843577773359324761880399826106672114246903516379181693139675775158944382140717881595360813634852236476410457504833449523638442658916363507878659022719116704500099401491585569425931436961402463130497747697429159153890490638991587741330264821299587167682660153092889723696920972717706158305264916558115700228402009499559213253275385224340991080679908363945141760002135361664475488580836843316577875752447008762182624386102965809510066555893952559864827556213073424587057991948669038577803308359795030540070519057700217939413863122634765508617582540907656459446667857420652691718514028915315808552509321433126609885952525333929213806311541554492487816247300513405955001228870940651516225604514960187794529783301344604153162051093190966076779161525720393792655371621535869399016724634418771279938418704661489480568706402189323076958296268547914605566033324943346499417268561283406822057543296126979786710359116596592731002800039755697830228122612311300881873454880841802814411493386283420841279252174809165050803489203958029003111489727648528649926415487070195726349660613478339983226695770750962645239636019323084295646023407211129426125162397438483717239140674211651206769276006762251239417131075307318405383278990651740974825607617376910334920029653353037563047033062380036925721221172561026347898331975633034805133585388410829572783159869975680398389788106586527405744860213074638572806117423584021923157306288167701828224641320921445254989789580721346357650973788014547622679169673818861618334366522989023847272061356769874178720585566489409117724417802292254188400945412885223020688033679255465609616136643553164199565210335954978740883518681558916312511825760564010548842205556711779089980789027433068804594093802902449414903585548066944230615887145048864343060008764206902277430539751160848399474605874299311388739066068643825947085220072692974303919770032490490166622155076925812580234308939892103002285650433818269936718525761768900663866330412235794400959238380090705061132373322355327137461372425429921591811655593451391678268108970676102034883585161416055519967168404128015530373733692924753494576338573892578960373878714640055487608008955670572480246413861515604391447768966767654020597812414885354817469457135499138643744408626495513419887233758851855823612823202902730194522076984059558317014118120092303697366078378316891966555046647156229230786364763486747039016956491906670276200505690536359494111889762858791628998681893809877285612127450326359772204834827476352845529310869559437687582349688055840984246224346009093396823170390487865808648217598776011117111400092398432055170963940263081203180636226566780395324932000112510403815226410456966949363043132255562988381975485847813477192919099468548908353903105212707068114348683501979725668711319011695450544878133683743078649172553638710359150222326366427286837061069127642762860541845293969420983983246344406060051255837224313669507336369126711177675056936650162195160571434142928333970702981945868629620512986244563065426904705346299646188939912598440043824480859463819534880854544673199533136518439905344453015368908965688450919639692748655609873461159626719413162216082224444980973525991627553772304349484198876029668660624666899389203201677028718974244000280804289853545608553726409904414491704979344515928713310259274977674772923452752080826196064383898072541374610943157945081286736769948238502946097338050299308569878440870430836663637400413156701390232738530406816167189045396042482093611841731799299705885599121019269992306458383242905290353920898625427042457624161219497119936824454245548488547323645358315334691600363485975830379725081019371070454149935924700427590934036771548821286817498017328305862801226583334602900126845970674633989603286929855410911178384504655657075878901859960244401821547310917738581231495670922513805768562048557636369245742280571391867497847006873620697603197358493916861119617907501520500853785750137868583134044692600727821228593842912320946128874112559967421163926164422530021985783796850514226852808987662064073228568089385747891041139054072941546277550504498257260151290725683300565950303690491367247306116269357494623676548545826797637985699525004154694923965432427381787026663646611158754531018484687467990580849401203123916555029051375177551670920169405866332088260555761936752572819916708755037327476512307425080929636966897027873916287882845706989992320478765189386496501267828228012385522653462964430211033425132610403870801429213369547612563568105613704338689381750555163322393619397585419302388251344079071930005298668076837528878887649671369146412148966291073001321305576492326971793768077234551931467072108015571375714473704655172528415221159887349417652412765602979200513672906036228519459930764854704559161396589083306255601977409766687536651249356445208089552167772216366062219528860332323254022366810253908831976341667525624019653372770115780100650071997473785919126520014759931688184347040754932576107964985305489684524447137023100216768828140803950720389023173708963346250229615846012572550296193415330834597055671243012720504403587387175378972941837900715886050050307753807893422951747072254799674494620866578595582460369997530414250784531788240733616541569213046295294408152605643902095677759655709039815323085831801976494029312418196670211082611374129892272691689445908999086582005494639317425184840450242388281438216405587975870419748133147930798083288235720317913425217943495031038678007098510183670493032471839964812043374352571988099951795196527629489043507378365135933914785240588467150013652928272601400672610268167078165206463709865992245370272921257473174994510638446892606010470181691509639823029516217558118712132275338984705945262644441844059717165932190175554491914366615767265106010253869700533960829269691120592071824826473710700419149305287651225479333728298393252020825481474799294437255874931255227209880512996654693178600093345345590912004208001818187333892616990414210863397274057190484531334230306334597548038286066656431282331489030867498593341695221167271247120882292727959910110847467691166254225772849542463654447922068797561085474071442625972192802925564449250055157023335073004056423077329355751728995714096739701039953010036091013585518233731430293805463017614408862333487426885518693874855984493469729365778035419262186837458339361924504625578669107750182131351066483879529165142699939670957455863577149788078655385405937273563050602552036291548851569788285831119400829751775859680932117207721174142067030718579436367202288898426885107033444195538560315143766566589936172810520659710705952980148911256514642544773768307632267473478501619868057671734820596853033770357624253354354912456149900233951740329036074025881655307050245107501922488845963130774459210622127581341665763177414048182351404185507179351104022027317112365868179702150826508111808051908748047420051426175101608616966961912388146564567285352703816758775452488588131147348360064300219103123112245665642303383706512562142582153252002360838485019710377448007980248800271276249386146192599089072029855781471560464962876963812411257132614807827934197877314499387663170036739078441957906604271506061124496507409517132590166175868079582600447839761270024003200022195318159439657005706013409642849768575435944179631666561487127531779995501714793930674911079898284171041709300529836383841956113330934000351971355785707605499180634073439405807781698199620500924721983442879143396023756743829891953845154264189049403342754725101564828838835363298482606143845308608954605433669532892240249294926917039723159095939567498060071352913895340529406062697633176093197302748048507819766697393768023229789918925515207480589469772008464574916573296680174887347700427503620847103597767022118647293969162501976064467534260005542637017619014804289754781924720958431930864293080505646732554770020173549989464290012023931835481263650702287988175706260955498884562969617586547060606090818156452641216306284624046352038706419802813366843111164993173804889505230682494781703816520741426776270431634718626864872048743890898000637439824826637820786745541074214649601681129694484619828522278848395755936444543122741886659270408284715190185192165229389087190509010903236990869074663608886704240636967810364013885789847880064727814473438949752562603529973636974340460409233401674294794236666865955403847765216950422550225995417608307888064299236978300645935605320061571509267766989381010978025039706526525634454547210102875705611902307362698690428371044253040230520724233276919679892079579170169213673787277519107131103590976827401733096736437346937730067693329915637206050414529884955742832980047372650958492900432275419314188183931977500121283427761851942264652277695405040882514121585398398422273923838376559044110168868656306965903647230971123563811337967272208720922048651857277218573995146324698424056499926384425234375204844360291795664894570585304058016702058177947508084945473181789893872415700749295063155943121255918863300504263414503699444101413353583550470115200347514350355791965466796867125488135494169956197416235685264368663136183897178962159941858272013232009575939535252699130559324329840010291710136549326984020580780152343065204910979293742722050726395228626328196171736976822993622823095605686731277059143226749271812853628623607464370736672095652707590917726101065330685104303223948952160765540065592574174538772396958448786147654359717971677009449311510021576776413035258449541760007379760053280570305249908869764745142964013887175282705401342288910990795727894463725426443536890204034416616406780022509662936082152120469837843963898132651560006515782173417324172807170205404686374567339171534398811239960835159502890217745578548005011330973513511148096176068207432640690819725179410135796289595514128897868772944815155638253770545975397813059442751168427751835810010368352693194368770267810179055655480791281492775068138201844525203562658405601885900142352521241650845679879074215003346641968396264976428144220332836928907645019633384957271564349238281153541334715684200452970117652704183169668641423286734283279345489241382192038108727254330105415728394306691252352444532283867521007659896470432790634293858013953079466340982904851433088972719642195882989411395748166487349343572823442611205805727632653265699856900713692450080004422128582431322874106786519805609910168660326654686929365936389625930737714297791097497408281966456611710410563089940244556493491809304460025660552174322792355156682512579528824150285842860587077780592163963487701410732548191903684817922866790484745713326060936172160557789028876215630374952846253956444177389496377755043626083653763016908351629130601516847759131520646133093947046633421110611810047377468596384099289795854894118133847273361620374720501085746021097229893578825026884983253403346399263157777026673197357522442968788919878906363800843848985002643811159732304579123977913051738863466273951837713532742855710990098652811805113760117266679519504526939957107705689106347684963088031742754349283047824442889036449258970888525532460004776743740746403758365017334516439890498563819958549529673858799798946584765024129954543622652227812091446395947810951346918440557043356685662702485400639340483869712589647450843173571693928601173191887542996833345894791171751638896544755829668859855504760969815891714694458480499544296851425732366468110641339960192182805229606735679004672203184952193528029900523308957988116822130721165430220964042870183262942816338054022424853149915878308106932930477729712336930670930566201752530941078369289703850093739989048351461568620558522831638795836373990578081563223210083900428596103943453138504375095685997969541494347907146878905961871391083697619578995495566982205574580726699687364839173754984536122632126355805663070908112070734094147579496077216384054938961589911048845877314100444942502434368045569844267187017399627959515551668122725979400027393272847958706432310315999954662015320861126108112625467945533342826370726676893552762160026439360118771195191625247255796260333826754583069417077590423735555774413327447524250677683021576921150718243992653880408587453530861902560566422620857179046394119827744625758636292053276278660242250613076344508948218400815400028597410961200790777367244057268839165407967989360337150958504194788413015160885737550883044744733161537484963856619213510986535792278762866963047256529717220359005545107755738159269388432559098617795458592137072108737750669186316864340229383928872461655742995194149038978182985754005026397029408745592693556720008771565118046415766023489900443127210121688686332136645282885539144718197039427701348129243534085400899128061371237879715617326470526759343153521967886487629348721396908915391702834723731865962858525684376574246820021086795793072917335316977880843750986361781626908397772626891950305062696865080558534861767753808192815800314396523397932439772127513417652724293802193695386662286965970574198024958083356515470899189157253760746533622060430853818146868058272773077852482605186546837662209485574232310459889397106168518152507393759878963736821626435433910619839337090655198387522914224788739049192429760588646633712007748790624654627728235609792014120288650548279337143781287991110725181642630698441663821007628387184726169703095474951184976973348231783316305478763001576642251379520449327997065375038471849664864649278809872274801535310596566485919139616291281728582497635476097829930044368543750322273633074298044984508636931986773689761146804661909439410158273327179652324140001618514900941185336807073078148733487660228562007204452980346679340365719894927332442496484268473904037714594318499704537503406776182668938867738737309404424909647738157296596337564701501543837831573283048451118483687076229929881278026872755451399671714218812408547887240973099270814524460753926592629128129103138037089712818461280584174963164259698094813061637835446578099007108846827874663208732886353369574895465873720832525813666995640539200583764106097850220895912917526255331799269493605747195847514012600052653914974071005671416984459859369362118369508986616187286517691952242622538140091370306279504452100432081947506752096404544897946070718447021938881309772104490975237146626036531579522818037515143287720542479159199486229780637155144217912214908157499929179941002092528722675760104169802681963169156693176265500555857793171663470047082530024268172746692787670431267156960501366449188360793132228840803006199390367203516648707474005258519961236892050198272442563048725531774128330009817374756345150244726249504045353962864923216083372947918628339590591790268142874673548396581023288115815904210248164132632752443167442771397768765477663271633248369839025901035265164813773412815650505862725215481962931355535712349232513907348765276103953819754058395140231004011155941478198496666477781154466067292624048332521784999684321229784037583567424367591583182541811428076103529569036798277092026417606616509644977213817705903087685875528924967157697871029678901341731855427622212504093447984839270634495693675743470278517994323422860292255172760053132103099206780943217779905200747822956469305890296593022937201856545107258281847956410309978737925886404535185403820189800266516545920745996930180665770618688127187700121871632467100942036243582079316954743776066819737918164908666493307717690769920870992183702553523255467622208186841430356486442451428195171156838709263864928852524543225812370060338360392694526761955133443635765778816375413981519133900340538197315950970894556615754342784361942927555961018211359793761660939681109278888618164970599259683823130236021537935592483652329391019969399093983219504103547389857768913514540085470398784042701645385941523980284445359605343832065812414331259842911217008041303153719742511997001427867176166930345006415699386065122257152967861258994230067778739388574323504391149753925766000289957996611913865025280304471333376054773163958960941803410052775616042392241032632665565314977973022894882935235346137612661807663982368256956506313930165737051922352474369524622898459421693928218236425828963588198466888269352424701667957257839053657472462617823802736887649905353982741903126609601910158772166866774695906233527608139581002922718587321474701727536754537778553050931878660623253857131779143990470245462329509781860911824636973510274754177731682158850617306542362503851957502062906077776135831812348968416435181667147328495035026440818450907784815587080457629923856642746059639911942200570996354717456902474325865787718188051681080810507417650254736609788843967430719295761525892301325531576151595694162417761060786689194254267149825714262160987411042874796646208742829586673153171664428840022341152287492473885639315665242715523759588303503650919640855822565095303295731614499744033290684297943241745851575363065740868956044170339343096616791534900388579763434397273647132418468902083346389820090051920120115239658046034628520973901044206391154136309187494630561669185847814807563000102932031616922539775318221300717591921458392243527259072585880684863238151013770545568321765965648788508368576127143024733350908314868412381411370119598153621810878049835484704360316329216836742201383515039427380394690875878591677187524130057864412044346747910025814948028611828541670567662418851439155237529812279284398194845636785111260407220000651481774779995874683522828300417547874235073762836587932261747131541918244514707851174686113064738046302808688901155121907001796409518990971606536483258436643118296359894345307157946523785854197015194271084354461341496111766747606089788943726030875962736526016742287977543483027290558306851981456823386005823042599725204724761135187960235454283810302402561487186900375206457269648406530515958198450686254281183928775042506542921661918617734572125109320919844104474175355242610682527173912999188511077166301182226758062166846492857357178551314995869396167830495983193443617712635270563557145927088741145808807959209400582013034653194871489904504669920257586087401293649340365654622503468920692195286721984519379092823207569321293540874450869535688806964203683084551904212475934154713471455085963567221849871348522310995403167017704053416359105787675689741313009511403639590177967819104958191016685784214007136039816981442961581400899956400596008969136225200837049327132020355077138548840583669798177220963579290031855938111302833302884466896614458039989109278246600372458899528537263538449484356735236910304607065215565660710587199137037527320093507889273881280039094722391482636078834745746704521580277924889109918930470310805605954674159063073934764635839004907020876941442921688377246864236686627575334247129279495357179931834030077061658903841798666777929381216671987780556578814896043490125014689285678981570341368035969961134286386820384352262442670606179297786673820294042608546236081644846154622926241158311741928274967533731866033349280826636317476606098665235915832618645928294774222814809085241395067791908048652995664389947096630924474822253245403296106435539696895394416228732688680688026760111483749178477049925988831548080815483030071652955653367608170430163864455340230357923331246508463015435962913957148490409612016353772275303101452563416235054809590614133600245590582713891668161661475847390367338125367692256010466313845189651734606847882038823721791052845145629158632750214200405021977471953021598455481006866578793161856941587681878651245577162150856861798174342101187417504159504805051690913180689678325831511772574178141636091810369188672049187051908536738820665029229650148076124766060384467245494766190322053278926575253079872647026529333097846852314571072645149662611244797294422255689867534185813606549666864766542457984121990449835621611182836647094650700145012954524282217097142724163171471438323597641326385044632411597383653909148961843171909449974006716679585183395861283040748766233929551654721404752755416350251496580130473735539394202241098890632695725420710069880012568056144717290824047060909185486551713183895295465523690933270572818029438667171125373110050109784930974503629000362794570777270051962450978868458009810678654740372555877127638028525804926378605275177677730049434690178099293822296281437759486548920856677063810546530940471222520929125654736804537841158697523647224296003294059322931648712236631723843277593656047593717188294337789396502272475295275614942486574156114096623663299123599904292279082043300936640775413096530110350431053221858021733615878552562669195013619460044378781463125824218258562521847825482188839297751255265326395108770245165530471922357661619871375979163838502154362859983658413831202230253196816068693450577871247105874772587242364157981313485907958100387116720824445563520476317274508005816408193018245412628542068843303999600928370728277456278176078022086907671096959142265655987454140002976434799787925431098938472901402371195937310499360967703632945639656507406751312230416842147196306996493329484273170826119101047324285700440271339763929801219097678792658895208785481117455478455287999028403094356258070009044287788248427697211778514744788511309925644178017330315472715068880371960670381831639527780910995176355223440523661968948410592521953296693266574485076669990166991166381764111796423288619376030543796767799746759026125840639402078797089201922631163606382457875552889246010407207633109834620597428829667871342003467634817025907368062432303902709019190134801687682789880053843411551475780654142049731095804101063364421779828575250510785367731609109966440320387070453701153497678669018474471570561407965518110429428111763521471003714840252933792453126982678388514224272039293920454085858870972307403145365986828566133819975991358177135746306942043452332469875265340957823038310377684468737066322183102530828136737937037652962680604698450665872394921943619658780236850619681804177469531102373063728702346951886962658093428296650994310086126118848050283691014805237788368704179126614587218853346852809485331342899799247013730334012050435621546512201416299089537188605173060527648607794212498325373457606201514568918758230608769364114159197258438333723234243727477764158908261417503139105041209191362270806459799955809523241513657282359678061452892943122378126162951776025489723269393419617112756042289746604732990936502938696252690459619174311950497518266632957956054035289598501079405793571371326097685382428060696856681398220887276323789239765358720968029649560950934370685101714656889958813024497724150846009097072947181146220879071171132554575223518392437611792303765856552709879680997311502470771184127065074407142201162162820126624703136938558871034903327765307564374287482901675792204793203156446889950909088822427767489714375871258346044324242042996031950139151898693744492720230676419583831565585239162697872765434382752840490778051993669909108295148070278892913138745555125362313489408951631009445166361013148548714785320312993273387060378261398917964617468928148512239178438700152102115766765714594217569341510415377672992273533281699635396554263963983402159199764502995092742725177026813380817667192486154676932999665141516345880730580184593130825038121341701344891723051955267824936232850813732302404682772330510903572640028760928962762007180776510486314597852789936190820565662005413920036960796579117507842606555863819441553596689759273203320970801536298855263639060031693511547245626009889941247236282667956488145152130601070438709022690384415859830098233736692819483579943232495313121820087809499521989189336028811046328643159957700982551882798681179858705735023062109056073669514289610225338494838957671643729609669846335261900071138039263383576849435674058304149059193615751036770359767909687324489385842857113776412036257885321769268854806207771515026920302267494881587309215141860939638313090668470771904339660264189388769334875001511621285610631568632522570039024301696115182886542448486653855298487191615821509340693596419538081426675228868262258056128724956811082191495014792487446686728954122262748438129899611299951163379217301714030803595929984580454373110111496270114026699189059845661884617435122285062711463098566787707862161524606671174218469859996139667409504941001494566731565622216222032925759912896052182151806012436374546998035947600733538651697259160190087522272567792023950563151013844141535241558362944176465528385532090947091648667731973690348659442581362479727971009680088765495602463081747148364555284700915130811828114982247464096980426395097976582111957467577783726694298168799871293212282775646777455691768385510488652377078245586578007078452439819485295755830519934576834884946580932490082023224130539039152217696887929653030770469057607160783737776863870352492922712584717766585556635858486910026437912719611494226006259333773821649777643474310902271383293161852573111526527458631547862682494790041786140861964899785025059415759005777225991469862247630619552641982678362902861312637047407258499367457769683986779329461796596829216030918827940046174961784340943203177073978664505653585940249375926051445390213220159294655189138708932833058372877072051265923696888144014428398560720763270826146962131445697636786723622556817962655210704148713330624273464728044987848970301190573063016527559058654445586928862888809721420043839964464768123492000002512264621061800552205159559017345589934553456271941249493242040673315774391668154573294137336973357372392568245731979468603320295657180793106188627345102391702296037960924409022206166933451675524560854601594916713963320017658530940001215090349453715115388992496087298991627543866529178558114496930759764832480947023223704415641773819836654650938911061160037946987718997277717668947032682755875569422736985357296894171052196090441136412970422115994378003661731784412553322963638355348233606804114697098286908757526609597647496260165082096775455032032988390368078005028877388451220440077533753354907639376066231903509269702815944245883623053198859368257534189315500753233161912729904499098188122848000765944165883949340632117654908730889129196377024055855454182261976130742154793495277880080487542549012520003722726135026646310438291481077266452193115902774488513588212671240887206101750052369735223625938616249562767096776204981705166579843548804359905004164690477299370364637942257601559148980547007510731866465290267947965445422453352834350925173909388074546606039919761640479763827977293164154259160318647718003119457805315557571566900327341774653632806001992860178695467659726771362760806198157327702261673457243475692365273130511378778579280418206141018180973251345895121060063781238330071977371451329049521247928403581871286411684033939841097379888247734254351210549122715695373999006924470499693567385294215439242042932635383290102366381494719787914982675320770413750281931838737322312092211528256174196523838932556430957708432063077622590154463276599819361909277388387158257731701305604195327041117847660338901441403690088509107612557862130546406927653620004725271625267411994945708113046357734478519238800043207405574507013610433882021499794137273586354764591006863543368521677472079431141559555583004047349057391409753769263079753278761895535358248946290635944936854831376586862906852939440197382227108915122518312106130519390668225856623102954634304047827049597094908653188314451027838949075133168198506362784090278370449261795142708750508025032359361679924498338661455593101803201607796299953798958856044002937038887705162985586853044058657198471883066741215593681400745388518385773445620538307295925566388929676397875885608710660408827663560647273154663845404231031832860610210587104353652157119015728570979155247171189076711469363031796047970160382817030310375911033699533342267807489976453428423922383639087611666479946681952039264976772610831835088837456325596585934937880750706106770183740332587172530296056961521886412975445361141748396308472019948984827600488077636797675039339554155358699352509917895740902031475415732227608593138410960994808273833050618176116299028366583579809293812868802693971193045924500459077448027000481391667491337323286088580659022480824576605817262442271368779540406241548506259654807975326878835724336672458411696496404773263258823748059435315505279341757990854678440717932791446663469855787029851100564495300539271893571753434176306584428810129421303259291615731734216438711264122241449682489870271448505704107354224931296908392045615939627825930158620985188236371691476642173021928098762713730296482561605167375473182587508356683868525678776838972328377523381080818184674865236804793216116649876423632165140580403781386216023841126956541199386110775501753806172012476277758231377662203423833355462665121985999344325112116155550864746955704843861151185197703489971410967448266327476045261338033063532951226987301282374355206761318110486172708484357739553484507362468531686890659845726933826656652542233730748202893096579971345119774773615533216751976959245076185207439315958042363447079660084347875195164360106574636384488761503521166723492871282398150646476015940322194710912125679646538353353006277606493544451096663610239018440555069670888493501803113765042917568975297733698198962914640021129776035544581015595916628015873240765218479988946374242691396145261507036662195211373181248595484579846300744253196376118136472713779982785797245894076566093786959867105203222053099356775475544349561304637484181402518233449661042715605647751006140466411057033439581090293786406037786161733802242968831544310391822575474685113761146180822799323374460643930805685215219866329145470137590945444653451607329495960450120645372326699462738198909305945526716101511205485280438945518767350000794568977915079379947963989897243630102604140975326271794249734737442160903169835470397255703440677363929049567923626745099434936976103647555573008127450199203917946378813494583449829598952635569491725331123634328563424352048340188505394535002603235793092286888710731683051833881738071770582900320058864346378926389026820426559536849022342379121127605323202687416510529484266643814990735081046541134194111264879358525023817697014614226736734907894250898056270056230550940683296394875702267211140195419993987697132657844933104998198489329027304585218665204978554456686830272732842375053486475984993881646263431803089602409519709302713589490768240133706584922907415221197462527390297220623246542729915545977540852604592858999594432177064589210150881147826453025927763242524096577178717652908857696263186173047645016693725301538357047418692912090955750523655819820851520600755149603539161027999728820036833382227373772715171308468882251947820139410311782005630537868863470000757474159306535513451029420383329826055625558591326098650533389848959615901397079511652453332415752947638802241173462812693357045368621507469872266357637753145197211867637548715744910999472766254252791873731673793719669752319748729991763736424585294544136797196006648840980004571550771766456959177345899641828971739010646870861141822378044584565587285295689539226127796991102933271279955141792967356183086944044735044530940819231746774812687298702510173297553247250119875120088917686072009261682763020360910563773188714988650714044960637356696360759160335771302939858955257168341615610382924599338666619079668155830789093559279350778829525939438770489638270629069345715461320642273481303410983600194288855924641487701760827389228769233701744955568918566908141547122646496906072590680089338163753056440783428299195306068375757384410623251436932413811012074175166037076366407086052051101537639537069899753181539636272540143427980701983916939326398141371170251408385840101749976239225171895075780829294890847932423049106929108445482505776265913626363929513552655071794726097049546407444505545271940974886748154637101804248397953791549259561171133185611622465207625695173113405709650689122477918098284273852834212353629854754660466114253339249169582773301078419979139511295772022198044357313098943740659511000449013099871640561980163303333061921663776355219590202380977132391895503474485072071505028287217068912513194705988011341348509471867782320091444530893754956329243883898853887964231992759546903429066064755811908523216612765812680297085828780158896479456976119874198719298689898483592418355511370936266030213780143017003350505951204204516930813027244882432493193490533204749258053387793023637756847591532225325870977972979168094840045481244507778112100763498508149596445769873567120792084685676029754313622296301077767071805282589139740352090972046065842237885041780549861956910072987864328705596391385760324734464915013831468757668562865730306097292964714647728763218096031602062365385158479169042615951262916744986538622505215047577171949988387395295633494260278685466703416608842572119226738697502761544548688017059735274800545334317716558105749630099013389569255559863855414292965503653451140925374665215556127874168682546074645096874173598990794243808139800368734331568987931200739764627011020352759808420859168305929338651090039180588021883657276755623190504960722954466333954555888195412333803748837794677990748235356526915256110080909595113959534877774438738200240070881705374084920482779698284809200207349922368777862172004475531641726508952466687490550514838535547900794325835708777837002638879371677521123878083770391356132381361471367837825010894291596735734895078949511193261783682749479082168089311845493996717402156690007074649037054513992921018064809847726540885202147348712788499833430846388359457698103553570342799806130909063215354765451834450520895449853507471999366156721104933290475853509685972522528863607347587622451794547837524164972271468917279523440152663924648526274102140872802098763343875263708751344625264172111505360235148626491171713288029143742087706472701403066938121359712163760017948232392839190240628471789497112602019376408193606147641932919548944528711014480729142684458083300007807809258343391703857251049430653441413930791671313869361391928466441683366652332193461878463761140712587112017702083805309099995066230724746741957458383563095522466837804803027794208058781276917289987591143728106121517124313509178078187419781782657032715473313016746314357461031893888730870325092656621454446641047547132192001179921026152110884224089109400055758271707431303730285510053722130602983478649079401819303856011203723107216934682449729520423168556750038092749498556912610277955098098896013551391776904655394240821880454687807730542595301755643372742278985346476296890053806871133760252038764762432879023020585976043180669941302545243959676842281570579407017436652813763136605931382808183662474764466201818687730421995066786720827250605899671075219034409506644289868676879069774152270378164691579487599786183326367300322544671295026853991176937275762380032161428274335872259575156219238754359831270175017583366471532024378866768006698687683695568590172251854211001099091638445397970185857785744916012637201739633618982236152600737908551671226550191277308022113027819283708945488475848363152195587494624989969269874328566992766716446665815055957764835716655474429683250726181808474168064219449034727559517351096964821280106044246342246291825690530017701097867254977703866354477875659869237217764884593327420046681934750141085275533505117250070932958805536956345526965215110422742091513705884232705376376652236965066975861727560560729656112958548347265845665798743168951038534212129197415333936471943208603937931054627236286006844646790918633817903024290320011962703803752642904381134083010272319596371853340615972795836394794699696035966606372293736639012783194354314896812910888771119912058972446479946643796380377226061598556030160471104430053245664566652943981845074206394659248756794067045109468020216508998855887756619034101860220605505436177039740044601371497902663829688457128428112279909299348104997516933687388783977346177184228022395562965476805599614581774302443245248004598964579134528848417437558534245372696848354409110413237630071273226416686660144567701197887533955201188137979282715089458768672493768301354839822516530510531941626178173161563693502067584361943615210382356546562730167780269551131928432694470322445566741709980379994752434359886963764168092994196040542240818439359925261984856072170271512252890153168489806751104398022647616016863541282366136624189961080300174659027335145915036451067968012452663315399187146401051817526536576398745589373120629640611085958839626482933763514431118370508509484961220191342416246208190438627345574574607661312505232597989289062948402094714117689458700826704160556416612839487813966817840536852705479057781712402196972231251615359025559393190065893841463670148491039442585856626759479522870195336212481056032815110542834925940001573330145344032289230599660248647755214258530910582672622029243189066602344522522091975364045919275673770279767052881602283851934537831727146279274572054975867870705185594944400075282856919865613487058517208690652840333946745591616724176266318463324629667717118444521017572362748190622303843543676869866020623673851825989728916691115976752205751357726114608783799865707615565303887639786867206461859192769921780809317973859403560400715980675329893302189461331715375124430860698142253812224580889294046503079402687594969223914989501836425049211940390364717230633687660725262082189818757299082353566683436558046701561380954178478484087761290932336924125101285672149184259263294892685531123620206626095873644737819662850744475248752822576783730166282988173492758262054374116850991454122643950744326583008840544868430751853425883396706752470854427764975947799721226246070648786762437577578246317697657107992772937800308623971051884595633760079130428722053757084472138623668761263697385003070617358284051993907241946080465204901635969885587413226953322542987764064128921978868760737537251315851000590289477893953736716289908196601792071535286541734490150708498483747853283987624087492332175067647760341615818982682140451612265165951587473908312425008578381290353292523412606278854387714549953705540329449689828154581820673752227381877034899958465278958527540220630883568747129100535217910659981566747253351312563159865840002629046399511290599173301285774861335485390377192080882158933850618354573750114248128705596749725858322702293593823859186506881221760571219126622164010688749680481547412742827034066264728869473941942036483754313565390484382847149090502347048842408566865465943156174560512762254481145042586405773646009135112992279388465392650806130824705428685418471636614336257120036697648371659009289942487118048120703560975644626405662545600805753795862031820861743198190056507531479555428247392559250013529248104199970785900798037605057786774705416555007957361722776154439980125172012222119018431919827762058632566115604468688279943960273233881387897352418918703493987720364579632110713821706048584917119647577103709213140510613576011666345366820045108277655728231482394723543341777418903986417538514241315820518427619129997456255311896031102460516553221543476691851424854476851243844798178225160506144851011832772113256386956672441565696987934469327909111546355886713283260638009242798689530943990333543415178096479455810844600832537437469564071210542020965749747293241368592141743711927655604402475109201269477835691603155877633299415438811387634575496221468019244589007368953628151753537676963677821948067804890921458410493053081614744360728409253553907572454821257868399987735106128627751124787190943477626716097202980671896407287996373291876579650868215274126974494917662191300865232583590375464411794898046331125741385231999143331685701461382247622499283235913636872615214976173105873541240586468023125130371852841163351470492345847987640235892524572136078871541222915919578397330404738975000980152857914929267039389428148303265537126950736470652735019683049441444287455966652682983452893754884535386236217433663344424136536110280471645857352132796077250261511879827771654051641423603286171660404814688819947726613270671518614214057621636342064618682342253638395481793229045726862320019265233810032873418930734733860730430490274663790196766755824970063817227180121097841895075618789846430524846486615348112502363206165765389793271051541243356952268500570226919007237239331044104691621698401438567745287046381932679887257168653410241839682418251379488076262354185368074765381590064351051748661906838864084874937889763110328876609961646971145971947525588527734543363664058681823137138469022174560717038214327080589293988952909181657827855019167052623343956093336693951439662709033142813274301217752403607431922582914561914743047455211209718596062549728971136239178999884854551865557689167029920990484790559363507906874548307662216397772967267770845984710530749022773572094286095323990139694381021908850645744598235093621128732856643414744216926270612574082692575736638996029950376586964953872121031278749702381840068905236496145463470543132279870832133343380227652766631644587033784990836881075046995457489622406777537850491476752628903621537074465649966380013154510967590980698056500064561087386962949434203852475600067861920931240242988541763575863775278086377529347009980353172319660325067604406765601532714102890909562787083471913545232491509984163396898441683683118698375076423941315320749313770190226949445247524976431278492756127148518426141243205014550986943219659461661233427667384062799456747447997044044535611732617879546802254483109354221021121406105129056293648312656944417782877928107470720993996943387709908338936870145574746500599028952862444644800040150912057584775392292872517483039913351233111470880525696554808204463161520560913714324561981983870342853956396533470391391327573808079773157137777394711940353912978130165714131672661596806712143337432306088245100247626361336938428894360369276164009857684104804752638942119323918987804443170162069868109983375428265278669174990628060781204854030813127736669258427651325736018762715838312272152158780423058792932790429223943381756717570717354840365478413928117472339102195914220382680531395766007433453250332093022453547794702218619660384656204707590816694375129848200439194349951800164182314825996693966925290673952310285127681792305313117915434769655665177605161274171258991618680852885771236147283334566137927905321090609621328830759181987149780614590536428042132255315127626983587122900389386391239280775065185569761091098195529533243139650615794626594332435989535864927148889645394026847166175814991450356112416132955227825795840444123133726228208923190608934504711063750892877360798049089310187961413657558169216024386795753325262333748732679099740279829761970021977076656066170947263838183557084793894266496680587274509974351561658928712326312905515122801138759862004831911502003309360156463956892957959484298782749736846595953358280330641718511450073727483958047044467437229116898310500881003814549414369114118048067197655285816710843317938847672559558691041336452526892459418516458706986509808946855848420002197210365280906557299959258591152352653985424773643184204285100151704941271017574375146974463015227082817397365456707394758722527303620815935934651982218894405543846049542738187205131147100638435185387521644900377022392412492895257525802101648119585385095139380750977545628791721335428771277876784439130256326225572478423134456606056774493866161282791227704784375897730363447954849831640860051280586639043710194348368520408355341006956919742169649969384128826464350580591993074202012053018035777652967834575350771148303153421067700670998404612080210105614715862787040048664658482927526702168919490766743121629462262048573824475024456582795773698604970364489607414961399055380573146665542308752809555659026356032301535343905274078030175718852046602081245641659849430866175337758478518127275010427966789295199492073730069717000137502526150466533248197849163921827674179159052130880571197778560440015326607705736805961408317586441377210990354376348169560279098869727236537507132512357983131687702257030952755898863824033256990878037406701988544092848899556544226410819322557638547942107322640333773666560142035689284756255489119379731241988330321736491141291525134690384212759319451146819949224002234378541224363328613873646339441218349758207794496407688374317620271923679720635432026260572935759342724612808440404536626005383289821432810832590215617670525172140251344398498206549090144565725771191109808881036421083334013014607487832825631102621763597719271383084478364779111856791232344214282510416299862112005031690806663567247138624867983080466169728860774382448041005921292141436328096563782803357522202967194506070441773830293348394156415723783103706901277295791681155947391509030025588187911653148063590468824595903826729624700381607542553744409245002571301902695078805744966540685605763328574790977497846492878340007494238784488742899423563362799680434223354193758628879110193563955161634429545088791439922324092384242132608014305734973681748089879911520735379968187920466955829710172919170486988779107016206425195624775188521079859313183601420570209242061963818983807598484605939573351216126809712169651655344019928815838888249030449816709304876265376797441609275858752948661866116736658059432720774005969820279790501162332609268988400306415887702573412381748373321766580250651306718519135549572529483196771614977367308373075986550830122221151286190795433044590344159338899096040240912168280713704635705405118654683460206723261471633293480946427845880630958626986734803361941786310456933125615400767801885926595746491213749954755824675831814728877014638294087360731366008502837189049869821573687238258250120436351852321799201608477630507797718415640107511181881121784835815830062547781580934552425986057475383872852260048934883041314081491163450335305414862429869532604784369521816065745677887206226357196193502035172730865254002222931874921513604827054702791141465791306553588930568882591969023168896043881044076500081393910355623139206986523199574723781666776227990442450823782484103055094907673179345527627160737226076227324575927754389720856875201944797106291499762229396163946544663488422557225677307397980025477051324731521365276590585297589211089256073209436079429004016050741875603353227247528709008117235641464394662791652285145751849625251063323631963034581928170975330359703616682075359410273486914176655737574149106953580652987590630134389817528200487547983245017298404582739998536493813365306487445665089846419427906473933509482082505846354962740572226686134381927647690117375289790762214014636460728536063877746628841308781571399167925922688925896314744317445273702791388706361249398911718409393574086694484765914611310496892247978854994561611767885045843949206254285086047865255419321157929116520555846656910704195292615749555624600959667584103153602253935539516228726317580162572051053063916527804368867664984265683249414277905603895119567179693656008695839714828596283911332951331964092073517012825600739708546288229937128009376564534162557066363900199813803798058241176024360984335174655387215007458021460025468406821067735054866816702078087770346138291005680362652573488182236733594421989205854820301142583268932988243160493268754091493184302958305428691537839902324943189715050820685660313432441127195186425876174045013157854624645178784950474552976182610923196777344872977962685537829420390259368121894253620394660636005950869968712064996342801320880528776845365351304578532474634818643017614422101041110295974072459529715375987094305171791057092670314557224815344602748906473228070197037175380318310376602816725283422876018354493987473908508290644130617675039373434478932756015818034691674264777806993097436104592661399656807387252415556624640645299397139927390616253884486024985346976085153525443312696755304613836429321740069467382014655473496012328788826783872751995772434782873833710726134252575736625420056176842577053753799455677334217786558363940012761578236773646976924892206863195330662661242936437963780137067480698225458578685829967582723105560461698393910946498041878366552559620093970256207418170263726386094720986482056838969999542647427878628025962112417807699254594642482425584407123273783554761700480567318997934771551302895105936715696516191261946996592433022433506137831530880274167943182804679109901232925646370451419480700234644362253244063500769838332025850455319777111855943023262332879640070461331147337699076161012351759834971340062277989487538750438664751059567029797821408440411606034026209538848203073233854185850838826589391283252907100589409864621505070344868307316494606877963862917552680158329097816019251747783526808997393521902243563722281497183061419706635835679139827214867070804976070233183333467494204706375649076021555899910178938274075501670220298277038277922528907065750457289798591232668360948011837541472582774134338344090333837446044920899189342294400044131586550677261758552499364595064034976488478820775878830554548511735288171719299668160867161830200881248241632831789640808617144436113717354770864634914972706013563020221490177858117638545129211221960389147952844021435702620824045736000285132802548540901146298558156540447976855837466222303209880008408520109974025282484817869819357690578657632149352850704422598832338369057108336425680412071493019011253467429716939684308551732143464492490703705007260027754399694250953317040512463192245784120267555704472351776674998075016512437884284211761150375979964220892466800456259372107367761730614317305198185551787305035117302219834072759757929145368749174821356917478717457120345545962524340043130921603581551581623025787417150154849678781272042679175330125602731655109726439449954359568718467221525612003159685748748379318555156145785700180670354889045938421730231887663007996174004588281690917753995305222367906030387183328150976803015960892391693374684906134496319220128840126139592200649621068989487878090269016569626741301083424779149666066334614455272613038903018595871778397274477522697126046011626814936701375971894176541718692377835721854289846208735785656116078571506765002984604190278475999166371685936765730126222247843927388488663507069235009055074816953372160891924265521148447982837206012232224325741333508975592980286640836300983280510118052154236659427764478054737014483587492860755105900607996033421615863316893644315468212088718439375905305445104162831967959998178806598433322620134808856084119451490044061620865857719898244888232013052901160815846533298511202587700237300134483942810171125471637819144924755414935940678006829448652281437947144937182278012332825467299096953683739076364028421710535158805787972069142659795553845506689628681795828354277370332698401882300961312525777481992271413971212827435758432475654773878875236152679826993857377228569399176368030726321923175463438634512401267473209619644843588840419603265352013793294129536642985028880412324865706700057106102881757537506431348476799295785680455701170280965863327002504696039488163891161694632288344078386384841564832222411937701435735928143275748707326599538549715069257749773732955219531004653822533737587063564119338501606888834380777902051048283127671020067570424201865711883497428778131088178437981264227671081368373807236063845263169370480838541377299115485453405127639742395122500357786259966888417070407147376246443350790553325802606238748772427740974084373433238743499738397060654801451990783045201476448480752797307745406636230589997626378394283507592815803141807086569129304333110042334701968378814672898085609147350194848526524903557669341701099799036253793015988270524566677439502677180395054158245347334668981508210195890936528204757596954350421211590758507836784163335724348019011486536699334839080326198030382510831555174500502084847200727678526592953010101726980498312493599736662743153144891092850906274634743398418384054050988777617734917207083631341384668198116534376169117249534233653179917580360095994510803059851866025009518956598616874040716235326145732275854101598745460665995210747413096131404080492464519505312673837059068259553645721617649554935702887979346405150294296749034659275372776212942616289927042723512248512614189709833089000517455170779061834663183482005635191998729398565983197193432829359280806187101196299841539840895507680244423307686767485981588771669558005289672236832938292936791493310974641420793022241237684812121068092597623083095153358881843029456584444276551968803777667981446941689379141092917096484163508113065769886544491912998748649260131966447795864894562523104575054439224272395515438424378542500664593563358668196719984223483311429004067280277292650877395466065958189947391302477801718592876785553075435754962760956328288290362522288524010041722890507860245506369054298948817346626109211983212085373453312185864448318647672869689550562611647019178350817890762401786612525976166076595370006980729693467388456811490145388612593229966901570406309546119295070094730749818857353313208383689688171307236307277206205758404702390580837948343749698013339674397244192499372371510347888043242659878054232475955506809212851439504034312945604200029594624257971038167528933209933554816135622097420959184216800238065582644787424177480659877327512544740863748338591764935195286313813270978231835331798148159609050477790741381677114246325778256869451663036036153579668963312026038927928870409371074278422674885241335546948945918492803859481318730187545495106490313193550457573688828103094708374823643587267830688653159764364471655417258281863621222223861616429784230746731181062045673580439326183538259597318734101284313844761058799123777520095130431535324877270648472842364256168754240072784661844496192038026952251088948969805087448619880966157574390620978485095077452419075416099417093269474042207460837533717799474211420907501801719861815107937966539291842511330173430065362834513971245894305711582168723816677081533717032637104709058522884613217607135130395156763430048238303322763716771310176382120923205746860212411893473629880413136769179439631598501382145303634842119846503400306058578009246428745176416523819042624756255232715236712806511160833065147826104460495083086097932758083259240700899875048029735670081313433293275510106035471274614030371507008479778126874925764679695713219477735272182385150439932436855271055690365829613573629568144452635907825776203823643801603213539776003745696004227272903967318663272052635099427167706789906590401299626416532899658232641622284074747469085127768796632125594491008930792142255867095452657453408553640684408224819697526458788860610033656501567346138860925835026917938651411759851849145142055593265102618016089300207332110144850066165780018269530094091406519778862502419760927416531720413643306977154212648450693088726518587507380462750522046143835087028273507493004173879213834269711607113948045823310241880759269421191639329305029157236409033253715370016628991658735984056287119203309226396603723600740893322855720206735542303688096026489128551914382258758280466507924170460177317332501296352507909542972393849985446694518068185794924070963426453778246955873057282419923741163646552293373462485013856617857803415726885285785431936067828560343386492502072185177611249404213216210799638705653821082574674540122744935096126554031411779377755094288564008892942537800622579044930350943485890540367558383619889928877294422031784278275026193430840991528519749734672415252622774199384377989655956915851284490333495549190224449243346968503819777549048673881162018747196820327211220178597212361699246783612929470506476026868171012939313400398526834632637634532220915964703092871124832504933298886624084079525657250498559554879462740651295878580853692962776435682225890682009292407608264280614326124200836105564911771066538517634287238819776590427628052931295741051403562493785346021303575811541494021140749979429848995892141548563981150130992484870906001186958660285187829391813582273600997801326508527391870781316256633263348597316322688306595100217104851436691337510405393686780056198691961496702482575239328102270571148640376052333982739142351384861761681485332979639444391911575104820653056759599910801120925349525182618268329345169078577000909063518059708590884525383001261388912220048987449164301217275179453642133199782225377494535314451737357048619784154341805101502122676527475576589104319799222015484947274337508442609892523226688780733585759863140670515722526611128789068332454291315056459221010519569188103641038244918004338316489843604656414709266319565214708384881505584784249107202727676565485805319362419149248552863671912342823336779217702783390872105665042005155425777791630838201778159100318458393691029537558270003106157177118406701848953958757337576001816593012645829882877870715358190185717323129551034889293817869937274221451048029100168736554667965192022479098513092212944120697832746905867164822844790065540866399336049632698056156590104977660153802306796540220419968229575286684703444318609444236074326436035964124361222040901486834204208531474715672468142015467254270135535221513143814286357941667017551575393691346249010652817354178387200074994343119925239551575358363345203536394016551321162277930575093394845982094682121342266473956532445838915123499719645912751589489299038476700334862120477892323903731045518300206134228805310467543473360067995966724547175681157085683748945650297195319215428377855182133406183558497106079922573444637390873340105384442554301992155883285300691325847277676372604697928094143285530735358417882328725309933632574529403689354096673044282327552330858685015672760208856858547732399601018788944147953460000114827812681346144212910380320418120419874686169028432775113221771348943019379142746962933004844711390236518849838535549359479006494966347496752268201825608314452152387989564161295257698012778899950427522944770945067355934418666680721572207335075824577441562450353913644642889545348312077420313460031626419638279277591051994638493432224661656082383082427893673479324126331001737522435650673658616698461149233473245203870504023376309398639710113721299930017122650524180245227136919716176212057752284520579680294024381542141249219562303635889085525178659690178790846248690743259126293292335255956993953823461775633897010495592987494104772600166810118479596142616018958215745350823053657147072437761505161235658274660830744850827925058112564495309008408017020203797509305047371590688277478275103248664047332570779293173017505983527513885264321851138124468494894300743072662978990201735764098329090259892516977496184851226107876417648305128033246941929084723742542996712315850975000681220142265152361603766208043059285485089071557819098319735778625942198717191095629353798082061448511736173262007899185890007671574042468148641203791044674059070911532334674845870342523461588102530277595154137634457297107932825064054477306673820572533185764776179177916790487050048856231858596377263775690800782515190100726333113396135110051050601716884837889743529841503441653060015232772766084057786929364466094931829006378784309893317683940892764628057473502725198005397869731316581227469745641561952647762763320387228136618696262745869578737158947648477114222915849730120724694803662199274277678713003358148109331503024455264636732194142707251211821229675880183241211702076956326217754452167141221936005797489074723564893532325132362948579755128424132134033999324542724851404236178729185392684691999031300046408249472306213291617670249257387079259444680404008600065572212261452776944167398601078374375994059250238097460352422111639015678857788983576634393670396720439646003910126911004616636872752760730781862587061251908432844250053873384568109275943286520595635655987187465389293185432365722221594255575893357856194958865249254363108749552268848647459043398281056908512954333700011861025263068596875355152645538538991113559910139508613177814749206567182158669184051649490356691508512907793188562220467195192060663728563231249106656254824084874278780288966754566459450982087335241692104716375835060091843260453057093236313779628224460063387597119666065810138182332100057685812641071750951275317209008660758660233694234330882578553112902642470529925540050512648558212780072740675746091345739212183335631939662823750610419195741912643343352851885690987996345129662396435896084460689580106639503257764176511556340621292735041453569384114015120451100041731397864364489456001222361853216736659505029480466737729481969727366706524657178460447182656214954503542103950936368466796513686486592565275520063437005275985707981965605741079520925972078636227930653315766526424684485363727346971527927753046431315461518018656585764073995049877084903484493085187768674858227454932708728698468433021846537990959373931150003243564221844142545647614466483339370134960622924117676421793953237729765552237810839284412838953977474989974549544394113585443060963418679359161571072893196706231775123578168047880925885643160503114974011081882532327819608131414970391212704002946577351172945088235674252425982202233191391799751041188344292866850103222055550341558587191141902790774743669195171234256532519495140292146094556909769428095388066049883406642430031920724806378466844564156734738540199296036367654533242081583849170855726683935359812027090891976312095222589156326985113090093678769983340141477274387739821840767445775803413749466288494086271374513642062029138171594163251081018192604572594077379916869875575398347960431995003838423526465628546818230254015844388214899191421424454066870791244675131706043443889944481717499415650439224128383716977883165667116028793458032095552635765428968427550433700302558984703901293965072901417307501015881294378823129307004187072959678574063383756923397655962557063305123882542283708590613872647584291550789123057263079096966385178186696029507017878403629145135148661038064571399705444611278051720220661811979116551396806343547957757370681596739878159413594756248159784331393425793946900204936608943898128200119960489370033347625857052629289832895326833999330120630117167164007035040573004229131256972536092081172425218631905172296876525679786654957038096158854593060438285054295213253040742201762401296279304206131301159248751345359691609035713511724972475762260365454248574158161192857966014614857504501866117684035348984142903895723948259308212633239805143390941165118218248866384480047214685519030089703709179104857502906159301558098647018913407084216619582258746679420554691637152536632758860403230594646490969115624303536067632431846168153747593670535172423935327800677969360747019551450233375423829075816025119024957648910301077802069297413821092150641086755040616389973559199754158058679327889552682255496610085755856608118624363655537376713061002328413843007170127866445593896711543967724388000203841917098157069141810030695720976454528857276656742401889408487973807824521894188193478051103281346906924744945924906858188623871725034845263456839903327905444922038933389193256576655046478730915037791118091470506235031767098682049256885447535463143305267695376761119942897905954955383918157822052557705811190219750471674507900302571694950193140550356430470897512515960252701225745159768960484396404772684183693305098272947204463622456655031154562382550133297176474782402887241398927418246671672935579378849919725477753807477159436734521440807054724078138115959984048212332516563148013928344684281625964178344408660545038852826544538963536032761610955861523458934551657686695830866152043096061150825761712220986245590073778724513591934152273245020948377271451227736044997973372807788661880330986670028102624369245489162220685460753619624243380964611452842493969949996949530561977079061369020351199790313965457046368623005664434611352439502798655125135724318110448013654981553793269843743346706377514828573109643709430054571494818254866472916635473214228683250268534793260519230966986892024678265049911882042359546952606732617842093759463071314534404186776443405969800450037978283518862578490303763820163549430471705728695102688794808065516377108489832092629761852347486485061812587853929956400896122235444482097740425994842174903162267409227704705371220248038289870639026816766301621818444292192616598623359711273960513786767813568595164657062285900326961484543175140065680358865055470800901084020561371285840140536105269603679691632442903179098492667595374486179308549533611677534757868142604973260006511407486689264398938177539774207926947789687018238956826986537286298786138066348226630435621248628818692554487926418437271617119682216004833236260104137169481463073915589918527035885110204735396119617243631273016217004457533134618442690591245117084415184620128200303539006653548009593174251417535297389621557525520584665167341176683031155962744889476513342836672391739660017700239011339497430228617567737655237017492906031472981898794407382519429733994743366552693581214819970711809392180081930598676094912498652233097726346582578567779126948888918282544758980067721717227425051099581306076272843121470283026570853617363148324170170127415123974920556634212865213780909257265716304446932071531810354176427050111238823299286095374578259859545010783291112385564989353127145163255297652199645348425907121536375210633442248941653731452823181079255406677603385317255912828902243765306671294726889328596090223829170041778344811442423433264180419291023999277540402972022546286434574832812457030609163576574331394028400247985517133175066169351997500026900129098175082420178242756936693787418992595058120503991676931100687667428336789586944695793249781471285069143326726871115020288957795712814901643431762746581118058252830964517554270942847531034286190696085289384394186028166715173401366995358921736448240526087957577482473335931415689536320449855068860394766157571491669101104837805368955925783663978418188315484923084182720505374229896454128266759839203685022978879236621958967248457331242542424433992030312776633552622112328529149339882341464025948914361275903382718754539996613948145933334734794930080890503050248728786098474279871412272079201444309466114108178138659494561289625798177193384333384578926911010462247003905903778605606691167928311678610303990915451588019734718484537961002782849481679842723149492905305626378486279023804473931358864100656339490629990310100538623598967110281724864378436509932198975141020545695847175765907563589270022247438888168953484576332266433373569554531375760696574926412177064179548310039351935246510345530109419998270078924516506595618082908679027072799797554922957971206349709869558548122692298228261951598460598723088745745724893923597099408216524280255634299820960737331155171678483102390495427022706828649768604499070594179327329772105475359616807987413475199041592955443761898418217133209944624441532157556687415626530004332925804051672747146504793522275093364680606463548879561270274976639854147341861612601349692875281291569988456117176271820122819754357697644657104151130785872167135911551572190594996242186451566397419537057343314826909184541482191257754666837728499262953744064133807182170146994143960508928453049786358274054363492813917041868515093102791244232016475299833388559198991979691212396481813882800122467138872409903891459341393011908164780505208129890129924479458410726783235605087258087990875249628531853793428279589331761563221691925127219896961117414185167620601304264108651409803177659431547240446778756681161655394317896102797019122644876765485724296775436137210978485041588595122147565179608467115198171123603887411584059220917989711490502296281764208545887300632928741753960542113165683173664100543713447251210035196328296522884461643280542311657865916706371905166821021234191456618818883994792469415359232441990329224690840357872485866899067835923997900711638545831674188744818741142177282038095543489824916662336060000554431016213643693228589299597568750258376560150791498089159278993890043371247522574359746426271956882586724829632735598634231582806245849747231389971572795345777394266739230672666620366250737708937519380221442112162733856488724447170299469825011015900884762258906529302638411828672459513736094946602438568969312637296418053393765255296339302056487467886177325234982877077670515123405697212781725768250361225398167259906325907014739393681450220081703409516060949182794995054957967117980922167870660376010000403398286538030339775020811136045587818489268055494907323433369181632220286220870452580443418612223598727855525679471268188616974379056717427232722728181586848198742228317059714266926031738084252676740444648934011780924707785542200462467829850775887520876131740214680513274696259983318533825148565911452714914731081210515113257945179152739855884283063271891232110620538070416797725795517769455553190809906677374348082300079422606223698981848776392910488735712917300593093594005358707283652928523847062840252163355735207510196904694127067359273979938384705531264393738479931482547371542879727750020650997542501412941291315898281104746161605117842425753909266109990088007715249079801721896178019459350945999266280510149216660590112382662088419029454150416311522817964750792256148031769731905900542554241594130254630134887170859327129684612240516751761556644193512465515721641165082516660083198554112968735492071217916575157953462417954750020698205672529605779358944557462690646148041890863748970660446098196287608608336499394298332554290057891776544725956910327019937200290192816357021904876568773197552025155733289271869204987433719337251917431370196176223615011154800133490794191739130019165829853067199376653980724986373084878144333548481602853183186498530272833329722497171486607868265962338119229950318458996799205363580388603039735197497284847325160474834768585746702193172409185492639002459878682871823860292830804391209683990467386028892975282731542311764198316819309691838519652020132265365567508789157232280849816409123348347854295318690124601930841168116112501697419277770275949789391462025906174659788758870059010414444132819373351512768778866447641886235561415324609686215252042151762508061490959310709431018780898482779309449186694397306300967017336442792701134275989021839062772238163365815930417997003760831463568879309769231146031700426171848136239913260520544613791996131980932050640579233125199346674521686291435001917957576031518620063070681053811612609418055342083508941614658302459512684150774442265701531382098783704382966265916191581933983779747061542837715015866496887060021715964942635615590428232164729083279471836261515516563136931703178949658008695483411563541491851680325606727502237929350837719571069949597273119721883140400539145544262294117851362342394176791067407431939908310075762420628514833621220965686863758749919163885128566358454717464261276793410729130518903521435323165190205656733974447086529865768031399587204947246986472411613790564967904036261339079217357151516709505485832609700265419836095249894522402684290503455930791432688356369302212199825607674245041916671043562529300096458233003848253517296503215431699931199673328063672536079450455115598712717113208791062242837712689273958563756324265428196515968188319264212539588794595222208975840304391974275178720792397021011328228435088655691118656141336166395581698508223267062413369112443225072438302784866824004282163835747523136496359936646649550392029241204393085505838583452718568394020108791941701866475582992240434723219118101310767299979972176206029233760033080633277490704259559731915836361073228782658613991421758394590877181425440332106794619802937035184915293418701838279736631677990105142416414703078670177062156203839190515116584545107803122405403053173875044051749353173032897766921311966523929212216608936130465594270083268753580667138666796733806097701088589484887838994436059147162048439430419159387138704182086147100832051417264813762295552024089376409273842098320017520037939433234120429626980038022706195971468161975406726199853752920747914957834611163974069180785945171355690682567488505383833414477360127229566777555793463288282703221597254462434036681047728162481560078144183386912876870284760290441610649439315355940787765843494498783800132496191170528195194773311977340121584516463279143717463278060166831790222206203903091323305330167036431545469394013066033338692970469733293467503087784736352638457479879019209392549415316939892969050600123856982050613061035896022228775626827315185323012149811100412767560827837315665258517616809296137689563490080463767520503461033965533849591667467585283891213355295593480535038533531087222419017760516030727297418676202398346372086045087969952960161309313441933681940636914004167471790031600585250125229136893549107339714526486735209250423061597844194773568759223457434284313748137130491554759945773366583303395156863403962008480525160644627157733796615844302919413315349193929451548031332015641743001581967063003417564702511918761526287963110678024020802506904089464727952882217613805628197241011999218995321262449572265279452098113719237461990575986923052374008214121889802675897530401550638736273960159138755268846312807686913530298573229572734788326086612764389271788638000323502432293857167055580953968233309966517575173409048804045836193486333973179510261761075625597681906075462182315065654621169417969991848108003627161315413274163853110054682445175279393025274539519500484873122000270124261212764882105280677944841666972941978389353130346123457694645819490475357657101350822605267045744086513827232021063049564987714867535315338672117370898220982097790465871702175400620388266027060330343366048700610417429212548116389223252425329326773088677859065570227450022257200850617276960352038251129531733051610291299982262106147638314283516838312961078115196756224315435678914860813180387255315538425946900707412843340026784149580064169252969831505413006506471663282495592097534835723355436621259929262048641051404220139811028637111010687163661184023563377376737415256394773747164313902475600976930702604622207149885614841538291454427868420388468869243808417593580942961619108512736069376000113256421977217327554104713594115269266685804505087799515113424015368660531581842564364140336910856364274781153203417607324351500954907573184181986317400087864396667560679185100844792488731075212676350661852403891057576176975517727777781329557761859776080134638806195140767657023869144803949345521977065048398020174315351665563977591362654321046591167694154067188918238661162437256197414448767754449152794036112972570981383519097681586607641431283433401782917667469929097779493673902398495700409337819403975438771362606620300132676689485944734720472926820515396905335034839829635810383251585343633967808857941384494314243477913993664621163535055325262343465393626140543058782316521450068657944265277997409118992338607426866696173515115943857405983834536903340456128069744437172205139895945211944227354172248527165506791410504420246966962653823221035470003163597816580772442447279394393015966296012811076055308729723754685036771009980584303419466156114713426369931424984525134770410967005940377281796070771122441134303910893699024345225810837056738562359658642558396785507531144516617646726163492913947488810163615657156490881689113202413245890763510397354550354864310764872638554325788120348467881453614967858411916059897300878670971119735228781394914508735083281506856130243350616966939584391987060436677088182088972113414205985760927798199520315408663688333921796808098919782970716502412602143774537236294548280654950629021124684108599734863415725020447937664878635336832720870950060299944138602981936399132949137379982250420024715888294568121037142667367713347271630121525061039025481978948580064765872597957309597364381074903002861042494373909133650557152097268844701766666410888927273535959928492747929071962643356671216468534223100750546014970822759256364268092239327073777352499603881530702723684461110662729875864754150518453725308092731166613694847917608219462466751195859145251762935649566451679172318696824212666144131832109747553712248440071127354720032023912876459275559265786745251603461728818143254024909789788281923565384813516596693338728321058449718319400614076108840738032890728384151088685404336150229233924103304715867469855881171667024788287613141067923333035743086795084103650366480051796017584825853074469875422030708719736665864362674129574554342937339598796440873512324214253572994130536111035077142938635957218875459690022061421825427151403851338581064991602765496838615292288135573892107418096208991459315594457554817240655700622536443245617940904688973961028516504456071208225194840337559536842736784022517022026154505083735050821717570116147993712618338023610556157181969435232116709566413931161661970103184824142468253653588253162940759905521779908136520103847942401518304724285421469125699384143952474778321636934482886155894756209789268132962965071973385423088584162167245891823581945377606263786545048377644392219714848659852337850956297533709941877841285534163693474164651995229196979176889946361158290505449140005014977491596252004161530457233321831672484687048182206061425927368263175822551736125390925639985184778075851755137721917271578500309507699604901850348259106192328695461427415817164928426228480776843425973412030375530977340385486214593938904543903576412217684798434691323673069456602732465693895080698353477819241194356874517891211029185655865086919683392528935304914433746513985765951803368988653717844699533158791671920864317082347149798949370183580003933597778918451697833438543572887002961061151523611366584834977701254145299315932230286735662513034195803424775648464364392975099675204427492688061549783957645583786991536595636930612723675850301360101457063257471426692169287809954638428414568151095182109201394682306101132371003643581986378084875524795553269844392715708029480307169009186250450289092727990228535922828830863175765777878818991090398526912138975110855665282212815075735673675065396697263737402943166227690181575945911677541433134504760201813462374549344485714186166182858355670871187155351700533207484140418636360014534093164888098032087099889144142129751652552523897744412651731074332775516456138266851825961903420815774979804888363686421677805931633804153671642009998363466581565289667725791235423506939504439560150045723463566565622173112622347350444443510606877133797765325575998722608717126267792870687133281907223472605311717275441147140773049803725569719519261744994709700549902920176859878373013553599262887564871422113691670394952687298685018912075825375009891999888555544251095515906030225764326912600440466927706411705252958468773024959110719896429515148295682168299552046394439374270803280637169821977741821877931047310818942353982202167927732784050441494624662809683953648592578215229812708883902627579214546694059189386036135677674391570657898497480838106820367054804571162323517662364179222211619226033540599517131557465927448743250208396155794841723990304855889614753752083465557781799060751416127098495795542008162073637177277957576869657949197722055493004326668703639969029663124328171326572987484403360379675956786218836791409170899778503437829925740524794511991290698784055844842448407924170958470304984491558164024030284974216508770362812266889130379175638975322901943448812149536295410795652631701616254549261801236499041989090084859625596140487398311050346895095500042330125840892441383454565892342413911256659797205415564415386047624485145947539048631501011407227026786530409392290141760217265055756662596173472985754542520174024119572798631344216830267033965679051432876982890024481624143260798586319975585004359788253076565083993612500418668958794871228973831022064684462617183088611088458848010751034286322544712766055495617990524363745880881697918177841773553201779997087455970332171729150510535028326756892709808351649866551251754024400521306497137888350671528404632281157410333525852849067811425497418509462185845085772709690907232683517513820463452790194583690235234183366501246142516048853151434687636674896058186232152756653914717071679839758580592601705225935546563431301517510973522661262507657823560138858727877705741050624901043293398510490929614467320501090758628443703035605157730564744625405301526391455513068447029434550544695270059588785835426041277128734590436898842983125650833364761790683511771109618266844928541185956692537178710438182279355837094789700779555627571288466415226593943602885276385704304852782170148775571628559283211711465806073558222301919899481775762488566549481581584825345062531431195079086503293613967816805099409196514297459527812241310006865710485538094507192964071638293967258169355096230688683678822307949028388222704796444716311666903423220544056338843094168197839107690090358274104286356938072603383670957248007339517805309813418975391058086012840430813675367315117690960646326859880398792748668866002405261133523813926889365003748517459918428544843770841518499988818022058869587472989368144884667466447056832864211700516732612304673586464900904105706833292135363836671748940947970101835052952591284067698380740765580539736201564657595623590591361874045761669135261562001134159505694697719383583782502261558259569907096763009327689107572250326399746271002526631590239412446114364958241270183092932845626684650156647967044112833695410739839358673170654464431558957348959738031056592586248012340226394671854915202753315761779084780826993313018274921400286922946939004906691036103838685058073381814059542901310814642662708658520591539670586101975377401066357482056308784759539473773888837395313451202245984016754793359479753165407909183832895318808554785290485975335428937622697125764731410366704472518454502300684979353396461429746164934442159757196967320716505542080398898779178933775724735691380043718879223946643164030233480265067913653600459249031487961202872883707967123321769659451002261027214251820064946850506459995208355244555190283874253650103168724388971131753822212254951642846617575702257982597569177509471279733776238354617399276614812678839704727683915717056916491178551832110744005397630262191584068752566412663668095595636308302678272697226440954592052906044734217649406433913113850322098451926585811473165137123570036147964646006002824170324548358406347076758190384116196340667504598655298739110930883675507518258831776081675720219595343978308413929277449525133469706302459451275398983289722428055488155950011404363813208821503872588234512386915351788414118038950126708534184722744571452420255700238861137515781446251437401417915537320367205163235201258076475488953500026538448593692267688887309137516142617551039731627226812906948655512788274114826116466744014063926166866965195347940225156807069638173741409360109304906021081988727163188016723449105321526767122024967500728066707351131159466464531202989460623432038742203780482267339618629085758725756225873980045888617005325004250954387642388838220658585433677624240916250625155729341924048208151399279686581685951125931311030909115364824391943464212276524945519111024774509085827816763580985946012838870506702016700551584467101975920048889846568265772251492751534276104135601728143624667255197700181519443250102908368118461045076187553120728133872589623500993398164010107777040712654667215980626292630735369618263414249902847670718783380591983059714903907825378107994993638024328932578813077046533800830951016493911194975057212296316932989538232561149130205493723693142935901158582549813888837265664803609452802612460631870395039217244667213938578131031013471246027918284646496862958191355901515256682401426349412490498404195901818612080981606790879493953400929692580372874164689667084425076014016613652659314988123884141919496566866503902547191396054008805462552981296100621088089105961855688122035717941119099197403084594180953758582146024247339217572012882247894267966305060127581615343067314548906036093690349481751076213893008058209568957881544877843259856585701492710630597297947170873586687661258008910098592318480562565616805004551715657708759382382537420862005546431457250928883188181176267366808504030174988501245464267423786301644011154251701998216244406583412967479278181833308236331437276695852365489278106454402947666968942604346985048492655044597397525654690745363687482100894814406208048427797019764978340224139634040301225054377786973500589301328674541468278192497313711629705650949541733201253823104884204984089130236400218955942183989402547760515295887683042544332722379285703663795900778212828928165031676239779678730240981159299160721364322557348417557221294974749667808577226248808022875007818717009740479172701792574254309554684305865113303135320347972990359753737782795347952329640449192827704852268890960747714511721157054405889601587704355405267291220819330153619612719847442893294601783737527242188707219293291411362545961079789598233973309718833977577616445598337109580256902869410881910228972163134309906092364549490594289473033601653342635288795971235822493482746243123668210852094642779111324262714020126393197127846839562602490565784152719918961734125564692631435049571729125903748357964876794868759502095449734099407286659654298158225692017916771768816288192487039095206245623444186853061402846796190281116126837128700526653233845037925194466454822535591340356103896073663160130837970398704629291221829757249009328057963593608008360395716459099610294299561309390311856290766438422224418170664436632554094225914695863582012102199004364564100156515669508508149675658021391753116070584106439549161195709496925481509465063819274611712446701607811602695874622511500383794521566209267977258115239425550751152998092119610524883966643863670044533691339294369427244030935351776387503625426571402735241230369229992741605340265712757547573304389623984585433996098862050535358203813574426827191277246645292527758580795902127520378211453526592639361347572719370622405739518972948146934047905247612420797964464862969978194517978031409430043360947493727471652503176711997008976284107600376287571155009571230686564423417196240740800247454295366205917852527461770941218765418534791143791576613208063525991411314774521629578839343277187265224413282523847392048777174041011935711857347095165542826792564366832019027270800297011022862682411062868120846198146782754342051626992788438362168791606317814033259663834376201637458697714828333676458066424442015016719732117934135848278901683735331520544314627352793283491353973527322965566226054714560527474678083606196810387587774555695258999112645590690572365335745348097790741239439584658934314597255311684185653154743192654296347149120457527500875836836970554965844956028449354156942681449124050125142657717341895751095702708759906724023278909367967163411862392588200227036659546658591654165481811758282021478552930635384758536932061043735835287773933404634926898546097279913512346616101627382634795322284207990764320748733038717983887371675853033029038536902742668229950498803107646235134883942360754123157282327319085321239952314718883244345618543690149183566392466431798991811642132807264666527466107335859810223579702479809498415749715928004811501848209482297860677931039320468814982837185396450023622998734308377212061766639278004054295864377946564318765775069062771405406255797727854142358507957287174819192519608689226991879498891740973897071170681748631136399986064575322261404226099289091656840262819514213553157780251280153298999836641413651327155729871916271110570001869013163469388670624523964942203337667180771686329428462783192321662716560659047044996332285756199890392398718604352445217055225731749631671772059700604282752700136124105593276749952742909231064756952616998473960531438782612563943048087222998609369839550472986714621698018858915917316764408150818206576493134007427799202412530833329277086063200253320597939087192055941525779806405839367505126440017884117087320979557926945393410497175803513956871258001213369779110558360506458523662429919600884702315783849990197833992794615697672414297337103180555218182188914620676903588442160537099891743625685455651839878673501463504582831547676953740473620537357727995769969561878957773933343580870820303714539365822854900908731791790517817722055216407628276591116658771765328076045525422038368762741961276930395489402306471005726917972548162600234288656554053577087793091196488492659251338810068710759794390931840561099650733007174230050965096049281322934645658526805614288187388787600670982861401784725122451500720304889815756169977121040693031609547532363047427791527155918715365920622065658236405889833680459275936306772602479116333644138630292771527289936006126238721853663782666634466089610615445065883917668071113874631827984300086255094878237840326316729073023918056760776948386919816986227381635260531861194302208317655892835238003961732990220254796158462871078031369644222160950728237895667068275244370707452697221542893749527128885163869901515667847395058885716308478330899053115570890437930450556747429337776224756749843594657638335749851873014071083956872941555913754641816681886135544466883521468195161026987005481721082204451790589308936629838842543226016937014605095566930557894073951135217631916067436248008176563717254077808610636101049423657115478667127210341866094920651882314993314664288401176409457194733953676188416125408360758833655454059463443320382288334730329484111052246643838942440321845872702489272165746814369504303664182793403158224724822970185841255309948877896959383096175507811977754067523438024199910780241433372377843742748613356902234529639899553110088299137785768533748776723021607568939150918933292490013876087719581642702976172693510610030215731073579675576708068597895302692238027956546380738342289808947317018196857064687205895652038200649206978402050468128052497802544911681906047436249986684872543370442092746420183157755012013413080373342414648589066929867010480823925530110568051802060663341462248619160522692561766600081297026331120832431520599246355680869681222901334692808270449383780342480924930533203139441568328833384383339963993311557569044283673320256277765673397412694385832695211015674437379854509360734592241901817298010598757637636809862272535729040008486518670940485646682216260847946541717976038945154063062455323169932831331771467739395979575989519583666619672676631561801733709824268206323403810164016778435723862019944726887826600844862733014592057355768557401148253977956875085570221042795700620135866848813331838380501861334024094279261093511183329411313621613795198759370894546420862294770825110495082126120409287103547669290790707287839537830348435636697117287275955916245204597456791803293553867333452078370193889880254027276481200490665147167051429884000848404958762288741881699493752455645206908800457155273735038604325295897761971877260652693082055617017318176545816733815993889753495791190448478988250926980150417327479044038978881345725896185413204860995354774597504175872426822690656230188117491207771920632796520003844279625384774039289156602815381703540378853718993641728029483013209134174939915999815271274263599453311373170403221708800001511226115155754568896776254246410023974483266552703470954156828288793671658846889406581573013194188562928273510834152200481547003856499493979773548117707101203592187368297510836386276795608286287786968771608202648576995992765775394422061107360243169477772159275110098508359861626582193634565764079163476143270401584039037515065172632322789551779069423284508359220181400205604029902036271268047457029054523111236028049478561709130170309158182088148612409299529240082950284030194395992740282162830876821377038716859292097297141728876107107653509112061374729475691240123926866238712310429499214881875054941308790234699625930100590737788268111603737115375336482314621872736521094979868258502435581833578376132443441018223644476702018126049496027681741621901245555567802478187699964572221182868324150868015204260887875777730561724577870782571286840913238779658893180351455473386392926638542209325306614498241653429842368978911299897030633895286924096003846337325056033850199413519732401934371274373299926003153785806971393308949032918323646981556992720075152660980132119360657508165610304740816914155078196992636372704915539930033062919771554741221232496794104648971980985586548196587162797510484070257315375809972639713111042948478348285613048090438855433465395731327540656283939113468846870188742951110036216465366895833681947537122409464614139733862345964288302718003541545283954625108703760845738972692225440238259862634289486648545406742035772860092791100674098026144345387866845820091053672172087315962370171615934145264215620837033103310421584564149712074553982840746028142092538474637417940540762885383540101146259774029047268360095023221889439567620823357612618620359248608531470747112806022233011376733720030231087971616065573995369326792934216872530501100535486128687203091933248715910552875164021932052717302894874782726432588728916888947956443568542416538772328095010687544601982607637629355811127254283893507147642217841615101831370093141231419758856368927955192408904648195629007826229873422918981567843833178074799820941800497051966273049692995582488172695407584736027302020630490781536897111093383890210411319903078520728336061293760028896200847124709935866514196976638444456746938084116388351821974846302136745746820048838511724578570947039592796646224492247641237340402640463379456641787559296730880279668038209730538525540594222283074915819680200793436688835551182573020642238645537545060430937346659615365862795853382326384837065591519276046599496656732747689382091339012285829515276678178829297715087831428163284346550465289016050464433181569713530403346825322710210782048708728678861631395205701109346194826979974195711426233974398596523667511202702049581604575334920174339095921222162835945183897965334748519370540048362023070070255064004877310273966777057997548599104093648532644143200345653773880370031082577147126363860379082028217699501501568754928389746720016273350916461239992473404125249537867404759401985508226476025301452000646320444976079310581402443422357434423133241301703673600781926622021609852156612778240772721319140483239387092154721131627606017669896870613452630730987427041703526173663519546560514112193954699743938579661169873012911458898981625233818471802076110764490765314454891195530250420353400069212699736033797681368630941865254349502608732592278198580087939300775608443955449934671107440884086274566937507666697482963020750611379130790590945869629274900819612347434709810134287391358702637077953908868531511404797744591968058755406136205964991782945099980284357232520483121251409966117887152215582101217145850180244134976239016451901357944277927934582895896715928767434634789578938323058479547336764669883773720192959454506815797736593494520111587256040834207588596454369145039234208237426095705783747186730524828066368780668218074242633977029121930675846521502167348814937866722292836558562501820210280832061800863520738214998691457957078280868341656222979856007097587766160852473546170251354717478522499482144922074087593812891806593412912240725592493357335378613998067977673081347740205114612547520620520435774188093939659650660322797121152857534874363022953224982738117392476884079538372088899168773138471699037953472357617520131813214758047377879736710275250881004737104215009735124669022170409832289829632019711780552547964702739259126557912431715248482020502231773535528893038464899935231742675057934090174253296917057733795267928553648298762907054007963104575832392208135972593903791383415693968959082687834562746563495077907805213536806371971590867596995338804782919577974751454504153340422726359986243705244148746652102674319411390793117773888130254658326463603702545800582967392799160160320271441994700879037065037324998604674277903571909255491879072702775515677225317201564330217380925823185997821066147420042056564022645026372443052614800891194869966360685470194836421668680595297370123986826167799982872822889673469814247388370581023995090536471365236804157918031754378429357873677072333117004804781742828713896270652079276647717955219118829896815060562353901187255010566361236161530722311321866315134080265078532999274875243014611650858750294987174227488121224483254364597128375755523998402790364382836482061242584325959120499877732111532536927947344905262402374348862097059080456194040717709053425597956662189188422168110810414790907214236065223799439885012332038090103516949156719579346146037433141267379378885616853240794158033018859489732472450613718945080157814499466016614201560967522688229201831704193124444994878343738226902301447334395530699599695016358873843377978870928407936994227933447222251943714300874393691741729130143869191685404944895389976269915510661912618620195231809685957192499376932880836255032531969325936920748041900697293187015458906287932055393892513009745882019813440638765471041490496570121905352897266536112742211793865567021633796788342251975136403832125048234472047662529165679762728009249871122389959293308689369940077763944140360982477349990946466511082988766230793622014860294744676136628872707575459496542363347738003443140547989172797966497222637607861272392834506978761417650946897655110213160283038342918356844577680178900969801734229946945124201817302793844254472666572284380844743858029941954733108205630145395739931502496306670990913737578306757113696900493842998647491727049860912183003200412277401856250170969771575875093878863003226993513844592191551808338727612279596700492187543682052808190950643554838249686015160639946201984022030867299275394406812757370830327726144283774297714430318382964877066640953818773394127890673257529814853960627923519839492127890917152117797791836638320923442399315977517895942114030356568264182346102791316592061697572298039031174170369627971263503851663377537848171650519785202302728597994393107215800770339774151599481251810741262692617745630745195492906735819604468509409398127209418888024121601940899489535159370721154580172533266887555681426085325956292298380017313500805816452058032162879855555222088931544603468070822359676402991032726371719646252713756960927966854582472201075752050496447109657952851248680244042058290079376447793952028463362085571580059525375328235349549857876014953808470406819385210910775916064741817267192183973548069460858552300277044860196412312126836140406664472807409655196203149037005075379534237936576148543008852362727519825317004893509073137364321110651651611492462993688734184565262990878495998632004692715965373302720784524782105437810610527589167997173694387799604667163764608693690226531813653175351510088212573320166909717121346889242527983472474706939713120598806712492806959243257996176485432885399084420280423513596808934129194568873138543031293085549363299623517560919264954412915942135977099389293807555541801258494782000438863723124738229786628858563032555655227345960282978190412166542237470378237673626918863630658219378278157280410407303471506528190315652028003095919490333134470841444967418294617929210838459173203833278438247670495618101278357362175459015444829405871364680257956006891521621007075542819834605154491417147733990472736465849160265253644868740674404239467980588266893736423215514455126061121680754586961986302455959961134310980204100475706937724675065411746061724689502675100920795057032483088639045301661517902988377782669855235756890756614489706475785456754120495099425822819970033239036257136619831289208804199876973131799845831745058689544329104825234975183361582111378550090800545507532888067500449983508641836574217838258283762036872676991204653113912296927283512616071220838830231109290124633247805223702796737117779080526232282551200472749020420159870619863575623865027764486175238266843606294854634948371826750076975570283547444114683941603821559180167835237553290629688422361717536965529605347374394780248747103013268407125755259201160353054917366348430221078249436645719274771593842910778210297592260239083212572273650543683530994220025926498940699897605465073752050817706172622815415248998248049106351404585514343882841285697646949945384257437658252826747602178966905562219566031727748815507520149953696511361573888723114259444627015955961302370253073575523121481507749343511653380891407683498552354695437185269236568220569656209124813743079036220525328161888617337268548212895069781250596493928006877563663844066938795541449204955844802380131803526281010722233707757222932784280309421604746775641900059576462532076227863633638495718828521384632965234043648859694302332067176482465069552512702871076853023223376717438160186431493282952562631794004153854922101551893702990688580847713250730350530353786058755050287497565306193962179159410769395343108693121191492116586565925653750714582372718248175416005338416185922456250245780991767386405538826062160373894483612723924101941461380869065366334559310744706622453729189276435553180058172148180586999059396217694451305614245655119724085321870301196740653846666600442158377708042979957988433650607490887592407051114577627998707882310567347025928418195225693225109169734656375277389020504993693285563351889016210043469115182863821103355400137821385991898553020919859990870276654491589468960878583273182280728832443964183019579360431395153163962398320217115892979955013753768255154154973863558665840739653255246919450404843097965240358363817969243209492528995087103836725132993390533558913706526750902424744532975127109864340463483162861423912800976329634007202497490242412954790796364972402247400587991983267072685508560476926585035160989510159632514178205569123153561907064925888828521546664904532529880405404231216580192943950942955822869950519506206481350324996854221270937549605154648013360525094538592866147131604472198794873281918258208173053837039986119124312992702944992358739149513819073042581160769858615548787821269307881131204970332464417456239719380800947540032167710030741093358329890805740259920839866125439911234416200509639937696383880926903253312517815677678981751286635406953473988605626386601819964745243941696178307344699197522011698676421379320670214502516406841628895894199665416198610092395212287025129828149229962945424332066050639814832740478951572426066771436944837056765726341801470996725712742335899359913517744251468593268674222814987437999505033403380577844162969045053278862340058122297073763470823791357277769162524209235355373166997224789249738184706474604369430908549964429839311095549985156500944414561326477230998885104387499780048441291366099576952661004455116499947023618511016815764030976469195775617227476426888382492337415170606604715478968401246835300661990890231798164271858760542793259363250217611181241854683627735433792360419282891863655546236986726827461363462018575656879971977494065776818200536581447174085904157166807665783702424549936188849331601428132160674074024243241796482196009376716521217726284503937433492801646906022710723682679526773867854718948524935952243685783128677441175686265822602896066684668871237509035804030712447580698779288148077575070318064457634362048739824230989253108655336600369820877868448628556808862031784935885046295428044613009233269435001831964199324891887672246431069845502304268164019437398788776293989024632680429295470772498069997399806955862444136694305839480582207851420318699708014062804465750579571043718957981611079990548738391770002050862374416500588461858888169605827502400514165024221058203852391221382688539633149807112357060508325862772073979427099776101985028382274751803914499599182803687848721935159135221664184433527431807598328703731509597958038336791176364571123498488092315868611410017569194471618998961935348844272494304785129762701491664443683256686429059742212794139534816010461395315134392638705015285671664404151887358772124491950596478729141973247162844244160115741906110279919732588688810095561609156651947307977115309099586004959507927748134993859194431057767088667188353902880405452323014659999849979937261397954883882609840373473258359442011384185133796082310728222753467550783370785125798656122442380842550779137592161252572235472185354168185204137708494268625722686115155436875350463017806238039625580072356324619263987786965150374273334365346809382692587185286864335252105411628040355162820035568106100491174886008328993588439304657553776295415058535410365153819305395591847064130823455490389488488259584366599539486452477418650354522687861507686047854016083626551635466175918773357510363951520265518071053153414736673031074722556917585933031010749171674832233721646417923487055813088692032173168002011364229979025511042967349969590331260092598107625837745037803895821331009247130348835965729044952008788659647055963950708141562483707812478430429451259904868977394624716908186822300308048924380317607904462468562880251993744278858066360445982082365573584744354074665766482806934363452230654954768141257068465741363587795061601954683901816721378493614781752033894982105011338029104109135333580724911389729391959542429550593777675559613950235082578259302714285820688618410296459500593677087972454989351338795138380788572280790284979754173446424815127255446876708726683886625464402742224538395975982465614926885263749618183628450230378281872861813254876122114615396981179056923738578601720005451653920798052852513040361421712765654957383702527200732914245521002751697356222220029590407599390171551624756834697792975119719069765907704894277312709192458530701758192336840842660152694746110316542299528698687873490173310385178113630594289631073233234444877094131621900877127919502162353164736730704639101425702601608047135455033222255972870113784381625280359841273747056880403958076686588667226285719425332288753246214769041401760632312959231295689656659886409783066092165961940375417202802058818962958549757817362043537808443290682626309229214492859297645563617619253691996183631005064583236396805884875240107192769841391304477099225885074031719523047771530062302672007277036183147518857845389617689484969333957867308984883243061956967194188622032852577670506601330279724863585150884492729373997418303094426881777627160026216749232457764339828908964420871893746427877118536845888578516250081641091955171392610514679624073911175282811700363579392953326741520151280031310323996186274343115504964183541579977994980551695742210289832916190286482979899990282480708827888216662476987459996565884639038164268574784661082536183423919402845846103398206141528114249659170643276506881117351634348412183387795240008263631105179607742682148911141433650510587566409370865216041741653258124939215438925475562973799578488249559338436944332296842275648362612097225545718297773976737154305934674420499409574990953856988613762344785954098504319246306022761577184100311959924386499269715630576665081003122411632363749944926772485662861938000391529350689478783105095054533198091803329861189915274858817134845643891724812212750226790033904162028363840701781415939700642229818758303785515205539181746398515125726279063355272429565846166522100046033627490518391662813053087278580335355343791600252604064211681999376595249912492231012789769097693573650644007571142502065081098836425281447792748208757963234332790421885046506519640886051991433672356534956805639907237565989448735858602724876624636677310656229814752773114406312297917298802172206991173408759288467171289441406499558872378805088423117399063919652342777678437780268685097248424016224811155516706999094976120739056926119413916161526093717110334642980745202127491476578112867547093083580181451574944923822723938288148632743591416386787170515849620137163974537569816419127659347481180163422973101290075782882233425680568237659156621788969271236320138311275022692950089164115682281957984859802631476431095108209023677266048295439443691213302491338988118198742081566755111159956807198578778122279271428252510611999784878234540992290871398949424094204073075631231267181157424383572286335372720728169546930498979854161588490511533448845865479303422756520904296945221926445238018191025264516129989266625464934144998046882587794813273842459933911504877855041557332031650589905864225714167107810370658398828469560580443424881728320130526587526193665721525106709780851953838988054612367724950119196622158262038031184085704955155112478274294226289735153647805749449303318397478926332177240590873746500066156969525565877639383577674867817972206365449905029982261046249505550437726696991451746101445684706207265330905235780238654299623720397925449765720019578247395636016854704900764772000537556637884174875427711109630419252448515059120381788083256671840494343766765101935060715561182968729934811759171625392644349439366082021747058440186371144778556216125322588479781225990592974560113554057553319183243626290271708661128713587597813408281755339364457415247939998229258393546575007730573595837829878090131848258097472282270508701013277538968214595983495376498750131981180593600033607189291508217886053253662679183189976356275672529715041194661080580489455635805404694401841903923260773804080066796150604789743362288007749370968100535739878923214690309646963858231421435826038594022613217794239231078550342481941989174508386224679459145538145270404466319961057237459224757301874918309123767035712985885412185132943508192084790322835662636281795050775168711460097097124150372857164143180179713181823462659365485967387372378519432659685881624614912908145400688890101378964826426281177261698719196772403269084925165801590321190054950341059061779091088786559010399049136990922188611828166191194411520455535849488661919514997073735027751494343504214070767835918773395211061043229771796240374554058767936353023199136050132402210824080641398011542664463982620331082410849615534560075373518728964313565358819563739328166466062656129326794868526427938850912503536853369989229685598496051150997336526075587283456723647038238063891674682135115225866316427410581271424376522196990449854814339767091119381368625411249510609042673505902395039874566579465367231091534229647176943834728262861669149685730639532314127814597549013922086632643584774086966811310803394097623657115186949186635442048628430847892681543537958247086639345982615534306217420657522864433699737499471139921914275405662298086151195883237105046559097242685747426464490811670663475021518192775534309799578988729159129428658415347766157724567358092254566361924037967679903015876304853636861493068422200317247336564339941915638549335625423982116020403771927603854344945842450807342575225910503463574935717239522243241630285523330576509581627216284873801043550856083087832361344613364524985964237788132510112328642675521341309027739291058427849413894297265411616822128693592863054605699373788297864130825425457049206485261022824370402384514460964489392942004258202072434414282742567907209753422174893864313323024378182776912486547459808086516226643602681603585422169422905001945958759693716541994395543420402490134377303604468559106610880551880569832877928512242351698362896074971838302676476286131446671362091875324937386130962033172152304729208540780628416228598884479005617896540375034846663376547984543428769074929927419292859362387201689835444734987312068817983652273151482921545664402991825910857423065483653255554324315231532923383945515994463186613228848239290427706659676840022681606255128758331428249541026646419030089994292701874368217635605355536525698796171040903618483308349818192174654329149852561564701761095086466859311726415646734552876392414583011802560565671593096078603571064786825371290014936815108710927293847681893392486153376628809851897147901006177105694240868964889377801782025655470674830654480075390874386365694348159545619619790434735768015250680338333858485758337416712496991079767867750167195076918967661109277863678763978565550562878334311331405758499454696014675851540997725569426638643516786752871531091219306470007533803845432718393553644566792974559763829211866287215725794279206158518781741537499332921277506994511225816906909059730995300328768726211232761204650518460814799441587176659892663180682881076207282683760632585934278380781688753490297585377187069514325153131826007576184494146851987313848106734060871082886471330058553133159739393803992708736983664519966806699785595814246149534472400600651876135883016005712692657737916192264289630542466820491919253916962226702617546171012068526811192197210428556904518815211847577777995366793506997746554687060282368404250561098491349189655057879410902176371371274764631765967548754323688880972332976712981160611646408538853543299798400588675340424882491566422687861683537128349549725705969744839881451870473509510588460215289294548395726642779188095644241059964625174591574577713048345356780073455672471176007550423609723128807465513207253359176947880561031334002431346491241713096236779871990733629508748256377406055721105354072540422336040706912678163624440945164908793106583788712109709930007992294960151881632944183399908381740376413419257149965583621254118698564370516370111401335165938089405568619484170856209180344690903590800563854296315658100404970784889831381254898736505107745179299127729627987762881827731583948594183825466208064581189355311845141188240869370508300917655632809145784119754463842733241063476153290856603034758411798351682276653630591095152124133483358367701677009317484300940530965991152410971332631292618183636761539696083090869276564637287907475684954226098460759514141857039369125488982358226543472826019323260531203604692681134234440220233517070711818189847956616851093770082079034121870151965696138098463040677660262000798696526130338743196740306534889726781500733533732566256969723426018308203905385265044173684683248201540286637254954445334848084374914995543035231365269555698508802863301721673362854579373247284900812835047686496929792535264722355654618635421892276503982362983215676814962494137612990682829268010791706061445942789511826542866552239520190228942276905989912980106175918621444731693956165125524950368642191157362484352811184367580292767313264319100678365518767417202208529895310704272528295568392332205708842665581782042869296373570505052321444528449110636103390054415725120449089623359013540176376406054858654966491789744744385734144802568818674728881181328346112337082744628433915808428432133026768440540691470776611637719590700270828757200915193609571233734236133375746914751354810277772480888210281328337635403430982417636057025405047916716394557850782505358672246318078869337426727424352990774418311386616550626429034819895562124314936636939800074645861457621568701489274902143751710157240471101339388571129214354792194126517710342210283334038786620837260486748772284205163024711129381161442818877620968923158046500320152330749351203242627222223188321746954143561164747700196189233014796268960989504332525459703732017191461562423527026835539772954967416944067199387088165392189034363637135100032433431590946963252211975819316002943210510278666262617610371803316040088779523511753309951654777101161763709652828369531834618477360728229649799095245407321900758490556836688616075767065627136140735009782196069034223276260227015024605998930960336038557204554375939552104682523077718951141543513930312676890635131149576067931475676042076775459306949749969932771129045472658548314220018771185635328253717809295657819374360500389355290876217876868185644305071060164666913911843314978689626068813495842704683612350693179056153498035537187592554370719744567760647142811022334181928095743822526029551745564691823635554881431466703463645197980648294988164914852437993247768512722543080335113297928450283483353533811457256549034349891648712767265417268617290533077474692206920585064380442568738540760644358257164059954930839631543289564409660450793935858622146693253708953424468015136908837328509214891019148573520954243838474246609040547549185268891736096228852833405695083180255108205052505747267876747427545455942978703574309095118178688920415454597289555747230965952877026373837539556083945167846853828943780249711911032874909428446253267143248264644159789235355865406935609912763408013179463839086344118795293001583549908042060779576796069700683882551558221112240929892797558111296360070259716891202355400800692241427997158221858475474725628771552413794973290590247263036311178300602782111525996239815918006139735889239314933308589443807286236112017139265667981611493262169826974706195278414183112745700557382852923663737534796087608809422490896609064820602970197857022773404770394487553181612139116261554438334725550206075196870721629363367737407867136813770323528463639112032322731501074417572165894521508769661289893073339368083398150570406760145193537663258078040740896623679758916012900696167597246595220069186266997411751242064947431827354499407353952945740645687633756099706179228211318630309344816584661835904832856732481655373787628657945599537937490743740839923474099507225626628066449181451817834861016289972161536306842441522553214474226163983329835226886391251605375300053450322788791672019538410906694277587743773308974924273658465396243848930446055720832801155220507865888218073580396705668504334703698142224545265908426210997615877268214163618892287844528220255757455933480038091036651923350765316194326218501003309245927640785458106580963807493435635186296600157165280039620035622610736880586970239176260319793357631804705199728216063063274345733837743202274769166513870084064654129434657830842913550919759525040225478892384536842426130610183934365212803778621482357469843385876686712261911617841896399296905818758686939359286340014118395756917682378706806841324328541080201417477387807635894146395452441105856735102371731342576490412830812019119327161639388253391972911724111402198681744358411663476762610760442548398496912880039314276154225179289149381078596647443401765556361981735465238999974363058670130307996408456526303173032381290401235696808683311931687483356691020324038776800651622573071041980295906983368765422514673977148659059923714579033417259741115549558736661890760281622621401588517888322220782504932690105833945019584238230446471696162279037417748094028914941752282233417066693752387052123662860624782827634073923135421103715500295321998205133123227403085981305335609162208582024020349647271788339330190192098393269206897995182810506350993200342707574374267487129924956863872884921805868399040926558145996289936017510530334582556460727924921762603052816709384394010593330056720482005705144129087665452080257384234434337835482610903650738140895272828829080426749716417392210950106726881553998538076802434967355391387917578581609664983035600286671648100880005015821516940230463196704256329208079196323462506425605317459733379947023227709793537526005576420925822509542546705609896816317288449030038425202196297544963705789515531771813080232766248249563085796822831258463670335020317087859045625267388839706031053017265690923095397956587779107104607012449354223037272148275208288255498004349697295234453945508018547576514318404072497828312144855010245884854804444925555675199728257260125501354851180374049273329243587622595296346009628539411476622241459443769917398239708011016470876613215768660243624215874426295489280959878218119022911276216637112387222396385240267073839585047130391038169875728799905923451479167813552455279578136253299743185334819540782867425385868074589889496302030897683521260096703649730795550620695986173718312493771640333664750124189676523520577856642965683905545946171724509763511484280837031408584782831807168782291333647160876379668964527803735811331968850884993623942806486934271724754725707698168325324112906438990837990366236332134392286524588474197481580525520103738314766468792436291503889878241913368086369709322361292434804819968542035505021450205831248871882895273262291322811893945061703493686945595049690119440397788420696392141068222722451156593048698785332948867368824248109739891023581802152816904579439835435725671174032844552211628524265601827996904609382525470582377275012030725788531649177234034751066690678348156841415790756537942500503759689418758496060501003009169048487233665043713118261472592973433218155655758742104747967978428474687727999073482855820760419974832162014657943598274697165150060045225191621096853054510771343375791267987569683036836809293723515120889497145348306828607670473218539685403475865309170167173507931716704105448776206748520559566749349944656878337264189298288960832947384603756834565241938318582553715231167612829118885127697388068471031125008090178564121738621110823580757754506981273045322786524100445664193203830527459039375821127246991657508635096721880402914892863134551923547433163038076110201764140171114299792642178600406890709931645675465858070096528022072426450501010143947901859719320376324605426581771084336415274377576082362899648993464933181767645582750065466048248708656928445583902702848270060493502945791596528223910400221986287847739397611723814672916210203170171466172914838008428045047230057911404425035908673993452746119387796277044751289360095106928702359118031847922654321628321825213904100344516990292249503771792628189068218461703743544507230983918595662143454282457930665220968214454064250937704708409301213919465729112255213897917010671291329885849234860254005319980668151976767421318527284203738203613400053176935410574256477639498692957389633566997007691868841438123907044052297194166900196755640250856596867907057069946355170371631637845436464256167688895031188795437132623893646078299072020148504740270507077057575171539606069782535520871643136752564307431920577028957351912320279499615719156018472860063889909372182411009373685179552896856454963230741439252778108262420698114749896543269429951536287271151577611350164413610860167466023702141776685345635987869827339384629543195958887100631001271215851188917523273718339990990627085625064772141444026564919669262632431282286135257926283186073137432572389129586265502105322394132386610025199873737939166045639305976263503490607507301023352151644359187443373938393051976068815442744239557236013923426295009871703354074937763135147395177392149301211862332045031466365557085907548300531135422266655732832415075372382752405434937242521392409232378471982853272865071854453296788476589580002633763689614437154038801421594952288382241422771414519462733459130818327799668365960311946677857807551477336699780701187271635796715017228840273317099825943497784069519925960667154704597286678218017967675596417223953709251870855871132091479163777223892484649943466400153726140792528557263359282504404672445082439208640416945065500032840368026427471735165260227748553264286576789830393829808658932669726354796304825570668621655971646785500774815818918685440092929464288305914439576093593164687442035047609450355613564962907548676617191300287877557714147459876074289316563413762305098948993460307235974587638800619661896712438074387426243510772913757515403137602456911202035956113550339986041905327504700967767613796553384578451824665757642452790584936704066924265262395585121487160748255053671401091522884533316866378217724731166718874043940131459368538847107671018151667001404002658421192807205115112419537206878209196679892501795392319341941005739418176120863475508523820910355193158977069717905205432656800618173270630657443619188499494245652693984683659015180597171932053940652828212930597294203132710155898510776333973819732607630623153198711978041848998189190842664037461434414101258052780330815482300130986654129318726985274285489524685505229660931667607890397030216575446558408382987418959888901644440562899952378259700474613119981492322088646729194421266184846548741256228113560261125702648060953768399783793393623968869766545933655252031873781837178436155777249297822703047474396659422357280533070886618354309521335605892505611832419265946206973696890951216950081712650943602917679480463018605466236437626172186543527227320493418739342188853043911768953681246137882117432667390751912815832489575703079341480612346044245352608414623752118008790393667756193909013360975897805240007109749921828054460528119452581797822382420424892661833997965050225229544089650533283289285385668239925144338044337919132283830491921975178043757905610032066661624678002408700923534290557054485839885668250559142280965348349403925221894681227246507552699208263171095004102452754967764508741895219528419648113343443023416724090320583026293477028082168066918067968360049164111992902167470340591442904001086679500656991016078871172807765860050027569580335580305914040185661545997518184088984861436964574509750425895345917412434470897268098599559075637777515412280608205541157006726743592733124630634570689289017817517007994383765454714607355906781203455377896108021520234699905883174695316004478986592724124279160889798311580316704538979833143137065348903645757998262362447781846244343409590150428520065068844838044664871475817695110576781255537864961732295341649302545438880076154924334300577536943891064076940692912442752276305646327923415955749470399132037451997440900800350687409663097053515202026047690194314201465211075168982984650715932362170827193422503333376646258218318294677624231354299420728303059527692676339367995051209633862906448141646770774766867061266478685988346797486921808888785632533188062072975692449878349638945278465267666712884896362402286102165779148820657310991364055356566311726662438963768956260567674123672401856234801871880860678121878186908003067502513270074577131200994464718443541052221362736805703734865204272861400113426642066852143795115124057225550847463200248594190944267006096344521189307719213926685432719391802942987786970728457780391209642913592098503210476905487118531146271872694883848325373235666894352098698907009852848646187687285872694054648276854912616084009145522931968424968312008363543349204323733995331646532171073842169957667330915015835882610988557193390369605702708726749320715640227682515473648031248151776120823474882992000643915333590603289030397479575428234826811654938885732836277199861884012358062312918548912553745156916961483892245909935029044087262440716994086835320815633402687283364358698205387516341422055668411866898814749745752686510422956586008218694956511999918660998425439782578458613555426352866467544114591261812155476233756611770231851353166263418150991647720027246929197242019994112620919306969325679364495795437736330760360190313399074984383522820029557986676977106649205224140652708477136388931642187980371843250486635684361679599723075896045112661374520609373462928142846990263999108906082110997062456975515604493871811736892882632252580239507489237823442034585137585486922081988864078792186163555557065480752662837892188574658996348020212023977089804338867638728498146676254780722660103145567124731063327035022439316398559086244930765954297215586482135785006039862506856614743699630970511856723887895850013044764452498938617998545967706092604274690209602811814896599092908104890940102464436563528124633479349492038405582076538013239460901408950832533384488294280360537385122710144282671688348057437777884762233704524976275411036610864254148681118258421775091398741073820817506792425921931500590003460280660964870027173231889736224416041300778435334419738896215018168474648219099465602994052906345088920998437895841861573468414791513525324606449567454047912677856067826198158253691739471879728640135596708426533474094234348220578598270494118064855804500534159962874853558769028487982921225460407252921521871079017440235725749461741115284382916285659539395382009352855641464883412620238280214172635766808688527956544878055890308414535769925995276524460839021650629405642717104398099209059365781507002258597748174606587012310021389437485864290314426718389588216111241132851479464070723192946768728303684589667018803680212140527231090563829255934541686655188274373881183773616116861190389481695242448407366221294391129846798955348222546946839428351423499233890975860083328054011059108344165692077339519997557189478530020245599387255769223673118306263802353619575056291187076452115775058901269398401341476350209271124745936877905207959476557109728101916480275317155231106764493957554477246680678852719404494886185554472238409014366629142347405724941194123916690262791551544728401525281200361144135060248210543727789620945957831172393862593783579657431585342417617110018941709971436439292593341299071165029263778551312054194264859316118180471131942622780983489308893385941356973951098519972616191221064111527995999965604636191286904976568761181504647380462448788282357701481428152465311989735431676574045044781719978625152086912549622942811770116122787764439450309752106219676752353392149326320646953090458725745982986967533451961234325266274688779933424210193527689919170187493763954376735504945409976424768122370263910093753259458085620382189148612893682440417401765641420516644617715814123318767808511937916455951682619690344694613215863859617123566182872594363562981642547725320273864098746792670910155113472089502704279563297031350633897530052767690958040452495373544363490037595105920776843342357045539010171788347300459941314242416889249289327956760556326054488303768380334266855234368188642536203690239750236354259035045231285162601546322403357722744428392977670086734997088982835627068458548013449832638255712477460332975368438855128018720648077652610027985820314583001801060768056906801272847646153138697814324084050625100139085504699926534150810030279126993967766395054983075756256548483225104990087908393074720373711275573151885243614685941373386465554393500742903722932502431341720958037188763934592084651148131858593644470591282555742145455679783221144458894038141210355310646776853774495153811467874774321450171882045812446245814431563977881079449907637779290018489557537568653138389008877166548004683017911050971023076810018717882850667576954427874480645799503348661772714768597271007920148855199943158411048802122422078695805985187716988229561269049819757516304381428360343978198582392919840188529801796188912779163754942735601439510243275468016102047568324261818101846762446865858210567709801025965085516210637602568441423895755606680616043196318103393128625618516235546480340994503135731985135870178648830130583790461548501662232865938028281648638740823674927613364702629876123297746216889205921041882835221179219261936826000533920887363589753258470534591084719125392084116248550815551617486581177458238741541558763102968079962370955589931930393927440038941343792796149835565919321209166183740648827537986039368063918160851420977912119369140322109867335920967856983872735643237537207697231536957984200657070478869568521920820772791824177438674860280799801027986284068332344154972585168712788961858026858127717681596489019177343526936730152913229461959780507810571217188125242819468415149149202091040044201169396480821419352923372988698623693769166229295558637993090130943693924607370651495886941128133380316058275335894599207735952891503226034745118765842283092816336350403073259306195336673927548599638646511230714038175133270498904780654524072783632300386788523266392548795394924696935430602368789888042661398005459327441081264999782759333164855450257767602449258095278591079104713386970177561797514754088142195701577234339007652121886215325619333845474248219810252076724238690905943350677171310122805649804790150411490455972878348338457554143635229101021449127418149148431958127703706671785691141123766510694349944420959407905814720170954674740948312677177190361968974326100051135904190904031173260047978153814297324645379141627259411230406945122675551568949710342191266018366299940142494649478393734344716130492238351562213581092450283354384336153433481320041288459760954607361376326697389972688079287889904068615922865163906970071109611590972062531493476864332466482541219228713777654454834839943893485398536772736685408606610166660961436936735388783724619825446822106668839128756559842688078019971982800960796917127957689021175315830098469228950966424005856577621291976982781542307900796508591860246555459951628716269863011606664254425263291644785589926818774457124269803208450905570284959014373482173892117821636409181795715054776846769652253056165551807404984957610289268369266750496157550565926751699379867729639211796825693698689371192712269706173118331332617087795688591780796142039306181818582970766732882401336424447813204892465791931258772704553719451248232532430273575407192407994031774983128413305396878554796907964422418267312048741195983103972889595527665382653479014734282630914358003509932782523494971853852221531761146983734415947742321894300978283699731771206982881262225559289643127414352413498848455930175161011935900411505226860686216760423390867833679149575962547827459654310164617408386373068940815515289652458101162111778166913280040377335128413548437630908447645103744070902646674484266648823962150361425745534310949354115991292381225847272552354034388788622605050011438771484137298694970403650612312252507564599436626420271685184067582030461723232393392694818089796463052411967518041203755607642451780962523172265484453530657717190417733910199193053071486438995341693073691780602163473822183333381798913566098889479902475133554590382320326281134341817160521950580068080972902197150845108067062194354357592347868521137684574059218970710089414439564681170524440147650112482049075474985418190430131006753711603477474993658989961373710074927258122536977959002839900554908816787774717767905335178707075305329711491676325953432466373551085907804675309319849614006582811988691145226248051039278378793629291317671631286952630227376891603568060532926260254503212900139330167434303922542610347681657204489132872676776806587911947277546664464048684739648624674122292826044747304699769107143864863705797387232599854175359594749161272456440645335419082543185804649723134110348081646551110708234633520230405729790889582250181205050405383544841115625944772246214468015325660636170850355911982727656906690783298864146637335564852708072683975683999315006870371269161209590742412859007739271755367050116987866937166765777585901057686573913437221300591209688143886670724604327519213199454239725585534090361466091451741053208172663067972473030543228161058344070097485270973006473345792040810278889203128813535791567282031681121751652434287568292943145978802929151115276479096968479185278034974632282502282526106548444967024450124662475600829711426155928451807422637758232864957195461000993892412052752618463341133891965768005220410258811363632447977133654642470189348971498820840148489207340402103658619206790134621779685273145282733813569027369057908963057745095340970448826984474734380842546940282386796730129182767920146459063113063762363966426516982111710126315265257991642727870601648478939181745002455869498087021477221360935363388615236579155625067428831927204563067527333138475471848030270275290062849418494450512708597113532479459645456296436926640858683821315140351525268764253621882539973359870757996540857867277764664946279553759102165862131795760653448223803738900600268853799988197597980617292058893647796557215464341424237522919677349233143597459025820327639477423257412600578147880146410235847411967739974146918207068618766283848751087140171252820722376140178983312099734355486123945164660619684475056725966795978835754642656377001908651923967251678541951275594463587700870730988760539585582077905317440565748862610688899159557087770391074937814894672979173123948877744020073779890563000558212828335573628584224722901260544233843384100290723529068227647564164145904005815885078768902790449740784987971296933435396601387928219083607150018096393654894980601803376371603122856234551645700743062012474327746206072269673830205295778326280168740165013210683880455050847721766631730002820486000868113485932938070808492226612645683105775762382167376749714633280707915721861546012883129702308848784249233048904449604803894347940867255645949873289302598522735373958158903445892928497812365194582743477772799339633016874927278933048353252188741267962162979370079451140184977454684528365855581795855973018503627538005209420687249917680379923983182070723616179935733840844121454283747573449440687255124554939614448884473645013605555387371434246932996177212545361171654057844312444596781714169829443042912888915264193525981082072262388896263464132274449564337674068213722420914344868225524160877660935009545355595111921920709385478887981041570278752064542115849896215898271398241444164166254077433630465909024454608252450797354949093487328423813992577195108249110124780801228919628898816240407546759789438581622422971797219754892539787749278432841144812087398013488599838991899790584253253928939235101813856053795034295680989920771285179026934957560921127535057620037000378798541242899032854371621748843287153178438192297770597420030584267952364413750367246767279164948051187342529135618761500687618543127530806610163724350317528673987415474680399527373809623028762043336887037584324803627469363372603448840066884140104400798751911683437598959737026042492278609957229552498348881927924614334921873414366479734035898192148984836132826499452023526584263895143974496164826700217132778559316906926849738299601552484566453195965519225879509380711675801766037818894379066289902119698732467818036513754947377421875501670123402188372932868405775558876485950414782037029241698867833166807598957003942881360379270669555379278749122271666203489213283662416025986631814639479280601474882129551786675546052130714296644318425989062055302589997248951301274615733071923265550145731054677767821611797544437130845225804998186012619024970997002045749776393179844395240960885684553096111804464535830609898040442074472830165132428845001161877647679630822301725660827987227147004873488277173636855458265012342620704952586315340603355692562030497931045957825435943720263734887082959172358436336259092789213737763636895698903382465071034616344707709415278194942173365769966079222682465428447376402432149032670651034709684691480214428633868294183742552498218329824678785672628503403544114364921484614241540840198532627277921939544884167354881025811474507084845364272252171095153300058629509612539699259495365307166871454213882310356093195078713142949526961392055449698131449442593133190947896289158873247589734952865082124228559124287992269574025787103191550497722152843188362237446029555527434739993330660859769156932375538754320033339773904574911112706846939302615767085033032379769458909684189301558850366145241352777374605852378131622216418696856668088344805173976440045443884685809005010095054381591381332861052686250231988677589806429946349808516295251499616593594414691923178027045163233660113084281838021764551555113886028898566652654817641467407544982371991079789149282544261310342542284522803181008996473738595455752957701249750150203102937227866636872221613689001206475081880903383239975046186113764295686344768991676919933877692730510329933834114748982984621949917147970632412179260854133352941429494076040450466499818364300276852776948086914014075099952769384055026593978341869341534404702381232726029099106591722664742484187021844828262429445852227553156484379771901098628363918007653530940254227213598334221185201967124581566928445649687493893021144070138504268524076590448140777373248223496917839059084928801087016320614668802062432092195859948610866953237406620993502664706721033487761044892138846068148845431993491521804982554952422237580374013789242840602766034863513529443760758654063423241822272892953624851698703808294088037037792705323015196804038591761944428852085069131645640473992377767541657414056922118516176763196495294169650347405529002335779134526574324670481135586648512354024174515411926157717312127274116089167303758673560918662762699379722689006942379459101569775486571523510805682995758126374123291620946969028573180961162792128109540377220344828850763224726690356259799715752221668634297755387481352741023728514104964803729218117925950762895942133009410916476766031741981530300594449672314568111579214039164905233787164946759936889057615150103314401788300809854249621361562501722997950414059707792054005521112832887061155577928544459034068590609670115045695916306882880637016804004968940549671414047690498205410449750520922137299804743446339034891169480917330388889531187501516627251882539601604961401706379554407979489375421522168174671368498506726675445676490208634971121847005970456596716346058087102220826649234295796517945879060941142601858253606872963225839481042719553704703845434846817190113883516811166335204998639100372790556659561950974438921356009767007501853037155466147217091465485766721285209002682456909131028257603715328565886859487391451865015959204708700583167854719626176273633986418535176274850226842871811777013421653489038168749099703260850820615848232150155265083405838993467276506523118629468504730274129159461226094370729783381491289765863198209115239314299277014865850581570820766002724107501112150700994657672511863338907241630069119966046671841569213827720006857289100560443066471747845753806305089289599236178341616287634259162566939406117283235164985335811010569274925126141217160085716040498280863720726237766074244625310112654130499181409421952293358191603343181097444740169914809859440079453117107069463380982058585475534944779090527033186323747577609151925525401220713052449251613331383817959469117889216272200622980215915291795871461033119881910830808817120188977292697202920878573945834245871708073460265467938018127956693285421889896783699379652804123042629201592814826961324856905011674597533508870258047329225160062539790154452756704557335468730347441542650131288238762311270338303212386250621740083169284701084488568531185375517843285202983792174053255273317522822566655286057344501651562515962791694563505047242363917382982013507126247500075745840893426836219185101236658799209242606037761812256372616808390330850064355949799553537764505111960095633978938211266861178639450790040532929498433725210164275923910924663562091327604514141810822513838945560988013286301507889206727215050800892603108429924067711454790932800668079325689821804389192971050748517452471220803917376605003519274219496682359159715038724128233824759960808879046701446031532507846836253934197852216120403475617772335952322532296222333004340413490473273916121758018107420606048500314613715066472859347142295002357842142258953248297491925344410242000299557232186152716740671393197661034321315540675170253612696481105842562200238474701936894134153214804848752409282752991358924991896958748532863007055221964526773882806117922871646299864622269134123343473736374855540096951492303400208405246891575659554549981755241260788440904328052722735196243507006702334823815928061815494051475545119361500862602010324937126513609643358742818596350638414270736773044746813565709017254486248029784439574121670425561330820636543220567653304621568048968068228453637662511461638808463330129628625742138231930276168099402360766716110249392029084679951519763660342703260867711551811952938064112758567017411765962812535346164283228491176745439696651557682461829118364904727477598609190916182704104558704431007571007864756893386642085756848442580738414115652931824179338209901647109832722947839579196497423439629572040247251103094995918415559909074116084263065881182851205323623940454618318763554348193923172930959557038691036393164516778092368389800371910426566672856300223470720350313051793684906830961222808460814733070582344461969442433303825365932287175427050404399330919621388429798042969459395071795107853288632307892671223142532761258611158236205177240391982296338575160062491285288806693019411430905602293319953565418443809662887801815034600321914278385580121538062162106636717247449495838392040769429470138459970003859954971984197298521933030963505877987026574430079923690895532824864344020633986935655361136052179756322572298540386871050761099464406985488595136742674358646161667388492560820574432255033420099481442336960571578185657636669113404164456228811485984783584966987392794376250931714638773279473806789155735284810224237826001384595161728789745730671096112426129773461286918967657562840226884322020422620580351425842443856555275199313710450734295367881989181882820569801919756086184741817761918322239043028976542343925362324481708342828035113236633735615147873263731310021443606663616351394754694759591069989982394824799506380165432909462001490449008826842480506269098749899202738989292479628441326979562471054274056038564136358471457749005014741385684142381262635011290926542382267223617385232166099200292830248290736985801141664067820075364641469995546220965161943294540909142269622503713052295187591129652817958441490621423372816441018667157797909219738743305529243492028243568107199060428993716914458391778743713649682858628697597888727295941570612992279397560696877625039521113074472910459269775891768798006248481671301811107774731927149603713433503218507972680040650276859092196681902968625091057775818193587600357957880514133570914688208903559716651807726262488665690561515469456864370754408199462036893180232729362731935025287097083303525261665222303672164774779187585960933834723423882778181700066625676590203423354333345410653856522596881089963339808441126447258657755385950627515265159458959537008605864980379886691803574781747381639207084938219111189657667100985189035929216185134759183179468941327850056511216519498317308038742851341482866495814932977774876383879042308586034813022650308649986508608789575478982398670903492395383425951279419045893922589893565850403412036073799842570342784660973384346143614971265866127124135971896306983528208437206076749858230374922593109277768663234725239132396892471106978226676308621993128341947007525003541653361510701820692517737743423300913880772774822045993683201047888565733445912416013254863929203849007055238494037169726498224412143291244960850662913045764321217851315320662062291063939171100041366692761301317795017266185317024630329853096842879666215868118839505762589354467307314535708445255608502294901416386451121294442972265254232195867682575429689372961975987679499452261279426383149889232147907449775524092006729816655409771784696679816507034141917452473549335959316957455257994461889395384516591519097845840717793802756648650444962408207474030940805816383036667088243209067251015930348119161495916943718310293950314482916008938905136540650039763926333220620185060232146643339138644179699056666079934625580411116008251588608828276958440326999997722551117140465454225373818085983261900871146639925215822231286257143706340531351170966535228961478145729850277155661432258784116807091390069391647168842872431905201641891230208083080861934072029763245785721466910826719797010690272643214653541656100542303929020930309538310958535675909191119213239924645124739193847367538468343846497686206402167517673181160814026858335057040311455371172255933062974766410588598776042934731801875542226962873777811062601353454821005168060004762994329620192511356233061395200275834768025410603923108627110803806114792883721302680840848190241755331662022042476149479849629429353065073012526464650441544590647281910985018345454266496184505586955089826331812163288997010984226037334423393715271405620422550623753080141704882188893090624797703964608489648494810890548139533177460713139543137804100013000921276837720178638465075659356394313948148702110837248694840323196304653489754485405011343612240751917767700184998231142230758048632106140547979455779083101405235685444977337754083651051802693902392723648027536189899491211843306614284514576439914259187804933194133548363387948742093759083155382615734036231487494671051172991016371979134663385412387809451055803099447337476937428971336058249215358392243073445118820743602015315431957242500805242476439162620087257229712250321420578131110654692449012890630006005180152092484073122881084951998925911323232971196241554995384936020820856134471152104766472795392361755513273408625321609156833951437406129060888499048641674152826923937649941236635752826719568890294943335636364816351619941717894272369368742313826029042909398924680779318838639792343851992833187285939493832629829925487684242021084738964085120593649252101585706580871580743867765882222918694622387505372783692230899384550376039446085961312059152968373114794331807084063531467137319070881663312084075483166870799163056094302044521826067100058755124699224501652015592171464582210332805237283166780281657236431937846757834125001416735542374276835516364389613126960942777047452197965478044650560334233134394148913162512225543659096401487126800255875332249853319118484283149757794939668766081877898458403044033100253664036618644020696933089714487029617548424149615760887879560842835248350336179566515810519637539004306585142498429268758168686596720279696857917047410822747006979312197246720168757093610853802898239901395336589570103125699714705926684791972785025396952962547165971449891238417277949315844152098762071705539795011146474577674651418924617304573289259924734337174595087455419760958649969570903804196456195803542771383782047109953217465495586543768464547287291332930359214594987742374399034811289710424470436898491517714866119294983828785378855539319182794115144349894278126046702347821243277333104595420247886325102347322471657969195670326034671036284891476199146069939584890863272513026344520430425296252208785688143092530923220467233319655902743065879761082482965080093266594958980278233315257605294020626694342841086416468989330664487577542326134317351718541498701409094546309792798394450066895224749490315553659075441864531037884644428315702769227683845017948348660946360512013140158109605286851548685562782830604281493530969960402169721609277843138313791380779847676397761685406844852177061293723041972848474278144187770934717393957746285138213272344915160549283951997120628248203895335436979632138024291989512586619173947904287958140990240681403871261681141737371622253677890834765349571332979539997467548008105474170482444942293536325470960037015754738457898441027215628354732601989017398394737961591581652344913794520009255304178705469646399921596426919519790711039643269620548285099843974796176214526679349827706640309748782981184764744982402108532897938717983984064971812935033039815456651463988175809050094321734340648364756626466797656968580095349472020237664662358957235109934243492770211894971389499031139880787817161262803990372984349431907126266753457999339793565571098930413919248152983905587143492170861744816832883551142867556642580012658035339178396457103954683860430988079059912797173064008556730706537068631351269036970369997183359754936648409352258481385098734613753093755882502762102702723116163467183092338658181743231295376747383935521089813030091456819425378263850351598036876582137589277761325829945142162145830792189433420333276118515609525820111007753269287028101567091624291664057647266959941784152073532663413614594167365067741838049741361694221929759966187795239140768922710835947926781137546717257780336860590651522117490328928562008736989047433087060593340677439313796445682703940370296465730673544320915697938499553478804927804809858118278398677483276543073858274691321179816656923060102345827927049574336272032146510443232233599591304593827297786484743489485629406402875884286096849067447279140748508187575363044208357792821562929830905304016243422354061161779634878748140238318997116620262506079136110723018793213600091780031361759027590158481475428218493300033848087728145306370006705344157805768520876956012546032586949012929105944509813733773120983764559929678175768141377249296706888552213283649285150381815831521103701219038247434558891646227274136657267482718848881981365345467566122779773160849028703296883262302820809722035245568661476622791979023383554984229883467249963629573020228390143950284643722792169998540989245909351291497787151344753613109875804425656934440649888451446195508665738577061621283312113209594412780182653218662575142654325068408508368211772729262119342679591468257117824082844460887261910535933181803140228228136661468231545305882788566516844882560091214289307218449729125045273809238661411069300015940318685804150106480719007121342513402043065302841513049779701318427034637928268670165743580191415661906994465010050123014088915251590159560966175128773731309666962271605424091529850715691691889871541513586206960746977040587536292183787248629863576059909413683535786755745587571324357137831065925094520832907903975926587009501084154537670138195611013107068701009199856255247598258107647312436371587206680529433103024868122695256030240511621710942638312163179190954883636503578589475295386580352991532579054875241728072535415720606052601442009000116959671230528321984210368493213834542149334384053990714615528989173975694601110275130939156271798237986371573607921655628335368211092667578791508130689732150249329301632209274698264299003397691798089869371236201459245467976968290674764218470475984615016558835553986700012254360783725742333275874183929307607754961890517958687437209021327334805078342139289949263996256028032497977811955469917590972216099922040230352005455184974556247536376327085943151731100761881931777405284487174573453413193838498067638866425420116977848507066225317328688248486996338051959676072989446436950713028504777370965766146478800339938372941192257007382688727359126762229182649760226795094499478750189706884450836444922720704942810114037565017099473566477624825359093333409352357630782192183125511592770682154736185232605362995796941899387348081697016642886419939182728757783062803646032583357070953124842217301551651419601796589068156118122622326877068275626368754189129314907984924055313057652545946312299245780971262335410698719876864436776445363256654200354861999178437426407970661366934421570823543564698295213824964006101618614458694498604902891453394784427928546507436500363206144048515621195101105253649751728691826674775812974177812349834076402538014571818028300665432154920252801113655326614904551233090184612985185655502124788727725493492544662671996912899758204771917796824405496951033343373775015651551664395861403276192596738414117972413675306005706517352600050383874115206192745773731111056194609502213078380161428440263236091499768187393834537938749691437107557798896695227700136487084004010972103768545355540962349274902188600482788256479201438213867795088819567913143526956368642237015843874603326464422416341439615479958479361647634186374176954081059641080234287220330521126569516859464889390642624458375829192725765046570390509445160470602323866133673029709912116621307847245050769399695177529717210926641424087129535188982706472169819250240560134054357371702088818249290299830622654864613430891759960710024264973475378450056498887267985222179315730872646873109241060270844434923118747707897533417519653322069626479994768633233669293592337350681246547884662707361801520736495644155960030526852283160390439443239487766967396793146390581049261671053216745075092743934486501366072206822250370689271795252562855175628896741232398498305575972577361958074002409482350649243586931371775115678229355935187314971735291140201099317983991121263648658482896493658373599700688591949943266435468152228300455998373019407477254169754796540373788287574187715409285138490787497976219180274594776306834389269043031227860560575920433549878099278781076641949685216911379268880282897261147691967541069402212331979105285827174710451645963648465965544629451938804863470266011637398430099375701999282460733682760034951350976129140384486186439999712018979769486913408340706018490243779246084177031559947525407676512817502884296797711950040884660683627879079011013114753913081242645117200200216333074036944659214566423946056209200663321494732757449216377167705736719495912475634045492436870889073892967111589269603310246724928535448827939701376727205999646542128302458169489019124434629914920275380723933981859561890363253207934293372314297844985544310020958621180905443349806072287534226726661618413583457146164772762314509712669286567951254377106353220491293066530531999212542041294962669112517069471214430820582616151903081362949992168838857085981936908553286445926622513706597228570031770414636580030512296134872107679422815083283327717038833823673452182928026955978926894468947057331835000036163606726819104773310927955621952303393771411797675590375793215597356559158912079894102050541689499226499293095989650246330389715732139690269843881848912166322428073417079547907327035750027175807429905512106064671740172133686433964513598588370481851524577724752356224455989242345402476246382366971421553086079621736141960891179841458007379156375479984660637914565784720491067611865099613296746718231018849968011928533269596824193980529723069057033567507836838063146976169425748417299334216641413685209500566125978211177076212505759588957442958383557611975544578215925925389682671724052534373616234542111071047178075496656361793672254652512229032226107869109117472356316472626368020763006086067056552045924191115366028950810617033279566697997471096818420595799115211607586973477854137986774002038110242459645332499139407624220298744295481411748170773117071477845936923443542785071233143896316919749419593783233818802635153671853372814940760367530451576932804059044111629895202691329460791069142861365866233485373004218244462741712668278310953859103004347564453330950568052121678935645243642863549996770365617772339694733476861863163392446300408863040849667955206257296925367948182173174299921489030638398336753416963266035611593816133939109505220570605510799753529230770632980508650293824914556478428623053463442718545707156589369606595185833713245477915175083337030557417461991059891495001223591278921322023570191547073571967611363230859952655498148433270986321007989371105478518714071421948821132179061325415578982038627422871889856710691846997258652290808280414212962761742755981326240598410704371879095422735724176939508245725918343345571733634778467451859937417379843970396639238468753103934880821446424840724972653744937931617002555807633056631745682666322660898391209531358775612827210969968853945665877453051559420256362341854629592542923672305473897700180807692989101079479203149330487257312688132372542810440064512320647880773578004087328373815529413438755878025254825614712185652494329089392578496919827811561594957956482222801287726943473511694703665102180856651785012319793799030488525276897737019476989640225405143866131082721147698901524219713176581650392600724991972893313055516431574675985698630428329426957579748730437372834744718292743317381052687031494159956641087173452229510776019476286913255636532716120065199134495355745118643790047404037603901956929773510024316516626113738703945681068334771359337885578181129975424283345191056153105829246090323704520810599301895645921005996756510811518735973970069648214375196078117443405035121085442061245729530562826127998509087595032947291376378300227226926479855425157621523490908876130245345261383862509667796434042318238580809720186761404693492380978161347002916644607588437164183574249334116335379584724585099117079688939440324329896565150815125525972758251211264785782470393493545297597293527415654430013903222205355196721916740719739232813770954407968558937201870461193558537564621966376590027847507395527499903153681333844537190342978628625454721752706892541090351959520481233576008494298710669980440049855910435568782301958789062254548215693175731577365260458622735357220722822567698020385411376072316581697217974754624325148870571064581452903390827206405285451146831607210268605150342330609738713028385761604108736260849921251615365395873364930639825521518400603551572021264142231841770692298509076718419058044298138986117321287401998072568177617426163338744112040079647029634302250186534390424485843248969894403943400268913257431704111051688717153685396268095336167783939041938146207591908041292826084258434850662759457795849585448604358880746344871668808713585705091414717268611781183187889732743211359474912410744856402558353518395932889773726525227357902801485947386452562875968825578780206755498968135757403784503846902699627546418065579233232960414047773706126533089176999333581619317761573470958000835276041225416438672866431199106468567310760511199579672280315240205102274121149586798039371237007022261400342993893062107840513289944692346404746924616974148048676028446127573924225843992853420690255627427353942868508630156329982297283601774316700613165820653190732929368736180666160887408464581331104931045844643433414123973827357588204626375591100309631895484243192548079663177128579086535094912185640569202351548875424587493754742181751726831965370301384428549384580329259567095305148318191624233696853109681377254164240656149464787709814330452076179681674614294271699982088417543871531012551716363737930861061858136001861310207681289335662457109063058462790057369955956590694127564162456002069496426067198562552671181284149797064899759881219730167133873954081123645729607340631948072515982201319280703674530199739774906275929956640318269077388164148113817663500627678178853325925073683426099316408977680996407569375715672123620597734135314148402122219137200201904689065887242455294193418067931771111236966488398332001843899650490253663905324272190507539414128211847370953950747443649475898723097123512978653053857565240653220191787876026627738530283808179359830432717369398123614024463895778671500683889643739597114755548316706698505330363333456085778081699792082605938676636769305285319137080823587451784865015243006766808917571205577845957231993213764151525907502545595940715892675086412583370058047574596863402922111312779387023185280730743990780337439278198916061585717846350421365820845587664297283128356042855778959938228164897289592317631884392594246684706636691780552147339860807009603230008424271623684087883145161227072852884472156580063759376333193685827350657263132903167206406222744027811287596008597486627354860608044163864834988279521686208422807901908091078356148832338178777951833615636585025443812080809742851500676358930548000752778979677617502177910028054323099359661004394949914144634809085006390649564418196448018986010481842913611525204795233310728438011274559836894560420506835786898252186781719175275006206406832513336677658502867462002883711904949078375692297783280502778108773137573607301335766663493819943401527666318581428690112148812124521633263248217146903695338109198950616141285200695908736805085557256698680373228738398456654011380623155626500968564237831855414821097122719316137725043401086466133393022982568800712512572352816329000640898490269005213316619318390815170607313791695435492693774794991656117898296925737344087160964936110320985774936909134343696501306130790737638662608705528532902532429784276460891951999076031415794899891691715733007687111717580207863638244939567900487818249703056425495422770170625771552354079760657907718599600087664394691416163595956619947390824761052251224137478463632259540628843118262935495201614272670219999501633720670502166089335629509997245915643907152762368086153577888905830699895449053225179476178935436617514108214798134698822961012880951133307381838092371323161192219788673123069130937176623353342378597711546168121168361993957789672166685955411857261069779795493179287387510996542067084159111336876135062935411425419341743336031266987763788942056267875947130105871496495412788580206592563220315713877693011650545132127668702068794128405072382020978480405910820897971207314353293002128223545554593020898391482235993630523148932284385827465414850867506906965360729747600281194126692483835874256371969926615930067733931012183985105367686677204377796669674227360138691064929530529396464651006204418709701388992416194327194295694622567025911104946740089215533148354872545099143644108255828625164621043433348167505415826720008890637363117259614644622628722896315979371273647321121231119116171512597355344419832704654209432675086295395699567743385900475921429400036074852474899173466250371187769457775104599677235215879514007374104374513325872191526134625813888773209035940014968098648934612802068396804196528035138207948650399834478311212246312457703139649428358735377350529846212174105698633414317665498730221110286388050738084675572759815504608751175719507275334175950972956607822258806012581333586680453940347205250820652513076244039912496695129663259968617525649871776307850686891127521933900018656779786132765264006167807248036533593137519798543002667840755411758663440011389347375925075558405180828049719375531186436712160593505948507656918200783829276934194614541665026857691369075786544460879054047911760458156565199238040358500116126623478418673026884915466085450463916470171750866785850927397012539850848874283456413661529897296845216603608743716209168513353386732894036656673626234139555398892137783567602889973001043401198371818793122072627284824429444574125515167778445350297267601582987070877288276629097886053032517292323948773883813220677149578136857782862312106135878795784049878644863903855504863780128795025479444982466478571815026632947891354972578416814562196197800185149744997005194096494049611545467174166477133019879265484794093790848015557657739601023091176550192192594425913172865941154285628624831664353502534573076948423223586725327457428338128620551183113119574009856983343046083727676911839807949495515991003949375546663117084857361447386602811888231077485144961632384863607483667370130479161735351064512550085778002682929350983334676616079750195530574545029784986185394356547416508912736694816510812627325201824219141179341068824233896909035940634222566983396987080501130536015411719140050620085235137809607304473003687659894038408097045479247135058131904476443640215190503151174554756502546564470117396806937705969247605439985964366592165675473550895144435641106596594682678457264510658603300958992086274050350355168166815318314826629285327211547677122443690351352757790729782418893040363810056149013918156515882435348109823213586047136625016666477281432243275804026536697375789354854568726133585993435263916965248374730211190921343058401423269693860233214929449814371200604051305074862235971819818953029775064361812790325012369273988394123726250290685187832853734119468550918067101010386665860045864056516366495425580811905323586388520907885345439287111993445767143686022858450580653735441560369584865350061203325782651550658829745628950504645405869999075178219743062484992450889484332045349069797777839174092418723356402423127233234078210613862084213435566997269180618056885644959100235956426411177458359931117166612359993129142303152807852288140861888362131027308761617828064703396594419382516311960933600926752009877685864484447756483261203067386828230327797879694701841901260133814398235834087094048224429004919866942739005033964054638645221734231342406789038996006163784065580521774070486517928238453935583953828485685617757405453805023329916824783744667887399322523995719626702624702241369583767623387866368946849570585574130928571202598269792367934701385118456608306781513185824861825005914432694732821738512831269487322565805415218695375376800825963529278500847506281369128525752900935216397128712926932882192148135681246159173894155734026296529130868932333053810606536745683843263825899732211489666637896749074091162104642109187760988477316539263153413273707675375986000679916066745868119385060476716274653490592403862565954363553787294908039516898763400945237053508991079316329293405199626996452169364697890826945360146968494418804051551021723888976380543310694607577447705174164421208993733085398680641002323855922617477795359301803369185046221625982058214586377012004383448972308536638103899617562787920981321801945189467345639973500024111940545068670427052488721296890835688397599606263156413602161353751969882322539214821239137851182168970341744990051002169067407988618309598379285853659534709339492159549380586140164698318055816853146847698372960794298742253733204066405156082283464284395379868107406991242541150741696194080638741397411875613674979910655520798791985629640437275042356577779506139729550053317091104455744999854830171924875674558226875191325272427868562305336831634778613284411107958174831619441781386587745282110153492627604893052453525560729462500741627509554737819279883115886402905520934157888956074204678881447523905835114190060047775408536198398356007572349253948246622660808238124839974780712783943809016180473647258927752126344504155067009177730061233835068551463769518848034952048901235323404043792795213536463669903217133556245876318874859579692290962269591154118352475993769475616967370606808430364481905567835725491881783564551646039206310518515377136555917346565968552615860258229101073917979756983450449225812375241967660454126420402689992060952538382673033208399291918931842522734242110146880889385237529816530219157031888355595026446554954104382674320317733452555120523183159712145714501292814619499118236474466793313232510060312062046181652221813573380112132348401285222434042317598168302134794765544997886504920981522538169883159241424309833339379849389092972148133711927185196755044586226220509061292574480190046121183780266775213112193182770637741219280306360506841417948330502915542524350035774756132587802353434765774146998765212186484582519464312363406146442548268008755531318133686325289384305729864230126386449376444697758964412595287999110489957525314438581642389033885971939068780615820139863170156985263218276058086261361638629713215714026953069956054432731587093140548078914323792898460403969632800739738059668180060224153626273770741056923506998442976064522060477807758702792465155681757820840909034526599600029182047298323071107116413951750316863158714421708787706170225352993243854218462879304891258097257409746944066618624420809168931071401515864982396180018694134757810227453083834001469493202388138288911030282078779326726497394486361373901554796668661172150000144944619863140513488205922874333949750322810111322394369749896476397251220006409004750667018304540562361772022372467574040855256472509155424491718144879215413559880340291920277774458694225774907516886629847052373887745515097833795878972841194483690018160507772614543161779224724122126011607583876277382579772430299413826677827731529677654388955545863515974044054065980155994194374206170038410593758138030098082310857468616494159354902771238769560378843164748932615599418428268801994673778912352768922725523051457310666909282729965831654264058597615182668082038182997260560080262270505329359827367051382431886990534267458175055279282900553962370167787863778706155869515272589040885725886150354911347267877310165737157611497814606773923371196426510576256295128974719751545296301505087495104062565881107760140419538643049769940111392100626820893541861960722492410925901158751670819635404727308633043398254680289412474822799986327226303465206011864855906743468965041071605825695950043871351177844002826254812088849658352616885442956418073035572205090162486659313786475205083040455893339920926496078970064230268377190008193558351815694551363407698116940926108963446415231713359926366894809061768817364423370477398407966563069293543595533233185744845766138128322049887727267182014407496104426654507131921854993379991868234473043828853686808928332873695797556303711191620942923110089079742297991523148159802745710743603183498115396473148594356002613262346956208019254868198662180906586474337706535087106696886764953104212754468172693519270011197106832628991541101281608043589741399677831486547555642284161341520997332358308371663551582419392112038540706726932612596877830101693776256484937471065410319191488942068512078005922816688474757080061578693857240900540688179152206064615663584523806320278504382144083390578285676323029028138039980773401096984825566232614536050270299121869275262813125856908255057613217785402684500969029797567470582293019710718466086793956264902395172804345422863030331196374949677915414274791367314318137768563236026581714228014848490241328323138425011512367943587121123001398308980434214027209278769376147420965145533811269808014352454634776287425672854758517556346759707047454744514889975925000499238011449683249263398505095766610275174876348897864333081829745081365345819262360759650862334405188644709227901909917310247088885019318202999797147201297826628698870913913131632612309028517164455252770509706642567770861137856020584208121516505119978385868349039070866131963665200511695267296890287129896507048021084325307199241139762307426734914696125837464242177357753866950314860508174455147052542908493589247519356081761166332863645882416471658753229261346667545644124785932821132278368437111411322878818075394956227745602331600484969678331059113669430069146875683820277017500398919252435976151132817941940080078901388509429507818927567261754135911392651283994571444389115304982521561142448673112989309740672199029147080496869763828282444416411322210502700167771349919351485379100669832449987884492280223892664308855478452191407612097146222689067095869002733221714667481878492591403098143431774405473784308756482361806477921654296169355687673421674619767596034525547324733013409431233791227844114326468290881187112134352561459427653896181825692219650612986925195876160342870412337533118047559130284926534008019474924156309563216621886519630319232658227320354245988470684012667156043751292461760674377007346949549874736786875993864139412069936427617356128614463794831909406731934025440466554232862357481460949515138601650236920825115444227668581614150815132841776903912984231063222349988438282818270905004281966552693868431670732148304197158258760928742788471084993543293535740043564745782412253932287155267760708648833491819412593638085857327137827035905663516120562372584333340026125606674084790776322752823147256782249399114173810871784276782889963050166520332416934821327334700610551973234712662578677462837626181148988292267209410426784830731546070652640218507702898090165787764245076008939895685449244837769707672981856323556029815946702133827912703667597119622681203438760198026471781273248298170175445818419011867149365123053193000605832253109249870474744006531953560812752211824286567400004515863878355428054723781473938241930281223431756604600612306047141040805848008918724415106718769415333892908649252681213109877786208575737078811208523951652307596107145772251770702051645886686928726189818671673829735844492195042235657987231992268333260944547755862444328745828768000973431583546727209295179986385248822814569818989811550266275971273577867870782544099456105088403791325148526510015506470611311812581217521699937784506862280732096433824954627932805774586603963359627561952427806371256897437766323103492070743540795363923769086056826884920233239670040040982969952357428835557397420960322761597831128585308306479741747797798198705627656177069209760150942222676121857233593165374291192290515552045329342225624676245883779499019868456731139639191029543819625622048704222906966608155106504539480625324809913603366436025209563804643172004146953078385868476156889532193465738213113943224749187992081394334741465811193278175336450413414515667748819432207997172639094691480305301723717331276328198857542499288587892940488220312758820489178021421775495269975728309607162329203371379970095241001953938908788511636148723956647878830750694705697709086411641661495498692352521258649821947070030215230799728175331050052005237249618516121110644947368289777919742920295342472256228976598128888810168849319460180744783395118732205896179746062137846822666518867601372824519151903396412589209252285170858305303328638316310049659206223103000340015969520445164330600036150433901949594584873667345010479778796008868256218823208148554119740013536620298162776244303988918219044597401279148164231144015443835946525691863667350534131982490185610253840342681612185845361398521535030219258626664559851695154396461027501256343587300407340612474197665069881371243920907482056102328695754692570839400314147390974990276803513072173756032323248703698223182119127915637754071077189696195998335979718916339592741003914944640066475293427416035855826022130492894941470392629264171746608943506605729478442758476316995756666190623638419830848509353749788906549825579132115345997066527939913656710675653896776715856638393056411980074204820085036400920077637505213077884252209604134389979756699228229603587845000418702269310196465709673424599368859430210035614063936955526950983028684758730732708388827264560511646704417469681680215689184317549399837447877648298390290268010128440419590313346344600182362639612187050541883896756316950932485560785798036910351604950661190288822444177412624477246661025831477915638490013562165217751360435512414711511113524669477322035453876229553222572115004848282597304676750640161491557562672891344019511376477994135476639974951173528460120562850670862889101308361693482020171359664859224108813285008202162840157251239953962911160539609620301264030138068205589032695599686991176264574793476016624458481623611317609398877057931110300040255641724026640364095042973624358798748799851601969325895073621709077311085873852364591553488329150590016726350983541006054066354141071857785293893786993368839348833248757347860783536820546833249945285387916938055208706793910893664178970822607292923803805987284488282972086904544543166645278866917988233404710959362616281413930399858509068094802130663934240302019204545284567440979924364720413096368891286735140117526718009031176389234159147257879473179734249269148139482384278935893120534877872526732780779743535754371103160641840353279214549814712389250595050792613152932750033889950032468766593846443142945046775992303471969075715203769421504215996655872204790804232367747462526864160337895765568504934400865771116232063721744889102982784746953450964012023921429985097863303237728203981992394013007370642122548353997080129702660450911344325077529576321137934335326496571176049004100352414007858763990503611850608386272913706016259935551084960299579228054659851717503830977652104836957013691356830333948761579516476346425130300979742971095769617008606132878103595529395645930233853708323121880316341806832223707956230014229540180152095435667976535023546097429417430841279778056841635009886331667357940960491443023976227913780814951671923893186716982393032363884605222288213463841077609688477366818526239758627760196515905328132755150165085297367275617479766114324649096356303940069451504518081588457769654546356731166423025054353104548744184983076830495056897299955019443224914666723016220736628489209037634857906568791171609301474548194219408000432778231881023397303970995686187889198844906789840776168308323770181123007460703516847553945959395692405944833164842000578631449669182194476225818339105927384604813511223369510215072191758774530695704964251892889699542828518032524979572287486493425918041405166914355974694780675259553383962945122499059411638244083924942805087937059370305978164678056012508525317444718991496078425827746873861874104709237273153173092526253524738423375486450961102527179204121537992275826665991606359804430300344835083894886302182215275987006970879274288262402628446321744880139805272165636892939264198353926442678715160780736305308792359065644902664661499994005796126280649796647744093519009150351838039312902845274714097535220477377689133642437178169452715875619875261207253069471406954236277606531547856930346891623078112769147547853963747058825856420789981052651283039552643240567111089085520891100237429463460515354761615503183431021745745689632463753407678827268404473815514000264484529041452557582236482445992742024569898677063722897271244585263027051012578160091888972313777494139873443892519493288116578161860177244096944805185987801623789070219526360716807023911342265113599538389341842373235106010556506534814169054365053385101468603348016723312085379688785143178533999077317309625412015891109550325519969291067763211957758356200894628929794148968719264239881215685591740816048975827094069657683777921115432348510616112189967967438835878456559072952059061121668421261873784988043326438591531860230419466367336193249209991178852658018155843509123931783472128766083063157042582129293942501108505581398343961689039746969357060314792541546849545266443103869099916292138100499722506242766874833468545643628813782384452185910504379015770657980076489314723795149153217015982436655964029479365367166226327698246128696139304108846873078899602784158437777033466212206158141997965121899196842459287451682015567623422138541419231693463428707911742499835733736338999655306652485978087341533073366070099862476649813713059534028322821244839468215122954999630283768833054821608936129494593509082104912174293235197555019778440894975495387343381922643966501270238747887670929506031106222571198621818868400936654366913479349893442085636888199269310084393381728205572470688423521340128349932568548154835145979433677402693885108283269011758357736111834482454917022029709287712299853558375326059451597152149010532535820230129358602842512993264304595762135462236971684761317402486627789632884748003557298300685428198673773584931504002700368146148719148311955535464626663355320882031027350901943882554471734217530538043912354437984660928251708826054694818244929602724971072164201576083885631272655743393847846826134828809633886080190935488118537704163875668651915360527301550003605595305433169069866806208167923992941031937332262256425961676840208195540169006980765223999842541635680621461912811890672766339930766155125882872538775981092245210074814613706550290962722602807432619630057192748255341646430094429926689560565879725868983185956641937049003283013212668201527200847809649308453373261353129552585779046204367774953133734823071259541902841994809633237045286848913190085418181758903371878682865473059532594224016211693760025584195246075863404154655238233131178289997059946709766608906052009165725416343776975399958393593245573351007942328435872331323561364146921930165099261635785468936586164865776417264879806529137649223044876644190560007087780724492418869645586470669016500712178191998566237990951492416499610336022999269052267000473037905097190534029466014448081074342947092607762918737964365642560600365234251021684922583780307290223415992080471604446605506909240662477206363026942601085055902961979666853519267502041745507752801096798512357550481862288240557313810295849710721552158125629633016041646340885896394419985194978757903406661405511153257515014628605376554733427559425931611996744588488732476102758322455814779059133110032300318671474464596920856177188001302118193759739037403574588342775721151980527573841164013097081334586454123210206199978161164231455814392969562235499196807740631207021689198854912637278736341870024029631129259087266399886332546968454676715316449955144493419750199371992867405596831453489477896364494600773648554114880976240873562308619842054742825602135217751894859003253163461549662045606520393483029947160252421755574424103725430958870933081573694641056393388051780342325604398476803247185896256300461249532505959293413492242554317719553292932285392770796932177423280545613231885534560132594595107641210972759585855170825587199001461582780771493623053531620875680839476627482747250074970037691398287151926600639401800655635691615632116201554987188628732152243895071304054421349413388945777845176378121137863389544081478051360492766166722593763074434125817456651180375452364746116491090451221341738654289525627283761035642763914569581580393658003535877201435594727215572980613779691640549464695029824027166811739204478798612110948331754495301419234341925021697403803099441981767532813849065853378778611979606275342212489150557393846458461640784681683950832092556972771251060199894907889235534951875935425804443547211476865646301089688183985724646210266327783723939269357042440776404660928075671482189672925942805331628057473654393795113805358222237250851688955313460252233324687330964530503936299446964077695262006048479884633109010576877858192828524145249090294630212698180280148851367522528004384014494481636208881044713668737275608571344642738968380912320469801791839259690723650262784025305435524630302845763040539365147551071802634123692032784313367780569667457928388785512828090060342941293044798718498645750618424272240638236079511144085812738603315424268323577089379802594495868048892518233979919991037601012124744408108309522430747189455598306620097564051517767726865562657433619256519648089577824057026214016774230291928899559837893108555218750323777202515165665543270698038441601955146361234577002841876967048904625691807429441031546018832972148155558087778823818350792156358785978085803828557930347055241672484134056384892903193450086562727256252989839050349777183593780774072497174678699829393926333808430760404206751242843014789630795101216710470620001776059388878975279962903410757668756318148997468770457711796712393343057718242909790242408115263101113378786140849180649844585150948184772996043695430578624571538999355916723141285595395195454476543380530917941146206474164095465421813359648810509150044364233550457228845429109838306614992794422556371191895089234662544856689883690110108939145684468227645768850831936505359190276267491520023926564849290527578492168962920183408352555757137216625430667452612263207393202901660400777662667358248320547197252445759640486656096029395016781870017483378425321198406889368930881524660648602640842663588817062984239446127910422745551488228461199095477905552453337174843486468956844780167537425702054820737811874761237703302761960209092352970977671703930945115733810430889641705311190707351902855900086600626273077974674018514680724499802845428684604074712564348710278354014518998905114547192968169872539224774889405566999370529377896995347161343035541653938206042118645848548388629015296340123671310859499991970791976600101379429698071983933324888579286511748196963495083606188692118760033388201936557166265990880862442535728266158322485972543176298222742403658487763610640511464823850743053421231993058553402690043931583395768778040651114129394177303207191448856357461805198001967531668950637983036664497836126846988764848302348234275569357933855725684578267928721410157650582250835311087087946214994759082575146764003312801480179033238205441328336181150645927120418985096553435411189207487050512322205565467741811359287510782121931590157527879651400167378850011878095696195005079615273019476617227557583911288870260791037578757353239985107710284104273106789222137145775489262007881480021947060673211478172396893134353522751095902788097146443495671938642097505340704175274743983221227714112894029506534218088931335123191951780932982702363114126068283482968337221757860628260980552307787297262143015703059859418701318678729518510215583654567078427901071811194061504107903385192495067908699877510380138247472993248776969087843942617290198525311010480586586722549874516224998919678969920285325718189940501766238070575101195259440458056456462897067959775110402905195332595877160348697420127969626145137399418584936611541259439267642889451976711506079020972905302809197495676312650031332075011835013323052948464257909645104932202591180662626266391307324397013899753808843072550332643155654461414226381414520104820087295601898409442522632538234051805717472420336651256174963828294978752712234156219985864857566871670888953827524274795643184246980000408880035554157552176557268072835421551054412874114524862496265473593903025251451037482064671747039941957151065240980262689544332030433507243548345068759034927934917704272699456264612267674073248259225999921192903932273402135187522912391951517120204480274194100006107916981072662210723028057403575824734319904098780106517220467658711265785334660264162703690152945186931071806696265844127301110950759886858255889308520476168283063569968482150613979922456949049301643055555172483549410546549022806337763558790410474766389246621243873772670421956933980195838157256423681179733366485654635713969979672719799345493298501957717102731830949100606186554328704700596512560413002685943287513465716234604434617995728994892778139748604755349400709602100562973058711492384237022193813341589791770340593347080879266920456354115729792764419258317235391213423991984492822944901221397444101203017560671160472085145721991954313342495456602064251150869637766768991813982524993146463036154385126906117424942036812082472912322715704871988126017564806907290586140527061125689382727287316987538050259845181991786507818566727019743185360127687773245734872051990306000786547201767905912682843526946632721550092849727563055171009307532134102452113708060040847828705103471692089298211547883553232740955514980448674348158691749796840937860088850751692132939218885823042013351621923682760253426577604407512746872564175497439951901388402359996240021148849154741669174109561568848317244596209072883035171548425105262460559826461346931634681205112204437875470690016367759271270292979058291544727364376987169238357906119569750464566956311671728836274344213266929525819881401200831729914006975425281341647896794951296372502195439120034305926214148419393866630398621030764106886112158711679954954454104238571708129702060449643994040481253774608201842743716100501447306041794171280899104586703280557165874651088006072866253884020912292794787470803361503500388780124872845945092880723732082950546519381327158254421008746584063737673064387307882105776325031879166483708262588445270327708534415993345611013532699056891884610815793012962893644254432887144333169632378899304239783502224849824943849525942793628300609062559357648310612703171296339015689286756400553993938357334518163701331026977484443533621081820694373326287342605914551166366396466315742023421977264194599551769376615668319205400517652185854070278332296482101190847286941002486756728515752075889474038317096623074888439169030728276604402883021090032295503137937911893037228331058820154570632059893497757353445140262312818348124450161136265998072070999663681868549064447392661741975511307825159412952401817929532942447671542360787922902945544968277990123230583076090752012157458291176205214321168631628584331158933620412786978529914997295913660965027937863945850552394485873699230459136128425384877186828207425178516714814891604170068670364896199602668225676469800187976179300052145218430362346274096341135691168249161166356492978620235053866047343550808297979343239869041934115078054604303676889968095700278783293561107307494532355078061704093821760696376644103939326801083677174247544157858196421366227040869774481170727979230294188899873976349857891705340190958524769837415662467339634657035143800249306000630877575821402595683180957897599000597923869912660454421877678456356566293706028165274285394032658018457085744226051619665264291218772049915312056473147904381628307984009229901651310477832777533493359054888520289346792539216014280528473018214532260098394146215573527046529428358614289254896165106859816265837274075510249704436308718448601260507350029584088868789413995366915733517803783880363661976446797685407083610426462584627619159190732622540644049217080471060632698377560802405552563358226175836129682358555795389679932464674271840512609707696196489462910386284715549331028970495647849270765033759041902223055857456766225311239912027484164153825659760093726342281915316450953660429094450684118809044698077299943484345245755223772101275441876741768374696357810892536106999979014732631437263573267248387552884464890882189215862831331471100398634773694463250502740713045211823720395748322764775934544859436351281807815561612333975689567889036029305821717860336639358840470617882839386276437487063836901233045839318413881583624699116220811708975873658017385173997496577967667707240932574096922138143777170585228610292939930801242707085176673252433906390654938604647517119720037985200465911975161450765693673329218851961356611418828663932946487104033372922035611471102551346949924909440327388328473182581562897513898365254689704323543066658984872957034822347153928540098942705735622306437847323525701534921754446249494773046407905643578745816030570866515226108278115616152522033248452381314335742763894330158378502514123635651355941201984448073645315879443034895904602476255062781064973470676461898227754776168153582375371978653478890507205092486661990336422490036868376839583111947475493523656040869434747149071483967997939662488104640179409228862426305107499350478627733308791012570176238245223810209306466498566883492476071283789009568289631249943270372272691791137182669427163119223052564825749921734444644204732907532125403192436510187436905330509740366411070421008793758801949254479328473838197067948973360795709838619765742744623997280562558014403174138353873936243711324089160486261203231474052633533604508293208945973967022836209787511037874108180115920568375145038881620853066633956224386616350294088383299975571439127417109929591832103305454873804994969284606381433550998214970798757542889432498295091749636114577360357812525185575284201873231966533326254494715935569528738894064431908775008865839011495523050736186710678235577044102948764032282381460780347773436706454324927950869455267418410402460310783068198924441831903911698950032367092160806240624989850600119654126446513516146069857601069228185583829817972664123008181504377704561842964441229592943334970474434699456654145797291408567682701544655634114596216606555229807613714445510743418765257420445225119231601951530602707844198090233152659426609871095820402176387247529104892138967121433097555509987413309433560304227041784404935727755724204273601643461095371267169391818752939318455153412832092537841002359946582342920955667573744075950922387698904714098095431183303127112560213086984841893528672289337804663166419709975714940728165408840551287102316824855369961476792821313625827370462922227186933359802313503745337407969474310893117199513702067752663979636283717062453092674599037368155616492925765978379784489455360508300239807667130035429560581095512591939782818563799869622033368626319151998852430561656043133642887316678512787692484834410789322888421899423835548587122132145025433996371146884385551952162391544363278162816564479282924110276476203014989091781027417954041196865565801256808505538892957824658966209638605307285384939130292349143140464547531470673938026963718932864243333029855232024303411346384653041510537177923434208314368030546517867172627120831590952484154215697174670613111674763197144794335232660162586576006829375789355372956173081208496146865007614647410187838094505765744008260388071334602706954616482218604170904575389359397026061104159183281441148007610701082742018434608751978267550283498606172594120500236618451870906671946578481134600674759017584023406110876391447548645675314635667001492223615942844340074600508036038362112582665958105538599430167084121922287980071056174828070390069286937853986422042494626783553491866358105713245932119209345758010877635731598061885071139448973026422641099380158771787764032789306209137968944842529597281500277659342182068798883731137639430336969731008039499915106519546125758919456584789286861611226592757279465915281323978662049916167568237355065644553217133628840547500927649485176800714908720505892619076784090191869914588978947227152184384002859095205318008590960862542431984444646552683410896357433324498724519015993867569269862464916046107060077793338447701689751598894159630558286824670294857277506525288987097781858310926201315566722302773317593830040530906551050332755218325610547031078010696113832361898035718376318968312919345811012621685940449177292461170419667333603149804708933564712146982883782627032499421887297551760406641479572073515734399700204527043568764661838318345879588219465726102570225379317229210687196300593808872777937649156349476721365742827042988737589454413609009738334152258732249017136005126280716829122473511004141698508615231030939962300351561698074696195776202284815435910026207737057788899733592893044939491932363688332338938492061916470230295014258385566476049311834316799323232327299807453990070221926864972831145340555450545486980411979165787712039176166188876348004011445633892160353170878541578786038536855144642365298455172066639719158813282861233836792210035471345907161970030581309694312203196524866277539129837618310328838127689065137596490565781267765423811416006909424940246341612909254357861304804855787927815768012907032368127240596553629971789792755678746229994585706561238160903278432613162270158693791204443313850094890782333281196207366349339894191823974541178595349840906555801006944477611961282215372793971119580285832046541694274445613966982994802963229699173162289994550139671226594252924450523373496490727376975800728308201393445546031093952492047413745035895106458511729577518568240203979754273259760537843842121454730687923841292711830473045529726287146804404937443584322004750107373662297724862721410990739365881130254362706128785623044746531159893098591328474413636539770509347061276665610263546740308179169184330205924951860313817421950936221906265088499717284817832529054717396523534963184181932405529846373905132695358753442486520646215251768089321758573934263638799416124492248349366121123829401678640158209958552221704266029878548179737949310664342651598523802803347372838055360299181428798526272651275787481026114580140780234658132819408508688574453843906189363673548119565242553817704091772129063907696682305634442804758167393861312156745374806986582751488693789374072581203111035307487740540791140408941238477598552441433845853757813578815384904925568899251110933699295063524160852156060511590472612104523004381018427109483744165539945244207350646544874003433040133093957989730234445421209055243671695220861260214505861462333350778970299836993803435538669309371712300224518736964076264530294019738387907769316708719368271471840633840667973565586971607732542775503884613286979827534255745791077853146420610615318518500535168368289580828443657855380596891660369337504208538070998834145448704011803746348174634230743308805443779295037748843500850602206052710206845731761233805416233732574364799656627932505297412076406574428740998173256806085803095476308445878182118668469122064672556619840847368907738199698275516569054141396458099372401601881106595464939528548838854379087976847293080826439103713026320923398157718163357984433715048261868118685228706875302700780413320684324108431692961274893519305531743055134490880491958827659448886883515001854763113971621835524606666069261217162215510762380739962598486793393982678534037724666758068277574862158280438623057565787605736418156083948526960234726768172167645603053463007546662897042321864221416511763472046346373680359877764340441697705035374105745328162082628704653823718413006811635369451091650117135606519869967002892304239960074921486946809813615926002784241085158798659709925536460452612679510586518156098977788683900438136329419352712703206041787278181973540433239775308506418812988917185868848788423338786654049633829549714427060708606670927317886582832013480718939809426776439686641612865965447817718425001399222370139620153877910520516976779651340071743489854146001508927916688437912971045336570754277743412201754558085328943304247176912491335852791218100080253728737679031252816773444287893749534063387580425664017615971995766585565019835199061935590838878015640063492265464844539527235087437660780140960478265129894206127477480376597081887608331131814655518379373547678423859251253071956799708810463192848084366060054534154278972008502998456809135887937816160131906004836311802652079383157337216234196794224473753805737073332623915336804745652935709916601448934828183242889282287238815660218446704203825528099433246307158070221808530708498627502604584952013319186342146371846103329940105834293386759143595540321991261396075628004273041680718041101309686677234495036382622765204971570619749566439490623999226081703833307575961173852659676956068216622891262723990677966657451244688048252853337582973613892859027184697140677863511388519118982399193330319055216178761483894745241585535637129565049098172002341043349095513763834926104619365899557347980848904582484019497684134545693893159610466762277021005218770486451161417440938412820823673614834963396994329220633830486800732340534726756668297184138383937527401623021736470449275105939164535936568472937101948411239442512407972604005143323478787190078809537524857948930133586791573336986349764024035705641790465799379252416169725122299852359365823003530937219307555297325836368903611517398512459280689476365453656694284809075747544633660559147320850143594486580933089641019313884406466045949565135864021959520587537864649676593220656137077499365174618709249733528713214520680655274425474352982395533032984978942732283480209090279342827620149748425477315129542564203567234347804727833075593485125603270149937369670386846115823646329547828435381549245106929578310123561498660224638696050213758658921572192843702080692460582689074733071569130598818450641303867033256664031561103203824848304522561030377294882528446333793564210588713652026864245540214638321381070583621433866958491831950220648347302312134640130464918428697561745323177932909519159289053095959617369686077399675137409312553654769903122364942290279852255208885552508448571288952728447628699659236403516553702700711284321051220787376718235523340885801716844766318334916339402917123100753165654392121252879871081383072560900146459873421541678478068364840837466282082006372204910426719075307443653066992846659823309970872400484456219711698697983922978799867728301912649514988029412178877084198959072655529796699117872071745014048784038903976430909134657673035904862628655764345981198619809237871497784114827828434075342274206452857653918405183052513600732478145842934544313109789717699849367250014357777393158824213747791609625818290613134454352494004690411211773244544911230920622973093014085431677706555496869081540420069403988767344459785400176992098161122295269761113820792648999614177267735456977468118860434719507692084724444800149097981055593737876887400963973978448607966634797357175098297768328041457557102430453338296575343059699901451526049585956512394947449747272575917726763468887997034770829182404719348078254321901555423960698537059088651579648898610714386020755169063812810523959738073609805770105965139586630271012931185983531004902584494808204429550917744379908661043037713216596112628932955348373190045512786826072074243737178521554493708014495254042161495329583569993003034836707504343131343381490446028831399152786500094058990101230924817482636597602704167492675577635018498040694047009620465195931024685299814054716059343391936103937891908928112854292792923758508575325953824985487062780747864920317555109340137034085905554875382158955465364392019443801739960790897031109252688419947838537767473768674860953341677216949720065323346660524726285065057185235116145314797114783218691490205386175974664149488160179322350443948484495598740375540748080634760046116831428816515725649037982681768373455656860852926859479410556976229952235924491746844669264465283803535709339933046966368235209825572318954078909776342386631766134733390934116496300591689538004214631206901393150926132709108407125171450124704045831734203926311416882085277863634559651262783773544757107767772177272143133372510257689333526309176346540823123340149855125058660649397416339790646908073496503012213413788574681967105426729742034337467972109914054803754360644461116700335037391923931492110159094064828739189891679247359598370275414173647676545848624574354256925833584381513015737127159872067860457734769217411670086589366606638995393652365124283009523510921245927593730542582483253375587560441104365010787064504133600077881090174992897480389394580713291971155385120994708968998489432011065229449853135147002391869756778830191199358866812011027308724887210698149364547049348343723439640817343733025934656908099644023983553780927085362811012784549699655079291597472243311670300960324270765152852522428409882448869067140077700118134430642500628460929318830082726360297040706607797329878101847012159249404572854971191123516699506329692079527361295257027940806754412280694009389192353706232980900848183096215927861839798137542911981372122990787168957673529285326531044934260315968844086607021608418837069142781834936008688813442434559789702117402089868736131153921339592862576362866557994688515201186300873812789141779136762542740627654313518814839849946711963790784399410278025600365617813802003411962211294391848532300675323776306916667126088120311695475456476497123196356785490877447462961560384728487566791764885069304014442035523937637790386321596682386069555947253840191295648195550144917466493678334091326951588559000908871784053804366887779393320264079099631231909074449700013373341001462063257873040714174206065546925721773356957228603799919205491138576408323207568461600668748467784460517075781521156571504879536981991364799794156918597810980866402383703179574040026603096823247391954794795553510943083161499642316097316922087126887471984776730679830050216403686460684948756741745339613760520858379321935512518789463500884513218324033235504045687665749175164984051021322541616737545224954825603608934129678645532996766283430806289299706454487423020343993049431560162238449008849826903682165783315971906564278425321518556209642721038801825374955614023239497500069492870295044594287927137982740910232916613916716686402043624293472359060268683137929163270447328326597675042598292244696257728731134387093734915893724288553639214371522842981123186167988013185576226534811565091298849624341662284368994796126721792548831277102913578976744962482237127490299066820105870083521152313284896322081954777182454271672744814872469654990478363521056213311172065898756313192558913652037403230970969263108467855322184063116124263197625822080135099507924488343758964038620208338641857356266892370409005450315337479295352449746608686287843758974816527427499377748108084208771168446508558167240193115691520413656860489833560104837744813304283729279710735305765084952162111806233172286763255698172188331687885348834186160908004717118893476842363757997823447944921268580090129223601918639653920045683093841348901940922490353777404767475033577164279322005557182249132024364434926238999377312080345929837200421416033843080221785753901983578873278236085684691185124829580468725765880871310444489468980474175198051562744149592653419945846719683081032790731749488221151244196229472178798393702913519566798247267380957550724007323368104866702012239416322715019821602364502866377838727672659269079945122230258946101360690031422243110607947699321052534870264160736075001401256427693358025370512464026195949422119339158220462060210142645050413751511360032124242672429831154386868482187417619376558763144954398388808134952656495625475689058285218067998482249497833637432453172821780082145106154016704257667006130439059522993413714905947798161338444719884223846694954054581739038057962012471778915237241022847763569453085252585968687727137059028123886225585141006187408482274330255188115611910390029334748362013443302441405495674409726055934226606698331291727489254162710312747282871060610822438184692710857064162521051705336297587520746594275277946230610881026585364186788308422787047249130697459196204218234319899943669389027271056164901550527732448156404837876691481998445614015356586304723240524174534279358308880399815256662935712089464119102978108603931648019230906930513118063087023262041736417354148276856009800536754953459703947201406825407741309239802205194649024000465490263626779431615867992281710602002478094184281546704616979118414636884636333847881019826411780793682029364864561603809130718170951241711195291633248297984278907769323569527571331711235029164123238609276298712513901882612339163791927668876960725874318304003861936332209801614075781181820983022859086067312003316667030737520428529537551219448167722184813851049595352907532740755092829994480305623630951306359265760983293297372482893183727624907942078039739159323606868476408977056069576784143729032483668147384657292122335669824797198095666509734035427331559780133631910133407097994648841917271398783504296474887523125215358154714117642300620191800503468581031781249581659003088844947644295293459374712051526529516235458513317883040701452417221246972264070343385562273281890336844518438618171938217489545616886186784268764569877777624195788123726339973649084546371461431459549827142411725203388812597691623910855724947106649312082595829111442509982894650674606163194807450336684823250921126730279926102531231930978288440142443471378626829820754003893425365869432116608451900786627371510281823808108917077907911482841832704656135902868821446601381521152939175832298135992362819788357299211487819352212849552168009311977355610201556361777892297005874585164780812680227324220696679135921770823440304688765818591737524370773404006094566265623810046960676219136139562148521532080846951571763271241222194863116318564185436185550392671086738071284956935415471579830319824078658642236886554192517941779052485944517892687294049132835755726303771229374371543841475148780832153090505488279679583392798330087454439897728986288000549912451292443093625283791624390114831914542907373172851382538007790523492213805745492399017336160308417877956603284527871443079968484935790812500203092939328738117378877557174094707006234551895339948900897566472790445921332196787264064097357132628797146191002351497682536608570575068661818046951990025652446974000042858869989451445032106947903464550887485411275539155471860492002279908866153150996615811138308637139711816778506949349781235742374415726586249951464240235687852977435080759286748994592000092388143365069759451069175918044191069399576771036954488170883171417586123416907880638959762611730676865373460585401971163094349355241391155543076950504544229328112064319689072557749695107124418937839155075081521028796650863256357546927250425423374535153813175040260232212735298347987285981642414975618756359937244570100671025161796845331032427380835170345420471447715177343285796749794649197827114177368700150968067018931146655306155026974731127992981835583419823731654395370769777122885108887849599204416833085531828054098765280492342876763908676403174126882482335911373113572220636732536004926000082686605367488915138449430268870377565629473551540913278302448198499293661454574316327197648947191356946304449703994343271862545775592389784206111039146405649274688703103697856105639288839991824287949022976266784651113077865349705314520823556761786795497835382080973675267715098230384064286187751565619901663132916751522191264191190813495147242910713061956770424092106132972332406038806763406914755521064340924442959576450925321989718289717769851445086810828894589919176222640780445785754279047475225476602474695092567634366208870244301408461826577057689135645301835009690982700607378041832852558376914799474627831186882410320419994266543957146458323702528742202435360492391286616067064925380503759290051073923711321057265108547100199189555221620345273078151704654949587042026237535028275562379948163756559827657485843281839510388764766175496852935848313772213762300374226534688193068278805363823956523989485294845156082182883059993850532055514018459056413773607129966386515081198740139007578054823969096674588303083194335144084768629799310099130445343557592051639796439471124132161951574912567931074401562665625140781030081031366516177108005353523025295368564439661093863255156959018445644207954848592880094905578756299449152571945922977858020267188741572287548780606887021522591730538267210099789121588019333074575933100002966218029390577595196343633247757835666358046086369545465884023596520834146986418864610068212845450965645783414864375569301315777493796388752883970786930493544228369786002202507918821064336738238919847171791180946643467639230307531973108245433023598027668866058887995886611090707040476679559672430665808222623163835624652224969715483168212245140145389871600157410937309005175610783167526035357359997024851092883923979065959958318543693954026882484404265165708649839969601627537199849149164539425916234570700056806234179562518541531539362300481586771617820955785670328745655794972597809296247769218384836136503595827339356362139137387001154069966416514653394432234927056573375380541783074984733971921176535323849140722419892083663655955572895061393651321449595241521566719571355825583445523458985162056951137732240768619856055790451152024653569080094577802853946435620357155274797546546452056630789171237565228416151680145762061661225240706514409987937192450435200655958514433398094672107058749788160938543542885096842719059221512608560753526148445708865650995387305041224588153538436206898752246253314786938681341774075600462209396026887089899348983028958595229974220450703528751873448945285186421281606336985189678250361658524583157667502645866284368668160196335498616524829184286454711894665291294666623901158612464325553496072472080567994135367212565278045442906882120222395593116247233777930241851844235608541021262940537844638440175846229570708979441527325145655543105575978094390187304100127328040943096695505482831122109604117253385707690054851376525992884579860791780562746801041371967604676500841814489988166937104715194004603197267683684725048512814349843986309063296949842208365641517653988951765691549926504556564208418937165524228163240176783271896069616249242293339601166443635552234376560497291158055876364594849519816787329083145639858309176840880041241714212749884094461948826029281587243532950497430476366099523128179336772688251021488111004500152773172336416118683524292791354888236917731348283238990090910179395699987319360597257857321120146944250662878428708800052566959573886520772416662085297274878705310781701824690670002788143955394962996334172270939895037699114869420065659919146280549805387471419024393193004504397682716834316634553195885539105897185810953166456549970420519260769645229422865546247430441309600864436337014730537111820341530736433710155046231187390865573475550040615000928440789459177644450844404042187387999998195290519133051629074147495211848341070487594652343023202480210876982241906472531925502220855671809603470196711385562203979672730742390148516552303107144247960798116991234635352839772834157254472371872319757830012093357651866015509412989735843536957378995803048389465980974037608339863483242211164945604555920932599422984135212677666338513768939930883137702317175281944339962257107394477119733448402612963807740255424575311350224391038463613906482894764836426429126564841373964590852686243644153454402883054566688289787830381966183026131461952870492996901072634575970159899851823288468899026783284268812330484616846534193043561322944743141437035822990266642212089669156121129619204066533880112996570542075862989637762072546018547375617359259718929048817368964505944358167759359555386835342950638809827915398076525259677469535316758139681283712948065150370052344432487955995206200261997414090204869931100132035583772764478367318681269949148816398030603859152523269572311733763874245164815769369305559837953671838112415714340046372713050403785342952287458362355130412037582462478358036552716987165371751370583604666198458583157261825144615227719976459936668076317490881742794593051735480254162704471722418012851445321473970219667478048817516412182197102537593113272128356962314786325457135253854101932868539372681351123949764210952473799484750912918783892105046845905137145169349728206619175931568325100827052991294395354710344215302557285960668657228743056171994074684706127274284544834928896188793992469870234246178979242929803797775683199257552433230868239304255746328755466114620640343185876826886689222097756469567089721438033150682326455174435017708249021072133577744874431364758210192360119477678812870065930666108984553437793928214276769436874199755894665164795600836389275095721966995730027243799378681484733082279827249211310885803936015124679770693977276835454868192153989514625117481308518831451260046908750044910568051758736685995423762276876068971784623334099937091477446625035187946504071832184941156309525244568217505874496695494217369337344488701180126838499873504008978581673522039748690130649489425618361442601946240405077036320546479312919295843863375547800293648577901935425512308694800833383032136431162169801775039842560688787873004751940195328288864011705539509997697088275172416110542762599030456008858134512588251484741115091279582358715478938200603289476089524126007455803033656317608195153898839349649387136285144657331324679619571445713306542048345730955022057933412838700141272339072510951713658358351836797281663585107331007923349093533434482977238031503359915243332741045574795331064912311856925188243648974418476517220019283425793863194105217917307345453402761726393315526749315318788510023316807689576220582065639927229622777170008113617091703321117521028880478924744197049689056555768139902573080758091411081474436513601085440805852416694184270256762871193555840759722204892536988668119789602670139134410736343107396909302122413433199698277925344623102331232242886505051203623840177211971248494906137325148243615334250162143943595671260104404389523961788083070511208241404378531114238112463621011899863661494697155679277859488967545910707551316147326641448747908076198033942814836015443935685597844032335508539894404963469122020734478114673132801322024830441114061932552338080838433721346488243452784812982286988428857683090075182977383487461223038040308328352392645892356102906669467984173215584535956025942122911961196213302074031280808173946873258162990186636430577242381788279748857462850639913335928395113774683893272478034794685281638766423328413008663179685627650645006617545110832453085353764580692079821697258384503266583747675001162859060792063502967449503935965396266541634420754787136893476937486511510747226997047089448421354839904449364122053744346294145570404188242756795826436918659594877768068985111178978823028143372002108665799733470483201746246325989631380904025637555100356078095922778129183957311507153368562906225244348602749155616140747358523335882868550990256989496901232667040679822312980829940678731880668121316693737770194471389082172793078909579936563684425613967870976846162237394567165196076868124074479031791865612443532672368541697954682538385907694008976102220447924822924330133512839737493576442069964794519998912414243339584389225774725857166969543923864560113572600709067648394918918236570433454808571761565185629512363019960760912728070366685375850379754488197244067338069456990427708660825693822142134866715294642835563316746114551582933423864393011835669340520527509793034370275513529270611806996993942713747283105927254609259981872356532128281026721687009127396823650377134445226695974827862205556905298106446806690661583859775759084665139268618871002610759774706643767053889653903600426382767759042493964161961862764571075689159383680916523935902160856523299283232753032736281516620100562532149417865249582555519140160000176555639989595920112838226105767532356673960120714924247069194062455957512260889028081548562269001567292530408672716772369502781269101140161449056322006082743255314192538771495911818213056401224204356618083962965420710685073650429333025768781822880205998014985040516789244552464820864699322378812879566267649547235707259857224158802348195316916649322597889952264817317479819801693660492973307235897289554493284921990688663420557793126624417937320371976538094019485004882420430842032343805505529843809633679490312468847407125572340917717286475161528166244325607252428046689319458440069954356238544215926635157696771212439193819837230864105418233079694226670947658448130227846012791973052317951636837288281134620770362399481197731462298559650925224018932973291871855507452895813123996218498772032731142255804009626327061436236072829846912792810380198466845897301152786470767622765328325234941242734532918959879723533534026777620718208768020101042095634196659146497135938483713576883255578601831008681018037526827701946856928925522272267455786000446556375044535360579586167353828625711776072735619966045110385979608355590534169068904994153611344516580509554493959747666111866093793986917999022745981428379846748818745664351081546289769070607946188094260554836716283433430225341399973950948496256205226113896413343621990285602514015112293581230383001540153495271763133435369569483603700476047471437217424840543261416965817791205791835575628702011827283199121316352212435084202769095044901848509325842676335420953707299826924657859215837625674516874753941037413497683280973468546130920033241643920776951475476167566722126839994670928704068569664004104714226160140869142074090524033587316524661930699789995011598484655281116039161019917184290687790257869643193856246365622257288077433908575037879394378427577733019434849574360642648965018348481866468142717711888398213116962415912831545219309246325883206047334491830710038502495014230323286237480939976846991351204708422308443031357262496866796618993794537377645402821177496539496333449903863098599595249541789868022023563997973920700299824953998418333809783085791600564561072233590237157116760493111169591622727991461887917424002659835382932275776118859566834391993063175465630271697895194430294549295153876153533008633332645873907606109662425137436449557395899048357516673523389621435427956604408270246671784374183753850699406165594760746992053457548036419764767170347415873664500492082472810662070928655720287230983990309328507701741956621745910414484401736531493686321708261679267985464450988081115735341586989486424344979693000120788414401015820835695931540203124876339822985126474141787752417106967048488264582549143379190576983648236803890648149922442063912366634634844646470216815675773382210660595210003375669129769434429087095942709485864016552916144493842527028355238164076314514435397550605791175334170872918431532005844428232479551145985217511085989454914767015703454202783946483304472538399148244948385237291114394369251172177815748120199883867077706920891722465754892488618796339718321499198727238316571844583935975708012648296082075828834460254829028630400919458949342327842743458766185018732619385710818615387286441136586798450292454165572621807285726277551538631557826301026666020790792052693752064175054683964693461956738509036301340836052477774006100121854438353871547515203549711363094060470351166120171422979132968319627205561859601032562365816859808749189255287718872732525268252671691200632379391419979507816462430732324018062045489668844547177393253561793190423227273213577377234462367684633236225785030221632004122090261887498298757456057754872558258764358338716771356988511923344548099513461567201780774187148065687334258058966202108784940322858954157812571954687513171394611788633073398022820494586676734079877095963930376135715312352821823519909739597262476564371546085482233523500287110807008258375741053390135178020656754735815132195897678003161130332418171236848324346057377874170823041561282438340606042630521701051757699344791154343935093533986355154197220042425274913986929620023641281173543447205524715660474613015650758627662268582831876969556737172734163527704434169632420390958537612601412668354650027541731659781236772629513593620305374632247199056632498569191810177933342892650666104120260706883671189092787715390212836450035376377599303200401417496121387347283056131221739567670129000728662675805770152867465959216230756845543723022614744225828813158305079549453138882198843191307833544789456726276464814856356445594261390675916109638959852315594637170014842627744946767029632669245822135281728264096136012359556100498781991464160737468673651495368539267627258295995713104060046901984051256033246715542663904056156509211690554446528751203178207895981714192191909248894269701237139289976448918069713023168830631217995377022856972526084940035402159249728955548594366795984480597966085131437042079682008268691609744689918272996349184377025680915712480608359255876262530258481997160497283117162983406006633073593831886773566446815883176133393568740171934916477063792155620991804041184993121835758700869768490925708168750451332972674297840028416731202643065024768782222547725413492170999708738401223536989378987165331159582412210940241233807601260056942010573561363103645692381584895638287787947810567144036128278471627879598062205341207577225222259550500087791164775907814377758724185415197741904516547215046090444196776622457675561524565940991684837754459359491752881097076563764585009935716015972892420332320680824642717006425916734232178221425003259959354269233564403107139064258037942202746223376947094175168400344075380252528639580987026875540064920915311495018649185384890937324648013260148940253994954168564047841080028114016018048813543659358443645519024477346737898254283789162335340068796617263766239234052788921479920767172575652317131439450214419449785605485378157315040898594800569948976212768619074921576781768549583969283007761107929777195324771649297829827354222937486089624363910263913445499025275805774842710421068711344164142019743468990247444168991831227702737414873458170439113748121653515511949288264468229128832530718812185182672084946125354999133439693521885709555973732212451304992120126698266612725044135722296244282043951549729390695811215136847242316130751413218370566898524834411528852111618587727071575797506196229955286106871241502821288719759921708003604992170072185225691039239942852580000417798000374305050438312380185777258218093340354129620418066938211779381425879142730783959569116885004320808476829629476779971460969013466315353411639990841754897802996048599406452539368680220551443434447988348058816700826177776903217751513697502440014310973250330217365936777455133386790833387372124577461545459559863555468857097288168884808977654982209872298105863119470257471086910177587245734349157898132347130200414131920925464722011620135570349201028386915714469032256604194208397268303949890498032450392555433502670598956653542216267995987721999461512285182518203602072627044610555772659156127944177445724435728115541559000894361790205708330164077847771493986872259275728383707691242420183372221597439712858592183179296794389570657131035243362256434552691879143390633290963882870490975757979924037355908354592609139845325460436270859259467669250624694689602483625975192547762872778384334293660990529436718731842486165976871321241489600025081798435020404910434387373308083832442051850034801491858421778577094014838532362638712388020872861846071179163309745289451979350020793920015391556245498845343725619332907186245486002097040723389235707416963635135176061000889428655563119952360205113683112424163748415892092460924266210439630719402317204206012687632908789459920998312424192634894402790627493536420708889499736872653117686255864408358197715813821646555699734134353708998988084188372638922950196948027036267747768312874450788308067019870290223378234950526116501768681725237677317567440008600099891143260043805694261634719828416694473992162995680017170828530011062349161294291136446776590530497922674565228599768329081602207701346210537460243779040737214635297270552805090039262033939820867378528171700821528511713694909448723214741454698208131195006955532009119719413172048156470569459698356856467735888094493877144081005767710823813780113545929931952185652389486795030205741753194538797540046064810110922177982098599036717913120044340019146554868224134399087025344296715153848512794067238262099051237734754799162427596159740280633837550972809653945447768033486558180812745418073042170451347858536035624123350753750850113980187975563978187347889212393134427559671888355224400307571131734042810655849599555659703370459121486804672014431949340766365808670511939126181594868357061297503513326222781336261298955560761176460422035064559552260804649219866536251831482225560121331078365439203360586012881701618047233758676648516410114786484926481448278696983798744650459281766569711798215128356233786760977118014799335930999831647217014291531198258817888367086102557063959022395358241540089209969263394882223312843809656863278835841908226595552715919505737877322769389868668777978279847339863620464637748139583853560835921312355371331041299220385822108200315881960283245401177245218610016094130700134163211138690742122126907189123320779302467563300796345834763257537609322124347224241735492909611190509949270868037246063279007951861332245893630757394403873559873835645261959501961410767640385094600611106840645494297168916098985039336131067297724009046845209098552375419473672097192023793027815086557372644600375640267791648068528742736612002471298664786276592396735064767626337014935579979763375350196743563268785815657108482642180973365441651028857444182606459181385693440187838390019016295670124977559471505032322468190909725054076509719018996454791580425070657159932629968128592585141677541614519818938434405994599208955723070565051632806194481739670890539512980869433199453933323893521484426207684429643697618831111938525827907065597628356372035336299069870079503742820262784316344832240078890501130900955488714760194378921844932159176985149684806803397035271186999922257217010643043133328690640371437863554034515373966103199965246102287140853015915759652644373542312284746702906709445658007878295928645582809275385994529659040522001983063492085905546944906725137772866550647395920121854788666580387344346699549226107042874220349599825770181536198443031053993252517997034965070580126014285733166445953346229247470122534792751358336768132332902356954546291852343655111490586879224035338087683549363035819542764188643622086464538862229458213666263443539539695810277007548122184677413532451299494186672945489075050576843868523895772280372993614068065707987959597675619787839033035298240951819353344985399900844324602980869487763195474979949609330508390011560810394082846058039643453350671671963742949791238854855361033003615636894466275549548587729870540627319393030189945805001521918074985862046805121437266315135550760997715301372511928893039936645525760302047488477531991548710504360766953140632504044921966124222173235889764566655588246199973709516474318799112746242087751585417641578616002703779316942165197206210847133420270330187450804127832013212154587245694264729120661553244774563123384293561333374290504143328779417141432308456235804652531436039465551734109110730482626452699844068060826618148403782067594612650139980476851447909039720440727640504395786297259853968200291916152721833938120801522106982461886910152731329835916960987338570263137614184330425582716030792412849999604328585440556192858596279176700802250021458090309088897516387451461677983795013840415350224492873495691848253479490777833944825286712135030194557719242626485692262372229163024204161081905834016497603145237763215989351948783132383064273663230891334596178909134411296036828916556116677118828189242679108704119528358204260547924966656308574663593555532141445125112485552815820416110743150181641543309517256879736761136447287298209948537426579763009579767720327161942771110934782252779788338320225223083053054410473526485033643149088492172418204914422616964398641245058105021146702412663006466145074289454079216606468025742011047845010489607668454226561161101121839331429202017033178569985712946384981154142074911722104965015623525211889907859181841092977114627211061987238461944524100975807308601084979954469126670580776202440434885593976113459899879391649590574316312026553218820419070731560809773699795302363450493020303561396986516408941412517968198626996701877836738827027045280145680359882358636428562514383041396112803533491875727425077598526715046907591049900491288505563984347886561130960846366970474541097851843321727980739774084548810499031769519965521187378008449962241028260980009567242399219808605798867817271352267591558784858619845559484399058226590895799523381636997294929361572055700964433251423328884404579675025011599161331357961462360449029519188938119891520939774319111001993938371632284548106036716642064794951265106184156100055071364001605391589091349024041940479577534499262247279283294726610737805475036344102311399476177905084234931793629910238855949593578947413746165701720641948383603365848832710458283035203340558522297868625896108237807333603125440685745880177604315273324858347141378884356757744344459211247780465207813462368219704694376137244034480575348781067843600884584137971508277266468512581989016695183459962749716161005349396650300236127139731218633181162432425791751619516014901868337380286230950893749920346350808270848294536050790304370449473361933759895436461291278371564482965521584329296361098996703601818545387471451078364316694640654695107601102257402830480822655846826318852993150648546858021960417638406272934152449290726001283440275356268457564725655724737943526284609677405598665333604560672375412664715314845862193950426051842007161461027221719007345826522149987190311138793088732668914758501926462664781489012536557060790063175681398574280256836300712359283862804759220607377186813003271301553473230499580178781368773275235888903372611590428248525522605316807582917181727117121633409586203795969255142038888768204102928810616140342979802833716662038705645473563388777752386603228280487875730950691256079261177251045428314455484965167184832806013379104251247150158209845560452267089767297002975615881765653696033259595988878969870423218244921207094283874992997902231543226233702501849628141889986470498787736319586562114878239673717244048625374612371064592632921535430829846649160716398091223549954074570884756148990784277685746134153804414908147831999510897943927052354963700139228010818077328120883175329035240512254793355834420168384214043520488830258435191238069141692177879929543885706106952522019928755005947671025946452333395127134407238649415225044610569685478278275411325559068589141487671581154936046006083772022528851623909650330400241983922070291471759208557568160414118269496194209503116196741495196142930188069279396674318246686325555611593580230360229733281767777739727736187416785246957148507593971489021677699467753357893045158803488391024919829272130210262466350385830568446451253137273171777587704640368903652946679066741705120756279647806860678336472554649328423870240215932626184875260654489629723809350520333970859571201407823785208132114892096942223102231786014690838566920215988822596940243068083694878485605348459027820358518883490771435751165698766003334535086177846900300879414768187206736670684904941217297262882277111051661963899266562994529158230232714036610793200957205733097938951935611523534053726803207974147129610389178445207746913935808523897927204747944819539356690482907560566548712527869211989658763052839006917523263206118034202341621207690062785032465022864607337036684452156465726793765075103019400143881983960280218181011999668304168941480157796124801259262344693149112498307750264399858189840085129201059916427273289554788886198532946602664709684636624854403795326143590347062594014976525269537001815375207688756048013974104291924147699868465169201335150414340579318552995603706152674299463024248403184325899410745561303084746148489773720172360099508576644382460640075026929786454493822624028527442943583682047847193636014398808115726853269828013479856776919843854365784877007597857267025997159665059835898819845199368341762917513960524940337301625128448385281127178715459892568362470427906080921515129067359653242243257092561402987584828704470589353368199148457621292742245787718022516236097806140215869734092583904759954818290131933846421521309909959664632707465209427663079642566631292190147596880067508824518546114428592206196550096157008397157158053435593698603007219481492096962366145831240193535951178830946093345162850101499438775829069581100386357354914236163317200269009817296493856418438471443959324374906873499642921348624923457884014873673395085838126193729382015584733346001483326797157226400643975308939845662019699485474341662461086428351195036613886167681523315175419128827632063068178526167962540309818853649086447290780972504316453555641758507137696930681454779785496903570642742289261656686463139041569427891519307531985064778935255021297865074556665517439732199726175551850227070498403224018495496432655830170929100966220076083367487844927372948864249897080558063917688757367537743098221132847369792790662354370527858885673704838748780624610187333032934637545727118005734568585685723783401721262621596868221214389193092864572287034331753885315866800630689179189036912795817140691002576397693407278492222081184955847790381376203110361623299779011290001867963023541568661093368266957684225678980041137623885302869274250984038228615411217705295688323223226243128993108179696367990280734174995624397420552979570942989564173962124023820693017568971357446786995989611640688282506722307518854371970806783593860135328070766114010981303845385819722734953543715958649966748576735229719001888020999448999116881976555002315273097805126353065647848060179513015137291371387493593329280344490449547090040761709383623459925585211536688552335691951055068884235259958593279412539107996608977140579721003660978899011309965904817414812387178473807814027278463628112646286991938454623543918789468972943053398715246078804797813473340716388876599548427688879647610598599720272473027604059088412692223088234543469265788404497926158697890149701627353036115350415972490083921895479917359848888185567813705709397678349735901323622345221576478796137148278857325624590606286677619261479227946398425957794230302133277975927654875563142465026121112914129003175072422010588796920130206673947406456289569174333595117925721672487269587224178183176538089673364043229024881860586900296951299924087218641185613771847779524309421254822673559320699078665014976673827105453490812859687396664673511215992636944118371725743791153356586439625202180796246776518432448432720554942857220908509676634938047385900251666877902391046241477753905629230208076581786417871066241434901396304083937849887560718459779914219587153038995600284320063027962133088073386965879148735559995077868233248546994466791860381449565206192060404923615991520057944281437360935910806613104004415162954795656673396169580188186201350485985677518892286098777779167171084184859580353911420807399623653566494796028601574530002383495110182591012728224350969597155099007838462626187572996630604618838387292073630465675489348148143192161932282853283056402214892572428830679029229556599343077068145380264868025247613860819146777074594238376399341521622938223729285465897374553332953431164808880598042467189210196782692640419235322836128823838987749001277546683156350575445556708112474433149257327552640553677775015430854869508832524794572317510735136233186580598818053421604195576407371094102320406885286106709260951228846432398255693390728871160720681574212889077351334487011685188086405844756048762353460159811372044802919640108179935019660556395609456922453336218462451005309298420098997583885302080663890859151015694432852694697265950373206300528125311525773229039710596344457674964229123406807193712298316101385520295407764834897093666120349190949320321690739568683468073798773400101653557100152725059717502242731138216956385902578498067673218954972040154587228322171142568730940750811048140197093328479160075416319514323611458650136715789311722157369521621810937606442553716996633892231342407725773205396142362128994108610602727709967843480650760948671560975221075420463971115976206497923122511068048723390269160739820073939925648032052190313174617205355393566290696866462720678126056735801953938578159256287118646015199444036284967344109300703041511329114066224734877774225664005681299985242167495586504839622840391224960669177789486811940385259779464677216169432606444470517688449432905042159512059490851303875444401025177131427347643913788025040923432498913636593941018296843615217525102632323849471835312203884663183564672051791062223591231990930966837530336338520917194101239011692497745950996231459227943874676873628831912912201988285281387539883357571636578420939910545939541042056113458579153555825656757999618768646938942426009447673598330524592489350637822113646079779863692557881103462586222572545195555326943489393105712416969146569827404798168699697306952284644255209339934670096897418098530579559625736355947336458019681065345118339549005701484180844925088795071204544261058054998515060152551482860441496130671033808017875203360840929351253439475372856551122410886835385947843313132260187079638401145813970310965909884514439112165689219018557259083583952492814194570145938042203769421911816146249440265330045901805178857017451912136628064117938475552158631479869899168399420229628650233649253803052666969750047984972637793135989557014246282501703113251230944119377361089545785057812886142291695473044943123547114812533766698111642748341774574043121024293146455197690733401781023937992093269933368693981509816360344082170642863401120882945389546010293553227869929391557911530348549904775979987062721302580065923756954865075773745377195570492117306613893814459029486162227225202342617032142170210323636754905581594578206857309065709155225188976968863713042730282328635472255708872582925686390860385089172216153015647342180455961750554043499958270575528406921939445023105615759446981662591556198351469671162240393711675523888699251551514228270833336275229985146387603843953957457604270362432662195379904483637118439410812191895936288786668704506850185281566405917863722618529519181881369025074145657193955694800436311080648326946093327953686879751033664871703792796557959090567359805676555652714985889663041279039526278184215885677358491111268494131160370035050152072292212374710227364404829808481084195504412951318668984121178204413555218793798252084412840959259283796623485754081696631124085069812263261739965434690452022428820782672733304256384708804279770690276206530052471468792444024593454582929694870157147728133879077779616340353490219495258946752749018741995579115042064378536458464884170588416636817179663423972362436965941017166499347327062661971603475215660007395604178169218186720772877895943147893890900003459623842857699293735973498963855687044366796160362874830669847456886771320586389578706684253434316838579002934013200362878947461312444622775039916563084418013231094986746243389156915918070214003753920671055148673450877456462043318373211536868841906184661642466911596202087588471517304108576948683678414819145841250061436699342235642078892184094597980280101568617265352262700925819181398828307799884079934373559309204728703959206435790980566242752067613256389629217771550337535622066433165995386767489460345328271076232571561467966316930279740289513281413781269524460201884845616463428538147824700181367666240576220610928712426113508313568935018394121963685408685134456413484020719015942957890525514787969819676473484993050564985279452674252819513351507320715243049744841613634062682077544178447420806989793274410865666254980515053124567008882470690178822859973015543730007477484131257389825099329074576602511764049853262739307242529310480035496916454176966244750558702243082307918606044052602212351548580146128297319568739439305512575240597113403678771371417553306346243652029430646728143731982414407089760233839459010815799967121289462703262688048002148463298881148875400596272467722609738114977741525528115895293609721805395103628957833653196209981106948099087081993190105031853901475028583611130053436641110953211935999305954506205113290353489906385724822787202467201439434979380113165004994867191834992156886624875844171330153063728175894248859167210458006392004215980736964354481272958806519311718439592883839586352405837721193024582802649844313486703337358679587649479364534507118558141840624260594624079627904833737158852358113564172644675456399112293605352006927691208720377663076965824596690520317920171051999925942955837960822065193801047399842443803843334593686036929614573958711889820651495531776096454761977784760337524236001616515514081380435294781090161782803090416327689784968222212708800964840489818876854804443014578544892535149777948717749972577103350746139241748745127161005704198075440750964808114266342319133136951703050274993787978445329048865447678492329747395817070948992948398648125545889720847328488520809809889974320974747811653288459147219914844813059245370768536207678365016936862829329967130644179774043546123828508691639114887160050008125993923565959339937070644533563376346640484747735411942436546319296183374649209078241654065751038602615869124992607215701944084424693014895008715806930527778917850090194166958123975891409085285729847019856844080440554227764711920670701660945457979190090937294627843444320788931300310339144401409262850266643484562270050405968341478173096067758280305854185012704582014961065479744256698950141459383431690399926967857797884000559993575341726981733247289416550300857398931474695361808267499000537614132087570906114926919265788681240642180595897532129105796127143675284488266118754892635573662154277377539280435680252702337791955650947173618292911069658221551714340881633048716464381116480823267779208155301267021890937619384956358025716455225750870157975752938970497824551427648398260710206684339306620608565557437554426289639473994098504062226840637155727792944734058675996073605444370835513952416900153930594489250153739359720444866058405457524110971352473832584512464437440764962673309388539560202518008580964505746214603842562979984545351055730782502988661013278676561758048853337362574259758911306268117701588431796558776398087753211230120464670932650697620662388519977535908269133817162677474095105647105007753415747008291636314337275862791072731970327447658392120235357885498368053482171393682778427822024389624169881434766889831093370531708250629607855486722626936327561886972431312304130398677000047677786290640928382618617564787845876776261699568187350514842273714179696455280342233005123521928496675078718760782685478232876072422388979237623615563049551835732776435433358066037345146423258228098267578432289866462590765656023701984765185091177439679647791670941516866991238831094911291906739057104904923187697568550329401907311507835119721757100179523427477791566343842126729964804021392949992451678910073771534981367601333577480686833603059804839215004100011215053925815804535497834408608088757232678456244754926380696733407308902279142711615863063147693598476354632356326643001648950827268385059038685596856391512236224377701039735520460633648546035423877745010957165561437048289184013244372799488478429929682732564648535324808196610855456937621146707634865177809480522150395705518221490815768962994145061856811438331026941644352094764504041383245549731822263606260827662922022635371873644808547823920657443135085771794823758990978239358132123594546315696654073197602325245021995334099675493967950164197928347045402958351823362147758909925007989983543771038823513771874123999847966283937534496237877780792614010312603788550057274430833035506448926999988250885456120511797464053767147191507808328632763026260597668702024132877742411463305408192024264924680328803855277781572259483288104469645037305425763536569712313545548017906886037727351047845946976161219838690035732130671052305334844209174570810774432225276217324813093803535153082826286345290189370731124251971302619285580901054059112076683756515454551595001222131206348291081278186000395770926238289338094922157453044236393715035008641160624638213210075970319817983142140244570435841561741160529470626529754726936883031927286611829499187120040108414985692951024846819573187881852091464542847584986641517617072110084236931687107604634808899109846588836578279395101356734200666689811297095755572493060400090600377081724063370733366964214953360736071142590612360464825629944882884110253018273067386898676689342102724809806386750288144207091391041190251486195828244581228155540002970856810950729245768298443960700767547072515861348588262208325866793328016929422920541409858388160220608500386260513622914698011739058762352159861633696693739380739017527049486688131612307918516296582782649155175398846593168278956202932493334998978360481895846967236588639900436006255027935440072228217428513595719146471839525585123391909359587537689319788028780320348524727424885625763538356448403791650504809935288515817418332227876882710529310993292833775902050575445941562433823404710240000886328552042682153415693211446514998744350653074514079107162182630595680304378579651309591173838599155575572910860679926056460788608350102870796049102861550792228897039234331785788030815868784562992307302976181316471730313952346690761599326302139828624089132300994917765965108475673203024769822844092992726939544437894225894386433211154511687386969046903799246589585639986600231909243590994183868615371301930140529537041266514449220328555082457955600942400606564103779924176521055095294316356065936412389450773775462456376806771161113040180410107114767698380304042410899114758129374053587716544124442542181267663582774722102272487118878041726257628505998972896181093782233601954130056002609734009491021820574677171945107979342201135608269559213989171449586300665143055428945364305609715735347736615732708087586854558961182953857069022244229391114460971586966558477128201709349988658742611249411790778436950355124459881357355440959914548964355452884993516873590153456952090056424907901619084914363501803413849717772719396734484983006886635312220107075337555753488808179662320785130272186028490569469722382724511942871919261326946602609368190328233364733864376740945866314666193731638651839210952098898333713389115308512407637854717962680279684683214910487064330431764679123925872804964447786746307094087229310339645422877174622909825072402826300831064285934764082763014176435686723306815216058371734198496427699130784476753451166479533616521338192230646692806952116793253812587804688827383696359457228391052175923542248104935797206812597409581541694976880192134116331536897987301668954166891131880437676018688916681387143751507287576701892893931966667440319941634542994436825896683456619938613236384002951263076096282552159190565174747772928875428412670819641719172404028675517259773202488353357724099327746353839999438957852277604368669981816129901001717837883316227615686147518825990903149477811997667230477601715979452492777414254523872067644093827557690347004655845415466797198947208968062538098000771200687022838413300001873440911779967353324837050524666230951810057143394620258231371141775405345947329650511421800609671983768758045925150600100427906928786659574935813602453778909655579372539911545491703498879332173745718640693964092205012082406694280091917180481241244813124169280523158847025036514463118113546651734177845513242392909341595964365729082708182588848003716615800745941821594098269633740775520415062289529261388648969890534276792854093121510277316617155297755391087061390228205962884717969462373186219604426425327865991815338605862787824511238479521943275634154492172987548015993884572675604049434005762192773457666524441434901504678142467298037519205282672239629727387600149861728510544468003592624851735198696021562174553315215969123100739259813618858824241213663875258233084897071891658639077398106409493190539218039810024091406609355071979005191037895805191012258564550307526769276754962050517459737927491949343406418666503562531354247505628025838530635354729996743694646383767374612013841439639398082499937153234815254173794489377069845523048001340062119837666471806704987026206843572440612528979339885689984975062962285974423342101265824096748206628706536139975015850272768955169442008901146618943513355755940059208743249245388502752182440427054168627956614462941158684222552778253827174784035351236865648683199469530606130561636372398735120509502412160375150554903841092121224692402564352182878908058598276714301429068662732017644202927627287359317131389549536973608169829830537914178776321698630470088361680966249587273434173698615302383591783542232751609237405695326867658727058065549531775288730489555283632028674773222021623663983352579548137795670033526957725056572381582530404728240156625855299000865327530816033065457658153273302968621711473260420989064166872554622493238283675282393972328954365037642089904001190734416532074337355848428474834750823566982578414225316264658129245231100119345301785930879520998064439897368088963806902439858119580002890402281263965858979238133893535379756432495041187907362916058751419967205515680482217957691455471628947227995839628875116598468316934886596795004593115701304925719894273205516621358522396578843274836265995928837010795948388007368763721763658163240035126940515978045634936393228707069479541701092821851768859439006966374127859753247913081870073709739352301576345838880924366206019315152713634686996360970154890694043952887820062779629024744399303089867385624209315276033272832565115046931044998437504654333719831901852382929483705735921478407309393800546157936499266611369717451132447537884664734408977945986281946954354507870914923019905060274481148842252743759929382347271878400116827873737635942093276317310450610391863679449921818668718164816769632897112662145178486900495715252804410323848462507887944373203366465545487854813056897919031741447217040496805594080105577842342495590779732820226910013062404837197408489494150435573755559078002967468384524756614116938220226506593125028508665599065264842167777304767932330516640801760734599578079312272330147937247787227595475566377869644840893787554852197124980367220141543539965132472741084816600444215038116280983638896755425553322538420151313656292711904749618964422697743839482156647659077860008806436048332356185322774289342933116552796338776271271702407924264676555774158827299715207763049352520357482744517845335023127646435530343680608297579508754215209187951196286877984793622703167465511363482285291805377317313011918962278747482150629914819585922815706927016617190046347215694387974914477393908104918611078718383486855050803670036953095731693387704694752900092081917293492120586607165055923243977923695250079895483431945879560642743250544944796791301450819410849205077402888212793624336232728589057345979924739818285106787268074621346203633386325157812064248015564391169631294405296163804011823710952498830234934374799830802839570351760498129685673974174187708580966909196610517589498029655787937455932702534211385925207835540615041610867248870998552400987454798128343886415714343530135780316005594206026917082251530647778597968913965081722151658270192884381914456753098565886627286601187847485168362757571881455217280182262516733638047749907660510201303462718791079693139578078149880541966303740214776679586677257116643334759813916349496310892632288084182980353503644056246626953548361541535672785216240892206140265078575880074317726177888572581285252577324705053999689545058156520939257211802299343474875554901761413608647283490125193362213548856112774544213243622168210141959737091268361821768191161920138489269266959306852373500888640401856664416941617977578340389793395216347366175087456368088087530393304230450830510038023432806419530232927855278568519816939128907273042006232418386957610683608448996404393724575159881149109946944311319635827634852244456363742051364570139428811457200994902169151234212733411156503822297574670113970067490452151498931383562313166273349797495700568727728759388462835775384637979044093362603959140706260762026770938912852853787274305158915055296898006277738238182239613479017557187853444601211917756391200399136317408011515250817815681111480329130371375547179777934301331815013886608101191839026457422347623671402049256820968699676188996765343581738530348961635571555637833089093925180032989342105767359441595040884815670281123550242767727705367874298614036191424388593708086814209620950405529949497850904612703875932699913419624761255159314883360333671774459044875712765070520523543431265370816370089862235053868860512569424598037227403304234615374199959827508228456793056083270982213378597302208186064060680808213892645151795869041781987072556516723863370348710744412870716879619160068624040634206018856937778874347640712147332924049633041187670471124140438442715207236195958416999734757014333055447252241922904923670625590742802152039679118806971770171556626073505550857589917284496927808209092806093179518340940414984856052174451339746869704582004483956829888432175022398020617349513799419383913809465402970620412010907125145106623383726265812136302334969084589399777301495218057924998435243545465420749830761599863239509039678505779847499515661949481994746693449292236340203258040173273759714762816938058817912359004068865959386020806013749215026243154013861375320316949725282275165404221719593198062948230947342716054860920337197271049162902457152096538373672595336020953907909997424508608124889592790829932338962841398477215659731540301682509799744433133960482398065479337803991537956348874947214834647559103923449223688339849982412547894932361702312876471368079270223414050411641786588176111943121717883920576960310964875402122305011510531612487559616334399192221596391456429693389988060575930023481644570193166795957652328081621202281119983383772689476334138122003027377298304847806783388880319752231457387638343216198804744814687494495349690766154502559296805626898345388399024135237981276559676809023726711295315944640233609206208122038409332211983357781216980710538222691434004371864003369603535954016545933082240213772391279816189361097887852273504738420917314729712278138888236607688242003549172128640302735112049376273138719797889401580273882823112943508274156243829806306102032807880285260599841690776640156799641025254252138899317293344493057132438504869531816534362151441134980595710828465527522024471070732953080978094900673534725406343503948187937923381880234994743742756710841536731159871767884736804621076306580202451371775516320374039020861115663158190919976491379508577294938387547864294271073990859772217643751258822959967170167361660593781823590927807119401271866433394029037920686818805622101030356875909103209650107957234582224786299715548636762311011685672594264059608912229530116648564927591211562109301309977976349194268836022519978234073267139898306299823537415780640548265548620320696108079528542210282028312933147612593777971588204699352211719015356352312115978957595256621482396403092116416346749948781597433477368580634638617610902240936572451896111175984403220403694887750349563539664445077631001483777522993454672583127043930675287754883398980689418709345211560698668352311683221503055851216098288663547498508435807156677853034288318115092367826136477130254514254678551841483851558565878079404013432815982207978569258767552486030268389178289611238783491866062327734172049950758981954416763250532582363404051653640467245801275314883003363316432290247175458915648790790503657964861268857963679352163884685370242362976150728002686475636442436788545125410082169053772966399571473310504294014901850218649817838597230917939590456636244916971912413179051602630819004482268184702909740822285630327212690409096102709167648161090760771528636971258022070237893620955205835596533064868942408967127281462875321880531223727326318174536257900163720268260829212045071675906166131758965534227755593344442615766116578714648004010376403702746452727215427195916167709777085330921917044380967985881455138196024791626742205684062927947340733155099617306412099093452594936179863681559434061510697107246023015002297149846712451385116039294349768134940258463354002312315371959458192369222016314416406667445279080414180235525607342049528918808951531057675727184160542118593008370741442002175987253264221516731629693710716298646089673027273982264230538726086429460233517822486000200534154721257208301715886875847445430230515891878749754008183272625421324132330268789702715343573878091815143390162407130903104287341124144864785376181443733938387764442219052425435225069207179243394594208168671809049113287094963776562121626154813233036760467428726888632944786691021641044961474732736410428345447814542192575298488825730002527695103940333232966690134739139869560569240036548332198817206987570578418580482831360525277988272033421305550938311000182268887496469330016852381884510091332507507472982629362331709958562534007511707905190839085598731850338441778803447537052986248774953929469455055663386741891618257440324762832567426372437431926719865242451598536755167612502034295000706510252667078730747346551729965903261817150318240849047770581889308566210610908780086409469826176573152451622829844922429246973150092594394008452805344773418805506318284071586543631427677160294480220868705896055916531392045805077853653331938613991391863775336041496594228220081199087892729291857209487136660575181823683465159874435646832645515292217518117596462248518185547313914455786264612279793500217102646481521571712224136390004559294580936496686194167685889253466209897119291856000105751360300338540733694978229682222275701185349694621330341620639706343831832307994544915808066714822509350658783530983308567075422020314434424314370062766843396416539945205461883959532321748018112513998579248233167226814577191041599071008561604346945741027717730998443491145741215916638972422818389845463381780185955192759247574383098824155514002543997714610899604679291669778792285569174202774800951999796057614336600641692511757448432523457138679886039224065103094764281220752098465533805978459610836305427812295455643873332904766863497388090590560628804355276530379964913233873114048247218022299330976559170821290301757424160379570895303478556734181340500263087605510393305145974609269329349623319598280312084308277049574129459985005722034983685948107256743608485675436784037037383526495342995166768336471471144408246278901514911371024886483988749647709922329651962344445186976706242843183728999038255078240600363777715330070639997374931200698299024482957084247892880334934848150494598036280143104682438794711427721941645272996738196017477447284716203863142217853005701225479059553290804439237076066527189640971720476838365111813382109038819341581680984903296815261094349334508451911581242669891887240045483625992901980093605396042021097937308655749189431347966222806063380649449950406775761146870073576064683575295971598760867701036774183196339197340053478337110044831221188702181859910086623799076177506881812993536020086039677341922132350031941290267597692377696787987061707012702446583263020247855534965955844904562704379373836524327696355814350487035869736269878323446980182448386329194711219490283306071930219495325067471160442313810227479999285392973674061878982109746335614725855688698815727255632361936081650610402137956256583020878705710637821313108522560076415785723272049788080174354091491174903217067113549005159528550620468278328870171922022630516396970984890857482944867732911310029192874967704898224395959547624613111578105290849298522052830133057580183003032213444125198987872905056111025411380247857059704141292482625507105294027377360238703567352068362437365048547274048539934289496642658601907432273455353040847242665569519482239515462631130649019760320966240095116998926980942401497291573905637420377850260841978154421881848505015561501904926336677051521697257679005540131077428368051583201227169001096935222836266568037340349225347371655804022524029706818096862439877761732194928272038699066811954126177698022421519041133294936953180761955630270694176253479416477929693816280967392822791261878113508091232838948587840045622343323258773119820898687197641558515641327056980008185906293890742636370777822682501168679351781185733814504722485162306911634005070109616888595013939914007868621629405118303569508199296653924956414052984144046827264773857201217846041764059243383095098758953258522582596923650548582027825947900604706915603014681484524608117826548407551116508896704421603772064571507702429358139415353311500005191752633156718166149020132900257953313382064927140569097664074217723062695794977217324020174072189093553681463225605744267332457837400821696324514155208285361727540411436686529879217677250004715602601816345027613142867122462737402691841167917442924667163196694724858932475702261509140113319269030363314159013826883560514202722907322865074745330449869014696707593741767066784209966574072267655878300098102978305497161168945261976173356642447360595440358029633802649972046745758931005844327621574290911144828096402211061716026698650867673867181239414806321208800979867075570340165069285970957980801760575304974362210917780484254047862388024261809401039172331394035579070810423279832360370294726560705433588732659417598442459405729813998971949295525139502331616693715152958454695518595820788333985767212043418470961963569792070207979027363139285930845422220417791865475010372424081608857598114276364296327266590491238125529813685965560193352416978284701241606211197466368146897108532590045998508235185680255635601972408029516137626687537209683579242917297189540896004809336659215129893543415585931235716579081383537358965241355511496483713815007529595735841195760465263865246990095396749081721064440706369347002355774495124891143430226513080581550198248048274126729431498506452015739484178973043254870000707076798983215496413418368233462240962470523665157126773593989444933691808407734561782600635504341714690256809452334497080622618947103555687040077935684458036874083202127005069191672413203579048234507394064155041643527143015404378737081455798926980152832303717245403756268396366551111013102774350410619134354093190623507558040167117041120284923573687406114699566275547448896625928532555714326613075993620254192669488518930765282922139036940518729436101111347051627256202786176932977420587144216235752719496603928876566482819218786095009103242466708884396081629725987989177187191898750264708338739820506880731103975563871320785145321310253753865133039961179896435266658794557008304847760790610103302669969151018884233231401407009895733656129977730929381071028595000465644037564627427790663893438415065191674517287445906266761914259387929229938171973158030440788380130078967320468547252106931083303237289191152521884377142773090793871938949714406490696515839427507345129737542365543317935342883120199132983177395930920043671060078690935652594484688497426385047160212343933552809541962223703998534236375205299400455950550408558837348666250462967737988765763575078374475311394080371005912541014697890217897652888427209284968844397329084778688034880633903453916920426235047211657498322643239352580120890007698657011621615942456128413588704386017393775997021603145794354481153031124814428239472621319002087711172153837658638653608453297153937065905575714334014224818314216695366388866531842998903664367513297349023946535522201111943378376650637798646301632289777775689459215947812132612942980593601653805437475769234103499180224306084428534440212430274336514633273665686229191183100432257220705050331780973692437442291852858354995012183652365608153643828307851979037760030688319371523999166307113148687310714915984604659354552478398341796134960255683720690574613917649284624315860830609443862220601460495461591025532581303704380215975185185966287891662808168792152868286564053878708440430831461182702674198173868435010261087731191584374217825456805500806827769124705437845918579445913689644720217382964446806475204829807025905395906170684816608422055629922718578897148481764643435485610404066759899251368083476804965497837273482619618330656092142543350290828684116275937330096649736956233253479723787452066091533301625277306715752856448978556480878807270532676052573352665207707527689163675615073465614241338203636570454745191619973811863534693161412914704949276701321932820552629594689355525068759088458322525343697883577549422459698686626918940530857456797651056024151517989315636896653303108203389655657654016549001692816619889433330093580292692964367819586100681220341273334786781850181001068756663207189205685802036885008908281608659424238863230863676482131385440151154529170664843047181493827062193356981299946100418254770595883372058421844935979396119982756659907574634412989665989979822509617677163316807143214281006273993399216196222978511175643581940279069617170898102282371184978964945543717964128245970579624479882537168598125410949911943941288275165490082940626189085546721168319713546699320794804109041570949541809212590521633437578062437173982517606706214108124316261342338776168905785480269765798277518420911120123788557820456644241724887014667542332522105723907792652218940342965972147741252072057539962355372097894795946894646198855100904226210152702358295141034214079025279953297074635122096980097352714286520376371091096278069462641472453536124615454627556093623208008862125426045285935334204178575038234022951451589481106188023406418589801791133343752085186616412876598071061944329786558696023554292839140661383541066972965181990513222260948959135695143331907254731106236784538482748219334806728922229879429747897291974938376582403728468715136477031884850247515158298042140883378833161063747842804059925924532921473683666474882664657803357131950968162178306881752824008978284865763955174452152668315836230045503076607595476734197680535782885885318532265927572494091861720907851834818234749750478174726408732907357004526560451098000030448396518326235411024570558097473735476040335225900955017398531157283957849695085472430745200948819083864453272699129744695493213867761613549650224173815363510410124620086403150211411936823081636751908377839823857767903749895112357824348363233178489023676862596622804941484732216638977197018075154203568079140664121012448950358455549432446149371932954815086546649896634439660164890657879323183624465713998578398441658032060974232853105612290363195377731966258037708245045892726702785179870132302567263924290754293669844657576172508319024093509507970502830634119817206115350138410832679258302172184622303222391909660135113907811502995809632141913629570235480270069967084478408169079504873554741172495262068031246963021514460170877402853990998919706497799708445592581627402449720269894759073691774153377150737920820144443060409535160621970950072163601415720007372321796911215992148309141952138334185150211061135467827318156652274139275483020984616136504112472186632389815580551617696231567409733416329954431950329338720968749428112277152970342166495342967380557142701090515984981873340309371917247935734392032434359058433529068661462389580712248655035764368010983638834351341909655267625393558725697026996736755787464325943864030417041846832695676456212091464242192361607417661560431007646114971356641550500950405891183515865868101064219711767845676299006835169757218403288738956176857534756652790196803943413447773225439140005699604855742630929279187457154689306038849505253493695903076454616409284391243343917057736030951119062973801462251511931254703346921301610966943494454563929429097463569635783109570403154314925534044082000304761334365059439505799908927606231096627938396703436260235865892494780668549013137422001970348050793388982064021883349138088484558988158655866810809010336603295043531957480588555121349489327743443085398259383999586534031673976691241159319265889085441795805097970463816038501174251358993927466672935921878696841724532922676050480019407898018927977419905870824655494758874789918012919471512128897567166743544771661807713928984149140488410402229779267071146465944013166955842323315675259650154688142685370878638028499205702253827104168281519619342383818410076539847320774549681334929426160288480733898396401289828918426570642413412785054917699982755145652650612589685665624972319090398730490465159355852798309749315572555677565670147830968289491930856249984998645679585575865948546498601286520793516479015964353724042200969522998482517651437272845642255701395357469340021098195314214336464522803913546700771663488984261099982815349558354243973354534743246034474322186462192343650216743582413294587565312747019539428755108766454206666241338405484325156823133661318075805080350654496600756093238910087362089359393361217200460346255879320953616966844751344377017576328529836933240484222367603518029438729051233794357775948436418692787682909256221395015985726747772679732379959592054982607444057235016983041938666540059713489636650089755860317529497748454985027203730388574282799170751129148470101136913379694227569782920106325797074803300620393807811530761576029930913776294526818450740540212653660266434784939617086241708475862587289107053125607473949221111666347233927260425006391686649454157574453430080684649590476045300802860545488789958799872860199918039054114502974369991831342119906167931820101737323661748723608576334167476262095552284457121036171139778181250244479444057108036377383623452990680894999351311328199938327057745699283667448197189841186632478303080597239276528220841512075689683716003220801081729310062462377880945026934049418928293484539209189874571205187195790461437883836718123884289404858395270543413287907134538742671991302300401423776003075528582523079798708470591559327186924004286979978864472511919113362018649576282220200925176617357296420692580279705104464946517387924835709121027683617279821220735568309571814418657474227744140032925083234696034876052027847406245688877330337338722430293150910116594505023935927573205430967212377941395432115827866471168430110522242677510324354873462510680929118026594750227178663002431460895592638274377022939814904885949968808035516794760179669893833683778592162230116311393486475484496635465870956216971451630379003944562754866471338765861280853923488148072668006194365444801389909703777235035436694275862427122179543938860607490758972961171468447326866662234115646290309322047146754068566908813901086158067858029846571173235281114689479011019970282930786285600553181636393891816185711634229200801828474654063881995913491002952741586023482402613073697829050542791807067539019574471215419592268307526834651599890139893696268600073320586464260911676804754453763085334168914381986600342238594568298326572010614219418540148654730301039858042761826732901580424967214832330076327507137173419901368341572424741412021487847247262130423846514545242460547377784442019573273758419719299060854956025529956985903564125481466847158131517274203364259781699867409742687887484940065363725905073103824323108579534604940284931598651576397877163480103056517086889366068878482833105427897233224285765355959432831047724129241479170223989634513362374052554873282747098539427012662362728581018977843013605387983095526990629426244259602478617322383165410069618875555248660940448158751564828469990654404800671134868879809917810259213879609191429982680554416281364076892870041234307085621989518348662655895783488384970962647007188277805979922128007091597390381785200001732393029706633335726862364400831717712008547953714414776509345381917645757316728565594412442658935901293846332332896287957281962732231113477727953028115996467640019682345162326167666199506853958069754457844082339583835081047892129802145144905871201328360868929562147101532226594954096291737060078925025883649513396668943414178824318185825597729595837948105738195184164252549251482541336761361196641163421089468258796813608850744402992645037550456826329149183177610055046896434283952583594709827313119325391787449717572383306079394379417390941952082855812381280025719873720065013903299613441138571473317610881321298596296019040490189621476156154575381938138730520336772565270318171936053915767246790677893584108276820096911796055039154904832800773532510525846499779797144774538577929749151121053195276172846522400179312554467404275849244343304427087863864364779703325685715294332221857459066048196272438033536159575463079329100516809304764651464438188423405930244161874292728823907208459373691255697869126360809039429837869798498396318083360350901210155570997663097863519848669860353691880950900502248046631680769179552443585153166160270849952092840140710754295497507098162619790010192438789585482555344449645703806256498216136049865236857252988892877107273803525973765783982516386641140863027705049112060595602471152490027362729791873471923893066561453755197670109581755865008367593439463483703460260977561422392252034703157667116582017667792777963233080059841760041935335606827971430466876815267852180829914625627600931149915663231299730762915723262328841944602609915841807621048449747986843765194456485116403991536951815109990009695196991598370297277398199257518274466908327326501197329160488699874104495860961656511469195633858160099337684571154657820302083976048534060996543025524169024725258626200313130277279760673636874849729668938662303845531178512674685790517560736414509685470320611952626448001326767335937730101622652325258184314196670497734364380248572975570215838504370781793108511956657927026290046526662321145087652054234804359465898338282965530718415651702934578413475392953685072131220006579276811928914653079681535804885585726364606649786573067327651731172396822537895744816974174711634623479357574476091624553699662866235148405256442752629465372484340769007747529500671716413173222846029205202439322172939032221803678946500684941321113992322986702976152816009572625598881368576494677129101811164246656243250710285158006715369662279676469347423074475718551071924135167480310106228079288498564861492518699181733409556060445988817788166608411077555079813635017214237235669500167966381603200660900541340550243345674817042815034454411787840454885438306702952256892857434738444777000270296566150211109585985785287116690551382012505662439676911724018103985308892145357955449782507093510492569227228026864942078368332538146424078995056826190178644049194571115648151927184789865835330712648649650621313429566284317570159288559999509865572590013985449895818725256289712824307415942922216167438067580927011558961127892868368316169036689644811791989027454618334222864948237327498643906395909187283696729309641890372265593545881340710138890194880193997651689377243005177797718577630556315111046450191149918917308197478656939755604950798526967895957929021820951216159676737969248481378050786328117432738733646760666363559272840984788010442939942453473736085630500532852288907689862664446568133911670095173553233378730917505277935896421794781223307670681672126250069072094788011128173207197367286474538686169477754248537611876992698086737566064810917418927601555135565892954604790154624522972564281836800505902477290875773409064852746690390787773666782663903842162977339256088070069736004147711332166701273794169122842270144191705127212661360860506158683322989959360153522312764833317327189524455956895894950932227093139771348013043714242590013149483910443882323773954747821747398712741178850115891889660754517577995221782009487759729305011125920619024915073792116605520990441329382243937458122191011185596610573036594991621510007474910280282089290315099546975420108171350969189434752668990850541893792556040446291011560115410074008258637757523785405997893059878811025819283440475578299482315230809701033538389646543303592055218553350819985404953247749303211575136092595144151611420682184895688621988890563275025692092198658168595995364553527698016797787882404530510202534191745535022276121497238586257230979552750444246664528326597680831409229726783161723187485656137124625101311872647132377164735207271921621365938076127775855271952348394315296243921034946761226048630600901308431401772956605124605919639938513938463363596472721849524986656906849548850293035312815426997495002887762366024560583045666197048749746925347034612443247820747487154029997044288025674496112302982245739528372437767273370971001898045692490593531743006143502325308388989930792762198648292012764901563921577958044053914069643616793064871744058421866491659520912150524401391539303819762470649015720998347885457987077637390052558327674075092589809685454177808247973405957802844437922181357995451961539659541506359190451595636984642826561240419509993391040521856702262533061636823844772817718468682371332664417176930259104603862255134079974349576298931256394397623755340925064022439121122457638121392881786233829509258093079955289232671853040855365820525680186522754981403576554200676560313536625580756221780149779899730231157183161209853344106984577958377556939267771420135348511450362000514901759239901364275538565565694059245915259411193581333513634276442075250065411046953501318026025776111948824666591122139310571477747228364062100236445965073247033531006364211462568299295636028707017932239349094627282565998650452724222642361710292550246838446771868743349094330770618668386958276659155305807688122493271319441083936349922088604612993414846062671355998774929427873337695527790412710218272966127781706239111957292654517371607105079687523793593058256468632589599387592358148595311200168775394313976180161632846042242723951136187624834607044849438292554685787209492973455323378766329634678992514608657905140282878756608009910998069110788753520887273544036978447686159221112216663939211825806794359214745379735491703792929620166189692991245253266218090305351802339593852053823692702957713139996864821692050622915606925096138248658889672723928702377145410638182597214016047185273153695637390567101847994183013071556547251230377625594012636979653061748302089211587682848069189695146078030538953936821859016397990487874176705469850532071482551165192469141904666512507574320910920757497994035974870710747339071252815544456140525336146959759435382443891871096319847112370162373499012606328614551769812097045646830895112409453680752272460517975199583645239804018531944995883961538845948735567482745175977444559945706366230892123736135003303375235634211319391785136827687637429454411500353625806736674237380472068386407122465143374700490400416810053684711274858792329863758094954601874262395447970125433847363102071696892820853268617917870179991370313450266756295830206819290818700585009796334635245901133032098538885321274334290701315706742248452420798145124170653859209998668526503571628740876306630478646378251431806508442766310110256566881836678395202822523120312167925173725274642117484346774025579369327271788654202366717013961606114476124092792892916458774462819187998180007193913494987944186879507661581823700896522500122950690339173553907295918523207444091291734792209722468977426822504262723901657317100280305141817882760995329630695492195663950640683403482226251528347620231878161827701867952074585030685095754515831317336206672116558091277677453874624558876513606893712835818114950339139956700601213278703062587829330028076029404097061685373510274451765828554081497364179177857551209698335785593180986403812417864717832722084603317337368556199842517751762968455208362536999861844771748791347936150766857323672240000442932333639156513698485352098823758910046174576037575495358753167965009918640929658093186270493662210832733932548908263948868164385741964293467168049741291099541629217722854561538315727150955426933476758569474238407315953648170211253370607607025494477453217980029064398634477434701307501816152275457393706048406339018371165312172497812400643049846470944355891626119517587142839534832209193027864567768202778023934256367974982084959360062775166228877700050168271261473534170001647565118968936143294437934510342886790291811598103174298135202655451484184465180944023789466563266599025607832120401675067192869758878089417005203724627560778136054920521858069283011302336235481298163052597784785637947431118394029152742399872361960015099378940129830585716320488351717940731442462567716242296007738885795936203751909389409316574620137933306588755677487142538880830395386267942222772446822987967530129059257412366908531073828683226153341407716143409832398875896853675369959168411577826940372438479796526461858542131895767697105942411608343839119564093976105424065269169476429057885552676331217739211131930559906825821160413396122914150467767483010175124578735574534129138804746204164554598769217002779421742143571893686543211704203492873350161132893441515622698634078976888220730866024684732395713860387862784854064565762184650396150390667614345516253558230417074903988006985389899378536290781620805403797619887934200891439669173865908461597189421155133624702932517520617971935524323483465334639055476489197765401649029579338159030401376105310955445240979123915503011948486036274537235538995814274483109350539943692845164587453058061715045699939764001204359225740663461401127604992017756008948577577846235295022779593054290754616268260547641197606570003649887546192731213773365018542607271863117352235409728232175934286409271579446919572766150563425814887988994328387012261313595730025531449116962358234474177124467203950265995024759936866906795865985669729602427022090946396367487769919288427545213268091241651031444116275518924843175218759647757848070773615683297362268200725927462951100622995532685690866160042991841642798285575171668590872231618824484005906291264782610864455316628825761156668739737362362321421958358585937974220885064725161442706298020281477757189051597263663275683710529416197018611904429569916363716260608057173192709385789666127096951606059488846900695164758737283091565441593182446038553538836945073673432751124317043032734007840718482851766525610261367035586527637211963057547928386247117933735879560739633743874076962564988141120884636351940617133139432884118593393088468394264241280006664784112226504815047190871869277602881580324402502907233237377372059484833817327048103962606252131866828659690027935137715058195871937254178107454670559029853767028039897374173034987858771994810636259012696461071689478998006552886254771882118273657631406808729199496672649065092490197431397670852535358767400206438194121196478168943885334604836899976672065475128817336247603978963949910208762063247232233825281935457462952127549482542257332706970053004685282311589273698549062249260118973732149457139299130705310947980003881293136025369785010326785266744909024684805299449664810308844544819240092861480628687146397120761725492600067316618833490615613354046192241526839438127194663516452569575006762811208277356105630723271929304178461981292140223987126447270604383621773059752330383333665767530966836318890815882305533321047530308013544962752993951024224775465196302377257551950714508555763049622673847537789520780287417695461964526330738169544994970810248049709999518273115408338866088728695216081291425802922727198024960187504984783072795550923797622254640657827551570814751604615899195607041736933919178528519994446145891227210090326572916496122875582266693356711470992559906366297492698015596321058131127045395026976488854302736884783148881673419662532249250260204687497802358660582486243134998779674168662129534024857910681988869233773549771396360448504781202051504909700994912163639238352637171070823516879942839548711714358261649831743239849654040956524706816665788138152075721130189793344629975558053859686100726680683069767603999964969682451652115070976872592077182312936750847616906920533520250532555008726486943919584058838369981113591801297581430907425780561473176781908853977391399287019758484184508447524293249916847799999911558049197696477888361203885658831477524598140295848609894501645791510003578370612196503654932135693564703248863597923489573049119096271346902945268722060880817028450893193429915018169076871127498018471535958858304130580636677379229417562854356604017361704861871784519992593079959801066717164377156347676374216959844109052918333730354570762678268268734136464398860492241335091718638314486421708254258675529439695817987659207135323195496326575232527996326204347968773357455139096628622420626254622565050887634329102928405553609149467998989589267383702985726861131644876012811701733155006222601297412322934132351184161170552823819112623218718976028845087856288487874658349231230895258004368445986957786151503368506014855614320011429770587947016879498196326709461641675606993225472336823275879137360590628106226076216657786362271605890651038997043656508068486357177874681161144669961434930524146271596106927387242303169429344379536111992418508010924700849085612502525545805060741720442621998569364725725070567186860979410570549283390823632864087967887455636457754341954694979298585020725302466717695503014874622928562401999319637781593409297826122829212064587328078534414152454145986465703977263311809677223729174754288046928364110714186427266124878503467672060763265719113800910803262809183271329984524702774061770553595627900549526782251344968919213562131146771113259548149909268301403987890989764917806413172568529492827453094922301640173454900818227065519065631044430580536093315474044840066003111364656216927828623815912990380125472020440681203596650775097213144891704218824859067709820374432523657678756038163884921233613195203870359377404552224380203998282824574735398221033232607984065860552690569159906604968177586201861958260919442220580025044089287669010926592703140591355707879726772894366399828672954600075154099589442735158136298397862548835623432053955605010879691873365191603604399351296001990021747054497787009640062468937330774769967504529138312766237444694352626287291042140610824123706471689420776064080515425183750054495526005389812485899881134568610034973436586144543122858636918012160332222024166919857746614532452986902756493179151827827467517654212411343072941969456007685208230366794656144453366063598421066324186373529467993583205856357318656817646565301317567965038546179165525184823260796028803669726794253259645528406518300929934161321632777705040760757301778719268941642711669475043482058883835660749376371984189824984613200430176648485770741278567270130044370754131621577933039640348821867623613866214045085589724031797314239403553790407613875170461981594412741041410358528772863051660322367663463138091787116373332896886785312330355089105545034106313420961464489848919145983459144919605578737548238695366659428987648590909376671991227508963324878793306708785467883207561811530807969445473802558187751724414162193952271863721952606461209987274313677126887225368273186972175212170028007988656475213703931532878442609661261622318667268576912361165666290204505790968930451451721419041510905368420988828287580657161330892967284131687876943484371170613889654712544499533962526780967005697843417497839918926918168075266725700001569751364867042889703031262318983718067268561158298548522961083673040100983654103684688502154924018587718714039898078844153828403186387680536035036706887178200679321450219735290687201271075599087055127974077521887959908006866977287074842835594480688883522121660268717829933516109585389477131982025340857219725366725259626314724447588296594584879828365127667678132121112990695725433438556287741027370833865228856277221566158343352938361857402504430261384543283862073927175972132605913286431810671093606972142899009482042897346491833605576613923738259887688158441280063587067091891942978136774053733451691099569598294491624974866860440676356449640112003219789779315272435837303285187008802099395076052251889715021992889017330504454993214071870596265962837630810637383937054234852483484071672986911524780873515347179446318563684651005822112415031396040042168903147756657798854799626889768724167717514984578694760406193158138598544514134889070286022966325868232106221591429628435779464992970141559606691426399179435504447632093645639042327884717080895894671243006769569112142331309628118927792559871465815480124530500966072910042331255038771218060953942433481994854430228170091118793456232791215292943588435870742712109970248066011462927760382256551733686834446043053197867220992944737560683465297362609842485504919576759857755748245105849881603666852399647148442775489490085352114919372282497666343123229716189032719577060054501679759488488034980561034190958047359655038608526010652690354166161753695968851950548563030589275385857794739998396265640427641709405938029845003356717598781521624249268012911223885430110332697362838377201635426202944786938733211932574122472424994686995133118084685909865466764404987275037936418873768148288465244261828242851485329546826719287976170634873151927135686237652688943544637511117828894045225166505839082368422726905891055842592488411266253163991855751877842221731394053988714186265964033308782750167701254942885510636997085141911284806683084035057280884541133451143901545967686742363008433948707685389533989197002372577057190998189561228087535993244798478653778285727662956051420564870883778685737798884949868346269203354570325415124191058341587257793762425761778375494854943957003805177394378931794735772531086698426066676829853269591604025690262636566180497506305945257739886969602763702030026986701494567449732810255282855897199436049585239620407309639715438518167993968097955286329663388719826798573443405230626564303195155249429560469249922596618635740442334219869405445740414586111634362337889990772665558423186010374811666311948770683802339905620798530632440405961736682008191717040628760118180574872292968334200918824601848769169053876593950869600537624974608469678568859778766394080349987397102959010485757262745038414847459797740810437136294163100750311026942632951259675814253568817309754296712993095769371635967739471678028069504786105958667994354752843118011144083458021546740939126357605683570193140642258213553080962143407569543758869834331636730746024109797574881678318061108011623798649547534027499271464760387882824638487642595224698321023774938967683837087997573532759530872267524894668430025680054659036267358529899676342875613837836817511187167891581363059694057455587455469545559466956559001406053864114408067107536011620446160194652138865782860995350584479803998046544113533063527729734069705200011442985427146812739928389298692797315133321906796646893265871477799767371006919174707044612744221235685297945892753377970582940206183809923646865000997028438074523394831934961923439134253666120892318601464547408468881188354441817805804419614507898403605036730342075811756237017711132972791234514324096539752138643092536087789781443352511207354451676995192673012870130820160323474454205851658876925137790432992103575113137893296423071744999731189310016092819514210049956927422994373971663205367057166889923855272720798573363522785653781087474423777828497279931307729817264238703028875333507643244586877519830764929572846035160334763394332233345625178405646550131267609939064605927796805062068909336385539097240217428721544004841128948154587077397728500858528114240990197281452867995235651086674249513815174648996031987048767951891161156054016649224227768483953927037739231878144640189989641036193311663886619638550259926861098258880746862633783390012494525083440669201434130300685763309206082545204146252218907055734417967388020442646763623340056614213348704810262992006841927232184530653576561507670591529220641814728820965539660218874412935949806449279395880594272950535122082740630447610558717108854871377504691746338580183590908506640288199613878079502280619783059329459307852597102821092545715090243555349550833057474806903994537508041357884103358695070098847596084912148423905790348466617915866682748087186460553972606274721786098553629488774685401624321324809817225117272760271290511079395106579331570029798319159227392255129713296732405113070488106535768456115859769033539956810354416572351000434761466337073259081575147505433699534355964271170004404199224046535778456121906540622452630962926788858314053716811736443576746124475218455583251299254077423980020950084761144174226850113571570280322388219135033094604088198490983053260099173286807604881429881935087105579316386934815349199595361535105570699295420166463077113308536386722207009371332944631967794728751574622416311611812572350698694983176889344962022799045367064457214849080674269670092647418211058483550864826038799886546218785158690166155120115019002853411137752103606210388362308347344046670197437019661233397216608772067953836456433992132693938846393775010829499701165643260992173961001453234323953790693161386836091978818323705789307365684550825194575205578267237414240172930858811328943062882685699106134508057988965000739306957671545620051057852388307137545334559847333911206620443462681698431925741589452134224974217821023939450526598799990264784424802230890892639886570047805316060359080415098751852554097874311055995649405409641004223382761294600758126308476799860379233636513704150452841197359784165960757821435629723527747097190730469526630572126866018952158872601460540200299407803820192184289799388945190085474103468719878384720442495363360743947341144382504755766132635260386060034404853926310396347620649895910952180100911123576003962003961958535497971042209511586239384769224276679944818307000989162001429247726504669339621264769021749750156181938332793002235741783726594551727854583192993608432035050711717499353451049991118133699009720137598508532633488328740287658280102298603257101319309798367376031228850402418297167666677761824374453911934457567163691696843161364639607227416753517175462233367396901167177593742871060960935677610948946869189554937224292251412700430659450829680210120835656273699300298167542476540430182816450232134955245114789899424817268798477596221256985569949747093310578477352700784919477586936877891571019954273681309561129258744430905942210459671473708154851888160828779898187004463394356432805977380339983888096208978046098060054111950492080737815896528693131862183792700745017256338606912880227670416652613023006354954027016973131462324991681670149409041813112699882668946210761749837095171275932142296558981805571659575523716681576402673541813500770601970935962726981326966496385020265736746570029456195223886312594801012576704358656640897149073810533588280907308716247147973828992070329250725884077229441284119698384665783041117867559969831682471814367782136381281619022557578325674383918242379337595253708775038591860860867971146549789577672268522121468170905107454408230646258281806563809867499304604666846795595942890373169074434163708372080062260554391246511030304791089163181595557175571779934362551261219977789501143638775547717152635353321096728394715375409535193088945257875762743062887417466876170243639467476927445525026564076746647126970229606159218383546152554745605466836384486341318105248018882455567700269352067109984949163453476366838536249863771917434033943933297851983016961474308854599659864592628294215355461637801011268398972690108413680423840007025458171356505601601467279035026165743083828242837675767414720943967294847932146914999767036679538111119449300179613331886562513542546914513727750445334995702525688139616686754196457801071426883594229592009784418208866681173065442678307217914818995833264934777170541533696284416816925392887761332971344884925103795013098042076502394076413730883243054811226870050477100957391335878900190406340343560210479566461107338222682865368836067398974429637881610452007688967345870414686862315766680963645871521921904695653509937105368025913745608742553000291721047685966813051424435049455967698433701461314633756352677566326526779207946075842952105600994426724806697914146323577144543703524401205978026630117386671799377724033487502085923380822767346647116760041266035752253196928996635368686747196827249605173892400327297562527928496231500183512109159806754599296247911313443840662983872548195213035796264603588081499800423676489051130725578149450543588769610781155292132109576645702164919651043823046261789905446449009971140095753172540556964208344788174260364871846099271520389996523860381254680942621896058648338764793569653607339346588981411290348355177380965504868865341523549713581069524819979812247570963358326940366495361824208800804963620256749948978633272691415429108547494806409504743732996797001520587041883570456304382757898726074775466275958058027115015157234217398628330348576144008509396540265422552415619428352559774688592252323900721100014470900545381878188603064498261569006175611668493887378999935084127990858260676308272219818127587325298344876343073873714283236157058378625773943183937444101995719929699309781681711342825533449150514561623546581104676899969573608778066561945858893464785362218964714554367921402502567202257982050101721455583594688604777911122810138850815061357925732641798504622440544544468411423185243168602255451890984405542406089838505858908414095503108758541560117540620504275406795216828938606244231465058157720551778406646296561453223270428261529158365043916735901549271430962509808377186767970961257247270911364966994630141596891241524967578709169288422591151350085515488456583107603709877931341781824054894459041950605528683307428018500107533525433978919885729771836586302936030902027762061507507881408381237530843578218533417066112908176397505907223243235436188729823932841443353950945733756664174497672272051959392259080145691059321982308273846437401111690425145129577158917403573094267759754887230318060491258563522040051142940946184255038978102998429644023619451483129273747018199714861355957877843705080776411599286464665116421016102916125142047662564388525170468957404975009615323479973996629089450597321694665700092345577024886298592435632513127760566444418885241604636897331839024937568244482693728837885086123557519053050382856323257633168258215403249207399636901890619426868549501612857607708190040170930731985784497606876261337286503836471841626116660073917435951352588403279942404767115511405422756995968574932959787166732322645385053321651576223817295932755825906017363280431528265659051992623195188079892202798047754697875876013096089697293281429341515838040472670007655352379420471265892218590824634447359521081493121609725982111804135187373931341044868348010361916486806094617063675517451480777635115865820408672406684896810216076838792719687443945561401096073919684752572678910934412006703446174514287347569088260225337478001901181443346668207709760129970793518309286150523516158175034453716795791773572189029467477409310979330554045882661168341957998680671649358421111269129273695818607891769160107711905940037381169982342971605768394697990444442280444973853508387237977636908687080087084465494258316260771631411907519942243133793469888380409854803102746625680080213374058232361312908353543703391945847475830694580854335244014826580497329073191624126088167464151888424539555410199198567976238493462365414539127285697657060260170259718155345839943094061528382365860923530074469539971128981011705265097790982460281539646383366053499128948499182251050100050356145337682850802570112033424817670657304172873847810153624228905559221281836374423057726634833957112898139747302008547997091894612644598637826138172881543285483939374512496409632043978423595080254582804759149960328671026223400237860857755595899061160713515968236672315944425602409870664683955097607902798278415951843398331913587282993555058107104651603166790149812758330389617751745132461117844463153878884844813739627500920360161254118224177261169318233798479883750594578226539359944426209099838252715923160399415469392412204988869047756910451610008640264448722458116319727490549995137047484931013854696621455937940113526928267352674188359248706868638561368158793967477563577631258507817312347858089942491708027764200544068251266275466524484304546406236634070992943343073957122020022134212676029296556840379991604273226043678341878322066746408901552144128408312001965456597298639496411502202339366946855618321529620514531121985382299908292234872804850054948583653613307529671934172446408580944978551815748614928458084144667690080741608691169427586002946232708061817598023236019282063037631154543106011237041370974348298806324663070762259858519120392367727141502970436554577707453062296440179027326688569834132090138065223141238449307225704318605932192108480630919821247249076092353606177710904664284894431043565505431061670660681935901261983477674797752666409966638936819770585781086890750832635461884241877719885203926245028221029913772385270916541871191235112147759141650320371666984203443745559970694978268632408456461747864019152240810289977613691753749487527728192321864563837464664730455401380013757437585007539216458062997527504414738219451272214909254004065905620557539150770548992366916969600450493889761611658566653059213417927461904950141918830514272121896866890769273551976578744016323832205308590638935898667144327422130216598533642242921964102404815086456466864627563743942653589471550283731931277454301769987089156292484771347298226131150769926527866508920668239034491641086275898488533765663947367452563303670827061114858596604774539373139453955197483478534721518637900500903792652332874498620927723726337416597183829814943466723815990643666855068037554784247565199246184967900624746666935762873178383396692929468688353499932599763604282828333452193422795989686757351145185485068790123959333602217112658996900610114006458971665629939054538972431158498296258638643089064655048079285275269133611281303737125514244714492929852541236237836654481620359915912089428420194355336694230085548364760640999541344168862484252437104996919055494911854135479762582766466190389671156602811838091160482508751393269466901876994356195249269387659460027829268760724160489199554559527135369872326737559640308626765693138497489245831360991235330737008028654245835227714715989883788718560518306721591716423114810299273074619935671217830449629746390220145250431345557698624597430622466877475657302071466865420213021381093346947905819596519928945687011389585771222915122601735209004513001221277232232290788108414870421991138032896765680379832051843898599660982119810558360740599262472183424354512143630448906368827287244965213460886543661887372974401376621194086538451090868606060201790901168745268420895181172292234589849282484215121261490541998108597569369020520901917627306985604681051985130626664290361147325276394036293000146678487682778649729032339410228289725280294141821206910124265741950054028576977072852457370441006463335006947804101798582958815487279193870089523051877608757026269010891100620012514950123301993262120762878199948057661717131982029438547769839675400393050125971872812255640703621691237490393066534010585775137806931831992624601750189082264368685235795882827281118214300231131884605459077154082573631764577902526601766430398773976331181609520114016772014900231648794183450770332831056016172254541650288113838866555839623019090122633355386351286718014564730224462508597970967459790517355799838784930308796933046279677766973224476038149985796466729014410785976882871408926739086750351268422610813480680716953057565906084906113605697621729116026283171241437587154465584617633687399843647755318738844604724990343914446601805959035460591572878811073704673014059966797397515691435890928096641612667073993888760128737461068372142822832408999601829765240427779648176325548319616298337166903937778542152153016354142484567553827367286611911635155151311513885212535780414410933572650876066671047933185295925756946440914097067957263351678906538522621494075641899128161533516896137531845913941696023237125768305723894944435857288604609087837988527998115406130857231861591819610350940964614133363346083589456769191706655452268357185680999916446297452464611116657726346474328797640091344399340005119724228588122399984199476491097357941556454072968036459590139036707927117493220219819837738029480459923118070602990754888562114987979462053988281706535133250106809393730393416297611566099232507833420683243913989341644328700515519853977335978492216788694769087066009449164790717219384950705044081580792874026819765870046301615586930574578297893051249003964171430324598331464096740731960799325238674774092578406282059814710309912413146268459685875830179436908909060651099498922369258059315148061791654394689204328942457511674737273789938731616151711429613371295122163055117623814462123941823446227420910972230016137962820241759706724565006762690822940590979298136846484672328312529219470301697571777283499090094319635048962431938438739376415093545623690062475882583461663878663240977779707897497515941599445639648935553036594180148531122898621902820950503544251117043323886385027729075353535822166748637871327442802442651199368814726716216175800602797276592492555422600659973159241812161170004692468239544640657609034930121722993579305399751793215060779441864296532534557996369919680277323121619890199015466172367827001286752683009502245828195377314192631756534808474669826914434035675001443079198512153448910069606202455613417205897232023036564967749651782800370392465218168668411395392422924630934653133135750203404966478722923252725994199482519464365957701874062913247823873484918217529751994006786949844730340388813876765074347116325404278750271232498667951476996082165400556263593876856663012920229534466078843647775311591920274729347429234805961706155031190890651772509438416741535508983949218335567682784134021902569016502558403540546217479787838051538642800140556209820602137703753798539402893178331505361760915802028004572556636160882645064768548161925316270207234368201524623637327817655987625938214482133954353491588875262920977286073411739434288259277747526653452191486967593555019856106084781356729210826202359100817508486012516479736857888607170713865868266884397030186973455241943419470814050068133407420352752162896028354922917843979280224205991804394706687401422140561913364967781375412166330132543433127010751998810035993030730301551542441749529581637240452838523571840205741341482379742826775797777778817274779163801969465207180729189223641947879474168974436005256396798187505303839861099106234863812681794481675004650019173796370130522634461024921004155813909569699268697904794213665232939527552338349671419004788345798465844720414166331432706247267361877631167928289000290706101366195694408907582673481350402755443493549730262448720519445035967573364383840728452044727651982261885810178821309782325482080663433910568918472517007997206407884202117187006926126281711743539946148977866986526716440451617796952002948187742268176629222928352301412304375533040870374408567168002276927607734441065200655636131161411010419783369546605654808620677145631482004084715395353521750858893312434727953086863349301824168524211727779649157859485634388370411831236081649689482772251642684803499804319907810336308884968462965332410282319405070736101584940404731378927474988081419898353284822590418113704790673166599942951124135667473413914281840721819477068425779838396975615906538049457771411809651190813133296915475580756915039079334100111934284225615275188047836149779058136932567416881285939020154447318084314928548953997788167414853713779429072933940246802891631486051106464580017706531357347180184902666476474887731843690611329775274764223437314555152687510648301155956859492496998220223100805839474949174130546189278398956592839352374147529473986731324799865292854241104134555731187096377387959192604024931890520590882271349389408025869529939369263008973541531552227691572492996429324606550534258784555076111873274279165456425176679432671064005144363583317408534003001950748964521884351884217129751548929302083210988756184417466546594654829227511731604284349313962670033186433858912804905884704147552243772421143588504927818482701015360202482371700438334934355763459096777185386402173947101228559221468124772797095541087070556878394801924415099315283515088127368082911006146347541405041632828267238247459996612411914787144152490998994535063459643093460098092035266297938776021249654781633532948025236804223837138179804737372137660107172885466339725726289824220865383203300217811895183404596920359817951263338125357435719812716289739617642937177653477340157304853075849796524459504752053700805073566206509609061474682358900008223018981539703311091520163823440554727132600227766039682641815387066942674074105639718398192492406289926836382360360179503034017178158994399911293264120942291993309391612511911642057367112309424465365673247381259841328421060220147249556715340318857874380982527055453478858071683397459537163103611836868858334354230116269532332811716665598753978205369595155869878637022233676455889415800894403730407077635720538212298339390196337450271742043676073900411643509344195324238925814646369275431570385819497673124654191023895483059953326493398140814738721585700861137258944525940539944796872448825493265486144936095842286978492410384956970809671778102138436630200849197938945374320198429553402423473501725622748657534530134938539047004847083480591971464594641201604319234801578080452908386159554247898150175778979190375180284852016394506981613437484530223545992343883837600427379507487605341971242065083985061839307940377544589500405247442822751770985825305267736992817802282058058644113959851778593199439710026200138908860950636849616721735777763510886790025799345750448847109479797975278110135439701374614316565478698389906715630838443992855727294532816593024855632103544141219213389304130297125273911077795605705773585695395930040166127675528008488099909443538589648805690070408715448003099409353783097023430480029302519091930057140701961900235227412128466065294090229610596387563522708261879206508883546421011091634691692915806893889517725329316266444809425926721951942602319945572699796925935887824592904286592098529380841590021190817576785713837061645131137294594459902801851914128620804804201156171276965823891766299828814861893491978988317619056468649551522401859991970349424078820859044795683075632606581764910517837687131556411318839463200607157479413245598559331534101849896522094804861659645657043262040933824357698660577235436183537036640280256083526952259634100148629236678593636540984395168594074368916577549344867618313521484400889048988640482874485283182572644625796760381337737494316867637550231709687762873530713688078032259676793792529768829869957342098262683935735596585644470660813239776021442995592802704152878830009767967315929593374912397311652715864365111838358221627115994221192207169338890335096401402392522398588574494841883299893981481023477950172866429382687555064909122255390660683552238920885978132202221318361422819970163548551348459468735599542766942382252666490292094779549135191367338040393075255982280142430299694993470674531197550996052098447190282423838106189663100133056805000372940735577030715421286700329666554853426648716779819095171849438755415762954771166775328800675735234906128144723690320932600775939177243276566751184703038741634136886212614775257634429005712043306678054179230001855385799769311141813536866219732173349917441807784755197195261616031690758361359148870484036829437663922127143307858003716291458329763845596995975722818045641453954669377362714997603568400845403590732466195346585973115775429303232281587514456864990416202695852393857339088726217931151650363126394473879554226120981907390556693017140364196361743214373518574410827747082752799661575208924705704175726959923409034793983688089569231725634552489051945445933159691302686837436054184239925723014781055247856841632341565542075403102892569039439234658023961530967058671259404545421588525422690861856574121558712276077202156860209887665052358605009592819121597345231567454429926398533373405275628397770486061670003794447454749744943905950823560996240317832479270125559306297250526828619136539331252379705982641722447051706005886648402988624308985618633379246229121540710134115463689554908157390825729790880075438300343805222896338839157045691094917007344805970302250544173110195235796253588727874428479993100767588963950060729958985620562162691959730094991116363858535336806110602622827370486094178523812234374074835746674448179302038363928614127937898284782238127732453806755826650387056784845786097981645467775929021045051427282810178808105270134051427876334272023808779438918193754407866870133153043380370538137307180989816483650482538801560638541543275942910564638485920040822724997267028993183444151999433354487049996129139961796765559521477492071406786836285395363827400381085707059249826903350867922350017062886165653908694789144860792399409768786245602569190081999166194406619652175638391139588816498299544041123218209061139597246843414162633317712635773256769775348993262978600734785428746804795193571620993720838975415385287500181807513584080522471293549607222697049543964794927132915328912500887979072189100418730587283358760279093763726223966011311386447976981607517051731044772719809040768909886229127168081688145009926970354250137508469497836465906086388596432565243935808655416775347406512961529348103445641267561072703344810832306712400226252026005270577712636479291886020786439739864562054895142629249615853024036529012786098406683828466744936050268076235141187416980724510139048917205990943280656365857083604120172917447114884219667612081247890288635364330172396101867400450145764100140080249799609342084496927837059648753263595766267341083311314800727955987331777711766798817652016078974846444441979976639385620006365975897866783365398222258216295489283689562702438083491213680011789187656509530726541159547183797737885486642915625842965541538586594788626385372979510689572789263206443288901156290948708002250748193970796638535223247488960348777537030031512500068237891658585129264950170295914236129818244999991495947228854315026373214722164697738292558472081565675190605457838172079865858366868992779691210755728336966826948023135556154241577864976809723164522156993866053537235523259157627849995683765227628729025049813679961158459084673493957393324033834873924058574803594687927221933077586294527733705136681025624637955369459134427800394124627806614416319548694536647583263511798341648959214669585247603799778881754309103688602556721898532839264631633931275321341298935468109667572610360671190114170046130939583141742161234278679465838081289049499365234129125161419902038707468689232832526697899580051298818379810879580549225660881787405020080574014873756928764566914049572973877420323757959574970593141800601302016019308913780510677463084941681411827963255049816848572247508504730811373519539039976916062561713746020637330947635237257310099211851149975698530950067777141380543228421537826242484272259661478917388573474506426257721465457855682225421615266788565391691650220036334715766528258843807755521967039839302084013008061820763264117415863647737472566459416346098654262242136414350460447231374400893861898144174009646732207967047047861830228914216825478925802502776992035675999256239262628109581101570438322472512475306226488021995938796780646980157787399722319396716054671987766371667308397509792899207291054000044181510484725599949057044156992920997865245797551976174458056566211769079049134701262404707767904738722672492091815546519416934366502116499783935365066998003450054663332951186544243064533018576614629594391625524439470127969186867785051083312630203729918070500693068610331564126408130987575815446406814079232785735286343050346634554759551082981681545323037622766410623498012975690024420810876232256155640822426381186650064768703130887819898826266764441280038147770112731752333669750333649575392047310676612465527354609365250315963488588925155541498621372226111258359844732401042504244140830169458373788762690423856668337821117483405996017236795176822853549443842360467871827003782937461983607875452920318586525706292730609889256384506360721966063920735057943960671415607963463661817415215499810292288384035419487087163570080524721446831281766717319141832145188367068804074721906893115848230914577757017140344592782819156603193080128817283678938546097247436926688192145331832039033130379674392027582005799890113402814849265876272362461893402651882980248815515756034975658252729718386482338110408432453561259939456793082152017740830013893484877171512861693159773583129277798289392273364905554381708142627361169502647315053283023543027630592251229685478314015867652219971860842673275793571781151571323705004477343364552854335222493199415000827100547465708498410381563030378228738127243785330784496584633675374593588178682660508237288634742635128193145142214564854485943778302704340766968464325971013956659197809254776756421969566310695004284714704813069602030253565838532275182175101101257687991654191557161926772024969294829400285474392769633331141526195311478402263641036937679521876436702619087661165132662541865913769818197706269266555936012283028261580578864290196159264531033967836899536371066567784440259201077139508384852845547781838225648357310361413458286617953972094391990974020211191187415902670601262537790626882956529669802813379397995428972648978214982230762556815910717655674503355329353846527998871964602704668102932267005777104231287501555562577988177893926800099637013402230267377480393316509693647795001007092586440206609864926781161380055777767810922784205189801438197151765346640217979481313915861817670820947466948304711535486770859149180216977032264676359967255316508190864131234465144380149129820505988340074052185704603084349151340916916359019849240406230570458400480185239903919972764146157339663671536268775627426826746522293581928090951370037731434814456334121988763107852644217656561537604737720944302496234364107620876782612048213906161160962018124398374326153288220154244566835376902155813802592827027877572701173789791250845583714451895022530087260318080958587209232759230571129655085355445822522784838868726021527393424029187009293294622871078202255603420951161687954768300048697209540719339145988711635815132164172560884998194725211573847331922497745702870425998890388378933798911336553679273302173848753290669088036595339644261786573298964271272027256311775754712834030466421269107996556780325890482583475791382499705580394926567816250540041217655835413031807521097241094951023654715764666197333847026410457751903975839096690293263741270520060407280263868967533987993608622553357757221738724326011879005581887026010666721295645144932931973843241504795669195290822155295468876912872330799338287044160504173035159949902805160255733762476875785300485365928912345575630646863444561451296132647620589358603437692330281004067983170131669066265076364503301764335844442439281549531194654824229193321740819539002521428763658460166729751678376326533653114060768236399775999180890805761223278777486883508577990302326051191530234445300803570744263348194208063281238733188124954552548807159540582010690798897213006528767615850672998837855742777539224848314660510568080390747109270944363653953087362122501543097972820918743340223615626796736598203542126494131916202775229239116166097756901698471491808860852885879883495979637687383709981388987353079483877170959963782278071770041280017977755960741513806807137636443650542656028534433147844758368285848558215144153795261293292688100956486387821121162088332039813301090314211190228647460861924010191482663801450021260014132190728510702319743804372835942411910072592992282843217566981621706746427102314090670285181510195262419326905899276215161997655278801672288150543580640910595076827531615107941202354296698996970993889304898243125777812977624142344709618415780043238242716121618004585380041900599764900910638289547106008813291127453407021147521599946909046244901154734632021676813205515174480160890837990796721765113729655909248021347208373174886692814724610507287300237019755728916426539392275826958810632940150267946265867089275869436727287313682082626425244236632934936719820957519808373974637494926725260797019776131808554833204242822316862545827684369167298293502389786965683366387371154907190937426249297944101508485580508441450981281463090474659166232693421272817355599257687887138744980393082400230383034864511601467848281211100132968166894392529838846278523870206845763456157456553966998073922422912051303829633340097408420858019158958569691452250061961869494593375485798099127344760177720656248685923044077983014856464880985915150119663675778798251370133415250366972048239314097056110375816266444172835697291162295758375303126106211409097009251323542899060146207747097209265031868378145215878843878830028922038609222278252710465836010721315511243468642568974483092920899813326018980839190019583752994825917722536974222457105195301174381820348482085505768165676402561863298877260271560006034776268072416356158274645209693774102557459700266659498382041457266287006013598470661970854742875886705609956926593011305100915550395016877768764863608648774049119683769780414295825014393185042008721872366019875037973125919618865294424281342239996141726063330834500694151563924203965502323346081984727914724979641817450543643029926033701558005217450678206919962552271554417087925106421412079944783351404254594307149663330464488631756294740197174989783437691525323018735356902278065703772459712077008362277129934278916597330830805778009298788127302715023239924885885494251855823844394479723529539395908168407843701347340355022385099737700438160417501070167636033298204819452044925935745610034510381459389354846230860623171360465087680313688835920117886354668015325736423819673238098366822200180118045692239654642677486320066012354995484886752895162825557221383200945047691889890085490730274540077092769340778897990564484570392147797565173490405356834766512782186872080666821115910155796973652129261143426741627531539233575475887601081255431899308048046580564869422355711976586402045781204126305723613397885590380614633486218641383318017299015141267013605294334221834827349950860347659480169487939243337062945726432637786636000972380000638054669802654222920603979610397546483631045848653344202188281782507948575581099577366886647164537037062047264591810537209744907467293910152390708504640048062236958321033749741260866028183871241410466320627753307247540578479414035800729807513384861823619521356099687316879703673530281129607797026974385749853591915987298413446075718125117541223800290646351332061632963937376880812225358617684698929832896237514651408789069291771984131621293052878568174669798590370940617981890787764173796690788884663324985240387364729956168506923761438645961304948845138043567110545406292506253025228723629510627403572084243021565389302757772125758710449886342233340291515074624530947030247482400297005715041962599661152710228343276519780719644032112558417031597750470289123514265986759415398147045359849390872160546671800888037580509351554884299222253162534640622193116879845629203430192928319105858977744600187257490070497438122011615486487661494969850172315374609937590971235890284061870455605388906385254819070954205259438239878584614902695609214384565807473901675340888819898808434640276149714914121273940099448682642550843000069017906467610955503443095185500894368533320809889874173964917634895263192442022117478349548744652633699490522086491279457795132163172828932314636483298253123510790322584635100990719199676316607461429386339383458844535849970020646125020262479883431179356482075498404939145691971187776371688383185088814763627249740861167306496358546450541551890344160889391121003035948993983024077440714234971980040694534664830945408225469389290434608450321151451447061177508608609061372695438057265518183701066482003145465097571103689205166755859471197242411397535350473459102366234026759424113334446179287815103079687095802985069301038731532869091623795641013930138568784104604907555407650663610820804550154275299764840768937496254979239875448981409936881873426308416429688059209146503321624424651332611848238658331441106075598097422117124823236834236664444229650441680244700840841645994015479520582328537119173377955937066959752454457285779839228694070314677690548673036140045076095452282849156108046979820663819028908439671056526497054197101376371972243478877910485599897384473832844683304226286371605305897786792912502524648584756233975931715228576360136827290931904650667030864552941356258535787870874054001902327075485994490312683642581086025674922756389021415396987980320661215663166229965452629200671625089427680673494853725154760095989496839412581021574092362930769051903043917021391446714453653576499652597014024088125297711653594315774795737327831772744185318436354359474199907773180718190498406607169430317870308025296822065047367099803110406680999669975970471609691731888071997155443310466049887842415888071821342083199034740894471675463193330097211346914813444356843011550798520389333979861367358944243792008017149385220611811181414866307870040335454129732567949673622512394664470329447744410630599608340620311042450316881136574749109502119383486486542143625131710358895624841299359610825262068953546624307900687593133827278073164693250871863131681857954914168092360096739222727527124637217346908986407769269421960115065380050048197428629356490533539537606840322522821678733647293836924056810636606865365591791382358379214096682686565725325234939705214942132356310658105423602366171668954146873037625223217039167902235614807187135499629801779673564372794135782807002411908317792859370633165380000142098903738556269062613570439016221393997927389218828206082630615145538919662052427031943380981566818427995658131222998537273057496794993095083665853207091066306893735865211242581801605672139044658376722252754061422790287691865299879021297633451000966658246244882561307439466534270245322008096720542638932686157759110778006911694041175023992999352159363776807630733696443938435498679468079908632627879291855889842901220871247417211514503095791674894210091653461979217372489415759384823233464955380269061475260047950232829295469810092923895733493520811698976052383734648483389038014505588671466671216951170001502294548015667944334149874733698074052094237695085035589339177635916144173842931535155897203337223946236897055186149540038244793761017383287483470553344470774849220914175943386621954164243925000072873020045824931848289913147842467075999328697180085756144573656722252680104666999074086828519234864162553136112237620436821756971973696586292560249900356206365961329375688757297648820026321198342938573972286958051409137618553869287763525954857741726882030681390335840053033915043387459216094643692186465618399628412714057672442441293622017551501724197826658109636292696540023710036964122988304071875004452183145403176932221991503536176284379177580744931069085993018099938106391712057065692570025508717035570760601883763211871215500625080170865245828447294382411621206695477251196138619188040273081897444656349537152603512054568295832218090699475390175733580973559880961101548328631498461093018010802842497461889690961766242727506637326065144915389905966143985442805191890274728138828002196499205386490245164426678125870486606614982451652083148951539856280434095654550548804526099571267436955051833900536848677776663766508466833382003734921248790920788565327354512183825371692528719632254568250759743745102512069230609938856879791690804097845426359702607165725642436755722087233687249308262629001375072471664987106484269448699734987454796471738458867941248874890593392979185601379746916039458778205302527529864931464896327275949364032452891998918619272748868417320572816946027690185780140914509779307689660289956909887701212051047221313816882529425285000865916738523311402332377356331987904325375855938029293603181979659778378585385924663555599026960875042048333291457818199310558506531591732102507601405096893597381624223684524139128722179538373714411323087487459063518903715641161084320557098754255334279745858388622034757538924910589816968782560980630509335251827508222293830497686197066809943182922207966912747288248848353525629525550269073534813367041192716995129818867314783656241023831956235944162295413790278428071602922404447075212371577602129762320950445902879348775701286473334386451145667659261248789852552160160001796083437209245113794141607293937672169158931139897988760992077891797024880830958752692151394101199250270089950491187649297412321421127607046192988572488449837741924982573091250803975462478531516082631696100943286996050213261147234743139774524378060687436188140372200707594094655811620959506515618782445838039371635033353313934364330806949579832470823653911901312826136738412758579233259032961159948618821596540121062175632448233089876021932357014081690940861349722539073529494833972874169143525821736839035982263059489580826912774277899275486317922573340143570667165950137183558494798143528081734854232974660605184474415030846631973430967571321695775966539485386850661512164009413410087595390018677467320799336804743114500454948130061006921657300957736011122436096626009502891623375605778235579432458366610118715012933991396184203724163295406713206964389566644154659748187599611351544616932261132059976026119866151341411932301285048633954236694661483172255486088727619120347881061321391562164119132060576052433699522357673381479665692631073319754260741517884467698252563576585488742516960042284152393186969241455515208311548523673973454869441166588321396276173172831548800076986215965542655258021910422062371988393438684655120774598871000274170532754446237656423619538851487172985835725349272448977682740465089321056912742473959639825017202119979432182569289948326363228659444748488446099951191888275865613886665636356734786372014069956500598982987824353963501358826950908023358057710678278033735297646654955841184410739788818526676131268361080221651732576630638160638835578423116666514853338934176117063545384552931171083756525272056939908372099637364738768229437582761779906011293416543368495497987365381825304613672882603189456331503394118692348792838775825982400206164782092727946612688368711886952801904688915918123785564205930866473655945440719142282262888339333966679162025645964311113564474023915913102214141343615428485118276777089526703688123695755641355385181724654109001550857525755578534724731738337751008214755734418643502151283482121870582509605509873117269787797765319719311578966914117052773503530650774679063075994174445943229449078721823741792416339503536250129669652753929521673748432172417448384313225090904924767646022664753161371020210266171369644506377295003355536858467023010521355101169682274226694570278394636919660647627358979823437585820104401971289666861357603642940427087585366226554655008003623076311055511650040823739954768190584164386617072983897783345490594834291911205937117166957527176236768435179617760769160291187666125585527249433035181648384355487830708709356520533734884317986254959507972615960685672388451192425748184035805280032556551762403589819824328790538461207483442410397760601915396405493344643510148624379857598328012288536875432750810572700837200575468133014000452462176006095752589184879795532812415417983534130440596392046029384455206991770548800171904818465012709974330701749691695549268180778662578255401052010420186820892058024341423490510451012769521369563483310229713556708823093549142385724446286317252495488466326094869732756550667733602608583437732478572808279131063674109731463479948289083882186474155692580915203240640228549442093806975564889992595905429650645600355385592347858827993305307010167871339067871089867686638171545245904326595321599360270428508177440919772500785586853560813027614496158420065784708012659719357887846144307248094364518981268239931583055274420128575334278516740855941054835595740719353507416385511255326951910539981843147224944801225438081790531862319317307161333289231873302288253807629385691400756662836257028201955812512475778097177565545299455978781888421854104472906007625400443408921673158610703518791596265424603263506874342624947010772667668082641447941897625830293188522444946550387676298125405051932591054205659909329782159095575174467732520192021410891429754850879187513329618235731417046097087806974416210256152654980686822603027011052691773715475725250843073230419823262724287234165386610454096747673025216215691943376150830569453025331417623418408046123594407546136404247791102230480551405414418636554856470427911569138968160861140349526898632887604802431004578313838608231578302074224055384361573966061477899413995126998579837084480360716207958314225907067194704198533447087483848151977280063995438061066509159891830919289371818430722652554674380367891303365563910107847255499454618263731233909843511936013784218928979399170834034178303287719993083986632428713061179377743509249647194012526515405363342213862194763764397746717239551497840216199126538890790591678854338643281806076837421576574050299035829974226501745370638084060361473569188945405886799001321495057155958401472499034273641611826870613736747363934323019057145134971676719125286935160639116073198985476592830013395461781423111949752025917577771126993345803824838242929496881361917675761980610420575796482551467445442069298827379863577893281268695893542124187735459091070716459744485861784941402791739134616589637062591833713384484848894455877917718185405545224229291536827227346044273398800300834989229861410360084739546332508256426385421652018629383761184538164796190940831260667293907155548615858364946282126725586307026129433087862915051294816187112538684256221968554321414180451835882070428071763054714985320674871591514421422136513166494251204246667621208462687788803579181776264050166806804314839319997328775324089000991023300381632820958677865082541746224269168663992715688016998020783778279025327503011009330044188928105040765773568192568693639429783537270748383140453401876340032238467179908374019075152300480724955873027485318550480135142901655591031370914270094340134641659377742592957697454042110063625504742967807856957786167205655522052211877670975688241624238336127944274730672646188079983082608616015958577005476367413072259748047202236675910578299005159100586817499599075032391532492860993610430988973056120931044256063161612189108775587556915822900962551730527516168092819197036950711697743815244660140241833916980388785520284517401034937912818140058496450517253968567700706174788042767357295250943511685229575856812695564717144265160140051524931438631492869022762722763013680510316929405814626480956963298887217886824403096088180831656321355569975458247867953461557892556859830907575031894162458446765455402448606287878198065419455448435723035093809303746032171000996814575334433070577460855157216435671342003180595267013168705691571913078001690380989561729893241607890616898368341343059428390482272370151894973395087192432486641072322283391151496453696875458488262459543702519828231176326023446097711553656918287723108726289557590196194952994094076817885568614843005368131382277205876043585360249973031148881080727953112703417092924069672852433559341344611810574956078010929779940029251253569706941722053130270793393278507087438081408693464111893354804421166206514853556459754580934059072423875817724101105624729763255489760002931441311067735900612591429811142474853514395406396753278812446913460559809904183986299243309322291373573185522798361443129072927388855127496737114862688295804355060364693749841607705336745720224900843780866249100559596267139463910620422282609974196181165736394725838614581529113966768307125491060688916666064894315218720024495250885559697140378343589033884882683788722370510354630429130086697450973097431944370294778081904083889908005668551222308105461339824089118081389413358892940716317962991740274440966801752152024564709899083692237375239945368186397868077420784365623045010896809276532131577503357186660112171682207502645741748763768261729746484521097807602886194179075038334720010330249574071862904607121688584273091378241140832603108702646814659021596867993737763792905550524282950793155754398266106561812378437989172140955056425171705879742552237879700845291825691581524364784527772662361166856838481860076306057815038330879941342500476133021815129729870444979660408569921313796485662421055555346241359934848534580742154397375803946193048574092282616484825000096542347657364853736607132390591290814239785198544066908192176305805478286592440509431270062357514803725166765010466086701316227838869362371888725558327675411334978352630837616828533080800260860080454100712143180585354389231357505290459654762520325107072073695576230709107287346009019449158259990298417241704123213676101569261608527195878129981980378532885683757516876868771185302115800401440500869415600983127560001809760741533867321454873033301404570683512913568581891545054440492070400955266155452530760072300637502217884172252568912395546707860199780350256672201574541073015452346025918097147640089037563728528438566119919337698280887450607058589645076885369243380862264422528217937199795940097099478711734462231973995534085318460084032707963166896549081676463438502869511562929281167219771361893646773652510954366494288868279735598380214599883089266149857329314707623496298684461936654732858317802616866953382674429584290899910790864833398582594865469153238155259111719627752428587763993429520044305305230874138345317655707012688835253707834456647997581709187878776062110347594910540215780985518905358803624079545386111583232931418916021436760848834679424573034165834690978683903053696646349686911528703361615583670489254219385758700797340501592092864760669346649425482080546165507341694843318488975473978752983401561701466209942575207843086688638661162520344494579457231550355131079919122068574107420685846347940244852116372094397621384577146719398272383452123977091523563915866436616692692729836004357143334558540721512879596385621818804642636731461541779710103977984231668217333402586556540085728176798472603270693071233905222444150496059844119790354617843609451773611176502692917502323620188776054824366798696336298362669446048305203185178378640442501374562829441796557203878994128458728917690549489585980007420904751518686172294190287045541235498583724708075263869834354067985075018513990325454424619824749243591829074674785101926164522397621614278446059918570359821680689976232760095799694111459105877073223570202219364541022908791807051320908124693297638009307974787344304229532109600619240503372280963333517341606863640060641080973104519716800063245974562813813180693147202619557081906550569105878487375854813896723638734008651069477972767310562633625947614849314044814914167790780350484051874912215696816507349255101348473963934159756658987307991660566934960121080488006666080704970721500574790145138491219120317766186898371332152182044488236644682292538197555284131051054524769632138393036543870966014856528804071168595786672795797607433285835105294500937408032399157111606307928904410536193144745004387122826162278241923844090371790625298911929310231115106152373430700798238069786103229293148725299232900294883349429642448733363794777987091398649162734534136697445287950866464206800929863058252639694591331808293295634642525744149938793821976379125147396230438771923861618979178589050783665652692500838558168706359703925411747243503820770610087170060856518402464802244073245858691778833275423758012539949006627081277803669152946453268823846636954237313061503400295692926943687223596134875973994312541759689932735425796473523631244972342678565012662053776131687442373613189134977867841608216492382644807181230014354173499853896821322300426031969048765355285860055879016588883243395681684314102848353393332419949127650665654459628298491290972546304924950164654329979079633057359271176264203124904177722244325327681237834574904428989739373666825316795044734173864508320541135239797906818202454271853081609017253144697353110348914511617695062145159594041370423002704850674809150437785560015517947802684870851600038359700224152837447237979563065355255729741936961541148550750594589357314768732593467251186548640078517430521176823590144362152654482677080602603984428905645093699435786243048388169793474370596681323922822502273552998325542537035618252049571425580762860360208496433231207455065976743379502678083681218572647286577626584300620426074708950392375503904878850025814951309359783095031910073651306060990452368224954764290252175389339751807644438238987635941446603737518438371649511903828440483026990800458315897092543068089939455471306048426482336962056317957493759799636842101730133904624849195640378260771307720033404847105150818225598388721199132524279080839093299945097490202897622234328085322622099333973347389660361354251154295812280315051514602844939357222083732256373673962146175951115132106948008331723087202091341417408126712403546615864022225289441264187617787983595017838989112962756837617670076842785164014864617547699908842290231992013127074512904446583611821122551892553885185477512328660190933183595100552316307703061588235576526766074869759349268302954673523595444156599741354797618370931854573616139423409905059104852966952540088321397756268666174904904646093665612186998514028415427297648453191549134646399872405141825115595244230091943102643786718159921629423912145909913687248250801305911997098172296770007529278490177115357568269969381605253095717701500099648379410073574452703315891262807200522214826117191436898649653045994256850214984782232354767727515789524205977956843822679164700031780536325236628876642686938264545756497575639843271193155717688378310598782566872153466646271858152698986079196231277477377035281640290725939834845397579158025591952382835873639602636569930119877568620910339845136217113755502936345122974446484755311776062263661777915691002542834225128558807835665621296665523666332568314235604812975248770678036044853730035289309703680569582578607079024823759304369398267809132776131542390625309234707644723415491512772513784371146872784790054154387584287470426468785729492781172578780651148018888384675405733351202599784363327476914824747684929085865089173466898570761179658041747409089751058070369083018351635373209263480701303775158749692523531078389273252475727453078778994490686233926768399888340767890800993582871006037304562955128032438622911391654919995106578451278631664044516826012385717974210544077463057417599066760675253199479600933950578587913901625652433592533895912582730313615756928958435025588482290668094501624245261874454296466069443655260526780379481936388779313802143162221560336961343979908116722198776032995773692767566807964428610672305023958438801735506738480031911979002989349446034883338843337686115361363045429081791498954790389369513015241804275345774013872904421806749215949401792147074330510540700067930714549504712621987032476991912689883025390620839355395325742415587590001110081436228708612295477602701597064384003949303516828989654282824938906835856333039778380693119675252224765984978974304162929458299215601234639294336720234780319755724496523528230716526853754977409586844297126394542944776059779658716690482205311015610962285413499654705715882608857474389141060571445829771897896344988834471989460118866841141983523191878169642586389712115391612389570200630921966520931692868797207884752154088879678883196454731870738576530882132204633514525762843732186068287058573577797117089485497335115385220249564034438279388383837865893812672456756240187030088441338294636060859644025309818627883644383425753254480064343780492349613809545745502617812315437523337713992010587393403478880722197073763451456093865259466733909649555389298422346716425771700409032890025613604904531284755845333083414379381551365687934701804543077798998599049525201501550691961600907822830665368328038809835555822159516140944009606064862212979727362410473222829501044772040501699782954199343104030399912650616351404233297140923628826079539100496323954896048195741898972195620751870351256849142883688914879496007664818739695678748701312647443841589328008953314031641113475406333932404859922451946035336514139258042038756860043262137475635098495951622381117622097047371062291627336535041088198349070676200760304270422576106831183878124758661162315948343756789534453577044071526305917190506830472028628837699510633333108670157513053703506137205089173891520074653887599754239654361434724389774515289206462899036238583925581739646473700864819611697853806894611042592171108370163263614312518041171255001370732611833258252139899972055566942938666818012142669476843529137609369755371216251193484878272642770699416533625759871991277288762063229010113537319092556108670762225560096458896665392843691418698867126726128652324183487301085107330710827944676857800061418583877054938649704554013923592592849727202872395405860561939530327240085448118913851967112040563431341041857302677966381367196473102749953285699279005055228164536567101704340917096588155023169269847606702647741054126630381315402901436404394581668943797839737186195591530326519305688126691079807944072205528701004253060617520762104658864375987849931700322467310367774751881835546260397521637204942848514897140466938912035802551762367514527335697450344482723457571362314588391172365003836248622988856020970959473809513147737903240390908062726146112107842421024356726269808951074912027516565595721130260621340913525719625618435303880824061173857902413291497715405140646601132597100210997439236394918531258112745509212938886897812992508077042746193173562422472521786557330865189560506594890765414882583147495516764749143943945097915286181600934934284129499832113133952181026927306299023413624741202467058743841193209261498812687863074791940200245428358249302416970888053064538601795249663205977679126360745230304918398513254121972928466148054557165474215505153205217764344172883321460222269638674550727871065562805149968544207345298363774665261762332848441879882805971671276319077829069917881674097688894126508016546522211132865991001750239354616106812609147432829297477084469703537588827963964160526053895203313111491783821963093885380964474301295469567448577571876022120208987380514491120665841601543520333533273449125056361528331984542689946555113603254662646767149651325335499938544462196371346588392648445036296743384403032234479797111693073138095938815673349478034129734541388903074601842444406615675355716322685278288629033791532455276768732587620110524666894693035531048173962681115221594333347044826044420506592488000708947471025934316283481520781474168291906939869046585393547286702628671373490582681306179221746270045002542113942248208860270305481533954386125363264933508436177398559040322786640410530479129971380654412056116213947453210020143344416192354493189754379077788043946725656849316627991823118386654399597906510836284716900456528099379495189521006764866761830472651731322612675538730620736905828927107242285559185754926893408192542254777769497910112053652598045819162530942794174505789497381470851202127704532775156015850337213817224418052041907301126325088317307131519813340841455459504077197971985728138248600817149078569217171615354323448239064541942052319258159684623626491834557538946769224159273124816481918129975521452464532325682513923058347772477938182531451874513364724212586488321837836460873537978611007954143027056745637089431898844141885364885266830285134625125057605160789721128762773689476208391263944708514218938551069414978439273432232466302596052671568831304741143335338049957001150509267673065872308909302009481427444830174031957391223030921267524420985554805203842317478643639453597361282540021568965790692287140363943410992188828175651354656092359140867187329653165820315906761454880375260396146502247317838602969710420119340232189542618797762873707969696233418101883814228495511489148399454688747907716757750143062576800327403227556621639216187619908318915924638460920749657681604186064442589924506633026909065551150557411207991865404573197805096175942252485471450227020516953110933392247041162618584430194752485006782439240326585315379884531812409973749730246086824121215489787791985362635584944728017233746662126598639098714304429239814653890031817167788887782405636965790201600400024682704217335732172861545059115717200256071219812183265580232842890366887360476072387212704161392902184333872408798353048199118381049017774147336936100653427629317138279604776750632130578724641276689566044104934028961842360585637028043779040298694103964588707629424137946552451891830480815144807539427159770704565675797787972089725822562150087708939169776679268198333230274090165338820094564608403874724070469370394531198130709802353243656156610289485466722868150546616660732355038479465334261865122005921412611595006564219593778472968544940820776656089198843533457250048556728896605644724990152903615039997087776367007217002538166607604559121803190476353234264327841478562270415924796841310749328197003609718727625668007025313236210023786409876745849992720443613529150100922185039729269071591465840614128519123884768243335451580909012025123284828997407908644590874200100138782403088715493995133508996241103985630520500571002400287044429323389975548300257139103890188696207312488661086515586749159941380293082539705698543872836807440987334446895763944957283532469495771146191807331187741690009376487589336790107046966894929170514300160725119361339569171158853199713223066325424220191428393262568530329308827571661493259736896962792647227571829605187039578732226201258806523690577421063970948503908122470533798403190165905750931675003666165458956597485237279433093232390757703809448536416845124668536657858785514508087840316286943039169319716723842822334861639658264136463832077609912742544830776974887138400837446870881822145762123195174110023520519340433755496774745522732059701821935907983354824293280988130064914796176556780764642402709733639480640589053577174471991288632618089573542708281036309878857683667823226184535042705787813122678284692223351497661344120595263631918367561683338050888644885492289930579732669806676098255878131253751640823958704480682533210822825366531366711591019040012222436879878347900837048907322074792090844058186497734269784630484499475904433822341387525883533071332619804077790360187143133045364307312528223715697808562648419556607018900830286585815019626225701859601137715991470444312718244541938016406100785723498268784651575997780552891044874814929039605100036132956752265989894346257202051541028158926628468993699529839831594555266065302140854674682989868529255481093894940826343406059169533568123112492076865376103154536686081654408290436266544813927441774227147499815966878225903230089224734894826200241768965298413764629523569168792405919344953684947193420780017465806283703383057061194556002041242838944263138354544495460746670858696664772329618830879390581605718043455374610953120766317112342427215267751023295019918671211750504937788068553146304388624698447660454480608013944884374534047686131593566155506824798796943092476977158165998718448242360315467058190571883538966230803599742503550243921521040815518982610133009819917508352977249810019005639456335264981352933787820345395898511007159262895969704919830412600258764117963714465418888153045979078846081054977904484070575540858059107647257221883072349113450578320953307939542956005781956129851268090406744916381723874215052523926057780076892647340044598736718901242256056424308595200746583209801755371193587728448041829770941833782367467796482317818550719616891433030635255347120195728583304860577332222052186267071412719500718994436040457285687016951771716272608630934504048167730290811160068974929013986353955693534850065591652433676459938212932099846814847689413877425881429225833692222990852729069388488905865350182361632977905944257307272095131325439610433508679106442436508964812678444776614769082030069923233069896687633171232610005677703175763522383647050167793079746774250090580507797953234986858786471130086262678342654443388567655553200535672598105754372038557027711264471080090295128456387443921342291465957560140261773787564340375713670798178015924535610210129775402192337924877381419229086471410761714002115092576808271379647579932605692375609296754284482648274906424803442723074739801178501282720843224397959069484408782694390441668890615726269494070824778335030048647310877953720580141012539209981764193056425735280761327324475289153191588479342728181223721569670886545202137172727183994822845402997903602737368787024093414259685404576659918565533459041373605364896185510089218023138995205662066015845306735628396502211106313248063824995378497219131173462882734657947799130068903035722582310820864438165333748540855276884671816828729930673014563319297650357209145989220169575207615259493683684609486364815689668437725824024642889476728358034049884883011527411471313814819870790579742031828609432544135073387752666475487822222711064496166750308863976445815751466138090640302480607189196107213089378261923794120072898647288452043964646262997941043782769147091774599537848672188866112357090510349580141274708173751080945656401741472104978008393919709456264975447612558861279310762754121979172638744290361779087216580921172890484417448023616254715310538322370622390182569836016665356618922068279518189068230345820130754195462111274426639710225191673047076960246074844872579313678580835594896570124806505915714036656789701408135067890102566907884149114114236400758787656549404382092735267666155840977992367761815405559544524838920398110899789502988612183022996802366633435031172837070246411539685810583988810526528860290925865782003586525133066995578302884508039435336316225982120772370746030823598650051052778063960403352881975091679674971386222563154241954130359759798581980055794068441743712162191773854075684737255365586547794925826579018562089937791342337558179829610141330131882998638343573501870918155905794272358044235052038463800079802508966674593033271387872769497053908487453033090898571073140451556296974719727692317645606947257326104371978893973894242141860910447864912940001873090671464551799225784550900835109787645050974612624731554667391710209927866908241070763508271554481689139938085220431742949384590153766933187192071701719032908143976841689995384694730347410563838904218762852612802676000822585307868024939176933912778098375510150708175265682177474996484480862093531459879840675546190195366421282703076878214245852946976404029520919934190147000433307794502856776261561761337608067171470542613885384266046159482329903751857635219220185006531774207120361355981130168276057911382488629718149969757784874525119492810646661908610800410466794496265481183602171518644929041903464357797446644623562771198064631682036335789001444764766644889531874679774019483683299398190377058426921657238566304266338805664184435751720519477779375680471704449825671887777370850765473851910644216913609103494467643965793729086904258718675952716994067199801162789865588931162007238646348003914373668327340541595466100065708433757959905183330028611513983681257783477238332838920732040349424281089470520505650819587791331301153003916151967052074718657589766937036455088675973863381051563318901767974143278914104863067121061281291877084799039505801644943749444669579992714381502187887557508091303960035844506388946116468622229676125041248016382613570954158359383238985434472698315328327714791233958483259121154630235792512366036746968082024093792013740125403804436679686913013729356401668072262662745293432607893542462438089103169617685244084265830054027911886825351477506198887323973864990571494184235064313408693200485674540420263571016213830152806074901215788106281053002285152396587610641775326701710147887191233784974221846206364397618980165111753754637355503071345796549759080447515427651284920934021612528503640192551920849734348931008628360590431566800944768841077368586656772862701121305231828619452630972186251045780780678121212190513548804348681593593445688856417456216494270377585737129360108771187689443309165343311492369555732874051529030873934544560338596894454206310333804595671252327581356483736015088940304678853651774800326118627975981556521977974453503390588107064562669035903109633103552820841395342418335619163814088385988074595101559416580180153526142812521690201277012836876269599681419026023260644170690031341170738712534137375927658878373325107801878279029833448110010039869281165206700526593749519955877473175731052247031722831761492038693507778115641514903703040615957026857063987643827585307592686529596418163330866065250783924166826164751377778075357487936486329864084003845228853889143038273483509701452074863942921046882925151299777423948760724407501043369208292016032469318084031179464455468788514906940539040796044994077213094915660200794920324784327987039996046180217414578910774991467458746244614498146869152971423930979868421609977617418685735053183475486495151349808743687964381899256480385843757514393985728039907414106903241864579782787692927295367113197366448327737687324506604012023201836715296278523652323778372712933996764674448681614182293428380791524741512489289682589181535297531662556875026011836936424045845163531407096072443430906671815123491214613486180848584124082310578496779769571123838118100204429422314911543036847347947496679902774202046519196273291300659258402592399607430041619241737623517908626679167360772386373643487359088654814396776289037336721836237193031003045974868376732925949266090914988031119910979571607492067216751461649480624788282395603782374990963198745243546340371356488068739123788429263019390628840963248654899671396744107622396169122064506266243919639194685567227958623056447001857207462611973628276777785886691158961925497029552236071190079134808135301045108469837838661470044227757520325587092672290860776328279944393052876217932829169654985368022077333022420561924568055550353154794199357864274444279704073925553585442878642652156802242422075464370874554100086018018742664467221016502708123090722776448410645652766254232054977140014971577198584074066727284381370664067958157435022950604037846295106451016342796349646361276596473427923981194899664778430014010235008019141778551317636725702881283192544394463974435853070867930089607241665241305896442312946964789373184325633492031948833151945341672380298651901839502629583659892101424421539882504567223309956115696165461594283935929144790897168810452900444974069892511782390948486440111934195780627523547070206260868291043283122958284520634020147427752080404451890119819007105112993039075998502560026085523349237662182276623186359935340466898493568844317657805311564882645900265691225482441481429824811656801278641418559359419318702823018735166568346054608917723730351589626149022116170716885989633761907590967622619574413991055712215765906131162516866572882347327504294607253319203433069523787564216031665878505250891644841821134379453769881098361149288931089792519016349806743682711783389768980153888871844936971436457823784375248758543226730433443624895158023219136530531464887037560479011575162098998100338852031789832580484401401466717752711129414277769877970681648535122765992161017311086446312149680202830507815390873803817306745177199100672433270077988767421619128234037221581291404693114540659042735405350034887217126292263524880103022546858424133197385091683790963245352643919413032961449556373367140156243840875869345323897724186157979987309141027778928762368939011038938237725456664184473512260717670900310441542498711212478532071883905068745090709647478470221611426419930584472053659465820981698507084057184345408608708587801400806131200872386203116605964320392658712411735083159842337512133455368781771529279839850994227288414917485402895638586035370811171614284081378490323799154734026167503386966191432964946837389321546444695127881407557087269460909317407150936305982970842879497565046126693323868861417563778393770725660946276507665150556890070936367256005483774692520304300672601041910096939812421718308399738614988441216306010112600425797929137733700345910109037302791851227778292319516688186116459915369779646305377651110212490219294224858134622726745994542141063848473498370405895688547851426255506753430728630387945578896921073987677641164541072521532559011189687085448825777462651863203371649210806134209715171746583559807313657423765664811566844529393817334331722614746642938932524787350508131392440159454916052316118804928233841226673836746915396518335620513076708490979725621717849903437259649493310129419959115077721183554376235021923847044338145841605776532900400028798228871630991606344550730340315612360716177692769854978477234755893909210503686000807144054605075262519824787128761851390297127482696824542018390689495240529408067477635417757733806403243168019536817222154638598819764275964829231874773132214812762574015194848688044706378397254894982182787861845827366073261355511758746362013416230420182703569242736431440029015940736821748059786734432597112005259255822294748728151469998108984672138457569082244531262517515777784235465831346927061038483826295525497348416118022141976755964309821745857034357887012132305830909021638417614832338489323504298670685721279219480000588675251675180447664747610715995168049973884647895182037868572110376431253869677188803107999605971653603538891938829619435227433289860036547536179502025706339151526353410861642279288443756003044750545688224407519958086196254312836874290948751904251258628737313507542344591075661744557949802879604370494392053894175335747855116825985673227112208864337792600180012714524310803543657374067614608470587954134503659341646485363034715925820612496275471479188806536598471807408604945339604380783290997730399222296370276501363422350172345286465090100895987693279008759829578802871844726070361743123890974183236834943741274321429225369137914161312608202249466051995741569866652995736914701693879989147098071917449811554631263553944907066492411856824619213829429321603807831695189309711874772310915172729822090137139044650667072678172632207930895770707448489673330101270435222396162156670242604126345706173742834358589732499955093124880838329566158485713880267336073584140204928673862755532966165902664097175564792064151370992697170193916522652835170979360542019614682088132867782346601863423642996267167289526204596586710509142552343694870999334548450048619275321063563446520197594971462400491661267766463575614805777593797289613240618381226476895565543798363759379862100002000527542383553176972897366293924751456105338080555373542445556930873319979829387279199121280757626510059711150150867969581213968838048024202099482934840873804815392103563498290617995753614196245185841461171953682935288299423789497294942540236207946891512748869325215434470337209966572117862465536845342960410050317471580615505629214234932864099249725190291262336985000050508966064531227744401783107901565219080943112271954862580151862307182622486402563031534407811899180602181012351673846817665453250603204655833543520464846700039043365459965943067387753547993512033006429194671428402119457312340924317140062372755264281806116421746721253114524868138349943339518892612050055682989521168181120106474827870920050445508848791755606748948030634095715665650885674780076711611484152186743016478014147411066694981866536586219376646268032015400066773071208559219436512786427781584978707528337789246592507120511463046151679364156306631748707751067442299310479069902177825970276484293580266497947714753640258911051370267515029126288077456597437155049802035697046656829544864050942037987119548606496590100456308841578971752412271281050721974763354672767683498951085307525655721095652664001110167728608428868760775854931635585733527604604044552592114423342652498456143375763549864189541345430990339273703181585002731469888324097711206470399390388682461766208920048023161607470045932035868603571560037049435909422534615203409907188529024587742801071781999253413259272518288067405267829844973358129203553126443440739828719467510538390162968433414927388322803201457418669717079841656610299591113018306880349383889272010202076704249610009247677434218619696713122732679074120717794678208810623860478794832545000898159649310075445487630889525785826936903378585319815682721020384995438305339807331462062492284754274647268687795985311505895967472300894721657404870327858265488854925828534008523477660094754041526403632882447411953074972436301204467530559685056668212365675220291441295240144803202866109191173840795468577655821347435374225064973929301509320077288564505742784155982575163002303369791097549569892117788935413794994567236393608454229106732717301465194384155380804927294888438684235053759477144660316463259875122096674588334701807539817904064505293319741642389826597670835168128546512930318558687969226680416068135084730060600050847395638974895927150268463106903278995833795008270602278971702033176892798072671757259117633959568727854264325625606146936966238701991801815955931813719639603487988486494401979685192088259472503198639877606697826180062375395362649892757040486605497646519426379658246119506466403966104721201019563556974539660325994891327825464717542676065882062736270039957344856905279173385996828705714403690223915828035697597139756054454279079055319950863709815874198807246357746267680066947589296255691560539037221108153167705775564263643231128278849079451806327635336125275733012596204454742601763769406586441283759209367205288280229548732817309388802339553008837179353973684583784176993675832208783625914789071365302728626610520795586169178991336025425724784318031005961584645006725994845290419115911497514766914548840541498599819505896500158763622204272361842222803738811588570537078810883896161868063188888741094084856345016110853570561168222971944774980218451080479584291025241361728385999588940466032862018566976126788938337591876705542783096459653186792217115910758240642046923344834903835968522824101928535044345317876347910504432478763960340707499715678353386808086518647778273846392990515994909064348432381682478258920271933675837424606069930813138744520489578333239332313046911013692456329978137536495562127597532589226480588735840216512546055489607773708496748306948417963820317444092620800463133196317334820289422482629632575610301214521548769405816618646596299997359872065618449743329111018723844757016600174532433186619304022671729061331200836669705100820039469608731674809273967047248974317615765215544319214501825816963806547472758578333384286219511181818461894647578550842274345439428567315737507041176658560331912153286478182282723515454266346577363190671561894403898077598520072690160329211689911258628839748237778081449842454169584901666705508536488613535022228698363303976390236263291325774548202225974211337271214888812099255501405487766504037259401052069115966885430142127130824368278879269700252535561546137430525724041466405240563737784308155574522499044729024320528965803224931940739291721873136810694156530763093644248922963376314385065159709255284189148760299258797224448188995808356297274944489735159792006223771402121122550894084408636811848201379525502077778498667197639087268895841287738931928837139272627026026671302613628828506624653199527196327240636579702121468507411359717551673021761692326429941112430850390326597269658447552619389122283378791106465972471229781604771513887232699389199280542706072027977332764050527505700083246394086322005312392860676447246530787186672192622121001478761795299651858930404489869850474394845166353938933568274780254104641998855943892689432910295815704347347067105650594803614150921480799910648271331827367594176790087142361864359811025476607744666955086911875800050199371389783316519388545908448809823798157306023508053988306480688327946973418418052277997158616366901450557998872506773488536199594847320155148160661701652460936753449850876539576992371974069831861196710629895971182881157907446910082922290277644478585433251836554522725832440103561730866374376779218214797216248734102857528431246127615631690551792053815841876737224122909620848750699065332796706977790998616475351674755414703738259246700397686013522320076064846862354090419905845039903359836488775679320078228450870457794059602643946160936736652511376754215474969857999573885233108263461799216889858285651918730287044856291535516375523458648951685391516494672884333645735215016240811122955563219307619926261275562518362076536253073029781925861180460754584942269458144137410949205673393199941898937975975879495920234396562139987175778226975435521302202548403766553073790905829005375531451891543539240477743931919764279560504186132501825656042273783594016628716531766614180045622804833761951126679596368803039726113696974403490902762262728304863144209552609658781440701049595711234960363628581788955966577519303579203967670568761555193711740969817102044815982784199683841507546404480264699202988176760153424130918571016382810438383568689811934599509595786862013673049786198700882422088278793185807104745187451819579621790315165521518889969874874110104588108245423805061044740775117818172903463907682077313019819210434783480510594174309389060363559507320092323347195103742853127266554631149612467520197346367055859321308026872100865751654337320237187929238728510720576958869454099213253148134635324004016329052081716812251542891112103582431255279553929370865802133965892387190928270145732609030796897237264518114667305053366954029675526672254771271303225083014246543916065240023530130990763493667440716348722093179207165897677068671773930613076064869896231043578460958800945977172996471061956204255895847070594840941883130180228415347812512976392093205530299197963267940163464403131166891235864162361976656676188569833254412941665369857004071916518128148973467920933348762722330275002079566101374638584182859847068362786106218400019125507025426448733748314452625439546382024868800205512940692179443696818990772385233885593128199142824060914441028076871991452837977774285905395935543523160320290804981128231258920484289863090085449464791050065774563405755181622389609068936355092331350754955077482648763313037882919531905826131368116428107401120362241266020380499600197984958050096752733486300371267576580511097530978384861078745127891596385781472418332858411491948537329354140156870277184952905902934844372176082404170941360422790467741523394075991335740627560787448671200761455074949521332481504519892654136542536741713037974025110103991485100180019117864961722857911071072116958234191025593112206450090877931212212300174179433216545042434790998156670553047430545742486672932883750879643167066937311166243908968250643340846972524111033729713055286410500823629652242175491222476198215476941529595838488285688147218000298402006580368257509714620313769369900960639123952851148130426297179145624206931078227069848844569472490251767065452415517323557537591506803523998506801712918507377505146988053543215509480305854474390852635794316043089556478926833216037848874469907327422407115524437304674788049895584362883369307880802094160771256383761967046761081462494132452847044510034607979742670731710485298796956099006216862392735055111093403981475650816734501700369092051673341159432271538113324461166335264478032214607836750329658528294990204089496960942948320698203518965512524471269183932763876723560664590090934312882540237283683438755726353990085053960752772243252753270394980226952516316854410786862358938765260908617417800768542814323734439324172225834455458449114143766156254156816792297670203748613522111179497651371993769009616060276686225635360933236211523480119212467111633273715898015859222499976151059634480359720760217879546903701536944368274934091464922843091127007137881048148378321367659967782089070771111586456927118058517725023559172611160127716533392561826543349140023445353275078783924433240059363937319466094544079167400342675187554952995327135251510730860927212448988116213005756415224620989494151292063963135626993244047938543378047040264733535636688902968636470364561273392281186489175684672641327228749328584810219967426428235751109255224322797867121542444163001709914766473370958840112782088698759366478910417992894204085898412340859175096190460705681210672354017136355547071869428030985546566809522976400095365886800925433998830859509443012766819601880607495112914097384850518772912871894977133304500448970299716771633937442647498707651009462532626569280270943599311733920805528386259461682169468138093869643274082149098201708004656443593482191478545879962864866253875837010871518350462247966784354787438981266978174085244203532505940828076365452101890305690234487820491407522759409404826395192840649348791838531580351204521252357054685031946766846722391706762050178774888684324357851761962257197156685273091460750503035067982723294661219751557379771717266985969789272491852365494326119357463746341889073131657231775771623876513758391914885528271448159070514950573666807150718213352733666710306773384664522959635331641327311182904589183262962213439198701819688625404283800435233660955693323042312792648008171635995631753083011812158403347964871778132726497258852466330813729108394319054956263488431152712712497158202143522251518696710055490292334292984025228480712640953651581908885801837127251270769900276345242955402423934276430904048746328305553558762934656349523771165809442365435917378189729121147517012688209246697875090045189643190533553283679482217110995541216335849511676634116248738678677515149599778422855473411074895705156027991547240640594764184834293770940663138716609781624535323450297602330978073449860359732658792049915433591177124177815210293596212136815112353042678573243282079539243963697335426266814254445845825234529942028965509110372823611405701586331548722970090086870334039667737389732918518272320817363966570294629903368883030597318888550945215470946517642527528210449255870795977441830343325210477891459389231158553691789543643474174984074590315441973983282578768747613488167452860920333515923776733786945716922274664857807918358549365844514315909509556661162089077880938156585436458876794633874700647832604697890341506216307575176633072578226635980361802611178396084077999233814842048720912464927299028663723644297561147192603492862270835836245482885184863514136333990872971509053801235748207656463827869862394942122374473724069628263834936752411630342167813818053250246628020144993145824532047244039695394057182527463121620618305598694876648179546129930848296099449710830716624419329837459001957762702378335494128573339979388071550031800868511782654965758382927613875506591333310051213031283345654936391802944629757568488405849237754031237957395437714069228997549786433071624603695510532627063698544299544924898850193444072102030832405564140196304925619734251913763314772084200671309403885621098332771232868007692205453077308971849067459526964588155239516125943442611610029549820597039664379283833494371717330481915438824906377268798589450101638022975516372497482593962755611489988946274769959365059749622302558942803219383760200851608827827502537164566667027307008051846547566708603860936738704415102955658945873351358442032558399865157374043730508306853775236004511817425407321581839779935096013527674277515063796836749730439613292525816574716442954851602680671846165033954094915305444776491005115655762638435767558476566272279095373810796201798631790367273379420476397172931206607982030574866842862839875160455415693989683811740746369051269431530823799624468451580653486517359852200416510262968870082778616015838581432343696926079858720487658924390880860984943540174506366759439195073018822587202729291521839331436230736177984405303908481218511717010656344667901262361035407774817789508317757458505762847897951793791504647614489934073490265023689720986415005430648999445856313529406003752404559245235907395121004669675040960182441459166772961869349162045243123261129263617766173010075030534523321327915526380521409776716556826283993461767745630014545857522758676067413643109001047900242102013682119248191642940623338673140906544098197816288620576833103491646049301378581620180334063893851691769352375669830101621648150016722117671613398412746864727119144633005453690452135898844400350229864528361640743291446311986206463471105285175943748235365834860714828956530249697096074544218183219179769237441955312136909909139568301278755429745485865341492535546643193561403303244376843612649076515295512947933449102029016152941755251812508116651882443552260497802874687009815525158533982992946106537883719453860135860394872693766257446163978806569869102524034809615739104649276163564031989256901457677022004653847038529337155029634278875053629643650408179565885095195403464891585405178338511961855185921395213076097405509482930613966097692469231839046241084790635328584785354768353522744044824087198374057262285286004362605686208703972676849248888712436742699461489509510866078557526151145765080884195421102460108114567930866706940713563410997973955603174934137685201507500020558262935523645983646122828375188460841897469240340528984732718147044585682582128673578930658177626255663186040975577989551229763276539908116019197871309737121961505103005068321039112093629867632725996818611677585149009277561814084346569902752487617227180815901841253621580682441027440562808092055300681091699225057093291700673943559866960376992772224099095786986291319195378847742550424692949949066473266482369810772173707214723175237763148804395157814276672451949044577926814751701506302121268046773537276353042371523301084912673836417838255405952894903889064181132839361019155098312648549368910515768384726783588953272247473540546302346182380105726610639184042805775893585521304929963616696445894442851844477512485423552264852219796649834721468744112370632300273214307703326025732306447993320339335019883151503634890691694617816662737939828828789058014913942884069337755547320428925447651799300307919964505679442876332939143549856524415317182429154132488274006181682988939924543562198539158772620307633889312087246807323585358682007387254723221717651640703244172468757679371099367369516909073588749750751459529164963702348732790477535869830231887496658772619574125424356599952222152331490256275382955444940997653071072286601273734335055899146934393180282129455964240908419693044222769877407050070961642382308007124775894035071980985644023443202183146184761030144639050298526895775966597886219847469015341366738180152089398375370988083468447596461754598742906324166826541041716947098172873832330181481395288803817039743746606362591157923269790004717624192800596110925758619523750169643324906216891417951850010556064437678438968116242321771569277685655801394198555765971644872646213410483211503563661386174015027061125667959431599911085808900960102464991837621917963562497172725197574905350009006914128745003040153143089024107285311269725258841496473136314909404012589210108852362699411726419213553127241256924566865022024230541409157820218922327910271995965816168710979387853927539697273244322472758135384635455618813237712296048445075361144975792130912918669540708152037305227591029937228192093930866831933932199294577943196314471004217411300191632148197843222598056454911833405550319364590551182030626751161134293590773640163045811589005070783255345862808476257310259522702011388237881821027393347208532970081230773456953811871380751041505019571703208788393364218950816178637617743533171125242314357859982231456173186891092261858132484983772034072185763297860130511713423709692758943180162840411858236290036199355528577149902157394850194926575698154520736144882552626551748208042436617490361872416502067049486203557520286984234907803841494837173918136422874307251029317175918386673203127249471289835940460574655371820386235161030613338141806068207728954534087855153862159915067985402289690383620462977369929847619932839238676761124211771074623472615633809301053940519471816998582466743632265656572877402916742467985641121981954168180076359462339860321515574346448061672010164231813248817741839104705764607334124949916801973727562170785101777049130486962743114192591178249339310659860630004783884372378030327239439256743099547723420133790915007825330287490960511594678102926048086255579458132091144779252812276868454514659176030072325291019021186090621165294359209055735003710031631692351000525856566949226402750422194035446686417241112845048275215948887866952552258809410657889145374929492348948100060918729548598077698383136165167385737582592435140097609594198113598115485986041947503914997523580428722537252250029264320962956469817706880695644497495407223834206664063100211182984971087386641930280157118168512905499710662817955169238761975028358153979173885937189398216659475502129431701614711539260319765538391534657366566761173074775211239110183637509773915425967301790526577521921040777893741018571244846099571538438429221067007766479831368121674256385644010543748864910099409891500767362562102011404776334876134264829286767291287762161772995975344679110251349837187669448474700866785057549776364488825292446623314656118845142412822262801057260690989168997629309892269003208475258017005481123034061899635442746366386297414355941814441461563336768922185054535003100063169633770331599756760358138696097434479862090017590219852157062235930998104016510347867796918745656633171949496161123157005121905767217406702779931815751597012539734219883230968733375263657105926039549742459473891710905695119604363758814206483967459096751691623602485415836677889589637728949221388426548585291405191503149254328216916199449701927175676910712160746376004931427707527554616464635095698922269707924957416816384412761716761803315580408369065813142903613130120085944213050987292263236997619573148140269083465317141316395430198991251629807439838407278369672409857372484780108681841040889178172911240693561319149968730422058744416195208918374902761329683562934414118980198514909060862828334643164932722404272998682843768749470573215752446978320918428154539383301870372769700445216491946294023934363763856987271698340871770037101164767811275822453945282693083463486637896989660398179880407104774286756537393570230007372272297239088630299223060769736053183746384653831436953359482969823417743333380216672060683283063801235930541434286935602677286903809465147349613438385324182094696128718132275123210902220081574522196449402049042320231723525331171658017029518770175970648891202818776090029854778027128332451871948033436061248580745389998631529460631436321382791883328663925930337981193553770752742081011216631003810309462282095217972377944362086070860308854540311885059377571703311937497313668152883973990476357240761932156056183912079797830601748000125989211931615838257992853929149387356168568083462207272119012316155594262738143789120081270279803699263166990274100736188017263888336162579979932308962157254197319187227584123456279407201271144716914865329135622237532518685461267079850738404319150975620369758993236771856081179339336902005469745173181151254007215699759799196770116168737850173696081415447559124365899738408953561512472726187947910290399854710859749420955272704529636435815922606424529740269328211374124120599427151653147132634675712415884338737757056025328353474349690309540510725757476774324593778984204263530474889304698150770796735392550859253417858031516180709822783168862042583237201709378694848706479473348157998080223685832372827635428840386261167797768831367156839244343362522459331592344265220342359806139669461200831011851485323499610256702586362239573496517458385650069530606189595176211205370424679919422680803310068063230080960916235993486942813323610555951783954314484196721036762476440530655782267675243418780431203490034525240760026603253473172619211831220175810017377581714083965696691356681847308839371000922770900659026361463305870055824778776832071801240298410645025130774603868031839490258086259627489675839867328946821634874366052761798577258553830015300645099729691925909610577300553352013518786401522061308084851130035019930644382116794548776915294644374522500907680678017812769506585847810719227266961330242177579094714948706501461632689970312173214920207209383648991538923010972067022417528602067025875765839142749676506009131430283362150399490667895357176553739587561961847953368231147812705358232814218090567249319841569043033262870990681487437704898170173061771873629996119853630617289437358898795939870900234430998230685983310246957831229598484799352082389514466657461129734953677038279647928368713606451859262118386281596450984216840867582027830323338304395498296940622811429209091736536788474844615334056759753276613044164572609256602072286715108291881460397760341337286313266488855032211100734937343133391683706965461079541656269859143635789024423863478657118517787124488486570610123964890753754516571837180851307004311746009395007254033152126671422666771570256850203038964253190493151112419575468662525088096351628166806724165075085495596787929992871875981054985128056824495626919693234136774537915779968913111435801301641041888181730512786954305635015248259073211800475777214778136118203118002918699755941587873331423742178161826395886300088501436422397981858006326871978578587132177013192800110204844378396916301030326057989304139962215429483173810622606342045240649149732206121064184605805922533259446107829944707701549192113698006520315525102737038599338998071252803844160828326349100387323334033554985112370290908974875146936583686367429643960800339771469575321965107845286974300614972578941223309171696693429385998600475979277434028934974269233160517277780473943202654691330553248826871418271826473075232536512994923925104170793774618056991337821967602906622213604730770557655169278212130126656363224423076012152889063525394821899411358178954285125783343966725591507437642450483406718878971296279636885592729915344309933616265244247380381650684067127019527374513544432601351423655401258909954239984365917344062913912226772028946077337203468010661657637312334745130395823710648805614243588205088555948967998900965977079234054600344955619945041598907240683352664486216991801874690088063936926220759517629059240231065069365870940620425448385531171738005880723383772847383185751956447772223695413378379483708150934716561910770986218059629734670436735574478010698635696928974477254584756833069123112067660582451478196558083443033294746482574065831834211997586019624192319831917759691220055506068800571941965988724297017987367644873658996053753575911924271440574820905898571252256057208632018707697433400233640263595925896154218084085166478254956939833493700314140105889849746509205233648114668670836097701307367289809457813796185402516044828137307920485427251358090057069622757640621877299534346775601978619459746059458813658331553138625300709089690966250214349115073567557817510005279282825642296226673099545327006898898707226632283893611307119409034987108493399719411616182712959254763189676736724852524959038933746680512948194307226321407137555553738502536046315529844148219583284327432033977255009727035615562406679032611110744853329861433582074774523993078569094990352331155250950157200443014613461744711682454478408678562490702147111087193612430387096422041341871176413808799622232917402669465453057004220766637238283393888734932577380106753365382485547338039600877478025490148228485500867920767041747009858766933978503008170917633088369213845560452108420062614089645510765570723134262886271001935096142279816279457258747154256477631772121964935305268259585429364691350640476048302391463190404525190170905514604402505925568251618092468505112878369434557746827676489162573362004550007085538700687580238140411024934470859156225995623936546966018540541157859596671469867844892344774553271582960152212980338275165348316735984491808464948469220092928155402725982783066810566148262003855825360616008617739405361511510060729717854679045712443722064599733518736237922025877384024576940220994111003790641835038222056466831987630960818758971264222084241988327764711590305218040863229096583091546544516318233693750411257800088054662958976741821244529821086898458323031341018316503041702923098426342450678028993345880173572406402467026132384999372924468725173735097628075128962470818548849347160048648836154555699270775602004496012261212499601033678221624744538098456185180622496270963467570297883862476142884413010882648487227844707137061678117397650568200513888962322294508396058825855950692538989567317080051949437267473656515500684994734493601334469239335754330426162098559201198456761118829912446420636048994394135441587771456578015082765115756903651758369099980864802434978188479354366439546595195103152750153160983588905649820414405433021982091805711451747659077223775542360056344834996153734853271085243351507498643649009365504484889856541948988599919609946891606269156754426409197738454338616842937507939267102362756207239544408419696235640381833730614369374178185401595161518555483880470344379705095378458566324523478709530841993180446832871071729966515350282847031654859249460436277614691334485094439022311128071439402609504354375582045763964205364685070716806694199866525071878973815994504947531646930786371748082615833892226267409902281843100179629710740884153981522333551806106414623300429749759524230600526778471580825952804221699627524792852893124936509493812261500977083401058309259615497866580406479119272367164843356643842295229806515187703180169797535306600818923625178667054062681707930147586895326503702125250704452178593494468990480780029799221977392339309656150569527739075715683174022167598648238685036571939145343271896043309939092011914632632662720917469122588046720150265498605110459499614125619601438502012148908488182045059602851231907836904564785526374072138954166337730358558932913458386268616898412934743263105822648157622186298699811593723954208370210187563542495014302257295704846095383007721796638158369754029651289885890777481302171136642748953730767170407752755942821592176541681207945231456049156056904953294176574480556817401812362707027864360335514301520732795366731939809091715389823072459336661792020808467409738767182607454122954000178148509659528823713701798372575553427341518886276573030286926814588468561017218689120886295188907550879070992140875839204435256401949409941331145137279813021638511830808581456342412879172412268704183750958134392121883265675320628825860833625663224547680536455074808000665839940364843016511558611986168098425256924819257102929631590287673923485346366449907466132488077264329199550276144933172920986880647255539540151901022871700048509493276990579403760834580801795317921719874596056134334661785548104398398051362776640728061507946038751188707348457357594154129853312395055881654736551291963319238798904734417243773812078322536184035683337422862314847163725347420884222568858854599963652143560478241100440086388990267378956716384799884777879495720193469925463918832222575754799264747789366059857377387303748079932430108192682121085501123084722843752427274186331548804060159971065383562355459055249478399852383602344166407141532800199628060918882007863754103688496995283708304930769165232994317598886308488969255187167145864433170058889839526620958692806972618048501759879224406899673292355518355115127191921156890327280521963987134517478936395548203300624221350681072042506780135878815297878591220489010174954256192909535489699206820748981205329582133971334327123596603819849789121702163082371113558902965754304100496208401097140745722261433829186571675487507770068586837730482636340079304312048698526956918361054813233159795880014796966052428432096141709176517454367604434571623476355447665044377130039685108761375309466357262707500804492057415269289857559605156939851073810410443251665021134070509230845051468714612791903849270124575062148270275439032178642559358767996196615293368780083703279210730648370867456189151329702289060423225209651567077670987311527978108958636611783618573965883990029600851420731065258908746868977983059500491063465277840619831262102338935768061869406356953335894095735413599322415107488409683307703262446292845289225831683266329491096120479260570853121131584112500875852438514192495269597727896143828151417049012904086682496191234666137226592757102974490458284766021600551906952268927423109941002905855176186974500345817570682014795677134941076065413752290145704727216387038906806079617859232744575659211149820982727722454181621127728813180162349609895576031209190456230230061038732006167181743935293252802431760545871340078596933640750360871600483161345361861643791242411840686727603344277041435386434279450722366510103342468988247249862956108194595272092058068118713216091205793185212151918043802970133063676784097272145348174316300869420765360373859042399732195869994042616676067935507236865472636733355574178180677364164368420570174704937389388188666026991634122325543794983186965506978560020869296624283514822414908702686704881996863891613723871615949542071696551816198276935299701507683920776689797637689481488514247970487496504528719889515024542646420271806413287966739914488935831044867582767241183305577111711872063797653476759678390523937417597638422961191337566074408511689321737388554619301334293602887094737484635935209809530449491373292985092769383487912240102039143074105080171235938226311726624603377931549802241129545400884979109895419752138383377842777821690444158067358086853443298891784286336559248904693564794272103723135880667525342606755232101023895073800737494939754917033071902227485731510222178944019236513591358008375243705653990171461084439942315607720456082983256898395769146743432042435722466839827671847809038311261525877184773265704471870348931474328120784274638190071792847179722040646603024991661867006729052246985411966391489959823698913913764684139481387347542188131874616443434494326748911266564961121040819590313578866918101364021240775528291079989681606564816466803422794365885361052117688057603302223434682251281478421860975850305802120247327066939420919028713690293508685729469889320468452145900412671908528176022644768710240658755050736414085841081639757451001670922301303719221260026951169794670529174695595654438033815117453775058036869042113478524998276705868564679624148501752775245205222120738110310166127615980980449546298405954559948136208637114789087819588080747440537119510530069519432231301462595465779963170752920282792439268668170803533402570642802169871857920272966944383906694617201947551183122586831898752348817465513063680737949054513898707946709056192552285742946971631760148656839040861846119472172632528686433326859677741560673181329229394494133061715293447206893566414719608585611939354069607916964109381236948193746149992997496616710207992583807768519970505920148168310344345066555967348838507014471400543112970392305786746941140738018016727759251165372230659894438705762445487528487980954325069852562388161919883776550398156794763523904252949592289715924634751300706134090619599078228706820332332114143256989264289591907325108196259988226580161062836322428176683203385355230534457810919457402428653121581188244188176050700663133672284850889897786329470000771575245081569717051323386088550557369882512786049157675485015263790773331317105176382249562763834238915011793268543088100652033507779956996439741253418625643690589397709964691097637511715575928522001194072275321553676227329447374787436522922114674596883143910513039161528624819461134239513056011523642244828590601801264099068938914452248320172106632315983336019218259054206293225941139266909686606454467403646150926368920839869501736061775475379137541447048347005165611122349964216948091747921130241715091150796500197020565693384022059977488889503480835899789523665752453804447664451099309389837319896205398147184012073469222614629094928420485237162623923900820624694584917710626478110399991455426083342176298320330880516486800390528550504485593420419831615923663271118360631542195790075998911595238368283996294675114249129163316621572419805825312582281151780076752533619048298119152730187911159349999314124318603332449720542467321027696332532202484190614482368365022264144577142758114658765837470701706503411923926471279076793529874681307718179824160339940962337901366743429071253484771422153546749172618201601750030311774574629441660637617242428171475627273943157595046081633682274841360765703463174561544477473858719004683057032559436664210713941931798053831435170163422157029448882136119740631603004376191014222633262808698525267231273922751221614158063916481113695089062621400837081212730723812261334212233011780900526219802387594359047752734248783718482517759700893141891205782173105640071069522593795815504740139218791316947268766916161110575020934602877221572424452964335888716214047217748028557389582432270811697173083030611361293154302338302645717819449001602824316417994062699608251063090699240432141690887827902086952949245817513586394786908474658198429001910832063303214316339370184979652663127897954536504551483493321561253775400658187531294423095125449870898530993288236717069928560548397108736987562802071419938533148774684937292253780978405884381122280224429990068443359746254438708529729051611887316181022320242621222332127713798749900112720369696790447249857698273817183553986690041432969762121161600778424133519163103002702466384786711199126312968321645713177912193523831853213819015307837890078992956581623224826605177039694033827394827382721908667121283206863296494583566224493570599691426128061374583963570573223512051184109912508060985985310215260720977932685712310436769986294771105301215036847858720480427542266363700233231425493641137256561375007327040681165366490573475520022302667058383987857934105313203103178395608214787929175381255065946735876848969692496854959852844898397813336750318489554576428900570639777302326111278996490816317940520574038458987911524221975046211094936295607580811922839767472885590362816624579914980780376766669148240239987809347692165560651471551018661168612216323298346440212285522940253737750626359918845063982102122636029712732760664141631497097617517237375207868717646735845912479997194609732095543682629415469272635717803236668202719768449571852415077481741670949359534150410877009136848555819005421441136973124147073090114720014418585317544209128087236133232562062873916952828084255943945529112740695457301373870644252561010388314860890753446846819040163263664097460409221440681423088890969465568889084829080603658217940049512839767943017563599026812122585443453206718448852453696520785900290394809262196454863107206853769987763748722490346678278185597473802929451051937763953780812737438958909812614138081218371214927006794549606339340628135274420861647896364323787412876667372413374598830090417045438841271672991922855588479635850683987749321752914218627449222662222211326640105574846575000627511616136080379192630907347579661995248351904662334368745281041435716592027139190678814194381007426851338547746688268158667636026045145380892116843664485390231130711936697869715966534569758448888154433332108269708340395190804612251263585225237451415159571131839911687988152740356577067552973336778111671362426674965422877340508930821404739457266183681278981229121591296482804565468557041907454689335062453433258927807098600527301228042186755314931792355967117489388087062348230511581014806363590174256880696588719275408729480686086612067419912155249955084995078328135305835019208889034913661516707726957788804710954319027264332051700363865692578895354037295658137953316660274230725411049235584766345250380434737399615347259098569085289813023400649953199833139874349761566835773725394004540557856739504573879242580984678273910047409875574611196951585572691275136624327229772527475779552246930487335135006139977989756020375023490041380800571078002681994054450773190348328575340150453856312040347540877998591217154171766303030674819580706575171626230045639604951574891790080044664624104729480587591930277666706389699227032543655964287882516120500570986179823711659452228770464677152424854830219390251182223336974218148738046128525760845519111496491026207442784278560651648125624881903966031350563890489611042296264931263190680918303833119896963104287389637408900920741581152730412083371391109766535000353117813779597370111655026025251608219520244312779754122103804955745754857563864853176377964080382395164903691278593033417756538973296846429255587252167343856688268513762039941685658542583394049690818953976439209243260020527018029663035740702302796183194040791641876889807582872575064678105965167520387361524800372494889669528046264992288326194471044713904735762502548857592325915397778262393445155150109031206920409114498758309759674685762215041111248189248772364186481907466000414500744345423605411419542425228320028014237517425999627983128050973403186238123314716317530027873249302001330334284212944692215617395323616267015066271143601887815259237528085008233625196099083691852726986045484652107717485732124963497263064244335746991792601595639420710043637906951865610635518412160597036081612641334387868513532421178315895364770514773035194379195031564382760598125098912067267012723138507140604412055033021609595853209005065278501183941119180929121195169858264143974936722295346816446116152640048604492623016986523176309708572455904650203867489410201147344317876402648109505157749841117998967835798779491322941448185614359049620932571885013324217954242191790581177232700105828557262704449144287932424204025921044928819684231532901727508992778463052243375324480016765077992973286257069263357871817854348183575343410756391471423104390106368182000067241296126360507534894971219452329787258121558032230253128115485194197376751237554629806105605320606157046183113584652940583248920614405894445144654255342615471530709418528004888568155100313025642591357545703256170379073160696608663297373200943985161537754527336689782700879565967840302804261822433412568210128324412296456778002723773026400610434516457147859449499506740374637350795711970207163201259194550957763016433103569626881853654553439864134046822510577681812851807362820589695596825635214934480229888526868098150385178503484021387542871163962318344872946140650925668011150165983965938831828897825900168005676060674764396199158347780809421068523708795962015284981556920123850880679070442839104487227622579178044847416245515669909937343257927362965334148401338985394031648631699446974703751621046215296172001032137050049778523038814925453530036877972106170049606434368596244894660583508196798282155252972354038391662807420188784461840175549713435892254788082886045372913322297324631988523091963816981172762227014739160751392019606378402488489909822551085280001894258079598658224563049550021441131433723496871213734353750704813276446989044191646410960158194514528903154550832985557156643548945888477509957220835014491749865586047343213296894369700938701901223694037467931973283721635739537805244639831234828068874320036793262370951514848188538784432967889287214790311637837384763555181167401333305765945418092183839469474568934317558822437782006411734441857210698154319544933175569437097592233293842665869505023612628520581367629768780616569969650969866557333997287046906081560853787346609436848547549994852897946785577872710329786646036491028321864159701389570171878910494917748148374950542869104336288841725983078121804335380009932701020061129068132060617921985374775719272906419831287355567768914713818885727807291262568894370749150920542586213685421516884524051250262290780433716102660932311159278676344928864107481575577263652399615337208968618474244670740656872106334480653700614240814118577668213534891794147925346506956233536097152348251225867022866033190847736385176780885318840938897629630096894415380079809393053326569014448024155211253906089196548894337091920991691932605158311371106211429994058191991179070198598750551687940687390348372283346423391329628005109054633820748179901998618194823059076136700156342036212097124309861604702568981714089532249874776263333437824432363233271267698751467526330104552963816736484578883495065983828672963959459799153319391087742341679331887387138675033805720093874479963038608545132808741323866036145135808304073737502122156083252446528675655938814534900909474113629058031505726977497872859683710228797319570043714660663128438539960074271402169975563870998616102468550308531057543571441240625490386659982404482367553847183344869694245564649844589897476838330433448818805826271069815797651553330009437381206529941024201414486354474786821827941539486734896401082705477034114586916555168236090947233331408956872741812983794738498285893856194552653908869319867478246126310946932459197448498120295686138284278375034678894927536974861422220273956172699329197751581368104764014991989956805999907434409901606282872666068841825943430201001717269819434083387237374713084257868488931357428862690691650943895937866341544669845769969079300844424161678922557212440152990414574859168595044778967940642050572395959660933533805995709230690606150624214435792206296721266914045020304490274158449384583591657345657910117056825638550160631510276099923320104699965233219403222661812372112401610696724711756317885731427115865070193495747773647339568310572201095722457430920208805174787004766273679051554819271397437378410876241584667953032733968450163143341664482845406964997996948363750747409331462728853436484295620781121323694581477070871754180100710986301988346105807906290249377064458243533382761679982780958360858592353882828047401154736765804784423396901160926242987402301130101638110782928163531449316025179092619098578721107742814585160009568970255957091433591330048727219655154375944536046157743368103016628745270973752874815947991941061059876503163077574016694757532464550930495952899881317768371034516349469612987931474600610046251009621026834370037908141619253192112458246102343853660927834714138284403466637353021033724231648333330422158756503992249584035450310031055163538942473534658476237092718054988445920980612063819407201389761455223859691971985265860170463597843166270828441009989934396652361226242676191520730428588538579289558511423367187331119764200111406579100509198974511310954157486349260532051860492628011247858991437190248715168369921912172116843493696260300047389605054843341330319549384991798303856106800337397306536383503973850070424340913002820261674260359549420789541858730636184934092535940432244547833687810563316425282540488424736188818192114984159050437397263450686958695557664822310695361033244172330738691671104966049338865649655461766959723250856374461336074524135357675872750615258551641313818025434987062371343748368797161045488234244485198895693223754942778579854509955026318053925791918895553914299958528815978016565628081128845616633640992041558533570824306471080621990009279881242420925105745724448035659696487562169289649510638172328751590288140103242135438026182588235294001951213708330601682887721117437571374137290409115359763235003125377645288939449896065593331844637654719122373673118531200718193130591120333438658243933342501962107674391924012565791242533999147131431767553947243131026113091239040996116279028683318607253879265506929680483217326664127409304652409518462136355673847101642042326208474446088993968662123782863957057282081890103430426722215170117808583040931111550269544580187791345519747415251741417666473572969022874464893768967263704953734998773039656013032880872422414757467405257036909706018443564129666401113035453546548773509402553195617235422858303968959858121458163191337094360013268034529924472886984992934792090357255223388921082529025686160736554037178933149585988797175244061673201082577327268504210354584509588935952335671367699546833920027940973329140330211548546028003328508063049272395226207927168552862311790841032626986254983964501572226073198394360200475246460817904132645827895369519586638088477379478936994587225650516797319653617957628333250775263272352848406953778945931209964252627446371396016562932556791396686930640962528160258719868890876711480065814225498397581029450784929149107883598224756032996383214158832305807792199299463944813608691288829312665611535023822133950812130709005507279062601186500010048854207137362004400573588827536803973325094552005609132768642146853730522758630574965460150229745617155814455482963705947424445419034930864027468040899354345642185891649755187188374895714162467515972762949814848166716920531467267683991443503626058509264284628569118481592434182545353103784910758238636853148420071412675436858927570425515434181510618104914186902578276872999587318113734447714990639785591081578399675524312803106953446334219063134513469069632100862436447113054680406255222484294989916284424239083400293496596948860259709222934341902675852789927556648129517443562517282522137268632853852911666241843428041619251355831563213054967654343563617547020448744170152827529360822137100841419081097486589169010163063178378385410548899221383865957356337032440005082651298611249771991450964803927753287521080867975501353712142680787181027861561533089502539095982869935714085246362918970791288220482118463978729936669731147766461185340142848758341375484078094545740691514571854370625799675606179923404820416090640083268591516333888061872202083606246583759204509638963771681939686212183854618678001852742086757678227421567513904533153830966651773201031198627357073967875331898645470468533523997815346554599342831126011025307544324612627324112111473593635412540726125131425995772270305832079917884182205151024801173895531178297898754274130450212239536113805969056534797037194065594137320093118472678177632845508474315883129277558915501118851125695327162045930074394001025996854011673005827401700810024194896277326618117013677664904839795532281157821405265424879309030775110509472828322169143205405283817092747683415631263148124981028323392310918313295818981866536494893239633497669898680608954658437572710832938204783316127569995980818612931570238837345429306435193718418434633491463209329638229618265517527716093501585615482671385206337857281324651083659217645242591031325141612864303728512506675735569827501851675840101993467376955919368838239937706388116492450727259369440539258018388670987520089041821468055487201661359710580548938720526106847400101451922389566068861816018825924369709908818550706590307998306397816696159871676969940828018744718843331839111416602504301366620252531299123441479323164955050625608975166984208031884398462927406554152012365734444925880459160010585956315273508981079579067928135565087030247978040776399945919045377574949245431118261000023445037999361312021453132640646450888494415676413243486019984017415523975388966291233575491728542873178015922026638874390000007580697733479917141197690364415161036999514384189652003989578421636607322268228623318382440165901472995829460997206541275400036363686610852478250228195700402266205236295566588543382870216275137122859398042318921706668660775153985304559860201570735747480856670272339199686657131096237953653566433690645103258964958545045884480892484234410739452277023543681992990725152500432599889195687456395430055557521363184775240174839070487602805528734487346739048954699911779035733538276410295717769825971157609680823007910828197931051350111915288146295220834432303000035510871071439419547152454851325307649856855349935893084351883634642601478753350696512977473841554474848048612259398954377932965784836019358046241146735911787180914320094554097243172982762755847934953014835868493746540239522540001573773508990306524568549228763025716263353035233056882912034042245613902099974615113615839663531280715950718261624103362227792646776729435655336908846519188281718281671015300259787573776760907864604329788686115726370773719980592164174106522629047766509986229847531643500948528438666836096215863663864090917677168840195263304085716000998631946368201279538310879385730516984589285436065570650746293451013437152088499091705178229305524863254752968601435789299479939658778099165604863912324003310832773534321265149124341681200581524324889048046121094434681935398025465043131469279684052579417999998274477127195094231836392398193100923772130436745006328297001069680850567815982715711128199875133849696881160618156263021007368588965078040583528927970081841029586662140876800711812359237545615307977145551349133806942025850809496986971296906566254305539304690846466019976802231927654835681315956308556744445019121082975351872442630229211928467014233615498005865440277316613053893909787037925314715276104983946037708060956454892802437590692910609474665994668018116888447334068026528390843126492668524555252982171545131643631155529499507749321254273429680178300217199775223978689572534357753739925131117507158891757062518447849897854901119116002088454816807957665893576554865643775873748633624368431516395638476957320049505580959784279917082032497986528546344697176978671736466278496561635302833459775031592799939878043066807656262222546430178516887133009542933756523165863024787557345058030775090668298226589881438614960414821446985175739581747673144268275111764933284285935833756032789762545919552634949280544468786266566289186982805009553007064957209708055488764262159653136788257263751524269396965985649627512900415872297504552798797757120183171477731887721418969028895946230181510698723777934709891754927001139794167742477499561778451770691154728122259256111557476905823136005570017944517401472073417166615388151419854463293769287513504157041493346359774344281217088231715169836097590288053070028121340678249426861633102962952885672406504770050712957712708405309421818334777469787665253142066620949565159898627511956907342196924858888887256043355886602049979201877010616422672130706261905751469328657511755647323993494961957416428013941607131050215831533628182474117780124925490263117900085109369558909468576566162404076096007827796308082678523349021690137182325822805057980502686426040399111539782852611797529867349026564192941548826675256492082938427864654225403709811360357620987211653055481655231755930146892806531981445262210049843900376544241044493686658412140680406766326881244923496512159784627358458789834520280381483916676156628134955483682855963843105644556174871181236609918198511317711034768030242621378570416947375904071405996822750198699408452897508701608856115947846152616583323133528806228292797577838394509154155237790935141194250268857342224765098311273987572254524645414146091682928298965691630031140598650409280213049038421714363512696662596564300705603914877970029190800385450002638585471827711695875759971027594532521393695162183527698790591450538050083544518448751210791933907351063612398682217078388854530168489134550013535356746986604782376383440325850666330888783402331107828060022415454010375978126254362505775247263702303614549516963825641233465638428027721940930233529603415101639004566175163119042192893596421194577932040196488695706130544533048015961733063971094459770106889078077362426511928771099562530921992781151305021012878147023389332029767851984632521856178020358946016357547107945844346152809361533729398975877267081906879095412474878268254248109386666901236861869596166455573171977411751780286212946477031895666466078007852434666713133898287559771073145719356847180519194279387368488507790059683033132331260101213160513425488446940762682455134636820571886307590272960201299215069490996847615026776524487070750055001629562016615718317731390861850337973896130493757911253872069697950898777926072974047688549191971015514119942418372147037848099301233286925686716212082397252643514547141151287865751767238333190124325076033973171356319369053748786745764744139794048515408446121126863041138272600053007829811194271665658247423863017690655712322512950164018571420465452067548212352784428744454953242652680795409393258905071394928404470651893451851305160398997461706656311318040402857742493938757822038095677471871440345559884526464170208785885487397816180619190694322725415267180811725548648282129332275425395852373534586859234314247035572613651299459052985258511564984379688203510691480979237691905521313915253678235014574267707276912222608528005538230953561293812736188165867365864237809140334501471305601499143629594101143052954942511683613924583772205055141687972010069041761772276366182975899230809769797768780369767144304432761098213698620043733924595534824296742719408848898334098217756888740012567795203442613012259908335540210504990127534742078476545709688519105288176829778745794574704235477788694938508982794335051623219140339800125221109734791443312339257511847179171443551135857755697076011988821246602153115826401504727992413704967180154461262173855849266078058149544385307140166688477179893382964494547017732312797887182331918668230521042769201649576827151484984811918980738670222745472259921527949311627200226915525977120143962492125594510739564946066482113435653278410690224525096616304277239275542251189006842738196942364208405017552161686891143257064662326632209740549693380941173262555203592157737214277066962529748742913709840817450532147755493034034830003336248797265237700689538047330790319011299917467704818436228929018162796643002266639445873662120613265651102921075673779667747407627390524616356564724274534331332016157235095385229745810511240239755972550592795063924956397018480731213207765683988539727402912726060317395965765386387622922022497540316267602648970689025158441918583492622253971544927575302364674234895356762436705421047848252727410656556230625744010710870459246339142255987199209025543473871996015452111366465690291284701782106013942454460313386318713572584689688495330674072978421647505742865272456188595100054757568135394561485878196869388890660854871078794379335282198284967454120935495721712624957866506422565068108706564083169992767626974527226447805601714151768073596445964215618732039941696706122268742706240163327156699950756944994860296996933235997441232623359993616065904037991087745387651607767293342753394724121413522103934362805166746588991619585551210362079358862672317061605807839822985175063012245480456531222653414389781125385646879054190280667674957704229221647532142337717056266232635309633281019803280288222815004121697451422635969220546228770827008967463110346633143379511850588294699439374353070414273765653195020637645726740753588890792886134351014498984618968395504414989106926758023035370837358783296660458610064513072036833570191642697562574133801389437871564777143031634823483753796217364732053819167874982175139493469511894545763418873072321188061417306466876412159601808918120648295902521797508894858157942122101130733149494977321662129742550770054152281567356553105359130984343023035606045051959607078415973238144336256608703642912292898303624513827011412556619130672862322241452450453294037794444694266617599071587663181798519445035741906204189865969107415132392415988182674739138796082239995777699428730212205983460319898455373170248986557343067760715894775201231898622040325258002293702927611577205869481048798789330806779676303439998491324249707721066173040297992733531277150184098944336797283781097380022733794361847876343972715000713796347049293470538745163685324222476095738254113102231557656414594282441098442573983160477911935266230484459181324493230706539647266471260345086995020150173681814124804163651546120168888139461519945923518837681928363261275085733000780157905988372577364479905922927087497316648457246341330681378978058820709576136190836399512245119955211654824877373826814779121039593996747227309611725542200386877989151877403000320425959885440610480892367820034703955773940138655835250726719527032116369369730473731219705637053586028905876994529863673307451808805640893755997145854906785012721067857431951419123716900222727697841494601278549351041269947258918910170533754307867364110719932062058982020333571676087878195459713589961380285670711516302922359019410734488807359864301458678870890343301769754912015815467107418015874338218510842340285467246662509623205470897100327659824165724066516193671529066382640250935226629231210528151672269277248917854594129952170307079398011631436022010304433130551101010001270033002986411606931732232024460525232443375657529764208476745423336578848354647269195246247911648416683886169931339337128341068431180369523508854943915008223278922829429416794812643433376944358112870488671914295936283996995265252344495528145631780491943112000589792477116076125751522750514373960501118476036540934468948307101501163301348536262866541598727648122570657421829911070867832198758399538172786596019687982846114904816462135197620449815373763491951829743092752417158567292445645195407370050980461081211749423307124107608573183615802841956108241797289142535294432417582730235234155327256213278223777424601314759481460137198821963064383790734504695073731587724897223562839678740492292821141594772725697598068764466487271518559335407087211876406681553102543951892442674724298494377829541366706078177492688491435441219938093453902384073373810199946767084925014514239967244474474257883659916533987397312996679169600169550029496024818847372949236839782047899257221957779491535581442676387030582500929879931592823076070328822197353104102543487883268288919170556634193845579711122813590843078390390594076462177937676570348755046212291915197424241758989087106668460436520736376168005391461316405191785201209984822700324687983874149044388925609761945798939984943995813423936326082997412928840582860098615793405257225454524221859836737562322126968688643641989471914337727403784931601541909113792548299755043768504393588822614687972723707043655680550990585663290607568291808807509706176272777979188630192703950858486209976445282881918601156682695583888264591457317237595791912891480104679147947993572614602470191209764222630660270561742465668018185066555012487690340284748097688681649580014564313640912794805801773871310206758512323396891608316777697723591565628930345209387594562460192756709235119390232241073655276685310259039291698719402739318088476866622463463970089148077472999428205911484012820051106676637448051094521882962106624046336069955040133772083843477022250318640634240394137526809680557722657996131152846040206651776922493649669613098750748470520576104100805336924134394636155522432028676300097769107008248434998284979636301576253429350606214393492552659756120089677017949384541108600096743145825434987019014459740840039156145471960609519644988833514715718752684307702563287288886738363158791822975157325041731854603043629258477804993420075101095360003549630153213464662776363742622669173896608109627067604677327416945072529030418511745224727148434928732068245172567332236021948351709776540561183607785069169049836133995226725017763181355154519305997625385154306899971996078562689689749379831302141479373469603814247526199990806776969862725599637019380953081296001432652574589090114239744869209774301676636111123389700080140008719377910366883224429185502440476398530906720282700870070589256123870607554078050417303074656487678174183045673775371319353814280934995915859597204333219699653643800702320872239727158284084679559400060808543389457527666924762265732912055394069189924298688975312036569325966325229915277097891162408485410733561455155174392758109684248024227474715538894691512018053594267239636655312819304617767057987297743010374072889403930402232934834823798020111872292398297126739754725748191190330569447510376883817045776213395598340139722902232223886917678751409515786285154171577312672717773310735407742879242075779040324383240184531834292592895173476686466696349231111697154393784079924896953168269052994589430294800018571054493745056449421150575735541345085270301715783936375706228605173404791103085795882672246591647917379243180038411987266949228493091370230574128126507688905651290206515443293678931540012504708823766095336100448683082531118120217129184080080203445096503665866685337492658845220843298945940200006648735075727571065231548233423545190557674193780525765959823016978778462314111831933699850859226126481755088362416938048540783693504709052496833763306507140468801166193824916370336904098971267006872168493484493114864733064515572234769271274575700163389287095610624374552136455502366462521780108271854451526877435464176667513592852642297103243429352359984603987883168829609803489417742799357490867664807888395386452122606117869729572352573861537100243815758678677474018145742777064601488670618423652182884741449501129328707039398399006013550925136124679066645838513695848043397047862619477464537302778030341432127688797047168145569650727281979860886507459630894378602785448049328379177625338916191638390430065858680509193373885940386289508024753976470202912893713774600145301663316655011833991482283884497595229022222036247409393572890967066773936038747384014120700246142818113968745627363298433149516967124697513343999111952453013949903526998198406779023620148119372200791564446621268405202064779934562276079893266317061779859737512625439648158723254307593325866843189643224839726342480089776807892432885588232830987529074853885939477939975742814990579827296626336549316727531911602377647643476065110241253319830297194530020353722444947091082702435866701597842436641861945770387310547017023360805845471290147839750322781556850567576186986285184527922183285298898813010425062363838245121899688867358242071527615463760837859184638600771895427917094110940675183816633480322847198360154007410213510824800553547219622899725747551422972865241531546847733703647577612442237803233478724197160862826426966761009781253243961570548739161351306433854425214863392924763989140078442343197674813902478765663578027600747367163013872524034802592002017465961658692761926137530827521615245713386155243149008701384249187593591060073420769034835236341594943390650694005490062103481469250322927062863442253921429850179503064254188272358080321531422738300630963910654669508726292385107133759470913605242860213205098539709410587063972116192023613159557843850922478947239999958200104961945716612479031808309183137205003150727652996570732912403500312462125583707030019849673979038486781761694981943044662704383726147295721802026987162360593562104223824513985165327846267256717459528281675828310625566848171146191260871070467192509902949934471772243673711966706811045570268491918065505847707869390978558183799369393782386019444540400718714426913766154914449918154574228427349407021092203240795148701138088432442467519350885802724744580754742697264978582434960030311373876128785954009980804657847529976509392611283365052154410174950511112873004200512558871758416102413858796861934439431801460876674205363647651687224520272429193033738786951891041407169189913318025731186442257755735267492567165814200805773847576820259193080796429498456778666168919733568727892507571495602320323956164959748827001374570947332481665750138588419581883554027278492551917223309261039379841409255257216245756176083898818882250294419966752107254177034991450890586245206497145741133128944378616307951245888829760384827650612991512049160946039907979447799313490269165749437509391687066996961496362204236439362900150960136550690863808045858259728542545586663199556627162143380486035598563613720639720823012804774530635370447016550341917940489065595207858930869110547075600160726419863008313970569981272117882864442266031518152685565164099346626187726181678931484822192021966572183448530370740078975592499849855447904808651798680880591761165197520810568397790812951493763030236800549528690872344059259009395288534718159642016147281898766351654789567924543177164852548562033210745446582510362021199516491824970927927869481452353089655431741405713519306181017564979642438199377568958225192172327287329905658649529074809656168205946432820284822248098600186196441658837730282447687454209175797733221596056726028201670489058458299630142299218102225519194986069751394851492496311997224387865282394155743414829484689298267916113269927916985150895692200566076547352365533532480593426723991549645043520296265652069095696426695659922439140290274363833544275363957062417380715034805463658801245942403011869128427917396532457814910489147151602391192535121772393532655664999358727803050961552931967473442062024922126380695680437939494024555775142479047493534192129748224621538952030137095154241433741643672015935018463561879440930833157779591360489896523810203125475169773506901339293797796553834327898528483761368062423276234952955013283740826777351453298270523336420558630295194066010813435747250278281389226102935875562452628252742486444888917176566578472442301463390435424207135150562348204848892124567214322023601164877363092184299306324366940684904355859786766416191887370982047736532007981862421159517019963406969133281629808458397405273695441321559450585138743128431941929530321518938258627991552226411899233265111810827786724410456016343970963282485744034101373761328406570633853639834665971143084953587292622011437381179524087058360626931335957175682067019113564553312293339467825649938696380246304190541508665259266476942142985684627114825760375110641610442513159522612098731574385367670836748641231653488889221256850390628078926837651130180103237487721587637585383654861828119724045639682943336417600659920702169101645844285698451381982654290315620558583091594901329786726382724272371277857066560862099165101293957367258973652300214797529439544961190652647002005866348065679605638091317447506893346299558079391048272942216247319532335351618513483639738273694385048968111225022024620016311679894294030531807022395917712255065836758947733086652253688087824543195187477724055377570608409807412420704480882696909021938027066263040379477244480179445240989796553572134432187511266305706648486744924861836520413492259239588551819314510077555492487297517407567203956057123954007236861685313323851485547062847557834464860094732449659730291174192268847616351596500037127585057907676351543285294666481009473552256050314581133453519844981311840821516021343930723739279312563739673548839977587458992366670042387498589431840047676840924369712294217819402958879174083429886526032314429921781301739738797728522358626892807450048357448429917303393943880065832508509210623442084559656328364353847870300560831182472501008354039550932699620584630606041165323017745229128123693938504280924327615510855470609257070971718853186966547766283571079745488368171992731945416976753970889494417874551506320300630435450096988286309865999849273827195285489971712181856701408990862616453492605104330932178809746289092650928132868751113860248345844021705885723656760825000328650061106523062056176423767511015611770899945925822206287711791847533855833883882399520888741844772779261691421520041427828189178077879762219749338559623097015575476207389118420539036664744871543942362098096244916439720325721558491656006801491226520899927634445956044003301974852106341256039246014001514559581947274509084860617539446400118897151589479926654422260622647810276876363471566189419379732954095230994482086326420093308488229419835333774517963122384223827369486232735197906543652355516430933367769818656862816491657696096711645256143504428747168971397999261337949931769227513088611414492983264141016745209774422551651233370404507543609152912797035193246754463579047139640808331122844335484156307983662069251725147224816727714367893522371769899344084254789794522401116691754863667548362319742295311251667036605186526304798056718587575730675072626482396222497234027458078405311680290922163570786398111731666034467687978810715285643421534931103146979009499057953562220850946649279771454750173977965462067517606729975698916001463278628900363149659889945148199002324800917021782648198540620622003602189070306358150423876408881640346029583793695693293365494925787776240893372543351261826630618503129153166340308913723124354952525002024176817219393606464073664961552624608589979163435732662824091017166151351287511047138115852226056713461536127398518824084727171190316691699320629383702288333862484001744080344174682228978436061373684444446898884921676956997989234117082492139167434368111080671495517843844746523871433016547115450505801276105771004917212640693953217258119899131743580079907462541629527224780313754000226527736582223452046745575347904450164067256310281437330276019374303267429027307499328102630607385425481011720781379783554963678340870458569876528908101110486446597383216439145314580050050869839058547855427726833125943263293478372495141912856003575865065463882013730695918172896747277029217181704540363874066230717242659551205902188775046959678397120333755470280383131351055508534660115944970491934731983106658358409085589897027024260708645981427317531236430466010233974983624705012859174001816742930775678316236372321326625108570592473761957080133908388304430458227826881457872037963627002630822247491763862828174373638887747717585457087024132356834860719924602404277564432829710835257698413787753798683881421798898081941978765262553496791310389115790113664711763777988951787336782298312749320834829869020068244678799479273790294510188368175776442667164542705320841108024240197323004053914176211412750348984057586777062481096935150918340999382948246769352102662321858352340296359336479648237808039589389702552313033409304752916047947426397740121129640905158300467140116015625592641188497306161122615376607836150457741938408614614075285949705851061662702613523738550410627363187157477097274328233580581783079969954159014335245346252918719773676879733130292876013201186389734708040581654124822830774013744535652949190493867801644247303358740959262761429370473272431503746480042872174757157801658813641044650341814037129395728560102352437252402565720501839133477530576894472852575877660282925553734268240434504477639088096991606957568871573557654492244425823827716366953656515409354938030834598967198746270841714488601615294287376900000407277883781932501853432024385642335483403852470921344575730632037048502889533359699022003100725606345565157611973730684428309884167560641379030747702538823414957830531447791244277366103773074616006345986592890102689417653211353207011286959530717651526107211913290905552925585770174380142950182128717336876641494879413646252496366090537809699318341501197646307339099108658533879762434208508423960667205299723205101691191701986145150900393579941432653674291888108298861064916884820889686560245037324194663314280373690194015471325545128036651679539847174198850167158218904789340274376926908570930578963285065320670844222806591786541776295052301890211281384219921294926424098620240683124730483277219168204601138602314816186194763171348548501340469154614430405338344680429467032721932564360863600238086334971525701457747896538052329769369153824442423012546654412701882090011991899941932637650645971547584366379605712430815405000824608263396136844794709905907271442203898508855530687917498097249029495445384313380263611401487122163308408135474764283308371367887484877700519447682089730430834108107363467370423762829085335165659696728110212309227118254781738194683721373312924867318731642299720081140683175211078908607629471540300498913420337683056568326728523338663916195516131320180629772093836836908424858501634873587035356544962802816561980337105151926761116729237756470661523645459779776359139782874745393493762040352552753043732714313218897642955371018423120907913836009550384827697632123247611428941422838673016396883685503202239800429446096389467595522125473430420258257678856697786786125747216214903037105238328280995680585336349560778857316676791538351233271977003325569680150067169177076461018885175024443483752515915611561803923995811404864406294431372852270927367912121191347302922684966976947710953184088601010469000083215931592164582957380808615103873466485509634753697601252442509837701545052675792207837715067882407605778198559089031329459910725753708482038375001707626063338920203759902900277413860863223498860586008414502673754639436625929028632032470097185037380052677231834582551219003499208669071366261351071957629974166775433279441834792431740862077861482306916025131088432981609016695896218500639792139069641862495991699026512317240932869336746655479015169968708846899872429888401706704942177053254758371414781357614494738900202543223181747458450607224609116692435932591015044995458119157541273186706089984048350058650083624848104984153076802284171955803535696179784868002607029700493453412790015313992198111191105751364454343985467318693897289001596330740543275354931714590016023326568092723203605541974855737851101236746075237437372263111144065552388130978913944481201515211078376147211748061364309647185317704817612175330536544272675451728285513314026905606149892805943623131241724438550514910349308119239484794636331025212537453779803310236682113987248013355786091266632123802780906864354638521392327360936959583022683436222413395954647824071099349131551717760020184809961482160639481420436155523669986579435873890612538013103844672626877650625184792031071763062682563271501439078351856178676102654868600101866069312511870913451316366253609592768394727799083470009463975548439737238363830156059002095983001866138812101367947126451357266755680003407313286502037318753051609573558458214291723794411746137672540285324105137254426625159335596252519488680932520313917111235882284119843200426170003169769064843939954144513737676619696099087926364197324854469621995039328299442530045923211600359660109038202433186487971650375298292559731567451133739310126341654682047496502061530575142585504122215579636459188366976830118870202349897326830756787992361960435598862308414251795135263885983290904766663117653827789325602843497163981987347453582803323326938746906164601744860815827027268268692899404701655788322860711326890235918932914330117133169012027689030085688064706193515826518257297011082587380149466528509195301645355094704283544755959454448200806799375121700654504265130483812989159317346863878485928527362398120559328064605613513958886083612044855395164653684792208740058863148381369431646989791651329165915619344989976307079204988174454573822320583802797720021915821215406134212122165001612483649533680312205980282381410052170654071871575314355711496314454538453025723266966429125762917703424804429609128343199698119424840811464091386789192219144226413999442342095256815016215149420353904908249270561199651917419074967217110505020492354487357998847353380909942308969517747056916358162202594175952501350767460145071146293055451363124634005099261000312711034310185389444524143352304760938648284170271310847597955350865919140455683716313590035646454211641196281885271725948448773528300871364720771542083605164166033711277064799636222927712156257952028227174261871251753624710029511249860784675688297240831935280942998567215645043121578846764002924889733324040078462760540016603405716293701522193858540849744530094074355797204260628243022968061994832273406859233380546152241844596488441124846322122419752398527316697939647820845600819219554077786573970393530633967900933498467466948900035480074118833177966817416303998268788054502331522578626837903842803461161473254197756525080181162491145401138854906686174571599230450643061664063454517084566620731831281449836818540141115912830737680770512218325207798697454516959013493899420470841899887927470560575899301718242109588782335564047326078673945190014868962050027616147805927491895025950307686509572418096988926692324204246902362746183861961123366824632326721920901416790101123258663589547010326688370269829841481573546892795084211106251730584062563349544503748197637449135334060574241943187184335571489134867243705970989346427891560080491918421208821400255678031302107074441780280275795502241611365841982900844192119885984046968775245875528656446427043962874446308973139630230125712326134217039425783570948643425734525841959846729791818584472753269646069447421503495870883651835941396544643495397582724527827842474173220559465271243594843651057395242318500987324259348707776976324156397805700224470500260495376371376350284673668302935954752530869662673286265611512505847735531878552703384588588367805123372304443234748118410007514835044446235926317726932506991875374000713269354206640388329694486409111415741122449432786501227891442177129073735851338659229733275612075886535471152651242332993976044569496564005274341022422899959534364646322662530722855297752118806981172462862375658990069605110624517927620097964343567189751578620415733460180138359233388641374364436368177725153309457817296593460333773806512553096955552182848078645076859591475029121227974031537900888662551743728016805187983309031881909217839215130332565341986646826125872275373676190670760269573343272760516134220092798820672570785121983883487297665266398477012758980478949212115647328356950243675361244823143028610814829447239152126727258843392579630342010786776369013610394943280025110924405573225283827922297773519261629351986020211928819146755581735781080667805693921957432314976875634516447183944620584879289135743293061047913849162705637985903006739540606330169951344572602091856127421768593216068282964378375056346512914854502158364017459826857431386756482043047471266546022340878026757126622083389352885721913845870312536913849247867506398495307067655874031546919588668147605215173517632064397913684831231688062323767287655405192464699012244027796667277784972049439160351966685487160096539121862222264631742538823570601102410109700436724687066315118979352222716858738942135704649485911885126242933028964675048486884304464422942888384876011551939464661971818976897713306692685611330287549108525730894505022198104347017062541822800716138168861696757946995855908439825112304692234331997829041163209507322253952629706706275957759863706515559648120309745744832442717271313519278207018760545047617074442534897131554036600106108163150373325710367051868123331211402226878676732215538267827704935229503126864737315041749952193366986212026013212029594137171910323365398611512107909508381064482106162615506245801261888239457869322064225004158814771063365178942003960863174839919987803601854928160744936938176668824896363421475209109162001613195829189212035151521898462861043046509758378389005204011098059433805696984771940732434195975042196070813891330299704685829928940683333333003843273953254800395908186798940674769939434724903894821241398792437790687463682488167193162819035234633445501238675948369088171028179188771045255150846422369327923350345022684407869237835278254884186379585613197262943050514715235505856291252131493102165925495618117514703778315124485315517156220700466166323095692743847545547011692146234146098624643588295253044524772745091060586118623836266144609939584833519103350320557979360377113430429594879241490427247805551596415966931757209773388207686484799541646186429132840616677898780771966145379105093466351664170784466467292811522172153502573641747111873118012509607983565390625859575950384170528437489224020592826365801836686247422668823844592141956807750456751544944129553315007505824890365526259269610785612722179721191303421441988433275694181958087421427177165794558294273189204730323280372907045264701562509370890994145355144651520843295942188837673671810056216109333171538955084329796725778566318476338595514326539556808739235186718995507346686573020950700685554297565110611135749754304175579715322173808375059662088737153774031093527833873379108482526771377633135037014401055191016824084443224726925605283906425099453454014961283799178291779499258392395355928700619428056113423555887841301536988651489530292656640819045739948921015924608464566146900339388844942943778312179523662986304306931487632922557347059736829694892378306744195038430656616520653411760058072365952820496335137065586898927198947067184858724722209121190566345057243465153753514471107073916385711516509818158678205092476155271911342297392066556035090364707475664353948483082149019458243732023380870377893383785641143100655026110847700747674265812767819574594051345342550271599999618473029760489208141301021668126846869681295207694199278508790655862429990014866028804284311735936935690499194589019652266554909614534518638562157908338220026894666979212385007628198445530123858651952514614580734078701198833812294406081538407421852718022849580359969072456139662495830758404144677531623984194097148268394654509855379063547478070147403412370125590252024714710939605903862088785251866089319443494096982897315573236013973007831665499569375901260581336178588148662086686618764113950102734142462824203655096147291049183948525239084522751953979770828224754879619358994515371666178748777377821038914907227161369683114218256532203551814557759369018575672935815420697812080034829321322311454080775322268158456030911931624411489053162732597381787352586175794128842840739626228164971478302091223854184838000416593599801798034030460309579231959522584123739002405374542641129972337870161677472851303070500748509772908969140738966815781424970177257408386303086853417243948396745987542553855069385918437568518208690438862527188219194494344597175106277159278579446749742985479995018967433952664053535841969786975792688238119056688913886579051753207373432246852052563704530339426716284594935294649371919841785769637183021577145188212006149475764311992426926523598325414216173077545971672747320260416721432200934184308775211151842682203307504905598950919381118547428680342722308587048720213966142249386841367372805353808400196070053443648720756843738059558351712123604563643970677441578542912906086562740505502289671686770456905877148019908809172052472771160805994921686830462133958132204036655524145501382024373026218164791806271232712934117198133922817230847672990981459605791690543184378602717108180910603849337785870357008912929275238600759210320826404468610787148299105772909982672282527508082232829262452434115403981590536457623406132327604663990472212735441628109388503482908850213770214770126096904334867999678081059234254098227229998322545264031082338943755538494065771520939272145409605771299401966200454199326871253005068357761059002113423733639368475975269364311209543060052374366098315390638331413631705967693822836810441818791543106176156210741132966279697974640446195121921587319325078714060806346247421287190529775395475001950247910975736407250192684459490174425580573080815841110878783957666899266313229437351569645080733987010755891302180117545802806179524151567179636053082787547779045228139500445945249553545750644322544138243482692846424283435250141383428191972887486669403102053441874404666000287790946884822199228407572281313251549597722626674057568640623715626515028087384311774526745877379910298299686842502870616099259481972740219283532328936763208788925353474491906637605939934832126284886105211631955140995846111343570992446965949583060779421872573041856578888068887945949709955733671611958225120543409210818637755649773650539545921573296353963050008067740498426183232953811819511038453992028486706428597449448444409354336306262014860579028784750327583607246783713656163697391920952923077565956449331257301709948514460963699045054035469366539887488155328941603443601931321849714182571455925814701342770876202778023941086637666224917221448289234115318582405129442435030725887063326110849271718223836980810195321819018652559447892618059206575597527587441586176640833151664888928811668473705545126105327802026166772985500162099026332124116248227695921701802620382228999398658197867984802159293315469433848929444695653352193559679532335120903009138373772206418197473555126357223149593375294621722478045082456205293418753467219062542167602505599549238146588282313979188354510891181284148350377635099868238027288193334139261654724211768963162082017728261473666961088062625611192773655407250631248856755244172934365135851683318927564659822941157499471477107676607163648983067477059965395577307926327474992755838665618515449282699590071140757813268110221558980025094411069441949705382041688166034009638462888197212175149667845672270336053775576872206398050864115228844721320480507161170592138159025013426157382989638769483268755931501646261364524799164537631867508861753359520144954920518738691798229091582884497602422294714411896078039406021066573124906811340157084567867987880146204665114107720075879683454076226127222495797974548482431690545371375570531892052413506306040892719896316682196045767268847279688027687549825929244020413624430969504439672979098166028962896632767474886385559793650689483519329805098160460119602561977438684614358789748778036773095919366870995889054352582265767094631184810211618504907565189976431266667446092864231571313812043440504421234829165340313996187760964100822181955812392532586253263276456016318297372699228230879471725727694549287996150068607030373442270722647346336107512043833813341702639590024138593398314261316339315776908707081417974547895673203112687676392563082818813420519646976151272651109380560427116873443681226442025805638061940928073443482967181088584820111604217528973860567531323524089046785971096898135662410739757087726634471779219685731590952027846697730956958189452821102998596100684212646443364306621798362760191248428122662128554143390261509147254975861979750961506147104584809206843925710562292117909923773177225472499298438833036586351007383667705670434266213189425827924697151762395069149690931699441888116211805088191860046346848316614505303173493392895249697589117950020511675832912351907725555337453737616433198262052591002199000402733025568166583452453138805669323685331294250741377024752350183479652834607564357428289948703689349538646301780371774683871423911163480800035623679363986553581515977548515202016358409906533604732160876288732131852970522944412724949813648542222237065831056954121907179773149232080779692817200187807259869358151303157756731405778001383642718769146042248010583093484009732463967372846292901405411825906130266341552522834477862055676556714794041772533353371971492525048351988890579246584759517666938453832608209345496570728525431918517370139690759258681082780701844971671312549074592752993428935829938117433391214569086518216910549431568824223188184926803779940934342792201573602629435988582963611810930843155507292982582230755955969177535294284634022467328978098365995609526488186284290147098437467872218466781689735874812954844895617864118917853944199406007768020803497685639927883755163612781217985487963678580311597065083652398511638032754355588004282951880336780722841448812298273684942542055705985864247445158080388492564850144635923175831725712441204275066435933349824688874760467623907129406455358984635186293633402880697857427487264751922457032105168243912566486385731130210268192530981810045737984119328409840524668384462428409161158149116076931406584227325520216033068455988644263004041524903284556261800226909480036732411675325220824247684954056895061620535372666369258726504275878133751857082458298480475451368276579702197874592239662437466303385374440512096016608079488758250661637695088343386448978543564277968495292821961682234376058425367666135713444702377886552015416860933033483635714082376333920371321897618255650177256576437818136376355893596940993538535549798702751091764574373730655465099192117447498514354282612459564267030733563964826883679318454123703862291177419694915315007409682149144692816913349659430161978629379941651625216256416996612528202024713162228363000509744953446295451941179458607015114597159791323008550831638207547460874099179035679703113275230398661707187678042995097039147397940811249978988872065543297514767011439788168118760031321688117139287706138854322392635462517975873112495446620462226913320779881582981091062241343103422158383858804344775954701549676710428313727565602388768244870187324224700053233255096392828304638597893212314970845884345752907218361254668120331388818077785650397213811775954133756800297230965532863165059461291832159292590209158131652191960701190887570530436015344817018879652826818853542721658226046001848101906447513153777327518137465055563762645961291714592378110480699564105630195926231563885636065603265153716386731827039942778701957140056718724852175411187356834099565454607035903106363252849236044321325836521661590312147426928139366199355531604560775848433803611437034985620487873824300027029748137186227680830683554474485467846993570097697231508632234857309135081940546155984520054284500997912588895708767982636247030941070222866990072451106186360359477067851977230372659126224096939599212795000261859106184200866139523558378135171828285203496943472389872345446691773720222027010040616798621108998246824392627506403205633306261616011655413953575249231988304510697810794146460199258927983411186727199392467183337272484055154212468286999525747981474738739002829807323800118629005869751350777734148211532022537745627205061472916675382078336658954658501417632240974911697942569307733507783465415218859274658014862443126833923258558093208302533273076536531034328045862368883850775663085164752332052268259252220654867953810753149142707340173099295277569170637885408290444007804006541440367426709389621848866638899880647505497841947998479759923207623442776589165982819509129009397342849009839652869372891634834114323000478748000794461112262229762615010481676122222510025110325990161859944705137585315004379603002472484437290451883027396823420403278943089782104759852114356164294423212709053827604014726642653748225113780487281785103407549292375691848287250453713838702379849332153553757002937791989654276660526635244994279393507247769206994039868610347685994061706537698644602481949940302407031300734140514423513853971885016086426447704630157655935213207881643364544303208174745366403659853401606836313601730916585045473088262439745809690969458029396382899214508304743482439740492753736178681831928296311519401403074495275283678402423595151414905633679462342358691805501286556494478185529727557272670778310409219793187488503166176361739671873751876173040592491331935187220984919810865655834018637944162434273471966089387303243488431281945642549983594420890064863627751491370362063722514912467343866632848228943644816112659346629372228220289350843338939696260536123396222946282775500356985211746373529843432472367681422154032971683434536976093516502789764746333961834756373641237307631239856575698233980853427164218406330945095317972469712290669780728157682420038311923094735063207807740026355534600525188815246582250041821541732359681651811747646345529109845757322748150631338994944652982759284223656369488182153017834344384788448963872066260881592941894730356435869977723424011570405781476328094003408372100396398276949755071803795725206960800380191478727215522355029685348396782797830049225831662620554120747911505692358101323195804782767471782688142736748141314117028336923924605730160407175672175186855450496169450215406489692870728041109342312213128781023017423660994914475536994043338312535164823603634686226255565891116991023700972495864743287221986211173217923214377500575549889066895751532280180255211144555530939248178431369571966925316307559900654425440475135728349304552182458899769738465138161949287121865244054957019350533964035041980052010217883076332274250349170484564213703114403805023060110486515122058456210921966195223402743075653494788487831844294881654568632126455210437939776896187618754023266610183657138578010298550848742194397905696942131264534281755307391880026237202559275056297300985254741984453157876648432733133389097586522570874506528062196472948034014219013462059772681924373736091377985317948458476605649681559879802668286035751274334645150873949206312195028478239935462006569928967526310318771968446451318552521163298938479258133610035726956957670651726800748357274932620530725469899361242433303219084524673924726107499759541428758450082792906119627935593694673902726822596405333255951942858266166085684608401851464213240447216487239780578668496426616207326934868249536965323864979434739944128133609333724876975606874271221211418355772584307218629800772246351287858473698457112522221308152014618141835816827910671995670613287868513228749041412364328217444137267902418208436838844751632222335965125851772074733946096775410565910158770790145946833955935870342462787879256647626059636620332864289850199829823999048811354225224956808402876169812428468923588400696946814384544861969256517838772444803373801342857145038293154907115936075348879164607303864673772482543877134159942726991156504357743231801265301166112995280181705064003120514090386743932035614740511794311034163840368813396717774113777095593814445547171061613419765226031529867092386406197942305621342887530987743643123377755366318285753482309707711664994865156544228063472662092757677521371317996057604786525299932727114804550533897600510524690026773764796425860023946189666443896920056032527391329832720367418298490780556038127664245648591118088176285831861459695404926009794907052510926388709469122860137694321676698428984838364020222317300138220702624474252656079755301416398361680495579959083396672610835408152424336191417261957354964587696008496283338015208194711508006389811464055379395097302836459418095752045981289344780843024713039923599040033056929855442125450944111313235823603196192652226929613728312070823860248743296890508259516650646982540106052480246071831418160573613735494575830616696317090527987132145578856142424396323351414646828487637918265015962593959917349793306083958936040157887678200081601277519501415240676338391165930507708666664873321326876813944683295936525437517453901502693450052151905291994431009072755103366635828310064554720657615978433367916297552895919615691299030071772224033327337631838773917886687078280214498399306930622029602505432896807805239504275588735478698378601501357084910050039101530857796728872951887038883042366515137890427809038738075861434310948608088790974648702697487195409152014127307551762009713025924769129874558262525812899297909685847038677807890431758390474606327463175139550768098667169199606293953343368028136853778194835997757118648654117317003954956145976332026410784847189654979985225615735327289045621368476729269406846934228495593850443045404005350264544742216752358245258626741612315482437300893149478713430504103895965365740362459369969949833109464257724804688392894655191841391321050995753556832018089395400697204429213287491900205338114782713344099379887933142175598017745176278338691039761897347363498336658569001235639964589628068438888238048123748688284847452288615412946577493129263522106704987702188486952598349487841544750579121965954034262318779514663889230334529155190357639444437186127603743700987251930436767085946131076102043400765999647069927253071139545623938818285225293892593199009527410951417353702822091324877496822654530986919008034392891378145597810815179244346885837066145997577719908911519103363687236032469917256321183817686926856125073889730385491544802194477026413717401609002016866692335498838321518415489084878620457770671797633237373156680168337955998092148401623387954920239476645073530678782294700597761811753390788778483795903616211278833903316466533084044930339519298373514024505152611896795776750923805303209227766928164919040342147876279414972823065066606954585712995627653485734016331138050541335820232636621253022734285326327042465752330671491329887831638075763474270426237582419730176331999522450792806430663162695511460576666573329869231198535786526295037999120526002368593669633281032087481369068336933189151491166325091750896944450446733485575439038839027728924401370202059893339124724760495422907345917256086689077683090826591391893498255596125787897455311482237348489953343718299934057437986691864789677204760924898041903485939115151533004543591169969810851398852517310765733446545307178644215530530913327154203298364029472591222448229693108618551641076402304029106907682268472798068177226043811585514893741549111684946525542233297652454698144054648592034246285241457991332883749948630116274547315817521279914676786501272428025803513440624825277122399285719280808909708109252467814296561776269502145337935440879990534631404768434902607874841043171773650491178124300191507799792949147400178820920639611699698248828158652613866949747542413337515048635010587335910823033308867117428580668397835690819462852640284924815677881399244010645446851768023685036396725785135881681215966559615273481599013957219783472455800884236756982528703488854535869310365254096341606448242725255168136114143730007080961784603504815366701960811991757089074773012442212517387194556345928851200769224717529849067484247920441756411407250856775557341348106657135269751323808797881888419363242077049132688653236719859117603904299959412482288987846973585257589329994056659509425159776732552243860713108778895963901943057005102394580951821617316835921251513070902185304443370882492997458624091346463860121908962745541943678659571149456552525908108876049197496107614314033688241620982130595389672884006918212095923025229176644000962420004607620583240433627411588641657234226061124550808075825769273838702663545631412736636413670244703838184062235072429228719006281215682349557766725961864276675304245484149751131059635585302790383837407009613017951380743100315788758129283810244463820392415761647032291312867074039333095550447859934600181717255886667644883992072249970144343934286007272581476566025945460021003088401174424453895646613780072835132201019317248764247759135065179135440478875727333277220073971388101002605957799606627908742878397654724498335923147167845702522036048833975135973590427218098899983733422925096617408952901530439973793892761835332733744790480380694947631117922760841542029656438124129847136566145998571328593632577120196431817119722819342322116038261004343221705419345486267135419739694135772406988650559845573387262609977675204195332596663820612089783355023383816575775417807582290113874372129270074009472246533518491829612523845594386253026403385403395623959422196936987658502653185054952212923593157282646865256312570560418179943007705255088900497143912899192134129545976949942490502934005028851692012674836380065060188699105799338384076011671031206061425107741205248084707056827616016279765254976874905097169209819965183434560292122113344027384959891237984487661386810030432761676387524198045068670361085598970385733599095384443050840431031383811427602493190134082212626791721715928644049622897043433073105810124252278590983046623145507907398790959481688237323424566432756531529478073962308297886282170615584659443488979119045668116427038753644717918051750040678271914592728521576396908965596147825740927497299469907063204075755739329488457893172486068609426175638370051015894541872362870766686087537028172886068599602183738512249644123847282573809591753864988485688039379691618535661082250264134075074894168658842362380139444008350407202532108628020010460404345944951581983877829062820028768274257110338172373317127386706659117134953311654244053308240440871949577442911227618164722533274837711612905404058110205417965532125429950793848211088155163971966813598616709416021891022497759998751962754923264592224945407064422933037902357653432361666597164232267116561662175225394213147838527803544544486739970871605928939409900299328671115292951522186127152841214420948082328296961094112839549914525939998040699743094026223281672721926057027895056814494143441810567478226521987879573105546222696311542807024680122101501259132772660699172305590092296508865042913620287030883239353670931492430792771637313767625736303725474788124402173367089823729128725791470151619059281434615709799578545230440456854284241202398076714081864431232397312523385107114766552573296284618174292462301046096208416143544629254784519754548977141018402780769425860486005454229180845163731469486137229573375197854891822600650410517869932062963510426766263333630231907614306700764726872658602151821741236286969015044166335206072326380351541452462818413279373401389107347995193080452596770564865234312313944619788203659438167016174589192537529532476246781329132501140073141385762714600536257603931462712052184541674145879422294674414680286660071614057546091263827994167328536766037290180211665736257559123379230457279480961054991513796677311147881962512423395456936409262481054074060255625914843848832404409875242770894835162232337090363467869149965269056735687087910359408466307526463215651899915632229446117149990696541455804015027043177575758784906256762237929068364665999060702873540893728616051123731482055470891711202591131701252539853028351799876091869589271071508279512276001410681267211920489344337436291359654923019324659751186281104844499407862708683376372628655046250118375906399209170165936162930632530711029753283405454736606824841194047969213589962888236691634640704555238856703760749215278085567834356982414940965570728145588875515145281821503511663882925943257271381076030568436638370510013443075425084633275096354068894250767109098615018740579690507805784612334725683372897580167404815032823326595087797321112468874478117261557018141767060801732284995911359260616767738554421843390374594528432556503625323098558481406544724509331741838025921536299308225025436487820598025997869191345992992833115752476818106369819159025984955129525142463135761249562778356144917881735937151472108145518972567689075077466703942317240413998047710497489533200318163308634064201969430097082177243558266864694137096649954976585058041083184977439265574901499092653365009855431982727566421389841033168017306730913262478473352743912206882732315599280561274619594827027051391461553394933757788597555714342415079926084456786043195998626983321942845928126310068711133514498938506764252384271699750053319332507991021485818942178390467237400012789749197498138105877715443552034098092084788979204502627430343609079978628715155052485284484524474080205871023673846761336683319978998787998091257609694186218602281206721492733342798924726103647626096888498044391762935317516025712168028787735638580646954173563940907092954207335896661587943725653973389990444111215888272328368338827187453471674473713454169454447343878803866537026255212636070779891954020226139682507195638236991889807568958567395104847447392508491340974299671018630472453412983035992686733841748362966699078996875113284464975395521567803271343001694174127843080401984751664078799594126534692097371629572348725100279718288381133320245019181494190044722525813290033458036575018716041008367160461003995593433949874940451843635501831547329823239191714035052326835075067198327954070733789432086061544861043666956164744848906941952461201821242987211937910370783195315854364636383899572112939810665032124455651592066242656370350366324308402796514631532842889434593599426061175752218035299022037057721975427483835837884216568854282849899173149819254374392979199272600903799573191702039758111610283499991271105884892675679226026231516646116805824484419464727927542383478248103834885990801437058565423832542930460960642701781079351334857337763024816026504423584407025782041227884872793541512698724644478362188159918029933951966730495667886111915772091293629213763771974521431308051112347082446341900476276930635503519557987516419614084852610626270206505132651972736081566313500809300070686439162176618704786524741269849906448093061991930062990381576141380172126124545062427077134699135830460300295976229405525407249131777525892919143477610226649979016753843040242289411626664832083086998710752052258365366228852024937611838846569001468106350373486057516846701534036718265086395151784758477328717736652712266844601267761298907545762220514726269702623747105260519351476087396014019217201034094429975013631445616970258854891027755823439551484441165441061927622061100182126970492868199482550103115089534475452460713679757741577893710485925323423212572070307262492302163431659546366050416827851817711041387390598725939087867571734849323280940148040938151893823496647749723305468730701833095888579378811643335361655723690928668175369619247398618925042601374789364080217209399777066701566493608755061682952472039324978096998206030921838042857749651085380210165761624428889970016950500083245346361647037736243748430355381061698323342839653078122250901684838723501928761936294740147097037860126961985771326111010255488882870904239847863517720395538802295499787521249477109548289889531119830855337249368811882138089384197723734974044355526382683734583856129611748965033267645386610816703450334501251832445870840875577043840232386451307076421654224247889805369166328020343768396157689728173539556051176847857310859757102925633334770803161857018179743962988840465322950949701811749554641675918257811976172724244706434585677248885770735532468950022787301165271662532014042100930758946563095323165533410079546047504961375780123577401550961149307632426390052835900319552018487812056869925614054567816627432316200779096928628051068216808629479457735613886333492602732926039689845840314880735199983661829387361708946377337899878622456450941064722378884397930715708794079591642764703644453058206847919109652417177167594997909047673995723125706662290093582612732034633846852284326586043259652430094703710751492804506490903341326529104195214703588009850157162509114474925991651577492459241142622490729817726502042768858433735517432548963470250507659292221615006724217344096159204672149184262787496405169485955127790791951815496231558211582836698610519903243347810564810827663729800667982053153402515192634896644937516549653912999102066222837564576676641315360896520279905891879493231322549684109296353559429100690201108708508745212459087874928923348423702684270031580423493978435930940994062608954519569188601131584569631666525327832436628770162004413793519941357196675075840962789084048934732435548087311941659173062595746981628688501049102548773908322654178922936261130889409633169486355556380689635083080754347560817393477408721860997859115813046918575395594434192258347989660098947707710790206149729353514462991917130778134100869147939031346209937480624660422882308834950159748372635563289156551595823979592583640974797969046715859426079565590536037729370943749698484678259836920564636065763537587990894457435595120955360463413856807108887690638751122018532056715618278815446778633810071131052995822395125315478601860623556059607561257808408807704899600094658689198561973350474455124758598984998302908953406531695350985654862841326096406837587533100669249740944027605608712742224712583430832683406043634869153550996943366995828853176958278802484880753947324841422663974876601266429797160636738351878439529040832504849379427183375696202946633247869854310753966762059048556693969571767455048259977921528379150651354829150575966764632081165799499542376788437508639385409374881086215022947223514233297048697298391026655933555223060113014208309998275419775382274554721909750935296958509995723916111663698590833332989825679250298092184836729034777916968985633689752177652753915793939539854397830435184470895852174147757429217501964261211833211191963110324081601935986532100712610053857925300469535670214022513425541864380697703883383421688100434243620244856509866049976139730766943260243908953645394700466426119110460370977183002326129847964936861833436243554475163636002112388432458823052671363123712560136811488731772710503100454009521513928828982793240045296221484196478317652873482335910826689110002301453815726738841828374790700413429039945419672289959930258487802411975098818970270793691873550006137394595297609101060733963526028388518244130669783930402482153837030775645968370103065159708603430744725536417730258851495814762064035819837708463225526873527737828030103455306663534972839525291444709249997578816476981721268667385438159596702267116230219590255158625113715756500973162544546243998974106070136843310503330853125367079817573901788114814306768226053607972640609143775072223582026304690299976078296820563427160869410637961153088142764615199599620622087164789501434551261146746409510057557033648748870843695850277829412316819650014724606851577431456080032577101503127745692610129688107885850379789250365297561385528142099186644553335475587103837437550293566625993116877638376476010312021738843341597914696427263487423421923474322660596866634162671560808815201972109282135325470854511824883818330237750800458355498577438598738706372915241337159939889755281991642261513344930378373302349411512106350724471208614758448912737947637948368212071704658008073874402740326479224997018758086557086237896302762843222570570852854578587487371427025441729612463079974553964583701676388991343130754818933135564357342720526692199673400469793961473597640624484586798042567484572350520620870855795109211233090175747841996974208237782966943983792051361195232666018964640618497836705466967000855246972975444275328270209182638237613618002750176999077952238511900966815784422417347469572886560572639692041783073414353377588985426140447158079686727809300412109455886249277005535291366617433334413284545021466389291600435876943318398741234563663143628404355644005705157038453440447465527997758907259224397919150081975957066497679631859567554727049880759274556241734281888590160426863669868249750801718432654834459204800461167173557986955822376955624890432754343232673622708978995999769084385101169377220936900854478853144431490240808223349460709965757365792245426860377591506636136256891819224062501202276029645107293005228476004056886032249592132924558788767076674984473825320534841327571964032989099744686802404075215787025134540547098277570838508355672043004680580801203307288187351685813642714134402708314219476124088111093421230797781334004831982755063767997784799741873640153462711066595540735959099889425174798828937276863122425031519093174079436828452888138780349919992466103485233314275885239503574808352026645031653625095974548941781230879612500213742459875157009959166587529755955994231438466792896168661146935085497589507169343706246049264181452601211526937975877873017069753362720933424385587231450753492352772403672883240117895599992565631271678327570186911163390290920109669760518520500215620153546939370712014770452488536229931384219184836387240454223381658500716865348843269809075697933620401669139408398264940145473501995298053038892349831198496294851310002153622253138609697272500228313124748274602713149694290032882482285489105802311981668103116727234281776745619922483363667567811380787450393396469045305453071112811412047138451366504302128820066489128337169715709642640742046962562976515261935304630981111745920329280522718068502324443804233512851507993450277777869836848250911023852994140563788576777940622475211384323738846031894124756375967926266232115057272157574911097241819186990817797723812051973615381638168196700014212688360379096577134745798923734993796758693307779062323207329597251842667746466054289456162814654746589502108361842176334551655101254305037287922111615922390874549132678333037502809972707255789807992056749352608629856332756266776232135434033241752386708320265772131892306256815560427749391965267173513061260813543092148723189155303291413010165923492126018835340152453256785908040291297163647313124300231839425641493010114586824760513073700336644685338671767419993802033601288979459274479734807178914264305861670188140016392091611741904274889395025027365591264193722366643962943258360704396429077954235250117486277489779940397830035284333301113311331976636421881433715054871212656960566549073111481520350116043946159960902849606352843609241976397827779103390663861832959924472074040057163276560119206253628190014428391784791950317338848148857852669539280199172522412590410109423647084827961331448076977987738767861731816432153354903052341113148992862651430123733196836386128578911532170263595185301731152262148253875307137840242817927151551023607915701006885455248278530648177128737331207809396257612381673259896310380850403383040515262891829834458047610090100829415857322905320975192196278321745161420444583259107726941652704498395678277293282201634331779543199396954640713553458344879532081729218982987059682299118411844469476137473960440124020756349857618662985316143658323781878672088445242593725061409880471941295036178771198486737365053410140888419865415621393982536054629976838193435036171809719785395661130570169674642295168975864742098931936812048786397697891399136321476576394608922430494495644586101098468586670510700731565885300084791428197439774332753968483049970512402812101396022138640277753340845517983056523535086684895560820350519295370652092967676966218134422815943616569054813472287072628934487151172878629409710656436267234899196793564841738322661096806462185284144518188271158349661809048100151463783134700444934495576859987113931581003009151544401593890172960514877961798024848239832487769070517721865056100710744412061672767946702341485817849669504084317038677147675680907112126203662254155056610337782440774067480669248185653967421757100741264108859430265553136255297019595228720168678717532239758752937161432697765412849626645458010937491408536611288458628384758798301481895455044242535745277306844020590510060198207948961158605272835731612204088686319754278760168762289773997788882212894349973762220855076833716034523486123152273651118568035328593526750331208867223585925446975779472785750398203112656741272122713620188478982485487991492455041372724375676885027566962519175224602428594992668265287516982627664941764195671809859494274010714499033686525876413947430474414312407767094275702296605645639971629899809923895976794533896018636300605339762571426981752537666205918023357989377084836040844677054626622698982611900557962035082606432653262497337177080949769044049381330546392187537838048556952696122333194368656790121512032808667327543105894387014249458056757484949863518992879238190203899468552759610767012968778772956493700425990958323546640922060660917723133240754023031600115043273704525107389859629567289967874331343209005517516008017588687142208388205727477248239084910562282821721428645965842962510330562545642673867300051726807540419032582750691567427629764393659131652504407879203136678733454548314201601116235330707617813187753868768314839928766814350501470500291866592027574782046872833164113361624903764145424081624439088887452488988692580651778175926918308890133228598870822251487969076525469211761894540295788382452741078411439676245026508819949784882157302807818892745857081292028193653064433419845145596778840978937229938584389966224964637408321547468161566246813760760315915469095777106847875359023475908120146221123730092141999371211388927440067512269303265173765552752604276665274562328890697501100424589405382981245337707228397196907281077749468624544321493603582638258374186100448000106994278746030057675676772806268075604028370416063860359936726329921402438424330708545175636541186649853117904375343054409911230687064758180683093399819153224991867223869961938244810116307359103443849080503154717963654838698151201503716886049482665232515673011309687741059209908136659790154339561524248734732652355351179664166489809673616629841750608930071975231655255251720170800921802706084490530702623637076263499479036136360818055104020404219511138652345026614836011235714066633454532526387789740297877844023171054792362899607714698391190053667548197533310360851126943548173198799317399369052930273265453758349184300158676021036660641629220785537339428822703819804611433239302507610737960734664936636528511064447967192028398209804237742812539862833229551557334886134058902522557780383987166080463108205365689144022822896151544835892646761322954051915024191745536163971773145168943845500706582998085783423242603692273230937657463204527410026509131321906376074080118111527509114744677992670756940601015762366632432359281692158770797320727057439132594662358394724797766652859213594119849401444935554870247126539119122662908353883038582938232462325117278889832376897186791536545989271389782337465443443258458633226508710828699049801433524539034070243848793666271043583811285080932728391219225970147119995522916496923040517094958980847380022893533431145699912006124259440593306627726571611086786427917831564673224273545003991576184574663764149966974661620911327836206359392246162869767078013970134178647673470212700799225136203154385300874978033992777288608377259490357906142997845246029036179553262243455734563505066349303084954518943058533063282651046044583593805271796653461589834002971656404156428982796245632408984251494392445084577883281753796086996704874375565486403693317830316471722061299575357849937926068493743094271282914398482498323560076246935644176176742827497970935600918462113261170704945841377595394166788608669927206827210678770660940564981877843574618038015257708267189009150769948252420388266673366584181647116879015689868759462232622367991587719491908120338726826384916628747452538427115789449193549612804606235167871824892062647701273563298538890932634883854413750232118777629966141378618625017033386044848995876960086017205848463916965213972497681243572482742410857179552779783592869954628733232685157536719799861848569808148912639483276531829944462288422412671224349105897316572612257724942989939614260804624802826540048840360684840698507272167151455570234431430800510231692468663128191970695921466404530781321354385993555749178841486109142779159312171207797152329476643458312433323947057003365695393533744239945080172247644191639993097753974477994489080135380274244178651155102718858474790002860187092475141655828621585910853695607162258511543224715980256369126022526698799931074014149705826218957839796711133182982834567270284852124537199898924569837823136487617168719313569225530724904724294188031896850092500240574241355756421812941319661135500094560012411060769476912510509991615575728304897111644585812238426971047146005955970803415924556868967667080987989023545583550279115018361466443383517812609977613205655071125232401593375302211003392671266005715217849813182884485780601543797040697855744339586739467207030329266132402148090850873669735467568836872807807758029086829779448881397571157849563273174851593698878418583883070853063936237918947262055259378993554871966382789720336020120536231526631200272359535142855586765761987404010684629389220957987598782130497312811015874755176120465235370969832232964122536612274829194664510607330323809695287786244765033233811501870054357714845599664727926313820602951274559718198352356261315623696488521304582471636105758308605423019412409876655199468689324099422003285555338984088708876698410434510156511119345789700951484810043800509499620473994694622299834921472025382980870371375486754812334100077251091555073167663522728444147692026089424839884919913401599148959117078808109172077597131254094829646304955926653489841668207380806086229251258614524120543836002996330951404431149475383021915002137660874238463384186400306992103258369970755689998910469094436237682047602493326855809138767953969102521824563872098481880107924323747179000255690692710855594152995965628882407603080883460520566513374490495816751709656111017034387793644804079264554629143021193381961567289548611185794628412200377699789125088303108396154540285774223563595049523586859535202455333607097471136564720103599088290417083690903777401496494381190013868892944865322373846356790885676973241385323420310748145688463899390095312534951832214521732659060965620588586090645774040605994958651013180406104827599068677939517076907963874086848814927328386412325613204304118739083818697763910964879980465988530733631181675480714689665613747576484817870518000621112662173039516277630915821059855039420712573694728779210051443951765352713536584028879143110250676783699929123412306718462055623699084115753777818461769693745790382097289351838343611373779194280040564074224823616825802712182031514357928842408749537291951606992867296109789983864614004885892204966476478726056507197580024476310696863116884315039656411777299222368718308742741414863571192312945626348895865923634865564946724636792824399630470709037864504314248818100940106224342031578317219755914890758241862194909209529022535943884151291986586380021026449628171718940890957664650937160771861771488623075017353961392886398074325436488918823841205378840728902154794249566092539700119602030970513420571563807852296761380812366783415777390972770847642284096246629683498975776069734514214646379716278328374007613609115287538771531724942763768104187161549670069561033781241135195332899774547253402583177094097952363752743483509143469544202986072047731854188757182684039194469559708679868683385283279697597166759196440703281732921536999859935227327757288917812821405228707735212740102414361615729444703748192756096883731524940234561819315292777450929007481751938463767061939649332902781827444710903101482057664024319103300452945416853199012137349724139873069048445316939703128011419966442455017911285389574777089460624864880330843432728600673284208064957483017787979952623405008293728965414419230625273090707452646614584366732683034289858841914576259333047140539526496135780821765999683099748113367055366607158298901565566482079235549759830594517646388899602664687111044125361984376125807320894962127959206647147462988049735305548748636571464303519024759097299446353599794634288455990226006032249041144604347271762116004171489612564707260496224559751570690654664676827964475036157702572718236361287966564023759755197704597507444367581078434178799894460026878057075533356210093960561839747551411972212951946634118637656553946796084661465043467414259665732085121151755490874013946495084856822384601223507674245768345597641574896537280891613187535398889798654491528049533801194172863578535238472231480857294687995445525580329787312432079564447141555282977700103113519197788109809089202003569144200168947827450854142096202934787217280655808838820715948736959962486028293867170066087919539206651947721653395737490082732376949954421532762601845969423527209659898676897744517044954823296033737954932661148301626157418298512326400033848794209442429249561553373768624905018724122807698737345247129284968491614441436973296700132265240599632437172669709031456332893325081823398679433870355543725039131011084318237254751457144087258040527523940487398094129602917246051127612394124810022971451045083804982759050866572101097332471079558312630836348477235322491780579572939576830599464412010053060952815862647462361626384624211100730354428511577636588694204358442840428272258385513766445089526801093914243080177860409327682406451699830460695261127009243836909529606428284750582326400827281200682839064206276979708785158413373512198534962413061863583439578063756123478688094724976906806914948043231303608147186110018132993400666010952961333279883427494880112068499501637135598538923195391376342898639675463185159442539780586011325843244168764338653230823493334246171515178123072735243859971568501949748356180983044879158180646147717909770379287002570554309265305261142536645083739852118256262024357341267954046893696798272302201836511932900714302833044683238975604127178736861375515408440330614438225891406577459584780627257457691468346830754248465520694022200752696056098213607925436099883324401665076551090508312973371418738823338927600300043133187447680021290822121481262505619811920696086581400909203040899912568737542035017347101691281506304984094454465863301053984866045902326945249461267122510841800260893169122357216511770580874228862456601595530858413109061340381282457909677758555334468840672399812805155328832383976831177678180426841147450818197210217021513544798214527935963878182566225384331172098315416243139536411722919485369532134715640356881487591624617407775318526173300440287664138062008233354521163774086788488772826216498397133845800843592454113943432076647229707520488489615631999705423340242903473965113100687725884563276540038095845104368312905747317680331006260881220393733085125300065863843146754547846704165185400474659712508777092525382488682332784482637927652360676142447899788830621573727291336811600399897217292524651501174266718838730770840602929443418491349421707019502061257616953338448592625166937373857170051790651930069602512241726703841458803029143186044646344232636605102227177485263776214009500354210169987568299828275240093903672412535322619665822577333090642744672796677398510160166534213446736521931087745286602817753543731387917065252476622666197493908297018914137903833344831181106551353063994079090979894010373931020971195966293944647834600789658143500119725431918587431172771463802870181164027882832622709114474497277076159336994856221385797294941229858069124601836220188751720893248925166128107373306994839192885820156684206997898150479525290506499484425675330870478669553876291718041720024626932816506594377175168701107696297664569965850389247821654207895468267874990930212961076424736671099146629456518696095740698986549511204755080040264649039015234217653276073083297390575735538910191727171099207503212697369023464407761181518240949143825789039720338357181158217518285005824470195268403879379937090050391729065327262982670824780587557067367440570980407248312765646259944198709500166534796700023130655287712022810013774788597934627093151191003887165954848591779190714437252325657834799070310012249144757302050883176536829688006445782150674800380788902738690974510235510211805191977264767630594374797253300280229301561967323664331504166746049921549159519782084860482622788909603782754211169881100635180555009121211569380925775432989569751369476226923859368307376536734189290797511491440743877112359077854437497812713090105722299054604408700363818017588948285895212330975097215416565277386781028596732108469599546244236394127623442273006299570763572912056036932545873751799765284269442505216935188198050336695169484520120689400322007449425538740617839358611832872363352139107335107554579593738124177555781509109255925094212273676319503830634440916144056072403550903960921514848948605631815664677487217024549708325394011676295624210113438370564125465748668230680184959033503298082016961798287956662285618343181479838260750011557459352156739491996953981034505407110822408270378541723891782015280209090932907185264581163562528757319542637120390431473468439486693048480677337654755085125664989940111431965629074821743847085739532499167509832112049862832763027522954555790267453598880131439498496619664807011089623725359111584848865781305607631345809850086120303168293474000171112513160888716981715956037361973723813702239796868436627436516380201154285712567485397052309201695774298638815633031422313017440567138045993139967011448654554384469249978491831389762420861137992690009941766138690407554748671743008581140647693460041751129970281335252726722796938448145358799441357648568203768324440195078753717027202439329351052160050575262888476839401436914247726918881951423726296794208476277822795768560704437568755626960759660287388595166212457041760200254640099338498519960539774789630128656411615548616147339331660371523910996361896025838745838074286630842795132272753699142909679728826492876535101540504137712389759089317479857359123418015387513923091979716322057453230899816308286805993625174498123528351952103426431907698871806281164024642028300430208692373780274210218411972204029709088624493906198556328489905281856907146872567670565877238256224497013413789152655904284210879492536286395947441167617176326513787911435766625292687630503800064921539740985166172201303890193574254469566109935545250636425263992189886258653590045652119495025897963441669172870686050439743372460119886849036393995535463344010236946161522353293681644001218155752361542274791825285980207143377584369724354630428635375564433722501629353459693611663651272124956052631845868292064935936230466398929375880161130929589754653267971186451530092926741465038702308904466020907921329645269046842889095899727122450904217946208550478542716871895070363462283788537905909246466508319651922365183104029714316762703842611508420334310994091457222919596793125429611407979013720711483568635884697124515522955937952670110484051436926315179644807629100038869295218818147841374425247631819837128671311493119390632904952438057295624042252491135869197487635797069368970846272627366145324947240325677748488176200306533412233759778715063340921819656513554990647352859575011026574320326624048614613142041987538715244547870175902967447506074341457067898034206391215844348160688844731604212525557679834028515419905539066180761326139575136039280471651714240177266557002463847328907069130185211381306301902208305075867917285650940083083190446239111074857074736993626376784498082095421496992478097660580971392353626906194203460722762162631723544408074454610000957548850715571497409845341990131740982130218555584923002989518472484203880804451884021921180753262613770743688438786087856466140998168328648193864139632754791311327452209751464644625877217609631653290786114889693974959721477721197460687249930011138219351584490790824218903256065351860191455407938274622678714578825640486717770304667347151927680371054655305399183385177244841172779777903172248593127648154135966779575156593091775700369167114785483207126612724876137397216386066045334844532672969931736356204497965191707569607278708421637820363105229058469176824312837112932718142168899664143280130803336307122512914830457472112847394812300649956503289462014103310904900738294779810001391450821833347801549073751503924090759143735259475174145995504921877419010318596125592150247955186309280511032871159328013126975867442768133286192544085561548107971240754501647758078629770388858120710166719059818771801173057486956730633701968659048361689229587646765909595558504846423621953300797110524635041793122579013022308702987544738164347960696149566314483833093570504080819840319926697069813302031298525825879021977049495924173884163083079466410917928458301246250553627653422976258757394016718052315960920496667042782303715989197175943632068661001619469900159782454541114043480762816982934072508103116546146702027507222305819508117732585002284885601424969020964096605543831481390851653783805146247986953054017678322293087102741472267502844901712704769090015994407315729172028785271754758465096712936483570149218395507513172137212379367307260417469746694233383240948303142397107846842901768310620319777314195674920131035724548990349213037154870241954610726424403112019341496114709369185289809052646348410633395610946596795024230379390375792251345475268283677372229468243793724205776405198476351513755836735982033705788903213202673338399576092014258323377736654141466139091977946294895403842919001689882732499027592365333982253913868057013085479493052971681268145060109631272619998956771707460887465213934608935722178686750941796158649313991186486586321862957179674176486824289221528003157620227322971964989531854890106845615935179170676920940189879684395882832782129702423956002245718413425472074261742073282614070259501755475440584707620177538808323496671954743742790663046057055541629542040821521846511049348871523978755783463790151854586577123063719373779684813767999391240173699198402560916656577427891980780300787231074855799350158589892629437413975958914077052838662686868208887378023039053212730559649850353439056162848286798095098370401008902395381151031848743890133670345463851362890518390891841793360452550475111673096701391786657814716198420173985625132024207404550014888957938258271419583478968293918262341934861713391581481201238263575967927690922544314982812735811397297487594438644679013720895240134478195295993496747471284067138894814790211926971540046670539122028151643972928026683228595031867049909548940869074528994505695065242512048624731391513492925480710228053682226069232794520903193469189301404358524824096684427597215791140851751063928401971000272944228630980197211021154440005353943133864104986090699558437988884411477666360560780373571025032931726995928722062735932537110285632279500762877438071079357236180174372646553299708745742682037101520990791012145031136439762537935905354732877737956702763275352807090438792143400770160153661771764742560570019486572172774878951778484331328652225823890177226077976559904119059917209712797517078080416021114005642999776103398473278339547280764558100761575440320126417972090346833551427989085946616143143103128684434170050017400180412453301990623233872361979128383602386464964772171804707122882385626724417536450402112587245731966421637918112241337903220233978909090702637274547813699142321933535248380181358635509491175738589489675281800334448547134369532600907568353955847565664875738456671770682832752543068085451713984684503742051950485606139353491360627708410383030015390779312802384957098987882529531466451695351276966091105964917843965116251860259784409334091565015737244647068225178805199718876493003720884390508178979621844067400591002907482924023980453868804961834567864782738158253695466803185591336354241101805680854644040128100538296484957761938045024609683617013998249843139149223002725275429884200174124732976814975185766456700233696223942898052114183788676898240058420975299730878045887371886213311253035689918375552811080777879408510424633582080876909159269253183419426078028385972661274115092936040383968383727423480682177474391596924206590679462517410124255863729205629318553461932567948528458958414010168346226103303638970993201472670492603213071894895955863188715609241354232064125310796748629689194963210277503558011584470933808417895005298000030273005620042233482812148694109667537093687547505713828572781313445911055930070737416977890812333800258149074259422455073636644994043624553200245846980599735298584628189019546743721124003152799042937295539595461761587837960979240458485987996408247311439197261591064039104386062296250319282866594192947286386596084814135573566530113030383525516776979126401995546519740155336437135737823999343573940265081569136530524233114384177187314232202605097108917866437259862068710034131990425703234061992550844050268262078540614005430843624589397953201477820136718415110579371733908302093746659252162270622550486897206587982829285648927889890663977781994464612581952432129646903000925929736940552879447286725046145020392364957647529656997950258374626959231562307203812615027000813407397320271717985472528425600022611011513845471216607673256080336094292151508830158010119584616495826391155769845204500552828777663404330600803057829336746622270386240021531166463444517255691584596752012507199591139015078404337039529894027540480402877695859158956586829289151476448792540524493491481385943639132417128549101677234511847087142166916420674934054128665021920723113693181465262919203096992477709595541605972172885593424645833551405538927310758804278334766718667625447999019001473217657838495528303314993948614346302147051725396503085111183095269997891583721127318477349454856502854733778302815619490543852302991847754021979527994415475521049931363111896245517440551326850089066979973187988638410746243443874788245151031092386898251992996725218926439329449593469663355840087662915374898931567095802823755441684956365140745524943055473752608680969358073050416323055145551799378568480238695215916034086761658905191474211025050897096410500147267709987124366992262503912543087765967362804053426573224118609167944741990928856283881077395686046436293508794108448629615901820991615237902422093775065087258389721403765612068201311806049825859304794953665489965900273580942951338076031427543282292692214113678877173267539059229851998974800468240096057735613769140798839213086028222418469686409494716069999626622192602370677385933413102079427823704541508416956418286376713279973043283541597978010099029510385638903456483075495236208643926729788193510347016318802709454389846815020973058588253143429846299224624695646976268236734164960082666772012717488574606805317159006628819825638836226014815540879774677825802140849969255157888436522731290710961560878822148179645938619795978618183541639706566753874680198608595196557116308114368584395330767237183308218934919418336673875707948796573821419771909060106152596655138339053403206347380548489543420581525457150786941420032074357337555865605112442406826990580858722197081939498666828566862616226934188552392344745786048167143579011415002741246536984416816992355141953818209326524549155185891114955492526581889839040175717066028443415625576075172047737332186847536072382766559515406848988902141708722173598458296010766135051299806302309829252559355070759558470704265131886965954267763776418389744066044332144984645344176022763134640871666151760569450003098285732435788126857682830767888627137127433077892032534074731211975221747373574623203883694066728202339491339218522306152388224991006059613927233867544766896655810422013833408424965598855334008279454960192241300412948869933453635594602396922870744739292819468160748484856717683804275214234290623423505271292511229245271912991356956315475283671148569111274939997329844952506991275409391601662129224076221817826482730974298818840089166447348548738814033479372775143201090147585998049612630008299452866003100229001018316953641568401465186207552441018471346257599310830380128847631593287572370089222855524128938234385633662716469084267442959417928259928122430573814152629335326110973861083741977576618887252196274905521238766018305362650745974487602488148860829411593034724155043451279082345928811056554908315064015529170118700276098600852446927217242761647541250783720230304307236227074952634037613984981394872628898790388179761806563905975055844085578387328839460391744757198862811009636165796515111126977446583702415085090659716647175504408003234730505294145088910909589844244937036280349757553091428539224460697985564974546220430968558177642448321213381923731149791591309020079521302791688542249666572928090103044218543336194399180735728999104655097791508555944540122111597508124686747054216611537867792785160187220056624149861482404902743420686089624018944280546557371114482130131764912230666644479848481727263566981291420832178632941289785528678958963188639848109598036456520877974406059799545885779579524520989447696700279566070928162509486213303658661596757742783917796611240623558033578991557708468894166537594288417338220282896802490894032846180605211189482677874789230490960191228291361964570745055008876144500982549798427530242896624890994930172241604490369390711615592576804282379385409089266323298625459586659441819005269689996819888528424937380606376349921757116772595931114834680284929466596095268964242087671600108004118963913485066101075261206018189783652844595730161449637153570210208067875290850930945961984916869612561904308691645928342985136345511162426244701602397491462460617653178069347049471259807992644714743163861193441932119425128625287296706949043546100001508648816651024556037897807822433145843238850487723031804546190533311217295701315517972362528472850527930320632949524333969189849626558806264699582828050688275521145890267137340508341534222707901965923164030868774501521109118571516410624910014779256327292669740611783327622648724048344700161244096408114300840666284089563754701385465461143274054332743621510869219976902084328689150268993775272036950272823724319407931652622194586371739943749119432715957846068197566256013823501352706779782251562606831819601951329215587780222569989648508724582186896018029049779384623178167572801560486901944129191402302403217324373602237266144887446940381008859048799162841453548800745210813913506902982813981477567508090649120414227050208330645852250796632383476805332108316739677301181192806694149002564978849627012635801692565536310863320554931864991377175305262140182103275073242549169288689491334200110781423914010903146892950351328964322272457654215341585324917806505157000662064288396479302884516623500834917917543937506424049394787074868470954315161127297935236419205843733461070994211235878308739573123159194770675898391833947849665225104626371743724476515380045746906529326235771811289553893535437757326128552437553203243380271134193574035413752677701231489791718748450545874121021303471872130635225711954882055965680805103437246850947392490990935782060457533856649348139368736353903507328484086537004540563223092627566488789334671555252976094133700873021054688720608253237425203822178374063315858179279410853002527389685543175791917550873282866416736582001523850579898454103039463467730615640474944231543342573088791005392684960070585701349558314942086689975858992267041950578679716637458239424784173578549265407568112714144167289133589648649042601461224251320268702733049565102124320831627575738015613982414860395232547640233699567876970004764337260149631337331524320060556454614326670426736472379903512450273287736776869360908935579200373215108895900169050478812402329606318378718071421744052837047135058497764430416980037355208175559633159515189627494665251274570651098025137716053028615242785396378956804757402815672736077996301889997019648140500610837399650250810113248372406539501336348909958542529978529647844743132332171028346378483327834582009176586095593814551263557889732130406331153082752872787222987135894234342581297786416558594603610721530607695928153169092301302603192704185035284174837635377387221079333063698075836731939051662196441548862471334586423158169456347906711372163923627315711234309057331552162716379144792334390262648827609637662698855056963959725616951074446454922423999990224500081199569783636682518763989956024074357849232835169236500357616164131140692118223333630991384530377037891692141683126149798793583463917602707107549217202107896546239514654515275610941427530095311544719220002018970446858392174987340551975049825213643533189583003414949308602676723378435799785079071919705295709564284111590575250913575438075131569931546553527098109436038452605952247568751068166835904847358924581739228013889787312349634906919689799399877221757672979368910686955959887662395028348321550517119979501322114881201050086137714103778778101508555028097183941259956229613850129759087006784714752862524050486806183742987509688981719257390126983131140653389060955203871300254701958973564225088716852552399499887785984924526567071223118841521349370427138345922819016667471229579412590565896752359115510030226219006615647537961907237396163457639193723144384746262440185914496440922761605587578996199891962648482751352878522967384845376827051904560173345957082673645528699910898013437133281433032826194359815584080986138456810473291810486956390067601074949831004352787673514096442005110010674167584127751193139483608237519887052742328318545150879795733800995186919574724756293804457724502786796434474162421518921213868637217538965528558249665480510288365904745231245965886897076355343015587422132228779880761297774573557086774864102910098837489476189479067872844815724634242241536490148975500643631809387730896548120284556622386434635970106361072745710955993293145910623450601981806842425433081700814928442156514882002210308629533328723488201399757264908709228061116629416890065074647898289338863189117039359235258711555226189206050239003194541053700989652883983829805908262468524191874536536162996368549220052483809352162331058736228172555099838147667943799382317542865679156894186350274191968642110926974858198391657572694231380939043126747103752055136285054144420230041303825289310979653860959301779085165108165493884795655549977568439297237021374645641200887595167554188871205652473493387830674512114731580690458602624690045210909433444596845649729251628029079964335211708808440554097589762732056312074867893879396692644684565219734841746754043908462200788965103664802962932755662120843580753451546553588829513730994930482433421045831786454728025118081143444341640919217263852738129039565032605459343886944080807424157835019070094989989153476508961438263413875352661461960734820963108134142108499941617971539691936546000008290301211654077404608545825342702836184453829715998527349113722230095236905091751751767699855580835230510529441531719170700566568497803955055310117451677290892164932882437128663809181050634081884257070485739419113888082592460584878311169655079298860302339398014243441579645704834126705572903332630647561579227741256389454047436022210745686089361469054528205126842199359653104732033650341043996110274444399379941903623346096951259043561361863552163015601897328935273654466916523116677315899584763218588966576852083370370631563552684504057526634483669791238008798896001545093631298472960648941329561451430994597746094793044937146910900599610806357325080083123015247297826606143810290349583611707754864814800838419528045020940658848715073689069874924737364767843888733340552265069319743581945433513863550722527863137346242582945806097455002252183218837346868140408527513260633411292619924471913676449022455167271346714266623958131944720696137919532008893787486727738820962537038401858153511787106581245481289545885418590497783032289399445694431483011304959299089633494162550411687541265459073885316315652770024200773246385226487984453358066446433188469836931639988697137143585717368430088780039177684050386841635721748170094099112354547748836286277954122002477653636077916170332553258933234643433257742236893432826631240590673846980144588148030936756357855677154093250641877676521639630436234762171398857756986934651169028439234820462695367553071363745551271670890811876638362191465466643197683414263483286188881531488012283752375258964262411417040317046477843410059857733438952809375622771517450696020486436112939948282480858292899251464032612172516795401184417347479933075558931040580946565430946974375770471400353640718940820872736019746021558472629090624351592414216673085658980365681437599737428384898408323842809254761155190752573292583962166329643993092032041181349810823595281311522312150427580449265069001349835927105068794238690963137500342867818900789629448179461345491856425006884541038381993997000529241306041629747047743544905106388629899513862638988081167718409023697740579976781096741231879837037129833544423139798460408680590824946930439895503153466465567591270133093683148555406400043706065662618576162789851260337683125167305731195065426236467295592573532491939544088129340981657300176927313927706006240925432157766807073241474728244286527052386709642985018030469455388170918605868755566729988959966046194438935999231583736033121165599810070226412332327512243265046381605515488791528537086285238657504406943286579073831417055412343862574610281852198369622056048115883351347119760466472633747700599525069337122163637712304401335608423982643121560510621715854566876161678478197661184555080847767429591444356299748996051570787504621883878922452922468815644561174224794123732213574424497982961341988469938491943498113855790274395921677320765039412039537772712595293854357616583782535914881486245837769908256708234609465179961538048872837556312283376138703120192612587326913616210324681138139120483071876028473269026025997900733194275793896341400455226942735557428841627000309535632746455065583659035578208216126463519191466807894583984225550097577202213025453266357782870820774482838501915126598307985643370434162773197198148605881268262750462976717558799094084683893197634548898685040740377045264728648832050781087013600245226624993448027423593604263613624775014855102071087830061230867876734260815048593530866934371179705119433401955233166925744467365859735298170629472099199917312828678742812879764444367158471869729997972961208663357479016614636082761815064826571990136793440159533667425383439178291323977578159682152644108374228992575051065561926836968034008183973249234457837493784714674148229800302813388485274679627876283083064930374026417437213937327404923759584746464076235910115390352150899230079299174067299804194665613742356408263402880696983147140755077651946406204537671678364356819130077663125963908244828616298765187295510511123187693080905821892028532655511755430939916542837098724946391622664682532710445542955580473496810945322774395561493028189230666299500436447082639623989919326774533045335028879871688324393856590814513643913414863987236125643212798818759460761287564046428166245744701056571516056337039607256701559712235495808423727424515294444980883045165725770283866636768183179163911481257838552273637407236543969285818449326168211915912899610454596856581945002627254737112612271922495026154457549250204242717554953156131011943106317750946796076203565677759996367423441275886183797713253118657297368311930696512706830302067484320058945118895889576496076317039982146083793503801999259050030985944688345055640544124129606501407616387037007051953673902609694243311229917882596118748168495015313871122490607847454222838941197280229308622161624547345873037608216876024882952900827622652815365448123236945764370803616836237767954559417781826608153066187321776699065516101112475722843866154100701048872702134720465673204148779737156490346050586009164759295942367196097364532738703560485675374638571842993099111390339971315963021528969375553806230481946788551323961929888335840111119077863588120899763178208102801797533000940189999344311764874196983798692392986418902179023759323537817728548673703744175183490687120108752054014048463776643729892955308926087347442521629911030761594289046955248449614206050411964327564431752185942608258556216209622653499474228002433558839339181573192319465994709327975830448326876219414933549947266837943424800768814814680769517107294851900092447615148968567711436300266687345879264509971354599873298501582320665856628537489683409210875818263579143686133978718450127305030128577614535936409329408335370921494121699702466940221261869358989273948068738793142327850458607898796201570115211775565882337854529635343657514067329308967328040005940510411337339641451117478905464052705689871820330856565946062004917287577756577989017117742684333655990032462062195255855383232338825513054914443678438329193587751760960847089797770199123910878728394274166864305141496756075956031209627519921405262965684384163569027710818971928684351979046126237716938645238730265827296145365807622730230139748261445685543375640948605511909282385149570180672158454548690449855793402445791668161259289035209258209929340495580595468908739274154048896671956331494484057922641366622509276566979328570833453774919121247166282188590336335509260496678279596490296786586693312199818174485342409360453526007815536154699945122304284585722480297318061505509271203471983043430798488244856375132197281068072848243816123834948743308064681541754120910595874040825531810513015438162325243535424417319515203642344383430795994991315771322067229050516664672521409554488689485907638525984823156940844504428995655396197301993405114806208082362011025634741820764755085874188261462046916078979254314880002406813388341642848004795339181898756270321970722056518716439626197293425331457796521995910751313394290521917164512976459331675717375655728884738625499647564623260676540947429269917410824475120593963904597932944277372034011873604987982485988869121741713868146600197189057812923619522444595622092378864514751460768228311381417204454921020523553966053427237221204924402860548083106065044401646791917449487197139825007333743458276144999386251043642357022317044348318601452111320819829023328558145105932417902589947618439769593025241407199900246551978374412649640623086682507636130697484812127344256638785279339330938379855531729854309443202175986204792017163467716795228466740161621632966874902596528761059988472615619967950456725058715955352205663641781628020301012947656335144456203646740111717730214390502258673860180841255864278692600906157913742893938722692155127447184581305077265825843944191313186547064131715567864196896022188191383548868677831970418113466195337789197738115283345883564665344185461438201615673126829497145315296830885662812713059455401191885072004444903132946393453704715744009749668467268850382252770541551224041974740956315954141873765881131978687278094785049861935111529843537904890907647490834864627971452520377671239976498347868167343941790196343220875939267966158126499028353886060696775010742681508420682351139680144672555529324895907760538079020593477324978068952598123143875374342557898186193268866186746111344406038529154841125690890850336830411585164175834033235065079317358960682765532805336262138138677294527469089651699436352818271722676292957844884427672550644746913529630784233864771179375782487486431201567111588124415885187444303946797528402668763304755214518301298045755209951390684875030190925716807886734932789437733656463074543405786921971604303382688318441028474623773194448559301598628752718105822732652334249163146415753162706271759533034688709264221261522487438936408837345554239054001909293221975974175843583623880546505357929246267100802895982783504153400696761550486053864460858633461585891797598423666804407605279441887088301568074638451489669956084571075781981060288486279093804980081527534244074522009854941389619147565941603632392663993397009022691046558683504687276815911695714246025968185460932629833926031567439097446002182901323360430833830644499011993031607249330114723798109347925212296830149320722181479146073845755545999165524495440543850251487404461991864553284810572545299428219198618920045308933045097882761539654154402447238467239700307882099019061315180435246639870814824434374008785449623860607001148475898479646409976821274120698378057980436447562001887254200287818680498502575669080623881786054546889737426093179260427474433810024409748270005477692067573917368259833535139146151312143416358233743813362165658851700178503727653397518791132027985186573656369439818199465897205668309106528134501812266690486031444147255543956275134165756525104873007755179482142596373349105922457954874732037012104026987537492969235463900886225019327162202951896508377059047427513670854658679193717760482557613069638809966016802031617197664389469600756753492096375797715767862693230529657641295019803081921717841605583182682300579526583942922865244280756587604626206751028713541369215061182886119647992616655126958738969160430338751990502316655154690528888576354921139525493674097179071752392586086873144079072783324812234241531948822165188031811016862455348478698836227033546879547779025471222030025382532641401478299813273685461224435470988394333691050840676575766738105312481223781011702137657256987209821760858899802622918299457304397728692260396815003793732202177825772034646623992609697045048317950481329333444626720449621453899878567515969730644583506144105828396914082925152477784009630564200622389499913279304849671427406104534624229716440597965978880382811319923056686578863724677593773936620556888747201973483699115461202181646791650835668565449917226583429749691119897429777780969402371618832023650457180599721289131414365280470525905977658847929991580552307909240157661309509266343941931880223488350407043732704958466942108926584118750003439351071856703725978503654850249132271367839689217525186502110234584622014013633451595797079534403362908201028106543901965510540620498702424934623423212318642983169093686731485323667958710579856788308157688441163389747656499719485012878020258150761406994665704235200061979980829506166335911036463903263474132206398322198687556103293871428050728873222755460381945417631836781538842450197148201705450014940710246219702014072757620697035514004514504693616288012928944033567635580844874102265420887391794773457049833693493483245665741907517159895698298348539365504109947583798098423335242680124220228989479303432935881670698299216258428078606640094457684495927665870416957289195882351967654501469409808040006396083531681024345211201478601381599852758826010214082945614039984376276252533658739096127367417467426765281366700394507298069040710209891757932578442565205031273630400047547869887269758756450175685011270043153257190773410449720157725758469315851036734826017989708207160197472291897656577843143422231135936565393032777962161463112829066308206001321571825068766486376794710359103683341769880429929020238956358514502136926510140659636791604086812070018152967688308520496104890335901060933753852615570688845691173725665356755481745401498819107880150771935192484966595033563517187196758546356327515064689501774696305739914615284468405980848700662922495305298632504519964725641979784085321016288527937768408056704194447494893207572735916143723742842817886168697165933992479522709017812599978331401671596311642475578307070007654349585183033633859812956662722683816036907239621644702621219898707917835627860499486907115678799441638947328841461316577352434123901772468288864483491635487113969396665141283493094722928092967158997831667923732665114625285763079310452152688612633441601349659839961341998284700045199398640582423157202345026037869665146837005132663518199891883811363884138747475105254321340271925838157338843789346834801801455316666114368996883821427686810936724683812988307115097597250516525990528136776627379530388570607046758668968103090311036718971138998910258240490086021565041129279013467747441394234242998436565353494811225631133102358861777127564775829413082725562418158461126796421500979693375949621621816261948415919659844404506994700589258655634350079007234639030719472615013493931116845203109093617363017647754410012300306859894518811072031079713659361861472710001323758913015515881656396810315024458460894980946694810468698117094994559670526623738971820801077230991592366834495819831014384713569886613054594816367725912695797546617423259364521757484276448807064174418486548842548564148411698801459975911780844427589999856791781857426262130438421417914730516296415083570362613653596578844301080800528273538768499102551802507347046735210218311992527700809803065067028092364245308380608801442754515277471861598316894229855836079719007461229464497221279522366986546241539380155279264007151121573447718560595115455856479124661713525774653103905847357004043676780909784594584923175180187395102648655127681060186550804183798207507652003209735151868726762817702554622783981693572694945994377121675635007910862430433345165204403852548287512839647218675454743866970307887642789848676930876616549030315932841912215166117679101783869043150645310270637436992797692871315206633191510136428311294596018898253318778888028911460795617657397412754996060711887065915947967542010439408883548772181659782775648803203555657011798238819377300833060053640472237768973142353100787988239881506431715148036007979366379963536035264426138593553951485422374429825795285083018842409663453768251999677656265992062935833211184601591002941269172362754996770340817249498100645951435700624176999089288071221264735384204640518458001593554210409158167860198051209767400600387560732535057676348029344330355293828489698142112503358630684563013699716981778606363176068415577474038580222578641855523672818849605138549172844764548118011599066030101332805832877796188039871366784376017020786312198871200836175593529736931907782512158292699351203373988868924409979890986522332204590551738153157110942946031169402318200677331997628912107285267822220165454458791516915291665190880132373029253607592029164089008330653988116623494730600603705479596810353167620475515105186627194231098060381286497257485856268019636699468993921559530573735215585452011061060245199906107616768202872313107796599828589672738141252854131531666986480726291535253148824086680822816494644917932402250639073216934263173306822409877000821701174309849403370655711549032449089478642310915651177772490951964381926642230027026421271285048691823989442444961058487203992101200253251169262789782137654892532257227633568966544591571374924909990686635303725051457134437446923518018918819749378657666920710324663568044020479881789144087196065157202544244549855836200077659165085251782954564788933545566793427686021410568785005629995185403295541434939487106880555321079005481891663521462481141519979752636140929908616236554967388909875726328943653317156221004910676225755622214118490821172217512185339765411023470095161931257767101912801883279373498546720527269047643283833344676051290084305492039285612962958828507524452876164286558623007610362970321916564031909305060987383463387776051628802358967687799457900659193734506109514953727355138902986273961593324136634620366344796711659997330100441041915759240722298020160406213980395354210369879604695538355023428674316400144118415852303020904645497812808561904560902014021835987204408030016446557634360621320396342984912344557663390221283380040355455852871785062885288996473832269871543098810536248225024234343353666939995337613588497564151077741812004159772445939984773049750685560470438073252314753297329802002024244756461107104957663250138688847207631162344302048658973272860659460029818785892999797709144172007556590912425408113653821960571653728890598455794101314283301709138747950783176371942414135086560247119261466846910489592285438570995138314627949520778108037040305294391506836020654896213280997991229222390135843694726098583013258484041963341681947264334244564393442901604467533420126755951481927654820566462425826603877094098151190729945031793824331084260109193401827438947151984457521098122916774930259932418400475673721560701948090248614412807029189091635792680094941406568698803700460067763985114567402588591818853512523952197294334814709259617614974825808135320890318056800835170577836508970699270554381672926332546784457387132381766717010951407529171430192847011141303681139365949665091135247375604584202212418897187375582881398819351383711217559727850780302174249013931522748841166510283719913343167361379861421170555239884181083996828686989997911562346484201270332823619079449872934985888932235748223338787211694656053144088931415524686137036405154414077521605994060524921309862432651203397122110175393462526771701728133491873992821770526535240552309343997062973271913200129976262734934755990716351755731601922080161548757020433313313088997390550894918834214356583241499890254159882654404459967395086634136890954734069917788428847922707407245708808517143115314053844374213222382710405316921425484498597245852147138430335966813190157386881546019557869564655149012856966894073164623497577714427314130450299479895755932082528621784950622954024337706350003593240276264169922901089075693207114873501356714637698870497027359450115967875491033556429903754196239067767288810391620070078356661007262215952320140301196312231720188665302705644646167296052379234988834673827783382246353432796105603038023016930571766069986742157357344122516052322684066220215153947088286886439850329207531965891854456668254841872168250557501080251150477203761280329459751472513405900546007537057072833773249706473287353123582525620450570829171896624350980803211021664010131133129817958586363463619524439671282328022858880041804836088886877305942387060590669528388746502454296089048581315567714008100611929300254363048790299747186268239914484496353317135608057442908545187352676435741249207234013046188781742994371423426330550256484553963172649544364816897400139440777087846742075295381649299430917153846267839133210629674779789805302742087801381500680207043783460898671547916110361657018953038304532438472783168170703100352357221727732906336356497732149235328634302183433271134256484322742545010832778989238621581079587848218439491025186464242464451280993252025398990700610888475504111900742037120119694655704568731711298673832001423907763468268008577599943828013899092113313722492750009972425193900455536341899773143508766241289890018544515190350169251838094428557372038834849258192656489424094219004469316482477813727714142210838253395107606981920032484338744620952110269705933400254592344753456825331026673611708088762357426836906283421369341909456907554656280408440022900865396972604934963516208518553253358649612896371974510976242325709067009660628737836274955913831733560809373590317165699708441435477114171335179706642888188686806729215164160777554147242184084830550362458542489934780964380732088525589357093159738481711138400687197630724587307111026196811417251595643598270505273240582248042224853103226228668988234296950852407752338512982493064360365954153141757865781703849116242405653396229546967705983067138009649509727589975816713039204165392918270017140646573564874766183347704976039717475772177998749268079841031149391859196378004820746025789028370345831875197633673740958261351227324391794896373408453383543354832276764197246487776072353526303494382650303853634612586325398083003672296400522371371029192399528078491222706608473291876592417740796081816033331358661097079152036121126018547821614661951311377592675581543143711804484692850835481010025152975123351589626372730674736282232793204950436154426131541698082597885626668289946915258331886533579553741928015665221522244803675652971279802892031158314906832033193766081763164406319661945873685896548551656860587684085288354719862004713093960074302132927785906392718137457308464050328524387590532007036961950917960524084991860170380785380435293243327634142394433762576975148058041752543908772608297706745155425449500504449312966058847842388893689966469129979872730725374886510282090972989598846387400504094788028988893286494989344889529645277945228995648138609036517364724768798460498595850116110086172885294238651772543620197336040485038159726224585786446666338978256461856774283881484265903688303806428582044789166856834075287899501134228719414554713257244089984324921768679648216034069191198149002464570911857290771485811379497795495463246390968585212986517387952690138454633803596193816635894830524760830378208591293401353410057199626099136462069328722609867929866947296613351162857906760606838606198102599570198586395518319058063272317786999083485775456040782225885785047029917234295705581621572954528939265611825427476710922178495791954104849319478121799226026425731573590419388334815568862865513401607661597288389984412822606660430103131305986755703283211963825750019730160714162714099191130448643484790292144744997082267703402928487305829467406063650748036709459146583856229123738738694379291244122482517956115236918977640101787189712985267487254249868858589908555570019586634092430787573287648784308823875010930640345811160802380954819898911982709506901807117549640732311698576586225898643767779847186105563387422875713652699972343088505861234853485105707794869401001912401279090580543574650871244202849031439866101131204452693034952904705532377123383524146281428734978326264423935118313536989895144856197499727051582144864299569005275604124378437575394535528640343278243332930193275116298476063850760996601286618651227095722815654213562678036499012273633329232517698586403955986725174438012716427841222727453430007859406835874425425768410443500024126438291219788798445345622057223208055963221632455125145346399420789568792202737811143013817535816649858194879818953146383726605778338453663632169916359153551958045750519146119236944050971717572279817691579732890743135276562316134093833451074764119465886369446328750867748053940986594685256718621020526794438233008589591494193305658160856952368552263146360611833075383691461658638739093329297368409486195033906198756406833755092198948567012632875969796828714419009337988972274470384990253913797148944099630527091523603035900849701900370470623862758644797924868927285248559797974751850216514707308070740732429212879430566787570743670731558994884389294958501837847714302817450316927603347796276217360003358608051398072907978074881590678521460639304782697672388708567611862872039934397545282583477568898845598708622969840879543586651321246902750985714930969292300869805579064005360390286786236114100594061262163118142228196754030232170003316974917223260620481559384688829820742983603711963893698567372861926724692344024703113959559399022514826270610299626630717612625766385000756463557681226047394268161768997936031212937796818096158562801591637588813329508129311187363916904082708889962592240688492038822606652260955113238809389093755699452546275902934634312108581686868711098598553419851481022463547598433408265774697004128127047607762937037403215767995144948859274952960943504757735785516621908982366301703572279698890741401141518401813676265107492482432030468406442796539552644316380978361133682287108123302323691520729743755787865554768610895898798183083170502949482564127048308829569534950591727739968522701158378220406678057697435173974613093452810995787048521605638809267652470575658440064103957389273715574374612161077403563596800630256181717188603714434852638360962924473512274941382631123282829733076628371992235937337012231754791624853972616018598526237829323638130678776859676858337441217767398434845578609090345476602370984346037488464832613342370216735692979471968377785483284367010858357919866814655999802912016664012963001244215870003552954778734733102363775214046107450411712429005413731107387070298024738137984482362311212726306217813234148389562506220105238244697496666977569917916350088892467469300233945456336546411070352926248676529382003119033463922186795214538318027327335864852401061114702612004850154337214616160285205806274148397741410389205558207995598304283826016200350503961145369197514144810541394596356481436238612723037408140290269509327704099110470741905525253154126928114605983276685359952011813863187767132977806476947555457232134454032795561133867387938970473770514241964877589586581934673474857433341800956150900063921942209707853303039297497355270740789635004264610894546313929382233022454091389988282135919308035995067022948391312368863089524193077034783593234446346153758592106157839372085825880855596788273836708784467466064543672584350697132857607629278331886418852570553963997677806215404337995649515530754989266280837206888482846118034137007317496789199263112635467763601139712633453648353179477599403621102002354002520317055074612927955802121656360759950549455208650625387836749407314396048076675137654157439965716606479334566550851887035519757679176213329162397786161817312193515902888606729470330861262466419509192953383264531435016889113443837492313192585646263130239024094513243087740235960641181913146811602445129402065489760383525530152936025728175093229461440732880414999132193467799833297126070913642134756460043514103468005898586682870535026910948398190384545126960598969819841134266897051849203963726752439060808849016124341876431791338423000760102646085574534396612801498417253214760867161982316817074045424530549188167980115147330000308486044644517859936723999115104771785266148194614644134689222700896344544362513913351042269567015914246447541618419408052222257060927777432173359245302071371889449148690110877631920013660260541550818352664932110444059516194854398253739787888099743857632397148559904885359998492229769369449752569814327932521890034198042823216202573324921538910976496586965202286950693740669811685128763059212890745495599741669887707784768685368762581632718295054415458759194325746438925755948395930162759672040749167055692990414917824415665445052316616065158639558044489213596420757062868909563012116954111744370887968443336602743495130091749631117777836056216626998782898164847120170272285206507669995304179731886769498879378151441184927081394213219908069955678472028258265183794118029270405301368285391556470958982706393951501838377103481636707812214931410203528133136394902958247072196941284478853644157146817782167140089806664313277935874312095528520249467427414242228096105519837253212778306598808650918389106067902234530577097273370150114565638424821968622469665146393338649268777542836628598513311076049647150786514754929988529964535373675079942925981882529901541748124237791787623251382669666649571907516764852932583922643703689476293436698833060421894748327695028731874398792093797925652748115334001167305861755835039860029001607503199570387948818556274426163967761558993215652662552051584722525023962208599262933919258190901813388479310639564729582938900751676915503552773504703956492574932628428916418604706393519944405335251768665276505392461909462883594391703484832000760076526623663899000299384534309905919565899333878357120045103560826501773613348572984842412385575363864570753007971427564805898244579167709667464299006896175948053712387935065719883102901356335637786171716192996606015922062915121229165662712405247923409613704401259414203688621223921484848044236693258897496798941610459293864210096550344415627567862478299543478215655420423142025043880530214162378863781166169642587007464274412073789459076173362239146791997610625124596665914598055113387189038877450708505458207640277723890689523310703561314413279570832806004548149345818172230727513362623105788596351864937833796740836062424385111539691656907857262264343921641358974990065736871639797139776285928329185493101566366503186754473920963274704680005753021892983793681165232990068510538290527653322537273547222258439937525988480867486893425676923292622823031772141236363313478671377927458578711400616827485853628283912159673236113070667275160855680981803098730625216861182927259211568798552162641041089744685793573636580605332572878611291137787538271124955974335332200603644138602180723562147392658885827554568135581432507857716877435731353654517226452084230276906759590089879320280861549918625345214083862865871648994045432168465598191273917512778159057599710865064965188832276360805737908308426869864064176993556213144787274763244573048037701677626356874325117776574851118561755010198438682640865149286295008708636737627436017261386747138347990791651943962591922561667069974763500299307810397819066177323694807974209021903608440991998694720008703817375778016060839801333359691178436518716308102932697623362964170653360425275464782777500007432212723544472496271686042908081597514389327981610146061517133550683960714067901716043330609190383935830026254609854916360822038533330501545532837049039492995189621433893354098426319004967980982945730122359518072975930155743698042642500002726303950150296707438033212136464787586157197808238497352529231572077345638716384611137360603028112301960811991819331011335108721830424803606339955102223449939308341072664522169535078432808173312659019898915841759845063451824741070392647796827010802172073913448492923265785995404705873064502654375630136196975030586009121928309008504899442109867750811453555600211361187037721833065254946662414299154615638873108727016953217633369779294911933313064461107096763197608679671714349913969347356046582498934229116352475849433792641650232719529415525633331475937116968502623338472018181411335048144419427773335056224630518284402038396182835673967502994729063053454779908747799434624264279277284400911543171740631503343302613342814485842774587964364286719300816702539257362993344190243112286527095545212572044837981672288618580600309766896524774819806548404231450487200421123442170699890563800200994980648715128198271890695752928837492728125206455671344190049807715792796872477429690902715960038447066376921566316238417131679962038764334895141442283282624144708817749471327588989294292302449912373459055755971251164820323807449667107556132252831029718395041581195866202697320912832345919560138809726635985224820128290189486934248308635023706577094854982973592437309364330650428669130943709874863339436034130142941734453892141778777756601076313448151081061730838446596582449318032535528875609091744758333754618081396245678055752986150343789223721332386188704106089037594991633234651695756497183998548516874270406347697379186545957124673696590445758765752130816354796861810840116756072909880245635935350598664830701047535588273994667478185068658713293066317500423380882653008504590498517227832910884955459295798477797632023779650050552845808813424327808725036638647788764949769959550501633531656577994213146158100905472235353261127463576920532700097846930698124934746679295718024193937776868737721619107185391587387618391481608766491055207245203660723252278714539167516050536728594477094660193470701003737866502099392774666840069113977763267258155522564935026989607812823415148905033350536986426638600654281404746175462626694036830412041615569078132507933002449184782990420608611686970157029630502923814389376421196902245519026330195635208329930308513387735227031742896223966571567944609922999599839640416540364619940337597529947290424915808830716433265653003068185572425734800014285289980127840655035531308494232169096278438933121076660411738699743145147855612481817264220219410239490606746914448000531275612183051153853743280673802491266534423077072570189731578977056125210766621783607844294732654133847621038217163066871181130832728122825614189748745749734815786164793677887902115706786079405910952193425038602525666601240194713759993035464284613866697697523691091411427276853500024071361414619233079218394432978953322714567455357763600378153947943753549581637078136357920583732832096569724823830420892778920262818606922155940992513958180960051736203742748894756073817630307913057795072460687254997803953139558382210061045980764673082905845812877658393820177561605294424298849645359250773778657366243539236240965003625957125760286265705936314922053203765920990448744924863862286308875456930598296052396715003948483163961093044827371292850950184561677394610116130025870099523320488056552343166903590264204391224023041961142511303921662634970391111340183479172949074515524973474561539557766410724631165776616835252821137902412251032246893752387466670521949972175746438216652453365128482618476080653005806674207632394776679516913564463158435612144798683180804592219704515346751840432033690253806045893787835813946777059760219717454015304549183869231164273467409030527034485287376472471061776891117010852193521222808561497764207791612858063528256959076755858208839840041058883975433633881042889845838638070542442318291428656359497659176502321956245640029649167764582061595443339609702540634892456860957283936815858801096087040741219233754260823483558036628577020336845473683879509104607863191724913244470233121787951779975550638763944332364634750508020718672331099215307425712540557795157716142702386931544537025967933645517409573804113894044310465746295781969494241047155229768031908712446524848184343626559475313888602472261137691164718657912270594915930458654886064744529403018355037802445812427727631168379362580906833503943709023305465221106022031012248487668703286366852894567161551575856044828945932730134078258959822044061943139155051609090004431010656990408123190345871498564896289968749846357735413870616849389319263259376756018243692361552007213757739128073339611029352746683092760813938464342812756902075674782441627365583165932014406965439527917716836696017232949844930462888917856873948366879200392361708678826947800699609993445587031302645662606154904409187552732729854859598528802855571082643744768169214239956863892539642910528659534903677069546896399619942552830151673553007922425801533419679694848046735593360231169913126868886583514136286891697645973367460529933951053970958531097831967573545827954944346340687028145127925595491224487923588820569782841225294813835806321567914212261263234230947368070180222865312393540912585907174178298404187385578050511333036346642291155000984203463230948375947652026556222082664650851690698312320979397519688001138943052820920023680763958876516263634463879477869301493885034135361260783547491278416122329565009035026486389613192226718878833945004762222595624192070534421036030996235627199692024073599187162757670856316830291040056282364987203188477982650103241313691811637464230809144500436250435786931644248111862655609216337851833832314667439957254553167384029075368371810189680625011420973946986264643619152533564263294373270273453651294348654875409788595394670870975628720612739647226731213171872091764400139984101872985755483956711163283999106332800666854103185483225132795068693688391232823989895054341125620227598101011380423261568037568083801739895699552252951883153319284738350965814870928659889071324842049812816790266304713204711009443982319909514382250155457146317876232936748422223535170549079122098090884179449290761638248493918686019146915263502081003466231163137454757263969125897382555618155073901622532851338845099803502594269035247955180289673178831222721239600227536520433037170252485184375966122972880616245199476851953664619220934911285523540781601743600075899763933931453036822927865765329635917795814639043586267087602389639384312494834404327513760430422409584595899434481587072983498553796310746519339795896457186942079642084232771500151086379688778412388687487503172878250584384399531335057408855768291633359505558239581871931178738458798605590026289096129545350519659515984656444716979588769899500126683244320261407621126556020880317833106198571361223891408520893608073038081793555988826100438851509033155447986767946541023914598834701150920427009511262712224072899970160581929732626198916813527863585061949227234101988883635782738241818570967004007818786573463769063049290881587950681822426813091470010688637071814799068569491731714150946450250809601319321768352547444867903686200280720382403793904583672648995907115739061263213282879582007762144275429271445461083930397050510955902708857712723389585858764591778778264217314771383674278398730331382041086698253366763607363823286177454558999460598557044160703133977554020104725725266516986903974160430187224641859468389282209485074283029995674401942161836201122552291209238503446804423207128669423405353752356365450647579191969528928272120242633801298796169222911007205376446742811354967410162274757344122501088019925518163671324432947668327094280468705835121525778302874654417392019237429719312722513061472259576414606971885051609669098551532391283216584934248510845660758930507958063054604496281904607914100302545969591973827784491472972393739702225142396377653492585963872286820494347286207737596406128767772531030632674707767363742299087306901946406488679968394218604719500279016127413212513748661857564788374012845898737670590334600809319642302697848395175916481443261790069147219460581270605152022517796644244666578257770907044802020358858239408718616898048004472635872356343297841900586394236803838684434198917637784126889416681536932824301097632197779165185689146966687694260130989835050086873148010921145531496527892375489578212896868624445081726353471636915725005580435759777664891666755392784437874310324888246521683226386090158715818387281373905855684288330415777423728436627346898512697403058183822866739056944584006759419451997140818042881336329535355688952239955739525040829333002874088233853169491661735807339781119155358694002050925943509146887379135895428379657193745180971979575686825765858186487522581459756379509893220807622116606725715417435986196370779683206969827785270133722612264300285660167118688005222947597486753009377742516914396675864489931019121889222670832774896632277967975952066974518878295883711522315496856557490441558976508366982508413463102160149133912635998091223636048238740813571464520809851851083836746455490199916152484651716050747862520485063939689495360483211205802560370419354782560256279368200348645084622689668756865885171379914595885392339966881125964371377052207676656674301404815330879398378102247904260706979680300323742731586927573352554550501061968251869412694495944999798898775144745977400757707137708760443685647684835327889522833694840402506802559165490245718082342740674173992157527290686942059608031329657358097085551159469980987846713151930082447169310197995997653004487610307396258607959555277614640088554755216408077744423460077363009431945196528798534553999411458089909850204869442220240420197335626123435780662609943820877530246334289695209505490705525764801768017044320617659324595759582691886454264546185781876724713535421196778443220981693944323114516634983931317021087713858144926799766343145992917891339754962095187046669487500523075114219085670143150431190783334579342221561122009264002540000316059967185604518836428173397902440205917000380118576767383608999519782726147787427924898032118732702638496673198488686757688573515225582400253021792444512187855537084147331474183419337457480807789109563064814123031865174797010831888159135688103290584126118076677735143020260632906676108190489567735757554173194775910352930078362843997739153822222155351928486679515076689918490115301176664418016347255308154177073488059383927628296916196059664056773462477827525372978230029894201165683852018972651423528223785440408605924094021350347556734364901618332693404332399353907353656014419303574922154179933873079112708728613161166588863826933256448883318350227245016677437941117962977803226885799347166833409035414408725978879177848334331762687868593841739135610888453671933360843560238138348265881815051362330723056964647093092302322563757336443883421122873689603277880651058196145297045194077562911863590187944887449766947205253961376921421689304162962230927158609319400969433089568995194791392775642451168791929860611473265832038176971532872278449486027887363149976450047617090995816616114346119648400457874769446967889864239399424202891974690527907002303811390068544006250995660433823961079956578124865250438530197377978337420138039030510320348317284347147782579336077217366756594031065531526923628667701735629246781997098328909935276161317053878027089684493774770496951165855439963688864203601697581995358064902273420639948825974129428627570184861238744534324514711676520166651670482081404375712714256208115170589331378694384215127789319108904902969962072315994310894512345839479541344087941507557448205181686336905318118679775318922276327061998865054159493976309532206275504700214429390123040370597916159372688926698558249073294317516314475488786119794231918654998683494508276031972062102250700325351324309248553315272415066537517199885099429989467460669087975604624164190701890399011054733077038697347108272080927632543169983486560832666403139725544793547326128762023517090707989851269995599561973226008312114961468203051328164892018233904775945934817676021171246734867633702578994563649188004231348577693802725439354188320758136593322219347538166158542116646979706522133625547557870624140167983924945238747959254559731629951189698864691796504280252401260136690652640565994269178367584495559442779578021045188539107277012803077568506520670193159820317423594264844655377763011545020516311437391754198365623726500346056576923136175074396943812657188714990064656161311748876627975831183594671342999822855506725753147315046136125424893543561596978494968152179845197279289593107858978751788937054126332218684126978137068220845560075932166785901269419604402390127889885526598664731732354817802632214946238207898885583096126942390846945227049081846956730911115447689636778278446367249093230123637781383722209170534067671199358538116639826817199505953264037119198239958325779961302407721152847598974453991883413040483940607264873852969582167673221134198258465753225981575147033732021625390650807940237428571843953755866901309103172070136414787429819992714342387954759649239270777059762333513468690624797229213862363821007584917505311312403153088517574785925761477898544284556196053416050456065876422839686839423377594210504115527131397675334641680305347854414509134746579564233322184000631146925751987943974575972831250413785551013696088775616376441036731912496945776870586950972984376512563493261902664821099138602677407004521599715095108259150322841050860776792680340203467594796789854607843833978991112802611759348398170336620163785175046043851414320071486587685575823653038681566911331223719839898792500467921704164866590319761626880672694303522824751347799553416921685432600874890548181510117196451474502609431640886980506110131240620593854438596703598813345990192060640510723830176446101633410969254925302568015144612586840418829430877856972155137429778478007859486556650454461245106355827974540304989846275526761126865659399319653826178450068716252660565284530795278669639686951451570573666988667060731924938937510058476489631522897155965779460407619986714402636434583881120998915316986200115378777004456955544757951202001193911208096886229022943153260589743992535855242995316361308413656770706430941512197289151867687908598415842498249209741237552152385792699568083107517878172474731816365822392600211224853442153835324206616812675766198629741468123451403432134094114181733031109813304157395860930474233206715845902178582300511416179662545984023040285312847962029193837697375028388384998495203553875277760847884991940769795265662001243328141248844148584549830618443605319896276438595683852938119584133857133245658239044479933058628124171105955533297283419686126317830007240746396709611157945146501783338790272123728902800676645512437591405943860386424243700480421290706865479580856389411984338779741519631437987718593479654686676599273111382966192284663540718274102094248075749434160081358362294860001722384902507087569300103822344994587315976062546100420698348743354095361782133263801892819785594160078998238617851596899266472424370188129166567784729044592508277456586216378179269769535423939813174002544078499387247383760340799803176769665367025084207505879563608469961538644915922317847677920906404925831622769408503622758376291384462103101307665039301264540100100012040002474012655554658129720891454220831192001903346430944157756558055561063265972752403265725927040358594931954660215792591043264540635459540580380248401248369347569774896744527204402528416137490679672226841943447845160022761130208139504425585617703946321329969101665017455797170185940542147297101343858849734940892501377264344186816831450282356837510604445101511797106529027985256841587308251233071854555900055918181961387265448460011754400129061379223417593995971903724975200859545497488183693636458721016225163982228606492619134270164173260658416113286100338973130028939550712635338139573138843508608133975496061501195932718874138567417046868937908012010385386436463375539522908253548356944359641309145003109651838455521630523244337340921074091859387474369995075500079077641973798228397591262518518972085840959892212830188273436690815506988579827769818261080232571221349792073846456016670558729553868636982412031459481895687722967262661412634151165334228186608032568814516488770451300450850071540094178995465402437153385012438767517041850465596533788323276907793457673633684964481238666048497731927742296196003846130585006587512907447615020519190119762885076163812399231003056811504242858369912482440598700552672546120158377812294061904473315596087808067053303125237217528888206905860713819468754026533442385406071952414855824371491042639923595338337319579646079734305626055172324936508131866691359246234862944881717211304125289041876776149876306458773459876099910398704854822873730791927630490926094858672418554741424082861029467872279278467666742198820583851735483791818513427586247898971068515421903171378416910654615122578007226897176084431208284509624607761140841052229239793826791738877499839862287417002404367004518388391232190950482554256839750242616840291691437182355668361148993224611251084288099686973199255098109932558579976860724225660412233424859687452910386688970149364547167074890558946907476861590796773184235660607951762915751753128782066633932419497349102589860978784243862634164270351736517832808834586964553661169299554086326614653681362838430450556215976767241274764028010442765641992095705170296850046538449014551383989231639649284786060597748504329071461722903347407443413315695819926605010984745448109470096537148596079413236546998614911356509285705503173618942310284589015713909374118213791606071258384651212240027409103239964708117869533475351769613694572771815257102384947953226964687574016358062427335136404136149555761770735871234246353296122629577967191689837463700378640139585550294999325686503844683759191556674680565935681229456789626346612353622241647699094214541998079624828409276422741661429331102625865487190535390122191876505730813650292772234325071775788000340011031582674829686888832462107425272112505305545959397052180752607543597716419124130580668558046904561661875504160294820570214083740129144404194039472692731061012708532852389222527782669051143843063269425754542241271265430106276749904936038342514594087214376173226258015990689398619691561772534727746806661958889489510301425159615626188308879678385315975650066660238328147680445116716208362450166385848937729395371851017512662220220394217009352785297508282373225497985059097816732196665585319463418921622929474628999842905530333054361340519180864125553804399859875759739061828187374267661689475757126987875381389733265987931559030388670256372017278224936921115671892854579933909164619510546777631654058966925108294641938898404292772044511457894051350794594638391493951061040675909809183881909589009977711431017055601465040647429814570502978171944676538308910810702041161936527855675616510605862008815230955653143503755205877249001878644277326323593889596594585080292405212835838868268311277941976766099049615679337029639851928601068854849020347688914622627458269060098704180574060379062008539828527416760417707151796898930104935904009418596157337327667446219888266635572204143656117746455313692014079757344698698161921308556498908518074551674271412871729240026108622285633408151285468548105221692292732331827673903132730459792965344311997324490553249705984607446523836204026444473865540587757539173258278337769996804435847407802175908961830037372110604835539674936550435714938904584831775818073347573362075046850450206135761230830863458364357833004618263966662121104394464127427798186431662896232515880687677708074366589696423700904957001122989345643556319394646829096797385255983699191210072761733983646915075780888198418665282289995830885126472489070630360625516709032513176450493593618078454428713032189088638900143917208600632933983225996623782699020169907786174209387797391339196559264576130952473171087017297841679807119803137778110663977643887261404012983274969420595711390492173478830825625149144983342880002559384087514470951038004916172478707452667601098304550998047378326777643576235471671827789977720897692998874754457103180450151378932292961862762776881818418290276135918377880433888995306718126829192267450403279876866287675446387587515524697409404298082515787249345442615877453334200168530021587672554853861469951043369680258226680688660419593756964200018343360041737213966574440029231230161294023115488956441197586245804434949779236622007542591059936857640244320629826647774732151731179403921230473643720406293670262501513364915837113206708884068453076124400692956428711099403060530166103419895335641018058659381639370494295480627318648114294650201562575950452620096250965620836102254989429858922530936611846023451618089763511846358671574602628995610494972043901309567811182663921842216332344727889437063682364773743115436255916338695010375439297738065344225615541908619921815251576917573124556819298542671485565076079319555887166739006596859834803624404585789724781525354083776907242331822868811091865208401991944487057764086003451668388276290098752186746058542134146502137847714863870438310728197136560465307918272324791243987697681882581311079602959897257943581017812870560631017932894835891257910707667879381894385881025495928334812467198581861685352922720012737312771061418931275536410035190330813946811872929077408913608754019181216567497430520330487447524864842085683092457588263422850484763270635943322577663479144876039065060133589313673855369885785472463618139968824255377169786583186149078597191023879795934810080675239201580215715439982765233412475946279474610020630039000986083506475092552258264872248129893294704791969959193740151997471319744454237224211038207792005067324648595829286018365816560303736024330287984735491881489012043789117297173003174802971062435126800880471186891121582187646363644086202024203678859452316007232543129949581309093985980646309175838762235972744646447377717594304546427655574606229872055424113558524702901753522263304350381771246260264550522550243132556341795509251265852580528264228467891119265114856943566026300113550785007267459128060770596704847372267805295570651143094865716544027629030016520524741324078968501009350923095008973116999893863839303802099361092141214782147054590261660636680976480235823097896204513780834038165800252919795673627603138809318907109994615751282588313411637811632363105058965139495851923034724324608335088552210116794717351820031677585887824439772130827021898789017888008180715508650961908182285366976219230437910981314855120666084391108776832467533584655293743910040134792153810933037429937498069596097406317598154008953607511680899843624154502343011878052275918276049507841437891052547153848758650707282525716378874561097380115358919015325127080072401114700434396145992858762699344083943404856226213947345329128975278884159171015686326566404531956694908880983117920633628785984846072067137176071280049544764683314109536627608092619716372574471715083506292416071188293771601652099195355577021964316641525715525783860421576664498371626432067202755393828625082382017765869778373149543579941960652823840933523579849523509945799170867339387770274476039486344198913675215924171131667164853231284250782813849233301070286172366254336039804335244851668828442054148293638574620562526864138392734952947977420863950071872477113264408537576723180902189614533230754118139441184006359445572817935374195286224609089170831230689523595633706196802229502172991373894818569594501281410166470737433592063020477310941079334497026287606717229459614516976925538841942998424016588763490158889262503009959157864747307924166734936732445021883851429659093737897668077592222702438192354998322122503185624836058917005938848952740330680408842747643802876354118567637028070688293443498124155271173034109635141768864422483871873942234147710867495316662617798741481695046274622994379057504138623411651077030408767718070328452288963508514828557054487232004450975573786070903027267414986238023648220127347780778583235866300264636206376717960930197867546258450325322130573299863886759835241924361494136327108645484697325585583775182149229437501967318427540895830251139809847715973842964517371765775648353001476858996965653177945758279545157825395029394606241487859380333902777641461439748420618448903481922898903792033814017358373882817278857747891973190614184786545358364858189035199376151146180378870943197860046421479940017468490276956173636700900063788183251193955414474871391519305598997780389311611702043182766173867247112055086781230024669406388442103658121136467128498270394641623315973972440726075460883059388665798682957977877634323215301192448375350891527942977228927274038344692490143961697653551399620833957148780173479112756503808101821547625471709535169053061439493151951357257774872181466485456474484894984267746304175462629068790757390531225549919941164640612807711637661684065048094617679104782302997637656424184981626360926060116449217700601720409036243725314988169331370879999594796958114994713839441891591051679151981161414810261703819863281193104580128439308091317345205925283306784834792667077522708701927524041762964689885270476894422417540816987638467700661628016229559188135340580359877184764417322560427498546773324904202970988221150858245954850855427285263969596505564794646360971213780014524051438657104360918554204225343904415392155300195261381953083813596052079124483691672077459952730939023681026816487556951670744035620176384762106212071473816094725276959103231445402389001611543372085808607045264973060574387749550759127372579632413672245668699127687846558149526949013117382684053315506212170970509051355437148585416251318392834778307920812595599353213692825623348838112361708816482578918481628039510833828072705473500645602436835535454878163060274549474712384540679916100814129278158106606106108018676696840826304433713388064832644506231899406979258692066575743787675775991606267601755082249916333703604576854853575386826472501852991012394393694437962244739309925993799961793572361295693639669027940480957044261293645135416409751484850353509610192521740045568730034611614449095048654255378699909291074554684123662562408470665992311967143880590460716139929097257347386971658362722325398357804906391983082309093324360581544778500206623448087618094290242450786241144366728701474464759477289165597773002469925747256297159821836790814986669556265037355556271073766961362791958573367144108062110170033025711078562905651588807350174042913824649530846618156508987297889447410900532235785350369831148483152416022994056528128315072845530761650126539998905650011846233547778324594120689292877801918681124504771823790787317331975761018686557813179987860043322724690662012865673804298368966146135997645905895573388815572162623183859908621841619694662912690905507674809840634456958824117235577875603802389748386670268465575963165064154979186885668006274000607756005497002295002766060464769351214204706984051458311304729911928840251233973406162793564678958234068581496006902652117317008990886609866609898241165403137894576386847789554805645538962142238689866275231973154919884851037731596754216785725168662872216839029727889803212235239002706519489360065445934155888702560730730680294796193215294790882579459216490043349251636010247215572714841783124193560194545384912985851085809938482543385035225039949013326587988744942071196338648901511464936044087949672335893302708020071735016625870358192032524692122958574478671077922646944450078819653659123006609381277172313589662903778455959487547695395631815580383038814293329835149208299184117520308337064992951047965640539865259737275406507161908147331425861663282266297556207288697916632343915072345968719213602240755363826123410374571190748238874986177134881224390157555673772386277842782200343665923340425040660112946482355388804819556841244683533005523371957013233868746281980570976351406049693134982871032011730528672227952225220165327278476548616628279775416685315846706290716257423913309893985569423259010633705984761326545672566586830821183282782172517917874761495434460496360901964377292038709733712307870115195490735138937200583722775448222792828121426261751741577849196683902813498120237330798367285680055352166068109698015595587692115076632929422958221174812450319238376335010234223842206654936703040730946511269183834520643223797551831460762120711798133224286077232035292998139394743389023621439845543228502420903411925316027812786897515351305510461495231337474234268338527477974460354772985651592767614634735539680338551519343651445607865885649309032117191356035672571880226664702133583972584001293766060145974289086338849000315562061848472413227549652126975251514424107956964546998580852343401740249774425884536319560906719022762120488481677582444614849787224595144021434558098462557682013996444506618619616834513878118086327338540131702380557866325336610820779283706041888918993097392038889815637178875891775505624951376826584656670655713104230899242383308933791511799007437250475728615445564977664894075801376668823757073574609452449793381716471982747632117348252968309190581055178927430744743109119334088287997321399899853178404013267713009415266511225335607479655101782015055348678452973989406082164639365258680083610415785400165067759003939313744061063497774495708025781651173520582538362053028516200211692421808220177097209435005462405734753193990058191592449939399719123593922507074506136424122478733323548665618104390624222717007464699174773512734744558871473486798407849779762619437710572192505877755285183100757326033832684743480297930779094140032949351223368404700898977241070128200708144662161553286404127830054965372241620197393389262133366232609363196792781533510712605904353763991778699354162198268644891998598353267418236231883589439998527744472129415550977353275722277156801118780082144466906843868013496884843871262886166799656772792560461725454292286712453715795005163200202306413457792192883041854301468273814533223718029705345091712760240852664346082041472536345001958653745283055079962367696531873558762975574309218178543360203604388944473195251859890063508371443664856395947202406850160842729637173082753223348584511309496332829278729591771486857734670048820097491117546406567516860557301744403983759547348868348221302394981147646234625909022805686956737655749917645523894373596018105831250018271378520908618681610355730786240807516927588280161041233605026071533958296383341576594661477576860246897361233648613179843702763007382104485016719902508057105593826202997616951435534888741701344145250169502256157392832681998365750855554909636791350282779539070465487193491506710993387164799143504404402424541546030460495811733893048765638886321229367410855230894605410300705356769946000491721412498519049624941766631845391393714880741056813598109807271493334706856321508421116634383521102627469719617255506359616744009986482590921275330959542298962776724759850816181942994671075867695025505825617423009069441656494594398943429463442840492537947088531456844727627900479464582391596554030781085680139123645939551335720301955640833616483361147865131541517551989361239903639427312452392078050244478717019355766613919742205740915325550660525782004624362339565643883311511987012473589659246732753119237224363159364841638733180510361024058067313372963953401070691853876433625153844180176999543237445910773041199049191878349862450369382161272295848928627245667263479627211730760100952550340821530416176275921745695807650738419038988904262977199126504515658181145291533188975233414434495980485108825462670009769069685810180702748496111858992443838260263546005673237130623801319629069965443528338497707205651438076574346033211597404039536230947983933247085756086022147806916223203164789056389994695607435748181347168392192012513236996031721524700474908700444546723493316279315430819225179480647433598192367404453018368687774592529845968414682496260439853928141811618830324407569693334770645363195972947454922559228027733598974323766359208454678459574969278366541608939676808966323768285065468400695101627729963145582058148997318705189556762584111753179829818474322152144880545812219341554704741910933661490365116751002677019799153415527064907146253658652471586015644809549029753695360146831509409197318059098292483573808396334528549229191964197462345431934711173498574029755926430597403828242967158310059568778885534934101446191157566906604066162926220690168646788117195176955488564302499341629207531247251605438344184928155503416577838884696286712223255734694751406346379545045763952616597122308175358683782360378558239698275631081043696373061940284912568274965900796215648887967362100060139641935281428144275516589870769105704128650271162238627936123885818879967717166745221250918460531569447433898076800886461431393788081316141373291512774823595165667910501733695086350626524456615100876701310165821065028968862932397026999928832712507390638388959477240718184839080532337096114864724052427615629678277327769255506744883551810941892965275985643597213662848980459622398916315978673818819483093235025404850240020951650349009009248899935533672802332479069240859231007879283466740415437704832897700749802715548064121898317908829774957232851399452245584455108433431286297621265542677252286284931084432525031940153562267291393942262872097414206351064046082318136696917234305566977957542617859234569425215797104645970397615251653758487751152956492331584297176541208159404728985077400926300915663974890227785965827789830448887358250050139255120253816715248045178303034534470698939040014326665163483118166442267878192442422838497780824777461173817048491611354731786035517328811278047542783088342377636019728593512776291272507648988745604807930180044338121476797012634984366238929219937806246634493026201379098852201061109099929587792274829286501783267142016491224881152535366133362621018140435672922359643050834272727527351931174533544511489103304936292600193307984222577548325337671723527450532814606387240584124287436237452991953270316850184068846938491076939403582916422675122985272413176492502866806043873748124006826514634146783647653373105864095269842606262945822110514199083696915916967031973918993850539719258093274370500797893634475710555519135883904042498819334661784136424715777228995616632999108725522803127729130730402679720849766734895269324451650649880416167776307631977351177373407457346211728689057784944173246262808291837993406121668181056416266773458711211466383800860070338394715113910923067293134846302442608797837502584782859160020973001533047651954776499760527649043506774024129415224603252528659066393647589503697972914008828346075211923665430773047698305616872908901410934414860279103270813740457572536225728846771250535031095090871458044732798242517453782219636295322950066707796891939467649028618102954877348023915547859349117744954473708542134665130177016142376975640395571687664708232334527394763054629316237890294542307601898095078167898703332241865522541105439284214229502925843450404173490158957722788611885590991622196932644037604914417261967714167144410063888276663694499715660593388483574827380367373824306525217018619332294304186277114239801802593683549769213695654742862646510870591328985283196394718353348056256177587326934513065398980837336203453715381363840684494198506276487612697765187517361690911565872419817904311878768028717415084757501348830844827766207177682710839039462289276532460641957524184786167242508199097739587466359806863439465782851640259834982246783265519977741849908244005985205114942552285294091095819278429879134288682724039188267988545349883082341386567089982087596907567425930590615315494703303814162920118623202951828434153644123885262409842429046579273149936434751602671454268433135812356486472981729469978606677164588164888889370963374404758988810222736736360416931419430447322948630931497977005137837819035186822308891720730352488794220461958730300777438886535610218928286315603432990916465073647938319346109441633610547597165572280882503383214578861257166192178712517142166258618356739194231388342095841499485345302364381226692386801386038924448285811758138099861926518342930350600575389270602695965279230202083331290633036113200167294220798390505229503544462319805054422343694603416002051333405167418044445003722756209652112687481713442735686468697770421536312816402821083982126610782431782505442545871026716787454233087069153671522328672090463328403086118844368082486734408361473766908723464569025988136997429887406579423121501894059070686928987819107916393782988973905034031890395810716670450450654008603035216175147579084166786248013697207390605175965344457964668569021329627080902803112931200576907673036900934442751831874419938922427626672570555299987302375962622226280648025571602336953234980140445324365659086749398330291782289861640823893882503221707324427296841232962715124498168674363577809647867550569923681488618787260933582357307253945824115110564908656924076314515145598899317220291497774834181740444791711507875354897198485492447415746043398860277683140743474103206936642094185045558290074690316889875277098756678725555328327208945238680154058356639624238524552352576814004482123356084235647502702587905322519384750156455643582395144354248293504019980673023689258066646001887390439687915662767847796504905265706555659377881874331179859300012719486097296622049446293976502426519092872989133864448266591323632783225960501059022224929632519897815383215416578309412260747912822611448178082946034545222433732494603035121107713731987459288611228685967175752723907600894059610361587410349625037790876051285049508456819705968850957908122336364212351315238439304074006362053050042451646289034435255364752670284534905670734588870005450819842322155640678616143084626457193128211067207086697168114583880906402222521899553676452301665405983266617551041834532916764949390062901398788654782580924761467766387124313515010841730822456577587129252356187218445554852464594700187084037109108398731142888671407377568353944421686623572969715924696312806908666895819295394257455755763367797786122375509840248595117631463915211616497335026103418076871700291410637482558823521644415063398993049604865390780949963888931036079715294383403331943112743158835879329399913902149886013020675794226131669543648547320802341909256419457078458171378935372729504996037198814095416789117195175612820720253681726589390224860180907668244763086869403347413818193537703602207791908568754400760578702558779617129237657146632944226423816494987357100884468261688957624907495148628670032845707881060892220351597603785049140572134948274313115841650038407114917392480093759924877911524054554965421274118693128617209409147930301953899024381915623669588429276589045996009003343278160329579304570176815261229278356556656014303295489390035132212424860505618598224004736005304174683971318542219346224571178648972607964719787142115314728495248306436624072753729143991704551491421160995838714713422179423572746604085233197392669980262623768550425740340268682375783371988124781902767615188854868719264043825360889317237628362836590248430297048904753426735152770741518343197383181356098601322952603712122916772287773042237656829226113610469360158105655581082994250585357598288899975727411894847767160111674764192395777509619938298163415197627694985247335705495114533024050805955448456341896894529936579579250866583933648313737423534327747342129233171822337255769394112947990547504804614842435585937706574955996879352639791390599108472144475627542325061012550836717145926505731181183664743912672996467932884200833739057377391813186430237338149930758007200362622325950590327056046837536783450738527474679402029510921959596798407798174429391663896576341070421280648706460247291917116387182803851350192653272171021035517790845992881436608778822768610037197888799321874405156897239371437883443226721644509122160265428953221650210743328867360540462052390654568153071220681056013541284463390898614217174703385208475212851193102809145536626521718233773949897267527368164422772675246633923344138388218483814178144634317446075958825852677234576981641953009849488953486219670611759627955195726514112858682998381642009924529280605238977128556059520132219195376855615017432354267482028797814447719543903184757548387331635886323131155171067135999512852365569953325533665391822498506442732471623258542469815495929235509721250563797923532945474749473972613557216034412403614003992342120484049516308568486789568477323594653116413566540053857812075202753788572969738711594247926993964556921004613240246627003903749375608619390968230516693178150211070466642388819636272849351298609365017833907548251680578281367083757042891099095150161790576244440785988156076416993338218661263352308922854470499320530164640724780900463164773244936420747044358305256543325156349268346397301934672760887695375615310177547365110346515509659844868615074159952333186078390452708398615975606048737456428785668711963899784229477266778691767068319726194101776999868508320273238169767214402484194237294895507920874590792966330075657791446842811787991156555689893518526232529878575693579755177161328342232150829807707314049697599068266681966519577267019573927812396658874707354021108485495789922641130784870744536828619298077772605393186546608338007677708187255925496295886668193785678244957965309180646568073683812407027827336790757424212688113884275755299665351836697823460409537745860391088649559725893526365162622917208810808600439329407399715081266977571345022444521828183244358614172336728922015743530516274007833228069523593043992796091304426329253114716289791394142479703186214875673944600602759591473818345430937639347624684151992153449692323816617698664215990394275187639835038735605143285007412646254411558695291513250447364683201648853911745067062893552416441574821352231540234982906750084171750540369689586704137866041015769447040790930965842309885944356717625112268916079111029102015131048527774368680536950278723997484196243630355542325862610828941527210650081211181116501774674889563455837448178062023089645892278970283154652669854285501001147141243131999914029417592950396083272679284613554730448340682354738638736698604754095283857963495288507359760720934819366703541290740288171558255687707197402315177040783625638720469114153817435050509918824436601016304097069842992881020902968434010031876505239451751227653573148662951550867391166382855991014520757569175764028156147487387526175354805591097584991485510628707445530180288206582789069661095675684307988697904731956748820434835346815932829375202742163118123390178844068849644306961410286438329702384751966640966624472089737869816624100945406224810739031775729498170984992972605659981146389771996944529505860528632412554694252702614621548364529471201926000239291054511317635629049590189768792968460499399333549206994058647332312236208847842875351327510509113653132506232634735934562677787502623806058380786195739552032306066712475121510065636368076086139845538362169162412845925190294729638538250281183026530302988358733566386912957862647795257569555798136315191123522017768888209490403685077067859928542093656693890947863366136700452969671347842838553173925776607136699055274648404633014480377687334058745189833978374796810938938870659463429136038289488380743217083293248401961480151381876576185332247745258807275407324194274257039653933855362142623793537480326895375952403109397410473183847039634393364863426783470876519850554122330749465538610998468357539993510400767869912534734550260285420646642205302129262868493131593602863397239656094074569833801467445764962537923316680259762729377899051261894665995591142379903703578778856172514291166564644139363995046119541454538846758344087880200273804379934701778207692978668370867232506050908185291991389770599664193531070375272235669392883326201153849146875069240669985447104412609099289239106558658769252597489521338819567201508414274399566012017240026453001082956924821798591661535166172671355511285218104064906208827651867866779761048854449554507387004061008899496067157614796929662927564546724839603860384131649738918673473388345072059554482554426723672392928018643471713420322113629624619708352620282900515765536291694000212130095845517607922550187643844425629369941045667285579408354829349167962030961409751548493197714325489204032406037215935726961656350600357441344000245184301239113916186480950472812754388056710336795184019387512563891666799188667929401906077406617548309349982415508172768180862473002711531531611667390482646862365113948116125057617947497389147558806202467657402245599184895489280800709919200570171434173513892254245848636569955454649397349120086931709795113120448379310769162610062033226150498830175707772920250102030594108796710643165354980735275815494977822952976068558650721942138691072116198814672094912983328362879479570484355455484872281114182962323429768754122457124841155644733271421150475522010344104163220457740804119601408364450632673203004102152914434675501058259356498733998204229169611587973115514798548493908028202522028964746591296134158715496522862668723276767202474142015491510561419304374718768883416646841034055278531139572503657432619525293129968001934353251212309995586648892695881249077511575466617382289528956293061876618619259551923684145194262441556246312430308641773850466394777746083154429019466602377939423935427424378778913918178521672360127031433710809724787553164717881401222909380056409059231929761370613467741319405423668807376179521895423553449586627513608795807312275305587512998367445325644793772185026573106072030636594663362205405569164734732901377306217126694790760906480070878503732301412372326667489344419115769024409027903150924073211574288836664406566462120548843353369665536346913433800710290383213864134303851899079785798852803665609160249168654000618169600528320238178893138465047603934909539752035563739044631385790688260430224519456754604010337806614621210264381578961827232301960092682868837301526227686544258467048005724229979849350593091821964328741220446799289900687899214371287993627361687332665586103665387859369294957156242242085780803119668264790770663714494001323768209511985608767873774142350557772694933566992344489957659128408962481877138361288082952237343055797631015629418264999047499237962773826741707479859741931381844378252977667685836596072392800562186536169268554550898564882533104479925174480989258136523676379801305342984509679847099422680808711063290848390532464640375740840954317753679418445409248208558832921527878311346286849915384657244469611219907721266103619189648277657859615439850705618408907932170282291911070271515897426325831917499585481773157190715387717674582600174093368705370863664981440063071641349881581615107575207473813465726234223671312511438486865728062150358126805895789849555309242369632906980726546761932288150214615762125377048684763617389062076473085939266444799081703189664120333801779737120277429266418268930881026210450395254919866150409536105684692187879864745910185827408462060097333797713722431265655183572399795251361567194082545452618755250599001428240103113770268405810250924350556718192167730229300325676338166861662220201830846158042576912736671059333178236710314802136758556577562055422484716740609320509615993724569836534465720594718801866873252070625479823210032693036547310080972417333976898566877132417410682976499858372998735636749299557923109942774718269809776457539781951514123868635760880431151267504822445613091940067672020128018860030166858372753735033969272055486716545347216466576259445422533472209967739762344571751025427429217760255883220610395629017959591453059396244522137797397493399301414368762184250279051290390397283880582633472061918297273945406839844406599809846448625967649550940042574745509919219549389238988266625936529425719279543427544909052837591667173390769468798619431914566109239477299038695566307432027992376758911065760137314034285308419489887041661663518500253517835313952442397992434700891838743204304271058506489762873266110479367500404342103279498338160519356618201542732946402394413161969866330587151172544080440529269093255081237531689597037382026066726316256738937994260794869511027875663771608817386765485330722045459489179372739318178368370613926004387651084271013530109276430610349859928649859766568968200253258824049522590221003047467844922795848938000479894243604242727719923118754261033619137099485373858802214439808912351487042436710021561295981759324769721462890245565454156512625552558051612089217824951899137911959796890611736545035020707143288857391111692218843282545898266387184846114451854839971393817091496229240447686134444459210046955586542450517169584544425834582780896258821815727292292800790133435674806967120174617790587655370759692502370522472096324329232448006133875430062259050192911648579211438147005990551617851621820542122816500937064990013147578271077954041237488523796710349222180429652820184565125838899047348448442130236920458137134022895384885392455097716439821904768652204246412172368800966547759305290281225784065920585657038337966670397022483758484221668530834750490506368050064073681937731462146293772346603024807802604510539954089845271690089892889197196012310345289323824242842333541209383253470696958061411501894070248929159781328809473106282420621910069915517111537417425374677993502517960114185735465386028150056426358873033957403825550582508316929500468328398287489601602347973589484226671712990704394109523101464911591398731845509900503797293786774413924206783531629846715594396061049430478385234883842144295151901480900896894629133702084813934238400961562777692705629401866273537638526466558177743059961329032232541757481178213778643424996631328596324063750753366405967234395673181521218216209109669119187850539807947741321775262625247253844791498092410533690798696615587083207936481401869413448663622742996226456246270436533829516196961279513643826778388873561903402161917748281563458191505224838439111078973000741607892663238136203603089406692195178610991119571830323400467377968082649031892771828836035644698926133770528565873302194661543109417751944805918511479011790787748778396177180112608854874158252341309719000119502616668850305226810810914475848807314073162236555149290840478082449090110264576640015675290917418730794048982695421135946021550817931492650269614730983148565874670941710350833757897511958622172713340303954449247859802876895152826216141748869843733248112350546610534458743736449507066993239193275378505650066761318703310263761883865124998047725673254147074179667809674050190872301788768106980872600382773557987539588961540434244706301979577796874786557488439853599376424164682346228277471070782933659142390980748771682842918409510014264078965141576312234890478094104013914317521944770011683413190324060983697526519639663414998114250368455248757304124102614090765710524686181537632030703193613950406626448955017704517256134243814546966139656709005042228248999555502698615326553701140362972894848318353690988590237457753995592237354210109036301622359547967053335465631100783464857198321319987552342844699999734821332189031160446142892843475357312377873243327892612697446808423916507172196169891825540704409607007519966861668108626776405497177137249532840335862523968874452185884733351301252905201726582591934014027797951853407426878613178116016519862283356498135323531815340923542351573393545351420930926817681437921869821685929174154160323520295586461959553290358941092707860741779777847332946226487910442045816737356137704023239067820895495966120714800543576592181992159214856515927446031082022624183808644908558615020688380891538803591414768942395336397023355290057905521352064467359330003169207484554446167113591301013165977950779380772621132202007710972448969597627961786642752272523675600820664468329448155915684110164197895242096095573674207247651916019395115352306542476893987848796357546193723085515382716072582055878830276686235505127290421852616178680775717867668388436073318417408381149250993282011146249251637986053369530804596127587305048318597870098833038485347318679075560258235194128124181201134560260263991389615951848961042908404541917057123504084215441556181422279252013621703975056776347716739054482423287000351733426116406715909091368376792124057792682668831877062763273184103163336507686663927636915631655490448632113968121967986866459022546737292789303300736373596155061288525539178401687219935041378266330303566704989776271401812904770548833787102406240844801245777004769610124132572232308889795861018202544201667259525661400416660117367953128363416739062698339450759991021532751200310333539179860881921752087107733899319072227059455880119629347420626320850279386022878246726307403604206743360242910035963727172674476071530201742593850389825220651248452755303307095081188504508065731106947725281938933239884738995753843684982060032785759537800899923343852124318121963888452590683411036650771448289585835178268435776086675986563193625892107899043925469761109540115786285818122084236376904184318950759787205762407785874306365873368916821592235453328678967044137600285291522924011135666131089390331991652362472085310530154849880106135536861890317415845367138003372651818424084966376599291621585617879097860198692463898238475873278366269104146267822881576747205930645252916975159658626542837288517876536120519895314892914440646207238351045798718754692280601176756752381512472592061872080661718573989390532577611489625088832144672305460303366565966298948755556396252846997292339155398416080752757147028323216372279681811239555161603094471984048620781365153129652696415518179074870069558589995634559052036586455480903759044423227283798033373631835415831985732756402825454598221325498972912688010112346231508131086949322568140626016230952320740773265178940759601809952995416711603066913139490272838208128174979567911205870295881202643443970844083133328100051071284560375477469904506471644272937487387603953305672409313888743523484206576645119974254706888106764997001668975862615492167947272729278198115226593719800357943237617921074946735758735904141062566520960555732693206653188942123011511042051839850612882327394664640548763770656549649423293357316127555874843131646498715460921425914687544418030182354365211819677484901525227248139993039753046824205613745784791528798205689898827993165238025240349053207062253951305131625995871501610997950060587699841827474779197550243203733435393837286393596419205592033588109123027134460976109270209852657938628031959946424041114563523534903895755242506493282672797198326483868074620146665172569576829778544942995851150092294672606570972976916301783408376322439148618324540862272264840619050073469782876463098410546899274625970763474180564383208465510482126152048004668993102106779598787529980607712923209544696830675291227611159548778135003059263354332974876179259863251020771888151427993115748301012536878267356510748184185492367231426027044694579699446869333283192822583285163593458103762535968105184627158188185710757561233241741069123674122170006166532792154227910133936078217264400210048076640772335188833532136589051702729608884832353973720635994054543650587392378111718699140232282486919481842674000828778450306291916418300288766381641938994998031473956010931045755673744589901018325140742249631234117268724625451261483512492124072026876782585601003516224184432886908027641967522913613273567038882645414490994021524745839101501474429016175924315192404271216614432137254635099386059223539845683469483712330756137202086142104824572667680014777448605192439645009066125748642096909748211376362076538317331179895728221562610311843796733602710947782523451294013967605657771953295219884070872613704127024718386384590962858989879837371652416010635061908979694928730273026770642537854375793324917734164970646106231042669152363496414647621364069944866782025505969015618433984852008980441541829060138126937078250612870140984100914974299920478265273894215209576756476971253466461319720936934937381392427051107906230765839875442612283539957900675965565996272921378243866088174490842630619987069530664560699225340261195857739315697174925985735054429661377914687355649716045878046401141060194857464951180872844601791068895106419913998602380701447850647758211290433866779882856423760491398084146970632541135014935708686091447407996477841189144154341292723756973028347553676293514785889420745606728213705731141417858779282271896964137135991787724218311253482186304059453448386559731038871259386207424557384692308442676578505369765588250564262235289163393917965832598215581134294922342722931639240257293439587294448583066933760755107673051051992871495193836942655585532718847539770693281886399833182183552266845830887368470264135669201547354106825876675995168188328271862699203861200345678747949927380608205944764147162040467737827475121510330513213515146112878685473239548083445985003458135211081898204079395738343022446434811983175610419188883767944145887006186536999068741547163639610049093567937384110656640601646231776724015115092561586925989751126500805935226508925689467452622018938325424378032928015189342330494523076754505806751554548027882576836844981728503196860687331380123742528819850083536625831246192144603320192308145269244738619441183024131344014173603603426914455682022485853044942679399664195457654557259788038390571581547133414464202451033613319997808388423862785119873525781078501332486035677101302637165597933722786732589074527805583471167441535342041974076605523243156214824199506172730018728044981034310770144145730071011232770235840253053294181437360946887128115417723995725320723314579826412321348331134795705465333353110885565300661333590236125250062629779983798731761946555603892032246265686797043835686380280057995292418634300698691797616520884314661279551213767835429585498342970506261395980007940535541309319133854284619677454385932318597393074060095822445031887507419189227593495861438752194134218259366628770222629362666424693756460840822347077969726217211649377208817115935466073207416437778841338948802654089345405894321809800642145881615027689248402178587196403271397648805374240879641420531004711373814570096048126272134921503762112717902951681387927209418622569022082197938638411893895938668910446841799720890361339982089706226425982557287831873885761212507210523333495456918699447114045116915297793977113219621564714431781838970385018272123183837280082931422184301825249562082171834541188793614630544367991849947308664105913934129467523042231233507732990313338137022872970680007218488104578154421339174836408903346059558949860699204729315740629998890921130282249421130824259483761470551041139172375455361799520529749778219427240970895706364530085433235214129038895993477978650725768745898342461545380601951793516688698876839115429940005070479080112479039450626966762299014977668866386960397467287429889409213182314336001235405046337473592980448351330141379258639953219214613907331396252723217028111039769291408524070231181063103535837450503396442635675466674166117450541654013872121259106656907963607017816103238537317751791221049105452400956286426018890733072835584211712382857454685158691153423358458672137796857945908982502534237443694357639542834668658021654657319716734851318542562131355845365990904734497739871047529029304396430764134677721149373759469439682881741434316254633281932252267956300609445163756500822720564419612845412742234154399351784160715951442117670399405669930790751992739759667586349216718132673370726672175144989098922760756179810540686426254741197483225427438106913382989105879499334711224998277548923264423057728558653128032494635850938907066174456287495805665112608827156768600916316043348896767131616810434903512025437958741641144989643943207389020715448071372264624233408432488606466959772954729192513089108405963924116144244029660329826042719997729114178049096056679818651325401573734932024198755805626664313842739367401906796214274384174882968711332548123184617818866870619294543386441539295510593683789722433665397277782152512109634484947438004625593215644532531054982447674911368916416972571699417823855625557689818037183215347294694015793826341893796774250323324875311689446519124309545551349230957217327380946591352000814673587887917234943238295660120353868702513951013843265327036610753019315507008851469469944594460611943231193278034629274436875706356230569705145476338233984706897635118048910585889160562025585805591859431483842013903351556299836628495600903636103696754834870208561239565356314747297948597685937461682696444945227493271752832820865361892792278472071107292236775596956118864527478162609088441063309902497944416722167969871891421083501621334474812042357611932749803802481386675358869413728506581720403323222442906027533499345972589813706640954948815101434438905186404245715822763627950272236158151182670777657825436626986336848171287059291575232303312113478612419737969465357418557161793307994879101966506913987951188097074930425899355169236243492377066748059820421206805111818066629295725265862289308795096674151765109314241440282234447577398076130256488009482187465183444650105885918142021018910607201685189487154384512685817081940808959569474951352505206449983950361163534659272785948767126549761982209962997985514325407071506188849471371610125051761873366491160062249716261256280554533626002503392742444992464014325276619314349509062370475818921922369031830390697360248416929300517060493186835506463035003702096590952119017173428458191522928774511744425719086728440221529295848955446830748253706669916870398600765524174268050389774972274863578462315967600576904140991213566958134967497499898510360972074087267806128175561154155410088868722754537515051496508080795171714076590700233666348474423512620132621900637878282052263657241126199659977852550511280422674760197373743883777155391620311204867350567336744374442063411638751389269988202738684818760206867088975792997055870229972077310811234521409800522327058185000256530458795178620484961068420411488194733122933524195665816220777781051231061989423877941332161504696702017311208335837632165393585475465514453856107832962643729376217887822745328184401371510974219394932444333733598742443483211892095000377125891701296512014566612446828079579806155737114182280110800087916626967838617231033023752572503079044938220184125313967619968911408836699816957332514691633729123584544220796891736669700931089185566655462383418844715728456882213648219866079247683863226098330321525156467523283262233230827914059269337514786295595124972288723474007266481839384601249992339842023873528745753991728097754645699713342395434510411314614168480925871069876942631290736382962868318081597892493419358896449959635356433910336491243993849017532823580771302444748247033497051253322982413686367902779054765597605424371981613486769869244989509436082162330364373789341894349041408091505118836293576733712972318749642283194263327549356523323821294690603362851302822419767037622716473759162873125100581853492556568734997501270001513433091383712205627828659112499718655080981995581683742987743099425587803639029841841940862543188205992605460308503696337368160050564511627144902326200603997042493298560719866153351354507895223584552544446474311523099784141209854673430706614159917295617773939885048774789523852290121898578989515120394793870821875858830007345555080351670856365567202945858839168708047951986174661879608507368042427023094342855177954305807141383255219863460551378192822096167918220990016826994130230391794380090063972401417879267967450609671919135527168952723808858988490277374482713715553597653307477711602766217599364165139000704286545738923081065194798430723488755996117926332650223788354712505159147594138893126056605758298248578554826926932361304058936339933686564459495635514190490213858224131649860838152664292807502817699120647234216225148572969115114638604317129086571118252318650241210497296956149163745073780066875797763376811237413291245173250756614164459531601430093193328225307383393902872416973957064848142202002888077196101532479703568313986221724529187578353995476927834315408150630985164888843263237825481282142519007958445240457065863771111375651886054420567914664915645330843369465414702827591255781915823847220345105187957423555495388296027679730216468051296618214071894717436865273153974035109737705860647741816504300820257180110248860161186757167552886210201076489402105679681282772840124997601100648954267293836836362392752019035647930077049346646519906548915550155970564043557243697839611738674956421267088092616131092365065486758681519776273182846520568278544241197082976043561956586178198326849260326914151658494993903461544957049394517646955636444582526572345497860893761541508730084724714670713117972166519568055348748440078989720488077545018938650555784403755075994915932781817010815201680958727174234689228230851433571007393714327234485508888575586814859126308377422393736549936120818746458425615131340667679796229157783585002869524086900739550963963140434133659751235678167336346418666340976830535533175351211731030380183304895550493412585233012283361664918991626926224653198787898610909397247117169495852504817027589340337722343870100158959078962906530958082164912700928573147815797174140360668509061726984259933260170028897906734381031848505510109051791157943540846420611153835864089669537030486103512381760385903140825311594881441649476663763017763860414000351584743251816901493035614749477354727730152903296574605245703279938127429117906679322778934919942295067895064388956613765242788415779023822937374826276715465962293761271452549780419721530570065402689658612620905294974549087456970032266387329782561109712841952627896380385316503931624514312977689197647467005536316396958058891748347616563113647708807053865254881750865223006715799123569954773398013032624989376997612660470438156717192014718559700640032269423961619092469637297969731489590038696726951659827577070140098720558833411799431967660525860285810267103854020076975907040820868827609833983971003104959490567137010837174253689001117840614652313243679527568623636433724103538184636427138238216419229668184415906996910310393216751536447083507331912801344959012912078888014059434568909728443368506407778566343667123107655682143495370148972229245579941683636392140000316747154171591013178179661993120155750770282792622469710485269860965327161607448861334724648930346292075964833481365688187946660078159028816186652868722947738314900784063486051130285425789853295960532524913467090588320462581649779757427327328049612475547903548958417287166749209253041937419578046659478720551123875012671598398127537225462517673936333756862121564662378679050368704610820363845366258199888370780933539525268621912965017070630997675010042796819313230945184347732446465383332210062811510109833822036517712257006376308950928799143660305545332135619787768979556586718818471697599293997020771904781293908254251887726209168894832048361924294276479687794381218697681743333321409066129620541825381876116916839798560699898709638958055746254843061399854498068952923172208828657741936477638556868926271574984717988599001989717713394227578483740682152053575138657483988704309224647535526984091836260731615901790577160577815799703950873289838913214654309243641812844787165284292248468925226790783776225803661201020693901344565865932789291939931729740739291159908360585584999185453446318463573616928516527935071082933579676521067875924441444254719608962626249747001634676915222207095823811626356504164660086729073586997197394347357574715844397864060746324614054559119953850251842967791934769259165555124870616004084301123710894711067510783920047934373586253046739797291228114567259499783095491541800824696734751156812124349138741858012869409146133023130980520111202072346162456613854599638766363492179799873027754731356694070821078832721446747341266484129334470205038670425701420817351072470419296807701323854965951827968729344839343765547681987223185705196598700569437250493122287971247599227865176063816596867026761470742273896078224723591393083726501951483206365644506369714026026769571674268172035987113462815845007863994760007206612413281391055738520995514221271227439158868784514139310309048902952510629820965282139092856652164500320261151588338558054232845279582094809211085425319893915442494135549895555778478642334126712807687069177721003914806968010210200426805964350433205395414151703366861527278025596425658449876071541654183062260118502589379440807732903699993099514200369940261265230089362823770459119331326972594123396567606033659038831454685968467436225032862147748279387999861330634589481465074286385980986955446267765793612905934536167524830053208669539043693810398633890948841415742219879024572913492951521443568825871075176095496800672900828850082270120605965130547537796276056761882200434112380906107636788107526799724185949768364998090359927641427482642226727484648649552216075733809640249766542394173313607912908445976378205776422629463508395219343574092611965328493350892422275370035889025496488484523892781880658756709212219608479035888149279339368718157793242654440963561041423128689130360820901939187481690370717754275262961315610333778665907626809287206970896543221600767340424355031267094124481209486597572882827767060560202929710353210924669374118077629838812684056005993951268563333823446123954848584981087911643829517502677666423531784203168438617780815432041773337713048477931206797354512536659983662819737237462214306736915203707314839957729960062721359471724125845443868033688289948703203455579490345371807316903069030149352187983079084218851439328817009019182797409496437692640631531558423081682092359835804274104984901389664903833451233000073760367598371931729072686061074369077579895021971549179645266756480935815010769993449404777069430641402181690510654119230191741461987261124191354507040907435647445348001670376987839090528415433330931198461394185582534230324876037639927296257059546565143500470189260679744827593164637880713067108267392018181106088691341780528838243993462411869717219094686054088584267158467369760509957845645449824595431721942311917016331944974617072283681406449953132810611093119886837113721939852920813488248052466704255899257988230951476620443998147627425386198271248752836664103089000960689836192340334402294171434741624066108292296498914475400980097417903781803087682193462957207176945750470230713940856103860149985417569227017398141966347534022577999162165890126214645690275140383286915354722103819636391419431890253178177287806089376895779102020462415172662287724071074430276560878092784974960603656076785163382041923821778012620068682119439861741284115635496918609280026145304188465898814252898787722614298377903351617302624886238550401652897599645242457594655194521388282666027641211194618694537411494982412247155174724036578237054389139406070468831900271647976075820125124487197127189035484598614960692926921576816581506654484768659202230525605758474813888700895688666793450119235942678945736208508505371499443624725932461929070211176527889949578396365409971927156516361213749514859586390276263013875579904226171704812620200960321989982813458351182611329590749778863780566659771054970005210866190698790529318245523598748820146578780151759749425277238128732776730711771320455278978021961425012034492677257162620394142293833607626493622387480485310741338665350247606689738258301909342685171258793789266086925729963089358161698775888251158702979555651329957834715098070513657660820380472223304971870207704655595151344344619767606948674087753691829163322915140316711056882813877379992869665292589457973505038830535386293860726472249625393794955652472841497149050441611452646890391761660960908670565573030016581008772410388936235657001279545920780941179326328956928853587841138783729507035821244580944149252925952097982062337583289442829674009531103352865358317365693066318337321815454548662215388426977599171403876304712945159546875408847368811925613184097076077109956488878236721952728006774906571098041266587596989142167868897541217523108512661318288771205589594672406539419472858603894406849796387452224619784819816348364892233353479780927226854512896242904008183701098174444842130780795776461250259332529180867788863498686267785137587232102503785597632802322605210415918628032982779317253582076295354381434560779445626026490898201248072146706125799419279422476607238830067853088478055105887375493961682384855818577779347869750475757320306450559077054461517496454401773198204290152193518910368932671635856528714776217598501837391661933425896847094564283249178089666849333280128099399314345995700531127557118109520856968958848341096188382593675093921472137992928426754302527671020777521239881960350512148441832219911616986601215371741664875552367138001641320322548051002642403096406472890042005925929987240449269897949600227169126447462007386029015238596955750885585480782006242995334172700072800290974410134236190265788786639074094908385310923699272302374234556444319931877442507574107009671142060759938007876977661369732196329589253311939023701731709174944276686245694242218296459862156892573962211877968727821590647712412813108208474417932796010236661895935762299371335474803311015699734622792970929981786166142288637386171195595346410697813507073099775654941443728617035285383915082107597801555380575969249789757323496800996775547542389957225083780540832964905287850154649903225842712315519238267910633909269960658518246525692636151855994223251351305323358827249025460517166787407092946348802862319182570269130391871086152880946560881109069678046183587885669663885336265242712448081856979648708340325626739381970351756228098195520104272808913672872858337442470154364022404040003033638283446114761733860814564379236708904488287589633592379097134033651151141448785973656452162951201158146040859330392632730233518425398018356609746402054434643403725623018128453511301392006812306166900086792346567227771727615907147480617946713102824989901163294740467813293836621180046116173476654773413228469237993777946129971391533231392983520551554264081447001988716529341782918983382383181297647031180287040517812703221255252893855597002566550140115250909737474537715818712109902463341750968058857162744390922598053888762005890057933175768861070168728504980104164837085304043870349709963527353812120989208622371389283800483464806332957813929834244549646463787600293015667074757217405683715651224164078813484682082036730163236276708964048171092381922594378635047363904516943600345733521806405078326745750931599624204907921270629300872652102536441706365833385499415040197673399785377032288779353206017485834532439285169860191178126010108575278302206308833844529977901494269158443390594960592516181316471545783481043511572948008746943075347204114792144874696277491438465985923030515879780322796193464064644371757681289663329114386653005436962756846974539368793424757075742091993353037867200570358374420595776742326325274625931234202934068562336695551933179319917219534526473421649925535926765579189224570307322906772355134512316656167268525101974495531329885450242922240761329684353059980278338496245638700843409739153713676926276716264280627190230398645544594282250985422318941846248073548095313878472201675386782477335550546091632995695765859311906025026197962344225232012203153900637775823163221239793141438882757890350077006870648737145969099971923221262714980245350937239641086065485013200523392782572475491490277354189841731359435698224926049702254405228603498314090210582128988982796685667449256621561030121275688363499755141541913091007434674040118746393335356282618461992816462370369255592860887213788810364403638098072076402575202386859342818576262038243443320105549042716233775805801282845957117118058318118879779979208884854249897395928393723814736811284042833226437316663417365223533850429848084252068866840131677042586400173001034075106058475580682655226659108990924449846182353323651085826793357676655333216209490699295655135673467233474800244672016224454595625414407462941817749793576764719971633960051008454056632452683125126445229024926606469223392073088494888243179899859364894195160621071033597396161755939645847455912145145710120614514603737309791884196307946595972272720154002042078728796846045609170788493617619947837669892924054761391873505212089824147653637839685702242455970957812833137122012940595523256207023455811599049019113640883132776464479548511792941860455108671435222103686654934512346133625858604899993741463847173157946912546469948115423146782613878871308328223425291946690295547914768127246968969490997834175043462947904944778357731121894946163395495412313793620457406185811668618673163194778370998990051223367406955982353499451903008239176756594243367264212779105468696126735633724083446815219229021564403851990280388516532048612020430292590274224934604152500769506186745861881304774186448220688106444110335317653163829972131351114966691629489633000796175805015467917376507669726223412819197317556410796773759406321159647032575225881553275236478336588504371925294449102672625019474187222549230436338250576287863564124276241271942646942788020624912173418158809683591977495125533688067542304730945463174358149129488076950348585221988225179397573989377970553019708420513545287815818392677352730851311387222153454441724432126135705042690011051128515807101636054154110788858547627261767291102515856831628395366943436864523342836659136847365811619483306273966731733845162516549335581499813721545063572779174700624500631847137084370135359452166143495505101177919070862581044928060536527405957303186295490403735703711137513491100159856258999377086294102854970477733095530436409756432093939971984536813095332174607869314075183784503877110004870832435808597154194520159340723082887054025879059877285598339635465788228265353031266316419575454783452336051252998913372603173221135738117592206881588936334199792574378802152007474811662016534319101137642910743864631819014707035985463307497652407424058031447114279681132140189859282407643912481467128138994704977303262787614211844745985870722101292376831184552652254873765572397317144264792917195804071942786049159263719087337102514936666388561889041141246205289920212667564464140879222353121551183829316615532800141098936729633245506291502911369316538073887059668769471729127212681926638697414289323852630889044653238427428804682202126407836459118733754968397675894392263162666368255538453097184633805078395090431394168695598211739947287048021456589193272556588108169284408217858995067141463100922029859862396297848974715353376044360799344017682932360225453759530963065926516853836051570541381140749337779866408177670504587080833635212798206444503575897747968466340388832809608062452961367138470814239995483791570118311510989720075414555691691196045495052849062537507257382774025012424884272068929912891531754362500504368436686335591557509079721568707611924598139904832929254083744581550194816454591115208651277048269451216081613606808570331672626493708441475664648606150457502812334443845043117450734801115360955127366503840531124565470484591047230657658276860765390009657306544030250661991752676388206938110051888486432690594323732198339363881034452034441957203474535512306318310795882581437843277844029537282215037620405432988057540188601426368861670052038680830387514882943582406648372899629781164554948901806880265540997524862582448912549384154577038685598284327402273601847656558038657332212655083462190338141883413823271961353334893169969888404435471744770236468822041836246576902669610024847722036397055857154134001270052895466676954715538193787989498657570855911403807025209398836894021191899350788362559689604864893773649322420994634061013538451640055929488084437395691218240080818636697635772036636160125328168761758318082418713913977633974828693416547956136573797977877458584102170919773817623186103788085930038058517333712138105486601196961982620998097788128610284916247177631170133342631712293370659143261983195405112566897310472272122707243851745972793426960752894005325353630070065257282594501434782156680159820670771585569316969589884300796318637430359306851465127978465855657173237540648002226663478404594618325703121802270058495887860868732697725925467865819424063882570267873723997883133499504858715916008026763501740191875727866573574685393351665777786528561868439832493035493360993621166232921559471856763870898527975074943273148258872143331210976635294504210726189744629547657357929884393154275405488885800480839025356500507692784837410718351898053237297014457193336884231020157474339250801450770324681944939015455389693103307001887780589172283951603498208170169939991104279649441102763821311252395497978596240952045077886286648791301892490386445152264492025670667409307909457959170221211701706236629857330076161805654376018817905607384019749259653277454546916324397756364603052954067177938897088979965310743461947173453624216598844523044143451673159696723842393301096720302892841655396394252557784184678585786440360176619114480444313985110637470988562362707284952214026557929727185382874860088893929401751271686176566690181566021779209041235570883754602537419668795212782886620103374809273494118841766024776906248278074579329589996385587607852135676734078994733712586199543167982573644864575496469565463562173635472607719651951057890624333471757268305012167933734823504032962404140898367759610561607382024033707753256645319657125025872727441071426071591537128200102162425924980190344866659016652264084460011276878040903057345431042227664793202833603341759029468545844869354579466251850648068652480775940944284535407088074278160704871819126807869065339893971809179781241227439316020714006627337928364571681943521870725042968996388495629339552888356770635848679087995502835441860927505975587518795344482492566626538935495198735098852013419485104335635692663118945869120648561375847644226292987400266945620062147570344048085966281281482238562089146614442141360063195888499881428126137019419251878280205164004322586503302396934005772874337302702540768952190533801565759215569512555220451724963805078508306359800441845733076695447099789559550445513186080822696851269648256222269834073027101564230280828618381242497509942922650789272362558450953998107077528095267279703199287941544186352086228791381038187221365043417727225051115053336968393220185742278531252497122143072215638338475777690603675929143873100198808859519724757923025927979723723728439968247064001269840735369316404571922151786758222094510346381648502454059901956969790788017214475168688708775586637335752939383352459743299884190205643980933512620554690305811620370855988483083264868965082304211440112562563519023422684797141463471468795078324632947745891437187384122850806486002263600563143234472103349335462584882862434025523120706362474770361329217795742796844723046396788887245694631098055607157741718376142402480420556851498666233875267657787571878339584421819209693848368600514392727194449793618427004119824597162942502618450320258003392354238232647021540466858475718037551873920584227499816894654573144751107048846704691459385892108243243717742223363418312757767956999867228117272295670932877379968698801369482336205247643996336222225364621598842827222709777274168543696351959710010877150126102481565039022567657436570397298608756740950076359250917149242913921839100353350681985217336043984104127194281240212084018872266446937729364017322312676222358079207480481975881608520895405300689876979739716234030136620032592383866853035213610501450071213589702942445473630297566401189309840701499498112069391881695153938847179321245766819041475900863269766657051591595984248157088492396271761467232252692021947874027211699116583232971655546623746277751360105885763553227969723117597612330170081668197532505280005940463218433571880616679667217822130971619768328682495415606945251246306749770473582026640719108972011879869364644007664099965891114455379100491291563846761983228175000743009421617322267777491665733628275864253725519726442400878039032865463038686756738933605943159090858406844379789495342287767425173381785676442214651782634845824154739920970443138074382040941515808497589970032810674152634979574023045502091742065481356986474279223667508376613275613248384716842049526925921117388088782699184338652150710096634659525331352140920492897839737569183455292284614283926480002337801937160416897823112127793593190175585038864147201337646432010220485831525954163465884903919806603883248811814079956793213994594297617707341206198241851893983305568015934931127114588760104521234144552266974241388252923200290830677802683164370565220258248215317475559155324057172002803984951400755021233692594014721068552164455677385852822207686149527040017043862067540407276935368958739139897901105320708067064435909836537112842011928561573366930849868534858405109458206972843580646405024614536719175138572650487749024349031207216610241180639141912147188236258268913076474833739229376841084280700948074291333486896104594028707160263959653302838162291514159879084549704469707601263720584746347804510777223988415938288795305933750491706473307049200651150514258275123945391154192865962016232232485677028569605851778195482992636319123974791791721701585207424463527471306921825967855082530828627652674523367303969980837118479485828850605207232200625289028714846660501049509324729101013716980193317245286105497361619147793110340779398196379941429580190682762092222243913857663894609014392331181258800729619480596637762460896469239970498316845036217384582893467452199105469790971919251905322016608416578461332405877169231398244413690654957492658168109043887320258332434888318849342671600619464677213352831146411413741303483137327387998026015632374926577407789971330406567661972621302620535550462861722130546162532804927991761325141414833142586446674460440607695655492490069864480421761837600699922985221813310562125369284658810722221320586385378440052542656359852990212512182579176543437573920715795923491727270224123488081020428376709456251770035482962567305720217150229678545680741075080234412845288477723022709362754839117197665516697643558127025959312689312003567970987096999343386902791621787834278863354561188880683710786373558960544452069373610950702370017906942176840571841320644155325363689845573606219765646342374113256037316114129417999069197120251140166351724642174611273123789211826624285349747305069762743374614498723833707029924198045219154859364571937205115883442438938515510449708058998319671235549444340435274757875457021591969914284247610190553370808115905255479235212526574949571664557683959169331778917652843322186332168749003303524418211853146108055558052649248777163560962034125116792908685736976458414829933901986864699240683619926640439654965668731042634808864022327183079355626934115935970968422445602265094403459853990050800178628173557769487990138227674580081224424620801424576867305217788185524640072572699742226273876667834117672847885253971140384020277887949929655713169981541466579637423896085652280088977642545206921352184515345344120397125496222031306133376404375310956499639908671036985449858424372470088637331881046078975949083749573257374887251754954292860237802205262785448536999749215972316744373590119700496665370649083420483602049814900636401758873959665024717470042038308106156935329123616413572122956604651718255205057130594160977331369851679382989253227053142374053579513149662230221163217204764903288329380018632607257958538879698009596867738009873939421785128976799461025794476434250770453548645332883528248151486378479914802603828658013221247157229197194563142601589760240281452679862524670373661940268828621413329967864839929875435661908673822698248066364671963075438890500739723284286697623594143320650926135219949756208906308131992406413915900565673141702237980916927226263097976568272208370600672351935541422953722499213911962474948765871951888946903707129968361345315141282561096592693619572321987188451742993679309769758080017953101397925527353814015960951557291045015324768826377175378751696484222392469337158053264562411413091592585030229044301300588682959672811681420091748253120566168327569038309845214591267644348132358144750388460719711928966107655529619875975165355479243540430169222165407466338476208836791744782162186432901702609137119473277510813187330648581677258743360006514886519728414745734117775059156881750667135088018677023743574361413366374707264453630662552338653377833127147013339851090989655879812690578871063267709026546163919179204789729993446284701815813542214309000445213229580433815672981982631070700054770643827423653637940792688221399147325231522951700319121306833593404230783525147393946358381366520121344698195319181901802503004506045211209819560254462369148266180465119939027917877414090642582919769078646686249800057475635978245769485313803491818479939138930641922187185049167962904836471809183928277582060608424784441219374419916915458496106174532719286590401560400159615556870494617677646892087629058090933047244725979028697995148253504569036996330254027085649141999036521857924881150906102788640576336280313279263601368593797129392887513813397375196284264881834114293263333686284855854347561795402086634752036142109574339614493299321612110249302350750701472301188171361017409396532486520450669656337336604826063183187252669277626960698672994598854992013681235662802555228265467421822867955824604676044686536048513099334934353222896692110086764550274725853250909232648240541641125895306442696982436812117902044252681326305119699372699027802027546063509166007477913258119865997459763285601137528345800204230603391942920037831926241361894479356239983106535934449180543987360491582183112749576110017664654247695775706542226738371792035327477437361826836119684123209166275854827272837218842153763955581394511742702604590463462650090769917685127872045543394430029369073372540605296048213452701307352122294803501612896134464443615329213609686629268754984789117560182656086708958585216216884887524927524789621824540954303075849546023910434643354232413990361795851458766379548906992348093193461141115900558219613194922513356618258691246466653972678380326295928646941319445236338218434258028218580548151349080802826015004355483371426699604129795021261645594635055345880150307131460586021281141859164747992693817900682230159489331268942894157120725050133803272085415776052577167564211078069457445643905714108616455119371804023730972639166229424412869625416005599233142738515761420178079459403781015627732391637672756741058883144173105496603515220527770563433682845188653694229665804531287327841385471705797043999249635248669525538552844376526805500586889711496459835994665263304207524733041317894651311643881928504135322287634945744049063469526766065122285614056799776613627686075844168658216402152004722656172372833837618264536026857057208887579427549854880187347240758915698863126105270036057302856395849001497102123579186400076223267864713865528158781680991006782529122064212659828039699933630472220231171330083224024409195696002670845715384268657807980133362996975301269225225527814874155727965045806863469645810018423390438765060087783369453196526086664001249643142399740614857556693396105071013128903277933351218885318014717376641941375669492677280322057184552124063934908836565625395270677861589777912700769244270420721824650225244882765185613626253716263396173166025376156020919741176700090225746494188833286712013372602443278833295095072479510368054669954807201416351915134656455806273801584377349336896874034863493394502972621206134612191679526755984586390889888023572008368878080407565759700037534774320887510753093275785001546696258951308508521305180830945192893401938491974750066659412178365685179453145252612499170065129873076571794025229278355564945047691054335820557943245244376743281243150457464118728874179017363664633645786207165994984292444703457954487425500028958991996831548989788916347840749212986172626980668484098684757807409078389283363234280794097743310121012991586441039039338140127338182302603266986141313450166250949371186603725940034499349537892870742666513794076609165630135221704998277716156062120180327244802467466370840874142412886767288679417055876700332454074129781721977257014681660140804862802213446475200919172457509491825959169714167489567449002991966721540433936040473913457198078469407785893570627259347581965788439561311969937538930515339519681907749512731973923424499838283628415909333318921784287082739114665895729388232440671070411111548670381363227738122955243986067326939382802773029220352594150604495940753213552856376076395166773649619776191768998481550881135493234805636469678707022783802554983141248569662213572826272235871722022926276542018830454487929009801759860026116778048302625357616307889140529608886640761041671925511582371837642125561667622297289498564421848652873036961692526779794298367166216704244093913171111167359061491840224821227605628956203622543974739469124079145621954068395973965749473748468149985246428792328141739989985011968161026556105071470067789757435769592996630829161536082329733352063635985445714296062507696014380383794253796354064133382591364739274285465515574452341517046284365910916048824832212721676992888576976539976214995181115111941576096641618616080358364725005012457544350879235955938347466117749669882194092740350759041337667903150885192578197558817712176743432150466164744527157183345925818033222768722805371755674844757571427505268079850486174420981144707090090166234722306084486248093929002451736792411744405766952350605099021915431071321797140145951701720047825131706075445158579340566862261312865088429960788333362723177616169940819071036361274000041959753106667814976049100046749707680175771013623797359531818998540632871054754986039497585445390189024483364141646622071120897601591634976480445451105055957554559907967764507546574722286557794975088942714019587383137788297924858195428054233668912254799632269209669663112943787616890118815762211669616805092340238572575190070378677755347813457935246422708871724355839825589210288527847332793850115202360289588397821807680362898248546704622723830958660325309573025429340312084710738534878123114060205411073739543270657068264985961184494569457280788352683327153199650213429548454575962942339899632001181775302550520150210847503674796707804467299319561398473527622792508431806593280549272083590370984294095412375079832735231198671567372933013245448369897718393648306029186837671839201531240854119048817290736888038873205733194452619937759968442203057102635107488414672591187380596295144270292642905724349995816116939372433467400552392260297111326476505746723799906841502918849855056965979045882360071583538979972291098979784437275478919117690345988884357007979831331791127382460681881319297820126417083172965602441317821178017503244884382683216288798793040118753376464510430099003508209226215533828084195653887391225297115356507711578550787007785380570664206422066084969257213347068244534370936848513325890930028617023050107191271787906468219931209870053659288539471569158883190818317855766667995298383003299197006320528693196115151674784998315666841033901926329858824430524881021492875629052574096537775828979784517620673429589979338986074765915449994586786461729447990518077823770681305228722094413581657428273898761061729799283068400666051702694649160420704962986579366391500460492200810970323664018677395150843940720204604653735085929078355485438408712333376814617318581577027773899863934835838184833571610002684303839208457280148942214710605175289625697380823267368108809115942162685350870684035068667379443910127998313587794480369118114794584802692221741431562028356647306898800421582821692915357499835273947703469886050848886685825435124773723738663152303889254238443846163878230686279957069451896683667928029569549480855581533850287036363064934941646261708197222072410615629274252201883375952842341784004747858472738753425738195844697576633221829953475494671351080561379080657790969531943157498187093673195432112256759021385903021795792069360414797120981577909861228178876645117948156308420728569437475092973158733885247078455710327625504685433195159954723528677407925103039475475781384058890059168509538471099512376116780536867713337361630204192967391314946710570178712794124023037084272285457670710841541381461328940369427416887228818782977694569478347911483715648678988264581478204062992760342553583881322243280414076184252360873899800970615381825497647739787628979337319381117083426482068961520302620319213051244878612734023900919163970247717114734736282265758627469721489548582453153558325754299218063433721953435169536427725551152645330146424017745074735870381715124849439605123704159447415847209699341560877907505332854504349677734091331813277356030685382071091199263602084768687382799906556093989202922638824487202576200631614941361180687385018056266873574393697032986101794851202854830188340023136454568133613800305931072009341489670618694785563835991367223282758561429184625602429061014731401735463016061792638791051047994559129904384980224156454448268406698418381894543599546313356260590351625519053555864423811251070503967312208532314664704278333021168512687654182215605696610500812780535634779098462227988929831539016499594481487615714183423584336932047658071789292283245833972507957073149425794528672228260379461124793173971312607130466121246771677951523791885834654845570979515354032135208237538896895807184681786297265559985026498536274130998494808297919965278837788569145514489397403601450481600184499771916681157919363608197909219521017917026753416194146076904780188473422879645106897569748272156024788535361271880909338684043533722588840945031548264489429814829894018645878131055525075185304575200962295070189693940886089231942933487213786139233808612309488651231463738439008838199133157101755960082626225116637497911456501870279184950377718043508352115154571102405044707951593933207860475624894035028634007513808843708226266162599234140830269657482437240756194843851543350012088789893844713263242478255245042037269612216460704340553000570904791595340597172950260080911551674335941375847683540740496697570301023422355894866449496897167811289287153519616792676992121783625234262475697316478420167898028360052561581842400232520686121030474550264000776411076136701646449946437695231392344037805352053820743869762034093369916825134475872959017607077600798950843939156762287309935072430124240453668678269288454588722463850079892913122904860868043506205820254564301631932733836827033530868033552804719889188560132163340692340700796424766331716799354772640501351562786107396409880728410689379470439983621260649050377070193794089263334000057527148402706357600002122388911663834808077692604529754625025666363300646464758778302537448455401492345737182894828813400471002342180757117527526128571632695531300375806646536022365695653131721594490039992441849885548715239815794744926355357550745789653396509347757134822604107574994853160308229312671734146133943912409230436584808669416553582221022603790650489505464854533696194431390606235079614632302466017012508733742800128148682249525824426303300646216760642319882423121412095000396681481619585591174088117010098824041016759060354370496702396294883476402959270460677671565131984267076302240765312771654534534972859014921083566410256068657342132601577164843182190984093450061340279346559539297886210683144701485509711696847021917084637751135947030137734717009182053251423545439136376627724588296011720610728086278613038315595864923045192169828536207845056211223685359015685422071471287143592179575837327268759931403098117433257771443430402496837538604011979560462504498985243638255090235825922579864362164940546523750093951740652982669299935706960457143792293713362100388045029931743922033461436266639575344909198018985743950758112743777184858869251563816391465016102141433579456259322264050295883255112074226082636334661753246249196556381654794850556183065621020698829001550716783111792692937618342978797872493398352524105513599088908321738672145408648207056658283531965223124287674888459862086309431588960966213524669423945828218411412632131180397421695601941365234570505667008818900002597423825201804587712115824320474911289481943967735378876205034500481612563429553854753958664205262872558272575271663209318882325091025017865231947799780745088843982500314588613028030886352888407441234297299502110249207123318048809653994700799338625172120045754655911497380360639755177721914587419675282467723056880469770963782045812058080399783811197363228555339492294928160174349143802169403579246923915886550688940943463946954214570572485745388913259837916376202480343057257268422282547541066504520502319789902865048110897834239654806796014491510552106615266483355378566944197800360102091578292089728865144824862020092107226753005102648390636017956733433184761636247992075194382978471604555275754310345295160522840378526554077126959874111077236003618857077865676046694829849466112534666445092864884824787571376587708126722815172806933508623478731809636570089385964850402491515826889099286898098336810565486333464893444411140750392744551112356138448522807174351977276132928271833516080195965173933728040995095327568873843323643332265639113789431812181095997731914115550560900676468305465134929253840969920253945395255443692839619917897203807981469977079408473011109077070226126753395776647718037599296982178712360172587829249881953869336574846421311258223865324919247645520197798864201081390522606763910297536020621959169636384222881077209514188374145793132045966609234968854053751020500605619344886761853240699068162388944135512092584556720732136472714927905066866076892968536009962819835476395389670336158356391260060674085945451319593733710567703915003670879605924502742048402973579830792134115038864008778164355985417584013504178699443389658828703282006192800599677511948869643755894571371028662831035829416944291156611102350851197820815161765043187928384522166525170334052170034094077096433787657353345873316275269361898090834504211806534244199161635766240498528663642801488820906830025716884205080642656679413533878285521082136462857344037607774054758429736767917756095129193906996128288333802463851554222465079765153400593603374846846949648259330754668217076541380174817865125040065839641339114595465535201765548130973306911963199734853012404117500384299647216882002844840511603629460844863888481245189696858316492018172025278293954203307097967588751081281238052993075219387696909254655922714774933922902688216298383250153766287395317410841787267029764153553890051082844505446961696419403226640348315765608765683185720872038727828962629949769747052263731818261304314095450648927434919434418552612510209639895860558897463868638295937181524645130793310919178799616785143893752701230853090610659468735593212208789179152156357605540522733245068344973286568233570934556336462132613013364338732606691861446560806555381711511885683644276537984181558882018785877243041379396920032624337425797930440434162223167760523149726857221890006248774029346601465580514451616482325680421216788717651754766618025991050843217095821708225152054459217638616157469617734530187887955949991621859431952418594984435512034716379905254658037138217379339610480199911426622112996407619180985898281276348665997703848712509341080232317090764921218638072411944309993825179421354849265433568893498138324568624392059277404326783059074204763448130288939808790056759672067844640281878781658641454610823767521509658410277631009010575298272576907241931865811173081411998723565434191186028027592624848152249930835075632392969382485753289870515779959031734563453332669930000451762965751237970717895227754966199381522579457851481054833188889478303422179504432685023903793475136010490661915437614031043051572320171976811062718153257875266246825606964017232049521641866585291659300441781269815331507301845395413187390736777269971490688551406086877377374773406655861566264775022606171825517988983636901475586790441372996452446099414160343167421656799720816391855669871535950029959557070410315675243193481046409951486665831606030121505362382072976308895046523066940329066567747874005326073680000076564065644652162322949842894929109538073654365903032702235992262367301492223863154877932233423098161043013765601480008084069013043203779829939323025797732494873583717700463902346236012989716931667239028519830684817580161417203107861566437482229055729352101383418861180701866539544397148719631017227424104608362461843625672762943355758999685777723430642742582598953426625566957942844558280336944280655438571947103875814591118128515608027516864799786378835282251254236202273294934606159035524168207103933998086785410098047096336510434652850757865856892004520576430139892668062345003987264920878032353018089747394015485495157130452591023680677399236068361391098769430778903835826406901070202862030897736644092667492671409299874545559019365736397669818625811874891944810031376751885141850192663962024810834632105722076491392216895662258800756066318376981085024048901841166118741514383444848851924645214926116381360297015130654153051180438265931942827751408466668559454469295978357354664297696126478535027776794709491279393994171283617293488258771903088637330181201555174209066158128127981383429023237140483234681654577814694345953944551085777547926088445535061324578030553370909516214460098980520856198794333743492169346565855690497576579136182943303223492679331616107267925144809366971113492550308829404426523510685506698557989348752152105044042479556032192114124869383068539685013999667430205950703979111458476029794769720306903365404313215441029663561642960001946932927053797084906243790770169567078819292924623942243911987594257138470036269686324350431416012309715024973657305353094856083479368676819960456142412824668760250875571045985171425273332244052219460300710045080441663021144827247845158048747639559561354481128946289570707817477778566021666977336883938402822918815345911279571995679909994390363039929261100969346753470912687656492167167690394394857633433028712248943823927470129833122837406289209193395047300397559381810738636724264902084516554342792199553324342406925933374936687082533360124716712823159292464826523259819719143577574764848310466780176044938059024945353660068882799039331250321560376874889712583839798989949777473516147843504238175672541156383572445788122716262226424154910372012178305788666203010425550823239219691784545587424584515469370290135571700729985768158238068527449604951222116201015442613509957482010527657873324662013907132124091376742491458896630434789696295517949966647005739428303191904206557286115511199537135048282501810955535815010032746815692115196119282775422295977433046886043698501204507827034905050336018177766678260613829151034124746415618242757739188992207889524840187962255690386066218808317795039437765850864154360775547344471034504125877226648564395509798647370548910142329823279053304099697358350144709105084181847848818334562817226864852807570818550415755138454493315957013456620314433381858789263032624294498716611002942989657126985308913722869031369835260113764169532259352824483956543153781373262878549400816743274658136111011413362549228462317504309691861940608502917099878280677243272056531174377953994237548004208017608227740204534913344839133513730073734412551430798447969865399442632936800884035345627997679639178182988975282029297538474188828720543422708109116242173459310343673665739449728096256582842770152872370522671771831633761320567310465982912500935245847622955690673790790240929478747894428641334714582091783136190817505779158569297328815773033368466691185530006717105285642811269885626210444031198669123888083637808361320363832115101309540196414700885105112906208703967915700904413716874889931305558871620643783012020325272068116725888597886965431330309737839399798642653824688453642920446319960180549416810685685755180709195103548063518905696651654067228175831721896179694999549752627870864806827619230448105474140740492102970276221855345679935721564081925017223474774816184805158613344986847906519322322173163692321649665719136532276404590247534685441642224051013624999642117327444385114615552403163606882232113138684171212875004544406546521143131042630488735726302639894400747968736163064838026361653942896112386111686791239043411881188629044240813261481227254925662906317862814572865207282933618252932103581985044852648327334481461819536675890363852649280163465170079972242061787247694702589026855368610169122913849255523366095965360902299739732625331260375691397761840218949881189631019721117626606571608384288824675582767292899697979461631942704390762569724659784891231599040475319697816263942377411946793858040635253403861148963041933115564635412034196603510465656470224927112883310771551707275951422628545539303152377537659590884188382081084031792975906260452711868534392944798554656201322390059460169336404147286876099132135619932600706700049758447260890689511508299818041678382994296896852263732257542662164906440269869964049547409217106260674472021230405270203673528816692544578387399408625916746507325166962146935310881390493209326499143605637008481527703614935352746078728175938115318106940069080126492593357102877682096112850912467382708123458460367727133173424051261851849649094050666033537665317569640359155047421643684468691016711990576536043890210824959469815488656844216602363927856570729645621378777062600132533680526680197832462032664775813686062211380836437480962736429377646675092001657187389107229162687506956839793744613097305388138513368122063618815880305816538507536581092502760735580218215011394996249535914829795245920100552681765724950404040276521107673068590335998780809320316644373937042314939327509156586996105176867814890563640212809748038485824504865677196476200803818705141621513090206848915871591291131758863707256669317050667228301127064036378914953161374911740787944393456294396365223373294789133467791881786445924663636130879205701113696077382057007412226353359596449000259033133820112121249282327242828910448099004470860583406776114173662191116643385668687644892880480502907406074714057363922206989870781800118743116254056638223619840171063753640071600949171160273138157354088408084403321260384768341828996189823164573594151038279701321444785224939505124155133203300249177120297350467583789830687596511486475897242264528259125090245452747217542700103554572522438387111463070651978977225186925066441981713513809965960324561011349580221034741916383289637472541537189412771905106661106126508714250337025195336283323031283711824838409133419062798631307046262602295694372993578632079240842398949675620209961382587640950333782014505157550751557882725311038696278931664311480161913682336727978161828216701629988870865273498601672438311492080009585605059827707943606650434102220165181697824337487373893798200620507621914993903525215792777220550683125388659416247663853417561045467308500312038365554632637137465214813772880302495343915423511567996551363899244558775154082602779687008139876888231023379357351579642264303452490587028460351749295141552838527293051909330694979898929474032763172473233118026894561818076112963965775101369171662613652759063151889734656597690505554335103847479829998406183369719408488677672300929441038053982490378624183753429058093025790957357275002856222681411228170938712393401673659998972505579848534966206123471604041793249582649442016585941236087288838485473067637029426984550868604625613832697532743213994646316273823620300089593476512302068221716584182799074314341963572955587117038330223112517687739033423437224121347526305405306581594136463543004023736938013419442814363461432428982372300942030490766334532232462023812835857997183812672597187606195300949421909507003874861200625640020382814906731688743992015541367800369482592214431644404658260978840434487876490092432437064504440373886425580409566775145886925295452526876734849519072279252289369420450594064599273931451112093384965408873927460260240130847358335283852550728550983969329583693629564511517217463702558237257009969750207424887083518020254075456396658549874216140991936841803299810616496835277348903463238264891827707078067121033423065380612642839300938435567718461548661822706175388120120442956013234371588300203047074490662911883363595966632982745413201340110322673591965031843761023969599067631730342727053116858898525016547251888683204599612350487658185682489821376219475165701900763747320207425014362892299467268455265652921054698708395028331687531227210540684851885208500365865568979553804066553211169130634603112449279509041201609164223509650892912757898913893398500761875440650867803486383712595632222473784776261019002050946551955346136110544901120390931604014149872755512373624079513708854199392631761009444227744531109162778758253466310733204064985656267748874905336468750598602769896489117383660012251060411535020888043276120404579498131341423445307322470097070628167366571445653237727961825608746698374718867005374374895468171539944637431792040205593392457158283621263087072980969545846034362434061199147604051283086038581231694149630373894333719608132645377450473674235293462610722147157921388879493989427962706294392306772361265577177777057322373528734998765855004400058855483983590230871300296119507866964854435667800757237874246170261119517027630981747110756612997451880817961920818543995937772571216000547524772403164927144990845741850578068245778013234200064272019197529285527911538788220495041617517721970356553168997824226123905878850232510521510345298473229941493985003283845036286484958151643725649603604042559870282384408518382236509075091405484875763554116817854154004555406740591566525091254964056213039179987121614689367008835521941209414769706190884264960375957351240226030214662711177524413197802137426434531907310856785457382384692538992462822157798852333410491037266677684718374244645293917224758864170678116000237842318571971873200838190905522540299284521176411773197730328616727859959468613111953896582368260499712922616939777467045431524402484186298345950429319076302811051733045296157578163527346955387663188732219177456560020357145848820568033241831768493055592660732451726302353117496091551498338079993104997055796536628438019685173253928903720327101227267324178833342280118177979913606810114708150763225902122383201165905956523434689027666912112535020763292020209988081257191155144126215945785573220597573499822181317062791222620875937371128049787238826531457035948400277076317671290264272604433285682421772374125730894257502677282189285617574543142655009884373274505786618856833044840500035173660096697933543850439438288261043283714865222620560863235169115510419917094478827857768996501699561981383326419200316734580065370414898952771044583604852248226075000119475214182666739563190100552388254783545709233750160389196438659094925615800383500385988598253571714259603930485470982104452454917538019755160796958153427374226337803186055526567412355876755069733343366063495537049003030660311210222467406413222096388512695309609462927490736435532089328680277330588135316290908698578100939746379914828968861257452569848436234952122423451066785062218774702806335182130511000044693218658241874203987862207366530551021400534644148529908683449369910393299036008690135913728533001201068062065388134263577840789696104317561383014619372057676645821793948262397534146818103628853504749135431226386535961140871354681050415565526059563192647944543131154763711535150720663072229193806271894856650859729896340131831437286432263220564236288086492067012456003471252933668593781050456909652665712166569525911126228159468963871214620386711288809868654073460540608094190701112819234051930641345107168099957564212161180202916539551381877270771548122403181833572463866706401260945480076163858728350693294102290040293317945111931809944209453341708325759421643620980593049260125032205673833364664896290187269581183975955564491056216063453062685333370226403747342470637994362826272535269256639357266254378644370591800367521939127725874777123911465839329800300280949652622179043248496991858665144678323292094483330861329222542557380756861562101217703344930043811328202708898964305876651717832758138831942111359249137334155260083595509006736042165933000857548613571016809152987690642896584165015750004064909966809532177512043166412206552752773520212593981799023764772839431835409391337921646225428826315390226125505917615401166626710170526682591092285603833634320207713759705157828166405858549772013867563419830571462253854865041563309804030662041350101763608229426854718559297404126748635080329228482999719688386887751246878213348408145163445270396892611446001956538396558232888522897246218452373774483911041170354483404785043507807892514431546271397747424245089372031303830474615943333821289946223489469663827760986650030335613073208501027725296006130956354615364996337520129875496554221655189807091705937445111540078095642966054360060053358594567250335603516279545482396649249157043182227403509258083355455273443126260411954443355849345906657540233043512611225826839325688112917401304615256742199018650244015088741335216463293537984727159724746479840724671730680755647031878507367429604733912815919515424935010481226667943970283571549542346737715710127328549152423683453053056776110707557066862523280487603453257442883371938705042177645991687367675771394389977487630691544521081305084952154595441957321781612309196158986022509188923315311486288764247600845148888920320181579663574817790520998175190567572457607925320912056811141199730826020237759465320305052903817376980964067815977055011641456390429474541519681122044834495610219750107386118004693234489708913921408303982442952522933640719820836903933917707805557041709269960700691797809416007703170479485110238882925150224316408659211441808174483577583279706963255985827721928435007162376701015085118704225773057766575138016260737676505859313176485119409395564535201495868010779340502355360902209782666374280452351359666188278088658896135970027605132930620075699916879528613686033844798307221785285370925243112931448242657165786308347807984522382974591766412665641048775015054778803160721215481218552024219812888635288326678172543626585560186934411001088984978543191717701035039406846969048179707994646906536351855968657421104063063775217707729792109500415105784296975854673128634291779346167754707650955122933582406351040706098881884122912410638730677592338018532733439889778118507970618659984365812471777329473041105902149530222285074503973807698430755581474148452675361860226436680860983044532907268154051925838090315341966266421032571776078959401062002152928045906686226742255592404886034053272905462264685422067281216790158070882879239784718693943948654571379102039141554892253349328459861052250344194742118790389345979250387597515538117214040343647781736941705915703128931688903158259138396810716095672880586289340568651023728274125689096697504727235741579386623559834017955262880186906743121736430590122486774755882022845957588494632496159306536490654182942418562079713165032864201931706792067577596125772769424515300674258400983738780190277980769131849992870229709430870216034185061221863309917765142067390076624284522915579052223117350841890183725768242491521375731034703184772399827617230755797405876351783892155807771289735163676854632292640316939653921274822378614443095294177567212331290778836832861900931778815663494718160213962210808890051941287991244663490909731339064155558312358729184889632631043487341845656435336540914802370395673204695444865565947554648905803887315421766476251426678234424895648690284199118338442201019838178107624432166197184619092427908199085854098430084110987625540054148929813727310015496557189034867860079448154480818950597149482208723174344433567851483458152971457392081930203350052009501443853930646583971173895597022583200278608212055950707195746126416035204430791209303622436919722464257976536644024199288783264411747685944906095872723002161209038439418225964225214981421480365884717490228545615597880149680151691391231392756267893178450052168419842645844321134413026943089339257624756976744785164416485566287072267633307050911339169338484722849991745280035965729054982957831823147289313521078905849890767609780123711612897894083324670786272146610602744506786914590091295500267753912736467218998684361962195831855997794142689293869254080911507805158925886816940544305545410940148162238823911027445238438714881083038748370370646494034273179989903120670871552235941065396445258611350510589440442082611019299040919547752369471426217756876834660229149957318009382107928650191170588518593808111694537951250620088577027795015652802778227196037087828243047565626611315543122843552216961490734477246395535126915790347018152394799924918595895675008328249339200924146011560864318011113189634040753425920636357244885045821465471398391557062288449038451555883762914002586927047226388165298825016722882820502150808232123079974507517742692859948018098019281321780276619731978950041102785737815003982392181247486733192324149231326809191774706796586545734442825408044335404314950778752463524270975512709424415354159634785173185237681574668939949198105717726165267920734799018607295120155843870313087559179953729370785340662792524584446575855882223497186526674324496776407987092709761000596660275835413338597801737953379882827005480752214018954506217138952880125890425970129931547197825369024974790504577401875583954807629406331311724966012329847495753867688280823953696238985655692204678714171982248287466198059173995323594726377260937908682246819552952483365199870984838568335477436177111325623712712793633108758221947786864307819300995979381139038502807752636263603911169332523485919670782486727635140216500476718833006846397605331513061405210396957760923479696859130520863584787036998324602230174002751347814436176862973891247481387911938359576555276470409810359871727226157460831826998204259741954907752229283280099482299056645193126773979705566028720313931561686634246810183044332471639099637542130406163513784698956404800312822642064410964535625190621372912955701481980162646862895943917301284101457303019942024051181699666141899988497854749908453565287790468328615607600613660594562464741808705346865587852932761937880679419596734906059901479775810037388993457454598980932538353673279272784933322369629523894477322896590966240428781874122313619126294663597438983852328380088978523196158501813341287444139248516653286236058555485118516845900541695867081863312972558618313948829625331778060749445702038287219204998966258094195936411809299327532892680863515877703954314752937220332988659184892495040138891921423821368573572874098958220453326788564777243479651719644500868909166834056721033765353533323864724484523766487958344542989654440628577398901978698758097144942430679558196027179156976014157264480693971939119078429082792144030116799507753289299403060456194363605595831157157851835833738109696404130716492031159868326092528683745472059390242992176273056055648335738831869295516785222179657618650344444474536773402587652429818064597787140297556139684570836233921948937320146937095774099491589202084604070617384918321035395989357072565598952209513904135238470324968312139299307620213036188559734352890364109524958656280461512208673701407466440532226050638711058776182888889687471754733438570947425642800542968416003221391603628463996788544925614799259411508089679377772448228849911711467641553626025750201404639050684800662330280374148183430294066244699579711572754836322394572384903377086233123485855357429735464997592851060791930815597096315747262754318027359143741624623102060459892896615000753145699067991409111012241688471749146008348842052248872300846527052032792915546013812556565052290621972608693539682506318343170808007656243116759437174769634845202324391894215618273639042811474542484769225670977053935450277915907164360340381502641383807058684788401623616761847571271821418401342960658923627200887060034939750668481479656841497489276441115168169747551669288657551678649217723276854128950042953533673175566361859636347830977529545974481796421266216952216806822750975752387733998273891753885203565070357056192117280536673864454725392405242100189928348807671030511038604613149022366894061625820767175679788269348886116885248194278518661710971540641447599632335397084092663837388971028680501833269494855082421413493656258838201240088228174631292727745690749953705166812524426255149156754478180867765891930564738244591764598806233023529308721582489560916809708824042798530455098760552910818872659598130626792432590393039772420500186971302614642044534158244997413899595183764375386246384973255594704424745283742447721328707556991652305285412445397385222044691632464502268464727135331249636469716569268733511909927528013276627331687988822135344019077669565613174904632980556346742423985989871088945365047032349190317378304271047271531560437065023792000261012119076634924979608034492562872021176129209781556755941928745752451124390853204162124545310362862721089472232904914951829330595210875358958466429119904013662196510766678452617377300981524171290699875893237852144133699218553407995697494428323854113961999030405343078078237132118381045375126461649298457309468104231792009804603363373935644249250592864603850950222218512966367096668857873698778244460527040234549156624143177050408475189408425397188833602075249557317113743598244928857935623999974042013391353190977371129673930844200036637568400915862685793431044267241450349599922097680147381938439294484451667577270193907064440576750069528693232272762902218451290142244759804655340353480412068058735516061369912637207372117723061162435030728047469475556302132840282369563864991829797353921907320384652614771771322366829831729651667740925081865608179593202662704333633525250602936989974846772724969375482064660790124831357187372375101991514225066265872558100537638490695564769688037474644002135948638220417827875831318506511610684717427063267499384661807533365509632961555354648464426620227658682106954250820552812122609704124477108011465044194898757347156078527946448111413310884488789767449299629745667455940600608954597308747546848681456632585739555040681910504500741509866181659670786187023940555837684717156515407787562033356016549309189703653930266968071792673217140526371515570871598496268753035310542826311651989765274693032039673326419993589602376767927570609144234035032686809238107010034721208763935149238481761956046259455439289959332295008780249877244451865284325210062627302009137199711506155430045721081733847527220648795238060684750548432140405077392748365337528907076168110532213959637819327773714815120659678163233805427877449077274013794748080348889037243315729230461853660763898460400595910228059732605692212567766895406873239474652727433192270608054088694062079327347214968994151976659656305677182783860804538045331962666631410409803910947779818152633141541937436851433414073855340796725013176053161819808571248994937870263568820800645072539279302694487931909265708598804712020004237205068603784565103783261344299914647800892171377340167520872823711325167760134183939237353172145514206762697722676606767193669972203873874573931376789740069128903345668535637275231786707062370345752360140496950445782120556612187188916196350743318253113701354101071284365820892233393926116398129678288420323360260392282267786772173986977048388863713561745552326138370588087690953478799654145922196749433847783383568591014897412715523867287792430599491515887122541216223142155191715928003908421873569789741035309832661246892407584888495515176712349970128703219204416182997674096323399219037153112714013781149239535063483120235521518461083818155477785160257112068693354879273489080983623066301253617802135298445460925133111979747884044817465565085659450679620070969173563183591819881508355946557602797453205535083681401233467594786611488286117625835895784831500751947819220600766943500579082493110734551568418330764915614615431344606125420352567318318540962703122620573376057140827368366014226144823552888569482099729409905637670749613437461173854905623982379821853694972816840235381555695022289496636013752855173877669136387517538544749999976301694095127142389121614812420934070254207463195989513686025333636165262481741459278077433706099545954173173741986635302710672302362848192949874471509391122631667828236760820932774290830376400315073383490046168606824454956144285274505009087193263927427064754688955605374835104099927959428030576074889363407988875461821583396495754637902532306199911277015431565900380172595793041421312180685416921680251570910079760624530024046428118910953254328857851017341860240706552698040713869528337740492690106539716607068841133504473099827022429367968183237231223076154782229573755682785304688813672848388772816546217817353338628297316943174156827185300855702485723837733402123802080415735733875037051612148281506204169771756073512618267110022100962259158475246282196183303651941598789786359351623128987971297802205935239428930922177674918963109533239315761296852672710456954322587601904882850023386656960327131893070614434642639052646264549710711264522174296368012309327993228566243059440053813068046567167508496511297872322475206825818101787866893172270431640455370811640806381263605917653364760472237566377711244704792701395656720450799428475731433378366508758368369456111176772011877028748504934556625445317472102308675150380752715387140186619527563486029909295791995942913666243572701851769802829977835824761079689876221320707150632882026293262069324628808231351299064984143942337027036882143136938977973266922819667510887060211084870850386954639064485676281872281437380264601793893619599322433878344313706167002238064226990864021817534930459636568877319423459979208570532305389337463574283887173928529448306883880931174347610042113948132116927241315984949253311242306559636378518475150860170599558727761047890336301779044786909238235847203905104743826574252406261857358749760688550535776025991487247263036457624503936298740246457027719792992640803498411263883761332973963500926663745385778129615334798691099074773673483756416841454206411359154670383671076471653452778509396150911206951500985811965008396967817997756776437017240074473711105190333803120070050222399838912707694039191233241909476860403666680780959438490620722555778934063829795181449407259986662721194414083635587763761338591670127192103442530435774955204346324364336858058583718607321501244188906536010304190803703986589460804047849191697469271141465989965942614219738101849314405742180467415677773466866017798453482300478913169376028552193560721713636059086255750376711871469456683143036023053077207063828587161310366551065704401201355191368923805508168847159481540753589584654280884406538701254584253817189708056560368663866990199059726315755223576466965264135443497200805659894574073336664397682757190499854744911510674912938764194239074295234744115503483100703008173593866370096105323847663217189167416101229026169883193416111560995992601939087531340992485743786172502906118226415167934290957760509764801988521910355376102627253039927953008563231215574058785825111803811630134068603921817729339274760665499077504699225508688027131218103210282157531582662927664400947157633297250915338970969058736485349442545405263859471016812650484759400462493831682596566007278055174520738149043530545228794695612882051280239324957055464579727924680317941881337437887388937004341401025386299709728036349249464407925242562159785302548090856088281378615269047018247942817349144041417467118752042299419501408368569607159056849116167339343401481860434346205581962827261348120721321117705786226748135197422902378696636402232978018325701591781239262480984084957684307399617786903674942502052709017228669512836629846784853239467239112950168193012418300041034068830969562169737021097628176594780506997436002034707337228110464260538855298139646805773941743975051232502462714725294140709824279390838383328021782939377410937355994708003732226936233962726272193715080432910753969855332843877725503075361999625797929431260380529365478719738243135035910171578234847401225326189806351124413854892205478820735751153557872286509604226647151507031599647925546226340664298114814976766346229772854485082783050946392248180741006802419777607066795812661651278149018014222714876006295803515544240218827992637004089963052208900908426686074702296814568156132678781235351842125808694743392240444379276093880004508293184666264013799304698637880901944829077479918913168406742741114190454688264830306223404922549188015121423174812570696453978419172416738297333044410543967967461807226271220713112308880206155245169497952268210521954803002819852455589264461908466653970244110297739251532749411982459394273403865911446753354272813083493075126812130369914280561933061968329865109911865566868352203866523476759512430979864052878625568567444817099207813637564863452370152739261230243149219122564722456063896482003596010715854594924177334734417396984445073839014922074953884565672538816291140546115689680747920560272711290943306395052091413579547972766482154410011721038449035634811857654787332805931623091053848591376426837609144452747660310420186522322886922006657076207446706127475882147247348326256789926964130843062519371508675314617465147207268433008941333900795163911609539205567681528935482430470303883170223249949879141390552115269044568309282563025288431168274106717641012311360805984215840142271852250300316656632130840248608594032184657340251934914458254760903381683539074534656654792108621782994164680979754916593701625143757179648783200384941697102259200160852054852383595847687698709721744932506217859653739129075751460733715406329429449020973517697079440476923963327062522940122855497577909035793837439563337867473176874604553948990770739121505191347043016292756876823153881405395721785082294508748999741375320349771815217227417811919560658472274804325461937569214037750438044456339122801704071239002163949129716612436663491373827417316053524376964526012212813312091825354476727958637902062159574552255392035893261166066937370950174785663953839570198381370590562263401067052017605567286308612998583889229267239294729505677848341531869643798261128536681868190530808422872488292881516615740938006382476335684900249426969397153653721720343432845644334280572332255405626619039336889171380559505550379332060126806234593000867305900796834447529242469367809302590295408205518204818567749374747722022004172141920987342845086828754088811256325594853846451531014253510730757364835344723446030570707330435904033802763480355602143910393252987692156052953681512824878351274054752486298002798704018631590491160846185659154612763124239899838148673849408342342658862618738133182063057558702439481031635344771382637116308750875077176684707600563686264478012037296449664153858918593775459988279187118712563942346849008276101554012316609525762496865403120902467364190857440720089211256524722280226482308541000127201299474209804763782169392946154050233620649285837784424700732345862868789868721232371664279311253369154690733971677165977614360575558242917365227322883435917986175992784893647775459415505080059967206288234185084892060998574498772703472689878119782120147514985530082305875340484001618471821986472000689557274590700043867883309121794227031891278742869706558177287050620790668333341336863710570596313337719590812199444761550809058502285165580331948906344491091929356086782562164759916268990704509101545424006582939491252973322143360942287968904294001871067632900615140272015489421786619455172336407535874541138882002275932383993330715539249859744103248746387052654902640337597564428877011049582022564601499495328535041292135535788561199152900016923046974199345533786716258980057386317618837625666864061946502518641945037015547786803627731728180661743205138019403598406335410815733529100105415629178260254577643821066947766079184506593459763160339920281229841092358774987795503321126234828577155632630044270470275346263370494358931671127203565688958822504524524637846750063693493047407193718862131697904078337022831335514984876566141549492768248881452201156249938361736678892448584390925958948687525645751137135140410466664412290709285385736725551384846427919279554860786303242113663510752830687164301456356703178202076094685106174030683630863072953529793609395515262519275223759310339076183726030224390595922039987906817752863615390686084949728543953569938942733239028994526116584370199199447014105862966750201644507983107136212584173833964934614347167764196533390614959353785195487188653898721864108896249576661379185045083483076719450288437270927055880664588263811125837930201422192070691703369238896936561425206579060982357260249212486059430892491745932135410488503862028022823974994900078932317071204764896910246088645124633838156766583088770629095729938708874064129752967874882367357365375494431839855982969688396792201040952958492397886110041965833062238484537482772588159540073961787340772795941432249449006143333696528843049296831000556081469039995216905173412814016601618913621549709878218791665340770729408025011502178335984607446751516673416439648837601384400663808432911209446733606174210225961728559187944049991919584621940861114576870664422636308261810674766759223297828101139501353975326562019462833822643702706467356577914175053046943416377603497583696835854917655109570440898736542904977978589883267127277525760026713919387332836794908084860389161522745327405875063585142063062362651116209501839256299733596087170724356103688506789861097149097016880780750358157080231009939080661669474413442623710438522954534836863412110832131892033007573907510223189165089830319675354276973560496061292471114395389871754415524195700432985201982585275745600922398947105175835700277013659533078965519576734576235281146197791458900772948908366586300022402836437211775201775079809150325061925377290371484793932047593618347128129355837324863744296595971491209930567037354221667595022297400501078922347367521716516784480455974288139791411559132297129810939015185911975253768610738993460680896669146953375433463500625444929815622705506715419177013988286748397480675691583700316645202680072138585916487849131238292010120602502062954188101203665704962018066903954451228033589344493222535974542167288534356841449170875754771108773295352017017775882092591555191314167186612567810339736883198740935024684393459328997390841745679650387835742956073529365949906937525566921620120406347177496076183477556269751141835359745924884221647075551603940843158242535168138162728515804774571240323243216464009708819093641390754189099603923172254398077030475137563184767565512246899557835838868743652437082655058827259908543596212194560747309823557946775989810837101398063192751894131258448613919740241025981237177116277174339614968545521264187832117290242982469390690865288071553510909153548618652096755324812515313790509334015927649040892541942135831736710880060266217651974105615793335540474526710111943024177524631301286618563195888542709219962374134829175057533848670178816398284243958110830253579165149845933881289128864781530100761204578827918897772421783634466359259639658204665305818965907891465596121052381011415479358789538804082781852529508874364086269816778622328777744870385801034987209547422021462968136130556377691742382919596324951578065382593567554770919205363691430782104996030199394658032500861613308997159172537213626286890289747623576271131926222444307815424948489138458462027130286134904363485873378063460356229621683700958724499809316548269445772673311543319187864576446577190368242832661799112023623391103237661692653022626847696988895904336730309829911214541319274692389358963195417677914495652229608742209338778101608590343288513120664609129757527758881634518124612370044128036686817428618194770031209014799746649645559587544705731836699052295665896117133307314878246909854426826482830864395738321238662785034174681189599538124093373104908948240915353726732974748198390865638018253811000460263419346061984120848473240733613798994743556814045270145699581193812844184862755754830954258353045754856238271089568942403954828909043140609526236633924506097161950261804126130140152500351300564667708675116422764546950258857806451886072169531592192854109949432666031663780366666875996508986456330350244699043508879664407616103355038216053576803439877856219277341826299073626692468251379388856352688692867258764941778349497522815031069084102269004170118616722341238700104699694063269444095980451964272436617392389381319654453473284227187813742562934207003740272540002876144492770768882524483437982089589023216421637983219659029720385972889873676615442792576832358724839510867202002335918836877951633026333903241753749354816051412558763363399864759455264802287917291476577168112448807508503342804011088123230216596791110658350129750395463629825922620381179486379251859403246783313880248370481631325255885299421519316198493488191349496830853047602267777664096774015172487426523183324967360313612589720926269266351180207596714329541259069405171573370943470452102205681594144439351620966675472322249642591762004982929661080748099539248623557661154372687495638677226533657049487673056246975282641422711589390276804199458082097359075665147908035745280081635752276406427441479738928969391987171853836110564577421318076469937313775703848013795517011865967212729117485775777435005153748222444230762724036542249877404399377572901509396772456300755568486045480434607179514037363493184653340993778316952566172691375710537194429543876092917452620088158743924160327394077786236384747075161847450418086951892774793340059731798572601831578272248974798550387376634575968122328856762538760514187420560206222746663987459129602912401820916785485920438667142406194840798312122032846604150199944037442821321413955094704521079432582887605060475338701700249686998720764440765856211076628821734913694127460091294052270513747533072751988993694944906000657744839958649711799131724541085928389468531585068035136761888367470731266221183837491690433156436983338473814655326362614419917613534664320222515857681255089427556169718270724451677713670888667661871667798423599256333739018958738728215558213858648054737861670228366420076537820712326522573559225611274440206144954653028458900604487767023651290796348291505785474126228270663730352003842764638588707918739623045776630934674511544769417096295312900811335774872758145249256067994121383605603374223079330870506993637622893237817912036728218921731857038712327140950460725205505504687918985490785104526679876314836472149596990330259306668550775919689269957396675446802905243915313957578318392286111489069326750976564422779986753939262869934334547257183850400158152009898968267296472314361992078217632799705035777378395225424537511086534985835164754343366148653611875726856031941562636838822978153374625204217049284786109302335732512045520253968589873726626211433989133385174037225779541376029305883205156185824600267855744768855475850299186417904828980895054691776104435954293481117226147754766592058216435159822512712721662904710822135927390180419430663237491694567603150169199452010757886911830447201493638540813699999176092801250574530973291323716616269041482717514023837960404763986738459180760013003785667047193352016695287868095820929396172134836164473203191270466178158538069099369479411481041931010943129023625083716242064402047468930609656234412610220160386596215416277272124877514469503912457164263174828293574562977575482841773133326941643839799627076651284226205586155500620087555700876033183950905649700472259498421532654273629813702400934063921463977318357799992701244723547536145581967301764130931013136084935239040489083923071462665912273540339067555207828437625188841286014183728373616022400634621604392108112181860236956515579870779226178597195718840887860982202583671839970177223183994357743913274958464347066913711737128696632321272153432096054209112914847810922486052857316569362940877346615570831979969309324876998693977877572774916686895599616694101390531263712506387955009703084525129279274839296897864753361924688038487828059539708397825290331674026331741023807718144570257468104869592388433538016006461849310925516120229804093823168430403249051401911570961496151080682174790982672378883098816326170355674844222880556922617408418621767198667500348981007823540161233167744067634987182479238165477264990887593619167323074803326692918865403555596474328269456100505203822290205792375304086975559025500104128203677615538625238085078547165216999750543606208636410473788247778694241228303068875816621778013243654348832632967136785768982490036922735247865213252261122652429505181310375567324395124532861784120733917820918252373062781235289277657513870051765081184211505597544596912196300162874168251269006321724216995917186503955108498565897673428345033426680944206618025638548613830901453582445226779816324839184400049159935694379925500220831002361392522134301875730637196592432182089244700259658016591979999140705899229398784239540985765266276470082290978360295460091466853172451276215640603947886422641037532655968822189207050293799088425397899471892121351824330547195156811108280092613204106940985583580932388897391950020142241833522433264304839381094601033454064132978208154100341549083320248870458239864134272967079459305940526758718111713801742291820745689551590149881019893492315102703268794900521459377642058458917257053611466706935166735404576079537057907676495240527180255255255953878150945705263403363267344950012997667384192816858695778683605786610937340172024055060178018995259349431222044049012869430869188032092823969849025481567889489219553885490169473156360769040511296524640923336033202110317153222470142897586483568059324484021540556600084053782628113527164861315539813087369326952573142157213641486665055234906430967036428506022590331437254019820808774876614299964937138338125987782325958613341671372260405018409616918673046565418053859110803779901528449838844241559108342018560378171273239873022873254432595660837205843551361382579209462207160829567873774508551510630539609280936494119072078886196785356783739372961931421806735002453584473442129247648616590462558241026731500976736588099379165569580790173757157119524206179888693764035081465396598530251838201494662466641194323760265954714154047561893839022568426038566341522868217692978120989754246796925961020581847884189022613641050930844386484088644257949318158909099509611251439195642140338915348706693275790840720809235958580538982794634532985078164757474917965805430423208928005468469767335686608517891005721952997477072522743572917406441946125032387209825135155655875556830774999190064634898398348357699733554223286948840631857457787733548482993667369641790985992210386830284441724201638151627934647721774974344463834686047877388675169513011613952288023150957115800550776983756056123017537623950751603869354580043150078871505629115167641615251123123805097085132737914977384553507606845905674551019698409532431852078553896552441323774357370548637835591626454021662618737196365449854026483213622230708835426224032011967375023958697182237221313634163609095747232740984860017648585007627943636055823718650039190250162790083836479215655832841488023519045752342444852122340653570264276010545803499491783707533829680003247733718283648598296435554892261294401909933267152391248248862663135453437478352775206191567403630765119206726740569872957275735537894324802026484664734233073315150143977980640660635261794884239137500680786267468432524732747788628396312103856726296613895508171437817196460802203412135901582916808215745290038827275915407150645010124221431867451648539607157955550084669848909587806604594561381485964118292037552208497777100632823699542396838845052448373266607910048623194120480955065609379492785929871387270807410164211875100925932144727026010125917965098997095410124877273724273037545814406639956163000592710815641518337721287202510271758232711769677410494522689726436898371179224509768623466043475656705534613570649000565785337237219687129978564314499418523132521186893817710826788949470388963292747596618901854922213599302114069184101444810546074551077944966786669583200321772720715281018735376937159405374803227877070466910983428457546086963437416143803235730973447415913746355825258459675828182144364564386939513999337004313893278107783253164904443731830294701639541414796431122366611135076113685960907250308579541593208840784705366831474366590197070117205289948544176363841176575861228898308728082466095114423569857895479696464560958162810805772022497654463849027272539631560038594719363658341904792231352088254945989761212230178625749021133905796560859212663053049749935924093195113985290852902705949366900933770092504670029772020376471897808449564732341823116546403360997857254659878596128160455017796212385590863072141238195777739427510212043221851148208902949118943308268236069184206701539804989245550951381215443457810500069967218117442582693335103515331954594229946504992669888011824688989054335491064778364275904750914633664960868135039255206516136450604351604180856890211665637682450811590523274962228554517964086421668316971101715362475475638778005993395236127252971884633743815649846619633547828257105546960941030592329833317412444273380735490007493515300116058916507720176027681184744351704561396585957044254034879049853942403914505504776729367833232096174366414994447516601821858640033673705624670796824164538032838465373197658613384353906380516726050091411909530971799904953632905878617571784095070221752104715880028879348957083684543500203519060107603971414963550150023086393040730612242607596724580540553640762954404343344619099928361807268928643588410280940579117960298388286255422914789436254030304253083638007141415271531106630578866079888300561649620528151579708051987247873218904832769706937504349197150567977986288175499692739681228377368653942564277062403754693275139486325938782266233821493303703381936114255536385118925860287281404052679190598361680023196911970855608306136279651780651314414210951134655543234640014867821976123912875759976034533057011269023222787342673372645479733781482449486669482159069391628455674835148214885670169179041039338281697970163646820626227842321125417654094216131736566703921993513143180642331317149511475844861310768429177484503409905619011399528438094446460277951051863256085114227898301490637630877444526418816455104654013492894591948814755652886601678961961951508506704803092065719077348428435377021014044807582708087736864908588636294677563063724607747141220608196039977778588002528839999771233649414975549176402976757448045296416634211039244231889099957262264750685657710002308103450815870013688527622578982248254362986622987954431561139906859915281776703113532005011366407205191551422984226006135715408224377290139376599427874996413284130782954148623038004643135787596481853422055832523792246757881277685456059309521315312368601017299796650849076979826363978087015349260350867050710857411441181232651156806053208020147432433352383563384454384665153886837356031964828803212392261710674843343807292857906476531881620165216219611553950838706036382914388076890357257125865734883824706125568916080402159042544197736620031295118805633925375104690795145995038453245222009372639151638778164705288982570242454330915447911245573962505826467444269848464511176750093202426763552117237752603588466008179227359563023177504306187579331156291182139286847392503941243139989075630750266675980096462854942942394566766292144652986493537634808027918028355940657068665413331460265631363019247622260612489038754235842046235360580927483519088685297694720375682620682443049578955620927310181194327051574611782081076097103238021671145599724183398715095040006666443675006350332700794064635785665687274317225106057769951689718365172639481715902398899606526825979291874007237325356881535850507682032423080489894225596770209843412467113275908331424430305723315940408059120199668668813315249661344517625744689034637754963858116031107349404385866405637129284002768937099395730889233725955494712911791813680372941446455980735225651413114622566599963437341832747253983994952134604738204953130224494229301161035376413485295603537231956326358407294025903875356122197876948593517052251326959952155412533697015917427876290599999844343817997303751305750107979968605153734535845293066204717363748267030992831624590101704355562928417004968564468786353038191851534480883778483576401051671388066023521916014354853272271472862833734244145029371268646883097065813470647745611184897722402357935977861941281685552213056987748551043927127694220881615419723703277631764221005493245529111721994454860857187550887609817136089605098316308382077883810720184035204431919107258584052033679261613217936662519376465796478350881991358640184095572628649167666201311158500308045799562866700468231934502865480721802059243187041475887805989525862717006615348498934745591862843181188200071270380276488366099509713360489962002651303083313138738108119765515757534478400952792820167519592350166048924671204084245163269708385265444010179045547665107123872351888852452317949635607976493909074640670377529287316973094304955096850610207367838392104446405432180071780662796678878114201808836542349280045800274218825593433692645978683052090946633027992548402494232919583939826610289595340047105914275039884226417712207157120822680826122288038317799004651844777590093621317712865939580145935289027948695227290560802094544221233921497975915655480678783694567250978438871155257598249722049750540762270558719205475560709611229911754454547155577988579485952718562807611568468569876479488930797745421965722383476834880235877914150061697840072829156477648530381873189552762839341612215626589143984783743114718643988041704759404913591191207746827699446395104888371045083832926320824323399473889554466311766543867956253595632550875352025547176734197043715606019524927059415404463946091430421220404147388026470963209655900138798650408313280655049933890214921458348694371956602714189728825017100379716374121475554277886049251802236455961305324210596799960932929134519814075372965250137964365666672861186036869657304932993051265909542693119085403553624975992605567333738787314584737566732294238525103222473597128054284956374891354025533665391199447809025616248532168489325770494762814874397981643018813920758080689585101806609438702222943646692249812803695078630724781458562063583606574245788973642972227722567333142683587475341715911349035847686926335332651585077183057885409084073768959589001042064854946799721046872825527294739084670709875967164066377256185169471712208866094495895623329692685927055273391689900025759995377947437899143925025783903915770993472349856594997570632674809917336634786808321484705326973794649128249908203837851900028301713036244807605966368199120199136901855202571493138265582146053167753829561711750459936263472500175400285972030347531930657216583200616352995251870262002484592063641307545445182589358206171248731503199358876250360104972927961258509186314135603425776537647934395373751470981569751963378670376398987750836452396651329751172687285306501192402944098944819795314551955475915942320429455046056553106284561327517678755479581910039473243324679575399452284934435339254195011975923816589660465280368215543689509856559416145574664194904405349718986308700926307255568295490644605058319948410313743183512414755710937338566857834269609837500293560316143888372630996619647055938539193826187535741338222668508074382442259134337411713301352761168358325633566511461407907559349300381022576441747876886183571434923738157759999842205156855724499996435469299144279905392849075560327822305635270114658910779798139961879632342909006550372161565981085856295561774899108284594987966684144734288837302670985294607164649940806330932707752772822086460678691233115171962570545794549691655701084090151288710146895997769219420643961387754572039296326177066314196995991672571819377467769773541542566161659450426569892540747218592527297943942705147162906421547726849565495691585707348293950676312269318916705644954844047894228186235335101717285660763668251503806350868780253774164773055634818796085650875530095089328294829629072573379130678524607650492673436067472378232873835870511021185030344900373547420376956457390029500075828587486418922695085264319016335446463871502490507217533768708268564997849156400511796359399225307092934223364450285726989923532122336064144399879240976838717419759559656483503895199253959749885173371818258386890497009488299038656323839785477104103378835212122280032330111342151980343446592035754096291599751113185325874885455587333251201808749127774326632231980981405627706281493416460774388489783813730358864444726837863893390505828562155428118321942149150760667620752075604917032488390124069844814530126039314654828523815741413044192482842845163017209080239845700384828709019314529039418938510311606670278243632389982909593288747221707543110810255838591713909851738600731681891594527575982594972686875823250588721249233772638441708157467564178546289356539755535271381667131113562587124760461879041793914499387495078120486346758848001785205579468303640701813506793406715226431538663024851444175037446150585081377357727054360965776397560940124953021455005851476206792974899649930456677735462620015393147739056449224608210487701872913102666236899593327060579957166130990968819425356710460923488553175095295665803729904318931897249666261767495024330274643308146593435215824454376987308467890170563561684273987265445463375831236109930753372022817062901322634885146839298346999600514189017685512586022682884214413269704476431033191863261620905409999829116767699511991096252194577577402479368694175384005054368516257890294246981072429428455875286588162877531679690097895766502499842970494247843913772016121119682685247118921960419481527250419828447466715946239441154163127526604446303383538881888077537127541712970600941861748600625556173376141128064428376759369499937482452055517294092393557743597556999683734386557531610015577347262973477842944329123484187143480733105529339574185400837965184248058696577486925614369296951728747908822906465060083999826985719797799812014344077396458992872502520952712506078224514845386767966245012307218011450031967839334641346150481096346254598631339147901832394398923191033075706318495901131769951917289431999135860094750863140364009982308709327751256898860535404625987320730415814243936020853157217609760321006189112918134223061950269147698648708315378223435333945281522773018405682416164110819422731790699606580577709586875547375700168459658703156586080129010047142139164973028771929947008613697842577730518754523140985081584423725814965359461202215681004645326138213056569990631077805834904000960107975407822954666086134720984599184436506690096389125943390109569986076410139338465491948275200625934125927090720302841607586522550887365168070671715905759864379613744877854696769595076154059459879389783519634822923426900818741772860178639913155296437742334923305643312512633194760744677450641610381916001757501842195028067479777919539818447203003935642267608452188035750212320834378839137249570313131542260400605134666532666102075696146067243169048596337872856948279534862344142351519405895805984842605489061996628304596223805188277015701824997822870351140902960276734211377003275243479164234076487121704819994624449351788069075426772424456700005872854134181141337849868286381750271303738882703592610056338176192858282767544197488048943239284406226142277678070697090109815404845640185011446278075696281832374684919640850794272990604324768227278641890796352026781103668839191170727344526828115213662495688257324424245102060991057951381226844739362671919049235307853306342662764484173247761996215870297561984195981332946638105848261910675217348279570638412944999186325120487086935563534965424038741338539412431338547729896060341480051782434097007107884199001457962074028971042114986327505086623063606631793259249066947803862841470367253933991309152714721730469291673448852162895558506837269910333762635046554756662610374018372366385326419781769100234050531080321769008053587333440010527191009246100186197290856637491136691036172847389284403382845311027369880822990483323630493356147685590327068991475774811779481701725617718683929286812592800207266482486747116591016228734808311127466439365833747455495360032531508546123494425195067817750631332611637171093460458530896016807666131073973425668631671933267929112261931769765137368902486488277563623847577233922093161145447409024695730262790865643834905802523286059654648514330542745085720724466169590058622129797971637980874716671677794659356089754625198227738084023087579874246380782244302566240693296826565953472730535829948028089194647914068630571116523323206183086729974023784445849954911073940192020974450787474755566265234838271489296480321135797658472823800985969802423289772648733316172788179499163544580510427552658826786498771831611993054429879112413806392360173165674834137298693885391502443438998351365490073287497259398417923017365056896750844080351541305642131631321837579212232632777054391234645673623371525384030970087796541723925617673168741464872473252058481437134474590596609855197183293786910931945600026441298050428722374304413953615542287734581764630030312135228622326296004778973565148687914799481763907835873738508898369395949391557983795598920816088404851326715439217374749926273221114992843771176790197813224203929318929769677454922440882456209375545071827447075023808988643243024659585804268727314781184607193419092549620129446513121142062109205297326583965296514287161465201073678999635410585460318579839062093685288707500349726994606486460397724313807385392350198220420223596107044301229643373560145071391781851347617807912526135895634412469325612451702151049043242952184455670687041043809528337697210193472726738126702555707250364292328655265046762597032369177196687133408912010814158046766119820291491024770380950428278396528200776712889041874437315523362733123931102595478353757321824932312980011986261447890519595551284982257453476667329483720456482300109267539534625624177885883292082070399498834822958245735407533035805185331486441997556327164910389120441764448690558743377219380301237576917810346501448637629009060573613364988332860801566901434992513662582039675696837825309837041053842089581800009069904709087420600596232044542844257162709984173892072066871841731667455343157683086196275353302870286773574204101148212631047896804877753036805881366518579805127834555821837435678920690383697050742042901994144529903527506026783471572856550226311630770493249888983696334916279746671301757965954911714117165238633181608305288376866433369146666545342855679938263927276686021249804412748533281228057685871689466478389949566278443260316672069540156212512252105174299082466821113900486532369098270232810543137097441404771257570791981190303473732962868618682872028109877470008881915615252336307470974038473373132461742071888349964079290376598131808037605462993349617897438895101056203260028372351367941937753921593444956026373685759847389334101659314404476854591901422358988355326629117396669659770341295337447404186833970477645133439616033083014625729746326462972010261049489099846135441373578287522468161351111671341230356714679107169637700544044243643854982281512850696853789148991444571451779890997175351047978914118725947551630554443330166262399891513896179921761371937259348328935253250171197307550790582303713175500342862922226716466703007569067544355189991511525525003851966699233668245824589415382198759247416501365316726502023060296314486118347690431487180945987997455801234677282071915195017913287712738384985567146343857280466629579379512435666208313123970256962031322944613425569497039466748157337614108969659153833365851227972401369432000314859153896668033698680719139527679446453701929789480493284044271871748798940200722420262564335366761037653194677074106156482580425982622088731861278132896305833211049325512361051877671289568672032815207706470165076006371396238780722523280500055789145051070025583143322259703462855571386477632053355371209590971325143671577021534829409373666094031061654817411097726039970531811671983395150231668062662482878151866484744323960698248082791354928794811778653652632740162856786523904476524159635221668045660807273875427877571522766182741997190660896592275523608355261101934287352586533411221232765033000066893205475123908618880081345775799007256182250399342882190085834050046814740021189923976074599352563306739878009019968054580511299788628480864818909381781048651912044742774317595922173555139948726335581717540254009793376050543443926841896557204291732723330400439758834232297254507091477458940182349845742380051207842574626539402910286717880162890258867262972244681745479812153110974997785000172638537209591159342099359658974748457192606698296400541656956928693809719257995588382488439255345390572371951170407099023092222658442010369891753688437768046906968902812175801882895905757274342876800441125098275691586393402359921270149649810740007495403466263527316780925583678775564118570239323921186805908501469635825241145600076764088189893480052448431218703796195196815275514953128625011689048390711007043988548087502523793359538730195076065208855768706970373482255520384208090999286690002964507975230853146508164625401716913308788159168123682340559892305799529012245390218536431268796423247426875313456708587357219133190603880691443483387490977173877165966188150302327188664259949849927140451050753452095571366024272220878512148718639443397599473841394775814165760255615775242874740143627917399690303547660248259628777973778750890612130985585411012384216721844857735008272677306869702089823218573501553269016969086532722833135589825827095625121854215525718129847086447623772093838130867655210570755718694074737802829385134074895416807584965049394317979651583861004264669160557488738757118905650731664162051949755741302971315531876865058231760470186378882019322132067402695138955911969365325524390915770517773908240031961029237264617090657247177559978212414969425758294400850522750403633118286073947004553930679156992606592810742499830317123172895381975420260272729911019016123627582550571687835209490838665934861181745972657380393678385446294951711945117560107156386050192475365067934104250990614897413535613678067945269008397098092862533668113196971480613698275777059942455702557125946688262959739088902923289733383663170762628559813319839154878635683039957104990431411650476729383739977049743406436381173050745680848319048459400016968478613369114479562860749301838033140596159228154672510044377083437511431042086036350287290863039818575928543399079004702169034503381752207652372113731622548777736521800922135963928351861113324980221497357491591713142785468072853301862309984097114842086109576721337271424014142303880441827368954267482714465749123715432591730093131485884790524807314249538507293328946990785583591203033589593982015593414267709755535384548602581347206319395144045026366802489431107342581345500824507938894773579909241669331744967160452022699685775288842112263679665771903858788790720667819982745243190057609046675933763610187168684217219390632917235790941972022938507846564463018484915243125570355887479740641801466768671712059029086738212632022461597020402826441839724491651400268202896159346385058172747131023102824014632084407853002931614093199471883057288778380423781731735017373695805132013292960148899149041646412270501915027936280957045934512815987404879719176167253475797528379388050475781893726753041996924178384761220442618624008073747760333728381378845107199505289918108675921845542350395095197622416270578792121166430084049243361796467373988698556733061657032130971038719022006022630521722166973837944265930328074519587078224316440894186233406164387776631402427748589037800775963987882869876822786059401424154789339026738740396633040139270298533347074681169507204707237714980091033092704652596431879406701844489991705051813261364498394806467385998507350759181159421864137584040182811507166928573423516837372395477458059234960813324860926977217154855735105551500335867131783181773370888825221088823793453631294677077808933496686186301587143827232658215416062921672201658054986632392214829264876732927798157566016990909268810009193992975641427087667001825554074903032339728477390672878794019274095797889186591208894153655685453128409942582891098774159039744936755044519309401535952179586065605335181231096841068100903069690585088384064488735893551859472553323139479388843215252797644476756808347666094867968354469541363516890075734289195004012664448415236401252248447177590620700560564807117646738980270414095190276640272230523473551912325922558533872474450850498319146841755877497140164901895281474334256530830554541732966401128712125316151423106866296830961170873750299117163612461710847740322447455366181250606908969801973874004767095092996219069372016855100810898072854066588782819743904212765367533863848719772293407915869414684206539000722273219471161321608257638089167524618664655239484173940216265001486181420034090664659693358068063439454593992832965822807215952416291163523650469573392190356801629368420750744730492431561669216305813037610992673057732873950784244353704383376200739778614994908440054288789582986442846175949757397161451108616825253052735955895180559406896272044523323405956279192361029464475492907161392672023557991938949908537135992872099383748026087575998691385412616623023713688093267713961297054142564288171296869473859092756262380318177156796726838232249323289596857868258996245351722308321910692787953945994111280758943274483759003755974847405592981138487298084505728760268504472019336652020021612503825651968270451830760023237293251269178702138650756124620248112068821673017952587187468497111680170929071615988790137641294991511401360529375234518004961051488934512894008782574129745084413414345833498733860640006514980797899941211910605406934097097122323233325515582246157213087670247587226017502191563113241708172534592741314043246335354692008439756529950255449930332596039563635977525251979533575863411778021151108743520389545842869020057150347783549113537179535910698434693467293299625562731246293156121842797218394814799185082495833367539551651574422370567602606142650606216309262840816756021808898522360575618616037526963737699040953788086705769108856999657015529573337503665765942405250031788067665040466629389176592718034652912324934373660258998340768450284151878237209094361223832680887247321586495211642520696454385746794879183575751623786514407862013026811318876919861942352837861933244746117016963090475461143171740301592074762437700271402133407381482818622312304229384047850251289283689746356128143364110644250555155606239931874377280800935548895140849152090544574042542492281821478294142852578562969990610787829461045314123782223573700173280932802866600934049547434436269111121291491617104865105873524449321345572806750016277817620310567859295320308863571782673310171885008692812333148136275798601651446845110310981482772782615716749840123595074359970177314863425286405582014244862064823183904959014461132210198222636749060910006751214491902178496025292700014022671115755202996324166654743643711186872685681606194591766382428556292279144254977829678620835010071934501295839917765009134403878040039268422350897103771590087150234826683073454975578767119998518754941875938848315690343078221305633341300954074565107474185219658994649673700184180189368395283130964570059949218868686267359743331040583269737252577555560864709833965593859329307240583841330067123026279585499698694745222483472757697655932953054168903371545269190702550530292730742980578717864053985340636491456083239102572674896187380913288299475387221462716923967675057004684702827486216290587398176324354561371183997881761808235423028256034454914564687667139171651640912700514562010361161159548715254935144888872895209241074529582178279177796330371993124423103517762634594496290500403660657467814006354985796266333383914684248152102158555875389577354950128049028734122021536486321893710132037396997428595267491185643683904554888524763207326542823888255434056498728121166065322080487720361488262153539263109541036592888556265080013814857045612588713431494111807380169268092233109495191703060518335056212668903316174917095038634488178642378414021740155473248440276597175141290757814837295562992622105352394937050815185270804373195380974335352726714316159766222673092441506557626358720019540794787996117047750279129642282661174292495261375362399548334737418837964674065150453656170779266250529602330155570262686966882985389835364674365933002575456022907879522989921699875247381261998625579441692894597491447060367880495812354409969109996925435523009625347176035192805893360573069240848015068320991744699715157174910086058009365910379602790570097928017647472882581545009771074221274678782272958901611676622283955349137062521341458794967373323337279857620461521396836494551228745739423002876494273273016191113171423138234577784820095241440574484932533488933083425079854932466563985389003527837330970996142657443117247739274856385318110975490823425546334299075522248339192538176091213580898451074140617416152328580499727009458067207729572538836951648239188348907861865513773484614959384394595920516862704449975221123993193889252738325812868749834914145168327594771989867893561313709616912761042716807122938610630721615912235698513697786645996850726648976361994702583877967782720691524356140557701101530322366971427586620566049559631957452959722869869587798170970970324539627424723977560575316088523579722058699039126490454534073730084342767526150527702997302846816465096262919614293202522361743067111917152615471133115985186214592436944130947246710601208226118663558845822376567708772835539587970367956760296936023752581447683351774237602797025003686027138394724519653233293300810160614619677732230225228978238839749403597493177811570849324825046610226018293999489443640358511506929071675011271274912693138619385788771051136706477309067270900886982680753054686971331761800712484121056005889393343682925661098567996711831488980079460196839553860858038815778306886239392840495450461195827719388293451549358257134997759224017501184687058763930361438819944802423293692787583279573951353808417844323571644194538967362306741221777896133378190392576861332449353566039942550509779123522047092218820866297368487139077495832849630101070349167816457619366892973920680478629760390217581398399686763534481307344222603544926588717517192699289697805847807123129397320861106751937993188778133096651137286421513278909568132474543157435194145811586655780945319807592106284008140751536995434463902009125290017282642679369053381568653724798238160379948795037143733236792901147418037906676556477578556320803347306105592971153725243504617381769107279178544734398243522655527954277902576538608583271036024424869435465648281046567540947479309829815725668208849573263775910095700418802053873845228409063210971976730854606192111593448786273786609124255011800609008771906817330138305777069713135440410959232029529488678321548216119969882895825555240616435373077809662137838093152083240831075568172980273169867143976017890470336162383002931295490257563086086281390131112964508278511181770774008860413272789923542608722494437632412171270068493357858856113740733133717122635884685178199151056175622534236877552583628598466676045262158357737994852247101352098960235015893705658086574658614800797151350671198810036770094316687841729855559257839150906018593955348827290955663920373962799080183832275080844685300050040284757742160051627721831532158997418680212351063105889999538749696370210811108849824127938096324195335588500525953076249070558856196469986844928596825650123899655236084736423791965552421999725495893195543561652313798618765458657451212015715784719055243893715167835771676735149164657705668344161017199772753327604824031242334732571949680290946170239711308374259165262860637580397537468959803191237779680284141656744700249519527712264323917064561179649307056880616108952437792243762688175980405976561039955807450217477285643056334107861980803527920403186299486844896255891870861343331278527527285985837193240087523739830918345000224153033990645585559667615318717154538078020863863719909909745310825379448031558837596462488404914771042834198772279419917447745638974707152219705573601113326618777969647320934059551083197756693835958124371562031332885492717127979019605975410813824266534684717226555941133659682668469985665364440809961714309410790673100087774229713977668256990799968034262580739311181561524154982704568137150300817682855705324739355484383491359783060080614651010496490359581268875017700340169634608391789078540138748113654447245656393084515936554677829621171812737121047792379975233138687467630394310815927203836187520543206434879375662189315684172979654816640308983176973438336850841623182045475424539361481802644842176619433235175289509644986631484197083527769797327171890558514521649145048527257063275128561197693324313320900563892932462410080319302419265970427695539129495510366854958065176585425025046680892498873803453541499317372244054281140604181543217966712465174293224704958347397074637060886712647397343270127320364806413556615526658998666524814099863573053829729328026983229276380813970818986956196246683108516685169134055149542817514656155109343398102311723687716096779509993918500775072217061487682399901937237126192953521870798578926755972395876836716482365574198886975913648016692847798899234213635222554891126319351570236765129361345023154302995128089787433189362462725423765232336524402329958776396492010835340745286900021358818243633974674675977567934207150240985686447117480441569978483027618874704279339677769696013683677807833932432657868249409502002472569280291003009512374628117258212261028518971779052908141092139148297452063824642498727566774508710143774703220503216088290266890135669157389740041808942580770776204510368561067597167278094539691830632152766058062909895857376306274407677271592602931817621072556517517322299303378582605559024807938637357391371517616862493899436056459521435256272540217842464457239393808709340176738751778941487371240254452712801319704483520168318361453948453444046885584784648608696812828234448853376006902366609103975659128934576070426580409738164522307942079975863719812825660178681252680211032435949294749247488090735958280028915778914907959969666811626796753619829649743940127790805094824360343218288530251336787436965098428087653684816572945477471788986765939456175942581165183070549907219102578058186338586920096010951885583779004299517922757160602902998616772473228876446821478576980226672862673720710989420895986262678516743940183584733627192541990239131856377719988849536454398953602503214686316147518960825705090617730792123535172170895282167804072433777183270064479316263136811922731124869239652031316913139428208409719601717188958818684090626124503445433732624789568814147526919500735894381111808084022800377540663744685805472526857487308284287547688252356905754812119981989712721412786170462891963803945826459086143249304087215055057078154130032957357319659405581252645260836680609576761573655216972229768738689478681252645669577561525298697409841134431714652879730273847383027653724127931251284365705804097571323035517029013932433425130365623768729563237158353383079872946179887174185532088005833216267329153839678136079372988181598900888958072151318950328865781717604331547570294342192423845518579642598725443044483914159232776428687513131330762115368845873420910172795915465240593566618805027945255326284720508324305575193308016623361100812425316738046730673454238612129794252837529231855671740195356646319939907624540621193998412733225660977953132887870209088853606078103297555325297117581670920841716952288189207276946047218492200304645913556008433715551380973444720389640416321942836572601343424386606702290566066173602919915097662375027247103126549957321718048554150932514375471815969111197456580616727784534695038512909181508997985589893388659467325364005470977277004124096928232681093322585874225834724888538508264479745894307160325936524247381636135346229425705535691916328077138384952288242980800801406396388168404665102564989322645915362140735384232077031954179044104195587664912999917816100245501681811032193297124255820143278225666686776956545645233615913827228996453691681664967475881400464824686869761159685464204584189664465356368539982896035427779222803325596223918793585206429522545809051489404111442807657192215601318806409666926126872598800258121858781182184666505642385316758055779961460745697318261631318525881120564544273849036448534450603447608439448035489715968803984697546732363906673794968592841699431899633770122840164592045243561042783529007933130517076531694694886262921212335965454647832774500743899181828080478501146332501705256799677768624479569064157740733943323605569514766386511997798596678269135868862623603195032930148841543435161259209292312337328134243614027254717876845838081226457865730868392401124742729868011018434802321086088137477443363107030750336402431043525861135828561909123172968920651377466938236484474871408045880215297102065411359407683465489246866149476565815586780969367784597630204664574497559903636700292383463056420823692253878706130111940774390878584644736602581861231147279914665018186633208894191661178227082924094738377206042215706224271231434179299063230516773027995971543326559218197296414301602741955387033536229207889599597768051603991832256353199204732664940461128364289359071579723126207829403241663761929778746270501976274869033616606891196885563819827702411043114220475403970522747906747708424771836310268716391801275065563175101693569582848048887234584523322754427664708177762743994182188343390122939466003447671560688997139547805803160918889499973614751053455977466633062011199919152463304792871096184296648523327294892069871497923883537309226951141450933108701134367771887340292574879881186352771555619113724642628578071350166307996198256404489894729771774491030345384720389481585479747260579280604952345244124076059683915219682894620773792002823446016829342189098436320013743457571465646234825839078253139811154753619209271800861851304019384840226678976900659371756633138603498705864064049934265731941170444746783564433544373799430672301680505814130980862760649785189901426288811371633560263441219431036515454273829900833292377893685353394479080004766625182622839072668324975688699256518816402237979337744567820170650075514138838865882408865857919421827189101625996893441829702453218816529592794822539672164135252671908216458593935790866147424483093038604280218532722068706699090716005529244051190397616631550507107242694781484253564577114795904715392430257810244267583477116047175592202754626198329828412732284109800369095394372646996106227586967481630020002587203083955383367323877929356323288110192267457774599092723205890144332696609812551815547199677813703065287300759800351980897910769241108218510019928053045989702039829383485740501479630589648483948856688284311552564056456758279365381167227306199742860251358658048256772761516804726003522769939343870900032980646774268489501310962030321209003449461405159608421308050619338535206661220464408236253292001469626586560115431808371841802767440833984861559862534895763265166932772697767893736569645337282244630917496386800363835322621815535510995612587750379918590933520890001098883389567044643709125421549928320764649555566410114855370436914963408313644237325792230173237357026958700008051704076667749660596020870586882099298647645431989634527776950164895455149981596134174721252332338584173675599020285378960017529879519731596147765843540191134729521126419139216754900428288897704173345769857927980211583374361812219029642773732775207896641181928515416382687767968219019222615259906447318183372599738413723249087137355932261500936403738984319407684617433771269429414803455530876006732821553215111399199883220252570139526011146611517596018132768688415870478239038711122332390429704588175261522464339198140066295621155432392727997242440389046725724416725849451289410863223998310571111052882002149785487791745439583259582871849003709918112566149967872860131059104157868053839163705173468310495137553918866553565663942969840020000202866103559790467143424408067396033369514769418183025880224788349969946616621373276684955299464088321218418266488712962834163656063755294737487534634245253416041815616795501951548679859145866790814884807885882815625982735291995116014843572245478846923095106218936269183581524940260859136936594204535328965802170862790113869412096372643375622940624052548850850250015232783008078263375720978939652377254909155757746398476073294497828707169784178521140803143923819755242810884859422685491290739593963246635008603012921926224256905214183644076836736093167321561487020204127747064917772351892035135972136229181722781561340843406241847778370524998201077850059841074468858811807365294349510275108065994353193599157734024541914342832059601275936731919935253727106447105254206065331091133147317375772625088898659191368658434373937973851125795556858993976954926992424321688785292521324879937989631242807558222049250782679533482680214600896559411816567204948081047059195307634623026556588779174737949475057590622034960093804165141621268633963922322536024569503019935615880643466413738690847732298748213004699588787225552909462985696951127444369121389433959077216480297517322343864425263039304635898055455644665276992448726093148665597409667038599438515503982198594069936419791381993043467737394356370091188222407012184237232606436852617633039751416508423197789892804099186582636774124752049815260887316101224669787247852949377404130823389097612329670736831770764261207855411136516973894328945024943300116880337287466145609154695337094796733526625169316895711292377058015120668738584326554206939724257279921299591635964200412749076359781017746711904946139701122483308712332295364605876161443350407223417563541423719543120510041468869065404652754033378480249634167198268602782461507991293543668935351173179926318036439709583313775843768963409065721197645803240914914872281739945815601882315286985653161758527274404564303630117979315647088467423636786496178100691921140291394295602046562569225570412786161871049893836867460061370835597707063017214936977749608968274187586490000807785398133781182516288122255133994468220317687733825107790096260634969244986752230640852808691078646912323763475322786738533498746180631475614753389250042761249814750754569279975500337559511712198721914354976366221521911964521144356126186205325839597050112549806519850679899341886731474763066546551791144122781720834085131550715187851232028312126165526153431391059784175328055154979063908395652314687977476434243903866913159771521291292098110332575318674749858469663787468288699434301648043078643061742417809519865133970340929996123205268288048968283036816218420220742342209291794018589735874736718151005026978625922992891270339693901213545977135058346754991298630133897846159386615437509185323526834186299041144296995140707086070946287446916827108450776265579578718446040753239850508533359924264963116954391080899468242624748116791820959906384677783794184081666305925145361887771320203593665149587244804454865910195449922326683310503332570332295082124324088130193350845063195370365238948734143181274480016466960343938066484558426146364536658002361338434534606402236776102008562877931790824360038098247855886185663617571082426803459844063591491354957267992322359318585290261780090006773427304044921458912671583983199677274811385784408787537616919889249021844085849714128387151612529670273853304398603376262642080181650123063991650866198446480744560027228255020782259504082147641113238357711230984869270744834544431003515118231760618026173125900404358211295115463806478857888336242337608105869806525437391778905128363403657262022797752495830757021246508756546755899064408282235815233460790091988291412687823075406947293818553102745857135782527515624937653281365469547252376506985386239212777655178718007543061735648561448920748763542253978336914274581222373501875815399526828939196025544047477794543331733696768041921185759882187394473909280175677743768780375119462658282585734214901250102774886961293233981750868825496490771041710607355893316991431883139964820439978496599002793455120088705927151773062558971201953163063447421692269644591727496481139775470362441313801596875092849007177559446851552548169855508053502377802692714729515094258869661069455697010613098611905093797391235697891255896251707625820313786861485734113525546636248265614683076433975849621324289041360655626759085754472536162215635768569290968440951315204029381923537426380468924188945097603871642262264813425912804645638298986477037213854602144769344908766458996330346435692275393990085782432696059261093898123988456078527713704310109812419826981751515284601489630969136995906902700208889161662306228869109489789495191320155786884939066274657804175863167647266657003735241176018183705950737902154193906710749966995105971867631315164764830029832446063582577754966633795759312439142552801830613737589117160877375353702748799419962741904490251065804344273825360284449193320658686011691121721250193989100257050235682269755204117907968022148084672296227385773468894893921662404694739898181425369891677483460468661920873588845934786672623593212906732789558783064721181559434359152534118372461897121176714329227724127905739367223156336414105397131571098043413631606886659978122318464774633962786733598378102910945899922956630144625068347853752801537137466669688298390190909391801851953061308221701179148029134704798188333527348711806320209907826696321805947756550940154522561210547562301740306900674287872431994498952926384442563315317952453720841521131469426169281256969498366516755831880220981720338537177872804969548886575643524877076206051037471405892036975693914877999282922397225164555278634220164887004071337471328678420597640812457438566458939254160016273728274189102563350667665473413659617880933937352461012382946660446708943173960473458309670526851175689968403741741191198835962827401108278648918754476198001336273203986324698387805303221173468213296100475215661686344718542158076026287594285670177928932221278810525127960879756520651975794449088701796758247663668874518783375862534522434352413912861157018740836626066304368245615271314223012566693287244042635350844784248663713997505039541470876529207767982692061752813684132100510686384456814169201969874411651007515305479253459960236183340290991977818058495859217091906961000814323057107997952627682694201325523233783960517563542649467751000364471648828377146985109148636002857801654853356417214716720909218199190383014031107700535339097169485076075501837637606164435071751220771497198246612438229100957150897421321248160650800747514577393504929844089590936555925491881320900832017234200246351099291649655933532283958672216378822235264437361748794515553929705244739694755093925853105147070284781526659522728021047897255212411014394203641570172181098835252860045271808834986062988365084899438849254320019627340969898853848674170729039203073062006362760185712528828105595687077954088324004687697975198259280658168493277581036956614926474351968283388060915406892467294620356272668088236060391065624329672068306144863978929721776317801392463266115304783284759002915651484990518360194518239388983000736891114359204876753993677739405025913511073865917098815188237818199487723391454927520098926388911334990834336708152277521861033590018188459334805938215048751303006763313333066860528616197095082912225870458118819446332420625175996637730935612053979195343770240379253151927468673140636159225239379369534067411443949638234190307461727378718637288061959169275895206131698004024277731025382452295246037599349287349460121481440211783169633151572628754233166669204412568355068987184076510917345212486372026965638771610448137179581432749068644698566016114783042367637179705814470224103166892019609360743591585354322703354318458408516595670515487808930563429517093518837556246052385359414565444398705062169572862225418050052165527802475705146022600298192543724657751598985914219409368428785322705034320922870525936428680534931623068764890708343733966314036678603225119115384700243617597278074867186811959518316784551302534826466742045490060624664599487174905470531850423191872722697695298596211188687249807689307690440079943989860416874301670290877798163536768477056573660145411306956695015594634675199555887530770313529624362940870647035741417975550450781857909270326145094328067617457898591056717640457875514565594110359670399671036702575479109117922719593554894010160976092272618404383675305466547891747445398053572383452457069558119061799018688392379018900365519478426350605214642529504966721046749480331161525025210860605684267836769112865484358011317461004396295585919486138125642936037006629251466201040219300085087027033285424274584764573260957385274975515004826132227199119679146479908503075784120318998775649958940219160197876248236330186929658995100898059558791735154936436732665957742479825662284843880767411450599873419819505368599050686598726085247834234355456333297890364780013932536773988421204529537258166437660791506045802099599861630567765593309357211725468228118791814234840315321361808341255906520704913428771971703500756499118159314478983694749600761439224181529938751284484575055517285471122589305055266362479337067459335762082398021899293569351805871359188555580110175495960842427959794702707218036801612049497020262403107098293636829467053938192949264272612696350947790279820216405622161780631194984044700652274954457876991955426875095786743925000499741480569000711936113711578265848026454575872003045121313019223546158787489444902969875935297245002272857482083675738220084354203339598766985904880356658327156347372665468926396540902781296160810095293730402601028703023038932298346507421136413452686812781326208723859066945601939640007128909386476384669185844844080695176303085195184915733757062289931337122300531188975859081679138222572161178351945801550951151891265232600204049455348922435897499960869066879515193119079912298099809950929855096677135688544026849075763946299439409941369586899615170465740706215084821680967216364590123617803929845371174627197440755526546186869677416492847240675875221252978802159097431543417793465752583656086835572092458404617531060957811484068621806801425612571332263743981376916570936606638651500562239171247903888511455366271950144975425686840819318382626694851510126099651975785171598841823093936022551792922000440168995516768910896069499788503793660507652593272841780239370676191560318417179695992575926162040047988268079856064006479527213404198884142376088286291492111479692513828653592339998358084503925477720239990234199595259299553212578194735979886067677845904944807048624135167882132637994516226087068782238961501431185901797251874662684738197408565331737766674479650001398348810578116123192345813785080474387995754279460197170202983030151236876510577772180405372712760832965178972573542285917515366073950013929669401167424635952954254472213557000987592537476230277696523553414589479984724846033286659013034058282430094572997543101085639129964531632014740087328816938946261890087945218313424233063669131262480927584954203292140231963291883985961934502258405011869797915961104064719400001629764255726831637352109751792194320303795630148065053426623736063580793830112277170239855338494912846100831532770796402093159732294492979369657193593469486264985792947215265129753212646239694848004270314626572696935284826372032130767037970420050827798845567660644111410437024020525845090107484910030269778697136985634935496084654377046500950667686508535233627454667510263799105618183234773797224563683192893092322193457620480015827141873164580487417733435360200908535805766581440932151915175417580787000338523742708159305653331797969659839681930027001082059193487837536406727765784120548513254111970782098702972397867008766700624175629076067668154303081634143178839860198033096181119765888092411900565287458037881773965652272758788753140422004551560038882894382106768062224834848801199908589015975697814909312800159885446458514932033539845423655776333606700552687487281309162448013173464048695845992898520694255634330560100247488238046617247127296672560337815079432104152053548110224338644637500476188955281614980341362372753058210267704912714284936676940503468481963958380395711359660930120586783392524683125355732056886123755915671392840633913392964748454922993980409796950869649556909718775044345890512267388561219058037199415910282812831357234853080486051678716177029772091476555966299307947906052907666930293998697900239309090607121857246405278868317950397763528431001027503972015674593368281829308718661148639998540529271741755976244188856083143295167026749825943105069603319037099000832968505051824885494963176149664777189341268228901182281629021357556123759831311025736460439276539904718791944946130320952064178149019331449563898071379535421578493090774352780278003703431972599457298440693110442589573076371296597583122107681288684968499211442890110618344176408597387962489884182774722332295583370031335363682888242823096883754416528302230444200977718478580884265856586283435625763982681475640960327513296586695352362551545735498104642523105830483518487921384936613115972812964459639815405246380938854340192547271162884335226047809767235931750377431594550181107365493758915538501071746809774591881000087302740395044968450878235836065770588610410689102547936545933008379631968355325060899462220844100400877027061573727000923831133138627245941863151845584115031296681326148875132034374102940681451592403858091525927621351295854274781352153034376374395242056791450346014129752507858475512172337640645967032203239460722606388541937573935340191184974196994520495138093659461392207587949835586605869658118411791236060055782750802728277344123026741533951077193247550604293156685218849927737982482649607445303849866576461481726310034046113579199324345086595072152099062384401674474601346689549769562283051222441619001541274080691468024817673678598821862496140201663672584274408057039222422902174695174901019998686782579791485427930603060599018845080862141107535720283986655056574216051802714520863222708761146973941357479541188471053160607227933998711376098544097479999408344992581236119950035418660267954276708740325676867097523151025382654142492931126603166301763694292936345622717333720776192279168028210043749047961285412710980633891084644272621482106408023187826882054844177932652005107199277003757158948147474240879503607821497571498177319967787625485999976672195579098299667988906098729691197593354483864289911768995836776336137623573907601618021584746891916204444731351041082956156582016435233433292391194979090728116553748606871715409202580677991831569905788483786364616620924123063781685420137984494948029016214739659931749401694692693408086149225734150484746972019677670429194402576139851380276433478537833883850614498768109792121516616191074834576214939468505375342507152407929239256266633797947472155177157513669133888833451511616850340980425392663326195167841523322507919086485634469979268053023877077148437730330514724623495815055490209338972356080940713048259029020325804363938900334300644088467268716715427411740248876565074981902329557976183528568501924051290577957869277981372672502502048903038866696566389770451475131414351828690848999606772175297274084733926407029850426770498670677543006136968463948313333388172945737468703927482270339854257144451062408279624066587183971488338041576948523865696609581944158214672055848328314366447284365508761859328392533522601840855670251222141925495586267353278952610236176033994323328288417271940252416606803443197047382067259305848439288983770295328057696309516242095758470075795794345048100329083182530604225726200798239066820473410784699583357593284332831911566745792676374846994695541236568708390755564758810526674200254440916928606855231437442843881673192126360145075894918608225743341128565870053631722784193632269745409020857237172379930090311456598127160350520972581258981601249222787062396090815311392033881591386170879771127478213506351384154997429621050736497357940947033093755835035843025609974194608737406710770880701199339288232354598413653009559509193348291857819439326848239140245424251293926767626989536350669695795805341078544745741105328130602968897958988748222971573655895285422526791920126154341960665152571866939622412657745615008166612929376133360740127684902023991633819144670479291092226763949999193138899635101399891641318955313054915516818047716323686200182987268048271478194419055746239005187058209831159671931587657950383726249747721983782383060293989995624790747212986191572859899336334293639125540328894990563730645404725812988879400415881488709087953311822972878383197084054418759343767962299056465077754599375879109200079174351288948338785048070418167675571652679897259308813818092010306772889752035356857089383184999751363064477132707127238234946795354571424148502315242171421805593487173351178748804609806682004158003488472084346971740531801848747386140846952429841173600600894542562741288763527862270350329829472602862977275658104834869334819694364037463914675993110606384114949720581677553425332446717973357047364736566252622778068967692970062367034513002875215943580409062099984027819082659506039301312981274281375418169811768101687328370713265502706125531239923558194002109752195829640210954166240971632927434548975863457407327882798734966105110059054677710375726870470809547514725086141077221975978564703521955699244956572246966114296116647218266863215097608689824873192265105305548249989687785525268697435272908135943442626991883482982542016644783991902145698978661575243792194587942365583445279241859781232618493358308399807760996061114836541930387521442696864977471025306315813583058398658229008076854626991938636644775700403732581295378096118231081995967637594749371387151144702465273359970626436254869398105699807252878195335620461286194097678032451200932827960226455086587768207790405668016162572948463596559920706541965708464280050815006725200528387546098920793862667563684636333358776846815800704665045295535209670301956548658435501328914835681610752564416648497214151060175462414712888143004902674203892959887980175035019347579231221618529198386453783994387017341987071409265875279314536694536465765147053132211119303445323343009113376066017360539264075680057406915387390004638701406941931879395903580853493949247734819037146649933269737841729199779212204938541229148443038922324602418187225949283133310091189138378694211883443815368027215712143739479539296346268107672714197938520564263257564465723625472880980504374632446011816063804192199746508921573946677546749100809039974155808163316076451932377998911021266300255400238505583398379525742960274002795229800379138316224024498782074207276046906713542102344652829553667803427479891330772195597673068727477677922371503244510166959642070265656939245590478861207139084686720679931721552179247247022439876811927341281912309587652376801744190295650932953571945432247670727248494407299799580053958648445210252139203094724303180980241586656083425914055590893764882919063035048897268098687918714686984897973344369876903290302453677202983412710104852505206540673991300477605289419895480494731255564514576253061786748783131891214533625163598238413490926032162618872389021364244009686658020176513643258734700715181395017772565950734814370337150982881376318764501250121983101804344453070909612276371502895985094010997641713768367547191242998345205326971233211562228712977380541196265022478912243930644000683688756801120305856314997484214951684952735457221206772537750366719955075958936964108042951960677589853335916145531943300607023751023518323658054314702652945242912275559149312406870238519427473317104038398182994095522425307143914481863791767046024332366563948807805332228319365760539758254820114360935892909604795069414192670238143337682684754491382062690953087568873922809311659181170419183836536447414030167572881984066781393341475790363826020223638196196721496262018225549863121745370993713244321214724418620325261067768717331124231746641729288641941233903204610291436093121725115657649022909232599571365923052087803239884364371764699312256917335584916253934428815930797108186607426326545403564630706704386029701908827453793283199492858902747890091950626052870786280049980494735194557378665875851803586644919325257931495765074229442165418369083970760571450564917186170002521614551312471974796740928483893189907282290562194487227774883265410411392295285045153140667681345098103063080936383467865297013445257746702036973290164835687017114658131599415302843772675736599738348714561170966731221197461052568380582644640402371041634346732857485489168396904491929781092321682391550900422695136273151370404799506278343605231509961642548242259224064764870999563707400304089742174757777357339127105387628312915394989984808054902890727146475471421027495367383827523304028573308283867778271160955125458127849361351095554997064670783242245973526563837740520120517927967655120734357931934793585334737697737864141875707515872458831383733552524340829104226436169499271530668650868433952845787129986680212618497857477368271956415953534300159328645346758460864099287441002812748499500500056254012901670288610568172309777350367032942847650262949835928910263203767150711660415794947309044969106259628081057145188497014793379777643603249228723136904304656314182525798839444628509480022334596756449821154132742618497920390566488379086749045606385942741586258845206167473987048072794014554293989141048280421200535869468834546238556456505779759240983576290098760201357948140003300320456203870836420346647846000984768300440052510582827319419347449274107741762941492680421647627561252484891039486861098560411663238474077711447209239586899411109496742021191578661670025393611675072774697020035291451487040870106341559998168078636837458540313333046728352435627700227304275708890556508270752024745822740550944332838150515505248357504302662827921636702854358708639172771337307040640815711000338303249870433570896149908312895271281313825619849142743816560622488074007816088812592105979930204293436701201730466281576194433165126395106482882937618660485853878137751342279302762197218881305439063456103761272468249761659233126731813184275629173213642468293960535743063478368604833587641945035840285088585604538081620977356740374917404843326547367321668276144149450620698704897681738430616445234571882404273523630799269093115622271778541656341676434293219414111440053027274821236090194722182328677130091610758970158428849612082798667768846952837075842828341066177003207496566295643570387254302967094560207058102260141737305323269766928874614396243987439171267941585675449527808412763288247970239656598236918065482263734827261009270697441617250279395997985878621589655679863195175783578960485698955040977407705723428858179180658906605288957204702070427805736875800127778171685219353892775064081807679252630080663859846126858619066571037094373768639446207781252989068017423890456274321058602316940511348811894658078096684441325395690063880706330696969176440708091012064187863987316926403115058693203085853575490324456776423705188356104541570939003735831091715347253270724215671697730944834762545841582876404245025644360211290254221707130545262402162362306394653052778567093244153697231500530987386853506992511628938371762750679387697928826962899204071621394953189288791036262288272988051359362362723482268922185483121891437648262205519406084387728610625417954110397449706547678071211796015229764574812397771705877105053313092833288292706586651954011203926003403458499661435207481789514624790196445480194063142141574117247171848289572114625186590798395805614527662849094910531610884520922541208304525182248277176968457435230603659432561500309827815165755777675517684380150963380199453322945515856606084746477588068804792530082912965300850980146186492205324698554575076460931215155196069653607471116088693271344094674823888439088372714237554287950677805659138131154687795220434808007601170562115474577032625957027741630680259711713990694335076973687790889051264739365753889959628266280794473007689109264048109346203215240210631249363575354832533648866123321624195090983136813050307053559028990823887400439944453407914815733506620102209918067588793760741835166098112323166791708698447988281401203228828412718401812436568228019551455773982174742210775145650901911744828453234486862872675767585170413811826291490032411881459317284781698880804372877540324493970590288740340227983869239132719994349058695153185492016764060296476206490268814647477198806423466956895945642864722462614754623506479214354590668330712769842506941949365137498905930833730133867893241297236073251554038471349072139421506771312263912227712745502395409646651903687118579639192977627313112248403398586901430701553577638269641706688067628608276909550490556618325494863349597845039645352108041574873422921225362944961620261624627074096890270187422762592006418666387543374712058326345945151894714820576767135492842073499616630599013225953494195496230303895567301409241831016765047061013583794312281727348167989815132378600829330168235218283392338090589751920876765912667285425450683026044218571639066400435970012986509556978740659253892607601175442490060921834759444225091984039396466690147779195117183484845804789195351177498866557331904023872905296288163377042034299787072210946848780865883718676675064974172889341785287283232203882054394744465215205612504931595540357235855908319687510002612658481585232023006338388683970096405921921318835150260601341771826425490027513409319933896422749295902143238536323527359630401852590823370725016029847762810512705970774858057156200903475885678963532319814511576362127986522340388399705916428163773937039098026282477336644937863382686298781702515194418054089929227280419300809207841137072214188462630765071555196575691631474117918206797380248378086602633687897335144925921039889287539895937540651616490871034754398409469188128301360482287166959179891312869408551865173231292953911999804675462600395381176163022422318756669608518260114356087150302650967836339381764224001463810621623108997718377989164596465480836021693810757083987599700836027380378505878867570540734031560456006467917505581404941128814098689916253179391183869902407400120113253278794912588274023349942096729659600776768787358434961667272986717632654431231073314606272999507627674706584125085281751931169520884901075863236027654840144549082623203822655074503041063723761713768998040238425379759753968799343501962378070522026009601795196479614938714125849895409708289626461927358985719723104778902016562544264315973031210309696949206505054032109107535017485257560601113987371256206635010060028599283771266031149691970295748216983107714177328344876861741842333941908283469255095599425898252075768156197677987673631590703701174403577067738545425101287676406987425723549446544488848099241662440272657644951513562601026092373748278355092633603657474236133445153356399916859047240631465090566884428082142416698064410065757907647280915353000802397111904545508370391400395060096527989082106809354670491699023375825992896613050737061347234326472138976607465367468306766440480850047662842916062103775230407737700080592724608351413585640495466564283409376870725630117422138160873794041236646125403045758648331117514442919471585451634422475336602864487580671012815915007218105564498390308689669874683652360620727351928185358609480816293027289882362820343771275259453844764385157232346647459878895514324791099979613547611433193989900028222050064139061970542793462262696433628487970088185672820306981002192819172233897322301968792487333292126166209284307441846167746614329578304078063733647064175653255934351771278870090479655858810110381086059100133493091047996848854956469735078060146800807837426681663097566817849205789420264735968517706327464821400017211939548039479771015946263839996424475307961913179955273889454210311593816677500160404017893152466197018837426898353848773478495842996334562514532273634052475323715017191228366094800209544565120119427349897116196406257478553694554763719626248993698189651548139124837143269441543924713084539724602462251989246877731996699119065936175550050678936495456787574251638301752574978001478410657727666072531895331984448995480448229852676529648837778992611243174040345101314217786770465242923630814564988199674079878894135905282415892177809676234170549864934322021779125075415397432066961170623970053800631595176999519181986315889795462575377236908963427322640539126974054769302902228805661257949376542750374125781483478722612717308525442267204133969321305668463862152836258562216092777569834017207872316107436569584185807710854554912966323577465460158026172971396360560083583868704959209729959714077662527939771708468056582224730302706642320580965146583958089607614213834366971425627306740380951308411816076307957184326333879263879796585173934333640186290446758823286670965862560164620361893237491426540953047898877509756867178920362798036923116996419913123776427370940267808814938293598283247600017021270009734755402678923787893659600023986556781053737994978660699276083088364504913526198456200402231480420034546643066202967983440415265605154185464267997678816107353584592852897357745907870703034014247453931598678408843211814839851910287820430060528628124758437937843848444099977124329485927656042110525871253572520045868788155080358632585441565722659481442820710576027216611285054199589588005153755637225425157306711187589553172923789890129196347988177579995301925934696107013346839525281151725072318697935333027768617889148566754768126653321413549644715201828966081504739852764379801355215830816893802617765688165557642900324600694317343565329250685071509859159170497367325722908016237069228376988252495406209748989275806526125438576731325471449526131356962077437502424338654666813029124480824139996191843260124377568766093030538674987406956995698969025163838470911529617119039941218101068168690954993465630623441947622090338457479520258897514090921974815478420246757544372140744984303873877075652586303918078408047913890964662406365479892112653535356718290845372291683843808015452949667127795450410656373110229840706998012093752948827369144590420787872717808284004734298620588458577620341265237291597567892325143097517473316473374489865736616771507204576801392596548267371215441290977160551508218985902462477700336854936645750955634186780257437873153051474697434918564945061484067213558520123520838556125099701168600024680289363085389172766116380157258546410661959015024630649478182306265351584950166332051867193443388729056647081677974715793546376001375663041758971473872673179382594597630080862966770389856065072349042918353999362562332455274081415329351100551225429748812712208251601544433977782230008882837029599280945256033593649164002057034406118555069705143086420320113008424517921837068907635567130612279927397465439613638658543496469403403453545416758708783195842657258329326834594111340737852845303885642087193213109518400111882786646307725077836678976848048346760815331266905040382975862386172106665520458969080969184497362490272894588881306226975379775205561059605837504332462525200899068139942034648014019583623296142496257944138767358538052238497101781451575319148868360725666426069102110452828189110210602104211549529902368109394116505111863645227788303847447316040077607759362220698357592599118418065358795113279568253246577386797803229387529604005493281047928890349141740594315999259939673999875760050182083041032658055812344000142539684087082790928183406874762166965791118569825921146446675530081971137932821848253069951465196975698716707443363073235565719602608355173347176824680649034479620792196026467431289722971669209176456876814265087442340976053951127815684088026710736907543466804315212494051731028830658842224462966888751991373545597385466397871445434098128572436037674338060810474996253435549631973281990996672723848535535726707228071441193980874087151872479669379595931241267281906000656253257010865558709087337797447301977682086667064816789857533795634965242118414138627694799255945469069706985657280509601285152362572381323290160249427168130185973754112659378146103335021017560522111206930472401320754720016132044640270275811886215743029086158061269952567661165240182682869497346890536697822513502594756359385814466220256608861409264155207796197911099224522686530706886989896235501459770829544804871767147233905183958904123103267680856714659767353043279651289649924187044867678437852092083023313682924903968164956448789107708808077357873175789042796998121092700046940039889402786706418439451331474850482231523051038609489087029083603823465747869361737913880165791960408805264648290090601142430198295391066629629532937342007042998218842429289919676759927411943439818099758966553156373545774358885333898365300731563471169936129732136250441409373667675229880583034330631662939239360155306368902484378129576159286646547027053903352847927512407115982416933086818864904617332582667485565193805541764482676627137387732999015530572384266264478542555539317830200571443794525559342058678003777005325400085225162970397885039895133621453051288989210431497150896868373807566861330897935582986762970588407660322958635457637344373428227975704145561364203146439919295895269854883013019005615136604609640276968155176665580124016624239816617468803042377010828369008159778815883258238315527374769588175572329325010832966734319719378310755782285493863465681115341841797690632638517609821244534564408101366319674182819336664301417816141256757015013717194543611168190537571043993663448987325545069560853498895993120412548914185690957725345996475417132727061659494632225356461119791065325803573851469543820686163526935156465940752402089902553465726131780795313900718071327744495423396478823131542590746104524671335964585597047950800863444195995916839770388402536124156490650330859201652195101442926107980297389323234693447025756261064110003932130807316925762343087415506964500504968479477533246418426017997532892921358630083829339302559888421293578103696868260823165163531630539359356652299604571213485640730961173476118882295341759656543536000408822016867287057625214548075902155459850080056866063639036297159660420785373985949650910517211291419085084279436228786721329842704039922282574481890448984651538304440407275524691552222295824119572905687286835180799278807238900877296741996091957782213432337762992802786391080292712698474343133817977627599693755612419352379502805269422644679619128569956810279026222177981315206145113345577506159133430392183400075626893929400811726177561295462464014555368168741644407691869774718388692741676503750082478202901543396908495618298781672310488128726209830672787788980249517292513382097289909094951096900499813822905866976729591638141175810083796595611249588768489276228514375043565576459852146605948854087023253729152390008628605942070076605079283255538873805649872509388239589047007320469198981521017007891131199838712698997759440737956833765387276981049704271368237270923328722684795304987382191662396525406955991387375314095322622354210716072481307938106189540449811714819130853047473874909785420085079234152961867419167361664174927466616768759811847592618519756591567696465538844533105905658362230997857403649094369003352491084819854964656129284469654902797532695741505426767081545666077901728603329256780390061966207429864658419161730032983150196036745256500310805083326009573018035810922284760312224147119799105650732386337091122820916582389253378274167197637860389188700465840885081654593548523263578066920898542780301503253045743748915721590918678642645637666408797633734946665327010083510321314279295505260525073402920961333359486229620989050838866736629527716190387220452696600503594198452965500306416829123322540554350506234144216639813342494692964565382199505950212752355775817187299900406959037111846184326373036840006102404423430210593478601704028782271633671872699020004089738364668641682717256748304710363504679797947938202341807338910653721761603283842633232665760672573915247576820967646822689118923551357657681018841029366252679038447319959490866667948355886344693230514588668768450543750097084422068860303935406907788529815396441481544574801932259977771119159263777734428967051325115131460135947912915603713424187369740227186132997426852355182467534078930905491394837791035779026568608701149764072284644087975913451077728969394963781824371860244560068775766813850785463573641987362849770361704773479827702046050535321765615977361047101228098660283509819722407799018199315929676915127813529202311701560948654641221323366093262041403738695387756791755956013316284010716817058001473922826085936908039588227994757263576199903300223997626248860980578671188107084861688151858916511222170058485396508154548363444758314815289778187294240717415008562759589890562222838430198011961113016808153423826767111176096257315418208209461816639206275515829476506286952822870956121178409935675003938523752399614969910723124500404375944088358787050867254139375640674110638905938738861759813961293950642745452287114709245436621130794491685118326813739520473661768727631250744569425384221876221020865417846776036235884482753807252829844478034990225019511445695999053638513967200418735791008672417282196332994666111002254400120096377957829901385600847831093690805057934579721284506558905944610850176742650048110981768483514264349931544694475953455857569185096744249848132988686289145847146251933816955604906393688595538893725605685124915817608140341599393568951075788609017792801401614179241238399272636286793298711549545769255361094276668037981309348424771407518071141675120505252332037015208057251667570579524832168744111123221589506521531605432102296613395866963801649732351821871015298221016244287760688385449180839446641346431833674452603513362822461595520720649059447418389398624498943256326634625285039936235095683377700979440129679797417959751051917513512876179647403339053693459127790768314444729502207600899909988718194375943733986506136603318236217361354550367818954466873273513379518579138752420506463732951226124301374540585036703072554807746289699976745080119753485243421260232834165578336761975481453403824191674913626118365312879235987190894731306898345404716590744297619574512870811532682806991734361027564848638708205600520750306601117457193018344415252355467127089067678331221833631715826092282732061737410685604934889502126509309773921644330171405073268910342944517324787266298266947537117845412997105984189921735751505511856885818765884759300749395429946943500119682082008365056197447483855779016630077172684750683759887780379227706263230438996020852074761947858812299636720665728617382786423085460513642183282447708969101140056148443815630429084818939857927519992784044428210510344422364613969802786272180474716826470161736645232257294889046937469119374055412538428373818846168680615506265619332414420684562916076961454209954185470155477084251310001007952468872196120895005133586757214396646889039889058519829545337972668659655100918333761947354412893609110543512972241225974279735537851330401547391550409602096256859549506248104436556378228552779667547162051482098431730314547234739715810628146281516356444783399713274645522264842427315991662941383456999251484015508020930146849195717170079570737452251838576558373565893487644270543640453195894796403250358905231698710828215084139528516387745514234507600463186013943158658561621791635347693445219695223412587125002317313673296893151092520672495565532674713855925633870127859008061506284370764228543773408071220024525152120475518268633507608001027733171317014577480738222438108178218954054060340487591636782614056172832839577234018937939017103634468361565948940269807231582668500233067357001450161244792229818075470017503572257774118026529188650839577298019745914253414549864685831439645331788176341991407727120659658466377229167237320394886704409781283819204571258989198124534051879251217813813948047834210541197032184404352022165326247571729079091617270452324840497453056182399074772666499379358504193436370123528295005206504817612554087626595175297954485326602476593921209526933087732167891797773261451334902528245696224710951969355435214732399175944355840394553254598893590380984954976231683495302548703783793718661107662426746633098478279712186771102172815745221319555698156441944251568337676916608600238947895210509425180259003834844176174380950704454086662196787057035329849301506312520176878908600948505710913753764670584170907393539673711213004996540005885921556050716465880700733268991231984432310158575407074916734083038046358686554422818842133863486260609909945080135635049430264389490103494158433120443007802288844987518773365322464648042335256281433539906277365652587334098128723527909201631328480625009767573008855765287448561266961812144770356710813575960967234426528240221858166276824973778428642155134264771900551958424261934026657721012106720254516897399355150771078342835319735804531742579921205578313899406128195423617129593810623486375004773718267754488651809012240383393871291105647350069645652997957073878843414590281205888521663620791261543922977355263583341905286748850673512391718202314522315790675370422526391486255320977091020877261500616491961291674599365305008922220768839494569547690477207211770368171194555198088009134455238435606143332765876660734798789756694093634537736053362725532967985229532810726567972305966762305351673361059688893449255330230044184160872377299778920459993623914458215286424788389456687865531316177945094964904811714994054385024294492226910289771414858607590692908318587723364201194686394991890019853069810540245518532861497303852110894460083862940768989843617137385012999698999652811691502402819355605515807441034303635533870519799309787077288055445717325415343207645869091481052543776897130004976806573758404351438707038616437419587997165485303391911127404141504153249205089895370148418291658686368078837157603722702912248750551212196045837314053420886673474378458866097057994984126390423501487096268856833681220312555400955543117937800735760032501448572553121640057301258751931192983308147491542689137184304892810506784780521004989103024962500133496099511485730116561191482627930798956902731409635261129966002334896678992597659388276367803102069264095293396079767340475577111343792253857731269629846508581111544756656985371707574575293613200203593781170007676803789952243714384845868485664035899184411635936342595512170213451645508170886979330740458044248150369861437123594258310141204166204333020362181910904818488858120121438383425172764222132696442500348754075546457294778136030291722407798514022073097252088155777722992831458140605146777221446312470434494046122525643532597686175477545861264764025700603776005708772306796915101935077192104636387874813531622059665352398412819920602941772211068210983389551363180499092213378346784979052558134064947494023591145148127058331953197898657281997457673911181439758663424030685212459716688773646849412327892468979403654911858818761268973256033574720616150468402300584597551394903910290953127454191558305248338104605739561970036701831715678154942858981388834915477715999307636471495492301444729744706368359138991588453728207733758297976990723440283165939750697924110444124963086357204392309315942700793464003174774917274966102018027695541126643125825272677949889643647629498026048516353121515557972361081981995282775134168570106621854310042179909590008866503260212399423535697751879629637161454081329862936036173525037936897417316451025650006180592125401465802186858433555564496881246288024616000666421309414752879961678441702550009830039112135550842720404748467369012002755602835432729280874498386006482090543671398973102220319159074210140870927827281813622689910917749777328325566430729948207468603053109561136715633602170764065610017329554289177552721369769376555124064729506505781852193711301058740642667713114549569575660775744296905357352950004486971323223149516732546280408181097206377842534490953915184489955365100762577244004917546917761115123588788631745050849065399635534310777442808068865915288024464619751042892497789141051934935547047530157321245520543384902491539640804227356087488324808045536557400409041910702681063794479332490649578031180420682190689430745697642703655992220303115979868677683217151888757065451282027430404264108759557574446348474107615268505258823242084718051438314723741029066860089865982448526112316262161693067646956668564501408165891347443758157624950656531113475357573299102556282148632075253744229086082746486103408227845991707967562846701085174630608763180536481947159334036042589818524334319217582792268934906392459724804318519754950957377670120068922781306642246564718003501128795780665523949508253648440528235843150328865912415911124022415154939136243950155573008074205017799630478959610869884462906133167933080907630038849316549907837297434446076802745871952046966154763352327389479348073120462051946879825882870477636090040663221754565647423795580240972339429412029016107602542352072404468520837263016915589766059103979079795455045333665634124287152377377025543687572060281519499985842234906265674068140689282521608326467225654175743060326584231641881294194361897873094874401559179217603473924830127822058122444716717020055036006831751266095705205268149308311905123699460402496101945433147965546790875387815320806012795082522743100872025589583115243637531140383944141981200539723828055864430402894653240535993463243704879650597506251014679355440305628021048422557635983681449318435896557658084593024775008377324123466556525163139597163324454948254309144790992113552261314041289060004946933134306156237063033938376010510417649521591668939763513536551487399980438616629378638703305988289118310577185588815392117592022140712270132014915434549301397471920627648916607614109983888999070743030581422288644415389216966793538711367836505555255225837309492212577102525916538488152525103610148938538052352619839881698448979615228450537089846615488397483960622049651211906334651235476416479766532176089627129197084496366039144424312017332205131536972724717948865120037517464892860602610283787295913520506349057504256689064990809389364954297354644844777960424887132779994555355561265241935751912644226170163724397107856581787353309051289558212493137783647033155066014264205067453301986165415733644653499145667994093920222381460209839406408604516969879880325341961600853879884433200811770192653129010283317159094147166990814764148897192921028709165817386342081687781733844191548952109032118592425512945682235358625751226553499223001928744572994497453454876882853665357961160853723031660363620233739292035352877938774474891738588880640710387732321210766840620118788055074044450424918271121579087852233721499470428439721063695899461907031144398286581267523214450359702409632684643903830679600150153447454173268200161514668171028117837730968419276559884414603516247132030536675172617901012629487630955708439611159956000770914200426737486908018614935105588804891567281094954389218884948887870429872834865427759580882915369507570254879730669170019963189338725253904154403193524494382703692367241082533258214421028034719388467875716502887378699015926674292162789792010526701865796796008679358396396353777886804318926422324149108120330671239985670431717743170022537137756294047214290506221505083381392436304097752043939550582498556925716655355593404403040905895192215188030185457553918690731826646853677034441268305617055542052119406859854154597900407528492375959710934521984275131853316959337242631841635463423674976408053400489278290433332865029888009621308093632389939346509462456650426482927492607025328575632016583376398869534225688041538183601457138146184121769154192731384321569534731689052021610005426755255637468365415390965047226523866727157704811224781852444742085158924228692672931433748771691804480520612926476340878528052251278989170482735485659364028374380097832069353005646995610711808568943766235793029378806227681886727664912253392148425049353935782979535192714858441033222910727703587462380227626126680632123523427687274006524484511378589652816258962056183976364930797530486984355916596413630008571294145606113844635323744185007199465812043862740049355754651987821753068473079026874935026882831546541392939501496148694907353935645230511212468290454446922587847777467834489074613009790190087550399273012880651799618125931441051334382035066328316655380132796210060170447078770548318586443229191871010173349775988479970107365210381352630570887181089272887121277327018348993209902638361074540966223684313636116564139928820853621557812831101012861125624254515770203074168317012283636021048094406000725937728759737144623537027009935768024477866868693549253247004961450789727351666450039953979914618415080608359722812886394925675981816613764067952540349896526087956241489302505738322677821899157065233086613895920807497484690348570030242306548301244405805705187855626311066091946621567547443291062358045178668032223852414727951457081751619280226214267841468067256536376358274892215186553454203014915497668374398880489009938519374145958774872750596863323505122779610319630297632786872561328757961994740886228190083182046160587046747437282834970874456808066629262263075079526346881801497331479065030400105903560173059128412046543958814307241769861178254312593040571875250025968151137998082012457886856270987196070419477592875997673243644815530792572637835631503572943862583843485150163793116408129146257979446271658776348483603514361072225295096632297026629301372506232517721256566535501785935674893241831228210181419626087718833327840881455444509979233593786694380591557741658338880040928241086013511517526735332741750781082129372764167937070407851841311439943577491209130171357522607436563218477396199172104662876398815522502820597473231543305345632049987965858217743315693668469957696832957981598864331416455305317546666738205173496258942423912088687846303567162643956210172252037367574882035328477511490580108223813538529660966869649356833364430055628507818550929926038895260254194502216082701935758089485769456065614761734951041497465265140572847665409172670801763703191119348031062414532237782154153164637652870832539268318050805397918707290770650041266018254707727537436165490635107622457003001918066653326487039234766577227186776578435943987617625570165086937479055567634255913408190969360471240080540215426144703044134458239452987282177272896955330240400376663058760446025762150070520040300945540125537275853516951409687731196370207247311478106681141445856114941717628749799512247971546141673806441494786773920694979166653769195445359215138724822987062789193962655154732137694163921548790698305818801144393170964149972866010048669632585550988883448370493769214214303932946155589098705054875876877499544056006155671257404417011942135814271980341349353653911117004790714896086483886296248358870016682475740975897201354220269278906673215356789322294841462129190150442790010712002073191886286768473222507748263873919770145252077917056702619571936925669609791870526805815346271019617822244834931160921863502638866173301892053627103755018469629881782586888161452608867441743795309903042672800200930890686843452147472477905168512240457683856728504965297352167075664379781061550444431752700357267208185324730179607567870600197702637956680225503253697874584792732177149482555909911504733103157236291993160328139736224850482045108510131969476445210707296452674465288264823088496749700423843846720502564601441740346800519626394241776888170797361185206854838329542705946204263184672363627575183008163855444384173867429779096578583528691659623077852424090858961765252139925172460126961668213167925482704975310152126727752629175362480995096300920792580585972667339331094833182480317333066797704620383334549166483527630863221620407161042048503500293885889220404487686132254480694317559656451861636149245353359566189053932480301767735409295825627845402180835352959720401281197821126985763940618374820817279344016506039542078716995702312901400388143968979773788774932714415996934596689335889580008471684765589713726965863392699213102793240009808063336513622932930215850988339281212571047382889628701045402124085568531338257169473227837094418622468348416453352522454184035332964750967460867556463913621428278289313370935230384674996601288117852500731768073436515591972847214272189745998203173433452302647762223993837724178031813970742082133455576596920848348603389514032114589532996300569838140306878738785028372124217577914431298039202021507477384888869578067203235866266704343415506199409985660444927695268069603018453962402294609327896371090728571538739211473073147936237966236158254737796242024141062780608640308498036435942210547259821256583997385634922080624850542566065702863106379080390483625550028920871416020794947729833624025021807365723493998624857770703874614281610422967223922460016508255354068720571875679840950600322885705985882270160183556258130418132181047754986107832084427554329859203851552259794084063742464262186762843969586648255954405354371656004585349951397988389723161587897266236291120155178374619384359281542625556905967579003297175283247497162244621791818584995931742781502823455252572181145824216155965254561393111066344188529369548795333776161976079541404800837053878170942455306288633322076675083159946355706590399976992049799938897611782790132144020950970999820733065074876258675791897558471123397401311651034813447639757556960554833984031933062190006501547738576994799658384678360366820529738807830266369511255118394527145440157574366425027447678011763747800032830327158799795100368891877937551088264400927124323189875906244037061395205342861065498376085880396746581069344115372050679948103270030675097803806224204168628525608934909738166218155389442271577357464839222057366049561579731012041153101064759523208076070180752839913451291238714182281520291564126982614509375615531461376570571669904661564021915207169261266520504433940163875494133901666317983643523807456325475985737343082777674161519397518755300899909346112850339517268260272521187382243082197195898654525642190171990320376812124556425807924613681805528479796583613598267757852118992958781888527008735413212158678797883474753038581396645767840842784015459476061839412835185546425424289891471386389670918444183870721612065618381967715772969567194230264225217412494569374457319479601763178918965408741994196771087508473213524197783009955354590604132302226074695810620828725392733301768701612241117907867853361309100686422139865022549275392875292132934738749001652719412955913237289332773497837699505475788008781742743175197582350956179532544775600279490062914203151850508608830547963234855430368254710377888989026966475659427419234243684966547068621687580456292996125194481544704243050083381370985749705711557930827932496281610950768138845236210570034218061977212196573409802713064048389460935424376840085313416750858601816648955477493470298775669867145329310504241397977807564482373645820798774955387962768453976098275956671188696454096232561793574557211757584596592347544135767961898963562348995912753290889630654944157250971700266053315373094099604477851965115637721478964499453776829673013061081244760960893011823163361831306896915604971978861612878129385260112563252492075810529887490976833689752516955139197451794876887671354617430443493401172682775133818270994526795915755399906134944421055114791079124039544731557390818963394274754723643226524792947302340848272871641862964074413909383672520931188368545684767280029293546433591195690500668689949376438469222588513374901536348256641493579871506820082207106498085922144578071427407048411922011931099041947818694608808078682896658830530736741964795619240150988639919171937602705908136352626206702021733983031842401865316738061486925705474939247800572389494395675032849641511036613919968089575527495857307264122651790383384979787024186295030454861823946541752731778511826906137418118951713209996831417463151919301502769129198110249242001862312993360829059084276745514680217244306492816521812280537581961857805329355703288127396952874634490830573137616416958430595707435743849861128327879676830173597557664888635895870966198511405064456731460014264101256939775693847113004290935147084584929996682041445630414852382250051452163528144523113174007406550802505709323280294252238187476412379341923789360667648145903965954789476565057414702262631355371095520918614082932669207356265601892673124022572524078896358309999335827002307843544792415004135579545427054926986867748723880943335868978133500684207981152744731861685348502132373368169917088440117100327954074658927685970717652157126961749437040339649979384822542107604860153299397859740932185922694217794495448471625119645087557691475546013776768261552446069802447922598198686519596205032054384998784130096926368338154296104898581143550839675954363581069081318705195786635701180544207496522022435609910470667363358107762666265955929610678263707623260833325022308432311718319122183551851376668720108031250314097935085552519910486802438758819339615962929847720175609472864472514068274543029413703857871385474323608209698519169433457682935238315530136079686710933712008919053490040210300178332798901914252840355474671490836814283504707717900695459497250258783196026285705150003350168743144484379985056018237888550265457032061270151766806945412061259936824343208333088474513721241973105567535309132480293017062385335831221834657093555690313814875237866438974003517716488177182794710482211002487294750639340787852755292698006207589901926646628471588558958492325562073811665850647598662962803056558536507050352860028043057186701199698423676781656447986928899438235402629229242451279773311968509127917185512010525358731460700327423662219416525952152740031032133922455064059978114501936242442807900764131813966886925011873064203177351802763629553549114824811924612547592256618393531660638610697741181251664189752253740451277780769110844824890093425840373769057199614304758173579007038715573300704055863353290085164931878985410891359218975848129222496483049864759184650832939988138113938664985857225345733229646603383476232988751871364897970161129777067818526584539322128903612681074311576674396691855655681136015600375372839706248346132010508062660110979312593481139147865387749029428736343259847451221515466695600263371990101594428550729750426206760113040789487697364034956864399723979918774011235776732972739664454066178554264423571155858430618501659927624805632384863302517712655506856847148840058507925319719166027090967441989644847069514757942401861751715116210726537158144216381468737458530001209456016330419615968373131677811495559081455926892566670984578095926478377117807548634254341657977146935699268201493245145632470264773266547840323385195389586803903804499395586531961894855218623615685821730267849543454322494538216031036629652894414265401591308347032858730115210801155349260551867098550404882324402365033610007202792902348232173023168670603017329676852217932827613294635719732364098519666038580488028062929111934585841739569376476221896043606858632972538987025351085196601354481991168205601865517616274978076755676887959729256160272150650738147808503097857424239603885011299221845248656903900677811253466373186975835886943943254369595993665268607347501903749583643752930570795306885914575247318979155275098679716629038051879231483030345071507363131586125228254454735820649513493964753770098067722900015448412878282812094605598986615861060328652845231358348083315120745850113814578465776215839908917469052817838759266133506668558306000989967694123669848636943050586071374028744187174687208736447302031807068760740380651940489643962294897201577944320229449244675030241630483807795760743763964767011515196243260117521824583039206341497484458340993213574613258984740939872955774918378991835383941924097329799661512348267120760295460976345986621544166386330522965456717900485316414818866680232873813094062967593215386757384758945747839682843891435828242114416901169249399403148423740120208700478513409867295944704641580297435391828839026574934932929363891174021589019917802899732502544575824733951174406641328120876467056141191839100377693652573981477127415368344609999988240043472121545665358141643647451670358919045713450084005174599560086927403738654822515737134480932203531845645406734243952001573783057170674144543729499340566099244200961547401171816640313209856851050190887922735418073331394130687504686075206993117280885858690120759162925890301655158033812207473794652424832385397466109707366204899455431984111317281044603898694407022587395783227642771768366541093279792602549623287383515878907409963845878215417545297498379577342039999728086831814731273236866465919327217854031216596112833036314317938258284863638533483840240798281763812474909663631771490506204721813242357416527862621995189222529360360339412156900494202224195408951904319693074588440957829921946467020981102056119958335932531175522999777066535217604397001934502699128556819868963366794908539624146089739765767571245969447649199765625748190192183770387307011494353836479151740138425312615287386392978945488918920689499001846444671252090344423748924061652851412960808942725886354615473019239918374341036764013846067416308570853268533547496704645624773006223526533528341791624213591392707904107782272842525224723114693449132830151524513741647690690810631359587418789109074726980364150976017088060840440858948353753833287443170371366060258806938019107671908162064438595411505506184637849277025558191205370944842182642291778242522078647236699575991236965914410886306464182276780172119819567724956035554412116619640186328155639790448560281477062975037333590833944396081347108160257439027880092190828065275814966893946167970460178334282427541789526028183731285376769244041039263882306230688342053896630215770710572921290776297078395623646014318365150867663319087403255851986664420217470486507920380054890583289061805343795497236219105496949407169121011029788101680380073333418816706438494079923965285199308658774751199378381744241008192162516047234764472680456498866394815415317234606535546879459721067120955875068088026910913319454117989592273065665681318014759107010453933911896434416941629068256371659487236993578385744399094249732077072321069362304233192670104318573166687941140156922526945495563021790774810173113549206065871408253570017096529047096445291176991907626382102464655103220447695853308561394743447896242681482444231481009174536632905211335289004323128242335134173930249091216244102671975457190352817859714532731606102123097739480116825315295956880652171260890072647515511540011576467883327942809186518680946186917682247539334913433825245527052223009655035699000715826448296882067566344235649416966040646509082833459024776426877168409888402510992731563084305260592097533953746498446449754648218820561535753646631731393981951130586519251927756637230207295213943437328825270725272960478562631100805587406610144193439173617011748737252596267747542421334533042470725983063072997466578306265821979892189180137084117444006667135219581613996975999843799458761077184859880382144967498338285169870280748996506851442918568174584874422198851751590095786690970958471366340627586666551914047946276726302505876072159187665538846357723775373762585754167804515405337506155097813584978347701840400725087002900205567337978038092679750347534449875198090667523634477169822165545730998723880522049690739367768744538809150343493784560283300603370132178467104490532860812885127586972798974367316973898201373625866572956425136456081042262620055062372475501953348762778829709219897774396752637706496761935362762969948192228972633817100340730305983475023066485441750822550821140172719004527308394242730695661380970787389613707646021092760718251876704552869049157347614596298674050132080590365561807213942480945589598249322936366582088210420270168841478438306420006348841174406957008665238414016716052862737241620388393843144974113767472662964089266457054756189934769931780992877415924226417446186670211762649683151375319953183848090152296264861970806944363515991974662430368120617001623458061405471097932620720382687340404173294492103000775069645538266294736924559046428028048285440797200253907292520745793908467591983170449212176631661760483874751503973060712997725609285798841704143269694927299384836043199191922940782154175743804265641012107191154724323026672384688949474891672875903045736106136807849946384040038241120550337820144080692276841841913134462780419767708175498955998411363018222047344433346224811219815190690875349067216106707834503879352363729643235950914059688969865459553241943455142123713883500497438177484135026472996283987027008472630417465661307891938555869728040707832072519434742951750687951438186565723458480522465203500591123696265448170751782999253611510807300359103901701403793282750279468025993958403872841220211034675033933326080735077686364941258205016811600955748117827649895459016850823791033519135056643150749922510619574438237339148160869445111321797723720007438132357227639759627432278818738775233947940149672597915714201825906414312077088179685060009267950491759147196034617989356498268639805063496800153860357968786767815544995306706524108009060649866953570727908724298396724304552804422372790623489534341792228924269812215220411940960104331271750976060013463328857287190124302611361730794955477251927349149633829097383623247591508506705668693089884056288870499999685436025627405301773318259393366748609572110318447636256723478411685851736859939624592695203517641698003656644426918860357465403357396773193437726472482032783256118486795505253939201742841592632265135292207505242322908087240979818582473191869992062877988615645308495138284757031013101980384985489901973940799272490759594918726688646543453848320663924913240642043214574593118104137603376806211061407994762247008500151714490713575743132607607010961739683283866091714253539558874029606711864981169056192784948547138743416371621406855529330296179161954757108329556393326863361231182170596680219013801433929194674095612681834540208476713226198146249212914931539147636730754648279128143455260122025774426162210100125451971247630500776714036740067930976803804455741296558697661306250778340305522198945327227582662248277081192514813023793334043433602699519454542020711060082197230041111269000027515896382690469849932630846209395097763384784072587909544530354046124704671051288985652897237655253200675609648309377516636305094082865264354376758385398176868401056255841594857409870650305753106405379679216218844459803607795995154011500605951757477661463562346049029647147576077648429538701911738513940752911250027914123888109886419747229112919978639255618600656242587629334574515095406802083432124101426698625785106700130758537000065304732458223185386032985555257462498531159077657344323164058298769617104418660679912902586822396778530191647092444533350077573012161341514173550292918222361322214417520933601395797386080228795327684594735862781375377934000004310307632397234277039957573272361983117701791572932835944419599942907891379866353457687716081505979806491535025503041434539286564179419365741782033448830420531193579864354245395339675276002084532741002587310952453912837301740532296759183072448025853290375939756332373397371805337431184803798109371647305559344214951491446220598254952942001459654618252438017306102610008267701733090924287437894291507288071061949585297118403132586475371908953005079676554111814213173012928591270145190520725093399770627480708805166896892055564304642317668144776681275992909175961066134967505202115835969534282943711941211529264618160498086313233838427609563220171074379993733861466729200638772135493242011443195696494081803167416376315381711259360826279552383355894277127951463703928944621734859173534652259373034425998376102810572129351126636246214541687299784351527774662479306569120834068531957783166909256137142043194163601215446856817287535881387278180166990130534044387599578621672645320104586297010784805464200108580913268027823577717713017439961193704617178946503968635960843280336413865970584649824113170942618771273042874805535467343076172192192647924404888944804848135880028576952262806453383584956146187411098170416190461104027730514261371751789026680342480694994962508429550025098234956207191810308188235668110664649590270327098518039836220530482112839259227481726951635153626240451265012942052205219359774923713805921123923519815004604512292613344576991251969196951207113670955680768041163241937173574333911975263040186367349054451574621545394034839577009237499753347791808572813880812688039846691371071740442475944645890178473669571703672689583501498423272021900479534218661820430688673113094304121961081282307172311763705529102573431686515242034091408103733947787324939381365290919999444974997437089373827834560504142252258789334314554251490733141607005968092284262065943301284792191494374765719292270533408552723457384020883017206742551915145825112441410448777280989970367083773994228487390684519974968236448565957571859169316782622301699127145723806884053059557603269221231432498954560498527611109034473399820617420214306570305946576609151141151481208867877704989869304473704162073546294445743537541143429383395264998140135891323629721384159037128532346237420709081009590923253697288645317941458373317515031518795167378942337455886061299800705957101183310949640826169581036784965869545243072208147656848479431086474585860541963910756778689135497070810590468275487268693146237192286345933437790237786704361241876708147093761714993993765400209536375470088263218565395900182371561249296078964757142053328421697505530695480348660799935634075516317056849315773434941223467650368696280155767426358074870892743844004966615047135576347564633115601511824113530976403729863790622076052319128696252647542871865126558369363265644333115408726972430543217628512620171463984302702820624704286194043888868835363023978060005259517204681493247698003132011585686861421414015834289096501534081178153205880338540411755246495327980905530313474809287021134514694975213756877928848414449734721645524995235971902840702409467228832253558158093644567025160940782327110279765506030904675378109468692727694822374037342959265514423348835903516275938911258229463911851502983849629509234944672491098617339705413858401679664548489533970973385705661908073467193878258027779148455440006960020531767830507327006444971822405718784355323603234449104828893839627814609196912918043090149405365186237640445372227409177582883039993297369429227173214019334247072378041878375644771359748105293306504913506906421703705778247163466200221863579104256583985143115221593141404595103804079278054160221760978800244647862357504934084475561426898248830873749930799108991074244650398959524446741651396187014449976200726360084863874402514066871119996676787585825714380550932052132004668515427270042188820723758630643447998034362124570444843705503321803356621057554515638673043086342522089186664250583639407209965609452404451342217347046879724948330121516514476037749766754059429494367655645641276835555775384611294034334586631492474311617785098675599967935130166752849939948727527632921298881882290093223383313242946848466290721575735346949608091146692062321859242852569819426054489236606544511296791999900084153520493823218549114676987133850117570401027446353020883383105964039471821537332318332126636985290320979474819859501067040358369715556983668237280452013179239861633585462399912392991090181534108492845313065328462818692187597545205185148275349535310886471365143063330255312046478630079524883729600761886862896518182126265020353268081872772916823234175254115839331042848200277213305177008679080347394917930425115031181954852027134529257529605964020844260404346086584201550586550620174420909008460391155639317398266040214279275974070304670214730536074544085687920135527100443330411758327916151577638654553567963758669875133219773590630596701209072039984785814240112332599773496938292038593625458027664162293715671124895081115260161394689397136356093009280094331159388850595017680671549554868017558590316063611778006681814959109238809662367220670488886674145975019478957859669179760007352633753631630302172993328584534539283623411668004085153772511958525490474722959262772972981901292834326190244103478544151821943532812493863634625004870202305179289935780737166378915919801345457338680131200358041116759193878034868360631828546609207304598728740973789490389679610421805438944473690722320370600844691110097063557031871375766102220835865121997089295548361514483030721507835142279146328246073553762889766483155894594997352191315291229376217959241939063068537876445973818836020208094861227451165077938175044236037964544108507562993275960776623947854940353376590852618826358270877470995238969904875954382716571257299589177161696990300035886306923272044984666235410341662997889467348279140103078316665780223867053788166304692089318719577533190595430957474270370568218509029410265284219022189118773464501671187827737174744205745929403719351239766173128584678031590933605465788891541043871948310419362803654229008356180390612583132016530478426653912506665224857529184235123658225876790291773726103140559334303510213750033393186202745052479719726993256345810001760230048608730746931533121844247869517148394555097334494764952005020381985166156619732697238668352567894983472654631654397877295465926850103300885165538806766493571657363192573875697073522685644038826837658273231373656969317899187453199099375079189429485410379734652201997287911061919580434719326033282634264569937733106294454338169958165477897192899108631260080480901207887989764137644948087702627646021764967637382436315889161065988748838549854674424010941658080581520438656600344987661744798085096303293957439750955166873609966758450586276027152001833766499022981418708492287778171467592380665898268808998035453973014379851471497496772714571545205451999553529092691295759103331974174414596610103416264246462218664965796931275253704129132831517507572786906195469828579968543969708795619007679792705561235587092578139727744609956271099463175299328793174881863805837026966955000740520803331773563088533493453397984772512513374447214786170099198099262542296169060788042657031183370825544517731973183850449747951870949893393261449036491566847562931915065895676081860498893299445500307301261072768466003058066252762128144018246119645110103117523032606957167204123238998374216973384450532060308884714285269122777457670081300677171961263078935489884117860573736043165669709321386643003562348923867592546318267911359830943330886347025546213276177004389941926278353490833612668125873017803758858503807354748612162844269499951626925944947897404333060549258679962524030635476303922534271938178606127256696940627585404800346240107132179601476373409697867474727274474411445762059312695203460790955688344809084761371573893067862276201432807503890768975615547912063798124499436322880732817171920990341466983703667301232607877748319012746749988319921859273022041027223493234350969900789243020434805521771518811379148666152005857496112361954282044537178562026944011073763642262244540642043252412970754188038565436590869216124042710067194894978184629659109828773163320797559295685898217925224631393575223793061720204855614645287274351848141794368282699363909310960663654647745485410032961295485366785736959194927097867635979333767873702401934720230225101290486731064038954709681312452602954150160155512077956992644090232419524078058322335338873304898648704946329328598698434629687098344869495995273801872347305598960620240646067328515161749125266595642276830421764207325269774844792456917814225563087762585191340283578214852635495932579596886066156208555965035233163749563487568763950709627475311145298205779062212700609261218299462783729302085558669318295664590017018137265654507088124458305376404934085475876684071430083934353590604371064445653221411867421723902419927754644213504055603340790202582246917815523795487334613743382126051740754359973592801553337617764322577885197751080175397588458949341990909729225711467102312418857714162235585273747897539633075857656208800598535342931538228858535309681021778201718172420907074190520672239179124539079652809238543708426388721628097282960452368190110533979265053432953119274489469131785266498924281924147925028453856358548777233089180625240011965594512499400969605275378055979251362474328393381684077048210534825512027917874460835448539458848493786413261969513619364561064986941329221671339220179170775608907022743741947247589591446212612835434118667557331445145610665135063399331778139940063644299898292476298433051511514986722044793350437422873094164626725719529156976555291297969828330897562394710333834329522409915066802442916751624073226551109714590461423134436043142120797571027517185550686358867903074114553072789446133750156539553727337290203891673959999507146889439954073115883767304968875660321015408934162666103121295826363399856480702123321843995537126411830841748155298332947392146779148382635698961902310919578802104437203370973410275224880161954143598311680489993214307116246533304336998587606809557225640229926453095923673501280418608346826659776018581799363807677731604346427184338642668234166808726171998410872891801730888335797362067280923099719030995864424509078670134166260020622942989767303183826666118268386719222371536255869652527288622439544811867754509897244597767157669043469527627619225707485617205607718236618938390793680400449203206986080437580733874508615397285158675181808019900001611558164896978273390866629164918515880037983496047348580255027842651599463771309663612938355553302773885670644242173510560767306274848436341978986239504762396436898906020339969033662601304575247015592640782496663948493081354631801380352098601837671195192374066616979920297042870861364821977239782248255127234774177320547230468912992547687178371930752183440099236691596136887725881822499884427062808138700458824517533000792569794279642753094732220511052783886607122009677712168370915104822478771665253083153383261183837432902461268224927140131545092905365265403606305256047369520113668414145144400037512450371527184757388343212969802894724044033030818897329624056675650621916025340222382877504602041260142111638389367075689776450838952485927702553358971851234674111751349283125668351042599395848547158344715334123078261162923426312579211747070280978655168706511165862758207498761693547067176392260761503705662097761024488530702718209477667192045144571557194377060547122157258894183559159997359773431842633082408330528871803936016169075674811497482001970746964058474662185652048554176669041809555117254890488295246246599311860424032526945055785834132579577334798006108754923317087129006152687048523993205902844223618149962083341076613719267624496361459566991921012347645268338920374422054086121693082376403252105913649038377069065627226920265227026473271292240945465809476119304097002030757026653508794472148346742270100241182317782359442070351397110859212943831470386225659255940524343900529174163519297143046288365547074824554628126390248206427715022035252918171989609574709436543938188575388374199263326190876016365979676162011735182005799205914637098183885100651573835251379168984020041256335806598683256136059129096117363504317157546311966216325783581156822124789518530958276698278779555436222726366934998418557420754693235423320747070767012276005835201901049695596585790742590045044245665414068330444279433983486565411164987646585658087558833865375026372282011240018304364317109745309688027394416319362413805921831731377955632422250526566946554833583584471823029560458147426901402298169233575438458366183202247654985275147671572016119650041147862853301158964856332424525656776899147829849514445899322560150787142953232355926410328829613778307441558259739543980157709670886721745032003297664511813649043527587684415148478266126043003189244888864644153944211866129800314482221526172837382502007913553465313793705061484780388299843660402062897170101780784875126727563919696728256127290555587881862556179625128257743878237055959749318985109248812207566068712038479807287509669320678275849977849725223145628273006070150851872151361831896183731343821040771533610142782039433148387612332451596288209396951857153007495201753739717183436406593613021060767971863511765836872707688292644205973657393958728462554117268904773296287621390125938664391669108231707257561408469143884063944843263095591214842457403125027725739340737500239170571248188533307141064300369031240037744343595572786765668404908249334219541212670854068595862676172041586004024934365079132679793867572556326049290309505967908167349547385323543566952610415846187360159400967235955609846360826849204394165740411868036303074450903140895357405769817601560812409782669481651304070456380229160998126483894305477811338152536953770316931610829102612844529619682828418179506955178518995162154530520609218421822051431234007747580342438367866612815869663378525982327285208338816676108124481189921459989746261414880604592728290573875779425638305633740612805030966900342102884941774481033054979151372566358955140166268500304954386533129263470490207774627482524631332183628968790743808473758585655905527469157131483728648874092716890543516733841309629518225923824022508311986509893331790051669704305972467639487835043479477564720645789954274323973105733212944736731323152363782402722996313479850889202749230401653795840593956640204720121643144904789508080436495402393889177653005525542021110652582531301967670008598365838120197306942564357652165527266029708979023695936088622076823400031452791860160627884530072701565351260372362180115693214876138178280646822270824831497127510007415251970936854365180240638335717226736844912473357744393676990549366164583650883406474726259413042242783156151557206604796229507094072870248743097154627653715568263609744554030315036157193213712139495817235940612526212492490014510115413732758600972682484810391733320991298297589576567774954860612215910868534568396102482962055978460440297421615810160476722282372387535883262528640896587804499826209157207041633823313713505677205457231718321291241849979151467403649441224323468424387598273597625609113965457346297090019832200960354916175188991947454371055438908985691751570117763142256907930295339169190735114092162835635705998277148766207464626482542996249916237023349845296874927618996983385550065161471562405074748354837619048110436914194503659699594767168214264091584603336174919796730566224210507077396189000921776360631766381036459382863315315872625485469424371710385060061519181904053486984218153351323387944096175118508405623693607340217330059167483921865638228453260146413586692297247176694678360596193045456880953750935686431509520603290074423983669261277669923654013075069807977923933658220356762666615542937813855321012830771532512617901911345941138373828459966301149262896069741861016708190637847617912062709938692592618201334161358945062986147841500006153765927399607411255404987520165371066922961844387228110520189365374712270640353878795960515283591808066998654313150781833600284947296697353461891363586168985191614616922952821270079375368231437982917235396526567036845922875869212064857479299174168830323192084831368875426810947726401462216459029204859825170465623405250574457428154800732525032544929827883072247993013010567200795248373576260584207776067749664772959940946409360081383678174387935304867568336921067258533147035436109979374887914611424337673413036030827551682649875143757937816954504694510125971011794960919723893485059624774294344351317464063873596277257499995093965375029131900419525521805579615521909108294451097815650732482384736206295966914549061319291000131452492877094231553419602540486101917829740956007644310589080450896218951783320027389390493619261196459664828809951701315191978255647496229148683233329382622780616687600687623401483233840666983914455597500978593440925403642469565535372561110512377184551649231158736565435683747709877843980339891292242338496713213619781167195334662004693286178579254711148619254987842443978921374771637607366922799750744191464616211640874176831370542128841559194461808507698803258435510248906050069137803915758367645371913970371581718885761071556082444297531055801872833806534998624734954560331077677336509227247890600363164331221972979659267868729310597193501008772070234561395523503327378781685003960633197379601025357312624009235387771231322531849138664650605723774620706347950183089415015740569095004889545762102455280555333075348810268798838145994765674371621527815054887477135627877481171531491583346025174138657654981062814483021313786960453456749228909294604090559785973545850449627412598080813663313023853562362961016103172351157390933726134332510556120711188918913844722544555067114072981675596061566974076398579634477645451057614476058113883570845994510163129746177724727495221913539086690462133990819928129258411877131306099142574821925970932597115126468507451431053854420035300775375751736776931613755803843996783336081507463020586983120327411570756258377197556567375970859357107298719948248953158717189977003764257779803007506103317848715952371291165902947650737807400886157970092569893545719708953800170996527568001639071253474029276277487850054449659375130010083604912944718723688086727901866248982945836650660424867060869517804639055827094665426366031380889790034129534757283217015244728078480097046871102598017906587139444832317876621480502710202911490779852078471325491300527498458992375224008051974036462107053760326833797596830518067012049389291832876741164499088494504415994965013381214381386615539149054833603690565059032332473661091964721144070328419475438330215087923819936214650272314183132861831704551370030965890776577988380413548418406401466309499174218007757342163647998519012104650007087015887288469972363120596129829920454540074487021943153870952139380432090180241128874624950626243133058720342507180715156404207797913281021483644478218595077327382096022009567562744678190850853075545105334752791202456665873566925660324233483265806028580532455354451923540174551673440678700101480247733119834594103280139347178228166447141044748428693690872041623821962247983757743705836844642850225979497865173804053048083356354705879107416919419062483437563245055389727816268890389519669815307494825651126592981799581878881702911453062772689397104752351924061417334295263583902766581086904005845224653160860233048513202728241589688556932771321016389966534232151674321372513644239280869127220541836172769847182032961256928044769605597932676143220132441387282727521872767650259825451827881324443541966503944227695730415978891499637280256516280572273952724367633822997190690920557679961811254625078720260370810187767251242969647085548999894821773805159589622065496115634253927352624898722203259794134924308121687293744784270267389668112711139693242156394181184083136635306066340289378370850611425330431014109368043314251217689640809982895765584658506309744054638146620596893019900893566214136582255119809919133785297982903765824207097766817329020150704434057611037241848098170589649882272696933032171672701056567835766734056072257142544867442120029223291296750875095465333899544630620132071329061137270440214685466680609977904132490741377715705690512293086101206912530755886934475254679400654247078076254851135959280622482137684219057415699153765143186880500734632327441746752125945664982751026400801432366024421871036010231498273758789183108551983816635914622395368978884536521980359627913117819240088392306992925553253597121488508572570219956890652205444935911830160924499672759323708556172080157715065123253189744234297633611029887258465691163009841110753049165057614132626763008128496725682852235482649600101318592176529881605156629219344908043784004539307063213598709457173918815351060671332822999580126173236987766928763031329627543532417325487390680763082643613197577037151648343974170382178686144635799386387437059938206667864863945089098429279159426897262591146880551739020003137928167002394609180604903401152649131484055999280795333651549655522438256322951322819437385182728870196941698955261347863865600440885092713654557716841660374666772134768100802545097572942824439650161689124211944139359756107070548973131768482012412226171380100690072010412018306680161749085420678322013626928446173855636131445036305596816161524136527654231111083328814390974352077299165571784581287646917964445294710499297258530571135509456681701804051728431424808447681065587887337640226513774530361112047594217986485504330786754584973905516900409254637108436058735124566594413691919794274782088160278710235998816425218878555244534971469272929528664121407991751608913715782878169290465142101784642442790155798448620956233305566861221046585399410101140148101225749354006724953864162560567411938645718631255024909211261587609027634929126572614548588307664271949909096726665834530882234997305266390567436358329006784573218837205511904635918824747118157389286934740426018208846375184600008323379615128298749068237788210640976003316403162123362009184907223839639606681960256561559757195514232914655269049321540926985791082552960197027035916434477949581142450068622105069736445447248255441829919934729281992488955601220509935211136357955710336170651008088031483128618198534800124892546608864379763025760609065557703916589867124685711318299537483606934416700788306054381974508156536699358777718371526233109234117527202401533555894536208681582850772589438878460364655882611037885614335152220416281232684233992432716230874446157562963817815547995761203187304775443945710103576376429967698330898469266832114329510239612439914339134047561133133957599786010342495958646368500923699329188748067048987711906922212028887683670519812317936279011952441639034794815592060789756110425585996439143413616836860018829545443474736454912185330114608748230627018574703519317487327893987584154186474682232703864456853614576262589039345375650989551019352989250628145605062046338617053700792912409808274901018378540910126956522975116949494502920875840055229516405509646321910823932923605459699485631088956082321459465286622680055814887276892294669119686113831572394498756171895951594179989371795766379882400069839296796263041868793263177916153991585911643650992200388958971487355149151829830460576164777532568564108436465983135002083303005658786348661339227556880654007118611848597908765547504406134456612517509111770669098401341744678971026201273747003498627432245593700207111237438598128000642555577207564902944563998956223365835048935325902475341630662621401751909714051448688586588010139450175675870488550924435779692326828706503296183190682810235283254154425984209879658583064650199134437978523411991533998091269568633946148233527557828030798681119906483712753233392178601234447265608775540639513070760844693874899227406401724993698180399267080819142792588852850681564794898472562289926116907351279281756706430225720960848447080433854110752037938393731319341361784759430738362523008347217566234759992651581702463973247246268365378953131286022906553966988486674338122295311104871786285234185724463596180653190664242879554750377668220967420211854046245476331855375016185809616067579508775444268133922667697362184897613917336824090785983923673547313494033396851442450815071573749372387491149671182029264191607804219402997212604804571361085217766153325500288781307590574237789240511716541034901871023070193521717116933682431664778112797595565685335253827958990250950464921759179466805583478714600245013041306961091906521325977360489180587594842085166000763577983108950472503518639966836923653814840150162092986428875306771311565736881305776051763275515165685830678235836027173418728573189039756199554311374129509530726095791004641231137675743305612048576148038423994117139217604363934913092669745196432491643781319432065995433579272660207320455712209842752529734900819705513404810529538785827977618204309436375536701129731030627072322985631758511873161139333538533480274361569285676095708678958956006166116711421323860018413936011026726953535838813549945872796960332869224469388077554644414834441240029185099078150828727342880460432408391270144291310801852053801104303592441131749123118938487020408811724601920155241009225280536395775062828832969839523702479664126577922274355888281132530759232501725309360297478097383167477756688501858950777802877521215295246265739301961167334944001160392132973338165654131952933214924585212751790311467435753117982435697054941084081794115967315410788930277126174832079695484381077557556285705862234046309278042469941380785940341056580013799679597841577639732724251727961724831697473933374438532249622114835313134883477956696661750705582652554791622219150850381090766535393541833309299950496148878536969995458559072277474321393650611084793259039011701581942702516032493722388217670548139099635732780732612409382772155809646308162597616783925846765700290652719455147535674401877635036397788926716859112330784925126670322041221178874830935516895727127426146960398150166025285570207503689414047000534805010982448516004749321965509284700333949122358564080321274632431000520629240394279182243914845589326594011420927299486387110108474038618867833842680700524169672627904155910584112588531953800970062659988824527559045349758244422644351112929514028312089489797823605790744009976444077656004517215990480066260178373543963088063903467009954675799990845356667263568996137130811442636580618965351178786887863855532472438004450996482149534157136234855395572548358666925091417504110472351311362221742119985503387332922077558707002241259396004069557159832411430958188446979626062050609323752756818551477749390597460954857845580019353357537543379762763600325837848884666720715664055005333420301306933892870319620495649505595174407146411083211559245384060462515115944637839124736159588035903045357700192383411282508613566150290386825379700620025101898606216654604552048648177954155429034005343207365336141962230316719766613343066908918179978562015105268303038478270521664832709268510888010961502699014447989420190440717671194101482831360129776547262833977116505704237620181729902603368918266908260551883806893356274471080342367539645536169195581357017193325084264908766908175669605652550226968912296153650376477585585048194341564112009971994258067790987659210153098727398230940271938173201156153766885146066346622543504348196426972123191629478119047278457656358786520213985810463094553839929561817597860678675992065926867787045826522813796999939001430404644416758100165545712201955159214962284700083363148705127097494975549330856343036807416236984972747220642711762585003491843127638635219729077342700159069709479097508372209109915564733635526102516552955788391604289407223461171413015533708697265000529284980875852358840060080638691774344126593349112956409034710106456005528958111882450042437528353006774517350471518667067418720859771561599268585093841861500474932576776628474881350103836262373376962580932841281754349766506652529865183090343426136843410102493213633449412937112346155957440477753729521274904005106762484939392848168469200373087651393440824982604886524341219336456637235347503394070515118781094827060627767636355826946191127217729965938401893547437736017722746320656099648956507278034325101711105738615715910390748823798111794638944163032614176044530418341550626922067540556359656097760737229203715185447531700950757974970486629667272913123673658824004434244844958630328688722145790798963892960780659510097186766696612677832025694481995540059948507359828477767354078143578501353706874050947396940711860862761140133602920660736794664837333547760506987658508526274027650619950810502552609466773445881635268345644411920877727768124440778568903163200997411593732961981451345673204003572060919261407341002131826140773734102665651237142523193235953063868562265471253264067488168909829768597384099366123016086040126217180543750164858564948475029234966132063128900406926653463908579507811308194467640106851397488603258263227949196678757357086993203989913580348439995967500806412323466827058801544651020042040798852647152235964966925188469745856825046223455965027292390991098121685912608366817696772761138888852274885286084052519537924225118856672012981196127128408718668308800357297763903628284309068551257422462633162474056739288928976258402432305141670738469901630568531306766550210034893296557643991763694093042509246493031966687701309623960854112806901423348782547289118631745453282447792769178464923666140118260492612366267786733027022464066153567073586748206827333081326118574779850373554211129672694779164218277228813523679073335333007665966835543449614121680795601405602511729180063122062298428972942523455597676151621824249781076030227643607221723368371265660060018242696391319736345594899029005892390477603726629885737046476682595658074860098517524524677177387217732982778946358011633170662347444165431643671279858657006836316423367127698431938212702146044134059684233350626626021937799923044396046509974553022636545623034994789776208752190735952693426512802241727386215948149852141044333149682679331456764325562692796872923143509438809961542495917962155237962394141597910213116606113108965765319184905194512091359550764930555187631135391610271744360037412786981862479880200137583491537744368451705932024339923244635137095280158388544386040736712555195195176012023442365894061326420578065023347072624597540327458964962085392115140381999340308896800637804762504525745613753045583959357531455510347782961143990059120377035603067053790079239211435069370426466130670622801208094534421462868608516330037614665412629316666504514482270034899739176292289331138574235871313943729296849199914913823323445967628331747095890797273185239363282138499098644643022468373842984005606293879540242369894276848010494330833676257867566373135203723843392583191337410801094196937931612476638870699969941251999944640790153963984253713648190171035166292627842663607030526528513322389356322615736868231186237357933046913279606369264317760467685925186114190482478882277768891136946030048581835784596666665252385168807497912583545360629769373715597742376541258173807581401654521037479043940798616427992177228610018191802391512913950330363441256944036738547383925540396545243716181554453355831132368671711450941634250182547578354595300227973825675154402870760383050264476639744495485368671746947035111850962880730692653195637228203644674707788330250779600227268704600720818603648067261199800834010240590296543203729284058620039494241459440511261783942214924429308645947959832869970018273975417824160771814355007726977665595041113571621258766987652298779486507503162639301833559930621125369509443808538044685211485909927811563122241092092697127759593072901173839162362884378469551688750060785912160450713352543437245824297391206702015290008245579439493230104549266535320436975021833956507604130738388653789855948239056976761294631452676081747874689734610559071602629462988763008045589366415214009892225544413244529116507556037603243562072366515047281593750385420112201743114127246511611313535356755409625293552259471798923776709439408423408266903628659971214875952840188916539486985032642873477157444692241466446770572323855161917952335427551457260316110804400276925194954645382578002321650274191219456542213674975615959036170798955169262324832637017144042408485979326531548306637826174683166750682406721272341904362843593449561618712093026370818972144736431303948758514044758847122736838725378100157862627657956155764456878145962942559479984646083451708528715253899632470880924043056332434246251961445649331523192447821315873970727597118511865510979831598850659790055619358723003614441480175769713101683285683683987493855169240341342991325539092197900939910646657039727816324929769226478238578079973391008267783388364151205664366505771907569383438783708986530702030250605456612057815844332481911320669228124520650577151691082430925815470263148253938097711099329933134619610704400416436391746809626699391947781954879810102534761436309588852731945586633351106231216290583791563738324101072700179640859873739200506564004507514294562032406366179742684847862339722512860184241296705746140081659004960840905156656790308006613475586341247108836415270389086947273065186575877491958609029563295704881356090159918726626212773890547654836698723939971353516281172594127365211713842162317104402509267983337839656999478442156932297300363958985893557417401869827392591813798039006866505472969129261732289051440314712088892572055035949083261226732115642045011822607989868535375165256180422724745180253879597251562674942955485497184672398242297371148335612904675422301977649139619077318617054557586052119674150059182811382243849507703599818207282016912020574882167049026466930797530278283379122164713545145973170044600720273181002270012688454106178226181697582587176872061674012100178827840379446936410114683933778714215634606569373093737332023322388856474560134539860881527175198849148485667295693478818052528521001063458415734696614331419398475727082900642713978171700522625586729665962434092751057182025429653473996957544139189178544316165294525566957958614460324697044583148970467346228711199870734345077202903183388551110580349285647531105090124452323740613558889644676753718080142427612227760178061059234013133555715601395626592599794807630371973628264794458080261909471330326096850918237015098975927256275454999070010381242737040054268090900483974283112703134648977811660980057599479881840847643580198118754154976875864669773778576171758518479631124147926740199553753159834527813665466108421762536783275146191192516383810867613452841246942321765796053210294669420997665978932919712183583421182848107169897286566863722688695350011409712804278858133715058148985448271659839259273711456999822887158101128724519175627971178521614672116889132504436157646510871660980963636751236713821339776271402917166867153863687425092517498034593765186909775832809206512132401857109251951494130072575768962975820055370352430734017354322167249586484756144768218169882567644614671777438441697984158528130394532303273749799303398910766011456130975718114410035835932007626302255576271964343545029132456142464104970812473829564350237934346031328484791210457295862806647916434292761318412524232684769008251004711888793921422417516905529764140691025976857515622742078408825214529290598435195220608326230448841591598403467770261230562584913417030425651301890148144131104320809692214275582461982968995772575686997209258461605786138474929502938546737686822847843868395465520949992475315323549398833251401582229640193237976094427519159135957952702347331972381660922791530587913888053099777720096998064134684821535644434632559223024819804828998089774646131139520291918838099327431826519901079758881773227530431220829746711206815254112460764181555835981686888436067855722868422987723296791218795641481562669625339423040620075340906517649373074228384850868472841284751714144757807906539603100240023253990177939987505126387897952067732775835419622112534695633162159896544951726304250402958425952880851892984910879266291456055934161077573843429772585513304451138082466220502431018697493078936387453783900040076920942080616085205599959449268542086947206860509328509214252816848359600203171236086528007968885610336707217696034632548705705480043582063617637447889830135385876139208402379581524823925613397105913054030245301159959013409066386632272363353962571959275419666450281108918567681251091956723869573104788996370036388247741447488812304824306917955051710805934300481726897500385655647902181136940542125088941625715074120124083406130597621001520186059553056153003322003695519354584022468190585373429987345864562851190861301135924294364915797681311450982817452820304948525343304609917859938511529646043228862901601229196105442438370344330435769654205497661450120121332681653710875361812442378028285645148620525939443417861344593950884824938439084520833363920208069703776237899765231976960048588623962881322871521515430169968015253385159487017482115452579120457688955818073507902027407822216367521879441814194974566050700712129781236553805410158783280990319620660505398301206196410147923621002624754658301611886800037306733240092995517681670127724740410047004372688891710089320726554332945672342157233332476291508697868411270637852449603749945230629202963788011545456673191807229204907793103549046513667079999824169215702966973496837317890313864101046680178028822732150807265592096781431971248319463135740953728548287131270391670529985389063871937731765684000545011710547818950949434300533566776519483832138542426226935799348240711657901751579222020654601367395503017792062898341266569838773175291691974198586564879513463856176495947440395577442126409161491010266747954165435197192492221251533155300647012353668141199212145346531866205320536293625798789480689586827035735035005841206671610934980847422448969254008063334351560878902394868479171164877296044205379515151571110781055410679478946271390852719595257858884801050925230858364831956611750973860437891097626945845071249510703959939879071827546967401239642794630851951119741679012979943385801672818208301090190393641087310136947726599560079023758931144553434005303336820781582715174096530412845890419879400245917389995184160347521271179888797241976862673920168398348686368498997529754068700428018646515815243090623778761703845435600310707764862824222893114665178685129861250296418487845334928065192425170270628896692852793793721952568670250389753009408054323561255209619622735966427616793088058507692178839395408011331415838468692385033987581333733491646707316562773011023495696125136641697162136090125562923174815680345299713130991695978004088724040322142752529777837554302500969245457615454470896532181014731852256269171384303392631768987127841102318552259071424735447742876802215557662108227822259205112822949267546327460850666692785901295763680124990531154098131220734856746311893772477736396981922001785504154706842777282767224137537926402264879877444505846754393811180798286872193312376061925935077188583497635140894972414236403635894999347795623665894578900012822267161010849579218995267941401119279170983820356277551317648232697033580473750320252767547613050860003124141285608126516126517321832405555460438006603235163446546760874697562118010036920817458119332320694502747295333932410011660186860715454034816615756501603991112230627913780228936667297435266418416310086840419093750903948688378741234984300069813288788786910523046402787057779185083129605920083112566982382770846575300224076686739365603783708780142051173895004118526825163324316098290537390236372769543967233979093985818128520940109930511875907117682058182019471090080334110097913350176195216838417023866101267702319989380164765875432444656850075949347325386300088813976159178146460384352376730880880036331924847283656810836621778041193878347522260911091422722117073942658637798726475392704650918679583271645587859069963056674128737565992853170567421004196663916084538640625129665821311118599640203216801418691995388798340070532996417497064116942583048384713198453810422614009646533639453464957402720091530543590988031722266029687365628958754541920050878869893961058543167803773435286990075033335174608280397642217358159933008330512893225921520528007646240903562099605492525212459304098038362064177925675432985203739796078857003555521063780947247753478683315951542326874731213300595983532562667054858121548930562972774876888278523137180723504658105085496632138230222421643097478632071102498587094562441047994560526174337161661280931719042829006072871534570488542912571276534114361632212748678988391970000172475448525815621668360808915828260390789638271656706827032042546749603238326564191116756372547774019882608768293227867149552844120922255602939502782057046912170876586958015324413318336787011687894379853256997689831263608843512984889274543975137827756407858881425112070094793235254264922825257896648023996601488529518074299833345569954915676265756099435166396068157197740279227564054758721740409356311890011995216825503032522360286064278464703487911145316977705789426448600397411733742812393820522364091992713983282431505960227878426599535274865145836617019796241844215421573572154437067313426652481570828248631057673620724457138159216618975487660532210304976555050730562455646370484843755411889636466262053546068441295134817680458751342172233550399184587205788511253187062372831747034483027268608298180093632945428447709370981930159590469081236915163494283848076953185820065790818086398599882651541451456239535984930485849382507479406957571686541752142643109179783145054075445410251977647682654752452421394598868725235757522848557404780113349945712306184754826527480249622908174467375216432542610242526726371219610807187147740579389380229554452785546354520440757328732150872009404151767890326105792384130513919170125153130379922492371321174923375674879616409830737355613344858661726511919749466851482544614617257399895468279506171862293714935223072188575681085017137682705558513836337459606221093146098888567912477158308270387745891503791479906678087076468996199506891667171844609910763847932140048574929559828357474507051723149380676554517839933940419322773788863124748439739920116873474865199331078664294018491772845629907703743781780470380302997153532872147272356320264743607226757491987947456069263107292798663545385528163853647779116377751840181537764511298274327328743763713109453551811969631258330912893779022045092200670717411017301921402615441875817058016069113063155210480494400010983065838202360388056750377473907253630984156012378514505831581382002001887459982292584169133843009791901084982377671154242040132931813060096955702315975221865186428428266265441118134030607027964110607388220665389649298355252184527120451148798457484804019380104737258977067912421944638046407399830516193623182132621474575272982589999527736645917460201102647382679543847593288083856124825940850270012739642135237738092834695402481524497639762203993965146216851651015317447648564653363557720887439963087399125803067834921415765984702847386120400687617715633894250170715197042499681912737068628515720364618009180292989285196733800385679094530927666461414404054442403529675402839037267600501763459274651449092556424386336887731558774613575695672371155401160881548334579798124014671573712482662833200396316730806922582185774463647394774341136259985243970218996759249513859355506555229438535486252717483712337286813215103561704002770661685174434951143459914342229988585498657586267833954142457322520505723985500874806293948767867139389092283577631876079415157739270801877556050935294514617246502067581828005431854659837272130194106534354498779191246348510279440471055943625797544539213804977682921437174545472845136766514999392768235362253749881127346346872292946433920979672639855870808256028994731142786693124501059596568334029239614808776660840162465170921637633374192937179152684252338556279711300727928635983429046157578441325726815999961100109776242480550267786020574675154169805750996537667905556330289065259766423092283744029088762482323198511798341025333362403260758460941567099492267176614350351271565749465271648100140728176586048529671949782553449251696041938000946076395525215442357991971606787493109109917439679621692386368291722291384751938110992833464656794645832941701386629988094625208508096260225893888820174241693072041755472243232087072553004589737132635789371209165428140123271194004632300098976035833199745161053935446817978903892801241053026764359829347208859534460344517700874057339952880608790312505082443848691345997826656965062943769811318302107140610970109346802549011378332062186596775576048874837726718232258520120200994424114227649505833370866878909255787109690910387367812687078997995711284607791369642172651700233128602020845629549900213888312729004176718778517019867891409551154267932260540036794720944953376390037467213875257335752982324873613136542254943730893246128851629588798467237306781455984233099577173589021923206350861112402050501624051665267577819191379920989381054215268942337018773698888260509687369627118545597401062211698032478744261987911936194318220796955363326996092131702384493155018267933884780612552218532672438779300431947673320609234522301952617435168328022679979030875791472920072147588602519271582715768303855782722246360691402126981521609691896074041157567010628850583719210558421293083284035282298690407049618992429674714197650523949853799864236239060481054282979601811688555669172730228626753388429458565413301757890470628637583382869176144670313654700898971305485952943968746374123182151219121527850169152547753603805872212087832561335595232388103377677839066561517426369549549321574804230130289384572702848766086519976184368835400574299041390936706954841906339872201752896814649683889188465565922103059442937382607302799113134471784638408704190365651819119943812911140553657495956915534069024620565006290975876335692894026466080576268354123744060711332222990828522851877639480232982551016889364637379613012036441738435320688162096975343854127161967942741868945095989560246760184985360334863378912293773255900838505606804106429554789391173197303269147346513750779854239954353766455867944055612950906705302811904566852575004570453246460102131284743133169042667754488984433742704245967665484085088741549027717643751491929605246725540849788120809305560310057470652586470215092720572302568838493794013366695399298524688046113564033180163480942622800291371840624724620943811770302190627047683295566672557286672934653819532998382581584514090461652863609867448155913835428509979212775775883946718657219179902554804553644789483441419876575605927249146112262207335217783978349523222900543638971352261157295854943402704624545759397470007799761019166879236074006411036616909485469322969484775596125448433164891044828475113473409990474847999110950726587613593613394555904578248677191808662382659049229616147837717306153884361263976005599308025953934244738234794917277829766749414093606666029421126744233415030787122600502796081234823916500884842179022567470339394228831985823358644178187549165846003171713158225926192966425751356107266736053562790127202503295338003375672867589062572604276471166622868505258291630129386526253132854842302588138992521602493310836325304618124506668353819070624228602007251971520415027272603443690447021743599693439317216658726387880168563071394114459604415805978311177679907311119425022944632254202073800223320115349091766264376049291437881916027223700596814035713629009983809401317381659095909527319760372413021266413506987823200993732264561353572286394421501457844083815166823753616959288844359036748792968165430915822061383713283903683075794229782973902296497145494934718705265659271903577805302360033322875678361582422684062673340795766360849792520624432076980791106708334604754241359852146858137872747685114820313447953965202365555061571094971113163746368974353147840648657078578654008906823423089933476393256726474438399143910551821261451409606323976352645963589933072352655023863533364327090299483810001609726726860106710841156383254868067191347459175396016792793865529605010952770427655104164187253328946758792684611882310744724576489549234987800824529455919328959863267720240607251813770051857973154293386098072515884614405671816573016016562787167653023156726676789648791008034934482500535143748869546069232925784765310954940528980261508809022974264843429781395544905334262587763360742015731164876062174138069870121529037979630757320482656834045597671085345107895544498274478917181719768049119289692147766353374301712648836135719351048315394755539956990251617571545328954266390581259633484149220822379829663772836803024162214539741368662663283308048850932203735126627273848841135116556079809507136205910833136720093636898631757756149743525328792507843426721895129621936460239104377819349761400071797553658327942762328638062643681642298960039047372855832319698600784756791036284705503069037474633647237792864813933870118987388317412462242093760586745898117878852695973304230306249583858132864250659198773108659019717903971057496998507507127472193383562677340031122690673172609074967472154018481980177999746168427659573949008164195557655888217511733848204459258397090108794632222796220079225810315078911620862896750056874599508126933603164664854328135259555507148767204866734875748531955394506236316297674935628727949821513421284284040635644650492394010003796454175746378496841496924152939944500890259518716731194177322889108342365933105102729592226235682604750313844700004254825360026721796578313810894883601040633806891053076925558633994404388071482841128036597684549942797704697242960687059366057745888486235973012413217039314966213920131797857569774756746987864311025972856708189698190121347159810803157305556774563014489627167196203138811979318747394172322037702003128099917049057041149230031791925719637017454824190609735529026848565196782113756803505624215811456153452523884743999871845765439821290773310894655210975534236402751504608183864170851749123513842456300275069361393931969917953879316590364253054751219632743927815856072039390270666769623429192798508526496303361048728344414514056148191513651802132143085719353428451270575430757977037599172621094665417589248262380637718684573060367286734368445267542644671804197941887554630524586528803872190038542037248872360760973482814789673435732297664201531919920596769615100412207877237655076465030664491216822323010517959627346711314836193590159173570889970825983656605970926859525947327881456988959160691640064580200320827027305555889016558917512909178181841720192340344427422387475988843813595070319053138238754775316444513766862343734541982553967478198635403710372858802140390839069457704837197700756008950375715200085567533848652230392408293905713179864295268436473817529670777162381102064165917318038633354536456086204903798386684892961676327817568806061764473373095794940794099021992344515864075469862718528493041282092102797717050333197591896817577210223275575643013799046406349193307580386501451875030590944417341985225111310797525242944503722453896772753596744719688297281012736947683961914291112813646944860950875313639953531257395504334183067967897304305771596400814270982603362227116282364316991407133356296688840612907008552048032937530422618940505445464128514095484879800756035170970613752133595610898235197891672376955433398773570904025872407590404984669126808731697608019168776164920888908376166294293872750895671760412100067137220164606229050190147178112712460813215003664233776162347483059076350731003292158369928797569479962652688682926380225834273991919855648341549388340580187655855934348968555200110242928786868451839167963155820718755103174444482582920701211382545199023714538266405851949815996403987433256337894618375504358233356288574108923721455262999218127194718101872365999248604756446341514152742761404720996979262856022474258713399911332761453043849291323430463037736143437112878433729623462888424231712943697297116378940559997478634460587009018935457939252426410095086893495680865947749243516191544428295497198873399700023827362287368076573028805181567711237445430534780654719561266812452327428310534619935630196528527184681722880428804162039491247112337631917165725704308205629672751634888883511234956903827280330819183244565938443380817549774897791947858187172268629924117900619769107962970230294152253253038830907385849407237964643258962916583815461445400525322387669688646041319858047190348224160507459089707324449769743420364532626359771161566593873103368372873590755190970463264086197709715053338417123097950165311185571794420163024015305137750394860843907955641005125973277302259497879844331507952936225097985633416076101422495911498286382997882898742878842802101327478645725684868635605504437926226354147705635110571157846290093779749224549523651125929229573597888456978720040504931838578179405244506797790983548752740352050759195676024828132651690589478937623192351773671344845034856249356082420731766065021834255340535465817030196254375514733053906700890416444869522180883949973883205292774070334687542272282093055358842477147601277049763797999091596217925153574885373635948069409025086018884120742972387093368635421720352988384553715205727052250944635515057475944860951204767816316431903148587519005166748782917874269298490784690992758568415816784208930807346672344520719087247570717357834545262250873064804288299191238558493120411047872437574441700104053045188282224213057536334378911476712557150876117606331725833150824381118852934466629785988417611999350219887919901882084368551957246354078916516699126478594957323154832824241906091410331171766319421018998883634700713879023223895693179362664055580541474992241860130033208582940336756101043725128555257803726761910845431056539042666760900023957873867965254165459554817881191273722265425091017556599527269846685869986118147089277090066346627850738871426057536230185490245665111010609457592371711809884926008191697113425169806385673080396193773236877058134937711225799829622335816935205015774399121714398798401607261172784447462074405761154564960084731121548010856525419524682134330043322137018103055493554370394634743295897065124113519885619740290673901155036677777216543209490352956195667763194238208227608187572984193707539927160662564111720892289846888285071791813484688697588234390884808386813803680456369379927480041628795108309668364294560160515280598456052457267810479865221893392872719100799750607339287978609088668740535422223410770829023113535788919384494613973942458258716287309582426541595794195162985736954661044623495640087911506034388166838482061460301201129273502588513481005434209876473390531101552494655569206296861476255095622265319292226892745077182692498737960558035103179510002812130864136927859405692045833428121317879460691992214190608481086316609551727928366669448381130341330316046990634899816055495301847012141053966530169488651434699948207533554104635616693873025447565706449852365056664790180537200062561284126260777174102119851032893736188216510632335652570066695260466331558301115402065358051846958342612648996817205636692336545285697765111488460066461302337466326742937136880611886543837352875866074517928221607295726210324804181134442826407620285585137961276314286459514306398409320507896340751525743585158099511758963411846069449317884506097597534827591530723891418296468334811106088552026580307543924378260814582451814474825389572795288219900956169802342449369513564216083835376925269872549219818749473469265502623991425215923121330825923747307394240379420820971558907958497372414404117776743600533766400705349689727431914464684306275110298107416373271549692274629379155294363312145678190660506000421204163704313861889249934114846643549681276415378249874911111053007286513199943252726318444817142716966063880175998997986250819433390400169461420475008534705133422115240885258114174830368771459691501157748278849204901021453009120397475814730957579778994508852289707634402879960066702053469943067141201538526051380368828461503284436839162787483468780804011161513077268780800516308475192672766077264197495684034588990404229907605439567856974771692494161458610825614860343568495649428000966439304815096810856074124341634449281790781715098156801946155922190136015395448574490134907547983701414682524667270088888803680775845434051071444412414594086878498966771418452746226897789400972795213901244270374164820211610880512891511071666067571785463327917142645481493824457862724653505286602125699397478775498857334338683797541275399092307252531537773816092862526518966895282412912812174929864884878953141105307072175633587711336515222840352408791930371598044935772732581858011644584624749746819969046314428332819170503334860053205628512856227899681506813293466092357933044406418160717771103074127162561240771947808378992834413308159017880320467471586245083435789558039045258213602597470629446191560427635087534540124050318164084029646529383252264848812772222050194019363669588325461073230480910850343100832800333469960589273836599096717620833957669804208215951841219390924502698479744313545935141989693842797184079972520056782684323135013121171711024086195041320533252151749057836959706927626615185020081715098995677139135511208751000233324187364899922554946110388401672590121272804753323809282331139780694226249013756180670662281107715874214118832801746423907073160588068059239310794074268295262187281714875626227905220668956858564713402370330752125856788328619356879076070349131165505604371602421693647585402864049193988223876131422973083249596592796274256382521993069767884722334056347280440256072518941018930919992283660786236677709799236946584862464345039715186811452113145119090110359412966070580383077211303595080569045463088368163743505376053600980739103927327503328244193403384206685623551140963838760444400783225066200455874246652040654840330927049386916489144647252604522938213224788576852808505923149167807740408440689552521319445329048390195647291213301485299107280662699127851100723697795329033846316463143488931037939774703647250213695896616600884655541574269577359412814752905424506322311430863263534059229880543269425846007285878067313680902590095207160743856044219425904457633894948243217129219930848350464854427798280488590908273004142479762330814115768713508133020413874311930793136002932049295103111053180500557256143817764841700891157238185304053213905170006390118981110667136206134424817759542660700377983254888087066339035621150191403458046222278122287907143041646840966164597310532419737889631048510151561038244326842020839676900955921591053703017009540157107505531477047616493134407180610566726232717098899899515198314595866028356865785846418634124180343010624818684014355588448621124948567081684173954565698019317863284869380385493239421049200668423412761472655199789178690377380025842670309256338642278009953434634686649373228635778856872370337122248198260058587602060912958149032703000183960397874090795484789667471157027208149049325429609488810763114820769364069301576790721330312674516537748148978387959085279353035238189739507452098603281316787421146734366659438581246899580726916450123252041204889389958792450613225789704249299993494184567156155645292663637171567694387965564501799089705990169273269194156194367174152540026952481799567929051401227527040134657651629369004054709048179494946944351469508532291214944905074228756749206250025628086135964097593184138805338165227527497010024306531234757129186972613112631241544044836845661983244280840050893943170285986935039466195845983275390743904015770549055013319689452547865711203076844210170964163949650979406741681654978286603211311161914920960475203755805186916832463909210815599427759374950437591061488219309836567538823866296203083524703010084634257462638632344642057069237844603637096517753870425761218055558813644315395253006619541354936961818214073259462123417389744326185968376266973105759736949925332503123254914453675312366312354486429043237521140585092361715774694654727087351825718592884507940056921141355378699870082534334200788427196190967246497974010105371800434543049726462356531538131718935632544360359713962178555935664472096508925954996463316195093999514294973701391240471739748644048719049054399511171688241383803581662356426066801340928932998444731564383680253321396411292785175326060888992789947358638719148757074629791860107036862596782728204722058763154000594696581892602281496960110246500417222689963253196867525761003891188929121654409466323675852675424653136004285866631302802803412774993486004911501985019087851698282544146476166830191896898293470429359225634634805486639243616463464687828494036757977415574353256659176815205548839700348998845483468400167979385402463529877863311350952451433691128051431878333007215849012227542775889238218705614530910879344966753907167633618735898395609676477589936938557656623965895168668030633859653097410606717871655959263466661441486756235470206291895756666465152767160262074609865884069016940409200303086673097319711011917374635580354704150635713105374564409310907254526226289813171787956239169880039797229236317396547781220029575832745842041267035954306609967764016843795976355528172543216013544338664201995241959378711121915567910916523569577752755712995153714846073048623878327393699448812896621866987341280832919966292002894870744980389616974474654813560583622998378598678779399978817682036514173853601051554457766659212689245685105770350731970846224237165592567984009769844011813356121923793887337072607932901162600875692381950388250568640194421799189614499807006512932961736558031985082758784969867450140580991514921417375903211008712575489220631238067736048413123943306862710959099250023839399634009865922674764342708690028204002394612431465655295666757365480384314868499085254093130477617728646149238144842496838703614107853683869278430107464623097523911819654166550138137480764088742632179532115109000745562034683598549555775450564731433696527285603148603191027830201187588070160981609025356724907875843696468176011613789302529739233741567002540821332192483553125207152083648306491245495807353657566305107198611122290977949978019504013572858613339430902012203461717323298390378311678892174986446159291259000653043272463142030065543363781280803988658212618556348771862973359684583351146617744147209560463305326514031078926245842733986404707084664216145800540114379045055643011472454425849166969066522153324766471257597118773908466884340855171300434738490634193622097564808568973760480761863818208017992912049386949354815013544359697041720414940029716179702306634837943420141715967416659686222264588537413655166445167182660047425511112122760568126894816004849636698105593630255188380581522181079914776861648442976486771890966905649563478332480602192015486569410285988366740054865985973685832963188524016240994093101321711545550161888867662162527281515373664353119338634241944865091683677860617072860994021558795231093070225197682897912688123749419514387403935280537036501160488120870988606048818406074417343544952348189574410191877180573824958182898315482210321899757563641693211814104507324935337912714566538940501666075194586764308610874496411286312258983678821228051177865304109680127316063084144514143195564950383928672628188397861316603002067759845886104999675510531937022759571499403241120031206603660259133196184184421981991816964761680432665449782571827474835005807936110058830347564661571743945301412794411289966307258782069408717173290730116357179213384908100490155442910743918600100971410966837191398773392315859801255310883573343422116010463968020374585635797015828366275279317772209516392896231612312083119635405237035420365461313236055662810862067240614204579633323588447611528447616343164220040264623755275216028608436650199417211304393215907078047438681472731834308212824734178247691085130547261905608207477271843793835235527056191922276895290425612303752872918138235888847322037192682144803827925763365295442720350672561124221149879260353956694611133186272772842468869523482562905114245077329112787418737722903156596099787367516233419676900297106183422951127214375421000398960933879276720335205872775746123897138604761772704185256980801527426443275012139812129658830197473609228003547502674327093361075972303828099175974038306652955662655810355529668808571442271212735882952198639384632047550245212271037483753262870133408067928861619133143751852041761730208381211746967718587476080834514948802217123949734648229713222393692152304831531296101850457664805979759965865340423942446412184433276344727944561402046424697271417405730246539495194830964510131615623341922065978119875130958762079569755589160684536437541227939780050674945053583250257682944827844472396858346128093949942302323727595788113867447665325854162387967185726808526950294750852699308640845080688803300448759549087355997399689440106987682997451227424359000986970111639883443713930149074455588532448401827202031887016522801159370280598507664737045033379711931249889928916489936059557754729725724343513986364227488194506143130010256799523141850135690424784180742214374561193066984717931956514752970937819761235489166438956495903457486376939066834806842513380026034160848262168240154322678584234898894236643878457256570794041218138121124882406512096012499986992721499440672885430615058998678719542020897373025214578411330799570948013941183389110313251131704123323938185579563343088602494214691782871345852030974503729633733429063433214626493544317439240306467393504174800913658701985724559922483319270852143950136653650482128216518848275146790718433088296762481460661941327756642170849833621415789393701535348825405133989869260354070178611370819122925634928789980075201769671787121353723461182720939953037201119556787455554194356858386203647046728762799020171873002130393773748449713838682057433663909259803087515450324984792275311956547545498507734982221678075887032442791177169263264465924654544391804169011319543326064440213106615878709642666451591712959378372428931483641769538101426399852351706512925567324427427672131268307120441362107849693172631399149318811909978686961473854948655713831572735299406597830705768366537409467330035020142017446154427753520192457475074363271185939055827970749818679626431876352626378120815025923792195724379512279525904549174997192484539413309555909363468165505871116875705184424883679544739354687774009899663214877828400466738057713355003325041955745056627946677726638665221367788087032680118356654384400685968821774740442933265968946633582476656746007656596629841013719984196650875056931248296270078904673204214469050837584756131501274296284372224735457847980925567136602040463357977123711986912131696244910236833432865924408337631064172931829253463057314670214840005367767908473610915355707346979252747175489278528566403786666627168267369336518104634384851980007074550361328617417021340044089698770345974078123869026759837369858889194018774384741113942909072264660612498586820103045896142086940059626049257015816684382210204099217683146517158553234977487532699302501548171683670827910071459525994603137165435099707699668654484450487863615684598492677391768491200671272819331888250044228231297064820562826302340271472409254685045749376947097548637913822389907304599164895266500992120946317415336218486157980434874834122948070598881299314076402399689758574694982708209047032165974073671469493371416044025532820408086425753861183558708443437715655020432796503661988697567439106544698226410537065537032332495594587609513562860349769236524171181039956227098463993561351509305886752075057740056900226281851810930622009332802472373100263583424896560122646330215721103211325115130152938478822260743824301515156781390859734767901160023959340753800261133041470403930491327997345889065633979896550184667757892797652312991119817829354948075683054717030633010533524851202846307570773540686632536272995210610333300461924706214070328350549166945620063610478289396973368710186092077096128894173745086161574162542259812429716523910626045282315600177313951806000880249666751228714781368145412644813305888349400142900663783507555942301908392877827819220821421765191863090293704034033918973154854281599766023520306674763082119110770362752418982686069029753318095871928224427748006539874152909872273239695011778655355505673042319102874798158320335658645754218592824184425836149770183256171120478802021946571439557425732172208684777472874014282843130636973303726444625157516094786038443539778995905064983932037989892583849636222590861850500446149373321929924077781547981860919523445223452181212984030152247973191821277704446325773363000646059309943371016757218787733516684774356668247417346491715794023193954650057631406196902439812872231850248165143229748719504458683290679065380986449626427019515707100539410392017580935707429757315781824829843964447927436892578846412618602399275300061345538723557695036805645398877183174085622890588105287913874249118156367619626662804627486635623874901141802051143039066454708185437797073729100449054101276531022144820415516556988846140263437206712958641081557029483201211308513081614769591198558462910761808959898189291121751849420486175156335521786431498628837410725021516152381843690455772339040016554849908953047754013032358491868028930566288104781287214422405986666175728792530220486136395107601263125845814958698281988221056732307979998902841862876329562036016483356541602884090672201571477353514760755009748419342800743460219958868876328626081724124720635833023351965411301193916219325725276629569100983712657633971361739963431040371729385669633270976090336514755973618483497845751676545965429385436757564674250779731815582266447226085641441398299559778225982577510397131301326435972813878200389864119754458018879710461327567475227146929423140978286505031586091669233384158465053154521969392402417799276044388693337597266122615699109997903901240749702153506960044107288818931629482737401294582215833595397588786688892909829320441851322205421544680159532976705566735658466137908654028482701830967194752062054197547606209465148893980211322479969275162454087981253989451142924497430237409375027673225265839122441323506735671906292795288162411999650697548157394125198398120394909599586105470828444890842088554712766671448039609186506438277286943779466936130369029477441483136433468579750086164156812570321340077009343627747707561869928291784629584297139059838930211390435968256540487019945842875097697454824423217391887646799409219919015151813519363715479388940418602035689441067780716175252545751938963363887906285088162789850708556777376003274942689722914473736503161840869804582781468792330030119074255638779868289633542203713509963339211662976393785959807028472242773064725749711902058734117050937931074425923215958527690823042401514316278407990682096608086055430544076065099201409036183332178084481903990304407032239212348183519007253496678519894595285066096692129965329041835547239467960461410704104892953569009280915967732722649525576197447130128978019091997770668219426210720752881818263882742248829129827515817293528613867143368872347084514026390216404022148649032229358942791799059671871308274479654428902590804259452604736769571223752315152582412969626875307812454468896803266106949461757920888449102175869859083464357183503849069695974220157383117765009729585916596570264787282278131791004266614941255004209500846154869317828398098042821857643700257614621409626872270721367321042391103958391515784418676141402850082830059623072207250295548934874208002381815862094493321513825747506688198705690228870808623960420641572896918560174607797172383410651703077478167345529334182302913297226472957742116506072340346295586964519758229067769277715732653895521903296614355490376586900784059514337391102191274368622863084186067943551351939116820025778656993952606249902792926112423359712098278635922265098254581132879719676853562274789128279958841386801970210375956757060089070026653844301166267813621300239737730927170307263093893424549503858802643104460164614608269235570273393342357818278000724457251827559287206180519576011494620841788056177401811112492103774727304765796689242440704966629195231461730717300433111836766292911811603528013064344683829426604716807978986954412749313685680071031597716870391668491173834227351232083431857590241221816304886077009227420178714189617061155372989561250737566964260099124277898165191541965162798978682339117927087983708133083905540089763682546011540142637506333545839931147146521511624549219562284914329483161500480135613608958583957650128926720062685499060989631577283538306431322071326463558015974239133894020519196331395543592050410702129316277218443584477434494663333698447215005120116312038370713109532043656074693221462074541494665891971617580450714073859609427227562325238588836974258929714420291455320646589234824379553376314305941517297718519728262384820179330807710840234424734925402587696906625459437546607391948411650064138661426346260217362071442746760761030123797713551277923838518134398400599479493854096816453021630101465288729415078788840668136503815025005840904289437932725781748322343916754227792555083236222797975959565103912929376829915905316757243020455796798863742252253798369934806176082220521125180097097719588009654730479957095093140175789664554807001174932030026545701592965194661295052428470920623810947028412340961084405957289168475056839930705908576900259655406533519615092215325925953058644607143022130102997570171599548506834958083146386714263062330062818113380516386217597334954819838815798304507741130657949148973368397551174612041611684154822885757116349281367214003448243352037048127329808433589971073103141666280162926658441328948785005438006318029114716465216550971154668135802966364125645297700503253155399427846866697024038297429063456710688597761121598531617876781429745822733716768634760032744533713551901688700579351212159610148291989396068071871596024928621184968121038007841753542704419330216110391933281655416873339545605882847144387918738884484932530516727198443320590371907644320949550729788964395994261055122920857858686549664040088892147410334378748615283194552146399139297348112958471960391218368862367386329325513252144497044856937548551681515094647178518472651817108968291542617297769135419106843921084673844996055992263688230176172881109774225368753461055990436902080305221439188821985695838996299901465904760790810012578677405741827575679200039927479377326375780013599523269641583354242735932232616402395829668789018299451261487694717162780153709915597767331768043324962734052248314705626667564673485141383817402621646004974544236311038183078301600168730273506521660093752167111685722161425600182359668608684059147087637334985826220721381573040785547671969946880807310436862962136406947535780267829496185544172482705144005936316236481170558557193672249611198310162177324271532579474818551305003811073535753892517172647939191340255351892491365518103459089142810975393593049994667115930334038290103739588079950848469801907513665383024564086118668599095308332371716413985947304787021549294582905407874049541754239079112741489211478949544912764335497189538622974507994048700870726537037496041208603824200162071170047142899635966434577713712207981035361404923453952238697346668585778825511603577674716163978987395037083344066324520625921532335592371574930434093028698716884091420660500579461379041435757622233326100443785985023518677694662405640743641649959869134322963780468822301455712685582296593040544488256735730113556858625575507122767480109336149024384046108549508360842084649292408959809346117222431509411311968951500367494647411731775758577098780790072917998385416878041948194704302948610507548020399064991466977962541221670635896879223160671456570830192124759870620970392030215428472099542861663002966980919669614399484520841322245090793560459459753353270038605676786871166602448333824062599771331371003857640799587854234470883513998322147394193098349713762429057711386869226209590823182263147270137899919047067170810358101454540399523466466831382301969956705065651070426906163012309672353858751367572621658954506234010067198811582419934184457913035052472281493644583317545058964580461576884584382210634277431943776418972606905242722680845131121596895415047524231184811845971579879070401877021615531066577146916624919383223946777284109322490076827853014754313478227361426171155777287037231328452276985026103467914211133696938494075973846686382589113449942235012699332260861543222180254141674514283963617729280229240670090278157986414467727854116573530806446587658748601847974388323159884870789168953570125552432282270893887707982938184582610688854440568668475479528837733108210769330052551768243852261447275925008302572430798619511253264155357043917871985394880973383737769465445488485782895645697079635605210681768741866227351972498911880556468720804298513056243078008088258874787751675853134762234721999195596957222384027765976795592443683186938979477551572537903088522207978872015027890689555520638731583067340778448378562592687239817943070015997416326659174237086033411375316030959765401403871121820044589232015059552362202386162483383297723263017671548961254222048359927127090517542336569789279356619895390098053530237597641622763608850321209409861109554232505396086341682117640637646352315673756943911072865286482189749569866815120949972455800885282799741994218630768147164375449398916165155461356970881199626376184385379021508885986638397020280928166363119209920651590180974768238760978150726998757670361569350735516019215065449276467327738059665336096043631791678766436843732101682472595775625028711760650693253840102468990261081127972026848824086482380869943173308472570723590320808028667343029858446443141341879513759427718491119873777298267204455576125573772740160157715861323272550335450078175214062765577950798348408163147152117120004054179025675071174076447753816738526330395277199529588905005273348149341805007811931774463272883642338117777802791845934317140779230352854387592582169983167954726284082252225966793835438164905042386388605873229208327333608856760386306369314864359980444202698913498098744152648012776694475489493793295601728412334072070797881313523911830629073410428805878413462685746540503834071203438361132505851124815806688738483959434254364316819977233841268801414029749157979911907249967698665518256263270453429567696383676097682752250868653241658626692036997593818533671273164037865014421158056309758264058375686330482290753571078475145518234276420010874162060883887748496279856917660990332747019636262146253311398681708271314270335251474653613785537656215569228132683333983273140964819036525248239751647378679901600306623083096996252917244667020603769418206031426308320313077593683013920005157589130516649012062983224180642331281236298910561291982536582592922580928606100659389573207361045106208640904905974001989775846888207003652076228691643649918661937013293323450062317272450144239221157751111486181653193665450829737551711218149001227536466545953542336160376368487900882217525454388411153616844411163623213651883015424975810664096019019575114039000275322737942501431521986667577514164061596885526448094032653960779051994969506038194020663217374212247902797717717607083757226223264214543040012073216655650619072520053866483160565718663139777303160512816334365332164852556431373828973766802622119109231524361254983176024247688407684604031199621543028853075976243068313152786113887680311139322489865586932466667318994048791976258925111656513616967263804258984657998719429842982245877060515105020932665167294209966587836326722406888346823554211563484714556287158584848510631157999678655027848545975992985016004523366276622154657367079454695290156833158528581537294242169422504666374675772633789891061766454749959376535338197110951483383140272047108566481213578805712881722894539640160800543159670528508810553314323084807181569947868992109693658327228035601886861828705526411447069645968074319652243083429102605328126082644163666584691193339964634733172792583388410118143662389011057763819864150323255798779814595379817012861056759717848531622655299449052878652182030285586839244779613179781207837266872914553440254291749010220220918575379445819766390056520500969659172714289964720164993419838605066027574897729285487874344962916641626643659507667182224452294393976172105474530525766619667340517389057379678717410444499135689287059888083946978400525526345072139279816089259566170296972831441212631158859695652836572411396701091287206238195369102167326714553578984655770476849170991316267317992688421014290579560287342373146762222670338392765924593273513806280616359375972571133207016231670846661004371726707646544349105956877939281463465185237718018761492731785498323814226954094186196745620241914797070292934715830257383771023966259611709171826243638479893509930808547894196759718323080000418572994699344434862011282825497977675046693297341471748490117228068082927323612584267541153346683187636899500875150239037523567794675490813850872189157277952803887443486980658784819058289508590375863544430792065640753494934302689482590733673241663930153183641797296870506099002920084815572049306218127113958916666292968747556085849856199402950397018027340435570396184272407146426064776642846575154813420885646324296483369832615863069375205665503060455666690071625431929070254304643404481607260925782537600064255020310994068169329365055352134706000997790269338352275832719720848107662006389279684287877216912622887569410493421131817593118808529374859739376907390028471089794338751765375553235812894837842463245250362253914241324548888012070682002746096402335010038111855744667502921521402966582758572617783065098323172557633618035375413374963393353271616039435800203959059951915484312564616971095808120158527031133269094916319494058311178408082837193842568120044871647061053588698644330518172726878754141260844693580135755569728956311925641013078487852129818724404370734516971147042940794869676352604876919551863713479327470811747647148115761128837409347496147287477995638989232931186910249696161820253917136534729453819190208139370519990227151580288614643843982152392286076495524792843684036198611527225162066259487366623710759011138172188454060918092118658720347675461546526255023020919566006445420276083369205461277049829332628122997956467233196870175072317445176851259508939074405345456901102950467380105202321249646143817662948444794032524845766536760522820652108054861769689590240850906379142486385507430942365614681931168816603078377821966637924978326335982774112600194857829911120021170185862655048059278076181488155862519003052832662673154900301488115141930508178586876333634829127312778527676449248720512246946769273273559387691168999417198431536402276005475796226608592092988143904482463517965419981597419778052781685188028472804827479936162328203549374594107496415005531329214796537865333653345343976710299692383141791179358845500039699641240632865686188074477759986731034569570081750517427420236096408453795474355115735791926901783767573539903570458121786108192504834266938310486610514422533123067714306977294761273526889561094615992843555286517156969049538819892596201075686703495050729275241038086431532153358104788522611068602902112174260431750552201156649758230084202761688363871610186881782218220348188150294285604657438710897820049700081045360976550460847993545874469588377762783340634331739002714688888224294482192308704236677599339627881419910343920764690068803656199902618057245189330388131706977310315432716309290529675558906624843004205641024035519329940706420234582046375237615426052738789313315490772016031856643028124982596190681510654786252616445652302679043401195217433435874099821729981557635217860064928827614263355072332969698888989210829914559055986740885740930186636177931687288769894736397532405937013654410234800223013388762261882916893817242208425096653599208993770456202913391494957467678588858848446999861380115294151140146433690248529987474229038544248140149052205568015562821614757909581331222808125995350456468115923658811128461392673904230538472740292949453467479649920055914975649528654881298577426813553946588384116947086331083241077540535625025629851274912564308434652001969582432372348425874252701562503770445970719694869356701172503064390250092121054368046692086011176721860174285139328520085160559582428599859475385484260825971724208560999223996903162534016167124861202230314172962992131353350731262389068109166352371152538189875298235317660889419268306559106422964396573599866926642826886257286783955117114470294391049677298939369339340949337733155675979710485049378760796957664748679438831759498155078282110852974172009527508718694342620775289699656599831554013173242900308246717402705530449954338285507923200539296687609285691529425797664053834591350075606044177866307576453257112090890031422136416183846672591874672510365708012133239171774686713818460822804819871551412328798128231612596884997499588396148402237657872447071959637841643201087850051332969244153351774057928911295260829639813865643897284538132026938173523229552377482137400515344935957863872022563178096881222538800817156954940580349307845331693906547559730640222023157735585168695028889845050468206069988598803351888132492316255021567995005257758785459105161124127796649427919009839722889405603836476461582500406848703441969917273193147652895157675599794208966801804078515898305619405637549390989739190806161381708519146529774991998355847417733829471742115587499042428423201363674283353438846478427298126473389006967202686979039499814938758328591858630835552006450249445086458737437295951447887683202641996393562322322440858128800010671947738783144022317333448269294477698926814231321318945619146657142268349808745534829405965244460587792823409732215154238306444256187818297849454728669743407391931060332216096713300472468437257168450961711008127542402883997575288250342668708136583915349598493058681062380781370630087942874696429580086692449623291915561893507874242608053416379261247208603501887738431923381840785991785712344628067053705105029576312673497778284534780738649409554319152814738064948111251209864514543958798603899766803836805839832416097024205601634847923388879076792106087753576141243620553111949455637381761128986452778235945229340178784026733121062682435871463257269464017529018447753031704590366601118755023207431399113591976547356794743333345491001727935094980530691073555425558927318712742354131228375159821636219041680336516614793949578773001020840756815403296197664658905437344693909861668274101385465834243425157228229371264324593420795343467713418609843700789121650564940629087603939370129320276328721813618339766703006346854541411939179934659766129893852465535618421874259143919612770622658619694935463651665414249976570817863128327217827044510781446064004058311819710035055637038961684953000746240024183844625940356879068075120517624946531468314772804505277133713542910440488553204701447704220970406940859481250448869076687728981599824642959151390230060264182322352256112192953246467840831151286521149139045973990645076133659056321859475892717911173389004124852746326273237817902417100763260566530050370253473229501788515254439697294171225988518668117458070568714693118938758860191954450688495712559367652877025175760313803745141296804823301690054906665584240358112087306819716694130972655498546600811391636328920233416035518597626652163966126424938173522021386514595627870371153426760949589773170632859883444567586026344465576026728804062456179984542532814335869203872421935614653327345054036354568268350226922601691892971844777119972897440674840715025542227372541508489215117777595815271949212569490525399427921255876303134160488645991707982085670669193627966123485888522284022915574264107404720194629910663193586153856183899280019315893314356865029668476873340158681423168584692689493666799849009222746393265358122115347341562178688822730135124639314595090636903889798749032921313527361239615956741547435464280385924473650489642586270003807369828391629571704699544486720956059316511428615287888899895317551209871478617085134068343074192424752458231381300143718495274722151015938636663703635525681241712670538309488897778986091939065214511967808681890150293459674990150458021410109072740584988020228699827698074232107289128808077048492514537903839885093805610237249360258893270366461147557978219353992043198155476200873583920807776404084681579849327569293715976312976908064471507486864686729769704052311162702125029970433258316295457472927711909387188912236898110652520702036645215652304923421154305722633943524884793535277515897789442978002885958075198280116619114485109220376745537305544058930958871355759002782816775081309909401027928103169779673240323687454844900446343483744373048090324117748982572412786086792098237605805285210679700861297170344044244573312022782001965456395878044490182192952914077685839170847521674551342327160345252188289942000109220558391255247096251305091409669739485215060971834676670342030013445017879034208674897282276187116516545622687685241077520914951573482443082747309969157159232469525949452404443174234407862103192258102617360419357725242400893363381245735795305692378330899001400490227688661598759071658073421439843090375694617464681865276373367792635328982930874869607690026112853459573860153718298574540493233218436081053196024563139602062117315435618395513734612687560855347378906988795061330509421206245836902393545782120022342196625656408002339673819386155868191035246108672556380599395650754034961087935514444960670723551964917564853396316176683379923175794909527861158582545623529913758262643704891119488185946846157108244981085337705338768770893736897973204958614998530611633654565049373108055597149165321669633208179640011755819199789682435185038784935053924093845182827553677660462254003953918533163481995523750070551208473821393181811259349578714265193731441232567044034577766487457509185238701114486975347056398735780157842881172850835711610326244478909845436690608096719991183836329214955375341116084462602501839792431359732566018897844663530306868296171204797229686240755178097465562457138726481905542584714322383885779488523185502343636570048797869118162755764077651784771930483368564266942510242772067306211248396899311673455319155019946310569231510724524527759504661982586669777291988723430173309213680175025359997868342390201665302650864388259019274536968631947143822739681872782205608296017958068224341678496714712421684872783181888412949620751372384245866109062565350554435596565896431078267419643490417442160377983569266632480689673166526767497454731857726185205766971461436552293622617602911127317694459312534087818551884871601522642144244755658933104414609710791395441096504832255931462052703559279152295508130467984202960358333328389576242903662035075809152000653726346873045671103652446418613265290872652560737220951732765177112427635503072236440316517365862034827688782967350314470449240237589594488768070017552013689914889135775628869018553159644485265037232564838675784420338142132264080866095408210582409038473811262271879718841628426326920497887536570452753318652679648256867159837857757226125334604374933296206201735616107406744240357580543116851838982278580315573880372529211275026450302380870242506000572871456119160152344692010043079476696877046830957459816227215316572135235977712342638339697309056850374145202830559172146297147709778975773535418370844936136083564442305069969383731525875895201164161760328493715553064219836143066879141532729063122405966019932312457105322424108289372057006687207878607301010384342068344762725315230460668918159398473790953421804194498029983623921776992334730213341419161766953834892511767328098949996911889601629585534842994591661027704904283252076830219512055552754617191335989565050280608156248446682915685814505827835314301295455606318443982906620980313291051783625659658249887846497738295492528030852047397304705403231688485889029683184157412122787758908325747453680258046292358600748199520518043850902013571529938633895041366430070019787073529396718206150536363268374884299307761519861002273428122370817263537496249526543717561289083212335125525256509660995739403351315057985668294564444135584524550031331447868889606334669839420276604700130794744925239787561975966921447019336931852663772812297049396745424369680787633568732653665282910707777506680694092428507232010167307347532388922159338085910661936172275836607011192067337102510712673114346186717348574705412473223586798893837207735357710088603024800296684435933036125634878558873662911907194404058915882296794299639737455204365411632535044862090705300140395382001377684994502504009702610983995348470166982594774518665578027405323718449203176058365772837833332522692113069988798658876894705211215463522709589089335879899497376745009037522091334908824939776633775082211189364400219559999156602638983727107603169007540183165136781328324614740981606431273528383540395040751386638962641353609903475296809248978056469027708451648680699759611452234899830945002516165111697998086535736895264245528284680933357092917464910918489380997950735668532041327241624023508324001814622275578057230593729774298563092361262927482393158968891973699506467952518461293209888345401043516634248174921447542492393365726867638697508988977369346041499253744456464458929174766744314961568896726508732019303123503188442438820045068853837977022124251688648479687283498317058717289971149787868257158141788790623865589125280248449341176844971387253956605411971053553254569879297292792493441593436737873085337300655172275873540524332378312623490516181145731071649397701394498074128635176251340582988316891431240027649663402354801239260038654048823795976007077510482301969109150315083524578545639410759416637381826549185493061791933991251472969067234873145953856430023105584645918096843476490882217323092481670675591758705631765900521528753301047009058434297457063147714923647971131328824149465873964888178359847151926568369218549707727653923449702221968792362149541421733971971098931949854746310157154161179539342826116872724606184595196390886978540985799940405916184347921840655063034353639331604838275556200253876277087886444406320939666495066130993191258651837088098995028961730283680956118049629714779444610748535175540524019397963751057574240069069174470817237592002959576538657213664953636442506021213105277567610902948425372869560793447261279459750758236631284302835487371462411222551053018180588632597047472096018636089444796036572193871340361494193955305734863467663039401148555974110454068813515567219458091687548555910773520373176829076644533498694998590369517303038444272207351899845152870943155877423832978806649248892330329872139458679642034814144381990742700902453607773207975656069670441828331609887651416254409195822234683563039715589285768250276340592009181462831519284862380604570556828849046955986812267243742481835032982422047549100228640412903060666802097852142072698816183077516341098266328846878308976137370021948410415014780044731030073323909788361267538869953570114224260603557802906528155170746772008390860038962185812727362143306651905874416635147015445409686217861806788694029411799587472213964263943156054833356572063003006884970696613294971956435504869474196782387204087673100820519056560937538136047938901353215804509946935831452653868420014865202083769742570277276288751278593624318848925608946162458728848076189458025409403484690636181684974371450818884497740944049916954739927287093138002561937646200634472847795063955974722390554429535122382504795803822653851644966986820520066799306184874752462334885897390954919005681161439356781997314679590433188891817698192325907022803398985254964882099674325568910202617069376251872223349742795955834192266315292394603564215277615564789064354383837941375462620415377282170941381414016160744922003947661866446439574477584976672329856995044712361776676366132054072880879241056031184053785178462859380122493303059101803687050390247345341036283425290464118050117591632903872491674939707223809887589090815575555288566816173439192878577674239179272268172419885532547683060147763831066101574346674358157954445630267067175717416831484250295252474106187813216007898616642210171870865564357095490023439912676730949333361206452590070275908804885188508445621450853234156675259454747864200685466947844539110055224377731375377171948042907500202988240888525883741960113811197467995784824357331165418403428449684069798507757546685410720987654718319903323295784725870938926357641520262938143543647492881339859382837947799126263714382749989948627682082810153925081439650973525403427883002735906450274507221509187231565768750681642673457739969571309700852273189544650066280427962322447289049598086965072296797359998427799658028741193775327821737401482756028577849281146100385309917166143066632161981528944720389364389489554903449432843372170314859222941695021533093697322833046461730302202801017233945118795119917125620858168642591676634511065295122262688769198916011005095917502423500393143169511186373073359453724899278868764746280392877651145082724520482367826270455233333666302677271611971830065679510669434380675455602419146997624261949159491430951187955398342053813536651653663431892635257806863199026382988877737192694572019087793037264595911812509001765106911458154820969631204751909427134855722959193589841611850215126971042716130502207463037699109382969415821137806460073591951760861758664316170861332889880742890970920580440109017680458279609363591322553525148024314096330758327971743077831461877647453820863167336411009912040380394465868049412211085239590267816086246284108613798494465964586691753627995068139228179394506053821390080838477310774055232050910273289181628720851560392336800566203392725115508556218925419374960850747894486968749169766548720196249521310292507159589739806658422683362756594068675517846290688284255210743645462578318286825529267359114704319329632457183150317974578845936535265433683444470815778618179775382522784290690508477506761133487714537987809604376401513784778793363190011826891271665945845506844465521901833390203680632479177077471397979609706145567271919887043841777819828304536897451186845625507438941812668375763025563743379265067618555022841308747189289228806652852470888868857095043601025878942161839712779810531108896247038396111174305136228014239422530145646110823785971460752588214771158154730372387983724160931310069779135575094225639018198466082395545158537030920954239336070949606741963377762166287627667313557557927442417439261867492810499142758726433219662162392948343215039315353042869060736903600337186687999735684365473968338949168481462367120741013446346382328105298722258369180642616883060346778820929960134542063484386738073605019567979812418114098870994659201556172634600073858215863073485319969044620809950258695675552160389183682031381993638609537812020315792903553800617741602707084508898613116841953589475111026913419307144254047159865664563077827365664011992111708804563623353680278288631679351542269241448118949321974678643209101217983404285089695465377872291471737221993628320871714882858714996832837835884954700885442912031335557496656711760569245561320225432480346291855823901207998643228448803287654208993175054496869144775873549181274369054898016777786343569132374238405847650602941600275309748761277228462549153327387679225815965981021500595600234949992446793126167975863235454889393030157952290233511802760049789479386688899040585810638318485751117375761595859316564650478247350529694350701711430533383075787641298235051969286731027384489156392619679684069915629437078576083978377365852577195830853127801586637977138683250954821945876114744339821049365068490717201542788044558525661233385685056974276033851942211854709954490678175797631540268925911585336252306183568363046313192412967857399488699682287995330263186127257534938454901820909526465047798510667154121063459370536694116378595775410165822973853868712962616872022531945877341295223635998392662684781964367886765233885988185033394345485973006568542464425984187070301846257973713659112730604991008427218530861544166759740096803332410373051234510302177158734465208122051181642834033320701619514953631393759735060269134286028256917188558507460812822566095003191818883227924473821025218905114435324382825151796533284043922016173561995997387311282607402501257529004399854514034366272730342416777671308080785572528014340773651340985283793135849214003219370445889293427376097429421292883003021306829580883105251290977634657339555848728127406996873017410411385689530925820199315726999887449539011496958103528915473903543137558373770047238838072961811178702983298195539514601982403039173737673078435569379339230146112183225727011678590703030506556509823775171321996642059313962961936757190315812652763059981597947559212351463182910279740272843858716600502093823388447171600064726579550906461603200013869479656310581662700965575087465229903936052168279718249611654455662412574277915542155713852047849806105297781871218478394295804822228515162939302625334768376822725740009740799950900572946724693892147190982186583298968025529935840658843799206442081449744666826909124084634462712196594965206066787130402094845766353303459455475134881255286566702556630269943074930994854364985302514812643684597352287829038393423684631985800610625946225527645042648428784587364497103915600888871391352716833462203150788332436049301570831033516943154096907511015092507577091411342935203812229946492295035868867144778460856257266491024425609257294729516863856403022748956199632218694767526408017761789805124524574505783309255692390817299025829243481499848313220566172970239980015390522547285255690384412045155500436413891351890847108320921324697203467026060859892761244276327869733556287911449903078028477690245902366429987180139586418643571167546012523130481075662076336803059163740375838961255293613719880659065200262628695888307696626417398107435279265662900341541607668394062553536527142446623918364452278304370617182090498673665773086917190404503496309134268957742407567436861444938372231817640512644320582561463589014316194812748676904841634987660602324118501006073975203051552010850809733867517384223384429101865678930313817765804981189811777217155965194595546470851423167940261020725799982911686644526010571232559152200589972349434691467383858100552004648061406452838784266155880870212057329888387070759083368884548995400346580698020359170834265191598945887959498129229140532979108962825394859861868876566832704292326042595396248357735454320180842423750629456550322376407486204024627454782232395315758023322859274155180315920572588318709455033382697519702825307916033417278023648498947979864224667807781053596675971837876232805481499232126439973683730853816007945396713558062226476148876276276576691699529382249076783999924355423809878816868392307581676143262739869946895452657352459936382978032851275882856754544619427803123399019724379333478259631594577326831530269988746449502301123347532709279427760972458941783109727104367025843998458690922078931600011890448563939098767301945774780489189772244540864151715638277608417557513211147969281606044296436993270654537521313502239054129928295931326667784222683236613712308825829146683355064505564395224223764349908757075668804558598302334551077207903695254117782650289221790125962813699392522337246993631729129684688239642239717386694145938987947527501558988404723692114239283066268106637242397105300138321587373790087633015950614692446794781513026759626860066680657801625922176169515431794159312231345871611196905422813215971690099550961301831763072960579469202208583518951600980645021278583052693879764636624328553306604298535703191474733996495354158384897889514977996919682456669077687107740058854059947731567367893657050889183659828714245646192378879070580136026738472709388643443736639314772648102086852123372517321154277671974739268939448948779063745795873636026314271473541715180111598387313266707782814360328140485541392543045849132145034796265700843819892026556575923082837204038119134652295215096008982895294267250955149654475808444003962946934949138925442730786328596974807887221772534101440390580014184941691682611622426125218699911062571204885759887085948705402968320137763953572381466992253179148631488144633010221653512847437799442570408232159948568740899598886361634120207933801933554351703168157512135850529561870062208755543825072231220763295455749969507265611488327800084057824717942240814483284748156762562150992205980366620681728433122378412687581474937534624985079818301466278645127084945794158482083994997112370354253900940078551929087730596694420935009844734161379830992342379553714931159169505862365553814040429457605098642089139827090504360915191359072934133696436289594670044607361976775742336092892909302392443291091978822101112401469185323593461475411730654755704710091649001211189539212239186965689220950750805181102397398832832873070359438409674957786613055975689888081092286842665598067919048402409190601442389523904110873251086347344648948684702297009976453958389650205311455042271131565067198406410110484850958951040002366872844382101941331126834541213632663311902954482206139666430192842386347899886281574054058538610289005611755244614325731387818592059037572723238933223512895248494397831118841592041805926626237294258504087410202907225041802688632604498680038674109965962367062634687325016655985650329355022106510761267487562559033107467780965443798591562245075720182329939028636566324132771019865477278663844001840045256913564659011020417577963317599042627810704928599956066177272190717776930920315994983309800471048940040290812594627628583054616330731723917448210543669267576469519547615059480714634299017187836532345894942497008376246047046289921192735194323129034492845652869075620795023192138593360921715701966046651598805312295009236493676667630747227634213434263471730833599950511866236844223715130148479679894665496511136719938321890544882191105998895598962170045651375077260021927799469596530902917977912905896646605343855326879185834202861232847000061747321275939785822296037398682054862796303935630119886257564661453494359844094258749199099611890092086425369205288058841130361795711357255191251500555498708082579875415084889756855662750736839841457509052407010526520446809014410211794135903119769280311946306952267511030039804109047215862738307621720564205606082452943642685207272407627134796425062544879219350021393845638213560108927722000192957459397392052298039134625871862235311507263892053835315881321354228805547506692055349194729140701323810431100767806543404030343576456400577672365145445816617231693177858266123338601338996450669955577917641730564861150856702986524164528074845188892830636628161552728604435820447976338197626111225351800294995312259503680227088472193350842462200655862860005935731859979838359346258787921738361461176071389229963574400053630105226248361812762497559253045415541719144076694648122433884692898412149081991604838743292943049529615094728237985836159028286289719401151850049648676725361028830084375776085953116427770814773765205959304635274348737868729521141358033852105517962094693151743614657808844216270025499291683180829149531207539160524568902144693805981809552377839260749914553881695096159228830343688983783350699408512874191423602828904767789900119769719669687251572860485439989431057315041187854868572310593591718536657523431356842621666872565465818038125970203157805454522146829311787767262327704789364425254733714591478635967097327742885343849088774993379777888360873524533405975526496888317048965756729744177270173571597928086347264745659284328328346020033523924335219688067694874636574721133775345906474366402498651071607852345732698237594164252340436899280576117306461093855504919539550762414123672348852007503078067565938174076680425373591141219766892424160564334378921836132309430455091417071646332116167706850225239547102399762332034113265948852030476959626097615874147344424950347251988305347135978729658306418933316522364938426336396803267857104520747660769594403278028927442319912754267875743226066554192150888170233697790665588602097371337110988952983750142674328021503644483472183473495537400049693916860771129819457134908322146936225649419464262415819356514566399892106760978950004573499622005037260438242038742091141907690175047320289725516023032865717210355232992525785916991257093981043513404912660676532509198065987766582492084272395359907429228526295980439473043695361123718182862007578203649990246828357525533776723219130668151291701227777530830383806123005846560004932597280316613942576092872568190643429557542142937255601817664481483898252017147546227182201476918582081255265864652535789386136540559695024440024552431896001823939117182069016973413785962632985070805157260389674032802261739825740652747060498861856935228614820404108458130801105098058764764034070631719801987797175977141724170635607418118074298759050998233718518944657823291790497375499791863087930049732727719186044961024853841858039150095318145519392709082571989131585721241829110162048835378326995791157531971383492375839259555613121607891330958004867233543875861305493295296701072944589271702994379378116527037612697982500058592748948700957121925324697770845419621828608228334917461798189158469219883653305337818286775838324041388652067637230417731812769157176898550032326932389383012269012164972599888108005035901112337584618264308018656567862005089156234994697596219254796563459936473472726341262944533430427567745995356239523460418488456094918948075386386390631743720738794043364850153861191288974868224993097913460631188645827205706541729328180076240597176039440098800498042960197802075408601759196841612333552623883393353298717085972522141600341724166190846298402231722572133479075943240282408634456633327815332103846968096205159048942240452289866321380913890683153353022978270464146475458797446411186794134480923943991882822826782128485825933641706021787193457134492808106516193547004172117762172142777907895859428659591763257611395355795460842877478338163308103959871776760954465297716255690157137267596976032034061900691993355689068480580828783364697541252518206954260250526716469348460865807831032043029626899764178498545939767459095376497570527473676648783469791010420122162303821308058842786321364088064098293267677086840110695672916456188350824047693750470834537073234029149616241045187536720206125878572396986432530755372025069113606970396868189075168824615857256114350137654571333163833515376520170549005200369877169732199362758815428031803146545592103063841809092407606136158150541765530768892742799867954264225758035699540817415009078702797508264834355840832869697975399873112057773230135382181347390474949852072023801636926291854472942036080389509664676715581912217431119272872061568829537089649395816541581537125659252639214536162573137864175190377549789325621338018872234644249199671919684024123606077575203335813732514606994667651125565273364675345233437992051307607455887815869626801839857220094169596974152326021526729280988646495756665345230547669090184213060405903640474231496444040156283131641482014822036053226893797299022569894239591345914734865664386714873440814325894768725882207099805484932487815176934010651023839941976199537409649464316250590775700999949502533098009719176498283643786262804354374065330251141612532777928039310631367450346642625551979188170386373206978977030416110989537560084125113994990292684213824352664793121603579627740091912538968735098194204567177322849622632065553062057543138708877270278031049520283183137821435761607052512388688873627806049706193325770998867033414188505887223470633033431276632882107003348259398433069002617452088138951709466524285653570026720503854457431199001999393017785625093956022189445740561270540682052595821548510243184870459052639952896037737753566963934380161227645805315630638402347319898564108877803086766329156529656728817431128365974332689585654486355935652336384383627301063666870511395135258673579948066283090237085100137975757438980592584906170870169451720434501962689920016925139368966381782267151947105220431278957437200501871338414943580852767827102916158236878044051758052408671922872447795630260079438830276869287094220106019127653469182447893335895705594310928901942672093716026165675578008972638634842538364603401165686079095634036506978718256821291797349400837034608867926799910210026649442568425765304526362343045471429302094716188652538265081188999630840410242260200978349651434937365048745871439763089953616346595485005236459680209899896598786334651563574259931922582535134481216277437583246295004580091944857128800327781137957268344893502812162627631740652481655958733028517850706233673871402967811981788137466252009543006531266338667261338255524415397368069100846484338985287368741672661786575653866194842318951329708149187164054022370988345798911851479272399196556207590037874104369328684348413177580404934064551141901715271712677241963460098811501436181197012118562619264941808630013415960456479742868275072899939232214874551865731734610349904032005905160547014043199799230316862256828194810397730652858256847697784796046656701867867880446333052300409402624054896748625632203990463020137145493011112683977624055937930456275987279894769725291893681629680559984134724575534195141749216576521650873883880844237965776575795034867706630844734233773659342865751286439101378726694916472977122037723542250740148198752398043003744216455486962124942700368195652664905949454054454889390689289057334977376484418019149431071792595254938003863420166309026015640373292423162392426874233407820741447537989812836947456700272265238376513054447578668040218392638976372159195020139693739289823292054772870587454485753944521120303182479412282636258363841777421047559982986185059443576731905715919717836120140848372650543021278635022628651217338585077231446036307756792030558108491879209627869144269109671647440538913505870023506946254053380238598242339631857681132340378716878502963778567404335988847929255973776030653113045016881626078691273352915474310247920094277801677246707923788693386700487974771476839628633630656420297930907216869691803732174191835734731981476835658041337396159959568047100428128034763087448490571859839618210868851582820105396708974530951564296336646244775207196060731192099061974562594408891941543253601182126181146778069682476916722832449125250036803459621247528890196600614608743031390054100472462659521469969360911344090464252629882683058964859974310509976390711013800490171152446875408456754734904517366151583855238312343497010433130949326429962625395831916154963697401893878005086745002364147733882270038086569673890280574401720338918233900509484955722836200555158225971834309823870915013164552117362532725541680241549843788522876206779778351178431469559888147430632419004575280127720267308304163414969614719852096963693857088373227601351488016110038469022436914985082729963035242683898264954347755942764803570116240835475863184616017422790336641047231859518614075789905382591153614990304936980325020552183996586400483794112161390240687986188604723097832873735796936877884306717455348478601829177600264188782767160805082182222699670806501225440213224739747462018998810689876518758825132344625970402905395819030823945726428051081688831947738356011638824338673376962920301528325011601525520305352252806782350594392457748552280306547201308312340436226164955406970627464422386419039239955486820039860068958593938222058502121493910864845784296006478981701594876724752479647478839906243501427939940969979834681505750917644484644971281319710272827713271234234914450511157680431723145081144871901781504196257715804713946723920745279376577824787161865795580007130739976975581240017178208902005757699071315857776562217873501095345303442136292877549293217273563661890581110157545587546268800440224586195086284280568489846505253336183038596923663363486154920608524809207694160047284277694576643499988533279873360192832865711823339744161636133894109206129975378876852816981927322185699465419927928460939858731875097546124238185852278813035309026345714199843066524777280987704205568537686603824269756901658362217451210463653814263858674105714394888351868211326548596135059794987829239517665749246810281673581075466519680526421048160162864448137176091424357614806678667269796931397943126819714354496592091168074093851630450699328134971339661518936197576081799591319806611742131574796524230279627014373175857418792644793737644161255641102822076693574540335674488291147086207831963906002474895748075950551503371360708670999890177997353201177749785987714484224634504428173217683467694333089028954804649485792571089924105978856663349897889448125381267486449174792387351150566694328940469433684164263760532955668203313346827381717173096736598808348505502002350165399208719590046754099605211593874224466379645103027993438696677956366697788187230446457685361325027972745838781997466024101090107715168715704337391715755931846579191723055938830373985241552356370353628107942258500272361052188046036326144404989615801203041497163352606442179662560474300959768711045250863930416908802052489855647770620602873857050976006424456874077764697042236849372598350504037877266202729681023716739052991013150364044806997980593187492341441647139017261202745646190296056588496874906414766563867436130607110432502745730821978204685131019540321545414040049821253350012613446789811057233281426944567896400281818111702748687768354177609279832283841874001286742407251282203236132996089913045818447997487361590892670076403712430791133547345574861421030024291291809061011197196429292407012327295691916788618520427577666442856567848637596679390732254973909406340754465627014527932171421697232142664558695617107865869293961461303627267973656115456626439689445514775161454858257932038966684635392583247867200839734687540367878035323514267753314806509488087729882469006195534517750414317346368260535224123197268033176869780547853618710662707849079123056749902953054724785563867262449034872769094217457266964182147479172646173530322425020855300508274884886924026507211286493374739929669780341276058890964593460479424425052734419971746950617462715799984620382346995987883017662661078974846177490344509699537751841356034007794027471846217634961092672781337337697851582702569237322416081371267246735643221419965591805229153610335319566250636135234684968757665032035260747872370021856867603115728313584048897327976136835387065853885737614548902700026171771767062240359861507675695285820694166227608607769084983719199762513314055549937886045307992596491630541160053073256029188365640943582376537668998663478495579476049018672743417461475698235961512645433357242221671362206491906130155784959529095794615003056418835548435076539516028033521045509564349613614684456810613605052506518379363437798404024425418234917025524543709732481860656245178833515785893973666272552327655970617750223061165542986809261877534815527237382018534728890444199499355942266605712296127749053843972552693907485575791140263010184617876072437891232000545566343834226200350376784313422771887480027900370417421115761014060973390488987559101515782504964828609716967538196798648452592159192364598654638680767674182172540734285486763518497861556398367968800719514268301985370505804209405561416718631429241106848828061148376431544140449715244501367821547163263549779661043410982008877291149314455534181644045657385904899447819459707600640253826197399033871515245105280605567341819818094233521167128327637249709286767637940130637321916605064410485076247445310909751364120181516196638407548975366334794568220605644130341763159599963929891125586366114253574411457146264885459850958815523793861383765992409773057678834373801386784458302399645104930549735530200573718475144990097730403481840240735906319422091781912998704389905320851953464296797815862781959892566294744287417413715995243327860998047053931886843084282276734728375969185207999708348167023977852116500566105889725757238779396089058950744831756319817450859469388682561788317090955041837224210946948605256198518388966603809954451666051343994608443325879144356713139112861080665346236227346348256240283908468898769451118094527487943555444448972274087571618872594953719152055661357071781165024626110318917134921854554608022696563760332963310447078106991383468352787160280661669617867126045437024432061311075504375260906865864716843702820508393413134157733564837292413935863957852051127955373973431734010934644682612895767433153904635664085970410929148408379265589499671767175246227011349270446079503812913514823350781031467888682068116013036469920417941432186272056345627195568510654346081679494802234559777957755116900830448833939608219416383310630447887761610357542566458417189931969204035599777585454086783072473862678525919308705709953538717819392042081160585258410776373655539685711620689702408415980157584477120493019390917549775218074199408866950064668276514665717490961162261724438015758281401853563928705713859429450068410749320968626645078184501314479801617994905345028514465752341554675524537184603682979277833835488761872565876727148188463988951840927945495704614372733185070048657568006867891789867645170566245086099058665491973175046779421654532351963003199311118920905060043748445373653207010538654251186455796675254648148653774761293521699396509773891793736976019052210585851846284103282257977612041500599765314650636611404627560526761020252924891172598620152438747115605324933041116324116475492544509886620559921216421212400978484582116854547170153289368735829591404957771305895837272076549910748531904350207014024672462422660260041370251548005720971804486757780530148812888056947474534791263345849324674122802422607074048969805835385543171566631476943925522928472830229063696505796445551225243714601880694824003723053471867232303748416974912064656920461747415371031736133432749595123215379207306722607260016744340274650188276806640801021606259535373693259925738972024712480677040354248261686672674401824189237912491880798912484097462682198830947102100739155426314291352449760899461614943378512363500200542571342559713096133231565648115979365882564034329117045923552604423096075328557424907415174566570398504538181448632863751443553567110484058894940328173799096603192678686779727571931368119308668656642596985144887209073675597874709469968714051810217736068207663527718092012916686957570794580716930555835576268687020333028832087527400427479834672451560250812906792560892361890793526363791389115996499473537698112241988321205454655162388498046452850771008647833605191478434154425525377061603891870532919486856055110670624337157305194876261395267503355915124925761517802569550476459966141808769704266162129603532686930685951661031791391575099958476004492493153693066534461595464728184327654728602255563494019249099038416604479110688924324597506711585481295423838331404842868138159053518220764813705376548073843899970541486024619310744510459480927143731394800767184581895569693333981954457166963249070246575059019488400449177220467123694911234686197076645968696610558600757109747204821958048361511194877907356411169207483763848421139246583557097200158482922447184556519063533077756756385053464253470582747986105163036529762092965885593896268399118071263393456548974608564795382555021849477567885003972031189427261577831711573756955145098336833800820447790717585273973853786233748508334612864695322245184174981350571520694763582691557423994889717755160334282000102785365853686644957299815290532622801563545828594932751036262588090259035380886032366510993314400148991379288248247910184672407401060773859312695655855830219937768920686817121485039981387534953460237408393165983162116515737543125095841010493830452530447318242696917453305641231736966403972582914225289396602384525473694424684351409547747356080649299981955796903163641672731556923051253650833933444139530268946241742304620035862787068936802857401480117859533564104532437961137458704026890093257609994457286779395768627136938104162163955516014478975209032212381918833722297394445282828447120421314167645432033769875025607269566327048313112163218508922098187170137113501776621569482032484991358585288889432876812973521618335811122151576739468884025796359542058804541003810018442795787594995210670854774574034895327502668756240646343341708370028781688783218005125750578006174157856473212094975695876620395427806534546278833911110065710603023787606911387758506659095134584923191180962588361869761549534989162026008052431754356025011332753036303921716947481913231803165103329677942535105978282921248877743583972304322567559284989580952827695040888826085143500320460457491316800762611003447721530203618605430141361022768112442322245180621153490373242307054282322224066968647094461488740317708127076010621197677256594485601952090107654537386318759583675075062204964244535164442892945172275662921761654520039745901412024979677592176257784982741486735810094608435078096259251563459864861732863130075902493509123583309385558981221570821478699602931927081856764770454428474727971152183557695617541262545761669373161356048501692178596821074975565485830250969795516838634669593057489724512264791056362260425741972695539533446156559880872913954319878014633437494710264794477152187034680011477603548064453698784813426191260139167693119520386485472769993343528532342035460468686015259988347860610631055691512784887166925439723206837664658950537422817247938721421029361674532115185727296186434529749333942927717741211191960474248222004047460181623260557952081195726981047318378583279492008177635677624615559213364938425024203182820599918718962641827433858054780877060496458614980761903273570951088458298892695519156846252896333862403214364968633717389942267023723064361653875010590328661395286156603639252885322520709887944997971965303185634491646815386208034970048424074005666322759392084177281095527516763809152656543224083648767727922808178956619122574500880623495258232627322243470021904452140818909448389893305005721875150283957799937870916845691722376886826543800478084272833913158633137618221330548961368015763350814980973160274016355084953064707446194843891441045647192123897115150288093792132734499213212922112475618327539608136603968817097484028346116814262093744067686713363966219632980437599437543859844136804726529651151169640357775866761296303077980475941803843767482177012432349577507198739918592673508173954109623044819133802539701733134577958160187672312849203611446653995306993172553617853116987004874547164368204778964827309569503650760035461998473667900872458057508682517245639134191219318698970946301528050579871432711959557807318746253498893472525608896582711703602721031852278411977957208960406285224871790983936189579740747096073676152279446970405168127046638708335808681379991575187814049756192288379299939730743844717504876935241018052823926254651033144032012791727982189582553877026052114253872789501202663257188070049753517937508002808294596778134527620417715930535874508636892613435791127720486381879459218498992711854748827085009949921252061151293189245371647202456488698113045047933495377844594707742191790550554794893310795170600066920239113842579846814638277461856324808381706484883446856285022123134582028869809482824698197842881177270626895247363774613370349973208647260374503463702252660678704474909029683113173902503176744075321543342701472855509945105847928422201256098032684760320009554603530377030424322655007081074534354752268295080497170710516820043675670942558063397698557880932561731756553478431478728967420375962851908573940056117442085509333081105330739763768088400529085693211207128687302706446563971923745566092180176321710518030180781141406353214567467639661287207414415072987522735991557617529544385269658983224294303400329958074405456189229582962279528024263933456930707891840692546865090537492915475139550952629080424312404492236858129067571641984426610583069557334688794951762948303849344431085993825729960870136364856251804308076993496685788165429868084976177485837322291039708767029125604233744411813086849807970430398341434375603899725728350840815775561086409236260394078177594410731386962292630732921880478762451322566214998863509626850702210671197688292631819180281159413083997416104068013468904461529285847029069152985388649249501113748968605853374008609109157604169601518325950657040947641801386521223248222026307508565085634864957520855996197546032071010776381766242082358469823376417363605323736723752151679356964008931814790016354688121414895499426490850934971413275978534306483420943980661868072618180083992562931179353141256987998406293154649534534509911968638781914444317607473998256788672222525475592101841905675311782996416072502592822477834142559212107155293022077793914119335220243260493377068955743230471083014844219774842466566702345668430760257447852804118276456040547937918594647579054595168881148745792959029204823604713292106344718193190023025514727817184849331292508863109267078325670008104574805152675974642886678406249074904603235850038874272741164624921020217729992557747673397489526415573963841892586197086888942151044546359500845157293921901967855975323786037169049851334803563024068513669189116110750599287707263641593428943363926816857510189896994179196625608464894829684684211236829368148435822170351883933824482646927394045062103853965968892574186258776471800185772419805264635233662097339647751514462900070172229109783545910417478426765957723717173901950146828415516073452043217370981442082769790815746315253429215422060317285480297157122298124840138848030074381073845533581290757421902115981011836571484005261664705434820714856738556992421616106308708006021279549204150566008987798889646416979774213542151788807198720322512621811183835818249551260602386539127552573983546791150388355104062441559545090517155873578180795598776047127010584809827966637276665807740573065878445932082772888215901151574618326006035640967714288817464285771508684350261706671087019579765164051579369733157910272001860063567996194135359755128130754760341289820366926831392394834287444595388496587717009710480373589396377537611217218942172269380877530880536489674081592584381320950927880034800815754453133732008879402677479088794428159019958853792331512869276539835430838474399916157457279995367903320297234850342784731617689275719632166184026096257803096867602130292439392994662447625964875804583618803410853254197847813557189799075578809654618582196872512473481553277324795931503288823994152018481725560352514094895597900016221034505200978931327063887303334260330093391031637968199188563000717485292608086866865651656092560402828617281419856725378063230636865699295811808486049346094691222784283683109204798347414425474996908191587960093999059804830680846805161585339987442529714188653862099610828559696250694217837662722918475179775154665586284311089869882475181550992391444378123445217600974973237703496610241188377214903658012150418351457949246080566244255876921351172057715168895994023159666010356132533114917473188463488081954654760726499501036001367657122686976397437512855635104047910485506375522961471535358543218660340402576023524356246449867539562149607767501715331633882163962328741504023429268758956261286816956531229182567465361034660488494404032867061811631142803614361030195617684318092734994241634780453107950183870071425150090695964739752932197227423771436179195345081734739797699167455108209026028343880451507969365995195637101421015363135845880489760138406413748351001871371214351752510583493056618173312295634790886265053184957229322832129464949301865985422394741042843424868456699153458391982187510955951311379605231664378627411932162928726436837835615498046934176106949159160442736529302275841242127684645583094458790702891432780039726388058360813686000191753724078392693474994678777666005910924914267291621834015834376332546446853711619536051120637392946739064770131203054808883755045578391415950967418696136350205407863328990907414171272478898615301099547279280846485190471919758256373258665388244990907777799756620847568830765648043915436823393713341115215535333567995800338851598936697815092563482677809246611054697196981808826824470348985603399244496653677577242769857240061459336689867813746235218619015047514260706317653922239081756860165403346476065857434778485956203488969907733941258886728979761708209239427931402592888833691042705409714566555127195769908253939324039058490012568237957158416947572889494587691510093426699464148849346521807896629483663062142978153808724269894663153047006704764412207773953704154910642644448271539871482682478038571735831096816161737414275270967664908300038945178006555929914919486355084891547829974103384430328773706864438120602058427368462677007355055131799154274034150689159270963795499253053795975124703609906405515015528529890050800033713741755334543796634774241001864366193863355136740558137465176389306900961179247384608966026290172893995068764214416188431371425379750310899872053317296133920280226219580570488720860292472969696333916931616044482276106417149213613643025849968772513089008081939287155125188332345256229192378236741766409792594420758047123068448038196361540679017123392650917948643841264051998285556973573402632283833694539841630167396855641192171858700788632714605166796038125127631042335870695759236654384618821954332858983996216405890529395945302828279954184477006385678619636919891352492617263517360425269385821379702408099321662897917779414868043954628614602016378545690644790533500243287280041821990622204497810546461299842971200591960437466800011216264677494854279075148370242194137292664633121041825109723214656173896494801409670308316266092907481599212956661664116520811798913315726531958745670427818371349712747233121552936837151153464069793075813000025018710103399464854572641440527287899225264235265689854688252664517728358098111299524167886370788655656532982531202629543936345576303093459177858665032910331791945392662534884874395556984548350202739695682506247967351751831598407827286742071439499164568504355793854788602366696158400901273008515258645207736807380174670827510591686202819389957492387385545726878137771905450343004290552419978637490444225028975845746278592590844581605434332632191283661629067830083774828215503032999630086109945632928440443038759807504729931489304569097247223387485728271379227205136154614637115337809344920802249368867468890946784908707211198953867296281017600471314548228329003804820107410666430795709438308569630182961168122927486354482326545339487770256965567955684790036525704871613893746016236314919188592932380921158354042329556450513927880785203635423923778561866901045898083016221631686500155308139876666585826040366227730638310611788961512766034713760447617221920608059671940933272345848978711820109843167140687428499204369891579897955210165415869931932874639953733289993222063924134394634479113212919862759833680419948582256061752187442264218941013005797893160610070024512539379760374787062916189462092545576979995219803804681495185529617219160115173899379767001372148214014346960882628589388888642554259475416641655506002796742843914512897501217679194758511866994979937426835479822978061759017813803218047157509232699520152630162233084267903819288540309776210325144526700775744107428673206305773302527900544788183081194072588210289171881269614134373820914460112568449781892683116157379668137863724624744886252413807514851597425622589237516164302424422236222731441327489507705831189200860029510298893246388705762807817426447359180308030049390239129394566134271761627898882627911597859817300562283485128085343800417146328501058556860380579829158671493455571637241081504150796063269885408295297062210327417093272774461173581544488288361278870211913124360500782731369488196241644101996704304377051809567914791661186720479754481538860598286299532998161459837095527719808813450914172652043016751420432739801565624025088147714260903443919875077615632050300381495262587588057614934918771351086422895904728297333887987133859112713215895783322546702898010698402392036171245408824175941104411707658645108530891481048362971180615726571364390772347175946275426495678190780913501648549597898166063394851618472287373528415744091814356268870979249394821283314923188535378975376932579887808045942981473855440724968575548282661378697050231733819714695090414830249729636797056062331275888677490624593057495815334011724992845316531303531505917704078093836639696042308408509973712211238389228492777041726050554826334462768754179459982734831744169368842660602519796683005614125372375523020838482433609664559738527498022667079043491655682174980474020003402496559547662972552229477128712355502496656876321400206405210056005311766705952217859105254505316519063622628102427940133411566107911112669154092704554958099287477319401332218692788583032120842331188433812440618718049735385884338212453297725914914673532442502131468284565163270674122312078556903727313222981067444715458446667345252967107183458451752845198698313544973101449218407881722827270146824448560127544442938457337833667156111791839997112963370023359569433062471001940248629417662169661127705928844192424853552499471688440595829682043400032993482540054508814644398694860147348315851021934036893793445792518632515779736421231874173885551167345660051143433624403486728546041299146552590244577628407264560612129390858179234111744704011507115014436345727898171637263025278412118799434844725802646626569954508198055018136081752060723221568234078455013830833500581152766169375817156332938777766831586623883242143003085199318888436004148361165805884893938802411413969318337871878760739714531336606323209532793855695725504853250210072247917009518259028805592143862786617145955070328221294815796350767578568587151866633553514271872661205753552362347020122825515871472571195648531484667598753170359336924739183859674441973054137286150491711280830573838370008674040168373250286957847944997611172534295400664572106719564221708062813036051079389012209154677859395635756663280078575617614960115558700853842893835736248798099981712077585615153455865518227882623157469312844966615331641067703181982604518285943028511258193086092662190909491729372558687302202004363633337908798786275979391461784039966975423318409730186640282139586112665834110711017124194294084955687552842327824098169358714438201998672840720474874671456254532893539817778857040238084061094326180016038640926503626910298701437964798625678305441908948202893827364017207581254261578235936262487182566898892259815741481976281738480506291054261320361690469561976840251337276020699898618724849658437124612110301217952016363358195939686987432930093957018309944050266137604901766110250831659361979452079237086122300058574155587200314543909777698465991722360104342541720339652340359087406676908833968267979923984468607059316386774241870144871181351534626238499689415810319959331249487048710087881729828150472143025050958706830786182992919185954663436200752056263454129441933554310312528836199448765399069659120235575326506440354194951096599117195405697836210259477744819930838767024352698694712960617088182922337676093900448531622565052182507661195405394342770742184434756114656871234832891227001235157292417555374802053817687687059896542015453145461324981668014039784422719750561163115804731452717112790311053194107223909388285290646353390086144543576730968425921678856345173826220580776600837875509645687665368863108792792541894670248511258039566156746463191618148856734505058276782297362244270744881380355035562967270437422365307301872670694008167787302999745017612995793872969611425466729539774216788464986198734363330248856385142169199825986554292009938923608742010517578409332919390723354126675086588003948327006339548834487874542781514697442615618075711805292279866686879341153227380455419674909616994408400609017441913362087613420715257920063533221565464945000414470256721595922287452038995856785801519884373009102791697583471501095327606394342292461229925403105606032236806423408095839738743298707516324101794878956457052142640402199662124449804435021791828694910585172470918361721876450242213277351754835180316967612263890401413892574182504218764205716579861678763124863880977782079808860733129935491430262312660462520042819812898493080326695999283801951537904530272844652673090264397019826463289040595651345651992200427743223507368840417697654770267987808673192724304920740539522176180947130918412772756748344717159597724111492823426796491874226780457315794586514076097655699851484443343657310564295067075504897186264304509266882213311136768925148224548492575563171260771991089515961818054508479563339199669861160814808168195216964220367143690918461790486734338936852349546424661333288531665562045485739761533623844743267364210858399697589331854327717057350132918569959236652328658167925888773410271332589852362929747840779285209274599914201208167950878476441444768691188265019522991219646347681714465768193111244913080431495023029389200619011995660293301961869262292466544926923892756303329950438470003319027224889141523037130015041765104913209065663978416323607617817699839918553962323086117852814103370739482736590571006268822248515603492737526103804409044516733841398349922888732361195261133579457449567470100496096260168910400477371503851271488491169821292394870175370233171534395865075307430261498042981123867647962347127197114268478467764766652608294107798823796096583661730495514584672559513341498404659251316834871794451695460597086572784085428429682450492124659631402297614818234863866991206280204998535393154080873178910768443230500397773374385347595494926813261785847135163033843369074709585575275010965147239599971895117594563217910920326177573067225284671131604143201359597531666862331289079924302027644419666759676306041537462258926004610069058591965266981647060415410221138249662842847328038216293563867524348311016584702177687920268005727331143362687874432370929298283360706681424859345201719474878804075247821418467007092222973285294585884577648941789130768933928789179398015852999683876307848744385552377678667440735976741869910784566554435432433361685866559638935879955901841591845170955470011764735312730171440573421935199739826885942941173894622473384912731785536105660705369538253347028942882950898574184184016185960769210404260287588779901341980493778294641510486918169170765670987920749416869475784066922034230004298893143988004456967445829857533830518936312495249486254549744508513009686605772870259216949875420225664812936497599705735275007548820326851850848025479971015597223656658596590970927711929203303262357115768591281469991478373821018601683532632329867185728964099978410506250395643650031796314488063422714810155778157612727000153508511845298610838710875398435331002228798369354213467033462499269794216072720698627063642187449871416338345659697972093085948739129999504246463070097019037048379940490806144210728987778771404681453313003703864017395297638495740212449320362790656425933731435957413818422858875809959650643743507867316868949573748157157260126436270623759720093025030510024364954711262124136177070578552998649117411986613934725796407914198771262989929264051864940717146203425355938489347337947755199690950508690459664281545040909173015507567666237178184725688218958936242294161308024304717134287514436213433136417479007237335897202306400935216026704381673204219213151106967187496277089133757919532669027640440878116273815165149727838077906231455397831235171823679054831939840038598777131340828517279438905264155819534042355476635608492110977330732953128265758619041918050343959152804367065208983148622438986530784870229331207279235822344243801133824129327336915823539728374581842596633392959154361608047176173784005397704243297396141423280231122886275048956269170115854389377895360470451944803475909749982240740491892035936738600728119911579432431027777499696033229611784212118969655255516876351711479320983374163469793946985562100708249275672803826678170561873440276185608480212589879796840794496122336609190912840898973440354846317288099174858804793435951784123105723824365098016549412783975488469375341903628515503933769338729279064533912776557413879306863179859320180372947629603751298524344540240494527005541381946335552309291587136973501422694500699908152310085583388086089016313744167364933247367122865646633206278577574842406283445709096567919146493635949889855554399907722579667615348787420458454781981098456672128154591731709192127736963626783957593920100854193102385023128469794528285170465269243973229375430342390964571993350928154598049798521229732402450444125463752778230718913077114118953427340684765725989220641992265168388781577842449386729698360566400366450970063872237037344425923872119889662256465414992752822796884009209279852658392873768086769389984621020488679695593562043082079292900009176511339390150495275771198124675750933858662447643715738488520847764270017496362775774711952749630976658479894302279282233610152176176239465327703726012330629038360361656515278236387994525007562918788121762721695912021447134795355351689329397859181896868347108694805323188193294995114626917520995561434971688980500447388718464500233191382495823424640230720608506635986246538006209466368152902250672539707697246485160795011410716899480574020816481690234474747242092423434858154496466315509071063002007223981651770677563449022557228652595683764676184919731107187016570258334461327173372825510834178291350108017221214611591200371567400341355732618208687171473332768139635429370187321226985500707774367960270859304331331074774982942791666531341625152648190944720555737817254997558294479055816342147252501473980857516349690656760673105934094370374734206733565460337799161305182178307703615232396466266717135535703456812550958138165635550179643653082555895881093353805685113365972684571779259943505054234000517559997028180272453625182517785082746910958741617040309717824232136873732673570496455327709573677512395457857112130567828359589265390943634673261679876862000703288272327830418473743185554155697108757908848324233708617407890461128214768852044647626344607279771090932431015398538853387892770614728290344522465514571623197427119234128369678546876973644582931766002419795368561701928762804504837946194180146942070908362593364743096378321510519484358330354417303984643595831058444281866316577808569870702378884468199779591827686452577859532136502252761527854006280562176790556007960467521617512243287311540823571176074043180576747345504525873849659803152845166093821247525565221006989725538723811756121667756627852272534690794305660317768143910063090136324192563638042450144884752250478730693173997719651131747158338335116843284399015695989748838047147450464044405258046068746732844932752437683602556649673432476515537566942925188170501593968132420867786241412976551686862870210801886071030443220191371299203029730707904121531357082761399399558015715866210570737527517294917176997324519838709400489940217003413628706301293556328833002385627830196426783459707289733725673235364187414212447111403421338154183336729319231133863049536353597566531880889529591955399481960117388687347541379814141642808311589043596160822686753767100586772984156652550026965166408108986233414975748132667351820939970606093838211645195363603031979477836642454292100354190881698237194151690818376771102902482865950699411793586677554069787281184944814619252598648400723906402252452213617944029259908109525275271809870559965984085701226798232941760848334404793035850234917446683677162562326736530334152192342015577201868869660087602276893470748838874514959128364101921601632188194926454820769408329648988730306086613693719224078886416701598320922569205338655401656437108590178020691567939606369459420311092013819686859467993789241348296936577534022696750746594208875064179461803615439515396238843662175541550009155432622178642921894369020330604823407839242747373871269818770098106017532447102214466371570717040584576939489426802403613801977431799671845312390454619277246957899010959613624419459013916152420597308965627192842844198166316235935141896520736404733481811163752011587717024149311765512650809948110003638633712417469490081955686032934636924609939221676046419579635675018522983153869318079412465182451591367273790859287035007584914834605589106679652293902609170978186923623436162623737209186233827807241680429718265231849734129332365438795951077990062227254174816461262670018986055932575258234810199407548941383841560127090546261068826960396984835949739545847859085551919714204346156188406835633029300914765682998430616176797452790565947388611206415462309916202574215383980469218820893067020014133138992134443201011358087496268786458768463473505034065267840853628642965151751338668552311170404090265761063881636347641479371242697488872521400865395552783697392030612880634100658739290984656765525060674280597905189740451561286067966913796380483216066105225047282718861142374290707340956928630988489491219604579274649114618712647455651719087217578239439576806503984687931849262503588356341544589759430919430027567325461549075667442056130644437321175347309657804850326470500679432288838330578546080189553604133436577939900460542437208879264245992284060794298576836986377298120819187350636823340761673744770194726201961626480655246594416021301117099353659477469748898482901932777780973470347580535407809928611713586701348413379165422537636695550674145614250230007509520182579656152522067109246047783617035763677367182099437890849015520137741243138726356084348106503475111318236898458813027545719685092038952731270224900935046211046878519788342802322317459431190260488874417081364417287808892793090668774208714756635175670622321980773332895378586148790867897852884649694129964944041249669445528263348672992386019815582509292721954016140171606914454971202352791272835222656146426179015988642397583444780402963288737236120365448097990842607619195323702784381702502979748888826588496801492721393909603083031025995895957381361993695109210040965249841734738774420615190923417511925134073080784301765747606561371551399317997415338249552635337410943792571099264664993730712112282030639557860670411134412122826852072006607822225303458698784931535371880324696947087534576994595290008186880399980365370515632110948754450549708952142721560394896435852427528254533461446381375568606877809423791565123279629425569279888633186191296390042419377095677867915537812698958093926761772329824314213465516735890264124813843460427825874366538368497503983838079708006568010383497818494792887758602776625212153780456105523273821747285448864597969431774222440038722779211653503000494788697161238442671231880905586380861359957496354068343035598411743612709600335669149456426524515772690279415761987333496529308214539686078618863133730612234697806618532989469419740662238340503678129825381444033232408068290920991078852193555603392631989368905323433456437544306057187959738489493274662773619490848848527560701345780688027060021318432679054252792920291311041510243053784841000869370857464003681018067496781497995490420121017105551714013503508704116546924252304057639553565730581895187650963850888676842625907297493026676026586652588508894283518530693050639512133225575335383342396656893211178437275208347523936871934504175700635954910544056278825796253793066625346431611851038404163691698161649552140117190756196710575580745575138691459625452510869645120816364269633432045011413839458627980162604922734513873068006550838599276590654805414787774174168881176522781127374701218314936088659707141197566397485614019712304474661538683990125609996524530351942922259865553338223707895214797815804323641566013766207443290159702181919676985450595902034893685840089659777122325564091807718166376780489295587931853638932874944807224758928686198857697735857515319914136143529750228950352385974266501587913429226174791742278075022851160192464176175693281361185594320426425105604822785416129626326813359527229954385230218013839542364814576503548588472548241393235750945467323193021468427680787755992153091531359508211591324730556012642237751530646572692588544444185041060011790013177801231328641458097377441866866395151650284738033169122539327173786678598296550657153577802557266351916396194880959514996162482451812289690538049983233409902613850364305906340771620458807886070585277390413860448308571503405438631284221819659022508257783834911682970046296123795057503961863734815251214757860791117456276599929751116118746279510532706899926001533016229513043082782250141396358857976339529089483434921933192007158913104105974570613200117445615355516364970568243671235081294048913893602786946201118929342216320708171445972143067662483676792286304161065731639112059974095208235671425842274325953449200014444596909311336779901182692966077039055058734103370843848450851723270717911219862109586580597472148764584235198109352464756043898815667288354233384085033150304323896102350612530297944216603015934627200616931051559632074441705718723611911258373726924948837645689713769989335030735884104859116769433356409484479879408727876370497092596268417263224039481653966180610471672244146815625779971203618634626018300171327807650064614891935133118728531082045214680119084145430025760258528239164408793513983543125293773966036835594062014360098038092995517058518902466796900712616586247576114105502181899524066873096747464250408297796625369267862421017745833404522858510996463321110423791399459415558299718914805202202646741372689911478804818636619040635877497972996018012682740662975544712542598277545360747917785816542601136598213735159610351678165391849298982679627050845154681364790320426603327092846378141071290062742981972049878469198060915211330113268118149023013920026971131684855785801392948008731900495603145632306184344295816740816151659978103772092982974962844930073985582294068597967954758245931411586701040739171526655497767203972914446881222017581210215453232762854531771271356547348607522233595934134111032059039300003094152832787734001406542074462642532400665704106943682141130299909334031502093619820385298089033137186210275775670678648092978213843656670795929998410551629622089634198237837434202575745906623169258219541293153165085066363983397748498751764632519730474868428046493125944278469543960746448965956120000277664553225665488168344742375091120139157112420901646639491961665673671247210852868734567874247978088749238664299820029614686692835613976339055606664306706697617382248777695058947475400107526815390247797842518836837671881069906471780935378781786430752440858090152326493410592053537976616397097545112608800643879163313308738507281779340769337896118950285468691911399337791250280262413268917114639303819142067219514511463925036567940369990075687025030189524206588635412347870402796012516605268825518893394374999141551836221750306540128887947498363791146434203013833508699410103779857900605434669027065835630649292214472338429642676167065495150432658359716000513251109108139665807750272149623746034411732011765755576021085318047991399896187030321343738099491330915469954836880456025360695882308639876515069716294829572391863880405064158435733696321785438547637303380815513277642270362977206280174964716585703088127493573893796924879879981127394792875668944630496782367719694706602911400536849558750850262785695427102444854092148972903188434054037758140234061456132722578424199681983185748176890309632233592175662136867477026006165180099022265819332844739722012896489589575783909541813330260084131522510979086609327103769504278341399265208499264187090615529417438209000097838472623152895381731048720455755191451753389401303033477488505998743200681233654147244294834883110416412608248190385522910647087918921960920560718416354595020205548438188860820679799530548092995430613378903299780307695772927598114067035461082633791631749368508852905930857350008406423315057195693131180930699589969973586590503030637218071533470924901068606210034961746018350878994978106884343615453971468146895887061234412038051048915342078138570876648211766379072353144523240111854529641874944865927220270001252140744703702354901380013925704406670762158200386512502201470349833168975201650736755586417939719049220005182069054146375327708785255670883604418837337358645292502716357848402517033785191740029031711204085674767591452107577569497726341563434499780561204228341725924463677186048992713278833065125860761690503423478134565717975485731466975268928374823359418341930516739631745082757513939295544000073196391115627622556894269925126166573590197862558752143321641459410651304561810704450008697415982979712011996055494152238972363101751433111798667818907726640286039393914333273980887070702163064302988261077937863340443966768410803541317786073428661953924769169622393534473963500363120923006100901821260491762854297761278661135176310242296331470044452381644777522396565990355301293319441946396556033040278715836547997972234361344962241620689127257645036318389565260649336684702693203263362451725364870305406590859939493595974597881925922448573530835438152200212315245605710771000663179835205701346104471543907023520270303373799988199764422248070736983232372437323697212606458429274390552685811141677228170548266821072259942150854168243347392248312040526998818725676027186720991498860240780097927394856818504077802819489898341011992652894125330119267584366107570095318457776818345405174884183147236773385939912362237967807472892267548594364370424512300049441545526112451634392392860628427792772535446013976794534243106800570009623904710034573613703647043543361981717818679965728203010458866257961354096088283583016444762059352227952292042319066248411057117383594458493297474535610214224216114493300805798365713061067838736507266462031824924857962245937389152800091945559756658840616850981590833137187166073564401167752500212564435803608211674892526972417078829802668096723424652184590355706624677602170606535350099405704972213373335061121115085550522497322300845172182482325997876089428683989998304321841586407433035501181562262952240157827601569454511348218234328588244486183921931397790915936709711584201247637265097621517584246044121826004068098022591946196416857346288790413504495121231864222135399869328195586502358559683183404268848932722975551611588487467844947588625066825410784801989621784852045631480626536860703482025319984882886281942595436638879849355559039251967843368825469246195858706525880471533738912425258634775802877916056907055398530864434003717736536632572448265346343641751599886807089580098994482340581569489521114407336841625709017539113046004614694563152695664429473627466325897984310426131643853009256659477955971749415512610491673469693389282123712449064177464625835360790324738660896921983499473605209861932480690961837250697654648557373204338309435056303132047633186026787484412314576694561397921197397351786030312953272097491275632735111496030623074285005277819627671272365750825048133923099583421898361955842025763275173833286624079238993800533869456927437231936058337561406359286201674435681370704203210882375901786891733214140222559612318299919552002913372517735497702677121689426692726628934359294058778382379693400280518070646074811134996294423527642529041078114428882205981627273542959351839059873409101858904189867805533155984935575247022187883241983024850022250224111724997845409955464919044288151265567132363785778150656571283170157250317838517718651979612402794784911525617640662416012214710008375828573693065829359960294517772416239900448741414486847003443657358102120865619389820901158478321347722733710850421079146708955828434425379954860015416836894179297564796448625000926870149951561652412288693537887200061299632483791816624604071456553272528261072095587060756498791713959294325159102395359623890424490088068129205675825812927140855648549723579643370935828309202307476559601021818596309998752125894701730643353232773748593740784193437275308787881895906883159253295985921584083756061002598848674350395676793146360904172333170598297887434365083503522666455592596046940912026130361879499057172424637897027972407094677394844233810684664710940599132062107573922854024550813860690141667717064055930369308435916060622708431088037142446892169329458777212048236457599236252266178662555469541948943561799890475879021893419191711203595157624458690782517410772595083542002579553666927286593857914356084492715205416743515766033528907836097075026133871580725693601863311514502040890337647536036444958380651227570018110120797107346961433148756772496027838132689404420151042115885202912270551087217603530812788803534755384176546252294302082153117977744680685544118670630545000223209332879868057249134078005749515103635215987798652133990821382580589704649555531450615153609811956139543109740061746122799359433245782294395359448695043137949232705104374895321144241721084194529903787943081995304356742737768093984258859926464403492452123299423618084062122554197247191657162490124908998393988972355427886369268614749345948689069716980262673771443612087179625404973184122521703981023923997276657853534345668688964880165449894867757612513001305917652011589166952839520038491087325109699561221138655195544884464460469165995417615651038744686418882387904367989969434182559310347789368587877221106966539500150460814403579954677387974474525470178633723132021187381847653068697436465616608527014285045357715119637931143074482763638414395770030772467647891375291080833944078354860864258542098051331942895596439885423300651294066375506362915887119852548422152904452266950589915677289656969201278149017022394694823044967733626767194928122006528761885251830521152174710963607368092027696006774472028034531421569681211992026363570500551454090904405589071787546093309142317475791298870393169635313891439197794775432204751998237934635496630575224529127718277639297875380586604817086633453217341840663261322289014544353311266599971100292875011584526360287834543404137656338065304241947513814125740937401785621012858527009854378300130046377286667221816492233200944302740474136603096506655105563637712672909766712174167896358372573264703726518529876088152738261815074325332333695699132413732032838492503736402912580573146491535452713883833231917159687086513021720384484717848770574805717821919315001476529815935158002309547824183973809710777955468242389974207527862950122180829086394494594333425129678284200323485848197116893070839218971381318713852375011119014305007954603140950067369900290492417047140110268562561577096005882079311698496143746609938816217164794594126379534170837536984204248564414153724916094832992679893856414920015024403978630316040700382419688438913694576070843160237422639150024650540003392635251460837729638260789300581565709154028219606658754847053170826454622991461658682036063583221019124208343326146523452335493697721736089840835757847403430706067151969189984936271156375576693998931815045616355945907785407869176251685255757469231899880745263741189698380804833744392457285891590357613651926550790833542915080291042443596146114413039465361965271849936915940632539115634399779358337050060261570454657643010822899904440938079210565583559438964803340166123146356564550598838463170157513242162884572071939332311234197512368896456257409465234097152653443696646233511445810145330409604496689989761063368663632514387350593099945612881363962980189052885739967051403694395463866581548349309432433920376942165345953069159407976958687039755182234899281111251404290007149878103565656957213476845405420673963706397368964073137549976582878842075198744830408326771810986890071621851196668764837167377362535588171898785624036028951514679124225583727933021042243290352687320927288657730285885731910046238425496513124813427573032984906608469324989385867693110007277319707640497469510329030642649600839918252382387459986881666918877974462225185390672907402672745539380400020990019220351846704754050788330120525815445690949880762852552364345151653642478196520608875136698852491929005479339693325551571479800086540408273174798413586500266898759903538310927368904146680321730073766533391526645837964939114292994209236562343728087790851478556792508596292824957376413291013694612672545744475538399065249644120429851011034785055373543842277405706165570290380286255568415381201667603058033304068556332373467361034924087127639328734884494392787028323049181453722156257020572381831023176797827956817460829549723821231766566989405814800050367035924245069233182677272584399886012609191741558882656654529593523335303965153260023216697508843359293690737843324089934441013652312674988622357811275032528661169228578747753487394374809980236850914193454473769011998423214318880395686517580620340656166531577272215646602696909033587505315931582139244694292999696950009043045442769139057856184866388087805161081234241334642670387755291894958307791695797687213931697024793751225853936297338157953833294259221274664942084917782767920860178877638699173045552950214294212236823089519569603257899176822437991282737865748538126358582909221033595345459543070617114295647529260185945744944481806015362533445520149339709119587103965527864492839716098006077559077105011936942160302079287801653472540541788065078958279781701132199592368438708607990702984359404506881932440794715571605260336600439548066446848870318284509979730549726887444996844012994231386298099874408610278863957471539686726570014205401989613744666662789645231138964566273474867689117254168182644887801005751384434062552315693968508412814257220141949370820765243433760552545317682883926363206897548042118282541392501903090040509274126333371171027442374741753927305619017909556784499746795156618208740536302840948759207182609558382925545704959610885762034987425589918691539581413954712139319370852582756559265869775163812951152331784240625220327788039639458567209515196021039527527168328038138846464236686919368017796901551156999914618499290070098937790216872221052747295693587989133257948752087908645712117053601225137880093572926632258219100401647727945521745548406443012728888189768873083317624493003835234093441126363990139711905589796055403799301520647426368865325073644407416881261823970734868610039058823582064633564121948491906576938483248705775910194908835597871870924587095052805535036877052887173702431741543404589576579704801487410542789959931304168032484320279932546779597087561393183264486807798424143386653690283812627898162518528449012591734726160010276312049477190336674725976495734231088131629344173469404166268906742131439316682746921554162797243477640669177196554776385647984754918937501821208940377355211456397857175620070443351332876647974259230013688375225340525773724600417939775573528964613881200088160627105514685991296811790064745123957527466151563687465238118150811248360786737314164329556114936198900565055025254430477590912456399232079319148256499758466966509105612696593179167874780967380564775497787048282191542322303204052083731509863150215820593808738408350073094424056067035793482656747154021282621804566770400937633343924032730976663713122608196129204986508042331498248505352214761548547252699115752927509513350732901625861231102460324268961911588241188448046136826227911053873887492111992378464313092648463041631057534986645340435659971958927168200489533786585552104845840130392744020482060582851584360606207067129765327363941010156434174849601655849971736342104142188832501566539184693094365517641779617889378025494776730909162352534010626809719111947791506415368880837850201580566241928854586879313075844891032347140573286456372564350765907210120278240876037998273575603817090362197730774551461239216810687889399863298987981331921738903468865564805458271381631984810558366174912991724987978897794953673805297163596247379533814838692383288553188830418471470419351768971545853616123095072015594253895126132489806639120097581699297830219294681223815219987812880093168199795587231255159079639813086715670873518373494207617334365707939025011158205618673297235036427296864903254223556395172281683842067733135492089547216628667815690415661434909720547172930849146014772833002902756093970024885698866368229477708825034212064023307373371553055068603661335739937147745631111125467170517599518268153844713959934107311798935736946708560254587657250178406195225281155348932005004178825183208448711771023521766524846571347462313225957104753254302479005875656124376750364025795299247217229929917980763235963943601844891678677831290620443440685158644631258753279804275254956342791386397037984243581245202453598878487196028141244315179639606763198257206319370712680390455633124113934923039820384606894148683199019708620359787123387228317909528158335003501730353506358670324731929490068392575811992249771318715953185127052598903563895866585742143066029561566552150279619632147612663042762393466391570844631033113063496006866152918093025457953872879434652709878995668814373584946373369378826875241693092279649319779358635447966860387459609402188134130789981950927583493811460394030900112135878177893051952470227258364861003351723861637085204021063501121183084195781706314770609034825048066738918270312182718698716587820955693301274925539903793236123607689173287584968722875988444101908597649162206928679815867876821138493571291148434629907029312221896660568770488375414618548409580225065658329677210952676407040101902713860726798646995470871202657051568971346767045336073152171795476883677058035899960028336220586583484204444657573536576941024516505014271284425404719033712803209836849861786375573519289327031643985023421320391685407355423843557935685290463249517386159373478577201538357686601891354472879152597632360930004571009718567786478490353169255747691708910952759862582151454860603371714510228004298097388847249024429736101854909356244696338324537061047603474464295369056040345877242315611314685262212979657612490781161779849328887517895574976435995281319643662100774012945453784932002184842657190963162646526717422629610117251940756484993723905578764054736625464393655431697375377963940256449276957333947980381009265701976271971930132374001803648293072535467286083243736837342897201895106974033761115743894037882892329402009021779310596331178855216562698560848371982022445033206868702943721143374039290941868475362978582059889115088148185029217106618725032728595131230589109816453141723121181929109381600231224621443177134409808347718824870678320177942331373532710864604894579255322868255661395349308415195103720791160762762163533729435753870258822866321914306227610413852666290132383505099411430825462548305812306133715632085925651636252096114622877889014045918309076755908072113566218835659104306965833657525362577919972558730294946481935713432631709103447396303060181286914959383455515920510500683385847548123076865339124812567126772957376663567333559302097302070387031122403593216108881912261117742733584208263967974994182484111347221045693093115485841661499688921916395758118234536022342751788045883892653371597761413135181206707123509203152246741520149405544526853006884003847977252209758992452723984683393185013501385271480631797650476096403732873870451792090127420223063785768563356315507527371757257251902447659340422047386435911807447109134329749090070792588466329591857815104929529386495525112148873963482175361878433124586688696486714026594845105588740100398119487867505654489025011182673106377053981303680571729206039882661554262043118207873144127499327261522482316999745623647107149567871149275995101181428751991123101252409427489718256008069757859987321920349772920980251854158282556736477085689088610863646229750193103014288305780821475380462430934951427384897500316067583710054201135037536080864282245673896609303128750827035776159214607099005083505413983847388871926653031909679772781251616439896528944982000504192782626381837829185569425713741122172720550224171265492515530006343163694619956383507250749054210046712069483224516020188592136341191844586814700370779461133310253307812829721093394997336881558517876493130444284622241766380518273796968641681459501835352351988764797992507542216026885105762831995166967306722787647949725887415406156426800794660196839348106052671541563882039318120443123190563132206187628347614173374651079431744316669383776557069868128064664857689223741610300877059888541324835174535819846966904022425665904506496989791422594873476512718672317220490096782666792845188018946502203643994601717549919327124428930223863741615511579716857835087365126328391165730541559032479281924076228747204163820968210352079412339382387893905971217638353886188228453517632410540351635362838003864935979953596486979009191110552953015429651011328912476952508159082782275275598790455556884886865086458594258729976724349460407478754427632820624036214466249390919295958755050924257856484780503658401096716185718017544428039831237390088086472663461012706622109633309527828443278455170297103356260661765259308116845049068035809495755266043467127192677197309083101480031161476165953526653809211396801403981761659190376185005737195502683663772057976830095622953912624644649987683545196826314588723724793433232973573745045430902407169011925373760930587300648352472053083040055759203869506701117902566683944450418201696577729887788667631562122289153488078548619797681430366779748284013846065111941340695347428518313421654926949201140004184008037394472498908069091340360900882543737188793998751398379780869020767066272655976416222280947178676925303744854858700044262645302326540488933608744409199680137424221168430275279003285997200723792064813373487962948543170203014178936172439335578331906745008818436001903139146945457051398556471309201044664623638045069691222232719380031132559557469300047354156166651104740224109546983991873432579544880194397088453969399444679881066559281075308176445719097792155626893532647292685099816971019369413677428526708178353525861408650723611456844778533574719783836232902345291636831311744861172801256362123781234407596354141371432614807458856561088857921224868651746686817418180544947394122089488824189908626293877519949185721882566390007074984740790236926696785723115686411003513499571050558938399103845673986849102823201203256460146971973486755898612011162008202788781262846001783959227565712583254286585097286218381662846224045525095334071208772584807452852330244981645275833988765510215355183004245005699083082659952641812771408191462452302012661047806941155968089919693297627325258983915611535132591007466210092198003149737480948791034376214662364433209349202530788966359816452688602928830565278458573276423460049305321414164391853121268853699056251955568656114585286967217334263667175951603967295419125507795029496002083442668837343992962056120951099240369389427444526107670088511787237968419793809715075351606601717952994447427931807728919361042210288567656544948745066965354851805725584078552365191214206600783077409208630946526759381784146766888285887735746745065665682466994725565673581993996079689545184431370034707941876961654669136241585462833138628570378824572428485190460652505529954195688226556039147255951872956123543575569519964574493860746656229193802754444932328892858898400375795351896284392536222598273912316145905534428206032956861662822581702406291442434014714070442308065608147716174074943900620631121074222752079048095507336400208457006786817379585229497666589671145729039530801361629190004887021959883716172307828702791441201752740251075720868808245144962515435748364824645193405997796210427722792263650684171763607702908058019382342645283684176993591731682955539220557093474131349254737603007520329263882352312323558258266458279209188774288849407365133078882229962653711330767308005437419340030252204480564763875782590546929801316594912470002625078104293564774210433952048955967636633089440420252733827637479834057722265349988615918934880758196852796898569315562248100665692617948605625348129352982485151138754461701097627127585737561221017687649286861303626680407427962159253725870823533433427577395187686460917354275904978624151597407263778770014532321402891924395924623865385810934992932661998966191707715759496630476618265823907134387828170120256003178058034880548719099679044980035947054954630796701742221449003906015492681978376439333662454499934668514531769845683515760723002828527132053627537201277899470507041081824060809679896282941465710084898688805213952693597677153798096554195125699992076601019473378056831105855641248098214519423470494054233625890442697076784545169763763406865577259812657266460653674046704911902610683155103216779394249549801854017324277559628609535378654356885099301998452246798465290770680012119932882641596533317832073523981401455540272809682632578213928951690934776930722188483021444657294168495343564533970626075088394913650611863985585332892815330754069263854516085438243076041832079527570173449946151738725972384261209751062927104377580074571414891046086985402050651557856136063324835401127424624900170406129160833843298256234530583147965498994013573620258783310905185313848358370114979018475025504333505606431360447108818367532400590312903051159242822648069333699173090616188561014303750221308419132545061803425769470220300360667998225597924500950429903970059252627075645531168822230566676793477512500731036036368233318538317172033312204771002425455789632003044952741418322415102272096661205300082955813305012812387195395190839763002023474192722746671646883703365625593134272783911513418840124640813458706315122062180608406173824289037521493995407447516847273521771926269510249880062740240149708347355224420000976212328000128819977823324614264337365821790122189040600043818370133356215346288654468650961886818436483155335256168708172549605144332255795715380549484243499964424391772945212161889280804944961659365792744640962155112835794988780494466320563397857339724318130760748016110197849475273059172750530927465253388427760683654571967789722001837184823333195183359799188431004602416019517230773638565760873913770545477217099894745648535181536093816762789346771155498627051747041660205779546028968400174773415575370870612683343967299740243405312924664863614831063338304496644576664716016141738942842139549608164521999873925630092537939680059880688611257682656693773925088065623981961185598366310390860315319210266548072433473293437372968707801239457998654551397790290357782507801612480926073417991531942027159257986243155928633066928553305371879190736406204065382989059439002450685229619156401688303674606659821936784340716412730433942807470450901684638063346979828972869821903116164384980404406826370885728067528023061187906470708815851317988228074687805856060237132249952047810798983122287730826715663392647929996697710180272052672557551094672805601270828362971913608459057623784055827562590807761582413123020411146107277366204081155899700663786454246666632959694729526405022343261059686057139911087650687790179821972549180194337222289387798574155427298059680456642201962937561019530323422191931069234247789601074463668369659549373021346556633838563827034644264209857890979279536027097342477160129179882479652850066132484975682639149621864115720046813648155492530514487694136494238712145729545419176134792625719511303854899638545030776246520690074138109816052814593383367185579953521584687383896572238646385471154435611554678062555186370169427642813598029059599532963336568348834141743636112187566088730340636180245457744616952490954545527853160809558908544517690753984136924231381158342516734965601483938876970855606425041709198032367407772255597596259705164079583501969774414503495322977223922425238891946854294088412618402773869156800037587507530888522959294866236600809839237284831220418815989047331209728186799815609654591861236717955406827628747753144526491831225052119378337838096800261463366188188434667422791786423453296635625065761082045307959861606572287070238529086500339167343199684840865028738413028526377291331024259973238701425866939810684332500305371549383701373318588878907209630854603022099663275203688492707152098342581657294818158096100479129330265461521238010284930017510603398291196278947389288157282821269390708954060502587591391702636047625963671888309448336760896368821487703431098986475021439508479903395571255829717383069338951697416814957805651070097336275468055177968338251160296502031601183674462805630785606257491732054338132084833921976552951176546279943057643677491642990602784124596523609214711909315542434250617213439036612038700047981893916871106183229172087798919767570055094160804218780878666224308480838049842661940309215327989581710014812847927735102032252445950906136862599455964597281870814512172888662639557722867716532372890819356784289960624176323316107184081918366949089982558893942355710691437688040514304324825319213325374867110253112619270977334677473685408543412177317882360959748207086360437607293412015767324311269037495073074153132673146770586800558837160755664983401211828839271021116751235873048015262916448551161643965589066453078955269958293579406733732991028565532829907332359732965141204753427358837073717597252977781106414364906101750590385499187262558228973131657023744638133309568696640524101027267910341816908134730032164352477205762108903669470905136290406642216310062181838945096062103022345356462419604217257152898507175571046173802106572207552566114505950459302882997290590166239880162750007117748043359226936966236317121396360610709075015967527877441772986526898538433029872426815351269310099441398108306144580301158084181998077259366658556893155614301140945635573179776572199831926895853227782019733110584224217203081704639264704857369386934279972542105371100714787842317232900703533735224442082595600273736054834874466061840236081426559143666263438041828531604663619208734428683453603202398589341077852141047010490572159711635766287006458766487330938391184444527332752445383556866311492061464554974544006739396154213055045431553640072746966604002611650377215351030899369330394524232863802859350425048681216053594075470459608657391916484735348300297833825429755202652690157550814654741923075732028095007532325193608960249925625888262098245897537295413748575387934419606854580035922528864839336594023045685391903475209885972530266655856482961304211931393260693981708150901923847332915646635526678639017200122700289953506957107710129144814042446791284026049614291777053753789165669488523166862320665520027466021363475435628234727845332265581668400115204386083122878458026953085371484434120194913562295869175002448057010792431543286722712424353669352924537039120559204381589214747645176787484529560681089324262541324064681072889078267859554562943927480468667494043082485502525787851502414891236857719931264095395830303640624449155253854672354080906462856463721233461200707684882401701720195108489612053082278034723135802826384770046961055642649824829096442993199979177123366426357285287845748453543292750703277677233031760732200806761761576046331857579800106083241564450177068541958385158180719928591689974574585727923293756153594509622925138021350352551984204392727810277873091633535887022756151634707081038178935579809394296837165479756416550210272693331897563361202623696855387568819658803108142527410234264547190921802218059413618461906359318389940619735651331050873527414991385377780420750887011782193555081600016541758595467304367770882008271060796525816951318269292038359922481993621738991740103554301067593063012483813909322697515151687308696930349993505071959999485284838033802645720788158278854438226815634721594092876042978740763651734915008493725347290619846013034779377844264495138508101840432524397180335378582347264684456122242148245779944447730373991331331209642906521212534041106596791946075863627630015460655366468637234958243171619411559700866988575442114758581309878888390290896127929592417971712617384522899748231518623148176382434640960708653528260270386556868802253526136736283964371905929908226344377764969671496487884538857300462472467010864163464084277226075513040746980769942207200292312175895529167761601912596918549183627228317172719005399570230493015078668449000137571459039589543553406163624099518116099287026169391610754959876110290461337166399466986938063112991132741579913619726237511478927408136909395144297351952311561344047016544715315575450333759815769214443817602921704715394482027484650019459929512183621582660737510663185253705104741360771164999532217691743893488940641821682772936464045091387245695106124751268853309974931000966951946339613372768337360176019909258733067484362758463649381548864715310377307046776664271368498464535405347206818424968498229207357839389131216041337874760662893532475587312175723180175539335962029304059421087633077072060180491156754438638035380496813407967273604489255970372941170351483224001378509650830974716355426218045629448462848241929882191547067808010132189084463310141340415736631948925368449791747596269039488327984367076274690203668331002020504675252041361161160861258241320580802287755125518091414782139335422644167403474569370177094476514888241299889720392820292349317866905022010904400787392689370055887307231092824082821070671314976454217775995427848429935514395908048069860197744712068329103693270785423876088994159600907993375848117300292173946705135972523509217362374373027086457439886082970951281576509803732406472907915465642797484187383937122071417300332613723029581805257840224587913416023022927954759778991669538612200965415167793177009546683224237782262500187760482224340757179007590070753163412488026874553818991883862067105779510101031911326021503802295204534031852988911027350557239361267400885753869293043684406658462360878574951961681544069195074807257102059602905882729109634499110574235366334568281074289053206944913688920999841322038561310646252806721642454373834332305561914836817949067556770072195082902972803458932480996697191161032686710282349025366438805527617145826989025172795083403863949072906115049014873277895065566942240118954505909294715662109050930357584239897041836478986807841918802232120873115389290319425446191574785106985478816825595639709671915629415552012931481117952127445569450244746738662176761640158345383726772933864714801165619130873218830522860628588099528480227631920128918729907172032392156667213311704269491198074676859149143710253672742076418393257700365037763184224518045695373242316296026568757536560132414996987443805970126989747773972982223858646670544201245472510008965591128017996251974893045798640199226035378483091735032041252843610737634744440589027225289013029207693119332754365150550873456016743285821065336077780747697497460678409968433344524352907710322902298164845622491418233891022849793430515464555029609597499109547719972191260866024425364776535193563375505208701180299086205717897919863978931856945300092063156212988330380582027393739659344710839994630620236425532737729724777062389966362707656720474134448916071784166469920995384890775857059764583903231302239844789996572590102949778231087689192606550040708635055530002099479390584721540684317780208386965982255154482685461097717561363674911335996275685618141854185327571352977807017919569999736046319432459955366094340955671008465673814801693535744775260102506108926142442689530461246898026557369455336087641050622683673988258807713797140931101230321435978552799340106065753703030933874698492972580180462804575221014527515387827584209743350521057031506810211271552359354503438172121901370639792725988266546563764139347506664654390169504926224427049000489382948376518463747713761638633645461988788338940102107427124379160689845987076560707779752354837474499949771170850545546820758225658750455522810742892999752893114836786652049969297974392907657594396197947174222998588695599021709032724793965292842724435159468386363208976754649119268063572992797220017286135168706120592415910169477731145657616344912117174364841866096207735534273055664941908174717407275016575553031023254833186285371331615883382019905278662111102222437508855161902108036312246298874732063271874651579710583065485624440115999063243013946268924987972867345858906859280387910947236223988339605467823924683693085371811593230926214491955676230816374490515451316797077265505353637427687652725557777410763959120488585663469600117587990819146141079634338972421013008211519897088637078654670918665989126535330102121182142491027493874717087865101191041478588792094006953417811513519054074446721353791116736917483088657540910815572312968885899115483938309362651144459667722638443820829397188193925077228330953486216043976240730691071347885795155283971130468235064028945792625824544080499936221477251240486934704228080806865478493662903775298150649494221978478633584621153421563236704758053234460937121807224937584314094660687360519869129838258392310937111854641093379674369165031826898825773366903539489879242430050835041218211421875460654953390795423577160293415362974459768323816935371562506211016632117092843781456503051935667143511192707106415935508008409026800331586616448513546594055002613789429887385957241731135780876624609701073603530480948902897180099805260578677607809975200223136935623306487496786210384393526228124898003196660602120596426204151710005756137605339333466409157421977635579899747356616416398407376722561982494583700518733003462282311024146093573902077374881312846964263517048574246014190015823115339987149567189579932881191615028457082107021283789677814856762519679021163384168018263184398714345771602310801053795379779886644294220859560624558099181326737632442565905188101121630444742536615006724773033441122780588564155607257353454311565194755729553634154322618003021927973065650460767072593709741304128375237162261451235621647790883128220894714748758630893500583416503783217635198295774085393983500723306585129484006391946923284911340998324510882532599901987030265404011451075333572417309123542034106820584017899074808850608705386699267611971213233377135672279080224135746663860225039171586770203896716265821475218544740068331728415796871585075745381839201928256170113098258299865794617548711783798303221986741175024885297978644504569313188070799008096656859528688589336692044026151208636209678600441761701719397603615594740493246885115644904019117359336012517013568948215306660341350923058046955290278520478508733259278308657060879294662552630112212712850647190956876996723332227557862783313969339656165351539401579466953299252979673551083922479749765312751047901872492087933048959892623425829412535893344282713199135956893921898957455248726638848387233033795072431128762151855118751355672989939833853528819339561173841530680783353264064805694482129361281343541781352281558308432729361225574012293461324863763729239950620870480496171789234686975412955575984451980351948863169260175410670525396117172893822889564106348274965564488731278430042465760752155994758668451429159779253519185624208040466808613547851502039625868642612143782236222693937781374471779169255465853352553816573101212739891169059172298928773672303462449988889899187670585236782939619846872885661852804755698457933647705852171630205081284759170194005157293312158095976268343156541908238480665407701969604451659735364351403586588813998449401754281644107258820284488518885628723190671446766785606535740502716348191958509807158479756327255135185892167095588394257478382299189886210185457750174930204169622500232768755536051260634213479496128145466505877364801514511522188344092445863083299457709474101254577408323206536423320887198750861352342204454851200085142846315596997803198036704610967564942960748216131732085321029379256341218710331919160640461574027231766141571820955322845023516830905249644908083939807037529541470930715996822755423434180282662155118644578342779043845563072401191541009898479057203647963505002575973485468272107064809521614293666007000483206324619213551657974169963679152683624229061391530965331397646507746762154946011933491601368310434591955695111451782568811467745859669359350484462553489277429980034413290206060632080415203893664879357528853046050420792700886025404623426203692255550833554576196466742787237854747587842615579920028671435308635049115370178732855389258694028288666303479447277137328789115435871392889856013710249203427361856252659756615519135770566210833187161014532747701402925519019607818987579754949219269802295687769484533890546505408555283407560270732789152021818365594774495400354102804547428705441407742459635419763880412921343965181500921566308992025067542692932135241156599242114196544972495086913180472493500510492442907173423421237033520706742184805694697052725004590304464588445430334432628580787202304956867691644567008319120873325510237349236680948540665013857583561126168553571755002620827829787231718781684278119631358491324000322127188791387871912109391552548042049324805818734701166238693322859742977150993591009949576957680588913909254332821416502129287522445323265533510143181117340255803566829225418691041806646156479004211319610333843448016107489658986204370391866554615144396633072527098623712146556635503617925930470698113655923500134173986831704698365081350001819038745896262329039886846112622338800640389430302690168674314228517318253180239413872480297385302159509065176328940620361046155542967613880425847838066895928893125250038113078356505491628288484071001263066855165185879834396945734175159144567452687270552648584594527101343752110241791544825089549152979601625788349516251173128497437988903262826674106506542028235586857906509418590050379526095845580938854167145128725006406033059541597339624483786067638623980532114679919356576923703515799421158326068662474028359809573807577333048200817007226607589783545513596056553361981073383455422796096268637307409641161799104088513452734293555234039800103533264687162936016423904505765699157257377773213740059855443381993129533154063095182985121523892751126913081235067919981841544176020062012131364364348708945756114838574175837543132458249392811949275708774832003398117785457772285946033749934800029636466146814622396112470457875798407825191944454293598947265865186091814571739957271529461398907395821375564195648942518026925410402544078090439854855719620164830656786441537255304083135503495019318984553840139258262464600828917075369527809955768819258858158883112942705839353909039760935470617844029848857357365865406348557773421083298351708870565340469407597157583093659511658184576950046379771631281452658548760935224992262962708272266114464261125203844488352518221046579927680014587322138458395625464696578989192324244051773159686094031808244373315775874624567403740699616010775892970189750019598250119916486631702337609741171004835122115811190772338531848765376056823219644549097885754522515913322362388011244702978433059008134326330609701475183779156653113847021003051487485933433895553379694067612085396361683337860785956304428995245070546944767498956836346294925829086699636784749222683519074257451644181367868768266844041713003293918272449842778172622473572117186187290952983119265281428758868035373887471571853324046298205672728048641694364939526890615933093423097667259817639237588858188396699999867885521510191974858586712136902973619724150333908220694373413798357550754650446473831696809972227968842709546054515645366633537897096118634311111265207910859181650578028128293646189610171362542993986760746484166552717282893968707547344327151479211515918919303735141088924088616458997641742412708694273558713960182684394389688846308391642876076665770171187122854663262324561342222277956071270567762682884428297995262412459594937903792653446095628220439845145351762986759361989587134195522059463364144337363252396139417335119286275734157842200292931009473406150238466989463759290691387552662696051409724386793474965552363065322943802285442519801200729835114044900888242813686201702741377923731931533362800235255571650749847985769061830895245886614614834117716544327092214267465402819576960377730003206340594873213935223189076841614197868153933344546366383683910366553110266925266590332521185911954321429061402761139236858682767766268062520574815139191463047786338928097159020158199767165852360593787255037992069423039359903134940611883582526412694941318752231321509789958496346731053371847230725840259265442444629088107336932422833795695090447023344744444138969408577127018749284872279351852252091301386953311164200753876001648315525355209095951533918362931459310749267963181888462655938902177590587624288275768039508094518927074013299768034328323171587335158485512927483732197789174045421233935446546377353438144122180848739638267458101589236512527304078256090543414443785144305647597307168859391059417791938219440654028899501687088629305752087252325490564866229189604849056469502623818929704212872413954688039860933411713605151039308934181637311941785218677835787029806807644534596466102895202927417163750371429138561161614246331560816115655421113161804597960339883813293244582281873107970865864464957058331313197075985364066450571328787759519773212497170404043692362834941214942963123280991184209898827426010850705910360220123868911546416761136805054124447526855106755686300182318379348948689511848254442864041548365343332922925645227536428110608408138819731187453437176500554838433811880791536427377619580651910463002160664929846651345527289991858260827742724339124454461907788619578590234903970029124159048464180928997974782639494207428228199607601126493750597494145663507045684731382964420038182427894546739499679397061810964020645833015043234912269712889204140029329767470706111490728850410083428344391993488255592268501384047622590314424863407851561727443557753354440917517289822612469503275680631703744346966295997441874765854631688755694050346936274451377812566597507003157115117217331012339672129737988926556053203928101541721812261531831772946804147933619261506940220889692002246071524952248599504037807361512770370870333178241907853531979223111521526082927416727006225563872865246818104803673885706119966400103957019046092008404271476485127689700104202620430982746080167259081654816459056586265195526259954009305062251544987708644379113116335147591415570280243828638774942615947413796226882020077797903989269772682029129567067263373208984365490799836715280037244805500712788229222169580715180922099656373226115232987511192187730896881583979912275578601415215074799921844406592971225096899147074602062936866153123896031985486096859390556863666243656303779585988539791799634569519011376999058527670432974668903454182408914652965230575062857849107443491615973911398661335241022518631520411587788219471580570663107233049961114356507970639736063594630231436159018259204004058824005184982964191074000128312220115095589181860987715056404918891528212470034569771582469789693966815978949435750043226748393446374658577024907469173000284768761260658182536124815530101271288468164659020294622347687534467262305652178155460256533757519450212722673342291644695141947714756668406090981026203525082701915075983090802341478281385908028824882983593268159202636844841990750036322281805769247528020205210535341753944080525102378317126198762811287772067555345707310285039280566403201582969615472899986163788145530784687512664853002201308830106938788387865686701961727789949198623059859929092256400883117930217163844661516357415824339376587678612258117766933476411560586529189628322679067153466891860947203165135651589308320560102160182887263627599240254695641574325485768806198990508263863026383699239132469156267209659896727673239751892402188438491649636986923800674328446412071830307105656390913809338530988207723153297869177856462130230707927314284886320724138335760253356668170155530245456497916285727864798521349747438198291091460006666603805880150070029672320206913029960820410028972560037328642690491660504190032768473211128307177790378724691193442500596408078952734173394401970175163086920194348565733915702767136812662537198187430430179543067245198820122194175495072857275182255106258279169159492358414580990851947079326153876088326452287962565921819165711532427101005165188038123137281633988515718786897328882641950128231752061892316315080117519085130887992436976168147343684161585847951144859546825962427086750082757085515153602062650272538207531598781185473595516479377243202784536675035679417423129816692598301634874669283662670162941545894577049110345778455111840980337633803765332886481886204388167755126067922613602242148616802693728332892878436411388299699561803771023121800011149850381665249392933186388459010273549312167005805396574178330164485479679573920479114383967913144085986021603596385382314951768538566722686252061102787622350984690953201395257195228197503245948201639578357245467169474970664751465329683889021423043539672180771075286772389233665271303437039952861861866862231351502252673689203193360528177157020639333733195660502470828525430564367929674505767800836087250614041402407582664870161161410032323890351587920467411425493660790237771008455496457117510593416677377797039975203884864844157864437702503638287846768345268217852788917142121795013439969709875001018535369019584430642524173380998662526239947043086872642630369027730947082373544699887745398180536206687163372341663864037567424010055099180852899155060693263711968792880811491188324394404103361656629950326087590862310925283648964258578080968999156401885457655326774335252407152366139454517299723104087302659719885338142000427096848203397943828880513610336700004623760396734542943991678024959832243404973863327609333985559261686130515963823506841085162868287890840652143214208239659902164488192656119423276650138623103007391274536311086728672101035545387723105603988004976496350240646104541203908804627098325855694813656894254176063765348698581305944615388922981922687855552343501933965407739810687277004349451207739173675539489149689139479391759393338801527159251690872730066849316820238090260396186129250614215908701713799221165149128651021994912721982908136395066192737185594558724735621297924587064570837500787791911433207000262450033933232301028101602746663527051506824867742470969734544795690856656293732120934635544803073244418795435655116302166051666383569911181223637099824071460231256908741569998847004472587281175425545946505855717010032800329981741221258385704360555673626533435709054808100063588095109224924305392802674739342272017644018425731923004332005288050013352511941193316003249440516919273369258242730059380333432719857587535089198541758631637578542710423214909173010846199526156330006817359043732777849312070566110866093372864341302041241222886750587236352219275702688116447039794930830170714499230967719216728590980490078176176139078739140941243638806805170995236710611366932285356546378924530759320914073476654052194765316395003716546230644975371862488495367361779364001665325500893795571360305249229727638732003262319775642340461573840928540524583258066802838259774644444219180341829106431427739796413918881676357122656779128167553364570591441474670209739465461218609364397785177527294101532484744310872434584294067493246661048319078837698902282269637028127674733313363220543138034747818406648549068273280818016292493638230898119280459878501713764299089612830275156688343281804725799315441750901902153779083857612455560482618553187096447906444290442347112944475515198236592592902760332729801976609774594464455974501488792930142139205372618394769365075466544441076541383298160151064285577149994346526085928628997812227907559445692506413912256863567957275520885915838528895257358194013947348285682219923081354008192514534756069187241452976217206213686361752472060524647959939983918066025576456806875369906530925150355666634043001416707349569926483652310338744068546155091427597251758640783735945107487189865877709753171120724307273709811092618458978797426651591470160017504447255218893707591936557521413096448974898497778929576644509221938919471244853232970796695384137885955825633394816439965234517928991258507771947042096273575572895587633716214932678098726916680615106201753341996132418263546030311625730917340594310470556092359957232937191892376387037011968063980077172223432025827175077819792153639556243182556423754617842224252862145485592688014010253856269620384270159667064371210392938976519408943589114892133356225500243937766486540834011932886802050113234741979624616796559686092408931438784124993662949314795016140804034245962812363602728475352316898713484737318801089893039938218352833371632647244745838172583756485731379331377228229643724741899894548159567820074042481043392134803610775340693371682683110725661864440197181516013765696080950348808904317467122991665076870927117957771990291578596559280260626232612919978495137697698947891449047682407699886190417744531126485630589194862636560493591318496082426662216027341283432759492786423477077863982307154526848689599699233325294693307233100640315648002960845271936012417031437289725605828734414905465402433820839266415000029177959049513248784207715233870505106783295009200079561151273047249250326231405509715695356301407114858728949720960038370085205487413607209681983382856560125758810528075769707285099777770876203581021257146639754743768125679025505862617053337248956123281462544933621460962312186810628750973256261858219365161307729618029827981311487839429117590862849207778539031010764566988325725242759201377736720146900255385402935833397820752690952261731343722917923441968095952197044191198984283731910311771362610301252606091496831164873342188175309244904332070745176158922009325032122682000944371276280683812298012456566622596926614256221260510320743183740744183549334701767257961977525889178748303933783645122126173657852326433769087836467542233650649361110746753017110167373642845509383162231020564731265079094978041446158365987156920617126808788999723597134531294217253480045743043560729017537877062352318685246026047049477218174507611218071860699963357093938981968314831605410072782481950791169530462689968433018607817335460096750118786260285944319108268486436976550937098110872940358672030637794528823343158928281333711519695385257791095793678485234112904197710869385844874912279730958013951557778627120654355726159663698994775014560514603455636760477418807579226209244574424599568842346951626432533193861376386203825182577386510651689590108321916205612954585760925407449553077481421297302896089428339210928231606252361727848504532490217391851304546331972322907385600851900030828687209081753222625530491031425358071518461784836036791339594127218765067289597931362065973794636577430284847914642916149377870871917469718886956173506640675321384252215458597618238009130941728391630062365164684414668540789267335961162925650839114321317922041153144363212475698680541100206229144528203294095568565325021692242593150309535721496637523561563211072192279182904206937021380168305747460198361789930091566143761880414698623615467893879429270964091747892268492221517276973656926494191669625555867904611487854239197184502022433463179731451496669642542490093940188996776453238153247668489494728480421723386945943454944162696119703419253078034668877818929019369543938058339252186575803621640882797231815002318071239894419786358465244398074819699740051332471630216698899954786246014687497194406995285515343353226113936554288062690975461802572700619784230294949060496780733648238264480162112791346673593138739153112004532125080728178960908686737010617214531982404816729781511674175702055515566292176057686156948819337742736106550993168183181141221484937845319921967171117499867714956076225906413782979466527019835450777734650858814847773125391036390859201245543005360331480740750534633405004752242973529332063408040316813868295847164791581909685772574767903246258325096645432228912133953422788547024087516155185279865737039773963687556765312601258254572022507720607467292910355056156098044721769937097765051785475483590994049423221292605433808359771437571113903083124830225607262331379028161302612908393521841213176584904551561999066864850765190691413665378226741793771466607008604161750170520374588589830053179197090413535384827257901467961949245873745444936326867120412304796154323425783305936593614076212747611779998334164398790440640037573320926474170618080940884591434425434447676232985735101406981848161803858006792332214703553096189019844511892172873042022757268396952511630964173314580638171706303723333477799165376007949722273942987381697814241268189639871897276369059697767097460386881600482244998958984722313584796785676493771051318200948271893536680370323494498578443151577144207626396841970746833454706678427585118263542222591911336981370139905872733571011560405869773917126230659220878802913235823290582268032752097556376644287794165376943624838752537979272977179683712289455526469765192417631706664789728135556045822670417537687570340600598667283433741127177664008199569906686843243176561009232199965715307835520353569008533296996763664955296732193087551831895456962273239338292101812932769482359019354471389977118473891968195102452738856551175751863561780094321320808260147217695328321689228188142188226929176670568991062126701456461305558860664637376609499905144198033862388359935353485230925343249512776938060733918020911946591871583195466192703199419958143514122842094663784706788159544504636243703389594036095684699450979835926146541738968088841208621185297528337526227399710225988916507718394195073178074222428980605161581864118560111687775859013181978835971436298707057676370025031584087991172966527522505224801266268374594815421973124943311414683307157976516898421323168773983384636515243351201280606210902999217691956788212766756406067438935625139224873647568276465711127131504702366616762695588193438842432499040665476626108294835909719639347282574004602716580590676614609729471666093268600872304184178939550894024251866732642439731484745091783538194494382046945983923790883274187835982190136031452817583024201672406341565799468404869101793717412789036166217226560632300278156531010282263597506675403234233922812873614604166237523722976753497390194822642113675468157582297635459295968999443176039703174982774969712460342413001168049116270585911007031807860791098016969772493170270597365612063224815983866419398864331074296953092507035357819452347506852317856837495160913163185536722997623078790930498522754313010012796264604754485661545723681890972750922287975343498093914582021461163553291820891909597627330135719361572399397243206973030598987513696318207919460865164229827141286701763929049265201138554650412045517372410610094898148317006877100326199315100163318281319466402219614091899060258402274044244541168519739276116998596155741711138858099099922103260938826838183481350678891087202609923965649786419802920589877205723732714378851937276197081684899201684604343597532054482213133126537818927438268553766131734816765626350117161338597643557787361563272590856328632662918574552631618438740624538460633456271180255242524870358447522107554002519156759514546416046696310804940017994474030847125108572057496930130770363064930079462009868456299394074412609889887487158142058033754041472363033805638961920868795212992765049691392375949053036321692013577011607317787044633685988949974236831844821450775817511163012028287477224818530170583165129821655079274191409169409974856279418449989668927719224655874648045360899012305706732073610953258566742977473633947293813089041338603654517794304239998090950149810788692685826340053276153830441057732231126467559453304104291049979036082266617051860111776296124922032182947281075762420714835692414159083191830089325899902290736981565991814096846537553953070805671898135089899255612243710403519541490997680430839717426542159053810051496012418746529282818500084757659563762967653523091495078976284451973298506127212835776925763708511091194285068002930443177627895773411757957022468189035289254394603142364909112628902410738492999100452236893696827598561428892263201925090188844268349306468984392999792645797991156336236388441845147702364761785155237931462781083042497943039070018517121056574560772447040297413958115910059541159652516195245975315624313298667116715025974063256890241788178447693340549319836068707062372563846613195904284634976753962248649584781751158450650515188607462052677300022997210251388358809002737087131803332748339298600389557176149540452189109829290331190443080147524516416313261118561125830271958881201286066689155017877929920047961999263495506326286583524880026527231309912402325151327556093067114007872929294354742164085425031237241153898932599028770664238268887441033326159854836517574716452036957791871173183232084349596438436315843384043600976525838468065851722312548354908958934774369033357516643767772147354884705741360478988451962270789462843511632102695680582238906142108091624506035415879151809730851788803666579872934370370236586523692763886397917466344970479420847215891979367612537809333765959997945784778181156853429407181156357951694103760452883172091441550428483588296307094016542557111394866340863770478234867906174082473682470482527292650266329502975151531316116409528552524730217770570408537525111003061986451525155353566936610299894848237563903063267892597764879549303946492740545351768316629216531160251199585652999793393916956967119360246699942634678587569418744316000923630035186932341694765739348069082511833902864304172199363485544430693572988548543711445032844542228977359335148410607487460744338347634675538458763542587341019933670580737300393935338290379840897682303995609104450888152254722904216914485488050581800604834478551086268559067232970451929297812197434771344841902637885878936697676300796192288358697933717262105340296210789812004065736036957067945073930069323701646684399293523612109185735605061921599398291552009840283150844689077245215342266278227565143989889556635488792492438849770039188473514888850152271911429061645648764656126023033226905909626808965768920717560198785294766339912468381778366247368071574072027236251420224846498294745517828670000908235104858041240695564661154806351653965276620313456583948090217273718971258006918785058856149000692224321412445319275718670064307731487517515078167648919765274924679947247245493703992516455312381249771688388731406839187712177702348728924011371730984834365242520967280301646940845674471718484569961449269775215971463850009339254152593748400806666673939588749456140819992163061325576288414020244695584502684419621626869888539098082658806240492048591671022853278998457989697059790797144160515008683941621404674378766280242440191728347847890493790678616706004778608824410956366037187683954324472508288235316258976568925531728793679190527877788228471486880441460040037759327094385295997354906939231131374101807767780143157785736652151656868453603780036969293238447294253239033985928045350294489792760509001466591230973535733364949808386324226135642462976507996602007042237868284668292750921088866074449467288825987203734186048875371275793226526398662174783596747135471476554341130375361347632786898088118755057133907201290538964644866628113626244948679608277726374347240692551483311044574918952119392594413896035062478830284269443563984893059746316436245377033844001599144967618000325842803376889321278840008917718705218671529128258512084405211094226835067165808504108245457866814166530608979682400447474964032101725507687082966401378628104027532010744174374769681290529145714699376828853812199488992609268881881568372087663318636029612068909860144275922437961349713665797417455489334760334970867531014244320323502576412500360859034969829452017305074432224188647492866496618546474002749115240595709819137952024545979744320659695907149341109395534548615420986068244758630640862702752835798941409306379600745372323366927096283391786232050011831800002628211685677309887771626096930559409573130369730069161570006415842568725758905937966738836457759411258277688809408288470710460310169919123492950645245846193302535154600512640622591142092994756655183921349438762108765162887288813185794437033118799216740468255177296839112019205325207548532526111837751013557091726094957663592374609147900399486819857301787506404429434805978289517513922630580110152838688595149506243151690396764804100648679534415820811224536285179374361386303002303986102213689893220318010536602359469230895987975520107069151221737579943974429055979095026546267174593159852117955531321584962795538419332721113148036422250552522971511137090571961434452170607534450500125535426162432273971684136141717693435926504754836964895914303876671922794423099584594618296238170951853014068120677392735492862823445186251377195365991370863764656044788260810588687176967578698521798891796463884345150236822633706899553352486684430999177216407777008740072065094212760631103890127348084234925995271717977876507320831381975806292823994027207053917356570635680693112436392198134942865329254668738955450863065902962390806185034817708140656241291987421288778103064814140223317356893941674281434510226837687476186772562953062869962048665408425917949108930626812698847295825121583761441698030193585631573565135954968712155641763057173750621729015801774839605311096682233932488661989926499311494081605795213000626687752499538771567494007433618203091299932172699595765931068749874156731143565210739249539835386850712916359805675525155068751381206638337214118065762449477617286828627926287277037928429997676595188121831380676939154349933985873056835276408543586184348843554481055808054682996010112735471771060404421020126873569933593474199835507821666222373675696489999209243221918580804092667122757788384196403499953320710080252267793175558234563380683502953673275632752504489015337146750943632401245386186961427364428650256241808068776724185919748567173590284889681329007387636005888045897731581571328640164547720325094047092803690137515017344760580268897442625868845001951508878856262930961439538527242938773502742414493971263300571198127503547982755350263344618157837259902030404889829349982072974739716105043024067929818709308608327612636118919675637636046034191315569993503645696717556138274881994216682750636985600168954899816601815694011694411934900934122737691440869996484061884172098538564290900569712061881083982193211002192852734211261561709964612680199207899744905687097190327348651836794525502319082340483026344580067842924439622471381845110278755677782058567787468952015665571841479910620459407716863049718064310284856166333797400397217388385578974955899677893417675866305160647646872898855953466465423557936151833124380110971158892473692225758205647388640792932985059126660817740657298399685148175632251301336868098505961287140747959694886707342564522759097801136555847738220711253968983771060591632500835957435075569870465224973718720258505193097198500577123279832946534777066472530555657501056937851016220691020763756851477095827651381375466765799222009508752463412103508276546246926241759835328957820653953859730895546340887681547219404617038488925302530686068389316391545031090697600026518786701113684734202563156525353938488218224111960380146461694343232312506770677656064705213128048199539321647031461428468858878398543185564941028257512587630391482023065684453172169244362158708139700008807132973601846531916604465767027549851367850675654750853474187068619393985224995048765187146953492074443851604071671628678968978307859608009611298898541563116581749045434952003872626491418548982154216205140850417697315989549948583848154916079349193741667789346340214030429914422802001469695845629680602853209750399618226444736571014263933471394752737667469958486210926876188174214731352711780896988226098767788892619670732363458390918678064725694408767667405752598134715229856504352400256482663488226494850711691233607289436831084445981417763219005071341971021668356693579304786657758675792007251458032860886350952673918674370558292040336517997554879211887567114915111580993056199690177402002553523992230721450368786329505777590092033280271897685214483717107780604028569336495822439613787893186058287881410008785703607104132474356884276837752148463627675559867676092315468761947168384843409756672795965256168801159338990790506577075583625093996230321156960427241117715497448239581781997837544803796011892949803350581721263704266949410032664401341173768119496529784034191588175415551328747409249596957346927546158511028213149521746808830397515466622964111896762181847519283399182136165964914731124485462930018176425761485220658277395053663130300574834248936896708975072153685587346509395192230542168551764856593566504844176054272034204835820243491808782299808518483974213136194928667455018547291397450124606236076522352451748081872043664452258863492544520604323477536281685866510481635524902991523173552477616462479626043385447983034457256666054600305623623616632856838240799742482539740237188734134508644724311308110030793885991762247898092038830852940070998173625313248176870971131073287562649998013008747297141491651139438472596583947639948681733343186689720907062553879882889747926458600649282149126097208883732465802243633906527510913683202524950604485330136344462403991368747870535138379829522734928187288126620600597758073850925852233308143345192459981397942656954919069193390474753728413687408607852936262490490948877411071740027402157460052411991828395174705333102405738587953689195678083020857126859032149298404793275087905642696236476402023010491893580815553581609590383134284632239175499831730382890584903415009346107267757509356250582441334910423164170714033045592749501048678094768659100416578012998364216549769532300111082355310298783320748144163916487329692085921872127298740206223131004546189047480266910252216811922056064516230191308925131345519388975988183926856149866411981354651017873572453413757358375316596350209317332718301370246491856274600424456056786462363295297932116562311469812321745522464741382644680542967283426045211969902082480033522206213845852225480712046505967589167928691982408863056795191882954332077575324724642232575854085820441711464366987852748286929364108779258398219369405834133587339230872160377515919854260979659028695064369212416947769922976072886120936554611052186070230130132333370899354800942624180444474486176776205747584942583934511735968120891900653282255274144427881370964879996524111409515224855829943842942491274813525377932804451245577518888505251690180237604229512118611400906178954121201879406069560459683067698430603639539871776459514587511639286218042131956318195990008997459004650354857396189553032029476165198920567910701742854429375229288198830317827107445970229583660256790930485356863329973632469691476572655178571644551917295617382910743515092094641101936379094146741117133450814220837780152458771967455768506449293004880655583587105886281436773872038745284136997960313135002280518176905937989958752641866655425648502727165848085004171159479954173242841183604298657326852820434706736756400290770132867846296948558750526639880655548588188033576861831031782416227249006713946249083793309699086984912906936253228142552051717116222003789122131700083842659402083505827698163514039965632677035991493521172535360551367768553430354335579349034194025774345389107491123310890873445415009324595168608792861729679803252041226879734574797666238130417244885979486623185550595491114860958597561073253876739010654558672218793504095543869533922372303421888951823905723740218692705298171325043464456018747408366165380975246836392738577916142309441399315611121964888851127495113523046640154608245562728287053991986867576713229554011622309841954880539029811489535450044030342380508906687056079420838701027437760324511229890150523872404586420421606828432137279796426748663684581759947001351926257759125728742493655964158994905119133280828362898764024424724044846710743330816996649343533560892582834620168417300898732206753575249248415261873110592194349980283012883557042112517755240690465366024413437948568093784992335628866177682957341778512422368565987593821744815940528935851332464436304206908894058851615688611834908676515092804434592590133520092592753097954948770018152444489389445026586970554639476034259778358141537293934580086325724759841330379530033080329226275099271669207837887568429283755191974377162859964743770408664378226334933805966669167440598150635112448468822942940311976039477080919325155920253991339093854152034617520672889038784853049948697410906454005113147792363153551945996700847574522458644259023861192453854132178667067086208613148152284346622820464173757184827771722120886551226418270903254634202947815208462023296782030187325646731082878878481759487002681405670151077447087340950493880227878064528052741166478114887998271508506556936015756842955049552513066358135924065693700203716445023204009885659198629285101316881714576828185897965299336338016775783779701687741077470959786344297454802653347072954062509165441084485084385661802161232391123357342915630037448982058726692308477313183753200083816068206686495154336643655517642008491672118038435611760557561669624345308289048840756139570883275866561490087961854938554726561060793559940123199737284517617597222857736748754747970198446182900743785238665636999366617002031120390724087766635223991863982176986266718146070694029618434683221874709265681935214379595028332765908716600427750780728676888941757604010224983302924357820480166027172622500350748623933703191383068298137925414868111490947826309028613502670383027325137242042942904736889030026909105350392917243355178926121321842725250148091974565289304725773862855138689625871518166791042412548032752808922429698896019468553905944440436980874420819379577853157737551539055095496920546886757454056995226294860907317251449153862118751330475590963140018093569239036412035746475042085203659792998781825610659963304938088181976085048595883418705274240658843019395957967349473021445322945931265866602056311037679814954377884763732937915898454635728345678810620744891939890229628457076848840043631888229307386834763345473864030023182518870014948064730222699655893769653696057023014254636102109369154461220675709580771395259179233508175517063376375963480506673346421810067226342969620567416736966017497117169506884127057184246575041432598349981937356722812057441475132871070997770876198589647816092419495073265567757934485394458878580096877944364035708566884265765757278970286472244626534221420577835486447624646165845139148765886580320336227150912236441178070388550205226063290187687545286692943208852053360797017227146111560449126123392505200711917586277663801894035705704384179282244589915127321935065149330604890095081242654913510985376483873505886790867810901489315508884983007336522035562256609841152249511623823761865797100166456770047327847278319103143748890939338378213238509377927839681018088332445330740526283214255013721818006961100048577925676483561126203830363692692714310305183312867937531322846808656458104320069620010060512525070226201346598492899770351992234955363587230781068101718488664218472156520039159951410502111567747238050179675280952097289308452413097961702991774546219011390528693720663493411318775384863139713413551988937030801376797674916067254981259765098449291799665890065478889702110154901476167718645433042841159795640558397932617710315810987538894770971857820528878204794366216288416248406058374409083292512915898378902743422441030740821475403708209461108046446083992355033943500744365970884289704506911078431295018279179631748278969374933586963037142642797606455603239262015239192667011196106033772480005251581489575111874539594315965974274472400195019554547751058301335407055053275473404218142037603320217362708601161395582470707690823186180333895725185798160073176038922343040557651817291742943067562246944474020270327479759287163147419820605911722222166841407792852958760460368912798027058111677613478940011765496807612064935144364486672519183033275874854729283505331008792322036786983542473452766017247189073448755518860241767126344372467537000426702180484848489729648145524260271039668526460786431194799299415327353953328274219435089309172515633208228471161173302063686833912407029443327215634532070977136214881861463822411320090896729989050494474687548805429679631766186398988589559601467384100746970514992178284914075758019533009480066235852873828592078109898565324838151189624941819156999679653852108163094874531664836588639973888887148902259176961005606290799361612045122083827708950111501850094194576979886989167818524192783260673013910426569705229561161402458200634743031823851312232887607866267916794683740948134433972010578094931264956941454471017460583309015983955574989716330978141224239680386870523353580009244298227042478968276633339400276655564338617675493365204255841002885364439349919126737346307061676383440406722607712751499314061359614180621678641874107486498095268401280137450271575183255216449285978660559022955435671861489258041047326801408786570969785277810141142345327671375999276943257888173603195381973855192510829823699957986899585362708414444697952251706581695806424100862424944788818148197897644497889029201634839616801754684249368431796716157546467678219634375274354088057420151120257910634423867666838684696755316766294193148739253762157154185766694554021598542525123079369634911612234595788991391392543955185833454261125536027122544306424077398670027280488187506532867396345331377611536012844466085531665452144507049931908752027390366669237424435104486885368888597673485540556951051845597229083422202722714109362829268238544155721883441706592702514736471918339553181596323182996936695838830881947322177654301217113092458477120884858422897178568247807744485894884523242384806451367243654604822487403400189499915061625590532108346631511648948824869953525087616746524947950823756508165161148642943987529538535762675044305332181012593664316165661327765890819251138631227491796109682500319072543452659554302650046227859108781441015378241294004245402019834249293039794010763902217752328245002763387842131246657472694109620955546600673992107423477699290905442520131213240130348733343049908687748550741465281604770044412880221773139554773647624057031296974053456996556665989943828547854840558349558558041598352717918642902948908635623828452489287590080768233255110492672509524169832046988120092142833223184070174217875343568383977424734016822466043813438435337794350293916649983434251719777703364086464639414419137050232596092872446726327781761984290722301089391592181195060866711713910135935808795694539607703597182444785306439160934220714479946812180070749369924332513481510243846605864759921581726983840796549301688572630243581235103178520854555697098748980436508128567054916612371334811264944103031870687778012315448625314315066971811678200957088416783442910104314945245817082635627534802544681346848656298916977107307012721594554434398555175078760070274457893465065151457993503135978154367682455153145664157057408566748144995036977624794022685670925496082624678438244991736815902855027043374878328033026176282172005609864943876135304578142070447338125894053407352145713538841380845120306224739303440037381248752014536725936963361550380141966459282099407102614715939674917031711250921919957275454144872277514929029808606129387706291750981311781131114643392754942582614115680869847293826688763362861442570904724590594164297393607382536598401557653523949706528089718553940247822143886535658087384686449286190802761941480854993597790461880527896831701677636283027620133725555815694531645084665993448323014092495816718822771459341985188798709546328951949262819316444073292878547268838484895009508764468057143830618876376028268539425550260295990870535809290822946732039842720343873851825301650327415487126258559008276293581012209036721170937455320608156578697777308073247774754393394266532257725557561412581256990314555320147217880124677438322126872749693385064916827120086102105118562877775164617650771113330925318159043606960758914718340384034128231643224462975135416306030937132516812967520603493158713364120738837357171628670249270090495798888807473115782736909797379758493371090829862181918354649539799569099825159545691184317683792077132278841994063187724354549547093966657481457076550188838127514477034004686968102879380519499443918221739084544535298590744577442205956003777221361520371149166503976016757660332797362613194606246269923222329131151066193957598841818672413115310177846207795026662639286712810689678239521170626523087203496812049450362147901608784741181645563425657674297799383811783358813653008850478318598900972133715970529750042363818149113295706079579937711814405202675338449239097215552114317650811798356843595126771725151589700725127810496180670779227115240985861789316989838061549228319506759078124983792501627244869546891861087354206954301554379320084900054371513208316269103589792260561190350433840137600955843864933964347429407385906751518743327769228642319895628686951892592026191086322812819759743951898305776178040665251896763821851688906405564141956900366775197506717475209312241096447388798174026106309649516547118905057112002096752184763301463471920863287245814426476100526990842288976330831059862696198692456553183811614189396832173519730532936726137569729368595089250052357766296512019046451381760035950137946733320292655822311289230052538507383533781344620808121869002795990239995356858317133351144605555430192758898999481500182636833476447515201313496004472840317329860552673731951783467982415425780417283361127528540540463327899997521355700147016711586348956166548950210562705258456371036789936556212521022237580294420285405079367224707497747822715645463474360375233301410707393763574385154539218032578402215920825731048424085128984232382486995124370850162363457555747004832196939353917144122686891626774404959679859723593334510952351632838489918903076974906244867388501299582201562905777587001698295445667980418687729949816678121342715783877098600380169477163854079792939026504003413495617854188348950635961551229692686727205174319795498180559020943563458434014214700061532113263117653249651571595073366617570620042656103334840793546382174561494420983889726124401208349165411375734111994627787140771767818901032309273479171461855151647728173594217971467330887179707728932419836190860754978860330620390139439197330902256187312713275085194922287541745422050981564845516807838015663599048116977848637417500199945735645572393233861323054349142943342051115125842148268549632512891792991156442792051843243216074803844538030727888214820742473432273118597363284121154507857537006421548585622231141865042733958050632271906970396442570732097638461236675741326623100060154723855835414701596731847215004855633693354525173954445537949764772975089674958346592134165954792513129025246720724689054317474053856009211571071773119512961554307656555421787981618721733532752588528923953464220892342575643507131849415799545440419486150824587061822135753318591035018565745238602403421950563324297728997765288981162798756784228758130359357242516675680652905709417959729701415029859759492350501943296488212031564976747659227213557212607790227840768916376085761550126789548301290908866802641434864323660227439345034233679307588435080148983320179055378641864067563860636427202250994500404574696013578607526401166501538808550212686930484967782488754427190179086375361674340031499586756867976751259919536131196861366074793118663674951608740587249167227048711816031100006502423583539990212226485895528978487453653575858608798366821851769297378543271869801612819985350935434407001477471125017801561665435808395356420222112016346499595853853843064135905207161707220592154881071371617842936538259447212005370752692345716861374420542841076673519121190206549510998445449449551172648020355079660975924954264864575764624282838746371559791957136953656656888547098045984027547183127593321086813020667695071833020102805377767758116161608071553440506347386257804176216717366444403372120066280038059097827095184703891457515406403329146699613487508340172860274923323689520549279704652269507997635899911937464305427954682905722957169528365727490132018112410091142972830578833321757048820394639420553868861167460810342066509930791246299586188724397106517943566513320042569605908674468388883472559405802883732833137012656932051050728560651308956114907868700438692377251025817544903594541359472056299617341426428855663214460474083816827751029013209043171937546126636475236585928847723999708832714029124390815379948313313009975482075117263287508755276711546263721097717521547136571417565813012003434920732955053229374095667210012299267921438244831833964030123646912187643599752900115131673373538048020957538602825468115882472119195821125850374865254694528215005068319998892867925111339457376794762362215662329071770434831572845716246658292257328768426165846548972834274588714945428443654373090422121299872135251909711492778898924629247040903998028241113409242974954165039561363483131492878730504395053903179749939142745804811989245658168789837124348372002101861568725922430129536927996946640457768546530154707726297001746477541534438932068492807257468214881131273760417365385755335711041548750397038045739672471540059216994168215852976122206668689800787386677404376518428498245730002638440584438002190828554919660207953381522467855801798673558946463805723681533601165920836273808799414681344879197112672836706183979571235012947587555354181499630479198112279578058547148554991928285424467380625126926487210574924521451047333383145563923192570998179604565043772623677212603924556072615615192135819040434097511613856037429059232365720487802010322069969594540454734510049033494848214095293265042975785250390009590816018929827319005130917146296417675198167492992287011603024588754066105807529143891731541662447422891223713275382291570805377909170027705891371858091290978457314068839169983739591833761288372379500826318334041024714906926186240989381889078086005244630569678743838158319395282749551846140117931945349686332933076838474763030803363056711648023724391260680998672305880888184548955506716404381626435497398605115458677251932957776743976533422076399533506176003316284599556050932415834672461245085633274092623807205408262328403973231129818930776554291421741867672842504949848453830699004284618201115470594289203191327430784796338889148934562470489276174139954310468082065370563216904494837588604150553928842489066697842184040408434673907644616203538408399202776763935566483620920200805425848142390224551232827193469304775902895011001404393739918952422165131857678571902070677787735634398848472018108167702679434794932562752261635877307989873271080731888505921770066502034525139708452523908992757121958664754437956769655046193059879881143878959900141822431607224417135027965274629613735756419564515480800346062205034288316108397310363778836167342212481565712496587702994726401942717862797288415049239431893823610097183902472505524073706628562088033454836151632253375468623931938818533440610421675419438148442859565436079869936014764735379691847817380008427407105197000408686199981021014328413237350230176610425519389397370951420275037242730616147375299168218748293922535699965111386487462950981777913106117491962465082582939350620056155432413117175324742644041019936637229026445078515423669682934463090212618860898076378886039046927204067616205549696628076711726559917217939806568384534623713726769329075665698352579400135881801679544372160984002956579934496368306279063536034246634070639088619644804241068656121231003507376042408039022759750347879082780576455320469498614916926402104559555872875590307696738723776336031066919082639649731952179873136625009926851826704099545917295212817771955680522728933270568413484286791290937371800860167439108460272502739008171663072676637616718514871774517163615699532413907830502649196775397188462720485282243059631280953939943745875065803114281176286884806529682918963276799572619750128065455188905748983150986979532688175616715427036148491277958742114220873980765672867431495678252625537690487158356459366750009958220688902996463801575965404492422790525337527278250335345270021202722187793470512087070951177080730010731127497569933971197010015191475345218429327640249804804860901030107824813182709332743404430155547073692311257641655743839398946347816644873121152674470712797297955460906820432251437473487322037380514357796422739020130836094791784555108652401299592635900289303323440861219270680448321721452684806236563881209904342154404290508000358040827992195537680683684976360520546997838757589583876000101163070997739949480293774753509332854463403142119805516076672726108549346917068216434431816342285465653614727557179076541523372510926601388882370439086519430404759031217083987074110029256184009645773376394788634735207158590808519017529941005840468668039384252823154524602615878138763523681956576328296602173099394177940504041500589372749973382344468797557709501227637682720701830610876996145327376334112251879039947944066110477449096992260445698211679307292515540303467804728439888527533324163522532476345105040055132747826703436989154062442970829076134488989110121290101869109548330464998605003953667076924481601645770984507237728265418474084590459212046378802273500461006808613734786323322699351303919486277089402741065881522449744258344019360218115889690361698770780481932211532487818132589717694548114953279584678884551615874656408062419629909723626072522611445364148876980250840359377038897903528141925115598735887682780183519739766796886036284744104854161260713237706933605183327043419886995651649161120648302883909223101206679283284770649761947418781644052445709428357870736854208838419989521291385867109707532448130390735212354549763252468416320156742518846410267990600760445683966856431648431866523537450680557961722016711011634122759570756481350715879553542923637786971454561849368086513444021417031750792247764265515498452000657038414010019455534618685579051951563091780480652664397223599495658049707537914614300738896363979679164162900712783038654580710889582759180444662074226318603961795315437386497585804305417250118747574312633404644987162602537558373813988646711870477759628449348829428489108794004467319482868605122088662664684839863877569734059950030751972299687877416058470423901615779792614368661095957920291761238792905608876678268763547334722291880371222546327401238397292610653590841674710305022000736983531687248646264971474496117519498156327563036655025925429753756942032821404866705184050737198878896677850749908958595210531377049836050050318723668603673560917164176349861248545575161978123190080315458163281311301267699139895846995500498383725633741617928354918892249352071048000294667884822315301766996004903677422107087528782385079629184524764039927997329343981416688766460190250412772116464154242292376637564006169920514962752949391080703144779585657779159689227474156000569109209775952748754874565275972452682985808273143265657599692118371432251215090983544220693143879382396325190672755714110138931950792044412560391223030730636961260084543439731478180041500292199486266787227701958172661427724711988255764048255249102473078104703690874055983431426468396498443688098270959942098142789662122621650417058011308922042240707648787757605638619375592915932910918569260350612350353743491869622080260575379206789879956964552603490054157438125393572400911045874080477255125185279248456234412953802566162592950571868834479449093932665735797655939023574107385879972812361807318562434180895011346129791647306948987827239041856086850777261712081424276532230210598426487004807944730994287107184686228925254589254315362220774354841097027518314575395603574879023266848733515438279234520005644061448711467969771742928601449782520210445798130211417431371807428956414866226145782203969767321234043988642293776642180811359490800761830027099327438454358060333135007116045140928823378578596116547825896078339401341470195838456822908636449779678296829331553373088016493622608324594180790894318926460585412645557509156824663914967073226118698838939922529544023103071571884939155862092059767934645230263101352295695932669408658431009864685482383751425671418688000970088810487385657211874788616287592507387543007985414933174843508519578604550726524738442956220142785757743839913626578055877897912570522261373695003392649767426829221904170358808621682317115043446672296183596384544480430519873091141637349277643560099104253748800995647064477951614370394787340123073506954961081070598530836725498118582866883501303776704404298862314491838107641675238550597874759210269428443692383247001096570353857509449057521136195841451074616345759028504864929540462396844139881610579778246503789766144630869028434737901140630092271350485320876938996557803094613281236460383674708577676189154162042850107613628917262301693489430584803862408277846030682463274506977071544739282476890870999851784763345228647754926329728795934323466953536637835988469323869617185887153980790921470570126341665076241892047941055782658806583416255207937604817967922274592979557758859482437107871988373806773832150070242066514042826174439191479245411386341202460721690122123843591872829133446932087688030145413711172950316519033579807297482070495023194339861424452484891692819788572491095499993274109315096624583833405586495223777252152489712037417947376011363217101668029996652952616904590881936139717452801176196302831399581442431526492784322473834138773484178589680111745527256506920652165810895742515420339177963924602191957874068226404251803658974201131088158505254763253840562514665047345305149360707836614678971291459755933036142720909632706687865096722593613771073854580250100380747198600024907168216691241134040495348867323698252116606934022899046167961462480043752508802296883362970657156541395483652282343408855769641929172536543991644985168722367853246226973632045302371065069638430535476915288772004137662503944068287336594369103536001814995678434412227155231446216978782830488707841779488258959307364127586895095668352351659018664561899841390755668828295916050354247879699097686485882416761707812108652866291574938864113376881597273084544782791102240246212383807217854157428162896378251630573664010857820666691012952127116296275392598193730773382894126962970615348792783535391538014498724329748931336777598589190236699823365841173432347622948645184588942020187632774713129880202638757518931641306698053023636796821465899138169446864874872586011712330900211027416373073708807460886210450929620391911118048767448516723540309453186173912778664799760669956449384997169391258270023351996925933098851113561892961823866943506943724924383407633094853417939642811183013721972158571011962574955274671961620943027781951632780908430839607750497563997940260248664077595865056920889722644461514871192793902929277409811316836007695123701892784236880418385222921315240071647505015048652201745086877484320124250627166297786496866967902201226226371963234879267741946660499861919547828236910155598158534788239146009438422415666868504877731027896307468297613625613915525562612970418523123598810541869988680624991110174801296015803438639176544291276235636909838883471675027104311078396542790674548629259488800436635035675081417273024733489273531357576739736101884023247580922680671377180075019145270789589434679882481856329944531666044859198108548636028296898234235366903226456923671965879294392482921844193356152072312720717485847053586032020798932935719306547918507250217196951629108090875779644290462304569196712095702173398209123868536865275316605797550034508968443934617413549567104454670815746009884584274290217205088309471995656027792230086223876198188830227467164132619619722719393927600543784333535411699413407082265209321067602116334165625176127942087139028494031415434112853323145802186579363166441999687568892762187379686530672983506807355703831530348330276233694573771009654041456677223184062626416978154666609243684242586427928055130654005111219552371616081748489607058049962081234591524844668429476162454736571222589423682944708936055159842063530679118009864085946497776174634503408389971490185523938524689118367631470361832271085838719489189196473595528868581584286812390198839056040002516459558464032461735296709709758625163459986030616347358914274201283806902858883670106674690517287559127605577436657809622221713041359877356851782900481044723174785725074195534014536892062982401459585152381212979769960783406761085352173809773123256859776608492255531907671016895323523391439766327061921943650423696203523762508067370608771765867309079637280571984246044700873915321739528390797916494935251234417124517071566265613262644882260114727500019034845572926897433194342275258978065441314667376130770565113757564332277827387737104254705359882912155504933222055393217004303496676577941607676493848908221700525521958912577137269934933116926195767134225477788539324018314547201905255541004050134048252986117274735578126055409458253999891955089501918863984423839292206481214830191128341373734919282479442418545370435895684561325164777830110587420066497964836871845255787472994219114015011297835503372724885278528704262508740648511862245465218444218045149473860463491642217696270889029830648939332150553227105290189652909228407705399344085874771359602389273772092570920809101675562304082025575713583845525067340552848785714591666912946645895624192117166149979861197114601386332808617168022245993148439417902780426731827294175259286392854894777765633676356591486173808058639662755673703173024856594193052705210896790807870709189901256026333537386433009387158520330352496564018428398498122757489493654600384568921096756939333931601635027598512964791088452521586985005573218450189175878869257617048465485996241868521137225801269694385247029544544757078225634661000086330236288121506026780489807321776775051358891025026519401479247350373426826839736935265603207057590023240047122855188920641254786135052729703402380402328747519841043464529996193311889907519846285546159066861611576415603170698149998048130069573008446430083177418203426793397060200818745597297696161190715837868408694051564603825961820912954541320698081564151841889283780061563612981837931729129497419943295449680283994059629105515194158116444122196728128196186771718522638950160282366096751452714351129271257067098120348992288573050398095980313900065901557960671834157517097555464827039527027264565161802626367116470641296310782960751822974979455862976630664102534196118619914274172022377122317440668985896665692599053182708143251278464666455713677078612333847389291908341224426895305502677298162069679059713622305652028971282113620914846037160014942652216619557903719504091109950074671214139967146014354258285850364128600803075775809759236176077954649563829179032916010065591143077564470841718492256362823255994057567885108871912634284341998947919865577631350085289442529430209081454684596638311632998691232835908680442083160332477105772444656601507716861135399445749529102565039043639409839922488519593987744611883522474009138203737466194672392883757712778383074136978421668735524142924001388658694674783254742445996635462867613901662817284620053681749399520721365184384404345471155347475697144156950499949516577339193514772714700919485042161134896360986934095104547567080625816245834028106772064700419159965253367928162604148984503330427341418654509365927393659067811054287269938754216718027771896476869780019719419202477828142457243088517245331385979749562792669977495687485798239872688824441964415184171265412916752389906678333780656847148843618980387111947338350023932742393773483366412021261752590869535843703979001975644340577980603131531504912749521776175724330201690406104151933425586349169467497344469315450915838385972405297967037827588107840261062984852469197461345944095559941512568027027116976189403789363127538621013746196392128747438773822635477143570053751389537075093705634463632318197532327293751631816269941937986132052118838392994683867162125611282609075982448498500920727501147150602109907493240232735174137920921642170444065566112277870799290851784035251022928531247927599567355293369567956772510691356845619296141353627132807231333687121852649641162089298212505089511231660201875381139242820769069744699237806668995365742440104980805040156017925824061611756225792093301807334574364417262583422937486205701325583890197438696131340937869521466724510916688154279738305156147588026412472173934774455554006100680257283109001937949269103528153096032620870321377385096782704697900235647737699611981279370105865907443409765586985379252458821694049492145645510584875403672888782171775706245200051415976081241444475305799230282519197478392512023498789689787304996971208762015597255806611192714316657643067616704102637457591235144655052963532512058287485712447965529694561334563911589116852870711748642222512415937938570228808421070099771988154229896273368918379825573078323616069194449566192945311644569582569233802608018450303507559195659482493253241348689917918095128821539149006335837796999980544252508127724020279238512223425691303488924886216726441501952540084066007438600780605130515553662574268566859593252630353942521878912215570937605129452482434862536292601055919902589815017898331985757206381733584469038995726738245963996092736343935193826594046613362416451606742732349153336771671294633930055413400735282928151813700439687673692234546185594546348771973131428894538198818961449746798636511592301055184851659815086019139375115123110346711970884542370709209589306149115543422062883196093262689565670080547273402323208977779411262973254006978083979603791752225026266026275014415352867034121981799421714498783612560929622428021993484654082146155400942552709938405888213831288396419672440083022404541669442205347910573705709403755832079805231097642173090024110197101490910799003205152614084745475846347078557261881967059495216902599366318070921059618431408528499406581146513593583708778640627136318648347468160026699949056104867377322207591586999139372551466994732702570988733321493341333886523186677689997685601927262539900888048354780953703175514089616867380891984245583675967399648771310840393506904725339856034924569806691837648746163573693355492097074547638246660182298127630667734233409984947524812540471898955702568456316179422006551992692665215140892513608851236690734963747899731895256851671541569664368615089432931218911284028567764093439214328304124554912925471820015631765687028747103352940275629744563811956933735336650813016879774760976689734551364642765360038099931398985673872030945184529941301098654860606476160088467126608932692219313265893127101352842343061557456288503333741873614103587012611432688824957633397931653717917196890086099667699465183869718380525188733710846659364472182143536715273887781446250464698514590393230659227586810661105980213700326868037262815098824144789637674629454903249005895383012487672055161523223922354344647916552210929100720070144460611656499402433418680372916959163848424534749556340480832705402097342080815892119966959415683946635608801802774937962753471308379718079362826168939665908577376428867720714809733196159672710494306591901684309864082284580341152841549772498196058846387892154449213231880326827228811657222181936064252428039198376040304203040580509822954546798971157572983279692571429438785456725526549419506614312342949344737681008937860944016556348593155302767675426444704311667447462522074882614412174359791828175562570972432024152473594397409886202969386143790914382895875287593508253709244747944071825057954034509343591718337081051684146290551651503825017028727900237373208874275460553579478988993911465543987511051547447080177903135890383334126192381119152742354766560666357015813672607074276880251774172424980263119595407683862450293773702342508161901718934487112842440527496161838988473659397695526685256329375121806186982528646316302850839012967311768708893392568362810405960917067376061001000123723678925061473501233176303146937834047558974360463158692972333116742563392314725522325660164466874578590499134461652284572824080955575866737937787637593376361771076250255241411504261608362765636119599300452599939939058576084050594587470744178965112267477004499251123761836240751930842632062401086859324704322386189010476127095364213056364515706291552177043285595421132603689047011592107911545567086042125989493562912864443598286258471516456044308344975723937877179547255180872770835168586353372818649545912080754457812618794818315374996108831687128307628376185078563360868183459480579004696561751381871215895943150079231049330239574984252292239036007008334110985813751066123050843489161802272363026758025839381074486542864811883735631408750495750737271175374337575916562556883318836311951830717630938053094153508211492436368467753690333537629851725274016231720154534666306626136290317234362847980114972747879698970577756738450198410477181614526690506823386073073397641580226210642465026916386125603827038455462385267715272748297106040233852888398082012866540730896654859140398636637600973858743301962529336695564275234570354465049560875653223062218154213912892531645338902870940533820270349976596196983325063933359950784376327813331083075264948777775069221705773794440913042696545092785710197786322472215733927719340283923474631502428235982819752818298029073627851192433628549392718161577402541159606259189495156842987558242299029067869297310360153321134458221656436230416320087677961186901909826017878621086785520283850752227747763944269364638126903535204240011340476327875361373900799916451043299336243705513654635030341601599490652179416209970046299036621543864671614069314469858696783339045167938482552578685583651990088857904927561472279169324193109315034586461606801395620259514044001685805559805582775773136381005693963867575879111031724870047427291720124288290501497484764183335861847148800549235416398359195720140344672208772494524063357702588334802638597037155490815096503005969600952642301010047416604428414378510238841452182393799557653318733993906946068373064643052886019326420201591048253382543888094387991116781620309001067849546990930935926642026187906204495463544754482964391467617150028964310983410790378903687443982890373085493940362083573309044082323920357448189328497248797834738202693108444166357914675183509940405178597136199192412898242011300336314205788414474588727447267570829714231748057895334295303988084309091114669804647548611442047811402034424158156396485693051591170941336526079683800692793040593604522007484700909741979001746165407077540705406897127024204404549134758176362870151259618085553476259049309283613457368592450975655462512637857308435897476555064163980982336103120740640402818564652522030691965401160326638441981382063611230098308265867515076669580642727383805928672810702814288054982366950412048221661798260610141970227116829064902684307667806983395178290514478621356163630598513450686398854968870140486742914752655159457335556141424848521384969073263019793573126122375144773113109654849658803883160543657614525504047764802269640512089203203288999183780516797006097563459746124925967974513910003307129386633087689979943358260509950606049839870288785768705514242161506008614439875440576465245837781454400232233526826762906661852774369032567755213600019555806036809498768868236104556010569879236893961640471279222470163021905491569668932566045001027330854987877030187565643104709277778755116891987894027565333624937578318788133778996425477988253430215535204481986225509922477243917535617335468098439518477261645222835160860002178355763083790660036252951329307863303400957617552302262895481530673901912008911307497345938066837803733806016460697936249057144264359946904384745571004813018960784674994111996155214509657831215519830564358928765141557644336874775112511117529568971278320262361388065671954718626737535554359470704875210853436179819278052459820263157543094662871981768755686690119646254717823370543021438843341569297611499192001447621396911157505287311254974857329553905347601724286286041240911621948932381345143266360924262502993969352380146969677200430309269444934010966745767597989155033424647158789127314461491551774406368415823358981243715939244140003390432033554304216578803131927403674737385087719871785098945496450341208174863320585283391560773814901617623756585901194596067440335689477868251504575907016081191100991018834752484982247050868512866579229521444732704990251185640717681275270245266323893322889102753893498974629718529509416724241174226591671579720231012382854427871415842026232958675564491155218212720636467027775024660229477919013039915692402424737651686774507713483880648237198246963408106442768298013346704303626067631839553351337145238342104022044295601680157291382773837515635888651144883920761278818433635071623225518368120847261663566040769840411443772885208467871715146593163259236817741972243405666682012466479162379284064287882116869689042856279995746360227158843070965933218362679162513665927570520849060356192144162717900799270974511285171115914258109949578971675211361862163829816411919780705490771406277170915695104818035429417692787281404852489134371013862426074401080372952299208422433421234841089376430797732010791781159769420766077045982627120546439643686284373624205602823247745889238009829001755723997970403909993917341100855664770174910426352997591632243881292905522582128714781327811440351224536048131724588820121336436668968228888170726823431671493839945902717038581572665203649795953007566951851300146783498984742957252888416735078838380335743238376623443249514289485321606254020631233981704678328666240537542442754543637314817230030767593761646314372272716311841190331682831932965544916044878128894321756127708113948247366521136251952082783990096804172656251844176944853201547217087695512542820325285984707625821122975746672789275816379016951486899432214832293004216601335959233000675084284491613282111106988607460926867292214798537018910035450688207089895316787459715734056974377772267893820367157828378869229588694074194077902633248673560594213968260414368004706299845307792682854216169564038264393846332657871208978665348402695282435011478122808378196018532633174756159191644348626578612327844373763933886976399180267920644086903767310424764899809017729068344509456999764263435335712976683492364766836423777988538064369258772592537194923662053869333372679431420264329126311440709643680688903104787102963833017690608787255065324232176392032842425748856124112853981400833356019487622285845716898346782051811412217306695514921433602812021807439798519819851401020452545590275244540625520313321169501667654938641717316369153633696960738492879309365736331814007896410605866893285106550820225795414225077295797536794883335136209092807229224311532951115760026503092368816723011197483031965789513451610067355026905848131379076416617632396610482449540849631948018980061436885258558800050570971268819200149128731748360982855066868937197515141826335536556184238199923914267226861227453811696146997034244820645524273135751852566133664595037742375387751390171472283246454786884726147803451858214770865167741558467812608825177779152027560271851154653318515664306886559075509418583256081694173805558589430980902722278664394561450693997813704457311590864530337375897397919092563704468300136024401862331310613240619588674009701323071332069935404953086532656148919432656461053790359751866827968205228229198616704323582924098684586688514862443800504034568561657847797210413194348910772210476693103216329853759636979512333782134299130983906632459424556311466922252246310567805875190345480684613783674025683229271497980226919809380257508511138857397860201670144858558736060150769793868958620776017081096036700189447316799679730151561253665753311618129169401732341784022450467411989425570443160307962060631198868162895339644212443677416870112484556057444871321144072829854296467366558978185355764131783137009718627191735450652736681259145474163338790613429452986502023804878698378775366259198191291080836650898120790664939135265583056042627168007459184542653029327734114616032032444171418613025317403465941886467487637419290019198361135798703887453749999192827441392852590500457455924718043812235176071167478342480431709078159381020454465689211773365741701487333047573564101472618389142142717306918297738999475812814987015193984005191249916765772593907392085891577613590868026686212681600400013618923059379604703341663808479153286377998414911232839623438938398991709907507478155587419457545186508101993255203021769062334895948027682183219226885362056551974445797352766297280653857416460850426953777440745598760504596547241206214345599448952451133436567572769917016506803881136210666699948646136068544958151738298726543576904563695233218009388135916527571420495784327993049536379617286556523322346890965561144699421759777326489137811812657809532046036212240137208921122632915605680479436443073483709327094784060834790197110088183607900875655191503048327081925463569429095417573111705001811476230010458499979582916030995078681896242751386710197057020542408124908073824631083368746201494168187923013579056455388911003459014254461859812924270084805008385275529683836848885134328204663974353008556319610421394218033761511317630632943828301528751240516582203935797109446746758357057294656105834485017308070711931296150258161953128398819122054204134300780980086716281593876629852136782556955884151047652264649756996178198797921215669283220390506785133191036875470794302516260410239740581695698040139187978306125685812134788604762029382087006741579866615904532838032761805955001836649524893942327513787144659151270953022588333420964091711689437316592741642975226213264982895914001250552452740906055538069736643689429846436938641898363064489984727915549865873376717203242369383129689484152519095441367526223558112859952310391524168746874593421636729287816871940019296847645817346726232771358840089001606452615067436400149494119263435586764385305771282590447720510374093250506823160891206595794624335524765760938988322881717158655816523916561851584983348476201778143806971384079148839105642449412108560359888990115195696491523237205511026978634037583615309499444740669840024253770760525216774863572284378621773287037250135190175039657258698181046548024659109170724821081353512377679297861738944862654606289447331807497103178583294584651632211321931863321724842488876083660317906491593763418570870521634087694758728887191152846855936490551827100444772896688476430768256282248797111652347510216425389336401759318809700590352820916915888227357878487528274201194608596502731216813074758517001369846695189803964135324571995277053267512103531842669768182902040265883959779940466404055889434537347295178758533728900662244388777500395658286021497079411306135099163705055757472338862586786999490568507850436841007598042926343264641073177328128348919130769240357064360772356379289736968049383814048760119247860399270140761567329195654355073428498594895813673229944979860681442063937857026645632514423068019855710344419037060918726824017253062293925681511070013538348471428863226315187004419649736649218918922413235264022488381853751924837270945226861664835860683453471231285196494061733646876820837071939368253023359096303971278267705470123657570025741819821292041087471795591102609453103428218446461012279619545135259110244645604553922346114610827236380589602507539323670915056909469354331945753743251265348147119064472881418067928690197097886810881302041019437229342867241281936567650664269423407414295818858821804337138798679698511799621495626190872938344602292306011674894926178321614254569998442295362600481108386463006246945265361213676438016744574314155520862820307206881289887192835109971358603978189499790305581140824918396578735879862125839317345802884189977503790129194304884402238223199489730935773072377043259091764507097745269678555635290627338781007374222088985329289035278195002559737774662203890268277909440302835928316185615465004341812022511371960698375033693757709509713537386040343389899826116875626402645271533680962243243189804702678148003322598060846854961204125861464361199091920738237862657457187609360040538418911671894959377482415702837569355927802564597145580580075486901897294030886468325060203562656423714225035279592106869090855217603538506613511517286366251415027164861793621629255264973858552060468572331906482792572019860726056867558458340860375441117897334236822988515565936274901983582114991353157691284435163559339561245055082587715175665138426076544140692587571645627057325588744071647049203254857725624740352295440098639638472842382198692987635001031379702199255877107744156240858179403048645992054975260727730178603535177935347925860958181526825712242698203948191881520119193733998705326320039248640095876132262073149097078813854962071327489755112888334247247592066656028690233577722470560230630372503515731865713175712357766638791978577796306480523117954109691100218991368551658163087045092710612825843505165086041043634114581731023571755937373842466422584524926524406733430522150833470797698317928283219887306498897874564024608466076047627445536393730564927844715678906242765982801171869092188444094308699921116881293911586169353968968321049820927114183389556385855704202426892801538895763278676299347886407964387027842157761283435920855595859440396892514259234410194904212375724605321785524826905320751415426770292958689424522603965231650019496083730891284378200100621314604335977979175117085913090676380617566699861741871024639929011330483914125433955369946635605684605246753513385172154714624380728022498847144491673797676485746565399788714361957930793203637912640527575394619484167601999864099356524125544861443781883596601891757062657501493461255849843208824139690770777187424797473205260355787250405693158734706006300305290863725757747974193940772379462846271963674122547279175765618351028690472830392416206684730709645091057917843068909925414352508961480086504866408028516625614300682996953985494062638071112128632493704036854347106897145430124868396246187287623978288421572806006110217409708818847269695418469125509681029657355950876888553711325221251140681438712886421334601925984636878987220735801893897686957479134398557626807434355300901932603395587892750239680086664346055374696473451241168133779303200762213464488517244106877076060113629668597715795798486569679574415767966388773086422676381128571659242532705147011760475934674314234868285137438704752588477279490976970552612448970380687216572192384105920487135083006156882679509862886637364798052341671673405931392589276483023146994611778523131876024606339005221810329974858263361081215864312447318151860898945549574812568207278190049726855378137383969326671089707717604626144091869865202347986825548058872486857164282167663923010213339333844654784559321396209681985250534244699262657103956734388700517706692950280337414617936835709483244932346120617368727731336760523082941325290987523311666232784598508076458571392493412799280257633720242258776619670552217679774149375925036408338896063468924481877648461098801953585232187381060879007055335207788610463586610817018394247900939476352269698249587335312418491233846212461632501106500912921530426771970634707814666011401880380092489108767968721227141215753929309759111965011677170400966842872209660399310349087456342924906329770539493484878122412556401995875984259587807723203034271820382418779056856518820414447005632123119538258922570511306445291063928514283677408189653322591365471290638506512912990432773945014400155883452080779864907404200801200363521283646798387012241521946112237752312101413783978046033761253944202799169320538589498577811127128848676100595736535031163786233793289886420697985674444279328696190195242598172190674412922161873757316708384168298692665229392154599662688074413840805842132245889510684032352387981009150154286323276272200089201513940499406465302397461441229787341815775084801138172296104170049683737718509707998530813726165685336443750615890241738018950259150335712388498292624929260852617478957372595049462121165860644600917352855860870391020749722815000756758275565401755723712152648692021937774759960970540689344069500658210672122652256851252213944729078278502338984421375394489092787083869013835603937800877325621040996360575694159725617093256442951576322600465074592637653295665677928564735988534242288738682364958929156133768790193103320183256713964447105984411681115358614222584047317955640998248496699687549198126973450862157620498115257615712562829235190564100802100951318594438457909362064787492676074278101892440434684317309671592717033492058729908546138421904447540401037899919671540356901903473820526852510157350182923612125666197143710899548511206116778918067139725526838855343863886846424993397607169339864617512142499849232295619736690933737524906860063918019995301745225477005601411182301813774273626053119380725389640001047841513426883567707510728859871844870311814870384942394842582411510543703419210871129938245661222317814149668957747886918436859261153034494472075925539425695643822560967883192332663090258171539165727287165589913748046302414121060283251103682954929080166700218452932061479819598834514822137336375655822671285245593949365009520837405526812567552637635574709332415046189209831206166954572416850345937217500624699984505739627233041812944429746179711790024833257149523053797449661389243191888761194366134113352703922260083741471353938942624445573902621085320952188828396124749677172923219572899008892111931570358172645000208526771184525631140114026972600747441201895947853407893346444216778443152286892836200415996661235988611446983580335901959725089969063603577889007198035224874372049697164514761722859112904352972868410952987400932742623967258898635767073345555979824609830221769180521986978419858101960003711117815146603491973971635088256216674469659738456421863496298982541259344058944141654822697856839704849125959818984981327931532232274883413316836743067540356583325450239936829163835498208791940697473630372058164193174765328779401550873632113567689401954565894651610033837299378027802334806698362384349675830502066367933287978741536387680277877112817140132202524151597693883695297068199861367203033501913308593313583983340042047505787670600140405000459204681629076379919828292886818634625035709026423765368998655167651198614835774254597660206104440288621144715883034282959634427354263536238226105433189647671612868733838421591560742765622121926601177086010735668788101122401259963701083014415049230528569779035879134861558083837881966955761593845122612700289653039450092895427532723878324423868112771585141450816849232612616840456139757878630167195426666600493260086040175982053372268954733019057844728629286966850209471778522576821183575434428417847539282609223648134989426819549409211777618984480497369315740216406391945238002438283141366203514012223421845153684055762949654909568962681440316536080519422293004830699081916772044607079397272785777123164701216837851521272393743642858329737693598885103174850728477978154048107895785740992030558796180486977500947472149712513013223395806023969063584816125196058508646867596366926829251236035336687754638669089318826076783270700673714761935805206461954795455609394783081701499830956551265260457764137494574505495930807155691378147901526889304069114606533119603706547142236274574551587449777512614440361115339886038163282990401855107808014417180878240586749413568601635843893105437052163709380199487294553374287068859023254096825571030357511110045740820345977834603809344862910911680072550510692309535793050591111013706655616150120968301337930291635754292698880903800282852082916415531450158604092525448616957992911878525173867507305087496729261664053239993881516949625555264803790642052016417742360419094992248070799592963109086698131924117487669278850562469149759473141570318516009663737182405277991986794033968690428855174830828434252848337176837065410782437917266868207073717428278721816984909822504296806888284838369930773745409554513181564316372601352335397800816645858766392341796559769599742807186431595032259206394150585113179746947068338911370934837184940434543752011607087140520924454284896487361592785258825772714206421446818872642871838265994024238815690996709276599177420241048501558978348251973622860116257434661210125647453592143739000191216470216743773994041118035209204615206168086920299282035474362723515454198315922394608829896986358433529524529223829035345065122715814270693714435602285193578782860026971424540082504492328952104168264108537553855031803890166135919178819823531187697622422082990714638691922319738169097371966036377735636424013161367976038270632621908248669173448048141580775672804425055862992295143514406255384073689598832796903256259213798127505592475235332745854895941223591802541307458590045525281903722067511578562504239811550845349729678230113592935305095389187171861014857525986365629494043278231047475700166681787029215841555086733264848975232613252264665267522318004985180379683320850956150007205667994122415363936656074465251065527341296596742935451826785945278411478897612386265761592697667791514211302484181049052722747796405035286661250291288723259069349430393231516982678531651467835554294807184747878321980289081187943901751662386130860187381339152367462334304467284433630935666840350646817538783589200339811923645565102918408417874405759746692823366501302785181001222952585661207764446508280670368311711307566374941373201545996476318173334992073000570696757019962169526387158338592181032332446815021716184758796187379356102687242463282837861520069252086748956797609064759140017839026126249465964410629460966625799514250308767437086897715138604291360452606248738401422829822615860521231665772587287998215922390138954042269613290786994867021855565599945053573147121036216141962246843362307472466898073938053549589478115830761638341460266252095693971808034418053057964103895961945166543154839046794984381821795696244850506133836773906704321346388370377314668074306598753582769672458679314501809266764132804922890223470240929131121383415876566449051875451119266163568835555553997902821455401556987844263857966329775069972986622457398643766668649679944790499141120590330311437405946597778192546283761129618133465137044936446768563640032103168348633210680335549119733861649857664197756150812694570993688861202185207212443284949622008324290293574488156391410954705899409803947706607853877287587291064297756954252407107187036207733911741375676222456092434961841754906526114389587797095635952326756707872487685100542611686980806020997823457948013145733423865832828655147102921751700998925946819663806827595880896680741082104987364296239534969614216120421727700848066466259522468981986607313529746680430669507593852910132661421750569688966242519199241259287159417496443877371585209132824226076667866388520094078680398770450192585497807870706619581181604218572487596410309308399158957280291907029118810515967443315147536904924410563677034248472139129002221520769389297878567510388083986107326850873424866253875188475140143420931094472832200978566514787541885344002860907090555926217561783283325123035294179619610070147027116771125657008789191429023413663256520801988578471466200028815836654586497547926793283205983404962333504365772943121525489938579863499536405236319131750831129338220757824292100569714348126172295773352210236392084460853157804857773230042656549783011510328445159882295870921453504213465365385613078212296551361646540028854237386296093024092462498829934337987211026502889916251005394000409722524791518162759289222380585289899519575543243854892276568153198243024425006348656127023956995232456183100399798382669863677039989230638351163345392468342825703860286045257524324861523638569662499342939192222874751125845038909829963368464065265384700787394263541811209837462454259652296042689358563971783170617316176581457078848613786329521798980097403166353836861194556137598912297353546799072180308503583210406593566008344332033400090974859640427995674457768165098350883624634699157673792978987091996607089276119949884957515611460708408996843937278147516697349043680193223039283186552460815797434992697185984238037707135399386590869384370628268007135996850135828363955265872229044581237401046178890525124789461136468174221391884030136162709091513900103070172412951975233521081756420362311892786318344352881746538938083003829702980250481733222960558421775073075405880561399527669962075462911044796650762548655819073222297403862981545056707233322042914270253616173847948693051081824751772225582635246631880041791915994012044047414663437560907099163237619906890629514402909007851247455418804868905649420659295573838741888995785374224242408798090980935599147264953395648090804792909677869600051648469453108501872122196067431435342012464745470055202816713166019310058127087941160860737504246170192619695338306509371765828248613196910583794614392562946944873164128582973442375732759760047050903230164428339332936115585628578442432335460305020452754755208079540851145085473482515126791720900167571715577731535901815503632956609161680992885431195926973453463942226584864979632685145427736824829175543504960106658849106388510455742810557389065944493890746367218357169643561557147854767667336393970682501716702284261433224963998298005393003024000934569246040487645375197866567311100860328576543692639245372517003534146376819417776272461777317760535211301812764750647688635236272930158536501426104850043838793910609007778628577536562948721156958478996377265516862517193605580673747711560800676395062165045329901290148942086059506047769865663569250838459895506158592966699855562324500100361958261435932389066009649749035361891331475031685094276956543947795543267315603346013420430762432407690327157419422241728952019138553958863274648615889756549736932584561259829161249187364353895143204940415590111247330029989298054803580653616246482125833615195780882562952870389462797247188230981633914411156541225953049089719781780556156881860938604832288891804789185940536772978521988266564657358328518727476593988976007550977124580852951016976494074613092896594401362548235496366204044066832710712535474459081545849110394525367995750128466454209632394061889860231251117852306600737280083652684044463855749601727242888665418184484303637999727815585789790147617607220766943241666159269975098771405227978566921890178334488177790002098367648537614862393440952760090786066648755689231431630935920593118818219436646256081487994184529602579211904739524583553414902575519942954223552064225472933507323641641630230027325132385097853841063847693324037594984131001556913380320432632365264063128650893667862571011886037243139766452804666429976804991498079426500117546089318585669410871532012062570394316192456193471228337869300538249667980718208506088373891220335306642397168549199489178962966448938232713671088179946947454409242446738974144135133043702670631989305171459895569058724927702682118099327429302009025291864290154703367244305394317857664262244338208851492212472033420444205177180446971257215926890385510194684625620238696610278250390063679944127967721936565018740508357705519995716448144542118489295378094770102096793861530529317489151658685525150832506083696100104982683568211580220332499299378987717545503673396250235357787091851212857683242338212712908175445727748907553722921179896166374064047456801706347046788608730189358789711958768133616687298043569712600161170184504348962614457949699219925329212222914797846116666020369838328064928762750647972339678843088474481199211008607425444965542130038594465651948008019041090951284076061109122979962265622619865604905925910789115228557032179050331505463652558236552351032749816694905357304410731756829974169812404474450210512864443366499187050715293165782445318499035613907564310975639270483143218834607597524824599546731730960241665339110066848427327592885390389610452652869693708613208933596010743813197692378122557410924156184699413297839292461482578699890209179776584574956025405211505657141917615285040397934667707375041015332917301356209521426985183341499279042741211367081058944525922622861315641842881084875849927007934384475152399679101444747144169841155063918286660682817473267876511524620860668471230781805269881679172743367653858686842053630222431775183393923484309820993892599605932832153065999234661068490575783813047678208274591467201853163751234405374503776862211440049730035589575710147547515975968320833316391660775205771328808626976669169593105755365847833089669033834911449295661522383559093905681633186559834461160017061640691645912995282644409919445891663266519934151017784510443975746563356302620057600880716474867602190748777201504179028564748651076943335818098231246454377102043581009276976465070630188755454113497844361032237398132279530355976889765413458707110484561353737703243266266885828988186359636431177395803372388818266998465870957994351524664267859138784474764978692276748914940429474885419416631996172852731266396878129505902716507660413130481625525534461474686454948498377681580143440950408015003712394020179174381581575552892773518252760683855268171125131147474285457315289990451486259378735547657511240064742824784652239066235704432871381424581152626405700043973034817708358301084372324708736318000432269456360273418430671085807035609257397483009868256845792086256299038962934528327318232813734230288180676253822398774197076175280708255390207185557245344627938881919539784879777432039093834173634437386205360360815957576712344699274172404754095880399024742482847897027719738482104442908295218717906297430503445586559296157686701089316215755206183324019025002815772198452544718517533371792740007765764427251825844554678048168904536758417901243381676054964050598820548423655855436455391502079314994725130010552146040089756780711385933299182578486352471070003734648757523342411201362544878367813716939722350239569596492419175354128007557149753152236101786351306060649010287657027053561007357699341089269006378744376627554346898327466219553219633004306631039674910646883478759526760516553572200658831168409281096859784076379964773636234400723582309210687785505462989342320065829663653448009808197430330306457347927343210596252907967550466743326851925562040232889030551266482744517662828410874928782773589846629542033305363809940231475954463687300196954707670375745463266702784963410309305511319792897765246246531058278463211691092606354156880159230252931738071234938710494559317313497060397571666531650595122469898953654039155538974951605043217374152683121350129764411346007386222088578410575104368132819390032018851571995885454318779070708589858666558818399787550177848017943542933012374564513317305206279927897774029633822074963993557943044867245793896473381980640666243457775988460376745133077079800878307546789121298263331169255674164732671495806872133958725847390387603661745083155370820461382277215823671980179852300034335602132385258831946133790704585199648202498984269696171461062178564307318008687304613995263670935460341772187267383440138697009182186598121111187530272613795981919459963145957143584411607608001670876819223361567024248003282858853126566736921623966746747314846708746521923992947066064583833785917475875444223482403964448045094643817456590115211389082751595289939420014503350023643779678250163369709129513264347740946935672597548609199168814340325419944522805296428677237557086924789880551866962659885489086576030602099221346062243782603116145571975140976912170043737735310331937381828499130208408444979009566935202234036720378790063525135159883304842233178719889245713854208694235523946841654739981507885716718059339105637862932905225737451820644444373728184710419109195831853299582280660826105143643649610801416390268997319040423388313426801938383129588661451590364452051224017338998686661458244473799428710026629199397707864624555991591229135898099077969198175589347028562665460241497064912995875238711581123443914675051216994045818182175921735824755250375548605420507967882548257453926519944164370733001730910326158571474792462968224087865424216525038887536915369950234371210171089052768959740616055593111523242256099490166206039589435771067632781460767240987913158487001738377673089536978378911975552797634515246880897010791077969464664021152929711112899715431409599028037991629257362431079796532670151273754957993562330939607183595209912364688275068823080209588565087942494500642234907160267306035964968519662157170741742630935930737862105471313491108126547805231474877647940650852302394693678017321919098245022459272297277465326547634489928361655528811239314031001984351484661884170447587185071326089703155121805508874552812484923028845987767581670857108752563324373099820296453793916198025297262073061976518148784877386256861431961028874121858050400866579472922064013242586988331353296156001370573030160363425715042374220583983341899760521427635418669688467775563401929486274827349314842388810281369773185937376604050005407810420900330017906025372563895554110762788827443321657059553795333142424670468375194649356112574739660351434108090146814567655839492277443631812439072491806032923008800774155090659127630552585565900783761385260598930914063828169519163114797935311457771292265314935169560999145793018233306137641279373379868225380591053148906625076646892601893055854144187096935310243776474072111592857651297747974197543491073453737271668534422243885943372240395370917887001227020344427550959164614942674650777756316119632778535692782648820986377584625553308851113686543959142686923906844122338540562405953985254561909980105959142688428977250773110125792590697408725936315211841268806462515930155724136776416465928954561140186144220355986418697807528225796559643318831133671642536857198415994677688189218202754647161356586585220611059332132027818365492461184648925051703283664125424658833421094621442958142053943432921170173473261634894847312636806705636764342580080117346851711463694514964758015207168776324777652296179621617795339312499205378700735201608123223036750594199582349150108569690267971695334566931575573921789284496807261998555349926198920724492311699909605099842155504092670856213048848181221935881007220009322798208726776619290210888234487419142295822184277015333716968542201368569062832622928035909672873376197767978306705527049149366525201027925241118987613596160810161020193195256788337990585298713459940040427127306738518122608440503132657528748535566743693962083474836524930592692908908058179121418590998887255358111483665252959678351255834668992249208795666760366443656233780316199127838813167652495090395877916865744093814878489529941871227183383663499433207669868132279278427208768835846513558298523575581266965775591683649239012798883007611756367562181644161994938315414154309952928000126029283729757296454215654595150620682043902893848240994637431455981025278798786480146530266872583389742859968178957892877371416446342828475046446991462112888731665193850115523661166411617070232643562981649897442785317245931412100943030613663225997395049336065309380558616752179941838217959869143975406751217581978388582056621992480120249076328428520399289696639939484572500734597319723533536554354804479283621227765753630270429466641488784859547046897388463100411634545465723140891210183011555482685224041291305942866274450729980799656622216360858067807054471739632537331054953423349128632564896248464420213841484872607104083442713199626970204425839975509393579412314759918378926271219385065139738053385503175400361130911410185877107684319840214710410593086277819809548709816190180879856530710873917715665617795905706968485708680248805847963658240908005715545582344807713979080855974031326774041293835863608243408326244488604151534203543908816426539523427500148260449803728191414078275688424329211397767531569434406346393014368420878957337369312102023435262860065987210707389083773831939432884085903843550317933157000640337370668669754086595522154089161097691720437492057704100339025187831806018396634088641460784680397394538274947757566152727472349471880200909046512364973271745921698989422362746609270459977912762080745898904682890875287651762346131807999409724179614807136298359506923944546619451156780776523870988107659613141404407487371422059223801843360885116740151015763377476762471960692804938760607178863451878808035659993107287147701860790982966560492052415354352151650759486304676587833502556938372334666702785266282120732214492739023032200117549353793006629058943424424571329949803671986529015498902191449453757245834423963428136133655572828880195928235450649442965779351730785686773763061008714624603096157872789392103378892910888695780761525376116279395891200049632168603673729920637408637272344475844696823625989054959004045610077991485860543191278438000566858685393136382870353832334481590232968446635533344009471703699456000602956950983892076103034513032390056252855543006150246370797336097580381458206618480221499092922817965608077095695915974103423695661170121181996481849767115428698049452208499689737734259700935174918505716985496162246321561496843189607794622288330019661113619305162795640965415213624405529586103657182941907286487190953834285157613473945505469406174579595408154547030104069461586400784051670308998393473300667796358748733899168364619318626799980574922340130184096803954332916340375557952967923691148148285603211043796683087291844129601307180018823685590239798802703860440357771775449919994400574189896091313378157068241588253932142602126056689253667787292550457224834445227729660895451345941354324748899019379033901542945698217838061971440446705689764256513947749669392332421849679236690458303777252317000877927652445466832958282616208431045117389446458684731410981608409971680452408496356372025121111790881650732622419030025221821474066320399247239181811559847322878192530291649101603743345708726034482345198989268439517771776047267999794948125218074827782946983796490209014154187582671116294170819722882557204878337157037937744740124036537770812258185229130289565336945432488760610544612221222142036937354787337663297916550466216455816124102025842043552747337538399444270382776995697475539359642769585448005662763041810883872666153819182882943268369154163997091252431851098166520901251189014086407262492125023795092940689288318351454981148678547262719673385365585852824849538464448103123986076830945373820137683956964769965612997157188626086707775100480738301555076585384640027052100087732380730878314787294829655049425145697573532071069604036386078011446371075933338547176324518451062164364036906144042890334302962167229939232763269014110316538003122199187193235370401335992191119077195425036936066381517870006214112422169243344630824237502037075668466042520273534983950038325033308759402995252577104413232165449990139890332618545021469186605237954916056909074344408819439962287845802060935022728782059528232430011994654119748569768285558092380018662782339813625595377883964082493344514520882109289190742747223429332249582456533316759113580167612658639152358972249974783694498818601164912561593818127268257253328765899498434289767410590238238021789242379692993649078029697290735759873768090232204750323173269536223065986723255677173114010611221406398434300554540410869847050435197838436001348259846584468721135267069693915769572530692614589880662324697521097538143331259354610994294028661620322288052333183681177091962982919694240668205085769768539155548087513981861797935335791732326584510868409249020223213895968364275526816514293431600905928494619666927554701269103961225903378594477330122009989281655663940644396065147138832079628929872582417531947906998078483558640079988346024459770796139577238609217776333644391867806962761240360999962304641831676239788535863850623982793529526782269117901815946745695310148872133425113905192368918787563476299557207152163093488933716921107668016882552098891876299114715193748360259969134482765861408837462430748687520623411241750171795225784873107568680458075573988477351625876968404537819283158306867816241459508372642902030839919568892544418890428082683206401016376894685272735009358685899618347231321635700264128275802007045643319860028479322416333939963178419199901568842100897019358068663966919273651009954756094073281885207864680121498290218450933030856391710701748861463006692762542218581111314246899577726116096837781446206373407096265365133560926735688814042383874511357783480609339378815404326215921165974777530838804337252536135605376491820424363492469732672761503011339853194996877792123860377487324463611134402862231856333479216756155876396740659734902188209537498262303061478041798139657246456818711520782732302092862071394581008017728509974889895836786495919072385779440670323782079973724387379989267829233191162126616743214309661563954256787958077986916389190791192684918978495315041827383793133070777720800646651668402781693955199599297604349032945845172275666274424531353978376787845117951959649697430007420992265826956704581846332449521056945088438446980255698514372241717003943393063628404444027345149515500830574301421713175345254997770279778132344065795163662226481012572157298362627639303928552940285288012264534362432258316646432672463232246086294631993597799879226305612490554517171195204539196430516425570432302292546902292370344879923983031761364700298382054669331720816838321013974979539591173135982656376973281001803656142155530013930427482082632092331712337977554466764210773175168562026976477980367714306644864126581792185238241485597416371569451810709421308194579904206958470922031090729369610296373500251893078673267278509689589350533084652611642652199048544129208091374430430499634800823594693711965018398706058530280488999170450769142898429872920863077495827902286689431521109664894364872022464641846148989629466565854824840236022399518648787046538928655070064826256965432955081423675272582184122045427241777376821460865276256587195851568029783065868488044974498277986636510080340561560083330156680502606293307476672122860672162483035471807626544341987320913801384934889283320929192293921701527721326703254886659487822695301569662935259690105977113976786052092180473952922357309677411329471952161250021390319963646497791570645162723791976259057930430378776672866404439851564893595268243623276020484065870921544522276635086090209855664018477103927017127110485849199567412219045758971138081237272648336674143172856770176206577153166338773462693514029490976882976628362457024325487284259985696297786138902032394816695575616978298930234260244132709390139516711323151753743806649973594239961939783354714190637611320561022633060871759540975442011795952483130884194984420310926572583393274679686726974864197467654869629724761656859411875218121270396683034726572649137431749019903148725459358867333195430631608621641217105535345378469072287577874853141422470663191588399426972827766439904867346965497067433199971937491641562621113325566847609667545729781092946119625373233093070580630608431411756323717200973671107231670212331392433830018510122651328180346494218240393830238704596592549702773178304760694990743557162315530539494928502845617685672981308616481390188205072406229243126861108736649477558188870917937622949116982223381696536195839706052634923660699713943351453018147025490211234315929621531276266115207141871028208468028210347135594574031059319665915195267049220892834993197436721198337653191988825876108690403842206047149902553584972042428569337505692381617297980435707828869336291018822492976320544343761239299040039248399229746474249732550175748980195349216101212986789463260390367947694587596164181160368489399736203878095024736525206024022568992982330579950163159516172049894006648267904156788782690214961408455130231128646125009030452840648032142519891870329926101696310749128261678359160301126158196691492971542674870490823002124480984955213113905845015159770386952438052727208062312418511349193056985520663184304123093564800247726692319661383812739285080485778088450905757641753159736243235161957571794889901639955241536227427572040792037907610819274439175051174162927331088125907497224970688637783321578761594099004515664231117852179734091796126333418485627669159891796611391323394767806999959748492382448228467572451842613476265409266050032647967907748812381756097985784051299971233448771620894092665181573791964013616045918796255126189217917032264723609515878224455068370929573289152164314621143501790488845802007035471177786513264395560908275511563974412734349087260862858662829412658598029538328976976007158653550132808020021294724804789850735085091386121652499272073324511618433351537946760493036384167717170845273103374492720856687336490698080620216320070550621573081462569217673097033175831426434616249516949200135865434962001852005399869989271854087872229872867599203802997163561137874699322827865657180371047113582672140489655980208033208398597737636553449296569038208234534356811836340075578088118124233123455626825578987286704113125640650602955357663462187662359568533094516591044346257964573476889868684231715314211415443473154507846712448127303141848113121739114917180487781772995241560829490629604418831337678261240717240760600659783233982883657442979707904262063706272081335896150632967232211090583002018975570326752881749271890464096125151943886515073258342337929281365492520736129990360553244188593248622315473764800337583333597043179684799203251863935614257513942071380101027792069814890642014979007425594258299900862714040436413891389213277607223902267445815167736865471765383621584236709395710981841335265057854042353234846149057609683046210465903896278032705315297164856982874813557654510161415548841107206512921385398137051933380252162891162522477588121412924646878447659794907950841073895419747112558623426222496569126845791953441282455912234108571978270008918203800606904374886334201294151960772557206242987693415202556522984427456657832661980917489767736733513253254557010002305285650606175829986378479905203556472205623869263135999089950464358150368554242947313333298724434832145339532741595965965460424375520119160434429168450632641576440666063753171535231471086977711298345510738296319449191889263033598863576912859278092980015805118618935656463381699523142993651451707628210952993656377926644584836256666847125608420247654491345730172094439307050155457405498264493103980988787275543016537130945037496866859882764313550593028465283333978260410645407165931654484919100966902353213930221679164538540155276327584351482165146753305036515160475402093607613904436624460046041255255674265222130779043294586459978802583747138852594832163877640121822375173680876470225845644524508922658997152032117419483109390675866071060982976585158051856418720117223183190221611016112536727022253162377354489424237100615186214611642476106735473710512587236937719135835539086097167461029087631334665768674715918919446080367431986702904196146268091202518206297986650422910812508665679942348494328335007318749711587882327042465880258684338731259190063812437356581812871417961861297520127565847734665525049827265299364695647917498901715116469881273474988831138443617870396349330537440444951264933467602150246654352531598577993604441446073445038756396771941674974556307907798742621538623303389592194313102010879421708834750112963149844839992492621607215995987678948921660190451860292675139229225711870710922879321479134635784272508084500052644548057285978787893343175250747148714027562561683410807249550100060979652811184170517789489111626573563399148628795054107463735056303707122736518841411802682625594937226286250544754303786798040212690703071820204587783917011320235087120282178091210271798713946147003174702193263096555189889043831291243849137498177869083609264906013106144371609853249473297208917792534612482947419831498950280425103001386868022176267139234706688679349044934831620468061302592250868642820052846917034134020407230700377712593091812115566319341551499827522649811007724154325661598848953604860612190686498529706274546719675932115537210565811778604060055288573554612710033414522350846612815238799554676193110040155486640496888426246469990630604272236720302115024107583162731964550497027722626629460471822872527784810060550645028163102338289320833570274238557321692522048096580674537889392332039768649671635614407770467092360250471449369573549670580668894582608969361723428866950311980163936338685021341989394501307263145339358998080325889395376249233623380865326053146216801780495620328800281822224626082019349077879829516211542527765460989933763353067379167910059729285072785615374494122613999123006593102406972533275804807493592330620528552316726401950387433844999003497575324839258423886053255863180023539238695495110883422912452815091906846943652630708487248248235962193041720708868704308150036790769685820705010354389846649269397917307996932138136337677953709758086058367982767956373552766558000792339024792093685276744812317318014824101881538801572498910109106267632983073075284933282878950700285634979840422001719739825808756161059516429367942082965718905469135415339728783383172580472802165177360011986114935084383343146016397155637158733050896573608594931735850364258448535744232240132131119824121621889951887335895958797158435788447006986252851595581739426715459830273871480934239302283005513088885607972444424270488636977637676289327228736682146133279564160932055512266583861904190624093891278501474709894007402774516414600161431233289852973492728910923268511276805870512788417987640174681600709240105097849676007175037664446814992683918157496971725821715915102895175923126092660282867375944540068952436563540947966407136738132655440804215851650228255623175777300527490297212855362876283294426581747067814083077687933999776836447976034515616374043940999749580087074726859916026183500116279430757780876339018765254655164023909208315552172691837722421287357979075642222675696215637183618942043905180312384048919986889228614359240509911642623414946226106788831255717482417217934311094744805631912170806766227536323736298040177080432151221181447697474368256580423752313330105379214257866894307091830006561514213988061858637200588106910282137369253334940667093569270689773866521540616107752998759680619108736465488290881343123769896797003414076649485360345701305138915106616081050631475956737068019138231683927280289894846789969268852948440466032089929624398828491793630936870557272534634301914760942021413626777154946549280866609100298135730162236539239895937226458465810942922895739539515740181277763209440663091043244895559752930728268717771900781558459527556241808793861628290342366188937117668284351313940368382822405173092808437746083379818017875980700173248476945924287832624778083845919745854131881439185492349083409906436316248203054960572286583646041727913075879497628172102964193275247901247667343610270110991545619582303372336124628406164125497362160526341146906491557848086784755391486776514967071513928652227742154747165541688709399376067467452085076573717067652605180441714143620452963925589202089392909293396365462533100733122269615259469664643204983085668700372741463479521745523246501934017380904711052610716293377047875025390593843177417691281946435408708427013337225229884096172243994602888083189773677340742360566700887376319055593147651303389226600913735515040992690654536191604767010160105247634110004863201077304769967009814029165264971147150864935346989314516898728385337209037934703207329658470418466645636715700047767343269899928635908444356149808437686725644467239959634633034162316176525501166035822619679874669613071889222487639291805727114297670595364963106458585914442424810996290485046175482968831863980056132239459583802310539844020914931012889828644957537152277000182321179076108585228575509734736864507140240982091453487364151797889709789299004996715892367039914176104833072106693830361345523294789171190889126871507332780363043544649847012114122337655125396337092021544762563706579427466804059075656424807250493851434676375049615187455878630962904529563344324408423197275387186511314687373997003648470968723277028589287547693687602373418928119602547417174232119862479835810070480047301858676415514498590856781548585924948797814171016970676840774998985248259484840008504727697437459643389291014776254453545681948075422532830401875394368368988607301998250630933484531828870887921117595231074646335182672675478388860273655347424013385437903873649036466434891969068957026153395873381047183590895560261793425748681154939462238057363959469824816236212502402903002233764485455368324381942808329408088790117626353980566107367786362097435640244636408032008111440845086773332472543105486031232340431341691533162138016992172355312109542479604303647418723610405777890174321705921053824383715888998346402372351526434629825594398697298005442622583543716648203568165597911119272120415456258261190065575200346519008515403590603293959907358839568411332896872788042942516556099563764585139131189972098400348140263939262447801841516816760035027277735493479345770646272425055210574267083606945273887209529571073872649771044380560099221901251540651661804239583617207967887035275188120378037321003684657847082562582833715039416484641889898326098278616257131976014771117264287734945995248479549395259698566651512929270898141369949328214798687603320397884801039309009763788556515518088264856175289046198855572179958295386369456503526065094195408149302297482412673663793940509837970530154011696962123139257760894077544566849214791694834887048160922142267468673066656488473827894608901581652926254792572794625338104496341386732603465176943848549215515250608738998456036030636470062677310607829104804933499241254561115249203425792023346800581727007698924005302709458419001437440135889298258418602019697869367093538695966675426244604664156998773140894861065121900946490647676720499975388953681242129743054849246760325940334754496354167762430867639956419683752487833305338667322191343215302697153318308487685217364931948381302236388971833752884579359687574794126905100570754870330474005083005077162032301971146334825936462352727280165426272253051027116034677752169489539369719215629556987012001767320888526754772571138234537077959937604850693064659529081586657178067730348095170803953620197016850513167322624277892744672777550992342474195409375693530579739057010124197212299890769537980703510173988084761776489359824689622603136614982051725237421102925066876438397292453997595818334288787080413880635824527992801261290127186145594571108697931247968339803606947805567271652793167711274740772947399157458127205763211704774099969741406564236123932326514860921829324407638091804609595349442613536708769471373078095016611697041007106666710992131448125899549905738280838525782467183175873619864148475918726488275135524419456892637191832148306029593102214471114627316557365228429965856810623124563874532545115567370192592617971782872807349016117985794004839818301091699136884163130055410201771603859769362323740146179775707356409536868963207195714363726128676757611634296869346110209201002622594477501346878591317259793899773212263345631691431939323891206686338772352422982491680475435915033932339538551926932736532655994261840683956067462293842769548149021336318185334243899712691000464805470494561030655091367345253371744311746910482064848705319607213356761818305605615896352978615007864104358437999805901886197120048860003251441046285938550712435947039660541622130337697282728993382045106493838025774459188153314126413033638376039909123481235641980150899762899349621460678521703151999910253915465138146451277133033255010211831911778621051974280684359468722179557977755142950241244804414456430309825298289965527807755764389355048889949166937471730732565032305085787741613638700357904977295131656213931115897351834784003863781074533710339744519926100804852222907194621910283425144011004575563659167719831106186122113218802090648453266032510320889087959855524083144945672524217566096009987616537403196182792494367713607967187266423168521050602742869008687724674149863093262977607089719361664202334360572011866090364680756255888995675102112880328014334235649096145089580748018072643339803636793095510974509411795650269260636275566577771941244153205371249195466354967281098869349539739108634239607286659206257070587183178975751620816643782575286620924302473688685497398406677150282037977552227974423506223354323648137526947533425535566987165069516581055976434914447052287437609011264970111005278724210898965528801425211606285425180202999122497606493877320930744208165365668095747864383871142416041121552261069800463408070115947962712702729162980349239648854742183163656847338519339530332619867475263257168625252473819560261945147365094274551399263789242167407048651020537469456404539837079811350519765105641441910272819189519157943701800107196608681710700144842282793006412987480767147868537592527154842767115598661425566107102042129436553564617916837700829635856387445454174358240891560750147495211281135145427619774989105167271770575440203302170626247554460520074667742149940791713981023994667769419878461056248229492890322654204761874991134756700499549338986819604901194078235049811284273227137267922229939278665180769226855045757606938334433607374736122853996750509468433184619573742322185106237602147866767536944174294060509593281813006213236911422990802524390916319769483849174204095785839007596281796042211899212102067637008419102520031517819427249423878158516587141189928049733437892575359088756031994393143702531397181479092488471268321705239817941281876524007894769300675198872839701924714911714936075600899319904894960776625102017364247993962836921068990765051487408636408153739621665102923688754781245271847593793484834685086545748898818611416089901490542421484158135818065735296013678005217855904479486906781128003960566643519021054692078401224034556557954290047665934290495119494527998145278622294249990550796764137738504509655800706455276878339215711528314971076942071530468643763380669790889540588891934499539997873406569557698087675210733658571611582055527280483971913530043198650232532534855692117833408176712513797003962858939192182215273983854052012600737528935884125963951667708690365191748322169428517688174803423336798275795063957984392233274805465362915279569226147435703074218166463671397969751410342425150537068090153546577641505309066933627419370686443363363493136398922674883511615900635963807845082669947862121911529172988685252123761272815399708444646726186464725554437175969030930563680429781135109932643141748446286665996540407197485418892700612770724017534170893079067655053157538564216885226257889072710275415587047990394558242184102180400055773727995390676414364834439360828224512634489866679595093340908350976424251161958866161115986901861699466050861425655945446980546961255402609329559553021470822305302054769871061935657919119280504745208312234626062665034621355780749337577930372166100307888487698798219999869157114132215400996454296037878472780982337209680479433167401666824902646721920591821770376423872060731014397586477392968452186395565046927563884570206626480944544128825920454726163662930423267519967107110475967589343664792254669772387329238761902231234307054438034415125883686941749624669397863302057046563428246223132819147262619236341327184940058267540819369729239743647152745774501021066823075611996331743725986982363009670981126466120481308314417890863073116584605937009788960998781277711150554011150550812639580533693132256316768053831898985584549217857230653517597117861000107510312945369192980325137245071403448729876515345727314721543465204092380562199252958799486616508203631883803912136322227366240062233116418259062274780950352789660166504574592210295155073006692114516608684478620017576619903017899594663683123050413080683107065068975647772199770311352881192422729006138651346506124500073032220032829319968294774512065069706882173024928738250486234027256564581607931772926105163697627123449852142403478909514733107678631210395845782672517082347609553733213528706761964971032200100889092271753496093375917789165923757135176429062724022406942643565900366921983743884165202370067630368932785906611969518348773006367023015750576955051454393835983183429065594910155954208243276383901685850713753827439387334747288509843738871796094141185767494911633076587823781420844011429684824826078384570637939630336742854865042909365211790323099266108296352522829136681941440504094281157033699540113243086782925716933179426961620225922972469218609616891359493229259210903590651628694684604105929550005446134292221525844114669887402268968790732339496432813762369572073942870868524514986978633552743888107591536994923124680807305773630926845153930720416750565309270768552522315295741686250812713433848982817563232569654653320296788365599862031839934789259719973204000372361775856637148754155475175995854553319884661329957734416676049803812379710725054993508738601236845540245946924932439704420009143099341827709178076074605372345062975787426439127052742499864382300773352974167770947431279833908118757264899944416012074779045938134181936478196499804223141885873979545899492830661121155963295067487671433407252882659419674728327733087688053053941054320621858814418589425860346432428403682183860014864451945313933032830377284996760922833898020516303614795212688975841858708725693403305912252425678328588571512347872770361538949739754701739603188403373147881407235915827931747134457481667678811910183249306275592242610009344120289265019809580901905812858520482167243932079193516367374486841719885900424574977892859638421443072183633358435123630725677587497845968840579115562028737384976281281193280403072369953469480102168405679025698792326223408048613493209656094455461274428672152707175507305236134794079198550856026795946085791768781018407916306315524863563792025591390983562877637905396189815144659017149027049260127297398951159287877360426879730344959413394703691480431388703680844316084185740735828517047830581071292020689678516608264782589511450908410836089809568935305628810721819693573549058918551959700613383948815608212837583864532934643326929757743673208099389048971178438884364757853018133344475951678600314331211060387801999132481403493052252765600990311245484181473926365590448900372584240245314701930228066212898236700738065218073472537720637896726653548018868634281982511101973800442411468670037893834102204789011835478773787477046401561344628673542195475434358264645040222830216249244598758018524813373963259219868327463290623075227137405854254843661582087372532089406168557445081498433884181088056861149368812100308780159934523069481359200406690893835533141895374018515530838299191101198955514028102091056998292716126430917139157666787313873716034031444674994875982322649021689406401737335308095617802759925430752774491883560338758507695385381219325531884233025559143386135605668723815694528458136947481141539196495233236436348156421434973733156888560198258058336665896286729952149296535730301223486931566574100956239521887259408576102696163982857770927212252573335088048425559229126878300243153667111022203610028999267572727101629985879016667910179818828759468859130298857318915777112550467939339742412992251718193529842337536916341480998352728588944000244141084103907722205619005340062401500592683645150405712195902456106799699553123307832620665958253692249593707749245943122571160215479914401313271167154260309892622125079676678157221739087379522235183398311513192450543011144005351923845666001942826556659308574421073652267645516026793046742932098442428153681135801417118445451646373599902461906676368633399265353205917056855883513049337761483651052504740543178974831416522132984623773489264188271910505443007632219829059344065229055679278442360980485215560430071652512811120676977094560008039647518706068927657201869833379757159087681421037967340208861487358434614668792774974412179702018611784346504128741082864756197778584746076588626944516669623907615823964318599976005018792982196656469072968856572792457447766751715623799700424922664626435376503348833868218444458291973800583353689646795651091462420876922266182757167512088370520581656000393367923917464376667125542022305987969248310154204336991428199374719437611590182786177967188914633441961570063214834063060153841036386289487583746929756625142322673980773470746354890700082155419634933769387232497184840140987167966035953920351247852057032741542034665377823635475289337309209206207949311537533971881225753338938684885107748651050719464217266974035221356347653270502505010623113778334309273869839312754638953453180589601880833770637800647659870873531456619538631967424226233384035989738191990487247345693096514703642560610847140470314960731150827938452404833318914335384614027450818023742462418495265146678545167514533868361245693603890621988439625752710963015937037916337490253637465958312142139713792325337706871801855985105348748739621482467694752172468411744355853137267726325426436937003763424131789897911415394593898335692964707530705914579054751557731681133530185465011964651538655363004032298108662442407297520755558624487781700041715948862917865714388125876635697351831437175737800406254740733875318441126321740684957030533401485039712979504578063369916264303187054769904569710168099051511742081465753010122806644995663356085456317513498102531489238061696891046242845596055535842810976216898411556529774012131562188487636374803235972642343243051396096475454830884945077927035670149254231227242511280195142538307654803533889869742091383589049098330877903392084111737224620579826288844496274878491219860783200901172703447947367430028762792944935767780031440677183881461918629093280371951737966913768272157432390978729783519559274262250532909329225203221479681798282019330678195611357017648691971134619732917238719425353925234739488772814993902491705361627120992709651943826378643492533842568721970696722230207429501474456049825695238271991405381880124843077433537422620041712373794169122852032411646208178614940889980541643315954947838667768448952855831318285700326009708648261538539450983351488152401794608482015061829471834949167331214619656223351825541123422605381708482431586524372541235440135481881790518822249210542631410215191413814538964794296285235874111402740943763095333856889649435408946164117518543178125178139090755217187458537317849648831600754178851977735895046871468945439665578099731729436848809464583610575150114888896315111923325894701981588939085272884203588899990181992839369877571473086446575894771374154649296783928343719298344953709189202639124077184784317928581561091839781158433469342477219499236488015953075035259168804439127381401454918539650312725274283455069778953626455145699317255663514146005807554732409129574461009333360157801626273948542553792379873971054886835602445870348002261493666968642790601297393248611900438369540035165363672782817572994295056235192245738679411488811322935505517196864607438159579078005799867204344374136590018478185782391319419029992242076263834902539033053449336253483661666647787653236638226668788870063812994900452621746357537294337912550158922123810266228777075207175237417277602396926969478190718043597352155276739788349735611354664586934265025014359934022957128513136762729039399381189214416382581407394586921844519747701839550468868472584670071511036114147555737661851046010575311786581200043168116319957353541312960605866642809383411827060040801940779817409115076003168248856298168088405301471215812861592361767456509055644731287401527769672119007812761517111976064779365473246488029208837439529667862003212160583264047622834110202889175503313102199707423296142697481236203689815077966791951007662404059908676838511603265434558386339040286753968362382695912719552634774602689286978942832970005964425382792308089304082833890215497805286191121482318509736271790725402976251947897693504318190596622669632067995947552880060416631708437238163353443874856830978640605122286411854828988081408355520606071520554651904270156206519151984347146226501772033705484524844559333211443035405103162794398426048957428329173390333927215961753307772701590928502584752889111959012992920517745408580624855232848774638751089640923106858997740723168264649664230432130499853628982546191685234737756872847544513734836904577681623312725337754439697061825530689221966070815206725969959712643214639273144914390792698277065748225964754730567453946281374060405569475623306930849091202313347619089116761081416613545598469007649059566321498029611879016397556346575790524110200247450685905014558610013932166825146200074240555948044986627506181249500841826160693983621460506296451035058033379747884553037269792088425571047523779161936801669555305741048681975735683204499832868958188273667359153786682273962588716091980527419740574828199293025500465132070602774626412024453740406055831129368027270219820736871510160207185832916464216011232296169653397655994500852542510368174498694254197876425626917531485632496682356237211696627824515525960851655870026465678674930400390401701215051421839085763056567199635346361226508648181878371450458593791752962516688261214667267503519426406735242881902437980109952265394760581206242669341335088566294576423977598696036303884571298262767256081884075858990547700367056384906470276502850838613356635067286407613396422129197252874991945480219669632405163482280481397450812942802114624896402323003453000997437620545086001332112173178082191008343111376235117054729517919150583443233121361498488780066500241102914515924277095760436723393191512837648421697408005054309858647639990389353842159714712038127511610657986448177193852168637075652750213594026766724939938930424314742308178135454360148637555487593729088938380715725907796225797027899644172934482444717255332847535089232512788445481134872515045144093619232394114586307658045936809916600287644830699041228580864394824887886178525523662198738991784286459215977641209548929519447213125911021085532175528529501228662046567081961860899392190757533797272220247222099459688728702495678183923995051270546131955568644965255209305446732918560085120031459123094512444825026971850444340311975583199503941904455655819245764799819824145319571424439817664603870259815638703470339243731975698375711519828194835920287969163192194822063966514591217770495200127323637407612117664475553754507975261971321644447858357932363330517286650336007009895531092174183949666786643344761334877600574941602954543130138640038492085867401704581753251614702996591165923825887241998950175542886675111605139125755479990118142875848313911564628271742922105966742679347517871166633033996230518594685958581641385364471716598544243974879665685014877711194383416673023303949851734067756188018653102862839161302420595000913340478350648723220004493773521180299798443613289940026242834264405471274435257884978825940117403887879074898745184493185413492498578430740641332345663519398259954896506038186280826580055152595777485644175187182387401034554551024301873691080590118681522434537101334506503888519329960758491922963892669661840911571385426848558634680292131074151150004058117514796104645833360703781224501262134330214898251536112323154842342636127224271186397049298622800434032663678254596144140068759194811114766592808380794127652487584372329976512759121488445375490190199862656812994813723952163712419257024983236463790940227985089929547999971690985190170242042336898932314412217359724541773037958457455358632531149799941184288269120535076039161240465987603730773116211451172827488635792494933335768257351596722860215121708611704897008381204348139161904248443964517968924566656811712105172979042883647852538464247199300541184494284399257170077280416800923419907979832126825909085808481629294725465026711323521556104267073362660033472550032004610116581956915719497640352666176331700559971232670885363114263056593516987769090652072037346369338098122602259999548774788480458244396667860640383839490888322460972150629437408593258139390966166193341173066362381250332098592944399067716955456075850175892648522167876621362836232535207027220929828160843489175522645715900644099696448201763250027223207751454212444378411945898412795390647661705182355885965500255610977561142247118618867037834668235720985072450783494506324869989610537375593520069419176111096945544054464088924830366533517907188842189218808520497427152463669618404672096955372689294413891317862206506863673223211034071741411932593922739218598969763490767900065698343923589506384129417675172374963008285290200203364775972423022697295932384666116745994911452366359872239176726328495777855347704041631936481955312761099280356455824038326966986640256099366588328325088848604754745285103777248241124041204042750524433027184580903217232561172081636303304681662163889626724696383495288385569682308994248012134877088246780975998142224673010482242440783440560639292225907465458880405310933545977309966924133540241486470249427680576833497167893700172109510585642729316266442979824664969801773682954171114509777331516270154238722387931989117086771350591427040156598120225077071407388790102881221441294074251208272659446286224179045739032957500167482407263742557838151551466862801484355635939044019968613988078038961169688734426998865944051194402298929200982287337605149377990548073367121453058927293068938251954847475948541550864590000775511186758811543951093347612289134387632603314655281107444952944666685040879479974321064660674525309207754815123012552555766733684253800013728350160220015510381461087969181246047770416961182125093457023801448360222561872848578951278501933820344691112810844096132214468238911050067303771852914443497647299993046530059161659795812104961693675349510571182138862136804727026121748078266377883984143366863320461216040142558197743275924327713259507058293300439911178912661645876933644121469788924637221282502883329347256421888054462231998170643767838603900679265430287881162032780159305184757074764969967078716607168283731503332591427419294318155567552019410017930408606633078324647743103192234964382783370208531205448195967743402104620266288867872040907043977738560366608459263982565267834680154123576724549536602051203987852379628363442747875866438751578930775910294686957781071994040030520457528564844758997289362402535710701639813262941797586203384034625385659416911560814266708064660617722654736641924921288199297602762359024286547637797844099279776976877079508409987087851603526206319561639851164429334753195254478255551662560835423955237453524598532983428670205458985998074877408116738334862794265005513707684107549172383942449373112787677111597396712143434218909847360259051421489055760481041581021382993684223754661295756167430963881216489708780449820903875281755000454139061205423797141885424396034469250409989073300647983609965308387691383421279777857342974181555161431932809271536490400413533004583314363187922596951449556906149355021884388353796134023164965590124625348312522743246768590717963543502925497729752954523934183380070633588333368999507939148605644302674015877061994535204155949095970792214866405053527510462909719815448254158687593303138657574593637013770946524061339333659608641582418111737549355973299671514867634930672320673301367413598379063582512994484584465129098967289239548688808869687693754323103123887897646669462024508111516318009737641984807116414381280164775607809431810716404387373117502008906858884351486985195285772551521484696298597936864572611722764045780649107107870814659594644099003506493422223915362317493284608825133931217345184757772481004839399079360768032645071462473998964954751603994593103363239972895284546937124756728489596379692801849701197700523167724872632727763897415944233693589837707011218096245572934166636218277077058652641227390192125563900906695707947963601278043081893778841074216187228359067387252632185346878707039893070169342017475781625274179466362927037654967310772864756739111786327566220509899181115060917601080050320895642266854626490531998023162262169514794256988253013815542046651054124185198015210007569145978471353711525086277046260012416205162186353111788625253063361071075310679377945649064887472523921976202544213900963507118808513303785319179407600838039893166577287810021351726770018373161147400638401315282217029017765784518151104979321894015106016049831745661133271684434378990935366318128856391554589034580477480212761850840591946978709105715532955765646468029789756088018802615210112622990490809495651813270948644371335159746070293266375599313002817769574520633479326229938068031775444512844622217910032037206178365269691170793446072990418647561012527587727191965457405591147491242594414770776435325449646464356771620675507513006578360765313045690751564061050186519111442171936963631663747774679969968535579920140191139346941194801234381617274462597265371125452170237771427914417068083612057668974646954337180024575230400148981971043601184115000291686610934390925278498762512789576991409781495135891356132569136983479822692552189754648132406226186164560799763057787033936187393358989597893286648300102935845603343546959238585047930148379227592984855735694353673851068558933955907756990912291922603524104331449524892730014809313689440170722818715624940189756043312858412819781998138891944009026971502047441665112735220267392766298333344820899074464976272830159734540180147382640629156790993366512696455394217595961026783051216577001629469278207300474266243701198893043628142371069745003212483509391968304320893165544832201105977586268629425741540038991182264400524487288369057935136737853490216587661329286798865978325911879800323104685313859368907805092390196575943760710395528291087962398902513514554852363379869567781536292077679478222024595679996391268771680961455984931396134361173349398429783643228815049443803189179546327547376117292850977152028144466295301073812432475272924672081255140437982446877453098823415899807623992668545810742526416745191215507851699617685639625229156626706904455783937642909679762024468526315787040236991104142200683547917576523111714062607239561634992434701847401969371479393508693878023995461572388263224353592019234998740328923031414581277507536471337969004386475339506510253017565900963551519356845047330881262435676357011085857452240689535943555673403765148921773429623579247689512557624569823328434407076163845598916541908870972274282632439527428347988101201307130268907444180899621867316091746759634560462414468506404065427289008237656791604451866172180163970844729956882931405158421303229497215046249656729914612996288303422501461604764149342479628843558148533976788082495865222375837187660529580814208455965072897700946864630847117113507126393419538567745520485152867596163135528980080846852806744032015457784433947740426935756695940057867827578900325729934473595276819017087109809843282667926475864453441970175221164696683080154241241909936043695311345147034250829586690982437251392449438532999783938021910633319283162640181994907372068536078394511367145677701900172355791982341350155305407885641000875508883126666101372476297026639909921006327106877394361777179511484600260719786036822648547945422641253116472395149189297662550807364804391029319779819630551729554050069271581576515801558965480338685580797417261868297401796444206538712434425790985947868516321748362169991770895420468585524583141212905057578782571588075789061086463142196034659725802662040197970299910482951206210025424744187041620545119244759279512412155891730524070472867012140962707050274951625916439307208403237775814497974041329321633436256494031597414841587085506223471287494595471357481949341443762607703696495148485939472689187366784925221102126733865952557347988378931823973883941399642283892162982190764252247420599904345201784250009280689195673104033377541613365339779177409492704251697623564045852866365684141799590998859710377837652951983475026264874892779305160958149767976107854415777479531176336730135945980445300288903318155857964038025006069373663923438475587823105544014210320574646223870320422775112284020736205770619041664228979088567803293186078940493791327603941450960942076700469501592902809450617532268056394591816808853978024528014490564545602715226552094501643621736617617173791171482296296175082129237083738338244448640825203970395514863714255797432336737685921866337564042895356350025256003917931461109140396259612414089856014439647601814855929822760333772861228944224850938969911726065421337279312571515426048269861060885388730638137539492447197172687117646450242589896612507631063680355231891480252499985547008361393537167314295046660982529810819439015900939472257277318346752071009618004932622466795863088142896987019153806305205797467530660695959482309779481395490625648333537349232021202255864171105350348698643005460161565936133689261223809833649661833552010960977742184489412911299219946244349803831082227896577191258494707884796522777259939330618199664674464451623253163263332648197647949800520654432920079879015360554411077026155849290744689387559452946323935677551202909015633890398449524718980894662012662316038339861632362315244174185593002675870465235825696331195698175308256787037112009247171950328945135164180730438146343945782619974626371587664421037696692563051044006186757105768936804929520383590677012052940196377328709070287040176016390171006367270474025110492313418632922870887070784129579992434466170128833731219219599052110690390546869975592542151843304232564952995112635585270025679953057877654254363406557329862992402725805412715304590902563164072699558482296486114875365323539286003023120069698995894687473608887687636482120082950241518504886526876492738755987729095363990827870378863912461876824533290908047372660091211172014664589910254780924738135659957662590396753465315060455237681215540527824509422067303462909715781665792022342159875874443288349116070444975478322945389151860920880988557306514413453513460414312906756895294826552226606914671776553108621993456513678649272248746113421144582634761497629159712262344031003151991235125288330305818041500193067141129638070247355311419694490225840862299859606517023794621291630454182763755117689651404680470077123844148820718269493783674515932337628237143829786431420458073593963292361545413857849826455891316321015942544525407285306183424335575949754649739147225296011286096544044809482551617377291796573427163618614332624588092618960721215750703019477627033487535533726901150147356639835238895758193369622820979954721107116106106258425167242235584602825019680804136395445264317818673327093106222072930123265059982528565141011596635628630899579139228672559936545486806171107760688328966467729586685694258044203849448577838809924882592539513183594172906794098105548290140977381286154011535946699262645041655455437569162977260256167934863302523733447369930986436836884168270989588370566095636573060507217566852057046952297222409656978032860347707558016186672710188442136386861271278514125941638042563225835281503687564338610431484467858960208975953575771266997492743549344387038097935677927657905836490923942778122514337180611261370373238010239795081748380896868567420149761139062635719518260324391815095241902258366966797667263777987096579073136357620030717055609182946927753647446338800074958464977053745588131035486317706384200360469810681367245318035564328541535341613751595692155819329423863884873438349785262262476845900930817954093186700321898725258346822263239056305825915592224550662762993280645343946543103017950582156357091840295398693111422723947383354973557787997560898109161660490401743641960519753444757590725851603536687623336617821022408232603928266924068358459635665944123974715072258399890823517073180238051936234614512116150817531006836526790366348215938396075395866978363876274853883246587387724411852430655498381873178234807426886764699271289167441116608846573744753504296614563305309185971175702804517482110860159527164928346294603308339076520746379905372898451168589222028506438692924327658185588698953595065470307263174151898890815067849331947542809259964907247950803119082624274237265755347747869020008244822529526977334426454974669185921528858390663494916336798843716743313622940847691139173619377390827797990409344288113835294278297453469341627697293453271690297539329280473202354666401358491665073680182411295721708790876413072688425196717278302710869657586925424334261103335294836814675108180540257447563286754403597293606363742705351455526227177531112431750424379255134409918902717239693481166292668380557120791591830187553310416399321021727609206939469464624065821743631675169646740317495635213750469208848644931163068418822502961244920135146008828478091903562089782187198903203779381788009412716981312284853552701731328211724828122931331917478055178860067582913563400460215497205902127568111895936295039939016839910607695075378995510864586972878075420398161714459859248267145729663851000553683338373266113960877039982484617865959062062878698606306872733137867194890237144382356236666844190128876352613913898928620660942147517340858020638445201790179424508473417456218675626217973550950726968207001753966252257710481500232372886450493936211341832166927963808027542405336246288219508659037169508877906803361126305420695545525648964008108823389979938288463424995744244697015587863678055408228276042911179950857695572771309753147599692130191303973088426922495164847432284805633795598916683690870963736132631425062478435511844753693080352465077577376949724656814408018292502987373201293544585621850386085477445701168504440090638579861117655421703104780741467209042953244429572101512910437223114559157467049027572622522453353757934718859345069634905678909875889530354211697166998087007601706195324653706036214857360423460248839542130587882293984081807809269925170481086007894162439175955929727234156457122217300304466565724014766506495164299616450499264066838037261509606586564737449653588313016871917093888506226079655833823994492144040655917903697220838086538914334344680793939585060941104732045406147911327697994528510633622413338441553884396006669141615462210063312794105327946793842295675003174748626263041992671932430411847482668344627225692457743670876791901144430230293301298255497541514661651400833161262316714776088077069740794529146757560960035814870580261221662290831285148254688054920100781769941545890141335951122544583972634502871034740442067882307238255897374398172243260648952404463880207412726753770599623732435415446133414763684252518104332952188874714082432442027785825259881714947307149433008300912469569232260233523660608772209166605243196189914546354158221724769901734613577336148189542601160858904014120372180843316366512049346329973436952958281742839538763556534389581286222972876708909645992213066493291522862960956521004232099091520934909154810434075593574839273706127611858691422861849490543863453565996985668060532827878996586146957938449782712106985681817379105912585497097001623347230893477980039948795212720249694526268883758956693049877040282145502940412602132106231438472824954437736286568800189237611877444731661263548243415294624276962591424808936991642540989996356952206221182196939975610727090773589517211869867259849182962678932821645498502038928429570973925406526071825012048505219779189570223754737795687585389217353632789906528818540270315467225636569452066313945496254052840223860420914663236019428926433463949810937920351752012628186212681664351374652208032592290292920578405002519527333325300260506874613522249485675914156103379737264472533950477483431735092923501195224260532256122115401743153025898561882548642194021827279133340014502401153753875837460959725333338873885705047010796205215023254698765333618543436602635186979498239340613121147514003145704319759947205764445245159562363238559770345080506608585248871235213118857462177502627344683337155403284210210177200643507676329730599756005950936031424755997184968616300106151226925866439723862948525366224937696741879720530871725928267693505131382480053057026734262964430162478181251428949799549553057237676651820847940174437329789756948286095910133540796552389765369174098534685668638509274281947383291044894131145030442716095938824933899783405801191377387910884346359139944924929116507813758453997357758454682442663948600826380839048732157551179934023236229670940841984599189778890154449256101587329735992891414403612477252872279348889517808027025996586815164703788492569078120421416578261905303003960026038639994533696986895807546825317313175129451400956898763394675835343930924518477518963369834541086813527304124385551541082918014901777617652442493115955269154659640268585555502910408769761250230072530393588354317909806087600711992241610968615427901483769133001623298657645073060514452225652016637286985265798652148093466675453041144699320760297762659693194122776145992200973721526168859210299971391495591263717981867504902459754746805054608114184847512267594569216657029966661738316774260269573012861208030052477399414191038774261367776873495691918761556846849267361674953560371219445384980995880752157600728441135014821057660571676492172017951497421479254653938710043054390690101890552396925785592201645814428346426237179270158408213165713730818426311176297785584022739391074262950228712425162192798682711395457716011023916227330670425613645614521551467104072479224325153203980391090130427053967418845126888509566672284505548368477435415068372886956048894310306581091589467239025248776252421162572606878082206381271735182478511311473160301094355291005712530060296212257161742513668250891939547774268287680100676699076912951349925939280584173705083270184593087947723253211329853804009418375809675755422977378324955061438973540000665231801463519712660023337673265589661744284290158071396393650771187584777968577799293174946610202672997593732693153790442879711993635985560875896726128310196538415144798365336976941995287473082498408769657851320000498960928052079937113072592574762749360239111210557384464380107341974541706424051551334493731616588968150033651001524132215117071371033259636573422825192348220789448018472362800257176153407539039051389959068037650441163948460618809754312284735743450895724439864335156671921703444126617530174891656599060047728593655840091980213392915130897754631517958233551462289807620914288885732179621939434667396660811940362789219437750442529531218663753198651078253321057049421667201406935355860047084555876206573900591859814191581139154995625868554417304300395456836803648632158013679766855302770408203974364514384138875477926165118318174769108182911220046943706957822846042339631032064382259163614565525917786781901761454719229113506042366185504294851729374388061762970326586665870389308288311675267918897478615326409949269193323004573134869776014770557843397651032995161489082664969752387737620566977840617282997301105023589021743119103120854399811080679050158831461185679637613898145054794885981735530722603527414297996917697853535268560185385839699480807461811727454110571176356716536253065069264086860089213778350016135673525312130588186317445159078890285755144918514352291654239778359672366035028045485255842275509510377942246023188896071605173068943578168457103657479881691089311262534486076890128078703221519365059644504959562646623174964664362328400557145050655978231757379858602759392686228474926609664867896806415538740497147773370744414697113608931403432316441113272533401497785006716206737230160727043174564239830622975811519072944917166623918853490863588634839619255825082945969140939585723071767807588192333560208036024262904188276130350568523369325860341298319299266558400235868658071933026179086321430579772968643077999189837311012763975283109127270165796139371259018526009652271659102709575004451503022598574039754941742526641641160874472165867851999018864357807203336922030935246178423536662972883962225113413071470283787413822384994946285757968301683934786940183769405654164481118536618131499350791601623528933260843169822312176879934563031206041109638539873583014382214452136172622313179367634727965977749677674979985807459363143524438489797060632555499487072202291995677187022059618099212856736911067438425149912165069665360860944236932977499163973541633843806683916129549088239855129758131886356448175033857852760256625489179519340300122177534190092637549018565357302055854867954723281241766279116923833451938079141690538218335055881137257958165698927306709773099787041300699065270901874585168927101650833158679907607704371332656686178308169977622127563667236578608407134839564848261140300291764187775345363860312543337020710608137629893702538878893552378147129795096069491335644809875855422510377428641262794701659814951236327661692376840467341237406567052515907693855319821729416577675867420554325065220416051924876817725233305257971211782196796876638498299598859919893288779368433325200489849548625130036191996526407641502423488817240014867504959512152503890058014849110411381601778753177496627493785828301261406252069604318879828229708863113614626601984725991271298527287344148259238473920107852442314088800314996650344790560032422009729557119053327622499876262386332233857215046070823243392852986312746634060956788341959609947655369292315993182701221849851712944760072730782379412787587250204702317478673060984883230329868071467731942855703490973192732815701995148059412678167052260920090923674827083087800049995717122833815598002834854639515319612353399383359944436761808490608810043547684071592840791942915410416081909788531742964593289718548309751196594251731803186771715636679888493624722518156354500958627347915670844153997117848441864717638861902436666112567801769910342354941157189890216560686824394410584957098805491265557084203098258279079964252201929241381705131566286004598531499921351385964258309965858516380385206710293875828956018480925678038957455279938122770495385973446913901122241078776370290480984351686489666402370237368826542673581607875544273985400560598346617052627440792348113912205300540081211290990533549070641883032857269532037271598949551896673765537135239877760260300199060456108543343560495143013833527808850885994479864389255203733111745436654813202883043164541373098407076819826731063227562123705671654746607391357433859914264840462951289491025791263915874957058898660099845447008896389449911573823551039714912329880485097329553111852111706042364463977043098815797893049024380258447806274850863541325136995497748837515521277800634152951135648021600543540490222797431194002587972522273317639020921864850491381448586447487348064504915629200024946384967724944866220998416434449886524068441513582631203551372442538139974857909766470904431519475926292656881788939852729603075832285452145981392532651871330791461497989056225214256415707988218465265518984592100835241145854463232659294516518421216776125013589477866938947288195922133950293672546638816093755156096874061500810750677386605572723726830449094792064337627735866928803432123617303950599755896683180036432461846793961696302614381829653363833449607110416729020799894044926932009255368992730590325980964170264260311089081457374211226373568727307975598385487169015831817994957046162771341706148723476336776847630677466611544131064968242057255925297633242492325234323184909262553600284675308561051404452810493456731264414326781581301102852810084580069207714955688578952373255235354338840250245031925718645388504727970144037227112012856682204441003374463934476313482231868035775895322578668078700200770557974999452013716853774543178845135055623122039041242514733097857317862131624119871147040461319977744813905010201678130983027003837470852471815882430794395143810134759944763636972240033637409476702187674799603358172419864522599887823038023227412764322745388118248157156002313715670030355501923301471257017157942680684051304558969429868005852002192317730148766022510256674492591275375728954189379801883976546727841744538858921513201655603838944755373094303533804102527218621661101663157942482077702630895434355801085077103627965667877286260794990714716905280732338696790770481458854949163374435917664694748869316926197064989231797210317797459864913038813548348206282548777275143005698520855971979004720370718891880739519931684226189890864112885458066602733776938509926224516241843358250951147777657960803092104898552098450277426655658956506554258784375714961569762799971880796378097087527084377590050448315049652222684959809889305982354854777890378817762484528009514352618893539853681243665047862231811999948982851211438945388076082193568492139765605682293393702113314811807311282699510701648532250613667950206463777125406041318048131867654531708477720940932724780447713722527998530536192749175882000470587016774677784940906819483085315737761527254037146904403783522342366103710272488582229190698899455833337152237252528337592280913853829562962061986396065162441056699191779815192616571838963589131338343901487759916731550952979747600971878343485523943564976674850299840477321971673630299070511402374002108826996805405092548775445179625901477814465946595287525588980510483537117555105166374137341347755074284928879469374619506057737152615461933762258887870194466758166549679935319252257718191936031205406236533145938151135558458135450815855978191699207666404840027493791612790595774114957998700511685168324735006749641741746409027213368106995558060677474898280259340084605580822046137699459943912056989377390794947449957483308551204235338451809665672266810678362982532835101268987577599929042102900023499435907102707239145186581876981202002452949497979314110286703348171269318169898745651340720326380201971148112149955174766131268235640970012758540263876767091011439936906255329413676580756285834607509693123519210814515310968023098166537325967826878108392490789979265224693313919107392088631376285918124194560152402879063448623089551776811020199866938526284572629175015813707710280555684947447805217474600322827939078498263909611334770428448046171439054237077521071236495727123348677663409177794315044499675515980222300406449596555757000945376813117242698855393044492436251645468798976461388438387374288705119862969273119300294161361879893436337753425682821695438287645512892110504341908646943583401437865081948723463356004945385956869190177269608750546974971715746640168635587524278502526677560162280171883843141904864160663234206573904247762743756140976410390869867950054402874454517265995860686006256124196744963996959347850396321445310175818393690652167058725378984163664516274012869291832797476669637330815479806012965039127462147211100540125828708320098065590752766581224192992810186417981055681778953670209178116037696531861951927329501539422614444554800831559350375575385939688733043713957135509648732760899073454711292287111861199471075573235730180485929361763031704925273294487795917603951313648228144221298579862782746027841012162374131513414943309743433161721550965811592462622148414886412315961411276331018553121207794539334014298227731974269283809459297005249457048441519948500987027169075120606169546864042390339970429463275425240736048237916074623367648919010478653826439642013069938690104115432574825391362432499517614979079881211356141645447604858191840458321850945478191496955276630787756503162578660829122268624986156906557554793972628677525581330371333353921142481569840123222562143802732720335498080743257321780062508629702809725921672941811070506230805684552729963241761851995086973996230815065983191630425766229784577779884391771486495336722295307963456565903346586753974760671137827316853638109309260944011030146915866823928944729162658904376827080361794198305469774422293659141698537488434685990124258581499573379777323641364786600462041778617702661521296508361054440299870739793400253587302296337559864077389300111224689253601637248748420919023078643335581914118047432375264157986191088259705774408038635293706828137182094047233178562891217513715636565182736314651232104530359449407607085843554233941729891901518842905626928772726048203257320303724951532340203886502951277899741832125833192999875038613052339442513747488565653838382966392685675578908593552151254375447523984206735334655732190855348444871443514696132117252680998584955823089645180668680035444125639942891733865608317560629372094945199143999994544197434216076405263079818331171874844373672216842968026286631513031460120033090861312533927800089277521739920034813257724750380247957182776746245226523171481467100384955104919322951659748972221488503697609991095810080824664406616554173719405214326284804136360561075740395599469118222138255520083979966377620115964097493121445747717722370405231307687152906386438399056434402213114320894629602372677216700617787792018745078454640938298928422509301245793841582024492549545217354789134387766111981870836367022958889073171174148468890360459325197714734902608399410091032000991982181502307444166458677675071647982197265224857434365904780077171226260414373489470463888115489195123709552607993546849582883646170264879463385539607948895167829515121246819512869991210835008467186155336165488547464673353178558220027836629973805506068622145059116988720849763481613025057436748921429855368775686051155587269016241424061469092853293614638493401187403855524445245035348445346011124677752319711826601280584139317220624333305854960098187702829699580380718612540975403583417591854125040539657606740700164509103118934515697124238557561189476764369684470763185987853194059360608250965495781573143275660372838282617113498699416381058037437429073481916593732838378745351614537206931629265722647956712404046986273568818113451902288959928004717117803985976372538680715913860254189901885267016656808127553922599115614122675559694907642470163905459733204680473224271438982111126546677266251513318750823978763106081077635606884508692408206733257921677316636468506365787444402012852267200893355417960648162681530318849020954360911781264521857072383226477631667424982261395325421604222096837635332617677420816798420096466242795185612423665010306796088334191674336289609412662695950997762264001219734059463208577385677760089278584531241764612594475891298721108532061943043428963025713532377901261249475414445795914233943856911552352868497388254573427331240424528937705407385675589333958451277026265410300902715504640063902608792792057608764789761775242689509617759289351282682053201833645404847110236755317281753838135093189013951774592126587016381750066103215154808461983227920696959948729238970244468183356397217281102782097113889283516646526057247642327900899766411370754685858687649505166316620191415806348857997992774544205783895143190131554781107629608992538663957746118939286178296198913229614306088805806809645791417331252327350804183359956523559147050928380459255311876221210128759839018170875814466108417752398965786594030755712903736294056532460048778802478910300502772043900499734789879450066561692333239779101927327562536867405151067208465842843856916361116117203018556489730214433853640640674092949287339316005705901499321638415053996114689327683453478060964788251842024163826597779101205773857954565623745491292873871100621157290131569399996978687390580175930468382067852608317760129505252228730519839426768724245500682698472379218035518815263425510109567734683442159705657569630369399495923255080093337030506709640352191391651680503516527117733295637138335723211043703291447511318085021010598689886296796622504480358231216498750481687792243650210034120983853594031235200490557958314313052689729523554945792010925604194207940567637421266034994388401957820387202316248470903414612429988077091387494488155715598034107467693604291685935819484296877556771192137325076770901347069784662445963794800378089519281673887120171500868958527019142481811653733969103758613080720488778625461663956204618913599129986882269488868825017186872795834039837931300689184673061442484938919576494394959812685874718239146341162504783519303696150269648097351411745582960424771613665532531836920011622470953488418331743696587569051284524646570526882207384419402334291757702140512546534395274546509481206560105424304655884219816709428593200137388223679507287272642094044786180818041039871682443749744679477307777592007825530012125992513543302274774291609259965378749869831280787716581812019949844106022767318232496301183267381502657149897649127732789457472476265220857151649624978170519038144757325743406052998138618629611278182844091398625199465250352657221487200707514893487548636626085306732837174594367143245125965841752998394659654923793035721188423294950014618021628943764675509076881880261068884684376689972495215793509103876579158509954577834767979705069224199970132867238726838727014742411491012490836986829563881428798733005146159799367888288732809010479282358772916437186239303113030147816313858157569066363152118908854880287044302356736390207472916765713748624823874660588674719893142938313891653827546121834459042765994281688131818857651318200223999417263769795486065962393152485594111394672995003787119659970392524632498865424650381464273571083817817776481382516587298115005210301126944782399538705981817167716071453309565330950728845782918262010088896308399591320962486512592259965986910091817930401901689791524016766864537348222319448740983145023281426418431238086426597671480752015441444152487258024509513636072005073099104358373089003826315366622927786736285230088061928538541213408826081491712481613636064281190890004881302040119270047633078967328988425125602303990044871038351192684715452793565639720522340538427608580086466485359319560707771030225284086734499150053687745603963618306494122024404401201342708335802345265309775853385840959120304141131547087702765909728034417409117887084149889823581407620012708366683035561306787831879108473090657584087945059880572079770259856635489860948662299927135578485207141639570224875882344897964991979119781787094792986750262416889817898296283265173552805708692018487543533242444111314422327548216170655518107301491964694444612507065706203039938581217345386591291162150566119688029355239388423673847648629124231649294855075744981514724743831985405947629178551222067978598421468005513526600720127116094426701239341248023861078736447607235542950116373714891573796568592672856365445344678798827071584070928571202864230025122225654942639646837058301283683655894353802436778964720655322769391695621441298471372831676976882250497800279534732273154623342923549391619395576090869500502466014349596788974257675601457784765471050175316150145974407345178293974436442564549535083721201940307980718628435702396940212170690383352226201511812170076403369930293283308749469079932669573235093877457147205834691369551927069425348280810132679859866613797322122987811999047665654387943382506312590529531679587311866204599349652693730772170225896409677968279243214058464196438793403052120012486122190289145552344499599256774946486229726694309307645073152112048346441601638615548649144286546568277092481096545877837889342284337919134319441019969191773668539302895622211147418561463713002734180245290870077687181720829632631952667614580629672340759335953104080773064188545730849749989190759816810534853861579647765702296744825251107601413814570168834696678040181172044008855759636983268677857106553479383168644677072991571326755935589278456095643986981576522994498553463621463513691193514168753248372538711883814258751646634726869361598235454814817029502126954080150314872001997580022107002276217900954109549985801089168968821927898380248025626261838229714935562378745466833293251584206944891667423143942758548395362648623118294092610487415611799929550942435294196629611286635790595922081260313495172441075027143587714299288886313651800423798636657098512230798984344055596862237720894150088885196402580501601660764176854693360325057173155324104227335755222193836038951414061018089210838585475530441041892924603038957398407755512966780201865062738019483439107628011164554540057411229477915831743151373790905776070524378394779661103030940418780801987828665116994999731490547258704753289679019645678289841533614345096610138920051210591936653337530955313431896797224889415089293347910425307083920166434411448057001523284219592952288581250006426953717530841823005359832687405808242057076822801778994050337331536996348401029936967103454091909155179777267237369096385555243116603388590935455014060838108251403580891052168059677182478962126507985725788294194660407502391589254635089563887420451333612747172949014181622490898111244391747212031752873489350200910414999109940188264096236486320919307350895917152622981421748169253680741343044996474292076030441307813503325475015271159379247452796885941348262653977088397075792884125749975617248740329030675076930999410091629868416574989868277548927303392682736251906635815184165420888509040730508742926890431171012146220151120249466857035642319236518884260310957904888955200963891314310175309605382116105980615154770457915562180256532733869392715340957664907330726400661023920554207286092347362705275280093542507896183528251143437500744495253173168265197028634681822693241082254774795914523503918534569337296610118229607044930681089604956353685819909498219427208848739071947834288331794726188913395745238492359676253121809858514437325092876650209708781334258264797946635756224581172279360125143766697347974363592206535778023459899420549519931982480398045654136218131201286358559106169825125406950544740222764227530129704922344428880478339661359406388441311869304331329917447575709833817488849458986757073158352758596111607197870491829898633984920402034528965772908816198701369798798304129511535160058594957267226243874145310073852949078476999110372479734609469679652250382206704181525473537018624117601259211567257944925929561741278842925944535183577029280165096590406721951101743014215847213321141740876610080171572845562646648717970813930408431632625984728815338730731922731565069908010302420628404123154750153701141934089511248581426453250961438114574882554706585727873858220980097759392878601669658988807882128304554465190221022625067721267545057893849725621645329569091903865269242146875807236314702057054081585858390361409960848923805335978406905588912799836722202168262296998109670275174299657622406317939337000727379581227467112927847979289785068878123745763249489618044854355919165127204143690694530886375389677717341141552237766271296661452808822603369034054031990012969167437263686695774424503954735971085576639115695985495181482186393249267551091383066015236182234995441470132096338800338565870912149796551159910625066825681319488172325370299230048276563393778037798485594436923929572508333576124399663879940262150094305218008051677447542753679468854745689603367486281103412577365020737664371425812736398676939727046623590231112222982701415820312973939976680919435910309197083142506550646886097305796834028022647211846690552537754640876324176630660293776370997627319660000502020676271858619459070890265753226240363914341357146021390133611502576124210787157280624849853173200903394648081506494323489947525396538869406948493490926965413891836166802915484337527689989179015004260145700327347551582318253311603798540567066575327128572925415462972273360017479952958139321714025659149806905708837805187633266614199677516489939272091971024559684162809736156044494088408115378169088162506379767266532756476804220836381115673451363794554293132297540873592266173527231311438444307759011851289130815070223511669352916111746808064015845560886176292864993064683660604510521550833993866289957533627642545367804214798948784623678903291355521354025597098167828322522107855884125049567591113493582407374957028177102651178809856330025734608067904789395311664209843873753291654395729452711476671569998356655298571560060402203176306359810125824740504475422577684165048572581892976399975451784254135685413424892895407006356580458038340494217410445221005713917274184010985190669112327605948469945893202607685399191611947052946691640503936660678629424946358494683689287411176454378603154762242272673166858931425096719369141640937775519966831211412869163907801027653515481980241160316494676675576310776751916257430237120487860378030805004910098162817957772288201518431772154398551588623342637227952562373531367795906310092264680332237943711487179188176125573210154277912319610854418870646086418120532526420877161668432488191980907041676133522785460901932982170508931167612853623562227760382100789174855691597058684905863867019877605320587402128403116993844873220379491039144646733554831373899006958428895288052319774596917089435207956232551959365178632827473142310837241430458713014651567692435521303021268923294005545597138101279061035418589910069562670258694002401387135313271530508796807372324429649923247539387385339098584236402181507577044578261924206247094771576963324547861626785485463968533501335215265685117451158293877366466205766122124617694611469318330286108680048484280464490625147329743391609918258052508196120931656661669992161811632749492143494127357762667462532696657880852681097659990337797877612239606596828008776268646056719649929283814564586015650769473786253593192579605515972440704233353143535563265282912129830184844240970901764634776252636511805488073496298431103566951112289169193150585189043361092494654813967350378862461400724554793182384555813565554581001577035204323143803671879117257825737172648399880714732575808778210973317550091083889543254807094189399871527805465648041385413189277298776025028901305848795322843720432132251175049549892939250601765683373756004218476578976141400138861978171777428425088172215934231976620083076166226726460411098998170057764945836439353053892780085704297297557762119261177540977011117284712909899925374820406318278994568185013473107970822747502450012319541747887159614476861581049336824939867446056988627309853207592284344588156856359020449275704579311802481832919304070765049621328616144057134223000983011250882675931732190811291745031389770902966301147561276888363241326198820656699850155556449111534244929796235631567165944698520349987797951137396544531671066586191174317583937298066909253864387616339253100722180617270806745192841737197925142794533958744518619115924492333432505195812531687618186402873052317008072114834268772480531843369938567443814365785030977692431319798220617481630641543424459571093946282585896643321457511645205515247614677849599296430847688018184308675654564872765854394423093451085663285324053715635282355401118569205269758848961266645429570268517644306410195705345112668382106711691166023358397997567400027025847444654789334897364187820733530122878269273128034604045199343170494744668792398986556892731689854649976240604615582416928991735676085554807503591492079739822014006313689513253237569872145204501734220924866619083491598408648127225482693264977933845478495109999916736999322877680376714219698444604730654478482376770983598107220692502030078903691010097178674774312401928636583686427694021031041629677302952269536641480343297605504908746678768360463976097623548655704809100453571760989209169660864234667224175919368453786924920203335355948411217910789082787773146361541664648075220196886334295738424705422131989800392675478702983716828643130150833761632167487732308600128873897976064745584103492146000814172305650986650331528690713395618979650977959632088941512867382675648981982583185176868628674014485482166801553203829286111837786369781916701837279249709537781920917409498462347339636749860553756014110598949716911341100509151149767203699186252065239634522341544971196648988178409935225279996337212050564811674768047647170238179223725391742676529656359336872057643478086618259869616265050555937161072734477510865943885001123994438464386840721368544859255538377189056047564929534753515200686146104821867481699296071491397162356920395372165040797506211274512639194300066284921965244247284211404452020304919728636417362156216894841554339838382946225784156576656401872155166210195145719212187728075980923172635854095516575778528307296257758418774780083375089790295594260805436809160415411401432239444949549413859381448858693190129702302974147354272936395161550009317417598467468969473768014408432960540601526408015203524076753510548911392912034479025695950650847339026644670828819281424750085665398607507458626203674906584743214914984011242869759075567835106802462271055276158150369887970253869483521986301424978359472408641202069355260000789579488924000237488328074980080558780262748168349359921561855642335958521405195973304244191840039994495059898958782392885851355886717145045548292472911383546662849847583585209495072258545173570981014658633239821855597681365821325369008404226239084640201848361217698823123624184222417910607634378466951778484752225195061116095141890044519457199881713867491099029831667149639340011138797278855534778763334705981408211714533303523652662597936309537194090049776879727818665478648595982570571487735104146702648688245788402882101940760543318993568136838829973472705728334460832269398377737119206190035726486025753425477048935672301432209574463069341213751073956090160306446855208580938723591317809872209307333804159440592304007753027149816192151749274160306924116885704600347869761409071837310084906086242807147427385821812413311254621049599082035946495829516655964937051393509186066182535428104156526784009804791857515104979049197401343101626631908768414972404705846670525887036869825259723815356099211125838259971352802184960069533620973397240487274114191261433707202615807403747061882387553654666903762061789183813053655066436687846911066076635171567376564811891521762553778836486539810532632752342844525657085835420415742002288963210181472602541270691165956648095543845265030788355514254942460723998666308492363457251349128209963630778144005146212924206518710625762928475665362890624422998704097092269118268658763555846131526715072735645713761388859154811979202344242299751225545361227197472015358075885378733391691996450654007609088497861833278446129431878803881731690970592538294469877440491861449237684190013632681257613387009788354490904745073354645031339078804327662869273318338182410778617871640784423325188891068034681303932263270401736303438000781669351321662911928411161630346597125436277633269191599420252616751284532544693723235766529057731341845031806712312089178545899124975268815594573842846043288384512049563185464875654017870006781156005940852655171035460681467231572340439912023508460518952797394475761874692892399225303586726002862133929881480621942338892079113891994068310661377385338169938871228721467684272040666426898162716952110267487370238068091201596898244769094868800406199951840857406919188532519574359244396259945841116902918763181476199128989760112158648318593951035143477792511893536563800607674874802059721142542224758864739776126534818646550453276244333209122076914723071355124653701922864329097014757784949286080974365880928860080450443756875075804505297723805798764975341774113000664975290030208421342244939951237526581376319127897087975594849395082820643221554677429629960862544028063232464025075784654432450619119821140645756493922765142651688224734211369829378297993656293075508617159517639804854259252684429906755524311418355565159968190713935041510657287562282654882242743747649569272040076137156120167741192414038438730506002641823450430499419753419220821422584686276495220720087173485995554657564829726651448646849606482075019577492048326475286433095651931720008428241760903401575317567763794521172620652740965148996429122050415312741233441925002787746997804834722689367154948384309563961038104950800503684886508179921301952947644478871495096269079199836417725861330929696280398668632488732300815390844076570650369230210665008752908186509275275567145354718393517286074173731469709124156322990280034163169892461268404606129503921994681516117090645792901929191218572235067219460441582342783756166137919636775642652788034046621395399352502754666688869495933882822167637709490321157446399893103970593509367701882495000947609894880283817272312734250499088360805636462873003540244588910393924345468823061679924532311299576079377353433264380958328157032468112907133062182544844499277685756390213585012094567010454925183698084254780984416813034552755117098963828978536189411762809014387454821891490309204554232779403809988618099167312927830757962763908701754791732540758842077386857477924634053604410154652747877160752566246329543569608787601091967423501609274772720610474547382402313348637427380152824401515129972830630007750809335596131099002611339467916543521573607331941285207227580596198805772959553861739860194915958897335549141551241031643420490504742992751992441522347090232989811072092974198641285101956969696046516877968858479905771534266477627869035566761463104685587784643607217456765604864992789594949032532436916109839123967909836754243846767691338902358849795869860576176589144072350627640732913707875869881564460993343876328645783664476354567841847701330757493995240317993090786112592116456735700992628923458376836356166942989898410023377271303353395209221372331769543734394672555027050333864655336826055036180674983189114568184362534312053235655650293429040139947213477781707792017437801797996566880088868720002600094941633881544161966416456944657380406762245499197615270009482277251347909546090294492601458040546739000217436583847982256228445414123829005963224355657633124802738785603012538009152512156886908722544701162753198845613341688692539461515059628601035918114343708237199161471853442343333172964192799557682023987459755921249316384769431436303726413831882808149008750966864289004394392454949406459453964929126080867345904533374185878812228971564335195054999000647148306964935306664522222216347219206413144498067205782425181377025477666149375820056434001236971195596289131434185028835164059641035824076630811078879713258199199537827218378427662435727258421556946524397790164156680166559011208252375163073797758409084928595266473884979448480727940760603231126169057920655211895978932593100086537762812265941424260782760319796367921409337593971552644370939932372235090628232294741389188573890848607096698438255275085127448164681273464346607737866864736683922355679781120163499704696508424921212539054540617908548177366156386532478393370771548612531642840893427347223621607420011876665790982067708082013333861947653077362691553327793989734236945900652177258309297967776972744405887187728346408357992202083890792739428913485084287306421909642505132885180180810053901544183789274135724154023141950775428588587181404441971631661396420326114399598377969567573668944215944084194957772014578319845709337521666044718717957261137184660656158134741761800547528599575927170590343266454692191078583562641761025492724536949810917455364525168947373430162132727367529735618670971727876026934084955428735264132179715988422198883715382720449975211025268630984574836626158487445506792931595998489719252333880564379576409563516406848072030438132712586559745822644933816728501024367012695067357785407506909400195368546314496370341077134447501550660792872200398261113330548703674169229630989135084491545082506553179727022308477119629565861483824107114391992299244227768206883877257620858181870689110731956755913041234993469064274923052998682622805084735194215343768743341957849549523509964079873195478971197690175113514774951035185976308960549227191215575350742895738845560426222719677842606263190519938536058192522026824390541157026740682707405349380711358812648925662821790239520449689214251983406782656419053038885720985759173276911605806273602245422118062037517942068851404171984509157270124519672859940843001714488026587005790737209897568633064777294629313022179290039521173976606434038995441827191959230485368131222153281618443121988955127469995397650864817437346433725494321888513526004326172024312382970859607840343518808572922899094381437594615943164589104975149643382447243993917180965075477383380996849445673458509330846121443033087577098364161634327044164370729862332496892960060893632811672166381300753780371297659701824217012109988582471718124432466505548861138587263815803028967385804629521971477532618041863124559223499100944960328154168842648340656009924504335276190046025375524668775117080619287650973364949165913933359669754384975920700374311632030714545529032747981533550643902966549377749871494311822477467921094108646568653966893721387046918741024745953593041573716555619462700980103760169113288023651438732812259223953476640136364948231312516247326046872306065508252758054318488582934299942134037757754818494559193346115042119486964436930584584946547407651495656318636447682941585798423117546877643082432923114297373143436748699750630356939526856509937312978305153695490206939133727860536620126938875749386620940646758318528861263891397475919334387427559342460987853923416038163870529766508401300959888872841426377323359967781888693882343068033893844380158447487759981923753360946676222502786523069110118041223111596789101465522918779463072578340640987510837256707342289343733189738997984755094412979975193400067744523700056771130728070319520034361706669800973375897204142260846029756709203478549133663013491161780529641769209491923864355320813746833527295175481738094877369490953007060726131414215545952600783612103379506612874177821375887943518245129519859210050875020542075639165109621711326815734567961111708085609922226973132630937977543186362769383907594879755094751676094316793609295010740437974470726470934417669666749961868729955571839332577029937485526436866638781681694103783052735116016333830556289558178080994764541221226932384424508298299304359367284815678140728292936326040728970876263252179435561116097906295904572638066914733605445342671042792939117068589624461020609039833038897945786556342317463833697260026860146083481230433367414985574627893621401232698639491516641659146695408241092864416537964867875539674844282586673838105680134267021909793062215898718784148707377413427152011545683729862023644352408591010014403303719248657489182472770098894001128193076774809151683258127688189797059154205260855009345475236263111641156964512709946227506372240522983347117300121222172050960080262073797214978984456792320877243536764600486616195824471481018029949934608968622252467623977742522235161262018181869833333921120558267090683838473228590065338507098590531789949351374107477838522006621216817769971386789371644821346397945425942015519802190044081360626658176746555781785553305511884932212570626201720154394615265880246764130923881318670184914770288474634118733625891415573524518362808743945477761000241511807635613823133061259613352224824599089277483279555993331135853628754516024011436650082804142667535698755048341802787820919122048891573966962727553988745231526548046930089940141235562766552954554962197912592615946315185235200579048578102358564780935644822851504217428533758634079370471010599901056607702873568935341803454712304549048682429338493691233755642773267218073620898868012990043310072013948569672408881745356478603082967849635978669202758685998477765878740376339201208214550945562412549931368007147960243321966449429190381069283687996864963111684644394525983961346805647780722498694536628949255960721847255956154501875279884782219347965081511603654849888036517230927919881769416628348992005368393293364099694160060425347527033166194393408786753779504919494261523737598036933109047715323459728980467985761964247552887999519356464390848958140466184412951936023326957034798298955672381887668417570334193736571386419012665353361562432726983731709244449157076613922038340903613804876817196474623132090376379616448088811288788995330557279969030432436048218088129120937701113453372515111095900106687550128274152431786920751009329631270776260028955485312565365709393480324650849036616305804762218396736477387698960834597845328545473671141826155882359098062427966421460360146424481179029988830913836901791181324434394605643073812688551817357569589290606494739352046571244155205762262363273829717596880256282098197633449084437636922091000922349717866965606228738107760662261399626448648801770871618210086375749840892381391339068616517144142142656736103172007162960753995102166529363148813634085886870042786170876276259209488826537804867711029748105676775347021564728068831616612372920900452563549698737502169467074956791868680459582232136138084071683225288460116543265446191055475718679900142514439357806426231232727821993715449587271775611317072011176556188089467017072144496557170334975182037474072757251653059681863477130217499358482355542082924806836361135920327101106105359454262784145807152314734511006025902667483795083446708728769908333723722838685884140080620708294525151716432381470893061098017905203744810053849514165482180255187419644985145814438388944198506779739400228979457497257158436280494170715606851317267109034733625035515966165619555984950190153515139515805790452170183428204936789870753623196940282755502666786382204057247439256393758397479013223251258112462369849952637142864800062284409759637214802209818932886456531080292240591560486844389519155500530430821212692535107894778788277234833720237992610656903466125012853319801792040024557901033172697897283123284499897184311282610773072457145995998301423333286931800014387398512809375133349381791428299759343166556783335399738559837100790780824652807786595015687145479533667873765882651830992080955055068903836799473180111502386951699310358732549174180867389520376470569981204994776746894156143446269649331225952687275672213789772260403906423700763096390173711390693851342755235134210290364568481600785582650228191164016938304233709619081643308743094656296393467966133152473379206795401215445520088649116036973759678853907871225942244597014676808997679728514713053826945762283510630168946354574486969309882360151445536671302413608619626528600320052959267524950665680361975846157963487040437996050508688479735884280818506683504058738946424749934952406790596999145529374082519043870264565117752367375136277066068666155415168534266905899075712222028079244817529124337944492483440974554506028217597646315737500815686611027213378608065951646695641286097472874547890794675141232928957368699597825387848817776706066645901213885483257411795134796017926217397112094455532761487220111044598269827182319271299135128693035114198493753475272184439406839194575190949676144965491399627513992930162664101022050357241999136759400399320043786678528245957001490042479284650736083966185295204970332512010456266118904529175009616900560848766018593585455439049847821312451790504689482383153249873812913848492661399666252483329041515234307078156017845271383587804841198715591556229677273736413274668138304881737033880838005318437644737295318541752048207939509046122451786821584438705861187546409380280942116290837315956785842800447127075474956510867452859990856960731658049896708431060671725267672500502270565811692948390607210551431473660819326241169642011731060133832083622663667218421716933966306996645186798302756689053481597176113386869469376135881090621569954691267941311684762501607572420748662211470470169899336870103862507807512421223265580546068095618225812149922651317098334063882052863423597655330689662313195282442525687063969015607759389644138717910278911179979391012366029410080045846101110830510106252880117352409670970042363520879346583078125642824735927929099670817831437939683664087325898221424824660873011229555006509375889725616951642667654795249246488916486278761092759746625432890596593614071743727674702219880661658372631079372362803041008348951812748511227610126497231541207058401652554888926119201160223025763460769721011313909859513029393937034112483968544992594181391807362517002889186825457118067627991815598031382427372907109665709111631494724722048261733277987945855378181539788144813039647562307731419369313667692055359503001328051439956484142959810335650612778658382330024389368546991070474284385757643144308285017053516153782161678996929307626649524142260411980065846844997348893736153084955509613163970286219927785295443990407204432249931081991981544115037410416410235149806286734820760544849836333399900334482255391683451844587689773777891617661394842959135367491766121402844823623528730761499509969511047826927311436553472493290279865654322362019728142374476799653639798084243047376789198487048985116324574939760417267810410480970078345915037323947814060174356755283618278289437531695249786526314872582009967078429713364225426005417814293709878845491481296068383129272953927325723609747368520031013054468228003781373529781815459324742859580200545469634787638220371997371931556949776369848248253896092474497201466306516389611685613613295098353360920828061489605188798229591471262363477039473520990261493595811604383640831280024844134677482958342738258935750253590202576041902574396298199261532595128222511023386197822577303336108702321264896651034290818548660352215808898834818230864830690666364281326461035837737819482260793914541651589742139391249807382235639310809342636002888719975472911053707555340901160524393827253819477905031022465958224089869868637684808488235138130796221257357711808599638991835574291198079810702128364632188997328184295195617258033003379982172356392086144690056834559113346013460335545221062073088782009223077308529025148592698214709196188287436433033222962269892950457992428125413892521268002870421415705005241221028836092424342266520056053034783624765420895277610981521320542650510029845969273076922329633277953066225452475057153860585952709723817639279185206568739701587226236375164603279830431632253819736106799222241712985302570177026594256382599818951462919871647308814493561478392295646121305805860313145903446271322798032908747276853894305314848420010967207922350631721190360531322243714889110066919731432142793344939660450868458017268820127972238008441411569626484942408554207725005904629939349767026714518279167863258462128107091167483113961708762358395329200647011086761146470258069887641702212911553762893909683657138721349870826557263678067595882565058631792304860768097679182417684500290683598683128314613342059033994511090189380869202678936321131563992996351317137767140302837416210051812156525275764012217353558852013035454942595343659087151566860234767506613694423989509854550192639548279917360843109078856769047665372393527000114210617014491172793148031717418558432038453297312651914203571538919531132561041497488986897129149359249967800873306540802490191471969122369229415901165420368528643407535013417352462382333978684994635151089379907196388162831791057129590147337333836295346921986187813606399384235255050666013760729851683593563628669861856884530592462379997528155014297541377846725085281457357330261655724592132887852571545891785356773649143689392961953598341391305193436048365753676770812804501213086468617827365451089227267139266639603741586472115460376429519132682197330922263321239716499492122884619484789381656634018890461216092936307553315294460594735785042344523089816913900163115350219719114766072635377067032395759954734115999611167173274460056202851705490993730627797966736744856896968371072218166342828552496324084385340103212522557596267914639516566840068031171724856357371387545397355040220847315087560596922473795421711072928482600565923218614905720640196767738921002396312940591639174146800079208463035570094751634759055583161791232643922970452455627556964564526928617594210798501225525703232165868568268926810966771628861960563659311460674120738498230594756377888965645344276374088015555837985511395795156073460731616323773432590228567034624305989736572703745889164567810781242292337555879409773431596978296081081889596563039424112640158338046356882604131074816442241776979338069345063282991029759501440141096640553120035909870378014463191826271265017575930810662490684908466654159753733747204863710452338909670517084174448295983831708493826328405727310947229016955965962791541317342060386987296558810180039283452193226803286509150568596291606890836671723361215422887126171621359060123350700237866687248304296408702138073886882356774071831264250616358173031776302693258072506371576097026516331553322622682542950211892892682234166161954170768638564861181509465630593309363524252180592036658063994495609787736292815202601588085464342583607093057312274240777812110893236692036069046706289131502504463927573192596796546003693493369430198345388444286968461338961166119729381518147959132996490611667037325648412260447182604267421942494851196628797641240488885554122402720640023638471058753512772113900193433617280534367003406722377184468804268315658807788529471466805843931934767027564206234832557062830761321100192870899057873575456066339965899158629840054266851160973315903826346654546666519050905847486680751818160252190033207132396710247851760015972961960769706031277609648533658630231219470992847391285355420849180765627781442579377003801755502675960661450234043891254679840160437899651811974325600565015818239191588946467408470129444075094090743371342866127799259302150572673661462373873144791235619645486031767417912678059261312040374155732373570318139878154418993290644710179592328192109841165244220034009937609362103009142761513038137796420548778743671983211287620589478251918582001970346732856281930965094273399559223232247871607175121560603735907073068466503440484456048809547677083680102755876541924638333830005107289273667213571610194014940402242738273615919178496654563527402038520914891493736216388845127070069506078323533142860106058496092126060959503954147697201800571563404858442120579269461635861155796464172736542364243206989125802505758916989328568558752638972081256609745843507251729081692932954346753799885650076076176635649444603855714961612791828183490589381775360812997883787892045157737018436346415070827142288738676998075837716474375130457666268554463006898507113646506771547146681648308270131247131813297892069440213769035262287339478475701744158958704893813478919888089456282931052511693064750956262934268176914860067893264265382429234295547536225138640758914465483409967660731668204321101643402161682081837802187974804962164551389609396487151594203252305569799385603454491551834635905044857551486196689946097230780973751494955855055092620712283580340897558723597760583403159189819864585875403099859136370741452484474088224538646420985286501437273077211442265413236224461202177474312685655337510148863439592929124770408797058846809849979803849816390839983958311066694942927539894654119596932076489896630608983035420008261608903062898052692498528446541806545957354299949451088245720271409960573454754906269923830263781852066174655731901217563691742336779958386330497727501599633215636064448408954434939598409698576626516500175005112061449778984050662355593541933186554184113805091901990375921439432841787550413760222607716209447171940484049690593457236384700535470051049367214713636371937180868816915822090645733201634529267358149687690917706752699492439403750905357286167670198228027864904177450977727401941426399399744602020862624407131890234050077711477237091103137850464516960381291325487985312325540948072305229745905958451007781383122422704597270555845978060385687455656079106810685541887636624683456504119591663922888719547414375066071140644694921716132100760208476372819101732315184042150902627692227867034825704763079477319712642028479723962067429074354011274805702773460038911690829033247391757178385149736358189959338847830134567827716144575256790665903693545421862375466578723207128016916507387264884814184838581200906730112213284283779552792564450717776483218390045681124213046463295340771843555042734623061347147085026023775182220754148479589486161272529052624850105777188523573152166463638846366494583187604275735399066154939738675254627461300772297234373882908453330936117570540233058853935187276415835454230954697032029199474527773040853180677372106875383595855174249552085740054687895307728890169716963008844192722259769413498609574213173667680046243914832853281206406116773734710774374408353366135037371410708520065769271506744152192069083811975246885654254127527054811158795064843846655120558672457591238996041037342014222713385220973609423575473854627424062577860925369556956475012524130133201107526454834614922773451693364846955617673500205987958109372318323348313667618435697824899335040820524635908687308852717698227778999644513274102338413933519871561120276104498615866330839994011691369705288009329768299640768701744193193619340773014282206092648244195724654495745825027533883004929963385353884720030768422391410971502030232720359325691819539697796227180679392296568029669055372227456039391560259317404084402720350793815204499804913360933995219634945970630858520071774196135793091699142196785708330240630569543398004566825333727364471218729256572937222457937964320137685332492514549168292287118289859068218195649472271397216945342854279217116074339704198523343895753081148871291526795484247044567347693989008937325838176953224403985960318954987006962599824170543474910345933352573153274816897312476191952734182095912201156926706516884680751868016787531886278401585839809304816166246201961015217135524794360879653367790312926356125674615417758167442205848180521030232006698308054646688756087037349647737652614454680602814154160526860054653049063934333377362796547282509335845129627878386842711057817922049512861585921722305348916239319880232359465075947178256650559403872498902876343205603844838208362984617076969674738311081387081266166145165104244696273986170788335486675850231599341573063659654557186877865351070863041988660955489642867977879622267715727240054261475549501498460575351949287247728217468204795289837364979060638626645196331708358628639541202669398280047800532094458287861252858411999407662066918906670603736718229271520740555443727371596751180061969282546916639986008074394223566795582002336637924846556434218711587098873811000072084694349026880129629172434448274677481316279664971825289958250055110975845097847080223710213843333909319024461667213311441077195644514765382016769536945816648579260834321755065607948120342102459253050620848491051452676406842790437129618007665501695487074402767653999547786701112669415783935544296868518422496244508381158461987108168019015868748314049389439490370955926034830839925927123522362516712702140813798920439867626843221182244061557544919976961114282842705797898025650910085692537521583242252309751610786623558507668819156796902681461262780840731169551384595231546425078560014865755433063316254504208027029411447107124189242733694115403402585452885010274546962497961229372627339267090875286198119368205041372216051285068924035347098937769304939313496988919470124895425006196138150285971116796701542762868411500103015949434306600936076812318806889238927727837028696200339125533002464968873509015441639961290117225032537401715729987348120001756899263737873857587496148611473941592674833484696355904392162287100107441499011872134705710678984989748916038415745751101814471833213346215146343842858158056575486699510679815806919817694253031880825000021828104497586346713952160997565877774441103473292314467561136934419944972360110893982493963611803517736005949531322673692682466521641026625793166079149513077216992865458225859709643337288273896240066571444301429181581909157378231918759491517983525226364601071600510777628738158159488774739185177981353195332106330496514306819853912064294623300365756102699664909845256861218617789696312290986166092548394460184877772349786614465989866439183812138921828883630590553329498480278951825616196999371246036136028214451463232418929596542927879405586036898575764048214374156794280726472652042322066344302725752133859960618632932457551621860300915077757089082402110220903236365462208343807450276175506044367500707473725448816894050224640268609475689537331043360066319403266147023136282912581818070699830005621839316914285920201851309058103163650461560508296818916036003927764790627264156414292719670214009899188423243093794762099191162699427262059579857968229563296401618260822261146399671771779284172147348947656183380113639405547155951902756736207077246961872130118149559570433294173360359308786732949492749945117028738178742913281040108107810167226876697877856399489564450874776068807373243111070137524416058595264460796703594353763728316004259815589714169693321322364383087628918020342514657774859403160127680248355278031808476147923808925699465024067030850974518917199909478082774268709373413298591373664532726427539941025739297848155653059849889442044075254409254675237191358147157436303554666577771010582840117881260930335775680414452937092576942643639225755672046718605070962367917568992771625043482165043211436245288263343891162851886972082302186878234804102780782437652821955242530836500605869731557920826159460552409257022473909126356786906858569689782875731573473699659028693851403843397454898822561302473152848264258926670088499243893200761126877872860706082878068641310112581541886757185608189849423028103420639942708277859989443765125373586623987589269371970281203997730498604590577400150710585684938099687816205564591301638362747828714403369857201977827662951585752585781889238481376332544083823791893514021563684929386071423375470673954824456394238361844460267073001993016505586786406260458852954757985965526163770447400723425890208174900416773924872681685614378847036243715137910555331393374609191413680793200695927038290109220101300447871900448923536917331612467499885006170179037205063189730453336432187093450583684830532615288798838528740231593611023469526477181335159407859971766512360840990422173519310704753496289268816338158690253713568967792396600140281583427656686395256775152475438244482093696599400295777998223954909558958867456195073204654230228750624781882322683129071224752898287980671379352155313264875085917438715150700629980814463986870056428835715231336121739377908528199241707591087091135042212598512741660748700480311295645477571155373997866571845926959752789612832200813454387027043698646316779112200427134179656862210919501169132445206432460780820999332939851914290901526210535387575170163582648878772865954917248148830977625306805229221868460587811292429882255583898516448254172412200937040577863340474169972173364951093824868580296992202198568587864061403968616615585539802209751292553422070844700537975770052092635761319168377631760118379216093756984422874581026454122374166745414949915407559276066154717355595013421100188486618888659148098246775660872902562217319313648936768776797762074826479799928997271490962291038292827662845938123928542844111626810115385459486626666778051330058976961105753207364146817816599958756729695102814059836314285348391501134265460523673375698387064668105752519554950855056835167770600171014358501563767031570213143960248746680808860156090338235844449993252090449024000682279529515461165758532122007171697186349677895347733098268153215612683436503270121031409089321447424051184242522761281236944159371189232151191394977749790135457493563885894911278097556830040389606859606647518338412949312537365757541892912453107514615456709663234988189128647719120073250199504754392018405647149403502163403774798419486540482067085201722854053843973850718427807119110821730287021992607609896100946363272121140703453051173250830898741917816995605461779177969392785166257406128141535835945308988899157422785040861892233631729549050586325155020624182879162648818599437288695583367392210585746177440822071960500808806911367403966739265872620280236968484245978892429699056737586015636723529258994283308439918516876654330629459645482025636714179383329776221479462502765589337977102814079510675046860942697034517159825156290659199113991255737020176010953561842565783346829860575986396203895167913867705585371672588979048367643375520012577213490590826841870505534574880578274935995696794267368780528897203857318290047691749664810867222759635792456487408983309570725745782939689090888782012902171630916907212732097201095696165516075827338465359861091318236566502980684849975792473198938969098103934940239053336330830147194416226058715105037840711171817912380591238856298299392717751471067680614183875045187364676220411015007671674098573853442082237454895650988610832755841507537346335109119761487507025752288682236617566082400346442471810255001522751965491164154719722304174314399939297741996247055260705890524518254738186733678610454204552882295283474130042168240895708002751616078830311611633945952706956147490031307393674467235662521460354433724534863138761647491004395868949079422001593857968949729476851047710932291619617323089190736690156956003143902533742273756220643436337094003939569938273879246108827766730975181517979402938267722453430711234350860434289060312412972246125125282515800442900542783871698287553695799324478300212391249418812590052972771528597119725354646718029378867708186880926628365861695860483967900486218264687556774047789943454723770524783838397239980680042364879925995276725353101266145048083455514994030625904534208423618222160531977811070431620163337183533764601290888229860866997159640730251848638490838147628957354068055957746400551653316844672901072060244587099159238111137969202482452524306762978651093728849156103382492301737627570739537999517360258266545844671220987165092204063516607100564629786306062119221340477735395908636157179756107660060706540191491864841681654747632719386479099392460078704303354756600012722696934897730814559129344270368250232294226552320808791520609135999753753905596815791827548967793064794232929184129317811110118861268171794534444064207773528439251563727670064109742462304696711289181540258310059368718464867711466384679476274400939352182579631857569169525931262625611694210071363579384684140188880154426563076815124534322942030460372867784325939368588139566133412672423307188151626983854271291034430721386223313042907626177561428517117961017302796427304607047919405412019968376211472755068380943774047740232961140222537515726133593938884290409528387337785725927540614079260348246490671973968071703995724053452709840862933330887218983153986541541666628627467925846344713077315466483922824149426263706385489083381140470982659561343020102123814056267394003890757549654047000928008070073198650535596480714425978697815485303845328057709664729475387449436479561865312176416233526769871045659191248381820209924206177613199794157140891517340154102434715810754432613223559602378218823750631468079283630319970926717663068947812028924743936541771747985524785868869462616764326060546022710018012823437906439958052880253493325972899173277653326564463849715330944663301574920357739510775742328021496847451357137172161566181942190217602363207236711096498849571631563238998132568034207892293215458382554477730818194218212593016598567280915683891439628796511729719999440372087896568848777797000922851679437328412233593421256554738632859122456658459992610073134139534367190334545039329318975739169374760273133146581650624407469547687855118093388778703896333586659613845194487981691125062464263728572982233065948891720834630041649065345196436979478971936459740343020300973408645805132042071864216109694882412568455017369944020769297883860220274599667222861253261344493605559045713861802881794093426917936991208486737830751826017338443683649392994388070198693082112489174105963833321141481793972839554704255219275603757269822881980030115026323728974050038826984542053286176790081858728774568902719540819253645778757587391018730630918638023858048338517649778852551905831267294688407639877975588400682975399415776406724211753415161621364594934793879172327531636769439119255107125839225668461418653999467186404379016410190640361217408831437722061121311244063379753670947177543308262917094512449043380483517768968230391229955489773189634326374009094435774897730579775913356305138219464012344833383240643996741064097781951414169508203436304194981846286762928457367111240211712100762312453892502392615765389308006323211630103329660679060659475698718146408434104890734021284295497064019240726075652351339535707302223944859695675588367016082612469220495476587220860081641086013565376100939687003722167045331503017667818031664565473953916568664042980186659296239800035802211358350000411058407741869339647404345027670910098650033905464740015363138719819906134137375240651076067195840650661126000711064741962206359213430086354229426672492617939126012966122206094062566823624778972098210666959009836265621140571122771172019805840301285254547226237829821259526746969734350183379875553973881691857635334235355026874446751112067766477634802241407348551051704347741154695695068533727844905455324114992809756811593038707460245873010997395808789597771263482194299689940640676792756198128691315319911870592883223807902051372358044115711632787883670216149673233007370458654231483859323492718639562469343523673527077597734813252125796275690814555571250431720463388186114618725564154196944347223629951465296451064473090823823872693623373969302898579632141700906397654092587599703113699658251927126712461063903929852552474324084968744340264257245869931599342446724912999658913730038318584517135032766047595568792754864302601681268985475380311865313284346884541145498882512332109092415838397124545772506660171139156569329730733711758584683727833297208349836071466550289639373383370405344064158569513442671676980806543860491263707828746303150580189934934359842058841895980893929338784424856384034785510139586026047495121984496972287184068908184489529091425337062089856322892581189159613882590927176203368634802974011148445272509498939303648418931471590691958522995500450807491643918757960843439528862004052442918479602164435992859392657166891768560954493831128148470052291983349195743263385799303451802602243508492775942976785979210549259588917299029595997968004439625033433255193392402167398419333837381153234163489249596253123854130890934464499471609372562085845562504660579450785306977488026830992964078933812894759106515769545854311787827849042631010501221628370725535217850483744463415145933134077291515010708984421963324014981987431901782661756763691047229067283080138000352045135027982916544647396463274741103770497054976568974260124633294028105489184949162485821870077780625821145329312494173008582884820906490017835145250031915787838213922576938884668434952424344518053487422563352399821574477087255356106313058802764184522039695583435674369661483037308393556872030375417095491385580688935131289844792824471063563962122876863094298357244496165987957759059428671732658011830589175027313523220514297794673069853721745493155842741506144759515179725883664537308056278150265132651781237316744260551666437705249505714205109762614487025525759439018945219134539081611134989457609516677002919647193384556201514368287837452600825178042398479770241749274061715931578397158385349307779570147354270496144156127286100571213182863107974250998369385660240656849743619344339451314679623006574269009644507667704998765607816204754057549183776961109205364572103512075537426702575782995375483965182097563117769542641272464403599455945215859427091558506560332516458557762707881696561421137813776097655089771505955416049265176913174231452403778037238876147605744120879333868502019469315771609488060682885181763515233914080684784668689451766697003684018229216759394271026414479284774582254292054893349517133613529321825135403614046903698717203096740351964090440690089429576586696888004547820075372076218845740673905211263443294489465810356309454910448886224469075741864242803585426186716302117669867219906149530802259014739723798927586539589618816951031590270772132194815010038690335380670135405781531954161447063098708165861979785742665546064473150169015029170854037132701229601565386777937548988107042966261333387668991625675009714494117726568685906485626413134533306618442183738505138575680179232864334898252148632847483949263521691581506500761785391995392553899581504390209676711446009764114900449923725400228818530265735555002991470872492516608749750963440851564911613962103578376716181360820927012401335857620840604282050475036577411947270875072216290171438345479966347784263674055661269643341004327557851019969521945321181555012627733270795395549696669771941742427623184316132621617951138229035752558508446911656854610885134153503922180814703377254262295654507931478284899982525898740501047364087327418030667378006954548614836063002429852964438901602149288638866211608685860242409072914864630042089963860260396817259159571574568019112311863570076101716985262686281545295355726768870438821173164614413972133079088932756854430440347475754438637829163652396570612377978424484866731203035938631152910443687402916332592099649173123420341784143381282896141684943369491970915891667603992405356881467851217656508991757874400475675202767142456294908070417613557878386915015507313792293640313355347241513899905869758564666216409622401638681240689451101958990499675371376350683249296197860567280434032315408697537885543057481307726986355311320612199161365943662683082026887143436086113966682855815140684060294146564430156634707691767037188647673240774143253930166918882210829889026289622280401464614956897390799338988935596745473425010087911857163844460937639739784352356123573382140510641128665400976406164490843206293598827591517378441266120811775255176693806143581655375518939198069592906718334002027333360058521635113828380184019256256135249247504634297015657484242601057601416275660620010402146826115010356868434689001427771183936288579434231629725027819585221186534314309821544771179073284486381389711275638466057107384727015522685247172386212057354677116379529686373707182270142840538430288358819501767677263099229580189832205412898949003805133369052787208690850887249074494484648635455104955235808871656930604992330943203239979300320612267409813486324473617020609840976081096542440495109205930065113721634032475301334276500171882930843827664118279693240527429276990213254483072771610110198294608952363663971858135208777237392463178157119331393948299981578496719997044143555209729028399194688462918320971550541981176342426797342557569998198454417855963234220647278258835705502788194337422667397873089506924725577350145339484937435472704441106446419500630664663182198417011904901004295607957245962945853944940700989696545427486450111681007301504242232622352197846952745187637062570811022744920677781372524074339736858368009381305614403958550017330256486294364210627568392463934274503220221104700703561085493618817236461680865249510164133972279838459955575310164033651185020010020039839973218636997615167865669190328647695280843514002867365216140482847279921721165099478598806413626885120176836783699549536415000772058281085387941905549682351524578772264457425022144757339461903410368886204641243076623833974699200854360165182084894730483497427157714992568048988775353120603843875504500033785413007719477219901037047799707560421265787988686289552127518703815200511518222923595637576289339928423567830881093663394834264612799319041281712189888159034050506805397959689008410072181028130545453904038041998748315211708991078253488274134455423810585004693286721439308364211939320828656361686478945612030414368510103078040498023019167002458003174444546255142988331633350821749033439067100885704437983589383444143437392088135242071353619648315693231274921642721718987593138019711180918019722452092058588600198104641380077087430626626065389436887807267893598089886165466734651840893041369457537690797292777650974891240816323188317083756832061978188874294323541605130113850498250648461735052719322604933824800348768733428051177333552245167989692847838154465533123414290661435845240275109156579996250642480499506137131677383638630052440026016994580036388611783329866894904330696158761802249698458873954545140707742864956830446523201089977719657283406394927219637671423868970762914352140391980085061448202575537097777556805604576442333525131642220848521073319034750031697579307934370152876488416013899219726999370578905568535358176056325895928677798000448217855001481039629227664982156119401334154084403827838449858731171447260225073595757702049526119568949166731497426463273639568262190320975458779349761134317058116284122118925893405340394386326085127194738360241768147954647993625615527263795558204626827616453190528655775998176078987189270890839917802789460604529787868816275127283852508147499465261618735109610830597550966652898411624019798084040334909111794089111170823474512911599371468428545159827916367113279704704226343244497575008056169592907960041613507384085384181976417336650393343785432249922495552844755573262477736412625695303817660575465464114105517568700033591593679333561778261558019491354351451917243172423385621828198267179622721067308859920704565028930275162427969418238251962395543793273557832136905247799291107803624909343917646485593918683709157223409071556017043563054983329100708253523736857099119029462790599039841499501459830219731503605095555043564126243084248429868157573230842579342789404937331710568911793377730898669058572618493265727301867708424038359158149591258493557887189176311209258894607706513763754931548868682133404272323547059580879243058655901160528745771502965580927404930941472477771538477512239260705017170584897189382889342549433370825053023915879884281115167781753740268435839014943689916317212491518936117685860850827838058344147091826262199575033705711637114195745468615284033011167549645935434805456357359806694029701177907869722676071750200145775536327650546527541368766730745334926815378137156985398466301883796883141385372965827587768324085326307818922133654303022492456144993654102725967339846687839777491568109844288939604997017408930590441648573938466076565588312520109604843743216232025467957332105699870837210934801069645960928272420775606846479026032174019731571778713045206484504100384943091625343105702530782099119037232252715461854739884272328901431575204955542222418716649477485707542458010605849840365580023672337385191905828266474189786971152706561498838354624748042769896206421033557781037760098893394106609610610103098834999609224707581490715557634304587991399354955620622912914959024818074749498119181916707972637896936372220185734168008963716387067552771243175940955668646667244208090209875703954587653452009230102662333838850439893657727250905184926141860789716731052741254826151738143658068978960443415432759491346559236063017239042553157857942135222206964056290191119615555928517602608380873416881708167658351054134351763797542388861630219588473612513328934151102486935594495533439556658667942609241717621756701580411932839146062345018533441460681909483300777273541874148666947547086163779145406637383476145409450231131316305421756992514065951973552930800866309555078825446675078174739065278888435352852425625398018598867131310346021805823658715260559241063179408540209411915158034772219140961563460282264854918709043184407435225450685611290116350228047286063189676854514398150066455962192474307130775925765233387779939092053726131762407305959155124364797083099981719886714238173512745039228034550400175583647958141567398570141782533385669588393762583911348839638992658686658872781762330778441300592400326319874220172793155414382598905624798319251086064798299728194011544367415591260187406839063439297273979200581006230707765549581755357987929671935482520278926344889750290917192421564646836104154434311593119966971800349077244631393057877000501624250113282168295693374047870496518281996181414796759118912682511944589258369571654037932669453935534163972516312942009434789180793400016587621213675735565501502240429341880238498118984862889261560547825862849210769809194698273765597847347575441683536622306504846258962262918135961223016405447634957719064686027023606295549299321350727746472781570931635719419222123753499817620533762408988869580334773208840458449636542010516266449028255877893546607328437851912809328201798406288117102951599194738743612510215280826712386586985958811083094574962006647581764068259966726456109251682366327893136624252914752074915598610445670833888484869721164035244199516887790449215512626720267167270618366716388432223095727691554525383060496033416400682735313846778581807361962798976388014527003359367076378263357486917085620149704154093336808890798314068195247660981279465505755545068447282566877898506320508590297328796380581485117411579026798534905359367308889705035232694569402147167770911734664319458358234784620698324926350668244857848423997271075254445545074533860058089169036435553008846606396734398177966741036387598817254616888430771606986035635481679122406490457521857643553500854869936025574964447398313043839074039511900866970360098259900362304342165980644220234024811207926614400791932284464438604914468953142623130763366768103880879642623319552391815444470724956727371982639494145205742131557492821108474825126852711778319533210549794326378049159027612075857009997933452693502388640055555501383015227188793338733670923612064135426470309234871412866155501821266118335000384044242977858028710875571318817387047727131052661873657365804371927129727694547695986731026892529194218039219553858279528103303163790143977880063199517167338102877202621512561442608340964854930070414057475863784893197266502942573631880049111581553133310041330799329468940645052803507119633652760010134866508433183958659385069266742301948566908795601981709524967006919538947183245072951324369772602571422183104599240358055770778599143418501081025082971565869215304295554020232049776830880935390563055067221240465783414395808009703556323369613523575255229840934729172261450718467635453309517556306568331615701043011436033861893647194746052626553566130794942780657528608253591548977868536402719953852211449759474721201110897624840876989361558027784494711240036510444697437998235957091861222029051440355672819115724270488021230662232119937072042831759154953594243722521665774770419041295298669376755357691975005035214368781618107897450738622503533963043802840015575806369451158919929377488495338759014154816010029590930279459156212712723445158556645471760956397193726398532636758543717879964379874500415265553359379899738308006826131885983231633304486386310190128509473442453303969071414723520806602828550943595519688441910684346085707257968684626064161935595614397506852842101660060299224550765021716104611049024578704648559233768832730494210000997355917358878315189343648098792085722797577357783967343789154615265966372375785772366694850268098447556613625894546238676400442238338988708242107798244484236775959788223724585429100717439330850288541357595414167497737711314360953394668634783489056519912192582104887854269495394630126009945462897684212340770742711274371074580618350690141122147585632873955102120211616167790118046160524847845415290029282491415366702193487594959056452653359629921374078457180132536498211768098564111597319700816558716891879236078374240253202843318820978619002993416313549423079700645102949514975218866540719711084426256900045065758925158218447155036191551002314017571739680671216242818459724701497705902800697963544427543448361955255109278153333849525506636356739219183131439925408081742997412424070734529028023557215375586661769909442243315253801492556041712154925377410466331540523507800764898652694000315108887866850353685000666909920493641838961285209691081066471061513768008744101805846449741994952894490325109497835889903469535524618335716028105991070771406149893407476338473951097265525217841707015734575728937989042021955344753021150693255723685160930343381750857601702576473572642377944105744020382855463114244425886570198622079447569635432432682315843888128521152480760134287155593923950992184897652468405796091846650167486579376856000008504361579305088499022918628264253652362953970316653006219805184905993905540724583848598641908662795940148900357385172218319853259904434550879512288206879127347935031240361842927045930168717995562249215899432371076143537930549776509393101905426379609895448985745533093983135991371275275053135583828058767370778149392717165552971995599728719544880871715434435745892051215028741115790662057930961943275842416122628779503896250058784471920572088942456365940178848730957254471227806457784334130097114164414648103150231110401371492836399040830215961940732434412577485676070877053480908697463032132892013720103053930934524655739907339400001721989140610193593348721052189643694776461968593030627552950392905687661124545610265550616063442195523024922510982892198514780798992668561452989149216087955835216081508139665051773603933170374580063288037932545934220436839652180793378797374814657527083856389513498695896254620069929776026952994932986263746684684125813177015761715812658136475576998186302606150865328070649258546605181718836799387411561909669192539488623609055441612862081299749274808217064148282643710355439483698516542836816321230046631750870378623641433239781130826057186760521944157275713152594287217236429030761954135926215234457829795061478413338513264103036895628224853908499137810730686202337379465915880948555842418438600309131543142277468658310106546593264079231323601312718884345596534201590743599775150903739514302214902788625258844705799118323826810653980081852226930959807357430749309801273691550817920745144379153542677807889865667518760936229655283677691891045524957555375433025837923887283098026661548191340642691594045655396676058259213186147155195954007114872625842628859333432158800663568741757381466391456288211640161465245143068411333829382167701385299344633234150617984057309298786477754669167388511081305806693485920386514059787382730188206456354269308878413132182534341574699450885810045291168692134409452103409463408366908482648438215522659893183575567764595523540364800525919251527981037678105546021523550680275670990079853928116196389838182130770045792227217100790925677398542251136394553565100851193711463340934613570776541293842727915518673533090122546274395891833019773655492249167413472763261295307096505260954532671802800302056243983570306268521133865300355082591198772434398235488388125400297803872519108199486503288268147513028652386750491271901029109191402526271698884265582868533489571953697468421311601939514363774282699271156213585786062004303529651224548707205889599789425836292167141002445904716875050473242205405865658023120355889538957333937411975812758583091903237114760407744974187404686368598162727985950760972593528301758578714743799401017934313479226623071468631865677500086634090542070429988834505964940624079052280340411539035898404983477197263123005133144564153511849608250276265287984059578441196140692158687963845712304635159261051068900759343885852632740406604964673988818030259316685166741619366722275610619284889273702563567325020612880287695353522018362321273229965456175241839577263735803595125355852700198982915171932528795552956237340907557632153316603404270556950090686355455559544926721258183573859035893142727862416753952410287550849004943723053835357731943857679460120418354068010554838449168151553471475221494644011370526750971088056632554988908600423059735000883372905664530308818783891954226515666877402616085655500966767193398692743074935357272841586730686951048302908028982210939165297089655021805540015830764870020925213530753103476149355963566573793814592972453843190407246087309400331472836356237054014305148159191647604154140861049077659618108288615259600692102597241346169713044531529258237098264863524613807290861775630397056612681696039972617528457733146739018283674292620844897270314920875454927177897470021889902508267667388355614626153422846864012714684387862956786715642069248735414005229045030628288680531295934711072799754193501559398262381191869431911070805233932600396232139892316044068657318037712531446538015942458554049319710815555130889718276002708418003726621070652847581575636244424929331139164334387413445250196734904285367173723526584102813947986971484017202639091620061537186543245243624857009238600516137514909972276603050881571751223273047338829947529791154577092292476070719365838650895528467765951856789913136953053209742155778669821778610739398734188666784801564040506259461580177157812757535574789859320058621653056157606629799459057948509351427041979298227600174922084685020277063895904924454372979843913762303150739054453444764745672491027966489099492708644685697172759828272737932855795518875828968352451723145128193594707774143929390489065029433079683157073582855261498032652224999323720998007281933005274755459825475739655696098602326660099073255763385939071177234899830845493237779903045318614247282917122314148531125940766463724768535206130518269738382607552772939195665072280920217643837318424689257521584497398698167391636124332615176282534907641121109594142175986637668436253361326805800113048176036190563322006151321126670402067842819361442350796703632237698119632712237848738097366344117366230450470331394750984220645496786367910350245222377535781562034681228724015769482640791389334127225489910105646645931670725820845959561504787900656380379027057262244189242336218421434642286289164304515213790467185034785362689857964871401243035936566288636302696242558193396774163413516301572640234842826818362888361549833849411517618014989801093022119750285473228664629841992301622579778128836416172998624920358025316763848771974358766114637628364127817226036050317192005454385716570227341822202432463125310279587592710202752931450480526509708538625691706599383191527766113789810961837559789842055484897213255101599251820491700494165512976223813211204960804391884540688532214351182828548939651754522839247382014553032049146838830309400200064898263892171100279341996316319829981732127439422886220485344184288540364657025906514247533336750452886490873322294600405845108951078589110918467195943619322562679102302775936436079148175730831344367887493641312640276705048864075393501638853290387436513877137292477674705316050024813418822972270695888522800209059823803995118725894305627019082659098864193692165987455264798656365852985894017141384088162746487135231844321012419620522049808429991065998562345357278570691069298402474337004749483640702387206189637792436841300300913569178407155291825223174987565982952823708855884782448529960712396100470096087123159492570472073364945656913960231574870970179185340135243887167345685532940251794428509166840589652143413721600126337261981248577493682888557404066295357476219617180409244143237504780249151988343579641131030088165347866105241184383765787788499386644422427966545671660165682628011185415377014037608923488329334927624816187327395604400318376637201115076209743570509771808134756219964451919248125622233711956225316968289783176216958404599865557288551417481444670145095262334770603416196805851097198954517324371320241276272619788614461201432050319705159863565193805044079845683183276721589440945306843004873998784911894277495920854424221697137195216276857777839831770293012695670007675418393318948714106098553369474781845722349556585265600486885662393509211608253045803136184622596017698157594430460395210071287720424303822438555894853727863662453884105803657181307737201320738183563954399947337003492905499987980947977245142043744723517670025779719851772444913286831329721297996572609154399821457946345843097365747138457645917304887062575447389414424315389633168577868781391414602101567196872417871804221399413730602694019357510898993771153261260275501282008546787898853567239579508445095358732002812650810985197462560898145637630598561944690257703161020714364772730362833900336090989188717490570191400641816710435973890921510010200008890242011357615339926109878010160743694224135377096295556216381275508245162264749483058383202907476553317444484343918737434993852954963166604470461560517680631130178428626057067754356111463104016884708430226512722524020240327938917510053047291151185503900331772816093721501519330587425257871246215358911906964833696595364996780242725327846444651516593880540221941029033494887165390147562044926238189846780833043893227776545813235106991790657373949774253779324061091303952028600293765353560253460259900467606459578096141817704218175453355169230621774953567254545670109139528053566897860708315059216263271266825305058572405867092668129998227759397281072937815201066940328810152435333433547410213911026665336184085087662276290651338591911993314903105185331396276247396239267341102406792947384142781997335568619028036869060686981737028844221334953501454466334826419626823518210289514047368329491016946517353667374381033766548624131766131486592921271949011373145879988642051034677853444253810930363682198290710426711628892347142977608072447672596239605826122673804387330662833830612857355526341124313004931911392625652432272231994911206527830213186717363884162866411019722104394806530878751878235170384164482701828674561737761316750398618831919489575717932773262140043664955963843244879214020046038104823744871888265819820340557866721010885465597230695577351335107642265654292280431908410177085215769408890301548420354861430664978983025878242062529560088208093014272780202100343017913657176200365194277882375499268780405821721166740072144304581486472451930026780179338537717643877531793127471350226574148072654267197558218213312410429238803910708294614003688538043803100356565867797776362884742068049659111678533782529287030114099957445700784045454231669506594537428843077002433193168879281311709277634371580383179615037398685657140146194121746586442787204259778466973079997291428840904948281433310670410548979510142027140256484028753119816783900497216240731642213514598212954509049066397682286089268860186193996567388110464515178055227210921424173470069703218460889044367098268623170017552870617057977380707225635024226181888451814009051385233633309430955692318986610419600098975159425012952692634593510858037926402725687742768393112362985984173875145763279398973879344960047449640142622320435782407280604629766249332708366388033532206797381885382011295969783189633630209884095347620831459054703325147512814095022661776940756127469511872218437980858094497886278437742728403035633224263603389062084498292487199630720069224024169219061079747829799031421427387912945758879710797932465320681118066712910771339098106138545062670910502696291828773744590150709316560097472532901904272656533742582518700395596186776553151152327511481782379141275549702171642520140144209384297582691959031359058792833634814927961552583026848288462576774864286399157726177137805529539386677049272813001152207806028049643609291767174752438780304072390483332084944187228963159836248607426729763338532367437805484197069115549779314587533938756519736906272782800017237656932145811797906087921935527469170905536061648203426725742088032581006037114225798820640446711858832628223336075057057595199175824237074726778965177645349276425523223429146046908233292069401550115779556616486280919882576270876549290780225360762871349337785527133714937871074922437430648477240544393630554354002914307970971577699083482841758670795368551570642113260562697091414941863909727664029894142720429148530813695189900228047065000840875820225780081003242237673054484689818859403666178835164368434677720843872000604402368127927567952582987156333150092444919067889736702613423489018875837747194956796090770250761724351357302873477381399612476214625339349554035657911513882184464050938144728431704471321000875837163631624644501027463546524323871443147551289349751911161631509011711953786569984159083182626091566509563181621177940951486133843455818580601275396856762586631446774990450747769523075254531555916408530375164024937878198778445759346109828933344071975246406314260665617058688028016233334123954806894598378733328385267669939818100684034401359312194403036180055374063033596341000836924340319222149002197207098451463097782499376939720985248075632187961042408959305475015990107838178887461552269362799883527525202111700247472902548351586336549415657171440314777586640820459374994650624844683163426777629757131988064256851984351318102678827163910127984661398595936765695986076448650396960922087191008648720936949464632775392637822391557566917495290866420496277600655100335786053027746547206736422269598313330166380122706826796924075035350809525215893852227077190890233171776527773428954753773882578792993978638589321725907028084294400970510920357898585330420219183164909964203390743799981358894498898407765446842410856468740516372541793173333888185543946236591769564157527443621277477233047667352384394318324178548035095952443427987745599222426225671195838728114648332862048776462828586705369477298259980351748297626702681533079465200414235038887624002450903889524063326212572786473226991958190687419119496771765308665836277552974763442273700851150889875139965022840271018308081673562720210473016897526463095073450481538674153202115130568552199113397257386685355195354621333961098805292562668935200650253430623373763528374155178735388558918170962665040994069829834306259383689382038666474735892171917275149053102076136969003670552660708561349195255487517656469405229187491619556272093864594559938714768223269988695533053721705839009859028658392818065552849020912313590047491809961034133939297141413722176462465518451890101190170597152482297173313763844154983844550735033515247257224279355173283630177936572583323884288048835978968930312360890200802017554507007434727180525611071174611151484772064056094499685170051171561380140961258429082140790685250099230854488415671274999526901416388737517549028054410012013991653272312915426063400759501615678163716708621120226308479522139157553010410528153793941558154090571042325226214027282583086713252504150411774795081241932634752476519326744867015452917803379241110028592958588081572699183265258512449910559158538631711096414383413619104896260992654547964454138535615870155616365516103759688281320615018654188207598253346061545286627867507978443822350448833867733330631820976746268924940227954562184109990888796966152236263050108578288828670961561960470802177486384717467990958080959568660915847104896017648673324865968511256139739866107095707366350673305931771898500334965515998682516289008789223270587165502505640308785599257505763731335719981116255899873371419408279364027530210535016466320205159854585796476711107260990822802015294628660303602663455455675861713586704222659394523658534707546673586942012079142592577644194974483279310572259450125966706487498530693388903006058156653731479863773971098643855927620508013270912466163912149790638089311694176700264022711746191227848099861484540134275728529634984368503132477049438611117841215407245671623188324598466662262324278867249076587773415968142533181013466138199523562049862571141763913514728258365594389747946067125345810267301517046069088227236902036571363757580756274054042432661757669492733908109303543738916511764235103335366038215214918849944127556749582719299972142965357257148625018626408484452044430547477937480092926717519376018041868270548198308176767270071020051720979034004496992281108630018524274471757478707455679390297260434757678946926458107949999703655747129662433106682164365784986132548551650242659926604057567707044117579667915769871552063919110926760456933484805263583986425543160927771033279188511177676173577944706018567289528005158604495906364859877791507806867549069268353963284064553114792911821794723331758988652793117197615183193392211019525291864907780851787772274547603391263067457095206447956465875870847061481562780204663910836529515888365151308660020415045581319276921672218079578872879377243339403348595486658702784328560153024858399037229222160548602560386588756939431092569280709608696467404138237904137694052975628945627168847470033869744709565013729255888477108826390794907574343020296255182898562990505377001916749176092545112362714274200101712036461431598709134051764728227213780944156046071341772639094474338768665998164500242358242060718959696768692458029403334182185074699638895643119192595560137775118810788743738773304173040246047108194423832810696570147850396044725815731395404754805684598338053956363230409501854350159621385005523650853540076881543432430307563156272131799466535689919675262467692427236559448979323144890978209875021993971127816599324636089772728339080783950826883976129642322913576727751440818293891675330488141095886488409587258953726132558440027131741627087664775005562988163962643920907418691390636457417170551663053814935839244030414794456464705461891016104493292271612601197260107852700994561881491946489109768600970889017008406900026635059198723072006353558999229495597230115952339542666297103281249847503084061404533148246034548867903156773985793932977310480703422021363164487255472771707218695021769893104841705248556370241878688461098027982903877847379944439620036600763588186562109265206810344521699526103218173606668372533566045840627294533320921037404599702885630836662383889977157477397676154577533547719167982360530232349159023243929185975893032656185809612270878197097390071238264290467022471162185856133726410410034487514085140150257642000072384476594981070552374445515868842910401545450751276727908431682789189727576128064927417407828615778385292298121000823453056778046051742127105947853309672478129616694756566510029583315445971604061002230370919835254140995794549944966092585463033019443722732540685179036723461512944210945136013119373148727155730968998751840981187196512802040582663805923250217699410014197322017367579459363497340194164942145521279869842854695902546169173317244475988399281419470218091031805829518322287165745008686202067203677440227387458837811459630589188789008475062770607605298486811636962377041647622112155847113890020341400387786255105704951008191502044295655378162086570898014000689155406667221164037071347749843317663749735493094535172701979232887752806379819925965675342482237362056405997840091499497666051925236882429282221224806013037889591011007220069583120714382895875371825177348866531031298354438908995438910764423107292436574263432922040036716859671418684802781143424326012072953185468242903802471054989063852514486282363664142174816346263579377782602495107217163024452767654254173335622344042751407169404522106631831386418384708017510737155330034236942981495093522820679716410982279839083194395263202169342995616728802807907305442089041156745007865069963060346741186912880253019721488817017582660540811299050380283499197365694581496359785973043456835493382470898272910816968826299709403865273251248536055194384034247237537076258373947519107936318134963779683071632969932105626803337729634774291407243122627389841146887600433956041432008907920234414600172836290332944187127269006052834233831147063187743725618722120368886140991568490845564547451966883285725419626456862831361469568867681385409020253039704117790412314242090086161344691713414372270324966518284078169170746658055297580625786257180875190258170227276294369774500525399105489414432455476264128112787495595001028874844742750349117167211557904047810258883093190556770630798338437983238235114158874618409074711692758085118757701147190552785917596053597661547630827040613578437712700610720273864014493183390977595528294306135452756576018933990664346074224548940374812853970096878198208377739034136624897749550521086646212309323254673908307090004681299083429674158002584012560328704015048299913270269806643803510155575707373874116642292907738653660522552993089339907816051402189600616063593538094963198420658365796572158960235151211556861994889665863261069360999690364655638557021938672630027129252666547918184867101497111367734835590312812481290390770590588096840272177047216628981120532915217825945443189005703221256799647603058419062419360953453315743448169809438722117253394971815381757705735580472898750625535805692949445821039489189554920917216601901120721712078363747118535327673562756122542999286722298166207082614828865832672653078968320949341310688603695644584620907618018579793601907625397186805780328663398016006202468168132696797374755688362657417863805072199284342227757582750621132231132539868889630132853863552168093761599038199827194652961985852283359622134923507130955085361805747712092956113784336365737290247960559919071704095278166295255421674825312237211525571191812541273798528894547412489465229634599316326593008242393180611138942055531330645239513610745561358718097663569682796108087266248383767293950719200958641525319997097516142390200129349144820004861148185870166985723725930038600502958989713898528265078136400132843112584464211456824511150987959123314497252554255377190493797747707165829197240863946283071132819863380930746744828520413541822668483496316870074899751455687841089974335033046631017868448513216748284196585493305783501491346111177854999981823106611323401574148454229923014906081093084770132633107648560835316060712406167479368947467800172779132174791093470025239053165588392936021473628493629398899043022705090639732665672231073207097905347058409416333505448257000796606430732180293941660254446105819680358638886547652469184132535183995096701651139316865410168107192200818815928295222296961308201581950201755102664546087291378604865194449186762117950886588041604223873488967715630021421288603317781832216810248768415215038092299787538548454576579835705842217917545482999774179609448643972419649788859637186050729340581059068359483849443912346824778466438877381477959142617695788634239401867324313722779449569490098978931690227060315121087499932085711583419049421811213272361027923292373686388037630576194383867847529928734995853902062626738626819604158957448639379802428322758390065137779689269436417667553534743595835414109038871823137116386132528749108470984028884081220507521063652692306321158710633486348496704513582598141220050487877554795974313493708675343128423886386113485763213666144757288501873494923430553771537844296610331997626135605596972948739571104761755606704982771338965451216963475830933624707027367096386369697479153006711128870728475642348035402880162453349388493611572152650787391316103185095704553745615454689438408253412465430155475239607172845513056955904455605310388040842037268134466695016532394003290030367572008520942627563527971877006641595250492001625176419290564560564019589629702241270045132700447939809998872908788404555247222780950845917593214231360468984453256625088730160758225795743499801653174740054545968003443832177118109305409722018852992347715605232884368324817629869512895853181949023991703365088449290217647356453407696945034193467008117606217454256696638575087820166951046115803913133870207124744013065844674736620056885631086684797231070444512706819054025425144533800754085210305421088410246372693408576883982483741111371170106297465320164082300551911605851118306814708029643498461002638379378972467215173351401518615973882030747760337729289710780405097589729490935265091727059981895166418014586527361105732969354372407733541203103284361061226235590390042372087347530322894989126315004013454940151119322321980343457041347050620317710974137017209472364409043586246058505552049609824824489869619133497433142013468657166206816363635280621944769641243631085476165069462701032313835617838280223753902797272987634396120254277545756075860400705717733928478803523303474737519177645743954960055390069155216115892074547547795537896528735980169500191341024177873881606986600747434841507231873164163557997983123424187899560753222276898675114747612694866557530166807035161693774751929865836463735989893320468603967056118934667582473216115219432822011635913735156773889670848221140537650133416547410099840741058628816515538397517610506968969236401471396604236033466056810312378757747742440023911995310378387839515217045730844931889840933483697293223375209820983173439872952090360588227243381961342873745888905535055460989922696097759484590623381134194483900875495068296351188082555070985303954619292222565524467975942642043246320336552819737368292408919599205477173150492610472559523458968804054697712879459367094758439085264882891673429882455786888834536732261512490812627683331663438392239603412773634575423325450411708406109381262777678813699278523978768022461616430364716486923838841318309582110659512415118761853200383240259103548552429309561830570877962574238783035136446885235071340903791382228600002345447882645479032339942501180542140949325391592676313442891370374088415349461079229182085106524541895845675087206823533725112262077659133337529915431352968789159530810294750208346206328520473489465389802595737256021117060538809250472117246582586593114415729061440243150679170271493234991279819292135352885799216290615713157868972108099824800369237529057199144771957404534351396804581176300265021282333072874544475650924353500645581324497455346481262396675931870866379802895836301416552150404098805733212037705079984676318032108596517111935944928178300312522070195958645546445010944951645383443612221293307895419863838914139471495100412198300623502768842499280586644043979919610729627188108132443716996873126683169674660320947469793219326181783998348611323717739972698708694164432837548759872652831167588877965958878584832860855003350633726458721564970789398692557113052993056340550766123933628185757753757792134907248256845881119158858099389120743583238869425334746808267304643326623575165760825641806378562083513970779220874986121701608084661361664969168389648931688252481371268835904679148992722550179801128845021807782037611957503690317448849931939778321720314600405995597440365673150190810403141124448606506307220876235699391950147412872431139071387278710329328502265908700550831691656271341697966236861303530769817164705598629509439603969568749867532940406791654991125609005172974882531339619606714039918582062212532174453325183825781580353885304548347864310256551426730375699040753835370439350978167458967812292548505948017085493466001108383557083270429850717675478893942895203041567706303534256732258517686324550961731009054235014691413368134653126849748515618513967439248018733141879759302139703771823312365475018617940829243254356780117533222862021865874410660972906622952895444579004616458100576012673330759594990399906595503282824530901046045659797870235740827393954720855619463955495975752873533950478969361741271186907073078544851499891353766162478928988257749675218905993104190008820890494052253462069972283864303364064334443074490394903247520351935254613031934262918261885324038261056368725458448322949748458604188518048837849476339939176991755555673280680087530185885305247312747644314674529072651019797679057625267103050521364222663479918097872373608858597837988242978302520152017652536361603775991783261477925603991885470802018433295477919063833485943023187926669623062777886797925345154921895254491709969721574962002351263940804337936707547694496508373243500549631121752604091555330825255687232519915813998882236484895613936340755723758993092158712251300517560620250857158894203004342956161773098421187083798261256517369625559761196910182135102199276756788385410124317342241360044385377508707417643303967899238821211613990575909898160237458633532730295786344616996253859441590982567775249642800549034457670435787378715331059692354223569085264691881315969358317997585612335356337561712363985427819513298717566810233367198234794009577381258979016726914326792065430200500546315101046333220616972469339402500655416692606948736382428108975748875702121682337402199437714705813668475262589247881331460888140709351620481287348520935718551228115105839158257407742696426387242175749031595543495968951321380217546227925767356169117127296215508752307058360794958110598758588043555626047514278807211148203981761690279967092728365519807334831419232725346636014637863428056287682400290185512388611719049098086495103996458201152315929532386613905481127228854368199948729927592218064181113235274697460450990322103481109300311074456254501052732007046499539593816404245844428345307865627689592551653967227949608223368419504606040522456357500701221494280970643588508296737484957594921828202354237377920187941228024898952725930751994243559456278172020775603505096501433432253735219457637995912587338899360000201940755975244609098682996669266515795320780279080227002881007815760772823282358449075713370439291806276092299346086654682603627167325272131960450452598136806821921884195861131872427343241294900913241269788232433220475943544853568945202394345653236117906523584004812226986563532701057625319989443012755685982685823109872503741097042048203317176507923352577337868240592640072682835407446072346111944125003196187304112868531767410037252118600301917910257991585059892884875300904086815239566443747468483492517170724669944940696404578979158397399991786361161400203904227451535813411551957308975874394923812731712145116885100550840615940889212684517976761469363173039554427414272679035715274851533980792883528256080064862241828137712638413748178638893861817299064858588667880373137111211182635545708203710767684389503379969146301042207583203909515546209669631663702798442157202172989515645992548521554845819154251478141885334298863253496696407841074933907037766528553986610178099887302107245091753895862059486490079873093791053357803226310234719644844150347116700058337138260242122369461622382883682744309340481484881161984505493994343146327057858298945475841136667112471692559318786743861282632469615875326254577258554038682313621115857985823348402863945223195203593060824843182501943928539090344595345214367276587915894813771591984066461641722472160132474442883557686851918365779046446556641583038730395784820376094831923130537659232594969475821031025715984225536933093914490706318430586880711159407770197568479677786635929529170800108155008109518387857454105701769637440458649725620509961146000234249378961290734879112992746964597557709890248425205118704534421710886909073535657810046605495549703385095251688816508280823631655911104747329214408508376548847847857155429657560291212310305505333828709783259065104784190984091522680760909298473714499670690177106117147019518369883645881229079155490890746704334329862024864256136501951921139656984885571234604963130107186957864275344862328989681514012695760170189206758070671364497188266690591772930692886633531102286500304771801214418745969356919242650078146774888134738127189945900987589103439189554410873136592163033233064273015340085294817346241810563127495401676652670064350322636608781419937905066507273637686806996282360461507850153697834303853049214845763040713696789640926986743488066992243771723114186784863626072111761009789253234249594416560537405746378812111587406514230617550508633753378305645147257059926193791148650951909932214568550999149041252330234935198417235801755564373135194223104609485289438541482789205975149652733283964345487906106174826892435003045580501389391084148160656239847095829143564315552651590130148018540761620022059870635099479168636694948186114096543660987762273129784877952324558542519288920003478049200379022364723320940053936514274381982133602102810582585238625152589183181718015799791443120992748313408304337568658053900239080346980278152794249117206163956410308140493851011734947702386905177433808242336618079132059914571272627649749980586387525176651002137257207547226329835366087082924828439994758170338651414884077477060004911552820810389091649688252543680037459046982503600222978553506508752967132997185714358561493925103161313357322674413424224202696249197648822808477098963702617402348304340408091710096230475866094139886971804619091482068551316649060350808220190520246740194303897889791307141660720692619375304898049390534159537691382358316440441757065504892049407221537674959045011910607230460660577446704673343055602297023336290256656374758539672306522431950790722407077047795233117235127470382895998959352685944881262270494433452043840550548870683301110106311150440674835783315401034344780322944402279563875790695452958230623502395288934083770543197282893995469345324191444705186430859157717328585899403343519712838700244731362668083372667893069310068225522615458589952759369035562931545020658021157467988923007037312557354511903539273941667844310995723599519343305506300631232999707064789163031645280854019844540447364343711888131494590485208411228921640262562488330247770777555843903785530612212214047966861993431174329127234144195125712971480674946318133798057422898579498844054378424654077402791389189453720752824913424502645649024173941328488592793636857931515141057562614278830559245178459143660202669929250702849179417967407730384922423422297685641921556542160975907866122523437905352714102215030225914980920995634728752181458666737056942342362725564285019638122787424401408157723118789979441361938701455963034202442683916920537888893075889061661367057301945405878508595424895501249372049377340372583233013674430257886956792074573178988166136311854687989573219538831814647245060315930320482253682647801468072184258881762448650431932178726574861064899756359261167557860885944351807182967880344530661800206363604819446984639680640339989981025670984867358324410251841855735259176923408576125864115793913553945285929477451789484857273331986925659174524694813646824816418216166275052970951303273157095712758405883934456306729101316770280565688546438235399533476983507500612519536973411101554857765969487959390811905540657111748009389644080164453400984486121383709918468131801801511520076727497607868154167749968377470836822801673022804255893291671294663556165735663256413419025143164262744451619697631332612813733731302617395109811178308003043854142411017965964094067248379087803034374817802294348149408699682754465735585400473198560392340707252016731338605820246674988922742910331193442169004361963321614672377773962169815347182073186509658781661218628236230721631524739531489790788502505757716699225684146324813652437853081372878216491370252540282963745943782863323133760961218660917559963230797788196370391145204761941376567485576809919542555550609753395406356636110395828706488673456188353170519834615122241587447988429300583728617395011798895849352672155853713953462190905565666622154129869280239491173280320214847738734639459545606131581296383308335947736513878220644308628189706601312744374592144882158802622021675319599165199838263487688194974411099663635364979225643652568111963728565983298053158444352300006266928943749293332341523746532148451180846096762168848479914676854757907205803159051881929407239636034857946117371505437141658856438912288516315404004609486800244461819797307033273315903991021080719784489623754994603066127080243219866341846335081814253398982899179404845969070162451156786286142907698970855349855981174433913535470091281956086518071325484580635371904137320199180858066162040345412749410767034871088459389963953846581358046707532283990924140819274496707888178687061731328066929320619188888881327450192378496080799913544226532131914772056961160927417953143835948518787105157394540297591514407169552929636671036290555140391871933814895168201319044449209952212668145911330152721694277735577471029474961855550038961355391225841384660540762941061871627357822042220735005589546823430898652735387595883774388118462242104846749348729924849644985833442692051529028314790561901961522767730147126983226302771944405014031184517047169919617390734300208170195285263723256570230927556963948616130325893016988065681390644243512288176233830186093517986892510362223025449620707859743462875222824535837124530566900361584850717518664596850482519897647477020565215818036258724459068072936182629517229557426446493603140973732493642316170793456827302429149981794537364282269024434069480390909587769993129683441678985347404912992776687888288929380278304013483173101810261543829923120112619971921027617979066891718308971118632855744391964330631506179203450751250126041084326342776598876127326874353193941956609659298146247158311352501767798209285596263946708958223674198605118835370240521608006757074212305189785450690738753208462785763022923293076482862772141397565757143372857672573101737192522266417544472165730877262786405261573551688485614343652613845603981976946868615316251223902368838014360427269721581611206484822766303704289720662806791354843268686610069843416350724662242514212313596794194520600755643353186409181064637677038743213459517210384458943974142655869126318626682503301963579237659803404402237798680079912195747476190122295596855795816971615588661451597412634204246661439670008924888550616557957743762770645861180433343146450076891106180740582354508928936248962169735822290784557316282630007377558652811182830125095366192812873024965829175814655746648322718016058519851703825942517827899755484153394193793312573451972114518176315872588096844050724081573356648435708651144372009376816429777612021294105461306226404131932856133167572696138106413437600912218480640859563854214750107119586561440504353504744993255807404666604814042238497462231915651942674460150995512113207163305795318492296010420849437452602009766112477295824376967789469961210380009682178520774836280646164871461729905136807855942813300188692442833006736712743038273949254800600474698418170992294634859302057505134299507751736743848654740208463719645247909732471950945738012913405357981068448187739193969897698016909179180642116171170574988442657949932555115647041184090943230091411999165029175917572177753616822808505994908926853414790829119450944948035293469744925456103071339831550074040609938080420315485631514221893522489857251757500900221456815455388730383482420449138162153754775180340172083871638881657915718376704653401355567791480561272721609180954700313774174669385650399026301588116644834151493171038471769288476488661494669942570020562893250443885608262973752410260490972371378794674693755958035096529394508336139911823872148493046412047111671478340061051494371471274325336113766031037451340302891976518529467236247225129316876358205251174799295839346388963251479375070241372027279290951885785670044617991672109597109664271181909957397993317207948731745005945890913974273531750269513680956039390096309150327295296301192756603309440586071082734200627511486596202628400235544735686006394888016189894332948095033778524558149496234940566638149180893360618162000570225801016698934333174173989259508551748930433758437838158071487453960132468551751278219381145837608222842790376558622070146101826114388719528212691739937965546502603268552868271218446212106548084897640709081670611573418551618296762810251038601295597195460265893894601869399686485108382095418172759094301186366474783225383646743401770491347616221012036039020927029934370984877182146097917057177162930981124443960561776619180870568148715397136610675293808974372086086794245432119397653877015257610001399082632354232514829059408758177177059481992407605277502898133616593517771946907859115901939004506712326219635255534485876183578788193691734405457185642913508890749982366314876154475184667496186076184166945982906211897260705329709393423521810834214888890936969099113490264949864691629908128202809816728356816998125839967970722265401928395899456434220494665462792675459938543088910163849847458924394510283684358036239830713502132383820560856962444688367274152052653493419490328004659317995365533814714929356723477820937475839971501307538789168939780060418430220628442323820997727087028588457273638254687623974796870519583082464279575266976457582463644631021105234205932743067799722600910418182833541648549655927382041759041717951900437994687119364949347004738319895525202581104828419807706496809297332999370193800546387282199496092073806099852603882589559635970754062571489780301626700014374956676915468400217424015833987206259473569273351426448615541900375890279835084026657643911214099760651469619262632923979593388349649137369515924429505804130404169578525906028992595760513816577784311132156500956350910156157677410805877663512779554062937065845367459811975075035725500615713290397683912570769724112772333801889019493295548263101344924991507163042626775245563737191843359215565227077817212529010591749620734540326368207405885107303260662926108253513055692838994413877016131493351991608344516889386076938992367185773802451217267056279435909789898267382457350244932113076284089998758377438078269315841899851411244671795386805504901524997316451499089685576170804153454712797572552683133165560177811047267934834146195110020216948139937333349167622261524017338523814088734064622975296532151872753645696936997894781886176376666212742508491980228566243224273913818154497556658604013340596093258869722544475402004937478821779844636215707940880179043455176137566870963625524969568301683055027989582892422302133458988513333625554325035983616344017915244592186067198127556665209889200075057668806363525133105991339926382530955107978407444074577438107614944518358060244932439801747492141751774757053702238732892216198845558139441655813470792375494185407906579906968540335401515281626478001234419050934519047924610719003868363652500766549843529267877882475274452800495078435544558478732653269081349999933477203969898411818557127873251132501562125771776580641112109598687082583891646453285916200101606488538062121538416943997657740146039345281615640993325236491708324831031691058064341637191948783310254920319871326700278912381546354143535015898850177201609243691656662990388904564235184882176227762746331705625811074743780093400239644560232241688414432070254498063412663034381116297807154030571524032590589667526441936714188546713130798969127767650571796099760131882737609485595799813327729577645418914060030361777742105237451568499655096422715927419201434862477412930446085416060614449411202378506855203170445364082990527074856170557598237082491067039865587775008929172542378186408014650840598050921720442903094479565447583096668356609991866788288117634178974691704667411389510924588854071854566804965839000833037504316991852190841671775610904835931955431416001801147906012108196147068174844495045191071810777313867389083005569232184819668058304494127894389661686453812250839846901889063745218203793940608477188574759314109375750767169930760366931927792830017358749620063935659045418708612757009187038992802985193511868330088659805243821929694876897327715001373831866379490745732008700156624173466054560657720535627771657343915413808607127210803396282564154323386796146095902936949671669900316769158445929669964544268087045879777333958986314607759309490008761687312183584750345811332180905604122298299581900224111777272015559148498219217644414422271138740466509162253782960463950429218714428865154423637289836859329911053084787113408241044884840275069377288466317746527215149277009549196722698407077792465451051307961330318552534840157221333079528214152233595908729887645478171636881325044193060748134341081915034627760621665282117163812082027572293522922264685531505211632566533541703370717287323425110531833613014707923378517464610040688392281896052920059273444439047501434410636150389002307450462451188036873271855328497827744718347526229000113406202168902625169027436703814956424675706633722003150388039546375718985253224405760760947603116500135970849907272855365989851751429116569765303740047448539341414642005465139029677529556567888719708687635172174287965806527601289271368531075434195075119951434054327255825687964854660390971513382856832036759114443874681199678818296021310187542780646035848058195406398936613713649943538890483601567959645497883001054380372112235599828500616809999008056435526152476161958492756670906644118316040559687517479545637976747132100419324116709353244796509875368405271627156287051881063037249611919530095588818231155854454792524679538578336268084970174930132082921924957455764012822335598160842710864763872765758371919246536335400739578387009393165018114864914822050833276731374859366451955264517554715847070257114788149798336603251777393216704823717990791356117873003483838428051373885809603352710117207677961843341403780291974254335768568093025043094700468846049701129807829134454434837526103154407788265939250655876162904718163389477854672845859260525731899555932521449603811849698691134361219407789894377572555884460856772942557603518890994376211401372948566199599852616620934728518212741861988679785989087198809355974443180110602168583498032793379156463753091487139493652028645533302292611151049087102621917915070014329117858018188209903971479282229720008160150472515695358403386043394807994773573484681960134207006866150438107836963182674074285265683164384571692608377064294332425985852964184885218000577560339460138203111405668267586356256937553055991817070544755375434251184529269828120213733245166552935322521421266208282675116978076925123936100223424752940840754832870015595734896815126202781505886490855452049227120918759183273932526787822331355383085775420556052559176330478440386756321661578329348797200110381767814066715549429196084713442263811299033756823579878199095112846744989624295267514527207219978912055565131541267584801918494862557752015982855299499504237470437993981820191633670489116545641692339703363508631377055934813303739451640489026268524922294241680634969591028673230580904642851878146807974208285950911785471872535556250380541445152089570466064801827233847888146509791189057797685812611114922603802375758023030043709508641654055739461421307138862302707080026267125006786316107361769588881971728819981520854051987339840114140652985272534944034507334442518949949951569336438894380644336730306104999699953996519524475147429582598961215225448179665989653219209330896317792967395950052094114393454136488217385187241635505431451823004935639781552286886682946016108320477981317504059333947180975489662059641562774372212193193469455675894412989596544469930659427402614183495995500667363015889489750876240439514080775606890295194871935541812040428322475153015474602543202189446626727054550108722884097934092521082453600826304261004766601869331588482236263014179242967525205212686033534366935198501643694245000012292152680865060248002576199017170555375601398181265970749263336596532596090538680465504945264066766770118462094402887537565441165543662069504858917524964412982589728030286408693958946869194115543509708687944040924930024337606373186549478558799276245433182958657275736296979940191704640916876241172023332552120425051564594281352218072583966352021332387031380626676316438484226414772896215089002039400255641427205926912757727297367872783963902848993274899983532170003967007886388041505187265466895077220781928441177485262992191604767609143948928028790372332136671587604387441647223638828067907890562515235782179581736521504347878708064661903702142812359808988353424270580953105769425693184164624403128727716856091086473649941242485542584457416015849248389002923494866112449766895336942431964517816738635905754606124868111597639495485519238422904982599442910436394265638939224915648651428522178395409179195777354195849173670719394477142736169760730594809272440618819285651973176536391854634008063302504257474762318652240344069366565417965373795820946545050030266858238597431133743353414674469531766130194390222223561170042155900048883975003036174024154117496258629466275673614211693154622302624536216972445991648392701594592455571498295636754356095165847941344702671136852923190679108920363863104867545536588493484730776187371127156503048956594654209252671232107948935532009906488692630578333046485964122806954933582163019915027286648857306061943400952376210565027276906392170446793983166335806764035133299638836564399162508640743124338021703402826756772012121187799145149997677576757513671077991852465437475978300329029184773809192767079261692503649719772217738542143343652350145105055476780502946584951762038129244358678299055342297975080938367696493914449696312276072538784142848312836709842735574012291696574355724839588376528137548344647264350758471167301739401062096302370535619331050493730751358647673096055480272683421200337995854050008556755622963155886285373862511099239097081980239808387500223596126824962478380541839164758114677388086508870267807382712732963817854987386684271724095170671332238140173570805162857409365646456764665295720715347202924994019603464801027422026831014004445119176301616607480903848165138702660671184252431156181557636764759996281460354607126061761103141554578895992015096993706145994036250425113335247262105298350049319784587433169313025463403719493901030570766628826728203707472133594690326620089020123413142425424595559048045362505395019952185733643895571224432183991125645898936474510549509618279992149424523278885651142176785811394204867193818964110284461649488229182067698934381360196652240312444731159466413851046683363204530072277986679158955001584802720391122273207091972738661868709071929650192254516812673022951059335909144079410193236076732751449678780167221836965543063324222011381210975494907765261804595771009057954786032459776232776871228033144816978860706169866875739629679291002422815874885468795829947930639343431880194351001605869975273022091133163294193511375559091159564113608752444253809687532565917359639371109413859273820532478226979162059177630415281815351381341246336194602938215529066769074338896285235239709395980010450862611703035768388673381844615325103837426162341764289874359547461519110193392122933777404365349328937941775347984778370692165703966348698004091027692552669945738201834919847863382146705227666121082346914150266086968025498196482761597399665235347669343158313340680824992373399143779449929329084530515824843029891164170386673397375953275238850797720933365908924415315210258028967624791314212497861172897384639585510944607134849745597903306455475294943340752955484760495555967702460678553311820548136549997400743388695379199970068149399412362587366683048652596047291688600753088116534488770040639277190435143074476278838054743053507745787678244833410630420838950152458262264936872793037558522448971460444138123053599093335812063030620225300568587722761868639356510649143292487741648596624884576995205357893218184780697790385270034553633576930673374977928725224482905002745375558070743387158429815804616095076112858352804272563234998965459542292043979660503371244760444691384006595256596766472850875505693582994276965893100033527110621585094209003321257812733729034055296652080080660890752589931279670159226240462308989256662532152272854685738773748171543079284319598991503394115971560301596907436339644026648808775438727738393275703484030707081641033695258635977288215666883964846118266991839841163573027131632176316187294214186335772601541799343041627748572002249290574138775030666809601349443091872576054901642482598110539914602090436275691296017519131497117045956548334828054330696802110526339708686970829543689375505707852041239126255269526387241124113775263111623114606211341259356182753652279814258703282258028842046561271645391367459184601555948567894479384370255825089759344840196994454044135920538306017819298153371194998880545900070229034712103986448474228412573011140366599282213779811280251366082512876575604164200754894677760129486655407321640457493611013485370237476930759789568771457333928309948948672861376544553522349505239510063157610164724691512969357083069035049001464487107095648197376726033671708534594898519375516025761712621189179226289610066855716588697133310460861604164553120324094378127751948176698912614298591993214221464561864100475738961852179988381148685209580189758297700086375739524974557698134218713944137460203680109124013883647135021988494760032468272015698990656333062612374936095492064410081673650427845337687180763331112973000008699744453113873447782609892091289747294214822359577818700926576772471905431836174854622261388588159221007393854764625084122989849411911251706774582777747831466325291761389177433576017539203296035662113726024602144790643225246397310016844703424884625834401468744082472443786198889117495595920642611543041516807794433737782708480916398774943291595822865829486232488499309658125110352834476823245406855957484585033210349176605800903443170911793253048304583475693871125259144826890074924926846034407107743006640151146136198206780932384714498527214566600046287696051844611880862578297996509932346249720413095323839866864270467644440747591775029431991658596135969920583352757776368797205843155627371404377063602428164025795984944816672253589129916103167412201160582599355187094523605940771145714568004541868044943876729960227111674189475572889398967030104104113829264344338927384356080015895809386750769845697010935440525488336919969207465903832711611744949444524092878649447826646091239884892702151816375249392177549727273525489697276007565858618136117532637646691771271809074981420989077664274258045946447255522360927203337051043820335388233384870941478857860400399386456477048960004881805484986394556486774989718131064408667759488265737346922799167664903622133230594780901850251338363421815395401065148767893913430734058512952464429477771637728919752932452252093713896923774539214978504387257439948376397707937827057365439484092848239710505258191278578575209456218183396549683904945533241583691887701313878563788619401371614138180511238313620692260703784680002600345665853596536047636190524025216342273778372992427453944984143234583192443548064657940791766837562910631917614136154996783915910474293931801645751914885510340419013126273404374851426014706723674415762293328323785837637500069405982265345924073943863744705660184637945129178613741154920222424134676386116481493963482954586834149837754077024496995509697833326976407553707809339573246466984520145907362314013021163679125735704968003041161506989064821044101356872053185762649778005859153263006951113347225162949924199368480936620497283843675515728649395083812450209110130929068825272432055818694050244389869821284001768251013866391508674877330576546034478139297158218695749190784259051882184060876090586164227325470799572852365150528412898680709327016191200185541091851120099119002665223628400066456749289025219885700578033186171022730398062823209486324515804835309768772755093508196883721819899685839686536006486638281350870569327920060359156211738008130148127423250385427625974338231845459369855590729846695952363557001884418026212423914422640219280677463228651837049414050387508217958080757431937327538263684128824528506136894845920278927365763841343361852185986598416074918426980964114061764192716826146593777628481194632779549998706890286784062521477585186731304259336659133579697121046706998680914491563002864538349267369744849477933497986864231631345514041880537464300864139166143347310601254813913177039461825754618336512854765429512559305063725165590075916823816669347557810468901427386223218050465438525144572213172527464533824479171093791922776372330599488001518383303918868798890454470301699810207530682676535529689915918872329166443357291393198459302099869364732594909336891736926113975307883752339430959660349374261775764125714475371771946688428125216628380410743218702033999079647772149615912007162254452916900448365077124623419089369837593584316413456822300750986104366281742173694215905834713570866087800843193934395827046193599379737166602006332156375047573680702654567470567711327902588480762624639631557059124289076973616728538953321430348670013124124357946520852364322490255502950573215556178873121381190436092497110828340942193549712851085460512278406266802965864341695394214773418637103358808717431273350183884471006226004491213529492122394804574729752845865356636122506879027837204834927281059173734336605979430633767028552879029384335230158523276045371913147632915315979986800863332619367611675831019225121359923462957799780745450078813157516765970240488899042694257441565574887084313395855997585047011163951130369125585744782572074195252849984660031255995704238735698909477965099236426026187881643567052982138347613938581004313716350137221928679921494235038704559859635174171480142837296193279855963941435068653096371311196548836648539087156517337135363716006668785448531218801735934174783856545198024948532057124249594589357800489281259622563483957339595043347925227749101777197872194075316706213601274461288407006959873138035502601884373973845774742640638933648117820571640769935013298815020702609602234508421149601567057152690585275849742773379808988824573304705419527580185384358625746633411809271717608329230842584427200953486019800762075003731309424093633621536311756746403530395155400838345027441005109663857039895152128766483851139758028806902071331619085009365035655288560235001452381842767836238406608081068778688691544637667287420682202344055546578970144833561441906306745087041138089432567920070442419186573168795085183886220169779563323859866280984658860555398616319577930376017850067632614316147010157820046023402600085817939089656480489741425512397015890720334504892475812702688559105752295118795081667033105960891955493867119471122207511056480975372659192496754507600950294962209659197676886874112902025705410491897332398367646526050143535968020457834081327319246992519478957730722184732717304980583607782645705939994907185133127392078790259808990994111234266297042114443932017936372270061396199195865124604663288957515734031316481287175623284370187896220361042690619039057440135514661968219493383599336724210902979963577063811764758558854973274415989841192545974135661080456625493038900632892320914630936320585532406876851322967544501443145553761279029493937847658632265773043432397274102961025353707110578196650279472304093081159530727686894540280236143893447250576271218297348795945460390897682834050723168206439411738229663414431315819108579543549358482773996543465473386305623110628221796662437023000134628271798369546228599657245522436104697224159111632123066788185438700214850413388883208122550650250087244934602694558659354115897481615044216694305733745604945769699246616137201890935684858774598271770874701118786007526940943408343471722359382550112190037304543136308403268463930202811311336184642747880621257921455335693543494119793356612703870764700894943617312385777896881075420569266720428377584619271409278895563594316740053461224109138097642256938644358787815753606370093625616707214970684856336174137983748372702571749839038538612542284686681269352296193878077786551470379354559927570119871536651259471816194634763771792539086110617170281565426071794264074743162473969149195408577336528763126088193329434233764314790445631336059026134127297705601708787022082434117342932395888264366977423912188352972997313561550280333301691696634241555225170111148189173122788322318730669589512018359237855005041596949406722790450672810194630101176787608940070789568235534411269000930917099448812630280812906741023098810570159342859527025939166263156920259311941109969295625703398913302058371893552764999981371847895367621387513387696888693584432316962573755515186902903849478084964822611631468298080925094292255852860213691702310940408129681776390935718854345926094287500876120362582590759074922928918369807370802506527003638210801104755766992282120680852196021859460260099633467354690143207584089219748064869243557165754604591991720851489014896553037862253235242586453471681913883833790623769852017198406345866505300661068998391075546222345487130078428650810800882806267513723253618908297211897382551380907652539842423648764419340906922962659901992575946936660589041930195231323533188489805636203779284433203424585428725122662965421054672552112455409176997882430336698621891687871964587918128895507471690729110345822345757367788647754548057174022881748455553325038395271499911723409947944764124691335671194847004780106538511277233547799025640565572215941147616587096061006879283260281006271849532046952245808990686308746977046139834482520171171964151059520641675977662641602326533598432554962324945430731510084704765770435813733821819903799641118335244806056198897577348627706891692303023056604611402480814396941053300829088369619283268674514418355309533343177888754391826428855130540795915011451519734795213476159729174941981710501762060987796860755173172461577713485401878390446483352960701192323375055293411236306557670423507089951187372734230048622650959583798240352414680020844158233390553495695975782932780502916273554202971416068986855341015207610760909082239347742800257541535747023972551240513520167385656174778289475741421928333422856360641630660723542838711457155424296549175832099761588607473103848935125827893091399402287834353487636603817782723391121901770806335022890802292334290862818157326836913355557467755791001366222491585882768156201021521269109400635757166336203925146637930241770601397725975344804627533027658799683939744830798912465889165013345054146029811692858813736856315299970833655247663263972102045870579310764386832405457353290919717750680241066072479096840348804854960442359944943983501314923083090105160401861082825601677154528180348528977566826337140027455114055230281238534749896644950758101137832857520662199773133631017587568763062246801468870311407387886220702381353038234702393261844446110475239513089353876115843186548858762058682915342980239696740952267771040036847399667673398791531766618331308380593835814218447653885767779047299451260187560598089997853537189421357299085476725374306054672647654515063587780750639661715964917462883652110780243575392493800220212685146788876585808953132715575270074963215298364449990155504850464917680042742149144393609998751876271650796493572223023025079411619187019407318568545639693018000267122072229938245882466299224311884721643262044012217041608188189952241319837573060014282029338548082300790736264602694258365561514280334389415851111340954540901539163013223663127719424634706271655258611420020202767037601228453752894783140123614156912998191221604569384395662033793208062779434346468373528632359947666741688544987756965611918717211589495329862394358545474970801440440007083722770160267042261235625215629392741579094197795719277806543760985098905742711020390982231767409053138002984014123161559596875124894191156243567935815337166148103502681881270900608700567455513545901459012249588980521658720132288790730492924839969016496815950236406268809510091711407424453695595425650610417017120794865209015836035436578073843761348999007213760337991094158027471782724081428882763459882497557472388538865716193414466519122711317275530634114998864865874719210342147058265080867105501355826922390627118346226989440777448975576112100104936293295204225161238167672982592460803119031030739070883349655096483752499364981851504702427916583131075939886599617486525570573975270410082117245353469885023607859862207282700679362144700517142935953054568542382557459120344683057642305066559941461321972863190949961607438904334074709591713340215151274356333041841750096125960796241248345782352248189158586136655341656504936150142452504379087314816866390564462924207914803913693509942559875322554046916578236517409068266389380737682869332600033889649114290909991723755014252532938949988036273742631030287619253804577886722103598299858761156219928194428998143138063284001919424333889846524348624477298415878923200204165376265088564979281552036527596499933080624377876678982515502380181985505576679519436579854256727812987464374302198441409796141071194781315837217556348229101228279752098029804133998031873978743640404838134479176233805332263832559709038375260448268339921857128473132294930121509152000532977698740472700084651717634062623565280327096467043658618683355330919509832923680758127820378029864536014798026267249604806452256769373224410879511501146226863542556845016642338949554244692349676679370620120298747258445122685282576512303288288470594679630782189521842484801600433256846887689628516925190928523247295320884131834957275860780771232393914519917773701127689637689975765485534933977720340757560616235988954616241150974679434271434179531453401784875874304217141576233266167104286056747737158228766284194920366549512806709278881054186044031139694562299925272664390174047033440984507840618106800277538492634040834514373930281951976623702573375344044789599405676579080736615723695891009223113497987206180509083524379071626301689749786104101453032023929747713596101182648391226646809975241122495523552910753485295568034775736985041615579281450292311708724223102827144613640153711871218012111029190390671640395198976556723880948263216259286966091972151963503900203948330508542214351724923558044460569270055049807616830183647788664056371484178320643630227487584345379506121909123137948409205845046711521664612886424828181880216844010057130878073873460944914047964007254652706796356216270396537215416317823821415541572510960115521424747008121148373968046785659776810870876374672429996263399001915581852603175283225741923931315148100121063609469377589274866617163647772174571786934608657624086072633074599666858755962584039115441991993521212112878551792400089248014537003876139881909457197179594589214877819628610245140713638637431289343790805538644168106430436512668964018415880450322728729471955145776019997575608165444025230713455085047797466220231442678873941064404740501604878938366093502379363927470468908482813170457835033569664635897057501607429841836263567003180495641220798495348444889752473152282987971912817903910452429897341649256330727223767660686180729508267970885370080705939013711909328371463258055985411072830796258660250950035356145938724845529582304016139113420575780208374719580508337131496982128889036137143176467147620196188348493511791975537780274051153157017286365341730177726151033828382837868690995127189259768606857079149267569315509948247698564700647567014494888005477578727767944637387668067402777791032329853384792371664558922572241041630622044032140432527631381899375835444954615184344101435213358986533242112804206628504938430361250785314062092882830439035810976090106636059697711967932245163570043625410158923258902761825920041756700194049300651567860975862377229297072029264716652287683860929184068826647606866556763954101443314989120794028393818056431622568053694218328160880774447122199413616295359431901332742409235462493345595277447046548054469148321031954628220591524402289595664775650914145644448342507968622646149574344202355702206440620503169528986691040735599844708712261041393014110148022714346388498962995884243088911748569770331525674567194632484153992258691998348435680070476691792375676842309085079755809361289004613457049322819375310427090555615986076816770238796843683311975375741360172138905989691540227528117687270719428074924622344667128607796885092865119661005609931386025540612795733262893757012008584908942336190517543620934078882931177818625944847718796371056028849997982278256599539838971433568905537839986254846051831420904897494842544422360712849234273110537578534229322350765567574851758879056762393236798898505810171244653691623552158622527372141136219348361476425333621617057820612479287545147304097681652809535758311484176226815860990877427509064989992679089265915178281737212958594672407864587588697008006740093330191704716849156414827970903404788298083279441766138939648215656538185364978534679627332702825506645620413956520169296269735666015937106236428492674985314820900920581523845009624252613116432562338781279332173058298530731696462348675257962721784415541619595896993199814992206059108300094043274988584768176899802302788535392775064870909108253843519636470568315612503357071256349275170255489041279373972833159846559760053756805228123429689039442139867868848702641136369981860166491758362999134363587966447568113766569308297268465464251389402556093151279784028203996544865478365216218147105281440824271875460526795862650328433249446973542476090953205687790706353664456859772895660959319957004193727053310136850948659794132752984323467002243726514581703924563855674437574674956132039641261767760744347837591838156804319912552285076308947248968524737912003013323069142298855182343860446172544553286172055037764306396771242519077701420806621483928473572061435420887515464648724596477327790986982476150169077687428371608515876771904293349480493572876667553397539784512753470236827479059553618274145523038785862767889396428643981493349412254673605182517868935498593410804752190201286494879424887479398040844844043979499308045076994144097545301680320579135425686756435697776104824864400716314223729767517122392726339338872305221700309895653656516384048549574903267521045841697185530503027522698483084237833958544075541671907830657081297409341508200623562822554246869810824689866728377745838711731585668396605238339859660770576087363508768201898471813872810199808194688656522282843436638129385658265232650907773910460805756466492637137054668157573600320519386977570535107431626379692498525486163799675967577472844736397455048035370998050116135787857702619182767955552560091580189358639073855015800089616403583002438693021618874728898533013709787761723418406764178367599317628985766493163313710227514242181930200466425430959004437527503457427841076441404791439302531604584199456882943035505053894521062433010210899764681130936998424233936379042245100569714400720930635356849100744897263197124325794077440075858366691320873416666746870482032296952768232666347054376551086159388530883737592998598935256074225053681142395826991654500088503746489790020153467358877922237842746099971493518581609353671751579354278549861145879849145243075731848439666180527888099461025641221114893597431863750832911699890781883522055493924602363311980142111190705522143428471619327253545232856217959432549942031470802779683795019925740026479337141594067525816870659908983710418427276828950513550410149612700904627194821210693599874652825395180091051182222453099440916559554232284601141543095011514424308305773553707967504294442160650162362719269942231039700129247710684307836962915998404604724222640406241150939738833157006612802014368531622987297145674094728041340454388678077451770806914280068859099600058007802088947061231770871549686868211088113395801824377112398421903792294074385210830462075112261162740229468814214816313031539902838137616541035880813047527746755084287907212911491233679524496293459944739796591165411438776209718572421739715707450524603542072048308689896704689737749300720290434964201785021256199946714691958493397424734023062946875040008047527792010362682675647515304293745472442377676206521691374073289237196155022313928609790932834274374829413753326204350513381185165132470155294467166427259734844643753381829060685200371518812878513036533791892755982761238794068477965728360860506908846689018550732218860427222787776120805568874944026822271221862717865379118407661331495901350432119637451991818350991361997249448701773593559887349224868870648781606975707656093379868748817776027690090313891743308410469288830182491869843125011596545265521031368934768316971764204598459053479777481218183082420583117975631757120650615521763784237443510019989434420535357509286892536893639249932593951243423286408827953979655403859618693258122383760240289766593911471299017735224860248076138511632448329632847367490996118058998394409082671221537274383597505992653782186018353230237296321694261895674986250016423578723627089704313690052236540178731700451709421789321331075503770849439470845104861741061961154590927311048737887529087883549666350463258606733000472855388056833548511131503925459061806497443104097610247334753503453660235152702651530225998229610568479090606790691302470711931459368505726725908656271606143117614557138150932045622259234276571440438077589043531992860418722854608204202687490055426129216211850880977795977274632725760185314294655495570563054690919417213840615264598723986896160698296423562573457148887510905231217274853038616846594745671372330826740366747496884298752687274283554813088281291398477586834559254038075429081158973774348381592868292993834965389356804410848731663342026634302628083975057513895009237127477913472519102363791361162604980009340771833650088902504631210648716369534014117524933189822268942318436769221818522625449393979906499333892995314400285684579619603646788102955274183641074510135420747704063205462778534334586048497324543177824410541250906632363310775985315637566330463672443321521898425427730232380068983031745666772274723355142628383736131937231534971036213741019553252033705963417402477104343525807922517354621563723007293243209713878779333515648497886517179499103595177742207228663927892209328296075943468328530592752239635244158629110374294933749854240101556438734737676996738314006019352307506840758168579732627687750839728792724768078291866303671574650069261111258905328327762234929621722963936516130461779118397675929551919606912280037013329087084301073613397821274921185664846673872642464479739715589844010326854076150588002422187699097454318128640187459941345953716017429387066771809489392824239627045773098218927130394559582123597522292002962269289080368759070537129826657142367110111826930924444426907689029510603684227518083534305090146882293643195546012676143200244873765265758296837788456117631131994904055394526365670466429818537737136787803431882724000108322434306095436729581216086077287882186683320807211510707141488186916297781192459857855580365180250310906037963130605056572686286511555964972139703354826586613124848352284517937512126702075691688522258931832136626797053489477520386905516110352539936473600158808714516841626822050808774570485020362949460981855107874518294834820346774779721737686000513350731413536342791455923957634013264409208621584058207417558609870786172515874738678525747004046407150103585589641429145242276892911371086144198028190863521952397183316921397860910137318787899903333597836403402274613995119238222401593882909496893890324640761611907673211449241059821263110816684792595572270977230074411672962137250219533906016091043127850876796977074294115807520234346529415967724144392482485435339470794156454706913540539376179539517954737123872044003379723957624642119332286657861615012818586754495467295104312349468399893095507685933635585721852717391324831354055911797017976956540660223091775312071639780030139632279909987987928618709473388337095651185827492323792613395900004568870080982509405754936176756892505795414123583509623515217365914270638338812288493763204852665045126263366014776104743550817580725127858426366878814667352574512099932026537641087089728345716443225300415379430318229694764120491902775511605850302448678031107821567413936813616838944907651177524782087217445523585355264128379034656306859304867588598148083994897893600032409635628846353513500157671010020213319795309642098895257054995304346890760762975942588630024834770885022182562410056952060639292698277415379306980774138618598087740226345183779087371248424706514041646064451003920452440596909366113103430976587498079747666620006642301185998563913806074841875821340100160623375760751972540193050142054885194449988312197937849587756257273238254827324368803480868938198271736302171902245870107294421282882493814400848920947935268167545248718020330595174982692624969411985236251395247373794516984628039277623653385759474359180788523109672238378646172374284404355101091134989637506527745669874752211206955322222439151146922062535789283196334986472741400195250731244576892920460661603313770860668134631963405736880438072071728663816328796525055090560012059513639582003425445867702818248139168486595773026984884034902930871979414468734097112403847596595718917036701904610081109591427119258344895150848804295798240270293568442413368948311783304393478907805523277280309776475424617664334633966946439460269599158593248531717016752507787454560464005973955258069627001196739617488615907391444060437028359502251270405554094070878433242962348084162303444979801355147577877872389123708380314102683809390769074080475110957587720283908793398122036090168160518768559093122229945595972780691217840419974359470663890844796933831502623103903309165345320248806609352096184496506043218704649460484311234110159315181327120199047391737394156450300531986421640765423288077325390780909959233077261756469480290966698787929241496618160514649624400492420249683806762792152425248791355360036748264785477852877657537933286804912582681275341351989732273671234632756631449596053827440135110921901859081332296365339697205285399030141339685281399114716367457754546032909960594718326352230195198797154008171050208764676903703516857948489985249097382360367395880304431429303637314496058975018951696174608832385379500539619994428867096796273580040705894967160814207611449769020675627861694946598664210282164299663019476800824193580808756419054048780360094443400947826810708552414872149704899668211798932192980215774156799579895210895758301768544427204803685879079263297462437750758436543407724409523731368813946381461138997144466161741076911652324688714701296886459126470341531499557917869959218262986775794787432827115314041194957497390368151298996912143897250205667912418936364030648602607075289308685782161464922772695345345679802218849824404901717811676121260784838059178245086050327470056371302706683316805981805130214913629467416323705198202393669086768574320369373551028912031916309500826334568498306866446919326119272746869878964436042549743963163376238791032965474519932389181832792976169496538678680017298891819946024808035949282728637099501227720862990701389390066157127401262435417485259313459324173727576250894384899843860890245960964123048441767121467020893785057615681288262684426387200783798530775408159510380387282044226042019219972831448310941623714767915437468108884877567763081266699315505779305338072929794211072688961742353924840619856054135597557665787180611776013380784615822473804792853516508011684210412999902194681088250390057610561264456535331309166188207706324769210676502659781419345266660451813185954049570771281076919055788493760386668880559694607457446904792108034248107208862276985699851062444849288571374266385418890880028919055289877636140691543690950329623358749493991018528856974270619658303804211865148896538131650731980360710113081868171855574253650104375902449409842151190039496506138497692226763328204354913988324367221271129353533743193863775194996397108277599805772885152894960917422432165573948231412518915944396938365759567063726562170667738434859331406493368299493315099323234399599351733777444234733139531533808640338999530710496104825783567891543684002181593106664577894666684766129601622503346166042448453224858023991417300485987780658743303996148305721646495221843348762499721217745946000372934461755618458090496645172524152339031098111852274962204949678078293756225213115371091355366138038463137435520602836880435754141635100752253877568614415872760840726789957159362526762524308019469406537290935946192979501651987098382907802064319223485224877940753517613638862398984619203755747214204684884481430202262500483912118298188280176659236039722997372841918024695443290006147076730601569162662386452838318545759214197871034386799326582202119848151776215260499056734160004624794866190287380724177667303454391577518838471816653639436930969068469876782419660050755061222577623209174757885088547085316515241680689225548755730495964412379183341279869590914560353412768457782206070570435298161364408395020611507720713421783297967209751433682979028865987938002413896849833399903913575578950014498779625929117324464706155878852729402308062085094567701420561817975773380766238270348178866619794650274786012927421102972010706693221751797570681281663674107806821042357418563741445587811030111609021479426483067903383432846319824506666143096324056581769299535633425587055082629397845427964009094482118670236756448062655586100465952313520368766147943067283951775833902007025230499709237835657166569360168698173780952240783209161423485722249114640189230658393770494342907698607779851823649001494527957364579557637941462702585366091342072875095286731888983897265067438209685705132017607752267578389991417742562016926745297943898727428114531737028254961826548904639231148554535496192880526379143291314691046362558324411470040916490886555706222669627319951009037937815622429737347886872275094975997404945959321675867640719475470571293744742568708386116842183200664933653309175376796565492157018444126969083077244647417069574630793411597711934531910258355460100327456687167347661005016637894880143351160088821408657037747598638428319481765277487765348879272924564952246993384615472794775760531738867436509046545879324137209146299124749216887725214541465697540323652090181399175303002575208018539152342749429736041758134606417778040250385427743660775395451272933425192573744764058906383542271987033015366062559280897611453994147575027718847935097695622039079825207874220664306661225116495096967146419666142525298661833632031738842388173113462940127034249151503105212588698021470167843425359636424952489547397648819188418360674639914709827518280429275734829366444874752998085842692325875674002758245218533231829835432318134135122099163931871523711193485877570034306959555846476190420494037676541291348789666703980647896201142628585577667910648730183998031776292635635183306933059969789852337529214524378481274829313429045919528620599102784440423507050950001015869308316417343132929161640688424184512044105312841852320569334361049814486195789394319999739619144206795113858166939954541750281114057514124502607047865020422053208471362954717590610152171587733494004383793139907251490599459504974026441606368654043411412140381801914774320634021942793124487654602993885304628842747413738325451585466044159655615609731503601998581894003458758769156506009531361561732873689789359795464769190204678701664756732165993415967750782459847130920145046230654933225005860728832301904918258634095800206511522521833795794926999695438528521725701261268736209031423507606526661810545624482927460144208907936533159687684106878343097955582549915489032822682817016704356864054517856205634847266804702304598283915212481366849316469655157061180532858961967984962217001258446281818123997819606293578625588388115638213284457202857370656106703505053296161226107384414514310845365205472733208645272241233652404552268961769486140315650249061202287550262034581580790442105037050051235543874318123094885666893304901135354942884136137481093027278159412586728247287496432125999100654368136416408205058809402112388487922635524215064654168402746542729260407437162282654062662364325477875605966049094044273759432325258931298007465026688352630163195066748666882787534236930095018599302583303299309330931682550709489955160835725511059637013673908582842675256461778760524923654821983158987436743163224585531451855311346655816053248675072374653922908170244938844049066928421997459430105975818585175103263720545492498265253861610677200811216332208893719388929245681219299145744569997032040135386062526078766903969246961861050676665280327239142704400775479156941813521366441278306302159670691825447291041631188963326110916584184044445470001263973888127110558102466409806375006381783486448680747982548724728288946297861072381680943568421137545962661700583282144152178679425295720381216715637606160398237737971310139798854559686071656987050048507643319461098628877553001708508517704640099936255843687290030176677361742674141736219873371872386241406844303054985849405732746229547620769096031626059260905884559105251494401124206177442100006501803627415933994987333331203854723581930318144084904116512602996160572161649777752719471592935052711819483277896652152598144377206975403403435684183128379346342334179867524056621949216706561664914076681558565936159048388536876180620460655746776622112922664187118375227016493494687205761497473270875940866229273839631862443538787864034771063100077269217411888361922248538670527733185034583956314973551599835807491064954512251674517265421064756794890538655747793271164537145185409938800699382353548724503810594651716296577033857179630829873820463876990503803978265035612189605796729347900318578618333317955996246264593906423144301516726256413240198632530940286307653258334523542338176613768437684083297899653443004029277887192340557440943495368193241634004593175776262177810964085553241457026427791786043378638896527778983589518544156576123942573715870038858280164768666450565299469338490447326650480299019907790302262781874204257487246415782609145587971080153543964644665577127287117283471295548574959268127440139168146275381878256094514136956665308677409513767236646733096270927027643939699325788041591567634825093478565525254887509872394367249773386066876215009164764869146089276362511696794939934658043852290303225446197923917831963577255894261077590750915246090035685572552216668757373110712274009845422212788685859476838021710737943917237125058491418878676591356159796913139426744667327092582515737565372920068330605338910572453092831151675875111717432977360847808631052388040780451278224090097876748658188376496866240785231847293291231561520880061731536358204025407856381142958805253395976463339899293846362705241634750674935137500431903194361662891203540197091948025200905076340059927522313829963077225864329238888749522884924037232911076571101123394779889884509437318658774358844614332176512027066591512930686609550677557664965684097833540117660040219560331895728137474421971137674775973142716511303465737041860042300720888621969194447844081888506316147492044588274932946499889723541184429000873742352507030600850533976611437757789432041088086951245693264841541271354475841846449813987155708519073465783409028614765901541111560323416844178544694361519475913372855131709483038225209153972379432804947964332697463963058876497466829983290686536933259153706336277983634526882527187031286328527100152284615009140233791158144957284905309758604357216762180715959117772344058445424422738109919063360859980720190070980991720394182250085212120791372751061546891878610704418884362725954218160172872828970520082151853095117849324534542320414016920779906388611035320661383024024031916544703577243774860121302533600900719163873546336610336079209267417271056751487153011939449703004243890064032719446683544834884086750409717604760667016574009781789618852682350216970235633004723236331634843916251255643340336928906363794493739833264674639712711695186668843492912278726517491626778477517959526815584971808640633670425894143488831123989436549820485042928293439767841965855973144094210009577590574354743149069757465581387052837657956223423785746844154560305608396281701783976406561206892557765202810401824838454736169996330953830543548158154273679348537736397728521738765140591598071875056477271915253937259691345152095988141914032657284909161084120834264563725329192643973492702726384913043688683558407646510499091771816492917386594344872532942936282523271526085881137065709981760106337687183261609144605096384763151757380201377372513486886915445474037445786441398164413601829772158186359601496743010830371835852442916483882902741823621167011503976690155647637295430065191746834324975330545565680182109609496684872009301860863661920139939536076313551557500646015148388070594932814522558242109195770479430526316149305140861245469488752895517485791937018735254334735178743576405134284054109815240019642611166941944129422544294355628714667484030769277348917649411798700495392822812496655248706160280568457023240794946585891482155946081045179563067788423317792144866587852799374270880614045381144014002323580363389446543110509520844973730925702114162245757255605002771334129361436592114447654508490234392757243097444788414694065921905246815412372509345927972187513516702689542985171978855457440396255074053270037928939387759921426407542885511795232446419375017677423811244521857141904282607245392667869563531113365269620291717598290628123859569702773785092469116001409899526017509545840044363862380010198121015780018150941545315147351124214149184642019289680353847300127245382919321556257265904162533417211335891361666214758939715602460910221507775541300662044298617005976224079119497039255523097584306607287519870507207282280514481536431027451795944198407544842465182221098033344844310494151677266826044395007789534625524360307566642765922293260818057828724126531817121226715515064750781328220145745965505314510654719463405076154408152052376755108626615880336420687426366197709468578069564952086615924178423314543911612683370962758274628070769635913224488880097411720001423371981155401318699504466127644155347011938163469803863853632698453643762649370664090528090629706566723424379011555011592970077949019565357674417948814684194110262176275869311038240870960777776559506257639669243237987476188146191681424038673239825351930304914186495548850135740664574146848538887592015120650802398472361963137864121209868214046927374866344419430584882252574464336550313809956513163955799102554209004998711724807806337143917250992209279911417802491077560821126953029060732478697384206712065566917473001586475300127051050752433647949682649321012778889617398357740649401926759356580174428743495220256176910109630615042993633132769950685358627785474373802923875186694405296312422869805086184872740338273754528322391510686645865038305095808124188625446827029245984393339444041892958686945617856674907164562866714770632773003757978723843321645545474431820083186293251906120690450081928719127100507632973321796776287731982358856179296013046436006661864527685866343240752063472993632382287218898378636703500630078844324009097402328548915781808910126537573256791747139853808912398989612214624483246430613829529074772489008365015896147553206524283070320369339599921750858840217884827064368043892618910009132179897675387465421825583420629637411266804121252219438454645753172840920268782453514588577218956045107912792529934065357170018211991338881373501446649889309708048005388793463839136858726849389507677001005504921600478193299728746946844444418240425023760111392645099846700200664712218674111985655670700805636209358268690334539052479156616770549512882800534101904324807503634954095704506915066275051741115000629724669189721395892452184096550196598248298262574270605852142626310411296390244664250384270557130293659595703658320600982482897008630162158601399022972023121619808662712505096499756033183918185293106054284979100258086214402512078651326318328784299866591371144785287268510907099972615542307085075987543282576192812842407072525953019240312511738680623457667560095456189693082673158934788048242168872555992080526788106993459855149734433116604705673477605074952824212346611881162581615761961362965398014391553546147359831997600704158337594563778806844978674004789460377519590898492554579266838211918852179504576246725626033517584479262632833004002218318421089907677563514793835768581105527123577420867043329716721381605657359272836611594323424259709455923527399016939817374847064810754546031312401061880687660656962250806433051120147064065128707834519417210143488222453757938786790967844076835223947291794046614797967532968323933075842638354666364903182647370109719590198498926628766659411902831291360124390260247231897972575635127849620770273906007490788142262296480777103100440630509144572071886447628715732824535425371383937096796479301587537465729662996024046682364979219697136447588397531086508045043515092915227356705524403010135731682418426993049872248002078338494460876799171751993509635209262464605605443016043066974574856590558711838377686721033447456130110916809837208533804801012956481830714897081072279135166381956039122564114522352431728616839729933907493845543730232266188153726283625837389831164081897608614736228218025289840259711645453167828297327781123761486588660234887351850742538330229491249290459951114168811587990876799206278749875010788617739057159910377331658070166025312111865119808460069681364729348558084668035234985113215859871685547498313576473952502992103480951959589564053136195957320481574449342612960232782633670124727372122063707653955096108918952999712349076570790644071370544481499014447387904248071044267385678532752566575913470471260057912615939668083271178795230395961383675748508994324621502791532883202018453419637467591610738366701692491807868827351313428713866858149717966428530862133382113565411110440083985592616118955326407181387749629364766860116511766350562458625243487833848416672371002505292876948073822801306159412492096762829991165481448947063097599989084324583841401722963337634631114823753161132926407334886614343697002219954889000311006382793771045109861350669283193184890286656162534304383199601033940664916687095712348593761192870188417548924694539985524811066296133417181107288308356493969702127235991281605313779318420749678512767438215008809358662667500325433096598897945795403544968024399047737388628825745096138680815442211028754745979823062145744624281450498610239887857115548834773337184210178868339172808255553443848984061212157412181021930755241929187613510872530951128390624906721845911492910950344628550946474566240205673923068557532432024734939798269995544981898035503121441143289763129952374655853786822007684098699349173967207692609467054790507043018096950589731166121118224522029930842774279805623761566136263996122751608555685676150967286018688929468126401502957458919812628618440071156061288186004089929031277117837242936512621335844578091690416288038230552800497598334635113074562545465029840097354054891908447979445903451647256385055027440863592548522627038478343984301145051093966456772562528212406744512888154748866690737841140905346442189910727664329835300621099025687414642650114302932351909320510455112621459035076332264575596143300693937877083951367391784661345171283519407754004790787353655822430752251216372825740339277003926846189610347055475205526171349740080753337350117580079386424234239571513121334927096504422785845171416161347209467441688532239094096374792976859678926977779464592347062302692959409396262039244849443258823435561319026210550651599719642463440269211923060054021007972745196047434339097026119469661704537628940196364891035316067382711087254581361740475364286449432405170149557405975122749493923864109494594325670379957827528128260782978406769884640522007075950528441839246729018181352904954733585893245580846355315128216379610453523808242528488042740266806131646251824615714654156835592939820005475660416022753271975122126178716592637203586983124854791444641615124052996073965941192976376032511759226529855693975676975956505187932346995563903867616928991658001103346638030528860348415492487767095558695492575666174245470657769064259167785298080494216611033147546985688832842210040426309136679031456274714220979169172857053511959572524183073900187033315756905427883682795855237181185668706213666245692575167706629347253907880086431841376465825554447666032318380224991146051061339997374784905287456935774056494596683305978596105664212714974126845832065673342635813721499139637580823834564517240251409770539346205251872419101394060660757850214552565089624949423185913877045262907217198550507411630515953432624494771080124344240095243601643221339607349693430296345795245791748432781469212329679601867349993096263822836712389276847767733707001120725045622876496465103092794970566475168720095644395778016757749002768092196137063103395790486670573229640949637856508411385613000016750900542154129223725875136006645311086464971760563011082716661107707121480868578965876694382503417671152867288146284362849880686016636183852918105813282959339966856325304785906887814889199567257961643143079251781467702716344652850394169445073392393128293466893589570332026886439033807150052356571683866036958730253827195616754572059745770996983789235391740152109855936846043293991188882931433551956583687813885494382246008143713962641339989727841422967752806562926658880379514419081710449932571126622738801265209701499912848013175521592832413241181737892281668334190786882267528696403466318426713871657833318135156389346230117073104386870338283100905693730012233541596893616586434932806316030935412622958049611547209591807718201912782122509463169491621670191538286126079383623538870716613815949850412355822306293985113350917529410170900434665607931787746860584164421659167924234973716727138701702282120554483779247303248980533841003361073466045790429951958990480947458277710295190408429046408439286190767422757014804522611899568603406246861647935141250181259259997874359620479840777173751222164869629913094517472091614543608145460647583739067863569053011748820603406180231802780697797587020685552351164330351219748202990475421105357672866761926979970300812828474630830711819405450970638643160234307204830235665278579276531010048233910734163312607439390670616555156484233728067047779315927098295329011292050540703607732522529048492077390515855375524247510137730988424567061056498305234458248214594496110779019145246280290020065730728472914601037506969377360071158314311231283691149471542681190491738853155681667528081002603234902632343172379566835157066109958596004532495718282002829864525770426633032238931964158964078069411689742165987935245357924848402885395578476616666458188037666574611801709474275512947482492862501776142230100167353629951014733491039292243344450132066177783409151127754390045633704465402129740336922506785947689672717874128940579074803987248908314478594561744628450715223972075611316191706623558086232630963123036365136788549621866086596012525557648040586298116875205002589583922570416715026403404023964500081792234757857745318659249725090389196492758271744069529551955737760591334820639579374881531137925916161931520139791923275398988340006293864387522119038060514247531132982836923463253141778476514849728089346421617514752486059698778123359186325526561322946253026389989251707567545721984478419528954535373944404802012043982082426466621864575721458323228166761613075711761458022255959837565885531132920347491731743495438873731582429372566568066899133117578582132351185207077811252430977236301991871494423576621223581971802573137570754679143460238672518382781701570460634300878088133003641362168352024179466785670735454292988457717929492063259535368585472121304166805353119961301442187601257410781400781446597540574216147922931109121030045139580435243729304107797308036296468775290375745422542098075146774061368503245515694601070654565646318494571066947076382341504781640144873643323007099787603090635633137653159504835928836434820776036678387484005079139527929589663291495620436100831898289153124232893703177099740814426251470720364352799137832428703207172167319104913602555213923221414540570340927612986331274806717681672098986408412904045926117609173742343906854974971753929426398602373286784401429383025832952125154371493567600318153353477665230398634953025190565425162082890667969628272373929408674969935405963552560733857316349254388709724716209047191180056087116252185411033934970498864524641856602565438425959221871028354828613855356934713658242951748444542391822872543161366763543913829859605903839860555012669347005601478790621725740456256193494789635895443180750444412892066012755809233337327974563004878242581102086692004494927472088617323277665737508635668631776502409546199930276656467544220274656555236206288492066012703196488504726789731126415682438239031924386485187720817284827366752238687631996915645761024468537627699957151224062938836794311328556804115473206967021325561765548397279779459858661605260715065234469557172310374290724855976489382579415532777975984673155448674498566521935168418823720840594096145542730407645780290536082892341507412259260021980649427196489131452669602854741584501577581984951193928130677372036102505541348021685265116399855642876587578678825778223773569734248487546869656152869229695400483598894906731281308900226487084383227286859426762105227077960190815859527322109817203792844090155898370032851402196875292513071446518187063802652424149900409310761323153674415020057937990639174398986636991111426696442743716563214108167788369397954976527931718188919635490014394237441809465061781979414290544169428133048033902309107842640905089636036101233609618830213518804358283451655189470532232680671776523643107746537097596131503120813346008791396944575163061864165618258875791926594017538973516396231207105799649041434550702738389503731835138087564543205643816847747420318116691007871970779445902318400203255842754991087993243264430631645954625948264993569269828532726383394905064117984590323460051184645016351112703206769230809083155347932860375258614798268748200096818415082084688220658125099284022732797214803552253701120387097024106172265716184408745316643447009631910631602615261431237190887617898739024342702660855057565452023511201396066678724148696365588404197972263861620315986232782240240271628920996807108111684373253145348942933847508448502459816202479612554818355565641164610656645556659499809883845306514594823633997044832008791207056516307378775077977678178886180776005434480656102959934670328702648146772130747221697134535816101565241166846428157475646015092723562992989172638855202677608374847164448521248089771673611018527959832293490246740342115170311940423389206661424463987054659529421478489316612239682319684846436416814336462481412401630074645120240040389285438259449199162538405519368896093151047547109910613717286837348662077219874590114508949051953911224875246951491193027025429689062326705976919602783399739081441765909478836875994091563179110397013111231990355156874777073194466963382474905994547427281553070354574398912977162122964469748100217371321479836158552041490480466987337895105958870116708508117329794838153490452799935198034528584011226395244865235776852401789016819849086132677566211501729170041158761083661393744237446417409152617155263325494763885424423565688258608455888878383952716222843420529979884025182013266180794702315373058163420386592223958546635234779441653667221847784138142932549274724022130377741670677704261046949685254256601402116956906467242953878237803814641976344416696053065349377968909397621372357833500810346911239049694996463516271578826256359908033209458908693254522743130826456567795470629280303661199015788773717551856003426065755028531523937297400721034150406675415121826690303429883999783326388752222822554997961589639864043822401886774992588975696937391562482088638910162622110540437736874308705595523373600554024540654566981131811216400494435545987133763615915983925538959253535500866189293760541694268241964581640302074881371020779996475990203679628722020259374234039228078231181077627149195366685348439352173029568469143944756933134762575723784525841462017772132316101501886964587842844111326493258015762693382602878827323783880041124271103996615562713953708197180765702835575772808519570915949646325932358652164885076855506295951743589311382257569327284284325131211485719659226598856598038584811847264032868312486290130786748716054699701920638449087020447506463479808479270578921974131749226899758755864124301815868173986889179830812430518628112186250675627542557402385422990538054453987332930347170936518365853690738137851735289649930769439341945937366480441001930314184055526759400912878831571591712182794225263203510206081592370376528046746113802658409221066509880600640457275282625026454285690290177719872099153448831963840109180397955254730716245399092547386745074342702462471010708888049334325067203028516436264921001191814060210498986200845394398705628143459949291623277637185754449577090850460992350116864720329851581046228182563292774269210706183391089478132095686846945115781441949402513682400247737581182661768735550222082852007983059380718927328188860951544354761832554054900630985827657148426480889130774840213801482619481979995907810996115787293504036833528949139804189770818130204503448473066251740525924954808346045785303763913886731901205542081070214288726664938702050152470635169633821581723829904307584307583947639467546018217102896812576422185606173453315235058092388658324130368925039456844595098273187820968487899830780531624465071361711074169817547232370481398554975712171554106689830858596226577979332088958410778802834595537338890334439678136815881572752238457296801169819686860029580493716612025723495693675008849269053307473774874080949058815155585790166166293167830678790594567732168493064431558029113295923955774826529585806321326919206523322025173170738599731049016678655881986648346361076463153854242574558672860653965161328699179567871219358076961893935478331780604900721842693836705991453231684719156268780809586894677665319134612536332354259283278255553943721054710006110393527423062787213216173976626929241407625782906014547517473649840298760677977403411422297797765626131752457006833450307081259117389392047959893289498250486026859095517191800051820560279046078518162491164492000192547100861763501716873724855134040351237301553470205624767093904947097508582265235077037221999125275790357243396302653671233386483512312478769282663603107134144603131420328374401317919020060207986213921282338256506987164300551880729872449794357146215691280806229157652974657267212329494545736281596060591050372512061677661056583908048920016729853441670386127862140243758232978830510744626272981047386222595991249614275721927130590350583755116338759235836125881294829899073894403778863696732974940360348085725958936669134367688317394588613109580250980672739033569361762789227007072111417312875319638561644711192582076644682289368806974659709474242410141317304101108672900782869034192538180347001406011649017797747867409000979304623019602124019847246327855748293038686923920059346904328055230362565214058374017290980378056479605518782842022614671126911617384706511828662245097133628053145211675172868556792842187516657198178802730288593357594454001351755900259248205812814060842733594791589509015336666339681221387085146509925290600419734358985159019479964697063546444125848889066750054279124339822282197187960471132374197898976014844046390917037634908242395614057931777133503791271561443455088690411391731548024961114255353370035907873613027268267605282314782322031997664548150191464869931708267231167432070029812494628938751607176589758432046808862099332278780365552218719274138612293165861823633012165307455094419267692007556065203068544225800914717319735241700151804248335172851427125462432720246318666559755500415740710396340970334389821512449780193610156413691463883412250921017279480775372384473227812330496616053494238746694579216106410907118718599222472738647185516775760716720895261061528256487150859052148712319933959116826825627200985822382264050398348401847516517174995600165216680093605734424752248241890256591513964930102835249986661685503070962768883222567811180054619253369496647238512230650619024787961836648695684750931377120489681116123316312470582264574907677308294125589832935238327194104585631000520758537514105128849501983361672295062289757986016715641078261425747960459103330097428766370635450420988875899761807383873260098685891484538787369078384671020051290167244997305881951760820680848036437622276819270685679432388810003035778793318832617009866562764679914143973311649563260994076973486728897559637741404541462695766128159923817167979697167692420950529575542502430999114567738875793762462158651436399548279795643317630996303519173232564113403375907520236379523759071034567475147302275747902677236374203733934115177610609766296943356056976696206715008781667933254537794198543609624839068226873978301328526356300237277151394745214988967907597341271181335828960358093436980974947268109295475442218824194418477384892604815303722978997774496797888267293096093082304785184859424339829707690534163533332880041863842497355993492693635729531074091755933900806912385604128003142632947136434491260615150333165079062488456392847620950923223979363596584040878271292439107108191830731830720277106972828227363368784380189956433766092771653045154673981903510295704334721269668188154249706498000176287389216144845618833420796061111219844489508699190826873326373314743102682725040672308481093698827810712719890602023639127210951582144843843408193264661985650612976674335821453147896940805379173176433093704419480261455511948430042670673347509399487904156845252200227480433437558764395727073204000988768994202394810009745911412017341156261337385787299795081058166313246107303150185063177089355947101391400245292658151335311217640793228742337405388960374789033241253740440267508824494687207288708644389174206312907207429389581202679734839285151181477994311158562460889566533371505450422660183788006222277184821901073566206569770370227513539987135672353770625722930874983539046417971532438841948290864282922186292505265085404309259103157941900813932126253785282814513670692525172617491681560810251785596274957384351391722421409841875588073208715143584578453663291010054657425444205503634390194300496232621980106226115905087439375212917864034333228817495755586407668290630902096988522131221538317759810997309229771072193997621655018585042838798022623835425970900553499066328130966417885261114399767640622566283475048935237659131749189532052027657672508630906223704680285578544038526431588243817532357529615354177097253529642611403151021797422025640567908913013779029223934281612579837577813356136634551017236007526693817773937272510848352822022817336518820045994051597683790973910676727043267702384436886809923621052932658101654714771926377743219864803000137566857420418787104620125917530008474260715271964702997528237294006645998622221189731025071664143724937810087234354059802099153412724972393327234603238214247145454039790572870047745413926836933492654434066036668103820052094612627502273782352669434141132207303057843378804246130273712434584331679387177248965746320744155591420873110893394640928747639388385863339639385306481223401051904429724646905931769456595163251046165276063294498285872807821466415988164598752977223564237217106663344743731729827989385109992856118642489198987266130306601499622326651568366695676421295683291544206148181449913932319170145157282023440989972704157436500788120184676936308573771451175605571854077028939024878240676204567184909141358641963920953730398271143306829313841980129922286039643427184431393842126628948262134364529778237206074974688359969722787175588454027898724496499500787754961109586170340475842784256336867674613500356138945024684806610057877024436816012400153679217825078170099547054806941048962890167676206455805345892141836581509424692253095776544687634866486379007124647457662104980766760038893824712787446777507747414413934700565461230327282503047748025929095281244207242686582675179411825533877167177083889153683469406969994621162238179366370553486359024061965571980446223767672923038786062131544664213458519750950973422470100084547177224507774958068185598569230457292978622182430624558555729251794654365779379214896411930375724751478396435659522545767022703082993487547551560409978763366459445860703724060403474897186369766735252635966865412325142467653786076804698265271712162253361393196174940167829831994652973137223269931607732133742098580959819560636168092246517924021437989555487954191442774706235411426515512996684094667287575101263885535008096596310004311057328818244331746387527661319151758039859655670067210120027210732989459832953682709765743149256905404210578251592080702613176684608106693854870158652823018462719594390033123256537137526659032177477598312386107396626333107469137758550749886957320569133436843000087374623676853944186604464600589418330328844982418440582240077726137344253509591451913974251734238305927490414886006263284333107862193222176778985379543008060644615516278256584177275520105403704533928157412861956348658677936738315595699678891270751220916615359668690527894797234897091379041075268729210089308407768612897798316130724100458477276602513084765345859018838752906623107409927395672646714926404274070636723430805751047259135741486889197318288647598215884348068513616879504299499981838325305404069849919204042636831947504280217108129961151539354312936723277321210206390230962372002543313090883651920842787467474283937038518135738310920487070628606772642388402822170965829711481197891349951362143748886675606944002505440273016112488603221497252319408807645140080364154840273801592195952035159814426897905768935029985064170150425587600889660031749007767530181446061518615601061121230409071772821976868681848861974904701257943237196709264436820377515893789986138099304636920448868645132949570379980517685919625423198001472204918684966532701299876778743858865794758582981307766197227819608478571622689653364111086315536653893674907725036282738397093574368830849328869805567889080320844702414513088218829391775385363881141620937723948692021441767653090575904509723640373248424114555421869792582157007635172085018224867950206733836202037701929075333529817643169660269223126043387140644356806576520213073441852279314208331932491307881252243013781143874360062046605240788821385402700019136436458298046719319549533824668116786966752361524452086313090488814401280470417151293403094400341113340015939429083608780280673919069881300435371648934298356625508380089373219461730409713657401296498273450971154080089636887931769179335275935870791938490686734589654508128708795301840073349760184415111075932214896866999935437099656909290021439717246693058675778752115031241809510468101745390761049352256297412850108621278563411696964401903881941190299966842433665949863802918308120531900729936883830902581454247385962950481654229540917456860859697360140093339323279555890146638915522796003068606104458924461899060160784453951988218477842576327221933238735470458611569313929363621033758462965663830031443138682226360746359120016671145537262185291959859117555234512629664423501184664110288867043535460889469528429276193874754999902870106348256474621627667240883090683290256274052311441330860200298279865478944307582872880826839643872213623496907775191172594314956064183531455042351289493822872183691252927275346326993061107496096101447973462188892145475454899570847099218692901452715765302619070156062509935123779065769366668755855361866852504943319868346372747104033845847383227597459936671183145455430920375040917537848283575810466140080645655868011815530572507786270617684495117721684533781405158713940540243457868999484976079105694953784198816432149190068993714724852719704844846944231711568181882563279821434653871782087276455340235435738137658096554659682088938151653673683270832151684943250306063281302532176124360548560012945056031563271356249948416558045129005397656967418149974762020553889350301691495416767253317475086130279618973703044325371949619617160340501609227843286258399456784803774209789489162680886597179783975768014182036295342526682869214069319854626755010191042954676480115281789505018416589023544048325271936138596352966395889409636084534117195081801014972603585034361393890111617836764781651453399074492268589509293864276538227354380758325296225126344569404532597607792802891320760828784396115714296461842128586748711615008800260522838435537145165959112403734105386884508463196067456719451557700421032879073814950508134650942817829135198265141705936550058495599917793589128593071084575748696702230980576938711827234965860578088849711232740552311450489997045289443942752205233833221999326837206088377271386487095732275322646327356650988000371921134605782281709760751137511985072007949084314834527120083814751810727837714582643862763482419875620975532793569402579933433557189826847937313294933931185853499550564347694583609721310163030064567433253751339542113358893137598761745469649306110307706644696130430210045572474813062511076278321836268997841715069044692155778375094710242329557486982021859631124324866792164971380396591464856923334885323759536571092188920395766738713474125790340831375387110760360206660837061405330932674223683676411012485370196824908634700187170780506679360437167975305851371907844471229335128358694235250034263277479941234819359499640160582094579440644433574969085256080131361884751620060426570777607431825481687791172990249361912746085846433120671681122912324338451892077813688597357628522161956834607903954411784855666605916367414788233155015401650503335334395600240956295404314627394935281697065816604831811055257703347773990848520686355455206890736849637049670530777034507837819759267469923666645976825276034814995873453155537718783368252588884938486504848423740143263867859448328836668476262572524478628738742892689799503105946363102019739230119263675993164232704084618449231599620870314059495349403875598591321828038871951019196738326844025456273040185392556416840363934631400431046441281722637023463499046394954564654550280143681747172439742761967046673747270351478469978871064219428092685257012138800772226551028502030791577056238463744688503788073818053063095909409792031784840417033276680174218267989016296641615308904903792027925196341705107259067880649879613417765361905493791812941828448792695008454377631220246121384156794257990666023248835250754525764961457198168098439685409147772559098512980171677257022163856248672494128057473284877895335789377245531040368354503493971209521860526420339865729384653893596133391407593560581815206933269740609673890145362801023032046657852491483662605634624567980082174072572585528554367765169935414513793064484528563477553467195178700346553553750832836403885686103917465516954091272172213751794344503036443097645327819930630728759438461730465912055768309933831356720194393973138510159131005582316767548899872034093015328861981513608208988280107945776319113082452781429380704038417788517956250603368895386902593750472190508063919834214629906265348323450713496318306485289166452662277929631835532745786689371216886352406509762053355333531114552338686980989050154360138618787197498514885980724897130414025947527172018320111310194974807648162813980073378091830625381332352735061783364058390938207732164185812705589632648158185271888420029880220240358433271937359161622224425828359875078761689302814286010215650796081669076176752014321099527354499179865382551787511005217582581403525122525159986300844943819954736277935482081747636921356498732454121362436319095930788698738770543355618294355035029487407787615820098211262690219649880734594247777000385597257608658791705637656761493249329192839671900485311970550939818157743428595804554811898194276681820820661642600435248242027792044090446776849564745081884276696348970672104807761659537178073900287259920173628582644560086101067701010231684945121674010440070398587925079609698349905770406875257975057925269902905201785888424737150473432301327111968778997578950628593190701633708348980314926959898910754018275611619057023387615118207234499876693114069012082882011379754759608933271632926883605742545498405426825034113298248564728064343252377359275245458477002697526066435044143920630327824414452322628164350224683755069170950967979479810594034523656997267078217918126683724449623889237714522420801836175864456419559652163263216967942887205340377613462805042637432425459408215924097977323196937302560196086400435893335330183688425640846652754477346972964545024731570369648434036008277885743885255102938535995963036516474982515998559730104089322466551959824517711548127833596367192457059891586135019541587256068908232464135303295560174512897380790253015339124108487086945208279344541497611901980953373667690779844044162432461888191968620616359561170737314217963479283368383219934874921824400771436546147208175446108974731940866480643096988992591616041941832998476759064268400986523983516246609878214693704712931897889676889775127080181847499521559429680948747885313959203103440500265243715519345882669180541008370667934580599976667987532629456436255456111425246649320074981524146000581761315167176738547665776709428871315727059255924031808084436051425116848164821821956165403910425755013217288680006266351864443254288515458534477231036602991937961767903324310147424543866608737723337049931993767887329253607604270891037075952825993737422419683953278730778614896875141514096537901235408486651329027240577861208053362911476921265412949233727419832728711364892582655151133914049585311745928318076189000355385815203689206432526134142968044133978461296638514428643125535450345508408299819432344078107955412944729019952897727409299159043340264799304308014218055667739509857607166092396863351540245986232681435881843514265688699199267777657980473573769770370221781647867283810488011406336465402690344905355059405928048431251431408843217979892608656529783950455312690698552417100853433949820302474809099047348676865084917439774085264800040878275953271628372081229508052991304211651708768236608033162583482555289494713341442476156523661425907680221428426610702498540884911326562719230470553414438634906109952891430138182291442051024819955246121783598260117831060844977716232504639712765432043320479649613697789229127573771383785297857633708598925468828109536624939298307484589674734539287054409311383444548975591823362766984418714610722895221440126187356423772846239359215169649053950769116884379705670701537085612700901962704205529084345013171369393722397740961140703972084320662913064189261717139820455815518476896440732814638978476735445768833210870079992548665214568821628027850483123986777421474650956932139581417140927714208538385931180845587582728161312278951916856711684279519458190138397719366375797982711877854867694974204703563561498011622060090370279659130908118236560117248158329807286211174198054003342857615626850962983956065784414546590647278797150102300171112552034351510961580538835853634417217453092072429972368403817585893226467299068451952342168267780477903777872162507827508657655158669418399915742946305536745238367215001520718473942147885593788246878477719303920898127794683819830551903182432254462108677948107161920545336214915061684629439873543193187215846726911779503161243907114831248980809699532387702209644828203092848721794723790420736358266086762756077557177503665871873087654738373409733088860581537759641720584328571190354389282476355617975039669625572906277043298956501635607674011305999868896307574977638952741710499383357305116148321345362684586554000500249229684712489614775472278308591270540213738306789385703251206834137881491748969792913736412621801012199940516196386459100760316462762786030912961505194127138306763156462724265913194201057366285734323579016972001152942712386583307573817664146350770386757550402870238967373886844236196875203868600865293185635786396511222536229064268951410866788624874376581805450575304279861248500559943790445871174005244870231064961749388385479854864159855797702508915290975269437884011630524137453040311415557397835524917348825245648703756218441005586774463881541558759741062562704976839024637384495371060239066378906958204373060917803216137696254728235621896736349441861820386809638751516929656744897942350861815867384107270444475973401234147589266567520218257133525314441852990917275205651744469276561708939412407812626572013099523879761740161033222519656446381745911601148884940787100204441088337268506351959491981039130942144656664180260630662598696198312396694058602918555024541548363228950033943153655963659221624166075580740373620355091901285088409821357708458853433374641872619394891614982768340900688764235615218787675273314049895516794100970341769509351239044174025321372153843475630415679186015189116334369639707566535501459672856194081181009622555289898161908989597247595948181181927784830701352878392568022692398787127186392957307353250177655631495566708975901644446114879297834434383836883021113022576125886855629933443995367512494065087048679376407356709320684689460799943634672780924154662604003771450431653515730198893844671589226900200773298561933752644909456002786886198976953779409578783040580061744132998577025042986047623367030459022085800721488925346028376967170089813224187702396471322268346012857024288582018730785419017063990044956063434896126676948116792772642770306448051632856615183663125151619107218354317099028099746868612939760585116014966689116590582308688734316175478897130090184876092909785035933557895739240548551294266284945976796769040581712603257622688713941564585043255463593280671682410377633650219152556784625272549767437797173525312616364182741393808998336409104950500632323032902090888378042556242854155936820865247482181623727503192520470472944838462407181352865837810384089108359173687880227476331471506740283262041398730873062597957168317653977064808317249938427569724735068838013480828257850931002038836306274359611983019321072928996193112791176994445056098175638782441340202271212489306647640246840783186027605391485578771652996137973799768383487122585260000119855218061959717997388221147230182569002420869617702764881991044843761509544626136981328376253733407510104427414147870166273944045208983197737625959646500833692943152804367633544234070591813517185182004615976299564473656848101140819714272519326150409169423271104226555505858309666198943266327664234854354743398685607895608070061312214516614942034124365194003866468010666711047436909531548205043832410352624816284522941703488252643456863288715548515968825950150833361900457785521687239554522764665975465402895294844758624692704753836292638116603054667224112138285121889618398097486430011420697067375336430971606237582046984919355307099075260259960114033495748863498517639882272941415789281260591283877483908496301340869252297070474936821478587357116374296632102720412709621565621132823117521110228049115294224510906360336198756443787786528318854594150711741196835897554826718584931549346717191333168707858074564580083125584285102850996630138815854225759722294281096260241798185692160719719813880774989465783713572958631234623890431571952844355822602361811887796607665985637560034050264776255819455078147570789545566409631312699662384386195021092764201357321741847665002748307295735338743067923088983049875335990236701387453267067079377829421643331101341702692807859168283176506949838360190552519914875842243894266774006141539661570352573626782661663927363924466448253398944540460090821936753237753757054747239287818112304660046552856165483529445687839499108491556212353246381384161986548687598789536219595107533018781253058617843850685551824001604642858631402615280483347960734467307241157764996280655346297131412186269014151367230947047071534015729375056455728095129220599148032580117645635598114927251779583403321570413239894968732908864783867205223685021360900161481745584389304517426088684095182983224553958263875402056873097466471922840973462412393970286472788074851945925523477456730150333952066897913630080919973110175164274326216874895829325159307096992557323507499052652498122071397706787366319661504465438089373580757699284640225690700705622290875613402924710849245741813363291277415275457344686493113649069496432765406017319261509985991696979943718527304305663696766167549195485813509405976691304546659058387934973141131689030659570142177071291707102089391719574797974308662073530513740872216951221022229708653304820614850658388491530385270772436279836175958256086507174854734351437937749150839366214899466321401625364453088272503601006313789464089406175665332968408017413957551531393878262719635305816175608167795888043804459623846453978576629534724555724621622879331173834372646353553389372544243240022424643276874492207265780043654710971977373023980664850433910655594075005283633348161206502833640083397944039650048699846011997310349894799778083300796620393346470177733207416247674802024416644482467309218800568112970969510956707952076535351771161588133937535991079087777926692218075104645915682488994333456631056374887102922130460748863824748792113145515473734752753374530781788012017071023354330637047973416206961070713457451158540854420898681340991236265435107397503678551679024115101078496205544700903624075606522190682734726666140838998146050339004018376187060482843932780740873272858988361271350140723807587795951341038952814435142348673476098041274147755285906224628785208344901679008402184087573220136937246378080593463570668489401624988278313660435741768852517349807904797734521048520690354036118979219688596486681966932983885880971527704557734008941740229233040792167731206518736195779976073428882115367408341991587542221952996679131608277685135475211595791942785209812929899495109026321625034841922708343581289585764127919828979488777687966866971907729353035309719828073569209301388211794566008207555569388630982604081952804731600137666464576950102680732941694245905077906338322505892358081593415274424685685450022515650761447939984562382964732060378301159317517173967429204985876277477630832146724558622653881148009468200956365133776506262341741327162101540517481038446806325795546678127602249792022525464858878921909593691538188986519835168260305498408267379569396218617167327296068412965687846856316038716073657598053720325237806507379960192519908887379398739593370314705849531745522471170948083079224699460293916803702714532026506394812068362711155297134457003672822902580524309937267530498446172810507744491288634642573382896136193297292158618242466149707079552484084272520376901021893256961763094121030665145310739995556483955078271217868424855559056359455521137554345216243365377402846459392315245412473012712867992346048199576831259170211612159391300221990753328009938478697126306456690474802573560422480524449346489353888745965565337793079611039800714442117688417928298965673137440269356112938445096233828644270809890428110527066090107488538315394205835923765449151679914619631024985098208555871882316671967595454511495595593499974672543818726055259620623678975383670522005731195648614382079335667814530551569608051130557795362292331135830313053422938768849141205087410709856562206329367932485318160426276733765072394770363655432425695979871840711964697758488797632324935184289427823335500727633030637598994222604255666956452409405746956838816155845796516641858117056303707941477065282294648343638814078452453420346805721674370106294737612784240438972962903740256846786910293964965584961845078052532683914889824259600848659200686908053588417215906719796586139815640047771399686157835277439809693833899008525551097547296675296102244850264688982779197601444691853343475107569209000650432248617552616529342833539933524821418643909657900158085965949138633955937994778902414477095740313492596820449112225039002221759363776580121084926850804323193132698571042267622321300243586404487460215490577505139361427796413509051886990806500604246674985578776556289139892057383458116562459589426519997340953016759218284095485651739658008519087090826871454905815356207557001647189696061700412768204611483914342356481944571442535411736481664503536436923074257552536798535066232226741856159381590555352718461781671470546925123447472404062022563281456438559861436890662134552037398109745565195410188783481196214012316662297480826111738495167197662031491461844918743439685160099398583840584017967281953072819171326340005425214920365451310680906561828992955424731565842029805695209467417264914716067936987231592727991442423192493170627818585741969162910256526531799145040888829746084322155981021651507009255995594971001719879094267453611668151504834895967363455739088961400826442553729282054983739636626276140584571157195466439773360977206756779205904000749319060950746446962896263529773500314941859450411670311177096805219363963681214921040015610266863515631359550857768624767392782654767988418615862934189619779718624015249387021934137455769067503568199147397953636579616072220655317959891096459929447542729077270207589176695777908319330779432705422863556404205602204019140785582324614089016825024411746509663463257489240069965071763231605066089146657608664495288460266056999946429975137231534480360269722163846230157942154658734598875197865782930294344344516986934462918847018151220893666662020418463727089646767014279412632119716571211079465432983039202344540962325517946992421285278548379225590591395003208651450549866445061864435221543487354585593836373396882657957178398931711933530350539172454710141134951699883011110735968262586455157075516439742041227643664259142581203308872053295090920434824686921368895746017626058605964133170067243187744359823185966905580511600805334575708046714992481547962155641691492755962618417161149156694100846949170815995625957043317467785283166072697561433434431654359202790306735321111180723094964845468103673973496201149588449827282382063401773970380841135574260241179152163980440300044852864008488103354976151820744898581021225583628778681102220408980855062370920718724253659053616409684529349674754617069093981470466275700233711395547770740015004318770014589669263159104840144966023894129186906732991829258741732739854544666999016969225228051817734903448852958057723082234819552936490319367548779101492246402875093995592329143601777969596805099608664559011816926101003142635569762778682006695497210467959430733792003056239368715203829997372202729951602933777522548170854618903439338311988335786669490721069244583562456002444322466924171756951441735000408554684264306118579885365887000243241438118908908966599038187984975404858792888035600021697408101986070815028751581090421902194691434990817744986395680733498137215362816310652609679157714107010519954772612175068479618479006125140610493831409491385682982838750932820610053773904501033033507312392568160940946306663808400808459194244109396897346988338410585362706156651753192474569419216624865933181671544993188424910296205789782364734991166803316534989460317578927492800488437157019953540753775598441937106511529313018795990571278625748325904090043816905741855484864710061697398175200042083901888292148540158277719942136921953528968153080581548130750184139832400802524112858590141733160383108986709118453514970918498585692701467507787430227929276323232665045876685546637732492763814186906101077096051998747356004958448839117930182688093289792777491219958088171532806068942207048031658792687957899096698960589215885884381440021578451583624101945461201710240728508398889134874719841856851264169375053791274030406025604198484183373415190171937186821120369195003783672778960088324543601908435614803496846601905908569708246346960296942680361250197776611653664149964296172209823882821268888713732192825506119255090511441360301469589462697453516018317823678846224309333827101946172788736941056082815220900923927248886653236983705916948776509085958267770477375462932504777020167151068920460110264860673258274949734009067687765784857572536504982457193967841306404127958250519764017053008238572547213595889303689581110985380345768143525584203822086532575519716511916896133119115992441866663356147236524974972140143572249089910679359313900497006176610681400575491029788053123163896734974240263354990685448646867054104653667713156537625403711714243175186125391455928008737726040022786191268611994893148130747685546511397057601169791801140512398048919294296411482398569973431286806125956797270634950130555513094840365470556097697993008196385273641778460831526108586017819321475472679997354322034363007966374927489114893100717063821161263479328932819102655952703212234898262481377364737798422287083807448876394553228620646557506548346232085276066110517187356006711243017224674407195482024561122125772764181728974748535774826977912808728099794156561874664228057215884502388104907142616023702161520714285233725345690657462083795016482338263066444392262168874232018515045154137312420391193024909871732986961022322355343931199929925559409345191007305780811575741952618627324749379685459204939161177352447185363221759944647030758791380264427437883645376843439536088691567166632998549118546445962961769379885264262815065393860234196633449706627246734162689666956140761971608021772711742117667806376431883096122041258431168610752763889415861326780741617172058634267695125588093140936140241072246183575030982592923633997786976787275966528302816012420868551802210389546254953050870032662674371220473354349983540869627013830393419973332268565414836484689914993553487291653585761112191346810949189321054416186446314978352188319894369439552029954624306575104383253164918878588578745094515429994159228851212856865411738902189175450141650944747145027611286468665536184242543830928772232969945608331308695738275122508788929480079514897688291621197412142403678431486488944584374517641879289273490769313957439491063880228321865908403387449011657828647605748788251109495624635298699353525956662259450359342453032697960666230434089011964263271043772835403841917567181707279693809145277514885265282942947406809899618711521071597007139674383704875038493862508669654007272861652448854999939927397836206222099968025863815552480699387324405187997964893123861264056983733720721242942166251672572831471558807617140963683422656911502318908191846182335298936975288169017032384510000620747300353868207907709135360771316439296481893113786593372832466585391207545987511178228163424277130321176262863638389173105819467484111694201723913108158821798720582055611294385370376309967660451691383385107237832131138537560660566628225316834693092578484630624020140770275159134472413206879982028313029220652183023474919707644251403261870736136859607805504578908201386840990901305112901518758710617798160315595797809862683562870919860226712402711093274155896519820938555642777930153519161236112207085218286723831390395535280325885175852726153632559098235750603998593767516583862871781176056904283710233578797285070499147225061555172259176982032511134069157607577783300408595553074358410128542178316175354131834818744037861527005760844654006072502564305087881875901094129542303875880512948579324027868481805950896581325337554814046006907568081656660815878997175103903555572997130649921599024630611871714988167509280354117285374783027072233003029099651055438923579364819810546930288056648482403662836602167524139174160331084742325349103161553254608690910638797291526170741336520769118680217073736657241150236204339000400496528627512034914363579609326704289818837365891827617376187382528959310831979091266890872716933878084060860361941858924966891766957882046364546118309122309679622233170799481652843227395407863609167581641040465142516588358956130470211345428270880318586684013501729926685545429783738410759407500644455236265920257969806647349349145333493287273455403844665935964020037042352131132024350226281217205245703050299165514839042067995324052570982145237483602492980960197945090697840580871461839419570924535543132107919783025075593780976186058165590003080158314472645421060740050958809580162521942931832647763531019466317067182301824450116548767916953261894597975678331138750332626369180680934542604876373425655262652665970147885949640076603811203653349284253006906006037441308141042953214238326519555813818047400298737617822968773706406240575505504070670732380177044937887791658786323530237694782176965768950642782962225022429328128861163938325346221288742167203491211242683967697159980625304938590708474287777609816734091985205607926298695465499681645806041096432129181445077616683513022182348430205125232181833783578134423169009108078360454417409017441736302112911847412870770543293042551388814574725676782909884932922762473611142393544337301242013537818477897829647450551725781169183916639561793236940272581299952761977683759097521557697947583252242471782141584121582054338747907688543828102705475331696205566946375129304835414139303394872807959291187383976279410764762907101653520803656947858230690559260711823936464893777531933080930713961583536406456126576473977286743296590818941614162490301534204943798603966225703249192510806682073172018359000920806903955254642660191550219430308613892999851520404074831765975380426376261999950008453241649624217987256926222024210819134602931378537466931200343354932966937739053632547465136195990934497443194055035554584342096595280134976327428207989200509420795956158682577557893363078647775552497202978309954777330369544258246675884950600227177151126701944187167388422928649324470250610802759471075406492191979943343640934200640278965731906203264864220041422602337224213391865058373647596164988128489225150443356482982969197054786959557724688645488474542095435443669731876959315954074691133096924401661858772406169502479636935667698178194537433252394697084855368999112361612502458517973599948354961681592473195681778578762295570864372134288893665666791572468987217060894043205025831452583570796567751237989387330499729451712066037847974551775915991560711165240147574578685341151259011652299945830099687481542405771552458372147558086168484811327626085936885995959023507070503804453494828983432272001640773524317540361869631701370289958287533267707560085004591785744858698230542082029686554862465021006429319815775839224492182142229481816657064259977954933429119741103468830154102577406281800522128801596776985273985003194501416470255527333148798838607677143495156723367281495501723212767827977575244693725899721109243348837417867291456628740244966971694010243835929121050651504394372484756391936286854690155539380402724786714007530900869478146066360757477259985352963829138857275224495408035244926696179326206259448748496839430115930865710840226051356228246982076012845156112297009725634845606930004602203356346402152866674103971397884274875708372639888586619686994333896576035858751040926000342029562661834631543805076787803741718429315734786521248628519208254389967663753009335617782553080151667624907898799120625584831287476542472294635642076860354200312980335734441575549006678276228836463269664766109623006946790453457000061666294388532963222061274047748729531354935552358575577731736107449513591423147505068725148321595695751900958141142638790220278605296066955723766355999064941532516021736643095761974094388532559679616132822190378972964645275898025760128091923125029942406415463863617220841068189693037963211653162197194381619395326742779658701694746473584217097935988466634693751337026620211194392980374835356763514803811915743440784600325170477806897015154344357564240960874977271038806678278737173804382972083465889050074834897769407414964338185992796544278945735865499568219571237579622397396853116582396744482778168677694074236158347268201806525361486069442836950790660105447571603564944984154849821631321476037625182839548787979207425411886003565593298769804581648001930437158022309178672604478554754388480878323672469991138362787718634985914579673251470324598485596058990286879150625873664857968052146134258036255034980186140340733321400616055127736103694867090665695530394066693114870613401828867109007237604410156868997904234933292076976421911653226952885830320182680334678838661979905695233769879987773758356480649087279989879149096762996969268952342425425502618731032327370471445056609898507462789557599887039758638134691240440064085915817996412166334780940552980040675542659561980846493425167238658803976539288253095398821708456858995749785352846548025605969150261663171882766690366947777724865347105061279621517596567509790889084066936601871476324890377399226249483154749207822787606491059958360261559845152411224202211106000515087162919191243694419427852422734722746210612219938191470237622613855833543735171118871789567805771888824637925827316529410628067222432773110442934786029569091064098636199883141684131897946226135820385260525289027790752443477513721869214160037749562495937368502985011286235909444736936613775373079589504755610299760294282201696097072279420321574824018576007282168645243290084147254965673007268440189977401288387594045836276020665138918647564683231342900528602802372287406546049445152026657483416421417121486793586901668565985239945878396612725674752185992173994253005497150137086393052486501988718377948968593287174032403743469690932696636511386059449587459336649726686436016072632968764123759799335409110101307467309515598220496677423458962448292719894610147833095270142496751673985831316823837125413514609674626482029174198286413981680968965762546470324764612417956676332545147928867777553782633231863179283556193499336018937472544808934867315689809618522249811498184764788890744130669845228538887445143852594063163222266720081200808349493656515461052433464446452456387723731203671860854231196006899857682690073668009338040387174434068671261580099155579780045078848459619150116822600109404520308279961706484438634057536447632842721868168935047438325687793210363959225243184298307738420226787751178411494968239507815848815535209797412172218884260024338330264541877874829445716738521730051646390511440595753800364962233844331725359543820180279014731397661088235112787256459498880923465125795582655858799457633754976003845117569777602918195181548047459368790517658716264520412322580757939809912337979398071024339849978198313078789000920876874189997412250136531969223272449333389520964418236842373299816247973981709513038806362718699157200151821144395017501036009894205860234746869126956051033563589133323226807286973465889037991049392636567704950649169356283949933548367330186429811736570509220221401274768388329575212127306356780756892037518243009974391540798970667721296442102506424164983136158361867207386152614975680315863200011168515532342817447540119198158906463325003213610732273102742593625336725066638005101738164932117678779125238426543783097523749747357969568052206215201018236447397757879265697805861667304358094917116965725497787626838894939551742189017762373534605669601225737401945280691461166712206253874489775962187614407612522076417715485567771039136709057626112409860691996070866937193641451826129315669955874490322829206584188271543108608157005937885655044598424348800682691633017435945787709970925500167525673701864187362848543119826167776594851960583785602040307671618319112735055903341874081001235649041899466250061330577715674627388296434642102947098029502838891032973922295645895772038506842347044069876064083324071090250287328117554104383204088562132344835355995641709230061530573854883829653226228953471285185881685556458655978125643631163661442695924554691363600952016412288759569444344103594297516880140691411663077755837880474087368213760989791411833999786809800705012251075885989392144411043849351806989866888725926741879585195763792363721240144798122110119525466515801337682243793432302807951440891124859499406901128547651184501332583989016809943936934028409349766806909285357719203051207365209647686404635092618959663329912526690669223597684739768356548655365106256888430074762447532722774804943978221583418908264700016711966535170557843489528229958499287869152808357199559722420292738104185744837159114519002534098517196893722904764135876010130997141173503891650048582092350575440329772916316041331460924093670490486541658620811853119044921223139997973655074519833454698562518877457678890796137637458670267586181564739375945084617222361053812170760214486076204512873667774483994178215754587829373619166427455402360075851138775786423930219351905828733027995414069589499511760005558908851399908953551999154896334438656749064679978204035098357525375935353186195472963163288288810791034777092235981475895932507110810145587233145026700457256394518541118761056377083477657343696911586150548789345426278695518987201860924988740076799163564534250389484784559153847755530402164041520902742913292660055775378213507226261114503843352257264173730237623780454747955084864309397196257445067926251004443022223988417563870439767442659768451993969913649458461302056642590929629714947765851889861343590071733758873053171682574302748917491945776838570427187249669616215978237437463147501186975244296613491064835038005021949744854985883864180702328867318702691444632492281007972591633980999511593495001159016775521482832986594320243865720047322487296109739322239079843624897417923269852164839839975102577196257497841579296773776958521189661720556845318924161274829940375262623038583633330348748080939175265813801213784041028643268662680256782863640245488255476806278661150213195891266493749707379315842951457228139844788347622934768873168667216152102717662917339963340278675329128460462837708752014032045849759340733502677638137993122996187419450371284998879130972667140803949477334478325430934449903348781887326974230124690033668420567603579037328985562595278429328612914789260375604136962218396529529320863974284789175917467734213796476497850839890862126483425478222040134100788317142110661120969699861176691086655555390815569582085390374753732818523973663850948978304176725538974694774366484093142202706367705283184044429501195130171600653344511897263838478009561192552756481322998017333680604296017553512030520355839170791517832035785229827073324702297697627666575590274300499899302631587323392116341608236795593601318904106851775489441639230331459905448082896044324297649577749606817893552460850841830988065371485061988514170961899009018606472966945592028350316276423754930515660380143754887059553570641512268040237125178971328475362159684688533165633502813468392049722741757509260540755628049743259945575330376556188138846737947727888940800599216508283685880944201819783946287640016082644346862243560412429577659459433790490514852640887037759641145850961753361627216818633234657955915797113793881847106743376689023276042314480866658147269198988384829028824833626357315063226153990824833402245881965294636854007911587130691396711127196603979500968672209871126339588186310847794154510196567829096875619745800105027517925624215434840570855370336005699188135040163976959744614414640073467471586752584296614114243139314422289784626335095606097940343659564081058600635878112692435969642678471769357875589508825589020678343475885561062894834860291253431726694123266742084877018052986716413368958707960498549601948126180176250273590342228183400167315764226047410668860658641347028769702027577032756847245925556395240993424835608877352903578229392351849282015673754763069369974359830452981429539979051328732708999492527395168091595002842925726234452815329547707809904571740684898115170490278419006419565692777539435108287007976463767787329820830037449000311368594966920191628440133267089434911801818609097650481597237678632299262634153839030788773509453106458389645377962620058023244665241943824429713790412001422702088996265381982834372946807951494295795713492113342548933103559865510594458106008364271358140785892558428923533392585880557322339197404718389904179290768240636444974159883239313724226016519827476356757564511430390720057203421106358892593513470044825920504467729673209062102593489814045373339291752697328497845378650655248069926006424990699699906227493921256307875338945548149022784748527344694288156557905321913311328429626389845542581607983457744469403513755756246602131602268305137211175759727362491000331882023703675468431456930028374711197486614611098857995951381564638563269980347838158467270067214099592059390037286338221288572173986933811874095399099580833084620643017090819246504545776079348683358919376440726292487929986890768393007944039941297943113309002465035823636504496316089871269258879655399658338132951739071938066498684335086179487650049950606039372434582173303932172664845695987183251826702493218887195164295571232208763026393237088606232243606290298541510898286529609795860408193280121979949971737619643539875274756089947609025157580344549022213921384608175953335662958861697417728936024160891249820179180774380500350732893752580128911963626062948571847669864474935419872858231643396524682202882988674507726282697623123237932798985731968369486172300337891919948406609706102902197560353312417091938129782969175131251392837050044873412451936165929398417742303574467261921914956056074959646806990669856257819350205576110783081589457699287419699140002511685791061895930276096491681045261888539339606983843710175058899012446028605541482967162450975203993108077113208465649127625119136428383863323285859534498384063528370128815660966921836600419897552219371317795135942165655756935530091531486052943370333400872887013216276885941499841347126371875809217108787555223121118471313026946489867659826845229964891053756841016689788082890082635409766879827971586188400047548650177993536119325156976358741691576395394205544448878417416593927681542885513577620535078455478272817188171513574664782832780403462884814827666226138435170366957064178994269112823442787337550218137533315516913784040715109248175403817671931013178763094356557624620990177456249298561947963305693046506185051919448711216079378077712400643910285073601157999611393783230065163681525399527469239079801278746569147345537544542130222022950201003152309752332168358069463713909852261899577120386817555046423108958564009705692103538473311504320859126505477062223944866466809406993422196991300080306033390524296992043959319020531065092606799728354027313864433908688114176668362641951873424384830882464651352282154696705744261624669970241115659207344327574406224072246295190978397882211525784201145115538498189137897607690381564813760916597273583473991757234015042706493033707320961681326327991812403557001417480417776749807192725900155058308908484815504188744200547949798540092194203410297720469376924894973074348746702413479010392643112379028384458841341539731912252088512200455284273229000526773910468733468747575010860747803014432878882097662438645323138938328126315205932485785621817233197110928582729495338227434415423029618437598884687677083175614395439873426139538085015371949500787875798011522630289361985217829476596663748035875834192357410711250559885055124628671343166257123770905406331517194526537790669710541362110206920260534845908753302820720523383319010207706870930293522886301746763754676893935993558476782644070847782411049410821913488069380123382498486392949356972422194123554032404224777219951006322935802833493622805902345879669134685261924316585357552944327193738614759397021445541690919350307886131199634208997926346123409931718886284520722440262975506905681670014408016298376695653953839154492186949837668939511136804118610830670371408333052744403105520770844838831762946620112060031861880537547060439591971687296672088177055125961178936823703117012093823725377237265308815192093928485390569357350208034597817231865586201962474884232649293471314958950464868509086315081496040138890865361332587501268105306792976349601079227132413493136192396007848448252380404871360092145608922504429769807045109488128759077821306490425908520560163626115277149136673739984549691941455875352231064252703148044024692053274436557455157469698312616505633297512962885736326284083883466314611837522771885362801113786876131606060545809560888096562580651210309890680883493831470960181088975823532241475900392441539019601359562948995453425109290871534185449472448624879996609223457389922691824503788603203929679824034785622606357737211907340797443433212435237945388636091358213294432242072030581975406597786148840628586188052478052493033790811847680382167843288837744570758817032194415221010170434865510162035117983074079082002165633747129177347467876277833821501110934843704247691411321347148502802637411291298317355957731326854642116225179074119958287718266360117112525386660779564043465243077269259470935467795454349848379552317764502314222251019177686786303642695390807406562065460361458356572621160112619797006532942867276472179655851089843122984427045276383622998492455333660539034439007709207414499011771695639975638383018305266221192331944161287359249352703474643215544917722341505347887008232101197276946442267893333274700061064428840959310227161318834736034007126654651215785820287308661819648877322361509980029039298690026875936053506291785217338779525025126603627700233866458823045981496708700844652154036893952732008088541163287140373824620860439305948612138951364869682436565320920192579969416600755728102743097964127912051261335629529404640144177488392141083520170625752153878960457940582077889253682405462707520312738204269968247760673853157600784260357583741924007149706732714274642425021365193639672835154743728472294704951023396734520953993164011379399929505136842140744648208499244603912866198693363416306815746007003145555464746593477239969088382103561690054583033022175434415246133596845699827436183490523604694442667353174331712548258010139691159634852691333586024688214031729814359418391166576201387722483883749329934759069758130140433603729168336429507772155734246851915983674144758170957365875688334053785195426062830152511877815044708821372704081071489573668658573774637792013470355667451798490667793613965985656743071412379082554357038419303761001498423762811011010583486094920911944803516434792063075836849365518465041796919325533251631823550220153367451649533284000369798294652501560078857298606071951649592628711775060844355339857253774254520078209343462449325853565828744269007216085532992431150615276665214285650633145207556979326646973247485028476242892916209240909748041362281269818958223364969503867589667727400369212030837975985904319335384202502535309862092320339363947511715559170667032677858076746666972154403187810366396145668108727427601648272182301689223537028686063342437561962463864985892411567567255484203389908439439250041831883766638540608196436739333653515658765728294522025410156048671572172647290397590536264003537714081016976639240197001216264350243948816012053038371035015931456243304788137967970949646777938949076137871481038174293131206528250511937808934051441807293603181821539539217048810783241512172905523186873070271193139191221702136356625515688523857599017924308837756386076961196569912407439959421927367879397506246116136126469731864639320141044761060128374294910792357281677070825541761744456791153676378561434840025838257956245829523702129896598951171535864772415419280526813824664868039914708379798414523054109270580630542273214471976967831432826932500149254176872606063649803993299451880771051901608206114982655473501859941862403832615911406734505668804126081274392557077374997732046924006000523514429766617846611792033422727443258133933365376718088311490424404875176729204376488653037162712970683112162814853890125073794461295966503694444168811059104585077364525967321778981919948474062984148623231892351972109383449547840792378341802897379197478938094291490702970893415375839592860781054145452620555269103122500849142670325851402354869054282928088890651398018377543192130272288969378681347067513744376003656425912887638017098534390741404889497114109491478039788984458533795154561991425372919826800376329206565064037724542091596636949594626136757889981630485005822244211875498399912034159070286619808609442579970415907599190415319848175535943401328458807959906002955690138506769044644979593987623891234809112581579332568746213591139995798806131254404040584562798798309006223145130774445427336134586803296660801159508598818904966256195295776577586580706901166708375208259793441109225883887443558491365813476790562570611434753408309012290990853458716927577250530803567341725654100625991155262456143087107894298471333721489885169319067971286022903456011544024431217664908768994066370509327657916843989698428667228046109322473397114294445337981753241699186171238407033200816323869920802284181768889828191306897238571005141919441614153191549258350642048374370661687468264537092505262716379066000322206885462885310372805402689581829229931227754683827011524207936032031897476911535458217547298213702250439524757617498824973286237849364967962878998735181826912607082425745717656605391894338649519672467036333426100252032237252214721702594180177133781691567311302436314013547495624249375210699761997175386559569875550952466498361208694364546870607052460794799432050570818342178334829071942208482986100843198477630621864951165100145327554972588935433642435641449315301508493798529775435592102131306845149930898593927594505671157425446155491477674683956946882367283352498415171076784006065670936732220910441498246712228607785595439254226479533416514916834525169988762992588861770414439610478550386419937688972254417393875143080048519432689314392667260375546200600044905461958805451370925595404514697142126610937610765210685040342936205022010716111546633232055905226287519884117447686472822049388360918474503156835771625749204395700490661040252125741238162692917275363152288379653815792806505245251552272928896024818701103958863178660992048500454426342673123284382524683019665292170672709912495295895400227188233153953016194162740896874759799130215285224606289882825571358894760187443559406406147820197930864850784407641540599226023783089779777534810446348868522568643203944423079566211853088660999899638715836834759048678596831095164680888830921377316785182980777897151026000141572393354945459360320950562078426084086990319702223813557975212773172965758342194401455361351663941194275431079430938340941601190735865040618399543318729851714979089269609766042019622607710311539910068926485553217634044838036622735289594850694645797223374849409684395146288228851808644978425404038954479775381076554079170441348678929462137196441888190573229335784658777440106814130087323986572882457304337983280133204316080762650700347821312303857789355510979675830996531819469292565018558680403711736904818062230711251071654009155595143666256593168192371477950214651296230026773931537278089978580267364176251827652153709873263694867612687130075774569805500735006847580982447795390219360671046132257582244427434615844885476217921883827646139905428841734278822217246597323633863072027329708876635877924951860648322136182699416871342709224668391287954032379316116914909428561684531202639574098591995270446453257394655632554039918779440300813904270952267228147016141511651857663925130264005404125341140462980425242894210842623840243010068784675399875363839174443160558921524020838073305762634620926888213158177828292395810770855861973005981234190680182271033850622855900744310967219131513442009302350268247058165590656310413326337108035303335259912260309009061279972464678699205184081835732949576999605086828736105233851455186795552068644603172354812069570433950104674551291743905364974772580365283499324166567386144569858607638087432866066892048061299929374104828643691564510565076871221529630913083480453511018998976280732991571897682985484932200893486439634906715584271175253083001087537477842252696017931582586939555874811792259470243462443932598121974264389425562222620616635630159166418806866681523360064980883610173149801686036178215195256913497646330903210083557947470306006866939749424739929649045589128964016184578220203177449395458574478228409590110819700878637352947959672076221187775849196071850930355053640018164338217426587885783698876932184778966114561675497491966988721509340914393807101217821245109921064621705057558058503459074126967159572099944446792638999894616953044731130791335564626348182681370195824054791229762981306208609305568974302584563404961771106477047916324215852812846118702757704282850908879163836759853533419807601363543076927504464060002758447514966877657636920186397692088071852379549610572316169557051810029242946654800648626941733139324051565804453424897129968580862424285216861752201842092019786086201983375135237884859270964219881139630047270306024198163861882160015881082200796329880677390082900039106454953511536586725281749016175158363130051384382157109921740176309533212864575923960426015538497272492254953888578807514598045577220903783163886825402758183673855547805214795694274028748975349661204435091746660033450079965642258105346085923700216891094547451169900702166453430326888769806615916193887022934965270880419462119564180018688740242314459656254457566459821561222775575952366477497310182885582140707885521845029518484832352380623813909755336774580312392385441196668959590880596886124139153517758037368357567425416609048258354722140386852070600949393314936707582731412087307454141852716715760717472139669994223267468367391925781463820529420540469418546732162415172775519163244665375770367270259481958807353632016627127641191247797764377471143919922374042579989246344381158485250589164352906760464495674549935491753551381929149033487220669453227799415329713961170996582204195928026456981123350604637355299803653449472971567128986357773276882104738793889181245809126044334831933699327599011948502514646874521204851642763102118206976242249537419663863604270316087148315157955443938393644659040572469864837514946155323156526740424362488431447497846971782584100354934733805053808637487725618548036572163417532346352262327353892990587671806860092680579896753887036883683906490410577063631150313334822696791592262183189520428351823324836137933064976735170724465866952226600492216384709704654116160133266065166469560634824612575549498097225514212536708854059300944666748672856676428165286644968088445140803334471031430344370975715205869793488260000925610024573916769607484820549327167461315029781257853190552973693181999097455107861854640507445203558416804350287971683118660436750312047044307378792137282306197992048449309733638304009138405428044009925590752592570803170942908064737287789723240022833120670880043460338924751451588360641014946394623482352323029465483721223329072625523881198930047211079428032128902016769281953318302316930589129940282000315571155922602268174025289297462146716073246932229236556592652585108065991513499696569801030388658797930421189744256374062188895822332548227748160075109762889940673619266815194447692391452359081593481362079236183748917551541028307047333925850099293185774916714379562191190310564783157201224699443313144234265159791410792684908315257094332960494267136016586513170921014174282271902929597393352822398551005489973790282256596223784773405650687461620314117637137254289694334936198310157879309456140379474832630795245022972437038850749179236670546697745842863884204225247310542439334662166219616347102842163860864145052020502085700463895757326151374803813272092591660162101090333196220889625711135608460943657011896951453934878167339894831620609289971793109423425454387314480275971957576333649751817848370104077847091942845245117428767174839244233108174942947770084939789127543884891991047739779001322958920788830554109085440846556972813632812605861357393406849116694952982258413107435772922346269308475537936369770547587248325679216684175323175239919821878186792829212012830289499720418200118338396805201614257669840763199896439130735648656976086227011210052857546941319104262853707092189525250078664154129614129302773634795631701768735615959230403865360839459847491159705958224311841418267758228811152297563931193377916706626900250376932860310159148943526212741310696398533813632599993923472707444631379596420939020820015745047194327532392853514617775431799454688037651445258111391580274244473937836525283535407566417955419430423510423992848229757841917555136292806793237488169158455780416407003046671020848961772294996907195198507685306704186106100555044501970389276573549671266019986711065194574759140490331271875470906018579065106250022647149989101902270614794335952709695224465246839955699767625097586401822851270598660637862745246741267585375259366027957999245890679023183573491938130376673320595146966388934714170885619036044995029414266145397484257653874863236058538318221024667421604802420358733121783961532447197879205033614889860533818125779847922434417526527720128731859813003164530828489801795151521759891634670451668474213080014851832879497479403516420989966858048887486347985133841909411900425201572661240334124612285666842038318095484195325169921536786914953740297777161262773617880407533935478443212879939146593358397151434535586305804466173734442170600091460531645590456556682087455620820453373604313105337388122749386786463208729153814211924027817678422911489720887162026248854340031580871911271258809572323447763010803567683487058273619064294439192537907898903281503615679056912745039773704553436535736623582660588601418992967084164324669619726705195143702620301317675155860918206647143801790266995093030059090813665024127388848527225607065199868413744794382221951163718661362622744842497879072554921330920834723459930802781261911761585915751930014149100776738863096064941324151448965987169286744793228559342787906733247040323748031825794393788426367878081132916943706144722165917926495439413490222608267888438606502556715752094612105116759694460239753207034583520208132695587992920063098334937606960996664328982780044000243422172668349421517290852542988191623883677276544205345132065378586312806184055263434089938973973275313290539096954631402457901695531454774749647017261083634910580081408463462830917598691944026233067736015238354699976771270179156042635567586339540175485852769880780241667967984161865062138563186127629158323910661076358605538224739358280126658880957449576892814494487244075764376889496802156630766311798801795224591536134846447167237604200226298012029387229256872710005173918246384623003745649669123488434778591510130915746603455425013540416298477007326858237850262409524005860229921078543581407996497259424246335383677862902775300104828814481811417990984750442507182734712486897333144691566088068095302183500387350882876664570835774770913630519615364830287414351577579119823035289723716683084851209413691004238944870402506996015675667582855604966419580224368307737686612149447854353397932646287487347604426479951731812790980588947028558604998789395995511738159333783016639707555425155319788669324388826592398647057113270434339939828260583313288444618210901779374991615623776699564067701136493853502248799556051381952688843167579285520048409241908947551978559761115511556744283784482882908985969190161600532037430465406472704640665943979036371937927318853203023639344565543629528434912212744987227954993360350619658327522105080851676327522482872325284426607282820171719440818326749362031046087257097091813593235284980497560365271467511896628118812334919478014983591460849212213743267271098197149538806437661861181512277207547973015110106213275293646794344952433616991299678667863978696376321700409553484248360145588329906978559653291824952608298826156621762991450390003833857218344488272882372530135774538837735346444833970206570769626577864672023694014282491615187326253699682713763899091379088402914859193951789632545235643193103766600877937805429391155221970010919430192093713757435645998076209106401600612775370013169680731170894566146062177829536652141751367577080153907453986615481861408882329029259953977774661654189028766945965565056925650182108839480531939889851796484165632959504767281335231428662278369233202112692539373692588492600330712461519509403118766184210480329540710773025886594184234180422806988222289963744580344868323789091911496018700679116929597446700894246364126755691478179631761603473541881780103090959079227772903596697379511007159876301264293203019001410217286970679116624013271830423167616601404926638128392204274602680451537887052245801651108084037833191226402303578719713097533638721687649244325870857597843573331000626197165852597102281058548918673406030192978180110234096280665868661298785551958258971246675188302301958459774618322693965630285095529545507954779631670822012485937553812984104862852594529516505026094324393483130215635430894844045373005718390310173075113488536490682594370437617766735987044422546321150857063530660139143594640166867900509518730770055033654571809193337740115204167694294791493272114930061762402080438659273481718536819431804649126224366712247291970911851180899906725996385444609156316173567245663473660495196834415815945979145049734318118443178994172567920850902061972553326105049207506585199301905055837110544106729196310775455609578279265001995093517363754491000848256385999668743005645629006578608393554158273944073090347165370189462019715843007404779951365267625887099302564612945236900136270080609971010273483197567336363514066724890693714192404805799862909380145335994954627179663636778627534462626423455125180422437126498234867883787457564598138942680242662642606383016945520498681719965081950668246455116522134243673947801716081176912566136608968194900870762650169936762657863636827375995743990037331004270356233212543552082738016637036188839819487728743108162329845953224335552339487792541547460763166698438181029558376571401342026654474667065105602561914192173158702562031174895237978891687709308333745814706850430983308408433361609998825141232159605215021673586883535294257694531523417087444843615070179491339657503757068662274949334812093617271197038168441124364266171431603948893675105159651418421975986665394015438549524342065020163991221197700437814708229276603881117323864994842811651999718352463103756383904653895960335494407863379132076533939867593193082882134326981588508373175666799677272086302128880574972960851655139833641665733088415470207245684330268896763329378209551976133049330785302575343601551390941042589930811826211663451375963484716404199840001508337835020669183268669540739159213605908207938047412664991989605976240028323808545564955661041473218100224130711293310643021231081827283102194497828775388753616368198873759271843591111903512691446899148257972016435079080085426675191584906705900827377988073810236532421678004205656632738530493701333331778264678276201130255960667668766182486492222222232197598914564762317005778506053868866153205837558585815643080829420465263087170721670658532505473760179000728689306553084357586621838595371375090933831904612061283370638470369867192197609592085470679773345237753946946325723002609517129931954058167988660320755996045755476934380643055289439291690071111758815420395041402514300808843222593858634307753152299615487748933955675549777770450285296217012636058094964729546743680269788130979339431884420421488244895873195112359874836922245194547872178881441437632790319534075352302396975142042882419787796865697864898635898175957231933235941147696713335854209661284656974830833949399647549499245092389992968804640132687725393060492598797556521135088420176920623364525459335945435080432169811258570338110259925683033945106684540622311958236955659734011106604453454266259257229337751248952143348922489757972653897168852929162872091586600517772022244493028408266626532990907242482688630573446783458077786136193489079561362900752830534652012311763237249846009196717227863203742494740409091309416391320939049616420487369799538505503806980693160119528143572862009543779379206245901896552315398641390611494257649162328479692629109427229125053675684400145347499441369346218175831648587265600252011679526663780678583946958351585688652839494307091244719294507244370758560649921284576215825068000933835748924510601982854628682124806632103125268473656116566393176239594036927567828172581488245175599400917582147396601809378198251487227629120945564892520925693015921798468321669364521111663780166877394439464872361108487652725564717745382544075394122357544130407333964096539618305172824307283404718441603862878060706977094605801140188602371074823251530268943819671656397727758636512419959999737534495541045974420188473138325000396911161645372865755740103379503437062896451683908891967953999528718972169417694916758733014688118286189702208297381166327456938676662466453528595651600514586890088611815024947535666723491641624101289992568860564605238012005999361710834821104036717215107451795465172970282171777819994493138150487699478488524209328352381723450425187512309941316145143374452744982107686195058254138959735058996485486561711549837226070550695059969599030703687059565590287920108099906338158301919882835070678215584797593631899676147254612104522494121315247305329149772509288704664079632159689779098366903898919756622466567655876529608256989777864809752864084172235281452429282498680575258848124220272500882549276076548763957333884548668091595392966818512794074070668578428989883043808631562130315480893282173375945853590887968308546292412446366178942904166864047903249775792173520505862062532898654644967938795892704093775531015177519851067484873150707982306545252857670556539001851973159649020168381293638877922977102373266284142912382303850432893337777252072000430227174183967191595850786319884100918500289822685609035055792209338588481984888819464313563998136079151447116549051315510214001726479462707512906751048937722360212857112826071564219505342679941638144234113128137304026287288130876589692698134338117357357597680804692762888890200246933031725805333829653759383433342558878788391603213284604235090334925769345403009639886859880421623878351981020492217107430515420138911584481912815584553362968347907234030650049731363777399059651136063316837666129872168769121877635787164839778075075194554617511933255108587463671302150004609141455254310688847356978769975216767013347050870948882282321611360876732100828182020662924319462156320170708799855859097367931543158397070734114579714886209740584532618766528777420641063360145207823292507261532719735166552009070562599381749705840285938949887270299029445171467981885214161072993574502201118855116313166059684042849462174098000957363300973541516999825081939917158303552310033214409808586664081182412861063832883366604778909644490817413240173843093244027208097957751170199784213422489547686659746998312115935927279640569541621194988239206602666447611097230509841780644701844684417751605012595736805659399829215098913618357766033499824627448521975200954265575408551354227186024800717292484088764534124837645464390173192231205817326648808112986381660561034771756368006594607294609335032350429711749772470170424801897698987532088156744460904282190831632655961037978521055613179550707010682014391146136714879509862726992206317914154794393020609449236511801714794963477341960903854801193709922738916178737722440255805298872066900345355977766058524478293555963899153867602299435890409956896842781015634022844306651174334164577081398726038622564230632123241059295953189175226924777449339485425497737032165001661511281303128568823579181097220811173794582239892748576021577101377691761163964935574097770860987041061912657729614577367999994017533297132874348791253239590437943859572076378753633283479614955720048230189960787953321057102572232757493148834721929420930774734541359858755209153858007626007718815435884282771309582811571528331183768975905305565891930423160403061054141052413078673341025453448693946148061017460012781005735169234229464594702720324249521163030171665270541456654122033999727751548156457414996553005997251603271270246962537679279503487604145441264286953929875404642953877901437379212098827242884316729850216670634711473019636386090367024840286688238663243988381949255382215244844109584161296649654410813637361435550400361688243131359581290439964612166497277272379917745350090708796856278537562467387457747593746660795505242577606222506486983311567862775299861699764301501701737961844944207092607238743294265143443411533738734119796328331084359358443101231601345705772774338964713602807786195437814532936257930508562836464755525830434548560071193223269451026830580781919824072719466913070610321335838364905136957228616724519940953567229302367993255900630549784117435190059738730921899653443303943974944113868372450670825507152998560300252152613770203555172257311745186794153964452706796729042549975928001775166875192950682297250952850691809396866920369696112292416455691889951095373307164141372188680261386896799316467411046071924322725632330447389002018914486529823622528193918282191046917738861863096238809796137568074380179697044735823421531217930537141487270583703631162854619794547987285945089977343495901709873204408810545822386031651421339322704324338420156000652897120190455878113008384914904819070948252278459852226328563383760965933538186158199426963354170711241786877626408551219764858967138206733926553935858157774030748591537293723869024500070271266986525533924304667067380750363649668682479723600974792236781100371683697347923223929463650400819629760252656091679700570040043248431734767553373246729387073703654431881500260459111708462731900789003363158522280319519240042053961020817200217792188798025045807342921581135213786270682947907471584851145108324860624666894404139897280681270375339824910962841748875850431100760170626011565909753971012338671667076929446986345263722363004898207571567162471998115840887475126206441985083612292841936089240238019617905932763542127044546664761565152528047155394867304695991257561442648142313218878970521460274501970013492088796639551778999579646493694712370183430916957723568452509682211486186916940779873693126429405821377984430358904912571888587131188005433289403963030481725824231454580073158957432007466971785056880680837019697077288608839838779902062152067111332127533509566173878704337976742544573607785434906225229985301328298038433731167909410030481124761773770968317660688879207010868672295281107326803050767620983509847431473863289024950485222405758425944073356905357792384798911435986804311100615522506768956360763039578927985776694590812326425246235736250323172260439559102779346206950290107158615026393369253826729193012565390908456032117080773623113974830974485235781683268965642338722285022000252757824374902480979251094247491207721550093599278498916681875151606361800669663120928082162251635549342333691102508736383421284670728191836764293191202994537234596670579417467983427430248106488485147272322068464093446929809397368602814384118786366787005347436572328460368988556356980859836525264436063164428935567634813077097948165902659280641589506139883042759001487833214895260979359262958037215181753757942082845115898237742464605725466980215964854810517147480811578710661799944416690786552490068534763490279909354590457947644148513358881825659587573356169876471282793046098179802109529583629369458089309439331761994659901032121755530012564857260934416931898900775739957096460234485883696373244270727877946729170611557997526607512817781517971594703966450447989136033430527866908730327916953181257890608183227546211670051215065780786572336723823051134803122407437931394984325465811891892565176050072472816490261500019563317445811735896772394727552122097684834519528173676293063153549930018782989537915041684450796120047754771045912344912982526500212322734784151834630442702185881318075142474031042088876603062094681158673947877741490151463670657047487834182751657284844914026552188650338012995742584752319021374022502182975226620699973548384119617165865987516212388962243497716528471078077336619002555193602653163421512618244849168097732217350566742334938768894667056617416788894334397905289852394620952343409052552195248705149149232043206912686335289964457953818133555148891410785131805130829860317810232748201575784913504849041868916845243833693370557681939816188817666757251452177708306945374971969439447753906192025773470191493657253829170777208394948296934442666825425446965406411263202180637576145865422804807037299862465003175531287922238997075005813781814891673706559836079890508379800946568077090598310608564809457883571379446188040577494679032180606648053789649493862980471026007197439712061737659044612293177627871515053334849793946235434592690314519141742422118187374661759309260260356856152992971591135302874191661538028611276071196472590969014644921107118403150465346916636707565744405036948531358346057837060611411011554005717769748978551634817953108252767521451162192775349758723485898930000485576189976006742906849655846355549186371763889883273698846284523033174836087591943931294126504201226726254369544290273754055918377104242583759959832439546254620854936013169202385028575017017329558918780988703024230673900920434822399110090710214400470424792055186960141449909587461331904910413818935059264583034111681796731794880474778002156663672269739572156083502065215302148095773261184099064644888357162274681508186103943690401336368000943734787018377610031335957145111493281710037258799361209915313148937911927356206147175153437181407200734394972173825354060326389071988617555830308561694228584724886361549608881950499096221769052977169751372711285289574096780088660022046154570663972924571052863592356884849318791562136889838469896382335304958834557951671862393046572042099947152151828442834762667942115912118022155383475592981089458005710301047358583269999786656239534644719234461109436838050312218461399983081889136519677538160136999946428822382274358190762602086718993614481720057519815530642838314521442136287318623529048144233710792147285054390277603544576984125648099637154930417501803931322628982314610571246444112350179103250540460399456322857665941894501540178292922505680368648157635648966278506898571036098598952500521797082736308103217208324684322503803356728205283921469565042955893493909137440250695682104343112893045253975656191772483131027526463239702072319220535162673690671211557167884589267172249439390945055525518291613293316322529142663805484558730631248090873499982751736570119752488543420124257264612117565477821883540789507144900979803122100859861452664547695205604316232980463130128136164133059578426454214088571736398215233794538967975652916367520729330019649558540035434963222342950090485217156471084140119063074806010202382893625202929933781318766825267281400339024608505239716091428859931281833640427106166832777075741581254215490306415392791148838513059244294016662331446263400220481644807160450395526445375743822054468776216646312489901273038050802464936617378305791937439429103975396037264812093175247809825385557530841092323097435861693208084682960870426823008151833027554274717040458053781819278701066301794762801996134662811056858677446450200169686106080165695975505629499677714305125036157632903287372825760693119098505020793626873779070197312493141130728648139068283111347438904821520716631460912647071331728811304316311738173844385782156867686820978555604566891804542204849133266275337929212863288105721658683200454925173756279291386472164444281376578910924548218819664490494782091173366761870992206626056511550152710801827709205139166416732317776682584599955949888519582527101307094979642249711650876574876008244586112389190652074347972577687635594902916012677991687085881856336665746012164269258756358415995275222519739199717790341133183208674506256777673044157579666909173867078566971787779424833205733484675971305531640685275592105173942273024334270636356213389661366288162322692485896843765444277739193590533599435211765130437884715433192147182723775451715124754595866897873407089703315855985120046284942077982183637917128062847489836690278424365340322406774701252554615382646885488593957316183124336886444679496297419434740478218409371788032284452367232702930157995950635625461391161391169674051531079625524245042191478922085426478518475020352177640808640402255829213641531896803833468134497240445400836942647016094967317289590255991239714951707787927470583375872118283407274326562584541213428374712014799182262863029779242715478568208657208652792775714414664231192165780283362081332760712272137019693026070970737029481321423336664157050471231160408635477156370497250295855731735049124665421977055177407719536793375662237833839325804217581722624710954919593730480573350823665941983994448249170057215569478045843389803601423326898973223415690671518623064825715178270281248733084604704751126957166471406172110672552777432664632012947929964743905263225895990404992247846307769113604678270571172763411934788899592649919853624280663071314713073832753934018760931339745534385871679854522704830291714717463093805147431071913873696262406568210028851444495221922764027973527034507298701831753657707983288532218884024057583744881078518965711787484099369379967847509283302149860918611000681526997331439361471496585352936456004117236257950556172211126636314675679495005219823566948041071301393990629857570863378250557532580694297752187832507991262312718917437380121983175106738325037439631487775534333635610378116710931718438111019310591093551168582059817378702650081451699080922445150087455897106321739366102904720113554730799873607918019612136586211967196520035719835782416417174088188542935170812138913708776089322141099620257162771754035181040358661527893763431685388981249356014449366730274823253766898676466821928426927922454537690065222305499387733055684623865415822672445292888029814292688492200190736320742098453445638756058199312358950186379991199685861974542411369114011929248694750523825721311337501149620468028025801647471407155553521124961345816558869816716566086686840677690348006968387719024094877710924784809963673951966780454976381562003684290440945451495039130809234590750783188143996063378840458442641633771007238793491367808701953051601683383484745210962117282383929908726824284630015647883279116770784140318252973498817020157005616772996242693681719898376586843935989865608610245089663135418334576675293924023401245646711581731802293650303536433755849602245414605927849509606819872686050268241301926251367073352733947763315222999957626624680025429805226835145421208015321935723732705954143080866444171821085775313884597479702102503618420711199710882979143509469218214877152154086271391455278012104628132981100376639128511463197631417441908568089087671052284676291267687240252312168373967502919819187436285752816391138720891783855854984533362417555728207670361590635097390146382742512055167538819524145383728769233120514701172828380683687932699415798333814107893528584383163231635158607666222279630245654400523394452735786637239084157215529032428362238654305389486830419291235802454409957773638236402936537204667137412069918180537208848700174854473281940691190350002181407389701014005782640548090172810762207139232864686196822763784680225975117255175333220125870427454112910143755889660129919349886154796965148180694818774447965362329484743831269887941198583831503656829545667186181630927699892499783105994534558809788941065838304381925329598378505088841067509077013426649220514723893810258666578893967086909690750171976307777046544070818140898430078910359941164274824485901705016614039673489751862147738661844455477640382458409502953686233167411417921884676619204382046936852265137237203551270544011951388721859642525026177106073993407678767807097073182489448242325269224358297476752584166716431641907956305023333065982129059063677860457420366848124509867677055816102340755300178721462885028673733009067637382064771223022708590485941488593604523764873355238797363265656336231902550051455347038214431314906910820764605092366327736457313996398210110135045612395995689399846050473618766687405426370321971961620893044009719003736449655482080828873294167642912122203121509496010067095221706797583261121261798686001192203478002802749767885847446692774249832233286228043198561147809031408745297297484780824986370532578750201420831505335414690524969653561249390006761447598977143016745373483553420320447492659736542437367022944760352582006312494567617856485452544102493977510830790878457145854448585866747707113939489765346415829773434911100532422113571282572738785428165917555150120481711192969398776060215820020431601068485099261629163881375085637995193247628306483262674063240472942370703442745718477664838704520491647543273108662573925471875839946034096667843287590726196427715808076961202164412060511574553410179534080332252807365740695280065852557544025984651520677973112516187912986970722275563653833236028013709113907917639191295294266230073631715195803205282948884113311471777487993112533933221102453462556633689517036807280791823734720129485318719139956693566108684923015539614393633716527924013817868500559417324964160961006568671821694338426420266906528665846714857543314057451219372440539113999427935211753763014134967888999022719970778851914106747664091604957579014123843260701485857934905433404230556478827806767307055717655208723030452182230904892269824104613086735939673065684407085772751837903048906238241551964338658749916249578015096992209143244968542445722401861401208510188311666603985160892376691130113756618994413585258121818506701569323459460362913546349995057763177374561130698696660114049229679427207599766602735319977986542052401331495598970734805937756125227181748024058367641485864212721315915296955985107980175074632071130689002910359848041352872264913889163566224722704193130165387649164520488337969136488677093295368299787166742591858625483748868651818163830628718473117886452249188214315124162106001452004372509966436414632786306168309494058088488804260118610028311431598967368673494701165018392108834587510594373661035129658985594656159877140947063565279366402837071242279267049816586897459391890074465366208980546707586414728555214102771802944031334421628634627756714001871106235100799477663769697173036757071222575105219260127259525179957914907654434286094299726045103110133818200648894048801714148094659378792720706885288005050400070513961016291767265143238774176927613787114116698612639008633563372669710587168767204910582929991820821466185136940989371289808418222841872567949105266435760776938520515902606736826064023579525900962122066034616713813640997569366531317629778516924870756893499504158074461633794621029854278027876441520544654620920543368860201269321063090166557891815248065420946173171200409047347102561650095412221549823829262397867504939956155610606909028739651292268634924958061841017434465121343564706657017631545623266966477313022593807081691587667343678961742336310634862000320442224964960446535178156365153673959898412069689253467914676282415873220646105783385877718230325108723987713829279190640947198810141777304387015294905473140914802136573246636289315764335218979121598247530429517327944851409410369608427084405744035951326493413592827031774881972902185318544872058409567183792642258466846275551923852182552466943898609526099069141022227840420455979388144771737626542920088856616365953773657946070054875003845977455168370194130161165734942298259082354179131842171839432942294688610940937481906475839518370663457758065615439061394269096180431082668038081592289210995352397918668663574928023285256180448185713207793417750620961049698150416535287645842002337770978478649003577599759654574399368722733269230300845381890642607738055219920978578368367525582433264946864421012325223338003202431450763201596468523300777248224240587235437640836657710609625872001536702591478269952841480253595944545542335650406988722735832545688072222221542889946549221066568807651742761260654830787438581458298309790097836137513380520623527437365189779380993550175670417001337109364032529884340144406369105531660889080091966870249329501691264536015784302532139250397591807804454404125461457164001532055894387757954876329520476323340986635618367416629549119577249053483884032732700924673066952064989464920535420202884457199739879997500040590329023366254734104681941456945297216311264892230466067986874712522706661752486026248198921819994064123793466160243873603972534257309963337239672890990455349011633999120585425106085629408012387677958979875152088719519889833783701680793138895750374540234558466551213117133663947568752432617363381690802018176622212389970302241899130664150605401123101062538302982151337764013103550595790377448700055567321025724538800714246986789915778961965872619369418933463271423777394546967954872864880213274152561935547743962440655339705547653382974131621452257698634101519242994077491450143809170552932962071250915912499636842562939563170489559918022108630032280306513490056653708317592111106819225320144108638400191744478360645850470138152285036439221844055084104690977191383720761333170806249498148172726919182788003479683597003080253460973441683918042006926689868950331687860093358363028996428096426597784607662054222780762502960828866951684684548356848751504107702864427056748659783880061584002215340683288261256826134263041419415712970749307152206724771934003101994188389519722321485423365479016499952669543892293873757603323384123695927959036301707967001126447444587726558632261865429758253504341156951139112940446895880111151651263769667002947340576946315855198303579098420888918965894521279800053377136098307734874727327664685669997350924579716451334176796118859716365046648555476240049693258148627840908657792598999170946461282826926258620553089989006549741521881041087953164547577796408777568278458553398696705779102822356724570826060400664042663985845903096902903890668243802622179075739911229980995328064644116965677114812487698210533825982231349460329155271606096215247826704241522390871779964320109405221351197738219404088940297586652251912388374779180478720950748247930657478526842851561449239879822022269680172359745258129450991510558769797549405478681181376585408080409723429449181442881798522345004218989001937510370340641340829323417167429397071301065132376730483916038916455464310128781087640672927327090549543148320726340772221453055502420505970011866199379324615758398719953058310758169706585467093781100507853725128894424053924531201578296377247414651297878305899653085315039323099537163430448262170485758626388102675008143510766341753554944738145699655350052974344157692141307327229666264159094898807925464920655763039668162084748814108508399857967253634934497882537876800295760651166711674377981531466892004056215325020457157152253182727115771408807876574456379208582698612315302730174843901214965821329477728612226103650451629344653682651690272414792358533788793530150479263973476587215824884973758318144815023967063366730413624322909619324027505314899670263336208721430876354706506603687098415453286830695592510156139216514440103966089328800654211667448148225974595281844111288505407058408992802207831985396939222849760980573870643946684601136381451516188475967798736400869069558999041923321185237602963654957535065022978630684783719936637103115912951647792096060961723599313450136058435900750534292752372378330276562240836573434701109289188285072604066475409110546952213698952218117240313744825497020009897355369461395003203304273471454168236796339092184114292869694367009075568760967186715824626979359332472039350196909788019608505285155816626624777750851314943391886680341288004647462429782228098693650973307485509352299744768523355402910288257933423455136287963116449902896859321353130168839701686092527556160024024115842078022150125115383457002434425885700239105093381215539487398973778509631220557652795940756231213372056304596983603528449677584547285906941828347374142963638885703164291537781029435000804827739069260322393595213830458467202619971019767954797251256982105407309953388767222275108276694958015419166206726744026018966348179900312781765629032865020656003973664725906293183473667213299446209305936866950397784305685665292193782081766358666317117024204730823885408657451594987876742411855980658786025032092544233771457910963778367275237817958189073789122393719455395421479553655555070851803436515721598350925136920820814516946515718544015266057572681352854584848431278592457408114058599653949443296627981388907086629744294877907671194851464238083311126640943577424594168810859471672916575226949805339468320104781044188855976437629731625486574602812490997431613408876397269587543763031562515440945637186770346097076126802929578600340616063814973540524742613720056026869463145137762112294277903125002690093603864506105487300985612898248398332085556942674259618468801256604132466137592095686600550547306193176158194617923318970055038917672128792366855827067620692793143329096481446889815120109538281811789519585397250550965480490269350948224310881563090185773713169656930312865653568750383487988012345955944439664486870968903558752984900850442468450141734950023302617228393359919441037425093302233860506604493826070510345698553114248345275134183102526480411030589002500997024976282968199011106540562837352410839511106527593460419273753478122087761486948337530182880282337921774635543307473825816333209171095065619864653904741971284933354296892883024737072232542360325693942280155692435657701222901138325076827561045061525879704709004778464622895106693037590715443576286297477400957095351140833574074571340698904283608352448214666615481928824259725792434339527348059463696682348338561100509696455904103559488241022925837101206560153966626400512436272655817248231994999026862545610295246463392297956525278187980685801786350528981949908555854919544327015830111754476866022774955488408339128619203188059717786611714195985409743298031213080580701971933564949332695010899343960243937514560425884984412249941120386618977880243406985210673142563244392523033874632552058725785062226243216538447422512289366380947156418656607137489794491401333806441564955002766899598619738328824664775573672403380544889308600573603364335326630293993232588188509320011177384731857434473131949989156284434803097847731900935946989617180875676212816454893246159443257371946520853480363903415420396348353842008909367771987384172940718007279403408956370536703933330415312320446099012222276047320082850610047075962993877613199179561599050749189337693121242613452710174145923808972126570749059805942322795983227677125560678807717783245740704460221370487053870206270424882915848071673650886633124017347929364370268037912187733735788900650894065217602292091775436667556745518236095113756967449129577421493823589188021611436212281109057726579270506701723504745525691084755287940083534593039910020789356917684193436027852362959130326315673023040381421210783679096396036569978259322659982544754807427861445657317104717454214093588645414782236588167869330462583617426271463180293113337874931728765102137148266345149233807286037271477158575607211772665217198425841898899124800278867014827517920196951598214863563470338164341272556859952234602050736351709815267641843055925180647235770783572508824053920032896242990077340826272779043106549045462127840628380078710214365090296860508157372804355968771587139597949923119687440790540711054293866418461238456949733277828430086797395618083546898467132276166993512873533282249888635286625839029283021520902185699062405916986501859246103570202962629468678891649247241919886892935225294982185696851173043148031954151859676277256118642207040920100743151608297797631324207221771139135426739478965598491921254475332869797392578818265502554889279311382530309284067569835462505754830025665246672455316169157325448887343402586470356062841156082558292974602185098509757085785686576696115345813497172890245782547947857830038557083159307630077419959376616650423025124731858511793504560775307141007316753448477878991428522151355046403453494128793720159429780894824046467848236598738846108387648007701922624285010954243703271874979851083319974572375237343390588671583404763587513520328333842789606151361128659317390355486413995842342189446603825295392980503841981118954409659657297580295944014233188248934819214897208907299687110141601659588963028384728952279683000865777737143516403553628558010281753472083452458776907297093979880019638661280720127308340123167027601630244284468609606025541357075211677269348522072869835178405626339068748291775093927583815469692653866694965140779698813241085831402440020650900699961396316346067611083361460664306655173753361853862448379291370731613433343109420763071997918614606751522659753966780192573030695830511265609099544621968672711743926607543715481640238065373647929320704361098586782088640108189655897136383006366734926774588065702490306370127790188640228621241931681908934631252543502751202629797051579362299533042011016847867855262993958538770343900448755813190968793277625814210427409840722931673892473607259872299404632010841139198344256100834467558985901448501761879266359820141820596647221340523804557605265851401484862396002379695707605409406691810302069695845814810544804951715006171262894761433243637267451409327679927848614612412016369358990689378859759194080679514495158828809583210006977803606982350469414971397792046399212096543219257738624061029141633911041467985296456078860140118206390451242139980950900016497212553554644751213602625866813346487490865842447632006900856816315049828549802569118720396159865111618117615243527200018266708883015873163732698422392995535330260737797720854958153840071409375204836962042119479487715187179073827047162623854302803934448190071367596854856411283766127268584788076299115483150252866371405017511948806392453156370068108248238336095887228313056172226709978639270473866450944813446258802007184339762280522929853373163460177473877717948820492078216286352977062918002948095012408211484963883138460223850621537157468640002890810973886207072635987425686005306611854083559800708848482000300528795948431498391931202393339130416244794983087435346135308988438606640425662196463995484969279484945871611936737657412395723862530884630963052381991217133880873366323506129432445940459030516911064668893449365628596696865528683621806784491068933766136418010377083878097586671823330613749861204187097311349767197549024586239645663559280857434206321266515130061663683251767286147060369726216837755099624227444045134744110689970484796325910074231781702388295634031062646302243756941789724998213478034746432920882466996141476272904735421979366645424588579478716265007703203455584414143866203034146353824208370613621799210859069824764276172736097587365456766786975609188728710043442182141508237389132360495032960174763928619647589472162808507445272069704468693404348379787032569744919273651806954976106596749955588168041508796929806776757286453417948624954080510069189506346786812774404576207731600725151873230564855771106110078896067847474600511218967830122989707345122262370078557859770613550111170530981166882341300068882113783347103934198237844558427918007329590619820157777422016054598687659715040528062279091116910268429823849462213456322686884181642083983779048390328707209555796968115118784265448233251949855607895278408609929550376799142182765050114973393686086594513065493375297740251556831181778221484451492096497899549803122504088226186033846323634637540845363865114880915537781882975434767831830439497084845435167817944154741286835715158207536825020873822233574726010109305913511417610847884468728790454270711393985140121030778145429426107145375726468255616804074831580290695384824831048746224484453895130820908409281769023868579029805519616150639168264370120828735605957818300518310995123540571530788022684996591377172343061887886996461640389026546185217391853207904374043504216024796787952653631347184579040295732296920758472215103676220163031093078048386855802625828823616225130988122925090675892570666892170516474470044218384027260220886410815745669032131092025938445662201692481187377343364480998225311707517534977870153277719267604550794982446062807392849148992179948206388021103126735273279344417031479441781298861523000594832394052500810529515408129391794905406873404772675786602850740385535461672862631710884529754097934199755757816290507897612229258038816520483513983057300588314590723925576393331042539962226550692953168349281828650917579318795748349608652265262226581167156676234231250514962314603302652354788266251146041627770494569924809799280727750672432914907280667518102082136778622832980253838141037308685883331879715603644642165705332594335745542674348055059473091420790092731861162838346204395548284496999069354062150779557525662601773537480171972837226743313395429092540448543328513349113333504528198733132621173061006652303251115669487807934956863976408941317595499339008457135985342066949803755945234483743275889135241600145178756130217335776362997395011512822551416238079180283342286357661376731116018813948949392971208207411378557405425309581538464740900192476074548392033527810652903271191982537460284430356186444840932715653171442647649942480053230193142611463647740982340522624098997878987932039948170583112530592615633502627387217559203135341565079231295276819980412723172759280335010523793958341844927752168147099407592846769715097115727093279035103959963335842742835939023708771125381774950491415369334834195550612749704211636680130199103507592372655198906897862354698638790226027570006324098742815790715577157903063886518295699819098754462352598788552899994259600751512141316301382691593038167226725489576264065051857643149751028771484144576197818776103028496251447240821888823695127559200596566822692170178798984098005063687264664248001873084004797132095302707849035034723377767947286204875790230428519017538948906418929586944040873335737801746241233151823636926777631510526121178344879092816181777254735092637163387592371474959542125590762770955110864436781465182416489485968086962520479932954434046674142662567109483524567753528450637525790679848056108615592741763330679202485993415141092054537844495445310032834247437934166356541299773409755461006551999241905889519560600239213041870742642826616540308279654369608598078396232904662433646864964324116786985660460723264539695469859363624904608712842887998896457276988104095092671611263077362195012529011979064706286585484432220665253022772555965740221410603453717044276798383074818890239778369817760579380880377720449041031856441086863959263661812046942548928927439774091319928056410447190108355203733477185420888266645320776559913361582321998695505556964599820872866115937985676841913195728604778071715394776185092111125781187890354863724305006826236118798643185847477350206460172733971463665200494565679349813306517317976911034029156234160127266914748183991380199148845293411863886380707505310718914296414791068823333998041479020985194939008958781890592984533509148072554000073710888860521769406924998657814478279911055617703880723018818916119399893221704686414902171686358984372471649293895673852814794982543595167404588711354432856954735938672533283096980127955705328917935457007979830616799559503345971556273509075403631003821763933595705644523435092188045389739899238858838427728538211897446956187129187693503630987327414580172005233954227531419208896422496879752494993256407962641432175187931454864761472737674797037050312769805354389301562928542611746210002835293336509570538911590855780512470046172091372482893554410588783388332638917867601726614204483271723245762521246667346573695411812082537931105557329185269543698988178907313182423087405130182224772674728598173093280166696298611575837743690366005814348467966739301563700580348677924030555569648368121710022324944415251002346627529639468633265466367896461893929659830142203762085151185442164174050694584356241155975667689563833839202226404891569938929365434626894247478126967121491717823880386927423199723759268608846059816941068628734217750808951324798779822116193812844423091796299358656037564156997700656046428678316611997801456257954626539498450972946014115123213145164588954847551927242165432203557732232605564899423321241644713190417526119965591568436680728494086735479208175527937408641055799752855621461373402813349693339434116922871983865819928609730024448359046656947192913607609638701808205972356849424554384230966497817502950866185516591461150896360252722672190953215637662440604192784661834107513070969867663218882898449818192808415131353841605567532306897424074650461707228519628932737368624497380398336772467613718774364554989018257268340854107629990350321562093452172086983360008590451133114949335742350788473389599862103258913702736694747113449042073235756315761594945613510754556653734038010450928141599846077260645397597133390523760060763561446473415295198404287386399758269217042356384647451021426282773805400912043091158211567814910636546916301047884950005109023321344740938649955172126671041072374452761748058325807747718327335517536335432745297882803781381856675076704915826617503533455185675310954423440354346627833818507617655415098883767069761136267855676167588054375792849452045527337825434119731298854237851569114567864920077317339719468072457397620530103945990545673161768011437012321266321225137364064018056308882736767314683858814766559057139876940457650666801499584524165593456615783497672965408037704342217741211354357932147652417616851871325547740791336249305333631685192977527538406526921338917577120574454139704277263358638655891688738201715604537388261043157342376633291453359769194127141791944255088548250879242317340862102959491801789166582324779516507163581779593693577589670553364131186356888160405485836186662978948736049296752387966703453541180557614006927505937679556536793565194749672752385893396226741409433232885857314999314204637653825025077202278999826632254135061786843021734112924165548898671724483496878202204224415872044749155995007154846044097488575195059618685664674149767429813536416985785137696603814373535002028153210492523677132307017937326618427074484489799584015116046091874279739325497507941312317525527232357566299213725948896538512342778956333059962781889743637243152375497400104764268683846508075467511156269084104411674751017437192998924485022334235424736416994119335849786614267561252731468100669367978321628212639437686299619569076519842150876290536512225595501614326027228836599995088968385461325942598149925086173351565799524630637271402758316915872619271438465737366786366964165211255029097106399423905732001154152716812501683367487359477011305431517752435676518250510631296589972982372849155345349762625181421150780015405155984909436175340228670460534651329344434009248672904949475788742571426887145320987799306840788787387735974202880075901176398039414101175447667299459429363178443575187747121975344601897849663574231417565435110916061636428735992784690088944456121133016622615030628508368704600432111740970947512157819895277495098311512384847081416319113304652266723911695996182298702455351394131396684514802492136687182821182282261874716964691132108789072888952763751545958810243651485366735619218655458844386646017746954669645967617565089829972032369832569792521585393495957669449043611328885662117460821080636472735571806372555433194322554300239175507834762173826011661101503762140047866673418116667649868879773798673430079376611595505832553174954062359511730663428456113568685484111445261036068860367792364060988467919019019505801665689255008862759811440454522981932390041585383164971115658955643635605307980254074010870630608858425802579347556576282903726593976265609287300182595396355880393763777589623253681986827920652760856796287330150116406122647563992736792644645447970066956394347110305765630144721090170317845988825073751031751502612579179190464559723194000824543413280930501921177540380366985880240771683445927119048686175041490360710969647735192536088969726252524957033600008722903831073151188987229189371295576487094826067827902395638147242901768438564978238756933797882125348547737115910564951736361604653093743212606503504659323990763409017126745205089381270449372627848250358296182379086957583839709461151717779151674847390622385521446694382602215815754192916283347991132531277990220378426332862091829309545749482663627299471539280742832968748454300562707023339354720914042964100884489193201194323783570067126316399922644957607692022526071251985183617405471410021759371193497844022374218153887041156033910443967655057773220335543120210698678870970319371700027090393943744467515881351473568283800161648592199984350302991956483947820812972080784473679707229250307119390940702463233941106806923822250730280014763959760766847457255854465494260549868405954042929177881749472747897106337662742202449761242026687548852590998660270109834837911464598552138782225238493543356843845291333014883621907824067254050665638104796562874635563435019816021074771340068552435421982337898850665715662046857039357860948076968580746828284734129014369440802942134467014515681475876137460177686809741917646669000313505723333634554693189582865657619374384878325504056164805176905635549525501633403950136033724815014810909261257155766803796115263070297214990774924889603894367861735916088458317161941715034606764616766012438116532782261018404210825543198167693901146274443523834459561250217716422436959941702024000081225661702205009263034377209116080856632820010399269165142112273145368923931421204107367011446556950789241597803777421773067992106521248989234149157347295014896055792823806681383045590055933849329912696138050886001382017303745162882961719977217743848817795901623501769919433377770905908992892549158626779769477735072643642769436820513892727296233824183385933733082786638925770225749576508054808263079404145383002362859548614152456019466942299555397172827036995576816959091566142091866131106007808118679089480462061387474185856341755174085665042165962462098914359139415019892906700224951466918261086231093350259386888042960951169819931786254661410895799985318486578073176783976000119938701398323763436979680738010945988677169508117879834181987037057810672824404610038711332451134706479226380800842476528852886690932110099830344114233292022776789393083023287939811024253776218685238629660116835876111356830255982063489015111142169678891685562394765777952718207112521719614568576230435491957998103736892986888678521875675684787806484652108933520040349920778704528221261492475791991732350945663136910438142869470405580263065775508392902575234816715722627344543062776011059387489186026535760268978820298648621971516258293876000529157584789467334581976288238837974879621569997885134825398091658530963294646150819170933515816369529858926852065470677155736551287750137583939246660964779792922647122236239961817162537406362509861513818949676027699689792597403080105655239192832526349672127589386240705034938639017124274855281642232677446268233790249730179159495542063221849966078079804900950104333099484771971676528927592561591898945796559110035583223224247020666449001122971649780623489285446668896267581531293421296872861195545643169269279088255498073632301342865956932400827967078222350257594263480967430295476029416230516205525104728491258734725110075978696355282651281905284691549690675137305976534147969561645636288901389612128332028144260359903919247683457046710554205535478323006626263466091585931301401572722005748953701699746149555086803519088362981204288405862785071433894929948022922432012757341948334452238771057726756510681603935117090339015296371190201709810775069162008141405249817527433716419656854260486143778597394574196109631966504605385250403543616961940521718112389585041053604973765889165770331118253325344197963240848912747051135920700758108923529906312158591688846505773784751756636423892533416761918654557774919460945785826430236792822442575431072570690974709209350772340680376351103301590309284355960057822708163699774813320142897477129030326870877711721909949452655985338895016752131662972409271226383603410477784799055017475914413114697159665676289907086750127764385966495813569101601217353677771726713923639666316864050682415701939347864913205744341571445159947977651905744815843432632704711350086600018787649901716533451935298964239769675455434775228648781374612652649776090808917746508890832078632585960686822764799314892592497285029670547232701581371729891393675054257194615700812365343155583547897391063930601565769447192614110204802815646567436225255246416919510524144808910002489078229852908191224711294642214864239869262268260784213260556631388006064208099709067184378874377189977280140812938550392148173336927627510409087465800485099398013994567430058986171811262061735950896982587729722185609737321910797006926193795735838549101870826746675163788301999066503951698128596889757689767159119647175651200553671321276857090362737477138420257441518813105119972828132181235698504144015212550082974735879753896864475106226957206497254296760399159139123113868360399012114465502920146563490055762415977819342064537681898250601121637060134215123833060008100494626167408626585518729510175214362980196966600029441249062094662551485998992020120860894684160569984306429743501407142538357988836442545576337386642805589965241621275673585899100731349058289208983124809855392848100879336411346998054699294568039813919613274164092441026751305400996551176629957179598633283280201099077910133832983223518272140384092150289575034123113978262714670112779925406188366127270934825686662233336137145566498460340994369203985861411017970533049959326071964010201157119989655565893675876274907172263124517403391161682129516990652432245119737994563231061498802171141989092511455406498195367754221885646529624506913077905610516428605795483868638258128223076352281104358515805853184815034476981191832900840747052861213500103564998249832466279358748895952667322704214205626838032069435984603589913384161435830322413378548950746738103005372572941132516497603505805854534885798284592226610670913380331088150515702230408317809914138337451971929605821029130726788242063995964668105663829738231871000524449802238515048723327750775677331405022015244644678210295825717887126271441895940723616579884040715003700052984186712082552205847087005920932413455322358093091360613104097981333055503919844102043116874464132643972619374593736271015908588748749425686664589396982217886020280576168651673481263960796679336352579959059889482452306087244647853750188990690602634138283111735326483972190515676707617101706033975041533109512715204839131274263553246155072980255311206974509351590509867374849865870385730432821290858645656294689249269136808226372580337582051072916324921590782652301247277044530194562190309647322236529655806385078464295087545907672236565684013494860794876692781940850141430813639605043620420130879722830312277344486112211756400165305011403618513795648374650315472442226793031250041525678950252676676443887051651015114702034259792240768065849075229086657224926555714637475676950974641580347053820892794125883255759037142696001514251705438606930403646821619851713085000935939055169015953569258541797493798064346368481399717539102016433690005722644408191775045580357790643335769169833931780793821929022301015032506530449784345849695603580281235110624438965540280104436003208660410429882498267617854592089020042566275651838860540851768051424944445714496118781987170832544656099210973631430708881852774811625985079007585560424792792745874984019402211958579674474506513020150698733241341292852261333020210317625947823774405593716803329924572128672547794684832934246474552101486422037376217251916928212463186873095230511372931273505347150090921466687188953357270117641414087393108271575978400779210708895177629305234665173495075780424476740869439857066224442343799939178293907990010266478093111015552690985524271207341646247946591939788320552305623925562464225775929013121980662720096014581724696613800377556204093844882109198517219506128539330317076413438321499385490010115963253863057591655852658593922308497754390596900411174492023702424990010976786403008097145323243760147791784017380519739831928653764296081731939239044363177067371248855837697884352197536886757640705505430210778466712735753271463120757732219476139980328024551690769186850436209729848325930585054543252775343247366950591601803410994017074753601901195969657614971459415167440233405272761753382798523254940409004028778667217366994851352373580157743851681647580018854017218993422449687588913949301276435994763307148724699673132227673489331767291000480994603889398524851335787588255712365102814110723867771984310056391274335723311365406037834004812152205945488953907013886032351773548086949309901614056608640902114452430425584848658766779199177277158123412160671257618832702657796107502344182770507241230111827435685513940348370047040098893816524776031173129734937480591186423488907051005022867813424213253162349217566503260693662672846328871011241326407928968215660129468004368783297933284429573256580741043232067831557112684973326732873729604212098805919247942590474654797873995306893029191946347752620926153172028076301317859808192305176299522654475456642607300023804938265141501271953449397602251127143543536207453911529575005594587084959596708589097923272132666668209637166760487353674923731190444591736217232329724864392327749304862591426688158186025573454148999349966085726497497771080364984997894562801335464810613686804757351318209762407078578920040171635655952325955132804888801714163773155769668345812163495793023975339415382011499661744757312952208593087219072027801156099772775525649592597368862528243653521686043845788695888939991982516736907229657837124635135614360499940332343967523033349891275257308574848734944792083827863589346845352355920974870470808202195156046470362242956769152189189930164230317011237695852966697254181816956080392911735415987620313542849880972307959490987348072525607396701920404166517364473966066231985764950466024952906517989543364969186499495749976672776197011663045760553555530816340308737027572948114860228572803089814650467239132808824024536828054445427323114083137149124011359768003326701616210724067490472063331984160932558156450936494419584654678754758169023566404856873814255441236370420696159913255034876732667453108735049860037013296886843485292695374526537959719285968511474698596383179873345096795589746323074445509068902117328103787865560121959747134728517070029495896364840274714576675834329582383082035139280089602922463470236578468936583485287435063274787895329959207061249424686365053029253309930714587903858095873061641237351791113053576901983306757131202263109615509162613543332830083239049430827178036899782005621845941528560760477381526817930818720681944615866224038995676648961318562280805624141948364387883797771010516226093002306694497541043894406219681445415430441764922735086779365455146798438648751003125131942982855874341316175642075764793942350763883716347961782085168674170991369263445356028562422909073012876875804644090726882244944789292951511797684454800657065723590350179597488104195230018006278417872497442991705923219228066279355587544705518549050010957917569227241442635657358407806233652088529921663167744061833229189712326690137709033027393217074594841797530938524858705171316730485498838292629618992688103179705575861640870968331531140951350828602901438948954901190066096493168728262341837429480775359257171357668052480152403844992704394611603679614225919199817112716167047852487524392557433370664181426985765442740445481568676884140629597059965797336063359344421825085844264757094548004090945603472359525281302981463504521683784181418663252167101205733694648555581045743389894674287665129602460830517608782766008037894360292465568880957073099287496897952628297815190751256825262268881984563436544387069287037007421023246229826023008951447036259292722670923785545999917532097366906706756060207831812554117547768608707764110142741275760363098435846043406680099002208762822578642592506657101508421822942530464899726982382442840964071584297378132786346159280667049859520459125076367276265298665595228095322125082986593770815020635600149808792129479520420119773060708340947604586482729474166004661575339753847864796742697875500594831075872255776071133763350012864323325502048450360192966457978595808959285225160008285886491908784841931954963051271349474467489011232087076868188955433530980884109608453956919758080161835468248574900867664960602795134742621173535674690542937079141892615986366508069301885036573843169186828685846116850181083919992435508488899768420117241137142129837215422142087642793931894950571228580427979896294218430865230876684355073495977383535631791640320160966302347890552907769896588374358273671242114749432608956543015056188986303313987150265963199056024763434700919686905733721920103838200817784794998988197899043722192407125366279936810245057614333319451955933204779124304195405880414698058235745342881566915472980839562599096302513001657509760060628378797817759705229681942363650447389049666204996716792023003147554109416337704808471793126021976462631338781411843749092980456771277166209254854603401909891708498111749749584568079163275356780145058333132315870921188176798812187649823944873360486116865526643993646409053520920997634975479706624596845834573168684305356856242921958785578872504684887246597675626306320831752399021636903481224542906409725118044177632477976293747576104860141313805739389040531341336051271976499416476069245863852237180437912470958742385410493635690136014833529760283845902486497389750051641027762132160228355243264032003772762617091586473355194590957875339169326765889447805541522350623577369439289469595764847917860953278641572254572966695458391925574636675416357348949614139943313226287333473058156948221879877128017847295735957059764886529698664272139552006405854098391045719660933127920929739230584960492502178882598839689489854664603071869793239277665062618782353253366508516855302902571869770901620619659313225514732386593927989806385406326484339017183196311280831243530293268420832821078099810597204454219737312860354962696274197860978257786765163748872524330318371065398205060864059608155119464742080589229748253665501950519773539802668232934078064408609166393161426098444322788056413730114401397366809840001624019911298301407040293995434316916599721146733256977190064888943488425105286657850654977603284514896770591573220831780421928803573063457924097342340285709150601307475389271222226814531430317717401984864243624797967797351085439474985662092358766688840551988833309110627763992839422856386302869762323123684646226256524265894318385451882328134732024931450585500891207513223000447932877659733018278754762032827642610863382399899218043767675416619952252832681925891723152605260674672266386441153145895490142707123864101939850021766026579087451158966452527617638164849277741318017777862825488463352909607314190330860300651461921867432596667537671943501024736689627503292053408696891104529101750378065114898639693870311910894335428774603004368955639963117522065056021521206012385112920500770303105797253829245942254370715883699315384838684675760485098632530046013331124259385582555515131565307256097544624396340813906867451873448820504434006426536616856019562481111857231785033154744013170953430322809140459437562046789538642248286589421745109713743371786452935401660912168359364526853700388017755021752137628388010871402109131552470261919332052192890197962470961365466694936050380333931832368386814925891197943654537302176729458123937355598422868926570353583293426460805165185826481871174965066197528675201997897479811044359605405345136414431326474823143039627238260868631120543172456678543566166128237644804978946082222811073935616906820025870654874460039807518876704401149480027054872060433300622132669610172333888072634568064778341215820049184082374716129435955897753920247344585648669416248316206931403299638043393350212021668204768593687660003465502083622598243199494253458641649991860897136143712192020584758292629307468330971799519122574108791119653990725619232917665907205570916411231582721816780101879753209704015283476024760355459720759345934119272794880098680665915290915652220851801683564229659763792928438738494325621480301410872711299318828600148751825866675465486013951304748719780413799719385570465626137689910851773004980719913274549500156163049241985222767929231432493215585418937793664071020789590512196820502441535860071422729071385851130338073051524351037462154874195168144603114533316362720367399041907602934116216287323863450333040561382731480888616495719012429876695588698177161578021180449788721857478203589991532146373060669689650604782435612974989136032370276393712052128776741278520157790075306487053767478101987956965229907634452477138039073028321819863243027880650657418799808458511101792733191833716519034882079495852931892735112807823256326733234720403015054979749374067396491674749878136361339002148503143570100405396577000751723181118723057269932646983429441910927540757974896213378542525761097048440066538752860237318983463984586199961549940162208764522644359872144382741964067379457092977489641878818539903481161551021161390316352445964615600547929435527237392582709399635283229198541968152392666976662164450910733624129836067585227244318665757720470501119350853965441253125113023576571368214469154678996108496860658655538528476895483722873963643146302442614357403215950139525627691006197683845399011031196944512372268081754213741601336008788055632847662366472200069733549611485492460831806529482688025026055357830367394267899508601255183114921264162920715269624431023454872915192895074520039116352123139164121487524857957639829905486628073100314073970305776418416089918820567175151220138123082672405014260477142240473512561277817618482377152934593490129221043488987060603857439430762023636729789938993130380623638587049534865758350768817493940718580721803316969795608437857873123816937014587575502242740107639242827491264023966805258871318621054590980146768836651708247924649596059939458500882923086450036438336958748608655518270395551353420047999010287208259816187594391274910484160937153648065643077057952313063288796120942659356588226296315734384011856486251098915693768944938654245460491644794234724850082275534134417007510390897626378678658812508168052594143397897233842117747595496443684917634270089254614882618906150591675805943038354158012358573456292493680663314134028151477169309337699403788375152190040874674234632742097607714463287875204196958310376224492689003335882698456521104243288749034543500291382317141871792549148545178585889090999222098145377753013830833441968280215158302070707952180721817545971631116654361597275744048882280878829171580031182847797091851208200182943214826158013457564878280018207086872264205499092705309694509293157554072267371932385048247309325753584214401437088244743541200166478973465409719519600822634978227421436765717457611018971362753515837662722456992634098746019577897874027589530229759073773015569103731227623358192778929946106837753784090819601945363715875457064965083005474097690972057466421051144272364888973348966927044978245845666437254075085453135200880744431092697540220703206229194851692421465360961785186598551465002829502698957172290760215382123763517568357369390606787202789731125762351808419222105981129188571255307504433390032155876566886018717637425987560454651662220521551847479837607283899563835809253374158780162052456109942070584175129517427367671037699110662614657982609143533159166888115725164254561794426417264818643227995878818755977995997386654400926723466531618391759062954357356373977194571664257668416382431197170887155790528438090048318474729904154157508548464769319117443843561435861146195665835714348049825248062494696672475884254667418264770547291731669812758072932350786182736829260766269806007466888140588275538184275176202836803960933223008557864483719516975809079872183337177844994756482175478054736655526671427324128980841493313774660883847638586291767557317811571093498365720960809878347804240103309142384675305600336162219533928267612944890758173580692403415504069637485152381452531807169317306609571830011849906959867760851607668017314933314041674621044730414291125962636857283517157724561233194625687056214656492873115923922180648496759922816024375175385804174681869942615096927096021755297881586825761466580835381171092479161559101444079463441986015471821608048181623891323608760987186400304322214831892873984852684241153505786918148741239256617931524426325015032234447327793789408045923692654619974344129109966915782335706521978110310737296282934094205692372724972340171930326675553168686425957993307360309992553237939942096290608493600200462021432419448982338505620347946559419694963914272323691946440068380781251676463946469617396727648607278340017606068911019423132936147925422966634325994389276883732569181494928087665212015752541237298626981467180274884173153182320573780708249482484171532773116973287603826943788821099648729758695500636030219754950320077522394139617684733658952348883320244518273021852590077955647862473606052919369169344575141990890104675553869721309748303287170893710821752565360189021066782347463429727065102675434287267860877559491976113457055663917702911059030275636338271612593388799136181837058303499785220980670141665312569782823453571586457229284468594385288314868312077312826071699085309837239042703044551455505910191615273888664845172708843465015128487430803088566722563855353937411366807998667292038353760228598030675376793538507003490812409400976809945867259953638000385662821318400671097483854098847879992338838754872255430667089959765119398238276434514120457143616171104228810979158364476434561952763214247173065110578815378867547635084347698343966315305736301102025463287421956575980092143767198277641747190933184830247422313416099187067460296869887728866753052677386140510706697750567127910053760954419884893050014450590166873707960058423729488464281558866841025935892642407305604377534648561190815325732833292632182016855542278121827849244867278111043362553603232164950478621600684806010102536576074033731962615702943508506548377391464211744189911283039014908036571156068474100461849226553547153863151737804618337482744595528490500262303738410423275643103222391801170009203505388209814594225321390432192044263393611883264832276808834861963459723382404263915822359673716333615623585646868754603583616385253651924533849206392828722596424962977908459070050251711221468549466528092267383921095763572670974044352189317801142214440082497498302863875411312808244217197728114147059430730374342213722392074750778488927596302704577775580257875409217277126327625850601713028430109725419080754670524628839629352802703302994066201694974013863800172979854613081614092144622142495018524026304380581450007590184562819156578784756863478946511823080886678830462275462809925563321337925790108041797127665752416083474736367831478647609989478050077824006457719546416248194051692029195077773608918402971096517462552001489120101766943024966791304103625812455812560208826013218484305250609800122427907080396532922318590330942296283215040794553523116081115587827413908220105733611595406916975009022814742592134731618226913825006802113003119669706694018787791259777134814254598716796563060546171837430796412342249361068729693397729845489164011025950006544628861557360061683919134885678037142555164481984862391350055610936507743072174287817186373191767349132032108111751440053008679001824565795317387927270343730168154508566278499264281413880340809772297394247463053505689281890296052442503019418294531679265414150368622685871545406129415892774925812596384039589102435412041763141249943066625282759508558759953691191765484114442639952525017344304062087350142954053586390249614155316252347516465100963258895183580264015510239620939855770941652134030395486823611254509636547115158996914021875631095998466560569058647377544431692520715137674168400992933342248250013823037934301813027619627544833124360542032441278944777614471930176626726339718101244704010351838770974534452269788875513294660516528518054933922431240209160434679325648553703955911025337742673729170766476956609316202756810381981381507377950705229972033201421800337284498237829294830150127949068900829163578088378729225059141516957187439857100808247452813724328236305792294666828549911742819830736669160506236156994911398941284021892384389652524020244864614735579655249537183067523957786215672802511797962669843339059750387459042380757555914056634519660071933910512927854366491778453202023081873292435232821209609435293132190271292664644988419800228938210333282638689884885750443683132584709836579218383997246734729946067620970309719894563700136690181759115437456473110149082966982409657078302602153734618001047262903795899261354859603242674086034762483939549281112817988037213631375408146676945189328693567679214397103001376063989057760783942635707774399530901339295819565606306342958740858939040883857809346589855301919638191741446012451767569103692080241515572115208527774227836306696956220444218468685726799622104738685583938724374144792217204107513977114657747012364129306142785385282018294104881284686887090441807725257395139015932105623273968193593141279509231737369986695632805078906979329457079967958070470401950695184059263691287299091881292520784796148772864739919244619967968380136353400627714772776343290856251406472503082994839434090491723077387832204230525232063613098891163440322245523355759812102950499111059505060019588098533579956305144570158547978588585574853909757255666441226165525978074479490755319990440272512242219148744821283809253341260200646308970919555135465316054104003605899017291496031956743162820445784996678433071039448233500983910849824696032324972972444837625024551680763858515741186696189459582558953872100236702659038944801828007811627072155790416664424137488777578211428118058891604128201312291476732663731209047503628784369809547155550016847115112082567688383794725866770525374921754954335009438138540400773519234412821569405658757265991713000673034446033587338750304156198797856027885475929674988844467389213254166358033611877064304726793993151215458181348614271971003684214576418614745179429562588015101507509086609300069059452319936929383282761124388096778988194609393377619565017148549605158105887649012995495521218595274727255325776269184270239061176389407966045190996233856409292864001762037848894720078876908162867182093286159080090207288087049038061736116685707109722283529042208493002466431288765644781894648385898961286728346283702255619603340905221471987409211018857821149071131095567018599661368921546967212771876888330175368883123295415635314590063983405116225897186613126938171686963510053736861793258629356851997697725695529019455292813615880888570390238226426267619537511375388853035955801276229757125422991348456359057362326929288130296555420137192327316418913454920101372828728782851058851051182783371373856209642791577298914757713198437382861304261483093074096947818752777468909477849035401689489556772546127784212763140794370026768418184922979520819302234966139407776689478546612245995970543808483750475054742820243588865564006488363334665314529715737183768255980462308169578594727123588272384732461750347616624917622170689783344693733527803763821301952080166910949427636108372634880300234810689052343700753663262737433954120593075617278668654104381541402013284637420513754182168359195105060003996274209569649705466503249770174619487374519425523857969259271928591480050704558231426312729666582340998209459111830593859715468649369866032800086000916873021940901931263481813046452070829763452677340841003115945355309897207641853984824589091682789847794550322163427243220864211471393407019262781101889288575679125454578223398463817912067369785287737498738029456539908425848862309366187608842293846912808202628920924803767996943335869306783635297829970186390759074904256377912030332376669715287834090601280666231825940742068842508393123242984088809232663120671679665129780312240358622333761963394520240662929366070736291839772240131560150538340937929919653500754844303671577117451926698549713311163743327185985675963274730975320993317360949527748559608989679554424462065700876639912582121391423224464364155467993642427486103796404148225027826578971880787223227201688307320837781554255856052640302377692773016375279722904815604512216283117302759510328743846018283565514149320782008694373298759729338093661677464808514534403412967851011771176994247380458771999442937278940583420049150748492696833932737760058746615462495412895262396649396563615700724116571490743036351112321793599879364469085448413630571491176421582171521112775067892790391890780984660919390125814294377413376776302656804096800010952901386221254497203550854836779521753670199947986656605726040586776446075578858080825988143265274789120744163202507067711184703898948667895715485310680183781673781671133320291302731188270809368160278300033744164513146598935380754745506313209852196182655009140562662841615534754730612769114484791916807687282072839393621981867251787334869632580571804457641234590665017520012037101933348303777205057546043849484677836262864366833599258575927825859286504055652240855318142762721353783199802259928661626482892136095239271291560876228020292963849249374470690912028858006304227648034093152900269543612993889695272373637915588121896663993660779421725366809297026758003904588878678532542983921075913760563838989027408338835277373371896410101161582362846093174885569049571460175985075281663513476794629307848247939479596424692631976436455071974550051945017327589853054283676318323433370237089325682350596707351022934301909822258108141317037937801237479635945037453995478658821771560398731714848290283067010061667534027981043055981127122404895005614868171054183813337913768931117062514461642115169639735697994356658047364541993043247280770251629947322308546568905406716382081356305544793845840463457745541075372960277837404833081942226988219773798606739639398355081934933366666920872525126707174333907943348934330975038831805593446006386757448774229386400835288248977723450894326779756640243831020734973930643872481222316963912580938515997137701758247825729194145772896281536110416744591685224558303590580021621736144692485389574618097194388943771564161189219779372897972801129457002325572145288034248454695115257864815730234766941633681736649604469137580369177120796408242452288324494298613628018295721855372601736818339738589527058200400065063902879892791452490381501904527301140587855264914697195347966912873906853862011664385558899247763914542323919353633802754925264880266390513965708867778638302462008062937853514962586811738544998338983262319070303981254316748424693021334630095136489015001813134708456608929883134051246223931926042374155275323349029504290853764186097781271229005337022043196013282589589281873277846503922513704485187067820689923604294693973461356109728830288690978292282073847593331229785746533561143077300639908008296682669953754841016486858740616398130071538633954919201500623438978073662566585877921540733264303234742378565843252280020312565768023694475543189203904409075449878561325972053587270228870074472574227656288488930029383013883808476440158079499250609093356682066541465185149299946235767206049326039435931037585133082311127455872740222675518879005790279409140516658862364927919705885652374016095477914577080075031915714676220209308888241613762593810028519184827953537728634209381301670512355012192811392788867883368981622376521443350284846294056117508962440552632418916628044170066819041401653369690884867810872216193287257383342504264459586404693585856553715378099092350012867402344033143159376709415659593638129119706649731870209951617573568738059071154964483093483452571542774800806410838385270740548029593343672779841624658259015960926647656914741301568230807909873641938560113054039842029754265291349396653197284625091010141074807216185794694289820530847567133118120783136731875143272000582477720260911539773455692240844356055893421270172762798363407686294390507489918540964261805490753925904078399951820008904423328465771258416954955615464365988314430384642946196394121329923200726889316254796789661473382069716442659772487092975899419014373451079340803121096941884461239082782672451956979010297549503440955547635013512027828731306430824589515459722364215519164202641560217942816893258631204502236284144845720297813517867989902307544531137173521189908408107366607499576310932116325314693539196077446818228656904386902283157982639307596161172905313679183976705454509611512598938851472194820894182224953447444946712618809483309367534224938429310568492944979491222711905505606974065116200588807389296150782797290793592522476578443599759802767670289689806471811616054944112826738401264716491195575655069860331403540425254652902129572156043689915092329053944103820318286631541616611544516672534410529705909842627677723125781895518151611081646380360926459673687482354993764893551476233866497973577556938981511872087440867370638632274036742626044041444614203059827817627019386040220377934267356209905118395821556933554782564015476474773341832978574111214297497457924745941900756155582408466823495157873919686706741448660316482150776427998175778862829249395244340161499614804889024961875154762802233098660608215640595512044906313625504256943126675218562168533203305619837352381831595997502515996648797608301722707701670191311176871671571841216449449174890425483928480454932913828397249293692418370599598983936552092967049957002473690415090839206202813453459727337980437027364490800323474172528228136689604348332819344375858681084853094832629363473894654746349186127346176011366733928076083780934514274065028079821547526787292676882555321345740600808701452719262059008248735000590483987265082899319278035510466786396719573062616717281862301449863882450580304405447011437721499831273686595721289890704279036169015417664136475522422163103186959421491186717051121249509213011077867607320694016693802189138284361887017614268556275095603774647731497850255432663111580118767757063721679808056437675476955336408219306940408877995847797853554733187218757273263488955287485897311911695573067962395210512236007356069659747072944532231618760116834628655842288494539093969263228655157144329672942975118045780051426629485307507954203461669279823394433245808914082150526509395926787761259550922974793048580146928841624726759894420563149803317042708583426028886574259890335571519447115000740414715356468970478111355995307888777722418582761489807882668603201608318617886182978513756892955638592687387180400964518005567463700529480803384229215442997939625066471718544026737920482229029686138808519380366368793927521563541547669457050316275647456193346101150022402357921815007021340983126186005183517933440742749597330952557810847857084732790668691104988392064340583007521055482967601090919159789851354292240753629776663553564335817572290647698540221925450771659581681442581905846420417137021113437409410521636316729053288612155014277452291140544300179885651742730622443091284265524022268116535579022337886590985114027861087984319071257534203771107642189895231519920000046951262964686821317908865771888844069616348667603908972745954073689022722655411782761898732885615907477634791583315866695144661148659520138697259120592279960102370496204883832953765916995072026344171615581893486263097891598227379585770856333015758724675033613479147261013093752865132654113722775715985521517967329476309877626494515690527467324486396212361204272585846383872602987962805620154408791705000701463965981518484613615054653410263253195949425343774489852578698599578909336060016665317649939526426570119047169863422014704201499483984999615986346086787216216456623259931024968658467015250132635014655431487697918738230321652243856614650937594919874098922672145161911792169492728892212774889297799958585200080933774034122156472440323434374827903231520061736930330599342096533920836891402924962149440279480516575095207910132995063176793074661759864257876143504673876964071288965854308990735227059113099842775249719350608010849460313886649533255204475263744950367990925597798508884076863105165198127844002000682359188969436539286795617211694991114042444257553684874752317866372527282486497975380327477748311005659561179528649256278136553627549516816975052328653544881413110301576832030749456152040391508261129832458704898081309055753375644988546269144479656120416808142020007555570098403345014360124204950943824761859721422443162537077946049942543289040983898245347044170783443936353291918314042964356773637536805662300543221317474461891237117724730058219959896407038352717901499084190461661949611600865416057611088403062567819315339329613310844184589218876383237570557135294823235867045424335122327037072171147243532489386745771446427072182837468593883087461946756829092285031152138789735165507619028687784852091518678015304776810614035946801839316973890765444093170348930217698090029287068021449346648397117195427788075891507233759875658501842885797210210568217079592382664907085175336897710883390592830802866925592686246063834204934758243421221068132838458498449574635746354137162499401185834720551459242535175997675413023005152424398172319628469308349949402627119386050445336954922539047491445441271689618198037972049782551062762243239967875059496807388131560104390084726681702051655008242570474989754353389111470409660975309741653583088866207695765619291443969663697026259281879885776589371348003499737473617490226818727282879603939835952126806998590565868377101867412462297994982465363904080720306262609273144903526116659481875722110888052940365848037426930079104479863209826717960606388127835247062284611933630796329570121100007640296799027070388506326570174055084863402847787204473761502947205327946403580049516705339847426721080998993248514430470452840931095388273169131225086682644946053328136589686765976516564152912184013905857467797537695437512783660238797310417498268038465256674020121778042437049860702304616355110222286256626357285891476834909164873615935237233681827478103960247217578031205539767195047497164024570514551362850824968570321036238532230576923911892625237958845664802300036215433543793467804615847388245483218441906530757647394014370405192385042421822380485587293362916975523229249849459975507212847026648586572188327958301864133837259439607440028140979454849200102908817949670523561565269601917445932981793001094090491521752466977621931167163311788184262145603440538744138889092849739605910695349279947465939660139034203724348754490806484633758183642779949636823217838141442718715222428197161850733505690766236043003893314071653416186998178576951262817420178214322230414078139338292537752799137402919861894929754918484920232215550042941825759155214053090102529892603257259457933012708337364433550718010224809645007762693383074124500972156772382619090380430219606527983011803004846614204778354301483249824655371343384475785854303149572098173810029384840971956485729401866372924449508576642280879465183953184893066522548207361646172612549208321690685830848283895124519736480263156660981067125885851579927393636382313558488586831072978072939574569037310384577179097975709634754823108735470153296756538516102765230714040268470596522935181346322874972749650735124178101668081353610228296245971279465852634766168723479320564052617122308382239354989978515541128240599927831723999849375113343999544015265120544507541423439822542859897275629946993066294935913566562490072518704016985580236876387351626005800823802792000326241957708122160761631457444908558364757896261650156352971286346918057383470678453092815610282352233610706722250832626125300107165871227658882088087804422774336113840540014509507107837623790480504155191755825996997193741452282437991405050571388649323789035226180576345406292271513445953337220935736649362064725830962405231542651278331921073799364344671017917668133636708155971542522180849656822770029940473921291407515014881673720976216747163692054258677781448384685837853189602085461790578349690920595862948110402837732113742015379490019489813169430443137464353967294992502188811292247338736823378649334193594271789927898340084239365656930450501154805037215281592297888381092025033901951529477708375817306476706055178241995708983193274002726717473011715090409275809156801089935155842181581857069242351946757187205619425468756191198996509048992283479761385144589694884315624805209287499355521395145612698097801637455431550095707840704051387863691798787941875284597951131595336205217225093979551798470899984686739513768755455510731442969041411447776502922515396224002271755004207213901496764232736474540671216835961570014876787901592657330527686817845046689584187156914891441045614869939253206234292725298612036298590921820476053406650042289370374840094492980311825811334542587481641535727172118749462489007478572109221879512246623746804575916506313109856087244685804296249382207392073192757697556400950704637049487015862629250337335506650835007811992231126298195633136002603553413068233313102033310635975265079545174991594142279099508497089400213668540815505019425440482825462920764147883633150350154938247737580849889056572714402957811964365286252589885456299218158042976556891559895355175442265813908599305745254364895454038264704792592026356373881663488721005407908271424011793922893782413260440313403970267911221615784092503109355768214449565587736541946154576140860159621978665888235104418924394429808556173011979541386057585979248935317022633457201805749274863953520756196287210522662108504058959381859315871654935781708506697447720570285971928087805116337790498561923207340188695154172982703377536535463079832669383626253305657142926779456593268336999549335786283829604715248471930169587911737207976904541622106290434582649678678307051494743519143435800255940516881481932615077243388821343014900798113405919679743191639115919408199460972169937984465714479517209635583146101494719801952596803398388216332267378954205602527660763757329009574956297012447207956568201542439662279015879716579950037145834553070059675175027570104993267936623175113585592058449388099425837042795049731169561452256502355084082172115787781423378120642674464012196515970800770201305728991927088908419268933500314446604577060304913272106807647122542611391512829451545184706966119984512158092065606903331506328824232500258126250564876940797733937339179683816749687955042105581382392253469892553903874506422163448360913369907149968907737736305544674682127156671020001387498030497682017849996793017687382076223858911325202761402749985093181967143456984447278561630183415284220400836853798262985723365798452479982399541266510667754541749383261569712188551944915836411592000958922698171375763622769703354368436434832463596672013284026784308827064869648891884899108718247117566705684832413550406304741892392841643404208950187000455176139977340839909484287053384946675434334078979914145664134750212783846591630703224892811456316415088768947243044011476853331472824085421480565352558242037771602088421365982803797777873192474108089825397504668521514001142489595469480482363282964244880950644625640155894520033153180527757630047809356795506379584898019320335851279417582522518737554147767562523937530063794394114202681978870454964511576292678393708497486793323056988999557898424439674345592951479147488406371475768184886952042912121215459659098349959600710053684734181684958845941710046241821212050100903659198822281751584993516064052595660137165013334759446689157378018975951670306252897142816647387203234316174639877979554442110343711108719160356627649461818168658016712597856159060385559237957968712228420693995979463586294321462720681292331690733431536555827574010520826022486296815310255159890871600349939757389355857245168627595819138186088462879157423632264891136291230351258296490403526041538971411467932559752215197949901827223744228156771525629565462911680615169132898494370297626727198921057332864948402214182775180731221274693217420664371710718085349078372707196543933454530369885252632203146075376852908262623405495666952492485029101926309793644997826785002541408694800267682619433027816328068591009271308720915799358227365455906716524972487862813917615828695244307989248009767966684889734727943541236078510847647988349634260928140685128696744905730058782411463926551600948910046446763442970155621381112536635691257308385613606668156624488751807843604929643062416051968791706719870559952651459893020560154315131389259191429519635167901557911788976859487731592767492189219567670051565299623098486459465175044456670611498091662643462319896308836077886059075698069839696599118412429852903511967249562421891833290618897225216969592732431738779991930695352537023126902161645163047984509941836862395583019864255549793251578920695762062717334091694545115080503292988430498477818049911226042146051609468127214964747763040418927521478224042570842840663120080401805220551930573836652125064735549238269918165826708781666988046064543763318498576142640828630097549905280964306870814652179067228554740605391079039458759682757428135910345817352330103853170067720605320958266377658122602943700832305743585675976158412634662858767370426727480552751973977491456938189903219432291625600035248550166039839221731512139987194403623268412000292573447255162961159235408922412175133858204074727298925616809675877722899169398929626133713135460270256484895606035725908402332299713349072338431658358230531226229263546978818028782236358187385633695653424202898554664646346808262620132277412078203309558284857140628889269207221838129588242305838304528105928806032582432778307184181485644922244613429732338829127100528598155811863175272415249737963947407081652756678947282727876493227745967048617941939334513070137039176477971011010149059738085449926821807259039904620107792831348884381684083276386641143049023590765920078192175797889052101419084109008259412230675168290183205446861185200101680203839223542157771631085189109065132865343788025865634780674014719645782963239005653485295416710227324933233818131600735960551186008000644914623574144963957158393153203325717436794102379039647919410218725977195143944220227923459846871656392647643479915587784184044209108869991019959897365674606942788343017254205112521432032627502340586618202450153756937994918570729594335058487541026395476537201472445848371125182384617436024172428585204413867686664022095655235072521979113360602831767234797078369858050385609336173648788565307915314478238155548312813583509458327745957957543522183395951892770190443139024478491102265106579277790881057845016229655732652197178996170667242546694306109165037276347415295851036877877480969235793549889156041121873878244454447643016915162480022104339838704246066224464942909178615184508871254632352248175246640305120382645620149757413620025758133077482378039258541702002735435198278061894704109399789781172020195619646965745972840277437369690853782731231456029623935965422344549932195585840690326337880517071450057408453454670160777117251380189347999676632365078333438782554161981752354312054270464817479701019993674472470268824148558110567036273481253162183360020373860455231052783871099527057843545436861401755234981000579965083115115294376510011237437175004001009961384328734548690201882585588062254056865296613239277381288795396506208131048973799234236797313256042249339803968309789010344491888649784654609512638212548075134540959022520247667461830853910653057951391235742197976004086280537486266780038113779805582002523697803497087216832866154603304718648721311770306671503784556157457330590214926956656800950301847121871284621895045453529651417519467040057702587208192940490116955468393970074415023091186887078023790121747093422949885042017354129844628442958436176128103080950085109868481609137609895063901718996294979719460429166110682317502409234573973008315358250933027343880375169773353168139395906209052119890640257154954072035246127107321359548400959286782976866326130493064285478030069672384685432100712779547001227548651555631996546852775425291482417909382006696278430233466286273452093637976439603871534133905882358934829974940205113451485767431858703865122763423268911625091607658283198274063390025477961726933715089288357595240596164472533089211636258950813340805751640455718936640859356968565756558133052529393826061802377389497477382300702205830372339215503876960494602327638318308547458714220276648505633562498250809607353921019690679154769565830569957398493558573354317258848258222663173430362312810532207988732175973645631368273557333594167993403559346417353905496290561725919886918486951831779633724574605922881131390227542859750521993686891077308749629274667358374046553916166613602042051894604169757522191636819627265798680285150426859256870669882010543556067304069556834293630098597311067161612735767473201024258516116405957556474043370328598517426914925170234963233485474207286653591086663873409077234084612093374521683208484065779546553636440025538483564203767035578824267321569408187668836960628898026073294487087567340400562193534227775087298160707677455587031775974297212944078868395408666242329562352856306642898818765067943741592289824141469930233326260408419312051215817629925995984858382886996222866383260608079005871071248997232789495742286859960060439437930571229156597122302457614516185082311237032650011573891760760967489531722755257127694417379702998145888407280976750072992533336125758908559294335894761415938988750571432998602729898036332853051674296601292145167976196119622414992860600153875768046276437829050337434005535035310674595914377414002809472483970058815909773968058489883854838297137392243281898720001059970858685068024156285620435057488060273839960046614897685697905103222532485665554631493196945474047263238039036570007113451505387623313095991024880251207083300732992336606248455331521386002119430783307979111504862818384960381669729815537918484549657810161445188415218983264898523080885857811004611615300237652585037424595658251959006002860137850988615049367919670879086127747488800832098953158276247598973374054375689323875094920416965095075787138867017974461819614087726183108148064828742375937793463542219419208551142394951970823734410209544554832756008495980062039953784549460984325207440487492117366611918037824935355603574856100062554067955866033675147973134125184132933300056735104973550695865774858497034704898792368034337428834977921046097537694480249752114998587080577064535847515717492091914814590914065867506112354835399715251622697767473616793630526106567185295178810585970485411916308586412006836880350495441962615861745385549013000409440641489846281659861112082029860989894513364135539517655276621524347843876750280372193885881452922048481110117463801811132848664626344564335069836952375341552123446638847815221856133314619048213024327543945707183590167502768975940280440551178963816396847990224998761976468364130783799600899329885993321926240632206919516576662052553452620429629710644861772385452141999601588394248887964770712815836193972238194902537406606785469229972382583826170553981400934957587051958931648953807916714696337974045317032935571539055902856927995529109966206610109283835032290885640229503772335255674657205945198662207220469495525966994229402369480543117845589696362536566511536642242975010691844574427516772540534557599397884678897334061130514178656957994765103952272159702870891198147399803797592230948463292594438367806616604316231004324285855482996187297402288242744700321695813397970939990548406488606720705649058053791739205870982742579053354951034790622589143452527509315546709773469544411778427029972788625446486339066080460714047545089649647357227288918421082046022609176778063423942840553705577885344361471773171838330432028655974829586464139032426659086486859644409206243095694899287264487515883386466232308977750123740598894350596680492603645322593496184894632409956313122269652159735678738464094828662614634554354594162398184942003642032286201815400752817472879087569607379657527755518602575713035401353881304128383734650673308426423333499788420231211093901324935687961313138131368469505182531623242106412533701489058044398555872151981685811452591275960742980821143843244650719828452710866294479055554806769688335328206856910873188277246269894457896093722856154980279243988834452320287148714604273142700855724754157702607140847358913267176389214334982373631403970638945678644043612098147858195688768148217870565793174236001434100469425332336108730238177446296216133117071474252924933709402161309208790129409692823932481388937421730274192515557954656969868185785594051207831932110671662121504326921710432620262703530967443095442219086143700618587039379608738414797669583577922615377923184815258709144673422499887038185722340266890032132680203892206166683930968494732212086471896475079101872712699840696174387646539392048167328451726944906379650187095305967282921157949920974158586430667229384222229930769480876734836944927397134793464665568867022628135952329211622100393952588966404597138914665630083000814755963560480343725609401045912525925600028454799723716102311651371391525868758682873461827129774561837060987029013107305739234123703570801722329790581021856437184917059615909202548881559487390098899311557996676971607219098139464901064956337346986112421331940292188178310350089117796189663724020791233515886182332076472434016613676999307724697056981509424810244755920166636402705379363510509660151974464137447155708386627585339992993571441056759105404883012783728765853009451517481087116645785430801135569932605545215758811402745169362227124101245266505884562460447832134547101276337886372889974958621408782455547414298782821265481259062565916084648537822522803998421095432308693834909230096631198600716895675324216543019813632708435923614849179828753284148211528428077103961259025060869525606216134715638356239736847082725554813083314034059014431385331147489884312687257295842134394738953408399034791808507165925746757283866195670623137457500178402947798593753180394836834573560352716528571806467740144503265014777081863548744535318561442972520030055534718397868953230040434590520527830149164100375947069305234154462607941140124026318709748001902770863475593212511807804881415626076207659170970797293007419195273187644762052198103862067149344286174241635266969109563911076095094765554561999505669638775948296210022450847200901767304593546019867519647241219525371319482912457775418465375133344981652125778399289149676874029702179098454475707219566884418334923302486663629582740410792503008540888106439937715772871393971407906359992592478315848236738545382364672193489306324904544554098965985736069003720562345967218926354286896572664750631330481191512131643212666671497272114386727507760337747578984823493945832512575578184680309793356784481312669981320605220331007472343282476862363094398081495774672715539491303469703663175297984899627961267280317327732919568838206393767396821726857146546919995918256760626784071562137092619576813575826403080844564951771341249359043646598522539688323850680942642785974249740248842362607888964359045148139873643102707081302208757153469095631753085740293914228330120050394983961567038049982075692783292966946051610760485019013527379219026699806122383657893237755846786193304678397346735645741972108993062805425062640049912900029631267688329319341873048824060718172936329486031742348069968247844398472721872203527661474799419759022219871560765733614616720949903876746888538277382403355684397703299122114383478444223635846114461850438546322685961625088004217596812390775158857820916267955253351462544031708390869873600443534101816888221914832294553928347187046910101023363478887665205132818502736360557590222428310744202278555248998596563283102356488875701788092089058568219552943575665877075365262408307886039031103408002574700889183197908429626789444444463485217698732977824230650648231793734442299636649349988620422174088623586877561666668639014738578738732833160929979949100512081549577133563579319664825458603277234232406926516526375603608437799387735084388113204158735635370275503814570311253274661867545667699518191074354859431751859854808943479773811442614572066190150899981693413747673787458237601921292560691296086873407167490733819572335952125536441745680207334085820623728313632246047970679895216996036125722782084138036991796467843397358586026204306319558324444668961581607348302813431947214752365269987023391565480118092926738170455671445777101066804365594863710575275434048635273049039324665153315947261356129022551144592742876978508855855380138913519768781809481971875173524223448944143610586198107691327381206381732589876639738075109772300191077826025539706255328264703922730570477589292265829506956316361888386439802825890269653345662247540184218759274702735132088251198133091102665752960496839070021712604042032357579653772685689755083793130802264369149042552786610456048002327758805651037512268452918035346768917423615915496088737741639491845342388891810081193014786325694801531033957810899435434775883983266086397605899201779618137440009751549950946583069285144454658230482220919289540387442608820369329999130306150713684043091960000455243100030501242849196859297565350294475870648344529234595459372632569111079778896874513229215679222667676693253905736782916616168126472563661493769932626495844583676629768131156564790863759240200546282045838510802756380339922363255975326644997199768629676753943760536185799575404445175343860948136329876083610511768853871259167089126673780601623013966426513758888827850638866406419373183046516120438705290823088129378986051091327528403855080134547603673902100819438319165917517200217513220324617494898302518413521647174952516121941124388315967222477497208665265975396531788263246787322155137396668212741463177526111983533407802505947811849061227232053845915176156007625901599407842414148913966280995540981654024179306808297848104835499461341898432211348370228495917962889490302336068940750318951114335835559826276444468881664618147394813904207475141833422421707736502111332199665064943943124198387252438625039683402236017642260733921020717658383330305882311627007660792817184787291628968330188555789466006700596649739708511277348467454007459277629691119931768427508035600894561635033809126653131954836243786540670770895275211345010306751914624837551309679072383102078078749438950765068917817950262283196764554425275929325730431707719258917880276492932724725992992349014384792570596043348246066958928512889986950717338181961350583591935252348406095960516409203183004939286823959341561928511960831472166394730716993818466507859164327382642827649998188530064906015054571412591229709735827548496120837664313658714061784688069808407668260237326331154680168218753927816716317293845340820150016033881309509166855912007819786932276712444567164008052877263511320065275107051908378970995954478929741627554400042539600185826372595432408219508417927466734475986565122784147651957927648686030175643205981635644183613148438516033093159055123898149123370655260528324298339216251350469510077398397060321498212660309748119984688823511111948508749657992677794216083675517400259540582517286871227317206756375931378453586050695384096161559328821948316261619898221586546066216856597689179635309790050023934631949155774067367555497361859427662261613168378061651772512891633648405365282178497746563821575123595728616164229151102614475218387662425540196360589615475629653729358363731963729194716715723130573126243742111117283149461436441255849913967574950977335101221992412105290318222280743389419114409894365080373347874590381014903139360475918738604918405676240776113230836531439550695502171042189899193094292426361391783728884017578674136778179837299826448400275286146778448928183820435076971531541774799408849010230467016174031518016751136592288013188293575786157083367582353687793971374109771168289125760284408291441836253763918372319330625810556062802230650092667291198462115786870268769677933398136079643528805733394063776184805608840214140335328710851071945261875008067296641312562512067965171477787874930442072671418554196507434040353226131377447162824971921854021592835190936191783986797692838732737685296558642093988938549514204783623445802309770689983845827582354549065102060102585044521868653490602738350289052362710535506937760828521646129908766549760213444191683457157755361709884863488648778148966525791384807479456550715201257784999146984779622770326684553523003017669416158026927535176042293777296771632197332360918651304272601835736674658250797821754676283491496945583987264470391838401177416900177461683987513761180457003186200186700583696504083690583962244387700773066810811641546648994014623181359090529840698413934665383743875410042292093807735668627344274439697974036828320044345507875740342904398919223130955757679983761437388463796573599829971383111813884641945240805800693925092718482992243455280856195506838640839534831287597060897322792362936452484924443294182342309913765431037330207083755381793497219279713949770648224562173586911983552195736292683227252934178093088543786688323460657084497293644126930055127872526808566816201216356331362942761761277486769649023878829012366709554013655840190615672522073850420037079489699264847833349275883118825238230997829201703905722504004727393907528888406273955834252992681967422003843280606216212097979790411661982588068422532884281060733863785059663710027323749137042098112361356184047762605990394313025127049923409924155014181859910373881949843140807033861200384924153182107462666222901357844113238568540001095807091868865044056186818647785664281121540836775401363912566580799699191414910101813741017738453888814719504800814139199044569158869002582827029477371670143762267703847570516056447472481801579546442287877072957101644718892464336296841461681077161844482388384215777929769734631926682624959000009095566214105304582668131283145631896579891955015750390521439347559773948334791859414474935580008293913612569975921601137841526927301248674444377815515886266927397818555647495961774193268306006063099087846259525766940301930613324673831844554308139612874491539056925435182897363775396549707781431515614579507109204737707980847072757609610241361848595948666867325609719485810807092561506345547989213513849936972502503118171876081404946024453277765391338630763029848841771406787081182560458487052309786101903622684052607666779276747534636431426623643584328095735396485919256855282898508168549143649716767630432262917947068182566489442773741561586011144711469686211307440098275054255835857790588305172881546448871480553204496634639775884920222704821251518570728672636386176006253432134665068400170238718655079054430458942109158032865712679767313048410152587353727269945603103081212326302259318564337803807576480475088111607450773461638367507318502391414379011773490426392050679878866256347498558651500969575824279338500083647549385277049250561653550726958056906969403907308383857195520287627020638851581210320717599892259922073170344699799059776971246275245384553249543687178312549682466354496469452329510292563009220748156416269289821862120531850991935164754441135845843433374461517354348050821249941516879014843765707058945774996315249441525270165455989218875409582568268990122341216121371297989243603917602995200844252088978852323637944896678721975710623670534194231981411268568772598887598862870448525909619494544062427066782001911032319294125439687124957613821290334898289094170554995406222033636017009537635283860982143286970332370015740699851896760858015645197292466694868310864792180129909520164297578021311709330273740057411301273083133200186193844088992347531801619600371063032960314019161699326400313320491519011525830677810595992240735719543092612023431064870774407711725309515713570501876862438418791626746902209211710034371567814655838629244462578992668090325158790459632275431310075843431438674953213433969976650786508194674436055885848580998475883584109358134086751368079267489875635887961628463647889729909443251865159479872843191324353107202658914751594328409060530345297582122853437294370366013961942076927123856363428621548806144728313838079146364204385616424968289646086707696169917018161861066143933433335318697062729535151244343341109530984187573468750038782569572703437885885874734002441703438190552152012475464107854717725417065601828862712948989982727676332860495552383685201688982938643948823141397112894009097016081888371711960619721967361322893470047241340450528498740314539309403234211030176815456282236112024320947688027149792585366169443006502888863509898434082119249388049394583062461304029515060765481962333259620530329164575068709149583971458176605825095702681468971860330203049154083476792314505101951069981846662517307811254164501294648239175632762208494026987846041426469371489009427327192894720824098606337274382302864695760922586276180245475047850039190151687061133006391945230169966279493012097978893873374639793674266122908125017347965332332562550889838129216345917189601482454087892572777189331667201387911822411910113080674286463164802713621298237860937310522443048882960612771164267998595651793330258947703375309617840054530815186860873790063374940987066686431511259694345777658034952507319761211979113708402201063260629979794062340587087107175445922195792253950116838210629750547895241223848530993493022286936811579132298671862733330905939871518164822076819405379390228747387321905623846503579913199531234076210095090401562058698572288695795327117465382561844231350599874026505373803756310789281342117278885268475067368238545699504541822120722409354045546053443688127762453841258058450364913600758665531142399906493363751753503612198775514557182545649154075324285210922721500680504403214899730256253286785448164829156022573294027851867667633674700308072014369349980297928431368187473377682428147675626234811426307582210674334894768459311288527984786035764511908826888118131055493772195930540263636074764200176303347133268559863917581757660644695602304710002116446212421927385097738934293012843122415637249906895350371928287240627630830617991975142509665820056038804382556334963724718829786284964686683419896775602933453739125618557846076413109133971149648106903959379121966732324359058282123517483042999550508775355872486973428114803605862458666463063275883301995064292971121077371728464899887962428943292215240534165545164308456579041833104204094623652811256224007731814335839281876016263816714631165110122155302603759046094224432945324104913530156041313144254814136489002950382615075837840672180632935546907707341384657387219082926276277898468771285331968834437393747319919123470979974493660202233718867715466023676172353992892295572980726381684146359035986968589379334431020385982484620945836945480743458248292072956908799561481070887234232663066277310925964180100714112273492839848474008927456922323863132073073173906612986609205864601409536603153954314351925466328540340948990824743980698060281526511659108508861086784756065492689673844401447103707762149157053775748623350532009842096683896393493678792332966526126261477616341499593291335077762398387609423862820353050528059360513738953215804555103813856596960037305573531260786157778520355714546404969396636785212158795157150061234009104066272204842522845315933366875479909865511376378496858913069505156841546999431641934285768375288930624897554123457645240910092778141522250787043503421607865640750684777355038070292826601169743292775390970547741846635551683458548100481533763851741087310538462962461969071370189151481463954848892195451173421092163146719342282753904927444523558711019330683051139926895426945826969293518425656174026262291071095903438300265808824832360554864375563655839839043533312020963194347625169616738826499784954800218778398450543078423519664034304721871936026407219862619293321384828546483612520354964284519771493892445316557263832934664386076414616856516134250225006710265251606441155273128728103023526139284733496572743443745326567799536394928638240771350610875920591150697914986510393696954787152550673490997632283118614497597765680798108811336287292606860295211067405913820966371874735833075666966868542052956411573393121575143536470138072649248835885296373803238144716897642334800419944679700009018971674133321893065384842458369070894266748035520701962541855574644023539905474399150760585056884408419549087678483567676495949137999076313190990815775210532131440287997470639676281241883174812494057178502824369004675941580999825923739385535304954850775726208368862526920307329913168049414305823393072476092331498889950688431618999505103449029135720823459261366604895932344855866612201991810566478136905470855923816778453379505454791295479133047532830282062621393099180954025989114185850890722963621689206847983358011711964018133960129006194896925495321007385141751309694591803538328057064287492828237922481896553238250496158236035877672320506422436742024561483463541851882620602190781120218453688836673750857943988010780647338030045181500679798414124677236965608172807116458441500974130563930846000516090685295564637698682918875369836165980487823721145435507631828104243650776575264711569839631767819377441632169677500646520661089360994158727101913179428291996107506449953268077715218323959611002599749234523944657746297061447068358454933699910027905797560707604462576674066727540559432008142500763494373996395215428311303882719568374236962454428935309014849463019291885324611583036689403530431900421457377209490984835632595132267930630502925333723560908861199197162430140382933765968865958798954845361439308338636759169333617391731526054738820207260570463930226476867856571638578981921388844812577236274461516468216828525961852818008736457866628316065177768232780075809377494398371163833583922189703484081841701117311985414794814488562024214642656193815360625346005526224689359054528187678838620397648554064874386554957058112826339810297701841201350469366338643357767524004067809427731432490490134177757266117115821719590769948419350439760988542269635491039681775550342831417222698730967870605232022383096713858054504541261474517679088647920785527273945159139788655397457526217235443245387385608138292825050868061260391519736191780273321199169122762221436053561908874044313173018783053797755999500839288086735015167660876702965883027133733815722741706453658096461496850483795653071838835402224586272324459787697247198121162665543990731340580367614728036679879030365110463462295599027888102059248626323490787615816896494426756521789850819423469657956384105025598816032456660155530839522711567839089885210702153687511772267210064659213365335753569728605541883711689392181757683902353388106985194122672621552900475207113659139566398094517528198765825265884812444215377670723313652215861048708775992261328537652869218112303576237252469559915147475266907213725056807194236042414936687566207156281741624226617395052902645606487691698863262915490728468792258013556435250906208353108913655740425860377735807750181605043920904816660193025164009514711718386738001018492846702019991572953546206506743816883859488604835108911231527134586352269674879038121471445735534000950583986277501711824605377963584201067554609244007429693085641854610373352600102228945049676359639624186647451300623817972106710887469893365003642292601423272917104945108930478248285241571213738160699551581397702985325056926846747314247196754990873192512074739312851957163639222236750309909769873102356611258086586722000337169728683844180457596650513603297942190247341615316670605059996498539040647884666757758295146157782149637961483878102029518756084123277002630313410179124596597011530977737583236070199940609006622206350873609498173773358516495596321394235233673194357948430167171274257126015888865982245984581069058554118268774105227418803826164312446476600617832695667995256271638268640769108056383775152469950893002173848259145056510850398822227721581939948753978718763985303630013411349074385512048680429555046750779062928184480552975231841653877530154701066700607359019863716927121811703881652530428739354950493006788500400818218122478093584211095572258739384693807327254291317448156274613834731390426966536828879616867423356963260946636179177372148216766782231355554606782495312502190107537764278717365997351878812546123106998339037071444022309832878706924204010073197533704228418698565570309358461107975059743335968364498297048441956408224561130185175981320661444386018635532621027881311770142379602805913431981609035421214549133292924488531948632262589692840267805201144388969743624851715279323172347557563554391512728204856381823241340337155261034984772932089047867971347272818660737350794148521240005386451989780409722701638502110885430343505650477327733565920510817478306152522606953823592338074802307309424570995760713437991154328686568512818975068757519751226527034137261984825991756567162634490200275711453199212533652736569077019932896203293724943619817917373460980005436288648688600434602923125084922863602536125373299225031270823230059085565501844330270868327217604606732632037200224344981969394732674862886612094974335215192743539927681837276126384401747834217673613632411776300467967190222716561201935181861292277685330019322721179232719517923804184849091112100474495736380693066917320589561707578082571425894157969271313193631242415891909882108702492041253108521178154397196909095801670919023512680904495271783318378429240700212913161870547075962957798528662277223512537291402847083364993558335162042831020942696143315642953509261207905569409588069096130471575471069647353670190741091545581797662725000319417761454601437409692835806057517890752301826482681580011560981305510084146207355933170123356640161184507536235171517876870068384690450865648447749492946028665834638380264994005405755402603398846907730321679280216242679259126718721648055172205417747685724528358123636323987272898565067657843607855216172400379972355174074160080573542003294899703074569495056688385956858312712208507130219868732787000726757180118293706664375154329703480703204141706886423749487009140575006360755316629206356729765103676629964495232618762991263122721665584527956332508485529199592380378988345652640962395420056045009430331580115066614391923774627335955958778981497476956826116609052302804407088929829683431667884824954370782168531655836880926254180228440195556613702040807956874823120897859456980177275491277903266207728482575220362108771420795419341798193169489165273557903858771905344307259276995836738991812218275261080358198699434230649072963471284607448660274288489887719799912940768253771545484959687646203085028174555092551912544930883211994307376468902655180095021637669403100935801214776223635895827832834649748711275502720579475121335062832020309570181015647652620836997994741627928617675328969799445491418292750484188835723192061949610133322255493741125389996451983319988077244474837128366295195205316116392904659677748507007068619548387699195737874994522511498792789414980794085588964509766739618916425387973475090473994240220562000979294329484010913188218365282770030461227648691411150848776531800153635431788944322406755303780009499326114855346007698411501512134867670795225461352062697573213564793153949877091751954607214956218191978769417164790308535686830499680294681610966333279533558526326253678660082962328218564212189463415411474829471761564416027370688139298454642354772355639553031762936170252186336403536938060052084224218869612441598818842552088914598437299448914297611402599303508463832413321528006157815337151309466404880222281551692150162747823425737784450360935962931390086137958150200219312182601235509090159463717108258944062118846133186064674814533384666308534962637704992137762843510353738037325309501617266411293029400561336804906296106808648443728267367172963752417271594630682448038674792041425360545438124227497654535271052130239265774838767846998328236831780367866178190335931114347967836575313885137536629190917638526375596572585924051131065274041836226565078614996044646764578210078325544310220935778653826128559361085667593016969733797712137677603951992021707907469493890666782659880916289189881751344880066065421577809399742808894768178598751453777998541381415113885075920205404608870909979661682309657753198624827888238187267377219114161223502791342143064176956002267092769918944613852383717832298667496297757705293856871348043397516978301986971684230351425739915320019166832711734444761853813712819683852850357574606334079314194423956716746972363957560750421628433162316937371719980185146696215326445610127027214052962939142611999346192925151482220260719019786825292372738378045848126040425996422790728054312300676420853822650582372986097517349172486203032452661696240199943278224239137924473848929069492384434579915745186474151178819104803200357427186265638606869059972256342785646820829814027752958905575463492322142482867351075734264748531458797481098559314711419243280424227855548360114930459762334637347319960533577659886192155576778349719266695457558433611852679545370705203879731799882708343981457393303341887682216976239188661486019892041852744815843520143737312059022663894833399240456982169815255203765648731272990804851859548912976829705450098829593136544570053001058429613018410862771633482390020829450303623158128941316830674376440060024008396612533317064981748437394971371261253040578822725078365287466412192679322149690071279547411141350806619980017834410879439648837421236376004747704954100722303273730742183269335850595284274346143653876059362940587611933961604455550968750134645559307362585130015763576084911819570514901825294961764001653570328493989374878882199236888356454530720867348600310820463440344825559525243768650501270593857904141188817558157975098914874150204124452099215980444736728000710140204718950568646713759166574448875989113823861294406451514203966475760698937787571261592192416977472705379557911162374771512559326855478800168143821092725536330669885757781720514414653159787863866612231220166575229824674880370916588633488525448508952292240788828895934128668340707855691688785026498325886838867883422020730732534468842482456504931452451274310104473870282838051751783524469584960600285062211454061187061849200389293039680948574578316448800147494658550504289392159579366443614638485898760332120842040479559503505038301686319256632682316511501113666322981031559093818596403463404167217735478306737028221995724490494822170349968428075200340642338321275215829206364442199026257264164458489467770520185367758670642938302500934136133591769298568340979447679133111962828960409149310045618030585417607790703462538359312831919990859593680643005188559753105973690473616137528405369726004590534454462201477947197616140168180930540293669966393868386967597383991523636348773083404753609288790964576262908995702391969324355564115830196554560045148533626744324508393111747416621164630235614772152159999964735680795637746545509459652573183728432779807984838665401739708148949232184056656514576601867722806415646607026870754928526679975224872477636348016287993394089954017693347369935108274032855488375211436982331412189381378804285856150434014410909945961971045032500615267480759683323684051474189774090832205715646430491341473563551302414900826779835997388284366049269582136450304353764969235983059626806583864697136220431084364591985273776120688072872488254358094993054600678895077614490016398445875700963909114528980634515319908339472504145125614813242762367412396817990423435447500662135919531300304067684855050546312058385671363274685756814913167266838349526531385483528753911466638960018650546264967916109797865588691820172589950035380951781853787775973877014028524830403965504657436846657400795689513265883414863749625473598426211242497370048447017830804809475125008645713464785504240458931977906678846377360242484076009459842522973797948935081293628047479102640094064993943832262085649048374997072798944973450274270131179987868033070109080579150266901531659022848210045498366298899607914969901130588078737925737475910485797187393330492890160415921084576502579753541127565460498097431638170004401478720029161518706754321288601663586109435160009032609646337476622644194456676765720816459234327302510918725154588710475786886843871278036933753343372164819176099879086255008974326980041695709408081269788778006746021493973281526823155477690296410143648956180124344226413632416689946579726583405280559393457339356352993137990164160136998300983761250305470903927415376486046150811336559615136957779641353931365771538924518160522128365526021472053435561754080953548690623758411277377590789103943516436667888826370898602740672413270306973584396007118977946971476665417811887363820212988468100532761893790533545744022110476786749515476198440898564573081602845993020144716163598629039306056261027208923659305369043730996571463032489322049289110136441896562676046778364478723314018880892693240450492091776310443786475506606226606210559978470434478397965048928827690365780638135176229122046108998933371341014109434665834879216161755104377525989881028202472107105771896371111082491287224059372459267671431263827387700153606319171974716141149052200191868135966188601282572975463727955115201519871975590832076517947184025288785549216541989307714126380328663834376437575467722211494272845780850046907051678281072579163823513134720972884245272245820970278359574810443240770728556070312780365428872939566225342068998858233269671077660042345379143806640985119763074808563803914699277381332231107277729399699710214411879075997046484680253868820503164103382703489468144392100565717706475692289492268187462430032401737749909306609223974991769236875762663258593466588571457023813894636017372551110951234267250700170902035293487608703711674194649988723517012377133208958811099705165537548409065762383397586142175243665497075032017642801377895368768313442050763176973366708655815775933778257288623810398448406871833760690330273331457528041567102922528230200740048798062080152789332824515722968403057993530203313593733711600973156689683358568014017321018826361566035118651755072127512978650172805425275089399554692609866391325792351437050471727880683661994917346546368365025194027144645687109156503545241507454193926445209079924158853758304415860372334421088564149514090877591296342059588616918129755501540989944192010619038570450850360318107096631331396315283626640519122258530854907137219855654257687919498473228236252698546821054720885471193923152103542754181243876008481066829059854071830198357178035401714528066580855152906453730640258974075249398891643567187525812204482521003578371721574221219862324789806174192177581796161759559347172378967077219972439066651010318212913972987584576746219343091086041650365300993389284336567261313124012430351080961945006242037927357008352684401951073357282283374917214450626036224569149428945353547365296279116857294149564610540211220059664932794287451375542565572928392126097989950194410238595797918092327500547061328646447110953863321766154967198075066522477977728619564742471816271457972538331084983753602694723534742361718719808393887938375180821798130438597411697682993925158588323245409960196544565033873237055127747448924898419054525844247231562969468175805587419281614009034046626706134140158412487639417452076975538041490040504614892151448180947585027418402931089219342054440116706206807157507539787665891923100019846386657481859318109602446364150568843671836994047990858445657653128123770196872347118874738380718164586244079200393647647875919200287602697890302636882028292173461024541515981578904669534776441693914928781514858138646000987962392671667811775244402017537721426001965750374746918763554088116831747270936421967408683929063540966206403913367734907065877608679712236425097890878357480219020041095709470261494723117411830523638805628156818217276292606358734645005863737501119756065781131839817254301449854085890667313825149815365750671118589107733340708315923481479382846487204928835035211920599263033114497513086575810444542240819367420445590778494649699171805992078105108730830615506920548468861752030627318227149026898719334333624902444150364237929557057506674074715662106168726200949084312994913269399226631956085426678373675143405284189470852415926492529646399739120738681699458368808042043452715429474558172606105671065619285617477096618773561163812384706819232799887283150812997636740919047035497290709595336719041818774232764642953755925967613473755026688434973872328169898236960413653824999105454464650802675422728349342211372268670342521380808104979397915627469376233109851536239065685099861411073511958498088326434118499639510411240277596877101872890400358391565958107584935993463036045870246046216650494986877312955880245102531469548969542686833012632685363888517038078212827022595749442443582421619795900800004704472043654941119046401671263945237426610756754072738367116506358624382310310468501631341778559376270551939219948189603311273201667752761541973762650430868387910007921336860117374688215113889651423907178740920063976671811360684226356794351396398592441875212145517411170263272208904317576403980890926274232209910708063933114217227706220471667458968255904214779259752146132987309673661370257746561854116414920250861885088937444401444475874716606935644921923039606322625528573464913696092994623611697502777602033827090051063802226216848627409854777139210042614192767667639874310110307548028441916574379351778016248912708312108496150447045441700109385244076949105734311699893516580407436262834132731561176444222437723083144900591222273711820557663994477241243454599894280224625909605738662521008050009368196335305226777464395451017840483606551881566087728366885441969284252621432533302981998407348902183800638029828082382709980614635310136416754622308583110945307601812327890280807281696418069115502742917349312417439676324957938595348337607039191369289662182349657198161558216762089933230408962759700011021036279220375420414818836952201026818797276626432693088468682828116465830492600919098162394696495492367641951497164589506686995415250031004351150320665737947258061560772999518233943313239727178139456644271910063928298324162787738108052383701081620669367020843393981544767977694142429480225504430802002372297076044131777994733284356676310659573175851944729574593494052029925516104144940588659691579623735043401008620069850804742347482246789436569220679308036599351926886671110137250833519401276202586682539070590601767402616896620385878123746175217681963625371237977205833071579432074345625837980501010022212070953688505112755009366293233447196220598033114020131776044319457408293661843744397447296504637336209318939773431030549836455995761331361432258772763604336618119956794369202558162931151367144446611969287247482267952940999073317752337155396801243676707764914517853936594676942364267494068245317287817660903656675973121978271244162814160587584709552345379565373573512295417588514795361830633216668951540105764369299868592263634076000157994101538021929972869251434408992655894601402442095786868437097327602133247325060071807604725470574257912835039255398645342150831458578324754237477346395370732540646923505543067334758282584990471617927360208758122938662179384927077976417814343399979064757858785813606297621702256168613080816296928742654069269600286890828622770268718585372251469930636691444542419289475293346425786738312763098666460735178702225457338023434194731609116769269516303784050615657508298275454519778999110833284479974013972480172457106822691319143011871912550143613765347938263836999047615093810223597004963925503077452678356433158546840786536857196727420883929829318628619854056144247720544013147788676642154637491371997270374523380917033788536314357424374165410102231720123359665837412343787451860435250844942108511273501709615745774917884077368687055135402748092033709542452228976796961423444463853864659120916661574657412452833082214731309245976339879718462106773073937088855683800378261827565847076677056699455244237710823868883704733341735388938572732106701351167404206516854683414949891238837994822467369285539766408581014911180344268120206064386801772638410403424211908088280650686083309094808312836943695879338117626081402130353963517520997315562385360070876482605567441549410206394532354900983167691499446223081252967689673391510826324973514682804097264335551800085772242363196636370167908610986523419222899490813641364829175250317590767793930048367017184965068528555830801834289689570552400231260712653177255963543589348927171322959180158162967968954329221837528018582728791124284839395721960655843496587324063429419221710816164543741001312506505795974878941727999585431257302165947325106543004261734981045977197409978232310362572269907408206712201475901248949294215425760336048948015701903935288956333569213600915777792602477907146585995375209167202440817639342859938199150608839002560916292217380715279354107742121783705692100662884033828160804199587864731374113998229975027215038333854643340244841272760569843621534226790094474657678496950304691706972473906105417409237127410000383622453553485156179310705823970161366871803513379223945760271972222892023088587129926004414622870482296766733639398461378484981825393993629701438387188943004584951341222327784909479663268641983488115685102345976674599042312530079361455097157400237673676642033086092392381835990315493564243953307882606292356681667082167394029836188886665702732670473910245079937045979132378378852703960899095160163707062123578901186030271794214030700567578582335779459189226903562009100898095966613924399470198951700727610244013747941752884485568040157853188901294795263181149981111302038697153808362774107704966110372500177595925944058161083942836923165168927095705309134240030770456372400838452963062478395535434774235599896467332417627763061989915059821190224455503494851147371760558131782807061517244879310069251491678563385436385087545499499329490580772314982098580205671848761855977020692784766592905363889007238979754353465290565473074470981371531311426218847573344904692673992014003480568478223641445261405627730376104520602206306591354350459576099243528325025519291082963230173163354689661239047401242381467691499672191775254688780857857144604519878289255953428657413913852648970011707472410667218672410434562242662983636127820125732745384872819517990352945957250059973413768777365035478286443879507258758374518744327674050064345394498554438918415188886639714574447404239089679137545782564086806203708146226605583147167656763988256306640699756055815253841326352432846901679042817357344247979336280721260765255623756912048007087969618052385367313678676222408087085243799541507818722903182447295079494336130954368996695519110823869675948550065525339552216827825850245913606746784297338623232564422066483904207820644751652633147041611310493272945644220427882077619759151216263902204259058392514913817128360512132609205088626345570899348190023592500853528615412351671563109651544048378485194341265240536946748422126945880681477497368439294433774341660671570198110561939805864821669984247338738840111432798319777726413323178278877775812248929690275226385740898246218153402566051310634211396433667378857930195465092193287096893554448379308893350266982915047775281615874568673803540205966045694596438492216613710731851745306870563893606879927355475467243142822023425570818295669022650424622398963714724770058942143816281735463561099204718585235383624682857394470246142954093771859893047231475689370443262904224966105396341450856128298147762620599542701185188253569948691974794926446631146970905657651664132852715377141513454006435281487754526912478615526168787304548896912743111880324950887756626022067801413669264527980071116819017947976247730419661293428290361836006652004932766117856086851819880868828229627632141120079870216289813055154053407530004221231350608563417014472474022712795612436739231557917296078030601578682102281478209398928648098811269821927678887453322661070134663698162212657690300300668394044028315831745980875803548489097720131781886951156531692352821553810679351334398549139352555859483279961611153341203533076529971769250339984683835178352496444870423495552205190925711326260969970206642346380764249899714372364881256411186773357054846793041710213184968432541599021212326001880118599115870229645654150163749069873388244467412630494421013200222169169987635282031234500549585288098370805787102834638850600275621314551491732037142045274144288124042502885538974661315915827211675195103152273718341442990899260176383292893119629718354753288205474585392052259932424254886522219000656670184868641603748270440291874279379939197358518399119317350987660928613210430126805157033453483585993712635292298982526003442640151811329282083012049687016892553317678322363978286499169488216183971919043623765024789607774838018368523777443125168545736106776229731240258141256010573291142863876174594312866329483616435772401946336003435328011387534145277556369230195628051712526125139295470341419258641192698241655879568861073070603581599188689556262064995891396467382491645030077837683403539522845630394606725317839190185032755803113272410966858873336915336680027304278200208197394693034583426917345661233254072311859127081283068621112100119871818785283253986456970274219540715300712544826007314465087882716698433047466579807223669141073622383871752433090584453881901027780583608607421461278767952907766030315080082601741670153145909890381784336874492579377480436423428630317307245954681127450568830347098516139726193997213662682418662351981127466194296240851466413007945151733294924249799400388759628664598473372472139304399489802740960897545972073682561919087467526282814932839951534864112841682284369265857292145436901265948657774240280150730172121314816967389707925411398897152695727129423984602563149405512339193771744325742610689600790406703382999328792500506731122149053438488317347515163697187915677334686365330989235450892331954162273439123853096197980517490705876338777167539554723602394474291597731145726670961059659359252495570928398085263097991800981263061161411348494198214192162646896415552430074959505668686588927470603712638682426669857377363116487671576215384930166192239733092496118016529048433446200255219720804810600025928727296909286883313697737767704409534144124434358616493511478729111966788409947625381445428649045200922913374406477918324879508058771713667436438520971914636627678487648968018696787535246768453892690990163120310570956002112014983503911548339764656944698000868948963530195871103797227481007391145201923759220533281855402972450444615034460026072911397271968545925795871883380549935826226558051409922473238705671590480712576333246045015108606611840906566417481518119850693840842256145246448297204808081500703863919960179223566731568576951953703417508334958220372169269559857141485907821514083942565147652015649588506051654682943092677658023776118812760320911747454503086905273314472203872178161356071279453652406846449090720442831053048419370395229014394135004484052536399927898706507952109334012771217251163126975896729216576252433686549800381186207794524840880823072803345570481427399650200555578933281018980439393347317581795850712338177316897352233131587250733258974549747698811308781149332953672269395688125388996405941946760164315915518772897765758610580665880395226714755121109885397417328647346752788568364841950702037456781228743543791159392629562317068141425752156928408045496038523308927925687204208528208965241480600016926938311940061144501428581843604868295043580569142979535497354894647541768524772530844047707348584571878712440092559106631675811709115422023249372731826205486530122649707994053474040219478358182308626552986629992183966782241595421942119425724198546039197648259173585331634808093355902073428179257555841782894968872727540514302991894018161505720511281169012382593473024819603505534602853039239919832380212507695701105120927883503349273435138055454512712466282608564853958836820521601098302719158387466521664950493576417601418309017359094959460180181248886508049488820057288213976878670572815173881329984664206942975384482300583934139625758312838198798911128916534208318232435860826957982263401309448950127422684253001156492800010154845946697357355832181099423391382387280847438278432274110921671966784819225784636539849942111609791862608631680647465843822883013367737166677764796241853170339066517617844464814283161416271330051131254852275912805135937627826529621431302394122577481954138678778257083331738607828447715545309799132191078190689422354246535823902348044266891960817968960684252353920523592859380318336007235744563822539367269047562412609837238182365276516603022854827093643195572890267054561924917987963115899187041055683115380966747808128751045983035327266669078612327826536883279087003180741289196530108331845551307341973810907249124029508049050545537284850518965893292298521054722396856068783316194437399074841287920675986607399068779060288712994723827453628060932551977203066109804467551006264056436202994253669329718842523167740444214529502856951550452737200675473741337785392560122090275110492403051217192528588422464801289214908684893396101321476504436940201512743150575246341499692123884479599839023135082717119011701555420404478317304989710141263118198633337955360137704286961269404940058345140515310157413780573464943717138278166256710063168546111505040193787581364768726187900234838151881250868054945150429102782866541726955908864059145309878523159835592332794808108046294694030200551663511443703790338657722827335536911823311393277696335636545354243481370788511175583868370432220895666828020328425699355696855639507500231727721893274991330597117253997438540124943111206341750801718146454153016289120133094419050170537907849617924720559953401360777641769714258449935611261942225282440323150943109117559232525972064839956953076601436306649219384307813301058596561902004739573776373653593788335239305395576741602115894775640350580842793151130205123330863398044245901266729204452463102222014646194495349967248448195396673322697107849089847685909769998980107654171960621044568015783772734988847996717483143040599109060048395995466724406104619774853639328005642318471585077883292129888653680515230450891581845170520156147411399513849566247319093164879995990910752831363097578220465510497863449526674283264151606526965574618706245636317520413191304686660856669057092391394726949135202576141049002775650561254042017106454118690721034557166155319028631699091317078205949777755827443745292596111815912517686995843679983211600269784607169105422824155069016088792097745922135591479205388047853846148690914091318021732152412491509850002041591340199128260437053743295212568967607491674094088581622286111178623446122681373399671241336284555019592399763850515926411266104535950311098527290471391458405802175140997865246023712851180719661388850862654090383503667379418060838071980705388114675074593752649976545336300317240440235512802364378744990136909294981486160736014881652290533758869365710703532204935889893619424850179890502632250419710250735357947055063340792280482370545702370413852625777552379026454394399585307624434558952822266750127919684840910104691105436709760812412632352092869810163025186948741329341829018045653325202297728914106360189605386112306083175814674051556065447113608996919787156851756315568975260938680127244910930375811141126785030972236596814389035639658804483221623754167392021888867712551803736116704893109805973420552406635877627280776340534579225475905664282037738798645699296201041312626797535219532336373969261878704135067547663305769884779304011371080399936077503594775423635137770729455569036276743724163427329439446687274776342240651877795347037608413130449418120843343919666990806717167492636490651828490520742233758854168174666344665259741754157025256224871027302084257958376713715521570234223530477245099618607385989395019471190653108847226603709283984523780196260815170719410952314726850096702017570622745528640959736030196863832331233115759917598760713394213408044995739764853348247553756347972477666196255480241505292532503450182778988497357717216514567733089930314559830962119219493504762329636681572589527636624794252130434930152377927398277306942677296058248751958149538098791286683867575871845879989324263427056892907922901509716520095862317500784472700753157322175984518093775732451165146267226078510663173045858295191291073316820046598463274372868253009836706539892720407798045309812429353926087357215899775653869560691312027803553967399078341235245692336769553107563378627295700757059892814120031394863302175327470958578785245415506929854885757769974795917496066889991150574357775607277306945814556227260315256144838737691887138619642433854523143384092376328475100541367849148888856564760093400041608705550349313290459771688008732031602716493877676106852788206044033472001852191483486118340645990843453768970118124750308053478987072740860491789529134242531135306115075456491451929872817815161172718819550372970851316125221048908139250249076858537396084483480579709130166371956723676700539532147136152182546946111603901354832319566665264188422739611307425482937763773001994583767980760453158945111562636584859637123136670969407654116177297197590859115668683509627981775173261983898625596691443242854452174840426098100841617233218038081599241868936323147310361472748807738134468834413449534442026460607848456195030469472811784869650525814134349580310439996758515416047440367186863803498594010987168961623103596166541486557941044201905866222886237838554820712135259285755653887711872695276596406273776906834380189315247281333963329525331206089801787773036430548308009603833472559066155680592298979843906641139939390489663431282087970117400135829675030838113106223889687592007265595343065417850029412275129930637793818577643647404150970903236086634596076892688097139496036754298166527561679349396964751775000871723191015197397976326654579547565279976481002475205468475468466513785323522932181895275411048783194868045649677810975885602125979506971382439914676541373404260549473996765847459276812507768228383865022675388501984244197894523950513890771640014608999201015817551855913183338961070395308055745682204615774454471664764851405095155254220615173652098879057665236826236557011693765918001465723071720181483785227604069336917332543543820151500554816959286183762587106750189318453764296287146524740369774011734284912667420494129284885043259082905379898045167826045327075892940875224186685579470874039854887348859396292994486275281026757091510840931260074373474792670723944271536393864081204405494239126842467316763212192752901484000281118840196380360965303663487778414812521194243155307227482971570493749678001313706066950075389700607207478399388032095458217270531882986656836639578310650106161555760801338708700073717126148855137817883932936071652961483026113264339633938047911092007922632322669884496678627725976946256830251397214751517995192104215132730225332997090137553656231587246761178723979444087352780245364513001328693669889715291151013660756463201078029233447401169170247764504258847421675292108038227718282166958386750111204636763806308984862635720442801147987713782190581927711459199277745086926669424107440616671330240160957701770160229895043385792921514972837082089392905361553998984485058298536487924843491647113506599882853367483254466045042742010261689812692063423255507905408919758051286742071080498376098429979905504794659182635714682444500777472641387000446890451746333670483403912259842960768260731413103042649861969296293268187779245507552204598191380931955640249647996562798274307314189361688643374420561163913725498369166633353931403300378981908169612254137471885566879582831439103448369188255709446985451468143833190089637513358530355604487820685047816550328326958897730090802835400930478883013046554389602926357102549998617134368189544267700258272488828684802328135027026765391899314485711224735294489826166141597437104921080286464134371008029286404492277623666914821877043951748089176803830000628226075634645141984394781705922339690477255941999955489754512202399665489067547148540996990957570681860197386298088046318483117033426523956707260080724523685367692371476190624615331054287037143929465363019585938790950962045743796417483460857458097993947730328909580260858897773697303913069283919703276118269480690156029191596875467275863704407923801861629155995812789896617136151775001301181280214733832428783066436243076960078577091994616856586599606475686828828545530507954478324635270333741967147881568881971704054963997569683754355049983573970525340189884564072168679381337105653547679659538721085836037533432014050096288793536233903657174153277178006958998909194995827713584433892795206946959588993851963989573896681569081563715353820364025051148723016267654314902989328818884425583194196191989912543057126261785937053488031303956015272396868171977333319075387991893780600721865329913823068060033446870235747174960410532266344556908183539853461494327171475427125557450545461664860866951740934781375172950156828598971398880547204003454982175140577910312651910620353294887759698669680163076438948119540365733032263149564679351073948958936705757650613248666021281349168180272962487979765693757460601895644470850313806213284264491586408482399443278990253628360127903303139026622348860934510946137652073548513947975909342607777021787276433557749996304471235914880674451881480684073791904808456464145665849235677277102548519960123406503094677611153654996491011453425124914685092424598982434825826339302568768354517302343502497867728069861556362991644333157380033960708394353986413120561486811787316623919777792781055485047688560916658485978722629050175841768376872948714369613717766958505899058328527295813863582111271413734738299339391780318859520627464286175459876661031642405407832298421346812475286094575276813113391581006920611634734803256320117166932141234226156981919538706244376773088369817805932388302301175962950994544844935728034920198451595763903628963345448515260090113860127447355805435486184849405534890215913345844020500476350078507790873472673628600994752064682028950217485780833301253867777599751355990327066616241989152524570850940994731256438606745412626377040427622632419002343882641652810176351198535636479190865323889258429479643058082698151020796958758077237344689722467214957185999409910262457734035983972983687569455522111816580752261143713580479903451618990925429651830104552351995803862752063032139443147240645951428949092131722701257685888970405702661782140981988158448572122019115610317746359832960999387903905838873001059242278511153636190005094381833128046832950018699795937743605535186892009724881347926490277495185934082965558307074453299965027689459040928648965928113988465753162806722208697563434078123079592042868020911434037834104879258787927482713722255134439105502941848709807611985679136513922466020566661125224186443392179921384336614040261061275967598486880559564457372087114251278534809309748993032380505443255956779014575092803899149002048956856068415112410938437093437426951963342801041599645333881991309163511854104134075613391983804661342852559238518074209889986224507533367872722887443076008706702721278155187029088563949806776305934042503831269287714241467155237807971344224725041651638423708304993181037655951695297735909467294960300282097205843004161734753997424385729369342954587970117342579299055187662796580537210403538641014384665384587839627662240769731622279918560623880449862832594648408754417350330555092604636925269296012052480095366925146347816257617334347298060433796350647297911852770158008471547120311770517253831162643202473354728674564818896670045248368045160538597626454326562661666016763607195886673037413522139706192602314606833036981107879165415451437369002097920992680667514265422896685136765965907996600512371401393182754220134985034896935250445876517795968240255445432819082149267848130442257782601773869255010304787884108040531067665990110848956023945651339161627031751985393257883096068570457293506437748603172618053710890609908926324707281550232233400641245512259791041036035533689421184078338900229056541320655446646342230390538381003993445681931434703483485701658245008879738722385980529028675242973586307134721253236159710211581352780364110472743116160326756104077567807932596933923981383287932336522469325417489704052769766233722728384033619149075221448715760809732649917385989925748528040791812518799133124286961754186262758136868418326468615060644499474351240669948951126755481794315711312272265368912753811085667267856043297858226483341733503675507552471579305174891383574637857351949449877633794268108281943226610848779904947070553896663772826532068589268087882781716852252087432155275443095902913969885360682700242023117341685643671278342763159111463062480512833638816724997353873717435074918627526906505563074920741289574212989636435886208479987530141348659544670920202422846718156828677933178098619922242070971704293923112069755427821919342840471613421373922815729643089803059009037477628199956251536063948401272268474974426125690415790497972511072826370906342270162878308109231852170632348132163556544921021309525975087165249133076435372199597473867179868147194994401475216047929364655180181810165489482674491307359984731228735338871053157712537024515992453260610910792199397579098700830620907692039010117994048376246887087051050850783068933506772557940911951112883033936811553005269934407093181104225285097848248841724104388736182026302184700371952754711005547797008897229592870053279430271613580801159807071586352487760533837369135978693025508273099779848258256656153764530377139669653711503679360298737250149426904037056052154468958128734245890030567791675228075954646692806244540052411980963216357977354133125968539182217191240127110242079224512619349260570315322722443623380126620878274265839336862073738906999355738159016032317378414608682402213796981494729666253549896980694019314226129785304028449007678554319470724211819686175580325976253679640032299824433326066010541774259213832599041537198235133510876203467977523355125802095394492381591442884926291163764642688840644112994769422357724642001569107571567487495531019096909608404499426836504867249167446905356264622418516788451211871308720421563631705557463801769854476142456157885135225640603808851011371967804015711937625408289630978871536300001923216643492216751057863060693342154211403378534988296546682548375661213217668214111450634604543782439492938089259087519518992057081251470307508881856449967307762688851683343198396416208848151222552045071220548930573851366932188450602620113303374487769958555466381639376572980410310431350931626244091803593114498282032266823227352441959007559394395112028535967732556085064700305196900108931411713561242246803670596373922112754726326797638862829852780812131525462002779616829997452932561407043274555974160969808625188469506257333449273046850143009060466408871392265737512316599924519428429255769520580804897563866144337988601621680196881345655410689618669693606567436232503441512617270174675337719582442782163246494937681726973993350784640926164311590798864681636757581106548722698476123700481294544404426514457359113455101524397530571959352383173132213770321269548890521459642943314562192358952905761150937146775552489490727112059116730764059625014613934173837232217568571758348125502850488835202834528520097820122970892624499794246067452558909818929563463143345394127122056351377897973270218850034112626363102072393366845807295174485626016702165790162365850714653910276270245508262890836760795556272062343004536678579740037568279452924381244348657855795528198503738727750435413793433538791905975027753047865770465731121949767686621828091074645957282224334953339868911284742280657407365331857192875563441577432832333960925724582513372048763202447182521402562192588617129309296000579757892649601180452917565111983198600698029485625951164185759603121204014916861145907761854660793996992217031827779212051333322666771556777304839670467722912852492194542724491370511045558332450264414838090006441212855496656876579725661017189462554635052496748327875354792848291325622376948230098949771482227790401376786264889253286982871520759130662599767068063409885598547107533846871702554008969605802585079294983420058901546502885226251089340620586072159403538508118096869502199811451481711742821705596769942649311115638876584936115724307612188005979872872318486397110239591860047088979103742939464422008852213933775053004717341252700389548039050735789087446389842036433394548907171541313766287129431779043022369829352424003133590256336691044939931545850269326081301676211941344919202061312981588591232861660563749136533550907757605856278953005281085026224302671947157715019484945609057778439629027197777948136357535726980066980137366883439400113734514119099146475867520378514187638832920102851570341563098282018231148438531041710817824787631452092430636260246734884615709884466052798019322040314231544543672705133852755768070607638621398149985432047447001943631339244843506208285887840081823792187267338956369402501828751179879029900862292914043002408723144898502911117761803777805514466246802851547086959378919173816253785776006590111425239777660301197881904773414989527633785949460109810369764039823878586299309100375891946696812248105160906903014295203841771866640817980384925402676029565496275940602340182275523802625824880464758370611421994736263092655969668035231672292456967487386793927115638134457695619846189874674392223485299124967773280087954169095620074642693732398281813413173114104598590604330730932087137676552976265138179755895259857932425745553064485596185948104082855193635522265936167351212083562318408233310550353210865630530294623078736216846153928575415632030037336020346648921313951622661361086644441708550993572419504058653992463800724310205047344560245184369661143376733917117965236013860030836390509209065230897637717255705835123312774080032927569952167152920842292294830898962330268874678361355098750623449607976525243246289289603281590311989052102100782914316114162617564327215635457213384494900636564842465459279549991348848522175967844339337680038511781156667078494123152301824218970570758919861791092058014196291805570933185425352562053635267059341109136893522555282015142017090091881409727936434449026369418197509221989258346406908496800577988983415491004987521110212286368897905241315700197450744438390133340926383574069686866355743656683085236194993281957707528967887913382774615036157130105664468460798380460031320489570082868907981816035068752576216578719645148989885887960957951408212590786436969407512470609628523933852274028451525973484705537153812262317955061035762630772983244684707743253622640051738199852784914071218202578098125650925317490672264581016531276555106987046914544454501977443596419954051018120707091316083532046419752670181274685538971261997900166043560192658021428624378080431627024377780141539234094161677700858494809291662848418974678709641949557773406379338526094289837596251903047238785167261434842624107327040900739770623766386036044378588547763726363580147829063214340443179553730665977730452668051886401282107627951081227043656598543434729636885161270933733031801985716223120396397984769831303444852655846484697255021649065721700043451921303823925100504640529300247262502496590804771806721563140997744201687681977889665863758475783476292486097211014435331085347025704650769153844968819215947789887237450416855561025557633611479512370078698429184962749498424828404869337144501161752113338420313695834181665730063785193367464762029647971482405014948928289931157729219727464800646267544934179671360582558732040818224944093222123412325568765068008402732081218913777071305178447229718306646104668789910866211998914805711839952174098291304640887486590787343406329431500608874779700525909083533805625833096266029352751707650822173170065385804602169550257588412058201405640512347672069997903776307731984364267607968966318406650370956647078024903823658332312924943806907486501635452911519909461953470123825482330181520525229779338742404730867819346605847970989418339823046718710958372566329495052033525875732819352001620602910012344184402972008113785835344878264067339649009073179610301131301835528002716593093927538914700949396015174380652548983457320070276120014783209389494542846174070049824415566505459992528951161260968966913185459081928950159183123521571831343464434667751295139992569303576060296973349498040608591483391602490458396424572634763409108642170688669631629013052351242204340349660916808843288716784269163559350402660615076321310359657658939256437470404529511717631955958056249943983383084609491792204820268720597379482654282412921288654365001455857844804516053019770305051666754387488311446291966121677412299388776913591210975083759469974071164565627048615900341465118392069817111781043597238415740375329208905607708425180866678389846428967700314538149957096518214470173399721477046753364371730755847547617329296681768770805711375820338877397462153150857492592652841917125613494525952236651959075507243312772208288004660757103950464787131931377907615142146322393861948891411090690334278534193349611735907394900849645559696188990171344621175268538124912342917390391715814880454544544256111743052405362607142424838146488807711604995512306107083603776785058553739364206263555196540239292732964574030602089551833388953734204095861782309927729489996331637931235139275400907733843999330977411128271210876348039782835767529623505684331279144457657657099194904568021511797873861375453431348298009281229025089082057960334814979522403405846168822657261085737678521905741265326140359071794296608732938192355631420321039882667844062715862498701115233090567919743222786328281490683093641377624021017817947759968669685546391257113961851015946526468326413184989129840445668960032974085373632001074235722952115774803775586534732269160785277821808267759958989956133133725145411801191627381920863664210726001949189256501282932892656752881504049013449062069245644121904866611339292827126068565586560263528218821372909906007807935581208984969866303303267721051224200487906024954051042596689989506208594453196377625295841915332345485478936393948935664673137620782387018300566749968883669454910939115770449363877222588380382042774712805182255318103640384259167545610894482121059626266064967137856334717814853285812061114490005851349137525735058728481838031722086589218622337943735541703180394822761153528237117674832601199950274042256403632917799855191726548869069222422446821851422817846519432847554657381056965481335434472761170741975634646199220203497376446022183444293940640886072986950014234047342829294359596829395455662087895950556055088998800067249612761312648984758163473066276744039865164247305628492215941281592984978815488293644315376230369347029288441174504363873412803538554023204370208130154297858984672348616642604772572347349664023985189112510176795809421216007555377782982574035448530821514956991645863000815174009344166101696554686736634702784273908512592821961570417351460379350133244994953390128397566350927826392970455601748047896323262814843543915687617540814252399637688515391791643816425029591008340857959584319463497545594448429982530440343529214365759922940063162297543597052386813223907772223719791307388236924605627255393798440486215217634832020238577681279027506293086480278167891017537415772752762737227828811366934405678391403154685894603911094580868357799629465930373382470935253749917032512670178359307314481065422308706367480657301796048379821318201357729449050953472455583198955055629717004249078970308628936487164124400057972145433288559017925978739449396787899950233448497281107887615824154753190446804131837834178250455342116313255240039021291325777231208083050735446312567631263832279424791792092105068591491625190558802755174151080246848336572157743309045055535065229533184630675690593270578859671837758048136646164094659347383609027997298249344814966349242422387345825453434066855783133443465022165685914368980782530940148267893804572682372953074358031276374548151005636027933715641544903585520142277324922181490272561291478283447046881814903023310924200093896202324594328507564422966318624757796997828742247032222290663098873763173322957109583769326813620264673112450944247471841195981016398833358349219326970199476057436506179088041643314245299208528212601158456936636595916539004271674281396857824195112192841287137481281876988515776285014905765281301164745171111323985207124063483605661251937628311311392576974859189823872777084505291666102092872811105936218402370513673315146851955623363689214841604063543312316920342021319236438850701684548132155629910280530883318162146185181283771099285165594649683240097179962085345328190202654799472808717844349816286017181382853350582677491564089921758153042539526816288325690344556402241066588276936482968410474116792568165932203914157304315084992411482412191152501375169879936221607887726131354319745719614210614690451314666215142284611000405568297015089681379055066893027071938371093815543642705079877031482887479368256225571545149524058654817266988259971664567436255442435569252409799777537137347662522873318677057957683577646409944350929080468609408530550590288205646158918873026012145253834294531940059263713657134669989637268139284256442774184414499141339808241966669928628322126329674682935372741126064216788567677239866059016062954187841412358323745756984979682138800330768437140145030452975528416325573251775010966407604126489484049087336747872763898968409680897547096177034058405495583959258774885238386595068569863528116564242789584608987416120272493603106994751586420074042591911153565669714636857749237428207081944062627978281431322800024311492383880415854722448489098128403046905167016663821201634352481151140571094598306151150817211011654779950950174805741728524696998402000179924753256755372312093616265627749896297196539468706129852159547707972216752517745028525890714318443903590967688683320523695763070504675381771670937621198225818234954878265045787208975039990483546547134514660403722194493809746024309288737395754938464462776130143447065943836647571417107025196171564905645584455644709465050136649926275124548201962834712180145514184567896322036666716795947141729212229312171151685326070003198064241226558912319620639241785718813275009681237294882221944230631972974719378666216341161177500433666234578001687255659106418554324983140373092251145922725941529142854017712071444233087378764959887512317775454271771701242604624939709603966852640077223274288535860939244029718230952393802538983443988140024301036701148725135015406177310123672247337203771647233638909361218422930159508451402040938661363961479198246442097897923705397172600530225574087318631502334850675457362791201376048194250271937228803586828335181294868842424374113735731236125276447757337942005822594644404970541072418955268048951749580857496912050179302407167643705625631948480244147775877319756558474880916489623938364139035669814498721978600875577815521857826368153192168976339698400586350709576379697903885390022848146312635414865942129683640169418160405211649632699857934162470049670788494573097595281648067903579133395301136807149076125711516870041209971943356669416466904972859621152289956084721775590723869487146453747624601541369889824450315579813738211910678222593746862226495026512606460998255079688399495491355024283289171221551615803433915023262535987768117197148202748875159784917008144729229117679380908516494136243758873617455689701658622090776721514628138661045067220193805252027403052307288330328121482552085648072023525888973229932216238267733797919556689222580828712119116955563743338244187411127432745777367145463875934661523422042026548140786382460834867287978491800511208554118208931638005590578781455688582719947833360324252106271692369399901043509019639579971817660632588204590811121060369179346432207797195640198051938998592060659733414599556997315374859492744301222363365148771792718730377024462446207310727174520418451454049987890035690902526510670193165214960832728998180370135438700804057502735203498211399676459832555045900485792936014109328147899109723395635166250297464961081186517590925069741140017235063386512358259262975530423182374798228618133355401126178547009786045603858088384560329485931818105924351187399278324433676338793909242203922851464983048671633967803398045323597603789386800014620104199551245150371387406729886477073136516517720954708087609493166796173872427140204397921781848974643699750294498001749843449797455082825465590140796854849081106673536215932602509589037550101378773197267332493558280272393486672001017156578665243364605227332587815064356156531111047116679510716494945537624063591563594844353824461589856352610119088365443813241393857961277486822773326154820688346442023756159282404852447755900292554634686272784475898186487281503169031623305624720770843530992450872034717577352432404722946625443648969124071380791598469436341999990212762984407297047495889758189352643500086998457824884125801657850879480218589078088450454092001915557602210338324244039968107905398845061816667930698090662864050062942237986323890818277782111396125396791460082415943823471662022958908782724145288462497296261011420748242662447540657373592924121821634166089865123627715975802252151376757700672226092420691523419405989988269958584563719799681013492485194986545059447301746418125378966540393415081662294169448903666770546980157615444084130841808563419692533655737079970217920748290768691296333327235614744872271899217842315633281902580211324130419016304104780729600375092332723606295793609387889916941116554490306078121342898617336555278348937050364716587008253819805542814260522709316650634667348311951990771288629407779508607953684558603901072922957789539544885325842376298944701684721044209661271652763950891716829351920478229937285806305009033540341710281251560244341035899426676673401111434518709391940672709701460601857703014648430192250167767288757883658755309468071318827439878854156320844205803628756191883208108858920023438580800644194699901291510392327422416142578790152809011882598764857404620106419118839262048464591840771195486619358262843424323368812291375823152607047548756421204686076875803089521192561250114021448443067130262928280805832133916995882767932184193081258131961315954453971522040648034323025598169883261254624677738400478037427975670351847330961036191381194946705035776995465956564987401202261448130568873137821020932496851695882814191856847764334720625441081792996724967739374651618440957877916903320383762328852619021486703434342964682765548926355830800121133035685282546705511196178931294093116281318829090159684612465187785154239100982816083452694636591646377224946742957040150968327171684562180201261499236281804806520476342322438081789266198813436734061268710838816607839450458317031410914476274046782611339114961468351313640775159627265689016968660335637209142527799656400871725209803297712445678579563561533671679143333522953566404714983522962429025152182240381163174609366855035788807212800859739633268411526704234873819530151203337317985145158673962041570797111801790285906868043930475538232362811775053995336713869766029208550662804813620702521903053436684849294151935192650104120232175391568591037626492686225344073908923613090420137441969885229576515077102974954443916661032919403720704866130060052609317854294334497118588013922361587797720596599068131585659509482991080643289404317629627483243645568021476870365549827715036607705975999649549001431902830054164241955939333317943746059685729428793422987191968036571352991149122537593659206982994590617552579576890889119526965749757118932528327111575287113722505090508113941245154714344126314921579899435065611715008595101756417609714438154850248137504193822490300881758172854697841844608706651228792607657976257011409079897751976244813395177637816447477275046759731128451032355199639280875999783317092829294625110967679065965195935751746117321637118388391115297539510587914111277439922074653757271982491128884446103332197057202939959572456157175544824344318310327327446777929163411041793581831843069209844001582922997954456908148182807180673682220980645527785268396923480565554539773042657876041177110042723559354179076371642841445542737107754163113998732485202999411808889420748625548247456834945809251916483114570614449514123829184958962004028244995473383725915541933807658875224692991546117922137065919967643227776460304605301424311861771472863264009067075768624277703245224189224244262704110077076361160557849429588307005849534419483645744186536433903120941798751834459693046083940892017724023985294333902071323351858110235740037294593497143643380159114327329918863644900781890777068637852019092775244701869473716917312365638777088153592054666682586488996040283973109051331251014105535160818224191816867521076615669083115595094022891923619031606843761288464053192746745218642608785384082023031469374151461349761653854463182046784017191953019128946899790779618755999014966587727085406839805085198804895057793808378596073311422313454781618019363125896124169772930341482186003862895274072941672415240482590425941084383506395044523276006696135901139797020997744623875437715145580079445042036827027083783696333012292618513065624657204062761786773395211406796201820902114895738955904587859231435354088501322271257955136566496052010546367637722845409865986738656621966924068074080631138620089613399891888461634773746470952784863831225192628493401974191573479633966222639307271544964345532376235104017576909379086861281811971543829448415445350525060057438037606622245324336519218512477200132396483089550298104225886687597112437864109472045776328984025521203294689729739433774704793212610037463307544521424334477597507336369671468661388593041608244811436390250570383387390633724680697734398624584588982237902150672102881906474162185918321621996971242323592635832387538162269053406216038306681079065589747232344282341049134725962735270655114080224910714341854267932668465367824828108360712944532475777147688579451259707469324682429522641020398445214940617091798786716675221812727050078574638346104281154789940594521024172325909284268877909093511529738702225488485472592099599714173603935825004361305681786748202712018024814122061241065390835267019844341545741460832099196795957791218956666610345528818992794038367174608482562438800866359722084501594684723508099954828750704522753171482350487914245603546274369208127032472326924139794163130180441203082749642037206422122182823192437842446968191218939433685051868231767683120829393620432501055109150453447633188480052193610505405800227421474309151985767931180836762801050066323378645322009583858408195057193934086175140865829289336141850036160380404486800678541500685541709491101212509727014776129647913258910989728541297597874356443222762905198162315923928516973492629352360345236326545365001057228783254304622645116054929198502782986824261704246609328316813142857800615648847392402461033093940458635882543778784513501058555307022754693827617401693880113787100584897987871957463748650062757591663589512448946707709287951742015811763936130633541904418413099983494745482337138952748131078035278861431401945760009816391697699270950113477811126268142164001187960317173002251934711331479770923969510521570682074426899345055204113641039215039889618501538972362229439941395762463104706356632297583217726640798436476518248205079294758173367678953693394668950820710305254136546049189394164703381540690323221347387826415133183958804757946463667031963996167731020024515148367442476391495968484695892323404693882714204775586464525215459131522497987291988153510912078704664194111303721928990343181964114753408533560729511642531553683026942479782534172519625839585584950373197914900156209893277243679403709853152243113011300625764189129295362825330027665837839912038695759135180247425341461870225923077000557163769056139917084907473844516386396289311895172563422222889495547736282915608552596425117998865626526217349898969755532524010424236509642732783071833151698716557184349085720727001902528008833944798857616732939756474431758060510842674879139957815482857634556429068444468927255846166428075877248966043293767340355282200115509636678655474287347058674026736682216814936959121049243443423890552016330709602029733603564507863938483886802773503032916644600549729467478037143239125972358011634580063296973530365746476393611023575442255760011127798914587161799274292272867275284532190622030626094827965950268926284843258929100351428881781272387205743044250802673787220798087671534474578904009778997424983837745526908078022912513092564285079230468292615783583647484932638494145381159390197631977443051334002711544856099550086029111872100284848748516985801956821280668917944276196712595322933727516775720141595241285500277288383211678745867764014317175621937870094914532139213261179272923829872266811505056392358130818218816671008596109316005996932330567747302702218906603724857204923876150477793029646166840001872904099161343032381594294345763139877253266755534378727617215334040457670665467318424164302870787180450181285831664493463635622614692228313907787757547001911337363688362291726816066845227467916980520833863736664307564932915186803981374266599197223945439431743080104081416946928847107457281339243823800764262698906077115137212003069886186641952846114689079483191133880816101918296029870144625493046131280042933839207840526725165302337433080325178704932085365203019997599133863906704288158614555781114460301212810010961981052162879265155487230217134377887556288768230824672882037437948114759329368702744904188611267028191547071314923932245647996336302739256834240063579191463255688611166222936675391188346384699030735158156382816952083062650035488610792395907766217048777359349387259359937831073013363497203441767561247951706944505710734211866256240706671059146420932912274845258208123458499336423371516152871286817575474269669085231386288253657794844417667507824304705126413085884307070865882111263965372754787265152259580485489699758646931777014140281205894249048669246800657108053635907529820484052652612911641442783842395348873951093616762194120370893459083316815758692271296165707116516908328096273434088385738523024349016717191137972940711579321094490245060685024911623468073148715107249084617216674645196300026644335770875394208708109870232794937801852757154666464678458152923222936877713695643713462213379182830120471988441050503654561573200793711385630586788163552340550791485459172186250774652250247952592375849605490932662851655874902529591607884288723854805984612243487482036345446962424155936801163117896098662406504541176410630594131492482776754554763585606096158620098269617175268572210937715281364832620587388681706932322178901111771905065705413138300603161530257414087832520938746950093869300125933650693308528521237810955333324891440262251131359740730052784837252737599078756797819769298102613921569549786307981471161279533124739380382368429061710559793391521608373940626835624683717815436395036427531383132332441853802285427604169858038213291724942590079802699340098807904375892466778699494943787926697723160596751740478796272210155476495560296860192701524584339421566340611564035485466385226117883689257257987386863168594186551477671831724560790577788145370442931319532452400788169535479287129181978410949880418175590784030342784963928260948310447148168246797678926709349685389257969506941630254585715149305222228039922301123015444206045173337751069468404839755942338461789944657670163794228342090943039401251311584942008584134824118135134512722708660507400083585080078333796975995768483613837472525845420328470963232759779438116530939077299976356050724587269502984796800719663240729225613693402254916320475266285946427749977739740909652704901564972482905994237585637489694551650801775068010314746545031107053884756818277133318681659161973653525706596558672233000466225856340573489248597639784490693453579786593012292948738533922814047734940586035380136026509526583266280799330708308262649079992857460116109182086699320540251417278540833060586655806282037391888736665010710977901405123616897054587306309495558932214861455089462692794414966967743542159456504287393518674343599590872035601497681389828583119317124842365269531355183754655722543925121795365669197337005168127144583842960721028582760363436474832932364239080466448094981897791380415554828859431042345585781535874337635124123022435139896272754051477824051795643971251410517081747301863633114138689365171923173976548559983476797861421181474941600004733693418683153373282399586476682546704101167514454623266829572525786098603665313645187173903287196876888908808480105870012741002412754566641563913225902186612527439195186262000177253678913959936957695313070212485970248105708408218707297472444454855721043595536937112255677161217826557374791134981837600052630503047250334420735604593396004424766241081774922644544547454001731887549989410668855401403544096999656926144061700417619047796640440250879222367839280489019208317535185920990969715371619560470920844917492040181799364350395862776146336143710697964745440870247373937401605816082973880802980424043566120864367430827200461751054569023039947277513042927683708755434493828059842681885389417370178267457498229168686904831583312210482120861919103836944440872875385779478496931479074003869916037802365266322832606153941700989377069245076651201020400259711222778670384112925737853299550494311105100113113318129415136951817368078232949769830501403529134599797567973024847321647399241411232360384737162445973421455690079401291445075813673684001302456662935938085273065909279715237452787264057347926860511337719030883675668766341844060070896847812860907771310307289012387922736597001018897701658533148803153697973001435371324814970870161492907992711281653385339853199268535330683263389598862691865243833323517623217853025158203942036007572850462721656023349554048389187226550473344613596921941192730651984534680448370169805752432081095814779186160044583439373412437923276399393983482273102923624079928145341848799595616096428220180102691944067609675239265003371554059911274686779430369419733221056273515646211158675220903543118109140960923517950106172354627029263060680101184517411092741964338006725976276379298846532846374284445621178573598003285171870643373867830849290278896383050954612027097816907793275696782478690376084068314961878475526892191529074845596042515619376834745626717031894560917754134590424558690528301617477636821757398627170418096673964337838321254894493173775548115642056171828538737067343923390186258718188534942901183831575431842124218022578049945908322364405773264278830400427918028386903787486033271861579976647812237956025484937306041549147994017974845612449135736519972443001941060515014089330546209786413285354066213761686154399094421481612719324252666988407136937396581209441288251068967889053994279987550693943320000471646875321177652676076556488447085474590259142334036609922114341524730954555150207909165611676481823915385828795246766433509287823366203963898291153659663612776784427259307578754250750564294837455035354700792989375624445925054201441538901329106940717335004226170495165937984702124255690280318959964613927581697041490255659160459266313082393043554738514244991467531662807550222780106805725534787208863728700925962888758259998121717644565965695774344763686451425304382079280574964961702124687911635665754210376618531377160722647428081666138397982248803567408079123854799346930331143997696833023996972529793067002598957930173308028774700910214347339550913488748115287533066409735543845447575890556949248155457600380136457376065068306536464669692024163400223811454409916332495054791368464364244503886558346748513471644385891338159788644122144217802123638449574269920510738972613714867333764770426432912204398574581836940338809370298507773366436742136276804711203139681573315775917430112600565155774334657339823134554508637913227701958891487080144115484605691982453886230648284920496280878884179843817791130935549153742147361062599636570098988056113554426794284865107487802444590473729200242402595606381880220383354979134460717143951330110239516628118209256654497896715999886449753264153966499401569943114471730963772918005806051249651896275759799984055972149592090006476697130783906460099189986091068753801507619202874452423139570618339424028010376253383378355279965672661753728275771713232868714020585822229101490136666347695790505650655325322587584556454187217211854427824145143502052667464944730327958981554614391776734585842453987584923261563005621452021742113289289748167430425798845483256286489656419646967380873459089076844220377989293494707041452482189173511844988525305447398652139794958351594613652717712293194630979989176774453786111511889377553972958948837184121141537628814979630504789849226580949201140523521134161441005323430604409392229147493518072202304993511350787289273806280341119335687545339522113234404468179741309750285864337989385281541798372103816009759887652852129573273971630113261417236858285855528474614042318893840822900988816966396064989370914673013453645320321692461632981930788270961002552375894291160575291995612119021764048371310130277721990234550024590099464850922758074095675939225326858513930001252138426434405018783838494983920460749853029326140741222571694355964980161314655668801086240991970370048002138325353927564981386740029206421741493637065652431222512976233593100366421492864792329155491683790456239775190358063747196802313880230422887030594971697161389783634059531578332918072452056586792671078117283389956678759193582973544521983863817434379622541668607121773059375324604965369399780971259258692593088885805417649277961141536428989130698439267323458166880743123681882739768417200761964115092221903012769791250659739101397397602566058640191968823238185889254116599502332573849532463642111748851390162552118692376717104340400559350405219924925956888925095369845193855799196615775777011538054921851493879803162043978194907379785078276281371399761810164210834847966947281987778528989664399423614337264354611770329548853865653280702677399582643351252907004398154204321281888117272227489116789312837499060110205719208083436346813985045286765529530840191322223326768918397541366615035256120528921723473323428944461815161914842211668876124626397149771261696734773711961386929551335803819417912598682992246605924321998415678932979949627901327873150053558934599629340087053758782011085920116286692825634800963512445130387909996023283042514100086426870121835903597534078925111523675607509957054713216481743458257212006628960325306479705180779866718264446423717931893764112497076248290335744023209015988204460901201164498407763164881336977552593576563533949306359619065616815507681417766407731039294399049041569052586685780723275616521995923499142195104979652729309514348269703328845889178371687617681497261475590129540498065396524861176741598441377034455132844274577829345758151894772851251228254288057165360697410950874351586752632015705472904084079796262848530559812229188356299149804852087509459261806908559104164353483992894505796556655652486259045963373062893744222815303232448670786947638329288185677960539402921497043240022544544685212425158187267523175313751152358154429987972479122610987466518096565212282745463440368590226941556827006176301908234491214867508259062722024328087451782081544966412803808071231021596366949728376556370693565002461132322017329200917153759525395031780757851946424745090573445432047221987671550409786935195484791939608597359245021630876380354190196422832149339229166044534005851020965819391155961965209754736190136086134855541726592753278112760147249027002995863760175765651832951836451060027467572997314178202949421902969518225386671387728452100572112479474197196737368501769961767453283838785660466574637258976665915183894121226029063994236975559409170306189309556383009705880285279839530200100266775037319392887048937418419312179867136138185956093298180144008491860300193450543053403285063906068931188725069071892134823180339198696741032323993197589950734626714441693632655666133146987019538232477718760028519976595719559203483346482875477800887605373817893403965659062465574117464095566460469880878879062079171483920265335502807994944591517679171621435503740041736439624283241964234117132448246158389805194019355168517923725768933981775175283361602435885933784292685452330406697780553786160058150676480308228068803154063297128989367751149796318513936666040164141119064304034603412004259270311396233038172818382912670374675516236782135085892047234959350027289991622014229384486553850777321492422615056235844726279628944486156288574436288950283105348936878896265395261848196672632309127088784240645101273168930491544303183081887497890413772709202960187591812058208465579620532645204965848263127196753876120002351633813637344613600808670359340134425615630492025626703511296911084092018975852528547279443463998620943661335981404816481828013257247143455486708761762620320949287833341827822553560502389038632488156473080668601153708703602362045883627425105747842246374317391475129555488626931451148753676898805447783814875874803342257973649410990456247197717240870401633456594587352327924389255940353932936679111997978457978498653538452945975545189487452219134380211367516959379623268193622948632350973482173876800302981056701529879498945155423496060628465141076787864316059416190241659981576239207367995837309712113294201959507444350812770301933668324154780542727309466544259518277557521743124690144445936979015768107933630286741601834884522029554487569459720199324275536945595204683346913947967153278150595155634695235242813670124878449069923448306124727666404603492173516350910397786343246380468189023148699537518246501868765331706063849464288217018142775697475357257475127732866969939752948391353085744865510052268589987471774619262971869088167183958689924044271592435248515201516335371283691990452803243833478889044685780334335043428164561816165573977309310513706360545509012832071013057868160010249308997569451345334779459416443014484718983854616789703831052552417103064966677435849889649870162065242377042833281352194672601036215524173757157320297894933865850484107397331214160095008803277583270287328906131011021691987467358480754087909914875019834154982395288931653184090088362137460347275116456344121763275192710907576463280937530395101922848634273547677480679837620696991481450124931674977136726790629654963902896586048038941096275399915788906345279284303672992882799671340963731173482017953921476350095885715006361838857435461325788878310873823373226101924376624930945142139056777983261464196344325221447916964297710992221994741311119561252070212291581895918476241526324094535597472556994965131039921402586305050719905732836710351623664823819319131916083742425070252609983088967835486825456492726938672419515764823912277789892998538288925398728384447393657732934966986986863514439500878988397661247329907480305614624581916310907465416335128843510739083392439364686138894339828380795588646323331275324322599686488039265314769704982143676856768686227190427953884405421879246310543024958308131474835275092639381213722144943695480557797017512178934428717741926024275315841794344812080983908138812286815370903936529129831301705590703692120675430843913770619791649453191943668480109416649906436942438089341229646414029674420159189879862373677599426738300423192831015536158165842247338182995062570948178467708866825994347528125621984744108741239565063246816082415132158078491323768062632874494051380136230282439149034429916491770284172398145557835507988868940355766587163884150705924890515705014253970234665676177404344819926423661368297049752265284114724908794169369269029794188893985423055591762840306797019846279828371546038934289495624698614256704731840116520554714556861900391051911236666090541747563272283154182369066936407930484821123538341863968086856921101743849641291302257409524296829602466470138105338137219920646377739806260489690069401932169130358146718189503829654703930717240403284173484512703854578236406389128606679727964937675927954297375714797443011247620996681256677819289328683870098768519303667224310113615899296793777245503647550411379851894471668863095681299097563476049103571043389841882017340754037805604356258385453170760585093395241866823482881105671135083491681228675401183090733525417966911384892463711282646978790409651951502646844454470247007980992013227405898829062559788274061935611410037115269336649229960776205163101699468792148268899293327430895113783872272333637183937285962205566957437460078154502074243413511076719893270841539471441842069931844927652355606299538741066627288523096104452056971127291929866529038514254517810453042900388748546492923738876604763165458261569404424649935937073904488601594114922863570268712961353383776050447997300523918388959794428054582161344495420596694636838610990704247159124811792176665197970837755606489027226854999134709563323878463725304455443420678325005373248493430147644041564491250321529400620443130212526938538779077799697685512812265227311372185952710680682121424986222683746539072638166932235145525579594859632421156741205825605361099832811968361068858785387841041342052700430967249876200622540025156872689067925258771110991672335526659161419610721120857875515306062024770853429659635070502304559524002114042289967196177493244347389303764621145546994806807544266484553315061176807861802885381895638161936112941826814339257109203954419911173431941809343628263483453458636532166595972004949748845523238515195294046357472415632871743747376814251283868137444219823935504455921118678181940892028685286857114402968613474161138788191362751633907500054279023500687107757865364456657789247371482969324758752481126219561580144340496357451325938487027602561947337294201801146326473174091491568871292529551590906706651613957247353230570268088945827215835559139716315631753461929813873028517191066064394336020152408100288621353972229532549998148865326750096927770498506377195614178597755900980517405597401190989334077847442817093946824688916507250802927873457927233245946734554236177699857865568382766477575025133239961148534685941537012879253962990612618591032864164995103414946761037645619793335103285003344625337935701819214074023326807179198183467185964065958612617740643387014437373272441723616684485112325084195163637713803288630376062923010227405411619940391430910075978532223931355305521404971871323477696177812967857968482331926953680267601294620534726813094656604790171275526380604156482413545995637006411572146348234355232953433296253249377724626531645710072899014182364203631373681240252303377929004506769793993744810567787092554183279687381190165987434267719365653303396558079526170070712025891810319459381237603700864416497678468687381576666118955525384829623862987804216714967762855185823834461430476080092798877509960150442314230026040520974101624168504555528912057130986273303273466465271973299556201114143904789725818480423962158892060035226656255372774114852194836257608580178289742967139472568134911785659087606023111210695627129064377081488004758973240721206872447242637077074839050597653298070171159993530796000650770469023386383099624661469638752729658683182314601092271105855097285595682166547324718946991988323577947570269393871889401118597202311863155946958805575607774344217200399713758171433212545033982924011202618917181111441483247957416615506083028851042834438159945864123359796635938821755656983793993792399748911221440546628287741549929706088758012772619945994519499824741502960922647946408655747696305259588907348032368752729889091474912994854825448853806323448802019741715236564579385571852902110708362541482090324025936832820674025966499821915726428538318528022225032827161146061240111477097145688003199139954524750320082486154782928398867276260875616019259034930950764284116486661367089820171414073879413765229080894308711677592415012024546751508982209221424513565006064640523065746205706777126252960920509008299974968736711726744342858768178300363459624553140174218434074975459632378458508091440992015052413044517188948850099363133006483987692112866500649784734383614779208595644518063958149404856229520341648597902339055649982478536574501651976267022776925037958232772207607387858783277472172186230563089484908035224336430301530039910941984629439619904992770425138000147511266883040495381392234473437102946932956663149951538211012410280187853160577801847882911951012276390083469607146042130615516300995382933965581286427547265306857590447801801381111582277220099743531025996467683555341279072607381991632625690226155308386031752103946737479165018205156425356454468181612864243665969234554829249468070632225844480333127140602990698679553937435493372503429790393100024827291766814775310914400230605258066373240500538012933117203509154992452179360195476159149362396518713966530404640692081513207644550084263515674828579991059174169439020782031367669281169982115096508322858804079211981730944885636261253910073568607695262933518759732813670019116500007183184772356390686514628441442788045137330060647683582316799117051482362980205001085670566391020000412300642768559377401132354835173501657521305886149108308389272918411413022147522498852880713581812432326833746597083845900494336866057262778737413140052614359298181910830040322418442113420214259820209756185774100394088603791506536953444571333388466097390712253839882423600134189883003173330053588192911205066783957566875066264682646142110125215339766311687587370760424110018446966826618359407333901896330471222208837876380447259206316266121730687099091242821930202521423701250450943224308405730402257294472173698179423751804298367954367132140776041977884728091555025329139837160238134988985275796062963834792023390662151601682203522210668757226565263707741560066571604549648808282597457461135766083597064008430376226262527304401058343283187279979580499472416334076537026475571019244408706554708949456019369937841302157784612338597631831776839742527135098899048180804253455549614404191700595601700808964326538451022029372942813676089720304579096755309603888702100702800420023945618653642638812056966956049164781608968644835182417650790372809800099261540825438303310000200396194076093639148324201921184946262967590345372700006753632561727761685210543103911077852067967563503263239198787615937049176434247136098937304587054244720819848589268527465970872378751889238485700189461995157111293504893222026819881114684512519718103844128567676591044161804362486205389142290184468125499754952317095217409242359058035238658217275106503005324017889123082386837503733300543605608524946758320422169560171720455402515935410738038723135126417527645632083966295115348986733794412985593802322727034828742373858791372533693439114245165208765299204653087803264531840499286619174885236304277472145138415745633148626316196575516428724849359956975105270520094443303809909520075099724929874695945301449098313784558222883737623588627237705418221947065571105398875333861074494667480634767011275548102730557124167636143042446921147321131066358810216120756738597467131405797613785389795922312582255992474391883544872223706201688497555035048010350829682622482897777436970194346508647058698079771129379779618608712023767972565825569945569810348963116700981107155153709318594232591410314202043650633787434760304398007160279027591276358865039519189645302686860273008861853888967690886709272262898105264974249480131489177004230819652420605240218015677072896147896339890274138021176385182817360677827796585555055698170269844005931058535440807783625563365489261534595103672654375514532113665248258230562044322206884727163590634441201075620394368147649255479875822054787130940230505656097730906254101020918479638826122822409503301865904314141099877429932542259973898217140483979491745428827264757537529269575381374942832247723987256352168232603528068533852915062320234012398734359112029735107494339064622609131790295798845387711648873165801176775790515068673504245912494517070507334727288538911387560218549092039116341539799604778341470708575181678538592050039522080728943694866269947020503369383884976913143649567874840542668479313711204740794578458417954352737826857460265409870548393533948025869264223352319129637573732220268618968212749863375635031687838810041259145391267121469740928792090440901167484088583654203256765880534739838161697329927547176046875535219858954638518249056143226553128529649512252772260331811257744320699096084613793736076573061217893014110113087054867343760860007955285819770048868430109388497919475261245034358115878542703040012207287217354505187451131857019908614203750862235598773663838342062294499485190362474324111977897921917190462000746145669969977122445110163528398711461771103774952294279007571328531623540478072098705274057699096589560145752163449130110026068408258059352620556573932649134726409564318184706621194866446673764017122911564743146065338693462712863892006328548832816106296138321644773912035052333410955227530838948886847551642788235827149842449732965674407028021610595614155673394449788793573161379804157635732074772635245579755709999503169292056793121319072230929350490649344348291820643242625534159809408129083271925384570419003100777160488446956330543952199214071788584812864564461284403123101226037554798590003440063446612550392618774913264785258296897244901548025611507244141815224547430987409090324785683270861959667877685154471778478829999802796996217584805821704979450216933730256715383042504323180712873435385307476086520296300862250258965641909812393704194785680096481826436426831482462204846573666759608989005176591782497816608366639481041839058135762733438078771520933737535536667678111440522299210970155063912230365187253059535150740967767265202467202828075212269398726144509583025644241810098170498622810831240677187861656617359258442882826502691945502748366222478170587952867487785189765839444818364186711163809839580066252049532397404963649262104000144153965966343944379455383774229851496960488608975496056016113764443657736528466715176645826800333656076712500836833661240660938972246122065549777228140380080731285620850631624565964467524665276992350549389030782372492363678595327294544931507336035590936556790848051770848106142639965318866917466941984088222126829291385174905465112706179350680263915926629021704811491543404557390520661736425963094618133748762580982760099361519270835367082570232777886432140664384701033683755791802375016831147695017516317847816308804499554535718944098319120736409376287900784035537889080648217444532711752598591207724283921139751284962030260724905340638339762950414676092068297695805217425719792542214013458049288374857783227583906754454279424864033131881530106403061663521989710551427257341649970691275348554911827134662121408831870911960658443399476543856611408492870991712817533239771833144117571547063736554223200251609396948272438150216866966982645346885810054543147437469900794920507827118544162548647917137783654735501371449957456925569821527617937894156995674374231443647815671699891735104313334938147905394720873813979208343319022583001536559373609135848585525049065454467473046134657277508358650348415040535424955984630177197278232616767131539532340754238004138140808626012127339607364365243749797754705017421378255247230260993035364061864322794849245997516465182783053373733510555831263885497300633346652513354200639744114053746340724697546352333522671728548466822594153071688956482390388582286515228456957227686477153451744954946547216336255191924336635106586061525012359978705488329505428189021111627952026704907685090322796460678598866050570074638714914948657796243323911360824216329362870155398484509590537062627048329641154097001480291655265160947890970820550568568360047714442311188782993565502977375164385266110346600774967883279827069873967895987312619912368367530103013242199669133734044628614261040786691940040755494260036804472431730318000106172215172160179054711803356096978446881428598970827221447847881151723047804427236653927660802786326958879506370759946943122746315082462841362088282045954529378856103691695954557969231845758398364243285754191149145282139546090077415817919812883356472556825518656890168175396332639199313535561310425047684468393233560346801919292230947765242889916291731350407877646903472226707966673687856844465031182383127512187873177090577774217151962927800765856615228520889689443394180618001502410587078675665075218454657456710712998538644405876759841068355676811522453259089374108066663324995297121139526045936199442442063356454875558520932030890360246693492288736786141356130185424248851461827074119617705200819045133852327821551260940471926920936363049605412135311965670855240528081959786794498258350627395696433464300984955916221676246938209166846200671987115501995559419233467568090679014521497640700036240353239871885131731175792227243658390646035131168008494799550391217025475591908423847652518105932015792712534958052121278792479099197089248104882954087450833192949511688604803793436288604537668053825021025014515071161674348163399333893882869886766140230498204339890993067944054613282700615568046888988246792469094849937161987189791779495038056426039052266629668142226503200389654807119825871588882644204938553188549143359910153192900706889847961193488763466693997884397169135325264815931525055610190675480396324974747279827943737276788980360093595833761373492103273364350117489979355278880744840116970959783480287802632819441787159750162512621811488954743195850227718997614915697082213046252250477721885869450001246216966309198619564881845813582984076919985547882609407115591754914340967868995011401653609631426579805625217756627053431146813155109184196377122841339179991719458226787682904744333984868200019219031312378877430687057359219217223436121518372789408226170389544666856573360945308068258088973734144438968768605273763076722241774743950418015195723629824931935994541350456727421090855303045027796827885484378073947274306592322622664028659098201766298631843609429339700134598747003635281440436431711354904278851177557293140718817793049633475610195671056868700624575028483440719578153834777550846597287875973214066580295225299019018235494694339299514842312572007155261553076956397412031769858642248422389943860580363716275491957541086690547397848780031825191123788454073177309956204361131543475729345863100368542245632364923666145247424167892364662800199508881641397764292137076196785416390119728593507065662226425078531202338668197172216434019912356350569406019891630307382028903308786479612315032557500567176116874700920010041096374306904428971160366484439301135357156515239260592420013543598331101054682756296556417547157075582253719479960096173713055922085803016365742803932248950220745680221131544630064364500133052926413005263797753234642149433065824620111245392937411145911090548729401070932051329615542536836431604329399232002026257584885029726064224410808137572532588527565019942570687920374488755796918407176091377585610941223427980668469448048920746439469911267687806564243703719752216333265981018882190130329683776505691714905467410597285040561613988606562929109624292286919576964317425449941199074763004537040913370980197070556088610286271218420037765897780583803491034381522553115715900652696173521468558700316084460000698105529290319512331482694110972700443796119467671504377621164682634157792893012523062793060319445870859255793412572872234004772222790355594310774805507866833165080327857294243375188149015507002833922811476650780578628316864169554428188376551931128900183874890253924840232009425361089180451587982508731252827101978798113172871841088573462836448451278662740659129989426660106371630229447194346471656289464775967260899532131027285316070263397789341746101183496463003254729258297300943497381511197723042610280894387979580675743369348654201880994101513386334708148930809595923679606683522631327096126686886312151382959820448766829539818621298327342010835702608732092618879285794623830803321029909960682931372335635158116005898741640545562436000865761591725064581781116173153964355214979330618683952489709819916018555117739188426624643563779649945494263839676793619840491068614064422300788331245196550129170113587402754770768831882705951279788682357017546959666809672523434750403623780098300951686964472163622753874442603963592046679346444528234647827641446908878951086005964574878272626561391844645088678061914364937858802874210272790371348374852595608438196248165389622708586862628696325704044600705924786172643029342713011185223191964730621929138911800231614219669077826478194995487172513072954032031498486707715568224551287411195806940509277941473862742056579848796042638516324519282865454029660357897620344904841188827536767221849754600415776047482398876185320372394822661861540070761298078223352293680467879904625194060163131633010154578725334571883865300967746362722786367053100964651146955309099085225700288130649958994016693913388081846368826872882174893854726012703418968699756230353156562266075320326005770253222848038074425055360772027045361268355615568237560831499546336120574845746800814055377153686875217195248854263370900354537187507884732034229943291609453608805698095634476516112731372943835349561282729705837686313776689422702006294881744715229166253006851275353597111703052726492132803755559906702010893960398312562528516913069638507176689873554295834443862466083453272391793954922367378742536275113327313033558043725969147776885405586599876238371522871578238394441422446919819164035833149119096055828559616532598289991065806908016774627260230402366108431183579826133211406307330086331947227238259043356800235033933866606571727397455536420499176746722993820116987797688266731966824678799511456511006409472379791453506600258640966599320559378602854080694674813598143093753214125726825273473047091895712413861224427311128277816661672522219676738083728087580349248696042033910033868543637353642462818911771602501174154304747401152478370689394450826224895184451510758263579792713275563356639945843129164974192611408763007916409333930034339318746214177149580703021008171498282682962120751649804892633233374907061486135710469737805154149066600239090864434021888786681140357362072617156594750472109491747856391268491661894061102731991799545854154221632149266828550009130880081783160066601159950568658135947343944778296349637590288029640212424962349465251952023857239975566943881558054478780013707067107812276780254505483857059936680925098823469351731597554563239709780872711074610532396874693329397124736430240522572993506887584237455325493297078966091147915444527224216179314488343423659600716288145221792093717623411301973881290848834769694914039780189002759434847444636960735856027590480015963845260559818341427622477708717849657596499035597874525836035952634280448921514652478037550297314060125038073784975199579498241918112794180022585570843899228769367235364970973331597101381162373331613102781942877558013649343048823470650417236226788991899986326234125754130265837307505554173662927260472343730120029422728477799312430236305724220213953733390572552366145877144546457509568662297816409950279519846144990298111868147351636515385508696271513798964672025072740495870253209670616518211241471494500078355132728325832489716672378980554673723584194306311781953670841073979239202205010822756341221149703753787919816922359014139031843862646542821889730123829628578550465064552993754622721338243665964434801318108893096990746493426195754593754387020196200483219518459729025489653533107360093234960130173057204225389379822976337490387649872134469071878493574642614562297478849405217508150404043105841905318899868509351085226286705041157903780781246300778690719705136806849468931112398728480296225537345240173137714269135785104554121123024370901937812313702251586297155020441845389549394621341236556708864517191170584767528952453738743782434561953949589797432765593312511990810099968601372900169176420304742405728860326359020410711294157391508670149543580505420335426460220782709209530160668475421149148454631358746930285553005352767248027858354668681247988293923794386275747282978351603927934447485172449129212938895455475026412107089468230779335109424471788162745111141126638585289649820072322103640634677188499884220499239087301671540523409351439340619729423522992753069424320559262951807744541921206359754615245876352182174452502617905799402567243622887259655778858302384656109854459318550776449428688223761090916036425549664998037244611607023418701593536643761767255659164173338953294791993839827450680073068424209711155134972649947877577951311039716395582286389076400168719949631489634309706097423990743947266938442212604412411512543886236473458485659256981871758724369797142618000238779826224525862256902975031729424572805245758238460728166827157672713941332108571363085323104963488616595143582948043364040634131486843593761584023643438230574223157874499268869304490513912790463961539193570401389618249776368076458900543734294915997718766853870462439342578258732758438862442483896313247448921189723819191298874630284783287109165088845350247770278634515348394884739258262694046415435693161106868184313709445663006196413412439531845255210363965664526133055522514917139597923991632333317386440768099960944694809278383879271848987187263992284897249759731341472443745502336997113125300643355762353043542885215842607929385033869093574078183915282565388732105192570155791497614212298020901441040146433610138513829469109422432734146695305117717616327595063345918025651169938008081741040830220903715941965664869721774615864184382943931446499882934277722731538450830609463728741926552646972879690251242903386232200183280612631219803450156237906127036751031809628120533133973417989060079537860672538217685519884914042971797568238317798067563567801305030509393209658958273605544150009709863602919896138589387531828467396645656740616490177029139226684254986162317880785285193834446574763904985773671909317985638201146862152020294798141867156871625795580352206413107651290736390139923773630828440154703198340749626090691587323650814142100390927141273233928997417683919105780710905300391150870388972648661551562954742692046408687907048572930513300977361138533918183879700635991234648587332042705449683917834249176947508823388110826099480387921665154073510452597509908171754560734225258538402853948661504108577867163026011185927638324758899085365431515521796610901518066868042292283183955398728351061994584696035695502653723120802117063084420108606702422336341656467767324457436157097572420968866085781567826752631192179405273387353460409642639279937542164972553914362775546145046454253377421428740988525796946986455778946023519372784904519744884634208207460033468879021617876569470325308136390048001391082941385756361203861084678591624700665053023412673460949154001897084510866404774414198141651473192422750462788831165487573170300739667796659829442098805443617535207442473753967973724921026229398128914971846925851952932550449664672036280027713629604180487104366655329204540068370206214245432230243048595575480663892993372997938894268072930933079707694119706998286567070499595802046406825759073146813414572374693994596015602019512317021628592487693598320009510534147213375796554537327331585578863639928832844640080962726350035273071162170476466052287259018121882477188358179299379491594106499867364560249426674651052193268551611078974551615359891462492714038362488798225817793449991298273635673988713330026833514045274281072878211659642736850269183146218139442686222950393564590266035506035860089364422607704739038200019918038710803280688580269639303705467628645390284200254621386387965821466569005919462155933478683141106592009376616694954340502026111893812187019215833600706795135265319263238750870499216033604387463614564085056425513950763483456409795668963807463945910624803181223325013721624597519877265107462443748202563465338559374670701882069468454173139075636773656284473475573875636777099244898038953895973261788680664966535998401791733886102707441511170820487283929793869087497595349980974037320456821231139963091823945707042185244991647306273826762688078149283688994189052017607175274924955183089265447663252309152146335886151874861734362053378948461457598391187266039708781105552009676378838454850100664237514807394202471707853622398692910951058655029048977711176227398691567573995520520382794430035477676120893233485911561645856821704919711986402664312918346799599258135211753844834303940576431754238712439771114107116377623106611716985139577398504668208757764441241762815979473826808018805627006060828436614151729795376516307429855397480336577881850359422053070725969280794401112772313528049403191275784739021681494076532447777502183757713349348845084173682808690055249893840522495314704449033378201450254680870439875539886548517231684992106504170029944017092394564301472986995155129363980730631019024704124697742057970426698162988555739485520795547939082091359957533298353315967725432598489169976657818472688787708211024837538489537969536764568062020781681984590271148289662620095395422626152349086250452964929352913751381594254765656728606698306863542227337378980577323418476979029296791054479357439688470146097676457276039459240212420326034681661411860191859769942523161866849850763238968908996645446087078588588683824640043278634809580882510830032009548051828871310825118219277195179726450161138648464311714554480234691959521785387776921676689010100155254707114927624278109477019310965964140308110930129399591688611301866895603129098525638945411009152394197468248595294413788971290375503460589096389992035022165494863325997301781398996960814639748059261094722512220378647058687094316014805040066270923146535487938143009115556036258917898985242390296315877256281020683072996588601442681070545714438020917972631383956209460456118645787812598040586918852131219965891911526921473186767347187197673631368615973680792134162437278562347167783922164588838782823720753610394834186087311729425063361327831349592658974289159985137876532716830067303556245896258868954823802156971240151229814961256803723478839994552642254367514948792977528500426039885085180105869227434835841198260899506898375716791211962943260365898498805780412629379960087902578261147529253181351942738485897285890690069300805331655771923549874721869596782476696785435132054917273268991181102185168335035641652295755674659860548267052053100045563908689474606049662860143731612903017628826786994646518116132126506004303402686787871483674593300223540663853051105264037912778411371713054224043100691265079399849112049264053669287825539264460478805221513757955421973078899201199175891114354977606123519681596547327328670733213105527550191210739053074750611551532961328082248023666774901196730934768665807984377047099303686550485415963054204013554973420322506262488175700419926809792583045725027318316991160695429014288160125635309242550433977495118283890264038550088339120946120285118779581362340379188097376147394817070287754404544381499028634428243738649258218110610263594461812282752117125902886954998322093365037245852102764446914391414461362950900498186302880678655648556337436994490359150537272364449385034164470335945964083487554704015062110175589243961498405353534244653263284085905146996713305506092802378922460844244079803752049402465057796557478883131845910854888575695700953295190331541655419025822767938091720003053039935817211689718495587411731715434663350470965762808233586773423925945809204493360615317758432840362150968279024395353154260173684956400305061119917950056339664916083496228933139861800059893725731955304406293919093679833816284236010484615398791974132163346932751632950476963276845673934666264653104029141713779833512569224965541045417211511802021178409748628178364373874464520814040446671981162877140538612068855331127565684242763584130101143735645093998997409570884514011506206714680188434176385815359630463965864495779428760674110624646740336338075737955515141400210772029717577408315451146267411892580891797142687550847951956858533227419783870943090079926496107654789542010216294802331710229796864294385337843236385447179296037047052658691095354553575373921452817707048973451700190470256553687025504347522110469530503262534868525602038714972270950517417033242360329987353865690293871367519798708474664559771419518878765313281665565670475428352477126899225150735935665111489602182803361022144986041189884268316909674796269863704884448368377658270549069801109967027961830411457514848209663587486669959387756531348528872703568790577133730153138323799892860027902496033593492476908334264108759001689409732003842707219005654074501427510998138071862270772674016774861517782004839898904487234210375254134799751446481763284427145312211084059649256881970678278785751295280568505243573834608214108029571788546327644166949790931095049277252427337383919812459524132690986085853435345628403911422843288375057973091632436378740201312437873980347627453553266281246574275849491179131292736834416432440235467936408245477287951757145557627954591566614895024013350312337134290114681583304102299126865538639528147773984219111180879118371902271291442569595024850296070578581254802854218794630191181660375511305645671246025764546903051261838437631636229376325544148283572866476360439958518872204192174444978798510232613600539245565958460370355700964412850888471503626650501625117181806910337451272425867952173124354021078480543890594740797301919679256504350970728287757637780346674965939514154853308045092261124787490376210730221886946193716407640988828334202068400582450558156255231771623568727078700554580287363318301773561115739596856226272204349841119385608519929915153177578771728218187767684853433536864684390450704344612172001321694729105521833547896071702990962226241707903787073662406926704668891211822650333366891930873366778310827432607584305606895807437058794944907926049667858149134493047171651192232042453333250591577190707976494666323227193623422970545653649544663721346947645532185078000249948849405642929984903173860255756741032999101349299685706442350309705633856053279560754470093466815813021140374422209949987205483498907938506501328069822405269794500041380308089561811492482985455041124109602138288867492417626771329922219119797086299492125378305900710889232395307063358867161451999695357951448377048371787506231944138630866304944989998766739519214312077181312897861152371217570731848176206868457950509133680397255363216149545131064339183951428553318801661989248025065492275253141304140241463042854409814372372046399263927683476764856826007273294034672299273044868291336295291409337348326165449141958354095939598721013658920237794144968451999150996876616470602693137980830193807008885925118164239009091789013452841554278261730873794588065596947206761141108041061687787040272253164858253260665787587325455597831119599075526287022333269305367934415868841026652602868475552394618046287797926969427993918484837097194173641766600074431514022102805300845235188979329444478952824646818659803256829715482723799952967594507788648013093402068168310444415497865923265982934215103068765845068619269192008133554916285861661198216470778237132836611654686832208229802763718647976513386401807654379728397036712570136936454603973799504803881738835168987027371370936783228469270513214432964429070869622036439483896080864736794439542470622140447440747113227810945581411866569424460797612648574241273453840784032126245671204044510030731678750178208666991095204897598966197034707767160517463415646537915977580717228741871968849942914417009011828454662763392917469529188191797492400139804092090745038542002003329932036425055728006490215025300455444634138299348267960553309124387129424857873850079621703577778463188762096685234095637400970890077680063688872768293464112029843802842486880356162518623838509934172354448150095714153425688037470720885785711304244981864736429379512430788900407053579820993498861382486833837332750370739320073030199553241371382703023740176178691169007657590278737890435138468410535599943406739465572376978052126968720318117619007916795373310115956775215933253981811807396365367733676023121243968841662855460153049672603671562698875418043134803115231930084321360416658297510567952563256197761839918134346410658527515427961782130763453227934628101198043349105019419746425949855683738680169835713865850476037912984365573497960793450242279080183304641082405093438097907536963499909494057352412724034553640615969754651208836832131509303259318074099079587884827218747425702707122279283135370365249667234820477359038160579845155391721764870167621678666051277442684958657689085035655881237599105092938883696659057459544479880408667683270892459576641438843166499735532726534554055643264341242663814612404737634432258613161146923500442327523750722419713339228832659582204678180841977558414373399039505020560957076804271523111178076865544186883372563316999668100811151671643542651173364600532555493858743698620629199866525049024062234930575683604115772560992665725819103362184840969640608450062192941159919410522962575504535527317610567052001193788900982142551879360234075017416528802082391707614720749439444208520738245400786879226445538580808681761386337489376818829094233062635858242936430757832105058337085759046907133309960113146257309630025546931853595369151586805153572963197624626743946881613078017544475775627023799170892810461045130684303282504742077063570689395278561114873943543919715872189360613891586103767842143434253291565960574088076327570628194764855412041536979136476914143864603318522309803778107234534749316704159234188382031306259020985391117041521776952332284200377254332704564474425677281360760232139531452365176338669245274270192605844381509916048916409648309837168443112374767966231463654338247152491586276521580015670520486352252108982930721266797115592459280207830421591427917648802704419129606072246057462306379050293960551844016837249782705551086917335450357059084837973572370787053875567970324993873308062943844461961902263936336766647879450869212927630636316751390149181932859126473444325911237388879554791380844000346002871451758414264894317547500818625447563911040115913747814555819702845780649816006301757736155999102107418588360609026755302715202286082567845010741164640331500053624895225042538568440703846431532411247149236494165323254010870512824286890775585791653313984277994579814267508328060096453877634577850183087373378103090902165050269128531044944104174167088181493154867794593898418730824883539883089202863559063571731455138303560115939629386851892874481681792901961056622010832479036938503849120511406696564001045263025786846761355659986212198308637297514324155182338186237632989668891710260244421094818841599180356657371455784831417917163443165323572387290502032413336670696506503095799414084123017863869039523228986800940175831342167718405881324692965527030379817147634506894713091373391618894818958467164744477796621243872791014352327823081432025839351593173244401165807030983025376606598948990127896452496695546756680073398772450044619227379163524942902313236572285295674324260575721212436833309762110391972842789461043076433728197150684616309884230694383431928557183232271315418181594370284591046491592743010748836145217508654527348486460221777943916350260908540832792889247028744431017989634313147676688688792610132250244428102496840730538874251295162774483858208656396838958775808223646502761851823821433626204539181490981019062299339792613293710517373073474512477003916315508532841220093132396374792177913614265209282678980121602704330632644160272413313954083084763380159734509729378057957925306911592898122050392984706762665334274297272453795568834845848661412309281749066214148935391604118491573027330822109716786701598739318773932049748695535293107373487417942936173323033405561715874431956613160039032193410715519694411017742500042979227521663125444643046859049580414638936927972965962692035952420452206484830525064055217280070691524462792603256846322798426262148863856365822268101570398268856135274008359978657562880954619475178338527922712995929397939095120617194122544647031448058181880929799685500062357973623268110161419542138456248961044741500584695893198669097823862411889223766718914507714046708498915358881835347343773612637686028632019482154219787835211262692801376173909971590044094579769034025857432605974384593190482410838825910520944047109723752691263533652641401516225650323591711153103384379658243098658319644685238558370927143034257081851032302784304179180706354806491764929411368914025679654670540807165168539669035617691254497786095950012372881579432777633257772621235255578374921320485119714032886802194920030945553093202380473925725145917632589146515373593924504693675300144604999647244669015284456323112889205198673827467838199857611391422100714120025687704607790766645962851760901062794307425594891266703563565377816442869100004043408997804225058972927476016629187866371953521446481972761581471152561245282520121096148853950669884569223060147091232824536574820151519312050707463074304269757385839942279399969227245106788325890951382957097065324309632606842075460242426280438500518089925577388763671413070524670293212402896524868008091721239823548275501098971117194957155436776910404273743536933509497251833852794320638210988513429817231372781439909170959202729411706410708371908104823706689402665017764212913046542613874344734861697433019963548656140695106106047142065959856107383185010802340056649475491251492148726231895311400343297245210751467310561661167955681711141785540073608921921410725659090098198191527362284387247906366633244360646573215958012629927506181262303495143690202289459992110899172002553962928763849298294871466793272237105646313913367366992807395861653094111019950436018538173309965399304695352314780839291493936755379036635457471535242644667759051456864691300394370183359753457036897212306561446951406890234976515191197396970720051249525121744199544821057811867768769387154117436259177290565135147194868808368610315478761166168324856171105283963684114288548836577182283920870943574011060189239681355533767175208664188203526641299551832582120009622486940925213257088530830751515702500631791686609693176915603890046813863688359205700827168144841717412051969867334319067772140912111746974972564452438115009024442979911708991776874690554381001701366406754464369197006612144220284365180302099492856207676432695491285368125312054274691182923221653657506342678140498085353281472042145828883692266453699916688436779253732212389989582783654261546107079907795438936856982554178580898548196772941660176179933045702009048952629241319278380397967876198777784834367459652020476716041567419090234869164241300315191453572415952877009477197135210967220866041916216090755047917085211709602319821901254965981149600550600902597026997645537865453667762600245156582109026924010707145908886970859607297452412755514308643736437139036360162577316422870480883701873460583654836011710303067818363727617899430896977604631138723991915141433134472959997194307410198378919384649737297033174367604467888941605394537966934034859779337021095240500052126062394562131388507982463412625017296131385812898687324280051625980824665994884786799765341506303033797655174835659353041040112708716935094500234909726259438916319889117323122955729972998672828375189688018706853213253926461307092805159148013835958970226272852116482905503498359254531752200028903854524259862161183920786748569646460677915806761761131307749972258569131232131351513639758819512816480969142848535113355826088071951622503387622578971340911788833762454034002429250560652567085404639578098063342327035308314379070976218165504481767752400834841947180491097587133667829294448678909701579878165731288241813258666047100416195125551095856303552091721387686991430803597113562746721051063590078893915569369319192874047849070136965461571565513461261039038786942492413742034020857023470174702043771540236829331589671279631042615909793840067542754239981101009611369890887881967845263575401306500450901995131507054945617911940418550513674545437594681250005548513417861254636222164285575829081882330074016142459334108351148505778089204987432132842167044332765793163288890844108916229779166067424922639710756304592353312437873794099595678069007729522279138408373750229080276193099855922020556779727633147842789670987257584747583221319449842550638131221587432074813340243802478395025659892419229739440058321245488916447440336815586090138826901826417286929466703267640066971498483849023512374907986595052786370155565884118540194199467654044332708815173548878150347315939875239080173054430510613341578369300769700888622707806361104019571880013644570645647306488496834817291716739808060024624368035415662586933956761739558867162375092116163043805389883496609545308875311851226547288738052197955434549287779147973568019268161036263926228192335077248345163864291151417006117730945955935732693710976089721353693598417094685836159616303164971186805434405556909914140496784465147406394234041836541604987124912004341651258327292498248723599967128748789697659123084721366384105299181876990364017493242699186195237014437158844835231179924368892795697143106168265458830452657253587673093658251900755990518650112689313915622257691394274962481460895293797421991669572816103166833267607944336333124526915785274792393521144485542005745652667474953479085310034500501204025711107185063105055835115435675177804560914847512875140773878579622369897247334995841852707959946037540873381424237155593823769214523471170451796607149182259863190427301316038686278952040117678645653876808188099926089289151677703227230659228259393859643121833311105091003805619986689206175504542791906945134025792289656870359166334556603366318209610189969041218509837136903463298710948393818127609589062840955613276037588188881504381118413622652365493731965901212428971148015669342530236450139070242517873859164355469603942880089198418801933963547904143481432887143390765908955067787769036343705072850673656044856773332460295857037910247020799223646502963992657528736848811341047775144001133067692078396055937120228360086885313861673183976754276986605614098917624871342189765074353296273724518562004448489297093510692201579569004934195142078130455228062091007305000873873639896623670845338939949492738218972163788179311039488186911810552899236852136497613213574370053232741616812880607635840950394436656762064240341317606951250530557803067728365209644119183936167676356049301030330035025270709055510127227322337877238504654409539916480335872543951091231873441201455417320730721894290204380294504057237480048196333662220450433991325729238929756313215185038378210043150258006250309579560419490609984723785885476024001158283955502519687368908121133937039997198699505809128036214380089210055077762602175218767105707476803399313114410598213399388447889714815134653319703076899642097427291268308171585611306080309447075996708443439245388911881156018138116648445448813886178279692032813775848859450616320388741791023514640409788288631455601175310122161291151138628560950593769838201367396474898830660264994529710325211731080740691155923100759506933356611414319497912031590391957538880212866292700481819512717903052025236307578494821306478226478268616375603314479018171923661765058636248134448724444429218793033301193256591796794832104436680031037590940311598280369423284300644318268558885392437233353078731509333991969877058217754722715376391454458087157118121410441063608712625129184635721024010788114453369286563452689849269134485090875237042405235480407371310390945612855941659747031513879184358690848554180038403426418935549940574902024641745610884326472808037642527343034545852810403893978346521676462012850016469903554306137450557670241543708423445219842132175436666553363763421962856201059785712566486370780453351433522197109128011046370768944791922659797608041863266509295286969509657504558526911162935620036156419546927121163594018978382922107651145351828339103910611768863592369269355891283822255152433568623225324777594181021579063232362122701623492225824854831007987540615689627320086642792689955090478579962603622091486185490872205259620253637085190235237413918303394472729373725272673277690560978340718220336462331908497279641479149558608071890964664039204455597940355382657984751299546109851121646784897527815592577038058851495877844693456660301156926544206277200478358732232331031066957635965520499066524886569482131645593077900597051179482087016660898424646903834488201387758992953443568710488969130763005249781899760796253028484091482782452191673993029540180380720240641958368555909904278667420283883988403737159325462553465930043928628557632551015913148808044096251985906287488857833121750888695411806183979105613831155973102811090859813355897893775154771503307044836475681952742209895957722201867719070830841692230623963005636677995630819444021453830081772271935574291352509346649008516981838383200708955819288433075621172519913589889923820113896913513086822150816568534494582277438648837975242888285479937454231328013885598681920198263580034623560332730779943991977468345067609182773403390056482877439187968216379188832540962531673038589546134688399034105645800286525856089897573985934590256685317008473936629199420568538576778633808499794615251631185307282312297963879634811834102627685661645317417469462188623390121130887945006024445561382104770994320997581581064056647529328481271633032447714069697491466610379217243633122861395110451650532637913510939081955897599651767744012186328181295460043682291441399929742857783988214729280308570943676815547269581218191969047467157019198942305485184053111380608396907686848344835877134977286206523673123895202822045000033343958288990508457346675777186584720938393782190954719325544564736383329092443916945524596569123019426825648921825503677495401200271508540987676493697627218452132299485440193318593579997589305150073427937221614843872629885965471052399894259085979930951271285286039987362022986589662092501886349897793944276328118648189732623439543956387217184631520995759542120290277348358798782706964904132873183583428528394663286797252910025484351473419269448143814838546904803082756056579368370954806835275900316464860517992823357535455539863670173791379847957761829298528825654268111769770191190975323435100502049261911796970159967219019639684930500883565691214481954971380865037783324974187733379762418888865958624602599079789284496796323368663543188959318534019351067320392305373140256415927672975027585588140359205676703775415425599548937581140460972521327699934308590200477174494926086875892818807752656155110056017224391018518566705978602042104746038323703417575866808081534510780879133577202015282636362576906693800069906367033945051988083927541872866390286636910998500464408783648381306041565042224715794113440585923378708311785284597348591049821864300118609698663695787564989831814543337046019507703803831458201927287147872006220555141466366661701150217446431087744802227094427403006640104430359701598749236824708631722269304349593815796245241727277600317159221151526258871901810065219899488367448556863289328450133884906557029464301332043276994210752764307699939593366924184611010874483286571421461243906165710680920503263813640044607833552986667310442825434463588029217458367387403214711126654029442633718953673918436921604491660330284683832143742453557514010714124808513547914939702658506933460304781843416035285251815232233751576478158247569052035688997641039138192533403437594480163488664035569678424352522063195916350333796688463801797406443270519647917304944343962696730762261298664189613104168503590766963404970785920539528387410587428462944281517240803184957874860164064573519867291761497746044238131311178157453779464065126191519291086182084171456217781510979696011527203231701674331669248426567088506566129066002079483383518346436323094141881215777867477599637862351135591133835380541409317071085030256109844604143417198739251755967084707777699211604757779872744770874563653206122597797723793154249961557828363165697135170664705602976032849314440410708922755142832879063852085951365281251242802513111040210546129688682364161367461435207076029376689685567223669666604138427390140329633313894667476451609884832893390958380346339870751523773371695719641383067055068175908998587873492197607674413306757419202087323107313361616475313845480276815324230825624911673933724095612786981546366977112363141488983272330741352376407451919047570092733570160197623092373423640043918992066701694057502873086733370592780280990804584704093752568718046121259804502160288675786552412894855949124023276143497675635371070494268902540016168996820550789947410703279111967238667472182186394345091789414220339786746211580198251221167521209018555786028609319869411163202650345359885443124642700718543428850248038413504555698303716575108732646431364795207021660525526577234962687328717511960044179710516052490741558600542236315054444877574835522962228585876168517689440084824408232675725200660445670847592575329332624586563389173948654277057317745163724304071797125268500483130961243231802103775124408415525677829227845616592037899151913910706465172400573127324825781357977239226220685577745604280456926854820908317348136105042046494913041340735826376724371079871444405440965057669784098292342804464785021780469807733329091394241002172671744567390200960865241549035127543794212031724900089838969339668185559590060281494730440155573372172833210696686742534760429085283275527942698988651371495204262673393087032758667572231275004555550308180240066550596720819926838964557148845095530848257873353150937181939535342737971723458371546888927509908232649931923918376229868133399826558499448964731614046991243695421528376926229818442946644096001376925935218777754939067001647141333121230982135912229071609286800726912388920257371872277229142930280350574423683182056678911243774351603554792610925545028165505657028619315967848542936376153500785228340602737101659573429320973983643682532523352559291171514909843686629805424848215255321694889678924853835889193082354107918339743333249619159559384282654049961849380105739906833000920048584131898772185130091068254334116470604231512479241690767513198893112755976603203278417712420167750279726190162425256694616860241009547092957175588034111728538468142589792503082223888851547035031369811783090486393099565493861080671900314074095124815397602496562844026513720218969298514222683296146942895219088629328943727893785984678816914868963751867422746088620022143585411994409250118873570990287121362792601047092503838889835162885106255348747837325625014322228160573724980608248610311980395959910473626080732772232850424669805549934092103067945255651490639947286708487772090298540658633124099155434729307739573936073473879298311167641370234414069950485292044078627516729957677679359577795581398035561121434278154469632264384956134457671805926358851876311835659493829635516435423378060176691914135709030966632671132803477200942661339083360873011896492656814660840374499180212878023579100382794857524365389971440419899359288478270509674930395437123919120594895398766019629889760805989607724961008541208893315594232966911963658384492224094486807014258537865865157619871984869809350038343154722858832881868142897727146554214658345854107703683202840249405906698313773523081821306810781867436027565791381977924810575170074054507460325361818921694729600291130634973156643485838690112310079327675713608390733088950648797189704878332878154994619973798482726688525722469730218146972886945999373454575760801003982948872470389638410383622689862748391389911008652801434185930819133688400528035209387419919833510292195152905147642528674761579159928805557989683993828109115515438576469074006669685245499160839778409388488066511079757312682243045987651324096139574076822895148812609878796389289817629167586599209888257778129999821213420753533880840883569113605505712444571169375809719230541062934035694177294989240350790516881776262515038639484021536556251037124793226311266737048365447194850963721639584185977921002587158607527317496415947797514948301930972766211765528582043006534076556535534613074096468038376163396794158387697642157646688732517073627626123478019221896382928140609996048072686280110430429171407617732093316562026017872032799592546328469938132937977179506880467816382107075165758279453180504138178110280584462872253292738426081742536679475271668585914081947840579781660473740607928785477717150050868571404118155036485819199584445529435179788752394094056451751253908186517612103216997776957006936940708740893186470082371069174732534943719252320227254441200350982362694357459400188431940116578086123049200136581951208496881871318097888912608855706270803109949544773414064774223776013326087193246874948160723317979091759405694400480693206904430103711342671320198619428185338432071264211949611974459063541427463994848884967492445127845361893187079505994252187710630295165211508443169244701744720471028777095631109544423506040985969840112956334809270137134817199938453625189694330094209202057498743538522579950689119750649988635593605919932774503943320489557289066295901028851275576036049653252565164077893896276204568234062254979947624735827415704482394843105173143962340101995118389272344861232924740970407695790424048946478297745709594690470737938014596387690139108762530849160866762726033872341012666608779132846791332203082964819682138572020397427008329291028675100696234986694177884958233839348688894773505489013391598637220381236151833743625943671758141865243742745566372501158180935539858011864962896237994866032813389299930551126157109350405192511572471511117481999960964606314048882115301034651278249899520269744358221077274406707530362293345628227078446558428921171801040204506261155215065506090608588946615509754223678430917954867342559156733146604597633376276063205449386696134555635598078500981506236918275671158370130844384833437664791811194788073821094685913149563390054969673465626368807558028014894560993466663287500748403601636131366555432809430358374547535844692086946123037082191711061480855246835197171269536523522229021345512169725630010575863857115967621984537922411717863453961295815112695675486241575373049116343188118251771530214356027330029375640267014116030775720126498968585384222290436817652752538375744009059147946900417418633937323064495999335416813217859050680348927186311875944911377783324500807019106768352246794290539337547877390182240892081000587776367932092303602795647832355127791157375632869254407581583627793605063727377263285498372757197293582457393516749993264980925393638491559730293198628677633151377953086238108789310758824273865370811308303522331655262579849148289477985321763951364886427734725316032347817372726003137943034005920326855614999263244276082807636245305396295359022672984556635172306966703090208192885014337056481960537818446424197420516733326898123031532117215135242569216903658389477596208564810216169028787969651402889993555016360202127566854093526122959988769663797367412449678182688153575492773736189965233866607354747684284297470268841234609901008570813080303969804888341696574695864121279568696387745493081462002072284063266539365489291795646711550863419696708142729764762159247880242610637586903038661833141299335080119663956834304321880214995127336437189481729220485213424280848106011857167476692313696003353163569380732613347226082448677622817993621140643602279757571781725761725256259296629740047685082680073298448025187278352624574787429332695866263605111915661677132340351914816539539251176275550067255063132523377132989739050105362736405914144794018130075671895797255614325996572270879292480015165984854342901870632470750112273275318240135846940923632129559293259983133844703378313495731825222646060187898720037865294388517852718444472226381666327009903173834675830855815328151442359144766344859158124604316549722880353176661465012908829693393253801788115251621669440814761022545185121531099464651814455664645673399205128167438123318449547851949084232363575065658091793098673985375388871262102408441470296493908659239994046037324538143833813197905379678464979645541564691558230126743090013299932795559333658152182877747527756106133551796059156258291551737128432789825153559247424181728504863441900541723528394395857168730768645680679795350072595718010835064666001689721027201142758748727531356866356764920201807063277983410720114151743051428192284996725836633309707451577769962204340392739721833227632783234350872843746582965434244698162529772502246871184151914848024361739866511760722979881214155042693400693986196975608122263411448695964648421272074851113689263550188864183992144156029405370718394774074796265485292657919716136848764394010279412818273814781349412835783694194139078027512104747942457386412534030581832394293480978883880787786457846261587627917166284528249502225189336352193668494223566868750336893093953212416078756484525232935287124495857971981958976894329017638498241742082253149415674622118301442956535194875525188322271072645459875516026110530480518154927195045790063606925675463815791702637519447978550603169575183977026736527009181240922650734443574331770973872498307870436996613733138874541095560379518065562151281649282554667272872178572600373034561273157306599809310371810380029502142237817613692654022023324303028187809462150952703278311995287624292163970867895019501832471903466688357778987853503151120232271909224004376151983198449631726248287609978054752607144981190971571981438985827431272632688786714297240220298612582499415342731643821886169905925548440513012564772790599228951905777279532581479663124687354132882273727952554071138152811417648847835585744568431058321821378751713153785092063216537572624035699789395142900245804230680796218255405788518405618260603834196357732153142050089998848237249606604763159707067919930404073183267102366182825309784814271470762485385127312092630254585806916793239443723632806691403532167516521685262315411474646301528239465047715519780683905676424178199441552865191978164554590014405050514515595825001742916875464197280468712505124419188215523009508916588502133321142992858336577075483845374332909510581065631542777750507925933214080809642188603153436546912228748364442353978429556200634853244943312714096149232144280943043939478210791598775473745585725598090351874644790919056628303049059595976165561575516440750056927771810506144454509614414412749953710620892750871937677269350769801186732188957356680438962975474060374876602868576749062321745444091072683526920039343028185263518610963370527573286530362637632850853350243879296557964391980175185582336279835867736444778630854401331593293209206294355562836853856047934517244580405123958564687635844146349551951373308559189077215358610809027919046632645281562098244060334469066541960902080949865661557156369804504053078366259975403420963810634507072994573678238786819562268733966559892825294101287672780431330368179356661470873934178777503748237348967012760971018815298163933835669673646463576617071792448410087479593447017878594982119843670223096471446812137552498763245307246624289782018219014711355811310026855982321614046877448612342204038961883644156856385654332495137001346797044630729811044429901007347066730768171813909736155532820839203246985901461451438150777488035049666073729028310625985185972691855374847590462647992054814747068057788059629466152859942672646906025371937474474257276648436406746243361016021194461170696503168267586150314253525068218526960737245260997890204691376023406619598204927761666587136070674750216417589364706819735436704119247551007663061693275299138898887447722439196471059811803480431824363704311162866224637713714459004342008862446438665725035223328683328552528933607356585820681289254027958146162295016141935787028404769673663777094780055191896052591378423118544415318384520638183165188080646972368108304146917984305004343809067764278575823593935646683833024609931736755892732777696510516782728118394935783013435496490360865754931250175906479858747376785603283561961885716892685049071940905650598125348747055998864479049723456255012641370726723054945551740789850209890113837322587431156709243547254829820161485516593271147064230556473693475894755000608270543300415819502640574208453669651275918750573885460445953710955886657622414509203205926813584449326880540167189905234748905620721418810065181099864832269482405236828772211377809277032354578340303593931715060734658910069662518284919602827296015313772831569167839591487503697966630798888177281173606888040497828745186597266202930309556363458842306997409504582571690994679895830824298662159961362102744843939325622385235958406841158245721877179444216452812339652390632764435262695841367724640406969515210128248077038597369822222705899371547424514716553505654179834911566872423899802111779469079687194422937012947948851357697257389030571376168831317375231041004479277864262269632699632573375548567632180943753811842078456016535689422841332312778080729978307040328106197489187797634380605762024582311237497298109939872570567488429462189674516700259990794580881548643088832496923412219868016419490147011131618299169633961578878555536421503659130798740209987209442554411553071093062787720744630927392722059648296931977304120302205741521761629658747303446028860496138417691450577810654485385285053864791296907750883002922016743941412542661793331118194880595625946478506375919420755311507478473804949395508160349315883726730742011299172946191528666408058923328369143460420681514532575079723809475079880363853987999099950849483344263852232829666143708043130242823834627638467779756562671793849972220215354117018517679624331754241670599266926947234760240577424886478034655935321258075719835935284278021088339074734992229706490266153878911423277284408945753287358165781070492885757173392986793326792791212167147280757868669551590496057598719995124882808506456707951524556326539682102432531147741134796288562652004220665420715935577149998503333822054490885283751008773757898226462021807791812278673814407392022418791140213466566681598488516129643100392097852034363255239729807239128047463136107556106504775831630805412104118265622615986534447382232452879514901715186565404824055039795990225188152663186238942141899424718692673802821826695852526737690549952263764672836278217726259964268273208707130437355127930405342819045466154632285659256651949660389215858160602768460982841911486610057400022131356222844432954011145848272551502177257886445693291046297101299338525150166563213908916784071702979658251319734062894010455000000609256585777126070570431633643263325858558129582794406853927891047515830881699445213358799045339406682774856250366756147247339212608309702998134766059221495497640563450267985092338017065976821508172391163372676984913857117151290599503154726027475879357979743419900539435705934661964615471793441533528555373352596724909199583004293887926378267055236287235010121870423843942968417806156056021368978220386434799578668859968787757453753745906358543390122163119945001603392348936591112889354693536783701879946292603666772684474165808467446272315779884849675115906867439536798316373320370157531761265227694216994700109143170901088155512063835198603123999183663334425157278207470302134092232556862237015822125920951509655914757679008079742294073627471708916988118707424294450607557582340550460237765084169716695059266655601404547184783165638210303923488341978443862865201537347787631034306837047503108650798194999127209169492639422721172646478087951060002060197097657635096491035013708362423170820460349612054820964419871478416204804666332773072718309192418508602843084222880223804262019039897105025531412692160769273581726355192034514203020791844505385619280763850105844168102431744668568522297629897669243534809584297046380365349059733960788708293107255606726647861689980632667438590974931998683160485235593402882898530706741192744010371116370057298429014873678787984612539524900892257503086232452726333159676588288129602161315217778757965250110802972842517183760244303364336719702041349090831302992659356368140578963191448755647012729091539383088397526240810383486136921007213834908717086368523912752177824101494993171397123239706972706952076141294014026398889212131613288264413769405993430519252801956090916656902908553323399586543601930989431916053033924590102461902824231308368246689672238894257554314111172109196612342047553370543951415998373553425307130448860683626415818914343559951836829070845501034868402181650867894544086071118799276636968827636113758891744346603313823878237272404851917742995526660823847885754662211388622970153729871838731623731398114652257683480581123789840943985676515375653735901136529194966295664822883167574090986019005002057438238089074628543442788831787564157464681517975478648429666552713919344242543881662563349525707592014112089923745663817086926282472960471429958103269552375443101305002754386551299290787733291681873464098218064500783316244822905418078191400633377767104764823180033857769479663907375155382085517179098570472303440658449069481612537719095336079719423531161992855075347585813773652561237295352593038594703516239184297074242517607042824737969870993752200111753764353306181847451446725611152517727774380300485451669586146228861678393618537833013284298314059150152169477337623186782518209226953172397083170011366729216667057198838072047060075989635081975550651285448997192363949846547595771457111494096769781330672551502163744287517898168697856450058648684472576885177975601371578713096293326931467174998958348315821709163551507889095112853139621741072093926136344848608522833892975934153802590848648577470501219376301433931530155179973128589887035116938583909752474815338751332560175552680368030473249399523724261184447400064906500389827148445056341547676355965412434393696771084763296511496966596626634335092927719049756707431407414984644305390551548882173904494479441892652686441258101961464735602139033763258239477990922487702890021069512659930515366644100386515000056046618184059144993923258549836525029839057832203001146454151106979867948398387121679970325854647384810182447059692195476287252158318846283629669450589421948938726449046746476256663292720782725402097039311433169483172012152929870680623928465404387503621814076144386181976770254057876672428668531638350544819258394737916605607216218229085330495210037445469108070531348986626964920748705578923829659971727833726999696940895192033052636503081408971162970425237646113784922221492049484200309401687198643864781120774141437435224353069089721512789675334904448815634991673412505447177825450350848547645064655186219438689036163140356779966048400961384747768467009116494544966344833138202244529713514414534886737323216536010436123171296198864338607328998344936687925523426970524196347919776960162182617390068087260990448966780111894952383618084341185828531989595669882717552081910400443556653477657655652779106021683765634657471265209963245917942040338885670360909992751332688671207941824486756081362617111471892585070040584777803905316378414523379011674607772959097618417434301133526133508446266098718212760796841407913097499009213733533814862134726165201445315024977609084926432032521077202656193946985333397701790478242100040193016637699575718847326580308625637184684068360812624183664397635856792865013942374117654413741100422085315015076844434564875026108447972564877498205980394747545978210621633697057207702913176193920285312950712149327458640543263139527759547014442551903243678702613848677654191397374328250596564262481140880576148871549706352369106223120476086606474155278136845782347828888890789660944529824580143368739260105237703541542276120284139983516334872987738095425186778916465268181923076950684359788904613473361064273246278129448810039265000127785654371248524045629911572189460166007452147420254691039592602393915923770499184007920249666715310221785635132339894541799994277400308819619396757463593649301356212048740272886019279524750801647571407917001555059547086210563453066338880821539501481216866728184760001470403837171146645384737412747409177459000176917528963207422313996220490310769890525487401382717199818215015959812241075642800896035610170202100511810084628429523593391127543502477422775230136221355777683011298553168222302492887176317583721829050285088802702805162967114679847260128979420801172114135206149624907137904760007191501546166900179987912524156608216537955223541260203482120093465591586143570711417241247562360028339524933751680937870449470231645447247473864284338105612665770922106598779184264182290261281370869133253026517432313237145047574907661599409511843798052195651853167383138278529169683104378941680258148610202292652165404237420233155095194872922785001502704813009441421342837468547199924113119761100129717548558735793308021384232492628771189661566975832824454081301012191616373952905505234739026557113482820947820946964470099790273269101627256212647468344659356950223896100900259701481154854816476950856022417590614318534509378669263330953383618890003257644850777524482392588084073989059995251614200937709905534225445808522227754168714463353614628221270866930159189434854952778465597973024346564102375034436006963418338648580837154859556417582580996310150127894092737992285492337679368410371388926219722323541089486986745922398340433972706326412382896769566809048607337198067524526688882071040347572556899036207176514527435163977634814303021640078540169935287906572423644656173091552167854118776998796012325325930214129677790223315904654540578263165789169848364123064679050871127855239830749995430088463754796889410009684474136746498907298400048823475448721747128540253175260247423077837696789042400219620725683358226824690932271791751881096826841290043570098747327978991966251991410974775161652909909122773085965236322783671328543996603680716187907778065443383868244100445722532052633330234160756302651739379929202279953253655668490311518061483489090432656456544002478554270211056432659046296645032269553328847652560735155181287445462587772741390838335900830897713389606289644765906330748305847211542679951653364297589468129844425852271531835278109280429741106475291138439580983574262019820771973246024867806751986839224203857817837108256121626800710657809177426126573350982221512113401583628869462503623307239019755089070771847691572172605692139807554000487150719336300049171258566993903208357875803841545587687587977600814630170431776211316574076294717248530997940331027808279028461641410832864283189428021703002200117164802044906151408542244807128677673142111909621477301620946774651116266914810443673611631605456699654456162236924501542851220103964317298119244162879117400634533904112718259864434432285285408499916690733584809364499058723128694934266167404917651842842103804699318092575100093163236308325251130554928751542231347019355756167789230492489180947941128456018469784066482464070088614318989552942084754142010052773307923692760551109028511044826733363820719189979304227081458773654636803676999447383053741160231276821221812296279522401996821617039698580014845752625578009093416760356764648147311581931438072661744175568137825235367718937430706276403610145954946119662296964119895910563479801961345180119311719048017088333906514698523777089087195883047878525599033326123611410132047988542211495055885423785753466991081815883072694647299048371418560867286359335529750807928470524445938372152445352848738476997313367397154746370673086507351586935212038816542212074220915435908865468402259741229158597272436883736752456085700434445373776915657589648122708530459081038356442397555874106712443440638598409847181119339720949077333874999826049189978634167009880083991379408147063714653381122150227537637813090141970004669251726051984224114361820469428111331012310800643473429405238508554689722637402082824881919225946966510275369756636545087427469373943718659782186667760924707739748304024986251015565335564995834380367167979111502851293899826174381895500505712969988659671828886678202566162063142347640725816492855501719801875422518033987082769783682344465750382636070431951485705987590784566955823210593772640191154546394838607976180783206524014545311026524723141035181726947155691433105028584691754314618112939716760568082879951759193440271015927446890600222492961721592149347710175864523154856040577103054394917317217107632644042705012996181799811072987726870039151361955460312586957173198342922220710239606178094813255067052559456887380612794448726312713638863106229787421755823599699663118336363893888197160844255855750573474367928012723815917283140628736726550139809000404174247169741047163760557950206775033523407513835002618511954134969318963486603558502951610987755464003422377794351733689187561713684220458623435833097445920286645319082453350213362163570981047285326585833334876340830074559139315373597452909603874493146794404949875280610891107653976970325155954707686483191662173724059400622963995155924999490506540576474335456186163092686036297466301383716012307126815156157288906104502077589602814976996887819059188658590347388662305117382356246412615750678965273521217645670628802576381425317293741950036977773412981334184498442923178240602915401905859412501312575624076745125406185374261285300823900422613424644591552896176723642429082372907944919087454474840107095828728433083847874316774082757308113653438069712911814053933840254167626216020689960208630606138028222265219051538150802446184552500755763934830209686378689098228226602106471642208291743567908147620994680927795199207198846965727597469220977011178754904506527159394839387392666996102634795260694059498365824592249944543044773276202549181077918655243883727267983002541823219100640062898998334619431460610801357132593118954069276873329786459748064761643388249104608095901568678971123825549135355266587771920866531861607467082260808064450458177988500877515964865752481113484315322406125676715622090710516027783798575869917756747840174231978560538332006650854345007347905848027155402580827470139379460067558545365228649788065215857815594590336116090193362504612122275666331708024934880628817633846723782021406020241020115437028050458163849273680786123828165374837665478888849991614907785924266138260015200112089099249614472804481552776131189772408678948095895566386352584352098924268939872748982316491515828359156427524029333680348085916768551400074451716253094893262187470276065013892345214326206126645727469805118422333516895607322159109027154649663254552714423923747384566646611522247584969631795905877526997434199389758177449762623601084775370262046659655230653334701919760531625142100147963925816384743603161686880310519223898670455469763979374046531370091801984781285258394029463019781670437742693215166040520534622318629112542272209267393376686615279074415133299467731468625877992879731539669499100710545095683298981876888441231692194277753024952053156157017212531963037217421493836139950594407971978113666214271487744405069347344639894631025549636772583094487631790496702602115107436570462408438311476034023251777570460313699488375857531682132162588482881390678038619591686016346480264306454402196908364145105089863578412890644639664807989628937663822523579717610209461498115474469875212515476641105892653848268053550531296047939043779634204671084150846941184335312052750632804221879866700065009336895894434397739463842607614344229217823218908484524285691935805734729821849054733382801636371154305125619867724329459661059296382398027516472004575760058521195489837734159671440729734346379360682020655179620626631684232883312009198944107412151623672783664072081238348866178112349349961615819501524873093790497396447863560755748624282813602884059173182673837772176764745027660868769282265382644272190229044809311057103494019031329317222965391210988241489440837127035450631691325765567227111554931106246804950027413309154375274481765581938247736382929855794783309551382210110468282390384612051623516671926425164995313068753978332749684201057610279331189143776123819046962484156072997257586134585135860111027112389770518974400336277192466506571821071799513113239930919861776446370222931034419009909237336183485549214494094768760032479899625493908943398717681069646148394893773898841266548515092752786707628627914392816876415026377817571335985495472214975163195223043690868180326143813825908380709906705869381554378819013399443221894122286331927721847135311910046094970205265744764946538448750972729137014411687733845602005801173474633542854130257155606489878059239905614809125757057994989653112590824489746006328793304472774075011532624819084706854220919265115879174903984018601207640955709130043765722774937307903700693127504913369612948074907683859932277479682640199870527761422744199011561611891377657311017521094635583403832245847466041640024959329271314259611835233614332030958897974945697107911690495048489801699682572902770739720533551017623606237937949796306121510197253665643807208455302897737801742721604672922586974378606427108584770103253298315838538406439400758994250568146290351201384668043782356758913571213560258757887871276179557608288528120125781956185245481098441436214238505588480945389773418662911379930071230893599564384409333015557635066963243810532657222159918205751858945326121689193799273244233762930053007382279881226243668025658861149502729283579843717886765676283102153331276090652464541182307610007895880924366136909019561607073775029961727676454812456750786401268206476092271948114322981888678971024222501543363823776766157675747447436593177250238327638609028177031200953970653222168804100791014590301428014170998880292954511978498808365597597163358187577269792993435168197080714908707615624592400377974877434932093152303096441329706853845776774118731802881789294932310285053714961259770068021610728577583971011735748307868873452705606036915269899669076520444866311338589603656935852890035463944616180891566780575388258350889948998436434386078542941782610846801027735987067720530415890464716164832936729031497291519149369667721967937188237908488182802454173563287846446009437503319249926962813098446175929228768145482492502125026075263666129828759579358878234762598142068080084225956499367282629208479562189129349138078304444963380645112332174989976774300422286227840385703996729275174097614785401195675150979854456786228280812096197561414026881186417747182473793146620223300176674590057176103019689053162675922365352646652939325372073617599873117415284310790669114084871002889817590499646315374321347757410770289069941843237707252916926201339545131048564960906290919102832375091477520826678257294926469260610317496911035159648623826725214053537502519478430692228411611163599571395266902704420471240794455933643712418372163180217200216529336593030955210636331237675043829259871742838261159276014002959991270615375889892899074937667086269187258315339572998418086941232137034721706711296175736554227925091614292609539899809918280793793830427297153138639123190966002889767527501180849765101326691956604091587708279570375401113416614492961099989349120799484863159649453245727799205016397473091126999606334944989352555170286770289558546119124243519491372903951581147699027487448425493620555795869247946315007956559750888274083525518026311480546784812977909150127338103619872072143642492895158900753858132804940981000774646459559953879019269021957148429962521416707012631350621461014162621992225033120768198940352686935155496844181048242204625175147848838622042304528349940993023673672096718397222055114064569804436384740066944168849434135036373922463568875508538975848613038989815033974960776149051679145016174006185945063802818358384318902522849092893226067862329944082925072042698744715866748603019714081915465723386053146315724257336310835371503243044662008840688373790538717904568663181828824467046714687938108873350815621243396365325195406333614998131358547795003014843295925955408716632792036740172202789564739623395295173399778897398901076781922112814911098323192071846980060568860851883319717022394506039202797767133312620319681290061197385892806573055286698275357826846044571759407568401996013181085463055719564518945287600601798236790724146882133222808745688738728943990226719428004228161499859668774508999259023119782890789734134421097683823064038459958382787020877387670624512906946029693416102307068222824517334509590620830807994151586288370262418492485060392458843313232099896667458118419399889761713714543523316258921774583307824231630722516943647661085927811163916720898916049076187077034657158200194577010706177783499745159048939876327896339339269264466074938353804384688120092485315450183335192380916445843013000379247873204957474420253525343010577959391465661950260674827643620384308360862121148820918954698161251711815562583154383632501620389171818944806388333558871141583495121604952772660517988689311832342550423930879556173093219233248688207342587283501673447690995021750140254092761203427224500722798948306055389903178365629460862519952010153607079629050784279330876252008400199553493409734291976400186978897674908246494336435540821651547009276833144612770435350120621784388662245953812884923409516268567347555531014832012577109012371642590279346047837164881619922514143809107502358496713653401594502601362730904385668757287002951481470892914486722360276634905124903224095201551604467108303452820537924009052457356467991272629038604491198837800155285176784818901700496557983305241103349287868456545547167790500560691372760307511855232492089161699894936586274746697142508082297699138234202022305392709885014344854900102704700517063606985025483960114705411157140584587219360969436456525136619207840915582461620220295672391539954546956288413007942064609279314281573448511078205629401964040514570545843783712293867717532102253235320816301503146638700905590959983965623828910734325045131037936858897073642753223985270722978490356220784549856829221466006754670800491590571986749504266861898308141545679136675539881342195659856667392494115468363191044688875546818483877542808240042814229540369644144037175441953391785845205694144366039021774078412129734632195416483308561754540167232030659031918749359417090482332826042893936558130022712168203481799894887769502706137799262133530586602231870688780904400938311925950187378443755964121950141970976032143781097844383416704038708210974910108118624194218300426422539354903991350186498078698885401323024501707038640291164597702123037506239160532834225041815172708280445260712585740150647456369917021196655750796327757328721097977164965191480622246415835342802344998812042918355494961639070353618665367121400665593262012759799745986384966617478194294212064630750728571698023649370724077639922425811591455698337529329070507730899967523205110846638397202212083483900750930818308938851731117923249226221390529931449244829015318204936656187378637159748738802943969841248744608627802454866034479913970184301875963870441714235455012533178102946492203080356809393057440909451320992358370861056469600505997362573722195658312530343792729198566596448542848192851145873199017748338250417812726715865918881583456840688123480342733875733152656760596432275689694332582643138100944401615950580443787395712778630528780863519460804023165282197999206731834474084730181742271000170314363129885889948584081222611836078965420708838094392594421591196835379422378061220189838183918435488069977075395852718377177346602582929469029810077148985298816753577132690739685953754096206469305485348258907342482148339846805516761533001000539085714831801545353864808024885036161850720891608235196647531202311978370285749341802539274648771890408386107179547452718545917564056505065867061443474413383978500822787000283827075205572607388716406672261652516158171354688056590881881226460425610110321751348157590439605284129449899108342995719795606834335677321990673955365311896509252397514369076148198766058886920719423779258391758157521307007344867766945390345475003163023020847365328106978724430748865789616691129493356872681926433752464090737059194262023690961790799938092465376363919886016481280619877612039704037509333634021648857250212430810598393725039325709119562428194932893624940572212206898457717799478280441543220856615326349998170963158248001308337344683879389726703797916158299811835871620134255708544051562291009363782064772715094503247404524257631522937507022627944707576978527857653333724641926033034689696970126328257022144987772226844657751901287234116558794546372411327788319028379005099268676572004409626195230313823897959641891947734954491747571423535972985222395329458667837776986195355072363230121858628510109815769223614071072766090629326884490042925753974529444379010775209770620413942951912955384963412747576641683098871815407736633778448648066930069228730216179656664735132205931460576509357247689970573478590470571446014140522280284814177738429861778333293106344962009351203627353889109496576577806799733632723862677011230245868405671382294905867172692332054370331605548754860630797917572865517087534620573669179289006226372216334597799540672461285959476680660126226072824014026715124401202504472159899802512277376631913258516860053648283906164680288292231000628651429034779969914968080857471364538085603582807793219195062508589114981111036920982339346554258227790753810816411197306351746362219483293894934726095280227345597487360043742683127890667253213227472269848029731428189133425179284296433534387567026208949958446231977882896230921043461809501533592609142035245258416299134830071793243725900853465511311048948906930617801553637230593043100567446835949070307384587461269569837560732556532249720673321650691955297702212198753150528439631878704502013614004427447863250964796444291478506435646901633904341609660429816777351508219692963269633684530488431048851208099037987523546280349500705900866589263400523721129372851701187127689280285646375131188069915242510022070383802348465582155889969256632432246256182493267856180750499329533352503933750519988978708517893782256178256602152455543725211053102092099398670511717743530418194159428264966037701924604403778866275239972944954930979400497264139492979537336043402299856191924120309413703893952824683144331657648494094043192361655995967735785776287993968631726227285252321286369447688427920547304676757577116254015779541663649321112803048721791266191482345716226489968676607444804584114051143694952076650723966989739275837735175471108283291201042911067993269407596695948713373235865471493839694985871928155615249408181745502972541516498026734279584343814563055260128443604272091083032638899600762143543969246841308013333826173726314590676380731766733803223315247408690622063105422138268706285936507976975737044795200393144898235002785262926832943061871258605326282226028356243222821614135532846490222333899104613338036877996309976310166390372639510289784147278279399333931344096383545767978473139626897089866472559517428418333677286667672460438145775683834254795199233429843142055781588185383632720654755367788783306185313995503147989994008330908273023983182079548341897394232296916793643644324665879183954201552935680269181899994278124330512608919024192707071885294129395378520326147786245219762131117346792954169786919839728562098764453202772234922433499324927875710074350580458240732672674300752981372868039146187042582765423054742944841803470379249293008988277324457936153632745208174892128328673326452661205450989771977490424265897115108424626806057451475846676167883637894430625290354003088400549885432508651767245233812401773303306115821112103032657880055791862625426756417427861277058327600546844968669879438605863047928876883962584418705990826385811321109815441479819296983504029000151843896752981725546880605841573917324535969619057819132979717663260070920040227013929868403488930207978423788451020045848152451133215245536074387094750672050441553232970882418387407996420646582113568313925625928802235243167174765591679302657434545891196011162236180139263065930018567533520516396965705743322403145872729144572328623033086015510050988052554999394617932032606806517747576741164999760677019243804570395315539725093753621335363067923464624980635076903951570575847420620782947590553414909873584417421926410245525439812276587418873253609718806370975154547041711374304238314912675415127469548781250866030069476327047660957811993176062282889655268315507021702756847400564623690686961430152501662575276295479284997560414435185304984726505161575492614481797510047198068291097507250903708425083717595886472308545046838704300064767860887037615287934507998268924976503895830622477175886152439381711852373686967833604123726321262923993547372323285630711731083788421800116533723430744141664941787522183269077552267058139795629939348046043976913864065228925350996720277203311201236964314312474692775520915802107506275258594765552394559703408999787382318586586796240100122623006952924157120225765176995760205888115273840698023698218113066366716370734572502507673843966344881935999773214937341847685398589892579792250205564315904721097751846901790223871650771347910636656839693963932787365596272096894605515396334837149774006204684248293582280561562008474780835776067647389808773537072685917633582613337867919422596322107861191003904604783011604022289875842566403697291722137406925141387137903911849318525568212583510244947810768058224259121923587492482075186208221148465270772053289185772413812296243958610894799089321276868203676399637352870472370280014502859466016473804720492698544528067311890070189202354472143679829543428652681604861565951406125731126697253925633127313742236185452037862231915251482547552429482125729732044342791884823907579834617346203371863389384296449248631429784971722969872546950149177944578527442081343208632347474725919311679346921254462593381100665422005671256254680098745907207885187224367624112791323040066369085379425916471438377158587244866215412671175102116722221638443804730822421248110332346291863305280036206696607312734700790131667440319921428997811029328993223410715539646733415580822675989268628773916629030065939542458778136716064983932124691318963500392070528061714772964121958823429153485364540278294154823752261366199675973682145292568227117526885122611130721567140555897645080104013914899722325101050315542785060781164052554964162958802374783769634808805327711400365458830182860944409804020015930160317779799148117301824957659926930281759817890817335164171366442746936622189172967295870089758246955085770680534411045433912025687888675942291545713817915680536653972702231077686445640672337344560964294749080811770795532731645741954440862712421767820317734272517116375796340066952099145699664251843320098071227866702105816805183662566040429506318821191775227057847098419616386307020259479838202341627362975337065836255388184864185084563543132310634974445666515357173336881284114805474425443694551156722664329470232149921774689675603010907511732639708314608747647948858526739732715812858139172578517189502331171527859887158344619078137581357608195966059431475053614399183013536863406563727988045768960213580537171117731954179562221588638275171361862939932432176281704366633056698883262310489978282163489904766148668062457028512743144914052726428662610089307261638587356791602291812946821282309111671462863547749359519931534339887598705469046541565161109228694087870027958487574457124424695905644090563360759509894418228235095766606663228398408958161969869202901644961834832936923547962511714252930466403763590474297941815462639456239355189085998035134082815607047096088625125520947304875907622436757855960948343642851176977041310315654580036199631429918527059959347904162039367746158454646469279355545619451771576806856923050013742588888456115400123268185082232303121336643174978049178557892228998676658112916746820739300634829180982921102751370410258168530587304272555668601399214209875518879799691561440131939320879164725138779604420496672095399608036820670270817878155867459876255013775107433574517257085181305779643405297164690836865634322126533147918981999406383785853378844773650569147910221103484594642076097330077382783854731755746379443549881870957541132254214047028222330297803759660051819500508004699313387038993382032510533811287391461842373355294260935006617023379094051150102402937932091712691321525817288608928458649880985603237825303108713391532504004269955178543276765837146987020407711814289508720546950691364153131188457483642484698060709313193736414255213154647384728697141058816747646513807503218695480911099075478617368930502159723160418867400507630955614331208623468947029393668328284787264728048454548220654037212772009933612549934459704861018410794198058990680955455436437479895932039387667745929442649328376655289995816717952488196006714152269927945070297518311721550231216580938966435208745487664449294071300833012429905245359059972912367560178680991086019867525090603953767693398859052371009620385917336408255718539864906178923948839094885776240037603584186857488722456589497103588866655349306743990253916148328954659809811221462813360217276916809994980694383866744847781137033916458838116145927218637531006962520763873842054559837231060946718900318299184554025976450824690210653884375531599900186841653743498901095059950772651111026667499885631404367325914641324589168403848383107078964597180752752423968513113603425826550507932871788683489186783422038646251081653018409530485921747088784360482888716737803055762271573486447900532266075365696087019682319060600220403255028880017742303187235096247235522604186353010911586795676756630425144308080183229368013753132106392723820904016316398787760974853789100573909187144476295887727719106903460429095818700327746572351253548804821455380852772945643777122691466557546404115754340736455659108159940348045573286587254778530559466501030747100161403546349840596843371059730956710339097721094109670026317313525681742138431217792854911295811341733739229269471029535721519295309047221464583671955163460422636947102344887780331522776886465198904362941529541372125891014581810307996089487624991949099842981611429632757810780670704430267775488871976998994618778357428511699140692115958553690389681908458352455746671499954544614218312689253597856002031075612190284418684506183912922632048767841308727611949450949877400911633673934986241652524243642641722238000948031905959935768301722481511766703459814280169984911399661391367767201251841177914326973664173130338498749703215608082413361640583431551669649338501435307881575127431470786516011837936383875818774642523187383075411140786741315203317494900220598660409486188992003827144558130580808907964527742096287484242657859272794616840305489574410438637021480069606324964396045497455334494252183851078233100033753772202245566268345529952460745028896598007279680121941201466041042116070526906564615973665209221636579002434151874712534286320325461062528239350837402550562546163283281206925683601965804960601345014456066860502001169512789213654200985629934434435782100138263726823253265032104923161741533867071951438747474134125573694832537460368020656801642537124839206859520371737152376045068342835492295809269313564516207505725977346536062439883850440450899218154150718432591080475753291248622393398330462811528002915007088615166219181183403363822692354697392390466998893822092617739435607005173376498629746737432036837933471383997478665372746666276913612066774019198684870706216686105430921042685980067853472494643340924365396902152985172798442007463746475065133138108312855863535805139522593299540960694639542807142676008029160348664090544080544536540203429740963218803411923266084897961532353943188729097920623948367745311331229905017006714182871060239991303116979577519399997812672777233826897083166074042798425349233206438326688541061258977666619047026663887686840658971047191731732871433371707504508806197397682929034860776678552790430215018360503341476674202436013214544115609497808351657739836010528593052204400754828825077350577765014749054854405750432575917509764366697447629254807912203132993734643526347049996481550963344653513861211155808654495463135009280174408648315169282840101241088321984219902400420820452304949152337681218905708198169982808010692732940583950355015013947712845438879586777282062677175697625455260895397348024314638967026971819163767373732330361280731764736208600489652095124488360511709105171745627121247310317479657404801095283784571983786181907377023098409259010701389360432309808369317357204711474402269523884160295626711139678640590010380917916768451729394444540247566019188014056910916636625959182847154335692071146046525690020591348440457938280186587684010707110994483127258750335225361178833170888615289247469647941123792173804008112267462971563126838918505067314498971830116749194509009607829460681996937383931361596944014585558206702087832238452358786552145856347142054627025847196969233569462057235189801338937740830568459711754311534100877618759430503062576448623616779587536255125022065368307464361948547562032842613392455595968054334368392089289575495995678430599627234700368797132849792956360405389103748105662373157007529790674839649463485742626155426727224481188301319295431826037507751592271496405250438455655303524200993419115089600242982075219792170242266917572141387324737881264418851441687423738360370401789043977952792303040521443404751422319144271489671018066254260253155841996443675245805650938761106314898159991050354613640667962014752638763947396386167417371150162232077943150284410602574722730560420300142579615941784740748972525049081309920246485513418916213332707860460177844253533117912385369590251538134808565815005977926724082461895379930950092216888389813614276758578742636039320234400266851129309891805501674409156433570325119991533891854613780593168738349151016153689565295889670636787544236507206978289146785338605136957791725716667572454711970797886293060274267811408581725965674197064047148809099581850704541216807645821072187116242731121238922674583500433792969358165907916951057362911744811799411358738175542701446652419039732272412613232876821516205704587042080840500554142323186084552508818514776117577544795468583226639562413434791444801970232230588365799469219747566960985953717332239392115547443324099465088003569159469026947701434819038037923869901832350274971397395042461684198843769971202946809566717268703302570469254927735444899167478110278347485960461579740921920085026493549831552052537255774108753242956905757254705957505792050824870755624459761495281113687508894142941748973583758722937487844314650217670080379507112222757859499302182081393269273846030015507871824503933185276631129362903036971409010302635746817687242927478617386331721899814198329439888764861560148184137819106532911061634300998572725137437440176777401102592381747031468590501350826103903022035786865584194689948720772164893082633316289436875038549669820122343918306035353364385302424468621545762159307715295236321620371722665981306292889160594038880868026741353040872370642175724434309409817384429942221250137455970269477617532786604002875650380962702583676338316459402914628718258318762478369034931100736167263256598710954021737878179415902926218940770847034415939840614970326711909226308541041058681205328754082880270537008351926503064586199401757601329413295624842907855655949540586330015599628902056629756970870806231801766892592796369875512714002807443830649372103099874484455158443555120375894999481456363067143902883536891773626344667982433749372003481356234389363700348730050859436038716327311225336879383027940187096572517739805898150449956086992278108215752597964952409968484802751555745142845656317805908524620106912082881517884436876505388961937618139249956264356267574761300108205888068418079994718982415367817718595244595041168961132302740540129318998143157062494650379359968267262446941971882085078770209351968296930374382751034314604480920603101577418103369446250674982057146470198970749913732661949701299617960708714277423795742978419270021688708957701502345815380386324525175847838728138595601934552552863961681530005708701872792739448606464760573233625627079837044217991430328416368241807265296162877370135997120029073692356576826738422502791045919648848080798776870762496910749318572311308491670544142474014587972873200226759442691270468677264299368078689656710547571063996702864435399763309660196282570455024245935796231197211760615024186499202873105970717001576275880850143640391265874533452920108562717671442857961145338106609788962902848194042985078898620258972728982720293012184349290827252925360225165605507160256943961254606974784336621548423691816418132704847549009521055843157643958382857181893708997996987528098411959709481365056576211979706863980264575798038268926424448689187702125082761140723681524732944690028588913601581034718049667063489256358161896156940158320685029278074949922950086944587582213490121807469507496213362419311603394760849410652649086405520815204045315438872513463084983929492236456065700910853524225772135689163966836824286077147862254332921119408596197403707751317806207383851013402625788845531547108919056701714549606007497355110876507410375664241433928522352318010682556667042426239566684755378347367541882404363693471998772705217715585921313196588064628011697185672590666999454900715946492435411233781595288843372046692156471068186731434687298164283753671450495226178410423113396844123174985956726397779251883647790874430356867389794972234375256459737620702674829710518975313771956495857438827158729696958467573132676942033800047398607972318504654259392598465230576143933710289182508050496006161256945153815545221384739970087937667465652364013936401075583182657121181593651606283935357986841363750070842515959633168017061137529296755488654554958622767572592703802078541796425453443699795584437085651000217354478108496553674710220392005310899961130767894691106911968079046753076451526068936747538096623664771056144117630383942640126136519832070928003886132973800951258666354015720373257392797230882344659510069261317170211108988944025061748238656034817456748043008949134891197601690121224807589545464018319186510166336851587870545254671647737668008689503885504660974753068895465570265777918990902515807989814643345253802283562259635204686405173099327305247928498695433839436046776839189054666838220442183065292389708195541436362369629276144380970664739566555567225648752477918646577092091584935522351309437716805019957208810813765047397357354440810984305089689797081667082641508208508704789494350488604277421671894911806001360116662927386465369130066472123065206363309143337470895737426559595900470509799333413859679195979067419724149308816439196196724265150621625232302892054373989343369058169204139308268165979870564760276452531437107156060075644396392249888160231124540885477092172940008211269662720755186861607817822294552315901305538643422351645258050941997375540788339176677027277841208865127905131984087945180465991964190934998770812348783712228346707440746942754646955071229347144544320522152396372642779404863917641915424446703490908095580858050734070391607024372185288996464815082782543541055621553725315209293985434937577939657429976048331384734175897347641572841324097372628999519304595131466821258749865931328531703247432322441892818264637601697696567788443334760864652091931149213085561827907518377962117618776577064869163795942038933406615626401932217387444486871263433819319043539911367053584695229054255423033058147666217303298603262460510614207017855164147998408493852358168053373731613635981925691659155821338332364740506695288680199289094955810744534056611925315277099910637372777654414965363152450646798923245243961483757903403577455105872785868559081670324586251155799247648100854534633722595987032783028472168024347142024012674906263339042945177900862315443599277803283285490038590864095850088175390710542726653449626524564958220241239810545744526164310056663062954735790219969261838005838418335984108481098948667305530061076297884411447057238726533354232400159981600678234868214217552223450763884074936961165872437328803006485862363253920594022871937814019885363390288524652849493201489210075265403669429679760034087278032714199367508997568578281912090035610545537770645811960119421414305417076022393679502107347298554192755506652828484038937402552424321417125751463906176206545428456351320631363155010654141752245411034131736418446128444151917463209806634350970811535650831884919026161957951629489383024078521955285502381585464836206346209669500863536833482838797291265004797024424488300835970626263648757284647960435841054460721521740761766020495466948966917361372522783118814789377892827912956049343921950940440443511096814043265538219555964389242769392755350468710352248969432379380054823270770358980381626590841601133776829753319024507125066770130591294937327015723308589809502571366726782739798730156155248024686487849830584055079835322657914242970681688327772218017743895684026810628531381826465117197179189093898498116482517687187241563266018155334334564938391283155222648883590076720704113173265238611789662239066171199873538943189901972775883652815897337001988406885195810881695351734011824626147032887044149366658494649748662641589193823100151441900335046407911540477207288597794905722931625053383282216762868561069928986086143680624396857045284548398214916721271356595643514855247070064162499300898538831768501435681356597977723769480516382644470564779547254547670582345963980753920619279950405089863180267814910020188362279787070769590449029053137516914079958086247887026158562100330634725567121758586370412153110082340760003017387763806602446562613208928129716394289936541197205292527910928330100252787420966824521436911327898003086433109976413457961446699136123490166548436199933613455978168080621501130928831548344746198853023570951822926225253736487312111035490776348335318773990505092049131714686864412849193471758976473558215857812175914711246064568028660125702355349002941666052323904208002404364603920561961334083357046802684315059481979410632681069888265415104382547220867103512870111078579776686159554160074737181754217773186343138425867334538632280137392520329350494275294885446724768481595306567087553422247890413773342548016004699101250417770166657079405840672553529916501280237823792561308429857002528032377490734239331137978165569992305625780185568111568027252355169073667999242497334760398270462653137427766399045964002863845726914349457360770430989095094840010294339991202374225520544786995689387863981062226327371519311546311786114402011890424995444576541824372189347328839921822135241204153503474641090690972453478096288741577311831397162951145789196376202772363606497091608928878116741800433571690253085873537090904476596946778828423599066514331979483870046668961530029918323000521634442263316420841963019902577188957895584205186647479945281334361328593366472956189036592765183141571343125469643017917171688036799148796350879452994321239744649643273839146753934589028785594789222092733219142898716949624092953288118328627578515762403481959798408284866209319158009496377034380318523925804900592287546259943781953536801323169630110344391764022021261124704247106522329900097119144172726178552163599845518060973634341427969306439621983338145781090285776315725253744930752227063094375066043614590387934087387575305835136539762034184698401649633267378583011800415069790449213243874877330680098227822657032832110283652191838387005815937153139278499210954478100110847382471743652046637667821070677953659034041849786651226751156690074697398075474496204478316927164937536611135200944917407467194077501776560939960923518643352965298467598216409116469683837056433144256653900470171538687361950486655554982925150589696781346212694245061732026891351754499992695461270030055678390995748101632908538019353791747147761380628630076395389945262552399988688673834509599028027354868539366115757469009845617796846060466101429223618870746554177529409971446920429056191647033949699475700772196007870266642273041222159398685624117297140829045064237280503878072856597716246324363526100175207068555640286795884349874664883682978633233101747497434630744436998315449006447524094798639113555513600248356190007626719485971321922200491864348041935318761275992858556306781150395933756608390974557033478409363353161086093231125460670577485691719673599995808449622346320660039158624030246569604718888237124489725648122326351885731276710191684850929131138792846712422434705837211062506998171733040175458211524074869192523646857657590296390984051105110181763139992452368220138152247557189530849595863335703446951987770358969184495050111841046892559274461612436766356623284326865925980034536102010152154349851700252285627217121660340491631735900412913194669355994444127665585300396494470288286737227232317148531576433102954571819518924404077686826013883453229845772812600303123558974933116155118885015139380741055035912775048641330235108922436272428966304593594787626917294534640495408407909221119047982071285545393837958217349861790367863606540637947030568646698527183169165789069327787781483058260391965424573864731893524491674850199351110747263680115877451434319936262744569872056077016641576113497520956389307786629375684776266530627050711680970183779949333161681965144617943160664231826963722742379328171485750330263360507038943802178184493820272200374398101122033135624423936371740009898643749253642530771157566362916029268296786492220042350344854178988995254732992658271814111859921885991166987908151325523180475037399312031340520141839276352231385622883205889201633143255801795596443919736644001496496903404294275192834314740919358860538505318666653677901714601356061680149462468608370071234886135521043214346416006361662705464373069711704140596704493974614343374206536717921903213847300164606192253100004678957354294284084572185867261693622748447886338346212315913111459961961654674230412026615909776320191082883962313344419127430452608861250524357815311771076638209788847288875423558260457528836281616826091029416545154883134973883415908391652399358517584811288269138942004193744216031915682224123361963070041266570498260156983221263643310483396258739578787345363418217248795888761585324029645103633147395381634627284395070683650720712357002439093214883930872861308361287902529248417702157810498370941013471482660886463376091425834540377364683504656006754336109947364554557682521435747483812719785981260685436046095829141477811451581618822078170550316941369918090796372020545077061416415190827217414327856719016710234827592154592260981967032828241932674650622701098336092841478923748668004096872888139231980358073593221706428667308362612690323501677251101556133357317506529000780452915327843020118147100782431228070118825946594540929955653595941607033917437842950784492848978115213036139716478711751048505787287457261528479841528477081906046112530657041524575147199278200802169361493009826392553726346635661299387059434645869789267873809687350191929272911691130779908323931175784480940061391963980118652971042067577850633067564797457107939437632193027597991218581581626755588829261224467734646723141652072649949874475703670761647977885745194423524923584419256901332132930571399238874418887765635859063828349411622073608631874414144132768145968489710684735626068230951591907007396932543672251904559380708843322917145607791731649563110311270192001811546181432524880329949365666815047110258524903091979624460345757978092100536938840165397401336448804762870764187857473522160145350893590696054575695024045524713684692626076388000858471411975757026957270485345131235119133644991361194145138699537127319146313505171768186357796340463841520547059857844747340123503553921102900881797524622509132728857028262500580935062595749333319688691874100464089224991495472434569831678726223872421280767152029154566480905545911691506534220299046329630608146126185461930091851798475586322716538003358690303445251832440534275492042230332882627937838606715992756424324967799223137003059692413582042526077122024837455652170021601589659822775344099098819166203008229791039702495825461136276625284267100263262911361276192629662821931077540857439020849549620517287598335658200671142043978147844842893195010827430934435681601563722137710114122338430293995960492234443240716995051898875981659285551047055885674612319597620686845595722544839149723090411523465798177519237354164573297933603737609411693205812590584157900117450838465434599257968764267661197756872181394125490002719235524648445367828655975981951830714370954288776277640625943141987191653002864248105245285097831323337677620767571294414673844938289334427973851341467984800149662980929268171263007661229655046308104096054471136813551086481434090620326811819782837286337650631637853328088269943593124188813964088362150487554749082746692654473890243788034660579816331143085574525038788932094451378209798412328402704359945427614651288279950407953643476291064255930431711873077686467084463317713480195559841103807326533966838795915275118259734901980639745417910273401144307000657372146937967099611439729367884452481491278883307994426789953766570015201386580656784959189773386518461762889397745470621076366014005362305317243134828903256045255505140614529255978594230212988122954051924154921376728584051483415372159131770510755897126268641830603810417201988857721320357346337928712947769018846376081104459567422243812011854688969212297009762815603059711573993369295562806640437785608759083089838400722284228437538804394670374442477248694150793811726624361004449779603466953023389411646844266505179397748068223488151446446961934141416216563265593929158056382044296380091110583144572639818629838083686769402319709798120326101319761980169805653357866633911759580307752119906411573422508347124830079119072968464648453916580695823562022023164424623454807785906831651167684435439600233126927613252955722681005359490499567916522877675905226764026290440298861322007420842518670014237798432791646382323175425301307126282528721222754230751442523225528620835340179590026551386093142501182580675258036370733850847367220964484731811394824534198721696078150473554382072574913134736975388364151216771213456861117916483292095972063335632799790931800662100867404117968853720294212549896679043831314148982875158971787256517666572305142473330259740196566859608558452883221702220228350473261515334853511827292141764264236198253680130627053163329466849605247158283318639287438665172847846807175413976995777204951893494061872657887339470962807051377333306568082056894560361800082415648692959917678365997257253316937859907595071589832357605221027052592616313130086672978923643928378962100121825772793095407194930604930277625770589205928908223388372245301761507917755148471705430710100135961164311530661174172184973041098017051191507236825186237096973475040559670866441165007790302587004181197572412825721709811034693896310285342145744253667940901509217249855726309345201300135385311221005244584708191162918748061744890971011015058496589708247802193810078123823296119307324138542638714771208628411458545142649842022727687726225794508396673636532397416083039891259626687773201351425874934315721220944204349580743647160556260463516740681567806616097199287581367265461032827128796199742397236346156564684617758287128194634520158185300657065898943269430204385914459571653777406487599756754688595816421519449637400646748542195090614014543841686201631025772187837831339230376041635670946733124677542610617905228529768820114945419276507037945908351232791330929894436723944656485138175773785323341417061587109631666387396668387822418623793317378696873990926507744799131356350848017198145200124640631695827976333763676381711123283124778791738182154681495753201782252110582529778124373718110577016913435803182878192505948298071121502041887667872034335174781542630641535519859481394611683014863868768695633011010836996563834879381472174885589819348655004421893585732453310794618613083602634013820241690272415738571182148835324691349297690398887071600511884121820851355262181600045876777966934038552474380517747784752268098793323072891590123801763790672721127619353262453908974217806458139165095677253995950634027136756378602396394179861538575181481482757230829615524252408385249394085351149219714875448502064440096748041592740335103865172287776583765170873312670970983068299458477799451169625028706047385797016144174934467905092506431966465516860717200749960098790305467879922822669788539624005782740943895141777458162923649446035724762966675620700518406744783508176375782898052244566879545886414081466227241259678446357631121443414600923797583465313397627791203388192472979334738894211859105024785475467090466557488275245933774803198021371239511970135335139015490877947822747045442099672792915963727577156469995094312450739879133554504068623495861570032496443026254332653060928075737480547240148144245660307684631056794499315627040083682522419474804118133871642570672450994573865964215348075341582134933728176343064032281254259949963109427147104486683910780293408603258304242361339057636050029963375059227139073403249098285435300333394911814531904566435456419416223904283570087868774135206573637984843410941258637519206080748809713185480101208976133181850201361032460639457723965124414986832567459359243018768273022068935814872120562055254626652644114818736605852693831414933710672021644443549223631471086590705302475972754575448973508732778290083373916439699332228035842705335323394918179158703500218706440643334882107609965008045543078067836823175257823995364232833642244288711982637198774561877073314812570394152494334288243660539145909454030136800484206022517307592347862652769035461822020356106594030466600043428713157309678967739212627935144506180372001237756536102704794031468066523421239823969268040808095079446368627491179268741440717871108413449627595037244136618130642702666711257985579060896487479157916547500252797777254434065348163606149669797058087046633777970900336391223004484857172805586220046358488980084438292063221026424944025334097062336018719317378122321498581239310902610119475946227680387466742569247011071314349736605202961907531346755150117190916442874012788021981891876009106608515152200762532185038420430967018285027128580318947095998782010680259931559714248533826168556441339690960166858031998001027498091981840508680732654830993050859584786428036604446713541757918669686745214070990854615671088926275793318737873978955311587450473824736454718318138560282361639603874758058201808111837555352917796705366058705744232800391873984755812003245698416757016383951434746563746541844682232323903947644340074891617531230117940939718256401092743119644919858275677812212054995669436973661255858327726417238557608141575620793180345183316075824546718636835840703026124300254589450114627738285076423963503915069636840043746969901104646977756209528014125652633553166278031944961190184230893270844570016204394371519093950596312114961916076386144095057242959252268487164839809112231238901042890010424026533602132931737556682851917593390726033630823813785032059503664627026717081540354011879596743620821478543113414861056251768858364433469538852970047058291560974173424545378694355411671559469448871851469883658632106686747188522904459354994739638735711765168265193079561667978394210441497251534642401688671716334734556940236997760786957934155344546981983810971307497993429988285100379458233617963894006458750711701986676751510812649904889533226852337188866437030808123855934368921507822182532776990959637098136828364315760432536671634556028032117474040606884564575806401912971742123190404805573027986707527500660849470612644187725500825565755206647544450911325343423541873128387561266390842070207659040468707344970010098459638044773465266902683463792395960687010148775135195764252629941791500320804693710314521985254473204704403755898395435720579998292857688831999617877945736599258993669275198606700447159300590161308450441141739459463611616710247955694068816303987010988857772589311136039378036836476132349593926511969769152139174215931433287279618816249787807972120488437861097186342986435329231727712002458570562018502798516444915904353297848460608261350493223010655931054843556691715359972803048742983485191206349361442748014528056216020704501031923525876465810610542296825076274115675993878330661764714234213712650722674723982975304798877391846048651339546429566889985109293857811384365804979088006643913488970145465169209456061244668295932692581696331947231421041870703574584977715745794874709105064249471472288273597524122397275809822670478597009983972022067626907828027261976964169333368316863039299044575715943158349693738324351706345185076897710498252451516631457408343786257179771402558359962602253143161483424361866480546912777810724754922115409842860016544394321630717729880984324197884723390489374141360769239488396885410118718702921840211782472994496889257037658004401566941577295218023884909778839113020970997906160363776054694787424251222357155686931514754764934315505192804114185198646056800460492816256748359057197840657140058775702853958502084807835961870507172758514833549831728813844482285551130089672360223963727007651387031740682488107180312471603459613929713868972061639052165748524069330071409736872727901737779658460534604583426218998370496749078534545883806452963518535631758066893930717701429798379668671457063773523566597031947457801455231412079428004325908522048074348254169241336762945321828494255884245181259972668573233645732895684164916068035769704019550416141520099776160626341929849575167127304809302502892426542307227116566994242245187111231799724366402504905088673730574516203695039623767283031669290036955759142147431042594936612888348329071039255897441942803435265564508967786092567122035060371877291448677883940467883580951576776641137148492753849209181352087866794286688526201524340189568442506489620541986418430688559828021477072826949207854686287631738171603049112321934775543219075064469027237466782302894474727435176609883052024443345350372048100444175463038158410221683493696967189470146749466576847875362042670560386339463667639199271858393275545814134305333836644326853381515191878015357600031264875206407221862620320502889175607091126968217428739206090174438885620639579799653477802367865523756907361864560841193358548020816600467272693359610009338225640355046506483653431039652831623805559883865642328472603438924519837682817178931478844308810562664204513352164170692957824659237304507213733012441477580376233939293581737673586610061573798399681697254490464930837458643497226492332434912327010334391696946967055861792413420352711609135487678614640708195261599404755805918986276328335788629394014081012036018040145587614191635807870429704425440391027943379565936852772329774775608134023682017375045390047077704029522059715240624545092007666240625917211988305180283248495441804640398586541911521044945484791955266047772629302373213053666067970393505973636157990569594728523451121251878022316893124058531687020631697833135468065454377625073505334387672040374241548027461254995520100664726560075655186832721484457374757950503090592641836776787488189692271686961423704780205965916773651646404729386919643288546009062248714870508642835732988406558422762187589745903917442446764789898775177328030791524272550520990125804372263796437546086442486954777610202293856111716321913672547756981530786246713975604463240292572366975327527103379426393888592810927363724249622630323162724350880533836947662509195596518774648497706046298046158579495750335123791474816591070658534636012520695896043287427354653075331329614740090390719414732438733443432624089396145342526521544692198239231729195048568087464018132495475032026525402728280581517392834344594095845866766940833947807648697401316573795489376665150221218507355505596668972987190279971228957232885522004000750987484912579987805307709294876326707503484719211782535794731432954286219543510596906442428055569772594781266955311127383581042675001381543406091128841128704021273178748080092350354162629181217459103846534942433981655511639140706101403707676393857997069284395678750756920168002276693518224175134537617991303192836165427155791712129142845926974698765260580292592201885318689345224076722723089743105428399777266917338785936753706255634078548786934892745337512252813608171210317531806082555762503358658620195464767776627367849564071888706326551376846179530051984487431808396331154971093018453656727950373669592992115134239367900472680479041501820231694926722754007377009880913883547302255756440361719708481265733261425515923268852946497854474002285287011537196218946421949416842519309475633260574105544562406850750253694019704019733648539464464684294175582826955523458458031018128342118368873149677790584736239876947108957447572235095647131562774460175672474120437745968513323309908850835657695901503056715640341244481856720187381941432617367664361041109643047075694284640738035098031169672496106361834937872177653977726143951516689383096444961354299556703038203406277009497519734638406539279030867710998672401721546877245178664171175331229687786267861583103107011190047875441895365462732948683740620705044332987904426202663601329876693214730445775955832637663747004127254641119359058483476284902190311637172002940655908274586141038961097926461632646114839924476936059380732561506186577116487255807786477552566934306454923200175796153678831396643002648599704604819468420424575285731849266517259330425781083219842982826848582560721870135231310001230206868067854882019630465693312808140744683180798752999923643845793415015879815806335070068906840175861833998258982383674229414614674465388023612131732372941144045145311520395030943117698965359950655406126342768022027259975723783407227482506592150468373494856543827357507854261656668315451419099604195341210946762567115830991126687646898728887746226452774882550346589241899217846824182892455315864543008219519008696625628139561213862074210519465255935590459664263319035613430624413479505152841403662713700141335786185425381269479361359438419169146107318776844740375394723483203380478150797459468755487047951200244830277608950599596709052701430481293808555410246153460143979687580374897696071939415712862392596997761100925611292934336076195296739605395831955594913940287463729307918640698775959999023986429676284632998509547274076175507967133976538725810702741940843009965060531384345170430136614048712553722922651656839196066378774321757273064838798144769629349863575836164240019331653225684327256448688354702211027381683009689488158882320801126665589149694166779707483730380914107166906267858431388739173297858594331552063542873599997136881700444183144413308423554924703781635617523179161606807888889160216047501669363583853493709656776683458688928859944444118136327311200100247352353516677144906556608934192780305471785955526106619512736266739824031619812991550012470013543595049195459420079937858306851675601743746371953080353005137342879787576820974160685152800161747672238418433578410625636816442721188682417232128441196265061227362994135881845534972394576662327586019340321630339291885980396406172896248852688355764736945639419742476471728132381753684966399474843119310359813486362090831715071601990557249755905812536997363772525712167100912789639825878433894784865498859781106949733662684293081507679846430949845399621563071665414454379212022394443318496478963235941180085409600254230237497698318304456241127158464687289237159474205115742549420308714520544133274181541374011688235035222441404528265175417206710720327913989909887619573585331466136002548785259138524814682963623711488204804750101450689565657710501914874342017840359916331825511669928598275791909906360515344265952099766697861805754132978423365069776223020702792418549470798431883229073201744560928452999877738010948814715409010771796672682018604996524033167759478267763296812644107786850674786728626008775291269461364936585508535650006299119429866910000428233208860326599904102421400076667829314245284996256952601392018031358130237971083913775309666334238413545112942939247670777270408237441161321454711903472849372457795316692881709738998567950610778162747164403735295665442118305390017976143601825064441460377977106881435437227482896586381547635039036758277499826480845531143201769883201580635701649398146554792840856304720006836054454367783071953443007308178451679665174085915565508475894212825075203138359501882201717355901354682801369757941925359547139527887411078719507129354833825811893411575371607207777630209350688203129436367429062612478148801810584056796831870590962369266972941550833940371104456348945903760262450387061586330100976100959519807657527969629085206393948921685545975043923882619323991867567525864585946609153452060891871436282852733702475426495281594850780153849437172030927448275652234463711158935273425037766110007227030156953492987402477099468095218993299363466122940501321227793067558001351486699557163206465269718927857924747641201066476946669153351078664101660314488923782337828130125067254962512806615647245625144001703769292448911446260545821302821449460870912595838269307981637859703421372214960870115603173483615987922123234515267291989709338475194264087537920054737911233169612511293928671032677017501452115129549275521536612026873881480372167976043530090317266231285079121792314919779866030642101134590719159730972721397479096805832026625758695000712128358843185648810718665058009219114381499049228141290440224420035392758742477076804368642956768101376042838937926806207199251577474149053121059263126097383223162429877606911976501963713506695758958170910634891208587903684375952075647033798174776515199000497385764613689034450580324233639806350667560726367277984407831798588590461636277188236641560054136514010635580966245706546999321961068395035138721109479123272246908942908875948384154444166197617327023620188208967698858402716515715325266948731366708862896012078391392371175375961960446248563178648610090501675038744517606941899840567975519235410638326096766978805634817459288708617758063323506183079677166187408152898175378188258682881755301263013144748363444927173361320183606562796447248377946679458841878631826331677652045045647551476540162629972797245245517991792092067926471323988718713079421631513875119228229636914172852228022580358396788049461275137216124216816373731219014547114688251490312819187089360462351886782808721419268311192974021836080966068230105418694085214134284459517121379315997079892385130430028746216203340580159489828571948999360325976432188463221390518236084168737799323368001737612196194630497937875956130904085972039865039629979934180974074903397243834122374676847290954946873756692190201288893973003973138147877805221711577321441399616090317405966340685697076894610529161770275308622102094492707250307102390089066731223064218594557825897191747571218190988410850656918471546893193535704785286569532793504162830309690011938718220403774037823273607916525743375933199413514154544839859454709359748591142266970273532401307017037400433665256773069864239859492619099355716914348016235837531534870945393303604650126646901587578315769026416541006079199076646801492203398659528316438585305569617962428100601746961334778126500892772221281265872421556965700439204428366733710962702341607812108580511275875397893633118765355015799211334656816868282271105228731783793777696982394000005604082900306909688261339480064263677588910944806615480781889226527376751546904839353930805789077363737741030720979401006247497658235694556154145469587746788084497726062597378538745251609815910377022441535729976830057533381392513331530416476932255526147019416720345843027053881167945916055477521539514686390503624629339006713993314063313286041966746927858887003502479358307478301577490757303416479497536617705176389669236160853799234151126565457435228134711129767175758039705983447371314139105258117000158190910244717826132305324615613855620182985555205049915731020318238610936890718727195459418344565812212720294469121941918164632190120655878356613339304444957122670488973323025251178195496129471160189513799117788784679908733539335320943628574299145907891479726909656029479436158485141135663870114408605267085864250833387759713840281827066350691554490895252245174859507343596297260402547604725792805321731383425770928139293141408417871668105157025574501255015434895934673887429937865068230034726424757545625562957859506367167673815327910175701281609075474695980473259949982186367191193063441242675988075217413143181504509637186635309120252428735558933964595026153722534970729081432822856261401934359228791064481063188205729379868202222409452361620226257374592144548488157418536763224025991388395817133099479909735705649723014473142813495889661453306089012653145012686127167315419211176664285961743424040370449144383073720420614090481856834555040224697571978534616586803675297796318094184355188305474179336933345707084867215601026350308007253534751728108539190222180517462801361421938996047782551164563057702554782405907206313582573120119421790687020500615780326123507476200192833952618918317220081766697083479136112874059998013984051557348256877467326932180143555201944602356924735533292449581859570810369177565022148193983299229406461069885293817610682008813080120562019054149123457759338096533933578476449423100232093930726767025013062437054418537272846351543294608511149489898246786536740820903777765767819213173826199000052951734462046337088592271584847292419149240207339446035587724329073441696974900290582988526673110639465689990302947336848599384268728148194296441033094267018295586067274662177559511558929393477114540203334221065804096429075693534370809644308671392404046823123958202208914792092050137289934576523719895735211288478011749159714911850956254856776878679117936368245062126895544219116499549258199531649752990915786778789151536506913634090472682650604062598968360267523888237932013857675897584242768443738115345567736377738772078286971350001081315120156530260325989462606057143686424596286275918011741277573636675326252085128964431588621986373105617415654648023222197607041469854684650764991540678630630171442280267585023335088363333108892161465848868741410158716453031058616182080847348391809626178799134447385761845525973756184685316598502492208719024144737065651639216706101671461132848423321460289431180967349115410958258023668564848299122748029117912899718006025265769282213988460937845722539460953978570043669783106046318166949696727464217981957169032143641747986525643377795819307095509056569254394937562769996670142936442017336459292587782054253764041160324329525889431516955581950841621196540932896840977377987566192273429339911965222824269156880765641871332385936331384145173928028977701330038015959519432127083632475832306876734304435264501555482715359533826359615042362182605167531351146058293080488173699358345888472277461941214359732287250496891555706364619234961925179889791802605140566876065573594153236178219794480853849646612524216206960485070230414142320772746697202115285233024878286255177274746992723010978842408836064812811116865942044487554636668535762283623713159839740651614766309548872216147174684247273050711473793335139971347369681177032966638606026073062592431988782188360517534721254523959744989737137834070064654537230387279735831084101745104209680906580253474405611618236885600676810745522053609216676521275655398272029319530292604046095930136444175730459352091200609891579453369415917589260350693638577127883286217332578539318453977931477342116635667470828394618056950452592329604803198825000147387996499618530936228721621470287805394388250476052682502732078159153154953578313959396206256865495639256713477519291673765318766867589456047240838024258517283356425590647565784379954480843760358016639413713093312923090466572112517451569152870851522878567724376813606546592592911394841595215572051869362786318153035654780250588861978196100044759567883176816104296127726883159463588289679283939201510160094240091424879906633963310326373928176224518771902584963041307395214265727941469119901879704639065914682582017236448686690493887075340082430373223121213820075091460234238681726421917604301691060560503993728432743582097873155544050804327886705294735366356354781607692989323194865147124422999283958062436215354780473185250937296497013149458175083888736105378391919237451363588484173812152446318985523255608325916876882229727273416495767314666838329016783257885492518793671283271771100406501026670422952371565141929199490786367980826929062167691054975401281090262674808833209747726440655101173788383681165666998527238638768037634752750469744919901121714058505982422470579319905058349255763897566016356698164423946001948983714268166073104354465708776985113781950566350066151364401751738744504956111442314167827908712488414921255302969093187657442580963346690160225183936429585661309614512997370643032405051174675910396433533823672080967344273127597879629109479061422795015097682157518469644022188097084935450981988601614011025045909901895187129746662799562430892996097336567627606639241931086407566580989850836014161903733478993781113656095857824641382858629180234620420616874534664563394849182737939444613155434056503275276988972381340359323640467482053371579879295918680015863378534452568927388428199612265872679937134767640222036638179516433236005940981784569828127970779009322377243930571689735764699856612271062976775652322184824131858331462992627388962904577907875806998000844107485600292227894363429367143914130811636544434644353673605285395834991891185130738424297941568569125596362755843977787733361207240241264296441605258522125905565376225314858207495515778486782202150798524873539089416492877793288198790973569944603286631170493486502543048666718626456382679910476442307626002597763748914976949933990909527734039642342702673478263263928804820573205244470631264475041673755731271906231295462789949179419279540552920908619696309398526652515671255494170593436347726177690881599947003663879631769564412138656227640669572120566382860279943546055710752213294824445032614754531772932208211997248322579773391029905351232334796257388109001392707219023210380278083645935094450339852372007798654130125743365234125184517587209977519485824128326692326810263675643791011120004686144652590906353334994227781967174133457422953728027465508591202968868864011073744974130180629885640218021970751637851282864102237054763885025379971725114840212092115025973365355016070798604294871958442760171929771767781308266537326457583237697299005198790217082626019761410682943527399509841456822569870102949305350465256002656203163158689715313807911440328927332810175323982501080370977883796919342504179547298761806496176128469195511078969393899806938565608736492925772037380604826626506673946120038615375091432075749112025965471283541060327984198389283883851776482930946148412496927945008817649556364536322908504033659268060157027760376125904204302086232896823364753708936170036475859160741480255478589599841714204845800817692434782433344266849814278294949486050745486469719914074051551098345486562837081139302797610971136026443038247899817733253181098466186179241323408361704590549614306230792852063413977109843467242116523356885476861293231161842734076150813014510930050764270348562638066507022603653428079918042327126016700574169306436115569937330966890195835233406769340474848571644040263246257200841636283224244295368260928650706722151784321420807678768808288341533276511492969091047860321728294013247350276614538668202797788033152970595179997876114456789174314736271543394583082761042421059599553153569813411089020469006114396767790393928915091203936192047504299906103814594198185571491454424944277107696608147785607313701474170196525848971624527918512780145446357204857769097845574389442184995923556809664274416677277664026950023391670679499987443167164488872120368022582995941862646599578580765612680310185720107423016051347555434807027536694703637847504412387707532123500269518875476455827988964642778537022965407444878970671125582349722922268248123874099686260984211470637293898196837843260589271265594982248721273328447553028336903686550593610040838024281419993059927761443055893942971710377361865156885503885689753600608904556141196253193346945881758922287503088812957086689913734843110896987593391249543936359629770492860974817900402705124959241191701260021889770845903637269222560297543937331769050584026031236623806223564607090493568378140355908344076349053078118821980671915283812784235526380587916693767898790389567757260231020015784448573917018554107926654680818278905551692642213898040704412262595616574950164315975254001758762952875953881423132297335556939100502752925328548274976895173930575693036490577917587684504050201513117339404526766602040371036063959212047824544243349418893878939750902365940337283634069261030305321637962170073244706282152915864475542035579309822921504810981458309632769412706490073095822890141409804706285973819348591975745599194327801944883019566317039163672147497600158857458485967981396888359225258212121925202418210155423030270108473470665460877941052448306323522356028600900714118085642155052189920701790774014852903987565538022903101299775758910854023260037374208907564271488309512642952030745380042395316890726712368442056544250953329444697359973080598590331885384390282450601105143213176187302776373986403606107489928259759975824145804004466245081086176147736020056825597472883254393926713459688894216113190353238229002599846715568488878575088512514530987359400675562266596862848037731424110430271996609438068001543630330327493174759368974905218623429420263191499780073793632707666329903128476591963345944728239281993841926287359038139187764149803600160113983131398499915390677812186147310340619834942048207977660013099755147504749212044243778330476234948701786614363352442762623848561784027755936017130082417914948707191945612198276959549762537307112826221777875172202811897146822884332106276764342850433270877242579739691306654628033670053176090181313019427501457060101824541849163127407835905913464627707785922139484694496291737660956477637444820842022686375243484669803517250687675045722957338160543099405498199027721827865515741938689667290709805169791743933025976679713476408926655795481822171254284404407206570868252282397389764911353510201874776011510071983848954201039726401242339539885132019142290227409058139983754084618552327695303976752630967945504036049009459115252904784612756264482304585627465752654243368163227415347378184164396779117659580207464064509618760610078958851003049073054832252399868080950749777854056766189856453252976195055334164861669869232385262214465530261442595208254129655801117851596140470779812963759024329195428160687996175253943819908445909255172708361109742333451954589151445499424950325923544149497768984958815869531523428005166143998789219360957587547606293210023179554833829333777577635092154690236510737878518283130623413127830556273284806740633031475341761858622194597950603166267409929892931055614072500872663369466110206026050741939271306923852480161319255066591891192604814616574361487076285527099038119227390166135781336836926963870285403155006186151868795264427416007924484658328628749171396155437384336023951126194902139994130538309602953987184786244149584836659925404409103867525231143614487035534940203077345296941207164775818050333682735130418560246381901804453228420913752509287197185777219819343856201930441467155612010486365861851988787213481313297445232894237841654253189671558722012537494995582357391375222165648455145902795894099614072340192225775390341461820581098122213567166070930480260067612302080560904896077349485120003085967833265066267655406583129829205685875653838732241542663936069818830968617762351238204532499143262868698041022887631243912866953491744372422766164932254714658928660469038672337198458267835931038100320937432670715491868155716880114167093995802154842789084700649919116876804329516286442382205782628089537195441967469684789785077352792872009573488881530990357928116301744051836770853067710307873959426049339172238392527987454841084418945949796471704453113129282489041127223419263714104024398666782358802769172426863881316318586769149990209386826958324001082499297422506916520973972193553476821270122472672511148289738810916338525053279757990094993187975698235333086220205344893738318488153469357226681818667000436303140194022939331211638196794976088383264392443880973576768424802880355621849233998164580197876927391294156866964686156477726049563262135836086741262768250709714736327400476412056114728594263914200548603520028775397815243360850221612063507793180724003019217999229775458536023406377565638489060931032787112653509332978367062306790851015311846519456179448408988730701860904220263000880052937202604579713566498001745246158932366488469822773703936381539717480396865829737697652413323299352417319025609600422394720369925896771241035994979681063350457009378798821724480293408499296856455714848611069433143375214671628861411504975317026940412352230282693352628427224636888621505219428345720053598461361553931721384596798943514457272288182515114449141212078272536371735973993337605600853611492533554637548152852991080325850762070207974344921935681757085069039079851132551681634591215262262232209789642811260412134693845108028686436888406733546208053789892763914614341707755819339509615537518071283419996848630905060755439903340855557968408711497993457532950306173130925889864936376732259591850925798102586648841174579792458049190334944284424035015830129966380793492744081171675228393433883362592137168649814691696901806762062390679473097725456367782248312244916143572471160858293837398479275082171597853304789853568199760592313204161492626380863152191558617053219727159881157026275609534623441002049755881063129918989553758259080752893297427987914937628378367326096341829994333087149660190546420781205069901622011265100955828999713172605067688960596335392579016593845376142514606906609361292227239432457102349214205115959726108794574083045769232289370703269080518048933881093230638628641885202805707961280224582409781437316387372269505145494665637898977590180210524945320717020605748944207817971279442734513393042151362221138521586115720128303681775793521407927251160182245004043212361119812462189117173786999591867427642411677641542831583228804371747780621333440253638166091113774782277579473433405115734785055840126761008186837402407473545789941700091326809123980594729038210394004408015727753471749047283101304563087602395897730592769832017770150643406606227082626489631662210312731314373238066620887607359396704573128803764156029043631580570198479750773471737617637541261081121830292164720840326918285290140555879874882728115545729072033339794137186224897718970112572016743199347374672950250071331197307506836851752704762070568145402738810485005024269155857287453184279405472787984499497133879623648829313160105133826805887583457715834464770071142934917332089884994953273508882409331360170969936689781713841029401725084252298266891828391938744808919266257203914928942207744018433884978563391965664859437844119002062900224575885359316088217413345309326937654623846760644670486424195879519852167922980303409771856522300431639302357960450378774776256974373267375958730417771115052986284263580363494618271762189236072048393397523828508172015543342477603069042767856827687851737516350029858666964833628053033726699640055428951743877160202277940027859730885735168675980387424662949517285400296342255062783163380499448317180319668976810573204788085432867763903571650591440805223532211131645137235465263166898839422773026497812562368557207954271310897560898221822001769995044725232255036302640027298401187449091272664010924135306496081918783879230089750399840232077918706026101112961648799825484741118001643536929779207864297389719011147626626097835548674956101056876738383834046395166464550551173747369053581475687853076436943335081395597242301259476383049211226347404637504228186311537336755491417950340576502242906991822370571225855256438342400639547699354888416263408898114923298439600811698752741456743185524265806355228019234250020902967944561433710011637925362912195660903022416152734000996861689887058586701737108897315505118512802729870762993952315994983242841174703475907703259029142822557042781593087164227202833741228248337025284424767169121141595873499480775938528978436620409560389858658142566380124401680434433197298426042021875277583798453889015338064332777524197695034339618602143362756968420375857259227758369529483225975745304912022755418756803517367105316301811839630198999507018477523808854159132710290913168744353015819210883897094353621746707077900037804212261355318662130942107506767729037601840094433531770486536949359751901758791786339915524023355768496327778126764415570821035384578648688691037948629837879213935947617846799140111512001233115845024725868407881210406749382923907931733553994208059158787796645779467612981785205539997446897524601257391099830822779747187858529837285915118098370116688402396647386055289382359943613999052125208654142754950009761131777280889840677316209536606022941794113265643530124339476629510708192370172595900604976097974762607179609810475733559960653927298273178309965440491496123306852787009905928665014644641655595988243935656328852895260976386344865582482550113572589464793114466732664360178445776961883713925189189108635430504396242544008771227327471994542442521155852329371911744448007856577593740644442515760509009257463955344882507029976215987759140377267076418095111051487062202797874505685354588241745589212498319891373532958583072251502583363179648237428616376823280077107697319000038340439339410390886255379334235465057196409392141889820780769944775993189683227920629953224182271175875862046245685612208253829966050240457942026350397720956356346070965646426876513419134062581987212520586303424339344994836507128536766509634209450752098865266696627816173229224831849145828749764496881319005052760402143326275708900082232296516961314458665752205360041210298835187002453198692722994440790147521148171993001307764468744800050372539096869423695357728937360583582536782506741209724683227913959425936697371705365336590401910066813328085761552186358083445637454478010767368389119188194511056264795103686302916073633272911460238785578230148178090641426011924556245306724661689845656584875136453167508170653603346135902823089325649351726634993009128111940964444528637612938333479466906831236107985393326925565207641751710772287417764395009324901231483961022277646266565298313187360754129823573047712978347944575267267924606553809737156262446747655966810735841833072275874254973082614507692795599517977061028496715083618025041807015927759413133015181518177681024740411209219086879878087598589349726572604398539191670742313104898045937298109316340124849716218489214188740062693094248908400493422744468320706027566677404498061153448275741249459851990154408794158919532114579860720374997781961366876580857155163368227552108767016572345299754541331363712993141997674729878917833064261152118805491006059273346073952870856445828018196830440320804842030892753678661950865612720539997723998654567493437479179157416413214196347133290956949980933936917815437587447832558991336345253402335209886226655937920660110000146980285494370043769662480801264673977888430386442977569167200940735920508498095133321245753407110249890714627003703129447445856337852558790082416976793753877857427290937168011538880030627297552122239945555634690689302501208026952147795358388418175699014959572933570907330241449720533256623547075702143729709351682749891653408019286684379903254821823284756683329911182168288023703160192612196679372437923840883304638038384746218397279161227637046293525895084642927161960555490107274630499484707446329212634533408127328835360709625047756105492185516536712405600131928511191626621764194054941475814791384819142387333903095322579481707242622063883001865063845204705429674824669911962975597601819935921977652166306435362455124516921014267329852896905984351547880085990758649383473671632560050058233953717602065250748619310143964315656160274210934056266844755744215696683536451154343658566956273285679639572472523449572732197460470156218427783086643515340015068216070083201809114574198759390509382862874248410326006826009270979250304745543555117718939677722289049958191106629269402874867635977985750670307630549593755697280492755083212893576329863704014619263305970752737733871894729563995509961854924429194310828635798338899550266987162243525887399572587659054272616160597620994902170563688453905346283870779594149762012261032604713540861227124782503148180924257386391092111468007430843993933909563923046949901461147700169662023782985672013838337587116647407191074550640768634810831345196445414064819721175052106392286625690808647625649073893015029256172405179912535373924745974776384567404495471663960329049946240015212763700739058285394971736945971762141347341766278395996450449044693169120709248811982136790714913459699076681562051882615939991522176660289202392940250628521904246153431509357331550353896892797792427331577675501081697038253998337483981224390708231498132577478322018595983080846080808803014931072080520550328268158093088514841050909418994838252273759422560576317140158839514766570534153825820747362906370338985725128711169134898045400068449956554468720586858086951606639081977509739703981449833768778844653966753020069884685477540891570058380006487421166181623579773065635980142162514684869183117643860267763712317274478710652203665354638383862497818026247842853903451067820094675576352508158488406674402057956381720021164108422643091625057322509000763522683216024455737966724080868248169113633895329990444866465818699625271914577985541855397231927693974711571395964123668479940125125847905057408648810303395268235033771593887518725111773504721409083145951973734879543273510046118159387169040797548060405932797214466882034502826445530480256567191321447216563368117078736315064561781054255048496704715653363374074268182774598415775654029819674062716185336030304183960200942702180749534467660565918719656860950868842930540163107964340530511742271086616240968798689700266868250698571231664283643860550034327161175119096274726602308412429608739727023988118336693287370402292702027381835780290395093417995209988021053339666937222839129493339808934779149022564223113196234443580397533158647931332950913185511350491847347158565176701670426925036990176851435738433523227414227985878555468439196171025923838084516975552029110882986674855077771928093815376713057619073316530434483465827421416673326563585868692812909946473531474975447521778684829442338608771445074309921013242758909651221479782719099181141598064699996726815363349478046030982203067337663013854078471735242594550270635372572763592253898323096143290132971684330299466608146159621231758879879871411625227452613999961924520989157710932471060886034982577992335470974636260806976704032120601428960114704532685416385782932008456346831924055452307851768848876518172557657982823142558016261733179432566763621077284476389394856074238933763962634086201726863852684579392547956068093125401614533579502665228884836450024453027164321931337058544689053317132470633879667646692721411950499699307827662891650561889306503296042082721516418200891988491038366554498655334623635963787420097477552428117637229888635595823894461020712826302805424377123027944408170909365788014629484530862585196641978371812782420982495056951144165199152805671569037263336141844453959200923357502280381988758554811174194907895185939686810474047494138238408278437153043810343277518172199187928680293107937846170107747658054115316177925713660075540614627010424927320863386373431277237027250338891709373848303929565873012743355571432015332324664312845337575343073270987735895389445530939786547260886887341701646580655715211700561910846979657332175588188380428969618387368533518653292970141202184231469245586071729393140222531467366308926431307854366598979784385307211730904034918176602261804339089000740271190118997418134490646985771119030451013630865845032812027449693895567220027148990151566349491145365539101148759899483492865969894054128536828383028427475816698038626720787100481159449340143075786260486842556886120792678401212264426074591842587074521358098404148551275628479215832159338337753296035563043185313478393141954941344573286657979206766132150137912518606204358104824436843245228539209811468339819630016912876498065044122343348061530748517264993808669308535246099565879644372703427136664821267822027963413242681182104926350804557679373756194328728709216035245857646210148589512071510604125673512459566512266876167446306042801181673818783264489411767631109458638789377564176134334243041749999852085161172309320470785885577521473853326829640301793415381280874553281656787222049902737881671559564744164374359746559638969321941807026363498872688090246559561521810602089494130592528149282303866723435154227223359507629680282026353945126558430450161085563636805144736376481558799380383875455566125379731779178561407704676537229357786507919710891018949361405645179832629501979537625737904094590152334232694794976873924550301572253754067040492651307002458005597597749801992640525053894454896203653367075220672007532242158841140014008575666083843514740678260609598238333694831277709120738825807718467402144787024261987699377772143750802305080614315920527390948428284406639261381553596016704519164224457201892828609720710140646220309703596327797625763888978636542486123240323532169586906589254026392568518045587506218076750579326281474744993080011388345349447118993847047228568831614903563927227876487719388171102474692057570027145393855078355464816257755964350382693997058291785520430961856065110303022946636339691928846055246815905405391723552993544862711918091075312481650650495839390854128048603312481392757553349914408501796493889810023699656268610784884406390488671242208632181932228129812401196433328805566648183576499823399036774331379506421553732697715941821148350826545463727830131673160050447445274443412539433352939802843393796986048779228670003472022502626816692059181857115964764008548091363157215939678257553898948113623932548182750461122568888937996092568282079563079536594541466897566366381745021240075658129936729686138408034795196620024178866320608350658933498691267889972387135569721942124035964018475634265540219203979671822579644153183925834691306671940577206611972065792403329759773647606435287684132352976984942830309416068753355064012052475691682672691127357717957000678133593202882770385121446669378474484485713823687855599892939046564301056729149461428324978792343256787826511489921140043362348429119680093336910181101593679183055157960878906491133329705625241789303398629887903670092845460309465265348320471519939094517885255598785108452956162440849158136044812445881717991885665500079640502409809682375488968521041753666281142816979735637818727399233548097121460930301163365498627189053722520581636066390000682622857044903396133312220835172399571849702490132003240772292730005345773858827482096268628050681012710748618315105927535691253579696408004607171582227302583053325960725569192380554142024611490618887709132192020960357275557823112691402025706847187852439684068031502512158207372279472771173093487941665644304312138706278182851246117435144298996289857523456795465520667465873656202078288632274259862190137762083161455818457593276520493477726634814513045121119102204650510555585287368416320799324593315857423416152921951571612446546232085154129186232963209149546138152064469180944947871315561241958108194693361243446177813627263545797702919782131655578079522671059890227644253806296319107242546685278717063020405088140665103957136348242284560713280388473950868675932379044398689912938455306131263476214307593714543570094169858391841767888125917729776808380633445838116979085914254929696806082288399168670021670129364582928522050078733180036438810668909837050233571227114952801621523394654709960727876937423815044577868661241354168209707892661018375543290656192630213273509621140388860379359752328260511089120765313819025465130349606420609504621393780843105292810508785328429143574419439932155300221819283728228192040011218196381355737741625537789202755490001073956883286108366464216586072483232657029561148211876814351842198921574633884934844765707856809742385821328826480857783607616907657947888666528096058478399078140206322879847834117936917630366930769051698872099315720386628754907617824514299202048726592128178575025275071360017111251400831783123157156414000891260775704176009443377367514891223971692265887975396686691200873543745360032599574881004258109885897492933606600113860580166590706392993382831577568819378192180755363380693823679641810160895655080403789651259168949435322618262227896546797951702526603922639799120431684960572057393987465600185238573907342395796718381675290436898724013001272232318290311643376069162599821203182923104423495631297236475861711321988444487965141820462418426861236625698695933440969423103037734441254724995332413526980073042243289921479975953488722186843191871129421636106255285246802608343080285868394985700419481739723121931058106612864305655564420381289754351609808527215924130724929140846704711847292054745403782303506955999428542187134885671911336012930229945212561544118178754891740196373633994095942608113419158438994762174795671661782531361461924079793747551001038898446081557197357272669507454398630878994593808948292785984795207129649288567434938003958597583890015425094410401164984361023717839916411540372834710460831361827750001274167853214932989308656216860031955405476439784518288425032856248196848644659911214788039119404730860597295275875296700268149914529017360998862392287042386556709300545620832382563396821682803451040523968804486235506544731576558037507407192024708349558582956501237180575979160393513462090057024944275938215118658385211243308645247799967067727599255261431168411724906488944202914028427780791089669773312494446039096944522813730539993634670451649258828556851574128253339466919875953123892018819762769062756158826057284818326131559401269881296954591704535071881352154238331278294868298220382079523165388952689268470887071598121837069686435145139150897217098514222427563288648753323665391573970284602832011067286001690809756877021649004156008163193196959072640407708352831505813499651588531281932160089517672568326504583603448112023327722522103676129090497632085268507890560370716214295999711475452782910422647713239103059327392665781986132326954333762849571526797792749161460372299622380833234705704498423033340216815438980424419152390445318426618845114368441382279994088363342539830285733394115488937250956009703327710425415660581670275959168484638915523836251990502775881170718893936434338020363464869506202107738248271302699295164042062267671379614904532488651591664181067056730866711475284815537948369403143581198555935581044436692823959591812556127962792607018419940439156796478334860211515541185528995853271751381609370585717630258223701538925443423223454859348224119325845235921815480049821556100277783265507031561792319694193576603053220998118657471923968018615419556536649321371806988064049125589958651565018270133897240593620136294463508016216202088072465038097925164378989890567485330720264290245008318742972672361444580397192765952483404862728355978033739106512474052765288806365491123261386867633892028125316608296673607240685765286163667847338925654935783585554605744218470091621753082313835604196719894236560071899371337895546371221831065248805725420743587290668856904989919968321695449920761904383103266462660387415898506521119397716578619055687098465986401520471373389958059940616222228282797301566421951996480894279143003223294309952218070869195055983890724182970801021002581368602214985065854814613117860378136057824351214760026723545353449928335416728776333121006272385575829408891306057474743137380636867200642768378177414484347231150679119491698710095647422297847903259251302459314402258151845156191381268968851419488679872374415430296663317472976758738875388751383031429224235628719242497074971737966273680933228273056898449345413385699838689777788572052483744789855988929003114598648327553743488566605711236674956229635008640033163378848389984772848181545100481311784060352348253546675994034360269628635073898986258766532565955600164573013385211224233382497518647258122905396741506276688612701146656858663779499126181681192585050383017662968157673545808742618005832399038527953264961097365286935298406794566367686242687376093308382413627658154184095178579138935665724070138129504060112189582004620127751833253193861356784090181483325859388544426339804130774512239571010767092631485554072918328734306055108314692428491340154406240774929170222327359382613554705347839390362094842410216880950091451125944430739639105806332654063079706842097535721776230168415218744617042131265505391256829161499180698230545588429384072384994677219612480771625385350769196417205792571845598691559772565144792082717533084048362186706336322928703725955835357879355597561263447249938460526122774370818026860402988870833924097812400515695056962244174639129835979146612843725937628208340679044455259342963569417516912098206632372213538722031222708066124674926097971545008464073058453008871093295066098108070645230774959665397350966957137022113088240632687933460652548373749547636926399363698586813155067848444438544946766562201788190365078976823214521927576597312861689272991929886317471216376421654832593574270799676262868325850263216100947244694697407725003323001637939397293714851283193186005061590328091248001417734352004534135078352070431716723228970758397216604577786803327233352580687806580186396011685793044551024437288185524578922685162563693825002060106080010966220212691856777337653823957202202323712063155029176374847281704500750267421284295365909206581161656410279865252366960953191806654425425689494567967493032546957242964935804799627680504062424102998400868160491505996087743796112882216630532531207545967117349954589529302848098653494591763233479081265333923978947024833995196940562345986842259616958518448557435140198290317931588535185568809056159318334846393029794099553604289515455520457105047711931329356979857831095266101504313906186028202866675346969687538594961692871777695036489615707517513328943288786835594494241141047492408117582762894485779464971303995560447272593513090632879342424375148264654701634280678429419181152290485459734641667173185393830314433021177443614695822344431683639693853340538462518666999892087754817294555898236316514305978864008537852170566110105627147188260271093087394734367573144806919261871210936731505997264180296314262712036939466582255705296130496530898776323488547629983346269740934329523320933578491827195379010432460862964471993723699670214813907579089569908639138392453792124321736560232870413178314004375351082023752045676082045568167198860842699477168426329842724903106993332314782752471448473049567953825847519807497855445585331288942230484128026462734150846402886623262524340098708747967015168462136451523869454222528608100388702726987139616854629204293540812464066798336611548857005471186685956937506345133973750239514071807871050012990199749783857232940464532767712463784844749416801297136261529243946820018729021002691963547085377540405586510531950555745020906735508772565641588102790621787069209879391387739472947106286284171714254102981571633487022887429011872271480640776428446106894479695847437569810348151789345454690142509498201698889121177542286259332278000113964426767469497619417202833794030454125419775743266570041843299149780459871125268045346434823532502278452249985229541892202935610424968083213241305978845778453390197814278942551687267925338262432524532003965922346165412856498625192203779660754833118593771882978570009463180617718318333547531951049455985618697605356239487468139559640889495262017338808327762508432663067573431759064496169608186214670465802954952929346529505236102927969125285307181878592028684957270047443488014815933401177067522978411307323343966307228585277303805917581187103184012943956113011697822950019581424345134253562673665751678570284408950557270288030967671299771376467888039047349875727569992856567133315784086680868330177232484974632902593818468778583410451838348732638537109503306069677309070677417974117898447988429621843065968528161741086015332540758046938520151926494332521877297913949031304592105004942056021535620880800335573793430204661828504053939748526459279892097329110375106223500953935733060191409732173744463623838115567734436182264965406139029908096082912755615533057135017531426853410819758412107706172037836213564350366875066617251174350671655292166296296890184274338506924259497815294429128927568660749884871505024623876119523390417624097963749897208836472760520251097027096761762196041166255805934068033795977940972004145782793704869444374347666867271205673438736603132248004322793021515553577033677607126562856451652521587838545235104439223544207381648355566364150605389709455027681821741280309475972741813012663468691122914138553470947357641219953998520835450891543134336040324361213065980762233285380189790314384606724341037016411560068598374775403197479883288358691332044761878114136438700251379096898391524288600536484635285157659573117148652751271326047215966681497107155512379454221458251698050660395819659074731300840715662992365811215097607619663089849969578016189764976602006350316619503569550456883375546995358462462354672502517938653187716068073808731524959304087197956870310508135212958361433209942240975088153933278704851964216738557597292320972830908597116922803763141700363152105736690289239194958673556163103686150403386055968165406106870198312656827953502679239239835539526589074001761773990433419134185881889671625594032934375164106571597109627016880396003050624799950231058152453575728404154438350578088171156540050671300519500759852053268401130451008491893286522981408663617417831978129331119461899976075224754961214183259706853897718967898614917802043948680661453497818248721300812350218099221764196227078587912324717465107126791685737379668522962081268864960628691294036710097442611357155911418377501109950479813050252429509725872143841944678301820982323290371558820075503379058105719082233988223537147619169006092873449769455449462229441713467047414775918012324993303806309088992665209698664296565781190319787546510266552676754961226173804430311780191898161976441566056203382989570493735425560234494582625523779275049219388055524656161432516568921191869488087122881426186366826257308687679177329421843211606316926429769749971667823347842738789031854232495123844871414289261594068943910787760618795738384432219682326130377758681020115046995007831834914374514799826640177200556107146930083341303946138523243034187013302381196444409147519792859583108936072634273572580564819122826928935941660853675693567017293765127362387472629509225697574195870116783130855650409506190102604986195286214702615583078536138631764406225616702066855486134489584513591923062209929171244280541467985038227195736675426235443149573572200217610218386901774436698015418478885513247988796583671981043390866560443054992316926319349047638804217857136988445710320701213409025240967118795199347250970115263947727289688177809602840920522218908430709758859619564163572842198551883914737629737469337782283120272573989678287628436767447688674320155989623061039707865562937698505996641024633131153822835058778139039042095062688027641662282644510748651205673673263075877669194540163158970617914367626520299778396491378927010663294717149944469179075883776630642113978480644799985835568468088051771089371011965847257011064601888090915448642835159627424350352116651440775737607765144932612489085897055828524117785278180033002487097965107787040567210071085020868192956316896155883816624103188777717226095613771515596373300385842082466830484148595877246255969415324767974156425927197616254659920198340932094905295838736567171913552866906218583283092711038018336285954695325296107035369426068485613488304072643022304927103009442429737134970477131169268585795880468815549959023493241208733027990741243006764057795909189772018160501036581022202071333706473568908285772819076902124935537662378684796507823511877419795347066388763892572206781614814736386875565499565179796527108947722761959662141286867829238004291644167266291401033983538590941051701602715927315456929924523040942173629520201269117537598664077227642551504653372094880087693095099445412814544333314033362616442340799845710549930737179920001488304175174078600028818363970135537059905765758146385452686778194829730252748589471497671109068926312850214903167210092015244466503890550374566578870583052722854498367136434522282454286762676337479754983113020769011445963528884557362876382208531597744330394547789151737480066027980464319645364604321774410582264105442536391127830437331215583412137432022963325248180607887041576901208624191291334385197405437662734157930210162712491165305789846464173422675326111572343197065587294604162740238694338475422408237598661416415220238769663948778699914465113206419977085121845533904500670423469458030601100331197720968808277406070632991414117350605122211803726735073454753273373580675984619696582026184234403666494187820219414008078308178006074101880276591782936262889382298221866286981348476429048736311988333848159405069376786392270435751582301158245007353916161884011979727098114301225928822181099826721343677197568954773014094561282845488529324814732366127934984141098228901079255316371286206764449569527723156733644917144801633115626139222433309682680998539267654390593205753321727826113826153366868344282981748475716617875278199886513656327302837691395234082258453700686077309808923082602575604943978468982681094704626010353726961779839361982721586187392937700329553212753047067299363446352893633535708464001264874640230237188187547025051014830985157933189948144780022019458231965812975574318989830119002404462747964630296577089842853715080812860847164708659076223410395052584312096281258595503071340222432453481129291591886506252165812097647712001322901841972505772740846229268513396086650882337398697344529815476275985230812633558752408362045047496106225020929307327183000468485368094709533463408789819512549243734427890574533209807200388701686826488542733578503065886792543272224970301610138555335326221513849231348620204814661318383987583443693113161528996223675033598311694851978312715299485713655808465291943709305928797160521392131577536177532447397277560239685382225424517084344409436343385944775201546635069894417295347543721290282080703834254007307500521199818632060460206819229068111647634864255781216915925238641044866499667248184377875821480386461821731279162559132993499834463592262008951690190653254000712642548284526325564855132310964946165996912302951202968337785567155557374981092932227010891796664000906180381213120535973370301078768571541760139785509240123039413225792032651432542276005914155322230368848900251633162094059555306127644778350145762476445186647417662243395768476678563732058782412869074419345539995003120992539681481757497410349381854940649948426822671507001049930594933444213767703463253246020294155827709839278568152120004522385447838245553586703543594237817561587390066661395743335619342540955918982517229521474869064290268775705243882073366456854342726549685993947267111666266662932626529598471685070848845175730535679721377241421108574455067571489324095199326375656208974810837260319110224414303066225448126227163974858363079688957693132570938314124441255617464484592571972815543732887702694630718101321576782541832880615676771546036631347094210291088842861121435584105507586259628755644855841576953955798406450185332029155099640700560686902503785115125603007828843857039774637573258013416768595299749682901472707418959417827678476037135486857619335955469717772899601995015948076614930651006476359858195894575484289115481717071445549465829372808635466396685931284918414511750969550217194559573907547537758465284523246111258695518078730924565223703077751953275665002088174117184159418261188214341764477224794802385394755402872163370746408902682028775024815463798559942711864709381304403066151665235183361905581736914036785692751775773610514565712520723026119908326047204841504203228619995842297925840209205459503923771934420101510376356713539273022310667925333720349332269338882508065608761706885989892045472250517810493113433287147348168412052867414565347631400542473971923250715926835128174154527898484613677841566610199197272070364112876857031339975772167927725024883584180370353974889327507924149762123460482537951670671801709781552020737330553792965874307996430274342276992560790222091455454740323590093409455456960428880921533307308995320275984739415352367815346990659036740032420022965583603430092730637440294598302923207226904288167873662267539749171284858756311677424890274513480391960268646440295784114273202192736315320695411517265119045605486187894108175370039525349089299359080394182055001435013950179270444169709035696886807582841847126049893398297606646966495473863135178097320317906386239897471778365074179298313491037530428146373032561889088914479859380615621646785058767528694500535888249572053663404285045819232153842058124922311987962449759370675253123633650419416558908098474515360432267784202857927902954522562678363875101790583018164150495914871244117484556001685708973252291321940120623478087683923837311344277954155348190536096220903925330603029928740910809589534107336928096176805954821188905967041362252915626879245144256941219512491258323239499694328258252173710621630820254050560345068078537017540623234459815424336738751250295840279389459973897608188604644037699584881309278088834833093111450585146367727364594179812295579339219173833806961246729775916779913348245821295228116040461169698672141843464015222969741949995266558603495869585685936820294294448349824896829411346566726006549994841953719311753490021418286860076102416229978769346415403932773259858005809082226837913658281082070070558533351399086900024157982158301896180735587572401733560572349960965067551133833181737362022018452787728994998059379856111389684935502825194505237464025566639041745648835019953437143277830011229930239400628610758436386145604932858460878053442127349767796744134251912988284521270045551127418918361895387470467719831695131736083219769362703711215950321650854573467455286908015122343652480481295663709909604534889076301772164528243801899281360664855837472212004877787552778489109886878866511142791579100028837944474890467779465415165896800110734226116386609129793567342625473733232321922547446870278895224036589364406270510346229193663807712850506873425804033781125430087811189442796066530484451161834337463785780721465685611831078944238089786786936541821488568440940827012587358513481742442371298752281493143015620859574787960216189375738570739060707784800086335209397313640897442457782971378935513996013410149751673166553006011728419950835962269619594537194092326078569608152499114601614159630686542016013497242637286265386756398189246580242356886954496119921660208512801421600364025559002028533915221963176479176611218534071042814715577362827848877185503034892384781505044181733265192725218622847385929456533048052236470581269542656048237948343547776892916423476264007403619115820112689105283875193651453055866354168769520564066353852264695533914475956700726859939588396624054679565200533665463361756382931919889419108051460991574285229147431301894973933804055098997794587602857735233737762228382433891757403693378617789003774542927321009515878495301906447851465982573627224157699159027094651326522459677458371232565102910588356032142710127059992556665402883478619681336757067831984503511469600248877544027394454414909277291403847063883890019166613985886905615505124110158461698012254849348413952894511659151719732343702096912957483064090067992224219891430942950497492825740321184655515931444454224371668352750818033541925237256146743360700906541816311763917316350690508305952290265029871785124235028388529031909010027943987186512375817451492572752189785323151609614951128823041047169332285887833785329730664722270677198624463789138178791582275233225534453928902913219223735174685644048079112905189372406840325737365938098210962856200533643782814971520875815142935284606521644279263347707846806534368120704737137170747810850069689552273253565484638267121877316346425015034336699313810557739429258667869666638669730522301154185389912249410174987019705588947676363353441922655153662346554500737265956148139247564825343019337396748028487535733046384276268533217372353759751740459151668450679778017805562658000363050367670008369338802650226587762864918125560559040342542880539151253227232120408092450255434729457501052973186588815150491824501772660945934314173067150465627664287407193637846641081001149840954538082891098158803123257460090314975595764471151015982543223057497700929300269587355082311756193530911186460841054923635025720748521042304644998734388991768489889311412358621746281728166097901472411076485536177959873567497711113408793468410795460745951431714253191157182627901494650606005886379068366241947944685916974276231551035575431719409338293518396153965829121471668832283979008907176471835880592559772070319801997525960260334260117840111351120468813201252086311629985847091047052196582340170715157859362281219530885650063774835321505949254392694678689094998415272908211683570660298248253385827904934306931564947054265725927010849106142465314171019440333222872085617243190031859546498000959794733898701805660329898485492525428059269834179128745009924382042207358647798834119048488836139895589018758663166446927990820730028380944526804238478884322648838095911217862288853158180196965137768375690694262713388039298561170601031357124919943875732626592938943788857575739644389030309007098836579115640158360700814943577958548473899484699985740085595366069649887026069443338906553512563429797903145255932942753778866157809570162206030197896816118112849689417803699219370714817045585099979623397476786317102898562220875344364737954053729726852481598895204848888051589164034527517940371326437387704051940960197659435028659622441200021351108553833736855430740767618890863193154772756692370300529708232175406429677917847086297137394393555623295396900568478835582239259777891287561697404873222318094396671811432829129171569417680939833964546315681236301528849467466677034622633155985444037980557396377633744557857759849242505644342320233786600609614078679051147776527132683758535994928756982151750414729848654755766895300324422407968452929969436560119331027950222814354048734713164900619227224895402459404456458398252765997710947289024470727196666542831408000443433832656869566921627807015920848321378993033857943321667862846245858274929933417911304592850880282541321626855677206523468867759336634610603210744410271774937774873662972870243609561653564155162338165790672301504445838968482137683674155858047812516993977573330914938935501682120635016456912946539063547849189422826514650848816093626909660190393742905283787663576382099427284004924426125289902100254949966149536136019860872877358723997406751474841588098897897382649837475586849354543634844042846633143453906585678561875363268639549726049799586566294239737597801342371871388738107218368101531947509483232254229181740385554953420374490934053740304343435972383897842884450512685968277303954143013265117967378228010586507873648757336078457753472770917034610075630042725125610508457261857868268968894084605881138768819604164601103969250903964315902157923624848774700809051318449461763521701888660485714626735138642092210233094015318989000487229019870369598187077608958671103605966703910632147448062730371997213131834861810011701704448556973291829301894713161882815755125895983172297299413782074402577041832649674707816985948969534693264426282652513973781961893413842623732544989489571326529171276158403246552503160579699708317519766583418422745114302125039754693266654267464344389908343676478672290112838794521122841834152100201928225106208445070903092333629959628738307333520341769721820243645058030374691932303741163267484955550343028631406506090514549217219832611496372969132242657995572769856422032643345744098217748035288729224030780693091815993133306328602875656671787966341674633927920895226619768428821488488498776863412987223211631241791003461500445840903461230499576613559053726268929794935631039719551079042873662305943462348881338067108228543448523641800901172789726127346382382360591562646561481487230909042908734846412714922111366655870607378922484074954057606647698515914511426927268114843723286307154161876974585788808452370393093871464447707150117020988148880450572733751954971152988763963635349948738181789546188933612306216945433778648352459444154488994805292922516585506417808790767679199054854364927072764971930104652896624249171790709316115801465281834174279789314860126006451166116581538477842259420835039050290693518002232095634339207952244347886110756186749021379575419869730764436473178370172245070518660588201606406262042108367426747498868266460487690231486334999631011269840348634736542302507453130090917450551991522333420422600935632932376857364330126574416590825632572120663054869434564005541205411923400156259966925731353353379713507263116286436548404955263887465399860378857868152936618356701693572311193610001450817608673995120955843037040964375633903151083972559084943902015878601014931898374687880210438106773696985099074976218678045373082520035137635177844159800899204160520642806434110654987574892401100902193989790065609299946899224328956768070540338097378567703688383624621356971249127277490175939435243051423016669180203727387173528529170987280737595762346244563304008628911977381595764320778317720815061672744079784975412648998308778601190206028758648276889499280560640787560899758234600935388285450881002905711826314348577171620542099199177989783799031269089189710051718068359495317490395215146591403465267744678462429850136939707388025798456239420922978811356624111835527825211164538273287300320080929322067814631425694505162680976666206986589745911373234266266368655786088382885390050673011125263178445295874337786814229024514214815653543944751135081002076031891256198734104796652768803533755315501003250552234990467458912974520324674145690247289699452161134407918332415324569822434369180693045430047838841193462418499075584640808912062686030074899146364727804561528158810034294328900084360897699771617185186772205752999252256465853580415998345689726374370833819692698183411080210596499755748434285125117815576903944852590641201042312375497199391858622304199807256817380463561567201793189244528633426021727675705162398794544880944021220408199695631523144529106625307938789996991767354590434652728482885368754234795770974159761069558201820722743954175829924008333445273356486462158211849187120061785299744971065369768654715628803014981241694228602033385286182861013713589522833013569870751900146036967188518593353461756390635619294290482085187974983124557855074416508753449920328907341243860209126686352356797590866086864576229634571137749445117367945089210717518345149823350169435900061019458674857967837461141389972912009601787993096496519260474126896614531120417683247576918859898629848891698145907958629712554006466611444907185095154445056525092654326095566140308564897152004303395268732138803357373273323337299557118577749265968795958710880888943555267374224002002275003338905400938138845702296695996278673662511066764017887945116964371488813368119366308033352676824701846408483817077581906977652621748468910386428239505592874804676909581361985273983912290411019501462827465081495062317483465503196406667214372578657074707929117185991200652672461573661657385612113586083122799750979651863103488310276054283712380374432639023522525677167931671579896968485702091502696451416326820867664178499301324039060067534415930063439557721563090092145302505795857408552603723619481577748576472619121429804431113963252794653273138835202135034687377013295448316297062247846743222635908236874051343672434002462444158940994417072519816186394286285857156821395008893496381489092315005110865296749525277146035858353206626690226512320913331884827941343926006854014356767229933968645521483193264146510718598957935781297437900318942534226978099415311048928744550264723418054601097353655128167573192112800217759236084634150719315394648250415927138622174035588309727389002626652131602885407707494800421525314733047135204477980502506589979832482234047105403977176943621451209697319733426505338535788141637630942904494812480143711549577140495274300573604972418616710884312937701537136247983190454103532788028594143912702679049975633569177405873392061133201591655115608342870184414458605916685789178074755334990883002161931869772469280868139909333823093458307386779425762043730645628467193079073483773895262260378900588290333965509171253475224814041824010939665782249369147983312526915674897642880324225389069370456611545829916298001138986269957676416665211919562709289517903324743198327211288906917113418592459478066402360828115467659291888366971138022126711775627240670281764714818974299669178779952251298570157967684536104193392862929449296366283521083191770567735856912591468986405342344440589081296871158065029206012938233787150563323418210665329417757149030955769964817601027982783705114652998919644194818479524844871684071922436452326065161238918904128204507818383571717761616679719933138145786512382852055018784945018066799511165119256573016581599296103978029463350199380428718272799860597983146798692766224748907143816531833125373036699523847134912432456198834137542293541200898202839928420397469451618435973575197308582743362743420649053016497356157128130501629770666850360586756319617161144622733299563279806665400024573043400043518628981451257610306460924751237511834117638436070646049164430074489737158341662093838875902066773584230935828529342610691493495218540882650189883001663290867850438133823494591869262228024864962420784962971859018165512990068506464330611974092343946587229071162516622824328124931072505713411749668295525964697540174112311930224465597509663913134113815188122213102300379204290137374826124820248717512698648201618193861871569646108762464225509182745446611530597192586352402862504950358862255752739167008795270003319938617837451954952799261718372795631192123604165311719556274616386689358806556670658453862384726839710966552347128570488657161900526048296485494584621859322125741680041960543903713982162465610913362660830956860506091240473311041709476605212874577542237264026823020590547805373798835613440032845589767633489653375656034000469758775863803076393405666676396126113521775211125232766364631522733395705674308801188855159138106107619227119583268885341280465668610794954070274300505559694528075428596131861644801564175659857896096326308993007801624361259508908346790740861319019302126317408790252839350111037044905468992527408967999349703820812583285667511379202145216590963258339422616490084997326514747690349229065707903323151700807772448791933783425878921310922889999919236662727406304533372567219899633614800730020964783252606881326354741174078399552295708051006801800666811532437395850752185661015104183502514739610859038587312450124917276553987091965103401759631209720776786021042276220161178059201795489239747618925677297027801691064484064134846567356922682102220094887120024588249145842033060423056628516629456210949542714440775701263393439241898797576157324133618154572209140426617718860565680432688577812988393495460708176292440509847632114637010113185607397845848295799484193566473064712687246974562535452901778107280045251170875560760383068181045992601051625567290297986415748443058266363962926993786448816152077815037847171453090108576060703283557447548714512898195211356801493634930789428957364222278250510646030553352998829194000325094009659365538890907556603743313273985973460113466680856412596349063049829883575646099790458870945587542884275672039299374231740472039264597325138286309223423637710817942874463707544195309144917416105294826504975769652471255468255291462019734804327643692136213269892147992323956705297115941892050978691387924322536788694205924340432224957726175873924954714864942382656203735619525893426405393971236213661631947345531183237746124840645431300785120327737833063272672462445190376536096819534561365883203087127437315157995878426393848509242662773949185906019705627739628438084967219527402016030524895424177279794394325922779233767359191777004883950689141478202785112038514085603584353248310105321939407909817237383829628519315806137387650571897930018849597335042194108863797840375136218981969685300079543912879353207870257329177240479771286404270546746556758175094504848155243604882187800490690586583620750679338560394210372736737734193035069602180486085338694452590991999304564246097356133499119092349674690245614915639808812172176186552780481626711488180502772287727752524152481109391058861641738835081178784077028350139414647051715372407895930034041670787855916845787605450083828933659101615998998831346916310821427504401136695004548219039941095316979212536943822953111064166084345766518322015342914896920464391362618369728405786320423004019998416902375959975651854560139867528501097391555963387021496351988160233665702705441685533259791682550184261789652245185119566422879776060915657979936546430973203954039792833947621791697921653807565754824054180023990235916731888857457700917015786590176844811556932369547783770573781433648534126405782176607242360225142543309581712929001839216485810918123891956843041828835694121656866187231259328836795400519864512023889956837464751844071355497226039511223413448369247896638598758073213711856492328246252418725197513077436694405615029545954820224260454482371883351443883689017406519120375192635118576735960760809110605317573122026134069079143959530227043124242641043668955232930388186158234463940678518758747223254374464895332820425820710628745675879251657543310593168680443503516166361811227238792321587557551736779349340566126595132984208183382691395367906067218502465160439242481174469944684201251818103044472580042384576139536903611331116374957555492585514042872512883122371896305934509853973942653771021859519242173476016607222108353909513117422269644705963963215861098324262406844214660717285451982814357279128999723735271691292956754214589468087483997120272245704605017015987271376016315751272707514002584998336593780015008492691600273260001246955859166528973584254059849756521396962799711546304646474622995847678866303838078726592381425285195100459183715402899403729970434971707850751259133141007642126914163841952923605279588064857046796598293396714214416033925857053002017996323116812535565226070311763366422647691000415219607236600458685179302626897156051088714247371786136800114137527723978473814964939564332192864838262494506985268946521966200230616611940037573156626000377408828491653294088564143074550175679768421535327697655611756053125786087187914965923778257028881280260043002009904814376678479861597813873517078783719717372118630229059034479509315768244754661605701011275258760383690292156057349577297299889359196874207684862366019372006924821385871821110982383550248657935734431916382358564246569068528360790844361528661501730557079869289372554174484506023267186409143246593446614012345264648341933446012831900909155284657422521975220778514352209666800587881230867737655948074548191450966864589993589059886000166203262825556661202737823826570558937255588330641749917077097970216293903199382908263500237982631688609182200539253955870744767867155150358190388611934725244225196660713354463674872830037137644227047513110954871186020010080322595764900660726543900463218094502937413673148164197230346052489492941037270732775176682997457188751090245149587519689250362468554086473693803535040870017738076354058934484787463815195124663060920896669010354917325667297810527730018800229063144577598528254606120746322499052029304914494125262917087614740069925309729523638169600408516853129150402993456228952468618982660875033609865871369553704479309038670257878421373940084654681978305541304463056619758283177533241137030920409923760851382513802383231181665255888857146116945038714494798116104270354721630551485184758416265410532068720704750888225432125636548825864033845576855491879243930756359381766900304726782661863766801473651497136286270151399227028557171361347218908295185938334730085453418750553047482722292759080718328023467071026705251989667677069831418067706140561671736171456672124142283952180410728875388973333118014357836187676083193704915299240701518928772986110979714175285692598220636714755054227948963041735659971436765106735497057001391464095411460026552082941898750945272920965012066769210131856728162767475441311216447762709999566458558768045772450427175728675721171928202684214833108830025570256740850739449669967048039288517078370247656640725066508842933199830676524625230063489513380772666365432155012066406262172076404305614511069001335433083637036980746283747601697458473430510139693210218217085676082610886899205476700102577870643460040418461062916290267642299221796574624165161477161263752567047006520685193314700456870354199947639529970292584479467658196525364011732992613064684388670848042138020092854418605532499904306920012558558715127815093738745473761411036988409900435629724289432508239102656806083964859949167701140079228485937909740164546280009811167966214411071156585907083167667807434434800820241614418425354958030845722519545475389883994434845856543127477608469770061013370045186603485377946477450143569988030323376731466411959457906749755676532344662907314613808092802122766867317046547319820440088554778597095094348206704550594756445882034771179995558987588125884923985205150561011120614685701797788360897336891241140748787437131273314053975868141272824648840728328629756635150697900032441454720799981325995594810210398364353650870340557161415032775302048563545706189250429664062649285395393306625860061250421551218565844233005234455216594456905742304975894727558308521449668306704269895600941093693693617526670036534869869379900356103564223237272056666957003651106104873327530539437959652151679727681349607819726051185577937700569365575572686762635869357892749920141423460227064383931320561032615757124148281344645087309202853410807710786442920979861484575634878680493433110342401146608875227965487129884605753388969769918173853228451911873047949821180574095404599015929251157241245617172708874613213000028470813039854468400516807517738940360926957161992526778725922032713346725004865829301046828066594202491833060417767580805785302929457886190833390827302358845347531793145228081616581500004870340101055206609163433515394375513996666762532349633098620552581260960118570930531059659258068109003563432003335717708206087512947051467659095381861097786306685661121661875874356429866490727519325345463566987038292011994090228533571165756306023405426598938637284752849530750029312833278053376156568278647003014675444377673090115143006178037391821098568034702038060401039341306040488481439049452336981066471238474389798710914884614989462976633536953988512296163661831205198567044704080059170231125444855534664338107313216337641631078226996620427290237280146805613296234639706149460909398986992884862157388647307013806245100194835617707035774273331605122291946192989542603351714507891259939635064983907552449242442092421881064535401079042543597604488657704549105828789940511604060513916844455637058236189586515474063841622332970571566236405592880973158616304946956353511020920229752281402073176131807085728249327597900397316442359320530859011227084224829086914197787822763549163600967204619377400225668288323994125303386225200062815272424333676325368797803089234151706054844007326299698808459859919695810754873728869317874666784515728483049543523704005789668716794332146294939467583035796623311807226692095329152166823161023429779176793005628144617237927147833299769130920448742371252912672797662925300470962615134686932558245728354568173964975440685437841611133172104324740473930007624256026871246585452239513330217788797950638807307794125542585103741490392780910554771737753264382043560947338930086276169904110481681466736117057056350550340250795351319400706546313146256511010309916195693791765738213223374792064917288689782625430822096267600592786474072953403877652410055205195674190181693123891131846600749902323826550906635925530277896014031032450840438342011351290362800887735182971555451928519814512012358484259208505430202607167952665229686271292972988585972123543570336978123061161120632664935716578151638275367436696109302174680658820103333126648029708722394967780241835773831746442735530755503963706683234751435341461842940650004488828446719313578826098468922275689320728408853087794524131276804175317261981224454887263086484833231142847332717471534940361871950342428720461857063717127847492059329003996911197172086749216881488563944122890568764548911811872637741971941813117634408760070848342272445140468475864115758041585266931051667498730004390180885957572463249071319760790887020908702219936413975296948099238349598876364787625910643345716300339896862756329638739233024694210246091977952549344206947028343596072907299954507843577398389966550871222353240698777089371967746254754618022144055895444707743899218364800010340608084685578759654186506546370404073511819091947515116139014978095446526720806309478073603590536440250080577212657327204724514657586732057395020379407688502729203994868551717922175159161045115058603730455339554605359662227496908610070555929200653725222391565282141158541113047201805839510671557958296378945780482151642227887137884987142807075640102012384640986374436926560788979277843041677069947181192720763896820768844637628873971336023341127913908860176759597407086032153647650687783346238658484468962272028390495833435292000155119502507581735034996397811118363005940025251400825640398408518263606687092083662449783867591431498748486411396638507539030344468559181713870229061023405124642745688980294861459889250960026904489447811152597025377304553848751755138556441404804452309494000843470804044205951349708811630144722453075638051865431510892250112319230470526279737130173402042437876783740159303202709122047312504805560443686520405085772035070267146387225466219801696895633492877031348454875670183737650378411765581790067066812535058359621005702151995763609736164073404666633081015249197053590404734779270002825306813402155523213869501542251675324942715033291389053794022550551769118353076920938476460821701876069696718498431271399761705110769665516980406276952915114622992847701682125584874478012365488295024881224574978822772486488294409276533159740309478551568561457256642201575038354817644958017585183556346285016346034026250951341997661651225103998786852068203138973751334355247504973183668165382261548859706843278272457460371980425130319535463841774437580484245514862106132557493374055416651276028135541836041617695608844629726653118363136450300632236908925629040632236683751417776379076223943970845969752579776179942843043307572894339517936236656638080647595537455105241181854800782181151244481009275721490944468260100452662269897606286998503800940982063739056125082234623057938964750206445418838225421779926326782992131627991366286631661468420651485623253738006450551389568185524099823793940465923442135681633348197537017365747060578811667385542069547607242050487585585754878338126129400454239922068906444936400501779227437987940914105985243195936926173615163265323607073155569221205425528612751758018132537019983715227544978266611068869831539267636795854498287871197480312330716875664924028144508764763560358390559258352596530465253488431148741562383612604547206248412246800193384151473028094110548088219341582974159384004649417908316522216443464207600630761214172522260089398574794142226072187018291862761580213583987845128939355678843336190709626378176924002699425576370969103960830653090097384456754981310204662395940883098576442861517844059744660638839941413118318247733947692031866758953101586680716510533621350247785796007110305010820259572573494766403375681774011505410468504170072487621297910237285882649529156703973283642052089369911220897201040378431512090435659011204476718227154850843070468973199773382677491105606583860517973680317012208884107861818005818910591632617990118241614706423360792699156845582206935811102056510789662707883715541291478114525643039841516039359230413088935088679923930475077209685734229876807689787894062514851436716980030863109651294668246225576076331095817734737210200791931732798361016035504501003218370458247041654462428693303373794710914354282886048482197062770644087522032007591357762944254273713012566471480784008042855170736431123189253681932917343077369089863690604442942905154248251762910995303467671074150982157640354067757455812565994192646228266355602294426304271409012519144220167170638669864549444961060150425091531335991173541071792846901008811983134691910093749293378644487744654069076559947860931001128134509798730131251191708354517660524154895628042831490529369047128252893393189053169793700014504922580050252599113079003813413272025192985333212017910590281133380317180031642774979141299253683132858159110587093351030216041265359352997071351906643671680895651300241820315329047359788455279815256810834321342235904260791138165240713665576748225827743252497259166642318046773479208899662007673580923172738693546758737189151854437014183754086234196642751146613908787659367120249274695179319290588343089189650956023318697744821776271824958816086649000278802855016932760617224359146198559305554726547832032093965908511054285200449850020340903794437030106678477818634429920557255981525173284172404943157195775616284985906747232597485512639582219040054350469695081199773284160026564122759026575831061230358218034876411838443223014485177851449999910066827909137783049104458240190197426486955918447465839884161270430509357295265734361296355879278993531546960148906559340274009950007236061891556911941076561338538762649564442672113252936659585433949625673060092464342270081622885266608088917210070904810207125158789023591777448668071088805442737417071439479827657201731956498528663976031681026217486075963200804475825210024522101512478834750741108458804132352373426163410371602229645763562310374842930259534085944069227719100985171302505933710769694540619714897196976353719871133794851277487559479998867456031589311217888107732017273542964997010871440773627074282863604506188654517075125245322179563330079774974930685330298861018915497985497332226573687656122855324511598277496037086055812207062151975796399101525799192751404739180901516835537985617532723602807099843704529794079576976713918922126167769630644941748650479951467621202587326349960302394418786001517944186148540594726615014424851856081026544699699023140678645835232931076758984196047177512418402603836307363102898248438711409065612498078819393633294933750304908286134851249637904974443551632128950158372752831929181159135975712098046806420871854106367958269942778900299450894179999543235773568187620149824223058747796755074367305961053724293075972999326562154447482104354222950793099500438986002128589287419856522477343570335091773979491487735939157325878231331299590558583558285329523735917070063258660449820522894099357420271287385531477694681802329931453590554524442379479330640685188691895705868466331288338966581885864176125297181291543997497944899572095326629361322526093051311187231487108497811137174521756188865572910449337904653541671150289466178337256812297911538596087126157379657743710975503111527557095705253379808100401121487200603384236857862773171358636973771621518356990324198724794856255487924538763785341511081694431826999089486490509165872058671784088993391549020727007244797868477428271461489438911356819947640936548056575046973811050203513353857061844546172267746462963957314724172199147293905220946288997771184826076497631238761533345186973655679422462138288785551779877308496041954306183448030828416346596204827297563701669986287312400857723606924150302087634424620931577963763693010315426644581343539012991298997600807807073837221924790615481141069834900512519686323171162381196909852756359380390099110649545648114792473867216271274717214972309635962263184152489097204285204740732637577497983536120066447506896407008861435867099703201335092230500657585540228036237905679354370566465118992332416923874164537908183712120310322198436173385946264524163186918710074298489181527833293017165029748969756009709690749697868669972193823679465922536704568168106490097378559938349747046736784172203856165051570079569643840868240916834384989674839099792805482583749458297105316326561868370961022471495470198763263478213999987322114900029929008358756610154755091771439326804881841458635351681144359849487283364337661585166180810189644642212476093782098961114610898455600970241493597767459195785246867388708739271517922170383736979625698128086755321209213563387061473325698003868465853715099091640673687142838852687972491008646871904682737847241551437998024011165922023742391039923919086017441018622609380026391816239069892391122438339581678482712423527517959241587402055176933500315997156930365188375850185444508075295243942869739723285385926654650831834659373334743462583895143583667460653386424586415805313804083067929383935009159219166169460604693025885974079662890479992372977567387070706382674984403644722913773481018317735481461485307955719431083565516684725582232336133782179353187486009967020307556504594245424369963149929567305495078313745436982910967006876780040628221553481205947559850852589288563015159647130970216660374103693910326723888380814380130483568277320505979220033091274144876084351083935362675769842120395583936375552750108976558219541898886516441515774651340857350315710472946329464730712459277933319252114567803080504432591781844443019276904954901513955696472248427246008498708873011259145080352393946314702915243819533623461625313194357014609868926397664759824684882527506250749356894889884911264008687324222741192233701100854608051418617993294334824431890636352319814892883623263649977411336054013765844173431926414559130997145253312020256659110412924484272785039285424277198730106714522290665495485430214318631608976961234164601419112301439952535633958475519935331517375550947699687675541464060291891762695686844185479698149872169827258541518076296343345480200419694857852890616395078293881228386713760198701710863149216266560794826249052087796841991889045646130404146491143791262058450759771518439561628979999204582337162762937245185306292193348381452678555057487176518900303102554734649183997261049588401175492784088859270844835687900489073792345059831998178681768500089784285337121478824285182037372225755982153451496710626526473347067748374648679978765979790549736302890654911976657698333987883683982184047702471788079123810260571289506505937156571953556770121705681353880625034052358304758264968639440388978277247798209351450602655479140070788534100635328141072775300370042736274356238046460134171885211344333322552028752491789277107857734982823197948072898675571105383371606067766636737092751960386137838244286310385870909657055408780338429769633759879951025497809063750694732432160887631631161068741536786983233763187706530129411662010615475230171438519963120559637168719731114138646823658217438337768471544663708215231047199654756176536622056763489797530006463043240400369292147356106918250047553284042080189585777501103820129629426727819036141071295337680082661021663037202214516417797122835605064899926457735951904052532542245883823030337306812035928159718203561696699635547483164805159252041367300879273182752129038434237301734617431774391934442816103173971769081409155347292983553948853245910148784779654967210739034932334286945026107998022047438862354251607707094114205250105215125070096834687769754510574184410946733076498746482274904004831718649920071350480152083496605995557966941757786108221936011206382627176408989009407771344008585287242376088569154568472671397715949101246569648556039101348642189364824081373849590197573062942567534224647825751652922836825495845555565748896789267021642779443167125169694605020302171600833793063110906829776205403831541809300292763963011811652773720121463477349633633474882926276734727719284619858775083010061773140752624362096619212168509315905519666264197698165730771981908453298746074888954032621471035738117103062376437611122263323961486525640307909943225747395313446060123227553548261815761917226858939403504737804157133805138603507722162326485589161713726285789252139294663668820405298144181959471460765502554794805598724314223545897745869390681855176924590977285946077529824580342561344464229453992869881377817918679360049230926695306358280389374939427708421276022387152658925385985811970621506409086263669865239330745268322803718941991063791669905544983812351932504987803536723111323240262338603844256964084129105038966027983042386450691886041446901404476538390878199281817659276866218636296632577258083959776899035913944391525073921794509638063565681464826010366297016999197035340745817647850244034022940334330224418271718429771763701497779616911285515504032684740035754031445548471943053075057754881716374425114474901667457377512255748039036151937048611606308984819765438849968214670049828140405324581323296677092455281441078222947301508566784814701102109659819604410170982606922695984099859811901618972698614731247417374603574929308863467759544113131790054405912666969652445750963697528924420745899314294773353124963872393839574029871443232268716244932196430343654994789006482415320379680674261896171985089655135278513613803611716026028840106355807010257052754812178675949186715415568719559856620497052909039121537942225568735212807184072194619818304649334759081633702319041458745603323977630921079530798935591349381875333145886347784806244310398827750822173056863328816190589616917204104282308729353578148300920247790688862174590513998262174474502577246950724704414723368654817499211412168482489471319266076655169932851935431802332949911956826915319549856953256784412711466718173066105242978626065064993839107006969596330020350359873554759370467657067287408059387480668136499680299640120405948443385523440602768135430829774802300178169793937433950841173883545372581718363123739423552396108031644290556385191654049044165972959224232027114464435857951324072754464443495381109749382662630822238118118467704891033656785937806652814598781363479627526123250689376471254644684718814856364028838349388394077081115624472313714957586639497523356541658874773990285706977876793126229489235920536299845424540582256516403804988069945289526748653344139885401337234095341819660478614279364802273885329060283489672472261110107886741872643730433514650080294427464389242519460614213091404667699027100722706758054937545433970866237383725344883877927381272424615949701194599065974516950056267797025117438103253551178902766731401657088529514515122763418754538413743583609397174347238510130925905570147479590635637414812819988884045678969339212187472256908311154341992721073396456171834458107089627828713639163646215829610239577765157854677248473846329208113682172819446144325700905883450516638239821506335898141693451243612866955498257632260649724274155497923619463214158857712238010072834381861547477502105206410795388667544223235855587066985578749855126549057898768365635868703174561657499269975703217442745405113024216241570415653097165469673114639020706849475824237479859654884953190333808858620528567211970990907440918050802063705762682115120406153675086824246338664138395703866188061694192004368130068866270896489672460917326945968229396919579106654772309860411055728641758786698567217710319004161381735036310093154998962581197666734922718149582073739809142861260275154911520443615142933829017333163650019801058160324134356235650486984887510500985122371387679240273833872599854780604716409641803801674013472088878599215361553335674712726001215418750514117109288719416048193999641842826720179703466409137001422190617574860056956044293047023130617963806856374077002954627130603023479248718182781515707758006383101940250601226799074109120585752619926589933209550042163779919654206197880931711913429985797143017157901523050831243660216160467988777702573943553990200499610479039916427235179988381423802792846779817686052704393329777159944022012928223745161595489967740443380668383566724888221055425741829412043503022407914942265108161893201576735655968534639220468801177351221380685522036204844507794856775847500774448629471550902635023421827859769218691412243615341542945769533855277060815779691490085454655711580481280466922666268794217286251821957954937988640050226279615272993686046454393464834909294696563199145019515072129753641751974736171059801857243344378875426635069760754564394966023088176198209938307726683558194122059659644940771873472622814676198861946971063935593921982462860045591760646189037121198871342728915841428163966281253891648638965296377977488773779990479000428760959994740697238465539177098073255933208436099686187700400073218435722543047941361310073115024944736774762974685452649185924516719101337272158416145004763305495645438983223998296804126394608642429750022423700936971602284068136922774208850335159744936969547800856374730557401864219742338922797382473340999014800878966728881205486609158699542329707716034963939102174116906363955157131849943607487606904368282087703103023865396655343451035487938393280545321309824306006250486101054962396346806809899433247641259008417682376263907220514080246245491879115844752855151017123472058768371452055060648870192646323259355308573016406792908391634764174336118518393789750875853713927799385211890964011444225393617225420792824314183321300711392569752628356321287343851881615424067797309110750658521822864139030779697965784118317051693764525386721542619230816765720871677004707454053305589393177294585316387742563128748225548243698338095384045925405045464786846393417673317661347423852367049308306185385995943174407027950038165592873700143042029504569416967456192764051622095702378178767569395567971237321258184129376885522763588029880779007132307523325556942784759234973346968035038860313261373644352936085334821922138449943897765448554672508275484456649105567448581437773809989037123595068134274659772567655395314228120798765923182640368167730223321730020576992825116530419444642729321904273112238935856074395533708958336460045430357644591779678599179308085669135471467995884409359779684800058363178612670746255889556886851006240545592012392351364696817012954409179193822384977014874769574185785860816363765431048536448247206356026592527224850124388557636720737959802089337365633319464810736047733113459210521392496594790433962897535902878971388107047084468029696652037228287511766340621230492510501934481848971309005638582635193723570729270305525841191611827870414087586641972737625630706318991048683906084523269930849185488381612200465429553572017142486898885448853486658917577006064171639836273556349707950528221843958505427592167349057666982180906545662949794750592171954963768709244122296131263928262965246962534346431834683807739884451919053872658106042626658924005926557093405945837149024678356524469268917341831066891187101264325744058273792541027794427939009396721306353322518598240388589349278912128240663774458120914700576142867326634213893255055529317984065605158769967401860332864649199144731457424085635021942660014568078584272403645289871407335839128866433068584072905201372200960088347957875245943824633693202747048669452458390602142721327172751794212253763965298724621589909270479998152011129915537163749658609014909629510375490351102155452353282997366425319221782494827491792688367477448926183640532167237355095159445213582151445442392627780710615380246514975263933956892373046457202593714445670426074860035993098046200792462051726134628133655485795934431972964677067120445288388666249303437700967902084887322181770920519752648890940290654749081304856111482980712783092378299121150313962783606984138148089319450494768331828759536351962139338940734418116196635668067251267803820292073112766250984200319304786209758697695607968506424236317381464574664325928677424839387789020260321015802410207615002382069900364886506876047980903071979601852790045847927831934752051652480886705407434805908660080841924649793328386320063925181940938977930805731887349935979291430991527793839737615900436643131518697216285006113790335269220571773636432118372511044073433410094753005490633380623463777889435552504152651238898777570387894482456869966521189519095422644777749372875524903077114110151765038142125098837385754482863253059409118219488102576698382393413820242369897951785737505462117436835867158341781116056769654010464290265443922079692926389916341607606469237077922932979572179689942638694674297002451722723824807469929576610971714242574886390872688709734240470625101028892499568729841877099320818548209644457927400872383892539658708146884826068696091295912449651683661649230591227126575177943758319259319674079546101756642166713888475597317106186484427162085482233837054533264869225907757682633864387174238358710357866051205125565524679627019950881477860413243903579145926970861307452846356140075565467321247250397987436588255488500044718195828761067649598754559735452550900000255451885999075695529401801565959382681413795509013314906307716347710211588593100739690504587794206600622045321152886750093970710296386527367355306539420691250837798157809877221624767347018047862979030775902995544570411774782801220855968378380204499748629717449048656299993908621819061326188704803150278052551912868817757277434254154714457960763191341449239192848739252853238278439577343891834193719302876769650612542953221979045461133639701350488475609477463897840753345266646399800565368393716054426418108168566138344679055795294429333753152052727777819141928155928120991359812444030209947912699425316002049615371576060740312870557317306683768092146129778660408799455337074741373587811184726487901294426257041183955187160745722525262539675896630580316094044208946967062694040117891026937771343767958037645425061627437742813520260245788088313210506878030234704205044059348038455465503567797818927492031474052048299710949801232511775118950550695781913722409034100979533253311260927110765921516011789669653611997553971714911367748168009855999134988656515660284472419639966974482498505198339950415071806350571233297852518972556431410175667169345867561437192931553995701031396125073142886924065900498675120133787263741252528926583774277682716862976168736612773017817323915276542087086851934035135153176798884289874879337043903134051468040861723852115473233072439159088703412989760772279256273091818709052590114501111289190223152351681985049351551916855527998514630992617399765883821454922194350261358332174887347054274729312464659278188840633373496948541859438897140478614319251961705834541581296756533028120054709529724148613598939854779875053339057938417849509750473357116405842825866935899791447316396646489719934362787520011870467957506291827431621732647068435292089726546575659739907299656205184631321016488288377958212933533648136747998573737780744535421528581943544173033491164914914856183706991992730443488765467745241773774796329526696375156241728346791442768388364933666288039299727734701295634131992696295587233947337014033343312769574697139010289070035565157550720115597338261077525128541400680237698140682312004015357629370638852674192673328001035565819247046083836439624086271084568667550680492081939808959615534586220826269406248420367050005742053946226844798172585944654152306723127723565035773514347223439754000556244036437869756471168636627879076849441294756262197756059282345008593606613239720965790637927783777448745975690416356547102228402141518403204150648788612735709516525347338450020036396243387447162227265908218987389937672057609383410779877401200049605929944086580491581229829327169302590228191209685900982325355401720093951363711653658471561508044864416095273183610009485055559893021172934053370426060057067903717090776494889358983653349274482101687491191270650422584785655410205450129045194560865034240920188147610544438651625916132203591768494818796382702206632548516637865607426771013848622160844692581357614407160501841185279322541838123551479472931214996513592281283790304776200150287299851039789777982254523052420183217184863302942008919824220333988918675042892779937991660530779872562153563064288707447836466343389469816972639084238851370424203474183689886501786995473901257842933530062228369842263919422622592449534826006796951299993339674530070062889317759250586351220965445569065725697731025828568631820112628845102215262796165962684650805944054330317561113849735145193087003066357626211637750984941282737502214684142029048836109539577944682987025862504410348009388874760351083344629891691897012362160135335981436801215010586670232840999945990643440320860423266504446579348851438041996304143369950283922222285584928415259593404916237496911117063868124349682198478920770547082910965523331108853269036864401018261432431770137446861278674900778947689167898982541392278380932940277581021671043778448267085836778656495678972697820024335274505274187718070485372379948472299071453349596439882396150987273816175945661861600253562151606088186826740453551668752914736735049668203880158203513999586238203149608491281291329833099852010460052401853545418166949375014932274316320656520360525544046734599966421788986834533849503619553696861830583708096890334129706991635720309257523099426278309291794441832452254980324243229003638365193652438608924179020267128953555595417526798185614841929252529989275375775398052752262416357898667687698951969445866297595253360412270748889770589930646525767680749780761316604452841368126697814505703814934819970428304825557232162959083422223033802406386925890779280569704003945726595631324388361336803125234693413434177783072528127369737495346815453829529497329513842945517049290816985927731937571016662572222019223542344756967832516249885328599207531784554795518986712297628656271583738811584908544244457802166591577360226728839104415104719025549473809725511139692483119606284867264682694062713828007004302305646082479220575229861396009756732808382173557717068744119802430564970708805816523523583427043693520578194739604437101888099367007240568404214378585349248965751876637008548707945811513051906891207924653565055242635372486281286940785794398265796645175473959667797262663981118351013021146423997642955659649768880252996637226293424979339918988641694621123269572073941993840350138516045337539328068134620783301582485504542088508736679280144173638692454559976129599142317945794989329018421929166867016658132739055317686595070758300643455426290767193784162989487991247232853605206079374581871447036213655990803905239298143227669206851775379271360897798656398882491095183641013453664211247142795291859261323303771823238976306518202069661524333540636583177030843098366269387093212644724634039736617488565437258780048271413670864675610719126415229837717588610790459897610963313116740325771635639804483365091502228288911004391814647918718172070049966823117052009339510271412974865885302294925115026462796721791189078901701818537161519080021642818643871122232970998851221416893321282661623966783906846809477669992149335359543334252062104719901076018672062013767915688326989255692853517853291240362472961037175938877798374466277463979692319184501682338079994114310959846671945189525663734632561220927009165835069209684853348218472327946660926844255740529036907493652839225142132593967294097092155624555735705612989853890282740082506093306776589255073399558481948871059885729702722203808375479559038151425187321934128070125659183252931535612873823418186939796445439695359981404591396331031986249867139538313723938283068643530357042331709734238564289862699355411068178816615503466185208665657555127996856325903770290461703092671111564176371866803756026692848793328888173567127026765093359250751313776663697600394094231746440323336134180532081235952048826994021241013392502717022431652308759827749143480895243190692086583881330219023066823929811625133358082464586255955638794241061026059013133434234098501308290578556589722401859498757202278785873966232401708753889409546693550629948610105862522125617471041481034986675099213494716278340561699829788275231488509417562059315104664236927111518238203753005994830980245550822677668989075263078977347865063815979906359684697381517958886496645164569734920706693741457639898324475315791622770534307020166727640849364623969764281994283302316270150925556550550239064396800471206080931532710872927133990967189378205077161436143689846342606263451683390427279398186057240715405415330108226485008465032090844449740504864746398276608271628624145940691950481228046381349427076352296853676116660465428258674738460293461642685124799429166066600141451504169025176825572405623295096702631955835238753622435015901792937259659035066459681458635578869659565649569660878412783306640760466089561591889995952225032084044466573390262860265474913384293235461735980933577192269398135457114361017164359840822549127227680142112501247734655474324361391244187390357278671759626849334916412541438920847775596303935794474072232161377669834186497953039889767519064021558635977461198502381971994383255639819565053483792697620556011036033567047571979477976813289995475649898309619519623883211600350361397979355534222550443336896401978713470743927514652275271089324871652076868473324946304261132509596256829920909207468765120247136741540550235584992946726915755329095406829092104216249657743076886709070398581200375952973541956801588739441735717236882670647173616363616811936746853743370344333241227964292792996679329186803512833285762904491947165988009778650282199844170646767594570105387832281401421496908228365873059806583257670955443936189791906269039458390409018158985673301816993784691526064514669352813115965133788563460382720852600318650717699253575635864445442332997849532363034787913239321292457917089127886200400534776276640011507523521781373525161283942429846795227087542830961587152201797848293789493903075857181884821187808137694276923589447680524587307968333955283429356657382119127299767185965507226061920518697872683912254725095890186987963315561428862989321541812316504354886197220094221294695267232492194549239531599361264566246160450496142235796884939069944918273095830579494116609461886843458858417170301124598004277562591851160744780797847956784878277909974097336341430893884848131467241666351984176650108690178186638127284777090650961976837706052586280560971143547580364213627939145697763809823625527234286886830213997614376595301278672457336557166157053647047178067039883412071240037546297531833502844326916242130807619143603261332022063654483329297390737597735357946406121965243316426973197980239015630515126702453774857483230249009355617761114579312935655896552890029655559046383819713512882247871392608944042954182661273833693260906719146159749918210125782907159293668540590534097499967892998945655571923389749327779981618643403914461755425562418619360041679212040108235650008065932074651165220148863481325749045559724376983153447892832322083541953161484331755136747690591233192764105256436865024806854724662762330190954160970774767495686185070864403775070245708780956173234182713349555073306344156300713531862354612188978066290783198371738315441426888481556916771894152803712240381517465757751682712352598978567570980888199295406073672297133961763297759616146738087800780295460219166499718323923754942151747632620160284872582195476055598273294076568485202122927226536345474315335464774923806443154216024159660183976186843883158434127901579753841751717638076915414843307691919344406157628226513990454470352432762700961764059660246791113444409142423998839768053549618095247422605763598049517691568789992050525785448762984381280679901001697829547314516507296771206593990423207969287755243152136862100529423613970024776891898258118623525615812992341298439111361245322952094168735764144864052645466328440527219100126648289286602540792077987564569336056536261864797586757684497255433706259463451338996742332944151459582613287362419160340813356910358926396742949119960791518543919624782477002995583684206348658906688089477411039866601956469070056659366267282268437253419740332694341607374112803971966882599011552595283956294745742352261369783160608918866408731387647427137294128626337306337554065423664449504730203723581727565058729963393013926671442428062584961860946807261115181565850957704493171400639426677723323219454165778739866463241738022963809483563826794344880685461028203317005634011129378192703878867387420344402368177681343833155815639884058706896805893561766905698324835579450060276942629230949518301897777768719493001622954112221227048057018074403818001741005613979120093263691763800646318710397800173773463777479561984470910938650198581811756154755916487285469766374056150712597864759215756252240462984242036853109203957515323752711017742409651319636158503575863479076371502929596384113023380931865572110323150852575542432959190854105275036521061927783046523579268804453241718807473348690569757774984303765760317515938524607473726477520076378820718473301973218257892188773382571347779484388962828031903955383062513826649157395867222807444120946652395334185948248890779178059590356087270547284524486287321737112931173164016989846881870152153634859197550033607863896880779297513586136326370642481474104141137252071963476145923593901367258206803146495653251969132362313186177144756892803818473703294642465256795333303053335690373889885065827665792939792861876465326816893239788963528005402404502391002895782218649305816531216534433172185340218642866852574299502162586025321395735008489737714801295803654401141669983833421248640256967717860925172643042016309293634194407375516846969559747758306214578830335834527885782821265089320632810051332842450022032238891326742122663709963041160271644054020246116389322183798960575372378915230424291135779474880039654488534409116708158257702426186701008876060698144797118040430807648059141507937907128464830752299193630518328521898870254998163351215999161080813600847477473640962001662959378173175208670480852706651934811944447818610134001705745008711104201671766197496195008274179557878494522707775299484143401260267762636868959043860026076002952367029786068280116118003507017171729624779524986719883105563855956448485887400216008918656894539751248567154165471804775994500238594551090306168824484699783028077219052966940865419943550895640116526693450547614054370369807495405615442949843150616610385852832183718566681161956189701691650627657978661270238012144815642805156014766866535348705035092946797763213603987561193785365761019546617649622493553895032228780129891982432307036782489854157263554632332673115671045763790060819965396497249960873633949548180122447872977550088093292882563979131645867899657456283689766375340564885689332288488275550247020573097617692801218508573889796006693016846746305646638687237404687579376723509575581028802388963958648903096254304077266770649960885826146865614355528004976943851215882492007065698742904849789470455032634550888679184352959896876144263372296720871156111905011502228162651348070696492723796695974545511963355813668066450871752982928353856142820182650359418001857776820411940375945248578779366862840959837448473043629838154267845660321841967514990164375180067344859949707243033114972824923997129750859994196457443481973966433765469136205077969606909485647866385727050205543775994222537039922026133409838144770041506166773205907906632970699165802949618664956346259585602934944856241122874713247626411152593331222083908000217218117850724804965404769031341180624958089395324040150190875439989179593423118296827860176826894636822207035023762135201103601832374400335099544131925541477079933809991486734000230467922103449549844258418817457093665230072481092146706019307107127687066477043912894252834208547022158542019286450245160313555032134750889757981930364874687628795685921890694318572543335544286084988785608692640145611923582008300215470485316424043713744202830840570365471535987614270813914322101479200738234271074620537022973773798418729930252874092806292175334443488285183532584935014949528829524755553616501432653355023472492707272308373242104875815929033781225053819238669518199200621545640799234297356037375855606476676547733738504376057919718987394077932068557420399586238030856516917361205086532568052555830919030335411631755967288355901707863657171215465366353959754187850004731781061313714550284815206557905487275141266506586714715259366871493365325765404042907781763825556845196129392049832327511964065399255043800551007461136355942057808884037835652278141953904231295431095162402231930852857106121974795067957414785544672938108592432144153939835516579821223689799187935947112560542538095750398742305232276973244322440629858985308078476441074491262623188502401791696586980569646972691523198071081864177731424640189521278884073370289193423206115046829654589848198139889923331577378485122689681838651316367054071042622629667608371014674574959185255023615228706941852948460219384750931469826222128534720805360859175618446026337529257349522522051818575704812780467613063474799718356118752837210004845469035750874709126568014601622676411012414661934497150253763698552579674619682380524188376577742842465364510046053186964255219447547034224568914394706634144267872971863860711322199169468743315111294929872061804383087185798521231573929860113165529236204127263580770077122338269360640815620225137830838138078851622110109978010342838974081228379887257274182415469317739657855857857697854844210187240233561570277967457425281084784620310312140687910504460526731371498823237881012732086488957190003139298734732304052588539546775737731499295103466076831194951974205001979884745561764884713987376609358983449837304878699196607230256364555015170810915877820446845681379466499954321401921620374323937978190488311320542679792118994627392670165283266996410959328960158846646583085373409554781151172421021795791494643155360583276961273218459218481203830274630817494760981354998064482527121823708596177692386999494301626754446023287397152231722790191820972534646555773727028815039282352143011471205236847612711419659487097097983879192886349719154588510222002749389283789464844581651276761170395260425638113936883502940266304743557212099256960875589629490505092588085807154380423735981043695987743456381153333745157937739770819134415148698648558563489338777397518385488149002744773557037780182914802052626132690637144900196264651955151133022665574345620095689778245644689028657930097470264989020368632091465806492744774398461351623266957525234586354133543543186840228676371902914148710700660207579718075746176219689458634717617057421928017053892739783012510624223269253067373751722831427633759326389893455066534357681623311323082002319614999968228533013912572712241798418884115423939094386609026586444143699695690649222150209788582519382493331496720885591509350508098190056437354064217887601284360601124310347413456069115282749709321538606223457565327656840604392468724943325344116341534633082518449329066903001750329696842062156140300386959667152039167283328699659568945466038036238591198856118953879700012368120377444043222744194295341764607621768662564690217422543958089104364008179254351473904222394797571402461237053414663513172172673913754421779583018216660743059478273923950112743515341306885251376164227166858197709717859686114689337785163934861063432386402675698196380622895124755086277358658799685811849648539977446238669263219650763875104285691057633958046578732228881531541677319535994982028174508561747114515081651144787768889039729768296200531156675364053135196308479337405365105216708834407339243817521307681043695530512791752611103396619905649811629036485228556911259093710086654535957810451635871183983125367751698806631832055623721716285239481954306323608602413435005674182813453732580328528800292849353580110903192600586447473160692447861450103278553294290614894461647397248805650716734357977700747566652262477323797960137459510607599725782333708199596037998451326585448921902763423166449479889521321898880789129100077257645372738264079477150040384313451061933414005046476157186891921826925181399288183105397483986912984737726437600727970297091542803007405782865119675589911392644722683662753575356970027314721961770211678882233200572776770949339858804802286320501775728554976815794161257543774769113422027993462270354307526898052789815187406998146638185488232270146199607766872818694816435303940554837986538541152969079860398228493199446754221537789459558196722837983925032376347672420324000307874785737665322492207348301058148621706526419546627840026441004737136342584556835454414938316294425695628618848280388512569578918177297416610778568092910348857069201850579512981528824901908033451977572767667957756031806060284653516777108471221564342434813301372661289278007427974736809125204768430189222573788372400350119708604042901735764292244458406616241130209495248560033263037289759753847812617998638674224281015602362947984112385137501092858622192555647834572165379509663458463086328436092235662925261331545568007323943891080906425316468043799792955139004811752006344942769226375449597066590103684988109380583305856707730796713172442866902537092957356433146959255931648540600248662465756809848889504460489306526595095626721206313283351393215579855879153109889962353336408298184172093348454882407500325852791713586568297295511169468086925506487863879602546972882076899267568693606247624680718205570373472879696325091554891425476897335033023753156499641789236175073109218061607741368615391070457341519765067868458271144476371388069317471823261667257358546051339289829550082424408844922465861464865921695182426187726327082485857333228368022574464717337043951370911329514637747609432430229726419189994139539283150560123380096389454660085074199004505494544066702674449863687277533436923033434104690889568518602783604048240217928238696611964755150347867170948580395050089781531628334517933035695229885589325051027705061400850427409641722113931064807651525328418640568090891939960121224156681798781412192585786842526730080335364594239197357152924829735652379905306852035319876054397202523278818834468963746357116724357782737352038143478367032419667929035824181171121872302529703322179570875577665065829762481342113512532121166488971959279845255666939542488668422001255705027338494168776214492837369678760589287196844787725144603576489859544035522759738651049544164876084522223602113822346749436514509004897366689935028960260670098111772998965577996024437596526706301922872681996203991824620730467964575499009900472312160084848871159230485660421842382559301929199797159147717854053072777047681198238099365336308155086515043896691897221611749810477834302989704580038480865674042470862034306921396510997178413493341343603320884190339585560698948255200477535797104307756852303318431046868374227997262522394331618220441528366105775732322259376565503166182786871500999659167890186788901226857542369261153206847362017567359675744555328038031091546464367253893675228254225692853391780974953980749784257734122847952792481184656688810044134007165003205601895624524934029637529595502344460943263687643684265291724143938890174137373238856033947863342379761293213248431834990562637842887614882797231664631817774511012570870542277844298346752109433841980810101730904276794260212029068887563510911578858857595905702196345065373077914556027062569207109085622312907974255368675466267814259876979697106835581122675477843543758682439396446776332579057615020709000738815551361381719380567197928717758513778911893261950755216684776851714981117122285259377514359160517576684745970584180258555806761612709925928538493922104402473927376063209205820438433335683448072259643977057668444726100883336563637529433354231955008430561694805170754541736793116769558713974771974160346549143223268150615379840517096179238352286091614456744754439825533749582875270071790922777637423559805488097666176806690868130165114537050239730574790591076250202240636511350141126719953254244264221422689508071387690554949692588730090455968763384577204857183801816793740740736561098821402322667850476635259489388785601446649132345786401408568119627781344651545476944402838584790518500807841714448328972085827558785857285960758027437004477426134301549239933861733972631545089261376991999709984218004285489082919732048186346410990172646598567453690962840534448448781794423130579949044025476847333956637521251393617557107448316776311909967805886812480103468036567240214511657006736516223073269139399929152301804278619184404025432123361008817469433606656034414607340630872700060438122930203273593470576980505152340914191446145306228052892503620938013351687804214695939078302449317331457915637526474498725176761726841885418331162573973652257513862189930423619206370772965299089358790480853444656586693979488470135630517022664946927117017435504114963037117837293097003404834395169851704949797085258821587724062539008489529995473243902975125092846406964158085426681494968136481235397284988439282139912160367608165591164010785609157369039248180874952624492733081470226806706924597100837774859811946887851667909332302650546023101365718527489532676141236708865748831110666258377949330847281483554463631386172671182952003042876929852112133726203328822014108643395179582193627476328767980264086286563518330361148187808895534842545535511211932727968739678085335266864568686019460267644639645905427010881560809945219304307933797360628822943835120540719746041302938276952265979339831887436561782952821247495332859994295993537554244165131747340835552973615516926607407481381781539639611863796653206759859174493858573796343189298401820948356535645701543099945349423381136652986906941923587546036627880420514417072231575312026827366267159196467158102015582668663918705290780980465257843961821152162999926089509105651178734986312550588804217002387731072014864737281415711446841222582000873873209533885351729022555562099927375731471719903573749411464830555952710980282417574451832746979448105563451658986744979187889998045622092189875842015921061308190792253008551273694133591573811242785160510211467564577736428590130624533407726143767095679475077691775095281461815683125096835120150860942225401011031824640227845216431593750328008329780060088259804711778822800524626055196589679957682713144044601384280771904795714369043829474540436920544792705156077744833574496909107762487211262486064117986454906326693878936894267980236914854493041032610437908064686392119139939481994990904909575569870311230071440799869288898661920395327865380248818749715514144729095022058767752406173166450233900322192763300921320378328793641882350387827198845123179052684783896474951077348269783242783121223211337834874909129414164328456388669935049902760658233884607518282337062623737432746261291008560860067616709223416968930287741225005510988534204766055691609423489963540327213623284224287171127056818613147818257384845987365942841587153653690166189723212837264819609903133163919208649421638808542838591707748711012374717172214572012190889428441471565246233111304758763024265453669494083687637551153517996023236307640762654010140100366051161567109864087728169716982240779208019054394710910002917916985652897288065016842075157661990421809621024275697958340769704699987503104851400306410655818852145709659328454198568743862300311075672851175669976558068648909276794317245853485932884639988855144699540095524738606277484550963921079656098608251312092393009041089372016894308595573629984853235107395499738662083401191226117817434344045750038283746175830547539093686936513990964443672569777576421204969569853629113877597898928398514397672843400929242053399711847637890539074408276261880649621098580806774627957340197746666107422862060570385911220639561163419277866819910369646200211856446293796449424991585161017862486076240889332932600624017404862180465177581843916361134116502644021017407337934754927601761429955568834521260136177356983617720138505214082689513633013760681012342493019996359486976283166861502664299676453794476312253857841605381246684415136509960988242896499756520814376837699158668515611469555743148003854052360205004888769721458658512993323510862511918984319182753729759674415646856854552306125425984593234707434032427298891354748724300931459750802966143701226119238279798655935808435668433709994090097230004877765331780637636829573628873124256138351873260546867500385045150480388785934451046859406517568429131237084240782806384268621852697425258918395609992022485879135471712201863317737475772679110467223934150219154704151612232733830184189807692437234452056828514802367435227931216059405912057919061062466797194885782064483841635581312562947723761174409191580156409337375994118830544344370869553430231104345084136300904789243508242510931012104574735801872528733534685529234474051473901480245007388606392189495828917691653200680380166114766418694149918164160742238206597884943865491781615603170838906110972390327156304761352221447268985071343317584874943617543431702886727348644878731959811055675289052554159656307515128859993449606237891717555374743632682468206849206211702733603185689457075395568524739838324884091988318890838470507238918880211409138946954561512140319330828125371548489866816019855788445199698033670427451298774381307396013853901721117088200164390516801271545149004152230230862679688518782506006171344965571509857661952463564497871412982657876910373013474457890742629646739407676194411507173688391156929386663702408289348774622177681086108077343078403884412637003921262195562053186499853685220325316178949199150503466624800380966066575858313585273182858429116109234507383988698940869286241698347991601393267645043348225292438644820458357181731791188512355954260917697245438014615776280398780155815590283639060000998650480567834724755252013305701390505515306784276619816547522138124616999971681264074049173720391911501661579325003962637202612823213885023442488132206446290643972301966279443942792859657334415526065590902657719189388074356743272066021023513468074903174540178350094624206052523699675029397576008909523484209135919384732078747569494997049215439211815730287016695000092002295459258155766566678957081910052892668664766435824815164152105185804606650182555195469650186584829928325605808774471854108615494320717766741373910866629040031826338674344154613952891756442453765099162488756149042704535409982025561538220395303884555435515156803785901785631461235050831913811495286923031990702342616037925437571952481691308977917266240049089709779823712139816758421680742132139107721729049039894976059561298465218379106885603632524964860712220421019139477140826440799918983848617614910157066276405037546510920263690782734048237190881927169878958903631179283262022610299660526310953390533962541961796159773969889964197408490152852778828139039203818594179508933577710623896971660756748365704311598201756575000308866501092431940608782370582897528169642445437488230044522280573408327679513917249031903580851932991694097202947798389889478303309487467829103730627165670873328755029197150763669048199496979207169641353267781430699962025239364119809178884280340992344803849441092641975490612998570244350467366511296757580905656512631069656734718761324747293185676610402100434575930652254694681969763139819961513958495426298836839339829676152298427525529736051655118387368637389306219128854116110165364566671970605197089371501871246622397407224948245377459661003975514230246113368000881440882122705704682382920804505968877496281390404725212938733937790201913449184908705930980861520572465539300084085410840774184927310522632273374620401508403800004613035578815788926967848833667513392444455025143339653856089007177513927879236375382491506132150499214770467995632563094789863306658195978514441246831803041105725378653147878165725119136058631353678828405134055656871498866332692566884261658042349330072565457679631427445757313631018314162790859744861248575003826419622774104107777298275638518338375367774627545646665497300897545692154223226260236568080385754763776046397773564742476180188969531505979905297143807173953473322229388753064548908026841815562194699248869298107483159029241343792506355466707634927647325482144273707684698824389840168276166275342503247729447484911187841457652621694634863933660296786354096213359559235146945304791475823385256203369689095754686956200824276295394870937110789588685534527869664897750303650059817146701379091460273296726307749711613022260745659593918062662315154481149264328110111452148238017661444689466061378692344663539956357520343556236186855169434760840654587009202840817448303956955430714458079047734638094719792304853631810755117089457739329976989398499255257546683351944285073010766443605663451417907214236025973713735523400364621604464341404087831367544659194421910462513397002008074996086086179346468760368520238039211862056408544308150981264984230124452586526351580328036232950231434922304061183166201230131832794546276762272153503740351782696305005047614770397188204732830509027978731868206559268071981983521737057914915848488853241821096507781345797984010167928122521344660151618243174079679536988670782235645962635297720772223817192965229688203024697066939166352725238276052819806742589662249649387686090643701208829265596736863550188669953633248907779891710982644039980553409984597582136746536546699767033083438596553394354410557428788593405606818482245078875394484084783778579517542709942121829955219719569255621332862293728653751786108692549695999419401899519437617884376326875184014383744633883282548472749661164308722412829587116706030936721055164057846608623954652768789024402874855107023142319862871056675447866336357460620712143670845747199051425163423255208286640683409589434347262209414322042641566665927736324170492035150450634761689830933937993668541633516840716956780075093118564210876060392465443821208912298670456978320010832133463536822354294129614585030346091765870267554982248900510005860647484760544595450822577166933462073637931725650900991983478774378364499649151459651142542700978544205859615680132458838933239084062958503154938520291277259782984527833842833557012148962889546947282518489531975892894321012787533047671650755671702005651471375216402205001348212343165313757330842535492815710195857885368532832904693891093139448872178228045245616843413965797147539105632770744605604938827801017758195960775907065151172866031587294901711353813467880025747666658095822447447494411083431095089129894077647874865835404363882688407505939376107583800142546648059395669081636608575744338262982088764511238970416449059254832937130084634180592943201736952318818905406887776498972910103014067908415319764735944685588169367416020062470169936233494979242036059892556825175448719632950189103408065922007436330035298042602290660776323657250679123523105287403927664599991345422146647835057958312820085452836620697901649895996121391279228268689508319232331091273037022088761130326513590522567547841029676323468019062166899043573547473676699106373720877758585492324914561896780667928843317200329156055751911749384868735185935281803095464237056947201354367972571910626051890625383691998355944767264956945882699004133305918427247526273951224117773252799363706676824294465879151152969812889048369866036067375633792314468579023480987213628306810635335902959529815145577120228716554908475905889394922669064180758675399175863113219688240222936852217224986563796442519094123739091289572903513385242794949796246684846122181499252719668596841456331766485536620798540345435547372036113000868281295989662444721808960927788472117091257957764518840424927517413206613886183056245805305715101063053075531495021658748638033758256181526002429933260898000456178619423158171362843433448271992977268901846331262617921122668570123808542241161222148284747118652142087196479867768544938163147805440990946303545104007230241292340215668407082997167898280650971195566958424580401116982816642961777363704627244859755034671314541924347530020137795892782836807084235090104765423665387528085019601898537894575664866718337050051841741232253072813579376130957655880113111072836184684794994848767824957853084968457313165495142353491804836054105306629561871739517049345396747041750193531613427509385645449011471436278951694400485319106810587071173927052189611458719168503153124488447216933228616140720413705306852771362301522603041526066921342124535426259966699334054627622774460659524029982463007391161112831068541687334354389649232514509575720775343214970180450451976729992557474013620779989967951028530232518872241808441360734526788692029759616619959560773782974226322322234724139944334598454247271440733806075605304495934966593170270454631230486937757968328993487152488305639471565782102193307534343905255341926935574920755437542317469175445363348911032518269619276218457913720620650939695825936703682679281971249419592078945891325514012968503491459722412031152633982699232211106450391860463946599715569952438754438895412097491584783528661912711215317771670987453862339023588259722516717301025673610046625926539023075123431584326950024637142288943898284027704357312135928169606077035419272953200709273387003109159711854483891874976304280324244887921208005556890918414288746107364479027572538768433702917135457715713884725389435519177656290017160896604136779750878131170922314659673730417200209659487528352605332307715448430092015010413600711620855207122944262480867159436256302577851106418346210513394152693587111583214748165593534849014239206635456585033677586611459063637403907549164541599496252183388832909826833457225252530327531327749898741372519239664238977863585011437960242057587936293499511814078928044873681055492357065262180579376296864326617455491194936526172818444289963326736462020639147951912401887526205281813051336523511924991599023271682496882929194136701167720815323622110453293421784994589823118708852503989060544845179332485441275081994384243879847943731126322418586271218833475451335237826393472817091635418617885718135558370603529231771108755567919524339689987329705185222126200919186453129204898729258239819845042674716604944412186896384122540837078991476345074938566646772615605934254752269902431128663335976907300914305849765088745259646906379737414167203495191423268743897618930448991959751360679750164494283504414425153065879962241380894063744831364719901360079687169807628489687844250697045710572930638517601790055441146044264133337630287798805177324215957592222795621569539260431732452026816428021401055592001242500879452291076180754903318741647283186881765821558498021527756964417630581326993235688693873424055630340675075630466897540607407658678987587713905979817884266906048123015688918541338591651631410302574213709273373444582470245073641233306478675192667565929209301167307121230018500498511294800871784674857951024426767806080389849588119775529842363053528970207518988489678193478267300515596309756368777959776630811349348662354862021446487489396594423651455534327926648905781469394378811479404925182624280787838308381565357061681710187153593740814541320200969533495143832329421136331896520626133547994537883868378174282004503476340732575157172977778438644129175223744153262414326660181950178384547605209305259581328537803689925870870605660297231994752963245060797077943395698967521611860397817312180673916145131894486869697240707246051670011379395018828231154046024912478793936890469791156371203833323829717823634227406014572732406970640652101187743242296190446327842983069268003067433297449080659701483225749817833936330630062358613498983379178492228635249420621314628716869541517442288806008214967783527874478968135058565958243743861351914872754630398878561754435205150734426703476563604300723098891433637884744049481815285677512509800635213500807871866891875902087581441531459770870026272217538407848192340783319269297463670680697658780887031763830160863473572744361395845499104314613722611525581171609969332632454369090367242206706627135695864656735048498520670468476573763299239972206088882316516342562987753086875619915492922083721581534860059082741720594317057225622276410532459938076945091199222412179686208922958306932217458836391880264512602978380851767527112136436681604695853922531319153669544392157175340720578848479127647197559769218620099456301029745082861407525888378376378388084485366544108695180127667044627697466901796650212724762394640564384357768435868480048651098797541567382315265713819902920508461514836791305350015835724862572414816347440519423469747488147917476140926015909228388396954730969646243927267776847931559934495358333705337734450743586114920416784615093312451601860428190532951599884855107703300540096158761538305276654705526841341725683370785009927692550862437633984317296252688445605353205938350931595934200102485609403515680016801777216091782943286075533336579532709653594755352086894727925548285607312204433053082032836167927681519737612595312722098677742260936887954720636156516764436474047229465712563832567950021647665703769051286474989401066504163621908022748067291656878348451731163215265787145119218445172991556222066350610594552405649774271033194362433312749389279318618856746258695132086242431200161812630190344413528002746290833036445507431958357474788266638925078974633021591085862295449277231854659849875056773249901112937387691362722380374549205540102921217497969698092171528919463865378637579269771986780313432380661836554525021405467412337596847853150346994359437145408762492752458134885058803641870376978725465554344243721416255366289152490370701497641828007011439764829097220761929450277401258028885793033812270016264940848178039612537426871901015836042077407152705632212322719417020535456000923457197447969442425397554453333377934255123911227456579699753781951449895051272296687386112925882731272655829971522768228240268046106309051454561252896065779694072343398421213851429826684553406793641223958660349101770356100167032764467624992326859032734480068486356171497123167193277319144385094484109239455790334503709574127444421123198065038063853512786899845221101797346705507010078300616964487309382140332558934812571638131601771541456205083150139265818892340179477174281943518329895957309185732650583591179317771790217199809039293018049865129508638077560616598005686480252574968979361137756876772850446774190742716197844198416154961414893013603134948930828292689442848359675266612902591538470577018626575037242412826598816384081718035939489473741017357678248905371087139217726477444061820459572942982397473043029322117549689097201007352705919690441734213332956716600032240677895085443512132103313284880139351591085006388500369346683379882655060462180020150222963397888910576206864667451697359271260354701423311099507121355071392747305982563637902789145726009872957371722625446914719894783264232195722688994485625986472089784077833288905760097101369172570616943344794596615884038840812655377933286826731225702200971011851465726914918734212043286874762027136546137332563669224834036117602063046475292971965699122308221450791927742591555666507238868650495036535903325380953588533033507684723093965304712376790156291210243741585381515764722271868186114926051403179696256803391302920936759873334945415110554041163107607210609715035499979543831246571896380553811299088473236476780052794746366862060157031600765745165131592771248034992429899624152999327906291842118669835008117987788227020725950523296323003901833999575517006827844231742385798006280460887123097284021829740230241148192825489655649661157229886572265040266805757626990563641262225349817454067743824508592831654033999074690571282510043967212621353234981630657214983381794851848131990166662071431670219741579184390248347836398870327143076374420978820394857455694235875962948044512007468447413998395816035458151612719640286105340681377180609907935759794528690003256329951755739623079106127255130273578296141826187790827927786024151185850669110100864245108707678809964049739103403662521676693039152122552503957918372825565022450236215797962024435377269349639742908744370500504976375910975449867656246172630766334673694408546302312868797816928868494520738916890505412597766681348034757297749176497417869842030382984596781300930511382293957733527433530420331432139112485981176958667406833457256448408286203195835617816240005136001173585632113543341724982141132351531757298100131063806179248924880651513475729210885726739897725494852227657982677877220177681854386104065422846716616658429113353331661257847454832220739067347779235898039737091953307497000570274584766783969404779455628068852543630770486706021196960210683385960783641623957979728948106548506406138805408118916799695582312209633174164688600287458571807412553500317743376672295049841785084935574215362567250755757900801076930388640857234524521073563516340429282023345673219838063719270576834595325303928855525400535347810555314785906944891664476728510579804485727349921568683566908224067546909630846954114197413531165740210272804810600932776347908815382008557107842175217340529098469522710705380696624077381054054802091164390878745170896937590499509929453804102664868699305170013215978446106220691053610244558733303662869836274271492833628138319032027797283013486885451838651770231101855277293629922700761599545092696518612031325122555575505267360155607391225183990283320773633427240961069621928607030027871073516077981546286759439641000461714436671503434831547628060953004142862043010353158350428193703871689116381647935786695923006664247158259148503981222348360923889998567841451905288949987522072757151925154483589277134211361795392142280235528464962691871822272666092275054450382712468465418177598678560591166383064513544444293014733695972075801206932823953732177703116147381545508714821617967387044403121915488500715962700025458775852128206295328435626516848312621838162922590668441536395489901557194762167077485791498152418047853427102129717105535111003117597905969519762467762280518367832790231000247474490985197546184441150875288951479643017905562868437395247944193060201098227188652969344153091235160317474320048188269557509968368368916217180224195937517658583956033374814320158154024223640682682295666811640297168038827850802484789313919221807993989216100481933710920324799667181619979399398938855756157908308025024094777942195931304493238266235864280511765729097098846927078392014563865917708767677788338564455090379592548792381743483842212841979775823170181429297449031685742951819990719512258103574538334380684485022071568153319215965031129019045885053027250101137496595154559493172122446588538767470167220414724608870175058211053382877351601192406101434408537233829630165089771302385798583020534876042600917958772088829302745824254706748838391809053285607782711541601360199023941907153075008200550116203252132187275747322606900475039530815468476539847674303822918606640697440952624406173673015630676586507809274518101704956488925011339430810867794680046334774813040665249975298411908198551660979388517622333757438549462745131260625802004031420004297546130575898797093191220484641198896002216715966333996702801145810341566279636873553756765163068140515012400182015082647469132497669816424131888013543683380509326669581837691603373446284477797465216588999383818177218295731972049942398730380257873151240172794251498751792562606040364405835446831568961084858611202740364127776718378059444374754118641762394647155204708088608120304735708212796566357677552304703346731240575905805055187880294098623964884365684146919630539307289939751872134749097437469045865605558477727000011027367012024579761852415808670287672513184318408898134582197346714465560483350250272275648656920016923865331888428894705397803898740835968417445732323542952258844485179726598702154177233530731350385982181802462970046280251083743653114181070434084436949433465838169489470899956865656193648925308038613797412616692403954284972516089868951638546083771545111604910410909543449018009028626853950484853431433683682286832016152302756882154134374073840270336836538081364811087166779130438512164565265690482463098920728907352487095680096715623753266162042325394412031346577320999922491663181409339938327153764301020767268155454696799810687557972806049273914441698924504949196913876504637916185107588548416941944826652178023392609557124088002514464538595469671594720146310518455340466598626908442480096419394305016965984398522588273327854059755537965151574660578920080201917578638696214651890425035869104449972238771740268329920319727498444069690313842084725201821559351083202683350737821981081548893738828021601006490428514998100012817606026715692471912203014030573968618290124430163562740530188548739629144600397956023513911718511562124802597052186148644908617419032836477457979708054795560792758832033314843332229394625789272336753368614714173505409765511964539322870059101660396265324367901934701519471164423672884986812286500358274695307625695379615325012046530488389012474610284266712993179656926974871679836271241119489767667899039407211412893453328067980777263193115962983677386225754655750852094666563280513436089876694546071016243918605146145525702962734495561113852254391700548668992629967155981616682969322858003340298681052127341615184376835843808796591619433271878389159562531269597306229517444592385613575627229845005017410290284079820786485464785159613450955025497499477900800240601938754014231233689019239731736269785296160623524808896433030032250163217064894471435325950791817556206972125709446444872310379880980611656826702571676123962801033893296109728687421207534779370252855083016640279851003709005157218468086914063824883424321263366580567501097034062301831122203220268088999037312337959145570828625221398364088138287204189406796402638825402011643792377259221558555874070511688914159991627868873332927181303600433055586408544350362933246939899129769704553696467371162642116669136937000419204861922028136827164397800420545358714053817096947175867929142071814744256954278809028044021808989627072264665332792453798421531134368107316788221340819323450135226429036310216931183004122464339384140548320013331795528341031216365112431181527437830988370672506163236593643864662854399275043241435633791248338781867727532583433242715660915836380529170653714838017001102829972560521734485776079401789746270365606178855634067666650196887879187329847490275632268142275348631568267121270634951015309465872961125859821175433739236646070203667534621596538741675339561506829704388455034870311459896117976990089736259956039810444461258344225244263947751340602010650968384192662714542028058773589456999651246461281433988962409984264445704733147548813543236920356831269472582186549584696070055573778172791895435592284438222996296544320738878452406453478390106004331261544907645454856116159134306741032089128054454049181805514737646746521116313491987327623092999942195778629841450716741223647128693397136651236231220326960748042587902806179810778008029197106575669220839973054012475298137669645111466090327575504373196769878454720150912899307280122743979809253667712981784587300368650427958893562429408081379676311254328586809289809083084778563536849983312981418622965923253123191409582323204881838336389235205641313021729579573997980000575658682453874999402942889046797178118519749125939084362017289474564655979446348127678156060481066257010981279797008852957472736342507120970169978367068856093357914281002658452629082721658306684373374996021434934961547526762156470527040301099232905795963163143573309195237360024646843097122450517697301777219603169354107575027038661632418990598400050691272364703342089066414390418135253405031938221965992921424616018756700045191804746793021053761631982261153998675846340896943417124185431067177561672654935064538660591985749777673015149601860514597959610407946717680317877699121540015011815970655653213679353245947776833870130100152893439558790821896845312393310045543595536106886694986717995908558765595103538610598299968749964222167308426735246802112992644387819459504252987829472672252546728311606110671976397271633338046610911459651651242457045762209727420621209296780580912059339063579671644036713518837276384157166833709057325077072678579099412141424461074680330250175440339461155945085852630659440282504760557578024027870524329369050747359954823353984578835823956814512488982100130108068470436393542564293015163328052708197956478100699670708069283398652052087016883417502329076029163162462845402728885899089900637739223257438904676457019226102381330653845057614797685391021358542869381229315247481033463673220862593633091582159929783055045370437947358320404914245765604234107547230340225861383106748069367002872777634834264005716398664046048062159956705098042086485234416669834503757651784484016272829608945221659068386041476504052115357265702878583948860995285801256489252295166967686571419919844242673509210614954555161078432710529381328259274013200558909062129186816232704738745498775226051874656330728983303207385153049526313355352419580388301532392868220404637875646468248783436767583308518536191061253886130397342828090960398532805476409945215364934529685860218688714513706079498462821978060600924906943169122050292182840455487237578628004199858488605338189042380505435317106952364648197456616646708574160523909136024432071087583822514365056184495311311191449597511374578444606534188509380295458922894868424536026236030155847087276407702475041880940132236856200820560643623479498257438978703465149176833412248706218020996085094741696542009206841898187315203719276158046892238453806675373460860972081556142473097291470491067834271952061832529704868930519748151497561556764723602943625246855945683355044351449736209141613559980503974234991732712136528836355467981635321231090390559553839406512433403975183945601877895750511735162708244349955333901057534372124603284707284615294002586373768872244133917349286568863070659794074854346737070368415506541266091655470088102274274472280338934679784732979010239479095587425678445804221046602324560576974776174904754007335893570566125776346168253042302667700573064496159454274234760450924221171529604913569140376053012659847860829757589757893953730069572088110138877985067652013101876588297993801089973263767772652267079688187334875299556223328644638759146547314765475871838961075787193264054693063225331402180363547603085024692170214700123985731414492383785921502260005775953075098918234971768091995866276095938921109154629496758385201292194150854138947208278526838694330690638255762243469306285285434157752972757409245009288587417565319721174010201150605964308371915931090451049500410458066205052066338573971787732695839057589306273688782650825292677370102840183261291053828687995411700113911378221827941885980000633197951961940571932090208587942648952160426568408858674427263069146664508446884051384408479623829056175987377265961593009416390113809784936469434500420881430068634056922847061674695219658965982640365190915237782153585295080867598033251287420012807752766143664764996676421541837984089551882317850986127145361606543718892038187054071699835070499493433005979229344955881777852211401532669738676429370987745255825300334479133356200825563107455852308852686275900279230298030256755239096521810204049928119085143442899461880204792311285787488582403614422115294669872583319255243289684067984760369667138373442064543288375502430139479295231205526988815677923323504253902931649415120387313127577957017473676679205554334627702594701333502978080117557093683548898987019296472527131657931268031017976259119508310731552961862568459050639537504815298980237057637536647391806058708633500546381559882740116385809046894975892553263965453921069992087965781032872759469803292816866886720570069091426790738175272094176457689832739379992707385097271842387434750564697772078552199524181066223654777862193537937059729282178067926305978715807113179914250105380940302139070621770372280471947454976129145623281175243186940692808654737705419065197236978480010228654935971505498273920318307749466201223339150881788485698771857887364932279180050532704420062243387569488239092646484103726642942736027341029683456442667140588433495062525195413805605470687458747009716191155346939906445893288058696831507721866620862250750110261345218785372985817677118685289316649359215039131547221779773212491885784927639095588806861621316158052908971194859355699441939812402470690045153196866145891272579400608463911253102160982347042091487829886050597230118783663262781016492912995163794443917575150882396644332908924401493579549894652968659106739652106108141504746200832666540163593839890831188447755774343992305864554982446232232175739778510030095734982771410361825312006124293092570485897817711666806574455176211754865645135131456064853065938184469126999670743242257017231033994419695040486409962916403187137684041533365920418104004914067087239582897794905012062509940949327062733146743849052402215073137004504164396044610566140245117479995554984926961889105306848298756893741360393258427388468953456367935383149270350031899910152779321098520186660977046029855800448095514069991557412917881857226299975112654083757313440204967295529358510330422978282533694012218327887326903386704436970307249416730843025817022817224185330201305212559323802762410760495235179887056033524341632891106653736706086899714887572552589110927045688406031847305344358157764300042980170885605733907625876419081578271749521279716946239446709486793113771735584827805224699937273899452471420050667275830816822490024619677064935390561676965630372084298966260700540468281290187639175424596150568508065310169515148517556588246871205322643579570977813500702329845759865721935697140386843324679254953190048105072090111117486530647278026384092254432513946263176520582652171156692078365471204351644908184814156904643524175474040579436602353305645908049725800643359860199602395109388980501044304233055891887602662689541384758999999858680480413985904993475486105406140496739273132541008981802835783214647262528701079167881048564786922378034625226934237489709853159161811681734821650783842728246187499704286110385512532521733200777157408505502065372055788429792780394429740945452871811411390222535698847859962020689061781828785761539172016889809121829703670768279240806485890837140664802936337503331104474798051613625245526553127449800901879330335882232993737026862895567246687194953631515095745484816266254564802295680191241308457158160324497161564226485881127259061643621272103720992689251635549567994201729911810399330716370135343699093195603541779194552945386071600839672301666160593502037032167898542535635068306735767675774935286030061683610707530308828000420293791448644964821061079179780898148429172651246001797466690735654259297806380477035382149276780652740828442410905090314596706034935958923132295631615463986611421943104079518910948194200727253944091105118412169238571917130941863707156077807859315249741510776125501647849205176862460520145510252015089810910314561469782003147348269162285844399012340665615753560966654480267442557334951250276817938416691671709745522716618415595519919177623709683594519855301123576017419843881508022197771551821844063648252547895290450203990840018324064808196517914369600161090534924772910834912895772920687230055898694246632041601009485471442325767844480428746533376066902062433759454692957169253026169667323866870046704289678753139788415615167440199004012704486742000621210575876571262053327319209731105935131325370831802644726364336983053255829541785196002388293816731413620399535578529766003900794411254727504154538968199316717521368740258196085404896044945746723718108692567607932239137490968714359783137993399449892479781444677731598295709291190277211020138422097148075779168818135463710543826855427147510409555310260820597538085102869666686755779681511779339361719086830720585826374013534183165952447381330254569128699083419764163461543843986382540410559818409829367324418628459393548892315596953962000329717531702042769073367181201654566857655326181540743055006545859397365220138277871569370077597171442505938013998805726967558455490065406938398952011121449705566830624390213672493236287315685056352683604592510253751500158406594747110059074487070164277626230641221328195534227505785868554903772045613530990780056334266889724451668983479713229159404916899903670172078446812747090727516078580720346098272266346003649537348960925999157018315883932085616274640097475659605132460931160733420397095211776816847120868611608774025528438535394453219139329729350656645734792207457920754576146664138167061154943671690110776026185963134327908923761770099865557588707187038790649108204457536168784252099372728972163078897824346854457771525124062482559595040804421424734385690476159478109784635589749028558547826107000870823436000778592333837384662444474309164003154167167203851109591730901815151945021303411566299686574238858921053479308114769786631032884722974269083474695113500232310354560732118377291514390017272489524317936325993136379019845166508594819458096677195875724060263417047082052623489917678408222410679942357200874663018805909486150843136115937256883013613582147102995523560717144750721565776282953918694007649111562840496268237688951155477281288492488276700024359772720246663480603403583616516529661978145893264801874746861386022175654305022674654203467675954757650660228474220622045112067417337999703968747597158346134472729744235844193886474653238331563422551842658690631355620567090996011312559326166667328919333361086025941381073382064663443971834281423854424614511317909057119542071697294859404463820621711020179180956213472225001915869536246742193188431956005050256139429195572585440873293774145396204387893268805097926076905432412242981148488910164759994474007141035777393413920216375703139789466863664470857417121443559724369241195521670783036585425214124325391741835397546021022059361402750142212983289842039402707870459516167491307855275258256276200673737802110278026258487054425644286234304118014260973861741512259976077812912144837451532914851115201537653369276857824634345380408151858572832594278471209613772033543986582809890302409703050947607875081540972532519687080576433611121321243129966672774584355355094116813252080689346190346557368118441377279860588047166852074362138379345395638506859724894405837985882097939740336806199508364189111620406891494203660911145962189947572392455046124593112260270583785626030635055496897634553643080140740319230069244966916019357737510106544595635290154039559971547131197680562363576679982093368970248964638335329770361012883573921617545125927584384005947099503831728223978653620089857399312552572673997706065527994275173820755808222918890523198765490007062820276130694026269099990539386662870334287597112121643617953992984605055655319018776425352803786708615075651094617253302744206167438245201551323489634917868729247134648890895731743367590222826054257053232177365381309293324025638594898307499134204632601067843918718060203420910346699452083319322310513304472556432580518817214569840050396034077223487809767264238371009846052384636376150802277398524477336443693361478574047131279110767041011016564805611151759299731631531718258754814559587955025528652654136930457004906875291041748499066806746187197831419499337237711970060068335868878668168361281186278206188119767270256199623014845465442458206391204872634480146156873716786289089724268252373469555477205833032976254637241448509642561894541960559650400437286457308036088247573219572410208028177789977123679494244298443120872233357380802281931563482233018194912492728169992223084300730130021286295531423791673912465628039608565164350527498895780348022732475569143648909178716737853391581032235403312299741842074579195383283269079091401378226018205591670216092808421656652864941984682672632837552009708829755919516034969828892284475209470179785270610016397924586410609548566568387860904820992603026360766490618596154475281125304260109350345690549469384735513921189498048882249401762170079567221378300958955770723573610740769109698861053994962500888955341760957024159734374583589476104751852738561466553903374330410401856461543433021316878004165023115013375052817021463438697203548795842075665142973421076332886829363308074403932817731062046367142418479864622466311951119269995189783560499574528532643578313629483864353620695152764774680778699420779453392357494700115596479418212780716902613986135834593898404021435353773125375016041043414532518976446062719689455080506711153337073172976244890037770780887910411513244697803796965502266302186691289316127840412230769007568674421856925467474589350688520542691650189310297485948153617265658615043410917169586241980110293172915416147340161783902087936361078416625777705823658171715983905186505476680642490269119086521844964363906668103984208065751151846699275598481832362808798309711235201376214837868982119279708701881904664050325488665951829928174328726245594406990912116190882480414839553555816405192883992169707344537430704811518434188455750354702090748533297964551268883474556837277274457875796000251587009767224536299800784693982501381361374783193721385249351597628588404752126893266813957363915438767279986173566209471225645597503576164406978647791039105418055247604031067908342548046498693928548202039440254613545943228716532672195224660170614912852949840711323026331675747297337235494877576051906060956752109790911691561277839181419631375100530850826103803120176776337431336715292102439263796029056146588103364644740750054690291888728394044212393766301957423687528492518700031278443233591050179678573728612629340163060135896502759430006031332415786439972256462485554020750930442796963709291128785128456397530037291339292830130562028680537305397289158915665404763669924705501996277568379589181046245554051389931239703025404502081912932973316099612378230202110916542324567887804704038862654612684193808164077378280569765333642222193395669266985378356986331217542918054253833078892417605832478352521889513028941519072820303834656032719698388330324962950435489431210649316975806446921776276528852229867575794798244631754735302706889054581711666446248627488817865899150470597904339698622132561432178273689692571141255046052735780413919133558433318970443606472570137809952407727399615885952810905927316200532735756637665725127773847170161791649451928441907020824010401565824244320406396579929279782351786586959786496152289341447630977937291046019475876443386368848232559914675537422698014449082433555881134686357271024774108385388009683190861744009323999007453177432316475389682168886544209683983918564372360153305535264198928224022139368926130335027077899789150520654311185970330534925146511577965249912899058121946197192670623336617224586004728191833353187499508788133910792045862938255768800375093264443637145994154686841864839018434887727645148142491644981801076146099585036011115893091499860893216989150378774238623460768589829550466214266246574815704085522711174274593112524554363226895656404400257389038833026522568275998127393833966899608766627365818603333180166234657460084155020121090743170501184151787705133978203701574279656993768808396619280072691034977601036387421666162014575777648720447829775593686709966362636429455905895532444436821516115315375830250871724352041088320372287302202873273544448177770525467742352625098558360428653595665187857526847631361353952388069463092142397796517007536618515344171449462088236871115310230611078069480866031980957147234359757358343427045970470096401606824190031275952035739934606040117930300379395832500350932125553522806972632040032983795458666752697682865267936330878743062424183871757180439543884734074388335785269192043998453738130840905467377602885273316371695765757178723594576219928341635408900500591601890374788079823619244928221798948391134947098008749116520957782809257291246506261405631874776362855858536833474108346769280241558770180489873973030012153035849679453614951252576800745117762620054574835276312863736408769345932813889167238029025164081765842873408597220588793952487204371020670786944296729306481837582098242673303146284205797489310834417249602438835718086810239873718780332456110623019465215964707202061588299562182813345931361790712520101267464367549899677981086755710899270784739237313473808683276182360970555644133067430715357571425899370392962815273329516773897174160908400342223317637612557555697999884047914864577388430112330981883527418806024702077318532064633635725421022951725755363738408831521653044139289367567760775722033718461640994721711039986321035720465017046756894189418331756445212730625414173041003132129964421326262919954083200865630261530745254298389649839837169048445539173025389388349331251389139666182890854298306094773649157578555489562937678398393609912340246732718452580566963583724596167171909563697571828008546774669315323438973096915549710298999929464165375634862975325072650350392401811815379864531361997497920137906171087636536423488170594603927790235178091356908075413182242981258337080283353835833381702368542764373981250648663596065109979558029180143936064649992583418409924872080099905721616118044343718228128514519842116394720097097583856852890525193102140581994478993938337991645642071357030289630880642959861436829437115526303218356073427113108267999571019322812942263194506672680086051415400561118400992861576803869830504017649894146440750718786923163815804949382133379716653746692225242471131227252964781834692995556015635666712210185976871387504153069753073474917328376977793700343555802479479169540408581695166262838990515988206655643401478924797763529014849098256236247141016594531893269435115283165235780606622690649988095968821124555865143177690683198918413650271978067693006111943179556246628379320353958748239522149416567146156004477070300120481566687660778017135514285229040267999343108151223050301755751565345398122744129610350660732746866211276937907122285516066249277613908766673010965838397498414644448014058955292368272132113232117930205066056385303981963398749527480957782677135063529271140795873787863524991220984248244495583589779827486586820725194298777106124384012616336575666172111133342743038744712393291056819788757829842120940960987790582260986915665887246373237032162026024094239729123876390677904220628674357193428310863881735436875402447283109105540937568093922772070547359146144196109587952794249849324348363906932286207333907353051952809569570678250426089880716708292515728650915877637800390075634095792642903593545962851906868114963594354419581182978479718654108152159451183065422581889182323434062496606339852841862189469012836624902743016406920657268104200374537994845982488094107683178985324137098934606085307952523933245308268841531764117625687136750486890312614773265608611260191945209434005370212136714932477867661272116467381179469214327294798412109779843000147360579592838897432023368017783605471788488143522131586942761880335546731256926807893720044361098742424202000601597711652572247775803399726991306893425591411797523106021703726365851443554030321195211927578802822869349355365338577483566434247875451138493751356443865333595701043890832450496415397871378957935795134413831698524937184226418505423422038846992881204482207746074605670142142154890307659972184203233142733513849085711817800347842229131334597347338188348430250650697416561175931318162816539030046593526867264613510765278583412284390182828781949761570267236645141343376845093620417498706728191550250171438058345918097881364873164683227244190555754238601359929084957428621872694083755284149020085237788748118018304573221404236003499645014381644062467542056068072298577933602299285466706407822631755531578037474455218387510018302461386635409353098654711173331116967371615177508551468263984517141259370599200852941430871580837488305103794421738664294662628159510303107579189301510197516039181179065460474624986601539407045821388424289738886149367754428282954362685220819717955215909798824189268815112858426854079193955270501220957052561509030923558431663527037481871722918718544186572890230570369479645990861738801310172453912082670903113413712697814663105583253729143726418060966977083962274917650476139442709544009829306585654337369544610666294865214241977063170689727744043150592332932297902687384617370542262662419701507883898073133490933831892267604307502428099535421959494851733663133856806102054406989526125515050302269507151814319104400048570979419914580519001199977221920637106581574755705567042411918721498231528009859326145898458678191694323150956982600291554439180519418806856940470460058494412543883947099963237501565596937778987612040042083747907510351638963823794129941152679587393401613826689599500001473044585725839363339777040843192992176868689591409112206458206306094253722369408878132343135748163662287948880994612104926804430694083232501092728098419273724320764338269386979213334059066070318155982168526375064488356779332029524637113968086917821473720393618380507679563685569905424187068970060901124651931658194304740500297348335097428573247690606357765851742985867675598458032422706891102303153892960201979214922188907218856781663798123058585345750510428614561390605033853186987984183169613960513601741137769191671461194124016834853098557321050430540605832939387831199885022877544099504774221050413898456721326293531427353742007790640254022767927167487001753082378650318987590179424673019689900856516687987350911399752418689363442141965580188663585309913279865089382291410977339390273085549221125691266665731756998876414956784225205850993648672590051704055848577233486725805867935994326561551147749193208843739003420165026996269124891743870212663519262813855507443991834239308107292111310029460558990363697211705764392667905667072343577404337734911224693986563111417864025217095248416418018017740642778372180917150999699251892660586365283994950679048201112144278648875770512048841913648708340947746469636590090268122779415218951233545906793953614087020119272928558804846275205206836305145001866876673118918629803624437578787730857747105979483756110541349944561573488411771451576981251054416943992264862194615131493696325274574109930156969330251314066581693104454081655278654947126737177191957439572518008618422455895327571587810951037405041335957720482950179155954302528464273178707727080380959700629354558944624189942482566922343055804315084187666311716053919257519953431273268928158361960683173965417676997447748872951587379911153003375612211726853558348176633765524727117238313372492440774847133491728718814407260223199951596251643434929726096219691432210468654052181809429420752530551552681596390534395138465277586248127884427453626413633855834653680650527818313071553271034775154136686750352672398249094683307109304982230657307379368947857997720105428444912671737479699926281829438449968707133719975093668356837424202620862649234173819465268326704824976033254510193169888770377665207437181488464686179101230775486154524511093343631938599888965629648520278086278279841088169154011866849930504812296679632684615884551972044124316989510224838347346525526310720753068465104479400132603539717764242308439550441124650177722738897628473787286394522711210259123018372841131376185908894072647850934065856103696920238067563763583066443262113504155686850990514749667399617895248403217180031112691217332850808171830809120909437767165650796022770610955400875496578623546576098934885030600101979421990666069269842035911912666479215225766951729648629796240273011159924306361665040697329955520407195732098081704407704258807757574187754982983016124817148802275136465640693040172848059236265234966673023149205267981605557790965494971883714921314373711577247597136506682942565006605291842825008870005012697371815973084056703774916244532742048496747275801071183865674195463374195517219426989783694215001911302658787459048326532059838137092038814967802750353494711550154527683721489214709004863160787479873804952766860766844967225486767175731029001000170104337005303995820085771085749427787238522673837040714793577746513766141620228102522360909497671274990031529928968977210702989773300572924161949131242707236746294069324241207114293628394772281618382280894144116607869747222306489982262907991754798560074313389088236712995610648105054461522342625300940930335590647702994916442395594708164882871100002212345476789261120431998376552693950524528517704785568134112780656864983059260785489100715739893413023145276502209183286589792242893998914748965691097233084629044140417081495693629093217018743239380604477723954178775271346071780251366454605547860481399482340288547155270822884048902611453995286474681025880116584083116443737906210804062636538887710858994108639006873082264003372468907276389445001701742805730984519927952661823541862657603559252005099052698346000841961578425536295687384250390523201776502993870646116470272664735253675918004113178147186999432069422529989676485537275204438426064099064589332495608723419147018103264991901637308757676336893941590969079067135027875778934954551143041583523329555818387492322008809635646379308412390859701833792165106797065128214395314310314049992466836062569535169024635607452710415075577690512036148371110302264009925712766236274474667392068162015601237152402526326108070048551455707596676610073780001966191942410469831904415645649539430738427130544014948268590939472893091715009395034671742231059020326805714786469610487906166188196400134909273851582285064327432559967539279670320750085775085306188323661892060356306678233698226895465985970098382776391644044296378394705794395099760400461776032136365656394420077471727784426036811687767807920639762492561111216870514692628759489915695946986871564002522019791204547354128234739512833058681936125307933617568216630649319040109539048916864219207701631928015541809235185806359748175206837062499153644822958820316018453155970705995625196736747274618121994718147793622607514828388304421546662170837054896428036871507256659332863628535377427423026518664490545371265172946430364650955261504125897171235597215217555034204909887303205846989170793570579282497946724063772536950258801419905684925539887686623345674695052488547782757190123088476344513596351311910473962645091809402965560302304142086510841996478548875777396324321264346752845374455115489513616815852787490964554935497725800474600151132457294390174045563245006485761787953186844707367502042912995614285133203865782282643992493059275609215404618296140278969555490278543544243093105262475711764028741252068122889076253775828070444406684106800970996214406692240350508358396462044341127384532068846567693010037955024687292526291394087750204971661751460785878131915148946893078634165923089362608694348049457278654739346993441142500416737979186037570181008483398415703258626711966457866023733149106386826588667141273137500859293523434302473707962166397792119844101423785444747511563049428588072988886359492623591178569690533709939540135635274744580915332784035859541223057478989217942562140271852663739698481678040772037488233570860801308045031033522728909345198710164438253859029609441450195839063898846364132117097335897267367950184335313865107720132061278731729857200026891608666506823104071644815334434990876910758325596086618207880534396422555825106926277373108008926519370503331823105129826730972549826521747172594255945945756237550992503025852206797922600302921270687501137649913878906397906573734194073102487654287754989431073704321133734168994743830650726353345509109934797716658670587982558976793612753751260516623492093560369284331467517275522419491940503196715673589169538531152828816495214817500050553276830839140482088572109813491204140957848056881721143749583592735408816409763983289863592697341098803635387103986899545238363724057702194916512298926602825280188521920783484199122871837913478997379479073817731069893108448234468291182618443186181205483903092575573524930297145193609094893675713743685992610477639034985500861055675037983942114634527938998506452572403476737781374769223717353336421299765749681140757102386180132588196121209590962906146110928155637736185701253228828991820680180043726149231911326558429594421194121701978312474811023050751182226396235785873750724121512384423043965626200749599650154432013702632859074977302406250158181065731315208303084030520834136115776684995653918947061556118244946562793062125806795908736072846913493911068091444007223407411316510346349311532870385200280873949176552713561755116239745171954939395431775938337397060524014233687851908482213102715190911878245040159524704811694052037457148314771328273966037882466803312585513845026321859768631267458301063557771007071251584263777139958848842237572642736671064004796826697849507843926133304977552948384304869483211710538093609940070463756027493244401127980178938908067310870162866623471492531474983544660517976791903990179371655546315865133840021782735225827797954386317206613365744869569299960453267526747277674788083907519738338233905483693064877625092657964043176288763314757409962802301227183634208561890630633672666249780942623130783047885592020615573106037286516596675590828930475500012826815862833657199618909883431738716062230781017854840934313456641400840271104947768830255160025531892805068981608055302744377976268715424473182501323164144309312813521842611683068553298743100978411170735553640192274212348622694454958036372036699829306240652204934766566250456297945586803431301571914523149957422732053100208275906816179758800375167477012848572817388965739139185923343268084756428372156130954048428980887392509983576617959804250717645759977786578823917963899132741906371904315374617416392483553688049484328092942975659778160103145195433125220797710250921290794405208159413167827059890687978616526469410202536799381478168776554865753609427459899133250768895435920332078260004015719458503924690945456475020050150606631627430563229670177840106044297052049349663953872078263061476899759554178265198104650742208158047573147984291503209860798502146646849417339422302872212294571215795049197128361036846429639816687365337110750191892095467102774704445532403199883101462485582907743207186894483495226256688201116427263344085904015630634545398499697377922479833134028946179598233242918428661625801028987775684232402901024159482470879106193772528817880998482434716126346920953090193058185414855813489667696001068344840998766905890945607741612397780396730854015741638718380336948686351999145301782018650366773018979342811709110789958182463422581503455874537596929436330133677511819494039776154045881996191896376335980701254096833758501305924698992787207672740023140433568695993441593671004092422195237025599135212797601256670185856596262542401233535105762960970565380214777688547010446927905232432836511745809973617727098840663533493095372371629186976966179640745839464319656497778833590129558076262070657400409460251909054164585193562657682594794670463138487432809065734158115923767166894893364739777407912171188750311366318549534277288799283771150731592882776849974438689417670635653121938003591991172453187038040448675989136826298646987162856036026275236955790626744855307689520064206055617417563154996347127373120605241236882256023475053068119701711672373687000361899716788703516124112628249226332058366215364420949341887576952715230336911156595806452439338401051992612663987071217548180132496229847475216016529676465765926599141935497281989778973502417732108215454482614927919366765007190936429025062623487464834194919610663374944362877105722181283009868185406584799358339554452015872234548063519632335176461050609562484732334257550763627688595332738895327612740666487858328983627278990578537824530982351558533025408313217686069673348755508305754154981108589192012786555196609440577456625173732793288797558263640839131189081182009457283070341721423607622652339648794363458233168802508553155914820293285774666035644765791519421622048718500961373199931472479730811026072183351944122450055350190268455530104802402619392939830863768047125574048120404711092467668748603933136854987278439470896019842149810827526245778622526449865551268580873239616429801503483060840031902147766016256405830756549708935381286151874618562042400730826593732431886897470111489057468876702411334244343395628234013880030084123136108203481078272301099382307215648108293616671110998247952096710274196565060805142725952446396855657711249183420993376855158131675085093452408304566162297031742921413094883356857605330903884987602577055901448388844029535108937593040821908243422157787413571668610518875951221313528601519821147504501221944747799655289876460660012366524796108870166100779269513296029347785548127272474969779766181246612709907397568444132082570329694728424318603890382475529355918268621587705455226005845302646585106843853711434273073142439639649171949868412930937149658709708013206778152204795331009036847148584766256198414659537657926628894866109669521421254802015239973050137737038375019511067709801292247050610548348671401856662347294134618854989388044902819467070733991741807498505626651014422980738939787781981511052047855057535227065917338246422095875304280944204951904553193153996034511467985574379264372610966075402141907293532657046463574047746850912671952955280387866150770530969388562909051523807242833207188265869599273382911159333629569818944195418842891484801161878699959836038008558053739248132203392574636177925566949982109925242886738429294416898797264804283539887641319561974163048992013087647666945462337185306980183200389685242109431349255488983206247120274340684558223602623209351073663595845168705966974744556694403643420743375901573373043798757587884520224387523734821093879564637065580964117589596750497796033558057970491055621117060755961373743983263608204435232784382976685979744427061870691359332782143743581365342279027367684073703032395252806171303662762613532545862848018125000931544819005969254946645733420734532881908865550700890159702938205474064779848154859819736407983698525461383513633413183164163544749929373892458657099242220901457915665973064251358411842532780754276159750024123077751777275598797121939961744333955746163379245385871220359985075510819690156656567638406003282565827639615961288157797914095244686445462430767806203039114229316248599772497236727085314895453203688600436148011473177286301990186361288193647874302595540543918967082211404695786101301781815788273381800450474371338657852543361099088466858281800320614265513551464304275702323074556367715492302078207025659217317129337822311020078954685650977317566513433876635841372295170320225921878659248215922046396996101107213778788693561040406396705843970995044339131557373015872200480842757727990862604940458633745371345189710388219189071291772994333196312417855767422898834255629762115874623019683950785635822211574023362179228235194283243891032523857139761059474718028703296037594233566175882552830314156068297366954396130896702646214457026898601243094514546555295149318817835908694762054352215569620315101994947783732020361436153634899819587674539544729954393038264239272538888783438879310735125979369403058212272731830488228853092220245545326854038356056579390069289555698127164273529097991653724923786619750998480826470438490110812822069707809153649541641860823018418130377290893739115404480536532065525889082183980362718103558602144382822552842577314175487599262779315272526467558827903347541534669323197671234917885862577809973485110264150529948962244164593435305687953858963774540399907393964903356400983380503491130406240093708415393412481479976523874868734865803886567365646230143906408099402607782541482156296772808633052388978116813814416552577165860777013217551907267337761535697990307759085937113814208162862983778858066976988499741149651706185136003839312195922968748339383631615877511459135510069137504876856255507365672339092007126614928031302210839094439619315527073110517005445724667690551695699310825820728037689725793499369143118245081473357647621037225421885394562734072344230155693215075299375060267600664870562842818739360652739986154563899859149299256845674588739526680785419195434703351245310798858665034235804020411608898653349525719268227397930597231143065340585451119989066740336081438132878096435815341324712740058250843235925046249466959182613127165613870010497218473888061417492241622729107240084550454255790248750220788223014905665736626489026816525890230686642686170492865782421879994490545403330620095920620297473964023565219576234690296127131172302850063864084285105930926142449777302500568281246616358233286304403313068370894022896078749553731537181841868709984760967102185750480521558273976644638521136933717196189403327026327183002476803114482337337341856075698265436747042871175500066108834628709816318362779440992206777068897431002433270153271688668442132027674378000064790467350923960100864815160226016773571435504472732159998654929996707449372630603204598000471297363023714441348571140823896414773703472587915949033564833501473959272606696870791126278744578895758253847596052818699269517490183734296413462698562094299419847069581359788815608026955056643888845697745087073050651319852881232953015655038484019310022930282016822354448775509666581952980600641348573674095340589516815041987009875560305994179818328124631587178391989856849166649382268764004718290841799305377124020222498118211973209888282605320001475506419785352253926506723206140890442098930297834407049645567025607670448219827118779243063126938683024316605270611196337771580373196968788543451654656012025695010025260908346975352182088970496400874982897904060223424249690259353494855036600119447987563255346683341517144182544664124001334992278029952387584492120373768679267101377655115394649133921872112605835290360000872914186104966644558795252260749759253161930967669985200712698626232675197292373457990635488400885230256839716239156903003528748237518629163838534381767851213993240901681548055484322629108309974060157647160164709869583216351276543118295460991671507771784785945269533170820258714196706212524711149799257018189659187191374531123953866936908697935700970797262009592127739059411171202059769569584226126946273813204075354283569038655311643701301492428414839967712748164452526958822727228456370715376153340970377779373965401111988156199966376397841193645295079732692268394043385881759016293534318643624495728025972872626777933137878543646635849159377351540074640954643735951059621536462157306556927561104590452065936044474296680107849841334569533223286936095224963610463493612282403699663856107605502695536697627905593659100369611547185289999922491134038806651575000740529802293343879279002571683458415331673956527783008191606013603569489373909382553650652651322762115217402796296131527555063159134770150009900297989444638054812090520149208332671256494917240553134787949912956523637162094217652664283416248872114163615272518063235623022308638077694014800201996500687949506380736725410899810328835294061307517923066004511423133214172515598851635925125500355487443398547890378263008228803933490137438964681326976483729548055005654916169159609105134017185097313528938206458665191231494848558300340780582367520853661850433506907198606870965616813464591182233021597619604892031793810072809907226011356588430927244254026858802223605862454674064805936584619950684323949552484123602676475041713540677626494211138300142337520518401343642725751458792857693775071925189467972442808745664344809429148368514822363807085869532521499147975537916922109180337187834624313320124480617728955217567229299506135066295142055196236892613897092087068113054452634702185523896854862674667103359970337223350702134258712146280687074527363854325171951791630744160283593969781097921055796661699411499179851076223388796087181917187079601159044368609977657505472972941111168725934283604113525975446831824975474194755595464561068327026421143604991507475666192220767818545188688073279209193418620107745752077909106664011462452971754064950870523056620126516613638118853564246293295662824533345263254735625791722192837324136786394545836085886872874962154085658320328385760021333850079453800662641010921051298667295758257248607412728995512340300006092706790459608864561714744422131185851166028762650058945981425986715731145292053134992058444941908370548420418166651622008049528097362651733247784089588002773101883967885433254106134091354996634697582735462814054093279866397074850028580872594646650659109975514798008667205332043662968195782476312817275066727584055233561911847158592982049985454154142519578089401036081143882992386946577945712179047653556461589208041726849582598488037738263589069322174739688676729086265649463653740772054424821622683166405450663070430551062967818241453192216140678530834647623281995014662924483256760612366499040100337560403639101365828566251603830856650602323130938695521205937490331701552980332863756511698543974383753966625094165054910711920921683543032852496115279846311094667845173590225466098541688545046878196471349762618008514552222959554799847599691720320940685440725131457454584552676304854051267880594020195164295184985314192553837618897840343352524459064605189463077112684445420125460508791616251239698289708572227625565969004969889356871256868692197791136539978649010027955413129346263963163546708093910430592566105040023468388931006490435393501307290311469928056661899461538645921398135937622409063040497530801415251191093490238022522035338608265329020508082229162940318093005543246772290784138990282296409014281215758464202772502565488082875157656045759574473594977367690382966895274033805527470773916033447684423066656385531191673986249514564395742129001465270242838505859268772422504393519162390713984974373443323806293440421124534622029023525175753867711427640712816713504594885695882805350835579422392424161519427822728886814344407310360855705272173578313598289005515433274963292063637445842118322189742796563623104058917038915015669528319406595980924550087128761100717011133786454459839905905792681196016537002216797261451181979867747750662584173751432883812597186818487143032600969033906423575505784289561401133947578487141367969537120454018658460466073622391097328104458402353360125809478906206328336854324592057917479398171505869623823300220703840161942542504889755591014974189976640988513479209102030104780218535296712581995786752489200259752872462588929886904634035191781423785533369845101877033206937625460917478887232069002797578814182315624534848750151194971954415708183183840259449743706513496516090104665485552825852685981082756803357858322395411510912414152615476532668001367243513448464540594206922451353956746724645263789605814410371798032771374999195604760740342077910795992525823665956787350815039735583332209414586323968946418241857486541190240437536297622837353237121005161518155329316398630898170411839782440299446483527048619181647482185056161806189099348646870418492237038277961983732127305959785607412757717716724306856982359885849891575115390003415353545247216733459084803977973645271805261486987725220806426203999990108424762013623981854600988598028607525806338119413530438877530684625630639913226148904629940827308252276877587225845791224321676924065640950740624209508391449867195898862852853179620572117389550270914564281729783315839783650939584083362341103905781239766365270812805389548719371533187485882233618358268240269485835611963669283491845944338226638394175184238233675520503820829857371163295624030905349654628654544631621978763892632427855356898340033712296181431960812228848334563829241545174128823743843814160828384619074002694634924305599929571946494676035143697890854387848120049707528179039438818015492151691845668678010527188792314201408991465585233724544438738353717709586261324586384352761181790524442251729306764776323090180241201482876000409887711573395629517543219958760316042054858195228292233068691096190131870026126668983139478428479560919667457803111339315908117732826659010916838122671088381629584529588076942535353040397360424939813870130805256686163934603590077883059035009549520749228377170130649160246547821327539883351496383001522300946112316956711333423105928737008060689790775696351038589480474782371496582451139206942838719434491911659548259336364833518668466865759024059503895045825604508457711866902729513923235989880324511150504160826140953661610005095687124831582036296362310008015587133970493752045334216908708211463094761464911058020571172821736137744426235008881852685654931628215080162732266786481032662491694611738924504963135136313947454215072064518495356823814165206318672152844549986961201134649128949476189059743725702592735858331450375561157968426532942727236085585943547339753153676160420836655941808607780039111437353457090530802856009133249489337775617204138313557768365627504683167419351520712650901204864979653012162951139941963213146776154364318577111611603879705341334309977307469060245954647105019529908811704790553485282465768038788334075239763669723305017653326243120424415648513838003433607928002749056108336231893845309893176441702125777441060554251697686297918676463832367835921322068712943801281295564447651247703429706508365348732204481153569142989488073753568249303384334242426789183117927493849512944881976214731088195463303940616978252428556175556654381351169621793127670287603788716472643133048606010127199640705318349970820455461957036095181607253300090724522761922306784840640274771003695868080752030659639643806518505396203156061639072030049806111637992432197980122332233725998647754196963209562645777860897790529641460667745720535687989646018920877893444276408640275069567415464727101118364256106819796225841791173309762656029220389461567489800008978102146357905452805658429882064833368464368891439267000653448901263437632542543385275605114681198366492672605562955897790697529329004931440435537161981724541862206010108462146874557332929864566095320445298555204929106582082740186988915162177664172252025573243210282971005941165821329735829115284344736891514447253044722984639980060622470737888974730117954915901484793714014765106481804854077809823225418751043815833853940075302352506490492654183636744413725355858832853089005479524565821420422981186383862335159260719214111752739190480578319670778456147155291464392963069207326592130323808152762976639146273469529664823516124501408341774375479168493729864555899687970075180772152663917322660994955525163114217338341072242354762558862630165633436087551618132297180688192869893015900754437610480688314246232895851507141510437618660955493397616838238576145291355791761314446493992118270646272978906548543268558392336371712544786091579491375882419564141856649857957407661422695793619794977780890824480348108954895061407705846982705314653326947060083152208377160565290792365294459798445408268902778155706012245110854566481905670579653344817961150722200772879218635101081211072555649033731328684097397859396557370946528259727536705797475595961449176590053899035062121744820489268231874116810819842532513949632161851882296739216071261361285960517474744478037174218400972624253637832104510117531576009679701652120647857534019864813145441485116499116361434557808915263532634031965403812816804155411357901867135120486418257836226263956316041622297536233783430942907305763344365728393286600856675053032647115656716853097009565528901587884826936439925095591677702644054139738007983290505580159366811991020741545378530986169662144166419453933665793862706930888067637966947081503780766643023142918054693154449284858551938517480974092681121556825711742098987527981145366685699334858099376986328942990676028968815782411947667496547356118994439711794121676686177809214466984137329081679226882983623019000536120489560314059052850685172473018814676700273916533109843767625477612670289050982511570956902935829083751302098305747239135989997895671977305326691216208740797030636498516504448742067254079395436893768349163457950852247650006894723074915160037380726333282549919113542160307250786124839352520670793136285844991935921777830521824327431771740449061044578787886756667190746578494039357922720351432910566516424585895019436553348652303502321150330690082823699936125194601227718061816022821368451428591165752193786585075429580618355911213059317916286541868599222853288011708141320947704396343031158922942311435946126429553008435916939149161420052189912505927650891911897978602965457393829475033401633770989998387456403885749345991421095972623912230021181594823143746725578474155614826147040474735153827587457506509225118073752621687065343735684877736076705467996274447504767508556031565809968955962723382662695287724229409390532862424401044279231486436054465811221095436552292366232076607015632168196990909371726097525723393835708254776330339894565191405612489942721810847338208162294719620124010432889379185388307305691397205382940884662477292511111905306924967481724710654548302702819908738151658231916093082407654929340106607052955228236660364005037060718108360118725239737533359298567227167162059810518212466286931500905317507334063739842219217381830879072687358135160932835259035834954078762400019106762629005414152370167047478490880350348758455751823151893636432880207920464658644220778327526213467606568163055762247134779140069457423751890669819327046503425207318041506091190842621670314960474694685024683258004626171971230535040989937233510881135877476288325433908080260310810678157445267855518583180383072788362768846426584150606951563199617651306604018504862780789284935952554558750855103709941927864882690255744042056102959766386201073131347712492691218184662373620713208447672350701521979156239806341087272393724853126872746256249764699552243534401482748307223590308134749644309140032331007416672711141258318393121124021239333331590951199280484576554711931714288423909027836812533536502761942959281558579678939118557117375592796765105907462896263230389514178324476163804657677909041540212304551266303262836713506472747629905894051569486247536766415383797300336802696439252644321322945058091201437689907273581749432501200636850365400295630692986271453479973301884802429392355849520001721012472081074070816146391467160867111076347076565058776464476019485547614319071252806679971369932399258738767208335855670730649691660421245162666541644646851622621842419785378878483213902165228817104041430147521548310353955559152001931764545301302412241332250829493948656224999978208537737959548337006814250417295376999846701301654152431643447248090014755833459972060562952796162152629387481769794623374088818138477147840236817493525524270587444220346951149196895563783361849999901848522999070843067917573275809175008632361828442397270083476434239506756384125340492508921313898274202065149502232883673000167740282472621260180964415120879972908561246506500574695623164570236345979822094068780839240707442811924707732469746146290236707103680084908704901975445768431330251516630474635644229983060725349832322641133490397727065080997573901468696538658457946009616246428734489769400857263463409416308961123787647467412429206479874226942815147934624410016351954354156940243144932265842945059467823728891470617799457704480021893651591876203807200492493442605057034573822160388910772516140266000264640243420969640155902788420451555214804374666661149608316005574671973129459210025001399252945237564114926027510623477160811356803255494400377870945693017452939535913760802985561368168839432957004228192207530181569588464222521850988628913491120684790921430985353178405021866945652364470206287217579862963561065579832525325406842713448452967053839434930823705496348305411977791398242571301107415471030349349838422306081814078520825634347090696706146269383840290539728446956659720172326310297483903959916102643060227994907400061704869355224015912553806328322704167418991656617887896259009931777886949324501460094409547703164898196134451607707269254313552571444880313414854728677424829186323866934331157629405775595204966857434301185829018502372267482170444939347523537079699544064170039481040418530289493318297108169472319602237932284851313044881704360924290789573438696235293073537997084623468628541430960533082515965156048153445600639918267259057405511590706795647127073555397986892952899906952926999045946541237088115321746666176776563791363703236109247609979970840738735090115828069644419202650344480161909252629754404386599943145545644005174554743205571607328240402278699547892396701213331737805869535320780806453968489511193847670048282227696615971677685459008677755955289470866008308053980884265841401725416432116886321321362409129276373253974286691569005388679405019373092180572953721469365495482823162392626458177583334996459993458688038923538371386286997543239411672767267702921144748479669163188026052961450128820224590363599599876144624526938472631424308989811955844132933224721790570528382382451725126179554641832253983311805045524119856521693120708459282804653520992471664197956229662479676068588257206527624690682041992302833760564538220620725903476183118684044662891887966676428250868561374957641267613533246612205924174298976242130125000531840459523880912072952708817729182487038463649738673930028749677715924949298602209252515276407008518189141500349711076759080802379619365914723769770231935541991929542486161364538668056692493756359681146782591038864848549659744052544254341318736151329281259359172594035461069636466684004117455788761360224062683525774771397817752868631529386107557829450290766097008322913583458032205746595605550685209476585744964395807986469850806508969007644754839207649935355535738432933014252799547549150792498551466906769948428506518945750025132996608915184904325187955706758373996631246791970787637866053561762020958266571160406554910572617851900166021502675793609720900648786224181728878365733462845628678990846194201631157882463483204241228465497805723194510007905726107646541850844692258541589852229012591558820837453352557209820581361896598608065646277934639668508462879417634769761341582299613858728503242898235998548301689622877867675696874838201347076201756657263285038121519408897109926193236616015346613217962029784297896426495792587564317305026993639683897141437229812008242107770460630299734588706027421861156386562168845091983762593640704603647741998267194745365150333704874866749764452097089162312594471831936543702167411643801392284179195692632974939649175867000422651894660488470139776657785677490404444743512021701385547838179738046390133745801096071840618638647517283096332261881045412350936203658257464474474480269719264344885500298029583487823653100048218636254774671892279868827122779939662298624325998310185419771431010555069521282390731561935954087894593968797579154225065158690116515523150314852253620275324402098513053209428293204188597225844084580891805958954577012302712420849276292042277373883358541623370892593857081498834613004816589884789510982245158709931412306799990506797299836183600694867789941354374089394255557945513982285953985099864479740618165062060379762633917118132432705853345142822556483427348128987011325358984490271693051683709414546410389993174612439031895673633667409112452601986278112768876622369399638985480995228797938388431843347530623886344761947357210443341602200076988340150879694268463665535848020802780996165731566591291598079303678814202228316260725083782948891235901851353183171122593066107312845785990397599512764916587432469112692608635594407580040371326564077942108637900197507577770053716840442795314116949289838936405509232958778160697379342636147332226053153891011205932173953746444762121871167769804898754295613151545317483803866054038348784063212332888067819817284275298738726673057682063138400321929778034215292214793951461423004805908683983029933264916775677385804544636562729016438952080605849388664464518210506964001001019557434201417708706433019580787139933621497916573318026678317634387896656299806931751609267919241916537000216547048204160179710230484586995035105365924707184500714761933021987979648987727759173353979392300251385797328697682134652012427269585573343149771152030633368447087140519468511304625804337617278513027667246493381686294311360440502602268786962952446587233159970423254121199651862066351078318614679276514163561940392881267829804296615249702952080374704238306941970907035998695770324484587547476745511698049910462861907972665371562699716081297431102821832409864460789672507676905045187056334236521272645217466004499691735347536395344777049620725794068054512220119580176962307317128655012395819895778205476485374086887841066902780964588571596217078311244224155665624744724804739696085915226699644861916702967128322305930781638114764986912680707254572361002242251222872909267430157339783644176849234123248074092472866093738217587088509300315746626322519881064161665027435200074070220801549953816039845372715260839183657691960544154032194068652278699100673254261393451861586166796206876925008033504631172727443524008398596430386463805358164969690930660524550731061959824020690326307219277004609073907914502380386953606929520296846516225285179574210945369433226053697231352836977354770072767069449942631091656373327382294954860144624246193661800117081435322693447338345754141200933335143568841235121745008806883883525210171277216451856349975128810418749382171829704051268868138702673650617209678711565101965196242920205919143069086558042585604231420878480992791620466468053433044023034712677539676522637677649209582665616258016426178450878677076837342094341467610400168539570485301755695631288275944571818581953234730816636447630355792270321882699154424444005001005538145846802901354055505600551496752944830500764164232719224962943123257144026606174590142166874646031831916492806439162086981908884502830586443745630963394709510284629560389672154658783013842134664653665281333153630478928246578901669293287311077727729943881229172453905147016884419756551633276862861707410516569333406790863569956525293216883250177636103963993295166370106478183085252246907874215190546666758937975240869815214269172992025328920503697707227730988286897200755276118459204758867871653458787178212327314101916962309406177880017558148863841066027496950484038277818063169813439429611398000473166668387567517709311916910993198710059801846107973050161228063837195500305959480507614061273647894259219322187591120529683238516892092759466581488534752704650267584284991101671472219940283050735939053606502423875241926719913457828680956126800401682442308654853103328498563061288918458097559437069773733177787920166324893474871717018455089925663399582178480610621261567253281654134567050161583399617795674745642716939068518085875138678118648765925134423762149042741870596991965507913108049413190398044824288500513789054833480500468421775287633713306385684252684643204823816963299748583412357300257991089108011502123518729681685812757384565149021527978370567096628873141506853938185797317975299590810266330180934869558692328255113549100549230890373084813099744995099004593107965851853423372965257180601205030730119366214106957153739439276784336353858015696319874819765513055344823629707278287150414919702930556520771576288893324693971478275704618357221338353438407105150563842110200910405603831196417139149757037600468761636422309148379679556655643839910641378382912440080109601103090039314770878923045553517933574760116516640804262000260870428305890882789189829695090825703767256830067758519882034200244139973163885861475463598150965231680937108868319346429448008502951217540609565346842169719750839141789398417637378486842079697083778123838902338978062958755723238723509042990454727235795779327620179771991840932864839299422002776875126091647074653726152286236862017177083934624659068320456115922736332877473359441665821220846842038941699539928527776030372544264147124550223642303839834982598935794840010094571228711980658211074874832834793196434310297700238047442524131483534687337102690778006023844595000549517553392102712741506799278923806094131288669078979812807040382292008829440896965326833776698215176823764210663692786605327139439988886233162397558101070654334493090557130796453207066399004925913705704427095063290911138353267147121688461379906915880100985056553749996870037220221563862774107998766574874684253150435166281072954961171150953650090784061037838138539517605387549558551033645817987638116313463054253172872133727175788757502848610600444728246648988989485791141855727118127959596765270959684381969544347118048027944822289566491961566699006779498853399870773417283942886490386439160138577383567603002617719179878086954475587543826529718006305948130160071813028444646571734617444589627612074341975492222861986984985881313728491679280800210224381050259644597941831650647203175738960409311996928240635855868331101938612494088213452063125162154584869874349835304089094711796352052868838483633181635274399430075543718297556170662632272068903958398585137469168264975243672078313746771367464051458797059071991310188972153244296865595429086899984177723511312624507047121521008278721366311652461998839976310644784354718680606548223578519447389509383959416970762446447352147037201592383393981648406672558439376120923407963387229586493206907578330882658582671342939508273507385045194782479536579104084644014910514847273908696854972217241073699690072922455654563046754942101780898682946141668525762471418594128055414688131202461842538545401649392194858703562983253317924729514445816027433963716012450331932159166227828465045469530212876483856144949040725178831135306719291132379456668420672773743922416039395618246515656083119832237959703867472701768663680084980453816935452452540365224773748310736756945580904075068461002181523003029116129846437918631205486703009800847974137155584610531719652494827735670011146684032947306593299658061662512612770769298351300711895119866551884902438783317743884131609330124917248386690820393335936948899607747709892551623655210663154360927981386049757785653446649175144874571686876105504277736948824895021677239804954271264969648578686195727275177536441603418262279324107303424730912298601687417901316304042233237275168656572375316541099401898092579681455157350518581834728175653119153607768661700848320024873640765128324255957000068281766911235144931281118261285138393405396404932313863015930348255408104827548492557139180905211194159042921301195838517364946316289466105156056913348890827771715160595255106816653879539202534688431059116640680628027628979215214567846104708945609922995454297508733061718033673403717448172418611466458151986933869245426494191160081886450098060851684618166575576033114699701117495131744012028385970224600007982007506292025836913381855704949048147904311013719785568068051770450099348489935992050910094944266551866231598472512160959158819980321514918360703142479424390428170176292907787472119126630851444179114680574635415999252376149336244090424481836961579938141417506860075808789589860943607827290709353644050142775775523570750577832042509130837928671591826300273778127153650463590994969656045820495891987005353561982991524135157714826173259643027517800391236416464515959765683580426678586999551836319298219075219019382859514263091150342626430447460602129031813821242167170551671211466945711545478435627044672307199575120562182544403167677810845751990381733772838749110031338225612521475956046542006664581071783077263494490528543836224909064576152940910536590270252218787758333391334004659129509326676074059730529154330463496934315559048992775168034474240148229368518520923534236000067203238980872461009654052951376406600579920439420424376167396765229714999649065714029578248890086482762835835413525247884267513799298681958675621519583682840956306109343164967189315695726849538908311345454030602212853627127257636379381415771492228172294054923804321223830298188289568345396221480061451541532332909616857747394179406726624686628508683025333709175467323551344328258155894804471115572966279740311986450660630141853665133162792391179559668470331242574561689221765777216004524794237248297220389187838687295738048478818024292629600592355809668528967674741639541077551154453931124303884110631133050153662057142861659537254669344074428121936402615851537119948429620393102748868703090014900899264830022672085254466864452516280901463198758317168933014700667565952246889725891890527607141613028977617613001431296583201275694518331613637037765600316836213576865240701279690959541280790001590956225351777240485032837492038730412113764919926976021674027933301270008467670979147674810739944934048526747106358721126810247797834863317879581058946804201194398138050798560013346653040580556351786289048646842545906075660929946923581560506076717455663550547400812413355987332712880513105220208433882879904326886455783087999867625305514029631131959892034628456267009955324709775209952888772364338155033065743585746254313651772414851252782773958092489460908910006514018019696504672466660782055609085295943397128872580226080299730621618668504313006763177388344365609904311336676720222340572591651417662318642382722577031941933134252981839819439230386861586060270945215772451133973070679645672825814475764706840344662282579479833456429022450704697436874940648129501831165256069216999628932534234456357895851414084450987021990014628902223923571905631128069948572267366287623933424096657850248681740280608192876672355878213714083601417486216544050723568997382290557179956854112951006956338841647072898884657882607928864998478011115730699533107847845489977258842176550819786624895206138186211105662561007494330698358109825920776815878459635903154667388794218316429707117176377163802180599637662469926603609106165367864030281994923816206939602238863482908673941337948431303770844303542821556921302560961714820537718222755520815983446676960149727194239334026938658004591941036106452711053501589275023163381452558798429139204059622699635052466894274686826232490231408325842522068067023813417710800816796495986817519755254987416094104728121195789548688435605013616775940077015583102888834414605791978911020737146417376521529711894333041946516333651378462347630585707686484923082613023649835896650054648599066142357103289300144166867290177986550592439020184398734977622679345343672400414417185519285428225432543470367622195572071185715911619776203720727651930612109350222839714925538289671705099362413084372202603905440300757509255265913118169554582201358741616905183059124999525158978766308759570591439432260390955850699273984012788678562475184192498164071351712046563847221916844264846191733835329779349235526157647727905752241101291457999568436440655723969454365304119938075864071863356965624315293043370934984362619437699250438629895403693908776819249017550219112169246230866916857544231676286755486668919770750018103896432983195868655688671720506129238900948747738302169116023635899765713102977945919309477299474664222890567604232452898807187606183068083273685142230222669662346351911921754530246026512056945799337582283584400648615974174340107118557615105690856431544440735486320325177759596128840778228077664407358756579021236862741824462489158624880709888122486148052598138490131626961866565928492441726388549820698781914366160754238316449182546761622142477367533490615461493435986606885241608911776081817798061658804646860736754291770727727317026595608486333753993380230029629842308619738484225580920456479819847743640451849489658836977742451864452857104722772794955405655858495715788143977959203982120907824580824097118343307420315855730927543487623527444689023429904484283461004080578637172719454748577561355364560927142921272287946673790046634686881896394099975503087105355668489924053641233847047351046485815415472520751445295361515198108438028521280772814994731296074283678251889959149008979676143578209480461838928469570335531058310726622899556959401793249290678476215178610446098959035014772165503076847002753025186208578055781190923259208719097192587443790872353937814611373455820803347599774751293855274692995488057868627119916243938239216578563785569283041974342657374300725218900084753146049354296930684066969297103736850570934970371035596026042804967747375144216398756713628357600424367554210336555190113723628251811068875983469670485677659293258458609870605656383978984373411223432787780251426894387453779550142944204007641313073755199829108615485159898868302539934248144763077751249266858277828909455404790097878710957694306917675720890417251341198471963771673668446443448778803906993980325737824010088488940588523244287082445859917721285666839227659397466247506764286303061707836236797074959873536317544540643039658978489201055211760373344294022722123301265651520815517247494651744213681262738777781138072379410416242379437095058444858496620697365873568651500379331854946871644007729688631818585767622701066761059195817109398269921854225365277855620027389772905362660281043123817881058099625552249154490529036368257905446761136183334273456126943750677400815382497895743615939874877315951356095418782864972668760332170127458008650848814005359103034786192000389064124036961351244489801418049176786726840343542347753917597439644873885887738706031742815767862985034448996776778518785793984633432781321579282958075195945353718125249825321019166426661149383220118491631523246245774340362194272575813829257234734674246717358884036198229842205471338844656622893824913318148857128414069732513619232002135202372634637531183638174398334443993160352761586813944179586861360759188051643011803688671218558586882622774996919303024416279168205838632534749960139854636099949055019538973637255602978418736692565401547171008006880214425254805226505467602479421272052996421634934633685532144391514834218875884508605449113324464714712906921608514661035283212255386117921727298249019494337315544493021093575644839598662788477246016839517749689184741801333206406401322399187068273069126295877406057039632178464471488207034441364167649606194302435024919716928920450893087884829330345575995035247556432344665083288396273885303405831530551310658764400672725626440943916554226108664534871871907339528194784977251929403190411608638915202183945505966556925052905946142217523096445935736197877433019155635458898224982419958772337532525219832589487317491413108129659614930998990962719283728804498245286042800560562399128922542991762251650254326511570538344613364445407419260111330026901993223706300143107282866068328037191390078457633653115531665929131194122752770612203377627596289481126920631629759411082768206559180541494041543809083552690921651879263095544241144418196366466748224871577392500323051440105170952121858591562475391030240024341851861253377835342702478234964224921342082274903576178814745703701521895223347339602750712451802664196509310261064571109325420114668866617613647651813852554449438649347157889931808666691188283826951923435951637812700607970852115094506686660945267183346701929204918358607485554617717325332065870999188173223284617142837490584386772401787780068045471669676272114659301825503371376688191092480266535048289152890241449645911303090551595176545738018002517864483564187092463852591263955899920720400854148804471164130496633085252524847116270295260235914256461639125456539690351247503663704727542367701030193952558953807670849445181474752601614224747978001251656519977545830188627637680549704642672220159084668254823348828645333646613116296814720621567276340277977657437733468175652444802694635925164890130964922760617814844886957612938471895464079060774700921621069123223530849517667822993003092991260984647040097877669290611766564141995419516872761908524066236230545333018033850804527083528712324528594545917860231383621174107072421905907930924509558847339472885998037501133037186141675022336482383038468148341506564836285203596695219918670467057616233773938243535784771642223450851181072599070053131713763842085271050623870041143526895696097023785418279215851877936719636544407386160091073495265583190670908727520183929531517610543129205342238873804569648170687984593581785544567656239314617650253239436049041801116056025629896797263923393121663341016826982886279338878566477563824684869099806766805824177765287572434899151591140223325414134230433120640490313523132741747264312483517311240142532376381742988527357277651680185995420065109739584989995355457494731709087220699657600793114907645724769556722888215105874029172769486796811398408485068255971541740374366151397954715936957516925857069472301836277921636039932687381495652794622182623150880919271175638600988915553826075999984346887027289159193210863482301521816881268062886155527800293157450257800792346996258470912523641863935304323983773408646397810118483893994214560748653630845966842527942353108175032781064703173880391744270231158759549892702548617842958373917056015501291602385965425363543593926107952767597781369195819882709952465733339335934607211298803640203710608209918282034719730730856970181492109764171593532197322896152146920628080745624042989459686016900342537676782228555281562367444631515079009708607204179222348996304754459178199794108354895732486865639719115188971474807628526095498413998975342455970042416148469821771851133128281703216667003474746624612222026201435380790723608902262657880007084382901707113782899676059153453011051127688587291161134093926201368462060690747938853758786244997276217554020667947751212817045664232235368101533921083397833714803462848024748982711648346257055808429043149673450326520385326745260629648055021502571608685307488429537085291276057053931851546549653337059429236813211969863094565494695322080270610235039215563940250474927447925616317384588442916457193614770523733629705438094948955416126559211482606311690617590157203647063947904836669402955118901674726154447418391885640053453689437923303817052941150918850828528440851257264167688427050732521145556659374132866775029107524041694138829659636998194504103756718182975558713630707184259295599069657601782135543740314502992267049616325415073932835071245288373643176301715120208416602628358412471043186457789195631991971395733303088886617672860788573427889214918743101707370306427916146507122105797331816860464885554616093557921421262628074983371794064363985054667962216586355183157280757924695114666776098903919077694111070297889045836999732243443585366475816239458560925678172992123359337509106653326656644087074185730806220934085333287532687413778335997609984780951875010135741090698422391182585916558932913364545014143566160556062505458733145919378971457387887252656037968158788289195578849749605183823754599090493403134216843488016051316448093711604852189359826545139362683842895313532686767458988803813778682143443898339391865984734450686265926181926207151396723217767207918843461131512924197766179446147567708341047585639688964840896690572974716092098202041268257455400898679801802539478566912561024900953989073961779316484868503191067995755451279349165013415856906102278959176505027735440535698952937052483050310618758737927096037128700147568617005723717291802108980937708383567290705691813411739958904872120987121698499505401333618284227676818274218018106702319318518765165921973962554605363492450065635002693983309686776818471607422683685269127570492469877163542872308566279430104037240558257113141993432055300573169284547937240772047056763028186907476848882384623924054241602356371495020250616062130812978803543575697588960007433891125548250199961107260830341998624975101929990096396537872082900855855754095751417412148134344432405013587911967437127083596722793074198571802778056915695308535043281923563842617585492907609225544833657401414275884839272254842446839417650320290218288175822409195527982102131687639011995396704682745407277897096777079961425882650895654308878697726605592352355921654681938061079837842131321418942064314510128962378599783899010391606413920528396128908867067095858900624462747424044136000675852748236700870839802850520366203192492118075163830052394223093524865017423952453380013432485844481106350659302590438535834683983498298173016391790279930108035000538067697845884344113001094059101340117396989666892960468553333603473662887492244932982098607587047060108944326222514723501183396055381217829482569088750538012255572496153312198556610469634589754074924254825699700665468242172795111991710954201353553265009630765782189837398853720882202732921801791403037640146646848813494699670158809937738325196943679642408420296187758426542221957644575914469061505372508673561940673569565306045052743616522202960865050950884193047375161019031427970921878782168351950331214451945219073091420613999113649380028936152509894968818500985668327419944678689282060559183366404381970550604464999533245743984520584492588139581991460568817136228139917818986116590095617491549361927936725404188985927277754353328639059468421772507074231078384457290672538035429264872824387763484833013333442535001691396845875673497145084000184122945072984215050794719819736318117526156272469728400146849926122444013774215782398044358899850594752685092759325823166623517400834337368955911946847625553344854538983411601843374909786983122514672400465209746441167814893844729883154506295312460450863316541627109579512531348562838512313641049375439276806075785182145334158836301280793162838843738336239678089002134693776844874170875698650899471461603574795452562313576294329292174813481023878655630144001932035939923597628664117924560187847227055601890165641285214302715502431346338188999428456592328740089867912274650577972939290773683963397700771990389687729192904581315410222024284344027662887263583742038841893787342804839680159538023966998558042962807659691081840726207370392138487551914887432042170449842565639612659706713210741463657681114921694795739332667346333509629091816567486714224899351847357765547675622589957852138041036026840838905715083094072365286340934734087303063590449797461398850890690740928741872370604325192199322796109271144437155479490000222835532577835061810974799056872847594960864046980894941523758014109716867177526372825234009726744233245128937722275540642401643647117969525244653987205926718567518675664274106270531848553714516006112329052932672458141900408112467144537313614048967741801830322803188036779721675893533924427685344953352353851002305873223091414385767668741532481711939095144347447761916172001906179030794392866899286092768677469925753022270779075202583825256064405344226408163109860049816286931189474405807742765969798700431615894876676464490946166893114519927560744283971970487179894740540578718325583838829229907784153402352192885623775047227723687013540404128978797492074690165475051205182693996634013257566724366087836667653952552144542375023977177225392414403335606664037292297476255002489706703206920303422310231024983485889328982348222803382985256759826131646522694475584190470690289268881641139678115907959036397314787357299751151361484361525597413409745495183266515614568929452387567735766097871513241703384871554600199117841338377989833489613161668738154483211929098435443764250950646061986092088222841526348628092515854756982133491194168968218917616150228146267247469560854281690595129938358730649519467403472190632698181137272482449209815838946192367089851910367324038417703690816755140086330471591173630237656511736283792903885786082586875893792589337016069220417607332729932125884475741206252191309562270433566661849664894440912939060745678767054909813475670538823747187139606780816737829490160520076309479277671018878540867860035685011370746160214345898541584822409409334333436830567729751316539176923148956541060515941110492090975750606921245619451056567643111006186460633530025836691120355968993878210043605876415372384650266162671927511300952209199978619315446034317086131012053810430422105964735863209394179393709703198617901009747194059523737179425533877935815273560765091662077690043297381758318783836480493454584394984876667708143667037481677992371707793242427952031546080535741858578968096163919051892587939859119247710544612061481211099677499498228787951235756127193354290040141566888219142467661799201814588773624025227468569057393094781536935292508054047337134773647510358586922636834640930459607684255912032741202324569207030257265670433894832658062270959180478706908503541880765668765177131886615215626145290427180179237342100597318220621011981609438920994114028078623716752309839893490359134230743756077199185106551769356810151841717112760104334859549631401609316510399853634120291887898654024007609203285908205252010672150236949475144732602172961857245802384029508262355811751267979282873361632054044691255065033134379079795275974796449130588702587906366307256947008632227659147593410205290607514638925718956333030221590219526450043334931119957902122932771888913441959446354148316445729360473675404500481607137069432900346907682389776499167059044497695566847086086812639578833520366678145229791748400171998919877034847897730901358603840953578961580013823793227928061596638897263630481328492174308755989523808677352922723995822679807922989965165492984204709904565480954015104871661211817083265221835312798076692841666990106982016821490960635078995261398344361038281984907180599050811101726501193197931688615113370232808205340574078607798837495823348713873929005449444936826214715935895919038239089494086561218862048870113427034600321739035466209484190280911829925685774714068403357695310490360691967937129966451505825126897261402937094405201426815669865730595364586625936378375405469129018908980719388279785840914067255999846229017096485036556629815229711140345455148623404184350533672214468421499716028121295326861187137656069358805056112874383755514066380961798155777969746220832689513857922653047303879262746904335994779828937259733267152331220484486176547951497283003061873826447164573675365513309898688031115910930128326440468060824230934797038418289395218054312026057249954460142144730748676171193025656221836913518658172521592335751276656772768253082510361409383170265427921267279211696174686477808139236138813745537504351694221793641471176100702902373537135174317951981479898276251031838713342257610130399400539687995382873519852121484756309800462901577775834188864566181414191453938085322814710555541452582844021427439057479958698542853514160313779072975970446421656241033973743774235707212243463759829531436325618815830146546054322068367292213384501313054568303460845485769020734417551720269333340564845416848384893584292024404054072021805313666383425775444581768470406471745849513134637221661580041755029104826479007971975803459324715274801808142933359905438096503821965496031167300543371300837110100719395416908024690933165394059220715421127770592033119074636978642254701258745279401996633567833060816500661974898012058233275891816824459136684940040801470073504480213677427112322870614784859904411412239787058866568974689559019964410296926136909557478375846513928935139695303093486574663659690622009345080360482693364100387182853249833740900403609616344995541393793464384233553444043180187415689911574603872057637620129588780903424943479160081554124891643848103025485812157264966277725569080312564535342693454053888007821235495605518313663887043883255434974450861833570591129030193323376657047965840855855435273741898482320158602500756746604377691624498206466076023790151282617742502802833318331289977511571066232559928450302470555094116531237520146589543808159373600433176652663606166936259420296621305315779385958879335539450841839861044973469534345633132340873665406188086818398804104227044497735539714681705850039300709311560204552859495116466645214792096559414004642072059143737452245928174960943617963968030741458727055710316533562808158692633022692982147250277967807250334559880266028011139911714433876237906052563042769652881670331749995181827142725627062507535131681452726263044996934711654273678315693288298298738542754491011143269952752402176636650862286884362572497234154623149880523571616741973942175382754321218550651594099924756958563850948663583120735572192144207083280492298979649246969717344440372977926447423855531784118445356272442077975873567318225121652397559201765305742127078170199064123309374517129034128439873610207343016589105981926442749859770762841836495662587351452028420542229599758537594728297617410815286068895483846192242480570630716108115483692109834914642384623552385248498944537360023886532419580680543110797056346146692170695604263350222893232355165325892073011344129271016262337709684941390082240929390714311174810382725253527510283256402423951796124762104011107598709170102390879529035158988475605601568577731974656368016280213641599122210674264302755883339256585587368882568954425264792811789330602780904123144761411802194867324773577278676864130581312191437936194430708639122872493677286732931600246892697849847285962772786645049953981326179340569222100889080467480995834283451368676214442701787838239735079880698673127343417474259466216633088707433211635466357264742044997760517541626533071251000902143473871882179698696509709229600719438590055666453054208895615436589568983536832614447815432064585078615575338911864480162291285075763152381057400496799081916880094687756967636555452298482732772496451180833538658975156744068506326424113356259915648229857678227927231338708469291785947027108372893425788575834086916855959099089341881750539273532279729973802839009250094414209273326397893621626806802994922013381684894377298747706209226164128243845144649203839647681062141433151416097465757813727085546967838490088646609264440620870014585216269849885554646741817585632908565045146202436021275717028645564250166801205422715862683825405380498589662571829368221866125306569158708219100759902548896873472034553433299211478668747017321854461938294313950120423833026725922913331030706876737267037060527401501088823468386250153502816511530331233644068395876187625475878541140452674192162318056854568341319431189686853218104499088533073118671537942013674692593964479378329542145675886051131455731830410236634110777248848053051309439418483534139870425851612294450715188674884012736044634173874967476671431791247834966848267757672650950211645810007068181254640528012550537764633484175361703030163837675693057670867917929160436818363323328845959069198509481587536057438460762113218058278581181044528379624181676674564653446499672149886778743258344277742173073074099029312136320348246526289002728951669683687522850678366611418585293099236737924956155055013643093511303502558032132711131399184774184454801171294738455865977620778273804158823508464073681560980673506841119587282706870822317619244322109517515340095858899688843265114613034675271202779133725016295577576007965265631230433315574897505597663654162997426101933924672175016003836777062923237830046542735811115614926630902382380240839942411395471359423268015302202383433110137159435719246984562201109199219861286113631434945866384807413191958986013282156135555628048427966297420102725923247802918813265376203171262127853244964705054286016035447255690210832353761352225979389431383275820989782437235233160679906077582110189692371244711146744701572945783314870995200127104490324954791588845656288864483049162888173581035884121113448122256440069536294828625780916031052785826584634865358931902833456628962932692885740788889677289969377834479925729229018648056022085619897295831010739731310469890558164693660751897368067435983984362969875991733957229724058462231480297308391592010949301718307280648417243233919453919092142399552268956189954260978073799764144369594180900151547038004714979609760852918175255211303590904862767461793858497105101345743723121230567488986511776801602321459465258203502177805680029403436843759067075807692256943174192409803654372725651691134201235354292116768859909194066891614535622654520967726712980805014248520712898775655561773176734556628469606190968905913680253303486811044856610052411742049564395670936605556764642073526989607000118157704937690686352738901711463502030895931909448122831072206566832074558615860480920351032218914049049844985521923548000417576485253474077962245833911595318796268805151454881070511783081177299822563500868188060624565361950221933568062826478456136072167053350718668128808353792877290197920851262581248710034449619950058333536860368368847917199465097900193078860981089915382397795991710280421172402302653058871408770833258729179139992462101307581068089406135164669284744671674437646054300417246843627389537431692088748936577595093691188838551494539193008473945640648678431343954382920114341629547406415018454016667040329703549975383688959107190413310467314947363318248369155471356569459970143482806295419411451984558778167125164582716999992565347173102456927003989675778897900674952302065095868414191896963352179714874478504851938446645512478608712367603280989425543973435954098637390986759258215565976935037604029205720082241478133143744189413954867500330007319636782125956844072776454099715960234400996294919802699939264747710848543547717776656543119132829747180312515478416917370687156368207789868351125726393404197011120636606985027017561592063171892017514500779365330823511647927703271657670254013363040767204197196879573153188028718272772342271609475692928727599945879502730967673882600792719361756575489003899774696597606078770039018512139402120149529609219994914553786410130668856499112558462800884959234987552566806615097759289027639927185166964657959021324726461600101093229024588233737822813067007758143311916550644037164785629624336729660686651724229832551542611995093882814403611933092052541075069997502468985997054157418946355072800648970122684201976243729365635493174272548269939646083791879302580420827241968664725733143778086251375927152497282308442506951676690934388871699787976224686945978333373736511570500874817858995541124098641896724673682536793526666445762761824985131105422881612791433424353155877475191310702312249838461365003626793461844271575308402242032634054745350881070720390085622553604452992437206048006017563445568738358346376616111135160192014466470719967339653451425479869291727364968531201383598546291463626089074983077831959564361335217117481918434055953999186437904002937305421422915324961792709325877109298418842805163002168412407850549009312859212994732519904682837482423332271076634438112094970236331740847879603090939844912535286136739019939289981181954950232308870446628963915501545423197772921391241992817851635288626747797158024658761276539707757618164850501205239499711202034809119949683831511247342845342853173935932741139389564495004235443050675783367227363937367070632335681967167094002135808490136449567975276993820959834278185160007311112817466711554134486960311302295424480512315190881562637846148755580012428755529159482725489062257262342403716284672075382532128614422529033780399413686911677181104686916243236816727402823729492865452348830785090887320046548676417165538318658680228202401258533238168336062825212311612931636172251136161404257022569290546152485028411390926456581656790800223669701099846636642324189778699721938719088793273585054114290112738521296916882526409519904320166057854652412514642198681875434909881726369203924507708695550148310866749588068134928501015298433649838711497685454963648912439307857041410594799081074111705521516696816380196549881897497213944026963224174798632382011683658042574418640325723330663130069145922165947706889754482817027044349997400194927016332929394354146982954594828658094256784062641028415988694888940862495334384919792015712931577400733869782229871848873500977037203065909392950894040227683507265931990286814993144884494062985000301828508897700515401441730567550630245568659928636205198900278511413543773550861907375509873529996232936533604193533990222194458941164631206376855527750134588017710554494610783032592404425657384391368937364450036658529921362605649475983843096728114586051653613986226762324967914105364561425756969260850274113318670077661315771618668049453821742493615545437392885487325510057992338106476353328785113177758692385165257379012598005500958148097460612619488656899331631631479708631840537296414017258271066578891942081485156117888912204531583413779456072866749182362903186094809724890604861263504340960027599175619606805770789417651580824537571194658219551266478257186758250097249224121789564931698063951339383134785499463717128368528557769332918960384739296678466502553268992415860176927580022341560362873146778700290682833975751344335954943543749239932474561051515053340241519311670558017981912468759238671399954248380355363690685675685135300053817062427158442607672725226488738930646103175472455559161163357214037371574913692934062712617677996963145272216197913896294635819306276533201533918315539185108109800672677315743033541189021132275469585870030736250495398821961572627245667201955299155490654920554091794252684362733017477515869907332843781907855140691416105390363668771448383382801687109630888833736555424812742215218353522473570671577051521296248795882920851460660060162314668380102291389759152233206254966827008011098019120820266890724138806392548541582052595548787446709961253869359096654730589327183365495374364724287635533271126991496188340117498228547557975418252365032797152803705093760741703569604203776510303876078569145019536347195916681779253514875240773829482101029384557750710194996875227406721288422599472290981558502476328978965282037746784488931153564873836402545106395340332464811957251282863990541310080191254199167380856367424973009788383624895279784470383393024601413295715172174435916411521961999351261447672225632202639404535397774487213418995765948675622559194786109168986052639382323155776990399667256356525492895765766034067107535338038913752672687229719503501887201607537857460741080417412528548974562688820758459305949189759309240162861674601855095300579128148886766735547280958315308334485949140100297198344938005893933336535724210430625687133846444934175368259876733769492765115562597986288752110362405863859091045668343241150343379608908006105537469124383405626571399900163146244630746833990319111891325816350741057883183062071584861053031824080826054969180423618022411326886748310309358149945565108461102486605588510539780553239200650963124041812808382487779332203890033267607865297488348615223368801819439171640683995709422052561390625236056674683371149919707306620425592164294740092559672460435040495493704932699397189856189816326669307340546827909606022927031642129224131303018137458177097864460827060268748431399802738187313915850747650291586629598225758670360593223308018135677655779685835606050265849671468741317299604854498037491830136673816996199020975843883828072293469361274673149732165462117210945615057547443411292715978248842633775146299342754256587966474990741542503538997377355619654305624668820809591675070426221907138529923026722388047441867191284827358330620969950718682821415106105043421698355894618789151957171083392579292169021788318476628993434060492346595410763863077410146738500747994517402712212196264527559579642418789462564078256571534604155733875817306801838707863901791787376384858400645264861904676662780904684823158502720995679787887780040999790163297831552704818932057247909368492021636391370615111708360199742472266841652457799612057502348627506616527499403226566851435785199014691565506372956530296531723778116531355027103477555405886077540725909638950788438531210174381284658002304774942947366880383555350154392560788189688178169667458074813205458849949532511157259315660499675484962873497181417063447021890901102097009017165565374803164123140383313627802819142276825316518450422212780273514467140079785090941705205448052174516076375223433493758310617300177853661080343542538662750162011974588451251312208568542446832260653728236493898158590705149827579908541006271646349434718935508499474871974119838357031340792178762755010102408777385610497436580086000314200329195834619747927864975851257212165071478911648359613092478372933210891944944621683524876161818711341309593699900216807856687103595347242399452859422105381471243517056717633919727688310328014396648565822819613171679360216395671188593842065227963049413681362555663524948608626380561345068348697578570756187925878645518630725826142488361882524705736770903752569290656987496736518972041929362627272032365354405012012077732225477154487460917042365006119339212684257774830576517385956556596414946855667273919969470017943321640621063811776687167027431383332437190647914689803935707948496774400799913162569295395852587005493340931789551849901693215451340248100673980371832230279452953840590663444216129054763544005535976439334337721037156116044924167949572747704712770093168548229717509097869548760620439169744010370791121657195725972286216167017437380661498120237083797911963478278617802138394824426208767613863972619353652614561601966188929159981704245075587252860503730783754554695274661631283756245937317955501002911280568727726004883737542856825924533831561447630376302677170117769549753912318287423610280285392173104012656595029987731497824678908107663760829497022706440419342904055217724728742650663951883877668468044497104780798450351399654901690845266188917400355485725715562077369387942049392822322476584442405522847688963965009085755250298305468963039177974074838515581279807169975587590165835552765799015028799635723914650364300062380848119713918019664332300189074063403214289475484286531177862828404101356203900822438358783001333657633758826829450567152006134582999075838740368406258855521460486792809535343203141075284270673966911579328016102895900494438353362092334137754429537903584734866875241483335474182961766618643855282732725854243884656126150768869268935104904191332028299294309652991985495763162273096159201334437545668960634084856203808264895035129818926092496629252204327647839003992371788148698552246129457328059278166092976706036974513606131261556594350350775788582898752305406611153498277082481091235913284938692206528672007201362690873177251576389040743987611756015560442802850617735122397088278464982092437786138675253834161009413303785610796531384815110161036960227182965368253819884048348278470351602306016457146729202662430553395005053021656782489852069668471646607493821888257290727067881360608046468954128276092532954329639864873071762832694077579322391093751488067150947414436990295927376667098511061938278783358563370907182258190993152474635840873766884729987027634131985234146201176443272518497826058259406305479426498732700199383615357820264560787953216383211686625995653387036796418067242935764360053292896460852857523141977558403554247934094396403390914913951528046959673048220076568477360548364104881909801931240392979319125769026654386043039379538172891231161307987763263631750713070679463899267868724113468063743379106472921402715843127891570889791779434331778582193428146328245718457158942658114590987074274941431488514886930341985830079320856805657055450852934869921152807704174251013351824407793129009529642758304838103800655118957634717031582111782275467718444311326686959881134847748574760596080813504791984400956338633143058256763532917712896063604221869501147818940509634074701195709327496903208737698054682794826440476721198829235856804711466167911632301540780170882268729575793536218987379377221428566966024741123386239743866150274114944182522320469766005489724597372141097695228606068094968350573147653382815022395616515220362391256086566192588714415248544817622059182749827116172093618006161100411759557570586589163169189649676998345629150514338193527475660493965312881627862851886569626369228494389173660685580897125282767682664479070207950626983421882735613288608464169236197740307039142172228445533950083864391068832062973211804894175600893119759752398934440858434247700135343534458942267074447236096323065269182451741802300531115156095314053476514226652120755064829007638591760665099341423967100604246449388413088129102010960247464163152500005348059044674471860677338948490908844354128401856295239179126134392373059181226942507908887246567067021880743392379072466988144810037476262580408734842491789162575036459131998453354062322677406665467101073746109778292328150679028585689075767360525515634864320471959029245393677903560341890600442898638637716222647680757519589371226088073053460057708786960238471058570849957377571774775796691044274200197157087014008752103812098563109726508759345204374314787428077868891626425158160374961124596089474731659695536531813537900835503066378556671390702993479864998112535597261781759295378872248527277837600536681002159425720406477833121254628546774371805506118849598511860845837392163241467105269549051751659261889973827637173990725392286312672882507313427822174061850395546471140879396357810555392402318637648779865049257466620816018960981831104372397071201171819165546477721458186915623999725986649065577102715340113923201371021985027831531688610033864018054217641513475440256844360538619232214487637528756099708659985859030361468949902176007736455577138157131567854844741691829489150005644656539944334448905534279540025646262399415113950110999115536558714201229734257152369374259119898878910777854117654783889455258717606471873598599194126870883533791986397216484262723453907848201447178168360894397800040280316196224644787420388142374887511419734592089410224437574052977303155667692895892816335911628609487141747339401622657716497124009303735422462304551377460495012573537393593451228950485742009736239024023739138608902499586013753334751168365672837020096445002829328451901484535941693651356405136312543431254487974335905445878698861497689098971029662240816710200439229968104651845473583436923005590672209925769450901369158165805633010715820200304273769365713484690346945181721739592429788354751384612158761832037741969725476466958421674627611334582636968717781592167212566145244314785104127257695990951660417439597419582506728886531984821558293993206257389423130957756777899416778535448693227628187172955168242329259134249018825878688210988478390632201383609223717264786943668937795324308573041997903376966932173289754821930289450493226657455593602075914992173411810950808517690537739113930266075370658630679682690009865621122510022118733830146616571675050478365021480681424705735947835404406877103680134148710279747264168538995537785318781405467415803140209876850478990736713684180343626928564035966218014439346563780305495683484249262997808775792836489756913762851486184806443489979878634357596824534727800458046068266593456987471944317543232121932037809507304673028722571655899962534810041892289994740587584405263237426810548502955896649381247577529864263533594044523621429208037561691606880583751775093022865087361461014977165486899931812664820110388511043862570831693724040914862623531174007146016188854493900263808253125879477961794260223509124270636880146559632532137460456153495080762193929517838096433849646118738683355454436517408993733390709568141792834286729858156068984156936288565197719019559449396726686787637329333294536774922885443944456251492433444375129854022546676452516930170496353396994472399986329762187526533515637894306191776560539883315591110558711766754510602702413149001974443793984338943252764498147975601100666070710559161165160873289888393735867231932308585852635728598646316120927812901925908105658609736329189129249698143999739367089090060963744434705303923885715735721755482087797028190135021355025247186911112296665497807214600870202494863634014677712794790969428149691478121519197324396387117993529735649398626656382070532483685768603563017148824306310180919707615725770742437527497224920918553821524177682399974971061635258191494373535977068705782338576721113165859919216808516988619263181449057698027459212801135818580172724413347925874921066167663823886634842353513398252627597464485603062382456499679911514160742419853131129880467913190547991637285469484297457874542590307419513888667313988501878636929853537508739702537718653981559246357077890424039297779786176280982624742141237604941679220116517986402870958565035109178678714868874887551067970225815089281059954974672036216825411701821026409195448904558435893101364648782083975101400379763096310168568183830076307344353818536282420627599681297088765881189556572652516328696378732466809621377194078501142468715310357452346066358926789017939941053628982237496838735734823870888616987567347243192417999701201167847481795398331697244731079418444154264738153988461916779198489526571111053664732387633818197487974327057936627144487967644073743429001363479691023831970383738961336411075840444054127044497619137403090101187269050709471087020829978415588997960084839034699085008311742158541669397167307577587186457424582728742212274300812272351004795580798812688150808772728551674540728083585181474027475712148957887138550537758437641715474256178654886181765074222396536596180637178352307697965419171999226174130754460894709839988073008090898625429511708723167076155714217508106524932333727099520976423732276602130015040836064404641337389080741072060745577365313894316470953340538569263960850732603318317304043446482844248624964591718318647049884816170321655578304849185208502255144864044796308256751105655031832975613388104467072895543611934100313191999058226009859613091247301270587319539401960376465300989824983224272113736462816160064636993350960065499849768105699075562605939889159711000715031286027810869800697162498080975632046294362160694400594373246991686243386829929384503293345930554544703906505577753680732081075562578284598948335130020298466030577445871244785709516467728719264816699805308260400068229007780655479553577742503704796970408719031417957740742156873662348275841258560334259697448830075823249427928013223159498867743595908092314459669445629814831380946065357900782326927764525806847682943265342227066797913381606440990486105259147331259987258582808421946043316112089183801023536738937009529173376554521786946412532248468838428139089170730637179869072329982718905858473888484317579933032004411043130565868177737191979075490491334891298096361616961964384019159129234328193095121494379773140694165312017242481966284520284287147298135241223074014230085967856710720416705963877200615814161394472981245398706611379861424281217014004442254656252820283890441487353784996415123572058035141814038072490002054736070676693258873628361588491520071589820642283419410668326854546585613618800925605718603515083738454353896901017806981883566649051919970978424897566170093583997596244677377300204539377549978692392266745378561041775929357345350743077415085086358478146244642851923781878392888900006479460439618538089603765469617723762206020152668215263570300905692845983665904591688702083085480773765171379120515594898756082439737876550499476657445329723407836467874882125144495392772550077362860044173867518304035627285718209499554527075165302651829261281151884322881487022321994388771473213547518951252446109815398415873751485289330864249030079685613056081223920030067504569112433488940205685979764536043177812108529388994002920108540237355588294190740137093944738570482305974547931465246986970309486809975185848579146272209944646866827079805933990351737601369218106563585942333655815980723699473541014210896837609883706981774368291860142381520179943894740981614833633093259586515238695993118107289860158800430023071317255539055285763954728083901069872249862601853382270989131657593424188514747774344018895937245694396936084878279623883726630040017004039906838005310566308351767657503111335635527215199152842652532959564385111769295988570422764574339313751061368889197500904338374700131311129159212045358016338898537784706353689957059709521496986321235365297721540641315005126304385123647699290254065660522169481880196537302247866709914709749052721898548357186387794691542076032939912512502260766377774661379879941239066331053560337518298649258683119694265791823582854644871552914521677936065047680235597590130804826876449123816720106364733059927636219569787177496345987317930929636374713757958150909074257159502749063908019025256074443962576548067165470307810339297761333387436328836694866388869103105106082662150120070690217758785986007265137368483972650378183120979375390867200969882919069897094054989501491632621947935152475247673388918301851390367048862060924926718166664199923196849898562935280133111640207671386790777633745011052782083875845951762180810401885911558298503039757192221048728764114731157305156697754686318571622054999723653188942274283924144972957549983078976131507639814613671499094313467860226109136838781548205581515332502970515617292271693203711200091732602625247511101424452857759271305862357869218479811631634545675835501722284884782613766282234093169516523887047365238424780741114061042090275176528393624648001299514654933938516571076005286872143112516227416069867058798863105666520182000612046438568973918774864716310863246147249076355785080904477388914771616019438941224198790012980569538386168083430374149508105770567004525907985189213390105570350189897819467294099926880614994724873652019396978479429052216863921708323041500632867890722494272944242542181299537680111177111233198496674855086874673534949616752421552191184924519133780304996825756639273459316432308271451077926987481306350130298095916123237011370358683347642007525976177525189272103444424891842629515523554886957919337381946497705972324865105236158129517725126414559519955611113593320276674638619922060325917937751058123506642580986227629703336614806740772107110424508766820938656076832906996973012176558964570517105650823563562961701581538741149499813576149061675032057980001080639966343930201831429146426229553994490566637329321516591126401002861387465093171962181985063233486506921645894167629626648714653245523814135111643807663218095081110477903611036114700202279147561912442260209048637337339782114550759704878576579936436092624869476825082085787528411135624439900951330556974143172814759600047668613115610501568772122423311297344873167356610632310315459214126252866138447193384022809515515111047848901603936294969549786148624097792320771303950706522161833593732369827493636830280243560754346023703771983197019740655795468602272719975975381638424920964977012472571221096037394984747532483210434434249976161281214312972507767842100814564609965752098654465290343966072483911180642162582724451317095506525810657575710547356708271669278272297450533066308085393217571084019307910797287449834819012680859069644426732494849644890120797151499374573409822884671873511430374552893464060507227336037709993856179737830710150565629528239356620823281488046448969834209609032697811797767718080675787335046412311502880581094410833208586721142810472081721468430411579420733125329603585995127873013626707984537717977286636212632663367472726970795186548470457270440353114965612714865836509260151954586618975339380430415103867382415054246214403700077772337724068508992934100629319465246619162831417025848486437427385795665598220993005276815631789681437963979151804349250454497516783966777396502897836242435474063709999675591931646860232172573526192936368655824509174521104067757378380869080754943565439430217743177824797611912867478411674007082256732176261493643595841512875607780361979964694975971681711469991158816245855165632152209913145978173574743131191208212604179202547179959853595891147520762571642648009707914220605221737104891626502822197020606944737105015949071309938644144584666420175037453102083473173176680469388905999578962290005021162535014691859038617588804390082250998474659321047601811423199291432449274926592510618738187260467691802068287907300595792652049437156031246723825210989455723021583615859093993316631499067664561451434550946590083182219524677201707484826362459920346751797192605012471193097039027149364649220474435349897909615991168534843444697466159012325876235044200426298724146154179245854831344879652159341466150820220491063331414938411733924947629747148047884898514178564832573397954483377000609298443935456718343933213645977136024044921172251624850831677296069053824467338872197434875246673944382804716318347974866563855018955448418248867829973675851325294672592600714778769788349166914843799456749319868094515201428750067940361421130189743956883864463702748672586856857812961014501171918388619174204795940121511078888896851415512613266301023559056532935052959250023346884891682548186125837080370769916517465492319002776854990706828242131200908823593020435089731194761633787276481915009267919698456393565035772072033659677659174019113197115062325741110551240417334645008545427098348644163939264746739297199823718332892303771261150126259878869836488131895164986349466150556747384900738802642280085990446625468527941953887098152071683960527288678624312786405671470013004866642477147752767877874291760900277397171484444036548383502763175323262190514040457950478526683187387958359959441096273173879093129033591969507990838253570535038220190731792364397160419970406926294237599057920831123985939839285079503464711246847659562152334176509003190739137940075035512787144234366476271419840395957554430931383219973366920864198686090729639623526718385503457549011036772656821190893451740241930342608795297966348242231706672354302072133598087204260860072603799291608658917621281853461180057833856191931689469715193415666565714142637820469515143955973709324428283541107955468276464830497481160090087723276086400260774913804760707317563207136201127227100149037564929288308824977276255337732589752909213279570372456507608454938965732249991854112346963381053248925206211656771840284482968861339869986919116402135758377722954679739861839668165021653222394953303537436732190168558927858895511865878401362165957729354617690091725498348335813269606163070776826610862856933356990473860072792454795643061165229719246419929063167835366560150399932740142789729860845399526657648870902932458934588600263791137834586712996231014178549204997089241651025759536801062782691492849021206879085924806155795639647144961938764523739860590833780994849759822927692005344415147175110951964654673344408569182099170797261737090405989726778502325324819359538445973705235268032027122214439122100073594783208393801833612047312748362102853921623420746769516771656380723624168529345201901950952390433002339456570696381692123048995938185740941353264968340968442458814598800710275446153051589287952532108001020337933139169655263333206596688095948895298751574107511786101285206646851760895817102322222926561077426439398476586409989045475953454688050346824554664124425915516793733926678483802731370100621261087190000806489846537995158220742058933019734927851191898394815558792843706386656084111704833258598332641009208357433019505763122171580348047915085638630426530316645259954906746924527097956068923128106372278082619805144266850895021547368879704941998974463894550622980975183603989130074484653965026830226189935112132522211810266677284486655167102285954894376776339602637842823639037437208702814456081639119716171055716297007687769802463664684331251367213341588437088235032759875375505144465122321197553810740089042123167570021272689236189418655914316177091930285834333229073951183985202896826033805485828729363113702471338127778643508036188914320422978535220961194216758814200889441416825983610571348279815316055910676492427424999665637371483480706712494411966841706129587535923479673978431629471209685457620428082728014186639649991119410495019448270077255744850256127495826097589485439914844602446015661226027439810780544166026038386779914400905089422948702890683507760639696329840730009222158546470017474001593938108236527770127834849857125682296992103431028595597107082856932971420423623705917024651317083871528888696477070578333266057054086583911462598167320854518242551222419479152222671998137994909352813679373626807583174595069836276040100573182361483562352169424731131049726952163778300394504271638627612565518800417236523943042088012742047930147588198430681182545376640001823866986287759334715018307465503314838655391967493848916308786133846534096122483184842746678391362715295812439266415163124772296341521540516006802054082283332173351112595666528517296906113716027550826654808038851833669180917467398505865086975416104248467927671631578902645509711812391194718138602999598641635186698976465855543242506180544210463802284490311323922352948959903545910685850613991195868571184669563235670879113481794571171604096041978899106638528252600945049395208009588611557129083249653525564785875170335512390757608197466127031110516684942661251949928152106815136255114118858458213168820941832069952994521962543456088029761667566989167544578464236827227316838273153010096738042732242477455892576555979737317625478806304044868748475024771803072681142677920801202937169743486171316753584476293931031065457235535143612773280906141551610297172281459679639948543382785427108586292711351066394695125096619453642290507698361017381471602669521357944952657081966938465931739811094337991525873333347613415336915367668235905704072399807289690306130546302013453355166562474994727192356286588486672662074384338867960171108569295972602924121424492781228121818861107116035154204036616728837515420977471677325173989553653138618067882378287719327792520030624796098746906727678437414842913199261780795777528863917793304880706965591488181491563158770786302892563801079973688789356576418525423738764147209409916151261421893600760243950818954882361541853623050602272536517177176758261901294158773479994631429096167278853352447256600547288709144582095149882490107179493379361587903799601274848788205203240410867285175154366717311784093377252845576033208694948074758185820228564829490765993335058237814891600747946931156209241041280550621830703652740910633055420487703217931664533886647114064929701595081304225584819843754655685917782557244122561804451733065352822132822000985543862899184550551544837559021769853238439282711066642773261266092140650598587540772921410907678440039069631926536198118446742031454280591986801210531140265750949716268428398513297665932908555410069676116581886211499264027085343088878072473421082669223758948424593524824916102253367565689420321039855483750654521793596110642302915998726760294000219752442756740524611703984876534144937661052046236229688797242873676440133406417814048667604648428367066836420484116002191243733272514407784803918918294552036305698898559440637696846177985176135449796684815208024086828978603443657611558812616744575683348941465115386127142148405360244611893097959615253382509965883066062007407744904429544098827147895391033035888753498050237877297026750601849471066783616417828648214008444287696714826130493809977844337268503533065618976644936026086495709528950827271941064345464705365669348700588337610964916523318323923067853951035159009660561448547196667089570304108363595444618342543642045445970715491288909065343395116244288276053393640633527931413850220760136099136341053150063956527420604616802268871725602872756561774174694887930649251321601737341837918322119361766993295887569129351992772024608517759737330950654060491767124504333823806633056537005828128755618332227642189776747904033564443734251692443593214599810720420417862735429083315802759772171133767386158982327651893728099446140525113035738794861803365063260879702469973145549769341101959170999632314600298565354920661537812094292602887461548608153780433613017017341505505811114567234026734455302073128178900696394726926988342922537590946138629761072128782685957605882987496714405246242447431973941063231266827588688068399115075019220694629629807946885816417613390298065633783778480206227675716504083526640121330811126516227909294712755177326901765515025857417743338226885427130140833556021575437677930727211900449095904954698073743489951865893145860860966660992608934921528742723824866357843826757258671799858434517568163596626886799004359238667200408869897913329319231742159182102938749834397547761710082687459450225639670234468562627642281367603259396815204356715086050806319907709974380514783556899636155168461733832401409885589519300341749705414482146901106758494403792034906605790430847704161776731368255259318615971188513537427083785310178949588330291005670673597478576574249638938885567246315008697253678695863754753185507822968353583758754191248495228901060712605385998623430832005845605093772700947339115210558782512958454257794831900693605688011459967622124279063624117828367960596225027642185728502275488212781218611375071837013596750055021362680961396036776771499862609753254947933928208915776256864347964439173329429813073434428354828943880789864294676494873252442782200173644371129916198228237066132209334450761836658907253804256976018218478020318923054967122740618326359932900385862708227811754752065340110493232407469241808614151633146860660912313173441000802594982480090151617368501867821600741016291154645785197991120045201959376387942337598639651136865676277923690203187623952748474629488049349868875359292862179164051617216199301778645690473205243651734787691044096239499607101611426493710642670030923514406363850252998617710785982313057671680966294079147891077683473733075658590973759721478192876184650621662116188684752672276257801182319273935340959302064747162736975661931948513102715528215186293042163212602655234133375357521622628748686192237711027308362593183943699760719690994896657422272842567724469506448946515499927420307020716681293861796326730739813318164441212664867681116823081670660552797647177839741173929312357138123309008909529146982103913140330640965655756828268646094950586274214527248883674649959970899042728170608462376036820950483588682353450210264804760571355298768985123373256806725859526512422933388320705601125577625859749888969026356168633691166160325222337800765412560696247455091008632283621465445351891285874580965308777444509868706071255304563565973370209964496498144805825348285227366474400136271881238714210714463208843988151993259462151139481705327948450029630333720182372550450209946939148739237601377425935048568435853305072721588601267317107359815162490762414247218402451478564477013261057551676447452207972142434953969257591642049719703481686237980140509016578478882259369383766623251555959607655667148170054798430017940140253842848176355818070871091520811205523008606141418838572631368165589691433278834120474316154859764242821551156059998248744634429868902995485995938769093969128684692377560971285971675624125709909308450164592458882018714708856132102135535204085384501356368020998148186773190778038521854397726351817247626540060017759291457340235800209309839636564138000799702678797569278532977684198853571513021374534183637765797504008282292333905423233042320569077106462828901936386606025894565008115491529044419357541225725397477630803060035426905886635490587813297446361484077618242118995482429242572250085801834279681791500874025923345511776143306816507988011893702659078139360300994522304399434660407753942286832514331836514761895616487289065836761564174495706096452702455269607909627126512673982427809439210978712762562888098826342246904285591918324630949409593861557204991004056417501895596747915954755221649449986471145474297124568169346452813293506664136193952988008807077568625290998478590922168643908176750781678420485689218031472881841909698272867950385877443097502693199251487452991100164062955078094471484304139052311480029553749938029696454076506388000265082794622570339810017760887901110342577467566613868053700979772527984383059974248392419031399411323545405058284897122336125223190496562334988648587905892453725633896778516802637286647690619716936583950693148585997801013698460099472136671009175372376761543554858988001308694017259257064077093762461683016622410785039585471046946536598356034438769308814009841199302060584277200886965336146871126064546268139722684399576314915256073334852834298492271289444858110293543509294451545874303861704875965199356121262213407171566601474848906650748777937035017488774032978664961833901742324594873417811512392514504464072732615978115411453159003226397482147580967750673360391839841003456299866310586901602949860939612463664863983516722396579033162307071551994111861003176521775078002372772290206708245081843668599455378040730294855713542012722256761572030616231651272426103129271087055554286382223005214029183741938337134394567106160257170760030442661168945127757623969542757632687344906110743242157121108989446413656725243215520197194240654159047419321659504198484714488243893468543438420947946463569323029853447115687642960750697305757418520884112641731377577329637148882018779604452908484723985642292733094111102890360045176049669481679458938879149201045375595089642432943001299144447720857350947651025803211642983562364958253958060870382978175420306356293324659489414934049311292027870226841633641997336482475229824435384273898640957747285391179047752228523155198128350591193759924659775292994566049379059850201894721208950626219227988000566538707165297710129634560661744975660379723855472132569966509940088056907388770049310349562939502896331939735197552426882804170797655703776072619252020862771064811049849887831741428267982835509469438275389115978376723989544478805880226569624670649352326278069966740007655930407126094475818362276325431475746010076986034882544367064493939030825227984446563280594004104852004106446864440316422129192200100149605602963734549430691713551134937126881214397972164716415855024402609001521829125449822832919801506603198705843005755679246604524144901344251292119707721173125590634578290068763393657230068783133458201311531292661222623222687247104967590695611387114675813993217134696647943902980208304870403078818453897913585636464886750028506019556646784326401073973250534874909272950188192382428391639926809383615631606565581865996745226139731348224529703102770148441489171119123451679446887474230647078136324088639504501790058107997264826926165233773365813203621457977579641923982598497484880914291476622114163882468626630348920769596893774596786743836672796717563489977071398884238397011516119236997609412779466577893179566349634080689055871902995462013589747570637103028783531481778622330043929433284900004089775762215590860337232858786072152043288770927382083528593476757984046842752767858307286950744725252591949871298825265357917475586000527267147036790701478982755106535432736822727390961231617886045774498390778963188328656933293567283884765174396340783146693994729322445050485500244922610719198102332487957833047902637029736737557163325329632624120355179042835343061567992630725998436498583020598456314757797291916057094710536170696595670217048283044371659039497923393898425543526576247147897145870057916567138089399995147574736617249612431381828413181318838266973501960301036498224062229449347423078720364398675432972103199379805213550304564610454227202385348126692598224706174695570860494757379912002517885612650972982423073795607590360874219271029278886519365792046703033800466442445758343337245147175414633664494508234605448578795497469469796328199433080055205225253500778217873938537842832809794650320974690971104258030985201764605086792364911290806203233439665749841691379875601910689551269346246533507234802312840352780857877086445025859892401275812299940353448054724867856939978057457585806337122054555478627310717631376608827632956175708999767783380096862927272571362269988338293663475434452083449398635922647886579961707201495472305525919111757686219088503510394660980115185635337323258498272453199227185357274283424460671062316516259599367923889343674642538424185393490597033901520584791594924982057254357543906787779555027121585460538139353077101246882369543802684574277541428144443636793408726052534711731809592457982099949897918959851859837524109365799036360850901329271694635087388879368520894888992200737078726463018337492988707286066442066048974746015291332236662404353697236713646345303503396639862265569271521725717837915036491473461542695684134965401078243867720379829110554640121397751594190486795353349174321744782568416771465466678801596794005709362257211462648411036805000003889933432361731675259348105744988318451805036483495210769678871953099648350353950803529211619321660710055747589260015631482203322126153334867593354162633469890152584972259654045753627446266777743889759335662023178848708438501810154294775351378550460650971073882677779179998033925756624853189576746281595946867045549537136116334369565373747626156081639282842991827685281222625822734526176031130164439102421719454805930101491507739580883766703572131943206037091053564988647857718752630054107461001349153362631063986406086711526446658100147077578421519097725643511425291469592627324062326293177439793460680932163571682100767654864573649423875927307616073482216226425026529318321466738621045389172448800173270989030785045886919239778854240141314109340453189142182774668232447722685890650005541753568514010672841501120468824702787497653105320394380460797064348441088024709478596817061713631142270086162150078614596822273231208520349814818750242132889459492684331894390399476179908457005223861468287369604420387524468032781395132203607647035647525901431069223108225975354342313460115963705780332622729388348358879601835527455447678395493430569257717291083947669812732900888513153512328516903540965696626384113828592040563707761575053500065674785636654029107768758738141436206259385181712210340214309856397887266538655882971453683296245023617922585680753446695079873222337030874280245932510728201201973079129069521725278000429796252425516977568610281261867389784767480859648691461934331656033331137088337877473972373780753721683831965125954350692674058445754835109595557059819842642426856750349185579137102066964832086934017431548609177097830487181648113653459888945624427780206377378479873034105229883482369425409949414589461105781680118571347254714462312394695903126755980102730068858392920185978879239116919922742823300481399514193669006588907832582007885468173630429498869263771696480759270953173945391509135421493595392605239641516619193281002841414095771559650701466664205357633116430322169337249686189120962605242248565834637833465808969231298618589953172567120337736914429033070869630889817624888187672499189653823659755030430246642387539630856385491467940278418128773041076141849600607285444266604260748021894439021852000803312526617545308938347612935322102210662346694826575928495853323702019976316033296195469876144376620025884121771465206454327240846164357738749998304738390978265388634768917160933721227210332765018837303492007968974981255546174019974240490241536449332102765634813681443211454790510417520845454680635189744049510443517254663917527849269973581518702564535906592685150582900400470193115883863563894214113322274571520104224312723691956791287405942594382584406520451420219711849679814881086595333321295317898506255452579237277225405713888101712630710044015143652932412844897331762548208878678049335297264209321324592449652954634395802669590326091232386281400369615286695724654145059745160161698729222543552756228551452058951267500625715358350997600165011363387197715267938418063738911342947642241930875716506125237343503873688729612018069527294418943696453361792859193396982023982269794585495177833685460660125045975002114526557032000116323199450257057819585363122160494402734665604315087749195773447741694070998299098005824073785757636260940710051365792526602662406096725529767218953438651776275245198509526850584663198615518593447283897248354143645023848240439062331355167631129882254576300246075594488469611754319981164123036356714124938748409860427993005849636828917659145020379267513889724758061845097423510057980595854514164564786956790193940652025083506183600158080531605620912439278859209380514770444338459105142678699484282920968050779251179075336194683603829200041109194166475889529931553233650236785838050490921329855066990392139727895934686229176938473351420344940762009935345697550001652923795409611266683881166059438225042476154926913540484822603201197591946811251077365330135711986583841572289870239219672122299400144394675996433688146062420772163020580505640542163583787042018649154920061461280394515039735262672813552063684514061305757842684949170615662207160849200142453252373639155421924640459759586898242639192871887111747988601099155072560420920016029295672855292831191883561477127268937383785164414187965563078221642656720586143376725302377238377223379323002242344014812107837220539403268608347779052901922475700458526373935129527684376793783248044876053742476380438239409751695242020141106729924116714500415147372596410171872702916845507522769050276144304088714979472620402257985268660312677438019341336910354997566263682948513816146554208692172347798042791643930445876117048773452129211277980172214078867867862198085946976717195372039173408543684826668358143685758043291823970169674059853482151137837650431300673967970177025280074624675706014475949774795239884114769550399068901927324718190812924921117983880593375327311678551322759088210383918799420870859064355294908286402699053997796588246706852164429227338565036086021381896051826285520169837202169227344333890805465715890175538300174806830232216486629301508820418593456267813351330745453415426251483999419584048754388754581581185140775283097416819698718510933868419650649331636709624910240034473539354913887469099129897769505003404832137334805313193874763382836616946491922953554649716857330365867861988274744690709860796995774165126560734251121898078484778860067161603240870008619353168877079325698249860186868266912150319643871110227785996589441666696968924914915943610719269176871514448595541251791133487605425231582499199422606506458653610023190636318150901864688749565456040072477779090748801430207281540386425382469543439336611741285370193142723195307900935376013478450269095637491702849449833149351205585068793915656811205778969000520486301697189286130290075981549898474813716236734982315535564676781098195038937972306244646973162109643046216680393796853076857754454218508093182389382213022646072373471071943570447491756770402954780032456427949346914973908111913396973405191981104779107825549515713541399611340854302046918554820936903144217594810203531629239399661618192234340904779990099476832764254781247975968186344303643415869421490483814443968632275953766239710623784591138683887297945714812576892879840613898824530128009568113746593707800217703269900775766729483177068221560476615648310692972492844436855047677102226193693332920806534028092478387147741446646788178816256333076456910395107427648900468227415497684779823557412026841509753292524207313128550482820098089051847020104621536803219531811894326141656161771900616648255570592260720460939603378831861980760306180466694550511126948885067011579141519762976829734888794074205226082658769115158505348540101836986822325074406341735257380733906809931638034477528725752535398353228802927903922473847175319709366147421124067018639308516808395957021944446608042238500022710025401140547771474798770858625139011683283099761377985700824852537963267367301962109972710431458101876938340582363825154914549611177826238766786028190421491437654179021177444132365309678333502137976512416158302996679633602344557758225624614676763518320205608089593004176762742750839759979424449410699863634435017769245965740559334700552134864075560516460097195003817246073415688610478381515663797305614121632899624875134164333350069803854069759142289303596684921620637537117880321601942085913703604189874290173922309362498297647094494766629039183374424150626558519367912331127806948215174302383167037950832048674716836964717042971321537149333790301664296076337368468902157486071054369115491855704442497161471105167847961738043337254932492233959134417199258979443268534336016927925874935583347502157454109331103181832789390812543071258508642383292361597226754695038886172263240083974991827805570624805327735016193025839401003799454482770329896701310564135412345728877137963898036386870586034654589733465266474482518637846279186433577635551823673437881726865440379071605903957424755070586582874519986692897925849249080486546371842290518652955086891322178598614704423074041973786800723947504325184781741827897523961054415115484660003826210849765856790475679916131352578614061068930763573284376110501309881336064747972704632855122691956264428326696243033031477808153306266013119030201351805726290575736713765029733175590366956881221354731410924388585960054232879089747155712502117076202568333099380785736464682928314728005018009892149238983364562454814126035053975584416858587128685890390382955537163594892609265962933632828476214946157682342508886820090665329119068019065902554711091062811388974241528596041990066648065746179230331840800428735901253213181026374538394146454678373173862177281720756358676039735350281408012336232290098881606485408190137426983332311310867692263836444137854468309904018396742315744880708756072407155246547819916907406127100989305590995191566812218111154090830242759009133403299327041161488402151780448970045903477099750271353952805115335876653997878178078280624186724597604801873534296626998196898081432033828649491743218047588899776404760990454174633996725471275656513849489160424986393313749714939910024595530948574952653551865687388898897387834311790912922468906758184636597246695464736570122770084728811938135852326264133622563271020800154651294167607690515790661247200252648724543890891998679657238521642199184486240139666839754719372789362700435718922581891688737276020327885048613485207495239311203936921226856645230245729192700478184556977096225934041903155189086965171012492277230164958047506597114184513216340317864907402628268771716938443349737898305936012118118795027586616680050183612035557283382972346035739533254598808542615458382744564126396528833061239635674305532217093594463582278573498828267169788608723117412239901147815901943170340499143618215183249036549874255453122512598529030720398089704021101005755662493813097906251150958796827152408882350939645589876977309303389367275506254460790185004724480300953933356534550794551355640562971180517819746020882897626735399141090372330193125456920942137962196191430307805830230176960587627002835404530605792221678556791243561570580986171569127908297033724918260426556949061712933440539817706480547910176106767397447407743774430007879688503705784568835715342426137137013962327901151675411297182466152067208954433748227693288658876413521215158133868738225814322452046420062318898870944276558969077442896978447341272493101071305226207562671618255500429753850807930479865871021716212810256499736741854822325761139218402145773921866267063427526597090622765277835322429348299522711167784613374443908075888592401314937406193021538481123386733364606933326874121952606466390275981013132423850006705418295332391873222219127482259162849517508076808802938033644820181478086372563413163445984311117749061750957068506702926089314028825440016213092363954522612515174334253438580178487164387661991336389618736700345944468365596914298516363348696414164046902620364387507876957162523716727761963650165880519797458353603221819095220431895218608439120440954964790032679979442031539740039547800340196688218437622342448742138139865192492783556572341992459259389960538284619257233376712618243625432905415822642824919087155592242634131105040260232972519819771708599154056739830594547947827811085673152667027321277246357570735648050938710574907541950225196628685603812835477664598083659769432673026635833542243495794709510116348794060398522331549249187249922672022083701878353109420624779269279732110936652696788950048145529444370948782588335191137319229027016693116063224734973942709480822823291712329043850124019544414171519510617565515574079769152590450244937056117317092002944249478820843650067209609092247667990974915183078840986312091786095448173884042109762238490172130901005794963993501148293694326925207795324324280049116959118199750616964687938269077395567070695796878108491288106773979115612350101936826386539508485946136422079840681638405625366548589537162268319524022699667118907588955456835724927023908051380068347751514287567688178734511216711142999877529715212203257482943306662286343264020578729775589834133283043508906452866907834256923642745337575854425145830024065188710517843415451730261338072574262036827999192922757617997644275240697756054931031497467427870501515701008783579362832364931188466408937960799586152594439461306783561399690964730996000663986739375311616076449827878651195463382792919200389664823919287576531687238943627343590053530436761363255452413431233685641757551656599957724095067302173370298820991059472277621975340774132086143186760701807747222922031248324811171075673414519349443807496577259888612345137919409703379057977145869226473207206273358480505690389595471981764954771255479982739231009715951759665212556320508019818008694410543549101006153515121808518644573780245782534513665654098792444358624745606554542025015038834973839749484291537249281746785240566640557995903016236661737074804957010563204523784695137513151583211150012756700202087236581179122195922268735608396798311301911535184953080357098357770726849841384652340062973409134272220274718687282004626468502505683843128120680907776465131737412684563693837503527043095455514648205817832020941653458125573965272352407208350110378425178600038770393894908583916628754638040174047647808123897170528605229238463166077114204980306702492081561552005550432474826442245937102560580395280831889641371800861337338657334066437581965614949572799566934415049260164358394745796118234952218196070305465182043146490790923214026630994572636686890461576507634986111968296334662330594412494719990166208977692884137059653924539672302427853868427699334833942885546776901808406844138968784989694396299915538611548180996139810208648696437718217010274498518020146164703240374018235158959350916253944612390357239616431638486696027228160615856468988449179465790325624295976203740149103012776958953362861066291377673876327361014034265807896845234925655928559066935197056635804024980379036932865404751910253545089875875102798916068160513249389160757496594438156627438589096141144888336938642887239209437607539210970182876469419708936241294044194624463942331361379490408297509500836361117595511450548399503249580143259552754023339188383890360758605667185693779537732206338380222180106379380471589653028227315971131262547090733739645696950489859733545033700753434303969557755964333558868034688726842772518269883804299939036779259761747095711391003549720004471918625612122315079133431655136541057478330354585088472872208965757971697417080007028076847951614843755550165266225909762882715679683509807597254018670588635417052374951411166243802645483828313911103572205625389957126833928185254022851735296248087812023929701785739178091925647266182170790893263664358577050372493230112961205977098282223703588929776816958507579800327305501394600090624723386628124570733450989837300540853500005852244659693858587719472628063700654478918102452506718762194106276321991541998306420366845493399551150578387840166744306242029013958181383387637557537118771812917895857726133776234037622095371128513071720696385655826170825582154103183386217334630186567402881981408591913157703085655111294260957848550509147996798255875760896811537275190706806218309814448244048764914473541182122629167422194730985153720733973634437897104780243960303392551633703630191064289993681287825102846879047442273476985363490586070982661568655245948004492381226152662261372297970315421069149576725573537103339637976428187583414247222792020278914807219458347193542619304494274404186395614116494357772764395038945664562107511245584552788887476692826258897860512649919966452140830618006909035140323838826512944327541565646677806084833598875523913088311400633789325562305303321421511915606336910325268626720093019167131718634346547877553966226428815186803685869411035251970957853759746489712681274962343754588807071875088883193952024606474866098783195392960036289919268542782395255010805365940578451360258941646729501294649793336843475886672689670337888258463235712793802115551787589248643753695722319393112257886067379143118569696524262147449817699069709560760087030865002888755321925866532296222590396967711273423487778622592067566446409152649679467935088708815201416701134172777569606481051680818093590524636813576228382969147232955438033445331791545627194326237554833603613574032120515963645837244581723934757121117202590924465926876312640217253297129751037865950051683334510781812061731278183290957359931284758672479522261651288730365834045303824473666520518338312098496994032965820160725817786872221537699927763470833780562523779811110781343753133866642645257295639828088972237152162009529951459614630634335443598243587900461898752615450420203020188570564016715144807954380293784667143294635154667991120347386763064790709744525005327481446116032446020292229624092883097673430761257650002859283979683365702148869226705229909711357527208464602432296100716813500520487042618975004517348508850043022599846578207300562650404788859316462497221923447540142885139884604927243995137556270299701609804137849094198518641883900307532044653190612648119487926407707747302004401323976997792474815313912104763216287148372145444150393529288060997422032478433012963964029942627763566545394898887088799284006141298461035305034707245913641052566027402828651152747942907808431416697588771393207040443918154296311909195508695404329706889022918480245934387663446308388158918662831618533062309353817991170259085671670736642524123909001292899381127613184844895518262594666127333213955167591152925618504681371882947890435609048881479499625102511544985997607452479895242467176344524938086246143617160032427701825155011768550867045094439793564450036927657950283965556528152093524791645528744256062716511104049438217358569387506213417857553519439494679427259351742774573885527298157419217323756321917599420636918987972414760244222910178970959606023904528150083036527714853874780300360558552383545154762324680832436321865434201407797490630624233599152120421229753838777927982195629000035875966870067155772667710623353909950185675769188106326033412066854882517921170620801331731949909582955790300782941243006419446509528801080990244350474101535064341557678829747632949934685043258276599203923092316509612994125235002096968025879503947477058660668325585656013318459739474455806456474810560916880822936470640744419658128592639772529440063923221380887645427337063945683467562652020041394273008047844230762346012365726172246156539821570287913126842894838505536690407975473198305831577862489801453542368313348573442386562563948481098673356428535258919224942752071793480780718143803961449013367433982336173202708835467914140844878387644970517117647654221272497319074486928373647662018555409349366507378475605918192553065949602701640141970017754401453849483571165883556299008319480231596447631645397532381146210618205073718824638056343482218761998152659777197351110958920660877163595101092344223492956994134675247776593118518590740986413334304731298039006891400287454706699004717128595780496235708150036510961762212288574937859517859959312794716034221998858749099464072622254806279604912295648951113195227304662207533615325009084013949220532927973569665428486017437831128810783216367385268835930888262289293270265140090987761910030034619408296770924413805165278368188928949398802214943168699031033132075518024551373135040873230797485589187999236734650761286265749839816015037793137318774023953127338745626455365066038451803342770759395255381906241945088196975259068449101412163350834365420727982619962207972452873735144833660833432148178672263286563161116714060367254595573250268741720473659006019042568949697249970979553785449170727012553833600504572537879151148172832474518997779668831604544750748734391595314702291775392714339336827263508886928781429439204995035235529069786797866609226619129445969817200197081647745688316391829885395924379572694120699249303951025939685221748064942342644300588554292230369754592700739527031743138516188553776646020568675252441654930387500292056489718768484044745245531677971505068494596128291462517558808392975551167565284160598426711068856580638214977744662765657088593626889094467210580860708096506158112777231170219666323841904276924343856598147223291553096186884451698409196412281399627042114771258557499051125726163002157317685764918175811757769129165591976326690618491532347218225908205108240873502986046459704543035632053884714489939081628860848143546249200493383768278380177387509978006910425574943573390218313965514960234134181076992243600265117655834425097402680888416985137108328632838479111767667223662128084798742721182509051482038999792403460606643028762751342887947808755766265005656348176901378785853906293701202874956237314985220576494243898217042670837652396321715401903655636161679144673997366833017021559303093236179600685661437739475284731300765124877051228584948483895479668262648792333396797601126413198286214221920318628147556079003786077393774605711949324930347244686728500487324227976068503559764239606707284431264695933040537301004439777856003549041809357361870459154562029061166664239387183335234806942498716059540194468042225133604556572230821217036739987194522350279884332526536436452839363999674852308861396987272166766666482320489151244763270487860581925749195746560414629577158115404749615694556366347049771748274189847258422222806721757097528397728884554912227811113316555827780144849400979408949601595592971414121679518678113832177610497299959863891993407670566268245596089984683231880316480019968876424846750037058033534404818816746640949873766776651641334871214057466970098769759364342926610402820931640142779704561402274119560512781702046973652413470384445848936076290457606009784710116453785581261825045547540589418242456536050084152632240346399837063120433125491745588601190410671147994877642554664375125603351407644742374774199182800937699963820463075351097144436650657367165248279116199479475287280374822553221565501582860272711274684040773886809415938809211775033401860733749724134835548978460176904718598640989605576819406689549455148569567623655460794636216473083648252941296293678571002174584798038396630675559564334772303360961034364444086099332479447673164153516853521373466766575264590824362013284410221914328678430299300861501785454334617194610020766525447097036367884315352024647781556699645207690903669182602348383731117151520855565325310697993105594226255252148315344970894737758377873537465853640573947953649878124306124668452864951305172486474510931186280545023829846082999117080156548917000272948467269282758520066255235043650309569538533228631555941797386197801797712325212770763778390663861635933066770929307064132477862607907110466669273623090118353143243838197869754809237294459181453980281995434172425577878273964710824518508578310077209761394675298623536478622857998790392057030711142596329650316067780066424377996941834077181732098493636714629175719882744058041988068409026526744501026186742210777615196630533526370303926059997258001413234841430310704810205001172447981178631030515195836358738820003008497616233012230353263623254832776919270747272374139660389936140660560317828029094142428542461603402564792449846091769206626812972394613032506435670387402902415843001896184837576901725965153187159778513772551267609737148029213603440103341911657867051041785088794321119465705623949146304571690943254699913866299408035795971566814116445150378263457679383833050632344078764211148138659305045108619738413941790352959634662322734279937629133728670878745857958164452254120540436244310912761541466106451322241952233856055113890186136107869999686482970099807006298478794667387595468946651362679804406025748298894532610927699492858536018241768388281775077873385610150844832484323373786173244269086558232763516070567234842980964014980044072965498109092576233269819065810746445541378205056273288071208996880408598928468914600697872752376197497548781700767889151752960543058110416974065592974071237845193594805866980271757533774320773104981595442713008731043869399029648133990589941839098713473270683753392058445939143419495399702359858390948022240210753371043499874171737900144364216588451365842404289067706993806762691843639466135034472848137629658738775686932439039197174695183984898969717577750668528524591508487433481868653563263468633193740301539345054028440618027448941351997119510635174115336426428936197779472205962999266679938576176040716249419455390745850050158431663687211634837231118576987974365263081395233135958400056272868590343651311661367252566643124080110439259688100501601508143243193628572196796676989952992996239214711468855665835093979282638875165359805948718733306747165521880745637374510261243379920070523923665293231551912897482716255741789311699323152650801035098313037454184300865360459962043814731942678555780956600022276953704940128924040591643033060742978921230356745649169986151450569281331168240281158981597311103065548169215380233435004486312214603953925140922239731957436296116206001053583932678116005119403476945175153896664870754054457946508216133355355391330272671919179164599519139200740333522839837034013470481866818630540789553602660232934967240912210813183170509948971835928849811343235956773980235682301983100893206998996314808267290733553851940657443269862973787081956702403079967791723141928569546157911488877690257628991624643328929134254901079400440714128984121363922516899353921679169256289660629660840228299759208047326802921429901596249307601504616976477109656503674863275566153615344718925407713963364161796251464258675907380022764956321609673302301400871035678802307438519487443184388425807428719159721388151242098971049269467655740126921553015688662269238242148710659500724634887913081342822062378182068952877126753422276396233468181732635604794220908932099211491187853312793976520555049216228798235748822474005448061698884907184381406455851887712584358477039830461887651113641274464686854630570632262323061611213642614453758735056463393408197250798896413619619263587107473268467508490650548623292695719667949890023196840073762253843971102793004570896595316404053005276078000563825355057989327505287365212088968948410001349663474258437964871829936366041919903826079756794568432331315999390406039578220000573207901324848435871152349978427045179078602179641960415613953539544751711759754761017671307911154175762578514488550764267821379096488428473397459193464313265260289236525325839701271983558123855793213140719642890918698336064996443822441735716685636166023971867542409231842342915185638937839526388805675823635000901159768658042791461354028245439759074523816069666533705904520808400753830675054413512370964609033080517503915552803827788768138641471503385371848934065774214686212057524502588613373714342478688284147413972672977348379167272883165554284820593740005778700087145881964773113447801528381835395501064887594576792637212360117415052314797600510909857955435146643814115665158246950189836591699347974687223939628497029083737871930325858841858320625516236981771006270184265368918959781934972981188729313781385982488521212869126294674594646189729855169164166074670280124259085053757825592598592034318352153805442138160763732326701383695802310918186063590733615313525699665877912527103668310284811440928175614548575171024743656255354819447505859095121361849800566677904705223256398404883085516269024415112183135867171621132468936276829522069992560669540194440713351449593387464270401200864690808011034383911046135302912943291824894255439963730279226253238415075271471020744885191144844791533508177564832758007941699932667227610680911839250466801655568683865239342033748375440472310274660204011564764218371974244407097831933805010587824370800124220290234476102763799147138232116569791485317297730908496464034848973633697416723169770096814907758460490253244830467415798779950413764842317344185355070654576961480026405238281474461520997019424438459684511266905564204204786432026703728135246720775684596429934230373086324911845320700187110411802125306883560890718197704135955687024324036465345876362042148584356855150694947651053509284344108114214835610375426177662669608208701707309785049608727370227340673646806204366546733522031415843403358426829562520835360019365416043374954034603564023836980288901236365487675238289555300838341767117515799996638939288352359350054543691207246787136863231412231437296586160369529914456041466399959366159612838185860739589203004967442449233246417204713474333978580010822223745917082057589507211661868870233811728071041551569358475464823156826865838437615257493593158923411197115689377157225737713105059816857156721205771149706289313123810455934096070862474006352517340629484845900230327063645006775325529860818498255225900524774851728294603389567909917078382082217509726879427782738996855398522302212816456979177616124738305811410066004490247090646419256523794037431193695678568401519937427510481932166690442449704202031623667897350528814511651673547609515735423504014355645825450934625582993070163023975226459681054190502064847908813603018139598380961469909630773596512173786019301863101791355147218975441139686872926262747146599625101678970218095384088190043131387825088847740430482612173759197742765003602024205439750320305432553624027828720602085639402976279727029234597739665724158585868650327946779969153397985040260081374579493805784141719092039276262240764337612891777791778964569657541182403401783210872690129887570221020910026567899776972549935818342962473169889948865312406190164670412831551317681481183683941698818554753025016604047762484566516269352010473290518343204763848545011825126092948176747158967373597400488460892312713390108219758133824757605540209233593479809129888657144783452946523099831960101617894760359437383228268888140374197884294629261091015966994696349787824966288764059202373111301895138155571164033265697983521340999289722764760091675469143130116811874834711606855024628030455263549930521369080988459398020820242513664304071062802868120656753671568321882647983643031530509253275677774809782934618373854509622294109689846345278377958657232174107965269623858311692815854104278885987175717199232682109864952855865674088702140885570553475437714211976507527671744882779942296540245371133371272887728108236053947729924472879328219022172066613192425507240781089885948137816680608877460346646139942034379941196262895279324168128699641297636589498979732024810430457698282364577026045102885836680471163847188173904650318604373217067290635970612627839395108047588888015323436561170188140626743968532894604523059296950904258455474148728863592721383844842134133230184762553477841009759616236337969695185053418932940248192901277703324504535919163689821813463724442441861192261184936448074170392597012964088623381549727670079684045304724655795741721124159723569837373512001972190744845400013647138606160674872065753604580807629160847552458871179476060442779061407413380253651082905973050432604388951012783923062458050082340986259352592201569113057271145481660010994695978843085163391053738694844007882189448555457029218070514883292481588144766321544236375490181473508821214350187215935612903881866265604010786447934504243970970033288740443238569356697670270359957482959868399041019917941626241498436127661708292990855244577029689412374912688047980205869438363706907823539100460370339206866126617892184150403456050114897161056092570523413094609699525152237778705852748773172845373737554925793257781457696148493965281276027385141390536277949044063514481012891096099648381063406033833794344711213760507841707124630458800250198109988915818206120285173564378527471244414999568364516285396830221291844509824975309914505194858570211268255965247631821014715689685838274717321442469335162720670693301673154912420886624414416097727749552103461285977493396085970058255233387001291134107236397389000168869336662405819491652991031183653445021596978322628696963333906405097587506112481397819824852647100633872101964696207747987091393451297473054254725758279349758511515252713569119278197867544664339273000943175792319620372200886219576826341524330914290862738094434184732950535754461653348126085476014798614870484414597848755581212471681071169064795096438444089665766730440199787165197915148104422332694858649413510331531641407963555876187955112540042893197643255921321420899656659421933092984047313016433517111007428189210530940226562191808880263347332361634124405574910523607412536015520858313761316456628429408992300201809724998210054454851590131787900384042117711243523740600581047769492158763348181857843909709991370546867528964056997713443513989247058485250801222807678339694941536142399178019323557020160129682754016975661850294800412674111807268470984736971119194990671130003410906580522502348047237784547280644499284748989896309280636303646912745191072647378113574947017219722036830210380632423638107460920468429896186732713468944981532193285963583349517210250022673377666672564775174887647965320096308065207180701196236184452693590486356536075206940552636488086328833738334010687745207215578905221412444774893781310804530857643295005945271165232630767125839375880041368563153382504730121027941638635024207104115823755421319191942829481623559505858976541688792456272310772966146329612385708449177592906667815020850331684734410453890131035772049322273258110764113284030222404895260824703434660732654006963599409472174904505412372063258986551718915470616744074129091315796539127844494842850518862522776703334261421814451076614385521791871656276448432701360506695409601142098716836525181513747172258602476848574971425536404412713544835898734430411418615147145671344809948451083611152979002597909079289514967382776471018527070492273809988388339658179384422817463747883544775649437822378147535578194015747989099889521622320785276508633444770069861750992219984712373574549272686554807239571525500441103409329571366414323796194817113495876251794722448641233890588638547222067010938807297182876443730643467069635807088497258012705616576265803621138984629093230846550924168501340807443613392748555263768606478034638024432448135954521529003580061738345105696045620734756746220514337850866963118010769407370472110412648627903402209599539982893087028769943838173717661579012541312960254816945263180049151764279261829576684640817617698217220652144243318206355789803435241330808375980831453619824929932234403562092221540086694135595695153412819011075712857548765473101302128371440295548076669321143040404981361421496580091577230229233067655390048115938049432869091035566810907085335483333595332358348440121677693494433338797732133721223197425666125175585642178284099259146078018772361143394038746349426996618358460037197529010708176387242148347127698790831614347528077793862685815355761202962140032754093717507524196631715410055829061009162074478033204001412465615323403279858200830415077316385395863631171932296907707536492095983430185084384413116394089649087119449165442196421172774050357185507537693711600514535015513872544115072762120822899139509611405253071513613317883992945638166720381750797674054635903150387200139472209110725137015245009353229504259738415933321325289006631127668381948306360703751800108497306089642339289095004551933087356751134368001038830088037627190924373784916980091429271336222641567990004625255628614726891376493201273984846231770987550290721025324456274284805428332161234728477381994765355724929924644922608901395336284532800332529781042831766591962705938472272036793228421394216767684413969543579991150369531567270893617510245890640341728139253763583039743678716058402676775323412667572778103800897296446782197116849665714842415798081994242309738182973180571504953166025150217772407675841306531856735010903343854798173829985879720237241923025400109783544388811398422520554323184944517611836836381725509437480637775455858059972070057416908339970582625127061002090211159618753166266162677370100039847130847957974764161517877073995077904849347878718156370363912967130409102145197896680319174145740909111132883110429033869586926198556603208148214042383331430157637424962180583637059665598077541253691847848716604831593202489445173929019074440460112377271828574841332902795129788689026036403857545565468248188606024743800882634096850384948997628876926918814126519108166368033128725028596848143565159718328980994222373697686688798652274084150914909863114454986452170088445960229131087159275347327022174609670220844324308944809145627374648884000128461954154366565499675078121288602441657156126543866523785628160144512779368342568766193557973151280988181544333369463101105465430232880145191322315409947447110578891421917085492524753770541632846749990064187756071675985590689580549670087926448612658671713798068089365840281295497218191948869502675141719130870592254208592802361468528939126339396212304900732304964372251026441515177424329830580870910094337665954070809156257193688660559617060550536167505339217941956055792904317157979736835864244916482443655284546272900775690213728884770402212758611098900268169825661234919899407010537784671211815180377036815626304596875714772956370083639986225235450411648436620492877471570157966386010542995378501189241075869547230118043413400324199345921215254201292969000527263683529308880892458263803756155573788449159483809465294064593525003410352162620533252953066297606641401185064042964033087304498266046436339109799916629850336516154192126862125009112021761316162631655937209343256196212384082944507362591543826984341062562609716114337998524076452042904725674561639820323597443029798411510027154107679820618611428214489813521008159346172157111363770440200758080542103835278221448862242466219996273340138488922882591180043184783940355035141616831071339832167825467473753563673264970185628684925507631258236783318609414350722375442160634599235883288470235342537785889555862820570451970565676062733064904492256013864038705513309089572126759298567133562829378496894557193982736626231125524624328472886546797879801782763939793144791878202327435177953231962563779491239428667048462169341293219503454258861009971923161618262332322178440474910182295629848331852197635657606584657866336977835994649240579591227855460641300333638613020506265960756063319991396015779222154718226122550285276650750663128921487627976120050221916644220421317343257169807679302316255281244820515705451627435014413048462434285601954542774393759377258916035714699099554454328252607302660100183697232978976601397145185619926354905678685897427398324551759405392489111459041582308809664503184211379308463386981457135440121889632444553832866871312005144037049127233396160459404878549946467022834806226478261951743758289505664675096067071625017233602294553539707567859767850847554738309263091519943973334989548124470572123247569720997477703091030725858243424921519340283540894221012873688181472878324905736844105229774467330208929471079698397052016397675354969096761932302010403963173154322714491981143436188114228812409802357251912417771382083904339469866338853630112539654946606852512552063238837199544274291215518889147757742151031916230811243525462310732950192049525800300544509642999867485335809425376383222119860813531340105388898189905493982016860313812344097757437282998536316535318917282176929054844769371766991818955690757120498597163807790386215442988372397120627170596097677021300463408772679714492103017203341710213881959417150551318003085414216558045558946405534124890253657429306263562610401331223642303124417933203817133284523418687377033638204169440944888771840876472990775105837204119672859986126384333517741986224947289494948109148857602983312016507175216440773478680785269542324068803249162635730319332077626410583498737298092871558086798525836804066529228776737225925811394079521086341649192229805320117984565350999935933286480030190310913733197884782844209842960754564010160827780976167025768553454691703867907056477230783563995819002622348710343603542774946442785487354703034101266311460891945732628710974494253189938965461573427956671506837706841097364585204068159895124791250825924356808392073247685095800220036548337270033136457085260272892455135706175250807580034393194568120965953030987085536056170087825790629611829124834025835667798983527465656926807899721865610606707988808833919219823427307527185762039929164619468185753770905886433450501009870056289557893137489587759209486427200779844399588249119568620311830530032363345875423316198227948559991300951030576003989893556612945515350911654936910748069914483541938771433911359970457276898957659613419229814730178436123646527095597254055191174743848280945233363079223829479889928054059745684636569041650221330653500862654836219497512772602284737603247817795928565495085233882454933503183806489680603594379734460454897276102639670950443840894147225760698284092594150452476448407778280760049290789281592609575214566319766785366609371629395057318491125195463588264174059120975563601810167634246627386709999050243863555270754245473485433128360890031496666455504982696976346310837887437495377426556338300335378690001620941397270835478337738394270232808831822089317877948167337196988362857790420962373825696996831775939106525329288814710938135936400923686770110382375642281256597175164166764803098054106918572007272854248166113533041578775634991106447855636033434492141731859810816133164727191449617629630924401583715348313066331800705830682565120001916169024711128404307673752668005133346022034279829489180067052945887638164441004386502769842380721857639154200152387959411534765140734562031397130154336287486142336713186105372524789433427454242726222909802041389511877051980224551210224555786041734841112863799234875761159280050631065299176894466972675889744710861131256487392866275785950070292360200005653886089245647991789565913535880296712166228682077488110430571015933417747538614608859703814776551459731176714778448664259032630683738170077619332681813741202223428100666945954088061458177012071925207066189944991900430769521647484692434326024901895927241852999272690093208717361943916069864445809480207856863111511221314687265554248806996172652291922050467465951905339744857370611124919067694370046923753480381094750342545347266644104090953598885545287025587613503166500994736486067454292020524521812575545359936029757733725454337807481202817685763544184275056272117194845110174305398565870095441183317952258780120965770849919667606526682340107097943601653905281874448508666640814210760239568456781953504061393817744869667911159049447987510509860603356023702733318914229096138333617165769909783421489913282450760059365125333207682299089992222384917498780304580336602562961164495463229285664748625897628442770746470981242362301300109665211251418856183437405479947937743797751485675169568419877228380144458626078261924805714159772108378151767302531727087150448030704875257113486801174267097663172501085946409703390646628941272918485085149876637849387662640243468250384915624760711171739802506233699004017835955596276199949599091010139484663437815314450062893490268255505814999382508573706905556088642168636811184638136712232152559476661233455640305460492624056519335582798757680802666922691720051218624757955816308492494823732227803246787951711076296306483587737465303305946602873093497411026569749353073616564437842049486608207757735994555846340379162697697161182306828221476564036225663670096209256996965961835690150929325719319759629136752050263297979203776626160947548750526853729186266374882709321978367594693144564968480177059285898371670852318514760899008560485234445429814779941525381290260214480179565489988353503573386696619245520005016974676278813557531584049663356644988810333484433004893578913351396593870519773261201900606717373516836301721701972987955972770659206108758433733826968217797213774682184901228562590365811485273872454364987513745836810330042420109463873315811318186192260123872632367729166580231302250311776694942813341010962405972400654204267033909007220723789235356054750815966868786258962813854498474348417294132788002597748770318769961303911584918577360146249049387473303102068139167977115457980775868735680627085290629897342232779816693802959104919073805080174160711963469516947678033438745855777236805728046835561980157269283982881503487204681039831387886057403404813473793329266581151100529793432573297634320606969132262222791365017473272556612027982187013359336178593136258763928009836188860248309897472446944674319169434149827137032464349568854995554693507895590661982578369420322353808693907160320951826032050122851315525447236341990181010775234705493512336287377131297913331245520989002929456350823781124868117969446363464898504809258801695035301395390756293093918006933296538997429291842320319680469963199114673968888302580474185117741203490105214692363085789595946036691103513082412233573951994127252986948223056086928705410553108732940467369614821453820382267780468427816215440957453654867926898992767606764132714639351791178090911109731102982839080416245996128085511316484794393497988448606568044280647993860857304570826895995077462353715837310092587603434101438976511036472848560840234088300619780000393678256782558189450785328857377974527806096085368795220551265775775587773985610257300685537962916747032145562315939841163660802370115143757079631488384838662363060899637653908982347337736737927512418253964329664979647249090276929129570190238092074647643683984755480271029327108612277468893806073336488881509416391812044174624424796566329391854443224327402309819599770268182050666095248411189182603663905608551248253810624326436934972068032078194290719927242081140459161092203489323235580882026542090369387073249183319376021828404612912713846148594829747818089590577595356659297196112370615945046053032948285480901605674540003421578065765382775774684474102619804672671774882566095710700377646835609585801469300126407539376691832731098623281677944706817841236700177434103271381521050107346680363058448063420117218463245812170599287239426204821510573677084060735653755937614670676090994515195341308616312205095487331579298479035021000947897453629280371788958573796640757423694783284302197912042790806589748028468216169253852672426561968859947757899151807494136070223690779599082923919217470983904719079767380981726467367409710421622726294552654677374781647863065021405086979620887986875324744872650065394524000698397516837686140579242279305972490803061019413551619389038806275775588864192330331485045885184990430971921666015728383976409348838833175255069841625010118945839357339514221149606036090453402254802333706853049887562707255121849066949481249738153375954916651216073844945688657723904718275918302612247197254705065393775601967537430201776062993829669269888898252050382225920192434604937682515615513153673636292044947144231605676903098261769235916349709397930666457848666887034591892248735139002165647517084594922653766828110659689078790584144233661217829647257745875454781706175988950385348386369460807284914118639364392038885234931335005426637208268533654974698775720988262120642117812574840683206989354069277315429104431511963635078717609089534849092457722172199016482902302008009462738570387979540963803613055444404024738826545266278569013529265934597363363180064546222077164992386819004175767967646061582248207897271311049558639293864703730339815781825188806248951230991211333963783640774702786174301865509873533648263400329196039297856719033053112853641702465685795565257592080005325147383263396825270582285969748315921138020985025661131423690820407217440617792310426000263666101188663346817643544773426853222439619362624379277347738585859470506971821410668564681184495245902827723081160837903309907416438145876166444609701205390316655375996449614118534979513306737369612174488351253087971977435092802093566445235960714137077201167806404834349361847799567700749890065581913575304192046813182774448678186624789921069448403124042464678237607033561502269894317084947261722281234978039554027443370522080335337076444421256324824965024196979944020609899595107732006400517048208771316516985891636145144022386028340747464754121473967399135900810761413471965745498006356319048020516837276231009564947228844148196721477916360728796409056914065873510313497529408326002705774908809394966241760812361343679919523430308058560746011803107459914438002431536767111676669662378182868838534018906488259660814981254255677590364496178403736671903362644415644667289848809060021303952661165810165664249901402933378052609223617943251228469079336694808439836266328242918381242476076959167292063296631941573843772835828208562144719319397568630493827646426396259770844591445378527938459745982716594682772153367365671023833070839079395977033222964719099542241358304506839953878615802566944274656815205587444001520558251440821632770148813162675091758693359719663770115555535316720621365204627793456332453910018465497748739107697608150672399738123116914448571570507383759489020668282821078873455505832760817322274783860628191453016663088157914637456258679405617729434973102421036062186162269419155767661727534477957462840550220940901134124920533137294538233163212924143698806728793630242035719491873164092221969877069974185485311670017470717231902493949560780654674851226356444771737786878039553090480774755834627977514773997863610240891336957588960770048438494133176562180219666998165630268840829362739552297797767558189017210533145110519528216111241608890489237672353573049473595973569039862734453457099316578273242062831536725422457704985039545415610999707368008962504210622663096355347363274387366855178665088998799832072051526906622674758394589652695182680854458370723240894156977659678680196546172938670111115458125452165638982475825330145633184077793452522644733669487027581074141534249860450166928995329438765453399092424371501138355687486437083386534886876376080377247174907620996855050072217701748367179644379997814912515086706984937064245029774818285994493939962832421703758959450951795088185076020956915194015692634296285784125467491293228581956288354234236955866441001665030139964500073919827775738660542799374662968739424375767305213843945248088023378475051629674533947744238975418407807736966357730150940028253748182329106705022105652283552162912369067315537931422202221432216017628018871800020485751219908121007528805485540755234398171577447717339024614203861905670151773521167547979658192104980637319436822069097428579278291336968364989092597566759980653920870927773841966215809909827236487639322955903555277789349609637551466890190564037744713857077922037498198943105866983759327927450447712190753529937803273830868548310381097990657822093917514154264615877466669638171629816556255068612236206087772800285173378854394675530372069488384351552935588326166989401772599340604609257089484359831581415058677838329001241733814970277977953782182292083115032188710660093185213799326240214766405547305591876297704388269827808733055074739493621073304827561893768033554175242080796120845075524603974622575838750425034922111221988043061421582193604838069557352737878582297414966722101100446082268013832865441313535962208837793149561599211847892269119695936190826981019334127743255078212858835526122555879964035108743571053721098615263435504947723629905809766665992366612364182277676040756453803746172072969371647229193777171103382999050447959755864100342684240754077086398351832091051576271015465831024723657811264230185239911028586496006058823648957835472333773694105356935039279280773303278721444875903621826016758872012921769901263251093108453438243966222973237775039500048284866847271275500605546203468718707818492440229060508261256212004937674836334598306568853038600985451914965580997817350419838908605458794289734477234219106267811885769928634445655004049865445899161205433179107557133820170137702574342223901341766008836269995753921514723218495870059109126519843323730218281540319990168085780321026217264004427494993486191965745988032359087589688913011354319257705704410228376955528464300279155456052008022768697530584190312164945540821513952482134999992298316768176988726977190587579461886033284365800163259517382841855629066433286992629387126593851360614752131393357987518873454336343846369283230171820781925844555531335510946172133659858683058785048895721587898848593649812641037350813231275822752877988413566510394490379470761547009020271086633112109310015369216651386840399300757235697039162382905020531698150548986786859985939478927641677766346898958532228137327928781625811240739043733424904155040058081074566727519886537589173104219996206873054552149918812117863218096352806526880260864598053202168772003571751793607650525128946423317566972081060180755432849526360661651117293422238580764875466021693985405788382513747500259193840304131060111711519767139268453874994163241011496731601680826136483845096188213775315528300008052937846064085436436940040961668215721167237031526518784349261949549205118012707981596310392171527702552121184758630594623703280313000004178838884981357737808354962827619070509272457829992783038679284327297695101724501473168110940462453617790984109664883634080013756311394102480278487070428103956975905031657935404893629853404899354081911575139252259595532770220210017330514691408939131295431368647685586469546708705941590136368322450845518626698260590520687931449683592337315165793363080588025956946282809055571374439855767140222497537221956014896028947605081352468110635897885976934232055720700983853754590436171549062200449339774341908079170707865688362593693085731154602542655933811684619860370786837131457885099972293507845778517210045386580310822130021067996628873153885055845435851464146695635938947100902318346145391682813915713459376591353165040780492913546507822677778155030458304417580411437863001103495153047750160544064340736711932072333502563871255911559715092773683989462689614901949725589875996983100172809049180002396713086517784336021021250080709505623111570341873863434906881162005421029280425599082528661912897329158339298062621570306828523378198900996168121679411100880148260278872162185997109952723823459178679431674800593718060738468152788424544672787060988464910350832497784448903838848375776135696955718506755949764111862827266240249878398409898023305970632633332026267778912136576253647496815917709031991817943293166497212286774242411751388232271773722795809944812997614394261904136498854181144424917912240202750270340405675661026592401513020563879883898320732746404530843098099679666299481396429772685560461495087625472075638549451483669551229125781542523366278877414631104524893051563121735707635623536664182433198991482372205256285032825077233205671581374252922137162108273012850664415957130710647642847413009476934005081229838900394434245145166947903372374134447323525407193176215069300494629011297609604142502023119569464377573453139954012536393701207645193497089988534655812162506631568657895279270497193231823821411910746799444188307809722792662144859702446361652976724511713017296180437107087792891184598707612299893664773392409826181658532396119378462394453040496647346805494645355346749831314015360428833131718444971351780325674586283088143250427424909002923608527403495358659181159916267939095119832720063869902588175913662380430510987647030577407269883665513258588383628833236475691799559140212170420200154975098772069113800900228623617600444964508135860133331692147088962265552980858498604140400220917697136683071981979613754896865864479210795953795318786698400964536915594969842682829134281402057666465264776997695254607281278780472814832263743609478616537576893377710795682471385197326088611574092715885219790795527498209143835987761020021863008757939423930168521321593801406306685225016828951340948495740520783119139440632749174263586201958668809504894663777895811318339882187325805718903784228519544857497312079683998875178815819634295671459584870006910627010484188885675246141011600266913919037766259479988139748861400621558556887944548876293209795946452739697298667543831353942486497077612311822359648223931131561558480351123849879883688024575313950496511135462605366491007271177190272258817955818476564563532486115967722701334266154607119136354546590421298174821174295808363121449078937176799166105722045107996481172670963149092472266849945997443299914399526127474905217639820383787331121505561804341693632313635938962159312676910119480401041483423653922814798833364113640078670266887096032771962970883657949166751869550217718113146481140231992949594970919734422918919061783726471565026603501534561449035895365172536321346271151742745683212676031654541855043447508416649068358890879007157348901695004479175544047816630491605908057628533018412141520772366028448134361347848580033876978985586265211048757134757773018141040915293997441348107950238048843171700766366835862063309190165132726749938842675488178909347745652529777719320950619375102137472479215297694463412188802886088183061241234053887705635396323386658089741263489649748225319177587526943098563242353730734461079883451471301041854063531053612392477058456220114574247996401731523830047150298054086774226699659837369375440547826360205519088693367538231013462330248545853406800390031682563272293775538681357418420389245903013906773184165426608394095369073483954353108907288115612123691929558008418601062975071387847992771555727065068931375166700983480793843327449998652167671190876495769485720742066307991598350746139186257560765875346722171010803052941034489637189150259305742950634695923898366121537095655954366500101530051172206688318539814874552548131138251302939690960514853837184261915087815782491980793567877248529186583827830978699139827673938168137921287500825863817803274570886481450876791999779505518860531242134989132812611472659390934401006884886730409139629019778054918221344006696093313400726929699676923003576744285900352692268965826901876377840612848172953371784261927934263343681865343803406210145916718350030334269710058879134057458468979670514027638394118078086818434304339204990207104018718855395263701171601051686425416359421692015775599336406303411633383846532220920027095511926708675150047979992763486326385307492406070305964195618622411128286551515176344705515484375341872092621991902577688033236958762655900689361893262314922868623153638797436578718811420356187217012250873346847404228027133419487141905408677973733086431796894450156750304062885928580426729110627367047955412325114819247551619648181064388928565693471056595217114138799665108876290940464681820962923179082021260883437247490126690850142918483286973715521893464121029494206455016824007100662032659833572375227980369069765876337995038899473116662158721805343773117563872155819782155640211528151717896443458113951844698970779026984934245043716767881455971333081741319147143753448263944970033155915360582647166629157371436664837163241395403309866776326775312369749426239952888864756901287202572702536530788359068634514968357560239372992707141056167260346933213701136636195806787151751323255013773660547843859730486091923419684727143204647587462575449034327171144947878912249876992183261721736522021811550174995627766808649135467192874704468307098032293277837256311357743442930857112647419742954474854169915422950267095672402840145876604561814113885465576063029843403815264797281146729364471497581861063113436156073261584253791784377575239503333595016614983617959054857654737615477284427851161297517246493159758776789543324731344837822590077349056380814260919095568727311250275477226636641193409063600771014691228855201679126375321292365491995384349337418680898582638245816135456085207955704050321070644388141814324328735139626388266197846386157934938758991139929805853640160174482762771362971315398275951475741073630939721627980008490360897728602508551429038193573308719016029459272449049902489486047318698013288286709550435692943445598070437148795654404849572080279229064137193995844448348779654129274440801487756635781095249319409018737876071521410625790809786245123701853000937674622129793065173733346911609881420181762830998254329260319100639677981831162170707292203534838882073130537157945905047877557316042687878306925618252704121434235970277851804388047589861447663399888920669262911496630528057468508566066012681288200714529890280408255092959425786769032808940764284799699127372683253531147693636030801506920839186888204493986966338595712954107410638713574629238337819758510386658468950837456242679830296346619520438405028455751726335044239315302167589847145774729752605554103522336865993335841565735933397762230280315213695142307886578963697593380020650919270740872604894248626824631479672747672466665401843902357882689145025761403636057974067210536605774521135589944350380174728721773225402883766172687520534485354785784520188509815152264532934215434920126278109821703123807003547327525936538735936780676240164039674875374280512970075167753539797167695374950006875636247196602057785891322945653607522538408230924311149377199189952027849431091119534515590782742907461690602727781792036895995584655039095684092917188194917323010730636731302532345539348551950897070304690498383886447587091296291393369541683487536294065235591997159529776186538665700969702243383081615448860822324592582409867020713540877231651412339260749357576086383853267821507727832989705523933728671375512652777826332376828757790689713805322318774866311948458423820135934688658778944914993003153048613008817306597233323625183064043949510338703566812819897587182367334153223707494949180357297983643821330771349120717458248947623825342555129963046143863710469718207288927105587559327138699983744276081432744504454531658844129926595094340594651321652519842708721027875047106254751641586374580194294256687568625898739905161009917513859821673025259064988501356547862867698498032517991683085440742266323062959974988865090150824915571983937548559353181576387960522732527753954278325898255642404807102553872652866096395054172140637631022131483785256546700373767610189328955171303628676160662876054835175838313959013952994701722234814378213229454720410616062472847822567146908734902593387822799256384229760108229154625579311176113906979173480238653486271115247379628833693103064321767624523581294256201999671620979053919781952613984962604562505480559811864610154269802901691411820065053437699668466391153012807937331660548709415536399143121589891163058558810125550142449145328267563474691472129699417014526285046942953202067228516643407834997828519557797623624384935529789369319779406580244197215097848339700694744157950275906963463895708989245280046686896000830449704615718925850609161855629824393438261993008251160276914821897279956157347763447625465465610645267211114226360820912306271775949308013361902570598191596712818094644768179883504846177523624936418426164584152689333704031822641379600719699359901213111983482985616722829342205274999310699268926071515191670694645347759285803786334360351730738233104393386090106287520827776129897923112152802866087725582717677392804807437427672052589760954907488524978843146062182128636322763727407290609678154556433205518996974769986984830788055020005786960363956573724108108857602395796087719413294511322436382455860820480449685712391926947959827770704317961647316327729540304864374153783480970616392399985102692074243303320903042601900076035032500402267349645797446950768300785026411319788502184652705768801506455428150759230523395696003030953188187388994613025186224394809849123954498936978928614943534257284676862140275407025862049508230211379846231032947301467706545171736633835648429344694779579718027179422578555163740245669782048857261559163689302500902888994116359736701375428282935933498325703257073217462410620375236466566617272329661750059627807983851788512937056340171246101257288086155674566316670513962217908404359171386247870737804416729519500816194729346385886765913908508056291358206401557623568517430060627283111589420540741643545571905119356351044828565409916609704477473364601780708714795875823160990338631583073361707549130824067168151383602925552178194651636283574183199891618860014603859324888013436586104846325720057158628111709977391320043508036796493230633940799535446325280403345345779378834184668113637074869387491531294841589066203595829240279911580278438972958452750063288013310064346526230256276427666715820352477382177876823666421831351039709249238859893632020189332134788996620236920773203545852121850577453915404322669542012035523415589790136968183739278476576217516840123277668345633172731956470107415075904733635116039187027923307592732956481737284031061868291790637666627689053808514000751680622811792795811482626793536487487534107411007894748991244366638250742420887807009139971062901035429311695834890412318530780628310962390148204043451382628168778898967469602833202682978856897544408561553846626971073358412332371442724990037335389714595984810832984822212762891702198735248826370144555244048663556221524268874556212684058628486924829137507609941305226392497985058304533134335670715757662500646360767310677538708984120465410334958334220964340247558796468503118067193956582735939655686217320677075449288719119668991828821152584974985660289989205662940087973393924639705320758849913781789432213992437625179892591551093410582130020985145077568186396355973653721687840744783579629328378538390215049244288217766076639520438467196005424213427426640620682920316721461787282644702323084936128108689475176240641817017810207739519609950073680603862301577935543464233344174186378397181153512766935828325221170130078787345987208059190588154494989060269961543221760893055629439892418906171944123930170791722545242056814236440308547385226615126338124030571971365071301539209761542978049267514972161711214418125509677123109482728288324512962116406310712747851880351681629975502037885071048676918164430538967874827576599850568692387957744603922840714489244388031289074270076831688249092435395665483383122536145348676706401396534301247219766388546510230033464587581361485122009161634751357845228447881627081285928832844954677449652048398337381867398883966129023320490156696825054484319471797979364908892176877752443414130463822946328412469260551459841123519776553013395765693173010623839090324275048568433003996609186007635476031479129181757077994421231294627893829846272125722252671865395294391490380754436297375647456630222400669059703628566565831783836610270192748362897565083310658144269407941324293431494885482739799558713350397904401224402778833463408749448372156501462891227862658378760438266134395241881731492036414369247968626965236542818978551943127123445141545352616763593038618953013463634093276562348517792449242953891628340326795335180324951512575467268672876109577526851550459233531637662557155858016276837015552895674707446050238194887681774303098070496118808981712578642650327985331127420145934887688520084808241758722967899723332786900912788641825184368965805553552802648048890275705628545920945958918968386009824681427890304099949395214456698772064777486961436109788315749626784224686286203716587202831070032093493973479690661130080727348917279472960697059015451905466631389053065108939266802565416075573712321684795109444213694588769442293616560999432807871349379108305237534764162668956287410327906954359694898667666204998514698002871410603907225772284822269238834815559415902577583819051502544259206823953588764762030395209247439645995475457571197925583863198721153316116036674236215803075428802519787322431941021695928138773807020252702838073150217466678598534419693058065086255993862251288271050390363322228877507414798884092479744442657003413417093086799630962438196507232996972455158397160757477624157330853142516861833643215419678938516730266648329463057082448432467583459730574467899999757965694812808058032661259415746430427215328227055895776193060422034458893334783372441842235631953679449044421261060639470688333243556712572601361385573859720051738511541677348364331913060740773060779314191877696347454152008272537803401499422620192572057035117656931768665468889354137673358902842621392615754555861312422918662873243958242668485950815796549968488178319971185393404923907628794276232605320235693385392832782069882466147273185053313089529967459375801497504118825680468135146928406785727227292658069905129460932113353824472908800556591901516446667194568120201994516385224483449167355340637656992298212695526590524837732641688918304608145375562542203069004357870529357675954701896197299103458767244189444310222345431362275596752045639685354256650076034668960898778305636192719374627447546686410599192710070978120367679648602865682851954004237014649450927903768169579529922500879412254017374435505846455674088587814026279924354595115637959807357446852528517269931855978650891891974867012705613503802360735218813509574156582493546304093502249283368801405763042170428680820021506047872821519976725224353939819230461482953940002363811723006126056392335111851883485416126839454517208210592284761660310428803497426013566814323037262061047866680021172096825651234680802443614433712215514725349701177868700636713634851919460377921159533406708934995528231918709742334054635918202288127658914353878648711040258209166246438056063791127440689355233100295884703504494709381253842256920407849907897224071264601785512368551675533850690980230347967893846483340193566379677812547802725539115012680064662052906407545497091112407163184176125720510022716423684440643928182090225577611964518420085447009480899269808010002686160987717087649262975041086234150737367797614396747688304216503912451244463151145073290997511986508848059515476179438777921621134009299903222478760160209583482751846155256914199496078104129311049458168426149295676078427095911319776870908648519920024818595419828280841895634911154182775199101676231575112958196658300826391299331008763838207087163617818898754457861046000221830589600239610341167770170629337117620299319781314777750001909087876357729183545835865629689514477766504394782159306082024860049018370604968246961062397354925212534345083455059427338712709461782218910008893748362545405135925976333546239372690639790757463788478881107472203337977258331606293807665299198489822169007421191589836155452747719151397302215588812043271880112672514755768200267745719313481356088291582830360142963312695940545979163713287171186635108929676251902859851619825052659771776444158127309833374475074172667121641521548839519429307878068872334946501828709508164473959158576720423966005668051889431809202099776360282862175822014563681711081879785375082760165549970118395605819878912454394405468319470449524568861874086945002347776126593454066565701405479674766453356473490854892089340636559152283925862483255829462858257129678964155343138188279542956438172650855782481988132639884208764977070151722890760919531362562189512241832512626730869742584898870310460994168605840786325368183764700528114367668983824188932790516562485833838816066028552670533381615730606926534616167753850365675110543892014027204483375256989925440390306998991603863528941440527853739682626866092609839846328760897485772482935489352876513484366359861263771316075482596690174987622239295670747064219533126404290701121707792269120232074369413540602800278693252845899729663683237972793712110050624770484795669570010538745195300302939061453991296618900813596227851766237310160822539726163330768994615088607593710153737981093031052288976070696438056994246879385693760521215695796556187249542915255245921497042747887379116232668444758847769831889646172026872554744639251718377953243858003233567094761687392859715671601102770526974750958851954803069054016783324391146217840185899446355013940507100356867639239565345181680984463282191417671697715374484865354554947210530966167636011422132239286398731020033976486812779469926847207166896642943414209671462557663627401035897241778666972070694991865448901433299221385594246111492425031188346239867425077267000035113739543160831293976946562510333436954400904623499099547069871071180915592969604571223439127450902039060702077209305470807172875373459519749039180686351694914580936917224276345600451277166010137319225430753683634801765684624570194163245208812977392303188902526629312877500646305873463842491948521254812109173727458604321990100262511614409626615492757179116466862020163350693340789207544820525003404544574107506552877654734349054600454847297577573555609486242382587769855057176517039227132435699513225112131114854733485925050200913717436360657944947041486910514928976184924580189865089205206696524808347561584639354609534837523860060539614973112334302178921763465027860451877542279382211621848984168790075077153633415129349065933391698680370197336185951863208247237924491311267746793127075672946940092960481667985402615878507473333889144947514252506300122429287311927362785539781348765535791148784167131727815093546200182041500196269863846784871048325964913237450465516932640317512566860233201797877175599777679674494590360921928194873734754782413761914974433786369637997926169388694893061408039223250753247542973559412187634395442400575272284290568468091385574419696778286935153687977069626083449739141453323965012926856940277401265080052449791560038313614510436403545846111613989163725815644654880045879312464101969701678412140807399135084323875499229249726717335398574786850810060895705232251115974575671261656728191745660877547810670872229963439901608573239255260368814546342814126630616443739128946417788006529352612356995427530679961152832180946969730241157706983907601516121560809924046495055958222692802402899479496617261828170089726125440590080070187090465060695381128632291428359588279693376663237765521986602749574361424249198301645281108386837122047464419235238355553689443167398325431709077860944773539455587400582468899424205416160157933919479254508419303410667564623135607636671767665259609824143176940619704189406477157647442316323833930171081813811361985377535399557264473273381958283294011354943862789230698642219922829960024343828601164157847529881243288848401345195187199035586278640283184428863629566783282354049577103961456980539156193207366116253431752620308109285214072064700374139812419299905523579765923850432272164078850976706325354373688757705869661979221026947311917573083846302338955638261283850753937034039245532364480812861230645988648437862859340442012574976026184736683168419048647882320796233088934709951245693294660796272909946228787692214000323389183408991215369550015275220510271037516538918490808273843584257246648835771080648679383753654669405887726429347639923996260075370922250213938002133488236218428113847186457887148645737846696764822334527771157010875679086314885426330170344860600978589069538423370816211391257317175548811164815610971774691825643712393791036633818296441945887081685655939635183089613193976950060185621425175716558916773256919309133771435671613626203964915491000404164958444604188687540417645125777341313585620889248221791638617305614320655775047678708606827433212765980973271545083816743995553300916682259496072677829729522896125174711910981848803414269470911252773017191438958458229095149356512008984087529354831138156713249455802127636136459160722068637200158941359035510185689108605140449237476861140319959655524347036522804704591965918388580096627703168428258457661467586822271133329651474940648395020356042727585771529232253266947409298613410359678738270789496649536177009250397778473461009441685525312380409057881389472300228257015904783602058087446564765428012696811742317671904795951667127082508404906848422311094292987542523568639064952230053171432905399085662585475869590350734303155917100568032435122727533441149738060844373144912094805054144904757427522158662445433339995658376373060993820993290716686670198080432823540517092421664445441487913982391722762240180687163608920211287485108996346405905642098109368247261384310625285068768143858866613531518691932473715831342804243939021846584620582725180264734495339332259621114385492187103535834824293729840880801258143991851273369832178225253494857122701580161784725679763475634741969755213928509048127883405751266609582118208487318523146004985007231296100487550203477012441936682020130161279698570183128892730626156563996301005243763255503496219400019862311130359369942920988025619638732443699186267380485741305182122463657088259880857876606825896674975137687807950658926030333986413890640049501807544706564779131314313661696785792947693455211355621880071192670136969335245329204709947014733389549864391768321015824578875738027569907530736348010363997442838408299132560621410739965798934647347181269189347385539662626866948202123332047601173291953938246513371908964141373644933816947826783187010794942847695798254729391350298253339050566571995525810060118512734860163596774502969539337312601595942732997078749595122981705903571654645094683017496638738005239579798589420866093150703156255184622544014654670466027225488171930054573865576251984973731276508899414960298179011089547492591766497707164916257688705073120959261844187084073699020080886097474859138495964041882632190624276084504381571177630278341007962051649228913920137054140641561376106730383257030151804304500179664939907017313087065570136175378750649147848551541090462335434453122388611054895647255188368871958034506435920614848236248252917438847063077683422742162032550189038704758739448073440974121395139903981725525546909052654628656010593759838549360056995930256389159738461975353350116582216258042351512228732577543659281883003589149155296345034181349368673075691527305728828766643966061367271386260443837855521944121548349042936741040088512456219832833421877537372508900077774811065019921218269591254297245305290661731026409811470150149323750714333006001202131315051994756892019464808996969443896042234407987480414100501751011139989688756987388914724543124373381864844286705809202961375152938232234787258050854162347554366734450606131996359605293683405865480386662393843241325200174107727368714545419995663282288970638707463469200553408103216278218669877314447164766248809624630799353497596930362224679052633086161995448471797783144901784249510845300093492983524573113457077927685698275668121539563280076845115538347132450149517891186506893957537806758168239961043022184946633413562383558833701517710497021231036916716215410049638879688626343483262978468285789934191793578995801363086127446567601288654687552380683933131475012447207027740854058055636609629642675184426349273345184245104523223028350230874338831291281699819417925851099312492940130402141982727566671720463901684849005679115928103345557441722639974619368767642907539555155385586750783124703225267097655046133164066240337048821915392686694430984551620804047883205924339185754590567784810900624478439330198509575200604997516086704635194310443804286489454950965594456688307098567949953098264179354281340070626220648447775378359704807233018263208955619564111057768110630641059662823052350125647891160651931232359380728464706531228627606957034035600147173127106751916872152435641632677539616149971219075021026506536337788856225181151310467579657582674805506227631911435624154864168490618145934814459604562646496367203807692998989365912412531427937900703994869737332277942609434937066663973611780293124543350588976996075864481021617064474164871089362760415756379180634755012255602033931725771011732419188090897596680260717254639106550570554243417716873696370216078951998057427473529968518929048345598102673337631446921749843557939951942562656731210385000330257748117456830242388100157413886918924870589216766485978246502165476787490353135500139111456079178258626006710526324070485383175744586995682487599165640490947577363017182849144065846466020179061218021243280051151769572508074443147644231620302596370423590125299921577037701686434489711324595595945194659248860223089743617033604839514979926204681790598847008555795274764511189706623594574783733511646506347096029913377209625971512277899926661134349560921418906733122385747751375610197071573312339595880901599313832331242930207967687826252431872381309793150563139572182240401078753575312403379017801476376092353170243370631252758290320138669698062929415199205282167280861800915127439016978783446649508775437123862631083527200868392368951246205046838308771834284327708783413063497765840130928226641256875722475271581408493709935806088861931142114924094915415388857822564731783021766289230438145382071407888315578309116053896469529421004366669414371164470682479708336714451427065036794309110324551599606175574364212516473963049712684489326848117577178435451427793964657835942251666868582407477754180447120416506860520727366893536226217500219908528728827601295123982804390122043593859978993478901673853769071067144662079671718411844414670894231525609734695377676789939685325795499551307395579263521885336960752725343867691369483090271305939557653589852578263464618950770481611565120724643854261049330530359663607153582257598459449967077695949930516300300422908892615285868986382531148090762144578436302401712118397738528978809087208261253635783366197515390170380623148432707167736589464825856030668302858657306244422748204369237088405943725248924247717188398594926346918481481356639692553135243744327162571087776287249104418795672526964948528945065084571643689127715796031833343766311700319744206073555069813103255641809818761303379200175033555798676033574335590148126988439388766024740621769619165352883959899918437973202189391965129529786696302860196663617460357965227080639916714413071263041255144902308391892396699531508573279496899761598747660936380639333898670915750506872172562384364422680474100364050317950455048804348121109231509047745123593207052171762138318927772189856034580652390428917487807822672656092387453882398989278844449233057121384954039916042473664044103269707220076017100081829397756708819623410298791355050579297675637912379365068103512080650622580228242609013826538252825757443584556413122072139677902375273519909161882105009418884884492631168651492854491575537088514976486584526785542248535197443455707968953398543784748487589666857689323042411002029201452837653969660730738630170365957150139194058727728005335606543269657050752961255061837478149205855128591050379071307102204305765001871359904513684092422264317740043145760034623744028826886078491809811433322255166232353624548994873957601286230459365937156102455812618845662036906162443820889414246736277460421122535104603488828687638475331125103220284325668225598075507842568272339839643061966635976498837110942462951992151778407187330318696987280319544233925669909361889264328591727477916220520593235873435127038334657239119877791968965184478634773058805328840220004843146299247735254397325036580651099448147422994395099984191928298363637818568414924409568708147563291152901124144388503870660705840267119966647592508093603947810031116525719072010021940984844003313278372356965459001644169652821080048371743076640236425317648212630829535265958402022926639553420393686965802088816503164545579222889124185329272347326630216833526839362386980965856525186286023571365659526436124142922168376545496172677031911962937530747927324249158188225803865832885883862929199226300395269049335379438643371992338268922151105087424023964110528632500353227363530381180474624475452151524069802751414599286492864850050421942187432940523045076109800327915617110451085801323062838212265630593103667105210124604693147639245390925803881513283286261666404533644286583977302141348836528337048846593293953044002830833087511658942172982163263128397111887695833564457718144400848044368021735963255675267356334937124571710348399162693605905684509458557534875828994468601628414648912739030547452708131503525389374412035103930381535384505166013116535642828095068867015355920000020321477659501299831395337945642883272270096282933100934422948545153514332059955058754923574791335341318130504934066973829785174433898047577409466096947850773954504338771151138355976484368649735319376857455081561374251081180562013924099145578086390733074114229162061669079200447331202078709584984860874590998208585745839398431041359668843295589789809180412522091485818983985614964838041977584957849741423551079093090913134324589982261866197506242777802196454992623206223385539838680687209586848908727626231438798840158987899780874777014781230265982891011013288156312499524798476546908631520923125375380478473021477830222683423605024366525350652910854461158723784203418053124400822922019987553161740840472637548544955849767756110032366323139642955487966583030089808874785027065721396719117103701623317689350784466538990155170556052471752769050534579170450809712740285172509409844701934313032341816700277566954879955023047506793508635883132784897145280275254710470166154819109488390414321121924400452715090991207966549085780565436023861061558689477133244427201933356541756387966310811435405634365034956658955890821409430645549865227461922037529342737359162224701477295404676046255782817891184765520075264634965296461855738833995946330023524784716899679420994481171122523579980801933708318085859005530968521520522563222071739593943337961029299280626388359954195090994490039979480989580743366677142484876467272214310907097256972446423062208528063893843980365069319348585839234826103613067823945696419342474243475474878387548912269046466285270618342246464349301271510029126386461210833375687044689347259402141381958229095664313713399311470784322215643834648153267888129777479027201456146501184472714468107634267925255040210230425775869034737963843957862215656478276172202776766360129530416532006159344839121376038571022682430237665902975711752024833947437737109004465036107820359023901290600687349618144494334186645127503655233057610655178088549636562011534551789345941299664553263591661204463207119492668234286472709800083165111851016094414700122174170176677409409569579402087101926884410509483085596597399444184135787484398838180227877042764144978325848425034198648570660267772641676582087239532959892262511342373221480408311754318869724384285214957955833632661151859360326159259433952702356514266582468786361181027261460776308571722427321900566847634085267971318708072753004697038402579459135474972774842047041267507878914302874845012407619067701542532555001463378448192600500243396362043668459864335119640385729398095865351258842790857945903296423223108411590446504556996617958905446273178794808536434622183594613971587316865741016274560687910793459361286475551288505259829107040136663357202568254080119625892433180640803633648455346099861849425591816621075527712868639785983467790420406686365204365394805154688011250802789154326997243786371855657179413986452631662155974373568355939189187268971241298541009220276103148768619389325068214792700867191228151998764133197603599069075165211848057041492409875497919218348108845390266118154159272789366378886655787425744233049330169588111592144857757531510767880686307996887587630412902013495998416267511856062944476112413790681819774534091030576315234546010671105781658513174227820445450947578956195726068845184042739521884100130355682615202655769595603516986021706213680338175347104226469093041829960364871794109771875308023288390317344899079382960100719359622716523367375120470019380787849478847061551473489049977336488386683629064346029054424899236347534387266147347081704640382630214270280896114370150158348614413140463602213979292963007757494307610644995289178280983506750211153399267207997479749823882472960339994439767471821676305899199523061978915271705282483486440330085669169155891073268341742807556099756423564587970016232721040923386115356569724214670112070239473564022369270454688600800311995027189032371004096267918387222260885260687382885496829128393381616504162032326375248890919526691492226902135130799752675137585822667127324892671179967084117084958932322303056665577860067698612740672317557922568215213199229367231166453379409345049169974016995266400151752561854922246384259893176682971800163741626666252138353790383379699076950783033532814979430067689239375792225954235132854250094121305502805155062059478598693807142084175264113121374895076431688668318852922559741275344465304240638648905823959140754381284506666349823776324298516576584767682169653239826705365678904133519940268099891009166140248954970004824429871139016686762443276762548915186879420852344487090656067740027974940454259622159393260784042911845438671999287883253547418341453448999449539189913270279555061932930985329456538730014459699982614034240042418962273526742224384116333971203632608634247855228103922356858057508493558172255219611416973694143459911852030340811742630142260141348434202425455158514102431009930218467244878340364497259755784817096238881137903134666582529858561724866248388128195457945555028541510548341372294159900902517871779915237306331864396272382869972142277031267397830915106814267903677651311185730433113860135004654906032686352634382446840922410047117333700129934776984626608459991155735585314625287260552581531498206211284576407342076405090141412577712710217078081261912967456226697134740250399685779343583594263868382694202157510175308214596547230051765562931794567601575146888171661589648197706910838205409721623635691748409361603691719223022048744984909212440206707166171513518043664618327587134820799007623527756203266179332984763634380529969229546743600607732997536978701145564251298486157198901573352702426352529072784614853539105391239763403987728742678734070691973973274989610831685510883712090417702446747848713033819825564793044653687332791975519239305753063886555544752378629661612671444584887112952358038739337042567917446953207481020594876476696437339460171800049648917763948243528133174814550288515753238540292506226855339583003666642471448241265254689705519262710633215690407589543888864205323466145724122953671257281633263004669791846871221412385182758741308539587839279595593572276002730268395152441890032934322928007560857349633491888554655797161059993766731852924807061772539580214665208396464220065927352701995793104959491046870172739910541692541206823613904299731284832364983871013031656109283297721530350102722887394170556606804118747862781022579257294086938737194705235102175101307169473771505089082404233737964953611091493103431152165994717610060109657764049098654394064047571091047454707829324439365331459993837983070502958953104394801577034082132700335331505646667871908034727640722075969302709012552063838354668498424126371961839722131762571973610937399967333690589850052780824931717944221766096339619164033120294974686640624691156877946830629684930570711429071957246123373686708882167945146174561452271287909490524266719385359095830086081019489502763185085215734382287450467851641919066747448308173986438838246996245542713079211935249705827668791024790974281704856579605396257519459548547817433179764917692397227436803773194197293809521427856236037377112085303159857583049886417446196263286682200005518435656212557720301936199265262510291446724294002631248036176623353956003801825394554383680649366190875325608191745811132290799618214692969649804830145572894949170076268456297478924139160402656612687011539423927623613933572878245017569725583221895815409687512902389972065692186196158197321218531235383532221431523137891694813341230414812433675336079941145790165873662748481618401302805353995264150834873478329019275867553442143354373943214551732297144953564137175516216741226566536724161977734630808034741397520100903931378082224331985865453012600578520823080090183470008553418485681394552635060196398021751096402308354290723689327109132162717727891948455170462163215987306903436532899599914260137178571488505093645163599752078459635515282653725274154119954260867187968367321247947815186690309971326373117808070462490679470275432769598675222150373011183621574771650722448044773488274747746641664862932175746716296810280476410113341566633216092843017077995391406213841986072706881319549531365928370923633562115454480084018279423876738836712481861510345962213650029518548438143700725300604411644369256978038467465534147539240797741970284682942048365106939305373533237310115915496008586031726109561686791995905823804457838347829947713086651346920019933968970593149277619414052223367849018564193795290107169016650755805508693506552979678784763874546744012667557993280225263638835404544727003525382738715248574038592545875437558527543874247365444347076066780767218426328966820782424264876868310441135421697001599473976977174581723637408331886723421358045346674615133486471810214868041014219080345674673255392721541967555431572732813706366179663027983981677923590712885176774215371779485868753489805417692810238300068520736459157951941747452702842547811860583234668105927085592355726054935196420417638698071586144829206047879379595603159877897246405553203137986040631028013793070789049858765458660488229813739224370580409837079764937863733818628419490389819808348707825896925351099355226220448781107544020222144715948556315223801189906883201796037127685314858704820766329688651323842438692911849201972501378573235910027477353352463412476097494418400758591574849125959618031040955252776100559426683983264277815743437580434881136684655010470101179038920386004639468165953862174090650256922048170495749760974858497631935830737768668181581502739950565639747728254468234988572426221112784575352561538932020752319883956178288406547277876627774104361343217680763386185856478644262956563018292759553264982713865980357266719820546524987844058800582961078090787062043069727487281683263816236198536216661275081514025598334418601163568966535506861868724488360068409365497080684707196520554740797259016725330015578827726738435326771622039950269056536643011212342522271443947117564392970260088961888563184964691382593234109143573751182982572545224263714726735432056927147632809329525530412399762390468458415022820485875526211156504177803491514793477837823985501016611077162288825093057828096838680620306285158491136625564064042710687265322745326736085332525374484136908038686832545713183504380407814505664316004589450931938557095980063674305376913325883061459743853074458390685434100484130792159621030581284844225288747149843257377914316511766414430577141849831394896776891957530824708575147738787455364843691004111272040033566286197680932207348761525492641588953623344897055665374715547260320762230669090835289549389967395464964947954978997678622825552184991166136503259091802596216691928204126554952993866686550840966860795207589646365008486379079131667983586766817706230985988132992836585322018713449074332470420967316446551957031941898909822319811489527395557721478042622018259191556158458682236521851793386104224568481086685191087118526030604917147541961759122443627221518434939898145248631021563353067790150288651380919044291927339678993534985516747400161607701727794319700030823300911673653173369735639664378700504152113738948879509442370526284277620463024629586673790136833803496050305145429420520621876375687939692082119087962232807595769291453812873708715951246629345675035316293646813261020515599991168110898877624010276655730444942709154569711554768866694537543854394624801007705260517334174095513312970433147808808709886106372730411312628399759538759586826100205226101221100196565551790011606354382529287022627386272007194204455463745711523141659124140859011278205403868529543139894603706094412716963570573505949654579986667325213848862616220512422937423349377644348173022863029104310292640254850063489261176286313948044683845460213853871329929964161297047045129084245513705911154169887626610560343180683760493918939856068272146664358618592464345808473613010360066445812026039719107765663753375758085787158967397840494190951604900218833843932210160558318730626728570917796054550102211067956680642226017163493057666507771768724406785588885057759158519272497289007531945843884231131415842825666914287293634386444325382583026401667198129127524194560588244547710627278584090257976937001859296319193878578726947570025878561970678404566382349014849734860073669966336121417779294802658057561814884056625526738333823830637859345045962495472664325540613763878835373530422999219795686141816525371217837213351965992028758410517270891222666391377245706444392336258180017907573547363141704654224562798421542633571966096984365375569682360610957647879225100160534737479223255391496020931920274723923434960496695979326737181207285573410411900873345193004904551305229998784894969024212216275224624239629719776758759653750113484200258100592908829678310548183519260792751137768782040434511627430946472533446357537415400305485476330610360047693420771176261304752222336275005855654505123098147707766501563189841805677151592610401540010301304932143605830358992453548357194043863561261114486777396520833760005203968926696385262722235717685776686770356107746290224305496860114552758382354479655332431248430594121345492125002627097297773229789947907098829354429260324331691577623646197528688450295973642574756845538104700584966810832651552466695525588595886239410372374208460051432492798231737280268098786227446846651255927443172153694578512892173808636302595926292639852621288191471417379984726723115908487436315350820388704840657414562263170809261187028784273466636001051249611251996432004607098705358128886271819517000574514445975740397500045261951800109682309016790730024719346500604279882894638965416133524104579276246817575679151947410821317253978800826083312732877123888251316825930842861032300599035196408915758035190924611713273191885710189402426014372110569124013786401870655015426637745544506306069967446747394021107491141739721410783188696912664780524605635129656356191964147572983287437307594001042296255992941625757079381061346004673295492723878183387984006983555668401402862014699086033881651258226741302778779125074047340795557497903022174996633993172833779511039586497718122955671539085203634481842114887208946803300546717211839147401655055984415551032167032069039938499742431315270319234888941227085962117059731174018370940082467944807687805576019721296998243321094348419862807317731618924033580911323007163999386905407368452143660618736680397056843793842174736660435659502031694483710583265650600488057615192729682691893631420466136302295789513691835604447108640604775104287922714923444207636072524005983511906356572206600460255667704112408826734708990082896295555389047308961862613690733519212769057320400299802215777753426012853952841330183362522100482357451583926404733429870185845062197163798693228545284888568201240576940275653770571761244109864666182742246719321979014017820812856789751743418298257591435279761298848856548430028322197257167494969511405161873035155604192235798449724837035368623651438906116114285662712856365175340072999446386951414792071032133336100611570501949307729955535040210470549547004077352861251766178767213455360167210340713453184213923990006443230536758826573625909552480451099473500304446364369901064343876738319609137894561587027596521831825974316194329510481681151975397003756494625607944192418933119340088658750721490794686390921720795638832567197297526973160527659750334048548458356465521964595553617329097011132084054254252737467590587933090286437013497544242765113076016490887535899130817302758976956992242800499137886863808369337036574868910345855397387807806284855917163741395625042679364287173135671583830074336081992863485886807658281955871735329587891553472814129685268468581791219036462858709739615975245082856632272865880179665794504888130380565481729392929238590729324691270350547224871664547668576173541385602582578628260044879892710715891305255229054427243430405187438242871451025913991942944316473416945907074438114496960399010399513903417929716652232912697192666990619514429296466829283060054212290014222336153131765597985311518405306124488766600958918173853046719108662359769210546863864167096858886300015221077873179333778460210362328329302821558010080312061502593234268045176351197756030606529232528623830667246810862457011243588131123099151672441369830333082193932533532155189142742932936523273546470679993938545695265763827060323911204431565477473221709157542183676428761053466554258250443196230523627845390986520504208006723681931890388807878893523685778493221330404574552971241274431020172451367458873049066367758829985562066142321018453164142402159710786209724576405340827678752603615807066649662978765453797243826613212268388461080646997908215005442559721287292461354339524365838640597102753019110475055683763375375472121786759176178612915787292819686400966874685271303892240955044337560678324357696151449608115429711014078486804757355310014775898436327030313635585411363820612753753168486241882002219679503383666365474637843039809691063701953876058843792885904590017054694720067322873494729544067268371135471288443827998430774594074280964595577234167685127522749758494731892092291842026787557140212962883101623909787314489598036482807527854089570839900379768190653527540729403783227857770994598247418213576361496079179179514533188971292654540076790081919437278235966064342466529480451373562513148651367330844196587106559313333654414995262612017472643304409352586213768018093046394846651155000191538834595904510714251756578541109921406272013653308367002906935971353241583504178275315808569255704993056720306618837165709391445871339241604856619783456512190575157305982879953769793684910522742188011961837165610591633686657023563040428300146280333727568021561492484078833090241228705829426099073904351865769172304198477828637678170435277068662622124205656719179081403170475973956830270733888258488679884440528258224699567563608998037078539506345368408078383842194778401452754769430987932533382804987040195592179585858601866797862218747884356160436410207214227491052558848360476437505922886650817453134482053397149261383829074046222187825729769126612791149265741293509840267759342081248824739641554504999713978349758095618015529766344807383336493865340039115098388011896258861580883189176596053199475193242363468809501903886777156614836555815322849059806461514960057454760517840240538282393006630929220947922123289463365194719250904522981529455418978768318049377964950639004861824634729243994987103292854547002681205843541645083830433279549461526242169005758524724633878895015978898625971183165219164711455663796934370269932932928774420462491675492315931875890671483779765016188119471091838160299829298989024629315382644642750397583588308346247335496783369507867265595280809743968136747685386535795647660510006578416022228959628851732566075527963302326183486953213150628242919245894553827052323908804755264122209158907587900178203579886782086475390680434305582631093098153798180698195712007052027235224495728793552417366402012104144541196211130254812194164261431630680749496607500736200876083583758676959367957059670304579342097100803616355534402071283516283252883419879305477511255806685131411982223690199791611826049770595558401358480805525458619442587446836721189664146009540175712525635237759702949017265351210828860176187006952925859472695522198613431162655313722858212430778714368383276878648565575440069088715858032676374311978853172895863801049334090625518526567071636376839346598990262052255251126165659682347261393905157898099588141204923010850382985100611741284847896194864778026478232918432593735889888087153411449138177551127142887388538024134296278374875777192598244362635437464035313315012173835945351146412096982228663169614423970102407360316599649690282453521723062968601603536650802219381061114576791248016843907563515931703912994888124378515703520232209978144830213807300445027292225147797121160980614763048200017087948410142160017283473227341171270237987372485500082556413888351421433287936658713849535500807965603383355749403708287395260523715774395347135333121438748021796304814931619011136297430863362834767150184446499356702357044132224067192008890521688964160096189602271371889989443776820695058540688427391517533240092142194732154379478941620137986294735181624476600722552714133091192230269341596737153475567138910246372204346292389004726636846171394989182764498860897867223548108458526609845767874198235145922566316173864315238922699575862382085962914897193378018597202191282679762096092486204098999810717135788874696117975650245852858748764785399775651070910577379131379752473582963446306278282845992331444446146634395826811028064727814755648233840876285720651854644510768969310922915765872312372182787971692505115155571317035535536611456865202544242392423421534583671764134353456531410658897041658236855436183020553118720269500444637435446092795928398308618918529740405322761645885590240322464575426389930262123495585029264796638476266196544226788321292361665225511134063609630843956640122861562074791004641608583132334112133439538117998991302077197918220125164213085750917194685650108972754603528715310541926352694367938518586272884129168713579069725760363627305800677116860646998820452837916035269490962391360326933499501280361906809286007587383633220036563040083687673746042274384618397373167023189678469867771517635166813815409859663873294037465230536261378583747860722243674460921372677187804900698238480361648733579800531897393974405798378358952142132919265785497987110766243937179678872425518491671065630999253456095155688311152107867104099462410433241668657743907805264532976100814864125619797792024960381126105079213454093790319197837570591945689473720466427514334355646713217477496379362690725663994193879725370298956646151270696952476925989499693874496892701333948277450538915878318853174760384442381928924303811044408880155633062244555369670534141070544116432001187661055620425028385137643647367869272388262893535208363256750466049594416482302648103495193893996532394012879681247500151037917436863387548455484175222419030510314881907929451235518019832912873113150439154154074475249292474478416326761445585879771446682829440821392743826366047175968989321245226741895161010377298696393428855127576931157535853345011826659069925227570690655384371139193102158466002480791870148590777317416919069605752837413077195292190293658424196786345990343261210188860157069090392024579944788758559295630079087617413243731000722524703283996660634097794192920604102914472561485136604084831946882078212199032487081583500499815435933042092793595885175274563707422735055733435814117634515724839526032921572661633843159331211246047932008537145161569367982192247107262703922601359152814704580937506562084940496270274179927893240485305819826015713437397973073794749314811065912721934343279029907295759574329134608395622750913055004634682892819551015634188055119626342592430538823677198718640236142147447644042039949624385908261198666135034079208867605884890227929079736665020586937746889254725063121753023346796479015001068414873770844847462847531384295208221233647541115092211194178564154064580871552545036545617508475821549342710571625932887516961901599395132678833120302726807531196411961124257661930250494714891883096150397457313287872305009917769120129662196305375917963411776048830433053756696479433635808428323201815782758357473799071033399059395581836200534943075318689819186438879165282842667500174046594808775766657767568169094407975487865610139327841314898632985701738532449157390872509910819926245573797384999581317793038474198064790615058746007030425802485462886609882043040293098181587476943440863042870044526623922577665338506957318936460987222273413105403165811642318001728677120044595481672796247810072147675482568210740797324401061414209022608016664946818180669136405764508661429189645471528340793958243618076987782500874322596653738938347541868962035027816761147402174912945961976271013545240334257288571539364703604294236704242009239868284498723565519645515918888346226894756370310210158964474998458009423470925793842326291422903639644572296858391928713855962375238152354377695645291480651697333952120485137305975783958350515236182125778704348325281522781221342317351729779830855541381425669657129281368716307287133683446587107114578122321390769340738125755953838430455067734213060151959839095088011899538275766796961649406337240581262209985092516876085268292571149337759245222145530766204933488952085761593850648551852231403768278112785539187658148182072990675944668533215080495901097668839842065849769119710973236344279110882551723691622613277913957328610829125657333351748024652843153542186489350826858254278055487239598855737316671886924279007161294776563156024708374658546734250219140294533694680726286092424273199485698538040500447625313015080427090244160409595870061728631846588613778186255857520064900193469113540346859675021622557057407053716261490384851719915510547734517879477661613157423187554253140112818667306506803933282783486028104625519476688315784189980809778009108831576036479394174867438928780243130316350110364259258419814185330851628909601378382049113754968791375450412779716655254096624295887620285374880015648613216275454693087215628792180600161644145572055595952118480159856999003048197764803524676544803183368199637581249871430195037584040650081196584651883517096338788684464552447395518367391037347693689141564884090312058572396395468087336783166440871385739473168521423707544202729197089898801611520518967959135166157133856081754297804266084840794789781869392722925066440125485165484850778415408437477138462101413806207391744069699416498445308397574787907752039711420654504943740605898216130472818212554298450632516479000058656358627012833833375128185710721819980484453519967430663775388843009256215944243894298075578351124103470702506171448956297514875491488410981902111359565149935330801785035819671118001561048892454116456969278867945398885102168897432894075519127581134055255405979271405597404288533472561979479937244962541566818229935773673890577517772561003373495863892538119233596209805513258132127439977614347916683197890972169550191528692097092694977370109852632561145544411825644578117330897607644411284073302045903524445501934148940977359376753346220609608078203166839196290224319377211102144007109677710949227520395414075614483977980052934946545799911198150162174646531077256016823699147991340751445461731400587210606439791183635678011985196204644842629851923902036143401825055711391368106507802434229330865763940450686295556945624562401440307041786322372169076561258524621952334878082231417105341258277339520550753430294946364710148663022780428784108248789546447560270199629328009130971034342414641116732003535023506720131166219829248580502841910427539633214445017661659922195830454991953062034823575310737423507582904321167746119251311956214883974536675838277503982342496409390728512565637698987872944184962754561927278501314313934688182437664396662102603269918198974229908883236725795635531005827147257197556815905475891759265711871382422173312354220545336079210288856050248046742360523604203398884149688488207047957899385567260039696526279779694646465475245314760834547340498783739663923596162517412565853425573786573259650474665976515287490916987738295462614221088363933760980206163597217581862944459210025505271958346127891091933201512900539247687632781321591766349848859556684929969477297277766568444848752127202045189357204878785064400504504351307628202050122665523177807766901751465853850751922398589912075402711803752306661677721901305306574151081388047550442075545208948458326755428795359695109828994935287396658326979381607454853355627421954636412165150293160796336214214656545497048384244139359042545507715456966119569279489271428441382402563459135556347843910456756721775551106993390570799677136530072822733897157255662150154748684844042746789982643216888792346537447775051624365641380991475142520365318393738773037996040945683830691600790971581240839249976504012280964155493763586588739620805086585537629016619533559492835372524577906158698805577007968826701453025890491869319331786451369646734064576059868870431894241187737223107446075267051782345888776950598678935053434840944113435803945754250233428311371400517480607028350991166702893756032297001713897662948867869741690998436132562294734659994218445070496745251942583134247675114300847725727258292953768857216764510589934033629251439348176707593588163001003679192665388026521317571197125251410206799378855084026415663811222397209497936445571931192917753922058914994347792631646447693059374959175107571798779756093730269567507710430889763743930277883007090811112153657386269879512371645472647604548525474459981438780983273315589598837992722161976249986637377912989833554954117078462499908544496097554782802505264534332106152813423389169814749274716970347906909311420696063896640525642702807380262397439304541135254281230611920892027372196957188431402688780523371237161204988500182513009484738762407631548803591774464883666839482378881710485504671503923877537499986151765551721389706780316441335055720377118504987514742530030258826692859459015912045023564142045743601381850776470636687252494293012996266849386771490467934578456605621985909660182726427113849633803160527914435361351198185318527412515245751138003328065190072333856720032379229117455495334026895763615357505089023567802715941157124042500582264648934227362309970930417938464120040913370507753857563306019411444524730419504494985635878785538618575503050327688472773738383212702200537185311041010801060530466656313430086980441514355390634792913650131641804190313624439557423781287306910457208475630530984878531418152159363501959174057258258296619064562638073516887991578524133283157176062365279100186722355303614993380522887315324784475419756709595963779416945578290717066950066396670465310737752552061767343874385383156097584830935718217637978477537867231077101074179586269656972427447838083990364194285260962695106461777177967453989104697221544943021653964327886376684064412941651710809292912164922243221220694913293470536221613611489538190493653154587914778841380258879403101312431864135230857178313617313708604905871157303601906510021480175850543870152601921604535339254033386969105953897464030526177882066655745961536982022839056354557118652679124414434419561124351456761737690859266866328534466025509227481674354984306168077533467482239346266772793118499556909617414787405466514717092866428959247987685245318202183251960496494092075223790132631360300883653999549403134193231273713278531716570368407516882126569922020704862465159018959994279958146254364728095466562963093989484204182841767096784725632706384623442192671564289104159015688447128297558281667204548519938491762501048777846771365154818086944150132553554496813691074486995855037259400448469609649200138335549999930483209251517869521118025414180331207970301710522231535703642331183231537248201527481212476396016023449110799983465208144878680505829464120092830056981684107278077410542657636032660636886518796750474207477915374338607984743622782969770316877369271657351874292184420946987719964434883777747846442964737582520438323045329511264705594279297246117297550470152612023768785650033503014864571548794053790842847389602694841675168321610539425290532382430600885308712401362637833607599055000796249748694325173431116999920015890358007970819648545892498184324311887293162854325655564346194507348928908377727179046081551045760378681071451853490629083955589542275531453669909823929126430089183251547206352516026656519783107748790523272844704126232269062071088837302281971508269570646517415328907993833758521461517563291057613806670400403998776210660724629401199976914804580924458904458097360793976919737853461351450337674055836541982771197859862670171823265795955567954620510192946418224711487418723355357720753157858996300950734744285739096680039359343398163819841754165425938156112597514819627798223401441883533989442087764376261134266767766020125627815075434520303345810389176417051139655404109710569739812418194820268179553246349479508975016101398932419074696323681469690149967809707803598662150712897886357298557959220649926551090197969574623818691741194271512003343154162376188147319127372262899261746363324632404147366924559685164048528436938009808206892064553088362539993264142903934017513992984670802928097241407108822788187374213239074741562956464315399833007646480115745000763511021699536399302594064036488302840728883194818895422232762010673128275371462030417681692533657776463150343927987963341445223531130623649203144842174599377113610481161455713126207328865893233490589856198978560982368976552380552114901471952583575507036576867563495949164610055678167385105128592206443074493368642391367952619529905506878374959307101213354850313345636551320936897731127988854105090959366377709257241888275588980144451231941017756369174851485457021990462473568102081323231267822369375344479190809741685559928456818768646541738324127795115594159296479587730423590019306473829607356756492380624908675875251906567529728114180556707582209159150965701609119703156954779009255153033615836073276543100831824884133375111824218551664451339950207338788057597154107084983985097249239238722795659007300835650193256097553047745328644221821577672853545093343631894864789649406851383453296059763133197561223578991282220906519852095689680138719789876175020621914218283288348592648952978092841177200411918154666542845120941785894554640599749937816642165846830793864682710162245654358110755112063577314763651413987411211258334721100887336571439561081187633095272385768817385351165435915314187822379566199765894957991070748342614092829823895221164988332423223120314140939985468919719865059219282707542352341539173853804097557370826314359977318669813033560066530659463335405940486194004343024818014597275586922576199355405548191549290991585211685038683950378677109495127710419844923746359177663486134839684963337935135879526956666791738678494438724988494608340081289146520174303796117789097858726584022933163598609454086405080299060163284972419899819975618395829475961043539106669391286880982130908713173625178386527286858092141454100309987014685540866962711801748293300886861254561425063341164479061762773216190352570041584992864369958218411494248380069615458560579867294583913499770624842305253500426475936127488260227156038107740962991042799795142357932790325675358939404306923706251433492363070597076638393344837735455760898016290179457817971503637759820719404144142510635015777621742736401396262689309619290879267994931609177807872840642941135531380078287827393134802096215749599187787679094865445871580908843166794505078130862062975456393944202668090613683506969581279719772816469963593916966177997367875395271526172737961567777443381168297459634686949301766260234134292043205043241322890540450717808623526003581750507745284675969069979459755512364592513552445219698849416521863111415476464323730763894541486968949296561800819081708896430287784002698699722206878885815100698784664231241506853544603507151498609791777746320495697644536172864522449144212914874972370965302514535771575023538565634623978604107757488363556345135161547959635605118370467051662259356402485973627607429590011331672814286451719536313757994410417114668806931235515884782380974599517407450840564757756459403510221439663728762507588036093460859499807492465179190097485132846162513280412562930376583509091907102484246984400791851071926863151251148652305525292452339420244941178840377004944910076194054213549126399009898773556619460920318853604516797828278626743459714921078783469155051968639756140752441229102266474719273351597733878453528998998845340505549802440934530258414713286655029634918872696511989064562360103353515266997042509551484921450018878025766220842612917110822762852693952901079480774628794573581501620339491781245624946536541989149833475392529535745853326737419796102952880256045734922258007589546958128104200160151055908333242158506021606439090143440073329036791997781430604313474368345964458970125122251306253182450401634688634704310144843851768533875099939501645375926367068669928651710550754431726157410606227278347249145241236052250747224040401173056019324127066228386882782086462831015741134653305111128832135744458062029613691486088406594838033605960230364593693230094375636450290381960613643299208135370312341927220741669024859464547527811073002670674711753738010629568650653268587262549441972318292732967832551089959065222820856567893103443501848554520334694500588528959426089148956479345903173528076024641772901102219713920427925443469791627385407520141124550488693716286589765649570057792823546553896179111793021737745252884499097281703451969950279571078401254732048544619069534417939760268970889877294502544569059629181104107449848394124643345925918528832161222329010196703800628522816213612845969853886677571234246274804464325353358938667159586765730542908279629572262617330302194933768135216927499564008152008987490290808623987554103800743251479130990500043553517105647393623804066427448223584587477877011991342938742494182951515272760817547158393305168675180762882713167896468769562312600710828947413179843645211658128380901998726682565777211165645510685628351050019272745572533273093459327584696469175741367040757919612358768459707380253895983512267078051939353604066832124915581751424732213415903572540048839927138630889339149577599285489494739426589769664859929557801213448426182431864380999019305889052985018907933753227002859169704466831657529198513828132203795705642003851258214886930262403648888283938149946612560859986305834410039961418235932152818655874141481992488928188874534443343688025755680454498626831197061405179975255795100513443619246202211333947799251412607225482018859033416389245993573948121987237127489069125303182938951119352244183133031760871118989731984007158217299627629314637690234235898451606138116425004646323384260531295635602633075647042038526647816779062021683363193752918819311123113870938762154397973281152118902260318148001453393473433579010672233016843979636040971775219876717811545369150997334437216082185003974014457838788571132927252753903097979510015894928662349322909301802571568350332871896246652511599350396996449252681535924008854483748896857903224352926106397243832561024913409056327973260118439322735948740602344426039679046466115174867998327446517842062456989532344230073068180561925705009692642228518603338778130478479589567974378465326079958510504794012068714296575629649008940094760677141316459180273166224368620887154115030870561862995530649300027018911288987787898656913306797628915129139239052295062489124617047535673976137208286644194392888212014637500521681201610900342753806956241502651579209406854123073013422603985363146791856273419824197398990075204732942552833958453734540008175021844654701384949297141771273601677454325859941596734536758856646416341247295286103654868040216472430837960590554686983155597384018523569012445386561540171734702066905625446071183116469491945035761508393569697064181431161176436089439331048086310219058349766893797644965648335963861867319177824995645345555554647735970843700423396360788545075211214918755060453016628297569743677266096463124826094462782843389530504579745186227786210942977004910568190046118505887195327112419506477069194957081759004387005328309236078602198467659464746934260938280612304358255610761649060206946083726885026287634805501091753903419188014425073197261117270639938177766452892318891762500658675992724925057821816751127098201748288346244362484160052716534003665599871625202174672908192704262905355192105156498319431293075046984513267644722532155169835033757743049234685559633089577278505237554142276597316398228032895830028586902567443137606543788716692844741293100284860326871945848113100620586051116658684981182882526759783572439303033425790148002826112838021428152975521919679781829460854541857501369245264497060646934191791645819768913631416839438067856759989680499632148343413067299367873377013424961716796536073213311532695188074311030039042931494439928784185055699379051851386119614396910456462738866482257170106877393682122869952929370355256241670392775177516334968502249138696391387189412067053168293953148238923363775895119423232645045806143480878160231283101170656312495273892355303167108151692907802882042038227505571011952220539274487875987055299376780851487554728073201812193492374791892228445658641782036894117769746949032742387118494997157596053582396440888351654514257757770133643340447710231419302380755081861516392606366074877561324834149371548001613717977680799968855910572726968131879667611545733795647589728847914930228666237843290853341166640572900600709765146295688741824868379948101096616897293200130686071300248048814476602549528497149589265040974553091763812479323927113605721555732234888594383514597411264302661294253017808496678833097179551556216558217701986594776692704556899420353051207426371274262265306183324821491900551070489145937111373495558052546013242351071670834271456088832564354574851284858109951903362293228527939741908615532026965384795839899230635442976753170022018371267160831728343710825429061289933250297521083075372361336559647372855547916206123323148845422081379151708248896765658430578729302428681975469805003439282221727565838389421260812815651846058445620214349830776967904329591073849651839810301808003123755661194237222381543377006583627611381407608122729845101375917865413734653884791057312466431024338152440590085649772475889582883357903349126426764234784039798503627139961087330788022892839230204980151730934248612768342879293778835437626195320348568954951551123922107110823906831504568949915626560025804719881895146735611024932844622846183784419570755159420587204863161898094583752213926438843503679130886977953707162495996972541847566537584996319249904392293918234948631494629236652831794268499050031343340704284438620325930624954050166509575270264584037788378755252126003737011344180824093652011686408906741780141935171139659155150310899529806822235318438181390996508061471940539691002065506015521846575913609986619700756110584165736508758982099022617365807148819234247130462663319670982420040434430187391129102693750694984173073673032869197901007493487240095537807476238053035024622223159820825877840284523523774950102683187359382866259954131863325933089098490109164954783243979468632856519390934450970149880400095553924884027686481454194090589163943799189296060217725603988806382731410545130607053306240069299690001245341124898629119786923595224065384732336090443456172115929174624685597041325501208636240562621832826583442622933092608863647702742174456775241949906375613856155680970454625282426371322161333357520309110147774229745078485660157382387582218334395194477741973989885176192770051356075806869626247134442687337723709817945600231315891369307927655537173798061352455415092361143789262348608268050864408504699831037319677996323554632420548252680312120346550362257122917767805310991093060672894811334251433112982046876212751545310806598833029898615998789041891198699503292556608076764465440912255157093502804802179771140665719985181184591168272766373164138482178830599339020339501054097642684939402378060868748489126851340105862234874915160621591492749384725809765562307491382400294605891768547160128289272026152250576136241174579573592661837047646966389383321510937201601087223351457115766955867245623893460975810190534971541082808770693128482629717252017291400678459819859591366576354889163316425995339204606611414622849018992080424994439762262505822149665410556937776000089240116261512913981258014450826417960604624905076537450791270826409043306109207443479166797331346551217522592468995463056487935297945811046661999974349140235065752920949351721042265749528068498027186613713916282602023357770553509378179512775937219503227161545880756333813709298229009766770142516804380550895681507482472414077603414223437891511542384376861642633835377509611172201427759475371447847086005405061580760081949237526540677685392864084177389501726892430716443673540269767281899139999036683102255823387077277205638847714140424235775701339423814651188449706954387349327251049694519005960255950143616626439922518892029628305238086226773568422299188480166286364113382981789051269935687356242993866469539101467250076800853313471672453578843900405391268886582675267306690045622214493862617205798655291872753998361246741729924608565815660727599653292180345129274417993189772007014714899845980534993997726341940747957591038180288586609364134483174048672770630292607616670217458031627636368129257116930480165108514263328320428075531975426503379650207753065993170384339845094123199619960998717157380992488239522733710525313959993465813048505237237780911815104943371170804910050853896626103334353258986894735089377307265426328213233208230040555786503676508740773706905004626563237937621777368938640857778761136452520481501382415413160112054611137930446221583325460894192178311200950094277593919314211242989577773850656864637071799186191988772454399814403523721094760958193407234033095677823109798353285020877295918838910424186073608384699884805829565343375982758155039839160563778918387030503682607049701131707400978009984342947000105864697592732035074778373815381869295887423338908436581014469632274503615495961311011311967103310799954844477649026490912701080843870519929588409199805102996096576624336208255346440268175683594744608432947654048505574393276139965236110836586125329735068997373781887324349192447298953629156938023330992337789261791865458280844914250147301406844534014318038218400703877971567672119316786602112460814281346281516550897026689696806795082485558847163855726064998273074282301960938364183343404360485748059764214192656520395552285523552472599681291983048936806196249701815731654124172150574698854597066080060660750718059105157271790631070387999388287742351162910678929828031077228011943623798129135915064400600513861051961766456441229185623374782074045529070874506696675949285506583023669613310028200708159136076106882453125170322401622107859833242130998323908134678082720187305203414465654544431521640702871241889664777569487160569542921718604248624248240204254331774143647881240193454473388066594898181047360937963479806066650711112263457946164055052336902065369824819152430365643277642742806170549660015689655843850447211293827899406404249965473424618274806639030691494612470018941533882930639162741615971906370921128656571037094191725398750010216419555586976576656469471524314011955606473860959820675277876924824660802469901046802517204520079341896850487772240313111940749340883814188636958728299401779539774327090478615044951447931699373752853372286370063621985046121030680207846296988073107709028170551030470881001753453626047522977866445068422442097726159379703120756684717700767545426485657543484943803456186452516491349667175985596651486990421483856162331517527422554429212692081515875156566953867242342017309456578845969611451036398639971750634247937586480396046106790986741351759275971689390057141596176918931094914151273802252980861456981493840237065262314387879550519166739978539149986149688695388135351251087510141967152393148882581410669613384331846426980696836279689944115553859184897914843697822838856364530453804713098223661990780150518010223505711880183611285024887766721187028119154925109725957585913014563769549031356142704836294740498230919415641169558090829360280150827600274933156878676039233360014778425331877492898526714821397303216682129800233633114461518101105695701377225352284980074265414081327603387274073718144009605699476677214494749915694208973018161323432379856020772936964988232804546777923513286137392808554826433027333243185385564893649667182958865100779696835797482054577448016201225113812993682076591711903644016532710919946653393532406242327759615362273921224497262776607620105739518641069420388846510506632652522626098949363364566438569253243406633006254437613636607710602144690642990688906277918607124341802066689537320915555212479686841664658060011318305028751577287395917009132929331650780179946059657324891267395501965427679727456589368462134029018377289712034001790143223728648092842808919734248650496019522199063110374861592856459641278425155511153532183859955496432218531479381673555450268704450842723232970089415416215477764521974857620640686561258408608693678917292569244013865555069435172779821922273288379214308865594438042117444334326259905887742323056015511675104324712311347715807223345636581988351939964615810394662943940353082237341866777492664339765648876576979992927621857890975857505195602901370859477265775389502123275980985020522783812114844186717695315294867007977561498475627221358511608082506480489966159960005238109718554014558522197339829025713373469951938971450780129658723409920642066908284323864069491504144354278736277304424464942409399599228654078417150415656114545564918655001853924152957704892827606818760371598520342963124997934841798085989998364283943887633107180797550565922174055873099786095140624155587477942050619175010377232907678085492487275142423359850591991574618535582711368584452940139246834492192634397702027304378495935633933527335070282855248861843776565959571916700975102895118467410866924073730405539465978527002824646393630732000199488198525746568724604524057707727012367272612253413645986593315587128876169247391450475509912827996413262036698788720991813754094680303496609556979141856375388503158832939364211252569972860199887124056647120099904953153393903882405301160510434043617208519782903185509578473406179466911344854281117704589102298258469445760773475874073804594371558818634752450718819455211555291209597770167353769063616767697638418466472807402028508349696599292360481944247920347109480759793037695730217662012523854043596251378059800893767864608918660784147805847492103210305600675402264616909194860636776824123082585221233126116001010632937169440108659634730775842500240795387122798554807259810880518123857250121270290116047341490764013674337942790441856262790617372480411265061882728187097779251848830514234438151055671368700573579538644355164478750052017831036623912500174194004751690018768107799617527056754173156118466652951752187601405508966781856061662986293136501260286478738054350430593559834584108628163286020704145110651668625663834453745926869781725042398122522063005057936508228376269053001781011191430594620820507293749709943286137002546985551752105273736733820654245381503086288678430402064850403677402579511268441604455026570296755999651929697164539420079431009504338127810001768360139363077703605037927814131960325487938181637224967027930612015731887060734566557304551413672173110183801307521846767605824009759441233659721963153533586373996970212830052610080533878158285289501358075201579501852120127549443019778339148254861953670652396006893124713303168065103287648555152140743471027283040518964956070708473155473176242003179583164983633163469478063193560169446895010527375270781267221684793818734615901249714847324419278177534417995140994692100914050875806602732659297735852846319735654231000672406162732797153328517035765228427470062595122252824974241975890336612405382697910806512639394370140749645420993906472990036552617534653683545329517314616142280419045673072984041376554376879154980723784973661264569748580086668276662271720858365452083124530330338577795153412396180144950531266829701777331521406899389810331058735503983331725294437115960634954628139758462649197352821273012166017671974266804913655077796410287751695418657547328145298893121789459460306494932113959486626217163765468410165648844527329660631665823658337433452333629586896106728512724981430285967351632186933030585343727305245991048607590789664443114659592959145691331742454687887222320604799752045076597733987610809083067397787461300935488393536228316585689044152634504756490505149260615115106247631301159334938212410463189575245710890822303773280821560798117700037771557172005363255049419093532492256020398890398768160397570425925945955212606109007736355261700814971635271025218539604683186508293972537608755242344414182103227770325404068767976408077955474608380448788470857569356656782606822363044038035348289193154056483907277454455162771831337066379538749853642315517764023303891713636528789426160810851025263027956775769791106631814880727085687695488128592488696891539141211639373081026547053173051293367761758076823866796119869447710865983746649574834305469466812918301660300848584473083682903545423200574475180173158457764147545365046138453995864804924220728378618676590847766722543494448441831703738336792015845724069367471942031561852546120752836511806497265205002953786506386981521025304649684585368661089985212413052711957542247296478990338606034290318884611164304132190970616834866430121266232982829814749699600139252547362080265666585918994170713021590453356842770264017074445116011727067992237478280092422349571956917424790954479571279060113424918140866508820864604623399529545564745294140754470222735462744305986977679009925126784345785557750283885217664768090405271876111869122395626032191334943917083070363594436744119994429723946075746538642297824187470101091882094100545563895181523732756601406599580987605756970127733337826495887112188190390566782126369378023659432862664832611006205444990034108525458691584337658638044376698818666588855390881915548693909911864072095969162717988796250151000475874353134309993982143492025404748768960610019526049355198268726581357251483264018143299579062491197598271209934483051817119146439048859542243169929629129781889280667834346054646990875936180456691208925855299712290974620121905194386150595741441077283448321868625015693748833981201009890851832691849890228069491589721382782597418476921879624780116914231676982836797718037837517553010041022026140768547193875422496907172642153072597190845426593851982349986054469837535217279393828287042134432554318487178754749666839476962520199495817854543781107950244897696698660155242869964051344392476183005977503034149433771308744728807671094777769807717228046415397015640278125453893618374488687212746727455094910892698845253099367599659836056748461108893802185913710675705591309648309431225007952534901788269306078008128116499568776649695972734760012341666161998096348843945793678589157358008752850717556121694381065144187527442378170239439667168070204933602323185139810991645663124071084149904267746771451144251101102660974294406252535332199461318939821416381609492573823780626955491863638211135459392557498552550152845370482404201055250970042357832106608003609706963044664044264213660934295890799910705078604235351636717826640518635092322725333041422552181951462134982897513358743656385325199760759926107816793300262889842213613972515492462718891896306863674339684127134314560149666889840364311790838453522004043030499551384172034460372522511255301280447067126815633498813628105714260853775105318757843444990478789686698161586354829493561036912172416650653467707755606025902143538121860741120437981652267934420486853280251123334012785726957234361412381885880710337680712825906427318445058517721098141123874271910668218855524862961816166054892299670197830672637637023957996688338191985761488728968340769412683677775970523866310178168856417189901878781506226499867159272191634291945981356605154353795979563248720031813068115632430179925292449531465649092736569882609516606547184650607237037351247148796624046741024905875611117482942276125678161682721704485271661509319364965559759505521308105725056682293730518402150150242907863293090487239233385852372010153011155584039674859460169542679231352485321617011903068861638840350952722186477696689572658383279407259485786983240874599042114145868475049540671964889507910024358828717608500313035857031790701178205685244295849374450584626873406774854094987587204758469279723365567286370085640818752481751881002676197878030892322663842207799740716706248995022188365954416987849359860762450535300744210172854324137787828011014201836739896395674074921732179692874858529394258119639325562411585654504175109990947780851489751394719260165351020870312544077036098947384168836255172175264603075489068693318594294543209257033899724108219836030037202644877401429028992487903166680709005740026730860082931545638146475738800443163411607561232050078737968017124663589436720122213957793103919309757073512706088989493364873490626401702761712207569845482492442260203238530098664175901618855658628374265701288123507368322152234362315981144273669560952995453805374801816712944466366339423731192306303348786423936224222818047338765578469973347268480768502473152220840480496568569598739859919442807283297522957145783936423112999375550904751305053744071958071117131826508181761914864527230382711739002227876718616426929975332353512635847803462061531329467231439747617160436389967972566287467312953598868613115077817943854200608364260734790117546692808105174073749784766851609991230514126885061386141484234196551636283550230112057371320431633988927286515765116055468203938496813765209229547832368142631691935094654121482550894756957467915268918049124897333086354479617187203028233725069766723993937456315627386345137511229932693300248336840361819791805868047735846871472295269681298093310147567152339937206928803108741315684360520500605915901021656376047743451256354585133008936778281337737244751210404178665700745771156088195958427517564717347946544300714736296491823565654706660715608945003606300261448935633260690945793501869505527091969289307987640460371901715977618429818530338883549713657106483276908826182561779837866486605580807822247951472055024683939679521192704104164903929306613572000431748070570357847929173000751682132316454194824054695562228767357729452896994172205459435906459558156730758986437601385831556703797422966429518849493517922671497753697520032342154697014626847235971543423639840750949179217784719878728792070467198442995058804613164333036267879299928555682769847233452717822671349767303202062052735392169494779905024198267065030582902940850476817430310766048127436703521676856225446052611297976837815362677029599126188735658609602235195665941824546462400452844546957222792933487981847397112380949562608029003436308922268311965897276684374430025702086732092844339784391545749325609344339292335766553374638962110239297078983011069841070469171866359639358123748102063086200275867279056719399364226219126431128807606080794345666039741553247605609254314422022151377876828274421738344105735888497880889398074092450758890057363937566478486760865328524589677821697724231933979655004154262348725900532603102067305033668817592791246931147141740791756048504409479300784935288670878901773610314163567006700784493815261634282018718139617375777577687467938388939022046700306187004658356318261875729179220148049101193794625745049423154153604378489008029626180184304274801368413487578568580980629928989046885381190121115852235304125498361867608611051431081874605893536849182416589332692582706154354996318627994365272545416846013822559918703801351133412443362793538028208504079387963616184586817565390014033282768331589908288889283105406604725488062865968263073658815196062383860657864699642532005050095181007331711776670968777687759947521831652532940207600058793033820305446335375701630245411531170236135007144348953051117300041293171098033916581975304629027961191660888577670738333345868821875532975154702930563100954703098508293363822261068741720222237442995167445146570754788611442022941028822058844470470826638678404210958564296338968806940795057496431066326439120966747408471024180996115313408112953778063295581494860630690716541116067740918866030055977405011100525271168658518791115330850478792161790721291632927123181380660069997453794919019521026580325476110864489613082444613054278568238813542062546216475564964270599712727552936539992266232401384455093047544875212936406669158539277975280448097226364860308577063147319853328758206781640811078038338973503350441637254266315347616814323976698360474689014776118517113889224866324562335894348387227115609609203972864746193099251813619272384825115515889980149264055367459544093916106272760943179034789212909593755337098637312240801799009634562280852897030294364393172188822044138979317170912502812883350057512450067882007620392440267110741104779802465110049811521636903460345829628920647377268237047172825001018855709425142082941945287035590930663803758354313529084531546805932948704491936896756279970684680747747962602657872671155377567064522962390471409489351029171464154886074495178364790394654210253887982173789317880579543737359463032827197166523006038869952581676034511017513801275701027290193500906951571157234698590527898448640274364330471355162878180395542901278807062455184851767128924227256963263293756306742507792998281080715256961249223266871580174466536454256215768506535697454670135088199770501858638598047789746318019763521073403454667905482568238973673963157043860338855164836792295771157659587666126910305707425164601111750027340088604530714458115019103532880451856611885979159252056810677684477535601881973695433380350256754232356445847388995432474149974504841946300274526895472783936513246199635401943907797498496307392712881152324847112080863984453185356707314344378018096030332314237321236097323499025077291921277789285335623366932089700992994093444203925096962640857948063507154818720950755390258468040432430488843244291942473079178284304419459809467613228302293400470346352056990407337706348642309328089414967669806376097473945529225328038834442886415457517730745236410804032943979166082326191748172239409875739464778334450343331701781781599593266907776621807267873748634153994793718645800766933550156039583566894843942951266206873542398290267948998425420754466366197349850047175178863433061947284369049927204050262568362564081867492191419232276224653748993875982333822827158495979719604630106248241968647751388971620697105807950952597821083709900506270392159854183857025582246237005978600957272937865394290428781544294923601593700602016802072044658848799206804774583528155176732830323850276119634259886368740722542178162608825737344713255161397871350372028697797675167998512145437310775147998734644814071306583149496657062543752255856189329093710316296796826492822446909170859574969914729771929803839203474706820203384124851260977574876061744932097397404578691885479573202445376562672994094210823892845740843492803167860270075555598711954793164878992223581364291261667779496054562352809142173169495637571206952846940230703315756366734750926937685538931317664867669047277737229912811214165961736711724337351847110519575450916020756362910227903169942472183700354710811629514403124585794528680314116952729101893967999110609055943568771906151835991121877554484733956908430742617218389254240348454755588049328812206683117186621086895517621179859123755334557207388298131850882121272494651661849105900943058054010759666094752147413412019142799730914238174646125132201433042926107176349266045535890349274853083652023524667290119827784207047681456332750533653902929154729155252354519180825482889326415218175866964327843292615075354603706486329661895144817287081207465584421281002401052393294610708459158212706046988504870950267993711668428501947127561904354365490505627067787092116802043399530166665099607803421414474917441209374508219345507818083843561167153348635489036509237951155977358965539911797287125336621021814085411058434065874843471638376348251364821316252001124268185088158555455321301271938509045076365050034620762118713900399670142193934022767115947140639724170408550933089122971239653107402777331973667355864186719743681072662171419235588306048867026840761512906506489917045991387410702867787106375722128382453307205867239187129089532455319610283975253928593032390238231962852824093187251901432016572958068460507282950382056396411352408570477475912599429986620696363709175286081441098351660302805175888046829531937956127796724381248054387698969363219331496058657512084923140051128049208594243217470621173827640736549427349561337009841676367782152381362063205460638072201289860880607330849654016718956640326059694670647462828333565054206987000127791068743798115738209906552739686636880988851183011575306975423864875922667776027272048490906799583175537299868561032836712076853117152829261887553988849362430615080081385700996100451707411087406816366768227930080851244298870281560347484655688088510314538640443944940981690904877291536731814411540801040826974118052441784277729721102405747966614487387161369888423300086204327802887692545862242628726556396437703222680946176908586482527251559910428193264571753727851594071369351461297658084813623632863691457527031596799797173633940563987122827711054525518026287313102404648251948642463220941610410099380591502821689841601587151070970058883148795075966281055974342192402403397672311715458413716249973325193532572398653809186468820964899796256358453671995872674525035929974414937190666869728595359747637599315865301153286701096357577798237532948287402385866920463359892921661457506999117879569776610853584634537818615434754166072540905982348398818639753872734766156323347055227319904020983279450534319521808780669739633851877181082376655768118377776776009852843944483037895976625825918392307369953707105291470895470974185059378629128678572357881210824914259452020675817787637776091547893847243570638286050957565212962364493076206057625441384754180958199684150259605547360578284310771278328044043511823262106247601955834534861482324895874062334756125501298773559310252339397486606456657320650515176489381271727903977417450032103255302200119236783223623406471561248892718849061066782087861571700530149407980664755650334811545486079616118688874073950834596818395275176651439174796834236250957533818563675160865377431343082957669012161454613991760211530824839665679248570709288581191097724138960260743096380879367966758052189083928614680484563286772705941111784397403501556685304434338166008989703526254534548538749782628742154640962104910055181277699322677871060267246761484822842085428780990419396151358809141461652300483081461194375130256734992229387173971086502337350267574671275005195157531641035273542293225837365195343208813728350212882418845475989862171396535014220588774394777428451434952887277272532918709023149552392023962773067942236203156130920288062681675259856892126583263258878315212498445491965841817067126982014036803475374510417363376090636241132727603983114529106877770083232974149555986713072007072262924382147173124220491139559546163152156806589248483227721643454102597066003193891030242921440588237068299000155183977559384439940092609049009716128460641438618168514160643181824754392622162337049648148865056652671964398299021940900203792719012217949687812830010038572494985387517874364971323241802277687487257251462081835130630521171939467355725044601877000904617676967661378096401220908465982805463968457097568142820134937353124053330102192647693841864798445368711205567182680201781332011063561141767917093558158097515962710840629095805244431822977970271328934103016179350042451659042997870020256060888964006675271811991667282506883189070150245483905035334368358270505627992931092958063597461796507085876424439901373224523753221140336835266542905751958876097028841004539533201572544666390718913255386897870458211448651854377400276766993157568098896118816830208810529276972617150831341393753607574208141426341283546752029240327185110824379583645141666261650245945693955773676895823896121059771625882938864660501732536330121438595368009266165370683523274348510100208379806168608036332650234361703922941473782659090517233144590844919894846248436969231942593908480230863446802092341580760954220828214603163550657824575489760578308651153556877630876270634934486417041327843588243441746280066241955134873064639568838231639220403263158917286970006395053495581668082560482192619834039589467242575895915185705906820209741685459477401491754184523813844608040600069383213432119962319006770813964901551888920303000536702728010795514907472801331168485940637877994290567472652801716144640200360149880838748406994708285103027245529006577718050303890303899483771436612664650197296044094813053774065346470777744093905106047365834540987758627119422821009524064940422680785978147262591264925830370452210239515106077981053245918788870069647845876929402191727492433970981220277833366022333760193298984909790005102441306841237583392347218406560813679697501913249934041901773436082743378880308373259670482017755872921488942006889286610472550995648982373673213945831406476316271356831557479163405210924668276613216528292865987618489832352998286201686447843095572208732317049760814557399929627909875678729108918762565787612801266214337377616994302571193162461259123443865159751043726565518002703326630052365608666178872615362950223245557213699412468741069555997503514980478547745586178007876652792557751173412017712835567746925265915772337860996080088915491889124183912586306204965337616858455241473825890158044137916260466522080705988226000240993179474234497556899785072389852836225967520875017451768994147210653049337725598421484222757956667876973617656065051618136926508820450568449784773809398749501571732062192764775852884963650727754315063375358461454596887399179328922878715706757250750922942385757164793586574204803159670617368713233113644837112699646534886107333186690238695174443369090895779170233939489363831695103239811133560130296531709949352537428848713366091461824448908819204794572761809756264775052603641687975430213121743003462207494531900448454824180676087204156577161756701950852942344903090567847170516102683335204575737119370744224471477902514122666830451720922730537585575274182845939034895348550990916443820976437768758155684629984153789184975871777886873814468549892323830352897788442582188358925970758896291685715218680272397226734044307196685830563100924870378876359106432413295613583508884657816341908017627711202895283067888759855715498605846818927969559342581265645428338508221127253120985457020257760872213828073730749709571741753516738244687457937311982481909196026455794032368595583896486719509179638533693882500071188734229632506994534421333524925924953867353980063604012554364728398442930853635090518015322212819801485102124588911711298327888909999937633904616849208281262597728545502402881078439034842440403509863657137407814756874189739722670546257311965399248960750811822793090398714664867225855132337184412374256570703091021803134810423594711986444904734034846590153305881320463497428800542777951672333204321022775178888144054888173212542497071573353525379289828550316264241075868420839294949189883295379540358680842724375208340483431728244845518744919113423152596379155580738425550879680211562124406803273798768692122163584181057229145853400300747217248622667533711122285260740505536741461710829799600399067469365908420098036353954598518605003250432991837717364573038626209268838378010096049882400368244312057281935994467405979103441034184025511513818961512950112629426893913932757072582203859150730570813088851109338867946002466613400343677288898694751343262949223980699247728909001831119478328548350992541864884790801566415408126300590005810758876456433578944996290397906130215142309058745676248476591603273198643935959817119354640759113524871557283397527113107081514789625634097031000706292097329645017226944675106334050658151068926677888376253664003816678589243270239536400598633611630789332255454456720002610268607421797844939954904089305330162200781414570337932397891668703016385620692803129424721147236585679449089773443498851509376589902055382925545796538762004329828632676801066713070717935231957337262257713505924751813104183060017494340437955561725868349281117794720406576717499067314126523148864680074536477603258129637169510246999182539573581566056805945110387139789885334332068784529521543398730311608319716472709561100149104564887516879898000826575835190917018364634975486382748833219972416201678134641717281233731424644401507951607481928507511208128139058228358115433157309899045177332857234926379601226605253084801008202678104840828974854221326506150192061647802381084092886073840790387075959953267836756819635020091676874313310989294086977966011138328246617522663768189407849156360989805217363427246792104862897327830567752008732864359598322888698482395040942410897278711267567414604255061330554271869088960092452520364304088349570969792671317600202875025921593142941261805698337417725791962232897079983518707285796667179740463103643002201002187537866804339478816419695479581370723667127836263291988751249031033253766164182159884435611316111236065146041905077467722253333715450022424316495501036616285693609493444360911200435122295704126646471879556780508357084880715638534013014674642511858623929666461770619418911555636777830457896491756003652233524537663328431978288053365080059836957900727912246693022055771363450824995911326241724418081075959210957137695089772258677669683112357682139026076286306249856864204147599787013972293419473549406745224116799975986720006193649271206468860067507693808363777763684656034041719144014643197899720540215982388518473849800038804227550765039458407050347668802450591531465183176601470915372423346469572303439933043114848273821458772760491833842330185196838441164364395590261457508873911421435204940736054958177687438267778290016384361900344335174231373536220983732181767191679066266193274862244661428714366969504201849981136797148647654665996071081226966624128044556642756525090727880116198251341606818218715597100527170509821892006443032849553210117275075516315881780679187827837209003991362680264326317846152400817182250750603686625645725196024379546274152440329794295581468939978882660173334825334473247522127925565634852371756204657493331242462776022467221563872667857361143948152849419427253531334092000701250179627245063218331822701071500463802810748427595626564761237531878044695286312356107370454701474979451297336966672688646575916291952027140213761517899867393978185219899088779281413554533792158838558429305677137125235169469533379843089029562723980352334638759715261380480053056364990697352207356011188216646934617155792172479257443762477853328411424110614663515983373191686066192236769207875433786033396542340163315836019250733358016624387771606105092958139599285886916473978311312444674374359836936675038460576546070413284470961026310168577939435382002325123394216125825544804305635977608561768953750856846328655096911685879845183281216654976727876721984410312564433427529261009402081508206168775245243590134103928302305264917311307263566556717525148970345351034354424805998058136134021212001480914878839303459823442067150869621728511674569834707301822247668357105459265574300987873012962999710876086576052802591286813366610258139762341704567367997822056630916323082982013087283152695319495777804666012471346679997560164937099933694127154780099395923685927978774709653471412748750788150851760571489697552512423783734018198101955823886626824239688133014879210572338199422082676464670552407623845825012770719772571418681179390636309752763093964513343424784431376522899169517865831219718492452678123077079179072615243366050219208143504310299101338540624108087456647113627529389297072892241121211158797721452678603722161370453265135447035007821870608441116089569781194093340787424729063873178487131571316844516553951532714697206454436474642873105674048545207989692655953292289123301785369289951499186668055276134695097929370528864376151897224628711261303185994992897563031679792993672922864055816159608283311381486061551682983079787333648796768233933804702764990831560144186278164268425932977815746251180804389945357638841534164384597837475574988555152789148061939951949677027949538721483726026194926141102307918867035521843999169019613967544738355734459411226164377068225521724014062203567568571136136816765464586902371510027296609588143872342073191651192889646677916426018471620147060118416972000413998535645338239813091734510453978830474656674522176718750888485589631569157368942086959601656160576029908330328101051713305033576073225862619618606197017556765795204564079969573363329217911953345209016608289840800164560850958508475181974989287362338927548298673614122803962390549006362437208015637016804816543591801213147535810595076564955316137022962194252989526922638310250287235027743566401649456230766791652309840979436476340022384584844359995034011084111966746805773027987792908704870645390033674441872844115744883568752265112227893561566547446723650906912758405456257695243942073735750341409647647338344384014704497783052599754540179081374089437488975549506177698103377217814002093980958361587176836289459323164650090245637500489926637241897031630615674158439471207548412484184702940091748413473700968328178880751991930036881094240019350063567935114799700143893395805739717224947809116884369988679196700946727644199158437058914210988543467138010452730588638715550060369655923246721428757741931760153867388952241276658588011668882295285311585318718957178768660841557107861129766335818670495407293305119777588076021502334179251272512613878948627853217288496423653392667876262795327389802400525155205285763012250257105043043104946917514050530612287184668063205254381163269377819256451479988004502716364821791515921366914615608626572492222100443622878115214617571325195071425968846830441992506936762995246866619163798424926045245327175792928417165660551460201091068426158841558485162707094659703994775474230478129327239887358425833154351390205659914288965910515071512446545570419109720722892007429966702317849722671224260868813719491897677134554092840420328044206337124141415804303579063281065245125493807025711275272074159537732247245532547936437673653431615639927135348195123302053921967787320062367458302886868125942484624795212738178251244093913990876550501268552364077802062407213770830726195803500017700342316711450070223449273321260795981924828399143855314332261774295688371631338393677346664226241533538018413623498828608643630213702181974303115090923972704382567486525363250623846649403931581230779420167880077003539166273728708502686590226967382279549624754262138134922940632154954187098046348062123348458494295143681693360585317052111720394934094462255346630344394653142049209040381522699467342598778864861055880155766730872441655514710659771241923078012676641220099929881141676360748923751135193993130587960464414350262958168751725591403780242771156972337291610815983369758974536772545022292091123694653925743292050078069790537621171320300717287174600242062186997361640828222930671960951034793183360315051414297734394093659445528441745598476664193498107043420593672880426485623009098565716259434773112750163591171115089478335517187396969441161710368957755807754938352660994705480926598034992666129015921255306567085021154260396623175590108446029000992719324465024374923674331087533297032735651920816061654005629249401301521125684172049910904220725840692991110766061843527878923905984466219476408600816706983770592029924255681507398295065926360899851641915401060296243073628121797956994738984141626064233496708528443351728099272653992219604631993447496187350704526529995978019447812659119106641630582343139146686042385055641852294065314915638550879195483267767610378471604356358244427705488557254792561016032194524781503925688870577968470552487326310713244092454603315120625676381291091166308674328089932783754295988462306807342317457004610126117682827478811265562046023437771167913762249854489102526878945515709469162405847741113935581134559312019320452516098127310392865044772653119340273552607592087403966688071445548360816674251891838561488434379765728447860397231179948099516345862977660622938468503379508596689083153516656076016085160055677890418829992335692461689533487487978157801580218209334922032598923832986710494183139533953363791254644868104218871654113596543855665847994504301946461092935834934012939286496420043077593465140661886294100229800232819102723217881034537173922682976683506447146080391624142692969650898108084085343399256551500847960104635434883631407430918618119136069372772910113426261161444898494449070234459862510144279652874158049872842562941339174941353835391283995924218710393149045987948796581947335233374487036396769437694958720424649823700993420591068846790446290596006358882153546818537715721465019478720192256004173705887547894432182860655680438514420295420651683060443986117397940638187725044060311613953331237653841745532118617342456527937332137326911608813444427187762388983286920036631696899673058275892851728485081624472440907018833889902865102617145481983416000227802173819720743002410861280128544662418835055700738515874996695019745937436706303085764418735814672697604263475927101884633274532197831777672124435560110624568802173963423035339219047945683198701345449385780713281040812978550760934791276602864353889106276647074136816793663175787941041317503437101461265552962557527316114951506565816385937075433044981137515942298994325179087578277283248488989242024543163011646704128511551336848652801929084656532470328999676729820297945965832788062416549613638188312526925681448927065099210199816486870251034666438961035999094388649421073495161859435920438640739102076366314532194715639574111946334847074525140069997956255754834059227832202652102808044344644427456778142231876460361112381983819491799708056023342293803403275523881760330955418043987487066649619160460158540735692378307219650125684061403435700127402014399534857897507650585723891990520269751120508323205265444172990434848471213144799432036143133508394654860856322976120902230988726536710000806736428358562424217645781896296750545752128676448023539379638905784214991827391272100351794131329883391423881070708179442486522251589293918763838899111092542446991017990992910811910239387452577596937399568753102952594798466099637228763710025802790361844879565584321228523004675167882975061392296457188905915233090457708420668270994468944647172839339748191854413345094656372894266241367650756154221464796240336794895428212509202672812470723838139043011990582946962507710275289363332235171809331177086573396671617099392515464785028428392859243794866945952988598966212935747633274079985912671484634028717149204950019164058860661601541462281446972206447884590844968307598935676917078158833957897179019605626165900263205044973791085588140076457004977647426136145010868006830497112998103013960209860876516662890038962443902106862301620158528379556146533951006410762670366002554289143868434428630226549960660847476234168763729724205899033895244691303628574789124818903413397207611416270888107905743076875040034672102287762003070825151725878254153776431580670851934492233968926303210530199882031462271821014323548286616708240879782288662173302732407416139941286109331147646441921935378896010887139518083638455445658370171157692602507766947413361443867205781560936323802271522030771660235243099706782609892486205729305923748497220844730694001186243034746249958954774126688829573985420047725624013041353340191722739030926854890745825455757039191126339925371815052068009651309650796343026080749327308357240090339133584137201719348341409334111123568687770083344080296309064288909882950366394351811086981079439007449299715421380955358497370355028725213962215562459325973671563950112548542519716357263822046017702653654335854360283250438973512263540857377803132375403317568160686418143548849617571977647518277934688917352632596087009742254083706574750902308955951368896929924513486528035183343146097861360083645855440998066606310524852850138135720888408165871379738146107339464898693150279117690534689997768000912089584194281012012363172850880912827874757218711685450110736272528906439738980161096249463148769588117566375919780143293654667677700353071800212705770781056835502156770420302291400773685158813272509133271616371244063009781348326818129586083874175697828807504694121720598592968717011193300323678057677759430817477930296682214404399733497547983553658197273582807084727658852071862250877811756803092667157571340264331461907121091173153088876869433819186237529731326346066579887815691096835597942222119619496111532260910568092007193119092147937056272444506154919917705049506984005933263921046751355029778310147464993069296554073545314196710347896886816045497027697396201990880301421045402025216928561234582533796985479064776265433193450829141774887905044998243612876840138480312753898894150271539756168941009571132025199115046672027236210639769571936861448935844689861508740242192239773068155519376847168141285060147226460491573716268556311229665478618041546183450861314981486340363767190163186856491297609580295291734626266872972272078196412714287925745069153854815532337269819425042082887247381192162477071016586388581805827664623122642110952407277873376527910459397111200094519660837839913917545407450454133844568325446421463546986965594431708305086953354396409449382572638704622890457849006299712314805634643776550598337051886926818133702801999094188917485455013222104033444298314719933356015287678338854075385960439873851957780865031077871049728921304646107194867208046115665879469123377576194735165388645810147738754427080909333133939237427369048755438280961964374587748481869376609873714082639548882769678507406083324547829693675096010935195508673089496091795259857911722036062188116245917609144298611567358515024016804848089617298605270657626715167967136856569185764459547988436574455505897825365031386631129354241450435900492030728111899143533226979578268158114747119676378817506207774850771346356755185009218185079451112044989821073503142521471454090352724726034064962956469230121704601098340607549216239862251396430979742029925243097415478981053153922564329562624494567703757230193103894420607744874459009946121499785708772392622684823300022347340721043493174383788562832798417361690108088171015245857923558482081566445916255197192586255976971647761198570212570518756985437673298224397963627808395213314922063842259935239393929929957096849978028872799829781303868263068499382965354780101524281328218255315268436275719654476640272148885452764963282477978104557565468840054087098215560877858840585900746604950130200498552379924993819515835623362668488286623443048246171788927268016885349728666771612254882021336074618671332182727011041219826143912925953869040629032432624301612949046016075520782464034680266197218934783664624509415126905931212860169617930702351018725541219882487963165229487191047527549608316356339457358768553016467230826977034058178093768283325082886327203405754225353278956218743356763160105882764897215996828030236480854690070318100671316425129427879162115708790964677449136318518320595818504419224941624999910838353483839353805769356047951743720045766230383613041514496877920483692882948150274045796866566008818613435824783230468535997879949012286742095837714501558648945849822709285452327872179660859658656219092049028480879164497715030402705131154413436024106583569373588354449662465762147310659378026577927292442311879570983559020128894929935893101258984121301983960487511629441686536958586028076096475600014334854350252007563485375791593481926525091131480180613048358729631293083422576073911986843205726748585902708024621994983932234906422910867264776217443342166389531757593235574866561155831453687512580899501770920647399261584781408913756695646038897227658953201533707615143279878558685406007610621069343688793487068086652369225917524351545378193716423535909584976083840546432294906331687850674544434792860304365223649576392603169064578523413999521564820749911844217170293781559670527502292081296205224886156472443774094487408582291931596813666942393244448160144679056952002580111359307325999819738402839751386245538607006588069321302147962798646781417631551981235476947904015289606444620373595539981634985212785532277544525634314879941931660355431062995494759747820215343399193821559049075060199896482216726723808869597296873940824256486219784682210566803111493184893049308792755138572284011071207302552563643386815582475686356148653679471159193458746149788111340946518635797025920837999798949265326272519340010123759775805225477444529405922886996759778313833924240263070382574396491470025127252933960247606758846884433843862458105190886845181453477709404593981350663213753818314585337905398803116636112198458394898981546571616111543519175116409007842454433968360682554948214255163146096956575755618112766351436179876450320185841387864933836912175044778325307071587691685318731340572354099912046016273847517020717053682907099914433817518565774405126919674624172738898763251764714549002195268684559787193007252735832297532222237123126622562278592428823560552492545328435148382607869851293608519315893523999428318819062961798947899759596841111396393888325101026544964533526819508287114658221151478311724275181462558282595072503861896158819847342125642725770194353804099926819353077492335708590332175288015063071662591508018405019708163794827260527921888550167845543379838740027090327017738063526977228739190471149117175246913815234824584474167270794943669202603915448902639426188309684871567568183437514837458058533351368169125771746741959391426414700432372974534545441708205036227850201012353108760739176454895709464281050730524442464894831279979840142212054544964267781958605987999891488375164426813388750456492644856677665889388499258779312087984835616440995645053966428333491409851070673399896224169929225053200397282338369174493339525475377814177638208983998887198021644243330859586313057438916132852970977260145739664205221416395822930235480283666981326626982143658421740637020402643959385515231093602959967483247956087623206391311839280449669986107914119486663250361776238172921524817071778360025960280087555099613910330325053635535123430540112673452811654706107742265834330804474984617413640243743322145682117346146632098926306892569899431252209298266618103866489457208013661948665066900654953050578333249325050131977406546611714846704043907528070892333063663172796420179197209848603539950064815832564972125354714853750622095089455997653039669861810203987513765789675688995991734112284213930766958548368257659796746708127545311033299642381852124560712698181661646317351322200651674733768433701391368832092811512144230045370623816871097315192529218798392727685190675498114283427573887652896606878208238001841429703882519880139400178944964242534629405255390397947984882196079530900571470583202069422879935566402274728513470676861270133995055324480700888247025506711989272294277211965002254691096777302437522162402660364541416612604391849348905618077271789030316008610389723685365931342770160933291704567632738013434315861103234154220648383496898745793050012221673960634607345568895199908682609515105111898912335339577512215975956606299988336253297797691238792405161855106669995114587519490685080312941570413492393124531734985123089278392362316251531510738569507152964777671124167469980885867924248663482401542089818972124841615642461709960091768606754291604557291278074545008646331088722212314669803555844396784705516980533452634330392223009608627151636901492773988115405638421689539350991654561674361785660233986680795459571967207100300813212002556725741645337118236858584572689376760629791953263568480001387717349637628781654131882305260774496476100772442166694614608560124882450401053460569182926661301679337266119703951411396166581515950197276673055494846381527009652563307322832042412638104324869000281765973560454957719719410189926531246047234413647052883152993028555483421649736983641870696147672242734798292275174886531576010116443797664856167219483659612387529828062895157384291860418471431179007347464480645061237051166935919316294619436341428470502807441092418330417370477423361262327336187903830592415705911061106582733472793859333705100905254886567335914809546954897725366623919677496753686284067592285860056962079746779574025962397501205210372579324748071540697986633003989454646135938429436291387227003287698729057231678271422808254065966903225531783456749629398137737787699085023265650844140504459400072260570445517398492601482098178570515309056293622507686555474326867808710190639389651873839262638467231470477791890680578016308516255326425324554555782612982327636144365435355638751073206947825957480927761669953979000852564364471588133357672256921962989851707073701755020341898802421946619630070506847979807382121169646915564242089526351340461988634134768270566275611672831626128955317297266987813827145250998944561843296006787629375777097226314518596757252979015021943127516693720097825257252812979776612830868234569048184983814148579222558927903093316077199413625888921533876606386729352867061179411712872628111396549612561576061316514454506914553475457248753525771021647119102450046191291092488709146329894515024543140922148530613563134065577410890939414450310097998998320264348116902369635966090286786011330550248612422017411950563193600888283995533185519818691372412649359128142418718554862900355469567038831694309700376846680547247904791935322888429093360040073371959669088230014096263937821184649376853768665747892039963747526201023175912768660014847592256991203201972592598733089275716693402010583344882188984261064635457066507692710104129708899151094455605752227705407645367148889094221652024282381520378930036651432283850053138650566854164594889945129284264637236068248564101377043999794021766033845026691268017529091599328873106787420854691181698928775882079542817593599030298678237929411464273313576190325170131998205851803697341901077776232806126117602581461994343568987012621422548700070752743298652745941447106486338868497979706014021858297570559087718711056605571720730082556522693117849016711123450899499433119807980253922857718403829787010261644208497971832649502891904530310032184732151843194002218269454414656225182930765075611827905358749566003362385925121910142441499992767348759888422054469363150284864600037988013046713031182500344830268315630696947076330748286512646003474151017595023365530695551919276601163316854458779587628279042016528420741564379749394771225600693371354386340535399375690799271953084169774984746944989471187020330567492122906220681848315418851771311408521040091106787783807424188848987084503017943753496918994021655097918610071920951555753178900689211876791552084748858291793599955718646339721133004303466994476835831417972435325922806818968429876296693579431146391727252279340729831099536290239300960265717710915805553974425261157791649055942812832485787182912726285381550796851303266223580341128303291617606372327963765671570410982432454980795638034812982174255731502911787028617207031584679224386582813412942584559730473603064873412935928220119077244175437576083894544452216838886841564463022932014108082309220154894407023190545416045553400271489019100538859360545772396975268153138258633509956947118575177603970027553822475325447324983894360361765617061189694737243787679066828115419253838998943651855214151134608396153132436167356263525978162332793885648591046328967144511372478047878550882067427450270366999954788336353298431934027976838480778890231971094398808366229525357421106932795189507732632829288757637904793853409798883267377031412749355663243216713270848169572281517812594504391346418318692028015013604237723932048209539251205173659536157094880497632690203898373371617634404931848211225342046926318684786651453447092214956113250062066820430299304762174314823910287332325530791036663723343767022997989639349519470680549335636073460869238788915604836175439721352946042106003290806255281491726535974174847248445087763543897913394291261626359951101030335941568688925032720237227091978255789199866098634289744794227018663707935432291940634637734366337261865910728276662751968275612805818792474502859015918215056708250275341426715488158668821612350499840751816474288583594085772410106784407662966672681779506065235651522003894075963673999271782540624439562947729891857863091795112528625456887150476656146088026103470246743226103755581228463398778708579027315649427251296427921966699578599524356004392249320475452369234138554603819278958213523635707676539088220941807241233960922435303413876822342967618557242555835347032089099307523600886862655187798362237320674785515193029170497419478972528108362036856847714160043843811216443174321410602265301964429916308897036088956718721746651133667700796257869063552534895898410606744274635679609377850017755638023160664788793336205029581772456542769251995521476169449907725341254871638163520540895178068832329722957505643422472578073625163853133324065879051237209015615739626995408221746288876912746128880047784366568364367224173603430847731924599894240477302952743183462208546250270198173347021223697467156640162769397807427777537502804743055221876780428853940533889243632452471721244607481387638384541969528559565711005092931917425981372204964301855022174664472450928311350110654470843817572512452015402295022903237733883802401428523750203453841677409744458226344735159445784805410227654420113366879102285780545047371160089942982979977300964746674268615541040710219436155928858468046786595265495850062206356406993901982326825094870359308090277140477999080698308130328024339589050108784902523937738589802089821950739609255378614867102341738506807318141601930581781021080096855150796134269079103538257654251103658095438095830620854355405687806292138132973059914142053856128153864313570003146402998862869905064905460455262009461346191254723056107132808937539727123933284899898757989610303246245855114148680474638383772047706653060639969869308330110122612765224124013807139636955500970101822434741710783512876376081107136242222782755810745353456334075378683239251063909081529022557049856754927008907701421664210978322532098962053801822736529111005046583746223065929708148816606952266553199679297757370740215839904846725450400888537011748143255022759277612970506618110102953710633176209023405697967207648497363876616680768045422013780101441781524162129867762787884260769519844334931736976235349792295423589721957327744989090449314949091249764336120364200834917546626672981480447508870546072909991210824123470770532488899747302583688280844209222908143049959001031918201404335435737464683938531563165670438878120313902115348548033213819272329763126805645105332449847685788374374340035179052516295431635010899135970723166298609724809720885335000900984204588253374609036648379806187782927956308334204519561243760946543779922249644955823708917949687707596240653617222671096158809874870449132269519893522500770785367897649103446401837311056835599210375150559945656506456160200086538467294064813472239283733266845903698506946955479566460356155284471329541902174331388710867115147156306001242765825446413948354444925472794991607285661626061636867931665464665539749851448869052264745148349869297958681748800630019876372172451836829933265058099993712588314049627310487742426065913238946659631144337809096020541159236288871938462041270154360150986084549578779444919695827524297265701145531510648046621600077340456998552396721716772988380743642758318451036798273148924224743238406725074555108534170164048803032490263493161543778199245141358434565864171375537665261711360490173278866939272315804734221499683380440293493274867054188264147243243377860796784191427826944385824024514365134990164177455794543872926710563614592001554099824767969773668979559761079741609912165057370972089985580207717541865347973613746115848378569552955953661109711767067124791766252088363743448452155424332932533451781465355840864889008407874488789353609379131169424218393401552413533307374681075941967680142285965903428888693128749201967284413729238804083457493468838989001882754905428705221888862519643715896546654374461822114417694948658281796028857814962660698905294104951161650094545094906695090299332613166562452334771082247431714520477646839934241805750269544875895205464680214199790411164950498844067142624034955952033582235508672851268429800084786162749757475057125138727497683736161434179644432795828080722356629767628214979202735146309714416543000383069818524316012664134858456839189744144381667623066731088374564121607414829176544229271517649217367192548444276891358725338179344351938733794184171362709495825033159659356322270475456743335839764544388764622358797243715955192760815468528111410116925860828004006883214542338091339448030113275026828537894935783405714481985060877769578516871004403212793656515463629754716365436613674608458831247171640399760016012058347742445588139823295797042144238724824646728001037713266295008445049658592484341958036990992217266016978792281877128968630119176023171391627929709953373451131103834046143972332393771737378988369270086410563506701559737190357462123147115362763729483831134520940527452118963603477968082488382138101687698239919287544159784340055385934831617881078815993183784838271335944694640880097802971841808806633302364980244423101309310932243966631173924634292179923603601381741649441583613275242545918650227796652885523437600483007558796619907729638632093558068445828877191811576001809637366484746271944690401854216060527385224852652759768752752864704812249459267762366748710029350405676096821298884748130844421665666878660416723570829389913065211811782260275351815641985568260340961968154343289390918210940494540355445499505590572088536316000046556113617734647422843589587118569963663987602252142933569605234724302062347596869251612945481193854208785551647533825724038590158949229118181313385673571696029057431181439660373492273743144909224890190311885295204556642380782160178751284880197849814179607148910870846511026802093111693188546420749764664760997021880983352592776320253555048484476587524372406423486447277112623450517900455230143393028190716818100440105549733410648532320825018782462434716028364609254979396774202645499897488912519833585459117808824253082389827713930170083633049022302064043278440541111485711532221754582335238787858231182173729827778791476043737933537318136880936347051162929473248545614528117268975474932875469382627817231439483785904866267521361153996752185771924300559599297761103747464881412205573805506903893657785321150464985728429266758907171243462622283703734908361410571282692030877731202298435884639363107989493022658766518435274797789870748949365581480514002832301559732942807103499764280316213365898749210694374831835584387802923373996068119920862640325887292508665216661158480221851046640190045614147444605925532355272571318452912689722581921438683914062756737718968659776484198049218567418174295009486089204324355721819591569625932246838415132036691529309786174633213169146746050487556164734885582659233755651753922912996337483485142041999122361575071277988360005279636964165795718687601075922871969268272472711253151106387251121083749805354842976114624567508626845242465164746519642840734665315422341475137445980767797381158352940213988171207252338637056235180374970446720640573515946004802691181321218620061473044154007348075738208816521220812863573854614502105532649008823978090537350106032329949167062799153369580650693498537198610032609381115865190312682260096317416624639466262920083139736458051795520250366827337450861254716141389552657625486013881411760678616686271541986472454587551451571280332298846804655671291106985769447450787220122668397174517876488759608075997801340167916178223802950844850400436032990806096253806874355391462640695596635146328130883279518525309261067337319253376557879225487469166867911767983790761452795585650033170256302512464357744829207862097319233997510590165466382660680473118836080136916507757138149574293245869686312029133891287970995354618388702244583350831646878096614177739114485733119344668180098525698607482655012392522430316049606418948834291305881738818830229485148725909575378968747534072248250198239279334138059327816711919249678259458261350157557964434234411932268652540207304213408350699218539673109148224026818558152139987502722704912523269781511116620052286153200300719730326977560130549545581118005424380720330637117969895363078722419999519955295844812323202353198432881747459457528096205960275292619746918795269688123139052120459009808409465960759944167742173702462549546875170982222861220449228027500014507136105205984387304831459888919492373357624363200447963704770525142966426724088242874926092263157720370576144783435799515299911886657580529063416476568124741604076875443768803110288601775779180370553137148679631807101734037181288762403446541105675348356425282980340538478058694148811435958958312875835015391054412329509324515554537586683234316661892612756831883929818651666202411187002322833974063169395594607602224135004662466394476183440531955734433728410579190771837201690530395978046939897383197756615646766521030487831286472955546756027254091702020152195581144794586047348126842660821810274971363766720476688041525014761640153579825558305183031229214145700194422910153419452701402723484806619095822876459800541414041270748657971469844310199330309207376311579634102412236959833518562486570051149410238598442590904336019171102364028931394476194492422741565432320045929902690247862233334802114283228977855690730427038133726514197389563685411544821157565112817729416226624431905896965348609037211769843536115338741869891432095003224560493368637308099116331652961405500027631299453424065940182741029461276055547885659919233121563947313646628276524250324653052405196559283672513919079075229633507032421862318497166833954358362190415020613149660146837290379160140920182972882101621981177693057620655225659914810000283907224814929109056978927269863611933118172519544103991351218543006239397164092777074047791085219024507222249573483839668172529912090389374281820452560493076622711348959951891326637250858814064332440218209556906918541861823350717979494758965765732621629501921379617586785326090895063425085802347562805156184922714452165894040426377344145856166196650270279601409684965790357290752296291413973582880558039549354573008480746541030253634710213442809022366578518310098178837583132219557249082471599246201882337925626006782851212223192779741930393940462042231713223746749894267647347656756254186090507072145443742985583750821190052670852898928381802992880725450115337505404997815862032417366710141879791560424860272386983573099565037365745500851172276788439266310192075031498469447029017498768152550844068464702480387764036437882123200478586835168056901414887339825664567838820217444394125981113412482311988219656742032807490840652697454792063995650371233654285419752188092704418905982466870335700862078688925831133476732272857968367965079778209597033667885282301191852230205583956826984185479804741329781421723756244985736899355451807777223563542512534756201475655037969243268013846552423261719507836334583232707495728892356976842885475562494946231897633404274164755044090957717488117510054771328495631479563789398534047412688096166734649470022642498993612553433328207092816663512169027112560110465943400066462384142409872364930764824393951881724000821425285315880378352225057706418288894023937270763793857721807699210389494863271687409696032034330444908377990900408761493766507173020991098683270862756519430037737649085140707796646307561258056572876187572107311199954967723193797666658717655288447804962502016283630431898942903546819252779826434535937602420550488063597626252663464747525858889714652692188359098769296009212257304433543673362576652482432183414740279054292117389606698500136195823700982012776841678403852681019608568493963144153847362827136022428964825059948081889180353130845019691876713609747933693092435658630715488364212657830808088827512451068307697328481402335354951547052222451931995633219925170238323897705047149440381414955663889808449392083107210599703099370429292940520134518093753537085860937222535086401958848958234816561017952263394940779661478296195829081035121075435214920156366219242883850708534693326067650074217538337133745862750861614654327772075907786143262883066396843865485370174169575957742244138734214120522898435482548222864720064088610211969332206578989949771432758292546269609630358688835252515284162711960863064733255215712758271221194519334469703560781432241837912562700448180274929699540022833472908889065578425295403435678863341891059490903711098025763922879904947673435873409702254756126887885465348394355765721075718882060492993154992682691961562250688197440260369160238858704954290741547297577437486848756554626800393230462457318316521563426803941266896791604642341468772458269689957275668543279398832869508929108080583112160324888146146665173505238085240630917275226943500555484838221324100781442558252520894361110011846487856271398819193623533521741038328369350197983854780724818421681400610052063719047022179992823079119325766969125129534612832572486612524462497326303587001051083616548386734863395805843358305969667016590896210076928303131236397573019520393466129454329345639483494452780859393869847914688328745592982058630572652556379959503136084239599766318600090881253423904609620204171238748044660868921975086564793256753209937093210826154214082597850698319795222525805367827128779662601588754246360644039192101449804580855875107177360794607720311573058852741068331562669710492996237299683239281301689588102989937167445360211124960231304351631757834941454068456812826072038786929533716901179215452731484627247560135173495694020406094810750580534602908212176069668836731365347347028089657741906653978608284328384771909141021806241061484990072124619924266993426245221797619231141667269209505615834567575942831891482025519476595146613020579586871003909827760049343963198170881954997462439466232379448779343086001441388673739318455696663571134041932363600446765366957497293558135821540666929034328663529777493590543492864034571437507771977160822829995880949735883795807774665077329264532907890222857607064604739312340804837813455060700418718241948729912259726368128562627038366751924004806695533437186302327849778026000539310486140955430731800756877566276636888224964444290358997067387766916525283113936762928499051585746188732490554629749455616647204946383467167113107096944148287245301605249929102194990378252658138195847313743758730738950042910730047856433900058311552814737222403873364470095410453595327206772642687232937667227845801947553930144109660785901368506876386816037810905497269919315033943117674694415560394772001223730483701600792986058706437833070454381750857640127378470465996238621149098820052721721606731237287973876596771837990842964042425185602069850379973914042287131005665735439970085284318959247225991619632261137144055734866974592517728908760343005252012409338118489104369211215152789294621943563681291102327231220370964149586418241292319059542138392997218674533617336172902359688404458866840810990066718527797035765196940080566302815371843862096469201479135616720725570023991950275232168406828560850465059161142135127976781955800154824049715627875305357609030883783497729720787549235462338532440826957728104632719160163862791390616316178381318976505449592647240001919097248341128615661652903344739540018809038985957157448180211936410418592457386157173334019474194554693653383507082163648520430104560562757052838697731834163916492777764880389373462245488420109341548697673366256405526866473501916279823180633930954762297243999204531709169026077453891195686095807764687886835380810756516401824482714321317803103064684419597783504306723175568126196369514573464835221679700945321440149413652735442675431044034653341824152465762523431112986396086796356621624666713304346078265104667155192879606986858152059008064836236825894473885635806848992730065834314444718458106053228312808142051388241022287880704049056643240315284705367798673044000799426807751506687902077703909889230238708192376092608401036178187539693279327220872427323334416578555888928293862562926330067817610346627142239457851652109584720356872708547906935190930216345345966910893275774394974985450692594805790993310797741843758035085223213480331951840634637363496405970504484558626544890360192350978924569707134173143256569413706159010153254768049012937563514776692500118396373048266813682383419926147130874041721977396142679846990529850642862591462002473362798423450382690252069945679849223037598914914801858031095505090835282563148114255343286210579783462252961368799012190952074793086995480960618306072532886781128845562950589572345252464427821812662875887258487878064632896408419878077854010020084024958029652351248267227038346942614926235652704663796509260299873937046587201337851521658544794508029778795712385605303473944418199345210255503622971314451408411924841934791793814302073316237538173117471742599566768531271629202558062975414138728427253343016322585122346881868837129457164587998879417119302246485570660796420009163490715881450184083979600781524557795434564081528071872448840138287039264211287125016285993810875179386236096632808360871966027188462862768267159953890862282023439782195865625786281561406138900457475529306185943088364278247187157031777507168103853545362319858347560687829335827760290687046493793931049455193970219033400662250833892212426392530032650447358700807580702818249407341983445413331112694868013632212315579794499596320397596766163182957320500721171212423361460269408467625572963697228331122903551499375833258035443075570980856967312392197984650871412480382999669284227972128715777442277742072591539080930425809875635560413814974176017123203637527953435925464772363192330386089533896697910539271430971445790087435273433889520975433655364915328629668208604047042835221973370620075576641302345482334963102367981760326298243957452651210750364629174536054036965968442131611033010602490432819918563267572214469907530075817757601747648086479674324862535871384379117009707666139799065613182856545343982605935319601144836711907888548629378264082648078481185580624715285166085499096696751628937729882129878188185304727191402907597945402074951573097402948796937227822471877285220389982788450856965772731205560799225955419689325035359693918313480339325355189360881955639009241088048965814263225861319407915535088802529507769462832849992448213898256833729105631402149684784132868217126967986516914834879182646560653562680178246591167609637003593841321674611273914903083863310170296637544217087355041883734496136923514117251899356844679253621127651812476005483390701494882365312270190776610522381020672267285247300030322687385636458632619325938951101616519962074974568866745807132535316877258834779949301840207721865011155362181487332551113822128997591462045057041624236129183565503238405425626224422701249331838933909699088041700118724816426863017739942618030275282737602922328230861392634880312789116527304448985577650298385227056757796834908678399335376815895364146312696884370523030254241073421275329092874548613066442717698316669158830365025090754004232031960454784992112132150444956631148718913937859583686800993663209202795429556063472478567237895378415917641279672635199888961056338303311638122004506952163984581005312726697381441984748459360670478597949076359259944887913685037807786120578210118641693992980912228919890819840012216119530076335650598402562348588193539704694283888624467265885031551705716066347868601986483290057944916094087637345969154456597680119172640644821264725430363296404697973764352610026426482789403741191902825551024230532212489625052032760007368059755307989941013413440933341312907016499959080832979710489182611197079895291653130000362543782248328248239734869887795640102898616343885588757358070323750746333350058664120828303502686805831729815913676719133591488417688088005207870066081911616285740287328652763577746742735162119135269851427564506167474188807471765903164835321655775836113716893297440414721660542135050977968518883955004582390088387521607265895783802998293400186279641727912229990886298326667024324473397196535085291428263825485211543991594985897178220969234826779189283893178611635190628924249575114944488773696527653858794978324235348775395177932044244741577283791025038925126645856267883727765970129936632902239358742951423948776243257187174986865273409753118266018611708936917305791292064946399411029137738910797283587566869108597846741769199473766985894244415843916123251206166197065435783922144727145395811927129605395359326832433875986444374465113083417484307348442816487424803500615239879005526111098106151633128981603003682753260294008046923433363343170137722106168715269563885568396241545182571796947573673958822071350191911413796182978164135349901231362999524717584971161785892310829100958586076115518399129591546375477527588814404885249744615438987725088120832884191071419534398721850311267232654816458776114734631028676097582938426196256527437719767204697650476028831669401034098618274681084282070000558183031906645923163191915564012902481486247229425142283817325225121958879159297707489137563726920106856317844502485726897029121309615447483865155543309048247935389806680223494816043429224153247977984383063717103949718932847601405970944145252950684392923157451991165184720120270575239126398402781301808440564577756285660262810749025703609969613235898710193993992582498099579231414616489271612952817429200332870533382448946377853064548843664630516940293404062146382791637907525367544033938218548219140906531679755569987252132766790715869694510305590516323322433157864841443187612404906525848180564877185306702271670658249235799678042267640300570327252900138516066808047851353887993279512408224816087524738078142319122441433783895681726886346695203889672077928164462392048873024842820216460720991420621364713504713963351910979809076997127096999850519209257814121493745767678389171207395675197661869245717287186725603609289286477772013120621717201523861120731734197222002532465466685752791075621174384215000379102381325069918466442684301876493503008111967529461572804088232474913057290373970181436103001655363013926127606113238535244568220999279908880116151201076808902848068516298391615217664191302331217111001843361286582027116326685329597051829647634666762090274878731462762188498656469128903861749026797928575397703982097021716870396511799180556640184194040845243512272345521776977530362922852565417916841372011303565917458661838503056849509224834057511506761076800143792032604384757269946816585925241858277569236313624574697796544150431459908139741892798026970118517849162088032216686240749992120446614689189108797678362649716722119307865648312667127844348671704815836834951093121116098499985635054261351717037217256798720428413109805360082360266296331513615666984697797287815828073505585778295073730525906613089320994213058965003357373710978531664821631897488043547921324365302951703595281557874957390197210223456456017419295410675901478903545161514829182930419866863871620919134795327139247783226335350099757816904686443483230838918449370813486017919488619188404306372782566858852217679468780037287711851833916161367273570340622634402755762457103007036595843909090098637072797643951438473276459386155054092220974194128694336982854193448129862230492513050483826697917637437528642031992932396067324788255617565815060308053427169741940220402593244953488272393995741745190536985599143232741555583851683856431183190475594151845008216829610373105809873766028226654718405399493070682298445481369531782899643110769748836170516141173950472057607529955781983780190809345998362546667073919923421179887623785167495912886091774459505394079232326791034238314927168918851276591167309226802116121699990769226715141530860897439085686413712691693192937820432536368293650041764646860755231306149156389795711751433319223515055004771207704292479369993130075416209027121806916156237393203538462054683121799419285989487899100544292957017663977831425561429300939170257590735544822739390774027115865582660831029328400610571474225569495863464743939540451294966984101077014948073630890094989532838283009366326477780732728450133484675903462995147296255730028726419994122995254159074457660604458853990806455120983094703198822526324730890945748820069497325839144786710027758002572004422001183464665662951312058050148313544668062519297405686329533332865895923969598574645890317456364590270468657542471510638419262456098414960407963474147666172543107721294414500559061270301627289823665038002920067021174079299742282291002690301433315529960046543206588095451939431678948368059647465587734609976787024384114256314910092140337265862111928816473240231577893185642557917225408086868182075338482317359593266778920036182183978642730797204982904641374235459717541745770513424456837342960339615469205911336976056144602889558884278364067674587752201397621163684444075696040098103354541518075097162244261648928725255509049136158132318627438933421547136513387961633609152507846755420928372152190305153262790341453397037775916061117585177494430353726906886070444462747854170127352856663962568021097834702835304809824998820876441974930337016811846482453434470631098905027097548993523504565880525037632635980176272048201765022816898876679446370130424126919298747047851844050634104962477156628897524905812224304627131489027183607741823231496933931268476083532579326730097862927150979542336675745577184194967999697830961721762632486019291756726361108834482589111957367456036880835030993945662496605784471624673112067711359873677864042353560331921454103010086518451454983980199496073888651472284340204921491638755580281436612861901623345046220055741798838028698385816349499891632574004579314186818297365897304969626811207885728979933127084895013342874255031318820656370977978648894353412281529629398314599745763611823272551570328441595688017339803912093520675269681429408150010583709383880677890806230522902526113602913429419922219670466230619709937316590706782937346943263587545879923044916205687865214451644458647316177902280475481774084514427794701958542807362499337047432828476263750190890741550314472415101280643656855377476991705249859835411121706901323328666535798069470451732584394356545932315783125822489446645126270245209009771639894804758098834701394741548518446475222281207918229959505372212044568901144580413634641948953323695716146799694508782226837342130890336693253807772647405781722800283348858940740373403399776671623944891730855325491368431519950282186314441853193149815979293547477613448097637742124596749393795110673781696011550082744577137995811221587730481676157948488102662868394964779591403842143475434007149578759117318448967082606543872577521586793020590432519330542333910919332443592261790578731120790209514560297472913808778299065846151166600486337734723328067000706860846834916930507478099271442191049719322979888887582035884802018057997686790810015488977395738316607663605020400511172712890361212428563151538171132807786314474835977130510493746046909599541183813214539495059105543234798070390090461965102128709003449493837801426628291518940133665642749650516521220088909706962711621518968428172309205356042582842373402724023839774258771870961999067221792243595353225994954506917067543891720358667161984850313267782810124504941926652485299166660948865849255955402130437854903098770937406156674336647994137392900705337628475939149728896343876854886659290619170196690036431137428438193292337791007100593210418903287502074140179878857286389233718617350466991587978312417331768924133801825362669152682281548527330599464372406218951959218720303188796192632695296400183901412431388557125200852036632395709143826419127230500521081740351870539527435185525021979877142039377059674861691771242216882597673165735624767949383505393079307068056839740545491409611094981767342163107177816896825378254349192130253914001029075192256815956432691757433651615047612279379869360926761614503649657748095588093984850241531687375240691862012301834576233270442049163436525676997617224866466525171331677876916379339657065757937258642310111535270052616322262264754584308232210845647191000024803364353466655798523801785655867689906631678056959349312731363251749768556409836396668951174152873227805720345247788815577777723990034517362459035795231876074444601123952293485981896150218408975657008541753297231829977290007235094839281525582753120324049939333431758055137944356177492449175126120100179780246208911094988447311982958071766468889622213714158860672773234294513910356510094299589721087455905857854632245995243057877850733698901302597774405782451523087361869807932946267657809739329116270475222090237328766779140525861549895649155415154774371444732287096259303485319234566732260292156922269427068200267325992439398227914949328367585731493452186307788241903481240940980431344640315300908184056925226880904679064914313935063053864766512381419452279074616771399565177133309560192374109937733515932923484122920868323516340317336720666733288793460725774729131378272953390060244159088565552935569195223547114271010945405305496958167999731352838247141381598878853618986351990106156467299507115269048282887551196864460845901510787727066730374951954301989259362993012753097327914355337290471808553910218588707135892280255808380723495824119614261336794870674105922922555001713525422797313522149388093127220308235177696348023461893017144191208569937348260537869095526599886383971230883585690255625290904278002767102876885672718220613201444952026037558561250340764723950415790490766313763812249428587640589387621929104201429344143673667585494659882982330170523029888019069991027571236781335477610237778983541185085135169193400842380988268459637582024026323506956479213931387939886049993328326940565215080711799269066888710322363360425877617575708324417411055163668701905695230570068325298413756314460763099895576680608025399784262981436336337664978426212165883350433668222527825437140364155853510344642226851863024530459310954059806230872008381280523968417945854038189950427306721859517027404933796083495672461894681222473614133297168604124728607865503650555806115583221134862144240707867580901953844079206600918757123305717514347235637258824658400164909672842975740343252277077643797076936938022130035418643201458291697419211335679482620184685809201553472945465653978085541280410259620585526596421305839293834713956961510089704253909177303816098027491941910338694094851979151206202002778904228554041147915334478130653041367022110285478724749711632001599410686097055260483400345555016529301798800614888387297662189464661827218350276646151631964947886548635819568355173198899756140664156399134957507722737876497086966100034196528292358641588046702220145789913418395372856485157407931558587943658812448273279321024239804991897006143616446108643052130771031294456463257135557069484546719219227404663567430119452800928443540182349911505017671958819194305564500354756070436269770525342781274008240927451513628326924564036074565867980822108559104102542936516776041053530581789287999806518658970771851229759033782969831238849850604353056023542677421061154954068155865003255137235338095781200334593807175941173020412799903019398499697923862861013391022348474126758843561481936207308576220095866915053726095104274593488468677794723136360821825653487248540218636134415792750616084116724854275465510219249143820740083830606045894638437613027138530017364812452661143452522458445730710729306132329138634119100636355587854119990368030959949407904445549791457259152876430908113179268140445299396223246666684588415582565647786253194115325482527880857742174062597687690242612711511954124067182439262957182625886717327974834398496199587292191956370187256377587148462452419432979575111191277285403753368837302211118686469256057280339294819685631042130476068476325905581501864330242175164324027495478043059170755000766804909655061811219123788280746067747917536005305626509115810747662645535505452060161840758549525963995620509878959940922235125542850527584394353457148031708315780214459825569343267403427901409414128394463555614942592602932802499454580046070328922828838758422106034488752345589339526236503423619388893556022453843180299528477508680791736852661723644587708675273906814151791142021144931805668017915604682921212247695970929251453445335581408267790212974272838225173774036031412893822983475874929558547790446135869908790030955577136305431716444582356300793170857401166414820745058020591461529182311109480566029172797448859488580253615744414172435849195700677615893185117891469183010084512405603577242352630852548138168496150768647659175956611380613264661727124544411785542542254299671376628775658919796763740086851806152786090111403000709184107509856545980902883824397683768034387452849072607168350167434630530305531369605009845502182906397626226935289365322304944695719381938720878645008527978699979484405735704648691484108135589747542541566778732753283265777657201567909845598126939474684187380945267663627525826097596041314889441333892947397519256335846676665220267837990007583871255546137105697681211605917092455875362339186819966958352829363187540900067897157718918804921321289272812743466979861843271883659696582386400130223566379700299525970578269176645078365510471142377318792794874086167743153036337326498419941984984231677757131997224120471197448497989766320630984238163685504359574812695568052530420480247214342719561031861753256871068727353361458225853283855072594366000006108875603101384850460314918118700651902480631610340745554855680904626625694265161718929143937416101196733604488050082860804583982711125831589066142390444514217967655247144086617114053254767635010703912044440266540137899348898105230694035428952439797270551952879372712682963320442063745673217654188139960414027618801131429348341719609379805729085525976324933799841506210180687189290845215869295941923991773731623418854293019972232151899192575329128317595802491355918891765867971911438962812730147109438679083871610457240248014820617851453289712408685106040268695940074763056997020913613609749911418169698334894988586656632597403992694373166287521993885188269077095374713443129151032922679795026964389912157164757670442291595243297233882319566475618250179444280935646450016260680112523408508066616718088228609216465846995559092554113956958780958915238144773749034425804358624259957662107309292682886309437062732372234410047766818874296810644365235806303369017884596577335871090595331445984178823039457923160852588914464040671894140939034244580375222542512850424566197926443796123383607512409116448042371763655323407556444455977697289314189999842372067069515312091185296129352272421921991332374423361190369766493845758689197273338557788273977722761850056079888331511400770367266202555276447994871934050695148695717908485242339363059717653801978352527304610667232426155249144721902596490029164776617570940616843884630232078439670670832152754504715569551322719780660990438804213746945041215979686243041053275890923390253354872602158763664223711666264576181048796365139855037244379168406250877757615607970820373944066283378393246165937988807515194528763414975472549691376086649246744022200239014929685830595369065470593545337673820257007560116650044603516512500154673482405109183504612457631687553179368624435248719767774300268609333370020872957369884530527540112417441667329624759802950090631636298252524306851573703958664888048371376753122474506366110100245981820391641766094310514010492492671204367312565015292928161355742723611283804899246961395972603202789909564626241817680382826064338530465763307811107015190230765682943041508777011598664160793911214198786653891657428142746639999818690422242087928620547705558981090973417746281131130580195176121532530830180041600688153751415025743203690270593048594307155996526952690331575902545862270828797418775474746655747497361943583568277417401438016480199230227912730098795941126074967272923329562214837578209938446801150225882288164371129179177011570252087410787295678824557454589553902968756176577170537581528723762071855854475193777042886203885143751914267862762969598355304640330796698486199063588669099623473301551552816269147907129456823289637230553441807046966628294417222792794415892445874078021975630274290845165722072187361880234268597429887907563167751553789534197618421578915610772458470060983482068550925293130196883265118323724366612879599651690598434203810642769851873723887542126894884603320277024452080480262712003430887414389180899723521807166596242067143111778417847663988197984425247638114708317911469441140874054055277935673451971274395883004715254079161856451678025368623082469128028470034582018712453073442406067053110129027583637553433486308647552113841839852571551153635016743480348758161692364940073465485083315256012691242916441437665561891454102678832526754478635905633270517344465647185668180170595471420217966328109380902648338057503153922716229386880346184236695406836585426570329495659683760222022208856779486888223714124213254583965649509359332615266315270272911053387157747606406323405669047449650337823462145181138107680845444345888979372134346845259516752938841558280617260975722941104875688652546985841734943408205021500031788629286075062716795989305049714042862343971778413495534556002299580245848987756115508882052740603379919021169562695589743573110511564253058186182196841666496458153015843405183088874643544979738143785175440421560137261696847624740473404529058025539881937603400632609622583850583392699597226151927827230905219425874404717294846349988455015885997301187451313607522303628047444101333100642973652718433213057506527876058836792148513706035549912732004741610737578341744955670943548074949139569474959585097514927515908759952258979658124172420279396124406667160880925994548748751875648441613998828669921676638545405436193174032749556510076638859557130877368313866720729725906007963363221774648895928510678990209775464269066857408033695307443553071937030419287150725502856166111544973634541489292346730250387667786690465179136126244110013839526613337687723606411147526335141314787781235290043382251520139266543611090167960839024393043525002224585046802862592946623407286013430593365859940990574173654657230024577837253944865887184233532788632042085005885978517555154965843260941303762998121089124364848542818279594053635621101418555765345642448735892118125974108345616480794984229613543338626740779964139876726875043515755212509518842015870145123205532779337158029352714472213250081213657520990829488500115343592733722904066329149378937758253274115706408860762976542290771916989203740311864521166353528058230103926462363216018663359250423235224759647427175190801180987310734729324487966904284671421383186496983331756779591997252126613574492126089803012048788519187116937474225628618591427245452184233994410972616747438756882766777762221300044617002008738115745647937031047983147387321984260101679632630825877185581315392730260204001405871683949699665162612193044847641200481061842437840042706722602567831799259185284812599825371069503652800399986755391822637600016021325724164645872773802323687430402844795572003632122308740009327158031063919911082563360576749961428913629190803734338104934035684229349160512880984546267214025023892268765803392342768117080609481799330619823555059720413042089443814805532042066142527374793505840283838343020169029436973117396538665516796229173721284936785727001089883049083823226603881874392976466287715056237534643020309081445627111043538714781518275047777710891486383837910523583435632720898702396825096023159412358641097888509212068626960670140363906431337137082752653385950599367902870225886746747965093845704848924851867273218112798799689493984835287411038492383254199521046056923648788734481508475175785425669754474808232919218066888696526077584168205437610104689818663923458609414367034397820604554395095551503943154548868660364560277621117049544497266474955373295195618689790919607363518649867426999724365236461342179900523559959153887809512388747991415569860116574020880985104201158601035892233340886032454995311356579679308292003857419238395107974413939582877702653751660397350719871504382683858078084147723824688755373483623090919546162991701529885489600544832317172533899610763236611932148845701616407620043483386645140031432945887528283646987404576261326969645175336296656081521691421707789703619434090048068169553199971521580656749206529434543065450065530045862124061997411050170402458080442687476321998896836862875380036527850321638772137838987617143618002415074500739969010859735999809700626460720543670605196394867474817246854252744967411515109285571749854565603926142919039852474143739125523576876609323080660353738151443639065114071604857035968852394206361701211805968116069139977187981762211560152322266854453803819729569427661349477230121790938211901626293763654639366487097152887825364448602934803023437922699298514637277166346887577007849959322444539061608935616174545859879687922312867908035647870681503170529332382821257906292348873255279957316498355981725521210558769590567337007353851840384759949345207841366079239132075021651954472412048725478043540113583084239953461503561121524869872769923326779287996369616503623263983906809715083144071268507441889356919135232328306398609446005448150321066705836961147611306508234491317216895315802403194368555899383632937478083053664483612418500025110300732255945147155122674396573044339934616073818551554408437891541993066527399683776838071613932542941043791164669031000593036352596373061663979163208257279777044213085616319310129612682876699793387156396544954981352083371957008456451699525054760699412429128385710499438950314965473218491457980104489405005119107437623974439274225479116726551387908883326348878872767272961338486540501674916090229712888329073400647995765057914030313231100081895248882827189986442656749033971009703589665630720376242555506503429110936700145100652156701847531627748220185663876999425547538017447580037002866207533571731501979699464451689046720766723527994498047601106791017403939453746169887551897046925116523805705644689476689283672674050442924184995735772270893684225866920360784391334067008584556486856097913615274335185321669053005287260412850683744306819122963862979901114066340114209976540359856606330453287703819169454009961874785656436216678229328944347938405804823815330951496548407940942627460895081454874328968954449703699370028680144023180179225352921460997256604955634923892737634182074100643478278382998584390513063146923596297030160763022751946258909053339767025824197061075330627769132123206402812842418854663280239412560495605214320993132718709158475399665541062416174688420716781923628308999369022478818992767644755351040400339037105698630052717417287256206984579900908742041754427710716754592614905953830671157209859007163947719942359590017932655946407759305040821247052040868952528641751595257210357649493575686622981790399839512707439720290289277580615868420378183072852596608353754676105451879178942034871713530948300615458581349979059349946039379457494951420064237921120288910085041315548603625009317213717858904394617827025778806904815812468201084411356502888869734760051170854934873768563798842002815794146482306739093454122159401749819729468271330505594425234149553226386770459503500052571516285655681004429498209920445158138140082437136663971259066464183953722013687874884267999486487226839533464740468319263076296274405162773879799197752629425729095351586519216248927027877029194260406160949567566726661344669490298248961552889089077569722189526493229082560967886473519342613471153903871359514271648682336981071723326770044850155358972052252331430609312452192274465960026778781571955711559617571745207278307089265873646486557961105357222584590360039724759643534894458983381123165434387270874429766604236506889269551160996557485107301188394910877790712822513594799452073326632777354977553571834529968422833299490434312185975391777466602195262298380159227924768055463737166044311454787073498379059568313690070243418822662787438383747732980714300739344872112444401945306963117645192854045433560321002419612938666936483259614926756338865819280624665046663504596203241035776804860047487105958549568290312990338362081035962879120886133814301232821503681998165571977242501561829214706516788679965514168933334769346931329684959360464714032949459732473786640827683798908621572166754441154175863471102476877745729727859518897499003718688550020473239859845842833026114358992330943172623697608010985973893035319525912717741510881248493393987699794758687359698374481760522100747536253004483159134424028789833352939983081902053756834427757435298272201413705607053293115366111557523706417036610781122054064583275239236224945186230420759618453874695821295399700817616990936043187306363438569676993348717566113137214939219934525958027931062023492900071632349185364887562944405372140121987594175267210052364157226234468276874348941553626556207194349148407621786922117476869444673430767889589245967018053966083737370247127120471599714474716369491925023391769733638924301449604581056470684062013332266096272274121502802583832855464554411812731497904120746182746664842854022661067306151148301602185525767878502047695686702521294508347814677000960899818955543750679572497072193308544501030261759454186330348825057746726018655482482155897714221066024272257522389808734212516105006022517732382657764554759372563702269769651714524497776132541767192579708488391822964616086521748514611791412223752609914809293618251850001504606000699579054367074782783222872467799276818318054836623235445196688117649250384806898689113514876709672453440478285293127347333939503257119948185007169995887784027838865743538167240667806704676355960029974169877689257665883684594283151654469639779921598392457196367567866341681110517920067036005605429273791374447174294424137729042508079921991304839427605459132682277410574024889603847433243769444850426238252427483531901930942790741639120486515182272554016624204304439602195689921322410816340707178915505115702170740241859233572932112678907730421526770090504602161871588995608766333769789896663771106719346525479296050106075325590352750067659892054582391822828260565322412973891641681725697134608987894146368880342568169055674717861680330571630941668120652494495612085191773341290624924498726257009080970053039529171775129512497013261092655391037046484794503691411045689427346588446068846670202303354052848667582701515067405398637331737182072434936355454486239046618774526872707763157356815633114848392610037700335944481089923593005172529919790464513550874800225927606287694497111811372521308156554529966065228601297459770516743183174433425359765460483324451448665673278763968130842075316357234213734542972404415904012704679066571409967131411784670762404792003480480533265536508608534599359256979557805932550311948172786868587223328706593567907942531218248273779239760357577884704561087400872025809881584930389435310052400963846626355127684485855086053921845971996098880935390459572153792868793234658892480036600978788474907785056203645732841543039585653498863169788933196378506142128727074083656073614004642932183081791412193318689655673872028492107612853021602406388553756779746288603466923751545993535634966538959669365729324997551125688713629932062764950896826073695796491581501166605190203500803395558022255846917801137160543985667937896310699450558450639038651259547165653713510551267164057580900708864917555145656648925624007029125468539487616318864766330493956375204464846968753046300202057239193000624161034727548852268375788227584714716503975585277271602547495306727058596936678120718237854663997163562572576562285029624594552963529837363535980817708557927759887817466775637748554975303620896227669883033036388379536293981295294803794164979264360917986558608982987031121649708075953634274836341921758104336511572702487909125620290184138390251157100739189627383465216665514762227789837499656089146162638398556178910119971214425853616508681362774089018606656524063873522054328538723351849212776826141506270066363734934221547880865263956073527738276766968024350914434017965214399566260729131473099770154375249718908598703657260564460287032009360987225968034624477324440379633280797447488033732455522656036373239124723122968439429961264955093112470853410226558736544969703844876047976345418901705733297837569716818757204258607942373607631901669759050581577709712492636701940425675917947427214794665094573446581909695962678090426747354192717395521837168201385957106654035328473513028827551070420104061068203591639606107165493398685044240645584052808978688347617951034596780569678164684861856722819386427627770566055674614743955348115056052181054034333717803632655708992414179742691094436392639096563587879859249642154671681037899588437386706371333434792367435253693504806922400732843804320994262633881261119539506038043159097700550206173349903292391029978535893166536267434946473242771374707956889966841477340382245752275372332034152908416575090748328782905412304651252942783044098005898639195718769942555310101679062400004384678335549978987497750418118101321407203016655594372913495707863781445444310836673179422093970801097493362494332027466120694618001356926753230593360325669082409509565453827324665380666560515335652235213861745521050153947032839107186868672854195370095518032045685367674810145365558517726585974483586587893828302734932409539056154738669632512935852327172263141717295056847696003282803299367326159279495772055304126127206753970710042217790742258315040417751084492278103465854999816010123397792217661394379476853558705774688957109672494162766424931813446930869214976133464915591782088026513149934440164671620735401857582560398222382753787534761050465776500401367264237331070766542870769023181811392312503617109036904224501952584746491045261631384037577523797453886529221878628447944925379381057418152088271094876247792730187015439997224339402100336268631658748122291924483710866226830665289795546273311483809566141042306151788849799256239875878935144045661204632123018751455726999385460403350155540381432622821808565452527396267760625120978911671687938281757201805506458933830120749116464844592385628823294538672104421536976077245047282647460857917646793652457396407566294986050540833662744746501386858448502753676984486456793731756780614533448098323844237462035143547418651280631946762864818847622578439914956836451632046178858073669017583052886277186447408443170487097507682045053087137797145290338645847017883893832906360695320204782245223100840466893125311731551863491656213058336210935221114528811544433670799109284524015042713253364852187318557501740888263652350393802729862362581006823745205099425714804884968019145484698451484506213745217772876097815823543415735179495239589653457542429807867866739912509643307924519353672145709882094558372126867749218069662560279234188724880733034950511973924767395884777740810867046932593895692477193806736987183083241440237605220468860511187621166468629262538582401688978802635768039410243708265950393479903156811295944472799473335577385783466383280893107805446201971545782654995775988103859663362470675703825573057788801070537934315527366392594418752141298923597039196921312911921230469563165848945078052482686258814318854463646833176086229329759296151144991608048758603654916045929947456455976588005041005652767491902028821166769619332802252916290910355183302650678241782883278124489070714539082356523289510491632046113471094707729013912744484299870556896499538339164872653623228674095904578973972560368726882767330822976128447269484688515112364264043152880793665781642814275187143383441330560237281519328875662210282976632249161405110133249707858333290927896504479829228036583550399428031334366341825739031873636192334280453788057123914973826894651991696954247971947477795506713713741096573967158723179503968745797267284669130562776560025546197338605105883415578018128819416536388099189449209306275145584966010666728117585560399872085682394209603285670936719536091538978913519353327744304121713925150645373091467368666067303859636523153832646728756178336117841016901815763811275993662851218736060282967169185098248018967726757652548027920198459227782367515562844785513869813238705887446739599594623830257647510997286152886193589394458229750160154903657252272969904122140779972498513607282298133857777378600703769492645027381046654726594151830153174460848612709582880356628490733700188008228651859807908335214469490586547260547421666015136229521919844403567580582572251822949844192804588713906757717011329296206211470965844148169198007039873600378817491389340776900947628195640013035412630272324041152745238697961578397725653658913308804960149550895173672871020693234971271677643063622289139718654909177666209010135176417766480984601039443542546116749324269201977920796446624305843179085756775531995761359669165016549365738269388604812916050477512898445132954076146692514509230111727997682630974556461257802010337059843275536826001293076199890297040917383125791541656605245572281360597618512343670497209385840740369696618488105925574882594456093328746115060904048164884633577806759646818179224855627241144060880129068876350521946079168125685218826988788743021129110255621043123334523988716184639458435642254765627955580264472727800779329751934080963960790454244425210959489704490646234062918917974550494515106678787110701531368207819182597845425835705117102909489947363373371191955270266066197219184655422867497594607757239610524125270982980719389874736015127665052102480186603424643538812088213149887334660403443611389739452860892614891332927421039439049090308364104106261580637920780879379367737449759619661080821035864646378356952203427682395006944201672791139947577781434973620138903541601212642555495226255632830477640300315021942766485325925717795637022683860880161195402073922234498559255230196984584296713853450340747914907444180603794960717082049279296711191489216912614559613762464934943828693328036749143367572658892571453504008754160139357579319218515394129035877057534046964021584404393681382064842769978936611806065677935102212422661906728646965707521375368921398703008324560209054614405736215011432838332335952253513337106298670984154494079183738951809360531168426770055850017261201050176945256959062949448576053782106440501299831525263186329957702895964721612398059028401383658241495426384231370604865475013133359886225804602962112735393782306186480151624701111988339322935860281974494324886941752194562805645759831032776685689750405728836875914156183650592512614868081908456122906756075698116698274692268903406089382392391068023639264941194625890860072675108356472491937536459571576076646248326689949641104693383463062126883258989664101451848414798971263957952272858308429001114924404021256887699953361070457996948270196348882916551921058859539804314682099470762224509671879447417044852433023969120848786284728988524823811065460675513362757278069811118558829444702033956362540732337487194187436291050970516986833442426413995864320893320117722315121623529265917263771162648697343686677375412130192584217794622339619857299336350388738585646131519418848481899818412680892583186745886771439037776447916595063445194065410803154754340020528809271721945724841777206598272701859197850499597562090935105073813854134979764345378143713790516720356827899424832511247056178310617409496508878696258775798150622773774050374923508522998624732140191677105767643575716901634320644557809524207342073730250959412409869012491084486121855963820569546317528630997088331326396255564899814881456728608126338459297239058554435125871275873745440174978348743819247296305906342857046856384474434134618815044913925062674037011001760194415177748428672867894078599375383085952382814332124934995520963869585078447196455559779213065603325366610217693242257437118668632505959410279821252275656056989047302007844111279201979260603071744346940729951716106846917437272414118085335905547297087165455917762162898660792062850611950592388938114256919175618973727005707295884637345109439564343102955688810837539159456865757111922057116682799341661137376622993609585066974702003319289198457054397790681262816933098450307724716983934384220006942167445715155088755219242815106845442990269124757566532286242088374878323469065811866860244304408456859252259432331622436053551823429829885422033820770061919086247659928594804750455300501647725864921847707446109157360055509967778287324526481018321127729564050829767640482960269064384340789911452500291404601559029858006807943198604572412718046113822133943695290927802721724461666711741028210131064050875891412195317189578089236240534854175827696040739984527088230811976239209570883810148855796323167950946344686583108177567364134559847346759417588702747104382522869342348926583733002810780245104828974518419090849715637781611654165398633276388145770038180438328655812934270512322756835177015283466550958435122315927482559140628294217153172279643770212261888734462600703303448442704748889238589277159196524996009211329871860907942662380501823851941384300927503060088333943004546260211765034146515559955324647521589357510857533848552680989198562895494899392908152868835719831748620471101857387220207470007375857540067322586699422463452439506617837501730807355391611782329688258124565098651930577710381877492688244740557372280744582369625354950357781800482821949105633028335013798397520115969727280864324309470645548636159791597958119654350361199425778411181750839157837932328541797924496142181548172389088241345898647055007458050553081707949093423254018471707979846583731527344813298903378933397493642668421679144309088477526068133409442221647766729472534534569523885734650424678744633116894393821398198558829094089132654923145137096769146926495486291697227712025620457136550265135632557238959940885356138223691380831668636623548049953797882373969596366597718201838378364627674806948143920697174881746516068513475911574460320334528808638724860825564387323520292212080454260726800075092943190527188356175271781116099036698313197381664184300966141798002483577027279939928750759178166082564270388419440148083488421478771709363335332599043036522207945995627730512250671946406035043134926852087299812224267803353198057527176758439012438690799185099417409400734161841240663082106238328139936376819029486910197973714905781660981336360850072188544810809590626514897486206848619276597381621346488435470121798364631701648688918921886091009920985911526579446308913214045618051144232618372042496686142825619631181099225181377908439813929052195790869387778433739974115944820749478119400559965539037668920439195505445179689073277160018815398751995665091716912697343657490003741296076904331518825692026506344115316685476439372056290906050842446055465953361181644027926696216772424389516359828860715961340848017390294213551341966859303513192359046768404796698211327399407596196208659695365332322461702090434985917125186187878676045840347639544992437331879550271290624222353208047954428944174592729357025110245758041876857615362585233122202935081677133627318073695794788421738487017716737890155361936314094372721595979224453466005315856507513244085714167044570923704765517695196079271866919314728273836491353110472836698720732928751231413266429117016505508686442831579826897047552006676861864436554454787835215735637475413156930492299910335525764052885852192943104811077228109111137079395875456137865790484953140739465218777297392033698660449342331845310712988067894111673655737480610852889430754422552281593153851633566885285483654078479203424606472947088869219378970230111480471879212108649881814500695529779957750588825436591601479922864445646059295117293950324747165772002196076059372131331667096258482421411550938149249103220036768683476500899918062260070818578767724604461311865304091600339480136962004395123543736265314091293147768752013902648859399498352833641861456312873546159224070409948452388590005547232524842699436864683154143970955063976082953432789227250707808224563271544763993816609512796594121073430640420668393696171310039503229754589103859673067218088571213757839938328282847239324217242349363451259652978958743969769553879061701748569727026782746944328176904814744593569091863276593756146243576978607582410543784951491720110899094062071884307995665608766242696812555251672211715894658308383071873739891030811939066113995666760433540009331764836800129259666990739347656912049746405953355857452705739516761033065380819361309749136631935287680213165091540781185288048830897753409421873641876133594966415996132746598544312093483631004941770008490069987923742324350870145405533941928920972279319272934465660631911698998977377752896346031263135341035793063710400062732682103201027417064345255088678127770797307892980776651784333385721957210487166108467364716129037569580482360126252371716208601790890204368202176300298347638231387690360838282883439123312904179116986032113936731787118168831030875808807824614829743608775401265817300915303938890418386936803126212932727727148427215820765722280685852712517826235210892926924589440145402105235837563404773484236370335922511693882998596942756593888936068793466423724631334006877309955213049537062488987379303597276885972519233461706702611658062255338985541884411193286270190695957787359220013284244340540285979903084112933626016862122176099660308637455860970825057315351287236138960021780790871100645980332557174514653690833638744676264502201869319239284548880190928971401210448890908170583002026916464696094992402411863826923379306098937600589370900522739086221250807407565723481842550584333654296353258087806168971633677134483562106982969979037882778417169251668065623865555207138255687306536972122969442822769260955862061095486855606515905963224122136598395217228707849962630882098257305359856988126235827350888638924780266940708723248297178787903788655807951782713135705760756663520792810570672065289325308996659819645115265582747832953295660072820265187688470546892701686919834321910544310507691072350996482352521388418262384331295446989854928840368639835900197530338129155934965042208074839434763551711566933901264749669842712835028412911499882677352485384022810108098792478538705839942275730721005942824108586497330068491779791719808041523399624895689613644094634757578260414067267952560876393239921572018625557765007830941355313775983497568792402451861328558656902176379106935351069895688283925806274629414072968968600634311420994291911657720683349566225174153111681305244838896758169283436362671834674183557449316116991564173801211180118108504809479584748723252296594899090433398001802845535191280637775768087973502948090320511969392541760956032230871764297014374075679497267883220195804603854082065195572784729252826777579776909097270560166257358813327805612989397673728411104540955716910796708019715385445851236976760120662904365596319372957540881049254039105798646697937491165732582390085333682345549678861156976636053441565593890680807805525791025892590940761746952793893433777263322254824887165521091532468115310401236643806835053106008127557159332889647955921493821472586990877046134601562680393037975116274891886310722601327227826746639721481844621950567409006212622406750707951488986379766778730965556243146201068717025196765469545904770122771153255128975502541273179743523723259900148964070953066196788305601848541908205024494804232878991436062316056952683534459085806957005587382111948472539262667796789410950128153976607780954376214177690370483426213797838777890007029031906980784316285712569666580624197718501206310725068809921085545573762426211650544540509320473077762067384003700727368205130963772920809728646391362674057155876419477438251915987960864058176946883577712464573509080831802600244514511453831756686883444564593975468962031489065845651405159376537261751150859287891081811787788566203962156167400151861576211456053320179510260898126393349097885636373433130373396375093165642963383633475221486298092043848844020137365686690717323046526245304653716412816122893383354636040779288388780004409218329167307029707898841534963195374404907443701536876625067403829516736858092582337805227567839418714992556640491625289375873223670541456662056144794239210974945183541679658775709715604228236448351241421338769162217279487536433366126866582736180049404944049075215693706167265268694984357167979517692237815495637075427282710972079333854623318669129670328555369297140422960643344350788851501771616027571856405756335043019549402233827116534672777558938868038222976892171232480693914828472693790814079784361853595959934593036396953283750776689130596152596719909273850473720801885900455494536924389398157503460742256822690578466860673303728621903824206653438912682855024989524329151717700598007832452001360450990959202814993597694097564737779561341448938416686544797452552188359051039704659418197225081079221407923825730747099162141342006752118612507564265322509439894518447496463909249076578578316432553881967964467785919554440725816586127243596531543957088650466766842898550114818396144849678730740555588495665600673602681871163243516323489720177382515443773259815258023047585519501986960565992913793366821505587841424914193450031902485275127383664967564763499765907726955598819182517555574388208307942908171127227390993662224027954130815338623779790642816229278010210763937922379544945226081127749158150124733611516618994472923219434773429727114359309684164272464065102631604238389861957779452507405499344978310927868467020804108530387612198244882222600295943720506330840042324483851182963433474494953418959361652152916916771531247520584117080135085354582225048714543790180900876397450855793550717303585964369956843271605181295059584614913038311142588951308653621342053609463306263783152669412652449318335097803455849234098193342398552824847808238894309157746892864870490521776143461290605816855694612037221300886269717390123584498422960267386943999780226772225233226013685826623432766449057574003976065287086518020789503944963165619059478979430328357631313818875375573647033992088540581453151737490779623054485247902841694491006116347621305200233168889465189434487321301812688447773046968719418344998466438085416141037247870554827293567639658364073306313435855255615711325474606257421129658635977149744292353203147589461224326677660563050022530120088340657496216962005133797220749978293309621097639646943011126738370891537685136547873961369544140800681179335439829030548410793317460322438331501397594442120541599069204507331208064693821943064432381771363078562489825617615661149107396545091688484639803536065799247751626344510233219336496096715983124620287780683713874176046117657384170111224422512101287486696517290488444589343455720373837543892339628972078084521208153726333673276215701650342885097206904644552011499177748579474216232317385516823750981827284574224339806628153939746712659605492643134474043139657972131536411424747881484345392207222380719067317639755307926551543446752345415383562618929443633882534831397151646897693840713675711317251666477097601152980720388078013635904037229924721668675424654740046167728274263791379208761849954967156314590195918147157267887759939126662795276298242320419855626025252300589927865195094256576274410630288170814450434422177502027664144766712682305599133648370709064233769719876719787552814761483510575416782829804204705623850645257925721964706787069264860164495109292437436727553193428709466439430671607244170203695470402061342847051181087262896823223850542711548534627038901245697060750692993757797645808304786729721720097015266811213464733973222314870490059811887680463151562455507994539875474382844711316530432328400902910475825534055148354484683777623976265167436875782985499218386533418779024999619837909301808195874686741194135175828856607734093189839606004141319317626634106990860246497760480296993098249520746130518908194143734273230075019133412642094268408948188584164766505214953285347243462552935421849488149542229576125922948126179533812677951793177280170729311324957293800957801598509280345018811631468253745926285612277453628358158288258502196204724524334653354477519823495144873920797317132674489713454056692492878123600345034997180577527158490660408188870625590692743822536419545148956232142715083009387706954044442721226855807233304555271077646124494087711023843969892147045525494619959737402714093078841972741596630971071182600608749073264794460855542337710392315868955348562366195002994297900438193364786286991035322850256509351037586465848355834853456645957913866495296514558493354358176290986493618268065273483414427062800232884072572867067138538227666367109895695150625168906622447451257050574011175254324881515217545206149851506638845300135485379570890824248014236031623486477008781807863765373048739221559838951388287774782732080935980110386004967672069229878643043709629507646249886730334733613155052009184357054074245971494924571259325557192898183974856012023630070165544757748082987623719268005570519499454696214238658522017242479982252333791622469004546556101871581995465896541896773945315500437584243686587554733152805083600922378980266531114650931372441165581903772338234067116745161957502020120023793893392557449211052632970093734898309304543397893191202854529205017050612353009381834586682397940845457385895002208389914836650836111665968614119757878290255273510558302885391730637192076504549195945491591097221321503429314813550939258185212214494382288924814278091449180537741630492758010080482777139269891594857952119204282698634750225542380156483672294449671943872164917323704586276316322729650199238822692169554159208637278162927277638468565979786166869163032315772838904805252411318117739144033850496861899995291219376000604353587000634012265774963601546404794973500060904475383606019226166870250516772187682070811227259717128502471668044790650797200896785275066160035508820809196983994328390514690777645612669226775785457053526233446685546777182375893341961170998965993166429855959188324527954201573161913701300777471413119398190362271068159986559365399151641251126533313090811314293725988643793296037262250525332959130208553915599260727119366082197251772378980239498476375657823581692205946420379594161044339373215635452209697603638610630735220332726053672738421764093932007504467611728638355415083780492206910401360529149820093842768383790234174070033774061297388859412241033428967112508139017009291605473964093475347981649686109357773848046739858968399266682608058103387811808730160933590758753431597453282248742040660907234144303460711729325737113754800330691337985219839075382807401165856592888056043880410306355870248437675843745386072012801660353313192947166572797886728431072918794998032504792440221039631896675859022087388920216472566574386173195489708184332410131161701308054212552639998628098647414035753229365887088588837622348806135412690187255742342910661598007612645403763963935310824756797849274269282416914430114221396051493258781685786830074241413117459014681248655306932543732929492043796171343211056447649656273291672146407298702584478014019308406409349147055559022520509007041236129214768517202705721329102649839331165241192927154030611120057852741054025542229294606794281004915042861531195013552286358136706216194879176155103869990557611285226087150689295357423204078066154016635415916870819176652167650603201141167289650405630039230489542976821398545951318029003816482426636312562381995407581174152432253767502200616813864106013048613639981006346368011070189986463501986416881661054711275820454137657641947826287541741566517905398789120185678987517467491007976559643441834580051722103546428364304468119374510403251821311578892604594913861695120779554363422394201027497783629074706061559298957368727140955997811208134253004704685921665841159564428669249988985982655731726749286637232916763149101212322179386914072311654935644034252856583693470466200553231383706864493718825055819131637918091390586745799115734988855960108172897097962653323539177947555444503398151431139565102706559828570223835458537625640694935698777013962230041851859114406606822238069198944680550822941893275492533373562612249336717405355857623949949949681865406195201470767340934411675836300145976123279687940394946575817184049182122700625712164389710366217812084602297800255256465219546639852822464198427039555479313549119821329266964222133635390771359693061907475812376163563574695576965311630447135875253162131568168216871483042127336952564208953866245243470235015678212214074541106094980422795524992078765139429611699371280355124057751784939523926155510245906784497730927941582266800888608208322011353398670172778396426215072699369859316113492881650249877601393236849400955954749654612972576920709327728547126333661642446643944287666237001176419200635373915957584994529697121420434827738698808555034146175863335520770123248004389867403283748184518604007193172269328189332585046725688803867308728526227598478141823386968802667933887904630503724396915560515204346108126426746114848871147411760103536022119582560626949917742337201548686768424991409968153614653980433880839442368195983762764473151092665607109779670905155844509288978580436058753658776987466219226941747713458082179551441812410658017037561647114437890060938757874414276828147797254205550786953888713390644569478291566282818620268481686935581440420909910394579881304630852026533144861294612257895473957786106313607779671925115160173050697979437165261816092484312401098224466630493552922800682339871838933287214892168403050296118750835008792103408422691036937521278503958099279736298437653057774688097437294788042197802514034820477827611962300243483838887959729013674069364856198518026123861953190287534120461331285522679267269757404738949646555793999346238802467916441179669858655109030398907279640780311883713735236055264446526523230074984295880599262667926698886892800379514230760074848932915910775840123102731707238013767019869527095484701242550030578179485202628643214998274115007769272076828674666285997413330391534161791876917303584663931640072219144356716896828537868298552150270836476479299843803302335663517254341235320455563941047969735333574935254354997374858657552458107862364502499127634492690089581771878575577681140194321359056153235799819046495403934978528535918125006666631636613943898252462631712381361784723885791850773509180446353266458557045169529195406814917946072771249837692502981540311132494566733294133234523706121311206659094827919377885621865304045335333896612138846594298765717343722824265817022815485308269717084877726497509644442412807614828183868989515963901469343297006781461255864859706839075019009603889010738831564047141505481194898091401812720892475348599042233849818377572528164667170491323033138903051957938554135752997326187251469455367163496123991311135160992447344990976609694337317833637552912556501630861691011458014334086670365551969871303969217315944962911162609926085246649779012579796102754858131510352457647564064884561950895944974446359299327335217089109456746735736842165560885878742313614520532501313667926980715997918962508358807832067695782124632021666317059319534784646202804612510667565299833149108541697564008211518947495300158300670546456258588523747234024804352896146554214853943140609879011277926679456684073332827038479191495077832009870258889745803046349864416332559669978021468922095782695851318359699412466075802956840985608461562804473855178567083423470229976868039496200895021465788204854529813692231779786968565872692298498884547011279699354404311777447846667687819477851321978957227033769816698486869768795290019550810897582430579034957442214700471044301279633858023602139671387381841903772301895558221749069591572842599225088044422112093475458158877379305709456624872791233343595274617936133434258736770886995733832485363687936396781600311980906840506557366332155323993041390184160227822483074174160653015221432521574721212283969590359479799154556496538237325719470558816151594679866287795396343135223175924568874020986410285584724723530313069592533257305457331001483978349317317082657719420178481659934631939520564141625042650985136136373874135993857351352423852833010694401319325897307005067060464245703587735607583225907608531307059471671040000071403186746981722374892539750855520049716201876803683852471122218088208004091461936905178946643227135329923820605492232398582138835610089541741095250715441306062680864161772502385767925592070270668174881371959567484551468582205762945937383405048533554263637078261143507210950209260360621562346691907532584480769406829499119754689069199608378393796693707469222477060016147797039888818752486210161079248466655329059345366030463650278024770421532804731348643056153241123043035169119877048081494042260493340968593582383883502205642538276371647046559981574284183111344226355450954754072738908565047186286759205362044341348698109946853637893179621746782826543849284034896214855283849425053382533595173996989307233858254328553268012952784222952637746106995245553142708064997639737700634414064620081810463548624688825087586414622165458605629605803292125629881886048985265807513011819585478292096948756243303081164241172085136272318321050100255223222303421550735926951386121979069796249020413114145303336833967350345545459794996281812642376257870059361922651966831136506116357906592501324533871041602429512205586719813122898550872262891361836988672891724077608959053161513169139823065590845516272052713200773395308345386616218630705682733876691631498323364054846415642597170251630190082021475742858608190523292260925762118305134409321059872534215489705933566001806353342960684146560514172552209023379328090913341737345723427802397758502656871306034122396426765958109090351072081749985871133172270104726382947345629168549706712312243208927207954215823418963162484940864631908403345441491573103892140889636383114997105619249517239536214627623887221340400244697101575191225031918670719289161041740978740795665327557071047840219571338524103725825666592641427139800939201408424887567591851764155337321194245673266018350764267197214937770194313760887476334000371450704783578709485186771619506169264970809958711660305924411419844276981005643839422667820548857219595545105868050294523400060371097069051871586302676473532541399553382448781527801955865339407421553303607067832153690178154493191596261239137147416383250728377695952932278772872619039862224105836977309085974915187444584565771464930075128264961629908944601186912348041062115792884446698247923384092239081566657752047006842619751129937126037085300110017977666592726873355959564609346360265308217456872450531306819924514663934614368642221555855106798054001271806108220813401901514628669913067989899653883090879124391423246290131571851462593049269867859527963753408241344914448607092092803511437241821397244312009577483527611554430918681693235489806788422351056712629175598012774718135832257564324614819532355724586075167235993554035258233983237394950979605759792792293317267268391898227340447845062400514779809611772600114387683807638023991153876704044031856942037323592558886592993044223009095559745214234454674899202247250569274403645698676712137439280332039683343475393042188852237711404095944286577083375862569878759557512534965488519439214530987882910963291876763532999128657138150075960869924205756583284511968266829473704635779419195405667565496755187200273482078080967084062128331310598482516415209896280862015548138458989076125731813273547565507566358203458828032227799651350704859977874147822616301697107847496387183677270154575794385164982811225322474042954039405076837103982378237734304743580637512724630055680575803053211770754101184569008912431126458550329678765103117817316799920149432510596495362822711896307125035899784511336771507645426938476804996235658507797642523917547180697288924968273310704216792188014224782143765434545347087845520840583299386810020637456682774441687986681414469174552133167366610107128047209246245220428275996942821496770061161106731448964223035325593697857944783687756298385569005376197383778065182465454357264401081636796306359011883652276236073026688650387593479404442427144955166667618136922741292703876539763001647432283107848749116879669822179681465658407145909143314872915010464140051196171373566670654725410421434391688654144866016007495944676231086762070757409436104035945317987373591394666868288876812289221685770158972366629910366772778675626924064019319394840380729660342654712291514691882315338833101571299061675328074408084357716370015217689686516454051425512034244771729336039809581124447599527773664145526910329610887700020623517786921129862442920844670425239612677817471221118731906541184077433163472457307932485454657284575671528063713506956854779574228803103326949075927428633812640524352944898598027617448444354797398503758114933622619025104328588243852704197682467714381368782576745823929481889069774483335850562140313381465454094771183774932560803813350956079322024739396218568404949352688339101069599200841855013730358198348982609669620944116877825749550950846270902321360804113949159245415648615205349614878841142952809233313718561725484303037965177450883692061786511306182074140401148871957196946933494753825805863431459241252497254263865909316287433359210540583605265488311009883785315413072301714863345725375065733656170039114657242699428836299709218598868436067913187478831644576234572000382803798105534539433182976779592864387166594711288579991673975134306428240136978840972749571193667415792144100561866388409166965066663366658655890447016002174765891546599350045501187285625140731280423077722405417961161452947960902858455766963477257019917447276955893043913562326432383478918606071107407364982129486909795658573338499451799687677745683409390893535404596072819776026947470789472844214338454066072665187007976693553384376130758694619901474971145178227814346405640137869899554115645420482642801809871074879099508264385148960394106757085899486546683005399603629310599264183667252889623342702795832341814658663957370750855050853843502329584985459800922737908577421073696265083741818408105711592197635811387024820479960740922583893840008801173540770453533650780818637812449648008995846942568913434336268200503232399572495005488477357618387609795278214927452139730502746897104340519667405257336314422506351688905101789314418617989202743978181241326120221300498653960445134062296912335766502502715514498078479807297032686403716013536724651779717462761870780048487208784061211988758200258759926944491256453131449676096614827322383983994600253279241325117181085560016150942716068558347294300603633639679877528368798980165983474408814856231450817005472749339778185950249056320670692854200570810094725871604027745384449970715885488317995987463950220409913021171214950821516252533866338818379241950805383374122908884707627252596423008353166917062041631773376596337108130830692021978638248334907518265336791891929318102001415127323236946656422351215108807023768766725413679372737550132593663876270817604833216342998679463791605932789969467710957637385920925669898015037270068127625837467675213654512090868527489833859193177693873185969153327632975633702868880803403788974557279373057132126143045259622009363413087931152667135248788736533545441365232059216621921750888670120242398853861256840374557877839948008162218452232717246879352312860334853442482438772943225546375222688396766509622197095175384485788334263015488564142484316064900383535146816989047610942576758854829049824346550947310001559145842857175437133996638786712429848309426893320431303337274645757007306024380020280416566665286617231425139461178051029618917580632116598469345661386781959251857070411758720283178136908978306499854565333482657359120421564816533577311026250457987404735963903534040328025127994114450346336859481464349737624534895979930563693522829059941189802204596304326534842060444966324632331117414213662307602539341980113749049500055093819812286533153260030260014293182951035368171043596457449008160431675336136656260905629935579314303945700949780549240507565399642206731973151410156311197451032665273552821661400356750976561066788783275470318111059531871282224025085217036681788037631450460831569970382293862408755679121065000031498437467818423871897063811781812648982155304416015878054820859204016553692584308621415059449641122367458883163577023065428578678026691103467300251967963905267058816778712290573525951268602261215898365782129149686969741249673182457217374892842340338160536555194937158900187875271839461676554780788545190524750206207360172547621549859694318363228247134687472879046834123961450414383752438124183387859756659960117856901533046387544881591624760805577992893855757284084397638749028892808271136267917570562374416963938412759981625537633537742050609006498998484521336854656609864137047500977985569238977307717461122649618381560031117615540622696636888064980714125401678837330545535581425546472260168698854479236984233926894653701760106006589169169222660902410308669577990690354168232941314704030814496908839742154327838822985947294063729867844095953452063349617678702098322096109357006113315652775278942749090355667639549092820459862410173301724519473524144197801207808602622239782807476260484394035172603571617928341898134204484843100334299166748528044945488055482561408697917145499314028652361388464124947228590764508218689116036445382919281674197889227112001091841120549146456849641792962248027017858212188207664356216874563653096904470286762380998203747817502241295697575509078064853050891866667056862280401230925518174280687745477904531528995005662225135787461000564508731050829429900061337513809895787086621985265156761801000251418039962428391200928963542580589115534251432325089391674745481452231347358397134494495405902623585460832529745637061116697820845261831084985690037177263953025914340781691396386928376718463039947018649527110926600655259428082248418865119152363118087906610828552387904567638588601287364550886030640141097517288222633942853460879734940928543315343318232099399842516427102445013111974937493052407467399103150739457994952463523011858423863271131060594116982178907603542918212375762241510568980060029055184247303597158850039265310820449646064133956028797049569907606216466158188554802672882507853727656943461945530634166068881843273947256949718710065362557928352849237042811398870779215902715093981624107863001288798568360152358032434293764035246357564793234455804241050351235470886921645149092064084854506350031671922216973598126047309359884389539516818287843240964390679623561416885706548840028279569617441298872906648027296436220815023448572205927369406350029277432915246749760606287320752293004415948038197654211132892839405458896078598832267547761074278351026900381901047626010283175699838028615481391810751944314542148184550141458133609974271029223121393191273667535822698721704921010931655094288841841200476059292684246155118221719376805942070410064414618100740200645417697985403602474059464146794164836537776606783316660359141513249038367844418410123012948830940549930073421234853251232394854509899269282195445933629853176740900723583139629319090363370451115106194164643750451642653834681969917749495602743202596998215921227943234727709464227845470158301248180292105382090349330934169354583748506036450827585525809971202424513232374674093776971221249319064684013644885607896991043547313104583118444111188249238652766832374885004801059463084794040072352286993553611010036518836597461455581918076667243143785488021372333890457180553926914268383005330899584026523874181893777929106473080795580797157897467558475772050877163802419533796977584015797067961856755269077764854111632196220396212930680983646775642779608444461046451900068692319552487135965888906771898634993032686462568604081338351887918206189157890743794330270579736633180963947560627390323684716587692669276618750519171515230731002457770567245872834966396635613524979533171192847655481108728759525717286546135773418534852444931896249125050111871150825554794463922528010119050748961788820186034833687419187797393587535698833637708249712194520637822825131889196734292722421905118678778886101699842320629884183758919899452125757141328666888227373758074630969609131208434552571522012682971019599133898941390508326653304469843227400771502681509260297480148102086179866611818414865554154449862123814967128701627489740409768909274859375954866868307758135416884136091263430800199993239739044572109302661683079685646796236044990201346102902604602723946291862904511804155328282395298793219562091716542070015736992995423997880471224744291582023140009893603477319942030928082444089458983079419110613778622684545035882229385704610397314659681010787373884176367110799720117705808768360549497148275889512753029109810425654860232754069567590412741235565419864673947690910424270650198067537856494770214572946079154414209633515962662276074953014680632043749471320205945386563987105772800874892417256481726373004151626494397547048939585453176691548624556540322360952919765324930788324309822917771174758229413899723504721484581706062961240227873745517118892930336165194126172188328525166727359516994468237800873313149414056425560423965966485722189846710307232889686551659469766068818612050212349558417950410728681619424262758964746843575711480777943764778217689406063852390496280282284831285926336088385964608298263482672240586934161069780839178419982608841102724581705160569987015772244642275195944492378017107455514232893787776747797880848094568075829130052927032994660232229825585669228414402173157853722041196624049451031510165349251917149215874315911193220208736258312654828399380935414337389895129609962049473389476218794824592744410932378262735302612320694646224404602442975359433516294926231785904767001165629626264061895700427329409089874669188108121775778816538219305297818777170676946832542074748016396313518836091187624408101365853874743981883502885806389776511097106322656858564343043892344303212373198682061747420910011787546377455220031473672378628704345155255715402978196547174025608793317065397382925281143770675425372421205775712082589840221018606472030476484723250038088714476594528118241508488434875265816268661354345760084742692605881463669413840858815779861540087188841795858562474659880339409686105971438968882012558390555413984504215777780668224143482679839259438260701025033028968021605945124413378206931647817592928598925884710703717262734564362221311725821736105317329962765017754758342301155377409501423635809638939058193030127749950728031378819541448529694775006501345512335239425338371327685005001243145523345108871559047533821840561701478848444131916036650000277756083529997866422059166597493360993712039765521117747076239894022133754206146672786985478002902518884858356158973027427713063709529982404284254617852042862502087051465931047590026323838303790705107325188409283038723582669318931275083170273514930127813577015483518196238928053989250718110898754528236788627165466849524537728645496553877970461336998251113448387014760853097394569377394872940800712582755192405012549920431401934705599880604749714942580209229939065773328035635495238910291945731117990154384843717034840327726794901850237501353931506156965105425279151864598666409869821752080819592101827797505095386323604086692532002374588498940201297214780909081505366893321574315483982211087764243393129826563651815582780478112769725607778918136000624009418011458188827433059938200646014376539979065218450669827340322256971259130291199224596718012576885305412294227618495172005818208892792602006874604822500216037320081728509087161473162224625150782141037039017590080435443594022119430626226532290575002252493401047527134367407679183243922701509736043876414287933549131400774172158673800232730058384530890438183537556246262438466528375812262598363410742053634654622436822840111717283711601690053496431068589294698964866698263925696108357318099146833352749154778386905906188748051622154235710158641699154285636514127974151556060248345001030396698548786965906005184675424236781902984528054208991469283612073513750557054025238848783770221326632317141383136080532042539481348027255019815064540436481616534067868908668727852330291262433974403586940391539319320291350621451779030387077726841329712687188483465352906734198044712269063687710563081617448989829630558198906149175446808448166019445572670731503411104297806814761767318129657362583307035995473943497287568812906390299173672392707002997153160868096342818062032291067786667365056346287301939587313765482307995575201404153904730541355735606058341064884938668129021172977639619427711384135057148102308751153562170814674267449363618842267314595346320836145807223615213613510599785131992130019411967767435232707990157272066551389330869314735121084745727180423938387025186817269065968902073243856595915766273088939688251367300357554843927357426833185716626930510427281288435920565293812467978224715679786813843348046230649798346304273208376616056547230121657659200260834733024985676827619868200753306936788739317364545575399109197252780825683738860390031833254543068392916560531584628667648153762810575711351815154614306349376427921669377604554733125781096512860426688319703439719594732930716102777184605323160496832853680586320652633705695593347926424648494081887425953998561769210706447096584136919677778551656423800491504211529093155476704815206330309868841961461949174634293869574133724239771918813718285502516933184471016566109763327223136276176993077346573201372885653682149516920004230702059769702286351666021872047237952766619368663328840718244318644164834996058393341418238674739839878034929295369303547341988641514575264269250203570622575970826445421763839833452349023067123923755096643633672866170409670052877671720647020697977319728323741257019022506475636708830880041931851244775449095019386422217383841224391511342231218676136584491797609121072081545374638734666422408872479348101885931273196849355603887072120435967587965051857502945996784271994054720462618412565363975442352100354349703347846607509109149739476989729917174463997112559162007985852986372081878894200758942295199478503535697168175587540610762368094605311385373806832099153283806408483732107836750279957269090693791662629072289271442322752460228063418316380171903217782658999862161667914384749804877220163397906942971722913341884929857736161692204505079233010824811064744933376080546111494893215748505081580557404062072720217604758885320773150932075651586300968865289187464109683412561401545657421888553073090588513634344769170321319139726930554575742560398950343512413408192735904524969360974948701859160272857820182754427565803779092045197351760196878369030266548429189273793614950430959437441591177825842934925664958432454727781734800698561637468464114860440828476551905148906172435837448050673081331494962761154985211350991464471706880367591800251781822917846248464753274027588369192533772024793324021725924406173598480183911507003702810506888904491182715411465740564907579973956778233815510888097208917633190527104776619412792225373009060816281080866292683411552773233200774916297440428999217701796967823515328894044496007293186912866423814857393702075264751237237849431344432482214038879905718206266267966767334568410100809309985264536223512486657476769177898268079989613714476055139258181814188541618067389665783547608700961721335663613940044124851662303718804870495842509127200569580849472163139143093890294629924648083602201249597868230723502411587265471662388547396440535757033637974781482398421297796424365290837512301000622488296839052735237499717766526708735591131791250444022706934248695875255972703522708980514225708228685457432465207837156881250290703165551002348265360855976682652947870446615948361511894016585852637539516188709063459370915534158746235515608719702008659700694159542071714936140710758411497590519616524255847110533130168044302196165008886902127644843521473052101996871021234042040920461392120747161382734835632947572100550056915492629885802983272492339804720428141971465778953973954326034316771522817118111774704162966984810189405630873861800178476461787996501961059917507440388251371495602098322851589081157376853041867814676315298966446574114151780835819480486313635830066650720761004643302685972274873696710349211102609503328930635952139469373911300684744776045847371250591102785315161790873081269245877337417930247642301733905815844192955542092998877485941248314389683997350991346787623675500553908629721189131326597265428589446695887707355409146274958556903845073767267880687627346362308297315049378209318269588246360693394344278497612302692767552581723575477348740504639503355903496692091182363919096151918565194097682905485054967850212320721507093243100367588487537735051167920400566356487321993141557317813234888552641800583686538358652753311772538723683950179767302344633911167961952156832434264489862849331564140119487387736848937923005707081202893433624882762979883665076855667169190099942747976463991422477553141503257195959255359308569042886314212774605138715362012119780400011960402012280520733597763571751920178051708224763856526685033957493004024230635941598098243229552605667997377925968427620683293624600376820532617188772161356015308026469740047868469024949210189035553295280668635484201882900303299949199626868853270970202213279496039100554332119424180819629743056372993026529545836830085987739711386174021579584050522395552094197968761929605959703630359855471163110032536802851163553831117274862076367403779340489891143067426265845815288291392006938390914208415312883583476863451429801271995267036864748247772707585115356454114724290057855663858575249833105910703670545186959523424701068068402060588654331466368699310410455511596648535844023831973868634206858349524312543791696059025260202963297249804197328889708823513032167211116694777173974814246598127187548945589204668153657007134602342473463475185225755396709121111441916260509344704532791517783975079638803237758360846756587954117446951533394383542917829285417135462996145527207468337665136792529395328209554655903059968015249401441101148254532915837258264837926163987731740478699436585025605940174941323695389433560802460102872767538994402608390484363592257519131841875177582346151317991243578888580492177248207899027045878326719722757013186354487027335541295062521473387605983655248651245210358822500139805814242681992937784587126455981136587348295643069283402005151157457743646679641687941327675551992952454077685507714241451074428604107929998866975738466736009519642013461350439861549434526607840609617616568961497378581319734464250956015052301015577761172227388745764393107504278809048105877023951310634432475567418639037513623761970815146272513817765176788324754115770245565814345076163640283260379225643051229007729498084469937493671746097340511262568015228403294614867209127009437022730653658658365096944603808962025107778838563668677158633509080323850728751234028247569089900026202521753167618234528187063518981135145384371867444583001786409140108345669088494294777552304046042943670578173425091236856491345574734094029521987867808613839207321101524285225469122976288955858459420061789458178470616202611464358683130318893253399647419026587640018370245196034030040160646781443054519224758906157628779730519804810124065277782482932123806360585755586245932166239962984274718392700953449285939670418664204564982355141692880498235073752029193893355959483160901011825051804059948754061023361708471601601964443464813359876568373458317132891034640065484748007315389285787414443977611792242388413954766279295836046544974255642034269094675399555241204703396411489444665984209992551374771480127280400657524867196839790719222018394664826827490108471079108121733218117131963100449929598363273889677758005993427682158198887089914804083756969688598439730597626758713733600842125097049425989065355246553064164803786388679037900814992756793414310434725536399081438149273998291905431224690666338381471192363255654225766292703708912799409006099042954795303453847315776245656924436863844447788748437345859937270735748504625202194108253346680735270887373129669820794977848255714245877792468395142572495556205501815530202422413182226272451541849312487674024338668426092124658841856970913071446155598163631877223977737610349723775309496800903778285681644986829659190462715942675896690673709198032971993086535281910858321258957146569376286064176333725081395569539652214981805810277706229764565098021214567760388998613455830528595088405645367894393874060414676446263572819057865887735040804847321671333392326062359122939099967611007611839047551666571753715119426380471638377301597654338871576837903942358727615087427129943684215212684310987822633985250432382980169634652674502361183312651707081841853029826872599476876129956752545883817023272103232600973286623038941459961688469158420788797427791696618883826992789908744602327588493289186003618889906907706339069610972588457527871411731774258299283497062484308139354847783091246801868821436169536435544181132600417105396923100466616276931001683250664003233025288056340870650560473640703914920072717169587782875164139241577121324717355373131813209201260935103235766185694464926532848324204502379190037319980608073652599875309064867500085368237997267688374413764879719291575653055932748715375033322879206257539418223998704650192668222466047142257033814175462931757256588754238830243061813659315734239705289748922461548738311526913210837597745530638275627563628760622187745907333426435950031041190045068027573139028113961588216541344579924900803690902532353470754556190295547855342321767280333148690353574233940794553640256359651857188919494859251033742204491373934928080157130811557973907693483722508610158346789719620984090129655296912945609157138514004261898601799471911770186004509112291213537628995584918623081275823052203470015638468722356386249925767418296783119141375009626006636291821292019485048114393422837276977783592896058284981755832237028383771111466141430872287150935828586562411717194749877902947606448536934681602529160382357575842670486360975435058083468223467234832534697676204872616871866952505354215617153530803803821296417086559785929922738349671345570463943334859113274720755550594444644724202729524952572014646050828497080869567533669333343507807905553857363424246842198311065195010590676734106087562010360387446202167226752272654108704667020179927080847034177996756835795029291140755248517203093096793493084721897876869184551170324435654965288919700257660734780021703225205182710928078814624094236750787582835406298511756101446478361874199364703355799345251023161654668691852275882211040372663653970955599615012822081344307786169058786848333242535911643015506447814677199359609210925718573902706695213241426441176436811752583142919690885107796314895829806260192379159265570591949843513339079372423492255515086392383465061344708463361753725835943571648767016015948214197471746306357857621784520852405969759731674204649358312689567474727209386701759753183844505260718176835744788897282847655360723585386115396951370297809254479725586445685373393363214344006557230832229110812921396929719579394292796945112555963994937802250250936168938678141000971175820930339909819925627345907962973553232397766432988192022284674913768382222147691134999277350003442784408042759920851522920428359454721657112175061816268246522030474152068550101678820691861348349494018419701568800098700989116420597234164588681338436766899221264070909525158018940454506534000143086613990962295808914899576760026253289827991750335832160337491667176690144233593492084489712493108329274179521928071110255907661229976919598537182108017676954033231928017352929909327085503530983647804944929187195611936546869114187226068924314216170929603266125062068006865370257680217748925981843105859271641945750306768935820762646941370613057297967022649036357622609850411740224139372226020958088144346945390685272195678606940224706835194362411596650966564851148909265953117789787794487343133407843622546480631720316524960090029524370958376485101856095221697023203030206085024571335668328916384978697343960086182887785887830769160888733052145967707592655678275268949074027340122473603305833631757254733042816572677242533719021852654508025673185062079674452050149449839965646977001618182636160662664915211124344631418605096741862251707258070989898006109370912274258961602458774430974386764280652711607140260844946551749741194508741497017128789940411744842010344874210941346471278925907031559005736865702963422466244898319546721641028879271954968593873873775439151596589367767605106592547482130144108841206919197859069843625578335995794619987371611291573375239655572589318149780571664692671661332217839195922974699478677805519659013737034604741174162275150352226017117284446268063275654297818201331136654921458206434444106984370146153477756462774487477610107518551934260867878748356179952145949421991250333002976008763758676502545925839866191540311332958494412135230019917600794600818594336423111997920343674301123094218908739524082807902283013240943348890416478654461079075082192006716773780367723166017817095367926262856386496777332423096529745687625079700322137590669301003207430703605625455460796869372372602033177695380768499006874744690549505913221359238230912240417093201821195215381753682700560677832404396883521057043063876035662213095980912956497674790905070182741641175399417276710144234018107467178723611275595731671603937401761883748966548829566693507083032074527950666761958413271022026029167958920060280926977472081912495625194352076617660538914670488927775923854411536444330603407214295967773978980045206567405077429384048807945429981716740309253708007948939595962940214893253861995461672636157059771426053791044087578213667509615753478313013288627130631341839931071012845188220010817124559197294768042790759745083740349767601849518584999138991882947224349966763958964752770198353455047929289537128363104248940382675945491332397447701219461086733168085760719305049564460253209596224637876200067442164321349406670708174984277366141353939160893954175248413073883440010439182973585304988225507995084590340791717910192938202425310500862357453332880098084758163946679476148816216863413836860039329318434293944958290990982835446253770969838635547478757703700225410623407027850800272541312887761247002965997767547495721562896105262901610569972770163763025502042004602452313416076660408432755446474292502105789287823176901880348918394313059513745235710429900504618082703428328737056909050193673164210129028575284846402441781730920286825827747189289511958110061948390934915123428656231210762749971273669540222733736371682548305158878739499756270661857927665739167527763501696370125329343074857206280866436512776931668400862500386916851180637885640697068886374296296014743994934425382812574688866591972275400872668533182125597677888044364603926100857032921528914004445671528006698269781932177038895264995569681051411761073795839000277563164182903059580354577914087009601920503452059622507579021177231903046147618819493733734821833037662522789826934368787619008606409888367717184283334193071036265233070122546550606164378817544945967754579422401361112558931466892989361061636197360620083749182994674372340307060504917507222981882993072425055884528459716224772458962206807624919355383496124985909116891213097619864509963481868177317542340976059338615713439379027656142063131654402540903909765258044473699741798764989816723873533146252019715541229347856952763240028312368114043658406327208987590892315335231600053262090112191559735063951974740973422019501389322596465953837656787715061064793757876539929535409041304205835495332962912069538304271468187119399407471953126692009658666700358956506267573547567376664700221110232227267363709564300002869761307502469304025841484321242715831816034764222355330270118763972310712640906610081546337447997886510225942627965857196300999400263020399157039384924255075668786395108844133429286567199140704887655109300238839544753101299742435953270734154826380945241012109757000083867884257303730859844641936341160943454463629208787903636017490513884717834073424851656067880037890783646429733196253187254163602996376483514550302860269796332124970591227668384646160147181796152000959228712204320617340056158616003663262574914189567380107204829016929918685108639142745787783687546641591645698888955565961253013939930482075222811309756096749190660754117150512778033287376822614102931111887893711708362987477533157582461139851760859942759622624404596533541102753404298158376078741292506508216772503494289423334329698094098452789497083571476126590611284893565976275696013662047334878732280627492837020256991965241086280865456125726101230915920488087071708825418582532663775591029572663653612178445102095047335539701376923339279900780409155690787098316630816947962766822403325398769598011540342595223513706936384422709342670650490428596388399807613332286975708863192536915909753809179004736936801556754708323790786430214766181266129079749434348741560957811398903847021162624936205722066254766087506681978827892251841809481401520797064669955985320096244665368247554468947287307619599628228719882909452523079937223603486320815807741900601108957575194293752139017571059309144760003646669817327566570760475200264472262261303494958642472958175246980143051199605060297538918633169081844192217161137028404397501168227419864449771004616656769715258130531293545487188722539127034011321199757189394308658930335716270734436329901514009651561713416677912548387879191563294931979348579887443741860118186950338784919038923312847539280020006001990122293607961890503479759251214986102003444584071453697193289777282714778253037694003911091332167772936311408673257848640480141669835943660448086264469255282150417562321117945844915980962215312363181611515922064167421318326269730515333297231546477181822561647231952031023084109318863317325228004681805589160660179828265431322336952528182551039301621664394383002431632817321060231277913667518398866228159628472759463932046934832852795656272087816237046709879802683463856457370773506633861673004311681275171851005260065298212923571043826371394557685840609180229946459554317218705806812150483046955214052385974631668730286156073545640372418075769483092134883051980988698192638743837198493839038864720559533931116633644450199632764238276310364482945118883494288759885121370316549248057855361602438609735467554723580189459180461631215980281627205619563733469124572374064315693470252624543676161220308332094989001500503447447387365716694226051175492880548475930552983155653547052677609442186506399410151780172088839786097882629342007481506041278294934867843034307376612802734461186734544204463396165157579712757861827289955343766938185964216075109946967202101291439620667527265602188489638689855399138084141201234756901594651135255490220613580897158539478931676198792348435515388958697703974089818191648702435801536324727304556602982223745621924600952108939543422663176295746646608066938382167035620739527918701948272271206851909707620095032682002761675804571046821086375085277164127960387657030763085380474253573811994278319934172261898410456074577180561377055574750659262049898888096819866741002311846391393365959627543915200698084074043511669882827001967618431969190629283725499963885098491642629079581067051936266258965919331186418446914323383501596937208491269432608112971990558085891806615388292771969738418492951960354252516619743652792649831426097488426767569603821985534722628487793905956701409725640299139236418313437242354480358581444562923929370786304412035293852489317583157659225332535789986962128753790967118151203169598753969838593805671828108450330008624092697451203984458663039571300769720568618863021434750077292059789068874726638927696579073985620461192278354754802746395202113607590310813837812932232847745830906156921446366566567944375555878784206352592952723792075220349546265726574908194630697918018005561344884366976864072441658515461924167188148772641581372978718646034413628118000591676405623620467178109599256581142460329929131361562662983253780644948973893008793458508253823716536172308498354749145900968561579628593851447566903774705413675029399502979991607497337398992190539929976831660142589338769765379171453102936806950660649332734575798275426722317234442234707466430519540464780326524450190025649067254505952543935092408108055516719992152892078167057779144299883779032611467217372781904406727180942319415011492150060303033943355405620549735242376834917454926004777161251559070142690619957541959091798329201008581545691220098921543875441164517730834832829033851144905618258408358977861902641195647125981953351395488681023801261599638454345730302504517778328641323820985626241885268432390747658473538472862605196558991725492148448438428022359401022061280659721682934789806690750481739927761651121489392949961660158666579731750967534946572067787752155739815927080888946157956369027177303135580013789342501423638088450468691470192026456299574652931253896806710076152984541465383464583003633764932007504590294315418199901094552350633016438257674844290931212670951349408394135444284399820331507616634869642562576412947864727609603276997038905689190476627207833938095057023245687829162078773054519617411802367926892399578594674819689523689388576401353373729801511884045244485367287663717546287578803333381000114136607242364927572117285307310297914604692354073931945500223737006149350802535508185247354866681318041560012570300846925606587615559849377049371928250737171322307800664604952188423169636444216779272022890565394071370416515335870696754505073713950459507464241180955863781614638752611656457819326882733370491855484356384733054747069649486489928085169393512165029701333370161631927335048898256697132457485272184005069916142786602378587474681623600960425039484457810904984802055516793167552037258735103730596688996637406075575405281095589373704664478142189310261116129761368526315717352388101810002254505607589818913969933747235813082950487138064160591026266123098672199966835781523731985269053334845668483212596443816409730693364397725589176433902330670172148106051294960190196177836109182404063429234640446293534890755872066941495711538183119337965956562166445244589289876178284964134368932184282073298684084087277187826732358530055384873781787179607241273646045795636149213894542732294471034219347083844238148661987505794797613610662233720182612189488632716562822504990025729228202056348985050021801505685842338619428017691426216057974673979154022122887170395369225614401843366030302369661319389674594656436585487733498458687924941764327823899921925761042828754557610201391646834021508626243183000043271143665495441613182110632033116280667168607972222770852493988791093178011812052363754929960673739429487862169234295948358225304763297203333353501442672252421790508970401105993342165513029940590920465713053954337370359985794697341653634442301739189129669292695943859998230447384343816216426841836059329615357463842726959443889744904239297948379879481638683367269905873858441863070309888016258324638220401757846523925979879041634008864692534730128087375928662007747412824626612097578244640312001098338427780302308650633987480487037758596973918774652243982201120552325024041274539270105686845200663671662944197285875813152261691804851028788226199807902359854504941259544795140587264390762857061875917856219722965329691792994106210482933691399602595574717746285060397092647545973905094147759028777356764596860602859796870683750312747130846934283819053662791487745576866514416448088822839828793598165941177406979834281145296261478633132471178834488091094491476542395904454292551744808541838644352986616945600443530014298143100390234174651567326355060272108142797262998014143530170760679832819180288037603347177265077975895533342503068196147372614509392810683406452354104130765246045026326664094811539631814725110584945867879752576297395994734734029990026009662188234466520671796665536355297725965358701975046617288013617501814876413372733524543884128888822990487216582908438110833066726288244297075930343200719291611624816612450380077342366407224102002234204422685083598948338612922179134778484049729577321360929675951528908852217068379485241747943601877102227128023066886648111233770772964859425169162687260822818117620019955616180880411237269011278319735412171011083749637155263568180837259876704578407615411528158331656015269265304199457187952300694717657587512438612016666855426107680850922711440399773556060148093773177732117433583732550384672648507420238573762626723614602048645992016708159463831575730434137577832579036399623985409543735105113937188391576961792007788853225299105387125616861810274083309432979407799943567153697049631203423646035594619486777169860770228930064068026500590707023226054161311493237587818069865841481953994939830039954529921924117747372340354192898919081564595322853591715993142233651439142982999502855166561230547934679443768114429202345708900676328098508662794901043994325374968476683509829270506849992456672048576630145488397152536060960805778215218571328270718255624537644481772624654434850540626015599922906666297290290655174395081898731363610989505952004529767213126229256600956239786058367507278887219323619016553119289948769546085876994211001858466284306409180589978552572672741329854834647203267025267141704678150804706753793505612143845180075352244883491843993057090684690365177015578093369237025977370155899737752797292155933080057177404978347472244500455531714143706767146098362393244563238296702604918563321622746248090698084588610770889437507659846062873203779484634179170234060764889058639776168279727789596600585579061023620662411038315800289941613648286918643374831082397989690493959902466117420452974645460238421836430297745184953054778441093951903592524057579102303393457594605265884250753151172083714144752192089634042800983591631228568217060198088387455595304186471663249688174412853011492115629086201770871556552192677250325910104269255801644808390745603550933962857394428947188306732635320375693091934125978715049025874059964252504602784669946719510239047881092009445071836475391006073008901894586467096501564028402939424635903675016960478638516926145480839198922722703503578545193712824247713034417067320608086791301396042639565385548563736688826512397270185191769856424098929958348133713665343618852483707833210268573001159081727492441773199893373459788973002669988880045032412655916327403324933567372362187797168174107065505071659754275792827605080314910385340227976742740512061083659036862238891082183553070257133565524585234067952746141461781120214107670773864696505395319820375344238744907773581109736010181443725625525591189920088497723385416536153453699690741958984858665636293011836299042895577104038872258197961267322430437035236698962974735767665709371272905997509083961916079527572120346950369482296210765074773765919328676660098794887206650381212741250274795579180740239152707227498514049992001536072704814468605412105524485197396962419033242503801803813602012188086812173742586463066035283841394407094793436130417494812155826327302873982485562044871847201176332376450893700898450231234647951181032372371452398583630190539833186257812969694061649982995207768411650022507800294494756192820516200594382318210907808732652114006138484674504327434130695955709552691261321794238255259208035609745982348827463668405123431443448083347228201047446084296934670779038638876462587967945890435440904093812353124781648989695421858808446494619348775007047272593063901680980251440820818269502280842942070363923105947896663763237397799022569005452126651089762630610795354965012994184182397511847750556948187252262598636665292823101238551113429589914627383655182443647383770719454182649548321978878326050867523150281443313559752813780496676552632968051513064905022955953801654820235772458825196822913896345455642000998358174064201130473600212206479155957234952311522454769266540265936348801988463566598591960234307979457420701943319299150152669755082528536449984580172550303124519496437078879776281172773742704839797410361216020396720652207320489203047176000407146011980626764260966874908159391482178193932268578289959906672555805184956310914977448554973240826596909948109436651483322007819326247840501800194043272713346010935117730230816536162482162404500278278457955254264407882479374006119356608761586878498627543240930377844830909120065295743801555333473079287136944412480572132493494219655490803379368975813373210294264781571702340666875078060765161185720126111868622515382297152624367432597784866862163782159569637400541974113838907034232287210390230968094645265171316721855092638311104164878100265847359525775887591067061874542925620644861135697472291288684107613446241537556984879687091667497339293385786126103609800580717224000498846432314210988542753565239131872469790690286460917542633476008061390182193299401214740608068193898226068936035669359763273789725724847642900330202963163179836628202142993080156550807202093419479436189276716966930737410212793935392108061323842529367686583921012854525568567645137276189956558811196857733525069644473142226524405327676371480936311893654157445609038720716481280911064248592626861632971843473125528325372494034286844848389611295997136262298793584289539722090295193224487544993372054973224067868409344190701661410809420366221215154166477652860900280984030380997867407905840590866916107582151113168206091367952482113488980276618850139627908980559421700654415065837633407794993008987612789759082927712795835898301873166074662259544434538265951188222063779919818151818352474769792154423916905457619654029466987433267081524610177349618306331067595394810580854448310237164486706390651217668889420977663919361797909315329016789401658092602225333961186208500728631998948602192622089688361560269292081041038229946466908010823638357149985280269964013938451861679981026718007911817394270809942421373844990842649011354677802865306786566574921074910118691030784641924897596670026266826497342880811603167261360072436366180811658686229971866953850564943524628208969331797137980819811439243832788074809251422261468006944660746461031135221169821495590813282520303162360394748864512396956761449857022467653370466194605263478109071947705332702915287351753708995478996979586156864376802126059800892323524462255359371455063559137930701616480123403086022129477859874233319562897659823249356523723900882264783645932983547433060624213487273933385306224870573910104391544855767964699696812636019437860256455807526276361901229538913300673052662493060091661307055818637132944996346962769112797527640155227997974528889291536234328950766525612450475203627555714860550597805574731385296409527486081942794428979549571073561220890743802780674960625979585610262291103533375755693997085016097695079502345020132852121832900965639157143726365031447293908144203165404182555107106125285277379690582837435402923938861760201490541080471592703761949909114374746310125400371490975593108391001789571093267124307260710241107151660205078245812523133869665857425611400036566603901011373991328761975005419006850204815398362015567402148163809701309318253381903116794879563467100997347985825248103602744125571589772673732025819430655203487867242001222382724828635106727425512726688004226741100154342618818474031905364058419367148713204445812050870961834919079829249591160336231168617523147421059178903046918215105086973465141862053499725368386817045540978828936518907254442303941078302174619588485164941841656611488880320710128324073297195471955665624115612508685224094811618401615033884898633536918023273304564843968383009686550338528066096108285741088655006080465933920292238352279215879229873974197730759043742162514808340499571653318719680111089273496839826474177570042508590944174407767244861540588809213759266324234372341707747335135945467468411541797789458036809454648492515410617846810786062949019955847906756650119678808177197482675779607963085228642067194184184748138447328420120357872989305718480432648051481523271268451187111465876123855036977366852459040319193379344029986458290276010449798215244049564164127789167067502188257244444765384227757534514779077538526879716368623605011938043873247868692198897182072730921369682568362110419433263540053051151234458577591957161936340635518302882750630464656344042426787045174284394438870599700325494967787376274625958244274034346286466573882554610985697357541637399743811994942616328760764074966660538577407569545088862137312720440880167130341860564769426049960813028032422393298082528907091545963711685564510002752063899005150851248043807578949235677488926092900111109579229044666132969095029861296989394515995339715512391282833555887149979774021563962695932516834537802104527246223130010154506562424533671969489603127183332803621149844998291291101087289183830744184044107820935185727298364457846837229727944674489986167852837503005502408816759689061540035048574462808562646833013546665163308966150732718938517784974292193868119887051240322798489180342909268355687038656322428890372448845994054002088806110827244031111602721301631366423774467891501425641593228430004552391266947677398226123023968006930176940173980689459223388816294731091607494197794303396061231577658304025666657917402926988838972155680491240898200898012598334523255708272843964628547052440959291487190483420513076245865643330644577817824973979870936444064763272994032341905883737926380944036288837900863713521542141362123272029025309915599661675014441845369658006545447435433657018909619566449468342687925303357031037674975604394387234831689557781832275105522067737165151429596518545999812535399975344761815181417344053982059243614712064427417162490043640412892937612227038430367351544214052811465962412850291733225854118339399244149439077102655205399394601114841895436204648835873704074627249494578969073860946697625685494247306865235947115970136180696777391090675581671084366070619487849543711277557862850646430564433029991456853190853594149575164025485139984823013210714626715309847340503571647858754062793445490995497628019045610518351657287282153978066745765180284038549609988768555845784520304556763799765082397788047609813564561767768304375730713034627718303367123631391109228313042037912592782271633626514261915261462888609615817467418536318118146728329390517144489454031464906503469975034202329755150140943776968550559992607333091327025333343442967256955226034225864634862084692693847351986379863822500911830578027176635812486099647774697842843906148856763400791376598524413795558661183203685440021987972735694368839140635933418223847296237775375974544316634701783369795361999675587948688468243241335548822031812463261121571775279945929716581206629030160527637358650703990018391687103898205133519586587730864858763403934771235016452155117996882393504879960752359002436813637891064514431775257226724004379712692688261974389523968199895896935900986199636242617566429044836900794148703563454105874417630954687900642874673867778394273595705746664928617598811731893130036436524106998957045203572177592213419530456815416989038624916843222471976003810621150508158864453621601740941524681661453819895717999558595230802904865182370523243946364555497924523357148097694274464378059934178287118583066073176488969271030059001888316760604398426694222835538295847408703640535536182174925956559092311380853705732284095475583998092739871197895241076908184336900031683301560853736072471362736555856945120683048342971486975024172986453781234934468513134060341032758399367150245689281414068825750775706338360277378126971882572658490570538713882665408777395724488889362040563461045563027984345619122536084984935864772112692541359433108546163230678696725094537049244265923862776831197120205076591941299384212588894075529984186243326222617829972092494026283941803122314067755131144395264013780603578276463382607143107735199297571806060430421372546889931901834016378276831359791731074590347463317996919766788871637724286125298507461491251624065063483748863912308308102254493966494451687651069172541572594848990624918999333188874656403209894773117169866332866988899858517062416836657790311259947026961028145299911394143879702867558563850715149016506528168715955383330458897944488296915690100330427516289813329331497747139752773124438614494216549155733589953045090278865475518161147639129620211568889685912975347163541451082148476790769389561741370706818984806329266252691703829121499625466331094601866894666867035655031428529364895360786722776072240584008491398303203162911135081889255992213458197718104555636881047108398115148353263577780907024537077650257927791730452781411406994821288538520810087826691551655576367339585229652789217006771399634952267468551832572537665854823100294894061177866433139351042505825960104365997983996225796050572249337938868308807553919394119186800566531901703916670047406664649903683447683105382030056196764683364155933861454984383592727024408215488336349833991847993687214692815200355198372360576254081642406898862558469581837010036050240519867283898614890551044986046826794659808286441026002892704594892595357880751023047599760223111449346833454021060034259623805627863420858214104832904230017510274770485792206211218237360488750858228298264248674442806969464513016719684948134331411479155969742399967558850392728481690179292481747839638171842581761800967732302919227329643883256154101532043418237671390092191139903794904681753869573885949645549222747452174787307146898287460980947305030453916637418492073400397735147561284033386661234703315352836568866983325209205390761050462992190237554419133263303621387354143481735951223025071431030814220362180495368055919820232510553259590370844720851273753249411996260358231322063960658085062992891859813707534575313891446659583822192762912065428278887736342205771213799749846133046460495089555572496465594038099794740695234199441813321256416188063046566203819641374706598676384116139621332514575538764325051945728374885595784941094504658394290855886505244984034405622431963708453409550987113384902699298749958191583240114010950949385092489018901980480150607711157993437808005092749911262586767516465267606803345832774919390479228401807763190593375375814457653743104416318964231325586826850113983631650049225549566290782167623114573905008113673641845713562801242095529114854643210610536761473511559668830909856803738595316381655807700650085785390328654201872957149543964698431097468827029207205988690897992346003734622148784228168901951455833138315952839249851952928177778318132177403468674882377359606198953230251018861314292080923750877485619570186478798357312505038268593778475634942667583228097642790330266374744557858161832952055766689431107010890941417068417829943841447690870942244336455588011868873459421596880925803107644169096330081733222643474660377228620331900328963047305419513925199360377938931296940244594804962957093749495221141074717901056533541416540934493729201139709945851346061196120803516109234391744778941032824863399282360352183083390096140418355546978487746537570589309991692607260365503050543887172327296248754137276457106955837157189839847922583872572348663550210910646047614065561046783857072651589475689193858461810572808835002138878498029219851484976888408609549559220173205159225700702263427510260096316619943853172604400841534549689842918884481970106146915123834165640740357389935262522961732144907141310072184003772082943897950542331967095880537267785305869688734430085930471154654844916501318148028684929667524179277046171513148995518885893624121291621207743960337900453346265289858751149177909863402127772965451652940604626544771845720953242777582774916255067767836160050184471383387995834178583847069062558229998032741879688254417241753355637767116602491482701634235259555845797295472977015286770425918901217965502333333211625261457614206585502014101752142491283038464176270565727403825787458549400382044253560093639244892368281052373950486472357073542282096475313961024662382814169785380054345918854508893933504879994432355633034780974237540426669092918154576557099125519548897198368244529281575208071889580171124606330830710456387778920295026368628561392170134949348882624809796970904843483191663248093942776289372404227465042871337431906810428942185060575035929908823638041451673270488286367808914119365859638845847724154927513234646327659721340208217362424462490576813432730606444524193704348940320015441530228824100952632411606082076708306066906207214378971783955360320197991128507199670388511129253286263618883899885477353365177927527155354091620337965278750164801971917165291437785300837314840837993199395297643058487721850453134071537505224057991149265359576340608822228962478954711032827462611849436426756597002119936920132201393586814562776873135283937727609933553016599377332260641474984567387076915811292339342584459957522760652805898690523921935609794110397234027955285157617824703440262620155646434526140718663906960358759997426574348363680702900022418432699472717210606060945582236814341415977559860747311002458984779584773506668090232937090670557805017948528642301781905392293819569041117547458088524451004233464321897875137326277057457903925693625274362283656027840120152049359705214443589548521065350228442040106953108748338415806523898566921099705817674437463561084730848195286924075941538183823721833162552655692716149922080360423199873022753615241209892940353669320797897154249029561102609627272429852043260661718926122464732021894171180845528781228551817570170379753720845379976652409554246275503965955250528773896593777356267072425663731126503284606788696748311532491774272734131541242628027413707406901623966591118495518589149922057083104642747316646716627551167259830099436768914977796775842735608580780351976185739394277469554814899724830983007168154266834042241925705358706868706498819683059468702589721069518077906192842989456526946804481920578979239386941252131178234648455490362805268544844869617312032696557985407331551623808315420984159219023917002822675733911480043422117606145455834659239220473721360689854225868708732774703288850621699161709997099147274408434800578076726973876439874839112369722917517246456034711249127030105652246591352111055521668524698272268034299835997472217250027438293955591938362871598056388086895540312185536434434555074212883560492490073313420478449755125623791442744259326252182785224210204984375373916939488763017662218088683749286475193424944300626874326665768486390098513308180420828644153423022152795101535637411755186909128211807530780553446912855071943771870813122823074393301530157411510451074370942735720384705419253204698091251497799362365860457810878154221285369598113841117933111076386706667904654945174366085551531907205297635484904163061807071890999399637989040437697820549097875881420027939105178201991475853099531802404579481512592593107743544242789918822577617966580387433047593982528143287322165945048460914107001585288587551755207363817339143876686203875549195262115241294677179194795694059711855150610510595611951635175380587236260265512600711793707340277218329412571945956130909244169143222192126606593217008133300876796153910279593085908881498792909441238986167701629648972086273761957796459464723855181455458861485726581425705675228986057861194908424217527517240752514154992100241585633872132762956529330070552254157088608013461871447706123530987940104003032161995223875456217948365784970898310265607425145513734692066963124967230134413150682084869746228953162798098425925172621149912025834812459604439482693189495116522440317539666657961744672650093257766215688047042422454917000443415509213119911798411332524387839126855524911746988199379627005177754312047008248172941206686391221727731138436511156463374415200652998725105762831939853532108757982865087298832490512566345815549353250408647127120039460338441504190909083638166004417575987176553128398958186304820300436561896700584554577321661671935495451559495636200564293139376462970588959321046731895580499425274025455229950206754840168827988512130591600957512355969494509442382139966315868972005885492309758797621621314690868107080000255609136411947839023343542295109350726036967892524149819863011354036426517100474051543717793299818105634174250721099714766182114129047316667591231859433300509847367204552859408633389222972402270392880353969751547492071696573402564415392706821369831573660427028405741203390469926647020128520748122274921638046005059977891359284585868159414887382348357461826137577470658737986348239909962349426529855328683503470067811515363707367033038086609926147752425829674501045963618226153937991050285225350330508933968059118309798025701595052503744156107812683152654536174886237578286114553642767835815423148850779092661941340099445655747201175637176584368081136693497269133219366008575141063490189768045330147361101776937672627032145104552341560146853453394283458700734365788058605590675669556809392867884594985453305414738597890307770072135721172491986537922459598137589324867687014668189163439786045614090509835244164742648442320562607190206584787939896231249489264608114701757560369435748529606837552891790476107271423665987372322642442421417827155512312131346789797293885895173164066095266832687028957276285165300745990087370324005952206307064370406757894890087364203285510555161554905289026500557800674084747483186838793824742999119793516038835459571173096013174932358791998833515873575704784978534776355352514712114788399623605144039064204086224291207536920969008329704016739935741724172224930587111666207916096254207849595388641451875968770186054266726455016684147149301324225471989815554900602995843585703330216019941850494039518491812322028735462955504690214914476447947922871953733684640595540960189093440819923887068133398724119806291119672521361391797165843256762130482560159075714651797764576543238318881286366091328634902003636541250470103883024334041767540536805379684338246558758786174580992363314571840484209521280311101679964817745387612539340773304025028548817016622575003199529594041409367134037585933695578341920349938593265532028586788360979496007163480510184332699482629939503844073764454299518904712864215677230468121106761006581498583872061939854142568751928976823049365918908605462511757467423687297912816605362928572478827453440801335824298735040769710113239819232616144308039813407575304971377472880699811010182435068036533471698564263086290661923829140715123290011621875675195886828427891330832915567430012476827428107194890979018023622437954381081869596096083990298249186999291489689017262574201172237621411692581683093309154095270759486756528828739669411867586166867397513493912975578527241879897057777740614803126313376949012694123714566257010793325462327431378248536442942191257275512110882744819476527779174038210230099719951774075084179884768083181414603215765581553185876670168482505922045917059038833874773736753626451157526586028187799204556460621128556983910879127498366303950748247870073817565194523707361099394001427207941218706655066318921739683508957078501385502380715887291001137535042527324301694891735562631994825680459118497770991278669714141166372307717431348673218395795438271949950828594397262457298507961274316347044295336629004903978359056822178895632838005526369344836084557283803052243960851978319229111866091961457071364870478010159774959656961897238597268038763097065115826917344233754751283005631009348894899301740026068857332177102356568730592929156284851882637343863667197140022169403451321454637834893253033435271913714349240439195236364335290098944135611773232371077558065279030914672988658653071243003769172211173696412040709373681074013491461921457652049614378329898000253836456253623086702037670879412733610370504473996900384965023711145798704885452543372445135701386205752176069154328389258685191550449294588841913850517318332433603792058631846147316952097917886686577788468177798381331055830832726387270465582302887082067849800157489472419545155876635559787335826418576069573847303826430784309495929750233155966065019641873837422806893125115102269895422027669312683661927737261017958648825068386686293214575354064610442257733028713952833763652590634590743946053924014261511304198749685924089578021702718694967127406127210343096078512936729143633232203283669534319901655607452865044837891548677286492050586303919312223555702858856422997807691467706652912293917277706796482284594081818741770875420575535783791570689882133857266429660633883423213658008025451102222904069828758205059101079273493792392935482141644296604662412732820185701625742544616110053523791467081988700866447596717763995895912864556333849750007118083046269246955416248844247151138483998608033842309442495397504995980830168348078875183208328390761368411439975034171042779709739005514774676562093141436367187706896846216243737347281884970436533247584089081468343235542216186966838933011601469012852816236138389844293041215439079128027201768145063834113974301570804132633613841482190981695322445804444329963202418101825264526667976196529345407424118744066592593455293081715240767199102210465865050028648225991777805572037410420844703827685113486813140638635965943268250525743516456333227263841686126916837459124668109185303856734418910216893222564959263623373942707424131187156610400507320790428666376242913929545064996342922448279540802428063890035829580436643346827937668934216289865413917291742591052212609628073062217574593689288847285527374963297099984549647562616960062129012854991017046681047142640797764526339497551412646686022673648948075237549359305264453123768947792998286121021202322341932653159245223986993622279527817401551351094424563907203965024784772633200607085655116087042594168292264916794884742002402817162734059870743543793428846480101231268425908801759797953925485529152273530364321450075037566270770480939243373139898394944037931373534733097716692367743941914907819466536214022174604159429732704310641456464811203894570505851669111561846662772614246014967013388905450765012476291813182745405104219222771250565334638247110161883510490737578475001262687279504934184671872448425061074989792893025037432111491579610360929019362017300858533865391498262294901854324126096556735945795517785250803045770071415111754632498023201870521872667427758924662424967218349489315385149463420387248350735311272969800898018642213681906643567419398273860108801740369071284490961223440162698427037262675974888730321275041276250409064610395220170620970191626270280376507445464313224436032926163840281944029679918517707411960794742061382260711061554789256733249697071595985378008341624394627158674642205254677426206028958051004730384350043996641143659166664058700963534350178748380364592761243400679530147834826436283452031757358264765950637687140270700400942594247220799703494195122850450345174200891142130892342219168166700461618716506788417665486760200106680884836196941258919372950937131618677380262735440336601969192595084064451946633238921974850137168239928859445226951422465298983639722924995883701916804669673376276939217736770400023531116929845551711351613528942247585956424560303668461719288681506613693712855870494028723937633261749968337074683358841854010343109357978775832505481037415474099380795095887895736813266019076811165049845457561553840912053048375263554149263843490928193379935262227592035736146727761943762936380956009237417167950636970193524092668068844052726558017285127977388731031376136997604110175260935525087981942632760013874675950191601652390988053275092237265188507739411398641030240908427203427328449927516567309857558951370796748833734841579910800313669665376834507046687319852626055041790473356635706733974933737979312576027538414131283876744338802667580486338677482505945666391870096975614230504234753233041112647775994967438259781853522826760281511715702636491341946032311931631471466496064559401773689655149083496610442199300481975710842891574147899347267058552004317063240489021172617100801565557737456019938503892388360692449957459113213374947740576153958227065353254810036993819789747833510104397710835071880714803520921917599639042079619028216078458615234219905843141940678248496427875323089305233888566044526102475537629523855977622609758766487349993926089008135475367788482826341557763324769308193685808733644486116919464666994924920133005010814682506611449246239887104654808998281547719681983086498298834356779401810558471965803460607558927109248378166840989571273751354151641316422630513053916931722321303997689836699005547375684051408758674821682967293298487624678098937693192431418091852430246495453883220080241659779285697299954941140800153124596436186409276708231146719202026750792352165078863772113022162235697031470162723646767668330480150083775083556418942686666217476284833436217756191262973033871990181475606692451445347042485792023971203858256338618417066980742398239694015001973454587871752385257684444007094511837214254246729322691281083074060503793833106874308931530884838889236288370843326657856640524496777019341448148605216387838962645648657169440908364187968166033010940931121633606248590905551003055264236349363169308563694715641055155804080269601136760074346661491534408769949896602668095623173444735528772943236577730163744632749132650461193027307902200283484246079268004355312561126416183367732035750863990963655489245477360786984609611079864478802465103680535481506989146796184387598022205108382462457068301967824317740016120390528675024269138131021611789836975417522722255129563955230600218499561557214007244837526502541252670634093184218928531438711111844542829508720371404606247595392027409148020554896832822871782757805899776844026363542663257717927343835999056916012958868329252437148448272496343407604593168455200132560048877135654999280908821921667017201715148448776854918532813131034586021637820496620707943281952439802531135097947657527715024582517286946418322521418949268086978575005442522355662333007090982454556845048098742785938352355377642359237247836933808525296407731762911511885083599547651977035405734720866543893622944152193160697073972625292842511541668400309622775109124028948708839265135799584488933379389737522741318975020363326305380337377184896138391025909883179120494701498296304599202860391932510867194122138125048366429292763614882466618850011140285683517966175460010472571156739894901966364512871299816513635341834918406692056043089205322012401154773681070313962781396455949203891210892777642664144947794594486122402829734138623399791802384081438595851540366590015190631324469214127776099231064976098922846788435488221285459856867782742149998427061443593978109521957994241431782941562274885741635666152759724166977454999977696732879790004612547476929330964602923011263979034265367806645250830194136336308081369966602286432245786586937219122344785107687359918224225372346842059709463313087938723398713617920441121916552811284128530786701817160611950807280998119510657507274367564224428809338420773673894333822279376702332430383903468059721273609865498825061167789511111608899487630570158176928144356801433603549306824131541952759769425528166538766664708139643974252542314591935923381640842013593408387946174864885476128260660493235587374200906406935055594708092512084176572342061081129167200651913084110308100252112785559158622562528320182118714570919543560429583580287945131035682666635553433956685815238056909782442984185507788573691749890552123078926801333079822680185655961987660862663087025889887734084370514685669721139435470852624766364376918082592563761739635871146205925727503456401345038935326069293745684074809794122430677369717788094730402378531217317326146556226191278251202891326777670882889781375501265124301701689504607099812054164558797194218253722657763064867258265825244854616738867588775806524767378233264692185522450240494770676137930893791861546843607944219278659699501343049436306053209419778122170856641986316095076187278147397856488595907576041543675396174038695198448635358760668820037741818651347935429523866959742165292423811087975048265221087739869890532509955858750124835342100994613775609927917748432600251552586495734593630109443047721523365619204123802677004815321010876617072752859891140623141953299982984939920258495877492917624334508046357844377641559615005493219955469023142526012719579625221753778112194481341764975408559411795326942061424139248428572104162638481296775479241315528855637562191742825380258158270139355960387484605063761338927521866230569662411936066456564325005561287489320106690966766875535131293731625369602377994355185000303841412047474231263776843041034437764911268457932199881813331768410073309534461247794431445973019454337987756912305157221680388059722266300183351983735241511595373604869807609158994207835007946461926735960127006496503206752682714415479680405876619562470819779197402243916826437251579160884360002562191448096247003950169358365082906186744037983742272022713767757168336542611265951175125606249449801424979069279279820833555342189988894393034245334968548144446451765835121905101181038329271078457724512525954249352496150203541238813709578125391384382526992910645435586433861147436019983943422634603146705766878768412060765305347788864159795845048764277054315507299722192388018533579031817109975398679900779125320449800790695441744162374887874650658086367980352538188765394884450375107971971924395622168558171691625735721424163971340462954347599055471117190074095623556260571480297994627529511204225527938725689536962541537036374376936656999367780032014114735234060228760914758174925735450094816335550595742180239164099074111202390889638735474772453187139861266179154761517735067428562507752713709968026050718956927711032960253134762559010201356732703953927534329799460112781837697447507897679605583864677957939932402014025599108770582741626937711135808483186211837436337037427481395386899217354582476193235320615613320264070568874566320828820978564951560888540016684128923956344579745243954244821925763352432198031712501773489350601148625539668796621293284054962054987364247294737971719888740504548642293792733792787965334275008034639818069332267825658971787591280353478250157485181084599899370822965503279728153566921190488589624697663693450535420285608758886063278896916422454872270285724604180388823740112855943173761281310908114258914736038455633436940304354786558404210134234281035634393271913067878226883360107418740868682602454859113516450677698226853021765361556485512346873667204512560695051106207726684954091380069424306374215094627062656758290632871654939128421922207817548640177138885139246823746551680458278116282081575231623794028028530414268149367150090992046030694755895621314508067531502435394049043504266929771617487369435327439539627038154915636833290952592387730929281955326635564857782083501659045803461962680413231100383495149872305777051704199077224463566702494586582128191486758900557513758381081821542800698173232024324151819999523181430877920516186664334159410087016429723815968282202726173644044167383142413498623270169937941039120425278924190159972879673043761727143858682088072949280096217099085811349369132309721938892777944188614015406340372550778314781655701941865243937394799795424548546937280487028298352408657045175289889334423899916498066491658175522394046498983946257983402107092374759188809487668327478143453375766356821467097742368049831913348678105671374100778045110546689067455705751288200130360099363383238235035687691314615215456728164787686041772111177145312154492646096978827063196248111759321806585665502870969450711035253296652335345325513418577318015886985021795780324898631046532989006478958844843139917076884175599875262513509189072748485585551528980815000829863086446776392553022711586527143882054045345037192452083828632060815554162701697960772557345457325559747878291130907494513968408699244486016494823170009678567511767290435017892740019743297489346442299685365417530922647082097085249707644875776768660471767765909086869036927834165210396190188075527763362679011942065674099030269714199348253413698959223257807204629570714179237362072866832718509060484820925848742955453910205338010486850150839414901385929467798160101581270796026231614473417586229094542794348527616480978832337787064053818520089529769324736247605642151325965526499913271697075002194669453233131563142882747406613932525912994124296030684780502452610895719533679144236749631439455932605368517667458859878314584849606876220127740144547651718772904777411997142015177518883089990757683574578110230767126478346835210068422042611547873529563870824311850450651960805874186932394645868075459775300816921765933581543103360960919209718190194089836129202866340783151900299585831008459114756613505742292488595474076654559184820882973758011356998984970988218146514893424764019150653786119844059892378563455633858956672314293587045782129724177379160004586469950477166910634943586742119596285814327714619699157187047818278959493026886220718261537631913012537395815572273328661278583996137998917426293782250309755547787949508105984981137550710102054105406400570778333675163931408842184110574182319014905762057929428592264261727934840015507765523640603198106882204789303088166151904530725664577788495272090189172631697350315785474687450010937748017663843414815493722108932083404714709808053888816197338081272173564022267152948527376407331152022038418573117073463342866428368146842444759254355496162292229616143338385254381340193514840380120892685665471147481947952391838421277194558892718283021667116947243130624996553826247162913597907982676473214626401658885806850966278550693542706382483955547792257254185169966007645052016271691068992941375929465021467696858092619815876356622368937483591191780648675971087596802827576926490411389931018357277894870683309954896058387417975056308154267466817212433555472142699668646705797770524024361014484460140497372080103455648670850547537271949837682255113950886353405848149345122128513216067466077352702501780547855006726228837325750338167124239236919713095681717412643316849346984839896665227611367151352721618514226071135148973610233658225445576982743217507753865274888757865007294452952795410830052805285684311701214631253689432437102756475084541025146217595232589963404478406691837060005050736240500527304948318014675273468091447586249104910491122187012651378357188670210665010294627695325955927396129449922237647968739938133495820960215379057203914745056810064478678058128809588343688638536384486086613129308903121689135485833751334795631891977325825228202630163388026948154908373312481386105013093240285893548884196548626958270337143779985654553570160435453720085191354135618862808976235513886253690829869785306097023295105294205004148214127076610859975454158458378374328059824895807459869910214051364938335803572833051389778698586439965662888024469523659275133147990527531803740169765487317097623835929860105954100169240206876988392216929729817552418280535796407754099178155679494287294715256039880264860063394764685918911177520413970928529166930165744596458866402620151469461048495492713657897246086761302218907472057100692245534380473316028746830579062289574422498931583949242402530131494472523118684677041521210038940275279846938200460042145385997848860145101524107938840766343710592566711471557757435445354953470329477847965231444913283160969201933549953883423869176946093815692168769885579525121482310097106028787769258228637091818966236875648396397699919168868706658129489613344866837759277308913614861423958091364466794936216855378733091745267729453655820168107523989234821150126824655220028029611220084054039107569671491500720960328045343224165016207221436411102011536531318357229992731861807371552265869766982784045878282399923746573798565321770645947301102566586771095115364597730465348948522688131964344247451695293815777138532235429843539631264008572641001679545776255203090860179892672511927516208866383330296114618633633935942225472585649581126745485385103774005630511742319237776774063164406229931394418411456741986388253639803165663297939354824966139963462298648397358803474892010012294720355879507369821411042736443609230866594383294825540114379529917130407591306483869485135597580448511876258365661978647733843985429983457217414547599003983734932283871946895470056932792419892907181098103700027874524182966905572913575194971927326452737816708354060955635682728717601817812482200028063797158926371117856531614679615956251725073873732317948856618643905537681297373361842609348431080924818086139112578438540169597067078647297345512257419394551626369112711006641475167139669003859832517868074885444480445472450016984276230665843744509500034561919197387953910218941376165882062964586724199060165722267763885986648320801908045899708963408610974038204787055196190292286200303173564168332354126503673203636043898444595278265243728708673355756444890589828358298681141867947196866209446151235071351307228908861984547414904928718782586249317168395680573086106333128296074531636661811328906148845452890114566527399211736544979204940312132769068745192195083083477807800060715365445517008337522211962276911855539091729263856608962728768283078675882793196513752130947535095129758656433789040215621677590351208109719981755825043477436142829974256150159542481546875795503148081799429506187105270362443483125811229398858885064290362602272687781863439977268956211804402199622170054387716682473357414771654702885617313299647866883796655296370125982275512029097762578672540092576767609492828108586992252467754301956764628597179799785667312648186013000191718715345167152533028640825653949285815727211802892343289572514051829404140253683472355226538279363053629014592668038679087170168770102804192273245129868110438496031611801640360408608949890544078086386957483986393342469249091340459338131935382177486367499332667919789577945692824212813407012761466213736498045198307165750721152248245354678440734071769375173973703977248032109375979845360655557000862344055019967607930417064774945155090406275942424557338876660952299427414648894050378303259785363597934596456235006433952155116170445001764154969484207946562826214963283212624640827945718218750025907150510984755475446727491578048547661181363308047438089288826133813142285684067876034425909358482264850326836283474011678023825849514165527648157831598214889720774757044791355247702970621467383167839848275331739823247764222127936183477704443420193376679803399378906758096666392611468075609265667667497860276382831681064892781542536517697384135759901774893083771228520724508127672568683900079460522046866523251018774520182481011508859741552187372672025274739656692651875762331544305777862555749776490388772802687332858565633595849908160566584630164999659449966710204662735445113351072385382406364860549300818248379185390487277398046448491726800386168778984075050076176602704705736689120411813710012350241770185138555479813151632081728910154623588292071636883756716151653183587371883831267197782456682691766994849040510356803999966580658749983682104396184048630043579128234720921127725342213131692910142770965313929331527332886925658587584622145262394559543234213136092318613690572663336731348447626861479499974542178729927243343654316875710933464582152210478602904190539360274009262318285360318149733637063302840761287587132785273358611779153379662392538267009315997066670586390238053201705656611630332777632658622078727476048508067796721046782792766364636649063549996318237221442253159697769895340893173555524309749119671060185447184842475870570179868921973681739078757761279914022991236756597944950647732070087078641203368048283026900683999680173258746033157806426968838130046327375223111142213463930220189480851045769998075074637485354377896461956287565518038570658815779808151648787785414754282422555777912030505798315838983061960833666257412487580872574126110795061052329977684455812260687474811721918458044108424110156413738825654917193787097004238190925213314302149580857886780484952758472525946491416093426476143575747173468742787213366275724333838473607021967570114974400430076539306804720654559329330319105172540224995313055634759342732489567233071139744160790837798112558860057190136203206816873927433368227878819842840221469818295610285481884923090541242379020068193507050275649460285067973533613142319870229695395217787212714199021137644081007136257182949601256885891313262055248609647353854764193777753570416060691461732085610081310818751196888365398327934470340467549613824584787616013840102056715327562717329822496993848026392769134985454942801808258168485451808326411395691842082302256144221160807748216879581672896127085124916127990150050195210014322956083913103054883651710754341561211736422165402262142696804987454783121946287513993121755686660749107555203165125492175339481594252111708635845449218659924353379132140952691253379293722289863393453995119421210330885653590790380304233869450040800321760823617646887967909749329271502514950115379082183561394249063299580496208114496605380091431318638800709053208577714103915814254220603356479352285478049433338196007578458985778426655329605721363267450458604605182229627771774837309341378459427713294721932186118535183953582047339545376458917850228914752531799348863743692929799774125634637727058825411926737376015600935345457153613994892317847449403808954785054067376844104088674163135238893149806252324614736574129110769906433771704494721063160046277188569995964197000531964947839608882244587480711662042942875230630445135948310846544646603766236451553596293448388745837833246741784153536671980522645166720073832681662465535537726458213092238580105517527516768890778091500542593958235959245703394693979350379808330979305182792524215053391225496947363449852794716588048425149835467034780413711486842707501636264834166891085105609046174459959462549746806554448853322272923542518563285885278700930485280284131480180144331801621668384144698713535825883198946194796295153824803168338461771055775326999908932408569524763313722261780191303614248250262541010554124631171603194862078365785640401922484354030397822447367073311477242905958012046007254970866676915999738791898019743467144259554397936220640383489426325152779009922868883581616344524005411365215906777286289408926115632215768640275187580079413884559391958139564865580691834218319424272886496864080786396634091231449465956151881231005470730291770928055719969872728680572153649590063783012411435355125715149382340867173796176348918701207862339203848916779187026172082087807790115124157896264071693710457685129241189110344005110326525486260843472619809524917433179295670152348053717575060113554352751741662704179436776424746022295424674748940763532668117352705502526008830777025593441697445596746194477257115773145681609997506966246397099506517407499633096811071729441140869267170259485877459585927154635769792538373465699872155903055984103730790551221681331022108551615831213767725297318558041290691290225260937771195103653282534101563514527424602972000719500301121636015812608683951837507354426748584036941865177135549759762593425335513413750330210797220898821510831611553547941805671342583540237702611424149582306692082987717787404488604945283937519022094411233195282718850871361388842271213544139916692244669877120091938411592887076742057590830884595619210808889155101021507807597004960362042089174754586437480951442316111406112722298320652178810773083589704100132347742108370396219408581717398355521484499513689381305867154031421546761061239864027803748473453120806805121617408137468951847405090581506703716917091234040201566735612362940280415401148695991089820266974600855430739646599150887463174734783432374164016534700681348786730792802566096899577211429546827803889154225860906407441303787684132005628063552711608137499646051889819525187446694395900732912826799718364542015491083919297826130671705372149316240725257254806498996870961491414039560520458070427211548022819060926852308172830713316035038917727525974138744085696143673975294788748676664122413439563572900039522912192445210223795060221799526278611242766260358724254895837973388862493234205044035200268875896058885399244801046910630821629972229705628421881794447602709035875845242368395866776910210837790631087075027741255110005117760422517602595594153079376675920285493186870378205274618851688791989585224985619148336215594936197286794783739423246895425108905098261144736806314667178272162232184677655620095742630497755733485304392147115720427509462905385682586147199251344200743033765598845968532783124057216509882045745759176236116485520320707507729816060748127268043342449018151292019196362459450347873814530885072819559112432289244021524566903938577068212286094023602219870692148859360761532971122086749053743237608444427501691159126022003027884187668984441930970270330375118331577172166407793172535761362359696034836927049566377424768461241899002372649881732451484466681448531346880525663590433946750177948612604107906061609730368113699666787755934507868126281543408455105176581712110223628091972995261073919888800795682625885543291880907181539660287501645508789285615174345739363008657939853505996083115039136535574170434449591217811122173025558180685222902546938421633111491767472716037505319802165213634675972677741443655591402327217272964325276652724907857145771473953712747267969300191220474389039369327466926839736114057289782998119689929575165318964638504057599497762005088132294192720140086232115426898494262405095998994589530926967846819047903289108936469481324922057005764409930636249166245603139197277108681116294862292954548453086433909328274144925558845767737668843439813685193924095718993535292005753981295296326353385480929684694270443188203225666357426150674083522345557293114020580901505942177299780632768586536929292050613577211573891107004826994690502554768680906442570444784778584596373178388517624771309701693480861253266900236445784731551687142810007568519616906446327909545680328229635206856411030850674380189827144943060341724869149102022222996973764965208752554548786480556665095905498008055014730285418315683245790851363935132610172816650753875745536010288425995415715514711436295911493319424508848726150612676493899453221976091773559101377378521148262722865549031424504497379864750278644684332982249453480262771271342075393873393160626676531370557477303050137307980324693656461188799090067389570411955660904351832441195240088891338600101047777292900131843774600193527660213634699365386614967588657758521248096031790624281438707471415247796962753420028548469267469095839056909274680205149386700996338371811886318152750244591071303205872927029650770200684589423629265893075431895623556273713236530830458243273313358343261304187748010765590733183138878802972712503196078579866436702325121274683251652219266707551245039836927501405120229113131520366627519499143175997376905668888281555630656165417701150433785659768101111542746626802390003861438366581653303096170839007587498397120221828654297746087508026812277043446330149366395712832580049694100049916197720253248206585705361748235747614235130116244556881888726947247370631261141433328160073533644562523527576353496679547528781993601397893681205416075157126304707006432503789182316947598582768067308739512427944152493191814992111155993580733612100760981630045339283537546511018472738916791058989455863022294858680375849418366870073435249258227796733712219151897253799748186765759795225057183937899717099112491342266174866153081216627179132479617543957419219245517063566842429309038205297082802934098358048157168409067539200273377057793738262135636003429138756032669977014560610688782345702013844246878916629254473785927157184922628958138512743524670226967463761281564614147806686282873829074718464822755928573048116485704868170504021812269860350526120663487773917245014145102684209451642440961851169709037180885471161430614853477513684644237555371390677534434193687634362287246882180348448597505251439877827781561779904039856253131299087488819309968433061950458678569235747071637426450060712622658715504628358429290666598484535804025544455568335062789347741013890932043636050905463039354923750267629156352557906074050061141142814870503237901172229954244292012214829542259451819675213883239723879937410454653837943609159476763729787452896004236659810943419479672252324069453995046758393127871189977692645759361654687388302605307390860724859247842410516712433641841264091648140311643279712672445368842378227598671013815649392182295249492177975901423544310667565008542274936813500400498897088274907189020283204332826737399295247572635104246395249538521646456518227904073204756269772235101048199978996883128276628795356357424019485472997225777569823290095408579418939146369566585998885860936746431692636563475732841023436730977112437554196779371556779596556957629046111437367943606359838408534221774646366433573158336865036998005714902600262780437029349387273727341740127375732034281002410776927005622394712412450495777903084666694256405934393009334076787647318668484809179895799157192552898610142780614529298935769308163804214839898682762625688560696146408126280312818020140128242356484335133806742367572323066909798551685833967506803297968550456746809304408579415795940198064227618949016043808189973231606710578382130259587775988625688281004324589656700848747986102977418380609757103610317052478388068756479782309595244359012126876608965072619235219191218995493994291598172191265525810260473876200046074935907310363182482566609879802643295005758048780983928468721632348088830297391421220668558946110268067381615506781118713087357073699098719533589591018129702439752250777935528759064958582937644672472314263405651152885413124959849074808156363756187658987451927671855456275810990641784341008644873266943763445617594240772017557769236336601904692788056629550593780638774939314373852295981271010104058530652433455675525208400613026421272489572199472252130455833751318785180113174801715272605230488344524502550701811808745250077113550138689268988161249440136726907319700356145854474668973339651854544735688056537484255119061079185819862616106754836457513359568201450481689785192190189018032378058296765257696380609854891597032948840455720001153722604048566073838481465225619684643058678869191502484109045306312137380938236788473120096740557763303990023154937737155334156882325819478314630177156079560216641606590206497495654306204534852132647825325065892471353012494843526963448628827917537000883863939253625793192560874419418618316129891158904862880491599417688095390137909623675173001702252170220671873373497823515339234305920698207448537123323636424887441959544420035478615519392706735275182351156332037863525123322183700313488838771421797766589261350172293076673260942908160300682663471991671138097908552459144102225099219007659031384191082073067165360755122808358308850279125394610002511884241604333870347809305998077111003101832178250062701477789223107013717562383141781923325422544534831816754270103143639372270797180680526347345100881471437396872151324345986484996109129353973594286185919225970807979444545468274990339328624425541092371356870911785776448172319953840021657790999856465550291595045017134004950975806010769918117011416338931803059629165195004415208452603586922926958209353079050205998376349804963588078026913707187914680741894169263963822030169778518121351331631330419899509409411510362897339129919182593909292747674379902328207902914751559183319148431911957408792689944896461650255896655624770701207978111278524266609010746367285953264502239792297037298925147487534046179789366760076736361518416487023191006975833265218941976572191947763760595226191364398383714348595320206663768145586987805951763995144263838835091815777377597831677261997149669530054401047195989887571587395650799288004022979368521935586701965559521176035859239079597573525108198698486757090005555911749342814797682155678547411396795232195989038960040606849556271130670859568187992262852606456663195692581281074352837629727997133286956460925726409273746086770084867820717338132171482905440621177822647578373190002343129634194568149111092079800673611285938395697503496593977617250547054347034632375268995060115457284011400180360180560443022914586806982450441036786534361022141908602073450718925296062239969245767191341198582567982963910903666373012678256808478304781666130362697056536714202199951987385030881047115599686629706006117097187602590148846690589813361360017778697131810933391157067706663955039430382530784861215225994220005613560741567397692604351852487604832965769038774246256105353569961020453159971329886450899270255587788431232493219432903444277972828253763624556394479697315682585892055456032411292830507635569724712076684008890496696461932147617571168300360493894572895721831692395550218268244816556918501810220250329411376650924375259672402279560357754781669565236983504306948218298347756155397942601568128742107870848977187009585707051865953806846098708909725482795880718559339080341941156701623278819899495183372778226686206248792308186660628184665913190811319690281907746414653467679468973372066048900172713525269427394150602531165146707067215647578637485061196685279865072521118700998859174603607612066401989037457414886686672333338892158448869798790879058040500789615986313606661719169790865415028074512185072249755724884234610394297387952542065429565511629679993911734315296255177258543322486765215788350676719956521880752402816921245041470333988687667965049026250757349470117715001597220396871341658667564572729313571063427829071845240106960776476977483538812685224608983893957456490650636373574354051163277065467827818998437077307616519955191933595483365846898691354040159375214651996558272918272875010249951070078121868661162045158886285505280245290260697334819416744375067041666189749817168745303980390278712405550294675395714476389450784874895950094653309398668426780214115350141748790626197487146228001120179533037866442172143182441877816397254076676898193885426050745019615843095820920521448653364229090627183123864500217691785651091696797454004721471179572764927968938652785751088856523641008011485189575924996873999010819234361678156582945198765703579161633959756949448205412603243851369423789748252288350095936485228077480118907690467680493898482113416499156196354039560101886167130213802513316331599140189112913137285494003147536628162194257866838474775269750693241101835295705620462724882900289940734632463915878894479772973752438261120530972159241814959069100779373291145826883597324404664901669614092234713241747665119009921247526972291052512618369015792189062883043241187606133512788763989954382619722644598813937842819068426166274396856573098667906852064090736820087083467468093009574956501272699792224478903965784435964061354603288017002254358256469501540280887817052019979418788940334064441266474197285257073283577221990520819696627745608118062608128506469818085177587633225946789819117602464109383490185574719706968104704965493311842362020937907515111767341143576935076847569410358562354592684225792153723799619619061919829025940544708319073647153982188982176171398138470410726066878932682666967772950637242361912858351809810071433291973890491664954504895070994793627875958535256194733221224402062240701866068795267725453386075063865123486363056814431862429132165571682331229144156539836514751764842123085987179211324548374671522714621418877289967123385121909518947004834551266980123462926697963752636203537772259302833132996251710921664726816309199601694733067405647574078465756635973329775469706931055300447047872909990515591450896715399850274448834139394614930034547607693438592239638008420499927636193587470989108291811557818282610854136217299827938055393939946593078734930776007468299428495146331239316814352437015900548144457420353456014622241578067560031210930670137537022282497142713768635659086673044787067884067837007457281944328567754724822721628749904638871610406280591829748193529142406091049274130350119586998596149887320410434527896779629635047105323813998494153523411728818760508699232609078449245867229796266630611245009204557645489689519330228246391992151006822083732313213414511003658128870616169081962941641993120259133674663132981528815489977340090286675840054394713192900644325101349641436749932130918736319538121841956360675769422527592127517098454623986431390332833728960026253341785084353032519719973349293017210265145792110630149490749156052410498713066251267713410946626674358106197704310079554978341187355779416814468055421695102764264411949554587412895638145487642524128545517513814928454561642327364658294278358649804642972601352863056691137468445379824328832412781147096097518286986244564654301363543322021263906306181361423050240300691239360027898727978631785312942542296330332768527302793063467588783264939891967809562947788071669651118405083686947962605209433404319713025685081994015808570402780197498511942923051033068577975243860601857099555194096703474730998792809810197580726905428502708817582887831046481808145715175159883148661893746997214873712861428640711266221269298337722675818463960284183217364536178772958357164971390280390822002004580295973567722723130140061566967354087149258578558471110870378828259329555974440196472376307981294977991837694877695012448480812901503833983969243811503052385334480874731564989558336208334319464607254372263797181100472645602546251082519931776217124223430113478401392802589121831781335962507922775590794669834194743154299949751130890378415435336487578034743648210569652857300983335896288876906386064739240523449206208197243213413357680951137419788144719998606295776347360525907314072470208409688930188080627511735129248583406778985276622877388085990108891053888113802967800642761716065724082761800284569449352094667107491728093912547292614094701450708632330018191596849135040858181783685481890862290709829083814686817806789109146966549909060811280759634340717034520972362660440138086044650391163227166713968885959918377730515790302387667237380816056577150155578767139331012660116118131510405756628634633177709474934891962484262231954802194072723232195004267749858015164997918506820559123252250706278962137301438440320651330067950965753481871786017913528022375296453556343060405281781940952617979657326804529514428139084067945329837808306973926545301209031411600733905780478737166791380409511853815365166009692804164267888801762950469769653887533912691138018143608152136046634151993981238782706286956297375811797809530127602107324396579483851510108265942732868481750265070653024673519976046309099834648748075244353436192277301925342726946974663251916647558253835953761564189736314194779023378888182713777928684899285093369708439619966609402887795535792918537079863445882117119549585381262829286152649046506475518600145767107810032575815644400677060866669558370238121533535577265703381822051820556791052957240870808485043456830596554532963188852677918359144037874730692202134167418586872117925229958018597567366982734233075258144485633193498372608578256565672243955349019930603865557883424443025089457671285919484988932946373090090795734404992133585914340090686198851323723622806292882281331063377719378826274099781503460172505541752769361609552410318043381832640172439919041922792420915567337274150792826132539696011682776633389325220440381259884032429656643496500140102420748935806124442414195149923806843824820933722045020345089983228436261117625772664828734625568329244222116794007421268413847618862065452007677652247417609162744127152614824018529309336439356809582988075595243684995503184097066032267708955284752588112954330011183764629613042641524040290249937059475837052724606169678151854436682098221277654207139686117091116276561979404488636519343149809611694865259980548856381388705181752378408312582557355705821705219115289233935966098930691917795763557469748233702018816021460830032587826677977973286340053614219758024509038636020729552328883308064937428207473052088951832753086671850983944103685424655368663760428477328201476636214963240234621318611829488535682688578117954026288970487322469385079301862615101767218572717576542691111505760377026537560384952090212055345157392967466952731833216599899543408847988248165675778835156254878283232498889249542092236597031859869656363405461842674113118003852129087603777534006846040176581213467872151775140459470830431059344760732312213611940382701879421121337888451337561591001534608784840617128862060710194100398705265871705305344075367834037581378576446706534187707437683986275876951732340861630255169267641743934786925102683831291423823066032707840489846779383331918791881964026009795082756888873890250034766578569816461058445556718849083722894809192960143890994912864278860520000960677009585360098288180217334492365383003009549274231320058405672297905570995731286475603890625040081583705683799374043268174825729473372480221575931147859911700729212087497356798823865489174172739887075846617005637199402446918024652162417942911933058035963674739778828539953150801747129045803432890104241769083471006792349748680885239525933882906863250087345076163409777278902124298501896651687662662552191713272558239281016277568836764344718837713272542505918622240168172404354087584857060531252637448705751541825120956521185847398239248000568260511308107653598163800014182760663998127557785245186703807769392472269218784242507646269109220715254642850240698028510115995771333143022197257137015729730478997141408250697408763224621799973006714210834771992546590106100914817159289423163195348422206165804336244470702135727465995292248360353408438362831925001212796074508744907514995237571658032395215691579641303336024328218495479013400052960635900195543431957698074883505649985670724238791615550664148458736675589031193218767193184274181171916836799380175168795094028283543148747734517401238569191506922739904555907024020069714055998258983483148192421657257603204279810757562861174085447335504620214948250455566179330408540222999960301246453179428888892286752121735696940899018759584956253218142739871177763478034115495403076662892626243467435762689602604189898486997852573752223816377595741427534290612521383265164977735683077110602642739981015841724486324221512023590465954941433637534439852094232147750308084558846693662243808393868295162269107609358602882497687908487701168944683731701207522188059587682471947332342253591260977548243865569282391290052117403882378168015584230000318609117140835276957912611650303393824745204508228229719552265461548779236928652325946330535407546457199513185193820855061277157481839269434272863928548197731957797862557083657187107169046731546597547186682322350752921656393338902301288801353426892340901061328865574130093659207965397957303278825486301792636821256589294480481832131010805787334870181083448903504448572778177411209148428715964326941622327195156745755290495567337122005918071348590994904004522937804969891031565839295480744136854490249903542650074418203193240517170903380046928843798613854868665090790826938442284642285458849613892760579958370289031482162640313502164056251323649635944865064278753485003782951676985952357388312258596501073417900884339561539589745458196191606088894605642478835508050739779914621796700182332485943911096624571945087936988356640527254557527561832671689752351603964272137769353342695797112705949414965987223498472635709427757722115917618842747387359645573381311620766387077146521366402860851373328660695173165611727608211556387353451361400772333121382593798574720852972441935655876126595721857804567249218547389298446540002827875895443321713214051019167889159145374112665196170417108288542204910044000615741059050690606664199873027737236599802891685100420764909810945459697366018801513221448708377724072498028749133658395002054342372094207819197859008535011325430666685550663406221271856118971672688241110499651605636070490971886278268348364660200327221593190796634689427111023631087532442779674376417133206020458791538118266885281744187947174545770850394492979852139072813590414714442432684342602120916466312057946780670270496465078155037945105601536069152937931827432539656852027292097702017004940369561248069431769176885322479597540344726446506515339523202614461250708012660082583062743306647758718626207080204286745418357849146115097955499435948622165898172693615863039348743093286700355146702824974016713216736319693597557185689060998124193975096707386345902835660189119022221940631017715790233324887851716712266680313285640818797757127384628799617116741597549678496925986476122142606881964144256595940939401166382509984727057412312638909108660025630503118850361587675494481119108002449364492080273499190413918416392170027921419886961234118697936697544312179161466280515417020552166742141806247048836481878487641908989660960224216825661888071539171580643921017172592230157584300855350334312977293254729066892274647415370755076424615002428970703275364484240269733327623156183167524393340518544799544706193272703011828147425200014444977763805528006731521026747773816820941407058758380288814352502628170699606359425416536215918777896190457084763757884026298970143993623449757507801729714378073200451118667208311742394714051847312059170755224723048257753061827258657418585036620644027650304754853414769909348907408160792816499635869349627348053999781336289134749630230774364078442253262211067546886246148987854404568686676635738959191190264283656814956436824988041624990406512358061751106595744549887649151322269147610493748852182694622657890656943086045673393564362046845558250407951862711625599254935830373311862940398503646029159662158549862026149635355371922510947801865153882447730074230195960331188237415134309562299597541078224911419620984428859306141417871874238621446261802756570836999970091130359553518798137266301110285839489934238077808763236911389695582420676953074517829927281907227940457002033608661689206067258182656900666559642097964116648292645454489747750910834994052309526997893451605940757275955714990680544296467397053927192435795804129584658329767330682065840829441317901835486897938825833903423227304929976767199685857849940315366219108117398025953114443586793192688758604956234978225081089078865179745507690187113658782128144335106831025672159866465387999551636519883257278424407699485468076355970909096788670566675452574337824563973947856747831968014300046161133381829194233645581773226525907748820810643745240420489894533766883769675718092999952590748276292083532088879719685152365049245854604824844728848860164975385866561124435972278687591826583990360438795842623505847801323095536205194084175050302781274423658892244350767325560433010930886619145225065913658933154704273023779833594300616271343576334855617025028042015596358513859788411915058384745180605401882853640420808509057482508090365425793198629929264557641721559561606571601073622146934375475310555337573036677702520353626967418605863755061630525301562274368828577198335893020095709128075112022999526574969919009008882377165849209000480022098449193329937238730493398855682593901248784121969320092646909986970668532666192571275773003354434225528862994533962728517001222337397230739776464566562205529148471169610392055209244971468243450034632741549059159261415277678354930463511740594629506756768254613283218331864671107731680923523770636466283340675160412616720548776099524425324802027277983704444461076546789414467650168818306494560380771370527112084239963205246566162316773178313579532094704962147381666023982861393403918677657890338057818515078634311155971214224798001463564200415223547569176806417629954488524217116078985700109514405873515808737755620425373446997720845631923404734321823198729069794055558116761048395211319140772839856287696327382143113716124884650884211085211760059941468399193623866741712555098519637976002028751635769137730843880411877069396934625138270645172077837097562410803290464129275122271178278314283629922402895294267719890019712578835625242247876634371283210840069100500162671878993468462213888608198013408338779359904509808406871715957356153207297071905806723578053018827831792210875090237569563990157313064656773352174070889988248952270635534791093320096677591385093220644591141635195342796202137230712792859009831432694809561704206567269684762724187518525613322083740774700125666429082557461975803474932967336844804239565714333890327887024324249491964872853790600003966127810815535095111403666234503300760353584433408977041615051146128756934066400224564737258754478600642002257913269685060896063384084593465256358959160976083744619675833555438948754136445475291340772107792022660448172829189627941844386400742543286121644299009022694899969378906289349067063318880745532156497621675275189866645864166809609950996629723772130719667325924860232770058890910291549913963025845451333540061526160332376959582624082215210824575201568081647583461700767061436951648873184117513016020701264968148489653977463120795454378876160941393994564222568945103472905974393157510798500541134241327744482711190074333028311047486615484815736037382221616026700606663087961342807759566745323923884802517013733297250473509792203638358386936080603515957433026064039377065406645793422451446102080633216304951997858884284885153838144435373698817320130002669498971021439466349954484644083130185055864139368908990783878104331748491972574628610677341830902633579979588550327073549772690407114864276463694452821160370051827699371608973534748529711443455446260289986283663719008611427863287023625522077785493804955172211272326323948832981500702591186995565997830310475221569757317030780522145500293350238466490380962747420318552807110077079286457377260896241657025228088513930609173592343894250097943802585305527312233302265674476202818715271872571796376643992039327035634601394332225377113546462971759917551818693510464815084309732821159201092466863335281691111296220568886790562598881388287178987824612180203530210004163920030143302329625183474484932037200523966480142429815499495006098943203858152606229748198574837057387693491705271139281807889693465143683294823218676534095967169031323947353748311940191197371441834827006243766123598865116640736619664472229282039695464362044379631405502939351493426061289514442590569925983578729993551541479246933527320822042647816294237719496163977386776422779520776526836009940926763157932200933112191188632526375435468175782978429662721194543073630138585201437753789031665244564685062200160775934569479400154558033454335305021753188553795724781222132762889530283643264587973608269168087662659898372614493935727521552180202651500561147221962923376541237330099989457291926451292318510699679801534534237245339286037615930785197223991738968152375870110173319676032669640059016534471037466474426634665120754946715023794826844887851810913189426042467161871074745201606003280075544724313800259359076433390701739438005983879915007458151223391044963792824396822490368415579398850038035307651917418961941711113721827354810817341524728286764272900086192485525001156055812555492521534287419085784629558543566239748562420893180909283393218488029871576877207484224388304746408041534026772758189962086583626710407815960317369616322001983487369008905654469564070016327754149770710123679427890873976686329521633626734629540297662873029461214578724322245180699906252847088830625156570733647777642557248232325759008853338639229819433941668258032125725032226091352749277389597473605293227212484135712835630194891362571884488914707423555369970694116125536331286830441060669180420013941977661742098642236944259848531953862256349802239145316053898602916857684801439811220756398483208124521601908606282699021081280478532726538087966428207557254319211526473042975744817106165698051120113841738242672950661170672441968606475828004992238138961564263315365077100823823938214061178544290709218614852998901878335609469034911983955608319772903376652859634265811317128307264009870013272978509720324002608871520249653456572147881816627625014868879401396049414858743228361922478606291613400079470407410295684024233820337718789472700299707672142382262982118410035021919952656721950907231884031675457445936126332844410963894320712017853171108236519723299349514674939359224846653755009197302224019245808128482143975369891477953129353062268972664452312491044350157243468325989458138909709395614975834221270546166597417990985467294021143243154706302011164684891964228484196715169264651816940757750046656856423877693013305047627997293630112639891760134829301138951059784121547262106698823550860631224938500890267695754092396077874884705374403693364676749737096561479407482173554708487284474738503404239886989733766222235133453458870685918823123550388290156253135348879093582092965556781877560780058957111658462365189338886140892892299498098661005628822103657720164251096910205197756503366842763019732819399060079289884876948238710611712920028663246455326485119899334811098099349794790752757677622807849684157842687068421740825017116846473335803963950908279827735940503286197436132231087062397783340596629296640123731937886958071443192259885154249679417262755640625680836050889438620148092711114775399806404008497579001586619178002125842972967086421279564603814386474450595077459933649835377499881842320822485194918996371558561248967250999158425791574966114129964462351471739869978282443091464699405775478887093557087996346095526126694258046935124424625954426984407188397998433849185576151557069261842300482514845908904962625987838507279776179361236789452715836102477582010714378735988765760485138771614582588971655581976420513108755432602737101887515021844009959348399149064944456720975904097743349713564828738868739622725406818967466433340130758217906910134343984917861975220757572791977867514113139650506018305122979836777169802171129095693973056898907865443429522441723137722029466794209860373858254052162887731513325991580542152921761417651268899088802548274160375895809685459195991308472628650805759042597822246239955366629495493573490174013504667014976082898844029785482812088745110082839722092331819015353691771917956496450360462769268093770512184552464350946168859021742969136882482876747594949541373810189090869867839510765722886528799595939743479265640485958566655356655800827366222479628854181392037089158372194774996521864766480082168069545632847831741258319648420094733072856088921636541068426668989220278918314881770978966088117432180578426430325493580215474910929308646064493661591957892010415711000640908756502946376670651143267025386594987403458515861086796643287457286592342978593254730272245201496557143060528512405746817586415975424629513854342402311451536812084431409873886567053543455469974680989662312298859158322174890407439682662195569953224621078988294698002115538630056276796503961381139214937174505144708072489927247822399786882730704444651429564772732560757906897669903208055218346671897820418704420183251187528768854421613978021324328834845856309648730568386912679023195274115514518291989669984162710993740378809910980442302615113144864957338873813053336504895788176417144152500046804072435330427482867310089659991170858381766562632641353928330402504019703707269966151080232323029289996534387118451466652618258419524821873147480597247680950501178919665347639557642164800868675091971773177412231614512587759490506501359828379691581988787946750115319668157494238611327973778020056383598602432647852157574892242789806640896898910156185506230451834856127918405360276891797316025016478260037178156297374720036311822396901304691327406223972963722014531324793077183265774445211761401731214504555247216218049896964904133467587689012921267070350550706769064021091845993784522265015223407680307967022215195567060845376009246796237920931449577903068994528825454347288696993625125495597808972230513147057963716942202704814028698811404598393727343573200798497116744165568172100938081278984928440053985287546870266154260760923232692243778365628474543568569392869611233210589530620537337324589655497314946250387784017985409695750724954505930920391642240499554523101329379512736411398915292643432623165984280268838500477951935179671126349118839561964531394684821207198022509154716362345237480636542501544405751874993895073194834953824280116721974806809814641539895568144598554853073180841056348675023946905324464314909451531029040060249185694500457754217438421749538182173863870710306861049396612439121771868035045584479842710059975830483322527819074596233933631990721361822763192283990299162468315495837178439737695659618379792779766646402029063532937353004225753162199603659759780928983134045974312559127669100935159275657471331695295412532313575794531991909454292466072956908790443203690399030025336418680571879443284118664575486079845060516976713812475665211234189517797878351964441158594498751847537585180604824137124890534184662272612648039606311537077157334053411009863423446000363659307929084483753190200949112450050509756504457547960575600766028355198734931921077794475512329927988745653455931949113363937926117881914669544404141098683245865997359960538035162266860846898612935176559173872292697321413884877650473661317884621972750691213279818818367464421923513668758333107821945331606964975869523664566587357576905634430629364642782141098161324397058705493379526101970436137898732892926196610220155080148504291453990636670440341234273771062620843654184697870076258165503431321537887054991151648805469052476881775232907568712890263239319777349316903924316690546990783348104228189620919970723384574772006787662529910504645430808075738077112691090258434999322196933288525682429720080570297945505677217649813895577260745533814995150127936237195043975686812741348633273326058009547982237925879610197574568617524183800212882717815848696159160562008535427493049993168821019173030545117511588742704102460999526505906470713986452373534726257513144653977429593224442639399328438152327092753807770368441002910609865651525860914526012476036576420097211490630917196422759526400368266256219382560483703600372325648937645934152067783085763017300986158251378672198023437573201274954429792706982627871636502229747333702274235480631778680068305821397353524340998669563558334345579975791906616294312339874212736950082614194596452610157465893082083911727084407155172127980102013464905071777767693074482748785929595142712226550547636884227875156528905400442204725245986361174341594046623831616515599711427678087394867058971360191382860446291608392892633310980258770263637214344147952936899251655625874772882271951728174722353048248405454197370113992651448277632391273104992259372606687117070282728210703316792710368017272388984449387698524274779876911802125187209503328325281385231198733888419218053958715009013227285023049977740337884475011101486079877844546679041511101794471675964500963279562900980168194201784721294447484565580427349626118256624423761986227302578552873518372577895940522622741282877609004216410891645197227194387234034540849310950070830933877084731901112227035532375544551352752661769819071783371028573949241933991085928145028589117105283275625414473120356899740086205122401036024653131184795477238108223922241118763389209785297486391491424572410775991329457139882036772998906133436638716613071714504268797572678571734442915491426059888576411625172421293100769537086387334165801203910159206204260273679283561835467852269352162147773425616864598849038070766473086317025320481921157584695421799606650596155027811199939563808337458854234961370830082027592737867888557284881591465684827018808702925800291235645777605832926047126287079092862468376033495047467608977149906355999124175607747491636939138386536098126289928136597098606783662490581570527022948606763860842898087363582620020504919599168830318561063163568786921010052200384589520178750811705914946572434419986404022938795652825788407856564225954540263437157105862745305095812524844564922059866606092033271560517839896583829172039842001349900454797882332855782070976994168323476166378226162521080782152760610231184242545589275243257433249877077234006769865818930664457577284133830106143404301628020052976633892534853260247192066784826811567840189591026846137158982873884948829670750903786654033846383796151845875243406662492748190244110560144237981329465395141982919685514068216278416308186157161361251522865560997964071482553746581610267344178631650671224234660822802923364955113291507565287510071265029101352468151824893285620323520754362892566752200139754882123422233978555433509583885781481632829715022873178840530059333947561706353856828486385838437860880483355829633365416793599435943819158113771143664186681572355913245656373916893823215738914586084905539100836834972210453503859448073469086325802783745295386199496065547919638782398864342540959375622105743942395443873637669086956152439899232773510003323606158677271358376509341797298695631196938238513494691728986879151606196365840419438987800611655117580997267261621353334809580102313798106505779198946098281297098246526563231878184642775202810905005891640559966936296650489219855967854705567236919039889882074683635950568928150315041200969756213745459250306625619831493729324655260165340925724484723530493530777257444507908393411320385075847968552615965390881226920471377471337718555138421318124972440367854516960808369858066939809544122647976229161574401622046979580119191685613059695516415566894986712550123230617352414286482741094336168733857469216190459548771286165186707961066823406036639287980293465796291054118411025191643761997562763170551586769445278338933058774204166000153454471727678651422329689376327098992456201935325938047804822168180620448070253964743948076448976589202540396773173273723964067325969995407732582826411781042736348298534288694670375307291861435465645355560752579790187760594082510977435248043846916120607929596849092631058178359073831966428548416478915098563775474957870850369103211023086269639178327619902064079615957693142953788653006622809210059937598031820804480126293578483954155267500543336318989047440019208537701147574740319735310303790612126330687311989680978947365943256508991572000337883683094292913823117669213551474856429212249669064680584367403620237272071937053778428057402284774414751971442563254038998635474128379137800304782998375000970342206382979177833083790962239349682941478076295946514961277815416650261500270130450389079796185062889228093933440122793815048608459585202446153596369516765284823646455274726796790223859646820641676601895555839363872032268637428234415615456805140842383783439081124994456218898356528723735593969995781277526839123188449590988902646154127095079396746066185813764189383224130060865003782988799947995729550380362028808350746173159249023084811830153294117750116450535757665953187917745629108208088904199691278730472651920595517502338674167810997575106237293069226245228352442864795604957608194500354848863766244016454992413076792445964379228748266918838864901399666696928063085522561060350281065230321865992134085624943488673935622586416637609162805710725477251764417932974005130071284268977467856839643806495533328465291075261355079772235700955676011070881874731157023554625295528168421295835099564846214127731727672099048242314878351352000336812212814493957448226584891827326807159640507690263730937813510836953572777519699632998471787477282236582383707570324508466847743603108111588447236697469916117050855646368568663581239944422250792914915419183540649816838794205630087611854204939193162562883534968009650282965155759475451130995959036894610811700629676142180332548394755714065958973256736904116967673520303785717952364562534500560606437353748750583975235345034684560745487687092416733156900104323233712021214446682450543435110951029166703652486161704414390708426137584863740373451913406239249345066550315844415332743515172600860492170051915420749701195865624421855733980319061350328475064564643839921315701782070178784129048157731879826642347957182976434544382621691698038694163293473332805410192269510690043479552770886046883040475858174511184586804419665728673117738439977016426151109325391847670378436078944697264927650499191329365372618552507880790779449561446894049230056307028804715777259798470256634733255126247520985552976253685228041053548601254707901602188904262923274279197484623837333418079346986814157554624644810285245347653859258217874445287876471693704856753735594621312644538464162941877372496002265427385971873975239278309705673713409459212504454921877113648111792878903046177265210730339328641648319715992631033756252110052436698332666823885994023964410469513348062024364681015602579941587353482334242997694390454662291791464846376201641400179903331836859843061970584363904153123469102180180277663796838551439088107694789539609503144352590507743737423830568767390435859123580578163573031220910910313013148355639011847857267575058181549276517876874995175143525459307810986307222650316419969613277978093865013394217560059160213618818625789995074555382690567943428987755896573314635915928479235008559350025999172516107633193955169351849147592631499020965887209399270091989094845611164516354463891143320411103591145157669676787277822355799422318189386309202308035479168833466306212032090493295058171626954052436413267758117300930715269424985825622126815232080682394996559189983916863314065942849906743029535988472538149086485066669354514881159445819201611237081981459849646471138545052339618414250235739506685783291069805957047967606294719518732304879188086903050062059130409896442140584375465917141436329672606623645725156618910874598322995402648358699223886783371702473760306606815925437592519223057408215373644010519302937465440388294752945278708995613699991797328998768093518114162564766158857507624317422629466213378096030464784291027907337437388434987316751094597479641520647534410014473656815128087734127732472858638625004301766577871728586637604121833610864280744305915116078633530364396796298955538921844014536941836153897440840126122970672181515411551840623702581187967887200135380324357604531322917487643798428556126805492121089795852495013595433819273994421187841197115097022358052879425609078739957712737267174052591334044509166196383198714810125751177718492174274546007330644259300986109893424505317277236077039965103749594630561546154889137602559607238035362027022368802344698660274010038136501228812302879102268582743842760378695079386392426696635223719186002971239365430849252600503789028571538858223764977873365568035285482529697822673580192044556910972933136215071458153352886067115629998417203845343472341707453789337197994912391630683789232214304585120434201020721958531356084568761016481192428991116010018476119691861429606771705432198211522721327756984752388763240298157833455527264027032536952406430015456676434813144842978016386331248380326090524758859297362928473080741245576274681742315759066915769064091739963491693476314841591527970976653426039836973348667063749886837075366635927154059911258507112655141375208195947458089101751931192133098198121129921617113006583724918721314715395953450965848915373356545823074328181360141386494233711144143683847004562915570634619040376035134155010547249326135683417729920898091444775843917240465186961989065510933130145291960786440896229239769777779676237910700007619966234459185702208800207693715709002725337799496044317583419825051841708094515934657696062928061452987479482102778960190352105257217976675975623158790324280554934321152395601760083806750694633952567810085754709718391030419791199623431408663525458704243403458028920900699946947960504327233389501308499712344251429814187017704695437060383859093367901684698691884653940044633287561692560589932469127053450930477872457030093748535295086532534361905496532222151857788086594285847301412309540750573396874060666466307736253863648413457768944330508154216953470997883150643088387755144879556989504241800803624397062802902690094170446034752073499069599980404594464091263763155524228114289930365662605823145383651689529908235203267764340410462319357794237783036107477335542152580680173966032404575233892891244511869796007606245870024865056222526944219719809225306976187833960465230763311337873206515015154470803338839246236408079000694460086681864491422046417996792071341219158826309595664906613601254260109362513618555469081670423224489077424853564661800853905110773022084026132944805212838864821160070052714705605008359103361333890079102055277888725653261413920329917875297122753724667752971959773273943807933772508461202435659269050445845091241702536661639820777082456561099311686342121874123237631212673173550634608538848941156563672800264852191516233971694227314335041970151828589554306924152393829726587928415526025794243432618419607675855044562566267982597958031262854284228595356452010974135878548111863826711494369352546912004718000222554655622752107153519486204937147792496665742643232179024024703382456305061347660225578068024024646947239930452244256863870030839870951612030666809486753119967712145476298891770033637112250950337546494416635373332849930612430961202622062298030626332527262206378334887575459916425027208259815141278980710374694254648026402221463052519773670442976341725387971074116159585894331225637153610880887281592497613764005282978047129672730865061011333990127829068583430796566806450113191169222878523921392900524344362181021246284863771251922919088013449540167362312139678855487394355930864578930154111616887418300665776204830054469938250608283810140175745745420984362375139317689784117498700022190195221894506786462560818616544855883476443987950015561694860697657758778509941945656047912138660814536755689848024713134038172082186879890223141772898534201200443388909116251791051274515020092522388966833028902549334614244148289036730148894546403137473359585628710723637724349046204621297485487004062876576920745146880024288854888608064204253072380601631298612027712055144365216664585990381325784774753461834186785192383840715548055840917655852492822608068706558665494059596620723875084876122920058009399577584715463831541642945392900847274224681195861797537655381185050801731899090935504333713176622468705060605420981448392875524309419629113031413556070948272295740196051498586222001134458756193615089186555037088108894153338677797894842119618776443087247118399527434873599288938993678551468752937064089765585950241957315787109843732264528963519462003946779778227042614966565421597221923532174979197848446382934805143439137520009854133238320730606956953336442958470533570599974116860114051579490077119920923538703174677801524492707279349508993974207265635463473251511056250955957449153696758988137612756295349561308873039996577818127277606986869693761005775703031229980860788563618508924044552050534941360511406346758296675622266027016447943743791396259195702971896029154139273466422696302713812690273263827891335995736261869508337816472028660770044125370250334586166619020805811352037338739016782457156105552234995461018094183381278154521000871982188498910834300192275868879151094024286591688476979052233637103593272129966620324026500539149611382482890965512802695103511257998900027689988540421118158020303802656827680190137706699348199886752596178759966346168504994896882084289011008589716815928528504730023626138903381465799326678732304958536893218244523299929864579808473759570615319940373889092828190547507292193462282760649039558150441819485243758590367944064151816671899147654117663795137538041670731206291228822714986902641690240766948490736672475531551020228963289308439800728494944314121816692640205408062755963373941490977868023407902009264988310850188341970011135888846195635108017513904758339802612941856709921389384513932129538342374689350596460768077674576860042145616164036162954478743889302295105093381914210755501354980464735815280275219690839664994534931261021170954381542512859547873168779765508474780691340954327610730183793858718974298166632853182232300862307595396331333969895299591960926579338295885392864093718622071671304100577816845331810513672771226005255879623512787874658161702024896768785002123616035765436628030429857960966502688900029338139663523385672068664021108221253456033690443222474447193053785132236438466631857408770409856923694654562187135743101726582502591181059292127362915976135106509117674756302493037245992765740225798103717556525380558052161619864317991192653340781113673014737532243708914572033850343916877709719785519992383989403739376507668371879950886361473761420040732593775459359404016594897631153846564167712304091464030588536165587400162834149645421250626681875219998707718234111971544303018712584308792621950168622291346391748308392363241222440227785295700455724936098447056736452346816705417717349522450399738108810579366962733516372063022133728568948020918502763434148941242720678965256597573631276396165628845751441998209694862196014617190869428126232865173985121848993343032814280534864395292413357676864776706759667843063443108483522836048004831485426351520514871403136294267821568158788335292192204037114296012561732520046969263684026153230515552124117575521034642478640073556549422742387512517959558367789035083829399310655953166250602290402156062963493004695543355282774264515429229067765160655533388033036517087425310679224331883020784570028779784046587284253647541397067810973151215507838460609651211528460779561665851593635274440187214654737189769247415787731174986206817441939048578262207927220565853447362416123724486907967549787607324220923736560391770538184631048517380800369751701878113298608494358816789569985801663486507452465094047461618822851764366069532642846162985045664673617446733117544126111421117799566806504477291541538110339390139439598382837731575362117229115533569635657093025937069961243501603787552505071834255164535737382380737258499635142882968057011733420848099996062768138735849944197887536443710460749177769189304561462201322015394594479532207975618826250183756540352076455932716802782853616178441245120706486191787929508634415510498465345052484474812525009931293921090726077691879945743996056324866687483575478983804381208270758871369362353109863349666155022670105296511039305968327576298806508130587540160961438411084422182140522449868522669849744393285421083463773170843059453963299191120881262796148989830849180038179472375072770465363340430727098174461906718315945263932296295726691482909581722147616583811294621228738461643258713784524847377264209982879713164250723216109261354485449898563437976179487375173860607167137170641603622902143008591808899080228700064515301709982760875774211555262395770442891951499128906438208578778970120586855629194849582817089279177222210104682739233656094683690870334908676261069366553643907933270567087899021387002450718118227528281188771169576286744448517050869697612231522933542429670591966575906087616064576782067642051876155621266216978571296081606869566876539510516559245261657007373235827968464618062716970434929971372291748531499942625005268630882451951436030431123890793912567122728362472521113731603384243414853271160254967886777471290983226448837240979594755967722920295352034301762008553954299580150919573532223667855358432587635001531852097215131247450115116178573046600330283974929686179148987602571835233836461304434223673104795465750835572425028978321957243668302665036070757331741159446078039639787419299064921561935124195383378254751055658853139869994491557158732559091204540436765451092698887396199585339771742211989246838281159874408943813475692305325269708401961525743909304294529653982128178635515276950721840614380219069291412150089344028717623512375222466448086780579803861234827403312628225696494658576222090955813961743571087953887415725267775461289080741860937058346255924398218263860461130016763116298098907687158674327363147834906882549077216486501750212177998012893056270736349245605263020152330540004339966912605679728374607965091766763556791599584195252164269843969636655596215717478127694723176533338732453849355397691820157584126912476156789669356581786469042423770530008529023454989936958464801338587525169213262699266843891235752037929823793789293140666592626748818497480076795453646909350726210536233298824473079377596974269755423698197956098247248320650579877536163675702078558918203564610387005222164223445597759376238971561246350275076944259653753300214856185648714925404593776412460546527619077106142182273513160060730378802063971496002536167345844965059632827501643829546215389201269202511936661243693671935008601772530922895400797350943594648164719072987179002121897162509514790429986792789619429787626016893109349988563578772206539607519189066436473017443488444509815692578607140131371725349201943213312428073752598853905022405255394758329513412627575114350954129989442653597347454036903023904916753942086581576902079927080707726723121939862846319138091673978086592701703015107457448896574991106268754814211662424931172083694900111710705435008390740753563098447128383208430608661875422176945315131918006961116920229013112128105157790489274863713820898027596814459160507296846345256432030661821008006003249614741470870548847921241623677664094253876313610041605433762780345410440045371814481980547806254040404640578548215335108887647245026789543680545188841874359271736831334540191742076701317433135738822323832659288313635688696422363676543088558831611402405402910466070872415057839390501985589020252464319788365241106486916949943855674541393501051559098173086004023230148552013390282455395891826262688073576395940929281962518320731541873472553771902626154689120193531801050051896014054801932582977326816717404545796585433847073386285266824290063108771495286134429892740176043696638385807233852101037852713108673926826258795476782214638742015799778567695506553494426362118607570670958593800260946393343886645265284810466105792671030527961499230874860213007761981358942063320774980983954417769304636281893664183364184695758451785550808912837491932915073302254935306945979838711931248342762822209678996133883438991569591920689317149210185217940688269336118270098400988443225979717181143178240030622481568148922362756028066487256200031036852612175769956884254193256465364962836594247927663634342462281250893513200786133004727850260384844469680942800388810646627110515692676063775636762591843779081843787743877431756259791193096364325719120379685186663551833587394859327589171676469869320251221888562182045079494680909143563762497660084599957287100152724634342555471971184476902954695015807036042500665449537169085823397607592967557237199696132438712134644979448755429709712365584197086694931085183515629723614237600069600598552945774491950085300868760637856886488065291285353768388473310688012027121382508083648881014058322075359244619713830172469231274603000699960926825220884032591237252206737350518237576522114810132306303624048006154991299088560332714907983741518561223494446652974717434729293731631313154851803134690168525105804561395067934249720140571374291467681659669662488812774077588525563520054247004336251760066594059066962799573446493414911517433554653732105208330352858778976483020804073980586653261281834669547392956122633784898014145100804710590714077011357942937031044626023717096280141970223539488829312099852226772900569130541426500642869501970697895727811180347039805084530437161901514156574040532807145339274210908418262037026806853614847101364222908295238358334221052207254506732804285392239439559479924290405771796539476010546315842440496039515817587392314943109854915486424467472078620456646145399695373431556023954012774819260306371880909910416678854061433734380203884285858786342061545930765350887256546051047884907230004702812578456274288355438624215351694279925274074458615086759431486050898563880830253296521024331569100752913004171793501149675044867848700528560537032814233039673623485072909231071171012899554173299852864713496969124689026972135516683965705108301425271289780310952754057112262973780696226005917298581996391040415343815197467367756424445694763302652374256812778942509204332238341225692750548711325294002272325918192050172182321642932833464111353021777663808660290214785627109528689149444653048388980405167775654711198424029512565652029912295333942672559709939761435102578929490304290379605690814486081858455679512503542022395500883284006257829926248121305538879606691565953926466139690006839010290822582937512187393225440799627701107669858445308603354780885583494053222168490709343712700425924665617031743615948320657992623999154846458499838429068130752517424401476657117240250384779832263754317703438715541112574355567244097794906991012324689256840408083560588643608522224217775026418345253050050707963794723947666317502226985252288536704187147069282954776823166050630790732799272932918845009320775515310822846027738309039884630194947150968603766357865843840173789082775649204530617372714799548085031445424009237012435406099034046980476990224343935473045795785638622518920255743632495468060695684601024740806412510411738742487713463786715348479210140152518713219076565089295569961036416621488951942850053954750466996407942085715786663527786122353819923155156310705502705020828289132295011821285114719771255842793126699843798875046087903694812902818071864841358586915512210804140142141859306528464664641501657911851995622457745139644904467303890113898122551304553499994664011539374667110049691187932100692354530579622276888634102823855865693219513825591956167682842814468225764026684464893017859497963300638400022981589131847659640309342331759540186009368069926502483221627049562146102681635748965879492783008774692476609339556708762541887099879397705629719620490331905762049853435126589117110274692180642338056682959920776591069108156878965809016946365455815813940387858821602167317619808666552217078532641908535319641198592357202366537711816098500559906339413717990248593092302875122723890104507007793064289189066032846233187928927976541433948910053442041226981096261554277453738620084244528394763428722578054008356390693393701940730370675710621175602555553203807793995652158759526652923491059982865696061565723529397324996787545818461489620271821375302469452735940305969920681683725859425186472833231483307748359007112453930066602577118211219182046789158279054164911391206182750063068025630900860051065526154321823700925021842410352969702666963896012385439145754557827157994331495015560156321425511592071048439534488766495722905480673783822011796192129829274572458499441366891979001996257504003160130029732982137021990800581614092219650576055062084983944544864691824340179792080534018918323105790192834557662411339778677765742093630923058788754881238635498254290829576189584571092820986271684948427917165285339211915743255598893214694741684930485810546452592126176440679414024938260577801303598307694591288312929403994693340442925044687823153789228574375304139444282443454346705666464429360767394679932720740589163129698439348291605749174664335482701288152686392309567834587595651000105017433793589682285204067635734027520539653517924399688668879288036402015813303971557453544818243268823250257359769100168562192433881114814508700419499876899385108518477446210128910223872171380050737269740383908346793893997823746145500197827931901754707793577137700239739654471451384091791953544887305815176620358355560092032460568619636828979214513800052193397224386133198680524843942377474070038081911627695299451823498515265202021894598788398170578438016123417586634908742901119250774996247449119646832927102166599927819405209785624733621194600929633504621339871135159486633546407196367579104387880786807733790591065122895453205041523823382513328606128802893213953159478211768107680251807531526330561323455895565508613576211208855704430201245732640437401568523144332153493722348659532429680014805970109484023193816294900362959181737363537643767919122557195509823215899374709976970920957790523961395269481773293498064742714363240300718634776640062392399944356626743512517838898586538158268350897196919717206127041223783499469604422367390284562177005513760102700226842422881909222873753757056710016288321641857041789533814139216903518345983285944109382333501990763772727152652421812088880648690629909627512403698808052382180428535993005942315348290647655737439223119912468917364394888967187439446797030254939679080473446099957039242209845976084602434987765118233996025450283850259445080815529377687241508037917177635356687227669719407500844328013388833134285593836984167397613777641361007218127967580655763773091971954111799099825857349476023454573923785917219102970010637152066050986643717758777868418264046499529924932110992681032993496153809198305801753832758045381329245971148544108848255412634999217974353248630259522572580528190322721303838446238980678054113244660584912852595241592646414139836651802539940179317705380541283074432482541502451330649712616300593739496756724460394727855486742906200194407364934106244536717579882488635978082644589262479702882661893541100582680535449962659428254432975797670771385481022001153521670455168347992818883770866074764951026486702057124834215053118546884218485540744435733623081999696780678405381454756628327692380526234800747849698013585549415510029941639211457187395945254655044101247891124241368800595653708905609621347732699989142894952757327178889561441633322334830358081860333977392182689720278440756021429104332529283730735128088984072316640186638213678622057772568988982262876842884259328630535670900205104067778413554191804565908081454893177144555728078167443078474098166860272857094932013671181729271548945079657291953497523088631678102687538506292633846015015928254999630543728467698040548654748417037543766975267992285489527884452255414074962633601646198232193843253933774688694450163905598238544920699080567655972120649945974979725613749490363871313624397863229700171883404774733429319838986478461373900776645881117121316815868903471487680873949515568594222960534408070781452265342655085646391410212323464195934755415285327684156951396632060131225097593721976388649855631049765205622621503484867648147818906836951240621757011269842371505591851985643566646828826723399335902394628762961896087643400692078103082603502849523701238320764688668387537942383760980730471862001983191456083352717724201683557627108736395613929356589557929474655349108077154977681216524127256191362633764717564414428012619095137705445484723901388988140407988366773824515188301830438433509000249738186102952548482531336335994623719209305408592134675285274019903884932348010591374719609475905749258396640127361347637715832623726075207133298954212848504850699740578964196060900746023165400445623858378447269874457873050032720020847087493287829517275164197045716825715253233271857283120596540261979952781038198291542431805878259441787891305207149741891632134300617511516045354014383806472022167909510857961646523862801409678419926593887650952844705792036020261720920834087918978860761895685964648628462365585671885372493620466598747007393677278450691356848306570517197202083170936071934527986768795229734506551979857589219016966621634622361122330275517976859011729461887857260321230393744369452185584101078260893444056130435972655946358084311725880251999008734951646815426749106823906592843945765281868534720890836691136766639077937271444915280791085046842938560401117448691752139746072674743992797176448337751308052491615420604833187675014096534787270427216748765620511442928768597499833881929993114897997244414235197402375694807848625315315660913720911510131002187760559837423887996643026369180236313082109619083907349934869097947278847307080573106134171323101753538817303939695661125218269351907841254617354279720732178990580218283889669109454492485442310900736791075797469630596341339973994909102110344587168936406069064328126096657489895093271900722191529746824835173365841906418915624561804997217361629634227696118867394035479888417674808508843502974456261653554772637529308655026062636169281045667935761008306775552483595732842633981801057855943099873121619996113085108296671425422539898428075430805282674189212756338696776450377780433590906563266721279816033694892203311783034896416911877762277667552867764551276779828664284362987084880456277841542261674328624025644976404964593285815752978104916516772011214806159247112656218417300941098348549257565718571122046757862443281222646670772372827812289978653365830811604162531279569671419188232492740877173002547843250642045846986436967487807489476918579642117847095398605992018004756944432642803363521542582608038694505802852486275783173709600707934857705050481492471181368276951966715663208514437395977543408757804130323310522606849190746220580953934832162578423242981929153087774247679627792432665581590622956557737557496311455816233671189474044650929124033596216818513822143620302512685639657389561558038893284710625654153875984032539171948534846370598875358238322423399395059344887985328037922529002970138024269534805792738273225598266641920722160509862145463922676262196211820031065847758881499363325877812674299728994292517779907596822053107701690121704716072698938229091810022600568005729885847717259698867406925403855292040354439029456690557596604555936353855892429613364320196415244724752467753967641985977175825953796332065625845251184978153933976746665359594118396181943689680736625168799150505612365077977391051024109199796637462258593599883421643237106859437053516123813698672370179636214759183965696973328079632554417156035263817390471877250506790254899867749248103799363721602486757053144104069630024017254641835348404099906482868441813819275114227891971401891855529164216896839077403213257838777184793302165649476685280943949464703057678247153190934561797691077156055466255542927445942449497287273803133952343724125229460193772721643773551775217015568533792442578774629373178783764497555486922142333863754268635742170800798963675021564671963531409648480206807242266581986988341349252907973902966536867188917293515257515207375284454309050387204481236218437290288071377974754725901656950454753714078819838940143696183697012279998446886356981742381484771774092180552733308445609128645364219354472813993983308692562090036802037250156091990838221467478803815555678190095167825518723421120665376786171373420004326298895352980810800500920333523025422785684192091925422045415442848168996059430803641098495592307565730462181756534343013800332922753399013864033102680907417680017950612724705361936866177325755695066853114402509454590500909024919076136744296228329058367032468552240285181891478303770795944738297102589426860040122829540689447641960686938821671727998870906884807310368494075162349786258174310610430304584480614051390840019163709872436476062551334544536278405577582136729962152172375145557057893903487716848615844489671642028397338533745457985520859442802076866492089610094825778818719195202394898837899327860232909284363165448654684633804060817781731522809321329265559916326099001794889615264447683483010994742177836660832404460279049703005417220805976919160732624251842129104788861725834845794976015142363408048631373068520486157832317351888548368699387096450269918832782788812531233438687332063031073591108119660188999861596235259663716889976492706517461266031041750064699188265049153958145778090779548882482318657158014196475567916716946263355416144126848817387208929687488557294642501345136205422758117146618531360831670647401729808657889678076123684773338655290633023662861960759386577850871876054462827910017467369487944951493063876239220240521833831736162886088176388649664753482176726283765742360314619761057782851851975680125518960739011332365160389222610680139604156621640107364988235825313234375193467014874570882592940502288182092416648059754665637708020965479311571177637653880538335904343555746796133321239312493776461658791100701406861353428097231112227506902304330384565315525173848897781678859142332920299543420841400180960857933618552149829747382565152172848132062546704219281695123771276491137256876608369577329535506225475160209064959780227431321595438772041072320567594489549143967839501545138665596076983637103324989659469449363580093981796644582329255874996710236235269054346334837789305829761416110741451711129617803251676120454454783855706896776786964750431867498762144157293011768213885904923706497495001824344368267042875870796052115973393611180999578538760644864971895832431390184206868380867537203951129949499726021665487414513103585116768605430416825055666743493778181015283086255561496588390670782828309431182072915615633293937007138894400327033218873121760666423240959111960253015268857507220194582472499887493210099821003503796024123105394457355028458079576980383651257395187632766570297848146728714723981220664940712270023754263746024405307250827925775242846651677932139794243851936692220518254304594041425090038038743662857007542551228558098057755657481136976461596012897153123596112241335781889554153122152850745909063334230640617725356603960509338098943485479776121438254646712028277546592368728304044426357500884291439287246773644790027176378025105670587157229845228403570328070349543747038188413517588638237811410628711320460584675646387260971313003457647616114634834122059613150168218757441354067250052118427503525184294200625760331950525494357688273622326988656126401386094472731651974370843423628317870069535645239163990706889948345287522705957140211307452706096631550627700787738980980306025189088402970442863932413159034904632577071062099270250257406842015299934269663331351260990469197851093734831138738060865203458436630684417499973960618479125921751922156810424461537297450038166218678002303375410938599011020985233615449504107316028000491673196730872748818038507939205378891622979651816732454219514304573847413850740356146448915373195429331643058602184670876734437898942698625552796510680542572114958080983198935761125094726592326195422541821162437095534129508612523466810817927041321254949055142704685768025010962457094405521896869140915466296812277139604449905268882560404488442436432664494709019423507716909620779840209524357502265471258897017855748594856980062688481696436414082462839673217689373771408240623259039786163640229334431663175948232386380605151353899344354426125576949774615190220036917028703654913337436704066883570196914367465446158375121914327394102185197383546236700436902002421262177391603934024955554081437005284858989712135633841814988146037531949859294880237298852635350066919138470442288136107050625287363775689223042701331854665145825773647943366095647414329683763093412142361120253463579877237329199623811841423599685941178302679963631455679356819017781477764949808824222242298122233507427716147184748981464621235085857678983725278720873065006736480737173067405194990781998796228072648147477634411075175326591274520166558623444482317575581095290565595245809158463178140904184477471902559360418898915805309909466606507896415030250603738948049164196484356570216467807736397252308359621190679408335704547990192511394624366612600153356296932171769375263804026550062566109232276121807342806477325736284130431484235379944946952196631011809368448892170573790341492417323010545614944442800805983956845060809003876926844461810857081954331189545038060801037722772591097194668405580365455264193341353290828781159094920174197249984974877751226590518796296890718205795869552676127802144772137108701183213815517144722536253041909903146492422123810706905520976374859279149128354696907286640437921713949129182667860579742883022488808868716571751035801667564740062956283801146637045068484289099684530231505646738250486535988609804422463967598926281045731017289012823396609692862824715616775859327509954606899336667671579700167857353107212960675928794226493445014909919224235551225885259054049672131984347889695609907276587655368908715938359414189065579138782684236489904015859937906352447421547452158248697150780074445324975142619631911577190865051587657687612575885657448365532143036135640267571374124223758471635648091056527005320434578547032000196522302735208640137339042415892207344197796494939129167737901769101525589334149532385627718590475527488932573514810204169348633939604843284201386342704149100162384094851387362486560661058356651935961893385530407103599718434612806901889847422580119461668849862821413669583643643623950544513112259480181271110177392334638310952256943236739072784205198617421459492938539660305984984645432973942809086857168875503837945575181635669744243005693703898325941872679509939866930347881865890094602627800981643753738388259266845012306456299663853010225675691432379088489405881101648378120479053476482290121947785529827469180895874721249214997896290809729695637804399316572215867782956122484893737660139441984635106759652713088216814572406690814910179930097424450653327712777945718275236042460404487506443160493720563969707366621593602692662824053690333249824173185501932171152018196613095178885673441053085795921025274598208878460280734608268031552371900899272306995133163410204392833260424780413527507730113899723531855327649536885718433755113045679587309141959159767369061111533868255652616641252971388871306519477445387364362700532121198302998374126140882522144776505627119581829272875501303200042854602998590376315479496735308718255698067941116469665887688244724629527354867838884156870514391121047167417307294593986786392415823488090074123006284628097582769066207756903501127640156702545539625077632808887019914764270458551570250269262607831629304609697679803296250664801848460461003036174217906826903636197444695388394946165736796988486524999183847247613460086454349479465754091270811022479405661607866088994998034234638943337505163821400473520998441008534431918960874344485711648356966682610845076917607032924328325769057563091717284195771955256195788606252896092720955725625957475800076396808748181319911166801372075745235193435190373076449188784950394107581797507500269234831436719700241374497212443882429225788986875144603559915878005932820389968966991632936527763765629385062048965667713981914590170995742651510842468274823339727828691060295933945931379219710848764765414112987156573783207379284868099410237778319979493926383340440806032678230866577424493102282369921288056666268222922982320551069585927942552033691676001324580110668978247318398384836071153808027212727466535868978778748385005567029592668983043521576699975611789231371860502429798911261759712506623748780621327329605012103449360078570895243213143255681266908762789930945404594006831520038332852587493683204402742584671305709441051475307024293993618760852504897325564837022221049352616698946848510927998958546503293568455148746648061338106736985538209675172118579202461366269299193089135245675585589972533103759486444647200680945366295486775401045411943840640191237491584109375742291866510891050466502220890269098806301431352081994042644342765592778562700631966365926050111263082980424244490128227641517854174310611348903451176695788060563609080722209216046864001783594464160293282494946175142078026887895109930271254122027259461461415824017204811905995127917914958127376523553677829346181722889858686818339146562754112239345721664831932985440350798445435525559250495013656135767957957657877125644507621228933244115863448066925312476627790167550514710589070906844174263910701602228057273305987118114635855022847807029062121194542882915898018095248870377509119160933019127821369508273875204579784797831955559999060845070031505431233384893390183497119459954309173803447956913377901034401616124845776503180665648639718840969988121832344128669911130058421789093916706226960875172461745379021555120994766906946715150930931656057604259738002038234161090814656703922891768443473536421556992835071064492655825489835937101025420812253400046911942116512067235632978619529287797801832294314926812480399417906009624855440556864454751231341562379872781229450273094266387681093530921215404515511825866984191231971717744561058694418019943368004931923161758535351129976142307042023587745203242914832989392356583076229395313416669131563794960602512899408967907317725191620222576151389699592964014990183823497694540465101566663981273896561028747889783000868708194187189845089669644741043420687083045446676286787491203256563277679541183155121554098683852456427139691971820850719532922800177572544035026218022489826923954538289042742046126901790470258524404787496938959257407409863570038907561822562523004583059134756467918595231795180624121488630109098646634205809443271421669308079257448071251849846416389728123999092409763589401431176395998914232068882083692381960980915465971771409709956456802418938639977262820763213131980166048547854359161352972998959466946357271157378679315265519648672245159545885694364544934821347727936094195855869787156152747687459924149237723310071681318401140273034221330874145884393464720114886355550703174584716364772710786416768713984670589085325432289096523850194578551911896001854729090524285828829858386394438484487517094448966211683429764249173401710270137536717678510041884180782265951065425264762102664524514313541622773780602216381211138577141101800106914219302243322103389236834405216046149821887024593149329887999249589792252505277333575844296278876539894985968772464399303007386079680233401122632838227988815311071122592808616043607260390326416934047192634113400822340511028375804484895830275659055219399760722913089523133658018829051639199563717871778782764635610000709043816840691521775765435300859505740210840896269157851176367990840272219785692182691877265307071555647112733830015873596224583274248401273489919359832705087059323320539184049833385850732854967438074547041259297684467890053251680820547410418547171372559258021053827421719379008107060348353854763996514428364102242980680065427106739754846110954907824234087989638403907894530299452041486979660368632125728356225957978778012877983993038028123030613683744565612501754903472751168992816498172978697875715532319837088287323599986905933215237549553730448071495676537773074441149960754420924304118166802843350276728636172602137323654148066610760055106919840520453744968377379288255105418709522465985259659317084322961190269987454153041096414980031550583294395832177079689922082719096540709666208045809844064033180368756391106336895536508495439339285818095742350504325059579766118180157046322362192071943741542202750052332375875386913600932254862537263569677454649951034732468715870902890606190780583053068532823511146876074302064089050216506973773318963477413582710302610269074576510492171266742070680876044058129697276554166526954085758240725637260023339307447078274219333553183226361364743029447665440866643944380433735642237722143605230385994483475741230813060525813381042447217493437189172249455245303061288543725513289242480256742604390739007980477693372501550788991843142247938100415846861613047956127418021085655113171200700487387340856083070911900408068496887131334068188226582047907441321891778940360605028236011012671167038049090926023438601139819906506134823508772361281114947592923798830163098743201277224982522306554794365465948670513623841401026054157693366805154962504129248024364485333807557741926982539862416833997510938414446609897721470406176468413533398650197474568075100399689870656063626663208107772379891215697119548947836331204431472544776405955680332474702510909938185789984472585766198122246217739263228459810132774150790908724368570479953265131335411017994056143207905783983562386727104528027677245644158523848492425020611076380583583980870675586484328136128774584139193666820608811491201693646032438953994272132331505293303345687290986723900988921925130196783735265532470885900130813940293311542478827034885577701815632406531424056325474262282481745687195633194315406505819231293318184029764192894379262922414386787288245293342111708572959693278082098886111003389628208178414679609324246302079079936865905123976504638880975678281728251011232469754147823625279268543096695643067321240983687131340708538400679326265395741352403157432093748690552961962038091222872889822706204783280601774431293252610018008808078089056645167197476529694673174077803059923951305492395446475162770613471657788272373581093118781741918539277743677175802624931669289323744311952773932487449430475478647257695878712672780280592973030918862714000805816825405721403393932306288515481340669662501910725314932169218462911379801585138646774340742705486255858599365469202927009194477334333094776601138923699614619523701106386793415141918415969047341755631044404789203080263448809408328339080370926624370134388012454931514224039496930005213523254316804101522650732741500459429790368991560871256303369723804963864341605803570138934881141819747204387524652916121476150949919425794886970799833417343717835748862908694727273606497467020234551963498989129895484969615897586967974304174165827191930591855707841752782783807368975342870921628380183033474373089522697443410411780230730932928145133672187937718101729505912820492731806996887256680330090390548646605763308073994689264717879075644456272273308663894707680648688922406599157439871400359105478519148333495594804658137689010277459067397889283576965020995955441607353599460615912888078131198066418846065294273641682046979844861409114224251879438731706364776912453797878249173348612669740232826257451389821830716822234600711946705669528144233042914468483000523050481030198363188041377915178196718976904701801910901659816865568174297193369790019327736269355122853011827553335391005589271070882807870659378352175748502360781500470004674277231482955324632019127837027233598328045164457507006222263467760553341494832919239567876973134852937636741257288499652942407818769370810789139399646079114952189837020803467683052105926399316499040865421690306527495103574761173671017676556808279771244426777555855392231462276196828171943129986280754740465517498878362864826919955303029206339130177984255517909070796651394576676834417553730218202662159985645105402284356104957349991032973375441813601753159732590774117323342633108508405468351172708979084699618518774063926068682934915382585359932786577373642002851886671701915255808072898153241062998191944093981087360281736167406626888339864184170496345346280541411466202315260665015987386971026474897285803743108410499783820373436190428598780955073093494214960436227238616099606378816071291856110592509969996301225618981246135507047599140084193947740327801304139634301875843588384876430903731256921813733455452273488492814884577018248679853703852473366806629333787866932324960831055240012958178442947849238822877742598483167589114420354287713041378974471665783554192254715437815307580601868918831593388523417202045917115627564683107591528453581226126454513902436982133455158624599382413572876614717865763014990054178669844317104317854542748863981513576079003380878851013288734633859962660849496873688891030123928625342315561005821793980948774074361104307885078080165443702408318555156083282788927847903576763913700633577914372281415835777076861869642851961302110542953172799066823232082592339620064269343662150849134394988186133800410313660199189419126373995112815561286114985737181376618945548678354305728249060359193482856433699365822940474452623322442213870556799552865725789351716014360537989561752668533796578330131580658066232261157515277803096180643572712747153441815966739854105321657673153018877522255565510596464591076710534466264641828164094565726198434535672716198883277942287008093527881594952919485025304282558206527012288468865615916993226015075994644598926104107356313062609287668217919194211345058575488202735208793562529819219983184189000353516722182986419721187278275281039703054412240074373135260949150736246351299605699192265369111094657245932906577108971743449943005215424386267060324448126853659551268676411636835464583884081249733750044504364612472754134113293159430310346920190656259709489558370672804401177588751835603287790004053598945165360251605743640471768616652764421593460885992811132012973922730696844363873551563199992147809472721579432879842644216216825727273802420870129477674505460933070476461072132292729776927518913922058521456494509654948640805315756668565636728145225578940720026412911922360552235344510125406629677598166610704099442490905339142403364703304711917443487220276348342712181282601988050742365732228538354754927027122270610600571667725187204151142056915098560422842870618428046931587332135876125902209660053993848956821588183883112374956421728944249008764891211981244878556650946482070597590523500653067973033395316517581957227640960863978835713169298626240017646229662723605994153434530231799111796862232003588055718766045032663171176962455318597156403787610023231843856372746899349390813178165226538744403769521295332136493994823477487686249907062808127545224090717172498881036809698502008106777835032686984017481784478354568044194462977293338110013914947969362285712857629028107125768065743101372686707789623591049369705119966421225181294412133619344031965597798220014424862441100358094112269679588482243199756048987776585138194449151051959060745732310019712008932301321936773997687799204506785198488088432380635492991580483391734286610286335209618807983630827191215513386572438010849939729950744971489792080466947489666760033041875573617524992251381130429925066755664988754165037293596886455658245695543892091927208975107934741867926831630588874730181772881905385683722310012216791235889978649170580654247825688884898804291463580396580203058836590598600539306394358502595857833998836105899484135692997781001967401292665083505250972012851862477568219959085816110964272105789953041858528452320649035959803977476648870559547598095950887112989809507525808405712296978367620060538629513443908622154236956499879454311664935338494058065016093358094208471060372616718988136807187417050813579090001831235207475929378472619189974027505072973141213638866708869707281805652331924404257762314962886895048625085494529634313778363367626412026591517696314379452010383300631299675606955782902962948909899183154406892677681320533405349166791845752799013837603812365711017114802264039304516387292499271330833920110629429396147401026984696444677804809503716936694724606011514355808394230723853363990562579174897876422676229961752018067063122370925192063476436584909155309349080476325762277071383719409233472969013892040978525170413949050781692341552181152055561071637816774837889642682603156303534562880262107503722078900317121950516486210279840016253458018574311207840770953258860802199863191517181396213257839074878310445320315589671213826048806891489680970230499465718244056781292677910905100973229903955532494424345436643536600552523945288744384541177844644838079925723486231060929294506537716751803833237641930012883034015211579384124096769183512105056880910892651529277874800584751908617225073370792394752772350576387355650767011631694248130897460644759234481959180207771759689218171901510299932969285827049887585075747800725865936154845806492779938193978779533229270613903264337461264308606585551051479343934097336808988950743068423739742947864032148743743311541306561730664765533215780682469029454731830571173617410375749577825259922687213577304039157378829509614299003896958038631081793863942579361480383941506317220479595185253129008999153473257434252861870554520866492297802581733890532156834599347910167722533342391061987168573028045606300023107392327272194889374540993247080440369164761655002855191901055063233547061961731908531873444455686521627936147119931147573961466842482962829807947680045457138513558882132216827396667454157382108796642317346577049146507778664295590336820795400454728401275514666036468929516052356545721188394293338730767740851931585877697666473585185082400146854661805630817946665008612421924085134257483737612225789019449702966497850880116323330139411226320836775145948710541837655209263866746044421327656931978779979394664097663548131524712361036609791160800148935691595296628359686022804028887797515753604873627649095366008303478050897122944734224729986625508675141102376838302948944172676703772661343168966276262915417182342501115333795878720492435794028484806263424430410808097049458050199409234330475857910913901598332229856464204573377954769171870350032582311813569236227575598485936984182075167224659438145301747952284964995802956284196569387216754631870695508551229052065749905004387672206484591690262556100530238751876728388151414463605857054828668456660747447628934172507853291021232547827921726905545812573767732366410967609521264033775280737796843311800393802130446046450424252250309542282812944181841493933765154012627833122884656931740289297686001555597230380679142708508433457314775924390396513279760171729574439367223033321962164989075103483650772816270699482089395579761459283210582580973510158657975045766143271205581867803540424104105024790273726155821815204511244981068152935762154868516439855600404654271263019729369574863303892544110276826816763377981696334016198496472696340138585342715419688739668808951039530899287702231412677981816014627136965863092888763713953198704353287888264931752477333962293542440718648861340807996038773981608654184295503003427308371466773864214842863172592712235080370059095033806033980024488760268648010191058040484966979118939589829060605974313256848874238194340749177081737609078713612770759899760995015414412623573161989291043778869172999535667970038059241677622954189318931069316449529420471469920839727460327562254706973137725472981202023706808664819897374170215535022867837567201911521088107679113379354753283371089068921641622834244382363628394390667624673886885920526589913606824214200602088795706371755071474742728552099947548992607219062027768020638312800389776061875840050829542049291333146904920205799108056141925428993098477971278049669981992990085136304045103371486255661025401575190499350194382813540613282560817900861535604445977683401390039684013912770842595019325939382238890739192381488441454651191321872295111165283030975521816540303772724235390479904224580915676114206146098262245710220147779112182528450467294650842492643504493536825843150247997853270713869375749681803557069696240026593231741023154004778901199088817860787131032886808613936426725282737221785044776596056556099862756088018941039403881603713411147421149453573026060700984742147055307828571175400343155060982745989444393296764605689760305459431830154122823381082622526276159974940027867806596376120852105955848451981817221541439342084618668582931438682542238533927558206556533029734984912386828753553479311359778398713973791810812582137045050053765545975782544112688688120958354928309861840802331541255910149918857231415604702069498056185886995044023913687640732809618801032792643688914139206682515211213453877528981379707150268571924447398981616087787965526628131605346475737636923427090271220140469124006466475010381315454070843239652795975671447350098802565393320967214256255212961006978331190458565187242095192259400468083583633742001448436440609412232937849296658647285926408625535071526345308073897833998358573051535830236770451091005319453218121922796476830294667460484524013278681273553406865244574636807448754273110659610547935236144808087110985215383949334938115066287955048171791726736857773016079807433708984863683483448545849026656484923100098577109855971736626611393461755993186854039881551250879507947080369173161764148707794691295201040709886205379140838209720722798119544174069310289507660938698364923290268172277700300143154613059568420283803023058746014219713029568487468432489517521262715807436980979807408177002148259450794226457460700712699638290962500840070087318258140279165503909814155472132415567540454785084192455327258424908927608333552035382100649927948180518851257254004560041459603536532145112905185333839321893724692892588516129308609636861209650454574179148574630107053822779672549885222036293693001127399648282668518544798942409950507980652166164030407082714836529249784208055234637521703779930862419819349473487301862868061177108620802273282871540258059089369269610931731306396341272393984129779164099013416794345030536652376345786894625502706489392075453929494668108739964841294779267342587695734726260984981288404527038309462168265107464318293397476590989183304501882048662212015444013557473635162410273352347888442528346872206130457502082741026276475426729920536787536354279820156115959148873354098611298214780402383263280987581417321536910929215838339993211792560457686624564962837864826871084340879221067426158647124933880371196607377068633110410289295324026946108672938542789216005744050132225312357675342054315041488280621758902314454842675749992283875437584031446735359260175664701384329328101361924869861905901581873358048606783088622767078180625955885770601951004417684847208796159585667589958381547196423400236990528979381794682046517901460232521029925411443150837475064122771789496214656137203086355922895150371191180796337014949926282818877168327148376064755806387359812479811898165461344118246727883247166149765349841695164610888186570619275737068992234885199649478093982906354076304528941314233671560724103239848839276863298708565853992485192240574347566593977115797996596258758783427202158347516275522652866327281248493751536900040913086921467568215311496633198078883012795815303617888164297743503446644679617177236419187792465280627615812724733059654913451328870772129545847100062298705015983511451514315770880924098571276431634232169609506723647199716855576306422905082042702561354722946148955076086562149098319815564813211726658757588649375067319157306354605320638051959809887833026328739318121159468292416561564841284160952974171169099635645164327600415743407105954438411372277913922086980856970232285216596846111492320749842595315345054531596632781608754112424350134781807387304962051923320585855744720616748873244239695953972845423370837827515056290111527556949638631687761247759555410591807854680065059139374232630791046718983613429741124515956734427847385331408829052462130049881971032564737543382784974385624794630568117321600730044719846950203334120890856260685195584177421723311049557866578933946638031954246843910084668136928063975099112820959272314088702049861342418279485933834581575422366181158570592944235621817963081783602600873978392938738233074648122315905349155109571562833973340906239887721397257036179720144005814283383483102790675723642641298052372883047808665202552964585708385628147331796722535852702610210883970585232934919912594860491234613742164725847274059230665712888552091138471885129586820408610885706708917548092877418483166649808852562149542167077214518505533251230846214228436936815189762825361011623207797883775962229040199287656415307344652279389562448335843509154058803001365589921169825106260560138169197581788808979076695051197182331910519479255336303775625800083384911587548343102301180103182633650191788950639634804423436110425880901936373725473000946600287534255827612849759021716770638235036364396945168802818704143823277160786189176267514833889642028731886479214840537482304935141221576312370268044997254340933726859692571103749991747106107324356648666660549975747518017462782598387966145337501261521185991377411329520528650400450799775976190052535487477314999251567565848725473286469835850794647507558253119717957582846868007075399376110920341604653424963225249006339789147223656789880218839289173545452605504080195174922047318090243450727286911620500846050223143349275745435223804942853696578891096418777194184058405236413839833529075029200249479969402297425872575223557764297879462931332790950382894203652389018096964955305633672065998491569283664985496364094809114952377070586751147224403613237848129122739394632074098560298784198939330441473525653029882811581426466554904979880766771081585840329596367105211526908417675898021627458623573994452336342886929270125378696208051331249568332271877750710809303572534950207684191331035464427708935823546328293431052838813983059545040968185885621013494275468719369822766328957667277257904550026486362199611482731514540165227269111408445192658006161663745706939404963795614711663376921209673812466797154209329161364834939469594749306744526957866486938870620728265965126131722920231016417649450611721504533924255595605361431608704582229300545257758070611579805583210574218835473066430791140439883848541193886418572866261387383112522772782056626704756862816470696060225360298806146868777953078652360927532240536743285819350030483549445376849854844481566131824290001205241375089524979864669412399545649312877167844611673886778063261008924912374188181257117910115097612756480039933337988191917531841291363812233105462213104809473943140635280958436344074638326996091764749417954650532610055910158019037808657465870627932749980868697722597887700407529357962187414202229810738659888912045720447893767172370495752894936276179117748245527680608145038910663062390172710496307288360491801192190348983303475782329813578846524230326226446974214174057751951686118048650836637588049724600996918241690754690646387607064524464025806866427823316637125077838565087753111716848263453708514621238498587007160111401839342563523051360813166765700923587756542808306706452941717514237511842450605209903516837261874549181722991184546561448504501749729804592669442483838286691181091827360930441950406872511477790926477172215036756424283428012316253639749513531855769119244694108947871794246129853587240045513602678321515106065830655730673790992753173904293025442907000954026499545853972192334511380335775198653726318336279838037594224684239015850413853988827653141513257450335550560741079476261895308012613098290558876548582331150467440280144900030614779116868580992710818477513334152909562342502721455673451617512921229684274555564985521407322798014271990057209301126376763311061986159038281579613554104016892229682108897462292467831359380880216989028561900407345405194826268980424981479422506285788586476301597302404761163881342124881563834172153764022299894546030368869279176578084745114861743206089170990251279456247840992038613318847685625682353211107964065014753211662906815814240401614615774676631470285301147024326125577693201959532271269431833026882469137822967301112132385854286877839125084554874871405641264713975804334507548801861553534343625437243860826686338551890747832300670978149223316191486881382150740650573288943974885285500100063632101076941592161203349455968912582427999270595949381994942847097083847633787532344454792664831915800918426871597237297681840942146608809195928131483812235773282215098998740722106814547577089774384711060131769189892127619248660634886516286294559966717649899351777069657949322537620704381975832098092775209534797723554979919835058931592342398593851208932528257665704963243688612248883778104114729972632436068914147950627230724402384761024692746123852653956371384533932199506162499826832489351834851669501895215150778977066449368826488652906769451412695429180715775485343881520680260213646800222777510049668276387770584340053029997511235992830656777915296531570702197779024047745660445406514224182049366709737493044410521094145985784318485632819971879360089429203088084626352554031268753582486932896336740343467816277135932525844484101606595996687947669535329786037963660622960102082403497164790328724045520899323958514388840033953882315710606028889020976749789470731041659992073448694162932276937076752541349247498755236625255548955241961355443391149582367164269858197245796251492375173474116987262087532072245697230520651340520248063586020053188034488249902549935968336229957571536933691035545547880555122043810330774212742464939425541336651069595029707896637177296125611072026937803963100753313363242119194432143501360683076960315125819060127115682697519120672934364955678602044081218779104583336754820944393711205144762352965145077489655779398992210305068755568417225425106492619281326823722283683758827976583918025603310966992665578387862396563930780618203380289110824901600964315546495523223855385203832662808568416978722937847548046342063522112120125372420894900337545398354319313542743471793123766475484469947386003210019737018279990197855124539281488827280899028891251555349882435017303076679876740938006488882475685977769337919924374878350931956179411089700359448695134809203546614134199471893377498026517840223902471702438411916522107886189200106881081772739978335669358852803729759092838186122805984653927170269394305604219654377543660375762461089328411986083805426473350375465239541148573830281691253584743975237205100171112070073545045836391630340372962336694328499812403751844924277662814588080575343862790182047628768855341143125465801447711596702203085915161862837849425274580296196336630981517814005120811832352987441674811835601318645209379600830534250029620017068180835045514429478431348342665375370020432095611240821895116098032417393310285217602915185545572929845606932019368343390025661144364986808516435634345547975494510073152641268563200973346835550906359955016299681461571060634778266790772287360764397944701075460004824767598832896223113915950075446019240346638416975827082955679310302546496981330370375442635600337818429619435981745538951329465952453532780292091229826581408871933386926444176177992030002496092332786080914084323751066683148330255162391676356689664171865726660970204770748840178238412267350612616595038146304434099028847163448358203265606173985133699205638036727329701110372734723941764629488853204730044436434269458912280716913004027662970730865697606739279210417698341830469272225487853116303805938768488986821415236015337824969978168694556257562885182404304178844805170210259047855785046817143917477220435450762653842052335781243679591574427310104569918884465789066066013082851529997141471360086086875435412615295280071977909394058061826976348743792313256992500417937740660732585051700814445665536484746635683008854825150708810034055727510326814448139498025314132441535337638182367464894077205876416443455648729881552817958603900537146329983261594086988129446024206838608460883498708032333898630211371700072598576043224271223442072536684365744711218826155145469322893135247672086904854221926553985867441935410149040072833951075574460192169863636121799747004592884059535915133515596204170942482281916339463499227884980082539905038632078938197976303236291172136481202752617074437245028569117033291197682762461669932731540807157386873478324942567462912853810493182792217530221727738545124264406146597276931775010401709877338994228790907396936376554106077188056871138695318152128703329562703498247373808161446177777766370572445103799501894041819503390590165298326830280883544052720171645010812238662186759199637888235723457557969360873596557119960920573517520602806449310029913160526320966302031584124431369887478958838083049880536398956329387749896103615831517733885572453173779539905679222715172022358899783946990327147664113903030006290467697711907127288997140107831278915765884317822172777475621655205294058529161265349092000123328520196230600773276097954946397651544731370136193642329067954460759063046016290604311758428457160345051181705057535313764787175544827327085169008463310651311182651278955487649746173897758180183841213438854581848297907727778954776910098544524044065964814406457024171786979326936802786153629511592982176865153927300356699244088373361131991383076687457758771401554982213497776853107639874928514649613573956887910231697098531503525648185879521294550550248025142965378858470363515480428584355448507332270753761459570998079699539043961686121826804591990176228530982332581641964765614379002943310808860969869880975763238051244972971795333034233003834810127673892314492161618021609033916320233704444731847619839358818772824065130073683829935852462652809956569469569181086881225827567970145067794922276676546677131120362574695123928233627046051988718511171997338460442372874582296853583091659140317927166126691657965187843738833472390374394496402784869223524980319281958933570827627105320587083685199944112902193270629522403846785832524880285180380221017458944299429056921931988039507398977026864585896767146634945333639706881142727498775034967551810415374616708455481147232457703091724511777497780789948181723267918382914673390521560265494331422688915479071901243752370282900996487841375785120973725945516479816226681588710520626635544405528395041049608495443532901825371814339744680834786582608347381176533349435577904215909226751273966712263949488941886508468259481586959581417421911944168894497608294138800070819069741376722704758050206439534240877121802765659231261173701244070403719587426730241218629345029147456733634690358915583908802021885111363835014335885799680040026069071381867996377670375970202178300495585645855660405373131344863699013500583368819534680507382284574122208939968401980459289490724068060389408150682212649999491095660777473161924989197590400056901050040922288621912614621912966343616231347727252517069546730132578069919890847857708281859048233362630248724790712436070527951726894682043836493049389965414180727414744576372802976828569691317794570636430494568782761928589955884515591214580136518460299998641375314503385107043004629542751518595866547771457725680500897954832868653882508445612498948030424476118635307479442318112769341205132407305159750093023978592481442489383601690865486962436899132370425869906763404172587333262727311062151567476138961703785117631645305901072083245053556236965747789117253690600236747768442197100821104456453444303263596572624362094056455091808073113207445337358874181432396590474431367095027829016500022901292775917290283442466341603242446715213020512887414937501242915793088618542384660142635702655354686146677152371100994509495325122873354281836503193888379928621831789521133067539116518459130859207123775687098152201819422872469133542845459770646595236008099381056085795288220944193417543475819829523279927052306912940295228365421561017245216276999469912179156500111064955313065201256171317117112547189226073418288854507995696096252608418086297253558750238206660615870175765942411335494596866456164452869179459767214143042458710190085734493517430891152879251552702488073352430152364224438611733156903816386556143876656921150229866131435341838733338012652772093355187832461573948667818661345149514099201171791756938792331125415988736506369661982265856746829263053129020447683984470511581598880963973178861236910982498882793074642712478236837252941037340078584076808263320327689394930503023655467154912130848705374218023888638279475875125297521396049370434323067666692817445023568932499478600042519535208354302111753067760625814833625304981052859832014238214735001326881090228075218318245005820678905309216644262646893694936135629159570219740479035131414831374576468702030802568543129803437095075795556828757395954770417567555328645201041890700548482250181833532508026102677899300203671982519488886242917144304718126398828508675766693134506491823147689820698026616728923979918709228833380682725259378644509265310426470786628733403224960608625322164317158961484243375998348492566872845127732418136954036263739034377245220539828365890346403741835010969828072682658289266991323477556394052007969543888448584009573468890125195024952426827810585806145727083991251497242315787203156584123552398182531340717150788230376193002028262115688356206089052186389207584167254364787940752363482785317421660258331234572174990674239905910271099927439220070535287570215918872686698293842252953094486276039821878203345524057372193372624044104160258974848178271040948674406045395439226381010111006630170108672380139966133771260994802250446574956842117658043529212355018113873862200415781162674423185907676180563727215356948024748109135352882812097092554577375451418801888301168413416190074763357689765162368558164571277058437739346329253922179704059734636079648342588924465643818981670423109404912142202870698058215162407211539915874367313648493739740066039531634416584650430205151527673352715412982347780757751213173513435051051362250688139288852438941723782004661097309613894072475407662752788148495871170787524204750712298833046458835315681359322336991560981869713102104326269104001480293364321936213027809831946386788231300378936015558311167784817018650654758633850375281996924104949470523209348773379495327320924271791562350678172803906852696263831580456255823550748264490339912668575375968083821229051954360503869997375901834553122780816959008668593952259296986229882154010367825382372562788483016242739216326893027770817568058170017856364166764511746500626625662222251253017970166753808646237489099793236769129406359029304938629972551516359646885526529188893749181631789512052398288644436506531885242250796080659165705748598580420534350247714367190620180022351091973570211406973994174530833171124334872664296629614403177161566245526577928263007337526933214597737957128301736550887460108561583353427493761258336294095549169569158530598535182003853040909587130407747473933408411999204598116167085553215575986112872813542884360915422035342426552701236100659178645581618043584618822543725844360778633469411026118295067692364856866490062373466616668622816505112130212772580173862466636417499766776169024408430298672751306055965243121328256254175478875950792728224763289304225727408832933872577094389091434263261052031013182053416093776051698167361664514961695555294571472025660561837276672344046642624804492032863162200118868766657247670459408449114310442089585984294020462831164196222167896846171270969446401481457635200105978229653811317999633494915104396481600676344132584380645354295758750665186982786596051757770339111448967354031707250398351905159611624671186166919969210344259135780001291254395565895289284286745135503014112591741335215248929421899940247833596963863968220307435264029321951781965145774974834659171237136588369109731244598757411205459100588127767127888676659643073771410691513310175561352013477787899628524373764935887949877159911002861543860916862305350775729396537082095742775255237585140928642688984224229698931186773419210222464576390581970369837087336199834673254349229854868176947965839234298317091436613793875520933551306531445834522125368643111939795926997875634819390803993285029477102775069230598926409320771199157166041018004147606666206671325550315521491757531307705196385328523795905122344169591348507696291784799461816158232629801254965273729783192569397150052548082213231920405179017306613565226906685046804351131703104858504142024441237487543597644972747409984854503365235026520052539952066447139131883253929883021701950076553959974230572164395731842319659744273136463774157306087963560427194643980659520757753073779027004072358365137223069395682791187040804105935808249753484584560034082450214161105338239059880200582487609422942907306447791581901522753982734022927215363427024807555512151969454172205921717261133677429601532845119703840593300171583390778108699893713444777277889702999896803375786258602774000012496746890360834014222834959347459768274244529971895176264522250029223218497719790062167007612026807701879016851944959080981007342355480479300070535930156654697576175746356038173144745524489199190854788278099725942710628140777601199056021974162705114051172696363225294713503377623859674567165441820277761393139088881915643406824489095186523847010368455648155954927994379775199046874965031053258213017388522575315193481878760555259107419664544786814784456160805925675394571501848986573116669391580096708744332627803851235935536599937952168634644267264269264226048561825731008919858274944741446509582263696203537084128765016584298056982800932219044949112414601697217931946005378441252320318892123589680255314529333654479340436214444953096196226020406880292143481163580042101605604045159093071063170578192998060134947687796593554955462427152780122668833244674072582858393153353447135757776228761247531884274130234174900758129410934610086070188690388981215480362829016764506094355655222423995117098703986700747852244093494200335801942577563457295311066840613401960362117593254073406710946367687034836932469485010337647610659190006511724098811213849701124858918685842868399720851205172108584196723253588454608749066342474720113829082895328939463934845095550921952190334365898360657567128806345520767998240746689787780249556785852248150408058617131555276876492609019610453630679874048400108906922761551349551823904392561088190943457976759682193074306952659097905813124953084106835412126006055477305670136052949679617839600082902549764452570772267322093717192666848152940861439110871001275249674431398020328340685148425463956738776402809170175379455137891819446303751602477094537840549728853492865376144625330047530996222474073747983932260469846235178806268755743347492093597967065258410768903451892935224233501388175249288200661849651093203006259499792349839293018033932902715124460476881217714216777051264655375275056312407374311467708683393217510312318539237866501823459415663373976422597544737964538175272374970291813316060187207840322948917337586009204973809000287870888346552425144393385985579136079739813073862156172061254166056206946614861224129564678343831865341182868181397359647116628723525029733829827716621656828917592825496248063446999499057805020779112749540021338285255997244371882231044921621108902101202889703426734758728236931828239977379588485033001770463490678278611501367234433049662000675927388627171422017016137295639671793347367975515592981955824526797289324009407627192416754594637000111448644473437079061145325388421533892062374495779872189135885926922845128874089077506076949816661339698471242320091701385525816545428858372792784810943093166587307862219683524817465034725538930639098336977418565510190345098808580979627585931639772782010396447490607845677935606635262539359666030675121964215917293066638169999721145095888986192778073001931026791968417735457603530679358336727194236445311433219403277954456553567985247834367613883472684711721588197792572600481312925299906144163045712267578232086927748988667252386645106548083819225607780724268047411220374552136360968150714958942541783459160398012351592201068652466518636518252515063343715182616055387437034816067893426698393453857407847056261901233030050254441544657885970948497439667028088784856912995998166772478289898243433667458325453610390898766563030108708306125283063724047047743628821402532525820266410204237975095424318938412686254172296972447092644602830252935419174118954026070671676057962124553432784132297060225448911413560378893225900483904860456794329371920012444687387945243501606238967275675455209335688534197521901697586835731850543265921580926184077529296092378148450662321183956899930230255086759871257638551090433868033149952127885863693630753917410476703190905235882898865788250859580120841355245845095151994971558084964998178067016657351591272188025523711916683600682188651867957639781371759182917665625078977237803990328591600093420352705696703532995005768292805016460999580093408214950414828988448662114179475553854516476823319487318526809400419896888208753525054920285512438113792514544415980858103377015244422249482306467110734080753366539547878289372463784941877069781486411032197017596035146234401029381989001597801307265677457864733334123361763945935609618227535088339768797905798362788233347332986664998354613623075336502205742594396823124604993340716188560976197373033152454992644747708847315129808887570125392599197634404045866185571868779234615826178705091831165686245271850324712671052352970851382035858999303452900194914744260028537641430849481259602337499547972019856471513952587206748867332155979944996177111962064155836966727965269871696429503027305142868977698861890787108885732440952873881815805811878657487232532220088366694753171520231078130940211354460195236203528613081143964733566991622132315664104613579541939419590392348062551496828498517445909895919074378781621926078293191917533133017589313301140613137249341403604398370511506276817404848319130670673378684549709532739135088017036994895011749721448104035040381546519851588384979685357871639614298957843116956802212774069645877328053563432582684896046750024206525970516447558925828039051184890274372701528207415075743971003208155456675676853090665312935042790758860864294058018082995982932007854157075656604284202356103353256341215976915440947019794064782011910817362479150455231022413549801943738221730863309822019381334782086165264413192800956377312606580711617278021287783816431652130229584763412699937947091866711207410792773564873897239196524563927230239743269222525263643127510057057958433721560069334220083667228667882894453133882172348973498573486931510253283815985397033498621035223397328860291240294380736405291437167715296511696327220896439552832255434916661548467588817535521847820084585123031745493275536031967110654874348587675570895999641792895988505448637684272564367482990222163399378459149125814095747338214356866989479983135691486645500071370944377657396642044363869494717769383194509914927684947271077214240419613406303030284480861657984644854372540460470776464314370744914471345158403013058330700331549869486585846524834382580213853675861116514190149690859888934771943236621319976452052708735145017961836229982914413470337763445778651145700769900348476524934562050310479493425562764533628246207365430560152496135611527302453308738578795611690972720496128501023526333119912667991242974757625791695716914669547712939114780205126041056268885674165490726474423768006780690809369707468318183738380112159069274962353865381310818242654807564152802489382956329972724160296051755798782476111172123165119174146047937112144340909392890500151959402032139974289080404407800696987811549723585047778529682005457307749746335769397287073663408766952603298030866371972574285923885726694020895887246820112711744797227165092261983379849776012434293592338483036741982163880824559745858733995556211578971746936520233634177171683950373698449692275730095920140905815875352657179242763018466379562546351204580648385556847668211759459746982599498662578730271256051391508852324332986296931795591282945525840340159119804112425752117241670688244856992575437065527379796607646191660756517477031390373024515089251322443446621216469687087112401089792192122485239716774662368342719131506171666168168500699099615337288015127411030085801114264416654956521296461221469145022509153230133359482355801156453711909592396444481688124401871321998610993325010795874570612728536093315576470696854105859297697785516748081339485305463553063190137255005497949507399505774826605063540605883983600826425540281002541698931995772810965533148524231474097700891234215570154114302406057429469608592233216988358626447169112760642099379695920675120084784550984636205696992186972929259196109782783631121834846643310999714291692279691760073312995743153026190049781033366253313948189795350297015252500717276759338346908250442238985547180161938560644029263838163171580251188393742488720534623458974380726234813836007335275645293878499977928248235216573283850123457496583265770005209196933286721901702393384489804325724089324390175144410709438240083621537266879843803310675748654970874908768629136745573614381224967706121615538090470374105656471475913943303065902314235074629561302658201310858416681848012604809959971455052649340376630248148663128094542137154766523104969195076820789673771815630934822359669615471492738190831255366178763540593154738541106869373348451820557093652197620956156941203940477319835848954501978867805175222375424052846475410085315875169629268432984116849753550821354044172926431918843673120863501406960092328876804918851683216517395409529437128320669225838020855622511470879202975377763767398250848813819794357570692999892998220437719751957641591289525067522116469112514410431255282090498768513425929747063117712299950622014192651988609168076291869149980295721626452927141979971787302438496724835040384240320618658032858534558068137490161681138123378848875619733853744734814698755907178957957099239879075438823595051395067090941236701084905619529281739068452241806456712316982185066320729351406193762920872462566383917355849410137787786482235547834293701535470800623728582869757289181716356327108522999443808424006596960430740383435666361687819005538628221157211770325025042895841112902840186804024593707985571992711309884223214887736733693897830019666309572028872547216389606985396128529406723762876315699352890527598553113311093785182609832448509109281883625575807059026387507425616665908934817319591471222368842899804281468072202178536331907500490727706689243350662199130020848628816973241202096843218922570107765597325887616339530281318290278934073277741968438232570335226786502406937226306219847424236341792195920150845635177723706198172864814302922113816970561424988327241958442258675908644512669355466473151270767224829739736645119334860428438749631087237830006407001026501532107014837694791371136098645672304706406642444577545414895598400883529918816107094207331253895826773661273688584684741659454189888987429658079080055855092017741015201465326678612759066215336823225235979952357211891664320873963404486586574284059816927074029094154453665928620793504313379212581000572402708754949839012033498797514145639626211245486856359062889315125780454863521471871686327686087498185068249541263533597342779597410929485417435011860776025821383352001986348255791827658931570371026947438260489957586480448623915634947202558637097001947780363423305597917221707403086615584962844592494984380103443070467301057909059409360938195057613192864406544593258423892089050327591984762261457633091296689341325859905699035305381681388134366911057514594675469514319652821492948237164606481550176911603410235432882550399529180372580203095604770146063243206895328330003729955872136788403409986338990134868003598648883471347313225210950818383836144502649307313788204774080908328174722677131911127095279270254823885495054623216895325181808917457099626591428271170141685692056293789234010135896106851220065465027918784384293175447866109886334958069653292274572008797016286520991943553840853638941704469888347721009809803225126352723032033003967392868213702410756700633041105516347482583669240623034201965147364362283576942668625780912949685619204814666551819901515671569947873755495971492906210745360563114293785526706892295008304758955698421319106317606791235452062954674906415061910766586338205305252152986737471226670617619277535243562291639619028836911903729977931336142623951214646584393283860673794490662178724034963407230975198172435401053501636633098611212298668419713014710415261233207043539326361645774114524465515143232732345516400165067491885595269308863581712509102134635182086599214113023777843303542947294932259032420020799800504778142348743361559816996939952236995086102960932347015485890325561827916304367905047213699274621211742285015699566537513831419971425005562594764284308686317365433933854886510082108707507000887159487324555041889647444698782700872399334009925203092220309941173623560062000318937297193355378662301492589962993884101513771657910967289098684083855538770295778496147089207630893998871259412229332303316681008314567947812945490500324096047725293989727080444908731070364186547823660796871664509159378738832011734574884074060422390979779250171250395001257840530599079185699834504482480281738232298525799957650294114642732553691975138624760733641721024966829583292747207739808515129038309436238116741189405850865560056701266151807876038804164668067821502137290828328987862680031360776802548330962775586966999472371236054329213906420827445604737216664537641121706579955208085782046624166668207992464720684725464635108802538208515278086044585649378130947667946150726557698426011455712892754418802865894507205982859658869561371137613978447732870510864371047402182972354513979262432378016490981202814237772250368024622415847390890542541758899222042883407620887109610925704305859928313156639798656599032892471187212873340816766285570061737359714585045180091612052177658698953087494280615395142786785785096384685208307642922853883858873272557000128970742616132884078241502931821321029437885536307744800942245081295127368341006879086162856032423564314285694720896369268762182912650941848597573695142643990035489944258815838896853160205430712449575385198673417864448053422200158792784044574825017575508391956745494224132884896384412395192741831698123966920133750553285079240731471847552507558292504707820290349816770000357273354092825242311636720541004467783869236825034633227420093230798661524987947153675523387429461031948177920973461607825303311778256780911928980080616657049199044065716061414999545129145451161136646368286808562603889578232352796451840810023644126867334747225926627374368605654074529707848355952606795204468372800080852804776800392041892888540305162730897913974844556124224380404948167934180864261231761053345562393830294250316766663325439128780587608881606675283359406298085601241887595924709988508314795487673609053628361269979548535714807468019102134948451561412950970158518657244102641663552813290162661873608577635255820534860509492147096616904952583476064345103480268054156495741192413273374749487470422231106740691935670359021086930731667571598815713340288953277811375286706962125855237621563490978935504264419134127266966977596968167947334106891465904876356908027166763440089691558547876086098577134241489241680897125872098998927355032154468559723985226866695089762238160851042851666031127675735123637811355403619749070807587597766039282567206553277460941999217165070475598308423248420291188035871083195388052989320787737519084576616205846404023403663273946185325782315053933834268806791429137528393677553050144897886532188869438739561152157554158717809308952605718037964647476822065493487071287032820399166391639691175796754814895632716665839845076848222622097490819491012290553717784249519139790924491325851140333942752204977078445125057086593999219506915989055166729302961840371154168687352764976483851381330312563418020376302233773465184074010613563811590232046626250883194592575105054031905921106720749298650192917932723298233770775021753241536239378495984199187963873031927780929716349002092122858842353128949354746111207666760234091278103564617002741050289673234821853201430009144877526188706614068954634746625226886938122873466343639604008994257604924135539726602190058576223082981467455383820381323083655772516072084691729004049820223032416609914938789479514998261455398619009983709620848770901778386445450185683202367924235034366595250918580425969642112833217459508667019174405653190546217659127962973188283918586690933505800803857845095732364209203427156751021800418646075880281786959808526521149843729539637958241693534683041196348903994288461000328218379909462814078694850367822236503917116727060964379270168709350369127364487761875686376091027803001056808220052597865641589771129023972389931483216629376512332700169924065248969113763686537461364596098659016410617408047668651841081949134514404597460582560761590161078172928395845607225112843356650708230707205551589994974797218593784848783953135930114424476569118062229785674399463814687840661688576247765480328253681661809865163326183538776095079692773866042784700836861268051534471459174242300410816159987969650389422455476995183690579359532764836036261730682991428177201141848643432722478419499770018344837152490819394420559058506398876576043434430174790255795475754556262962646283104825820305871107304532212376319427971127219013432708523673852214374083426832755102235888207175088018218760022761097291277534565511573409437109486487339248402788965029244238543474393467046983197084977646143454478590143525149888243560804496238186995592790373684575929534959921136713099632271643940285236357647780103071075569292620107727295122665877982545436401918210449751217148044273837273710514252375522548378006574113415432204618256290421286201331250068825387602953859784940414535246510991643373198072610569355209276986715939518661752697410915641989010507029963435169482816005822462860044265714741035473559900297000051896685029473023379929875176929927118202006259171412741731591224018080225297536802480050673108757275778759624116457373137831073973242323728855498743583519988023165158432165497620947954607921264045467057597805838923171302725162558156615227406359276989139801274777625000756991035735042532979290215359518627493107334730091902732521899612595765048887302832070143370917460604036073250702346788201211412905062532851251461596227349063275834585855706925946930347488656786012225364083574039471605063722946099487181246378861164400820162881698510733798289620799737239346428246618096355404883200649659625292562901841619034725989080320220504660646404601222126428053990889667443515274746174301681200335818623421316431020701715892809999478485208890043437679549747227633500756494392623175373191546041657142880024473877969617513041847697605475598763037909228939365202532544507294847349372956492141872885807829458421971896037721219426753032149870776508605960552363049050919460222915709019616501224585475005732606028923925626391344301693288661928813676158172346812811322021966958685738951119819665256778658678319367716859085850941679810160059167254577109072397930503888360140410701480370807710503781844311646226966907921412181530288064246831687926622319944533456589339740795976534128961968601334695405353460714888311316313461303534548993311675047381786647192571328922389523552810818583955909323520036473867873554109858284696761339211698772242125460355597141367151771994856554265692174762605701038581472893935853384509507698621606739824904573256957804013275765885035100688748158618515513451890830858019128656417560550134448896385404569082626151298490340553332293975302302729430364610357524577067373587319084332949399101130127450065619057162274936202200241916737343283045783779420078168572039918272928020355175105709159301813099354904264792382940875298223612979699162589403339307611168232658180944199492710493326590583674915780899110276054236013793929561831828084958131850439585903601459474915139806027784292942480737997178195273116377874698243215317334277758434232988195659350713284621765717988413347813706589557772466856243588705661195886956293756720982681373066023802869094030185113591543232908442584526506482110247035261798089615983446949094018878890840887547139878073570900461501874829687684157711930038220241758790508390907464897471530547839067025542923183282729081497356282387288421507467363108801413826114057454271720844083544915545859943787588950970290966940076351303891925270534034196696543113382509461833526482460860828299195707050167658090589522271766235378536505116598134703337068253798264502494295958590426179657530560002165700872556061778708437992438693121515735162862686543510363282528858241604969271269903279190874757577737257759586581937390044670451573828250457494221729923948788875305525939939855512094052443205979455318756277079893161295082469140899759715225122512432693553323321515448303945432603504004907018496625211329252051386538853742623405149797992922429081069912170053275620559525394726936555139648460666277769671365806642899459790708759602787602095731071379517975274718167348909027345578715175371267580076044092070845628252536239904610392969780135999785949639116634705725985574164912700932978099168190009417069737740265616841148062822305966880831523977186590480408651925338308755177913484178433604333950360365982232727771467030718276766094691147616893636506187142923572123516719433280184094137029062644943454729653795842166356191940149129370660121289138967249109813199831843157401832937366144545438714286416040612393300767305592912987712739661142790087176720548683278804334265217019299496289742465314600096916479817624385606876708306833173563764514856650655187290520472723834111289912111881444448217584590497579973070206379366110472347549084508640824011690746074488556003828534472794339275100928758960615976031236032273544805072719885589331133782975963253289553062080584623607348976119831791447079033429712633946703842881592040892085501329505311335005557398335204069421604389688576790607035101501101403348537349211515189943620818245216643064403170718162398693444731087029594334652208233676700172991713758632732495393565869961569612796690214802659015200136247140430358134055684941797896921698062444043755314294995129456677609286837061460891349113978445937832560992483431900113666670746718970879856752302024998270493851249481714288654126529631781796057563786629961705343663568942325685149555879386721605438158217436006197884478227122263566731293585944161330783093656217872113764747875601068498939539213918110120120186351595175850245251728756715230897398071256648988631796785152358588663729238719344175729972515092468222437016235840959647454318622082433199123770697485849892608877760594785324258419895887117433377108104506776994363274085679132915718703081368123321375657705212317106800960736381728621546117624994371905561239222263578607910506200809246394194464781214326742113599708932103798598727193154189255107666541333404935378923085174908842766292004310255148408213514735548947726360486945210716641771631882288019010063878478650401710387452742605758089567477255459065842734609466591055801925212080489507144548169083131775993129365767383796314187366025476685059680729760102851813812202746775155311671724047652527310151107850540744696717506678082704563579938675156631928324130365943672564848101725378129781526943122379784827618187339055136554560607891985836447825775356751961820612517403821010011227815511802381431970686440130911778812641179151130185663694540902910561624822882573578199158552172395800576911896011666236606260653084115516079992480399826810850183681593073994923828779950166458707482470757988905106571133307924400271741838213962478963368287519306009563199103756889790626757874533536843627212253374087822551459755626384627883309078588034757658246799757371402200520052225770581259229146639107072670879391954939590507544726117810300943588090452378229350576834840576877162680992891822427267864845227288060558017991534088363285295300160850626642982755422807661341930935334286955391279074549957952157391668175196096544224616074679681032569435898252358726252644025981911330794421467795440297451393193651531147372172302479078895535225701768062073502659082673803932837813248174629242731301006091018811656750987402884704310171497466941198093692852502952150033741460642458733485667700440318618286597179593238158156696011458987089680344658243009098530508699793491115748737652777313690694140772872237959456246980303508385728525083272423849758292796796206325844751787258409863657471859962887360980035476038373993377482258875617402205322335395452423456246714723592325847263537943326624288088922143189207837709467541291966398746472203574117724028910743665104464469776527219878580286708669089659246021225202943629123336160618609895619016690239310927151831681565373031611370624136727669619954912889664754624585681945108971099574199445610098369788077761348355051969941456185459317780302718506866979514735984563247972108625576675045975660762275031847424575742736926624323764140176937865927604278647997421186749497329157021744303917287117473007481795239798476921623555146841680465131157207531947641831009456436488927945104903141567318742468408966949615419380387008123627196126713501743725470977565875835070046494705438672156893679344715735858707164193794108185733951607089775855076437666776331758207295174525027334388420872413833483645199490775366854168725162591541669525689945386961095691891541596289945743354906901471275410161012474334974657715161427942472756020159943297060382440608011793526405675600907286229654810258007965239903051151854318361207339050245838254907065153628498060938572493974572288908385301418830699496303818031908470674426674349163200022596821155228364789296449466056411381673532284977467823474940528900580382971521396052894775658357297258546687732757549773270639781371320118284102207335667559992317187943786109677247309065618666474528441133943364568832822338294949110096214810159776056141113184371464422877052197964709393375921571384884149478190610410627913632474219783756479408698726137813629461976345727941512011948958757640532193253926460348989588463112575806921496259138937541827923940486985387186349648870374298112683174227379231410087492844154866992315970554408147258510341389664788591344053867024601241454947633795345681947218254285010685024723541421839318631899262343631753775826068118689249269004105008732641527978089468974037233681443520351250874440763050640452118868190240122814364626443852500074372623532581498984015461380637139677807174937679370722515178827552799729144007519496402711883297810963556643637983802928931220009963631004506220770492819732210567043153508215289296094639279645991752268716327914026737840231137367661316850945444323561031816316558210850848891103070583076730324029414865242026646183675374102390206644939822179114304524384212129414197847252715295879800955489945744433518513738461622691435994230946148686558192625887724347389313127786373140987108099129996170234388790807002593412478344845514001995221135874825183527365751003580945518486620911485379406936222407994182950534652146966657512660063975727896184386508231170613220531384998769722892070831692905143522521315408615585367539148554439741297733538396434908656569268799099779066360845493286586420643013333514513570732405990420146765671783695924980384896520145882199344051099566118696467543283406699053893857186785890382375461756130761257508009131053655156320371868434644863094976242048557391214675825732116416396401185108227408790604789294493357535854625843782043631421214315005400688848004681908738904457874289000446046083478102594471898282121215440772523792980652940919925250728293129419076167964090889756807480694268241861616393214168147836935678828286082583998673801821890666581679355376641563037033539887642311177885301777293044626470242007898152761593039075675617538293905686628758843465706995758690586914695148025015518238231511296883288305429188892938012259249826762066470651286526225490925377340236717915236484097696167298101749955425131661872444948618664718765269412269555099157483404092869341084595213581947391862611516802655403268202835128146340362943794099131976877965882517101107270857318414443229462072268901949533634439697874401359580137979694477318674155620493305065311623110326210526838003482693318606602493098435374760105272793870594845876748420254760652184709835921968786885782028584804277792942461579343683416116595311558809028250474307625430150345325391686539904088308766982567980468587972810119616356359521941634756817898369942393662144892610482932896232488557848269527317036389575306279460781773129101179096968332096745543993127899737992319068801911423922030257266661188924852491859339834231928145902540604021718456986713388411060307593654503631238069984159841024451861027513364880959794442123459115309678965077582712019170975316428217120918035280823045349666294303640107156812385193792932294697558973782854583658787576006885491116210459416565286609935897704507850450967815674081135660812811573567808169305809536821790870967966165230082482088079947446794004255023123235074549285013680936408235962325508220851613935701368374441382573765521687147183037678738048100685874216713450646003748920183109479894265403051603566711280976696807979246642485731705657950174890374511224459239047082935713299423131267989380202953516379211000382064346482156600659578394217450138290105255862791836923397172561875386120818252267316876475271765502116559094196101458181875793595583405424174770482904919782534102930341526139301324002793177017582964536472018121326274482873341562419575444857764838464048054846815092327575120864555207617835257392806310283786415076127980079436114212860890053949966254464972222933839485601759934004874786742845121090203379247936127851525691363595147002925847163774428272939172295372916522146296866171412163810713407095096836492767730480678872249440002486419810746577106221442294993760043535740304334550876571202051898144613923520754811342126075979108848842241765682732855976582633268925129642035114752332550929461217801105437805920327687777271488487276561016907438688461147012840747455506236375662215264655805341497854740128059932480758881339253177955455393970723617134926167554350678105487496480674938424880877937682831630875438452542511663305165959676660176061546547384289192645727891489212730993324385615119967515559268149869845276688782399201110510220857589699085968889078533190126006458175973615245302044234467897682379477871373021435726166905802571376963673008600952410870850338086649042365059139597131322387813647610236495342620350686440599123459704819796555087779535412180286823805300585153654309620486538837625768050914410952783989111839539246626420693265642966918090093658769758188491629568918029973078897688789611416046121034133857495486695596611015915990071532782135799404146363012253778986695946828599229617092470602332799480966887605766006299532505334963401620985145019753563021972711223941130992309759908557512446560553675797673761955525875553159303247665434997267215330121130776604687580923012473252400892350234125763468913065971407018379941719334532990523196401052332039846438761241080601987525611675640161851222671156496936934480110268351900330369689413391620307968082655264364668758809000203834587560347991708035541547662128462850894939307896672433326290381538747037762899227135794932593844878447984327998535926523497004664855907154952057661274497892841599698157603309469305407902260842396742369464766767012442532391647604231328764408713887117498313000905210158660114836526355128077377760082102404921363803357412700552465589418687172270390995904115538814661418973956077468897905948275239669687574943252090372771750646092600802615048038583036294556932465383300203270199782342282859902921588942994223241655729558047646296676381370019071313765123589900160884359935505407695720225853383481061437597686906793090348046973986567776456997169242721647022620033447229801942860384564053046990251231137230476003244619984776656357049522769473796379644526247319420945589985543311518048232918111194962504707857154139408304212966141802885633900629413070732296804166014088048119916183664856211534690372848570316791587583880151052200301624799161695321874498766637002094044383125931360392114599022060177260607692291454661978565835328767825154050091138772806140650359043945992008169669724739576778420794479459527184335859535761673271588387887979079919185859709574556483025108296866543547257023992718855984983197573350574895119224686070617688747651060353696293048705075089339141987014100355610667374863831375589351525666011878086875191423087647717138404643903515560702988833991293553222488764689634727583919365128468889618926828103431616588865162728305267530675725100843536721313190740624363523739222920039915862394838550399759567119010818998833379345494390013708573654715059915549857823045707940050200641430980399139739382733158232221794167946955844618908242025043008637075182828243395612226744491066072043288423605852279198952787650881419038610533730290537765819638662303923695282641160494494001611452474475443640829512463389904138973754351805157331315123551774625708634849356363532785636919008832849939970647921365540283981483131597984248570024737341119054969092574878464656377924521860353505123093978846497242048779987820594653918221430089447110227718277283529964053808291914792170507834020806720869651987397415156860015966473704983227346089869062502928089892509474206895864252178122367911695900012649281570131174577501198099010896943050800526785032309364442132752436577340552741907130081784233352963833120756565179486938847158002993891180840185526932440994009594908102768262141139337294990956992831000948765058387183033952401477361329589353135404696591305283265051065651781171514498941949106462135740057968577479260743279321702616278936000921064847626317997046744831823355545644647108827535472012486266960506757182167098850127710266181829397070183076920132685223663003686069514680755787526755058325223228273873060829000826265648586628076733035528651373805374414836274482070460493635701859695564526771983986529883319571073760808837245726421189194677866024039155770351184923529914293040624443706896811861047998383130490433079802128823390586419042312379542468579507726624639416827715433995933231482026976446936099124889476059585868623381817610842896398605474555475224045117733544692047596163566250611912262260240753608978287100840989491056738390677315126652636864576694174453999069023877068284096969998379168866875238540799511564627837648003386196008780704984885557510048848653916118352758869341778126668901043071864367854985610720791618653403532925197747017555228518118059707977901474916558070792324755945109919151237307779689297739565631062302817263266603820442519951280783062579813721186300937393410804886157630878089640272458891700931482132833857767613568526652648594614147366253080755176299673745728746809526928006375441915821946691505176653049133835255157124175801093504781260744531018589402638611674728638428496496708969431830518832149486128732052366721548560231328186043638756488640520173368257254814303033932603281486468053314276213930883074859392843736189663327461260104237612834968880716737106423319228329482703860384175318350560489575193532515985794999245776689922786047696311068978796224238741235261527928488898031491458611710322806795918482279265882264181115912947575361132766470625933296179446277018350696306174792397542529228868321178350738527539173779370805169829923644590180958643230000554377830345748460437377296026536669981960597767767989392908413897909808952430362159952486238194322498563605894660913657470359876180395406997405132642325545382841087499132770476425869089969538205672130558604885499311197354550514385159271220567767583611421574410845334489142484538181518335610969079532126500500620503041359278261703651972386460590693301446941447793640731474269753795267384359233057335947604810687164407591075645831080680601396818753756478431378939562553212497019066349019016649820027542069614435934796594935185473640677975693232473189688175377227423398836342733576155317470271779031383837786116418153903540427754175110126520119857912308459572848321765381569229263747850934851181945649693771215625180340167574816731364940162194001684437126807078074722548166503908512773429700365210952441569216124110697963915330694269928082785245138056844714291066738360065527875761028020243860377490964183268165802647635522804361296429682092565100437196286413829940249444478645764054793295395440907863896936537103253983907644439013731318778285487003112708306708085150180830284452745645494812035331091452736509146652532684422975885575642164762993231417501231564805352827773246383148713254049489504083265223494783397530457850041284508403643727308604433324694500551955788606673734593432121851619732953297653521856443202282153375104378465086864509950455228841959359533282369215048076132523922696520914140833090296047710877334502476668103046741307710950001144270067385742547670746873398408834120649967248713077032677789273480548124201699172726539512449389215252221014753690046215102174911158931585973096254263759655230343004156502582920196948499299712399106077900972055295387542939374716838738312569452582120266929820951574997148247443274445514191445956378690212639146063741769194096230467732822259841941917456801032227453026729742840059133256465690144986019903133768354753261797611973049726567076983526063093027307009216057839253560978112857158191264903680490056127773126914568035936759027955188407168190416910862823996917564353170957447798369155717514098027519317838153899820096839535294263044154274777366405808730777519702849931928917369446966343551082747832468777793106014690419745485548135593520324611202801930179242246096571247099605661189255067055499947475823501070356026358416270331995362926250187544069965169673571663760629254420415978283661293515170688620064866412970181219943481953113294303844764572086026575850312318779757529273859711144523389894739089006834402101050860489629085243967552293259607536915129622763751703321563301635157214664130772709213388899721869910387448486907672787866107117755313237947537064726835396303017987338527025299217091966767984629250260562986763893491632873594421955303613305956037571291149790081908676911518594874478345495383402318795970701039584981621861061805046889606210351452386498892929076878682006245808129727893620551113340980306678141013149932465560878757971600949099416101667965342027416872417503753036369501878916351880866142026606329672791498312414854872121700932518853348417443012507794726572041939581409161589929078917299703306750682485040172366258864988328041243102241675826299717703384779714146759556246851336717271448998114639649921043454190956136497300652590604177703863054736194313990674935105109483423123020346867883175211832286809839302568377303257046952257774593235664722242278752001130756406851364465389815778986428066935346004094570815094716105711039054134254790814389672372198724825302748102124119108240303855372860866087004679822492180004087448074487178533053614253879573221870770089585942587064837095514684254216327356156055151067852966861778751364350919136254385445993910489344321390884199636048485730690079278760773775055968376366346800719541698594916013392298657960378468461956974279608484518564352590408055414912524769512849300372957043724629457550092071295197686127033741560562102436797243903500378232171180621834061246939724462254824242302602392264595441689479724433920988905493608715807553789430479109797736445858528498769680411160160474512605619880941867818182133669629935846680199300098444774310982394901763175131511567641452477111105477953523068425913805334103635470003285245300410957242443493191079559442742738083473636257542937265843740963188578250372635250654509881138795195451699566092422411812253405263493049409271878111555028673550776308225776870532949471906227006195681023275766791369856241284194929550089326046257779408243246808118138926756621042673933451400346251880627504868907244279541475067321437793146817163507235080952965737668495417778580818641257932944488489036084586740797212107673862304281788915152774418859913670340965505030741021705503765451586969035028653493670595092800535277880936829956492313923826285869583852250503988362139737441483276839305134114914271548555507697006223770314046957492508365227988728120032234079589265755375279727132177008219657736482788336701983340298478979229789200555965952304595412138828494735442815196664108448780519897929617603296816886672139804750575561013802040999734040224499270977038158383746606461684518843701694346485784727142845365118016547652213995571000435382026829923183903674767377632111057422093018478473525392394693647513573800264964729385587261718281612093528943663081488818918080905482744877609910109380690767976688429232264415639224242577136862094256640319448618399382731003002980977245274004866731437058549326281353483841941662046934112383142189406784516778177796142673633501190291711245480546060480948162741148135495960980644406014395174866786664951411927628707175326194766422608241917879083177695892802964359117498960135576318106447737470749438645385297100705984294711376327465408692500294305124755926254281053692604975585308457284417482777579859006623350099005899662075925194908424608764295390325035687858057026028652548690854232177117057746343934128449750296270923043933248412316305446316596228500207599210785111980917445637078604593682952282388456086641533286413964957452792178579361790084219473222297993494029096707596137531955680041229276670955764308012671787287842771286213862744942600875842869743427468293105903261094464111875622422787186538920764552278635988110896782518519341881530239629238572002768223324492527596268354849103160802568257737592084237517613599703769233633003226154456295807366987274076018515920922924960414379992317884668988937771275385027918768206678029781892977669917838802909144035055065114201797304069530116350045049010333214380662192376752363294927378825473299771939825177050723473472425379401379292724895106479942430044698963642320490981055255027248781421790315001063306259309108439578266456293932880792393700544815803903963478579300025544516256086762811369482389176014986325852839195795165737958813819599090839359350436315651342943991665930381269374572980250269805379308704154056349266671661242696619954959765670961387069910135560601346314646344232753434524076553740793794029581083348634314824261620960210248267422797732184813074703137623878881850134665584910600362053193956582881713298437419026013818764967022249170536973909191131254303105837523479880056005489469771918312879205031522661448631637645665881815598972218355454926609727441892015401800669143005042761944100591369672755642969039748338899625237792630214742184489532039914020129696624359740706722968385344452439287936804150834256369232365315241391593923095077452245298957972619237432847516295171844791715928846564489013127092905520848092889168007898871890419997025999712305118845009199103205344348274108266711814423459818029657318914110566237078156577876843623392132535133034072288120078356548992431312977350971964376674468037516096760087688292558319875395436103468439082623649648962848011441308694780693458173265877595217874986398466926865937880193498168027094038245379108529289387301775772346048562511098540207126841303024004528311764344754686685769820266811712229357781960143324292187779920840079275800075563767854066316772422049147124607282447845223329548146015950902805386135744889500181063350311461985122604910147861777611392767215949833263274525980118385368475604039228164118162393401894908323804974244991392150544282961097428264557536852356577082336912880141420290427923861866191390460283698538068153151150645160875278824158721581170991165426272031563118939130856020148092528785162215552179702179169664306972332354811670329291898802585854840576832786882621520936833761416279175576318957120574900702425458270115426048329983568809998265946734072347295171592795287936323238191738434305653622990796577032893594060261671884225729041416747097224904533102410992800412554506685385921248335383295229134838338527672730157964355366835605365875681447722578879482962553836925115013064536841011639332073357149960875808259388525444243995213001765682497498914636598076321181407714540757228488993879197156715070432997557607644858138915787869843190870856012144463149527148970849355947973028012755867627793823160046839459873799719333346631821641100498404685811139321204781903508587347574955543117525303188161289902744190913562815300769164846010148754369122826619765193452135383136545414391088128113208021032871932066883556081804431360972459549371233998580275768855391438570425872097109555926477168721554768134524420392026269870866831906350335570877318038986033871198494655342779850246469758733684564000712699707565765102101382049274444086033056087717659833805401024422774381878976179882636406842806380794124349801109420527482635532389015465474533980834608697456239953396840063252332361586844927783177594714398181653416425478540573331900925445838302746405162809441473600408510484021123692657184636781651732007468835137910107745517450008702834572302750068595416497736409234373532027794206932407424199726214166670897413128591922064206319018252869017050009715541180258187019093387062949779685433669948309298304034985996908025690032698083328140935108567979488972826708962524607099550383605219298896926012068021753338374901304698396725713705782864877191782032017603910092361107150970447151244044135704642990884882835670251502406285236472298038903763745847561646179498140028846320027183037411396843872819478250947629649189274994660009837452422133669605101539641114796738144969448524314958268338299256094192007947917904521612502009660316205698447456221040268834558371164010467531273455376688849418835913746814231086310177619642697001716903586106320459573767128012998331799195550016548608100620755822205185026905659502702306577936835979890927085791405992306657313682874531826761133244105912373541772749442222966264624813250804558654607090736573706758235033861448101854686106619183515053647516735356924919332846248545343424793252735860083243456525145188322066724279681762350088648786268974286974598393600718403519390022330420082621223478186358105397411131354586868301456464412105294370528029573708884543582099441517522562496762284837644667718689596719539972292737565633546218493751901449336227447722823725177750363616577866615003485551635362262711067987115656685559207968027604737743911287537188118549089829428110866178095808779573953174486192698650881087804608707708199641917846023227566224843253632635067215233547672454158060220419649295807707753408370709274663879856605000127161722049015516773067336970613136553718216920536973786852586924728129309104931095231395212516906759835060315743115493556947870641054564828392416110624859463205240075530031537634904733707450116314614489053358020284158408062883958836715828297346343062012975073630349764369470668062732080177925892305841270386985820278203819260747543312589580205777219997282983264290548787308786091183516078741617364672870292987270888502162493107049065374139664074625065476008429617159331225055890054447627539256183311968788627000201539056629052309892473486691659223542674277707392388989592796705105809622950278998345383769520295146804020450981668863085792054570831663354142707426215255480015732768983734694483228666358340533579779215281937343509998201417115395295667590761001341315146448553450155733864419154102071691968851027187964598992366195392155003151671371760224986391314607980862239310203545112210080217128694995877755765880870655746169079635056443741351917491297361245829418170146100212211521172868779004423733793190488275205320676645995856239075917309430473275833478154021660427743399653992029619490505615852835732322869689165524887664095568089779368878386435507344514423523137498014759354277581093192316362280891926878251823188482783401762961558461078703151287504061990268282147683446698238823536464720627601026848303479502477183594292857995646152637683817252940043477347866757218040679077434215048023190288030842656932011584419011057090818525976331008246983675148045334469836806684043645843828629430211324232196688557837088584737964542584957073614552714765785536806085678417488097685942698159250901531842782796011888732127586539598205428383329670157858617954481951278910925390885180909139872730817524058598842558795776723165301771914174599382283768502326982683587169586273631399050652535706558317712815366298092091560586525572046594108623714644177085597181711159678284858527520870559596219870772911284092638389269992687695973839016150532261970878475457834474461264007318689586434956538917010655226002478365891554986532899471506688997997079619885321172886318202948101432265851169269356498066629455883560706616895439378662347631127820564615031407822567058903692922484331125828548300794682466559164924169556854954956097376197290874813648395292854543835432963531479675482012533232347263877442622837314241640271517871434634700686719516692026405934746769511627553473771264546654106405642633436775650631081457723698037427366698417116413109959710075412130942427509047448954157081715743745888604853100020665704438530528950265898948433176267568479429596013468227852045454199861608007433255060112544344540722366990141534658405345874961148454558673275781421675544828065778612732191518839010702331150580656256325808371135921468713142721409017384613840108013051921903921275036741440869733178817216295549881837113626813868666380038999886180844491038696967883610201987549189582457185290532043812161948152741970791822340067217246887240459244520457821731925746584538693972624746255163384846421465600375998257688228866974784000362351473170896184318746381219826826818670434745205596374972654754612341377538905313228744869077521556451843729426497750616305355252016031726972810758336803006565327725302555612495734787555933068769553145470462052072804658244650013368571010752439209953421923737728866337048665989640774658649051794458485642309031794058947061930818392605428375009563627544905461403224462337130920616894770670018334245410891841397261924598142416800813544279815550154178601238554888655428238984385996139320865451063800154702185704149342024389520587721900080910109452709837701858151469867325652019127924142538297729268026494062623662106443234173883616827648585206884716188268630409533880832512114840963876419443353242684406631130969348775731064090041244610519011602571901681944558081678561211244336967254145615150178391503743964586525348954370470817719221636204912981773355325340741152672695788981779487124534768976955309606280905665268422031161348191672442071018571052097506619539159753994862851997153726356372971719039862273916693709305636828398994900398646700787029274582009810980946384271346964045838356663481177118363939781153958440359896155114213020613216124387376143355671254815865912895827677779186926086510780479094563719136371055740561556558134592603071330730068018643739648609647259382037615209588982028310520228504916671537952412178650888431138555492457389880955104357323470008073564362780282792951534652254850174900234507424229495616558543414169446714626908957402626722059496426270829875382239662375975624070312768625040575502735694146890778221521151149696149084309994243983647980791218794956320453882606803949354048042369081675976799489859646393547489321025734411894788192566639471007559494982518770533136296927915534876212626780763462128574132260514042204949051816802477046678121994399821533296161588711655077271993805591182443091456223905577666673625783310607050406887609811698932367584170937347701789383741256963119249490238762831881458993054146531930935345127117353817945115026812558939518005576674523300544210859580501218898526862616575506356240773178979075416115027655637283836183838588758079709296131534551020893449873117903452991272981577043856205965585230196385005602147385318256627452115796349074368531754492382710724529022585768575170157758024872673514314157603172433192049734434897570254239771196274091781617003201214330766647969323910879894781079048806591320116035954202394816216179176319389146702134839670551878469841167629513433185253347343217566285987150926156936442747711125838646875085245980905579763738509419122226561466398176330109627753244683744078917175032997098032127915650834014386159463450340982433222118788067867242865915424378108590532637906491860971029790358164623579464966174589060652460809787379062237724949181961146164306330582979334207880344256449320053054646098127518712037385178310498422941906983771325579923846863113512694313421188332282618947381970611725337766476147632647683776707620429058512063136946392037206535633897230895908041102903858913736541558736435273470592252340052559971026539472953943873259830053561195496483298541425398872748864205109126429433474884373322320739595256910859791023598246986418597365874504706225646724643456332295325049001035173156327553524128872474271485127538933315916002038880537546864878243366427495768287502849559312956585265532232807412366651252141018179043130471409439423384392435093976028369106387217710220199805498576648904772850811878953680966543265384404316074936002239748700063829352775911534474085940510176233106392868449457812743696465598261342450810037496760300718750116806988948969260107984640132507279936980560099635010375153993976786120425635137968718507155615393544174722156145446705997588499781975990750975092888224781452602052090912630751765331827663456419335123171466194510987946864518911560353329620940917455516684901042191884440104948472541740524586574584941347400066018183986269206867232055658857128969482191056764545723970094093208368473944605173667727831246606335093447801695361213447251552801336062708500397456806409907640775266180144724122302003108696042770481436650713145015990412570217158447840294424341035711676742590653075871000384824685574639101609151592986647030135049390138700720308774689220314265302604092095305615242595837394580415479696755959015600823032313637644483108505302774883322536649482456092195890086085232732733196455825087994518774059235711557400617850560218872177061703150329065647811816206181639732318204747925749207372374373430139130117086979799761301357498059552179624706468168406801926627393204861342033761398420957132454911889283501811143665593135719343505958891095036240601653591322623246400622762166408666079203503066395522221638237197411489516525206465595544666929645937655865793711151599934294613814122666071777007510787976543799224734999912057404623334188427093121890987282315283151828394647421135928277920245695928647252460968262251726154272492010120315848871975216535071316078008257159136840724284954760287254744067451621298291237736912769004637510425983498098336528370793378179955430438351532624721440509381524773896838386654366482082451285742202639870471508045020259978410067680291296509322907439227293426902649282845591279646503008244157727413048901363101596671381535727270104326022615455608297864892610186687579403810623551185882308670252460708680268238382762535800761687342017373913068881814163881297118854523283526641419656445474732383041955147727871713021858809152918277093152980918292395579364527103764559960454234681760126529181654367879553527039152865848685782554650642120330156053149303270535794036604224663209464712420355990318740285211283681953312543923915035291895134942212396959486589131308705867341464782809373744686467165512468477622122997432780868643209923380848033306643319732176972903234744191955930424526675664389137451614019529031225574178635361684161681689847049151818994831382577961719107553114578638910255266208326342031087656906982890749656824865326919877145146828615719691493430049520779772233019769222945546238139244963158138503307283808541339670721974675565566510131310281425243394135813054812013367960087392688938849024320288696792275192501850146358818023398195533552266241409175088330948580427988184875472962911607842425851155397611689543284011656141348833726696489298467385108674247242545051930491121820581811622531250893837803790042236415579445718746825934293731883806928165444837489968187566752326368408648006393811646238296183034231594694412543955583583121550827609931196704694215993784504700648952208478651038238061635587321508766504235221439618678160603500942311286308137318716682860986761548522825946126844775920840707600009468200926307874254426314372435816227283216402590798164988083695032294054499907623110856962985191897573725165939480972510193351504246765261193717366680336785601713796387700358316186381683735532034635965795960672147357099588783905905423326714077767010697825166546552269797363298084113121894653425199310249805292871569728876338603890845851536990407962942875277318729409769855042037340131890788569767424336826784645601325777012903080366516110195794799064571638993771263377814767063536044305560309023901473167213535933609405386856371475278188036719213352243924231390172605934333920187885560108441727538718905040631182065351254338658363262107911084825414028809534391188492587186397718022230671681407562187183540739574145183768145816114811994378460156709956973897374816770206180439157261182424009407797956299412448683509564036274294230831216808426653630627611609126338847882726313739142806424537790856359147869167785442003260644836168134059375890760365593747025059381883195536725965927221589745667804758163384619853658337878191316611470390072996419290756834688533872261129811796139022615707765503269462088075096493252682960489268197723404622682718674657466316213941314565874439688102644617422309592643875524441198081087759239332287907879242682291224632604645661979953023881616366942840134022864196243692041619633562739547678062137784235235808503542104723486317312726483740090826099960396185427886189486691164365372371677188909843231324455110058335282520613404715424256451521518050122432870873441869582537727150821202533151872131326990629831504272602553850332240488255133420920095982416653202196819731069795642401266418137266288379046858371415245285614664845352451402236465253686957648045511016797925530180353650972959158688120645663819041650141017012491439393682042100197430984285897797358528484693307331474247796731560190245068560281416915980858895512337845598186985432190603387531853457359243534055424070690697650126063257422177599392092256033615739643239113111708042436616509485205094082407281870958276860870123877320516307665670578951906904294637651331453944340430156058014975364745233336858810523961466407599770275201210622736576880758293205743454591119126876392827670662763286289457262489103894270541249843375151609575203534722233174343811433469421811165133504418132346361625872732849566161387067086309554445690187580884729825238830176004803226781262566387527493672769297264657609688492712321605089006286199320083794316815068309025516340665725318959753038553791682368455009465655572995933268038577044277892647933244686438895324069383938115152525026668517318760046390517638272305043800464898052542519222833489557453389449722510648927091138493237860589394396436832897325610082532495295897081761731047735751783789820766180094761440543363839004190925938693187105418858627018618913980192662906749658456874775365199447842800338073135664403379996871616174047883625071560251727321346533977612132682888042287113234386638459357872316275138237650074755006444858862077519519510278067124226997899126227830299568563399712621166477582285569726705382131196189377712383886404889107469194094492179987678009398313828225609577879017602233430966521891201936138224522776793140235980559983229404799434873919065876593634034726079197968079120207655793085308226303931147051271256936720403332148191112368048379120799266727052419837948568694468144728711549164060371438589861677636626555146495846204105812865394456242990909173543868809603557241247084844603192864938454764052401778356121216416380305262268115590164063715548970631597014581395959587159842536271744869371116490167286968095107087480377995378949126966829755795446179595759282734594704512501356159552365559802233870838477362087261690987754909014893742375516853641891691490782465205631777041664821291147016463713686556721669975422462033824375026568628480918369032148205774703102924863903300143420540582690373380165264889701866728388564880574582585579833666570525422274773936965231036770709135174472915850679564019168850334501598656800730280564387220655099671127392132986906789288065080549337585603124619693006102420258962702607167868020334472554499960090618865169843893894759599424652706814551484565772368672010034583848868249014773099373909778264713456392496291336035123452006450373646729172098626335070310807918926519767061938943212987351205523044833254499036612138432593409712001272595832714467899587121484850552747959385236517175997328579214754738992921337725136656584149579997073002941645324575465644048255897561244117674608968342453274344056267503002101421677759012529137427759043177620409281194848851195990392652719315296799506957133394655903229770043964728775529158300145216214523305600289994147959305447928446543727200018128018259259628927387601634026500652227936412268413586678977006852423821964274198002213937068544855488328952619115051743138547824050307594530037127622622873836682144896766877668598072950583886161091937981375982213216373152188435464888413460137943612070824332024583380541038978619975542952318114339714125471213083367447705441971063922150522273748898009676812314093949089389032932865129792164755496447400531490018371838689026997433506215177056838175362593799616743021019942360253380392917159655933525113161606906248210025554185417117937043085318237883467593695824328755474012894595911753272185680385348891596339140155852063148162704802018860949005191392817238810069708247083300488703400919160862857062861605796803770873157793634579918706128136049297325987757812252342092459853192201101735273317186154016159839654344570274663003025923647562915324106831169382325159421516958750453670663479656007203900905618679652620243395670890739792912839801863962204493255538090659904973395296134080537021206733087430157874791948344101005826401581816030451852603144658870489256930469645331249093193326306618537012243996988343371933303860139935654742564769982897837067932526817301720084219862940926262616437925901820271317124035863607175340850367084515544397414448465897443075227376458435126525740973563365357212665029231640190316086205667589439607250113620964316209522005276874174804564050193291408883030613262618644851489497220635990093423963290132764736719805019015267948512905638768507054249278773187569464890735433330260851588901936281644585535155377215148693956717729029331690812199829941129358341490038031094679528001745884636818939902541455370515906613255350560541007498255083946186147239241125323904700276172692587109914231500889100201408451431533516621666254742443446319152869407123869618543378957877120688022146435638551632820280960691805891888411255030267681063230121329105181365844741917503671823939282289868156894238390508370561985153683378232155612724970622245696803140988320051528043151595028959766737640224504219578840585683661187469443405967605196182942496557202892197269463564841761466856932206582025010741010575032683463108351906465991345694915352831475065845596966315980012442231320389650253712746658449894832180058334959151968922399387883559821688783946325798125832434882652213096430328763616510220703588325627059572112432022770525194333130010019488998965719072910607065049478403530681437579893903546247564727944890552390475014981005870386267947274395904087236844651402036882864118537135802003974098317838656561376272736942474884313017676389018188354722955855473046922655406970770005985439670227437556388165154981285321544756300468350625609270358211868629152634622675075227104106738283730843638822651001876229607646793834927225893269942630048588559954859062306133682108526197514881330038521703956957803426610239373774345044732068133694190952054794927721911604301756725656693816967195164397235690586622470791059283180560697785839793954665884281325395497956512447158499731943337048483836995970082727398580877531282087407692996159242476423451523573607940078123728324470563373795640278912038535363036730379694957310444471060754318386572340280667304063070597595723910583089012039062198247574799727986323956746548569771735462124275727911565922089315280076922844869212367143258050845231458896403839985136681042929080159068802478621080942278612514930800743096394056854581374316330840324639962848523020756850429734825259107649230392375213346448739723466816769379246930972647858470318895495085860929271918512806947393700613937630516160938855747998615371866448194707763634186115015649045332230607416303766195172694384087137599085537482080722435011722754592096134436116294916238305364053112536214224367337409363023618604929606751841202149643469756716300536175186198877113911692389716915159375607358706180201372148022937745302894843307429828361213668847865311653421497920078844102867612058999587170766881637163743695639221174225350127911395146479911912519925066779674134900487537305507679690384536126126353805291296739736481168570845727357324268158077574499509951329938062460168630431654226173776944470336957915487337279343114663357017599518841930198925343416753206612767587826175219286075407443833324923864546310475275494133474690560646842994643270902889984843696174201373049652193180672542328934550415622600659416161171820796001478282361335029293523386336335168059639353356465254674544530505051855344171300147630984481647259052378446686769039987635003004705353686988126025669186907046441046584094052783652711984729985406936667993193965906239523704049657037285852561608753074790901521170879792804742596887525812691735745350950116149883278982177411968719060657580773846921543720340331449958810601358292933551770277330577137837233911608074659945192284390534994647554881857320366966514682055148554491581279849864198767686792281148066752320702283949915179099013956854263051500478665626109695571013602243848457629636127959199098570520264528318316530562114071725139884534918184876393765412178669024575554333874295904906343585901599426672943652149756315909023906448903471189881688995035576191224822402966322170838219785757216878081622737249192255051342926050340196232078540538418132340743838634106803933933349233832606998289410790950496583862181663924001894157027748113059088762116642456290126191964653439302683220088937207893979484480162134957595645784091209548649368369539663308719455232711536670436000955451611807230013276398562223617273990919955823052658785250726129209556550459496582362913563980208541982425668786693334666515936278418743575648462876333799084700306852094197840130078712754861609473626198558030897764998725311349733284437631785161871833083923320119001812084358235995412432388759827518282601042147758321010765464373829035531959391550850896067131376066224958139412258880419858708373733163912485410270235652373089459669303179780621769322392643875748871955916082496485981291619315348458292583231379951060625654466749277456908486680228843353124290512789895538926845328400947392411701098729489234120699587495857642897919968319843694877757666357595850360771532541451591572547920209960520268596015123418258852041724139646002615667884344194884941270952387055389446623819065479322633495749310763490777610770398309853846533915632905385804331016369328022311368626954535609851329067208191157886340054785304805633079753233673014629968686959818296186333394670890618879510310027239128686509445366624700100195991395927717732674427506229195659486716556244710921577859988006874719731949915492159903184001568065507185218924102598462421107639554409157103515039423800627547670226606723194231152770768135551090691159981134342152622152778353483131795104378661347433623028188425458237987021665630074455698531550675992947046311304035447631903268814686458511017054732378566438207102611349605088837752161747324215743286864154696007668679851739917919416941772203332632251546760577050639564917496831954439544976033177246587378133925462399990732613188561856852032006106728972219746550035811613921112366469571444680187209130347681767790869877033847347929322440508651658431405479218406157149403213343936441024369951357909292074753124247216850269261594579910666438049538251181180596880254428619291046551099128216652923384702841890928274167571698484290897407433538482594415627381643254525646444422860312972532789020986262491070329075280922637822010137780767312563404768760519981881678915683843838650666876503654421628509485520786227561751471255572090749821201513826232554675449166426299781211501116984682573676021743209825005141646743628802431508223941539840303285088678785140767148165456078250756788451914352641206510738384240734881022961384029411497939289515580541692203344632020082120370944656439872447557180333033671609159743457962426498668794908891567969303706617421715966070556493469480686133441051126738355488224420928602116747994604474762708896355479936112363501225310435022769381139131200228389238578623086996814833084627888130362562831729731657521195851792883481090265962064605079628037085989426116867823339099581777224532085997643662239662763448559686600946018006336502966708209630819538286510546213882262270071112260255840933378864980424624300734246843546417792950708330777184311882863634003333179236656554084182324723085266913601665114877021737489328185877586822723455704887565043159606339863913649434137281100896439874119348377682746285703317681351452775550150622908548635245276989513711092344918514623389373826476093297687651669819216252278452563205502590489545025074681520887239646581717776628050822730167203402843005203415618192719752964236630048436133698103085053924302154434658414117887980457385920848609207449344035512596673767313157341651942102412630588110028523770803900981480632387746703939570555273149359048490784278707866630324363780500501931517190622856171661644701907439011956711995925373051092348228091863650888853966523230759202728855915676612759491806720927063728624613602990075735025555193055867464792783101592735110900091494661463064833854633510335702463092662885667791059715230316287771124225070047412749054680426382272731690498079782155599999961541558846046845120657408165205852782479230039610968782285340680982446188753558225080096234754149208837642952637431499448612188511958486443554197796822120146109185315378692112212532130479026143916249590678775930202178542711034346421873746863848158113087862309634279471935168054235139367532799864830272914448275363233187371974487277957036475212659031490722510993770852102643717489645321388553847059177803779597791816495950491543406397557319745491720317758847256839730972841324509363592931544359343720306081349801765766607894948585416614627626961476274778519971421492616344426807519617781307044510594352011733847386476467703199273530789235730474471900493264536760203046099501829628949536807058005470673778430366767057680506713832448144749343660796574536760219000955570120047702661268629442855719304818967085533902537290705727613150101287257946735099049622654814315534700944808831934659825639039278762928479452333549380759231954851732174039081257944865096625288106706504028618566271559410499049077239907707752604867988063578104138252538030445856081377180774304003335543036485523762374204100348238964782873973416068912911354765363220297933200793560007026473639774046680351792941469405893255554756648583861625762018128210177884468729497259873275243515348081781173452651818487114057653449054080059103454184789504134492635199831200370136887875230020271993022966205781899860708387260953001396267023614962650924386474441152971435775488516767811853851053098095733874988286384743311081022333084084609367158379289232523845117927026680711083535097121396874360501983736857817234247689979793447284103012558876252894862920972687631251470752840416921462111536365370585822996483111454066474794617395506000085316271269367935685757347053807990135587444846085547114169984464650106650403471983286492128580797547255174473671230619013606120220372708022803561300654394142639005226343436710895387884891352869318419603304971881131267120079220436001547917699398503069467072944513678155578837975230305748296820284236768151895456434845681491755998116646989655359245292025567968264475204294763737171916091257973396936758154120557554454978609163927464518169343634586198551699556391441792556896700383762146332106546985171412306606825140429241365436350529887070888946627605481555639576370877058716432025363207767593523203389266022168338576327766415077445531031097024317521870035286567259329466808051659040819427147970425261508078531480383421514653409183155786478965774037158256789923302984640113924042056619726404202073749447760664089056552957461982128454889945696545347896640179127633370882997461367198655906359445455948145670972231532277439969803201211857317619587755381455462736070762051143025271426276332140353677855214773975572827364199045258622879175422044799109990110721677992779837743959400428663068497641015768368750743924897557008451068948773048232884855679536128479484438263627243836314411946161002837027465358591205824954535661425729663110744492939532568947404728338778762206721834178682866973470772899987886644482069265777290943433740779836267803046233261503443754483677872164521999059920691131643794275269427573017013119317860062505739078373526808274464430317801960357772970631321058292385565725543975685043107226202517575393238018565921048228231010526156497698241067526543519921350159976340561716576688116414591950229669614794731717540399741711990080593654687412464587272482350566058990072383945789360004081072297597126531418707120283618652804772495173439090377293947230433320566429532121578352298587494959300555594724655743029775611113818395753946031092308118522884068976390949053211773646470770975776502205762274558082355605818384956893467147069545282209136167683915572228370106154438069870296174679735706372920046880240419451938098949960053798425923629811155804886081548465188427756013442121218789727926130028899606598963803953842291340097002429725521549071160019406955288286149961520339003409575742049467438234850418254167127132197678724707032253242241483368166370512378346344164582895404084739005779397834708447531577957183444743513480381014205916896005369655302722026250652900878336238351688459724911022666201714037275303177314937368908908181347562925829036479066591719514968279503834377507101497026264576170184978442433377280658018505146201069963433280255557715066521135185604465302281240890180180055028413297219455437326356955467835762697749831932731154655638167148289162786069480740949756071551604573169190338830943985882809798386188119489103054329503073479361957773925817578623351974571547564571773692257587467398948271658434719384101607351544909524740911069095465200737202328716741812161644558169524233592872583513282657106340450622306437408432891215726158543632383635805825366073435407306349827028910400315972000390354922210082095378770541125764338766363815784931997240507502239285599599723795765828393195744098447568304709186631129418260804162735061147636888314400700379615550164281390469474930538901899685357648097591473418645367028601012543002816304725911849532241703848708158654884814590758746136238734737989355911377167077642466051486670453694557434212340023916276935492694115858312889206673173414157283214520781459633135898051925598870847377533921117333249444402447775754438634285206988371875011631159314456574304980888883050657630196799937093837725890280423000391274739346474311925530908186524139666314332828447311872283702465348333787124487255499037749482136847534152813806941356240787755627188307821117862457342884286475793975451346278953804154024073782344337617585531667923057285953646873593768319856733645522293229164653791275559366136656048060682628027770005740966261354907069340368720038021825877539981807730169470072604559316728343294883988765066958374645640587548241190826017801667850185880723027019091810980570516792775085630225029716599393575429985947621180923584485191459194081314265106625861411793771037742325950234566840250218942452121742790209416282820562506478980798310923258640126139071010223862203547959963135360476545980956523911676776699566523490482373388361749283567128388895148460705184806148246699447067177721608983354647574213994670288128210656761495482085266086780648461311148548925119054968527721794146477322867352645172928244979097881442515431026929837072652976544094986372065039854200821699543504236407439799256157970772216278499808793298274417043690121780174936862586230136704287055154228829452758027719217474581200107705827668382702689732963201252242723382349247026932453697000387542704234457166841823329891865032109044885335761923288011957762709007233621905572168096712653716122058557977467700545073515934397531480622093509109754864267652015890006720971573849513090194941979689931059799581821531950101737657194755139126580581384271949883955769672029598790691750508294196113095920866491287500281490214425679829106788431992580894269737685882708858226756758967534532164576980594413194693096612171800292858204053827100488403561644904512122587236977124206557908034246143888007128793924954249464324230888720964650554516145816431764250779904862886605622703921199352021391902761616990631468570551953196395371962633385905374266607708488271685984037766306503279255052228466180037685376102366650222524460117558620869394146867426317131205342517903949858402029170080326801955849382054008437123016015767819624113073153105868473924466503006578598186161831915196124242133092878387936203287360390064597424915715461675716128370497537887645122415020008143120415255485979046158411812444168758189316946160038194906699298975608361087044536580527077916984905173609599369282976969164857720468926697051550177586408526321435566685050644385956111142896956961388882356857958851626974736730487905387281245431062518370479260117193695597849661224557790315489146085216207561391297649810169812596868919981261033789279118393803585085775655436530417496537702731968625031233665149527676727066308942301700272104551633648725633156220923204794220121054657299425975901482869234493154637587263648637681106117650359626268059215094167219233708892116261066361510985332175381149368447753510723367049339960115089049950573356667170518349694295628623573561036563328813834055777707138485951213455738342301056010735383959683771102674905286361031168861783679962734578012056104236441668752453928219239267344433370754608130492215881336746578446676905413619390188533091272968598754842795315017501287073211409825956475159908785874009505063042446516075638871993768281797753371593143136094325003140652412650875198236739535086452479801072791330351276946970184742602451545406265990093093099491014813894749252167401678304293963662155413997566616846398583919625334609332758318901479324207807438635765764782395600543766300941959338778741390402484999199412487464866819084138289855647981636167755600660468175359500178729953269910622490346373964958158085925517990674745952754110540531292217744754559121689780650851469621891131182005544239738168636450281125924384012632244007670190189035602931803363213775233623191139224773486495243893286522239076799319369211682529935835355875327366080658819824349999939077176199383281751196200725566817331724134777523571927777814458125483346820542291617981314660193275190133855302536622855666291516565333804916426647121205137696161089652546394593648258260926079048442511020269787389490273349097344683873546147309266229384338054448265858321312109830798315748651384723312640007769981125532008277955711071870894572909084482118849792234964075634113630261873838613436131835385670657141204505520998028659044941954582822063084016116309954112197084155702884621652132231658880080307247964489474439150702970967932840434743081115795558504718382993618539253722836593919226181964567803375384050217779437303890907628044265625186052599280159786839311575806810931573787281608959233357736079472217030732768652260320817562909789019350304697886396153923426469625010341649554390263410369575643954495477884218266964902562875692990865515287297486596232494995453636736636872199917297535211545690317158557100288580613840983039592888672436757583638276733264022473538532388115331393744635037932410663190181503555333453130553668490854053826324036984179090581147126899994373204671647823059108058987435984185531880591572829719348002918394208309340614619890648123461541785920526215398089670377143236085400134587729926464044851318402372847133745147457162324995984814485223066131086412590672727278028615899172108392987023926205391098222084021351142116983567145722355952220661920448418949764895114550563383692002626096688014308989253987647004332867021261394757759082899601763811348215178248524623093646780039075420125142435656016803106345607008948561297436320053111517852465051972719683541249523751844554076947021878874585130185391116708854014331902058259300222645241388198140535088507322814360906789232116560306901984018653330283141074700111032863720399221444285062720172645021164639248633396515505797662659312035795898990902034527487936328044280204948845282396882486374159365116760003076838917887311505593462148799875757373230664311342470116342577200973908015816149423397845317666949754039569491282239148570885385800519391180619372628870514951536514900815123749345982781225533738887000076516178171686505850151567374544176387300852511701186889995057178691724786398108874096747674463277546347474047833078482081065605286266694338658207490253109194486126328667831228183004781382186529353358878708431110137089854460404695618545011149830684286738261905376235059025924818282345053837319323608137340845210791172417085132464078225215821889862977353574049210528390222164218149481684198141776775203937549564365586069901106576841340151554626950792497685134954365065502932169206811746567993300015187750911460009990642056723909732650920169495987664599974066388401033632250267348317865846881514306762372593279440899800516320633412307430652642711757300704875098380218438882936965399682449317886551594420529843282864557893488006299513711120845955048155693746914228868977080969701683942218238194142935275165286989707342234020444095567020378307060595235250796731137115265571713910035811535259203789520462290985505917498607909315946276305011382931616448555346034146092047161613380280616370395853371360594146994381935403049619859097300152296703301143736636183282352584071733844795057773586032127535858409447365228822767343962090962915015287386522818635909693813746113126612286071241866124711149530110154764938481488356612983826467217599796243011692045352442609622796322643690107558023258063620908718381173086354460605217299323569858991321249987231466828773758251603704270985501934385473181859942248331299521234871304418891457587893461522725780064265546460823379946626462433671202341988101883945842715935150258357971409882773364431777623066787632590907770685515781381174047033841437939225012413591119402650219423193289779968446882083403401139306820303312209618513945704915162822040767620806069856867747801599302747767156561134338621771094102386555196203233322149125356455542494784756625003990865153175166606250202174938341582150464161525973940190079133478613475599549898188341723817778527374427567430279264953249559092934578118939994882408021826916649985280344389598013326833078003784183251582153199846445144543062230850896494947576682384881948466972213115929127146680044287559019934628461569284828133730074490640607499265137202078002607601188921954720334316090926447442473097797306151639242566387072432747473827296526692048920145435403312126839834312215598347054292526444294572022410857052582123662343244029314680723112511992124674319077946423182648750510778078847929037132940718571461978461408860538651859827626928252690751969751766572318783282555581700355119844291926709684064216038056772186625702409808983087704953958880137062600892732920259721526895734584513563892220755792639497955577323299239109677415537442188294425544156949458978997062174092481872942531293213721320752645808425805289757714757868751701098825081202470486103199449558395011269037967628057766566293488303928127803624603446727552481819576799021592489690988825788015840564155130456840605560852678189587766956974585076280412041353896442874518228342232549556482973656173411269288370178583571432531933623253914192673055662913522517975147237502120504067530955512491523476984746542529952639244820267384719217505888289221382974244944187365753466990800138119508658457432710230468666893826383080449781842291520902321368888611358491124782339700229707493203862325450294931430876150951563586708648688719981370521776045594125003155554782301599906291745757750916719387629170041194117530430184177862340873111519624257955690169217519018224013589363356774111494251853948908688164444638287549244808357186059236675389097643993104856869034584255822163209041230085438372238801244232253233502238826440496304918809081598305011268036465412772109823393763557008910195956401432580804757378205450497399917782658480120798570023006220884857946461036009222766704704795089410810772580136099806268962304095129041182281733211087582831715492678122052082632441262393497803496085164557201948436265956108073196974590096969951318004724010959527960018554702587969736432232814283992773354201799484097764387788791659881743998725953959917796980755340257432980358205087942282908411687826697062505113804934273892101462204602717007838476923677218566700043503705461706405039510411144758931429753485342710520993295274897151365296777102270568291315741691642354004976199303106628730141929202384975409401364914407959557708255466201138074134103649352152225379714771173573206313394406172248043376533457356693745837826922672645208936970295163085272547519155255091637134250513890782640126206028616537430279267512548439858226023170540150001042051978528446873454834663336712908358740674335442563636601652004277726307699261491033488071590856569528065769730933201030339283676547185515522520826395482294946776534233210144112879186432034973559989892160570944809178030994722384140302369448918081988037184345470031833584102737222266091355744409117669458507414132334462566293465916933646085220738424850147834152027653634042668941140884921655629254885373715465375011645035806197777337267733495084448904234921227442786280677839413900840274313620610633723869710971297380270669215081190614526164153223091845638749298171210512292268535943814926110503113451755351138669760697455664997263090012182048979348345849012184530073876453347456875485214485449390142431480804802271360105194644570303097620906498966315260896459214350129494288115388309004253421617809969991483697299098928784321714676384441820299409273135479162998762335453200127655551397369830858570946530501867544429928509377496065365770077747086688882794298620859865265197457435312587913238346213982374822484404724110357119990763855894185352877285796420702161518565645055014577890866537549916527051104304059449439990436651924630132362110032135586837926518441288350641670700661580556549652558749384844785791035864298969646600711700868356697489015863679964289107165560595515363025459559978489639430235544507362043362032255596089511714486584237878805190462585119369423230457054968022730401690531721949412371052004157571737562560402076905578663996691216656949916218339275352325252421262472657145130991899734634552455201580282962048636576777954756817633645738326538700017042800284782679530791393932991889383412194625955666344199690505160930682649115004120674849674027471970081072523134553580077145662881857093175449221537021276155599918601411409611367136666212932758451372856828161288275316693833538823010809300565618946611354341502999746921360474908225203111989263299249073531026924761571250941661022988118682783199779314570111862616422612421856086688453615050906861035144171559120426370153053040940281205931256751885782801015725295798353020786457893399394161867447194301260585735519172987822447679857123225436353268880376182234596334795156368404268808741426157457727667573119127383783413716251142609703348268543351683541038677227487423495581455409131054733004261668919162397315318776820116937936836634145450554636188888126683359113542242429880526231327059134579946427132821081075093863543522621526352024450388978152503154783589443957075471259762830095843352220862129324273947299934873643764953895684694764002962956022565850367551110296248609540253242820570165600316509213624912996117444782560564879383017112235828262365188566361331977367197074063030084751351116545542809030475724099426582003211785278279659598500419321758920884117328234807243806125590858243985852719626941196212960443876786547162755758894113181076616818808767892596107370458828013499661318429567549693797520488943390034065984265288373456564923756036895645803502921050753199374316929182692108144415622369069618269133546895513672851996082974063772737603997582587816120419265433048866784368067981914520575543205436091495150250693741788693188241233496627250277388998220146504625776586950251780266445830520891231984346192276458434179906295395688393171491497146710090804088944827200542882797890639668947886982505957781466652419478599104849311188062246926447368774755550925709650369682254975552017495967634450551814031621669911566471487683197704140178219137022432856541281231893630115470070779976675887640173993343616206656545691287786966435897923624066877155777738381395089905321640989243039345051646023977384098660132242652170222786984167299087891797284073017286243274451068554562072547814834723326577167860214999867763691455282540539823818668590752709043552017256616770360290429640015702184353999494741041273039188033694449348040656102468713456209016805133368173427798821547816164278287723493717126505851971365768791245109839311498743406916665822947120042734669926628634444408525968906314394875335202856178950858229685362711623336181602000884502171334606650526676539816282939254791268750002123987443608202122265275828182761735901898986852223214190386475086364020225401566742136081521989763952953144635656439788049640970708504412373747036145728275847987349280742168980854289510347766399428725879657499195470506692540672437686102227247866696746172078873435324547361726617140376552931182269384312409424037412971107183930275136739002997775593252023441421935291970618048724432418822259908589531314448324741287198601454110389854622540571886665875882317937762179604553241612069856654218712381846132768653318722651451402371949444002886644355319201908804922389812622958537590188213839376220076446190560867054461305093027941450635314012674993408444906842189006959006449639507634034862939610432946714948545905697154167234019922280946276429423764721305676411185165834854899402627005421633684943778243250526655373157140174556464705624455551258122700122063419317434253143920884839573231905444976851794733166036708618925571254238721455778149035794760192516359792976131870435546044817981727712172193808525935041107852301169813693420023997895322162749606249111137972221020500291620930102244966423291465830329026117093513501952692150755740248579822477336789172351391345362906066884385787567312392350035264826193395757673945038975014605789335167053303602221483191269979907445381191381302090737691010076456360657100451571156791288116206767601189829425306314924461170376449922005669785365648802298344775698026623982325034464141159388717189469795410921494405628811388206211675317840706550561129993189073572987802267939617669168421885381505252349782051961469289403794596416075343595420752145442363553726063260437188144253139430940915505632558976270087631752779498065805019453918558513320460279018448077211568737274494831895807244397406806801708057611571906634278560302201414474366833758065843472164346690461997575200890551522807751479913605374566313688641284677071694221571737483063034561028023298028897742671693417438638693944573619028504283400052675567896360359048532813651814591026402697420613278059475389994872967398772558480822844227915999324974112158927522378808078285406414229399480150353432128219315286159797628450439365231857848004526012840656179676325742361965673580588593783756288502090987780150227483262141745944983996350863829007986993215034548046426475444868813778574916758542624280098872339956684597160240521980229958724087389459641000998155603107441136596943208197605477868001555059573943460586049175920688740226876229443959746792163474773282116509360086375843041235927243516213748567688500400300345896377183857060419027974341953799651061702317009083646705667391597551836641186049695773328582041076390285379308212771579821155758476665436471786676168893434895197345997719930388391206952381348419928509765455502501254289800754803888168092952058160813664391270050606396656448146707553111536920138023822865344662410232291769736311711753574484822385582568300288681737550266940249511380974512640921605746352341924977502709719014998922900976592211312524455858825756394980381652256847342728917183709819585561034276679132810406207653783625794729119395592328440500671431319659134798012949256227192319458943039806301655719334612047099195281172847408261940127249389370800284828957335047035675478854644354349897844761943288295537807529645502934645375952126695064040406886776087006384739064206667355136497537472098291040258272383497835497432629335368581752088516079022903505520814570325221329997272012447162445325770922919505598198498536972711974949422665585801213814661193136798620102032864224817464677407512109714078976094023778822548739755193085873956607372229628564510431604871530432495968638605959115583881948547039002606016485713022829455515189942175061737314856156207890118702908910276392379093382854686146305732225958980544820174537879077442171890625436260650079095561406123978837363722152695174181042752914074599816723546738158257229262527440778101476468627563597483455933814692008160151861351039168319341292983882854463041091106634671511432069992717007417922835291475175222122305569977105976531694928272252574874233746355580344171708428174316178716760157807481534552207589744327349124923268500338704115186550159847844944757455483541486722783722450729727123264022608924667697860391101187037952304712307604550633474709711662475902816685049562913269225440581658306263481696938833265840458552233986803954602135881038180332615594053852846588011372243244554520097372230222404559976579176655519678716426538637346712348470714452783060144952418814584825793288696295859077143800372953067109737009434788559637677643633939511836466845929823542577300900652506292797149169077922777823989924885009077349467988420829105023654573610356398605431835744825070457438344780075354673721489724160744789136090959311640710240973414655515852029879907836387278128987012875879743637442088036344153219427504721110257991984552545096455247092918666779546338088533462345335501869761145035925509480890355154594085745666606912022139414554998778188772487722405650526091626196626150566570085526887095121411676184442544026389238567282204462805634396214104008625132596324779263150258779128090741442786836121354416765002293869037074075447056381295169601427449665649699538867604874108141200016308108941193419700179293718640129517118151700822697593353062783544081821486946337191320567610310723571472370259531360513693331213576582258272923891729439782916982230804845052417978845420729207885965616678593084611685048051118327316391456344803175256284093182419985796713558044962584942612750279035768291790180426586066837940663721355473197243997840794563499548696519472648860482719344584851293266931346556534060422692108881431020440882517204354034164180317658965375284363728575280486291293532813411876191501313097813511614958657585877098183734615005128650191076474647044317652843918831150325389588093459013138197311372610498424518062020197064071433070689047562972280542411121377823158097846845563410078759063631136699428467889721126046478108040121541117815000145627619996436489371982817173241427151854947933044760136264111575504541618068564177008855789872272653292887373066659786954425709007276165590946000505318009356609379938503979148657410987084755773527482731935756004575836054791491949719097294281893944432216704364357298582961374017001688540579972538246421744688275082129805417618976307161862626855704030511560044055132989889295905493230928666057479008145414147313669136067182138418998853496062941571488383408105417000134437560475690543144480250201619833453948764911006019216381091090560215474858394002285175846608407259040798482494697898390266004840593711009510625006570631439417777362331528838963326648159743409059708331643197320750376008482355247382010104148258034220793468143242884409182157532068426224677444342273148716337926116850013660280655308891931921607822395875298014404386955518670807743479644614141113803450359284302789921102747697991809007030583444125867333788829787461071438855658796169660181083067130995014091940325238419417583998409807094878242146815297235697406442054721664723317784174347344186070419685630735971257060835251077973641750566296057309180336611779385125705637677618108474240087555292557953024399663978149502292958580577970939161210757086469092396496499882128379423812582761764347294863174665234280754443279339937536207498221962215704714630408162375303678007134476149599065601429216378716482591268160744412188745904307987016105406955108128977090452443058154345223789771240873213828740262611886476652876657014164194331380886895104929368835653929373874446772821428499682083831135331531541202399640796545062001223825683914141166645557053140618345302937922570254676919366475405857955768726449105127430992522493966638167994481455978087887199066797007709998749347431333894259463270770714600942298058066321434484332785632574995213133832472632661246073930785687670386742468939016976879041720791301953101248882455208212593668267072585477331531880642324082953001463663335957650301125549078576669789523081371203864080825465387719261231045075497450539000054858503108634525825118826560321820884088744288858175035079369700181602739690088975749042193335305395538551574078050118329030925891307488023776797394415190321895676721432792046728290089226696198737315526812538778828900835348900794103670080234448478448816785366295325275981700233306366897211938811628235639370886330421299186289265213949003902400591470991930144098666591327729109317836542293526610674959413807176243750640429364619939163115813960238142201512991462969858777315902339856656758224764801240267801014058597280398946180802430617975615535014233376534904837187072837151487282844061451806670744833780152700611554276731431490680481278919931868326937656512586322630766281055404247054174054913775260996495536943614097917873248051435648879015131487631629971331631847947713096002947509606817933056962631222885303762606483423083487540622207211140278759343700824167609407308706342882300394038046794071744598067567658430348026172603769749488984779381969095309338263689618581751151693874437688944972163205238268684719919234281337929553287775808705471441639206306372607536715149463395976913914338878662115011394365824767061009852731836572134055750472662618680362743324608745445295953531888695216046714224238371007891744829363330611525324144068752959093494707304604275570509688966317818346729101154922242697893391754296178917808234513376536002346511022176560546366645124363686926512869963250641694115669501034538778576799745199378489750445343209575764269294626161880855974697435480301059218618862138911334429639390784914265984728187062804414993816779776694022318197365356606761374692819691620975200013288999800183033179385862321044138774031135546482641490638015454458292888390926261304504628445999459257052206739921022330374850196878180578670683121605307951499274851157385340091679583397553376627847480491822840875210826525696188789175417025065908460396486475056596760294855815145353134738258732568441728730944122872095775929592605863869339743858616715395412763009056608206104255053347724676173482058570748879290625178573368222788741143462979887738776220522923790449417487401209013347815761167215709998019417298036760728988927237065250428846994158058074875299602223852426368656182624481636601183740441169010911630753859798783703969704547560512218051820360769910729893549494850666421312142941801775571530686735125165730366037971677498694017554129622516432538407254991913806604406216065216348686462290099057752265857780887526332025948759706722068778489725220132044396493374739951185764919671059133769262785797776836902173159464521856382232854357999494566662722768583643992201482650967848696737248719616750615227212034620076225795294099077531385483584097587145120181982215814439077349522933140733414852069118907332824434261772185461444482061024477816630201417359581934057546790456696147988632910193905014591844617132255522977899969172536277637991801031003164688108830814477811845881013930718590748008117418138757868911135394423690767122211989085318065742388226292317388878213776970357042267384358685756132933848308036351366546325156978782722650206403545154388553446187855802807457619879634514271904929789966765135470470931259011894603991711863838756043990811624882974250292072498085381151682920050448768027825605442049937855368165472930856251236124041883765812926770308714971545068030946461491425314087612987526837964463494099822820138851617665609886641882083801279593193759720827227791758280868434790504948551699600774875920497433806638363663154086366081699682753926153514471523243650023671527841412634270490298580168673647869492611776376649938639699028793909100618845474601322890633752666997074290055477004683929837106851982676168086087237497054342570142341777033308316979795330309880958687034086648863756228231403275534677931680173180592736073078022560586393805967769980326071539046452186420102602468352205400989365845131956592768122434798374899117595129654389882999146906196022795591972639766800719587086384286825431689382836328382868346857340010261923066872136620143143965402456121241467032383185644207214828041543140625475729161294112829217803890718975471370177172324577261425463205278289057839642959026033774380245143435189523550039012574623302139039107193631187968840456040918404875823020380115074290002813628747140356888342359517069626523971266337104772647798222433194160809906012037987461817661342553949778966938319607214363231613437348994294951493785706879745223627908927356461817134751367764467499387177010711699757506158920512286234411469338670111091359607103200393742726959512962742364655548937005161146549176231199210307162492255945092673116512122200290102061355679911814440765815615371317359947827736627330090621397693135388565908305299477873804527275958715364502897765873527850798421470568194320648179248213391143219160139611635164817150074727414860279414700290721203728777748601296899374340173027971394972430357686548803600128583790782307886827805606100956804340157211698685493564427397784850939301144414427918713438474697677409691389131881265629677243242675482995401745814909143235465676280154599550068209367567210340862508854062170029201884080154267608464529910152968253520175118119442061654884155367649263239480095747777778754386977278010030985564559113222754032874518440416820805548702051758204944537589096832888582593528719762171417397569902581492990220846997114942487310431478258821969581100921167466301686125007352224904445589837815338025776362953361455752624140756273430021923276929760586361493595317100533983992469357839726992625114599391960600171271153913707087161122933173342343891585647170511364201476805068411648460335401536626718737672248060753476090188308030532054475969216507427206153675790912795024359007237064900152611565866090905438136674731794526659717893581609723778696482372137020213405500533135543806037477230247304605087590514821551283322025177000962545706520990178993569480733694584181747229634526968471065909057508131854224222018204913408487152106617763660746230789204225882073608605873135055217377087892252422041660379547287060649514463947335945788194826104564664508131415881355649447141034538087133244476276371440892434070121661169394358476747027450081948047767053898698683168656891653974458275255902054320254175533446507454779705022810879862168162063481059576212498445296061001811579358932666742718740371282172278344364074433431148982716485566361883127596689754432396439942252215322660122965163076442772216631615982346048726218005265025456722768658017909155534011558482963440171778040584588051830526729070402399801540398050412726199440567848011471411232715676865701278082832312590521406952098126899169027902275622574710170360249944735045779317088607252687423328766406224113694882917157127221647362074764147041048376794473519225092715947463847598099418237247539623519633678481481073632861026806177039160389399608610513897596808781428450313337107215697673752880519421198892084834239843888108756147069049578525339667656860243423343238946002851616001096904171475328211293178834117507239425209748140902208667920284392683165334487153073555616448821832135196911104299397319642420272182624414689794647015505659562991075322018616699165382729614083073787463801111567608849516666741371767965462661049833462573543503877295545278861159331115440995128583739081223724295445246974213121133783988581501944389696957028934021642047717192009674886182106490134937108732440606681019538218001405418563064891428719819865739518710890685973169118887136136419409247619899903232839683933624352872651101283201837710952364372762681754160406743099349787444976831960741111761081655083363291197732584227675483232547896978877998527743673566276846489736393487283751997880701419133361981015439600269166135166741053790341707505766525208215495160331872334371436738249498436612917035960986500472510790780960827762439650317211425594815042063263074079927848393677789355541725285855662561207106489691684824385695950521698341017427471777045619041823222251117914585187829968995519154384591897906677066072081518059828779337244014062491858599428441074792435258845419642222230080351178586498856254206401684350779178835570136403161115339273901620520558790396353901495238038453665735045909327408987263193679944637381195139435192102495110792502950978546663924165315608243749991371018255196638707664775810790931889739495152252418230543679723710108372137751081048457040676911864033889415954153542599684892537515204107999776263825821429386823901144693909525011982553428215183368839939657220319240064751283154968224523231980690897195381266911331384822281905134235124311471382904263492456693546393542647992680439263355725340365885670945570286715134794723001919473357887517527503481390226671532534489817107000544406601588823803946476285682804206530792964061285247961302068488906091253987752054835669215592939702266510029660059830476880875354576133386301904415132015769741432411430580080554125230287837946844352406868489984075962363328649512619093889264136511034662655343291083096326499055302548015792724753787285129622080234153605701471446179738494022727616936307959334022503641688473972906427528111497137802295495355966866575594322031174906863831332975336458937346605587031467346983643439954110444259053482438282189874302670046277033150982208741638509718448874318156142279575261352001517207001230222814210636714744201455062446175371234462413096554019768261441857041227414988940541905772947810463230722620636824723007152694849363722204721800225800230812943561790567032830133737573027501158521610335991221536336353128877509736163802014600003579939592152027777691857509226800617109266953633826614045357149068618345350487216880452614065323715464318851617093288739305750107811211209002193160012781432943899253993514387074615527355466029727834443461551111384131256044122784161657704437827605722808579503130746916361548072671637696927160735719257115165945397547584035395939359584876766734728986107996301429913438273731668257596931816777237228201464273957757650034320343517373376764739989248750457305576244437854233997414771098428792848385160825063208773126946639012778272939073019363450026237137285051138251722808327936498862163738843906924004204928659198606250405064201452030916174001265010587208458080837159948779439418146673939317439689195691675617755435941298382870013492980809497903784801328237670741611189920853667629604321898451424721524733567206714513064894929841426507403568252884303482143410313770130446045930286757179339424858038938733052617397376766099405330322415721524026843866247425450205524593634588159457496214442833330264733469844746238497964091680630976524566842928624788593022760626192839482942478107627934522204085063897135394495914466604106191181159316543580066086127570989810588653392968478308163422843761871665130545765839428805553149132087366282616172151859093514127167142528846467342313416248102119310179883519728415756974387893670026895383955930610231665413187120655182673534176537953751791244817411609943352460019610397351520800957335301055859018051733554785406561952194037973609650047315792866332845810744768564299377790696168134191681815577130313260196158038608177927448133559812192206369535607809770732611704076858743005865247984793244052266905174552844364960738542343894812993459688139847061428922452009300689520264100153371874178781180726560202372064087556360381373966241042042989312889227120515566470268978624790040878237951756612376738514502543479053548426895518243026992020263055975281177856476967637399190185781477485784320617508969694938388818403732255921692183795157945799347477413996965981188555603952252822722720659870610912894774398795887537590105683469486487988550294983065912555055904073680470836299800392484136618175786357841967192215837320018771099840023091977363919540686712673646385445961081092103919492027686662071350036280737074941312420068342251707677556482464621579615887646893084298230842830510632177078547749540827393786538648466363722759621235369022350397058844960633146400907730853347000393983107246050092998165942883413021198154866564195114662146618967531092090321487672961718871022745803381562247320366672334201266484567554832855836378394307637576056476380083203468457816077551699608241050646794093027987744350235358803195539341873654040347782819874798196153446072364085050501537871199795076597639177366462505554994960298462994458648890659178133992184621635584124174374568949273864090329964066891232133661436855589211192932668587788833170377085714647079824889528820619663619966345809210169957275176326169827476732531421861785923930804991656131459212650148251229533260948698398748469966882621269442664137649013553404800622895167198885541133586029886999767806238424586431647809558514131240531472853724349119734813149929811650123292162414541300220060059538490224336482435844892743539794951143588936034653078090290149776837217693347753422506003075322790730187737626985653452382383861756330563366052943499028419894994144866274075707617888725680446241660478922737007792337340056927760379265310218873251113830034376328614425776888386069804095152175033553243033272856771743360027592081538195530228115209493546272783337791709692690025183214682202133001403964958457645720633450865795449474210549892716559366685341805059715936141271176227397533202506074902153386319747847408091237500355063567390948874944712763376833516216298038210993137322649796582631789496665819257118780081755476226317104323013023894513462106423263743869494053127589574443282071368517041790528779387091900740279879583463770763666944821015711921168551649105918332234763111829267175503661696250754231964787477752972726129220539741595585742520387049375529083745138445953733278736870224540718588939107397446194465058666280370170430896924435906111362854044144072593601221883031120981504720415346401846293315775033687735085252305078257315812739840441782528538750962482129407740992356749197740603107395177916417437929674630373924655164604997451109540371464324528244375984913623529801194309349783222615647336140405112888597555668188330465920535098012823467691671727178736926247496437669399922834524149037889013307672889482455158776531078509946399246569771576129766582827997814133333335279274064588195995411418377007920544381197032060181782541859235717706084884922462631987006812275832917594589022405825389027176479809621223975802190233658222152136742444146336838687839103081818926696798827261715095409033882480719531641129194231257929845832802010306221506606460889322326991359582272059358552040995895782658962483399161850674809671117725953699859507991492734088955234413771075644015775314944137024270117242065043446688336698929778037351806641171083643498586656992156392245534902661146644201016017915875058640712318879292554465650780063714975575231649439207100515704035597447829372422064918757249103875310677573988872203074738869432876834367811252848353285951930207510323314294423193475257470416826433602222188766657319479039691635803494246232224921100745489062185976744448856597158480103354976397975695551104660757552445453956402270809245007811942503754241321362242591282984639602014586744077173971376835745775269161439329370267210767246098808493281682598423752826852553646066129719381001062718461252274515021429801091215300109429968653385631699386603944642388301355411241216521378394371881694368916128931454461314709856841735797293809313271493998548864443088989732415442848220233649641819047785504133620999461379161823599119577274814120832358679941539598328228057620070549193197088346364178989950223135756018910275086274471910647755967188713571640625344161761017170893005049718051355105123373015121666631046793316395127486749676414557204759117348283347121579816089137021627440045258884524766451998305610246665246436437341245956452540991414714471965997050830620157409101111640504997962408832589216280167886885394894424223729056424334442710987357300058638268482255249456070169816487352040899323691085915378826937363557572648174126479370832008455506377803052312626488053420850375366702126847105673190954627596847480122797883738034681159841454470611382597717618036997508636130173726125274346142881945326803390449723037655801863315295306542988193805225552921952129028874517530739499181570760976477276643750030537786025235802028019417280310794257671750282644809475319386057496383549151465668016090882120922889226284594859564469091962215136417715571300031716392332790061560369017604522319499419731848165102074749511803770887252627059585013540103984295324204408855010822880247911317542590525350383657909190544083731023946848580250976132109981133722025724697652750616675723438843692604274888649166770608319518594958685976577786690873710451962409252815018977849497801317637251661424362527052555844782661625318349327957098805935881954782919765272091917599697438337816852091611856244097170729825135058015109718099541657199457188542708806466143928510831223833797907176408091393290695219259279036789177264141581350250397333519348350002372767911903185170001667187759064474822161027759639023338945326138788864066048334260942337259955918140349617864593366929585171641505611192618523639550886268856624212573266269164522503808935348168959773790635961971555160715220185940344034520609044347697623299014352166643050674408084857464150836593265328614988083627638404191598070720283286780614450189610918516933031203628798641804866365570324777522466444021028911423071283335816570758319980016110046636434306537404105665736732087413881476548100500437861673103874052352820816111058333663777308572061747300498617696894794807236703828496629618696519407203389069191291824702181454651448874276985264243853309985639293354144688444982458157444551854109985284638832269348571964436050876785480165287087207616436720188436555575604894505401759616116410517238583360575840036644516222766229021341599480336293053390445937059130537679602029842200054944684082484961779944018918164788910613125319992958381519222478436018607126127073592154989715524020949656902303421795798675343154096181417089268105766933217916481668685595053206921122531107916559833288183466409203610579554492854967366295034375189216573355967502486772837249904338941826775499452745976692349597613060908916553028684202693792224272242562110095475569200433899276758664744621110789044146174535045977490698707136750003750855606963855054740590353842648778735709638178801875391708760478238320560325604929335433688419232162471419610299503694571683004466443919890030772446438552518534049186579641321006836958545835724975822446562281779007453503824952104469819409218527046821089173315637957717148336535168887852487485902661702630646259948663616311457460602601287741671276340345536782826642682796794031050020810114530096039697030742396107765499604292246664340118119724267783682023987062514682571804339368753877032233510448855685290957191711358003280474368897904321313630681420131800151407465038050730560279276569144046659868054531188723223882469882338857916587470716770173747407354315054837402082473530127152925495126741233008904000818502245666753097154104491655141383721350263086234703674705659574203404011060195128185158998186086896569606363524241091031441445274078342407014637981037474341586072268180943936955973128288187320848020091349935828536562193044327465938212338168753012575819937361001384706254979777235149041458276582972519645527457731999217603563016163728171068675526313990069562343328408477309557046122305273257516853677987510833069716189753084787826769266223836441579347217136180462992049864707385290626659487209381444922244786080193047307683133935469962846174525799948752309815200661424748162966149917220546908445487643986941391945777569186015861338378837757117144102550701329504504757058235893738082364373035167845609503566530585611730270945541263630990831652562961960619895001832957763195929122316925542689413120206026576858539854485992631006141142309990256212269342315486520695987922241240690372948223036948402433832958740054025692080998665834392238310282367234365292366041194858738466055084878164799498656584609072417211668446617524282405408922713123559164757225053192202271723896089002759432656221705978252785356769377271949076017733866282211260458732000753491088791606092731685527185650947053977343533638781560190197518581149952375239757343596757934165567129880494534775719660814102597567680112281881615282117183823355671204622526568977311525963832920656192435759040872430784484189040287496754001664843102558225770131526631546131488165884763179914298934526554032381314310908766098547215819562591923382904386389229678549887656391160455925213208503302803774644217017819702055372282554736926599955808772916749755627462144939473153158190406113883885129368550801478534868303859383837206500255901752884479315567059496487966645513873078096338379521025029183470620509665039061190374678494299257973381021049932377259230392090386531899522603894376875904161150587860614851781574832954685946289429942949682695239549442423972666657188580835084524477255820065479785877589977097040874542427915826716218979213692089253162655513341916815388915589338372044390534764183397248840011704864352373416604314937946272342112341427987873255508980125027483939335987616854608002336974736350550514560907242478219661948092617478428091467958570796091624766840474255696567757969590289124589436659041521342656817846021397351269774042929153096416895221687798792075880866141557283771889130265107961950735684912342119324518909966953686157435748462280147351655177454146428328465054244425035798535734503549676798257484005724773842082270323754167354545283314554558335376505983916543283504744202379305350176091185209360863890563835894490173055562550257360868395661480776409383625440647314533041262249536159422806609030770379381856903589791070650806319995605924903184685824073751817952852071123050096504295410484578874072320394016052851517375968851545931920862332568397083818706833147149694665809471460969776923680593896466449586962939361792060904231274355044158192286480692269189469342670127002709232405241406419029323566363700042784459974165886200436116615039575263880291337886116996203869649472734772055705516092729623732411441977921985101378231808959220737009399314976821480103165090328220398870832863471734725824531062274320834249993503899874039980811853028380721047859638622941232484735732297308396899656104618775591810468856612012409149360879995566012888364561347252696728421729507602678320099131451513800476174442571887505419229940260421289795943212726429747158574370161000654340501301709287211751647873807148948857541600057771858702148748730983094611160756148486306697626198196332653930886998725734264185052310990753763577652229880181396789136797969431557049523376479749862903001811321480520853918120449684540839802604950695364485142724151716076136363907162072151841474984453218960866543962423238758738298817249574675441300563688157570221683708512873313265020633700320020725078119646171835989031431388289456268964942649600507571164566950713752594671190775492420841888657440668776296549053643998550992680509489240936368634271045861942029977582334267293314518986148171664988426411420116992222665529643597277625688727270232620347411127031077569430795822302762114507077319860272777667405842775671476552820116018575169774113799563094761151815975566999091559917394777261011842851940031228801252204451223911961272405806326664670033272492857906822907956096101609908353931536519676374622315184608028737753196281235737957336053804813719806041226455185242722719152013922546309203619221293420845189323610940895062194289805065910876236106913098502299200030212480493804180108252802099233953893686208017263357424053609512717644604964204662311369313389204065274960780667941804070334002964588910905546711716542765476752414005113017322977279635547094980643704046056202947512424105444709629060464631400194211322495733803642656846839397770361233213969256467801985087234521982694296004595144590907950140331545981951817532555577302366800027685617279831919395419210770145178025148547255511659946553385328548583788628145995336264153897550953875011123906567772854646763438080432838574201256910913698473708592439386779897728380057863150280541345613936374922324404812761907952605235368324063635262682094062097449795244766260939870143705117451384227662245846285175299885829524662452438090853314245564115796221515933603220610553942596138668840448212747562224107675383393690674904524639445753444563640839341410252590785643545935320747847024916676934820231480450013751891855398547672059597944554383268867613327303817413499839532946359697226600637524052705633522220683380396470321610617522045438465755843940642373676100558897040703229782589130600669482367299585271623778564654210289903114136143110744185316371358696210061182264022359918745842190344218262325024376911018371629492985743149053141229086404458492884462800195227727854488548929358340083741725431554573715592793890524169676886361581015242429539496519189391222110359179685087798885128491851194329123345900527156071461904189179787928036227007995490954094313511908055270207800655821631711223957860295645128315667895486805592160891652665557041555468317165707156725206004707829632419127803247222404521688192591404946927753358451061228491380183838428631993229916926377685698774906678956927104936827276907140032652916721663590651128540174598237590984334927553533932466858974638776032258334761411892690799652941622879751643332735227472674939112951510516597243550871542662845492410975244030670925251846781205763314729776978972879888085109887242456299958891939997185721672439882560297747444561098744692344731209257900168153826635116426941303936913377492585851382974538591464004261983740370925627362100121152806236789708425276776480627670994245093505292865325958660053116243882389211036925676916617581937340798487002958850561358589508877143557146108253827889522788171028173188049813689152711816509663294492132203966314364372045275233709530975778252060278762285817571614238270213335792610712950645889187887771083069712751021132128138197250496387366413701589366285750417284676396389152781336689562549288464960775003613085426583029821612002247107306547015544749135006077120734228231044791947249978562988153685862925357429561073138939133828430857541395714268402622533916000371465337001444173291755210195679279172864618436166842300965493953531997176823512789047736407481851155285110098678476743625477323378451946597781204020538846295192832632156980736969539020415786249187784985857414432806172422142008133684266526098821122217537582944629354409344381272771491932115158791075063210491900619137234267346883229706922280535996442692668397955050319832762872160107235482672792621346814632880931372715610879540570904704567544290236113587016202493383241704183908982015146337185763925505159054326804973416002236122775973431576945231742564013784541474178262795789554454494155189290492350029634682375040411099911515485872269377614324141463834674476910192849860567429078635914263301408920739711646975413630470955028438586753992598134367857196878353634970758883819939816088479704291412383244404109407343512877921110143399581213985517313068175095940059376712137049900348638958715189373453525310607668576652159063231818993628564110557124539769935044760970993499641079528953608788959051115479401791217706243880327263170121791790633608821006199971862484043953901663095274429047211315377356158027792848122703588775155491016299805950938510012451792423086298094246712551635255193854141186209806488294952937091176912828109808921953437316850135491532484240998258562278841003829296312790804908056229239616239221143517460177933915109938022024517447253048435289843914259803098810439250571384457557297580736140889388647939053759743733958266073131016779364941156545760652859901374573224076368598588167627015431737190643070867833328348516116265838861534171533890913728999626006688382623495614930318484553315246706228330692374108387823397872164249634127460528378714141090730893193460656906308530485994830241370808708490749921630847395727992831251208038747650361894794340315773664257480594463334253836245641901277304824479060669633255584470939910862460838182323480366142685034069490783200790250739587144813382764787526495531154934148654501014083591869017559779841918940888176796709562107904509558912160998468633071768306360986295672688476549677579094417761643806586352498634380261801356791109071562791749487851910458279507668774074820937842292788384226669310898931534616811883646833054000374464643197701262684547779252720280686673381880480380045620729542592829382017548827004581947415699603257990387276157958385244549435763220390595871161142441922504164832516375387667689849179744043408727867274402731556286420547735034886656090107772414070066511330667240166759113340522715925312016617772648880156662956946084991846873216165074305131223193411369778717014298258920323157969045543553343486216168148466565875913223433362227005598207356194821183903256830369417631940105059458084649832846235781243479387602641585524016396462935339508131621059278813496958335833793676454837112645179245191866064826083971623288278611587240531271426838951094745925662503351187905850043825712078875795407328905194860660142930154248108382808700740542328358260558308602543849935631941288229759352113887261835670123060062416595876245174721181143102998221104835741474985949957536535239799980072518122316526510689328984940531613737795965558719094484516554385352709232337384593116665703012836541973719515593589615070341614437908550187820065730669014411382927924042154985892764190057369640234137346170606933252908720248779219623073406567232591079550188188078772102329688009884335418485874165110988443336138221476807437849659358364466002199206673399786823125681794190609002693291941047370979616203802391702154466535991597697599187101403678108745115920695956543037655484931300652444634010089375148916885530019280132885372582444731383411559803607554806130332430469194829135306777433756666487629872398482797249463010953315292683860404274121575445541936179569872525754060732475970810667410861500886569391465300853678627590561868644787728458819725475250797902511397043864969267677916399244445938987680595602637611553837199315022265278077009745861242633602765278770315938238247106235011913676389262860765789029474305515889527258206888030903757417463051562144625174700541965743236111446173836885313099822899573901317492712939675414610891936784467328560262865418444893235636446799448188620432364523112043187640044099421459376120478324874696820952355885226942793101448610415670019948822923904810464542692956710715106649042258562248122059445609961680997247451960364425345739697688562166630212401777593432612640969929966734011825961160949941421117091267099924778001042498051011194771496565081574632163802741211803751380602625188083821865834408090017973430680093466103390165411776320034837458321428871662470460093038879803265669494056602758712819230833260199354264481155012064857883532007673494137568860777708090580856678921157622084823302166500878344454140367395608902816777677064912688898879010616862070270973624216190831742152769901196566928210636893165220837801472476705986094209930978658827598025034372450416592908910173679764355022062149628642510154633325869774653312391912027113086724341550533422417874511995783651549862399541937557407531790488516819102655977061316281483965567210896351269510025539558630265891950874724703997131826339478943176559143149187291269874480115458188382773818742305644933631951312203675607958118805023087181860313108590499899662660050886659388749179703855514734137994691977474904352629979225153854722334048183711901700768950080577141485368550767408564291305462986721130935737671609679997830948670604649061255886636821293518694691348029089483178262485459362846145712517785401833155693935802006112040148924168658658143490167492797846064548625011241531803341641772213154018839441761924991401256315074997961491493675068063559487195554518970964259405043732264236570118285888195752844327143734007841005885312821818481270700031934194756563727215905317869638713124457229869219444281435634728761072002911116966952443393687390568462785827919723156870090942281376154535861424251035432292892965958638898183065743429833011934581029763645201193187300001955909186249176349037423360428068769506600317567088762126696729332301615390614650373397309468027466999393854537394497101613703808013979802357006901000741239422952216207319007367627373918445487430244849113748909286847483744090517448711543728789531324770426656172432082146262012937240843048720752059257112827741507195667294825204319816898273782798563228338579619344866387136596382783919862079230332154953913665038733281446370363830309246753085260405387244139974500494558034924783889034194350593783722416237045369139960151669696100737721684762428015166569946417738345731131302152300905143870259623308945953354881520543031778661986676547799734633141907890957343540664342669649972305655723639695614857082613283548924848019615296890092788490230277826136347491744728378254221075489389441826041909668402757091851380053983113303029561854921369775792987214168561674005112084791872765309632004251862311695197767792261061827999138181001779835933502123823445664311846743542742772784263822847109451540702069247466170957167118815321896739399844345749899639507710349224210144980502448002616378829817922910394210833886596786233181478887772112630616425947989357668938842718108144316705674866686435742193878986986658334773650376459267165966110074693418414098574674983896493898080996017030857780927961088777566881809741713104325506175943761910040787802623290361356541976332366481191803517612997075234719428651393349006121782279707983728071545387838072396974483211052122614477364702032181291711041126401845591330474511484747010664992674246013833770578058142882905035810011918998133080423087896632758016381099010481882138190212552955471872382692241821546740527871310482355123875869566559329618539177014624139407900385519960186496955106126283423095593770592673232064824134568731320913326017879484207253895209034512118146372744029911626403291681425029528069000016536765266523992005421035927712506162118980818278108926141722969408313951451786244387049794948781098278758433519239116054278998824314238735564915908761668626261355046414010784624675340435854513875800346645567761749589919282995347114328176500626508051885939802347226449917754829419950879091638609034002449487959162201646491064792470260075465420364836033461180192238080196896705340797126566369329590560482623170099590061316103078258519553737952849842245772719139421800295555049362237781022962992419817926763448582850427466723705284062558810713420457867229681853225014180865726913375789970279790079423978136579765903484225328586583121418732604890058658595775033411269173206657821692284166395892240348176528615636932585483374757914035017731862670731763409643609773824694047348572845761054624590364942051172615588086687824014775134013188659281285275370011952889957123520762230425379017911680384858825312859195722196421843669977192627511678375655808821881216842743778751038434205173219092426357145970930673910045842157137581224947870703439584114220530444363574504933696537279669697280365207182863462963740072787530838449758247615158891481209280064877865410945704074458732821426695828198620517605164088785912489784532065251933288344412513941962119227914988654185311037280187333264265690520220626967850406040422282729612564342213724143562968981866675207052309946941699214070959281714772016812066061802852507461165191587036353684274383104761889975300951782789265221349044715100774751293541694201623051727185091748685291853717144465437150459461430824599248255624952260890808363776003741949358311561351485009155418520024990386345577810450136663352560267619080453325955062322794187034938251123483439856350485445904831236388326037566465252331843609906815766583465109211074996247399286793071750599459490378219021628146084326797505463184262864338449137978627879056217860195462610839836810522575051599115783614716624845939563752164872444492918381103490058448443346862479071031345632311899347886935492090174769295486490974487456134902452194619278953678773378061422266759600026513696346300664261617020779055253349640122257984548209065656306326858112861078032184662222716978313432348304624733081807067714079932076907793645404536618254704054613986422433927490041520693226642925135417859172582312436721878946262828615812353261975356111846661125577195628770629457651259460327219196859472053424878179313120533183654445897480821340533385448862439098503374395002498598147877930667448503641037015340428936284684690372285400500841979356492585600162464010335706968711317119486333035948483391289151641192853534489966395401672049818431791045519512900855788896501407988720625309751032202107129227190962589671478903519401116021344276983738955830363048755002449292389859070927001070978986414226485450127396542516732276822706368045304565341676730957744117779636382661878368631575806687873579928346718622880766390166215675558056470482475515806036974426255258556693647569538553687565402542642999158742375035548283087109578477027096758331418274611912361053403619098724491527518124679112682055807455534601406971883916345636314852028674195290333964487953531625715757693231518198153574243001974736973655564948116184650666204633054571268603986165952703076442930435950712517411604781315934518413031059434457979466160617633049566250560126674974785857570417770420103104088109631943520172856247106903517938756000672058830040551170272429243042515020274120038978668029101250148316214460562352689784402008195501141505972220716364092429302792426418613091642712244138303399233791429917712489032619556133450854808206673024870140669887183788624907053157100533236685942870783956448637686060317552182391374214147536460350085179931354831326311934185536497107663190423203354775422974543695820297773218544266638454477297574614034551754368874312297951007081439431288938662205643001531260729549601730264331859460914632834591231765814377734299479667384421273589601954789565972315387107314148523688622349409744589763767488452619373822327597319119324186297169069806819850083723380471396673753218092225831157260013270306720063432338550491234384778784144338759168399826285031095360356280085863172413359671075029149591425696554376126914571963250746122503113403840390928892252809698444489279816881121661134349975904605790783050549034448674003748634214997884038161395166628286511732848980211499425886950256316887011449987790838750917481873422171696241937475777921823215923699079283925543820708289028257012737183614510405683282229896022128805096549946218084983773232001670872098416401817802018161507952704946891307653312636499359017059683639420569767768602086359154066606101273365785102789825522324353734005415134391229518105519267606186289403972574699575361446107208107639531627212356956238217705173600863227666813411020972511372993670653594100946457777862562958154291735490297985905149469365565283199790471658022679585106031588671778425704467658369522726523770746060690458868501335333877767772800274341969069588527554230923943552481735420537261160384451472687550722529779962263725772535740302055347808853091667426500811503656396620199257983730161570297502932308916401247939650371572629240088387275774645222836250580415321905302402708826863699082360054214216620420780265231888980570996179308177487465932475416197461796735203600461864070839076016413176583047824827703453618829630328242130309384408634248362142737725173886628180636767999322581593790257770468630866707877647791523778596655253494113789930008589575548510667838596514279759184446939339315573958859317347861950042989389208351038293973503118836327131823037073384473713711314653971925947171297308999956718629157418172918337896872153557116256642789847078509341112511535376953211850987835148468694623279075440230174961907590491090413665940934168365385265858168224625434873606790034509882746483721849156083919717360540352935427353039834942922114506481300662648045458935486566041026907237433161296236880072392264137204867274244951549753934456438667235184321290371279643407269503210385152311941146672310038858786053652707682077537679236577660568080573522616300872379762762219346828345299842801986801639221710038605346406505707865303394025128586270805829034058702910440692268300361475186270792066143824620936989730150773096599735130887072309842032273166314058420474304701019517109376353475527763317898425126538976565879547952077042163575947033091376695798350549094577509843115626948413045113398930385843130631225236545194101721421235715502969189390393059231873317697855013356040570895290752058725567297103379445871893930453895480297274257178867240826157017736278474832042575285051140968014874297909269340630081595824211953386355075445540971707085633710686546337787622579559855017729529426989082028014702598252337899696604520786283152026338451710243098543470337813807430852793494609684963211204906485969082613242348848617637150673528154025239496224841086297909675841854046829139172949869162732440480175374056167089098493653282802546123569018015291166014325015093645429553290803505405923538974264152087973208469722160848520048778233958349891046299871328903744007944672263912813545331566313894596099142154166712158104767102358524215458951243558479213938223260719136548631857310966687058332251959372172793912916878142828401314888802147225358849490825421985095304408632932970280556207936829290003101976401397815294031946337438654669699680379257871738443005637368326198011883185379180662713313066277642687279018665049273417073780475033849099128453420184659711952098897870704713738859758226956760469949329615543387176020199139630100551718304599081028708144512716719889608994484112280554831764240555440680646355688959947817631603744623370983087170754577893421734346908641247155843970765191909663171478525875942748792779781153348177780781455233059465808469437702990873360934301697935008751731480283937584404638724023938760227600794089210144482486185648873861539775026991220425887848454987351055660896696636798294035612425580977477161091298482641413845245822962377272703292326791342699760225060187788295833140057413299024794804978229747391406396992989682375563883567523758880388929321165776225670652347191022425954989810896124349755800460788266026168889395151382383735388919229797399494997710886583340488857128643464115501023135433157584318132603135551135562299850088715837356382325366997742172405284341444021718764018729955209800804784862959244714072403304442484259066114349961345344487590643876350934492764214607330581785484576248168317254353545573084265105482025767982259059138783230747473953866062362086916675265666710656456475651840196928594261790338142627032416721854451352607417192321433855578468616258135019663230423928359980889210692961221167432635153049507229386107141030231198081918701284981870245001649670089278743240295943161139663718134923771199622946102722452422450051709445199752489281223953684399003910501523181874674578088256294676056750928178441957308722496712830388143302686356714069977040978069468156387687500577658176495955401577431356021317123133010339849866844666722915081092672519126287355527782303872560191910355187411354332900133158467562303427914093182265638891590787339380259610030646267703165209318885625237285271226817548848743997676930966913808691948912110184613352854549883766773739514586979708745659462478599677888029449720610251578642867968309131706468693556044449488713926955460873255451532364659720457354722319023579690285626053658822954725800770010672865104720355566122796132373594417767924044229857879886276901208681880858352016546197308642748940009094443832014144117767745469318875309323156846853474044230623715258185868725947425510819377943037486412024020363284334847756670243795623943751500822602216995670045084418746205768413568562667177700569994769683253706462475065180870077932345551521864052716002574135736942074382939865811938579290967407676588064649805920946209886965385375871438174744170006485142105675156529462205223215746613692266752680065770223578179747729146778187910977550872219577179293112265539797004098126198956540330611213879707792023167611938851146605116452490878135900662149493802209184157190730303955687918024825902902679455351161317409193992264066615540451731968338851403724115872654164551978810558306468670196966301276567251866508406406218743511549670146095863091720383007425386940232308032985854565189695076334619141130378939686193548770117140733970945836367903227550952940237374930305466510576237268474195840572561111743060348992198772672743418329476171307459747418849795794505640399798265801150193406060247110255049024880136215990860828294115431340016624332378156055211820486373422065989901178781615968398007177894703769046915782769189671295117557184025591408354336770024344089112075773933817470066516596703549408680699277019233669226003161724585937148305330348899203484026331475469620420812015835268176818688984526495258272531647925222676208484875423066163891261891865464955036610481252886768086597144602242883286535166413115921042810863909519901542783592515804033790971166925613739683913561576940832135280086548761912876163867226226868670825891210011679024282834020175651326937949232358423398600830378053470123092919509551420202211967927114767754236724388082848637410304754566885633414288357215448493484784716891433791402058998615616662334303429531084966196992479653725063490755389878413538616521938522068286439267146521885436520893300069465021359587926141213681982490566039466465529866935121515336502140315418482878259081563487834602177054582689401807614001821590010533023937129750677500524935581347839324240877330840488482764281881944277050248697317053200556796264471182946670516555344776259016326944638899567957252907991499125256210255106801108877268384772168707110296461098114790962519016309130933168687151878540876190623894139124305261085300532633203889733420779744038948107850302674776271984183417048768986658983940237163510412909722660004220569615463220894184846745824803985560730996074899017592618544509536837212296683867940783927029199016650341469582271982987901876944426016758181036838302279902226260732989814909724879379601126700698732161817709056129869211008162836174331332748348218127136991225043598703918739006403199328086854989372075407544086910934237373319069048513657483296795012041995978095362674808400605849428818562398355526161683208233303933940984052553896289380798914087368222340148720012963108249825744282185184192860241008046633938378290452228000348616394304886923406410068121205081437881770974568445373547250377965236357996577804165114328301389941968402282112811252337678309848029300893087665796751593489710538789990593659334791312984188285598827511977617808160133359133273836035751592847753011768062416530558824359129303446265855174061519129626631739720582725730917043225824389122679913414720104903075888784419622440735575823148864465752142870097585930112492421827850319989289313023905280498241133010031689254816242820556197388525538819002006860812186733825211593542939536972312006862418036038454521382968302799400437775494229456032500085117561131509790214973580543851530323401612680645310479897183590534515700474048761459712092954308388866494744623086124460881531804154961604301158445846196312396522117946170287893321329809784617222635619132881628599465247092767285709447936004011501019133386434569173809543494401533636433679437012532009650273370245029962416089132352774847360267970524724828889759716226028031772013362510667838263598634700016048263606558695772737106304001698788470685571232716237277180549105338668116404115974824191303118128749702551910647132558063716198657625663496232829428586687442267018548550634300089855601006744843796815519983062150037230528991803323444766206281219204337978762075206824066562207624607941383276674760916298679210433506895109336318088825007438152809082126320766285613850261974610880504693405941879006103874725127978701136183369899775711826872544671524688334968999684930111789041715056964448200695282782619797085156567572196995205491856350570507101733747187252433113451529916780573533118796063661438139629728854558744139164641204461568955155192007138230563974149245255498900392748603158120860901571655271711620104427613897036717699921259081109493800315271929799822108716803113676511224945943411203137969741289051114661916494222429702437383699386335100978489515553455085040901861262492970915097890790119444051762738142916351531784701514834434023419347219078967560011274824609368987571667846181541041647413673815971150653464133067982366149363147077502821983774160000895188818157839357162077667841263244638408094902683409974838705771561398704502845721426195155118047083159778206063753430988383431727311111220825927565605792362596724758876723367382533723308860398570892673529735177540761239940264194995100309161545366544197719054588954011441841270376808534248438166787494245235042889122723435000737448395321180053389001110951443126808027232689573474989463617633068700677266739824726234809836521029497140956311733253768567590884692798613794336167399096523257233277033918252137245690666427818138975768001535675990174486004014776238484540133083871293751091879439743421280471380368037046129288825777398102460452115582510777739903169181366173686090571852013020885538030742829807038973071833160503483978288602281336173159095156852490348828190302475330131565517605456153179976721237709976528364366910811798333240855542313742333946845411059845568744315663486523487230563221567103975921199620948366489363657053789021460687086869444937089891974709680848020255359115158477802296329736808797604105512278082534687233871121508084091586036138904602926190366219095856564055622888877851231650241395777962062932162682252155150919434436652030381908688075207810983304149597972426098138716316145553991144512354339410978918585996545087359582431506537374733653280520818758073404224646362403369211742498046866406784905756721008501514195412389950954891377998217043026357015559820953222673468327978397696552452243305954040208001532865335894693540270124388704851186834623630063131883752526501121149297524083458939075742343762769435473574645455176948508240298308713591970561931238255775867195160625010721280912353698248425295381310402268919829646608995454354738018587019857240873937322257224336548958392794856941874992089283772164003680895086990383997859119856567022159421453483720559801953986945051483500113418578085725466600851976596353190566244088049943340659951571936783233248451132396597446212933968720844359225056178361151136948255343001486484061278149144503414571871905970933192495023887792369437152357260989319306650092261623086023828779304344422266109795210888716180844485701440453998034507387050612282843384128686198304781761013626431856177343556116412604076230696692331423995970163067027347554764998654615995191391945039102563924228031884520100894276068977693529192845681925827321915703396922874320244985172265799759454621854893333529690379813748567302229197957092715199600428107894751007562912672370774199510743689643125340666833968198041325255268276288745909882084828653221310226866595378941088531600081112804886990078113153022043002597566528441536637415114974331402536039799707264143146096897320403040546188909958161513912208113400651489495370333919690679153676883099676900070380413772492356565234214506783777443195872384366714348822221964388791978128777596271769999491249113061363950295555998103075204405454827832423975228778216126082067697219062589123011410648894117278270466559680982218232655963650449150935094572201333521372497171776774526156826600546421336914562106404313118058322399822922625235777335501174960836218544386508862006794304819226680076520274857881574616935608271945470806546867213071537404815382559589304282830235453292014484965259565679124977295398622665776818556355347539925899977296828927099255802572454621195772012360951884614356644427411239629623041791220137434221399214710402244899490868307601782952352601701766932493111811295246924479689125360769333679657640356598538775421509745543068460109447785245003020266219276573921996459202184812729766764487047543994666380676667915433349273774425685498228359791334472433127950097903777393145757595478977534289600118585052264737837227297545982672645596378163539534076510468921392877226790268491627191443289413291424852957223840523018934797817487880648127051133545843674618704391842396333367646491805956338894770371080171088015781184389382013891941898093451340064837472074947331446647985668394440576105112102320941775700425085554273943259492499457467866031212636262720901516827687559436808071964586189934083217555024516871682449661372776121995018372100130523843820189792649757410910200025453176224793776417062339819468724644535288998990545609210138773732561430032152261348849838206950017782002608717944312492368308081997882217756666444875246601679524152541259266715369562575695558644305746256874177460034053707069465793546486464709424871547649958990041340004201670551741464567821605853027459599248044206477280373527426870140636791590760283435081780001461523433749420334901818710939853641885127120306721991296702561710106797566677899072079750749192600988581456955306088355017528513782632088258138251879105232687645429171149923388004523536810689866513562580863094938927742043433546583081008278561820017570676538954383268028119610998379586201578698838951740449851270949122116485772053523865100686897509457529633352695458526672620467733337173555456970257980773425447173963287393139480199126431428617291758602910062915725162715367721542258100601329795742361278353237148725789098956353898055463572871690433620625717886536711100435585875700807661514671925089382859229187584779070532146540955463041348825580303171826417364408804834284550145344328339574033885404019528917712683436151510958617416938251322507477964676078602935653114212412359781688949588560736589388187302715567702048786603696034978093658928235920102794886622231051685163710887593548505389714042007731852432127342537689203423343027952381845517150078520525090496947441534569636069877924753250168476628681657405070716443314928814469385503642329010830463212893395451298952959335513602826737279787369662076416297879978961904412834210829710276410719406159208243059403396798137209484404586611322955362907520492590963307289148651846857708661906927286645176530883844681328300301867053907699150324022155078540838766082193596281469521126564522762529217855811080721045850738352206732458318704517684222768931749111914354307360079838273750434795795940577106097092695538898409860117517643085958343624172636441524328098055661129412870238117631745862110569442244040505781494371239554591084186371746073774577121924208560832609408353339260961036527030625520321704260486063654969822790908254168115202635412822364790078778170759057274312592225062822209495116579512643669953125794003894788154411497085943707787069049975915404983025025616910990160296383893597392529392503177924036991234822969487752938880805253595975085830173824328525916774066841751382197287372420435638504962529412056775696813314093567122289219360563674855552910695066004801581447536712306391778719656986742132931963123322492261634493339415085611943161278882030534634283877721310020174978549940602635160474879759534881766989133099706669394289010983390210874632883618435090971775714602253401361522356774987326534693264848797619180466009231041199084964550862256486808004894299310278381052516052225699134910987065713338721258992038574398542441011742868174668885360465861442177864444801532170400563665357718146699135626207241470035051802118811950700927156879574146052190421991074752094612466538197538016413313631485920196718616831814598819729213773925440209952901462887408089098700280594105873070167525534996062653767310265913382163890243250447356056994458422494285508232945110188672943210696235754412028507149852864346426869798140199213303434183783993638966088397476396354193868465020249544701084136074071970666841955234351097906870915113585777563321272789843348291828602711193819089439189047404377682156453830076110574708399985053864704077481105156629355552420839198942184525602408079194662211955947128379721156870248247045389890744073594793383365636087861435638851451433591216900220365058244071320393297956155113379365621442948993603044279061955914952378155436184651930943384510541242748246157921637989420450972609199939410450500430594715884224331559467725278284791840322461949332019855044750802535168056913177455232642139980417343839690952322849887431378377150416609616704352025741776942335989984569253819002461070662958609741476426888118826889311588686990384958881252464403707950159527513831168910645085869805210940876176333438599954415774956248182009329829557492100454443885003417020988333535957955378145572920533155874883518223517891432724188736424989127598604424883494041116558631215488618340187162399320472007738991643856150652136858106703668323548299262039826243598835100446127515148807380161622754923332137205530308460669308708598949744772342895872632699924247784292367099882657788561762263239612116136336006043838461085427087498942859485598986375765668470368725151732643960696639901919604159439838636071802535683812222952621837285548205238360501958533912211109566097010025783898655602724952598824703524865548309492140830379033767165622926864749556720687294826001162312826932835535837449898064096464084404101824341754104695167856998625101135665008274454225435865591130000290419169044335528849236169194406852761491150168810432993746106301458295201443329739641410265766649659556487814323793477069450995137094354846236974750600541858346773626298715802997375324177052739329037439904694110419252837459795586684501168001312180427214597244217281304742600479861560257086033485189988412479884759918130299216516822574316225916422561477380459045464615277370038286352328719052364016089678951523022930397602003149571770077346014305436967912266475162149088438564113834942104639271950897962121911164612274426071813727495400144697626109552844293972622631946323119784898842970363082314607632790344761058814382798948225893026835313192524896692878384304211448587698521947132024494903039486233897023146739870116206573528709473935980986317265031693453049210256174491094449203389231219168645536615443114452062015663930783111562960555509683253041423474091443383667187961289340973584523166586956055446508826648076463668739444485173030555597713439248210436892453000161005073549779722913587826970584697082293827060222266340580527299415423374926630559750087040744503891350792513562700202634409633775296141156640524927065315534688532645253882774218800971806302458703529046151966463474027763434730623006751064499641382951458729339446911512411146632942988384478446560419594412171246432981692949787510571179313117453016464498255263328108009800423273308903539682308410132807077049387208400145662510863659102661964323082467772947363835301587949685275135223277709152551184595623323695267535419188819368293066654940727801685875366395030944958749015486606156950096758189532059465765523837568254796055716479292289164659535462236071157417023649039481861502040935297902706314828104180355299854559586013510756311632539092071071797224006759525747944205136620786404269947562990524443130581639605806560090905132153236312600901215576221568407103147475890358185217669318321155666127294352037944886980155136443578280920600103560479368886724658754112807845738284586815426281031081750860054393544985183802533876771571202686212606038837130021370884144762199358223212098284936057438955902766806726964227570446499930349898999527219026669909995774302846651449975920283566100616540053445909102647496214394958235337030734460063084615600845765752168082971260184233855244743661797209418518280851433053898174071943049586200710451553254763026808886755264391457225400496676440983356220293455027258056624007084237330483457993677198339590883518173725006234323999433812117412513756831589410958111493920094479248010572755302146610015991485242841504373603198356771900150253417481174227142634781369071915941598227951412931977934218986401678028375508262643173043759374727231195975939532237648674613429824699123233771033132542063391502042523569098801295700573839363641017072516925719672770654267103359079632632074165048592923576393792842373354164004364626484176073636851133900263216129347496368007931632056670673255588862785712336679950872870634358095935467579420156800755502735219790993020522751373160656335203455846931944049953128445087131479485311288644228175473507600139152924239406787554000123236699186938170310236830124412580879182863182733967505672140996930037683531331289484283576386603258137943566360664836956041700583567438618331492162686609838991262164774542193418176598019682646510347663536433020115972394372281749867842250070812420544519684746809827586188465059038483009079034332797705151496995948678102169139992013601934972288156447546550555296346235643574793130789698743590384999305161108750373068131203424831365484972157122985137943603261850160667480292399235138137835561231393878501052762704906801766438216004859589508730152807664820148083031773548665058741261639221219808821302204656147106435896038705691934146656943938415813357815679547170661904985953168127192632003354966465996802083297909636128085050471499330605645743030782191046562281187607131300824496587356440861073452210363429268747796512585272363363583690942933302841976129924916399769710755210868561154662045186939864336756813461831007601385119425809400573452874798487278975891282137770426947108203556881386089567820379624996376964937984062651099113125484044372419954317393972764356273818096436674637152469680083488517095119532774476950695690090948746094401181556850677805501977101675698163098580573226012581583044059651200233453318584448844984022159663542137920557362354726527130478352560028912914347149854148339329638170057337400808369219661140066801967115891405354166301132594767274889649562703539880924118240796319005151777142296625098343419906772627170677905160654836012910159720994677576627448971249292650527413440252292081870023495152344666999460019787493747060750560662681091864715534833327638797397687367384035524053762230486081165284568959016943340302763859726384022039276558128474278882333358869997783694261749228398298513528483737593663487202109563664583110840691646923870164337437070840995827470507492163828688312419888795733622822186541610532065869207109870956697726083620232127846827615125627943056213296460805254906672127897986335089691296604794075481233363276647289190604350061634708712426931283044398118497742796666147917259912796692018943959836765338869921773535927888444120155215529314123222983127131507906867823662441861073426822531346791543925042303458738160379715078095361070915433237109986861800804913962844751513621792267086751854610983554253407385564749833637538443241952925979564117183922765214461330545718448699682955137224495842124375508206176933835446637607232146189055127147957503746933185205191542577125719624449018033551458478950395350706900873606038435069574742837973872617616997883336990608197810338276485774892417177029880988087410122781071924726057509194446734504713584984339397855403179294618205174400762903548578222528370189299840450834485066699587645611836918517639225535570267138262469793889819984172425418541067480430110928279320574240213380478616546129719518340075170821393550002007873350752720949407298725527527768891501070404939367477634048069971180719773024548075355808852317997162805600164239434120677607715991705563319616312510245675563623896759396613325568656877207622342202515176195797823507716881486844875834284537067799809931020526159584685369782758441079211071937513042175771915086803703334589253387925404815219873123758528787714164082927620292721224250766321938528636507029572968771836819603942495801143090978011353019099745699466001084970184228068423854856317980535801010761320920401137163760141899764325161218720761733319855312432285994361253729575973974312350296660557017406236141783856858902642171755540712633878838943617059246794070876133669532890669669759770832504907379547333894978066162776201172014921503760735687133498148197308277502875573300635474989196470833582140631723469605498550870464848185912160530376930364333729188503101088391198039928816241469837401102839797991904553323361549586485194094875378922786788116679376613378148905795850571481560126583727702965548509957120018788252746666707598077972643492304902644005137298604215634541332671315415161358016686125418853474781580114734610575797876451019719248462778802228879993272588620023611094797779786148930188692804849418929145233845858533579992296054496833755044341288679314988924510462523141194748811720385877929398956018196346475093363949471337687907276585165115432179320034418082997319191290356176136821016569395273850848816123070535113578555310450787703724939288452773268101607823860728113521074579028052011479579105658564228245857222048674105108190063518541954841888165093729911998051612638332655523920841274639015575016354047221951095585719389532777591795232546885731126388086010135458789526577832991017843881331723998187191737523943974873099507531763588631073589530449915912055116492712367270017381942186326770463902372166952356497217786784075817139780484839468693368541792978437420230790917374589293549559290454007488210522218551417949438349677745049104592843931001543257105736213978900158031945001553590010049400598842004054036698203833642283089889732863025419995610978437769177707421744923907604140515996993200091404569775868549168623341190490103658039338300358775598840173608253057055019438300748645624537682063985280774284633074416258029709366013349333529213762468201860859184598700172151681959075604273273626742796559631344170444661513671961357438897255715514674982987554238413783620215347606590550822625787016029541469993497883807626018666718882551661698248057717368328715268943202873095321947011365487061847381685122897032952324529405203403703860789751847473230607934423650807604656575172882700278818922919356752998650086413636884676242495236291275398501670226941605618137087867932051244764732455784461569450240111849391013137588208720875948136667668435915121575517614658614209404552866892601035073524849286365025156789644670965644625598362852813342997793890317951193301927874304962146882589004563859756300966170297096778664996989477571587705757117915368124603032956709927135735401575929143667633356899706347534886927832404289012581779338632820877634803687307140765336599247851768778216681161388828382186604041162956199895015940608327501496524553849376490643552007985847752800336544626549373969073764483602116347758571953222208862203518466663238492801536447791847437989829237086017229159746959999579110123638361067500244131680247478512950846350784836537904551122033045780991122880087637798764473285096510800652158431130187331806213449517881049813862365975651193790977296259014823699729161355968384602686231705614539075937210647211758924728693321388951260115222667854262134832181423756910167171974905280156592958920866564752944805408538668753336033627950970042378491055947921314002172105734876243047699439944084687989786226982699251760046297357027204746267440591343085049698222644039632200840148103758931003633881317900569486675208631599138873819812587265435558087603959336825526288949020944411849605907236537706755679424384702079585896715457806992833355629472525368702749354452833318209828057164405257356797025556070829118885030797168842613477759566501994405524046625537861508414193018530978545970207699571812209346327682045919827674961810073314051795032817749816474127898339330526458167109176291568140968961251831122613353989439494614230301185704594743842030607711790805661075599957290964494096089054900019637012348896580848775315552407988265461198280558731691233445733645340227006467405263788351347040101596186480619101866230698260795426901449119099479395440448060014224794842546728702502095848218667142268870430533141672612240387186987551404173567320252700784998954040956975727666957700020108696751868500465484123899624343646034137908532084329338332015145618081900928934542572064277978771497801547448375696576151001100232605328517590077357861488928954276424004392531382823255291109820350780067682600031170383886120423411612553455478189410608818733759614696238876800758283669111856617388159599662846680056328331923665232341363782535613181239547996352207108393602119979378440051984894128679507707017463317921381031531273265985883967562915578275285119785312836852488684154991398558326089402777670384354107897783723031576580072833025905838295109502969327166927887561223158940331621483959014940017283776910565738454657634112453304426364864201020694631669112574716220582085069017845739463682302325186068512315405840606130640549717660608341180322134511538577980583793495363570447571768395816961344192696888532979240189101303800862202343405746951601596900528299704750402480146340293446612113816617937771004978244594164367170717473651233109085917723585659723674103188587976798234510029771129584698566812983677063840587980213542722195877129241646251796744604798750036635188852042613928982342833341588366041456819335648920374220990113425613979170962011522816757535070637308422987448881215779633503896923957922827235491107367556129734961455413988222296370131068736697362987311332342306692421229752762964506225755867891659800318022821546779468527117800381336629718692427667247872976401116719514031755794720681229938489076957797877817982053645190296726591957931072564661892457355151685053123828276171164450259223412168268729611468997975040565005233919194944474367322946347713057086341952659513580326272152999176703478344211376786125361130731649398372961298113619553477203999570169831490918629373703955613185220614730620870478147033510264014810846288318488205514108279996185592486890532307757542530924753725423263536457803895180570413413577549645084420136362978104733413755112575237180811660829494981332248622526283923900856338208471333312094904577663898463130274995766673756013758514865149354377773587682807093385262360436936889348610032852604536531975525162605912418952535544859545907105153271490350850540116019615613392803615566982501800317688239258600026177442047987448960498484401235963858465836836398190667000020824980332185191424314425620151236638872450713272150878332942672074090893585683099710767709882109025594421672225865109051573029594902534452298292844617934017103058063749991815746029535501118816551438333073543407775255337641479736848243786025427969869543902620683782524216892091030138993512140003949563709472279510958567381783482857325470568141117053103641431717346614141504346131679144530870282201601038243186977292047647766899749326181140314647692765744178918462529832097175715851351023550099230591489320306845952349059207129208316096188164041668308523995502425224618383133703221321716534829572978295412175066129776949275152301883815094350207480922105692474336205056554546568921930768104543440808730640462850622583518947432165270155155592992164962953363665606076749635937218044738320219454092991102358925448630235414175552184422335364497425717935802250893694328761379234908711681257241987823696278714743592032181383665165936795020922331385573840169787263405955737549547522859120900911297225230297101621053857900107990861757327896121288437567803881931830579637286696603486589387408003695793456979605995256784443505002359369358481772668059312652807710477119895564197999682682590705425572489507448646656625219611131427867250703367861082489427989439588781206618065718150577233157327976163160341854468643661126741114068349388583418713899356297777757434300232437371494079910569995465000120920634403646395782283130961259860846518591004588932470691568566869063403402267966088903063924261467791655094206133066070898892683511137671463376432012724441135126397137779493259855097901648438856058989477838517636697046069353232116381914946965413297273883337328366664766434144103711177578820046832878677433405130109530819154006135239475893373757939215476920320353883550583862388647556016153873640930934758415846194247959402752218725481065858930351961614938671988010191047169181191933050278874566442721674957586725626478801980195965179730439234627870757948938277056523726844457205755905923584045674619013454582540988230151946511152370672962592176572590815752395219965292528394631168168615915454466369032556722431386429102287015819213652446704366269320905141078870070552957927505029172512136679883324887613534623292033991628063742885904866623872576308272937107409585548461815564446638450142575457080540429920445441348403240975239723919325301906755821974147421585519163151806753013346873787615323616420969589784706689049366814455283497514196047760480108891964596533542294776626531242079364140816313550969483215808268102069818865758380096611039384651888355596039339574646959604034695276767627788624121394643880755977023852992130875350544650489582003994128652154777314403897865027822053866993234350212376468582754558334785961281721742539623418211547836185343084838653612180074556550459370712565864619528465031962189933496043584841291041511568737191098668769019551954560489520671881642545277877224971667128565364422604470564207035718356166219165560975303627503040193568926882221575416859175101094431570489198199776925230679757204443457843242855480480095785110766536261695209519462299390381289447213643681187720596129872895171634120640730976653550265071966510250022000094519325655745580728154469599686739572568854239907729752330966269671127627243866594372137134973509634603025088563851694201512966072439188613959025921774049536068554713212455404583054530701577826563189414815856760570253773449329417888047033701666252102349813071163637276987173726553348321750986774942132547331461938709343674271925113885349361732885847133812202576721333084956791487824627213348315581329081099983766223031237787439435861299672875144453521012996361941465171053135912439852826637322202799835135902879253937081238971657354795795633654157285124914890929493632102375239641631758795926832289608436010344617894964637215321878472142294089012983747378594607033613096138454693943972709339847156108242991900225482289464291758648880474621642584918474807424535314788612231182422309470604229983850628130530022408332281780924809044960255516858517578326284665092165384683613738171909349930649861296008468022966368795166430706734880045118836329634718250827775272681256725517760547693915280477468540295597711419495527853368840596754398831331976791960177395497618486196854999120395381687706583001490738464372174833986584165550534795029878517527635709916631714208014275291021643074090023168548435373590142058242255817862982207571428278081590401911070188703017888841057889480666761002373264132792079155935794151402178716789382420094216165520392330718333250428352989982605366530843446438298505660826298994393713832132476725781914530174200725659595069277789418762661759630087087650062682581010817576096748133694629772978155485365880580814252980923815145113898682875612022362079940071366493013503119465170107088276242071487248771532298536541398969383011131123360381709600699749431628117732485379554510289988427874351657209593504228385286579390426624036670733114650552619130005524635188975594484591412210371822051860902466678774535938586024890506942365292511451775561835635113767678257737318911820482738882622717110841915665480160576104124338874313436737653157529090663061239919469211802492926008846818030127741718871337526370265446309908827512961494618851115103033135779065595254337227147477257690926164638851816820460492770660696317157557744201396286624430144293486512854766759747900516390683008923072714062240900018181880923528176438286953215020677338864626850215064291093743795959355729554477709364824236062135768706473411194572474928883180193428573701450323959922070761567512903331008592534642181883331799249215666737330547116381843172471260516684818492195038657744096764588801351984940654436094833087510850118567819302996270434781432750229326994920592921421863685498864803987092722232370982870065756212003832116462811055877613137357934538098085821547430347236884768458238629481908754515240962760475977176558594820191731103914347192701293064762606552894906003572812572804906019317769840122535096647699829644874115483659403093388615100381597173879955178358809899580280720451143263869922192789360147475079115398869751418600801928920287469589402288457662356430633129366520206250124113996645938092182612710650471433875760803491910412539024857132619611717907875663895904287878468714660227034867076699287342365004647406626012538198152529106658262350213492869132504276494500444112291965337289597992339390271036168458965238426927047703571109321228922644141819457803618743732549315533216140165295107773602073312942999725824174818608218205289825145997177509279141390244259861923610167125199153437278064345428452637926565155114717779584584100089788781274746839835486221468882793462809248504532647373750406970222278518518748766055329798337590624900726168745022449920838641744581655498152872786876063133481920675853941716975948666510505645895280705171903752858376392830932571136896084890461746382463759766953199479740806936116402900141330047475382898890247125704783124333382088679812021484296181871418322349415789134637944345578910799696890036963764992296748293036298689103053043639530194185312519485964653448034421484878021539416840534917506162607168774414786981191132987126540604538400655957924365070609454672707140583350778239769680928094825247897639820542643248030830826106097534729350828688112890203515880458364943491584333343078025379035150162972640296117841721703841799634758569383771132604706346831888754497465692460855049430351504961518313545448890915780636220894340647695740005673358800933828583763309851212880405088358346307382414945151885829547968394141657277621185510155293979932514193202873283027042073513113663141567197469572475100098094981166492290942080420642345305526640019246981116573913421850632564879191918332162477822568653361470550931056551259018426455825753468285818312122947112822996532094749085283738023194191501218071841649759243803747570291377104327755690759097071007943251578123062416644963222209357145713095759897816857322883792528121151624183834005655750150980470547592801038756453570358952570962556856354290222958959931934080404051185435552841817930944650465372455373829573621004959430428812704508279049843368347554399772909882399908603749578380956368074130906384863488681572264161117515225165290738207002778284335680805308330384990320325693133102333014249741123796160343144418526723985643069084355795487277139583235463835216325236746056624734768681953154926507683016817643080612210795608345884381989245736797371776274614699209886263604480977771170472938463987989519023939079822316346596388018777235834703504913512967815436008691575764206474904456013892548675040313222871091059557919133821254938983654420974577392344608037369009500190451755765457592955677110800148487364971625170600123891757598256638832873033941680633164779458885731183079854871864849914665032407219138080453933288841299063271449345341684025036065815631854414444683610260384410461818976399715691925937013673055041230654842961201826651913217447871872314584844652672532963845004485023742953733662645687257337455262073329423656471453127625715661984971728003467442371157120529887767226800516745434342791490961112646071969463151703790655847526426302657258366696243507915825123920964743321069298514841937011704266076539057521678691348590521920678986673125371404201341054361664068681619255140084777098614355232863423385234380879250624958215905331470302550541492162868622287417205125251870330516246152691489475041172710317487159412474512629936142264465686071607288689869420188372006734383160108712235532559862261924328804225275397011263653096652093225713704127693437928964392103172412617772457293821306704601730650327404077183259181104648983570543566842637973145855309128363601755846947342371856415025534156524105734453902114133746142813165287941016387554979619844528773438028168586729133171862654543906526841260143677010513556551156644491128860788792593368093651339606639391524957960542066945278894140020400873004501938566599427757079673498799263958661477420751509333882996892014246187956037393722320923633689623109569240750461695121125506056946061619788893378042540705545183184656220902784624496329881052311240317282965767262244458884976608381008280742556778011965334371039910083533283959707628886406364690185176900424088015655187736117006545241550169438958319663839119535673571822906834589545198978483394263810151729988795690317535380492923044212241678307283951902758013910181979013184168749442499899903709400826641612123979734901108119573650343304563431188996557329741088183915571703988261062520346689871546462491183499946037536353137559910395790806061679363349492417975709876939947625050090976857558379619395003363706873633076844328115479400508425616091900549461487027663833355784626705818651869103015253448890167623609084712333638897630998038973930171473341669201529736146514781560676319728244237979523936942450872253557442168260457140688036081602534311355502975792441952818662804895300746653131456493972710855561457183131206336861021070088373743590122177173712356266574466009926355576911533113799276685250050650477907344852884230891758296780210915885386202613467781129618319458434396875099790941998666099420800288606730715246685093957043432357692038271449467272958157201757943517202281803312754956969830724380960948763012046035076316322029411262090268785176006310274450153875081933523211946718191869463513604317470044234572153067150851966390403229213058360243181299263028033707101770672115474102345586916062600294564951258245442955808862527326861485232018320183540799713056835974982914499985505357220580454150604579518581413461101903595801817247527090697121501968557234087832197056202803692771431394799569443892673957406366912953376759738828995342381521452047959161985622402546396557388758848931354994983405616114137649338708191402744912002146209804737041392471545007489943846141936154255967532588679441215399481397887109045876394466468810073339980794469216814108209402933109721743076047397460648753317628357791350245692567571091806649163468709021792114291202187483161108989111719631137368459408423488857219601524891276132840766042495287546022548815867929449392373905348460533936638283695481103750085988924779806862642711598796514187476364453741667469599827592710446968519144697061958290029501657612824018900043542331648095780431258281415398803647850947628228704857559997787926331436372585568776047303871708616472563348823817021612402514260022064174841525829866767259591503592547843774300304512208687742635326244710743206610846460569036546779928404194701303848304707207788754299746320422050374126426995659309257908052950308794238062719556287368849612204840584804652115353266158065045491067038051523118364070214917278383021884027625984912063153580941267668437731261917289281243996544926538260366361109286622224390174652325304006263155679266222056443023294319847242884882676157260013128061320301178124303966899629893703240550594071700900652187205757852528919114791072264659786352079216991785769229078587203424912220281591049417422953214901829798196859616349580954237785883902019082204805992357096839259670950777627496588198674957983213459130617672934007639014226738771593835743447213563496859732392628914393363775295181799581600999894267213584015534047693829267572511864375871344271634151859900865587799622500070064460146593687874596216193424582837991578685730447397485436171750982226002269370494870055367240262189284404237545508629039383500821697212956879924798813263432793945920383320882036694630481125030923075580493398153704730477397128150089579779669919534052471289935995338014266569834714681804875697700274789149383692151766869129695978384822037444770920673497327816055938751762849608650895934833099949605539016014742158014455415890092786349250295363777001525217823955323223229566636320454587965050818330305365669838013508154714015526717002490686893484262243412027253014243579209636889356688345576635066549863775482942782890497252293745852198381477651838514801098794417829207467361358222788619262020392775903825132321239838080477692259968775002718686083747571672848033456638550362535297199424190563727619600601009209510142865288168016774962207141891732610672767128690674270452700400594772654314895681698834005074643619418424438618896691022739153682899273565197886074416905732116344298149997118326274344818032162728555887840969552648199832116448273075611506835969209486703895726104469427641991094610686664084635689031349184706206349112449198607743342647452156241043072026833957800448564686013399922978278820290996512670856604769128643061007886468989802938482620847005713207071524970364136439940351703948065478742094116024728195354628411541825897794116486148519894426376907440413627743622687108116177424308941131464823769867095758984040304674735503219667193146718618990894781265993550598607597076172178941451562599563348575851567923634737491509427005638129093521354722016571344615105794725717555999993912366266756793762503678639254022978167121077434100313382907027423856155400589737146773466428008648155696869277055259734350383742869294342286904428103303040442472351245991027575541104571476964355101118516669458284469546586803886035219468536536831891727696817938937672215645784672328263422794407119587795977365686400314278457195918027312399206398997815166821236579255861288968440941847550698471695711815059515540626676620168982391572928937674394527363984404232189950136571935214708266472199066589918634162255482829534758997503619546367341709455421358693958559084099764070083631027440865930750585293475161822140473966436638813722121608689026135692124350362493111218793303513855692479265763301283501892558314315684664296826892047239943454420465335565277561827830811128582875657870024704707312251897718943564695227757872840011856417778555074124039181764834910002480790862010055073991328967645609737179892645757678434350021083229418003159649934354127789187920522891366013534555154017786192500178547251645777412802357980433075641137598070631618527283096038038071744356604966023780422193987549297366135921872017348747177668735380641251390636432633799073572344280820219954370397253897258662357447197229316275211416078647177846927381845883494886261024561472344638279618942791451078871084753193655804044502309588996564789571406423320894636518011967400034213891031594925468141806874723415346922606497429502352138319215499874346752624924093056171972259592656118802476973983403951292778137294496605842833949441073575418236877943453298941472346560931594937892201943607543142868921680708450641336203485145002098269767995917476671794821113569047251937574940140571961268524599219937567748189762189255285717196380289406754412491947103322090537631678525684585408989042504232610396334796532084641270585724961739578030025093416734955989176852779613752450523020695058030232964079321332284159074032577671323060193703925684909953456877034103161348662426954506599698118508655172672465937562487458512493925499412550946708896578894809184018546458585292434529408237137444117210872783839207372829751180123069596235105190095418653666656226315265304643309923143857166302460575173646058567101608409316863602933514961577034994683986075842052790418386309788342128760887137906161629105210938648660203623631452740790562770243598474986052886242539100669065715423760417603893493438172825381887033316890105113305126968752479156804035191190206190754042295603167285257822288274948577861730557362822439681522030381707749820674861745492779197737028502789370072559290855069170459897520834564611125638611651554833911361205601748096050318921504997239516937316303238484285433572192575080679121233062354416368558798167107784363093536773950467089445345136194722391238900859722837406712037064710986245268495947258111889204182200565102931808777688401171431312561613499216783705590346305561616293988711963587910204565675213784207986187549210812530563759063037247607366258691815687114351557813018765927004104361899163560944772542220899423281138625251857091509275948734608159658617774247500872463274476715766232479656755782162840394243575755585477993969675098203534419979896878693364557172725292555267742649812023108490045906835086154600722105635707412043930545892064040189995001647441799890887922457809754274565675736535240550428070562823375031474110774566503827618385223513001723145936489903937555959825537682096351500238817107085983903247762111553984218075737601598677941850382525046241217133953888215055453840688140750095270886533764591357246378735207494316140435710030912329531249681560589520507150921947117150528035966236759846222993644367131598542273391618673938157889765864149030005187026865057978301429733880104090458703967026352665542596307374100119516978219933607490378210197456157164212631399954586498531110923445979768203749610871722272328027236267449512362610255049269158738783371461464273765760878211862327663824847232695627297256305651483918158786532201919750001926097562855101286164902819330260706909365372359311999844714987611902189839469330070902857310849461312212580387710742830984247920101839582070513881774724916871953705867784572880469915457728243376500808695622539260181497052534519932910317602832596269918200273524415780063145544719367816769824495616144765473579292602613778956997155696629947947876314947969730917981085903494777365637085496611683791748366191869063579170269402320746029688936842625227634051615239703643478130010125495997036254118499854228851176644741509850548170634595883683238789042093145278388327329858955252511714782941690250277840440134648591302516598044500619900787217262683838621460212493640397355996087295940197818775205524722244642536151267292194665269505008056434349569879701681222097856387364015966897407065574303401306014215875700247342048257050149423417036928163901135812875461322454456866252847421112719656016150310752166764097768068202810860802351947714718740484388764881601050082749449114097418267096628100920962184857450308748298342476961773734522511613991170576051637231916185365560027189211700323466777845017304346328713654361041029948058645702809019563445679877692508463940452940804116757842207174116571640707256856951821166392421013416144327035015950609569618724042737065365029986153559058720540372125568898386074107125109036090819795805115791786402064277775424825400864838997195128012376564848968264164537381143713092306631382441681751583024652671757075865745865713806207601037838914019169685517548885662708170269144831154821984730485653585249722371081075522441636624801006006338814464251895600678582281336753311769477943201647705114454414485901966084077371055434874059317499933904197009903901392641493796056463372449204008224358897814793962444416927985816443566217698797803796455477054605036914926029786514193266914720490842904088757163322530415695558823200613933901368499683941438042000022978816784569554779429797450364689966694414082710214237682568046155621164063233480408964685177808275243026461156914274778954073956587797154885920406091166792507700648731044947921881976060060656611602975514490966025362459997504375293620770596270902054073271454641567377894518460988798579319505846155426252240071128972252690872675990542169252602280941616340319092871173267752682330277287989431489194633547358882862589062564547722446028163640114670719242500013960149461096653675177844544556721953312825641518865681532532123712941637542788647802373277049774649085003841825574420493269851318491612579905270925881872307363042375471393180505272268125342202855294281150044602643199073865205227562894563972151102295812315722501138745438454359907594596414940249931459266049436637635862632634211738743896198457612044126375217476755379792285882175141008042477395009978196281347462963065193237711067848748539563273636918666290311566524838809534136914822952317215146563703202060698597586803667733255371051047980069429596089895852572835527461611403004840038861507793094160375934737964044322560488192450268724596116815282458687364006785581530008310888678460406208777780377174219102255907322825550470545915535519636641995889823791372928384362886982424793859144326960381293598054904556441333103931197261711636480967951088360870129552009234114529095208843555421125229908635378245699615070034701880294400726609780198581934014013030375748612870564886915601472479523910187476973675124789360561325978384151760273066582177777990379087466346434589091160715681133699223782971319545578245647665260892020717872304448813592927240044678034742275792051889558177782722230950572426196046682622043210209066139885405459513505104615554780443616946539314488646805734149610754115732211773801271502242329520919705223716000149202336887444884412977898428843330841574199012840902953476136440646140208657969434283652958923342313471837279169677779575978627490877326504218322270370081491293002778207308522455568471504339050409011466847656725758276589832594420874353647754590326852535984633265277486424523990571586285480137485947133842975479854234754472550247524339396696409878769544334185694618812454359013920954374049714547873902392908948011396923003611483085429222358815309743402473409857444808827579258119820114818445829070741921425212927257048168852091119405235784112641564941877101411812706854136563062591887976882799419899459916098295913034630365650989340996817196018679348875327277536835892933885300800949275202631386562523133182371133199318489463437850911226252960662205075830916828213320050762334621189852398350630704817205308442173487987085338887516991909936474548710911761193041948774515314272081798490736316596701924971268875888197808338186386412530725216055083883434360113253536849301855220110302027080765770061061728157726398279695644712703613520187023667579429842162114574080917227794885685886997112327048032094980387350388666249284543960152070128508030904880821009269162835616403183880896548206844780831452008890843438057339364157188312462384092343001540663161406587131081481278535200815922514549061694921344384352523423550009530556990818304267672938008276005294959828797667011538748546931848982264018351885972929172345104408456746446647038380603360142708085835061223892519924420678284869453676166377968244888205338520602525665052803304974332578455202677755107636954467436622804263246955209375117930890295863605511402266499974961835426915910717587324069262122067630595468590255927177910350687189925600418372946419328568454431385369937331274754197649881707388112968059559454919685269111450712876448643194724277875743419743313391892001072081325495833535814233897039601852307802704514374504297607273160349955573777927183753611242299891118838009998739915626353450508556750717433409995431087100915252384221689058391301414822331156870180457153749742799171014897985661192524466417162320880355525446206324410368565826117448655142148619162810131504269893439905153784842826234709283550391110499952169682631151082593639650733094902596390946545842981609407942551932829213622240495747092000229308064262940446182302200154870648281855283701420111391082301275327939831309640489399870454232781944130994078235595676534930475608460731352571779632889516062898488960260025321214742790777779211968643252242848328352917975606639114791145791136086926485995669848313315868158202257419278249594941281138379384179229677830952849118463300657269550183222780795237362249278195147339008767718652593658155585460077487437248950898366763560766359556657367573160735093104254581025873288602049754339182319226540359473565862063999719287065347301798541610333564184843977674357826356634754305955123824846761387974631702797579179187187247941751097183291305351653156825370771583159995411740409154518642173006901460559416111523248264803037401551028779785168313620274250232831870857007497943293922383745215738812356576658261266182903419163470994535479632948170607228643112553960864545786618522014258652697711930055323878439134428965733421325687192048560332595916043798616053319310942669196512616804959412473751477583010333854662203196352644141522916219425421429914639151039531038406015576416971454640763173424725484486267197320316732466685731461185378818557221997318037453795805353941979163301233918658041192555553171987309302638413422014014196928825277962217999458712785303915834268375137397162847849598092543631339944599644265056107390461275317684881102358281705790602636599452121992900606518075127736147373089849567795352881975114949776898145624368771424255280540714982017813274314106384679427365098424151007532354242651241806236567966214865918056212695188322115486622098034130660496573600375499502685616679935272053018089108849389729522832930201538625880242930970784780646751666349893144963624469946247523637240378839925790767146323167553681219092092374364862169252939941543036806415759475379736548862854592805765133352073908677972007853209994805780673008979011539843771710184848072832210418774919021609919480088147653970018452588579993101247261183042920462733536663071807397392572645696782074894637284787956284682047528826924734021306776452509963253775383654805475663130963265473962577615935120990225953475237535727822362088424026259710076188893005711885233041854056646951458305791021223970908707425005572195277616024729949574703591281185258677994455206945959656104336212464165157817157973230789265333932549504858825050752268422209218203954266515464977527922474349035709700505100433848971077101602903456664471009221244312616775778832624799460728195524282563895802588760894467449429942195122540282186040115585504717713574049312240438958937243441756003578324871676121649602511554606061430204895568299837525067659986372740148395801241478282158929518867859687392161128643655775949866748591015991766924584930955705218321674276937283722391904956252414402763981568698431843366531471720672598679871937573176464392724927592040275503197206150409830651691868182775711051816829414036133890758083476290701484815422378105959912663715603007588154947708776652729543697013265111077806502966760357788605528290294193632924775463012156607387116602655221287243493899952244564907532710925499946270431154869420777072195150988651601236417149711013258816099647252273376087266343114761822809656959336191382462444509414274102633266748659621141032233569824705143364291798459966693488053149265544116157377734345073962588340511601182472469812465985512614336333501257849552655201475547603078152174309000278964967114746392837928588132166103567781777082049856033938112857676039190809504387493684942477372999070647672247685055843550163917024139891518529176931647851689427900972086244013136031999375305341689569981493737175252976628821868777063923076526885875871781478867217253392280244777985431592934414043775027799185148890750837423992851619186022961825840148880645722783575980932047102066706913342436512888823566557546693465613040019988596569948559036869439371328101154300574346700893064973501687413235107404886935916359834644151832459798197829666580177086980066557569936540799774549111404358865902777604350451131027663815662157848685901799848770750648996962232455178923499222267007911000263853111564204360218326866766650176718461866271859125500964412389636493031578392246131308123824074544899496966288654389144942533741991205405952795967430155656195158087834916133688159317317947620916404527399219120498893445970309698220261040738486477495754807961877387480254473261534706415037093230681927824682826615339784844637200673046573045214919160554903473287593569305207469098280919819138431461785193343813443477539053924155001121901285357430134954583599221470655264366837067607986605828150093783308311960893187390370006940649793323455778468803585937760438084292977078085773524024025483510605343886710009878954056606864657723003533785346979414966486574079972523577896887130761925962015505380446643085209131483567145602960642977792866555432005974340074628244815159368344704677464345685428473427875075410023351815905846969528487305887256627344316989462391326455336572205251801523200146028049616094386056833591948299408859287599036791245834356309807918033962506592384800390956907689213534024902197558544404598890879056376670485731468855558650386455709690169406051558378039913162701990764124072390595928904817798011734827234142288455281057175875944480392600623244633340467926530785712454619019501050544187660457457979381796556849712964364080054793647151555735728420764060837517774732298502732758012779901563284903365199482872103209800100723220762479528834916572489500855956587755541733866750442285874406986354827570184582003594652837433118045118502822868121675681778161340596635246013858998571188114821935574101938089693924717357840207485194472242941158454126010454810121347404995364842162908870759562682586684591872821352201402474971569411098722772060290884557812643076158625809400646765248842688421116655232694135225170740809498029861590509621789331003641907844371378852568128546475919427062279484775591692922771040899899735265393371125690177283978421804986819804001002396513736837477403312574964511280858126949024827193085380452340130035994856935969513786294788532820386110863862271764976564884140560324774259813979161171930585478635647673316616478767829108430812394526178236613712172921493340853975843543177927509914336384780107232647593225587949447446015797783710515124142558471352692189193355156427897350914506540648351755669395477191463205960029244632644243690489087904854070973301179830094138366579176519127891727214038765144090248451480023936974388827001215556229919863673535117321225988319101120832760666631198348755701396828701885378849380818899838965446268319155559799430931107680798830898629456151109744079618314837177297362430820414219449979876317289534412251817495176464933645095068933231264910386561758963835014618043080529752582547230057687805440378766268711415095853287073096113403533946347335858614614782758135597337917285612672795187307526558937830798126661223463444439300303982846469718295603828318802642044258425928852366191970043859802319590344584801057372683910576263092292420066192767396487951468973821065016476159104304640699267894461074264884901035340373360103922539751701918054826472159835503715059509800676695451333354967342977887573388200746513621029365199967510699286613963204594447332855318167842181616510064074842697710491398263122863032858266820173889434139375315241668601780072035884026970194005245777890990891391738887107400287585080548273810645853279808662515799416561106922983696631404155949312222947693830676994016618738191250554554817159215236552160005773204450670748501704966683188471532855539586913963364225706043449666769754053359994342438068458385992474549330416319909202304559597773849096577701806481897636818571128853364503676116458240262427723322301238909348915057353295194403672867603333912619486331807270916694137250803443426219394494703301091004123999263564539102223573027468293839768672812793193539735432950960814960477861025560196875730597600338184701330743023783271823588245506172481434072925263955291775458679280851212730205153968261144912837286498772388751151661718277961438372271562170515393836718854857226217103540851538760465667453064162708767266736912435446027353948712431409917701012966356399857401824369647150028488115268102154224337628951088789302286709186614145960693074235160028447359340200177583148580041201576597470008025204372577927201154653441241973209775072736587317928052297049441134749643596439698505436723479116141622314291421650923750711953171483169527866450690670908228285974322566849453167857907694956013536833814979118970990581197304691279304624522035732579346384320462234520091567502869623223738016541811507252913919374018930033124236064660202529870848365904321407716362023357917787024046963169897910451005334308775325495213926975880966419815108416579602722701561755471752755128861609554031565823686628169520415052614535147718631394655134457600633133270270556792652267243086076489916216526354116645092814035889479784464861646587952505062594454036806602553194020067929198735094101242288490187778939221772723892580218343631729467221893405610108513441570762814751756380251163399953798758206201889833264186247306806457453707081685839776415487420141873996618837757486815620844990346046590821860237151686718507681517409294675369357432590956316981723420613346137150257862381095477000306334135312791915046376576077868653144751435467460986519164445163722030553422093730694410037366102002620909535882098020019199507691902904698345809784151588418274991842422794844305484446218271159830243015667902163874829240554811897169264040125619623360215083638708927673887627707833479489632209049266560997773828612406835026425935250048578800011050513284002100845987413450059137441075926829320152259993209893995052091286385891214409339525201277417737719785797661527980855362081785532788452746266226303094876600801236499399096536748753438838829601639715554539999947574042129945088001105344090985813168767845875507106773000105104933173133755677006844148255025129942340254344208156837372798148103538688241025033273959839659885705690766681088363183588387471139689057325136970047914001393018164917330613791808042985367653328902932815932283102604561320996917688513372786273653337583481587623054325316906887268730459595461970466502890699774854743089376182206216380795481866245522289461184055842270417250141414352732157225650343396393526153368131004397457961816715184734084767117499398924730086635777018090872303788973810124840892853622648790648330195695763263177412205239021278502476275479155048222408212151984189374558111537727258509450784543478539149128997783549295541220600177091132352142115423944056947165659548321161094713892694110511344956360459336197607371279760965872883994756782069868275757974819368784055732527661342201176271464384604722604366783754573795736803784396170886379010732316123371579233302868092501765978466691023036535333396926504635722140032899070103259035303655681666387930246894455351003129015505782637113053428385939358301983803352219701089627128660632016083266482356759797316785434980354820059027785425481612780912848144941323217800070268147044756798317975525308416402062563969916164078230237021198545379124972727104190744934622928226459212432927307871795911753825754001980502067711281628324179561699570506012385953996697012026938328480954677753062977392621296244658873413487110020010194944114164156616488893749198275469474110439830452591773991309002104177995507464994314044241489270280168446269551698541781191122253479269896267904311739000203232205511285257972333055308056951491790043636657161238535409264296584703157286477238342301692032955156818445100129089886202252685591134630907232220322090300464693306387973429457941378622199558328634202706660034355914293706454786848972672479040884788757842519240260068377050324761897353706817337386515470450066688838941476307037366996338483047317220924321229823290274705796429265074725971277209695867139005991003843177265509923055287328978567546874614640016058785433309805786793360160458176615471750255673784443094298059314930557420227306317547286884544650207173475740749420365824380989693775979758360674242103222933926968461229287143488808157625241906802033077928317423176034608054064703468232275479932711887417315850001051831197054438641106763015227442185717724643739625535697518549804546539387123902946926171916112988301278719623832780298738473217346952257597832980351181323924096360057071420266935136228666936012957100357631459978087920952459039413428918835775192805079895529118091012844295771788664508232180326348122529783280344702959534185493045797645299652792537040978127514763824225879221138932603101695492789588284824817769921695712925949232322202964869116105241916736041035622591380132062534149055576056355518648117491331944489863415610608983293892986750395948328709102439110962642965276736568715504316240086106433777531387531419042762058615783605486544828409727474745733803673122961328758039870858947635299103516577750248468645093966375873455303847322268264563948554513025021593449229441669988640939207066399263429448515453995537062629268489637984085865549281403527501242728312307985128110754623123215874247491595860140656537538667687994102436344192159809734358821008773951867182226845764085208296378799074835346234714227615253887882361074621295396490402526462654988526451688623761480641180142664721371836498067073291088745336880456158082422114687168868194187503345601599388503715301029646359094522765306883870316479069434499864637690080798363955009836160971629566306580587533399597895353855280044733571873909705949028676742394041043087451260649600395914255026309034065801120100154345400234352825416309810380304713406321560825560282324813523668977006905746362417362675385370311806135820396759826575104699896516357698373046322847571074676162396029245656656109496201049436630977515382566303015395017656273913175987826110919075044811082088807771527561328931823729988421785538823814879875739265485200030176171572077044596723769892025934588819733284884915100785671335287769198037707432885083554732202261363522092854388912689957398317448933979672475937401645326083603048956654406485700126029667311298509577637461330823414753542469467501686963667021767202009284804268233469221724448654175656346658655179881278572077911939631843345795155015742806811174324468709988811177786474844135392269659623419699112779769021584266844523241174890731041794297633656342190099996024111325888847049248862761488403616861773871432872101580710165885199472824063839098367321223356716395680462749863658650542067040102737277471252134938760017110092840344982718223714391444602523332270968485676167942258220033782172883746565264945763257702765151725648448833756282485238796519406551859335126542678549789294650146494138491143488289358823238072492209111985512785336782248470022695155003952658002237775900843080033807794051091197734090693349834338550681457658062462880241525422754259557405108382890928468032582903516937136569368370293478930653159531247040046583376208163649562607986712409526573677258734247414129640010030702963147377813614307256444002087028426746584650932334956192219138937792659491499122327172638019433030881538901114163639589519907725324357045613270055461118140817472645881555323020267970191947421573976366060463246718645193668789432643858358881467449371025288335755198195847551040342924896618897139333369449435481502502807391877138754703988110079549316267576270634265181739346645857253484354121201863269440381910269738930465413524487557706545847706167002834809322987270837587666706283054823010159250848445894950348635376369815747113620361475769151782534795431365643390462958144995724644064817373965536187054264137199599490246492511209344814595347771439439668749794506987026351873722477203607743977550422410159273051346101427239327159999054913313311730650317594251823317332478203708815797444716361071966710233524658885513839633060693047504606809343377476160961866277568371386112950847772711650361894755247205070693512085819328609738953131988463154529647888442608725235790520214300755534757944067159127688162735102439204261163315176940245607375143450697898884892881509944194667765411143863774703472801770984940155225635821090970181287104804485196797916916660472974123167447078714983892780327398462919723228330350133214424308878778890667362457260057339379508579945862670092632949087123890506831431833345085072932242792986954852814031936748954032677614256904633874963915659821245559980915348078161184517791997116046257513111795240230234387805775920575520804641863079164358609040302250505318127195383612149470844176752105026997585866847650304562918615573475159031438145931673523049971405706707359173638105540766625742409749256939400769991558255015220795726499602638803286287571945225680141274858950594487019476156687013623636382476869674437510805205055433833495480403255900828764861266145044120225340950207207364457077382468576334266821250543322487536124652737376959713056574182603320268537389349301060328312857113036258685239834612684790452754839226474052229183169763380254935960725774990518050882827760563187105483957541300138311853890607243260386738499711213925750263949334567915360385073339106742939385816251390729097596890898308938267719369760062847206447146747151948537999257608473263101047582051588804426989350454917756753700784692740397074370703756259107599952489033190918286773098844390514904951856530721631964617142254476062399636739779825762910448959189903546326305639039307760202581226510578686239747002402865151055293863518483897431686026012215892460867069550162772495254757496678154133607696158643393657729126070154492076923753129694834516259407314528592124199284075893634513008298875137358023493666412625054810220335183560804877507761072047757544920575999443901171224924015628840591570241291872911992803937942603373840419791578718305249991914549216716159247445042515587310385429062111270220297836192714046144203061458361985412813870655034350175646035679549724275326830941634250267437749030645415209051143026997504028492792533092100074165987413982279482502688940083989168745028279428029307719863741749301883806152483990576044105257249510766370245863446338963960681480298619864950253426116370850139956823592965496830147264426556000989624636597764959676176674417391795115141949319617464326765431680811395013100673459065828058837816536065625748182600939664607336599501365124145178587093982800737544370559189773961882938565898448049161655786360136560314276341957104283677869141425210964171755409471485984335562372300887010816908808987607284278289692726243997086468126046833564838891808467671489288655590798799998731138698500691887409643721634220720655387855054453515989825498937194832961638053900265338929593370266614231168443834842766143092820208588805265967081002816118334598864421902571807145936956368415849562832194272350229108697862114857411434240693251956621948659259629551831369569963396292365029180165200532894698326238228496304259005559394379187280505455197406061061728849498170041228990860960967990106696712329132683847341017618533180401985859202445947270642005276119571731320452323353080671548103681314542553226704878782732544767699713848868726710737720384060199106289196013260764030568055906841592754865109103845608267642668076502251909718366253069642070740721289615882114447469201834339934833249788702404029219725682757121887042222202561952077529379422032408622179981265346490062435389420538634406707956653315746129400817937576079822097241059818837531074148910229802409556958506009965672648482373716179558847476133360815709274323605000340221325185558552693068956878272877346294800165202580669579398596038730106456399202893329618142483706041727604322918661130527397561190007696456533909980386229263195632591145877640933746121489871620190080569476527699085736679791985326014497659333624875708785144968063887709987266783503799686018861277119338105170534654125859840520900444737072341938091940688190735519659076463792671433783551666490779643721134323740420471752613184454667148667406971234856582154486536866499779780518872501781072394252578266676188406899598040092918627262735577828432393778340427785084842309697118946770616191822085026495617828824736852418923221885840360195698164463826469213843613317140807196917879866594183073395477468688384158953589497411460887311730658217680920343212555123598114330636491769932640866559908820884298969636426999287798709696259789851163491449944706141695869815713027687071705449093973418720660723595472550784204289068748752040975181939026191224570714628862877079340481916492256004681281305162521551962765047843942288247284386266122254199967273587074121984999220058156166343237200321540231521923920955898115127970566894102246659854108725783619736869147682230753672109241363543898932476117329963790183043101436706932268062417265416318042348156227382378482335935231675088008980960955200058293960989961411469864621586261544505798847864592254765909998339911942036174263970909199121579235891727276414522475611978809326405089453614099335182205032454786547930191407053669951541545951259510246545207914539861194044080389505726913290449476641590888883102852765793723322948109827929033964964998339258648222325983223856937656789025804699317531103557736607086091684536005755469184397010021132635622415348772270287893941331253675693060350835315810919161313033652917142395451137967497036873094954853374643798308226965180808147275844840188653234926503057320896378337628990416692611206541018584068158800142573228735387025253360465018083287461838802711317038703979814393163146865318575775108595518020589155491044136686170863248963973244673526184577391974574459049563707331731581193720271765777951801579662969751050727174946165599616930962151955216090503243827869212623336253962627217434054252865646168805698036737938207088783589474899184075241543703633124731012030272349574809192162123910677070061809836582056424115908823737060175791843610112646895704168890034788573935748901307647250226360398491098652118941398958647878812722285759898405851732600038326571851806309694576854071985147870494529429080642047543505667725256443337419237322940422395061216964811207459293389524078042593979575586261571038332617104845514912836815451529527480758233667767245706581944208424904906988503404293357311123426636083665106284952706844545203498230558979233069095960220495266969762695287571051320328590297456133466429942764000945472574132394865871643579821803954432605007651741977466502220124528307928580215870768638923535778290102669135460549189878022083212869990977721577911163689852396103449125153732990708438678610073519015423067283044719395064794686403573007781532283882890558523868059424174872739899969330159251278090546221839590109043466303076629944165782677983379103337730025325866620851511539287962192962102413190623064810359739849367760914325887907062286774035715325649081996142039123764901472698699690620012193533333702657385938673033552124321421689666483879031991000331985501489803987943688190974891879599552061953345056052151276977089692772098296162822245276404093805549078063453155186366668101372953732556031601162733844178229860876824272525415062666326479572182934382456673120906546505831381093201626335610060659967743226649018638615621870932742420069926325781133293909499605894739050875834908956319596631279813403175789961281485863728031834431627898971549772405166076800915024112906985677237061199520790533246715645914182551874512792121491243921118850754514665162073893141003206464807506238328659293859977677241130609192660609791312115859936013636029071141785273551657753281734481163679979393222582407370027032051986083467980279233831839820495283798906596095515263866341692872320106309879130238187103605720269079791610020074766041631702214108190989236094774130089660982454643863090481545527793842312895813200123029038738851078850033972113349601522238773640723589651552109869024334672560508433393603833452719537397872229974777969101020069103671494866317798486081433662028236994926909850085684659873046842742334449075052287706848544333117855885792544881530936071447300453802651638925669642567124564164386757182581200863314582554728590773582475708807778300832293440149559468710857125933656337600117186268256681565279673226038133983135228003891390198432830543852397547478026285509575727493039367322182799974527565890424992009659000141999625447623346628842223267479805209483081187705648112976043790789647220499827380631173649169905149294160071129070141952226290242506064821697394170300421394213419563368578378233173032233802957844118570158372569866925542615024181078815638310897185300090436565771052331887558044589365224415508117448970071897960013567267411055231957804717498037843686054457765506945157084475942650464784428444929213307921120689732576138336401550818086158773783743254188270114269188791057761694584587831709574141660811387662245244816348894078689957358981871709578345149692960286656687170354121050842777339714231675284375337922618759467467582037490883191595618533936038683307288694778466793147949586016922184312906082689774970262240370959375257687785331249316705193512479061736545607417912477765871331126143447186818053055632139790290362545917995809987355636843513851010925805860938338973226024292236507591944585214883954444619412587575985852165854116903856772417986267696887879912770688084770757587539448866737246159293606655492059175851658473330107643897252295103622143911535000473405554631546782168104119389932732235293944320229126717605141056056600930440686307372641154095448576308740663191793483150695360642815850533580037084016761322782839214803403324550317771811204074511340392736656887519976778850750107882083630873424272357908741480826402375481278365292987696896159207106749942128828556064152338855520779050057392907466406552770839999886716687497087814915740300386279447500881259626817165543531490629215796273543393665528427549765456049281644673853721493962483846558911810828085236591995701191413949307362440135757696137889919451821173946083425768899932533080717617769117848573312680674346051768535561034466546571532840803119357179831781171434738331035687339495487977308354220147355754301690670020735297667564612831390103106660245266787577340061178615994484039114668890866765362510962529075398635086804659269555917439405735486994052325341357224515216278857447359627378608365456584508036520777013989076334736716144240211766811589909410563957518900793228481958448987974060485304285453599357775680285676191083277192396741021728817531492602091104511325894815946336109158014702902638620641795613443143379052805608201787809962205696395787200196229286773901408812734226763453152167303143042681776899897434028035251788827692656959364438375045501447603691163293962792603920103690530882901247683018319033554446896933828008958804919913526178781980292196100655276176374921073620555739108673814778266198767383863243918967217086042077846691754820961519320173827407141455838912558779334276151981508243144904494718316955235948716109190890705043164344585126597531641182033288873812842403384753809698209221481857237974649116415540660131962803351011189748343548459942669982457651434989438391605377187406864484194153993193556523386093508259513950416329543034383478580078854877258591901223740905709524783067772438043209223212380371489577260693059287941663773322166499412033187195648147637754163288782624030936140705051718108957993571518878282582007021396763039868654658742548831150808280738742157676296538127850932097874526055527434105906316603781386843806869579632784795881494349536525353049255113234371624536728779659160763943678655381695454895251583958037929120824251736499833043071465240592947112416296433978998738381522219618975283551331689494740275642118731001893961948434044425145065847086894348220180906296646569067625081009660269363899372990598222919642932587446426389316298329063429620597485139286432288350786277625824349904503523182005526483896616040898141152497127470525746183939226705147765069164160104809715950083025023677247013573271157807845800046688760810317035825233269669907510820916593537168013106955364913295494987714575419757549572682969793958220408380419563764512452322501628972484385441024032234206307449408850814839556101183628896083237406938662742262707340014090875801500633100048343006882557806527690040424525309438087119022612049994778774246751089723797101831485066855248818310488950590743694894045279813252900087603084208465277706517214612429742987315082164951180929064656488316820703796797309005050055220515280082429823584061277568824793708036356986912606206728339187020537807300018867579263583679531097645143668242293857303673845674090080150251541695020497295568042246082185749480818713084286094931424098977368467282513669679860229318526097482818464839687969742936424661751663759376323140840029087850672084583590191971836113416836020929429937224620247860746723784401312834389689244877814104153955373640739528859986340644062265617215801889233620346944839934209421789337114414390188748128972884091947970892105825531973880162381854628585434110318387124679662027535750145910415510326090269333578793695828609819926213428105282214599226793500258076384199465753535291286622632027172872071402093864495453503296773455794820516439750644118427209320391870088661860430436504308700354472395258118412345207221076199628457660411876899464641529304218475178675707379435361390576345877110070056159484035844616703192513685886321951071598458716465004466751007414749763033400992914607655403181569395798369061568154606338862076961755524607876978019963783376135228871853128547907740146155080930993411746828521902839745986165338565780490763061541381852559393945362141359270225104450508843737824313132701023048613220556388064228772973563674404760234060125084350073641030133849528695154945262472577814437050530896906972439817003227129839117675273890775972805755998211703854293129055820093451080728887853206045795921491809814839863197202296430509068391480207274106561130669489092439948664489968707417691600018117092084103781819489541057741662819341321287085271734046559275667361551219934081972975436233265408390740248837347494640971868612482874708694396301273460993630737295563699318177302038676713221148225641304007723459216154458199139786668858093955435837534694881566859610269563620160376134621505455064521456955527534574882322810593066923508074095981129278157883722533913839097009750159790807816969791435041732949453559270901722900094396034001746797313908298749516103516413374127725417306332678821737707609338909090189421096204102564843541560437476509439790605311331145252414950358252277604025399894277359350961162763780751572471935794872973055803751870364094463486950969202729848646869245442295534750439803097018714986945563802385423557006814750286070638263378601241169757159318335503526400123926236765642832380654335028683200837675856616429972588487648839348215927049380232143119662780395467561264605554031515268236172335666403691472474400270860127177991919531740998870414151391373860788234970088361613851988948985665521648628070385838507141857447751131323529917118374237543697532724485092004827220454936095459337956104827723158005405903116542177188949721190433144611795806468831635880167541611395092548525319304888008139712659056460216223509151587051532862313391104275112696991010272760595087517301964806400525160242399893622867895805184845268765205624399873086909019948565381467224641029258083513590489333886550295253192167160671290952830092940818778316274070286207522045282402561039162238485094766514723778144048225830842525180741460280566324561448124977244028915735486560109623578386535470514267668484968116213295555549069395913393711098568503489921358508559831415502531189495510815187961490381703992689634588155087107971082749040563109856653914026709801386601213518077769652424704250656288585613832560505911282441607160180220101842880186362062386377550738301581834131529088531434977192348080691708847478434103079801581020552686553112043322551176466117581664494031260082944912908222172078015678955771643937848524199731271254042580416406574429942447318821097719385972322748381080865557943511704222061805987863851669055360759802760622523384521309745633350815059861786649401146793604068033578218908753269103031602508398619795343010847607081796084233612911674759962848289356249765429463724237227643937411186570838656269122517519612322074634131586841499801624338796321912712116263825020916951077005661470093937694146554605377300667602849413570076031605278899961036786802210899793686787996002282846763654063675097606538663305685873806367572169497606394292969621592248743824091138530531854962083971048087337634994711432602065214347445627586847553031191041840920482717831808072571092878382884858438360970006708083531915554773387921950135841173395112109835306402823755976722207881484140601581276833950082208408718261963632211288151111920159968711352125313803922046001953746427128563810645426714545574809535416957249949940566728402467494947450280135676400810035716930209214180228484638232233141390170196211220050476638869890592187280586648712102722869591299150549177163876260258636666810481350115998673529396975800722885800214340548270018293263447300962333961546058978611201942098643897615064731066135220842624436928486836887130379020951947603309126644461960912893489304686669071224806701473816236601004430405899365755135527642084848798245610576642672998307941059313300012533353071181672453346858173256768637382229847002907456680400464903951432978966759869839842282701587673044834829502535664594184592669380856556066518049431202312915337370566382069419046761114549174859594814796652781277694235157496942604642248254774092924467460048268710883469363692457653005728526651859035421959029760146085787653067637966460532775943735525906868229470827633638999594733572576132502674313735266403987743987894979626356422862910963630062990371722141773024297369622695965964492620041603346977003971768840543854352305931005389738589367301072726865612089446302067343653931522400859408565588411877496530589239897655815064309389798717311524753131070398045756255717832211073750486263273248408628372075297272383444120977649987883234560421201355257283094090432668703281908926640647608972258322948852351325831870600082480849801097782696204416727384857603500468352408851169733574779857817290498990332439816139119214374425121279369556321982667185097421001049510954087106507297750521618700961274895860124378917115206576689084700715279324836858985771089520437513905146580684224601500105993056210322051019976049978395415760657394795359174627941373268459946339956097975119396602678072529595468730538308330601323209948220222495914024439543479525608128543266080084685759269865205437825623233055332609080427823875252068809535285461416753087086915259550632013378159282354859299225628053275470514094443946055848057953745513539856972550695625934359188683811360090438080790263386402019070456275599748877147597964603795090441271523890788971876709379655840891385465434314856263014194757683111229758196052682441394559839733743738175810470517613484045806101093943296625608285574648219958523155224645673601041552640057228709590639674889181269850257756876907656202531795596145182809991333424388742315969165844070225119650789267119763903256383470791396029830706287138382924087981321951732164190996191258415988197365633310731064877589282577990363619399281084155623135229218151036851136838235603518046459039003353097137770550186664727953524789551791106308318969166868632767532987537148208683142992336285976559650310489934859275440084345608919097582563789113826721540241128247124346833107807236461648484261597461311116314593909254216949427317127181979663342899198443627522439869773872498053929620991379228470528411206945252168693342278104265724729605980672344344505659515080858719259216701013190796813424025590222055318346913315542010252037181090521371480838100776463511504598984809239432137897738855058727890049182453300262962528241796201326218169734087970278443840232530111613115256025530092951982321364053231895124307056487263147106468124107576315785788845153499840600796144596786231645109644762858594096964855686256662072779571593756972879085423558420225700553721030839426688561659881881613181837072024658970211186891076882088043435492166764508291653415977223681234257822868523279933894067145796745413811846857343523560438353885190250310020359632413341574749923415689274376132421790904195039831829584524897425171008629107733901058555655240140056447760530187266372502140053100191682463413813140161704343091639163339286459695745782995972363289070348041007536049889139844870412808622837854963540065173898113430281118876795602326486170097706249853953633483155921963710253859894642173347026919458990451515628578424753494974845167819693035205474752203981372994670528056676964747841626135389034086749024715695788075518966956121334827622533944466634712497719423462360845148766026259275982528996876790211499948657092221711518005781964356475030228652526308367140329572708621063534484559803305067999072088077861167342588113053501578169888222123381169996157611811384814300996659588861648260571933989233414792434607251035087121777219365962409551374061238835672689942566982137417275338123509588459722388448585139799894892288009768843657162447651933846733211643370675968833148454127985139554819225342685163272070868127186055685202368653054343177180040214647642857895744557689326146192565695812331212520375718031456431504217338990423931196783441493658111928587408712621351710179905929942290289335441381702917731759354666523539415799349333226640287538526170213367524532680711123749665313688833144572342895057235185302712475754858342063528733153142653626558678593898271508872377710439548301304472695678551092184997916115172417168557582048190072614883730960509052631977722629028851087776176575328822509766631991756211201587253819903993196918545436970099403882212170249477583875490397398430521412304707848816463555993250004504270711772546739959283470389621513830771392260890496970885049211388122876485242624638033039651133033377050734389005756189071514717779364859484322117410376340164552084767291200715815286172333120594055098885236776952766745497536980216252006630040241824464088324840849268344035063932143460528695944531452712271468523955788705818866189920666995767204024704672747173645157786585555577163571765861582813121251869658347714487876402365298933572426719537279780453940363400632691473752941606886111480344746246470300308542221579097953086706452830407251593729920330327020653862364522619554117190580409332148175129400647568844586779662472541575382746459063190813856697229688946995641118816871343818727360915803175458036599773860099657219096918506745180776323185834303939160146067011361579997038308839282731641163041507668507391901672294543137336881723449436265333057574987806316731609525993410805039078687187788965506692280853348202616738237206454929149606578414403448241904680165404586358397184647138532928404081564163013253523081968662988832997461830645836135509024451333902378396234013822183335227125069743479529214041880338458807709454435391906027850167118697207518811892102956732202689122101426783240522939276950595330911570817724219972967053866594733048692016415917450346983567473927382261277290631969371997808330730526127608318600709677033062861061984776673785898610805536522729234528618806768413305708276095441705895396864941742321722153798391461713778113604581196605251194041212607850883892926557550801395360292646294195977071787856987929541903719879332620016273331504522846753879348021244087000906614855037558691185330141545189694117630195452129417186690295803190896885164007729790416489935096999382539493223937212948747562677266063406949830988719116750622293556328867197878582056871844665705345171261412324706006735122996623299521754643015340042722155112262244615751927879712990290973501881942406432343154223098173956650281585399619435556782403488834838573838172113129389245000854317138069758195931460793731462578749344600557920594838714810793875890832873500492364278087422378837420463328171200202720424303679931862865330180104732848261606740104202666460011345774740662775367709281559107071182117761851548436989473724808975671590544482949558857042117286395444904999546494364734559102008027910755439250033302467934590826277728189853316380788247360196742581272938565164552654094419368334855401593665962016450563182594840455014732103579421704400235594364948897302111154830410990779770792244716417255469555235433257694490296269208654489350127813717305697138709622544288942465941934569317630816105635016650155603097720440127644441181660543920838877376498901438326071304853932327283821378819351306948692028557592009610586897882537132827654213753126633756392923026266937938458592363407783262896145084628630394629661946407980847352996091394621941432817823277403807329611458164038233242717661881842344374650923023134372495426947657846382958968697109206050948528637540093532285394606094815976661821647712817452609159236756270685749979857528530590040675134004656010197388295844306759084959046078862155589839309929115121934839309546160223968250087381246919505096739972111986098180603093498122355128404075470568658181691101659013432708985183319345440382449555398255471903340676391945130428363241166189294206394054760483808353483434801888286526166360172843217362816560609921453799366315638314598420657493770167306158796396380122474781576073097359689618887056378549825160556969582604908644259101101225159717832884068190790061953287706237801581281654241685918481855581249258659478227593993174846892794242093252074126868764383962640074176847087951189630960135118956240200805676200207391860089431465663686606349656705280936247481562246420319549800622611333798227377146138390875498600279636542737430088927522205020659902146244732807090019069971890521726804088033510406607536729286725226050920120335066506131890024282040656760940344622216877559654307376645005352725839555548574086297407878681221174199747611412852307611733247844269882192283112232900690006537501111467108563003037275156008247966063624516802545992230849619820036664881256258209670464264753035709884372366911017390539102380567316633217483179076198252135397643610475273359712020559739760831868939202523671918993745467096805805365337977412126678116218501178732447714411321194074355461376606022910215651989519876978999115266235108869603439036611797344371280920535413764505919345764990897341984040972180374318765088760095568072300018763674847854982410403294659768850974618598039473587703899909556358241393507235908672148630529829688048409794760412350040018992341074662627593694732934035171734690605825844992171820812381261035703173362600361303463844209150730895589209535302687157768711136832657834231203256792689543495765398677398420068195616206962194424391781287567533399243251923295997001870218113093595164492922295048754373348467807448913177645277568561204663559014608875413176011658635926956785461552831271007935353569457761502758224289722574218040973763589452566615496510017669257638780183404166962090697164620021927984255492277317241313535577405065065786357798174415645898645777740873927752157698995681466039398266151658690711999222741842810158310544292665294333916663786555955422761959188976921933893209517337209982553374240796618607268817381038890299807308238158263497595541786590864554816221913811331210682980666059841949287527937979039636331123472460369949106442216378909063693378649749436027055379047887236533766042961805386431703933640783579124394370433523721689661559968916698999990120326352235671945376427607013409141182239734308382151039325843957919040519709718892620087722550755921929754970657226917695797257477034616156474727351125697393144232945894899835576209307738954346177456501281948870419685211068782959073890482953777936645740909268475935230554876436500509470820632463611014876998977669885199972018312349397729924521674120974997472310456516393736901507128720427902706181925494108736377874060302799806850907685889246615992136415164370036183659095555377931545954793842600114167508565520808055152506868782533313279822477240969728134779267303804118199650117394138005682233766137715541773012103996752573510572839546254841505667837628268769874389794377251994158969127544854952799524014913841306300503632545837324077166232657194056827322351993988969463462479171956875092060803912153041513194931743486942151319164628885335949591267548730393213589365657645549922309460764567133293056624485028788891357425874485131135605899241592742119059068774023719833423159765142662989160779857682760083814640620002171152131982321109475641102425258460863044021709670938301217061907234773880086172824238862473449592784231410389532704998851126976481675182840111295047060217806967476321346789981565859128248087312792169599054274807207822200487605709090411514679044136295611022141358605754090021413899042417907071914837707556910392226407909483730606271380287972921920057195028910932400748309801611034921396175857453291031700102752522859330468065661576958198569213924873187621578595021941552946896798064568928497492422783238120816499914265405929607345364883235115933713274053317818098893997337636901105002558161648069459289755260325864709251080834828123533561560310891919197760157919145136757783178418191169087146932706840380860294283492951748501796174349201361227831086101704153304159277052968408306785940228088372321156168327463811992860912460423770866392590112224371033520915873963878976019728464719862632602682329581893500132651689209504838575866116501568378613506543572300063126979250259859550862202267516421019421300464845168584897473315239865549096209915434060340508722442923052519382686251308978986824126727460546195489118823185086369184510024931980231949756213740260398606691718144063567280198736284535517783050933659722129829884134835378687559098875918179856435066106933373797899616015976826644326726872942229586635515464500746155253452462358108821125748840242542390210547703796432357014397502104487038379513501108792712510399263376323262405743995331767613751584198449883912697855477074787123627671731595184851107441072575912800699831226118585879436470069460308404308364003107476514181629050298541955587473461985830348495787577327651274026288457728056457494499680338711885496617677775779437100689994142312729210882892847399734692180134842548610396778087415959880345805386464719834408863230233653878806517086768482535697761490397201595424122663247953125355749648197654651539468514445035102864124781274788090663382979277453170082882365201129435650317634263170620698821426226799818880733057112953632711845039241254090839779124490825060635919679381614321121403033149623751476125462567203727041925301923580268225784875811464380062415801286232259212941951935681341799011780692677005494057221277233483247327414313976406312784577917417521422566562838750427673718663489723733494343801065951570660863587097690105514353697141106172607345968708074464342952593371576043988213012523100068882062059826942987590574442213090223229530764528388177239276263972762156688755950639561493548532591503957434035236043848651912426288960049523862679705513348966219736027379817276847846495226891439979101314999501092359649578386880291820231643472057541456205424872831862568202086392810305730176570701959864564835376765359194544454048645786564705542373253902016780627090834135788363816172281337469705229234850008547254188232776568601641926060128984855192961871100158851967415373151023370207218334176203673964773595599376607053390214310637981270571594274470780259784824287803014529947093859993248871106651785751919863249761522664672157233986379184101707199652908281416697838237137467680333647575557991910303096322575249399145696646128739208065795150080803892132708331103456516157681640361136400715191913219920660420858370312523266687739412738766749082978904267635959759605074944241945942644156555226301172880746312411540994152181802593967646483349996174056067358383802210621508862768540364098457738953476354606785890573836661559680042782772957710839519451128276859980921502032284045920495158204590912001120287572871729955815244952412496524160447007945505803418014644770629955748537919410044640918214382893948659200087348923431310811594941970740175103325694967373135627120749384017673934165382381632580437338524415340575555566726648332360747959089418960367243048327827311340214071223657353323964310367284891995862592964337048703662062466766588263999412602516951459659290910083854706912589673271838633496610792377789480388036541572851078485311276356937508601718319213952753411724375525739177760155427807659832587588273729339836350619314477054625192135373537601216050596866408270536990096244371065994897692624385708340095939722941988069083865955056320860351426580823834555669530999178687821838703830581281788006598646765084124375419413122446132326075284246507841212731412620765494700789621535571547140154607881903195428934950236454866801364621460621495103874672679314896925343588764347223057296194553280186823397499820626600447132111786969125108822946935740307331305884666603401483682322388824239798123528259471202050919183665274869727229001357439877154762433988200088396102733130781161091606656394022026091306862495475059764482982719345538572988550810114173475373585684811209806552962811351755853874241491431547923443563564348141278266401547236640241068402870903251185887760820801595581791503198171319534315106059948003327658285383375927259912701118401727443167623573744982411100110517366375087009145763539241749393090202375671327002721433101140376710344002916766450101410697667497476778108805102820654923641376087076194605362652004026422014785128168042155760064447055014037225895276224140464249342444213421884882689489244268109051146210440868731252922043070903435736557236000642862382084104703220694567461785926249756132714582128921356216504061076280969597647851229772959264590316377945998233843276538238039226592513418002567884384748444435214776568729652851278831506954476390608696634825981720833322915062782463560355334330806492550695890255336124502958819252538144513587838787342518837404636917913525686334271904970878713288518867989576852237025740740588786458099629997811100385657244135553353034128797963312837305515774867431671608932605754279282982038544897732296364991050997546218576567590719709774024806092599759481170558846561761599016237005476595345181938323973756552814013555519963217008605833744922860741947477975290817356747579363091862627167929890073868249965144309316571877854748695859395039279431948610666900315685029258753426820964715172787610295606950223506116420598641934664292639832088612578763069050575660805069976239145942255585800690797216835818350222127998889900576998363524649800226665799084556505289741353262183805261025495411547248258853583477374908767720558193014222069593147029348312663326671767429038749901413984965395236606962370837606270345343083972603611670021602045034674176628667802937873567522506421090718977677170587937255422096907638553006484094339519346684795695657393802656106286841442267805395704275100251548664771501351336852090395831758743093746362098824514035326690239228281249576855433658601174226093685509556125546949841556009430274813415500952381088923670099619606312693007461924854979436378156099932411475893642419262635910751700913489355027664142846490810352804303208861796079851930681857764824270766150602508694524410608741189435598299168348579913197126024095304672696160109995932190007040089563250918909864700747505411964876028579792046735032440148278111110487225467671212394230989136679299517898560294857656775394976491751191011175811730837140936012334294171140886849407899965158917187168233996801095593963741624503927035434274222172137332819509252173238736820543466905072927648904210488076142010098651928450261279356082165769224522450721030789139038487046519096242824559529262130797641311599058771689102099621989807801594596758232049656885764355740720154996563956649090896862726692259945666189645522239100943076800347310664703964785830164431214002602120696531814237235755021001461729921396630143355095507295297984366779025165708221437163542382749874406485182818440379675018953599218280360267292440204312522369928357199226086788743162232115553957663127917765554465034229088616552393300913907552793378035504474594503535953744255341175792634946441950249271632609882471680311818279155250625671517512365092933599003143502582943716352118703135340180472373187950654498583005586674568817766604300426364182050660837354754812120237732460125766746592382183838315688965737579353158931575399682945937669542401092783309121399870023171381712663964513026457716660313783968369239280068801994534708330722910082493743670521677899050097297499795921073344647233066551736690632291690208388661552651146471389796757509773735103360722233602863055588686328833955699591722213359278472472087936681064918113477290995621487952231377520596668599291511968527562377413160179927760160775962069495653807330822437749161897410914537872671948055644472606269966397720927074418074247934856331846453970924701015424613728733983491850665435711744704148140561969853684952508180097480954198538368241605756301262172091445177085609595011023695990910499421289868697962090318442656506823047801402010800605108145008422781175168104876962510237998296476821891765040667293090403257237698532241318888245573204458423241880028192209017712719336679749618616742990914485033843715159964334133272207888612742977130356275730133877261289911143115863606434316498604062348067452398634518747359407246455008386775548478119501999300546327950155455807194697254915118053248600981780407866018113380932115967145613338981902003230331468938606492809364951155561053217264030581157735859917275060274505788042054305422262784705198126323276457344059622707585575096436255206953933648756107843407485083678562350366526479955479080887249689078745220756823259009179784169599979869095314853274979368051022489944659806323888351221372749263047214726448718697655779627968259328211592457894983479164360547978141313011398050990099283743621418634732950309346763472211706483516668856092029677926992089719648870386279293337868822610419216761058549857448384747562048483827753785367319441239469512956589358242440933328979945702705350718343714761326416750259136982485904960469213798098029346425138159665737464734899254325536302651416889082721997535108278163507009987639402686896748820030984807202175837596538229530258638076022608555984249195865425159445746871771206662635017020741408504824010854819485816132534951802589026537428316224435314797401094224954358744747914168578244296356813620026751024503894142037505325330746344381236673562675056427988980652332928639945236195849719527720485764768963674789542517422418510004057566120173786884906649094740560683274710543374380803186519205673795390369755264892291337375293214259222229384276234506954902233902205835523374537657937443866570182947570012158704974350631655548276937832835995751224532934780776714068308028893242439582457866043117656412044495210772104326949873968458593900145340374002054203700678942652779782353750245505119841943483004102734821254075306188115176195611502769610910959057910488484213337762539189164187041751096467987520434525237596635419009103288007517242255094204865759781336454309657342613583546517099378124535621456962760594785208979437720308596570525832183865448388789025842789143197762103921240057219201799608980256607327624047524836707936991203000676148798708247207254743434318651608769499517814600301073491018184096605057801898903200014449576405589091330234002760749946097884005721509342204931641161816468523551205746636191570464255190964124441421495699831342875752222667878225730631817013486910304754970367578724883488349269800744918091577741632022210932945533740833084226432870238707433212411286342352153680622663490349702396617392225339150975882866764615649294172287317634950627795403085357995167820258878187649784479157555436017236616195603701157390411366169246981863773171842818333035848608091617543460661599823397139632140310570522180382080418346093843455144181969524647495657311460320345421764372111970533841275812591416737774921000050641196778151224142265011638053094706014360810020263384763477710961892474439141965017476553343962267789648765567444499315179159710877645816593349357843130452215048295197410840030473218343151385035401879319122439124515482655144278831789307365455465273516438229615426884662893361672764729683630861582446169486997454612038666898529941355100743289785657387287775764291694945936182064556251223210735823701052995955020007819416012298173857883941638797264748092943761991695780419822027396647158165803100585570738425917943754065231911504773077380106789548764046308824886129052613415396256448438220940827592522778735335325043303212878836084994376253028727864915433988335258543132179854233239317353151491331851261600243615640862615983156567534979765791961947360517288469396176894095740590740766378195658175199231637293176727152948157722003513503780547940198924205015064641189639867404417088364586295581753762708940140131946143464026258742369946089770985667543877783329936661926249647655087944684641751892462485368933961703337669175477843412231646728505358348964384195276954793727556490513876075576565719094610426580624139180058595768081233424723507705773035795444496134713493854482371445053480947112994991376759725435763658637534364756943624647250811089186133523951471417952590418943192165504984073214138019727504270374556424376441169995278536687798489505032288487770123218953152574454568068694536973272823090243630462952190559225145404402137445705439495630423518653473205586457155359686564024996615276463388682642050729046810516249783480739475914956715951375470827283223039538200689936622440197829956687428332646258361040084281466203164049328522915219287759445902389295672523019984030535061850142788962137606289020610129179516810704311843576953148104989365372466880168605852328865554585725939937869565604073290721951381528060221132554659111340874702060214145706266381679892226773063801443612040360521899131751587629089131897282566691961027120025786860848073816669474136925620481230870273200915455546306040894529551234436675523450076085237349974919370587714388442870475964522623999514713367165276387798744730450787528849494094162409591919382876087368874750639152992904840517243466587110813341391680052213244394053884882614172961518927226630154482904895590800577779307447510711189373549420676891882359895365763422465007959198516896857808217702118887291263866384745182477577052522373003249467253060389205723794979703966374644393927947714495615576134090237669687094341697911392105633176558326121501231901348611232431116734444946493853691801285099853089236755097310813562851878512464671312714896889871023561557642767584888383430657630223595807411526095441974905852346437108159516446883830764397452717469365135994762573121022952023336273227845036187586852242875422872672966246618997359388637638629256902828720308295812732131331202805066543444596445361696574975841252500899600564950958599387888650315407267223189949662371924922814893178216273696737122833691196318536882925830196694178211625844184773497588853508943362625236663591287516734305041177254268587881855489525705024818125893115479943222436045977940252753395951428590923373514901521085003783477653155083949812518294420737696566978607792433460681731236501620177113504116225831206059465196772815209296678731839589246543835144718583713762384545904123965339294248098405563619081333306173908247966522099894099678469487323118903781271798103194950985531215355926408019237131197481443971984324226867853332326196085990775216780949391015436986798385680718126222983952312389558023671641991590872433501833406942427323581663193017806012395553273122714032320531409851704307025314512927437235845993177984732879093103940726136533418832542211738338374206657933222065801590157762919590885526551143215335401002919474919512812452075561492005258660198966078255897309201942038676033748339848555967461528374807283247312456325036784013109262491122655812238447825079875249636871731706209235654379790477624835800371033745775725606416660340007333480428071770384630111769316525385342651584107647025698865368603517200452666764224254023964336396454014451065147482443480251955531730678737543904491427146097965027873377367276437800223268040308149076280065802437204786284340663864471866030259288279457116304014459349697862006618101100403283917229759539197350713663043251305921319902490163072251336471672513744296669254308132809658094253175650614173475649607657047049342635874408773154630824878749263474958891145318497681621499162927107771180570776311688925922508007898740589896851669681403770812401861258056943579855168002623583581519411481667411971303598160940344657406756239329883921003693090926259219331407997884973717852059319634256984016147368553128779711400167389030269178822119021900375930869020331576607461321133697360484521205363578564987064049914557975385093869983678377768133713405725078760610742448804654827054856380090024446300832471578724543408352086730963603022668893426646948859135945974089088660366932139088046572584788620994504320550292801290415751066200997264954227659553638057208508820656589594281065517311042015767585436863966465439778773307085614126582522437625819441700143969598184929038750163447495761776607115874301220404734127523333551525725546837682510474638169584596842625933733429171310318559303902506361497501370379787452433682512598921199804942317582576082322583281972762203410033231731917292123414118580864796677914352763910018961195916217557571281969678289988898473954618629310053798075447885222572205911610429744600712660517956278937348684188249928711785489303706240383065754571253946188966165608723724348930530615832048602684503300983296629670995859889795080445303568278903833913638763239962888135027017539204519762495198435155324705326652685239390942768353341738978401011213627064801397680461231230349968143484684543525753436407835497650682789741971881451608190125309131257632862470530489065928529196815989193106982798619659576450737686101370801930095568628806011831025908034519024726386044241364387180892260402044266051976568429521319164293275945813642901508217265467667925735484959785414304646737238387308227332007232350939013382304328202150639642264174032327614840736257791641319412445718109497908316673538731463659664896115521542821096290581383050399365625324495627559500688486055677575049345800007833736634727606255924579440490179012751466119509061919259309365947309375545134507445852377194842581957486427578805061977441898171689004778116379012171764650324526342659928687557694977835919008337099029491906533732613938490032633542039750633608932756367151802262477257332857781745796635789954827048224204051215606853912753847591405209208442546274918893824436307472814356001319046619762486459545213904504029105266822169752801809728699958555934104465895558943039943195251521812623595828674106120304068533592442154775101024235736947676412318203908331550603491355866817072095790629198734316726935462352652093805364114321916420735560376050703263073177011375886282588036548897460596085156499340971761890511827015141439662777201926533148949027550742865068011251481385579680965696148667448162631635969777415221687348016995297772457776347540783164362187842611881157981006110355295992686770158631547472517036017657294849158576655181196871870317595474225967980797544281488719195101953740453698345630014686132926917060781230553800543077632699127185998082654496883750108852503645601207480560733317686926128550850476616352895469679522507881730792550790810963994223504722324409551011201030900601490844013187370421950563609374301655807851768338699847006426066230304639388785367481362404808618678569184698143654923151884244993812478110873452593135670163501313285389401220941637183863771527057222970249326799868404708720086657279108878767688194321778021350929133275105147725247963228529260322734874784535304189836855655106996099015577273285044027778475332565885115644607269108907879990819937003118044361366116632301661393848516444131992979510827603287109437032641916307847678823961872286755520476294357413563888309160349879801837491673277505900428740173804758281669572555673971292931843292424774578689343085418376325578960195825093472058544940192412392646012646725547001663895329976227075057424093667173358834382182388713225478350715084375198630083871474369429982756702208949528349259114870961923761973506732262875310192874941475706991272538064041558966381010407854998688183887495065849499710753845240126658127954572828544774011936438210893006439556384006868416159788418584592986176407801837429205841242425568286984429408853158067137820340074759385449361883321502813712569800226608827665213245614743175830348689566585774492457450506015129239135427295747073514760782358961333819503438500532562024942461877278688104872920529608547732798567945092958268159418698272145655997822730001436224343313738059463663554576687457543663038833621970625354552114794205898885896918878814926616913961818785929757032392174290294239393445199065606065142377555263849890567040439853117454547374409168043387231360147865418854509408961509737539639007545231656127223786945353849518725424253042730431920622304012734158519979172689126774388036590727901797861354293913408698679496092101646872817612484500732090123464811593942141915540776399801324804493990596442103948822861860591555667850584241827918266452016121736358431941913692669801798263529578687637952666495335406944468076107595307060121357887675427945196482898792403610277456749389329311854493757833924821797082875273273458059816647970750428347217020508351118451522440472001914723263445515221945425673000736790429786739859767836272546467180931543513562003956251656764582941969835695453908394721974617445032682363096761479545477816063862059040313537588081891792690924457697944851959439925528961127995654612857246902363408409225143572451790847489831412691210600317910315075952854313952513402894640287854620944446064696174024936299345610905264955261600607905692394772861372584879866238113027387191686725486718094176698823042755417337067546570370735337587412724165050904824333242664748202724064635133920102402670886056731215325098604532651559319526629897525403594647090270577484179539721331808529873427051980853658997212477489306122806013165172791899097543671633656776875179274369357372083014799755764082637521315229908917404929963197622781318035634563554161465045619249033314522436661450431720513494935739228510923351792353053551517199531427378560474487669663710446702536364935172257485103111598533848864833972250695063868227848899643492033453495861969165073329940314255749448755978700813995729366299111490254406169718960474779736923989491658046013718843079885515010856124075943736997463805555170625472569792739760306276946644434145439462747159289140158790845624502753997727022885674417520214506058230924804576249989145038997346946612310619059329196432817955613179030935929838529110727917996107422846338089323108363550885360355366315992226315704495678778726708516117158111072461695275732306910191831085141888507451694217236203099707215155334760360348419173557508113431111860998782944407634273804773174867407447611220966988960393830485885705355096175384263027641730576173071739360466167210671127963943473275460673843551453682988273196714158699605886871782942485848288664600892747249244820700192702915206255840093356656842787584675210867809682940151778604656921000634237200452174709665493110405471803109873601667335246888597573468135590159665715923332671006514661904759282861892934978951807278060752544435263194151510876749074560206706258011012356455971209385394392742391355401367243631327691089677954898383423722370155939824409043215901440170432379208755778359216788730526270559217392323118454551093968558683635833681613068868557308125251864218384508824223095883561469344059683573490821982646070090263811980256130075195290705853530371600233411089057116497575130983404164208107155271263928111700894452011942084108444076788267818827347867406732194440255347605975100991358650831974247873236705707098896025288983916709188644228874136809164243923773500313309184157910451562180151919195409234366678720503026209707140801235168498992554009273024033908188994338561681286086876499385518475641441127224556557342732787905604302620195182434895727406416157679660704834853256384037388385579043789461662689472178761906753723858064596491431891079986011438980441446085116881586174614863702731747763919401273976251131342009899944806256830056193595094707855482160397903213237189717378015898208014470566004013271644188282105977879152747674045217480006513780066085437629404441319772386521647390551812119573706816210167635651916391704071387839887697053552590726797330508435712738009518139093745035108421187216234721607679811085285800311361057306713020086649105895220678492950616386138207855461791882800123691801902771750396456393064235927769069402440902770569377337921697946409057204978272166794730198535920290957174220682604406521113646330573614217271026461418757654155165275457781130290937739922126717912572016818693430605268296467751459976974672524376661813505487893242366429505362136628711793065488212603492070585673430570301054774711913512348972129257549025458880661033672267926239219781331098631715756815750873656411638162194009399992872187102386113306852701962651387121886973818753113441785330403669930628115486323173801081561566323945343919619768083714114727993520751710654608481270855103843971935120504665491787900885591868518105766101670979634928813301418553466695360255052632895536862613586938117750728549214599041041011864981384315628726858245680463441163610173679329774585673565420758536990904121802306827835142625947324704267961743533952924808196885331226749961930857896586624960343810640709470099863756075440136387016898821838069659570704726455512103112378132466720196802242849590739110451264997554416466083306213475274827444786687209449503670765362056273252462323336021678646844405561913382512076519078352856839471383475927227841043649506727875814778749989516385430495282446039722068518551072508198331568379524919348808310701997832152086498220428713677700192494954776473592985376225921456191254737552196344620318905099036357702735078074665097564521898327772076557618584072020039362038574072825694918363591205273120084922474973639441890891233702857326604456102852899320119293444899457001986554113559562817970145727383405558976204921190016593393502060649618560056333912216783124843998611331957591866452910759972982563404934831909419454690560104362858930519618189092529177166990633419867483703956051825067022614252982736065621399069627942229534336290844326954974843225678746831413675294459336484276807617130506502015339618348882025910806817538276976398253788725633190577982433112438741497931967976279335817121084704426864031042925853733169122496261409417996218087404953607549120069083311293725454223896485224440998931903279772131517257448750289197966949395257185278243651124439949866617875393566474520992322285230051751472549792285953287254656646452836944398593296068018217583454396898315621142397987632441707330541667287012465943543220637881422612914268624635413442365539710502012813995654120658976725436330474568525168992533077040080796247480791323893586727144480725241507016996023528107522462883876193807159296135966413846910031682091477256430356714891572431866342473393276259486003754489160633407747608696923465006898444022216908915038744924618248886615843093620112864678010646575340910800036337010867985770192525972931828212392043313674447299525277415313802575576160911527490575379689684898054533196466640882890581086183953098377141000337265410550738009378689201922877125794375985162628784689124917123922905018626555091575787948850010058820099618583565300244504392650733690443273190781293677581006264342193677421809921208317394389683472363068565865410666797516165498908823816379328211233497651829476011324050434104806378607309497469459427666931660389316313988354417926232648314869526281897164981778521302656016706725035193723427641557115864075298839906857187096797872548124495819672874211317400892508879412743915582599372261631060694709686741486110030499885231212578489080412906117680275141688966548652256744848981283608220687455188008708854629889724630431079750912907508071945079586618531629239600472234972963834745818008111350574788706195530880949031403375619299783616475894078654831979968020606959004256245933748054192415142414702587971259157080679282728782834155740000216219371014140954294825161053312309607663056108556604808330430435298026373702214038357676238599932764826733305563181162439942876410328240256435998246268910253559240823515882666442403398225243145996379441397305813163031956994645014927153522099240378602219627877585888480997842978655069083254329896965705101922734232697153559695250999902937286776628673553301864725429837280027443111458726636532087726599386329894496584826981831871534728414689791493123660722735442690256021406725464161064544869799406054557218729766919315857358393005680328792546410505173987040086691994309618792562795781620064707201675646687266449057473870160803919895028971101348026654792004301728480935382000033199817726212620822260496533180566500973460517683124382617412097933269178673290232646292972018279947408786193915915368520222742679368617978012512511775827698377775669456614559998620644934058151360382654358281809076392502945702234537839447634406215402891054631253876166867341565186320617985098585550406931684515742773879016398971400435523499977278503867681432414119414759922070960287741210015034203384906847284201641256279452941914828252378196058260414083497044001197200438330017390592686954636703343274983819599519909709294372112702356587683299526107467530252550043689260635293354288185920676693964449799310323896631561185028143205334558427878305995442434529576665814419175830885055046532683357933698020347820225835979142141349817646561286667502675823050585528251878856326063213247540620521848526998158106541001776562871432957794295603814129029717826481032970649337967311405237617232480672462159262115287830020802084689547071018552022211665939368440390688903970056918815091166098325041577497798890071598648840171554418072755079079190979889871339906063593691254466456778922611418137441944680145767322476454508427464176380190489765321088730891252472874680884487064220726864389254302300694488149294612860660601652702723530758491101696030822162992856845065772488959539682753257004396542206396611780217108992845186637525138313264642780127104584044471499693732031672154642830640412850199637023697274456601733057991236667991566742234886272110532488995270296780693499075913000679555212010584177867857661635272315202184974007255001015021594342304694721146649474035295266055174700198849852110175649311204873798112705861531213883602566765785431632281694258480349498371200217267531664573721510404375957716322589909792792348201257037593710511223676916886815635700757317449453378129460264934252312761235764172689821191122367420965560560699395250000785806535542737890461190345553373345818095754722760719910972277834871230139016453696488261353195796196917398833048943366711334732693922344732688548197389871577459003241556398263560741836892398211043661668596056453773095780227056238898267642046583590916174796558944382660302679603237536456729920439675128048744844864484011140361665713050728118110312481034430585926962442093044579523576683719525539196635091021168857315036972945696221397806495330029622651575065438796389456150613447310086794393241757975403009655100531031342384727877312922505271456068204957288853938128140718503450804948756611924674570842280108506626873215931587724052503563511349688460357541342896579688402504757184677725991549594454151755617443550922942877598328979644521131698837747831423424522365111470486624848487265302295853832326161389506779664912833602116924370100520536372377544011752846681604445680991100729418463968851906936735331204472461678080327870955841476238107557469581395956873126210427894226277664974385099391369790447327841220355391418423062862291127837133843519053222845554507601415897253397827840505903124309760868616177729095443730060570511686381318667990714572961164939318261090833678519016681143925798049319707342396716576541847742831473141812161913281992129432378495709555720266704527889278349402133822504512921991685244670348075798312460387399952851631647060718191136036295489314524255749346616322516973566955419316085784575615497656333370465154746979716209200880270605982476422304216412276882683055107878711344047797011229437677278599004034472365971285009010729340510866138645053620666583938644516754835825319681711673155469863492929331215174189068746542138536375125460597960661510125551732018257275980590989076368526781254754241271037962699760402957189127309033583741901525208811287328728782893374155009518809457352279002148620589340508044129308442336826881161217740158605091554287781013827341119569708297193330988152373851283001875520035828183493082124325393363039095997243609696950718785573093736775303006977905046056787762065845199633321533820663688178881756058357433194344310672431107768271525454386740375582129310259634692093934027620896818890711781907924600013568624354702228211509576992827155000020796952862447846608100696178341726265470622702749410426224597477642611527421901719070747122332631435649206816400847702979289631396970205169107332654380310899320614647542928425169336192708962125826628612935445472107040392998821631040008867475881287465717203389292884917493513635645036568867083989783219472250728490771668559608330884952441557533816416991450387363032267901133955405855743691515579166600118287362589470649369486967913312160113139766867756097809889001292530988644564905901581631563010493662186033057086828401860792090413112749659807560961264340635880014878314562901295247168072245902420472386973554654278233784782200703959161798930309849664118549321489119791421355242493918719659111868074700113378878980640662147855382622551804988000587221782145928376997123824783502524621043489380692626343356478423446669794508014991491001046939233602953215083153297339065301980044983848628193341029720331943068765955224546500262300839922511699572707324067884404292600548722620928435959812811111923930150116739469745198078796087769058771599195638929071342606875628945365241980818017056939975800793222813305401194417943385085778201981730283957510399736447313297558500943444514425259530147285448707520355147728355316389119650510429771237968697356418538595931771043375682959841005003229564036736599698831253369482452744725704452818267470798177729409701531885891298791482359687034095587737963900472325018038887928252711634426239581251600376670613874542807265575417491567869032902000330749338201733026803609452134030436200220210764898980133655101502228188078957436506452491988704288747401159096612051688719800582427188230964936151945596942403833632304464110691040535873753636494104995485058531696772444361011915966571050096229475594858141944858264596603937572989905615719119562388322326626105248008139824870095227477588761613770642859626364568451328781328089302470875107050636098637799217091237675736555586475752288817247384028601469101444276769351287277056828200901900871928816621500190644370771352879389438649877156135875712985171341320646470336136576418030696313700368760202211330983708164389135472127056089654339749675357135602250920006988583732253701927110827962705558306714165372678908269242311195846271117878586790429122388581125888659275164098430566324460904525107265602134359941438093400594525243480894296034238430914854973112653697956374981800673725847595004428710284330455039981830556128454721328708870296248623376284524289061717933587513841728640528491533399577192300029057777996259885301121796484879075881573911175438957152107555063770170113688351565632877345702126918426304083390007158434968106487857192868301781781986159518437372265973097013928154437518853084916271333065318631775094642224151029926755953422573013273325772534945184459736780551767164209240466438928852885382306364448915473883934365096571008918148865445879436433934858389222579684620533835172536939145234203571428895290209325260993335948534157478344282451303054344636693055687098916562686764075071494222416892397206387298222151695424910304957430023356916431796982246623787667711548460983994453582227176340055472203511862091835536536013144577814976312280240126063726702721736184000884435440812289273636922868094629386707510267526214771077484986807469291374538424966637341787575410086290958054993233213902333637725361111174353000271878211291370822886202623040094320532485047904476340296109190828863476379103201886693719041276782228296108748460072592484426362116581758563404314367764772143024943964417351084022744967103371633624366206277119765227370723747930362160037407649467542574084793655618727477375367211426475436218464210822899925973439543783432081239368123054851501846203818772672081833341248344373274857997620442317200836898838213557213047010287228736654578828638728319789315240844507009074742128779130136683661134648879321904777434203517898730173176441076356218286386361740359823254187080584342256056192700466220605935000707593609154426110818468828387190309404359091408414498035758607601446238047422015096172352089335670055554053161278126653958785139428808974398160672037262951608328206516326348703215288160768122377065503179822735433858468553479639761118691180708720624367125207329278891329803619173594961926341176886971007793908391663996352932289776847278174512344297913419271921328290684175955866062565048321783277226169274097814417292821960946393883522631711212914342420399020886371959844357419620582731095688930348094473187752827484013810279277689524767645168675191270483861236025635430940435400402430320518469998606196302115616384866868020045915324101675527777375536703666831137278484940442851927880492138970435984496892312737654374920744404985270203570638495488760028621688671060706746222513146360948674037838555840010546152209420161365261614971488148225717474579284312401776492605321099764662058105531674486342717560019235874984220338388534864664452669022343842351036479618945905202451588938106408139357652528140508926051481268669570187284328826135093551831072807644778888242745410840552664371001668582830419048094220540323202960969249658315367239237789241797545113344069221292317781321637512430788442366563093823704716168278421023145868827317458049892820416382596392124576509624787454661230996618658081130993091390588488732520103799845170572076559332921089413207024710034044545394448294056668070364017373664825506043104665362060727514585769398340073531555045450186847992107819454227884595068528321406313242383781217137696601819982504210111205275067219836699800378398803782746428418504448312057915008202111099976161307779554006469437533309436454233168183341195064704580739928473745574536868615104629436625511756212712985635215829765550319136649586379575589535013917048054456285584929424449584783856406914815068116664898604816223116637621578781224907938493087041766735802760834416264250043408451158772229852516752498991272967704080502260177655579440232020708773502243210737073857369356406885048992699106650785809661088757602693239011386911055279267630416875944427540008810104071460122925671935734929183687608305271526989286654418366850461515923182090350228811420107761809163736353575490901799750830557960258995485738307184962192353374191415638976093441507014706769225375724518121315372126101894346332874650159109720404374138167617138880070915167476412972323794917349904140509848791344380570950395082624503629682959267742997846168461748300631577079207912261173729202013307651826781911221876705091992087541505086374936563988452059039513989759924661331576039796328436747536972929449301616594388596515427825310392896226524829972492624838960750746312789013214329580738559527337132757841235990422452481375307996211169191960194839250766698876242834790409277224360052267955489300938478283005234968255833015051608258329916049929666953422826207367554323037788615458274397986859332050438328063539357140533741763111836973821597132827994008056436756382651571091646155900814770753947064022459548956063853098812962593959900847701584371907476126456978310254188434954172712233814151786669314624754601309619927598309262575056523340938217825470953103027684033870298332057497553896003352481777349337705963233790974626055822491508604387439295549457226410215285003210402850350817619532013093063951535630624071803269571152678288742170608019932278812805296241809014439528266338074846074970846662700092150113508351676915452055421452513734074849557380990513531531341293517894620959871351327184265862428720903173070026784260003745659348111917136886498493829809228893456545343248317596927040459408535596579728269376007815249365001786299723010259339337409483763668549842431297715141518165744712171814900044165538366880720148792073655828309675920706053440388592259635915280682242985994440426706343461881644237699629620050305094502926735510621693123687744611581383056313503731397133492873042217745239959004269517613465474500534586602865860104408399679769747048144705551620855368202429919954215395283737097335763341348768286554364235743882392511160819810013073451406641361564966098060156103930820073255690410254954302486503838106451476806085544210523532573270840070404290125472803498903339514718228263066053092234036265412334918175968890637949308844191943210564683922446905473808335118588797268059390196295296233470917598551235306640144195750653577763692111508459735095098495619319269556391922886000681274606477829427727454601005584203737471216414960833914513618290372247556904826574978497609591094145934456468946478984072997841150410504883699241946036065274335115608304030169473731512136550049232566128029796808790474188390383787887123645336958582795939398384503088413622216432004054389702221815204719841092595031971103500470725788768173513015969704895599485606311996169181644102989530318409815782785466102377165099092674764463482630769792090608755178370860578379274478448469398088035512200121641528815599899596280958721786071219892178604522706806253155045500912660006034345130680332591838928827688434571282035798082665680869533131623093586158472124601262952370409769733036379025802207031850824614618571904330653618573450320536124312201981560498160196127129471154255069275220733927066792981267558073845183260602145934830933883958834225398379936285489845074407512329805288730258242983776563605884575599031541957718444778211752654061884475234818141869334638741729363568769204372367222770252905091294475379235075102516227130853223642688673760988441624876430603604924330692873133406253265754897294118962586419511225069643508477999830831166526303732341582726867996801704333153761361381407827436545290607927565280861811439900375474822321467683779687161415649313205598344236232433711746323888850267861336502606948129576254188248644397600468368301662300087613961077578513214547513911678858002218606927486198824087156145975539829915792332663735997279491323556179940538978348163831260279096245039010822229843680910966757345663254931849547293148847699704474529627838677551315523216560582905817309657868000969291503811918528508037871109511743345746860157109183227530182833770181584436054158320700644279883580574117646642695715217864228195334326585392682546873427080814943256187920909527771251154640561045878517436326483330972224149381043933917216618317227719782322813099881314906983748264522667960310855943912395958324714837662314845497807824420923814721104421715146964598018482487424927568939356124770317430569020652563653258802203542334567967953439183844233542199083095406874214327598406062838180156863767895583926490607179941493127358997301304745837226355674191737287647764528606873384714343050034507388129444517697443391793107161098053067839247644472146026311081865244613753214868270187427888223970286596311116700947317453366150523430074061159197238772159007170323190096034544801387090256471620552125030849016671604219980166104941537636473714788228303588370193910726628998555711038310642669886776637676217658903908984345057748103355927144597344302822083077596179340286678051407581774744495277508056482239258908927996538150258409598857571323955382537410325769067649260369754185533419783244152415825665525298580008426811985532125566606538729616077233465613589512337391949386687030287265796206422139011300056290432965967455013198041549966245368665644424493547131999437960597374098962072697723986578582748543777794536654512564457465177332208906835039530558328472559865714014148677705977810687818394426646935985490710592865322780504273257571559431860111683124756558862437642645479885372876108834429113127101522509046853522152994248417911813104851867061208777375442744482737860032297931840648815840904756626388919141605370819774973213153445475149872024936370356539045384597659251235872070268757154862048312500168945093489433241613500186983336179173854699650533515113329916532684769119601459684918803297443678265987635761131383035833177395672850018437996641770560294035671344961966578857503129586539431657102611494893456063855753880705084927892290330941027677828136155170226630261854501673546502331322482799374025449438203277990953969021187904334524008469502360810022473308979919687130334042255385371901038495013062867645120796911510771089708373540905319164384001105863006070756735301557346963661516806941870577886849883466189353342512153015249367957556289199536170886354457478804564531930642992757082627447749580976570104289766805024572011448127134152093764769912084828542879565429381736211637739864078582585580750035439867848967559918119061995699024611520626238769344869179863129516170647470324964592261168014439626012568509050174848645909536011668338392142262102003104009666104089241160972346108977642876824962459094454094155716684234598959161256855130901033027709205461794835538468130709120803378652532848600231892909724408661635556249659106605985849349599046532143319468511356552043701451022941109899097300912565143190386756608684689271700792296275643058289687166143007283520759893474263653735258141306751925554752243573751545804708327111829079163571991648533071841464342916098433625755482270990791301634211108334525504870614550628011310915638279781600251400719170047008489655764682553149831470536253361028825469426423880944368211946468353241448733692137958994105213805694864388508214913806398615420455410530651026504514036568432836769673986098158672827026949770924054177607192918607598847124246375359954759827374327660872594187107898996909732795804816798633823980567848273893510679721600859264049777030538695898203327178395007675679171283164001553518334963000911697196067262800037877921854838666431309638675688559397795808772551821760466833216231442465542332087150699931523936779602721567579134718421196911025010030778017570672703914849085126409930688733199409048384134365904994983870213521634221815224761736746849485859437165087549568517475406451056061839111437355002712696866840469023061475024118956394023505346849901447664102963616374937784224250838073112903541822209855502557355669735520954815919655811306184742645836740097075819238661118992328300332768005211159635778885832010982013470729653671028535799208585200824511511618044483087477285608089155709834638880674672187183238125048833669265419966794913293699532389530341181009344154994310032574137075697131750531904174514249708540030352443577090423831965281729488355521136909167635873487167612780800999217923825609547065990012587636556933951033754648976280864588913890577708620809552997531898820921068259130135516220449863901545276051063033995579706370463751485395547960044055330383570767742109365500908890444208203915201595157601690022922378534660668329539397999187726558902159167550251616434049824407392600114183848226311316327654042212032330601792991141546081990660996505492688164132131596718958023425117480342406191407573662858696620414465984695654868064604989775042492863702662589874135365757797059196255993974111162973209780007329238141871980294413389711178615906012927538641421704922218546899954775098531535693161602982591673596070693586893532325553054663787303604300746330546600896735367663521738803720826747502748885037604815513386781176420076930121041593781948758507701708136441617074206872662565609193846445892134275216455735699859902475749561645479834803652873331234954249666409661068129668552398163812468519489784801972431366032936981929815290598109666903259953509371650044182471423746784220243505987868337021382347133243253733032391452267471808125009787183150957009231720532561690151980520738523271169674713539535685570813691195371192578809565110270826531482186847111144296769052535623260286584249418235070748444358151673045618352762197292380596502560347623728600262058279485723278421774686842455457747506239584268789011349253126964551510328876577276812683241781669476933923886487125070480932410393084689296575682084513791588441283259422063219988408487221401140463533166096084212959077107018334104338065590395590718736766180677175181398126006623731962515477533214566518091321817186726313528203279554457222055613296810744777683229105957201694252060484359285211543762610518258213248357870789121781670711664051573820933692842744349382878685154438181672682419492923947547125702466650284556664274771292800670717372906259916829738034324863372485615521924630731208142920492608251835863047516304679203354259072713225457852502191265178923112636993785158418014810139491821376554679693357255831416966693456596124707537374290528439685833332914513690475664283718013719082477246669510148576993986958269158427892770528898015840654843102542330117634046992766910049481088423195057011608206365897459469610863024416802678599864375424591368535328100249965912590066510817162452875266654556569929394594567873384819208051732539315221916206796588544546965409973009999164131127689303287017509705296938392952714298454135620013482661288979445296086957810079266766523648995413962751131521567086541216101458184513472613143279449803552491874589847206943960751451630895129576503595153329900963673585708611364628103621362200517965754595332818227549833777657989453983823288962781900211647668587872691169697210966637250598185718148943648508380652182461463307720569679397613032452257270702704411325637103185210578842896700515868255397528082402044411515429103694579707236561747875107665170162594844806910769538022729712933026167677608404561810558231605580256065158110954762877927789514329362091910417192266930283454089846308665047243745648558389612944624990268578543685754053849276019611449009502403456014131754719599303337920333860944044782442552570724246218892613074626908819755488374093404511255431138470863422978702230664905652283880163493761325344975278139694034573435845710607920328043491645454327002393042199806244361648997274400052572469493728184234879293719276932235263203000109839553858083834781693097253370323826636301460401083915291385586509028480168926944703090814179931672912942030673991972281824273847884807656125939343773366563505029139213047225605037895398630983922308207864732933681746623206917553514722745891340224455206328428049645448726389614942488844517671241493454028132923791510052099390208879962225339985855524927705886644200058165395318722169554928839173359739637785821843742884910490572746390776427480222436557625394020001934110387143385985543789831605505751127172770760631370259712214924054503770510066932659592298833072535866474133869614415606359858559631562476138669735744083748871166269136835912748898943588271187116316644014951280510891126351519915710749532796739545682195831699008746397796925956940834046196915061790202668227445040064398498883445287751304539005627135181431357224698713730910773110808673087984731591130724716312772827826761282300986650215170237776234735448862918951239504357819268071156075279947175719415310956007430961603453135095302828068943262503732418966470645019072899143538111644672096199485809489765266021565817852746428123491222252419030924356961353103130232487624179665619752782280350759156021452832670215207939702859082220471366392822866120265919301410532815010950402305952466863146161671197704156948952600361229291133346254316588313983594073877862295657288167793362070099163633946192134103124374565557051839515799338453651758681190642813067169601000942224132701224070188938644065167308536663416340693036951110477693847078050175286414157249359471775082399517591148818557909762059918720255454884288979432114492693520468832878390666946399373059495456689938833876859960630372735384976755086178071271972512585146354741243226907091339014049622387944262536600977447817292829493701643774661032513876869295492501758956935362817808119167363021326993097898029245089297099456487820681850924894570742130498195944947978425417417926097153727980309294859182701253488771742647058468157551410052217554838343089654197354051382832434739763305627451845764233827419303355507802464936208706277639103972694143917166334102301087874934005423630867895535254129721240140087045322557765205336741491149709510209686414178003712990761649098346155506073494365623403219230535616024901803135772637127205183985668892215276933236174420432706741812062220705660289201467922626587222498266342569858108700588638951178361108676674130092571137265571576920736597563733431334172329196003628042386558488517456802721793733724128076329596128022230444718382875010191448661538584087209027386905814587770627433027540375973333376541947071537854402128983576258030654092073547337071642445642222692495086392249544748423518032378634670496659258918729091931825349974620698752229944882120021220945055378170764244246584029440387368685113400133676337004349558590605871136023339126002866870117876184346320368264720211586534570448046063803408738910798389302654403585438518545577763571395572191913495744951266758280683304386028280375987940251329265959823384862772527405755427429424564056103060326463938512942786326785523718333326896914221070380567741010279546499372973199034406346432438180942983379962598271710189564317276980697983354675178064677453044398517728997412143124269486865459997625814115522607109386296915052935498521759585272272467411529124935896573643907958043707759599506849640788237635341783030522643554819521723750594215128228989292152528534019888665141055921961781740611506602977982397518098613218138832193376850388709631700430127531567059845964916130505255116383362940140208600141022623434870521366532485028926705531548217707491114085303460446694465775415201824173549886949576591053314177408474330273220413767260488764844129286415928781703257207491721546889670990049851842802376263194314031262628279088012214758033723251425314608734766886997606882237958234764716515629770258374495125147197915380628818968111046771566350281912439656700764197300080957593647771195280386791273595230245916317471291195964656732064616612662787176774634838541092646446790935392941870651258301542088865715916146534222949636147207065986071190403418511721959160313586236054715383538917342907044738873721979828859313290071525724118859296572435727632110222832924994879006684883983404987022159809346677274010247835040410064282349080047573903492653011326992648306704019324550812580446345818440947442892684002453562430158450321766057514475042255047672638344412733756259429796337814583122977771928849013706143928235319218510075792341741020130108373938721729578929783219013671437543933948541083769730470975433902444296383882951774153359293076646014726542868841718763689946958760744322162791084586068563947655294743469315430813511917819172675766211424986236521585042704573848989662270355827762656577288858820575754008501279923453499413440363837252553288205935146663595235046464934926548495198503946382376662726311332346916484659190008245808421733579317802577507534942907091214169736625700602738951173626040424684539512790342090624485862396711877866323266147429488561218849777354823818531231881251523103167393704864655727609850490390299437005174182073226287914515005694341903243182396272175712555923708647758397925034509410031420900232344013235030259183000162011568287205984413608333035318531032514103344287106380163309682901001144788881950564159949267925710233489748357458149456731854697613879235035788408898382630618136202984972127271601474541496836921027388320099775147946349578251581537597495728526873129227266555232957581750625722430588121120808208356114098530337490242179375068231161705148980076611438541972375323461295632066314062553427062358912474621291296614574191983375172471943472280023061605988628998503373266883937265319457873771068589341996317614281843316170800318970455360813123091452948987917857529362403927809509901477799029008086952200426144522199050951682852481301401034829025237133830463610176127272062531339826890362500864840578425614076401582720220062578466506374082277194027928312642881630306961335354111447712499635311006449054297271327935000818044796890798248099500769086735755261550262589178848377372797020909223338578977987233581173055262798301863443827899208287308379455121275980984837573035048404114303425280952135659825824251575281424665907128802596211927457834951238502528611251031729568942190417307409531799818236198355886895456811972700164794308632867870429149775317429041048077469030729966917059832943921891369678232503278029067791994824106074747519754079258051633331205794159173475751741230607074923678783886227640205875305448235528827668329973262505854128722626185389242843356747923300083792554106512378819908120774523195088702941839713847999573214496012941346767697644105622063617572540891842556869948269654680600568610652341311567161120679015652252230677972921616364224539309387714568500055463767033885128214358121132416385756800234828542857130130152745633586378583997849972547918972506428607895235224468947389095454123032359439230848384736194193783274558404983404753270229613134366298714243839866412496359771171342426917181346720613695053560528087664926114528207659916561873733240306506074720986962570976975066008169036593351113685087220104939386739468428182448118223605990325685055912366007849861243430190922985018208761261650881986908753436018018718372844500195515903378366149396276645562528771577996707505893191803590346777164722777908526983482132333558715911050526863832565720497121838110975658421106216912469770835464001711807724646917403638716219319817665604234321866125225925993831442372779941852519872177833862482291615778503397261312908760508022380005574274200048912781534654164104054565059906841770479848630073182264128087568335636018378435963919174141980734045263548979224426327074936622922008124571012996092994533851012360047767219762950600767743678451100085257577704854028797406260912821883190891123373409547587641812177423363838504891634151225427342757690033477105718418256024664797109425254371494312247015186083833564982393811870143457709019177494792712136639802022060832358919785056764661979002833712879519489516024164175980293669949672691587829211217518216445185844570927734012961070775393688870573532115233182366787094116702828174963028043567280010615187981186020822326692349100184592319105673403393312035361206690303996868467181638804556840007982029298197989919722024977261981014935470270666937016541267329356443564269760270043814704582043997804934949316397844499908563115344225369224273516120887517014474081252122077109048256799838868630202492256956005318155429727510450930768718994104794298232832868807555587557646570868323543641110005906224851631629954312903707660935542807635162757683798415938125334881234050782343909624404578904176211128804993103807560698005332125841154224937563688011761486498041441415618215987198743107132207342257670844504859382806718885343389080578845321777313064600946031837780373344086976538788085245817790657958997300352210326799694153483513772692764319293711768520966446053413492431623984572268175308438748183475774574911230142630647246925272604672087057665092857550009942974388216219425788946000843290627168669235251954264027431341441121107729976844955614694846227300387646688529630109379814133987527441714095569727740888782459540097071135737567685458696827159918359872384823557462042699056210848002832309636487896130883505895427015785298500870696865551440144349982015733644606068797083586207639140789091214455387306564590057863436189115191185396192481472966818384444466268172235297104565581477943575834337270694350916592891306997513217856734873598818328755089228450838692072533239992842922725348960444370087973078447064167123386963238468562124294576280583442508134871846996502584586757666032733893111358643338684993163514265995025614042935876829506328846412977514148547952577497218472441352827909259260010674669710966740530049593119368606909814095236757218299399908570448800841956258000331546505794011292745537726919066367125871881591346862594695682226577219629275435115871402446388650137338205783816015661057434183536452682889151248396102093294935039775768556425035364091085987313839158925168281801838026159908550740926272856830966656660639336039398623852587717258908545523213054596109559708911870924556226397291769082994533741532947401015383725850710278676693951530871002220709857187360188233699087567273777475759523175382712743847656118467736881638607269867968629941691397317768257050305935723286468383342321133079727645319845631509939851892539756398737035161650274817795997522355378609857258990089971117502260078372126556183076175869400266904887262331373753985508178642934613119376150901676911014916977629804769126766988293928036216007213641731693710780383181358836924965389772717796369957239668181181402315909347202772971917681195957064742030847360449319356445250027506497016223165069668778807637698982969826179567717741777055352107084085199175066512306065039992653284969727750371711720520867238691301580596616426951633056051249995878841005739738790138911499975921139686429169482174608409965990183832276903976292905393488390843019525414236884000515619584876247165892683978847596889331313592433274039371887020528015972110629086831021190350019145408944091536787649417419657002110176028090415041166732087323380814716237833966318680378403407122686980229923059307944296236917851126277383704944460929052485903888425726961613148648058585443039186531551365740006191596653465420743332062963030633695543898389765373324333896234789834309788720856589094150205072527684316373354683362018118672945031252306270286575802130621008562702167281550463065376497392767694609536262507696299959018988261071726285923289772579544799986707925444902440983543339790477429566211614840216195411572853054239039686366060219441880107522066636669873426343577685181045082807748705860584365129820029599955609594451046221246620898550066839391231326824076251484613855469090730285492367899042116082731444572353700899869438118401643375179264977728790451632206559848694267657286788149933498980399617247849105001228020822548262740536527020619534899808602596266293906761881636359347659954887521122512730226050577271352955557972381935578307555576817803118003392046959202256585734773351074730500546666658307368987051628605193748624164766893391902431710307039239154790728692489529666745998197730522599249920515446159752121603045251651920055763741547480279908582101302273133663425085087856097949640929396174945645184914788126306644073428143233327880694303386600934499639339953133850484681150834611587205737975966084867931115070570437219855256546959633367422043553461206707592406251726886667557895839645427623127336238341691662107052219016960279637579079484186449351886479851541159966704944387277565083671890404021932511511524199877086910838891979390318536365275641289601193054116454595076458270132885842599436761170989209931897438908541774815033868785462358515903767773245633520445947144981158029333337586448402972814036101513613071822800381540090965099095380213319742399194082068992182525022728984819324692025363637688127239075478884806666585116443877391991859457272627971915189987959324301149022505796917664870555945123041372600208144773571420960372015303361861302950157270603298123330880511481229971128671899781633600347056140841469393820633620671578333834224350469138796445841718447373686669601938196165047249750106992532650622319000627956716856708002810253906157011275297826027452095770178996329901654551390902427577916866344347352334477991849948182074172260387108281374494892676549745671897791141008802462449121131042320480987975289574646879076125242724134121665610167806262422411603381193866118888605202008783933998001903981272524238868764027291476273582191806476902688608640413797432509100234128578593361673879446496699126265485059661444122786208205334997557856181883888446098680861394444111323850268677950195359121862793496813260286246251247471565433347515776270610536430385707474915894265317206665667170505784008095181751857563196605181495662472329857093302600550655590762485576657659191834038226012506341310721111977696813159678681607986995063791501752839077404764457065108588326699454618134685525383192596172047116578067580291745590625641421813796878387154955059977782008658559327131576905241088711253701771656959346368607164345244615845301971955068139920153627631897640473287202939129515423141743607540842206361090605248710081204343553102387813097175405593011817789223835140783692459186362643137719452243502229427892259475657144847910223517738524758348981984567273023793127630909817175409856266289204739720487232671474515291483940359018507717165516613805068114446246731328590869811290761900065856788176406278190403659675356521876839978402117471074411745050931832722794364150449218874762170613883435911996338787439120717160495671126706998617105957043835952327771968404256236908603792309778646298568013741071871415895639255307422154077106862433926059538157405046911827800457040458320724664792424277651415236975795852431839877355730070788500544320985677574085685209173342636555625856388122302722257510178153462462332493861184843905516655136431967488982499834639210401203138511814411531352050826600560654327324665288932877618649875148403428094568969595645433474431072727542025344709671594142392561848053307850566843485701799425722387853671766882451116963043322566911084469928471027059815401817515105149487295060822553976531993113772438945750217756589018464291194126121688001294614424681493870795255719641573450131856132707762767074032134048262013813740816236024848969615028937822928513315750658399903756111120548861996619826990949949729218273102168385639989438484333299762442018903426951368652371862953163985038684680918099435552302647999704700081187485708344514635554015511148311992894084862592571602107703843992050278948379048182099558040146714101694026942792726628326689679861098223952838176827099186365671975166777230016245698125413537646038979848791562753867064712850707034189170303067743932449863550019144844554458613648937575487185878772046178388879123189378832057056192618397823407662556027510797364620727010110054485377914157565719707574683018238509668177205572544995411126175648101931843338594493141710578164209435829863410886644453454171376680587404934623280402659875170799798637641652530738171359027893531703718028350128849963795085536518789155287798194697665453015483897503772640695699517704483260385281391049006133943027575609054941768006998775423978306593110227571182519749071522037588517810917608847011303735504773910780786793479808913125912351503690491954820286259475158060806965571058271377470318333254832096791207580944119389555423691808485735657932740712394620576513217122817576732512050429038611751106867071264335959300724959608257947010367893574466642517615410591256010453851841410422765727972104099880061694106389116033097733118127540235346256710144049467650703020792190638239795370990905072256291301996923193990542741918563465504058325458108128078897271326797685863991290128820745134173132129304562322267760024531109149200695593658257804811631940246890562786812706266035538897629869671005904455455583407312069644017376456625588362708046060752879706319757829172570794078382383808065303026166337391232335024455804085398206668728380680902489651497847909732277790421960253682449817880417300170940901612514843617884137324560359564329182040587029057552341932230758427231178294404454156236638079633098707471856312206094940357732555081129245960942318451023069208795981044725477155790907553430077210376496539325369701963027910467461221299248633253677566327081304950340242116565269073577540048639469622382730520798083289226941132586743583402274530696777025401717267098392547694149526368134582101098508576892684343148865467052587527023102058258490355030850794647229958448443766243847670956434524712512817164830578826968501577994729614126067292337943824247764095772200373805663427140586666851737602758742851177172708542409164928929694419411027812904570673913701412444234539758466460971526925209559465241437966229053339875127781643350062616875583659788735304597464669001128060723126052963438985828084770205256017573859185197238346855243439826682863527163038423178636812216438825497052405017867399555369545640195206543343417845898576704426647211883743258057268098880530786246907819464362521925825678487048909237828319397502005493514460114667147834352571362187114041123869296035219900449823821540865564305201595549456832340318028241889697382651643598718229053327513571454070932798302313741653901676568108758741463904246845236785481617211827536901510166867130730060843572581903632967115831321474305698212779671583315220286976338218243236094764319142156706227714074539217908182856349749314130477893558450230616802910473491035761638871146011930078665087990087228321726532454741906065444184787746668829996440450045271308300548152447099114913047770522540536712625200349326494293174109899515685563664475657350808546559426549611983736713553276652858385177232223983562542976848059481496277876977910067456854356063971953392262407966318235830704310277414723490597880888191668494012647157165015053622319665200598780520066485829291106554898080036639212944944228500200113947841397907216025895036934910608881830367145607659302157592036507093439823898311565000979152293331726742115573973371143485776753680374649134270502311597181095929271788420949196888967693919825121571791154031956680568036273354443683303880508801519613238776420956970593908173127941728255328862287734393880709135274277760741868692185986623592113625141952478004456548090164030094482991587699319978841771631238360405711571032520164417819788025483344191238675453116636527539932195521991008602384910801325095476532052144490851805404005200102296398554904735962235348070799758136927076109097905416003895434219149137462669846464698435525550573325965197702262597456245317714547392391954749992326551992032707774268084104636025185629022400788869607851937932974283916117690685663548694640929784964279259606193004496489303859823332867055789384342009370618163154508175477486212832959216913240966420454906321402952655870920909450388511236584251248322355889270114135040617786853918357006474330457175337819350990801899090111642808054307265477638110729562593690649959530949048947240887680884400292519888035604163213053716854491484232753429207253164797060276054904548545308830758771852597428374083108118274046246365945916973320185125444195508312582983116726617225471600348874374938909215921383214150585404902910970576469537946976282647935483479843401397617230544790385278644002548913681961210750104411548319300026919017944729183099097702076979540459482700987761794287354953553871584149852673283996108705214445990784434837726400126553833512028635782681222904902344929833686308333063161095360674905054265071054383654426662600671049494941067363823282213510212930271209679850383921339792975397171960613802965057328078128542000717238079474249397071815754116267725155096523136743462221943485956744383581403595193802301053433451261118376806816301444684954454177229964072789030696829968963905319390189943201825391854753040454766552264497825360394274186321630715527678222882722688515458749497681947078092586914039717309636758623465856332870867450313148648047588258981773954277294527672668275093383080748615330104340332409955540785881253503377028989514239402701282050933130618573354930289220424834516579226793418253055377443815530875730377218526941526400951355380458720386956193515189493725655852574897341739462303688554215893514432736613700642827579448670995283734249613783484129930020048851874640034750706809680815692086535739118256343966745966531289160344078353164452508497815056491669595431125936383021003671437119437548556608823395238482177267944303610674542042277891643192230224461590825344095249081593157903994399687306382531133581482754374597510626135499439970774711341137734914809960176841204586150024793705920875194324509649524777081747230189293141400720973948568835942756813695313644238353173303077979310022004926606998812237428746957697609249891354531060252538145977990983426337662418727903154861009947262981284997304434090793788055081496973562291178806521975764067632006680830858762998785986782613434048096946541349010181558343142103266426976429011440915066599165782301297601572775777508788206640680224825533962919313302037547985495269492621189951351859116581928354763279883617480372244987978508202814792439067383061375927551098676998523504688433864649847816437431128309118730313202315786696888845270293805733372413932494661389743924810842241112092232805667799656334337702206795730837739871405399274404042365461298507417065410327903510569776021827123199430067019896813189588058730444967250293445701428358699258504353363355449346715398687301673732780783838648703023873556954181894287530182427902180818240916429014837433140895181964395503984171503746762915429213223617097381537373567391446038403630509212981825495185368027529622399266690089699221503918455616541837491402937182985065542502967942700357472883369745059206861865221423902964509984640941957765427224334036004356343483093725310196964379287023520664094532034843763575936610598260870486333538690884237179590780594109731442481235580729674951779688406450586437604411552007813659447123280007203573878127612937532956079296246097348069973998600631254793020456947600430170286837856892871321489722322859963877017887770769041579736155917579951649442781576475629505911470758697348193692631448083717418901571367409349531405495815559014004041656898988548532719462011814082757512961599165121035224880709706539748768807511211393891201299178480217547476209361552033127936613499841742884342163552801987617594910023087035969613021834318161920491099649563186560498404269027406276749668543700089879116239718225868604873518288785018924274449350482150783577143496022318126898037157329913696205431100729050687058504058387594872973285146466348621766067849946091517478809805245346920637273858650880412488548626582453052932515784817381984472999501609237680635054893768246342741960788389891349416346373925101670975428274339152659126780265155876731084570030398580972851728528916155293899325570790727568900823906469470436516481896140752947274308726354398957524143329800258706308158308815423290631619666258737625301288534191590354423368683031336484487107085272294818093479543766227999551998091598500520874983784722884719107453973954467531553561405484967318391814206600935519043429219660543135202013395844912518401625393302664663243504612018841215673614057091681428841024430529992292205993546583072525426672052815360643780321304806838877651702097753876002629232003450630080301265034076918909541182023937862372001470520610729194631493530847617921165065363000250913319005132934715646978018309649733889063695592214762131515868145419411822404519771706563698078402907933583944491441495452583584127883308490565513108853238598929138526190456791663606354106013535454654235641376075574867611372802360311641615715084126291679258713872914267435813519800720953837986868295688512186779580941313901495695508149950093197822136390731251284572792011366854597136041563128670225622978956425556983527810834403641478408678276558907769676965296341454588785425738143273619309838782149465831169609893077096394818005211852695968805791950061739596823975447649264282935320632217530308736278745767766030681672972296379241730459539665688861387216918318255461520258477959723903016432179179650130644669956930899879434265036768588508632942283875688217886679415642481283794190773355000603510292860689591625834663973071759557624965798617878693884282221178834471979968877437327983540695679943505384908186543816440471042192974594409377150599832677938836549547426862877264763179279985045960449918503767511971331170655965986307889571139156737792127687897691572974818741904184677771612392010877220245739620546622899156298875728416943405071272146204778717778282702895591902038153506902519417832938840246527953819389113793639667194523491736338866870782634489804862451014954000932106258395257007177080468839374889776991652750385857009454576121057950775691952757922742383304812171573429758975105544721465578313705851694219797485942684578823048281490513841073565157516784654922007130797957318845898497668759361039172553044742379069391225182882489630468591278976035596315497324224299998573907442573355286353581085812966108762821173021905675431703102971344297983166394802433840912948861383588113777260333275759477694545599579401278273325415294450380418326467321334628732882654860594155121191121464416780448360297601541460106436031893294808624022693199710146849466165662174027220840141025248177097144084981707874387792113176146852587400375152429731491526431591431522811971428472464405632739519081483341869645987265289565030692999405757297106980982663254426723161416286656716650973200061114047522675388017096429468715965505499792658791848718971389438943721908068072332821998560335708396361448530541190701030656817812782378546790075294692776632664733647974670035009638368927768180624733434396408596259187427963443797458688601342925609936300599182223769486687980076889003984749954528754889354131224309827093626196189962131238269228591531498769620814285335574256250826850644252650056707187603143791608032843622982398396458683370636420306007817613411034487014040309446646933044446390539245508658139890773218879232321073451555215753453194722987782404011208615210623575365426849455088247426638389221143068828390822453644482860922344041102912671261130108088356383316374162104298807867923186394177107253696897766585456681807267884387533511977454307221795336201505729465003464240239104545872387743966895437565029538210003827083050475448237942461322448211775845963246265295735267569127166547628335398553340905969054235842664552657793650164169812892535514614046314813000013951227525133682275303590593733562372593996775326061835668427807087420487656626847407207483452153178824953555278430663274740728185393606762917716640350284133780219574119346590282572769048088668459486435732671329307747595435722496774641806465372408202849318051671635348501455092791251764517326814147130342621840854674109970093145936123325910157261936238547986321690739417751676566232724378527761941859273614435076409036253090842704770178124476256759239011061225994092161071182912595862836598443891478936542031629653406118208910821275371247420876632790589780973010249425692495820646881375984800795412251410727755127208774561496237590564321562897250379647812157037133546599652348440942216630655094602089694631348669068052133004741666936878253131976533188622766840580130287804992031134024338390854559065371729350924655433403493743786071297953379192836423382818354802785421237570133141705546080992659165677780282921291813106889944094656512930707726802636876882443744946646172928831291621156334461884605351897902921473771777910538800982363162794109603810504020873122342092138726269161205466947745890396343558936384427791285208355335992675214840649676137164264146434018866597329047844396361306863302666741012316664061866668238957893722380326763454916347446022893364629275388815945934136914222922968045766281026231273374182411811515084596249321714861917814863162611009572558944450687327040393762169506787811975125651013542289323231437678860583028330000667260994101195402611837431245704682065028535545302907738563470189498959671920356227989609988415130940291684310642387309321697763957839582609207489883438691433420878042420485765858804859558532921354794517107574012908628264012514084402927599552701334825475622449492470269841077963539560537137847039824313184471677394416494597002715071139193764078218584584287520996163263454286702371541825623730098931134934848927810585255594780346249848352181237384764906098577150291597703871026559049659717192100512635302837332823132942773894518653094017918886946614267076802501364872391796215229461179604580685986645196068539029113967936830322865842858302820244785162139272077847700697661223036864969349643013454455267072766928102682098461257863437249393138753712324255814783921745828656330780192623533840426814588276028250009709498778835721624312575620458187718974766153396085746112072011579909137190358838670114278053727099508650985326751382735604980788048572824237230444927714861189006598380482409236242038805301668094372973196859437751629932250883839861329962481309185418955972549418309623418232067356567350156366190685638261983408688888325416316643701353078208886612923888232342471494143657560991870957849582676281137600891930588541010575357689133324808097548421742124728980772369185448332133569352100790528763521385912180589728172127778825600072656203033763301027891811900588923123681527874533995811722111266788197669392648730188695997938802766387292825659464079038189596385386651887126982203240923857344703106854773986774814846660080093885539732104554235358777945757447720886766801114778521695751403389365152282992301390490178575042879707034550444686226735021028888342980982241806960594467559947747983984150894516651306570256025874538014585116718282519674530513450823032519007975563738892296651076503516046056466077434183964309595037968015222210223920520220561132776254494723191062737028465728447978101437360694072058151603887576807591257954508535456939399564847422059473684953455123175840012568853871878416434745375285308107547073763159673771288904357928530579173693997146539187290871347809614075518560822265595483715763580881850684667686619885373602471365161318337304926752833352970029839114103199965318265676921849888346453572536878256865413906191922701619437798578060043570721811727294835975013175878869143263001893158200723743279875126196926370904945473731577126525189133009444962454131072573784095031900252308972545382352805885584279940444793558664809592940807386150676453829860643507581752937488845522920309007052779763610813325709951754772901169327899127360433116665972872706343247631188946893517292383686174305814556645149032301363491209008451658881697111540316206076751087573616019716360854430074761019144807976177733790908410197832597289821552095777002741577644320374207244555967774515285970444653087722672236644515195676024870379716614976091707145815345201428839821609485712972592063627988374206830823122770704166733039486093262702080513529492288902195894248359806577639569547921617154673619146938412192776517490046205592516201450696845246638720133221214056929332549493344688843054287743585744244299987269688676873426211777954741956615813648514963973854858758461773605101233060777730807575520707295576940577813889022734865335696313894687328937537171221225224425089267195181386602920512979086992180234129995980164765147566854082194580095227684620240195142307970006184954623232019423699075701657052466463151466168709310062314176566291685866016806944911985512841153064768507872356878977984143700907501090103217206310750851057003351799316942479787467695003299230042249109180159620895086454493464828259696592356376340833231557584283294107608101136560462474132391883539385264392724401873260484661440617849275549921886975415416039287426132667991496426040574209752931355782263300056959124817723848919385612877076664322927726873528231742160783963739590035840226910268440242478152542863692600205377327830701673027909878901832627035935405370742747657568761032095587063175796571858628566969698155672529846426811462943711132968364488739068999711155353896958777128711043516846849145164537527842909846916034375140475508626392081812204600618423554608354125043463970177968967638061526625189134331234980722716671961182460727661601427840142851108428392120131363970553448107319841723265712991499938791462621439270854581411517453170166817696769758998152952274814058987827624953913348243823901243867300557117906883378106047679130602249527309966443019094891327568847563737705254730419757315954268817643559021289673715706296488283582559969307817842834979854018617334452123575102106589246678412089462481626190313746924260408445977198636777973054426334370571564162386422356243953629926748538649473037398111540380828635031681853488500371947785491511630791850531527369192918904405922144482287203836458895072069335928117638119524144118934265762539116020233299297557809333143128907088528850694374067761335519772291086970370671060617823763465577994834688326156557475552982286405822104780416221312155644462230362663991663786380842418421085581672788040499394161646523789606296827620470479644249991174757227049741098879734855816124613869904456993937103722280368648209645049349291963596498134715239708237044393858256787364734480049704599874158571010166013283645517556066028273632667079520008114966632681141033730977857966113097192264176974312780889665379053695954213462275250522461403433423198654169828518264703948944627965895186412075437533405397105140435565070357208034818265874402194706666968259990534774651390543333957535767642990323532348432333475861737341452285990762279884928882799693855515756008324797575211587882998479528349480243222288396356739079851999087461098825604861035149638423772369894382608150602669831693403134960773294016423835569322305613484038302978653506187039659158039861831119876852499182131827849328979980008192132358875385045908787217713307173076154951589294642679459040362542520504791461364979531673611121599288629592211289218232996736875285661573108391898133031775460802444066505218129009410308530461895448046432512185876915238646766332856484422183691736954608304045157982737613124255719022842293085912444031850829532887946335111956811073282085270198545776666488589580201612529575354341315232013898538215493032512559410000140407696708947215155269662511786805650050578120458170408810346460821272437996786235773090359501430739574716998988016086682571010930556452413243204570511750913924456509236571790246365926159544344903702139045521913009770184511425884169897495994928424253872721227000835629924769703096895043531437095627754428913072756516939684495550863026337642817388890830019699651838167809549526334782501048722814363174142260924401493686361962061906061207062052678132329632670426957164445024182586919581334756655232697979476981383258083507892775084520643041521775471796978459628397079210645092420691527292513173837253231170470978165423696833836496676024937193566987301627911047501883494822187488407214569344044975446381430802123046254530545371505391754363929551986012881381395619658408087611862735396476600916401971227590389363547013327805442516086155391707276828490205611873369675341382451502772346310658556060629004205721122158317488671123900409212693309663056003384304014512800813806743797804955916326657638000773273904417696284506435007975597871873042548226264635893884199707417047405863946899151946239070425032725187953928387472288996472741204764044466692501913767301070438199361633491469818942909935463966299559303503684352776580655832293537926822464471420424893838476731642838691466765672504719348842352883267293241698688721110394277013614418484018107442679800354834832276335179023350022686158527378744861058460100202271076857544527833578798244165963226473565945691556184170801678174975509470685707803965150985668967406829831095179131606049742142014347275006403696202990312646888256578220599354564997026289811518983547089795984132731199749854872637266996612078535562072611567786568023805653303099555875722266464517357738587664768362475647487507422482369857819957787963035717097020481134349549880466392695841873455196015595956457222743501083319435485425451705155365476082883996061630659385944468410647277721989473607572741990784159590130047948810571032396611849909343236545033500274027737708267689609940687287476129686204267470467454810551582742657032247268854932671010673587163134765915009351479142801049192321540987784074491732275094118821040291340486950062049354096169772643715982546092378039958558102120895008361608367520588424714019588434969091095820780180260480716716924969041808086697533053175640179718928593919030159956570415342235863809818638609283895790279115930593397859133977018958992884981824333932731776672556193825163198521206736397752458074104793488990235503915539719570351582773567079010226944961550307291650660213369918941558519605242740870403930059575697509470379630565027819893812806658703226323381377396142165444070565408551579750116046127561829906178841896239733369539253939768677795183955840071432265290264799951740067631975382341297019094465324338947324638704901093961221833169360071088741340993797650973698531925256698971664104186414580412520542771442192985306056592079764837077830376234037380540341396090401826538364590594418729242966472953640370777670483303840198316126325693501573389650858938314546978582277772544966653775578155237089847047308720777869073028600383105741617135048564690795923764336910405321323319582013297968959727785181981022713094318586238068658672046308845601375507913953122112349109238738726706751226760542634626305348474332288098165392486293235053434996344694335379256518801765797725242473731370273547790535429468435783100864586837043875695252489993806383116688816170567136869478002737662623674811166870572890048919991611921735276391936352143699124627641905063353862806238211664887487295427787682100256520655941986161957944866676080824549204103034528527730373720484039709465530513136066268445890948447923383330307063073378999081750965481816671179905083774185127726737434274100033558294725490441761600831289775071238776086048897918808775443111095142831599429639004018269521316056660626524977061646231664874605681559620088499262054411841465291338818458375933682821675664411408741595097822700797827114866957962524117168100301148554967351110514995161394706371122882241771409758447641783536557222981579560444214845345278321733817680583333383579028963212221206012301161591734688937506647229737602645109945061169773212252081125367017718907731863195759739817988242224725033976071341735084646753854294050270822300492444788559728813899236498124508576161603195304226977667119672876255597200073219762672753041023053183783845237199939029387350808168080027978392741668564364163882919363918393300573881468403533013711416435679449997513771968770478884049665689867825907830970396824912320483126801283708367886725451631215830945447599090194044798835397395135260040816521484959005761465805234877128109020579509149533697927440994819733655009667583014034004407094626922036796298778449338613330347730683755278306909109390127547932009817353932731347859985896642323624686855226672826605230841851903712755119301699457958084112929107841998868754751463537046098254532445231482438332232861113947678752695921971994622017223271554129247330337139218121045627683403509116046857896880955274175696615350833382367000180123227210653837339081309574735854752186820023118646718043578647858854758143162813537613719508200308190603683808345220231108393879240621454961919433763921304803753646954642775469719211611132932474387222931808499782659738375892330864670157211859860047046335221009923306068543608631628494592711566559272080019442410415605313000250032691011401983797399174679562933880711371912507184454998428616594497045929075741759849842209058678487934301487308262013085450102413829255478397387888655124810689844400158675851470127997502026143299388200997469404621170580677058871363317126684395836939144048247118444975503796043978110629352714929610154218424483246660799000006381094987399789299888532864080854087035999246019656314802734427753430339624837274712967496289308774990146167302778697769102452661411137732963156092971529159522437674166442809879839029615516957317314285749582697357046317240101512539898585901114845221219183870173466075055232431836887229997688973077044613455848116404502477776047977264964144986148772752461305429578140229340864787155962055867698147165893963688737275922392722642688873392369019115893291403018360353401408837225217600799331547721803440808016308406820802259962345078092102170065632041630707213688409371913431287980885219569933967626818312274754520643525984028681596118578465848091568385405098577115092089568789991594700071662447293396289142086697132504822378458069045663240988424270451657004972802338949928900830247347940440557016540918569463643441699240565222762184620723473727652181636383849577245806810868044710865572726997075846690627790171549122577519423352971046430937393829185803640182557837680753525095842940213415683994361021301016939529638759223570130351048465795698534468916483824465777729861568019048674356954064907631930615565513873111942229391868303821595188364993531783098582408766975388677999385234792012507356132509013685273113247694806883744074623838511391748739920958597107686239570429637808263987677098462162787161955822063309214177370602656644654215186384404853947685241801752760249766459803630275660423696703898803027097906175323522024390623477118390504593416441809129444383638832693607401540484908436106807187733572375805925992056824914514933187136577116248519498672098749488090816466938481816146180571600327720541714817771561769706814400024769737671025520939577754569699671888420262011419012561947639259706518112496059545547508103591331344607747425787466078906615416226190506434714361997986547193647179529521745400906480189754200177693681403940286673549656896773311418224232872950715373639721183401286517692928515353615143026558798091562443597750226051657751505070624256587549801190997935856160587592777153048652697265511290222288855707250135132157818118410509438230657823905840882248828916005968479379254730988991915630044031051970471449658773644750142931355189215915054592866711376427590157431722640288883482829085625453450633809570122691005626253023824318560861407720833130357866929586383040629084780751180955184705648709743975889948857526484316759655003181330814470040697246772674074786679510647090435754468853878576722380845136206758087459005294779112116438142352936007399363939998939004908961227145022034126634086811452869347726262503480740640127566608799928023108761215429229773671231213754016246725163667144350176832534451235625019657020348797469756975827410745835015606352411955586164629232169910813933146165787786379032354986456388876100450096795975009307441374409368230482533496885574976966123519709477307082234863468694146860028598281123403936682626119706889435098908469155566162490493346973535584941851241776406530439833843240606896492860620231625074411260891414763883479394710651581714505315318662513804757568503066136641294179081380662675337913507470392875061712859552969382735306791057204935945024665087735149851982168574008034165728383480164139357561249137203520458063668481988647914056930621010545832016177627999453898157914813525834984862969810043517287483848177494554287836243660999305592088927311578373165631057443425907993873929465687876745867635499169599425327188845090835809559948575085240052276309758016935043809697708977919893721964969739976715604343065241945841479512117818440405893657223607483853006211516955330246647857066530037240914816830679547370040242884896834080378547858646757196311065226906545968714856472785821005849263105990609128135550655520289026357375073120613714339378134409932209095797237207411995497265855826442534788401358800924085902856776995397076679535632427652535111960313410365265877842453899053467731078117946682854082203383087542079341861896452414058401541380662138869892392036374182297616914909772973722905814386542285431206652825446647789926226688077965979189939310236917336050049112803609864919673422733551939540321533601488990483625277070568808811920345179924869333229219650063470906422222946984470330583673885893018552347296569616736953495198072432153760080555673213826377101368177565689696350681937007959871763705210980397836829970872044204013729095980740667016352311613717598449560745019718483925418828946510829852827913050600005982792184942772637088446837242285585121498518100274935252947244716756228166622149721261495950240900566405095140885227067394872899255308465196146276104086417303685498860370594769098540974130308453697330853493069507187652244893520087238211318556802610507412309875244812532428115134576591841369579790942942284987712581149852377193304970829333444792878249231768563930291182597678643981786897893715299139872581126474575245939589925585251111886011826276592691159256722191748551221947389534974681184631497823755484439579928717872920465702706007636890267411518613914695925228898382036904753524452578071467107361954549769900706193400656252516621528726677132711507982393645639755559237413991134933906185410773709728146252293370507024710963394813527696948771014595619198585629427920676935716220914703363482984982940168901738816787523962209628014275528428402474084687932827452610811619326517471675088378982200787771373999651839566312604841942484095948732285469387962595761600066154082841568289394450624707402979945887709895226993141323885498070614067898537624889041654076077013792066785863347278324470610188140681245506596741542839313651924638353707317756916460486928790757678462372817766051944552708296589041225909754159074329928335211315873796135281560307936864460367414628992081960323184985502616050232514116198549039938021085162605996504032686963536974019845471270598372340864456516960532347838786938763184995808634361077872643452488100406602038473323340321856412183410557136850272813503521959830769690729157506844028099048067837892732771775053676360911560351134305375874575843649037884614535939178035385161232779010145217685261567801191115444628603589359436363519555266484637077991632607380135115363911298379871182062390386438716649143016183551855373494547092621114161292788934791989491196028321654085440464419212968313558982303547335802442838934437301689610778341687850481688600559177258135021584970658141200184855667575494917117489763257821433060175438099910845827638468580150473378233262613516005242376201620623174881429661414157885062700787195253065817523345771454842704504678879286388454440516282033630645407951232149552990958693098950804392040280344657232617041169729856295583204847256286824080346299102605570045669947421439427121469107972124268072884614201643603204036016816078334700945678880083411827345467890228845571033864176210355290030518869703440096939559645747605169631077435214209110358481123574923366387471810726103076871389808483743529586221616936614615267519462569117439608218003636515243525451152369816986364935497923718898533208622978985723366056287203130440601572698030130690251845804320603480628540999766449586462020030171565274564211072690551654713437481395024005738622899699865639397481166804899487362513826135269094295316253617446929834401977415038737200360945182948351485781323412831721805467205729057829481044127750276234834485444862773325047894508168633821765733105780674194783268903244317688820836029180945956191001914771139224501536449477819588561509276543750066956091737853770441321458439467332481862737891588822385803989271641730442929077172998423079409185483431893309325735537708489650478965783714203850806140925815409616544773833133318991952231711110097571873656366360763296431691661249548728141850990754100817565483921376174895039073016131320646836899391637868100445108735357064450158716912977021096593433164029800035537905877797499331881893281346901834102349632174902203451383503521824181277854208143411456216324639521753645374037730506086279352913780695117283489901417401670093493560900993881107395567405984816395805524164857586200248048081138259073324018990295507127582168635112226938635600822307539975339946431820025147221356089598610272714406682918078311719350272847270373700003908139277604569419092357086107288782265004100513209343290854832383997351167886742379267742613618914349367758368735365028421750738212701393160182488161572815651500402837306409067541142322290225967304703567259757911947340986505012989004101012758923533795378705470233519821526432787373974701752375627562017830623217889077468551601795064001945112957726556923185764904413833717294120196060035393634225715319231596639473353436211029193201964434677158815261157364704347158651493133482115637754856490541252134738287093491176937008701052956528788917864244593245895873368584493222042459971710619830237523799215559319126209387779934512364505064132757079492347635829766634882709748061161738007936355511186707270262901364956871943459635075856067579607676134700326181238529526617256507438509455328157714699523652865472650875653281480684530366459351379111361801865643652839218728009385186731502946038679426592318129311326258633253955381246051252300228570951933251546316579996714913002359943717005412889269918136360484605117314098493877328804121655978111332557168534340681088530378905728268088012334163349116652165054711794423650181048597542609428637307600066732364661864149576743069931370863417189476361714465589379636404075135316577700659020523384773820264140839513677135480810530389730185347365559991809919121615284238175191195620258534828036058871095199551609546051103096164106135485522553536941520017550072639530390200229631706622203414187885871382598616184460168247090718199689995598902546578747248163981466382221064145715306030073525452285339689127144762161718885098786469855165288896071838343230665416229168261980986014777069839009105146004996331185748411649187320005971537740426764037510110903031992245327244755494633144889491462636130296482083472894176876945643550676647943014381906752298708388252691433921570908985358367100494660408305048622062813914261388635530870482869057495938887606091277207583743352375721630157727938788085583842166687894552079582539930441394087005988614891602717821120056391475924961551749247970238029751492702594693316644443838030804005041604539653031876253985087491552570467841522882583709166616758317788819292265535187843102922057998323866038238798842806638512275520860727904117257549956019629787630970356620645462611476162060058747426829273395367379661827104166708136397971023008685484537819426996141311006903867586370069725385297320464302228891122411641979315601724970661775822071660578029303280960750471106024949683511059779920279318834025658487962972076762071176933308572825163051742447046150377025376886429597967423149561174236570337065815326352662066717327029401181119483567969478606755348585325819691402606011467192660622678140974695132450301406695434268623307440632150927284034888745405639660884406200389355817829802514780779881676246266092253578233785928582602916589480363544781145511924575647183363516910535867311585104840536344342596101447501492020001851161962970575075487316198236725505923657641693634808246108616868935470703508651003713410785426370992627956066449897780100847184915457865043377755344525257286854520512270573881620795006294972542507084836351652483998646118036275197346326829955569095140848953765847647527632640542592223523359058256919112231166274076240303077236478536722347554655577599779077815453856715618671009232490409516637716474475518671540136706825437858530611602502399174065813781757407085354005647507223048760027377724979203710483039350690513556342749218195601140855708702655057628964342275760079329608656194731617086401827645446049420976567714786688727646390532028463572051325236718225241389796523021074410085358744227717926162687465210966144966329547793347654257974206318093067384453310751035347729253004988808043517126872872922136713726062886352505079340874335808641237900409195986428151029832685800841153469967319192156827489182238231933086020631668454214347920155593720723583695896735231541960672563566806880363563792260361311633770213478031292263649723755900536562417617961723925881485419917933891737669189579316816359888573042934747669102772675621158824989827285455535324300802541864641289310818348056304177174158305302774988327408886387080670472685583260676372333169918858209859506317670520956603721690718681425279662013384171991400010928976433805491574729636897975832394665561346947143024687138301826354283801982392783101397992810271654130587986691991032752686211120290099989621879091121142989154951993179707746073491777265469033028859809358969659313636424966232363184524554972421358914195392128844237944878114284890983677076220601950352188359990955663639694262671209127043474600288564060522533600952137372989155433380071933048568951234637330862630258287525337378264823740483539666225974591166879709353182374686014995881123428850047333517334428828965412053487902343905159235898666920076658101471965195976687272267413669413514055324638076885069691983590029676735817162876895374424231267711434300341814905684950439909142287203208623416308404024674222993354937541366442829479126365766271944269404096945359401809771376143778786894569450462041763698852530090828662120455539835550794483356459753699253063745192016442428259837966203802779618909475381084478474963880471455094808699462442374764183204309920038383816836188067925413098193632222901716819294580779105578334921913907681001098049881483034172866224815469814217985624045442354975030968522179495292982832088413115616749323556564416926314323573214143542988685357026174094929129809256748678212743598441962082812153991498698025781040121917550047495705893810946481524378224302736241511062187436610931796957801927955728742974139643854225863557622440408340536236092953306422655833256114466839056013223979598604033089836411791379115979183888508819664211614411044056636536103291524705052521687882165662207057923087041244180577591552658908711742067154574156963149817780952923044578126051094837970896311833802397378582268020246959798713396170972694156992065364508250890133511467654214296848147998511835058412671062056839595122026431816330755037982687136011142189258998954297614384005999393369900335309683182451724719312523169913776086590394653306444791730746497089178864330641030951994478666694010442205804038976347920132609280538290266736497203518509088216307490283084380024836672260980420691976025985621904350818270325325295829398833961601160071984707612691872448131540932263698775270017322294427601256138216863884414506184335860281922510763223997123036721667254106984100282611339875498688407552251871877655601239758991900939042246251837186256990320181095371106287519818064574159612486381450381854786309828382715877696467486167466555238271974464510381422515994567536087200959229804794124859225940353359014033169212183915053569446198348864204742560224618895172606771570339464452237636277951001581434182798792247240612716806577321667680415031485576419059526975540958448652441192883401154803884186914825746321119523634855257417575086940748031192970158206417636714078903177720627006026507982467630700802780476193874522727729420656383560926576015411808103426675980556797172537616727095291977742669553803849969266653093883393719372214189638138975599552750037258733121841632131401409499166988990219803359569450784366819635675188737636708432206667742355290667467373696591143715686358812380542802573332823446301330806209373238205798216114139581317381307615558221151748514138681636949473608339015043767079988746704428550094895877396998457642814837280976785243073421245901805623635672650261855603041638788769745220238528373922392512580770886960134430224782131004721992428774525869280595590135082666880232510806979786397448291083415673345171669248898709103817568078882450106945442811837543707017537335598715015022168108513200561681045858218517651855889530643733064095125618249876482532359389108267581705568086814471289047103845012385428363007234653464633680208222528215467530295777225384100567716584124333535410769217093606680922050999741998682198413316901922607894371099377138012813138675204529091968147018855069476818766507361916869853518886198980390928960265095458932310028207265730482289703536532796281029642371998249362179106498902108403784070447927644793314838770565271787960739359170550825702412993742218522017410529663940645039160474053790011504831739326403443424646548327420986288428092903339358084894911990445433635046510152493410734995666098532408888038980779718763555013959493069783472157718669177522074121006353754317055028958415595337224533566341325230607643698992879144083953882179675386123647684248878214570950484615868864429981074025462952990019827100430513745816243257306504608427146045937371183876057816330769478693308504117867874599269722594248131499157922278225394121858877642867342832789184945215371771897833138760591859923023646541103325080306157206244272531270584169464816387656148163461784672665982485944261274195205837859237476345867360065978031423173137335257420839512172054670500320412879497875985243300642626994856845685382005974318300913874830626612398787737685463056094976188111739090659140761888524529043688544115200564895725721721694534809158824935577400130880052697954421910084889283296090280306663531967493679773778587322340634080360442399503924931487523687428241106308402375774382566597625127626808703029275164545026110044787949811299079245767629966745972488839307253407118186358997063549293437950052221333277108823204951883129751646258045692241080791345012149133271963589764705394456627848480849281739208679922860253323714957991062700151751072112683191446174609570006132818206932967556388525006187563328258772533991122490186286849597224381381142045491080688300660929294132309708159997949989035848882032409562535526344271443098920521826724110031078970482323980760833448933947069642272394715582191972357374254292213455957847651837055267525699129543397277791788159972383713952215632674358381627009947420786142924003293333845842268475043243149477187704492064328876256237525200384259723669194925100274851850394288625846564516817253709361508169705867033609425276253491702278952745321838026717130280503316976882702646991805540846373354789611531237261520107902588304390173900440413860943627660666934475979244741156903093415224902543074463927321364338461114094073154642456084703764639923602700399362476082585333019187826188432324311605421392534042138938692427751634014069904274441395326703369814217013598406039713460923242479121730887834364090411554811116063644228934380988751288481762953175941434356162312983395666476534454417057604779901487839163742435666515431623187661781459498616529629167741730860531950311717683962460873981012460722370130570131356705161110380333671110255743442239138808169105336171952683443178538284171501049296243219881643466848811233999535564805145125083390127855379447509820395372700691314459670741864272967267378062533680613069143881265395140664433566589024070230521583164151591087983085009671517557874814867131368446369040737415929228218382544189372967929700552012362360250201150932244435644252405214437300907551843520988644478640437842394829201734941137206093352701853499536439498518434739450791114419515047496501095524771500456268097993009971691141870710213074351944563713103109966208479140478322232197705681593812551638564497347051166976670613669873014258433079278369291766511913591570743029672952454260278422443024109137157839032242636537817784696317773362291707293825639603796807335533047551162564524491991450723129420688468036831834644267101709581622297106366063464957362992280862447248564157486339742275892236644401546325634367252814358069339017704199687876673186094861228677427395954744582719382420805764136447743028282503750495557081005234051697473264607223352075416051653820535211095911589478177448821641068426711999140774275521476819145804509494875384480744046044651159090275066285834931868018703191283456319823483819634320269820088454942044289168205199570255256971814180758189677915403324953217972911709897784530546770392606275294905543391918713776192386797182305954214007952676278942965114082974667678026431562020305155708392468456454373221634162808774033405869650341249063393370742622966251128181475301201088363197790409137346198948356567553302372097552428862671313663651796660612760143822575198460473914496534978158701428481670335978415839567262225694444391063237192640167908698089234928497853380236254719794304939204977623876447388047880792429567130180377427442240321225814054023461090401740206529251729108537912271131091603309060348798192644277519291835858975358706337645828388207207253323587807500953334190351610986088398512935618712429345262837146905351930435955111294743453304929621389510910006415626070025607316583156210478744366630426363968868137588744766520635545647932876617547503215278395878426571746303352674566029096271927184275747533687031965569674674459293838390750647627149234916924756967724376872045836602609874538974417338792807745897426774938742769210038152927558440743714945606317687183952907868517105964750241536769303199933186616025701807226272925419904075080082260843074324325749550967020205108210628104960697962665654236800527577612155546820734579612158047418275552088645312539714498388373547748712345763668458050690190677550991274963204071273215635084231134239864679795358213591170331353895664109461600633910787374923900414773093119442652451413410134859425221525328271137135450478894895664464247780555112062311515062627669699761933628595453349897153585993134195280228378932636513741889776101048617463656851638435647427925378419508121490801573308853255807611779774090349795552785114426996821814424796567711479337477462425243876360643147274139893901875746733399961882458799436040411712361426803032284226927896352654289976789856751309682192530806194401532606485368897749314007907708949328311233731390844020184533113615696727898578094826551732434674396595337908987118719726857869001312808783708869298360388339051868712906433842996439720491763696150274616029813002937816250612504689848291534911257010029731790464803567090608793266077979640920801796149577213254864107939208621897358773746337006516391772523862260168249405677146594073617321274611102157762561354848073014270881391383181215926916667964889929120336322086039126755383911878945381061739640722265488790182087273158319409094433899177257711245193816176324459223482717084856197979395291693851267372575806446100705502959278016760302078091771816447533756100556270059361069238297276550494513020225621413658300864410629091692503630208981180346142816797490194546237539401293500093476568083048922717401544919491534406734085293253450635110990466330228279464365986038541854774308712722966743187662930195206330433185082942579884361887969432010403770911971027158738433685938599988910855945802349550290972703534431899960310224215820370108472231254544338808477992600433954488508081483829033692138848390246105844419564209026536252780787698642267994231660823665751508159624241756751424902299431105832767002707295190678338838858270619091007049827852003334908766456216329478373300571359404075565399554609114907757211624492698436606648274964748560088584983570835526430272042922880485294781472570032666121784313450717419092545872548717431913834946228421850876845746592027722727276610892528144049618461689328314945182698327573424549619751977740052634667636682439653256509768695024782420749379593859395761503193225484284641478291238032473859218664099467190638353817089412726425791091462943939015950218313453636119373345690126079555475119036825310514132843973958438343180845563595910442773873985019791167516678024923592240416527932344985173379729449066646071653303976853179817429661522622837056863326766474601007685433604137174051714026672943947597482417628687609935187599816297696240372486517536414880780122932754078550074928865261033086158131291114451573960024368571742769408979026217521034913914327547541176513922072498628869289268418652340295166982296136965840337137676921891413259144557833036979184701647744992122937143194246796999933257934271964232983144377404193228090676188552870154058137029702361429410687759166019791517112122411676366971100137525235861525629426746269904664168131712277241956719496779294699405867603531719212588270704509477963153141959601329040339431604152274467164517398606461447748136130562456854638047711933570123262346253358872929357641771303703113935582649836536596288340159242613285600136330975786625091723417783710353727351541600823219981581028543040608873808844671439473156884556864347095669688166170832473466373799887653564264921934668176846900157229265207306240304844106610617445493652746024507201375617053157298155073569195513880075842691437719807545883981231838659703256446002556440918783565882448759895369232052550670708327488034703253130425287580500313275768395075950743249472118857712321865085928543306204956875935088504078289684315670800650120039010010685346084305581664302263881555565143671120468946718192777326570045335909940290957002779067089388944164992464827433105412225096642061896635016870005468814743341627417250925796736374377260365608191519999063941394206256074987273079713916014997964817016495815953802184588415765142465602944819871172805207629144116966613875553663352781626114384423095510495597559455117923114150041535623434416184220802865046496115219854203857949338256644241014386237380549947274212853772481703108142995905668198181710509844466230227369564827586514351146166397333728060169132237986057994054329548016516893770308511053543532955026964712942396555655556982069288148380791464857136722478219258074920450964606629542159588471190095479619305031759330113768101582478070331709700015779475414543219215419023887690445631819725819729981388521923744893984326251491072335528912454768902912960026032949637674681068984659415527911727569436442066537201162191550657731873793126498923361326555930498285915193207365386424601002978961148206569748201774127659908859578280079337701182368150322009949644306245615886495970791807062349405813639343306432571952053023604218063638829837691868213009461633240200322318805109449104695975177146902802302830204687330122152662016912275138037818689380433101550547232173592460276889222304290320251874140064209166598521872465522485501158204262793892081386399334320028758664957542920830244323557155068419058824570629204726630692471022646947731769722733317771990113424285531579869843586970584872998111813664721307321145917108428979406684760415044491280074545292448584667643010363413599805851988302833394407237736708037034946547353664213134260729322758850086434830338321866745224000068258983135662197920495753535145459617997870853660164470745282003455442555155475036372789176958884564250906902635956263701072355419901679591798170801360251730138806942922827343403954784664511574895229434679914253557350909386094388776908918346726509533044249060260012809985720080106540230766079908273075558461462085769237530908412303160499311264661200171027068742283530564157702042521402105584925372486588899072688905084905596733866739213424076841365320464746676614707385759925365615188341179420349360051437573529646686487753850199518199855622559622914746459666909672423135135382473900615047548049864107468060512499651656600462215719068184789207682376761110573452865702133870705562319173491031786480495091881248613600285962681055763637362856598943222647851779197740475318623290900149487296451483970888110498898722593564154833487593182833845539384910762557812270381745209837653219984424738108641770870148536502164312056318024298966246572596852233688106240426349710037627549803415228526334358144314657337968366887327716030118227697407773645186801207922180555195816177026615525560328095489091904670925550242418359171242838335633233137711557053352324462190711861177631649547000632172324511237088163094296516705701247153027138993736186685094050831340019496485996105291168927136620758699023014669593392886791657644864286452329003150483221433880739947449605400170871783434301928303116191109544755636586864060703309496483309049004036480992528801233593156701624772964365638838880139608392289595716696327664528603706642645865409431569396989276933773024941386534802292453396309710982484152628654933119125621832761975192972298687465180130695974782433811440001705286431267001512194954324065923751594264638798810843815404964771238657557952890500129805828902749386588995028239155085813246825786861020065796211382162712516378905891498575360908225873406454495643030907849994144793372657033829247960451142496613992191155656360859942708574527118022665036779608116107664147107744961668624533042626762860729873493241830651135047488317698169089541860760289614414382593721041003692917797963214679289715574346784008517499664366319979906658237668261358278337485252988335796186916659295728342477571324131479012090554879110884427109616603124168746565626192043567700314905859607752844317252009861878257031753169567521836386338257411734956950279400847754921371099742267687291460468327460092561815594309287345317973224723609737514756641479491501850778900612201956596679830200167208701975988348402033700289281494017593646419417992136192931907156092528511509579429978313231498784994909984880093412437998647532172566054309969422939675226706131421272284402221924861969415262056113933077452782372531398196803357726381319692806722344112909201824591689654546274951294551026602147803381985425126945100571823886861016699957490090629800381518966056877442397396534940707415766194588025848963422805311245726412162341914814752519896096216572573747923197673599454685155735251385795322149403194487641752884808239818386002981327151571983948295051768302304759204084776473238477830896145122441862647750844156716170551490068598512444085707453187229345389173727874059322248898830471095766236656415703060284419555977675468188540278842845521096893924069202488301078284332758078088877726630006219941246531815811767376129540708116446685304396330209843464576304654049570923908481786816589045148035906607950698460725040421202075363831663910739950718559942312385618170359980635536772048756974666417840006212400359314256189877082741089634428414668566936630427312436407442902595756128084965143391009528179387364555183945267534929217190745304052463332657886362463279577506780800162183068468251396574275826288407295532840447000258025275134859086778879421974812347532361965129296506962396324687128873879573174530706372046415067949493129795451997433219497443673240690366749999937714957500082802905598272618366614318344968679494024588257268536058071469165149227243319481945467257442283214282874742985235313647022068290369594467232856617322712658671669701906501319596634821745670253917446542895581279784675811505056731635004896811871600890414992271465537561075918378998211488065078335272112108595199585502750420462114759300703890423364075202617886774989603707963449653544467768611378273516979265939295710849083238172556557933742526777064374134824916265395998684216374608845781284999603321495975572083675113956808523861883867577923078813229502304082266890704200391795263407173400984005060814493284622969904086022451040572864164517753960664286280053806930384772351422203293875713501660389289230535857570026513291276278209748672614694215102435786686959149697624196856452314862919426265797319706482351912989015699328459837903824940179584267268811662103987627304022435000984972646610130212146464483250537245696558573155618302970906952764431616198968332431027794457870254865484517827131647230056436255401484218701198740860298474348187783721333521449194069783906512652066425324162117304275037173428120519377082199472330934538024304367910392611503724026069125823215428394311410136652510110137954906636047847006865366206554184317347688040955515198190781279055095244820205172833886953591942195462485127003797707804722467251656452810530829466749123407348923172023530412671283022022072444553788418320122736178902931828346287833835825487744350388525159712114674247766755293150888922663516367828236431460997548340908567644047136125298009443712597812080564418190156363146139169539184193256332151940844037952548610769700271929974556514021869078351505379977846843034506383384143970797422745493515225311438806293767349032063270752071350481426962533438783096756675130200039760273447914963917047221469374635911258216319528242765634947356985909037710285510720903453146567012954139634368828601975520982872768920881985919541861838267076474886557717794062901916368810710321209958394434718148855904145217769028647651638701963825046089618665020622490728269590506755946248878491131133693934889561038299937184931833947333826907849189087179182790751341039509873543536731144453577711298895342952720877866668837417427117444656679169102927942852478663594681132841644806310959065471046319642513234901288629259244533746079543771172034009766425283127732743353099592344191471512716415790953304446978881617657213242487611784904571200992591604217208868071538441596244716558980990654203273918757841750524722699972798892672308245885495124853215571387047920890519120411336403500653093982094216558654974721303925720629666518806606889330791382248530845393485382402406697259376746846229332740936934639590397194083075934982885438157453107678600223474087858390124830978578776969151916158605831274602843170078734557323088951733192091625320562327395365471158583935016302772498214452097617126877605369471364682943967959518556703172535897356752329951819382484465656412624793585292508670574736502555276847697805311464755229956403175500684257689806472173306017303240362448634080277967269247092846358441462302799049507077794165035652043325398281525329951194725485233861469833004206890101481165008526431201227411612819865261793701990616969805968665003178877970963906960165940571966739716027628180618654242518093048428062413362892220330982934072513954183287478336075017457581607620349947706969119674733599320977639469853118233429271640493455798735297386477662993293265496328206659066640638402402045206686689167519319909832201991567298162016182210900854695226195713585847745863991238142036486888785248520372436163706681259363357073496475815614314979558744134832579629954765633676835239488771858105472102311097415467864018402683952503027830511566603957131660748669532540473584281572011061779546181406275098852552264810966248695145661333070529208636974583786040201766462116568876624903871713887988126466126745000464468890380852156131736630463044338470351018009720619958209687510732695372518580678023474594270462753102114549771313007759562912993533590521758049977684879618848718759909845989830451731423151432968549552571645500888278341976521371689456666673228917375202364895958407308838342709213082389679115862947792406036397853882835660220337980870950922953393593523863891272512272444914561086141673826499417796713126035627999928050146590205617939314373139799848612741581813130973766606860897585448588241205465613556178140509975348675154528756524539505262542726764052107693595254234651709010074449521060260591519227105788422557705520868773245004814859037813438658059485007940877853241302394618986458856730124762456385023429354891155297077923023831044694348991632730441946569736031845544297721880681661249048662672013808585582331723985522088297726312340274901882920473678131005319417867646896341818397664781719921363545961010153083027748334314113370728874009110585032567970076886422359800186383783775680449365770905610899454716607971796313190491666706428122453111610379534498367843623685067977825635661291222311771289537844151611191714907179751570776423455873206215596102457141698501966774021409921691302353961807774371402618667426930907433578152928391018583461667805384685862957816325474608883047851288513516640935457323689349218331026742686225249904679781278244499168267730908443422289651678600263365485575930340751225127023835410150587575938502508244602760870351076906009331569030257961454034663491305150797933898994042986571863791559577206467218070155494731491301030867117971914249818197829348752580809831018954844369244222040382051141703571126974286221503519506456840715190222175397803152738640763846845085515287894260942763471181098158253346015473768489497899539629167544971502351367635216525603642708494433420658158267693547308336187942233654387855550004303585350926188026409800850511998584980201206311701366601840909816192452197261880884213651112807055050375767082900195959532818672883070364194420593746917794830040152682662876692724884306660970877141906838973557623228041428797287464723073088271379050368647301376161158496486139536348716139282162914557391807246479764857478213323709036253004996743050911634459378123039233702219937782000253651469355853192094604785061702995296872379234163925591116897270516209882414540242486829845680200921592722582200099685574594417595777679620454812346324838471844694641302251395457256920883402759025925168356341278839953120242937984310593502381225077609435886585682188027049487295264920323996458938091072282707214111068630718607560627659645504576386021101392751002379682141076450183064878740108194022033770820335411950798050732123454154754113546767920842039712884617228911196363933534718633821490057063411695232400891338974055383078138154522673138025744662769250228674797172492497991199167611544628374361372971960707944870264866400213523627315453169239280105753963235239514123293040721998147264297316130605670153443554718302950480660007701005676914974513724107925196348353628019392221542926021223721082035845235924582090023620159718376859438680403173724140014610815725563499639635602682794995944781723634368364131754849752737677612026277281024215769832861216807445046105748861280770148019924945808093552258215242931669023124070705318006619384052728914496165595659587244118591214985354006058593544849633275920695172659457991386365490894548593324514842286610991265859020109071813490931257784674487888312527098431426472894633306411127174555414472438114848264941059423112893839909841398114206491479030871033017899271290822951333929360666155122766166294514463538638892645222613815688370723651090955650821091837143787738625225816616869374252219977875752238449937707646522547257327265647151869293844071851763160236784701810539460137789835564919320346277578506374278415315184131376486006054505017994791898682203540420636386158340276505950892301300227325620071563546988087372247461316272174451562438803997316677731858223626149767111496212182225887819619962850872901790019280414907068228698196212218842795161672992979576435203148458108217670836759921390681504064166719680671324581727009066267049468974745558754257382068770506151605547180365913998489723386578375751526427251967146205987067161484736921455976847701253677410681674886357737673798125518191335706800633433369492321416037639716092813511465648584924655682588731631684103522925686016019075006392003792245989195290492218107062559336092383873969706131772362223772696342036248886308699241740766037761504775927310634396687289113030354009259600097336097765002764591145698843803976560347672305517293914141124990927867554868407614154641509337529423502706876650049455906693182273133836103014614948086984405553715914957011463391977293918708248099732936514672294203113380143217567422117287292251285486346220469875390666997561086059000520493085169995107218536179047387031480402839205608679761129654528985703638101938411501683447155547131009446381294034298843991287644925086687609712914108050152141756593746622274209600096539817921342062534575050845602083705868692217711941601979713294087772916444879802940508233174881842802964597884358761398593162880432329440931445299365157036848269725960188359282653738181266556574004768036482654527975510233788993856387619278749119360712710997108328322583314498834916764988655524391819848928596790417332254221425787590694876437010570756685217162606983363922478686263709958284007481293016913017025474032117681955359296714397050114595466943078337689166930690844612157510217887694191256106764246161760818054838553606215949855622462193858155584687763907227997149228205523247614921159902292452172753853090420171533920990316790262889793518289835673330059241755974658960803157086295651294993134281215209197206414139660685365384390721441524982047801099656300827088460369644213847119199002247133312184886561324457699503251156626192245605628928129496019871709629516184478293203059159674733904192505104611789207549505415347394075357048195605211629639086437064345108947363980710114976859810318407503746659622886374602327508046289322731243364140280701849160262056727616964597945365315766655699072148207928802259631651189766364182924230748083818784683435152514105722610309015568539682693233326275201931193205515091834234481238502024786328032041134887459809741723339255784791836359188358767194954758219448612935008929498328950497749228730913502070871744266967836577804234266682332935180563330277248538873228346588465586605785972379970447923898247634186157412191166610316318497941932004450825270307578673307894681174611211205243984076417030342448080707224011385606001664545788747763844119106127419550201403372097668384367801611752828935125742361908210108001068145792492306207548768911192214008086262029575256069884791498160413835510707607129738675445304115367727230065588022383370134811186325457573389259150821407927914690096716259452631514213798817757621658509403753195135359070769831764812280638448778681540544661024543491893050712080570848087619338128706742103161404572955974574985883561266948079984817185079153436078149825100068855386789017727031129318831817223083587007687309803456449961255708840414355584763498530861706772611351284939776201322387267465085577787408246253819003886077865013252385018258798213365636023667324848650320109770736664546785122846284906968789220747236440555099289650950739307119898931661422873096391898894409801774015593513738212189562874632936224747035868287286297087832792145527840467249018285913446995124294083332232039257766584064988756461013710451984997635115380938983163828439944224975143354982634855774053221744422760165980437877468814367972148253636430765413876289838668367016589494971511852384373345142621562857998839966313340211018655514819611928029384162170875705210286055318194944598511167906538675670531914935670879644676236638954652809308349439275708576837336567356334548409439961141775676876494423625890979333241555666154164463198597700440995168718697037869557010856146961799062685603604643672535195684308485796049528774728799996161197319873634766954181111613720324909024206733160972845169498745194176059870269651902895103580016315022285071112589454303947887436662373325675955149986018472738694381625976843037507073439167916601946064551880716863485388450964533810834304422904870525871893614543982937095903934245328598873018433329375231611369489021819965991116707342794894439065772515638867348768091039357226851823461679941200028498603393061542836260425385702539124632585736994193495060663719211724771047343504597223091224540459375791599958556702222855119075967727667077378558312146692034605823573026467220567738119986897560582738241354463054126246900596453695253866892423945212743829731713478787499842466094395881805504656502148904787256486620033174965153746134249567065432845388328914508491122333740914622123215256162554045030374341066367623566697532172243056655497407158186512047044406676302826870416324625759368403132476768219136025378435661964622630750333717057381733596817326797536116316614224639122334947405962020070123685922345487151044812645664980893239561284793630070883442544319688919490520583758822883155736982387248238420572835045234413123131229126737118239643273116217622831790481259030336956779022634108221276849681381370415739667297041654812040542074980987567190755186900959819022513628004346005121597682110789700880061046142250224227223475069503842710072764378866397985791142040995281150290820571174439052561333906294721539059990496375800855265648908565099670348219368485813091383285800471142787201899373311037680492990279407448522023665994864932810198217524010386102857775592981820193380978090527347429127889033632447536012563735515543810975877050976781219945206364541656159651470649098922760067197442991411540547494233363022623219745434145840624305518383330080022668545723255714418169018104227662967323241998519795684869548706092226766328785909371660700119146344512310828801298080594469219793468564063057136238261441465869504326705284214652148588881380643322849590497315226290605859371531653349546418597498023646325911941583947124503088917039535547983462917548580759919882478066650945528617439183668678290997166446580991761942262289907134848338940707189720590166195648222969183352496805949281901555921306204810689162643211885580832192315728845062906575191749328021849083594814046133926374519714152737413667649938595759063665735426728107846990606859774205359969613818661514966825240769431092591829684615433419733494388780918225796224852665069925539543815991970475098049997472834185643417506229087104838424936497181488180950968130998218343195563861266221771924961970501865489527668872009168977527254624269094108545519069279942702854177590173270232865374247682444824330598369841224474521381140715437473039097543531475942487769017999381835137229641228948415900292542739107822903757840943180665842818707188334861685542085915007886329744877948766343875806874744475565577014441186151534308527454580381295678757451748581037075166437706500017208319933613266426900695557676295361440917633780252569337412283533252549091582203774645323543918982341018140977869588630977733746010399417870817377809506062857393974491051998126914652697181826779243062954626429713281763101700016796617343691815921484094670947548277534678041843386557263211616540251410970282399064714251843280121533188894914222061067389191362393211160180828637272648185039084727076423050790545286450490697983307150604295278479971475984921841176120473866104215732337091239236288297709169995825204951904570725257499195341655430643854386180960679256729379023250692137373615648617023406872383309127338553704881862573782349659369870280560407243179238266472276225113667611767484400150902298978966825416217150682061471924459692090045742776286196919290143761536068782489963235298274105001852706745625547906429236373127027129294657703100897135585195322298518511415724444990850577429989303122900168729319816237847881498677111864971073890016281274490132942039915747771364799318977633840879271958555075856385789239732846342805183491782640012432154512876094496928448791192159607118403325538882013744487678446676356608028721918011517314152071245469102528795452620183469299314926581713996280284601805688553551947308704595436133949321906042031658235017281000016386737693830352590017219173026582863883340635710846616907676926823889266497093126376367812832776341628511531333954283173184145259596970850965092713504782041898886430077587850509660644153404765559996802727702213390275151255926600917900957786687578344656445497378612747781250588189523423545491992677236700696625577303395898473888826830299737863188900065105771996412870551705754432097155497775141683976761049497334210267624016715035958566982765644756308709543523425403221398155029135525724649354273437573254352435962008190138720605441250102402268144784557319676175646657372853170438927367674741659663107708656788920309698114127824998984236963107384939473702404492612535879792432777560428684463546357639849265153848308701084030306498608396577271114735249706145244911818781420988736737583155557297899396510506400733425685654193933768535648065058310887992016568627659214226085486724676832814769342011486151119194609519757898525853100251603357572531356540853103958463963751277462370903984537411846361525277033727503181106805834541549435649651108109548203599352576659798494884073923937558997757273676829437242871508441317587650309743520918937071373159874170147220021790193183412907381568396056622768141100575601190652728570323714195474475360376925003703539896016745938928112364818357692188303544662878390054075014776148406292091003439586273677402839157522905024429924066154676439541126481146066207358274083050598816747072600307149490274839630440247757787112154759105194884948651125875909129191918954259727993442844449621806676709617606912286913968765342159889813803383733604912412743382721656514853034562752374530468663737826907649133380825182211573621537519418940524882925471230914094614710759761807811778611407174210754558123059109905909688555433771912233223168233053758297973036451022577077641215889586572613416107698376038279145327726300393058710797559257076829744261213602998751608015863080597770496408164241017204015315327277361605672370675253139858721559293928008673793621444173166965802424416465922029495817426768435962262466133641563212319954110810036891436424167973729984358621552423874307759073665971857081912601360586971840029283406393348339293694995670864239871741124791010828239533169234439325914674012962294843592667503957311295237246876237837127508612998109295871861717000401550323396058309528315012861366537521987492696134047374173948827295868207039616899740900287990807703525251062383682342659900115825501878427172293411563544411902374209069380173755945111104021203797080581286256134169421826402395870279951830691785144934255963557937669861160718558193091852772283700756329534753569732628876068434011824202549210279066587063851608322197932821720214555304104678734426877344806197806303766195309423946692880997236501642737171587773585268086259395464057441161456237757522118915832726332592350524875926741374744150953412499209856841294697782644817539749587308536672458974139350033116538383548100696804114505019432501946605748170265975341583993709613254747969024839501376214516371432202464269395840101469918257373156917061886413187845832867447690558997420878787344239808410709547180064998465000441450431076030136152630540569253076337316538488433179995844703415514128431559711333074312982328057672598176819990874810831946222882544266649256543652484274514146416456218319550563239419508715960948353284050002809396467988595540370944422010527457240335653595019992276541315520207234017871523972112651567286777198695494287501070740992497413499344768377434936128575461967109306166776597015235270712500132300916690505015991108014436779959993200952924445383683467737895032230896051513650308455411441484715930941500979939285620669497011037650572851952774346781542651314028138912250733952058627609502019178963329536060517543352321661583572732163648505598269963681349721974688936005494080370381761680500491191036686112422760573319409427163155614615330236965033817403688018633392501536397871208919821109948867258041761544414426828739070033243697763089282010389154924835495027678898723831684912816678696098886579443789889441060291383605792606895310101939586069634007713877791832065054690919330085009635877851264485872599342682583428048129951552645563503387093099207992485068408959624155506655374725602974070370338540847785312539632185204217524627769406612777684087815496507921280725777505247478859799274190612849643121224310165353343367180042533471273327844605497079582642343712449349621437906022517795877812366686793779551015507209339985213174967758854593965217833667130440737800796517984541358945729165154286131504354644434294364003844511649016502267393345109579341342920878165053233113140213570734675800647921998167300838069903397062796526898059216669234701641460872876546237989818517019551560535035396488890171530410126888998427771366032351796107926830572789775793875845705376155122462452046840136971780829515976620643761114554385587087348661718858908347087934604523359850080243174827744593647790531495828733598962660904500951832552070784077609815181583456680235499422966028588585782692298191376203091955913920032930150374283832884170067490587627076420357327063178156832658179077922070236703636452829153325756994694444267305273104102492549115899361450099837135306900573211452538779565417134646661969424471535483270066691003306582925806825296334178248476306719678477476691414792069444757656452892305198451113834665417856013840597585582602789907047983018356349053677077065357269197319617905389333777931580135115120622884174861856279170442978799340071051662317816671046078475092259807716259889428552300037020612263906767077937123924646884926389369154242015365017689376039358965890854292808074311470441177493132996810963326498542555985453291022109713721986924874354117115058477085967251903366755934661259265886119037186549348982485935049551588814497906617611714110997969094499877806361762041697594381328541434078559952407462721480175639819177939668491538585017330036175895179638952959395958434834106557737873367866163029791444563984476023732813603795100581890241998074648602712627620032036896172538767412643559989512192133365558630434406491525512065977055556696967223743460175595600513437741300297906840727494069073575152839766684288327135841336249575277014248569549875533364644564183856310741360588305074679382710347647338779021557718838313858987980782635987730634570193447055765509868388560615651358797473738150374130141776899771392128180437774697851562949908617316592208390655385021790228638518295354972308445869181145502205486404131107437740837727093798775403825251543998988195070444846677033862601697862672804893613657101537507883091984528274835185610481758793499150174315433945198041856220546973930259161180296826472178359130485573540006086397193798409434879426784354152102447018085509546305483310339215673331325798589693370187007484555064436859880457686732293120813429649279426958571924334764462529136127838386943265662536015561718773777309140433219079366763917811652397540080288486733588651759729706049961838813517577583996363743912235806700778835697010599987399136535956689973884074895609910089060370379643739760594141969468122166180581507163106588883202385575464557037318478685909707389405121783327218402225695776770769590517796158046073832792854431928277679954497572420685451726999412085818804844035257480094671902503887843903221936793465966828380565610928768182672617202332797228937781807733789906132316870263430973871467824850715858360326510994250675931380332421198868492966275614016814453943812809202562625895266504107773267491240440099829817379786828951327237699440520328625395285476100619970938231623830851038211491506662606485559715898464062441772434307899663908511155936987263159107815567088228038185486217507268909400751789436516118001544845312307598830637646315573150859637729614519822855483344723648377207136711668343673121662508952683858036221423668758338052576908696278864745519838334166634931874244665426427567938602810577818277764324993101622885538224650974292774919861009101231257561326724579571577819300200501472588055168478311616135046811710402819022842946500977527285734712100491221214239191923804717699478370514564442423463154104080955721120113550569386849317867996369423754990579656278834269834249754311855466045327230059179308135924184224709041889224839181603123142094219254331468227470988728057801028218364039909742130721442139022089424946774797706363736563496741780588990073042913736359440515170304592112487631914062728477364676840837497954892356328599659613130797840994514028792903638308336008025032627571095195003423288376021318077623249212243744759789183267135152613582173810210030559099118242007606995131845075247972070911646673341673135540636193847168148181037874654983091268066067075721389608681210732337161647385355089810699426820617773153239986252192145732238901098672730395725794298876577096512398868822384413447050899641085587648033511311395475385963560929830728492029977213039152909603126201517568034325789339363760202478532446660324270963022839988629154268362901931094346123327897869117017180068765891715401278776765407792083540604457257583424053307429934534850832808535721477146687733343182777007037525888717517099154917594433664919238735073247876555930218500933273167454669619682726075499487275705114116080387572697923270274653693944623925118600489641696817269957836659086294530163581489930797922077884242662941949517926546674368435318408731869295526844894998696735558733476515599123167279065928934022768301332680616002609843852220937860511674354598731401636703439642962078793268382125691049613256860074838150038392538895655152355196742039455377833106130083187450159523458663594306425260834143757378095401763344690970655129158289733786860873133849406705837882760117397650135938655190796073902043496929739438198659641437504188282785315791956043658284141119726841718262652611632477947468962232680496541900985990283192365110017794425852226541008208547630161508087953144448585289312323347384744598184017408518983367524480441496619948350824096207834453420015620352672071642983672954195570426829895778729628283740577828426660227263583645871631656190335206291256474013766425077168784481562073011889177060022647675621231113404613468326661296040208076914280575683800089599536272944127587305588561346004371755029017881816440227365620714624042274224376074221622447156893079849391717518214991631986784868611551301008891410937372055273608926301649018288916448899157567470230327489914551352505479483161415067762009514208774659591548256540487149507235960260409512122665550162077900459317770134463400818142001498801213668361566738127357046375980525542574756594736401191479307151367439900569014650643626521443209299284980530378072743797961925756201376595756277796887028165720382134505851830519612738999963457362403473910396945663264452108235190642562272070664222842959257619165627701208086904548194859692637541170545034031264134073300601389975475558807102273172038603730370927774228364472106242971394816566746646158134606703044941354230528499245075684235895302112033511606871081296091236322943418936676290275070816798634643386109424040667914244063306175751597516653523200226069157719513769666042686557828686539836873059283237467952671523308844885571306188797855498342122881045322086032251836402723350897269699788583018385105956847129180966790831307107490419224267810082720372903947117524917887166117469317065830627623778158662055050278025645147947097682079212081898985104478436266831318614479159713641187990067972967852113437299855076838745231542559428527991582886653561599394738471046868741065202997875448018260266490803802586076001471114739486811178847670088695415850030076633392052311716255882544607374125237484490196096538747685928302051902260242105966301439982651088560863820954605766600624838788544494070759554172170337544476464709762176823588826562388362087944778709065305858861397697034678389716288864099925744792535783709771301229313733306374589908896390363235326196719650116049082929420791313514462068767939554479361731725469242813965998647836046646683425065437261452562893505769772431541831948182350158333616917787243774105714436910711731296371143383575589572225348191595514911126531694639081100891967556509398686227506187919434167808451643607832395985698073874002068895214995090060798709295326087632148456122548442844834624648601187733107920629594698527320064391283757606129817573440316479770757207928269624486052305024522738561644932253022327122666222972434525283903888048158560192640551228230841677211239351678126693316405422726444890284916904237186228910865730112621736661012885830002920862175378265416247637775866563402300709945890299089068146497429202917443256589911159874852002309136926896860330712660578311511823888747911009347108684018551133378055917531261633900380355761491381009608199200831954403685228021597940400649374435267652614293605620509897070375708599050718876364421245384087680620321286309279430074899507268203719388739934637207629251761424640634259862235380762564865787553892001215648317153212989695470220015310020273305171690191765354628431507433580776835759643291681643195468895484682363085435010477502404123503803766923923205821885138839805188134310780179463579029270934645103623037476608360767576077162698408500737707515982108803513320383561917165923356439046886433215699034590337371057183258649079105864722489847146301020936360484602851842292379955135605752658947985645781035046885873629712937015693180130718977874200311259439165273777719981316678903882279974266383532333171793883055318580251984482175044604595459327283111534873203498084517494877280143074813200557360117856749825841549246253608815336961576962896410268417974248834091080167844916214910098600921205476066352344395161484720748276554488271860393839775543704190803929203338471657645109399876223103650477248295300331866541286569727068481620688231143988998531494695730491165811247439322054505105552067805171248092092118772699001853331630782635855257893805677349895756507979886204204231142626498422275987213770197988660234469158194844626904363892675633307853711797450941400889821381734522798171222837597909806468820499724379105501149029065187345972591950093181650447347311140944811073934427623733727125212006362890308215403246234990249580193468194548355484620015465086706133770555833708035955521833973734868770748367440446898882504510999093763119421009661461179035367320613618030654285833722466050987431097528409816305265514438075165748223330469469339659047150920528576732228715253247396012175416676258478896880741362834386310833656050731481401186290005292406684863453921712915108854323725050169940052003603273600612298234160021081266283576834151293392344881604461878667642675540787686830229789248482568658592314014134698223009567029621849603728919044713704326046235933707303988656935760837410528969308570425688014137056809990901685646317609038868520814496567159208861294040150661225219222850791016991742303993890744261707733079609524304364944217039324297447635067565255038392164629215868751317367412980882914886818441826715766408729777363393863105868943870233405353895243580706542276990674933923149380637284415730607408312113753130405069014869794044887670468777748224373202244516706157156875667296403804930180775848722019579876533590416949825019404438438536219170118151019376154334854221636758170896874431634303486754504287335532409968321171186772852342841114322785258749925699378486369313439664549727354501900240505027836422002581825147938641563694273231331980898683160725749699219191206547371042734385592142947062777019087658421538691078737384628265984043503944731728236995807493424796721631676886655916839341553260159251344104351728846424216081248082729244840034803572280576326651140954412997197298187176480693470516248400769755634789906254611036174989470533370935998995273935027595139257117662823343106852748045755620375097342335250139224490141961130266114231573951523590246661825663307953643269667927201656409051353158347767458421583009134009700485376889857607267766611874712221048842350683407822379103670830849684976115379534462976990467254616661988739577556996740726297646384877711079749437956085651945551434259901566308688841603107755656382406260906067778856056069098292833821838735468726682358495633629627174024387161993176249735795979662663457530211945531977976192340864244115317454306511132984200242036076856938498490957230470136630966703571708373726112714696865342384844309206129573655512774936243732375396261811216225200847196256400526284441242586393780827056480364758162748320250919775790673619595051967791464743468512505788632361843594587554985504752450599732893233872279108164752447207441867295956897918898147989783282970935475308095146600632765837458503206983327367402882356799830980490331728587414051854084435581032648253526153960793093052253410902206575817834829636731970359684224684680798029991616135807273394052035455193828534601160007329805918808240545615252686382823808861706985258723947168038139702919647121561896960047318764111300133971964402911283556261134618503270665069775428105454276906844125363035380939102266446223415532716975735064144052964138462994102173180945705627607784288614788683293582322409918683867156782420720420954546238036637358713840776123564444246099065741516701467910205849843723471791627960971650951842813327914639288367067604344401534748300258944101633340477727189865437644183829962743439672973255142362248935194972045726507754902629502385444688110603005868760518576902848005351010523973519528561783496716824970279108383882426137704257666666606140704348532854473185071802911457768367495258032684370037368319212957672959500900457570841675613435850677562081942247279713837924910370656447426639746858388875605433430272565863503906236577195541749570372797776546665641647463227266118848780799862767305474511245717352224960455792716972342335020132116395876107300764590265148508831722815897050142062575078376137908234409893216833563648940453633587028257313832708002507365716318709752991307307975645140753883336961375719578638187058679238374602078524142074079913840184445336257164661810047529598539258222578385662260666624224934200372510887201684873824405506457182885097589916305125275351754063977473319583927101941089430760675086083516159150480158715244985703249950414243505853695390961340764797583928794845301264527750611778903665540356370576225367227807315997672977869855811061143797328646933648014136613813327030572975679346430644101972370444714741874495967588637643961362464776385838466162948817207306801462908938117504145669037824343081494435994985271107682342990479946188333838695337443754282717272821042763724644275330863520889367880204031034592469707129564594714150909458160769453890078530765798148037580411769260169349924260775939537511072534944880189295760958288078371449152223122232345096746456364062067498794451536011168761916133069142736250484098927226608869559913852210420812397749998627603871483588896506601661024718775758360905993334973253493388592017110825309285064197394349332973905838942728130039686898028364345574644462447960591610408096498700184238101074520652593891741717470463651932455228556642517033909539097770655348762096142306938471674747208966440744030484469257353808523500690012877110100079969306432379375348548749539066021057856146026641853098316121750288986482287528437999244236274982063535179075320005032980479559375309754013831303071357572626060932375350039817240926937956290369441058509720383134543601817495875427472526260122667864782620789060229716053584005371565629085060896959156510803262235782606909527938117753937642300278879721589868092301909439867062038137505477000408132300552571540214432582305846093664295069840288354811671910692131709809066913546836494347485677490560124510329151865889039230918929960640900477274178520531310027211095885125567086129988886072480755531278978183422873154675449624971425719024692778493531607233215369363608209782034336350791279456687615813027158211288937396026685749357707032625637265710306765060315721317165480037680842626875807811645979519754590294092852791710741838686922444913802678941958972783889019887024908477612744178081284889024531194467428928852507117909057999035943180080070456525377259045139661727713033826625748449014600161423424897350042621154516900592938943295771113654685667577272356933326911490070052805979563102907047729592335881265928233632804607021622629676833195666918358499715716153782345746386540465676775618639360648658817393517381454929102817274451079769343970499968424906546729691937826095336924272626218047009571190633459766738740201074163091327878191625069154498530511939891420522918392684889175199246728704360201542591107086735883729469006622075266563839046396287060022374130765693342294328479625144106451503804094038599811513689157162461083308856504234661503826703773120092821961155342233509654337392213385051878122251799474531652852183053591798514487626963756291744636488545737690977465005986524392374367137869474468312271484836675636198653837726788031747876738613634363503815623400228317566414069125755027849928766911637211661802559245598071911980824303407128588839805565922129279824302317494672852969847584734969013915737055077264641279179460322509756414006639029491802158367890707584896212938065685778439787595944634606845177751234759171587326616652238058341200583710311710954515793707315932415281215795616246220397163684502349223508444458606858594056027415728629443046580591398924342762646230830236565113087308193204143544681106771409865326929602038968733623897706826467860149419365872478864664199429665877276812607042290558704217447904531743212470035373689613298059283936090970379914250947323524666246729084255110318081622821982297486482500907423909496718065854475609729484443949711170236299897044706661776483640037705090021954679023321115954555833849945122521199019515049830454470233805876422008580167776004427422690146859210670391071307363527268179306167432401512241486828247829215698218218594520854632264918938064584863178162241025204632933088831733220051961049695571661559332446694109402333609537644309255041521159245283114556062392150828232150047660021572186419112926031820559076807526685809128505146840999575387890473491258939681174651730427403251197091893242352489360252363754081606869834021429004138656418362766325430730077772705465604164177201741951120654633083040524960523730519921341865665683393330688558016998088191575798511504445180886034022290865576703157565318724673200474635816474175381195221465042883059573490485508909582962034625388148960850199260702090303470365521201430913593673114777034102508611017675229759464252629917443731650171970438557602202539593322337859768900784883327439590493685947365706218564843896396672109586267992742702643633497028064989386561139341154874107325817170537333888326897203124457333591647805556202199437271763764378940290745932984560956776539246879629458545093768707530593780314831994828880555898545022301439639760748539806067199900230696845944849120448915411008123635007883897442827429666082289739475328224775120519162185014118194942770510960313566995452678368175805422880886382228216757075632460888501372693258781854542988558650223784167761869421082997978399378677128228781120168442342770725512172247940134843874962020562279871347845290013248017009399903549456827980618492065154336269191781904912256430752391759270460198028644539992760354143533151325124146080789015538316246851564137167249301940949237232804801037272394217667819435494707070210167127783133606771598017669094206468536581687734342579084661917385882843269330727726916875137933612356214209927108150124925669359747508582874126366341991127159650446851240619598115524903903009323006930381224384097657793522535426682800980678923901364721791857872747993831057457673727188804323240180645914614789324817478307266033690117912777821294893957469040147267976393249874799357154984158276195777717359472356588199216316703488967579595191672729791773780308908334769077614296163648886225548646835560515697499103161383334983600140719320264520166547823499899617450280000156031454781525764754796133343161396054233922464850671075635388230232103154121734262211310728680722485244984194793036953249033765742682916989586621376198911906376943025256924241242762491751475072114422996373604360588705812236171559614309957792364809988530559601628840603365479723613144308852472308168602651955137730508750387375478389261329768145810021855044682784444662812733549491486426728334156357382851801259730191791318222548530401643742569570982574044881755391163368651382888976022641840659536083622058061795355582980100740385966803379353731382824994614495154536850710573384680609669604754876905374572691014005077040385368040768731755178332674683754254514341321238455685119035697372578334693188339390662222218277756035512352928106838248784698381548264706065599722979311686279092777872742692911153738253005050198584819186695522283800025418257015709663489834561641833431168807494359494502588541822667584473428373953364273576258733171999598025773484011457500341363217971701709282913873251856391523668134987417514139910991632871758599864041052843560375005609739893154980783128174198384563069046337076633356422494954421320616312276793197589816913205077800707096985328326924737007538609334654983054407050319657053801124880873496885294437888108913836245364387323730712912407802875673506160897845516729035899455627625440537655753420763726683996306042389695575986705218621800261925778142269136980147331456159951347531985288021217248040309673742299865896619043234924286375433113025773280931915680339040539146090086521192060131627250414972152246833977950790354542809712090567833140728480986712409832442536662760422792621826918754537062454166244078042988773555135311968665163457064322553481676996887009656406167679306724235673216367054014566846328815900494419875232921183187807769014493693941368354692910395813770695651873505287311959610482736679866724749935343165794888991280785682705935909755886811117567049048072246838628072114976830507192739549734399394479078113960678295223852890741956721119666935336584980877744509478448787978135766435099024168755689281650810042257730256538260701042444316449158147954588560071972614991668939574811083874521792096265359611390403402030698618042113145361135489037288065555567469752528967066320567950706384932628559452712284089659224595724409366312459705916214513727421583859034258235803926414993022980399328221130497538402521307209567453003476949753186313596909286487775412683860770439059799655414991024351349789535307079096092887858779684132782827386320011882944998976357556792554209802151021853360193423668861746835942634398281385688808666536234632824839284639800341962502078033924663150830446894547530425143216905914906859955138922634103053022794080275023494492365052245881931420012450994101755856307574514100337510425552913931723306502926243117711576308177961499149396928145641260625076229550784888969947568991989615805212608553171565874299165540601440406821803874787689593006847500905493692433879730341297937116975271072771539137616337213816817436956066919548098581662968376182053898775342373659076079770632460455856427326916378226742312967736671020259756418039980849255494637467243966159817919948551004614722410382794040862585228429801505310113421408430466793451907094207947070610428751931272348711255754181452188207398966059791207438365075069256241102146105884184040091633257757338565238689166285431123432815837058462136467329273694945695249850728780370759172904961844315127935724007826922934710245554003470842722254566984501666846703580065328239716872761633177014063661372442684724255137255150724276744323198336589819553668447916834903574824889314345884708173258698985195628439943608291865507216805291144546390257102066917151620544079474296447484200289709177815119233891429065148054703434459510948588606651027050074484302429946344171737669706333316636252767430683874381640775763637156847618691529293124929380275599793086403728955215431010190718496388537123948202979035894728630915669075045465383361379061813184332580671339893503689010832285633279047157059584893106175122081111566307532240957868940445536362484574592471924262663468652400787253149234804471865665543419451303482564208133631319393034621084719878142974835473587910289115171511797714495854604440210728052542700443413173779137120612047068326646815118906956728034240284499564244986169134479268541302702173039545003087695770136514415417590399037227371757893801567401084022059188864609692801508680279010198399522488141468164197056607050957895415357499941483650342909541122404489524512496029881860445184080014291756823164823870027785624980248540603980946188952189467421165757686774683685452872415244775729492052706598617948160840547721983880213503679183661291490013861692729492655412127438749798064342642443045115453316317154842415047213588155122354364690973218961301839084887960374501298236877781111042311414204563065476235640899727512622299360436625933521445937856319819806266294171627754123520531624893314314855554299189671846611182533600307707582285939131272960165118719692623345504757418520432335878309621806827300606824774909668388327427686824875718813124295752322329249410028271709491753523838051424921969047688547438669772965080414492678049940779316167319839478926927380139167193280896769966393211658219751220575648332220820291319705422386538340460370260953353529815467387710577989846460182950993800678745635668811427767627482773569160139541297013882384207196137975721014647359286821495208229816588546017799575695771789544523462041137141944316207602767604398254141690345345164714743308826997641826646848113725615537980325525142269155759508966727512143406993738153934612869495933076703949270293444652190989386882209664552242649041145226855568842707928004552953061537333773019031751662661271594256248866622693307100400936703839801643797377333901964989786877936369716353308143030162826442569834651864235593926680948952568590100246619637881020159890618920537881027661409136928568774128104029257185430361207438805792477137080224723379178531982443223602774200100237546194949490782368920216573125588054336207278520574105805562842251920272968036495309586221066420812620792020979004288407018130012802037163914403655907119057876579642197048888469242133621405745031800949136063094670199975022932959668689182418072780702224065075260617702331527046320848834248794372378231920164521014761054432507245570946064914958796251761883442495063495848055385979183413558751256492187681066965673231936730431112826554541447850836801994375163758643314671158942876321446186261516642748078392785493789322709805298734442880854359275696046632140248537828497317034811340480344715139286654518418221932762898458797480559129016260702527622256529131481801823549330206021431074421349855346962157009495279419984740338570066365281394905083564723190548917965327210259763916789515106080983225596963723052897275287049626238728924754298266217631999473678893191822873917240725407806541073626569211161597922248808889761648215757281237209263335574984454291546130381494321667696582842452686714339453766044052919275385036232820534606566259743216633627991902671770913214641975951364975694616876657991639809159375149654182626045160423709394359981754018358705229848310279490586257204442105917282150004036975118005590417279855106598695151868267559904602884749257718358753341455814280254606938678098961696308140876952117841780246968631134367196570431568704637507307339763308702916528737070021652503667025341905821611177699757210114289351506011868795645661737214580798933499771725338207053105172892845516882460272759443733039618642882403174931429574496395278307777167986227563242035213561907178456768666083571709968715290951712487045535783657528705953680114533825893356237410635483276776164401914765681109261915783637592895824894878723931512861586479297042405976095862632533858628883110981558453194628038932200607225072175108547366727218487983425726557134341747395078712234286754311101701677110045232108521407886369979116086194910442310889796898257868589564823043751226368870073552104533308513880439119084332730584297963904783250413871163258707437119252118567336626318974929295040733746892063929196104277738814206147265449640901380894071294793843860328871663176700779692290058708308313473705384510288835461525496430010295240345428264685842579485303912550924431734182613522418201630642211358023195261786740614639485787826752403924640750593391069849598632072952505789475016878415980607605754618846030016538763549710646828685614912122316615475567709599686698619759302939480256155836581048471715801418316011119109013693025671125069549021127171641233705332165755814592014994949622278929561147624464712103091468140930284051252421798118200622925259577533900560271293625004293475849456996492491511821911028414054354965139093771617656301937883438451885909368329906204021322262565532797498225877633307724032548163186091273935288789083028366612950202448838877278392794002291688899883437731910555999994154830253302590672270121523433358015069432859016284961878891394403662569439997605991426645252882133954055799148870199672721347370100858276424647791051623339358982769621385500719449902449152896948931978807071268971741262070813439597057369124278495437083090534436323221191638978211865749687391105578724504926126523839550699649220371382710561192697891341398045630676947197841727453500630353377477646251569812826250769087471315741610389141327524808490062867645892847249880421898258675291658339675473553778956192350605891961612404807318904900760995695074348689490577639973194351651253929152933328344937682717457263347200623150989283209934441120520451204849503332644191070594138528142766434746280562091189968585261788558922688191461864150356266600268732523941518786360096104197050793236312241882390751898373712472007710430264734856700442701444910207331303908835000954057987257528021268548755860120023928617792319057636185030220476172480561852095882871466458064684774533875882053795490098359747115926077609066308147249280435913905507886931499230937393562636783226717979134346828572998536616230116808387361465808251380126952840464686534246903909552338405148398538651219030873301936908205555228908495231310901141150971574610216934366230201952910823361763715731236700816948494261283843338889985115119351006294859165599002751231159776294992192670790947460248497550097856984640493286268826978202690353458116012484507429799639181693444472140425561036570095604486697395552462392202592342219240621152565352119793374931135793329246423147343533790764825987537804145212220797784532926707264028511325391448590456590943439972028665338963228554904257783134301989004680512681842087360492732091358224871165279340875804501515692677299056772730749036702731211662455786702845128000916187558638021201153803845792869686028528306377949308636363103489614729159174877775474893925901932226491366763062273827478808551273270310118231165871057568025490463355103942559211675371800718319154306093515460107880923950282369837093999152388066762907802490213615287327577604350997055165659188585459059996697421568271286071375519124366734387050654643086061835787905444567711454607718538691190529506836729566850447073775705079394765009067532330495833193629803383190338182453688362876581598426386602642237336559043680721377404310911202110023459161234718072158357931457383592474281213212088898402227681091525841522270266528221276469373803697739677705977004077148753209980825136683262204625835652747157958328527816297765193668038563970502152164526971098847688078827135044396142764366219622202689525343999747091697784513262443678145182407199582203144355953696995360681702620174127727572254077126846395074322982887954972608261590944191624504796882291942026168373464823363115717011497636958500701240193189770520533781077986204992219827562266844921089082372179250040621483477556544565276262554247183323004176678440405846210474299344846303936353323731065594628488883581104476338253555256262125987096220915034663702832460459570405614930822473541184980213910980360897704119981970949694313475511254025540810713284267083690980069364300028731214617847915186146451320570136900055569413872541342978781889599659900251420241994604879769364865854136803635273196124076193340226961226826559225552128992094889824577639502251730164406926882994372457106715552523044708564705879829043606162975557737629763430469590099694260952566021365179391491846937808231595333633864258307748288211362064490388728129309198707382634659190024001524313487501893107941558463084722754358708761733915527110482131757069406204514034973674510460148456494075658984939675805608063566288177517120668352486144301426233205825471049958834828788418504051194588792076209966399299112608381722700390664123406832995203340615345275606963146551875625408056078625086378663286264089062952267123465101880643325340970878792473098386128693424716151516295197743329812334894108827177869882429406963286989166905073130948721282794156852796943080544409749690156670202354394617767366444871501833911939723819390754825489188188586388918126367605383870276817181170908426140768674749050970186950551232926733942116663255544994385257972495673864044592894871371234815428678077854084946270305754093181102897274242916977020768241291982406071513936994717826232451658806963324023592963199863072386590518270206684816923243914381938405957130514624543041518438978517481964376351054634604336462559147988811808552221023610079618752994888098821425250065882116930537268220113640444653285919785926355156233973621546608358565770303866406088013309208660968621279165993648353879945110296356203742329677432769828162005021717343591510584529105214992099771156965443811834320082029207079628346328017709447163865494423610155863902322007804190141459658413926071607195241100057701776279313141427484958015709822968565055091675967125329303847565308019344656794322782895018317390065944617958063632354366015566864835540250870376983695310032534155849953719876375569869555742245324945557144664052751061198515428282259820284269706675523728873767029679261849041042340752118124577132814671576347244753309632057354250404540280898611791002460027752483851944980033285431094287825377462038094622679562190025541968953107590385809529886339768220390809717294115323248915046541987830759368620870884550925609311689414379721726391138199995127600212555641358005101967863431424762579876637677799889565557483892562717337992931181144865291959037955832970647986956940904443908278930142535911742943333150466238761963104186230388987865649953032440995532697655672265518529854415190118155502793215535474853132593351398434361063502551991394065798369801944246019082829911191742304824460132383884414901446364900135634845209271474179812465366573560646332862199465926335593190907679158809160328356886331519221943053356830630016493923111084987123962759468753988545490444289695447914477198231867314564594670954102797026894092913979399072332295661770344299439407792429852994626254072308667533301997516126443844090498190579982518463407956618397702497039298684362818671062165163464143762909206295452339125094833154637823177284783049785146560168388526866925280550071190636694800609138895946857849457192392387716057212433281342289744650259177221722548644669676475718039814726859264731187528793774517611052435329564779491611558937073314082194740554515099724013956587930309794748772473475794804933745042322313424486387927947712550775897008128371029021560506642155063316255321095690543156253783453387572330967222494458690606470966769375267063638120048399293135503758833558407392418625807439485957455425936769429949933027674085494404967737117870101248519607064535579979631559201833492056409491687445727518691025668947311241675004524411591095260557314032451544185046425196621553036167527512761474832830645852025594277375718980359276363644572623084294197532243318430306020815907354400581138251573440449684137512035570210188078436916029207931736178986962434199924567346425590640842352713955415696170631065910250910726904544589894951851681232688963931428001284325267418419303954221648575832412363944484266205264947233602698985168540428951921650381867928383722460413801805019984089437259154680220164048367623692701645298938804896662024545159161371750877298707854067231173306934076888427410153822777809215405342955127778890947270530394492882630312707921878057699162943949907753488570595034450424185582030775567916095381052441739045873049197088764580653050702657987681031692089414005101142731969204171181960269265874512657885421026216796572002656137688848931393341790378490086825383513931408873860446396475256063679308181144676528030955520338568021223585102765886337812731491991944249952769861132422841055748138666455552227612577743423795602751649740640583591291436481361931840080442736719046842084821187942232724749448680765059951804589309661109256714470256555823957491005629318263862000812239582359518528745565390701114292041042956612771175902292106400205015474059409505779979767692987924836993270248784235598370799211960688975145660954102918179693130450981926458400687301227680018988867890493522832302817815197016949598128697633239427239073466807944184203643467905781169640259100352226905732655441861251519470796485803692419710226849846532987007728600609913599744404483920275436853586847378423549345142569547843629322402382988721762937865993462317794291965936148894614122147717295675973840953555747242618785354576313380107897488599170133254531717394613163353239789059984783798311035666447133254726477688954076103563403715256657079146671172788168885817928287897310777611770036575745411664217327877076480488539956446640794417763844696289154591275626811902360213953758735491417335166021258401949487439430166257241606861023595589709159394742590188173070833260605206349400107017899696006858914528401039185519165880542459699396159042679173266820123295182479027689854194832834194097278799419097379026401593987162313928487768236495097947800015461585898868563841278515827576310613408464068474999395813972151614902756812350047288174105680553756534969063528611780372501067270534076850336850858733407329956231141136700782456277730797082877274226625951365982455623353200026399300923108005290421829790276026841054092854621932987129355755602086584676162879846700222709045648961324210121984384169129235646312860269964688757064003696095193418248307192759463062121215411759578366712434996145624569859614361313318285407835443940328884906512220926466265270198109442854367889587061854275439335993427152364462347695508602421918798648245978440645247829350310495648427075039478237094538641029072819261056979835492236101776447058682398739710606911734949264717832403220036051520269356991068494875896991225443917693434621805429374281237220410843137034805498623890088662653024449008037702274898621674618984322750780329587846302000060793559311533340037309711089003749941412185297858688068817505800791624016436000489673525558794893065044361631150105326364592586254877194978516684925115366829518032160835396611150712160973402461682337080660297218513824317813314032958657143269557696943563941770885694033871061399009258321527591969105537865672633032376919188118466391402629997577858369831213113506349002573177682793325890538135416388621898768874154800223247187504738328105596775283162392696961106258080457773576045283745175081532115216101058540688368830135015993670535957426671032956145637615836958343247166852097858647465512259254246963408307533071603328635276431112550121298279899953269641604687812046477112776921083948676277389669442418863805721005296931576850376480305817440286063886350421969430393042493253811060448774138963829359669791976750367518540940570465975655141479475570356302171830147825020270826114295634576229572346463553346750304482029671151469070348669760947555612615179020222356466563640386911682743519560967697209532652755930414535769524489245650534499671414522366215823112316758853549149387580874105649694532092786385134458838636976824075188332118482419781266589203312308894338411887433040757817630334461327984685612914331860488027719854591079298019448348429042077212296952658242769124808176956700659592157767312636448845280646051918799730765928480081358936191505774407482116855466120773796092217256105925568085052314266915157459644620335064858121223130770950810507126256317917636499755404662148707153455347969263292917269130105303880430701863189304275249057607294650146907115060837972112539243427036363811910492102666553362763918381198362477209171801008312209476738827439422273730032827261986382728903169059300443491055126645921724935364305803264832329767277224082522916132153241806431755306760677725563131814190643859591744360412947395482360769129968757261002958766937258769839261791094655576532971495092064742541589221330358692319289594042555228990395124772119186945436754639454604849557435846091783042361212984045073011712571708007343460156116102696810434368298554912220847542388037783612998687937442887438849292494091841902659678413097773586483420213133004180626272507381273636349057656202973311231070791267092177440866155019261849213210393187979461044226412599608245559922402784496507806730016417528548491430680206703423729563232460159052552385204081240142214586145505165809998463151741836967406747320163370058011307088541154256252716893090086467133162545610626990768068836957149830419371753056603374758809146596545472838181722507766359360582841087744844562577596919213009338328843012024941862507085867362794201037298652667159575759286964753582744769550460597479292552806547348289955300858822792864745993770171289327165305272802380079534046930525602156432526277355863533148781974486295264965177644299276146186563934901867404988282727719686998407366527904746920064805089615020825341217110659734137447094282858954827042154411238353754423158192451498376524788898386731189148896221762992196087691672966002449826328029144654398084444580424536643584873326568940029322660991426129911536477610459702026697032559963046773613742408194708056704615739312351501528149167303358694878622121199302307729990863075486453185035886241548393547759844678145043175103984642407823387625103909966442426432519287196326427078048505550845981133652140750204873945369182262035200233671363585403188765783821919112023525244975000437557213535273068755791087971836882709910546555316912916458492142741099737013116377191427571511276665384127991695736890988308355559585040224612335154944443416386416863168215621288369297513663849973286860449281009888037729593054190452210202103201931958477698314601571304308826062790115186396787808708453201367546792249235689231428201831457124161630565196573917932839562610865330554087426625286938080785709478368329726606277665916361901589790750683317552689749720905376702583517334029517712110566877863497430152481937157266129197442891431382712795157121134861170810110114524295406992581196390144020537604101959034826074930551951632767796666991726890101931502077023961853293177249276110198730258683728368038250285649700088043270895079323995842917455681592253481674476861555366559478464097661632206276281351938898557476183077542325361798477830924863272480654922391039727035576322196942795413855983120614700273211888370155061353634694262432998092462243159762457981335305146798563651218558853720397213017769389125599055750214916701556499682788464448193523389689979312681237915929953769077034163390716965038114632354901476399859789022403303348264255137418007312611646630373127952469163859002645971892276510236549986404950596177368322669147723231385956783021376652338619498859104312871992565583452273393566356064531219997710900624892986293238901748023437262067326964951498473012998392177117320490366244455574484505802663222750494479619791922840243857708034830407080199623641147410125272432232229892595691529830042443866069655134159105277714369187361253365709875358613819585359165255467555821072523043354253365696260128912225436741219265610648334029607592296525859624572598802158411295370079150483863978161621197636011441994421622022779567530951143593322288543114753143313177082379687810195628879125953399901164235404272333412039517120777581884738801971880889921699949457859354912970973273332647508851656320478657196640876793228302801010364004992171653744184846768553808743525455906517263312286987771319157727364292193933255696527567377074287463389573052269290543800128247940386079320205743028002254279323547528963152983124425632779052783121313421136852581777566981841665950743399732454415458847682394977461934590005309371630741374929314448069589728127302721495643952147602574837834984248718989991721177790601463481583147708630383189156428833798068542356360558820684117958964680993959074926943080506724194475529569447721653581014988501789462079508613165746995221232292661365609369837477362463644715699193868348255253920379158834093351560336940753679626994984169662830727063877160026652529780901802075029450171964819785707746297757914547816473493655057985321433173844554605595011780830913750856008842670285606403895303348942751724300786429179467257864503625107185922133611637923486278946870014414226030989660207885906740501215940535901673859285078366932343707450335222900662750268810470231661799049208535608583777001445733540844649916426113722348196838705154953953463773449775449200497123057455863152426918805326702136830683637329293342953970054564884294233794703967301332204950582630854176567809005243282164329566348064032905266036883792967010791733362122541378710055376408177437706030585991140687026116833541939817673337566818266460569313969638156969781460820620972273625795829511254060905993605072344607270135963453454484646870172283887151410738037194900704984302282631025185414529476606789558940591380154177165826465308342946683231501920473975457624001673714850260180382786072348228431043230556719579970556576655762837434078320515168530894407888037697681143428483394969144639457455190865360336975400817955370003660911298828499795643764279340865831667177454283096726282154303202589478167063737072823663389097160054539395794629809412891731648203070142635201892889258219739593315740929162137583413797588348841888282037561904718335741537572119115968465556741796224619414535468089457124590807727302567753284965423687009642828746394601500098438486688726566338189974174224121956337174774994828812769578237069762832699609061109934159029134096049517198237038319363295266695193376970169772104894637626374728958727951069121682476646952358166580909573052918512484107174792367059429093830414025756548843920120800577745997924593596179987271458015844826103853545755442173466685377474990104464495021777580268575299728149254439181219980858744726799896902664052549274215148153123494411354527800047021258557941758601509819138086612394012852389206442908710586005990722651274959718326234309161387324003904124219110539242704212985982803790237089460803594692811854393943433246188842867232288871835750908570339637013919466146722158088584445411953737855126177114409689474637915621473854226802902050713617742490533811188866375016129575197545306454140747713966792685705675041194768008675528217291042778356390420019628134209903667431176834353575368706409785353430889934777330511266118211891894862357287373989055691817341100424732200269078846291826331869335837340201123378962199789390930569795961084536895805591457148126489302387651494030194083938415432914681442630435376705708127015889810842793789253521921643533901144076652326232267003833335172169581662079974019816604331680582695177660571226466169921626665632283721238525142732422910766096015377365111385384814346555290646183014857579765017818770908087872835635612632264198237807684846025776711122649994961798556860006161669019098353981978017370106497799228431997148982933344354974086939928716111181787775630541081515626534835797778648689350124411681980050737320608053305784524375918408512487743361917019021269994932482136242993649363138182966385373075593200534583851875359226252957317338610772269707335922955387199490573226226232377775350697628001887745852426525552607741084845914601014729494798649622343368463932107299503646894220060976752726680634577456346273603831400476365439668964415927801710806084601660630965889235641085729294723955920091428159524116671464548735536109350815705070141300621339882358021323365723847304077412910082834064862001763478462466281361001463459217820917239915168374100350862374531345636984222387813250704465430766161636424146501592365936888911718215213799355416161542596777500427671509628900337561597941776492992309012375680299051537756352891585516018801527447519957648736241128122970131140664884901536231380981256181239320875508659514320996618010964678823459362630655138290809894894083790844794124281113637032145016448584590843259730903058066371042246395820684765776060377594004739337026678408065922280822791374238769805804824160619974831029472323326025352537059287832378989283671084347195366489966260037351847499959023417320492824316616730905433234452516391938520012343053026913288110614111135965946475334762485439975204568816333605900948265894699814632365548822435925449194175516476946418758812524985831916003014055838120574455042466231267344763650475783081060073716849770124952004083412876784719141182200236737173121323294103788525309554173067270257381961579774391058390889973717810977902820322062122172849564976929022792283216327889886154182742744139052703916596271006383847067102167837012875190342012574003121678007628897735942219071185802185981425580297985372237530057127202568387209834602673805510218245127146442550809791252735649369924670663652069302121292070256612588400986020969950541702719971132381120332033869172612645234843646359750517450831861123136228067627373575694804063770423636765408833224047302504137011362211083350127036537766965110170698596733406295839332647279322253833243396468964755259951240947369667744734024613605153098943686125664888701158633276612155275134623815974271316760568481276233120082955810414286837677176580259334663365334187787651815100396096602328969974693277928349793602573589934963820156396331458433380169069520126172532591014346093575497900874574806950722089916129112973827028985101431309802613663285876303893310182849152365465368581260900065448288924409764099795083168737026615050705066163050082297321401324800370955993553018659644941080650251285068393435830742946735373457080635425321109934907624873902762294035104011603032302098101692710408239092765135937166659100373666633248027604734832294941934266412444422897668030206920222592696800909941492277939395207392867063214834330199870692445918742599942463121389861501324828713923819986523344400819306609180597398805216615202841382842868179935793014308646286410961455395593280321161417943679049723153811308523089649948623337850195164189770357314221233307113870816045858910151765273425097889930412916492843324261771825235568783773921789021358477643732179174252030353203529822910038271921530626071545032899182621353795944576200256372783073393230158507418356067357893887537423236618948149074273608571784756642348589902121970250126361434662625636904783268648415484989506527499124906921847179744511531327104016317112943785363902860706101824755947137732838415562208549148314721970082534138554257030847208071037962540352103060336833256324283266670246406809568024530291975354334147968668635136990522667651971777527264996783375675779219087949333270929116124898171718768245828726027213289690489182683294906762150867112910694066325176702951924695428489769355777155668375859149396138737104617321752870774282742983027541440708371737499774934788938929205618287944243089410609805581509673593981190407754212736153854759696212105856246816806842321582582078854899601222727459442925946939542345788141391851253109053420226349631129665206819588104725967946870467870058992667950144359859301318976254406988194926074675807946997883453748928528303012678757728840639411962261174452347224501475023706615409772976800914134966572628565113733483511986572154111543308290469334664335251794977516138160579025016326562148835081253357792087354375915321685931234594163692091347910380143945310833775743490581528989054022881094347914358724523089176821755290075287041579426469570665493206605277348687406977713572309352024097736798592535894712334331579340008144961449162114246165084013156992272014747164707438120735459984877993942074718625682430666890820563252434833063949722166471639912531365562737991045061334139305411081186659702247251734374232103985971496211198021013286170148929365968732416255232747684136365413656980613075678458362772496901665013579778887535629513471952080768945768842114984201082395017019896172839427183176721078212071000283149829180867721956168897739177766241592108581646342101373292545652257318975987543149718629418573827815133630745188556628105678747191355126047779916566121088363568413476132710547074688507135269153155451551714333155705293644134228978735091476094786759247967718533768200883015688352610250225814638211338501361313156295368102712044081477599665649703395998279443411930392525317615964654340548084550140200490048082431896148914707807973859413866454094143502462699602404983252043197394189053939471873559036003310454777000836271742839023520473727224112055474906928065644382347147073986977016413311872422740452989725651490970348514888017879631429580371402792984718419990692371392832632052414584256251067613772838654359914427197279878907195898626878789517692271694455092693390922378107773176710159320513055692721357839927798955299928921804853115995206621020604049466446521377571424944176838894501677046594589879156679036047578855583514804779403925017528036088486029592613324847386764623434296556666548530925173003137622507173466029387624590654107574337965001953153525112358914605716171382566869046131525775364458100467957329462049551452019391716849423661161226994545533689930044937157780978455197613765840581205810574392076649706276226665502628383626418394243525593665317992458801602316409511307919118670352775467175084187109350507065619698789729657971613004406390532619041533869008005714750057411836836594586387635816839232344787000383685528435214766696164071254985155982787159165796275290152455200458675738169985943126352470999314173171520963523946113563337334121333377634949788356019159185302531219906440757515431715186650154865874137864837908369690690796999371299230188543734841276470957502211632868803812677810289322510440106720878909835306468801214644145875946553855294184324016997752704776805899794368173199700757385478488455911635786258015451566504935590203871110195963497785549025181708741054359534634428108118103505555709909590220390550248904694611736667640620605830424362481072666079440615810841187586055539736974957122970617945204946238763470941638649341392216164616720979454264667420953981325863752527569468336052212254980375160174412986285004131119912887364837756402000321188184870020144683309598333324246647331574151649503358725950942945364032933552567280586931871306015930159125899289229927074921283319110318063807047998483012925431766029861103995227291160847670621681145274511915754165199276640280700693543828950582658847731888844972488667254072918330745050095713819088915476942835485087118696688699661823578069002578708667000309761891469345137117614969532197903241664924497481372769831884247448247740805365872243412438727117187450798433031685820792523802741220138154966898659203861264819509182086234473532420625008429299108973288740394189738537937349172601520920765240677312168515192893217305443104066998026776034705591840828707218851900333467388340733156145769626151636135734648781058077185279524113773208736960107022057192496714908218817276943896857957257332627783735173788426807602245179351236473714043103341757234679572609512226268207611136667323377773368336337449739637913960260149744357078539085303499346114475769719871676275160037500807418456353010947662426477360941353799894977004803479848128327163946053740587815390223113102005868141492757203590487977170863587993597580806437103812241915965588861513063411795967561263866079047422566602124531206546789752102736401225358367773852005754125230698123475982379628818108344853858349121195715051688584884474356415424983812395250384818889139681409089466470841548553510569389407567701880775560012227911564289055663213082413535079800480682182522298570001618195609626871414331813719193966721743394919363325620485794161052035490913595566405749057791140371166510453216114926411522306370815139323197893777634058102843208313597760761766423134289689664158567172122813503382863694998190002139086076492338316215269996622241735204922095969170300551744947383969712024893865666557691027392240993223061928905867608826808389132819458018123397571023242644729862650620090297991642270843183429471351521579301258629163325267458613410021582366746455105619588173234798895005416819124279067558359178478854803902816432993060985731491373473276694189708290041648102911204013312417286301634243125860959491412181235297573987281324585109765300457024073919662242844182604082044524814968205977139659530052745123992508715393021241209731605265172131206896860079704074835114862021337228687147704691006469783750278398125258691507799873884477154977534904160052981097668916020432723071918422814284949214127329397453921347782054670070492693515920725507795708743385094040739359498764098805932291292431368845872460789876926426272046391976510400815773568114779202579445965283861019824578588784945929203948211416788889324454447644213134903912271602047666229612966039608782104133809248495177429425712636557963846521545541491662469611842761464349131519665212820789297923756618103791776617485559927981542740347603662364108432709806921690299786321930672918306678852137652974816985038778338784033367683900692455915081443907991010929872672125033658276232757104167465397911565387836388487910145574076365390524951696410797265071748963946138906345673321055209733787601963614228345170190314410904412180897374018834115629996338646858557733244485970120310538701790650039962435916869858262466528702702737599863156354612765284003151384048641377096215067117032041673022974681018256974292298416729540888387234076771902340487341846639075358034323878632545655437253888501426221611282561387524269205455421768886778257530977362810938769773420383981521630420832140645408922538982698089090311420299982662728163143048722047321696386174008217565901733061799228036874083967351034300154798285669095513723599724928688748473895902137234510732284649956809914471838251560223685944979191319392647037509517014316930437793629167869758828270843104494114465634398046339548610508170198287085486814325978233674204645518213462044111133547318027712463003070120525398942729244932263902732191342135067191772896359760458973169060839333810650533705822140202720220915440388230692314834565266696898639967537757666232719061865305515781744453586372253860677430860697527514510830997417406840277253761687778338685453488895956926259015768232534391088453711860213556882882346261881673042345513535815640078329477099391210206513631385323646862689482489379473115172485655010321846809552211409906196510748076006931649785261693327847757709075512803998316992790260807291424062203805480097269552422272810247666304862017102333452185320727327057136305452999082148690344253988137105174195395629131387064052744849126738652761824915746507263792391723831403355701062721435612847179654415090730944226355159313833557018272813231096647373916114874615269949179792991337779808160037326428518868156443438576857661632550057533425309893190597200015081242450650165178218968900640622431827591975198243370724087005981427813476095470577216397953924236127788677540854431704408402736824686943951662951342235527007029525515941519211945328198806019483888807830655655338575739587823641655208466636026823822787614327338027264341911116877920039047220498347299302464074851215681226642586996564180381097442859641430610578290903988419843664674868055393758628732204809319012218483534834112062993200774209168924470344975063278374672405591624823509906443320173956757054913665288974145783876107949856534597279218832334851130401604327080107848039975607267214404773829510412709628689759844539619479134990183333538745693201777222233388530791899612052209803057078322356928754214625990554616555906890569857688818774697435293549469268278315673187635298702836434817954820143829588954710188082199397401057300468405859608076602891414639380541202633362060294851868848369663693871027132132562843473118437697865546827902613631699131694490703485140456650759722164668468844975282641807243172971050152450343289071835714432506421208659840914652002536800799114648409518419638117096810283402024589726537041468554804947808382238352093115103562396662738400374543703151077193238496567180946992292714334312877591842474014723417037511600720308548565728745370257579228848454000393266379787439628439399665189409158335120881833306086257312513789735095302776619550337504713273437615448913433888479481118631050056795545180592065182637804386157881046464782426096436895833895701464171611038721262809176218701107031003900099022852455496428297429923345170790791542884304344547971138810066972315918331278184389351822906691439170519544701399893919333671181246268684185830377212779791819894820829750178149624856205101740771664066356882034310658324315100181843470108524560068723371198224937575780020648255336578391267564847708570691106180950304930400520833663569624504886815713408786386067939983228002994224703258923579049073192279196602091495372137829052290190525614109838438304470970811882666321217866636798018258360757290720464871491220325129631059770388486549176764060179800745907142146839441931082407223264591772122662703711163422169985566177188982861805120208620565113801590314476977036024751873366789613372274463042242514106259429882068956140280603853991575900705391056389108684339913142052846554589253658050323528216623837897269942917088797400950861502189970625314827331195549028786031209077282578683598695279438088181573469906491916935238331306346480261778628365651336530501392247671754831855243007678616339885927755862901145403062837610639699489025499749447535637131323169635913675655422464185388850642686617475459776394403620414922226688868859561930417490028608090910851011216448459546741191489189535678517574369803116518187664092204169476061385985406036889151942117868594375943482625362213418144504769853145764993145898086960892701560468130401496443667542552962776240328391670666390528505183507309221488531412640950019735031395054046991392790638008779319227294308366310848422763397198606876016475012948462341074556581513908102461831246169889140014609749862359621320839435460107789692792024163853381629040800209826204974866187041450691185672310663388523283760409488811817387495510249364907700143355000275727553492715923493117653241269888756158416291243258393159426332484278415422921938634634240508791117157680644529798270168143590139986902033286104359053727076310764288616446077389773003538779632545496937770141288504455687869874515582797924442856548812857547164000839853636309538555929731456985309014606942377183134103806135073604411357234124097581942040245262475464974629701755998940995724076932792682341866705814942840437848227352998077606281106333793999920491973992958607724160823625536414460544865195686019610163009369737089272178824229227099987619138340500148009486635499373621197270721124758998651666304106700312772418660706526207731750849584203781656825590114518856204286776649453432719264510089159433575885521068710301671176081966586809410542144854304046678685705628231542241766841905855618294741104964898860195129522165313397109316088830982205849312101917654083452101897482306788796625863723379084005824631662664936418709999910460295495299003101979551132309823922502631106339268961496821302101047527078982837925168291410113526896660709915696709146569868559207659520651782297094536319279044975973357928084536530139093846344422154807483140692375272015916676460245405257007719265201358195665426765011214095917041031067246531259385730778172143521393103569587450942704707440159451721992581940149635245753734174490568453184094700205371801615282374575774158612481206267689088576520568038603517418552575507964224396006346394880446189747596850864412331824735408362589580342432159197230850532562630799017126424752218911217472426952493515749261356065354948366985909492320313647711656747221267813704971043882705725860721978990080782622987772700030845691760447901778396329259830179534152182176359001155693808532229987662646110618667069739040136924089517325850042441466848050059634583827675498883486318513946330030885187442287339589356599022881221485413527957500842828012578356999272088288811536659466048090447272813682633602542322341286854895038081286958145107449844974756557161406431191787458166995058966748891743197468202047775556000805515473423194909592164365610702305288609218265738906614882927619863733176141781843691828026500912238198359411097779673744237123425622655056701655958612035511651246130417354433543986424646520859753315673261710372457367178422683686763698534043192769631700462818154133239032124914392735755991792764578506821771410170995217097953900182509818026288680700797235698649557803413971112745126328454393388522806441571060326513259590635923591997905936466061580775428526022759828713684393563501377484749255148963698673006592989707153718472607249727273396462068042143081931504712892651588354327963479485641423189271337420691544593586349740667758071179305528724290854492721339251335593390477175084850907758342019207681453937761461190591196757855838526097022297433351343617259141376929622640765486070907521269602888512259614190188817451821902998744493396079498605359443724658518174602017579262609445694216427130970519274423971479383633506721365082336170961912368884159319885565240321810999177167998350549250826180725416086099098050987024659784023665401729308244092853188157161487644024700448309252183978557410703276445559243440965978673037138358769716242591121623128378498880046446495204145215762954763059871089350342893565584230157414838536808071456074321039639965856936240786763038041885858493020353110431090356577597656634824200670413604932390398517902657362579824583144683693219395388952926695172792407442793127244493864422350200664207833936693844960036183007238797266523141405989691289940363440397612336231434313973382794580752488824643234836278196646501711121035612520082960819146486075934795756406853519529582929039321371972683922615429001813986209715279337096199574340738102864723713715398170699152962891816804923490916179137286926228569439487509185433798420779878865724784593520946941360509433277330869313251522404601034168036456784907286383664095053883892817694676523488705248567632040040321213970455994141541906504428104105348851292834924808702710637635514931422956806800791156643964883274375341789417019612305200459703779912827542049509930566440744643516810308749990568403027915446855982981304761022601651631389451953038521642441255012207405912395902227962506476352564494700729940280819808344015310754028108176673327132460089587033702728146413715249324306735264378216169490402915734094031959319750320207172249376518914180207110061611521000849343949377136269967322436767726775075948795552062757741834040994560282762344116057704987033953752201220652511020836273826941453677685597562927182420285695606773678130472698972376602607829047475645884538478479203317322209172631626304485544397599587433316205871200490459885153775135497660568609903074779080003371503102386768229831491643003636555491955902309765789734710278676228112131037391242490021652914248225425266805541834704794573236216970872814597258662436721582490484773071595478886992253141811091759435947856848305724470421750004739884796233984007352181108964325892349613073387918455473075097743377324371484863900646789853136580691678941898619687763604968304059215103287725695632855397044932282014300082966958555951083348028566028970232961621726941268965036338896534265566260813428706497211378635480128395405040653997300426973925467743740653753913010045044806186604247025910327045497897088612924525707353503375522271406762878387551706713121451299696115329444533348893726146345071308660748672958306190482842576346333831744162400165594666720298104830438926558905250868359351604203984732708721918953686095677333366383635411659897486239338591425085215744041988375989442828435788691360950540294281908381414544769770067321639215204792068013497411531151248845147277909538995377616468255861752540986055385937197475829086993206053287109352437523424153995065129419422803512377828602584864642254471818274801184328593827339996224928128638467529346456424167002015583859311962271842724557646132574547396013906182520917764793939167664770234476052590421647470323415922425112579971525350312487276023768272009131489816046514346181651129539748259814105013311571506451548904855999373385580560334162692448334738192623874510105537588288085291572503222852488154520546462015062934190576454977220276982892028441405705767154292278498902411761192313816611256367257664226611339883117450696881280997732926910947174835515034908098536553910533994088149989394011672898875672650516393612517008686417696992621444961383139074741847064094792838900130746973629054124213697884212790437357135578630266856119694848253324581665331438813790191886173519698700892905318335295364459718296396929427023812919359348527150775943514399257298262832266603225287176333375681209187549837487571932246081224589630605996552095834589197462190082312588602462296317390887942299191229451982719330030026457588934630690241318355202979444304976560246947077593271651739550895160297507372768638956689069223212519549479214972681529718376210325407818536893746676807054709476437634259030159412861463803887181436973384251393464152888804191419816487035100033017858808941080680600774397200549732141220639660706107712772567975576485664304503261951241104924042532445587099904435376789233972175013938959770733533725268696434292097052161622866458403231885061062823920025467909261105352648904544789347473733855739678457968281005621153873187920460249392375931373936828895253491171538649982909646015894858688203683693360654600086326114587430323988030274236134341249568490345280501612511060874706601445996271809817299545610862217514792959114367290095993587268177872677087207836417783082100833975319744814809561144254551402275332443030044864340513986518936294301904250123209292115234577073114707486741479490969603037132555928164828987364605308316708401037379981175892086451570111885067371568846169247062065656941228530334762855411321957563155219144870725824581962597298143251556124578543611915796342756311998811137939122714768697824813049138160270207478643844913896607032560116157215661386116351044796938973024759571777314566371346479594491372080042327657885934435660271215422304397461953782008599481738565263672531443657143946151499868014691060739081165123093497545945841503223781367159149438230691374157189988015083408278161829571250697860090727694090826087218733428211064083208249387724520130088691215149868545105767300206795473134398355687211551590413144434205059548718740600007132174345263908467928383429033725595571663499931825711858301591229812339673506681666628773021713700142922802973831872535063645196823311120394250654449924938816192435326931173984651392960882490054066671877356883988384272941854733753064250971406151623255675757736011237634155067293868552867651332646017567112976083114391514042152643569841117002558142408442847591264374126268821944841298215779884674697013813674277943897001213867695188522781579593387407038786713332540022832511340811363769555049843612301730140991605449297509632301522979595364671066029100207483969048984632404821474078731858306475085367300132377623206427279507264343632920098456020781707265908094424199544019940827620364564066897659021681360777652584573894047450376692066896238240467995353899263807644623564909491994273011586059443796883474047832549555644235881239903514382201562698679237713016978496935924439010426994914605064848046728584832738559687749724278251682460368292468920656326278559698634030434573340741264257746086988008730132233286388111165010854812091224336936543205304057624107380125296774670800037053321370276792598002966345870595893878891766109320705301171950561464093548366996999927746194434626057052905479301585828740294842527120102658257562189663862653151619394769040697099154806844841952754601324165251488469948141075592841533157416019769377372784178527154352239408608307486508743012651774304220904511574473107097037688572073834239085558866492331360872769264736907069928663074296930329516079601331644838557652288171548695114396780105867235695086049069192787515331604751410519547928576602167513243489442225696316229849493485248904615521196063386462646513942462432752322935175959610288330291047388444497968954150650761632707537496198561654361375329455587198471649613922860061426806951117468291367186547994388382912999922033097033556933455697051569022629420704006957275240729718581004174623079141380030525908712694916096048958612816809242882134141973880415338257481953264211331795700966807922910598650892636397120835365885917025968289588251571342179241597063539900497018654596710175790491691991085346551885793188804876595847436175470641606027859654853957957807180809805740379592622485639156218150295331756992086211447941715284211057108451458157167232498744477962514572758746811221100704833427853123129308437524863752454685780450769495843666631903029602687841518293999796607042012686440975417308993084046883663446820525608966519487996993484977761011647712848765783612075702682897204421919013431911449186868893559559439981024916305079445219389277109678135358473751406250594702305149857988201565039820360283149637566110999909265203349284450154796940321122316959519693211800975709252145163585724064743670848714051164570546218792193876930791664837542045649381261469178240138176844626592246585327708074568083088647816286290401324898281661941554797559861843422559135157895916138165374795190527835360240092153298004115936422126546021532339629745474721837186926769019053195232874871835620124959745105502124749401410454105883512021087917814344847445314960951764277117716171876144065054275535951679035591436865292321795897160223756384634536498627267495410091661844174479266302661547709786026736828254377138429524814195122952314060964689425183932510995458426426340420314677851483707008244689554789814311506509438892302855494925432961819590570204184068541237377791742857971190656293104819409953808560671796873007216486289945314229103579639588451321306225194120522854656810871560141220449962710879255754485769754714823414061572298882332721615708088900670351905319493178158075096396983393345778915123836070803891928181587940334431789654605436233910411091190215323132553832000031738710492584084394238622054095966815002157133622894723782746303485950336591057327513254353262141457421387138218105300735275421255557203940548613081630169315897611557576663640607564241819497914270038688880249549634767564297255769638561720745609923668047944089520311982194395544906448556139362599160020755290958260435670115134843900158100953818663204867324221492580999858890503863070593126943062768999446246014908286725066979226355301299829127006511121925856021210006885647322867617878740342860271650732721687530546721463447291792054610640672537104852309524689348217476548991851138372249234883228623205485432001607862917750020792403578304416674477309917852953428069852319210385640883985718943670022362133301568750401581366731325085075667741746401665991539055320628100394018440935195697297462025052380619969272951503495517352514349974252566437539067140754573535071498393399177590184678438871779027348866743999360836915456632347148701731885258421533703790712151336313401815655335316303092403336335620670937862912121107265067119945072272764014315197901725313427648848981237196670883149455696771188966986833165031243821957550699549882948588426023856270339745475186475753442392432922538617150469194443460812830853137912356828401112541137793115907175194698714964072358643117660952266598508038544036320089686414019967578189267907407133372531010336909576215229553837512377016644154965839960056818786878678665121652121093155250309853677382756433458911331873774071988367633056911242916002929894271518144011561732994441979957997396435402424289476739566886678011555487823023434089659207769769503779351226009291147604244430396528325850838397010074704223014841057049747992465185383421222317110296160843911473542224230567698405707574888506150341006459111064217797636448824943669387668380140296905462620488357789098052740692035558179607896335721728785720386627069468571714270979081792816642271022078525600347577051744093634766073298128065193837347228406333112834494226984668368146242165923111343407715983336143658972036609980916404364397073277223308956217227166355856780565957006555858502270160367929984266880480519943551642526766782835911461067695300625684702821473393468335428023060596848477209158167954609296400905008793059702619072239976221146131534026045092525187272998182484161793938425638745806898533151589839980010462606841565019623419141560941687366050809046428221235748491648574219243540607356957190161207359949280909366863938880113705153124111455951409666752952130136694724295968251784283431457506702671373962488123831400308017743937379509900831418566667470873996212201142413581365310638554851999913276821075518282252535074809562192751605506046470128305593169795932443654489344064661911306165195306554399487086835020912249206213234160237964843504249876215549968671964801860762912333032184487822112891896597366336251992990062623915474169191597213675631879429947096443250470661166019455557468073283968559158883837023183010987970126912239147612033319088624086764612218140248304894783250299722878541475564636568990174717991106059256318002066011982806204793928277718979150904009817535827986103804262629422162600855449451322286607027802895075353630385551992271111365049793410917294293439915537656594608714480565741523116998371096843107963419922839821451949796761778134516795484871220854931990953104459918784461897855820609269417783331935669465966787555351932196111865725131483597002934187558272849281501281488723140728221014369453940984418111465160523450721366570961643898807106824385655496716041255437614426512717790081775573476642473512876413874919731274801985570061043372107770203855915504107647058307438919515176330114798190612432120304953883352030934022611649222398210650126207534861159085494003877166118646409561962975844766401989558626721980143259514051767616042664300985849991520808943038248721400597140283874388382980424851850531391058578357693290133069312636911322253820015007954731178593241993460355879664652605399111495552026444094701115901094876016556221408911168468691357829129633414682783008487421000439252017836138714451105045662909357422320936360883615217328223908489968624622241131003631399434850464439125041234571308003691035650375209988935609637032085421787393188641686467829589438141132586510638781611390785954086108964264228606592916635300616103366843637731548198097010884495954713255738047249304962532438290984575074583106108225742155761024533594422778675778918905539606756431473695546063827179390352297104635076918473927611505038652692048307624118788114270402604627174434219451849645915777886142934676615211744036498891257969423468323029875279693927688785383170682519472550118960641372841505320465155200688810524957972356666829760947529569491755953968073705362144949428505819909973648127103403830273666021107094891159401933022740452112493535228420399521489022394990075676677265042214631018800659946976505822246952276986099476811496769558571615383311294804229860342535621999130548296990415628309318517971931056200657089271984531752807550421012893637345787734738822353595806766807156336386526980002984811876107996686671205637419923775184565199160256994903515627044889422611537526573839930150539065608232608808806662470100717982780607653324138716690348534733291513726816205721494803728007990883208450056825100898205889428206525189444902158788488164667168372853332433930954507052332252633921224847974249187484539128948044510728086442076573450641357178020101608345053063078520557188676292561699491869859979537786970344234943637639117403212297675537002546753284361976809100640777061051467057966047573329044970012854594183726169260426171484037078086780497324999708360436203990734003634420073734040709425476375829639849527963689823086796109789268461239164984375583414118695931905020376403067444858825676082474260178468645808749636849762858131106173642841305612270949242703269726949546300822805193511791483487076759619933160983946952440672878418050613959993277024044452396022405826821220564830722123183344865873865302297566502134594397814295053139365675026011796626669628363764360503773610552773759765599057281500345877307498643556909017885999118593392882989530709324370181777920150162680514314111743000107496170270457843414368313450864464225022912220188995574270068075270060098127759472508912214442988835758569484765277403799497722866000603958451338061277588123418546353288290958409191544568856632146709675945806361778968642392661645603202203392346571867990322876257526064141935814028599245793186566849493774135134479564432004251444050541376847441589172435281077838726699100877143093232077480465352087836011577035809644430609464362170332691184520043011184001278008379660131411897489402295576841399008694114268439690024475218715637451490463739265214958554032476411366363577859387607778854234568331710770904605266808217684968700949733827438213887889989292733730339071054463287487417074214101119294498787154055546719438997979155349226977640048357306609805785545687345200552677383132683707958767741592799618420583227749162431022059972877302710004453608314418426744255135168271130292578444445061484534360417459110511743797090898365721538564082005386521541384296850875898354704786301238599813345383966362553845505794573430221485081879855167321701977776917909873025767345507225375127278933359529825446227617996212110037019432513361436132363398695283945311963413011996047963289632408103579921530879031997751418497124293048036683499698319007268707350114864936635407094145931718470596074799924813244334637790575255180206770873343957493885388344112283328055295835747235318385805666035679539764973921415064339292368106508716320016227048186645593831119233587923015550048601932934058052561984008839087031168253422009334781693338962903900034738664009389097122187834501401122813725751839138187466176814757725655031839568759373432977801303257631244770501442277233825747853039413353471447756269696377223464926591667661519171524951059393458927768517664319833782917477633219130645707506456371167395141967839375011507772805863770087790927615114605170890884392113149990815713206298226688499102028577161531756049486522532279809077995461939996718056958948888684435465393780034083347872238230336024905679074869830433517046346941678185233641211217606978598312420061127145342847922284295252406144019727770393834160749035395278096053723007375234497794086303772737426791384436295581156888404451006518726346613489314399393587710152114562284959150016004150525203227587223909948841643828211027959245168936509847318973175580378821812438604654428434359391387792628065741461624247959480216544847253106887900004299749678863462548891835204695992623020414393853084678673563991573652943480216976702586942878587997571932185028632886532067878958983392795178884355596841036820231870890533584623044356450185592883410096565835058872370324720394291618642931674209898625293561082672951329604478928559509446119244837005934294112543513230314726784489561398731360852864093309562872022771258618916698838522989457367022506031802860586732978176315634945047539161463569171908944542073261635522293460101658751494773825203675564481425574473877630748454694366160798174361623560516239299451961679208091147442046824515660453646725791067721338281467948195990498191895148143073728681748341861631238088625644590472958246372770470707234812646994580088392728341395204402425649595629619766032500624107292354444038949688670275421558921644817263512870566331030329974105150019254131172852630998461209983893612211867416212523510292883659558705049642380414800475685552850680680647050322332609574853730811213502019677022354187942659564190607781479284125545160765507294409406991765034596559056765976006933558648226013233091716665338478131620378143840227548480812470228195200226454151336545843800635012309444967929589979730036483488003714060040573350495682506019977720277698978676437960388010941103137636815972861115332759992284172070120537925805832304133789588098472849352706680243593547372289975095747255109857872892812652546277022714492951592626931504226244950325975815094383657635871180256509942679713214807526784476204873407136475053005542433205138011490279143908037473326466464438093381112536265312075885421818780090754879348519359595343639547572008197716622650197078324671261886522205339918475804688110826853626303702517913356228885959472942259702072094938557324669245928919247773090264261417852169292319035008834550292378358761544742033177502809606927808795484460734742123770023898720002319253258790510980471529269302314899324191995914477887526622610136600298360170768368483715280148047046994585973602679126548483287503243088498659705587420524718677029617086468707394540711113858311283945917983989450119628476984970399896560629566106308693776882249647010077433362979694167231780847272747742758414349084126366331595933271940820787127738710677497170040074271484318318562820780784099969348775658427157544467128179485946193451454430157801953930495252166073396850417316126072311066912993012671195163231097883425205330040718029608279250330856150511362345764575768573085456297717035038314981042063114314084918146631082897886549411446535594865463071352224546216676387516363048439448708277440950300107489081323280876766406315878397964835259186746945860999717136436201480187253928464411829476229450364224330624863483334476645504366674853064869547411668697482492417145701274060391929988090782873408528366432746391988279665194320247393076425538183614849838902325352355589380377513383150829002569420445103470285699392440534423647719394925034124321793832241322804841645720605797516230239563119935975228256372135070208354835536862512593504343856828918432462488820758631219950725014646264860707481187281275561626235539991102738439638819790303753278314492224710065986723198114163131135165246459141995413287357548797523206532898995523905149280674331976130031517134588568588542534578452748712972110278938038599107418045914626238238903163244337819917926186357086214183568164715177637268595566166897205430801943625784511179970550633106007231238425365219476459816797461703262324478744459449408051053801875307461789519633128686893784345893757661589189395999508782011325326830429731512841102106423201188615524864815290174110210042178252002965143230966998520380991842656140115334495365054597453998869565157200441368766135554660165822643511289973059600734484771764728537484319909016240587551185163107231271034129281128162445134956993522770165483744767414103722767508122460214056292744782769532669733141139163031660109313034928321105809307819973807632325947439703145177697927737435683470132103965613388120356943255406400812838007605722806886814956768310031891525302213146542066953689896597647582870104892090722414597043730907965944795029664096810018866745492664023073537872877032630018242274113439334419145651091953785209693363310496570382058224468718682554841123625221170903572438780135633580345698644724041878748223534603438221386746533424103749195705243235671053378308136251282731513165108425364537243928564442584874727901883427453333079040599524288363649566676261081609242532124220498368992513604731048357273474908978804552937305351526952043062678525054095738797273856811263792649223874628017599736755934122532542559404348302131424887080131512570215396248033770407015640592031752702021451367852745269821818274330403450975132935711966351403878044522044401071053654939639114239914973434845031505071422955721154959976339330266295959364401514694899864025608371015410695937730566481801570850746225696462290955472796639371117525801417820933209966946795468582349776093370462676366543511615471428936813833871706611596081309936020266653330743806904306597598073080612128841502113918226706207090718526381264411311432323343986582100730919806052902650742902159960950155941273665785309930110581017597964511791190198670778188286676052973907701635967696975986427338730438038183611957576211982734509713549100185896191873755353233651111616189291088881247292813828975926278897669902272475730593546590326774133802393368586764681210018461614236331565393574537695540750918575514354718680568527681215955003533342532443213730932679954204904158625550921904570239633688732842491053286982177358094902351450895556399123490025483176141461981101520347454064364082977161965552032024864235577602528711312961545294375833970846690884844683330580066064536664225807553711947829706041301777310709197008737124352839370542179257179803968100300955725456319445139439638265187833666430046390167147489560622163168568843601570944718378849748215377085509622490914562514406092457206861639285317235646129419135997429147239715352504279637137063298240768465527491551161015693499006008606463740280993939478233232294803578445682377930025266525382101031856079821662336065798642593722712166133021909939010867466225394420818659200606896215144333214496595286090428450187984181240338458910727830768726651026723317207951371988458613434206831900883070618093194335426546613774733503218718100056222135214761706078989414636736586770854523110122763122856157020545781669384405684534889196400481513407992330594471145543136227334674209148182652958389859694810381340853561499633204744128599329931708391643804443764527983847456236027827427965143359630328308488065415901335886745236153697694012241905648073931692714078229882738519531541537841567469659010872600652727553629275440548207237044846988678722466885070065146976800677608416525478980016039333356988256334475249176939351603916024954943609030413923332213848307470444366007948826490124878210510210030280475115074356428188671121869614766182742435687138584696663632683199653755911014803395583304933261071354977115650424065920379657411102300484917411138792814475016417314178620240650843305415671956666877916547506623254150863398205148709416807839154234500678752942461303716406576942944066405928610847730558536575251274604405990931387653877382028306033160214408550761096268859657626212913679775163212704639135687128159579645551901158687203169869808036564702897184772938683943533589706707606871278517423981299214731505243153633463704304804540779589274723791147070173368507342361654944881282912443558812610541424552473701934722792212994809457842211398466942208510999750485886256466199544605054558326352380274750010942911998315114286660055549130487787209652715067124771636979976889465551779085275802723654050480898258245365741976019029582138463279364394972907228974074062992632884032649490297237036866270051092745181649710314823482192410325750619136727884865014870813782388184525150349577614639436336634709123937289275490415500190984159741045589230758780031718165681966140393157506088182128709342247962660775672405844756063465425361348896623196500330095647944082969301133426726182886146142723694477260933552977565811252582075030344437791957925443509357087427532336831712455016896450222174478737555715797404288242969085520222693728513101254897647795790352621965975423217404562795305871414908161829776861922127657765471318053889033127193862142781468276698590162583852024473974486806756603146825491700438134571701508406738836438751438047079668872069182959045155248222666783152809691982890693939600509473277073351218098443394656406994064677980578734472329303837548362264306284194686416692322712369094448091941943541478268289414870089659931360419476466426048038096856062127071526017305043927021117757389610519906904289049973364932851758971997106274551169641370988560338045475548655873965739941726642853886801657445302000011511541965869662870503576435453818902967395508660723423550163100340729308235794646335261089877524666694075543573791962690402151258960327457455716615867877107348749788770912573267689085338247229053566986549082093189812180413306134520723077353164657980311187307399317163450561568447566267589045961213250591323051778435388224647261919803701665744255424386552276550004675245914016105645822090083329026784736433338367866728133930225379546518110726112538345763544132271135524001749616500541650571583543568900033213280825179136101125248660883907392083525015435310050658958975279569539320159936487734467384091833335097354934873923309759305161091237525324298965336916067975899943338116538980239265532389528093858377549785465040715952279493961651285506796822821050012644504907935400464907218707767212716475887678362361850753775295143718085303154173649925046758555826629007950042432377151468277207690057820834583992484094541569291682425236824609243786018539005218804997279084873548865315613803213501235908342235777151357911998482042929459991602815192330085249907241046907009257019377013907077395316491990201838182118959427773872792203153134864914318246938770571697421786983904543683569172548486286074589744225512396749357778133364183744018565359451754715075393986357421012431299765642658526868730364314795187845298381347407714119382602642770148948547612755638745373393265061139626237151197290399829932867548358262178653204594923014582620602525575469330304899124536202730425243532501508777723634161604652254775016041005031014580965390392743909897223299961857186309643669649854167614363859615665351125989224244312915168788828374877412729081229010751910349536128250395190911499040838508512039045894955104859933095362420310295285823307384285198063205601513563390552556243950094453773004077848595557940451639220661373299217906094923073400829874891050656595252419504845753867822975833808735280670765854463248750575825929178737610969566028580218415081684326385645477287271258127326320669217098797260223909073798605911237930577869845609081896544304520199395587672144444022029733576930952151926851005370416693009516429288458177667343331869586368446544661637069998832667360993565532468870413980295170466221838284240592444241643505100951438639240553553077954028586974400738439723467991867630489525772141913835137950023269522702921632492179526188003640578395435876707377151174883806900030027034436794051649709043394328812596941898317214684429216697433667400046513200186500132249362302897620925269865753400454286471832440920323178101612797152397923124044812418953850872358628852844519619125187459906013032686440301937828501185507733319285448728774886207679416413813574668984097994532004258456919081821722380912375517797990626848480315311927943479361245904397859814595402219989242959427034859027227163891400792126618633403151839579631854770104902212849392137761212727875348997539756921705243030150501743994469244367310485446025890139170780395803014011717643322790143071627028890862949728025803573967109088733307284569336748670476321951730102193697552199462645997079637653939235158141089876652690746092275938483584943606878921559662815412853925456853788683951530947526409919078405910063033817168131995287123220905057097680727683035741056665103471162548082053657482621525802348238528124694906257921446192860051663618921258634773630552364158902664300574002200836244284172626208187197399751582331567010389446826613460460950013234295380514401242072879710877444049982785832387118840278709233070626080613355966502162641919933902514954709914097796215605023676389570061774414234361437694252988329660380739744242239918836096720750847427285548199005995238750139923185668592530540571138347509205564411194482816808307783327258228578502712173917850072736845625960884242268586981715909211613235713135138158975303145339030823285230680055238490056024245274278691751433809090061034314817973010250386924919072729463702585781712589539923814783865124571251022540407216665188412136388329776620536823787346303161045392794685573200296218125942325586913006948416687869029197116760546030005978786228766139976282102128551608000065842340740689087692387014265142419508376804722080476780923154969512597642325095412393800366768036170496196996464061729578680879214704283395934883176286924579013499631913159849887019274156064282072231265591310765580146982081873734107207010419029783763118684130911619520366743335110616782690418151953431345609251326488297035229260274806132167437257387715865926885665411212378521784307087922548853507591054978293774063630937451230983015967873518878997863690915015681695941800599576408062417149278330342282496337036873765550373444868168751855929575490466055590394367707548387393040462492179031852624396096778437411093749384818806013840139956645137459217572359875402047967876702770120775817644578500570529915379616178862827288049466149540237523236291744806849941595666673682190405229896583077895261064746583733229082854623692752980685491446802233659987695342699006798616395447169265041763947708872571666959178586081897235891879144014699670072053402430684792948295942068157103268526128831018676895509344126586022703590591607141794880568230086778608286168296279400645385688885685163374149406363937034435803267321114718543928135381190328008365038851955996462427727801952735944529568640171427638742231891576031291038190266491012507263351754366640880811659384220968268358124868376078718571079902349635214255426586936975273305343922141503921999507795586459565827137210940658249791370307676411228383931338956638251507088559703548342034267734805673136676306614466485557043246945023853611069026499606152861274950847796803726323449537511954015710839997123222805340276134831103320587987024149383905899753883101408987794633104954802672595951053090014031383001136767630211145361557124294282043167791875833287698485369987272538989506456995559720311365374481831861990356664352776493525359164757665527185447453454952683286318645831334111381113231974552246537328836829902252073874830642990386541569864820813849756964080966541032962780771468737532565461317446897638417126889141290059431433725298585627436949849761397234737052930299610478482254676631534859785961804015318830307140433219353668089532375395532886571417501676117504827667373862779062029166368099925809547750136505589297570962486634788055749254082435881182092518089806396762414898236437273702703404570329296552198140919137160977615397134422363094220798663420384134694116861810451647519945259042285492215028015581417530910394998894703123072699186512512585683912563920056126031905569904163378813519067902610421560380037455012822445954315550019349807702931184785539927249269016966855537952552851190345212024230894194586491532377481345231541871270861491133959809861995947712371760111112479963387817320694616368684096466221103180365963911641067448697672049919089786935735479019803598135844473345311877551572252849461468527934067245658810442494718135123323057712285643130054931320929834445938285837509786332365366950914141030508213425515754724711999452524687105397443127613293164317465586037735996176217355839687360105866212567547183207305833948618054106817925613117181015931613605699239806731870161054302115713737939193980469035435171537055513526568860828287147856501578777684798799118611173661746091867272491581515614497893543166511611054708588999476851073434409579188309299310633824978775415061984936321025318729150181175891873936525863414732641063225321533972719565986620048536335284524442810459426005090027492607314274099439460364300713842049163140345273262513439013191473424309254981572574976698206792765370468662851436559976743608910779777131053013061108372246791448245598893883922993071192098078005151054364306017707852562665294184664064368279484140011789464700447893949447546915182425773776808935874501526422124171060083429084793519166423326104826269659319786199852418481382647473179315886109869061961962874545202351865677533758796398964957453309878747467395623083396646979170991564658144700511905461568558970143080691751669457670799212857661528581357108657278001166505066245229571586376303393093448150834246251177473883047179860391251661878237557871453633271438418873978300571419771173889211660750681664606432241528637330088148852719788009174508854976853241402991360067533899641629170866743721356561497644883962029432179657001307100610691401007058875905437126649372920388500144153663496801578573854348991819065503197763344764389006753596982801402900378655959551922593324364707736541932637326309543449760976412679325188487098571603743013414910742552452526787882663573651797028721763286119683761332678906356007498926894186314042972030084811192532901679172072048410422501911530239924187157410713450150933686919425374510340351070635799901845578159619775026183114067759251526693568796521194639104606302691074495373828392283677661230263055082269764171222820154974363657912394639718164367487408841634783923840016939514715336027294297587823015815028468334065874883287806410326274846253084324130769448879127654532325901684652970637349961738238478525135433049918536950433388014864357578471358017048816658156504618819580885981204004086208746935779352774973671675623174900341281008862929846718105691863826836516594575695910748690921228032648029011749136603268296074513994957325221075553717884010415191206094870039837813586695867737655620360558434005753219902754687923596400475764904822326787110499938835980372513135923007236517594635651622201765764576094618327358645828756917266801468134074502939592540944982354873753128866856938891339690171221775629180204328325862449497852766529127571333938161689293274589094092396573866435130297033748200962172440807451767888479131632107220411004838496906566846405429172014261549857463882835836389177386001050700568997150302000178753823211793041868040172748800340672084190945401365999813691346477320283947748162608667371085348185066795838862052258901004524235495675348208694775170819764319072349701908629604483032810103569026471041047363126938131720107815453223747211395377051639384488940223645069021249210557937848373306446237383273626792598777859311998033360831635058691430587021683656478289569986190899279607854227019843850675527870860458008045613853716156905460025218590950767722173475927051576266876614078556895875917635867313039412995238449976660026567108232640552713625996013633521739676903098337921456438445799845319803187678012587413060401203856180426025965887522248825745133689342314124352996219594907607978323102197865262308793399702043917720152481903510261984822920270982844517138951772620413960569074666302322446949999449229804200955880932853253338553855268809872225263652504554148179271198626967455785377572000137869312522767848333808631906537056868052691894120008979480532903492899532030651855679661199995424937351325902607705232661342876802468978548686798277553583241444724818546271478889770897636399084915046385916128954337788642635483372479346582847283051081727304826122390880334180910325983937485126481843218780343739355000904808264673512357283241298010393891493173684758854222619907972810218720661966631253466390462630587294600733509318648665271257373597988936014423166144368623124942650563862441974107356671900845730879172091171116942445116272951665695389640104981173190575147590306930032289937113143006830578702155172823794665914810583533972673023676848632304044291902425210175855218257564173897579567558868196966158667048424888022472155821884153008558268818790798619600553846752775728137672029508871829538600902099976257665515042290880756952949322620629019962993960213263923836022358131037644621761212372838304448997588180665527787921805370288357384041661702457636373230505262247191651307464261777082015028087529276964158337239118753961519579777827094970556780386898809838414006639251223398989565045838145363204908984371035631984624365756527217338276431068801979501009887468665174546469084707269681911662546310583879453848424151867585861584056160092394140789455675567211181575276094018965621240615949793820549979941774500016885074965065968573925721404400061987922774198822988956808162245194558183572341023073501794016918852158998893385403387195298966773195137482293527579785127159425525880336484273279532368610743302238521455616647635048591051780489887991393796231733913446081457954609798892267922256656962098879899879587328722265312766165820431477185371128015638254653369103132175375514990066589154831651622668468859169291879943571278653679867495978178516841972785035291508464498875170108960101119209182051520426468541475432413197697213913351726997571790532763934044205139524839622219660276652997980565019939598295259685052262778087902359044464045011596691140302484579576174260166623545795843381738357448117050423042991395721305197626270253542236322739700856033617310381629387460259796088108377889862233150713932740834685570485710519029503725458435704136382306357530141346497365917286707628572272944361979266530811140743079111892503457541760470575702267704173411664387600150006892513391569573071001632358424304294770635931050394400599243354846600539926947390251939982206437723966474922706444518450573668278018572129483405734611387118305541483829070570173020955948866962257195078398229163355030306038131850731615681166217573886622510298129330641220128246656581097692022282915335342355034142647190315367520224253561785840463523589581766291960675272684604044451551999651503582335194337291491537510831954672237066898909024798061196609603301379139887374456433664140410194269649548522151133933744770198215805477906581864247060887158960771052164918198189402393375865344797146513196667937264823474723971662892822612009541748242555565308856391475135613158306094032384058447427909281121308770213036429578289241541790701812728554455003858783342201850107179165995264374885887812616372720508231343680613965048036204965487585798984768532537663608566605772333376276986316201035423175222907266839827109746051654787267220694175847682941954924739649720575283573845587868418855791182963848461771929319028588489474367677827827745445973812305715397367520128574610480266403022098239376802145145363329744272572327598583014804107184173413142003153891574781944783691609402936808167635722401177140573651209074324915151971155747132832195515992395429380332803355584433568928226009557516066078707349999436923780304262624056831238379748124411785266567409183709557402757661960666878194165395887973392177132878205632409007127387089882264238531936264816521663625491014136628568142168118364761449373021656754966862837797160151177752774108670340721883115060150256265025513448989689836545317468754786708547864289075157354697494555083193421487680059063392297371373445999085443639984018218707980333243606909905214476612734012324805241025773054564469450330551271488958179573579869165567644804869945304790250474051548361435530776118038154505095658000734109059918815425778939376547956519010791132225281004180691065404612455250609265646158262461019676027906739102359057821348990792156787232690105655032192048084163429368086825782861213088687214148546380748415915997899980338933100865240781391554373088775917775509876818396862757359874795828968895776531192861252153006211624714915652264730103424091788275252610421227192639602049593788614318654359219438133430579534471683749984827158164922234067428837370337922774944037737556117503052758646689643188710033457316933797730545082675669910445036701165641695921673019562173751274178642714915316512029479482970926831672937604706492576373677072980804350107092338594294205590671147891582622584760611455821516851048150539724854734707873049648040746297892456448146455694328577594791733053492327491375995070683781020044147401235444910073485045661486385224775140945888578951339859961551795163334261725964946476556505171865012838310570015158440972055755981028900248714679161212185831322531832451604118455997626399761718380921386795988772545373929265837907971105598198049353514577205610300513933703108883508143025006579011391067677811135522689279853407732416767451508290648116193087038057556389754330066274265721301075310307345298796470171124200458265654079445703862768974133619913251677277259577946538519195061897856961637785389882333985353326354466185013961838702397439177132700399945976246933365568550416736825537722721596214138744710807478202888467519705511664152562018770809140253905489477139603304996070240729848586895465086791223668370846995170843881782957473255165623378096534628295684754071163355247035259375398661326768680321570782036411704925407808150381037612027569754638396794932779044501452937743237828981449106423873194691498957096317226264632531545147552723530677119380022356007772959621798658866727958383141172628753810790274098717538571567480861808247456047810099259198231197114610049511042739900897839358242338193484265288125127764838355013113328597396726926054379346449421227752907982078849041608858682734748615149979668299527654211211371581754595898690785588499442841920275936494884466395738161636484112483014106458145906148604628904519825588941323429124281285798892353908473465898131203345278548506096475570413633127552609739518116161366340316982087016951270386895557238191990836698640287183333862742895710267266302536034917990882138827702957232090797538682234730467195623201791243817166613060685557697992877702198529539929702052538267078665057433344045534340223846598785967200060255703839392496322568879787183991116898214608633519892526718108822582346080464231278181986375512109161402250880400992707386851773635747804181583168843170032063596169514598682113805278664729484752639154327214668243564786666831572170295589761845467523530941570852030909138587197010325195844255185835156716481382237419567400819344005336601122917224767262137118752843183783087059107056912332204718609868336555311159629623805826399466325529909068652335591002206944750884398947938777664322309499410932681784513366055306271360719011977032423429096167545520416810294935115076514331851719760340594222400498716075675852777503663047084754634413418794603999529691722097040143025903081345089570215254239044891517498844562772124164022857616535703531825886961407188894840220070229308407661056443984266019037931211361572429552455825721054687834250766340735335052167229843097597487168169139976491935710871346602771451860517448703987153950793103347835135512967085717400215584318234442095597840692278565974737260951337213373441073563066494664978716515432930641264788177735824606944320634871196339722084853301986767111784405171026693863545629005289098124595964234199056114092980724908040590874977989078485882965217831996698973234668716288277196300788814220778725044298853517341666293897058248215942246747929771965059945511306873070059096409503181729398050945191588275796288170446852204173864579695738992284988338223521839392512861153626481810172907478835860198652580826152276599369225920648546566580129863349202406405234123019468917825662492505090349032009031869053751298380832151284888664904133752173223983948157109832667391566704440814316021899601422302276170260077233257903573848479178828324596776932273211040923032574502674338382396371355259257260402303210861926256357771639168327838407888312561264374772895121673853954547289585265636870695559313436109255666080426978742357707424017570482335614556685048203892244712821572944494225061236451188343619539590771071249846155859208844623073015793553826920783680969296040358000436945527881421343609825562565162236844326036303850313551565739935809559370529634389735287555293308210994748134950173135429705252868308466892778057180595429160252843674359451903090033966867201791522538681752769217162433814728719667826244571173737243925522403429896887624938859167928948816765742299124607930126030112241362299610662167154169924313957917070628351804221255460403473241797995967136926077564671763199350451731093507377345050827823085014971664144450430878584252914635426092975070218974187514221871940035798747342791949383632516153309336562951907044312657928810110000200511650268007448529929344140495129093671434691835722654463981061854309284468283037038383925370563239404783263122912781035151821072479351827037484399171768858335673699986505491054183067656509527114331103870393158269132449795428801046071077623009263422632459602127365061622051011184563033554052233768974235547921521504197270373611217084187520059603708042914931952024780488840081993282889189381043644110679954886198664024896623679818982929030834730446683215716853860188755746642053128990009647543137931407412996050609079572730542673139808740661233238414567414432468945246497250183352273147241261688155474587375368392162543202845727995951919096884362733893961324079567150065784202600314595538330668822548471827837338616707601087053535557457824387607919409430016069883703691718075373933981040134415235580356359131840295596673351255396464086293008520308406781692396956991096125051581747084349609324510596645609524785714030335311083916903225064664850181914815408219395676010790034760791986936531943110279771649307090538914109673464959516108673912955306328917294163122971837635257420285130409650641154586513183509405997042359038129835508183507818016645395960517251107368541949007815102618557493361720860483911522449942026974514866867440591437905662310784000711047434278164709853834565864999872120397354445448466268007016900672458904062631119603540091253736621629525004454646882587226740917255310853818970286308233124958613576793378954453601065843916141467162768323845738519687455155142495812721493374169742479992745835550704099614850644149636963410572311431243513207484950241558910736112189394844125704184772254001889312805498365061148583788723241698453085068178231901128412828662606650235056500146140552738134944380054606186589879389423450192444870876315222633614356088191697280086470358340236461182236648411977974639983246161393013139456319752779226710014168803054351691475132322474487495513750022605483209695928354904839347954322732964826039663600122218073624685907674275455447890444990398257452248807051113048364595141395145795828007594593810703426821248788452862132349961123505418760766079292679692274570697998209681030706267307720515575409418718913878792521294706347775275058971698406147587629242176695873574871490769932342793045251618348259710033786949657391515580757309553107310624866878194911310212701437597392509777408766999463993740379850083148820373834509285501006744929295566755709168045861135645245325092460169319337658016339874808554245428072865807626914828021786031214182935133098020440993309628467361608637407670076427010779528227437006266541372877213323054480867350862870829745956137254770354008865835162379376517538656684432889405045225211556651552871503624064711251302245874514147675671034106305959468659143210728017237450853638965780690203577584781299529367501788999891064450160445611313125620447190043904089201508393351852714918759697285513331718537353376679488776567299378393620593432674137698480042345078660169159813681061003750769098545101762106808231483318887566448383049184102024380146696232933442688391661224137554514141976812957895075734361124070462606991649065759195304564690585033371197460924333664933454374522519568991345539136162313934985668916138918362329609703929653287063906651033444724550678264150029445241317513556398468009983663412952756789466036971743367728900037989334984703221131304431456170543463219020173749225088300540846784879613811546965424496481158553598235620616050983704738369085005804056048065413534259517798157658027039505289759252891208411305856733016624481119528611232532083250544549515027303998447017536746088925007388868813861514720550069168067704363890901017045993478931536981641358229381953588268888653387431541524994225630455160606384186263510524402019100848757558940379284317538522802195838920795684520150161071397197368207562446734491230737785394523929613740537714627616682761757429314166523836043194881733065298834125555008270043545838467545098069478626500293207854460328669242619040243344796443038780235840063435201999957812356072489347122766199524900105023048632482129800220418939926146039216056984658379513195535291836733045334381933774125626706269944780450703785567521527219832088394103753569401816898014629410433681401628197083532251169516975958014447652911897884259225119638311935326142922905507708303040046861998007479179101349179231893627167981424741603151084921934436076215656451443694610100872427729118207405327850859337212062243116062520900250787564669261387188530417506028655537618645394494396190392047713063053525365174002500031446815903878301417553165577742811537782941108976925568719532763150425253752479806922376338793346671110837865942544056661646852225191972617733365459913866690712651302183526888202393980406666343167534158290152561828802137674082767150207372398991674506521249047533512361888718990979341170091525787979828545966019664889457334475140347587157737466873147689865324718151689788509542867336594177966520576761693946580888809946782748514224318367185121674560851141266622223499410633042898891445546403807710512323227764740289798855272936220254138593657205352984730364631104918751187308492583897762870494077346405865016194146264443063502726568637140483161736401286949497923491186803286695643557402435576872500388806217129209542771491101824786839776105483202020669410740753981399775050551954785603031857061245903565782240102176939157260375058920814862099780966841970152224064266228779951103356790314538853176458687266026394105003292133028895954548841925459494201424078041367927610315293768543346532416018909750386429987362173074301080438808959149771584475253970750123489020422088725591036268015581429777659034836598622063698095911376657600005024654253719225934423958746509915851312350795603065337784132838396641082695736973386619622567761132119806764715736414506577587397155231672786338427519419365845911443922172382447444793971413819934190072594485703784487654745859275082866104778945745288994838025410791567752187674944648456764614255343457063447951873813467076364013067549096417394133421921227619555862422401383593003006712546901251321963034408008806818497865834046705254004748063425635643776207853903889070476331467643002321186948800796833345327695404634161176197917196321311698021912021530049635965356182827656014606436297004946442414505920382863226597113985331346830146745464100340234583757121358342801762045478169568051563158338077924913570065768021439349980950258225180714072204825367856237981689240919414722394761399349234555182166107304954912391827285917309780970480975993549353704630228682188687445646440055698820305311189925215141819291222559157231339945155893888903171484783041647119900931868978734965248741213238993557118563490112161127647925063448584246761617576732544860096839795017257317177255415257838993582134351105063627312653171420014822641460228690446148554113790672062863409791369685752539881972759257882133497033746079292009446432850920515930034163603561688066803853435152935145848419684164002745792229438003934234605723328807845687934546163104622772767162836749237919635792699555597941099447272821241193864650133315443603688708034803180038627724431919192472455748037063269634615995580291335708942371886376458231539020529023981333189433226595553147035672993656496945356239783159519629733142391174804109242196728753911698419667787152071132140287202410741205527435064348590678272562083523703666266235441372861943316702062770709018375247194494025913995804202632609576983192067641639364701375034573017598025061729672885994919835245188618927209916761958096344080496796528576192921089120067821658273578402178286923339374917374944425189225468811847780266347293479596620584215342047355000540778263764283618424376391552150415126945039062542487929726536598591024825594379020431439262929526264459421885256378514763405198318109995858440514107356685029697352777215391087905706244520439910652894386207442327021697897748836065558981088139795706449990737626989571673445111003079191818781867923290219533157640067919883910027063548414272766014829699282430269448679853349592394104310277750955113455689101356912090681799300571149717302427801503209998909932893661370288043738307453240220192524668290452292934445537390308171124122392892698776860812206541873105373045429640382987158529650229438472101493626519231952562331772249413581327940543269308190945819000638231251347551231059221795303380242234335106642924031187088710565601395650510133548750184212969748288946702895199317429759602056319192717221218182245997115847576094508070403450320570130409502050163475553342663009297279264318448438245907599695138167816107883771423942255587636461358623358603486281660207686049412688522869266150682517008054855646553286639782187669795670583952895331914100858910835095347842919010304490757878838618570547890237231851749108903588163466784089226647447550517282517519321753808081214300758753750204266423117079492509560701687717905129857146047265522807555828068119914204064247516888470867862041834876145055377057188444475332560258068966351535857702828475119535946124379771577637352052962694623055421435166364688704212213401534267605659292418519366025320370304574474690882130731534598214091122166846154105328520710880586303737424948016609056516365770253914486549722212755250705436216586325413922279218211263299290020964581012434116743207642446078610337928710432762445135924509764225598889235693765078785584961228440343473451913830354443284936718267481793783832480478951021842513553181850675606284746839615201823969740058535043716410446359649909287370057104593709695870888361741994063519851034097689798190199150080067650059453565540788404332942706429197405058368889644532963022673037179269769100605874156508684595361724038297738397376364638605036298501273606976406532180439372423925915027502429171719266239359739815666198105774562326809554139192393114164875425808338245132383345886398742652729369117316351121957124796119067064286387281080797398089868045822762353856136271890880871569283115701633081822002273596460272040268628052503093196991260765351534869182697096583937754201469757505904600658137955679732734214169320277952825365500061067144559944638037593289397122305444775549087754108367018632369991370072828917233131536579970186932912321898374347532735518517234462192615416328264104728302395512908570553591511909280272652461159912203878923025361553263134979160662594269746651598521476875783987414022667107432433865634433328852593734182492555674454396620687753721003493531525819992998497467596478195690163358248762819755168465820699164520874714662082593973600372028771349337099988087901329660235879234837721023171303885722116004233479017974866215043142351560338304399435023805249824236261186277880534398169954042422897029285386243684275353363648145333640137406621277614574128761476316157685609222394058414670301993042389904982077186129014443382850831133561598301442226191502447533645670321687522702496212605552424638203359796728477570662557217271252584736573434295577672915348684773707447164632521243840513959886002753554975011867891903475836470080149507017967934591396181523286613805949341594700776069088351415891016722896666832499873703166980702179459410416023747803149219638549087064210133616304285446680646597355018771007032596134355588687953367974117051092874044005443313381100852716786542066491330837036090393343458694017035596498704822778831095001978660619438924490750372925888893463502103771520154836730071078082656826448979796459320852054146291264289033135863845237777778576323771047821134330906312671791924284756042210880130946970022104682861065885533900833034841910857376748017271114828080448563029389857665725663662763621833012909034966431044388919584250919608912577831117361049217307283790319507770234181594990791648424055823295780110687095617480481729893570551354989312277885504299573837585107632727119560011795207415049944146250564201886300949021403544504808696472469975707532014585080177197267224282473575818071228766935979847247294085475990275787657741080307600034980379539921815530584300608489019192300147548585156649745614388422230590011651106400013689234161199100712448045080767437220305303586123593372538514771178627641768483355029801671586702252226926566486385549265104593363470625892243668817031656893835981829007583374164926209258238043153863359839896637601324192899431906240107235507441632386534497177003558306884698881219157215532592546175539755466690268738044265032687033550308897544828803243095457544721050358900925302992312795961506629114789200322588670124031481661154674231224524446152418496262053348198905969863450563909710070608988921795606048808715776580784417880042191450509875132209371236016485437161709969482336530503149263615012703877175529656819290655241415324022650992603838920275909937128782708716349883116056728751799143091238779284764743811188122607416031351308141217222453352998043867352249768298767548261745726474416411160942669975170683236513887702277502305811377713455459606553871406549972581157948620265594193815843762487895607394016853737052155639848825459363022126183436747829671923554552435512014404508288603455905814183425393900841250769269261466798225299829597015564713866894369991049482762400185257446391763738390599803902463928854138608800913261637722722188855862949909719430043069053601223535090516796796100724640958922730033749018748410593495451629063688405954165701453163446535600322691968425674131313716502378625347122495329333723829694239365196787717236210744002365022739969104403823871448455171899439747538455402534887616245651138604320724475527708189726844140080576989440346080570123766661131930263073617785264708201356186363101505343316663695407993164081242365665840892186197460267387012019624716761638975326254597183133926312821675853404867096387264204867520628057973662042305232390378904612503909384144233194027018827787139714436926753207484930610443939100118563987034469536297604517906687298982747002039266286626846882233928737323462924800741123435983639164999839502539393664433537736263697655144069744979500158437838268440201622467856020586964913619780203100120307754887455610961078989882179072299067991226095716554041087278136518563956946580966331527866846916828589629866198914417541643467846656363337965092499554308923608362397319805652029442289202301345935262295491320115488573925430249728907947679241502982920841226743016312635969309728405403033697341873845976257824802446571979160084275477012183356594335256984574176198363101870913105258771319286524929599492671705030633265727900115085278615080895592613291807665832121654153720565216404543629403605907037649325729685855709474172852776786035280807272063984209165980342044269411827420192393715836758480321194828992869991457781042064466263998978498031138302322915785607094773640295383255526063819290187390664620256312289597650050439391661733926438230237634051096190801902942117841254590921257267361531433923201697779106461414652392345929562794341685428081242265369043462621642459567937484666681854226801207453012558510649425095170230349052933340676237827389139126489006561487510165325993267725351872123996275540582706280536047975480475298222102561702721879134014125597056043510849737391852262546879647113832197350900114100050766315904945693016153358201896840681264352800811580819244140394849914260511239345155259167810786993532724586772202959452758723241252048341642872687408996306774996444598908578360342959083386829092937023067955791882457423773688507733363101933374819238649009393417509822848990355923348798069729459314936072439847502594768678891487562637219054391841119189857598645992624075857545539130368742602805674734717586832723008017802586766385340347307414355284691459080605019339915691683326346223096540729855427629344452778717501164999883167974610634508570434914955159130263392243905401061132044774459608618385657473212363439551795228879392952159213085315402345242866066935049944861503607684375400593829046123905426388831166369642173241376274223252049164036553957148741271895622811171884433810334200986533858780342023378468346586121290668304694972123822030694207907573364058382241110046527550962538737268396294151592635577667331860110579882783777257654951956820452844518691603820417444386272279628892061168453477424587270888984215454388396124648305543791367007743465235423334621500162129068635889982956996513363658658192406825586560660802625869703777709160850523740974053293577080590349210339443857725333264915804041055816931456783670639353108865801607671457349624120803744647364463384948783428840901624346183025539213222372340337134572158938557005590711828313731674141770027832616406745189005508571558446013797455448364154101723792047715496885705345885771331051322040100210961263925760666647531575507679264621208260069024686762224789416391933074324424049312565716186434219377177668711631302183032598887112198773559213431815555875463670595714017403562610312616954430255468528084562731843579889428779218639650807262647917819173367521550397180807329995243498798182010159912837164283377432635345515691169271241731209837535172820366414724073026420210886577406731297747640672455404803523696100968072271419255310707311958472895596172638464765389230608013546781923247441161097639724130190803887361703050972904356152273661426226193621401148351899727323861643117166225582199950480951394116785523068722440775584203946702668316795485918234375806114809018498680803618244900024225639526463943815405576643993967195319672408956851093841936409805709005008199316726488694961766161347973612672259917500617290748080660102207585183384168092654432415739725751367394371193660417596359468065172254596466234659147246549574455357183237212286979451517984622908896770258211832853039601864686961292718213150328715268757037780000220656102071974150466069101631110729473730921711779671566231404744706191701236429182517424724556983066744737919876100282793100224973382714872244243745964286069695269779281131163245797666442839033153891979667107769725383618555723501710025655186729239188653333391431297551762453484738268935549061128824569562068976845783084547270602946392618982156433141008273046395608395666946200488222533631128713935265023118257120753005402432773267345462409723586860196585319670196451424871323803105523115590072544147206495399235158294048328632857042986944792194819579846496662948066684388019936416962985871394689348478756505665000632914279548095137287176813061693840788869905291522624614165234551182241251175199507884796665649985952356298701934522213302761194706994798513080247890353876733152060525096378330445531968924899631066715428804853207483768637825710160623107235937048604222660057190702220947565056439322699692347255858019876335626565306104537750136260120546995135250552149285686822207311286779890686025161368962767512652929082056115288749320074750193117347870115599769421411825866972568023814625625876988273857750877695610304130415620582746017699569746321564872708705666445499749744008693516599376928871856317247027637027424539449452848036440284828422129559272993627192311555244721228667190365995783026230315191409782543576006388566865748918272037974304808628035732152811326241550532828652103489848900333494043182807556637921252355438804128938070103761028398029925881898030869750437997431840246433979612203626461517767916719008459215352815248157270150328017944990035613385848753444478737389648981413880809032355183398976886333593160208590869440099601800192285313522106772344630796998487894565959911619925107765450061903561769247452269674275912248677789898756569991176926398831585662144418916729416543158188669733087791873224121018392896264829447430386688413536865562376564601839308906688669218839118422207284360892104872303886868577499535352597507566376287938916243328022466633198493242113584466953788492440230951412482305401749641909059961284933599419859476784125312138484667385830508146009807511549026267104602727148699159604829081176442081132697447203119631999228134213608913814110219068403423589141520918468145158059576830281502151306724947286294719584074515005226198238170422119747154505261065691576551460696445194096043414160629796506720128405815547379914986740391713413201258933723328596669368853739906405337612819869192881953272167953799460447325485250746697578200346468282151436770341792268933734396668452719179974554362392527359808143204745851265612377725100335153775230591491881543381385607312556172190368330699042288879783106519123623224034851183039517876930570779603771453726162434248559616663473345391301825378427616297917785679794865216335349046797140358826184545992825738911675194488230739197714281077698738754517634630605984571478765219703542527135029881739044015014312183706044211031130154424602380582732345108273321276164473214405013268942221218223695773394161883602392699399112676433453773241022099945405802284015992840659898041833128378852142151731080620230904716815967596779107538790279861924693092852414033008947961084092919795440791493587397719555678652466211662252264831754273533972005388569300893965245475281853125617412366303318617935888583422136714503140049200632605664176688256416307452033043904080374496520636938070570761054337170516357909898080991129505695027610673281263040668596636465843560178887233012398854768722667693807661071004825602388932797553545724363602223286992688271674857953830398899835024191936801506108698978196438964520462390108751312374939720328189199620279960472370959063353616396423563245957018866649942619917222390148580304653144434934168080506819773582477428457429834487815907097644920640333191484111416444125088993591663925619281810421056228950538782747827629011077009061576057033205765738229930450645904950490417831757653650015757104328926070679762439525485303733068577500830338325685888366354974123329643939794059760662805850086008569751398596583896339821266273660072403889836474830553022789657297323055027501917860251738025185283446008794455598210289281635105117538893365363281329742708884806046332468267314073478359475151196004855450939692359037792195813642534781497870786122179896679998956774559620552662779571946605075524023516465858384359728266747229452160407513685931989970151578831412314317575295799539948092956766567742834943213328310167412297786946106182052056828301952610700740027440875250468202589403202780891928546671261006633643978170522674573725065458197828614462246660505236930065827475352818051435054889765975317471485423445412632165766966531751038361313293340772680855028637930074400032863826259041350920183899128181804715208375243492743537870654962768403967858934907967824973416214631836768157278122404797481864286433175669634709593248907017506921150058205516083238968670955416499275638598055346028346497503316172516890072306640864959956619706739855638649924464022529891747536525646005681900474350267023702435775453086034780611901060576431764310901635365358670411799418977984221757015900256913725530728494165564604274750683619899391029796337131771476379102333710991018307341413078752537307399305768168027295392309204480366093829520234246167675157641095861656461431899919563379081195594726584875155538928075002458233035306987541598130795351416449086004811070531024807615009103825514572946434491955823888299469362924857698291324266262983434937258130892593065890166446256636602315730205913947998331649273279290591636282782328176345855172138756783927925989519418815526019297097341804743533728749020731536311932509210753716729271000604592284598562022134235553473996485740728631866372326846087505391995467600524247130461886298071844433501537417783015969878203133475455856669903208954739737558378596510980977728150727913844339203257688993592440750196748029687837769995224988334214038565077466112997120675443126844001992641262053645705358810362157702206059272713997430725729795767036037244090251606420727807389979503591717717550723325720495729117257829893663213726786235426001401210248589511568834270707853117368607980769380707921474503297647826525385789347598693463496622561339780099588172601176219380574685497008269670995212006054499114681790588268692046740537662064792990296417443394437692322283240790541623024758202285007238630756728929929420365722298718463115917131302747080861058202041050692237793104446556553436373260035052141900163615876238851429276707058024158675287997221341887087668278857223427194153280941408937106114696093195268884734218523437213613230533003494981419000456745118009383210945278698017916672696654611077512193531531231513007257156295286047986071261943309747837155391896769157908091908768697335938560376613905847268885124996810733768976809190268991996228062175515721382343136640721692947297096232426085601550639576322490955406851425473837710401090446831068135973367385999970342188640584986062964069060579941110923491129490973961658419930011796843202084034591949130107799766933699372078416177277867206861326744672690136137793856333715096107596893293600697817252334709574414415109393081409014686231344753974698470948593608224134722470449041909319843132924906763936830145882428740230369105066846227954288914014818122892974716262206479654094935709658891276357239643552673484642879115959251532872890944531895639743339796014766127467341298675592315676682596990004573021108590890625658023147243380515433449058683640843742391270195396641920836532944147310365463498090676529186982020673789466291492788780751004997260958630207465967820206046401113727851585193828450664512120122195207977351077586185696924059539621402023152447754424989088853053221533561601266570011944925816243873107156193527258202622138650458662579407140191852544627391123812299259593501357838347291280947601777700186890419751462115210472025746689287417614526092500417373933466344117664021367695320070247267899504411658703929190689709298513737560771422773130583512095629492138394801998472997413767822835833036574448416556673360955499589874795282555616783819937567080419482333814319002042148106369020024825431076798278194460939781241959086914905009099072514903176874166875246796754268109033125430068448798776404125995564994109756241646721248571743039885357633108516022754495456493030003999875195587785703106894569976589664223934052654052705321410835187060983529779141837518297199217838531043983486370483807183203086159752103394229380613902545605105314422605481435369036127846622646735027236438851692469747400748853591501877762824636284236588632105887610698722110154543072772658624577191573461766552494813657789213982599131658635843894106838720370451750084749046133896647490237866986388376309786521568126026093909635882976240041188912435557750693581940159129348343819436085500673623399578110967893129414717066055180175735699114960661937950011285379978861427321801880084104876234286279570966539479439539797824880073018392808688780177493381041036748481475156491979120912449620768409916541521601016551117227125165615084557483645202328862682213651537162906445654451459826184193461166641915548132271582218571223992491490145074997056503414355682321048518239223695400120109490438398749608488702960716483992706205449820902757824067193310885268103345184857850675695395301374785038261379938945447431088919797803576297218108540681690803225488058591146873715040873680255069392287274596830534024773196898087635257582820106096175046050643709959984241150965153399475258710692275755395062488865002420437452927437389292318374039013396211532207528199375747785458949764344058991491635928989200464341677291482874891724867105549342124448227148199541829702456117977872692611554641788226311672830702954371203402174646158885513683687158232699220468040961790509341283334392375992507003809274982184973066790383389169677437202249109880704660098375568540437198201017725658750564413147757991052635939614520138989128565732286977081343071972579692987624083100580263930607962470026532283002733832934778121619226077452719823875150889614234393663250738998004942094583857032137154448717723035048858777869446696170116165772372594862274323043506295135830678976698700324986284013281655099555115086607165397857121595961990036806872370211349011250312283527676529063544270692026677007224039614222319843398510913729845227969179369414484135924244497977825412917709453552188615231738626748640289208449743110127581751743256270973472719711187459316830579648339438329661500738479909685534247009966614651875499062407262331142070149617089085708518548723889898677155551996893167273423859765584003984870512925398659882784533035230655594397223343111656709632794096087848836180326024106568463613526244310205681396066419171911095471094241734260839536773573787001125372232839587022650000280509777425868350097819565767070127085752782087484871807118201035059928554968152687402937434381432520148981165158384016307410569757500883016019347627789898205779973833248721087961280973232672488282915416016585649561371855534055653340296964812201136412814304274658681822622505147765532360743655061469544878864326352629581220077345871214631892119975356882475245738496596141266255542424201205264886335827844366694518818677109087807437808691027399852007335840652013364147812947148688896665358053057697222150154679149835990669131628653077357462634613255538631585571456674821048616426437178576876577562127476311611200904367089424243088210011395229959053957012127249923984232974063460681936639660899733102056416381304551040162647479071249008526289364826153017152829752117781815805119364155686929034214148637100868329073708343376421610890392889848752349940282805373611596507341625961229527241992299194836465320664901216296662574769557894757177647358861291137773719882086558159397850034105160140274396062515911427626998747796960394692236969302203018161723788603026478474150523345731143444982289098369106366271186205249975408699189725741311688877546192777638984825498368234111923526816793968794155659067370163707018136458573571500614712885217122145168994223675551443802864393351268867439512511422829521971985329873876208423412745515998403318017405734334281019797416433827021068317939171269361005324899847585498850614756028276238890004631818818572651913218083432824891850760876661723843638927733661942018340834430078923320445533470663929810726554342841833885557132693689274195103135086135641054107148953829184948703971951692194968357517351235788368225152754528363847533257471792043751420234510420147689702692561719179252117826361390862019416450662228644363640592729797495588053587131481347132034633618245319651656577805348735598646311045588361320996440630302045440090561660170330287987684527052831596296291422340747378892113552480965026090974904835776334048965731724749773939819210344070330796162846620670316650148092827308576457440110998303602936701375468591485620401124414719296743479033154643359703217500061657185651212174434817501703664987816484944541477401562317977702955098883181352199665972579292732264276179148786541138213053780141814316639025082166981871798885679612763353141093872982556540972700705924257930630150511842112847415978383463702305638859327264467894426365623323305042394071730516107502623913729815214441310449342286567167081852112917153137044180274590728447910711477034658163590625389382935796687989060076157789681992986388051855609773713916910291797846634454398910649961497190205415566419716858765049511051151613958219256742534056515320492404499612430387279308515858391244682518832955536338830267957880802477245436734515738533041262598407617571340394957273357431662007424126921170641487333851150152818500846352300587335942984683016126964864490309273600520959946558669610960964448401810781802822131744920497864837049380164292464939255432989538267186891484234114841811740455551957502302195173285510713320843605098468446519178681521555807745552654353354063394961170123293329531098799424015387156956906747741339939015994323149650619625356078801733237803296021328092470397120049814667883898000786854355410845053134374350493637074544448074919929477682742385662853378798646893504434573851933278482922456070968339257835679867079397029369160572045492201252720867721689451144361356122173714419625879804908224391780583540200309023057593447207071569095857817160401430435892499003444946441214889112506387854598385591916766763906254610875704539556766113986797127763625315599010766217108102507015288354366375209793173167190613661911529552655497878152309793600338020935580196336205172366111421446990807985543853721856588930088972540996127966355291788523037957996409973564283373734648417919635379510949869459295937322656998556280570039509960127308770005695408953835082052845183862057126538986167614482465830336007656237225932876702553228242232579293749222075615277913346828236051176422402955759500925144679846482470795494083456469362150309154701507490733146550316258747932705916674148067217807719644388641668154959883510352229960282116254366320341251433306332264845251294899558048290877511895835696790326707507451843403038112013259158867628886084024532134657687477675103595910241665372985959309847056110303319160479507815694842671517602331668422299037506984996365729012791154185411838047301373830233185904176382993594055722420130714959853470595241314831151451510262226407045701021519229101976859254629531835643845594236371318647142800883158780481523006170703916458146322911619060981951611044151564121816261861549961601924840300118098290022866554986145153953977649653910576174152918997674753080807490444631910836023992340771823487344128177942448642313733852058865119175714510920242722398132508775955481038995308366091038040239803178991833666069102035504728365134429971207913327387906672075824782483728288640459937878692209155635076036204162251720891340058162345914698617620948964984114418314969582492238082145149404939378872915705835733256077665346411152252345283658041919967266907861015188900404807879234513074169117411260597831685270872386325539062768510924060687562307000191833155731139597168053996093455024941554599929851593576811921089218181486501966649337569953298794059895415089307097177642787195524432153710575509071000173564822935085714927317071444223926794095066761707395916379122018867849762137017426933531905971693914618174284115853943469983050777743742777650549036640252759419787515799083791234000494237697368626273412139531600141887198210572768660736433090312836461563124946191395719463838354998179248230552808576833763853433504976188473262056423847535535387204748324783270682200681461653560465646433606701861594052305452155107582108582004086072954228066256930238469868612645021799605114081830658407202441171263860078217825823760145176181917474816204150552340555054728564486858526073080483741230884444218738440130604188845803173294804428717866722986933086169360591494648544081031488650991156897336294600845509358235505695698705719907066697279486557359027119715361837337679504021888266444318931061964089178594726459172704629570147160081411009190744190584031668883954082242882473890610854569057704496995161862140243513313516879774669356008795165274532940614215014432529427844022007299471904958311898645889033193737944168669813063491684681545770873487070428306048678505708156127606172580679676845827345391976319706350859302749223082204983112913050440680182173422578593051080875465211069026147155563729109648650123368809134537090245600237821753458107722953164021301811192305090279607440520403745013342478246561937698441731134143102997620534824132738964216978993314339073884179365716207756452849925740115902759113131876622953419394870328559850411414816797736325419389601999099198638414355751518130053726801827753836224165536399819914851516895119926336657829966626996066491908690880089615057831337589266546224220693274937618326405626953565929197988740873890448309643243599458202722205978657479718855387856942125788106959286583805355034697818324294952543541395977471997561018260562473118967949653491702553495960403522917864436268689163547802518275254491635750264120529161914428149644701572538489070822599656996948705601739974804343027718621083175306600766974663288007453440052690308082395043456610722207288955429744185061972419226939404878561627832022117947646539407055007738448419994096072277970219564608719608055871868486362760688801211391887374210293302267801327818838347521280055471841221117725854047848620205268017353833453399035621516010646573715718818596226257182044055717306396728191167662854396475071211302886482087879792876176486100506946215096224066217696089827176489070212895148503451502446089549462321053699498901398313324160069579092753270252717768322519260320484718546501487384310236431580109616373745224345429006371415777115890206701440281698730680302975963177064810149224147442418130093434060783645467926170004815305963328135796397547598082578154251449476830095495830725006652981830498263398320575669927097201807221001831749314654882354426121897906143317822883755330661579240298253144272836491386889102268734318309163959184601453777846418412063941536623181365733866107284564646986709603027833636647138715942762118053621059418560465443978111664549229733269726962897673636916408532817587024950662665078327764821283441234748155575605932020746494527656729633012968728870300713634699395740490000522428508328686212349352283781616700334528056490289828100213159836512354490568728020681863586011710946423517951071319945197365053806943203738613299975173281480871290179295640468320334330352825319793009303513917631827409412022238168424225414832447273062876471451973128208446119504679517113058623353905946081768606520987255978593567214128019165086773523289350592617444890981944941378946273683896318735990090335793058470687426909931940995336421021699031907574803774480106357517444295886027810962320487544248142840394550309692139429730108421702912002569585753504579942533044944678019006434809057707019967801863243708853919536227311778087561425258219110731807825501076999491788029231508488170695464365197438849572174809595913202766230874971505702903329945160957130021964711693623044202694057386324983194649046226445730593737727902093055745292038662177626867580080468361068434744728917733020959266325712983341120242776551974470960091964566769074814101412888965753458424556573393871330047785510126240885579378157718956926737181559485261775079281020290071377336974331339945764233109936078157393793815024739592713952107325093004634670523671142633642725666162154558364263072293919065112349322342152072481385751629214560196449727724259301258033730347699139206711674765181791389634490713311412080091986487631114694722660779890957845386693800909743737108806201692338259837927510796086157328813749736648774009248690209281783033376448381842893630965168099009243329425680332486007061111140142397785548739601565469960065980878035003030410555544886738639166068455920583681841146615570269843731045709037846052955548159130904869897611543677590907732302485885672064188015585657009665736609864953269509074729647149342894251693175253118452485657217295421928402600012896236954861614424986866243526250968617147996217949550948152546757256119217852792568838972509001461410266065348467827801045453557231786634768375655480884666481114737357524753731406202818785587695575813467424810664557112105836134852184994269265943852048468057670696505211299923434789094965962798449639520859014721190420296666754275332875463503181784140008981795007890077755203116820032265696699231948408361755340420936343197338551516239225882842724796007162556430695107279923705761500888838551904856311442342162836962007030120264768706060109693782108849581376234216793219007640744837384366677464771745115517343106747603547975987520100596183272075473922055286656273892172462466263964193930934784998449979203392354051048713235436300831512455910939096927089766576145741438056638344697128675221043857989109252754569797394409470157952914715188470322080708717004183133063059317376254479971766367784892927817628821745380817191141013750457020059015550924732342200930756692630758882410261688063754194894170231779975683599378624904847683620371234782755892562876445222932642577006372567927137820458909290585592577428557567932273105823648108961808282298800586685864228078273160642763452234179577558811724627692178682136159991503881085918552791666094733792977255638698572104488748431908987381930956386133893513393488297169047463790266815534831148241016535364977794259296644992616783433982783154166500529378766626073951027625127102941071753286391311905979887714519022393411652207795038925878965239362657318981243453186157347559835747699833364180984577857780244903766469691837950229956762492719020852149056695316679737487038566008791812817722831204918849279468164650900459664661943510926412199700231189594638405771461823252092074203684864426690953497406869344490315908125890104096829381657906632103239179738712239626719087865525015354689956198249206689707023151046877051573722818506792961192488591243340008179727127894731390256047056600001413180225367974576717889200605814638529425975699291248065409567196170879132734929368175835895641102396519496032107855342297747057826263372968742435557256635308741029042493722114101594258793853850468114007010576852432348848578755054445027734725925894015909788795340628297180234974251298231413105754991981409345559137357016261593714579207222740060444329017099611194287214588972406683000855734253859053394741314962018326386739282169911907516616819662678897981632589060436401999189095019502163365194766592126005168104441269734098864901300633155429208937952663452072215293394210312432968077907709614836946448634363280101795846483283410339595113848858061724919971762665119295459135888146392561076555804202681972278061110926321450243580254497219391010555072408389769011545464744366361590813606709960992069215672806636740591542835698616769032945497426175081033116247157327410760788902747485557837738475680233685887436601558566252019567928719353911308125495040270809334111884246419833801920833673205075271455974690896365701010117102048032091086663665239988869139919774846689773869967370403785550840076557925453211628922473769524508742608270134072202109452106952214969023251420679289106306356826359722467940682703670480838813314638321353015717393919289996395860738672383484023399680461884774670244231588220639120516313903502989998752283320786340474076450116696766163069637965002571468979601449091782190883213714586986625852487146318550251179381250838624428252450502572250949377169055408788113970642567892791624858803996455948276907256912842837668843621108701079021546849926405309092861797743487058940966210786472596727932803724778442901541766235826020797391331714036037606810808197802002891997407157981221698636126423599507414506932956661147651983012601148434701170347408924382560486353200193726777297915924477644946501405448569401813619725223363679354582956819662066202564956563207104516348543090697212552106278588184921967541463166928656038425386234223362115084558100118492279295750894075565315429110573623338936063082510976637890772784755058868492193163044125544817781253441713272405456690674533447108632421465224662206344556475937118185202351721663924091074841736184926548174734341710715826651111393967094290047418911754223076656248245368669908779815560350592692121632711607889945987707278968783623824003401712716019038805850297607308263101285391986707059325531392094022144034395881460821176307883978628487800919348011154661670704005311041033143323445917007767957031703005045037157100052307392652248795962778271017085297875227560413605480590578628182893830828683259805038064582814169963883993016067659355967824703596453572644114011988024344903017665579397004373189166862541446532730399439998882022461162161657345226275098345369816032975591990287296092810657055477350732050754399470450041624758786921492578565907338059414571834175245664576628669019078481298804739251493254635145432817784270489837779490374441315221281591174174423660691065210973036410413101020373017542398931124875752522103976329392830463040427867417598635856386509966096173723223113522377466553698356779824067757826002757693323209761037898962591644109442676143201382095937298417099538005246387348324212765322781584621870084930964827233807869348953383547890772030345884667989808386756082793500227784192549549921230627611928253980974684036656054454821571055310406084719613216542543524391075685504943658314877770405609665480185406277442198933654156153654659241979911235934767539591437360343987338180732474136504489824920186116008464584530831598044041611701813296837146038636292542238919741881380001991563010386563221028667699230012224001351014616580389116818077636258413170670668507011218943400286675347131418537226293989090924364541700013598855294282123284309389065575005612700504365460243517697580939754935598362474940310180808186447100612584462848844868678350488285142324682157556454329698354324694054679298736828135164716007254182419295408543527982168862628628008675166893068513921694643807334763622578276708008232917949612381820657249964984519383611542460346577764378164577871445198430347600466511363652838247808715146008385805998779048889526762467133715939144693726056254342658676918861300140936909774274376621997856830493168372045397236454807520301305573855925543198901138498008359044988601765525847241409563685982921810903631196570924305102237911343620710739530289116893554380768822200096590584434061636067758281522886529390767055256606543542038559311148929581392207506372958728500870340020880728858726986656578386462693425755361344764044227885241148806851716724790059189754050209110472425176446924812338698955473275175179254414956643853232976144186373984094583259685807293521122721492089639328071832863095089198695726706627027392476018852477208356667075005439156693020082173747824078401870054388956308385047529379621178204553190404614465903557772141149966417536877968276693053349592039817810239183152171872231175038968825105388137047412123646999573561869809976941998871503669625103721603642765696277933932788060186992611309660278154328782848260630671554312416670712096466006587817714729087024699693172456998179205273906547886526652928918974923139759656249340973562795879748871924893010505746551579703499560053059937538790219127354452844009427284592123916177481988689325370314723946301045700110815677519162174150027513702128191140480221326066243806884212949267193408459173235608763019206641930906800637619995115711643927224005112736595290555752967636880058957526031583405721819049670939050199733393844301945574268156457739622310069198046723594840882622452496483426082997748797711294067486142671235758108315907320352481794780461142594345940199490595265155625881845871106482907370224581302441780726952994254233926970163865474165136051209841630335292047238246259270236403960807500398461904270987251533307454917572672538935811399466710613858532031192064585121343441695748972214923696289814852211534579661680256043233346780386952668450236033341592360718448992318675877365965489269031168746518012834653728707200252788274135839825535559398331308172803044903755747521665442158414355240041901016296924886543071175227448517356328322681460520018931832085873256390918201839657909459220815954172356219467920360537532410638285046690223808170195253224468740889984957745755355777124495760665592081379030264309154553614441627076533043617596325657735013829454591119769335845424887759382452932862065799160438992586836420615900170508151344867850904869163315119544864501324327726323906634719171040041951334825214655318909781643569933380575283915821872534481461904240433177616944502135892277977264701418626661451029069967640351690529990934803592485069631758898183579739588929276845930156093614363170984246689722140152542841525143316882491564544957948194652082452364592133743606232517210251163006697767743462086173452217174255742164106511363533853111113291710646674112118255202135708326922204796383429510040445626007151360469235283469553648070759438834607786297423410551159428729784093527790144825859042791266715779656412815018892535674816308161732134355970179164281868977906608304381710025440696966802950458061005060169020533644370803022819366921890026951871608418910187355865323549624605987582891380124900259325544999998395809988412539455100806435971187047408786474370196236878895650707309479806287246685150911260092279982623307260004182548410191980336622552004982454553889797453849720927768363896195712751896891721957299390953081003480690201102798758648554994190144628213900424868972044219222450913246706394108796116890528237526821330471313843723599726797419097529763577545076738994474497126710536027237533376518576732988432309179986682110589961397998758947485595363030839939795055671958875036219710991563197536063430151540093539699478489544551916934461317661623637908670595853636311351704365375242022300879972317086434247156087546768266502680818502302763205689170905621768040929007451681739938521389294804162430668884726213881174834546784473935083368454614567030611541540116877971182339754674208910264098346991346612004304657390306290859048118827431907139373361283453895604591210800227257484166425823129472242179094854243650273235628712455168675676585459119450593098904245264780710414324562444921277524031873141280115700393512785710917355602623059842763159214569240532193051572374196980456620173398610996567332626784384568913412489273781816116545712038797041356601195133765201201841844326380545952933910201779185994377965496101993477688831278002008544856446732923469870774997104544467494517247129385741687201618466563325353360566957960167192051335142314939739546184943834570588922014538974396146939464708958038470958751297758692578378822435961694882018876875933968377962254847601336182674743393525316255276013751161742609281849539337374184241471133774281474530256081349499304919435630719193520214329654216003141478914407379854236299297161725768687276321160861485655062132440954467186778230224136050246230374663865453444684439282853796085632344735983176364215379668787556151237856843387510335970123393795245858053735267915925636394975145249862154462740762705373904786787699228918658356056779235222160912661775228350448310024466595364620920031085733743095609401551301428743871749039115964263562147160126017938947230965337076778339308405384553152137633771754624631118268823270624039350193312856476986986643117735082652964248770779532505811870901139950511893334735926493245573137032809872351024185486109043627726781972417869055246532863155889875555346280849694543683999205093587066539094249461006981737762320439811193066641912404523001602733293657851305006602884071423523690432282547542935876585252012091689721062075065044859428595795358411479043996425144439882717648581034771947322640425212022715578616586834321793815491261424337873141758164743946951153342380243536422429772658722562677003919324307425151070607736000263548783347321939190133801793658847535311466952038233447784586388267573907482722891343268235680760640719028344416142617971283800855166522626780462085947813959480893810552297192254055433514889090831803165107935932863214783648256456218715369497977365439805783644021331699421671286819160464383738684355756505148976411780743269261027377519203550918569714567388594658111660123628616362545086218684302452344864403298260855545076854814342564726931972204088817430495907840105843421451864392003961305599507816627906323458486721808746988456688522008047532825185862872125763806114788056453012295619991488752997009062789599519692671014414417866029443379250647129019774407928113049871768829074215117901199602478978836642265191482482250673841592473731639401429983327779681121419464647052139420262507046299854940854857552238460987545181036441895447721492823088797758236495276309386634517932817353857702634178496532648938092174295459642555789544324872327089388674816970839825069567375725281856699994123018336061661921722852282807630345616127882155667609660373427276084383897408776256062486668971531679868625329367636342185677658406069274159477445340475925328564289711091028371653004886837649041130305936857744031488941083114200016871477504792287727498449851926300705913963905028933259298818270663935128146343682191333866311223081684767435168013814620866008106467920275548887886378741972935404523535535128526971216784955636326320221201912779455235556178037690588081429000972230172780298208717548347808593613100655594554789670159668308020690628474942661286295582610618914204837969816257609946908983150497322033891519660213569182991318848353930845241147658492692940524087861844384215788777351556210286920166381486872390019417648130392269587835056468020609908670309061920359791813021269301759890884880323802566258057002264803995196646566761438748362408905615121093827436584013992541762279515046037799054269138639986593117065999841039386073324510152044300664290340437868285305673863527767535983697465665171981614889918204572548633663189849598473452874670257063624789251121433189022166424829371418082438587476835922673491496322355972882440134333762987218916114497776578624882100236197891327012879895555889179810226523677577781980351909483830100038905724042449700528263351790590147701130550496687633112529359357390501002741771404969915473303284017326576456618440860868554751925486844144143133520839265972571005325860850012741696578800460779666452945541515664866276870773807919916188577579731652971410619584766070027334809079954423173710409517477681476015751958467293729096700780198354008744552545632080524524953784699650781873602261188470097950318001458967101025619236809078848698850399194534212120842637167522575674809225001891960155775873308544429515973600000131156689000363933858105120843614024480659878789043683655198374602051585525925846932984671799465421413362112168337163762790962832645590276433299159527117173561080693418356859291868807708236689034340121212494065552447125168186191467633469656465059056025398561267886301462106678261309040547423231833593358144972578030802195550961052165681829605667156833396854589993337921431818816306689840462758967882895473294778844657981278630669995534619063509760414123417601723729252767901425207834179382409540314412567997230662421164433321917852144953109334301484762710987987615964021393010597538542215680419301118230903997132310714516630527681174450288973595757741556493647227205481293997859840603303270025981073494606319624486115182957357998952599518449735639852738328757635234537970033378144003342134424734487241530585376095370084392235942357485770261184642244760969346210540357832376721245079570552444082405702293290224051948907369905866189018541425678407968330433088908488066346550583841962060374094290227804473683872135543077695275509544714677467195048041236803231696251077882739227615715470305796352403613954840616125641835488379159431350277345399606995592523810588893497252588051846024469483723942256765119077168914752603810279827153063258940316748785787794137088052869498356101348685699704003121178593302785358523962153340737680855613498563778157720800254978784397556334812119173097573266744600288583566303633466992835099027167671009776568443647009416475722497573120391757786336077234947059978958933427649690700199948230706085272737992707662104397418547053041277439740112707071868067821672705763671161348355466883883741094798462890210650699139763921178989630953106506884313824245960128690220478212455586376477698873658270654544809953201948706524431497395950061583834728542907177978747553483902131444520398699160210140687623206781324186775113506555873925040274100217633978196231185875521025005789500819246386871706052875753470505214306010786768229095084884466662407061295894517181024665327108649363372794410605649691554583513736175762833698222967609111054201267509131428416202468976358976908395090020435468627548246477714945491829513012949061325656138360205771262649859423126728742071301421695191343771823304875933530134078696233895690106738148530920739706681529637529076527060611536612513258218811409259957888416192987527453836121662434612059546349326586864520847973497225830600384698649800754272996923922670127709395087931288051631219169712291694985983022804173611242197711699912217785828381504869160249278978204376023368461643119117046889663429046484551775454153415795271820160536741077675086614717460735970611132238077301549491523316007893768094237263123884474091318200491587634296505166574196362328224657323434910225774782989556013568856282210926618578874145365158816311386715670232159441969342275197092618663708741895156325526860196821628405092970898718990424252760479912155761361443266969643895648499777170187861813303242420361287533418876150281849621876839491754736157991536171302069547159823984926200096235030902565879929316018197812008944980189332530462403998199154947550839299180771674802937919744999505295444226535631202738996633519164128298536201954872229616524186760571633835332153373853955530581054966088627346384103856631239774096749264902374660381315156782602391706631307244271430171448960786207613354400391580649076514687799378710984289661919461774016507226993093797423340604808172885405951163932039572298172931886210451321394062679042430777831340760644999544297207201590787422318559652249025958263259514151696056620466845539031040063078107002725712652126137257612702851762086146073515718438472183543364517881075462306520807064254607127292289830141607776189233629824155312323629747922363345260394447663500685021970723968253732500095692439923123542489699100485715787061366891365224626135749065483624693288648441278997659748879187998929000390816233339623026521809633274636658771405158890761472715697184739261824453288549435847353224220622454562330100866463068914235784241268873182166270784632029855722959223470593326023125935064295339944538344082380893657026907225624004826149162630613235096459637695582723379657298082134738474660762713502852821142980837605635465557265840609667797735464763700896673538827338567576443730911107685147439638771166417169677253466999636966328494613677951162303111799403155329790335141815449030293163396940989092189252652700741945950980302208092359918461166662058316875566081811481431430616130246863152706743602144589830431800321685337553934367565573556522266080009044407687333301100432579035646742893391406912663125956578171322291287189948523111112834592321808598819664562068741779689199680609312635696734652148034728936582780598491381641675071442864033138365769875228092017129291544370098820441184189686420085788660439379988226267047630022059276792847857314327101518536611439339725458461567229716003913072112212599789585801625089987983905214238930437376878771599806348900263589683276533463894381861258174418406943930248245934107339420431988944973565988173615609347288942072301733886237514464376841968923645790925807091592955470327081499205534375459501922886416777237926959152628723955987503806658979097124346482101845381959983029386807075497710863099334978714981237366655859753811542359404052152045447089041924316820787879645543517075250681130088544953619536691097555610719512016030781318999795687605945648195945889752426495657137935212667607653304566949169799837860670030283986599121645142495422031029452429029133758515815681774526477440004026576837803625201335577845983924045020118659719774306158397948717532549792478705642259341581359200438606180143601681030771162375450687387596119021842860442807702377949431319004539086811599173090251604727094182445518355409802962443190695596162386601509092756940167075469666499421431218738908295011358897935837354845203672258711936695494437436123040693143616278392006844278613637374532631213810754894955231275047627138397275444357413578172117075350406253167869283813253763564509332974615228991924716763684182743903620102653173805849474582341703448892618348471321766956581479130609718962058445803625382221479947195489261351413475385609202796962115935836699901712962518342686190421852151920383989948806465124786510304567457836797803102439767396882099363421437698640386221956217715651142717111896012790942624553148067004982833999205514629262622904190102694878612129022775341187889667228259843937892116671098657004380745466590818998694125028496811531253371768164112441894667173454772846890230858243562148464173171911808065663164538943599723857920199636182537500467112417336642175550497753592833259623110747368519394253940083540218294490554357833072509002240106390544507727591120894183896974779619968814039486667585153289535064820354483782626881377983663792145806361478758118767716586484396928975098938066075881962653673364179812467237477323242123952379344573143607399989700233753244971306162386885959993921364298193767095262301910553148753235479497310573675325180845648789653591039800245982043071283753489876501858510382661219381293745557923768103109002819653033930706895900590871122000773385731214832247629463371652967356276342996347086623480654379161215237193950736648203490686557952261930171236955640207635042425677514915066402217548955249112007959654938055371247226687105953116775754024340295525464728101038020609704514294021340371407876279476059232582631012730974257469425411238736905945054390416199554152316802745249182605063883626396365209333849563874151227078005375458839273124594844343799895601323622879619299264002703395553985920488223861309608199154886814147091206835951658007267360669409050394397568986483318093056872838676439566034073660087962932025742664248550737408313245971562710538814341720629479285016508168972515280084500737341932697914876498094228998700810872170810895438728180102423283005011439126831674418647862620881165918682133877942862682699474786960702530761656214911168305946780802292095325681066375859654525079540729678841486739715138779300521992287527603777909278192691842634670045855366503825487189211692733650568214590452706274347027806153360231272678686041817765743142660097428945942610685178089738328460547600270225371355727729606329909893668575584880413497073110654687831936337651911572418187274771722943348652763443383441874489956139332053884341352872173971546808848660201621230165287938963978539593419084049360942711536551931123659728927863372488371055930156584088507786310361826913248166512522394720785658216878331288632764814946387499917896342020347937716441281444071131216220724741554212149503611680739270678665332252540218286608565706038118815670290514894960853983931875616695037162845753756924213725989358819738690561944263787480827966461760109641837099555054290450212625089786024630808435365832312364509875970938232961360085326146593667989579385103372185849705735405374830856745211287777513728734210169674556698623560141364039719606058338445320846636095268005675129007546909610323276220532589588290681133147676562047491980223341893950012367013371022159563719965155327886386976146775426939432234683746210518039218747230222411481305676629386030279094106831939542163884683179859076663456353294651867332651105914041767624697615750510290787741344390279072557668378404144152992619964760925752230186120776823334864843692670298570110354115207831704185414608769186645051076571497110522352054121986991638967073026361940603385594347647344568529255710382839794696232559712394452424188131383863849051393555947620550163676803157528409857512372937074361393286173382503760303855180628821523382205505416815283385926367452877551781926306385216221693397754522304169675307885013801601629633518240998685396414102679889126348692418552527799020157843347641079885830057676286036229609858730228538340939640207745777559267350558336837323696697079410349536033247256037930621733967840254891273234814239368465549770549630262942554453037236789099997180421348210432712428507224048696707222795799056647121319955235869723347938901082773363981204384187983022041631236113971925088222442527516196006363195323173483035903694766939279534441135819261073809369340357638892354883473558216311491437513337501486426670762298100159679720332846169472420402302013590960714687287669241794736022839104014946741503890569266005433151038081727707621204845755465894801093672281504672608369764047275304356401613825841364893611432405755264169252638464991583014362213904420524076902364012764083889177696579763593548114139994509539872463197240550511376249493590125830683993227505660822463433876521240747978539043553397026736663034722885228010011370532408065188677967108263052378428123022898838499980087089332111300390545673643833397350226610914045913276825321846257583793202549395984506074550393907454760802160208252100930495208147844693033131659325340934586130019661096060695503190758038793317739796489337640280202924375813227090278995622176979315192125187967972632215602642722481564355123364284746861513639612414126093726160829395198706095056250682171492726251013226109345484319774387485426025120582817987015436765559158479339225885940617675978645977909185813055796990069497174158354240019741897897392161200218345837614664034437078119350857310655973182641392735482471901346861174210202215710932647599509274095910248238659932649855209610760997003734417818551456127238124903711019296637820900710234667501136102152079056735455262916624558649613704058254827197973044135385222939192987872439294846132073344820631461812009657748773280444165687549216403006960467689418010240751780728502036231682094607524406469232605773596384426294597265160210800881799301183795400783326443521250010168260453892741129646267485413203010986123909368084476576978804046234895458491562242505827868808358578333286931185779822270421994827333972405038782934204069124571786121279249954298755413046242812719091211242135823132109147728764130430110328387296590233942743124413886630439498061364070025618403078752610693559074523150150795240684488356644591712867679828823642776012674601042813638818397717247011678533075375709089419549842602915448947718825377858648774547764792031469245936230964835167549554723046469109837100837073780680101315712905186977934947550898946888703477480200223457841263042637715477187783793069209402326637879326503358183024095256692567140763510700797291999473679161782810628098059543950644284315831489819591644742777872399589631947253264985746781032766585038737267004872841376114055765170663602173282215223708615176023342352422205794614666135973403486902009583104256896547077066298328300807659969113939013090957628706053300447722376078731809393033786838306292943405196173845676925936726673732755692388337026784272617323933241200636513526076958232317995942285871618959630464418050089876951320312882268288163046450964812936884351058890087350697325120798163254255936467188702206275208080880098930783701662472896962995840755810178501175569527485632660144405864176561912709326639875847342090235694987780425855698725222974126828647490680642323834810909576199986839523689803614630073080016569798114563615878298343766910142325683610553522740001013955976005640147838851437775285306597678137366096004295687140051595063864375727608330114285526463446103891067508138715820009649584209881722995906846121918629638843934854035033566383667222119329107016815035801395034062330481874407407056031232757458419176328772817125079450280394905279119184132503067187070192142621414779245820361380195466411392737739437916531890028573977994628844143677837793473232800162375732849358391612888019341360256208065081308573687914354302726045145321184314687064837476829022354799232531632358500314432616738381480823828933772258403782450750068414657243195526669526659355021532582873229147312557040596680332562055702137454213219609287246171436529333439661813286818630837973385476788601785326871297488785300912558625647283916407591663762848299926473378219861744113679762504276008750629597713462442172234320729747536301230075934324278166789421837423740682235317671349854446402405311025592996405370058738040628863928543493267258828108131185177093100711877364904665741139061727317751480561388886880929021738213114648185511253615941827730603287975293653555600295341910528702830073106550470570896237272860997359065022126811374978154833625348757382318467310051213575555683314990581303884827906704689997952274554902335365146929158560425112042495051861297122192312017220080639673186154746435345382086770074313307390594047865359842523660776549662738078938241897043690854246882462347242562257495369157448755210400928974478021188574946483185235061344139856345381529778787844602534050716326891625321958600573636147778325464368043134673701276369109753237781636884271062090992541092102418033845679352327015518902455612752935219060074654630827882326228635379244759467584656903107420012042438270565806255860870762334873936949803486613115392104622192705888287865095794055944920635078547769908978911029482077844246363538167226207574756815857091153772989559434772906123840358300117200339092301683693687951036118837126540014728700956660736681666045526936459411864484392112057042967533335462575480771006007379841087973011907600269709413845678350425542874142091620291984354492327788937309006812286735277193666934787472075724620991431861185555962025943839661463650317507693588252588290510471927509630692253453103559141913267453772355910090043496839321160336232353744108778160200949971935052678495408527013349296658648999164249480286258959148445291623987142604384562098165130774642588453937972096927286647600316171028182872650937172488135339563339912887877192635305759656902587370908359970074734930998245103382679251790902576537941864441706675920617605658994912991562656042853267609912370916322751274393580662608051169178504374898203686469852874675081544136824043841466565236116254499318238885106620293908615982487136394051524734629786934885327702854303458182377163348470285703344875973841000121726334547458174361726546585178183036320701054483335228732486818033099073940955398792460583481077852145812398900976483953120709416283218509679024897877064671135202503041839542733873159809094582247099918004872315465486251966862950283164388275072104628417630591583653958814245520289485898878593209560915394310307759352176505135695755151551841853872065128495266092119373363552926631709150894782378143459491938670309120148704869316903678386390728455797944718646929050013523164133625569743859098104512459233490536511312840424114169952152511417293254268832564090440587172582000043981225021643433474651184621327186508814939001186328676332806338939335075690851413203164437968029542498709295115536986683813393943666128688529763342200609692323367730029259957392360844537277693206610367371978128056496440790742746852550333923607802681289214316459332889935702512666530734809665265765253551424958870570662519429280259289469509175537455557981855506425385506453422540589088962211566680327684484026040123849567924457554780024636552747426917438148952488652786770050651560470945493275343995353788298026718334614084721230205797761467667611080842870895587773515713247021073565144876445133342708360799305973618135423050633031244672948227311107426341032963306096433971857132155762632820934349504695514642350991183475672484221469146141470520595922550322411340595018464385849311691385842804383373745348650058858191663047855249390167726859620577862341552619894314816494002384078593337216829991810192080230316958096271170470028006704847759283700834522828946594876714237041755194489162312037053819768259160850969048804050779250084811131727621386895222682994503935295021824713465315443245638249587410121057070903706647588091135393540935825702348687511352878193840938586395925428134716599945524270613028177741162075502556859315988801111832457119689945161998250932941814735258337979829163400796774973125816171725301492419399495725771962752123212887645461260246917887768786155135934974550273449708224097191933364979970161552578707172702391307192629631936437726313360565119729358949442755155588986629584813924962343497957597843564414539226505441336430125188817252509384562944174304125248253166509095575854003040523663197659300556269809303835278051085849311895453491577951991030060086517953177494825828811534717613842168730907189140071891245437928719406944269861541241700751633485470676105333789716003404668076556215960524856442151061083745966403907450577258359227006686164541939593242144828949780928932473537216807920437132098147437274254124833424261539719084760303700048792520926889051646032767666799276892723265547002886236246003830848931232767351823532725677681069460958232140270287982726241750679442306158100252649147573823118846766034371070256957332318465152005866787298678009080079463998310812096709956703911653461245660876881519395689528287297351092631489813981811241975944688058645702655016447983465889704992179532381631186711410482669507060793191088081252204521778834989165901224525487345594170157432146612413558721464117117233039027969243460913889508740665795382682244367736603935870628464442799870190048414976560096306792984255873280970220654780446553117253463460388639314841510341142279944004189240534086836774947946304666852582740131613859561407126681870101798563853732055775770432585071284145057208685141433137371240162415098841355920334993702886603742414381476467363189234045195099495703051311013114111267314750499021961614673602569435973604492251689561605855390845518843084491585297462724176547794974642409149559138056435870483132753526127895766350629547099704503050457562603851898048978250629449665402594715433953345412293446921100244748150085300011572016767378060552150092275062359949245098695988754107594228495144740368872882385273190157024261469239281545445682994783777994667804664459755070891964724204295893016519215432243432730962034848254422163069938360280647156590970215580035694079150659227828127175850503974359131510602648322492883103346821112441726068129550605827839526356398366706911867456922174061103082415912438120973423146229408257261502272382500989185071770777390122419586567789822245857212368384483749009410203217669769790988239229794035986658318176371842788333187413525587836085236141644164821582456675134927507000696266364534417760250285789911966825256798192816961722574535570000822236533489676767804535463379274450023338009555503390426688424666818524655806390924572516529791916212373129174414756728208945953447206786719045192397072625340048968013428721117456374970312314078562358854667688578197691342306977073341920454348954776065066572478532947291523030801447318728702370302832442324286342216336149867465159485618063164915429178349155961394834248421020986153864432880511875186719060676841076435247770891287374993299135264492602383693895704962936089935399096720625855510171749285033959480291368568342967718560137727848493298578128205293177519151437033002653887238514716831806836707259647083059331748064765905772236070262555836570352054371619741721303023256432288114276161246698570606476095427943257929812445019338644409901591717288960333144064723559817880385948568057423379839274718101519491395330537064608213411616735997368388866260730713586491367287020090446090130128867762162080749815370073853988349052198354016620061336412129726975459175035633766457194576115484763714351120280407491181336906329606584975703278673914399847701517720992963141002324194621222083297555332940863005640829962371478242703563497854735234444241710477648932015402972436928409795509436152934478897279357159536399787485945508123157977414347352764695085432373710609933083093709235685871190074288361946933992905535636398768032104677500526722788060560311198786835095817089415220821631392840036309707491763609823188817414011285269163754542362141412226938829514063073223969403624676463519467720492449444115234085576339955203914896809911757489664241852635724356614534714279125156285653040799712388704523491464159729042975642139577873184004453838005403441121353556719377098959306377127743565286207921274314407350247741981827030371653114793826790948506570004385336178504479578957623088220147677024665652268331030504242488286498375503808501762458428672266493964411183473911007647454173083446370913749845132571102234238692110490822923322307346539742748735828079143538470422498273759939635955532393439621230112949309317756452276838512685917278572433544186617768971295175692657928593837894028727525498660020606786797821241032244699885759103126153352210495169053237648679625974815414017303872077348606623026522630049794774014462298184103284492718512106900522096051022953842933873530536935066680857121301804643679200971721200474686849744965913764404624978214467059184390782610368725157572399324504308890129313678911885226549377014003604069002643604067217763493503371140545028969248436419956108889215954416843020540451233707752013505850905534274381895961183417916675394398465256856477362977465488317683967206404845275938873599083596440594662727799811185672474018407148257187287685186465669761535745112771878317183119417350095849455646092308446305538305951964785935420993474723419938666352303373179106852963833404285908172788171307792677523405124405785130034373585092647438449787398397019662701650670810236000390648018114403519121930882412430504492190764497771075883333799963737399474131789198236179674461297039583100958966182274669736122875467019892278975793503843565443311447119897533666657520596641515692964800435611113684739375869887398324767292821008042513121173343374580267295660977654351569732715222581778024487425403488483170778025856674627145702431030320202995426257303906820107663108812191017972304043299395682358760519695049169693709454631176929244200367596448636675620885066965646080196904520749373816150133668317268902332230050923908702613797812839947869226332442422668531210458716114777220130234962258601680782489030468261426390517298238443824688798917948279592372947983853436901528277127858521615864946726124924462820992075423780718062859052222082500570777536814663543794657059735685145416311254638810257386858962218289626295526537789803879701568583998791935783351141648570618337980619514062415064288340038647696563131171484809183167521826239386521074616870397324652639802193121145656660632157685205866865597271270724772945093820698820480164689446178822749438043667758113385759429570010288670648290783417521240738211747022170623352059254730768502800726715948689108739205798802693979984172997930798573532072639784651146550324364128930927790530722557878530943872760658727353651145894695437783877593291255708244225638177195240383982290926130095860206635323049132819184189551369737633682093896863982349010957661871639261260610472045728085894707277487189079696076714751988589999873392287435324932868503261394864564601957623014560103662130729706724420495658160345744596070636497493885522243763311998577167946232879581846117178829831828643115205926205808973958791144445674775728661866315907908043962796264186559234232431971689239120112815380550640828408512640455919368482205432456557068578482801967240742422198685929657700255189981949012502579241275452026128891328371109826155123638837157392489421770975353275423628507112742283353814958516220528579649111873847706752941927974480352818354422757036724405991971146610984456179604197145753745717927186421586790822147188766454622947366520338475650014394616258987447090025540504698177986237517306317045541446219238938252506300369948141596396962813261822267588925043578874183559640175518254188225143887012927622268586449059415991042907638325621543354285386214020075029571973545592284693905497753665739493392951015922184024052728826480987178464569619607732937478775865298639019130756024117277206597615947488960423561682320014665596461079318264292525118266436894856810276192680023194708928304353454621297614970295266547068655905040841436162664833959749558077995842247419142113580968368929928410475550109439028808180947890217995074676513230458905569309804216849673170286485111644030574498094893184301193362938797358946573315258831207243056798323365036837750115227774509950676023588300381685024588308598176359889143010523888954443815031154996615728122833173377589940065681164638129852745661653605453362831044934529066290662259541467202504719556988815819646960414199559493253075800906826899261208174799437902298962193604862314145281250362789820718819453380459929242200499060186288874923975758826894889399278289699904802846434856851033949638879151835237303837233117549170854736481612635715285138272387732530131835859261352874733937085010857499623961464196349842036033144300719831338014604486929029576774325682411846326449228804755367007730720200087486013055762644791558525940492373259587308159591303590761644022372032525492501899464448217634736188605385481318987476626771732014947333273756873547114253809389980325228787906677720100724522402511199304843573974756571098295452891726958747900987175144571957683066809215218331989436168231635407689289257582521829065282972379438052009598827333808441913578827634963693793444813777368885655987909075608622977397885435031375973336693871743718138865362859132102837915631225379762067829729125083192516191789220214924206368588273232748721433429430229519570870817031307211381652851516793683482868426089232774304363372876505847906672685653364859951239956846916891993694712997717534507391728101328131598368232089847556561453733701769435552825190236036913031884697686244444912706756768789604226728765361139761235647045763737440197354906956271424293285741128955572552944933717369616152843720326498560650526791788268360434699478343330036299769097675027364493769445578603066282549753827504213141793162285111324908878823127595306349941841258503690217486615177052182043344449130675701281959144614059168370676768281309734870084172354629149659984335130750541679857489313241364750979497095563755673557805503384995274262332318093595601650526216311407940206025836080873295417428991496083304694497199472728866883172042916146796831659079790966256198985953970670595531065529504234186920354080851491221089030544447344246253682758366731667369044103380794801453723110038833252576220481249133808640971890618779207862024118743335001551971964179425841848224939239976804938401068403112324432812466602722279842335310777371876138032190993170316973980246914443694597589867996623609089982965665047398372362904385910823282673556031835917808097832865172800506708963798615447980610349384407110710185182442068675537736755912920625639159211489656761503806060299928186728671596661481002788745713896092505119753668651556263955452484052093106299212443709408288005274872668770569208258645659190573778740980739859903751729244968124267506937306321420757013521148109598764791193327750627767186471937293763627339537912762155083589325087542814983811302798749918319974803359012515250213782767898502069269317785318741758987922776108649587512882493406543087150046067876622661719311732322492198805367097436764811481762883935033364810844909275002313957749918454917708548198601198958275647533301068337668733567706261772283980327388092398435405167448349655041447095245750710698452122883533073233246575721957255980958879132513296297402718241620187288619832789919614586011213875371081959731808876812946906176005364579621104127937528161469207778814615879361284536437712666516469761057329232891600333945348145499411199881786409853799605938166769346848546708772780903801350116486806621244820041641423811464193516344542027516187283723652901672547678634587107051661375176632733592875832779655038021991993077567289225442226608003788994848835304858853315253403479046722113712256764313856660475771519363337749753692786949677111687237933442610966469213383346880666968026739846823128546590491998161480534824294946965669561551635884208778153214790058326156397901562312998853503455852594769479252208724831253685150431294870884929727346145570168254446113457009110568475377595870021293674876310589337142389654712804106517566805113334052859508351192098084654795695191034391338629552997081839295734225139074350286070827841275136262034460950248431544896200696331557150547774909834151075640313594626958524083939524991673081540766965365819991580644625019015408056334604791054142484756972917516803068433761608294440844752025675146963890504830909602738544039597725518010262192729791526267268210045784180293402779111673695421903668646902188006096836834612425668465827258943251500337337171487630821263153970897159272824743188851413075324236946319537952673509957541516816859603553300655291450267878169544028961938930434561402579956996826020486572361551243931138264919105643000794795266342132796132279219287188968379429457566651430317927029490967582051270448007320703692281391243279488131813963483927060097125418248178931619648155424594245981372399714768863778970333629038569820896293272221028878469297112874099293896592055304598287971489619913214925725609737274569571931807035999100165562709578201077731785243065018164461976746235467801869474873135570191484142151833887673689979219408919104160559843963974685251626770201947262608044290771613246208395253072782036951691890538317464677740747728038725463289177202161296790976172618586410982150182630952157814263017211060630879642348209742288079735896414980048649932750694947073128235012019908568362537407264457099928642826343329145702000944104073655811957676256852779953701212858999584158791300223646274801574055959063059970987628432485269374846181672960747111819610540322894293977421375166714364435493357828846568637741320978331873113010256676380913405690548007802965625183416133930646013755093187960518737674570056471084802791611912804635612094217722978795626759288335066583385541802053239150742427995532567846445492171255865309462910836067654272101154003801150827422717112211227204668639612705387901464527214517938015034972858982184922970570489509157584604523001357412870122613176906962057832242406212124689733929204983019150705356615510064667707932550197864225448739430099090844051392910337024951152531813619032025383996002971925644013206548742802739643473687670005399150854771855354160419645921129185024059431954285685760489619281756794787153265057999712267982072923051537560132942750121701639009995725780882853683674979308132211321083653125479784561524234903989274723474113125037035446713033050085458961266649542466621040420361323132872367832413935172037082770231456064358888210547007547061967272323592030239830139822613063754497604013733135522744153070231231697143667711421275622730272203564552803970985612877112099462606806965251086679842905861173383650866431863737514040656110262425757405184520785152258650620898410441511088825760154511498127540420590399304752451718335726955089431060219185652654792624637776521543852795577079464295756096365742306906863786934033853751478214172529849930096810877542042112888870586905474745222909956081756473764270415393444790254496859780669605942189856324079145059785751032950722662480534332080337552379194984618687505437548899593640229400609055789349357571904190720267699023700121446238927143862639487931681622679958938912993744765776600858460764145221813160998231878077142956720164514447624441677777925541337474621001019256781932138269517073070362895593384763938923140675915391601587521303137815049037258384396117330224607694134533439962061956207332556447617783416688641147246813725744795746351994108811014669980432987085342577444653122705115151780760546524034838464618844285585908567490002252947546537729427221710121399125808014301390674380072495210430568016008742162631263634999917571770518486398694941313964205349212484957877435501412670442862347048904209845165182366615375306218321996603197092850405278311716012996445083063755168643988656563067335845338695303768154855409763633382715969172364173916896682051964579905892046660885122029508735093147750531888220593911080082216612310432966713871039562129689146437534382769603653276997843749841571542183880508611881052065890256521024189719108809688759509873681542396621913541440533738324524218171193282727868881030174978978804334367656198637153269130858504863494503804632220504161894300555025436103530349308626423351906415306690488956192971681252308392981426619865093468513982695947547606034366555773421064727903479834667513255130284255745188476158327601157981127645191551986581378604381429599648981342056963301121472256188451610418824407315641107458919233873466515457983838717396736361940127635622476980775556380675439569887874758524371298346526089253698560362574065027106558079136182317257346068681581438839255105120039228803182736350907733267354938539044399247711095568247762973777393821161594011457691690151732353937478413773408647271133511105675160488628202387046692895481575471028343820179704675887890866637485296389731813971879313666021862734092135386443219894793866124810124611122590861574590679541842719845395021644464616173953720985582073811948472969365959393195597305406294482739420779671191585612323487138800408872574644995383341966518991672730354546868100040059440136587587460235648961511517962418623407095275477380232749448770256990045622801243703805437752176226404897208462939199277891802874227985813376549137420425916046603350505210690370069179488345997587021481680708477289760195369594008783523526938870011153957875225944677786533801059980681110108883490318749937785679713175862393089906974802941406646605806382646467511200193168994220371247941209902370704393305437361428857438779668331832898529571862976348409668581574907187046706384241165883777738219170580668637198630353112090721158325230830003718372189548083723780655194311646539867595011700577559032314194746536918094049451467001777524697068409502682544525003723362913567739071777675954826950883661251724462374230177011530336488473786820820017059780349415377335053329339933704299450058373467272800672603082629572349896473418188889697660491683594572623510734356709707716095735506295857703547327432770444448942471215048139673637397540313368208863290423990301469546549380282765696389431614638166524612848973260893508060003883591323762262149417970876208148112272465175692604709272660557826037501294569690903682568507478370781678936698500194098715427089154084278658942717578464887929635900585282663288853352051253411862644816385181750640966338955666674912370872498969707732972521308177243166524559958997097817012355248548449275817528648805231471203963289432538369208319482975730730513192382320874011528337412600842777921659623878191768857525382139903774172818127040055262586250486975945294864252433485268074429022368933418049233060049180908379592204165512045621531182765256468892750279362240255064111569454077452644496920278199188348207727007311373990188819055779976452787400835268663285509648924478882295279677280672959799725242712001555360555796708715308010638222203538799065567737747505068062047544083695577517906107211412001956954499803230416618996873904709220108763052515207962215323522087356373978402320706961967092778602776086361300160384972303897242659288874836930988500056352616842962115816309688919926275743572801137549936980405881364618328333622640654808304502575305476092955595051618353071848592833299539486871803069766949818856836107188528795976083623242153491559235894350712854763384258595566229701762952616006358826903545930815288699745313495707485883406107406283703270792628413451630031156052004157457243686163021265960360238572990727988310260042999226893491342315354144981912810975571841389042021804474341810082246626474708875147582551138381882853283949398182479014168892387987445444365436151601148365307646749855540750146551838167299674845847776373064513955487488063311367670348082131822111003754622471083836302851274034120996262995179505696480152668704424167097302096272852966739392774173913302701816752283969794513845112169502569810893335739491683853951882466383041105843696642916609564605763194381316414114831158971392927557236293744034446535397134765512065399247577823766031039939392768999548903586131832334216267866731404221440291773457512183924396071584079120219134551129290751371052026661019678682734275571156643375436210755931214659957398437750925716129190761302366989650824746239368218918911682516269258678118678309878538675319291078948084073392558928380722784486712917249828481356742377427016064849476433680595250408886587660675759618859101341751128977237825254350553435087650607307778157735371616439039496445328735186312497180374160916127803700188762235468553237038574152446629926733759949279078480306323089183239788908660166965030198121907658319985881556028854060489755478946168485997453476010306901023207130479998980331464938612326111507828413116968170088301904842604090474016912055726599055230909009333884209576397582040587636028771612403452378366837050755415544571510524320693262080801744979144941332807088034579910390477567281533092956680263365454184721918921100286600241610176201922348629511560519754889864978769304480813017787743628547956452983800497188675713159395776418353875798364063487663452980459719315552156732551748579035587261716793125424328193367704292648147566343364925503783737477397539447530965810978991018800419506717721191431096915979068275797447860870639744462292005949085091015303193419183799846072206159311596283814853469507429521073101978035125210633182370351641595306035056249284863079827454577181668377607381918416800550776536058408504376217037009502238784527712861669981461927275937317449613942146170702095894587132763893517583249853935585960459824177451485536807947043631859930252635967511518020136253765076185001528552847759516355531513005266758306878051953422545770590901557888038020413445544940510200113236896077371095649877666620760431764927499124023941163642954162444306206441962511586068011462583276672302709051702992148841420964267524211030140669550285684285184374497532123051596872177733571822256161543095642102687276813235659735293081676618940245127370709294335192487904564035748865346293892777447740093555264465782879810655615097920067446380021429277183511347634839707602200065020790515170628851536430153417536044479822766957009539623099685589175660946108319529166619591810184062182414505880324698071370569365968611107234769733815565475239651801787810250894033033352648184999957614235761707884172586139641375870090367437369594121538760325726777871691678966903314838334667877804811291506887641226289992765239675408015455469955501780759737504110910618296014006346573887861167458661440245496349285017136322865787722218935115408446436455065937576789677197128549424611853137796112500715340984476620070052214346039054054275546260389834719781299691479629460992002456825886313074218657880526915238916520298639489958444401790920118048292815111426030453848528678925966396192994604818327737109928944162541823303196659331982347330984989272010031423260080468801489368537861663956020514512610266133266092983239225952805531093065845084442975264093301585138318983548348050586523861818843527401284561112164147861396248563304422814901978182626090220219268076949093975208824946563898677162428831037918728747908026367781945703032821562817641293176778433281607094067816964196837706128503273138776597928165352479324125278742629367597002930000864474662997313916287223036913044666224162764243644447024501908164545657737453189762502760635078453341313369211522648000973067090260219685666160112180374715214153348332747123277850520207550965672369655881137408132975335574515141720980642311375789116837302530886426376099323060071397047129136647066917457781409930094584124569684479049327889600245279778892438834396792856434411913182498335123052678990917828892776887864865798895423319237034426751927233788364640580080488253355276011419050922989511806234507551159255255628771272895362046654664751786058072424537825264518798931773670914083632005541433707438678753708274175944573431012039929457552502476345525403012686625798803583388866058513439992722565262706138962975150798534399692842181110506143757667332166495862083683067669299600082955003427754409627509195379050843894549730680771066870312613038757293520130787602085644127353922019950627914673644526421271589491705750125347611322509135276918684910737891085585419480816378546301414753040759362811164991069133228765078933040566629565027987097574528629764646298063982537014948219331326282259286144899882354949009366635224036271364631059491032446317119416231403041121065254858445948533581978574929796467897080743387406454184006837747900050772967146135293266514364755495170983975824245199453232802482388000624530090861036333716613973210265060483212383451359336596025095318222119465068493719144804032182864503421721711674899992257915808303600378024730002431546984138865279247940555889637000165005930410062998962182748875013642152554861425777186243710016285242553136398012295961789065512240622254371817682268961744735346453141374398531775976128460912561129682318813888101946617379149708786908096026524246899906268348140774046814642055200534860537816681250748209092646059528999387066307478976848874115031489431428109228856642050022838962535834785285916884812343815189210888025651130179330530984825020911035234276568102222914538931594374889684568842313474688150522265893633941072452734358398294195592599833994127927592908828809004540599692017416055787444648017031532130422727303243940488211318906309583114199851965336985621135971527392470196307923723242698227299856535908514090204958787564342971288760781143812741632681189522275520051334258050681811505318300111864888354791663709769297899595236124754039698108571850423092915321217002581587373531383889217687770694118950834519140832574379541892990957928172028637051739963786192379165214055338308344974006914431091616925366453927169791774421973872489512374996499875436989212182817442706070974591229073138222745481096967334015044288059838599007912880794135903882248817522020780540204241598206806001431877266230001816912677853147409197191368239031162111051589331487774018711167528587953577595801213654774636744726794888920492628917772810620216707078327173721899274422726038574111588039008893566968400959931825589838061454994478546878314891435295564023872628528210180716149883611706076928740338199640213617812217102980103569393885235225565234045728885042395278722718657328171650942710311145468935929163743193955501117041198186994524264661102205379661246995072433469310963487024596821346569808298310835351111658840843396350953791529348083194772864765467022224769471865115108749013462037600163446050451531906647161321330238599505702808286402965828661638577696359634382673224964741120358547166594013885139113346355003084759089301931685536700351517568748515933265806220323572659855254930874941965656171408778940892430967386215706905239821048456365735584272459568844678643279626622658322324042091414491603219669453871615112094930030137352510360546794589240258710051567832051637269235400663153687595141633205832718355128703681359073394068825675950333555503268949573643087630968942750305265675404697668492915440426242786704188041187326579825964446406215396694948753224637117823176976951088827824135501384917803746800159419049795382513159241027687572601356903033046085584863830770821236841651735417643228329297774001680866594296080141669118165809696922435710458152199580701476803470006069637924594626774236947257086205622723115974944292817327512692700308039020705798224880734010578471860031796996063870120550745340409777427177666061170385974680350485037310299943401757116235491416247656948847450890148104965756004990862354027014442158344200174689544055835240336309544610815342252732194647206390324465286169010492801899241809866557139782323024459619051740941842479713080919583363890936958458303138659180777301202564415234542720892442324574896408204025174147869578898575656414426489648863465140368990549195105142771895816871558660940489327500998294692137109638034667283852040146840594591352966518414304884400145747106027481729860014662434566645073306827481507639215661056165723873639198481938055260657839847410853872981922098624906357945993592716748762155941064823416014819634700456393037291083670089773097396537853101306842182663224816473600943829984271150241123884470772800305163446253631772789371137104078239956166421631049710862682566270488049432728388246112778466167349668552125378872289339042486324494704039388065947011893663639094482691422806052933768129874483825226157209748381786903280012873801602491646048977001072632039222289278105339376527947295379050803498663273154063673671076549058269448251449647176851659844058307079912349096627424819117909780957803333820452158897981864516239366455748011123495730307446862565039112262511633584244837096472289018370107499397770652167506387859383199927251988846800196039770691436368927208704340811594939239392728106658597356062868135186793544568827261414985718756329218873311864083459637364351487792493823643690754097953664848854682753889888260560709356450479430493450200566360535017141182739843538197159366075594443542981975194081656874634608086026089398845547051548804626199180442801448808704008604623159879529073033677464603650297388391228364602019429228455178270409998527859931921923192537478557225569491900064085066053062041728864191536995229842928312206516704421821070391701584792777150750386859144128104767593820718521085192012256938421337567065836139331984488123468354609946279966961142915644374066032271153320560527704800951055084774699365408535800512593623179001236360723599495190999143275762097127044328419904090531043349607774345814924404847779493643112797128218687073375558840141192356654720096991687417927581788029396956661579810869301750036748953573243028941344367606371630364484152969127070885117567137717387454626550157001851264430637752100005091786255598412349398401754839706875275626670464308081897882938795992412477683060820171311247002825657955312512017817491380583772072156524746771307565241167040557323935890434611982021010776900152928420666131236292513251739058820819423973045981895092941829383558450259724922506736806160516470678536119268174504279584170016338190940892338863450413043562519497774891293694477527030692351991421825179770823815385692616426591210914785774975740909815613395582801221104470291768612371269647389899712717408024750941143966583032259946388700103212976714415718639667937945460931241391581066908031903381515430260207660945569142569971692730184688908645004576643689478568966494386598291194109028672348705312524533882423798956272902666823945768055773302536678727707966692952052601901501118322115635282154865030939497981216448909521341453653136468636448292692424008519871965155151611186514186754450799759283765192694949267299904644615322746054720877580730310996628591898108056824750624057051662624772015596516385683530328695213280672562364317132132259858393663687545923782649601955360761973159759894620684939136121630185738839439614362680412228857318828086531959501421245770679834823548375983287490433164322108904264035759282954710124953767988172943679582876227425559824347990899108163307044913031865324466450246203100878285392107023915784851672375233091350223944867791484500842019770685474604881814955398535265867531392907372951439490693596460236734887363363162407461363815060009841671854092547678374849316943447571623562184053906303423061286995844281529287722972931603677003126033004725405775478725884169138005895245739853032231186016119477020082322321850134950359731230724260400638734857122596282113231352643892808804648756624693727807104749119203230053385631413638135104389539236135513838505532235485593180856767168779989118420731549717187686279608433196944774285340972979357883416654594560810745209602651588574405942738561629396165771931345718226425443539010358990349585656093508779310944634066564786890283983324066603120173364780093384164258992627230689582103831953758089795068301415666186917974455026847594630936545523011075736644339221426617996637071129425209481286056302817738446065802993646492568013333416874043566207111950947618531079879261752916497711650667866301896441646351340071695433458659865003205901080585303889930827816979372723099901305152333625127001782213671223357900322232901988101757267865379142051481354439854330427606347688307475091765603570200440837045949307046521726461250056299124655513033403720758896442149339556781001871226489949721210840199580678308190548826792158681323523410105351477028948388165354415243399122950770503942249672453188605869073414642827478320317957911971688764979240620464876416282828000251008027849910905312546815313359085310062221961559982691181490345807768178359160925186171911789094410131118911183322303718434843813351553713365002213802357792499118739936950176525774853066340993297166913148494305881889745032603440267972821338085408742669540472216385433498689323701838358278533474000730291607244997067200261384155561628413292115424057236964257519992838297972284876599362209433329133156445305603247644606116005477929256427928297489334355384406103403858581666183377022481734428800103800107141495048249427667370726839927479321197085709514954312285316513993725211691758400016293587807067333331492882215379390917502011799952564201331855388758908533693333424770862096677030574567376494979575621007886859844243439034330794767733430337287701490583940937142813098363278095507163575219744032605648856186822805041657771165277704471667796325444989844907116995471550870304098990795143798679150230338675268460138532890323745116420791343574653209472562208175534280403215453694703390455311157664556644154221437917620561851385825817491542003041132969427934922920879497328031705391183020132349139488781350608374817084611237844877543804687996532898619462423421473931460096665169356543987681956126263028481341705498610373637285771943694464392122110027525268651856255883475725301297879971671497724894658238059848382102111298567296149615545190081878810462709666059056888171579205079819287575061041197953476765164721442967848091593820362772923324973044573045226403812149192311208217456194942093436757337258996717634299097879999651644610997267363072997677949277929883622894446375774009334386746502024609243755989288917518638507458893473395225278214211756142881419587910810799563795457873237337577124740320410812154375649809217375317856209054434977140731781521737336107401778746948665415914965199943398433893495330102426305272628380073452173902274291754246519980731927956288445055654488184092351679783588610989122322642477255212621672110655417804281578336534206864490885305234071540550736608371619764119310429342676293711379861233780695914151773301658087039212986951054523083361242551308352649779857507657233901652765027854568656727367323343856017175115259500413861071860616286468936010961167729664418947841530447256672467233767058773358612269889672998918722312461383028604601720305243678430460032252209092099938710814443641713961960331294838671967562597560006002104847529810062349880155617723807271942904630809711209020981417750472874047819389812358377931389312673643351355408251853647005986027942555735260179310288974646977586051041032796140260921939922829676249329026012456758068142431487379654662954803249796053632482738292781962172465677998790064908201082533048067869702927341266179063379706776574623766367957956165593209113025031641480546305463585085908433177479613652728087332307950334336136088093606689657715032950381044724294429132188521958160065562920759254814778504531394711790564033399247255231941437078984511850386153128593178016373920653945778519252154683579764479426342396113157173421447938462855115485549222513707827520562757402062747397509184650319450678555410488825754927734833331181110836734192581975461918454943499290922526865509663761549212816934592513757267020002720975008379504147079681265021581684745298906585247410082342374735705659647772800732524706871023541432567526955979086957314607166622653890851456180305800332667899722370056879419466711138288263914806909561078632175426139522906948472935581867838601242785160683690965972461565611911018268567158638270294546393192795106674609449013134322283269963544151289495288211519129109925313763341396243672678913765755094116441948623182833793468612812068035538332388165670736263797574522317753200643951485848566287562579079472903962680446752740898888538160728508031926323411088504095020889926516298247151938576906543637278788155606569804607552831791534245230252528964283752420956522900954051427017760544845360436606352402945474213478703430317126724102323065776231328822937080359407782132369414846758352098588223640803691717346333299562710365506625779025851757594150079210118675863316870366427867097774126381972789317456376613371133993368551964656223768219708782805809320089333483267419739596283463697035765936814630410634093221181379570659923195444522897518465894781814147671694997176880657590254904256305345249593404885476055002581810801099518512183855778301999733372496282752368473462526513221507225746102181918763726352489005743235979140725387720705317897187892429354814847314167622404673824761204427958399993156562925068332724470865779416349038945827779858140988582517482602960178389212807452018159337196004505687084035331403126815055650031896854978301932443358904045768445458918504673025300041734484310564100287771338748265683243381220646456964853228151750105375140186285129109675247509719529416036855557417432062672295091421699360884912338466776719781244783481933315386530069328117529912262626201767976804343357475701040063552972439764289450604654942705673586999502839107616793327042583053960627377856505241267073967318267808144424310875382353483139197302130072037856296252292816687026986222928008131397461959119841721090402135090381918375690662617050494866358028444573221375258248339129097486450203277696445959587326848086878638643720449039661229384923193511550883791868723703015187986669163103145088512754131350567015976964870927486981230947883711172452557074867542182609792821442607980113533459817638506287657377729805521857234801521019629685919374453927496416770920372900298989647208899644115862877729358933285412618274594623239054792100522671058981591639864985586821512461782692069345564475090046200331419105507200647102756386683554182214775271172231960623776527436218383147157723936424194673047333712322018154201806557141601113044895760586661458055753420203755179971243826986280537017154804333493984424765945511264579717589655453284826185089039318058313052156018239599001590130633623617236514078130631767820239669547298841567829346611812645012384337518500815475848948783572372078218724159590483166920047671436608139581046402464187843944025663441564397443290210746843009508715227530088361685694475006114225868190123314009996667394869784004201352467170223148631412800595803451696658982454557993555885226719501468408398427948119845288125516218509706222128191374147943273680761769172810395985382654035261054666197149187088100918332102523887316295752034717960337512318525670201907222427941461671142977901897282324379327162315147644273695236182708958980437370434041963573753096893950272722882680631210625917774988141170640226615210918875368124695126499176384976787789189868419787154287985275336080248835348146992272680907095409720124903909369761246209219326620397705104710374583589722211797766235379330747309233967957752276503166276561247137360502199454341202877672980024707863388264615748989879375615747191519366530929421359333768413016411081158906230833010694603561376874034459689963058147482086037447004395133100814094807484409392148881844646308046459119224282038416237179036515407466880886465528517853232121575470491734942525794768590015220169895736283248335744242127772106115374847641851188727889838904006874655970379525101179402340618831275632323836837170911834089008420258163040714245950706394351459533156686879390924186736212526819237366627241743838934434692369844053995204015197819153404056869952812157953914088226023665552588608180132649703597887869806718640270802517494417913694516135589357586340449044837697513236929064917723210077953060694972090619015173205007957755005875036703994380275991986272899738357222934554801036637348796505376303930897244265502740933520239977349176032032303202574932389105384606693986543370713442474763680606811818315032198943659585911988095743636110873876557088008865947256885707121083443260138317865213003061962567795869548671910371007903140382101344608157620868100341639835602384794569880365922347977515535878963058625047626495175630223881724415848867363004987983923366329529508629135984499159615117653039491483554987324953332316193086436118042543759252763639335444730400593485315429731699550122291956119711546529279941489571800016286194883521193250180344109409924171771950295969536452342925523115521223526544278028690381577660264425577037939609389230705700854957190815724861440235985620960034752260878851489092093969487793666968649790604089476672410546804087109419944341055871133815632497948928203164986562229661033439054021581791269396598697345998073119006114746856863861699773436447342943570692219387467855902912742026291519651962290185650601492765524322479129063564061818354616429121421999774844013178120606269542513006456792774893109004246040285055791390725748312847848058924831722736075862114298689085391087564815242943405427181282080888320331566100418839902579037148060011436518367605112723395469122906656125236205681251438796000322937896393072477883165176376066076102937077714935145834803769346004760236329287159732268375868386975642162818129219698592158500292991238376543048010277512465644559475050064456175592582280745761968424541067195449371019877263176200764420810407875620602293713232903927880857807172661994844198961785245069423433641546488001984167476098677299272981742338792498609312074501404257604951675413413873246864256813382693692120795589988737098478061008485198742691562656948652817254208422951322526449143765806125191073588753680679220845828526136989702695776754444348437736205813611024187434896075872111776313665344650141152059020031234098767625612690478964706200628594569243155634303831042674784145083172563461970026119482683301695226714603154260831098720490296281559774294692053086742886389178505477565458273118498709702288488165342255175019577312296347980066016484767247060668424959523317711656537353080471436666460083233022774367560980612607343069705198273200307978015427646062659810288947725894773467562427544340643203923550865161199594743836069113720335734156363105639560498778749501090442430621670169701540404513610614983158699306712518039365460109530977438337340182675116140141575574956937258417205743303592179401664753526565231750527940262842068976680838995668206354298650193554661380450843983853916184768420902328660913309849728138403753816371828943199424277814348361001843563172304140411900724057778135754788467946808103333309973346079618905672896756871849398853257188450809582774080524551357741405979011789773638179732036159078352154196115801946198106010790309349235298746250276046988614014049888025848602913213114015883522981030681523324400642372552658637891749801621651319409618403648669715407398601102325368722637208376504733609694566636289629645960310889996392753237885072591313755448312660015519412223612320998113853579225719849880195172044699027551261598176848548127011471108967778838471352197094840834243743318782813531118545077409348341747102934354623106629719015846677473191242492048792878260857069685551495271122251023364421038513217664628370563702982224688303420063092513206877693813659573714685299551592790084756646863999128882976808493528514546434534515448743688061189551190075251319747085701082022259358772875197190147362964504202430895665679140531607349154371305423405275526908461545642521140214507129644376720021835972886268458552460816225894227057408897558237324824264432415044252427496387437991311520184184217572417793775528194810528340545545811508360429913016992433443347226691714420689642146652809405290732234966941958952665456734886401900487134409713035753495779462901884025289381893196804614441791770920132359526250973964398925172015418823469526686071400014263580385689182077530043754958353596507041855137787226327278488324625035333175116170681439948822099409099990345760776108986991454243540282265369113373467129051144062403506307588011483779614552725593909112745310414829792673285102193245459754167203541327804319060548728763589219584125058432947264217257769413006267372044117313473070308915084842184495219079058627727111260668633278488998407797527500326580573357899584640718715066240626392624779302299184774236767223107269835043184454297764096147353882112544258557538000833219399368677408545867908986059342001565574332546433500180226452134342910137068250777645878389223237973859800755964284466205283344234295531651936706178848636378444662633234240229881253476150508417518410570906208715327206451358445651959246651567920419538314477654930630067096213650874645248841209890246118030037763688242857003550736622508503483998033719530945801010907483722912521593888148124930266510552287921281714808455998438625111623465706499283773290060326701048991234704307782244157223627282698704076913696897961989347315982364957366401880861086485885416308259289397948975715367623308393717003181413896105445027658937366771077854056964839292989488358637675543379188907977093044935996311839194291372238500190225824807759156278858856615454772852193939601001919760452205665549919844294554462985129607010915738871401324307076439828336768270676958491429482024246017793586614265164436256142108712939570279822863533345318360536300772387057329240488131477489311331443636870972610043813511762234525208713259477038119045344062823777813250463185715165859722901423817121163752878455868663419510703085971485763922515933593592100855919760263418783670109487078246401247570973532436748335709000003012519906372399242731202817281220377891954948001057877808489501605668946854199263562863597277185801400466872563525159829484736948287223758759706076675389142501097564069828041682773062352239733137460556582076610157284975171447108284531988442731742389535006310619359656109362597036109610677357920568021672154487219568625903469816351198469372956688845322222252706863743020401239697535493470364744100333031558720947793939341648603259204865983128269006461337313497120822484086170349306060340431943566735568258010390645034560013535212411058722499592739596770109081415590519616539341092428697597544446942680605486036199177803249300454286099918428219265669292419326089511290771736254616621878710322238595892846135948338608909086635061390953517952943601489136905937154152843718050763199984137886293904239796335031110264995330421653973530600214938007617347246978514300031979314171145484414142627866324451565754048944592299451589610877534115636080303289307264243721071881762021630550944246902048481542761653377333574596498930558860964924066843370962688053197593266776656051822301632569198102069655893595619250677675383478825094610921602739897805684380661554567837556620814574504304411069492704006476894203225288500071870034717969417871370142333116210007536419018054159610441009910576810053733924487970737308701949385665138720577680400376129838169811312855470948334261626125745913089120323058865196531687803026288262550933692980310490943205268786778709776484847584323945583578362261014698654423759088529196705947433557467462754989871381279622984574731532216113155378108586093303605582788498004722540996468577833712786470252209643633978285059272949519912768065617113066135000923637102801671640751891782443461546945106733176268409765379559498585457724120362788681836826757506825594837455410251450400193332920551275804365916482509798051807907830342369817852137447397867063858919365385290988620022862128271069313617889479820078839353867207566585993672628976517827524474245758864686771084049868401875350422757304561332346172977118169218277245199336068720830298497126912487421399212288013431073560165322302716399652491245804564522392152708764198844147915438873048419981064823420160821101330451888267749165366871490863776377294733888570347351945403424694953353748610724797686070294701223199613576269704713700902984205497035088309265548730506161054084672961297675613034259824518321880963602676590174986320395206191077514586556718151755074612766246801624176814448054502691710579381955407341624265260578113900849351680621994562378099990861064997429105074473773603082050569387501665328992347122870121806211092446168554586252074707676289919756097545073771833207672721299388960374209342792966918607724041371176722562269299006819535557566447233226020397928545788943373874081540752168300912870217164839985380014061674882694311679087746241798523437657497094966996354904966476021716255160797301530495401031761826109590581795604441599366738832667885191744226889211665409690560277646866994048885715282417525991653435887247290167777890235174652734618649448265020740971552964964159696049698178332302958089415251806910221125253033511966047370418312411124445774036720687429633314643067431655641040155682904055138774643708507978384161798230824718067637114109381144905022420219144615872948034849448865440743077277091926789584219942654958482996937816806547902453249531925570965245196539504010311379101065776320468725095650297764598041005935493722836088790876499392529432906173574279583536138348537945636378421329571537791385044954847061688074431559538408280585369425997050180133422864646334738439981811571732912396509471474885628599891289553805715252586166196098100144641866453260609948880238496492023593333962863874199843368487147071029308384643632667363674991051468615688790464319560392783462637871738625950229275542661920308977831544187724855497140834456858162203246864096669553133083197162974915757309563367760895225090711052085526588923146838449452373137426905947182519774063385565169683889513315466925589447247601866295975262047850373743406466384636225648997033813203424556133941874164460994936085285173599892208139511566905918988750624641813075325011233899762235752653100153473311709421685750910369856356846436564260665870630092199128910144882361687945990600230411454724837425488207429674823513129919607577750070788695415090494183386550823260224374455861189475076962057371925532774121892254963024310608138757808746226609110415868352977146207886884188717198229293759362666254236360188145983203992585542483638189741584961021096587623744369814356049099210973076861434285303071151669606483765720218442993938716110789302463269253574671966677908704530664884961644523473994775107172277184222133975133946889592970216798712528525289193357911647871804385710388285829873415472526986297514117444571208471566491762458068680720829053859015699659965256776671495264329754799075679709616133428048350329370089733149231894215180670159921390725532776343232845808698612646320977360323978901981955500312978621971451654022734280232893733720184123740017946424566770391473387171169372889257843295771308103878849681405827637826406949039007966855419482985804229484903242518243435928183515159078328447395898271874398001120135648631900976678129828278303530073850879209413229192615708602239556739692414861221125730377854672675137067646550430718432038610975996350430542413675223420202315952649896501284480050859373791415711822768055828806659034101123288392715751109928511677471470633303937130797346823643802728615593344129970537220182321942400223969048217080194758453976042899449948796121962734062320051287114563292829147184517495765537923574151161584234584667817191756609568757991098423360502311188686218767698012274842359942959532052018649220149339262288173992075579381707848398741775402163422761036128002171146842987339302590548168830040682760175812263792194620763470053803797245110169766862642773429578931813433258361764980885935857422676753820159611345583693388455419385647401498116845532245171653415031855762960689859692579258586551127859542574010580482639592388997089181360095341846183019553624975502001008510334503999254854750393478940830699373353956719136621184618052096304944403515693336152660835825776082512235431471077679086454593707717294365230198878577494662397807009710433016910038187577628200620240825694099383911014208329949769986305390411944797669855329415894291325330776778375474246854554691077123754007291360664126998565792977930807824088975390432848509783632910083104834588918370911497707445624586606568788826837231050506928177805021973449675101150463640172676167328003851862792956527206226405989555693567570830955294941471365490436883356751766699581642983722313795764543596095800491694956962257721474087550671824287656578273378521648817700281404191754774324490133202717420377287944202876633003040777833716141126134134543258780595689458405316908797739432471840025858994088379112061582033480182043428996649644105293838881488310736957726367793787753105659660333838061868225636867128905604178348897346099901901495153640816318607633037922723074957623257594033100776408280977391728624768183685637101758602910498630061763124538135041525002912841737624707470985059750660953914261201713492879620492678673941119346548740604054598102312348741489682603998788051779972754739424423459632440199887385832914940859481390674206650932999849323668614043525769157931236228847579803634413738261171143695963652734882395900557366106973306999910800944758917518422549446235890078777724898286374660132084734229757880479576922064335806061683321063446088383098023639919913973980239176078826164170371197082819724286601618495333879421096329295865870894932885138940902288542260589896682937111197092151866202859987057086559727069453181792956701953172986225261764605847716103393027244709936793809078412616401332377931856829578620191765431071037774087210881287213164424701045074228131622474425484245266183996824387636548927626160805476229490906906911420830711454722468050541829167588720604795439590737555601440857443272327397519090780654321286954166945935453673119108942286716405158491992378546337080118336716978893797838157783578800023884617304103619936310038768806955037584407692381400570342133316617838926211318246774652306830000444868647272511176226564427073183863979165573316912966826033141928144618282594208547699588527614535045174024342286999207344192132730822550222384244429836033198026167123561581479304645472159292756041549859252015192646882291669809101102642644886253456431214931204691589414428500965115456121888660694770417023975215747066639630151457682674595637303829305246944251254976681447461817150214303996616931282803681653945133967353844668896712834540732535156983819186613632060660094529631948900448020526400418725255151337074888930865648298172763364938714522640262547667985993511129367890608395946703723271416862637551031630593807647088592441712752410514104333930500770616420740019948634932354663885178424777615630282086455030753477758432404459411464318750259300137745091125899620178621431173587577761597964606625373565936935079483376443789067630014591329964514890700290739568637515125039571751942373134093244163980763571226407040124861885647030438788615031735047601175496892035824338830544186205320854709884027742617383143055247290645704426681059770123005240800329079512477264038953198080970575894199810755814656180087267903035520863451513499068064215320447106003098978761537217699913818020573120093701737251922920547663993427420857812186755818697406272792932676019198377049501870417113071392942406621814110839343854683557763633469662343803642698576402225778538738174592714490939648155396085532898044677584141222616293219375515854143884046870529512459287622161284988198876309122791391226963429936688629480836751648150396691937370983803418028102532227555764075643004586589947857152122314525738318916875147578266279546279439687811840486228917552141894379970400136609185726745267956654627205108052807887084497391658787791439623406281015000214981765298888278027641483454040659636368926060052247185594401498190421259296694838182578410625969179895689462278325939019285693515043767781621318872228347786755463606775595654282892961112247168338219874668038713005727209746939826843694239570110691514676812539550401659291077276007566361544645129750815980067451303554550563532585466303619942041552245241433913287153398104850140061339773954988423426303717267842531629011773579988671696649532775651947529042072807105434163438768701831307836900337220273132292464791771240557117395808514434579431134418775554269706191636325693862138980768118490293100604551012519289231424638863206107590574616235162164882358494889908962203960161430539494900860284232013076354329975626934470113765205284686646460183936261062677631607438585300820936845625730358728105258308658124727082487589894520571867001662481162376966440587655031051873631025592941914094243078003957348068703634388913300121280298443706209359320407809705604176103961098650363853355658703070389407467380818384198127259117653853583785026505490527149518377178232532382603772211813193563148549630849012862653964473513654488336674755690221903626696657928156514281032229469312992336654710312484424848493014008647577868249739869130744861415753920078330719050725306387697745205035928763298174650095850123591875864882249818724332810233858416663155979556713229807979334244110837600631772205741522084478185869588082467625830901777407239437821481937702846814158258364521244342951341613660552383748863250858189758360812144009382208626498600591850980120050763489507074082641678962998542538785625476596959831802862968274225034309936175997501647859990448890852173455140995711313910437531120297614488347080930719965849308254396459787192446909009662056485916810814558452185326915250691803909051422035809627963716411822890545490616625450649251372101174883764317404992771343902004669931630382473204931475303604937138654280197410869181787748505184622436930906758034639790634509502716196205206252061913853706070812926915730590610416707645593340655809558387509641653032864984766260396107976065403979725493154273509912292798708743547073854857047557307901176014335482855936140426148950006364582142116181729778632742823323830703088180231470441382020018642641435976239725938094392255170518147733083157461617478256346186777906505254901562562474497757289356965801745378085947467497539493898141074961288054704130209763407328435239012084962388445618471982915288196484504966248415363628374530823302891503277951898298003513258356206908719040285115440519296630728650733062068971456138426166515911979863774752342209567598615655699458405125985549854251001428922642933376231070402978063522627402220191430398888306492860242592418687494675326912222077187392746026010324968870727417010653990828187799600580443896884486417015638102024391840768701033588289084433244600008205709977568658715179288007757066632272446690833669070679639245980000787117605723566841356620774139833891489245394283616168448463586765750095253311453424226588050655541418499304285867632864923840599271625325139213277142487936981457400254950750796371187845208613079151952873667695527112208413785640725532099131248085436840821843718491694057457332308875358460791529673715376543873747845173616842114391841048503410433034780821192434537935334381736009836955630668908093851802412095203359439058575055422834921152430768021632144224530990192052196004917758403120997781552845514181057695393225352750458098757120640329898920628949918377120075075724476780289982508605564745330518688913048345727641378879079645291401314169541631877914866414913111930943264692783623615403951312063780431963527149314706250619299988228163014758045974488452444902004713867631565079410143059916593596940789662198559586891038901793062576500174374488936768589049831601706886072664374285606580901595638113186142027600228826768124111937718706788011472671251405976749750959507513909628908621996835684313967770035162308002166964912061903765057178565111174426681404056534519324837332996835389592857657844816779453390888847979353111120880055605193187391553907517529712472755822709263304661044471163942399857313097373688939921867881916923081376529522730650457278216462852650272970150966161989157954358263024692925095462500137145298183735829968917488317238200997051761911957253355298937850992056324780343284451445530922414413806497892912871382882857284789911901408964364624119267276702102827690357120154961971674493664744652614684034171772049773494996803715562323079469516059128317394496178723351751574525537760879783935860324565682024063287457415350489879045299764848746843568299197223837033390245577736975471821107701969877449888306524966374749883854000312137064812066252409033744736785761769062978583992570665361563414610475541582155948236706908919321286191218710663595660175043891865719528511016039399010942680730361540523694510284997163815531324559110355892822383652257144329587732664342125020163892224052121832049410253403157880139505911840574581538069142942232018781472768217229396606584953931850338421485609063655245726270529608008472762996924815415721507776599568691424807185077617119742387804004417592824607088007408821785470853819965918425648736752969358890953971168194479738433214983247813709345967467540803600531831555840084722442456854821745048326098332468322482401664451231215497571398525665250587608088339111034272577179522387178020660721919546094334952870399782903563614405901310177725841959726825373209762594126185612455879236518336317385541203237798140428823588613587562588572838714344700108838590950708785143899395158026230956436384869104902795773458827681633591145012996153803486968209245259482434660344174577702138123422550930773386337022369516459419956748139287110409531640200879565507985916111022876006490791544088670866663274823495555639363201532312406271916454552871546065685722682521222085418466213754139462396936340642257949536237465263261519010657369421538676752389932964731680029115511900049969137730966738819616322402247537449853321441703694912217444609794449589495938706856228114572025938077409552430105057911256898264824587814167736167642447188670628098364960412813690710011095475152599414187692615297102708382464468579480631847234018531567357770950491513870976847494041572581016631817340302172196380297439903809346591426920773297764942298843268777014967077569074143202454981255090836823280066094954024337172358575636573156988995849667794145484704039954395649489246792121105793724668701659913798926286068274366626775468868262860578871139135434707459844130811949282607885714557449760254614661676841961281581879927003677633590185838536858468067444027556570237257327587553732228535115209762236614746177267434434477035642937849174361729881846590987827067818111872608246500037858133371213684877029416801711521645093683040420153595032349255248482062260150054897741326424086807001818810444461165075241547270431074012926415905316680895645680837312068772464811609510740719645714843112150863230284391904036260922286226262829426952836684814002721480772135436135707448022221304021956078375826480719667766943757800653481575007214942947298462570828655788563542822530677784764324843241681172588395394419160737851889588880291353655083558283537474150166426771041762725634667748815389753935377173270207496902032338621164230548538934556379060653306008482128494614783223412988013257781730093005238247388612988113497538107765948188761561238213418995792059590175511119417066598856873878181108962516108852651733753226053147679029987201320365760179524010752672278499075573982980936336317033017253053953174781899440339785192283131204333364362854999607189907404828155742505198857673092469882853737532473726620624251609727827668793211184161252464403374716715689863606770875438135673426632773887235188111537227798473433606770250861799868784607500102766601698970143400856374656052966054191596918390133480562832133327878441825083192300268671846289801059432329468936127717897550886389004073485621856705088224052009590251868814198308295464305216257185919799288633640815830690054050788640017949420756699763711869534301168503655286129226154172081467252842187021222785430233864415011024800139207932609800403840450393850455466433402108711699677733426367747663708041387239427480948580969604268531604422020213529138901796807057213879220494826376863894745095473112920754727855944318865414454966266789712923461995821227686961633718141069327875135740431376559391653337325447279658359971551035176660068078431580981734349466988815228532274959849714560430432657854482002827276201182825301448495381518750937871235926561738537882207933422612259698410484032970552551586152962676700100968432216559809749434226188853711937865585360968518401003667600436262207883546020436650332625179087696956110820489558733655331397869892617892655364574504733035490198174474513940022361885837996963824638247593123782633614866412322691367812767227634941794441708006916994301953291334782459140049125572728841809609370689247488022914740546730577627587106479702137027220350202150758253472780398170334994560664009650167599069502606036896517463001950546874597594634085135257822184564711088308971601702705332843050517898486232127643065892375150745552732777367491754825870778506735530100206468690661694548106663843651148187513066834744090055421943952268990758516733412205188992325551922466410030516654268135411442260518531622748428401917511360478780546889411314667693602538972773739489796971831212355374552882150652751663280527621034353286655469043613859862669650186961801328327606685263272228516623420940795486508759785781621127483283791287680659722801266808872684799658265914750946052539339053918370224580235208416806919654058184530022017346438068522713062901218243208075229535368798053293601686639584358178272778979274841747305956813404979204546699600406981781760081880662329609847164340008208016824418484358860708930647796225616976075846493141358004889999914670106203614472813505549768029171789289318213212475551782070549303744225779356504525029230967296319791850664261168278265818684132479445312639595067639983626459475591782289254599638893347038189871961113739910311824131140626277640906209451872640821022928911150754856954173277573945399566119106185985225430652996060780847002839335411632595629783214248793657200831875751883501335214890441335264125872607173716827608108113666363408576155942729528912876012084253392876235287424615093027555000100773877548206656290494721856056529504570822359047530464789070001803683088365517894369675566806680254619833916137595303539561151234717069865694851063708914286160342485450033686011135860183354509584490085707381105302352070953182484597833249840226749886347100413336392851607979700087511837089972415666638158467258129707687676131754394389611611560807119936620876707316611240525938966498915482188478981056212848088096582913250866256026971539124541679656683158826802453254129496316400830673976615443441547190524505970863370748241402192533816837964622177867841220224081267774398288778544319862538900785886030129924281729220172796932371087261898425987152375379806913083966890891426156488050153367359118342284710916455860329432073325333307504573415855707197504223211780510178812637828019399856369460566980565313621557962652249995898988378040732016222339661088048620289567075462490481786732415386569690095307380822231604542264955917750726881372045121991813659242299726476056895167351355667848096259760999579697904973658538882642312309355357352512148641622260458907713731654516881268769991467648796517869072958023203685022417114652771427406420370270175055696058635891787873895230301506883385157749750088789850462696194097003258890790191356937113248675282764819252709331567654903416416440193212653051078765578308052991473921358708752773119279520819517120715064347281355281099233618587018062857800676543858703299370662691291474920869650210537998651108816697348361983922854210759791974493921731122040607981209162431784686317712865170834660705751399070784845978847705097865872253776350627844157704742407895897187517610721453873966088322811648598200391135412864361983319566758232589124323608815667233137596893984668649168030658318331347906797684995992661262753281121717253523620048950723995613181162730660838760999297025208171667656591148528629140829022494506270289404934036808699605332518170008673947567471039810873353651885805529309490074019802517845940407280941538535867724809508564013406479277427923040961353876468616473313732170797315719449687611518803781313625837065080983817226092433435715220539400705279039052491835598476207061758137196246718858694577491589289431345418635291092094387454347672571358169362287331521839008864900542258186580386714213415010760604357415305331401818757638865854546078453988801429971006385464189368239882916291817228921253198852476561116688601561236967451138141512820192292674755725490503264834701871703843529532334150696287590542613847772970504515125283696476605756553473280864561797257565255262549146181240392977367292177372340404816979786895782636305559813485389150519315326469390743539599371872841881402710170739093208600510924102319514250058231278661669068607084823523690893965477744713483189434549697094410681449135248467967471571145585254424855306624061787986716946462146088203405916455134869688719380294039933311073550800407046409832480983866686149077206906290485667381659723711800962902608427564941361220574557314904304356954147237888105633546413693669860827601232116831910427380174978654970309317864079601876055515772310170975007932327979312376421449827725056061379066492319170807371660768568525700647573739362233609862262834415325513355387870274351674233073763995716229624544134535275846065198020643404662410232872478777939231564486614351529301250724316438977235886985304706717877230031261450121669679927908598000856452957226876503267898647641850280617572005892956322921424467909250696111264591879241865303035132751248526797711871273150843804416771106146728118057000079191114644541356158243018306858126723803529447747020942043596787498390597028250947379684871164216985470600941752162621425560720382828067000443435575568712019934688558398895971456663723400065502812678258211436746450303897134029512620800884396871324576288054636923889256834977270569356783523586292584579618400467970993992532003011173399775637458490527944516126398568132182136961594998149513758491810657178714792005741047292396091286107106553245084225448029719845345232277847825936182552774875957321347665949193796109045235267651716168413259696908424795880900272233117117864418763123789270369744315466524475339792381647336113636799296422087440729181940418643525032263233481749935099161340051484718304666920640306410114115015902131813509604442348626794979925697040259577713156901704734902219852659499465204694964254825925118248580433160097857375804602104320921164948964367991841018272248142332919518361703158946500758687336686219735431985925952304612200737802732149242804494857004626656804800760198145230560704701349402218539099712620940186850963680487786290505297958042226603760541391328573021711552013484605485247637775132578439518140501106827878960606825228700364216671236682235436420045410672109440320530215625544402630242010412295539584258188990465587774280994102276891709771080603134370492000580504581769284245003279560322937894174409772162461558964966652487021411018013718541448031897000968491130396704950455896198297286627284980759189310451234158522549724754362913092178299856303832658466982556096076728168689796489798424783112670887414704309512709167578725332477122757430876458426525556134884813837252014683621473770172833580036458808047955381268357124371634100606230217789230911369562584467735272325839275403631846944953849080339843471933612911774485887149268119338615624502746965375698231344081136761833151766935362789591547763287071972485533930536709698306978571216287577100744743821659712500469647368293561913817995041657030670194400544895625001496044012886497264862955447480946238304273367277391610249080908155435126432375225573532360548936238714496293852828573228457691303336569456267410967984796091021983405932133714324321049304138640195882876190557158045116729012970700993053055892097502838485263776804815366031717553805449824339096203210810176817324529836258009968929327120737236406687303421308207367283436342691595065722907398293576230200713864029170756016367958804310774057036538939890013442368009071197233887424622114516577948268764052223008757192099304104253168766096334931052954336092963228456076428471332203615707373979811677811444819052936967657105449828746787387003010569061615951145006840342387687757456368376937963087695402696863359320378925531113295980950532365641833344852047285478351986269225549431384211886000199246490630214498993553318548603613797427225478132781950367308833699327299804129610171244097316660707142561429729317367802674293409491388269021840871719074903538248571895625581338240050207617521488719247163902951079043217910135915017345192151551108945688701018594185738504219331799057288098750838771726610286077011654218769024867684926132747596530772495635221174592816957719046614269138544214085637119910294872563593497292197026707225236483453968952985164905346108926159247336087128236203656893950085838857940756516806586761307069017700322191394717915759618838870816112196655409634705583487277057644123230663244460223285787650957583605978970888588112117715497176830711352633266519716937824763026758447767011539908174311874592287966103448895944824534061670011100288467497116611101239321249326989309722930554194517364543639329664735706466262044242067201012827017929502143853318317112052409661155042140642823228518088598021725498445493265292824543100394252128104350548568496643643160762005306908513103450040795452252929706497608312962448980276262314676326546036330751513243240670214405089983570214813087944805167494442145562473764216291914249169638389291382876166558546731969286247869183887682111252884547011761511050695714248647791854707003432438012067140024448690628013825741023239582669993686834217179859656277189389822900083917346201860271768555048205692010115980878078150077069029898522844525596104610762435394807906370093647300055095922374071158661491515500476126043734579387067720371777284624828936302309657739172013208551963738609498876801562601059462066848523692251139319110812224541896533753014537001622636942014215071882945883901224944331040989018273053536643761739231054342520334844897057242984172200433945827726056388136210016996549636189377731914652343983306727719964517610934108276540205221947257300206902008067952149807076505152442843273594305825322719857418025386454655579757505326983159985864866063374173826061736587649983658711707060236084216485203632380803669482695089314829583143285934565559045576796313320709797093457089970398282814121845341792412931233537637289599107326328556661002396578523991596099320900500430915839805929118697124722915865501004289489206206082320581995762145543825597517332857900164445988346679627849771181674536302149220779661280844320089033435466467807424313148276070326413531369292545767391238198043348416674328739785249522661916064249262361886985528687708378802180281901297559315722045345053288035721834333424283619863116949787406811214685424741699431275998704080016946841238072648996305001999222029096573996882671911794535029125235653311645355970735177415778105957474724652995186916914914653695598418740876596733632937246914796924757651241575152466096914169989641440835578658331148588281098137882129232728265863387524753391365116849861190323565318688920934411474587486541531501066382640726641401656720324298993825145922286458690160715728744981883007361417561165497081939635618815927563944929200286661440329644817874226237975586162018288874792437633836989099014394365344968292807055440401623795270288719712151529670014170874622739575347616103406171356506018124883318493487578176606912864736447245219826127260498993539511742614927717320270525984030758986406788793689611509997153383838246843527787479556267452282535869597998557956259802151866960603785048134744879021969326561492199578392772138160123684221898976311448722599216776589593036320930448840662921649205357987378535989270020483411730049084117241998361778829986724181871658892720434531040879646592558257185223009895603788939104740724556144875071229428741843345679150762329421931302984255166474610196047220220535043055223596983966825009713090054121879052182771073481487427523732056282786584361285509593858815282317348027981361503403484649645819113944000868684305014572462786135978204005683249963023406715528089781917655812087059388171533886586589676144450606223972640438753195010019907096429413796974336294272367068058004794449215986312181068427183897311487523047034332060698106011795012523375614795517398913542530771298606975799629762622671300184082190980502400686616850229515717150519090353270965837692851537640578640813842279313505129836402511208101984431598827733623771840142794516175670315067528504820757313639085719797780140590695943669348272655025138075343557276247725046219441438853983216476695230715115272860369127352746587691322512001730201380404528514773641885088731536593397062868086636452919461372510655164941425063257244029950580047527591026160330341779934865725370127729198704491046219873966963658052587355726217350726013435896963887325206316212816186189126463923362928735563712562586241392218387284257444419567013406284063531891396809735143573116932393258582074648549103526655598819433958237209464444658239810741205723664206376098204324900028117663375660200643253493254339819165692254584953496352624301720661183814003294139646625797899653969641694594105293191169728642377993015872064324320537821300797683315743536335462174850726631738837896743959542758890651973168785038671763604914069487660033520233344027357076708773025877778634528600132280126912437959779144487319729244887971311998381585314300572846424728540444146704834403924657011406660924724923010194897218895198975109693281160010676475478255965255711020556262051819100649509610895977696642999252183988588557997891388572496996063086296621102980698108947276975979440091677682532353980709764661843713579946100933162970026761393477389763854882502852364304933848942685278786984916122953944450469395656769136540207675436111213893023807628874365066292413677963487570356346061086246406466392403722527010948512778318280290750738185198609631584550471629988984317778912149696754620999173328286252133973686721149388413342094394856397671998687006464415520880375508287890190876900104856724018436081602159331544295822111365473130938799127806537021581855176036351697522136054310878587667882957787195758529669486810311366691558877666659461729784419784606603644407498312218937022270461675330071585470553990044797017984190246526560435671895733466496329533508427567702525672712136718518377882518227477592992889501985321712553884251072682884222668131711537268882182870800961980995874261052075643532152751383383292872073394142892447983386413863183265442059443098849744920742713069369607734361912685099345312112392826068301749300780949061873319430771289064038607094118520354161503719574343350348934110163222430894115495295122367022590139803273544210398762087514809041658835610878727762822248483945714596673316159677466546768743504024518739991540358593748354952195845100756603963594414228568164029734913472482516711581047826829346310873391789722203015815201126966060147301546578211951754271429865248846602436025226272036483336003512534059141611825819473595295925866132320069985915527403059829597259025257031560265485190113376648897204282983312594050122242102513211874384345756082749603251509503526717584144970956636172038879364435860435480842680053338775083160923242906821105538187348142672314406045046481066593721846438708718648459665522264247374181165677422521522763534683334630166846143603988715510554453695459225928676410311527816091021006359941098997593648416851103390811839636559133216277792061787778272427395923166006250405845611824007012976838709884088988098193750620010703042851721415465619293729868672644011466895445286367052504209736246929540382382579335170319635179407957556617164614506067041627047916086852552958229600591304515277165806923331422732738513236852514303485106992421706649515867578067463848523867376700898465649665384647973548494423602217782573479721525163368063859827608925606139218051401464432111732285164986434521386257341492248022220220016638502631618456211692073303394133560742199370281967047805886412356993136830468399849841621254561308018810151101167466843400798883541845869461481555207976891164389310243051552128635997305479431264797298925853493475721136397963242425621952513783837035193590791104236688960681830458167477228829983967973287709420790278695241453866983672777576030848727975246493273015339727513437736620698489581389631123707692583880846657407044165784989499965765173132639423409688786611066121902942908761268730798987095266484727471559888242408405324923778893249042851132381566601060076658677044926400670472425164280574209599244597711585840276744644438450810587121053329136664613637199020398369467206480019735053407692118945640342423994928984168763776277752137476321844185654219038484072663406586156803432036915008381335863227696862693255958983298650702635194411857470482374992865435278294776383468941902728585817262593883275377883023918453740470053979937206314150706630168279323514000787239366080392314657097148124266741308424334824679272589154381884330725251875055121822571747889801196011277559506008837601684756112227022534672498111932249994932121758972649030703343427359204850249860583119509069360946039653208720527399482220530852593350465890274256663318606731410776157166241737298402242250906008840984485974588242180757589123206517243422857307742698662978794422586104110164523320098611182464046520446943906087220285978798944552550613949405535331637602475005339997554376987610844599428949979220588471409008722311407881248823880795992115155466981991935764260811504075812198755768371511036322739939709912868424452411963540027461742830807444227550684226172800478528097071245527246597282983228108398565207517193057177976229859110366282085520363296577608111894816470987733037790158567771238784600390537607562182510102041302002625963868502210324166614171344668437480035160560674185472247557958406160797308304044547956999362851378815974099207350931997852006811481369847059760241105910309838878517150274613403272410284865716688565218774811568902358153840976650047519549384315996317157185665540706406076841591783079474532979299632737997364300900516219491209877957008350118112726810361562973679754675269174717853568485723739379420015008127084279201880227235023466868660565506858497573126750014519208009878203664799729542388963779148298247293571838511004883402917638488154688708516290084510954634414000514478018502853941017395266544017401846439168302894076476661445869963814175932499863391213886938550556969991368242509419759952375195744626796712839676500965736725992211839959989525323852790789854304945157060850600802430582417198387988021304504874538601526219292564203410616642911371605601669961552035145673240277013009088075513090881394193220983542705805285575088261477881954291367778544892391515076913087247687969136805900384178781445066268039799414254351842722077822522372038515354834095115282545271730168944652196683111070092098123652108831789051743754994343604149964591461580858781742326099474361874097473316361050539716379161215245345396881577340276565327560074293272998759606014510648646264062307424657944061098907191437256008530318817449287951668435300903680788646561337997170361880990180706696772625949955716923439488964744706959277305313016292482744837691788373746423828055998614203945489766059602017263096558707241537046598575041452066365705577254984862886172819615189859586784510503521672076490548483369801460010693311198559380141872696676107428903010096288789977275986998718203445734027927742937090279970177176620542037353448707082042252745074085211328526752888962513267625482341186105520282728289748834719807400262205337270435391970193598173664436586626478526101934429148340245887233650051310502165539990518401915800744047165152286207529664559989990736481975643402163165660888544953183475828934740686597649248298169717937880181769302254848562699474300242019604065350302190317834699232876710274722051849152718894830393552486610868175106585171063329882262094294364714607512403659406811870980741806928905897418353759473947490258943935821197633068835304064048033514874035713088325212580313724400070961804865511722908904471771842423862296323759863299361594809418307198174598512867446116983917460509185368816082449558330737613413835665114880945956966073427111430683709370368211920063399776563611121626273743700424461856537052732695204832599346741563898411171088938031189710562477002999587382115250923988599162079910260171461781950037772712258730593377812780100149189033201901319438048545846189836643323196453171799258408952460998627022822566281013982818230585991668211314988509421554467580208913781439829722363109695970008759795728245546495987984637593911808451441343007897304227991417238676444931655776492387637975684756760628975047940459896403555228940079250360711359924544677251068063592787436672589171894297315740258666638979929155805812186470420464725214057208583652044178164867944219088536228148801757646532656710773529481482564161687410099474099834480292580835212375678387478348830255979703650710644473871364014013200060380383179095684143514422934873063210479902176859450125578579300820742399469197603273910765257241304439238382671731699485112768266389210097128074065385474450310869410514020452711334351777794198887700971821902412171236754113125110266957571589028566500179747241528238870979572973146178520103120326784164824112650612531120287314109114394145058267046669500370186310029127313131995541133507581441460151511797153733785621645107616064447995804249751354000469496683009541892851868685140221206355619862869413537383898132551086962563870297916184079829571614616750356156263319575118810279612322608260575721729259378605809786307795841730290500285395425875806409114298435598251332932120093312562664281456765978265575117763881099082370394816428764965800282691742188308901517749184428681182211747426382950464783077427454155541134477005466242766855455940813324609762511747345308220542713415819360445163196546507383329647074072839857391481725144867162625970529340689697630176527496110218855439045751591992555579486308665358219372607855644217293919139952617839921788862286382542707558523347831757198317427406238102205529859370523212833687104831440328131559302470138632586180721469684376180632021495718990625586835232554509381361578562987082043337353316853497993447145975063437995056303923245401129298560157376431654273099043858286112124357694669618206137859595489933665012944006180036508430460519675625177296107288504668710473166644562524562188017268141914135062243891954337436497341096024775517236863063718043832934296996279167271478262859166406302832061091429366212728748198467222898900286500805016799474761882372077357109205829241375818276210335001456743905474007362545175873610366166964383142288294664745039238093223704747256474229898775961252807152931199050405505454359264025203745347787067018716032382411711037040200982584971553861790050529071091187491926061035325970001285211370813569506174022913435018863557428553224391417062762625343512792436794389186708009603765749622160596352973163060682634774694119215759252667146432040200777595753682516573259352857521471560896753068142149365727483016195320020101643699198286534387751694413399614300604778987817541274588478542419460567685223851955210539432123607601182773953780610271074316155810585926276041944852705863678040276983795765160662247574423844926018945123433642675173593562986443932901181874440562398193137521943934740448182446808076334088139947370703671725673474975279447784202002697429869741753718627786446581457979663506874721314226909486457251338795147811453541023998957353205482061821479196857906321664541223326559386607729491267788637967070494348278698010276942105617653731674991022622978095417807037478457347455539711062493624266542106593826377376568394419208663472225261456420608673487494005159127451736557271412410666070330145899397162286204291878243206549465413399600992612965917537865143055474991323333268978372870668637413827011969272667438204700779588247274216628151442867545079337633923214615671944193414063615115209158630570002458607446830257699651063935968375467101573353298718935202373473366385015126609718268216515611456441707126563869505952741888679831338704059044391331509137849857733671393636911123509292552969634825282599779127156456585669114074634806002639417043081099984806890134045932426085619946563266909033854002080785846258208629683563491472157995706890442742332094096994784904963081244114677047215081020223378352688203217458427635764325795678671935964520122786012805900639224885702696103811277666984035556422414139175725461885396970352081468675755267512300689556390492595094988499708957743015743042855089494313136850802824630828856082282261170587480771634571679788972785364739841851628873036351950670886105088322420538887362028715732455344056388233274591965169705973542747468165995582338717008658603676972571297173031001151344307661913429851966299384912424750864486758066406278743399628162085573315468968889248891257501607139242830371358991180847878947010262565171054863195618482547992446691140369831385026490071965201521058253311418624865609662311280588562385430755534170421486338619162502444063950325605148854521351959830178134820901644978432392714898323384635524262835140087233206072361223080825656548567189154885031189266141396369743725108378292114794185699423267938493732119363170462145009115685692912244634904235154693765619306018488438947042826051185936652165321993282846104526802902559900598568807836799305993762916164311780293669851611214767463178458855437758248801151411297638057958385746330903550268027472687627548839536058392268618179294274963078382820797028623658755449278709414230476075833406557394403500957193126164251215469386331744542932896933935742454911936060942176176968075761368435276277815027249169078521199424800003967204759453551467001530235292521589870637736298842910015984267560656226758067087840704047465502162437951375018146640543643550924959652145752517140090598675009157730107181405041388595011538494549889057158556303118662595567787832776223304538541636052977747527376951626920127831705375884687038288254812998322608293654420689963165438881172838396558792964087240819803491797493135951296389105786853516537062176643287232783596891657955164105072459250248053555202947425328608243123775347481866257689557884256757777951874477294058188504288619019101274477200375947214421579872545416176746926067844167176155363896927978630250007218598728180322936986119021342153029045251624206425672068535806819812509784037009974865823907532562489598711507088629882860358083110877922538976591050618224293225850890992907322762664225665266359260413501062489982465775572406233934191845916278380721091109468857448300969152644317018173939206643265616008817793972547417472952464346142216411070270958101895108674077723973870479534568165820207378974885401860982689159839781374989657260596893840771537093247640361762194521093368507234763220609725699802479767589471417599630781308527897318811103818057952457140980680980146202415677711372311106342610428027824126642442776662477087747011092593719200543183472199563277170369227154755550691603330427257278321065429401866770501674006688411322540979810044141108178046580713762523753872352814801845160953052146984991120778409390462203183217038877488838499854776775210995010778774930414786623915748127173651499856802996445554336321343879123233720592518651785902945125108971566340223558284767615064304335821690236635762865383380951000924605862059136528969231744250030554756774174120320851589520249871226906097776842195950935159374619666544773979340549108542941658407157258150231195975942290599658485063147471879963327279146145947511537939773316794883200250911859065632818278481308171281185112216980675720165942487775875631337351919126655036969385993128067364357196563589512324083651536780564337828011489351193701050904814468199555847045319553336735293279978549507697888447853612430240719822309367972384881773837149619618422518875577171757001434940405109105028920977401908408157670896002038857927232221076038683604852304026757411855018037995375406914847486080804448850294382978188571073654976048585024068410194780814144697139535986894763248634217233226598433233269664312793156934149672527351332921567797457441560055750310683983567064817204735729030768614585655775400017003692055480190723564167660304248132511438032323242751497303619841121956607394321804030307726044258063833260794244091568358026893932608458265068684524099088322569357104238185163588359239038305072801057986032760301408311020899197888977088198653659153170421821260207568542821213300884886949322136226541639571947594384752593750749494993950816553935367278967266442375439643317759420884379309827191537598386557129341328116420513157279713337639019442859142781387966740580715417497428546927442064643290899924774733559180662680143445373766894322698368169624300384512205453585308228009823024407450744131120284723936725134874069008771177982903809856200907867365054749278284509924729857979852252824860213572112864170853913261981115655540722562834018519118863734435221641157815421661081151926276515978759086019447580523412138076233961318740466683944020209082996517954373154338252188091530976010059482089015707649728484144248007636103405893799365829412751961765396132528601844921909161236740655676540223473954226133171479316941064531613731318085258153686679034885947784404041463284278809952648514663213503475694858186673256634549650494582490153125218093855654563428024271879617121275200250409437379589993206657875066937220753565382277193922493448503595525819344059059616985843849506155711755468637925712452851403766289314316965084581547516389355436088599247450238749416749650563668583633187695094422715704281560941869374362007180028042754158586009023956118099032019946173620811310654832511691187248961040903393658643348049722734169811360850894711501089613725537940405482339911235666638805624302899039650664407397269723941682906725234509908095004622237569619711811544597163192519809769652722615718581985957236891609959709998511560462985618451010731592865125817127093955706152721392688926763728477927140606265987782000031770922727150586393707777002983687114754751251381066108852027778413474638273165887693714644123229045568766412157286600268350219840872889899910013404509081553092429332332324156868137609218492153703774705435364049017998068708379356450022855659946592887085411410580484527974047572566471693616787785565895461368098399614991742498600565274712977411236170876199438895808174671285380947705635075576901219159381600716962776860128298045514087465705104864686718420785969185109926125162039153095561249771988997395749070927662918131558280135829768264349659349074815917826731861481116704122231939710235963565926796355474917818377833666560202761442801807030597774620240356677367403904396551675489879975547254553831094863434010558045076587609005939582988548861141101772473916923115563681781746799485821771300185730238074227019901176111189462746959097345617566569005941603770073550155622927197131958670434772964877035231250908663856232408380470303360783449737072138002841552652964334740160988740576396091610893537700143338143301314408284861646848729592300062131065140562593028749410628187406862089870581149263338023647722254783207332686762135982431217498372740758413016449143795029791957954474406494133936778435392344480992541917778260990514150696047010885184207525531636736548298484698325299277873032092363345503410223985847949019363775307574954617018742487280165586171157244249079095841436725281550831539035724743157152882360595740368954329631279702748734782637853037812192502743543109822780992291883453423620302680827068058166213365270328870441779925477610899026546644452257771725536869254081264254595085001211068143972583539179258124198101369688580031422375041114343998185233876131077500393949528837217094382056740722659773687646356656862095334457380703670488293210386323534956662570491484086667067262534280413508279944367034110333040279460695682832523422791783119757122037776714227954429994461315234163649889306390715419017922350238294109065541242998983328512907179017174153679242392286098743992584219262702540869318087557942577019910479327443598540589692583701338717504871798223527580095988052780538724368361862606397558327186577918091659010339313768225792018782654140480330585132679239027741799082185250631241615304768702171611368514901455854510984256936487608450978214655021494273184257972491383062981183803683487540203552933408591849511831574592512488622733334156871642642358389607787823375998946356321577828995825571527853702506863766942445215139278570024442518351462217617552135084428238541063399286129412703915139593996076228630980382119221260207993475074646066400596371807130256577936712874997549405719484117679325502509530538018211476317416355086573176295169456483379913992148280807552157068447325371380054058669240910532217000624977675131992578834669912838932320345237566874795424924819737492155456386163824081059748522636450387454003572082488168097761049788443697777548413832887921731047733243251917496712243106176449234463786767850523178592671163224975793795078297862130671501722339437558550198533182449402199337269675544578809075618584986981461063743427318538978641065706359477777444013211863919250214773531692014196962215208731682286099970681588217616757635064037676963144560803368304828316682853276009146542600593765260698224297911784351682356312351845287666223722767886135257947939384956379128208723955747923455971818594495795786189875801721798672659798625541806553412135987410939911488656245354828623725912150136462586687630146079761326863285719250626279033692551117524492767300203895715392311289041880440700096405491486312423379424907018163639067322237422821509733099398535796421881690328610878869949663223907502629563893440491780658065704281427182239604507216489817680889800515687433652036605957751878688142375672665857488211747390211594152981676195778584624591535744114986812355348588278128223712184984709434251454422192808466076404004494632255558796219299666555232974420812340489003976619351713200720469736914915217255874112721097067413874667868206754717589273793561126540672488581555069402553519155998100164980923656646818899799016026290400836521578558673502402248937643957109697007994813850698092510560732838840591149787335871691325895828208939136196990804780072681965951754130639842106507306168641639569347325532827722758603758298946120085204306735663949325276710803965763909927239918508124403431655875831061860467584673071761902961940071717266065639313403966821607598884695591622983105213500832047998160984853733641727344318686539697282993571461099652619059675704887911612688480778981868181720284855162226307120033117902385662602839586554475596144268095310928378076737332389769036303329722381806894563241986516236428654393757403427148329682971229182556510009207021832980019943111804998318134740168503144199104022631587766070046669312149586793641253525186932415186346109962083358490952914269935492597395712909973330673187438214963192970148066248157946010547682390447757205824435951165046165405587139992755525702822264447568362471228357910510621795722656654949967257502718555728115941444015402082534089725655093589500671044402252299529302005839642805543215564803295068385407655946383188631085868505276758864169680551471024021454967844933121525129329854708733869380055899712714501892658300894600845779861111254190505365086673132878727608587303463271840306866503399120465141408917317356116766749207943437443828381300347778644552666806473341203975669841319476915159750536697505208037143052966610327572376730007461833334460694842656576992822785781011523457188910218156970217086782777549003634645035290210951838676466022684196075950714826343639187479176911640870263980505334205905264153364159146340209092227395949890321701509318087034043131882236878877536640248637630265616809111904000984222280653830620445029245887191317922946597262654884568464667375868526136540910582593509131093006060093788944879304529668700941885618960097237765145698289889837492777361379928674605382239679592211591153310401340730060247472088683435925550826772119112531657998787137929613646494398039809210109275366361068263881680571630938348156125109353486582991992135865423756831256426496345598086334088729710605565041914268280353770311681769096752904966137615930040784305179715323977435186477828984449304902509124895670299111439167003161141815341213588123531384152855986816627703471498494325079872802222726396212740417466004326046296974293784089047360889619895448558196580960846933338359779473829401966071429048878968339925294169533042756929095691248741920600462693575769442821974993150526166585517426529292344186115150592068082371075923382429389093774921133507186298511915996090876967067976484832399820664913882302606382552704184657344866126211782657763903547430247708414814713933149547616815508495839952512451287298669569877768465738854243891067481526564154019062972242368767841083123407693235960513858301011984154175653187908891151788874848356613075836696080847478843785565847021594947512705208450603966034605406021741755038320372572278720901150943197244260898990005657153536622246925550144601676532427577841204384588379796824574517318934320221924386640808955050267359373892654725323364347427710959589999736037489133692867829812134566972514272225973109445400402603931088037781163354953558492909081013414077619016779189463106134713433434057045212811854155394495662547781553739307053413269233009650352774352248725980022468070408151120777624706155244657665839358797873383065782798261778866445039256017371548203669408032636949301976232133459933329878953833457480347342482015791009708498733231580325781269741072551518582297336524138662067175307498190615371052146403269349678038937014338168590374445265866421011020423663685393828060403910899729394405784304502070319278492462252005141982935313611195766993839859918150362704799223328878265845864249179885472283856294451964796013361673605280816276096753581656752356907074543154706083446443189248416135071442630976212379937673941392336629999371658352331610749993756537541821243965918290726781499870550146780824742181215796161568708230277959265455286534366943687375855744551470906969713020881980577188811969789337851233318522464894726001212278272116530799757794146624836465912697769395098640794259949424303916742407302089397354735562442313299775826058284138415588716253740430728537587752735070248998794581914649751268802946155027051219380623561692450546188909799239983629884241740645530408907520792251562126429134922158917445037972171440050097736978204440919129938957767495460350772579536315142253821556200814916742989562405170843316377817879003013692365045459278209620910864220433004172803690556017737962297656900932620754544630202418837214409882036290364670756823455052266917286259759759189222508870833730962723758005557742612789948598170113810255255115413967925102965635041417898810079651024243831672659464388316996470772945347258590151609574893712391275403868926213437122619973677651122746371091864192921332523683661987332951358383348670407062191441561781840110257848375164743279518676170047461829485658702763462819452691064660612246221222129787465350909043754040434379335440080275263069028035201211474881907925189720137001533188304750512558356244605540345700559323301133758776353350514523915105704027656107910889314385441156718369363235461717013056914476748444306951171987130890052148031412280677157958797559461207540874104925714919292062647489422349633713560265013783214002053275988247674355557407504079381566840613480551104194838332018041963048236602478315061957793470215153181408256746416140326406652802184662876890968769132318922705754796563634576848066485960588535329007529336123014836086035860432089503843913432587416001562488362720883813882007642309800269622075556161180646956357941793174978597768403545794163536433141374600589556296089614288000989520246444850197594556986997862433776208810965565027236403490999865393440125299508807702345301788716924294677850897763120815989150289165496749863725695354789690987647005536684589631202927282986823200507403026180383777815131904745249750063912773689573209874106548149042196407181243304578001379750808406060683940256177813556298289428663434976195516664445570061493584190784878723132639478314786618326010606903505098673188558795718071794366378388517347220108534925187280128094778445784148742462644179656194563395398109818551286203677427250223614598673887043647931925573973661178227378138787342523934677537699607012019786615932821328622888117123332002922832409693664864744560584529069117294943238907036909372768461845216702591134668063499126079104618637651269258817522786751657304041351778747856239375212177715343095661987156693471021607083556632763695576362836924192034261617742341909321996346877373707452427249370719513021761770407122415774238614278714180144811385442686010509587400351348744200371338345728818805900593036428393971674683284295465367075772058087833787516419247320572189154781803604606287032232979887522066702495846015423852308461103975275265966444779403082344157888501669676980051158526579500088191439464521885303663903625581583671490333504524478656965457785043603175700689861219304284909530634256134903314760030475798002420297988249662824833795450371941302804066586554611736485051752445710934365890274787812327113048550145901977130308372122942002296976568911271001865010903187716599878283597542698125120493363705394922405607825307972996216311937793595957248513531926665877502825690616927884842354763629624287470817997639918954483321091264897364089412131756403520134153374550372425773622199549098129017875201728356235033864751614920078161856611858627612719543721344899265322262597272986070883621788308964344403819075374283857623137786616606502567519637408742525999202887571828848932915951221420013028910144649281160804401706395529565430886749246414974358006744112977806973306152009280225819994531348972973929391786409606934392441807241125015228808005836228466441384602275653811371333413996476776894984980035536024703500531118080215561375976322828911844354217101137489594909081185809525942284640027617591548975418805543930557781977372345653671480745175141858807378463522243777480846664928298530864821253794241353320273588092024273469069941107237884401522526039758073770813172824730030798515487886650805112174317326102932794050028302912002018531279682383788706268901112952787244256040478458672502898641673526066747768548922388218168846082424393641230783502249800942141039195849832169107525300629284493773672159114271465420205171770183662435956585907327594923548399733760822673391096957705581905164476652034698361485770802773245210723112091689959352716926799141917381623878830465006385342095025165199766574358655188514481197087108948229901579098652114469162705518495238147428139812712081169438092422380035411816003743002160294601198392031066536962450695572620145110294673135394377128851786163867995758835567302849178154799866744625692787361018844262828997560629416095252651753125799680764786575450588776196578459958072026105594374284704767498341378522119256371630803726872848026263552678371045659078395636717330832497935849851656527322518629204015854862377871819098222606341971137207466040600208800409039431952187986726712508609379698182085197807851265825957552122462769265090228975042211835184914870902831381990395448098432743562895617070622707167136281350936272895178762157668840869644802017614961441382167312485612002549235298783745894728374575131019225308812166905994259714138372021214596381266058565656796784730286085541195480419703516369410884713174725023621427075195100956217757743003789605395675006594276384293683986329725413833046588080605742681562851121431860397539086836192915285721666101565649790175659739438132939788689026141736695090314031307666829542980101762353361304263104157656299470582472971517952602823166629262046923204568127055824558948964107024165047959319190157758458461117297835562206150038001281205671767427356069566639446728123030716584006640703388166652742814802209716538015431714964564686562664395511340137305111565902477846449709037959916581063978348274454021768468380901717949819825731105102402072495911531294302158064818822756304255900011659039888837497520822416004704629843599292394824371722721892984441592139130787224855706841567909730741358743680079482704667588322321667917813394637174002537266500110817463537851544667313427168849489698384810488228055665189803084452113308856235267762041535896904303123352569572184551828810616895743299057659862241961689818697729700486538091887977533767662744401939533949168509180265556404010516176381801994926417170717663172673329332946643098186969633058674894365079096360327949323791852056403781800435910152861264300823763935083878523545980652913610393254201765822622511009950856376193302944862159423460768403527130227431636065473099963345857492105293658947860222219698272032313872334436636710120183541909991607955763818278510025370792339343209056927776678811214656166009600750277720948866095453613638267210127690162350049416541985812117180178871233077426205267676715046450047297708332726570543883824329166111706878499807586044574926460255032713198209777716241053700253079189504218609430699967403298588426323609978131271089941566713129543105680235587449518037502342490959541877350231603286652794695141230554136770771441903067991547774584963984163832581323580661033421581877634523509589174600869628291229843084059345189537035671620557773136719389232114678310802800898214321830626515592571948503182669298803344411491632135740677644664563738925656889238198253832318575701105481107701457482029276298845322257736022818714579254566100209394310354512526770977551544093974769131783351394681820083877264784271907160021795481270380938052379621382773387678947592536824326905621516549542398706510567987602569585274227179997364253449098476379058631424553166651721178149906182102921909900062729485656326136840513273559958837453621059848998431910880543593416236026064021639066087082269890536519271632655557225775822606992932563457665139518550711992848813106758245600863011176075854910020002987305713884280816400666191538531131057961518444288821697013583493039231482506721691848378438930483584991423512162340087462956660489324917985491083284426090453431049074321557892011018962228940709466579983294532493870941336730730812194153812144435550649615438506468470249547223353514715384856585402053870045816783674160510211076897334120095504217625274100746871340708832008609543630133027538857678680582570632022348889553823729508250672003156666138243106744799644364372726880044788743359838397880896375824980494148129432310864995121172166880441652208880496768722131310881581028853242860051860145320123860430883658635440614111887523314622667776944706823181308993782893586664176954936462343815962851635511461167569540900956623872093530089702082766439219926175320598498106376206161077973475983421585227959500482322114674694723912204263087774875739459297368996538878699013769894369365536283808261064928935944164765505474631399304755839350943047771656094995330622657841032918195793278271277313860323583394520626154359121504706164529739591306834702225853261559689864490336562998733869254360241826293592173773576458218459637678191181337347553050901975313273957779253649225130178936283727575145810732347794518015175741846545710691788489235200692572758297913132900448834408698167136011861327727250582395328566808356583056334497514434661611003792767927672469283376329542068312397812634191463867274586243678545410247123716680974632993705501024604998427065080592396578109883876421271791728049918243916204926282923314507403023951326790241863887947943850821645452765240941710819478380743185471747310205837184223705364124330388438556017176270941370577956150221415279942604611918354154279541766063384075900171640808454044371976200539491255271406365029649259727006667319250991618565872161569080213556800698447123987051419400975142433699331136555235577366708068147747445204904384506064844426769038396232472737005523991115932628629109340911256265563085391809429420076123680800148997248281596317493382762419604171572593193880930194344041619508314593122426955042519861116965992496439896402187896520746333424186969063300178534843080171275398487032299521833189111217829616240398012905138547438231549578317181652707294195740353738754099138565190361961870595508605690360805434668263587718940576385991414353413129617228925781249681837450205276822721856328486165946936096765310045133293884757232122232044726002907820353921262584293665841757085726765734664770387363356379001412020712596265131741423863816023889426930874695563214479859725804524153470506958795253445469578412968471975194407581293813146169592998131012785509587238625808093148131034540471248058997368310481894507860853931870737998773925761134251973336491000912144306520129562994586545368018323596321575627500338646853578610964907855842702078771336288660859784456356665171012503850867410542348340799656702630083455047341193812811858374288990137440956319840703358957870353973842313513818148972317401268777112571852621287472015835498175044745877371898685629294023779452429008945945112212653142056341004190250978249140496198817278501835365072097468584907083279333785167669587231468948082201413296311192872617254912965783517693497630777047735420065532475519098054503465752130373728890802529946276224085918939370763356644892970163076506620570660417562724758318496965097382086820890839416742404375702065725180732932928631694770210861754232503786403291940570473306204948920252788746093892835282909498621698205853910359693181130051797207288557111213584255118805522091672521775489651530696434807294683198752394380164671992815563582937079841896803901509207684848994695578323725871896217326151620979417844319335231371807953739242063158125322624427805758061363785053181115580352816318511154181593941262408622863359508340326044939310236973004391634992551680527858070831900833121272848254717005445517380875103710724010994020630385173641491118821327419622974951371000671222553618288177151972239988117030222313421611192841973378755178502444171586010740212865218272094113476128439572060928517614135403997440721668278836115197440343442352547506534101014690751292365005123899548728517592595002492476731756306248173500134515229344416728430123372587253658991584180414347394857891386748332941803095168292417028746096609337984196597984122539578253242934115864863036654743943352279224037594570791467367283074247642851090483829747763715043166176345392219532959318416182621735310470492592441418611847390921236616075004046628438805050667229132351749579258039995106563489553089075681742806525185201822028849868736118247083869504527759498300959503807043174414538776797242661318181966949654533486115668603197994119864771290079615298442856178035149547196909250852493977622237600178742767772878299500590472729543539098497077181622743651076444317690361959015967830358712970460916426881284080693581141089169933661023761023027317710162141535815259906403323019756067774115568451422612258698690676521210984795951386345369803446893158865888969813518757199795317833962667223560142099607248346273883409940913553715539531499667455696480634298957544568088951693261509971303837069268609769150221148430433627326794245634000237852250560479827669259283839823361578346867229524607649811384715220271137738721102422630846749657583355625694420886818383200948352443365805366497213720396372061068554444730571137863720426902011312266136137808153517888485966504335712571821389452818395478094411958471246561424622248123555609016459613544504058036532768919195691824926347208846205628488388772591006177704822666422934342597099112882529419920026705786942333774339438591954569763935342661772973993482689130932412720211746281045663088590790239131265969677843006453822462145909192324727797278336059098793084488094727055237842736118884989124356260401859343692296619902363808402752722341943115921614725634124043823775795499395990083971224849165320264821813872922281744662329596973037816234416623616497348677288016498670938929254837473958613365536403594277872113738648137137848805790922200302867459014718051010385647668002404879687961268285540633701329982137159631956779056389740389930072513411400590461862793380617946868269018847055970232131250341850116504370289979493762918769448305219085515703440287714781926308664459267003398808470519089871940274240830485428429388266548825069506984358140284857434166292656130489562004614843121010129023788342348291588345419188010400458025637810876826468940506708187916140127411089690735192792713147761913155983105818455194187135153077544040161329299517360673409794035134071540539768752227481858378390972345121976638319304537770838295006826571516278689501313943623258114139930381202383699138204259123162613666444899645653051986483723469420164412534048109345191879396420327367395075121895107682182316101889256429701966889929331256849031209163232538321754946435439326542641924129757116267607943972004313820557804539567546186086346397312179268087197133141812253264762489801364336385430157923320612370370299146384836551614885265080717936287583734296105209703551737143814166556011260364972078295936793310122576183335255596370114343811480153601859614698356801158095001369592916241149599149918399497433770792674872606245520301519142248358762193523520266444289188470544756765722673501486364926271639557375839262833746970858654946573599708691401442232496514272004150329297221379328295306175150462938022695228825797779372716588866979673177199949698920929031933223638855441797040618568052479447378743778752213245170159906198660240313703488081513290063764046155886191097494572730729038032444410235906187071181034786554592516397723817290711249987307134241475601695830765448234202341590851206057153102416863201259957281202611180503311137822413643897132425740337215140295031076556000321420719500345318184278420919601046488512515143228751510855336148610756024213528270660702800182133782428100170902856447028138597243450959753195404330939895201821098336982604799352470898171742783578979634768437173656641285421059561763672829208513989966225284448966599130025733426741471473897478755172365971513194118771098731278974387725711335539379151450785206797513182530148602273530029344541640539148201550955335129613454854311758478110210888765440537141476584863015741732105454032096116266075388726924273369947679949245787956521930926986140669996108829199925071300808492154838050926259584193377939175481417749521335670758060884946318454655471009682952211217726720549084741813908819976301781093616325610846260235225096276462521496876249684880303278478687456212155812940862402464311131059765594946947105485509464389839991412600614947631975448360515764323654264840359182773417550747423710062720606228513036188295901281339351079726979083227813630941547813394151344777318747520630106182670583144563115649208421601083224437673649794459372674259989595156555476039513602870913966895855677764609783019803430221648642711290111111494382749651453020972758309946777460987052413492629976637602587990174860894996474274795565791506968661166248394235317816997000504389760082749711668155209920439693708488901481364591213245831492600395725930000188994499326104414146751705479820540229766233627654026740350600642274340851369618750559470227097200529437436130287712794874482209165038519032585316588365721526455870831693788985038600251666296381648217472902917873332582227287144268052158872932056249803353162278559169726357910981709523452972234237800413957395341914671864385259572654268427419091958217615772652727193535615365334476011565330217079531931106233959650634476463444630989270361023720536315129057800215350548397555421788729689437316952345646777639937244785153117245683022263357733542410952730781440559549927902087275922899714867498144750312901047019614767560187077423515244629216317871990917091848141892909087818425772896160039434759091016587240725270893182935210304287016662788358336251703326725377096576750227764788519000268495389908447725559725636364203959691279367500058252704691201478985326580416341870957312672802787738723445074447922742099460749829935785206476541456830573361753115468348892705618898969795006668299180218031718771056496107794579713545752484137008137796264277130422216282471614459692260954023350149436509613601021091003243673479604013458841751344221022656849416163838637443332805394638232853835539011881039693535106347492209802050655834092147720198842212315421221794796964027486495188005037941301236541260854669584246907927772163545398807366915933548951738959141255601458291648537649843908229135295075010725759083243052331168605569833095702867977815837464643767141700279492007928412353352548001448245870788206538937012259254684022853877037430223883995866902396291121455816166707025161343262645293082101909508170811807560667748884044484283898836232193934250186839430763916439745823609022451133578290910171041628971707139407882135829302247161761810147150789384740659076804805088668867001906442078799617948415907067804995282752755165330536848407269622605296508262512134458741195144721144699713153019778839823298189299171410034011613087213940623271735788888601583060447233815816409411936902988562852515463150202368745071568253864943629798786931163628398147577132292874476363067806260565376403613745274733579972737578161765972254816126960784709008941837479445908784031864697827918076860640886375548299304433266704029720891185535358183902947452728628554172708706393694703155108850222538247442321910374046624416236721338408096769392996642332466587566628836952645010768472710934547060681367829437461453335357999608850743146981662014451231733608417154059467291663315078792563291564411813161330697185477766287921153687776551578597084301038026011266101318459272086135913650699419380918124088150017510266723800805908220143258538222667356643587213584110254169791080587271781264801837333913383020058771872083803730730303919844391228497320990135002632701330264166347803438650635318163189210430004540890489467596181058591488787868363375097858165898944717681760892139486240776363544619043524576293153034402092537493301807062786202364933616785571309467985696748819097482195840892540335850937388834044817816617317023251071593206864109145657968272208987357884221370349732069007846727209130159095218420464205496468982365250478402391431115014223461142394773512006829495918915484598817169026088581485816871256475222468892782691706826862873825498342789260070622907893222107320302850449969219900126739265977565946102098211441698535051218927516693724350320913849319966724200723823262462506509414167543324558656593177784899785279959190662536453036872146504342694004384229742064404739803825575556168955423831350617605108486563534866530188097026764906814539368511982246411487577043494609186116931503759645962732017486943367612203627991355588153963055339117884677252493953569403212095975992588395873747537821381144951066242304003726563090596662287448391474158465364572333596954494824141217923154598138280876588700077511212798606682747287867857843619279765416960491970523548870792567988832708346622359925472562500863041889000100992536567045779867471190959128683582268272364656081990535763431252610266814783421493894724679404272110604777892508654886597722928779564454066140020857817821907560503224501167068332169535552164375254686805257926945300853624722741437935182343052998168663525448463139084112493768265574815893414168107818029821665377559966122614145824565249836099481374800973583533175526069269198127613785666914985111560632319979316845995032727831408419465001336322659299360036199981190716459750051149414818588689057675564344174107512737179577781443169914870650321753514914647999087538924882840101989596721371565156338839064404958739268181876674307309113124568112094222404299416872704609313794389640629211238834932058110995930037488631199224084956798153627169786102827685702546553656357841777665737482202136039397397790316497884782735279436282515726282078570699832928803019966815924387840305628832676448112051000575364707827275592752173253359643570348355222785278137811055610606292396489305887056766263547632787363413009376334885394715535144854094737605265798720070395579972183584685931442286117631277953228683111307692268639561516628979319778257595795124676237953415978134085432379283959402048894094503444971244310029042252817583545553214604591435676208119255857282051778317354530093391156985561235168138549495442972507433855008777223784925452164040996566743086372734085673504021881496164452023245095332260892865569240252279180394988993154026590728639682991608642957333883596240862058659983314034787734975938372847624975745668410960908790521943361670972337374948039782247187668407747047445756835376702458548914339815476957254076016209244404590107441353786648773795971285088558615674254178891257188425596654970622842493655953779847583364357581987580426440754144260563716571602581654486823318498979317663149808448836699549111625558994016906216350392883129865167181323568257796340026403856155289627472203711421038960128699213754505608635372179470173381683900870707505310469938731645817895303809547003623022734856345102153412684237355648372004821539030290743720477127550942681460225513325751168613067966280202648906890670107023180800704722652828771357321515845743862153484178505940738768454487704476989852885344968699337055318596175730384414787499356933149327970271066680400519795037846419732188820176647352054957226008718009643256724224933110066699665034758336638013452563440122971902750952694344922786344976896193583108695493379751888559067626304054543784206083216163548681036316247273385192035961795612033984293702158178584769467082373011246685610388982095606151461311384354574326429334026147790693608880148440395373724713316835150673459993452388882831920909844056699964522566776811387531711275506155235522706686048396389693554890663333486164121628043027263401101232010890708861207473378465809004086743696940941374306170648282338343957628257065455937115461885345281345446822335806400265060181402527370237051754738605110135384593454318278615123350600532992882343363488257556375699080078689045717647296709985374299200819260418983806979769429601342825617132430857323682645744016298918602861705646065881537065090987586994373274436964365413101366645495407547811283753118018119064012040551363114993007538015825299919748918640435288793131464208709124417145922545514349596958962238658285818485181272287545879023001019053073623108585232622644765119473771035324027963340482789754072377859547823668059969914808671340299504678592372490168610180138403042276200517230088548203265643024349335494889209502938489752114558818862628404595701059518603387674321472974190181511249988770324686971145247511879200730669129400282257409966304522102956867660188332004827381980332242561909220019093393091847605681254794074555612277393933662524683216612984054228700197010248407594220679761681047883259675373282826685180696709970423304883328596372732730596392470051226256792757975061103490863208197093585860378762895244714676393432058222472616716727944746998602568866387387746045266183258333502710619738677813321449219826830147744144164659713378394086928773907329598278484037885085346548328893270908555728661231133644882964467623518815069803170974328538702754556844157796802158333111509650095592176035523526169592486647461922168355184252712447413710242263425430098491313939340398350133551764833820697662711670596405615600635175392465686560215124478322096256368209446524368445067874829318512329360150502245074429179107689136848634683686576687969132602513596583039821668602293127465555532001069284707755809093768306844822712933359907184465469350507243478643357080863586939956442744676183282162612096340349488101609048332056635484215026706456442430218765737850659541960701296328752964260049145690199970585114269182809699238382475572258653852697835481645197462301859392831363170550642133855663646572693357538087552232850281792639854208798117514756921467108684162443745809113434998498179184121397062091948527957247579274940283157756837879833202495225439274212441202916474617948166047035388279512932969154457989120053344831500595688173652356926674801178679742981947239228262447222347499052095930983210131688302888866994843438281171072967583187144459372079317619353513285447297713518351575632042230126744386936403630965454873800757301534806936617157682339330902223334032177407519561082002542946882853535264330409472327277980881031133969515189083767464824771609376851694132120379445859794582056390482509140813128315128193987148572193148588144900251654882417025024117604804803556736770433622869245733750237036289831960407467282707723495293827427258642389727512517102019009700604509782094127365340607786159914656792420568646512242912202686062774467607395441703108680570883574892857750518631362808290864015077239465983092327965739576441034206658083145783050265852076992085273232613995976716234050163833659821302504694902204894751548813636041206342682201456344667280629508467018138761009157838886905125550882087522624090901803579861979878788127533977017193542125613316839120424536988139890254418793683358886606032765375050013188906578373462918592616583322187286602291411840387157063733273502912531820542553437554713121956354830091346145954461880638617953294599003617038034455132526868941560211601043520932726559478219440883743480116123274016737169176047289805124818756777227176210917274290304011218705980383995759508321552291670329683602519753663793472974181778569187457567947391155746786110402054905029702486042020100205931838538806281878573476709310147259759476909180969356044593879273034194295506678595318473493696341707483458390691154388117892595720663480371316644636193051936533481389764570457448113334050075657787554428614560759877980980790973134301373008527739065319359666289803151931131712998265950595303018014927912540539942611211668857065200259330983678629117767374568644220034528304264674356358971726199051492288453462281423637260936364653874602637328974587774962439349593215007609025059827430593700050056985633895364311064112593459842085941394612769297383512924345090466563246013504526742029090848917425279578395218442853435336791889647999826528881972876184716822575478550594235964131958867844722084316525882294699297362454055275288520484641312913888167461361568270269141346294042500873597975895665953865038284159504061983251754000407886782587797658086885636986930643052595394034410315008620948583160150198632921172042197814832298200704615801859495443612145999405327564475408570783875881426315241919514581136194241046630536131776258767304254276767131627424855757314644850670679285354481889489422473278982712875516874017529294859641266408961439871108152069656714977495889465628618376114461715288639708191491236876453370395255431990160666043697329584789469889485423064016748175528944246982812200107402537815194192356913864640709562397375993635089314840458381454659199578825110247669721581710593842479180711609004747248755357384332663332058997581304625544756995942467844891385780439777899753443772797081948982683581205999582685586230736612420657953948393121332598533643500507196498617064692591849375155480840292333834924863421307056038466944795678474134576567289559373824771793650403208936835439296606933195521514378579701600446734580465195817931862092365727485113678202974654100624644262400401982340363372877319466926813173578935809370530581284664958462265988302346869469099365053771683045628021917520901211606619566055835855958130898332103807512189353606450041765771550836785011348350328541883033409741012804699102431355916930155861220712652212024871394392467682989286291561724697528604732114491046684043638091893108067786547707053287195425576250607883639277647944905899450041147982825266906948265329304505904842851370653543287756996232272736617868567824887945102587616402752604835506870015403227334267361563793421751527134518939553635469376337916555392446294612654196484331672729902140854948649361964403466495129509302319247733985399466600868800047582381813386781760137563850553988381072524941326095614476223850478566908747907833381336500991399291485079204081238781550326276881665526870667664294828355540060769155147445365097126122604647253331585935956092761187724438132067149867744583952266407163958451273616709922308258121963838491970672619851700826550864436349386720118656229489662951485560554771994483723151127815100431587279329921163420821144158093611018204934467732197847706548434247998232137936308834941201590505555897641428496525928681087832632107575010860875829212964513090871277432594990981193124576115687109963195506149101267327748993921608595032183734999787210569662237242966925985900225491409877574641862775263977680579654604738205929207590868257309823324218788458367441658957996833280715175854433140721641081049908100012021624456283638892870141477801290012423339882324790471899492178783119156633535290868749093735527365753745547307814564496480709700568331359558743476849598329418368606465292748051051679954359139880399286785476616133668649510644824713460389102825977500927881457676214003563862598992845198776025315211250771032343524120693356083427636814412398276522496515374079060284925753861431198837571897297850321353792769552995432405761579807340355347928711893849476003659512596220735203620092154479800734808223165724458208329907897786523555262664091852928288705474535527939653954290556263209652018062842023279890028781616176919864251896107366013269941335545156658201264558160687868890951525644504560489871344778574031799772457832403243107331300524190710365767700792935951267392379634550917429431685190103146815690776499388661932956882344868376075805089363746678978500331072770271744812290096009485251673084743823342085424605130584175202110377772538808801879700991941266128018549146624760827098130386105276124334427327120276181102073392745264563039455461065780561242588335906537620247908172814057277356222363590218240527002553195056401031248733818756243226071254510873338042550366882438643728295019318964069436280881813781713829517872690977530406826951512150326902825756122021151914566433656910783140075123887674522688230518608388764029492855036136421391860075005531026978332762671293498057090647697280527131716019021560600175165519766172957253682735344140925479333781524758018784927270414879946378636275278584435289782167902034432719773526897196489296746583152877557214113905870123483640498512640790653708969452110852285146390396765987858009169619123546710260088231629176366868242123584385415381517801549686654600477849662159641733476961039949639250331403887238135131721734902790466934794880128736037871830161876727608103790863000906990781454618078404775358730465151864998514161640013262584027695378213600291742072291785458227435866915938856803253248057408383153861680229633284999260312244130569711472676115285830796721561907718692301376069626637827822568034746859345620874619259173715194638331524064878240612503223160855491407779530225638601676745533587735471723345085118582989410798159213367989603034467906602283180792042016337689381309263533897991734503923336310699854961045691380144304618097074499203340299172372745604041134344965221181362110720249961628551661821316552640483316190580684108267458892051649340383953607001567381906539838184956020879462389289479794758401297081637898573155394082752902926719851143392053311969582042058138745560201992122660841522302720912186378262043600288090038927520438577127242147505455596852393952680229410004204852961968179339832207636890693716854385468552055327948835488723397656244625918039802633905068910324639890732778156115473825790270758295091013212451588039647866824435603020540312120670269895047483510250128030495131622522153765121710394376116438882536774165531960505401125591529422870236705879146736246842149226162859862081189327420923683288107855833163372276066592880289897861456894533269623259665370330756245497729857612127407846275315784579159114154061232013047637162292579930119823053519258432842349878253718357688933390647386031972733010069115782763406189998963018146737271599391922520050180713204800612320794061340250363034872115413817975681597547045347979539199911440131481258829770503169380299783748589204829200912381037576979892766181917646057975902265184680574144505875192362661001072603577397038155281625249342178594006039946726888060797930681022479685174439547953768964970549886515451561321987975802207114097889563079217340602282315714861482440241865985073607167067733654995671910135099061579944611260775331530761688233881706501289467960542209624047334388072044847199373230498725381076062873775116383425717268796667254470958841993423744904417672703959274959654997201506461820596985058144044809711941708763530985955344624307259340779959792608922742675078243109869640829793251154006213493562182238955455360107003739091651312524597132303532722360215958709978415842351038993656445150692313939573328087443896712598659794393174404431103555151555805001107830976380846197619777253065733069973859531414486037930217961072992813146270371461305503467904429851205367412168013082492111222964247502712128822815975118907669639387409636336470224310661200147552179381272183321154971129873017069977928227543177925572386018048463138925147190728885840786926074800892750524431595552764081651800707567884995655844116482710833367048350811190485415614654910976065165368686734694376452043391314198266018734850783050038500795559326364837266184328827776512566646670475130975967511883754332282769690289027685574957604719054859577592589236200278478173796773260105057535980919916858228281238325051016366430601973137127320899153929628078661594034421696401112214957939647269762112026357935654710402154286490964936282347113727556137832645789439765168843759949402997994283215334244609913042950089798518651864829463133579399510438216357701811640210966278154548938917417019430193672960911860337990045367435332526078277331807069593946424345613880562363586259809753275750677242205907988920675292740812308356643421462474714869087378947293656403928567588397102266733306735542687787782738190280860728725720996798978676631044630609723381446213355865479827220871275876600517776140335638660925923846978407672098314090843662693679878214581196615050230565122033745839316487922093041478617625070284453120320313080238318335466697462889059088143504613304571748629048855414723625273648453412956650056935168714634298410935041017078166482947480529032863663514761756828800440650077352916102978116854787014695846718375648514296363521966284680276086500648623006097017302729361863938779313843887949917227790540720795110580318825960208902159807998129917141509488682061856948767035060707063528976764760775530438489180356922216644732372966259182875273903884632552503368859810894970360380781498680741390796525458962283173323565015350893913744561291073031464284612130843813014389277316083224242443708405307246055526339877796867233600325795398887505281653417788405616010009484220891507359943702509480300469766143793070751699969384075469468420552240395155232867829609484492168784368312637848864030799039504831298369238312192046704820847929752636650776493088206058083481186279919401593056726956586996987771391128171196593604453525225269715387412328262440341461186261645677395556816887618875292487338094627058466886850304314470059727446253700899134392830968466397946717467170204133049206443546506626735334332096941592340345834476854537913752250333834230708692350972437624647196755559212431519143015328227223260284443691818262553014328318329395367565645902283747701142686342100427905074815512207397898588245643123120362680500478247098576952722841031869854305390803758501278153176980142990328076961929634131553833585209335434170152451417482148864427056461600026096723952525528612800256030449486427456789362708410364349324034391763510484228663678674608999442865703733593309291703311569628239043914766449260165789382440859463706522552452537735785070221036127678084216107070450395693280297271724046483100077118162069258364101927841333785570939309385427793084878280483544747936189050534448269748580965981667087845301627832172731274519581485996273979244563817372016795800828465967250711697670504545030515226590319027667349072694591709003666173828307382271608116860047442138168883403550512173541642729109803633398492240281641324499845723107707792460745691514405602964744763788701049435935658253307610316970302688201009462208229394315771979698455478650003773982394722171119842655208728921376557550853315452719352476702833541354876202687019508637797877616016756413692335752544033870156276875518039420280760375755684387225827961348108534732823868469829828335195903371046853491956878527824566099582681152725855760368349204989074533849221073445482846413311187709639489516119507433354579977712025392757216304479974728099531611907386769696084461418113315865429365167918129487180358071588824761603803176907064802427725441036345373287978258470379679818571906747805942491967369876863470425828195419980363896126754538999882698553782388458283791859094882122892308224754618054458489379679673722629301995148667714090932946503743809983269464746672634774471180668403975218916974953699778746935048987823874396437252152243504853982101256049734902958789952760051405683589965175675697864449300041085332387721545588386497077013679388423886000139575703110929250380307490858186174225248232570296757790968421148665433054056689742727692805901011059528153056874169041158577308246080379826279521182027126579602493308688928307405547506459566661946903365619444054712039445055677809586995255298202566807398904419420225378069764743118832086496436060883200474760800711735136774522670986298222251284897518404978366332540337664303747351793060259002665892038936249486589393365038754655230722906120409524533591121537111568110453154641758559236025107374945474817078026586053761460464566666203423705718019189924460563667661014660193125429775216540903537003380350821796995491352048804421177636387876545197013380181067180424184286237431091179385107860672048077472617667428924213616646389150229373252019683243786440664757798628091660172872324797111885557634914801337109953754013379943894791234475137241315282231437513261191817002993843246712842094980597341970388954896042077846323983032886128548637589080772035750352917523823802870521453080759314989918004632660089723601029775337580539209145885495516587813798829258130413184246061643226935134804716877902398757351391381725000170386405726832635979600709155083467160833540812308334181693004823757992472189275167455568546604026233133927661562609912553808186262662386764417818581426908517482791790831199737630081357916537402139198850972973274433031076463622671099644389688767592259707408874520255994187504987393474721325751166020263252411841274219927295366370905784058748197196563697330293115779252021518737101270986654358967202040049634922253558014993459515000491093287947819708166420466235990720686839942311462048376330640734263259872669521288936463971612441094388037304728970834316731007850881940805520301638704137958020947508543439169399886432123320700453105251109404280754374800788748593353838630794358143069141005642218813735003672241784291531533795185492939113771786954285958757772563617413741423936777698934414564088954960646074265812879877679624461294192083413714431636157799659075717240141603512442235819990024046118346956875117752444165474775383093814722531080315454455734531795585529094808326620290157666261085824669860081686517737222938489562669815943619205065291546961778872991198114010912024218916793427121147297272940849084634931900545798431448759908663465799520837601952947193279881780982610748796199713819110964896640308891138335817670621634703733282152084041257139908504321866328540103569490306343261399018917068674455559948053450093956290091352433685461960394845781297097877988680556659670686038918870209482438113520105243807264164050580515634913084867828737663889473083211811637690007826358838986450263045248781366721736074593165440066534624392812488187928246352073938533353409047521564958729718497602566486388479803047954143105851734633104772811192459350229808556462133736107186362415171522904496847192968348287040044359494496111872632402782937835075167184655396126736494594720026621844277663947290079417651239345696216796011967046137135210290288014181507584463350890225545868297427634141790657555216362176760684434326157857314809996724822128108611899517326234523688644141919306597579875824941959865397031217922884635282745943372561427350194371914501093812399361421387560256705000467711320125385995367032561817437722937379482599186929675172598123434678054203950961653004191909789007695907455379440463619098441497431599794650742917216071704622805267669221120701284383373765327896015301779530112065691069885198169068674663214629147885820205891094623959116609076321567975723336171060662751110737018958627973088038347549246263737416337716816059447334188360524157777199487396111648524889794291304026352910406086552954926597448728840879255043012537253413008176445663415578249261177487186331389393052945514906967408204068585892979076833617056896012997244810209399031191994794909777740141369451645801497839876347724892982159320050525290627876314174684646240913505703439282822172188696975653336680437223513481170969241448703108262066191965033869861007986753603279024617693219501041044186279652728544745569772112938013892990469680867583750096674666691840471922245784606558104792465830042134880019482873488497460582325789250046609778612272692045044150282443517798256226238617727567984684769889302003210352855852405049265155279600210042488357918087326269670668485294318538156278215276524556866672544619688494230929996100370650940777619243827630145641492285987542850662189011616110092236725908886216232189743613025816087136819427661973768896559369400535229872339264018721882359731421278410139686334977055203386242946225946068956537632322454624773822398734401820731431469433991770020379547699382984798328151321480188548185432694934325160499057122850111285118322437641951148021639119905711831307306707031466383248920538540690541739511289901395604424106026436661733905219372238128479491709037655218245212658483386988032746686045984917081072431921033852013147625793012339723024511822950452712007990242909148427087369103793325180836113290377363037084257941430407472116979219223225643493322090136602346324859613570926758116939635967954363641598661556455491865759230321288187353491669121852390669109745094192031917008519345232240816177154804610797957889896861464072676610054991103670914070602355124749707106086978212591923015817372374063334447811058954407780182533997666896598199591334789311837695233929030511622040359974464615245335208093081133394841619214172636326587168602750839164287709547745872879466494650106609986078524630567542833818820870693523170528588937975558768693132000826310783094973300469387975088495530470037122186234260557473763034457720858948445084932005503478239673985454600580899392335840353668693191619054397113568901261024073253114615560477372567316026078983626885524284331965484480987989786891780191935497827589525232402040750737821299711614070483415053435058168642964371874982214182043698740263999794327532691227349349730579941515533516288829155017992314350384990359280135202914516689497240947221984312602114529262606568744724056420365287888732973593740727076250874903558165255875479756714230968333709605452854980537421046634160453226417155643739314742704120317110688208483581305276647680098066185383848101531742689040820554270732581038434488116566714231071327568287021553579738761968107540030987740502694249075473178477916372915600721816449739104724992661203659865002515493517768162401829973761989058939643800845184701821484187860821356733700324637926794707171964397177480961061713078223847943691998481186302450158620813456868893383944651964633744471004347705639760878321135525665676624513702868577252250856320640136632335589817999057935713169642365211484203875274649388519198022408737530560514839928000929614070146897636371608325749831141685299910309145033376574299666257855719386966844632852361413157463940535779637613075338011536779146015799296605356675823723953914091289079562937301401468442439054191443284609408381523698528993767018128137664311372457309042884328739612309531750076968096534457402034822736866808969398913405773055272800428392909757944937520835028617253891357700086383313989412289489665877228582725038921728882989092413502958591121231971371680539754895552900890811276667319022056973487272945283406712717160045042439951489693500630378326044278767938918996789031483165013319887595727057888172650395186762281127130603128440038824568789582624899011998973625408749172202851406592342595113556673820984353831380773389090757446900721769223137861362639491323873722013230207818999032804757732495103142830301516300085071543184459162187781015150589471740613942100022552950364532720337035441364711258429949816650158075279673934779214148194729012857682360284730655464279497135728975138603539645851239740547098124128108634589106570509811868389439412356138742529239911484830613911923999821418591334595586268687014240908255462769629226729123063509976398585468503850885767271183421149282041062477024048992200342014256444100136245731359312200902572187198180143350186930141254115984794186501372390956041939221478446294807376481528108440468419753359118397632261221319955182940309154002372764482601019315006134937495739803546040720058265605254920147188807349864837919767221657143253071401673724003776685506673444587464385039907744600125055036280382207102191098255915927737483288721773226619759900187229360974752033232419368635533164044551447987787226804494920744242977663733968675284698400716857032650680512301398421690670011051683987809642676830287223151273717089016228054968781848159571935920239495685429982557257738232573477629015203306307533132170774076352745809956783794528368106958646326613305412867735484041731313156119404512805998530493146087419891818336343154149660700880707967265940285539038131745425572261740265774212984606702807027206398174573630705209332090441397288491659639936081477823597730229624795111073245042049653472823656538878330704817148786036361184911784396071747195785632345271392258798498771472793838422393721372981705111511189566172870268482614992267785876583545543275278005737830151883776867278823578353576914493269828999746080821251355660542518241178586160745772026747368784462198363973399849687430215378062335029849391417748919108941044812591940848077942736869068144119891940604672775768066955304229838464987721228308540787487932227232063626702968605387868734071326726001470673224278081312720911321156597459290958108116161087320656766780642782476432439255702387831934801002990297528210404077440084290642398013156259307252832373653686205841504169789708740473497884340074174704606068877580287727851755276679380671201394730569277108719136773977404960441711412836372968047895581881948885943479994156632380660648322880138293878731037657792173823763749482692190960647342161030559692549056592808420746703819427836350281088336626126028705017120111349313621184517636329809063045587777765955613552446337505426799522627264885985776996406939531023996525558911613666803633294245961991638985843528509171865330612722846402468182449463874091688851033905941091318105150531227751475370283785716173499089339430921276111956106451216736096807132426615264519384315446835287282039260839433473351051938548375588367142189000661556692776924460682807089806140192478311049625912156102316928808793287145694292972701143863895806513455785426435089142466593103359495169770344094412126874106350603297103113821147131337947718504969284514843406737861473650093884456065916232968768754655337575365011249957999013336764131956161083215671240528718075582788798469075576622077655023200387282371433122799795787148225492237259654858263673755171864868709110409074934402635198684147473042020590089974619767120749719394790593800201770954361288230423212433620837895713557411603830197388204641318403798150691740203250396800387227310247163419193078323152714240900171698568666867558898808465676508534840628261087044548249210680999838706537068067417598657895491680458491345724402542813669759114019558225515263893542292102143221340687897893313982579392680311890070325145352796924358403145745470086326307825497889076142880479076503560923312706706735882609238448780035536851903344584988727213088053261492942434373292652140705705908521729588184814880447525599678617623419721219975517275767731119425030599361632460088052726029137886957223737083126141084064286826525109816802052458521985824054865179478379172921931733905585210407469268391809097691401124066071981744326326345046460715925812812561545591424396373925298625042977093163322786756700060742689859875621664628590065300496003248042436476586393061189300231113549272931849583078959055727622062905893467212788793665958640378385629767256421507557605063719312536579502062048689810437549120325543824931964127606191878517439747392786731554061665668045035407506011942951664027670965378894350082721754169603620907845005212180835335610311175052003982971337020428218900575470522626498886415034197116510976194264424116300424247029267611678186796579555499604881354885876149560787149542110803895295320184909965291575480207769602002817927321999060005081336857754710138695062618192800218132572576068189300723827214893343117495978675515330684999411078071420203059729452090758202816117399865204200904281497431514379239680225979740967913210690188377645360756056001836933413127693415312688761379863541855100727150934345490956554912928202820020123953356102212826020349671271995978955254516797312565287215398021859216860238168742112127320425063425892928869444522433670467772085313959058736874328043342336983790031151876756105869177536454776075800514899577935054197471543904417752365870661999390464849228038026011255084665679884243672542820163977959881426387821835945558808874523101050543868220225418449486719426284883671028473505188554406315023088353142907835338925946538808075336203674454336901636186180418417710571951804768551442448264062904876865700709916855547167179414239203902421097297331064608397834657194937212544116417810339406352661273696758180038020800743596178006754676634558270721477100220220525812496952628733629411010361251266006093679006687006747592669728166328379428388655936384846667147503637600749025269897091245104947076495111863088729632465395011507076429597575346892860739973242907816434198867546195433019043756393005871396207770060009843378753394494142004949990764091572138879125282301306711061918960028147170642291209162206367943719889402838409595259620446063847009699606305914933259170189365766629508225373265251719636053346945710614996778790761688804193304679629672334291216095013108789209875725407094605052141596928049977233597544446909201019289496128900948742307141757969489769216790290439279110700744360299264571360918538533891281070794978763880934244487112751801994160745988749187869413282534684613013206450740262797518586685682162629796971506943425123598058322560890486952576359169635941878251058967035300106183131481456423955636616593908053509381945728097036081993926853095668393444886226576026840476247352556070677168141081735120923956384132975180200018577705623652301621319334201467968098006282502693790112994494442356279947856799386600511456801750185109742201774906299787345103063426448211711582912221317505324725575173254106328126119602620527519063240039788690427120758626761373464390047148463012388639715395826917532258026202835468060211748209028886574937524545231534162886595742557245670600328705799233026875576816913336132499526588444424993446298271308302483383482849515658993095560983953302090675217509754008171959240692882505008110616797164485390478467147605964143951888217113243664182545301780351976074766922048381922502321225356034947185287152455683836858439879864097754748631304727114566548866966905748213348912032171387716611377215014317745719325305966742635062004850337373547594661980814785107210700529112986409900459536346539514068194554928448129151955511304539859515244596963260499111808225373595090181041155891322318468207420562292241442062650113360695977851876824435496156296528891230457035687193484128020899262552572391533200567274183118359787620983810458914240919165839538079909662451527205869375272917243569195567132737669163317457709701545819857783561895178272274781782684726737573813414801774382113643356059274176708494952770946342269768874635267050406001495033717492528345953709675805941836994616837052630577470894330236308335828110219459637566505768570487275360285715226545310076972885824674088642769809330235792911347353546745759246802538280587881504129033655687051501921431504060785062476320077194384285325009814082835386028465334484055100581986909924816005035639834181795242855549479258861200864886777225906974158717495393666741027948008003919277157286257842688335300565225595169163762345410588791000689356596123128482907813378492700186440792292856052872975734633189488820460688853876696638603935613933518532036796149464169159732017819310945342134658611945414727206190214518545123675358250866355036047004885101192734193399663940283047783393048410452934500377492240360807229471116445023101299095282443694538325528212738979718122475545319796501758787360022287101306825431985571409728780399210247749747609882070807638142191452811147032732263781185476255838678564010171567151719118063012449756382268487967224764451161065726092756628857042465427600106627897097399132414049113773607735268882077878177910553852764400245051513465051580310073388530485671005564227035594517133788632296138635644843693350403479323062232172327723273012398811828077283697047706005402746115671535364400463859257158104618840697655974369253436066472523022545705728573951802341349794835077890661137714427031362391227960586516878977175833362595299743972248889518687149962960008009953123436899273407869887343245780939328208969098071827766799731416553901047047847832303878844542838370425913163767485834322899962374255065428763695802727762147270077270724733558398486242955124489927568516146078416033293045488274829951590834549720927913003222624808434676431043869650636684338972944440394561305238677413332922484602944224546441376399901551383315933559699121811778910757414107021533296964481399939392428706451236962612012212714553105045395605273232326739695253916178334348725365608726298834426595440809985826647565018336917143231481465393434952306136510380156638399733556955643163948190390162663586480030129087681411915912438042308215013452220213757550951771852246879312510489571243478675102897441071838220197071625873718244030083393089683145460266820713259363285006128089827254300311407657089866756129003999942158394014061684768704896273830600909885561492938635493134956878727094461286532014954148707870842957122991739018420008238612052078313693989071453920701511544677822445807082221806475910567917586441695315990387083647555463761065388369417176038223879592914147051737177237787736831631693280080917344957458821016200552299984345325526599565945579253992740194143497538347193821347235054810883806773280722270410252958780712957141028611775753222204772444270094419407173252974507088751421826360414497374522250691132541396692857099878795644947403571448539689226174817725135398764517995636153970937183598892046213109036026012178361286276743577846478698919386454024229583970972960387571720053646237128565926824974836490695386055112065664660295013124904873141870066337312046667060550195903830334667174749750516148859305219087256286827240460709818394600931651334131909244160492134645385935010349379187136710769378672147476442529105056597278443102326372912361430698284079398355894684306324074789040789349910721674866874704089807209936115924595877364516316309878572342204403089084906518858345439400428297896875264558029363484521646747576553805121700489342708654514181965655958794825601918509762226191717601218963143196847253137560815484394820950107537819340159174761535094616092277835328497207910811749312570002158965945601505055669535307204289196574678539055078776598173097995824859274096344607886536494271520979090293872677386925925990470106653172935668519668665190777752253255611347734109295948030985706381027570292715730189849731495909626783030952032806783740304840328460218326200122757552013847866910100667175589597845854555618690338753170630436651259905814952171310457077126746299612406497156767363841849828522238995057726461335460459051824631944803273464831952216055402426289984814906820551243519784286848074463009229578353397202334935351312513833776354281400317334200273383406105163893702709741441956347392529647705139472151472801681772377578761779701089297610863487541799454849229508084093714507901942701183577598702173834056671160855859665421416040817758466191989450166266657749497372875861865756546485388942980773560894441146303596214531112580112508358797977653904617235257845662210479089975493829441577179809459447830659669537741535118120428263729598589604517336364023625272512172189660727737894414983344068956475685935313342094752981192465593788166504295965663446915135325853192259013634529724856391186106764618509769178964524811352353066542700976549990479310206183112287789337657208240809788041542619091060942912132499129234951807788308832035928467929972676225273296634835857927144926471610317534485189295858223097012384165331597357903805567379201496087788964983651228556396456754062589347100824631556816289120512967231692979314060964075324489495790458206212440155157597203019217374986423230662833319976100375384598526474434685942636757135442533322408543846813062622776136587625369563881863324852918028637718537857698479325854994432740791573197359609240326153172473975187888470558159508199220794684531474679467349671230788595055722957683943533916803475066009149664561529776200433713742030906422051336586753024851322822978558989243431086393555528658724528285126681955143828168604108987560757508327275625548592153730802991598047446264237246503153715657740467073414494662015397687046063030628446973256583872079987972246771394291353464543015435095192315826095531705927270484714674882642790543946115625659974140121923605749703236991981486962505129630436502515382819735422788600878438398497593722584435002446199031990168020861685489527211605356150539058953226351313149779283468526581811653486206378841359461636193181488652643948949560358574961810662726064624774701293983777040299487353479970025423727188328357862861307073162633330177290080552673890406966298950231485587569119554137583692213003763192452766178212545295140573860890737099775233585369945869222789093282114724155629994049876167775510142152003328087899946852473999791700210062457684912068275284272800626634581420630866400817127869298420240953876985127616318326111316266685191878748796516009397964843836278200105152784672209186055467366380294597423073606637846332041992213111377100065399679603035171361581816908328175194635894978113662576327244618329004416273960186844133821285754095598017237622656734164221732129374508232591823608420933611161404635664684609352650097137897460023410768968353377904455770114750368609258994345361920181403474072390119339897868942760419786360604796777962325764789966667467247354523080926341823992133557772397430373753288392226882010833550890166320876692583643978063275603441479358150127457522224489169253160677594807867107865570502688904499194035315302423289944488925746172967424077224670889544883902333844776121720063799287068601072490915044257375742278562557244338786707169343382496935421689890568363896667172546330174322960140654754390897549998264252291219300343579038995463071195961627473491322297605431008127520584751754098358447449443053366421260492062859195624786807670139339244676264417768773430079780014461697419090064082145751353424367064760153514058687221294470332717032238370114642296234164235972316288505544387738710987143499524183689869267750816782848190949962406968908189677663866540390619299717805525075216349990508490103262227839703741861594529093461896059001243380232213995645215671192097126736153096582834925197409046788509746226101732623863779821925662708589170915106323177862635849971094182972479198122496890209358319153273141501959607503343789175758313149623227693637648681025892699575228873400499846845298133305494097090978042387239893174146713760013835586888629233649521116266881572356282401973093433682389672156917324628932556825424305069596503928107928254838847058569454957734483582406517065271404273326897783351372818481875728279332707849856185368028397222310443459632156754853623878225453015102314078197372632852540798599035230061738493669250563123068161283002951422404149328637892645674895430398836925597145869042507761602259035138478445640544129220044872403351540174014893943519691094714231978996439916331669514203553657097515598898878597494868923427016346128772519125720775409648944048332316476012870786246444261014436305253155881196852225415917041243659925634541732769112057303602216561718085302912466426509280194259631622558793956327617712672488531152033517016923656990837304430028228237870607736228704059913550186495029893735569278440245474200755433093246831936333974472315065757291355438790168532828808086005504146117887545132026830461562941216590109670336188811831934810425586482438117995957805423626211879836302573323108343319602214070676324694783258836848272126014376701723806437403638761308621758574257643730861994867354423879006476516341498555074953742208658285571522760167792179763503087892637341784870299789882555601089858396293551639037882350630864447536414173314480412776702710295778983879909072430932877555321000541574557397007276197600089049434191783411718696085005422318404896337608018227897154864205169044896849933952418253447747366501042903095633603244461306131115330300350425113615450206512903896154822199688643783556901657418036642122351011587933765348908304602509366883551658782882018648009559121692871044674232323822558090205466613866997472941669756314455789006947563412945050667202985988461744543905147151888405073732840574464281707676366932346356118700016150014459127040531822140173277344488225515250412179602254434313914532901928900212856691310972223259673977691991612782772607077460318181629595628678509266490305023064213316508744944944045230312710318331224701047820175521627671816800008178322060647361007430989163149648936804499766758558480847314991176847595824925039864552957697553868763581171895068636964472641351213230139014193303698812360758929654014483418539916685554017940516690193031985039506795208185257467999750962324092363304571729227585787098205149083662924242085795374853425299284577908520319491110022375493124996342236155429461627521124151439151508413237422545107169784886755477904523666791586022455995244388063861573932394472772380429577511090526933439248811976759755039688159841905274016589985812847587521550453674053154557487725326867791016468534890821704058844382267293866313111106668993152982751080610883185731303126574639068856613067458664918152603164362124997406327339405266817147066007831260121229734630326706905550661270994331173491169274483366730594369296697923496533334456142555835332086355705805416605544827217157560622485963032962115175226782035617555232537273921850531147710562904126199888234712428179878590819789583526607417953265105725838133885501518372031874766417435614413170548706857034089545205303309539883390186856795690615699861140017197024349105782711348982083150108533876099466762227468030455595272137401811301028447559673915221759760032964081599473997209839037614580577004035821610798372392134398194489503908607153617177262275665961568588822147701787693112919636790836545694267353945500476531643512351722697823671679120626075310758473674923126782057896354349247858733077639281128148364472516911731743624194795541287442000816567078240742636990838924508422068412076833506387153660649305767745961359810279818347451216543340844496235892382741177563228388631841581252249676531841735078507511947704518874900470382442114393021325288646486820136008030628202460441660645332017736043241372113745097968813203139592009194791861834788878714777334774328744020576525473791966369345212698815888514829695875868279889603999035082101882973671681418855644931788259965584648214694782029685601493996375709259725588038854553093576367490063556683019178381383641424514098118923553016796473357319325244858971869921366714273348416543232370688492378764399103079125619032954358549419769101329187783886018372928575543847084938698479045400223237531800271923987512935271965325829807806701816734167915148529331325914761247762251849418718392657812717449375593653027571916912475725127575676747362606145347287990809804308042618335208560818768594489187404594279133948504516098435723151093234717319160711931391010991168004795736896115030023814200192003737206183473704307587514536271679581179412602063300417864272238430293502795763724206088806726085308934801983900835309294955624086653841128846633643903058604435920956752736363092994896525882355669291114022228180217682632688789074958505828867503950394476674664533788604723355291234860915738238733714807155219242111026628928770160061362212264285971139779610546706923565681054739711722698646187819595005751264807221010896361702028156563232193265831067358142754546821800826289221792911948337634513460197899936401818488764159439041402531384013901626195913057046683254964402919235510291981243958114910728492492290480787109018831594121537734274772192634634463572125726118217257616245644839321497599788539354455916580350095553067321629828931502187168801818882535914275628899982437443698381477171591222999941805810566272143224547602734227026291243062023220386210658645689124927092393253408750245490625222599150312320878996255508576679093493758725245708116848891435655040577265694960072174222427356491170850218345004275955516726192623884359865516259928411204267560435555138947772387024843809154713036917234927180818767124813758603947658967745878747850033437118917681960295506744878028716252440146219485282546476547012597090740595917626004539306084535292119056772810989288050121166896198479355601336059427792146385411090705107513396292680621366123264826897494186497016172282817265420694957611787976895680315565741113882113903689873647571177437710240342993523559120752437098735283721894024324036667335419316659173032752204932957753208241518511073764910561696682041034864336792431333415320480258200908187188930091104091308565368565242767273027480575389603176947838466283586813054128892839063199603826641592209214070679495572256413558185002196567988478486208458935782453871443285370334996660298646282969058655042024346819058936763965915197348518891247075412258189429194884431774627662376965525032573012875014290412260146346549718843995980617803186757391112600066625133065383617239418510017301775423494718610179705030484741797090909631997410171687372681656729353240432753972108653126023377095524323497265292684700496813229840973181456167306980158248925793119873868280045264684479747143898016168580792023845553779220394736238195970378406052594697585117081031323502972347184300935126981898970466590774560666417217642932248640784750713644063567828994015095313765574900621286593836746458767670312228719439181808097072959346234662551856301393124410040488564081161999026089814227797575902008912006094464949676713392011625742208365360300818616947081840632418152257208548980233283837014444858946991126611783972321719062538901660486081162085681284434541467863795751539347453893825131007017933885390986494276057469708216384626727971725902604790498084721048914637384437188551174040548949311743923420957619293844216872389548148870176103963643777341483722116364352307159220802223087082794833987839053005393213513673180618371744669110387046320454481085428418397272364601375785063027218156688187123714018841760631466579396585229166590926783120084697590874459999163654004824975231636359532148106568561268478755861809979860643934256246590927249494584098443027213717742793639325968593997714803806165036449672713142126032970520654710312997589906494997098513992219828697835195274953757558899924409305312573187345558565996934895556894444319633321425217328037294014294779600460811826794246088413335576241485253751830295356822107077848798825488410390744762833473120802592277063919910338595560524806677141235637347023796988315789493174223284391397651520038950257904679682179382007611240848029959925759931844892170389895876499584241334910863371653831352134016030596883000029491142432484110723932379133826149146467173388721087908647290709568446621461000278197938524140984422543945035156918490793620046187628864511685876701377099250385763321284736178359808898008571092902014088220291429641205802899955910883602213169522247287063057142473135996198009818443059744741216138841779312425678291220639713580021977732621936703658672812025482212311108773877579293352541760804121560262474775675098778361970894148737818257353672052512733399774551597694207333034243274498549338950712989241003664475928633014109766183331364294333074503251985545325660180484637060396509676829866339163029529191960422723261148929092860474308272082352447156744973919143733197671663760708934590566011453316978985247453009501066602421661147157372728029291332321080246861452107122649322499322765541134972384725232229894724781856617644909526515750592219436780127807332961410222115334474220904897055466271986179305859426231040005486208779031435504086060621139584530951806101589600601140424177066722491158693343378354578675367515980973480790066277935757450874102534684258995664614625315124017571139874602643220202957409868509443114013664760571974311094942279267198829191940726150987498833627256254097989872472931365093826078357144201890753475645363688788252964674991339616644110663872060960705398479766500951092105468787236633638275461344022024054626686320116129474119462187726145942406358699498304219591985743652675479490874415946785714450782547829508157424046697204540785851780068804789290816678086338717535791722115710859459522752148492377569232669072109684877546581618653594598821895905039949925276840450756985892941722811254963773987783199429747058587423458403130203416331095091550287958859942337474232818893794717539829342079862848878739356250982740581192637217434705612975499917427694009646699835670821738836617183839745789396238401005102531636982668248820724810380824852538610089311608752040933845327271307480032282996943227471341992828898003570183426311478521743895341224315924073505294210918906201782860456361643226181584031491864514025347945238699004006806206731702268707176637281257004353844025234379001428926541183288267697890682982294617521504065062659192002111551468750893446803634684300843631419409293682095215952792216416157224947843963484112814181968864956126763192090117634115465221085450736882168130069991302729691347125521977178218556461226231458901922972358381060782098045974001419411633346808618694422942768779199416742678723090427659262948994779947191670039306036754167481265831934249862801963578887063682555795311076317688039572675800274067255788299547757555250359426590245331707807929819700565502307284728801990947731999777709733457925098754781092207568202661693340232497917385385420005008222701090814038666919534668597933605425463631302593194492335653577487146233407226452356121351589096144687994190695907031826142019762506378418828500122486009602664128580381974959538519782140158452924696476667367107233036204711243601835787633836313684017432472320419765259940212591427798160328397643842977344949764273620311998793698432241298511248823554816417914654380241846365473414780161223391232417844422107811486854204130850319742701350060437991116276901941655307496375583359997467193437403971456000868049323101968129761650387777853398254783232997764598085589708272687238279970668055669437615356344025700421231778684248096371374071571117781388056083879758863472162462920566720759537968748782835369887230644402142654926933623946987530015317222967717090744338443369910046394197703410877199911218940861311334603968089135014727827723478472396763908539193926811407832554402923840150269790262323713426571451818918616078372457363006589064750892647852673046017523629754893978672746649940424312816076008406683419623518129370523438964010657720327472497278864537581767888838921527674685748344444726534571504125776565105867087925421217969020878331590497008211137470428056594446167988910312772533431730318411098534694828021967611524225827783037959643855306952348360542248721546059534824094593204702143844264545381787956902044432754131000587415718950979761289153098592900001311471270562711606645787012049800312616685379015358889170913425932572550652656890444754769860498779083410242407930761405540120644953144951420918580648818027137038234232098801546144884365697211977544727085285328656396329151111524184417675551295677129108310882862679238372762388526875335074192579874332250458722980161177529507233337494919819420263881287701138991554580260559899198800116432882859417933581743715081432395061686607120514817875433138212991545338557579137375491390759058424138790871583303991352341077814125004772661285980859782942807032064563295341803629885859583887053138358349057139162924044603441463035658400275530679955508521095665588955136876946052594431003351090079127199197608423423321905084035756739659305328658335880796611409143397257887837956247077597618300214112861142005724738214677530150459048048876110646231274618968292777501060529606000205227158388741786247631434523836155251611859325648657360304979699913754826487218572741111995247523204543787040509669323345839503879155364250665378429614951563465892815161134945015041613984279159941768601946846141535627801516890506532784172594081402773813760721715820631010643531832826652190304924714746330647005081859631675256519016492326597503148336464586645994728736063310653414985706231839995527271948896987312547360044437625281688699545619284431139446796812212180558540355723082250645087538504141615483313420384176537890818628900928218651408024704201419367387824560962997767027999641225353319270664136417657879121894816682199314036469329434844839176363648059369189417573904514431348107676390554220673258838409941825458443249654553282148574297515944510440488268659203638592089394634229239400800972813352251705091305624453806134293408077301928213278549287113938530087269758324361709120038414350732382144065672351326747250699903164110401020280885707255420452289835838128841846075012967156212471935251990788174386844974742313856305767577601581183319514919563399116488849322682536032603587448086318212504043990239149319736359582690708702211552750830024609704714943585325091559297935072989677112071628102702241494942121319745028484272103401756083601090792179933652697513223081925617866716356563251859816583103628196771540299144314408527711590900882237847839300576524472092544352320124035024227164370045204980689635937245335474388463015931736681513530661373650767309600895647183688912707513912893296095112484979203662154425444517141239937379554063726396331287213397485965495301022038930800080647454197242997857371720105555731857417162603824430327047149633629793334686308249316068279959412769279666442512323290594624950333190766196928156089355543549135794460808949253316664789927814971902297715586602315428160956070017214466432814282815942154325806892116788638155680262406732951406757894591152330291276684906963590073183860599144495833988051668302124468362568850842488179704993215850062938504169252098849219526923024539948017140725531115581632935324867893971724593207682833163277320181386483114487488832760601372771852558242619925333415587796938382378035418712170317027695815758988209198851564621105423982760369011317780669137767891430335823974811922308373575711312100390200942659466956371158976393030932181371293393915350031058551139515305738591000102323093081591444526609075985368997985418200393070791795228683798650862766315590155096364002036843030426934908763052792123278268451739796395121693004309563861468624821164873796621658274450611284450586362716169397960595129420551769458229283789997996204534559255463160886482208787794574533634750844237027252731714029839369784134953088118156215698994276284914227672382958814583635276707396664752039264870836271230344666043435118775380901358137996573626449962069720018606616917509307698790437410819405514208668718829447603544390529821210237398475315742703878250228063659312865596806774496518618599358444286311802865510130536266035216431817752262858244117807085195853103808616566371962101481625793035370603749422754800742529385370722917899627793708917703828085913907779809012596626302817780547015267083985059045663952949819036130025952227408353879382915203199688450770914306064062493617983168799066233826497632126886880385328595794885213984575868559545010655503429653357496138148245659222844169537763161186135456431096465066379524525260214499511706437414404537909610360512550969005439611728702011157802525404434948328408666244909193102543817781742172027822473441212217427144041925714039079640374945106308245639675483572254257008325033448144099327660509141753529307340805910962367316486095100285767653230414517781273796555032487696951084899818961743142745406493235435456562104742543959273207632075312063589227984262998522862085077187159884306971490637542297979331849025567917586457828940933171472368243972248709412743673182060890088458972279219402743689430450882089219008818157721213229162473530296112461328726820599112486588403639319664283346337599967346649010218753421426159613616627831923015965796918654356117844964459659949771234528141968120046674070519063504719286350823339489782646080798168881552510916524909596943212683998727238303390715405510593650390363992452973038943261553739196217827447578984419031582537637621349181653075651831739912775385955264538961373129118516473021748520413177245594416879119813179113547973248832843333517207726668208760722802294887712496328212898312367018430050367160538158920414753516878627249048793979165283032754417272035148189481679649697902517032986758104545463840508662762892696350096020279800427146379339114820020412241859803315300646118344914609908137441301155654861383603813803571000963247669928368680349067004582414730185148075833576948003231418641480835798324623486581711802797371036971002589502936058857150368662306174717813551388439574036584428574858734892770587202824740978640285294339899303564797057868662463870806625285311117613122272632179101942703336639066822949957004461143686731984517436449320206028216574472117302152405155734815428825128669190801385696460567398942574196577592328163290102860865649841740800282433613965680844987066301115019284130489484411698475942715390965661427944788379752725963457155632741889668165308661937056042738694990252046942250013200900969701832034689485066871303269685667336288708382062847542141398398067031669144082302510335307349258099572348246931373427024805177560725336035280218392052757756807239725894488066840368098634258089852959270487555065942086700430964071069910427126870665982287671928274500578094848315157757660082521275066947420788199563569282674504618601913800652068367730044894830478005231208624984023304849886785969583558668804288852752517221263073833858610876703920490329542945606879189125613258579125852994827530805746137078778632552949238959497376269337640116545487848212203659166556560471809004372558523833564195052954814044393271680463885549678152485030430187034489348391333927658974115289756703785725676172585819413247667612272513856813988247559197241115508867368305634907597311642812714187527939347345886436317358861379805772931778796791950149695760734125667592173850776390061444165986182161154387195275973860719316643001804850647403942300321119716168179337446706296254517659056813859657294432011408881872044007947221098038461404255416979432174323048097947316153684826304407681403273616596369243721303947526365857152834613774514572690109644370956563280083463636901012379584836253146817995211839304345888297163516441268072560534927066445969738938323928682964600310448403443434973011582165124360189203200799433086755364200489863609762245983569730116310603147360003965179715610078738973604855810836351786548377222116461746788526284495972310524587759745778181297701889193913636196180546505975007590947896849186714949903211167385655584989422224590954256013034273990578840467510578259357474612415162850680350685661277659546563923912658469243907229871797139812948842636598876578465274301825629831475981855773069410049913478407360667262223178581187948038879341463656334068198666692728961089517778364678272113734234134390387361431759383761306484936773305631207634837013330865562567266971328292806482162223714967272108452976798091736575484627315897638649942166021580831174312776999372779538068564500194546891136480209791602145222317245686350299281296481304424133332100398936022450060071754645733838557544861806933991599718426191587904622866956372431599118384217189963490489113893271393545547012650952873443654493096390867844196569819609785391921485047538588993607060836712397722317989841107271413617167138826810420272135595480271935157940340871432155872578789608053503430263526610187095279099586936241354818952763860282366744103052912669862577071182334105022863403186407949642191005583074595552784000402121762943498204466885733079232170489449870125476106114306056725629332640813345798395719162955385869404148040426023770765898086475488692684646297952822299849101955094438652782724411436443423478746686360015451651256255910730783157599402731890064032176544808403986844083305092210717860849357917039192907536298146844994494801086518947585512200941798933581547979421331960997133846766066530526336752500787700254248637003151298388476221390514312165057298077415818757414421914269241688546038138951163613261561613629449596767258514257071155940520588464727125339524079257301206031418437296827586553285019959406966788840329884030973106140123254726441815190184779736484283718047554372910250373157213371486350144241907287112616407288894866420380258954871198994160261875856758694264020309939961300860308008593122159545979649335111324196871981568153864936244886173930981590781978216948466398454695517685181943474438195000940661970626521000771331211029307229348655609274199576672308356038580800957609206526813558579256255030559312478187202150522974879032423535956757005066024583380838928411718834585241148254171271997302507867315501587597153139982632176590292802096710073239439733038395016965225747183618700948201805747591379478596458011182905639420061580163964946794212470828773957325624797408842882770109691274385895266111080051132809079036713806055688104277743200197478857026454887338696301026676954878426702491918906742024760207616516821448482872503961368813539805575287914872184965298577102613708075792812822258682871819177752236166563829047123964768140280946938149467570927779877371698649015493591475335580193198823722082028057721699143786051197336138505092699646219272326126896417252566145116442600163046971201624773468354203941691576727925608478929335935452393527766111846921727703024796879587187236984080808661341179663067714042113840911693678290573575272548554384996818851837828740743618530316863212471522558448893832909736740042785509592375897725751460585916642007664027205382708440062207223605193029925264327892057310809683951425153163200121260684020631160011979161111988391332762859581738766743853496128090739006081643741219619856078303432731079932968297884364628404871281185786205609661829172037800227881759823081047858164107930808270895745544368739968548062205434986876249439882463426394150204413730769086381440576822780951190197442805702815802209936729893305201094635140958309693018812646025810683200563426579323850414545316344955401202166504656071003017394324761718776352523605699343201564441582284452598842231927395936575881305799349039553579895918477692482854110732450582114627518668639478905520569386287646649733850028335852918226223654852568031007209787401800091167256470204799984932128483268114993334878429929816400555433590283216382128209683958896118699807780794535843480723293776562384354975583106012005744898046127418344026194742780472620059208421671053672299606069670434149975365051697510939771903846653051751804580221475912224102543343914956664860525684086850159521039242361039813009073026264166272441061103604420094805658686001496450524281622948142674199656754271745630234751553547905978861530392552647205496412754309377164237230386864045828004834823455514678395574994770525300807512201517771243128956428722272035802987514929122259830697815255589778028713735135551532369164302671344968683966161363633974929623346720113796944331486422696890216619993417882744663059520585362009863984037212029289775450613364790017550047416265160668477766066875408676783085635754278918939716672787859235338265187013142598428400358295959621561447934111354163091042227029509577667618400576919795879720531921276342733439029041073157707453601259113724565709817920175926021240494122230800342260303243133480790356644374180325106861686134510814047452879395561624022760327495537928929132367881838873065399599725214569640559375597569334309830000250464119011969355909661845667068979735138946719829233137095319932751509913334781036860927410424477026218653335434417843380947837857185480230079956509879128793384891313904625689316520192905318810820700720622563429153888036256446371456680742350389221479018470831411316420878428496281576663368923993180614442090463632223983919468291572218529000082845920048219647119555605359735662328564293588874156498471484140095228141093366842940370186236671147080104290458158704153050988249676633207735263506759256942251704078326793489602118175870559179211115000215632164851223766866696007440894802426448832003016193996033399966365737881088328943200929857809619412070566240102546327519542081722612323626911165216562068577525560339027423918230591802355227387976475438053758467026106028666282808894709862760743775016598318941379659546710807326887356560085495898497239762303388798381349963759537334026520425406693610488102579705222213159977551800849496966196405332563726079619336457809201404149841277555987222373954246657837334520524199576128716423738857858221444302762548644738651697723940100873345804055550648997102551605210420047018566512207494293215984836728448116129108014951177109956961786294595947131600480500104707634760628251616654486894234837986219932061218226800734145441767988704718655128909596785050115005019809377461948212008107345269948116005864287786927631962356596447134754546770341989396314740580065128728778936712436537018700254372483007139287544447118208769644071765286113907319815260006915227893902830606939067625914101255501354262511197513106198701268379941696004059718184347704729730113517340025968025534445526019872810974832140054909337737992549515146352287691105232852588319769709877451482855422701076396932195995684768886611435014498078577951699190554322266274050126424545950016439751874319354762817374391933076303200349632991006514187932934410363967767730386633753775774603035087951031337078213637273838091829739394793105925915814321982192139300145157668615605877350655580987824923090508447710018924498277637526841948819038964470285431459316405000389924659724855523396438975243378754891101298955490781733276549836661084775886847535456019680860837638563375517729204226288134104980937123994363598803679136498331741811512514730861804795598087630354258251220754305510389860574904146934326430803289654047485267159184159303614883018734185638038101337013159740629488690039246849069347118055492539425214301122552520720314253688693827325113791858217154715651843159121756206113220403557464272784986649627129448286959489876804186789604931192563874125175973162704362547981727158007745906396947682327024117110996231398630311642128079306514692309837529875226195062284397452365135698318605862172392339443442129515073981416201540034285889690751343725264844704730954185729820949358711869620004172739821358113574923630189698205436704176267052868353191712189513602528620647366815546302964902761785477744580548855267424061870632365615487448721208831023779543313077600155303760125009792110416110832325051109693380997650493462112757867761767392643974690908052621179958909953126399843032351031973622832165004994903562544221689962121126130411957924033651999974435671741861704120444561851217534790732948648884804203843870189855007119540560905673498574573166924543569521629378931424535417502236989019568314878000760174074501359811292159644017129630921099554817885770412704763664744071563273732131907109980102928530963936117574072535320489350275109587566373858188879091786494009739509697391864669908420595881435704922623776123113098515025005561131830979916353768359903150445350930402798079164533733567236887317533129072445072837248096545192104332971464565357056275841952963357912109865673593227314054412824366412656080613106686791895531153708337592653573607012711812898814786267575340289684777534117328852732504877437107038457556296324606196942149853254965359281159883798370833621717275891925101570817062419990313662791318507066975633684984140006521618720612602349926934887420442078030280835662355948174149553549817897793850097317496601058540752242044691449081536114444031589485175768331929871681359534983496921147931638216670715473853338573446609089568930236381912678667571408029333066082671664577564036838704138773148111352548942861115323899271440480394668297644556045921134331338097535748789936385542021081579500682669763081518952002964028994389442587777012941142333256317077138053976365705759632307378007241767700712725457642218186330008334046801020406120576268242390019484427083118486916749849740540218248413673194663849954343141073145581134198588163563717389053353715615409434040281325436401039503750561433722537182409031012340263972236835152304072311335382694695473047201662474278635335465912839250706896820009636047965300332361771537772950585714785573800337745700390082625085916648658748493892274832484441844074516610055572535926330560350106640479706006418351307266758093650320214785572392930707248447037234335535692797325995179840418955251626749964876116323005175623051513173269359835193110655802774284692957035758049789531795253558065086813139563401616810501909815057904931901347640483002878044518254755981027993513351463595374440159424034116429298114486722281030977839026632124533980902526445311311280845862896627781260579028394082342098279260921223486550800490088248831140517498358398490893754812305907791483758086555472768156930811258286838262141644170324723481866509751346327035237562469727669149560239787915213292861341673879824177506313745035647975396721115377364331467481635861185089086456081265439129787586765357628590622956212819616593239204190414732017194638911819120814356094874552518125381059037667439420252745038650743210223431716615345000200325050557655715360123071862156133488748081340341179138806519982819208104523142379618845571833929848585238025857515430288782867293144010286298648428660166503062216162183564312756040149903567542371798089381833963566069847220060233903896129757589138665212296279688568260985755790161509406697946251745684098049922250562717783697642916355788438686335490602672163298693832826780718706422149926651678725674957685563490969562548449639976832024259059327656299481039275258062555269454056824681632605503007386018849173167513467449299291185893838066035208408120333286692470235148774071992208308389854875987191403571940506706434432633952357561374603592196983626018394542598826659662474540914591952372171358819622325772136041301257960069025011047315121209656956053107943308277067589027235734508017735278989556175053067992305120911976144910602312544182194306984999311147603030575430538586261169809899613900511191070770941833220991496496253561166105533871099744132388442488522758220596140820183639784128249034376348112431891328010979211627460278281145076136979477641046132287473836815556011982497718854795855032587800997730404021031209636209892175564328569910846253854793578301831432904912067018695243361096478993048937748153934726719022958800104985376347881239977867055070566320147913348899792946954010204807470559163554731137931964000262744087357727501170127601320380495162154932647383937221199000405157417585996359736337216984816545251670335943686892725957993723350966125397560783817071779751633136873672736744445344113426931859154380579888966405628430919684144570881441062995973076182403869581001168626291385856397211708584745514819824384130445531044126220336830133301011127263959098248695058128329719592411072580658308968806894377492949066893620371584300404432168677657218584374847033658765720288781433700886118319577722338922630672806930999559597150556253547694292450500038557600433928649917042085078280211060071787683921205843856281456857079190268003404915183072520227756044755818281699388884814634452534767693596439274946125029556596993222937249312943260602961147527377575110938760960259288782909112733711564136091421615758741560221093466003719561927787789975310385457761448053655218634703684880192374123932872820608535358334311004004259989204376910157047001860456074651372566907146422342686536871517080733094845439033744923707467455231774007531470368505841280966437645388628480555277900979188369731473334631872214446834076285180363277776906482249275879937059052232320037376935281786566410796388621486411513707126027976565139679480100610959298521345746201909716170605847021979793483383149354002787354446198158693984456983144984634844617912896348581425572757685475503653156113980352891012247865082034105920982198927636005837165963906695721987854586282606860231494051687726420895225410143030133783967926919984152323207933527807839764439426739970133737674126334793810090970151930127401641204079268048980833404789386450426632080668227307091170675271893368966523879590346664877832003754649934822912896830801252902197872482448984792713861174982574330845876149983505375354885888829322415766278225303285984064850264858876101184331885297267449417008284712407988000421062476045721260496297387469034214257438520724610179104350629527700913187040056328034569614303330864853988917925555904535854005007932211756375643413860251854402906096532173450516161141433357849720975291318857548373357187693076125940580432130727013478442373445044844052899980272565523384343398627897433994938230194596904757723803554816560293090309996481162105119836710770638847301804007553480075072999846786115728605852963992822617288289493986997255005090403515554662387102103764792754420827913057660465623883952955951240674095879953242448700647364146305048015761594140182322928497757950262334595840692739523125893458800647643084335514070461384428932165093766808123053791029303356543141022165986444847932569720347552190191861190653892753434948560659983548227988224330172529833456600689750461925950702556217553578963977588363717759571484520068819747316721233194896404462141763651029230339951231668526054270020491740423892200459231347481450918774953112002365069266200228640139535647227747844095733847751446485544708000587231435649635381756118151104325536244278765924959995846178395953004014789044761032941080965743690585210226915566819188069378589828140792581081408424184755204842012018808839855364492145406346813219291772020292564716959415834178577278693767680874405147590746972641952171312907026777327783789708150664158154861210340235901664449354037924769998529696718158623312839966788790120455963613348895386246005269572054923697015849656968632170572815108855966323496515208350051447847597444220011620785120167430058234161529499685944741950428537918065618337101862300670182321264655836331556390249329136512582985049382717739301179405617951225458953417123145234151215765388480769547486217282844495310534912857709305952936243143311352670241737051900548673519516150397633104474061418489123882872408998802573929275534605195642604626510496052024663905680648453350598646063914534504148310059494410930471187752030293213466777809317612245905192530704896137825637628257782227169938944820820548030882560091024683841827160088401755325742243844158602875486850163960149337164035700681400842838957229580361586544782631047552406705161456992750261096569563547503765706457341031880927072707311912131364430615674353268100937775560237881596958844503832592278428263816187385212964217816078847484585694282949316827478189329388438668025370957222776828018699802192214537599580427584414940452435654194378039994053657353955708825081316514876534609028445859914411915917988287161142037449925327337449466167139313028190480835835214686198603015018698063281435892288541697525795210745948234868471808514725557616544679701578058754752451856038126478304766080504682432826891737470655332193548126690043704638733471353354249681197969524695220563394175277359112443846049692649585307543717601994948625536938520224286170953611722174059324724096965467466702200880699910481029369060157203414389709769646071038072667888016238615672840565075963530407866403850504915861975337376568904297346122567166622480544881862656272195157056326000068547071013474735244612650917662854232987233934021567816977619741584379204833281275704718551976801711395757317956475364888369081419883939991880450695066109458518202544467259818958156987989108796274183905386496451976455383477533702925484990119004029718581556127263931242364695538859525961934119488017914906149110154589082099235679750740511138901215401166705877387449653061211247215665277914979370242433389116112192595761992425050482406464357950839942610690972771962946396563035830167198983278678883281031814321766781430051255877701321313155640509577673558385197500673849412912547672504252952062894268404706096099676754903101126330106176606176826971040445445894324888773756860623255784928547960953007664516750543361531358492694190243449120191646303635406991297278217307698287234370986681757446503645392793750665770030650372740761383003612077790414419055439666729709404206867808496934292260080505316581400196415612886731102250282533320302679808312583339752308914348886637504329261713740690221780205011777114323144756802206778125497562748966906867865826943224997509039937348090433196010626711167818662985763351602859650580228455539430586503850489881530127806631585729794280358590155807675288236256667535435624349662901623746133568699519164932540314805275020576983011009540754308588885908321930652626840060453393147186992671179158291787489254883035699717959038515888353869703913108374807150666950921347106604349361031441166048593686200492842989889288761218833229518669502048311316850361864332565916515335212571956876926529195986300465275417416228430922618208921556729229699157752328336363376358839917616268229898982409830362020302092053167390346356787253183195812719096506256187057433111690239387378833173925791475189040057257788257879641993767930022337783255651034634163683094472482884771636593366088002675981051041068926150975781777611016941351831650767275571794184754303349396610503972799104616507732633597959512693531106188661622767733943865793888798523417269369554106307447332492122940240385018954080265548187784404028962888040779639270739775596397775670979505870807803989749819952440821391509594476136415426372729009801409848193047508431378732467841178433045339745944352045739180154888400616638591087152572684875200468488555912057893494446833272749336473970077646340664110829621778400371989088361027770364682880611802295647641072784973660903297129791068738587383718732459001251783685734057978792234159739705799165052896562516386864340415621114954716851100169820576292894855488945169883336478719942045546053830193734208620820189521100046137966036876755228738092104639891959002479967330742966015370634174077597987340984996163173103976122212165653379146009563438721862585851424586049255713689094820801665106262741006964458438551130235701356247209284144444551175616546090127105400650104109553625403313510518405704104532319851322714831372470027214995594845001986054777573159053409910000648145627208912191216637863031984643628499742544400221495225972596849932556407297169425296808380369367940854399619291289990774587436083363671763486157146455718434896473022718676268302896830792196276693521648071464350569588799947296014058291323611633438355604312119744974057576371500890534871694162849857074856311707326367873194782510098437460592868672329969361379032187276807638650133748710391943479292532016288882792593558824283273397886032709121371036821856131105915550515623132976271401250384715669200021862973675145944603592063119376317001677783578007678806716354623364071218175897566182500788929350878707709167373474427790082129730843008144892475035146910632927062815221464401463475935481977922106492080802156584343360066998165299544657763797996493476608448647939027667815565643279845420181017023189249199641100002692697117444152147639084944458733314989804556961903773017701504112837915699312487499058212458404858646608339156253189278960766768266979321304591623397723606745225881793767282033048345050968299242924750232108833496971874678734392511015661476541148938319057600183477851857908293480867747027726662218267393423817800076545583539842521676550226551430076154641171093094770801741623832719161139768124776291325262581308923577532733303242216083002299157284839610769295826973440696368672016875638655979887622102003614845842349462364734402272218495087022465653495919190613692152388648386328873789376728123601707288980022469506915369990315057102419882058895895018472260094569061309360313364242550513849743319802129533674802463908437686613579784657543838551952794130654148975548174765448777518477483396613156052065233739412681799999593882315676775426931307395467558177342955196162625282782612204365531595370281847230597551389624319423203815256062030328139153863072246867581922654290799004992919064518120152436099442277368347857135486097568286222242816274241472673663502638718019944619057191319132977205841053394412751118315568573720527919929294266482500593465521515505479007062243389651782459794299596590673670409066160912274444623554581339475005321277894293663659723429286807627023871192144521669567507359769542491419581156448774495480055980460303661027284238900107328960165159040070776662253140523132353740119510234725656782853983843780846151779413160467285314161169540859315974564491247626195301477816341744483729330711982235807239000372911746492753875398722854055982926117575625854166122370433980746538988539051008813600825152313814851078039918306273910931540721360111152622585143071430812283488615804227944667382675167550260771336788852385866434366664120438178799976252197986153508854174020134298419145468114003164525488048016177884678311524575796781417992444305131722266263469314257401598469457976134416701939794916021811802866962549916570667831645337424968945429542173616739206159985714903281457118592573866757727382430959452574375222972805088974614298642785362906049030239504878597686666581769321998210304247025174780728171008308785043409803251197435289829819813719969836027926950535494631988069742134874051906143641475274321130984133547907403516471293825938711738637794036889276893477255125232955336746718861870079265621879110382413170648016578570476658074366021304757988205677812268060376282512036671954393720767642441606839327043868856045321542082640534800100115337238982525221337132004719454087393069583308251246849440453245192164629344968527405598382416710528643450720547929866899135350685704799860667155599250929140901440095040553772330456131864537856858865757772380438964726509721072163871293119546079775936856410690989470368241682192998274651811015578612497129199880052910421380823702410725801554456887830310531600643495474152787407649883896133828042647521799756139367069131025643647480338603305379603962196211387288431045986793171817690786250260543954558044102254320800360046960771984584024147446407327822870654820627461988947543874377786447117237058897109069427571065311575891220475670182959651584868468556673503069265797998277140768380449047431023942062925015877537699110706691755087206469109832353129615324646405965042074527050113117760463590406991412369186943754995401308730211548280218494080852019671024127443194850840165789861206046388218052846144109106118786672270436480574809638046970980350859274757433104673119445328419300792884960095762169951404486431038186818808751905092761183137325371266434418449309420295229687232852891745859739299723921253833357463625155939646601344328219195946025603317634773009612040617382643400321585819166793767782199316083849961292620845667660626606317843055919092230754546229851578178732468481295157080627437790409048924172442813211968008348508796731213199701410938372879106499669187653406239960729948492215039328915224670926866040217872791841953440684529142716707872007990600854058275039227786696870458386457545858783753550539681283670835391238895869057463980529063479921941690397268221493529076753859872151488628972093411612610381017814077081400200175850749207585298974511375670531508595897035715805922892473592398077819465478816433850055366202574778131482306147007223695640661639698639996123847194112054352165692605920744564741308454283734775921261004931029896714007398989586018966551556090241644530201331961557434408972072164872216083153222164869200362727428195650661486599846704557507443304116689111025917301846429923084981628021650394183667141595449854135511620102884556742969229784974290177949731313421013463664524136300178294208305968585421922927547983457049182160133781837953454637655993925336981610408366001858287471555197367786480018454666271389792033475519760831568693394332761678973282252159291967535610941977408988107960788043389605188073458491115961023000693405168477073137000478745688720215860271203535516955300774832900782846414370451822070413408492361779667840768330791677575752260662955149922759988184906960695237123900787005805920008329462307319823579966171519021615675110201625165852992198434643987424298768881691232506278878149513700739035675312859293350468112703743098838081695935248472819310701875245251992017788271908488627814232155456292290195002504422822285262646862746615324843174110514290274619446023745004332589257136548713529915832090672724719748272325576839071770235990408226134286845275085803587541586885021384459420502883765935401383818198482170530050635547321623640686324433749244490906866680296530980111329542849957840919502704897354138131560865537098688117942744848192319111596892024497794937877768459085500143202747849137439615369869053275147191219460856475051175744417659705840245484620691060483059554663838228797375781734301149750706328361517173876131227113094490287337959947075690646200898396290471853805352184810520657868356704380285488446391361976959613660678819183213206026123996397023819043951961740002851057576040422400543310198254947266577044402823681556353578183661691348514829797937932461171798630088298536086818191510980553771380421634263293843476890450498462409950508346004842310200481237418061507058946245424231160066697682156996212893571592241146483952819408659536769264501187540313147560319600320320551977656617938722783382575037349827339408047281382272881084541118253491262967914909724893535590283866852193522749525810643620384383746997485908028659944272039506045202900653137667295778847032450127591048327865413942369839057201343647247613036163832254882486180919858152463938993415577965235275629586958397499923023967479317399364708265712406703344163278393248760774291503602793382933483442540747792080484054076775949741844742440292875883326803017165958786868174400181418288137056190783970503413894061245175983658203496060849284941000508433781648866304138495867591990058611536405168038150130045709309282409981684312641850845280569576753141846556252956232502875073767359164112349173007883195556857261271683616844698230870109345190844106624971081841043732274845306504332183125108178749910674972290326610011321055685619021441573191140237883145141731084744471818006122306824263155628944155630155349729130865996479440748518210802695399951514893113953288702101791090455685707023110588643415446854790375181692438700835148191825776504458426737509944757266950230844441889905396917244576210030333661163603158599822570183339061013586163520198347029042195962026909936286397406704405335569194301657546660770556926560481888733089723169867167433063328366377602211206430833993339959661137262049763093162734781156796486835850992210102021953967907738519724943134786617236982336921329552176680608741056079434415464788305514662814414689288585399367223209330185711678888234992531546580517310225028255021715624978701112958534628810250233544206311144093234353960258911609510528176206186289027297404947377479390938458864065448704248661269962526811476033121907301732496662586229587282393343624402872447093183306370211088136663109497534164856138059446911971184632011576622912140492559004772936490573295415825088362785391417966795714141014758050653370730408146979557713590645156925119480469068135636015445652141099097864830158180982175384955256905614067639873329066124901806258235313688080676589836604355663543519487723957947390927035179942275362218304776030750599041258501923481502961814938003711395300056301750887534330623919197326513401492164117377086631597837522293189177107617915467525856691054944839353003746527614209808028949306761825044924441552505037874960116585394930810928434407426013864260571501537366366774288340847989707697736260606390595421072373976910273736097786183037607923217508468691322121014017106809382270896289977098130276426255210766119776474684623623884223311507805680348532904955988066858037330064771137942247281546724020770784287335294440768597411309502932938032513124352243044739949776991319347115547811230489057742237983972022073716641497284938264161255262357841811551992835816183775796408280809691515647048782608794895302286808917723834492638856670832808255203665737505438724157162546595251724014477063740598113320175489799762978175520650943633944624181380586060073529451776612974223940184380317682112556398583960628649124902561683896221784108986759978712942828569255376103020455068986279738209101833810245387028360516099484911999818609366605449120699409410721907099388455065104573744736148360557168674229545112754464741057014292259923005445430924025933893166361622007899637591075774293071888187651483902998726994409866310155065012138234766924933707672033588413747062662871237297585039174929143450649850389005759111052567157286282490808689462071946307765931457542792877263439607944908502886367668658159899249769456589067033485618781849797006641515949531402413498411930102915748602468354332618048465280401759966296255264500204497378853803593455606123765757831934670031173434329089465485544966804047887364847392197579960463900186491717256584706609774382258309770428735862500379594444074540105116633670211868801351806519751493633891846466749515284084370919047193568388528140800523005094802695257352462164771761796368299489524561367509339355589119218827929371979037583703317455726205127847780413739134445323896513864937718527780230998010025194027977420282253652987976652868684974093520153396490884471241044126513358133205220862349008714659859640483935217036913932732036064458371643797681813707391147459881947128098630989599455042178104847693846704038618916811980833126578994179602466465714824758609802893846508352963282707261440490629446142854894307287382419676131577280198545234931844239891859128276755893458125656251251093945254050917054877356857266727828428580036324474095367463852970364023944079255058386052342062164767548306224574970861992542007622423378924649540321875423076195323004159450746649177952987838331416442454476842971085551575687180824069617607024936497207422233878532417369576185620206649141707646763314638432597045794055320406281820120863803262293765318381915668706390499701998682089329129695629015507573713856758454230345443110110870093272892877212281074376873989497064636441005002140537115854182720834778199509257965070589077036770209512466538970451019103160323531157170902590115421521283383447020675761290632209346583038056887544790520777533994975416116369936363894340976176213664860462124285286062951320048633543114254482572583378776894479341094090941475009765142121117536634584893922515192499822584586554974805426385906010456593133305375698929246810637932470765343802602502050222759909201837879577641623355943610274948928449930390919107435516376538098480549871431663771490083583892248173575811310136363794031437010395694796605391225136737473007742607363122721729121180393126266788887171897131326079150845565889342314931627893597796667403712896559629864496092184947269954024813946097265223803306824450453533988308992717338980442552468482348036439544838044892458744344012121562592841785923015077950833463808150835780133030947505499379849809206602187189247554720805938371875660054327794075928350773366778148599700653712817348123009384252400329064064426671889953779624760399004085730094922407084604728176491066929035999368086235053697648360826820457305874940892457310962423218368808626983310649191248145821195800464531968397486640491008767093704503815755080308185475379419288492217504343701610108199929823203051034869569433446385691491060281411661964831274852035915628047151639932045131657702347093039440346399419744134587963459203067428744951524158873645616296559378620939950220064062553972953193855420768762041559901541256715149167739557672525580468876807853930052947031001289395609877663947350198333184000063176770878328872063735804220787904011955997852000088877108423780213356044156744194257442884175562953270559109327500254214006248785830171854708575781098941588887548044530876170918120178950310404720782846520822563743238901907699896256111068845415928517200101707710682132326819463685541038320415651377966055515060579907879315877613791011990884166854089988688298933407485238797219345723022195658936240797645992825322738809180551074271883343958126733904847217694350654244653086385324230934010349512343142805449533914554430702695905768815616130942377984955529203141729176783420534974172749536816582303308410732517874559415827730632880554389762851442667753273903337635657668600172223400057958211790109656848436325503119899861122653602842494603149069904044607040994333364809606133337260310083260576019924512613887809051724129955995194726385905708525295828074009466696233308551105055274336900999213641136794874016329583606117346123770785184226617942354495947829468271505680577194216582640100087000201825354572132459829466299387894279119897804040552995522699522442728325274006975610947073900563632640321654817302896326652652492465033362654004292927144075519063510289429344534489563590601215692918877629996248550059231481306672519619235595455956657586860151963057755616874975112994662210002400314881656074383877281833397399502484106743813217349849397796551542424155731018100558132779566326746564080568533140658050409591758578969371138625494419506031710155190292320760755115598398387330730523475462746224371061472552659447137124852154661640142734560863681118548928068553354250901851618622923768210938989462567388731297858951577148994495526663036234303532980467274566498935487106592239419899757891551581713166354836096525401356961937865553718630034696877793732736964554085803045822449791413162575486347215571420658187115340084442103567262264498979094615218335693891582763042258497341713103140478240456799452805726094694535606620092761384592811997911263115204238930556260725098562487931210926157025614163192360524481468946848459215497837299072962277084818503338795536123623522843541760660545079476710861333530284501167823532610491103862149652920044371562365579345689684642225168357548486215565320722093910180271804486179650087424760644704523288322234233392861350444724305433088868987236740168605060726761518131509103455344136495929251879935683095581668145489004543359075421825716664800464513045942964191445422517237494465366668507558692233181447901384196080650990151841536853856168748625980167954885461536781687906209371793703631420681932643264725945256492883320430595788906009656941421865106439690011298218444294206084910523583582200017856492750533503068660032749670822056694089208738619259582768334611784900555025754707357607606513148417791288651257146470921103113528067098821008358612321958531359939231836454339532405356109366387755671769593823128778045164524712562356908346983655800543390904985132239739931117653245238229249350999042580339311959715798835005525987113851236652844458587248483674313358519031484045562995721570483529438713158853719458997162034105815355969215502966322386543847946532411712565854555155273043478797443084097059796444528661107445540247688876130221556033067939861950392280028150453826453807925978488492977711884480610077414645283905839574654972229811210290061517103349855143803410195297739589136776037410993302779592078996432028654818130059048942323102175568516963079526598151468500834561350918682597862847735078608570459047208079371157941207199166735485223989686614808555248285692507596423060471010831670890295298170158872312988128743925568928769091385189152624379573560605380588415611663660852887838852724382255449002535638956181933539922808864127436056316018535561209407778639956384964848916191212170703281474839820395625485418754077511991252091732901213687215111588163019523820523263268762592980038494094305376571971654215567866990596713745813789867317365535910642649413104387230260268692206091447871796791213826764016902733547813941903020540042422684822933986170688998433155294534821150158922036117959102694908744409559882275129365901540420193079529631809645511134346299013894096078508539579232317976461151221762548717247115132460622384078404342521841733945188016737929896941996455641458458415820240174464843763207571715088409511653634226289659450576628533500886055233105213990906581495485398321803419745807408396237480295867130560328881457855030646268824884630438401796082498319312879732773529400449897086450203023930784033205750735048353043518103907833745171135018463845460906271233582563340949847836822046604013754902663598430812308659378282010956731437854671385539642991218949802166935965006379289597698497209213259973168006091231179205020228607165309234435144470321465497708097249371324007810591082696267989216575892906103529151619316929916969038543052332255037614009577533751416455295834511356873262350570408882473596411428796147621637326507521803608023066365173651388251744722038005155476344380862553069316919310095830078412401881504687366238630613108370581745512243846884916226638316966232599167859730378229558054239922985889798853706860619088605472496954798323704657309183476618186635285495353572684091471827563054369420340171378655389887154538836617557779875423616005439238587467194565471147878042728266181742678851114554418996277762453460005702293659470038154569853099370881097689806361555647355841713000888224447723130184340153086088027467384709884905397695505727526136675643501752748787695850390217903818740544056241800193503462328331108378758119562593045880335982575810309270192951184310406568120858065929360972692410871341212603405975386401902710254497497986251999687284734498227903812461955977927068694391347820438113069538357439405919511870774788764380030930065754674493415227021703606035257996863865624095924906070441859721726301996587493306609428103295793131112744397434059775130362419953509292712669765575275643214069955961694083954619043527579942915564495878530909692298360374821795262519873994639795305242482173785618580568228235813744629933559009903621098174780822049391890384714547833168845693935925680550753100296743865261866842634090181661524862404785494755236716803188711770559339638336162206256993524695857880295398815992389461822906558354714887985801738875956037859705112062065304581115003672526279026800882855559208761752450436732913819860965412701644463013914160723691779422830129064588987209783655049060675685182830139440039777858747804886654721931910690995765523804218280650864260826982030146513270147698201709639693404285950712345197185187307232234989401220759308408776735122166196803499697259497428675173604135723227888364515595974647090992891520020325846003331491724377279652580022169721904048368826767125503505084382073016558918892588060134713676278417937939531194961902190923354117607266064998878982280720861513787267050461911868317356831847688797273233491339531304793169849986496478845784038614247513706965457268780046487915499916088413437325340733561268189318237813720866916390323473447298705782198942969417568906460468611246898042193023388316942817018298002580874111389497432944099198635812076621638432685313294123328579633515781468165664258984977558857613715076085497325968410998407652239288261953816045774128742790376757656592092521482861616515076115316762037387312652880942375831932488754146342425708188003726852160520579260204253468866074384419581044421364089961856334210501779326290469176870286055314345333304770365498016904200119211855223154841620224095833554940741461909492050339621904091044156231955356000488302867099603127031321489713081046089677150611991998115777548089022161130573022993874819042110240947024286050259355661709562089576995187202355436867647387620473996450367968204386911850674073759891112953518318192626575289244145661942877018292258888112413828548473607221370442565931616545220839507743636161767693431097830501590622611829994041915488865767626131826701368243231030552440569727711422754032876739050279925128628596473288848965765246075929329854142562194558021950008267432260908750877551183732271314631169171894963583849640067990802420147302717424273879173553942148444274773641958793477866881202772249400432915253969735824557763917050429914215013229259310764065989087571376041429186486189176898169668208038173322403265778127904394354275958642367165408870251084891150597409450980789041457516576896482768709857411024342439389330637099291072709176697241840333333657540323926310957832888274146026626185077884836366313222570675116314973425472804508969318830173177161015710078601726081870400015918475914848430411530583518210986747467986934621462980322999688095725979689868026220777821917809122182046129402069774098269304695454458052904418705931128378884367113950840231717328849310425560456969627915778579271543772300193661686925178390897215323992790517681339926012236248255628011961969079338586072927915004866743549986436411121639636055733410724897991781220475201259257559733892278016364125277379550785332316735883227017651908608504216052314115421730725132061738940957579554814177122992819337567871851540936980843559056117726431178157494139175460096542723112634457183846697747672056559996115671343811396713347673083951523023972794201363877667929438586635681940120424521518082176132350971422025263446379766292559948545331518365906081263749593670119867269097777461945364255971997459874675286095084793597670601976401813979865899243854655566620753398130343565982226986150865250993173062954801722939606211757920997300382216010388383616131913498149087031971252003590846560363834457100513318031732685016437276761574618389775602240329278978327121497256622754571135028963783278955331903958222425605471966049864971786799619269975168370863999999699342212714684699928225563231670541336973081563473511143542264299420136698584247866416340034595491382200253952894602715461525583132189504163382565051015545314969404584456225625398356646331491136781829344641167241531372422261047998611528054229661601998002349251329680061862960967980456611385537530553440046655791766114258726000564401118616073330860762934331236836513751125764747667084540700804131826402120476469056852853585607180848251099098205939682692625466453351928064820239594975818671072535354118570475635438169892300183351619388335364833735627815185095844097145264213950384000247263807798030688666384780757940869485623339504791432591054250201169049957499189002221940434912438388472088038827572454439252334038600168036636290700494460602277620886772736884168258299249699399930163151678958564273410011088284950954321433720412977283994118455290988590219474919755942597327131601224900568905160139957730177089743640449200794645452154525221526896132287790429882007555166766560506411064249052101823533807669418189006778489798433196601437467248301458511498180941540661063103685961576474782878718831532944383551680235831357869338569202649472847277070879515435491164726770529021872787961246485877460712393523671372016310628233277682973859519153995093856988913919972123197630895514119079211750604867576905531486638127085044623157394064106569650309433010361222310348300677380708532511989100201594848774503486838244819918729679912148168404147426552505967462194057452029157767714963276199292516004308229951690133502918172961898985231119690644300967006192303021960249687609190501623978375254398928562860130817832245274037772756658119210738005610176014531337924744253542909294363487649666091268994668605018977680885510287590994555332686436946527924560292180966419178775952074749209519055504400624051851863125743621079907193771178275070480552370268515025638627963962718017518910427105209196842800613311153088436502708246849639614739163282915912959127701711034821328571095487083332346227826254129354540921185328798324366576843543054881757898691395469342191349456528573468350383492908358542641730750796041199590410035952606845986147223293862887020519066021461917729680203565639513235031489946078310030252811775763994510526887269908024630246756794177246665477358909270902218241567448996003675887689489952793614539924639140290964525053559951108937136056051647752844773402838259090666118469089143118065144138856574663517893348012588026663387810531981310630536729487527097357134667127555385628235079318355486853337612330119387149838266592563460778533043737066046490332600812409520704208763360064673931437576546049012870122619959227575681604308171181399961828103076012780792182372639021806735027675671927708916432351051809366858115880699875325257361504196535370668696704902360243178176241859994786661424290822364846577967324996554355878391432209965917426421680478819395888233411388868414016123757814609717753409441783918212172696972790783844452980366786203007895951038028245964459086436134535638447613132729972362509333282159794688958675596985502169088155194555678179394784224302602980219948902945471625570428010921551692214653567409207296716106919495285691351195289226703873159774746690257219121299334391484121525929151214967753477609455211086628364273627266418410311793733567114495896491402294542207522722157067447733817233769116332644976033023637359566348021734224169008706380223566761383712283086536582244719364781655315721681436851308999173008189187776078234654359035719752842694372077539456893912267064772764695723058204400761582558933154125682464699569848728538287542427642292747374280962537688889367717499879458398253958571281776520680374289523751504554891722902890740257181815988792262331736363050380153210908530484408574832492623301826976756603728641579501346781253697673283234598876536635347113970585889765893622947235939917219674096930158071588350044031167818496076490115352199130392447368185033515368365833068159764224558485147041403190501723074147473411384994472575578625691055700249638000931111604894612363526076052093602581046861258417782515913507156196249957807044509439862795266772893908406669940184125560391805883280334963003999157898754220091123263833452848710819439934537498138133344310659085112198878062474071051566765946850093908315569702305080744245136115139871561140272962485304636064570574867781736059086479571657547625914139598863229020388946981857847365353507669638997177822627907763254468764911152296373965980009870037450857229618431552090982261334132478776367362470747929430632860862080354080325139745900369863749868025951696729786059706273631614369361021833319965897918431958539457030194774565706300538976513617593573522202850719320079792957099390820816499480516528017756612232622721540657768056165771469836710464415856761457787515968704128217291055466537214554751360835082085043907842197647741520136594222928593453845795314056570431474515674787142159482386752580575531004586485753382523655618228134702860510757308139771108739540072713959241024687408896535870974874283496224773009917002445138953729579021707804149263875059763908097297923958030508759984770569005876088827373989132862523983070623651238785461058549207301967377805982575848333250434385458250405981010690726021883836777001458173545756298189396763953803863908721782513279298043086875433508563814068659359039076302673047124947686339914232571351378919924668116187282913794130099861800247933146581555770064928344207763000560914818696572345788169055595987897537841741171143794022510715130066630983313952570588921791634058227859862375108848451005109950319456304774201310092144329611766642304932507693514024606668472690540290065861908237070391681036950926063219070652945370735680332950208574289374017910502185096702441055482195937658003989756109148788959023443766019793342751365000587674087620084813937380061875001521867661724279311648957149828983165699185356993354229283526573402913877916580940044787064865490674377672024824328531436093538149011283576967019793114971098748897249082505035401156086323837406972542990875606761668564360676369220021334415759642041176449087160395651684861977399942071050448178157763872135643668300660462931117994642224848585032583768533867717680254094571405049699629203879132450548385906104693416205013560668886812790423615637403379253382392841416260250362834302851045465423145348417710603724747696511801023779218278176228464567706972061689209383359341873950046115699135934651526391913559463662601732468619186337787491044173752174658790155506547761171502034754209611360158384495328868763387763582959372682708549374037073573456033930535191825264473718124307420689641930429945380379993275123673956018233216449065061574032218351550934286276014598641427404005181813134760882315072491059342519980334215440610736740718042625102724218136643907185836278866012884012653723582137448765110877823251396908640168445262452678109100080164701332667674749366699612144635524361712821507415609377614374463465683809618427053421113927291370614557836054222415778010930279657765632494053964019578751279407478438559869838309518351707273837091925716338175402174160706425241516597146617951133600105888345806508670510916461423111340565564284284263248121453331323605898514967861890439447494148080317623737622857083268265698908539814356321979707024226600999225729731530513324468845215645020393501556571323542439942213984788350481759279692586691335729582441665269923166947776429513279532832159178900990112648925450929456344595083919989984536226076373639507366642080625991380097509307330405702826581975450676871256503756474321624300648699565681096768332553140647214081551954927155315669414979990158336269432971438850435341579664890834468574218100013463698088984501643200947851329643188287182327030953423632844994768901521887303959979000423363028934012030761306931427726011730015798615797983796016285300844856189857360278892960566427323388539238953808419220665660679049916684056446107984179460407822823366735565673548323065148373214457069961383107481056349600190898933389103181232953157983387995412681069388778775579812659491621383261357126521788517108467485173776501448011190015626356766644483258532740584390714720051548137217500803926558483601047868277162128644371286108413798717873004437604480417826063387584441778282618837441951890761145744224054479741114085699409212494846299929290671535968756414335178652456996081574477708611256888190199445434007575856159942994408388634493672996137725117725654773802836083770896342606615147363769985147528716862364517458351752941856180103069250610116845820787461178771331887844822897359969889307045621841878610413281569895410126593506583997382944698913332429006294119195251578796544784150164551248522897669769440465239300788729279291719465118062258512098325198572004266655753970916265754848175949693251285718342077766933503855533114422628364497941478536583555015354617527044181670149394450010219485437699135755750138790140105592824410368889810172387454695112482334819473743411070386401091895364828638866151327520080473698788134282062469467894496680769826341707731118311940591965805144845604267296692542058177724540896424799047242835446080917316632850372605145301180853944972374038658221390587545944191688558332710972396864165765184564937368957677918543168480382979304423009573423149012583538369275736897689654670332392556813879226055053080935750716268439819337296101847121742458687468521590754237734382141927294692090048187452971694049609354779130165427865440202261725140927127209909328719423747790886679414998493458110297269864590268252744877611932445098423607273206004904852391974029289672236463409769131498231722695286384355074196765818748967925733560335387303932677031070174070697101964516686932900115121036797434173503056468981454566348583188590064266152478910752866436151152103376305564692449797717827040472611501832237339731122192975323188813124043823128770973565851068558195210615812330921848168312905465078234631864901443461162143799276450841328931073088280102074389275405750756726580510669777325984776578356677540619469149067132878660797444420829999658604716061385962275245041405403525100244459275571536604803002233327370678794268993729396562193936281509163938864070470929188332692467624909034289597832992978061627957302708445436723163989152037854849570885220897616932953824260278887825847523513219475373916308993303472123401245138631478962356550388394898025561951218814481260768974167115821680992806840269963564363897045959062338539925639293779973404690787301058223107602077498372993252910649674623305629926780605186095224361728247440785461969044319980811108968501063683977584797522124695526865850247191062485754282555118809512577605875963661784306810217876345952033622247291300618625476519530731872499804085317997509046096844352829397892551072902324408734163011745642152073260728006492342105001264848950128920034147686481466351146503728158134746989886209730111336542327125975458986724415894514469252672514473711429708977828203597648750913436016754739740094049822225969317023745860591755400905774479983987734289383100936506838013650509066780960907885281011427628107929462052869600925124967520363600036731653888978620567868062787698339362826286089304914976912971918856194848467284496000899811349138171197642684703452322125138596057569156753329261466758260279554887776886489292170933038045926397473921111622340908359494811313507600910693077669215212093867884288519678028965260144336148077026365365613124211257234592536345855313844093273332234185619845931761841775948723967877093238976287453926759528835568236163320043210767902398045007303908046983706759202996862764632989132422674407930800814336221564186438675922697982165073530068219661698952666408133663505162614657399067779867974125039732178551464453249843279970495526746390385590155770206148180746181262135537446116927511545078927097471535389449981411376154231671173876825668298838988325618173577790743457616291062263699197432222124854317692464898046695229773072357735103219362610239570680871611811501328216175280416863002519961956346307711506415803716117393660966184470657683811664422741009308544454709408530244240535892101243795243053350075284990792481810741564182941449024044426240120154206883381996284837816869557057858997323506268909373481927910921837064576001291478700840568504032749090574903312138422521164984586229716457154106894400194986510232072147534683626138053752010074127597268200571993095244057449866401612555198993996425642349315928630477450580447211659785656557818802889318913005045937438999310571586322956876116755366473855513703777498452177100352300023491146881035681557206258423846614157114379392380580932937253945702075964369740578823710794884197057732093183034907229897996502263300209060016489689341521011176119764590532170004527667252261603107053365469424367044809695682867166877543676080527272662005856524408059409012460448098430789899429210561923555454212422102367007097804187512809193517774603745378466245704723583350010264377134685747569212441722755068291842029139694199037149577208554493031656504839780347922351376155843208469626096113637506121949298182166974692625948513623025871948952365071534146223449974551132235843588299835012767303054163075121956075706406455511237545582641176937082741958635856972030815721774439227200750163909229021250714755150124603403924070423993919891315299338632737158819385516732471052920503072212939124554952168034277828418420964246392638792752707725415532688259116142673155431007673625084040925223480643084499281767293693302532833446205692900350514754678810974992146640699255356384975436314868242561211193384127738202654611142592513332215008186055196962700302220175522890893830253758360998508274801045771822597987003378436919577225684057264904396107481542029546404422148725936286693241657115662530277954174933405355406922478786881591944261638440895613568270779505911751059298859228437814641286048981430596606116718138107062502950645373366648264514863338146570971225878635100261507743426126394165481133031159238363649656427579006873242959303052690652131918287461016289050534517554471017206715872063620665831563957292574374514338620473912408022570943766179872569979171997337924484928585687541817026825926747160445516843945895042659398891273418830588242797995864110215707058250344296609397527863208732692093598775014846492754641677352837052896185914025379154647641859174345863533517926242450690443851018660183410459676924689081131967453099891728580798442744963701906664167096346439722328783861196860801340965786588033396775712436493470651746677111440040255180545665531820430427668503212023824270553242918879122954409549392453195668984832329052879489375337860017658117529647319521625230598874805541794684660754199110087699580697130534337474264771852768546818925094350882754973216407051777322505888733595123396241572927929458717458368006896494073220348843738787485800372709278130096125847988884242172270704188043583052619174530920712046737084606885771999536055881987850476200471111459141155361022850263593474561269854294115455950761140947849244327410800616454114775034918475424124428265299303406675827068246344157255139723299390920039627728674532919925277362175156509503152654248822520173306301630816954077200619734166556993874645144440885123818469518776526694176991641499427994537037522585798804093786117723500959453171684317221394200725185140252040481400745753682343742019381924621684582589330283168227073023721608385587937267554011878502433820914277595575068014245601604135296071214355190007294843177806604327661588605883416503470179456987640972954895180908811428310937076937280227541341503216891028085989654292006332056367271629962605372868985904309655918473713859067201056443616260309736645184362318466583257303728458739020710935070155058563291070858993607107851292275893546036895044716595888880602460771931283988431438367032251518031133502786341863018230640562010335078382721850019858957873679594861768607153252300218553785794795527602151145104788716579621832821949104606597933545801227541563542969547111385880365596541514099999321925197293916202949057387834425939373161440801344607678146617404821629213980721036228860544931904632035712762675632100168389621401506430461876277616837199546923629823229162719452692029918659106821050441705960979754299562869349121123014423727630682003158834805323821232726139456796399887959255772893918477083105401742458422903928572758957865516228423810091712364206911304625108169772353038449682790385880348337140097910225179587669654412925286970659364339819323626207801163879703934004139125875316811908412035679832079003736191362774068385456182002141471837688675314760469667838726304007170772517846613559181506578771562240958304894756012148740977198921439936291264012159617979570525186933729169625812610891529250967921567052156571156589431287581657423643976026663853139840871084248957851077181972532604934456044297391058808097830343753356974345113396900701227050347125002239790812388936899889158836585793681415573694240926961671898661489663514614947389532321962237461467783368875068532384712948867649696263214545764318339784393448565791794222640302925710551299671114741850980274197742343424569584722312081326448170166532253106325431830273001793963115988960862046864394665708473499769071357469928187683930522814274515913399282694574291584998875800606297719276576445105500761819400550381948781110089602583783617705877540731294176959848771895552805809202396066654496014442725746293041912241824860326611587484174993813979561400887094331595116524502889588975490381963007336469926520700899136030140911097676385957370600696164137852639991235180254539971952556953387072620203952343369520478366692140652662196278652319607802875139740204396190469094363592915239842542080205425025164048596904182343343680990613518528317954698138495322448045868352655333379044476695965518154214451530838459358830594995874413081525780424167424994526603456611019640924919735968412428282471480398566572373823849865578154475344742999619483052479412029091859160973315248610156986006287854408512744494299738474841271028747766742909607768249117107007741542534279537095097230399231155722956638362073040015349116105690113246350394574897890217465976600860546529678820865763775080855765072521391944191695287224817122775596090187778785988783476394705577941917302874231886197322079152396510588930633755265367199316047668447938242770717642847526821795180514542806530205056775978428595231903839032018593791537423873095527791674712417515344373409350185461323193266196945786348610339307106651983960113406930526014169485444255578033531178954576714284578178535091909152114951268568158716076483552356492270092489388827854776871163617931229405899530832529651619130815419249584943242024571927634507624265992257796385452047934602296361651063198151242297749992975047612850902196519231769841548364882214640938465562146607175495696035207529128208210866134741516114758600209309248425771398998052236764972028923948249691088250133730100408981368746390781236372671227016572859704027584542301631711627024702844372539636421410442794039758638676546080426748336168119936012308684718293011879003238447493060693987780640105425299865481886991790771151241383286650797554789918913243939932265278398654713460196814807058955558570354501349085327410171739894892522116731236644373475596386785324035746815832977892077293486807060351848869550358269274230336965641313887429178322527496802853416158189933559189266406361544452077410619089083548479141423022164582973879118510536440587764904890380031620118324339909491461585815116884474916807442620178639244309112389288242411888201074147872553540811187016106008518524431761521847239692111856538878745449589350649526129315445876964592014311092729360283346165273867143759444395327817085157578865212383436729367724174030900946792914846865251406699736182110135665884303521931598725928668407737452697275399808086538918222489943371794068309344787068830150093286671417983417515589876981997670317799686716745767774992081790402770425603869840541385441982080671056133658021421695543972955096762409501024146020893804755823048906083692320262386582219566224672130032535827633127350816463357053111036915605794843586972931410157376580018371589205393486862985909134735973694372323831622683509462865105501504210804222368458191706058605399000266304858018532516813448276833169564080512902222822328021190331330633330255478441818845351401994393376157070392325440489789768911762071290745994153248464748062680343440216348351922716537111041327166385288633119893402681527960812986113254467762245445837553762054323697430191987744830000003950601274940006673427666639869346226953996326143291586356770787426405230737123358107127632912383016664988711145752291648441676189127191386559287992427481159738693035852288933762075612842729978264785863127971160540658693830834565619978249325830580984411828361818192349196134168066754816012985599435218351283741672636042276813683408651672230643777983138661733759494910030208522448309881012101397907956100693549151192071484182249038259396681733777717190051835790298697688172920708836772883053914644789385780153135219473784700620145473357404919684728463607930037568592513000445391077152708769316856910310730362201453689264606592970327103595502815628645864292757990083067560064030686807414453237139400218793106042936298777056341049827677698920842402222448632973465585204139333015988443505967526814677336325935129759421912902103506659430296635596925845200940812209000018794452958687876212927098333772378701080694807477747153899203992469614305968785826024993735651578378521950343717608427310615103588993923856235024519172002667655274980332706944726236370103129132039834710440867100144587851640593494962679868926714181123318029546376355787503861196135237353349578971855836921129733083565015339586153109448701474202732016734405497004672353873943304935716868925088516211727949423915913391611215507108219712818279045934370332611609521031357600876758507680019720016670292625328524521974131940004253130439624728489520066119627975173662747255952574645358134140147334140026367758392036003068490194069816583695876506403389491057603874804499930438761307957587057327476819710345909031768775715000757983372583864349077343054405435063167784515702088967800313937944201722252697282425667893069303099282420100695053387332994014915260704641862672833900109816892316255142384160908984892353541047740717446492228663475409878812928732150467139538401551144462601739450447948981297412709153460129811921779521186101245806699110021998729828927177425039746410900345918497838554726656628761623322802777500421343836055307082221175574238529215164466109425051306381165276296738322492370047333861692133569393458080322459983843891503349626258868863330002046173845624056224975162496826602776036891643785270468190431372829697268298938719566452911171555149957955541777958667727231752973309661372503269282863685491565434090495568496710092000157965967877226818094870268268880490679215090153986694246837670079267253895660862358751377028908421894480492200455752378502490864406185043716098474608919982852259224939118264694978344975720783449515497747779973535882353199314609395282821689002084321611797063907506581781848908122539513935336149783493056257972753941687154513606600178448178716909498086689149534593420497645167924528640567211712226932421344431381774277619534264312896362564006033050305180880562290715163452284543089000430860196194498213081752054927084760210020823115845681227657821340771984960177156891180511527421922930481623910333383608534129681492991305973903074044333532566912804465213613114097632460747720956069154537589546299391838122683565428329043547089926406930053920011838180512174558900813070932963481285159436379415959687774088523191819808802849122893137071259428615766694004405545895484681476498306798511582230826483669403573144428579288745108819480747735813660916249171927535800194891371401093786507652288960047217169433721519662261683044227576725969778894170197703300681752453274216324390196619150328841692046903247316089667310484485245321141457072055270660316461498700226550014442134051150625382656104880379237993535832358417398672835200544218315170677230305547446343541844408754558851913459306269790892378838890557919258699947517261698069109252881531190937598826995168298571123441141197343845053053889575871567502040720599285540450553876810125316203010972869421711657928662504625779699354721587013960492557690462091944483549701554488409335223608307235874334373630297132051848887441377111262546919361659731396703102241175657399022458547782864919959976180263250963098894750418279467374146966762743056659230421943710668220997678412158904824313108380399795344108414042040174928087157672253532160887030755371532277787109909102344721088881877696729057031859554989514473212171481308430553053519851285339445568797741097860507289486831852126021950091094705601231205872189021607416209192071974911103324058412226183985120346033604215560908343885197146306029176298254063258426848168203373274198957098300786197949175754867446157002337787438213376625231362661231937897402342561575371882792378566590892294628935891268171429828445111159368303010410223553205429905484635591656670599890615601893671833674446525826383211990161808688378494168795376588973234742856230828022103426011023561424184848356865465416483890308214525914774942071577067039811387345952180577858307066521895178395138804486858799770823127230940002459364919529513260818847007744637006335869482444084677874539389630845339582888905707428238456886610859279491411739498248847734052343512909766172482850890869083844806928632817315624708844172865576965519097157761159534696428448774900843434772195370403756217828363521663693537727473911071451649767549611294113046528978829744994487267283825393688021295721475754385029733583263825694684810704336984712732092672261548141722438977331088728138385467244469352660392215096160832720348687056981231516023234811312056098566785671448098580718122562491634693038239844531556013087414716738910468129316455350036649321281267220342970907095199828809771552745479175816968468242327602114906603850287970335311434119404319757107083038077168007877929100365577852540172448819153466347098692682381050266782446182194960710101467128356230963479617634137789901422565511759808663039832331963939307021163278482003222052616507547479722650561839717838163395123077154710150099112763885860693130765290201302576599244238721689135459899404000295931828507593988239536119553531113202449231781632584169601569919432666870817312211119492514548789059541121667510089064847026600188410084796956072411356202619759086709613641541665964695404427055205440013422085682307263290841539402531810257269513503338019003527047933386520392510603412829658595119020363415214824778125653374408381025354494097242991202160523355300073419364735641471134769127325343487460007700055597835211916300467386934863475962459825314849284791639103004059766741513257263639254840884664402810564659799889447333553721330545555905553157341124217149699532742106083474938061716640369926060584146974258901852787584742586132544400745702956638904734797590752154229874408489301145323197282490962246660106925762420839868494175941362123656155349674247169234604885572398462695476159842352548629436281225938123409662653196937012419770346750635522312456984097746165430555454524146833124195806681939170828192783518855012322983526488301810743117254363954086885683412930760382014504684143722192778932661760521262063753365542628018699478775272315052903531680835374621927913279449199487466702984664845895790504612565641315299881955660694420964356612323366792586667207700706311146514994010402983205986167607192532424615878937969556306262541414715180518454300548287693789311173468337201039792156782242355363529241875844515294820109309637248152993334268698791030661981910667240099551495668943826545402880670031991081750817056929274374956896690265846200253403585887897324094097491248271398445561457649804809900547102281483341202784582757923008645285598171111139172125680453893008540145162127862694373337828953299948698224654829328747830371783611910154830698562623727062963948596666850267688667391220867394255988037948302056858597188879567376626155982811092944239711755630585844966101353228985179550895160826571887723772069066393584695443578315736023143193691444938975053265463507087472960866314618359362452606172051405744360442789530340813969357620680031674383705971929913589282264789974328816219611557080681678349839746540748351697230310521492676681627749647912516532902841950308007000874626641719167360993720822552963178546664419855917079444253722296016881537465122396704021992674911494795711850808265801202361121127122607442076961112919443257862892107787479022863939380321954516136625427337478218954510031153366075513890468724526780114907231092580973347649558740912354265105321503508118816686230021374175329735869794460335270151085554939836796932829295961892578078955538040634403097302770043525580074127595741439016809577350133469390080953380245844724674166353384946334532728517615668505546791836858458233536728229645435781898056919078182089717856347631546609777952254476958402672081789645957994290698580744929746364848312715672057498276570020128943003459510501807465243873035262146558077682134701050855873448933882806993243000820091361891644496487474504847855728900976462527183824749549143368150343614525611453888697064379711024281247049284727723439834393965163117132739425120485488411456099032884655316611513904426076407228196527653565945332198241395887657520147704750596084119679609282566671824401155543708240471590027110449533655616427847833057416766240459606589058151956226674481707780180965686905641487431496294178604197775538763280394435239791827364967049532249368197529262900855152183127358691458877381168169044876196476034877463298070329485649194027058556081095251840110538871828884691980778635429475833856599334890950327221835282452583006287923447208112137004243085704762117448857446505055234306032674113198475404306082787278805283127916637132290780182866393468929855500989180773470037031415796652543570528363502133917314691423011618365315698486623378291608051616520389229447345837382597905438907518031594414946173757857894923000103061460027663932806627519577493206488077161058672104360427141721223792574437288686493949031470919371782109677959909228658440417507579387914490492307925643186566278980842904824955619930755176511237087649984010519515236684150553204031581687765597939849099154907009792626350045262852477338998827058436991275289519370860198529141803743344776725931239959464578853649963870814745764899146930181717480659708584011605212672763356657218451941039244441971319445079309244150049589258431476383700803359679812880880121571395715220825950573098108830240340372215619968480496459690895121084442548246747734809869665334793554846847924002026276354650401102360004270446487346524162685949416570600688725790618783571967688689536657627316849555400322309580956944821761506946621178518044462329528230899578713696605689289855660100428649987707091364475047626243432473800001806654364487290012913276758938241290930426611484411526337267918657711118697354379282892119221783035388170053604490861119469517472455671303213046789833400317052898254737765311894586602325170047814665890239230857057079324371335346108648544354568827359813516286561119684430588233244733189247646743613674149876299193799964710400660112955507999516202204309221968203638616659781745906258313279821571556975368364037351236791810993735683824250095239688109039488186679245370929352315162006306101087237545218559906533964427196776237800536383519931884675887839709062257688951556621862279135907926494947368471083667098057850070585018152097054430175946943976734059189860199319442128176882893224401647379428541724780752637322594230339740513825426774875337016196323769000786824868860130511890363767227113558625337750937825573221042756730646126875810921949699562432160853225584252078221133737181226318048622717954034764023149080009554282238060250749559194858336177752439574410340583809263654519009651811558854622412772319826017564479425111590203108910705189777211992852692029917618093093989290981312024401314547903707997532402512596519356940419732279263807366828794572233738420849618739765019942000376609594236985374713616006851597877974558244155887128741353688495297101595080430169793183051017393985391556476588490261810369119615870469023485545581191535512968870313041117973439038270712597882220925668820351189817145347551177661996405235221633869858999070008235846246974470501676366642289478507850478089889730907305574147041549204176593525360993265927893786238215784913240118736496912780023815540812538642590503290502203022083014612882502032943596145649886092790059401929971354465526531389548743562458893256805119458663184808150621374476651941164578526088558278586332761572832302234663714722316252890141694590075115106343737861405932349452774616860579779375163179027667069320450937154798210087591534950985516059725280567874079887357329809100032963132486990512095091284866059205886771949754670915864015619353134068305085760133662250985762529296562759088156110766231117900457567117421228695672679750129763981183703570890872896804797893053498498066236573063970310946573590122687112999925178428696453738341562096085476543597596822368134729766320382025480421764351347612456792243819397249180506206090111869041780299129317208119090428916967917041129817249079603844402902082016466077135898442460284931228475120870849703871622465618734931533126579251848868988716292318994147484741217649984574871380302531286647627187061983709764516427181356173462729161210311201853019684232012977869689604348282993421423844926127668796258027433738243605361998170960608139388089714249691094919771187971822564354718217428714753712657638719825396835539032393558051017965694096516304496775853746230951076057442730541689375857185736159881547226065597312767660609343923774651877016562960075170322403041790012523728835611710239429147276008141081228860133089994192436491025011243599114654248668190559835047802099198471693348618250171705238711960370376590494895780227629333954576919437151051446885450289278997623144607893044037005178312001328385073559932383374034624133269656463640621204909773517908542507833757301902431394833046300920237988888297866360540359681034324968309924380357579622298357559634495687002067924673223708149740052295579347528413804024314991298031966592099009427198694904355873855968957434202511381013383504213335064151428609240534401614683431014645793470589322186401248626930247222778128744584256158959776179562472511520707172651183150253949843215650506437757729177253037520855865723227651402110133488230470405768014774403537730776988818232299210713939384376068867496148743502525209828805378677174613772279960394808246693710391274092590969296495126437042004278827920239835049453679417480072460134157575042753836648017752284662460639667361109687124183784524807926781739067775157624044594288499382485516962958968059547393013870567198612188712084086265474523349627906760488346850760340605571614117006064466424359447704623313450401511600864118657421579957475996310989679891650914165699887377183471443739108282484479979026392243390970225198740483811649798282119872465954330600859022000654624484964388284640652760475027654785996395775109191891602435909466648150858531815183950846979988558318178786439871568979225172573273627971155790407908460661024426104636408797230220595127746635236609540503818826527285017471204421074578549198624436188872676613574122768323473328966468377256067094579513402869852167744703644643081020718932952614163853419392798095077980193929532314034747211585048177862648147007334330274500811006179160105250833180866334680537616340968979229643359520184590279032059307856567358652681666563043631520532563779389439590386218344521522080188357541869684446819420123148483269791886500715131126215371480023309035474490076966354500243263004749406887633942955437782233054460417985749739159278673477605527308821999386104168409783818845553812384295280092107325505988909235331966991717544437722897781279500845532264030921038568807094807686862243857031846879252342691517316875977147879548731218604111718963551940607312736246224286142522823793545239284474731968188286912399631781028681894768483826173207029237032710020151818708893500511665842084654796118433312703964957678477058445661592312657451286931788326625310542018513924656232832442994723451355639755668050045049603217275395125174619026561813354478675631786896296030688575683788687969110377231560368381450808093776157451551577392551706693965091811961135353092049593061782064778249784863515789557442016500186147414353542262828035887690058305459978209246638829193901114383635920468716040943084464359383249704484569100367397292897808300892036429417337741017630316040625978639403230261807559724539389991312216878812829828087849427860491682865894956009042784038150544088190320372538173334096289637555105986085817920003502686237441607569575026482587429215078317635569314254587707081088016769719385024790874137156588257897568246271649726846075621868058471147484882150767444885951141183302630010853898668641255322134827387607136091017938429400962129420874952787616770630887233524149272468536721664259202098475402844097616589918635988997646210352891785958967993845217728004304530827230602740781633985968064324709467116878945319436045968928458267834890353375132174012988880985273276218859487685964934983174185441401187320690738441377066557322915579216886932803068157224032338006329022890122262100918810716841094032223477468836355293907247752007703817798920904858823539309286283746269977277518775931425641495835293730040134295070081012284165832523062339129209551622388818802400471461132211638940027180881372650401928059763340180862124877047817994949518427759478677234208794318554082148252729518564417767555773724121215876279822691145261200904378136886653420386329011069694914821162337849453782920084989265165084870190195351298153982776326228888457507818648433633924167024333122549896588488785340111742221066431758398385525868733205697790341498486606362117277808095290483345836675684847429606901326103919116674136047798023822597372981992084271218658747420015323600607454425238801646597629440671451344835843896776877934760169210935153623840108857344626582078437724627912164038098545564694651849835747745661669329680849614242838463371814800622112171909755027033944419526983765811482316370928160774602713206565619593169377811408621712703783343045832201086578547488562116110433068112413677897125049781015900347021672475463404490212493316009783913255270612553132800174566536753472215093616647353075093256483776005316133279984148887759642124093808089520423116654103213036568199726812494734548008309072416290569115023861944564580589007891460763388855574809162325729459865173907923286673625974505466240681191729520001976213677452617941494014539368330640844850650271142178115432099329988676487204094294510043579226577582717837211133291951830724784689839195110936889142705916105575131330449277692590778940924160123952264020866494674868804469197099478213780601954891414933412651589981497214847066128428425296359991945767170112583161359023745100928911695034535435311983413454062813930966696203139372797452382208903986864207485843547665676473901524567244802028513364390095742849669321731057897643995755637058058314058366709812923732688662977853562773815849656180486726732518704921404137955169718651541004042151673735002286562274228581486707445407595755204633478870492495187837615040625235740369895732281561145833195383640699679219586688474980915090517348897414522796811988596192220777560551880527400458741135317103446704055076184936484301564281276906954418191877072788821931215464279808560537261512267593267296671638882930839162522315226349854488831053942551485716738954595809137326064968142883816331841191450651702274855996422345848945114679509781255115450652681134750814906036258917716819042504126140388842399101338033574489320363885897864220878508775529372598883872517605940199619507129125442776780467934436247645163973650770158941293491356022536246191485858278686643712526211570996542495146184623019235000907526908971436667688864526572250392390859255949900326044497634579908087051020843400890807600877954104904827353083705908190029917223770224876701637729596590393018035161724218977827675183496912711103708415893671581911986286114064507041385100084419240491211246542354622188519695450172536233643822478087326543025652546960305970244527355455729510834804597698354992894387717646467707979438425229451719807926818534553567022612966213524919342888666883108817813493439587081127926948225866498927974944568494920077811131856659079033373580925466335251942466789505379521183212848715604631088097138988381948320458413194403007048523920720589398222074742827088387826097167802577488437920075852988030520715100325430304860849181330256167648991633699410769956176596892256505832684984091177607328515877514615226583410885317218447505859967771688721491650150764504722416795224512148049658511553761151337070238240651578237101158843075457210756307130226345789144671040943080953473523447427082322617156248893628257042390743700471997929957215708088865460105842182441510154163243947642699785887687067522953665923342086788396494020236759913752354520566952964545388833256788903158191785070979574464159949104063320700377486399258960543368537781511559411110495471019066735381712663450595592414747279095324844423808079443221970720630035066414018821710809817864409393071170885867280186077107798162212150575065632913170913333047067012590645279127702299539766700819467899025198308012320303165828196813124227708939831276899967562711676350798931579016967947951797707273594246143867313539570924500513015773315617238589985093245605311935401658649197865537783836573372002143137602550335398804612547221746258478121279782878579968115039917934902964844974005032610991316220318109486118546621116618535976335101797039556653849446251942153734086707412525039451388929479125242488502829839140880014768169318233614263687913348765421781356755108843860449683465741032637711818412517315617163293175361044717546922934634863108184976575889277560154199077249106130272322496592574963595594999712411145444680835033383639027335044904082538683836454864186265287719878973925899102323666720333548396900406401208186790606208497900507437881667429048549366490274858551738170118660051411559363106420217592149322526439746903579816330183919833368005980429174667059234171485440686078887606781048791097545099574063119515955130272777824211068232934425814939899288508324506708112995709080940636508251477310933617386109392735164785963101524426097133271659462717495242486198751106247044773121146879963082705628302040778089878053467070742935702393021807551791874132972848383807435332654413568374253880850547316182120747456418739460209754844215427471801227539497812371605012279293334831257995844488692993264696583019954435312585590536322675976492934349428376102331165266382660175893395939468789200867567541552031548457599909806802913284699189207500011434230387120944935109745201528699652278971992092860607227193581509656385211462615893859694141395758692138440654973132538388297675504915463530224585038395434609495717276594383369286531235418853971933236035690955588892816129257776039072563533373527266297857139608690431268626045456201446602296523418086866924947468548662743968188056753241660936093854501787616655476913720038687377894003773585683861731275288287349914184756174993811003068694908221958729608262246914718354260554899010989026055937521754763254711932465688746513906563977086736631546238645078785484827565262857692935240429701557108753235285879908011163702174050900892275657127912103472696391352412314038902638409420083320402532843715631109673253973613543510898863552905259878739524791053412754891995741047418144583299497573833280991981670393311073626474810764350271900763053991752160525423218714800452651148038667791781973304236565630771811520333818315303696045853153419016774086517607603726157169855699322477676078877463736085966599424204220479095024942204740807611505016796930320450354835525833055965799130789652775467993665513785922020411587351079409590778901685669389785005155097079232410703280583168564916005733549009739363252698470377434754772627168031962645417185038222973414866673996637001343311665036345169805513169586185746938336157876785003635180027722543693464180652399613275779572584274160191907272741935459912519631827182804474947967134893458045071677449752361966607884761980582904510772142331005069672227652728051071493965404775009386517969181997396834989901822195898583942283283900570865999376588131222930630249917223232772150685656017831182653531343517188933617678443368385641999941003552174485244170509188688448584532487758176066558876387029864360542180697008667814515719204743774848073899761811744781656910417811561284962641669594296707561813241474905205365203855393968410606048098502042124273964382920636550265311982413451683806244926194067180886185302212620403545064543675390301035378537924079014811984911340096195126466336689331267091455280393729226792131345420958600143869153377390913704779694367987303277906386079701986835827815760393374663277640826111920770705670347772264182514831335532051196132762650670467586376360161799922549387161082813431661116725488337389937645557122265263963965945975938695489239783403182532644517904412251675639979324225344656035700599267297123202479189208948576450635166708295647064088268879170536150473572681944478343550122166080382888544427583882979922919867282895118656377604213069356025793806149480823926702367195357285277311166594937642620867707257442002973013396359723251601575373590186571158461414588215799004947354887383118281651937233067891875629765112546630064776578409457548036724742801727249103303730958238660210030164597793804123377231841379137853430642215783326554886747712417511018477125836969735092350566515862411543584992976518722234265851068656401425058164493208391224989849218370708970820030735671776084397985552834890961455966589542789451598953346990062422897845439350207668790411023621688161435211921913349336922589976858247909878568172946195987858147078541413609650121637053956414856292908575558265306922074019071256951339284726340844629817256012311962242145866056799908936395876289772706308349337812579586574261327645918221301836502714758518877665357063432087184267974448563651922962286461141509530943096127055801611370195307212547216893710255757849335412005455087684924879626037771808203596260133879151089575312160998620013419205336580420139195423879722946124349175575098912449767630140925830978519914680466403896719788415884208292288519911732233147977671296827695452837397219391994028237011406071260548857638584694289965602060583454699890814657465534168464594515324652818467970637709165881958401910028283608283679506441957094731353025983290000623242334538190602726697694368212104318410857606718666355062115229306448814363827630167161644733012493572686608715969873842290185983849222806410699565707036248885675151777731358838411820144734187065793050407937941200747930715348200695395198359937196839019995256187607942679939659649141715032991696877426154806139187522904177803008001668515604805115182049752970857190176274890228663093249345802029278614546165047154576771600654941666490705442060512781063627215874382139615548885917043470100085900107187281693683587388719964854730138463377192070057276378079495409210211379302639725089277401106550200680942448169433317554539301556046795574687424335388429711889719411708740598412407639094580883491792799236036463153586505476312854502985079444525147597517834355095423238901653217245474778703363609207850292526177589095356759788877775349081609386444844030844641224893045786355676374640262480335342094304838091302018757705417357367322086789010796457092292510061252767917656459165226672896787409950531976605183830821895738107952426833316018498655587039515118882453149941881222558990722050300548343782734876175015709730401479187034505344526405546881020112729176862636843175215351295680624653283816187436369992742172221972206973582863606110813826022374162364983377943605724493719854828364611498334319021662553674406499578394239329918368552601458611541937089418435533367874531653577020619481592779170790760925022064361717508115021802082882698597563639602146475822711534669033436062571550824666100637102368327437245416884078913155986786703453857694213767317167685065933140260252870219684168642411345934883424178438335495558734489511759991423236416988585442890441330264076452009972297905630305288498207416109147395028392797933896966348845359387573827374833182849731682695422728028591541767772391142179455422338709636728608578301882356872879853389912833277498574003283030350779810661385707479247536719897107638325559998100124897724234992366773349933060159966978825334714588236109550835756063134995077202331649141297903808410554744840581172273412993111554611865775132566372248456135405748998807157610868993857727105630975306195686328167248036191482363627464306121749679728909241824176153506606827803790319123773338824146100074513041134765918771683340664634012863595626663300637508625605905377803145708220825016722150575318089485248388221030123731083201861904486101644992230999147662980856403560998658110250689049314460052892012530795293336322535026478603074789445019666284350693586086011342352332070666391491662230026414526140763494567117444992508057095275532002184631949678430698987988102090377547740642274291551889783493678154208231258648048043335064362414575669363286830063351715876781918308742790118184115072029743314870312167560092941109797712591278118109481407913400351759866579805856382567384744320438809495430208034152192691629819232933860283343013523007117917420389442429034319147960013372004095175237448919478484897604064640217391018828045454346080821302369264288801609792607838514960615371807916419674680581817170926261658316004271772264107349365659470813404700045203598700323828836390990788598448876021527717434824782597053639593064268166205772617108268694310790727994294953897828943365443287868990015997370691732933284798962208902081933309071646079860161543596689370905537834408145779580559447028186547773243083454316397806836108170214054074723005891280042860316231120598091850931859168199577454515940660620501987740000357177272866853326660230732849013637746538808545027189375563114456629846489920540604369984163161901080812785597599922337136828786656364730924076071849572351652393587337744964745502540207223840617101070165637787675577805915705168929203332565013211352119857872208221945729906590503993002376573663585027606139950191537931352356395219168864695172601766783427467770809254521993279927030373622517054179261626592502179546212807219314908488232136714188660843668075909583729974084410717053571426624986828025584543459555928379313887418475888581655808630528915348536477098650733935367220580946876680513764574891002195075828783672229246076638420557516447205553992372436063184300865494370600882281581430110267843136317890330950922001525402250185221231524612621139842749441241814692692982192565532853123112495463125231467729858175861495181618605756659847144542280529300200321040750432029276221019505969491606011138864714664324224488978982732913708133507785075349349429872739048319434906388567673654677472265308970496233178777710132062033514690891566730315553181576751282410114557827244711230715729117634671454692669796184576501352823550266969424097387922095335138684727004118198316860411095882768486637328394724099018520587254817918617915054881060124074992598726974491701049877253648673343440797968368902495463776300370750397487776707923857931050556806212427998367893750930283812691572446538966352917635738763189893411267958517594834903038921242081047947926988028729866499592306702055463518586271530276485767570080674919598004427023477397168313437458922176669011564082319041078741320520181998214484161594852223430145587306439689427436272851562644604077777320961139132371985280246033614365953735899047039862127177369076796909323154097163957439014602691375595203941784968041733915365061154076549279273804120840287438155822225293257993047604736497042608864186524999534957988224460496637460586012117424834027089126282174365455767946700420532222057857373718429089223993141961438266902310284591094626072133839759203598290135363710492198479554456728560001238387693767114587487326082497115838368926090258927667314460459582720045423337154610625982334198437670763413047079795843267224132264332107574009733400141047838081599229539406162553108210726037633512756045098828195495756287768297708883606609309607415609877823511751278422259657892713672217692967459708145589030427495432231819007999765449698346465642828177513019524945735711810233435007328517561911735239741028618019998803074721327475050151488267856551115108280144959742921470678168302978789089050649316301139751362263868886098798859086866011524855306628402418683302301552626913200777270568902383781233113381734796746788594016207225309474748817720240317005679654131697231553449657090006818029624218159687465755258955560116641323390643300424370202071241054327458885561585706354944145778787647068391274912166170462781357654444827420649964645703715017279450507876602899789145123445285665051411711315444957305082738107764610621262741919271727170020519646092365731288144662191303757100784195970969646663513381240973666694868167143238093194205145532943893725236246091692192952119814083938959053304036799273006184194581938374811647715608561630229845611724023726487416571876974920214119555820013306573144401263416188125493300445478215470723374206037458415369726204986456712340633534896542106799984032105925845977445162018948842976203723760856463743859565849372665781073017601460753551246643610557237482221887011385151462410929308439431411333631278250569880427989648495232491194798737912848943555023755251348334207658452512584415711269588524356788101555867235678009533387484565485845963760242007233899434532359550156491038449208796915159647967132371172454046129308168293670575293563623894155311093963016765371653559103426082388567929734954719884576603499035892797006982030865508960305660660054365233863430563594954022240534836244821772542513331605609122599384799111479073948720658109499758659237279321925218270687924403148333713493909471314476025855829846576262325850623642097990252497577683046586525496257807624740471469910502826443885049749777933837458128566632409921339474609872803983424733836563758946242527850213582750008188619093542868485740583135836562141067950646479859173505161729124259083409367557475438523041199092491325340788832044431076772299564441862597392113304053263210996136118221546234209169782493541135964893683690693617372377212392584070450198801955045792448316094610923903458132892507298548208966248354167306396761639209596075270742514933541295750580789627281062089084539731070542612575479517562891746769172176179410530034866176183173465419610817313763092009075807294743778337769069415118602967443133676872822768269421334729783288370485351524922696220198932880551963278016040912823698759728706008633833478121707169639307315832099987570692454844694559657930925875240393041947001407696355194969683576076762487126515178080192180224998494862008073386337871662448762600179299020618258292208511574548163699435010263605427034621716640647674087813128272162298337021948968593680376634547044811973522914759620955755332291493462688671149135939531581094421437253596052213949058614014055410140570483377957081493847329062272091737300454138924203378637951092609254155754744532326016608193759031473620820880660293438842587125099352710405639596180251742476877892888819066097196177758404012059300378889691030481257237094950875726717625180975389187617181802084822649720970533645720017160897722639633430463934939332314155729990870980942446145319111460553035373583183786182857936940796446552004941130476870759285151634967078078557762724540571763081896863268568916176929688158935565372903764722974631214791206733648109250101072669513056837915152858013570189600960691428441694925243658047082092122549060558913602482593363853781146919995611248998392077545985088749714441540538834517554524285569917189359726069960573315673481425097999391661121926743418494431415880613831606482975065237144795187248826490964955451607262616008931972639783430006917894513108404399558796219499071027455826240088666106456458507738299716170676166103849296042779777579193590224091456411373928491247091677369354187405877310375500412090238585437659936117965923296065127145926347521463285005646768540568714230201274119147003195144996088136171102339885056970524216183892138640572987533424219822896940907483985876742848752584604639839855100137566796015389833627722197318926029937958988656337593895256513001061279403725307605974415750957276615576545194725901333459285918503541833990294511031010403424780485685976268700934282823413932085717327483702286751515510071929719442952476982792709204425789686401854692080415981153598529027692538233708009075155535709533925744065036674834953347969282714551897089871370183630267089864063768163380902962700707095723544795490589348131434777184171910941836335473037388251653592891060859110268354017065221096838227684264365999277965877930883733693040593780559657930888115170066028352239897126330249849991445692787742355207986902776244358310314516012346914006644842281129209467762983524031470216624879607672003966926121893475312152518013482723600957241964143303985839372599915045546682318757588382206137715724919067759878456916742672634026718746604922287494415550148711673005255528129804204937945279509890217050804518796558731463028614005821993839610613548008436885205753954592139066121483856081148828940610856244309973999533977702029601350869578720711492862270083345759981560298424064791006664530239871692927248028447782151734497505719948536317921477760257930220449710227871579814883704362906491384733397335870933368138918006111946030072748358506297614622552637492637630752040297127456754735438786081290824579142936459965834684293477613785904809854620829249245844264718326435592758931328246004291806834384986041680790166162303187686819575442428861646393217614597230443084401442172121319839535603752287773722455125305368474751904823301636388263489359412034918100575386277051474442270757578338983768871754453420262146572757379626572334866663182001680373481990870817278365242337075546901865278000928671411102319331593289158480119988757747109350209353761239967797287802727286839414438253375450320116378598757019779177084428352080432768076780033665720270834753501703177518787066946032786568658050455944489669477719756291300302608266753850703883578614356448706457326505592578548413691117584108893634480888113864166855039725789210421727149433595946764793800847675993635850940923539958195936074824145072038218017682159086538124237330641725683799844483116831947460981735322837332487996716717297027889038601239820281860107091266910675710871326025647806746219556231931520215578776581536422426062636170941414840974614310692401875976006138608737133808626319725543463448773247544039189276535618165255499935584396414462954064204682137187688710171766615791174576686372625548323884025805840335349719501809447853678592318189432749841597425924683684255446350773751849298941277740507105166695420332088192864841256412735831079696497730306894552740054381788937457380668384039957061133682167268846465027242045674678732791275609448847305856425753213903245909166096695745804114625598796203317730248812978461336719798739720831817495863462494940241169308074758373984414065669972172121112924194541548730160748973181439778646797112886664270986404889572207554435280149119374599670947642742201827933159621563450959699242149846602380114170962049546550974591423796328409871765567881740731721042879472155397693290314061632274487170634758837031328422321934932330744578587973245257817700184704731998503558570638076695358636985661124663466186109744226148408493219446761966365371595212297761942224474149311575557149596807885913872395826196507452001820628829955237080060300071449320840008903052048393791495761245195929338454168551538220949366387759875424370769738577007320161218845587952882422831242237718238226596881673955503985868644281234782149151938811961350885319222031695661038678879430912190804851810723791269310415782232673989491384095487143256137536442463984630437425151122405301409870888630700481225687347837449043596283128037181896395096553738172648275350693335845196915339491698837933333999450478644556336150746966246600066308553206807237297967716171511890708717747125601282773833462922611151869362109200157250682048912786541528137088228481771219092361888603689494300148355347633963359634290478196551835097799564878517366896510180170768805169159054481316187222797292460895373606440768882183674420389027755049787706824191994764130040929086773355041783770723214583494434278744758340104254607827296622559360194970756628639729615257281190315756112357350656819567717028298215836663705497616807211766304738176026229759933286181157218046199110476821796892325195500559963658270740895729002212338232478067873520560245320529497548995515015264158950904469380848864016673869714161947249133579847180844698913739571969921757621847021451470351466659374616695618898447958269557943872663818344110415542326632029749019727161968924763466158534285063251124282834532185427241812414626877927649670025140072465078572078893967391057588911843811058680943000007422418525612303959246269718466266850671726908500570012254702059785861132322980543776882012934023289010549672455012532501022423637379818328328965877990081640134709024735227726363138843796586842194134426149406903347485247133611938414612450260966957547070001174179791981222090549368784864265119305313001196053855872265123102908010971948939852843945637739745243453346039538516450776272986178891121174503966177651356559624048440592149017909504204873334023171461555008218139663440292124483030611984498387037245576805891472291679876866417027417611502585701375574079319826704374968923196533187252058130189963300662047180035533967714863268652619708068535734888777506563142263636469262171632090474583857541480735505749393813551352242961243371481358051303359328117430076015418197985010295001833916455742092546642747819461528743194967442026948541320763794780919697816244433651079167963266211442205970884999802921493567628363442912678436794733792354620018348542183931866922231114247744286204052176857014591341069054501823890550299414416776545689247176522970248396805541862363310168542587908803623572363388108685353303420873624712991227410447551490812756330975089670079034032254697473094027569820609874803094936012423949542128294543456420366671363178971267980601356696251906128765357292329567117577390169215138309007909191614802784567352034301142451789688215832550254896181557872691813514314599627161380054879262267451705377745759893233647029924635505503249385248042945666049276547934863765993486421049974819065009776552889662880756348098612078453147539974241086801294122945064139234223789513085739765992530591936822017953697957642010778299420714949655816807057130558112465729377267963805772816933841374057463135662561872224865658802154761557341638402210258078170589263934538379613197111262201035398283816390186483140664576391325635337981571185504561335373290086385367436406606987217333645799755787737924774010312712121697913015221627030883730776891616162268218784399812396315738129971335846674543349708202060186131072047964173136559445587054742293934725328122008848588790614646875229440506290873909468246822747746794469085548611449347552343513320853677880203236071160559631354891372274936647932247079436593522015341983551782217869375877847327437345831506233819885335306188438952088917767070129310531160292200165505193299479185256999972335847862007289190898295239305993414868605942084801023422904137303980409658230046610882610024125839418431016495944825695172365242957067400206909862619993390523489728378668412711696893446115500241870823458922261591615754038777463054828803899019983516713674373486195631126308534952685165164034815915155233142900686838399067545707495823378929043534330019568333597173999126875851184135437674687827633470551536232619796564684354514811209244800595372544270824586462115162436987542562144627130479318927550727304638565945134731398292388164131388705223208961498852501252713392612587179172404699109357629065422811858717051922889458385971458009369391947244254579941132394912127608864445062984208430835189879180999907098841112304200794876712743770638971726796486665278772085039219546498886800709639497358923581439945592642299858851463744579623039757412179440769890613820049089688924286785696030157308133388849335044639856908395839572116318772297677609691393775099285830636855998119605131973241696943448128569142029534669750880120397669688636728740682063438673084213525637888451725427726589739194592233531579921994703197561227502062980678057302845690703822955925697273335482210892772554885620033174420337027443180866441885246785402514732244897927709580596054118863821065877838912549619189418485937016825254526588978329327730093035493517829653306340427177861325174484399787309678612957155570877001839360457361297695654457820427366263533736698180881136096587840446981497921999229926373888466111252678564441905280331674985838582513604649000850240848417768900762406636655946858147606872947077207831715988596178111642348413599635165047021008694887070352709620730204240390181047815219183538815911471617962004379568937496517230265770694771789016906292464137186238655689622066285389358409683931720376921823741667401282747589584442721173581970744202778704960155813642212665900302117928425103928616740407076355299181169644656064063665278992187819478501323975521020685646646944156018381593321025154076577021448723332894094926728766124311242945290931464557226249693772406885444206088686394799800299107306176081849832319268804197339417745539353556748781430511258638003217513004828290593357019381558357999377274512311154444819421555292406653132063932065995517184062091798862583997468929568922130892433362398639500110875061970328381256243915734405515499952302401497328661432731774408025182961620481942869396588267392007790987006604968276886376764196252186859611846606690321411396793231569239917819930392981076680040343695656217515417415934634497351880831732155052553001010946487314161235508843597895378827236604976685241626143478324932074384549740815115279014969944419623315991665989140197223932646863896560807799336369730977463973602153967648646527192621787953341474670592918792938748914214636847832429161803410396844969381626161283736431370551159445990108867604979098673221133031031815157410809363417233645022044026079498440612882278681490883330323565068933295958823607769979234583882172974745217728238466077074294053282211379655259545014499883692550692889206290032803930458949275507145574211164007303847862516047819856230378184821258841366504810225257313080195852375308831541272775990465545596688863631959952359851294605097518902036864442476494908094249920529824649296504813827012862951184600012960542630891142359393435959122346232104313487351017609246719689269661751373223880483721423791655947656481551522350236366616815606434484382872207535190758052339968993633683660776952081992188082367167753131088650045304631156756447431865978926322501145679809683133573050108680690644634977543484056803853294290829410380890853074555228469067890949654642877907104684816838007873201610648612255860952608994600064902473876380065540686023348955764505991096266323939222082273315536731829907270248639673669461797490325366449179889525344093939588119605774625179270274742398610746773164477043935554964746920304517519628819388560437178525837211252193965030039181495872942983010364816331651262859025574542845795067223103579079543680475238188267257594746272772335362979004570125411672705064816784505706336117836638385953510090314822888370863292115423266033660160948782887329649783267103465159311611668666526226965979690294844565298269546987034967888074251146557646968301030259049719472793399255786405414454824282752795677493276131376856540612757212555938317755668849875427071293766357771346906323910766032461338002849475939805521686792792598722249158077273971151461164539094180807646169321602060719130199973169452106392728599639810905696689465645362694356185540726030325921911386060230792469138490658580827296978493150657873938609218917123888448742465830798887864967500883717296480573946389911005644501656867306580176478550852202642022922831134268201770607740362383371547946733306742492785071362441022664471860135545262699036110284656096332526867437680639641533501476776496655798217196936357395417487222858641020013361386766846998893866996375242469595977122268432903342543611877955847894418917337790940630427998564371439310350248995747571812054128525787477931253577488332601215992885251769627340403707369851648694556298434921724915229655828616090634227213267828413992640350694707866205507092607470360250461201343558295062441502371624272874120282492549364145626848010620629608350362823819620979435376051130952610117061455964258885839418277922092206902070596887900254765081947375824449787385631310933185437217330585967415366155493431941710137660929997294979150257724335917797897622146229687212545090239071644440796747824095842449907467607724260247657409814444769558152616004962357050670540771209462244597715458240482358561117996587506519542431088469641635427619301229697960961711661502642998130738280756161581963307671079114441453467296492875432295617083519517195164826188905985543585878157562722710174303536257017338898832429481016930090479101986386627307672713877574097523660651288254729499852135065595378598014731439914705298641588409981195726048386272783947126501643533102055982079008023975181975414880586157685827303715441369534659505406462001481672033625805579228719922639423598808295807327481539700645379942127108582043683452062884817958695945926043869775131501908729476203147180885046910642599744353735326430354632722668220932386531324278580546726432101666459611585898093067564186344206968083003944721352988655969642106301606530128958232542744799005206155713461362840155288112254770416917873144170519718329029425111528445451055240832510188466565084068839373162363464831645048974655506927991486961898535682281865499680963626379215601784707031812603517442881419394733938595575336879935783189449261349463707696530707372607034992477163459066366185439595093026451244688993142547788256599245463469457539275213286488172285785644394366009351329012466012837316977753316800833136355866520320816393778614830581808827724184617152343325292158781380306918608211053870585477053632936380837819471050007523247696083033293750733268627383607037020366820631580412140487458043978740056707997199209797792496489005865448207160533701192463308314270687094737188415027547955425192898847930148136491587568817494303451315156419909765595065228376244483876788767548691755991235108417457568027779760239361025734067221945739543387040131737215744950840606679738207319133280139063226892872126622262160276370072937524583798531783463560215293430332944470587369695672696671381701207779824404204789771689826072613808774494109605427499032945588335865569084519698013498437441626207932825233643383077918305374704829742855177229348965315548806643889128687883057391618961363852429355558637090811355556248510627552124885428579835881456943210547927321144114469890691726104831064971248136579205880576339228537061551129765179925602049023856676137839791742552993090448842724557846199835290980439826357377123258273042467846070957032007833780381332658766135162708138209162732173975120345726434397937156524620623809041871758882295468356328057289070490125200168088166432065654717631539047336982300212026931519373834364783394974667043646093520307713149542466538420656749338916667836703854352243292698897724385506702374686881247285263169700344459571373560468809611838037942818275941356622481295953071338423366183046988439241799114202533663614009226610639955335593923255219418391131525260352422686941619464340402297523356137760581758094415321248401047340790044171805908646324535859590891117226818399016008973526760494767122113062727811577281417810379003029836807857005333170520982706632054491252615929278642376745636026497912974186851669606935466132044790556854300701105484019712615492895861948387921412967992537765891553642744371534337374589923950764425285535299232812370939389358262928133104485915221308508963940220675307986901251986618825110131369948074673897210636084501956379812657870940966031295747829839785061071429686662957187657914613621650403914155615555284531219944466526945436015627507891912446372934032218174314838103031877723857990971065843791657010893567455763858400653979370182672405787508221189449883284414381393142405290896520683782060679647993725174817877311349911849909640822863726042698822333923894697572654690045237884240025167879248393042694314031507351339408491618742927735041123865384806625728375409889461466818639715308167539317469546437305638861907913041997087119078274869381696283207944616347726609616617966610573423642863965364230416079674387982074803203515964266701278738895051619060227099665730055475175113059413537197150201652975966552919795834650232642133489722735171216487345874611287785074056669591348861334209420451052290614362246728280364043926593309324540954933841508973976640824171980782810595068463915277556744681430293323522254528092289412501361486062564853605480541416249334149721355223497775278319082341798075041904013901533067356790571700404314962497803404753716660372081580108109070661940194787624387851806842726282998442940868065445174455236467196029367450324504368136670160178484577212923796411156174455308153698773605579901868045308287160152971204277565564654267664878201641717566963859829950038053334392978713955438269143065060513752630655422982755364793821243490440774937764911113296933227567499684519324078628271481720127438251193974189222769992183870570327809172447451967405730194901003302738765424865674754798020657049284674306871988882390177262096353079066614901686437645638372214257909089463336320606286765049268942640184441511272571658078009663266140806466812190200410338343830069912866190260970300110713998141146211612861650669173672513723823617872839315976336109879269431936289047862814353383207807983206060791660427879862519266649325742214867226769093295974481657202043479274516209093957691187274950925502103087867984616131234154433330472819312633455252442204622977256102920169769746922117096884108064091046557694980335079454095078996409232929633731256502630357856375882344770625055096564551017699058491092103813956397442558365140083676282797467980988130215703470289390701694010250272153026566511213317183113767857233273433477615186116382021214172681156628043693899974555027626614387352628411386778980704643526955904092345903807546767173196755004012539799859597406424908649944279537008497987285455272200958741264949241565319428319403162565966864629422788644819473258161268710698799887978946251425482167543177473385296768474931284704695058550078052133409813827291127454812613697834776954415843393464834549461492468105624998386770626984993610984426512568348306132292797976531550309737304259108388760805297992917621202888152910238560523617670537230128449276772780719529170433514655341110363809487059764180202837527017220658879355200693981369547045910808671429876797896741234348026346065885350414717923999906523973361743759131829985081667170416543086486625295600393252158877914285265251694145867009698235577824305048572254225814565385639869167365539549199659596204647065716021909766737037724944090234339993997854315140523613830674184498940629074421322476852786001001893464841102324162647771464303258785224173925457183111956088227279152932475868102005873228917563242310088136855677491177644139641409980232535873242412940576662278050060069701514032250170095973325632480280387439378697111711352608537811352230286363065929581031382544748125628938936517216870284410675142262549597317861365599257744207717129888108691913900195190644739395442845694653421591283954187144221499909509584141657268076115151306392501379950871719011589249601489591683359202812151484551777755792490821103876771741340213496645935614427709683664145248985098104468551472447756565626517092810107659551465873079968821008601001529976162638082979308072596894198431694564574994717299053077440694245965280182906446507634510947947268797741643985795581829411379181476895699936906390054101129531062238968054370616574458634847026364544170623232205519075910407025447964859841655642425804713653842552112301635678698050011744212973911974358215636050373132484538844170218400241227773119605609862187330339609569368391092633975505682766132566913941539048715563796598835863886186890968112832600177765115685280426438117821063527524206370771285330385550099083965418617305949394948912901225306525715460678488670388756213001232210516077634674995129793368396090564150446065508491477489141492025462101765325349271170461860256884766717637167085153902227744338796298610706383289329613383684493247130179078402068877616997244621056996431041924802198744331446242999827027724438532300309908793690284593231618781835367325380953989082531158880258227417437794630560817796006466342967006374650765058255682905342482884866846803533280735550990419234243980187213395921081410510441323116372264798490325978799902418171819658586634442865392575736233717657905834966714474901178839810654907655681777265108587133272989353337428120432436309651054601527120194470396173499141542471239134357398566468103504986334809207527853975627672906139786439264498848845088162264485988449820052135493156068002065158323567268913455406661903091355942092524108225064677578049469812323324625309965378472400650445449061205314119513053987383485392832575823707778493374852361682496361198469824544642355166048991222518129909909706152461656471840517248382662895955898515671075617921846467470484475058907247721978642437491348960739980034229540171334861482616531686936396041706619857429287399174000552554404532694390595920570062651778647092862415863992502142299545684603845060405462052041756039349721161630052903760797682981123251471616081593019243577372996249892218252687792650674433053594827083268209850701283765452000016291158417592399004529759143419856237742277490270736399588449711984709621444947388747839515357428497286446954721179512934410348888869558183681963314524404416136113081169849617460148091972593060542993528073254328326816915935544954415133919419650428075246791344357821540671272095612560080051763987571641800669313108529877822478448544649213960550925603194210002280584824121221094823887976350484388816222253450298980174298503783900113467674030795167825487937584764996120142967183234362097826475132797291046731630028379489664051546514398889801474652117853946093751085133635084826132303753079395789664662835762296311849045921900102989431485338242948347381626663089157819506243913753848316434906165770928260689384946012371879718582192434441041782043881114708083691724046893259228090473185475376609596974161783902846526271205316465703043719494947494043008481825877958966676142863603097957148713775772857633432858494802398490207237906709793378467468960467212884588342075569991060344456212824786482110634583402676324735438452555603539641761378606633271924504850657968097936396691550083499310148807423305954827075455318926484160204589346536751745205273195739470668461054038372400335434148357536112404977439524861215623319820648937270565578436376749740812592703075211166723536709408096652089271367146826689267649448035893961359344204581502924433115407827182691480938167053013390779667074660976792983439890840864737663811944609820750130126729698756506741322934785972842036426572753125451857105186475690020486609568865601786303675701825204140162634711691718436959601359591060251824731273838104911087372594389535136334179070999247456937646634612081736495013295094542899029795824192311832221514170386417273420275206171113297643364246921251599823320345130702891620173232369516361243844300200989758582113087558662164704097331458649925109070449635571559555566248423266517060618226019422036095340496528942623036474863370324349295522175592021691403011882348549956462486998864615848435987984394394866660833146129204712577042594668533373671656036404111514835787966846308553395715130541902805791347797263885202485099665839924460549059123859073620626789997835560351622899343475418519728374544986927788981135761299367040260972445303698099543823182333184470729758049779994046095959493712784039408784035227908547541117251044808163508269345990064275968701881083245024345879934124076052983254765967835205965969187757038698432665672292183312657256855369903637074865230246346894312356827371691985374342067910436254488922681637285448999328334080837651933431760205642900722646550713583720324452186385369175239666578621699193717427254048474170642529594718488911270186429620839653477273245591249769525757596136960109115474128164040905906394641449938342107360981532409668869986243258408919319226451380317660991645100240873848320592633813194142715835295896667523896661019356353358357790284254638021020007311620159423354005505041138256811956918778170870293964007032735118732241371003717722385938470416140661816171205127415185670841906422342454339494268752462189463023040681745091485153054057350604916490392696046649148548233008914489464631076986112210969853629153101022578703509762131488867673004640396551959819633527847256273669785860088350484496713377784149279821127146432906678697621809835286821204517290148200790598456903984534461975537663240931688278796014540644799908283852110314008147383279521214307665461923968756159548668144725173691294088906869928752432194057925146552126452625075715239359117543529781192296844167105356594307616562108518141801832374405902309603800970580731187180925061694873266358277522821173085406456652959364573507625794563336930934172699116960591520738524933445825560227148490923379049111424233563773897694397363044033510315413176189558199245951459827339557793202104567172989268587824699828962026312872608479628037859250810870043465309211529732036795477381545590380013359749349831600104441713560097117540520867179803287753489394888123694205619280568783270405082717932740908206112032449635904036998881486020334776307777778072516310747961500079803723085716480443381975983057584561764451740913719839297690411710001751689901859111690368299149064286842930947754752728552625702091488837146146931755473808028323338159155565820726054653098102290151710055963233613559913656928492347008390731405752971841330484683418898629116768569217249174411284691403729811672983596274581634922409146052186994319827630422761375407177529542375058766886222609820704309251219472462709078076199590317870934735998693295906196918284112851852335520026393406409831150709715783497292759715739292739668414547291714424383474360386451951654630841274297856865128248813542230456651169056458720740157235136406345764784537801449925224831950839875569037055741131864229233841908899293214097126565647076389371117877782630087836368085144488052441754251801753816834856016933675674663025554582746441169761953042578894386257864774528334939430342889581992916806308476554352955952102859115297779237637475579626947944662161522261506374893766999496865895066355257069851650161074765821506522122501547196244739626222958163792342290696673104193068638606501593732139645136846542079745587912208917036747115371515101090215533165610979866439188769316652481656804286761846108635625021913724715832818617789325756801896794567971435979123551390134845168114138033047387140153329521651544965266256919438999789218854169242730083759761472088702392210057849653469251972086443934775669063947785652334492515092773602174695769585676448799938217781840151585957392366761056456676955527437419768237496860102444931213692970113076124726066254977216415890479269252218337516033116342026347708102769025485390955015160696976460040372733403806399410277833211540655827174141174166198049339266839946878074252206303059195103376520744138654575331065795116435990334122483668642926847526890779315838331417257025509347970893412362213206173782243066074831083055494368264989016417068345945514733900649614428043082965958993948419002981549731917902051824164496198322521513492570635073052840959312735481450576525245895533918827550884733031035964762721254469166545315630464245886917337062137011913018283498220576823778336263352319270830562171013306824324861927922958217286029764594193508786546946632618213739718713795259486575307551548265908963461094687085967958623387013908251279257450037849061423262676869014963598490369308785628051707526738651789407914234363417047389196867647924857444271554105923067221911230384664979981988764186158241198614995127806158009395808241094353560904241439124907555233193609827703456315780376606850151278889874517236535813974370525437810031483263907529270398738222597564689530659894319185844996478666044957441134256392401174865203564819526863435237925988122021615086738590718330927940792226190639252815314860915753117098231327733044038782756328136233041127476484559583222434353175394650521250445506354888093188309895103753356180914640402995703513591973597988702597869753485180181452054848902165301670882745223268943165400455209714263913183571710183831223772267694553424922991576911929965887978797146043584260887628860213040158330751417154545504169326647985798780210744516574072645076171074482551651438827696238509403864332723900720003169193785898540740099952596927014047778852152694679521267226501233998209800955244613148742460504069122620211931868883686706530375989824894786566478729093088947622509816257352351477561518219131916324819036130162362203779323892301828866630536271119311644824818531321812005361155756596509698277905249592998314582605542814672040450861876271236457909358143680688530238237840090654790996405700776254673236561656613413039403987957838170306339550089570340932573553367152283158828735687069548588629108138511756764740113155135022408311659124933556607919263528151504704585674632719551725416026212022767658386532852033213258911998874201650197163852054661251258900985012448518889691407969571698372656177845216996274879509980583974466391248665874887720830228135869471241544967485892656722160438932623005094120331269220534709837764944103663488954429868577447276472402649640340270784693965132696259312782255076457381544092331908144602634986669324171404279259753685423763639714073644115514440120372748226061177941963388975758496579148980286165901563822993310361225704377717979607890016205792594494585854760735055764856255607379853101730842146508036253591493810998985266844931117517726776886914572833347125732287822221215686816109404862128042654681133520575884475783858330948439382172046798359985353417918095270376139478727165999242636765559066916398999453639750704375457235468698189247105749635730246212215200689372049953533140106406355689154178033548481964460423442145910786565736575485442172085243458893730498647945959251880401777506498423944608585097007451949515779530297838443163261944026340166516684686246673414626152001002670372933046692538546644888966845781531806897734875428851253198161679729199841198679357536963749922157721175518003398182764186625292446010558739319936658610919604321395296156759832302993620338444989180751044956887094870291935369686120605431638711092422542400462640389945111751022037610035169071795887507413075622802356741207166984050353326434410282858029575588279765036101450796417191507218166711524351029106527101909258125691183767716763181558103179347971540969042372009079231500479242538197984220823237675012114475277904725680171619129681763305532663680722537200330727503181263360622728357842711827053574258758850515973073560897554364549943484478819720601906360136050689081466326512189533212979137057491614782561425833178835110943583087176782797980970224718102626337895566520966411657986540566078016042169262632318198168082897796301736436511521974444857659534885717347103230254752584116382031144468371253514844886327194576794476189811788266387619042267833852440353222278569545304038978917458275904683252692287350677976009826000823596922128563602384154785198416033370227241104160145783332035602325167166038345248117463059851809502962178737107900934335312996519720443621005400275029516020478108190024728801109070798233314177539560635195202824590201880512381992160789759477362278204451222435185693996862844985264403081024471774051977595377563271889861509381139783904768694966232456516379424637005244690062224463072878447813062064541551877201421973798897647106907361564689931461513935744682365070666268374320964894257524757981797333647471038266734187035235326236143937041478962090739187657132997296695064764620327449683155695771844510970992270058945525926604077828204035028894527094860657915739615089008061149525279681954430915579372685602896065602203585012240157524383500039006750938064474912167892214453699132672795340371573787909478659966263616970967296253070667619628565757242376627855602049684158780942490240528934014864762357091069392669891719756654060989181332164109438147956446370516296413055257159168237581838397159328991992000412154747619374140676045095789278991985452212161255593705255568758297005599413553907071193596155362060484640190191969070457389633047119857545521597269319725865441862133932016708234318000088542930165058087533127792708760660734278091337357747828911631844952251001212120531829140272957069828457564604314042045983364600860691342529532247413778955996698563498366255221159207888727867746865555253990561442008263565943058601004191089542469895957357584014704648119297760583391068537036113258641959893580747253121332215535659725797524514766939590677761914812045778009899435660962563301135964538227846108178772913641262383252076280674435162539898407842454758726729902166331794246212395619830696922851049487621320356291415219012104150722613012321712004153357952108132395537991942317551611349652815526365928776303050022310194539585855286513733353258408284646344722568765153890471948411783639869381036397391131706553761427812356629320907116286118496641150990928806488673106709435643485478431270972431337880140676525151884163418206973422641127240327546189267183633419771228777829595468877811181758584565341634243944803743076198023238036569006469528380944116659708029465777178328955593669506923825931584178928679688289159860600798309636150810992371638750238313232795088828759527930602862650058145913458040344916395790771208410768425917825201621773829904927157306816503661206666825580955629051144254762729390613743795271337915906516052809975750504581708101093016782008644452563298041293619104161550192482690257471641744593310071182366727795409437143241131943247893338238816902724359185949370811385519426091354127653803524065505905265651380851172424441479586086226759216476040805903250452054079433398503172959716637547997474032456043965497031148810266550100693284094480548161407801314121793263845148875801497223198733442176123293195549583685040185224068924543398192248925962289059609603106534989547698264225811259237960689368127499728854282049361813834778855598862304469550816115777223970612253011601110053996511251765100119267072837103817680338262759216344669636999429604607181738516557507513304272280803622324682438399313054850716047936803429891212713959833037256866662315907092461338801927416364708668608293543375915044150480635058617164413307425889786048181196636813443877112571596186253956697500989612022796773684362918722401694389711335907986446535819661830217710393824867953737846796978415452446864347335942152467866622884547765774121396374411767647476454788957674676574248359386985537786936074797054750066328616642986953888599895848644266375853311944030399180836164191180119808253649938280389021112047538819000455468924294629225696913013463745155511003205788910373897492147066215919876748258166777466478053929139858509641533557821988519009791121308113060322422171498852897621738406561986504327534723693717747629256339260494383228329381506453870036270056920505007646886809437965742775468810648728759820609174427557117571432284684145751968121597595521964122817611085682487213637850431695144214723908680996526184591569700374872018397188701176035189879163516105034709556713233371983763976159342938762636471653934569734315924817064937152775777433637971848106670090180611154039928894542722768409560454566462148154431551089407445459993888910071227611708673952174630786155960146213282073347398355547031189543608335828901158460283325543027654547912934649171541571559622104861987652848639914243006655580147519619319634424835540704204986532816375164878395080424574996457338654491890383606776925608888636915863522342143760294880148514562477872814875414633385259459280107849043584765745190600284563939989918786956354605519181571788411560651089616698921729299074711885202694937536816904280874418452855840990495088872392067597094168239057646408769213641823648616433577030905402217012605567786446466416071470827268471663138809526817011408900999424648476494904093554896079991966456564343202295618285631538653080747830588688783285278793118530639732193135538502915318768820771016028810748412737467251694470594004130194467689532279960076846813521388687345571703709935566834133160664756611478859966867553925246775884930371178154095461659576482169222792690206340845500989286413974364428373210145215887296483467692943472010594634765803253479799540358143776381334785572667943457679448323554958580069887899621323512127881447309652887951372208625385635845667495235591997682313852903472123828607179503229638943040911738942539380253672151399492278365351845283546541919713118201240223141254262352312337043509906269567011507007726427781161541093817019643347670197733586208621037946770112035891928432458339252118559270162778449406571147630400679028594342520561782728104412817893246630871551385382882387005633526356444501519586891514485559471748123787488986515017767042843870162684611086141727970793775928527212649152991013222734663197376522976410241705319829568476791556081137255323093688762505956266962369969172560657065983343532619067466897340316375452382936311685496094287255899643669563626140425103968599926739775377058808305972140877129242989737751586422167622498078033020414992088430045789075943726618708683679212884489087509405647623586391767412519334288791704774439232923997355138158235904505300818821807562115769124958185300389441695415777058111768871558055141994107483695924920127238276904912782914157615105541645632728933140773315689864424798994365933261923847704591926283810415625349117523501738357928027324174334249673762839317231260593330887787704524211283970087903060409409501357121259350466018360815672520149746322544556245027732361874475039496270978344686753440205223716914408312911112902260692255802430419325420693284746159312711362869189946176491370827861276701534348488477535040605235934641896766685047565240545430664075031468888028798546742366945100341294772590886902268856142181642314080386639003776857614417293338962776022135320361861544972592519964774917470112304026492355837357405343272357553974898675400211333730224368821771356240284253612486518633227697867202416950778614018218907655914465531021310957469000966262920838160100773177354334428251166214228123674443902983205986281662476211099442521776971841662351798015326214275999610058286663402853422561674260961826432369263000158065896515747320321049958453732259270843109969608700943506422046289675881582955031190159963731969432649381381028786849804847362156255709846358811893635448974388397291434908122220766631356636647389090126048460184661414455959761277174065484663261454681452285079390418000679258167678727623315970906734174684789549048242619249084008829204825436322282253601701043556618477238996581886784067315348387710708563140347336501698660711114337985886479348243923459512734220179553493142624176182041932581142142691251643682051057380942583505316103944245821178208238650624223600794673211742217008453343732014960441008139854816501364625364701529645268080312879617801897555244742905176784205196828991617387795006583557154857840035491686351055543315958046666284372915875913639619295370451537168429701712988696996482588968551757574414032055325028154259296153877290884080729170857093902545233198086419689429176743100171654778646708065021550075697671030537261513202645223707260667738091168350987118240182750957784686605861616204523997513632079048123396632826282267006540315937918186069149352285201006116919101397317138841780633963161148037765327689300124213267587546575559663832350344944463781997904079634187041912685648660235058148979992412577224349383056583089872706640701621006791156883052542414580482212369436635411123031700123654990374276549442757030378853537924371548563356428040442170347296120885726265851914994915164872965882957035193280600494159221884624340571236545049127750013157308729913524238860145641258161979647104749646391917016082594054495744292217144527566867355062112340570819664862584158461600242408879648618900233039647712165308016758097333643625878644087810267618713879110079329785336405687877461921941078046833919901592793611776696721661940431440187538102910952595744052864183669721964782023784162900872497252934344511185273321285411367969674124492947093625630701771559619283914989327444482932197659721341476931445598780521477252166721336859785165760190633693759654858564098945228889572237795879905174629738250189919842618814859637785255436220475365943853457972986989492026340152146372509252134559711987253198019737672601962973514543803169040187940914492198661296778557944977831621055472149221177528142952552471046442121715991997253194398845611130774293975150356784064374858224558999089733147647755623451354053712167300996991575472097129826652594231700784536320741613217475292159381373488667394270735408265012472963433888462070736937308488135426009814787162864496878461087724070484102040097706267526068031177456700409895761243108617833820678892973603870348130864083367682486251028912856908538268098867181313801992751431950008223594514145004791977468133210735777883946370060823460729164174915027684341251884488357680042013154780843317069669159156928261852638573001093445893856046496427759686019546022333702826879394349029427282228753253150607600428016464284751913586406842097331317465129977317362301434015467881010830736131775338768042413092947080480393738016719293270982424321259350173614834287314494467838935979583175014042722434491351736871328060976217438087912822654700682369733264447406949601815096932841090034837601358442208067581795394184056097936695321025487488952410878843646427681465018317539834752128781666485630695116760018708654884406787808633159755007090761733483281068021093208630470456708988708637003155176397299675670530243366975971678847474490020425170627768601860686904535096687000669580756326532215363788660941633534613133072789613187251366926041551612028209800092134102711859594904831532757995154783917126385322405111281144382805450471801247887996147555288022575470599519758644587155744843148043131254943772064273238446355064105335295389156526816696278595387509358782354403838637733009499829299470554312085217242239315622296030698708833194969615296313999058693416263852134535140469535976904882637110715354001825749694472496130357686766590807632235005300396245298426487932092433170349180447872340622120061606239680238918566768743359191161683109766549861975003287231920752946953977976286920337534970773505136596319407807339935339113435719050853883203268626972117447763606105877881408835693945910723238569469301044716684301421037413122552582341661763257363568874928079957042475133274547094753948417286425479965555363363374840520489449905907379543871433134085445831474179019918800087961977060616144499092413427665970641185947591733001029192906573195475308026048027803434902478175258021739529429320058676997433373349461696151549725920296978805518187627708539247784865789405774819886414037853408725253268830814326589334984873867906814903243099254576399906424316368469728195401994389636991984775262816559168051981221138653317316187151727172363882863112079069249721762783960678570773788704724256535284454178964639149932104905574364888933386715410564353814040103611679298149446755227503890749447244073392300308340258764079266856551801614477960916277960114471898599904898031040581164959665902884988951553524792302837222738968309605401472138428104448170656713553429097984012927860273964731691831911586269313820689651448185523826422771531349470126507921570692458414967359597391268260751776474594823235781134368342439838308929505124004718434028307838414404437893023659896629147358822759133583967192681910634819484439780451133848927585362016651098953076238299063296046267441811058416964205937021128577694621840760741357723232039862877155587746298984661375423585479004950218998457814848619551453497232910942736465260949860561877554962756099866975567331203731361062149095250681067788529876709544595293870791509824311695888249750086818455282645895640889776479256788684710974362137156007348404226683675842738372546894095033179260847799079996454716569932156137464728791446133694560698890654225894829907453988350433962933172786547429513468764904987253943161596793090168331847861489123869856879615677558472108666227853411432073246856164320108426878477624259571312020182605214919809308598170340353708090384743616844671077389352258180695512494597519963086364068026674174836318740822466013017971266247964358965295696187066302155360508263938696459286688065094397438444057146235446100047387585882454464091316851805970875032791663460480056016756329915371432067903652617526030644750817210990344274225728849310337238671818688488133126871961172051203260128557163064263589580459963463769368941031223281631449450894642229648162315585185818628363523567499703745209674789062078212007973638493310306393296396671140010721389472984629785785502293768103068444836512096000528166523983870208283920233911533938672107713092714231127224759128009531192656530077614868811762739287550087551693037689849016441054433532713137904223047024104626882874901118972941328797713002422044978721080624084381143199652871470735930319743482214811679148116729118736958876012769829765604537012990162699801103839007083785562677430120663811462308866295253363767587800013476860316492455830982981545668190923102245979869845504310309570629564136503587594878504023566341354331676172101231710494811219084707517912827062451328947046583238774296911375636401473725868024614166246816025135044777557726852719251037403587288991756278780864703222974636200543535904755783920103776075361194961266649052297229169024929182117286225728371169233548265568719177688588541014720114258490902988881245663544717037710256293603422568629668647654187767167775126002238028154726748322378790522783210959197775889842213540451352223414990708456324532656541821296414452526712542010886926742270976084301617334816318606326090820402791995272319770094786958017896560068900128502648446781198659785809828937372802227903038497780003274993524673248650711133380505118390295540372790957047537155838687239007283610199687240364373676632143449565628175466762717809402028300737209706571594931622019666142323860849117515715513302481513748033749279205600717151741813659458391655592134358150643978590357886392788610466622980640573430203121429669191244713157258838448134878250806443414895069057440923508461314556946065971182556671612803792303039712735670911346226207960870647733532115042633148376948825379032340566384383083617287604744633664792829591968850137513672996812437698951556389748725416874546473368971671716731033445023784060229128137081893413183472819525721202424027828587883533145357116537502246821300990723963367789320172702912424484643066234933788423064891099843950210748094461353543830398888124310656295943738153070293226022565464504623952374687163892876864149718359710417083642251086386543830676938621270483370220019588404215095126109742970385081664225090953011642156756970299278950017780427897361509604107068918947067180733287119922482488848963352177743367855637402064989114787735620015876717242476962889529177489086320924844486389271734056184016428059777083980019541673331021750807987586197242869332496523702061712128999393215735090094439913894018284406804802134433841554546970511895558958863388601281871571752443887293914813373040110402467989379483218126906641042153094553266805148333990802468459084360741959506348775655143482382353660755056572183330403544269536519840864521660526063723570027669232269219734787841981794106807923563819209959085435357104023146153289819577968380564156714733594833642675337871661022151777590178219715472411278897850296378285104732062481816421976395728011571904560874617217481987534615965156118521599888936960128712394317907463953810996165977036337643151034765136195369976458782934564415749753264358146030290324525743116314219521304036451724869793922759150768988624337871242067795021229700651946926805105819153844876567456245067402922309638780204688411845827147694462411171718903541613812977015924739655891324243195940622529184393444816454358230304659350611263348353442322449719315894324908018688557635025498926710622170096682245782366154739122414624609715194290948913002534974514923433269220942908471778552886148990845513849803698759053872205773195344266277314142683732365055358375457049274406369794689225324827433281166732167818315312253239819162498627273659313147986279786679431071390957375582071893350773874542571221982477720856212875984749553952211129112986826990962560371979395410641957780603962960987957603502922539434815135039383922331358822463276738386478753117407406252030647461100908176616721531206788615117658426191220570332836050078254177136871581036739485517764088818951136447763013955082518989524792520706790651528663074529348600422496837247025840448371588164549593141380221772278030809585002780629832946356364656497802605899065554569337667096372848056109544136031139837537399363898115469732451825190468976416146218954944400084614806524971572757609580898531564782526616303353867994300631918261867618409942414291977263768881040273623581487639185747961177286979639495272478446159686250426285589624976973235210048830606590975488024453522646997237893118786768982377936778512825576137674850872146552310571668775632337253341700600384427058551877918204776779257311366294114099305427392669698745855409778248661735348497400048577859986874358889786325587674380272826864149750297230685448836098274764171648994260747790971605583374890386114072027368897025123254089107425421999800389235576142165631844747126771960991225969757084794011332242659720571907895972982920873304623336414371288804180235781880018172689486663088212238710825500775847979573304661544095166505401813781242462324664680502763232491968971032218969901042710928098100947430747562277996083303473159469379365282299846872426975834882446825960513633143295898120639662140631992506435299056186644425103419185243703211353990794512639253083521833350027928791974135949345762306862728195956726431098205372359536765219161499337542106545832096387555270126998259504846530292944251382017227479372809788700914565623321839733579841852444820828481445017057698912717256631560974579343936983953903964040083690501482306333501360636767629126338821476585218268359238100459127984837453257470819561340219167373338826344301243962691190734246979240509657691950954308166314641516862891647626052491991927288916387020518622093688166192584862111238511787291948396518272311934773346730175744265327446617594779343120697118672865366218642687330112507146600855066064021598652761820501820325386786520580270674596795685540710417557091650076739707027583823807045830628826072958601178399721355340859732397494755756228670791448844181429692563567130303210056736155830949429794857911792207117603421835369408115403186390326983168271728730963401398078853999516594221387855654156142504645769248523940236825021209776259021598660014854141475483913581125402038392943026145699068359923803879169659727487934983922697539035687645034160080106321861582414927464184420173408254619838534849428184182589134452974529372425854102236318701298619790709216683268170195784489954530234625795740744974656781318281904142950218119991061880259804934898662574960249247771575847114622549184884890205837795321480988354436824478848605733653102813643794180286509690826069262909272155460775795254153170391388994423110188267413152330518561056222852869752514368316717470703098829746425527656171632845656729167612609101393982945399378196021125988514288746424580159134949323728139634158935476679672287638019339992932226547700732774841573125840106201979420318397986780691603316380263868917704571431243997843794821338446730208507954992772946691007544522573258005469127790040794357337002568092039886865615270317000087552037543374091973366694389234405474907168466951044707673716333343634822421491979611745929486833649687504176104511778929893418665615743390826897435912347672580283860224409833563630811264769468572118176830650058509644747673109116234526670677197972004014529648983009917204709691568013451508319899058329757049116412298711628256392036838650048749597176276310621669202782079182735230287392867929389657880474421787019117976510075036106665271430229998556418779436140133165080623116602111342470247557215463355115074291395350881227270790344792892425332132239691345583933551350374342644107662830724833616945350281717021011931626821809127958402642321931029275276418428120162861443151955887327025015585826759985748758915170737596040833225102158174047915788386821262995090442286999721805272977206180661619440310808435286380801397860692446186952996039283139106874560205612225324270681738033565868589315546961762458575166150059930608377668952480400128079269220331510801386424136672724575009773326436379282403084594043848727906861849747458458243541062839548906178229046317180097523404076853194827640219322808199078558885900327826610559631822085292406508433476158882771585989998615391918901024889410514973621961549904856822392675695315478528296452817792009322800315669643838025679219651827739552048009314284774031083281659337075140042940345875874487651963743150337370627209783212088457777152145660956310862198032958840796128475345961999789362807065664961108999114713177845805016005370627470621074244486207942871107113873757578618786609934013289608086566916161634252540672631076145439014966746114790519135225161598723589106599875282963367278323121594854269411393876248485284182431781292237727937321310267596075160496392100943755924717557394815420871615969471646788329685223590981672457610343935893424595815895936510050362381307402380674683405478291152699268529924004679923659126097265437856896622384114793187956604464487873668067425806522499385869259009147608909971365958887564787792385414446151153481578874702112684413621627503028240240112188390934898386709690915321281771204156723268938222460777370004174002637505594572089094165392236757726019673831723440109316132561098432846739086591573402830559886149256147209079248363684872195352963458467672037337696781727375943762973742669688501146142680865813014871143132241731348567856886770589726083487906522434693976994806404492409792227154038946899209936580374068922997304042937998327882051721062137710993515533725294434717859054390412203108556142996230715504587421135171339441556727334089441546059645214439434113960128430700194859427148692232382566275507217811757284314564824828602988202522947746110331377141594259997004945270238259514375812055631917946619172182083107767157251582877245507194518336717097750580680224300261521204149417419561104728762390582936258882659620520935989172737293098770605256809671492107580187134870296747702288908262313083015853709534141966916044965288800593600074680185981722867189366942539068482757996551155156832414302511105246737780160736274777798156676694780785214513290081353090609205376445304770940595309031775736464903552861389705936019916158596135278063526702845589149643889062329856499698625124304321423948400064513266093432859684117628972134382216028036135827073503468123618959375713213757102615913361442491328256319400042285491650730510182859413590526548410780165767511152638700086833453795730997097277396413415711606848824336709223284925609786575388841155104585634182646646366287651506052573868028399484893845682630244583163170109452274026399134444717171148110571421937982178877162973894934651510758258933720875842444593173959505320958304694138640677034083993164141487272590677141742931189446995306202622832112445261854239462956915004892088396086331116448838964864766581587438269401423412749740161259627010384600682276777238999181383473419716098357952644141765422498465352458406740706578582990775420649382014377907123911732765965731906328083906891595941541752909564949941326990664339357553225137326251757629807364152093081039332501479670986753737478357189372941115781537291859375540421774512653723235862273393987615093886650455035331916558170515161721534555329516275725350179379020472800230595852887578453495751573360910804664424795117322710048775351496115897677201539226761291123477492581609604101614615538680416495186124545872541755347884073311492102636455856652781676226823381313030989023805940368832293299918889683242019267987641561604280639388983290312449419671372890718354568075622452245324201462607699551597645670517550662194329484106255350605996915270871236315942192850409162030833149967983071442660131804427592141585795795376795619094113237468039981262364897337822544324296210592047595018116677606481131678571083712746687924275260762785096298816388531541475550923691168587935540868575450095841606110036179812958685916742904791211473164986172945262273851348059616475455990615223332996070311732579210198162856496464767678610212343719472962226810860105424270049199168761533485520609461541372430960915044704493303395728393273791576975079946935389506963060761870676319750651587578977736618939508905760492891951384657099008819982713609140375111900966166915846254790453129964614739512541418859403133896920706019915403098239717108935632282274742355353596437656638102162120431234208644721797728725895236819101737009945851042075765668410892426016395721751753351427802386005563534395326138716856762751391113101577179356868277753279606040695135397497745282424961970056744732643845978507005092840866365219784768380803939277970555024784196339051266718866849276214066754884953733219883638240611938138615096891075612866426116307270120914979061238048968996702791570358309234895974842084967084020108863787512541901900509361811428404387733851941643263479517355868047096897341083235120965331341238334217296865279702259531950344730513448457337011420063168185376455114409467959359845425001862611689708190714763834232180469354741452887966913074058283101140777974927001027687700300239877443944634243664393353684713785402507604538770342139806009560156580859168230346694440286978527913387108335017112822108734515402715943080412760024378894701976309679844874625042202486139401328942429485412745125286927637336500761640953875137235434500002322360255117191378619252662702209252552843884355549388690937039310865161587022088141475438662505016619348097585035169791070986312556834495317746261531688268203530305106923424774232220190162459438041276796123006093714015200608096165866648881598120348149221492239568924755721087035873991434118989410794617781639549947592428848284212118203904060115548020706949817611809844731879995656380998215543586369497308286601635947256315398593791251508028763200234820976685590006734462292644529800620608786750796554671365435479000442171457990211234484827735297138486530484052140867831437713269681261002011400422213825325658111384697274555000538641710665949920726400650268319059694147838108765500049677733064878829149634958076217757148413953387252667620259155054289644175759727498944383364210594293817006480060178186031427088053804622938866481619235758740790271246765549327381143169538625583347293496017577366369428852385180792924768173110386879956529303632870469033289106906374615638649920150017207539144916320715226769169082284637730123319560020370517869842024045578607401287372363222074661317504856450413248485533856287151399092015787991493555529971286989630742674067489872763428392905141296507714342852284948043607343061633070455802739249752461546267935350424047287075117441544067275037476794385681099381112503512570842659281303561647888735588089621264127173086451984861345158244878570303202561040618410774908111979026472438749658671893124184919912688248371461702746195767799519668818173899005333168097584010585391274690968753483622201091329877950614397617507510140507960310060572978166640663375075421758124042160415105052467770899625490775337496940242903613446114175506994364531015184717122953704429051128241286491656508092834776881109131250445822201063436021733865757089633128468354360067739427237019730753037020836350074376635543582554568556921394762528152818374995513872744797341844694883867263001516614183531748447068943945941305562238552597298796414766112987064203136805878859894597674009323304985012254703494639103921927871983240723866539519718753728857882990725405349148365585419714783200131583718995003647064078475611805209941510457884292639917232816865051666602909423635392360215015130285999867147875343484788389720019554395090734637690170264548036873393977814389544303577184789393373181558364509751029937532399018344329974795694825577213678558546314086717941561656955059772417758482053796018062980957563829903199168396435230486461644646675963011811835283022063215992371104206885714693059670155959807176320804434834621211955462796098774046674434813244106115384740979337054311289539474081331484621600365978414346888867922061234571060314872240920053250267595455136097242093581066719767140737433279276592784993875072827323662971089660358214638986480013269273767147236877415253803021080568853370713621924185945055333493094652621496804128471884084411918337671520409203678903708179379595125117146564873176819983455803694738457758582762286846542759127584761672914116904314389194592101993409217144081703470995791386310126337700890009689481759321873040757522847801751361157181764030610927661554351917336766442446028594152028154443263598176753209533549111482238403323170501791410248964416414350924316210544611234793484456121413471412255874740050708297901012040492150166594822603185245375529249762419275479148940360296109706877085127987674980210248430862812898279842698918290130683600706839137063021652986722570225370064724312867966181374293490120442859651269444718883270405559940281331055680613631941958590594319568477130488843274921813555896799632146303641183951002467534064504921317942137701671213497184252626650675399276893320253964796855169343327000729783523633597570959552382491925905077992898866909297341628207945819331291754248492475534481034019702174802441743247393572925924607612938097722058860873512104756725890651555469306392214849489285320579327014017293460521491123583148138072540039107679609264879087891912324107430442259945812781642574253727874313377078684754321289147228706392516255817165893489536986033732223301894642568360879333242142922911839620946896971858591419509601526478147950989613150133988676662571664929261950588864269086019314612465908440558963093127238450093262567972058810688956840479314537024140647275601062578839574655377606594811857702285014807951537920619704368531884371233960470613837371814160462613087069150019326468436945213872081026427167709281627798429591625241283010764637128819654236018241869055145982937788190248673066859249996579003771621449175005306461492628535560351342626447991333711107104672680644689079815342739275712454205590117373145915709560757054551016000757558207403620123435114460740028058804053216118981540034266521194667334399356246090814681917237237564339555234163280671019647424955582250096724079596069025219704547788000069584335110647799900818812893527163428992577558539178513819633137095142446305608900739236365513956509225860784570018085596573642947292501319176495769899069505832325872955747493495836868102202423591020590934540292314136222038602280847219807121746903402423376997227358635420521372147996869767549790349500029507265031363576531458034316733375121927029544167027766524860228763207656002122407039523343925260559290542491462074491975827928640817652441732335107648227906991426711509836843850480303998804047606563745748894777112243839918584069459992318701696941888570462551061219708898785279801214443234607900626450820363927981390425865022380908420153262250924802768109319973324594485379410378805379552431880025918124862258215727075089421282652768785430991909257216263561460753143121554571187868917790002092250706180617258728002319357107386638367629130097045347684937999071592127522708844890915339342460713998207375163592886664645379298643034711571459050972381361271992418146858610971271522660281659750104609294952572395393946833066876813722377286588153621603931490902142284532383937668799177061677592118160138516452179646429966245913204912829909219202746006043702766045129086717089108081868699156283357846129984029458262143249722749125589798841110317930907833190754702741523268758291454191827434105054964093332798523939838989801881474613860193819955638499301132600115527975721091456743326660506356142454523572319296476382743241767607423712105722267295583924436513904009564284426827588671693475257790549291643087784591301769086777143067356182067892337065539001497873257572856392910229404554306401355062807287540414349032708734413773324975549670556813290659403110891832985028715160675357590945711920026886109062037219735546620449831121644749222084719622240122068664511694909609189717574370989758784637453709097400421716235810122873520410338757471125797427043105767304490641514671745313707277128779732539836777262326141387654957186396531904801450005933106952662906557186860328419153737924693411974932586478630054294289579385821971269667961744882130476056392197549835176540508620446900151111248296584353636974092419308009875053301389161540887813143005451303175086217255142379898280045342683863576157198950318987334130382548836298068620937334535727382524228386722621610148374114004798866110268839135333944622085789907050301708831159710811870349686540235518251824625849593669353737111072187282045198371815863727849466504712064482369467820787040523998519734421828918675460446342943321444599095406955260125757891897029311234161744550689466869063965655339465020492115066060663615016117340226539469534155898575369238020797887037876817924674563247386904775010089983960242734226597091097361959873066776496573084326930516990540633957401036531533747876528032363995417639926420404618078895227159797044983136841247669674474909056106246089701606911749835917254444475122748749108979378498366484330394075398952775847246571918652404413517584327719178853475006462564778809733465300738931199268387496826068317345474036453250498945415527256101477593585696150194074199109621281984669779844392775054065109575110430341900908085603253536032054465314911254700050884562458831109205333758611005471385194583728624078740153983088038534562486467841289290014891677683457049706182190197233036735895152225066971970843109049783947819460718738787101188568246598053971179292797016578502905308836289245092343562526518807584013002968025548430072778859024466009797145160546030188795271332673569607856532177069780783257223863925231078972721091061792684591151991153917573409671858960290809773275623715131204637007810314221741506410910438803103536964767248137768018657812851228622607321403612018556047804998410252537030063791975010688096481678934359552977061494891884662794160541156981822335270961141331511939383978751605826782189087852620848261771026674137844183327580728822522299989518908231794632950550755142633199022995203149444189228943815210573695418399288472770672224055204063752104602247375246553032126413800746080949897294262560561931007473846287368374140372799812890295693158282789848039426390494164093425696084191714565868170124482577889762894462593684852398594723102700910832296318961593483613740201673657681455725799126720334967321443022377571944650186350626034216617986062407114843403189458148748849173704561348441741026318668804504241311855629225317679012295099918469358080281752856827226381949117214849811408391697119792702189084512710846589126055298464326625587575254862080056257318040162764844123534383914034693714715379824572147178894092920346128528403536006068863960681666680749269956201540230379273886534898211143318120678958466823283946526459491289342969040050451570391509028213861875440312126604171795306663929243918560091262335434612707748690642689565472114968352165058988476969815104531508164360012613478162409444642717113978962435112576991668452125366774864064678357006077779104680929918872891941976334707710278781942636627370412713981442953989474025998611816244074332352915467625940722841583600439923147029198321603760119210386554015570879651601946743830220212527109720391741699098175132619577872343523533796527118975654298110963645796997063149486432894214963903450998967062634231392894934621769320091938823567830062350551332543560815033235548125250690528465403348011723083500762911857358534073922806298517797988363829936295759951977541703353565772510962618980759348999911667152472871810556398130660369127448074515358717614469744824808737840919995591084056835975910920048062331110888990342546276299990907858615432014228687451302198856415632778993982508735096601512146082542687041608303337633169411989802727091295813877982480108677963143778304933689829443979729634889737025334471970003310321267717972035263560786206226715917137552228073574234206593180601588914684129541731414330770511908379458677609104022070193232139874404249597211852970541634437358206958893797223145971734600094790906836933451828742690408075797546071370914328243301909406882495194091053250380242586888355987055321212567677395049938723929455566602843436108301608424323878661251956821386551150756040693919293764577953275220687096480874063012931641701688940081541360670624627361354604923564218448128804958349375173570547141628155412064435179815532535360344215668981099019587855061242139813365254619010416903901027600345601423182434912515055751999340290798635327071725924894020015665574262634401619547518377288965408550545895500789837201112238046760492971347949770619564698043693723186560371901096705469485041269922368045919462052366311941934157298075934422717778256111326633785381758043704958125240237888103209969855477386433955937747196028093943789911829129354604159872127421642987919559309515227006851085822296492864773405187492294730102535102973734282533672647812301997480420738470091855067682028472108581196093889793056827029688593734274108986070193350666006723924830451734629054909205756288571189635224044969133299884908781429730609162943259262432653419540697476354939455476330451253398289650612209805132513921343456534166398318662114919239608938010504933788605064746944595832654602630032041158582017293061688394733883422055685126969303932274847382011892241809981685149761266185456291666037528984712972622615455590564048411608473403716234102150521131112500090843231902487863034654163193927918727203754293934380632622074574980750733535312009086890763165926814282633666173458999893305453920596916725637520829909203143463314605668193100625189151445166485487716864671169960344049238075428720889304121810371305748074985113522640522506000937128341487190577496246171728978703856909400157251222908727225947872343687819360875004275480652757322365487386295138059325305891901540359667369701777551681446782321061067258853764588963873978138914871668044926679075743014629962721043644089448119958454435389890299482279831797549826891754947543014084683483723655955176443344647627671783460489001951016127767736516824644018141781042372159970022562785889723106335030081325136620691541856598808141629149814168500655586365453896650999656281975025962937750293462291495457235979220955886761051892424004251051946469866222110629276342821423475730116431704354112602635270129725762434118176065368957573060547972533952869419637236850628753146652392304986517886497524490832912006215721802243284061682330120498058060735985563277039413422131177771975562141854084647055337529794716793522553523606921067992134900684004248690735925585163539075920881142315716008516167614444867428192884503711302518189706859833087071198352692362731793038396919505983493724005206158552148743961178557969602310109623762217204544664101388198967160826789041479695238265019391437449606054592713317750398398640860072398171708389149837655890095418876760537515387518811043871213227536285114507983221658866949903217917585586915297055137859055476981753963757882046544735745578493337303952670766164658734414258443075069419569394176177893131485646814402507449753880384442572203672978577100541933771941038106102800734695862160185636433862772801862779631629649759788896449473264057273572773935539167950373685406849688418541784307581353709020670137298141810195219042595808040512792436306689235509168776282785796766171550065905905234648612243471760547223292200588757789191687313846453227067322767421796013155433120842506128935270365099918704508311386982509771215661301690938201956876579261528932676698014460171589975663633624643028281880893262799333931969426708142366689750063431223292600086133033623835213061921623354970388461233466314411280230383290177887458966729698179733730434326678341304172511104512846500051314064010218280226240052880387546720857164139284451027132194408255870374267639813438922944980451934582605794228574097782010774727525016282987559510886283617149076986106287624599917034668356917704810251577217737680187307763596985902221647628589877288187489676487576489140085061983962511940057462497371612552160150151639951788670525457580905572690854533097872845623588301226709566241674762675007761608315121434699426029335700196204670098395131611095278878947560802459531149689848030409138472812924689949324269350479197184646109147154955729438320002356882344951478522564294103460983556588053438694213140258916619323351699625606670445267967337417317663228937922774186518008248236757639008373408405332771638879991553156901439011908699003778767082926263380432601069451276997877926542535346248296395144230458068144762363492671456489271661227741520557737149068640735772080279618937236853953685996698302343894607570278671466350250371122948012224976406761460153211233555018209009481677567026366605061526594434240059264755517297415768057326520583686445179408184531522558955705024141181117478131271802158740062689136650061207939376543663070066346345734296398600496429888655143719900508793606704628288501684122150963771373219254538879900472793878497283263886131240165340003800317488218310230335333884095559104446146255763185279486341814995703338946843355110836870047194920027835391794076617175876846269388947012407639361914909297229749535177835976841455726521769065842410491336320247936603518730596454459083888114918748548412894260972130542281305708017187697739698022146135443449531622424672616172633457167621361296199672694447886401613497417452122666540451577068348418028050913127808247980630506318022221385934705710745776367966291436960688994939992997997408725476981296335603240558030866190945954207235196712685564010042523478067400352714587881166274067697084669486771168364199649953307404459847724842270001559686931107921175560231908890008628924268326354772624197985326381031869833070977108923633145839909088104989009306096845049390117553765471196618994773040387320395759931066573025018722292752812885323653806762632876083382332531603880638485605979970503834121019274657380223871600984483832156047436670146398293705706656966280942012242111248078491638249389678845540294588986045612593501110157418982131603796508872683550011890334380187041358041725890137758410366490395631565540368221869926476144844853075165401290328675667710314325722718220440725651382343338090257965616832660884224849117626847875590207547148097120434674408840226045685417223140555187332891502183615704478731165293758689559393721540480347222203919503569552356585274842787401033267075324499507830702289020918701056792382902583147939448407805705021579277853272800674140260645324172839765019676536988036487393163928639928257683766601074151301296952156127930299630401267236516285905517844241129956533109244436246087631506059651490983325097613661165871315535493855848138265209448407201444956970730874232706719432755053152840440153125778211990652134444167350568621895608866036820736142119436983392748519206435212284646449100203362209842325736076587502194712825782957555827422491589260535756087603460888247994945458849362620050506141104922091347089341542788377506576395604737467503883133671239059346865886529351306384691145884266563749898758964906918217415093960493326532471617276979509027780996610574951030359846154530902386796199418014049422957441422802889488619615533914184163716028169594517858297068741920300605320648624316842564630513789801371888328879281476651859464067085347483310840202523195782761922456152335734789730799225299084264344054627354133833966244161064505437802786424823836766383351008586782842948946390340054267320495438654085595496603870960199795396230953158589824045809511958376445047332102732988205683128391458430337209527645681193460972636519105619510150094250774931885525094158836680321522992543236645494770511912023255220952608622665820982440171131553487047341200209287519390499316752505968700076019855726920167415309255190498829665861338787553537089465503484224646531535174374827658454838219694148284289063883869648668462423916896406164375011971059822557304191498021777070937065105854263804321976126459121098742482856820846673046022053594724038022998853283602288079360341227538031601934444731691846863194888529078326401345442302718040297253445135030693936552029775346381101018637379497210737583283649139923400294235480685778747331555021332935191868064108427273972453741950460945709021122687906498966006080748765339470240976509444753260812653421688381231776170255515234351653665507831987463246327778177234115163468933456992728880000303717402380783964225586615248868118912137343496944362420935625841065303662315137664152008396957987534706005632954455835818534979391241072400046412503955966886407594296448898626743682028910768646248009762704416171681964863927954608030072963179845122885319850044598409549682882097380791134072953487932545000284398601273015984556928342248826797073767178741661004103500103578888681036207049032629484469906226052748712013661772174076798545602517011593095499993743015565432868979881702063979766868383135456921857539121901482520322702881991862196288262258899622760346649546911701840631559380962008638749286464492330715968674722971581594015616192919565572770316021649737330951922205921721946143671742531367209653053642904497958011704243835052671057568775363043708263762041708561370283776566753277706150190836773535355336052163044992141215821879943755189687809329285364559839094029867974278697840061475841989882499604593886970337965001088389789724446719756057468033440276041339099922561955083667029630638462787580730208481368369201101441572270693897915272600058158530939228489209103756706596417606522032345301444364090785234532878215758341712318553712007422173650739554847229939335539847446661048844677783966874516134468188751873555029303454386567463862455472909846355760326941010576139550538176105536407133763020835739945401104649781594353191690849250483105097777783267456131861367151105265145910509628872945968896308691692634037478462115099001839501063840974261412477408872393767616832830804736903065599626203467797571101699066776714968689496913913017267782893590410413686793844866125490635237433184446332921144552397046535598942452263679541471184997174151796685487516336117691971109339611385350759547989301157680207975248233669667187047467407527174878992246162364965408395729512928854721628805436735102275497045771830354260448568452505404329128796232224779474068488575188150735580413334530847650426496545977084246506734706413213900556546251202498819829830997412949306085756299018116912100264437365111989496740917761839766628789481747907416567617592846356294691002521698901588947274485704344442245324037873915173895650532282829045410669992254298282352948227198468761895175666276707136800119968698168379833656852882088251357934450983265452157323938403212547935037367505053948583540594223272670998201519386075382722327221478395691624356191850415006702049964549407092130156526780617507556994795723237010752944106868043389341708426868707441471781549074212059001626811442740430849254034589534763193380372793099775819063081172211519426332773745288935924568915540252277485209628636010680277398602522622191484244920766510106091753151761737531151750970687644233888899711529900619431810954071232476184940678750828675775633774009811844450907991783071870139774799391438686504852138613737184866815360855270399458272606983738869520488203505063083817308657197589406357728936780282769906516585680037431602322973625485477502945256818216156628725563321430167491113527372525457499230677855334721099554831186128930346141331358260215738238801678022095046111636126267883652868823251241489783021809920610309916194986075054088023585671263595467128352691798808544947698003003657806852279176099470331288410221077141874167432778560880674239405158431757534005903529178171782927046188820335073885707793772647068721132710483968657708227874823781828227440024122989364782047297572360805851764064803592610148754275470730859151054231465851818798330660558124182389726502358928314050189434795448044381246913670339734521881551810815644568296316018550956169979324154538577998335691111755658238874745176144203910325987427438583481606078530588997891613463859562376663170269662566103119906867586536870065374798291295650604249573586098245328255626352164030680699973123418883990422878958507500275875962465344023151283322112539161154948191913259071437959383178636968026727499702840829965053077083784290245952194207785620956057728505446322490974158570636532883982766741426176584937241621429491313852382067966628055898638040929025274607969955257405665822102367695253106649065710764352024450419328088488756584530316921673646778961532661620649517371816982015913400055686680422559403335827512016101626863879262036776649444760173397642048310193889096366643102136663918441546367109661197301294177544581834385529258026091989099335631051768369212790921746311172536486497156427833447897220560947013877053683973974787933581703859553573015792056978656861671526736044919203802143568923177243367303326633854719756427741993240551358795734600245921548538915575375310058307149000203010658999996725648738866085401294552662419744602165051939009328018988167182991336415794428298580729521012304559125269211783784455050417314244010921358047813001942419835777746340235397201558717916635814981724474508729906632199717533006498434983987575298382451739279974930068906053748350213969222150457679747369711053118985134107510028769819865824722646079316788596813778809898977108184112590568869307810766481324544880812153078786467738402610114362526946100097389771491595967664851169240529001490438611391549212502382734261571851446915738215057921940711701881295760570586979976846725671830677428753004468851497457742259767136137645376958143512996532387623755358746813896618767984005185572056366824845925002984027716808848114047115486092102829067803891855167921130323527275643582549108989446434842338365845722361068984413546165532837728461307376638859502843992198743710665610185965076234747868851962510869544093521945777056525255626931020378951244746571102318966531624689280490244399170990212745852011898022262063685887443587586642308586563100249757239648020026868969966091299141131968321461445533182678545016192905241422398185377686822291427184423796819662230591053937578999529930008482297429212270849921384096611183739957015309664449453270307725858412396647508658942992677691006424273405066383172328541657925535273306190574342293988024564170346389057146770849912224020882433849446221750250098179002174898237822268098167558706360486853560639765286422912774789553133768630093389873848471927492366175191869021661184541054365504530365976006503078443263812364015146516864227388063198944345140655081381625362582954765854607374993786665469588494379310343725513938433593460759848800888048696763040533793002070038321691762680719009482684702077684658440500264807900688652029162403376210924475861443110526529120395291058021488589721695789507879455814142055656935656829107399713549575717750640698234870994635756029120289419883100407672860073757773840211727586234346914659677863079776846852184254405646747446328792877821465170553744446789365963819165870720012880485403220273614174189374707218931985808532028729942632182424986159141499937477518193283412904229335374356226903686281196305938659172375682116419546123644441440264253633079568237431822343263661249494892156923273973366710572649671211649788538468103216261924366734995262077922160608977097634283316104969359702439182600991379670253004727271346351941710139196738279687085866381490537788752238966327881379459987646468370777559817838604430096754591340346965367347030071711674925775278727998121902417203324469503256668376798195069191433188291658441990674122699609886104717034888770167000708964452424582801329975707006008167716247091072894988004849524126461779720675141900852270872129247694990645989330998924491451784494863222133360295109071867882059379110413132909451952458850000839917737027772172027074487903775897774547106809162394572280955631251856941639086410082291183901402789479033219910067454928588927876965528925026001833417245651947176689670809742763665434464980475937813811904456861855526133527179372095678180814896112157140609460778649761245858589739016203763846513518650274144538773434041781961031934211540331689257249891340852680073796013558773373556037528771890747688431938168950837507999396911577962947218319551467628849956978311706650923570837062689049773315021642940727646113976426140435004175055144925430589361442165672844982247951718568162586332123731346530579553828941781529845293887580208776038825665141256445267755484893426612734794678242702633618596640058385110903138999585663575488042296983259986659622030156272991199059190912370479812044314810953927701445043000416843706483033011877185214289482787413669289356671576362972628877064028989690723231418278334434767234584990908340559062668715905793185937006901833974251127644493687284419938974471950356688483070405256667186669051301828091236864128588188455675168873221972036187206260248050763815986584571042450438686904234210094516589053076549943086286008230521428940402094811064999770594703706692739961428881151430313599748551642401745526428810274618025487851727424955999432469620518386567991047297234820492137836715108965825521317392204883602658151178977486839245528804698398430137348044579338303733125481141171734043843586074104690811797599931053535238747976790073336238947039487337474686386862704022415223322657571682270158891610047746874551761403861513743440742836631633064811495397201675280808023888059965603675957616345866171451810695617464882409045653440463989045213442757873081130219071464156014549677850349213316403402338767174074947425261312043003733533142902110215267944889664557825518806961784078748485023221147764666669646350093422582279199909052951364525048864803930840029110603631638757856105207516113786325779871418445712240945054188417142012138442082477033120124002658807057347444157129524092267341426087529169487577037926219619377463403765529993609982625704426486608878339870601956523769823486082960170404380858415054709439026722357212073886533625516450311186394746088070742723115804140863847298141779557644750030323036640280533018050029101488536025157625283049971944714099488689517240228666752661780950882953032326164874075515720464616933921414264073203540123822663559543754208160676615226632332546486009930556083669826134425539458636275915119364314531502461244804716376672398511245512301686234144723111143681886202568572543373026373140674059076247112866183839981952403227297959785713587180213785452007518412722543829273017527842132536082987344349057740074592525895919116652221037498021214139062304980793842961604413829570810281893478022788284674052056494780743465733575963808898880515675951196976311592403451412245595927577589248222656339660812108818733450145139816258278468229345829500960466847776256562938026976993317256941672372516479813192747335708075777540939214318196312056292441710778480256470258110252047105308298814831497698003742931117364843694295384243370159226819665399904012775917661484679726150714547054953350585796234434109689665903015371641606816861456054732866923297125356654118334083791485442891908321302769019449490527939044337755558786103905134685643269789550721570493779571877006880663499849179891791689958174390155746355516548268750919089658453330119830987544797067563566804383960872807391447445638799921146324270884041487905934287958111025114381345550455891846287276818177944945847627491575548566744419919273853102018687664857662139523890425511510071259931043953477526860718660966903541956564344976641358487301760257631814659529010202589486557564484492525186868152209694706403667141031470517561275528044327471371299797443729049337792744184262601797485171689733986285821214231938349223169166734191590583265232901617144128917474193815345825294264441379612107706965669841109542962700989271233016951390592211881915641149889435089174967747439285240934405463447824416856796454272765782309793786183656873814219984635703835341788861936663560115423498891361901504464243118136398490702691508149901822522953530591321146559338732967894112316939774516876857839185855731544001302630973341789701268865793469336897292264482400249058668562101569834589983562781049912504624362497938665826987628372588663823589399442733037476548369178059510670820263096284084276778260845113962908858125669064481377830551769749600997622057499187083710227928191447043160655007809752793715920308772986140958026695139358645349654079878566300639418145546734631368928674350889339409403752174024321627216121278635164621258286455645011093702808988000772566236260610361182551712741269418457570542793207890032022052845019246237397544202390897918293983438594613624772239824231592401406184904824381626390252400456892677904208673467138620415984840166697047612672132285341952560566240887947758288331726260262744383237619595911397157567871881189741665520683025012692041921018521337728555813873636649584113713225672503771159753153235548888976844010316795273472618320878780644470628356110831467862115354630018649550271284013531445627248858285104585895511182782520987241937509396965881851980044987881209622467934518374830887589230742299245019773775787492362744507341668147413377687515797395668207231826086048473940562111325666068468119797453599221294341122534637595756549557701606519606747328179485796673184772151548445514179466498558939734136667970275050552692853982445599657387013913461441884610251780838220581865979331278320335754667022759746036755384521216163124318065819054488538599646570033704328117014648129689725460931121968554494883612052723562306016706905632359410632025982536636633966064372788589958557181061071967522622194201392133381854374601713610334321562271172772967361237883007213882423228906961720134668634017164383011395790506143451553560514261075103126811422055088822044916541434544051091397270767134321742986241915709717738737105748110490021303546074433475139953562580244545832318573790344475137890111487328544344971880300804640658165271150704541956714509795673142397284115094665052190384594057191914133644642928648147448911838990056064567165953317647952773495462796484951233529268351003542401986696535476019550154099640792628766852586044809750354532762782756481838368099987577255328165216948470768006768535778315832578480993971525347402891998641025650654648172837643942269377037369650847531535687416538999278169413032409441178132056371144918536466873078925300968949219900259265653077893751139583224167508801833352485488500051802096795894202273435309475792275056219789113298099245730440233141391125989598976418150243280780165265155109822838262468353979273251725445459679601653980370347272546324742928684451704874100386261165854546151912039363745194904000382067422323464319980531431416881243072946765455725884308238531218203456637407658295919715277646247714687707073798684932100320716283188716435126925347337833976064871328194298126327926927725031208382370303710958670617858210134877798906804978875023903928877794444836936704093497660040883590248502703773104018574882702589163084127350140573236205754574180825951249533067822860595832698039660415548575575774615083244011477395113428562143065083852622715901025727980386508706566574905573191828845562394073274005336093243743332290914567432090209642792901330554821276471527866731660704886223731871553188110470194741698361366530220119312983129951700918074062094629489177239023737597561331847771546334403150417301785024297056852055517609182868113304854914556087503802400116677216935845620463907574955571763447260238103581041584161314572238001944654932417116018530990515913124301556359506757423372670821047603543101681810362044585644134999217243793100791401122045126412317393539416009204162853789755208327569748322279358365454028576999514425590640654705145091072549502252116100336569863759318718065994199525296797728025309184546274873524458967974797428065871092866048524901945086910787522573596635261069648803118051672151965876151759799517752610287125382494528943648564553550808478224353914638171176801932323556315063065084951604448862636629003087292070157708401846648625194112424892822869015744822548973694029313829634304398713058475215609794963837225227581388165313632845354062669567205538834817488623256377057799281058392132251039078874330083064727184345963538838821553127306145977068047602510147384929270519671643043875720455312133605544664214820902381805906806849734105573161226539759107544629479999488851213488698001108742313358911745959696851819255241868900194583176735825843654047447479674663429397175265502513389812346214375825190313599393565413999764309430985113020506333867783121342426648666083366772772935241194023174584453415975082126729352151559944750113658176645849820138830421381460005012920465444624125238542094009281613302336532530149351084465115392543718532381559506035394661643034600313009691365619093402445500158318664730063057673647494501578875851341588289777480308631202962117173304950901727793171137940938770453171438363839470805142961006644686848661728670871165859118306629022405310651010128342060753739341736637249788725543924421065629131816428942719503443515218428358078695454408789092754558661052457580934433021506744364197912135707908878140159655118297176093062940237903243135841055982518428666004816461651328745653385814376101627744302874923871496450977580087894000644017170720738090218274737723656263656309164115786673670169706431897480770433364850196537729619146890294172218817550032294777540515437079543640030450708672928265513468519592271401669447804628772254321466749708950282102671702232336795314310625934885623971609328767773078502645372967693203493641044511066014987913296869018520585835741776706699159481216371727049316330937743297046194898458438740883230272869209011550582249060992216913578049087482481042971627486879874160602719911882533443723826683092833578309113694476186435138216023524330160326375138108118344996243866167911528492531366425452248224329311022593096454173944775373725223007893275502052843719828556553693779678717251213515697853931342355661606119480664296988879610738651076045501070212886040048204313296035594322928011440012892592223443645514105901309882968173131029140602765668776322314568918882089267861338785184321155801991729276227663501314037235144572912428076602151772648465109867704257684532830745231637911335250819047982506173529119134999675942184339778558487148351660092358260214488417668641395455297577525796059134573363618657996822758360887848442564649905611471245105434572734801000039393173637558883377369951495075845018012770777518613665422835989454700625267217902116552186343393246181632025189591622330591707971535646515587739617135352736830849079576613664540487975325980673535255760227480384936252015653600758963566880991697600112856910553182555271706218542444956860841772210878408401876920289147961019672722422662330322371994187413382959959494366605946683911224239448522053814391147182580672451044050694052963462191769947494446652046400447235998826225812445781469417639682173628461392064129550905696521643857755529943996382033815119349444835178094739501122623320275027384511862725318957519623012009045283135452607207031205151835602100563838134403167482361601238893600025664408031045750622369975738929121086161434237256505524561746634818570837000930095666315040909589506961373615490484484306157150819263663525608809151414742822008715989446127330374187241055787210569262261022108975467373968277803329912928983667985765719247070361130205137144658115860033183732116714860257981021622124588116240347294727476169350615931651091017412649076432489331358610396149874672244098425377007081335061438602012039233484642210353755477487120155135311292167295684769675547496640537352531027660828023596551246097591183368809011196911814605982736288218138238637283128740990825584148299503497177931633934592012405150323695133943306182747332964443045125874286968684044579202585532653680501715544794816567337389528071342821594165700738287511033355989259745508542632687255364068329412338749273428454909372246934196980174580471815462137027154612376341414912623357798875964550458754946590935080638168838249162292375368419683230944381015876139665651972167496882920464654335182315420598472636346356504412150899767694340945325619891968578074147550421864142687681128288086399278394080806741580049216218305460774371171650689588182765445509521234039876182027965501161258199190366096904947671217220836844777059155420968936274797084168428314533613336824530662251313847457191813081316209561627157038183548151420638418365288896001308145219481425263471482616761362210089320957285123662984398220402514272011219834891753430382005085903630816716989535307575699944105125193674290563496328075692658754755606450232698115161959374713883047556759298357931320608155042716115658839773864816424575467266720572807508135590363730307407228863335235811086260009147653974203685782943485150238226601873211416591875723216494730747024979660535323440727047162445734592546248736043779402787945009679759377027786365500668986983256379879710232045681176418000484266432821807487078114047292635401699091203546954870645854146957292473789879688825513079181535367558757516945485222085004528435479696250439892901085322302448480331071030287988624177068309658058518371634987413989372543334797263107488653453173258192753339670550358219202140274235457073734802299245017416142929345357133184119938906135006158292551267767732536877948891352432615834901268907577185940357376881740258484364684050988394300264149108517624967176583690162754406720251580040730360649521087532816032370552325169527313597077535631548796672347951189404270106680731204374797700300161075489115464747929928982422331735684847770582559680741370064824228519370677958943881981368530933392665602551295875869431959187364375082262691927508283410107575909338681205577989945513365205491682367455645158883774749334758249602273623500240698834122259744720639495109364521912618414584971317736026815510992041889479965081308888178597304040146791916597486215903092101370847719991943109612382214149282569634827415733428882618050500406578014912524432529990596650191172866323395588256639476635060542850478524105338571854987697477402591244730568966329064754450638513090469433079256043749799999480970041351031001043667844851275975740280412905113356726442739515926678689791006109295765493551371457950586629418287917593287968356990886382601640835090654981614969553683731678620289133459929998433864529868938571132234726816793672543087308725028803709828014215536118221493340285834313695740949780052220079526554159791612225769682374699975287097520777127489096373839554192678171178357503462693100185628157909269780729406212520100463526104926494864630274624376109303841784048471424676818427149074372008349936051134021146785763016801330064440278098134381191817924265116135955509757591618492224354340308465796461141505177824273597058056286789982095000760977401076111015008091643125681992577852424255605294583670763013810012635988083166666685972587851270368914344845465616392863751397705794579489537548396997275825249793274995571156536303320858262111018672277513689923700753405566447019442567517676023205177943917769680273481857692669563011404563105298680816197719757233353737911859592077369288177986586557849578761098077688352512960874540651520796417930424493090211588740618275638146707529841719891489376288194540417857629157723942840827195887461729144808425580703984099587323712102377629930916831577663481342699997145346745288940417906290241429768666187536217875999078574764242077974443195325555944093193515208657748707963660239953369938851906804860347528006641407154014557031310816846135699705084827664528528438835578718997633925692427682669235335758830023992203981303222178062276494822879285691468683051323779773306391267036111577289286783811521692621616077716921991394273293283113679126600431755519370935016527861887664789158660304215219985938821765813005745008138797383123353840861116314015247641816276784388892867036842276808541766272526203878556893506453296050383500561868853234591882246664442943918496933788135994440353928218351254107997719752854269829135237971101249664574187456276943812305706762321852716531606938573777692630077417465657052870530362092745105177312308266534933323349882821455747881944553663998840524223430504979020834868155610511348854209212581618660749265565219598196152481887819757148885528484389112986081570893691629212050311071914825481490275120884916449739955613802814059534607317920827377272776071583296090357751494278715330448969261164111661501606824695117469437750110163766316136802639660105126856964459523172720071312858435256365081377240997281602833107173365876349687179943904627679509014409310203394596768483692913334235315511762284856281558230908804390173856143598351375147930894645034239354607613900454490624891097388879352451513966110779809603049732052748225055105460706262568397442372556903736604648203837069044720013275639098065078523993332124252157106133380744099052733956123595046718527998601680594990297211986426837063582776953043023386161853623982609202172556557435577597065719371159728617028367745962196262867672869560444155601045185124053350366602108267571498555453768917583590467470512874417229219254501538868226049369386591135744984099055106000334645146402610237715390137307568843469305852445053587895977006470476184178546263077388086631944535977803550355858689664149762650766805409563937638940802812583662915605911964941841129981295147619119313200929149884766869246854261108543203578921563564876357625197137143562166694684155269837855375268860841465620697768968720079896530251602497168501835229040776197853084939835934512262972404717581547935255307940051143809235654449591632982047832152661730118557931858338301658427459735368614866535090456734680029425269489962254088114137534805925457872508887158361622625140104527567015841322462058195820964345818151421481830032918147487230039141406944318554117669740337531460920778865217183233311310095337586974596696286834173069977531621414221747578343573071036753540684322519805520555111360678896962633056475361293156396071435884489464888652705931258766972365185488292571790256289217804204993914161087808768745144831467084710525469505245025781532162624113870106346232401339575938054667367897628631691122886756185515439456052914576586689245742724190054007440642467019597104409977639907713267009884727174822902911866225888353195090430598898867095262188406640468879057783474382755271416492890316308460516111578384893303393595518824896405935465862486066058116240181005385144977981067809551260121288978694771126929732216460605487341597132499736908438540110640422966034212049354619615557675752319063389707554956174830659650439582327605967591891821865154400181032221327225120838252085502648847553249898902837762717884861897750238561020084205942998263233034017093670699721897285311265075612858051584759928310694022361515624056372352666887105673582170588737654912480592930213902791096191349401293696887348613552056332326383638270713323998723734795045850351824858577212577680693713587695709206000520473681005261496915458384584462242446933626260439073176328212578188782723225076790153499149605116775424484988392000555067430086973822195047838952234149331945693956396337067601594427746057403940467860879899028588564440154922876279531276300628488157856743286450934441120633416180290486863094623681136004455437403262384138483863369245884774737200168929466136225868358004208729597354406786540200833689835500507831894620262860685884994800859814914833175904491782476673692289352821353861771319229578011135757661745664169780577352239711461017905029704708399319209936343909955506290717022978265709701484893611782585354626275827486460725284902185397771645663088878425278784423706879042775658946890384741237215665469246087299596288747919158821470955410140922224755854908164025803012250655791628994095779691369054035611755476409867884248400737610524609298007924589394547115270869514514708269211886479872117014389106580229313965828891447738075532612298571595527295639213314903107884678946617198195375587546911798061297540881631116467075358317451723605976543256723777738841259347238811160940316928439658434481975634439987875662433501450746768035589853756325372619249568522943597523370103779711727049558409154570813508916721861825210894770691806768593522348353168989412115283612950489899092027822762800329411248570663736450384504716078711360770055143198264307950861528933438952705580000646094830271988657478315765710609769407667243127584748747565580731187175860226390573791301453939518304953256116202752037221144588208122039710633991082598658805380400112421700793096770601320469846185491723083359076290178422633715266668257996104511259172829093071646327848117018902133369087032018258607928513419328447895101780965728421631967328715978592169221987335028108943965425598051993395426028794662708441025837604364147806057291069065243587869405841887361454861467415045563108423139554143399067450597583316458320168588519849679954695070155741117213596857664550505642850568201575689770048764322794756837936286787234782559767044658893780438983255741682264765508206974149219298262198903141811099030370308634844704778692305977781892787521958760242191179928123430214588244915889515336184470491058639564383959556231518894639590461483151149666496177565647963909000030899059079232077523961313200114170857562607641796761222526509835131025649006933223271025109138248481794278680471164278068155942937009772097300076105676956317006652135247592094495553668738325085925903554447825465605749974459694805576553803167110556777190569457589821687306795509722085481478923107987409823194453833977381904187994806748191696933582563239629025972560122855483983581448104666991818449613332282443684813852456400788162555141793076941862213574407596191886619317119434312241305673294916910606417938878404109796703274212107280574113884058779940571120876805813613904721739684429103127427542443857012401677688854393066725022317573327961212235741766761262784432613162525079893932762460155044497169497357805249402122239974476660373055236950991872763687957039495745326620091542058986872498749149066531300648096652139128489309729184433590754650834413210085934989276335976854446317234115936469897582294455366763664442874666650609099797388339786212073956944923501784026485786896047266645945835693040872582616650609579587503693066755738169792108398861570107912662023302287190633306437302350350148106123522662279131285894585751823847544776354528846710320227061307962815589517540856342880613816075113465389617693634603960724173613271497067590682561568777496018966624486564257428267862681706165801744609916955273348740712743379228566922617861040553086197459630833316926434941167461950445627242810410504719130327584204543967570758090120901665753141585813342875714520722324205775044798675749201229033948460558055968483201300264661705939736522383585153565408573324933090615371157321245692521908226061540913429835171347172657823448133968810230458414749759711323603023165769401052095058993169060475060222576732828222550061246953922297156421146665473191754584062351894363360650488768910908062746909837365633106961575839763348959606645225437070927704879269703560664883133297351540048924032104120183662578337893703538911595684237798071195449955443239684768773734601892551124249190105155654445650748748853880316672735159147355123937468229635808977156556439118007427982672932330465244378078307566668817077028317636228065485302180601265682657154687786953387029067645259103164984228887896050938040238067240640163237562481573048548189023408624092489420723817791654214360948050168851827448199250696241723598524015461413857611351184629781516573709389521312394756193609759548990558782171300902094558175865826473700998383442068863678614514141948114177965810250795893892867500760054174483178539262700811427427395812858663865032609244085971714816598230748431401323178740231390165972522296203974220096236929096558831011423369714103048416720649437377771413179531400052919171106128176899957572957466007366175869583262913439314856163302539603976904302861560188762532338720729673480702779900078855323033080924446085482177229019146141810657716573818013017485621540136706963552507814328227518852392347822601844235735256379994671926513331166242578879716728715752902142272258927035378392042898622746678117714336730263254362596675066445015992160900855656844671029034932292488372807742849725523532226001673720584573595957844176183823709043893732494035272919137604399710381198030591801854357097154799973597573810836640550302111500740937127262301433663351263690291739246415810577499933828567142730634634234144785412750312372712048030295628759280651101534240062987958392973059576371841765113411349509115766582272009191428780736789963206140043142377808605217412678761357471032886058017665598969517605375562011947672310978574928573275366885923794244586452536190555368679762656415909223227423585752881588915176857880127560330689597240062583899409585701218625233947458769009093184728180929615632817449839241615235237617039774945373667208953308105699735120695104077325120125457601929417854577290127527778695336368811784921235149320251004347876143814050936431385514639219482124243290088091940423437518746003701045095584895497197113325932121816536810757741019847537518868413234716870973633615153261184048310781629927952009703179801226798374360736169714576132967892739503938767071367720227884571114666482780735757636663952935195343035272841060676442305710459053020172937490906508279391030255979638110925645971138698904028523447436006638017313658640123612341043840560902756808349947825780181110308496361148236497833839149060431896392991916686165494049782311516252891244956445766989597682744018315138864620769378987045348963073343374239398411449531387041482489553186502041656587409815981964638769633046594911077332394416649955519984997165980897836683307137057752447701637061985114730022063253906336655922010410190817450662507075017623910637106922697274434214325155074970362039607909209772831505881503044985141410518190965257703029692716463668376529150293763037962838552046391967449546880160989364046701139732837167278402698537201377484209655174072237639536653498004166965201993651144342556463752349420926247358292993161900625765301728003941915891505011304904442767008767422989584181102092561507020733131693247650788839849522644518965531577980571033455764872443122842085873578725421823181408912183097066553686046899492386158725755929007894637530063355356323177889870797555064337364368401267769958696952715863387048294237693319247143407098078540907282899100121164540685002369603102787867400194226928928582151988130868588965893656862195071771676607634206295536937412088514583663303422445227112128943063790715557641692724394494194046096605976841053101867749906885561440690141380927028653013143538239843146323414783511184623303114508465845965098913245282156344165513275544348459163238884045452803904329782489349776520579453408838372693199633149040313565026199287811734095919266764487407744625224197647302373166936023780772622017681108019840173471785537275731634757674897362532440757319538046011060569045214777369853970846854536034718812148869342226311831449343510543833188910521499423110609864502191834840672724815692216817729115770469301654608046095693804829663212910000173391992750979367187262966193005896847021012665927707786061844957483917329021939300894191392642703343995994507960215680750590081071032980203315303475195765274169566245942384029059229011209724656849260252097219210538196202191354679172977882941222337438294331425512687660380677726328392578662728914721225962572197115538498759710709079528470371992093543458756852210911878338637435770938341553627779006612234410366545647256970969032205523934050861294011159010939232006011805735076138226055674892269531751311975949597485197363762923009161241200037417555420769883713478147569372032972413704354233168004089147807774550154020558780520817700712500474409148253255487622070370856698654507183810227994575889313031699542639064484010019436709318725153056224703961005693754975085447801194710033730446984866002277464466076611397201986442631915394105903352629478687435849622732820487176346196953765700199228650673484921427598652663556159999099831377038784881883877507279573726639446380116768266550694113023407154568676670452834265764382492538004393370594225026862675967080266424979284308995283485276609274305698461146077873657914327992328390933720163804062242565684496192327528718455526638236133174403880075041052388764338666117731622333471569304027691839436313360517316045108471460978710938465884885965305026911109259228056445647379218122218582762828278332723921398697932120532695690474080741989724004080724549923039103402379718727193669815278891524049686687958702331665993814190026746684849158587150871503773453253610359105322870441437771822718999419576738753298098088863275803857821870878685554919935110810309645424714929031383841494551170561035134083363995019875831471758519130622781769572431813124472803942137314857048979093634549009305926192772702209684899073228064160127172307825263216824136338932426389677472928431519808931483101862640616305256295265942940361506123494926057280122660916695067065776216638104858852242323596728101424587129584560663233290757215940163124075894020996706966112419700656686701710899707347439240943124021417126470549723963718339887663287885515374538892715624317690424936641523387941305541399902313552997138920028934893713802995183004026216899754164903974827504267906820939447721013527699915449727898745444296726379714812134666380712757711900800121732721102525674590805202369037787406199550818155968957730163566748752605218049755265106214775176204051019495487941398362447778465862597060405661075609932349494440984240077962922474438676928393278038444799962791051642349223350744915202647230825160567340162982431515046341340029650808048224616364919241583025644436687419052009464881275446102131156579186197325301030492587929930359916881824166404226568694965554964188354751716403828897251251568689804092543121381442597725575619619715902421235944049312620098943148634284671603913728906001289720771255269017322680859765406765097095920817792370937835355515223476816508041252801444677137773979321955199850834881435637364817832850545684254638648856709384244908955734385686837035758346826953800889345329455136144605034240369959679198629738737190870540414198725374349861583886090385910034626629103633496436025026096704891882355402949851139506809707190023291779427559896629461288498348488945264465280495079400893305377544688553440696719450103713656625412941514298706976590695012650898957743463798661272460497390489741835742943492271684403228577811670014794342101668138797904082552126197812922667698593026732911165779809791675923828195853872307465620781421308467018652547969238742336143437100505889511941686244885845150504737570618962092128158548281368930560209502089940532416353715937163411305366350647031636889782661271045959148097193498738983652562809238853773970537429070841130255016954070163812439511674242765712891241334860293000112300480705440649159478199135433273636443492399693640842707842452444507328522884617412570133797383908312214753413426976398129121595656904146408745502590543188737051015792701166527271254847316487020274184641955762413838606035235549582753764251629638515420616785266687904749434886781124791009826109407350415295021475297051692313693451102306174549812882449496040679337868538204408301242185357013251732107702442685483365560172371547457840542339099253046631088119172635722580902410505323624084142300929006338525032231615487680551074189410326981061058247200036701740099934666230787074559991593924098510181552940918725746354337379668972093737907759939383127891135273450852976942063940518095964014782412217484219347323239646030540604211430350033700401221187565147457393516524359481122278837217381580729534535153535707185141032823826407862637434239093016228946613420148376462945508780407487068206207241410383933220980010366071978385317041237057908593163164543298537123983090418633832535423414979632939182025206585452628863373718387656682196376021282212698866055823439972618519342969221629173640042089505730608623814363441230726996141177033371659659516538535731568171363346985616221266598990644372686301430035669706706697061160374956981095696422890572546816436697748626330215246586461554078384647909208589840532581440147298069990952529320956742030882192663515917266781748032812007347267523865261765206070148821571459320919311171304570700090260452031500173501204318908449744111922287460059510189941696150758467803286138955490648545167433679777458356431423500725610081592525211256405297748397052374547774042003819201559386035073336689833513192460300276645968084402049336631903545941158547853966188630007569019082298494868162350176009042358276093117176598543288350469703458856445603437927874145083194970752417592500610329993374276672535863800831111987276519959226465278471988713809014284896952990229019815804208396655503947463788107838931017652875070226435757684004420411357260178727237551997075950786313449020705065111390177550168458041119086883294409821951654083807524092467641371659989951727004309487769776614507011143736026136535024236606376526507302768880379786449876242447462441029935121783769972163499070474854621392328012753670603716612443077825091862769155618346764183308500396563833255729308760177033836702309941301697261962874254660401838437277247234807230978866165267206417363913983379177219069386836650732906267111457055685710901214140002884419999042030665508582512691832935623831120402398806957509101676885963970154358754306497086469755591649605984898904018465817393213116988346862948314861357303721417602365912298550975796287068328504843932051880656329355555520908627543366514611095775090699463552579995760422597736141185630443866557398015733288973918002878347723323831531748347469102904075788287314487461530985167551800901411561879987892804463655244191735394797975366335000031827694955528706744339247928239320782639737527144648665118062394520235147389771081946911937456885962122189644057223999501492509102249874614118520995852827487756042841321017915823413594945192498719999859866627346270205173861414384646447742654713216565033047076174811811452523372237151709059650862737268547160746107538907886170617571911436130617241617198396622264016716989814311001676410824687492968897688262834440965985256109810773174273663132857094343707934265767953359574292061424456496055268117419175589009550627734020869438390021082788761214648352275996836203249079040505574429408389110549910720737396966234846886885364571311937381402423245513608184364670679386563025740893844860443146820611638428352608976936340421449914153858789160181885839104812772047593351045898580907539908769896589994954376148783792215348408547636713392902799436012532650612452042860311712868893201396395828035116772731035219422207974854418850811148013447359658384185609025371050382429962232243994393412639195752287114957480725097887524921787278685958537591273574313587051919488118676622969336021446402956967318504038294751463125617528562018730165613057238904957592953322681363434175915410035633589414358506485779941416829591650777183167911813929595203140048110184151941374755532828133380714179369440688147721529952402747634411544497281079216525300252586916511409594792541757568547832205121052141390263727078235658122352862101631976993035385339264100110030648977260542002175525580035277521645463694771374075725720170457868094219846602717636773567556940886605459350811711098168490606549997426944062526539203364171696538775903439018897332817447637181347842838456541975062727064138408856886813055106574759211615203880237765553117251548880784752648051053428185634600535050322798279557839665112629763534381559631864985911629244457492187556055285659872447764898668764609165622326497068529046723771843909927141209745656816740513535740380768366462611530626154062890994892863839323230299615629454619905225447714824263332058949724247835963033186650870501083411333818381376594319180933993823743351160558880641997001255813095772313310094245440798744465832988700913650900226736030376802188285409574515261667092247356909213141091213396843880874294495733199906384049610818804257130236208471649610977211901466118019469341020622461057793993448136587191225528250996505210467718771969008694241893789757678976267685294398342184066662569011518978936096029554011946327065008148242319359748938441042905820125507151861399895469914203132555072886909871402674460806890138291849922590249284411703104962926738991883079429849165868512115317424955838787507920887526405150815928423175705041429025957347386690868130068819077760975508969963652976076070273227645141275948469566738017181973179689848910371646228946746465621023334726219370537976591420488351733737177109585062289771692095332226902866777444123958587249656022129632080114725674716173802920839143891979002914059037290173747073280884798924339075290396800385342410836926264451015427774673703887989208308147229664682729530602797847715449836782356426575686791631055766406212225603641698536882289828624262705607961020084918937504117349367333832456443677929834471318255608777410820045960804579638391790988433609494978793364560401303859511007746614141709188629473316071499703579507855985208380943748742697312633406604293425717197222841963006999212383113915842674266686250162796462395327396528233950948889493886518284501198525967615593187245794300001692903649945439491581746235584285900634822907880421979816232094184926183765666016155738404293774675327043752967574445147275662078346532103111075047774135034683826629103492612045916069570898825991531215301968133418757186258895201084196951922491489900404802961338106096854622488187863570540892337721570721719285242327016982584757881744841077716814952073419516762629746406391495081585233646320341889603746941693613514543718058712277645719503108365826949811575809562818802300581352881822381551621375281679427341857673653107052703976934307094602006731190697401302512171604704119439248954447061922490912460158268101343558186811487063149652685476327655396551524269955368194941893745391013291670382313170683435436673031308044652441637978059265163573146172147523143219300390558926223738940960513866898312541954076906710697612781785917837903879630030970906284592324753167419628026651775902559393932587950643836583626063816180538728775530758798405994885415129967948603136501964237857375183817197663529583909056134036527156371254527934307757462746237046129675849497328615382434298846926362077710076196352911697455683076147892902096252446409356219872723401528803581575274356722510328692353765902366798376220747512200822062566369687234759381827085021611764937223967980364833999313112373522494476168223722543493376009222833266039861863711398632757204703223067632860261973321541500539799479991497755820520886859141473460672917991406339515375103146263352328163916497122788448338720930176085936213174948235286308736243729932342350668891796587716950921041737525536132616470273590943162398782223598341209795261263479224867191788505248834480790601877317079898121621097605330861795279765194156609158960678656816605330406284166846699355011758756096606599252294206714170164990911941650277612918682180282659979077315235809989244239622643482574720567982025483221952962429175564892828759267278239766447076173520816648878676083157403634883703853250905624882093461369511451678194484645482709315856731276920089165600992637951861882431709549826557662429860655784584210421195697146667281655146383989359416819365872300759683754638947687396874399754191776103145339806895662403875302622838960233498086816032675498397810276086905807923315125864352202458989644346177171779334789199123504862825807650496853740328992153315195168705110457109754003233786467198692870517941859720696319481271539873006546607726834950420303481477531367150242149395247929523498763787295156890378812947976938553990886097345377242719451852788443818189197217436593529376105549930821379344208580006240600213281444609501144227250975718898943993259013571028508126665490678043335919435883318165252833652698147220551028130937910231377907880842312604036962468685630878936440228419181240219732548703294506694646461582619278093940795655465752206075733399752040359066594847651319706569330577578401598635475164780735244105664651172577639310334399785110213768864940099677938754677904675764835630331484766309005748790111114572845672352070391199592077421045868623089390436283158989891123009232133936025817781991935947906239874395509753471964049744882283002915087829959911192824129804045454824451217299108845255513261258650372903947917139547310018961986117090129718215858667018730373567282826412822100796233599834020013731437748274045698735945182940153714714841630899306971425725040404608524929322557491311741536716957647790813448161321915028572685207941379574478427262987164859935177645282224063816940169871020517517539216309969619082161529666815491808100461277758050364621521292048174762246051516089517723517602938036284996979541634161062953931156801963531478732158842080514965253853492465238389112486848547926901908034764785295868108753123291769396565498140919362872728273634868323864805656107313166828484684382504486396380666385070625793752225476697537293751527540333327369400243069505050334083695259209323490209501005223261973572173985106259193168210856892297855691240580462298184617452967874622357374313183491676512310343588631981719116268124021744771045716949613843566052217756403828309599410315505363338485702795721458879027881605128032598023518166812293040371298100974774529715819896428066980684778940635032257518332999873477051616013457680396480262082815072602092494879430447551972412113778908762912455209367232696406069956189891152493631313894984825050023691642918112763589543348978560496763270038113476335037370017264383618470434804147348054072339909406851590316844201775245805261916288070616490775742233467318085561417793890264692944655972987263752267605033472061213694246056364815077487527421490034892004259084481912680344603856033843790751630063528759069174916532937192855098860280667085924192022007089616205371564914202769829303980578163917524280435891391533723166085489966378636390882769487709737008147599826583562153761041690781044450506238626566621471748464705087890306826722112561528203905150742259526333864464853883993043850160467464536397356520978735518295840672715091438847686695120643983465416391590888052650429779018226514087273815259061414783122821787987658228867704203619659230299670015268226978423238304757876514243540835040418631292155914265556364223086100447266377691321276952275864154497412399191454340915488245494660366897396934965564309163985180308377783857299427713216466316627731609822337386974842024741740192185389749412335702329288779518322476051879290281391989180966420276469897205131985385719982384861907119787029920494963812397587225718126701738827957994210450362864013903676403965785830660270967527920874639734205672667815551046251604634542263923030316254607618010185803587448625840650974432123904561634550031439420619545032054378876158286444471210774915156381932409730398223375962961095261387253569020510726694530329802681057012073721142201371712785699938037350936447398642920685469718233942915071872162712866225533645485756673841832220224164501885828721204967028849719794563388064315312261532310178858395547067173514264309220516497655639987453033350504868546939727655657191146950591480488629058696494220998367532366327413453645894142119216899473786923416166488551815930763079146400440976491058835469468910089956978675006577458443219934398287674748232895893402983176337900489443398263523779640783804007771769118099690662352756004444288297376714270388121334531177555576707942642785429836372584024584770482845243620575366576446707926630293032552576165126646897445590114132920921884617769940514023368871673869759285145858161786464970644562607693912473575672414187008937348223423176637411335708426686712496487102263320192713438244910013402739132453221324558078855070656588399479302381707689114050014949552401093552097790226140531408445830652468358179213702712314936895982294861006328545311801513486110911466457974452725672854894635317800335192915741478066557399188182930106808416586650903490192085428115213842242097749800234117339547413070689489657084483869367832581006855442408778985381575335611492257370930024890938992049209581613702727547914998271148748938782728827290789531587522065415734079413169464517276699400746649907380049007302475605796363930212602245185618925726668277133834767789815907364166948182602405108115065438338435822090304595645021989815663031725164488233574706736357957654217147035899549938887429119624198886987555276402629624840272294025047253389387594069647841583587843492038227205023993778110036685141804764357817753944605585902679703788088079876280418917310254651168468533021953296387812481818642028396564388407817510704476713459099122531724513659888920318099054267435898597063274455610867911251139554336054448759538092915919359800439715742660468185046196602184057751914714394683302798237387996462801021182265873825492807414721903194057259919279758656159733731082620643796242728425376689905111259285631256365175570739070154309956241992408773507730122763628967709859977869959286533704264203369504080313274783806118166887920194605505460399263801085277391552409898600499425710828792000086198616964611981714034789508834700304821547449950404978107457307001386519075312383257263412489692263890231843553507346510417869922595669784957565734237341543243363991532907491415599587056552548989952469038284066746037695453733530980209308730234838907719049535719106133153279572779199496637029374093575436011452091377659786669566221646383277161838832797900204060536529417738889480169380851213908375753477743817777885800852491041014345770389653490166952090317233084772145979562521528136937735976794280540379843599889517896838819901983751238271345895337683650491805398317356024776628523666658231620509641231731072124555793499435841507604508189666347909885636649637212107005972191802230308674580636836257382629263069041399933042007360945819278133075487227559450263313953801738874017397935345214608172599971072997892333956374318324337571685907474432130051646806350699304810590516676235229861539018698122219652378933255558637297498540209510012173584454792037117418806410908254443455713256361712755207209269484628678621372370388006740683360180965919767804567217358868679491183366971502609255200219413240541896228632323301769696717445791790844344115728708730529839136463180447788286412314596975003922953853820095184517604241545992643091995667370784418511041789102541013336985384419184864108568022529436915125311930359450174806451615335691647175550617907346217885389263970644737486425479337401672958055903951875364181484347086611787057293912715279966197446125750636032100110295492528857716289608145269383879360044595398067737095552496252599445683562878167230150088413670222120912010447472582864996096698109176424725526838542814075882371536581051339092971053800183315146141641000067358784627054999332866402541331669465397124486159471535895071575322084310879834045262188907692982835478474654578302138731301607433588974463488499477579526777831261053170365247614685777948466974414479549782431623893732254662570978728285812276878767505985686070824075931409644666076599078282595035665120530129724781571318872749907587396492494762601172348500336495073576934659201104460378008779481890639859252849829368458636054870340130250834840781321679658714418401136337587090165811606187572722420070892444196962326829084490477178429366185906000996149852391977487973437378870885206394470374255843959930188001526150649128307374903249727832455074230315083419536023181283766000189761635092836961731409746237291410573103959452787116727948904846547536184410816950092361600399818179092730683374687671104255740458463538504372867124356708824105508295940841774693706875692113542904788461479689219443476837812890061958001504020076743416355783674793804327724095668438993499455883227673702779067652177616331847490377110500158972020347188211473268373640713981313998418013246003736622467214868911813466667377157464019394796196159593133438031072202409953315668735252033827178391223043145969838403250913435714171890838301330463090604077557775244665078070985105031209061771417247993256495796020979884721992900427671987834176596360941408971000593236729549686859422137026591340098927461790135773270541358862463198434586150614611923075245359283269361852479660970821385296833205666314777035309926860734808206613078802636340680301338607735050098220453908235629061139352303056907097410959879679980397427505689530580016014280539205055147858565130104291875058287367866822156422189203358541065225811674279074165266734143404880327396062054795595969382983744566950362602607528535058659151537546628411963429390505360288762308205656959607773746184299784230308264374653796440745271855686712007581093407024258623979203091855219531172697203926831117687967734282429452464764442464080196952576897804328605528939586027003458191578192103398844869206598368797768822697936282789413528207190904367236961007861074574216342154435791740038389776779911939672600287230895308427985876926138305309185287078902901433098255372396864482315643885341307852626113225495777595292619253243356955142811166304918492557521366109501126199877365871228043151697499583429404475865013042014839243725450083493203540065139996252227821521257046893706733012754972479896448355746466401133194795578475930108388167193382594281034524889098341906635156471628990864042897283691668426550725139082203170084915907519151556236989769240410415632638371514071264690751971771677915989627614397286364341781597119411178851135567656181815774143036973033994940069701756567572794392110815649911550640728647386402504744989960648880994853931792091940168247183982180203676512124005673811988828511290780753998484796587656750162177878652837744200032562412533705805096322023755187296968478598591000561838498574169153193745985731035528269582556200319588303374589149997713847768409095125834412108852956112771938445490901393111385365524929003274909207915078319094566043455212140144672229645233670854214329061516116709004738465988025242983847386364531148129340989385842714721885748434666810781919607781780728073442434739753886122951878435155114843936290278443919035130441107024860515473327067500009547697147160214549701015534630171331074637143914857468162098082751314343843815921910121397650848160034666544574411589200189308522354364134482707969860227716666818707501096438133492212198887064911168383260771731729990171358382142497061938598249931700887482951541990049067626828015470352792102648412742527533388970066061760742948009672596893662047848241663000956319460200623370786699952350629083646781094807472945420014489465421162098806049728280125328569710234125198054389246201336644813736967887657503884513191862598377806500435522312745418686459180466809513327866675649000843733522275062785297516372615319350435857684609014607809813051602488042837939212755112615904952848151132388941255269969850779044719146188864806801642132518508779033779525077482196807478422988023520592109873822368459443734480279565277407433498053742345633166863455535151383608369109538481322732464438824083108524681396568785959716607942408188611821566379826318444504215342014984383743401243622085481726153460476515125092211240551899974687315533475102378197970016620190754282094423734602352281215583286775304868945186886517095802107781062836035435342121035881120167377202118317351290499811882874529471910316142994355925954777697425731393693961689942506240566423446694260655202319862286807530065425670551946145680256964419006615673835349664309761859170152812657997865613428122133910437929403007815706278715351780821761698258670785397224295156931950524520831201195367852107772894369685084318849263272548110101223863786397911378233919507500485191758496983098112885614706774619666248392019447973264404719527033184251317044224773429918523451790780702188200518391432609208817862314645929609408615877953828603013972700842180861024262827001765825265427505231835711561992688969538466121773669219893032875245803000736745173422817099629537736112831755656540545291501226069683812638672575830570072045826875217772488151030557039894773771058161375017143466885013200104412122337282964033745653503128957448524054586514081946319306801266627546965758342541378002790144845703741465509924327953774486449345913327057555784738131954096600344325256254235526144182862034800239224940967298121035885702744235506563558157768423047053528451866187632859554786083778119209362860720343148538427014184849261897034432256326936952279211348305376861333165412905917814666886607453966801623198756977076388166046980688381938077853912243073492886592260354456487815753631756114534228263584385565326484739257726186621253714927363197361556717434070245385124037152401253230183975080410006281064583864828913062917566610951401094803583107867498687381810391909791334022232484970567632959048454635108244497787959607987080419860161303011967446929288309969050615643622970916729383687486389615999268588137278194746181104013376182226779493300485442992122609248471483598853892163975151112999779186087956111753724408571246924699187602904942674834860643376290033109047816729422376192130445493286521618485505411048940192083309548802303856109698895019156391011573901968298013961658978314383119781025006088282748727987554910435246471256132749561964641978881506627198722766194170345736940784852032042523624404419288137920827892911958273116193470388503469296626837504995021789708599083964053818754835573496032096809961065683642568339123760775834452122232394346202627491575677685858466481741699837418067537569149785581597370044766763714849751189280172146299969290347382027063018208177170517942322640972718162486714730502954602280380710898562452208699847467803008308552205846937950781019934433075871143392032551614192661837305882093296362019940517267813579712065952023613688939493592572922705864712629256600605678821886625680558594560353912320821278738679100311976397534064350911434729662134543296744128129141145666406822825469729829003767788444309374972895280962814894761944702869440401497097969732702780831799900986201926489243746717319922320388184027891976787135070117325326099313114051665274356184080312042376056078565286626643656445084843466911751550068183499202354449961457288105512220033790498273492812348969510233163842000621517826559030864401460565543116091907849825933951542104024456256289040469936479247180088435619060843255688461845412421786562792225606372658671042744684428875519444229798665838430258933921396111209309750725010641045105839650035596206395193158232784911706568936251983472020082197767436191929457281242433076100617060589008193001718705136001374820372645734477962570723063065023197272340846858472703026538967619023891553184358399295467932094541249139619612864297594725262880011840991276405321193091453033403681223348074470707996068680854965765854592344386385474997389878341917965870889288967158202945025470647364043103594306627269766607855183286455806864254943923934628246095538469600043432312808954928220622147180669776772902214073469011621605635970912919839075813431612883800890474226489244018198574854806139882871964955806383727552219723714866687597309902221432955592038557914319314527295475240387584731270843386514740344421858309744504774382964225171239271635463725894160817081382771297648585455757761246256724166386129901143960116120013022690787031608559992533736999287087235433467204262263236612899025970365648734116236073793541271576297528429368517990331906478774565491164284526917966408311172352951392539967474231498433687699545206663045584348457118607724891912652143383426817298765885296182521749229577839805672520080923599228060558357512825587072633845658359265894589635061044588188098456537772012926217412211417492306067138885693321011707460701140944019130993119405293217120386287529591381804437343907191782343634490032239954894191560712654647938853275595553785677145794702476018371983302477056842071267007899004589651453533717501313013891794265853891484507285242915084830487678771332931772216767868123369922398846975431726060474556014054053683843985032022067363963049069818140371629182892746029784526555359752599989838644241672658011035327550572263840884555704642864097114040259899043428165986150927870402332282427767184163935770557604167004023521238086322923405121543264586357696594750609359834347701481670537181526623418227874493141866106154522497737193622845301489500399302632401521793754628520704404593340062756864760057971267632806169925202207294517055094336925599889112651995355407454077687477073707243256057077920251664999425873544192710754518049839991166878132590629542032069541732009583257539618737515920240219304362319294493428083854931908585834429794388365481700069046803035092545257532143733380763773778992266146841019218645128678410433473851539334905108662034679010304724537828829177049396023387995356962729800667822813024718482587662297669944722060034488278602630969728869961912487044779715390570530790558259102305077370096697321320357232955007382435945094530458608849064963405663638465540395727778683874990740378591927863785137613489349708054247781825774300159445052375903934420013971044969314334518360625460930597606712141294165720585486465394603474779618140132508186947003595089601557749583506203612351475558344802539826488500085232071460801453059576385655616189395748184297342630301177851154215807751806368899858677349009345144586571201263359972199789615492439984726255347519994355353836114375498286982923798287655685710095460974917523359214904463037990551497551034603394038949453194826560844122205144138169182475348499148718019738927654483376239369741905831679728832490891050090738880806099971718128715133483621045950555201478708821576647502337657286446488287611758363509733998226901923043096397166996215193801765031585704250712563317292912607129661715646352434791363987530070573149243958581805434982686415560051533501907271793903074158147012643797250440609354839263066138573932580023922963841927925740965092395995832290446087455770702209805373263471895229918732319379322399239359180742040917594194205761946297806520864438256962723301475761636172308313003011380851790682709731522050765957121012109330521789899193001420729253037100476428218778362743146899801633205788426908102739857134968724148772534308173923902195058653678612644823931982682103424671986439595246398528352886095098532619954916628938703272274672198352135909416128634494298019353812702964705256153282100561917358868448666347302505705796079712666907342369699724583872848672385900257847378416511998424807759072494103726977160002135244548911226593500517016231123058583112670197391061811232787149990247056419217197081919623319517369584554066535858409502401059560333614766273144044546827390959899861436016859143471276567639623113336596710248951215056861560674270547176189130337288776614488688203395818889328303957364121995705724994043797178759396789124407046800704048736544927062495134524706910520920568595542704290815872653460260556564151434366934068306178510412731712115397000691641145838050454136279365726369304264482048975125079546973554505434249927486922895693999783713642495212069350851054031044953780052725033504707188898880770914821035389551996816118085149697679051670164697588372657408199214025771192271972022616085400168929756004967624112110908660822078296186031631463301768398332525643931271176805323501884814352968397441107576856796096165138016394502353956882930782117464263916120763842888446222635410885064785741782109801083228358533682610507984559560458960554488421665391393484177514855291130108167021547671596543704609641103342909845679908859832490610202424994772696240053344796976035905794490605406110528971969147171349669964388797108673855785729729171420981598116912321460125389810436787670072291455784506536264203950211983077985202796822155096633401466397646317130797827019513105641031865420773690428717348933492588648870184134656947435620111086957690371729020413324905733769193514340152083637647651617682802844494271284902093641364887487658889628557713637465091132848324504619119291702696702941681748138984415108503553713968867053420935036457363459012367664418888275115056274685228855210286455700648435435918099921639087652235210622859103879897168452676832349899143517554843852386717422110015402996395356169049959332927839376270913978803610407922685100006526506433915119598880235303762162854712631534636501931554246989053217801237128068453042261149850222300808664152365199244678981710347177202204424493444397028267129145087061979779349246153646643484686538981388877803469732635745195111400136129233308277756639979141975660981791453482163993366743940501364803173659816160675931889924360250278805652714431167983299743652997752687692166413338308892412357088191183083951407730697753800073227186968568622928937697574668217355488077337628333845857447751765963487071292086851664904560151594823832071518924049334520666880206858043717548185555698426551771833085407479358146803227946246091429072566968868476345902046288856536208055247501849266923860296775512479713606049233039676859405345897349181333808735107249388592033419743759365937879073838888909909136863652140523970207541330125587796888100845728721220840385339738041655534686431796039900620600566403402668723031454071423867739588595795128538914325844593479244622038833293741865751406647966998847674867666569444576757631202319150849464374569195318976730177637234887871579822436825938955445429634112111343946122445595443702630883065242528346289735119059993582770416740747458191786478928160569120080747442425706839943034363205555920285483457255738999018000463231073744190414659070012094514896849123093482920927109575685896716337532578897675786869583195132365653055705772024854350870802842826001799456979031132501834717655564643071148208307850082906401687566955978414321575386541186521254177240611075478431461663231702027625455854217353981514111651168908782075849215798960479440182343328419061141694310912068528106106594388461962425113109728546348480474181736111755019850335501400313881932530738859529350948151784787509822278947523118236714828672837767354276253141032698311691946295016468370726115088340082630824384437385304845332647485841380030133069897358575083733481531232195847010188845610300311260406193864879092566640975458468957807132662148142100515250036493071280648244255758053457464893837240593292795525305436139575204468400051357428296023371849911319735561196768758720994766323040609623029807300112424255809975494743653065329714019401904283152632753255449168098837535230992375283057395083556159999158888955933707072114489075173157761206036210231471041937766932508034870327325176305842434653634155362456215457649013498138787493058245108001645727092382762732548595029311467871143595733725081088835264972457359428274404460730683270932160201279087130538655651380720674258689821017844976655380599875881593080906853856800518087627736855669382756926959889867913727222419198509862844955167953728616902593441120426095017313906806029319285904907510335022002776009194324661915989641477296254944756241250310257478316865108321651100216033513117361255391325655539149696996631954529983287709426702726026811316970091907094014462276229479707488981659594744063009093282327376445069405513131709733686119603775307414996994288493567156695684826057201812092401051837981083866500927034023929968315808168963458735213478869462673343406808101518302480503830887962782818846502181707646135280716532806051096064223023318474084106563498903724664220487521589222290005928558951229586568968786022140073009846918133599894702565285646374293030301093175340526202399710369446453063778927510861555387727262368188527036520585838176487513142385698921531966367697995635161201944714409024857331325630999083399833576541354798524858847806071013034580545870408692872324913436547838441910418393999616696562108714434313532432857814530452935488204021152409977520836405483366664345654141713808211264900889969155124130582234537143771463050894183827993357185845074013957458714551496021353675874648077207102629900382131896169732630781009638743193495813069322621754329725183188141064676361213978945391554264754881067702131001135769788080385072373121926790835055344339406526002694106351584970650480223704423666840402620874973180894178369198632949267754453628791834666051814227647161083433012161648031206218528872532770486585914326679601725843009517895332875310206266457695820212982657496108985658417494621080640806038472235164910287290409435029282347695343406399057636906626096864971131340427719095871155272173333713179059805073759877011237832845691392239650106353813053728520854303215094572891081123633749993750016161135834722279890784915295880947939341827124341259541393841977300401916409531783730617006171881757634820268959296081019507656017402044580528545658494142714870723039710298229208366197766711616460211003667546399323251528397574707506341951164870490709970659271562667598238043485986511889947526199450794538139122266818365625634408018709668534845960857532895064152869026670623590763247898529859096038866572180975187592651564609305277196065687758530651831165328516279239724815986053216039664281792387105075173084670496947482267197844691873705369420996424675976398416134989029006068080184080843984238146871657058117377195700391803313275431105530823871553771067293273963797682664836638315390973709309582282993013885207263529224511554340960108862037848694496738473002014310866771725854815727129090529687878980325202463427799390432433487119814487093160017570951288595254884007777590644375083942832967939610666307385278744494807434224513576516748985868000110200709888779713543979790218335234449617936984427280518645910073903526238455659697537221945747942123233340669454209338156099083704698933609136588384174636424437862465886748071777322494448685965460228560970513894534487998238835196235089609816628436454077124375627534257641884384353948966260406584836090116461227772597209194076443345978940983873559833438269507610368508396471535690668075352248080370623817244055918994502992791718534483456860218940919347205484474692976446665882330881218157483412514738140747428347304667071516740014538877625966200033678664617577172617258443348236720512021652874437212321065173551695227192568341888450173331971652358009206449285531273358555251887276059126306270052542170168113887404492450795158581661845712617209249369064391236651868473521397881389020806597360890297289770478766824608733243231642582611178548394483805509522421984986938324316323358164025135251759331196066193253378023853787922801568678678818385450443868898263865651527797967291272305043300803305276333564270005273938521135335084199673456662492197506707564398573413803762800685269039960997018097274221834339302966388335872495934575103601593512282349617433023455950391357675893070644459675075649723648117324550536934049046888942834500777945125269724653434426853508276651440468508050244896040564401687700126151318029414619216421749804088902022493035651030994468526231949326353466800230994647355460098807200719940335266141647353338840319665514176820085878309738034742314316837485085500073003338490975968646391544288138507303857883172784110018387057106245660000538813856761660146385968859696393184789420515451444791796491278795170539730905393605579307167299853875274761348603225223441208423145753306863762680970761488109391370810752035725882657201378571749229339667017590654750209669067005293732967727294853332347748614780154818878945449999102174299143978318904054881000173736404624288761545336793694870024439725516781524599556938668546994887616266966430837916975737706314600430590701261134272557648934471734959521329639845623860870256092367107574586038303866954871962546124257583636049860668897501990035762694951848231389958548214521510488271567807902452746186792620871942220342125893105196600918142583964282629525052633914917865625349773002083997222446515104728827879459480421664265922212022572636741596876862972127255677171969021495078223489712227095970531586024596544875325280930840999599978903058504377876578212871912503319778155985690782336892916377025675231129506372852101239376131310117906070918663211056294471464287313801135493505478943018782754790673317709880156935489327090291662180831156429460249013366226626539401029760146181286930463711702198964148987540532213914071383382967455666206182769979269429831592059265753700633141405416927872937687973083132778528980010104405394076749296175958768320393260057601753695405593920917306571517769588637543642874036114680393114030020681744205017722319377442370664639169159477497052135676851734686501510694999627534766960847949399771138443055145956161707692463832888259936237106940331438352152189291041261576447802100227409327344845826588948765179272290216955367370532353220231781495488628472413687861866453497355106683948702299495348192782320611500732058350103612690577995468297918168895761726242619946895255859276308643542741078667777171005755038745996044778108992379663238891657895187405083652952869854670658615273910464187160162627899786379023771498446892862063955074838218391556501539153410515314546445753944030252612375749457392548578336134657539537085074733244325200050111663914772129369967791893818639315507455539706881846446048195587167227659138490382454105080387097708687689636174185097375386767155583717005542460919692203587295561665836656180022040687315291050376504551313862735925296405953924574122703070232707751740700801675574970391876936075173189644390725376975831928919897527388355484294772608135698649544158868914723557172534229727004068799223045381302800867350821369721494115576825124526646442673374084452782043246022817941600222477373903629253295261488494268786757079367921329288411684971661969609151346397688240515613324388611794978263572775855205925236136395095800716762030812075623258209485127482648514361837958606221516335738538903860038939388425185491860377630912074123917034019200912864816705122381484363479360520992942479860570484454162617329307118030226946630236037750919692858840558982380509835209439913820802963097326144404148283078507943759758657133190710576881028591476291564091083973840248702157384036215339635251221086366001166734881899663284640247451888729640159894422745979329659297922654832136638025318644747903862306933781427863407795549406725683511027031527548332218092317259022659812333385475408551716920056180162578325781237609290143901796005127480963411429536373005022106951765801080065616434829295182325583397454693233497713125696971080512856450829229018679917881832151797296365756620417387313022737976571313007945358965549038988008515757750627418452617671563514651394011741399286035540518827056160442137584789122103095172193434529949872821602194936118758286891122548285266891318003960333971141309996069278940783519641274778851145408560738734317910139265466572139752881463929850646044697891215579264566818384274580525187825688068355880216112412909002148446083819197073602789022304462276287623952029202246375969351795534150291772303542269454154638051937715783237841938351401018484149228634648080972670610471613900616657736152576714118257982532501770904933095814422038657673043340241963354732258925433493237635466777155937673930049359509648608874008017206763624673134923497908557973091340164892653868006776803228132609138721297885043667747090438967886574722853260479669203919154954091545133817713881437884356504782941600945519354015374152716696540634936819032966219221861234365808947023729226907911238720464018796284665326689233956847094196956727458211514117337604523391280320784340597887352968176044595607320548363429575560866123408242914627510213819988256628154068038271471962974791093489244716040097594682273030324137979564177077945227523810920767830454945685120132352564601569118669976572783314234220681548447181053162486204614797426924628801063969150267942074728801731809009851022833588630865243352786463876188154248342053055746817038845749666821845072719645112104085852061073817079829032452431618551075145556409301055614545120430395751873308552673470089117400144163691469781822170961734486246581638072698148292482496898320850287597733813837972952216563647678815128830387851546126910192519839574722737938876115333949273267712377630809842375639322301977048005000220296239854411742886959648563975107172979051335351149918809283472038385666913145595800478645341281183678933512116476944503634810808353699137798905764406390195471924287518698962501778844031856480112549259037582316715576940838687362213155070192830311560506091995140203837733205868663293118736198980126333958446315853405234509120380569598878396681044693793591247096438597581634089320635474887603446952781768309588350544824006224851412257986942463025795807758644343074820056070001369887589044503749154294620501776622729831223198918224128026265241761729450761594441327764681354586993792355825166108012104521333459490547275930857512254189127569802413093728086198466251166381834960190917270448027840347164490894013808878661582849299138688950440796781686674401280970724619583906796816221752679307116527212787359796849141461477523962617265562394550590514901617472450625381539945131274994439152227560717182215796935693474999845765266872034680115118125186681718499455602954142918934217127544108952010921497055873743371360713626859256211765211307935081447461286003697039021475338361360914487776393190635767092710293429030513672458297020814593546008590123744808873998490552164628253276963475452266988154311951661291730268997885900301717790697773107077925716364959362606379361155431375247532417708905822246752957325533744761175870085306179671078893651672866317161532709799682384242890924363041455198153201845799979466724822337748561296069930951648536245729992779650974725773071592231622177473333614149253429091771316460026706096630205458995131029903865053451634569315954529730811658012458910508541717625663771032309129704935861418856309897763085971011947122791634714740093734456015320546940222251573821985517876023954533713653077282419255337151437758838300034067742504296440343619164011529314960982993925369401213267557906482356575608916959349403529185702441891390833207123232152740127768654248458555859627456188656061305094113586967605020799676672865159030233484249425391682834733196984914605632600102192947454762982093942721639476566891864491015934388776582936784955762236487870713725409796553532169423268785797994040417375558845168012660117020396804069849192579342701883549109629873411882925274045110757701254608412809265982042206647611608555033529360337819131184993235410833659327115379770131801499814381762007229215206732793006873525713512690785203898515620287434383314963409322743917203943746067139513118886375477551573323907887642985458721737493722489857346971499384325836281741379574411790189967651628089909630521864580967769854935202530835990232566528316295018370312752234735917270660012622580370812299202464690116415558657723503680097109531185474022589220418600873593156751332407762998533790537197033649905672311021987087184724112085938829386309822067260566823278739632961809191362484724095981273009688745231744445591963805710703824726748471644430546072894142872346697458913161564196480884113422413701139684922669950268338484875180527027665376715933726017901032044443346204234469441808543887534603804481209387739972407371229197522176056676628413834262130121884005670383778798177872314259391744605535194377464031598108481995093837321784352692058623041087011330709727601345309183746121837830066136544943207009428100771161625951788170128430323679540001450941467846623923728240951179986613340198203454841323955693402447235648622277074603364341571627560730113060141244080395030459781353059946532037535747511391473075775317368550049278472147519798463962673189909613163761224727142988669903845447709560305345592630319626237312444392744979238367288819181804752717454649627358745524529630295651352148840929282532554610705889146146511518817558258344843976686196873361471792892067588415075111416551049739526087211099461979551578994386046357773175265862148402700012554583105123333671897471302289252225943944154666759461174231708847670381879268039992644770048013342126217814842191610786542031762633959306813774900674627902891456514521427138013860048320868542249701024423865432864587834863754910258978349641912883878904241374626545139890154709457626962446239524343847644704540631134971938904644076356319986139558170899410638810068730885386387153557628044790733180755296102609661078940019259049236356222707008129504630458483884846937294785022289136085072765899149732611191139273474418020907673288447044457534791626749574279623275395928381469885970841649813642506134818173548544994830345011860783504037046829638487948667822210506447439281761838848052494770791859410705030830409382892016020268559888139911591938255351369929009668848363251971281586755812647240471989893259766310951005386831575397667852692347370566973161536767762311731735815798997149214586891581721149657420880919228220193884784640747837460078380912697766290651944720914651999213257724073652966202005039109503115890507698562936407947663893475257323496554874698277574476719448169297408898032242105841803497929073863015082696161904301059506628607626958369840224282302509006794378214952879683531386611853000830996366367401812384203457337571523686178446815865635308591750879379257537277724381613177955604852027249905227621023931584392588488319444189670302954604843271612211681944844093162661467870690154500598315350757671242918785876220403635370300913413299235194379446137706707501574542530972353142713464182432081673703665933300703181309816518869058920743101949555603722995051807326510607441713255322999634830997779198448535542290489044731663389060875932251656013446765081384165491113894264448162641990006286082190126430267115179108837835494125610957813681632506061587765489595595238797713444584603723277897167883383166820621703691624110936192805867656493776662534317320649550723634665373356593736775597005970734789563024793702171691139268748813103653128943323921507639899495797800213081623151974054461160789835704625978751118535434548427877031574577112907865488682405450817534871697550828149252773393532666964126199399770347367196640979018306709894468260435921165526842098212149676849899300258378330977958007454314676945243042620443393163532286214147532517864609726977872576895863321554167702422060369357252795498327210407202123667292249271134350925830418267649812313083646082978559879295480695091525011684115789231713338303131782525302992043358253845472090602715789360853074877455015999569366470271759469030179486229563565210680990894866553330315218466767962910291353250235488185503023862536676325638190349243183715542402986865008314980546944074924941734721501118436289630036689248285495195085618440155756288020963155540124892547727404553872516829635838321142729066091830074812462825799414877534583031531113024623698830509539794852317101667226999243037376798594233429222187999456714860272003907910143033958795327493897573093326065954675148414354611554808012606360094365241834387095394590774333414262533430648645755167531456925662610870935549040681199713827203335358593591062402845964622621332604986408185778091364269313083867752659853848358080386142508043147067099858268752814006467698320188771221853369225925198357579324509911600631967129736101014465750458033505489388749330289500896982555698387993123521618834793759761565686432079926432985157461742791247157710437278403540154169123885056445669059980194252522503138176131139528634988443716779085485264401278272210697465729246654421964224619355732600503165535437028500353721068151718773540851218898767419663779685582867026372475167950801569791658624011749420768820721824827443854655144254428377440461711498488421335668388497687365876937793909342059013402248062540482209012916306826823110521552102754258590842913847937160457789519771251953332713713037511301775852618839854200959109353828003550827947248567865213975261693523109080712865099432824660822467222382184558229124428648820805582339200363616080657729464063367803110295159507673367909764387613889541549687497014824571564960612226926508702675596061140518366706907427629300389839910362740158841469981252239991929679625594911954206792611760827633584298581030461417794151350326848426008109831263998583772324195862174810675160014249928648387278333328622802725608372423817395934837109741883753593269045082750073416892640683098505726780549522472707224390051393757020904243983457602326998164823576805909977508827570320370731488467434636246487115584960742785399322318820966243501374539396367575463381398554910695686649527197299705235711466378820350814995386131146820731068551962996154513853646275223785738149532747276629083961229837273568310361071302105885329574313529742090492638226744776278711788286413733180987542258949607492976348667181049498781890756483873561978820089000619521787545658492279767608586730771818377042375471239628134128991740518716178002216392267813537299030310947135707936129666074498898159080740317548328473759106378833632051004431059517186167628815853798197796867404052115100357161918786155405227910168135945922402590694155906057324054706310693771230209099813950052950628302955118875705516263568405460814858047599730054693232684355097988127006670143508096095746634967476066953687156456177518601651073469312262802242955098571574980296715178799952495681208302712057444655772373500122365343152675780898656779335664265588353951331055908510330030934805299888805764535486890011934323466647909784721160836614389445799690739620268391426837775075830459522786419697299962788936161366308292340172967098239034920147429865738968238329722103153951882467193146706158643905045080404797780164597858106871344261466455730041287319920595326756177453163939661455695978352212431082231844633736445999502542163642474204158126529759941550180289781863953845322300533807853424465792449069938042312114986683897480387670975919718333258149627535333212652575957041179281820756159875379597729144695810123344177472267266298830573461179491985447999302319947277273984215169034922174081804337446234056871213768625104058785084276888972012742311846266122106769147719200780601888706690504629961410365103288874790110448742698427475315339345742836722803119348654721390884667992523465190931383917686656363163890130389784525630085562006319578624638501365477813810031323068691292333299688974921897715035109652810702940667952266856348545041783135110104357646534593536880165675866524595710946435540255494645242639811236701500472031071791298210683265536587311687696131357846839325844201678111174132115098666555463400135108514492574550804543020306242907907642038111735141282585447527412712629398051537491092618545430918512842773701629066145244021524676353413761253197742800858521677899741471442619511253956794567539510625675311098837948326142095896545980752630022333941619845480947185331033905437844378938886240338895294183225789450564246758032746517297984521970221450700490144372646838749696138043826431268870960222283162124387484852719415580096030290501690174860021926918681288699717714144857987952592984029005306354273288043789298880016770672004644084734903630498222259523520544491357862400314294630913119327881066171809291891408331305911945299760910506385807381115441569232780811986237978675937908576162778302563519029877956768957633169322920297019946913664545680423026981765948059837258633975111835053755839773343602486303887130449906219189996699454882291043638921816935352811855793619699193416563517867663010703770287098578934943803014485498226562340290273874369573444075512291295655686865596815345233532009238152403952752754171272198573331309103969191915738544363939875035954365739722345083043374079488456118868948554424697145789029605379216574089956906807215412927999630724027116185926080965382779754315718833171469038337543718073842781851911301883652681792473649745644107736371339971257192619207225178336182974134085765571549267634282163107138446601068617933406728495132366213312936995362802355473587366095603128212528774417902780164330704555544827622212411108255446417923047164400751001292472633713472917607099504841898339187862196771194983023497908542049684278780645030425636912983783091571817147579179503405608338413508427155402107530607061251276582926839788962545976594440961514519055513275169602979628685847616369062537958341738817452374065962963546370733848963201402562440188175289351011387709109079549582792979941297945495292178623553783463026049497974980271735673144011977789467755058833745339071611776574379868196936879674077113431837179327039516597706198676231540268608240602889500351489511034286589093213316520036126498410761777978596164798071380161278331240792333205339341834332466113199877410139300385114100611052826038109764950160992154922820896174299669181578730222065038212810035651565252320332029751895750540752660079091743969010648761851402666100715741952692925370705915691116522869958376497655409362635442242751614654772050385639219569066204317300264543312319338737568514147887364245697702994179544227595322507130160628595770011362092899813961244477128825029839829161948636544495719573600152880773202475982143040104379651657375869126704058836831297748527753404114351994146151385883523041724229640936184148884421770805514890419941402053840195477492639039384770958788831574428430950259824254399945907658845445110541871293284141890359200526942398458066209121875252771964714573825284412154468629426469226337248633071012393663362214251796103175223708446278487183406521421010443909848691994481603317196392882540053590021294581888035717600547334375150922058907318996837621712044012296300341731283325978696772819688650369500381908905067821392074817449677663600417927021158799954396446116029411513066429207917416228519551964750280553315191310730144826091949894983470900701175725024834957839179910952703147299028076130341149226662703960111597526951012508109656890818041540659457647158574310650523455414125923703145100402113859805553258530210771730515394369392812793491241721451011863370818995256695398687325163970399812005054355760988852961084114697762995017894251120808788829069719253511029684984387449356048679912620287992807405106741543358498215873394774095068734078022634266817929415745465116520132288846513741009358571413916664660534832619317091573302178831351680448122122140513569076991555357603035479108283121262762268353571636964651802606296854289605467048013849139523723473662140236442401347436204643247783922004175720466018838061802085772464722482823760654097919741282457380779635951069765904487727223760508860189293625482282811827303288455015759285385154157161956052301848518563592406752529005900124232155596486375949221186729049500828998623918623984905301462010964143710142549100890461419871181678560282268949231853993477990592173884794310271169373760162303856273685947731030887243632638909914815427229932074444063447905108171290312221864321728978256201132147107433715786544526865037065978971095371796046234419614560025009522211987326133522693688586379035649244803894797751570570261443069455176671849234574257364468631658876906534024545512233271906580903618007136609911179504478745210588428455785657377117780065170225620660831139258062923530813356381287420775321095170311209504570860969467293015857720970986843985582826980238351641717781416369112870358406885378067689663928883142134971154552854879272084201242103785699856882972619616380200660601905971092322719548524795493773058392174533597538050708207158445558690841889611263717366887126353100891878124285153926455125186500336344121842654111482682099985946723098530248100790448203362970268613980912241840849236818155298344966484075300266834147745412813191766136387135484949182685972440771098130820379418361969539281354916101258260962492290178033031702669841758836708372243715627442209172243135330700438697113830652206300608736336039405337434615403776853104094978928703530321144121981296683280827047969522478145481554597921111862629698511148576552051966620333716381072847743179616335211216327975238116275598524790375477709349715725664009459930817028380570213401022658508877331254134273280936788331115310127760630769348002269361282080215337777084679446500740921081906115389210959643399107379316190969650023377976868344904849128775858129199241392270265502433462871539776359108478015539522815586980272591637039242639165468822076572059121780507489215990230712079380177441541826510309376957861205560901013745970504249058816161560342649739961010340393675475694626478782495257482627610876544729180813343965939687076726056142945726248877235188216225662347804720725384753100460260342230368030029141216290083542560418164292049106603529403995216320499038459107612485900421215689430293729420865977517658722277072189016365586577727090296384009971076495984004004757720125269229925470659248478892863050269208712658364651518227724434327534498849760220875494914205859128174938200884806551111241116053197963534940321212454893306814348528234127379982643661703806536109517797723938977099325867341420772899511993790647279059268680096906581754874661644790021534514118877015238875461601380000281635623961935579658443822259316053775602172786735453160145076811907218949939414004682614359640535612100522591675824057660784893041054397909910315939039678870895644227507038135408706345633792939850418091600951883103884962992334893160823273037068122139731453392079102367415049120773823735085942713876543850612184958325603843663664476647644221358955703376992210687211356101531247114538267733379724347155737207728634996054512673213829295211061724287208668847281427001828579430548292166429982847140780626355097455591496251067604669976150510956710534552547360869530835053842321298446684278317543504398910301246728747388070153352015931847393522823392202031957418730510185948477134574617335518307802475768047983005242822322784776593091115254526150048422420479072135739456301286844049306684129394080758167596655869076294993616801471318491132867579606904013169572684733275542929486590755908997109135030909793072431307223549517463041585290558544822602888307774113605501395781882866899149765792416779314256039800554040734327817314118892541669690974492816006738547472495035716194362370895137889687233621685312736432820374720095234957105803192026049153513390770914568985575869465300149382457650730406663706560631718577764867743296867610605601152881953591656301038932329595670293623397942468872690738908332904792138597996488046580716679787343165110376535240534042874605449243773853523147141129625948877708411909380838699721368979868069625929495087140281227042155777461021197589645697688508694899209176580191789880544855173817760355342480999675154874347860642771430761404501014577093080610700378378891780521661043378573087810909844486164979126482737237300347508496679313279365318511249374681185900672446268843597526736621884138136984991546455622773945269058168590766829160723916579678082794464803580782529758484984943469022185760882202973447999157717654996298358086657138647468567628825899485811881697250194516158317997826385321021306741164219846981274464490270947127461335932756836914831017373320105522948014004481802682122050441800569997078744676638683780967292319936784645849255923736811855332108454482963065511025133516405857832177520446248467942302648218053500696150487216932221259222349038016130546979556105794644799302939335790363657417730384912362813865215441379514956740274950342916922727618930429673559383114274158572416476351262122286418178656898531954715565202097015853045522706600679551963956559499050498422929418571022019098212065598766511340775847352651369110848849740627698578867477788153150085145166403133191796273419874254006401098993075484212529685520775557163962593550146716372804343411237387570006031172976940306637019607805942790263191906277324142524661632213107202721059726902468765282393819204941129391466479577530105906311510531920615888174045603900338592436309351763758018799876149066275288522899713435270802463219328676772239217195452698211121025056646865335381459179437092342996178343482849661296756674305507687196998969529077469698345428689071290270647205325401901854877621033330585825691426216658083574382865078534336125958203825872079019879146600299622490665929243768346008940935713640814556804207528967278895655751683151913790323304886176381879482325143931690625076764495241743289797261395607814291995849877003874366754161634256467946350382658087395129273293397244348948138717975572345182560467733213212734362761173066328253754365912079610294634363597487959413001504289467949818279307146652005186195424415490869238334578532763059793281231140935355227262881704665964083911372661097241348868075510872863808648701535262365697129489710547750811776539750811843424532179846440199062580611112049872687505689710161635792367935248479989651367475483926337120858224395920914669023161641435284945306200848130771178183308992509160350513042265430788571150263564806618364057943150018828345372768231439097047246795422630308988312193880526434385539624786959708436555522034363330532147275462004377874507656363411103453891765094878257460678923541440464898553101840632577880983216973857969373903707771856308890907390694942544942392079967018033664451949286071167857295567217113873522672060409751669839323522432456596094737047543162829471311081195468808388378503778366165266014594346806442187163427221985386999165724338670846040477293111744628740793941497692709128158627008206961772683910110615079408662626381812130423975825874630459603029501258709403130281214405683225694116769719704214536623529091909996905610214626353730603915311791591909979687693391047581843604886405002443485533182356356745107334324990294295666934115486624143218129629207290632515087649463196201184827756826523424722522127914242082393020799989090703402305029439943649062019354376593494401972770929117393360675696888067886121137385586882699862654144116229259317940879822808399904716996517809055461051824406890204038597345833490197486985424337219901398689766048378976669489148073074559040147819831123462296610409516803098676754741242301302567944780927848568412726666893273800907123970615051298646428916443388956002407657600976884291383047000441876475225474561314411425419208057551444701338412569693416097421783939256203565113681021101721204425642022372518790564213237553726664294983638436224926126532099321695370523612577936509984307443619270246960855686274172297693736121943802903060260422456862161628828030007869524028444647046099592711471012745842319571016948884696139699058412360601810162831476866821435783731802907026261279093991320320228808493696551783937409562390546915197027733090881775632884334659155935874066298842361045252775113655621583774799292457381541487203632920182384648064307970048783038996235611369428939386975791307325529220146050852896175889826193896861196537856284102659586833689029864426901172985778505279226826857860591695401414141351510107528873610140648272268487413982232010587892699936367615725277650065399440732763944879511763181456549469462246100197584239442633606469416804856307430690428594744639314586065017605452126414332199878762076001049726535383150350719901931131866685981716755986365228468222058522483547489721392070898233045973575780535193629368410777829780668155836737055686373799675384662079009529672334591312649609526736932840362668356089154520645010695202708905304853005562173649409072505691646469968703079083160345748503351646542157590789540969316233813839168357955499463989558163999814238575599519462843043824959183699354365843432296110960372504120520033527229451258371660009973810694630912615803070605628586805473860787862733952008918262623188830532580175684308900324441453684510159165695592031803216631737152501472615575912084287621286046051351399960062059472445038828148539125283550543776186244059704554607076889869218522610280631827361870748299820053843082376571642170235512123737260855546563851087383805226906155282830036918795115240085693810527875881395073056505520166968513023868390026369136842968516730096055163055984079842485503266296648009544141232441900125141107730434682325531010934260552767965901616849830006496220956205613914745846855050137670245926707481517961782378894956662872175378436706611228298159749615404404003400225293055427127837054599969991436377062454939991566899527464647676438097519743653080275110774554710882286651036284051668306915321883884470563748220173813342180785555457407339816990178735960512495993068015395376272818716188563401569241334116436025429031521758231209073825750283861377812117461153325619043305831259100030257693343783607184515483203390472515079417495168242357507362525335623375070095893704963648424332600497340708875479579219080883175030281767746081799863380837342829721262073906928164830454930029810497772298629767723145331854272872284719777402597749241929701454568058098846476018188289795244449925102663144643836680157787919624163905766007134572699568124424281491761788428850252352669558970176522272407133910163770931546221312967973688166272295092086263312697567084011832739555858204546581619559259422280664464848882083267287441174055595102745203784197944956652559513281220258746723901428399355159478651279452334397265149896349673746012348224723248809331171198674080363388657466182010118320187245787426597793711596582783545930137048999188290077354423194746914405360116918324344224502210781323355585687519789405410130821240651057052618387826481901579770544559913000613129577550459962383216259429827240431367631982074551485761825654341789783345725955936136050224886259491581555356983630950716060194708114276342985449682350006333048728770116089578038229229856958666502628120324057225201137497633791951746988996106543108852185654471432229099933303575459241692306637882990081657857124400340280870928421489475586731809138432257365036846211004301790798611919437511786167180689825503325922698800047047172191337847358807171625186763924841316174385557468337564385974977198843077468978453437655645224968828652529457717633097282553019765797625010647562890917636791657948673968625526610424718810947217105997666567711578809664899114026705853892416291738014061132011429694319461147743977231953355502994447959283322772858089565525878091559558420620565440344842219260449786935059474994416797660855552566443333984498485981720511380766901454620931553579814329887038796040720790201909098028327088619037667256449542532887788784518855824184808752635416564881092553569142202893183883281453725913935190053809895705204796671815656606693978052240232291433625589773615069389572460336259140500971336831215707896971885986889138465735869105916952086407573282433565048245227441586800775216240398730202386488357356905303939061157487864723652094328304572842785493552641088481091567955109772615506791583128048473497189999147375331298818094902926544438633066711467456418716292957812696443073190479714978133740338945334230572381086716297949813677644357833386816712406492967789645498274931314780664607291319018683686180593603578233944957164204251401836593261065296598459190032060454978454196258636447345911163891971748867442419208327129673134903237783284591154036429814907260301829432661512931082263327087644717663775136028331604448588395977959385172208009912724753513389039351206438695315768773090535580744918759684851664541367802640233071493419464489892723043712472169897765802601260809022362633564033541666582791573022088360069581918749343234609833586759851981258549514759765143990627891015669209307644442713174023079592438682897721496925588490645927883550475353263188642135651572998558610478651179282761291792699752395796579007135861172949302939997312147614812342295032172894141854797685189957618357729536757374645740026281303067840466848719523363790968515800274737037653099903841763460646447932006144267713201759094208270726298195461406539859429666455579973889789347313225039428656515422019936833961086518813242307952988640076258725931794207544940948977008386324259217462978980060124829793976590797725913035302498459604268328346893021440044403870688403000833785526746821021723944403294062021873472135687632819306756167556047998716617837970224445668329304009230774741825588986333473226584647480257463813003833559128883956399948321082183947197962311464249141762710939908691604900806531952724709736903194177867897104411757534497507775752941083844105456948678231365849376529212924270832786134395537664004475200243048610263796309698576575911519721426768839840785525664337932344120761852447523732289389785389710968388246334585628690289226887049237257348694193519251938054970242567103184020174355890568946593662836919548212899782966334560166917906556743848677648125125782419454430072407921589611214660175509616693629220342462527041318009587646273295934461992598959131175503452848381685115627694402205787416504482526802116549925121115252389821433966558348389080566294916202275678336906706256732937344559093269343995246254302644446578669176891660279082332408754604124678077179828319357228812431727751119436108526430621333029211986457808089344682619605532140116524335578677824010149740599822515747718610040733294545982393477968830770556205032951899311393857680655285644578159242559051045432275650134232221361296497075488490735382431230609080410368415077792878944708232777603022303939302684429076306080984146551168792701642261026701320480308859290900793642784346913133249149360126192695065591425848496751274877754068995305175444768424435705515838825328627987448505274944869784447129906711013157188372034871209479048074873784817393503374357434254399440980734560499981704900573877622202887296641007521466537126530144689328626298753668766241914534634816349234619006406850306902544963330587791113703178703693878989439647741673275164509727573349181510853301076686149996512604066838040131125537405011700542064857868668664287519737498638403586337296752672484381852115477369527872932506930279398411807452329566809286088957881906992966270248694470192429971453182645751648248145792932368818533989564684861941663365290859064035001886930413046719848746425839044639984936762252983215900085009164813345126688989673791319260434209338694925291870092536523094464566740659311171845818910473324699134029219624968869527354293185979875203159407662151391374983267251147113715813140390859394353515799589061001573821046237422099538300267968431557124632845098164549246587500966412841464350444449608452095336322352102134033302089919543047629427146413116227064929371407683618239332391692886502943084436569127848598884152778276430939368843844776276315611730831671144708337176143153364145231963546916012573525405456888507776560005845685281746301543784147814757487510985193553510163484412887811695901253908089754285472706510120040167760377295839627591487796205112970697344710800754797156126483577342393583561168405266566543292690317335768958423447691925467501359358186542239357252744732262552754089412390490068750519629539955696776552438223895775392497809294950443675922785284979862582375351789984799386964265329026853255406663209450960822679438298244301399741574708129171507110043641285766640457297277197892918445873673299872525903810350783393626965778663280987084187034149059038929773113385096979456586792157557453644273746488339743720263476911670397940059239446061098664752130963800591850377752891311304087823741439308933502916282039371321743537633136573587634162406613853995517235859429710776492988324081614284687946260131410368737739561439680800657840775608101869389178595829325506362934958231657479528447542602847795803223769767015491925415634291651121833531002317770672034971086280637932090739953208938231814925625301488781969192750053646180481730586792634663414959125688265875769888518562747119728305856770344722287559227937763417529617807319096481340840402789039941269717904772868428285807888129620416253428572187792900844106230114870123214359642405878880531962169195261888893279481051228641201579532962482852764688190068900919687513797499373987186731111697592264897266173081100794979768342812176139085703475424228379022639033425924401575393817358735918617464989912570826695712503233996295579227838050016070503882436458354065926730508670031819973092799761784040755625597754831229948760507553836222441891465999732006683528606102574099518840404873893594943537990491960133080927099798032728722833631001010106209846393434282594214296806416787710254107793423743796450761194435877832238470585488277835454532908349987788357110973842723006222605345547538662462395105858808188343872376690211578348116912854129198775534150956102867794444119513438634586965947615187092328577594598196807657774745099021906745927755097039490877906692260804280503291603438447186630972391730385839121051615177288059238467492625104317618420406615846910959803918469150338998532037262208234647797795454814120481015368076457388336961761688010030027504405795550769099254622248651586470177487768822426800752902317664512459665730300455795229684198991224860027437251677935387415438271204718276445100708431988119895661374718453886667921752675165342638122339694174894906261793070301438853667168773713560517144192226152779428747906182346279862992750758342296625513593807387527869812971830978613924332514437228082103127767811353616287683779826086726410873707967125054514854666775557731473292420503751982878252754993077592309553647894671093288891517843584218059402433155830521680533011739015297408673095529334299782871747066907883276498686572748484590564750014528995127641394642195311184578132339583756102323868531529852914996277315116908644906474188158745687451517139000947696091257359052907726849051291555367573813037774091285081449664360400767970117047268108419458403299452052824074873800186134435920221291845180831540814655787851420953283882017417728755486102754544467646683788767587610877128671174850487408908974306707926426257792312905252142133921546522193442206378948988401841979096000996795864358314079031046037460690925841688744894256099007247214812234951215398636277618364011952269424451189945712370273065400342957319374319946877284296371318745092685059179269731456511361823081863997209226397790516407615178732610120294327877448524136797501941485399022417343519331136896546058498392738522911662025581397405871328548121019668058450308693103914189119987202976844493024807898730759772050434539323724925025099401106602003234666588712716530214452792479965940259776017566267611201768727729423759358355660135711967840519249376682440241704569872672505102792252980952590080090961014392376998003675387874920749369271309558041726598669090072466694145596513591386169695983369316453344536671908263826631490912142008890012707051039279405846465604724983442891190382778519552507561736956313827149137564967751296989685276710955728188840781121591136906852480907376914050475224752653026696682867683882603227425931538728630108303834871096681551297372159033630366787598807716623533804598651337208705224905353121577106951955131461345690318823481695070260473529546867768269551600330687613811956067045612351105398595798324708610153104244465847710191124557047176272491573046056982623331456333752891907694784176359545681218781933756919404878399668383363865711122366694395991305060543469660344499662354400664386368301104052132207082154198630416196833537732086688928635898757269371100210359560604435382173492957064503373708000722181486584364443070044484001001168775588840314009847456599668585212116426769914790573822891829744165855346052279352078911095938994164375740375155743067015843366890054091290662536381280624375075131110171276435094233660510374370570687650869030757602066138689773195501219990500291761558944858821813635524011933591740011606396500199488908255185610740393144379315900216157849602445408931380103404186734419576023727924944277061096023883357205302726280451028212190894853427212566876931459109680278926640037182475477628862089152945659634091552879691105300667882831191260042318177742361429847960417515176939540835759274250290253568985919413695653307246437984816213821543024127472198647273411420559526775937555751695517840510509239129282051136885868566665238496653246932938396882303270634824922778524040476154781504729744271140849043584159231368425037873148507348291149806258659704552525145398931900111456323108864358003304854463636545380027216067642619945445283650818886144787414911524577599341914898520096017505018317325958917009233709407200482418045500070936812727054375269708710232167481516607250212161137705658291637471471094406431741310072881498794715153920840886994173052699162587198705722032355766346655834740293971312734541118787485292691413333089431590795197259553951152095484846631371994218470372506279720134575915714541176940516866269521061421519475904794436722885048090702516047865922766732673258533271943082443481949536079529632511649165551348112891117470834906997551614309374112359668542363943384136200137094465525308502455371352585516345152535304829722311847124555638368823379636924246199094598713962128895695259683145118448056821624002872167438651401695451836281608260092514057482605789010272293485447307698509746698318962528474210762794114691232773526025757283371072746642158016721604701898664133261571892629008101097949675575811067788557743473147850303379997974164060438989731672911275736695212361909591233335496269753262113917324968083203510640112950752735958864059282248453603309538214061954339988360745534262701225784110367817743621556916216765789173325140838395154038499835732336512576237400218965083505711414572411917200490019597725038502606472481033206476551986916013269645388607741817893250815784941237461545283366866517039847015037673891167879455578881346477409518940433551975900795234184314114677813751021170085377505783378890227077211422097008373457389110650916283568116262268018915136094722216749595917957026319637957238255211181802759829681031585190822813227156888316089069926329654740968413432412416636818766987219706879900815487930355404396331619017312763815479987272581049765716514969177126516233967283652851193266158069366438542013102545085431310885174726325980883248210234148521324112495555745240895655456411092522072227391400846470006344642965135236907746331230968007992661237560815225839971334343311758686116273585575017063995266192964436916270402888740370040957418809505409928992444108426723814079036448985050946146357654332990432605808576696228735060656233321375913572529002046683054340003029843169621771284431302080488984606641952252094400567688617611987835829291182730382539637451107649014205790848329668998691009705890276803233460393587031412756763479105520491410265030278739526048087272990136474547502784863897723389133489470529349447838552684175371971685324516144106352251957015009474647359492453177203862319851061491948968923763673787721966483735521309163055888046042864559745296851158932488428266623478858641014404404702700828995871440799903752487956555430923401405219146235112496933105282815872995157610468453542835123643473488923656332478432368797200839989557382516080367063195090599171635817917985480138729328248495056484643530064060692493985858294437002187172632669163822243667076554354066029887934396687385588671163146742197193633017752029744177149539362135201608266616821857907256877864058943287087135466280042208314260501305385107005594073222479835986484959998439061701489486726158198302783708074080559377065440155646433372897705404735385428167328666444085904560911734421000456552602109249377657803798152847774103925173376605401712490620550708931105144181041377998869887987812297491367570195965428892352777375819645419911449259859739405002604329804708514076949919531990862182017845061263221204163162849570893406970832364611741127869365279541372671698512830041181605228848312828215868545963968629220587367919024352405438948729103354092314495170338123276934463785736921969309097189313508477198422053979286239197651569486544643701314108094077118423882949655941461331894230783704962132418927482033195701402002080031959988655075464868170466846355852736788595710562241119083913719153451744034996158264926514795198605109276025422503408834448870648443170794225388342070299606560873368345724647611522834640505408954281604306394473120593817981920311914694897162121000641634644334350301688593204077825439238076811742251519707158245328337938956897116568173640067701616085805522758289098010300672556230995219975742471058417752024440649668571681560281344624748462149738470049943713180462012397862087994875481257410089414669601763923737857504094118906047589095963429485425480392937470581742122607814868869614338866150413224939859570016373082014498456744285530400691543009902897934503213546349960243759243220388471417949862994828062088053949598196353952020519955177836434838059594196253907745306501568512956616562431264314897945319306122968993373373902435494182693231514714962015005415671513081009469020670114465201464258096477711029715698348459128931284451212507225802014047583873087437044444136569763734126592891408813308479806723350577721820550595992485729954554219898267583467063822162777431464098355895716745741394937032072532300338615245338972883714151132507522498122854250635923121429023606519680612408731813564298476795507856383918174903353220425720776183317554520655477704554544565294056224129377906096209467204399021657313070794805286730785221678530445041687122151224670404023572278957724604723154790070303124026093337296037988425838862907344456043727929475677034427720637258784721215554119835475539998783930974151752241187123712521079186572234627961851173907695510910609314149424565327713393821147504200701996095169877631240381676880255739183796602840455726335984325575289814365972578351664628631045685259110410073142367704213113846998003433877822529395534299641159031757137166452205975064230033860438159001730083606899664432339085350289986439864167419806314004177865722849661703381865298935717159784384829959622981410783036202176726061816429659229638100819753512381652587046383236741493939276807271833274950215719158779167808081292578529744353764298951926850072104315326102364613253054173313593530520970577578072633684423520469269071882239236955963216457072023209614114917812473206422888157269141091466236027302084512443955326099614650319613342777485708413747418860943636142640747217372065158544163921492157015460572238559581948928602565051589923004637397392225203715587222559516046551734157272888007211964807709115873487787653642935444030682626871881646922828055452426816726018799017260933919099974614906727671125990257714323305521629190777234010179171670877684357688546616938741681310823019667323876338819183261983419802678210611995648895066331450092624461735517924557349081448104569905118420878083152825273951815741102603801268737639541593170632271616517729776052914242338025662728996304727483314080385985516864166036421290525869142821632075696155934775595973528171616365316951802847976383840634985072956015333635003272430325195758848446714352028720457414110767725817895953560113346208055852889225461059315065125552663427045612362285612716225156830293280325882776335613009384519650026267570065890126264629598828121998610719340301729960835030423586007488623013410830751381856830734376628489723229897945766817165789963551597488845703845815340793328090430588989525262410868825200423118975564374797950159999839885472288131123456085333713137135795878557459279555167314923401073547235504185621294256388476430003654646646486859025074039150779603563732794664238094873274924285595030639784728938848395817872595892656555222651647577620784704671056311095803904971522764613925143497183066111574980148945442669366085616855283011632768094145570027861627871641838630600872152804362870214778749062779771523317815385032618150917294921845284521810630532515804306082459698537132338383358329190259046088385470567383520149521425910424024453476022701207650896450565403377778956078243242427767847339523852008641151881602663965712640908800806001081932567373679051350842613375114295134614832228196757642452669668102326565421570091974770443569761318148974930172532247428176559112751364774988578747781135020923454604166463340405799208368207870001110425398604043362793842669050666010222144705921158503230611712684849790708082335452641225469010149179951657946200738110027780461619957881946713876175851227287295564884143931677975015313070273450434202202304193019076480539045965893814041435964562170725911640452207933226217635950011724660022947902497189857808881786780063533551571306722328887267315455599506367705735878001310692460414263819414942854546633830078165183110940171667530671086778294384673979287698749951522505095714983283718217838489125197129812679790599344711685993091256938662332701838921407118551189536142603588816804301506735194721859942553125044449644039999443403284870213666478419422769032912834852082313230861327418186027267660805787288306088605171267664323442193875415752258991717607800899389961640170741615029293329490560783057607084619209622643874401461644871962568364232573460272268366370529689192242216415547434468833313195340350895213486215046853641457179830504625056050020179756528935800738594765119189166229963463760092598063473875859745014890975775567996431036700509429168123135494752776145348190626590391355188629573479774481496609367358314328561088225077250272362447140068453630976468990258583414185979448348743678086790718455606758896280555718962914548121008623331285181389850393760913872161400867262894368063897209366240471185673512996991924668316354062488486394307553924662907726493005624031983871426400360121308347343627238930097429563459475826663931256919737119331003675981129702336730039226951381404518071896874277097150214428032469221725150627187761878095296814279636374846222736616639664187453111193114367252102366169051386710871858254484861737558649442282007921980326301718921734425672931206660498311705210590395525672913186735787913493246750307825399426731818756967960132074905829849173943388861679589077056787779980341511195574164601842847947074677326316146691301534683430596383662391034691204648810119430820832166272222749865602573587004898913009142490144790205766158759805062933680905564187283960881283219754568308911394222600055654004698221403030023412400297252344823371020270659795795022656753748582405329851446389676837509460278684999767240502099244499495588342717005899766392672472942798772934446923762029170736063435192345901969053053342593559247382822983834944737419004596584435307729192987470203308603771997013341061942772041595679624694038815382979338114043838460300109414525862606997622311471354685807495449495256783611710834719808028492395269204518172480339586880152835521654467723801077270930974340613355319466800396109541674455021562408233913193296360247331106782991781500996495415663794273400546750516856671662448682264614756286588933632924767416578879236612992589099250662883894062251128321861327335883241481271427774322352133156967456740751486398340451504667750504901817550305357133790933275868815545938769989191850493006751488624886136516055202935560733637524275602246898165589702605127397520392992553866496746784865168102508219930306910874681594208783747487883267479663362812112810146724315865782009325793018929909788683832590137864089838284817982060773233830604194570326085036078656515138907886585585878051895278765715027937382177792962550337866368508137905728131835304356215751026088683675940535881942407841485539003482141506942794505840082347701172548252127274736082836410108365987868051389016145272650876299063951051451691625415526310772152017206896628053767214598111510051508287907260275279639919761955628328307242439161988258714596328987640554730423037850733483605116026423764665437442250974029480517456967652522435292806952822573236289796104623428320398433392787758679827811852777934957818213671013011248079960598117050974708992506850971794242894408076693137924489584454765697267148435202238795364233347314420379406216062883075089865335011389639432133020822037187329672622439109923861521375577957280400676874733512411779162929354520937051374945414855339198195189262372649487858432595032178745852574304966130020513966523946216285817111403650417736285010043197283310446295382657215124820776369312965292740027193300643807580107337402290626123919448749688912765157494596406500502885248023850720652079736113922649403068789247307039937153735947248536611905877326863704361219221551638752744412642791799276932712456431712003873564295141779050812709049376630864810340855022661436545429724167170437111824548491780459076164499665181704221746783556079544500781741765830127926222549603874348611894507833301964563966963586651504985719801301440807023709861879661822756829272458290229777551592708466658728151857694088202595538387464713497315514146488698707650062623736344473286396953011440632404141166945285351482105932446428761373301651705929038930523036092296113584588947182906107173015559469784917279395765926874443261568812684601469566735362868521765905561448390292193017499423190493359934873304141378640909981198185825212692491506334353213563138691007036643656171070018027387762206860934654480617328609459500921781813664736093453772393092685094903578665693165271207190179529882427539972843490678887798783081165233563545621605507305609284243972222689009890795779765077406541841619201732254944118345987662019316214785726901621740881642749739045475343997515460924083606556380584246262023747789788071387037874106725846259314706318191703884961123106216620501125513147644173594492182807802019117309309580724032526273014732110576638309083057899256668517273578171614091694024057613218405046159200355263128187764467802983010173075423249988078448008688145174214416159097674659908448647263456303008140391608577084971859219933930966822609118179644844383421747125928490152243845611919807192004193966566804707153230232834411250693316113748622163015193772337259122703283179519615853982310307714400265273997770392308651523307858732462682567635345848017338338113715668158208217215962560373241892703066293334719057809173718840873775096336446385856225959392271665201220374642585290230002868651136302862152272043742656295298592124417093272839893772405291741021885147849303366147115814410117131613967765016751854199609667122081115977805643330103958554955182201664499630728458037831303189911347446299248164895424287459637424726650485965570825005482008460355800949084362557646824259262827170026553698571090118144796751522527035156385248730817007139262578692520657971535058496440301759424220440578819344631145396254413348224781885569977926704152516614200739213544814924744068412847761618146054452388492233154357462354193410887095010928199036572169302483310586633885130095467539765345939818546956088788896505573713269054593807309900797198703668486256837915780590551002502695007493339954859499721187969191634882464247778954143868682044419965352459652984447368759692340062067390019782228314660542216042140742251088515347232423984955721350260341547355662313697262709003553494031246620768844252831566091366035334222298988112231226834075088206954560888409624064484341550850757554659787122197426084442976912470978135098397699112128457002555874033654528746774127483250276680696447411944633836495888098458159871310482816445119120507847384015716384252400246177250628933983797887011141267301364666373942686623960380539050896017421054149407224209692936987149270871002932254388760833445689838836183207805345862916307733238817992577731530857501925436622311529739634647567012113788448521206512974608800634007258635962360304473723350262424235279084961413791691913690868466948611107075712165728152530277988014507472456516561863675685211220086627234191290151870859898419196798128501612021886768529945655487390320041437084010103837386191642407017066898568147292088576887860170443851769998094460483041778327443875041555222554409377975420326263911707698274591299867907319035794979104418353497202138435329558562626456757235092271764819307460805958740553530724498139797111798601298986593934838049484965656162170631840744035408162077940992711498859773923374528266354475488595763297610651855304626348981171051477005769161287835205003591649446383919426235191292617369220957936692936299890027779039127076766718397926282284389779361106400378561186363564558263423106597571332081813574747090018560886727754638909678365221637737420845197584938763680857685995114079538462588444940313538556223124208833520134447701116435177683545230316707531571167769752059394773674498593903207227578691516304544784228157908680191697030123961292812309973704286810721964315944375286939365229597802644400136605957829156021722407987029948193649266721315345507621183347130108594119782559099812378353541930475274806311364288939227953975452779181104817203647626721224733769377600513542908305580645022728805285993050560530283691247045937311580661620493351217520968302653603784035643935048927225847039659253983509332398303185961311863475434624622307628473696811528984764434783643203052962131996962967555790600721216862618414477397121462832989105806203644616993237482272513228900022258898163125964170903067809753526718131893060942235164956534258134944390135197124478045007138377830992219774856854869369658031653120465122491109920022557728224738635382769295340625771254975613551499692725733546269529431864151878769543955581694364592954247877977928953788400751062554448177248895131476783328093408211721310086818895285698496308144333289840613403705801814308060889108455680333841824401069529125000965247943711809311977085584240039184926546077445457576736133951075553602522627995379097967180412165239304662487607943769570116443659340750068259873391271031985473957359736138025370108791950634227815750328260920693476119601178536313276871089798387621986671758786707225413203080548166451010278326830888883599352425734939634357630761474395189849510316871872006810303860519653528876868761039071754207686879663912513072540142004085007028780671953616937354524788517510640973426763631090847263861654465716059093022598307096211105276856023760039145052373979929569405891981724733373091979930708187724950949664902111668785678259853562654683434052350862241489937206260136920586898294228661192026482184434514002373034979316068478276348403057254585385561417592578619148792692847431985758589083958573553285275166050641959749604931932827240653371212623811157027756832926506274459536402852629275858898682347784595722086885719311360285424588870658331857108490506396763138864051902005254423798743473492528904834605048429019037103549281984523841316947308347071949814368513477038064464093292586217526872236305359833135260311732271830949066414378986468033518434853224244917435485159270304595035257671393801812603095517177896429561993710308295067160525673859021760743906025905694111782341365538961217765699206576329390445340343933983959608296876846490593621538945022038026645137999699081477634429585430719037920217406796159288024776771157502630953322619848991259964121919608578517372041265322824567930245431870188752676138238192910763224712874191450740478549715535441713130052261234684788152529297624759576088390403731267242692555806247522729626772461747742552551172711299177566389628380801166155932235160530347329398246738690451352068302334998037015253163868874274353806283498309803251909861349873267691768781279562440951027403697145398286915533753536051712408866908393180077402312575929487139751688140285405890462971728340916231716048811106164342500577795588107095226583533510594715986554981310286128745980483536148894544854042580373110361893826036196245561112697969635418627247962810956418150497554061970464292955027858780604116959113543838605990056763480551526336925045649358882455443359164778052349272958157025948298812738289598549128175479421264836664696358540753781412806630745105031690818550612486557731493596310776989099244222039822772957428300756152756354024356144263082147358097582700331277013166940868744095991313183851743045117647921778520361215843965399509570136509098744172021296081849990863378757290805831455849042562203189910640586692503259121208410857251016173401698400459685154830102523877735964390793122164400679610046682952748196093962030729959480831517442436384489723517804084933377071211023341706681653717893201116830501835714596920862484942425169891154503574675829574732411046954974686662586992823410957606031653705785246914962470187884428623978923714840617559190660718806421255785822630368068962701709571422755855580613196030690983759542045801476367207075921070236628095568733316182959807477649587984736612724526867549284502352856781971999544003549548145823926851479297099729440095984100395181690704326024405902501908858647461109188445979505769239040083783561366421335129157288454271542617376618936389007321681494301847528168951547784303361126593304294346676782704993704998268266688620764738515729760487764346817020014275973908539727055638928624722467279337030866707256729813498783869935694353913438399141698244883936931791220354019733975117371162923194218031931641886743457212657696970766176666793271768879641568325922783204199946065731368603971076678757905788937957653076438714118202402309787108984125743836588069754500855100445617530470374668704366904490386180386195893041961007874001772640165667178811019091894711219136668954671390463039579511640637203753811516393623984350747570096095284122621355277404017211157642460563386625216074769888968383244372567939128963117439833533396168918129729989419879964849113914740841288735764758614511755662170765653143537453502367118193188409148000477782382015116620834234607300933771127445909377608296475191774997759909897644944242297682537539752326431614348119304646048274339023314931053160884418621097383079423911067790380381249301679033064338150910575814115788886016626841699318185318689347551937127892957931547611159519273499662298444260997389817047140691118553768132502534688812385779113506239201847203702442057154625541503648301337437350059421158581917474036170424281095719260604946116097881974544214673622023151741487316826589888380421652146607122976142746865222508955416352879728612327842561480987103233231026905558478188852234706220988995106892433424184702023878029567574892770186529208101246577443958962437754858392988916558671223653459508873009698058573151472463135659625090837747398755433951663324847205166552831267578852927979853168606549541393643144290025400655554796005512295849745235403742050270223708098919463687429485729281558107438810375365755120793475238644276143565497841632258048937408899386450485643031283696913234747432240356552852248603423637580835361226216557935818972104888401021237794534191031115075470719629173123449785833363607870721088685212882707700489503514144136488599230534064812676133124440597891774690141329669687892972822746464846565823879983182860618528757157680736763967852269828677368023206685844774945169850794835706679942154632409991718782370348175930587442272087371626167811183700293064611465241425972404212585164010370945141563152815058731826936262798037521496415400512959711242828598488965375809537684920992706104016559555524312650193384305017802952465623920001314218629770956649900457166686353434718406598563838306111281448217495528787140902216121588978689143341546871638726125103520772355374548636740643159202509550994751763256662928624552781328583077966700713627307607339169843013783805124512620384444505834144900660410703155801380163862375965743363077319562707948072241705013936563680654990934251192895573143541074820140907794640730247510683436712625752052765889763002095449204088906369173193275789964660849142789767425620691752513439443943873982239630975892474319931658503693507658589060602681404018069362188847346393528420475791530949238079151698355330510236668538850394488703291052902368420196064184056225762461045114600522672457895588597678159380456764125423766960916903637052746327288602106860610469413390667545742058834082606200012315242399623628811132745180682779715265817177085237073396820686935369456520301271926101456717020508538681237115197109173660138228634716441162291568446673984308233883902621494310247821464926375102696935959242945944151888133451125514362698433691352532310879933270880654156376132503717145584047124549092426832784315116431273656167171926519157525051976694275663643303965961692956911880449863855130381945178524296013347506908900926352529942051461735183414136443758664616299068698834484310968829831501